DE60036585T2 - Videodatencoder und Verfahren zur Codierung von Videodaten - Google Patents

Videodatencoder und Verfahren zur Codierung von Videodaten Download PDF

Info

Publication number
DE60036585T2
DE60036585T2 DE2000636585 DE60036585T DE60036585T2 DE 60036585 T2 DE60036585 T2 DE 60036585T2 DE 2000636585 DE2000636585 DE 2000636585 DE 60036585 T DE60036585 T DE 60036585T DE 60036585 T2 DE60036585 T2 DE 60036585T2
Authority
DE
Germany
Prior art keywords
components
prediction
prediction error
absolute value
condition
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
DE2000636585
Other languages
English (en)
Other versions
DE60036585D1 (de
Inventor
Tsuyoshi Hamura-shi Tokyo Kasahara
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Publication of DE60036585D1 publication Critical patent/DE60036585D1/de
Application granted granted Critical
Publication of DE60036585T2 publication Critical patent/DE60036585T2/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Description

  • Die vorliegende Erfindung betrifft einen Videodaten-Kodierer und ein Verfahren zur Kodierung von Videodaten, im Speziellen eine Technik zur Steigerung der Kompressions-Effizienz bei der Intraframe-Kodierung von Bewegungs-Schätzung, die eine diskrete Kosinustransformation verwendet.
  • Die Technologie der Videodaten-Kodierung (Kodierung) wurde durch die breite Beteiligung der Industrien verbessert und verschiedene globale Standards für Videodaten-Kodierung und die Kodierung von Multimedia-Inhalten wurden eingeführt. Beispielsweise ist H.263 ein internationaler Standard zur Videodaten-Kodierung, der geeignet ist eine Videodaten-Datei zu übertragen und MPEG (Motion Picture Experts Group) ist ein weiterer Standard, der für die Speicherung von Videodaten-Dateien geeignet ist. Jede dieser Technologien verwendet den/die gleichen Kodier-Algorithmus/-Algorithmen, die für den jeweiligen Zweck eine geeignete Bitrate bereitstellt Beispielsweise ist eine Kodier-Technik, die in den international standardisierten MPEG-4 verwendet wird, ein Gemisch aus zwei Kodier-Technologien, einen diskreten Kosinustransformation (DCT) und einer Schätzung mit Bewegungskompensation (MC). Diese Kodier-Techniken dienen als Grundalgorithmus für eine Videodaten-Kodierung in MPEG-4.
  • 6 ist ein Blockschaubild zur Erläuterung eines typischen Kodier-Ablaufs in MPEG-4. Es gibt zwei Ansätze zur Videodaten-Kodierung: Intraframe-Kodierung und Interframe-Kodierung. Die Intraframe-Kodierung ist eine Methode zur Komprimierung von Videodaten, die sich auf die Videodaten jedes Frames beziehen, wogegen die Interframe-Kodierung sich für die Komprimierung auf Unterschiede zwischen den Frames bezieht.
  • Der erste Schritt der Intraframe-Kodierung ist eine Teilung der Video-Objekt-Ebene (VOD) durch einen Teiler 6a in Makroblöcke. Ein Makroblock ist eine Einheit für den Intraframe-Kodier-Prozess. 7 zeigt den Aufbau eines Makroblocks. Wie in 7 dargestellt, enthält ein Makroblock Datenblöcke von Helligkeits-Komponenten (Y-Komponente) und von Chrominanz-Komponenten (Cb- und Cr-Komponenten). Der in 7 dargestellte Aufbau basiert auf einem der Chrominanz-Formate, das als „4:2:0-Format" bezeichnet wird, das 4 Helligkeits-Blöcke und zwei Chrominanz-Blöcke enthält. Jeder Block wird durch eine Diskrete-Kosinus-Transformator 6d einer DCT unterzogen und die transformierten Blöcke werden durch einen Quantisierer 6e quantisiert. Die quantisierten Daten (DCT-Koeffizient und Amplitude) werden durch einen Variable-Länge-Kodierer 6f einer Variablen-Länge-Kodierung unterzogen. Schließlich werden die resultierenden Codes ausgegebenen, um sie zu übertragen o. ä. In der Gegenstelle werden die quantisierten Blöcke durch den inversen Quantisierer 6g einer inversen Quantisierung unterzogen, um den Frame wiederherzustellen, der als Bezugs-Frame für eine nächste Schätzung verwendet werden soll. Weiterhin werden die DCT-Koeffizienten durch einen inversen Diskrete-Kosinus-Transformator 6h einer inversen DCT unterworfen. Die wiederhergestellte VOP wird über einen Additions-Schaltkreis 6i an einen Frame-Speicher 6j übertragen.
  • Bei der Interframe-Kodierung dagegen, wird durch einen Bewegungsvektor-Detektor 6b ein Bewegungs-Detektions-Verfahren, wie Block-Matching, gegen eine VOP ausgeführt, die zu einer VOP benachbart ist, die einem Ziel-Makroblock enthält, um einen geschätzten Makroblock zu detektieren, der eine minimale Differenzen zu dem Ziel-Makroblock besitzt. Ein Signal, das die Bewegungen des geschätzten Makroblocks mit der minimalen Differenz darstellt, wird als Bewegungsvektor bezeichnet. Und ein Frame, auf den man sich für die Erzeugung des geschätzten Makroblock bezieht wird als Bezugs-VOP bezeichnet. Die Bewegungskompensation wird basierend auf dem detektierten Bewegungsvektor gegenüber dem Bezugs-VOP durchgeführt, der in einem Frame-Speicher 6j gespeichert ist, um einen geeigneten geschätzten Makroblock zu erhalten. Ein Subtraktions-Schaltkreis 6c erhält die Differenzen zwischen dem Ziel-Makroblock und dem detektierten geschätzten Makroblock. Das erhaltene Differenz-Signal wird durch den Diskrete-Kosinus-Transformator 6d einer DCT unterzogen und die DCT-Koeffizienten werden durch Quantisierer 6e quantisiert. Die quantisierten DCT-Koeffizienten werden zusammen mit dem Bewegungsvektor und der Amplitude durch den Variable-Länge-Kodierer 6f einer Variable-Länge-Kodierung unterzogen.
  • Nun werden die Einzelheiten der DCT beschrieben. Die DCT ist eine Fourier-Transformation. Die DCT transformiert zweidimensionale Bilder in zweidimensionale Frequenzen, und die Frequenzen werden in auffällige Niederfrequenz-Komponenten und unauffällige Frequenz-Komponenten unterteilt. Außerdem ist es möglich universelle Informationen zu erhalten. Der folgende Ausdruck 1 bezeichnet eine zweidimensionale DCT für einen 8 × 8 Block, und Ausdruck 2 bezeichnet eine inverse DCT. Ausdruck 1
    Figure 00030001
    Ausdruck 2
    Figure 00030002
  • Wobei
    C(u) = 1/√2 (u = 0)
    C(u) = 1 (u ≠ 0)
    C(v) = 1/√2 (v = 0)
    C(v) = 1 (v ≠ 0)
    IDCT (i, j): Pixelwert
    DCT (u, v): DCT-Koeffizienten
  • 8 zeigt ein Schaubild, das ein Ziel-Block X und seine umgebenden Nachbarblöcke A, B und C zeigt. Jedes Quadrat in jedem Block stellt einen DCT-Koeffizienten dar. Die DCT-Koeffizienten in dem Quadrat links oben in den Blöcken sind die Gleichanteile (DC), wogegen die anderen Wechselanteile (AC) sind. MPEG-4 hat gegenüber MPEG-2 einen Vorteil, da MPEG-4 eine verbesserte Effizienz für die Kodierung von Intra-Blöcken erzielt, da sowohl DC wie AC-Komponenten durch eine prädiktive Kodiertechnik effektiv kodiert werden, wogegen MPEG-2 nur für DC-Komponenten in Intra-Blöcken eine differenzierte Kodierung bereitstellt.
  • Ein DCT-Koeffizienten-Speicher 6k speichert quantisierte DCT-Koeffizienten des Bezugs-Blocks (DC-Komponenten und AC-Komponenten für eine erste horizontale Zeile oder eine erste vertikale Spalte) als vorhergesagte Werte. Von den vorhergesagten Werten werden die Werte in den DC-Komponenten prädiktiv kodiert und ausgegeben, während bestimmt wird, ob für die AC-Komponenten eine prädiktive Kodierung angewendet werden soll (in einem Vorhersage-Wähler 6m).
  • Falls die prädiktive Kodierung auf die AC-Komponenten angewendet werden sollen, wird ein Schalter SW1 eingeschaltet, so dass ein Subtraktion-Schaltkreis 6l die Differenz (Vorhersagefehler) zwischen den vorhergesagten Werten im Speicher 6k und den quantisierten AV-Komponenten berechnet und durch den Variable-Länge-Kodierer 6f eine Variable-Länge-Kodierung ausgeführt wird.
  • Wenn dagegen die prädiktive Kodierung nicht effektiv ist, wird Schalter SW1 ausgeschaltet, so das die Variable-Länge-Kodierung durch den Variable-Länge-Kodierer 6f nur auf die quantisierten AC-Komponenten angewandt wird.
  • Nun wird ein Ablauf der herkömmlichen Intraframe-Kodierung beschrieben.
  • 9 ist ein Flussdiagramm zur Erläuterung des Ablaufs der herkömmlichen Intraframe-Kodierung. In den folgenden Erläuterungen stellt beispielsweise X(i, j) einen DCT-Koeffizienten des Blocks X dar (wobei i die vertikale Komponente darstellt, j die horizontale Komponente darstellt; i, j = 0, 1, 2, ..., 7).
  • Erhaltene Videodaten (VOP) werden in Einheiten von Makroblöcken unterteilt. Jeder Makroblock wird einer DCT unterzogen, um quantisiert zu werden (Schritt A1). Dann wird die Summe der Beträge S0 der AC-Komponenten der DCT-Koeffizienten in der ersten vertikalen Spalte der ersten horizontalen Zeile berechnet (Schritt A2). Der folgende Ausdruck 3 beschreibt die Summe der Beträge S0.
  • Ausdruck 3
    • S0 = Σ|X(i, 0)| oder Σ|X(0, j)|(i, j = 1, 2, ..., 7)
  • Anschließend wird die gesamte Summe (ΣmS0) der Betragssumme S0 (Summe der Absolutwerte) der AC-Komponenten für alle Blöcke (Y, Cb, Cr-Komponenten) der Makroblöcken berechnet und das Ergebnis in einem Arbeitsbereich von RAM 8 gespeichert.
  • Dann werden die DC-Komponenten der quantisierten DCT-Koeffizienten durch die prädiktive Kodierung kodiert. Die Vorhersage-Werte der DC-Komponenten werden basierend auf einer Tendenz zwischen den horizontalen und vertikalen DC-Komponenten aus den Blöcken um den Zielblock adaptiert ausgewählt.
  • Der folgende Ausdruck 4 bezeichnet den Vorhersagewert X'(0, 0) der DC-Komponenten in einem Block X. Der Speicher 6k speichert den bestimmten Vorhersagewert X'(Schritte A3 bis A5).
  • Ausdruck 4
    • Wenn (|A(0, 0) – B(0, 0)| < |B(0, 0) – C(0, 0)|
    • Dann X'(0, 0) = C(0, 0)
    • Sonst X'(0, 0) = A(0,0)
  • Wobei
    A(0, 0): DC-Komponente in Block A
    B(0, 0): DC-Komponente in Block B
    C(0, 0): DC-Komponente in Block C
    X(0, 0): DC-Komponente in Block X
  • Für den Fall, dass der Vorhersagewert der DC-Komponenten C(0, 0) ist, werden die AC-Komponenten X(0, j)(j = 1, 2, ..., 7; schraffierter Teil HX in 8) der ersten horizontalen Zeile des Zielblocks X durch die prädiktive Kodierung kodiert. In diesem Fall entspricht der prädiktive Wert den AC-Komponenten C(0, j)(j = 1, 2, ..., 7; schraffierter Teil HC in 8) der ersten horizontalen Zeile in Block C, die im Speicher 6k gespeichert ist. Der folgende Ausdruck 7 bezeichnet den Vorhersagefehler (PE) der AC-Komponenten
  • Ausdruck 7
    • PE = x(0, j) – c(0, j)
  • Da eine Skalierung der Quantisierung für die AC-Komponenten, wie auch für die DC-Komponenten gelegentlich unausgeglichen sein kann, werden die Vorhersagewerte normiert.
  • Für den Fall, dass der Vorhersagefehler in den AC-Komponenten größer ist als die nicht vorhergesagten AC-Komponenten, werden die nicht vorhergesagten AC-Komponenten ohne Vorhersage direkt kodiert. Der Vorhersage-Wähler 6m bestimmt für jeden Makroblock, ob eine AC-Komponenten-Vorhersage ausgeführt werden sollen. Diese Bestimmung wird durch Vergleich von ΣmS0 (siehe Ausdruck 3) mit ΣmS durchgeführt, das ist der Vergleich der Betragsumme der nicht vorhergesagten AC-Komponenten (in der ersten horizontalen Zeile oder der ersten vertikalen Spalte) aller Blöcken (Y, Cb, Cr-Komponenten) in dem Zielblock X mit der Betragssumme der Vorhersagefehler der AC-Komponenten. Der folgende Ausdruck 8 bezeichnet die Betragssumme der Vorhersagefehler der AC-Komponenten in jedem Block.
  • Ausdruck 8
    • S = Σ|X(i, 0) – A(i, 0)| oder Σ|X(0, j) – C(0, j)| (i, j = 1, 2, ..., 7)
  • Zur Bestimmung der Effektivität der Vorhersage der AC-Komponenten wird die gesamte Summe ΣmS aller Blöcken (Y, Cb, Cr-Komponenten) in dem Zielblock mit der Summe S der Beträge der Vorhersagefehler in den AC-Komponenten berechnet (Schritt A7) und die Betragssumme der Vorhersagefehler (ΣmS) wird mit der Betragssumme der nicht vorhergesagten AC-Komponenten (ΣmS0) verglichen (Schritt A8). Der Vergleich wird entsprechend dem folgenden Ausdruck 9 ausgeführt.
  • Ausdruck 9
    • ΣmS < ΣmS0
  • Wenn die Ungleichung aus Ausdruck 9 erfüllt ist (JA in Schritt A8), wird der Schalter SW1 auf ein geschaltet und wodurch eine prädiktive Kodierung erlaubt wird, das heißt die Vorhersagefehler der AC-Komponenten werden variabel-länge-kodiert (Schritt A9). Wenn die Ungleichungen aus Ausdruck 9 nicht erfüllt ist (NEIN in Schritt A9), wird der Schalter SW1 ausgeschaltet, und eine prädiktive Kodierung wird nicht erlaubt, das heißt die nicht vorhergesagten AC-Komponenten werden variabel-länge-kodiert (Schritt A10).
  • Entsprechend werden ΣmS (die Summe der Beträge der Vorhersagefehler in den AC-Komponenten) und ΣmS0 (die Summe der Beträge in den AC-Komponenten) berechnet und miteinander verglichen, um die Notwendigkeit für eine AC-Komponenten-Vorhersage durch den herkömmlichen Kodierprozess zu ermitteln.
  • Da es die herkömmliche Technik erfordert zu bestimmen, ob die Vorhersage effektiv ist, ist es notwendig für jeden Makroblock Berechnungen durchzuführen um ΣmS zu bestimmen (Vorhersagefehler in den AC-Komponenten), selbst wenn es offensichtlich ist, dass die Vorhersage nicht effektiv ist, falls ein Makroblock nur wenige AC-Komponenten besitzt, zum Beispiel, wenn die VOP einen Himmel darstellt, oder eine Ebene deren Frame annähernd einheitlich ist. Diese zusätzlichen Berechnungen führen zu einer Redundanz in dem Kodierablauf.
  • Der Artikel „Improvements in DCT Based Video Coding" (A. Pur et al, Proceedings of SPIE, Vol. 3024, Seite 676-688, Februar 1997) beschreibt die Verbesserungen der Kodier-Effizienz für die Kodierung von DCT-Koeffizienten durch eine prädiktive Kodierung von DC- und AC-Koeffizienten. Um die Kodiereffizienz zu verbessern kann die prädiktive Kodierung der AC-Komponenten unterbunden werden, wenn der Vorhersagefehler einen vordefinierten Schwellenwert überschreitet.
  • Es ist die Aufgabe der vorliegenden Erfindung eine effiziente schnelle Videodaten-Kodierung bereitzustellen.
  • Dies wird durch die Merkmale der unabhängigen Patentansprüche erreicht.
  • Dieser Aufbau ermöglicht eine schnelle effiziente Kodierung, da weniger Berechnungen zur Kodierung erforderlich sind, wenn eine Vorhersage der AC-Komponenten offensichtlich nicht effektiv ist. Im Einzelnen führt der Kodierer keine Berechnungen des Vorhersagefehlers in den AC-Komponenten der Blöcke aus, die annähernd gleichförmige Bilder, wie Himmel oder Boden darstellen.
  • Diese Aufgabe und weitere Aufgaben und Vorteile der vorliegenden Erfindungen werden durch das Lesen der folgenden detaillierten Beschreibungen und der beigefügten Zeichnungen offensichtlich, wobei:
  • 1 ist eine Darstellung, die den Schaltungsaufbau in einem Videodaten-Kodierer zeigt;
  • 2 ist ein Flussdiagramm zur Erläuterung der Intraframe-Kodierung entsprechend einem ersten Ausführungsbeispiel;
  • 3 ist ein Flussdiagramm zur Erläuterung des Ablaufs für eine Schwellwert-Bestimmung;
  • 4 ist ein Flussdiagramm zur Erläuterung der Intraframe-Kodierung entsprechend einem zweiten Ausführungsbeispiel;
  • 5 ist ein Flussdiagramm zur Erläuterung der Intraframe-Kodierung entsprechend einem dritten Ausführungsbeispiel;
  • 6 ist ein Blockschaubild zur Erläuterung des Kodierablaufs;
  • 7 ist eine Darstellung, die den Aufbau in einem Makroblock darstellt;
  • 8 ist eine Darstellung, die einen Zielblock X und seine umgebenden Blöcke A, B und C zeigt; und
  • 9 ist ein Flussdiagramm zur Erläuterung der herkömmlichen Intraframe-Kodierung.
  • Die Ausführungsbeispiele des Videodaten-Kodierers gemäß der vorliegenden Erfindung wird nun unter Bezug auf die 1 bis 5 beschrieben.
  • Erstes Ausführungsbeispiel
  • Nun wird ein Videodaten-Kodierer 1 gemäß eines ersten Ausführungsbeispiels unter Bezug auf 1 bis 3 beschrieben.
  • 1 ist eine Darstellung, die den schematischen Aufbau des Videodaten-Kodierers 1 zeigt.
  • Wie in 1 dargestellt, umfasst der Videodaten-Kodierer 1 einen Controller 2, einen Eingang 3, eine Anzeige 4, eine Kommunikation-Schnittstelle (I/F) 5, einen Video-Codec 6, einen Audio-Codec 7, einen RAM (Schreib-Lese-Speicher) 8 und eine Speichereinheit 9, die durch einen Bus 11 miteinander verbunden sind. Speichereinheit 9 nimmt ein Speichermedium 10 auf.
  • Der Controller 2 wählt ein geeignetes Anwendungsprogramm aus verschiedenen Anwendungsprogrammen aus, die in der Speichereinheit 9 gespeichert sind und die kompatibel mit den Videodaten-Kodierer 1 sind und überträgt das ausgewählte Programm und die Anweisungen und die Eingabedaten von Eingang 3 zu einem Arbeitsbereich in RAM 8. Der Controller 2 führt das Programm in RAM 8 raus und führt dabei verschiedene Schritte entsprechend dem laufenden Programm aus. Die Ergebnisse werden in RAM 8 gespeichert und auf der Anzeigeeinheit 4 dargestellt. Die Ergebnisse aus RAM 8 werden gemäß einer Benutzeranweisung aus Eingang 3 zu einem geeigneten Verzeichnis in die Speichereinheit 9 übertragen.
  • Zur Videodaten-Kodierung bündelt der Controller 2 zwei Sätze von kodierten Daten: ein Satz von kodierten Videodaten, die durch den Video-Codec 6 verarbeitet wurden und ein Satz von kodierten Audiodaten, die durch den Audio-Codec 7 verarbeitet wurden. Nach der Bündelung wird ein Datenstrom erzeugt. Die Daten des Datenstroms werden auf dem Aufzeichnungsmedium 10 in der Speichereinheit 9 gespeichert oder über die Kommunikationsschnittstelle 5 an ein externes Gerät ausgegeben.
  • Zur Dekodierung der kodierten Videodaten extrahiert der Controller 2 die Videodaten und Audiodaten getrennt aus dem Datenstrom, der von dem Speichermedium 10 in der Speichereinheit 9 gelesen wurde, oder über die Kommunikationsschnittstelle 5 von einem externen Gerät bereitgestellt wurde. Die extrahierten Videodaten und Audiodaten werden jeweils zu dem Video-Codec 6 und dem Audio-Codec 7 übertragen.
  • Der Eingang 3 enthält eine Tastatur mit Cursortasten, Ziffertasten, verschiedenen Funktionstasten und ähnlichem und eine Zeigevorrichtung wie eine Maus. Der Eingang 3 über trägt die Signale, die aufgrund eines Tastendruck oder einer Mausbetätigung erzeugt wurden an den Controller 2. Der Eingang 3 kann einen Digitalisierer über der Anzeige 4 umfassen. Der Digitalisierer erkennt eine Position an der sich ein Stift befindet durch elektromagnetische Veränderungen, magnetostatische Veränderungen, Druckänderungen oder ähnliches und liefert Eingabedaten. Die Eingabedaten werden an den Controller 2 übertragen.
  • Die Anzeigeeinheit 4 ist eine CRT (Kathodenstrahlröhren), eine Flüssigkristallanzeige oder ähnliches. Die Anzeigeeinheit 4 wird durch die Anzeige-Steuersignale aus Controller 2 gesteuert und zeigt Videobilder an, die den Videodaten entsprechen, die durch den Video-Codec 6 dekodiert wurden.
  • Die Kommunikationsschnittstelle 5 kann ein Modem (Modulator/Demodulator) sein, ein Endgeräteanschluss (TA), Router oder ähnliches, das die Kommunikation mit externen Geräten über ein Kommunikationsnetz steuert, wie zum Beispiel ein PSTN (öffentliches Telefonnetz), ISDN (Integrated Service Digital Network), eine angemietete Leitung oder ähnliches.
  • Der Video-Codec 6 kodiert und dekodiert Videodaten und ähnliches, die auf dem Aufzeichnungsmedium 10 in der Speichereinheit 9 gespeichert sind, oder durch eine Videokamera (nicht dargestellt) bereitgestellt werden.
  • Der Kodierablauf der vorliegenden Erfindungen ist annähernd der gleichen, wie die zuvor beschriebene herkömmliche Technik, mit der Ausnahme der Bestimmung, eine adaptiven Vorhersage für die Kodierung der AC-Komponenten der DCT-Koeffizienten. Daher wird die detaillierte Beschreibung des Kodierablaufs vereinfacht, indem ein Bezug zu 6 hergestellt wird. Da der Aufbau der Makroblöcken und der AC/DC Komponenten der DCT-Koeffizienten, die durch die vorliegende Erfindung verarbeitet werden, die gleichen sind, wie die für den Stand der Technik in 7 und 8 dargestellt, verwendet die folgende Erklärung die gleichen Bezugszeichen und Ausdrücke, wie sie in 7 und 8 verwendet wurden.
  • Die herkömmliche Verarbeitung für die Bestimmung, ob eine Vorhersage vor der Kodierung effektiv ist, wird folgendermaßen ausgeführt: Vergleich der Betragssumme der nicht vorhergesagten AC-Komponenten (ΣmS0) mit der Betragssumme der Vorhersagefehler in den AC-Komponenten (ΣmS) in der ersten vertikalen Spalte oder der ersten horizontalen Zeile eines Zielblock; und Feststellen, dass die Vorhersage effektiv ist, falls ΣmSO größer ist als ΣmS.
  • In dem ersten Ausführungsbeispiel der vorliegenden Erfindungen wird die Effektivität der Vorhersage basierend auf ΣmS0 bestimmt, bevor der Vorhersagefehler S in den AC-Komponenten berechnet wird. Genauer gesagt wird festgestellt, dass eine Vorhersage nicht effektiv ist, falls ΣmS0 kleiner ist als ein Schwellwert θ1, der in einer Zustands-Speichereinheit (nicht dargestellt) gespeichert ist, die sich in den Vorhersage-Wähler 6m befindet. In diesem Fall wird Schalter SW1 eingeschaltet, und die Berechnungen für den erhaltenen Vorhersagefehler S wird übersprungen und nicht vorhergesagte AC-Komponenten werden direkt kodiert.
  • Der Video-Codec 6 kodiert auch Videodaten und gibt die dekodierten Videodaten aus.
  • Der Audio-Codec 7 kodiert Ton-Daten, die mit den von Video-Codec 6 kodierten Videodaten verknüpft sind und überträgt die kodierten Ton-Daten zu dem Controller 2. Der Audio-Codec 7 dekodiert auch die kodierten Ton-Daten getrennt von den kodierten Videodaten.
  • Das RAM 8 besitzt einen Arbeitsbereich zur Speicherung ausgewählter Anwendungsprogramme, Eingabe-Anweisungen, Eingabe-Daten, Ergebnissen und ähnlichem.
  • Die Speichereinheit 9 enthält das Aufzeichnungsmedium 10, auf dem Programme, Daten und Ähnliches zuvor gespeichert wurden. Das Aufzeichnungsmedium 10 kann ein magnetisches Medium sein, ein optisches Medium, oder ein Halbleiterspeicher. Das Aufzeichnungsmedium 10 kann mit der Speichereinheit 9 fest verbunden sein, oder ein enffernbares Medium, das lose mit der Speichereinheit 9 verbunden ist. Das Aufzeichnungsmedium 10 speichert Daten und Ähnliches, die durch die Anwendungsprogramme verarbeitet werden, die mit dem Videodaten-Kodierer 1 kompatibel sind.
  • Programme, Daten und Ähnliches, die auf dem Aufzeichnungsmedium 10 gespeichert ist kann auch von anderen Vorrichtungen über ein Kommunikationsnetzwerk oder Ähnliches empfangen werden. Oder andere Vorrichtungen, die dem Video-Kodierer 1 über die Kommunikationsschnittstelle 5 verbunden sind, können mit einer Speichereinheit ausgerüstet sein, die ein Aufzeichnungsmedium 10 enthält, und der Videodaten-Kodierer 1 erhält die Programme, Daten, und Ähnliches, die auf dem Aufzeichnungsmedium über die Kommunikationsschnittstelle 5 gespeichert wird.
  • Nun werden die Abläufe des Video-Kodierer 1 beschrieben.
  • 2 ist ein Flussdiagramm zur Erläuterung des Intraframe-Kodierungsablaufs, der durch das erste Ausführungsbeispiel ausgeführt wird.
  • Zur Intraframe-Kodierung wurde in dem Aufzeichnungsmedium 10 ein spezielles Programm für die Intraframe-Kodierung vorbereitet. Der Controller 2 liest das Programm von dem Aufzeichnungsmedium 10 in das RAM 8. Der Controller 2 steuert den Video-Codec 6 entsprechend dem Programm in RAM 8, um die Intraframe-Kodierung auszuführen.
  • Zuerst wird der Datensatz der eingegebenen Videodaten (VOP: Video-Objekt-Ebene) durch den Teiler 6a in Einheiten von Makroblöcken unterteilt. Dann führt der Video-Codec 6 eine Intraframe-Kodierung aus, wie sie in dem Stand der Technik bereits detailliert beschrieben wurde (siehe 9): Verarbeitung jedes Microblocks mittels DCT (durch den Diskrete-Kosinus-Transformator 6d; Schritt S101); Qualifizierung durch den Quantisierer 6e; und Berechnung von ΣmS0 (Betragssumme der AC-Komponenten der DCT-Koeffizienten in der ersten horizontalen Zeile und der ersten vertikalen Spalte) für jeden Block (Y, Cb, Cr-Komponenten) in dem Zielblock (Schritt S102).
  • Dann kodiert der Video-Codec 6 DC-Komponenten der quantisierten DCT-Koeffizienten mittels prädiktiver Kodierung (Schritte S103 bis S106). Da diese Verarbeitung der herkömmlichen Verarbeitung entspricht (Schritte A3 bis A6 in 9), wird auf eine detaillierte Beschreibung verzichtet.
  • Nachdem die prädiktive Kodierung der DC-Komponenten abgeschlossen ist, beginnt der Video-Codec 6 mit der Kodierung der AC-Komponenten. In dem ersten Ausführungsbeispiel wird eine Bedingung zur Feststellung, ob die Vorhersage effektiv ist, vor der Berechnung von ΣmS0 (Vorhersagefehler der AC-Komponenten) untersucht. In diesem Fall besteht die Bedingungen in der Frage ob ΣmS0 (die Betragssumme der AC-Komponenten in der ersten vertikalen Spalte oder der ersten horizontalen Zeile in dem Zielblock) kleiner ist als ein Schwellwert θ1. das heißt, es wird festgestellt, ob der folgende Ausdruck 10 erfüllt ist (Schritt S107).
  • Ausdruck 10
    • ΣmS0 < θ1
  • θ1 beschreibt einen Schwellwert, der für eine gewünschte Bildqualität und Verarbeitungsgeschwindigkeit zur Kodierung angemessen ist. Der Schwellwert wird in einem Speicherbereich für eine Bedingung (nicht dargestellt) in dem Vorhersage-Wähler 6m gespeichert. Die Einstellung des Schwellwerts θ1 wird später beschrieben (siehe 3).
  • Wenn festgestellt wird, dass die oben genannte Bedingungen aus Ausdruck 10 erfüllt ist, das heißt ΣmS0 ist kleiner als θ1 (JA in Schritt S107), dann wird bestimmt, dass die Vorhersage nicht effektiv ist, da der DCT-Koeffizienten zu klein ist um Eigenschaften der Vorhersage zu erhalten. Im Fall von „ nicht effektiv" wird der Schalter SW1 ausgeschaltet, und der Ablauf für die prädiktive Kodierung (Schritt S109 bis S111) wird übersprungen. Die durch den Quantisierer 6e quantisierten AC-Komponenten werden variabel-länge-kodiert (Schritt S108).
  • Wenn festgestellt wird, dass die Bedingungen in Ausdruck 10 nicht erfüllt ist, dann ist ΣmS0 größer oder gleich als θ1 (nein in Schritt S107), und es wird weiter auf herkömmliche Weise festgestellt, ob die Vorhersage effektiv ist (Schritte S109 bis S111). Das heißt, es wird ΣmS0 (die Betragssumme der nicht vorhergesagte AC-Komponenten in der ersten horizontalen Zeile oder der ersten vertikalen Spalte) in jedem Block (Y, Cb, Cr-Komponenten) in dem Zielblock) mit ΣmS (der Betragssumme der Vorhersagefehler in den AC-Komponenten) verglichen (Schritte A7 bis A10 in 9). Wenn ΣmS0 größer ist als ΣmS (ΣmS < ΣmS0; JA in Schritt S110) wird festgestellt, dass die Vorhersage effektiv ist. In diesem Fall wird der Schalter SW1 eingeschalteten, und der Vorhersagefehler in den AC-Komponenten wird variabel-länge-kodiert (Schritt S111). Anderenfalls, wenn ΣmS0 kleiner oder gleich ΣmS ist (NEIN in Schritt S110) wird festgestellt, dass die Vorhersage nicht effektiv ist. In diesem Fall wird der Schalter SW1 ausgeschaltet, und die nicht vorhergesagten AC-Komponenten werden variabel-länge-kodiert (Schritt S108).
  • Wenn die Berechnung für die Vorhersagefehler in den AC-Komponenten übersprungen wird, d.h. in Schritt S107 festgestellt wird, dass ΣmS0 kleiner ist als der vordefinierten Schwellwert θ1, wird der Kodier-Vorgang in einer kürzeren Verarbeitungszeit effektiver ausgeführt.
  • Nun wird das Verfahren zur Einstellung des Schwellwerts θ1 beschrieben.
  • Zur Einstellung des Schwellwerts θ1 wird für einen Satz von Probebild-Videodaten auf herkömmliche Weise bestimmt, ob die Vorhersage effektiv ist (siehe 9). Das heißt, alle Makroblöcke der Probe-Videodaten, die durch Intraframe-Kodierung kodiert werden sollen, werden entsprechend der Vorhersage-Effektivität klassifiziert: effektiv oder nicht effektiv, wobei der Durchschnitt und die Standardabweichung von S0 (Betragssumme der AC-Komponenten) in den Makroblöcken ermittelt wird, für die festgestellt wird, dass in allen Frames, die durch Intraframe-Kodierung kodiert werden, eine Vorhersage effektiv ist. Auf die gleiche Weise wird der Durchschnitt und die Standardabweichung von S0 (Betragssumme der AC-Komponenten) in den Makroblöcken bestimmt, in denen festgestellt wird, dass eine Vorhersage nicht effektiv ist.
  • In diesem Fall wird θ1 durch den folgenden Ausdruck 11 bestimmt, wobei αon dem Durchschnitt darstellt, und σon die Standardabweichung von S0 für den Fall „effektiv" darstellt, und αoff gibt den Durchschnitt und σoff die Standardabweichung von S0 für den Fall „nicht effektiv" an.
  • Ausdruck 11
    • θ1 = (σoff X αon + σon X αoff)/(σon + σoff)
  • 3 ist ein Flussdiagramm für die Erklärung eines Verfahrens zur Einstellung von Schwellwert θ1. Schwellwert θ1 wird durch den in 3 dargestellten Ablauf bestimmt und der ermittelte Schwellwert wird in einem Speicherbereich für eine Bedingung (nicht dargestellt) in dem Vorhersage-Wähler 6m gespeichert.
  • Nun wird der Ablauf des Video-Kodierers 1 während der Einstellung des Schwellwerts θ1 beschrieben.
  • Der Controller 2 setzt die Anfangswert der Register Son, Soff, S'on, und S'off auf „0", um die Berechnung des Durchschnitt α und der Standardabweichung σ vorzubereiten (Schritt B1). Wie auch bei dem herkömmlichen Kodier-Ablauf, teilt der Controller 2 die empfangenen Prüf-Videodaten in Makroblöcken um sie einzelnen einer DCT zuzuführen (Schritt B2) und zu quantisierten (Schritt B3). Gleichzeitig wird ΣmS0 (Betragssumme der AC-Komponenten in den DCT-Koeffizienten in der ersten vertikalen Spalte oder der ersten horizontalen Zeile) berechnet.
  • Dann wird eine prädiktive Kodierung der DC-Komponenten ausgeführt. Wie auch für die herkömmliche prädiktive Kodierung der DC-Komponenten (Schritte A3 bis A6 in 9) wird ein Vergleich der Differenz in den DC-Komponenten zwischen Block A und B mit der Differenz in den DC-Komponenten zwischen beiden B und C ausgeführt (Schritt B4) um X'(0, 0) zu bestimmen, was den Vorhersage-Wert der DC-Komponenten in einem Block X darstellt (Schritte B5, B6) und eine Variable-Länge-Kodierung wird nach der Berechnung der Differenz (Vorhersagefehler) zwischen der Vorhersage X'(0, 0) und den DC-Komponenten X(0, 0) ausgeführt (Schritt B7).
  • Dann wird ΣmS (Betragssumme der Vorhersagefehler in den AC-Komponenten) berechnet (Schritt B8). ΣmS wird mit dem in Schritt B3 erhaltenen ΣmS0 verglichen. Falls ΣmS kleiner ist als ΣmS0 (JA in Schritt B9) wird ΣmS0 zu dem Register Son hinzugezählt (Son = Son, + ΣmS0), während das Quadrat von ΣmS0 zu dem Register S'on hinzugezählt wird (S'on = S'on + (ΣmS0)2) Schritt B10). Falls ΣmS0 kleiner als ΣmS ist (NEIN in Schritt B9), wird ΣmS0 zu dem Register Soff hinzugezählt (Soff = Soff + ΣmS0), und das Quadrat von ΣmS0 wird zu dem Register Soff hinzugezählt (S'off = S'off + (ΣmS0)2) (Schritt B11).
  • Die oben genannte Berechnung wird solange wiederholt bis alle Makroblöcken des Eingabe-Frames berechnet wurden. Wenn die Berechnung des letzten Makroblock beendet ist (JA in Schritt B12), wird der Mittelwert und die Standardabweichung berecht.
  • Der Durchschnitt αon von ΣmS0 der Makroblöcke mit effektiver Vorhersage wird durch den folgenden Ausdruck 12 erhalten, und der Durchschnitt αoff für nicht effektive Vorhersage in Makroblöcken wird durch den folgenden Ausdruck 13 erhalten.
  • Ausdruck 12
    • αon = (Son/Anzahl aller Makroblöcken)
  • Ausdruck 13
    • αoff = (Soff/Anzahl aller Makroblöcken)
  • Die Standardabweichung σon von ΣmS0 der Makroblöcke mit effektiver Vorhersage wird durch den folgenden Ausdruck 14 erhalten, und die Standardabweichung σoff für nicht effektive Vorhersage in Makroblöcken wird durch den folgenden Ausdruck 15 erhalten.
  • Ausdruck 14
    • σon = ((S'on/Anzahl aller Makroblöcken) – (Son/Anzahl aller Makroblöcken)2)1/2
  • Ausdruck 15
    • σoff = ((S'off/Anzahl aller Makroblöcken) – (Soff/Anzahl aller Makroblöcken)2)1/2
  • Der Schwellwert θ1 wird basierend auf den Durchschnitten αon und αoff und den Standardabweichungen σon und σoff entsprechend Ausdruck 16 ermittelt.
  • Ausdruck 16
    • θ1 = (σoff X αon + σon X αoff)/(σon + σoff)
  • Der ermittelte Schwellwert θ1 wird in dem Speicherbereich für eine Bedingung(nicht dargestellt) in dem Vorhersage-Wähler 6m gespeichert und der Ablauf für die Bestimmung des Schwellwert θ1 wird beendet.
  • Je kleiner der Schwellwert θ1 wird, um so kürzer ist die Verarbeitungszeit für die Kodierung, da die Anzahl der Blöcke mit „effektiver Vorhersage" kleiner wird. Andererseits steigt die Verarbeitungszeit für die Kodierung, wenn der Schwellwert θ1 größer wird, da mehr redundante Abläufe vorhanden sind, wenngleich eine genauere Kodierung ermöglicht wird.
  • Entsprechend dem oben beschriebenen ersten Ausführungsbeispiel wird die Bedingung, ob die Vorhersage der AC-Komponenten effektiv ist basierend auf einem zuvor erhaltenen Wert (ΣmS0: Betragsumme der nicht vorhergesagten AC-Komponenten) untersucht bevor ΣmS (Betragssumme der Vorhersagefehler in den AC-Komponenten) berechnet wird. Dann wird festgestellt, ob die Bedingung (ΣmS0 < θ1) erfüllt ist oder nicht. Falls ΣmS kleiner ist als der Schwellwert θ1, wird festgestellt, dass eine Vorhersage vor der Kodierung nicht effektiv ist. In diesem Falle wird keine Berechnung des Vorhersagefehlers in den AC-Komponenten ausgeführt, und die nicht vorhergesagten AC-Komponenten werden direkt variabel-länge-kodiert. Wenn die Bedingung nicht erfüllt ist, wird auf herkömmliche Weise festgestellt, ob die Vorhersage effektiv ist oder nicht.
  • Entsprechend dem oben beschriebenen ersten Ausführungsbeispiel wird die Berechnung des Vorhersagefehlers (ΣmS) übersprungen, falls es offensichtlich ist, dass die Vorhersage für den gerade verarbeiteten Frame nicht effektiv ist, beispielsweise falls der Frame ein fast gleichförmiges Bild, wie Himmel oder Boden, darstellt. Das Auslassen der Berechnung der Vorhersagefehler ermöglicht eine Verringerung der Verarbeitungszeit für die Kodierung und verbessert die Effizienz. Außerdem ist das Ergebnis genau, da durch eine Kombination einer Untersuchung der Bedingung vor der Berechnung des Vorhersagefehlers und des herkömmlichen Verfahrens festgestellt wird, ob die Vorhersage effektiv ist.
  • Zweites Ausführungsbeispiel
  • Nun wird ein Videodaten-Kodierer entsprechend einem zweiten Ausführungsbeispiel beschrieben.
  • In dem oben beschriebenen ersten Ausführungsbeispiel wird die Effektivität der Vorhersage basierend auf ΣmS0 (Betragssumme in den AC-Komponenten) bestimmt. In dem zweiten Ausführungsbeispiel wird die Anzahl der AC-Komponenten gezählt, deren Betrag in den DCT-Koeffizienten einer ersten vertikalen Spalte oder einer ersten horizontalen Zeile ungleich 0 ist (Anzahl S1). Die Effektivität der Vorhersage wird basierend auf der Größe von ΣmS1 (Summe von S1) bestimmt. Die Anzahl S1 wird durch den folgenden Ausdruck 17 erhalten.
  • Ausdruck 17
    • S1 = Σu(|X(i, 0)| oder Σu(|X(0, j)|(i, j = 1, 2, ..., 7)
  • Wobei
    u(x) eine Einheits-Sprung-Funktion ist
    u(x) = 1(X ≠ 0)
    = 0(X = 0)
  • Und nun werden die Abläufe der Intraframe-Kodierung entsprechend dem zweiten Ausführungsbeispiel unter Bezug auf 4 beschrieben. 4 ist ein Flussdiagramm für die Erläuterung der Intraframe-Kodierung entsprechend des zweiten Ausführungsbeispiel.
  • Der Aufbau des Videodaten-Kodierers 1 gemäß dem zweiten Ausführungsbeispiel ist der gleiche, wie in dem ersten Ausführungsbeispiel, daher wird eine Beschreibung des Aufbaus dieser Vorrichtung hier ausgelassen und die gleichen Bezugszeichen verwendet. Da auch der Kodierablauf annähernd der gleiche ist, wie in dem ersten Ausführungsbeispiel, mit Ausnahme der Bestimmung der Effektivität für die Vorhersage, wird die detaillierte Beschreibung für den Kodierablauf ebenfalls ausgelassen.
  • Nach der DCT, der Quantisierung und der prädiktiven Kodierung der DC-Komponenten (Schritte S201 bis S206) beginnt der Video-Codec 6 mit der Kodierung der AC-Komponenten. In dem zweiten Ausführungsbeispiel wird eine vorbestimmte Bedingungen für die Entscheidung, ob eine Vorhersage der AC-Komponenten nicht effektiv ist, vor der Berechnung des Vorhersagefehlers ΣmS in den AC-Komponenten untersucht. In diesem Fall ist die Bedingung hier, ob ΣmS1 (Summe der Anzahl der AC-Komponenten (siehe 17), deren Betrag in den DCT Koeffizienten in der ersten vertikalen Spalte der ersten horizontalen Zeile in allen Blöcken (Y, Cb, Cr-Komponenten) in einem Makroblock ungleich 0 ist) kleiner ist als ein vorbestimmter Schwellwert θ2. Das heißt es wird festgestellt, der folgende Ausdruck 18 erfüllt ist.
  • Ausdruck 18
    • ΣmS1 < θ2
  • θ2 bezeichnet den Schwellwert der entsprechend der gewünschten Video-Bildqualität nach der Kodierung der Verarbeitungsgeschwindigkeit für die Kodierung und Ähnlichem optimiert wurde. Der Schwellwert θ2, der zuvor in der Speicherbereichen für eine Bedingung (nicht dargestellt) in dem Vorhersage-Wähler 6m gespeichert. Ein Verfahren für die Bestimmung des Schwellwertes θ2 wird später beschrieben.
  • Wenn die Bedingung des oben genannten Ausdruck 18, das heißt ΣmS1 (Summe der gezählten Werte), kleiner ist als Schwellwert θ2 (JA in Schritt S207) wird festgestellt, dass die Vorhersage der AC-Komponenten nicht effektiv ist, da der Frame ein fast gleichförmiges Bild darstellt. In diesem Fall wird der Schalter SW1 ausgeschaltet und die Vorhersage (Schritte S209 bis S211) wird übersprungen. Dann werden die AC-Komponenten durch Quantisierer 6e quantisiert und variabel-länge-kodiert (Schritt S208).
  • Wenn die Beziehung dagegen nicht erfüllt ist (NEIN in Schritt S107) wird auf herkömmliche Weise festgestellt, ob die Vorhersage effektiv ist oder nicht (Schritte S209 bis S211).
  • Nun wird das Verfahren für die Bestimmung der Schwellwert θ2 beschrieben.
  • Der Schwellwert θ2 wird auf gleiche Weise bestimmt, wie in dem Verfahren für die Bestimmung von θ1 in dem ersten Ausführungsbeispiel (siehe 3). Das heißt, der Schwellwert θ2 wird durch den folgenden Ausdruck 19 bestimmt.
  • Ausdruck 19
    • θ2 = (σ'off X α'on + σ'on × α'off)/(σ'on + σ'off)
  • In diesem Ausdruck sind α'on und σ'on jeweils der Durchschnitt und die Standardabweichung von S1 für einen Makroblock mit effektiver Vorhersage, und α'off und σ'off sind das Entsprechende für einen Makroblock mit nicht effektiver Vorhersage.
  • Das Flussdiagramm in 3 kann durch einfaches Ersetzen von θ1 durch θ2; S0 in den Schritten B10 und B11 durch S1; und α und σ durch α' und σ' für die Erläuterung zur Bestimmung von θ2 abgewandelt werden.
  • Wie auch bei θ wird mit kleinerem θ2 die Verarbeitungszeit kürzer, da die Anzahl der Blöcke mit effektiver Vorhersage verringert wird. Andererseits wird mit größer werdenden θ 2 die Verarbeitungszeit größer, da mehr redundante Schritte vorhanden sind, wenngleich eine genauere Kodierung erreicht wird.
  • Entsprechend dem oben beschriebenen zweiten Ausführungsbeispiel wird die Bedingung, ob die Vorhersage nicht effektiv ist, basierend auf zuvor erhaltenen Werten (in diesem Fall die Anzahl der AC-Komponenten deren Betrag ungleich 0 ist: S1) untersucht, bevor ΣmS (Betragssumme der Vorhersagefehler in den AC-Komponenten) berechnet wird. In diesem Fall ist die Bedienung ΣmS1 < θ2 (vorbestimmter Schwellwert). Wenn die Bedingung erfüllt ist wird festgestellt, dass eine Vorhersage nicht effektiv ist. In diesem Fall wird die Berechnung des Vorhersagefehlers übersprungen, und nicht vorhergesagte AC-Komponenten werden direkt variabel-länge-kodiert. Wenn die Bedingung nicht erfüllt ist, wird auf herkömmliche Weise festgestellt, ob die Vorhersage effektiv ist oder nicht, wie in 9 dargestellt.
  • Entsprechend wird die Berechnung des Vorhersagefehlers (ΣmS) übersprungen, falls eine Vorhersage des Frame für die Kodierung offensichtlich nicht effektiv ist, beispielsweise wenn der Frame ein fast gleichförmiges Bild darstellt, wie Himmel oder Boden. Das Überspringen einer Berechnung für den Vorhersagefehler hilft die Verarbeitungszeit für die Kodierung zu senken und die Effektivität zu verbessern. Außerdem ergibt sich ein genaues Ergebnis, da die Feststellung durch eine Kombination der Untersuchung vor der Berechnung des Vorhersagefehlers und des herkömmlichen Verfahrens besteht.
  • Drittes Ausführungsbeispiel
  • Nun wird ein Videodaten-Kodierer 1 entsprechend einem dritten Ausführungsbeispiel der vorliegenden Erfindung beschrieben.
  • In dem dritten Ausführungsbeispiel wird die Bedingung zur Feststellung, ob eine Vorhersage der AC-Komponenten effektiv ist oder nicht basierend auf der Größe des Vorhersagefehlers in den DC-Komponenten vorbereitet. Der folgende Ausdruck 20 beschreibt die Summe der Vorhersagefehler (PE) in den DC-Komponenten aller Blöcke in den Makroblöcken.
  • Ausdruck 20
    • PE = Σm|X(0, 0) – X'(0, 0)|
  • Nun wird der Ablauf der Intraframe-Kodierung entsprechend des dritten Ausführungsbeispiels unter Bezug auf 5 beschrieben. 5 ist ein Flussdiagramm zur Erläuterung der Intraframe-Kodierung entsprechend des dritten Ausführungsbeispiels.
  • Da der Aufbau des Videodaten-Kodierers 1 in dem dritten Ausführungsbeispiel der gleiche ist, wie in den ersten Ausführungsbeispiel beschrieben, wird auf eine detaillierte Beschreibung verzichtet und es werden die gleichen Bezugszeichen verwendet. Der Kodierablauf ist ebenfalls ähnlich, wie der in dem ersten Ausführungsbeispiels beschriebene Ablauf, mit Ausnahme der Bestimmung, ob die Vorhersage effektiv ist oder nicht, daher wird der Kodierablauf nicht detailliert beschrieben.
  • Nach dem die erhaltenen Videodaten einer DCT, einer Quantisierung und einer prädiktive Kodierungen der DC-Komponenten erhalten wurden (Schritte S301 bis S306) beginnt der Video-Codec 6 mit der Kodierung der AC-Komponenten. In dem dritten Ausführungsbeispiel wird eine Bedingung zur Feststellung, ob eine Vorhersage der AC-Komponenten nicht effektiv ist untersucht, bevor ein Vorhersagefehler (ΣmS) der AC-Komponenten berechnet wird. Die Bedingung lautet, dass die Summe aller Blöcke (Y, Cb, Cr-Komponenten) in den DC-komponenten der Makroblöcke, die in Schritt S306 erhalten wurden, kleiner ist als Schwellwert θ3. Mit anderen Worten, es wird festgestellt, ob der folgende Ausdruck 21 erfüllt ist.
  • Ausdruck 21
    • Σm|X(0, 0) – X'(0, 0)| < θ3
  • θ3 bezeichnend einen Schwellwert, der bezüglich der gewünschten Eigenschaften, wie die Qualität nach der Kodierungen, Verarbeitungsgeschwindigkeit für die Kodierung und ähnlichem optimiert wurde und zuvor in einen Speicherbereich für eine Bedingung (nicht angestellt) in dem Vorhersage-Wähler 6m des Video-Codec 6 gespeichert wurde. Ein Verfahren zur Bestimmung von θ3 wird später beschrieben.
  • Wenn die in Ausdruck 21 beschriebene Bedingung erfüllt ist, das heißt, die Summe der Vorhersagefehler der DC-Komponenten ist kleiner als θ3 (JA in Schritt S307), wird festgestellt, dass eine Vorhersage der AC-Komponenten nicht effektiv ist, da der Frame ein fast gleichförmiges Bild darstellt. In diesem Fall wird Schalter SW1 ausgeschaltet, und die prädiktive Kodierungen der AC-Komponenten (Schritte S309 bis S311) wird übersprungen. Die AC-Komponenten, die durch Quantisierer 6e quantisiert wurden werden variabel-längekodiert (Schritt S308).
  • Wenn die Bedingung nicht erfüllt ist (NEIN in Schritt S307) wird auf herkömmliche Weise (Schritte S309 bis S311) festgestellt, ob eine Vorhersage effektiv ist oder nicht.
  • Nun wird ein Verfahren zur Bestimmung von Schwellwert θ3 beschrieben.
  • Der Schwellwert θ3 wird auf gleiche Weise bestimmt, wie es für θ1 in den ersten Ausführungsbeispiel beschrieben wurde (siehe 3). Der Schwellwert θ3 wird durch den folgenden Ausdruck 22 bestimmt.
  • Ausdruck 22
    • θ3 = (σ''off × α''on + σ''on × α''off)/(σ''on + σ''off)
  • In diesem Ausdruck sind α''on und σ''on jeweils der Durchschnitt und die Standardabweichung des Vorhersagefehlers der DC-Komponente für einen Makroblock mit effektiver Vorhersage, und α''off und σ''off sind das Entsprechende für einen Makroblock mit nicht effektiver Vorhersage.
  • Das in 3 dargestellte Flussdiagramm kann durch einfaches Ersetzen von θ1 durch θ3; SO in den Schritten B10 und B11 durch Vorhersagefehler (|X(0, 0) – X'(0, 0)|) der DC-Komponente; und α und σ durch α'' und σ'' für die Erläuterung zur Bestimmung von θ3 abgewandelt werden.
  • Wie auch bei θ wird mit kleinerem θ2 die Verarbeitungszeit kleiner, da die Anzahl der Blöcke mit effektiver Vorhersage verringert wird. Andererseits wird mit steigendem θ2 die Verarbeitungszeit größer, da mehr redundante Schritte vorhanden sind, wenngleich einige genauere Kodierung erreicht wird.
  • Entsprechend dem oben beschriebenen dritten Ausführungsbeispiel wird die Bedingung, ob die Vorhersage nicht effektiv ist basierend auf einem zuvor erhaltenen Wert (in diesem Fall die Summe der Vorhersagefehler in den DC-Komponenten: Σm) vor der Berechnung von ΣmS (Betragsumme der Vorhersagefehler in den AC-Komponenten) untersucht. In diesem Fall ist die Bedingung Σm|X(0, 0) – X'(0, 0)1 < θ3 (vorbestimmter Schwellwert). Wenn die Bedingung erfüllt ist, wird festgestellt, dass eine Vorhersage nicht effektiv ist. In diesem Fall wird die Berechnung des Vorhersagefehlers übersprungen und die nicht vorhergesagten AC-Komponenten werden direkt variabel-länge-kodiert. Wenn die Bedingung nicht erfüllt ist, wird auf herkömmliche Weise festgestellt, ob die Vorhersage effektiv ist oder nicht, wie in 9 dargestellt.
  • Entsprechend wird die Berechnung des Vorhersagefehlers (ΣmS) übersprungen falls die Vorhersage für den zu verarbeitenden Frame offensichtlich nicht effektiv ist, beispielsweise wenn der Frame ein fast gleichförmiges Bild, wie den Himmel oder den Boden enthält. Das Überspringen der Berechnung des Vorhersagefehlers hilft, die Verarbeitungszeit für die Kodierungen zu verringern und die Effektivität zu verbessern. Das Ergebnis ist außerdem genau, der die Bestimmung, ob die Vorhersage effektiv ist oder nicht durch eine Kombination von einer Untersuchung vor der Berechnung des Vorhersagefehlers und dem herkömmlichen Bestimmungsverfahren erreicht wird.
  • Verschiedene Ausführungsbeispiel und Änderungen können gemacht werden. Beispielsweise kann der Vorhersagefehler in den AC/DC-Komponenten auch durch ein Fehlerquadrat anstelle des absoluten Fehlers bestimmt werden.
  • Das Programm oder das Datensignal, das ein Computer so steuert, damit er die oben beschriebene Funktionalität ausführt, kann auf einem Speichermedium wie ROM, Floppy-Disk, Festplatte, CD-ROM, MO, Smartcard oder ähnlichen gespeichert sein. Das Programm oder das Datensignal kann über ein Trägersignal übertragen werden.

Claims (6)

  1. Videodatenkodierer, der adaptiv sowohl Gleichkomponenten als auch Wechselkomponenten von Koeffizienten einer diskreten Kosinustransformation in vorgegebenen Blöcken durch prädiktive Kodierung kodiert, umfassend: eine Vergleichsvorrichtung (6d, 6m) für die Berechnungen eines Vorhersagefehlers in den Wechselkomponenten und zum Vergleichen einer Absolutwertsumme von nicht vorhergesagten Werten mit einer Absolutwertsumme des Vorhersagefehlers in den vorgegebenen Blöcken; eine Vorrichtung zur Bestimmung der Effektivität (6m), um zu bestimmen, dass die vorhergesagten Wechselkomponenten nicht effektiv sind, wenn die Vergleichsvorrichtung (6m) feststellt, dass die Absolutwertsumme der nicht vorhergesagten Wechselkomponenten kleiner ist als die Absolutwertsumme des Vorhersagefehlers; und eine Kodiervorrichtung (6f, 6m, SW1) zum Kodieren der Wechselkomponenten ohne dabei den Vorhersagefehler der Wechselkomponenten in den vorgegebenen Blöcken zu berechnen, wenn die Vorrichtung zur Bestimmung der Effektivität (6m) feststellt, dass die Vorhersage nicht effektiv ist; gekennzeichnet durch eine Vorrichtung zur Untersuchung einer Bedingung, um eine vorbestimmte Bedingung zu untersuchen, die vor der Berechnung eines Vorhersagefehler der Wechselkomponenten in den vorgegebenen Blöcken bestimmt, dass die Vorhersage der Wechselkomponenten nicht effektiv ist; wobei die Vergleichsvorrichtung (6d, 6m) den Vorhersagefehler in den Wechselkomponenten berechnet, wenn die Vorrichtung zur Untersuchung einer Bedingung feststellt, dass die vorbestimmte Bedingung nicht erfüllt ist; und wobei die Vorrichtung zur Bestimmung der Effektivität (6m) feststellt, dass die Vorhersage der Wechselkomponenten nicht effektiv ist, wenn die Vorrichtung zur Untersuchung einer Bedingung feststellt, dass die vorbestimmte Bedingung nicht erfüllt ist, oder wenn die Vergleichsvorrichtung feststellt, dass die Absolutwertsumme der nicht vorhergesagten Wechselkomponenten kleiner ist als die Absolutwertsumme des Vorhersagefehlers.
  2. Videodatenkodierer nach Anspruch 1, wobei die vorbestimmte Bedingung eine Bedingung enthält, bei der in den vorgegebenen Blöcken die Absolutwertsumme der Wechselkomponenten innerhalb eines vorbestimmten Bereichs kleiner ist als ein vorbestimmter Schwellwert.
  3. Videodatenkodierer nach Anspruch 1, wobei die vorbestimmte Bedingung eine Bedingung enthält, bei der die Anzahl der Wechselkomponenten, deren Absolutwert ungleich 0 in den vorgegebenen Blöcken innerhalb eines vorbestimmten Bereichs liegt, kleiner ist als ein vorbestimmter Schwellwert.
  4. Videodatenkodierer nach Anspruch 1, wobei die vorbestimmte Bedingung eine Bedingung enthält, bei der die Absolutwertsumme des Vorhersagefehlers in den Gleichkomponenten der vorgegebenen Blöcke kleiner ist als ein vorbestimmter Schwellwert.
  5. Verfahren zum Kodieren von Videodaten, das adaptiv sowohl Gleichkomponenten als auch Wechselkomponenten von Koeffizienten einer diskreten Kosinustransformation in vorgegebenen Blöcken durch prädiktive Kodierung kodiert, das die Schritte umfasst: Berechnen (Schritt S109) eines Vorhersagefehlers in den Wechselkomponenten; Vergleichen (Schritt S110) einer Absolutwertsumme von nicht vorhergesagten Werten mit einer Absolutwertsumme des Vorhersagefehlers in den vorgegebenen Blöcken; Bestimmen (Schritt S110), dass die vorhergesagten Wechselkomponenten nicht effektiv sind, wenn der Vergleichschritt (Schritt S110) feststellt, dass die Absolutwertsumme der nicht vorhergesagten Wechselkomponenten kleiner ist als die Absolutwertsumme des Vorhersagefehlers; und Kodieren (Schritt 108) der Wechselkomponenten ohne Berechnung des Vorhersagefehlers der Wechselkomponenten in den vorgegebenen Blöcken, wenn der Schritt zum Bestimmung (Schritt 107) feststellt, dass die Vorhersage nicht effektiv ist; gekennzeichnet durch Untersuchen (Schritt 107) einer vorbestimmten Bedingung, die vor der Berechnung (Schritt S108) eines Vorhersagefehlers der Wechselkomponenten in den vorgegebenen Blöcken bestimmt, dass die Vorhersage der Wechselkomponenten nicht effektiv ist; wobei der Berechnungsschritt (Schritt S109) den Vorhersagefehler in den Wechselkomponenten berechnet, wenn der Untersuchungsschritt (Schritt S107) festgestellt, dass die vorherbestimmte Bedingung nicht erfüllt ist; und wobei der Bestimmungsschritt (Schritt S110) feststellt, dass die Vorhersage der Wechselkomponenten nicht effektiv ist, wenn der Untersuchungsschritt (Schritt S107) feststellt, dass die vorbestimmte Bedingung nicht erfüllt ist, oder wenn der Vergleichsschritt (Schritt S110) ergibt, dass die Absolutwertsumme der nicht vorhergesagten Wechselkomponenten kleiner ist als die Absolutwertsumme des Vorhersagefehlers.
  6. Ein computerlesbares Aufzeichnungsmedium, das ein durch einen Computer auszuführendes Programm speichert, wobei der Programmcode in der Lage ist alle Schritte von Anspruch 5 auszuführen.
DE2000636585 1999-09-01 2000-08-30 Videodatencoder und Verfahren zur Codierung von Videodaten Expired - Lifetime DE60036585T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP24772999A JP2001078188A (ja) 1999-09-01 1999-09-01 画像圧縮符号化装置、及び記憶媒体
JP24772999 1999-09-01

Publications (2)

Publication Number Publication Date
DE60036585D1 DE60036585D1 (de) 2007-11-15
DE60036585T2 true DE60036585T2 (de) 2008-01-31

Family

ID=17167815

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2000636585 Expired - Lifetime DE60036585T2 (de) 1999-09-01 2000-08-30 Videodatencoder und Verfahren zur Codierung von Videodaten

Country Status (6)

Country Link
US (1) US6362753B1 (de)
EP (1) EP1081961B1 (de)
JP (1) JP2001078188A (de)
KR (1) KR100377131B1 (de)
CN (1) CN1291847A (de)
DE (1) DE60036585T2 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1312220A2 (de) * 2000-08-12 2003-05-21 Robert Bosch Gmbh Verfahren zur ganzzahligen approximation von transformationskoeffizienten sowie coder und decoder
US7095785B2 (en) * 2001-06-29 2006-08-22 Equator Technologies, Inc. Determination of prediction direction in MPEG-4
KR100566191B1 (ko) * 2003-07-30 2006-03-29 삼성전자주식회사 H.263 멀티미디어 칩을 이용한 엠펙-4 부호화기
JP4369857B2 (ja) * 2003-12-19 2009-11-25 パナソニック株式会社 画像符号化装置および画像符号化方法
JP4523494B2 (ja) * 2005-06-10 2010-08-11 三菱電機株式会社 画像符号化装置および画像復号装置
US7460032B2 (en) * 2005-10-27 2008-12-02 Evault, Inc. Methods and apparatus for performing adaptive compression
KR100744435B1 (ko) 2006-02-21 2007-08-01 (주)씨앤에스 테크놀로지 고속 동영상 압축을 위한 dct 및 양자화 과정 생략 방법
US20100232691A1 (en) * 2007-10-15 2010-09-16 Shunichi Sekiguchi Image coding device, image decoding device, image coding method, and image decoding method
US8254453B2 (en) * 2010-01-20 2012-08-28 Himax Media Solutions, Inc. Multi-format video decoder and related decoding method
US20130039412A1 (en) * 2010-04-26 2013-02-14 Panasonic Corporation Predictive coding with block shapes derived from a prediction error

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4984076A (en) * 1988-07-27 1991-01-08 Kabushiki Kaisha Toshiba Image compression coding system
US5260808A (en) * 1991-04-23 1993-11-09 Canon Kabushiki Kaisha Image processing apparatus
US5475501A (en) 1991-09-30 1995-12-12 Sony Corporation Picture encoding and/or decoding method and apparatus
ES2278378T3 (es) * 1992-06-09 2007-08-01 Canon Kabushiki Kaisha Aparato de codificacion.
JPH0795584A (ja) * 1993-07-30 1995-04-07 Matsushita Electric Ind Co Ltd 画像符号化装置
JP3050736B2 (ja) * 1993-12-13 2000-06-12 シャープ株式会社 動画像符号化装置
JP3356516B2 (ja) * 1993-12-28 2002-12-16 シャープ株式会社 動画像符号化装置
CA2227487C (en) 1997-02-14 2002-10-01 Barin Geoffry Haskell Video coder providing implicit or explicit prediction for image coding and intra coding of video

Also Published As

Publication number Publication date
US6362753B1 (en) 2002-03-26
KR100377131B1 (ko) 2003-03-26
CN1291847A (zh) 2001-04-18
EP1081961A1 (de) 2001-03-07
EP1081961B1 (de) 2007-10-03
DE60036585D1 (de) 2007-11-15
KR20010030146A (ko) 2001-04-16
JP2001078188A (ja) 2001-03-23

Similar Documents

Publication Publication Date Title
DE10300048B4 (de) Verfahren und Vorrichtung zur Bildcodierung und -decodierung
DE19730360B4 (de) Bilddatenfilterungsvorrichtung und Verfahren zur Verminderung von Bilddatencodierfehlern
EP0817496B1 (de) Verfahren und Anordnung zur Reduktion von Blockartefakten in codierten Bildern
JP4514819B2 (ja) 動画像復号装置
DE10253380B4 (de) Verfahren und Einrichtung zum Kodieren sich bewegender Bilder mit fester Rechenkomplexität
DE69627982T2 (de) Signaladaptives Nachverarbeitungssystem um Blockierungseffekte und Ringstörungen zu verringern
DE19734882C2 (de) Verfahren zum Kodieren von Bewegungsvektoren bei Filmaufnahmen
DE69735680T2 (de) Verfahren zur Bilddecodierung
DE112010004109B4 (de) Verfahren zum Dekodieren eines Bitstroms
DE69735743T2 (de) Videokodierungs- und Videodekodierungsvorrichtung
DE10253383B4 (de) Verfahren und Einrichtung zum Kodieren sich bewegender Bilder mit fester Rechenkomplexität
EP1516491B1 (de) Filterverfahren und vorrichtung zur entfernung von blockartefakten und/oder klingelrauschen
DE19737805A1 (de) Verfahren und Vorrichtung zum Kodieren eines Bewegungsvektors
DE69630199T2 (de) Verfahren und gerät zur selektiven kompression von video-codec
DE19541457C1 (de) Verfahren zur Codierung eines Videodatenstroms einer aus Bildblöcken bestehenden Videosequenz
DE60036585T2 (de) Videodatencoder und Verfahren zur Codierung von Videodaten
EP1425920B1 (de) Verfahren zur videocodierung und computerprogrammprodukt
DE69636273T2 (de) Bewegtbildcodiervorrichtung, Bewegtbilddecodiervorrichtung und Bewegtbildcodier-/-Decodiervorrichtung
EP1285537B1 (de) Verfahren und eine anordnung zur codierung bzw. decodierung einer folge von bildern
DE60308727T2 (de) Verfahren zur erfassung von blockartefakten
DE69738610T2 (de) MPEG-Codierer/Decodierer
EP1869890B1 (de) Verfahren und vorrichtung zur reduktion eines quantisierungsfehlers
DE102006049232B4 (de) Verfahren und Vorrichtung zur Vermeidung von Fehlern beim Runden von Werten nach Durchführung einer inversen diskreten Kosinus-Transformation
EP1121809B1 (de) Verfahren und anordnung zur codierung eines digitalisierten bildes, verfahren und anordnung zur decodierung eines digitalisierten bildes
DE10225434B4 (de) Verfahren und Vorrichtung zur Videocodierung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition