Hardware or Software Decoder?

From LinuxTVWiki
Revision as of 18:22, 2 December 2007 by CityK (Talk | contribs)

Jump to: navigation, search
Note: This article is currently a Work in Progress.

DVB devices receive a MPEG2 Transport Stream (TS); a highly compressed multiplexed stream that contains encoded video, audio and other associated streams. In order to view the underlying content contained within the received TS, the TS itself, and its embedded constituent streams, must be decoded. The particular method undertaken towards those decoding operations is what principally defines which of the two classes a DVB device can be categorized under: as a hardware decoding device or as a software decoding device.

Hardware Decoding Devices

This class of DVB device feature an on-board hardware MPEG decoder IC. As TS decoding operations can be computationally intensive, allowing the receiving device to also handle the decoding of the incoming stream effectively alleviates the need to tie up the host system's CPU with that burden and, instead, leaves the CPU free to tackle other processes.

Historical Perspective

At the time that digital TV services emerged, MPEG2 encoded content was the norm and decoding of such streams was still significantly challenging for the typical CPU of that era. Consequently, the first DVB devices for the personal computer market were PCI cards that all featured an on-board hardware MPEG2 decoder IC.

Within a few years, the increased computational abilities of the average CPU greatly diminished any real need for a dedicated decoding device. Still, many individuals seemed to desire the off-loading from the CPU that a hardware decoding device offered, and, hence, this class of device remained quite common within the marketplace alongside the newer "software decoding" devices (see below). However, this is no longer the case today, as software decoding devices have become the ubiquitous offering, although a few manufactures still produce hardware decoding devices too.

In any regard, two particular groups of hardware decoding PCI cards developed and are discussed below:

(i) "Full-Featured" or "Premium" cards

One group of DVB-{C,S,T} hardware decoding cards, the early Siemens, Hauppauge and Technotrend DVB cards utilizing the AV711x MPEG2 Decoder, became commonly known as “Premium” or “Full-featured Cards”. However, by today's standards, such labels or classifications have become misnomers:

  • These cards feature a decoder (the AV711x) that is only capable of processing MP@ML streams (i.e. up to SDTV resolutions only). In fairness, at the time this particular lot of devices debuted, DVB-{C,S,T} services were still several years away from offering MP@HL (HDTV resolutions) streams.

Nonetheless, despite the advent of HDTV services, the “full-featured” tag line continues to persist, although such references are clearly obsolescent. While these “Premium” cards do alleviate the host system's CPU from the task of decoding SDTV streams, it should be noted that they do so at the expense of PCI bus resources – after decoding, the large uncompressed SDTV bitstream is offloaded from the card across the PCI bus to the video adapter for display.

For a long time the VDR Project unfortunately forced its users to install at least one of these expensive cards in their system. However, this is no longer the case, as VDR now also offers the VDR Software Decoder Plugin.

(ii) ATSC hardware decoding cards

  • Janus based Mpeg 2 decoders
  • uncommon to see such labels applied to them, although occasionally referred to as premium cards.
  • are capable of MP@HL (i.e more full-featured then their DVB-x counterparts)
  • routing of decoded bitstream – can't pass over PCI bus, only possible to offload straight to display device

Relevance of Hardware Decoding cards Today

Ultimately, the utility that such devices provide is subject to individual opinion.

That said, in the case of the so called “Full-featured” cards, there are some that feel that these devices are outdated and that their premium expense unjustifiable given that one pays for a hardware decoder they really don't need – given every recent PC with more than ~500MHz is able to decode SDTV MPEG2 Streams in software without any extra cost. One user even expressed “let the "Full-featured Cards" die better sooner than later. You can spend your money a better way, invite your girlfriend for a ice-cream or drink some beer with your friends.”

For more capable decoding devices, such as those that can handle HDTV resolutions, the arguments against them aren't necessarily as valid, given the complexity and demands of HDTV decoding operations. Nonetheless, their value has also been somewhat diminished in the recent years by technologies (such as XvMC) that allow for the offloading of parts of the decoding processes from the CPU onto the GPU of the video adaptor. Secondly, the march of time has not impeded the continued progression of raw CPU power, and even fluid playback via pure software decoding is quite achievable with most AMD and Intel CPUs since the last couple of years.

  • No modern card design has adopted a hardware decoding approach.
  • Microsoft even denies to support this hardware decoding type of cards in their BDA Driver Architecture.
  • realization of a mixture of software and hardware assist decode
  • End of the Hardware decoder card? Maybe not. Emergence of services using MPEG4 part 10 (AVC/h.264). May see a revival....at least, till raw cpu, GPU and software again render hardware solutions unecessary.

