Each frame of video content contains embedded information (metadata) that tells playback devices how to play the content. Part of the metadata determines if a particular frame of video is interlaced or progressive, and the playback device is supposed to react accordingly. If a playback device is set to output a progressive scan signal, interlaced content must be de-interlaced to be viewed correctly, while progressive scan content can be passed untouched. If the playback device is set to output an interlaced signal, progressive scan content must be interlaced to be viewed correctly, while interlaced content can be passed untouched.
However, sometimes the metadata contained in the video signal is incorrect. Content may be interlaced while being marked as progressive scan, or the content may be progressive scan while being marked as interlaced. This will pose a problem for playback devices that properly look for and adhere to the information in the metadata, as it will cause the improperly marked frame to be handled the wrong way, which results in visible artifacts during playback. Below are two examples of improper handling of the frames (click the pictures for an enlarged view).
A progressive scan frame being handled properly:
The same frame after being de-interlaced when it shouldn't be:
An interlaced frame after being handled properly:
The same frame not being de-interlaced when it should be:
In addition to the visible artifacts, there is also another problem. The metadata is embedded in each frame of the video signal, so some frames of a particular program may be correctly marked while others are not. When a particular frame has different frame rate metadata from the frame before it, this may cause the playback device to change operating modes...specifically, the playback device may either switch to de-interlacing mode, interlacing mode, or pass-through mode. Below is a table that summarizes the instructions that any graphics processor must go through when the metadata changes:
Switching the state of the de-interlacer or interlacer requires time, and playback devices only have a certain amount of time to process the frame before the next frame arrives. When a playback device is not finished processing a frame before the next frame arrives, this will cause adverse effects such as stuttering/dropped frames. While most consumer electronics (CE) devices are not affected by this, this is of particular interest to HTPC users. HTPCs contain GPUs that are very different from the graphics processors found in CE devices, and are generally not as well designed for video processing as the graphics processors found in CE devices. They are generally slower to do things like change the state of the de-interlacer/interlacer, so this makes HTPCs that use software that takes advantage of GPU processing more susceptible to performance issues when faced with content that changes from interlaced to progressive or vice-versa. The amount of time required for each GPU to complete the instructions varies by GPU, and when a GPU is in the process of completing the instructions and one or more additional frames arrives for processing, the additional frames will be dropped until the GPU is finished changing the state of the interlacer/deinterlacer. This is seen on-screen as a stutter in playback.
Additionally, on some NVIDIA GPUs, with current drivers (as of 9/25/2012) the 29/59 bug may manifest as a diming and brightening of the image at the transition point from interlaced to progressive coding. If you encounter this on NVidia hardware the following steps should mask it:
Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Debug\ehPresenter.dll]"NominalRange"=dword:2
Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Debug\ehPresenter.dll]"NominalRange"=dword:1
This should mask the change in brightness on the interlaced/progressive transition.
It should also be noted that GPUs generally have a variety of post-processing options, all of which require a small amount of time to complete. Performance will vary based on how much post-processing a GPU is told to do. The more post-processing needs to be done, the less time the GPU has to change the state of the deinterlacer/interlacer, and the more likely you are to see stuttering. However, most GPUs will continue to stutter even after disabling all post-processing.
In Windows Media Center, you can see when the metadata in the content is incorrect. Simply start playing some content, press 4-1-1 and then the Info button on your remote, or type 411 and press Ctrl+D on your keyboard. This should bring up the debug screen in Windows Media Center. Using the right arrow, navigate the screens until you get to "Debug: Presentation", which is the furthest screen to the right. Look at the frame rate listed. If it changes between 29.97 and 59.9401 while playing the exact same content, you are seeing the metadata embedded in the signal fluctuating. This is commonly referred to as the 29/59 frame rate switching issue or the 29/59 bug.
Below is an example. Notice the frame rate is different in each screenshot.
Here's a video example of the frame rate changing on a GPU that can't handle it (the problem starts about 25 seconds into the video):
There is only one true solution to this problem: Encode the video with the correct metadata to begin with. The solution is the responsibility of the entity that encoded the video, which means contacting the broadcaster, cable network, or cable company that encoded the video and working with their engineers to resolve the issue. Additionally, Microsoft has acknowledged this issue in their Knowledge Base Article ID 2658140 with no known Windows Media Center resolution at this time.
In lieu of attempting the solution listed above, there is a workaround available. A number of GPUs have been identified as able to play back content with the bad metadata without stuttering or other adverse effects, provided there are no other issues with the system and the correct processing settings are applied. Note: Other issues and/or incorrect processing settings in the GPU software may contribute to stuttering and/or other adverse effects. It may be necessary to disable all post-processing in the GPU software to get smooth playback.
Note to wiki editors: Please ensure you have confirmed smooth playback with content that switches frame rates between 29.97 Hz and 59.9401 Hz before adding GPUs to this list.
GeForce 8600 GTS
GeForce 9400 (including ION platforms)
GeForce GT 425
GeForce GT 430
GeForce GT 440 (same core as 430)
GeForce GTS 250
Radeon HD 4200
Radeon HD 4550
Radeon HD 4650
Radeon HD 5450 with Dynamic Contrast Adjustment turned off
Radeon HD 6450
Radeon HD 6850
No Sandy Bridge GPUs are capable of playing 29/59 content without stuttering.
Core i3 with HD4000 graphics
With NVIDIA GPUs, there is an issue nicknamed the PC/HDTV timing bug, which is manifested as screen blanking when content with the 29/59 framerate issue is played using specific settings in the NVIDIA Control Panel on certain NVIDIA GPUs. To solve the screen blanking issue, open the NVIDIA Control Panel, and using the navigation pane on the left, expand the Display category, then click "Adjust desktop color settings". Find the drop down menu labeled "Content Type Reported to Display" and select "Full screen videos" (it is also reported that any setting other than "Auto-select" may work). After you have made the change, click the Apply button at the bottom of the window to apply the change.
I have an ATI Radeon HD 4200 integrated into my ASUS mobo, but it still stutters when playing 29/59 content.
Make sure you disable all enhancements such as dynamic contrast, noise reduction, inverse telecine, etc. I do not have the HD 4200, so I cannot personally confirm that it does or does not work. However, at least one person is claiming it does. See experts.windows.com/.../537250.aspx for more information.
Unfortunately, disabling Dynamic Contrast for my HIS ATI Radeon HD5450 PCI card is NOT working consistently for me. Reluctantly, I'm going to try the Nvidia GT 430 and see if that works any better. The whole experience is very frustrating.
Gigabyte GA-MA785GPMT-UD2H, AM3 Socket, MicroATX
Award BIOS F3, 9/16/2009
AMD Athlon II X3 435, 2.9Ghz, AM3 Socket
Scythe SCSK-1100 R (Inst. 2/20/2011)
OCZ Technology 4GB (2X2GB) DDR3 PC3-12800 Gold 1600MHz
HIS ATI Radeon HD5450 512MB DDR3 H545H512P
Integrated Realtek ALC889A HD audio
Ceton InfiniTV 4
Western Digital 750GB, WD7501AALS , SATA2
LG CH08LS10K 8X SATA Blu-Ray/DVD Writer Combo
Antec Fusion Remote Black / Noctua NF-S12B FLX fans
OCZ Technology ModXStream Pro 500w
Windows 7 Professional 32bit, SP1
In regards to the HD4200, I did some testing and the 29/59 bug does show up when using some various Catalyst software/drivers. Without it my system performs perfectly. I tried hard to duplicate it, but only could once I went to the AMD site and downloaded the latest Catalyst. I dont remember what version causes this issue.
I may be wrong, but I think the Frame Rate value is mislabeled in WMC, and is actually showing FIELD rate. In which case, 59.9401 would represent 1080i, and 29.97 for 1080p.
Awesome writeup. Thank you richard1980!!!!
I just found this article today. I'm hoping for a directshow-based workaround. Is who exactly is fix this this issue? Is it HBO or Comcast?
WORKAROUND display settings for NVIDIA
For most NVIDIA graphics processors including ION, the WORKAROUND for the 29/59 bug can be implemented by changing the display settings as follows:
a) Go to
Control Panel>NVIDIA Control Panel > Display > Adjust Desktop Color Settings
b) Find the drop down menu labeled "Content Type Reported to Display" and select "Full-screen videos". [Note: Selecting "Desktop programs" also works – anything but “Auto-select”.]
c) Click "Apply"
Note: The severity of the "stutter" symptoms associated with 29/59 frame rate encoding error can be (depending on graphics hardware) much more severe than the examples described elsewhere in this wiki. For instance in the case of NVIDIA ION graphics *without* the above WORKAROUND, the "stutter" may be so extreme that the display intermittently goes black for several seconds each time the detected value of encoded frame rate cycles between 29.97 and 59.94 fps, or in the most extreme cases the display may simply remain completely black if the frame rate continuously cycles several times per seconds. The above WORKAROUND for NVIDIA ION graphics hardware does not correct the frame rate encoding, but does make the black-screen stutter symptoms go away.
In reference to the "Content Type Reported to Display" comment, that fixes a different problem known as the PC/HDTV timing bug. It DOES NOT solve the stuttering issue described in this wiki.
I resolved the 29/59 frame rate issue on:
ASUS P8H67-M EVO motherboard (BIOS v2303) with HD2000 Integrated Graphics
Driver Version 184.108.40.20656
Windows 7 x64 SP1
Plugged in via HDMI
In the Driver Control Panel (Advanced Mode) I am currently setup as follows:
Color Depth: 32bit
Refresh Rate: 60i Hz (I have a 1080i panel)
Monitor / TV Settings: [note: I could never get these to 'stick' to any other values, but I did play around here]
Quantization Range: Limited
IT Content: CHECKED
Standard Color Correction: Driver Settings
Total Color Correction: UNCHECKED
Noise Reduction: Driver Automatic Settings
Sharpness: Driver Automatic Settings
Skin Tone Enhancement: UNCHECKED
Film Mode Detection: UNCHECKED
Adaptive Contrast Enhancement: UNCHECKED
After doing all of this, I also did the following, which in the end seems to have been the trick:
- Right Click on the HD Graphics Notification Center Icon
- Select Graphic Options, Profiles, Media Properties, and Default Profile.
No check mark will appear next to Default Profile if you check it, however when I had WMC in windowed mode on HBOHD and performed this, the flickering stopped immediately. I rebooted and made sure things were still good and indeed they were. I also confirmed that a recorded video which previously experienced this problem no longer had the visual flicker, even though when I looked at '411-More Info' I could still see the rapid cycling between 59 and 29 on the Presentation Mode screen.
I managed to successfully work around the white flickering caused by 29/59 Hz changes on my NVidia GeForce 8400GS by using the slightly older NVidia driver version 280.26. Before I was using version 295.73 and I did see the white flickering with that.
I can also say that the white flickering problem DOES happen with a GT 430 using the current NVidia driver version 296.10. I have not tried the older driver version with the GT 430, though.
I just thought it would be worth mentioning as I actually bought the GT 430 only because of the wiki entry stating that it would not show 29/59 Hz problems.
Im not sure why, but there some people who confuse this issue with a completely unrelated issue. The issue described in this article; have a unique symptom where certain scenes in the video (usually during panning or movement of the camera back and forth will cause the video to stutter for a second or so). This is seems to be caused by the system not being able to switch from hard-telecine to soft-telecine seamlessly.
It's NOT directly related to the white flickering issue caused by the display card not displaying 0-255 color range consistently.
Just to say this 'bug' is now being experienced in the UK with freeview HD. Turned up about 6 months ago when they introduced interlaced/progressive switching. However, we use 1080i25, hence the frame rate is switching from 50 to 25 when the GPU doesn't deinterlace a frame when it should. It is trickier to spot as a lot of content is now being broadcast at 1080p25, which is no problem, so it can seem to 'disappear'. However, live tv, and most annoyingly sport, is all 1080i. This means all football is unwatchable, which should add a good number of disgruntled users. Freesat, on the other hand, (our free satellite service) is fine as it does not yet use interlaced/progressive switching. I can report that the 660Ti does suffer the stuttering.
UK with 660Ti: I should also add that you only see stutters when de-interlacing is switched off for just one frame and turned immediately back on again. It has no problem switching to progressive when it is supposed to.
Also in UK and experiencing stutters when viewing BBC and ITV 1080i content in WMC7 and on ATI Radeon HD5670 now on latest drivers (220.127.116.11). Based on your findings and commentary, do you think the only surefire solution to this issue is purchasing a new graphics card - i.e. one on the above list?