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.
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.
- 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.
- Filter for AviSynth 2.0 and 2.5. File size 37 KB (in ZIP)
- For common questions about filter’s work please contact us: email@example.com
- For commercial license of this filter (commercial usage is not free) please contact us: firstname.lastname@example.org
MSU Benchmark Collection
- MSU Video Upscalers Benchmark 2022
- MSU HDR Video Reconstruction Benchmark 2022
- MSU Super-Resolution for Video Compression Benchmark 2022
- MSU Video Quality Metrics Benchmark 2022
- MSU Video Alignment and Retrieval Benchmark
- MSU Mobile Video Codecs Benchmark 2021
- MSU Video Super-Resolution Benchmark
- MSU Shot Boundary Detection Benchmark 2020
- MSU Deinterlacer Benchmark
- The VideoMatting Project
- Video Completion
- Codecs Comparisons & Optimization
- Video Quality Measurement Tool 3D
MSU Datasets Collection
- Video Filters