Hardware or Software Decoder?

From LinuxTVWiki
Jump to: navigation, search

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 features 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 (see "full-featured" or "premium" cards below).

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

"Full-featured" is a term that was initially adopted to describe the early Siemens, Hauppauge and TechnoTrend DVB-Cards which utilized an on-board AV711x MPEG-2 decoder chip. These very first DVB devices for the personal computer were deemed "full-featured" in light of the fact that they provided essentially the same capabilities as what a dedicated SetTopBox could provide. That terminology has stuck and, since that original labeling, has continued to have been applied to later DVB-{C,S,T} hardware decoding cards as well.

With the advent of less expensive "software decoding" based DVB cards (see below), the so called "full-featured" class of cards also took on the notion of being Premium devices -- both in terms of distinguishing their MPEG-2 decoding capabilities, as well as accounting for the premium in price which they commanded over the newer class of device. The two terms have since become synonymous.

(ii) ATSC hardware decoding cards

  • primarily feature the Janus MPEG-2 decoder
  • although occasionally referred to as a "premium" cards, the "full-featured" label is not applied to the ATSC group of hardware decoding cards, but rather it is reserved or unique to the DVB-{C,S,T} group of hardware decoding cards described above
  • unlike their DVB-x counterparts (i.e. the so called "full-featured" cards), the ATSC hardware decoding cards are capable of decoding MP@HL MPEG-2 streams .... in other words, they are actually more full-featured than the "full-featured" group! ... the superior processing capabilities of the ATSC hardware decoding cards largely reflects the fact that HDTV was rolled out in the American market much sooner then it was in other digital TV service regions
  • added complexity i.e routing of the decoded bitstream – it can't be passed over the PCI bus, so it is only possible to offload straight to display device via an on-board framebuffer

Software Decoding Devices

This class of DVB device does not feature TS decoding capabilities on-board, and so requires that the incoming TS be transfered to the CPU of the host system, where upon it will be decoded via the algorithms provided by a software decoder (eg. xine, ffmpeg, VDR Software Decoder Plugin etc.). As TS decoding operations can be computationally intensive, burdening the host system's CPU with such task can impede its ability to simultaneously tackle other processes.

Historical Perspective (a.k.a "Budget" cards)

Note: This article is currently a Work in Progress.

In respect to the antiquated "full-featured" and "premium" terminology, the software decoding class of DVB cards are refered to as "budget" cards.

cheaper, decoder-less card Cards without a built-in MPEG decoder 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".

"Budget" stands for "Low Budget DVB Card" and mostly means the absence of a hardware decoder chip.

  • Ubiquitous nowadays

a hardware decoder is expensive and not really necessary any more. For example, the relevant minimum system requirements for a Technotrend DVB-T Budget T1500 are: CPU Pentium at 733 MHz (or for HDTV 2,4GHz or faster), 128 Mbyte RAM, PCI/AGP-videocard with at least 32Mbyte RAM

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 is unjustifiable given that one pays for a hardware decoder they really don't need – as every recent PC with more than ~500MHz is able to decode SDTV MPEG2 Streams in software without any extra cost.

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.

Nowadays, it is highly recommended by many to use a software decoding card. 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.”

  • No modern card design has adopted a hardware decoding approach.
  • Microsoft even denies to support this hardware decoding type of cards in their Broadrocast Driver Architecture (BDA).
  • 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.

By today's standards the "full-featured" and "premium" labels have become misnomers for several reasons:

  • 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} transmission services were still several years away from offering MP@HL (HDTV resolutions) streams. Nonetheless, despite the widening adoption of HDTV services, use of the “full-featured” tag line for these cards 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.

The TechnoTrend Skystar 1.x / Hauppauge WinTV Nexus cards require that the host PC upload firmware to the card on startup.

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. However, this is no longer the case, as VDR now also offers the VDR Software Decoder Plugin.

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) MPEG-2 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 MPEG-2 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 MPEG-4/DivX (if the card supports standard MPEG-2 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 MPEG-2 DVB data in its original MPEG-compressed form (easier to transfer) and are therefore not implemented as premium/full-featured cards.

Also see: