DE69838224T2 - Quellenkodierung für robuste fehlerbeseitigung während übertragungsverlust - Google Patents

Quellenkodierung für robuste fehlerbeseitigung während übertragungsverlust Download PDF

Info

Publication number
DE69838224T2
DE69838224T2 DE69838224T DE69838224T DE69838224T2 DE 69838224 T2 DE69838224 T2 DE 69838224T2 DE 69838224 T DE69838224 T DE 69838224T DE 69838224 T DE69838224 T DE 69838224T DE 69838224 T2 DE69838224 T2 DE 69838224T2
Authority
DE
Germany
Prior art keywords
signal
bits
block
data
coded
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
DE69838224T
Other languages
English (en)
Other versions
DE69838224D1 (de
Inventor
Tetsujiro Tokyo KONDO
Yasuhiro Cupertino FUJIMORI
James C. San Jose CARRIG
Sugata San Jose GHOSAL
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.)
Sony Electronics Inc
Original Assignee
Sony Electronics Inc
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
Priority claimed from US09/016,083 external-priority patent/US6581170B1/en
Application filed by Sony Electronics Inc filed Critical Sony Electronics Inc
Application granted granted Critical
Publication of DE69838224D1 publication Critical patent/DE69838224D1/de
Publication of DE69838224T2 publication Critical patent/DE69838224T2/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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
    • 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/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
    • H04N19/895Methods 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 in combination with error concealment
    • 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/98Adaptive-dynamic-range coding [ADRC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/21Circuitry for suppressing or minimising disturbance, e.g. moiré or halo

Description

  • Hintergrund der Erfindung
  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf das Bereitstellen einer robusten Fehlerbeseitigung aufgrund von Datenverlusten, die während der Übertragung von Signalen vorkommen. Insbesondere bezieht sich die vorliegende Erfindung auf ein Datenmischverfahren, welches verwendet wird, um eine robuste Fehlerbeseitigung zu erleichtern.
  • Technischer Hintergrund
  • Es existiert eine Anzahl von Verfahren, um verlorene Daten aufgrund von Zufallsfehlern wiederherzustellen, die während der Signalübertragung vorkommen. Diese Verfahren können jedoch nicht den Verlust aufeinanderfolgender Datenpakete handhaben. Der aufeinanderfolgende Verlust von Datenpaketen wird beim Stand der Technik als Burstfehler beschrieben. Burstfehler haben ein rekonstruiertes Signal mit einer solchen verschlechterten Qualität zur Folge, dass dies für den Endbenutzer leicht offensichtlich ist. Zusätzlich verschlimmern die verwendeten Kompressionsverfahren, die verwendet werden, um Hochgeschwindigkeitskommunikation zu erleichtern, die Signalverschlechterung, welche durch Burstfehler verursacht wird, was zur Verschlechterung des rekonstruierten Signals beiträgt. Ein Beispiel eines Burstfehlerverlustes, der übertragene und/oder gespeicherte. Signale beeinträchtigt, erkennt man bei hochauflösenden Fernsehsignalen ("HDTV") und mobilen Telekommunikationsanwendungen, wo Kompressionsverfahren eine wichtige Rolle spielen.
  • Das Erscheinen von HDTV hat zu Fernsehsystemen mit einer viel höheren Auflösung geführt als bei den aktuellen Standards, welche durch National Television Systems Committee ("NTSC") vorgeschlagen wurden. Die vorgeschlagenen HDTV-Signale sind überwiegend digital. Wenn folglich ein Farbfernsehsignal für digitale Verwendung umgesetzt wird, ist es üblich, dass die Luminanz- und Chrominanzsignale unter Verwendung von acht Bits digitalisiert werden. Die digitale Übertragung von Farbfernsehen erfordert eine nominale Bitrate von 216 Megabits pro Sekunde. Die Übertragungsrate ist für HDTV größer, was nominal ungefähr 1200 Megabits pro Sekunde erfordern würde. Diese hohen Übertragungsraten liegen stark jenseits der Bandbreiten, welche durch drahtlose Kommunikationsstandards unterstützt werden. Folglich ist ein effizientes Kompressionsverfahren erforderlich.
  • Kompressionsverfahren spielen außerdem eine wichtige Rolle bei mobilen Telekommunikationsanwendungen. Üblicherweise werden Datenpakete zwischen entfernt liegenden Endgeräten bei mobilen Telekommunikationsanwendungen übertragen. Die begrenzte Anzahl von Übertragungskanälen bei mobiler Kommunikation erfordert eine effektive Kompression vor der Übertragung der Pakete. Eine Anzahl von Kompressionsverfahren ist verfügbar, um hohe Übertragungsraten zu erleichtern.
  • Adaptive dynamische Bereichscodierung ("ADRC") und diskrete Kosinustransformationscodierung ("DCT") liefern Bildkompressionsverfahren, die beim Stand der Technik bekannt sind. Beide Verfahren nehmen den Vorteil lokaler Korrelation innerhalb eines Bilds in Anspruch, um ein hohes Kompressionsverhältnis zu erreichen. Ein wirksamer Kompressionsalgorithmus hat jedoch eine gesteigerte Fehlerausbreitung zur Folge, da Fehler in einem codierten Signal auffallender sind, wenn dieses nachfolgend decodiert wird. Diese Fehlermultiplikation hat ein verschlechtertes Videobild zur Folge, welches für den Benutzer schnell deutlich wird.
  • Ein digitaler Videobandrekorder ist in der EP-A 0 596 826 offenbart, bei dem ein Verschachtelungs-/Entschachtelungsbereich komprimierter Bilddaten restriktiv gemäß einer vorher festgelegten Maximalgeschwindigkeit bestimmt wird, wobei das Verschachteln/Entschachteln innerhalb des eingeschränkten Verschachtelungs-/Entschachtelungsbereichs durchgeführt wird. Burstfehler und zufällige Fehler können effektiv verarbeitet und korrigiert werden. Beim Aufzeichnen und bei der Wiedergabe werden die komprimierten Bilddaten pro Datensegment in Zickzack-Form gescannt, und danach wird die Datensequenz des zugeführten Datensegments geändert, was eine Verschachtelung zur Folge hat, bei der die Datenkontinuität beibehalten wird.
  • Überblick über die Erfindung
  • Ein Verfahren zur Quellencodierung eines Signals wird beschrieben. Insbesondere wird ein Signal, welches Mehrfachsignalelemente aufweist, verarbeitet. Jedes Signalelement wird codiert, um einen Bitstrom zu bilden. Die Bits innerhalb eines bestimmten Bitstroms werden über unterschiedliche Bitströme verteilt. Somit werden die Parameter, welche Komponenten der Segmentelemente beschreiben, über die unterschiedlichen Bitströme verteilt. Die Verteilungsschritte haben eine Fehlerverteilung über Mehrfachebenen zur Folge. Wenn daher die Verteilungsschritte durch den Decoder umgekehrt werden, wird ein Burstübertragungsfehler zu einem verteilten Satz lokalisierter Verluste.
  • Ein weiteres Verfahren wird außerdem für einen Mehrfachebenen-Mischprozess beschrieben. Ein Signal ist als Mehrfachebene definiert, wobei jede Ebene mehrere Rahmen, mehrere Pixel und mehrere Bits aufweist. Bei einer Ausführungsform tritt das Mischen auf jeder Ebene und zwischen Ebenen auf. Das Mehrfachebenenmischen verursacht einen Burstfehlerverlust, der über Mehrfachebenen verteilt ist, wodurch die Bildrekonstruktion dieser Bereiche des Bilds, in welchen der Verlust aufgetreten ist, erleichtert wird.
  • Kurzbeschreibung der Zeichnungen
  • Die Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden dem Fachmann im Hinblick auf die folgende ausführliche Beschreibung deutlich, in denen:
  • 1 allgemein die Prozesse zur Signalcodierung, Übertragung und Decodierung zeigt;
  • 2 eine Ausführungsform einer Paketstruktur zeigt;
  • 3 ein Flussdiagramm ist, welches eine Ausführungsform des Codierprozesses gemäß der Lehre der vorliegenden Erfindung zeigt;
  • 4 ein Flussdiagramm ist, welches eine Ausführungsform des Decodierprozesses gemäß der Lehre der vorliegenden Erfindung zeigt;
  • 5 eine Ausführungsform einer Bild-Block-Abbildung gemäß der Lehre der vorliegenden Erfindung zeigt;
  • 5a eine Ausführungsform eines Mischmusters zeigt, welches bei der Bild-Block-Abbildung verwendet wird;
  • 6 eine Darstellung von beispielhaften komplementären und ineinandergreifenden Blockstrukturen ist;
  • 7a, 7b, 7c, 7d eine Ausführungsform von Mischmustern für Y-Blöcke innerhalb eines Rahmensatzes zeigen;
  • 8 eine Darstellung einer Ausführungsform kumulativer DR-Verteilung für den Puffer 0 ist;
  • 8a eine Darstellung einer Ausführungsform eines partiellen Pufferprozesses gemäß der Lehre der vorliegenden Erfindung ist;
  • 9 eine Ausführungsform des Intrapuffer-YUV-Blockmischprozesses gemäß der Lehre der vorliegenden Erfindung zeigt;
  • 10 eine Ausführungsform des Intragruppen-VL-Datenmischprozesses gemäß der Lehre der vorliegenden Erfindung zeigt;
  • 11 eine Ausführungsform der Q-Code-Verkettung innerhalb einer 3-Block-Gruppe gemäß der Lehre der vorliegenden Erfindung zeigt;
  • 11a eine Ausführungsform der Q-Code-Verkettung für Rahmenpaare zeigt, welche Bewegungsblöcke umfassen, gemäß der Lehre der vorliegenden Erfindung;
  • 12 eine Ausführungsform eines Pixeldatenfehlers zeigt, der durch einen 1/6-Burstfehlerverlust verursacht wird;
  • 12a eine Ausführungsform zum Mischen von Q-Codes und zum Verteilen von Q-Code-Bits gemäß der Lehre der vorliegenden Erfindung zeigt;
  • 12b eine Ausführungsform eines Pixeldatenfehlers zeigt, der durch einen 1/6-Burstfehlerverlust umverteilter Q-Codes verursacht wird;
  • 12c eine Ausführungsform eines Pixeldatenfehlers zeigt, der durch einen 1/6-Burstfehlerverlust wiederzugeordneter Q-Codes verursacht wird;
  • 13 eine Ausführungsform eines MIN-Mischens gemäß der Lehre der vorliegenden Erfindung zeigt;
  • 13a eine Ausführungsform des Bewegungsflag-Mischens und eines Festlangen-Datenverlustes in einem Rahmenpaar zeigt;
  • 14 eine Ausführungsform eines modularen Mischens zeigt; 14a eine Ausführungsform eines modularen Mischergebnisses und des Festlangen-Datenverlustes in Verbindung mit dem modularen Mischen zeigt;
  • 14b eine alternative Ausführungsform eines modularen Mischergebnisses und des Festlangen-Datenverlustes in Verbindung mit dem modularen Mischen zeigt;
  • 14c eine alternative Ausführungsform eines modularen Mischergebnisses und des Festlängen-Datenverlustes in Verbindung mit dem modularen Mischen zeigt;
  • 15 eine Ausführungsform des variablen Längendatenpufferns in einem Rahmensatz zeigt;
  • 16 eine Ausführungsform des Intersegment-VL-Datenmischens gemäß der Lehre der vorliegenden Erfindung zeigt;
  • 17 ein Flussdiagramm ist, welches allgemein eine Ausführungsform des Datenwiederherstellungsprozesses der vorliegenden Erfindung zeigt;
  • 18 ein Flussdiagramm einer Ausführungsform des Q-Bit- und Bewegungs-Flag-Wiederherstellungsprozesses der vorliegenden Erfindung ist;
  • 19 eine Tabelle ist, welche eine Ausführungsform von Kandidatendecodierungen zeigt;
  • 20a, 20b, 20c, 20d Ausführungsformen von Messungen zeigen, welche bei dem Q-Bit- und Bewegungs-Flag-Wiederherstellungsprozess von 18 genutzt werden;
  • 21 eine Ausführungsform einer Tabelle zeigt, welche verwendet wird, um eine Quadratfehler-Wahrscheinlichkeitsfunktion zu bestimmen, welche bei dem Q-Bit- und Bewegungs-Flag-Wiederherstellungsprozess von 18 genutzt wird;
  • 22 eine Ausführungsform eines Q-Bit- und Bewegungs-Flag- und Hilfsinformations-Wiederherstellungsprozesses gemäß der Lehre der vorliegenden Erfindung zeigt;
  • 23 die Verwendung einer Post-Ambel in einer Ausführungsform eines bidirektionalen Q-Bit- und Bewegungs-Flag-Wiederherstellungsprozesses zeigt;
  • 24a, 24b und 24c eine alternative Ausführungsform zum Auswerten von Kandidatendecodierungen zeigen;
  • 25 die Verwendung von Stetigkeitsmessungen gemäß der Lehre einer Ausführungsform der vorliegenden Erfindung zeigt;
  • 26a, 26b, 26c, 26d und 26e eine alternative Ausführungsform eines Prozesses zum Auswerten von Kandidatendecodierungen zeigen;
  • 27a einen alternativen Prozess zum Auswerten von Kandidatendecodierungen zeigt; und 27b eine Ausführungsform zum Bestimmen von Wichtungsergebnissen zeigt.
  • Ausführliche Beschreibung
  • Die vorliegende Erfindung liefert ein Verfahren zum Codieren und zum Anordnen eines Signaldatenstroms, um eine robuste Fehlerbeseitigung zu liefern. In der folgenden Beschreibung sind aus Erläuterungszwecken zahlreiche Details gezeigt, um ein gründliches Verstehen der vorliegenden Erfindung zu liefern. Es wird jedoch für den Fachmann deutlich werden, dass diese spezifischen Details nicht erforderlich sind, um die vorliegende Erfindung auszuüben. In weiteren Fällen sind bekannte elektrische Strukturen und Schaltungen in Blockdiagrammform gezeigt, um die vorliegende Erfindung nicht unnötigerweise zu verbergen.
  • Die Signalverarbeitungsverfahren und Strukturen werden von der Perspektive einer Ausführungsform aus beschrieben, bei der die Signale Videosignale sind. Es ist jedoch beabsichtigt, dass die Verfahren und die Vorrichtung, die hier beschrieben wurden, auf eine Vielzahl von Arten von Signalen anwendbar sind, einschließlich von Audiosignalen und anderen digitalen Datenbitströmen, wo jedes Signal aus Mehrfach-Signalementen zusammengesetzt ist. Außerdem nutzt die Ausführungsform des hier beschriebenen Prozesses den adaptiven dynamischen Bereichscodierprozess ("ADRC"), um die Daten zu komprimieren; es können jedoch eine Vielzahl von Codierverfahren und Algorithmen verwendet werden. Zwecks weiterer Erläuterung sei hingewiesen auf ADRC "Adaptive Dynamic Range Coding Scheme for Future HDTV Digital VTR", Kondo Fujimori und Nakaya, Fourth International Workshop an HDTV und Beyond, 4–6. September 1991, Turin, Italien.
  • In der obigen Veröffentlichung werden drei unterschiedliche Arten von ADRC erläutert. Diese werden gemäß den folgenden Gleichungen erzielt: Nicht-Flanken-Anpassungs-ADRC:
    Figure 00060001
    Flankenanpasungs-ADRC:
    Figure 00070001
    Multistufen-ADRC:
    Figure 00070002
    wobei MAX' der gemittelte Werte von x' im Fall von q = 2Q – 1;
    MIN' der gemittelte Wert von x' im Fall von q = 0; und
    Figure 00070003
    wobei Max die maximale Ebene eines Blocks zeigt, MIN die minimale Ebene eines Blocks zeigt, x die Signalebene jeder Probe zeigt, Q die Anzahlvon Quantisierungsbits zeigt, q den Quantisierungscode (codierte Daten) zeigt, x' die decodierte Ebene jeder Probe zeigt und die [] eine Trunkation-Operation zeigt, die in Bezug auf den Wert innerhalb der [] durchgeführt wird.
  • Die Signalcodierungs-, Übertragungs- und nachfolgenden Decodierprozesse sind allgemein in 1 gezeigt. Das Signal 100 ist ein Datenstrom, der dem Codierer 110 zugeführt wird. Dem Codierer 110 folgt der adaptive dynamische Bereichscodierungs-Kompressionsalgorithmus (ADRC) und erzeugt Pakete 1, ... N zur Übertragung gemeinsam mit Übertragungsmedien 135. Der Decoder 120 empfängt Pakete 1, ... N von den Übertragungsmedien 135 und erzeugt das Signal 130. Das Signal 130 ist eine Rekonstruktion des Signals 100.
  • Der Codierer 110 und der Decodierer 120 können in einer Vielzahl von Arten realisiert werden, um die hier beschriebene Funktionalität durchzuführen. Bei einer Ausführungsform sind der Codierer 110 und/oder der Decodierer 120 als Software ausgeführt, welche auf einem Medium gespeichert ist, und durch ein Allzweck- oder ein speziell-konfiguriertes Computersystem ausgeführt wird, welches üblicherweise eine Zentralverarbeitungseinheit, einen Speicher und eine oder mehrere Eingabe-/Ausgabeeinrichtungen und Coprozessoren aufweist. Alternativ kann der Codierer 110 und/oder der Decodierer 120 als Logik realisiert werden, um die hier beschriebene Funktionalität durchzuführen. Zusätzlich kann der Codierer 110 und/oder Decodierer 120 als eine Kombination von Hardware, Software oder Firmware realisiert werden.
  • Bei der vorliegenden Ausführungsform ist das Signal 100 ein Farbvideobild, welches eine Sequenz an Videorahmen aufweist, wobei jeder Rahmen Information aufweist, die für ein Bild eines verschachtelten Videosystems repräsentativ ist. Jeder Rahmen besteht aus zwei Feldern, wobei ein Feld Daten der geradzahligen Zeilen des Bilds und das andere Feld Daten der ungeradzahligen Zeilen des Bilds enthält. Die Daten weisen Pixelwerte auf, welche die Farbkomponenten einer entsprechenden Lage im Bild beschreiben. Beispielsweise bestehen bei der vorliegenden Ausführungsform die Farbkomponenten aus dem Luminanzsignal Y und den Farbdifferenzsignalen U und V. Man sieht schnell, dass der Prozess der vorliegenden Erfindung auf Signale abweichend von den verschachtelten Videosignalen angewandt werden kann. Außerdem ist es offensichtlich, dass die vorliegende Erfindung nicht auf Realisierungen im Y-, U-, V-Farbraum beschränkt ist, sondern auf Bilder angewandt werden, welche in anderen Farbräumen dargestellt werden.
  • Blickt man auf 1 zurück, so unterteilt der Codierer 110 die Y-, U- und V-Signale und verarbeitet jede Signalgruppe unabhängig gemäß dem ADRC-Algorithmus. Die nachfolgende Beschreibung beschreibt, um die Erläuterung zu verarbeiten, die Verarbeitung des Y-Signals; die Codierschritte spiegeln sich jedoch auch auf die U- und V-Signale wider.
  • Bei der vorliegenden Ausführungsform gruppiert der Codierer 110 Y-Signale quer über zwei nachfolgende Rahmen, die hier als Rahmenpaar bezeichnet werden, des Signals 100 in dreidimensionale Blöcke ("3D"). Bei einer Ausführungsform wird ein 3D-Block aus dem Gruppieren von 2D-Blöcken von dem gleichen lokalisierten Bereich über ein gegebenes Rahmenpaar erzeugt, wobei ein zweidimensionaler 2D-Block gebildet wird, indem lokalisierte Pixel innerhalb eines Rahmens oder eines Felds gruppiert werden. Man kann in betracht ziehen, dass der hier beschriebene Prozess bei unterschiedlichen Blockstrukturen angewandt werden kann. Die Gruppierung von Signalen wird weiter im Bild-Block-Abbildungsabschnitt unten beschrieben.
  • Wenn man mit der vorliegenden Ausführungsform weiterfährt, so berechnet für einen bestimmten 3D-Block der Codierer 110, ob es eine Änderung bezüglich Pixelwerten zwischen den 2D-Blöcken gibt, welche den 3D-Block bilden. Ein Bewegungsflag wird gesetzt, wenn es wesentliche Änderungen bezüglich der Werte gibt. Wie durch den Stand der Technik bekannt ist, erlaubt die Verwendung eines Bewegungsflags, dass der Codierer 110 die Anzahl von Quantisierungscodes reduziert, wenn er Bildwiederholung innerhalb jedes Rahmenpaars lokalisiert. Der Codierer 110 ermittelt außerdem den maximalen Pixelintensitätswert ("MAX") und den minimalen Pielintensitätswert ("MIN") innerhalb eines 3D-Blocks. Unter Verwendung von Werten MAX und MIN berechnet der Codierer 110 den dynamischen Bereich ("DR") für einen bestimmten 3D-Datenblock. Für eine Ausführungsform gilt: DR = MAX – MIN + 1 im Fall von Nicht-Flanken-Anpassungs-ADRC. Für Flankenanpassungs-ADRC gilt: DR = MAX – MIN. Bei einer alternativen Ausführungsform codiert der Codierer 110 Signale auf rahmenweiser Basis für einen Strom von Rahmen, welche eine Sequenz von Videorahmen zeigen. Bei einer weiteren Ausführungsform codiert der Codierer 110 Signale auf feldweiser Basis für einen Strom von Feldern, welche eine Sequenz von Videofeldern zeigen. Folglich werden Bewegungsflags nicht verwendet, und 2D-Blöcke werden verwendet, um die Werte von MIN, MAX und DR zu berechnen.
  • Bei der vorliegenden Ausführungsform nimmt der Codierer 110 Bezug auf den berechneten DR gegenüber einer Schwellenwerttabelle (nicht gezeigt), um die Anzahl von Quantisierungsbits (Qbits) zu bestimmen, die verwendet werden, um Pixel innerhalb des Blocks, der dem DR entspricht, zu codieren. Das Codieren eines Pixels hat einen Quantisierungscode ("Q-Code") zur Folge. Die Q-Codes sind die relevanten komprimierten Bilddaten, welche zur Speicherung oder zu Übertragungszwecken verwendet werden.
  • Bei einer Ausführungsform wird die Q-Bit-Auswahl von dem DR eines 3D-Blocks hergeleitet. Folglich werden alle Pixel innerhalb eines bestimmten 3D-Blocks unter Verwendung des gleichen Q-Bits codiert, was einen 3D-Codierungsblock zur Folge hat. Die Sammlung von Q-Codes, MIN, des Bewegungsflags und des DR für einen 3D-Codierungsblock wird als 3D-ADRC-Block bezeichnet. Alternativ werden 2D-Blöcke codiert, und die Sammlung von Q-Codes, MIN und des DR für einen bestimmten 2D-Block hat 2D-ADRC-Blöcke zur Folge.
  • Es kann eine Anzahl von Schwellenwerttabellen realisiert werden. Bei einer Ausführungsform besteht die Schwellenwerttabelle aus einer Reihe von DR-Schwellenwerten. Ein Q-Bit entspricht der Anzahl von Quantisierungsbits, die verwendet werden, einen Bereich von DR-Werten zwischen zwei benachbarten DRs innerhalb einer Reihe von der Schwellenwerttabelle zu codieren. Bei einer alternativen Ausführungsform weist die Schwellenwerttabelle Mehrfachreihen, und eine Auswahl einer Reihe hängt von der gewünschten Übertragungsrate ab. Jede Reihe in der Schwellenwerttabelle wird durch einen Schwellenwertindex identifiziert. Eine ausführliche Beschreibung einer Ausführungsform der Schwellenwertauswahl wird anschließend bei der Erläuterung des partiellen Pufferns beschrieben. Eine weitere Beschreibung des ADRC-Codierens und des Pufferns ist in der US-PS 4 722 003 offenbart, mit dem Titel "High Efficiency Coding Apparatus" und in der US-PS 4 845 560 mit dem Titel "High Efficiency Coding Apparatus", welche dem Bevollmächtigten der vorliegenden Erfindung zugeteilt sind.
  • Im Anschluss werden hier die Q-Codes als variable Längendaten ("VL-Daten") bezeichnet. Außerdem werden der DR, MIN und das Bewegungsflag als Blockattribute bezeichnet. Die Blockattribute bilden zusammen mit dem Schwellenwertindex die Festlängendaten ("FL-Daten"). Außerdem beschreibt hinsichtlich der obigen Erläuterung der Begriff Blockattribut einen Parameter in Verbindung mit einer Komponente eines Signalelements, wobei ein Signalelement Mehrfachkomponenten aufweist.
  • Bei einer alternativen Ausführungsform weisen die FL-Daten einen Q-Bit-Code auf. Der Vorteil besteht darin, dass die Q-Bit-Information nicht von dem DR während der Decodierverarbeitung hergeleitet werden muss. Wenn somit die DR Information verloren oder beschädigt ist, kann die Q-Bitinformation noch von dem Q-Bit-Code bestimmt werden. Wenn außerdem der Q-Bit-Code verloren oder beschädigt ist, kann die Q-Bitinformation vom DR hergeleitet werden. Damit wird das Erfordernis, den DR oder das Q-Bit wiederherzustellen, reduziert.
  • Der Nachteil, den Q-Bit-Code mit aufzuweisen, besteht in den zusätzlichen Bits, welche für jeden ADRC-Block zu übertragen sind. Bei einer Ausführungsform jedoch werden die Q-Bit-Codes für Gruppen von ADRC-Blöcken kombiniert, beispielsweise gemäß einer Funktion, beispielsweise Hinzufügung oder Verkettung.
  • Wenn beispielsweise die ADRC-Blöcke in drei gruppiert sind, und wenn die Q-Bit-Werte für jeden ADRC-Block entsprechend 3, 4 und 4 sind, beträgt der summierte Wert, der in die FL-Daten codiert ist, 11. Somit ist die Anzahl von Bits, die erforderlich sind, die Summe darzustellen, kleiner als die Anzahl von Bits, die erforderlich sind, jeden Individualwert darzustellen, und die nicht beschädigten Q-Bit-Werte jeder Gruppe können verwendet werden, den Q-Bit-Wert zu bestimmen, ohne einen Q-Bit-Wiederherstellungsprozess durchzuführen, beispielsweise einen, der nachfolgend beschrieben wird.
  • Es werden ebenfalls weitere Ausführungsformen betrachtet. Beispielsweise können Bewegungsflagdaten ebenfalls codiert werden. Ein Kennzeichen mit Q-Bit- und Bewegungsflagdaten kann erzeugt werden und verwendet werden, auf eine Tabelle von Codes Bezug zu nehmen. Die Konfiguration und die Funktion des Codierens können in Abhängigkeit von der Anwendung variieren.
  • Rahmen, Blockattribute und VL-Daten beschreiben eine Vielzahl von Komponenten innerhalb eines Videosignals. Die Grenzen, die Lage und die Menge dieser Komponenten sind abhängig von der Übertragung und von den Kompressionseigenschaften eines Videosignals. Bei der vorliegenden Ausführungsform werden diese Komponenten variiert und innerhalb eines Bitstroms des Videosignals gemischt, um eine robuste Fehlerbeseitigung während Übertragungsverlusten sicherzustellen.
  • Für beispielhafte Zwecke liefert die folgende Beschreibung eine 1/6 aufeinanderfolgende Paketübertragungs-Verlusttoleranz gemäß einem ADRC-Codieren und Mischen eines Videosignals. Folglich gelten die folgende Definition und die Unterteilung von Komponenten für eine Ausführungsform. Weitere Ausführungsformen werden ebenfalls in betracht gezogen. Ein Datensatz umfasst eine Datenpartition eines Videos oder einer anderen Art eines Datensignals. Somit ist bei einer Ausführungsform ein Rahmensatz eine Art von Datensatz, der einen oder mehrere aufeinanderfolgende Rahmen aufweist. Ein Segment umfasst einen Speicher mit der Kapazität, um eine 1/16 Unterteilung von Q-Codes und Blockattribute zu speichern, welche in einem Rahmensatz enthalten sind. Außerdem weist ein Puffer einen Speicher mit der Kapazität auf, um eine 1/16 Unterteilung der Q-Codes und Blockattribute zu speichern, welche in einem Rahmensatz enthalten sind. Das Mischen der Daten wird durch Austauschen von Komponenten innerhalb von Segmenten und/oder Puffer durchgeführt. Nachfolgend werden die Daten, welche in einem Segment gespeichert sind, verwendet, um Datenpakete zur Übertragung zu erzeugen. Somit werden in der folgenden Beschreibung, wenn ein Segment verloren ist, alle Pakete, welche von dem Segment erzeugt werden, während der Übertragung verloren. Wenn ähnlich ein Teil eines Segments verloren ist, wird dann eine entsprechende Anzahl von Paketen, welche von dem Segment erzeugt werden, während der Übertragung verloren.
  • Obwohl sich die nachfolgende Beschreibung auf einen 1/6 aufeinander folgenden Datenverlust für Daten bezieht, die unter Verwendung des ADRC-Codierens codiert wurden, wird erwartet, dass die Verfahren und die Vorrichtung, die hier beschrieben sind, auch bei einer Ausbildung einer 1/n aufeinanderfolgenden Paketverlusttoleranz anwendbar ist, welche mit einer Vielzahl von Codier-/Decodierverfahren gekoppelt ist.
  • 2 zeigt eine Ausführungsform der Paketstruktur 200, welche zur Übertragung von den Daten über Punkt-Punkt-Verbindungen sowie Netzwerken verwendet wird. Die Paketstruktur 200 wird durch den Codierer 110 erzeugt und über Übertragungsmedien 135 übertragen. Bei einer Ausführungsform weist die Paketstruktur 200 fünf Bytes an Datenkopfinformation auf, acht DR-Bits, acht MIN-Bits, ein Bewegungsflagbit, einen Fünf-Bit-Schwellenwertindex und 354 Bits an Q-Codes. Die hier beschriebene Paketstruktur ist ein Beispiel und kann üblicherweise zur Übertragung in einem asynchronen Übertragungsmodus-Netzwerk ("ATM") realisiert werden. Die vorliegende Erfindung ist jedoch nicht auf die Paketstruktur, die hier beschrieben wurde, beschränkt, wobei eine Vielzahl von Paketstrukturen, welche in einer Vielzahl von Netzwerken verwendet werden können, verwendet werden kann.
  • Wie oben angemerkt wurde, wird angenommen, dass die Übertragungsmedien 135 (beispielsweise Medien) keine fehlerfreie Übertragung liefern, und daher Pakete verloren oder beschädigt sein können. Wie oben angemerkt existieren herkömmliche Verfahren zum Ermitteln eines derartigen Verlustes oder Beschädigung, wobei eine wesentliche Bildverschlechterung allgemein auftreten wird. Das System und die Verfahren der vorliegenden Erfindung lehren daher eine Quellencodierung, um robuste Beseitigung von einem solchen Verlust oder einer solchen Beschädigung zu liefern. Es wird in der folgenden Erläuterung durchwegs angenommen, dass ein Burstverlust, d.h., der Verlust mehrerer aufeinanderfolgender Pakete die wahrscheinlichste Form eines Fehlers ist, wobei jedoch einige zufallsmäßige Paketverluste ebenfalls vorkommen könnten.
  • Um eine robuste Beseitigung für einen Verlust von einem oder mehrerer aufeinanderfolgender Datenpakete sicherzustellen, liefern das System und die Verfahren der vorliegenden Erfindung Mehrfachebenenmischen. Insbesondere umfassen die FL-Daten und die VL-Daten, welche in einem übertragenen Paket enthalten sind, Daten von räumlich und zeitlich nichtverbundenen Stellen eines Bilds. Das Mischen von Daten stellt sicher, dass jeglicher Burstfehler gestreut ist und erleichtert die Fehlerbeseitigung. Wie anschließend beschrieben wird, erlaubt das Mischen die Beseitigung von Blockattributen und Q-Bit-Werten.
  • Datencodierung/Decodierung
  • 3 ist ein Flussdiagramm, welches eine Ausführungsform des Codierprozesses zeigt, der durch den Codierer 110 durchgeführt wird. 3 beschreibt außerdem eine Übersicht eines Mischprozesses, der verwendet wird, sich gegenüber einer Bildverschlechterung zu sichern und eine robuste Fehlerbeseitigung zu erleichtern.
  • Im Schritt 1 von 3 wird ein zugeführter Rahmensatz, der auch als Anzeigekomponente bezeichnet wird, dezimiert, um die Übertragungserfordernisse zu reduzieren. Das V-Signal wird horizontal auf dreiviertel seiner ursprünglichen Größe dezimiert, und die U- und V-Signale werden jeweils auf eine Hälfte ihrer ursprünglichen Höhe und einer Hälfte ihrer ursprünglichen Breite dezimiert. Dies hat ein 3:1:0-Videoformat mit 3960 Y Blöcken, 660 U Blöcken und 660 V-Blöcken in jedem Rahmenpaar zur Folge. Wie oben angemerkt wird die Erläuterung die Verarbeitung von V-Signalen beschreiben. Die Verarbeitung ist jedoch auch auf die U- und V-Signale anwendbar. Im Schritt 2 werden die beiden V-Rahmenbilder auf 3D-Blöcke abgebildet. Im Schritt 3 werden die 3D-Blöcke gemischt. Im Schritt 4 wird das ADRC-Puffern und Codieren verwendet. Im Schritt 5 werden die codierten V-, U- und V-Blöcke innerhalb eines Puffers gemischt.
  • Im Schritt 6 werden die VL-Daten für eine Gruppe codierter 3D-Blöcke und deren entsprechende Blockattribute gemischt. Im Schritt 7 werden die FL-Daten über unterschiedliche Segmente gemischt. Im Schritt 8 wird das Postambelfüllen durchgeführt, bei dem ein variabler Raum am Ende eines Puffers mit einem vorher festgelegten Bitstrom aufgefüllt wird. Im Schritt 9 werden die VL-Daten quer über unterschiedliche Segmente gemischt.
  • Für beispielhafte Zwecke liefert die folgende Beschreibung zum Mischen ein Verfahren zum Handhaben von Pixeldaten vor und nach dem Codieren. Bei einer alternativen Ausführungsform werden unabhängige Datenwerte über Hardware gemischt/entmischt. Insbesondere bildet die Hardware die Adresse von Blockwerten auf verschiedene Adressen ab, um den Misch-/Entmischungsprozess zu realisieren. Das Adressabbilden ist jedoch für datenunabhängige Werte nicht möglich, da dem Mischen die Verarbeitung von Daten folgen muss. Das Intragruppen-VL-Daten-Mischen, das anschließend beschrieben wird, umfasst die datenabhängigen Werte. Für beispielhafte Zwecke wird die nachfolgende Beschreibung für das Mischen für diskrete Datensätze vorgenommen. Für alternative Ausführungsformen wird jedoch ein Signal auf Basis von Multidatenebenen definiert, welche von Bits zu Pixeln und zu Rahmen reichen. Das Mischen ist für jede Ebene, welche in dem Signal definiert ist, und über unterschiedliche Datenebenen des Signals möglich.
  • 4 ist ein Flussdiagramm, welches eine Ausführungsform des Decodierprozesses zeigt, der durch den Decoder 120 durchgeführt wird. Vorzugsweise sind die Umsetzungs- und Entmischprozesse die Umkehrung der Prozesse, welche in 3 gezeigt sind. 4 beschreibt weiter in unterschiedlichen Kombinationen Q-Bit-, Bewegungsflag-, DER-, MIN- und Pixeldaten, einen innovativen Prozess zur Fehlerbeseitigung. Der Fehlerbeseitigungsprozess wird anschließend in verschiedenen Kombinationen für verschiedene Ausführungsformen, Q-Bit, Bewegungsflag, DR, MIN, und Pixel-Wiederherstellung beschrieben.
  • Bild-Block-Abbilden
  • Bei der vorliegenden Ausführungsform umfasst ein Einzelrahmen üblicherweise 5280 2D-Blöcke, wobei jeder 2D-Block 64 Pixel aufweist. Damit umfasst ein Rahmenpaar 5280 3D-Blöcke, da ein 2D-Block von einem ersten Rahmen und ein 2D-Block von einem nachfolgenden Rahmen gesammelt werden, um einen 3D-Block zu bilden.
  • Das Bild-Block-Abbilden wird durchgeführt, um einen Rahmen oder einen Rahmensatz von Daten in 2D-Blöcke bzw. 3D-Blöcke zu unterteilen. Außerdem umfasst das Bild-Block-Abbilden die Verwendung ein komplementäres und/oder ineinandergreifendes Muster, um Pixel in einem Rahmen zu unterteilen, um robuste Fehlerbeseitigung während Übertragungsverlusten zu erleichtern. Um jedoch die Wahrscheinlichkeit zu verbessern, dass ein bestimmter DR-Wert nicht zu groß ist, wird jeder 2D-Block aus Pixeln in einem lokalisierten Bereich gebildet.
  • 5 zeigt eine Ausführungsform eines Bild-Block-Abbildungsprozesses für einen 16-Pixel-Abschnitt eines Bilds als Beispiel. Das Bild 500 umfasst 16 Pixel, welche einen lokalisierten Bereich eines Einzelrahmens bilden. Jedes Pixel im Bild 500 wird durch einen Intensitätswert dargestellt. Beispielsweise hat das Pixel in der oberen linken Seite ein Bild eines Intensitätswerts gleich 100, während das Pixel am unteren rechten Boden des Bilds einen Intensitätswert von 10 hat.
  • Bei einer Ausführungsform werden die Pixel von unterschiedlichen Bereichen des Bilds 500 verwendet, um 2D-Blöcke 510, 520, 530 und 540 zu bilden. Die 2D-Blöcke 510, 520, 530 und 540 werden codiert, gemischt (wie anschließend gezeigt) und übertragen. Im Anschluss an die Übertragung werden die 2D-Blöcke 510, 520, 530 und 540 zurück kombiniert und verwendet, um das Bild 550 zu bilden. Das Bild 550 ist eine Rekonstruktion des Bilds 500.
  • Um eine genaue Darstellung des Bilds 500 trotz eines möglichen Übertragungsverlustes sicherzustellen, zeigt 5 eine ineinandergreifende komplementäre Blockstruktur, von der eine Ausführungsform, welche in 5 gezeigt ist, verwendet wird, das Bild 550 zu rekonstruieren. Insbesondere stellt die Pixelauswahl, welche verwendet wird, 2D-Blöcke 510, 520, 530 und 540 zu bilden, sicher, dass ein komplementäres und/oder ineinandergreifendes Muster verwendet wird, um die Blöcke zu rekombinieren, wenn das Bild 550 rekonstruiert wird. Wenn folglich ein Attribut eines bestimmten 2D-Blocks während der Übertragung verloren wird, werden benachbarte Abschnitte des Bilds 550 während der Rekonstruktion nicht verzerrt. Wie beispielsweise in 5 gezeigt ist, wird der DR des 2D-Blocks 540 während der Datenübertragung verloren. Während der Rekonstruktion des Bilds 550 verwendet jedoch der Decoder mehrfache benachbarte Pixel von benachbarten Blöcken, über welche ein DR für den fehlenden DR des 2D-Blocks 540 wiederhergestellt werden kann. Wie anschließend außerdem beschrieben wird, vergrößert die Kombination komplementärer Muster und das Verschieben die Anzahl von benachbarten Pixeln, wodurch vorzugsweise die Anzahl benachbarter Pixel maximiert wird, welche von anderen Blöcken herstammen, wodurch die DR- und die MIN-Wiederherstellung signifikant verbessert werden.
  • 5a zeigt eine Ausführungsform eines Mischmusters, welches verwendet wird, 2D-Blöcke zu bilden, bei einer Ausführungsform des Bild-Block- Abbildungsprozesses. Ein Bild wird in zwei Hilfsbilder, d.h., das Hilfsbild 560 und das Hilfsbild 570 auf Basis von alternierenden Pixeln zerlegt. Recheckformen werden im Hilfsbild 560 gebildet, um die 2D-Blockgrenzen darzustellen. Aus Erläuterungszwecken sind die 2D-Blöcke nummeriert mit 0, 2, 4, 7, 9, 11, 12, 14, 16, 19, 21 und 23. Die Kachel 565 zeigt die Pixelverteilung für einen 2D-Block innerhalb des Hilfsbilds 560.
  • Im Hilfsbild 570 ist die 2D-Blockbelegung um acht Pixel horizontal und um vier Pixel vertikal verschoben. Dies hat einen Wickel rundum die 2D-Blockbelegung zur Folge und eine Überlappung, wenn Hilfsbilder 560 und 570 während der Rekonstruktion kombiniert werden. Die 2D-Blöcke sind mit 1, 3, 5, 6, 8, 10, 13, 15, 17, 18, 20 und 22 nummeriert. Die Kachel 575 zeigt die Pixelverteilung für einen 2D-Block innerhalb des Hilfsbilds 570. Die Kachel 575 ist die komplementäre Struktur der Kachel 565. Wenn folglich ein bestimmtes Attribut eines Blocks während der Übertragung verloren wird, existieren benachbarte Pixel, über die ein Blockattribut für den fehlenden 2D-Block wieder hergestellt werden kann. Außerdem existiert ein sich überlappender 2D-Block von Pixeln mit einem ähnlichen Satz von Blockattributen. Daher hat während der Rekonstruktion des Bilds der Decoder mehrfache benachbarte Pixel von benachbarten 2D-Blöcken, über die ein verlorenes Blockattribut wieder hergestellt werden kann.
  • 6 zeigt weitere komplementäre und ineinandergreifende 2D-Blockstrukturen. Weitere Strukturen können ebenfalls verwendet werden. Ähnlich 5 stellen diese 2D-Blockstrukturen, welche in 6 gezeigt sind, sicher, dass umgebende 2D-Blöcke trotz Übertragungsverlusten für einen bestimmten 2D-Block vorhanden sind. Die Muster 610a, 610b und 610d verwenden jedoch die horizontale und/oder vertikale Verschiebung während des Abbilden von Pixeln auf nachfolgende 2D-Blöcke. Das horizontale Verschieben beschreibt das Verschieben der Kachelstruktur in der horizontalen Richtung um eine vorher festgelegte Anzahl von Pixeln vor dem Beginn einer neuen 2D-Blockgrenze. Das vertikale Verschieben beschreibt das Verschieben der Kachelstruktur in der vertikalen Richtung eine vorher festgelegte Anzahl von Pixeln vor dem Beginn einer neuen 2D-Blockgrenze. Bei der Anwendung braucht lediglich horizontales Verschieben angewandt werden, vertikales Verschieben braucht lediglich angewendet werden, oder eine Kombination eines vertikalen und horizontalen Verschiebens braucht angewandt werden.
  • Das Muster 610a zeigt ein Spiralmuster, welches zum Bild-Block-Abbilden verwendet wird. Das Spiralmuster folgt einer horizontalen Verschiebung, um nachfolgende 2D-Blöcke während des Bild-Block-Abbildungsprozesses zu bilden. Die Muster 610b und 610d zeigen komplementäre Muster, wobei die Pixelauswahl um eine horizontale und eine vertikale Verschiebung bewegt wird, um nachfolgende 2D-Blöcke während des Bild-Block-Abbildungsprozesses zu bilden. Außerdem zeigen die Muster 610b und 610d alternierende Offsets in Bezug auf die Pixelauswahl zwischen 2D-Blöcken. Das Muster 610c zeigt die Verwendung einer unregelmäßigen Abtastung von Pixeln, um einen 2D-Block für die Bild-Block-Abbildung zu bilden. Folglich folgt der Bild-Block-Abbildung jegliche Abbildungsstruktur, vorausgesetzt, dass ein Pixel lediglich einmal auf einen 2D-Block abgebildet ist.
  • 5, 5a und 6 beschreiben die Bild-Block-Abbildung für die 2D-Blockerzeugung. Man erkennt schnell, dass die Prozesse auf 3D-Blöcke anwendbar sind. Wie oben beschrieben folgt der 3D-Blockerzeugung die gleiche Grenzdefinition wie bei einem 2D-Block, wobei sich die Grenzunterteilung über einen nachfolgenden Rahmen erstreckt, der einen 3D-Block zur Folge hat. Insbesondere wird ein 3D-Block gebildet, indem die Pixel, die verwendet werden, einen 2D-Block zu definieren, in einem ersten Rahmen zusammen mit Pixeln von einem 2D-Block in einem nachfolgenden Rahmen gesammelt werden. Bei einer Ausführungsform sind sowohl Pixel im 2D-Block vom ersten Rahmen als auch vom 2D-Block vom nachfolgenden Rahmen von exakt der gleichen Stelle.
  • Intrarahmen-Setz-Block-Mischen
  • Die Pixel für ein bestimmtes Bild sind für einen lokalisierten Bereich eng verwandt. In einem anderen Bereich der gleichen Bilder können die Pixelwerte jedoch signifikant verschiedene Werte haben. Somit haben im Anschluss an das Codieren die DR- und MIN-Werte für räumlich enge 2D- oder 3D-Blöcke in einem Bild ähnliche Werte, während DR- und MIN-Werte für Blöcke in einem anderen Abschnitts des Bilds signifikant unterschiedlich sein können. Wenn folglich die Puffer sequentiell mit codierten Daten von räumlich engen 2D- oder 3D-Blöcken eines Bilds aufgefüllt werden, tritt eine nichtproportionale Verwendung des Speicherraums auf. Das Intrarahmen-Setzblock-Verschieben tritt vor der ADRC-Codierung auf und umfasst das Mischen der 2D-Blöcke oder 3D-Blöcke, welche während des Inter-Block- Abbildungsprozesses erzeugt werden. Dieser Mischprozess stellt eine gleichmäßige Pufferverwendung während einer nachfolgenden ADRC-Codierung sicher.
  • 7a7d zeigen eine Ausführungsform zum Mischen von 3D-Y-Blöcken. Die 3D-Y-Blöcke in 7a7d werden durch Anwenden des Bild-Block-Abbildungsprozesses, der oben beschrieben wurde, auf ein Rahmenpaar erzeugt, welches lediglich Y-Signale enthält. Die 3D-Y-Blöcke werden gemischt, um sicherzustellen, dass die Puffer, die verwendet werden, um das codierte Rahmenpaar zu speichern, 3D-Y-Blöcke von unterschiedlichen Teilen des Rahmenpaars enthalten. Dies führt zu ähnlicher DR-Verteilung während des ADRC-Codierens. Eine ähnliche DR-Verteilung innerhalb jedes Puffers führt zu gleichmäßiger Puffernutzung.
  • 7a7d zeigen außerdem das 3D-Blockmischen unter Verwendung physikalisch-getrennter 3D-Blöcke, um sicherzustellen, dass der Übertragungsverlust von aufeinanderfolgenden Paketen beschädigte Blockattribute, die quer über das Bild streuen, zur Folge haben, im Gegensatz zu einem lokalisierten Bereich des Bilds.
  • Das Blockmischen ist für breit verteilte Blockattribute bei einem kleinen Medium bestimmt, oder wenn große Burstpaketverluste auftreten. Bei der vorliegenden Ausführungsform wird ein kleiner Burstverlust so angesehen, einer zu seiner, wo wenige Pakete verloren werden. Ein mittlerer Verlust ist ein Verlust, bei dem eine Datenmenge, welche in einem Puffer gehalten werden kann, verloren wird. Ein großer Verlust ist ein Verlust, bei dem die Datenmenge, welche in einem Segment gehalten werden kann, verloren wird. Während des 3D-Blockmischens wird jede Gruppe von drei benachbarten Blöcken aus relativ entfernten Teilen des Bilds ausgewählt. Folglich wird während des nachfolgenden Intragruppen-VL-Datenmischens (später ausführlich beschrieben) jede Gruppe aus 3D-Blöcken gebildet, die verschiedene statistische Eigenschaften haben. Verteilte Blockattributverluste erlauben eine robuste Fehlerbeseitigung, da ein beschädigter 3D-Block von nichtbeschädigten 3D-Blöcken umgeben ist und die nichtbeschädigten 3D-Blöcke verwendet werden können, verlorene Daten wiederherzustellen.
  • 7a zeigt ein Rahmenpaar, welches 66 3D-Y-Blöcke in der horizontalen Richtung und 60 3D-Y-Blöcke in der vertikalen Richtung enthält. Die 3D-Y-Blöcke sind in Segmenten 0–5 vergeben. Wie gezeigt folgt der 3D Y-Blockzuteilung ein zwei mal drei Spaltenabschnitt, so dass ein 3D-Y-Block von jedem Abschnitt mit einem Segment verknüpft ist. Wenn somit kein weiteres Mischen durchgeführt wird und ein Burstverlust der ersten 880 Pakete auftritt, werden alle Blockattribute in Verbindung mit dem Segment 0 verloren. Wie jedoch später beschrieben wird, wird das FL-Datenmischen durchgeführt, um Blockattributverluste weiter zu streuen.
  • 7b zeigt die Abtastreihenfolge von 3D-Y-Blöcken, die mit "0" nummeriert sind, die verwendet werden, in das Segment 0 einzutreten. Jeder "0" 3D-V-Block von 7a ist mit 0, 1, 2, 3, ..., 659 nummeriert, um dessen Lage im Datenstrom zu zeigen, der dem Segment 0 zugeführt wird. Unter Verwendung der Blocknummerierung, um die Segmentzuordnung zu vergeben, werden die verbleibenden 3D-Y-Blöcke den Segmenten 1–5 zugeführt, was somit ein Rahmenpaar zur Folge hat, welches über Mehrfachsegmente gemischt ist.
  • 7c zeigt die 660 3D Y-Blöcke, welche ein Segment umfassen. Die 3D-Y-Blöcke mit der Nummer 0–65 werden einem Puffer 0 zugeführt. Ähnlich werden die 3D-Y-Blöcke, welche den nummerierten 3D V-Blöcken benachbart sind, dem Puffer 1 zugeführt. Der Prozess wird wiederholt, um die Puffer 2–9 aufzufüllen. Folglich hat eine Beschädigung in Bezug auf einen Puffer während der Datenübertragung das Fehlen von 3D-V-Blöcken von unterschiedlichen Teilen des Bilds zur Folge.
  • 7d zeigt die endgültige Ordnung der "0" 3D-V-Blöcke über einem Puffer. Die 3D-V-Blöcke 0, 1 und 2 besetzen die ersten drei Positionen im Puffer. Der Prozess wird für den Rest des Puffers wiederholt. Folglich hat ein Verlust von 3D-V-Blöcken während der Datenübertragung das Fehlen von 3D V-Blöcken von unterschiedlichen Stellen innerhalb des Bilds zur Folge.
  • 7a7d zeigen eine Ausführungsform von 3D-Blockverteilungen für 3D-V-Blöcke eines Rahmensatzes. Bei alternativen Ausführungsformen sind jedoch 3D Blockverteilungen für 3D-U-Blöcke und 3D-V-Blöcke verfügbar. Die 3D-U-Blöcke werden von dem Anwenden des Bild-Block-Abbildungsprozesses erzeugt, der oben beschrieben wurde, auf einen Rahmensatz, der lediglich U-Signale enthält. Ähnlich werden die 3D-V-Blöcke durch Anwenden der Bild-Block-Abbildungsprozesses auf einen Rahmensatz erzeugt, der lediglich V-Signale enthält. Sowohl der 3D-U-Block als auch der 3D-V-Block folgen der 3D-V-Blockverteilung, welche oben beschrieben wurde. Wie jedoch oben beschrieben hat die Anzahl von 3D-U-Blöcken und 3D-V-Blöcken jeweils ein Verhältnis von 1:6 in Bezug auf 3D-V-Blöcke.
  • 7a7d werden verwendet, um eine Ausführungsform des Intrarahmensatz-Blockmischens für ein V-Signal zu zeigen, so dass ein Burstfehler bis hinauf zu 1/6 von den Paketen, die während der Übertragung verloren werden, toleriert wird und außerdem gleichmäßige Puffernutzung sichergestellt wird. Es wird durch den Fachmann zu würdigen sein, dass das Segment, der Puffer und die ADRC-Blockzuordnungen variiert werden können, um sich gegenüber einem 1/n-Burstfehlerverlust zu sichern oder um die Puffernutzung zu modifizieren.
  • Partielles Puffern
  • Wie in 3 gezeigt ist, treten die ADRC-Codier- und Pufferprozesse im Schritt 4 auf. In Abhängigkeit von dem Codierverfahren werden 3D- oder 3D-Blöcke, die während des Bild-Block-Abbildungsprozesses erzeugt werden, codiert, was 2D- oder 3D-ADRC-Blöcke zur Folge hat. Ein 3D-ADRC-Block enthält Q-Codes, einen MIN-Wert, ein Bewegungsflag und einen DR. Ähnlich enthält ein 2D-ADRC-Block Q-Codes, einen MIN und einen DR. Ein 2D-ADRC-Block hat jedoch kein Bewegungsflag, da das Codieren in Bezug auf einen Einzelrahmen oder ein Einzelfeld durchgeführt wird.
  • Eine Anzahl von Pufferverfahren können im Stand der Technik gefunden werden (siehe beispielsweise "High Efficiency Coding Apparatus", US-PS 4 845 560 von Kondo et al, und "High Efficiency Coding Apparatus", US-PS 4 722 003 von Kondo). Die beiden Patente mit dem obigen Titel werden hiermit durch Bezug eingeführt.
  • Der partielle Pufferprozess, der oben aufgeführt wurde, beschreibt ein innovatives Verfahren zum Bestimmen von Codierungsbits, welche bei der ADRC-Codierung verwendet werden. Insbesondere beschreibt das partielle Puffer ein Verfahren zum Auswählen von Schwellenwertwerten von einer Schwellenwerttabelle, die bestimmt ist, eine konstante Übertragungsrate zwischen entfernten Endgeräten bereitzustellen, wobei die Fehlerausbreitung eingeschränkt wird. Bei einer alternativen Ausführungsform ist die Schwellenwerttabelle weiter so ausgebildet, um maximale Puffernutzung zu liefern. Bei einer Ausführungsform ist ein Puffer ein Speicher, der ein sechzigstel einer Unterteilung von codierten Daten für einen bestimmten Rahmensatz speichert. Die Schwellenwertwerte werden verwendet, um die Anzahl von Q-Bits zu bestimmen, die verwendet werden, die Pixel in 2D- oder 3D-Blöcke zu codieren, welche von dem Bild-Block-Abbildungsprozess, der oben beschrieben wurde, erzeugt werden.
  • Die Schwellenwerttabelle enthält Reihen an Schwellenwertwerten, die auch als Schwellenwertsatz bezeichnet werden, und jede Reihe in der Schwellenwerttabelle wird durch einen Schwellenwertindex auf den Index gesetzt. Bei einer Ausführungsform wird die Schwellenwerttabelle mit Schwellenwertsätzen organisiert, welche eine höhere Anzahl von Q-Code-Bits erzeugen, welche in den oberen Reihen der Schwellenwerttabelle angeordnet sind. Folglich bewegt sich für einen bestimmten Puffer, der eine vorher festgelegte Anzahl von verfügbaren Bits hat, der Codierer 110 die Schwellenwerttabelle nach unten, bis ein Schwellenwertsatz, der weniger als eine bestimmte Anzahl von Bits erzeugt, vorgefunden wird. Die geeigneten Schwellenwertwerte werden verwendet, die Pixeldaten im Puffer zu codieren.
  • Bei einer Ausführungsform ist eine Übertragungsrate von nicht mehr als 30 Mbps erwünscht. Die erwünschte Übertragungsrate hat 31152 Bits zur Folge, die für die VL-Datenspeicherung in einem bestimmten Puffer verfügbar sind. Folglich wird für jeden Puffer eine kumulative DR-Verteilung berechnet, und ein Schwellenwertsatz wird von der Schwellenwerttabelle ausgewählt, um die Pixel in 3D- oder 2D-Blöcken in VL-Daten zu codieren.
  • 8 zeigt eine Ausführungsform von ausgewählten Schwellenwertwerten und die DR-Verteilung für den Puffer 0. Die Vertikalachse von 8 weist die kumulative DR-Verteilung auf. Beispielsweise ist der Wert "b" gleich der Anzahl von 3D- oder 2D-Blöcken, deren DR größer oder gleich L3 ist. Die Horizontalachse enthält die möglichen DR-Werte. Bei einer Ausführungsform reichen die DR-Werte von 0 bis 255. Die Schwellenwertwerte L4, L3, L2 und L1 beschreiben einen Schwellenwertsatz, der verwendet wird, das Codieren eines Puffers zu bestimmen.
  • Bei einer Ausführungsform werden alle Blöcke, welche im Puffer 0 gespeichert sind, unter Verwendung der Schwellenwerte L4, L3, L2 und L1 codiert. Folglich sind bei den Blöcken mit DR-Werten, die größer als L4 sind, die Pixelwerte unter Verwendung von vier Bits codiert. Ähnlich sind alle Pixel, welche zu den Blöcken mit DR-Werten zwischen L3 und L4 gehören, unter Verwendung von drei Bits codiert. Alle Pixel, welche zu den Blöcken mit DR-Werten zwischen L2 und L3 gehören, sind unter Verwendung von zwei Bits codiert. Alle Pixel, welche zu den Blöcken mit DR-Werten zwischen L1 und L2 gehören, sind unter Verwendung von einem Bit codiert. Schließlich sind alle Pixel, welche zu den Blöcken mit DR-Werten kleiner als L1 gehören, unter Verwendung von 0 Bits codiert. L4, L3, L2 und L1 werden so ausgewählt, dass die Gesamtzahl von Bits, die verwendet wird, alle Blöcke im Puffer 0 zu codieren, so nahe wie möglich an einer Grenze von 31153 Bits ist, ohne die Grenze von 31152 zu übersteigen.
  • 8a zeigt die Verwendung partiellen Pufferns bei einer Ausführungsform. Der Rahmen 800 ist codiert und in Puffer 0–59 gespeichert. Wenn ein Übertragungsfehler die Datenwiederherstellung verhindert, bleibt der Decodierprozess für den Rahmen 800 stecken, bis die Fehlerbeseitigung in Bezug auf die verloren Daten durchgeführt ist. Das partielle Puffer schränkt jedoch die Fehlerausbreitung innerhalb eines Puffers ein, wodurch somit das Decodieren der verbleibenden Puffer ermöglicht wird. Bei einer Ausführungsform verhindert ein Übertragungsfehler die Q-Bit- und Bewegungsflag-Wiederherstellung für den Block 80 im Puffer 0. Das partielle Puffer begrenzt die Fehlerausbreitung auf die verbleibenden Blöcke innerhalb des Puffers 0. Die Fehlerausbreitung wird auf den Puffer 0 begrenzt, da das Ende des Puffers 0 und der Anfang des Puffers 1 aufgrund der festen Pufferlänge bekannt sind. Folglich kann der Decoder 120 mit der Verarbeitung von Blöcken innerhalb des Puffers 1 ohne Verzögerung beginnen. Zusätzlich erlaubt die Verwendung unterschiedlicher Schwellenwertsätze, unterschiedliche Puffer zu codieren, es dem Codierer 110, die Anzahl von Q-Code-Bits, die in einem bestimmten Puffer enthalten sind, zu maximieren/zu steuern, wodurch eine höheres Kompressionsverhältnis zugelassen wird. Außerdem erlaubt der partielle Pufferprozess eine konstante Übertragungsrate, da die Puffer 0–59 aus einer festen Länge bestehen.
  • Bei einer Ausführungsform ist der variable Raum eines Puffers nicht vollständig mit Q-Code-Bits aufgefüllt, wenn eine begrenzte Anzahl von Schwellenwertsätzen existiert. Folglich werden die verbleibenden Bits im Festlängenpuffer mit einem vorher bestimmten Bitstrommuster, der als Post-Ambel bezeichnet wird, aufgefüllt. Wie nachfolgend beschrieben wird, ermöglicht die Post-Ambel bidirektionale Datenwiederherstellung, da die Post-Ambel das Ende der VL-Daten vor dem Ende des Puffers darstellt.
  • Intrapuffer-YUV-Blockmischen
  • Y-, U- und V-Signale haben jeweils spezifische statistische Eigenschaften. Um den Q-Bit- und Bewegungsflag-Wiederherstellungsprozess (wird anschließend beschrieben) zu verbessern, werden die Y-, U- und V-Signale innerhalb eines Puffers gemultiplext. Folglich hat ein Übertragungsverlust keinen wesentlichen Effekt in Bezug auf ein spezifisches Signal.
  • 9 zeigt eine Ausführungsform des Intrapuffer-YUV-Blockmischprozesses, bei dem YUV-ADRC-Blöcke von den Y-, U- bzw. V-Signalen hergeleitet werden. Der Puffer 900 zeigt die ADRC-Blockzuteilungen nach dem Intrarahmensatz-Blockmischen. Der Puffer 900 umfasst 66 Y-ADRC-Blöcke, auf welche 11 U-ADRC-Blöcke folgen, auf welche wiederum 11 V-ADRC-Blöcke folgen. Der Puffer 910 zeigt die YUV-ADRC-Blockorganisation nach der Intrapuffer-YUV-Blockmischung. Wie gezeigt ist, folgt auf drei Y-ADRC-Blöcke ein U-ADRC-Block, oder auf drei Y-ADRC-Blöcke folgt ein V-ADRC-Block. Das Intrapuffer-YUV-Blockmischen reduziert die Ähnlichkeit zwischen benachbarten Blockbitströmen innerhalb des Puffers. Alternative Ausführungsformen des Intrapuffer-YUV-Blockmischens mit einem anderen Signal, d.h., YUV-Verhältnissen oder anderen Farbräumen sind in Abhängigkeit von dem anfänglichen Bildformat möglich.
  • Intragruppen-VL-Datenmischen
  • Das Intragruppen-VL-Datenmischen umfasst drei Verarbeitungsschritte. Die drei Verarbeitungsschritte umfassen die Q-Code-Verkettung, die Q-Code-Wiederzuordnung und die Zufallsbildung verketteter Q-Codes. 10 zeigt eine Ausführungsform des Intragruppen-VL-Datenmischens, wo drei Verarbeitungsschritte nacheinander auf Q-Codes angewandt werden, welche in einem Puffer gespeichert sind. Bei alternativen Ausführungsformen wird ein Hilfssatz des Verarbeitungsschritts bei Intragruppen-VL-Datenmischen angewandt. Jeder Verarbeitungsschritt hilft unabhängig bei der Fehlerbeseitigung eines Datenverlustes während der Übertragung. Folglich wird jeder Verarbeitungsschritt unabhängig beschrieben. Eine ausführliche Beschreibung der Fehlerbeseitigung wird unten in der Erläuterung der Datenwiederherstellung geliefert.
  • 1. Q-Code-Verkettung
  • Die Q-Code-Verkettung stellt sicher, dass Gruppen von ADRC-Blöcken zusammen decodiert werden. Das Gruppen-Decodieren erleichtert die Fehlerbeseitigung, da Zusatzinformation von benachbarten Blöcken während des Datenwiederherstellungsprozesses verfügbar ist, der später erläutert wird. Bei einer Ausführungsform wird die Q-Code-Verkettung unabhängig für jede Gruppe von drei ADRC-Blöcken, welche in einem Puffer gespeichert sind, angewandt. Bei einer alternativen Ausführungsform weist eine Gruppe eines ADRC-Blocks (Blöcke) von unterschiedlichen Puffer auf. Die Verkettung von Q-Codes über drei ADRC-Blöcke wird beschrieben, wenn eine verkettete ADRC-Kachel erzeugt wird. 11 und 11a zeigen eine Ausführungsform zum Erzeugen von verketteten ADRC-Kacheln.
  • 11 zeigt eine Ausführungsform zum Erzeugen einer verketteten ADRC-Kachel von 2D-ADRC-Blöcken. Insbesondere wird die Verkettung für jeden Q-Code (q0–q63) durchgeführt, der in 2D-ADRC-Blöcken 0, 1 und 2 enthalten ist, was 64 Q-Codes einer verketteten ADRC-Kachel A zur Folge hat. Beispielsweise ist der erste Q-Code q0,0 (0-ter quantisierter Wert) des 2D-ADRC-Blocks 0 mit dem ersten Q-Code q0,1 des 2D-ADRC-Blocks 1 verkettet. Die beiden verketteten Q-Codes sind wiederum mit dem ersten Q-Code q0,2 des 2D-ADRC-Blocks 2 verkettet, was Q0 der verketteten ADRC-Kachel A zur Folge hat. Die Prozesse werden wiederholt, bis Q63 erzeugt ist. Alternativ wird die Erzeugung von Qi in der verketteten ADRC-Kachel A durch die Gleichung beschrieben:
    Qi = [qi,0, qi,1, qi,2] i = 0, 1, 2, ... 63
  • Zusätzlich gibt es in Verbindung mit jedem Qi in der verketteten ADRC-Kachel A eine entsprechende Anzahl von N-Bits, welche die Gesamtzahl von Bits zeigt, die verkettet sind, um eine einzelne Qi zu erzeugen.
  • 11a zeigt eine Ausführungsform zum Erzeugen einer verketteten ADRC-Kachel von Rahmenpaaren einschließlich Bewegungsblöcken. Ein Bewegungsblock ist ein 3D-ADRC-Block mit einem gesetzten Bewegungsflag. Das Bewegungsflag wird gesetzt, wenn eine vorher festgelegte Anzahl von Pixeln innerhalb von 2D-Blöcken, welche durch den Bild-Block-Abbildungsprozess gebildet werden, der oben beschrieben wurde, sich bezüglich des Werts zwischen einem ersten Rahmen und einem nachfolgenden Rahmen ändern. Bei einer alternativen Ausführungsform wird das Bewegungsflag gesetzt, wenn der Maximalwert jeder Pixeländerung zwischen dem 2D-Block eines ersten Rahmens und eines nachfolgenden Rahmens einen vorher festgelegten Wert übersteigt. Im Gegensatz umfasst ein Nichtbewegungsblock (d.h., ein stationärer Block) einen 3D-ADRC-Block mit einem Bewegungsflag, welches nicht gesetzt ist. Das Bewegungsflag verbleibt nicht gesetzt, wenn sich eine vorher festgelegte Anzahl von Pixeln innerhalb der beiden 2D-Blöcke eines ersten Rahmens und eines nachfolgenden Rahmens bezüglich des Werts sich nicht ändern. Bei einer alternativen Ausführungsform verbleibt das Bewegungsflag nicht gesetzt, wenn ein Maximalwert jeder Pixeländerung zwischen einem ersten Rahmen und einem nachfolgenden Rahmen einen vorher bestimmten Wert nicht übersteigt.
  • Ein Bewegungsblock umfasst Q-Codes von einem codierten D2-Block in einem ersten Rahmen und einem codierten 2D-Block in einem nachfolgenden Rahmen. Die Sammlung von Q-Codes entsprechend einem einzelnen codierten 2D-Block wird als eine ADRC-Kachel bezeichnet. Folglich erzeugt ein Bewegungsblock zwei ADRC-Kacheln. Aufgrund des Mangels an Bewegung muss jedoch ein stationärer Block lediglich eine Hälfte der Anzahl von Q-Codes eines Bewegungsblocks umfassen, womit somit lediglich eine ADRC-Kachel erzeugt wird. Bei der vorliegenden Ausführungsform werden die Q-Codes eines stationären Blocks durch Mittelwertbildung entsprechender Pixelwerte zwischen einem 2D-Block in einem ersten Rahmen und einem entsprechenden 2D-Block in einem nachfolgenden Rahmen erzeugt. Jeder gemittelte Pixeiwert wird nachfolgend codiert, was eine Sammlung von Q-Codes zur Folge hat, welche eine einzelne ADRC-Kachel bilden. Folglich erzeugen die Bewegungsblöcke 1110 und 1130 ADRC-Kacheln 0, 1, 3 und 4. Der stationäre Block 1120 erzeugt die ADRC-Kachel 2.
  • Die Verkettungs-ADRC-Kachelerzeugung von 11a verkettet die Q-Codes für ADRC-Kacheln 0–4 in die verkettete ADRC-Kachel B. Insbesondere wird die Verkettung für jeden Q-Code (q0 bis q63) durchgeführt, der in den ADRC-Kacheln 0, 1, 2, 3 und 4 enthalten ist, was 64 Q-Codes der Verkettungs-ADRC-Kachel B zur Folge hat. Alternativ wird die Erzeugung jedes Q-Codes Qi in der verketteten ADRC-Kachel B durch die mathematische Gleichung beschrieben:
    Qi = [qi,0, qi,1, qi,2, qi,3, qi,4] i = 0, 1, 2, ... 63
  • 2. Q-Code-Wiederzuordnung
  • Die Q-Code-Wiederzuordnung stellt sicher, dass Bitfehler, welche durch Übertragungsverluste bewirkt werden, innerhalb räumlich zusammenhangsloser Pixel lokalisiert werden. Insbesondere werden während der Q-Code-Wiederzuordnung Q-Codes wieder umverteilt und die Bits der umverteilten Q-Codes werden gemischt. Folglich erleichtert die Q-Code-Wiederzuordnung die Fehlerbeseitigung, da nichtbeschädigte Pixel jedes beschädigte Pixel umgeben. Außerdem wird die DR- und MIN-Wiederherstellung, da die Pixelbeschädigung verteilt ist, gleichmäßig über einen ADRC-Block unterstützt, wobei die DR- und MIN-Wiederherstellung anschließend bei der Erläuterung der Datenwiederherstellung ausführlich erläutert wird.
  • 12 zeigt eine Ausführungsform der Pixelverfälschung während des Übertragungsverlustes eines 1/6-Burstfehlerverlustes. Insbesondere weisen 2D-ADRC-Blöcke 1210, 1220 und 1230 jeweils 64 Pixel auf, welche unter Verwendung von drei Bits codiert sind. Folglich wird jedes Pixel P0 bis P63 eines 2D-ADRC-Blocks durch drei Bits dargestellt. Der 2D-ADRC-Block 1210 zeigt das Bitverlustmuster, welches durch ein dunkelgefärbtes Quadrat angedeutet ist, von Bits, wenn das erste Bit von allen sechs Bits verloren ist. Ähnlich sind die Bitverlustmuster, wenn das zweite Bit oder vierte Bit von allen sechs Bits verloren ist, in 2D-ADRC-Blöcken 1220 bzw. 1250 gezeigt. 12 zeigt, dass ohne die Q-Code-Wiederzuordnung eine Hälfte aller Pixel der 2D-ADRC-Blöcke 1210, 1220 und 1230 für einen 1/6-Burstfehelrverlust verfälscht sind.
  • Bei einer Ausführungsform wird die Q-Code-Wiederzuordnung unabhängig auf jede verkettete ADRC-Kachel, welche in einem Puffer gespeichert ist, angewandt, womit somit sichergestellt wird, dass Bitfehler innerhalb räumlich zusammenhangsloser Pixel beim Entmischen lokalisiert werden. Bei einer alternativen Ausführungsform wird die Q-Code-Wiederzuordnung bei jedem ADRC-Block, der in einem Puffer gespeichert ist, angewandt.
  • 12a zeigt eine Ausführungsform der Q-Code-Wiederzuordnung, welche einen Bitstrom gemischter Q-Code-Bits von einer verketteten ADRC-Kachel erzeugt. Die Tabelle 122 und die Tabelle 132 zeigen die Q-Code-Umverteilung. Die Bitströme 130 und 140 zeigen das Mischen der Q-Code-Bits.
  • Die Tabelle 122 zeigt die verketteten Q-Codes für die verkettete ADRC-Kachel A. Q0 ist der erste verkettete Q-Code, und Q63 ist der letzte verkettete Q-Code. Die Tabelle 132 zeigt die Umverteilung der Q-Codes. Bei einer Ausführungsform sind Q0, Q6, Q12, Q18, Q24, Q30, Q36, Q42, Q48, Q54 und Q60 in einer ersten festgelegten Partition 0 enthalten. Gemäß der Tabelle 132 sind die folgenden 11 verketteten Q-Codes in der Partition 1 enthalten. Diese Schritte werden für die Partitionen 2–5 wiederholt. Die Grenze einer Partition wird durch eine vertikale Linie in der Tabelle 132 dargestellt. Diese zusammenhangslose räumliche Zuordnung von verketteten Q-Codes auf sechs Partitionen stellt sicher, dass ein Fehlerverlust von 1/6-Bursts ein Bitverlustmuster zur Folge hat, welches über eine Gruppe aufeinanderfolgender Pixel verteilt ist.
  • 12b zeigt eine Ausführungsform des Bitmusterverlustes, welches durch den 1/6-Burstfehlerverlust umverteilter Q-Codes gebildet wird. Insbesondere weisen 2D-ADRC-Blöcke 1215, 1225 und 1235 jeweils 64 Pixel auf, welche unter Verwendung von drei Bits codiert sind. Folglich wird jedes Pixel P0 bis P63 jedes 2D-ADRC-Blocks durch drei Bits dargestellt. In den 2D-ADRC-Blöcken 1215, 1225 und 1235 wird das Bitverlustmuster, welche durch ein abgedunkeltes Quadrat angedeutet ist, über einer Gruppe aufeinanderfolgender Pixel lokalisiert. Folglich sind lediglich 11 aufeinanderfolgende Pixel innerhalb jedes 2D-ADRC-Blocks 1215, 1225 und 1235 um einen bestimmten Segmentverlust verfälscht. Bei einer alternativen Ausführungsform umfassen die Q-Code-Belegung zu Partitionen Q-Codes von unterschiedlichen Bewegungsblöcken, womit somit sowohl eine zusammenhangslose räumliche als auch zeitliche Belegung von Q-Codes auf sechs Segmente bereitgestellt wird. Dies hat zusätzlich nichtbeschädigte räumlich-zeitliche Pixel während eines 1/6-Burstfehlerverlustes zur Folge und erleichtert außerdem eine robustere Fehlerbeseitigung.
  • Bezugnehmend auf 12a werden die Bits der umverteilten Q-Codes in der Tabelle 132 über einen erzeugten Bitstrom gemischt, so dass benachbarte Bits im Bitstrom von benachbarten Partitionen verschieden sind. Die Q-Code-Bits für alle Partitionen in der Tabelle 132 werden zu einem Bitstrom 130 verkettet. Für eine bestimmte Partition werden benachbarte Bits im Bitstrom 130 auf jede sechste Bitlage im erzeugten Bitstrom 140 gestreut. Folglich umfassen Bits mit der Nummer 0 bis 5 des Bitstroms 140 das erste Bit von dem ersten Q-Code in jeder Partition. Ähnlich umfassen Bits mit der Nummer 6 bis 11 des Bitstroms 140 das zweite Bit von dem ersten Q-Code in jeder Partition. Der Prozess wird für alle Q-Code-Bits wiederholt. Folglich wird ein 1/6-Burstfehlerverlust einen räumlich-zusammenhangslosen Pixelverlust zur Folge haben.
  • 12c zeigt eine Ausführungsform des Bitmusterverlustes, erzeugt durch den 1/6-Burstfehlerverlust wiederzugeordneter (d.h., umverteilter und gemischter) Q-Codes. Insbesondere umfassen 2D-ADRC-Blöcke 1217, 1227 und 1237 jeweils 64 Pixel, welche unter Verwendung von drei Bits codiert wurden. Folglich wird jedes Pixel P0 bis P63 jedes 2D-ADRC-Blocks durch drei Bits dargestellt. In den 2D-ADRC-Blöcken 1217, 1227 und 1237 ist das Bitverlustmuster, welches durch ein abgedunkeltes Quadrat angedeutet ist, über räumlich-zusammenhangslose Pixel verteilt, wodurch die Pixelfehlerbeseitigung erleichtert wird.
  • 3. Zufallsbildung von Q-Code-Bits
  • Die Q-Code-Bits werden unter Verwendung eines Maskierungsschlüssels zufallsmäßig angeordnet, um den Decoder beim Wiederherstellen verlorener und beschädigter Daten zu unterstützen. Insbesondere wird während eines Codierens ein Schlüssel, der mit "KEY" bezeichnet ist, verwendet, einen Bitstrom von Q-Codes zu maskieren. Folglich muss der Decoder die korrekten Werte von KEY unterscheiden, um den Bitstrom aus Q-Codes zu entmaskieren.
  • Bei einer Ausführungsform wird KEY verwendet, um einen Bitstrom aus Q-Codes zu maskieren, welche durch die Q-Code-Wiederzuordnung von drei ADRC-Blöcken erzeugt werden. Wie oben beschrieben umfasst ein ADRC-Block FL-Daten und Q-Codes. Jedes Schlüsselelement ("di") des Maskierungsschlüssels wird durch die Kombination der FL-Datenwerte und die Anzahl von Quantisierungsbits ("qi") in Verbindung einem entsprechenden ADRC-Block erzeugt. Bei einer Ausführungsform werden Bewegungsflags und Q-Bits verwendet, einen Schlüssel zu definieren. Folglich wird bei dieser Ausführungsform der Wert eines Schlüsselelements aus der mathematischen Gleichung erzeugt: di = 5·mi + qi wobei i = 0, 1, 2 und qi = 0, 1, 2, 3, 4
  • Die Variable mi ist gleich dem Bewegungsflag. Wenn folglich der entsprechende ADRC-Block ein stationärer Block ist, ist mi gleich 0, und, wenn der entsprechende ADRC-Block ein Bewegungsblock ist, ist mi gleich 1. Außerdem zeigt die Variable qi die Quantisierungsbits, die verwendet werden, um den entsprechenden ADRC-Block zu codieren. Folglich hat qi einen Wert von 0, 1, 2, 3 oder 4 für eine Vier-Bit-ADRC-Codier-Technik. Bei einer Ausführungsform wird KEY für eine Gruppe von drei ADRC-Blöcken mit drei Schlüsselelementen ("di") gemäß der folgenden Gleichung definiert: KEY = d0 + 10·d1 + 100·d2
  • Somit werden während der Wiederherstellung des Bewegungsflags oder der Q-Bit-Daten mögliche Schlüsselwerte in Abhängigkeit von den Werten regeneriert, die verwendet werden, um die Maskierungsschlüssel zu bilden. Die regenerierten Schlüsselwerte werden verwendet, den empfangenen Bitstrom aus Q-Codes zu entmaskieren, was Kandidatendecodierungen zur Folge hat. Eine ausführliche Erläuterung zum Regenerieren von Schlüsselwerten und der Auswahl einer spezifischen Kandidatendecodierung wird unten bei der Erläuterung der Datenwiederherstellung geliefert.
  • Bei einer alternativen Ausführungsform wird der Maskierungsschlüssel von einer Vielzahl von Elementen erzeugt. Somit wird der Decoder mit der spezifischen Information bereitgestellt, welche sich auf ein Element bezieht, ohne das Element über ein Übertragungsmedium zu übertragen. Bei einer Ausführungsform werden DR- oder MIN-Werte entsprechend einem ADRC-Block verwendet, um einen Maskierungsschlüssel zu erzeugen, um den Bitstrom, der den ADRC-Block zeigt, zu maskieren.
  • 1012 zeigen das Intragruppen-VL-Datenmischen, wobei ein Paketdatenverlust bis zu 1/6 während der Übertragung toleriert wird. Es wird durch den Fachmann geschätzt werden, dass die Anzahl von gesamten Partitionen und die Bittrennung variiert werden können, um gegenüber einem 1/N-Burstfehlerverlust gesichert zu sein.
  • Intersegment-FL-Datenmischen
  • Das Intersegment-FL-Datenmischen beschreibt die Umanordnung von Blockattributen unter verschiedenen Segmenten. Das Umanordnen von Blockattributen liefert einen verteilten Datenverlust. Wenn insbesondere FL-Daten von einem Segment während der Übertragung des DR-Werts verloren werden, gehören der DR-Wert, der MIN-Wert und der Bewegungsflag-Wert, die verloren wurden, nicht zum gleichen Block. Die 13 und 14 zeigen eine Ausführungsform des Intersegment-FL-Datenmischens.
  • 13 zeigt den Inhalt der Segmente 0 bis 5. Bei einer Ausführungsform umfasst jedes Segment 880 DRs, 880 MINs, 880 Bewegungsflags und VL-Daten, welche 660 Y-Blöcken, 110 U-Blöcken und 110 V-Blöcken entsprechen. Wie in der Grafik 'MIN-Mischen 1300' gezeigt ist, werden die MIN-Werte für das Segment 0 auf das Segment 2 verschoben, die MIN-Werte für das Segment 2 werden auf das Segment 4 verschoben, und die MIN-Werte für das Segment 4 werden auf das Segment 0 verschoben. Zusätzlich werden die MIN-Werte für das Segment 1 zum Segment 3 verschoben, die MIN-Werte für das Segment 3 werden zum Segment 5 verschoben, und die Bewegungsflag-Werte für das Segment 5 werden zum Segment 1 verschoben.
  • 13a zeigt das Bewegungsflag-Mischen. Wie gezeigt ist, werden in der Grafik 'Bewegungsflag-Mischen 1305' die Bewegungsflag-Werte für das Segment 0 auf das Segment 4 verschoben, die Bewegungsflag-Werte für das Segment 2 werden auf das Segment 0 verschoben, und die Bewegungsflag-Werte für das Segment 4 werden auf das Segment 2 verschoben. Zusätzlich werden die Bewegungsflag-Werte für das Segment 1 zum Segment 5 verschoben, die Bewegungsflag-Werte für das Segment 3 werden zum Segment 1 verschoben, und die Bewegungsflag-Werte für das Segment 5 werden zum Segment 3 verschoben. Das Verlustmuster 1310 zeigt den FL-Datenverlust, nachdem das Segment 0 während der Übertragung verloren wurde.
  • Für ein spezifisches Blockattribut zeigen sowohl 13 als auch 13a das Mischen aller Beispiele des spezifischen Blockattributs zwischen Segmenten. Beispielsweise werden in 13 die 880 MIN-Werte vom Segment 0 kollektiv durch die 880 MIN-Werte im Segment 2 ausgetauscht. Ähnlich werden in 13a die 880 Bewegungsflags für das Segment 0 kollektiv durch die 880 Bewegungsflags im Segment 4 ausgetauscht. Während eines Übertragungsverlustes von aufeinanderfolgenden Paketen hat dieses kollektive Mischen von Blockattributen einen nichtproportionalen Verlust von spezifischen Blockattributen für eine Blockgruppe zur Folge. Bei einer Ausführungsform umfasst eine Blockgruppe drei ADRC-Blöcke.
  • 14 zeigt eine Ausführungsform von modularen Drei-Mischprozessen für DR, MIN- und Bewegungsflag-Werten. Ein modulares Drei-Mischen beschreibt ein Mischmuster, welches über drei Blöcken (d.h., einer Blockgruppe) in drei unterschiedlichen Segmenten anteilig genutzt wird. Das Mischmuster wird für alle Blockgruppen innerhalb der drei unterschiedlichen Segmente wiederholt. Jedoch wird ein verschiedenes Mischmuster für verschiedene Blockattribute verwendet. Folglich verteilt der modulare Drei-Misch-Prozess Blockattribute über alle drei Segmente. Insbesondere stellt für eine bestimmte Blockgruppe ein modulares Dreiermischen sicher, dass lediglich ein Beispiel eines spezifischen Blockattributs während des Übertragungsverlustes eines Segments verloren wird. Somit werden während des Datenwiederherstellungsprozesses, der nachstehend erläutert wird, eine reduzierte Anzahl von Kandidatendecodierungen erzeugt, um einen Datenverlust innerhalb eines Blocks gutzumachen.
  • Wie beim DR-Modular-Mischen 1410 gezeigt ist, speichert ein Segment 880 DR-Werte. Folglich sind die DR-Werte mit 0–879 in Abhängigkeit von dem Block nummeriert, von welchem ein bestimmter DR-Wert hergeleitet ist. Bei einem Drei-Modulator-Mischen der FL-Daten des FL-Dateninhalts wird Inhalt von drei Segmenten gemischt. Ein Zählwert von 0–2 wird verwendet, um jeden DR-Wert in den drei Segmenten zu identifizieren, welche für ein modulares Mischen identifiziert werden. Folglich gehören DR's, welche zu Blöcken gehören, welche mit 0, 3, 6, 9 ... nummeriert sind, zum Zählwert 0. Ähnlich gehören DR's, welche zu den Blöcken mit der Nummer 1, 4, 7, 10 gehören, zum Zählwert 1, und die DR's, welche zu den Blöcken gehören, welche mit 2, 5, 8, 11 nummeriert sind, gehören zum Zählwert 2. Somit werden für einen bestimmten Zählwert die DR-Werte in Verbindung mit diesem Zählwert über das Segment 0, 2 und 4 gemischt. Ähnlich werden die DR-Werte in Verbindung mit dem gleichen Zählwert über die Segmente 1, 3 und 5 gemischt.
  • Beim DR-Modular-Mischen 1410 werden die DR-Werte, welche zum Zählwert 0 gehören, nicht gemischt belassen. Die DR-Werte, welche zum Zählwert 1 gehören, werden gemischt. Insbesondere werden die Zählwert-1-DR-Werte im Segment A zum Segment B verschoben, die Zählwert-1-DR-Werte im Segment B werden zum Segment C verschoben, und die Zählwert-1-DR-Werte im Segment C werden zum Segment A verschoben.
  • Die DR-Werte, welche zum Zählwert 2 gehören, werden ebenfalls gemischt. Insbesondere werden die Zählwert-2-DR-Werte im Segment A zum Segment C verschoben, die Zählwert-2-DR-Werte im Segment B werden zum Segment A verschoben, und die Zählwert-2-DR-Werte im Segment C werden zum Segment B verschoben.
  • Das MIN-Modular-Mischen 1420 zeigt eine Ausführungsform eines modularen Drei-Blockattribut-Mischprozesses für MIN-Werte. Ein Segment umfasst 880 MIN-Werte. Beim MIN-Modular-Mischen 1420 wird das Mischmuster, welches für den Zählwert 1 und den Zählwert 2 beim DR-Modular-Mischen 1410 verwendet wird, auf den Zählwert 0 und den Zählwert 1 verschoben. Insbesondere wird das Mischmuster, welches für den Zählwert 1 beim DR-Modular-Mischen 1410 verwendet wird, beim Zählwert 0 angewandt. Das Mischmuster, welches für den Zählwert 2 beim DR-Modular-Mischen 1410 verwendet wird, wird auf den Zählwert 1 angewandt und die MIN-Werte, welche zum Zählwert 2 gehören, werden nicht vermischt belassen.
  • Das Bewegungsflag-Modular-Mischen 1430 zeigt eine Ausführungsform eines modularen Drei-Block-Attribut-Mischprozesses für Bewegungsflag-Werte. Ein Segment umfasst 880 Bewegungsflag-Werte. In der Bewegungsflag-Modular-Mischanordnung 1430 wird das Mischmuster, welches für den Zählwert 1 und den Zählwert 2 in der DR-Modular-Mischanordnung 1410 verwendet wird, auf den Zählwert 2 bzw. den Zählwert 0 verschoben. Insbesondere wird das Mischmuster, welches für den Zählwert 2 in der DR-Modular-Mischanordnung 1410 verwendet wird, beim Zählwert 0 angewandt. Das Mischmuster, welches für den Zählwert 1 in der DR-Modular-Mischanordnung 1410 verwendet wird, wird für den Zählwert 2 angewandt.
  • 14a zeigt das modulare Mischergebnis von Modular-Mischanordnungen 1410, 1420 und 1430. Das modulare Mischergebnis 1416 zeigt jede Attributbestimmung von Blöcken, welche zum Segment 0 gehören. In diesem Beispiel entspricht das Segment 0 dem Segment A in 14. Diese Bestimmung wird gemäß Modular-Mischanordnungen 1410, 1420 und 1430 von 14 definiert. 14a zeigt außerdem den Verteilungsverlust von Blockattributen, nachdem das Segment 0 während der Übertragung verloren ist. Insbesondere zeigt das Verlustmuster 1415 den DR, Bewegungsflag- und MIN-Wertverluste über sechs Segmente, nachdem ein nachfolgendes Entmischen bei den Empfangsdaten angewandt wurde, welche anfangs unter Verwendung von modularen Mischanordnungen 1410, 1420 und 1430 gemischt wurden. Wie in 14a gezeigt ist, wird der Blockattributverlust periodisch über die Segmente 0, 2 und 4 verteilt, während die Segmente 1, 3 und 5 keinen Blockattributverlust haben. Zusätzlich zeigt das räumliche Verlustmuster 1417 die entmischte räumliche Verteilung beschädigter FL-Daten, nachdem das Segment 0 während der Übertragung verloren wurde. Das räumliche Verlustmuster 1417 zeigt den DR, Bewegungsflag- und MIN-Wertverlust, nachdem ein nachfolgendes Entmischen auf die Empfangsdaten angewandt wurde. Bei dem räumlichen Verlustmuster 1417 ist ein beschädigter Block durch nichtbeschädigte Blöcke umgeben, und die beschädigten Blockattribute können mit den umgebenden nichtbeschädigten Blöcken wiederhergestellt werden.
  • 14 und 14a zeigen ein modulares Drei-Mischanordnungsmuster und den Verteilungsverlust von Blockattributen, nachdem ein Segment während der Übertragung verloren wurde. Bei alternativen Ausführungsformen werden die Zählvariablen oder die Nummer von Segmenten variiert, um die Verteilung verlorener Blockattribute zu ändern. 14b zeigt das modulare Mischanordnungsergebnis 1421 und das Verlustmuster 1420. Ähnlich zeigt 14c das modulare Mischanordnungsergebnis 1426 und das Verlustmuster 1425. Sowohl das Verlustmuster 1420 als auch das Verlustmuster 1425 zeigen den Verteilungsverlust von Blockattributen über sechs Segmente, im Gegensatz zu drei Segmenten, wie oben beschrieben wurde.
  • Es wird in betracht gezogen, dass bei alternativen Ausführungsformen verschiedene Kombinationen von Blockattributen verteilt werden, um den Mischprozess durchzuführen.
  • Intersegment-VL-Datenmischen
  • Bei dem Intersegment-VL-Datenmischprozess werden Bits zwischen einer vorher bestimmten Anzahl von Segmenten, beispielsweise sechs Segmenten, angeordnet, um einen räumlich getrennten und periodischen VL-Datenverlust während eines bis zu 1/6 Paketübertragungsverlustes sicherzustellen. 15 und 16 zeigen eine Ausführungsform des Intersegment-VL-Datenmischprozesses.
  • Bei der vorliegenden Ausführungsform ist eine Übertragungsrate, die sich 30 Mbps nähert, wünschenswert. Folglich hat die gewünschte Übertragungsrate 31152 Bits zur Folge, welche für die VL-Daten in jedem der 16 Puffer verfügbar sind. Der verbleibende Platz wird durch FL-Daten für 88 Blöcke verwendet, welche in einem Puffer enthalten sind. 15 umfasst die VL-Datenpufferorganisation innerhalb eines Rahmensatzes für eine Übertragungsrate, die sich 30 Mbps nähert. Wie oben beschrieben wird partielles Puffer verwendet, um die Verwendung von verfügbarem VL-Datenplatz innerhalb jedes Puffers zu maximieren, und der nicht verwendete VL-Datenplatz wird mit einer Post-Ambel aufgefüllt.
  • 16 zeigt eine Ausführungsform des Mischprozesses, um einen räumlich getrennten und periodischen VL-Datenverlust sicherzustellen. Die erste Reihe zeigt die VL-Daten von den 60 Puffer in 15, welche zu einem verketteten Strom von 1869120 Bits umgeordnet sind. Die zweite Reihe zeigt die Sammlung jedes sechsten Bits in einem neuen Bitstrom. Wenn somit der Decoder nachfolgend den Prozess umkehrt, wird ein Burstverlust von bis zu 1/6 der Daten, die übertragen werden, in einen periodischen Verlust transformiert, wo zumindest fünf unbeschädigte Bits jeden Satz von zwei beschädigten Bits trennen.
  • Die dritte Reihe zeigt das Gruppieren jedes zehnten Bits des Stroms 2 in einen neuen Bitstrom 3. Die Grenze einer Gruppierung ist außerdem durch die Anzahl von Bits in einem Segment definiert. Das Gruppieren des Stroms 2 für jedes zehnte Bit stellt sicher, dass ein 1/60 Datenverlust 59 nichtbeschädigte Bits zwischen jedem Satz von zwei beschädigten Bits zur Folge hat. Dies liefert einen räumlich getrennten und periodischen VL-Datenverlust in dem Fall, dass 88 aufeinanderfolgende Datenpakete verloren werden.
  • Die vierte Reihe zeigt das Gruppieren jeweils 11 Bits des Stroms 3 in den Strom 4. Die Grenze eines Gruppierens ist ebenfalls durch die Anzahl von Bits in einem Segment definiert. Das Gruppieren des Stroms 3 für jeweils das 11. Bit stellt sicher, dass ein 1/660 Datenverlust 659 nichtbeschädigte Bits zwischen zwei beschädigten Bits zur Folge hat, was einen räumlich getrennten und periodischen VL-Datenverlust während eines Übertragungsverlustes von acht aufeinanderfolgenden Paketen zur Folge hat.
  • Jede Gruppe aus 31152 Bits innerhalb des Stroms 4 wird nacheinander in den Puffer 0–59 wiederhergestellt, wobei die erste Gruppe von Bits im Puffer 0 und die letzte Gruppe von Bits im Puffer 59 gespeichert ist.
  • Der Fachmann wird es als vorteilhaft erkennen, dass die Gruppierungserfordernisse von 16 variabel sind, um eine räumlich getrennte und periodische VL-Datenverlusttoleranz bis zu 1/n Übertragungsverlust sicherzustellen.
  • Übertragung
  • Der oben beschriebene Mischprozess bildet Puffer mit untereinander gemischten FL-Daten und VL-Daten. Bei einer Ausführungsform werden Pakete von jedem Puffer gemäß der Paketstruktur 200 erzeugt und über Übertragungsmedien 135 übertragen.
  • Datenwiederherstellung
  • Wie früher angemerkt ermöglicht das innovative Verfahren zum Codieren des Datenbitstroms robuste Wiederherstellung von Daten, was üblicherweise aufgrund von verlorenen Datenpaketen vorkommt. Die allgemeine Übersicht des Decodierprozesses wurde in 4 gezeigt.
  • Bezugnehmend auf 4 werden die Daten, welche in Paketen empfangen werden, über den Mehrfachebenen-Entmischprozess verarbeitet, Schritte 425, 430 und 435 und 440, wobei unterschiedliche Ebenen oder Bereiche des empfangenen Bitstroms über Pakete entmischt werden, um Daten wiederzugewinnen. Das ADRC-Decodieren wird dann auf die Daten angewandt, Schritt 445, gemäß der Lehre, die durch den Stand der Technik bekannt ist (beispielsweise Kondo, Fujimori, Nakaya, "Adaptive Dynamic Coding Scheme for Future HDTV Digital VTR", vierter Internationaler Workshop für HDTV und Beyond, 4–6. September 1991, Turin, Italien).
  • Das Intrarahmen-Setzblock-Entmischen wird durchgeführt, und Block-Bild-Abbilden wird nachfolgend ausgeführt, Schritte 450, 455. Die Schritte 425, 430, 435, 440, 445, 450 und 455 sind inverse Verarbeitungen früherer Verarbeitungsschritte, die durchgeführt werden, die Daten zu codieren, und werden hier nicht ausführlich erläutert. Es sollte jedoch angemerkt sein, dass bei einer Ausführungsform das Entmischen von Ebenen, welche durch die Schritte 425, 430 und 440 dargestellt werden, datenunabhängig ist. Beispielsweise ist der Entmischprozess, der durchgeführt wird, vorher festgelegt oder durch eine Adressabbildung oder eine Nachschlagetabelle spezifiziert. Da die Entmischschritte 425, 430 und 440 unabhängig vom Dateninhalt sind, verhindert der Datenverlust aufgrund von beispielsweise Paketverlust nicht, dass die Entmischschritte durchgeführt werden. Ähnlich sind die Schritte 450 und 455 datenunabhängig. Der Intragruppen-VL-Datenentmischprozess ist jedoch abhängig vom Dateninhalt. Insbesondere wird der Intragruppen-VL-Datenentmischprozess verwendet, um die Quantisierungscodes für die Blöcke der Gruppen zu bestimmen. Somit können im Schritt 435, wenn Pakete verloren werden, die beeinträchtigten Gruppen nicht verarbeitet werden.
  • Nach Ausführen des Entmischen, des Decodierens und des Abbilden (Schritte 425, 430, 435, 440, 445, 450 und 455) wird ein Wiederherstellungsprozess durchgeführt, um die Q-Bit- und Bewegungsflag-Werte wiederzuentwickeln, welche in den verlorenen Paketen lokalisiert wurden. Der Q-Bit-Wert wird üblicherweise aufgrund eines DR-Verlustes (Grund von verlorenen Paketen) verloren. Wenn der Q-Bit- oder Bewegungsflag-Wert nicht bekannt ist, können die Q-Codebits eines Pixels nicht von dem Datenbitstrom bestimmt werden. Wenn ein Q-Bit- oder Bewegungsflag-Wert ungenau bestimmt wird, wird sich dieser Fehler als ein Startpunkt nachfolgender Blöcke ausbreiten, dahingehend, dass Daten im Puffer nicht korrekt identifiziert werden.
  • 17 beschreibt den allgemeinen Prozess zum Wiederherstellen der Q-Bit- und Bewegungsflag-Werte. Diese besondere Ausführungsform beschreibt den Prozess unter Verwendung von Mehrfachblöcken von Daten, um die Q-Bit- und Bewegungsflag-Werte wiederzuentwickeln. Man kann jedoch dies so betrachten, dass die bestimmte Anzahl von Blöcken nicht durch die hier angegebene Erläuterung begrenzt ist und eine oder mehrere Blöcke sein könnten. Gemäß 17 werden auf Basis der Ermittlung eines Fehlers im Bitstrom, Schritt 1705, Kandidatendecodierungen auf Basis spezifizierter Parameter für die drei geprüften Blöcke erzeugt. Im Schritt 1715 wird jedes Kandidatendecodieren in Bezug auf die Wahrscheinlichkeit bewertet, dass dies ein genaues Decodieren ist, und im Schritt 1720 wird das Kandidatendecodieren mit dem besten Treffer verwendet, wobei das Decodieren die Q-Bit- und Bewegungsflag-Werte identifiziert, welche nachfolgendes Decodieren von Pixel der beeinträchtigten Blöcke ermöglichen.
  • Betrachtet man nun wieder den Decodierprozess von 4, so werden im Schritt 465, wenn das beste Decodieren ausgewählt wird, DR- oder MIN-Werte, welche aufgrund von verlorenen Paketen verloren wurden, wiederentwickelt. Es kann eine Vielzahl von Wiederherstellungsprozessen, welche dem Fachmann durch den Stand der Technik bekannt sind, angewandt werden, um DR und MIN wiederzuentwickeln, einschließlich das Verfahren kleinster Quadrate oder das Mitteln von Werten benachbarter Blöcke. Als ein Beispiel siehe Kondo, Fujimori, Nakaya, "Adaptive Dynamic Coding Scheme for Future HDTV Digital VTR", vierter Internationaler Workshop für HDTV und Beyond, 4–6. September 1991, Turin, Italien). Bei der vorliegenden Ausführungsform vergrößern die innovative Bild-Block-Abbildungsprozesse und die Datenstrukturen, die davon gebildet werden, die Anzahl benachbarter Blöcke, womit somit Zusatzdaten bereitgestellt werden und eine genauere DR- oder MIN-Wiederherstellung erleichtert wird. Insbesondere werden bei einer Ausführungsform DR und MIN wie folgt wiederhergestellt:
    Figure 00360001
    wobei DR' einem wiederentwickelten DR entspricht, pi der i-te Wert in einem ADRC-Block ist und qi ∊ {0, 1, ...2Q – 1}; m = 2Q – 1 zur Randanpassungs-ADRC und m = 2Q für Nicht-Randanpassungs-ADRC; yi ist ein decodierter Wert eines benachbarten Blockpixels; und Q ist der Q-Bit-Wert; und
    Figure 00360002
    wobei MIN' dem wiederhergestellten MIN entspricht und N die Anzahl von Ausdrücken ist, welche bei der Summierung verwendet werden (beispielsweise N = 342, wenn i = 0–31). Bei einer anderen Ausführungsform werden, wenn DR und MIN des gleichen Blocks zum gleichen Zeitpunkt beschädigt werden, DR und MIN gemäß den folgenden Gleichungen wiederhergestellt:
    Figure 00370001
  • Im Schritt 470 wird das ADRC-Decodieren bei den Blöcken angewandt, welche nicht vorher vor der Q-Bit- und Bewegungsflag-Wiederherstellung decodiert wurden, und es wird ein Pixelwiederherstellungsprozess ausgeführt, Schritt 475, um jegliche fehlerhaften Pixeldaten, welche aufgrund von verlorenen Paketen oder Zufallsfehlern aufgetreten sind, wiederherzustellen. Zusätzlich wird eine 3:1:0 → 4:2:2-Rückumsetzung durchgeführt, Schritt 480, um das Bild in das gewünschte Format zur Anzeige zu versetzen.
  • 18 zeigt eine besondere Ausführungsform des Q-Bit- und Bewegungsflag-Wiederherstellungsprozesses des Decodierverfahrens nach der vorliegenden Erfindung. Bei dieser besonderen Ausführungsform sind die Eingangssignale zum Prozess der Blockinformation benachbart, und die Blockattribute und Pixeldaten für die drei Blöcke, die zu verarbeiten sind. Fehlerflags, welche die Lage der verlorenen Daten zeigen, werden ebenfalls zugeführt. Die Fehlerflags können in einer Vielzahl von Arten erzeugt werden, welche dem Fachmann bekannt sind, und werden hier nicht weiter erläutert, mit der Ausnahme, auszuführen, dass die Flags zeigen, welche Bits durch beschädigte oder verlorene Pakete übertragen wurden.
  • Im Schritt 1805 werden die Kandidatendecodierungen erzeugt. Die Kandidatendecodierungen können mit einer Vielzahl von Arten erzeugt werden. Beispielsweise können, obwohl die Verarbeitungslast ziemlich signifikant sein würde, die Kandidatendecodierungen alle möglichen Decodierungen umfassen. Alternativ können die Kandidatendecodierungen auf Basis von vorher spezifizierten Parametern erzeugt werden, um die Anzahl von Kandidatendecodierungen, die auszuwerten sind, einzuengen.
  • Bei der vorliegenden Ausführungsform werden die Kandidatendecodierungen auf Basis der möglichen Schlüsselwerte bestimmt, die verwendet werden, einen Bitstrom des Intragruppen-VL-Datenmischprozesses, der früher beschrieben wurde, zufallsmäßig zu bilden. Außerdem sollte angemerkt sein, dass die Kandidatendecodierungen außerdem durch die Länge der Bits, die verbleiben, decodiert zu werden, beschränkt ist, und die Kenntnis, wie viele Blöcke verbleiben. Wie beispielsweise erläutert wird, ist, wenn der letzte Block verarbeitet wird, üblicherweise die Decodierlänge dieses Blocks bekannt.
  • Wenn man mit dem vorhandenen Beispiel weiterfährt, so zeigt 19 mögliche Fälle für die vorliegende Ausführungsform, wo der Wert x einen unbekannten Wert zeigt (was aufgrund eines Paketverlustes sein kann). Dies wird weiter durch ein Beispiel erläutert. mi wird als das Bewegungsflag des i-ten Blocks definiert, qi ist die Anzahl von Quantisierungsbits des i-ten Blocks, ni ist die Anzahl möglicher Kandidaten des i-ten Blocks, und di ist der Wert eines Schlüsselelements des i-ten Blocks, was oben bei Intragruppen-VL-Datenmischen beschrieben wurde. Der i-te Block ist innerhalb jeder Gruppe definiert. In diesem Beispiel beträgt die Anzahl von Blöcken innerhalb jeder Gruppe gleich drei. Ein Schlüssel für die Drei-Blockgruppe wird als d0 + 10·di + 100·d2 erzeugt. Unter der Annahme, dass im ersten Block das Bewegungsflag unbekannt ist und die Anzahl von Quantisierungsbits 2 beträgt, ist m0 gleich x und q0 gleich 2. Gemäß der oben beschriebenen Gleichung ist, um das Schlüsselelement zu erzeugen, di = 5·mi + qi, und der Satz möglicher Zeichen für d0 besteht aus {2 und 7}. Somit beträgt die Anzahl möglicher Werte (n0) gleich 2. Es sei angenommen, dass der zweite Block einen Bewegungsflag-Wert von 1 hat und ein Quantisierungsbit, und der Wert für d1 ist 5·1 + 1 = 6 und n1 = 1. Der dritte Block hat einen Bewegungsflag-Wert von 1 und eine unbekannte Anzahl von Quantisierungsbits. Somit umfasst das Zeichen d2 einen Satz, der besteht aus {6, 7, 8, 9} und n2 = 4. Somit beträgt die Anzahl möglicher Kandidaten dieser Gruppe, M, gleich 2·1·4 = 8, und die Schlüssel, die verwendet werden, die Kandidatendecodierungen zu erzeugen, sind die Variationen von 662, 667, 762, 767, 862, 867, 962, 967. Dieser Prozess wird vorzugsweise für jede Gruppe verwendet, welche durch einen Datenverlust beeinträchtigt wurde.
  • Kehrt man wieder zurück zu 17, so werden im Schritt 1715, wenn die Daten gemäß den Schlüsseldaten decodiert wurden, die erzeugten Kandidatendecodierungen ausgewertet oder bewertet in Bezug auf die Wahrscheinlichkeit, dass dies ein korrektes Codieren von den Daten ist. Im Schritt 1720 wird die Datendecodierung mit dem besten Treffer ausgewählt, die verwendet wird.
  • Es können eine Vielzahl von Verfahren verwendet werden, um Kandidatendecodierungen zu bewerten. Beispielsweise kann der Treffer von einer Analyse hergeleitet werden, wie viele Pixelblöcke einer bestimmten Kandidatendecodierung mit anderen Pixeln des Bilds hineinpassen. Vorzugsweise wird der Treffer auf Basis von Kriterien hergeleitet, welche für einen Fehler bezeichnend sind, beispielsweise einen Quadratfehler und Korrelation. Beispielsweise ist in Bezug auf die Korrelation dies eine ziemlich sichere Annahme, dass die benachbarten Pixel in etwa eng korreliert sind. Somit ist eine signifikante oder ein Mangel an Korrelation bezeichnend, dass das Kandidatendecodieren das korrekte Decodieren ist oder nicht.
  • Wie in 18 gezeigt ist, werden die vier unterschiedlichen Kriterien analysiert, um die beste Kandidatendecodierart auszuwählen. Es sei jedoch betrachtet, dass eine, zwei, drei oder mehrere unterschiedliche Kriterien analysiert werden können, um die beste Kandidatendecodierart auszuwählen.
  • Bezugnehmend auf 18 nutzt die vorliegende Ausführungsform vier Hilfstrefferkriterien, die nachfolgend zu einem abschließenden Treffer kombiniert werden. Insbesondere wird im Schritt 1815 die Quadratfehlermessung erzeugt (Schritt 1820), die horizontale Korrelation wird bestimmt, Schritt 1825, die vertikale Korrelation wird bestimmt, und im Schritt 1830 wird die zeitliche Aktivität gemessen (jeweils eine M-mal-2·N-Matrix gemäß M-Kandidaten, N Blöcken und zwei Rahmen/Blöcken von Daten). Obwohl die horizontale und vertikale Korrelation verwendet wird, sollte man sehen, dass eine Vielzahl von Korrelationsmaßnahmen, einschließlich diagonaler Korrelation, geprüft werden können. In den Schritten 1835, 1840, 1845, 1850 wird eine Vertrauensmessung für jedes Kriterium erzeugt, um die Messungen, die erzeugt werden, zu normieren, und in den Schritten 1855, 1860, 1865 und 1870 wird eine Wahrscheinlichkeitsfunktion für jede der unterschiedlichen Kriterien erzeugt. Diese Wahrscheinlichkeitsfunktionen werden dann kombiniert, beispielsweise durch Multiplizieren der Wahrscheinlichkeitswerte, um einen Treffer zu erzeugen, beispielsweise die Wahrscheinlichkeitsfunktion, welche in 18 gezeigt ist, Schritt 1875. Der Treffer für die Kandidatendecodierart wird nachfolgend gegenüber allen Kandidatendecodiertreffern verglichen, um den wahrscheinlichsten Kandidaten zu bestimmen.
  • Man sollte es sehen, dass eine Vielzahl von Verfahren verwendet werden können, um die Kandidatendecodierarten auszuwerten und um die "Treffer" für jeden Kandidaten zu erzeugen. Beispielsweise sind Vertrauensmessungen eine Weise zum Normieren der Kriterien. Außerdem kann eine Vielzahl von Vertrauensmaßnahmen, neben denen, die oben beschrieben wurden, verwendet werden. Ähnlich ist das Multiplizieren der Wahrscheinlichkeitswerte auf Basis jedes Kriteriums, um die gesamte Wahrscheinlichkeitsfunktion zu erzeugen, lediglich eine Weise, um die Vielzahl geprüfter Kriterien zu kombinieren.
  • Die Codierprozesse erleichtern die Bestimmung der besten Kandidatendecodierart, da üblicherweise die Kandidatendecodierungen, welche nicht der wahrscheinliche Kandidat sind, einen relativ geringer Treffer haben werden, während Decodierungen, welche ziemlich wahrscheinliche Kandidaten sind, einen signifikanten besseren Treffer haben werden. Insbesondere unterstützt der Q-Code-Zufallsbildungsprozess, der oben bei dem Intragruppen-VL-Datenmischprozess beschrieben wurde, in dieser Hinsicht.
  • 20a, 20b, 20c und 20d liefern Darstellungen der unterschiedlichen Maßnahmen, welche in den Schritten 1815, 1820, 1825 und 1830 von 18 durchgeführt werden, um das Bewerten zu erzeugen und insgesamt eine bestimmte Kandidatendecodierart zu bewerten. 20a zeigt den Quadratfehler, um ein decodiertes Kandidatenpixel xi auszuwerten, verglichen zu dessen decodierter Nachbarn yi,j, wobei das Suffix "i, j" die entsprechende Nachbaradresse von "i" ist. Man bevorzugt, dass einige der größten Ausdrücke entfernt sind, um jegliche Einflüsse aufgrund von Spitzen zu beseitigen, d.h., die ausdrücke, welche aufgrund legitimer Flanken im Bild auftreten. Vorzugsweise sind die drei größten Ausdrücke (xi–yi,j)2 ausrangiert, um Spitzen, welche auftreten könnten, zu beseitigen. 20b zeigt die zeitlichen Aktivitätskriterien. Diese sind lediglich anwendbar, wenn dies so ist, oder wenn angenommen ist, ein Bewegungsblock zu sein. Die zeitlichen Aktivitätskriterien nehmen an, dass, umso besser die Kandidatendecodierart ist, desto kleiner die Unterschiede zwischen Blöcken sind. Somit gilt, umso schlechter die Kandidatendecodierart ist, umso größer sind die Differenzen zwischen Blöcken. Die räumliche Korrelation nimmt an, dass die mehreren wahrscheinlichen Kandidatendecodierarten schwere Korrelationen zur Folge haben werden, da Realbilder dazu neigen, sich in einer langsamen konsistenten Weise zu ändern. Der Horizontalkorrelationsprozess, der in 20c gezeigt ist, und der Vertikalkorrelationsprozess, der in 20d gezeigt ist, nutzen diese Annahme.
  • Die Vertrauensmaßnahmen, d.h., die Schritte 1835, 1840, 1845 und 1850 von 18, liefern einen Prozess zum Normieren der Kriterien, welche in den vorherigen Schritten bestimmt wurden (Schritte 1815, 1820, 1825 und 1830). Bei einer Ausführungsform nimmt beispielsweise die Vertrauensmaßnahme für den Quadratfehler Werte vom Intervall [0, 1] an, und das Vertrauen ist 0, wenn die Fehler gleich sind oder gleich 1, wenn ein Fehler gleich 0 ist. Andere Maßnahmen oder Verfahren, um zu normieren, werden ebenfalls in betracht gezogen.
  • In ähnlicher Weise ist die Vertrauensmaßnahme für die räumliche Korrelation:
    Maximum (Y, 0) – Maximum (X, 0)
    wobei Y der beste Korrelationswert ist, und X die Korrelation für die aktuelle Kandidatendecodierart ist. Die zeitliche Aktivitätsvertrauensmaßnahme wird gemäß der folgenden Gleichung bestimmt: conf = (a – b)/(a + b)wobei a = Max (x, M_TH), und b = Max (Y, M_TH), wobei, M_TH der Bewegungsschwellenwert für den Kandidatenblock ist und Y die beste Messung ist, d.h., die kleinste zeitliche Aktivität, und X gleich der aktuellen Kandidatenmessung der zeitlichen Aktivität ist.
  • In den Schritten 1855, 1860, 1865 und 1870, 18, wird die Wahrscheinlichkeitsfunktion für jede der verschiedenen Kriterien erzeugt. Es kann eine Vielzahl von Verfahren verwendet werden, um die Wahrscheinlichkeitsmessung zu erzeugen. Beispielsweise kann ein Treffer in Bezug auf eine Vertrauensmessung vorgeschrieben sein. Wenn die Vertrauensmessung größer ist als ein vorher festgelegter Wert, beispielsweise 0,8, wird der Basistreffer um 10 vermindert; wenn dieser zwischen 0,5 und 0,8 ist, wird der Basistreffer um 5 vermindert. 21 zeigt eine Ausführungsform, in welcher eine Tabelle, die verwendet wird, die Wahrscheinlichkeitsfunktion für die Quadratfehler-Mess-Kriterien zu erzeugen, verwendet wird. Die Tabelle enthält empirisch-bestimmte Basisdaten, welche beliebig in Kasten sind, welche Vertrauens- und Quadratfehlermessungen und bekannte Kandidatendecodierarten enthalten. Insbesondere kann die Tabelle unter Verwendung nicht beschädigter Daten erzeugt werden unter der Annahme, dass der DR verfälscht oder verloren wurde. Schlüssel und Vertrauensmaßnahmen für korrekte und nichtkorrekte Decodierungsarten werden danach erzeugt. Die Tabelle reflektiert die Wahrscheinlichkeit korrekter bis nichtkorrekter Decodierarten. Unter Verwendung dieser Tabelle kann für einen bestimmten Quadratfehlerwert (Reihe) und Vertrauenswert (Spalte) die Wahrscheinlichkeit bestimmt werden. Beispielsweise kann man daher ersehen, dass für eine Vielzahl von Quadratfehlermessungen bei einer Vertrauensmessung von 0 es ungefähr 40% bis 50% Wahrscheinlichkeit gibt, dass der Kandidat korrekt ist. Wenn das Vertrauen nicht 0 ist, sondern klein ist, fällt die Wahrscheinlichkeit signifikant ab. Ähnliche Wahrscheinlichkeitstabellen werden für die Korrelation und zeitlichen Messungen auf Basis von entsprechenden empirischbestimmten Kriterien-Messungen und Vertrauensmessungen erzeugt.
  • Die erzeugten Wahrscheinlichkeiten sind betrachtete Daten, um "Treffer" bei der vorliegenden Ausführungsform zu erzeugen, und, wie früher angemerkt, können andere Verfahren, Kandidatendecodierarten zu bewerten, verwendet werden. Im Schritt 1875 werden die verschiedenen Wahrscheinlichkeiten zu einer Wahrscheinlichkeitsfunktion Li = j·Pi,j kombiniert, wobei j eine Multiplikationsfunktion von Wahrscheinlichkeitsfunktionen Pi,j ist, und Pi,j die Wahrscheinlichkeitsfunktion für den Kandidaten i, Block j ist. Der Kandidat wird daher als der ausgewählt, der die Funktion Li maximiert.
  • Kehrt man zu 18 zurück, so kann es notwendig sein, bestimmte Blockattribute wiederherzustellen, welche in verlorenen Paketen übertragen wurden. Daher werden im Schritt 1810 DR- und MIN-Werte wiederhergestellt, wo dies notwendig ist. Eine Vielzahl von Verfahren, von Vorgabewerten, Mittelwertbildung, Quadratfehlerfunktionen bis zu mehr sophistischen Techniken einschließlich denjenigen, welche in Kondo, Fujimori und Nakaya, "Adaptive Dynamic Range Coding Scheme for Future HDTV Digital VTR," und in Kondo, Fujimori, Nakaya und Uchida, "A New Concealment Method for digital VCR's", IEEE Visual Signal Processing and Communications, 20–22. September 1993, Melbourne, Australien, erläutert wurden, können verwendet werden. Die wiederentwickelten Werte werden verwendet, um die Kandidatendecodierarten wie oben erläutert zu erzeugen.
  • Alternativ werden die DR- und MIN-Werte während des Q-Bit-Bestimmungsprozesses bestimmt. Dies ist in 22 gezeigt. Insbesondere, wie oben aufgeführt, werden bei der vorliegenden Ausführungsform das Bewegungsflag und die Anzahl von Quantisierungsbits im Codierprozess verwendet und später während des Wiederherstellungsprozesses verwendet, um die Anzahl möglicher Kandidatendecodierarten einzuengen. Wie oben angemerkt, kann eine andere Information ebenfalls verwendet werden. Somit kann der Wert von DR und/oder der Wert von MIN ebenfalls verwendet werden, die Daten zu codieren. Alternativ kann ein Bereich von Bits von DR zum Codieren verwendet werden (beispielsweise die beiden niedrigstwertigen Bits von DR). Obwohl die DR-Daten codiert werden, wird die Anzahl möglicher Kandidatendecodierarten signifikant vergrößert, wenn Variable hinzugefügt werden. Bezugnehmend auf 22 werden daher K·M Kandidatendecodierarten erzeugt, wobei K die Anzahl von Kandidatenwerten für die unbekannten Daten ist, beispielsweise K = 4, wenn zwei Bits der Summe von DR1, DR2 und DR3 codiert werden (DR1, DR2 und DR3 zeigen die DR-Werte der Blöcke der Gruppe). Der DR und MIN wird daher wiederhergestellt unter Verwendung der vorgesehenen Hilfsinformation, beispielsweise der beiden codierten Bits der Summe von DR1, DR2 und DR3. Dies verbessert den Prozess zur Kandidatenauswahl auf Kosten von zusätzlichem Platzbedarf, um die größere Anzahl von Kandidatendecodierarten zu prüfen.
  • Es sollte angemerkt sein, dass allgemein, umso mehr benachbarte Blöcke, die decodiert werden, es gibt, umso besser der Q-Bit- und Bewegungsflag-Wiederherstellungsprozess ist. Bei einigen Ausführungsformen wird außerdem der Prozess für jeden nachfolgenden Block eines Puffers angewandt; wenn alle oder einige der FL-Daten verfügbar sind, kann die Anzahl von Kandidatendecodierarten reduziert werden, möglicherweise auf eine Kandidatendecodierart, welche für alle FL-Daten für einen bestimmten Block verfügbar ist. Es ist jedoch wünschenswert, dass der Q-Bit- und Bewegungsflag-Wiederherstellungsprozess zusammen vermieden wird, da der Prozess ein relativ zeitaufwendiger Prozess ist. Weiter ist es wünschenswert, soviel Information wie möglich zu verwenden, um die Q-Bit- Bewegungsflag-Wiederherstellung durchzuführen. Bei einer Ausführungsform werden die Blöcke vom Anfang eines Puffers verarbeitet, bis ein Block mit verlorener Q-Bit- Bewegungsflag-Information erreicht ist. Dies wird als Vorwärts-Q-Bit- und Bewegungsflag-Wiederherstellung definiert. Bei einer anderen Ausführungsform wird auf das Ende des Puffers bezuggenommen, um die Lage des Endes des letzten Blocks des Puffers zu bestimmen, und die Daten werden von dem Ende des Puffers wiederhergestellt, bis ein Block mit verlorenen Q-Bit-/Bewegungsflagdaten erreicht ist. Dies wird als Rückwärts-Q-Bit- und Bewegungsflag-Wiederherstellung definiert.
  • Wie früher erläutert sind die Blöcke aufgrund der Länge der VL-Daten bezüglich der Länge variabel. Daher besteht eine Notwendigkeit, die Anzahl von Bits zu bestimmen, welche die VL-Daten eines Blocks bilden, so dass die Position von nachfolgenden Blöcken in dem Puffer genau lokalisiert werden kann. Während des Codierprozesses wird eine Post-Ambel eines vorher festgelegten und vorzugsweise leicht erkennbaren Musters im Puffer angeordnet, um die nicht verwendeten Bitstellen aufzufüllen. Während des Decodierprozesses wird die Post-Ambel zwischen dem Block und dem Ende des Puffers lokalisiert sein. Da das Muster ein Muster ist, welches leicht erkennbar ist, ermöglicht die Übersicht von Muster von Bits, dass das System den Anfang der Post-Ambel lokalisieren kann und daher das Ende des letzten Blocks im Puffer. Diese Information kann in zwei Arten verwendet werden. Wenn der letzte Block beschädigte Q-Bit-/Bewegungsflagdaten enthält und der Anfang des letzten Blocks bekannt ist (beispielsweise die vorhergehenden Blöcke wurden erfolgreich decodiert), entspricht die Differenz zwischen dem Ende des unmittelbar vorhergehenden Blocks und dem Anfang der Post-Ambel der Länge des Blocks. Diese Information kann verwendet werden, das Q-Bit und/oder Bewegungsflag des Blocks zu berechnen. Die Startlage der Post-Ambel kann ebenfalls verwendet werden, um die Q-Bit- und Bewegungsflag-Wiederherstellung durchzuführen, wobei beim letzten Block begonnen wird und in Richtung auf den Anfang des Puffers weitergegangen wird. Somit kann der Q-Bit- und Bewegungsflag-Wiederherstellungsprozess bidirektional realisiert werden.
  • 23 zeigt die Verwendung einer Post-Ambel im bidirektionalen Q-Bit- und Bewegungsflag-Wiederherstellungsprozess. Bezugnehmend auf 23 weist der Puffer 2300 FL-Daten 2303 für die N Gruppen an Blöcken der VL-Daten auf. Jede Gruppe besteht aus mehreren Blöcken (beispielsweise drei Blöcken). Im vorliegenden Beispiel werden die beiden ersten Gruppen 2305, 2310 decodiert, und die dritte Gruppe 215 kann aufgrund beschädigter DR-/Bewegungsflagdaten nicht unmittelbar decodiert werden. In diesem Zeitpunkt ist der Q-Bit-/Bewegungsflag-Wiederherstellungsprozess erforderlich, um die beschädigten Daten wiederherzustellen. Bevorzugt, die Verarbeitung von Gruppen in der Vorwärtsrichtung fortzusetzen, bezieht sich der Prozess auf das Ende des Puffers, der bestimmt wird, indem auf das Post-Ambel-Muster 220 geschaut wird. Der Beginn der Post-Ambel und daher das Ende der letzten Blockgruppe werden bestimmt. Da die DR-/Bewegungsflag-Daten für die Länge der VL-Daten bezeichnend sind, wird der Anfang der VL-Daten des letzten Blocks und daher das Ende des unmittelbar vorhergehenden Blocks bestimmt. Daher können die Blöcke decodiert werden, beispielsweise die Blöcke 225, 230, 235, bis ein Block 240 mit beschädigten Daten erreicht ist. Die beschädigten Gruppen (215, 240) und die zerstörten Blöcke 250 werden dann wiederhergestellt, wobei vorzugsweise der oben beschriebene Q-Bit/Bewegungsflag-Wiederherstellungsprozess verwendet wird.
  • Es sollte angemerkt sein, dass der bidirektionale Prozess nicht auf eine Sequenz einer Vorwärts- und Umkehrverarbeitung beschränkt ist. Die Verarbeitung kann in jeder oder in beiden Richtungen vorkommen. Bei einigen Ausführungsformen kann es wünschenswert sein, außerdem eine Verarbeitung parallel durchzuführen, um die Effizienz zu verbessern. Schließlich wird in betracht gezogen, dass nicht beschädigte zerstörte Blöcke durch unmittelbares Zugreifen auf die Q-Bit-/Bewegungsflag-Information wiederhergestellt werden können, ohne den oben beschriebenen Q-Bit-/Bewegungsflag-Wiederherstellungsprozess auszuführen.
  • Wie oben angedeutet können eine Vielzahl von Bewertungsverfahren verwendet werden, um die beste Kandidatendecodierart zu bestimmen, welche als die Decodierart auszuwählen ist. Bei einer alternativen Ausführungsform wird die Stetigkeit des Bilds, wobei jede Kandidatendecodierart verwendet wird, ausgewertet. Bei einer Ausführungsform wird die Laplace-Messung durchgeführt. Die Laplace-Messung misst eine Bildflächeneigenschaft zweiter Ordnung, beispielsweise die Oberflächenkrümmung. Für eine lineare Bildfläche wird, d.h., eine stetige Fläche, die Laplace-Messung einen Wert zur Folge haben, der ungefähr null ist.
  • Der Prozess wird mit Hilfe von 24a, 24b und 24c erläutert. 24a zeigt eine Ausführungsform des Laplace-Kerns. Es sei betrachtet, dass andere Ausführungsformen ebenfalls verwendet werden können. Der Kern "L" zeigt einen Bereich von 3 × 3. Um die Stetigkeit des Bildbereichs zu messen, werden Hilfsbereiche 3 × 3 des Bilds (24b) mit dem Kern gefaltet, und die gefalteten Werte werden gemittelt. Die Größe des Bereichs und des Hilfsbereichs (und daher die Kerngröße) können gemäß der Anwendung variiert werden.
  • Eine Ausführungsform des Prozesses wird mit Hilfe von 24c beschrieben. Diese Ausführungsform nutzt einen Kern und eine Hilfsbereichsgröße von 3 × 3 und eine Bereichsgröße von 8 × 8, wobei die individuellen Elemente durch Indizes i, j identifiziert werden. Im Schritt 2460 werden die decodierten Kandidatenwerte × [i] [j] normiert. Beispielsweise können die Werte gemäß der folgenden Gleichung normiert werden:
    Figure 00460001
  • Im Schritt 2465 werden die normierten Werte verwendet, um einen Laplace-Blockwert LX berechnen, der für die Stetigkeit bezeichnend ist, gemäß nachfolgendem:
    Figure 00460002
  • Umso enger der Laplace-Blockwert bei null ist, umso stetiger ist der Bildbereich. Damit kann ein Treffer auf Basis des Laplace-Blockwerts gemessen werden, und das Decodieren mit dem zumindesten Laplace-Wert ist das Korrekte.
  • Die Laplace-Auswertung kann unter Verwendung von codierten Kandidatenwerten q[i][j] erreicht werden. Der Basisprozess ist der gleiche wie im Fall für den Wert des decodierten Kandidaten von 24c. Diese Ausführungsform nutzt einen Kern und eine Hilfsbereichsgröße von 3 × 3 und einer Bereichsgröße von 8 × 8, wobei die individuellen Elemente durch die Indizes i, j identifiziert werden. Im Schritt 2460 werden die codierten Kandidatenwerte q[i][j] normiert. Beispielsweise können die Werte gemäß der folgenden Gleichung normiert werden:
    Figure 00460003
  • Im Schritt 2465 werden die normierten Werte verwendet, den Laplace-Blockwert Lq zu berechnen, der für die Stetigkeit bezeichnend ist, gemäß der folgenden Gleichung:
    Figure 00470001
  • Umso enger der Laplace-Blockwert bei null ist, desto stetiger ist der Bildbereich. Somit kann ein Treffer auf Basis des Laplace-Blockwerts gemessen werden, und der Kandidat mit dem kleinsten Laplace-Wert ist der korrekte Wert.
  • Weitere Variationen können ebenfalls erwogen werden. Bei alternativen Ausführungsformen können Bildflächeneigenschaften höher Ordnung als Stetigkeitsmessung verwendet werden. In diesen Fällen würden Kerne höher Ordnung verwendet werden. Beispielsweise kann eine Laplace-Blockmessung vierter Ordnung unter Verwendung eines Kerns vierter Ordnung durchgeführt werden. Dieser Kern vierter Ordnung kann unter Verwendung von Laplace-Berechnungen zweiter Ordnung kaskadenförmig realisiert werden.
  • Es wird weiter erwogen, dass der Auswertungsprozess davon abhängt, ob das Bild eine Aktivität oder Bewegung hat, die größer ist als ein vorher festgelegter Pegel. Wenn ausgewertet wird, dass der Bildbereich eine größere Bewegung als ein vorher festgelegter Pegel hat, ist es vorteilhaft, Messungen auf Feldbasis im Gegensatz zu einer Basis auf Rahmen durchzuführen. Dies wird mit Hilfe von 25 erläutert. 25 erläutert den Prozess unter Verwendung von Stetigkeitsmessungen; es sei jedoch erwogen, dass dieser Prozess unter Verwendung einer Vielzahl von Arten von Messungen realisiert werden kann.
  • Der Rahmen 2505 eines Bildbereichs besteht aus dem Feld 0 und dem Feld 1. Wenn Bewegung nicht ermittelt wird, wird im Schritt 2510 die Stetigkeitsmessung geschätzt (berechnet), wobei der Laplace-Blockwert für den Block innerhalb jedes Rahmens berechnet wird, Schritt 2515. Wenn größere Bewegung als ein vorher festgelegter Pegel ermittelt wird, werden die Laplace-Blockmessungen in Bezug auf jedes Feld durchgeführt, Schritte 2520, 2525 und die beiden Messungen werden kombiniert, Schritt 2530, beispielsweise gemittelt, um die Stetigkeitsmessung zu erzeugen.
  • Die Bewegung kann mit einer Vielzahl von Arten ermittelt/gemessen werden. Bei einer Ausführungsform wird das Ausmaß der Änderung zwischen Feldern ausgewertet, und Bewegung wird ermittelt, wenn diese einen vorher festgelegten Schwellenwert übersteigt.
  • Die Bewegungsermittlung und Verwendung der Rahmeninformation und der Feldinformation, um wiederhergestellten Werte zu erzeugen (üblicherweise, um verlorene oder beschädigte Werte zu ersetzen), können bei irgendeinem Bereich des Prozesses angewandt werden, für welchen erforderlich ist, dass ein Wiederherstellungswert zu erzeugen ist. Beispielsweise kann die Bewegungsermittlung und die selektive Verwendung der Rahmeninformation und der Feldinformation, um wiederhergestellte Werte zu erzeugen, bei der DR/MIN-Wiederherstellung, der Pixelwiederherstellung sowie bei Q-Bit und Bewegungsflag-Wiederherstellungsprozessen angewandt werden. Somit wird auf Basis der des Pegels der ermittelten Bewegung der Wiederherstellungsprozess existierende Information auf Feldbasis oder Rahmenbasis verwenden. Dieser Prozess kann außerdem mit der Anwendung von Wichtungswerten kombiniert werden, welche auf Basis von Pegeln einer Korrelation in bestimmten Richtungen (beispielsweise horizontal oder vertikal) ausgewählt werden.
  • Bei einer anderen Ausführungsform des Q-Bit- und Bewegungsflag-Wiederherstellungsprozesses werden Kandidatendecodierarten auf Basis von Intrablock- und Interblock-Messungen ausgewertet. In der folgenden Erläuterung bezieht sich der Ausdruck "Block" auf einen Bereich eines Rahmens oder Felds. Die Intrablock-Messung wertet den Kandidatendecodier-Bildbereich aus, beispielsweise die Stetigkeit des Bildbereichs. Die Interblock-Messung misst, wie gut die Kandidatendecodierart zu den benachbarten Bildbereichen passt. 26a und 26b zeigen die kombinierten Interblock- und Intrablock-Auswertung. Insbesondere zeigt 26a eine akzeptable Kandidatendecodierart, wenn sowohl die Interblock-Messung als auch die Intrablock-Messung gut sind, während in 26b die Interblock-Messung gering ist, sogar, obwohl die Intrablock-Messung ziemlich gut ist.
  • Beispiele der Intrablock-Messungen umfassen die Stetigkeitsmessung, die oben beschrieben wurde. Beispiele der Interblock-Messungen umfassen die Quadratfehlermessungen, die früher beschrieben wurden. Eine alternative Interblock-Messung ist das Verhältnis kompatibler Grenzpixel und der Gesamtzahl von Grenzpixeln im Kandidaten-ADRC-Block.
  • Ein Beispiel einer Interblock- und Intrablock-Auswertung eines 8 × 8-Blocks, der ADRC-codiert ist, wird mit Bezug auf 26c, 26d und 26e erläutert. 26d zeigt einen Bildbereich (Block) von Daten von codierten Werten 2650, welche aus q Werten bestehen, von denen Kandidatendecodierwerte x erzeugt werden, und benachbarte decodierte Daten 2655, welche aus y Werten bestehen. Wie im Flussdiagramm von 26c gezeigt ist, wird im Schritt 2605 die Intrablock-Messung berechnet, um eine Messung zu erzeugen, beispielsweise der Laplace-Block Lx. Im Schritt 2610 wird die Interblock-Messung Sx berechnet, um eine Messung einer Kompatibilität zwischen benachbarten Blöcken zu erzeugen. Im Schritt 2515 wird die kombinierte Messung Mx erzeugt. Die kombinierte Messung liefert die Information, die verwendet wird, eine Kandidatendecodierart auszuwählen.
  • Bei der vorliegenden Ausführungsform wird Sx als Anzahl von benachbarten Daten, welche in einem gültigen Bereich liegen, für jedes Grenzpixel der Kandidatendecodierart berechnet (siehe 26e). 26e ist ein Diagramm, welches einen gültigen Bereich für eine Ausführungsform zeigt, welche einen gültigen Bereich jedes beobachteten quantisierten Werts qi zeigt. Somit ist LQ = DR < UQ, wobei LQ, UQ entsprechend die unteren und oberen Grenzen von DR entsprechend der Anzahl von Quantisierungsbits = Q zeigen. Vorzugsweise wird Sx gemäß nachfolgendem normiert: Sx = Sx/Anzahl von Grenzpixeln.
  • Bei der vorliegenden Ausführungsform wird die kombinierte Messung Mx gemäß der folgenden Gleichung berechnet: Mx = Sx + (1 – Lx). Alternativ kann die kombinierte Messung gewichtet werden, so dass die folgende Gleichung verwendet würde: MX = w·Sx + (1 – w)·(1 – Lx), wobei w der Wichtungswert ist, üblicherweise ein empirisch bestimmter Wichtungswert.
  • Weitere Ausführungsformen zum Bestimmen der DR- und MIN-Werte, die verloren/beschädigt wurden, werden ebenfalls erwogen. Beispielsweise können die früher beschriebenen Gleichungen modifiziert werden, um DR- und MIN-Werte mit höherer Genauigkeit wiederherzustellen. Bei einer alternativen Ausführungsform wird ein mittleres Verfahren angewandt. Bei einer Ausführungsform des mittleren Verfahrens wird der Wert von MIN als der Mittelwert aller MINi-Werte wiederhergestellt, und berechnet als: MINi = yi – qi·swobei qi den codierten Pixelwert zeigt, und yi das decodierte Pixel in der Nachbarschaft von qi zeigt. Für die Flankenanpassungs-ADRC, s = DR/(2Q – 1). Für die Nichtflankenanpassungs-ADRC, s = DR/2Q, wobei Q die Anzahl von Quantisierungsbits pro Pixel (Q-Bit-Wert) zeigt.
  • Die verwendeten Werte können zeitlich annähernd oder räumlich annähernd sein. Die Werte von yi können der decodierte Wert des benachbarten Pixels in einem angrenzenden Rahmen/Feld oder das gleiche Feld sein. Die Werte von yi können der decodierte Wert des Pixels von der gleichen Lage wie qi in einem benachbarten Rahmen/Feld oder in einem gleichen Feld sein.
  • Außerdem kann das DR- und/oder MIN-Wiederherstellungsverfahren mit einem Abschneideprozess kombiniert werden, um die Wiederherstellungsgenauigkeit zu verbessern, und um ein Datenüberfließen während des Wiederherstellungsprozesses zu verhindern. Der Abschneideprozess beschränkt die wiederhergestellten Daten auf einen vorher festgelegten Bereich von Werten; somit werden die Werte außerhalb des Bereichs auf die engste Bereichsgrenze abgeschnitten. Bei einer Ausführungsform beschränkt der Abschneideprozess Werte im Bereich [LQ, UQ], wobei LQ, UQ entsprechend die untere und obere Grenze des Bereichs von Pixelwerten zeigt, welche durch die Anzahl von Quantisierungsbits = Q gezeigt werden, und beschränkt weiter die Werte auf: MIN + DR = Num, wobei Num den maximalen Pixelwert zeigt; bei der vorliegenden Ausführungsform gilt: Num = 255. Bei der vorliegenden Ausführungsform, wo anwendbar, UQ + 1 = LQ+1
  • Das Kombinieren der Kriterien zu einer einzelnen Gleichung hat einen nicht begrenzten wiederhergestellten Wert (val') für den DR zur Folge, wobei der zuletzt abgeschnittene wiederhergestellte Wert (val) aus der folgenden Gleichung erlangt wird: Val = max(min(val, min(UQ,255-MIN)),LQ)wobei min und max entsprechend Minimal- und Maximalfunktionen zeigen.
  • Bei einer alternativen Ausführungsform können die Grenzpixel yi, die verwendet werden, einen wiederhergestellten DR und oder MIN zu erzeugen, gefiltert werden, um lediglich diejenigen zu verwenden, die als am besten zu korrelieren erscheinen, wodurch DR und MIN besser wiederhergestellt werden. Die Grenzpixel, welche die Kriterien nicht erfüllen, werden nicht verwendet. Bei einer Ausführungsform wird das Grenzpixel yi als gültig für DR Berechnungen angesehen, wenn ein Wert von DR existiert, so dass LQ = DR < UQ, und ein ursprüngliches Pixel yi als qi codiert werden würde. Somit ist ein Pixel gültig, wenn die folgenden Gleichungen erfüllt werden:
    Figure 00510001
    wobei m den maximalen Quantisierungspegel = 2Q – 1 zeigt. Ein DR-wiederhergestellter Wert (val') kann gemäß der folgenden Gleichung dann berechnet werden:
    Figure 00510002
  • Der Wert kann zu einem gültigen Bereich abgeschnitten werden. Somit zwingt dieser Prozess den wiederhergestellten DR-Wert in das innere des gültigen Bereichs, wie durch die Schwellenwerttabelle definiert ist, wodurch die Genauigkeit für Punkte reduziert wird, wo der wahre DR in der Nähe der Schwellenwert-Tabellengrenze liegt.
  • Bisher wurde angemerkt, dass aufgrund des Quantisierungsrauschens der DR von stationären ADRC-Blöcken leicht von Rahmen zu Rahmen variiert. Wenn diese Veränderung eine ADRC-Codiergrenze kreuzt, und wenn der DR auf mehreren aufeinanderfolgenden Rahmen wiederhergestellt wird, neigt dann der wiederhergestellt DR-Wert mit gültiger Pixelauswahl dazu, bei jedem Kreuzen überzulaufen, was einen bemerkenswerten Blinkeffekt auf der Anzeigeeinrichtung zur Folge hat. Bei einem Versuch, das Auftreten dieses Effektes zu reduzieren, wird bei einer Ausführungsform der Gültigkeitspixel-Auswahlprozess modifiziert, um die oberen und unteren Grenzen zu entspannen, wodurch es Grenzpixeln ermöglicht wird, in den benachbarten gültigen Bereich einzudringen. Wenn Punkte unmittelbar außerhalb der Grenze vorhanden sind, ist es wahrscheinlicher, dass der wiederhergestellte Wert einen Wert in der Nähe von diesem der oberen oder unteren Grenze annehmen wird. Die entspannten Grenzen L'Q und U'Q werden mittels einer Entspannungskonstante r berechnet. Bei einer Ausführungsform wird r auf einen Wert von 5 gesetzt. Andere Werte können verwendet werden: L'Q = rLQ–1 + (1 – r)LQ U'Q = (1 – r)UQ + rUQ+1
  • Die obige Erläuterung zeigt eine Anzahl von Wegen, um DR und MIN wiederherzustellen, wenn die Werte beschädigt oder verloren wurden. Weitere Verbesserungen können realisiert werden, indem die Korrelation zwischen Daten zeitlich und/oder räumlich geprüft wird und entsprechend berechnete wiederentwickelte Werte entsprechend gewichtet werden. Wenn insbesondere es eine große Korrelation in einer bestimmten Richtung oder über die Zeit gibt, beispielsweise eine horizontale Korrelation, besteht eine starke Wahrscheinlichkeit, dass die Bildmerkmale sich in dieser Richtung stetig fortsetzen, welche eine große Korrelation hat und daher ein wiederhergestellter Wert unter Verwendung hoch-korrelierten Daten üblicherweise eine bessere Schätzung erzeugt. Um diesen Vorteil anzunehmen, werden die Grenzdaten in entsprechende Richtungen nach unten abgebrochen (beispielsweise vertikal, horizontal, feldweise) und gemäß der Korrelationsmesssung gewichtet, um einen endgültigen wiederhergestellten Wert zu erzeugen.
  • Eine Ausführungsform des Prozesses wird mit Hilfe von 27a beschrieben. Im Schritt 2710 wird ein Wiederherstellungswert des DR oder des MIN-Werts, die wiederherzustellen sind, in einer Richtung erzeugt, und im Schritt 2715 wird ein Wiederherstellungswert in der anderen Richtung erzeugt. Wenn beispielsweise der Prozess räumlich adaptiv ist, werden Grenzpixel längs horizontaler Grenzen verwendet, um einen ersten Wiederherstellungswert zu erzeugen, "hest", und Grenzpixel längs der vertikalen Grenzen werden verwendet, um einen zweiten Wiederherstellungswert, "vest" zu erzeugen. Wenn der Prozess zeitlich adaptiv ist, werden alternativ dann Grenzpixel zwischen benachbarten Feldern verwendet, um einen ersten Wiederherstellungswert zu erzeugen, und Grenzpixel zwischen benachbarten Rahmen werden verwendet, um einen zweiten Wiederherstellungswert zu erzeugen.
  • Im Schritt 2720 werden die Wiederherstellungswerte gemäß Korrelationsrechnungen gewichtet, welche für den Pegel der Korrelation in jeder Richtung bezeichnend sind. Die gewichteten ersten und zweiten Wiederherstellungswerte werden kombiniert, um einen kombinierten Wiederherstellungswert zu erzeugen, Schritt 2725. Es sollte angemerkt sein, dass der Prozess nicht darauf beschränkt ist, gewichtete Wiederherstellungswerte lediglich in zwei Richtungen zu erzeugen. Man wird schnell erkennen, dass die Anzahl von Wiederherstellungswerten, die gewichtet und kombiniert werden, gemäß der Anwendung variiert werden können. Es kann eine Vielzahl bekannter Verfahren verwendet werden, um einen Korrelationswert zu erzeugen, der für den Pegel der Korrelation in einer bestimmten Richtung bezeichnend ist. Außerdem kann eine Vielzahl von Kriterien verwendet werden, den Wichtungsfaktor im Hinblick auf die Pegel der Korrelation auszuwählen. Wenn eine Korrelation viel größer ist als die andere, sollte üblicherweise der kombinierte Wiederherstellungswert hauptsächlich auf dem entsprechenden Wiederherstellungswert basieren. Bei einer Ausführungsform wird der kombinierte Wiederherstellungswert wie folgt berechnet:
    Figure 00530001
    wobei hc die horizontale Korrelation zeigt, vc die vertikale Korrelation zeigt, hest einen DR-Wiederherstellungswert auf Basis lediglich von linker und rechter Grenzinformation zeigt, und vest einen DR-Wiederherstellungswert auf Basis von lediglich der Kopf- und Bodengrenzinformation zeigt, sowie α den Wichtungswert zeigt. Der Wichtungswert kann in einer Vielzahl von Wegen bestimmt werden. 27b zeigt eine Ausführungsform zum Bestimmen von Wichtungswerten als Funktion der Differenz zwischen der horizontalen Korrelation und der vertikalen Korrelation. Insbesondere wurde α so gewählt, dass gilt:
    Figure 00530002
  • Wie oben angemerkt, ist der adaptive Korrelationsprozess auf sowohl die DR- als auch die MIN-Wiederherstellung anwendbar. Es wird jedoch bevorzugt, dass die MIN-Wiederherstellung abgeschnitten wird, um sicherzustellen, dass MIN + DR = 255, so dass die Funktion val = max(min(val', 255 – MIN), 0) verwendet werden kann. Weiter kann, wie oben angemerkt, die zeitliche Korrelation ausgewertet werden und verwendet werden, Wiederherstellungswerte zu Wichten. Zusätzlich kann eine Kombination von zeitlicher und räumlicher Korrelation durchgeführt werden. Beispielsweise wird ein Wiederherstellungswert zwischen Feldern als ein zeitlicher Wiederherstellungswert erzeugt. Ein weiterer Wiederherstellungswert wird innerhalb eines Felds als räumlicher Wiederherstellungswert erzeugt. Der letzte Wiederherstellungswert wird als Kombinationswert mit einer Kombination zeitlicher und räumlicher Korrelation berechnet. Die Korrelationskombination kann durch eine Bewegungsmenge ersetzt werden. Weitere Variationen können ebenfalls erwogen werden. Das Verfahren kann außerdem bei Audiodaten angewandt werden.
  • Bei einer alternativen Ausführungsform wird eine niedrige komplexe Modifikation für das Verfahren kleinster Quadrate verwendet. Unter Verwendung dieser Ausführungsform wird das Blinken, welches aufgrund wiederhergestellter DR-Werte erfahren wird, reduziert. Für Zwecke der nachfolgenden Erläuterung zeigt QV eine Liste codierter Werte von dem Bildabschnitt oder dem ADRC-Block, dessen DR wiederhergestellt wurde, welche einen Satz von Punkten qi hat, und Y eine Liste decodierter Werte ist, welche von den vertikalen oder horizontalen Nachbarn der Punkte in QV hergenommen wird, wobei yi einen vertikalen oder horizontalen Nachbarn von qi zeigt. Da jeder Punkt qi bis zu vier decodierte Nachbarn haben kann, kann ein Pixel oder Punkt bis zu vier (qi, yi) Paarungen hervorrufen. Die unbefangene Schätzung kleinster Quadrate von DR (DRuls) ist somit:
    Figure 00540001
    wobei Q die Anzahl von Quantisierungsbits ist, MIN der Minimalwert ist, der als Blockattribut übertragen wird. Die obige Gleichung nimmt den Nicht-Flanken-Anpassungs-ADRC an; für Flankenanpassungs-ADRC wird 2Q durch 2Q – 1 ersetzt, und (0,5 + qi) wird durch qi ersetzt.
  • Die unbefangene Schätzung kleinster Quadrate wird vorzugsweise abgeschnitten, um die Konsistenz mit der Schwellenwerttabelle sicherzustellen und der Gleichung MIN + DR = 255, welche während des Codieren erzwungen wurde (üblicherweise für Nicht-Flanken-Anpassungs-ADRC sind zulässige DR-Werte im Bereich von 1–256). Somit wird die Schätzung kleinster Quadrate abgeschnitten (DRlsc) durch: (DR)lsc = max(min(UB, DRuls),LB)wobei UB die obere Grenze zeigt und LB die untere Grenze zeigt, und min und max entsprechend Minimal- und Maximalfunktionen zeigen.
  • Bei einer alternativen Ausführungsform kann die Schätzung verbessert werden, indem die Pixel ausgewählt werden, welche für die DR-Schätzung geeigneter sind, um die Schätzung von DR zu berechnen. Außerdem liefern flache Bereiche in einem Bild Pixel, welche für die DR-Schätzung geeigneter sind, als die Bereiche, in welchen hohe Aktivität vorkommt. Insbesondere kann eine scharfe Flanke am Rand die Genauigkeit der Schätzung vermindern. Die folgende Ausführungsform liefert ein durch einen Rechner leicht durchführbares Verfahren zum Auswählen der Pixel, um einen Schätzwert von DR zu berechnen.
  • Bei einer Ausführungsform wird der Schätzwert kleinster Quadrate (DRlse), beispielsweise DRuls oder DRlsc berechnet. Unter Verwendung dieses Schätzwerts wird die Liste codierter Werte QV in decodierte Kandidatenwerte X transformiert, wobei xi Mitglieder von X sind, welche von Qi hergeleitet werden. Der Wert xi ist ein decodierter wiederhergestellter Wert, der unter Verwendung des ersten Schätzwerts von DR gebildet wird. Der Wert xi ist gemäß der folgenden Gleichung definiert:
    Figure 00550001
  • Unter der Annahme, dass DRlse ein vernünftiger Schätzwert des wahren DR ist, kann irgendeine Stelle, wo xi relativ eng an yi ist, so beurteilt werden, ein niedriger Aktivitätsbereich zu sein und somit eine wünschenswerte Anpassung. Neue X- und Y-Listen können dann in Abwägung von lediglich den Anpassungen gebildet werden, wo xi und yi nahe sind und der Schätzwert, der neu berechnet wurde, und der kleinsten Quadrate, um einen aktualisierten Schätzwert zu erzeugen.
  • Die Kriterien zum Bestimmen, was als "eng" angesehen wird, können in einer Anzahl von Weisen bestimmt werden. Bei einer Ausführungsform wird eine ADRC-Codierung der Fehlerfunktion verwendet. Dieser Versuch ist wünschenswert, da er rechnerisch preiswert ist. Für den Prozess wird eine Liste E, welche aus den Punkten ei = |yi – xi| besteht, definiert. Wenn emin und emax als entsprechend kleinste und größte Werte von der Liste definiert werden, gilt: eDR = emax – emin. Ein codierter Fehlerwert kann dann definiert werden als: gi = (ei – emin)nl/eDRwobei nl die Anzahl von Quantisierungspegeln zum Requantisieren von ei in einer ähnlichen Weise zeigt, wie bei dem oben beschriebenen ADRC-Prozess.
  • Somit werden neue Listen X und Y erzeugt, wobei lediglich die Übereinstimmungen ausgewählt werden, wo gi kleiner ist als irgendein Schwellenwert. Wenn die neuen Listen ausreichend lang sind, können diese Listen verwendet werden, eine neu definierte Schätzung kleinster Quadrate DRrls zu erzeugen. Der Schwellenwert für gi und die Anzahl von Übereinstimmungen, die benötigt werden, bevor die Schätzung kleinster Quadrate verfeinert wird, wird vorzugsweise empirisch bestimmt. Beispielsweise werden bei einer Ausführungsform für einen Prozess, der 8×8×2 horizontal-hilfsabgetastete Blöcke umfasst und nl gleich 10 ist, lediglich Übereinstimmungen entsprechend gi = 0 verwendet, und der Schätzwert wird lediglich verfeinert, wenn die neuen Listen zumindest 30 Übereinstimmungen enthalten.
  • Bei einer alternativen Ausführungsform kann die DR-Schätzung verbessert werden, indem DR-Potentialwerte abgeschnitten werden und eine DR-Schätzung neu berechnet wird. Insbesondere besteht bei einer Ausführungsform eine Liste D aus einer Anzahl di, welche den DR-Wert enthält, der bewirkt, dass xi gleich yi ist. Genauer ausgedrückt gilt: di = 2Q(yi – MIN)/(0,5 + qi)
  • Verbesserungen erkennt man dadurch, dass jedes di abgeschnitten wird. Das heißt: di' = max(min(UB, di),LB)wobei DRcls dann so berechnet wird, der Durchschnitt von di' zu sein. Das Abschneideverfahren (DRcls) kann mit weiteren DR-Schätzwerten kombiniert werden, beispielsweise DRlse in einem gewichteten Durchschnitt, um einen endgültigen DR-Wert zu erzeugen. Beispielsweise wird der gewichtete Durchschnitt DRest gemäß der folgenden Gleichung bestimmt: DRest = w1(DRcls) + w2(DRlse)
  • Die Wichtungen w1 und w2 werden vorzugsweise empirisch bestimmt, indem resultierende Schätzungen und Bilder, welche davon von bestimmten Wichtungen erzeugt werden, geprüft werden. Bei einer Ausführungsform gilt: w1 = 0,22513 und w2 = 0,80739.
  • Die Erfindung wurde im Zusammenhang mit der bevorzugten Ausführungsform beschrieben. Es ist augenscheinlich, dass zahlreiche Alternativen, Modifikationen, Variationen und Verwendungen dem Fachmann im Lichte der obigen Beschreibung deutlich werden.

Claims (17)

  1. Verfahren zur Quellencodierung eines Videosignals, welches eine Sequenz von Bildern darstellt, um eine robuste Fehlerbeseitigung bereitzustellen, wobei das Videosignal mehrere Signalelemente aufweist, welche Pixelwerte innerhalb der Bildersequenz beschreiben, wobei die Quellencodierung aufweist: Codierung jedes Signalelements des Videosignals, um variable Längendaten zu erzeugen, die mehrere Bits umfassen, welche die Pixelwerte innerhalb des Signalelements darstellen; Unterteilen der codierten Signalelemente des Videosignals in mehrere Signalelementensätze, wobei jeder Satz mehrere benachbarte codierte Signalelemente des Videosignals aufweist; Bilden eines Zwischenbitstroms für jeden Signalelementensatz, wobei jeder Zwischenbitstrom die mehreren Bits umfasst, welche jedes Signalelement eines Signalelementensatzes darstellen; und Verteilen der Bits jedes Zwischenbitstroms über mehrere Übertragungsbitströme, so dass die Bits der variablen Längendaten, welche jedes Signalelement darstellen, über die mehreren Übertragungsbitströme verteilt werden.
  2. Verfahren nach Anspruch 1, wobei das Codieren adaptive dynamische Bereichscodierung jedes Signalelements umfasst.
  3. Verfahren nach Anspruch 1, welches weiter das Verteilen codierter Signalelemente innerhalb eines Puffers vor der Verteilung der Bits der codierten Signalelemente über die mehreren Übertragungsbitströme umfasst.
  4. Verfahren nach Anspruch 1, welches außerdem aufweist: Umverteilen der Bits jedes Zwischenbitstroms von den mehreren Übertragungsbitströmen; neu Zuordnen der mehreren codierten Signalelemente von jedem Zwischenbitstrom; und Rekonstruieren des Signals von den neu zugeordneten mehreren codierten Signalelementen.
  5. Verfahren nach Anspruch 1, welches außerdem aufweist: Umverteilen der Bits jedes Zwischenbitstroms von den mehreren Übertragungsbitströmen, wobei die Umverteilung die Bits, die jedes codierte Signalelement zeigen, in eine Position vor dem Verteilungsschritt zurück bringt; und neu Zuordnen codierter Signalelemente der mehreren Übertragungsbitströme in den ursprünglichen Signalelementensatz.
  6. Digitalverarbeitungssystem, welches einen Prozessor aufweist, der konfiguriert ist, Quellencodierung eines Videosignals auszuführen, welches einer Bildsequenz darstellt, um eine robuste Fehlerbeseitigung des Videosignals bereitzustellen, wobei das Videosignal mehrere Signalelemente aufweist, welche Pixelwerte innerhalb der Bildersequenz beschreiben, wobei der Prozessor konfiguriert ist, folgende Schritte durchzuführen: Codierung jedes Signalelements des Videosignals, um variable Längendaten zu erzeugen, welche mehrere Bits umfassen, die Pixelwerte innerhalb des Signalelements darstellen; Unterteilen der codierten Signalelemente des Videosignals in mehrere Signalelementensätze, wobei jeder Satz mehrere benachbarte codierte Signalemente des codierten Videosignals umfasst; Bilden eines Zwischenbitstroms für jeden Datensatz, wobei jeder Zwischenbitstrom die mehreren Bits umfasst, welche jedes codierte Signalelement eines Signalelementensatzes zeigen; und Verteilen der Bits jedes Zwischenbitstroms über mehrere Übertragungsbitströme so, dass die Bits der variablen Längendaten, welche jedes Signalelement darstellen, über die mehreren Übertragungsbitströme verteilt werden.
  7. Digitalverarbeitungssystem nach Anspruch 6, wobei der Codierschritt adaptive dynamische Bereichscodierung jedes Signalelements umfasst.
  8. Digitalverarbeitungssystem nach Anspruch 6, wobei der Prozessor außerdem konfiguriert ist, codierte Signalelemente innerhalb eines Puffers vor der Verteilung der Bits der codierten Signalelemente über die mehreren Übertragungsbitströme zu verteilen.
  9. Digitalverarbeitungssystem nach Anspruch 7, wobei der Prozessor außerdem konfiguriert ist, um die Bits jedes Zwischenbitstroms von den mehreren Übertragungsbits umzuverteilen; die mehreren codierten Signalelemente von jedem Zwischenbitstrom neu zuzuordnen; und das Signal von den neu zugeordneten mehreren codierten Signalelementen zu rekonstruieren.
  10. Digitalverarbeitungssystem nach Anspruch 6, wobei das Verarbeitungssystem außerdem konfiguriert ist, die Bits jedes Zwischenbitstroms von den mehreren Übertragungsbitströmen umzuteilen, wobei die Umverteilung die Bits, die jedes Signalelement zeigen, in eine Position vor dem Verteilungsschritt zurückbringt und codierte Signalelemente der mehreren Übertragungsbitströme in den ursprünglichen Signalelementensatz neu zugeordnet werden.
  11. Computer-lesbares Medium, welches ausführbare Instruktion enthält, welche, wenn diese in einem Verarbeitungssystem ausgeführt wird, bewirkt, dass das System die Schritte durchführt, welche in den Ansprüchen 1 bis 5 definiert sind.
  12. Verfahren zum Decodieren eines quellen-codierten Videosignals, welches nach Anspruch 1 erzeugt wurde, wobei das Verfahren folgende Schritte aufweist: Umverteilen der Bits jedes Zwischenbitstroms von den mehreren Übertragungsbitströmen des quellen-codierten Signals; neu Zuordnen der mehreren codierten Signalelemente von jedem Zwischenbitstrom; und Rekonstruieren des Videosignals von den neu zugeordneten mehreren codierten Signalelementen.
  13. Verfahren zum Wiederherstellen eines quellen-codierten Videosignals, welches nach Anspruch 1 erzeugt wurde, wobei das Verfahren folgende Schritte aufweist: Umverteilen der Bits jedes Zwischenbitstroms von den mehreren Übertragungsbitströmen des quellen-codierten Signals, wobei die Umverteilung die Bits, welche jedes Signalelement zeigt, in eine Position vor dem Verteilungsschritt zurückbringt; und neu Zuordnen codierter Signalelemente der mehreren Übertragungsbitströme in den ursprünglichen Signalelementensatz.
  14. Verarbeitungssystem, welches aufgebaut ist, ein quellen-codiertes Videosignal zu decodieren, welches nach Anspruch 1 erzeugt wurde, wobei das Verarbeitungssystem konfiguriert ist, die Bits jedes Zwischenbitstroms von den mehreren Übertragungsbitströmen des quellen-codierten Signals umzuverteilen, die mehreren codierten Signalelemente von jedem Zwischenbitstrom neu zuzuordnen und das Signalelement von den mehreren codierten Signalelementen zu rekonstruieren.
  15. Verarbeitungssystem, welches aufgebaut ist, ein quellen-codiertes Videosignal zu decodieren, welches nach Anspruch 1 erzeugt wurde, wobei das Verarbeitungssystem konfiguriert ist, die Bits jedes Zwischenbitstroms von den mehreren Übertragungsbitströmen des quellen-codierten Signals umzuverteilen, wobei die Umverteilung die Bits, welche jedes Signalelement darstellen, in eine Position vor dem Verteilungsschritt zurückbringt, und die codierten Signalelemente der mehreren Zwischenbitströme in den Signalelementensatz neu zugeordnet werden.
  16. Computer-lesbares Medium, welches ausführbare Instruktionen enthält, welche, wenn diese in einem Verarbeitungssystem ausgeführt werden, bewirken, dass das System die Schritte durchführt, ein quellen-codiertes Videosignal, welches nach Anspruch 1 erzeugt wurde, zu decodieren, wobei das Verfahren folgende Schritte aufweist: Umverteilen der Bits jedes Zwischenbitstroms von den mehreren Übertragungsbitströmen des quellen-codierten Signals; neu Zuordnen der mehreren codierten Signalelemente von jedem Zwischenbitstrom; und Rekonstruieren des Signals von den mehreren codierten Signalelementen.
  17. Computer-lesbares Medium, welches ausführbare Instruktionen enthält, welche, wenn in einem Verarbeitungssystem ausgeführt, bewirken, dass das System die Schritte durchführt, um ein quellen-codiertes Videosignal zu decodieren, welches nach Anspruch 1 erzeugt wurde, wobei das Decodieren folgende Schritte aufweist: Umverteilen der Bits jedes Zwischenbitstroms von den mehreren Übertragungsbitströmen des quellen-codierten Signals, wobei die Umverteilung die Bits, die jedes Signalelement zeigen, in eine Position vor dem Verteilungsschritt zurückbringt; und neu Zuordnen codierter Signalelemente der mehreren Übertragungsbitströme in den ursprünglichen Signalelementensatz.
DE69838224T 1997-10-23 1998-10-22 Quellenkodierung für robuste fehlerbeseitigung während übertragungsverlust Expired - Lifetime DE69838224T2 (de)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US2553 1987-01-21
US95755597A 1997-10-23 1997-10-23
US95687097A 1997-10-23 1997-10-23
US95663297A 1997-10-23 1997-10-23
US956632 1997-10-23
US957555 1997-10-23
US956870 1997-10-23
US247098A 1998-01-02 1998-01-02
US255398A 1998-01-02 1998-01-02
US254798A 1998-01-02 1998-01-02
US2470 1998-01-02
US16083 1998-01-30
US09/016,083 US6581170B1 (en) 1997-10-23 1998-01-30 Source coding to provide for robust error recovery during transmission losses
PCT/US1998/022347 WO1999021372A1 (en) 1997-10-23 1998-10-22 Source coding to provide for robust error recovery during transmission losses
US2547 2001-11-14

Publications (2)

Publication Number Publication Date
DE69838224D1 DE69838224D1 (de) 2007-09-20
DE69838224T2 true DE69838224T2 (de) 2008-05-08

Family

ID=27567286

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69838224T Expired - Lifetime DE69838224T2 (de) 1997-10-23 1998-10-22 Quellenkodierung für robuste fehlerbeseitigung während übertragungsverlust

Country Status (10)

Country Link
US (8) US6298085B1 (de)
EP (1) EP1025710B1 (de)
JP (1) JP4190148B2 (de)
CN (1) CN100348052C (de)
AT (1) ATE369702T1 (de)
AU (1) AU1194399A (de)
CA (1) CA2306897C (de)
DE (1) DE69838224T2 (de)
ID (1) ID28138A (de)
WO (1) WO1999021372A1 (de)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6581170B1 (en) * 1997-10-23 2003-06-17 Sony Corporation Source coding to provide for robust error recovery during transmission losses
US6298085B1 (en) * 1997-10-23 2001-10-02 Sony Corporation Source encoding using shuffling of data to provide robust error recovery in a burst error-environment
US7047190B1 (en) 1999-04-19 2006-05-16 At&Tcorp. Method and apparatus for performing packet loss or frame erasure concealment
US7117156B1 (en) * 1999-04-19 2006-10-03 At&T Corp. Method and apparatus for performing packet loss or frame erasure concealment
KR100343766B1 (ko) * 1999-06-08 2002-07-20 마쯔시다덴기산교 가부시키가이샤 영상신호 셔플링, 부호화, 복호화 장치 및 그 프로그램기록매체
US6549672B1 (en) * 1999-06-29 2003-04-15 Sony Corporation Method and apparatus for recovery of encoded data using central value
US6493842B1 (en) * 1999-06-29 2002-12-10 Sony Corporation Time-varying randomization for data synchronization and implicit information transmission
US6473876B1 (en) 1999-06-29 2002-10-29 Sony Corporation Method and apparatus for encoding of bitstreams using rotation
US6330281B1 (en) * 1999-08-06 2001-12-11 Richfx Ltd. Model-based view extrapolation for interactive virtual reality systems
US6915024B1 (en) * 2000-09-29 2005-07-05 Hewlett-Packard Development Company, L.P. Image sharpening by variable contrast mapping
FI115178B (fi) * 2000-10-31 2005-03-15 Nokia Corp Menetelmä ja järjestely bittien suojaamiseksi parhaalla mahdollisella tavalla tiedonsiirtovirheitä vastaan
US20070055498A1 (en) * 2000-11-15 2007-03-08 Kapilow David A Method and apparatus for performing packet loss or frame erasure concealment
US7538764B2 (en) * 2001-01-05 2009-05-26 Interuniversitair Micro-Elektronica Centrum (Imec) System and method to obtain surface structures of multi-dimensional objects, and to represent those surface structures for animation, transmission and display
GB0117157D0 (en) * 2001-07-16 2001-09-05 Imec Inter Uni Micro Electr Extraction, hierarchical representation and flexible compression of surface meshes derived from 3D data
US20020157058A1 (en) * 2001-02-20 2002-10-24 Cute Ltd. System and method for feedback-based unequal error protection coding
US6981263B1 (en) * 2001-06-29 2005-12-27 Bellsouth Intellectual Property Corp. Methods and systems for converged service creation and execution environment applications
AU2002326713B2 (en) 2001-08-23 2006-12-14 Polycom, Inc. System and method for video error concealment
US7120308B2 (en) 2001-11-26 2006-10-10 Seiko Epson Corporation Iterated de-noising for image recovery
US6754203B2 (en) 2001-11-27 2004-06-22 The Board Of Trustees Of The University Of Illinois Method and program product for organizing data into packets
US7260269B2 (en) * 2002-08-28 2007-08-21 Seiko Epson Corporation Image recovery using thresholding and direct linear solvers
US6963290B2 (en) * 2002-11-27 2005-11-08 Halliburton Energy Services, Inc. Data recovery for pulse telemetry using pulse position modulation
US20040176981A1 (en) * 2003-01-16 2004-09-09 Martello Edward A. System architectures for computer aided detection (CAD) processor system
US7352909B2 (en) * 2003-06-02 2008-04-01 Seiko Epson Corporation Weighted overcomplete de-noising
US7277513B2 (en) * 2003-08-28 2007-10-02 Texas Instruments Incorporated Frequency domain notching with dummy subchannels
US20050105817A1 (en) * 2003-11-17 2005-05-19 Guleryuz Onur G. Inter and intra band prediction of singularity coefficients using estimates based on nonlinear approximants
JP4063205B2 (ja) * 2003-11-20 2008-03-19 セイコーエプソン株式会社 画像データ圧縮装置及びエンコーダ
US7817869B2 (en) * 2004-05-07 2010-10-19 Sony Corporation Variable support robust transform for multiple description coding
US7900125B1 (en) 2004-05-24 2011-03-01 Seagate Technology Llc Majority detection in error recovery
US20050262423A1 (en) * 2004-05-24 2005-11-24 Maxtor Corporation Majority detection in error recovery
GB0428160D0 (en) * 2004-12-22 2005-01-26 British Telecomm Variable bit rate processing
KR20080000579A (ko) * 2005-03-07 2008-01-02 코닌클리케 필립스 일렉트로닉스 엔.브이. 비디오 스트림 데이터의 버퍼링
US7856583B1 (en) * 2005-09-16 2010-12-21 Network Equipment Technologies, Inc. Techniques for enhanced reliability of data transfer with dynamic scaling
US7634706B1 (en) * 2005-11-22 2009-12-15 Seagate Technology Llc Majority-detected erasure enhanced error correction
US8605797B2 (en) * 2006-02-15 2013-12-10 Samsung Electronics Co., Ltd. Method and system for partitioning and encoding of uncompressed video for transmission over wireless medium
US20070189383A1 (en) * 2006-02-15 2007-08-16 Samsung Electronics Co., Ltd. Method and system for appending redundancy to uncompressed video for transmission over wireless communication channels
US7885032B1 (en) 2006-03-06 2011-02-08 Seagate Technology Llc Apparatus and method for bulk erasure of disk drives
EP2024546A4 (de) * 2006-06-02 2009-11-11 Cryntel Entpr Ltd Inc Verfahren und vorrichtung zum formen und schneiden von vinylfliesen mit rollrändern
WO2008155835A1 (ja) * 2007-06-20 2008-12-24 Fujitsu Limited 復号装置、復号方法、及びプログラム
KR100956726B1 (ko) * 2007-07-20 2010-05-06 삼성전자주식회사 비동기적으로 수신한 맵 정보 또는 데이터에 발생한 오류를 검출하는 릴레이
US8842739B2 (en) * 2007-07-20 2014-09-23 Samsung Electronics Co., Ltd. Method and system for communication of uncompressed video information in wireless systems
KR101355633B1 (ko) * 2007-11-06 2014-01-29 삼성전자주식회사 인코더 및 인코딩 방법
US20090161750A1 (en) * 2007-12-19 2009-06-25 Marc Racicot Multiplexing video using a dsp
US8502821B2 (en) * 2008-02-04 2013-08-06 C Speed, Llc System for three-dimensional rendering of electrical test and measurement signals
WO2010014973A1 (en) * 2008-08-01 2010-02-04 Real D Method and apparatus to mark and identify stereoscopic video frames
JP5049942B2 (ja) * 2008-10-28 2012-10-17 キヤノン株式会社 復号装置、復号方法、及びプログラム
US9369759B2 (en) * 2009-04-15 2016-06-14 Samsung Electronics Co., Ltd. Method and system for progressive rate adaptation for uncompressed video communication in wireless systems
HUE054630T2 (hu) 2010-07-14 2021-09-28 Ntt Docomo Inc Kis komplexitású intra predikció videó kódoláshoz
KR101215152B1 (ko) 2011-04-21 2012-12-24 한양대학교 산학협력단 인루프 필터링을 적용한 예측 방법을 이용한 영상 부호화/복호화 방법 및 장치
WO2013086724A1 (en) * 2011-12-15 2013-06-20 Mediatek Singapore Pte. Ltd. Method of clippling transformed coefficients before de-quantization
US10412600B2 (en) * 2013-05-06 2019-09-10 Itron Networked Solutions, Inc. Leveraging diverse communication links to improve communication between network subregions
US8879858B1 (en) * 2013-10-01 2014-11-04 Gopro, Inc. Multi-channel bit packing engine
US10157620B2 (en) * 2014-03-04 2018-12-18 Interactive Intelligence Group, Inc. System and method to correct for packet loss in automatic speech recognition systems utilizing linear interpolation
US10638135B1 (en) * 2018-01-29 2020-04-28 Amazon Technologies, Inc. Confidence-based encoding
KR20220151484A (ko) * 2021-05-06 2022-11-15 삼성전자주식회사 확장된 대역폭에서 자원들을 재사용하기 위한 장치 및 방법

Family Cites Families (129)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3311879A (en) 1963-04-18 1967-03-28 Ibm Error checking system for variable length data
US3805232A (en) * 1972-01-24 1974-04-16 Honeywell Inf Systems Encoder/decoder for code words of variable length
FR2387557A1 (fr) 1977-04-14 1978-11-10 Telediffusion Fse Systemes de reduction de visibilite du bruit sur des images de television
GB2073534B (en) 1980-04-02 1984-04-04 Sony Corp Error concealment in digital television signals
GB2084432A (en) 1980-09-18 1982-04-07 Sony Corp Error concealment in digital television signals
US4428064A (en) * 1981-03-06 1984-01-24 International Business Machines Corporation Controlling buffered peripheral subsystems
US4532628A (en) 1983-02-28 1985-07-30 The Perkin-Elmer Corporation System for periodically reading all memory locations to detect errors
US4574393A (en) 1983-04-14 1986-03-04 Blackwell George F Gray scale image processor
JPH0746864B2 (ja) 1984-08-22 1995-05-17 ソニー株式会社 高能率符号化装置
EP0185533B1 (de) 1984-12-19 1991-03-27 Sony Corporation Hochleistungsfähige Technik zur Kodierung eines digitalen Videosignals
JPH0793724B2 (ja) 1984-12-21 1995-10-09 ソニー株式会社 テレビジョン信号の高能率符号化装置及び符号化方法
JP2512894B2 (ja) 1985-11-05 1996-07-03 ソニー株式会社 高能率符号化/復号装置
JP2670259B2 (ja) * 1985-11-29 1997-10-29 ソニー株式会社 高能率符号化装置
JPH0746862B2 (ja) * 1985-11-30 1995-05-17 ソニー株式会社 駒落とし圧縮符号化及び復号化方法
JP2612557B2 (ja) 1985-12-18 1997-05-21 ソニー株式会社 データ伝送受信システム及びデータ復号装置
JPS62231569A (ja) 1986-03-31 1987-10-12 Fuji Photo Film Co Ltd 予測誤差の量子化方法
JP2751201B2 (ja) * 1988-04-19 1998-05-18 ソニー株式会社 データ伝送装置及び受信装置
JP2508439B2 (ja) 1987-05-29 1996-06-19 ソニー株式会社 高能率符号化装置
DE3869475D1 (de) 1987-06-02 1992-04-30 Siemens Ag Verfahren zur ermittlung von bewegungsvektorfeldern aus digitalen bildsequenzen.
US4885636A (en) 1987-06-22 1989-12-05 Eastman Kodak Company Block adaptive linear predictive coding with adaptive gain and bias
US5122873A (en) * 1987-10-05 1992-06-16 Intel Corporation Method and apparatus for selectively encoding and decoding a digital motion video signal at multiple resolution levels
US5093872A (en) 1987-11-09 1992-03-03 Interand Corporation Electronic image compression method and apparatus using interlocking digitate geometric sub-areas to improve the quality of reconstructed images
JP2629238B2 (ja) 1988-02-05 1997-07-09 ソニー株式会社 復号装置及び復号方法
SE503549C2 (sv) 1988-09-15 1996-07-01 Telia Ab Kryptering med efterföljande källkodning
US4953023A (en) * 1988-09-29 1990-08-28 Sony Corporation Coding apparatus for encoding and compressing video data
JP2900385B2 (ja) * 1988-12-16 1999-06-02 ソニー株式会社 フレーム化回路及び方法
US5150210A (en) * 1988-12-26 1992-09-22 Canon Kabushiki Kaisha Image signal restoring apparatus
JP3018366B2 (ja) 1989-02-08 2000-03-13 ソニー株式会社 ビデオ信号処理回路
JPH02248161A (ja) * 1989-03-20 1990-10-03 Fujitsu Ltd データ伝送方式
US5185746A (en) 1989-04-14 1993-02-09 Mitsubishi Denki Kabushiki Kaisha Optical recording system with error correction and data recording distributed across multiple disk drives
JPH02280462A (ja) 1989-04-20 1990-11-16 Fuji Photo Film Co Ltd 画像データ圧縮方法
EP0398741B1 (de) 1989-05-19 1997-10-29 Canon Kabushiki Kaisha System zum Übertragen von Bildinformation
US5208816A (en) * 1989-08-18 1993-05-04 At&T Bell Laboratories Generalized viterbi decoding algorithms
JPH03141752A (ja) 1989-10-27 1991-06-17 Hitachi Ltd 画像信号伝送方法
US5081675A (en) * 1989-11-13 1992-01-14 Kitti Kittirutsunetorn System for protection of software in memory against unauthorized use
JP2533393B2 (ja) 1990-02-16 1996-09-11 シャープ株式会社 Ntsc―hdコンバ―タ
US5166987A (en) 1990-04-04 1992-11-24 Sony Corporation Encoding apparatus with two stages of data compression
US5101446A (en) 1990-05-31 1992-03-31 Aware, Inc. Method and apparatus for coding an image
JPH0474063A (ja) 1990-07-13 1992-03-09 Matsushita Electric Ind Co Ltd 画像の符号化方法
JP2650472B2 (ja) 1990-07-30 1997-09-03 松下電器産業株式会社 ディジタル信号記録装置およびディジタル信号記録方法
JP2969867B2 (ja) 1990-08-31 1999-11-02 ソニー株式会社 ディジタル画像信号の高能率符号化装置
GB9019538D0 (en) 1990-09-07 1990-10-24 Philips Electronic Associated Tracking a moving object
US5416651A (en) 1990-10-31 1995-05-16 Sony Corporation Apparatus for magnetically recording digital data
US5243428A (en) 1991-01-29 1993-09-07 North American Philips Corporation Method and apparatus for concealing errors in a digital television
US5636316A (en) 1990-12-05 1997-06-03 Hitachi, Ltd. Picture signal digital processing unit
JP2906671B2 (ja) 1990-12-28 1999-06-21 ソニー株式会社 ディジタルビデオ信号の高能率符号化装置およびその方法
DE69226095T2 (de) 1991-01-17 1999-03-11 Sharp Kk Bildkodier- und Dekodiersystem unter Verwendung einer Orthogonaltransformation und Bitzuordnungsverfahren
DE69225621T2 (de) 1991-01-17 1998-11-12 Mitsubishi Electric Corp Vorrichtung zur Kodierung eines Videosignals
US5260783A (en) * 1991-02-21 1993-11-09 Gte Laboratories Incorporated Layered DCT video coder for packet switched ATM networks
US5455629A (en) 1991-02-27 1995-10-03 Rca Thomson Licensing Corporation Apparatus for concealing errors in a digital video processing system
JP3125451B2 (ja) 1991-11-05 2001-01-15 ソニー株式会社 信号処理方法
JPH04358486A (ja) * 1991-06-04 1992-12-11 Toshiba Corp 高能率符号化信号処理装置
JP2766919B2 (ja) 1991-06-07 1998-06-18 三菱電機株式会社 ディジタル信号記録再生装置、ディジタル信号記録装置、ディジタル信号再生装置
US5263026A (en) 1991-06-27 1993-11-16 Hughes Aircraft Company Maximum likelihood sequence estimation based equalization within a mobile digital cellular receiver
JP3141896B2 (ja) 1991-08-09 2001-03-07 ソニー株式会社 ディジタルビデオ信号の記録装置
DE69217150T2 (de) * 1991-09-30 1997-07-17 Philips Electronics Nv Bewegungsvektorschätzung, Bewegungsbildkodierung- und -speicherung
JPH05103309A (ja) 1991-10-04 1993-04-23 Canon Inc 情報伝送方法及び装置
US5398078A (en) 1991-10-31 1995-03-14 Kabushiki Kaisha Toshiba Method of detecting a motion vector in an image coding apparatus
US5466456A (en) 1991-11-27 1995-11-14 Glover; Morris S. Facial cleanser
JP3278881B2 (ja) 1991-12-13 2002-04-30 ソニー株式会社 画像信号生成装置
US5473479A (en) 1992-01-17 1995-12-05 Sharp Kabushiki Kaisha Digital recording and/or reproduction apparatus of video signal rearranging components within a fixed length block
JP3360844B2 (ja) 1992-02-04 2003-01-07 ソニー株式会社 ディジタル画像信号の伝送装置およびフレーム化方法
JPH05236427A (ja) 1992-02-25 1993-09-10 Sony Corp 画像信号の符号化装置及び符号化方法
US5307175A (en) 1992-03-27 1994-04-26 Xerox Corporation Optical image defocus correction
JP3259323B2 (ja) * 1992-04-13 2002-02-25 ソニー株式会社 デ・インターリーブ回路
US5325203A (en) 1992-04-16 1994-06-28 Sony Corporation Adaptively controlled noise reduction device for producing a continuous output
JP3438233B2 (ja) 1992-05-22 2003-08-18 ソニー株式会社 画像変換装置および方法
JP2976701B2 (ja) 1992-06-24 1999-11-10 日本電気株式会社 量子化ビット数割当方法
US5440345A (en) 1992-07-17 1995-08-08 Kabushiki Kaisha Toshiba High efficient encoding/decoding system
JP3191426B2 (ja) * 1992-07-24 2001-07-23 ソニー株式会社 ディジタルビデオテープレコーダ
US5359694A (en) 1992-07-27 1994-10-25 Teknekron Communications Systems, Inc. Method and apparatus for converting image data
US5438369A (en) 1992-08-17 1995-08-01 Zenith Electronics Corporation Digital data interleaving system with improved error correctability for vertically correlated interference
US5481554A (en) 1992-09-02 1996-01-02 Sony Corporation Data transmission apparatus for transmitting code data
JPH06153180A (ja) * 1992-09-16 1994-05-31 Fujitsu Ltd 画像データ符号化方法及び装置
JPH06121192A (ja) 1992-10-08 1994-04-28 Sony Corp ノイズ除去回路
AU5344794A (en) 1992-10-29 1994-05-24 Hisamitsu Pharmaceutical Co., Inc. Cyclohexanol derivative, agent and composition containing the same for imparting pleasantly cool feeling, process for producing the derivative, and intermediate therefor
JPH06153151A (ja) * 1992-10-31 1994-05-31 Sony Corp ディジタルビデオ信号記録装置
DE596826T1 (de) 1992-11-06 1994-10-06 Gold Star Co Mischungsverfahren für ein digitales Videobandaufzeichnungsgerät.
US5689302A (en) 1992-12-10 1997-11-18 British Broadcasting Corp. Higher definition video signals from lower definition sources
US5477276A (en) * 1992-12-17 1995-12-19 Sony Corporation Digital signal processing apparatus for achieving fade-in and fade-out effects on digital video signals
JPH06205386A (ja) 1992-12-28 1994-07-22 Canon Inc 画像再生装置
US5805762A (en) 1993-01-13 1998-09-08 Hitachi America, Ltd. Video recording device compatible transmitter
US5416847A (en) 1993-02-12 1995-05-16 The Walt Disney Company Multi-band, digital audio noise filter
US5737022A (en) 1993-02-26 1998-04-07 Kabushiki Kaisha Toshiba Motion picture error concealment using simplified motion compensation
JP3259428B2 (ja) 1993-03-24 2002-02-25 ソニー株式会社 ディジタル画像信号のコンシール装置及び方法
KR100261072B1 (ko) 1993-04-30 2000-07-01 윤종용 디지털 신호처리시스템
KR940026915A (ko) 1993-05-24 1994-12-10 오오가 노리오 디지탈 비디오신호 기록장치 및 재생장치 및 기록방법
JPH0730855A (ja) * 1993-07-08 1995-01-31 Sony Corp ビデオデータの記録方法
US5499057A (en) * 1993-08-27 1996-03-12 Sony Corporation Apparatus for producing a noise-reducded image signal from an input image signal
JP3557626B2 (ja) * 1993-08-27 2004-08-25 ソニー株式会社 画像復元装置及び方法
US5406334A (en) 1993-08-30 1995-04-11 Sony Corporation Apparatus and method for producing a zoomed image signal
KR960012931B1 (ko) * 1993-08-31 1996-09-25 대우전자 주식회사 분류 벡터 양자화된 영상의 채널 오류 은폐 방법
JP3590996B2 (ja) 1993-09-30 2004-11-17 ソニー株式会社 ディジタル画像信号の階層符号化および復号装置
US5663764A (en) 1993-09-30 1997-09-02 Sony Corporation Hierarchical encoding and decoding apparatus for a digital image signal
JP3495766B2 (ja) 1993-10-01 2004-02-09 テキサス インスツルメンツ インコーポレイテツド 画像処理方法
JP2862064B2 (ja) 1993-10-29 1999-02-24 三菱電機株式会社 データ復号装置及びデータ受信装置及びデータ受信方法
KR100269213B1 (ko) 1993-10-30 2000-10-16 윤종용 오디오신호의부호화방법
US5617333A (en) * 1993-11-29 1997-04-01 Kokusai Electric Co., Ltd. Method and apparatus for transmission of image data
JP3271108B2 (ja) 1993-12-03 2002-04-02 ソニー株式会社 ディジタル画像信号の処理装置および方法
US5495598A (en) * 1993-12-23 1996-02-27 Unisys Corporation Stuck fault detection for branch instruction condition signals
JPH07203428A (ja) 1993-12-28 1995-08-04 Canon Inc 画像処理方法及び装置
JP3321972B2 (ja) 1994-02-15 2002-09-09 ソニー株式会社 ディジタル信号記録装置
JP3161217B2 (ja) * 1994-04-28 2001-04-25 松下電器産業株式会社 画像符号化記録装置および記録再生装置
KR100234583B1 (ko) * 1994-06-14 2000-01-15 모리시타 요이찌 비디오 신호 기록 장치, 비디오 신호 기록 및 재생 장치, 비디오 신호 코딩 장치, 및 비디오 신호 전송 장치
JP3336754B2 (ja) 1994-08-19 2002-10-21 ソニー株式会社 デジタルビデオ信号の記録方法及び記録装置
WO1996007987A1 (fr) 1994-09-09 1996-03-14 Sony Corporation Circuit integre pour le traitement des signaux numeriques
US5577053A (en) 1994-09-14 1996-11-19 Ericsson Inc. Method and apparatus for decoder optimization
JPH08140091A (ja) 1994-11-07 1996-05-31 Kokusai Electric Co Ltd 画像伝送システム
US5571862A (en) 1994-11-28 1996-11-05 Cytec Technology Corp. Stabilized polyacrylamide emulsions and methods of making same
US5594807A (en) 1994-12-22 1997-01-14 Siemens Medical Systems, Inc. System and method for adaptive filtering of images based on similarity between histograms
US5852470A (en) 1995-05-31 1998-12-22 Sony Corporation Signal converting apparatus and signal converting method
US5552608A (en) * 1995-06-26 1996-09-03 Philips Electronics North America Corporation Closed cycle gas cryogenically cooled radiation detector
US5946044A (en) 1995-06-30 1999-08-31 Sony Corporation Image signal converting method and image signal converting apparatus
JPH0918357A (ja) * 1995-06-30 1997-01-17 Sony Corp データシャフリング方法およびその装置
FR2736743B1 (fr) 1995-07-10 1997-09-12 France Telecom Procede de controle de debit de sortie d'un codeur de donnees numeriques representatives de sequences d'images
JP3617879B2 (ja) 1995-09-12 2005-02-09 株式会社東芝 実時間ストリームサーバのディスク修復方法及びディスク修復装置
US5558608A (en) 1995-09-29 1996-09-24 Hall; Barry L. Motor vehicle mountable exercise device
KR0155900B1 (ko) * 1995-10-18 1998-11-16 김광호 위상에러검출방법 및 위상 트래킹 루프회로
US5724369A (en) 1995-10-26 1998-03-03 Motorola Inc. Method and device for concealment and containment of errors in a macroblock-based video codec
KR100196872B1 (ko) 1995-12-23 1999-06-15 전주범 영상 복화화 시스템의 영상 에러 복구 장치
KR100197366B1 (ko) 1995-12-23 1999-06-15 전주범 영상 에러 복구 장치
US5751862A (en) 1996-05-08 1998-05-12 Xerox Corporation Self-timed two-dimensional filter
JP3352887B2 (ja) 1996-09-09 2002-12-03 株式会社東芝 クランプ付除算器、このクランプ付除算器を備えた情報処理装置及び除算処理におけるクランプ方法
US6134269A (en) 1996-09-25 2000-10-17 At&T Corp Fixed or adaptive deinterleaved transform coding for image coding and intra coding of video
KR100196840B1 (ko) 1996-12-27 1999-06-15 전주범 영상복호화시스템에 있어서 비트에러복원장치
US5938318A (en) 1997-08-19 1999-08-17 Mattsen; Gregory Paul Novelty shadow projection lamp
US6298085B1 (en) * 1997-10-23 2001-10-02 Sony Corporation Source encoding using shuffling of data to provide robust error recovery in a burst error-environment
CN1219255C (zh) 1997-10-23 2005-09-14 索尼电子有限公司 差错恢复的设备与方法
WO1999021285A1 (en) 1997-10-23 1999-04-29 Sony Electronics, Inc. Apparatus and method for recovery of lost/damaged data in a bitstream of data based on compatibility

Also Published As

Publication number Publication date
US6311297B1 (en) 2001-10-30
US6332042B1 (en) 2001-12-18
JP2001521348A (ja) 2001-11-06
CN1283368A (zh) 2001-02-07
US6212663B1 (en) 2001-04-03
US6263468B1 (en) 2001-07-17
US6298085B1 (en) 2001-10-02
ATE369702T1 (de) 2007-08-15
US6163868A (en) 2000-12-19
DE69838224D1 (de) 2007-09-20
EP1025710B1 (de) 2007-08-08
WO1999021372A1 (en) 1999-04-29
CN100348052C (zh) 2007-11-07
JP4190148B2 (ja) 2008-12-03
EP1025710A1 (de) 2000-08-09
US6263108B1 (en) 2001-07-17
CA2306897C (en) 2007-12-18
US6963999B2 (en) 2005-11-08
CA2306897A1 (en) 1999-04-29
AU1194399A (en) 1999-05-10
US20030196159A1 (en) 2003-10-16
ID28138A (id) 2001-05-03

Similar Documents

Publication Publication Date Title
DE69838224T2 (de) Quellenkodierung für robuste fehlerbeseitigung während übertragungsverlust
DE4228221B4 (de) Vorrichtung zur Aufteilung von Videosignalen zwischen zwei Kanälen
DE3514916C2 (de)
US6389562B1 (en) Source code shuffling to provide for robust error recovery
DE3814627A1 (de) Kodieranordnung
EP0309669A2 (de) Verfahren zur szenenmodellgestützten Bilddatenreduktion für digitale Fernsehsignale
EP0698316B1 (de) Verfahren zum Übertragen von Bildern mit ungleichem Fehlerschutz
EP1027651B1 (de) Vorrichtung und verfahren zur robusten fehlerkorrektur in einer verlustbehafteten übertragungsumgebung
EP1025647B1 (de) Anwendung und verfahren zur rückgewinnung von verlorenen/beschädigten daten in einem databitstrom begründet auf kompabilität
DE19744859A1 (de) Verfahren zum Codieren eines binären Formsignals
EP1025707B1 (de) Vorrichtung und verfahren zur abbildung eines bildes auf blöcke zur robusten fehlerbeseitigung in einer verlustbehafteten übertragungsumgebung
KR100577091B1 (ko) 손실이 있는 송신 환경에서 강력한 에러 회복을 실행하기 위한 데이터 블록의 생성 방법, 장치 및 프로세서, 및 컴퓨터 판독 가능한 매체
DE60310128T2 (de) Verfahren zur wavelet-bildcodierung und entsprechendes decodierungsverfahren
US6282684B1 (en) Apparatus and method for recovery of data in a lossy transmission environment
EP1040444B1 (de) Vorrichtung und verfahren zur wiedergewinnung von quantisierungskoden in einer verlustbehafteten übertragungsumgebung
EP1025705B1 (de) Vorrichtung und verfahren zur teilpufferung übertragener daten für robuste fehlerbeseitigung in einer verlustbehafteten übertragungsumgebung
EP1025538B1 (de) Gerät und verfahren zum rückgewinnen von daten in verlustgefährdeten übertragungsumgebung
EP1025648B1 (de) Vorrichtung und verfahren zur lokalisierung übertragungsfehler für robuste fehlerbeseitigung in einer verlustbehafteten übertragungsumgebung
US6170074B1 (en) Source coding to provide for robust error recovery
DE19715075B4 (de) Verfahren zum Kodieren eines von einer Pixelmatrix gebildeten Bildes

Legal Events

Date Code Title Description
8364 No opposition during term of opposition