Difference between revisions of "Hardware or Software Decoder?"

From LinuxTVWiki
Jump to: navigation, search
m (Added category: Technology)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This article is 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.
 
+
DVB devices receive a MPEG2 Transport Stream; a highly compressed multiplexed stream that contains encoded video, audio and other associated streams.  In order for the underlying content to be displayed on a viewing device, the TS must be decoded into a format that is native to the viewing device.   Such decoding operations can be computationally intensive.  There is essentially two different classes of DVB devices, and they are defined by the method undertaken for the MPEG decoding operation necessary for playback.  
+
  
 
==Hardware Decoding Devices==  
 
==Hardware Decoding Devices==  
This class of DVB devices feature an on-board hardware MPEG2 decoder IC, thereby alleviating the burden of decoding the incoming stream, received by the device, from the host system's CPU.
+
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.  
 
+
It was formerly common for DVB PCI cards to feature such an on-board hardware MPEG2 decoder IC, though this is no longer the case. Two particular groups of hardware decoding PCI cards are:
+
  
===(i) "Premium" or "Full-Featured" cards===
+
===Historical Perspective===
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:
+
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).   
* 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.
+
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.   
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.  
+
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 [[TI AV711x|AV711x]] [[MPEG-2 Decoder|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 ===
 
===(ii) ATSC hardware decoding cards ===
* Janus based Mpeg 2 decoders
+
* primarily feature the Janus MPEG-2 decoder
* uncommon to see such labels applied to them, although occasionally referred to as premium cards.
+
* 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
* are capable of MP@HL (i.e more full-featured then their DVB-x counterparts)
+
* 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 then 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
* routing of decoded bitstream – can't pass over PCI bus, only possible to offload straight to display device
+
* 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
  
===Relevance of Hardware Decoding cards Today===
+
 
 +
==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.   
 
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.”
+
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.
 
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.   
 
* 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.   
+
* Microsoft even denies to support this hardware decoding type of cards in their [[BDA|Broadrocast Driver Architecture (BDA)]].   
 
* realization of a mixture of software and hardware assist decode  
 
* 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.  
 
* 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)==
+
By today's standards the "full-featured" and "premium" labels have become misnomers for several reasons:
This class of DVB devices rely upon the host system to decode the incoming stream, received by the device.
+
* 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.  
  
* 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.  
+
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.
  
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.  
+
The [[FF Rev. 2.1 DVB-S Cards|TechnoTrend Skystar 1.x / Hauppauge WinTV Nexus]] cards require that the host PC [[How to Obtain, Build and Install V4L-DVB Device Drivers|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. [[DVB via USB|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.
  
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
 
  
  
Line 56: Line 100:
 
* [[VDR Software Decoder Plugin]]
 
* [[VDR Software Decoder Plugin]]
 
* [http://www.linuxtv.org/vdrwiki/index.php/Output_devices Output devices (VDR wiki)]
 
* [http://www.linuxtv.org/vdrwiki/index.php/Output_devices Output devices (VDR wiki)]
 +
[[Category:Technology]]

Latest revision as of 01:22, 3 May 2009

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 then 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: