Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR MIXING VIDEO STREAMS AT THE MACROBLOCK LEVEL
Document Type and Number:
WIPO Patent Application WO/2011/157399
Kind Code:
A1
Abstract:
The invention relates to a method and device for mixing video streams in a video mixer device, by means of which a plurality of input video streams from different subscribers which are encoded with code words for macroblocks and in which the code words have interdependencies are combined into an output video stream. The input video streams are at least entropy-decoded to such a degree that the dependencies among the code words are dissolved, wherein the macroblocks are re-organized and mixed with each other, and the mixed macroblocks are entropy-encoded to obtain a new dedicated video stream.

Inventors:
AMON PETER (DE)
OERTEL NORBERT (DE)
Application Number:
PCT/EP2011/002920
Publication Date:
December 22, 2011
Filing Date:
June 14, 2011
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS ENTPR COMMUNICATIONS (DE)
AMON PETER (DE)
OERTEL NORBERT (DE)
International Classes:
H04N7/24; H04N7/26; H04N7/50
Foreign References:
US20050231588A12005-10-20
Other References:
LI C-H; WANG C-N; CHIANG T: "A multiple-window video embedding transcoder based on H.264/AVC standard", EURASIP JOURNAL ON ADVANCES IN SIGNAL PROCESSING, 2007, pages 1 - 17, XP002657323, ISSN: 1687-6172, DOI: 10.1155/2007/13790
DI XU ET AL: "Logo insertion transcoding for H.264/AVC compressed video", IMAGE PROCESSING (ICIP), 2009 16TH IEEE INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 7 November 2009 (2009-11-07), pages 3693 - 3696, XP031628889, ISBN: 978-1-4244-5653-6
JU REN ET AL: "Software parallel CAVLC encoder based on stream processing", EMBEDDED SYSTEMS FOR REAL-TIME MULTIMEDIA, 2009. ESTIMEDIA 2009. IEEE/ACM/IFIP 7TH WORKSHOP ON, IEEE, PISCATAWAY, NJ, USA, 15 October 2006 (2006-10-15), pages 126 - 133, XP031569127, ISBN: 978-1-4244-5169-2
CHIH-HUNG LI ET AL: "A reconfigurable video embedding transcoder based on H.264/AVC: Design tradeoffs and analysis", CIRCUITS AND SYSTEMS, 2008. ISCAS 2008. IEEE INTERNATIONAL SYMPOSIUM ON, IEEE, PISCATAWAY, NJ, USA, 18 May 2008 (2008-05-18), pages 852 - 855, XP031392107, ISBN: 978-1-4244-1683-7, DOI: 10.1109/ISCAS.2008.4541552
DA-JIN SHIU ET AL: "A DCT-domain H.263 based video combiner for multipoint continuous presence video conferencing", MULTIMEDIA COMPUTING AND SYSTEMS, 1999. IEEE INTERNATIONAL CONFERENCE ON FLORENCE, ITALY 7-11 JUNE 1999, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, vol. 2, 7 June 1999 (1999-06-07), pages 77 - 81, XP010519359, ISBN: 978-0-7695-0253-3, DOI: 10.1109/MMCS.1999.778143
See also references of EP 2583461A1
Attorney, Agent or Firm:
FRITZSCHE, THOMAS (DE)
Download PDF:
Claims:
Patentansprüche

1. Verfahren zum Mischen von Videoströmen in einer Videomischer- Vorrichtung, die mehrere Eingangs- Videoströme von verschiedenen Teilnehmern, die mit Codewörtern für Makroblöcke codiert sind und bei denen die Codewörter Abhängigkeiten untereinander aufweisen, in einen Ausgangs- Videostrom zusammenfasst,

dadurch gekennzeichnet, dass

die Eingangs-Videoströme mindestens soweit Entropie-decodiert werden, dass die Abhängigkeiten zwischen den Codewörtern aufgelöst werden, dass die Makroblöcke neu geordnet und zusammengemischt werden, und dass die gemischten Makroblöcke zu einem neuen dedizierten Videostrom Entropie-encodiert werden.

2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass

die Eingangs-Videoströme und der Ausgangs- Videostrom gemäß dem H.264/AVC Standard codiert sind.

3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass

für die Entropie-Codierung ein Context-based Adaptive Variable Length Coding (CAVLC) Codier-V erfahren angewendet wird.

4. Verfahren nach Anspruch 1 , dadurch gekennzeichnet, dass

für die Entropie-Codierung ein Context-based Adaptive Binary Arithmetic Coding (CABAC) Codier- Verfahren angewendet wird.

5. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass

für die Entropie-Decodierung gemischter Makroblöcke die Codewörter durch die Auswahl einer VLC-Tabelle gemäß H.264/AVC bestimmt werden.

6. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass

für die Entropie-Decodierung gemischter Makroblöcke die CABAC-Symbole vollständig decodiert werden.

7. Verfahren nach einem der vorhergehenden Patentansprüche, dadurch

gekennzeichnet, dass

die gemäß H.264/AVC enthaltenen Bewegungsvektoren nicht außerhalb des Bildes zeigen, damit eine falsche Inter-Prädiktion vermieden wird.

8. Verfahren nach einem der vorhergehenden Patentansprüche, dadurch

gekennzeichnet, dass

für die Entropie-Decodierung der H.264/AVC Videoströme keine Slice-Gruppen berücksichtigt werden.

9. Videomischer-Einheit zur Transcodierung von Videoströmen, an die eine Anzahl von Teilnehmer-Endpunkten mit einem Encoder und Decoder gemäß H.264/AVC Standard angeschlossen ist, dadurch gekennzeichnet, dass

die Videomischer-Einheit eingangsseitig mit einer Anzahl von Entropie-Decodern und ausgangsseitig mit einem Entropie-Encoder ausgestattet und zur Durchführung eines der Verfahren gemäß den Patentansprüchen 1 bis 8 eingerichtet ist.

Description:
Verfahren und Vorrichtung zum Mischen von Videoströmen auf der Makroblock- Ebene

Die Erfindung beschreibt ein Verfahren zum Mischen von Videoströmen auf der Makroblock-Ebene gemäß dem Oberbegriff des Patentanspruchs 1 und eine

Vorrichtung zur Durchführung des Verfahrens gemäß dem Oberbegriff des

Patentanspruchs 9.

In bestimmten Anwendungen ist es notwendig, dass der Inhalt von mehreren

Videoströmen gleichzeitig an einem Gerät angezeigt wird. So sind beispielsweise Videokonferenzen mit mehr als zwei Teilnehmern bekannt, bei denen die Videosignale und Audiosignale zwischen zwei oder mehreren Standorten in Echtzeit übertragen werden. Die Endgeräte bzw. Softclients der Anwender sind zu diesem Zweck mit einer Kamera, heute meist USB-Webcam, und einem Mikrofon bzw. Headset als

Eingabegeräte sowie einem Bildschirm und einem Lautsprecher bzw. Headset als Ausgabegeräte ausgestattet. Die Video- und Audiosignale können hardware-basiert über Steckkarten oder rein software-basiert encodiert und decodiert werden. Heutzutage wird von den Anwendern eines Videokonferenzsystems in der Regel gefordert, dass nicht nur der momentan sprechende Teilnehmer von allen anderen Teilnehmern gesehen wird, wie das bei„voice activated switching" Systemen der Fall ist, sondern dass alle oder zumindest mehrere der Gesprächspartner sich gleichzeitig gegenseitig auf dem

Bildschirm sehen können, wie das bei„continous presence" Systemen der Fall ist.

Ein weiteres Anwendungsbeispiel liegt im Bereich der Videoüberwachung, wobei in einem Kontrollraum mehrere Videoströme von unterschiedlichen

Überwachungskameras gleichzeitig decodiert und live auf einem Bildschirm angezeigt werden. Verfügt das System nur über einen Decoder, dann kann immer nur ein

