Professional DV to HD upscaling tool using Vapoursynth with QTGMC deinterlacing and chroma enhance
Transform your legacy DV footage into pristine 4K ProRes with professional-grade deinterlacing, chroma cleanup, and neural network upscaling.
- π QTGMC Deinterlacing - Industry-standard motion-compensated deinterlacing
- π§ NNEDI3 Neural Upscaling - AI-powered 2Γ upscaling to HD (1920x1080)
- π― Advanced Chroma Cleanup - Multi-pass temporal and spatial chroma artifact removal
- π¨ Color Space Conversion - Professional color space handling for cinema workflows
- π Batch Processing - Process entire directories with progress monitoring
- π₯οΈ GUI & CLI - Both graphical interface and command-line operation
- β‘ Optimized Pipeline - Multi-threaded processing with performance profiling
- π Rich Progress Tracking - Real-time frame-by-frame progress with ETA
- DV Footage (720Γ576 PAL, 720Γ480 NTSC)
- Legacy Video Formats (AVI, MKV, MP4, MXF, DV, HDV)
- Professional Post-Production workflows
- Archive Restoration projects
- Python 3.8+
- FFmpeg (in system PATH)
- VapourSynth R57+
# Create virtual environment
python -m venv dvc_vapourize_env
# Activate environment
# Windows:
dvc_vapourize_env\Scripts\activate
# macOS/Linux:
source dvc_vapourize_env/bin/activate
# Install Python dependencies
pip install -r requirements.txtInstall VapourSynth and required plugins:
# Install vsrepo (VapourSynth plugin manager)
pip install vsrepo
# Install required plugins
vsrepo install qtgmc
vsrepo install nnedi3
vsrepo install havsfunc
vsrepo install ffms2
vsrepo install lsmas
vsrepo install mvtools
vsrepo install vsdehalo
# Update all plugins
vsrepo upgrade-allpython main_window.py# Single file processing
python vs_pipeline.py --input "input_video.avi" --output "output_directory"
# Batch processing with test mode
python vs_pipeline.py --input "input_directory" --output "output_directory" --batch_mode --test_mode --test_frames 500
# Full batch processing with recursive subdirectory scanning
python vs_pipeline.py --input "input_directory" --output "output_directory" --batch_mode --recursive| Option | Description | Default |
|---|---|---|
--input |
Input file or directory path | Required |
--output |
Output directory path | Required |
--batch_mode |
Enable batch processing | Single file |
--recursive |
Process subdirectories | Disabled |
--test_mode |
Process limited frames for testing | Disabled |
--test_frames |
Number of frames in test mode | 200 |
Input DV Video β Rewrap to ProRes β VapourSynth Processing β Final ProRes 422 HQ
β β β
Format Detection ββ Deinterlacing (QTGMC) DCI-P3 Color Space
Color Space Setup ββ Chroma Cleanup Professional Codec
Audio Preservation ββ Square Pixel Conversion 4K Resolution
ββ NNEDI3 2Γ Upscaling
ββ Format Optimization
- Analysis & Rewrapping - Detect format, rewrap to ProRes container
- Deinterlacing - QTGMC with Placebo preset for maximum quality
- Chroma Cleanup - Multi-pass temporal and spatial artifact removal
- Pixel Aspect Correction - Convert DV to square pixels (1920Γ1080)
- Neural Upscaling - NNEDI3 2Γ upscaling to 4K (3840Γ2160)
- Final Encoding - ProRes 422 HQ with DCI-P3 color space
upscale.vpy- Main processing pipelinerewrap.py- Format conversion and analysis
# QTGMC Settings
Preset="Placebo" # Maximum quality
SourceMatch=3 # Advanced source matching
Lossless=2 # High quality mode
MatchEnhance=0.95 # Motion matching enhancement
# NNEDI3 Settings
nsize=6 # 32Γ6 neighborhood
nns=4 # 256 neurons
qual=2 # Highest quality- Containers: AVI, MKV, MP4, MOV, MXF, TS, M2TS, DV, HDV
- Codecs: DV, HDV, H.264, MPEG-2, ProRes
- Resolutions: 720Γ576 (PAL DV), 720Γ480 (NTSC DV), 1440Γ1080 (HDV)
- Container: QuickTime MOV
- Codec: ProRes 422 HQ (10-bit 4:2:2)
- Resolution: 3840Γ2160 (4K UHD)
- Color Space: DCI-P3
- Audio: PCM 24-bit uncompressed
VapourSynth Import Errors
# Ensure VapourSynth is properly installed
python -c "import vapoursynth; print('VapourSynth OK')"
# Check plugin installation
vsrepo installedFFmpeg Not Found
# Verify FFmpeg installation
ffmpeg -version
# Add FFmpeg to system PATHMemory Issues
- Reduce thread count in settings
- Enable test mode for large files
- Process smaller batches
- CPU: Use thread count = CPU cores
- RAM: 16GB+ recommended for 4K processing
- Storage: SSD recommended for temp files
- GPU: NVIDIA GPU optional for monitoring
Typical processing times (DV β 4K):
- Test Mode (200 frames): ~2-5 minutes
- Full Video (25fps PAL): ~0.1-0.5Γ real-time
- Batch Processing: Automatic queue management
- Fork the repository
- Create feature branch (
git checkout -b feature/enhancement) - Commit changes (
git commit -am 'Add enhancement') - Push to branch (
git push origin feature/enhancement) - Create Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- VapourSynth Team - Powerful video processing framework
- QTGMC by Vit - Industry-standard deinterlacing
- NNEDI3 - Neural network edge-directed interpolation
- FFmpeg - Universal media processing
- π Documentation: Check the code comments and docstrings
- π Issues: Report bugs via GitHub Issues
- π¬ Discussions: Join GitHub Discussions for help
Developed and tested on Windows 11 | Compatible with macOS and Linux