h.264 Hardware Decoder for HDTV

 

1. Introduction and terminology

 

Who are target audience is to this article?

This article is oriented toward users with zero level knowledge of high-definition television(HDTV) and h.264/AVC decoder. However, all Prof production users despite of that, what initial knowledge level they have in this field, are strongly recommended to read this text.

1.2 What's the purpose of reading this article?

 Prof DVB-cards are used as satellite TV receivers and allow watching open satellite television (FTA) on your computer with high definition. If you desire to obtain comfortable and qualitative watching such a TV, it is necessary to have an appropriate video-card with 100% h.264 video processing and to setup the system correctly as well.

Unfortunately, the method applied to standard definition television(SDTV) is not applicable in such a case. You will not achieve an appropriate image quality having just plugged DVB-card into computer slot and set up “some” codecs for h.264. Perhaps, your DVB-card will start operate but either an image will be displayed separately from sound or it will be blurred and indistinct along with skiping the frames and even whole separate scenes.

This article is written in order to focus the users on that why it is so necessary to use h.264 hardware codec to receive satellite TV in high definition. The following explanations will show you that hardware codec allows the satellite TV receiver users to get better image than software codec does and fully enjoy the quality of high definition.

Usage of h.264 software codec for HDTV is like using the monochrome TV-set for watching color TV. You indeed could watch it but you would not have been enjoying all color TV advantages.

1.3 Then the world was simpler…

In fact, it was simpler. Earlier you had not to know some specific things to make everything work properly. Now there exist too many technologies which depend on each other. Software and hardware interact like the components of layer-cake. We will do our best giving a list of terms appeared due to HDTV development.