Videostrom von einer Überwachungskamera zu einem Zeitpunkt decodiert und angezeigt werden. Aufgrund der Tatsache, dass heute sehr viele installierte Endgeräte bzw. Softclients von Videokonferenzsystemen nur über einen einzigen Decoder verfügen, ist es nicht möglich mehrere Videoströme gleichzeitig in diesen Endgeräten bzw. Softclients zu decodieren und anzuzeigen. Deshalb ist eine heute weit verbreitete Vorgehensweise, dass eine Video Bridge oder Multipoint Control Unit (MCU) eingesetzt wird. Diese stellt eine zentrale Einheit dar, die die encodierten Videoströme von mehreren

Teilnehmern empfängt, verarbeitet und einen dedizierten Videostrom an alle

Teilnehmer zurücksendet. Dazu müssen die Videoströme vollständig oder zumindest größtenteils decodiert, die Videodaten zusammengefügt und dann zu einem neuen Videostrom encodiert werden. Die Figur 4 zeigt in schematischer Darstellung die vollständige Transcodierung von zwei H.264 codierten Videoströmen. Dieses Verfahren wird vielfach als hardware-basierte Implementierung realisiert, da es sehr komplex ist, was zu hohen Gerätekosten führt. Außerdem ergeben sich durch die Transcodierung Verzögerungszeiten durch die Vielzahl der Signalverarbeitungsschritte und

Qualitätseinbußen durch die erneute Encodierung.

Ein weiteres bekanntes Verfahren ist das Mischen von Videoströmen auf der Slice- Ebene, wie in der Voranmeldung des gleichen Anmelders mit dem Titel„Mixen von Videoströmen" von den Erfindern Peter Amon und Andreas Hutter beschrieben.

Im H.264/AVC Standard sind die Makroblöcke in sogenannten Slices organisiert, wobei jedes Slice unabhängig von anderen Slices decodiert werden kann. Mit dem im

H.264/ AVC Standard definierten Flexible Macroblock Ordering (FMO) ist eine flexible Zuordnung der Makroblöcke zu Slice-Gruppen möglich. Diese Möglichkeit wird gemäß dem Verfahren nun für das Mischen von mehreren Videoströmen verwendet. So kann für jeden Eingangs-Videostrom eine Slice-Gruppe definiert werden, die durch einen Video Mixer in einen Strom mit zwei Slice-Gruppen vereint werden. In Figur 5 ist in einer schematischen Darstellung das Mischen zweier H.264 codierter Videoströme auf der Slice-Ebene gezeigt. Allerdings existieren heute viele Decoder, die Slice-Gruppen nicht unterstützen, wodurch das Mischen von Videoströmen auf der Slice-Ebene nicht anwendbar ist. Für den Videocodierstandard H.261 ist vermutlich ein Verfahren bekannt, mit dem mehrere Bilder auf der Makroblock-Ebene zu einem neuen Bild zusammengefügt werden können. Die Vermutung, dass dieses Verfahren bekannt ist, begründet sich darauf, dass in dem Analystenreport„Will Your Next Video Bridge Be Software- Based?" von Wainhouse Research in 2003 (http://www.wainhouse.com/files/papers/wr- sw-video-bridges.pdf) über das Mixen von H.261 Videoströmen berichtet wird, ohne auf das Verfahren näher einzugehen. Allerdings lassen die Performance-Messungen vermuten, dass ein Verfahren wie oben beschrieben und in der Figur 6 in schematischer Darstellung gezeigt, verwendet wird, da nicht so viele komplette Transcodiervorgänge gleichzeitig auf einem Rechner der angegebenen Leistungsstärke durchführbar sind.

H.261 verwendet zur Entropie-Codierung ein Variable Length Codes (VLC) Verfahren. Bei dem im H.261 Standard verwendeten variablen Längen-Codes wird ein zu codierendes Symbol mittels einer einzigen Codewort-Tabelle fest einem Codewort zugeordnet. Dadurch gibt es keine Abhängigkeit zwischen den Symbolen und somit zwischen den Makroblöcken. Somit kann durch einfache Umsortierung der

