Videocodierung - Bessere Paketverlusttoleranz

Sep 25, 2018

Videocodierung - Bessere Paketverlusttoleranz


Video Coding - Better Packet Loss Tolerance.png

Der aktuelle H.264-Videostream (nicht hierarchisch) ist hinsichtlich der Datenkomprimierung sehr ausgereift, und beim Komprimieren von Daten werden alle Methoden verwendet, die aus Büchern gelernt wurden. Einer der wichtigsten ist das Senden von Inkrementen. Information. Wenn ein Videobildrahmen nur geringfügig basierend auf dem vorhergehenden Rahmen geändert wird, dann ist es beim Übertragen des Bildes des Rahmens nicht notwendig, die Information zu übertragen, die nicht geändert wurde. Der Codec überträgt nur die inkrementellen Informationen und informiert den Empfänger: "Diese Pixel haben solche Änderungen vorgenommen, während die anderen Pixel intakt bleiben." Auf diese Weise ist die zu übertragende Information viel geringer als die von dem Bild des gesamten Rahmens übertragene Information, so dass der Kompressionseffekt stark verbessert ist.

 

Wenn das Netzwerk jedoch Paketverluste aufweist, wird der Nachteil dieser inkrementellen Informationsübertragungsmethode hervorgehoben. Sobald ein Paket verloren gegangen ist, kann das Empfangsende die letzte Änderungsinformation des Videobildrahmens nicht erhalten, so dass das Videobild einen kleinen Fehler aufweist. Wenn das nächste Paket erreicht wird, wird das Bild selbst mit der falschen Information aufgebaut, so dass die Bildqualität noch schlechter ist. Als Antwort auf dieses Problem verwendet der aktuelle Codec ein Verfahren zum Übertragen vollständiger Bildrahmeninformationen von Zeit zu Zeit. Sobald ein Paketverlust auftritt, kann der Empfänger anfordern, einen gesamten Bildrahmen zu aktualisieren, um den Abgleichprozess zu beschleunigen. Dies führt jedoch zu einer gesamten Netzwerkverzögerung, zuzüglich der internen Verarbeitungszeit des Codec, das Ergebnis ist offensichtlich.

 

Es gibt auch einige Anbieter, die Vorwärtsfehlerkorrekturalgorithmen (FEC) verwenden, um dieses Problem zu lösen. FEC ist eine Art von Blockcodierungsalgorithmus, der die Genauigkeit verbessert, indem redundante Information erzeugt und die redundante Information zusammen mit dem ursprünglichen Paketstrom übertragen wird. Diese redundante Information kann dazu beitragen, verlorene Pakete im Netzwerk zu rekonstruieren, vorausgesetzt, die richtige Information und redundante Information sind ausreichend. Diese Methode klingt gut, kostet aber natürlich ein wenig. Da der Codec auch redundante Informationen senden muss, steigen die Bandbreitenanforderungen für das Netzwerk entsprechend. Einige Codecs garantieren eine anhaltende Übertragungsbandbreite (Video plus FEC-Overhead), indem die dem Video zugewiesene Bandbreite geopfert wird. Natürlich wird dies die Qualität des Videostroms beeinträchtigen. Zusätzlich muss in dem FEC-Algorithmus, bevor der FEC-Code übertragen wird, ein Datenpaket erzeugt werden und der FEC-Code muss berechnet werden. Auf der Empfangsseite müssen ein Datenpaket und redundante Informationen gesammelt werden, um das verlorene Datenpaket zu rekonstruieren, was unweigerlich die Verzögerung erhöht. Die Zunahme der Verzögerung wird die Interaktivität der Videokommunikation verringern und die Schwierigkeit der Zweiwegkonversation erhöhen.

 

Also, was kann SVC dieses Problem lösen? Wir wissen, dass SVC Videobilder durch eine Basisschicht und eine oder mehrere Erweiterungsschichten erzeugt, die in unterschiedlichen Datenpaketen im Netzwerk übertragen werden, die Auswirkungen des Verlusts der Basisschichtdatenpakete und das Ergebnis einer nicht hierarchischen Codierung. Es ist konsistent, aber die Auswirkung des Paketverlusts der Erweiterungsschicht ist viel kleiner. Da die Erweiterungsschicht eher auf der Basisschicht als auf dem Vorderrahmenbild basiert, verursacht der Paketverlust der Erweiterungsschicht nur eine vorübergehende Schärfe und Bildratenverschlechterung, ohne die Grundarchitektur des Videobildes zu beeinträchtigen.

 

Der FEC-Code kann die Basisschichtinformation des SVC-Videostroms in der gleichen Weise wie die nicht-hierarchische Codierung schützen. Bei SVC-Videokommunikation mit niedrigeren Auflösungsanforderungen weist die Verwendung von FEC-Codes auch die Beschränkungen, Overhead- und Verzögerungsprobleme von nicht-hierarchischer Codierung mit geringer Bandbreite auf. In den höheren Bandbreitenanforderungen ist der Unterschied zwischen mehrstufigen und nicht-layerbaren Videocodierungstechniken sehr offensichtlich. Dies liegt daran, dass in der Basisschicht nur Overhead vorhanden ist, nicht jedoch in der Erweiterungsschicht. Wenn der FEC-Code beispielsweise insgesamt 20% Overhead hinzufügt und die Basisschicht nur 25% der Bandbreite der gesamten Videokommunikation einnimmt, das heißt, in der geschichteten Videocodierung belegt der FEC-Code nur 5% der Gesamtkapazität gesamte Videokommunikation Bandbreite, während FEC-Codes 20% der gesamten Bandbreite in nicht-layerbarer Videocodierung belegen.

 

Daher spiegeln sich die Vorteile der geschichteten Videocodiertechnologie hier in der Kombination der geschichteten Video-Stream-Architektur und des Basisschicht-FEC-Schutzes wider. Für Anrufe mit niedriger Bandbreite sind die Effekte, die durch geschichtete Videocodierung und nicht geschichtete Videocodierung erzielt werden, ähnlich. Bei Gesprächen mit hoher Bandbreite kann die geschichtete Videocodierung jedoch Video mit höherer Qualität in einem Netzwerk bereitstellen, das leicht Pakete löschen kann, und erfordert weniger Schutz als nicht-layerbare Videocodierung.


Das könnte dir auch gefallen