Streaming Video over the Internet: Approaches and
Transcription
Streaming Video over the Internet: Approaches and
fdfRheinisch-Westfälische Hochschule Aachen Lehrstuhl fürTechnische Informatik IV Prof. Dr. rer. nat. Otto Spaniol Streaming Video over the Internet: Approaches and Directions Seminar: Datenkommunikation und Verteilte Systeme Wintersemester 02/03 Nicole Schneider Matrikelnummer: 224103 Betreuung: Imed Bouazizi Lehrstuhl für Informatik IV, RWTH Aachen Inhaltsverzeichnis 1. Einleitung ...................................................................................................3 2. Video Komprimierung.................................................................................4 3. Adaptives Video Streaming .........................................................................5 3.1 Staukontrolle .................................................................................................5 3.2 Skalierbare Videokomprimierung.......................................................................7 3.2.1 Fine Granularity Scalability............................................................................8 4. Fehlerkontrolle .........................................................................................10 5. Verteilungsdienste für kontinuierliche Medien............................................11 6. Protokolle für Video Streaming..................................................................12 6.1 Transportprotokolle ......................................................................................12 6.2 Session Kontrollprotokolle .............................................................................13 7.Streaming Server ....................................................................................14 7.1 Echtzeit Betriebssystem .................................................................................15 7.1.1 Prozess Management ..................................................................................15 7.1.2 Ressourcen Management .............................................................................15 7.1.3. Datei Management ....................................................................................16 7.2 Speichersystem............................................................................................16 8. Medien Synchronisation ......................................................................18 9. Zusammenfassung ................................................................................19 2 1. Einleitung In den letzten Jahren hat das Internet immer mehr an Größe und Bedeutung gewonnen. Besonders die Übertragung von Echtzeit Multimedia ist immer häufiger geworden. Darunter fällt auch die Übertragung von gespeicherten Videodateien, die auf zwei verschiedene Arten vorgenommen werden kann. Bei der „download“ Methode wird die gesamte Information vom Benutzer auf seinen Computer runtergeladen und erst im Anschluss daran abgespielt. Dies führt jedoch zu einer sehr langen, meist unakzeptablen Wartezeit. Im Kontrast dazu steht die Methode des Video Streaming. Hier muss der Benutzer nicht warten bis die kompletten Informationen bei ihm auf dem Rechner angekommen sind, sondern kann das Video schon während der Übertragung abspielen. Dazu wird auf dem Computer des Benutzers ein kleiner Puffer eingerichtet, indem ein Teil der Informationen des Videofiles geladen werden. Sobald der Puffer voll ist (meist nach ein paar Sekunden) wird das Video mit Hilfe der Informationen aus dem Puffer abgespielt. Diese Art der Videoübertragung wird jedoch vom Internet nicht besonders unterstützt und führt somit zu einer Reihe von Problemen. Um einen Einblick in die Probleme von Video Streaming zu bekommen muss man sich mit folgenden sechs Schlüsselgebieten befassen, die alle eine Rolle beim Prozess des Video Streaming spielen: Videokomprimierung, Streaming Server, Tools zur Qualitätssicherung auf der Anwendungsebene, Protokolle für Video Steaming, Verteilungsservice für kontinuierliche Medien und Synchronisation. Abbildung 1: Architektur von Video Streaming Streaming Server Klient/Receiver Video Decoder Storage Device RAW Video Raw Audio Compressed Video Audio Decoder Application layer QoS Application layer control QoS Compressed Audio Transport Protocols control Transport Protocols Internet Verteilungsservice In Abbildung 1. ist der Zusammenhang der einzelnen Gebiete beim Prozess des Video Streamings dargestellt. Die unbearbeiteten Video und Audio Daten werden mittels Video/Audio Kompressionsalgorithmen komprimiert und anschließend im Speicherbereich des Streaming Servers gesichert. Entsprechend der Anforderungen der Klienten fordert der Streaming Server die komprimierten Video/Audio Daten aus dem Speicherbereich an. Die Kontrollmodule zur Qualitätssicherung auf Anwendungsebene passen den Video/Audio bit3 Stream an den Netzwerkstatus sowie die Qualitätsanforderungen an. Nach der Anpassung packen die Transportprotokolle die komprimierten Bit-Streams und versenden die Pakete übers Internet. Im Internet tritt häufig Überfüllung auf so dass Verteilungsdienste für die kontinuierliche Medien eingesetzt werden, um die Qualität der Video/Audio Übertragung zu verbessern. Pakete die erfolgreich beim Empfänger angekommen sind passieren zuerst die Transportebene und werden anschließend auf der Anwendungsebene bearbeitet und schließlich entschlüsselt. Die Synchronisation zwischen den Video und Audio Daten wird mit Hilfe von Medien Synchronisationstechniken hergestellt. Dies ist jedoch nur eine einfache Darstellung, die die Zusammenarbeit der einzelnen Komponenten nicht explizit aufzeigt. Im folgenden werden die einzelnen Gebiete genauer betrachtet, d.h. ein Überblick über die verschiedenen Ansätze gegeben, wobei das Gebiet der Komprimierung etwas genauer betrachtet wird. 2. Video Komprimierung Die Übertragung von Videodateien wird effizient gestaltet, indem die Videodaten bevor sie versendet werden komprimiert werden und somit der Bandbreitenverbrauch niedrig gehalten wird. Für die Kompression von Videodaten sind verschiedene Schritte notwendig (Abb. 2): 1. Die Datenaufbereitung Hier wird eine geeignete digitale Darstellung der Information des zu verarbeiteten Mediums erzeugt. Ein Bild wird dazu beispielsweise in Blöcke zu 8*8 Pixel mit festgelegten Anzahlen von Bits pro Pixel zerlegt. 2. Transformation (DCT) Eine Transformation ist ein definierter mathematische r Prozess, die diskrete Kosinus Transformation im speziellen bewirkt eine Transformation vom zweidimensionalen Vektorraum der Bildebene in den zweidimensionalen Frequenzbereich. Eine Komprimierung ist dadurch jedoch noch nicht erreicht. 3. Quantisierung Dabei handelt es sich um einen Divisionsprozess gefolgt von einer Rundung der Werte. Quantisierung eliminiert irrelevante Informationen, die in den Koeffizienten mit kleinen Werten enthalten sind. 4. Entropie Kodierung Im letzten Schritt wird nun die eigentliche Reduzierung der Datenrate erreicht. Entropie Kodierung verändert dabei die Art wie die Daten dargestellt werden. Kodierung mit variabler Bitlänge ist eine mögliche Technik, bei der man die Wahrscheinlichkeit untersucht mit der bestimmte Werte auftreten und diese dann durch entsprechend lange oder kurze Kodes darstellt. Abbildung 2: nicht skalierbare Komprimierung Video Datenaufbereitung Transformation DCT Quantisierung Entropie Kodierung Komprimierter bit-Stream 4 3. Adaptives Video Streaming Hierbei handelt es sich um die Möglichkeit, Videodaten an den zur Verfügung stehende Netzwerkstatus anzupassen. Videokomprimierung arbeitet hier zusammen mit Kontrollfunktionen, d.h. man hat die Möglichkeit die Videokomprimierung entsprechend den Informationen über die Zielrate, die man mittels Ratenkontrolltechniken ermitteln kann, anzupassen. Im folgenden werden zuerst die verschiedenen Möglichkeiten von Kontrollmechanismen vorgestellt und anschließend Komprimierungstechniken, die sich diese Methoden bei der Komprimierung zu Nutze machen. Das Ziel von Staukontrolle ist die Maximierung der Videoqualität in bezug auf das Problem Paketverlust. Staukontrolle wird vom Endsystem ausgeführt und benötigen keine Unterstützung des Netzwerks. 3.1 Staukontrolle Verlust von Paketen oder Verzug, meistens ausgelöst durch Netzwerküberfüllung kann eine verheerende Auswirkung auf die Qualität von Videosequenzen haben. Staukontrolle am End-System ist daher sehr wichtig um Verzug zu verhindern bzw. zu minimieren. Staukontrolle vollzieht sich dabei in der Form der Ratenkontrolle. Ratenkontrolle versucht durch Anpassung der Rate des Videostroms an die zur Verfügung stehende Bandbreite des Netzwerk die Überfüllung zu minimieren. Ratenkontrolltechniken können in 3 Kategorien unterteilt werden: Sender basierte Ratenkontrolle, Receiver basierte Ratenkontrolle und Hybrid Ratenkontrolle. 3.1.1 Sender basierte Ratenkontrolle Bei der Sender basierten Ratenkontrolle ist der Sender für die Anpassung der Rate an die entsprechende Bandbreite verantwortlich. Basierend auf Feedback Informationen über das Netzwerk kann der Sender die Rate des Videostroms regulieren. Die Sender basierte Ratenkontrolle kann unicast [4] und multicast [5] angewandt werden. Für unicast existieren zwei Methoden von Sender basierter Ratenkontrolle: experimentellbasierte und modellbasierte[6] Methode. Die experimentellbasierte Methode basiert auf Experimenten. Es wird nach der zur Verfügung stehenden Netzwerkbandbreite geforscht, indem die Senderate so angepasst wird, das eine Paketverlustrate p unter einer bestimmten Schwelle Pth gehalten werden kann. Man versucht also die Rate solange zu erhöhen, bis die Paketverlustrate zu hoch ist. Diese Technik ist eine gute Möglichkeit die Bandbreite optimal auszunutzen. Die modellbasierte Methode basiert auf einem Durchsatzmodell der TCP Verbindung. Dabei kann der Durchsatz der TCP Verbindung durch folgende Formel [7] ausgedrückt werden: λ= 1.22 × MTU RTT × p λ: Durchsatz der TCP Verbindung MTU: Paketgröße die von der Verbindung genutzt wird RTT: Rundtripzeit für die Verbindung p: Paketverlustrate 5 Die Formel wird benutzt, um die Senderate des Videostroms zu regulieren. Bei der modellbasierten Methode wird die Senderate streng nach dieser Formel berechnet, so dass es vorkommen kann das mehr Bandbreite zur Verfügung steht, als ausgenutzt wird. Für multicast benutzt der Sender bei der Sender basierter Ratenkontrolle einen einzelnen Kanal um das Video zu transportieren „ Single Channel multicast“: Single Channel multicast ist effizient, da alle Empfänger einen Kanal benutzen, jedoch nicht flexibel, da man nicht auf die verschiedenen Bandbreitenanforderungen eingehen kann. 3.1.2 Receiver basierte Ratenkontrolle Bei der Receiver basierte Ratenkontrolle ist der Empfänger für die Ratenkontrolle verantwortlich. Er reguliert die Rate des Videostroms durch Hinzunahme bzw. Wegnahme von Kanälen [6]. Die Receiver basierte Ratenkontrolle findet ihre Anwendung meist bei multicast skalierbaren Videosequenzen. Die verschiedenen Ströme des skalierbaren Videos entsprechen dabei den verschiedenen Kanälen. Die Receiver basierte Ratenkontrolle kann ebenfalls in zwei Ansätze unterteilt werden: forschungsbasierter Ansatz und modellbasierter Ansatz. Die experimentellbasierte Ratenkontrolle besteht aus zwei Teilen.[8] 1. Wenn kein Stau bekannt ist, forscht der Empfänger nach der zur Verfügung stehenden Bandbreite durch Hinzunahme eines Kanals/ Streams ⇒ Erhöhung der Rate. 2. Wenn ein Stau bekannt ist, entfernt der Empfänger einen Kanal ⇒ Reduzierung der Empfangsrate. Der modellbasierte Ansatz basiert hier ebenfalls auf der Formel zum Durchsatz einer TCP Verbindung. 3.1.3 Hybrid Ratenkontrolle Die Hybrid Ratenkontrolle ist eine Mischung von Sender basierter und Receiver basierter Ratenkontrolle. Beide, Sender und Empfänger sind für die Ratenanpassung verantwortlich. Eine Technik mit der ma n Ratenkontrolle durchführen kann ist „ Rateshaping“. Das Ziel von Rateshaping ist die Anpassung der Rate eines komprimierten bit-Streams an die Zielrate. Ein Rate shaper ist ein Filter, Kodierungs- Filter, Frame dropping Filter, layer dropping Filter requantisierungs -Filter sind mögliche Filter die zur Ratenanpassung genutzt werden können. 1. Ein Kodierungs- Filter beinhaltet die Möglichkeit einen Videostrom zu komprimieren und zu de-komprimieren. Er wir eingesetzt zwischen verschiedenen Komprimierungstechniken, wobei je nach Komprimierungstechnik der Videostrom nicht vollständig dekomprimiert werden muss. 2. Ein Frame dropping Filter kann zwischen den verschieden Frame Typen unterscheiden und die Frame bezüglich ihrer Wichtigkeit versenden. Der Frame dropping Filter wird benutzt um die Datenrate eines Videostroms zu reduzieren, indem man eine Reihe von Frames verschickt und die anderen bei einer niedrigeren Rate übermittelt. Der Frame dropping Filter kann entweder beim Sender [9] eingesetzt werden oder im Netzwerk ( siehe Teil 5). 3. Ein layer dropping Filter kann die verschiedenen Ebenen bezüglich ihrer Wichtigkeit unterscheiden. Die Ordnung ist vom höchsten Verbesserungsstrom bis hin zum Hauptstrom. 4. Ein Frequenz Filter führt Operationen auf den komprimierten Videostrom durch, genauer gesagt in dem Frequenz Bereich ( DCT Koeffizienten). Frequenz Filter Mechanismen beinhalten Tiefpass Filter, farbreduzierungs- Filter und farbmonochrom Filterung. Der Tiefpass Filter wird benutzt um die DCT Koeffizienten auf eine höhe re 6 Frequenz zu legen. Ein farbreduzierungs- Filter arbeitet genauso wie ein Tiefpass Filter, jedoch nur auf den monochromen Informationen des Videostroms. Ein farbmonochrom Filter entfernt alle Farbinformationen aus dem Videostrom. Der Frequenz Filter reduziert die Bandbreite ohne Veränderung der Frame Rate, so das diese Filterung sich auf die Qualität der einzelnen Frames auswirkt 5. Ein requantisierungs-Filter operiert auf dem komprimierten Videostrom, genauer gesagt arbeitet er auch auf den DCT Koeffizienten. Dazu leitet der Filter die DCT Koeffizienten aus dem komprimierten Videostrom mit Hilfe von dequantisierungsTechniken her. Dann werden die DCT Koeffizienten wieder re-quantisiert, wobei es sich bei dieser Quantisierung um eine größere Quantisierung handelt, d.h. es wird durch eine größeren Wert dividiert so das die Übertragungsrate reduziert werden kann. 3.2 Skalierbare Videokomprimierung Videokomprimierungstechniken können in 2 Kategorien unterteilt werden: skalierbare und nicht skalierbare Videokomprimierung. Bei einer nicht skalierbaren Komprimierungstechnik wird ein einzelner komprimierten Bit- Strom erzeugt (Abb.2), wohingegen bei einer skalierbaren Technik aus einer Videosequenz verschiedene Teilströme entstehen (Abb.3). Die skalierbare Videokomprimierung biete die Möglichkeit der Anpassung an die Bandbreitenschwankungen im Internet und bietet sich somit für Video Straeming besonders an. Die verschiedenen Teilströme die nach einer skalierbaren Kodierung vorliegen kann man in einen sogenannten Base layer Bitstrom und in Enhancement Ströme unterteilen. Der Hauptstrom kann unabhängig von den anderen entschlüsselt werden und erzeugt eine Videosequenz von grober Qualität. Die anderen Ströme sind Verbesserungsströme, die nur in Verbindung mit dem Hauptstrom entschlüsselt werden können. Diese weiteren Ströme erhöhen die Qualität der Videosequenz. Der komplette Bit-Strom, d.h. alle Ströme zusammen, liefert die beste Qualität. Die Entschlüsselung von nur einen Teil der Ströme kann sich auf die Qualität der Videosequenz unterschiedlich auswirken. Es kann zu Verringerung der Bildqualität, der Bildgröße sowie zur Verringerung der Framerate führen. Diese Skalierbarkeit der Qualität, Bildgröße oder Framerate nennt man SNR, räumliche, zeitliche Skalierbarkeit, sie bilden die 3 Hauptskalierungstechniken. Abbildung 3: Skalierbare Komprimierung Video DCT + Q - EK Hauptstrom IQ Q EK Teilströme Diese Skalierbarkeit beinhaltet also die Möglichkeit, entweder den Hauptstrom zu versenden oder den Hauptstrom und Verbessehrungsströme, je nach den Anforderungen der Klienten. 7 Die Entscheidung darüber welche Ströme versendet werden vollzieht sich mit Hilfe der Receiver basierten Ratenkontrolle. Die Empfänger geben Auskunft über ihre Situation, d.h. fordern entweder nur den Hauptstrom, oder den Hauptstrom und verschiedene Verbesserungsströme und der Sender verschickt die entsprechenden Ströme. 3.2.1 Fine Granularity Scalability Fine Granularity Scalability (FGS) [2] [33] [34] ist ein Verfahren, welches noch mehr Flexibilität bezüglich der Anpassung an die verschiedenen Anforderungen der Klienten sowie Bandbreitenschwankungen im Netzwerk bietet während die Einfachheit des Komprimierungsverfahren beibehalten wird. FGS wird bei MPEG-4 [35] angewandt. MPEG ist eine Abkürzung für Moving Picture Expert Group. Dieses MPEG Komitee ist eine Arbeitsgruppe in deren Zusammenarbeit die Standards MPEG-1, MPEG-2, MPEG-4 und MPEG-7 entstanden sind. Bei MPEG läuft die Kompression der Videodaten Bildweise ab. Dabei kann man ein Einzelbild auf vier verschiedene Weisen kodieren: als I-Frame ( Intra Coded Frame), als PFrame (Prediction Coded Frame), als B-Frame (Bidectionally Prediction Coded Frame) oder als D-Frame (DC-coded Frame). Die I-Frames werden wie ein Standbild mit den Methoden der JPEG- Komprimierung behandelt. Bei den P- und B-Frames macht man sich zunutze, dass viele Informationen redundant sind, wenn man eine Videosequenz kodieren will. Der Unterschied zwischen P- und B-Frames liegt darin, dass sich die ersteren nur auf die Vergangenheit beziehen, also die Unterschiede zu vorher gezeigten Bilder berechnet werden, während bei B-Frames der Bezug in beide Richtungen stattfinden kann. FGS ist ein skalierbares Komprimierungsverfahren, welches eine Videosequenz in zwei verschiedene Ströme, den Hautstrom und einen Verbesserungsstrom erzeugt. Im Gegensatz zu den herkömmlichen Verfahren ermöglicht FGS die Anpassung des Verbesserungsstrom mit Hilfe von Bitplane Kodierung, so dass die Möglichkeit besteht nur einen Teil des Verbesserungsstrom zu versenden. Dazu wird ein DCT Koeffizient durch 7 Bits dargestellt. Jeder der Koeffizienten besitzt ein most signifikant Bit (MSB), welches zusammen mit den anderen MSB der 64 Koeffizienten die Bitebene 0 bildet. Das zweit wichtigste Bit der 64 Koeffizienten bildet entsprechend die Bitebene 1( Abbildung 4). Abbildung 4: Bitebenen der Enhancement DCT Koeffizienten. Bitplane 0 Bitplane 1 . . . . . Bitplane k DCT Coefficient 0 DCT Coefficient 1 DCT Coefficient 63 Entsprechend der Zielrate können nun verschiedene Anzahlen von Bits versendet werden. Dazu werden beim Verbesserungsstrom zuerst alle möglichen Bitschifts berechnet, d.h. die Darstellung des Verbesserungsstrom durch 1 Bit (MSB) bis k Bits. Mit Hilfe von Sender basierter Ratenkontrollte kann nun bestimmt werden wie viele Bits maximal versendet 8 werden können, um eine möglichst gute Qualität zu erreichen unter der zur Verfügung stehenden Bandbreite. Der Sender reguliert die Anzahl der Bits des Verbesserungsstrom mit Hilfe von Feedbackinformationen. Die einzelnen Schritte von FGS die beim Sender vorgenommen werden sind in Abbildung 5 dargestellt. Abbildung 5: FGS Kodierung beim Sender Raw Video DCT Q - Base layer Compressed Bit-stream EK IQ Bitplane Schift Find Maximum Enhancement Compressed Bit-Stream Bitplane EK Rate Control Beim Empfänger wird der Verbesserungsstrom in umgekehrter Weise behandelt. Hier wird ein Rückschiften vorgenommen, indem die fehlenden Bits mit Nullen aufgefüllt werden. Die Grundschritte von FGS, die beim Empfänger vorgenommen werden sind in Abbildung 6 dargestellt. Abbildung 6: FGS Dekodierung auf Empfänger Seite Base layer Compressed Bit-stream Enhancement Compressed Bit-Stream EK Bitplane EK IQ Bitplane Schift IDCT + IDCT Decoded Video(Bl) Decoded Video(El) In den beiden Abbildung sieht man deutlich das die Skalierung nur am Verbesserungsstrom geschieht. Die Komprimierung des Hauptstrom wird nicht verändert. Progressive fine granularity scalability ( PFGS ) [36] ist eine Erweiterung von FGS, welche die Vorteile von FGS wie Bitraten Skalierbarkeit und Fehle rresistenz auch weiterhin besitzt, jedoch nicht nur mit einem Base layer und einem Enhancement layer arbeitet sondern mit mehreren . 9 4. Fehlerkontrolle Paketverlust ist ein Problem im Internet, welches zu bedeutenden Qualitätsverlust führen kann. Somit ist großer Bedarf nach einer Technik zur Maximierung von Videoqualität trotz Paketverlust. Fehlerkontrolle ist ein Mechanismus zur Erfüllung dieses Ziels. Fehlerkontrolltechniken sind FEC, Rückübermittlung, Fehlerresistente Kodierung/Dekodierung und Fehlerverbergung. 1. Das Prinzip von FEC besteht darin redundante Informationen an die Originalnachricht anzuhängen, so das diese trotz Paketverlust rekonstruiert werden kann. In Bezug auf die redundanten Informationen die an die Nachricht angehängt werden kann man FEC in drei Bereiche unterteilen: Kanal Kodierung, Source coding based FEC und joint source/ Kanal Kodierung [6]. Für Internet Anwendungen wird Kanal Kodierung, in der Form von Blockkodierung, meistens verwendet. Dafür wird ein Videostrom zuerst in Segmente eingeteilt, von denen jedes Segment in k Pakete unterteilt wird. Für jedes Segment wird dann eine Blockkodierung auf die k Pakete angewandt und so ein n- Paket Block zu generieren, mit n > k. Der Benutzer muss nun zur Entschlüsselung des Stroms, k-Pakete von dem n-Paket Block erhalten. Source coding FEC (SFEC) ist eine Variante von FEC, speziell für Videos im Internet [30]. SFEC fügt ebenfalls redundante Informationen an, um bei Verlust die Nachricht trotzdem entschlüsseln zu können. Joint source Kanal Kodierung ist ein Ansatz um die Rate von source Kodierung und Channel Kodierung optimal zu gestalten [6]. 2. Rückübermittlung ist ein weiterer Ansatz zur Fehlerkontrolle bei dem der Empfänger bei Entdeckung des Verlust eines Paketes eine neue Anforderung an den Sender stellt. Wenn die Zeit der Anforderung kurz genug ist in bezug auf die maximale Verzögerung die unentdeckt bleibt, ist dieser Ansatz eine gute Möglichkeit der Fehlerkontrolle. 3. Das Ziel von Fehlerresistenter Kodierung/Dekodierung ist die Erhöhung der Robustheit von komprimierten Videos bezüglich Paketverlust. MDC ist eine Methode die im Bereich des Internet angewendet werden kann und eine robuste Internet Übermittlung verspricht. Multiple description coding ( MDC ) [31] [32] komprimiert eine unbehandelte Videosequenz in mehrere Ströme, bezüglich ihrer Beschreibungen. Jede Beschreibung erzeugt eine akzeptable Qualität, wobei die Kombination mehrer Beschreibungen die Qualität erhöht. Die Vorteile von MDC sind: - Robustheit gegenüber Verlust: Wenn ein Empfänger nur eine Beschreibung erhält, da alle anderen verloren gegangen sind, kann er immer noch das Video rekonstruieren. - Erhöhte Qualität: Wenn der Empfänger mehrere Beschreibungen erhält, kann er diese kombinieren und somit die Qualität erhöhen. Diese Vorteile bringen jedoch auch Nachteile mit sich. Damit jede Beschreibung eine akzeptable Qualität erzeugt, muss sie genügend Informationen über das Original Video beinhalten. Dies führt jedoch zu einer Verringerung der Komprimierungseffizienz. 4. Ein weitere Ansatz zur Fehlerkontrolle ist die Fehlerverbergung, die von dem Empfänger durchgeführt wird. Es gibt zwei Hauptansätze von Fehlerverbergung: räumliche und zeitliche Interpolation. Bei der räumlichen Interpolation werden vermisste Pixelwerte mit Hilfe der räumlich benachbarten Informationen rekonstruiert. Wohingegen bei der zeitlichen Interpolation die verlorenen Daten durch die Daten der vorangegangen Frames ersetzt. 10 5. Verteilungsdienste für kontinuierliche Medien Zur Lieferung qualitativ hochwertige Multimedia Präsentationen ist die entsprechende Netzwerkunterstützung entscheidend, denn Unterstützung von Seiten des Netzwerk bedeutet Reduzierung des Verzug während des Transport sowie Verringerung der Paketverlustrate. Eine sich in der Entwicklung befindende Idee sind Verteilungsdienste für kontinuierliche Medien, die auf oberster Netzwerkebene arbeiten und zur Effizienz von Video/Audio Streaming beitragen. Netzwerk Filterung, application- level multicast und Datenkopie sind Methoden zur Realisierung dieser Dienste. 1. Netzwerk Filterung arbeitet in Form einer Staukontrollfunktion mit dem Ziel die Videoqualität während eines Staus im Netzwerk maximal zu halten. Die Funktionsweise von Netzwerk Filter wird anhand einem Modell in Abbildung 9 verständlich [27]. Abbildung 9 : System Modell für Netzwerk Filter Kontrolle Server Kontrolle Filter Daten Klient Daten Das Modell besteht aus einem Server einem Klienten einen Filter und zwei Kanäle zwischen Ihnen. Der eine Kanal wird zur Kontrolle verwendet der andere zu Datenübertragung. Der Filter hat auf der Kontrollebene, Datenebene verschiedene Aufgaben zu erfüllen Auf der Datenebene empfängt der Filter Videoströme vom Server oder anderen Filtern und versendet das Video entsprechend der Zielrate zu einem weiteren Filter oder einem Klienten. Die Operationen des Filters auf Kontrollebene beinhalten die Verarbeitung von Anfragen eines Klienten oder anderer Filter, bzw. die Weiterleitung dieser Anfragen. Frame-dropping Filter können als Netzwerk Filter verwendet werden. Der Empfänger kann so dem Filter Anforderungen senden und dieser mit entsprechendem erhöhen oder erniedrigen der Framerate reagieren. Vorteile von Frame dropping Filter innerhalb des Netzwerk sind die Verbesserung der Videoqualität und Einsparung von Bandbreite, mittels dem Verwurf zu später Frames 2. Eine weitere Idee zur Verbesserung der Netzwerkunterstützung bezüglich kontinuierlichen Medien ist IP multicast [28] eine Erweiterung der IP Schicht. IP multicast ermöglicht effiziente Mehrpunkt Paketlieferung. Dazu erweitet IP multicast IP dadurch, dass einer Gruppe von Benutzer eine Gruppenadresse zugeordnet wird. Die Information muss nun nicht zu jedem einzelnen Benutzer geschickt werden, sondern nur einmal zu der IP Gruppenadresse. Jedoch gibt es noch viele Probleme bezüglich IP Multicast wie Skalierbarkeit, Netzwerk Management, Verteilung und Unterstützung von Funktionen höherer Ebenen, wie z.B. Staukontrolle. Aus diesen Problemen ist die Idee von application- level multicast [29] entstanden. Die Idee von multicast auf Anwendungsebene ist der Versuch den multicast Routern Funktionalitäten zuzuordnen. Sie sollen nicht mehr nur für die Weiterleitung von Paketen zuständig sein, sondern verschiedene Aufgaben auf Anwendungsebene übernehmen. So könnte ein Router beispielsweise die Funktion eines Filters übernehmen. Falls z.B. ein Empfänger nur an dem Empfang eines schwarz- weiß 11 Videos interessiert ist, kann der Router die Farbinformationen rausfiltern und somit Bandbreite einsparen. Ein großer Motivationspunkt bei der Forschung in diese Richtung ist sicherlich die Tatsache, dass die Router im Netzwerk arbeiten und somit Informationen über den Netzwerkstatus haben und dementsprechend reagieren können. 3. Eine Technik um die Skalierbarkeit von einem Verteilungssystem zu verbessern ist Datenkopie. Diese kann zwei verschiedene Formen annehmen, die jedoch beide zu den gleichen Verbesserungen, wie Reduzierung des Verzug, Reduzierung des Ladevorgang des Servers sowie Erhöhung der Verfügbarkeit von Daten, führen. „Mirroring“ kopiert die Originaldaten und speichert die Kopien auf anderen Maschinen verteilt im Internet, während die Originaldaten auf dem Hauptspeicher gespeichert bleiben. Klienten die nun eine Anfrage bezüglich der Daten haben können die Daten von dem Server verlangen der ihnen am nächsten ist. Caching ist die zweite Möglichkeit bei der Daten, die von einem Klienten angefordert werden lokal gespeichert werden. Ein sogenannter Cache fordert die Daten vom Server an und speichert eine Kopie der Daten lokal, so dass bei einer nächsten Anfrage der Daten die Kopie direkt vom Cache weiter gegeben werden kann ohne eine Anfrage an den Server vorzunehmen. 6. Protokolle für Video Streaming Computer kommunizieren miteinander auf vielen verschiedenen Ebenen. Ein Protokoll ist eine Menge von Regeln, die die Kommunikation zwischen zwei Computern beschreibt und bestimmt. Bezüglich ihrer Funktionsweise können Internetprotokolle in drei verschiedene Kategorien eingeteilt werden. 1. Network- layer Protokoll ist für die grundlegenden Informationen in einem Netzwerk verantwortlich, wie z.B. die Adressierung. 2. Transportprotokolle sind z.B. TCP, UDP, RTP, RTCP. 3. Session Kontrollprotokolle bestimmen Verfahren, um den Empfang von Multimediadaten während einer Sitzung zu kontrollieren. 6.1 Transportprotokolle TCP ist ein Transport Protokoll welches entwickelt wurde um die Zuverlässigkeit von Datenübertragungen zu gewährleisten. Dies geschieht, indem TCP die Pakete mit Nummern versieht und der Empfänger den Empfang eines Pakets bestätigen muss, bevor das nächste Paket gesendet wird. TCP ist für die Übertragung von Videoströmen nicht geeignet, da ein Videostrom gleichmäßig übertragen werden muss und eine Unterbrechung aufgrund von Paketverlust zu Verzerrung führen würde, da TCP die zeitlichen Beziehungen, die zwischen den Videoframes und Audio Paketen herrscht zerstören würde. UDP arbeitet auf der gleichen Ebene wie TCP, jedoch führt UDP keinen Kontrollfluss durch, d.h. es wird auf die Zuverlässigkeit bei der Übertragung der Daten verzichtet. UDP sendet die Daten in einen gleichmäßigen Strom direkt zum Empfänger, so dass die Resultate der Übertragung nur von der Geschwindigkeit der Verbindung abhängt. Es kann bei der Übertragung von Videoströmen zwar zu Lücken aufgrund von Paketverlust kommen, jedoch wird das Video kontinuierlich dargeboten und nicht wie bei TCP komplett unterbrochen. RTP [23] [24] ist das Internet Standard Protokoll für den Transport von Echtzeitdaten. RTP besteht aus einem Daten- und einem Kontrollteil. RTP besitzt nicht alle Funktionen eines Transportprotokolls und arbeitet mit TCP oder UDP zusammen. RTP hat jedoch den Vorteil 12 gegenüber UDP/TCP, dass Funktionen zur Unterstützung von Echtzeitdaten direkt verankert sind. RTP benutzt Zeitstempel, mit dessen Hilfe die Synchronisation der verschiedenen Medie nströme einfach durchgeführt werden kann. Außerdem bietet RTP eine Funktion zur Sequenznummerierung an, um ein Paket besser zu identifizieren. Falls ein Paket außerhalb der Sequenz ankommt kann der Empfänger es wieder an die richtige Stelle einordnen, außerdem kann so der Verlust eines Pakets entdeckt werden. Eine Identifikation von Daten seitens des Empfängers ist mit RTP ebenfalls möglich, da die Pakete mit einer Kopfzeile, die Auskunft über die Daten gibt. versehen sind. RTCP [23] ist ein Kontrollprotokoll und soll in Verbindung mit RTP arbeiten. Während einer RTP Übertragung senden die Teilnehmer RTCP Pakete mit Informationen über die Qualität der Datenübermittlung. RTCP bietet hauptsächlich folgende Dienste an: 1. QoS Feedback ist die Hauptfunktion von RTCP. Die feedback Informationen werden zwischen dem Sender und dem Empfänger in Form von Berichten übermittelt. Diese enthalten Informationen über die Qualität des Empfangs, wie Prozentzahl der verloren gegangenen Pakete seit dem letzten Bericht, die Zuna hme des Verlust seit Beginn der Übertragung, erlaubte Varianz der Verzögerung zwischen den Paketen und Informationen über den Verzug der Pakete seit dem Empfang des letzten Berichts. Basierend auf diesen Informationen kann der Sender die Übertragungsrate regulieren und der Empfänger erkennen, ob die Überfüllung lokal, regional oder global vorliegt. 2. Teilnehmeridentifikation über RTP SDES Pakete. Diese liefern Informationen über den Benutzer, wie Name, Telefonnummer und E-Mail Adresse. 3. Skalierung von Kontrollpaketen bietet die Möglichkeit die Anzahl der versendeten Kontrollpakete an die Anzahl der Teilnehmer anzupassen. Dabei ist eine Mindestversandrate von 5s festgelegt, nach denen ein Kontrollpaket versandt wird. Eine Kontrolltechnik versucht die Anzahl der Pakete so anzupassen, dass sie 5% der gesamten Bandbreite in Anspruch nehmen, dabei werden 25% der Kontrollpakete für Senderberichte verwendet und 75% für Empfängerberichte. 4. Intermedia- Synchronisation kann später mit Hilfe von Echtzeitangaben sowie Zeitstempel, die in RTCP Sendeberichten enthalten sind, vorgenommen werden. 5. Minimale Session Kontrollinformation zur Übermittlung von Sessioninformationen wie z.B. die Namen der Teilnehmer. 6.2 Session Kontrollprotokolle RTSP [25] ist ein Session Kontrollprotokoll für Medien Streaming übers Internet. Eine der wichtigsten Aufgaben von RTSP ist die Unterstützung von Kontrollfunktionen wie Stop, Pause, schnell vorwärts und schnell rückwärts laufen des Videos. RTSP bietet speziell folgende Operationen an: 1. Der Klient hat die Möglichkeit den Server um den Beginn einer Übertragung von Daten zu bitten. 2. Zufügen von Medien zu einer bereits existierenden Session. Dazu informieren sich der Klient und der Server gegenseitig darüber, wann Daten während einer existierenden Session verfügbar werden. SIP [26] ist ein weiteres Session Kontrollprotokoll. Ähnlich wie RTSP kann SIP ebenfalls Sessions mit einem oder mehreren Teilnehmern beginnen und beenden. Im Gegensatz zu RTSP unterstützt SIP die Mobilität des Benutzers, d.h. die Informationen werden dem Benutzer an seinen aktuellen Standort nachgesendet. Bei dem Transport eines Videostroms arbeiten alle 3 Protokolltypen wie folgt zusammen(Abbildung 10). Auf der Senderseite werden die komprimierten Video/Audio 13 Daten angefordert und auf der RTP Ebene verpackt. Die Pakete enthalten Zeit und Synchronisationsinformationen, sowie Sequenznummern. Nun werden die Pakete weiter über die UDP/TCP und IP Ebene transportiert und schließlich übers Internet versendet. Für die Kontrollebene werden die RTCP und RTSP Pakete auf der UDP/TCP Ebene vervielfacht über die IP Ebene transportiert und versendet. Auf der Empfängerseite wird der Medienstrom in umgekehrter Weise bearbeitet. Abbildung 10: Protokoll Stak für Medien Streaming Daten Ebene Komprimierte Videodaten RTP Ebene Kontroll Ebene RTCP Ebene RTSP/SIP Ebene UDP/TCP Ebene IP Ebene Internet 7.Streaming Server Streaming Server spielen eine wichtige Rolle bei der Bereitstellung von Streaming Service. Um die Dienste zur Verfügung zu stellen müssen Multimedia Daten unter Berücksichtigung der zeitlichen Bedingungen behandelt werden, um spätere Störungen der Videopräsentation beim Klienten zu verhindern. Ein Streaming Server besteht aus drei Teilsystemen. 1. Communicator: Ein Communicator umfasst die Anwendungsebene und die Transportprotokolle, die auf dem Server ausgeführt werden. ( Auf die Anwendungsebene wurde bereits in Teil 3. eingegangen und auf die Transportprotokolle in Teil 5.) 2. Betriebssystem: Ein Betriebssystem für Streaming Dienste unterscheidet sich von einem normalen Be triebssystem durch die Echtzeit Anforderungen der Streaming Anwendungen, die an es gestellt werden 3. Speichersystem: Ein Speichersystem für Streaming Dienste unterstützt die Speicherung und Wiedergabe von kontinuierlichen Medien. 14 7.1 Echtzeit Betriebssystem Das Betriebssystem eines Computers bildet die Schicht zwischen den Hardware- und Softwarekomponenten eines Rechners. Ein Betriebssystem stellt verschiedene Dienste zum Zugriff der Anwendungssoftware-Schicht auf die Ressourcen der Computer Hardware ( wie z.B. CPU, Speicher) zu Verfügung. Nicht alle Betriebssysteme erfüllen die Anforderungen von Multimediadaten. Eine grundsätzliche Anforderung an das Betriebssystem ist der Echtzeitbetrieb zum Verarbeiten von kontinuierlichen Medien. Dabei versteht man unter einem Echtzeitprozess einen Prozess der die Ergebnisse der Berechnung in einer vorgegeben Zeitspanne liefert. Die Grenze die für eine Berechnung zur Verfügung steht wird dabei durch eine Deadline beschrieben. Multimedia-Anwendungen erfordern die Verarbeitung kontinuierlicher Datenströme. Für jede logische Dateneinheit gilt eine Deadline, innerhalb dessen die Dateneinheit verarbeitet werden muss. Wird diese Deadline durch eine zu große Abweichung oder Verzögerungszeit verletzt, so kann sich dies durch Verzerrung oder Aussetzen der Wiedergabe bemerkbar machen. Die Aufgaben eines Echtzeit Betriebssystem umfassen Prozess Management, Ressourcen Management sowie Datei Management. 7.1.1 Prozess Management Der Prozess Manager hat in einem Computer System die Aufgabe die Ressource „Prozessorzeit“ gerecht den im System laufenden Prozessen zuzuteilen. In heute verbreiteten Betriebssystemen wird die Auswahl des nächsten auszuführenden Prozesses durch die Priorität eines Prozesses und die Zeit, die er schon im Wartezustand befindet bestimmt. Diese Strategie alleine ist für die Echtzeitverarbeitung von kontinuierlichen Datenströmen nicht geeignet, da ein Prozess keinerlei Zusicherung über die ihm zur Verfügung gestellten Prozessorzeit hat. Bei einem Echtzeit Betriebssystem muss der Prozess Manager den Prozessen eine Prozessorzeit zusichern und während der ganzen Laufzeit des Systems die Rechenzeit so auf die verschiedenen Prozesse aufteilen, dass alle laufenden Prozesse ihre Deadlines einhalten können. Die Scheduling Verfahren die dazu benutzt werden sind spezielle Echtzeit Scheduling Strategien. Diese basieren hauptsächlich auf zwei Algorithmen: „earliet Deadline First (EDF) [10] und „Rate Monotonic Scheduling“[11]. Bei EDF wählt der Scheduler denjenigen Prozess als nächsten auszuführenden, dessen Deadline als nächstes abzulaufen droht. Jedesmal, wenn ein neuer Prozess hinzukommt wird der aktuelle ausgeführte Prozess unterbrochen, die Warteschlange wartender Prozesse neu berechnet und der neue Prozess sofort ausgeführt, falls seine Deadline kürzer ist als der des unterbrochenen Prozesses. Durch diesen Algorithmus ist allerdings noch keine Sicherheit für Überlastung gegeben, jedoch falls es eine Ausführungsreihenfolge gibt bei der alle Deadlines eingehalten werden, so findet EDF diese Reihenfolge. Der Rate Monotonic Algorithmus ordnet jedem Prozess zu Beginn eine Priorität entsprechend seiner Anfragerate zu und bearbeitet die Prozesse dann in der Reihenfolge der Prioritäten. 7.1.2 Ressourcen Management Die hohen Anforderungen, die Multimedia Datenströme an die Ressourcen von Rechnern stellen erfordern eine ausgeklügelte Strategie zur Reservierung von Ressourcen für die einzelnen Ströme. Da die Mittel begrenzt sind kann ein Multimedia Server auch nur eine begrenzte Anzahl von Klienten bedienen. Ressourcen Management umfasst Techniken zur Zugangskontrolle sowie Verteilung der Ressourcen und wird zur Anpassung der Ressourcen an die Zeitanforderung benötigt. 15 Zugangskontrolle bedeutet, dass vor dem Einlass eines neuen Klienten überprüft wird, ob die neue Verbindung bereits existierende Verbindungen behindert. Falls eine neue Verbindung genehmigt ist werden die Mittel entsprechend der Anforderungen des neuen Klienten verteilt. Zugangskontrollalgorithmen könne n in zwei Kategorien unterteilt werden, deterministische [12] und statistische [13] Zugangskontrolle. Deterministische Zugangskontrollalgorithmen bieten dem Klienten starke Qualitätssicherheit, wohingegen die statistischen Algorithmen nur eine statistische Sicherheit bieten, d.h. nur die Erfüllung eines festen Anteil der Anforderungen wird garantiert. Die Verteilung der Ressourcen kann ebenfalls deterministisch oder statistisch vorgenommen werden. Beim deterministischen Verteilungsalgorithmen wird die Reservierung unter Berücksichtigung des „Worst case“ Fall vorgenommen, d.h. es wird angenommen, dass alle Anwendungen ihre reservierten Ressourcen zu jeder Zeit und zu 100% in Anspruch nehmen. Bei statistischen Algorithmen hingegen werden die Ressourcen nur auf der Grundlage einer durchschnittlichen Auslastungsquote reserviert. Dies bedingt eine bessere maximale Auslastung der Ressourcen, kann aber falls alle Anwendungen ihre reservierten Ressourcen zu 100% benutzen zu einer Überlastungssituation führen. 7.1.3. Datei Management Die Geschwindigkeit von Festspeicher-Geräten (Festplatten) ist im Vergleich zu anderen Komponenten eines Computersystems ( CPU, Netzwerk) relativ gering geblieben. Andererseits sind durch die großen Datenmengen von Multimedia Strömen die Anforderungen an das Dateisystem stark gestiegen. Neue Anforderungen die nun an das System gestellt werden sind Echtzeitanforderung, Datengröße, Durchsatz und mehrere (synchronisierte) Datenströme. Um eine Unterstützung von Multimedia Anwendungen zu leisten gibt es zwei verschiedene Ansätze. Entweder die Datenorganisation wird gleich gehalten und neue Disk Scheduling Algorithmen werden eingesetzt oder die Dateiorganisation wird bezüglich Multimedia Anwendungen optimiert. Scheduling Verfahren die den Ze itanforderungen gerecht werden sind: SCAN-EDF[14], grouped sweeping scheduling (GSS) [15] . 1. SCAN-EDF ist eine Kombination von SCAN [16] und EDF. Dieses Scheduling Verfahren versucht die Optimierung von SCAN und die Echtzeit Garantie von EDF zu verreinigen. 2. GSS bedient die Anfragen der Ströme im Round Robin Verfahren. Dazu werden die Ströme in Gruppen unterteilt und die Gruppe dann in einer festen Reihenfolge bedient. Eine Gruppe wird dabei so erstellt, dass alle Ströme die zu der Gruppe gehören ähnliche Fristen haben. Innerhalb der Gruppe werden die Ströme mittels SCAN bearbeitet. 7.2 Speichersystem Hoher Durchsatz, große Kapazität und Fehlertoleranz [17] sind Anforderungen die von Multimedia Anwendungen an ein Speichersystem gestellt werden und die im folgenden genauer durchleuchtet werden. Erhöhung des Durchsatz wird durch das Auseinanderziehen von Daten erreicht. Wenn eine Videodatei auf der Festplatte gespeichert ist, wird die Anzahl der Zugriffe zu dieser Datei durch den Durchsatz der Disk limitiert. Somit wird die Anzahl der Klienten die ein Video zur gleichen Zeit sehen können limitiert. Um diese Begrenzung aufzuheben werden nun Techniken eingesetzt, die die Daten auseinanderziehen. Dazu werden die Daten auf mehrere Disks verteilt auf die dann parallel zugegriffen werden kann. Ein Beispiel ist in Abbildung 7 zu sehen, hier kann Block 1, 2 und 3 von Datei A parallel gelesen werden. 16 Abbildung 7 : Erhöhung des Durchsatz durch parallelen Zugriff Disk Controller FileA, Block 1 File A Block 2 File a Block 3 File B Block 1 File B Block 2 File B Block 4 File A Block 5 File A Block 6 File B Block 3 File B Block 4 . . . . . . . . . . Die Kapazität eines Speichersystems kann durch ein hierarchischer Speicheraufbau erreicht werden. Dabei wird nur ein Bruchteil der Daten auf der Festplatte gespeichert während der Hauptteil auf einem tertiären Band System gespeichert wird ( Abbildung 8 ). Dabei werden die Video Dateien die häufig angefordert werden auf der Platte gespeichert, um schnellen Zugriff zu gewährleisten und die restlichen auf dem Band. Abbildung 8: Hierarchische Speicherarchitektur Video Server Buffer Memory Disk Controller Tape library Neuere Speicher-Technologien sind das Network attached storage (NAS) [18] und storage area Network (SAN)[19] [20]. NAS wurde entwickelt, um der Forderung nach dem gemeinsamen Nutzen von Daten nachzukommen. Bei diesem Konzept wird der Speicher über eine Netzwerkkarte direkt an ein LAN angehängt. Somit können die Klienten direkt über geeignete Protokolle plattformunabhängig auf die Speicherressourcen zugreifen. Diese Lösung nutzt das vorhandene Netzwerk. Ein SAN ist ein Hochgeschwindigkeitsnetzwerk zwischen Servern und Speichersubsystemen. Dabei ermöglicht ein SAN eine any-to-any Verbindung durch das gesamte Netzwerk. Speicher und Server können getrennt verwaltet werden und jeder Server kann auf jedes Medium zugreifen. 17 Beide Ansätze NAS und SAN bieten die Möglichkeit der Trennung der Daten vom Server, so dass das Speicher Management vereinfacht werden kann. Beide haben außerdem folgende Vorteile gegenüber traditionellen Speichersystemen: zentralisierten Speicher und dadurch einfaches Speicher Management, Skalierbarkeit und Fehlertoleranz. Fehlertoleranz die dritte Anforderung die von Multimedia Anwendungen an ein Speichersystem gestellt wird, bedeutet, dass selbst wenn ein Fehler auf der Festplatte auftritt muss der Server sicherstellen dass keine Unterbrechung stattfindet. Dies geschieht, indem der Server die verlorene Informationen mit Hilfe von redundanten Informationen rekonstruiert. Mit Hilfe der redundanten Informationen können dann entweder die selben Daten generiert werden oder zusätzliche Daten, die auf einer anderen Platte gespeichert werden. 8. Medien Synchronisation Ein Hauptunterschied von Multimediaanwendungen zu anderen Datenanwendungen ist die Synchronisation, d.h. verschiedene Medienströme müssen in richtiger zeitlicher Beziehung zueinander abgespielt werden. Man kann zwischen drei Ebenen von Synchronisation unterscheiden: intra-stream, inter-stream und inter-objekt Synchronisation [21]. 1. Intra-Stream Synchronisation vollzieht sich auf der niedrigsten Ebene von kontinuierlichen Medien, der sogenannten Medienebene. Einheiten der Medienebene sind lokale Dateneinheiten wie z.B. Video/Audio Frames. Das Ziel von Intra-Stream Synchronisation liegt nun darin die Gleichmäßigkeit der lokalen Dateneinheiten beizubehalten. 2. Inter-Stream Synchronisation arbeitet auf der Stream-Ebene, der zweiten Ebene von zeitbezogenen Daten. Inter-Stream Synchronisation stellt die zeitliche Beziehung zwischen den verschiedenen Medien her. 3. Inter-Objekt Synchronisation wird auf der höchsten Ebene von Multimediadokumenten, der Objektebene angewandt. Das Ziel von Inter-Objekt Synchronisation ist das Starten und Beenden der Präsentation bezüglich vorher festgesetzten Zeitmarken. Das Problem, welches sich bei Video- Streaming in bezug auf die Synchronisation ergibt ist der lange Weg vom Server zum Klienten, den die Videodaten zurücklegen. (Abb.1). Viele Komponenten spielen auf diesem Weg eine Rolle, welche die Daten auf ganz unterschiedliche Weise beeinflussen und zur Verzögerungen der Synchronisation beitragen kann. Der wichtigste Teil jeder Synchronisationstechnik besteht darin die Spezifikation zeitlicher Beziehungen innerhalb und zwischen den Medien zu bestimmen. Diese Bestimmung kann entweder automatisch oder manuell vorgenommen werden. Im Bereich von Video/Audio Aufnahmen und Wiedergabe werden die zeitlichen Beziehungen automatisch durch das Aufnahmegerät bestimmt. Wohingegen man bei selbst erstellten Daten manuell vorgehen muss. Um z.B. bei einer Folienpräsentation die zeitliche Beziehung zwischen den einzelnen Folien und dem passenden Ton herzustellen, muss man den Audiostrom entsprechend der Folien in kleine Bereiche einteilen. Jeder Bereich entspricht dann einer Folie. Abbildung 11: Synchronisation zwischen Folien und einer Audio Sequenz Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Audio Sequenz 18 Die Methoden zur Spezifikation zeitlicher Beziehungen kann man unterteilen in Intervall basierende, axes basierende, Kontrollfluss basierende und Ereignis basierende Methoden [22]. Für kontinuierliche Medien wird meistens die axes basierende Methode oder das Zeitstempeln angewandt. Dabei wird der Strom mit einem Zeitstempel versehen, um die zeitlichen Informationen innerhalb des Stroms und bezüglich anderer Ströme festzuhalten. Beim Empfänger wird der Strom entsprechend dieser zeitlichen Beziehungen abgespielt. 9. Zusammenfassung Video Streaming ist eine wichtige Komponente vieler Internet Multimediaanwendungen, wie z.B. elektronisches Fernstudium oder home shopping. Jedoch obwohl die Anwendungsgebiete und auch die Häufigkeit von Video Streaming immer häufiger geworden ist, gibt es noch viele Gebiete auf denen bessere Unterstützung erreicht werden könnte. Eine ganz wichtige Komponente spielt dabei natürlich das Internet, dessen Unterstützung eine wichtige Rolle bei der Verbesserung der Qualität von Multimediapräsentationen spielt. Ein Hauptschwerpunkt auf diesem Gebiet liegt darin skalierbare, effiziente Infrastrukturen für die Verteilung von kontinuierlicher Medien zu entwickeln. In der Ausarbeitung wurde versucht einen Überblick über die verschiedenen Gebiete zu geben, d.h. Ansätze vorzustellen die bereits vorhanden sind bzw. Ideen an deren genauer Umsätzen noch geforscht wird. Ein besonderer Schwerpunkt wurde dabei auf das Gebiet Videokomprimierung gelegt. Mittlerweile gibt es viele verschiedene Videokomprimierungsalgorithmen, und die Forschung auf diesem Gebiet arbeitet in verschiedene Richtungen. Die Forschungen auf dem Gebiet der skalierbaren Videokomprimierungstechniken versuchen möglichst hohe Flexibilität zu ermöglichen und die Komprimierung effizient zugestalten bei geringer Komplexität. Ein weitere Ansatz ist die Kombination verschiedener Verfahren, wie z.B. eine Kombination von skalierbarer Komprimierung, fehlerresistenter Verfahren und verzugerkennender Komprimierung. Eine Kombination der Vorteile der einzelnen Verfahren kann somit schon einige auftretende Probleme lösen. 19 Anhang Literaturverzeichnis [1] Dapeng Wu, Yiwei Thomas Hou, Wenwu Zhu, Ya-Qin Zhang, John m. Peha „Streaming Video over the Internet: Approaches and Directions” IEEE, vol. 11, March 2001. [2] Hayder M. Radha, Michaela van der Schaar, Yingwei Chen „The MPEG-4 Fine-Grained Scalable Video Coding Method for Multimedia Streaming over IP” IEEE, vol. 3, March 2001 [3] K.R.Rao, Zaran S. Bojkovic, Dagorad A. Milovanovic: Multimedia Communication Systems Techniques, Standards, and Networks. [4] D. Wu, Y. t. Hou, W. Zhu, H.-J. Lee, T. Chiang, Y.- Q. Zhang, and H. J. Chao, “ on endto-end architecture for transporting Mpeg-4 video over the Internet,” Proc. IEEE, vol.10, pp.923-941, Sept. 2000. [5] J.-C. Bolot, T. Turletti, and I. Wakeman, “ Scalable feedback control for multicast video distribution in the Internet” in Proc. ACM SIGCOMM´94, London, U.K., Sept.1994, pp. 58-67. [6] D. Wu, Y. T. Hou, and Y.-Q. Zhang, “ Transporting real-time video over the Internet: Challenges and approaches,” Proc. IEEE, vol. 88, pp.1855-1875, Dec. 2000. [7] S. Floyd and K. Fall, “Promoting the use of end-to-end congestion control in the Internet,” IEEE Trans. Networking, vol. 7, pp. 458-472, Aug. 1999. [8] S. McCanne, V. Jacobson, and M. Vetterli, “Receiver-driven layered multicast,” in Proc. ACM SIGCOMM´96, Aug. 1996, pp. 117-130. [9] Z.- L. Zhang, S. Nelakud iti, R. Aggarwa, and R. P. Tsang, „efficient server selective frame discard algorithms for stored video delivery over resource constrained networks,“ Proc. IEEE INFOCOM´99, pp. 472-479, Mar. 1999. [10] C. L. Liu and J. W. Layland, “ Scheduling algorithms for multiprogramming in hard real-time enviroment,” J.Assoc. Comput. Mach., vol. 20, no1, pp. 46-61, Jan. 1973. [11] J.Y. Chung, J. W. S. Liu, and K. J. Lin, “Scheduling periodic jobs that allows imprecise results,” IEEE Trans. Comput., vol. 19, pp. 1156-1173, Sept. 1990. [12] J. Gemell and S Christodoulakis, “ Principles of delay sensitive multimedia data storage and retrieval, “ACM Trans. Inform. Syst., vol. 10, no. 1, pp. 51-90, Jan. 1992. [13] H. M. Vin, P. Goyal, and A. Goyal. And A. Goyal, “A statistical admission control algorithm for multimedia servers,” in Proc. ACM Multimedia´94, Oct. 1994, pp.33-40. [14] A. L. Reddy and J. Wyllie, “ Disk Scheduling in multimedia I/O system, ” in Proc. ACM Multimedia´93, Anaheim, CA, Aug. 1-6, 1993, pp. 289-297. 20 [15] P. S. Yu, M. S. Chen, and D.D. Kandlur, „Grouped sweeping scheduling for DASDbased multimedia storage management,” ACM/Springer Multimedia Syst., vol. 1, no. 3, pp. 99-109, 1993. [16] P. J. Denning, “Effects of scheduling on file memory operations,” in Proc. AFIPS Spring Joint Computer Conf., Reston, VA; 1967, pp.9-21. [17] J. Gemell, H. M. Vin, D.D. Kandlur, P. V. Rangan, and L. A. Rowe, „Multimedia storage servers: A tutorial,“ IEEE Comput. Mag., vol. 28, pp. 40-49, May 1995. [18] G. A. Gibson and R. V. Meter “Network attached storage architekture,” Commun. ACM, vol. 43, no. 11, pp. 37-45, Nov. 2000. [19] D. H. C. Du and Y.-J. Lee, “Scalable server and storage architectures for video streaming,” Proc. IEEE Int. Conf. Multimedia Computing and systems, pp. 62-67, June 1999. [20] A. Guha, “The evolution to network storage architectures for multimedia applications,” Proc. IEEE Int. Conf. Multimedia Computing and Systems, pp. 68-73, June 1999. [21] R. Steinmetz and K. Nahrstedt, Multimedia: Computing, Communications and Applications. Englewood Cliffs, NJ: Prentice-Hall, 1995. [22] G. Blakowski and R. Steinmetz, “ A media synchronization survey: Reference model, specification, and case studies,” IEEE J. Select. Areas Commun., vol. 14, pp. 5-35, Jan. 1996. [23] Handbook of Communication Technologies: The next Decade- Multimedia over IP: RSVP, RTP, RTCP, RTSP, R. Osso, Ed., CRC Press, Boca Raton, Fl, 1999, pp. 29-46. [24] H. Schulzrinne, S. Casner, R. Frederick, and V. jacobson, „RTP: A Transport Protocol for Real-Time Applications,“ Internet Engineering Task Force, Rfc 1889, Jan. 1996. [25] H. Schulzrinne, A. Rao, and R. Lamphier, „Real Time Streaming Protocol ( RTSP ),“ Internet Engineering Task Force, RFC 2326, Apr. 1998. [26] M. Handley, H. Sculzrinne, E. Schooler, and J. Rosenberg, “SIP: Seesion Initiation Proticol,” Internet Engineering Task Force, RFC 2543, Mar. 1999. [27] M. Hemy, U. Hengartner, P. Steenkiste, and T. Gross, “MPEG system stream in besteffort networks,” Proc. IEEE Packet Video´99, Apr. 1999. [28] S. Deering, “Moulticast routing in internetworks and exetended LANs,” in Proc. AMC SIGCOMM´88, Standford, CA, Aug. 1988, pp.55-64. [29] FastFoward Networks. ( 2000 ) FastFoward networks´ broadcast overlay architecture. [Online]. Available: http://www.ffnet.com/pdfs/boa-whitepaper.pdf 21 [30] J.-C. Bolot and T. turletti, “Adaptive error control for packet video in the Internet,” Proc. IEEE Int. Conf. Image Processing ( ICIP´96 ), pp. 25-28, Sept. 1996. [31] R. Puri, K. Ramchandran, K. W. Lee, and V. Bharghavan, “Application of FEC based multiple desscription coding to Internet Video streaming and multicast,” in Proc. Packet Video Workshop, cagliari, Sardinia, Italy, May 1-2, 2000. [32] Y. Wang, M. T. Orchard, and A. R. Reibman, “Multiple description image coding for noisy channels by pairing transform coefficients,” Proc. IEEE Workshop on Multimedia Signal Processing, pp. 419-424, June 1997. [33] S. Li, F. Wu, and Y.-Q. Zhang, “Study of a New Approach to Improve FGS Video Coding Efficiency,” ISO/IEC JTC1/SC29/WG11, MPEG99/M5583, Dec. 1999. [34] W. Li, “Bit-Plane Coding of DCT Coefficients for Fine Granularity Scalability,” ISO/IEC JTC1/SC29/WG11, MPEG98/M3989, Oct. 1998. [35] http://www. MPEG.org [36] F. Wu, S. Li, and Y.-Q. Zhang, “A framework for efficient progrssive fine granularity scalable video coding,” IEEE trans. Circuits syst. Video technol., vol. 11, pp. 282-300, Mar. 2001. 22