Makroblöcke das Zusammenfügen von mehreren Videoströmen zu einem Videostrom durchgeführt werden. Um die zu übertragenden Daten, wie z.B. Restfehler aus den Prädiktionen, Differenz zu den geschätzten Bewegungsvektoren, etc., nochmals zu komprimieren werden diese mittels einer sogenannten Entropie-Kodierung codiert. Der H.264/AVC Standard bietet zwei Möglichkeiten von Entropie-Kodierung für die Videoströme, das Context-based Adaptive Variable Length Coding (CAVLC) Verfahren und das Context-based

Adaptive Binary Arithmetic Coding (CABAC) Verfahren. Beide basieren auf sogenannter lernfähiger kontextabhängiger Entropie-Kodierung, entweder mit variabler Codelänge oder binär arithmetischer Codierung und erreichen dadurch

Leistungsvorteile im Kodierungsprozess gegenüber den anderen Standards. Bei CAVLC gibt es bei der Codierung eines Makroblocks Abhängigkeiten von

Codierentscheidungen von benachbarten, bereits codierten Makroblöcken. Bei CABAC wirkt sich die Codierung eines Symbols auf die Auswahl des Codewortes für das darauf folgende Symbol aus, so dass Abhängigkeiten zwischen den Codewörtern und somit zwischen den Makroblöcken entstehen. Das für H.261 codierte Ströme gezeigte Verfahren zum Mischen der Videoströme auf Makroblock-Ebene kann somit nicht unmittelbar zum Mischen von H.264/AVC codierten Videoströmen durchgeführt werden. Es ist Aufgabe der vorliegenden Erfindung, ein Verfahren zum Mischen von

Videoströmen anzugeben, die mit Codewörtern für Makroblöcke codiert sind und bei denen die Codewörter Abhängigkeiten untereinander aufweisen, welches gegenüber dem Stand der Technik die aufgezeigten Nachteile vermeidet. Diese Aufgabe wird durch das Verfahren gemäß Patentanspruch 1 und durch eine Vorrichtung gemäß Patentanspruch 9 gelöst.

Ausführungsformen der Erfindung sind in den abhängigen Ansprüchen angegeben.

Das erfindungsgemäße Verfahren geht vom Mischen der Videoströme, die nach dem H.264/AVC Standard codiert sind, auf der Makroblock-Ebene aus. Zunächst müssen die von den Teilnehmern empfangenen Videoströme decodiert werden. Dies geschieht durch das Auflösen der Abhängigkeiten zwischen den Codewörtern durch eine vollständige oder teilweise Entropie-Decodierung. Danach werden die Makroblöcke der Eingangs-Videoströme neu geordnet und zu einem neuen Makroblock zusammengefügt, der alle Daten der einzelnen Makroblöcke enthält. Abschließend wird ein neuer

Videostrom encodiert und an alle oder eine bestimmte Anzahl von Teilnehmer gesendet, so dass sich die Teilnehmer gleichzeitig gegenseitig sehen können. Dies geschieht dadurch, dass die vollständige oder teilweise Entropie-Decodierung nach dem Mischen der Videoströme durch eine vollständige oder teilweise Entropie-Encodierung wieder rückgängig gemacht wird. Dieses Verfahren ist in Figur 2 schematisch dargestellt, wobei zwei H.264 codierte Videoströme auf der Makroblock-Ebene gemischt werden.

Das erfinderische Verfahren kann für die beiden im H.264/ A VC Standard definierten Entropie-Codierverfahren CAVLC und CABAC eingesetzt werden.

Bei der CAVLC Methode wird für das zu kodierende Element in Abhängigkeit von den bereits übertragenen Daten zwischen verschiedenen VLC-Tabellen umgeschaltet. Da die VLC-Tabellen anhand von Statistiken sorgfaltig konstruiert wurden, erzielt man so eine deutliche Leistungssteigerung gegenüber dem exponentiellen Golomb-Code.

Im CA VLC Verfahren werden für jeden 4x4-Block folgende Syntaxelemente codiert: - coeff token: Anzahl der Koeffizienten ungleich Null (0-16) und die Anzahl der Einsen am Ende des Zig-Zag-Scans, den sogenannten„trailing ones"