In this article the following terms and technologies are clarified to make you understand the theme completely:  SDTV (Standard-definition television), HDTV (High-definition television), h.264/AVC (Advanced Video Coding, DXVA (DirectX Video Acceleration),ITU-T H.264 (ISO/IEC MPEG-4 Part 10, ISO/IEC 14496-10), Full bitstream decoding, Hardware assisted decoding, ATI AVIVO, ATI AVIVO HD,  NVIDIA Purevideo, NVIDIA Purevideo HD, NVIDIA CUDA (Compute Unified Device Architecture), AMD UVD (Unified Video Decoder), CoreAVC, CyberLink H264 Video Decoder, HTPC (Home Theater Personal Computer), VMR7/9 (Video Mixing Renderer 7/9), EVR (Enhanced Video Renderer) etc.

Don't  you think that just to watch HDTV on computer in maximum quality the one really should know many things?

1.4 Idea of high definition image 

High Clearness Television (HCTV) is internationally abbreviated as HDTV (High-Definition Television). You have heard it many times.

Wikipedia, the free encyclopedia, defines HDTV by the following: “A set of standards of television broadcasting of higher resolution by means of digital communication channels”, but we prefer to define it another way. For us, HDTV is an idea about that TV image size can be another, much greater than it used to be. For example, see below the illustration from Wikipedia:

 

 

The basic principle of HDTV is an idea that there is more pixels/dots in width and height of picture, than in outdated television. For example, PAL/SECAM formats provide 720*576 pixels definition meanwhile now HDTV has 1920*1080 or 1280*720 pixels per frame. Thus, an image has become 5 times bigger than before!

The more pixels per frame the better an image. Sometime Ultra-high resolution television will appear. Probably, it will be called HDTV-2 or super-HDTV. Outdated television is now called SDTV (standard definition television). Also you should take into account that such notions as HDTV and codec for HDTV, for example, h.264/AVC are not the same things.

1.5. TV-panels and HTPC

Some satellite TV watchers apply PC as Home Theater. There even exists such a term as HTPC. Wikipedia gives the following definition to this term:
HTPC (English abbreviation for Home Theater Personal Computer) is a conception of Home Theater compiled on the basis of personal computer. Besides this term is used to name such systems usually consisting of a computer, TV set and audio system.

Principally, any computer (not only low-profile) suits for using as Home Theater. The most important thing is to have Plasma panel or LCD preferably with stickers like shown below:

 

Image on HD-panel is displayed through video card with HDMI-interface.

PHILIPS LCD panel with HDTV support

 

 

 

 

HD TV set receives “ready image” from video card. For such a system, there are no codecs (h.264, VC-1, MPEG2 etc.) but just a “ready image”. It shows what it had got. As a complicated hardware-software complex, computer is capable to receive the satellite signal and process it, decoding and transferring sound and image to the TV set.

1.6 h.264 codec 

An idea of enlarged image is absolutely great except for one thing. Signal need to be transferred to a customer through the communication channels with limited capacity and high cost. To solve this problem, it was suggested to use High Compression Codecs for HDTV data transferring and storage.

A system consists of two components: codec and decoder. Proovider operates with a codec, encoding an information. Your satellite TV receiver system shall decode the encoded signal, received from the satellite.

De-facto, such a codec as h.264 has become a standard for satellite HDTV receivers. This codec has acquired several English names which often confuses the users: AVC (Advanced Video Coding), ITU-T H.264, h.264/AVC, ISO/IEC MPEG-4 Part 10, ISO/IEC 14496-10. Technically, all the above-mentioned codecs are identical, we just prefer to use such a name as h.264.

Sometimes h.264 is improperly called MPEG-4 that is not, in fact, quite correct. The whole MPEG-4 standard consists of 22 parts, among which h.264 is listed under number 10 i.e. this standard is a small part of  MPEG-4 global standard.

The main advantage of h.264 is video compressing feature. It also allows SDTV compressing. Additionally, HDTV can be compressed with such codecs as MPEG-2 or VC-1. Also there are codecs that can be used to encode HDTV data for Blu-Ray/HD DVD-disks.

1.7 h.264 Decoder Features

The reverse of the coin of high definition video efficient compression with h.264 codec is that the receiving part suffers an additional load of video decoding and processing, especially taking into account that h.264 codec features several compression levels: very high, high, medium, low. Also an image frequency varies from 24 to 60 frames per minute.

Using quad core central processor you can get enough computer power for h.264 decoding. But it will result, on the one hand, in excessive heating of the whole system, and on the other hand, the video image obtained by means of software h.264 codec is always worse than the video received by the video card from hardware h.264 codec.

1.8 How to make sure that h.264 software decoder is worse than h.264 hardware decoder?

Comparing the following parameters, you can make sure in advantges of h.264 hardware decoder.

  1. Poor color reproduction – in the case of using the software h.264 codec, colors are not as they supposed to be.
  2. Image Blurring – it seems like somebody has spread a soap on TV panel surface. Such an HDTV by its quality resembles SDTV in MPEG-2 format. Then what for should you watch HDTV if its advantages are not usable?
  3. Displaying of diagonal objects - it is often visible with software h.264 decoder, that diagonal objects are stepped from one corner to another.
  4. Poor high-dynamic scenes representation – under a peak load, software decoder starts skipping the frames or whole scenes even with very powerful processors, so that you may see people on your TV screen teleporting from one place to another, as your software has skipped a couple of frames.  Especially it is difficult for decoder to process the video of high compression level with a large number of frames per second.

1.9 Why should you use hardware decoder of h.624 format for HDTV watching?

  1. To provide natural color representation.
  2. To make a displayed image really distinct and high qualitative. Definitely, someone may be satisfied by low quality HDTV image, saying: “Let well enough alone..” This is that same case of watching color television on monochrome TV set. Probably, the main thing fo that one is an opportunity to see image))
  3. To make a line on your TV screen drawn from one corner to another straight,  not stepped.
  4. To avoid teleportation of people and other objects on TV screen, except such situations when it is invisaged in scenario.
  5. To discharge the central processor. Central processor load comprises 15-20% of maximum when hardware codec is used, while with software codec it comprises 90-100%.

1.10 Why h.264 hardware decoder provides a better image than software h.264 decoder does?

