-
Technisches Gebiet
-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren zum fehlerrobusten
Komprimieren eines Datenrahmens von Videodaten.
-
Hintergrund der Erfindung
-
Die
hierin offenbarte und beanspruchte Erfindung betrifft allgemein
ein Verfahren zur Kompression von Videosignaldaten. Genauer gesagt
betrifft die Erfindung ein Verfahren des obigen Typs, wobei die Videodaten
kollektiv durch Anordnungen von kodierten Makroblöcken und übersprungenen
(oder nicht kodierten) Makroblöcken
dargestellt wird. Noch genauer ausgedrückt betrifft die Erfindung
ein Verfahren des obigen Typs, wobei die Makroblöcke in Abschnitte gruppiert
sind, und eine Kodierung der Lauflänge bzw. Lauflängenkodierung
(Englisch: Run-Length Coding) eingesetzt wird, um die Anzahl der
darin übersprungenen
Makroblöcke
anzuzeigen.
-
Digitale
Videosignale in nicht komprimierter Form enthalten typischerweise
große
Datenmengen. Jedoch ist der tatsächlich
notwendige Informationsanteil aufgrund der hohen zeitlichen und
räumlichen Korrelationen
beträchtlich
kleiner. Folglich wird Videokompression oder Kodieren eingesetzt,
um die Datenmenge zu verringern, die für bestimmte Aufgaben, wie etwa
das Abspeichern der Videosignale oder zum Übertragen derselben von einem
Ort zum anderen, tatsächlich
erforderlich ist. In dem Kodiervorgang kann räumliche Redundanz benutzt werden, um
so genannte bewegungs-kompensierte Vorhersagen zu machen, wobei
Bereiche eines Videodatenrahmens aus ähnlichen Bereichen eines vorhergehenden
Datenrahmens vorhergesagt werden. D.h., es kann Teile eines Datenrahmens
geben, die überhaupt
keine oder kaum Änderungen
In Bezug auf entsprechende Teile des vorhergehenden Datenrahmens
enthalten. So können
derartige Bereiche übersprungen
oder nicht kodiert werden, um die Kompressionseffizienz zu maximieren.
Wenn andererseits eine gute Übereinstimmung
mit einem vorhergehenden Datenrahmen nicht gefunden werden kann,
können
Vorhersagen innerhalb eines Datenrahmens benutzt werden, um die
räumliche
Redundanz zu verringern. Bei einem erfolgreichen Vorhersageschema
wird der Vorhersagefehler klein sein und die Informati onsmenge,
die kodiert werden muss, stark verringert. Ferner bieten räumliche
Korrelationen weitere Effizienzgewinne durch Transformieren von
Pixeln in einen Frequenzbereich, beispielsweise unter Benutzung
der diskreten Kosinustransformation. Techniken aus dem Stand der
Technik der Videokompression sind beispielsweise im
US Patent Nr. 5,552,832 und in dem
am 11. Mai 1999 erteilten
US
Patent Nr. 5,903,313 beschrieben.
-
US Patent Nr. 5,552,832 offenbart
ein Verfahren zum Kodieren und Dekodieren von Videosignalen, um
zufriedenstellendes Ausführen
von Audio/Videokonferenzen zwischen PC Systemen, die über PTSN
Verbindungen kommunizieren, bereit zu stellen. Der Kodiervorgang
umfasst die Schritte des Unterteilens eines Videodatenrahmens in
eine Vielzahl von Bereichen und ein jeweiliger Bereich wird in eine
aus drei möglichen
Klassen von Bereichen klassifiziert. Das Verfahren erinnert an das
Kodieren und Dekodieren nach dem MPEG-Standard, jedoch ohne die
Bewegungskompensation und die Bewegungsabschätzung zu umfassen.
-
Ferner
beschreibt das
US Patent
Nr. 6,285,458 B1 , wie die Farbe von Blöcken unter Verwendung von Lauflängenkodierung
für Blocks
mit identischer Farbe kodiert werden kann. Dies entspricht jedoch
dem Kodieren von Blöcken
und ihren Kodiermodi.
-
Ungeachtet
der Vorteile der Videodatenkompression kann der kodierte Bitstrom,
d.h. komprimierte Daten, die von einem Ort zu einem anderen übertragen
werden, aufgrund fehlerbehafteter Übertragungskanäle verdorben
werden. Wenn dies passiert, dann kann es große potentielle Beeinträchtigungen, wie
etwa sich ausbreitende Fehler und eine ernsthafte Verringerung der
Videoqualität,
bewirken, wenn man sich zu starke auf Vorhersagen verlässt. In
der Vergangenheit umfassten gebräuchliche
Techniken zum Verringern derartiger Beeinträchtigungen das Verhindern von
zeitlichen Vorhersagen zu bestimmten Zeiten und das Begrenzen von
räumlichen
Vorhersagen innerhalb von begrenzten Segmenten eines Videodatenrahmens
oder Bilds. Die Gesamtqualität
des dekodierten Videosignals (in der Folge von Kompression und Übertragung)
ist folglich ein Abwägen
zwischen hoher Kompression auf der einen Seite und Fehlerausfallsicherheit
bzw. -belastbarkeit auf der anderen. Es gibt jedoch potentielle
Konflikte zwischen der Verwendung von flexibler und fehlerrobusten
Segmentierung und einer effektiven Signalisierung von übersprungenen
oder nicht kodierten Bereichen eines Videodatenrahmens. Verfahren
aus dem Stand der Technik behandeln diese Konflikte entweder durch
Beschränken
der Segmentierung auf starre Flächen,
ohne einen Verlust an Flexibilität
und Effizienz, oder durch Erzwingen des Kodierens von Bereichen
innerhalb eines Segments, die im Prinzip nicht kodiert werden müssten.
-
Hierin
werden die Ausdrücke "Bild" und "Datenrahmen" auswechselbar benutzt,
um einen Datenrahmen von Bilddaten in einer Videosequenz zu bezeichnen.
-
Um
die räumliche
Fehlerausbreitung zu begrenzen, sind verschiedene Verfahren oder
Techniken des Segmentierens eines Bilds verfügbar. Zwei Standardverfahren
sind durch die ITU-T Empfehlungen (Englisch: ITU-T Recommendations)
H.261 und H.262 zur Verfügung
gestellt. In der Empfehlung H.261 wird ein jeweiliger Datenrahmen
einer Videosequenz in eine Anzahl von Segmenten unterteilt, die Blockgruppen
(GOBs, Englisch: Groups of Blocks) genannt werden. Eine jeweilige
GOB enthält
33 Makroblöcke
angeordnet in 3 Zeilen auf 11 Spalten, und ein jeweiliger Makroblock überdeckt
einen Bereich von 16×16
Pixeln. Folglich werden die zwei von H.261 unterstützten Bildformate,
das Common Intermediate Format (CIF, übersetzt: Einfaches Zwischenformat),
das 352×288
Pixel enthält,
und das Quarter-CIF (QCIF, übersetzt:
Viertel-CIF), das 176×144 Pixel
enthält,
ausgebildet, indem 12 bzw. 3 sich nicht überlappende GOBs kombiniert
werden, um das gesamte Bild zu überdecken.
-
Innerhalb
eines GOB werden Makroblöcke Zeile
für Zeile
und von links nach rechts positioniert, mit dem ersten Block in
der oberen linken Ecke und dem 33. in der unteren rechten Ecke.
Jedoch brauchen nur diejenigen Makroblöcke, die sich von dem vorhergehenden,
kodierten Bild (wenn es ein vorhergehendes kodiertes Bild gab) unterscheiden,
kodiert zu werden. Folglich wird eine Makroblockadresse vor einem
jeweiligen kodierten Makroblock übertragen, um
dessen Position innerhalb des GOB zu signalisieren. Für den ersten
kodierten Makroblock in einem GOB ist die Adresse die Makroblockposition
in dem GOB. Für
nachfolgende Makroblöcke
ist die Adresse das Inkrement der Position aus den vorher kodierten Makroblöcken. Die
Makroblockadressen werden durch die in 1 gezeigten
Kodewörter
mit variabler Länge
angegeben. Makroblöcke,
die nicht adressiert sind, sollten übersprungen und aus dem vorgehenden
Bild kopiert werden. D.h. die Videodaten für einen übersprungenen Makroblock sind
die Daten aus dem entsprechenden Makroblock des vorhergehenden Bildes.
Es sollte angemerkt werden, dass obwohl es keine Beschränkung darüber gibt,
welche oder wie viele Makroblöcke
kodiert werden müssen, GOB
immer auf 33 Makroblöcke
verweist, ob kodiert oder nicht. Die Positionen des Beginns und
Endes eines jeweiligen GOB sind durch den H.261 Standard definiert
und werden in dem Bitstrom durch eine GOB Nummer in einem jeweiligen
GOB Nachrichtenkopf signalisiert.
-
Eine
flexiblere Bildsegmentierungstechnik kann in den MPEG-1 und MPEG-2
Videostandards, ISO/IEC 11172-2 und ISO/IEC 13818-2 gefunden werden.
Der Letztere wird auch zusammen von der ITU-T als Empfehlung H.262
veröffentlicht.
In Übereinstimmung
damit wird ein Bild in Abschnitte segmentiert, die sich von den
obigen in der Empfehlung H.261 verwendeten GOBs unterscheiden. Ein
jeweiliger Abschnitt umfasst eine beliebige Anzahl von Makroblöcken, die
nacheinander in einer Sequenz oder Serie angeordnet sind, wobei
die Reihenfolge der Makroblöcke
auf ein gesamtes, in der linken oberen Ecke beginnendes Bild referenziert
ist. Ein jeweiliger Abschnitt muss mindestens einen Makroblock lang sein
und darf nicht mit anderen Abschnitten überlappen. MPEG-1 erlaubt Abschnitte
von beliebiger Länge,
erlaubt jedoch keine Zwischenräume
zwischen Abschnitten. Auf der anderen Seite umfasst MPEG-2 Abschnitte,
um innerhalb einer Serie von Makroblöcken hineinzupassen, erlaubt
jedoch in seiner allgemeinen Abschnittsstruktur Zwischenräume. Das
Auftreten eines Zwischenraums zwischen Abschnitten informiert den
Dekodierer implizit, dass die entsprechenden Makroblöcke übersprungen
sind, und dass die Daten für
diese übersprungenen
Makroblöcke aus
den Pixelwerten der entsprechenden Makroblöcke der vorhergehenden Bilder
kopiert werden sollten.
-
Eine
wichtige Beschränkung
für Abschnitte nach
sowohl MPEG-1 als auch MPEG-2 ist, dass der erste und der letzte
in einem Abschnitt enthaltene Makroblock kodiert sein muss, d.h.
ein Abschnitt darf nicht mit einem übersprungenen Makroblock beginnen
oder enden. Aufgrund dieser Anforderung ist es immer klar, wo der
vorhergehende Abschnitt endet, wenn ein neuer Abschnitt beginnt,
d.h. der vorhergehende Abschnitt endete unmittelbar nachdem der letzte
kodierte Makroblock ü bertragen
wurde. Außer für den ersten
und letzten Makroblock kann ein Abschnitt übersprungene Makroblöcke enthalten,
die nicht übertragen
werden müssen.
Folglich wird die Position eines jeweiligen kodierten Makroblocks
innerhalb eines Abschnitts in dem Bitstrom signalisiert. Dies wird
in derselben Art und Weise getan, wie für die Anordnung der GOB nach
der Empfehlung H.261. Die relative Position eines jeweiligen Makroblocks wird
als das Makroblock-Adresseninkrement bezeichnet und wird durch die
Kodewörter
der 1 angegeben. Um mehr als 32 aufeinander folgende, übersprungene
Makroblöcke
in einem Abschnitt zu erlauben, wird ein Makroblock-Ausgleichskodewort (Englisch:
Macroblock Escape Codeword) ebenso umfasst. Ein oder mehrere Ausgleichskodewörter können vor
dem tatsächlichen
Makroblockadressinkrement eingefügt
werden, von den ein jeweiliges eine zusätzliche Erhöhung von 33 Makroblöcken anzeigt.
-
Die
Freiheit, eine variable Anzahl von Makroblöcken in einem Segment zu benutzen,
macht es möglich,
das Segment innerhalb einer bestimmten Bitgröße zu halten. Dies ist besonders
nützlich,
wenn Segmente zur Übertragung
in einem IP (Internet Protocol, übersetzt:
Internetprotokoll) Netzwerk in Pakete unterteilt werden, und ist
insbesondere für
drahtlose Anwendungen wichtig, wo die Paketgrößen klein sind. Weiterhin ist
es durch Anpassen der Größe der Segmente
möglich,
sich an vielfältige Übertragungsumgebungen
anzupassen. In einem verlustreichen Kanal beispielsweise kann die
Kompressionseffizienz für
eine bessere Videoqualität
unter Benutzung von kleineren Segmenten eingetauscht werden. Die Bitfehlerrate
kann folglich benutzt werden, um eine optimale Segmentgröße zu finden.
Für die
oben beschriebene Empfehlung H.261 sind Segmentgrenzen für die GOBs
vordefiniert. Folglich ist es schwierig, die Größe eines GOB zu steuern, was
diese Segmente sehr unflexibel macht. Aus diesem Grunde sind Abschnitte
in MPEG-1 und MPEG-2 vielseitiger. Weil jedoch Abschnittsgrenzen
dadurch signalisiert werden, dass sichergestellt ist, dass der letzte
Makroblock eines Abschnitts immer kodiert ist, kann es schwierig
sein, innerhalb dieser Standards eine effiziente Kompression und
optimale Abschnittsgröße zu erreichen.
Der Grund ist, dass man gezwungen sein könnte, einen Makroblock zu kodieren,
der andernfalls hätte übersprungen
werden können
oder alternativ von der gewünschten
Abschnittsgröße abzuweichen.
Diese Nachteile werden weiter mit Verweis auf 2 herausgestellt.
-
2 zeigt
eine Zeile 10 von Makroblöcken in einem QCIF Bild, das
seinerseits nicht gezeigt ist. Die Makroblöcke können an einem ersten Ort kodiert werden,
zu einem Dekodierer an einem zweiten Ort übertragen werden, und dabei
dekodiert werden, um die ursprünglichen
Videodaten wiederherzustellen. Die ursprünglichen Daten werden typischerweise
mit einer Qualitätsverschlechterung,
die davon abhängt wiederhergestellt,
wie stark die Kompression ausgeführt
wird. 2 zeigt ferner den Endbereich eines Abschnitts 12,
der folgendes enthält:
mindestens zwei kodierte Makroblöcke 12a und 12b,
den Beginnbereich eines Abschnitts 14, der mindestens einen kodierten
Makroblock 14b enthält,
und übersprungene
Makroblöcke 16a-f,
die zwischen den kodierten Makroblöcken 12a-c und 14a-b
angeordnet sind. Die übersprungenen
Makroblöcke
zwischen den kodierten Makroblöcken 12c und 14a können beim
Segmentieren der in 2 gezeigten Makroblöcke Probleme
verursachen, wenn die Segmentierung nach dem MPEG-2 Standard ausgeführt werden
muss, und wenn es gewünscht
ist, zwischen B und C eine Abschnittsgrenze anzuordnen, um Abschnitte 12 und 14 auszubilden,
so dass ein jeweiliger Abschnitt in einem separaten IP Datenpaket
von spezifizierter maximaler Größe angeordnet
werden könnte.
Die Position der Abschnittsgrenze ist sogar noch wichtiger, wenn
die Abschnitte 12 und 14 ihre IP Pakete bis auf maximale
Kapazität
genau ausfüllen
sollen. Wenn der MPEG-2 Standard auf die in 2 gezeigte
Anordnung nach dem Stand der Technik angewendet wird, sind drei
Alternativen möglich,
die jeweils damit einhergehende Nachteile aufweisen.
-
In
der ersten Alternative würde
der Abschnitt 12 bei B in 2 enden,
und der Abschnitt 14 würde bei
C starten. Die übersprungenen
Makroblöcke 16a-f
zwischen B und C würden
von dem Dekodierer implizit als übersprungen
betrachtet werden, weil keine Daten für die übersprungenen Blöcke übertragen werden
würden.
Wenn jedoch die komprimierten Daten durch einen verlustbehafteten
Kanal übertragen werden,
wie etwa ein drahtloser Kommunikationskanal, dann könnte das
IP Paket, das bei C beginnt und folglich den Abschnitt 14 enthält, verloren
gehen und so bei dem Dekodierer nicht empfangen werden. In diesem
Fall wäre
die gesamte Information hinsichtlich der übersprungenen Makroblö cke 16a-f
verloren. Insbesondere wäre
der Dekodierer nicht in der Lage, die übersprungenen Makroblöcke von
verlorenen Makroblöcken
zu unterscheiden.
-
In
der zweiten Alternative würde
die Abschnittsbegrenzung entweder bei B oder C angeordnet sein,
ohne eine Lücke
zwischen den Abschnitten 12 und 14. Wenn folglich
die Begrenzung in 2 bei B angeordnet würde, dann
wäre der
letzte Makroblock des Abschnitts 12 der kodierte Makroblock 12c, der
erste Makroblock des Abschnitts 14 würde jedoch der übersprungene
Makroblock 16a. Wenn andererseits die Grenze bei C angeordnet
würde,
dann würde
der erste Makroblock des Abschnitts 14 der Makroblock 14a,
der letzte Makroblock 12 würde jedoch der übersprungene
Makroblock 16f. Wie oben erwähnt, wäre keine Anordnung erlaubt,
weil der MPEG-2 Standard keine übersprungenen
Makroblöcke
am Anfang oder Ende eines Abschnitts erlaubt. Daher wäre es notwendig,
einen der übersprungenen Makroblöcke zusätzlich zu
kodieren, entweder den übersprungenen
Makroblock 16a oder 16f. Darüber hinaus müsste der übersprungene
Makroblock mit einem Bewegungsvektor von Null (absolut) und ohne Koeffizienten
kodiert werden. Auf diese Weise könnte die übersprungene Makroblockinformation
zwischen B und C gesendet werden. Jedoch könnte die Anzahl der zusätzlichen
Bits, die infolge des Kodierens des übersprungenen Makroblocks übertragen
werden müssten,
ziemlich bedeutsam sein, insbesondere wenn der vorhergesagte Bewegungsvektor
groß ist.
-
In
der dritten Alternative wäre
die Abschnittsgrenze bei der Position A oder D in 2 angeordnet.
Dies vermeidet die oben besprochenen, entsprechenden Nachteile in
Zusammenhang mit der ersten und zweiten Alternative. Jedoch ist
es, wie oben genannt, gewünscht,
die Daten von entsprechenden Abschnitten in IP Datenpaketen zu senden,
mit einem Abschnitt pro Paket, und in entsprechenden Datenpaketen
mit einer festen maximalen Bitgröße. Offensichtlich
sollte jedes Datenpaket mit so vielen Bits wie möglich gefüllt werden, um die Netzwerkkapazität voll auszunutzen.
Folglich könnte
das Platzieren der Grenze bei A suboptimal sein, wenn dabei der Abschnitt 12 zu
klein würde,
um die gesamte Bitkapazität
eines Datenpakets zu benutzen. Das Platzieren der Grenze bei D wäre nicht
möglich,
weil der Abschnitt 12 so groß werden würde, dass er die maximale Paketgröße übersteigt.
-
Zusammenfassung der Erfindung
-
Die
Erfindung, wie sie im unabhängigen
Anspruch 1 dargelegt ist, betrifft ein Verfahren von Videokompression,
wobei ein Datenrahmen von Videodaten in Abschnitte segmentiert wird.
Den Abschnitten wird erlaubt, eine beliebige Anzahl von aufeinanderfolgenden
Makroblöcken
zu enthalten, die an beliebigen Positionen innerhalb eines Bilds
beginnen und enden und dabei eine volle Freiheit geben, dass Abschnitte
bei jeder beliebigen Position beginnen und enden. Weil Abschnitte
variable Anzahlen von Makroblöcken
enthalten können,
können
Ausführungsformen
der Erfindung leicht dazu ausgebildet werden, einen Kodierstandard
für verschiedene
Kodierumgebungen bereitzustellen.
-
Eine
Ausführungsform
der Erfindung, die sich auf ein Verfahren zum Komprimieren eines
Datenrahmens von Videobilddaten richtet, umfasst die Schritte des
Unterteilens des Datenrahmens in eine Anzahl von Blöcken, die
kodierte Blöcke
und übersprungene
Blöcke
umfassen, und Gruppieren der Blöcke
aufeinanderfolgend in eine Sequenz von Abschnitten. Das Verfahren
umfasst ferner den Schritt des Einfügens eines Lauflängenkodeworts
nach dem letzten kodierten Block in einem Abschnitt, um die Anzahl
der zwischen dem letzten kodierten Block und dem Ende des Abschnitts
angeordneten, übersprungenen
Blöcke
anzuzeigen. Folglich werden nach einem Aspekt der Erfindung nicht
kodierte Bereiche eines Datenrahmens von Videodaten unter Benutzung von
Lauflängenkodierung
effektiv signalisiert. Aufeinanderfolgende, übersprungene Blöcke werden
zusammen gruppiert und als ein einziges Symbol kodiert, das hierin
als ein Kodewort mit Lauflänge
bzw. Lauflängenkodewort
bezeichnet wird, um die Anzahl der übersprungenen Blöcke anzuzeigen.
Durch Signalisieren aller nicht kodierten Bereiche innerhalb eines
Segments eines Datenrahmens ist es möglich, effizient einen Vorteil
aus einer flexiblen Bildsegmentation zu ziehen, und auch, um verdorbene
Bildflächen
effektiv zu kaschieren.
-
Kurze Beschreibung der Zeichnungen
-
1 ist
eine Tabelle, die Kodewörter
zum Anzeigen der Adresse eines Makroblocks in Bezug auf einen vorhergehenden
Makroblock zeigt.
-
2 ist
ein schematisches Schaubild, das eine Reihe von Makroblöcken in
einem QCIF Bild zum Veranschaulichen der Nachteile des Stands der Technik
zeigt.
-
3 ist
ein schematisches Schaubild, das eine Zeile von nach einer Ausführungsform
der Erfindung zu komprimierenden oder kodierenden Makroblöcken zeigt.
-
4 ist
ein schematisches Schaubild, das die Zeile des Makroblock der 3 nach
der Kompression zeigt.
-
5 ist
eine Tabelle, die die Lauflängenkodewörter zur
Benutzung in einer Ausführungsform der
Erfindung zeigt, und die insbesondere die ersten zehn variablen
Kodewörter
einer unendlichen Tabelle zeigt.
-
6 ist
ein schematisches Schaubild, das eine Zeile von nach einer Modifikation
der Erfindung kodierten Makroblöcken
zeigt.
-
7 ist
ein schematisches Schaubild, das ein vereinfachtes System zum Komprimieren, Übertragen
und Dekodieren von Videodaten nach einer Ausführungsform der Erfindung zeigt.
-
Ausführliche
Beschreibung einer beispielhaften Ausführungsform Mit Verweis auf 3 wird
eine Zeile von nach einer Ausführungsform
der Erfindung zu komprimierenden Makroblöcken 18 gezeigt, wobei
die Erfindung Probleme des oben im Zusammenhang mit dem Stand der
Technik beschriebenen Typs eliminiert oder wesentlich verringert.
Die die Makroblöcke 18a-18k umfassende
Zeile 18 ist vergleichbar zu der Reihe 10 der 2 und
gehört
zu bewegungskompensierter, digitaler Videokompression, wobei entsprechende
Datenrahmen in Makroblöcke
unterteilt sind, wobei ein jeweiliger Makroblock eine Luma-Auflösung von
16×16
Pixeln aufweist. Makroblöcke 18a-18c und 18j-18k sind
kodierte Makroblöcke, die
nach herkömmlicher
Praxis kodiert sind, so dass damit Kompensationsinformation verknüpft ist,
und Makroblöcke 18b-18i sind übersprungene
Makroblöcke
wie oben beschrieben.
-
Nach
der Erfindung sollen die Blöcke 18a-18k in
Abschnitte segmentiert werden, wobei es den Abschnitten erlaubt
ist, eine beliebige Anzahl von aufeinanderfolgenden Makroblöcken zu
enthalten und die Abschnitte bei beliebigen Positionen innerhalb
des zugeordneten Datenrahmens beginnen und enden können. Folglich
ist eine völlige
Freiheit darüber
gewährleistet,
dass Abschnitte bei einer beliebigen Position beginnen und enden.
Hinsichtlich dieser Freiheit sind die in 3 gezeigten
Makroblöcke
in einen ersten Abschnitt 20 und eine zweiten Abschnitt 22 segmentiert,
indem bei C eine Abschnittsgrenze angeordnet wird. Es sei angenommen,
dass dies die Abschnitte 20 und 22 bereitstellt,
die beide in ihrer Größe so angepasst
sind, dass sie entsprechende IP Datenpakete auf einer optimalen
Basis ausfüllen, d.h.
ein jeweiliges Datenpaket wird bis zu seiner maximalen Kapazität gefüllt. Folglich
endet der Abschnitt 20 mit Makroblöcken 18a-18i und
Abschnitt 22 beginnt mit den Makroblöcken 18j und 18k.
Genauer gesagt endet der Abschnitt 20 mit sechs übersprungenen
Makroblöcken 18d-18i.
-
Mit
Verweis auf 4 werden Abschnitte 20 und 22 und
ihre entsprechenden Makroblöcke
nach der Kompression nach der Erfindung gezeigt. Insbesondere zeigt 4 ein
im Abschnitt 20 enthaltenes Lauflängen-Kodewort 24,
unmittelbar hinter dessen letztem kodierten Makroblock, d.h. hinter
dem Makroblock 18c. Das Kodewort 24 definiert
das Ende des Abschnitts 20 und weist einen Index auf, der
die Anzahl der dem letzten kodierten Makroblock im Abschnitt 20 folgenden,
nicht kodierten oder übersprungenen
Makroblöcke
vor dem nächsten
Abschnitt anzeigt. Das Kodewort 24, das nicht mehr als
einige Bits zu sein braucht, zeigt folglich dem Dekodierer an, dass
sechs übersprungene
Makroblöcke 18d-18i dem
kodierten Makroblock 18c innerhalb des Abschnitts 20 folgen.
Dementsprechend wird den Dekodierer Information hinsichtlich der übersprungenen Makroblöcke erreichen,
selbst wenn der nächste
Abschnitt, Abschnitt 22, bei der Übertragung verloren geht. Diese
Robustheit gegen Fehler wird bei geringen Overhead-Kosten geliefert,
weil das Kodewort 24 nicht mehr als einige Bits lang zu
sein braucht. So wird deutlich, dass eine Ausführungsform der Erfindung ermöglicht,
die Größen der
entsprechenden Abschnitte leicht anzupassen, um mit den Größen der
IP Datenpakete überein
zu stimmen. Dies ist insbesondere in drahtlosen Anwendungen nützlich,
wo die Datenpakete relativ klein sind. Gleichzeitig ist die Kompression
der übersprungenen
Makroblöcke
am Ende eines Abschnitts sehr für
Fehler belastbar.
-
Obwohl
dies nicht gezeigt ist, umfasst ein jeweiliger komprimierter Abschnitt
oder Gruppe einen Nachrichtenkopf oder einen Startkode.
-
In
einer Ausführungsform
der Erfindung könnte
das Lauflängenkodewort 24 ein
einem der in 1 gezeigten Makroblockadressen
zugehörigen Kodewort
umfassen. In dieser Ausführungsform
werden kodierte Makroblöcke
unter Benutzung von Lauflängenkodierung
der vorhergehenden, übersprungenen
Makroblöcke
adressiert, ähnlich
wie das Adressieren von GOBs in H.261, wie oben beschrieben. Jedoch
würde das
Kodewort 24, anstatt dass ein kodierter Makroblock adressiert
wird, die Anzahl der übersprungenen
Makroblöcke
zwischen dem letzten kodierten Makroblock und dem Ende des Abschnitts signalisieren.
Um das Auftreten von null übersprungenen
Blöcken
zu berücksichtigen,
wäre die
aus 1 ausgewählte
Anzahl gleich der Anzahl der übersprungenen
Blöcke
plus Eins. Um die sechs übersprungenen
Blöcke 18d-18i anzuzeigen,
würde folglich
die Anzahl 7 aus der 1 ausgewählt, und das Kodewort 24 dafür wäre 00010.
Weil die 1 nur 33 Adressen offenbart,
könnte
ein Ausgleichskodewort benutzt werden, um ein zusätzliches
Inkrement von 33 übersprungenen
Makroblöcken
anzuzeigen, in Analogie zu dem oben beschriebenen MPEG-1 und MPEG-2
Standard.
-
In
einer zweiten Ausführungsform
der Erfindung könnte
das Lauflängenkodewort 24 aus
einem Kode mit unendlich variabler Länge erzeugt werden. Ein Kode
von diesem Typ würde
die oben beschriebene Notwendigkeit für ein Ausgleichskodewort eliminieren.
Ein sehr nützlicher
Kode mit unendlich variabler Länge
ist in 5 veranschaulicht. In einer abkürzenden
Schreibweise werden Kodewörter
des unendlichen Kodes gemäss
dem folgenden Muster erzeugt: 1; 0 x 1; 0 x 0 x 1; 0 x 0 x 0 x 1;
0 x 0 x 0 x 0 x 1 ..., wobei ein jeweiliges x entweder 0 oder 1
sein kann.
-
5 zeigt
ferner ein als SKIPRUN bezeichnetes Symbol, das ein einzelnes Symbol
ist, das die Lauflängenkodierung
von aufeinanderfolgenden, übersprungenen
Blöcken
darstellt. Folglich wäre
für die
sechs in 3 gezeigten, übersprungenen
Makroblöcke 18d-18i SKIPRUN
gleich 6 und das Lauflängenkodewort 24 aus
der 5 wäre
01011. In dieser Ausführungsform
wird SKIPRUN immer am Beginn und am Ende einer Abschnittsgruppe übertragen
und wird auch zwischen zwei benachbarten kodierten Makroblöcken eingefügt, um die
Anzahl der dazwischen übersprungenen
Makroblöcke
anzuzeigen.
-
In
einer Modifikation der Erfindung wird das Lauflängenkodewort 24 nicht
verwendet, um null übersprungene
Makroblöcke
zu signalisieren in dem Fall, dass es keine übersprungenen Makroblöcke gibt,
die dem letzten kodierten Makroblock vor dem Ende des Abschnitts
folgen. In dieser Modifikation würde
der Dekodierer einfach erkennen, dass die Abwesenheit des Lauflängenkodeworts
zwischen Abschnitten anzeigt, dass null übersprungene Makroblöcke dazwischen
sind. Folglich könnten
die in den 1 und 5 gezeigten
Kodieranordnungen verschoben sein. So würden die sechs übersprungenen Makroblöcke 18d-18i in
der Anordnung der 1 durch das Kodewort 00011 angezeigt.
In der Anordnung der 5 würden die sechs übersprungenen Makroblöcke durch
das Kodewort 01001 dargestellt.
-
Mit
Verweis auf 6 wird eine andere Modifikation
gezeigt, in der sich Abschnitte 20 und 22 überlappen.
Dies wird erzielt, in dem der erste Abschnitt 20 bei der
Grenze C endet und der zweite Abschnitt 22 bei der Grenze
B beginnt, wie jeweils in 3 gezeigt.
Infolgedessen endet der Abschnitt 20 mit dem Lauflängenkodewort 24 wie
oben beschrieben, um die sechs übersprungenen
Makroblöcke 18d-18i anzuzeigen.
Zusätzlich
ist der Abschnitt 22 mit einem Kodewort 26 versehen,
um die sechs vorhergehenden Makroblöcke 18d-18i anzuzeigen. Folglich
wird Information hinsichtlich der übersprungenen Makroblöcke 18d-18i so
lange empfangen, wie einer der Abschnitte 20 oder 22 empfangen
wird, selbst wenn der andere verloren geht. Obwohl dies nicht gezeigt
ist, könnte
es den Abschnitten 20 und 22 erlaubt sein, mit
anderen Typen von Makroblöcken
außer übersprungenen
Makroblöcken
zu überlappen.
-
In
einer weiteren Modifikation könnte
eine Syntax definiert werden, die es zulässt, dass Abschnitte nur nicht-kodierte
oder übersprungene
Makroblöcke
enthalten. Ein derartiger Abschnitt könnte von einem einzigen Lauflängenkodewort
angezeigt werden, das den gesamten Abschnitt überdeckt und keine Makroblockdaten
enthält.
-
Mit
Verweis auf 7 wird eine Quelle 28 von
Videoinformation, wie etwa eine Videokamera, gezeigt. Die Videoinformation
wird einem Videokodierer 30 zugeführt, der aufeinanderfolgende
Datenrahmen von Daten gemäss
einer Ausführungsform der
Erfindung, wie hierin beschrieben, komprimiert. Ein Bitstrom mit
den komprimierten Daten wird über einen
Kommunikationskanal, der ein drahtloser Kommunikationskanal sein
kann, von einer Übertragungsvorrichtung 32 zu
einer Empfangsvorrichtung 34 übertragen. Die empfangenen
Daten werden einem Dekodierer 36 zugeführt, um die Videoinformation
zurückzugewinnen.
In seinem Betrieb kopiert der Dekodierer Pixel, die einem übersprungenen
Makroblock entsprechen, aus einem vorher empfangenen Bild.
-
Offensichtlich
sind viele andere Modifikationen und Variationen der vorliegenden
Erfindung im Licht der obigen Lehren möglich. Es sollte daher verstanden
werden, dass innerhalb des Umfangs des offenbarten Konzepts die
Erfindung auch anders ausgeführt
werden kann als wie das spezifisch beschrieben worden ist.