- trailing_ones_sign_flag: Vorzeichen der„trailing ones"

- level_prefix und level_suffix: Betrag und Vorzeichen der Koeffizienten ungleich Null, ohne„trailing ones"

- total_zeros: Anzahl der Koeffizienten gleich Null im 4x4-Block bis zum letzten Koeffizienten ungleich Null in der Scan-Reihenfolge

- run before: Anzahl der Koeffizienten gleich Null bis zum nächsten Koeffizienten ungleich Null Für die Codierung von coeff_token wird bei Luminanz-Koeffizienten eine von vier VLC-Tabellen ausgewählt. Die Auswahl hängt von der Anzahl der Koeffizienten ungleich Null in den beiden 4x4-Blöcken links und über dem aktuellen 4x4-Block ab, falls diese im selben Slice sind. Ein Slice ist bei H.264/AVC eine Anzahl von

Makroblöcken, die gemeinsam codiert werden. Falls die Blöcke nicht existieren, am linken oberen Bildrand oder am Anfang eines Slice, wird ein Standardwert gesetzt.

Bei einer Neuanordnung der Makroblöcke beim Mixen kann sich allerdings diese Anzahl verändern, so dass am Decoder die falsche Tabelle für die Entropie- Decodierung der Codewörter herangezogen würde. Um dies zu verhindern, müssen die entsprechenden Codewörter ausgetauscht werden, wenn sich eine andere VLC-Tabelle ergeben würde. Dazu müssen die Codewörter nicht decodiert werden, also die Anzahl der Koeffizienten ungleich Null und die Anzahl„trailing ones" bestimmt werden, sondern der Übergang kann direkt aus der im H.264/AVC Standard definierten Tabelle bestimmt werden. Diese VLC Tabelle ist in Figur 3 dargestellt, wobei der Parameter nC die zu selektierende Tabelle bestimmt.

Das Syntaxelement trailing ones sign flag wird mit fester Wortlänge und nicht adaptiv codiert. Das Syntaxelement level suffix wird mit variabler Wortlänge (0 oder 1 Bit) codiert. Diese Wortlänge hängt allerdings nur vom Syntaxelement coeff token desselben 4x4-Blocks ab. Die übrigen Syntaxelemente trailing_ones_sign_flag, level_prefix, level suffix, total zeros, run before werden zwar adaptiv codiert, entsprechend dem CAVLC-Verfahren, allerdings bestehen keine Abhängigkeiten außerhalb des 4x4-Blocks. Somit können die Codewörter zu allen Syntaxelementen außer coeff token direkt in dem gemischten Datenstrom übernommen werden.

Da also nur die Makroblöcke bzw. 4x4-B locke am linken und oberen Rand überprüft werden müssen, die nach dem Mischen nicht mehr am linken oder entsprechend am oberen Rande des gemischten Bildes liegen, kann die Entropie-Decodierung und anschließende erneute Entropie-Encodierung auf ein Minimum reduziert und das Mischen effizient durchgeführt werden. Wenn also beispielsweise zwei Videosignale übereinander gemischt werden, müssen entsprechend nur die Makroblöcke am oberen Rand des zweiten Bildes überprüft und gegebenenfalls in ihrer Entropie-Codierung angepasst werden.

Die Entropie-Codierung mit dem CABAC-Verfahren erfolgt in mehreren Schritten: 1. Binarisierung des zu codierenden Symbols ähnlich einer variablen Längencodierung (VLC). Die Binärsymbole werden als„bin" bezeichnet.

2. Auswahl eines Kontext-Modells anhand des Typs des zu codierenden Symbols, z.B. Bewegungsvektor oder Koeffizient, für jedes zu codierende Bit des binarisierten Symbols„bin".

3. Codieren des„bin" anhand des gewählten Kontext-Modells, d.h. arithmetische Codierung des Bits anhand der Wahrscheinlichkeiten für„0" bzw.„1". Die

Wahrscheinlichkeiten ergeben sich aus der Wahl des Kontext-Modells.