In order to improve economic efficiency of satellite signal transmission, operators maximally compress the data in h.264 format. Additionally, h.264 standard assumes that received image will be post processed with anti-aliasing filter, sharpening filter etc.

 h.264 hardware decoder performs all the actions required to make HDTV image look like the real HDTV image, but not like a bit improved version of SDTV.

2. Composition of qualitative HDTV layer cake in Windows

2.1 HDTV cake layers

HDTV system may be represented as a layer cake, layers of which are: “Traffic flow from DVB-card driver” – “ATI AVIVO HD technology video card and NVDIA Purevideo HD technology video card drivers” – “Renderer”.

Of course, this scheme is quite approximate. Everything is much more complicated. But it suits for general comprehension of system interaction.

In all cases of hardware decoding renderer and decoder exploit the functions of ATI AVIVO HD video card and NVDIA Purevideo HD video card driver. Sometimes post processing is partially made at the decoding level.

In all cases graph for satellite HDTV processing in h.264 format looks like the following:

 

Speaking accessibly, renderer is a device to which the video processed by decoder is transferred.

2.2 Hardware decoding of h.264 by means of DXVA

HDTV decoding procedure is divided in four stages performed as follows:

1) VLD (Variable-Length Decode), CAVLC/CABAC or Bitstream processing.
2) IDCT (Inverse Discrete Cosine Transform) or Frequency Transform.
3) MoComp (Motion Compensation) or Pixel Prediction.
4) PostProc (Post Processing) or Deblocking.

The first and second stages are most time-consuming. VLD is using up to 50% of system resources during HD-video decoding, also IDTC is using up to 40%. Further MoComp and PostProc operations take less time, and not more than 10-15% of system resources during HD-video decoding

To increase video decoding hardware speed Microsoft Corporation had developed DXVA 1.0/2.0 (DirectX Video Acceleration) technology.

There exists the two following DXVA types:

1.Partial hardware h.264 decoding/Hardware assisted decoding

One part of operations is performed by the central processor (CP) and the other part by the graphic processor (GP). Practically, these technologies had been realized by leader video card manufacturers and are known as: ATI Avivo and NVIDIA Purevideo.

2. Full hardware h.264 decoding/Full bitstream decoding

All the operations are fulfilled by the hardware decoder. Practically, these technologies had been realized by leader video card manufacturers and are known as: ATI Avivo HD and NVIDIA Purevideo HD.

Partial and Full hardware h.264 decoding speed-up can be illustrated by the following scheme:

 

 

As it is shown in the figure, ATI Avivo technology is intended only to  perform the second, third and fourth video decoding operations, meanwhile the most time-consuming is the first, VLD/Bitstream decoding operation(up to 50% of computing), which is performed by the central processor. Such a technology of full bitstream decoding can not be considered as full-scale.

That’s why for hardware video decoding in h.264 format we shall recommend only full hardware decoding technology- Full bitstream decoding. This technology is branded as: ATI Avivo HD and NVIDIA Purevideo HD.

