DScaler5 MPEG2 Video Decoder (1080i IVTC/3:2 Pulldown) modification - Thread Summary and Experience
This post is my effort to try and pull together the information contained in this thread and to document my own understanding and experience with this great DScaler(IVTC) MPEG2 Video Decoder modification. Hopefully if there are errors in it, others will post to set me straight, and hopefully the result will be of value to others in gaining the benefit from this outstanding and unique modification. If there are better ways to publish this I will happily remove this post and use the alternate.
It should be reviewed by anyone recording MPEG2 content from Over-the-Air or unencrypted cable ATSC broadcasts because DScaler(IVTC) offers the ability, just as all advanced Flat Panel TV's and DVD players provide, to greatly improve the picture quality of PC playback of all recorded film material, which includes movies and a large portion of most TV broadcasts except for live specials and sports which are primarily video content.
It seems that only about 500 Users have downloaded these IVTC modifications, probably due to a lack of understanding of what they can do and also due to a simple lack of visibility. I myself only found out about this mod due to a recent reply from Mark W on Zoom Player forum when I asked what Video Decoder he was using that gave him closed captions! Thanks Mark! I also want to thank JohnAd and Kzeuh the authors of DScaler and this mod for their great work! May it continue!
Hopefully, I can contribute to increased visibility by including references to DScaler(IVTC) and this post in my "HDTV Tools Kit" which I will soon post on this forum to give others the benefit of my research and experience in building a suite of tools for cleaning, editing, building subtitles from captions, playing, archiving and burning DVD's from recorded HDTV content.
The Original DScaler5
First the original DScaler5 is a Direct Show Video Decoder which is now in release 0.0.8 (dll's dated 2/18/06). (Do not confuse it with DScaler4 which is a Media player solution). It has de-interlace support meaning that it will try to mediate combing artifacts on the edges of moving objects in video sourced material that result from the 2 fields that make up each frame of the 30 frames per second video being recorded 1/60 second apart. It will also ignore MPEG Telecine (repeat_first_field) flags if present and play this type of Telecined film material (typically on DVD's) at its original 24 progressive frames per second but it has no ability to detect material already Telecined to 30 frames per second (typically broadcast TV) and hence cannot ignore the repeated Telecined fields in order to play that film material at the original 24 progressive frames per second.
The 3 methods of deinterlacing provided are documented in the DScaler5.chm help file .. Bob, Weave, and Auto which uses the MPEG (Field/Frame & Progressive) Flags to swith between Bob and Weave as required. I note that a deinterlace.ax filter was released by the DScaler team in 2001 whose settings panel offers additional methods: Bob, Weave, TwoFrame, Blended Clipping, Field Bob, and Use DScaler Plug-in. I do not know if any of these are functional, why they are not all in DScaler or how this filter can be used in tandem with todays DScaler. My efforts to feed the DScaler output through this filter resulted in unusual, sometimes reversed direction frame displays. Perhaps someone can clarify this.
There was also a release called DScaler Diag dated 12/18/05, which added 3 dll's (Deint_Diag, DScalerFilter, and FD_DScaler) to the 2 DScaler video dll's (MpegVideo and GenDMOProp). There was no documentation with this release although there was a post indicating that this release included the MoComp2 deinterlacer, however playback was jerky and the filter settings did not change, nor have these 3 dll's been included with subsequent DScaler releases. Hence I do not know what these did or if their function is now included in DScaler, or whether they can be used with DScaler(IVTC). I have registered these 3 dll's but they do not appear to have any effect on the current release. Perhaps someone can explain this original DScaler work too.
The DScaler(IVTC) modification consists of modifications to the 2 DScaler video dll's (MpegVideo and GenDMOProp) that were part of the original DScaler release 0.0.6 in 2/06. The modification is described in the "IVTCReadMe.txt" included in the DscalerIVTC041105.zip (http://www.avsforum.com/avs-vb/attac...8&d=1131149859
) and the latest dll's and the final "Dscaler Extensions 251206.Readme.txt" are in the Dscaler5.IVTC.251206.zip (http://www.avsforum.com/avs-vb/attac...1&d=1167130347
) as posted above. It is installed by installing the current DScaler5 0.0.8 release (http://www.dscaler.org/phpBB/viewtop...87c008db3e06a2
) and then replacing the 2 dll's, hence it does not have any of the features added in DScaler5 0.0.7 or 0.0.8.
Why do you want DScaler(IVTC) ?
Film material that has been converted from its original 24 progressive frames per second to the 30 frames per second required for 1080i(interlaced)/30(frames per second) TV broadcasting is called Hard Telecined. This is the format used by CBS, NBC, CW, and PBS. This hard telecine technique results in one field being repeated out of every second original film frame and on 1080i(interlaced)30(frames per second) broadcasts these extra fields result in 2 interlaced frames out of every 5.
While CRT televisions are designed to play 30 frames per second interlaced material, one field at a time, and eliminate these interlacing effects, newer flatpanel displays however (including PC monitors) are designed to display progressive material, one whole frame at a time, and the 2 extra Telecined fields would create flicker and the resultant 2 interlaced frames would trigger de-interlacing that will reduce picture quality compared to the original theatre film. Hence newer flatpanel televisions have the ability to detect hard telecined film material, remove the extra fields, and reconstruct the original progressive frames for playback 24 frames per second. This is typically refered to as 3:2 pulldown (the ability to pull 3:2 30 fps hard telecined material back down to 24 fps) but it is properly called Inverse Telecine or IVTC, and it results in no interlaced frames, no flicker and improved picture quality. Some PC video cards may also provide this IVTC/3:2 pulldown capability independent of the PC software video decoder.
Hardware DVD players also offer this Progressive 24 fps output and most Software DVD Players as well as the original DScaler also have the ability to output 24 fps by simply ignoring the MPEG Telecined flags as described above. However until the availability of DScaler(IVTC) there was no ability for PC players to also detect hard telecined material like the newer televisions and to IVTC it (remove the repeated fields and restore the original 24 progressive frames per second). Players using video decoders without IVTC, treat this material as interlaced and weave the fields together resulting in reduced resolution, blended pixels and reduced video quality.
Now with DScaler(IVTC) 1080i hard telecined material can be played back with no interlaced frames, no flicker, and no reduced resolution to provide the best possible picture quality. Note that DScaler(IVTC) is designed only for 1080i hard Telecined content but ABC and FOX utilize a 720p(progressive)/30(frames per second) format. This format is not detected nor are any extra frames removed by DScaler(IVTC). The original DScaler authors have indicated their intent to add IVTC support to the original DScaler and to add this 720p film detect & frame removal capability. Until then it is recommended that IVTC be disabled when watching 720P content.
It is also recommended that the IVTC be disabled when watching primarily video content, because DScaler(IVTC) has a strong bias to maintain its IVTC film mode, once it is started which may create unexpected artifacts in video content.
Because DScaler(IVTC) is the only video decoder with this hard telecined IVTC capability and it becomes important to understand the environment within which it operates correctly and how to configure it to operate in the best way.
My testing on XP SP2 revealed the following DirectShow filter combinations provide ZOOM Player, MPC (Media Player Classic) and WMP (Windows Media Player) player compatibility. These filters which are all either provided with Windows or free on the Internet and where applicable should be set at the highest merit(I use "DirectShow Filter Manager"), and selected as the "Playback - Smartplay/Video Renderer/Audio Renderer/DVD" default components in ZOOM Player, and as the external filters in MPC. Others have referenced success with the Nero Splitter ($$) and a need for Reclock Audio Renderer but it caused problems for me.
The following filters worked flawlessly with both MPEG Program Stream (.mpg) (Ripped DVD's) and MPEG Transport Stream (.ts) (HDTV ATSC) files.
Haali Media Splitter
MPEG2 Demultiplexer (Transport Stream)
MPEG2 Splitter (Program Stream)
DScaler(IVTC) Video Decoder
VMR9 Video Renderer
AC3 Audio Decoder
Directsound Audio Renderer
What these Filters Do
The Haali Media Splitter allows all 3 players to jump forward and back on their timelines, allows subtitles to stay in sync with these jumps, and eliminates stutter and sound glitches with DScaler and AC3.
DScaler(IVTC) allows all film material to be detected and played at 24fps. This can be confirmed by using the IVTC Display status option(see below), hot keys in Zoom Player - 'I' which will display the actual frame rate, and 'A' to reset the frame rate and to step through the video frame by frame and see the continuous "no stutter" frames.
DScaler(IVTC) works both with full movies and with interspersed film/video content, for example the PBS special "25 Years of Nature" featured video and film segments which IVTC identified and switched smoothly to 24 fps as required. It also supports ATSC Closed Captioning as well as the NTSC DVD closed captioning and these may be displayed with ZOOM Player using the latest 5.5 release or with Mediagraphs as described in the last DScaler(IVTC) read me.
DirectVOBSub allows subtitles to be displayed. (These can be ripped from DVD or generated from Closed Captions using SCCTOOLS)
VMR9 allows subtitles and Zoom closed captions to be overlayed on the video.
AC3 and Directsound allow AC3 sound without stutter.
DScaler(IVTC) MPEG2 Video Decoder Filter Options
The DScaler Options are listed below with the Neutral (Default) Settings shown in (). They are described in the DScaler Help file and DScaler(IVTC) ReadMe files referenced above. Previous entries in this forum have indicated the options shown in  should be set in DScaler(IVTC) in place of the defaults. Note that for these options to be retained, they must be set while a video is playing or paused (ie: while DScaler(IVTC) is being used). These filter settings may be accessed through the Zoom Player/MPC right click menus under Filter Properties/Filters, or via tools such as the "DirectShow Filter Manager". Note also that changes are effective in real-time once the "Apply" button is clicked.
Display Forced Subtitles......- (ON) / OFF
3:2 Playback Smoothing........- (ON) / [OFF] = On for 60 hz displays only; Off for others [Edited Sept 4/07 per posts below]
Inverse Telecine - NB: DScaler is always looking for MPEG Flags. This option only controls the hard Telecine pixel detection of repeat fields.
- (Disable) = Use if content is primarily Video to disable pixel detection of repeat fields.
- Enable only if IVTC Flags are found = Start pixel detect of 3:2 sequences only after an MPEG Repeat_first_field flag is found.(Use to reduce CPU load)
- Always Enabled = Analyses pixels in the fields looking for 3:2 sequences then starts 3:2 pulldown until sequences stop.
- [Always Enabled(Display Status)] = Adds a line 1 indicator showing when IVTC is active ... for IVTC after MPEG flag, ___ for IVTC after pixel detect.
Adjust FPS if any telecined film
- (Keep 29.97-30 FPS) = best for 60hz monitor
- Set to 23.976-24 FPS = best for 72 hz monitor, perfect for 48 hz monitor
- Force Weave- NB: Deinterlacing mode is ignored and forced to weave when IVTC is enabled.
- Force Bob
Video Delay...................- (0) to 200 ms = Adjust for lip sync
Use Accurate Aspect ratios....- ON / (OFF) = I don't know why off is the default..I use ON
DVB Aspect Preference.........- (16:9 Display) / 4:3 Display Center Cut out / 4:3 Display LetterBox
Hardcode for PAL with ffdshow.- ON / (OFF)
IDCT to Use...................- Reference / MMX Only / (Accelerated)
Output Colour Space...........- YV12 / (YUY2) NB: YV12 which DScaler says is preferred for film, produced Black and White Segments on my display
Do Analog Blanking............- (ON) / OFF = Crops Analog TV Material to 704x480 which is more accurately 16:9 or 4:3 than 720x480
Force Field 1 first Flag......- ON / (OFF)
Two Final Points
Since the goal of all this is to get the best picture with the maximum detail and resolution, it should be obvious that you want to set your display to its maximum resolution and color quality. In my case this is 1440x900 pixels and 32 bits. If you do not, you need to understand that the picture will be scaled by the display adapter down to the resolution you have chosen and in IVTC mode the resultant sampling and interpolation of th "weaved" de-interlaced scenes when video material is encountered may cause significant combing effects. You can test this yourself by pausing an interlaced video at various points and resizing to see the effect at different resolutions. Just small differences in resolution can have major impact on this combing.
You also need to understand that in performing the IVTC, DScaler(IVTC) after it has detected a 3 field:2 field sequence has to rebuild progressive frames using two fields contained in different interlaced frames (ie: the 2's in this hard Telecined 5 frame-10 field sequence: 1-1 1-2 2-3 3-3 4-4). It is therefore possible, particularly when pausing a video and stepping forward by frame and depending on the paused frame, or at transition points between video and film content, that DScaler(IVTC) will stop these rebuilds, in which case the 3 original progressive frames will be followed by one of the original interlaced frames. Restarting a paused video, or playing through to the next film sequence will restart the correct rebuilds.
Based on all of these points, the DScaler(IVTC) MPEG Video Decoder is providing me with a picture quality unsurpassed by any other Video Decoder I have tested.
Feedback requested and appreciated so I can update this post for others.
PM's preferred for in-depth replies/discussion