4. Aktualisierung des bei der Codierung verwendeten Kontext-Modells, d.h.

Nachführung der Wahrscheinlichkeiten. Wenn beispielsweise eine„1" codiert wird, wird bei der nächsten Codierung eines„bin" für dessen Kontext-Modell eine höhere Wahrscheinlichkeit für eine„1" angenommen. Entsprechendes gilt für die Codierung einer„0".

5. Wiederholung der Schritte 3 und 4 , bis alle„bin" des Symbols codiert wurden. Falls die„bins" eines Symbols unterschiedlichen Kontexten zugeordnet sind, dann muss auch Schritt 2 wiederholt werden. Durch die Eigenschaften der arithmetischen Codierung, ein Bit des Ausgangsstroms kann Informationen für mehrere„bin" bzw. zu codierende Eingangssymbole enthalten, und der Aktualisierung der Kontext-Modelle ergibt sich eine Abhängigkeit des aktuell zu codierenden Symbols von den vorherigen Symbolen innerhalb desselben Slice. An Slice-Grenzen werden die Kontext-Modelle auf einen Initialwert gesetzt. Wenn die Makroblöcke von mehreren Videoströmen gemischt werden, dann stimmen die

Kontexte nach dem Mixen nicht mehr überein und der neue Videostrom kann nicht mehr decodiert werden. Um eine korrekte Decodierung zu ermöglichen, ist eine vollständige Decodierung der CABAC-Symbole mit anschließender Neucodierung nötig. Durch die erneute Encodierung werden die Aktualisierungen bei den

Kontextmodellen neu berechnet. Nur für die Makroblöcke am Anfang eines Slice werden bis zum Wechsel der Eingangsströme keine Neucodierungen vorgenommen, da die Kontexte an Slice-Grenzen initialisiert werden und damit korrekt sind. Die

Neucodierung startet also nach dem ersten Wechsel der Eingangs-Videoströme.

Symbole innerhalb des Datenstroms, die mit VLC, beispielsweise für den Makroblock- Typ, etc., oder einer festen Wortlänge codiert sind, werden ohne Entropie-Decodierung und erneuter Entropie-Decodierung und erneuter Entropie-Encodierung direkt in den neuen Datenstrom übernommen, da für diese keine Abhängigkeit zu vorherigen

Makroblöcken, oder allgemein zu anderen codierten Symbolen, besteht. In H.264/AVC werden als VLC sogenannte exponentielle Golomb-Codes verwendet. Dies ist möglich, da das dem aktuellen Codewort mit fester oder variabler Länge vorausgehende

CABAC-Codewort terminiert ist.

Beim Mischen der Videoströme müssen neben der Anpassung der Kontexte der Entropie-Codierung auch die Referenzen bei der Intra- und Inter-Prädiktion nötigenfalls angepasst bzw. schon bei der Encodierung sichergestellt werden. Eine Möglichkeit, um eine korrekte Intra-Prädiktion zu erreichen, wird in der Voranmeldung des gleichen Anmelders mit dem Titel„Accurate Intra Prediction for Macroblock-level mixing of video streams" von den Erfindern Peter Amon und Norbert Oertel beschrieben. In H.264/AVC enthalten Bewegungsvektoren die Information der Richtung und den Betrag von Bewegungen, um die Bewegungen zwischen zwei Bildern im Videostrom zu erkennen und zu berechnen. Um eine falsche Inter-Prädiktion zu vermeiden, sollten die Bewegungsvektoren nicht außerhalb des Bildes zeigen, wie in der Voranmeldung des gleichen Anmelders mit dem Titel„Mixen von Videoströmen" von den Erfindern Peter Amon und Andreas Hutter beschrieben.

Besonders vorteilhaft kann das erfinderische Verfahren auch für Videoströme durchgeführt werden, bei denen Abhängigkeiten zwischen den einzelnen Codewörtern in der Entropie-Codierung bestehen, wie beispielsweise bei den H.264-Bitströmen. Darüber hinaus werden H.264-Bitströme erzeugt, die auch von H.264-Decodern verarbeitet werden können, die keine Decodierung von Slice Groups unterstützen.