ATI AVIVO HD (don't mix up with ATI AVIVO™)

At present, the following ATI/AMD video cards back up full bitstream HD-video decoding technologies are marketed:   Radeon HD 2400 Series, Radeon HD 2600 Series, Radeon HD 3000 Series, Radeon HD 4000 Series, Radeon HD 5000 Series, Radeon HD 3200/AMD 780G Chipset, Radeon HD 4200/AMD 785G Chipset, Radeon HD 3300 IGP/AMD 790GX Chipset.

NVIDIA Purevideo HD (don't mix up with NVIDIA Purevideo)

At present the following NVIDIA video cards back up full bitstream HD-video decoding technologies are marketed: GeForce 200 Series, GeForce 9 Series, GeForce 84xx, GeForce 85xx, GeForce 86xx.

Following the link 4.4 below, you will find PDF-file with official  Purevideo HD technology support specification for NVIDIA video card. Lets consider that document more detailed:

 

Having studied the document more detailly (see figure above), it becomes clear that among this range of NVIDIA video cards, only GeForce 88xx video card supports hardware h.264 decoding partially. Absence of a tick opposite to this position in specification list signifies that GeForce 88xx does not perform two first video decoding stages (CAVLC/CABAC and IDCT) by means of hardware, meanwhile it comprises 90% of the whole computing.

Another new NVIDIA video cards from the above-mentioned list provide full hardware h.264 decoding completely discharging the central processor.

Official NVIDIA web site illustrates NVIDIA Purevideo HD technology advantages as follows:

 

DXVA usage recommendations

1. Provide a video card with full support of hardware h.264 decoding.

2. Use an officacially licensed OS Windows assembly with updates and without codec-packs installed. In unregistered  OS Windows assemblies some libraries and modules required for DXVA can be missed.

3. Install last version of DirectX 9 or DirectX 10.
4. Use the “successful” video card driver version. Unfortunately, “successful” in this case,  does not necessarily means the latest version. It is recommended to use for ATI video cards such driver versions as 8.10 or 8.12.

5. And the most important is that there is no h.264 decoders supporting DXVA without glitches. Only one version of CyberLink H.264/AVC Decoder can be recommended. ArcSoft Mpeg2/H264 Video Decoder appeared later but its last versions compete with CyberLink decoder enough successfully.

Concerning features of new and old ATI/AMD videocard driver versions,  the following comments by specialists can be cited:

New equipment by ATI is released and the old one is being thrown away. Primarily optimization touches the number of attractions in every new game. When I started to come across BSODs with drivers of version 9.6 I decided to look through “release notes” (if any new driver has appeared). As usual, a new game support for 48XX was added and it was consequently ruined everything else. In the next driver version insignificant bugs were corrected and artifacts of video-content reproduction remained. Everything is as usual.

I am not sure whether generally anything can be advised to users. There is no prepared solution. If  we speak about hardware  h.264 speed-up, then one of versions of CyberLink decoder or similar to it should be used.

Latest drivers by ATI, as a rule, are not a good solution to apply for work with HD. Once I had faced such a situation. I had installed the latest drivers of version 9.5, and as a result I had got an image glitching and BSOD appearing agai and again. At the average, it was happening 1-2 times per hour. Then I had installed a driver of version 9.5. The situation was a bit better but meanwhile BSOD occurred very often. Then I had changed drivers to version 8.5, and BSOD disappeared.

Besides a bunch version of driver, version of h.264 decoder is sometimes very important for a stable work of the whole system.

2.3 Software h.264 decoding 

Again, software decoding is not recommended for perfect HDTV watching. If so far you don't have a video card with hardware h.264 decoder then you can try to enjoy “watching color TV on a monochrome TV-set” by means of software h.264 decoder.

Among the whole software decoders it is recommended to choose CoreAVC as the fastest. This codec is commercial, you ncan purchase it at the web site http://coreavc.com/. You can use a trial version for 14 days.

To provide efficient work of CoreAVC a dual core processor with 2,5-2,8 GHz frequency is required.

If you have NVIDIA video card with NVIDIA CUDA technology support, then system requirements to the central processor for software h.264 decoding by means of CoreAVC codec can be significantly decreased.

Since March 2009 CoreAVC supports NVIDIA CUDA technology (version 1.9.5.0). This technology allows to transfer a significant part of load from the central processor to the graphic processor.

NVIDIA video cards which supports CUDA technology can be seen by  the link 4.5. Support of CUDA technology had appeared in NVIDIA drivers from version 182.05.

2.4 Choosing the program for satellite TV watching

To display satellite HDTV in h.264 format, TV-players are recommended to be applied in the following consequence:
1. AltDVB version 2.2 with PTG Engine module.

2. DVBViewer Pro version from 4.2.1 with standard module.

3. ProgDVB Pro version from 6.20 with standard module and DVBDream version from 1.4i with PTG Engine module.

As a renderer VMR 7/9 should be used for OS Windows and EVR for OS Windows Vista/7.

3. Example of AltDVB adjustment for HDTV

As it was mentioned above all user settings are individual for different satellite Tv receivin systems. Settings of properly adjusted system should be mentioned as an example.

 

Operating system: Windows XP SP3
Video card: ATI Radeon HD 4850
Video card driver version: 8.10
DVB-card: Prof Revolution 7301 DVB-S2 PCI or any other Prof DVB-card
DVB-card driver version: 1.0.1.2
Program of satellite TV player: AltDVB v.2.2 (free of charge program).
h.264 video-decoder: CyberLink H.264/AVC Decoder (PDVD8), i.e CyberLink PowerDVD 8 commercial package (Acquired along with the package. CyberLink PowerDVD package cost comprises 45-50$.).

Audio-decoder: AC3 Filter.
Renderer: VMR 7. 7.
Codec-packs: absent. Codec packs “corrupt” the system and result in impossibility to adjust its stable operation. It is recommended to use clear system installed from the official licensed OS Windows distributive assembly to successfully adjust hardware h.264 decoding.

 

Video decoders available in AltDVB

 

 

Audio decoders available in AltDVB 

 

 

 

AC3Filter is recommended for sound decoding

 

Decoders settings for SDTV in AltDVB

 

 

 

 

Decoders settings for HDTV in h.264 format in AltDVB  

 

 

Settings for multiview (PIP, Picture-in-Picture) in AltDVB 

 

 

4. Useful links

4.1 Oficial description of ATI Avivo HD technology:
http://www.amd.com/us/products/technologies/ati-avivo-hd/Pages/ati-avivo-hd.aspx

4.2 Description of AMD UVD technology and list of ATI video cards with ATI AVIVO HD technology:
http://en.wikipedia.org/wiki/Unified_Video_Decoder

4.3 Official description of NVIDIA Purevideo HD technology:
http://www.nvidia.com/page/purevideo_HD.html

 

4.4 NVIDIA video cards  supporting NVIDIA Purevideo HD technology:
http://www.proftuners.com/download/h.264/pure_video_hd_support.pdf

 

4.5 NVIDIA video cards with CUDA technology support for software decoder CoreAVC hardware speed-up:

http://www.nvidia.com/object/cuda_home.html

4.6 Utility for hardware h.264 decoding level identification:

http://www.proftuners.com/download/h.264/DXVAChecker_2.1.0.0.zip

Pin «H264_VLD» signifies full hardware h.264 decoding.

Pin «H264_MoComp» and others signify partial hardware h.264 decoding.

Availability of Visual C++ 2005 SP1 Runtime and .NET Framework 2.0 is required for Windows XP and Visual C++ 2005 SP1 Runtime is required for Windows Vista for DXVA startup.

 

4.7 Description of MPEG4 standard and its parts including Part 10 (ISO/IEC 14496-10): Advanced Video Coding: Video signal codec also known as AVC, technically identical to ITU-T H.264 standard:

http://en.wikipedia.org/wiki/MPEG-4

 

4.8 h.264 description: 

http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC

 

4.9 HDTV description:

http://en.wikipedia.org/wiki/High-definition_television

 

4.10 DirectX Video Acceleration (DXVA) description:

http://en.wikipedia.org/wiki/DirectX_Video_Acceleration

 

4.11 AltDVB programs archive. DVBDream, ProgDVB and modules for them:

http://www.proftuners.com/download.html

 

4.12 CoreAVC is the fastest software codec:
http://coreavc.com/

5. Main secret of DVB-card

In the end, we shall tell you the main secret of successful HDTV adjustment on computer – practically DVB-S/S2-card does not show any HDTV!

 

The role of DVB-card is only to accept traffic flow correctly and transfer it further. Here its function is complete. Subsequent traffic flow processing is out of DVB-card operational tasks, so DVB-card developers can not influence further fate of traffic flow, because it's out of their responsibility area.

 

Those, who don’t comprehend this thought, blame DVB-card developers for all their problems with system adjustment.

 

Those who comprehend this thought, chooses an official licensed Windows assembly (XP SP2/SP3 32 bit) for multimedia computer, select video card drivers that never show BSOD when working with h.264, apply a reliable h.264 decoder, and use stable TV systems with demultiplexor.

Last proofreading of the article: 26.09.2010