system zur videokompression simone buzzi simon häne giuseppe schiavello
Post on 06-Apr-2015
108 Views
Preview:
TRANSCRIPT
System zur VideokompressionSystem zur Videokompression
Simone BuzziSimone BuzziSimon HäneSimon Häne
Giuseppe SchiavelloGiuseppe Schiavello
VortragsVortragsübersichtübersicht
• Ziel der ArbeitZiel der Arbeit• EinfEinführung Hardwareührung Hardware• System ÜbersichtSystem Übersicht• System BeschreibungSystem Beschreibung• DemoDemo
Ziel der ArbeitZiel der Arbeit
• Entwicklung eines Systems zur Entwicklung eines Systems zur Videokompression mit 3D-DCT ASICVideokompression mit 3D-DCT ASIC(am IIS entwickelt)(am IIS entwickelt)
• UnterstUnterstüzung verschiedener Video Signale üzung verschiedener Video Signale (analog & digital)(analog & digital)
• Konfigurierbares SystemKonfigurierbares System
• Hardware & SoftwareHardware & Software
DecoderDecoder VideoengineVideoengine SDRAMSDRAM
EncoderEncoder
Video boardVideo board
PLX 9080PLX 9080 Xilinx FPGAXilinx FPGA
PCI boardPCI board
PCI: 32 Sitze
AusgangAusgang
TreiberTreiber
PCI BusPCI Bus
PLX 9080PLX 9080
Low-levelLow-level
GUIGUI
Xilinx FPGAXilinx FPGA
VideoengineVideoengine
FestplatteFestplatte
DecoderDecoder EncoderEncoder
Benutzer EingabeBenutzer EingabeEingangEingang
KonfigurationKonfigurationKompressionKompressionDekompressionDekompression
ZielZiel• Benutzerfreundliche Benutzerfreundliche
und intuitive Eingabe und intuitive Eingabe
RealisierungRealisierung• Graphische Elemente von Graphische Elemente von
Trolltech Qt DesignerTrolltech Qt Designer• Programmierung in C++Programmierung in C++
TreiberTreiber
PCI BusPCI Bus
PLX 9080PLX 9080
Low-levelLow-level
GUIGUI
Xilinx FPGAXilinx FPGA
VideoengineVideoengine
HDHD
DecDec EncEnc
« Konfigurationsbefehl »« Konfigurationsbefehl »« Speichern und Lesen von « Speichern und Lesen von
komprimierten Videodaten »komprimierten Videodaten »
« « 0111010101110101001100100011001000111110 »00111110 »
RealisierungRealisierung• C++ FunktionenC++ Funktionen
TreiberTreiber
PCI BusPCI Bus
PLX 9080PLX 9080
Low-levelLow-level
GUIGUI
Xilinx FPGAXilinx FPGA
VideoengineVideoengine
HDHD
DecDec EncEnc
Low-level FunktionenLow-level FunktionenFestplatteFestplatte
Aufgaben des TreibersAufgaben des Treibers• Konfigurationsbefehle an das Konfigurationsbefehle an das
PCI Board weiterleitenPCI Board weiterleiten• Senden und empfangen von Senden und empfangen von
komprimierten Videodaten vom PCI komprimierten Videodaten vom PCI Bus mittels DMA.Bus mittels DMA.
RealisierungRealisierung• Dynamisch ladbares Linux Kernel ModulDynamisch ladbares Linux Kernel Modul• In C programmiertIn C programmiert
TreiberTreiber
PCI BusPCI Bus
PLX 9080PLX 9080
Low-levelLow-level
GUIGUI
Xilinx FPGAXilinx FPGA
VideoengineVideoengine
HDHD
DecDec EncEnc
PLX 9080PLX 9080PCI InterfacePCI Interface
• PCI BusPCI Bus32 bit @ 33MHz = 132Mbytes/s32 bit @ 33MHz = 132Mbytes/s
• Local busLocal bus32bit @ 40MHz32bit @ 40MHz
TreiberTreiber
PCI BusPCI Bus
PLXPLX
Low-levelLow-level
GUIGUI
Xilinx FPGAXilinx FPGA
VideoengineVideoengine
HDHD
DecDec EncEnc
• PLX 9080PLX 9080• DMA ControllerDMA Controller• Erzeugt PCI InterruptsErzeugt PCI Interrupts
PCI BusPCI Bus
Local BusLocal Bus
Aufgaben des FPGAsAufgaben des FPGAs• Systemkomponenten konfigurierenSystemkomponenten konfigurieren• Videodaten empfangen, puffern und Videodaten empfangen, puffern und
weiterleitenweiterleiten
DataDataAdrAdrTypTyp
32 bit32 bit
DecoderDecoder
EncoderEncoder
Video-Video-engineengine
II22CC
XilinxXilinxFPGAFPGA
DCBDCB
Aufgaben des FPGAsAufgaben des FPGAs• Systemkomponenten konfigurierenSystemkomponenten konfigurieren• Videodaten empfangen, puffern und Videodaten empfangen, puffern und
weiterleitenweiterleiten
TreiberTreiber
PCI BusPCI Bus
PLX 9080PLX 9080
Low-levelLow-level
GUIGUI
FPGAFPGA
VideoengineVideoengine
HDHD
DecDec EncEnc
TreiberTreiber
PCI BusPCI Bus
PLX 9080PLX 9080
Low-levelLow-level
GUIGUI
FPGAFPGA
VideoengineVideoengine
HDHD
DecDec EncEnc
Video-Video-engineengine......
16 bit units16 bit units
256x32 bit256x32 bitDMA TransferDMA Transfer
FPGAFPGA
Aufgaben des FPGAsAufgaben des FPGAs• Systemkomponenten konfigurierenSystemkomponenten konfigurieren• Videodaten empfangen, puffern und Videodaten empfangen, puffern und
weiterleitenweiterleiten
DecoderDecoder
CompositeComposite
EncoderEncoder
Digital Analog
S-VideoS-Video
TreiberTreiber
PCI BusPCI Bus
PLX 9080PLX 9080
Low-levelLow-level
GUIGUI
Xilinx FPGAXilinx FPGA
VideoE.VideoE.
HDHD
DecDec EncEnc
VideoengineVideoengine• Echtzeit De/Kompression Echtzeit De/Kompression • 3D-DCT Algorithmus3D-DCT Algorithmus• Viele KonfigurationsmViele Konfigurationsmöglichkeitenöglichkeiten
VideoengineVideoengineCompositeComposite
S-VideoS-Video
VGAVGA
Encoder & DecoderEncoder & Decoder• UnterstUnterstüützen verschiedene Videosignaletzen verschiedene Videosignale
System zur VideokompressionSystem zur Videokompression
DemoDemo
Demo 1: FussballDemo 1: Fussball• Standard Quantisierung Standard Quantisierung • Kompressionsfaktor 25Kompressionsfaktor 25• Datenrate 10 Mbit/sDatenrate 10 Mbit/s• 1h auf DVD1h auf DVD
Demo 2: FussballDemo 2: Fussball• Mittlere Quantisierung Mittlere Quantisierung (Benutzerdefiniert)(Benutzerdefiniert)
• Kompressionsfaktor 44Kompressionsfaktor 44• Datenrate 5.7 Mbit/sDatenrate 5.7 Mbit/s• 1h 40min auf DVD1h 40min auf DVD
Demo 3: FilmauschnittDemo 3: Filmauschnitt• Standard Quantisierung Standard Quantisierung • Kompressionsfaktor 57Kompressionsfaktor 57• Datenrate 4.4 Mbit/sDatenrate 4.4 Mbit/s• 2h 10min auf DVD2h 10min auf DVD
Demo 4: FilmauschnittDemo 4: Filmauschnitt• Starke Quantisierung Starke Quantisierung (Benutzerdefiniert)(Benutzerdefiniert)
• Kompressionsfaktor 121Kompressionsfaktor 121• Datenrate 2.1 Mbit/sDatenrate 2.1 Mbit/s• 4h 30min auf DVD4h 30min auf DVD
Demo 5: Life mit VideokameraDemo 5: Life mit Videokamera
top related