Eine Ausführungsform der Erfindung ist beispielhaft in den Figuren dargestellt.

Fig. 1 zeigt das Mischen von vier Eingangs-Videoströmen mittels einer MCU

Fig. 2 zeigt das Mischen von zwei H.264-Videoströmen auf der Makroblock-Ebene Fig. 3 zeigt die in H.264/AVC definierte VLC-Tabelle für die (De-)Codierung von coeff token

Fig. 4 zeigt die vollständige Transcodierung von zwei H.264-Videoströmen

Fig. 5 zeigt das Mischen von zwei H.264- Videoströmen auf der Slice-Ebene

Fig. 6 zeigt das Mischen von zwei H.261 -Videoströmen auf der Makroblock-Ebene

In Fig. 1 ist das Mischen von vier Eingangs-Videoströmen mittels einer MCU dargestellt, die nach dem H.264/AVC Standard codiert sind. Es liegen vier verschiedene H.264 Eingangs- Videoströme ISl, IS2, IS3 und IS4 von vier verschiedenen

Teilnehmern einer Videokonferenz vor.

Die unterschiedlichen Videoinhalte A, B, C und D der vier verschiedenen Eingangs- Videoströmen ISl , IS2, IS3 und IS4 werden so zusammengemischt, dass im Ausgangs- Videostrom OS alle Videoinhalte A, B, C und D gleichzeitig enthalten sind.

Beispielhaft sind die Videoinhalte A, B, C und D horizontal und vertikal nebeneinander angeordnet, so dass die Gesprächspartner einer Videokonferenz gleichzeitig am

Bildschirm zu sehen sind. Entsprechend dem H.264/AVC Standard sind die Eingangs-Videoströme IS 1 , IS2, IS3 und IS4 mit einem Entropie-Kodierungsverfahren codiert. Deshalb werden die

Eingangs-Videoströme IS 1 , IS2, IS3 und IS4 durch den jeweiligen Entropie-Decoder EDI, ED2, ED3 und ED4 so decodiert, dass die Makroblöcke der Videoströme neu geordnet und in der Multipoint Control Unit MCU zusammengemischt werden können. Die gemischten Macroblöcke werden gemäß dem H.264/AVC Standard im Entropie- Encoder EE zu einem neuen dedizierten H.264 Ausgangs- Videostrom OS encodiert. Der Videostrom OS wird danach an alle Teilnehmer gesendet. Fig. 2 ist das Mischen von zwei Videoströmen auf der Makroblock-Ebene dargestellt, die nach dem H.264/AVC Standard codiert sind.

Zunächst müssen die von den Teilnehmern empfangenen Videoströme IS 1 und IS2 in den jeweiligen Entropie-Decodern EDI und ED decodiert werden. Dies geschieht durch das Auflösen der Abhängigkeiten zwischen den Codewörtern durch eine vollständige oder teilweise Entropie-Decodierung. Danach werden die Makroblöcke MB1 und MB2 der Eingangs-Videoströme IS1 und IS2 neu geordnet und zu einem neuen Makroblock MB' zusammengefügt, der alle Daten der einzelnen Makroblöcke MB1 und MB2 enthält. Abschließend wird ein neuer Ausgangs-Videostrom OS im Entropie-Encoder EE encodiert und an alle Teilnehmer gesendet, so dass sich alle Teilnehmer gegenseitig sehen können. Dies geschieht dadurch, dass die vollständige oder teilweise Entropie- Decodierung nach dem Mischen der Videoströme durch eine vollständige oder teilweise Entropie-Encodierung wieder rückgängig gemacht wird. In Fig. 3 ist die VLC-Tabelle für die (De-)Codierung von coeff token dargestellt, die im H.264/AVC Standard definiert ist.

