
Fakultät für InformatikProfessur Rechnernetzeund verteilte SystemeDiplomarbeitVideoaufbereitung für Peer-To-Peer-VideostreamingAutor: Martin FiedlerBe
Kapitel 4. Eingabe4. Eingabe4.1. Möglichkeiten der VideoeingabeAls Video- und Audioquelle empfehlen sich allein schon aus Kostengründen übliche Videok
Kapitel 4. EingabeDiese Probleme können umgangen werden, indem höherwertige Hardware zum Einsatz kommt, die Vi-deo und Audio gleichzeitig mit präzisem
Kapitel 4. Eingabe4.2. Software-UmsetzungWie im vorangegangenen Abschnitt erläutert, wird als Datenquelle eine IEEE-1394-Schnittstelle verwen-det. Nah
Kapitel 4. EingabePraktische Tests mit libdv1394 im Laufe der Entwicklung von lvstream schlugen allerdings fehl, undda raw1394-Capture hingegen in Ver
Kapitel 5. Video-Preprocessing5. Video-PreprocessingDie vom Capture-Teil eingelesenen DV-Videoframes passieren vor der endgültigen Komprimierung ei-ni
Kapitel 5. Video-Preprocessing5.2. DeinterlacingEin allgemeines, schwer zu lösendes Problem bei der digitalen Videoverarbeitung stellt das Interlacing
Kapitel 5. Video-PreprocessingBei dem verwendeten Verfahren handelt es sich um einen adaptiven Deinterlacer in einfachster Form:Ein Halbbild wird prin
Kapitel 5. Video-Preprocessingsehanstalten gleichen – die Senderlogos von ARD, ZDF, RTL, Sat.1, ProSieben und etlichen weiterenProgrammen werden auf ä
Kapitel 6. Videocodierung6. VideocodierungMomentan sind zwei Lösungsansätze verbreitet, um Videostreaming in mehreren Auflösungsstufen zuermöglichen: D
Kapitel 6. VideocodierungDie differenzielle Übertragung der Bilddaten ist jedoch allein nicht ausreichend, um bewegte Objekteeffizient zu codieren. Für
InhaltsverzeichnisTitelseite 1Inhaltsverzeichnis 21. Aufgabenstellung 42. Einsatzzweck 53. Überblick 63.1. Gesamtsystem . . . . . . . . . . . . . . .
Kapitel 6. Videocodierung• für jeden untersuchten Bewegungsvektor wird der zugehörige Block aus dem Referenzbild be-stimmt und mit dem gesuchten Block
Kapitel 6. Videocodierunglösung würde beispielsweise bei einem Größenfaktor von 2 in der höheren Auflösung mit einem Betragvon 2d erscheinen.skalierter
Kapitel 6. Videocodierung6.3. ImplementationsgrundlageAls Grundlage für die in dieser Arbeit vorgestellten Implementation dient der Open-Source-MPEG-4
Kapitel 6. VideocodierungBildqualitätGleichzeitig mit den Geschwindigkeitsmessungen wurden Qualitätsmessungen durchgeführt. Dabei wur-de die in MEncod
Kapitel 6. VideocodierungCodequalität / ErweiterbarkeitUm die notwendigen Veränderungen am Code durchführen zu können, muß dieser gut les- und wart-ba
Kapitel 6. Videocodierung6.4.2. Verfeinerung der BewegungsvektorenXviD selbst sieht in der Grundversion nicht vor, daß Bewegungsvektor-Approximationen
Kapitel 6. Videocodierung6.4.4. Behandlung von FramedropsAls weiche Echtzeitanwendung unter einem Multitasking-System muß lvstream tolerant gegenüberk
Kapitel 7. Audioverarbeitung7. AudioverarbeitungDie Verarbeitung der Audiodaten läuft parallel zur Videoverarbeitung in einem eigenen Thread ab. Auchd
Kapitel 7. Audioverarbeitungtion weitere Anpassungen notwendig. Da allerdings jede DV-Kamera per Standard den 48-kHz-Modusanbieten muß, ist eine solch
Kapitel 7. Audioverarbeitung• Windows Media Audio (WMA)WMA ist lediglich auf der Windows-Plattform verbreitet; als Open Source existieren lediglichImp
9. Performance 409.1. Rechenzeitbedarf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409.2. Bildqualität . . . . . . . .
Kapitel 7. AudioverarbeitungFrame 1 Frame 2 Frame 3 Frame 4Daten Frame 1 Daten Frame 2 Daten Frame 3 Daten Frame 4HeaderHeaderHeaderHeaderAbbildung 7.
Kapitel 7. AudioverarbeitungVideo Timestamp Audio Timestamp JitterFrame 0 0 ms Frame 0 0 ms ±0 msFrame 1 40 msFrame 1 24 ms −16 msFrame 2 48 ms +8 msF
Kapitel 8. Multiplex und Ausgabe8. Multiplex und AusgabeNach der Bearbeitung der Audio- und Videodaten liegen im System drei Datenströme vor:• Ein MPE
Kapitel 8. Multiplex und Ausgabe• Suchen (»Spulen«, Seeking) im Datenstrom muß möglich sein, ohne auf zusätzliche Datenstruk-turen mit fester Position
Kapitel 8. Multiplex und Ausgabe8.1.4. MatroskaDas Matroska-Format ist eine Open-Source-Entwicklung, die versucht, alle für ein Containerformatdenkbar
Kapitel 8. Multiplex und Ausgabe8.1.8. MPEG TS (Transport Stream)Der Aufbau von MPEG-Transportströmen ist stark von dem der Programmströme verschieden
Kapitel 8. Multiplex und AusgabeEs existieren keine fertigen Programmierbibliotheken zur Erstellung von OGM-Inhalten, jedoch sindOgg und OGM strukture
Kapitel 8. Multiplex und Ausgabe8.2.1. Eigenschaften von Access UnitsDie AUs werden in einer zeitlichen Reihenfolge erzeugt: AU #1 liegt am Anfang des
Kapitel 8. Multiplex und AusgabeOgg-Seite geschlossen (»geflusht«) und der Datenstromausgabe mitgeteilt, daß danach eine neue AUbeginnt. Erst dann wird
Kapitel 8. Multiplex und AusgabeMyStreamhiloindexindex001122current_aucurrent_auAbbildung 8.1.: Verzeichnisstruktur eines StreamsMartin Fiedler: Video
Kapitel 1. Aufgabenstellung1. AufgabenstellungEntwicklung einer Peer-To-Peer-Lösung für Videostreaming (Videoteil)Für die Übertragung von Live-Videoda
Kapitel 9. Performance9. Performance9.1. RechenzeitbedarfWie eingangs erwähnt, soll es sich bei der in dieser Arbeit vorgestellen Software um eine Lös
Kapitel 9. Performanceverfehlt nur sehr knapp die 25-fps-Marke. In der minimalen Qualitätsstufe sind sogar alle getestetenSysteme in der Region um 2 G
Kapitel 9. PerformanceOptimierungen. Erstaunlich hoch ist der Anteil der Dateneingabe (gemessen wurden Testläufe über einemit cat befüllte Pipe). Die
Kapitel 9. PerformanceDie Ergebnisse entsprechen vollständig den Erwartungen: Die Qualitätsunterschiede zwischen der höch-sten und niedrigsten Qualitä
Kapitel 9. PerformanceEin logischer Bitstrom ist das Ogg-Äquivalent eines MPEG PES: Eine Folge von Seiten, deren Payload-Pakete zum selben Elementarst
Kapitel 9. Performance9.3.3. Overhead für Video-Frames (hohe Auflösung)Die Videodaten für die hohe Auflösung werden in den Standardeinstellungen mit ein
Kapitel 9. Performance9.4. SpeicherverbrauchDer Speicherverbrauch einer Encoding-Sitzung mit lvstream setzt sich aus zahlreichen Komponentenzusammen.V
Kapitel 9. PerformanceDie Zahl von insgesamt 10 Bildpuffern ergibt sich durch folgende Elemente:– 4 Framebuffer (je 1 pro Halbpixelversatz) für den ak
Kapitel 9. Performance• AusgabepufferXviD gibt den erzeugten Datenstrom in einen Puffer aus, der von der Client-Applikation vorgege-ben wird. lvstream
Kapitel 9. Performance9.5. LatenzzeitenEin weiterer wichtiger Faktor bei Live-Streaming-Systemen ist die entstehende Latenzzeit, also die Ver-zögerung
Kapitel 2. Einsatzzweck2. EinsatzzweckBeim Verteilen von Videodaten gibt es zwei verschiedene Einsatzszenarien: Liveübertragung und On-Demand-Übertrag
Kapitel 9. Performance0 1000 2000 3000 4000 5000nominelle Bitrate in kbps01000200030004000500060007000minimale Framegröße in BytesApproximation352x288
Kapitel 9. Performance9.5.2. Decoder-LatenzAuf Decoderseite ist der entscheidende Faktor die minimale Größe des Eingabepuffers, die notwendigist, bis
Kapitel 9. Performance0 1000 2000 3000 4000 5000nominelle Bitrate in kbps020000400006000080000maximale Framegröße in BytesApproximation352x288704x576A
Kapitel 9. Performanceletzte Audio-SeiteÄnderung des BildinhaltsVideo-Seite ausgegebenAudio-Seite ausgegebenAudio-LatenzAnzeige des neuen Bildinhalts0
Kapitel 10. Zusammenfassung10. ZusammenfassungIn dieser Arbeit wurde ein Softwaresystem vorgestellt, das einem Peer-To-Peer-Videostreamingnetzwerkals
Kapitel 10. ZusammenfassungVideo-ScalerLogo-Ein-blendungMultiplex(low)Multiplex(high)De-interlacerDV-Video-DecoderVideo-PufferAudio-PufferXviD-Enc.(hi
Anhang A. Verwendung des ProgrammsA. Verwendung des ProgrammsA.1. CompilierenUm lvstream zu übersetzen und zu verwenden, sind folgende Hardware- und S
Anhang A. Verwendung des ProgrammsIn der Standardkonfiguration wird ein lvstream-Executable erzeugt, welches PAL-DV-Daten von derStandardeingabe entgeg
Anhang A. Verwendung des Programms–B, ––aud_bitrate audio bitrate in kbps(integer, range 8–320, default 40)Die Audio-Datenrate in Kilobit pro Sekunde.
Anhang A. Verwendung des Programms–q, ––me_quality motion estimation (ME) quality level(integer, range 0–9, default 7)Die Qualität der Bewegungsabschä
Kapitel 3. Überblick3. ÜberblickIn dieser und der begleitenden Arbeit [1] soll ein konkretes System beschrieben werden, welches dieangesprochenen Anfo
Anhang A. Verwendung des Programms–O, ––ogm_output file name base to store unsegmented OGM output(string, default: disabled)Ist zusätzlich oder zu Test
Anhang A. Verwendung des ProgrammsStufe 4 ergänzt die Suche, indem es einen rautenförmigen Bereich systematisch absucht.Ab Stufe 5 werden Bewegungsvek
Anhang A. Verwendung des Programmssynchrone Quelle wie cat beziehungsweise dvcat handelt, erst nach der Initialisierung von lvstreamgestartet werden.M
Anhang B. Digitale Repräsentation von Videobildern (ITU-R BT.601)B. Digitale Repräsentation von Videobildern (ITU-RBT.601)Obwohl im vorgestellten Syst
Anhang B. Digitale Repräsentation von Videobildern (ITU-R BT.601)702 Samples864 SamplesOverscan-Bereichaktiver(sichtbarer)Teil des Bildes52 µs64 µs576
Anhang B. Digitale Repräsentation von Videobildern (ITU-R BT.601)Auch lvstream verwendet eine solche Signalisierung in den erzeugten MPEG-4-Datenström
TabellenverzeichnisTabellenverzeichnis5.1. Ergebnisse des DV-Decoder-Benchmarks . . . . . . . . . . . . . . . . . . . . . . . . . 147.1. Jitter bei na
AbbildungsverzeichnisAbbildungsverzeichnis3.1. Struktur des Peer-To-Peer-Streamingnetzwerks . . . . . . . . . . . . . . . . . . . . . . 63.2. Struktur
LiteraturverzeichnisLiteraturverzeichnis[1] Daniel Schreiber: Peer-To-Peer-Videostreaming. Diplomarbeit, Technische Universtität Chemnitz,2005.[2] lib
SelbständigkeitserklärungSelbständigkeitserklärungIch erkläre hiermit, daß ich die vorliegende Diplomarbeit selbständig und nur unter Verwendung deran
Kapitel 3. ÜberblickMethode liegt darin, daß auch Ströme mit hoher Bitrate zuverlässig an eine große Anzahl von Peersausgeliefert werden können.Als St
Kapitel 3. Überblick• MultiplexerDie entstandenen komprimierten Audio- und Videoströme werden zu kombinierten Datenströmenaus jeweils einem Audio- und
Kapitel 3. ÜberblickCapture-ThreadVideo-ThreadAudio-ThreadAudio-RingpufferVideo-RingpufferMutexMutexMutexMutexAbbildung 3.3.: Daten- und Kontrollfluß i
Komentáře k této Příručce