-
HINTERGRUND
DER ERFINDUNG Technisches Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft
die Korrektur und Verbergung von Fehlern in einem Video-Bitstrom.
-
Hintergrund
und Aufgaben der vorliegenden Erfindung
-
Aufgrund des Aufkommens von Mobilfunk-Netzwerken,
IP-Netzwerken und
anderen solchen Kommunikationsnetzwerken hat sich ein Wunsch nach
der Übertragung
von Videosequenzen über
diese Netzwerke entwickelt. Unglücklicherweise
besetzt die Übertragung
von nicht komprimiertem Video ein untragbar großes Ausmaß an Bandbreite für die meisten
Netzwerke, um zum Handeln fähig
zu sein. Beispielsweise erfordert ein Video für hochauflösendes Fernsehen (HDTV = High
Definition Television) in unkomprimierter digitaler Form etwa eine
Bandbreite von 1 Gbps.
-
Als Ergebnis sind Schemen und Standards
für die
Kompression von Videosequenzen entwickelt worden, so dass sie über Bitströme übertragen
werden können,
die beschränkte
Bandbreiten haben.
-
Videocodierschemen sind von verschiedenen
Gruppen, einschließlich
des Internationalen Telekommunikationsvereinigungs-Telekommunikationsstandardisierungssektors
(ITU-T) erdacht worden, der die H-Serie von Standards erzeugt, und
der Bewegtbild-Expertengruppe (MPEG = Moving Pictures Experts Group),
die die MPEG-Serie von Standards erzeugt.
-
Beispielsweise wurde H.261 für Videokonferenz-
und Videotelefon-Anwendungen über
ISDN-Telefonleitungen etwa in den Jahren 1988–1990 entwickelt, die die Übertragung
von Video über
ISDN-Leitungen mit einer Datenrate von 63–384 kbps mit relativ niedriger
Videoqualität
zulassen. MPEG-1 wurde 1992 mit dem Ziel eines Erzeugens von Videos
mit VHS-Qualität
zur Speicherung auf einer CD-ROM genehmigt, einschließlich von
Audios für
ein Abspielen mit einer Rate von etwa 1,5 Mbps. MPEG-2, welches
1994 genehmigt wurde, wurde primär
für Anwendungen
hoher Qualität
im Bereich von 4 Mbps bis 80 Mbps mit einer Qualität entwickelt,
die von einer Verbraucherbandqualität zu einer Filmproduktionsqualität reicht.
MPEG-2 unterstützt
ein Codieren bei einer HDTV-Qualität bei etwa
60 Mbps und bildet die Basis für
viele Kabel-TV- und Satellitenvideo-Übertragungen, sowie für eine Speicherung
auf vielseitigen, digitalen Platten (DVD = Digital Versatile Disc).
H.263 und MPEG-4 sind vor kurzem mit dem Ziel eines Bereitstellens
von Video mit guter Qualität
bei sehr niedrigen Bitraten entwickelt worden, obwohl es genauso
gut auf höhere
Bitraten angewendet werden kann.
-
Ein Nachteil bei der Verwendung von
Videokompression besteht darin, dass Fehler im Bitstrom in einer stark
verschlechterten Bildqualität
und möglicherweise
einer nicht decodierbaren Videosequenz resultieren können. Dieses
Problem wird sogar noch größer, wenn
komprimiertes Video über
fehleranfällige
Netzwerke und Übertragungspfade übertragen
wird.
-
Aufgrund der Entwicklung von solchen
Vorrichtungen, wie beispielsweise Funktelefonen mit Videoanzeigefähigkeiten
und Vorrichtungen für
ein Netzwerk-Videorundsenden, ist die Übertragung von Video über fehleranfällige Netzwerke,
z.B. Mobilfunk-Netzwerke und Internetprotokoll-(IP-)Netzwerke mit
Paketverlust, erwünscht.
Jedoch sind viele Endanwender-Endgeräte nicht
für solche
Netzwerke entworfen oder gut geeignet. Somit gibt es eine Notwendigkeit
für Vorrichtungen,
die decodierbare Bitströme
aus fehlerbehafteten, manchmal nicht decodierbaren, Bitströmen zur
Verwendung durch solche Endanwender-Endgeräte erzeugen können.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die vorliegende Erfindung ist auf
ein Verfahren, ein System und eine Vorrichtung zum Korrigieren eines
zerstörten
Video-Bitstroms
unter Verwendung eines Video-Bitstrom-Reinigers gerichtet. Der Video-Bitstrom-Reiniger
der vorliegenden Erfindung empfängt
einen zerstörten
Video-Bitstrom und erzeugt einen syntaktisch richtigen Video-Bitstrom
als Ausgabe durch eine Korrektur und ein Verbergen der Fehler im
Video-Bitstrom. Bei einem Ausführungsbeispiel
der vorliegenden Erfindung kann der Video-Bitstrom-Reiniger in einem Netzwerk
platziert sein, um einen zerstörten
Video-Bitstrom von
einem fehleranfälligen
Netzwerk zu empfangen und um einen syntaktisch richtigen Video-Bitstroms
zu einem fehlerfreien Netzwerk bereitzustellen. Bei einem anderen
Ausführungsbeispiel
der vorliegenden Erfindung kann der Video-Bitstrom-Reiniger einen
zerstörten
Video-Bitstrom von einem fehleranfälligen Netzwerk empfangen und
einen syntaktischen richtigen Video-Bitstrom zu einem Videodecodierer
bereitstellen. Bei einem anderen Ausführungsbeispiel kann die vorliegende
Erfindung als integrierter Video-Bitstrom-Reiniger und Videodecodierer
zum Empfangen eines zerstörten
Video-Bitstroms von einem fehleranfälligen Netzwerk und zum Bereitstellen
eines decodierten Bildes verwendet werden.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Ein vollständigeres Verstehen des Systems,
des Verfahrens und der Vorrichtung der vorliegenden Erfindung kann
unter Bezugnahme auf die folgende detaillierte Beschreibung erhalten
werden, wenn sie in Zusammenhang mit den beigefügten Zeichnungen genommen wird,
wobei:
-
1 ein
beispielhaftes Ausführungsbeispiel
des Video-Bitstrom-Reinigers
der vorliegenden Erfindung darstellt;
-
2 ein
weiteres beispielhaftes Ausführungsbeispiel
des Video-Bitstrom-Reinigers der vorliegenden Erfindung darstellt;
-
3 ein
weiteres beispielhaftes Ausführungsbeispiel
des Video-Bitstrom-Reinigers der vorliegenden Erfindung darstellt;
-
4 einen
beispielhaften Decodierprozess der vorliegenden Erfindung darstellt;
-
5A und 5B ein beispielhaftes Verfahren
einer Innen-DC-Verbergung
der vorliegenden Erfindung darstellen;
-
6A und 6B ein beispielhaftes Verfahren
einer Innen-AC-Verbergung
der vorliegenden Erfindung darstellen; und
-
7 eine
beispielhafte syntaktische Struktur eines Videopakets gemäß einem
MPEG-4-Standard darstellt.
-
DETAILLIERTE
BESCHREIBUNG DER GEGENWÄRTIG
BEVORZUGTEN BEISPIELHAFTEN AUSFÜHRUNGSBEISPIELE
-
Die vorliegende Erfindung wird nun
hierin nachfolgend vollständiger
unter Bezugnahme auf die beigefügten
Zeichnungen beschrieben werden, in welchen bevorzugte Ausführungsbeispiele
der Erfindung gezeigt sind. Diese Erfindung kann jedoch in vielen
unterschiedlichen Formen verkörpert
sein, und sollte nicht als auf die hierin aufgezeigten Ausführungsbeispiele
beschränkt
angesehen werden; vielmehr sind diese Ausführungsbeispiele so zur Verfügung gestellt,
dass diese Offenbarung sorgfältig
und vollständig
sein wird und den Schutzumfang der Erfindung Fachleuten auf dem
Gebiet vollständig übermitteln
wird.
-
Die vorliegende Erfindung ist auf
einen Video-Bitstrom-Reiniger
gerichtet. Wie es zuvor beschrieben ist, ist eine Videoübertragung über fehleranfällige Netzwerke,
wie beispielsweise Mobilfunk-Netzwerke und IP-Netzwerke mit Paketverlust,
erwünscht.
Viele Endanwender-Endgeräte
sind jedoch nicht für
solche Netzwerke entwickelt. Als Ergebnis gibt es eine Notwendigkeit
für Netzwerkvorrichtungen,
die decodierbare Bitströme
aus fehlerhaften Bitströmen
erzeugen können,
die normalerweise von Anwender-Endgeräten nicht decodiert werden
konnten. Beispielsweise verwenden viele Endanwender-Endgeräte überhaupt
keine Fehlerabfederung, während
einige nur einfache Programmierwerkzeuge bzw. Tools für eine Fehlerabfederung
verwenden. Zusätzlich
erfassen einige Internetprotokoll-(IP)-Netzwerke fehlerhafte Daten
und werfen sie weg, so dass keine Fehlerabfederung durchgeführt werden
kann. Als Ergebnis erzeugt das Endanwender-Endgerät, das das übertragene
Video empfängt,
ein Bild niedriger Qualität
oder überhaupt
kein Bild.
-
Die vorliegende Erfindung löst dieses
Problem durch die Verwendung eines Video-Bitstrom-Reinigers, der
im Netzwerk platziert ist, wie beispielsweise bei einem Medien-Gateway,
und der den fehlerhaften, nicht wunschgemäßen Bitstrom in einen richtigen
und decodierbaren Bitstrom umwandelt. Gegensätzlich zu einer einfachen Fehlerkorrektur
implementiert die Erfindung eine Fehlerentspannung bzw. -abfederung
im Netzwerk, die sonst im Anwenderendgerät implementiert werden müsste. Nichts
desto weniger sollte es verstanden werden, dass die Erfindung auch
auf der Seite des Endgeräts
verwendet werden könnte.
Somit lässt
der Video-Bitstrom-Reiniger
der vorliegenden Erfindung eine Videoübertragung über fehleranfällige Netzwerke
zu, was einen nützlichen
und wertvollen Dienst bietet.
-
Gemäß 1 ist ein beispielhaftes Ausführungsbeispiel
des Video-Bitstrom-Reinigers der vorliegenden Erfindung dargestellt.
Bei diesem Beispiel ist der Video-Bitstrom-Reiniger 130 zwischen einem
im Wesentlichen fehleranfälligen
Netzwerk 110 und einem im Wesentlichen fehlerfreien Netzwerk 150 platziert.
Ein zerstörter
Bitstrom 120 wird von dem fehleranfälligen Netzwerk 110 durch
den Video-Bitstrom-Reiniger 130 empfangen,
der einen korrigierten Bitstrom 140 zum fehlerfreien Netzwerk 150 ausgibt.
Der korrigierte Bitstrom 140 kann dann durch ein Endanwender-Endgerät zum Decodieren
des Video-Bitstroms verwendet werden. Beispiele für fehlerbehaftete
bzw. fehleranfällige
Netzwerke, die einen zerstörten
Bitstrom erzeugen könnten,
enthalten ein drahtloses Netzwerk und ein IP-Netzwerk. Beispiele
für relativ
fehlerfreie Netzwerke enthalten ein lokales landgebundenes Netzwerk
und ein Kabelnetzwerk.
-
Nimmt man nun Bezug auf 2, ist dort ein weiteres
beispielhaftes Ausführungsbeispiel
des Video-Bitstrom-Reinigers
der vorliegenden Erfindung dargestellt. Bei diesem Beispiel ist
der Video-Bitstrom-Reiniger 230 zwischen einem fehleranfälligen Netzwerk 210 und
einem Decodierer 250 platziert. Ein zerstörter Bitstrom 220 wird
von dem fehleranfälligen
Netzwerk 210 durch den Video-Bitstrom-Reiniger 230 empfangen, welcher
einen korrigierten Bitstrom 240 zum Decodierer 250 ausgibt.
Als Ergebnis ist der Decodierer 250 zum Ausgeben eines
decodierten Bildes 260 fähig.
Ein Beispiel eines Systems, bei welchem diese Konfiguration nützlich ist,
ist eine Vorstufe zu einer Fernseh-Set-Top-Box, die allgemein mit
dem Bezugszeichen 270 bezeichnet ist. Es sollte verstanden
werden, dass das fehleranfällige
Netzwerk bei diesem Ausführungsbeispiel beispielsweise
ein Satellitennetzwerk oder ein IP-Netzwerk enthalten könnte. Wie
es angezeigt ist, empfängt der
Video-Bitstrom-Reiniger 230 den
zerstörten
Bitstrom und stellt einen korrigierten Bitstrom zum Decodierer 250 in
der Set-Top-Box 270 zur
Verfügung.
Als Ergebnis kann die Set-Top-Box 270 ein decodiertes und
fehlerkorrigiertes Bild oder eine Videosequenz zu einem Fernsehgerät liefern.
-
3 der
Zeichnungen stellt ein weiteres beispielhaftes Ausführungsbeispiel
des Video-Bitstrom-Reinigers der vorliegenden Erfindung dar. Bei
diesem Beispiel sind der Video-Bitstrom-Reiniger und der Decodierer
in eine Kombination 330 aus Bitstrom-Reiniger und Decodierer
integriert. Wie es in 3 gezeigt
ist, empfängt
die Kombination 330 aus Video-Bitstrom-Reiniger und Decodierer
einen zerstörten
Bitstrom 320 von einem fehleranfälligen Netzwerk 310 und
gibt ein decodiertes Bild 340 aus, wie bei dem Ausführungsbeispiel, das
in Zusammenhang mit 2 gezeigt
und beschrieben ist.
-
Weil eine Videoübertragung ein großes Ausmaß an Bandbreite
besetzen kann, ist oft eine Videocodierung und -kompression erwünscht. Wie
es diskutiert ist, sind Videocodierschemen von verschiedenen Gruppen
erdacht worden, einschließlich
des Internationalen Telekommunikationsvereinigungs-Telekommunikationsstandardisierungssektors
(ITU-T), der die H-Serie von Standards erzeugt, und der Bewegtbild- Expertengruppe (MPEG),
die die MPEG-Serie von Standards erzeugt. Für beispielhafte Zwecke wird
nachfolgend der MPEG-4-Standard
detailliert diskutiert. Es sollte jedoch verstanden werden, dass
die vorliegende Erfindung auf irgendeines einer Anzahl von Videokompressionsschemen
angewendet werden kann, einschließlich MPEG-1, MPEG-2, H.261,
H.263 und zugehörige
Standards.
-
Bei einem typischen Videocodierschema,
wie beispielsweise MPEG-4, sind Pixel eines Bildes durch einen Luminanzwert
(Y) und zwei Chrominanzwerte (Cb, Cr) dargestellt. Wie es im Stand
der Technik verstanden wird, stellt der Luminanzwert (Y) eine Grauskalendarstellung
zur Verfügung,
während
die zwei Chrominanzwerte Farbinformation zur Verfügung stellen.
Weil eine Luminanz-Chrominanz-Darstellung eine geringere Korrelation
als eine Rot-Grün-Blau-Darstellung
hat, ist es einfacher, das Signal effizienter zu codieren. Eine diskrete
Kosinustransformation (DCT) wird zum Transformieren der Pixelwerte
im räumlichen
Bereich in eine codierte Darstellung im spektralen Bereich oder
Frequenzbereich verwendet. Wie es im Stand der Technik verstanden
wird, erzeugt eine diskrete Kosinustransformation (DCT) einen DC-Koeffizienten
und eine Anzahl von AC-Koeffizienten. Der DC-Koeffizient stellt
einen Durchschnitt der Gesamtgröße der transformierten
Eingangsdaten dar und enthält
eine Frequenzkomponente von Null. Jedoch können die AC-Koeffizienten sinusförmige Frequenzkomponenten
von nicht Null enthalten, die den höheren Frequenzgehalt der Pixeldaten
bilden. Diese DCT-Koeffizienten werden quantisiert und einer Codierung
variabler Länge
(VLC = variable-length coding) unterzogen. Weil das menschliche
Auge empfindlicher gegenüber
niedrigen Frequenzen als gegenüber
hohen Frequenzen ist, wird den niedrigen Frequenzen bei der Quantisierung
und Codierung des Bildes eine größere Wichtigkeit
zugeteilt. Weil viele Hochfrequenzkoeffizienten der DCT nach einer
Quantisierung Null sind, wird VLC durch eine Lauflängencodierung
erreicht, die die Koeffizienten unter Verwendung einer Zick-Zack-Abtastung
in eine eindimensionale Matrix anordnet bzw. aufreiht, die Niederfrequenzkoeffizienten
vor Hochfrequenzkoeffizienten anordnet. Auf diese Weise kann es
eine Anzahl von aufeinanderfolgenden Null-Koeffizienten geben, was
zu einer effizienteren Quantisierung führt.
-
Die DCT-Transformation wird an einem
spezifizierten Block von Pixeln im Bild durchgeführt. Die aus der DCT-Transformation
erhaltenen DCT-Koeffizienten werden oft "Texturinformation" des Bildes genannt. Beispielsweise
resultiert eine DCT-Transformation
eines 8 × 8-Pixelblocks
in einem DC-Koeffizienten
und 63 AC-Koeffizienten. Eine getrennte DCT-Transformation wird für jeden
der Luminanz und der zwei Chrominanz-Pixelblöcke durchgeführt. Weil
die Luminanzkomponente wahrnehmungsmäßig wichtiger als die Chrominanzkomponenten
ist, werden die Chrominanz-DCT-Transformationen
bei einem Viertel der räumlichen
Auflösung
der Luminanztransformation durchgeführt, um eine niedrigere Bandbreite
des komprimierten Videos zur Verfügung zu stellen.
-
Ein Makroblock (MB), der bei einer
Videocodierung verwendet wird, besteht typischerweise aus vier Luminanzblöcken und
zwei Chrominanzblöcken.
Eine Anzahl von Makroblöcken
bildet ein Videopaket (VP) oder eine Scheibe. Eine Anzahl von VPs
oder Scheiben bildet einen Frame eines Bildes. Die Größe und die Form
der VPs oder Scheiben können
unter verschiedenen Codierschemen variieren und müssen nicht
notwendigerweise innerhalb desselben Bildes einheitlich sein. Beispielsweise
lässt MPEG-4
die Codierung von beliebig geformten Videoobjekten zu, einschließlich einer
beliebigen Anzahl von Makroblöcken
innerhalb eines Bildes. Eine Frame eines solchen Videoobjekts wird
Videoobjektebene (VOP = video object plane) genannt.
-
Räumliche
und temporäre
Redundanzen, die in Videoobjekten oder Frames auftreten können, können zum
Reduzieren der Bitrate von übertragenem
Video verwendet werden. Eine räumliche
Redundanz wird nur verwendet, wenn Frames unabhängig codiert werden. Dies wird
Intraframe-Codierung genannt, welches zum Codieren des ersten Frames
in einer Videosequenz verwendet wird, sowie dafür, dass sie über die
gesamte Videosequenz periodisch eingefügt wird. Eine zusätzliche
Kompression kann durch Ziehen eines Vorteils aus der Tatsache erreicht
werden, dass aufeinanderfolge Frames eines Videos oft nahezu identisch
sind. Bei dem, was "Interframe-Codierung" genannt wird, wird
die Differenz bzw. der Unterschied zwischen zwei aufeinanderfolgenden
Frames als die Differenz bzw. der Unterschied zwischen dem aktuellen
Frame und einem vorherigen Frame codiert. Weitere Codiergewinne
können
durch Berücksichtigen
einer Szenenbewegung erreicht werden. Anstelle eines Nehmens der
Differenz zwischen einem aktuellen Makroblock und einem zuvor codierten Makroblock
bei derselben räumlichen
Position kann ein versetzter zuvor codierter Makroblock verwendet
werden. Dieser Versatz wird durch einen Bewegungsvektor (MV) dargestellt.
Als Ergebnis kann der aktuelle Makroblock basierend auf dem Bewegungsvektor
und einem vorherigen Makroblock vorhergesagt werden.
-
Ein MPEG-4-Datenstrom enthält drei
Haupttypen von Videoobjektebenen (VOPs). Der erste Typ I-VOPS besteht
aus selbstenthaltenden intracodierten Objekten. P-VOPS sind in Bezug
auf zuvor codierte VOPs vorhersagecodiert. Ein dritter Typ B-VOPs
ist unter Verwendung von Differenzen zwischen sowohl den vorherigen
als auch den nächsten
codierten VOPs bidirektional codiert. Bei diesem dritten Typ von
VOP sind zwei Bewegungsvektoren einem jeweiligen B-VOP zugeordnet.
-
Zum weiteren Verstehen der vorliegenden
Erfindung ist es nützlich,
ein Beispiel der syntaktischen Struktur eines Pakets in MPEG-4 zu
diskutieren. Wie es im Stand der Technik verstanden wird, können MPEG-4-Pakete
in entweder einem Datenaufteilungsmode oder einem Nichtdatenaufteilungsmode
gesendet werden. Eine beispielhafte syntaktische Struktur eines
MPEG-4-Pakets mit einer Datenaufteilung ist in 7 gezeigt. Wie es dargestellt ist, ist
ein Markierer für
eine erneute Synchronisierung (RM = resynchronization marker) 710,
der ein eindeutiges Bitmuster ist, am Anfang eines neuen Videopakets
platziert, um eine Signalerfassung zu ermöglichen. In dem Fall des Beginns
eines neuen Bildes wird ein Bild-Synchronisationswort (PIC sync),
das einen Bildanfangsblock (PIC-Anfangsblock) enthält, anstelle
des Markierers für
eine erneute Synchronisation 710 verwendet. Als nächstes ist
eine Makroblockadresse (MB) 720, die die Adresse des ersten
Makroblocks im Videopaket enthält,
zusammen mit Quantisierungsinformation 730, die zum Decodieren des
ersten Makroblocks nötig
ist, enthalten.
-
Der Quantisierungsinformation 730 folgt
der Anfangsblockerweiterungscode (HEC = header extension code) und
der Anfangsblock 740. Der HEC ist ein einziges Bit, das
anzeigt, ob zusätzliche
VOP-Ebeneninformation im Anfangsblock verfügbar sein wird. Die zusätzliche
VOP-Ebeneninformation kann Zeitgabeinformation, eine temporäre Referenz,
einen VOP-Vorhersagetyp
zusammen mit anderer Information enthalten. Hinter dem HEC und Anfangsblock 740 ist
ein Bewegungsvektorfeld 740 enthalten, das die Bewegungsvektor(MV-)Information
enthält,
und ein Bewegungsmarkiererfeld (MM) 760, das das Ende der Bewegungsvektorinformation
innerhalb des Pakets anzeigt. Es sollte verstanden werden, dass
der Bewegungsmarkierer 760 als sekundärer Markierer für eine erneute
Synchronisation wirkt. Dem Bewegungsmarkierer 760 folgt
ein Textur-(DCT-)Informationsfeld 770. Schließlich beginnt
ein neues Videopaket mit dem nächsten
Markierer für
eine erneute Synchronisation 780.
-
Es sollte verstanden werden, dass
das in einem Nichtdatenaufteilungsmode die Bewegungsvektorinformation
und Texturinformation nicht durch einen Bewegungsmarkierer getrennt
ist. Eine Datenaufteilung, die für
eine bessere Fehlerentspannung verwendet wird, lässt die Verwendung der Bewegungskompensationsdaten
und eines zuvor decodierten VOP zum Verbergen von Textinformation
zu, die im aktuellen VOP verloren worden sein kann.
-
Eine Anzahl von zusätzlichen
Unterfeldern existiert innerhalb eines MPEG-4-Pakets, von welchen
drei weiter diskutiert werden. Ein codiertes Blockmuster (CBP =
coded block pattern) existiert innerhalb der Makroblock-Daten, um
anzuzeigen, welche Blöcke
im Makroblock codiert sind und welche Nullwert-Koeffizienten enthalten. Ebenso existiert
in intracodierten Videoframes ein DC-Markierer innerhalb der DCT-Information,
um DC-Koeffizienten von den AC-Koeffizienten der DCT zu trennen.
Schließlich
existiert auch ein Bildtypfeld (pic type) innerhalb des Pakets zum
Anzeigen des Typs von VOP, der innerhalb des Pakets existiert.
-
Synchronisation
-
Die Existenz von Synchronisations-Codeworten
innerhalb des Bitstroms ist ein wichtiger Beitrag für die Unverwüstlichkeit
des Videopakets. Diese Codeworte werden durch Bitmuster dargestellt,
die nicht irgendwo anders in fehlerfreien Daten erscheinen können. Die
Synchronisations-Codeworte können
aus entweder einem PIC-Synchronisationsmarkierer oder einem Markierer
für eine
erneute Synchronisation (RM) bestehen. Weil MPEG-4 RMs bei beliebigen
Makroblockstellen zulässt,
hat jedes Bild eine PIC-Synchronisation und eine unbekannte Anzahl
von RMs. Zum Durchführen
einer Synchronisation sucht der Decodierer zuerst nach den zwei
aufeinanderfolgenden Synchronisationspositionen (entweder PIC-sync
oder RM) innerhalb des Bitstroms. Die Bits zwischen zwei Synchronisationspositionen
werden als Paket bezeichnet. Die Anzahl von Bits in einem Paket
ist als Packet Bits bezeichnet. Die Bildposition (Adressen) für die zwei
Synchronisationsworte werden decodiert und sind als mb1 und mb2
bezeichnet. Die Anzahl von Makroblöcken in einem Paket ist mit kmb
bezeichnet.
-
Decodierprozess
-
Ein beispielhafter Decodierprozess
gemäß der vorliegenden
Erfindung ist in 4 dargestellt,
einschließlich
der Schritte einer Bitzerlegung 420 eines Bitstroms 410,
einer Verbergung 450 und einer Signalverarbeitung 460 zum
Erzeugen einer Ausgabe 470. Wenn ein "seltsames Ereignis" erfasst wird (das allgemein mit dem
Bezugszeichen "430" bezeichnet ist),
und zwar während
einer Bitzerlegung 420, wird eine Verbergung durchgeführt, d.h.
ein Durchgang zwischen der Bitzerlegung 420 und der Verbergung 440 wird
veranlasst. Sonst wird der Verbergungsschritt 440 umgangen
(wie es allgemein durch das Bezugszeichen 440 bezeichnet ist).
Ein seltsames Ereignis ist als das erfasste Auftreten innerhalb
des Bitstroms von einem Fehler oder von anderen Daten, die nicht
gemäß dem erwarteten
syntaktischen Inhalt des Bitstroms sind, definiert.
-
Bei einem Beispiel des Decodierprozesses
setzt ein Bitzerleger ein Wort (Bitmuster) einer Codierung spezifischer
Variablenlänge
(VLC) in einen DCT-Komponentenwert um. Ein Signalprozessor nimmt
einen Block von DCT-Komponentenwerten und führt eine inverse diskrete Kosinustransformation
(IDCT) zum Erzeugen von Pixelwerten durch. Wenn gedacht wird, dass
der Bit-Zerleger unrichtige DCT-Koomponentenwerte aufgrund eines Übertragungsfehlers
ausgegeben hat, kann ein Verberger bzw. eine Verbergungseinheit 450 die
DCT-Komponenten auf Werte einstellen, von denen gedacht wird, dass
sie die bestmögliche
Bildqualität ergeben.
Wenn jedoch kein Fehler während
einer Bitzerlegung gefunden wird, wird keine Verbergung durchgeführt, und
die Verbergungseinheit 450 wird umgangen 440,
und eine Signalverarbeitung 460 wird fortgeführt. Wenn
ein Fehler gefunden wird, was anzeigt, dass ein seltsames Ereignis
aufgetreten ist, der aber korrigiert werden kann, wird keine Verbergung 450 durchgeführt, und
eine Signalverarbeitung wird folgen. Schließlich wird dann, wenn ein Fehler
gefunden wird, der anzeigt, dass ein seltsames Ereignis aufgetreten
ist, welches nicht korrigiert werden kann, eine Verbergung 450 vor
einer Signalverarbeitung 460 durchgeführt.
-
Einige Beispiele für allgemeine
seltsame Ereignisse, die in einem Videobitstrom auftreten können, sind in
Tabelle 1 angegeben. Das seltsame Ereignis 1 kann auftreten, wenn
in den empfangenen Daten die Bedingung 0 < mb2 < mb1
erfüllt
ist, d.h. möglich
Ursachen für
dieses seltsame Ereignis einen Bitfehler in mb1 (der mb1-Wert ist
zu groß),
einen Bitfehler in mb2 (der mb2-Wert ist zu klein) oder einen zerstörten PIC-Anfangsblock. Seltsame
Ereignisse 2 und 3 können
auftreten, wenn ein nicht definiertes Codewort empfangen wird oder
eine nicht definierte semantische Bedeutung eines richtigen Codeworts
existiert, d.h. das Codewort keinen syntaktischen Sinn in dem Zusammenhang
macht, in welchem es auftritt. Eine mögliche Ursache für diese Ereignisse
kann einen Bitfehler in dem Paket enthalten. Es sollte verstanden
werden, dass andere allgemeine seltsame Ereignisse, die Fachleuten
auf dem Gebiet bekannt sein würden,
auftreten können.
-
-
Beispiele von seltsamen Ereignissen,
die in einem Nichtdatenaufteilungsmode auftreten können, sind in
Tabelle 2 angegeben. Ein seltsames Ereignis 4 kann dann auftreten,
wenn die kmb Makroblöcke
decodiert worden sind, bevor Packet Bits decodiert worden sind.
Mögliche
Ursachen für
dieses Ereignis enthalten einen Bitfehler in mb2 (der mb2-Wert ist
zu klein) oder einen Bitfehler im Paket. Ein seltsames Ereignis
5 kann dann auftreten, wenn kmb Makroblöcke noch nicht zu der Zeit
decodiert worden sind, zu welcher Packet Bits decodiert worden sind.
Mögliche
Ursachen für
dieses seltsame Ereignis enthalten einen Bitfehler in mb2, einen
verlorenen zweiten Markierer für
eine erneute Synchronisation (RM2) oder einen Fehlerfehler im Paket.
Es sollte verstanden werden, dass andere seltsame Ereignisse, die
Fachleuten auf dem Gebiet bekannt sein würden, in einem Nichtdatenaufteilungsmode
auftreten können.
-
-
Beispiele für seltsame Ereignisse, die
in einem Datenaufteilungsmode auftreten können, sind in Tabelle 3 angegeben.
Ein seltsames Ereignis 6 kann dann auftreten, wenn ein Bewegungsmarkierer
in einem P-VOP-Paket nicht existiert. Mögliche Ursachen für dieses
seltsame Ereignis enthalten einen Bitfehler im Bewegungsmarkierer,
einen emulierten Markierer für
eine erneute Synchronisation (RM) vor dem Bewegungsmarkierer oder
einen Fehler in pic_type. Ein seltsames Ereignis 7 kann dann auftreten,
wenn ein DC-Markierer (DCM)
nicht innerhalb eines I-VOP-Pakets existiert.
-
Mögliche
Ursachen für
dieses seltsame Ereignis enthalten einen Bitfehler im DC-Markierer,
einen emulierten Markierer für
eine erneute Synchronisation vor dem DC-Markierer oder einen Fehler
in pic type. Ein seltsames Ereignis 8 kann dann auftreten, wenn
kmb Bewegungsvektoren decodiert werden, bevor ein Bewegungsmarkierer
decodiert wird. Mögliche
Ursachen für
dieses Ereignis enthalten einen Bitfehler im Bewegungsmarkierer,
einen Bitfehler in mb2 (der mb2-Wert ist zu klein) oder einen Bitfehler
im Packet vor dem Bewegungsmarkierer. Ein seltsames Ereignis 9 kann
dann auftreten, wenn kmb Bewegungsvektoren nicht decodiert werden,
durch die Zeit, zu welcher der Bewegungsmarkierer decodiert wird.
Mögliche
Ursachen für
dieses seltsame Ereignis enthalten einen Bitfehler in mb2, einen
verlorenen RM2, einen Bitfehler im Paket vor dem Bewegungsmarkierer
oder einen emulierten Bewegungsmarkierer. Ein seltsames Ereignis
10 kann dann auftreten, wenn kmb2 CBPs nicht zu der Zeit decodiert
worden sind, zu welcher RM2 decodiert ist. Eine mögliche Ursache
für dieses
seltsame Ereignis kann einen Bitfehler im Paket enthalten. Ein seltsames
Ereignis 11 kann dann auftreten, wenn kmb Koeffizienten innerhalb
des Makroblocks nicht zu der Zeit decodiert werden, zu welcher RM2
decodiert wird. Eine mögliche
Ursache für
dieses seltsame Ereignis enthält
einen Bitfehler im Paket. Als letztes Beispiel kann ein seltsames
Ereignis 12 dann auftreten, wenn kmb Koeffizienten innerhalb des
Makroblocks vor RM2 decodiert werden. Eine mögliche Ursache für dieses
seltsame Ereignis kann einen Bitfehler im Paket enthalten. Es sollte
verstanden werden, dass andere seltsame Ereignisse, die Fachleuten
auf dem Gebiet bekannt sein würden,
in einem Datenaufteilungsmode auftreten können.
-
-
Es sollte verstanden werden, dass
es bei der Erfassung von vielen seltsamen Ereignissen möglich ist, den
zugrundeliegenden Fehler zu lokalisieren und zu korrigieren. Verfahren
zur Korrektur dieser Fehler sind Fachleuten auf dem Gebiet wohlbekannt.
In den Fällen,
in welchen ein Fehler eines seltsamen Ereignisses nicht korrigiert
werden kann, werden einige übertragene
Daten ignoriert werden, und eine Verbergung wird verwendet werden.
Mehrere Beispiele für
Fehler eines seltsamen Ereignisses sind dargestellt, die nicht gemäß geeigneten
Aktionen korrigiert werden können,
die durchgeführt
werden können.
Beispielsweise können
für ein nicht
korrigierbares seltsames Ereignis in einem Nichtdatenaufteilungspaket
alle Daten im Paket ignoriert werden. Für einen nicht korrigierbaren
Fehler eines seltsamen Ereignisses vor dem DC-Markierer in einem
I-VOP oder vor dem Bewegungsmarkierer in einem P-VOP können alle
Daten im Paket ignoriert werden. Für ein nicht korrigierbares
seltsames Ereignis nach einem DC-Markierer in einem I-VOP können CBP-
und AC-Komponenten ignoriert werden. Für ein nicht korrigierbares
seltsames Ereignis nach einem Bewegungsmarkierer in einem P-VOP
können
CBP und DCT-Komponenten
ignoriert werden, während
Bewegungsvektoren verwendet werden können. Als schließliches
Beispiel für
den Fall, in welchem eine Intra-DC in einem I-VOP außerhalb eines
Bereichs ist, kann die Intra-DC ignoriert werden. Es sollte verstanden
werden, dass andere Verfahren einer Verbergung, die Fachleuten auf
dem Gebiet bekannt sein würden,
verwendet werden können.
-
Verbergung
-
Drei Beispiele von Verbergungsverfahren
werden diskutiert. Beim ersten Verbergungsverfahren werden alle
DCT-Komponenten in einem P-VOP auf Null gesetzt. Bei dem zweiten
Verbergungsverfahren wird ein Bewegungsvektor von einem richtig
decodierten Bewegungsvektor in einem benachbarten Makroblock kopiert. Wenn
kein solcher richtig decodierter Bewegungsvektor existiert, wird
der Bewegungsvektor auf Null gesetzt. Bei einem dritten Verbergungsverfahren
werden I-VOP-DCT-Komponenten
von umgebenden richtig decodierten Makroblöcken abgeleitet. Wenn keine
solchen Makroblöcke
existieren, werden bereits verborgene Daten verwendet.
-
Während
einer Verbergung eines Bewegungsvektors werden die vier umgebenden
Bewegungsvektoren geprüft.
Wenn wenigstens einer von ihnen ohne eine Fehlererfassung übertragen
wird, wird er im verborgenen Makroblock verwendet. Wenn kein richtig
decodierter Bewegungsvektor gefunden wird, wird der verborgene Bewegungsvektor
auf Null gesetzt. Wenn der aktuelle Makroblock nicht richtig decodiert
ist, können
andere Makroblöcke
im selben Paket auch nicht richtig decodiert sein. In diesem Fall
ist es höchstwahrscheinlich, dass
der Makroblock oberhalb oder unterhalb einen Bewegungsvektor enthält, der
zur Verbergung verwendet werden kann.
-
Während
einer Intra-DC-Verbergung werden die vier umgebenden Makroblöcke verwendet.
Diejenigen Makroblöcke,
die richtig decodiert worden sind, sind als "nützlich" bezeichnet und werden
zur Verbergung des aktuellen Makroblocks verwendet. Alle nützlichen
DC-Komponenten werden in der Verbergungsprozedur interpoliert. Nimmt
man nun Bezug auf die 5A und 5B sind dort verschiedene
DC-Komponenten dargestellt, die beteiligt sind. Wie es gezeigt ist,
werden die Luminanz-DC-Komponenten in 5A von
höchstens zwei
umgebenden Werten interpoliert, während die Chrominanzkomponenten
in 5B von vier umgebenden Werten
interpoliert werden. Demgemäß wird dann,
wenn ein bestimmter Luminanz-DC-Wert nicht verborgen werden kann,
weil seine beiden entsprechenden Nachbarwerte nicht richtig decodiert
sind, er stattdessen von den zwei benachbarten DC-Werten innerhalb
des Makroblocks verborgen, die bereits verborgen sind. In dem Fall,
in welchem alle vier umgebenden Makroblöcke nicht richtig decodiert
sind, wird eine Verbergung des aktuellen Makroblocks mit verborgenen
Werten in benachbarten Makroblöcken
durchgeführt.
-
Nimmt man nun Bezug auf die 6A und 6B, sind dort die verschiedenen Intra-AC-Komponenten dargestellt,
die auf gleiche Weise wie DC-Werten von umgebenden richtig decodierten
Makroblöcken
verborgen werden. Nur rein horizontale und rein vertikale AC-Komponenten
werden verborgen. Wie es in 6A dargestellt
ist, werden für
eine Luminanz die Werte von einem benachbarten Makroblock blockiert.
Für eine
Chrominanz werden jedoch die Werte von zwei umgebenden Makroblöcken interpoliert,
wie es in 6B dargestellt ist.
Horizontale AC-Komponenten werden von oben und von unten aus kopiert
oder interpoliert. Vertikale AC-Komponenten
werden von links und rechts aus kopiert oder interpoliert. Wenn
ein benachbarter Makroblock nicht nützlich ist, wird die entsprechende
Verbergung nicht durchgeführt.
-
Es sollte verstanden werden, dass
andere Verfahren einer Verbergung, die Fachleuten auf dem Gebiet bekannt
sein würden,
bei der vorliegenden Erfindung verwendet werden können.
-
Obwohl verschiedene Ausführungsbeispiele
des Verfahrens, des Systems und der Vorrichtung der vorliegenden
Erfindung in den beigefügten
Zeichnungen dargestellt und in der vorangehenden detaillierten Beschreibung
beschrieben worden sind, wird es verstanden werden, dass die Erfindung
nicht auf die offenbarten Ausführungsbeispiele
beschränkt
ist, sondern zu zahlreichen erneuten Anordnungen, Modifikationen
und Substitutionen fähig
ist, ohne vom Schutzumfang der Erfindung abzuweichen, wie er durch
die folgenden Ansprüche
aufgezeigt und definiert ist.
-
Zusammenfassung
-
Ein System, ein Verfahren und eine
Vorrichtung zum Korrigieren eines zerstörten Video-Bitstroms (120, 220, 320)
unter Verwendung eines Video-Bitstrom-Reinigers (130, 230, 330)
sind offenbart. Der Video-Bitstrom-Reiniger der vorliegenden Erfindung
empfängt
einen zerstörten
Video-Bitstrom und
erzeugt einen syntaktisch richtigen Video-Bitstrom (140, 240, 340)
als Ausgabe unter Verwendung einer Korrektur und einer Verbergung
der Fehler im Video-Bitstrom. Der Video-Bitstrom-Reiniger kann in
einem Netzwerk zum Empfangen eines zerstörten Video-Bitstroms von einem
fehlerbehafteten bzw. fehleranfälligen
Netzwerk (110, 210, 310) und zum Liefern
eines richtigen Video-Bitstroms zu einem fehlerfreien Netzwerk (150)
platziert werden, welches einen richtigen Video-Bitstrom zu einem
Videodecodierer (250) liefert, oder als integrierter Bitstrom-Reiniger
und Videodecodierer (330).
-
(1)