Bei der CAVLC Methode gibt es vier Auswahlmöglichkeiten einer VLC-Tabelle zur Codierung von coeffjoken. Die Auswahl erfolgt über den Wert nC, der auf Basis der Anzahl der Koeffizienten in dem Block oberhalb nU und auf der linken Seite nL des aktuellen codierten Blockes berechnet wird. Wenn der obere Block und der linke Block vorhanden sind, d.h. die beiden Blöcke liegen im selben codierten Slice, errechnet sich der Parameter nC wie folgt: nC = (nU + nL)/2. Wenn nur der obere Block vorhanden ist, beträgt nC = nU, wenn nur der linke Block vorhanden ist, beträgt nC = nL, und wenn keiner von beiden Blöcken vorhanden ist, beträgt nC = 0.

Der Parameter nC selektiert die entsprechende VLC-Tabelle in Abhängigkeit der Anzahl codierter Koeffizienten in den benachbarten Blöcken, d.h. Kontext-adaptiv. In Fig. 4 ist die vollständige Transcodierung von Videoströmen dargestellt, die nach dem H.264/AVC Standard codiert sind.

Die beiden H.264 Eingangs-Videoströme ISl und IS2 von zwei Teilnehmern werden durch jeweils einen H.264 Video-Decoder VD1 und VD2 auf der Frame-Ebene decodiert. Nach der Decodierung der Videoströme ISl und IS2 in die jeweiligen Videoframes VF1 und VF2 erfolgt das Mischen und Zusammenfügen der beiden Videoframes VF1 und VF2 zu einem neuen Videoframe VF', der alle Daten der einzelnen Videoframes VF1 und VF2 enthält. Abschließend wird ein neuer H.264 Ausgangs-Videostrom OS im H.264 Video-Encoder VE encodiert und an alle

Teilnehmer gesendet.

Dieser Vorgang wird auch als Pixeldomain-Mixing oder vollständige Transcodierung bezeichnet, bei dem z.B. eine Formatkonvertierung, eine Mischung von Bilddaten und die Erzeugung eines Konferenzbildes durchgeführt wird.

In Fig. 5 ist das Mischen von zwei Videoströmen auf der Slice-Ebene dargestellt, die nach dem H.264/ AVC Standard codiert sind.

In den beiden H.264 Eingansvideoströme ISl und IS2 sind gemäß dem H.264 Standard ohne zusätzliche Hilfsmittel die Makroblöcke zu den Slices zugeordnet. Das Mischen der Videoströme ISl und IS2 erfolgt durch eine flexible Zuordnung der Makroblöcke zu Slice-Gruppen. So wird für die beiden Eingangs-Videoströme ISl und ISl jeweils eine Slice-Gruppe SGI und SG2 definiert, die durch den Video Mixer VM in einen H.264 Ausgangs-Videostrom OS mit den Daten der beiden Slice-Gruppen SGI und SG2 vereint werden.

In Fig. 6 ist das Mischen von zwei Videoströmen auf der Makroblock-Ebene dargestellt, die nach dem H.261 Standard codiert sind.

Die beiden H.261 Eingangs- Videoströme IS1 und IS2 von zwei Teilnehmern liegen jeweils als codierte Makroblöcke MBl und MB2 vor. Durch eine Umsortierung der Makroblöcke MBl und MB2 wird das Zusammenmischen von den beiden Eingangs-Videoströmen IS1 und IS2 auf der Makroblock-Ebene zu einem neuen codierten Makroblock MB' durchgeführt, der alle Daten der einzelnen Makroblöcke MBl und MB2 enthält, der als dedizierten H.261 Ausgangs-Videostrom OS an alle Teilnehmer gesendet wird.

Bezugszeichenliste

A - D Videoinhalte

EDI - ED4 Entropie-Decoder

EE Entropie-Encoder

ISl - IS4 Eingangs-Videoströme

MB 1 , MB2 Kodierte Makroblöcke

MB' Mischung von kodierten Makroblöcken

MCU Multipoint Control Unit

OS Ausgangs-Videoströme

SG1. SG2 Slice-Gruppe

VD1 , VD2 Video-Decoder

VE Video-Encoder

VF1, VF2 Videoframe

VF' Mischung von Videoframes

VM Video Mixer