AviSynth MSU Field Shift Fixer
- Project, ideas: Dr. Dmitriy Vatolin
- Implementation: Alexey Moskvin
Free AviSynth filter for fixing situation when different lines of source frame are placed in different output frames. This often occurs during movie capture, when odd lines are one frame later than even lines. In films after PAL->NTSC conversion there is another problem: in two neighbour frames odd lines are equal and even are different. The main idea of this filter is searching for the optimal line’s position for current frame. If this position exists, optimal odd lines are placed into current frame, otherwise (for example when odd lines are in one frame after even lines and we are in the last frame) the odd field is interpolated, or no changes are done (behavior depends on filter’s settings). After applying MSU FieldShiftFixer to sequence visual video quality is improved, and compression and denoising processes give better results.
Examples
Let’s consider the filter results on a test sequence “4msu2_25.avi”
source frame from 4msu2_25.avi |
after filter works |
Comparison with deinterlace filter
after deinterlace filter |
after MSU FieldShiftFixer filter |
On these two pictures you can see that after applying deinterlace filter to a sequence a lot of details (especially horizontal) are not reconstructed as well, as with this filter.
Settings
Installation:
- Download AviSynth (for example from www.avisynth.org)
- Create a script (text file with .avs extension):
Avisource("video.avi")
ConvertToYUY2()
LoadPlugin("msu_fieldshiftfixer.dll")
MSU_FieldShiftFixer(16,1,1)
ConvertToRGB24()
Each line description:
- Avisource(“4msu2_27.avi”) - path to movie file
- ConvertToYUY2() - conversion to YUY2
- LoadPlugin(“msu_fieldshiftfixer.dll”) - loading filter. It could be placed anywhere, but if the location of the filter differs from the location of .avs script, you should specify absolute or relative (to .avs file) path.
- MSU_FieldShiftFixer(16,1,1) - processing video with MSU FieldShiftFixer filter. The first parameter is the step between even lines, which are used in calculation (from 1 till 16). By decreasing this parameter, you will decrease processing speed, but you will also decrease error propability in the detection of the optimal field. Sometimes there is no optimal field for border frames, and if the second parameter is set to 1, the odd field in border frames will be interpolated. And if this parameter is set to 0, there will be no modifications in border frames. By setting the third parameter to 1 you prevent situation when one frame is duplicated in two neighbour frames.
- ConvertToRGB24() - conversion to RGB
After these steps open .avs in VirtualDub or another video editor or viewer.
Download
- Filter for AviSynth 2.0 and 2.5. File size 37 KB (in ZIP)
- For common questions about filter’s work please contact us: video@graphics.cs.msu.ru
- For commercial license of this filter (commercial usage is not free) please contact us: video-licensing@graphics.cs.msu.ru
-
MSU Benchmark Collection
- Super-Resolution for Video Compression Benchmark
- Video Colorization Benchmark
- Defenses for Image Quality Metrics Benchmark
- Learning-Based Image Compression Benchmark
- Super-Resolution Quality Metrics Benchmark
- Video Saliency Prediction Benchmark
- Metrics Robustness Benchmark
- Video Upscalers Benchmark
- Video Deblurring Benchmark
- Video Frame Interpolation Benchmark
- HDR Video Reconstruction Benchmark
- No-Reference Video Quality Metrics Benchmark
- Full-Reference Video Quality Metrics Benchmark
- Video Alignment and Retrieval Benchmark
- Mobile Video Codecs Benchmark
- Video Super-Resolution Benchmark
- Shot Boundary Detection Benchmark
- The VideoMatting Project
- Video Completion
- Codecs Comparisons & Optimization
- VQMT
- MSU Datasets Collection
- Metrics Research
- Video Quality Measurement Tool 3D
- Video Filters
- Other Projects