DE69834681T2 - Verfahren und Vorrichtung zur Dekodierung komprimierter Bewegtbilddaten - Google Patents

Verfahren und Vorrichtung zur Dekodierung komprimierter Bewegtbilddaten Download PDF

Info

Publication number
DE69834681T2
DE69834681T2 DE1998634681 DE69834681T DE69834681T2 DE 69834681 T2 DE69834681 T2 DE 69834681T2 DE 1998634681 DE1998634681 DE 1998634681 DE 69834681 T DE69834681 T DE 69834681T DE 69834681 T2 DE69834681 T2 DE 69834681T2
Authority
DE
Germany
Prior art keywords
data
decoded
segment
area
encoded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE1998634681
Other languages
English (en)
Other versions
DE69834681D1 (de
Inventor
Satoshi 7-12 Toranomon 1-chome Nakagawa
Yasuko 7-12 Toranomon 1-chome Matsumura
Takashi 7-12 Toranomon 1-chome Nishi
Toshihisa 7-12 Toranomon 1-chome Nakai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Publication of DE69834681D1 publication Critical patent/DE69834681D1/de
Application granted granted Critical
Publication of DE69834681T2 publication Critical patent/DE69834681T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf ein Verfahren zum Decodieren komprimierter Bewegtbilddaten und auf einen Decodierer, der dieses Verfahren nutzt, und insbesondere auf ein Verfahren und auf einen Decodierer, die geeignet sind, wenn die komprimierten Daten Fehler enthalten.
  • Es sind viele Verfahren zum Komprimieren von Bewegtbilddaten einschließlich Verfahren, die Codes mit variabler Länge nutzen, bekannt. Zum Beispiel spezifiziert die Empfehlung H.261 des Telekommunikationsnormungssektors des Internationalen Fernmeldevereins (ITU-T) ein Codierungsverfahren mit variabler Länge, das einen Videodatenstrom in Gruppen von Bildbereichen teilt, die einen Startcode nutzen, um den Beginn jeder Gruppe zu identifizieren. Jeder Bildbereich kann entweder in einer Intra-Betriebsart oder in einer Inter-Betriebsart codiert werden. Weitere Einzelheiten werden in der Beschreibung der Erfindung gegeben.
  • Wenn es in irgendeinem Verfahren, das einen Code mit variabler Länge verwendet, in dem codierten Datenstrom einen Fehler gibt, kann der Decodierer die Synchronisation mit den Grenzen der Codewörter verlieren. Der Verlust der Synchronisation wird erkannt, wenn der Decodierer ein unzulässiges Codewort oder eine andere Verletzung der Codierungsregeln feststellt. Um die Bildverschlechterung zu minimieren, verwirft ein herkömmlicher Decodierer alle Daten von dem Punkt, an dem der Fehler erkannt wird, bis zu dem nächsten Punkt, an dem die Synchronisation zuverlässig wiedergewonnen wird; in dem H.261-Codierungsschema ist dieser Punkt der nächste Startcode. Die verworfenen Daten werden z. B. durch Austauschen decodierter Daten von dem vorhergehenden Teilbild des Bewegtbilds ersetzt.
  • Das US-Patent 5.168.356 an Acampora offenbart eine Vorrichtung zum Segmentieren eines codierten Videosignals für die Sendung und beschreibt einen weiteren Decodierer, der einen gesamten Transportblock von Daten verwirft, wenn ein Fehler entdeckt wird.
  • Ein Problem ist, dass der Decodierer den Verlust der Synchronisation nicht sofort erkennen kann. Dies tritt auf, wenn ein Fehler das beabsichtigte Codewort in ein anderes, zulässiges Codewort mit einer anderen Länge umwandelt. Gelegentlich wird auf diese Weise eine Zeichenfolge mehrerer unbeabsichtigter, aber zulässiger Codewörter erzeugt. Somit kann der Decodierer eine bestimmte Datenmenge falsch decodieren, ohne den Fehler zu erkennen, und die falschen Daten unter der falschen Annahme ausgeben, dass die Daten richtig decodiert wurden. Die Verwendung der falsch decodierten Daten kann insbesondere in Bildbereichen, die in der Intra-Betriebsart codiert sind, eine schwere Bildverschlechterung verursachen.
  • Einige Codes mit variabler Länge besitzen die Eigenschaft, dass dann, wenn die Grenzsynchronisation wegen eines Fehlers verloren geht, die richtige Synchronisation mit hoher Wahrscheinlichkeit schnell und automatisch wiedergewonnen wird, ohne dass es notwendig ist, auf das Erscheinen eines Spezialcodes wie etwa eines Startcodes zu warten. Allerdings gibt es bei diesen selbst resynchronisierenden Codes ein weiteres Problem, dass gelegentlich eine falsche Synchronisation wiedergewonnen wird, bevor die richtige Synchronisation wiedergewonnen worden ist. Somit kann der Decodierer, nachdem er einen Fehler erkannt und eine bestimmte Menge nicht decodierbarer Daten verworfen hat, ein zulässiges Codewort erkennen und zu der Annahme geführt werden, dass eine Resynchronisation stattgefunden hat, wenn das erkannte Codewort tatsächlich aus Teilen zweier angrenzender Codewörter besteht. Auch in diesem Fall können falsche Daten ausgegeben werden, als ob die Daten richtig wären.
  • Probleme wie etwa das obige sind nicht auf Codes mit variabler Länge beschränkt. Wenn in irgendeinem Codierungsschema, das Bewegtbilddaten komprimiert, ein Datensegment wegen eines Fehlers unbenutzbar gemacht wird, besteht eine Gefahr, dass benutzbare decodierte Daten, die dem unbenutzbaren Segment vorangehen oder auf es folgen, falsch decodiert worden sein können, und dass die Verwendung dieser falsch decodierten Daten zu störenden Bilddefekten führen könnte.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Dementsprechend ist es eine Aufgabe der vorliegenden Erfindung, zu verhindern, dass die Qualität eines Bewegtbilds durch nicht erkannte Decodierungsfehler, die einem erkannten Fehler vorhergehen oder auf ihn folgen, verschlechtert wird.
  • Wenn ein Segment eines komprimierend codierten Datenstroms, der ein Bewegtbild repräsentiert, durch einen Fehler unbenutzbar gemacht wird, verwirft das erfindungsgemäße Decodierungsverfahren eine bestimmte Menge decodierter Daten, die an das unbenutzbare Segment angrenzen, und verwendet andere decodierte Daten, um die verworfenen decodierten Daten zu ersetzen. Es können decodierte Daten auf einer Seite oder auf beiden Seiten des unbenutzbaren Segments verworfen werden.
  • Wenn Daten für verschiedene Bildbereiche in verschiedenen Betriebsarten codiert sind, setzt das erfindungsgemäße Verfahren vorzugsweise für jede Betriebsart einen getrennten Verwerfbereich. Wenn jeder Bildbereich einen einzigen Abschnitt des codierten Datenstroms belegt, verwirft das erfindungsgemäße Decodierungsverfahren vorzugsweise eine spezifizierte Anzahl decodierter Bildbereiche. Wenn jeder Bildbereich mehrere nicht zusammenhängende Abschnitte in dem codierten Datenstrom belegt, verwirft das erfindungsgemäße Decodierungsverfahren vorzugsweise alle decodierten Daten für alle Bildbereiche mit irgendwelchen codierten Daten in einem bestimmten Bereich.
  • Der erfindungsgemäße Bewegtbilddecodierer umfasst eine Decodierungseinheit, die Daten decodiert und Fehler erkennt, einen Bildspeicher zum Speichern der decodierten Daten und eine Verwerfeinheit zum Setzen des Bereichs oder der Bereiche, in denen decodierte Daten verworfen werden sollen.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • In der beigefügten Zeichnung ist Folgendes gezeigt:
  • 1 ist ein Blockschaltplan eines Standard-Videocodierers und -Videodecodierers;
  • 2 veranschaulicht eine Standardhierarchie von Bewegtbilddaten;
  • 3 veranschaulicht die Codierungssequenz von Transformationskoeffizienten für einen Block von Bewegtbilddaten;
  • 4 veranschaulicht die allgemeine Struktur eines codierten Datenstroms;
  • 5 veranschaulicht eine Standard-Videomultiplexcodierungs-Syntax;
  • 6 veranschaulicht Codierungstabellen mit variabler Länge;
  • 7 ist ein Blockschaltplan eines Bewegtbilddecodierers gemäß einer ersten Ausführungsform der Erfindung;
  • 8 veranschaulicht die Behandlung eines Fehlers in der ersten Ausführungsform;
  • 9 veranschaulicht ein fehlerfrei decodiertes Bild;
  • 10 veranschaulicht ein decodiertes Bild mit Fehlern in zwei Makroblöcken;
  • 11 ist ein Ablaufplan, der den Betrieb der ersten Ausführungsform veranschaulicht;
  • 12 veranschaulicht die Resynchronisation nach einem Fehler, wenn ein selbst resynchronisierender Code genutzt wird;
  • 13 veranschaulicht Segmente richtig und falsch decodierter Daten und nicht decodierbarer Daten;
  • 14 ist ein Blockschaltplan eines Bewegtbilddecodierers gemäß einer zweiten Ausführungsform der Erfindung;
  • 15 veranschaulicht die Behandlung eines Fehlers in der zweiten Ausführungsform;
  • 16 und 17 sind ein Ablaufplan, der den Betrieb der zweiten Ausführungsform veranschaulicht;
  • 18 ist ein Blockschaltplan, der einen Teil eines Bewegtbilddecodierers gemäß einer dritten Ausführungsform der Erfindung zeigt;
  • 19 veranschaulicht die Behandlung eines Fehlers der dritten Ausführungsform;
  • 20 ist ein Blockschaltplan, der einen Teil eines Bewegtbilddecodierers gemäß einer vierten Ausführungsform der Erfindung zeigt; und
  • 21 veranschaulicht die Behandlung eines Fehlers in der vierten Ausführungsform.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Anhand der beigefügten beispielhaften Zeichnung werden Ausführungsformen des erfindungsgemäßen Decodierungsverfahrens beschrieben. Zunächst wird allerdings eine kurze Beschreibung eines Videocodierers/-decodierers (Video-Codecs) der Norm H.261 und des Codierungsverfahrens der Norm H.261 gegeben. Diese Beschreibung ist relevant, da der erfindungsgemäße Decodierer zum Decodieren eines H.261-codierten Datenstroms verwendet werden kann.
  • 1 ist ein Blockschaltplan eines Video-Codecs, wie er in der ITU-T-Empfehlung H.261 beschrieben ist. Der Codec umfasst einen Videocodierer 1, der ein digitales Videosignal in einen codierten Bitstrom umsetzt, und einen Videodecodierer 3, der die Umkehrfunktion ausführt. Der Videocodierer 1 umfasst einen Quellcodierer 5, einen Videomultiplexcodierer 7, einen Sendepuffer 9, einen Sendecodierer 11 und eine Steuereinheit 13. Der Videodecodierer 3 umfasst einen Quelldecodierer 15, einen Videomultiplexdecodierer 17, einen Empfangspuffer 19 und einen Empfangsdecodierer 21.
  • Der Quellcodierer 5 komprimiert das digitale Videosignal durch verschiedene gut bekannte Verfahren einschließlich der Inter-Teilbild-Vorhersage, der Bewegungskompensation, der diskreten Cosinus-Transformation und der Quantisierung. Der Videomultiplexcodierer 7 komprimiert die Ausgabe des Quellcodierers 5 durch Zickzack-Lauflängen-Codierung und Codierung mit variabler Länge weiter und fügt Anfangsblockinformationen, Startcodes und weitere Zusatzinformationen hinzu. Der Sendepuffer 9 speichert die Ausgabe des Videomultiplexcodierers 7 vor dem Senden. Der Sendecodierer 11 rahmt die Daten in dem Puffer 9 zum Senden über einen Kommunikationskanal, fügt Fehlerkorrekturcodes hinzu, fügt bei Bedarf Leerdaten hinzu und gibt den codierten Bitstrom aus. Die Steuereinheit 13 beobachtet die Datenmenge in dem Sendepuffer 9 und steuert den Quellcodierer 5 und den Videomultiplexcodierer 7 in der Weise, dass ein Pufferüberlauf verhindert wird. Der Quelldecodierer 15, der Videomultiplexdecodierer 17 und der Empfangsdecodierer 21 führen in dieser Reihenfolge die umgekehrte Verarbeitung des Quellcodierers 5, des Videomultiplexcodierers 7 und des Sendecodierers 11 aus.
  • Anhand von 2 hat das durch den Videocodierer 1 in 1 empfangene Videosignal entweder das Standard-Common Intermediate Format (Standard-CIF) oder das Quarter Common Intermediate Format (QCIF). Beide Formate nutzen eine Hierarchie mit vier Schichten: einer Bildschicht 23, einer Gruppe-von-Blöcken-Schicht 25, einer Makroblockschicht 27 und eine Blockschicht 29. Ein CIF-Bild hat zwölf Gruppen von Blöcken, während ein QCIF-Bild nur drei hat.
  • Jede Gruppe von Blöcken 25 ist eine rechteckige Anordnung von Makroblöcken, die durch die Makroblockadressen von eins bis dreiunddreißig nummeriert sind. Jeder Makroblock 27 umfasst vier Farbdichteblöcke (die Blöcke eins bis vier) und zwei Farbwertblöcke (die Blöcke fünf und sechs). Die zwei Farbwertblöcke umfassen jeweils den gleichen Bildbereich wie die vier Farbdichteblöcke zusammen. Ein Block 29 ist eine Acht-Mal-Acht-Anordnung von Farbdichte- oder Farbwertblöcken, die einem quadratischen Bildbereich mit vierundsechzig Farbdichte- oder Farbwert-Bildelementen entspricht. Die Nummerierung in 2 gibt die Sequenzen der Gruppen von Blöcken 25, Makroblöcken 27 und Blöcken 29 in dem codierten Datenstrom an. Die Blöcke 29 und die Makroblöcke 27 ohne Daten können weggelassen sein.
  • 3 zeigt die Struktur eines Blocks 30 von Farbdichte- oder Farbwertdaten nach Ausführung der diskreten Cosinus-Transformation in dem Quellcodierer 5. Die vierundsechzig Datenwerte sind Transformationskoeffizienten, die von links nach rechts eine zunehmende horizontale räumliche Frequenz repräsentieren und die von oben nach unten eine zunehmende vertikale räumliche Frequenz repräsentieren. Der erste Transformationskoeffizient oder Gleichstromkoeffizient (der in der Zeichnung mit eins nummeriert ist) repräsentiert den durchschnittlichen Signalpegel in dem Block. Die Transformationskoeffizienten sind in der durch die Nummerierung in 3 angegebenen Zickzackreihenfolge codiert, so dass Koeffizienten niedrigerer Frequenz zuerst codiert werden. Wegen Vorhersage und Quantisierung sind die meisten Koeffizienten normalerweise null, so dass der Codierer die Länge jeder Folge von Nullen und den Wert des folgenden von null verschiedenen Koeffizienten codiert.
  • 4 zeigt die allgemeine Struktur des durch den H.261-Videomultiplexcodierer 7 ausgegebenen Datenstroms. Die Bitlängen von Datenelementen mit fester Länge sind durch Zahlen über den Datenelementen angegeben. 5 zeigt die Codierungssyntax, wobei Datenelemente mit fester Länge in Feldern mit rechtwinkligen Ecken eingeschlossen sind, während Datenelemente mit variabler Länge in Feldern mit abgerundeten Ecken eingeschlossen sind. Tabelle 1 führt die in diesen Figuren verwendeten Abkürzungen auf.
  • Tabelle 1 Abkürzungen
    Figure 00070001
  • Die Bild- und GOB-Startcodes PSC und GBSC sind die folgenden Bitzeichenfolgen, die durch den Videomultiplexdecodierer 17 eindeutig erkannt werden können. Der Begriff 'Startcode' bezieht sich im Folgenden auf einen dieser Startcodes.
    • PSC: 0000 0000 0000 0001 0000
    • GBSC: 0000 0000 0000 0001
  • MTYPE ist ein Datenelement mit variabler Länge, das angibt, ob ein Makroblock durch den Quellcodierer 5 in der Intra- oder Inter-Betriebsart codiert wurde. In der Intra-Betriebsart werden die tatsächlichen Farbdichte- und Farbwert-Werte codiert. In der Inter-Betriebsart werden diese Werte vorhergesagt, woraufhin der Vorhersagefehler codiert wird. Außerdem gibt MTYPE für die Inter-Betriebsart an, ob in dem Vorhersageprozess eine Bewegungskompensation und ein Schleifenfilter angewendet wurden.
  • Beschreibungen der weiteren Datenelemente in den 4 und 5 werden weggelassen; Einzelheiten sind in der ITU-T-Empfehlung H.261 zu finden.
  • 6 zeigt einen Teil der Codierungstabellen mit variabler Länge für die Datenelemente MBA, MTYPE, MVD, CBP und TCOEFF. Für jedes dieser Datenelemente wird eine andere Codierungsregel mit variabler Länge verwendet. In der MTYPE-Codierungstabelle gibt '+Q' einen Makroblock mit einer neuen Quantisierungsschrittweite an, die durch das MQUANT-Datenelement spezifiziert ist.
  • Anhand der 7 bis 11 wird nun eine erste Ausführungsform der Erfindung beschrieben. Es wird die gleiche allgemeine Codec-Struktur und hierarchische Datenstruktur angenommen, wie sie in den 1 bis 6 gezeigt ist. Die hierarchischen Schichten werden durch die gleichen Bezugszeichen wie in 2 identifiziert.
  • 7 zeigt einen Bewegtbilddecodierer gemäß der ersten Ausführungsform. Dieser Decodierer führt die Funktionen des Quelldecodierers 15 und des Videomultiplexdecodierers 17 in 1 aus. Der Decodierer umfasst eine Decodierungseinheit 31, die komprimierte Daten, die dem Empfangspuffer 19 in 1 entnommen werden, decodiert und die decodierten Daten ausgibt; einen Referenzbildspeicher 33, der decodierte Bilddaten für ein vorhergehendes Teilbild, die für die Decodierung in der Inter-Betriebsart verwendet werden, speichert; einen Momentanbildspeicher 35, der ein Arbeitsbereich für die Speicherung des Teilbilds, das momentan decodiert wird, ist; einen Betriebsartspeicher 37, der Informationen speichert, die die Decodierungsbetriebsart (Intra- oder Inter-) jedes Makroblocks in dem momentanen Teilbild angeben; und eine Verwerfeinheit 39, die entscheidet, welche decodierten Daten verworfen werden sollen, wenn ein Fehler auftritt.
  • Wenn das Teilbild, auf das in der Inter-Betriebsart-Decodierung Bezug genommen wird, das unmittelbar voran gehende Teilbild ist, können der Referenzbildspeicher 33 und der Momentanbildspeicher 35 die Rollen tauschen. Nachdem die Decodierung des momentanen Teilbilds abgeschlossen worden ist, wird der Momentanbildspeicher, in dem die decodierten Daten des momentanen Teilbilds gespeichert sind, zu dem Referenzbildspeicher für die Decodierung des nächsten Teilbilds, während der Referenzbildspeicher, dessen Daten in ihm nicht mehr benötigt werden, zu dem Momentanbildspeicher für die Decodierung des nächsten Teilbilds wird.
  • Nachfolgend wird der Betrieb der ersten Ausführungsform beschrieben.
  • Der durch die Decodierungseinheit 31 ausgeführte Decodierungsprozess arbeitet von einem Synchronisationspunkt zum nächsten. Ein Synchronisationspunkt ist ein Punkt, bei dem ein Startcode (PSC oder GBSC) erfasst wird. Eine Gruppe von Blöcken (GOB) wird in einer einzigen Verarbeitungseinheit decodiert. Während jeder Makroblock in der Gruppe von Blöcken decodiert wird, werden die decodierten Daten in dem Momentanbildspeicher 35 angeordnet, während Informationen, die angeben, ob der Makroblock in der Intra-Betriebsart oder in der Inter-Betriebsart decodiert wurde, in dem Betriebsartspeicher 37 angeordnet werden.
  • Die Decodierungseinheit 31 arbeitet durch Demultiplexieren des ankommenden Stroms komprimierter, codierter Daten gemäß den in 5 veranschaulichten Syntaxregeln, Erkennen von Startcodes, Decodieren der codierten Daten mit fester Länge in jedem Bildanfangsblock (PHEAD) und GOB-Anfangsblock (GHEAD) und Decodieren der codierten Daten mit variabler Länge in der Makroblockschicht und in der Blockschicht in Übereinstimmung mit den in 6 teilweise veranschaulichten Codierungsregeln.
  • Während der Decodierung der Daten mit variabler Länge kann die Decodierungseinheit 31 eine Zeichenfolge von Bits feststellen, die nicht zu irgendeinem der erwarteten Codewörter passt und somit nicht decodiert werden kann. Daraufhin erkennt die Decodierungseinheit 31 einen Fehler. Nach Erkennen des Fehlers hält die Decodierungseinheit 31 die Decodierung an und sucht in dem ankommenden Strom codierter Daten nach dem nächsten Startcode. Die Decodierung wird erst wieder aufgenommen, wenn der nächste Startcode erkannt wird, normalerweise am Ende der momentanen Gruppe von Blöcken.
  • Wenn die Decodierungseinheit 31 den nächsten Startcode nach einem Fehler erkennt, spezifiziert die Verwerfeinheit 39 zwei Bereiche decodierter Makroblockdaten, die sich bis zu dem Punkt erstrecken, an dem der Fehler erkannt wurde. Der erste Bereich ist ein Verwerfbereich für Makroblöcke, die in der Intra-Betriebsart codiert wurden (im Folgenden Intra-Makroblöcke). Der zweite Bereich ist ein Verwerfbereich für Makroblöcke, die in der Inter-Betriebsart codiert wurden (im Folgenden Inter-Makroblöcke).
  • Die Decodierungseinheit 31 verwirft decodierte Intra-Makroblöcke in dem ersten Bereich und decodierte Inter-Makroblöcke in dem zweiten Bereich, indem sie diese Makroblöcke aus dem momentanen Bildspeicher 35 löscht. Diese verworfenen Makroblöcke werden durch die entsprechenden Makroblöcke aus dem Referenzbildspeicher 33 ersetzt. Außerdem kopiert die Decodierungseinheit 31 Makroblöcke aus dem Referenzbildspeicher 33, um decodierte Daten zu erzeugen, damit sie die Stelle der nicht decodierten Daten von dem Punkt an, an dem der Fehler erkannt wurde, bis zum nächsten Synchronisationspunkt einnehmen.
  • 8 zeigt ein Beispiel eines codierten Datenstroms mit einem Fehler, um den ersten und den zweiten Bereich zu veranschaulichen. Der Fehler, z. B. ein Übertragungskanalfehler, tritt bei einem Punkt X auf. Wie es fast immer der Fall ist, wird der Fehler nicht sofort erkannt. Die Erkennung findet bei einem späteren Punkt Y statt, normalerweise dem Punkt, bei dem der Fehler erstmals ein unzulässiges Codewort erzeugt. Die Decodierungseinheit 31 stellt die Decodierung vom Punkt Y bis zu dem nächsten Startcode (SC) ein. Somit umfasst die Einheit codierter Daten zwischen den zwei Startcodes ein richtig decodiertes Segment 41, ein falsch decodiertes Segment 43 und ein nicht decodiertes Segment 45.
  • Der erste durch die Verwerfeinheit 39 spezifizierte Bereich 47 erstreckt sich von dem Punkt Y, bei dem der Fehler erkannt wurde, zurück zu einem ersten Punkt Z1. Der zweite Bereich 49 erstreckt sich über eine kürzere Strecke vom Punkt Y zurück zu einem zweiten Punkt Z2. In dem vorliegenden Beispiel ist der Punkt Z1 vor dem Punkt X des Fehlers angeordnet, während der Punkt Z2 nach dem Punkt X angeordnet ist. Folglich werden alle falsch decodierten Intra-Makroblöcke und möglicherweise einige richtig decodierte Intra-Makroblöcke verworfen, während einige falsch decodierte Inter-Makroblöcke beibehalten werden können.
  • Die 9 und 10 veranschaulichen den Grund für diese Verwerfstrategie. 9 zeigt ein decodiertes Bild, das fehlerfrei ist. 10 zeigt das Gleiche decodierte Bild, wenn in einem Intra-Makroblock 51 und in einem Inter-Makroblock 53 typische Fehler vorhanden sind. In dem falsch decodierten Intra-Makroblock 51 ist das Bild vollständig zerstört. Dagegen ist das Bild in dem falsch decodierten Inter-Makroblock 53 nur leicht beschädigt, da die codierten Daten in einem Inter-Makroblock an den von dem Referenzmakroblock in dem vorhergehenden Teilbild vorhergesagten Daten lediglich verhältnismäßig kleine Änderungen vornehmen. Der beschädigte Inter-Makroblock 53 sieht wie ein normaler Makroblock mit einer kleinen Menge überlagertem Rauschen aus.
  • Die Verwerfeinheit 39 setzt einen ersten Bereich 47, der sich von dem Punkt der Fehlererkennung ausreichend weit zurück erstreckt, um alle falsch decodierten Intra-Makroblöcke mit wesentlicher Wahrscheinlichkeit zu erfassen, und setzt einen zweiten Bereich 49, der ausreichend kurz ist, damit nur decodierte Inter-Makroblöcke mit ausreichend hoher Wahrscheinlichkeit, falsch zu sein, verworfen werden. Da der erste Bereich verhältnismäßig lang ist, können einige richtig decodierte Intra-Makroblöcke unnötig ersetzt werden, wobei aber der Betrag der durch diese unnötigen Ersetzungen verursachten Bildverschlechterung klein ist, da Intra-Makroblöcke verhältnismäßig selten auftreten. Da der zweite Bereich verhältnismäßig kurz ist, können einige falsch decodierte Inter-Makroblöcke durchgelassen werden, wobei dies aber ebenfalls nur eine leichte Bildverschlechterung verursacht. Wie in 10 festgestellt ist, sind die meisten decodierten Daten in einem Inter-Makroblock eher aus dem Referenzbild als aus dem codierten Makroblock selbst abgeleitet.
  • Geeignete Regeln für das Setzen des ersten und des zweiten Bereichs können aus einer Simulation abgeleitet werden. Die Regeln können die Werte der decodierten Daten berücksichtigen. Zum Beispiel können Inter-Makroblöcke mit großen Datenwerten mit größerem Argwohn als Inter-Makroblöcke mit kleinen Datenwerten betrachtet werden.
  • Nachfolgend wird anhand des Ablaufplans in 11 die Decodierung einer Gruppe von Blöcken beschrieben.
  • Die Decodierungseinheit 31 decodiert in Schritt S101 einen Makroblock und entscheidet in Schritt S102, ob der Makroblock einen erkennbaren Fehler enthielt. Wenn nicht, werden die decodierten Makroblockdaten in Schritt S103 in dem Momentanbildspeicher 35 gespeichert und wird in Schritt S104 die Codierungsbetriebsart (Intra- oder Inter-) des Makroblocks in dem Betriebsartspeicher 37 aufgezeichnet. Daraufhin entscheidet die Decodierungseinheit 31 in Schritt S105, ob der decodierte Makroblock der letzte Makroblock in der Gruppe von Blöcken war, wobei die Decodierung der Gruppe von Blöcken in diesem Fall endet, oder ob er es nicht war, wobei der Decodierungsprozess in diesem Fall zu Schritt S101 zurückkehrt, um den nächsten Makroblock zu decodieren.
  • Wenn in Schritt S102 ein Fehler erkannt wird, stellt die Decodierungseinheit 31 die Decodierung in Schritt S106 ein und geht dazu über, den nächsten Startcode in dem codierten Datenstrom zu ermitteln. Daraufhin setzt die Verwerfeinheit 39 in Schritt S107 wie oben beschrieben den ersten und den zweiten Bereich. In Schritt S108 verwirft die Decodierungseinheit 31 decodierte Intra-Makroblöcke in dem ersten Bereich und verwirft sie decodierte Inter-Makroblöcke in dem zweiten Bereich. In Schritt S109 ersetzt die Decodierungseinheit 31 die Makroblöcke, die nicht decodiert wurden (Schritt S106) oder die decodiert und verworfen wurden (Schritt S108), durch die entsprechenden Makroblöcke aus dem Referenzbildspeicher 33.
  • Dadurch, dass die erste Ausführungsform dieser Prozedur folgt, verringert sie die Wahrscheinlichkeit eines schweren Bildschadens, der durch falsch decodierte Intra-Makroblöcke verursacht wird, auf ein vernachlässigbares Niveau und verhindert sie die Verwendung von Inter-Makroblöcken, die eine hohe Wahrscheinlichkeit besitzen, falsch decodiert worden zu sein, ohne übermäßig richtig codierte Daten zu opfern.
  • Nachfolgend wird eine zweite Ausführungsform beschrieben. Die zweite Ausführungsform nimmt die Verwendung eines selbst resynchronisierenden Codes mit variabler Länge an. Die Codierungsregeln können sich von den in den 4, 5 und 6 gezeigten unterscheiden. Die Verwendung der in 2 veranschaulichten hierarchischen Schichtstruktur wird weiter angenommen, obgleich dies keine Einschränkung ist.
  • Wenn anhand von 12 bei einem Punkt Y in einer Gruppe von Blöcken ein Fehler erkannt wird, ermöglichen die Eigenschaften des Codes mit variabler Länge, dass die Synchronisation mit den Grenzen der Codewörter mit variabler Länge bei einem Punkt V vor dem nächsten Startcode wieder hergestellt wird. An diesem Punkt V kann die Decodierung wieder aufgenommen werden; nur das schraffierte Segment zwischen den Punkten Y und V ist nicht decodierbar.
  • Üblicherweise wird die Synchronisation richtig wieder hergestellt, jedoch nicht immer; gelegentlich tritt eine falsche Resynchronisation auf. Üblicherweise wird eine falsche Resynchronisation wegen des Auftretens eines neuen Fehlers schnell erkannt, wobei es aber außerdem möglich ist, dass eine falsche Resynchronisation zufällig einige zulässige Codewörter erzeugt und daraufhin durch einen weiteren Zufall in eine richtige Synchronisation gleitet, bevor irgendein neuer Feh ler erkannt wird.
  • Außerdem kann die Synchronisation vor dem Punkt Y tatsächlich verloren gegangen sein. Dementsprechend kann die wahre Situation wie in 13 gezeigt sein, in der ein Fehler beim Punkt X auftritt, bis zum Punkt Y aber nicht erkannt wird, und die Synchronisation am Punkt V falsch wiederhergestellt wird, woraufhin sie beim Punkt W ohne die Erkennung eines neuen Fehlers richtig wiederhergestellt wird. Eine Gruppe von Blöcken wird durch diese Punkte in fünf Segmente geteilt: ein richtig decodiertes Segment 55, ein falsch decodiertes Segment 57, ein nicht decodiertes Segment 59, ein weiteres falsch decodiertes Segment 61 und ein weiteres richtig decodiertes Segment 63.
  • 14 zeigt einen Blockschaltplan eines Bewegtbilddecodierers gemäß der zweiten Ausführungsform, der für äquivalente Teile die gleichen Bezugszeichen wie in 7 verwendet. Der Referenzbildspeicher 33, der Momentanbildspeicher 35 und der Betriebsartspeicher 37 sind gleich den entsprechenden Elementen in der ersten Ausführungsform. Die Decodierungseinheit 31 und die Verwerfeinheit 39 sind bei Unterschieden im Betrieb, die unten erläutert werden, allgemein ähnlich den entsprechenden Elementen in der ersten Ausführungsform. Die Resynchronisationseinheit 65 überwacht den Betrieb des Decodiertes, wenn ein Fehler erkannt wird.
  • 15 veranschaulicht den Betrieb der Verwerfeinheit 39 in der zweiten Ausführungsform. Die Punkte V, W, X und Y trennen die codierte Gruppe von Blöcken wie in 13 in fünf Segmente 55, 57, 59, 61 und 63. Wie in der ersten Ausführungsform setzt die Verwerfeinheit 39, wenn beim Punkt Y ein Fehler erkannt worden ist und der nächste Startcode festgestellt worden ist, einen ersten Bereich 67, der sich vom Punkt Y bis zum Punkt Z1 rückwärts erstreckt, und einen zweiten Bereich 69, der sich vom Punkt Y bis zum Punkt Z2 rückwärts erstreckt. Außerdem setzt die Verwerfeinheit 39 einen dritten Bereich 71 und einen vierten Bereich 73, die sich von dem Resynchronisationspunkt V bis zu den Punkten Z3 bzw. Z4 vorwärts erstrecken.
  • Natürlich werden alle Daten in dem nicht decodierbaren Segment 59 verworfen. Außerdem werden decodierte Intra-Makroblöcke in dem ersten Bereich 67 und in dem vierten Bereich 73 verworfen und werden decodierte Inter-Makroblöcke in dem zweiten Bereich 69 und dem dritten Bereich 71 verworfen. Der dritte Bereich 71 wird aus dem gleichen Grund kleiner als der vierte Bereich 73 gemacht, aus dem der zweite Bereich 69 kleiner als der erste Bereich 67 gemacht wird.
  • Obgleich 15 schematisch den ersten und den vierten Bereich 67 und 73 in der Weise zeigt, dass sie die gleiche Länge haben, ist der vierte Bereich 73 vorzugsweise kürzer als der erste Bereich 67, da das Intervall 61 nicht erkannter Fehler nach dem Punkt V normalerweise nicht vorhanden ist. Aus dem gleichen Grund ist der dritte Bereich 71 vorzugsweise kürzer als der zweite Bereich 69. Wie in der ersten Ausführungsform können Regeln für das Setzen der Bereiche aus einer Simulation abgeleitet werden, wobei die Regeln die Werte der decodierten Daten berücksichtigen können.
  • Nachfolgend wird anhand des Ablaufplans in den 16 und 17 der Betrieb der zweiten Ausführungsform beschrieben.
  • Die Schritte S201 bis S205 in 16 sind gleich den entsprechenden Schritten S101 bis S105 in 11. Solange kein Fehler erkannt wird, decodiert die Decodierungseinheit 31 Makroblöcke einzeln (Schritt S201), ordnet die decodierten Daten in dem Momentanbildspeicher 35 an (Schritt S203) und zeichnet die Betriebsart jedes Makroblocks in dem Betriebsartspeicher 37 auf (Schritt S204).
  • Wenn in Schritt S202 ein Fehler erkannt wird, verzweigt die Verarbeitung zu 17. Die Decodierungseinheit 31 versucht unter der Überwachung der Resynchronisationseinheit 65, die Daten weiter zu decodieren, wobei sie bitweise fortschreitet, bis ein zulässiges Codewort erkannt wird und die Synchronisation wieder hergestellt wird (Schritt S206). Daraufhin weist die Resynchronisationseinheit 65 die Decodierungseinheit 31 an, in die Schleife einzutreten, die die Schritte S207 bis S211 umfasst, die im Wesentlichen gleich den Schritten S101 bis S105 in 11 sind. Solange kein neuer Fehler erkannt wird, decodiert die Decodierungseinheit 31 erneut Makroblöcke einzeln (Schritt S207), ordnet die decodierten Daten in dem Momentanbildspeicher 35 an (Schritt S209) und zeichnet die Betriebsart jedes Makroblocks in dem Betriebsartspeicher 37 auf (Schritt S210).
  • Falls in Schritt S208 ein neuer Fehler erkannt wird, weist die Decodierungseinheit 31 die Resynchronisationseinheit 65 in Schritt S215 an, alle Makroblöcke, die Daten von dem Punkt, bei dem die Synchronisation wiederhergestellt wurde, bis zu dem Punkt des neuen Fehlers enthalten, zu verwerten. Dieser Schritt wird teil weise genommen, um vor einer falschen Resynchronisation zu schützen. Außerdem können je nach dem Weg, auf dem die Makroblöcke codiert werden, dann, wenn in derselben Gruppe von Blöcken zwei Fehler erkannt werden, alle Makroblockdaten zwischen den zwei Fehlern selbst dann unbenutzbar sein, wenn einige der Daten richtig decodiert werden können. Diese Situation kann z. B. wegen der differenziellen Codierung von Makroblockadressen auftreten.
  • Nach Schritt S215 erfolgt eine Rückkehr zu Schritt S206, wobei der Resynchronisationsprozess wiederholt wird.
  • Wenn in Schritt S211 das Ende der Gruppe von Blöcken erkannt wird, setzt die Verwerfeinheit 39 in Schritt S212 den ersten, den zweiten, den dritten und den vierten Bereich. In Schritt S213 verwirft die Decodierungseinheit 31 decodierte Intra-Makroblöcke aus dem ersten Bereich und aus dem vierten Bereich und verwirft sie decodierte Inter-Makroblöcke aus dem zweiten Bereich und aus dem dritten Bereich. In Schritt S214 werden diese verworfenen Makroblöcke in dem Momentanbildspeicher 35 durch die entsprechenden Makroblöcke aus dem Referenzbildspeicher 33 ersetzt. Andere Makroblöcke, die in Schritt S215 verworfen wurden oder nicht decodiert werden konnten, da die Synchronisation verloren gegangen ist, werden ähnlich ersetzt.
  • Daraufhin kehrt der Decodierungsprozess zum unteren Ende von 16 zurück und endet.
  • Je nach dem Weg, auf dem die Makroblöcke codiert werden, können weitere Decodierungsschritte wie etwa ein Schritt zum Wiedergewinnen differenziell decodierter Makroblockadressen durch Rückwärtsarbeiten am Ende der Gruppe von Blöcken notwendig sein. Diese weiteren Schritte sind weggelassen worden, um zu vermeiden, dass die Erfindung durch unbedeutende Einzelheiten verdeckt wird.
  • Die zweite Ausführungsform erweitert die Wirkungen der ersten Ausführungsform, um sowohl das Intervall, bevor der erste Fehler in einer Gruppe von Blöcken erkannt wird, als auch das Intervall nach der letzten Resynchronisation, nach dem letzten erkannten Fehler in der Gruppe von Blöcken, zu erfassen. Das Verwerfen aller Intra-Makroblöcke aus dem ersten und aus dem vierten Bereich verringert die Wahrscheinlichkeit der Verwendung eines falsch decodierten Intra-Makroblocks auf ein vernachlässigbares Niveau. Das Verwerfen aller Inter-Makroblöcke aus dem zweiten und aus dem dritten Bereich vermeidet die Verwendung der decodierten Inter-Makroblöcke, die am wahrscheinlichsten falsch decodiert worden sind, ohne zu viele richtig decodierte Inter-Makroblöcke zu verwerfen.
  • Beim Setzen des ersten, des zweiten, des dritten und des vierten Bereichs in den voran gehenden Ausführungsformen kann die Verwerfeinheit 39 die Entfernung von den Punkten X und V auf verschiedene Weise spezifizieren. In der folgenden dritten und vierten Ausführungsform werden Beispiele gegeben. Die dritte Ausführungsform ist anwendbar, wenn jeder Makroblock einen einzigen, zusammenhängenden Abschnitt in dem Strom codierter Daten belegt, wie es z. B. die Codierungssyntax in 5 besagt. Die vierte Ausführungsform ist anwendbar, wenn ein Makroblock zwei oder mehr nicht zusammenhängende Abschnitte in dem Strom codierter Daten belegen kann.
  • 18 zeigt die relevanten Teile eines Bewegtbilddecodierers gemäß der dritten Ausführungsform. Die Decodierungseinheit 31 und die Verwerfeinheit 39 sind ähnlich den entsprechenden Elementen in der ersten oder zweiten Ausführungsform. Der Codesequenzspeicher 75 speichert Informationen, die die Sequenz spezifizieren, in der Makroblöcke in dem codierten Datenstrom erscheinen. Diese Sequenz ist z. B. die Sequenz, in der die Makroblöcke über einen Kommunikationskanal übertragen wurden.
  • Weitere in der ersten oder zweiten Ausführungsform vorhandene Elemente sind in der dritten Ausführungsform ebenfalls vorhanden, sind aber weggelassen worden, um die Zeichnung zu vereinfachen.
  • 19 veranschaulicht einen Strom codierter Daten in der dritten Ausführungsform, der die Makroblöcke A, B, C und D in der in dem Codesequenzspeicher 75 spezifizierten Reihenfolge zeigt. Jeder Makroblock ist in einem einzigen Abschnitt codierter Daten codiert. Die Decodierungseinheit 31 erkennt beim Punkt Y im Makroblock D einen Fehler, der diesen Makroblock nicht decodierbar macht.
  • Die Verwerfeinheit 39 spezifiziert, dass sich der erste Bereich 47 von dem ersten nicht decodierbaren Makroblock D drei Makroblöcke rückwärts erstreckt. Mit anderen Worten, der Bereich, in dem Intra-Makroblöcke verworfen werden, erfasst die Makroblöcke A, B und C. Der zweite Bereich 49 erstreckt sich von dem ersten nicht decodierbaren Makroblock D nur einen Makroblock rückwärts, so dass der Bereich, in dem Inter-Makroblöcke verworfen werden, nur den Makroblock C enthält. Die durch die Verwerfeinheit 39 an die Decodierungseinheit 31 gegebenen Anweisungen sind z. B., den Block C unbedingt zu verwerten und die Blöcke B und A zu verwerten, falls sie Intra-Makroblöcke sind.
  • Wenn ein selbst resynchronisierender Code genutzt wird, setzt die Verwerfeinheit 39 den dritten und den vierten Bereich ähnlich, wobei sie z. B. die Decodierungseinheit 31 anweist, eine erste Anzahl vollständiger Makroblöcke nach dem Resynchronisationspunkt unbedingt zu verwerten und Intra-Makroblöcke, die unter einer zweiten Anzahl vollständiger Makroblöcke nach dem Resynchronisationspunkt auftreten, zu verwerfen. Die erste Zahl kann null sein.
  • Die dritte Ausführungsform arbeitet wie in den Ablaufplänen für die erste oder zweite Ausführungsform beschrieben unter Hinzufügung eines Schritts des Speicherns der Sequenz, in der Makroblöcke in dem codierten Datenstrom in dem Codesequenzspeicher 75 erscheinen. Dieser Schritt kann z. B. nach dem Schritt S104 in 11 oder nach dem Schritt S204 in 16 oder nach dem Schritt S210 in 17 eingefügt werden. Beim Setzen der Bereiche in den Schritten S107 und 212 nimmt die Verwerfeinheit 39 auf die in dem Codesequenzspeicher 75 gespeicherten Sequenzinformationen Bezug.
  • Die dritte Ausführungsform hat den Vorteil, dass die Verwrefeinheit 39 der Decodierungseinheit 31 einfache Anweisungen erteilen kann, die die Decodierungseinheit 31 leicht ausführen kann. Die Decodierungseinheit 31 und die Verwerfeinheit 39 brauchen die genauen Orte der Punkte Z1, Z2, Z3 und Z4 in dem codierten Datenstrom nicht zu kennen; sie brauchen lediglich die in dem Momentanbildspeicher 35 gespeicherten decodierten Makroblöcke in der in dem Codesequenzspeicher 75 gegebenen Reihenfolge zu zählen.
  • Falls die Makroblöcke in dem codierten Datenstrom immer in der gleichen vorgegebenen Sequenz erscheinen, kann der Codesequenzspeicher 75 weggelassen werden.
  • 20 zeigt die relevanten Teile eines Bilddecodierers gemäß der vierten Ausführungsform. Die Decodierungseinheit 31 und die Verwerfeinheit 39 sind wieder ähnlich den entsprechenden Elementen in der ersten oder zweiten Ausführungsform. Der Codepositionsspeicher 77 speichert Informationen, die die relativen Positionen von Abschnitten codierter Daten spezifizieren, die zu jedem Makroblock in dem empfangenen Strom codierter Bildinformationen gehören. Weitere Elemente, die in der ersten oder zweiten Ausführungsform vorhanden sind, sind in der vierten Ausführungsform ebenfalls vorhanden, zur Vereinfachung der Zeichnung aber weggelassen worden.
  • 21 veranschaulicht einen Teil eines Stroms codierter Daten in der vierten Ausführungsform. Die codierten Daten für jeden Makroblock erscheinen in zwei getrennten Abschnitten, wobei Abschnitte, die zu verschiedenen Makroblöcken gehören, wie gezeigt verschachtelt sind. Beim Punkt Y in Abschnitt C(1) des Makroblocks C wird ein Fehler erkannt.
  • Die Verwerfeinheit 39 setzt einen ersten Bereich, der sich eine bestimmte Anzahl von Codewörtern vor dem Punkt Y bis zu einem Punkt Z1 rückwärts erstreckt, und setzt einen zweiten Bereich, der sich eine kleinere Anzahl von Codewörtern vom Punkt Y bis zu einem Punkt Z2 rückwärts erstreckt. Die Verwerfeinheit 39 weist die Decodierungseinheit 31 mit Bezug auf die in dem Codepositionsspeicher 77 gespeicherten Informationen an, Intra-Makroblöcke, die irgendwelche codierten Daten enthalten, die zwischen dem Punkt Z1 und dem Punkt Y angeordnet sind, zu verwerfen und alle Makroblöcke, die irgendwelche codierten Daten enthalten, die zwischen dem Punkt Z2 und dem Punkt Y angeordnet sind, zu verwerfen. In 21 wird der Makroblock A verworfen, falls er ein Intra-Makroblock ist, während der Makroblock B unbedingt verworfen wird.
  • Wenn ein selbst resynchronisierender Code genutzt wird, entscheidet die Verwerfeinheit 39 auf ähnliche Weise, welche Makroblöcke nach dem Resynchronisationspunkt unbedingt verworfen werden sollten und welche Makroblöcke verworfen sollten, falls sie Intra-Makroblöcke sind.
  • Die vierte Ausführungsform arbeitet wie in den Ablaufplänen für die erste oder zweite Ausführungsform beschrieben unter Hinzufügung eines Schritts des vorübergehenden Speicherns von Abschnitten von Makroblockdaten, bis ein gesamter Makroblock empfangen worden ist, und eines Schritts des Speicherns von relativen Positionsinformationen für die einzelnen Makroblockabschnitte in dem Codepositionsspeicher 77. Diese Schritte können z. B. vor Schritt S101 in 11 oder vor Schritt S201 in 16 und vor Schritt S207 in 17 eingefügt werden. In den Schritten S107 und S212 nimmt die Verwerfeinheit 39 auf die in dem Codepositionsspeicher 77 gespeicherten Informationen Bezug. Der Codepositionsspeicher 77 kann außerdem als ein temporärer Speicher für Makroblockdaten verwendet werden, die auf die Decodierung warten.
  • Die vierte Ausführungsform hat wie die dritte Ausführungsform den Vorteil, dass die Verwerfeinheit 39 der Decodierungseinheit 31 einfache Anweisungen erteilen kann, die die Decodierungseinheit 31 leicht ausführen kann.
  • Obgleich die vorstehenden Ausführungsformen in Bezug auf die in 2 gezeigte Schichtstruktur von Makroblöcken und Gruppen von Blöcken beschrieben worden sind, ist die Erfindung nicht auf diese besondere Struktur beschränkt. Die vorstehenden Ausführungsformen können mit irgendeinem Codierungsschema genutzt werden, das ein Bild auf irgendeine Weise in getrennte Bereiche teilt und auf bereichsweiser Grundlage zwischen den Intra- und Inter-Codierungsbetriebsarten auswählt.
  • Der codierte Datenstrom braucht keine eingebetteten Startcodes zu enthalten. Die Synchronisation kann mit anderen Einrichtungen, einschließlich Einrichtungen in einer tieferen Schicht als der Schicht der codierten Daten, hergestellt werden.
  • Die Erfassung von Fehlern ist nicht auf die Erfassung unzulässiger Codewörter beschränkt. Zum Beispiel können auch Syntaxfehler erfasst werden und Paritätsbits oder andere Fehlererfassungscodes genutzt werden.
  • Die vorstehenden Ausführungsformen sind nur eine Veranschaulichung des erfindungsgemäßen Konzepts des Verwerfens decodierter Bilddaten, die Daten, die durch einen Fehler unbenutzbar gemacht wurden, vorhergehen oder nachfolgen. Dieses Konzept kann unabhängig von der Anzahl oder von den Typen verschiedener Codierungs- und Decodierungsbetriebsarten angewendet werden. Zum Beispiel kann die Erfindung verwirklicht werden, wenn alle Bilddaten in der Intra-Betriebsart codiert sind. Außerdem kann die Erfindung mit mehr als zwei verschiedenen Betriebsarten verwirklicht werden, wobei für das Verwerten von in jeder Betriebsart decodierten Daten ein anderer Bereich gesetzt wird.
  • Die Erfindung kann in Hardware, in Software oder in einer Kombination davon verwirklicht werden.
  • Der Fachmann auf dem Gebiet erkennt, dass weitere Änderungen vorgenommen werden können.

Claims (14)

  1. Verfahren zum Decodieren eines ein Bewegtbild darstellenden codierten Datenstroms, wenn ein erstes Segment (45, 59) des codierten Datenstroms offensichtlich nicht decodiert werden kann, um wegen eines auf einem Übertragungsmedium auftretenden Fehlers ein korrektes Bewegtbild zu erhalten, wobei das Verfahren umfasst: – Definieren eines zweiten Segments (47, 49, 67, 69, 71, 73) des codierten Datenstroms, das zu dem ersten Segment benachbart ist, als ein verwerfbares Segment, wobei sich das zweite Segment unabhängig davon, ob es decodiert oder nicht decodiert werden kann, über eine bei dem ersten Segment beginnende vorgeschriebene Länge erstreckt; und – Verwenden von Daten, die aus Teilen des codierten Datenstroms decodiert worden sind, die von dem ersten und von dem zweiten Segment (45, 47, 49, 67, 69, 71, 73) verschieden sind, anstelle von Daten, die aus dem ersten und dem zweiten Segment decodiert worden sind.
  2. Verfahren nach Anspruch 1, bei dem das erste Segment (45, 59) an einem Punkt (Y) beginnt, an dem der Fehler erkannt wird, und das zweite Segment (47, 49, 67, 69) diesem Punkt vorhergeht.
  3. Verfahren nach Anspruch 1, bei dem der codierte Datenstrom unter Verwendung eines selbst resynchronisierenden Codes mit variabler Länge codiert ist, wobei das erste Segment (59) an einem Resynchronisationspunkt (V) endet und das zweite Segment (71, 73) dem Resynchronisationspunkt (V) folgt.
  4. Verfahren nach Anspruch 1, bei dem der codierte Datenstrom auf mehrere Betriebsarten codiert ist und das zweite Segment (47, 49, 67, 69, 71, 73) in unterschiedlichen der mehreren Betriebsarten unterschiedliche Längen besitzt.
  5. Verfahren nach Anspruch 4, bei dem die mehreren Betriebsarten eine Inter-Betriebsart und eine Intra-Betriebsart umfassen und die Definitionsoperation ferner umfasst: Setzen eines ersten Bereichs (47, 67, 73), der an das nicht decodierte Segment angrenzt, in dem decodierte Daten, die in der Intra-Betriebsart codiert wurden, verworfen werden; und Setzen eines zweiten Bereichs (49, 69, 71), der kleiner als der erste Bereich ist und ebenfalls an das nicht decodierte Segment angrenzt, in dem decodierte Daten, die in der Inter-Betriebsart codiert wurden, verworfen werden.
  6. Verfahren nach Anspruch 1, bei dem das Bewegtbild in einer Reihe von Abschnitten (27) codiert ist, die Daten für entsprechende Bildbereiche (A, B, C, D) enthalten, wobei die Daten für jeden Bildbereich in einem einzigen Abschnitt (27) enthalten sind, und bei dem die Definitionsoperation ferner das Spezifizieren einer bestimmten Anzahl der Bildbereiche umfasst.
  7. Verfahren nach Anspruch 1, bei dem das Bewegtbild in einer Reihe von Abschnitten (A(1), B(1), A(2), B(2), ...) codiert ist, die Daten für unterschiedliche Bildbereiche (A, B, ...) enthalten, wobei die Daten für jeden Bildbereich in mehreren nicht zusammenhängenden Abschnitten (A(1), A(2) oder B(1), B(2)) enthalten sind, und wobei die Definitionsoperation ferner umfasst: Setzen eines Bereichs (47, 49, 67, 69, 71, 73) codierter Daten, der an das erste Segment (45, 59) angrenzt; und Verwerfen aller decodierten Daten, die zu allen Bildbereichen (A, B, ...) gehören, die irgendwelche codierte Daten in dem Bereich (47, 49, 67, 69, 71, 73) besitzen.
  8. Bewegtbild-Decodierer zum Decodieren eines ein Bewegtbild darstellenden codierten Datenstroms, wobei der codierte Datenstrom von einem Bildcodierer über ein Übertragungsmedium empfangen wird, wobei der Bewegtbild-Decodierer eine Decodierungseinheit (31) aufweist, die so betreibbar ist, dass sie den codierten Datenstrom decodiert und Fehler in dem codierten Datenstrom erfasst, und einen Bildspeicher (35) aufweist, der mit der Decodierungseinheit gekoppelt ist, wobei der Bildspeicher so betreibbar ist, dass er decodierte Daten speichert, die durch die Decodierungseinheit erzeugt werden, wobei der Bewegtbild-Decodierer außerdem umfasst: eine Verwerfeinheit (39), die mit der Decodierungseinheit (31) gekoppelt ist und arbeitet, wenn ein von der Decodierungseinheit erfasster Fehler ein nicht decodiertes Segment (45, 59) des codierten Datenstroms unbenutzbar macht, wobei die Verwerfeinheit so betreibbar ist, dass sie einen Bereich von vermutlich nicht korrekten decodierten Daten (47, 49, 67, 69, 71, 73), der an das nicht decodierte Segment in dem codierten Datenstrom angrenzt, setzt, die Decodierungseinheit (31) dazu veranlasst, die decodierten Daten in dem Bereich aus dem Bildspeicher (35) zu verwerten und die Decodierungseinheit dazu veranlasst, die somit verworfenen decodierten Daten und das nicht decodierte Segment (49, 59) durch die Verwendung anderer decodierter Daten zu ersetzen.
  9. Bewegtbild-Decodierer nach Anspruch 8, bei dem das nicht decodierte Segment (45, 59) an einem Punkt (X, Y) beginnt, an dem der Fehler erkannt wird, und die Verwerfeinheit (39) die Decodierungseinheit (31) dazu veranlasst, decodierte Daten, die dem Punkt (X, Y) vorhergehen, zu verwerfen.
  10. Bewegtbild-Decodierter nach Anspruch 8, bei dem der codierte Datenstrom unter Verwendung eines selbst resynchronisierenden Codes mit variabler Länge codiert ist, das nicht decodierte Segment (59) an einem Resynchronisationspunkt (V) endet und die Verwerfeinheit (39) die Decodierungseinheit (31) dazu veranlasst, decodierte Daten, die dem Resynchronisationspunkt (V) folgen, zu verwerfen.
  11. Bewegtbild-Decodierter nach Anspruch 8, bei dem der codierte Datenstrom in mehreren Betriebsarten codiert ist und die Verwerfeinheit (39) einen getrennten Bereich zum Verwerten decodierter Daten, die in jeder der mehreren Betriebsarten codiert wurden, setzt.
  12. Bewegtbild-Decodierer nach Anspruch 11, bei dem die mehreren Betriebsarten eine Inter-Betriebsart und eine Intra-Betriebsart umfassen, wobei die Verwerfeinheit (39) einen ersten Bereich (47, 67, 73) setzt, in dem decodierte Daten verworfen werden, die in der Intra-Betriebsart codiert wurden, und die Verwerfeinheit einen zweiten Bereich (49, 69, 71), der kleiner als der erste Bereich (47, 67, 73), in dem decodierte Daten, die in der Intra-Betriebsart codiert wurden, verworfen werden, setzt, wobei sowohl der erste Bereich (47, 67, 73) als auch der zweite Bereich (49, 69, 71) an das nicht decodierte Segment (45, 59) angrenzen.
  13. Bewegtbild-Decodierter nach Anspruch 8, bei dem das Bewegtbild in eine Reihe von Abschnitten (27) codiert ist, die Daten für entsprechende Bildbereiche (A, B, C, D) enthalten, wobei die Daten für jeden Bildbereich in einem einzigen Abschnitt (27) enthalten sind, und bei dem die Verwerfeinheit (39) den Bereich (47, 49, 67, 69, 71, 73) durch Spezifizieren, dass decodierte Daten für eine bestimmte Anzahl der Bildbereiche (A, B, C, D) verworfen werden sollen, setzt.
  14. Bewegtbild-Decodierer nach Anspruch 8, bei dem das Bewegtbild in einer Reihe von Abschnitten (A(1), B(1), A(2), B(2), ...) codiert ist, die Daten für unterschiedliche Bildbereiche (A, B, ...) enthalten, wobei die Daten für jeden Bildbereich (A, B, ...) in mehreren nicht zusammenhängenden Abschnitten (A(1), A(2) oder B(1), B(2)) enthalten sind und wobei die Verwerfeinheit (39) die Decodierungseinheit (31) dazu veranlasst, alle decodierten Daten, die zu allen Bildbereichen (A, B, ...) gehören, die irgendwelche decodierten Daten in dem Bereich (47, 49, 67, 69, 71, 73) besitzen, zu verwerfen.
DE1998634681 1997-03-18 1998-03-17 Verfahren und Vorrichtung zur Dekodierung komprimierter Bewegtbilddaten Expired - Lifetime DE69834681T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP6439897A JP3053781B2 (ja) 1997-03-18 1997-03-18 動画像圧縮符号の復号方法及び復号装置
JP6439897 1997-03-18

Publications (2)

Publication Number Publication Date
DE69834681D1 DE69834681D1 (de) 2006-07-06
DE69834681T2 true DE69834681T2 (de) 2007-05-31

Family

ID=13257182

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1998634681 Expired - Lifetime DE69834681T2 (de) 1997-03-18 1998-03-17 Verfahren und Vorrichtung zur Dekodierung komprimierter Bewegtbilddaten

Country Status (6)

Country Link
US (1) US6658153B1 (de)
EP (1) EP0866623B1 (de)
JP (1) JP3053781B2 (de)
KR (1) KR100370933B1 (de)
CN (1) CN1136729C (de)
DE (1) DE69834681T2 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996623B1 (en) * 1999-09-08 2006-02-07 Matsushita Electric Industrial Co., Ltd. Reception display apparatus and method for displaying screen partially with certain timing even when all data for the screen has not been received, and computer-readable record medium recording such reception display program
US7224840B2 (en) * 2000-10-26 2007-05-29 International Business Machines Corporation Method, system, and program for error recovery while decoding compressed data
TW533738B (en) * 2000-10-31 2003-05-21 Matsushita Electric Ind Co Ltd Received information record/regenerate method and received information record/regenerate device
US20030118102A1 (en) * 2000-11-10 2003-06-26 Weiping Li Encoding and decoding of truncated scalable bitstreams
KR100372525B1 (ko) * 2000-11-13 2003-02-19 (주)아이디스 네트워크상에서 음성 및 영상 데이터 전송 장치 및 그 방법
CN1167271C (zh) * 2001-01-10 2004-09-15 华为技术有限公司 压缩编码图像传输中的误码处理方法
US6778610B2 (en) * 2001-03-02 2004-08-17 Redrock Semiconductor, Ltd. Simultaneous search for different resync-marker patterns to recover from corrupted MPEG-4 bitstreams
US6728318B2 (en) * 2001-03-02 2004-04-27 Redrock Semiconductor, Ltd. Error recovery of corrupted MPEG-4 bitstreams using fuzzy decoding of start codes and resync markers
EP2804325B1 (de) * 2001-08-31 2017-10-04 Panasonic Intellectual Property Corporation of America Bilddecodierungsverfahren und Decodierungsvorrichtung
JP2006060813A (ja) * 2004-08-20 2006-03-02 Polycom Inc ビデオデコーダにおける誤り隠蔽
US20060045190A1 (en) * 2004-09-02 2006-03-02 Sharp Laboratories Of America, Inc. Low-complexity error concealment for real-time video decoder
KR100678050B1 (ko) * 2004-10-27 2007-02-02 삼성전자주식회사 이동 통신 시스템에서 영상 데이터를 송수신하기 위한장치 및 방법
JP2011010091A (ja) * 2009-06-26 2011-01-13 Toshiba Corp 出力情報制御装置および出力情報制御方法
US8819525B1 (en) 2012-06-14 2014-08-26 Google Inc. Error concealment guided robustness

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5253053A (en) * 1990-12-31 1993-10-12 Apple Computer, Inc. Variable length decoding using lookup tables
US5168356A (en) 1991-02-27 1992-12-01 General Electric Company Apparatus for segmenting encoded video signal for transmission
US5455629A (en) * 1991-02-27 1995-10-03 Rca Thomson Licensing Corporation Apparatus for concealing errors in a digital video processing system
DE69233530T2 (de) * 1991-04-10 2006-05-11 Mitsubishi Denki K.K. Kodierer und Dekodierer
US5428396A (en) * 1991-08-03 1995-06-27 Sony Corporation Variable length coding/decoding method for motion vectors
JPH064326A (ja) 1992-06-18 1994-01-14 Sanyo Electric Co Ltd エラー訂正装置
US5565921A (en) * 1993-03-16 1996-10-15 Olympus Optical Co., Ltd. Motion-adaptive image signal processing system
JP3153390B2 (ja) 1993-07-02 2001-04-09 沖電気工業株式会社 動画像復号化装置
US5617333A (en) * 1993-11-29 1997-04-01 Kokusai Electric Co., Ltd. Method and apparatus for transmission of image data
JP2935956B2 (ja) 1994-06-29 1999-08-16 沖電気工業株式会社 動画像復号化装置
JP3164971B2 (ja) * 1994-07-15 2001-05-14 日本電気株式会社 画像再生装置
JPH08154247A (ja) 1994-09-29 1996-06-11 Sanyo Electric Co Ltd 圧縮画像データ処理装置及び方法
JP3474005B2 (ja) * 1994-10-13 2003-12-08 沖電気工業株式会社 動画像符号化方法及び動画像復号方法
US5809173A (en) * 1995-04-18 1998-09-15 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression using previous frame DCT coefficients
US5784494A (en) * 1995-04-18 1998-07-21 Advanced Micro Devices, Inc. Method and apparatus for prestoring dequantization information for DCT VLC decoding
US5818967A (en) * 1995-06-12 1998-10-06 S3, Incorporated Video decoder engine
JP3630474B2 (ja) * 1995-07-14 2005-03-16 沖電気工業株式会社 動画像伝送システム及び動画像伝送装置
JP3157101B2 (ja) * 1996-03-08 2001-04-16 沖電気工業株式会社 画像符号化方法及び画像符号化装置
US5847776A (en) * 1996-06-24 1998-12-08 Vdonet Corporation Ltd. Method for entropy constrained motion estimation and coding of motion vectors with increased search range
US5831690A (en) * 1996-12-06 1998-11-03 Rca Thomson Licensing Corporation Apparatus for formatting a packetized digital datastream suitable for conveying television information
US5910827A (en) * 1997-02-26 1999-06-08 Kwan; Katherine W. Video signal decoding arrangement and method for improved error concealment
US5956429A (en) * 1997-07-31 1999-09-21 Sony Corporation Image data compression and decompression using both a fixed length code field and a variable length code field to allow partial reconstruction

Also Published As

Publication number Publication date
CN1196640A (zh) 1998-10-21
DE69834681D1 (de) 2006-07-06
EP0866623A3 (de) 2001-02-07
EP0866623A2 (de) 1998-09-23
EP0866623B1 (de) 2006-05-31
CN1136729C (zh) 2004-01-28
US6658153B1 (en) 2003-12-02
JPH10262243A (ja) 1998-09-29
KR19980080089A (ko) 1998-11-25
KR100370933B1 (ko) 2003-04-21
JP3053781B2 (ja) 2000-06-19

Similar Documents

Publication Publication Date Title
DE69726670T2 (de) Bildkoder, Bilddekoder und Bildübertragungssystem
DE4205898B4 (de) Anordnung zum Rekombinieren von gemäß einer Rangordnung aufgeteilten Fernsehdaten
DE69632391T2 (de) Verfahren und gerät zur fehlerkontrolle bei der videokompression
DE69834681T2 (de) Verfahren und Vorrichtung zur Dekodierung komprimierter Bewegtbilddaten
DE60020243T2 (de) Videokodierung
DE69637068T2 (de) System zur Dekodierung von bewegten Bildern
DE69333818T2 (de) Verfahren und Vorrichtung zur Bilddatenkodierung
DE69233530T2 (de) Kodierer und Dekodierer
JP3474005B2 (ja) 動画像符号化方法及び動画像復号方法
DE69633838T2 (de) Kodierung und Dekodierung von Bewegtbildern
DE69435000T2 (de) Bildkodierungsvorrichtung
DE69917971T2 (de) Verfahren und Vorrichtung zur Verarbeitung von komprimierten Videodatenströmen
DE4233543B4 (de) Vorrichtung zur Steuerung der Quantisierung von Videodaten
DE69630173T2 (de) Übertragungssystem und -einrichtung für sich bewegende Bilder
DE69730965T2 (de) Videosignalkompression
DE69822975T2 (de) Gerät und verfahren zum kodieren/dekodieren von bewegtbildern und speichermedium zum speichern kodierter bewegtbilddaten
DE60027495T2 (de) Video-codierverfahren und video-codiervorrichtung
DE60123168T2 (de) MPEG-Dekoder
DE69738176T2 (de) Videodekodierer
DE69535710T2 (de) Dekodierer variabler Länge für bitgestopfte Daten
DE69434395T2 (de) Kodierung und/oder Dekodierung von sich bewegenden Bildern
EP0752789B1 (de) Verfahren, Encoder und Decoder zur Resynchronisierung auf einen fehlerbehafteten Videodatenstrom
DE69636529T2 (de) Verfahren zum Kodieren und Dekodieren von Bewegtbildsignalen
DE69735835T2 (de) Dekodierer variabler Länge und Verfahren zur Dekodierung zweier Kodewörter pro Takt
DE19952685B4 (de) Verfahren und Apparat für die Übertragung von Videosignalen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition