Anatomy of V4L-DVB devices: Difference between revisions
m (DVB section formating; add link to Devin's article on KernalLabs website) |
|||
(14 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
==Anatomy of a V4L device== |
|||
== Introduction == |
|||
⚫ | |||
==Anatomy of a DVB device== |
|||
⚫ | |||
== Minimal Configuration == |
=== Minimal Configuration === |
||
A minimal device for [[DVB]] reception at the PC consists of a [[ |
A minimal device for [[DVB]] reception at the PC consists of a [[Frontend|frontend]] and some [[Wikipedia:FIFO|FIFO Memory]]. This FIFO samples the [[MPEG-2 Transport Stream]] delivered by the frontend and makes it accessible (e.g. by a port-interface, memory-mapped or a bus-interface like USB or [[IEEE1394]]) to the host processor. |
||
All modern peripheral DVB devices follow this approach: common [[PCI]] cards, nearly all [[USB]] adapters and [[IEEE1394]] DVB devices. Only they are supported directly by Microsoft's [[BDA]] architecture. |
All modern peripheral DVB devices follow this approach: common [[PCI]] cards, nearly all [[USB]] adapters and [[IEEE1394]] DVB devices. Only they are supported directly by Microsoft's [[BDA]] architecture. |
||
== PCI Cards with onboard MPEG Decoder == |
=== PCI Cards with onboard MPEG-2 Decoder === |
||
Here the [[ |
Here the [[Frontend|frontend]] is connected to the [[TI AV711x|AV711x]] hardware [[MPEG-2 Decoder]]. This decoder |
||
shares a dualported RAM with the PCI bridge where the |
shares a dualported RAM with the PCI bridge where the MPEG-2 Decoder has its |
||
[[Wikipedia:Framebuffer:Framebuffer|Video Framebuffer]]. '''(1)''' |
[[Wikipedia:Framebuffer:Framebuffer|Video Framebuffer]]. '''(1)''' |
||
Examples: |
Examples: |
||
* [[DVB- |
* [[DVB-S_PCI_Cards|full-featured DVB-S PCI Cards]] |
||
* [[DVB- |
* [[DVB-C_PCI_Cards#DVB-C_full-featured_Cards|full-featured DVB-C Cards]] |
||
* [[DVB- |
* [[DVB-T_PCI_Cards#DVB-T_full-featured_Cards|full-featured DVB-T Cards]] |
||
The Onboard Decoder makes these cards somewhat expensive. |
The Onboard Decoder makes these cards somewhat expensive. |
||
Line 25: | Line 26: | ||
'''(1)''' With more detail:<br> |
'''(1)''' With more detail:<br> |
||
The AV711x have his own framebufers on the onboard '''SDRAM''', for MPEG '''I''' and '''P''' |
The [[TI AV711x|AV711x]] have his own framebufers on the onboard '''SDRAM''', for MPEG '''I''' and '''P''' |
||
frames, |
frames, whose contents are sent to the OSD unit for overlay windows; the OSD unit output is then |
||
encoded on PAL or NTSC display formats and output in CVBS (Composite+Video+Blanking+Synchronism) |
encoded on PAL or NTSC display formats and output in CVBS (Composite+Video+Blanking+Synchronism) |
||
or Y/C (Luminance+Chrominance) or RGB (Red+Green+Blue) modes; the OSD unit output is also sent |
or Y/C (Luminance+Chrominance) or RGB (Red+Green+Blue) modes; the OSD unit output is also sent |
||
Line 32: | Line 33: | ||
colour space conversion, etc), is sent by PCI Bus Mastering to the Video Framebuffer, normaly on |
colour space conversion, etc), is sent by PCI Bus Mastering to the Video Framebuffer, normaly on |
||
a VGA card or in main memory for a V4L application. The dualported RAM ('''DPRAM'''), which is |
a VGA card or in main memory for a V4L application. The dualported RAM ('''DPRAM'''), which is |
||
connected to the AV711x and to the PCI bridge, is used for all the communications between the |
connected to the [[TI AV711x|AV711x]] and to the PCI bridge, is used for all the communications between the |
||
DVB drivers and the AV711x: To send the firmware and commands, to send |
DVB drivers and the [[TI AV711x|AV711x]]: To send the firmware and commands, to send MPEG-2 DVR streams (to be |
||
decoded and show as video/audio), to receive |
decoded and show as video/audio), to receive MPEG-2 TS packets, PES data or sections |
||
(demultiplexed from the stream), etc. |
(demultiplexed from the stream), etc. |
||
== Standalone STB == |
=== Standalone STB === |
||
In a [[SetTopBox]] the Frontend directly feeds the built-in hostprocessor (usually with onchip MPEG Decoder). These processors are mostly based on embedded ARM-, MIPS-, PowerPC-Cores with additional peripheral units like i2c-, IDE-, network-, Smartcardcontrollers, Demultiplexers, Decoders, Audio- and Videointerface. |
In a [[SetTopBox]] the Frontend directly feeds the built-in hostprocessor (usually with onchip MPEG Decoder). These processors are mostly based on embedded ARM-, MIPS-, PowerPC-Cores with additional peripheral units like i2c-, IDE-, network-, Smartcardcontrollers, Demultiplexers, Decoders, Audio- and Videointerface. |
||
Modern STB processor chipsets move more and more decoder tasks into [[Firmware]] or software, this allows implementation of new codecs like DivX, [[ |
Modern STB processor chipsets move more and more decoder tasks into [[Firmware]] or software, this allows implementation of new codecs like DivX, [[wikipedia:MPEG-4|MPEG-4]], WMV and even late updates of products in the field. We expect that this evolution continues. |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
* Technotrend/Hauppauge [[Hauppauge DEC3000-S USB|DEC3000-S USB]] |
|||
⚫ | |||
==External Links== |
|||
⚫ | |||
* [http://en.wikipedia.org/wiki/TV_tuner_card Wikipedia discussion of TV tuner cards] |
|||
* [http://dl.ivtvdriver.org/datasheets/ Some datasheets for some chips used on V4L hardware] |
|||
* [http://www.kernellabs.com/blog/?cat=46 KernalLabs' How Tuners Work article] |
|||
* [[Wikipedia:Frame grabber|Wikipedia's Frame grabber article]] |
|||
* [[Wikipedia:Video capture|Wikipedia's Video Capture article]] |
|||
* [[Wikipedia:Video processing expansion card|Wikipedia's Video processing expansion card article]] |
|||
[[Category:Development]] |
[[Category:Development]] |
Latest revision as of 21:46, 12 April 2010
Anatomy of a V4L device
Anatomy of a DVB device
Digital Video Broadcast receivers exist in many different flavours. This page lists some of the common receiver types, in order to give you an idea of what all is supported by the linuxtv dvb drivers and why some things within the linuxtv driver code look quite complicated.
Minimal Configuration
A minimal device for DVB reception at the PC consists of a frontend and some FIFO Memory. This FIFO samples the MPEG-2 Transport Stream delivered by the frontend and makes it accessible (e.g. by a port-interface, memory-mapped or a bus-interface like USB or IEEE1394) to the host processor.
All modern peripheral DVB devices follow this approach: common PCI cards, nearly all USB adapters and IEEE1394 DVB devices. Only they are supported directly by Microsoft's BDA architecture.
PCI Cards with onboard MPEG-2 Decoder
Here the frontend is connected to the AV711x hardware MPEG-2 Decoder. This decoder shares a dualported RAM with the PCI bridge where the MPEG-2 Decoder has its Video Framebuffer. (1)
Examples:
The Onboard Decoder makes these cards somewhat expensive.
(1) With more detail:
The AV711x have his own framebufers on the onboard SDRAM, for MPEG I and P
frames, whose contents are sent to the OSD unit for overlay windows; the OSD unit output is then
encoded on PAL or NTSC display formats and output in CVBS (Composite+Video+Blanking+Synchronism)
or Y/C (Luminance+Chrominance) or RGB (Red+Green+Blue) modes; the OSD unit output is also sent
in digital format to the PCI bridge, which after optional transformations (scaling, cliping,
colour space conversion, etc), is sent by PCI Bus Mastering to the Video Framebuffer, normaly on
a VGA card or in main memory for a V4L application. The dualported RAM (DPRAM), which is
connected to the AV711x and to the PCI bridge, is used for all the communications between the
DVB drivers and the AV711x: To send the firmware and commands, to send MPEG-2 DVR streams (to be
decoded and show as video/audio), to receive MPEG-2 TS packets, PES data or sections
(demultiplexed from the stream), etc.
Standalone STB
In a SetTopBox the Frontend directly feeds the built-in hostprocessor (usually with onchip MPEG Decoder). These processors are mostly based on embedded ARM-, MIPS-, PowerPC-Cores with additional peripheral units like i2c-, IDE-, network-, Smartcardcontrollers, Demultiplexers, Decoders, Audio- and Videointerface.
Modern STB processor chipsets move more and more decoder tasks into Firmware or software, this allows implementation of new codecs like DivX, MPEG-4, WMV and even late updates of products in the field. We expect that this evolution continues.
STBs with interface to the PC
Have an integrated embedded processor with MPEG-2 Decoder and are able to work standalone. You can connect your PC, e.g. using the USB or FireWire port to record and play back DVB transmissions on your TV.
- Technotrend/Hauppauge DEC2000-T USB
- Technotrend/Hauppauge DEC2540-T USB
- Technotrend/Hauppauge DEC3000-S USB