Software Decoding Devices (a.k.a "Budget" cards)

This class of DVB devices rely upon the host system to decode the incoming stream, received by the device.

  • Ubiquitous. Nowadays, most cards can be classified as software decoding devices.

Instead, the still encoded, unchanged stream goes to the CPU and is decoded based upon the algorithms of a software decoder.

These cards are also sometimes referred to, in antiquated terms, as budget cards, i.e. a reference to the fact that they lack a MPEG decoder chip, as would be found on a so called "premium" or "full-featured card". Cards without encoder are called budget in this terminology. "Budget" stands for "Low Budget DVB Card" and mostly means the absence of a hardware decoder chip.

Commonly on newer hardware, for example the hardware MPEG2 decoder is missing, as it is too expensive and nowadays not really necessary any more. With a budget card, the decoding is done by software on the computer's CPU, e.g. VDR Software Decoder Plugin or xine.

For example, the relevant minimum system requirements for a Technotrend DVB-T Budget T1500 are: CPU Pentium at 733 MHz (for HDTV 2,4GHz or faster) 128 Mbyte RAM PCI/AGP-videocard with at least 32Mbyte RAM

A Full-featured Card (short full-featured or sometimes premium) is a term which originally described the early Siemens, Hauppauge and TechnoTrend DVB-Cards with onboard AV711x chip used as MPEG2 Decoder. The TechnoTrend Skystar 1.x / Hauppauge WinTV Nexus cards require that the host PC upload firmware to the card on startup.

Cards without a built-in MPEG decoder are called budget in this terminology.

Bear in mind that this naming can be deceptive; for modern systems with powerful CPUs a "full-featured" card may be simply a waste of money as a recent PC with more than ~500MHz should be able to decode MPEG2 streams in software without any extra cost.

For a long time the VDR Project unfortunately forced its users to install at least one of these expensive cards in their system.

No modern card design repeated this approach, Microsoft even denies to support this type of cards in their BDA Driver Architecture.

Today it is however highly recommended to install the VDR Software Decoder Plugin instead and let the "Full-featured Cards" die better sooner than later. You can spend your money a better way, invite your girlfriend for a ice-cream or drink some beer with your friends.

Full-featured vs Budget?

A full-featured card can do everything that the budget PCI card can do, but also provides hardware DSP and MPEG2 decoding (uncompressing the received video data). This typically comes at a 100% increase in cost, compared to cards which rely on these functions to be available in software.

The full-featured card may be a sensible option if:

  • A slow host computer (or one running multiple tasks) is being used to view live TV. Even a 200MHz Pentium MMX can display a usable image from a full-featured card, despite being too slow to decode most MPEG video streams in real-time.
  • An analogue output directly from the card to a sound system or composite monitor is desired. Once tuned to an unencrypted free-to-air signal, the premium card will output an analogue A/V signal with no further processor intervention. It will keep playing until reset, even if the host computer is unresponsive or crashed.

The full-featured card offers no real advantage under any of these conditions:

  • The card is being used solely to record (not view) MPEG2 programming. Stored video, including DVD's, must retain a compressed format in order to be manageable in size.
  • The card is being used solely to stream received MPEG2 to a remote network computer or to an MPEG-capable device (such as the Hauppauge MediaMVP, which has its own MPEG hardware)
  • The received video is being sent to a display adapter which already supports MPEG natively
  • The original programme source is HDTV (for cards where the provided hardware decoder is SDTV-only)
  • The transmitter is sending non-DVB or proprietary-format content, non-MPEG data (such as a satellite Internet downlink), or an incompatible video format. These include MPEG 4:2:2 or MPEG4/DivX (if the card supports standard MPEG2 only).
  • The card is used in a fast computer with adequate resources to decode MPEG in software.

The full-featured cards are PCI-only, as they rely on being able to transfer massive amounts of uncompressed video to a display card over the system bus. USB DVB tuners will normally leave MPEG2 DVB data in its original MPEG-compressed form (easier to transfer) and are therefore not implemented as premium/full-featured cards.

Also see: