DE69233620T2 - Adaptive Kodierung und Dekodierung von Vollbildern und Halbbildern von Videosignalen - Google Patents

Adaptive Kodierung und Dekodierung von Vollbildern und Halbbildern von Videosignalen Download PDF

Info

Publication number
DE69233620T2
DE69233620T2 DE69233620T DE69233620T DE69233620T2 DE 69233620 T2 DE69233620 T2 DE 69233620T2 DE 69233620 T DE69233620 T DE 69233620T DE 69233620 T DE69233620 T DE 69233620T DE 69233620 T2 DE69233620 T2 DE 69233620T2
Authority
DE
Germany
Prior art keywords
block
signal
macroblock
motion
motion compensation
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
DE69233620T
Other languages
English (en)
Other versions
DE69233620D1 (de
Inventor
Atul New York Puri
Rangarajan Matawan Aravind
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.)
AT&T Corp
Original Assignee
AT&T Corp
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25158980&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69233620(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by AT&T Corp filed Critical AT&T Corp
Publication of DE69233620D1 publication Critical patent/DE69233620D1/de
Application granted granted Critical
Publication of DE69233620T2 publication Critical patent/DE69233620T2/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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/112Selection of coding mode or of prediction mode according to a given display mode, e.g. for interlaced or progressive display mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/16Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter for a given display mode, e.g. for interlaced or progressive display mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Description

  • Die vorliegende Erfindung betrifft Vorrichtungen zur Codierung digitaler Videosignale und Vorrichtungen zur Decodierung eines komprimierten digitalen Videosignals.
  • Es finden weltweite Bemühungen statt, um die Qualität der Produktion, Übertragung und Wiedergabe von Videosignalen zu verbessern, weil für Videosysteme verbesserter Qualität sehr viel kommerzielle Wichtigkeit vorhergesagt wird. Bei diesen Bemühungen wird zumindest teilweise die Auflösung vergrößert, mit der Bilder in repräsentative elektrische Signale umgesetzt werden, indem die räumlichen und zeitlichen Abtastraten vergrößert werden, mit denen Videobilder in elektrische Signale umgesetzt werden. Diese Zunahme der Auflösung bedeutet folglich, daß mehr Daten über Bilder in einem gegebenen Zeitraum produziert, verarbeitet und übertragen werden müssen.
  • Videobilder, wie zum Beispiel die Bilder im Sichtfeld einer Fernsehkamera, werden mit einer vorbestimmten Rate abgetastet und in einer Reihe elektrischer Signale umgesetzt, wobei jedes elektrische Signal eine Kenngröße einer vorbestimmten Region des Bildes repräsentiert, die im allgemeinen als Bildelement, Pel oder Pixel bezeichnet wird. Mehrere Bildelemente zusammengenommen bilden zu einem vorbestimmten Zeitpunkt quasi ein Standbild, das die Beschaffenheit des Bildes an dem vorbestimmten Zeitpunkt repräsentiert. Bei der Vergrößerung der Qualität von auf diese Weise produzierten Videosignalen müssen zumindest teilweise mehr kleinere Bildelemente verwendet werden, um ein gegebenes Einzelbild zu repräsentieren, und es müssen sehr viel Einzelbilder pro Zeiteinheit produziert werden. Zum Beispiel spezifiziert die Empfehlung CCIR-601 die Anzahl der Bildelemente in einem Einzelbild als 720 horizontale Bildelemente × 486 vertikale Bildelemente (USA und Japan) oder 576 vertikale Bildelemente (Europa). In jeder Sekunde werden 30 oder 25 verschachtelte Bilder produziert. Bei HDTV-Projekten (hochauflösendes Fernsehen) wurde vorgeschlagen, mit etwa 700–1000 horizontalen Zeilen jeweils mit 1200–2000 Bildelementen zu arbeiten. Diese HDTV-Bemühungen ziehen in Betracht, 25 oder 30 verschachtelte Bilder pro Sekunde oder 60 oder 50 nichtverschachtelte Bilder pro Sekunde zu produzieren.
  • Mit zunehmender Anzahl der Bildelemente für jedes Videoeinzelbild und zunehmender Rate, mit der Einzelbilder produziert werden, muß eine zunehmende Menge an Videodaten in einem gegebenen Zeitraum produziert, übertragen und empfangen werden. Es wäre vorteilhaft, wenn durch diese Systeme produzierte Videosignale so komprimiert werden könnten, daß weniger Daten erzeugt werden könnten, die immer noch genug Informationen enthalten würden, so daß qualitativ hochwertigere Videobilder wiedergegeben werden könnten.
  • Es wurden mehrere Datenkomprimierungsverfahren vorgeschlagen, die versuchen, qualitativ hochwertigere Videobilder mit derselben Anzahl von Bit und denselben Bitraten wie für qualitativ weniger hochwertige Bilder zu übertragen. Bei einem solchen Verfahren wird ein Codierer verwendet, der digitale Videosignale empfängt, die Kenngrößen einer Sequenz von Bildelementen repräsentieren. Der Codierer transformiert Blöcke solcher Videosignale zu Blöcken von Transformationskoeffizienten in bezug auf die räumlichen Fequenzkomponenten in den Bereich des Bildes, die durch die Blöcke von Bildelementen repräsentiert werden. Die Blöcke von Frequenzkoeffizienten werden dann gemäß einer bestimmten vorbestimmten Sequenz quantisiert und gescannt. Die quantisierten Frequenzkoeffizienten werden dann in der Reihenfolge, die durch die Scanning-Sequenz definiert wird, zu einem Variable-Wortlänge- Codierer gesendet, der die quantisierten Frequenzkoeffizienten dann codiert und die codierten quantisierten Frequenzenkoeffizienten überträgt. Es hat sich erwiesen, daß weniger Bit gesendet werden müssen, wenn anstelle von Pixeldatenbit diese codierten quantisierten Frequenzkoeffizienten gesendet werden.
  • Bei einem anderen vorgeschlagenen Datenkomprimierungsverfahren werden die Kenngrößen eines Segments des Videosignals geschätzt und die Schätzung von dem tatsächlichen Videosignalsegment subtrahiert, um ein geschätztes Fehlersignal zu erzeugen, das dann anstelle des tatsächlichen Videosignalsegments codiert und übertragen wird. Wieder hat sich gezeigt, daß weniger Bit übertragen werden müssen, wenn anstelle von Pixeldatensignalen Schätzungsfehlersignale übertragen werden.
  • Bei einer weiteren Technik zum Komprimieren von Videodaten werden Daten produziert und übertragen, die im Hinblick auf ein aktuelles Videosignalsegment und ein vorheriges Videosignalsegment berechnete Bewegungsvektoren repräsentieren, anstelle der Übertragung der Pixeldaten. Mit diesen Bewegungsvektoren kann man eine Bewegungskompensation zur Erzeugung genauerer Schätzungen eines Videosignals und kleinerer Schätzungsfehlersignale bereitstellen, wodurch dann die Anzahl der zum Übertragen von Videosignalen notwendigen Bit verringert wird.
  • Jede dieser Techniken versucht, Daten zu senden, die von einem tatsächlichen Videosignal abgeleitet werden, mit denen ein Decodierer in einem Empfänger der Videosignale aus einer begrenzten Teilmenge der das tatsächliche Videosignal definierenden Daten das tatsächliche Videosignal rekonstruieren kann. Die tatsächliche Anzahl der Bit, die in diesen Situationen übertragen werden muß, ist kleiner als die Anzahl der Bit, die notwendig sind, um jedes Bildelement in dem Videosignal zu definieren, und somit können Videosignale mit höherer Auflösung mit derselben Bitrate übertragen werden. Obwohl jede dieser Techniken bis zu einem gewissen Grade bei der Erzielung einer geeigneten Komprimierung von Videodaten ohne übermäßigen Informationsverlust erfolgreich ist, gibt es signifikante Gebiete, auf denen die Codierung von Videodaten verbessert werden kann, so daß die Anzahl der Bit, die übertragen werden muß, verringert wird und ein Videodecodierer eine genaue Rekonstruktion vornehmen kann.
  • Aus EP-A-0451545 ist eine Anordnung bekannt, die sowohl ein Einzelbildformat als auch ein Teilbildformat zum gleichzeitigen Komprimieren des Videosignals verwendet. Tatsächlich werden beide Formate verwendet, um ein erstes und ein zweites komprimiertes Videosignal zu erhalten, die dann auf Fehler ausgewertet werden. Das komprimierte Videosignal mit den wenigsten Fehlern wird dann für die weitere Verarbeitung ausgewählt. Beide Codierungstechniken werden gleichzeitig verwendet.
  • Aus WO-A-9015506 ist eine Codierungsanordnung bekannt, die eine diskrete Kosinustransformation verwendet, die als Reaktion auf einen Entscheidungsprozeß verwendet wird, bei dem ein sogenannter Vollbildblock oder separat zwei Halbbildblöcke beteiligt sind. Bildwertdifferenzen in den Halbbildpaaren werden miteinander addiert, um eine Halbbildsumme zu erhalten. Ähnlich werden Bildwertdifferenzen in dem Vollbild addiert, um eine Vollbildsumme zu bilden. Die Vollbildsumme wird mit einem Bewertungsfaktor multipliziert und dann von einer Halbbildsumme subtrahiert, um ein positives Entscheidungsergebnis bereitzustellen. Wenn das Entscheidungsergebnis positiv ist, wird das Vollbild umgesetzt, andernfalls werden beide Halbbilder separat umgesetzt.
  • Aus PATENT ABSTRACTS OF JAPAN, Band 015, Nr. 355 (E-1109) 9.9.1991, und JP-A-31 039 088 (RICOH CO LTD) 13.6.1991, ist eine weitere Codierungsanordnung bekannt, die eine diskrete Kosinustransformation verwendet. Die diskrete Kosinustransformation wird in jedem Datenblock ausgeführt und durch Dividieren eines erhaltenen Gleichstromkoeffizienten durch jede Schwelle einer Quantisierungsmatrix, um die Quantisierung zu bewirken. Eine Gleichstromkomponente des quantisierten Gleichstromkoeffizienten eines aktuellen Datenblocks wird von der quantisierten Gleichstromkomponente eines vorherigen Datenblocks subtrahiert, und die Anzahl der Bit dieser Differenz wird dann Huffman-codiert.
  • Gemäß einem Aspekt der vorliegenden Erfindung wird eine Codierungvorrichtung nach Anspruch 1 bereitgestellt.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird eine Decodierungsvorrichtung nach Anspruch 10 bereitgestellt.
  • Die verbesserte Komprimierung von Videodaten wird durch einen adaptiven Videoeinzelbild-/-teilbildcodierer und -decodierer erreicht. Bei einem Beispiel der Erfindung werden verschieden große Videodatenblöcke verarbeitet, um verschiedene Codierungs- und verschiedene Bewegungsschätzbetriebsarten zu erzielen. Das Verhalten eines die Erfindung realisierenden Codierers und das Verhalten eines entsprechenden Decodierers passen sich an bestimmte Kenngrößen des Videobildes an. Bei diesem adaptiven Verhalten erfolgt ein Wechseln zwischen einem Prozeß des Codierens und des Decodierens von Informationen aus einem Videoeinzelbild oder dem Codieren und Decodieren von Informationen aus einem Videoteilbild. Bei einem spezifischerem Beispiel umfaßt die vorliegende Erfindung eine Anpassung zwischen Codierungs- und Decodierungsinformationen aus einem Videodateneinzelbild oder Codierung und Decodierung von Informationen aus jedem von mehreren verschachtelten Videodatenteilbildern. Abhängig von der verwendeten Codierungsbetriebsart können entweder einzeln oder in beliebiger Kombination verschiedene Schritte unternommen werden, um die Komprimierung und Dekomprimierung von Videodaten zu verbessern. Bei spezifischen Beispielen wird eine angemessene Quantisierung gewählt, es werden verschiedene Scanning-Techniken verwendet, verschiedene Techniken zur Vorhersage bestimmter Komponenten der Videosignale verwendet oder verschiedene Bewegungskompensationsbetriebsarten verwendet. Die Vorteile der vorliegenden Erfindung sind für alle Videosysteme nützlich, bei denen digitale Videosignale vorkommen, darunter hochauflösendes Fernsehen und Videotelekommunikationssysteme.
  • Kurze Beschreibung der Zeichnung
  • 1 ist ein Blockschaltbild eines die Erfindung realisierenden Videosignalcodierers;
  • 1a ist eine Darstellung einer Bildstrukturgruppe, die bei einem Beispiel der Erfindung nützlich ist;
  • 1b und 1c zeigen Beispiele für bei einem Beispiel der Erfindung nützliche Block-Scans;
  • 1d bis 1k zeigen Beispiele für Tabellen, die die Längen der in einem Beispiel der Erfindung verwendeten Variable-Länge-Codes identifizieren;
  • 2 ist ein Blockschaltbild eines die Erfindung realisierenden Videosignaldecodierers;
  • 3 ist ein Blockschaltbild der Funktionalspezifikation eines blockadaptiven bewegungskompensierten unidirektionalen Prädiktors;
  • 4 ist ein Blockschaltbild der Funktionalspezifikation eines blockadaptiven bewegungskompensierten bidirektionalen Prädiktors;
  • 5 ist ein ausführliches Blockschaltbild des in 1 gezeigten blockadaptiven Einzelbild-/Teilbildcodierungsanalysierers;
  • 6 ist ein Bockschaltbild des Blockformatierers von 1;
  • 7 ist ein Blockschaltbild des Blockentformatierers von 1 und 2;
  • 8 ist ein Flußdiagramm der Intra-Gleichstromkoeffizientenprädiktion von 1 und 2;
  • 9 ist ein Beispiel für adaptive Einzelbild-/Teilbild-Gleichstromkoeffizientenprädiktion;
  • 10 ist ein Blockschaltbild des variable-Wortlängenwahl-Analysierers von 1;
  • 11 ist ein Flußdiagramm der Codierung eines Mscale-Parameters für B-Bilder in einem Beispiel der Erfindung;
  • 12 ist ein Flußdiagramm der Decodierung eines Mscale-Parameters für B-Bilder in einem Beispiel der Erfindung;
  • 13 ist ein Blockschaltbild eines Beispiels für einen in einem Beispiel der Erfindung nützlichen Sichtbarkeitsmatrixselektor;
  • 14 ist ein Blockschaltbild eines in einem Beispiel der Erfindung nützlichen Vorwärts-/Invers-Scan-Selektors;
  • 15 ist ein Flußdiagramm der Bewegungsvektorprädiktion für P-Bilder in einem Beispiel der Erfindung; und
  • 16 ist ein Flußdiagramm der Bewegungsvektorprädiktion für B-Bilder in einem Beispiel der Erfindung.
  • Ausführliche Beschreibung
  • 1 zeigt einen die Erfindung realisierenden beispielhaften adaptiven bewegungskompensierten prädiktiven/interpolativen Codierer. Der Codierer von 1 empfängt digitale Videoeingangssignale auf einer Eingangsleitung 10 und komprimiert diese Videoeingangssignale zur Übertragung zu einem Empfänger, der diese Signale dekomprimiert, um Videobilder zu erzeugen. Die digitalen Videoeingangssignale sind räumliche und zeitliche Abtastwerte eines Videobildes und können durch Scannen eines Bildfeldes und Erzeugen eines die Kenngrößen des Bildfeldes an vorbestimmten Punkten betreffenden elektrischen Signals erzeugt werden. Die bei der Scanning-Operation bestimmten Kenngrößen werden in elektrische Signale umgesetzt und digitalisiert. Die Videoeingangssignale umfassen eine Abfolge digitaler Wörter, die jeweils bestimmte Informationen an einem bestimmten Zeitpunkt über eine kleine Region des Bildfeldes repräsentieren, die als Bildelement bezeichnet wird. Eine vollständige Menge digitaler Repräsentationen für das Bild an einem bestimmten Zeitpunkt wird als Einzelbild oder Bild bezeichnet. Jedes Einzelbild kann als aus einer Anzahl kleinerer Regionen bestehend betrachtet werden, die allgemein als Teilbilder bekannt sind; zum Beispiel kann jedes Einzelbild aus zwei verschachtelten Teilbildern bestehen, die ungeradzahlige und geradzahlige horizontale Linien oder Zeilen von Bildelementen in dem Bild repräsentieren. Das Einzelbild kann außerdem so betrachtet werden, daß es eine Anzahl von Makroblöcken, Submakroblöcken und Blöcken von Bildelementen, die Gruppen zusammenhängender Bildelemente repräsentieren, wie zum Beispiel 16 × 16-Makroblöcke von Bildelementen, 16 × 8-Subblöcke von Bildelementen und 8 × 8-Blöcke von Bildelementen, repräsentiert.
  • Das digitale Videoeingangssignal kann ein Monochrom-Videosignal oder ein Farbvideosignal sein. Im Fall eines Monochrom-Videosignals kann jedes Einzelbild eine Menge digitaler Repräsentationen der Helligkeit oder Intensität eines zweidimensionalen Bildelementarrays, woraus ein Videobild besteht, umfassen, Im Fall eines Farbvideosignals umfaßt jedes Bild nicht nur eine Helligkeitskomponente, sondern auch eine Farbkomponente. Zum Beispiel kann bei der Empfehlung CCIR 601 ein Farbvideosignalbild (d.h. eine zeitliche Probe des Bildes) aus einem Luminanzeinzelbild aus 720 horizontalen Bildelementen × 480 vertikalen Bildelementen und zwei Chrominanzeinzelbildern Cb und Cr mit 1/4 Auflösung von jeweils 360 horizontalen Bildelementen × 240 vertikalen Bildelementen zusammengesetzt sein. Eine Sequenz solcher Bilder kann mit einer Rate von 29,97 Bildern pro Sekunde übertragen werden. Der Luminanzrahmen wird als verschachtelte Vereinigung zweier konstituierender CCIR-601-Luminanzteilbilder gebildet werden, während die Chrominanzeinzelbilder durch Filterung und Unterabtastung der jeweiligen 4:2:2-CCIR-601-Chrominanzeinzelbilder abgeleitet werden.
  • Zum Zwecke der Darstellung eines spezifischen Beispiels für die Erfindung nimmt die nachfolgende Beschreibung an, daß das Videosignal auf der Eingangsleitung 10 ein Videosignal gemäß der Empfehlung CCIR 601 ist. Für Fachleute ist erkennbar, daß die Prinzipien der Erfindung auch für andere Arten von Videosignalen, wie zum Beispiel HDTV-Videosignalen, gelten. Um bei der Beschreibung des Beispiels für die Erfindung von 1 zu helfen, sollte bestimmte Terminologie definiert werden. Ein Block ist ein Array zusammenhängender Bildelemente von 8 horizontalen Zeilen mal 8 vertikalen Spalten. Blöcke können Gruppen von Luminanzdaten oder Gruppen von Chrominanzdaten sein. Ein Makroblock besteht aus vier zusammenhängenden 8 × 8-Luminanzdatenblöcken und den beiden 8 × 8-Chrominanzdatenblöcken, die dem durch die vier Luminanzdatenblöcke repräsentierten Bereich des Bildes entsprechen. Ein Slice ist eine horizontale Zeile von Makroblöcken, beginnend am linken Rand des Bildes und endend am rechten Rand des Bildes. Ein Luminanzeinzelbild wird als verschachtelte Vereinigung zweier CCIR-601-Luminanzteilbilder gebildet. Ein Einzelbild umfaßt geradzahlige horizontale Zeilen von Bildelementen und das andere Teilbild umfaßt ungeradzahlige horizontale Zeilen von Bildelementen.
  • Bei den in 1 und 2 gezeigten Beispielen für die Erfindung werden mehrere Bildtypen codiert und decodiert. Genauer gesagt werden I-Bilder, P-Bilder und B-Bilder codiert und decodiert. I-Bilder oder intracodierte Bilder sind Bilder, die ohne Bezug auf irgendwelche andere Bilder codiert und decodiert werden. P-Bilder oder vorhergesagte Bilder sind Bilder, die im Hinblick auf ein vorheriges Bild codiert werden. Zur Erzeugung von P-Bildern kann Bewegungskompensation verwendet werden. B-Bilder oder bidirektional vorhergesagte Bilder sind Bilder, die im Hinblick auf Kenngrößen eines vorherigen I- oder P-Bildes und eines zukünftigen I- oder P-Bildes codiert werden. Wie im Fall der P-Bilder können auch B-Bilder unter Verwendung von Bewegungskompensation codiert werden. Unter entsprechenden Umständen können von P-Bildern und I-Bildern bestimmte ihrer Blöcke auf dieselbe Weise codiert werden, wie die Blöcke der I-Bilder codiert werden, d.h. ohne Bezug auf andere Bilder ("Intracodierung"). Eine Struktur einer Gruppe-von-Bild (GOP) wird in diesem Beispiel mit N = 12 und M = 3 gemäß der Sprechweise der Motion Picture Experts Group (MPEG) verwendet. Die GOP besteht aus einem intracodierten I-Bild, 3 prädiktiv codierten P-Bildern und 8 bidirektional prädiktiven Code-B-Bildern. Diese GOP stellt sicher, daß alle 12/29,97 (ungefähr 0,4) Sekunden ein vollständiges I-Bild auftritt, wobei es sich daher um die maximale Verzögerung zum Erfassen eines Bildes aus einem Bitstrom handelt. Siehe 1a.
  • Ein Bild wird in Makroblöcke aufgeteilt, wobei ein Makroblock ein 16 × 16-Luminanzblock ist, plus die mitangeordneten 8 × 8-Cb- und Cr-Blöcke (jeweils einer). Diese Definition läßt sich jedoch leicht auf die volle CCIR-601-Vertikalchrominanzauflösung erweitern, wobei ein 16 × 16-Luminanzblock mit zwei 8 × 8-Cb- und zwei 8 × 8-Cr-Blöcken assoziiert wird. Der Makroblock ist die Einheit, für die Betriebsarten der Bewegungskompensation und Quantisierung definiert werden. Ein Slice wird als eine Zeile von Makroblöcken definiert, beginnend am linken Rand des Bildes und endend am rechten Rand.
  • Das digitale Videoeingangssignal auf der Eingangsleitung 10 wird durch den in 1 gezeigten Codierer zu einem komprimierten Bitstrom codiert, der auf der Ausgangsleitung 26 zu einem anderen Ort übertragen werden kann, der einen Empfänger aufweist, der den Bitstrom decodieren und ein Videosignal erzeugen kann. Ein wichtiges Merkmal des Codierers von
  • 1 besteht darin, daß in entsprechenden Umständen vielfältige Codierungstechniken verwendet werden können, um das Videoeingangssignal auf der Leitung 10 effizient zu komprimieren und um eine präzise Rekonstruktion des Videobildes in dem Decodierer ohne signifikanten Informationsverlust zu gestatten. Genauer gesagt wählt der Codierer von 1 adaptiv seine Codierungsbetriebsart dergestalt, daß entweder Codierung von Einzelbildern in dem Videosignal oder Codierung der verschachtelten Teilbilder in den Einzelbildern des Videoeingangssignals stattfindet. Nachdem die Art der für das Videoeingangssignal zu verwendenden Codierung ausgewählt wurde, können im Hinblick auf die durch den Codierer von 1 verwendete Codierungstechnik vielfältige Techniken, die zum Komprimieren von Videodaten verwendet werden, auf adaptive Weise verbessert werden. Zum Beispiel können Techniken zur Schätzung zukünftiger Videosignale genauer gemacht werden. Außerdem werden Techniken zur Verwendung der Bewegungskompensation mit diesen Schätzungstechniken verbessert. Zusätzlich können auch Dinge wie etwa Quantisierungsprozeduren, Scanning-Techniken, Gleichstromkoeffizientenprädiktion und Variable-Wortlängen-Codierung verbessert werden.
  • Es werden zwei grundlegende Quantisierungs- und Codierungsbetriebsarten für einen Makroblock zugelassen: Einzelbildcodierung und Teilbildcodierung. Diese Quantisierungs- und Codierungsbetriebsarten sind von den Bewegungskompensationsbetriebsarten völlig unabhängig. Bei der Einzelbildcodierung werden aus einem Makroblock vier 8 × 8-Luminanzsubblöcke gebildet. Bei der Teilbildcodierung werden aus einem Makroblock vier 8 × 8-Luminanzsubblöcke abgeleitet, indem die Zeilen der beiden Teilbilder getrennt werden, so daß jeder Subblock nur Zeilen eines Teilbilds enthält. Die Einzelbildcodierung ist der Teilbildcodierung überlegen, wenn zwischen den beiden Teilbildern nicht viel Bewegung besteht, und die Teilbildcodierung ist überlegen, wenn es detaillierte bewegliche Bereiche gibt. Die Betriebsartenentscheidung erfolgt dann im Pixelbereich einmal für den gesamten Makroblock. Dann wird auf jeden Einzelbildsubblock oder Teilbildsubblock abhängig von der gewählten Betriebsart eine 8 × 8-DCT angewandt.
  • Das digitale Videoeingangssignal auf der Eingangsleitung 10 in 1 wird zu dem nichtinvertierenden Eingang eines Summierelements 11 gelenkt. Ein invertierender Eingang des Summierelements 11 empfängt ein Signal auf der Leitung 12 in bezug auf eine Schätzung des Videoeingangssignals auf der Leitung 10. Die Schätzung für P-Bilder basiert auf einer im Hinblick auf vergangene I- und P-Bilder durchgeführte Prädiktion. Die Schätzung für B-Bilder basiert auf einer im Hinblick auf vergangene und zukünftige I- und P-Bilder durchgeführte Prädiktion. Für I-Bilder und intracodierte Teile von P- und B-Bildern wird keine Schätzung durchgeführt, so daß das Schätzungssignal auf der Leitung 12 in diesen Situationen Null ist, wie symbolisch in 1 durch die Öffnung eines Schaltelements 13b des Inter/Intratyps in Reihe mit der Leitung 12 dargestellt. Das Summierelement 11 erzeugt auf der Leitung 13 ein Ausgangssignal, das mit dem Fehler zwischen dem digitalen Videoeingangssignal auf der Leitung 10 und dem geschätzten Signal auf der Leitung 12 zusammenhängt. Das geschätzte Fehlersignal auf der Leitung 13 wird zu dem Eingang eines blockadaptiven Einzelbild-/Teilbildcodierungsanalysierers 14 gelenkt. Abhängig von dem Zustand eines Schaltelements 13a untersucht der Codierungsanalysierer 14 vorbestimmte Kenngrößen der Videoeingangssignale auf der Leitung 10 oder des Schätzungsfehlersignals auf der Leitung 13 und trifft eine Entscheidung bezüglich der Art von von dem Codierer von 1 zu verwendender Codierung. Wenn das Schaltelement 13a die Leitung 13 mit dem Eingang des Analysierers 14 verbindet, entscheidet der Analysierer 14, ob es vorteilhaft wäre, entweder die Einzelbilder des Schätzungsfehlersignals auf der Leitung 13 oder die verschachtelten Teilbilder dieses Schätzungsfehlersignals zu codieren. Wenn das Schaltelement 13a das Eingangssignal auf der Leitung 10 mit dem Eingang des Analysierers 14 verbindet, entscheidet der Analysierer, ob es vorteilhaft wäre, entweder die Einzelbilder des Eingangssignals auf der Leitung 10 oder die verschachtelten Teilbilder dieses Eingangssignals auf der Leitung 13 zu codieren. Die Beschaffenheit der Entscheidung des Analysierers 14 wird durch die Herstellung eines Codierungstypsignals auf der Leitung 15 angegeben. Bei einem spezifischen Beispiel der Erfindung, das ein durch eine Verschachtelungs-Scanning-Technik erzeugtes Videoeingangssignal verwendet, prüft der Selektor 14, ob Ähnlichkeiten in benachbarten oder alternierenden horizontalen Abtastzeilen in dem Eingangssignal oder dem Schätzungsfehlersignal bestehen. Wenn der Selektor findet, daß die Differenzen zwischen angrenzenden Abtastzeilen kleiner als die Differenzen zwischen alternierenden Abtastzeilen sind, erzeugt der Selektor 14 ein Codierungstypsignal auf der Leitung 15, das angibt, daß Einzelbilder von Videoinformationen in dem Schätzungsfehlersignal oder dem Eingangssignal durch den Codierer von 1 codiert werden sollen. Wenn der Selektor 14 findet, daß die Differenzen zwischen angrenzenden Abtastzeilen größer als die Differenzen zwischen abwechselnden ungeraden und geraden Abtastzeilen sind, erzeugt der Selektor 14 ein Codierungstypsignal auf der Leitung 15, das anzeigt, daß jedes Teilbild ungeradzahliger Abtastzeilen und jedes Teilbild geradzahliger Abtastzeilen separat codiert werden soll.
  • Das Eingangssignal auf der Leitung 10 oder das Schätzungsfehlersignal auf der Leitung 13 wird selektiv zu dem Eingang einer Blockformatierungsschaltung 15a gelenkt (abhängig von dem Zustand des Schaltelements 13a). Die Formatierungsschaltung 15a reagiert außerdem auf das Codierungstypsignal auf der Leitung 15, um die Signale entweder auf der Leitung 10 oder der Leitung 13 in der richtigen Reihenfolge auf eine Leitung 17 zu dem Eingang einer Schaltung 16 für diskrete Kosinustransformation zu lenken. Wenn der Selektor 14 Teilbildcodierung gewählt hat, wird die Reihenfolge, in der die Daten das Eingangssignal auf der Leitung 10 oder das Schätzungsfehlersignal auf der Leitung 13 umfassen, geändert, so daß zuerst ungeradzahlige Abtastzeilen nacheinander zu dem Eingang der Schaltung 16 für diskrete Kosinustransformation auf der Eingangsleitung 17 gelenkt werden, gefolgt durch aufeinanderfolgende geradzahlige Abtastzeilen oder umgekehrt. Die Schaltung 16 für diskrete Kosinustransformation wandelt dann jeden Submakroblock entweder geradzahliger oder ungeradzahliger Abtastzeilen in eine Matrix von Transformationskoeffizienten um, die in diesem Beispiel der Erfindung räumliche Frequenzkomponenten in dem durch jeden Submakroblock repräsentierten Teil des Bildes repräsentieren.
  • Wenn der Selektor 14 Einzelbildcodierung gewählt hat, wird jeder Makroblock auf der Leitung 17 in der Reihenfolge, in der sie am Eingang des Selektors 14 auf Leitung 13 empfangen wurden, zu der Schaltung 16 für diskrete Kosinustransformation gesendet. Die Schaltung 16 für diskrete Kosinustransformation wandelt dann jeden Block in dem Makroblock in eine ähnlich große Matrix von Transformationskoeffizienten um, die bei diesem Beispiel der Erfindung räumliche Frequenzkomponenten in dem durch jeden Makroblock repräsentierten Teil des Bildes repräsentiert.
  • Zusätzlich zu einer Einzelbildcodierung gesamter Makroblöcke und einer Teilbildcodierung von Submakroblöcken, die ungeradzahlige und geradzahlige Abtastzeilen repräsentieren, kann der Selektor 14 auch so konfiguriert werden, daß er den Codierer von 1 anleiten kann, andere Arten von Submakroblöcken zu codieren, wie zum Beispiel Gruppen zusammenhängender Blöcke, deren Größe kleiner als die eines Makroblocks ist.
  • Die von der Schaltung 16 für diskrete Kosinustransformation erzeugten Transformationskoeffizienten werden auf der Ausgangsleitung 18 zu dem Eingang eines Sichtbarkeitsmatrixselektors und wahrnehmungsbezogenen Quantisierers 19 gelenkt. Der Quantisierer 19 dividiert jeden der transformierten Koeffizienten aus der Schaltung 16 für diskrete Transformation durch vorbestimmte Skalierungsfaktoren in einer von mehreren Sichtbarkeitsmatrizen und einem Quantisierungsparameter, der im Hinblick auf die Kenngrößen des digitalen Eingangssignals bestimmt wird, das auf der Leitung 20 zu dem Quantisierer 19 übermittelt wird, und im Hinblick der Kenngrößen des auf der Leitung 21 auf dem Quantisierer 19 übermittelten Schätzungsfehlersignals. Um wieviel die Transformationskoeffizienten quantisiert werden, wird außerdem durch das von dem Selektor 14 auf der Leitung 15 erzeugte Codierungstypsignal bestimmt. Der Quantisierer 19 stellt mit dem Codierungstypsignal die Quantisierungspegel ein, die auf die Transformationskoeffizienten aus der Schaltung für diskrete Kosinustransformation angewandt werden, um die Komprimierung von durch den Betrieb des Quantisierers 19 erzeugten Videosignalen zu verbessern.
  • Für Wechselstromkoeffizientenquantisierung werden ein 5-Bit-Quantisierungsparameter und eine Menge von Quantisierermatrizen verwendet. Quantisierung wird für Nicht-Intra-Codierung mit einer Totzone und für Intracodierung ohne durchgeführt. Dieses Beispiel der Erfindung ermöglicht vier verschiedene Quantisierermatrizen: eine für jede der Kombinationen von Intra-/Nicht-Intra- und Einzelbild-/Teilbild-codierten Makroblöcken. Es sind keine Vorgabematrizen spezifiziert; die benutzten werden auf der Sequenzschicht geladen und übertragen. Die Cb- und Cr-Subblöcke verwenden dieselben Matrizen wie die Luminanzsubblöcke.
  • In I-Bildern werden alle Makroblöcke codiert und für jeden Makroblock wird der 5-Bit-Quantisierungsparameter übertragen. In P- und B-Bildern können bestimmte Makroblöcke keine codierten Koeffizientendaten enthalten. Für jeden Makroblock wird ein Ein-Bit-Flag gesendet, um zu signalisieren, ob der Makroblock codiert ist oder nicht. In P-Bildern wird der Quantisierungsparameter dann für jeden codierten Makroblock übertragen.
  • Bei B-Bildern wird am Anfang jedes Slice ein 5-Bit-Quantisierungsparameter übertragen. Für jeden codierten Makroblock in dem Slice, der einen von vier Multiplikatoren (die alle in der Sequenzschicht übertragen werden) identifiziert, wird ein Zwei-Bit-Index (mit der Bezeichnung mscale addr) übertragen. Der Slice-Quantisierungsparameter wird mit dem gewählten Multiplikator (mit der Bezeichnung mscale) multipliziert und das Produkt wird auf die nächste ganze Zahl gerundet und auf 5 Bit begrenzt. Die resultierende Zahl wird zu dem Quantisierungsparameter für diesen Makroblock.
  • Ein Rahmen des codierten Blockmusters (zur Signalisierung, welcher der Subblöcke in einem Makroblock codierte Daten enthält) wird nur bei B-Bildern verwendet.
  • Nachdem die Wechselstromkoeffizienten quantisiert wurden, werden sie für die Übertragung codiert. Eine Scanning-Matrix ("scan") definiert die Reihenfolge, in der sie zur Codierung verarbeitet werden. Es werden zwei feste Scans definiert: einer zur Verwendung im Einzelbildcodierungsmodus und der andere zur Verwendung im Teilbildcodierungsmodus. Diese Scans ändern sich bei diesem Beispiel der Erfindung nicht mit dem Bildtyp. Siehe 1b und 1c.
  • Lauflängen- und Ebenenkombinationen werden für von Null verschiedene quantisierte Wechselstromkoeffizienten VL-codiert. Für jeden Makroblock in I- und P-Bildern darf der Codierer aus einer kleinen Anzahl von Codebüchern ein Codebuch auswählen. In diesem Beispiel der Erfindung werden vier Codebücher für I-Bilder und vier für P-Bilder verwendet. Diese acht Codebücher werden im Prinzip durch Permutieren einer Menge von Codewörtern abgeleitet. Unter anderem unterscheiden sie sich durch die Länge des Codeworts für Blockende (EOB) (2, 3 oder 4 Bit). Die Längen der Codewörter der oberen linken Ecke jedes Codebuchs sind in 1d1k gezeigt.
  • Für einen bestimmten Makroblock in einem I- oder P-Bild wird das Codebuch ausgewählt, das den kleinsten Bitzählwert ergibt, und dem Decodierer mit einer 2-Bit-Kennung signalisiert. Bei B-Bildern hat sich dieses Oberhead für die Codebuchauswahl als zu groß erwiesen; deshalb wird für alle Makroblöcke in B-Bildern ein festes Codebuch verwendet. Dieses Codebuch ist eines der vier bei P-Bildern verwendeten und ist das in 1h gezeigte.
  • In 1 werden die quantisierten Transformationskoeffizienten in einer vorbestimmten Reihenfolge durch eine Scan-Selektorschaltung 23 gescannt, und zu einem Codierer und Multiplexer 24 gesendet, der zwischen einer Codierung mit fester Wortlänge der Transformations koeffizienten oder einer oder mehreren Variable-Wortlänge-Codierung der Transformationskoeffizienten wählen kann. Der Scan-Analysierer 23 reagiert auf das von dem Selektor 14 auf der Leitung 15 erzeugte Codierungstypsignal. Der Scan-Selektor 23 bestimmt eine mehrerer möglichen Scanning-Reihenfolgen die zum Lenken der Transformationskoeffizienten zu dem Codierer und Multiplexer 24 verwendet werden können. Die Reihenfolge, die der Scanning-Selektor 23 wählt, basiert darauf, welche Reihenfolge am zweckmäßigsten von dem Codierer und Multiplexer 24 verwendet werden kann, um die Transformationskoeffizienten mit der geringsten Anzahl von Bit am effizientesten zu codieren. Wenn zum Beispiel Einzelbildcodierung verwendet wurde, kann der Scan-Selektor 23 so konfiguriert werden, daß er ein Zickzack-Scanning der Transformationskoeffizienten in dem Quantisierer 19 durchführt. Wenn Teilbildcodierung gewählt wurde, kann der Scan-Selektor 23 ein vertikales Scannen der quantisierten Transformationskoeffizienten in dem Quantisierer 19 durchführen. Eine der Strategien, die beim Scannen der quantisierten Transformationskoeffizienten verwendet werden können, ist eine Strategie, die gleichwertige Koeffizienten zur sequenziellen Übertragung zu dem Codierer und Multiplexer 24 miteinander gruppiert. Beispiele für Scanning-Sequenzen für Einzelbildblock-Scans und Teilbildblock-Scans sind in 1a bzw. 1b dargestellt. Wenn gleichwertige Koeffizienten miteinander gruppiert werden, kann der Codierer 24 eine effizientere Codierung verwenden, wie zum Beispiel Codierung mit variabler Wortlänge. Mit längeren Wortlängen können höherwertige Koeffizienten repräsentiert werden, während mit kürzeren Wortlängen Koeffizienten repräsentiert werden können, die einen Wert von Null oder in der Nähe von Null aufweisen. Ein Code für Blockende (EOB) kann zum Senden mehrerer gleichwertiger Koeffizienten verwendet werden.
  • Wie später ausführlicher beschrieben wird, enthält die Schaltung von 1 einen Analysierer 23a für die Auswahl der variablen Wortlänge, der auf die von dem Scan-Selektor 23 ausgegebenen DCT-Koeffizienten und das Bildtypsignal aus der Leitung 32 reagiert. Der Analysierer 23a erzeugt ein Tabellenauswahlsignal für variable Wortlänge, das in den Codierer und Multiplexer 24 ausgegeben wird und das von dem Codierer und Multiplexer 24 zur Auswahl einer von mehreren Codetabellen verwendet wird, mit der verschiedene Arten von Codierung mit fester Wortlänge und variabler Wortlänge der DCT-Koeffizienten durchgeführt werden können.
  • Zusätzlich zu der Übertragung codierter Transformationskoeffizienten empfängt und sendet der Codierer und Multiplexer 24 zusammen mit den codierten Koeffizienten eine Anzahl von Steuersignalen, die von einem Decodierer in einem Videosignalempfänger zur Erzeugung eines Videobildes aus den durch den Codierer von 1 erzeugten codierten Signalen verwendet werden. Diese Steuersignale umfassen ein Signal, das mit dem auf der Leitung 30 zwischen dem Quantisierer 19 und dem Codierer und Multiplexer 24 erzeugten Quantisierungsparameter zusammenhängt. Diese Steuersignale umfassen außerdem ein Bildtypsignal auf der Leitung 32, das durch einen in 1 nicht gezeigten unabhängig ablaufenden Sequencer erzeugt werden kann. 1a zeigt ein Beispiel für eine Sequenz von I-, P- und B-Bildern, die verwendet werden können. Das Bildtypsignal auf der Leitung 32 repräsentiert, welche Art von Bild der Codierer von 1 erzeugt, nämlich entweder ein I-, ein P- oder ein B-Bild bei diesem Beispiel der Erfindung.
  • Die von dem Codierer 24 erzeugten Wörter werden zu einem Puffer 25 gesendet, der dann zu entsprechenden Zeitpunkten diese Wörter in einen Ausgangsbitstrom auf einer Codiererausgangsleitung 26 lenkt. Auf der Leitung 27 wird ein Völlesignal erzeugt, das zu einem Eingang des Quantisierers 19 gelenkt wird und dadurch seine Funktionsweise steuert, um zu verhindern, daß der Puffer 25 über- oder unterläuft.
  • Es wird nun die Erzeugung einer Schätzung des digitalen Videoeingangssignals beschrieben. Die Transformationskoeffizienten an dem Ausgang des Scan-Selektors 23 werden mit dem Eingang eines Invers-Scan-Selektors 28 verbunden, der die Transformationskoeffizienten wieder zu der Reihenfolge umordnet, in der sie im Quantisierer 19 vorlagen, bevor sie durch den Scan-Selektor 23 gescannt wurden. Wie in 1 gezeigt, reagiert der Invers-Scan-Selektor 28 außerdem auf das Codierungstypsignal auf der Leitung 15, das dem Invers-Scan-Selektor 28 die vorbestimmte Reihenfolge mitteilt, in die die quantisierten Transformationskoeffizienten durch den Scan-Selektor 23 gebracht wurden, und der dadurch der Mechanismus ist, durch den der Invers-Scan-Selektor 28 die korrekte Invers-Scanning-Sequenz verwenden kann. Die durch den Invers-Scan-Selektor 28 umgeordneten Transformationskoeffizienten werden zu einem Sichtbarkeitsmatrixselektor und Dequantisierer 29 geleitet, der an den Transformationskoeffizienten eine Invers-Quantisierungsprozedur ausführt, die im Prinzip die Operation des Quantisierers 19 umkehrt. Wie in 1 gezeigt, reagiert der Dequantisierer 29 auf das Codierungstypsignal auf der Leitung 15 und dem durch den Quantisierer 19 erzeugten Quantisierungsparameter, um die korrekte Dequantisierungsprozedur zu bestimmen.
  • Die Ausgabe des Dequantisierers 29 wird zu dem Eingang einer Schaltung 34 für inverse diskrete Kosinustransformation geleitet, die ein Ausgangssignal erzeugt, das dem auf der Leitung 13 erzeugten Schätzungsfehlersignal entspricht. Das Ausgangssignal der Schaltung 34 für inverse diskrete Kosinustransformation wird zu dem nichtinvertierenden Eingang eines Summierelements 36 geleitet, das an seinem invertierenden Eingang ein Signal auf der Leitung 38 empfängt, das mit einer Schätzung des Videoeingangssignals auf der Leitung 10 zusammenhängt. Die Ausgabe des Summierelements 36 wird zu einem Speicher 36a für das nächste vorherige Bild gelenkt (über ein Schreibe-nächstes-Schaltelement 36b zwischen dem Ausgang des Summierelements 36 und dem Eingang des Speichers 36a für das nächste Bild). Die Ausgabe des Summierelements 36 repräsentiert ein Einzelbild von Videodaten, das durch den Codierer von 1 codiert wurde. Das Schreiben eines Bildes in den Speicher 36a für das nächste Bild bewirkt, daß ein zuvor in dem Speicher 36a für das nächste Bild gespeichertes Bild über Schließung eines Schreibe-vorheriges-Schaltelements 36d in einen Speicher 36c für das vorherige Bild geschrieben wird.
  • Eine Bewegungsschätzschaltung 37 empfängt das digitale Videoeingangssignal aus der Leitung 10, mit den Inhalten der Speicher 36a und 36c zusammenhängende Signale und das Bildtypsignal aus der Leitung 32. Die Bewegungsschätzschaltung 37 erzeugt Signale, die mit Bewegungsvektoren zusammenhängen, die von einer Schätzungsschaltung 38 verwendet werden, die eine Schätzung oder Prädiktion des Videoeingangssignals auf der Leitung 10 erzeugt. Eine Schätzungsschaltung 38 reagiert auf die Inhalte der Speicher 36a und 36c und die durch die Bewegungsschätzungsschaltung 37 erzeugten Bewegungsvektoren, um eine bewegungskompensierte Schätzung des Videoeingangssignals auf der Leitung 10 zu erzeugen.
  • Die von der Schätzungsschaltung 38 bei diesem Beispiel der Erfindung erzeugte bewegungskompensierte Schätzung, an der die zuvor beschriebene Makroblockstruktur von Videosignalen beteiligt ist, berücksichtigt den Umstand, daß ein Makroblock zwei verschachtelte Teilbilder von Luminanzpixeln enthält. Folglich verwendet die Schätzungsschaltung 38 zwei Hauptkategorien von Bewegungskompensation, nämlich einen Einzelbildbewegungskompensationsmodus und einen Teilbildkompensationsmodus. Bei dem Einzelbildbewegungskompensationsmodus werden Bildelemente eines gesamten Einzelbildes makroblockweise aus Bildelementen in Referenzeinzelbildern vorhergesagt. Im Teilbildkompensationsmodus werden die Bildelemente eines Teilbildes nur aus Pixeln oder Referenzteilbildern vorhergesagt, die einem Teilbild entsprechen. Zum Beispiel werden Pixel in einem Teilbild ungeradzahliger Abtastzeilen nur aus Pixeln in einem Referenzteilbild ungeradzahliger Abtastzeilen vorhergesagt.
  • Zusätzlich zu der Verwendung verschiedener Bewegungskompensationsbetriebsarten auf der Basis der Vorhersage von Einzelbildern oder Teilbildern von Bildelementen, kann es andere Arten der Kompensation geben, die auf dem behandelten Bildtyp basieren. Bei diesem Beispiel der Erfindung können die Kompensationsbetriebsarten auch darauf basieren, ob P-Bilder oder B-Bilder vorhergesagt werden. (Für I-Bilder wird keine Vorhersage durchgeführt). Es werden nun Beispiele für Bewegungskompensationstypen zusammengefaßt.
  • A. Bewegungskompensationsbetriebsarten für P-Bilder
    • 1. 16 × 16-Einzelbildbewegungskompensationsmodus (Typ 1): In diesem Modus wird der 16 × 16-Luminanzblock durch einen anderen 16 × 16-Block aus einem Referenzeinzelbild kompensiert, das unter Verwendung eines Vorwärtsbewegungsvektors abgerufen wird. Es wird nicht zwischen den Bildelementabtastzeilen der verschachtelten Teilbilder unterschieden. Der Prädiktionsblock enthält Bitelemente beider Teilbilder des Referenzeinzelbildes.
    • 2. 16 × 8-Einzelbildbewegungskompensationsmodus (Typ 2): In diesem Modus wird der 16 × 16-Luminanzblock durch eine horizontale Abgrenzungslinie in einen oberen 16 × 8-Subblock und einen unteren 16 × 8-Subblock aufgeteilt. Jeder Subblock wird unabhängig unter Verwendung eines Vorwärtsbewegungsvektors kompensiert. Wieder wird nicht zwischen Abtastzeilen der beiden verschachtelten Teilbilder, aus denen die Luminanzsubblöcke bestehen, unterschieden. Für jeden Makroblock werden in diesem Modus zwei Bewegungsvektoren erzeugt und übertragen.
    • 3. 16 × 8-Teilbildbewegungskompensationsmodus (Typ 3): In diesem Modus wird der 16 × 16-Luminanzblock nach Teilbildpolarität, nämlich nach ungeradzahligen und geradzahligen Abtastzeilen, in zwei 16 × 8-Subblöcke aufgeteilt. Jeder der 16 × 8-Subblöcke enthält nur Bildelementzeilen eines der verschachtelten Teilbilder in dem ursprünglichen 16 × 16-Luminanzblock. Jeder Teilbildsubblock wird unabhängig unter Verwendung eines separaten Vorwärtsbewegungsvektors mit einem 16 × 8-Subblock kompensiert, der aus Bildelementabtastzeilen eines Teilbildes derselben Polarität in dem Referenzeinzelbild abgeleitet wird. Es werden für jeden Makroblock in diesem Modus zwei Bewegungsvektoren erzeugt und übertragen.
  • B. Bewegungskompensationsbetriebsarten für B-Bilder
    • 1. Bidirektionaler (P und N) 16 × 16-Einzelbildbewegungskompensationsmodus (Typ 3): Ein Vorwärtsbewegungsvektor (von einem vorherigen [P]-Rahmen) ruft einen 16 × 16-Block von einem vergangenen Referenzeinzelbild ab und ein Rückwärtsbewegungsvektor (aus einem neuen [N]-Einzelbild) ruft einen 16 × 16-Block von einem zukünftigen Referenzeinzelbild ab. Die 16 × 16-Blöcke werden gemittelt, um einen Endprädiktionsblock zu ergeben.
    • 2. Unidirektionaler (P) 16 × 16-Vorwärtseinzelbildbewegungskompensationsmodus (Typ 1): Dies ist ein unidirektionaler Vorwärtsprädiktionsmodus, bei dem für jeden Makroblock nur ein Vorwärtsbewegungsvektor verwendet wird.
    • 3. Unidirektionaler (N) 16 × 16-Rückwärtseinzelbildbewegungskompensationsmodus (Typ 2): Dies ist ein unidirektionaler Rückwärtsprädiktionsmodus, bei dem für jeden Makroblock nur ein Rückwärtsbewegungsvektor verwendet wird.
    • 4. 16 × 8-Einzelbildbewegungskompensationsmodus (Typ 4); oben-vorwärts (P1) mit unten-rückwärts (N2): In diesem Modus wird der 16 × 16-Luminanzblock durch eine horizontale Abgrenzungslinie in einen oberen 16 × 8-Subblock und einen unteren 16 × 8-Subblock aufgeteilt. Der obere Subblock wird mit einem Vorwärtsbewegungsvektor kompensiert, der einen 16 × 8-Block aus einem vergangenen Referenzeinzelbild abruft. Der untere Subblock wird mit einem Rückwärtsbewegungsvektor kompensiert, der einen 16 × 8-Block von einem zukünftigen Referenzeinzelbild abruft. Für jeden Makroblock werden in diesem Modus zwei Bewegungsvektoren erzeugt und übertragen.
    • 5. 16 × 8-Einzelbildbewegungskompensationsmodus (Typ 5); oben-rückwärts (N1) mit unten-vorwärts (P2): Dieser Modus ist dem oben beschriebenen Modus B.4. ähnlich. Der obere Subblock wird mit einem Rückwärtsbewegungsvektor kompensiert und der untere Subblock mit einem Vorwärtsbewegungsvektor.
    • 6. 16 × 8-Teilbildbewegungskompensationsmodus (Typ 6); ungerade-vorwärts (P1) mit gerade-rückwärts (N2): In diesem Modus wird der 16 × 16-Luminanzblock nach Teilbildpolarität in zwei 16 × 8-Teilbildsubblöcke aufgetrennt. Einer der Teilbildsubblöcke enthält die ungeradzahligen Bildelementabtastzeilen, und der andere Teilbildsubblock enthält die geradzahligen Bildelementabtastzeilen. Der die ungeradzahligen Teilbildzeilen enthaltende 16 × 8-Teilbildsubblock wird mit einem Vorwärtsbewegungsvektor und einem weiteren, nur aus den ungeradzahligen Abtastzeilen eines vergangenen Referenzeinzelbildes abgeleiteten 16 × 8-Subblocks kompensiert. Ähnlich wird der die geradzahligen Teilbildabtastzeilen enthaltende 16 × 8-Teilbildsubblock mit einem Rückwärtsbewegungsvektor und einem nur aus den geradzahligen Teilbildzeilen eines zukünftigen Referenzeinzelbildes abgeleiteten 16 × 8-Subblock kompensiert. Pro Makroblock werden in diesem Modus zwei Bewegungsvektoren erzeugt und übertragen.
    • 7. 16 × 8-teilbildbewegungskompensierter Modus (Typ 7); ungerade-rückwärts (N1) mit gerade-vorwärts (P2): Dieser Modus ist dem oben beschriebenen Modus B.6. ähnlich, wobei der die ungeradzahligen Teilbildzeilen enthaltende 16 × 8-Subblock mit einem Rückwärtsbewegungsvektor und einem Subblock aus einem zukünftigen Referenzeinzelbild kompensiert wird und der die geradzahligen Teilbildzeilen enthaltende 16 × 8-Block mit einem Vorwärtsbewegungsvektor und einem Subblock aus einem vergangenen Referenzeinzelbild kompensiert wird. Pro Makroblock werden in diesem Modus zwei Bewegungsvektoren erzeugt und übertragen.
  • Die Bewegungsschätzungsschaltung 37 kann also Bewegungsvektoren erzeugen, die zur Bewirkung vielfältiger Bewegungskompensationsbetriebsarten notwendig sind. Diese Bewegungsvektoren werden über eine Leitung 39 zu der Schätzungsschaltung 38 übertragen und werden von der Schätzungsschaltung zur Durchführung bei einer adaptiven bewegungskompensierten Prädiktion des Videoeingangssignals auf der Leitung 10 verwendet.
  • Die Schätzungsschaltung besteht aus zwei Hauptteilen, einem blockadaptiven Einzelbild-/Teilbild-uni-/bidirektional bewegungskompensierten Prädiktionsanalysierer 38a und einem blockadaptiven Einzelbild-/Teilbild-uni-/bidirektional bewegungskompensierten Prädiktionsselektor 38b. Der Prädiktionsanalysierer 38a reagiert auf die durch die Bewegungsschätzungsschaltung 37 erzeugten Bewegungsvektoren, das Bildtypsignal aus der Leitung 32 und den Inhalt des Speichers 36a für das nächste Bild und des Speichers 36c für das vorherige Bild. Der Prädiktionsanalysierer 38a erzeugt auf der Leitung 38c ein Bewegungskompensationstypsignal, das identifiziert, welche der Bewegungskompensationsbetriebsarten, wie zum Beispiel der hier beschriebenen Kompensationsbetriebsarten, zur Erzeugung einer Schätzung des Videoeingangssignals auf der Leitung 10 benutzt wird. Der Prädiktionsselektor 38b nimmt entsprechende der durch die Bewegungsschätzschaltung 37 berechneten Bewegungsvektoren und das Bewegungskompensationstypsignal auf der Leitung 38c und berechnet eine Schätzung des Videoeingangssignals auf der Leitung 10. Die Schätzung wird im Hinblick auf entsprechende der in den Speichern 36a und 36c gespeicherten Einzelbilder erzeugt.
  • Jede Bewegungsvektorkomponente wird differenziell mit Bezug auf eine zuvor übertragene Komponente codiert. Die von der Bewegungsschätzungsschaltung 37 erzeugten Bewegungsvektoren werden auch auf einer Leitung 40 zu einer Bewegungsvektorprädiktionsschaltung 41 und auch zu dem Summierelement 42 übertragen. Außerdem empfängt die Bewegungsvektorprädiktionsschaltung 41 das Bildtypsignal auf der Leitung 32 und das Bewegungskompensationstypsignal auf der Leitung 38c, wodurch die von der Schätzungsschaltung 38 verwendete Bewegungskompensationsbetriebsart identifiziert wird. Die Schaltung 41 erzeugt ein Ausgangssignal für den invertierenden Eingang des Summierelements 42, das mit einem vorhergesagten Wert des durch die Bewegungsschätzungsschaltung 37 erzeugten Bewegungsvektors zusammenhängt. Das Summierelement 42 subtrahiert die Bewegungsvektorschätzung von dem Bewegungsvektorsignal auf der Leitung 40 und erzeugt ein Differenzbewegungsvektorsignal, das zu dem Eingang des Codierers und Multiplexers 24 geleitet wird. Der Codierer und Multiplexer 24 sendet ein Differenzbewegungsvektorsignal zur Einfügung in den Ausgangsbitstrom auf der Leitung 26 zu dem Puffer 25. Ein Decodierer rekonstruiert mit dem Differenzbewegungsvektorsignal ein Videobild gemäß dem Videoeingangssignal auf der Leitung 10.
  • Der Decodierer und Multiplexer 24 empfängt außerdem ein Blockklassifizierungssignal auf der Leitung 43, das als Reaktion auf das zuvor beschriebene Bildtypsignal, das Codierungstypsignal und das Bewegungskompensationstypsignal von einer Blocktypklassifizierungsschaltung 44 erzeugt wird.
  • Die Blocktypklassifizierungsschaltung 44 empfängt außerdem ein Inter-/Intra-Typsignal auf der Leitung 44a, das identifiziert, ob für den klassifizierten Videoblock Intercodierung oder Intracodierung verwendet wird. Das Inter-/Intra-Typsignal wird von einer Inter-/Intra-Analysiererschaltung 44b erzeugt, das das Videoeingangssignal auf der Leitung 10 und das Schätzungsfehlersignal auf der Leitung 13 empfängt. Die Analysiererschaltung 44a bestimmt und vergleicht die in dem Eingangssignal und dem Schätzungssignal vorliegenden Energien und trifft eine Entscheidung darüber, ob Inter- oder Intracodierung verwendet werden soll. Intercodierung, nämlich Codierung des Schätzungsfehlersignals auf der Leitung 13, wird für P- und B-Bilder verwendet, wenn die Energie des Schätzungsfehlersignals kleiner als die Energie des Eingangssignals ist. Manchmal wäre es in P- und B-Bildern, wie zum Beispiel, wenn ein Szenenwechsel vorliegt, vorteilhaft, im Intra-Verfahren zu codieren, nämlich das Eingangsvideosignal auf der Leitung 10 anstelle des Schätzungsfehlers auf der Leitung 17 zu codieren. Dies ist der Fall, wenn die Energie in dem Videoeingangssignal auf der Leitung 10 kleiner als die Energie in dem Schätzungsfehlersignal auf der Leitung 13 ist. Wenn die Analysiererschaltung 44b diesen Zustand erfaßt, zeigt das Inter-/Intratypsignal an, daß Intracodierung verwendet werden soll. Wie in 1 gezeigt, steuert das Inter-Intratypcodierungssignal aus dem Analysierer 44b die Zustände des Schaltelements 13a und des Inter-/Intratypschaltelements 13b. Das Inter-/Intracodierungstypsignal aus dem Analysierer 44b wird außerdem zu dem Eingang des Quantisierers 19 geleitet, um die Quantisierungsoperation abhängig davon, wie die Videodaten codiert werden, zu steuern. Das Inter- /Intracodierungstypsignal ist außerdem Teil des zu dem Codierer und Multiplexer 24 gesendeten Blockklassifizierungssignals.
  • Das Blockklassifizierungssignal auf der Leitung 43 wird durch den Codierer und Multiplexer zur Einfügung in den Ausgangsbitstrom auf der Leitung 26 zu dem Puffer 25 übertragen. Ein Decodierer erzeugt mit dem Blockklassifizierungssignal ein Bild gemäß dem Videoeingangssignal auf der Leitung 10.
  • Alle Makroblöcke in I-Bildern werden intracodiert; in P- und B-Bildern ist auch eine Intracodierung von Makroblöcken erlaubt. Bei intracodierten Makroblöcken (Teilbild- oder Einzelbildmodus) wird Gleichstromkoeffizient jedes Subblocks gleichförmig auf 255 Pegel quantisiert. Dann verwendet man Gleichstromprädiktion zur Verringerung der zur Codierung der Gleichstromkoeffizienten notwendigen Anzahl von Bit. Für Luminanz-Gleichstromprädiktion werden zwei Prädiktoren geführt, um ihre Effizienz beim Umschalten zwischen den Einzelbild- und Teilbildcodierungsbetriebsarten zu vergrößern. Für die Chroma-Gleichstromprädiktion reicht für jede Farbkomponente ein Prädiktor aus. Alle Gleichstromprädiktoren werden am Anfang eines Slice und bei nichtintracodierten Makroblöcken auf Null zurückgesetzt.
  • Ein Signal auf der Leitung 47, das mit den Beträgen von durch die Schaltung 16 für diskrete Kosinustransformation erzeugten intracodierten Gleichstromkoeffizienten zusammenhängt, wird zu dem Eingang einer Intra-Gleichstromkoeffizientenprädiktionsschaltung 45 und dem nichtinvertierenden Eingang eines Summierelements 46 geleitet. Der Schalter 48 in der Leitung 47 repräsentiert symbolisch die Richtung nur der durch die Schaltung 16 für diskrete Kosinustransformation erzeugten Intra-Gleichstromkoeffizienten zu dem Eingang der Schaltung 45 für Intra-Gleichstromkoeffizientenprädiktion und dem Summierelement 46. Die Prädiktionsschaltung 45 empfängt außerdem das von dem Codierungsanalysierer 14 erzeugte Codierungstypsignal. Die Prädiktionsschaltung 45 erzeugt eine Ausgabe, die mit einem vorhergesagten Wert des Intracode-Gleichstromeffizienten zusammenhängt, und leitet dieses Ausgangssignal zu dem invertierenden Eingang des Summierelements 46. Der nichtinvertierende Eingang des Summierelements 46 empfängt den tatsächlichen Intra-Gleichstromkoeffizienten. Das Summierelement 46 subtrahiert die Prädiktion von dem Gleichstromkoeffizienten, um eine Differenz-Gleichstromkoeffizientenprädiktion zu erzeugen, die zu dem Eingang des Codierers und Multiplexers 24 geleitet wird. Der Differenz-Gleichstromkoeffizient wird durch den Codierer und Multiplexer 24 zur Einfügung in den Bitstrom auf der Ausgangsleitung 26 zu dem Puffer 25 gelenkt. Ein Decodierer konstruiert mit dem Differenz-Gleichstromkoeffizienten ein Bild gemäß dem Videoeingangssignal 10.
  • 2 zeigt einen adaptiven bewegungskompensierten uni-/bidirektional prädiktiven/interpolativen Decodierer, mit dem der von einem Codierer, wie zum Beispiel dem in 1 gezeigten, erzeugte Ausgangsbitstrom decodiert werden kann. Der Decodierer von 2 empfängt auf einer Eingangsleitung 50 einen Eingangsbitstrom. Der Eingangsbitstrom auf der Leitung 50 wird in einem Puffer 52 abgelegt und dann zu einem Decodierer und Demultiplexer 54 mit variabler Wortlänge gesendet, der eine Decodier- und Demultiplexoperation durchführt, die die Umkehrung des von dem in 1 gezeigten Codierer und Multiplexer 24 erzeugten Codierens und Multiplexens ist. Der Decodierer und Demultiplexer 54 erzeugt auf einer Ausgangsleitung 56 die quantisierten diskreten Kosinustransformationskoeffizienten von 1. Ein Invers-Scan-Selektor 64 ordnet die Reihenfolge der auf der Eingangsleitung 56 erscheinenden Koeffizienten zu derselben Reihenfolge um, die diese Koeffizienten in dem Quantisierer 19 von 1 hatten. Der Invers-Scan-Selektor 64 leitet die von ihm empfangenen Koeffizienten in umgekehrter Reihenfolge zu einem Sichtbarkeitsmatrixselektor und Dequantisierer 66. Die Dequantisiererschaltung 66 reagiert auf ein Codierungstypsignal auf der Leitung 68, ein Bildtypsignal auf der Leitung 70 und den Quantisierungsparameter auf der Leitung 68a, der durch die Decodierer- und Demultiplexerschaltung 54 aus dem Bitstromeingang des Decodierers von 2 abgerufen wird, um eine Dequantisierung durchzuführen, die die Umkehrung der von dem Quantisierer 19 in 1 durchgeführten Quantisierung ist.
  • Die Intra-Gleichstromtransformationskoeffizienten für I-Bilder und intracodierte Teile von P- und B-Bildern werden am Ausgang eines Summierelements 58 erzeugt, das den durch den Decodierer und Demultiplexer 54 decodierten und demultiplexten Differenz-Gleichstromkoeffizienten empfängt. Das Summierelement 58 empfängt außerdem ein Intra-Gleichstromkoeffizientenprädiktionssignal aus einer Prädiktionsschaltung 60, die außerdem auf Intra-Gleichstromkoeffizientensignale auf der Leitung 57 und ein Codierungstypsignal auf der Leitung 68 reagiert. Der Zustand eines Schaltelements 66a wird gesteuert, um eine Eingangsleitung einer Schaltung 72 für inverse diskrete Kosinustransformation zwischen dem DCT-Koeffizientensignal am Ausgang des Dequantisierers 66 und dem Intra-Gleichstromkoeffizientensignal auf der Leitung 57 umzuschalten. Die dequantisierten Transformationskoeffizienten und die Intra-Gleichstromkoeffizienten werden durch ein Schaltelement 66a hindurch zu einer Schaltung 72 für inversen diskreten Kosinustransfer geleitet, die eine Transformationsoperation ausführt, die die Umkehrung der durch die Schaltung 16 für diskrete Kosinustransformation in 1 durchgeführten Transformationsoperation ist. Die Ausgabe der Schaltung 72 für inverse diskrete Kosinustransformation in 2 ist eine decodierte Version entweder des Videosignals auf der Eingangsleitung 10 im Fall von I-Bildern und intracodierten Teilen von P- und B-Bildern oder eine decodierte Version des Schätzungsfehlersignals auf der Leitung 13 in 1. Das Ausgangssignal der Transformationsschaltung 72 wird zu dem Eingang einer Blockformatierungsschaltung 72a geleitet, die eine Entformatierungsoperation durchführt, die die Umkehrung der durch den Block 15a in 1 durchgeführten Formatierungsoperation ist. Die Ausgabe der Entformatierungsschaltung 72a wird zu einem Eingang eines Summierelements 74 geleitet. Ein anderer Eingang des Summierelements 74 empfängt ein Schätzungssignal auf der Leitung 76. Die Ausgabe des Summierelements 74 hängt mit der Differenz zwischen dem Schätzungsfehlersignal aus dem Entformatierer 72a und dem Schätzungssignal auf der Leitung 76 zusammen und umfaßt eine Videoausgabe auf der Leitung 78, die dem Videoeingangssignal auf der Leitung 10 in 1 analog ist.
  • Der Decodierer und Demultiplexer 54 in 2 lenkt das aus dem Codierer von 1 empfangene Blockklassifizierungssignal über eine Eingangsleitung 82 zu einer Blocktypentklassifizierungsschaltung 80. Die Blocktypentklassifizierungsschaltung 80 produziert auf der Leitung 68 ein Codierungstypsignal, auf der Leitung 70 ein Bildtypsignal, auf der Leitung 88 ein Bewegungskompensationstypsignal und auf der Leitung 88a ein Inter-/Intratypsignal, entsprechend den durch den Codierer von 1 erzeugten Codierungstyp-, Bildtyp-, Bewegungskompensationstyp- und Inter-/Intratypsignalen.
  • Der Decodierer und Demultiplexer 54 ruft außerdem das Differenzbewegungsvektorsignal aus dem durch den Codierer von 1 gesendeten Bitstrom ab und lenkt das Differenzbewegungsvektorsignal auf einer Leitung 90 zu dem Eingang eines Summierelements 92. Eine weitere Eingabe für das Summierelement 92 wird entlang der Leitung 96 aus einer Bewegungsvektorprädiktionsschaltung 94 empfangen. Die Bewegungsvektorprädiktionsschaltung 94 reagiert auf ein Bewegungskompensationstypsignal auf der Leitung 88, ein Bildtypsignal auf der Leitung 70 und gewählte Bewegungsvektoren auf der Leitung 98a, um eine Prädiktion der Bewegungsvektoren zu erzeugen, die zu einem der Eingänge des Summierelements 92 geleitet wird.
  • Die Ausgabe des Summierelements 92 ist ein Bewegungsvektorsignal auf der Leitung 98, das den Bewegungsvektorsignalen entspricht, die von dem Bewegungsschätzer 37 erzeugt und bei der durch die Schaltung von 1 durchgeführten Codierung verwendet werden. Die Bewegungsvektorsignale werden auf einer Eingangsleitung 102 zu einer Schätzungsschaltung 100 geleitet. Durch selektives Öffnen und Schließen eines in 2 gezeigten Schaltelements 100b reagiert ein Speicher 100a für das nächste Bild auf die Videoausgangssignale auf der Leitung 78, um gewählte Einzelbilder des Videoausgangssignals zu speichern. Das Schreiben eines neuen Einzelbildes von Informationen in den Speicher 100a bewirkt, daß ein vorheriges Einzelbild in dem Speicher 100a über Schließung eines Schaltelements 100d in den Speicher 110c für das vorherige Bild geschrieben wird. Die Schätzungsschaltung 100 reagiert auf den Inhalt der Speicher 100a und 100c, die Bewegungsvektoren auf der Leitung 102, das Bewegungskompensationstypsignal auf der Leitung 88 und ein Bildtypsignal auf der Leitung 70, um eine Schätzung auf der Leitung 76 des Videoausgangssignals auf der Leitung 78 auf analoge Weise wie die durch die Schätzungsschaltung 38 in 1 erzeugte Schätzung zu erzeugen. Wie in 1 wirkt das Schaltelement 100e in Reihe mit der Leitung 76 zum Trennen des Schätzungssignals von dem Eingang des Summierelements 74, wenn I-Bilder decodiert werden oder wenn intracodierte Teile von P- und B-Bildern vorkommen.
  • 3 zeigt ein Blockschaltbild eines blockadaptiven bewegungskompensierten Prädiktors 106. Auf der Leitung 108 wird ein decodiertes Bild empfangen. Die Schaltung von 3 erzeugt Vorhersagen von P-Bildern gemäß den oben für P-Bilder identifizierten Bewegungskompensationsbetriebsarten. Das decodierte Bild kann entweder von dem Ausgang des Summierelements 36 in 1 oder dem Ausgang des Summierelements 74 in 2 empfangen werden. Das decodierte Bild auf der Leitung 108 wird in dem Speicher 36c oder 100c für das vorherige Bild empfangen. Das decodierte Bild aus dem Speicher für das vorherige Bild wird zu dem Eingang eines Schaltelements 110 gesendet, das das decodierte Bild selektiv gemäß dem Bewegungskompensationstypsignal zu einer von drei Ausgangsleitungen leitet. Wenn der Bewegungskompensationstyp der Typ A.1. ist, wird das decodierte Bild zu einem Einzelbildmakroblockbewegungskompensationsprädiktor 112 gesendet, der auf der Ausgangsleitung 114 des Prädiktors 106 ein bewegungskompensiertes Prädiktionssignal erzeugt. Wenn der Bewegungskompensationstyp der Typ A.2. ist, wird das decodierte Bild zu dem Eingang eines Submakroblockschaltelements 116 gesendet. Das Schaltelement 116 lenkt entsprechende Teile des decodierten Bildes selektiv zu einer von zwei einzelbildsubmakroblockbewegungskompensierten Prädiktionsschaltungen 118 und 120. Der Einzelbildsubmakroblock der oberen Hälfte wird zu den Prädiktionsschaltungen 118 geleitet und der Einzelbildsubmakroblock der unteren Hälfte zu der Prädiktionsschaltung 120. Die von den Schaltungen 118 und 120 erzeugten Prädiktionen werden zu zwei Eingängen 122 und 124 eines Einzelbildsubmakroblock-zu-Makroblock-Formatierers 126 gesendet, der die resultierende formatierte Prädiktion dann zu der Ausgangsleitung 114 der Prädiktionsschaltung 106 leitet.
  • Wenn der Bewegungskompensationstyp der Typ A.3. ist, wird das decodierte Bild durch das Schaltelement 110 zu dem Eingang eines Submakroblockschaltelements 128 gesendet, das den oberen Teilbildsubmakroblockteil des decodierten Bildes selektiv zu einer von zwei teilbildsubmakroblockbewegungskompensierten Prädiktionsschaltungen 130 und 132 und den unteren Teilbildsubmakroblockteil des decodierten Bilds zu der anderen der beiden Prädiktionsschaltungen 130 und 132 sendet. Die von den Prädiktionsschaltungen 130 und 132 erzeugten Prädiktionssignale werden auf den Leitungen 134 und 136 zu den Eingängen einer Teilbildsubmakroblöcke-zu-Makroblock-Formatierungsschaltung 138 geleitet, die dann die formatierten Prädiktionen auf der Ausgangsleitung 114 der Prädiktionsschaltung 106 ausgibt. Die Prädiktorschaltungen reagieren auf eines oder zwei Bewegungsvektorsignale (MV1 oder MV1 und MV2), wie oben beschrieben und in 3 gezeigt.
  • 4 ist ein Blockschaltbild eines blockadaptiven bewegungskompensierten bidirektionalen Prädiktors 140. Die Schaltung von 4 erzeugt Prädiktionen von B-Bildern gemäß den oben für B-Bilder identifizierten Bewegungskompensationsbetriebsarten. Auf der Leitung 142 wird ein decodiertes vorheriges Bild von einem der Ausgänge des Summierelements 36 in 1 oder des Summierelements 74 in 2 empfangen. Das decodierte vorherige Bild wird zu dem Speicher 36c oder 100c für das vorherige Bild von 1 bzw. 2 gesendet. Auf einer Eingangsleitung 146 wird von dem Ausgang entweder des Summierelements 36 in 1 oder des Summierelements 74 in 2 ein decodiertes nächstes Bild empfangen. Das decodierte nächste Bild wird zu dem Speicher 36a oder 100a für das nächste Bild von 1 bzw. 2 geleitet. Das decodierte vorherige Bild in dem Speicher für das vorherige Bild wird selektiv durch ein Schaltelement 150 auf der Eingangsleitung 149 abhängig von dem Bewegungskompensationstypsignal in 1 und 2 zu einem von sechs Ausgangsleitungen geleitet. Das decodierte nächste Bild in dem Speicher für das nächste Bild wird selektiv durch das Schaltelement 150 auf der Eingangleitung 152 wieder abhängig von dem Wert des Bewegungskompensationstypsignals in 1 und 2 zu einer einer zweiten Menge von sechs Ausgangsleitungen geleitet.
  • Wenn der Bewegungskompensationstyp der Typ B.1. ist, wird das decodierte vorherige Bild in dem Speicher für das vorherige Bild auf einer Ausgangsleitung 154 zu dem Eingang einer Einzelbildmakroblockbewegungskompensationsprädiktionsschaltung 156 geleitet, die dann auf einer Leitung 158 und auf einer Ausgangsleitung 160 der Prädiktionsschaltung 140 eine einzelbildmakroblockbewegungskompensierte Prädiktion ausgibt. Die Bewegungskompensation des Typs B.1. ist für das decodierte nächste Bild in dem Speicher 146 für das nächste Bild undefiniert, so daß die decodierten nächsten Bilder nicht an der Prädiktionsoperation beteiligt sind und das auf der Ausgangsleitung 160 erzeugte Prädiktionssignal in Situationen des Typs B.1. nicht beeinflussen.
  • Wenn der Bewegungskompensationstyp der Typ B.2. ist, wird das decodierte nächste Bild in dem Speicher für das nächste Bild zu einer Ausgangsleitung 156 des Schaltelements 150 in Richtung des Eingangs einer einzelbildmakroblockbewegungskompensierten Prädiktionsschaltung 162 geleitet, die auf einer Ausgangsleitung 164 und einer Ausgangsleitung 160 der Prädiktions schaltung 140 eine einzelbildmakroblockbewegungskompensierte Prädiktion ausgibt. Die Bewegungskompensation des Typs B.2. ist für decodierte vorherige Bilder in dem Speicher für vorherige Bilder undefiniert, so daß die decodierten vorherigen Bilder nicht an der Prädiktionsoperation beteiligt sind und das auf der Ausgangsleitung 160 erzeugte Prädiktionssignal in Situationen des Typs B.2. nicht beeinflussen.
  • Wenn der Bewegungskompensationstyp der Typ B.3. ist, wird das decodierte vorherige Bild in dem Speicher für das vorherige Bild auf der Ausgangsleitung 166 des Schaltelements 150 zu einem Eingang einer einzelbildmakroblock-bidirektionalbewegungskompensierten Prädiktionsschaltung 168 geleitet. Das decodierte nächste Bild in dem Speicher für das nächste Bild wird auf einer Ausgangsleitung 170 des Schaltelements 150 zu einem zweiten Eingang der Prädiktionsschaltung 168 geleitet. Die Prädiktionsschaltung 168 erzeugt auf der Leitung 172 ein Prädiktionssignal, das zu der Ausgangsleitung 160 der Prädiktionsschaltung 140 geleitet wird.
  • Wenn der Bewegungskompensationstyp der Typ B.4. ist, wird das in dem Speicher für das vorherige Bild gespeicherte decodierte vorherige Bild zu einer Ausgangsleitung 174 des Schaltelements 150 geleitet, und das in dem Speicher 148 für das nächste Bild gespeicherte decodierte nächste Bild wird zu einer Ausgangsleitung 176 des Schaltelements 150 geleitet. Die Bilder auf den Leitungen 174 und 176 werden zu den Eingängen eines Schaltelements 178 geleitet, das die Bilder selektiv zu den Eingängen von zwei einzelbildsubmakroblockbewegungskompensierten Prädiktionsschaltungen 180 und 182 leitet. Die Ausgangssignale der Prädiktionsschaltungen 180 und 182 werden auf den Leitungen 186 und 188 zu den Eingängen einer Einzelbildsubmakroblöcke-zu-Makroblock-Formatierungs- Schaltung 184 geleitet. Das Ausgangssignal der Formatierungsschaltung 184 wird zu der Ausgangsleitung 160 der Prädiktionsschaltung 140 geleitet.
  • Wenn der Bewegungskompensationstyp der Typ B.5. ist, wird das decodierte vorherige Bild in dem Speicher für das vorherige Bild zu einer Ausgangsleitung 190 des Schaltelements 150 geleitet, und das decodierte nächste Bild in dem Speicher für das nächste Bild wird zu einer Ausgangsleitung 192 des Schaltelements 150 geleitet. Die Bilder auf den Leitungen 190 und 192 werden zu den Eingängen eines Schaltelements 194 geleitet, das die Bilder selektiv zu zwei einzelbildsubmakroblockbewegungskompensierten Prädiktionsschaltungen 196 und 198 leitet. Die Prädiktionssignale auf den Leitungen 200 und 202 aus den Prädiktionsschaltungen 196 und 198 werden in eine Einzelbildsubmakroblöcke-zu-Makroblock-Formatierungsschaltung 204 eingegeben, die formatierte Prädiktionssignale zu der Ausgangsleitung 160 der Prädiktionsschaltung 140 sendet.
  • Wenn der Bewegungskompensationstyp der Typ B.6. ist, wird das decodierte vorherige Bild in dem Speicher für das vorherige Bild zu einer Ausgangsleitung 206 des Schaltelements 150 geleitet, und das decodierte nächste Bild in dem Speicher für das nächste Bild wird zu einer Ausgangsleitung 208 des Schaltelements 150 gesendet. Die Bilder auf den Leitungen 206 und 208 werden zu den Eingängen eines Schaltelements 210 gesendet, das diese Bilder selektiv zu den Eingängen von zwei teilbildsubmakroblockbewegungskompensierten Prädiktionsschaltungen 212 und 214 leitet. Die Prädiktionsschaltungen 212 und 214 senden auf den Leitungen 216 und 218 Prädiktionssignale zu den Eingängen einer Teilbildsubmakroblöcke-zu-Makroblock-Formatierungsschaltung 220. Die Formatierungsschaltung 220 leitet formatierte Prädiktionssignale zu der Ausgangsleitung 160 der Prädiktionsschaltung 140.
  • Wenn der Bewegungskompensationstyp der B.7. ist, wird das decodierte vorherige Bild in dem Speicher für das vorherige Bild zu einer Ausgangsleitung 222 des Schaltelements 150 gesendet, und das decodierte nächste Bild in dem Speicher für das nächste Bild wird zu einer Ausgangsleitung 224 des Schaltelements 150 gesendet. Die Bilder auf den Leitungen 222 und 224 werden zu den Eingängen eines Schaltelements 226 gesendet, das die Bildsignale selektiv zu zwei teilbildsubmakroblockbewegungskompensierten Prädiktionsschaltungen 228 und 230 leitet. Die Prädiktionsschaltungen senden Prädiktionssignale zu einer Teilbildsubmakroblöcke-zu-Makroblöcke-Formatierungsschaltung 232, die die Prädiktionssignale zu der Ausgangsleitung 160 der Prädiktionsschaltung 140 leitet. Wie in 3 gezeigt, reagieren die Prädiktorschaltungen auf eines oder zwei Bewegungsvektorsignale (MV1 oder MV1 und MV2).
  • 5 zeigt ein ausführliches Blockschaltbild des in 1 gezeigten blockadaptiven Einzelbild-/Teilbildcodierungsanalysierers 14. Der Codierungsanalysierer empfängt Makroblöcke auf einer Eingangsleitung 234. Die auf der Eingangsleitung 234 empfangenen Makroblöcke werden zu einem Makroblock-Vertikalkorrelationscomputer 236 geleitet, der den Grad an Korrelation zwischen sukzessiven horizontalen Zeilen jedes Makroblocks bestimmt und auf der Leitung 238 ein Einzelbildkorrelationssignal erzeugt, das zu einer Schwellen- und Komparatorschaltung 240 gesendet wird. Die auf der Eingangsleitung 234 empfangenen Makroblöcke werden außerdem zu einer Makroblock-zu-Einzelbildsubmakroblöcke-Formatierungsschaltung 242 gesendet. Der Formatierer 242 trennt jeden Makroblock in zwei separate Teilbilder auf, von denen eines die geradzahligen horizontalen Zeilen von Bildelementen in jedem Makroblock und das andere die ungeradzahligen horizontalen Zeilen von Bildelementen in jedem Makroblock umfaßt. Die geradzahligen horizontalen Zeilen werden zu einem Submakroblock-Vertikalkorrelationscomputer 244 gesendet, wenn ein Selektorschalter 246 den Ausgang der Formatierungsschaltung 242 mit dem Eingang des Korrelationscomputers 244 verbindet. Der Korrelationscomputer 244 bestimmt den Grad an Korrelation zwischen den zu dem Computer 244 gesendeten geradzahligen horizontalen Zeilen und erzeugt ein Signal an die Submakroblockselektorschaltung 248 das mit dem Korrelationsgrad zusammenhängt. Wenn sich der Schalter 248 in einer entsprechenden Stellung befindet, wird das Signal aus dem Korrelationscomputer 244 in Bezug auf den Korrelationsgrad zu dem Eingang eines Akkumulators 250 gesendet. Die ungeradzahligen horizontalen Zeilen werden zu einem Submakroblock-Vertikalkorrelationscomputer 252 gesendet, wenn der Selektorschalter 246 den Ausgang der Formatierungsschaltung 242 mit dem Eingang des Korrelationscomputers 252 verbindet. Der Korrelationscomputer 252 bestimmt den Grad an Korrelation zwischen den zu dem Computer 252 gesendeten ungeradzahligen horizontalen Zeilen und erzeugt ein zu dem Submakroblockselektorschalter 248 gesendetes Signal, das mit dem Korrelationsgrad zusammenhängt. Wenn der Schalter 248 entsprechend geschaltet ist, wird das Signal aus dem Korrelationscomputer 252 in Bezug auf den Korrelationgsgrad der ungeradzahligen Zeilen zu dem Akkumulator 250 gesendet. Der Akkumulator 250 summiert die Korrelationsgrade der ungeradzahligen und geradzahligen Teilbilder in den Makroblöcken und erzeugt ein Gesamtkorrelationssignal, das den Grad an Korrelation in den Teilbildern angibt. Das Gesamtkorrelationssignal wird in einer Dividiererschaltung 254 durch zwei dividiert und zu der Schwelle in der Komparatorschaltung 240 gesendet. Die Komparatorschaltung 240 vergleicht die Korrelationsgrade des Einzelbildkorrelationssignals aus dem Computer 236 und des Teilbildkorrelationssignals aus dem Dividierer 254 und erzeugt das in 1 und 2 erzeugte Codierungstypsignal. Das Codierungstypsignal gibt an, ob Einzelbilder von Videoinformationen codiert und decodiert oder Teilbilder von Videoinformationen codiert und decodiert werden sollen. Genauer gesagt sind Einzelbilder zu codieren und zu decodieren, wenn der Einzelbildkorrelationsgrad größer als der Teilbildkorrelationsgrad ist. Teilbilder sind zu codieren und zu decodieren, wenn der Teilbildkorrelationsgrad größer als der Einzelbildkorrelationsgrad ist.
  • 6 zeigt den Blockformatierer 15a von 1. Auf einer Eingangsleitung 256 werden Makroblöcke empfangen und zu dem Eingang eines Schaltelements 258 geleitet. Der Zustand des Schaltelements wird durch die Eigenschaften des von der Schaltung von 5 erzeugten Codierungstypsignals bestimmt. Wenn das Codierungstypsignal anzeigt, daß Einzelbildcodierung stattfinden soll, verbindet das Schaltelement 258 die Leitung 256 mit dem Eingang eines Makroblock-zu-Einzelbildblöcke-Formatierers 260, dessen Ausgangssignal zu einem Schaltelement 262 geleitet wird, das den Ausgang des Formatierers 260 mit einer Blockausgangsleitung 264 des Formatierers von 6 verbindet. Wenn das Codierungstypsignal anzeigt, daß Teilbildcodierung stattfinden soll, verbindet das Schaltelement 258 die Leitung 256 mit dem Eingang eines Makroblock-zu-Teilbildblöcke-Formatierers 266, dessen Ausgangssignal zu dem Schaltelement 262 geleitet wird, das den Ausgang des Formatierers 266 mit der Blockausgangsleitung 264 des Formatierers von 6 verbindet.
  • 7 ist ein Diagramm eines sowohl in 1 als auch in 2 gezeigten Blockentformatierers. Der Entformatierer von 7 empfängt Blöcke auf einer Eingangsleitung 268, die dieses Blöcke zu dem Eingang eines Schaltelements 270 leitet. Wenn das Codierungstypsignal anzeigt, daß Einzelbildcodierung stattfinden soll, verbindet das Schaltelement 270 die auf der Eingangsleitung 268 empfangenen Blöcke mit dem Eingang eines Einzelbildblöcke-zu-Makroblock-Formatierers 272, der Einzelbildmakroblöcke zu dem Eingang eines Schaltelements 274 leitet, das in dieser Situation, durch das Codierungstypsignal so konfiguriert wird, daß es Einzelbildblöcke aus dem Formatierer 272 zu einer Makroblockausgangsleitung 276 leitet. Wenn das Codierungstypsignal anzeigt, daß Teilbildcodierung stattfinden soll, verbindet das Schaltelement 270 die auf der Eingangsleitung 268 empfangenen Blöcke mit dem Eingang eines Teilbildblöcke-zu-Makroblock-Formatierers 278, der die Teilbildblöcke zu dem Eingang eines Schaltelements 274 leitet, das durch das Codierungstypsignal so konfiguriert wird, daß es Makroblöcke aus dem Formatierer 278 zu der Makroblockausgangsleitung 276 leitet.
  • 8 ist ein Flußdiagramm, das eine wie in 1 und 2 gezeigte Intra-Gleichstromkoeffizientenprädiktionsschaltung repräsentiert. Tatsächlich werden berechnete Intra-Gleichstromkoeffizienten auf der Leitung 47 zu dem Eingang der Schaltung von 8 geleitet. Im Block 280 wird ein Quantisierungsindex berechnet, indem der auf der Leitung 47 vorliegende Gleichstromkoeffizient durch einen Gleichstromschrittgrößenparameter dividiert wird, der acht betragen kann. Im Block 282 wird dann eine Entscheidung getroffen, um zu bestimmen, ob dieser Gleichstromkoeffizient der Gleichstromkoeffizient für den ersten Makroblock in einem Slice ist oder ob der vorherige Makroblock ein Nicht-Intra-Makroblock war. Für die Zwecke der vorliegenden Besprechung identifiziert der Blockindex die Speicherstelle eines Blocks in einem Makroblock, wie in 9 für einen Einzelbildmakroblock und einen Teilbildmakroblock gezeigt. Wenn die Entscheidung im Block 282 ja ist, wird dann im Block 284 entschieden, ob der Blockindex Null ist. Wenn der Blockindex Null ist, wird ein Gleichstrom-Top-Blockprädiktorparameter im Block 286 gleich irgendeinem beliebigen Wert gesetzt, zum Beispiel wird der Prädiktor auf 128 gesetzt. Die von der Prädiktionsschaltung von 8 vorgenommene Gleichstromprädiktion wird im Block 288 gleich diesem Top-Blockgleichstromprädiktor gesetzt. Im Block 290 wird der Top-Blockprädiktor mit dem Wert des im Block 280 berechneten Quantisierungsindex überschrieben. Im Block 292 wird ein unterer Blockgleichstromprädiktorparameter gleich dem Wert des im Block 290 gesetzten oberen Blockgleichstromprädiktors gesetzt. Die Gleichstromprädiktion wird auf der Ausgangsleitung 294, die dem Ausgang der Intra-Gleichstromkoeffizientenprädiktorblöcke in 1 und 2 entspricht, aus der Schaltung von 8 ausgegeben.
  • Wenn der Blockindex 1, 2 oder 3 ist, was im Block 284 in 8 bestimmt wird, wird im Block 296 geprüft, ob der Blockindex Eins ist. Wenn der Blockindex Eins ist, wird die Gleichstromprädiktion im Block 298 gleich dem oberen Blockgleichstromprädiktor gesetzt. Der obere Blockgleichstromprädiktor wird dann im Block 300 mit dem Quantisierungsindex überschrieben und die Gleichstromprädiktion wird auf der Leitung 294 von der Schaltung von 8 ausgegeben. Wenn der im Block 296 bestimmte Blockindex 2 oder 3 beträgt, wird die Gleichstromprädiktion im Block 302 auf den unteren Blockgleichstromprädiktor gesetzt und der untere Blockgleichstromprädiktor wird dann mit dem Wert des Quantisierungsindex im Block 304 überschrieben. Die Gleichstromprädiktion wird wieder auf der Leitung 294 von der Schaltung von 8 ausgegeben.
  • Wenn der Makroblock nicht der erste Makroblock in einem Slice ist oder der vorherige Makroblock kein Makroblock des Non-Intra-Typs ist, was im Block 282 in 8 bestimmt wird, wird im Block 306 entschieden, ob der aktuelle Makroblocktyp derselbe wie der vorherige Makroblocktyp ist. Wenn der aktuelle Makroblock ein Makroblock des Einzelbildtyps ist, bestimmt Block 306 in 8, ob der vorherige Makroblock ebenfalls ein Makroblock des Einzelbildtyps war. Wenn der aktuelle Makroblock ein Makroblock des Teilbildtyps ist, bestimmt Block 306 in 8, ob der vorherige Makroblock ebenfalls ein Makroblock des Teilbildtyp war. Wenn eine dieser Bestimmungen positiv ist, wird im Block 308 geprüft, ob der Blockindex Null oder Eins ist. Wenn der Blockindex Null oder Eins ist, wird die Gleichstromprädiktion im Block 310 gleich dem oberen Block-Gleichstromprädiktor gesetzt und im Block 312 wird dann der obere Block-Gleichstromprädiktor gleich dem im Block 280 berechneten Quantisierungsindex gesetzt. Die Gleichstromprädiktion wird dann von der Schaltung von 8 auf der Leitung 294 ausgegeben. Wenn der Blockindex 2 oder 3 ist, was im Block 308 bestimmt wird, wird die Gleichstromprädiktion im Block 314 gleich dem unteren Blockprädiktor gesetzt. Im Block 316 wird dann der untere Block-Gleichstromprädiktor mit dem Quantisierungsindex überschrieben, und außerdem wird die Gleichstromprädiktion von der Schaltung der 8 auf der Leitung 294 gesendet.
  • Wenn der aktuelle Makroblocktyp nicht derselbe wie der vorherige Makroblocktyp ist, was im Block 306 bestimmt wird, wird im Block 318 geprüft, ob der Blockindex Null ist. Wenn der Blockindex Null ist, wird im Block 320 ein Mittelwert der aktuellen Werte des oberen Block-Gleichstromprädiktors und des unteren Block-Gleichstromprädiktors bestimmt. Der im Block 320 berechnete Mittelwert wird im Block 322 gerundet. Der obere Block-Gleichstromprädiktor wird im Block 324 gleich dem gerundeten Mittelwert gesetzt. Die Gleichstromprädiktion wird dann im Block 326 gleich dem oberen Block-Gleichstromprädiktor gesetzt. Der obere Block-Gleichstromprädiktor wird dann im Block 328 mit dem Wert des Quantisierungsindex überschrieben. Der untere Block-Gleichstromprädiktor wird im Block 330 gleich dem oberen Block-Gleichstromprädiktor gesetzt. Die Gleichstromprädiktion wird zu der Ausgangsleitung 294 der Schaltung von 8 gesendet.
  • Wenn der Blockindex 1, 2 oder 3 ist, was im Block 318 bestimmt wird, wird im Block 332 bestimmt, ob der Blockindex 1 ist. Wenn der Blockindex 1 ist, wird die Gleichstromprädiktion im Block 334 gleich dem oberen Block-Gleichstromprädiktor gesetzt. Der obere Block-Gleichstromprädiktor wird dann im Block 336 mit dem Quantisierungsindex überschrieben und die Gleichstromprädiktion wird zu der Ausgangsleitung 294 der Schaltung von 8 geleitet. Wenn der Blockindex nicht 1 ist, was im Block 332 bestimmt wird, wird die Gleichstromprädiktion im Block 338 gleich dem Wert des unteren Block-Gleichstromprädiktors gesetzt und der untere Block-Gleichstromprädiktor wird dann im Block 340 mit dem Wert des im Block 280 berechneten Quantisierungsindex überschrieben. Wie in den anderen Fällen wird die Gleichstromprädiktion zu der Ausgangsleitung 294 geleitet.
  • 9 zeigt eine Sequenz von sechs Makroblöcken in einem Videodatenslice. Die Pfeile in 9 zeigen schematisch die Beziehung zwischen den vorhergesagten Gleichstromkoeffizienten für jeden der Videodatenblöcke und den tatsächlichen Werten von für benachbarte Blöcke berechneten Gleichstromkoeffizienten. Der Ursprung jedes der Pfeile wird in dem Block plaziert, für den ein tatsächlicher Gleichstromkoeffizient bestimmt wurde. Die Pfeilspitze gibt die Speicherstelle des Blocks an, für den der tatsächliche Wert des Gleichstromkoeffizienten als Prädiktion des Gleichstromkoeffizienten für den die Pfeilspitze enthaltenden Block verwendet wird. Die Kreise in bestimmten der Blöcke geben die Situation an, in der ein Mittelwert tatsächlicher Werte von Gleichstromkoeffizienten zur Vorhersage des Gleichstromkoeffizienten für den Block, in dem die Kreise verankert sind, verwendet wird. 9 zeigt einen Makroblock des Einzelbildtyps mit der Bezifferung 0 am Start des Makroblock-Slice, gefolgt durch den Makroblock des Einzelbildtyps mit der Bezifferung 1, einen Makroblock des Teilbildtyps mit der Bezifferung 2, einen Makroblock des Einzelbildtyps mit der Bezifferung 3, einen Makroblock des Teilbildtyps mit der Bezifferung 4 und einen Makroblock des Teilbildtyps mit der Bezifferung 5. Jeder der Makroblöcke enthält vier Blöcke, wobei dem oberen linken Block jedes Makroblocks ein Blockindex von 0 gegeben wird. Dem oberen rechten Block jedes Makroblocks wird ein Blockindex von 1 gegeben, dem unteren linken Block jedes Makroblocks wird ein Blockindex von 2 gegeben und dem unteren rechten Block jedes Makroblocks ein Blockindex von 3. Beispielsweise werden ein Einzelbildmakroblock 0 und ein Teilbildmakroblock 4 mit den Blockindizes in 9 bezeichnet. Der Block in dem Einzelbildmakroblock 0 mit einem Index 0 wird so vorhergesagt, daß er einen Wert des Gleichstromkoeffizienten gleich einem beliebigen Wert wie zum Beispiel 128 aufweist. Der vorhergesagte Wert des Gleichstromkoeffizienten für den Block in dem Einzelbildmakroblock 0 mit einem Index von 1 wird so vorhergesagt, daß er der für den Block mit einem Index von 0 berechnete Gleichstromkoeffizient ist, wie durch den Pfeil von dem Block mit einem Index von 0 zu dem Block mit einem Index von 1 dargestellt wird. Der vorhergesagte Wert des Gleichstromkoeffizientens für den Block mit einem Index von 2 in dem Einzelbildmakroblock 0 wird so vorhergesagt, daß er mit dem tatsächlichen Wert des für den Block mit einem Index von 0 in dem Einzelbildmakroblock 0 berechneten Gleichstromkoeffizienten übereinstimmt, wie durch den vertikal nach unten gerichteten Pfeil von dem Block mit Index 0 zu dem Block mit Index 2 dargestellt wird. Der vorhergesagte Wert des Gleichstromkoeffizienten für den Block mit einem Index von 3 in dem Makroblock 0 ist derselbe wie der tatsächliche Wert des für den Block mit einem Index von 2 in Makroblock 0 berechneten Gleichstromkoeffizienten. Der Wert des Gleichstromkoeffizienten, der für die Blöcke mit Index 0 in dem Teilbildmakroblock 2, dem Einzelbildmakroblock 3 und dem Teilbildmakroblock 4 vorhergesagt wird, werden jeweils so vorhergesagt, daß sie der Mittelwert der berechneten Koeffizienten für die Blöcke mit Index 1 und 3 in den vorherigen Makroblöcken in jedem Fall sind. Der Rest der Vorhersagen ist im Hinblick auf den Inhalt von 8 und 9 offensichtlich und wird nicht weiter besprochen.
  • 10 ist ein Blockschaltbild des in 1 gezeigten Variable-Wortlängen-Wahl-Analysierers. Der Analysierer empfängt das Bildtypsignal auf der Leitung 32 als ein Eingangssignal für einen Signalübersetzer 342, der zwei Signale erzeugt: eine Intracodierungsanzeige 344, die identifiziert, ob Codierung des Intra-Typs vorliegt, und eine B-Typ-Prädiktionsanzeige 346, die anzeigt, ob eine prädiktive Codierung von B-Bildern unternommen wird oder nicht.
  • Der Variable-Wortlänge-Wahl-Analysierer empfängt außerdem die DCT-Koeffizienten aus dem Scan-Selektor 23 in einem Lauflängencomputer 348, der für alle empfangenen, von Null verschiedenen Koeffizienten die Anzahl von Nullen unmittelbar vor dem Empfang dieses von Null verschiedenen DCT-Koeffizienten bestimmt. Anders ausgedrückt, bestimmt der Computer 348 die Lauflänge für jeden DCT-Koeffizienten und sendet Signale in bezug auf die Amplitude und die Lauflänge jedes empfangenen DCT-Koeffizienten zu dem Eingang eines Intra-Anzeige-Schaltelements 350. Das Schaltelement 350 leitet die Signale aus dem Lauflängencomputer 348, wenn es sich in dem in 10 gezeigten Zustand Nummer 1 befindet, zu dem Eingang des Sequenzschaltelements 352, bei dem es sich um eine Zählschaltung handeln kann. Das Schaltelement 350 befindet sich in dem Zustand Nummer 1, wenn der Auswahlanalysierer von 10 DCT-Koeffizienten für I-Bilder analysiert. Das Schaltelement 352 leitet die Amplitude und Lauflänge jedes Koeffizienten sequenziell zu den Eingängen jeder einer Reihe von vier Variable-Wortlänge-Codelänge-Tabellen 354, 356, 358 und 356. Die Tabellen 354, 356, 358 und 360 enthalten Daten, die die erwartete Codelänge repräsentieren, die produziert wird, wenn der DCT-Koeffizient mit einer Amplitude und Lauflänge, die durch die Signale aus dem Lauflängencomputer 348 repräsentiert werden, gemäß vier verschiedener Codierungsverfahren codiert werden, nämlich einem für jede der Tabellen 354, 356, 358 und 360. Wenn das Schaltelement 352 den Ausgang des Lauflängencomputers 348 mit dem Eingang einer der Tabellen 354, 356, 358 und 360 verbindet, erzeugt diese Tabelle auf einer jeweiligen Ausgangsleitung 362, 364, 366 und 368 ein Signal bezüglich der erwarteten Codelänge, die aus einer Codierung des DCT-Koeffizienten gemäß dem Codierungsverfahren, für das die Daten in der Tabelle erzeugt wurden, resultieren wird. Die erwarteten Codelängen auf den Leitungen 362, 364, 366 und 368 werden zu den Eingängen Nummer 1 eines Schaltelements 370 geleitet. Wenn die DCT-Koeffizienten für I-Bilder bestimmt sind, ist der Zustand des Schaltelements 370 dergestalt, daß die Signale auf den Leitungen 362, 364, 366 und 368 zu den Eingängen von Akkumulatoren 372, 374, 376 bzw. 378 geleitet werden. Der Inhalt der Akkumulatoren 372, 374, 376 und 378 wird zu vier Eingängen einer Komparator- und Minimumauswertungsschaltung 380 geleitet, die auf ein Vergleichsfreigabesignal reagiert, um zu bestimmen, welche der in den Akkumulatoren 372, 374, 376 und 378 gespeicherten erwarteten Lauflängen die kleinste ist. Die Auswertungsschaltung 380 erzeugt auf der Leitung 382 ein Variable-Wortlänge-Tabelle-Auswahlsignal, das dann zu dem Codierer und Multiplexer 24 in 1 gesendet wird, der das auf der Leitung 382 erzeugte Signal dann zur Auswahl eines effizienten Codierungsverfahrens mit fester oder variabler Wortlänge verwendet, das durch die Beschaffenheit des Variable-Wortlänge-Tabelle-Auswahlsignal auf der Leitung 382 identifiziert wird. Das Auswahlsignal auf der Leitung 382 bewirkt, daß der Codierer 24 eine von mehreren in dem Codierer 24 gespeicherten Codierungstabellen auswählt, die jeweils die Codierung quantisierter DCT-Koeffizienten gemäß einem separaten und verschiedenen Codierungsverfahren mit fester Wortlänge oder variabler Wortlänge steuert.
  • Wenn P- und B-Bilder codiert werden, wird das Schaltelement 350 in den Zustand 0 versetzt, so daß die DCT-Koeffizientenamplituden und -lauflängen zu dem Eingang eines Bidirektional-Prädiktions-Anzeigeschaltelements 384 geleitet werden. Wenn P-Bilder codiert werden, befindet sich das Schaltelement 384 im Zustand 0, der bewirkt, daß die Koeffizientenamplituden und -lauflängen mit dem Eingang eines Sequenzschaltelements 386 verbunden werden, bei dem es sich um eine Zählschaltung handeln kann. Das Schaltelement 386 verbindet sequenziell die P-Bild-Koeffizientenamplituden und -lauflängen mit jeder von vier Variable-Wortlänge-Codelänge-Tabellen 388, 390, 392 und 394. Die Tabellen 388, 390, 392 und 394 enthalten jeweils Informationen über erwartete Codelängen, die durch Codierung des DCT-Koeffizienten mit der berechneten Amplitude und den berechneten Lauflängen gemäß separaten und verschiedenen durch jede Tabelle 388, 390, 392 und 394 repräsentierten Codes produziert werden. Die erwarteten Codelängen aus den Tabellen 388, 390, 392 und 394 werden zu den 0-Eingängen des Schaltelements 370 gesendet. Für P-Bilder ist der Zustand der Schaltelemente 370 und 396 dergestalt, daß die Ausgaben der Tabellen 388, 390, 392 und 394 auf Ausgangsleitungen 398, 400, 402 und 404 und zu den Eingängen der Akkumulatoren 372, 374, 376 und 378 geleitet werden. Wie im oben beschriebenen Fall von I-Bildern leiten die Akkumulatoren 372, 374, 376 und 378 die erwarteten Codelängen zu der Auswertungsschaltung 380, die dann auf der Leitung 382 ein Variable-Wortlänge-Auswahlsignal erzeugt, mit dem der Codierer und Multiplexer 24 die quantisierten DCT-Koeffizienten unter Verwendung eines Codes codiert, der im Hinblick auf die kleinste Anzahl von Bit, die zum Übertragen der DCT-Koeffizienten verwendet werden muß, am effizientesten ist.
  • Wenn die Schaltung von 10 B-Bilder analysiert, werden die DCT-Koeffizientenamplituden und -lauflängen aus dem Computer 348 zu dem Eingang eines Schaltelements 384 geleitet, das sich in einem Zustand befindet, der diese Amplituden und Lauflängen nur mit der Variable-Wortlänge-Codelänge-Tabelle 388 verbindet, die das erwartete Lauflängensignal produziert und es zu dem Eingang des Akkumulators 372 sendet, und dient zur Erzeugung eines Variable-Wortlänge-Tabelle-Auswahl-Signals auf der Leitung 382. Man beachte, daß im Fall von B-Bildern der Zustand des Schaltelements 396 dergestalt ist, daß die Ausgaben der Tabellen 390, 392 und 394 nicht mit den Eingängen der Akkumulatoren 374, 376 und 378 verbunden werden.
  • Bei dem hier beschriebenen Beispiel der Erfindung wird ein Parameter Mscale erzeugt. Der Parameter M scale ist ein bei der Berechnung des Quantisierungsparameters für bidirektional codierte Einzelbilder zu verwendender Multiplikator. Für jeden Makroblock wird ein Parameter M scale durch Auswahl aus vorbestimmten Tabellen produziert, die experimentell für eine bestimmte Bildauflösung und -bitrate bestimmt wurden.
  • 11 ist ein Flußdiagramm der Codierung des Parameters M scale für bidirektional codierte Bilder. Im Block 406 wird entschieden, ob der aktuelle Makroblock in dem vorherigen P-Bild oder I-Bild codiert wurde. Wenn nicht, wird im Block 408 eine weitere Entscheidung getroffen, ob der mittlere Quantisierungsparameter für ein entsprechendes Slice in dem vorherigen P-Bild oder I-Bild von Null verschieden war. Wenn er gleich Null war, wird der mittlere Quantisierungsparameter im Block 410 gleich 16 gesetzt. Wenn der mittlere Quantisierungsparameter von Null verschieden war, was im Block 408 bestimmt wird, oder nachdem der mittlere Quantisierungsparameter im Block 410 auf 16 gesetzt wurde, wird der Quantisierungsparameter für den entsprechenden Makroblock in dem vorherigen P-Bild oder I-Bild im Block 412 gleich 16 gesetzt, da es für diesen Makroblock keinen Quantisierungsparameter gab. Wenn der Makroblock in dem vorherigen P-Bild oder I-Bild codiert wurde, was im Block 406 bestimmt wird, oder nach dem Betrieb des Blocks 412 wird die Quantisierungsschrittgröße im Block 414 gleich zweimal den Quantisierungsparameter gesetzt. Die Quantisierungsschrittgröße für das Slice wird im Block 414 gleich zweimal den mittleren Quantisierungsparameter für das entsprechende Slice in dem vorherigen P-Bild oder I-Bild gesetzt. Im Block 416 wird dann entschieden, ob die Prädiktion für den Makroblock unidirektional oder intra sein soll. Wenn die Prädiktion bidirektional sein soll, oder anders ausgedrückt, wenn am Ausgang des Blocks 416 der Nein-Route gefolgt wird, wird im Block 418 ein vorübergehender Skalenfaktor gleich einem Skalenfaktor gesetzt, der auf die Auflösung und Bitrate mal der Quantisiererschrittgröße für den Makroblock in dem vorherigen P-Bild oder I-Bild abgestimmt ist. Im Block 420 wird ein Verhältnisparameter berechnet, indem der vorübergehende Skalenfaktor durch die Quantisierungs schrittgröße für das Slice dividiert wird. Im Block 422 wird eine Variable min_ind gleich 9 gesetzt, eine Variable min_valf wird gleich 1000 gesetzt und eine Variable zlimit wird gleich 4 gesetzt. Im Block 424 wird dann entschieden, ob ein Index z kleiner als zlimit ist. Wenn z kleiner als zlimit ist, wird eine Variable absdiff gleich dem Absolutwert der Differenz zwischen dem im Block 420 berechneten Verhältnis und dem Parameter mscale im Block 426 gesetzt. Im Block 428 wird dann entschieden, ob der wert von absdiff kleiner als min_valf ist. Wenn von Block 428 aus der Ja-Route gefolgt wird, wird eine Variable min_ind gleich z gesetzt, und die Variable min_valf wird gleich der Variable absdiff gesetzt (Block 430). Die Routine von 11 kehrt dann zum Eingang von Block 424 zurück. Wenn am Ausgang des Blocks 428 der Nein-Route gefolgt wird, kehrt die Routine von 11 direkt zu dem Eingang von Block 424 zurück. Die gerade beschriebene Schleife wird wiederholt, bis z nicht mehr kleiner zlimit ist und der Nein-Route am Ausgang von Block 424 gefolgt wird, woraufhin im Block 432 die aktuelle Quantisierungsschrittgröße gleich einem gerundeten Produkt einer im Block 432 gezeigten mscale-Variablen und der Quantisierungsschrittgröße für das Slice gesetzt wird. Der aktuelle Quantisierungsparameter wird gleich der Hälfte der Quantisierungsschrittgröße gesetzt (Block 434) und der Wert von min_ind wird zur Einfügung in den Codiererausgangsbitstrom zur Verwendung durch den Decodierer zur Rekonstruktion von Bildern aus dem komprimierten Bitstrom gesendet. Der aktuelle Quantisierungsparameter wird durch den Betrieb der Blöcke 436 und 438 auf ein Ventil von 31 abgeschnitten.
  • Wenn im Block 416 bestimmt wird, daß unidirektionale Prädiktion vorliegt, wird im Block 440 ein vorübergehender Skalenfaktor berechnet, im Block 442 wird ein Verhältnis des vorübergehenden Skalenfaktors zu der Quantisierungsschrittgröße berechnet, und im Block 444 werden die Variablen min_ind, min_valf und zlimit auf dieselben Werte wie im Block 422 gesetzt. Dann wird im Block 446 entschieden, ob ein Index z kleiner als zlimit ist. Wenn dies der Fall ist, wird in Block 448 eine Variable absdiff als der Absolutwert der Differenz zwischen dem im Block 442 berechneten Verhältnis und einem im Block 448 identifizierten mscale-Parameter berechnet. Dann wird im Block 450 geprüft, ob absdiff kleiner als min_valf ist. Wenn dies der Fall ist, wird min_ind gleich z gesetzt, und min_valf wird gleich absdiff gesetzt (Block 452). Dann kehrt die Routine von 11 zu dem Eingang von Block 446 zurück. Die Schleife wird fortgesetzt, bis z nicht mehr kleiner als zlimit ist, und die Routine folgt dann der Nein-Route als Ausgabe des Blocks 446. Wenn im Block 454 der Nein-Route gefolgt wird, wird der aktuelle Quantisierungsschrittparameter gleich einem Produkt ähnlich dem bereits für Block 432 beschriebenen Produkt gesetzt und die Routine von 11 führt die zuvor beschriebenen, in den Blöcken 434, 436 und 438 identifizierten Schritte aus.
  • 12 zeigt die Funktionsweise eines Decodierers in bezug auf den mscale-Parameter, der für B-Bilder produziert wird. Der min_ind-Parameter wird aus dem zu dem Decodierer gesendeten Bitstrom extrahiert (Block 456). Aus diesem Bitstrom wird im Block 458 der Quantisierungsparameter für das Slice extrahiert. Block 460 berechnet die Quantisierungsschrittgröße aus dem Quantisierungsparameter für das Slice im Block 460. Im Block 462 wird dann entschieden, ob die Prädiktion für den Makroblock unidirektional oder intra ist. Wenn die Prädiktion unidirectional oder intra ist, wird wie im Block 464 spezifiziert der aktuelle Quantisierungsschritt berechnet. Wenn die Prädiktion bidirektional ist, wird die aktuelle Quantisierungsschrittgröße wie im Block 456 spezifiziert berechnet.
  • 13 zeigt ein ausführliches Blockschaltbild eines Sichtbarkeitsmatrixselektors. Auf der Leitung 468 werden DCT-Koeffizienten in den Selektor eingegeben, die zu dem Eingang einer Koeffizientengewichtungsschaltung 470 geleitet werden. Für Fachleute ist erkennbar, daß Gewichtungsfaktoren aus einer gewählten von vier Sichtbarkeitsmatrizen 472, 474, 476 und 478 abgerufen werden, und zwar abhängig von den Zuständen der Schaltelemente 480, 482, 484, 486, 488 und 490, wobei diese Zustände durch den Zustand von in 13 identifizierten und an anderer Stelle besprochenen Signalen bestimmt werden. Abhängig davon, welche Sichtbarkeitsmatrix ausgewählt wird, werden vorbestimmte Gewichtungsfaktoren auf der Leitung 492 zu einem Eingang der Koeffizientenwarteschaltung 470 geleitet, die dann auf einer Ausgangsleitung 494 im Hinblick auf die auf der Leitung 468 eingeführten DCT-Koeffizienten und die auf der Leitung 492 eingeführten Gewichtungskoeffizienten gewichtete DCT-Koeffizienten erzeugt.
  • 14 ist ein Blockschaltbild eines Vorwärts-/Invers-Scan-Selektors. Der Scan-Selektor von 14 umfaßt eine Vorwärts-/Invers-Scan-Formatierungsschaltung 496, die auf der Leitung 498 ein Vorwärts-/Invers-Scan-Kennzeichnungssignal und auf der Leitung 500 Quantisierungsindizes empfängt. Gemäß Informationen, die in vier Scanning-Blöcken 502, 504, 506 und 508 gespeichert sind, kann eine von vier vorbestimmten Scanning-Reihenfolgen produziert werden. Abhängig von den Zuständen der Schaltelemente 510, 512, 514, 516, 518 und 520, die durch die Beschaffenheit von in 14 identifizierten und an anderem Ort besprochenen Steuersignalen bestimmt werden, wird die Funktionsweise des Scan-Formatierers 496 durch Signale auf einer Eingangsleitung 522 gesteuert, die durch einen gewählten der Scanning-Blöcke 502, 504, 506 und 508 erzeugt werden. Der Scan-Formatierer 496 erzeugt auf der Leitung 524 im Hinblick auf die auf den Leitungen 498, 500 und 522 empfangenen Eingangssignale Scan-Quantisierungsindizes.
  • 15 ist ein Flußdiagramm der Bewegungsvektorprädiktion für P-Bilder. Im Block 526 wird ein neuer Makroblock erhalten. Block 528 bestimmt, ob dieser Makroblock der erste Makroblock eines Slice ist. Wenn es der erste Makroblock ist, werden die Variablen, die in fünf Registern gespeichert sind, die im Block 530 identifiziert werden, auf Null initialisiert, und die Routine von 15 schreitet dann zum Eingang eines Entscheidungsblocks 532 voran. Wenn im Block 528 bestimmt wird, daß dieser Makroblock nicht der erste Makroblock in einem Slice ist, schreitet die Routine von 15 direkt von Block 528 zu dem Eingang von Block 532 voran. Block 532 bestimmt, ob dies ein Inter-Makroblock ist. Wenn es nicht ein Inter-Makroblock ist, werden die Variablen, die in fünf Registern gespeichert sind, die im Block 534 identifiziert werden, auf Null initialisiert, und die Routine von 15 fährt zum Eingang von Block 526 zurück.
  • Wenn Block 532 bestimmt, daß der Makroblock ein Inter-Makroblock ist, dann wird entschieden, um welchen Bewegungskompensationstyp es sich handelt. Diese Entscheidungen erfolgen in den Blöcken 536, 538 und 540. Wenn der Bewegungskompensationstyp Typ 1 ist, wird im Block 542 eine Bewegungsvektorprädiktionsvariable gleich dem Wert der Variable REG 16 × 16 FRM_P gesetzt. Im Block 544 wird die Variable REG 16 × 16 FRM_P gleich dem Wert einer aktuellen Bewegungsvektorvariablen gesetzt, und die Bewegungsprädiktion wird von der Routine von 15 ausgegeben.
  • Wenn der Bewegungskompensationstyp der Typ 2 ist, wird im Block 546 eine erste Bewegungsvektorprädiktions varibable gleich der Variablen REG 16 × 8 FRM_P1 gesetzt. Die Variable REG 16 × 8 FRM_P1 wird im Block 548 auf den Wert einer aktuellen Bewegungsvektorvariablen (P1) umgeändert. Im Block 550 wird eine zweite Bewegungsvektorprädiktionsvariable gleich der Variablen REG 16 × 8 FRM_P2 gesetzt. Im Block 552 wird die Variable REG 16 × 8 FRM_P2 gleich dem Wert einer aktuellen Bewegungsvektorvariablen (P2) gesetzt, und die Bewegungsprädiktion wird von der Routine von 15 ausgegeben.
  • Wenn der Bewegungskompensationstyp der Typ 3 ist, wird eine erste Bewegungsvektorprädiktionsvariable gleich der Variablen REG 16 × 8 FLD_P1 gesetzt (Block 554). Im Block 556 wird die Variable REG 16 × 8 FLD_P1 dann gleich einer aktuellen Bewegungsvektorvariablen (P1) gesetzt. Im Block 558 wird eine zweite Bewegungsvektorprädiktionsvariable gleich der Variablen REG 16 × 8 FLD_P2 gesetzt. Die Variable REG 16 × 8 FLD_P2 wird dann gleich dem Wert einer aktuellen Bewegungsvektorvariablen (P2) gesetzt (Block 560), und die Routine von 15 gibt die Bewegungsvektorprädiktion aus. Im Block 561 wird ein Fehlerzustand identifiziert, falls bestimmt wird, daß der Bewegungskompensationstyp keiner der drei zulässigen Typen in 15 ist.
  • 16 ist ein Flußdiagramm der Bewegungsvektorprädiktion für B-Bilder. Im Block 562 wird ein neuer Makroblock erhalten. Im Block 564 wird bestimmt, ob dies der erste Makroblock in einem Slice ist. Wenn es der erste Makroblock in einem Slice ist, wird eine Liste von Variablen in dem Register, das im Block 566 identifiziert wird, auf Null initialisiert. Nach dem Betrieb des Blocks 566 schreitet die Routine von 16 zum Eingang von Block 568 voran. Wenn der Makroblock nicht der erste Makroblock in einem Slice ist, was im Block 564 bestimmt wird, wird die Ausgabe von Block 564 direkt mit dem Eingang von Block 568 verbunden.
  • Block 568 bestimmt, ob es sich um einen Inter-Makroblock handelt. Wenn es sich nicht um einen Inter-Makroblock handelt, initialisiert Block 570 eine Liste von Variablen, die in Registern gespeichert sind, die im Block 570 identifiziert werden, auf Null, und die Routine von 16 kehrt dann zum Eingang von Block 562 zurück. Wenn Block 568 bestimmt, daß es sich um einen Inter-Makroblock handelt, bestimmen dann die Blöcke 572, 574, 576, 578, 580, 582 und 584, ob der Bewegungskompensationstyp einer der sieben möglichen Typen ist.
  • Wenn der Bewegungskompensationstyp der Typ 1 für B-Bilder ist, setzt Block 586 eine Bewegungsvektorprädiktionsvariable gleich der Variablen REG 16 × 16 FRM_P. Block 588 setzt die Variable REG 16 × 16 FRM_P dann gleich einer aktuellen Bewegungsvektorvariablen (P), und die Routine von 16 gibt dann die Bewegungsvektorprädiktion aus.
  • Wenn der Bewegungskompensationstyp der Typ 2 für B-Bilder ist, setzt Block 590 eine Bewegungsvektorprädiktionsvariable gleich der Variablen REG 16 × 16 FRM_N. Block 592 setzt die Variable REG 16 × 16 FRM_N dann auf den Wert einer aktuellen Bewegungsvektorvariablen (N), und die Routine von 16 gibt die Bewegungsvektorprädiktion aus.
  • Wenn der Bewegungskompensationstyp der Typ 3 für B-Bilder ist, setzt Block 594 eine erste Bewegungsvektorprädiktionsvariable auf den Wert der variablen REG 16 × 16 FRM_P. Block 596 setzt eine aktuelle Bewegungsvektorvariable (P) dann auf den Wert der Variablen REG 16 × 16 FRM_P.
  • Block 598 setzt eine zweite Bewegungsvektorprädiktionsvariable gleich der Variablen REG 16 × 16 FRM_N. Block 600 setzt dann den Wert von REG 16 × 16 FRM_N auf den Wert der aktuellen Bewegungsvektorvariablen (N), und die Routine von 16 gibt die Bewegungsvektorprädiktionen aus.
  • Wenn der Bewegungskompensationstyp der Typ 4 für B-Bilder ist, setzt Block 602 eine erste Bewegungsvektorprädiktionsvariable gleich der Variablen REG 16 × 8 FRM_P1. Block 604 verwandelt den Wert der Variablen REG 16 × 8 FRM_P1 in den Wert einer aktuellen Bewegungsvektorvariablen (P1). Block 606 setzt eine zweite Bewegungsvektorprädiktionsvariable auf den Wert der Variablen REG 16 × 8 FRM_N2. Block 608 verwandelt den Wert der Variablen REG 16 × 8 FRM_N2 in den Wert einer aktuellen Bewegungsvektorvariablen (N2), und die Routine von 16 gibt die Bewegungsvektorprädiktionen aus.
  • Wenn der Bewegungskompensationstyp der Typ 5 für B-Bilder ist, setzt Block 610 eine erste Bewegungsvektorprädiktionsvariable gleich der Variablen REG 16 × 8 FRM_N1. Block 612 verwandelt den Wert der Variablen REG 16 × 8 FRM_N1 in den Wert einer aktuellen Bewegungsvektorvariablen (N1). Block 614 setzt den Wert einer zweiten Bewegungsvektorprädiktionsvariable gleich dem Wert der Variablen REG 16 × 8 FRM_P2. Block 616 verwandelt den Wert der Variablen REG 16 × 8 FRM_P2 dann in den Wert einer aktuellen Bewegungsvektorvariablen (P2), und die Routine von 16 gibt die Bewegungsvektorprädiktionen aus.
  • Wenn der Bewegungskompensationstyp der Typ 6 für B-Bilder ist, setzt Block 618 den Wert einer ersten Bewegungsvektorprädiktionsvariablen auf den Wert der Variablen REG 16 × 8 FLD_P1. Block 620 verwandelt den Wert der Variablen REG 16 × 8 FLD_P1 dann in den Wert einer aktuellen Bewegungsvektorvariablen (P1). Block 622 setzt den Wert einer zweiten Bewegungsvektorprädiktionsvariablen gleich dem Wert der Variablen REG 16 × 8 FLD_N2. Block 624 verwandelt den Wert der Variablen REG 16 × 8 FLD_N2 in den Wert einer aktuellen Bewegungsvektorvariablen (N2), und die Routine von 16 gibt die Bewegungsvektorprädiktionen aus.
  • Wenn der Bewegungskompensationstyp der Typ 7 für B-Bilder ist, setzt Block 626 den Wert einer ersten Bewegungsvektorprädiktionsvariablen auf den Wert der Variablen REG 16 × 8 FLD_N1. Block 628 verwandelt den Wert der Variablen REG 16 × 8 FLD_N1 dann in den Wert, der gleich einer aktuellen Bewegungsvektorvariablen (N1) ist. Block 630 setzt den wert einer zweiten Bewegungsvektorprädiktionsvariablen gleich dem Wert der Variablen REG 16 × 8 FLD_P2. Block 632 verwandelt den Wert der Variablen REG 16 × 8 FLD_P2 dann in den Wert, der derselbe ist wie der einer aktuellen Bewegungsvektorvariablen (P2), und die Routine von 16 gibt die Bewegungsvektorprädiktionen aus.
  • Wenn die Routine von 16 bestimmt, daß der Bewegungskompensationstyp keiner der 7 zulässigen Typen ist, identifiziert die Routine von 16 im Block 634 einen Fehlerzustand.
  • Es folgt eine Zusammenfassung der syntaktischen Einzelheiten dieses Beispiels der Erfindung:
  • Sequenz-Kopfteil:
    • • sequence_header_code
    • • horizontal_size
    • • vertical size
    • • pel_aspect_ratio
    • • picture_rate
    • • bit_rate
    • • intra_frame_quantizer_matrix[64]
    • • intra_field_quantizer_matrix[64]
    • • nonintra_frame_quantizer_matrix[64]
    • • nonintra_field_quantizer_matrix[64]
    • • mscale [64]
  • Gruppe-von-Bildern-Schicht:
    • • group_start-code
    • • time_code
    • • closed_gop
    • • broken_link
  • Bildschicht:
    • • picture_start_code
    • • temporal_reference
    • • picture_coding_type
    • • full_pel_forward_vector (für P- und B-Bilder)
    • • forward_f (für P- und B-Bilder)
    • • full_pel_backward_vector (für B-Bilder)
    • • backward_f (für B-Bilder)
  • Slice-Schicht:
    • • slice_start_code
    • • quantization_parameter
  • Makroblock-Schicht bei intracodierten MBs:
    • • macroblock_type
    • • quantization_parameter (5 Bit)
    • • vlc_select (2 Bit)
  • Makroblock-Schicht bei prädiktiv codierten MBs:
    • • macroblock_type
    • • motion_horizontal_forward
    • • motion_vertical_forward
    • • macroblock_code_nocode (1 Bit)
    • • quantization_parameter (5 Bit, gesendet, wenn macroblock_code_nocode "1" ist)
    • • vlc_select (2 Bit, gesendet, wenn macroblock_code_nocode "1" ist)
  • Makroblock-Schicht bei bidirektional prädiktiv codierten MBs
    • • macroblock_type
    • • motion_horizontal_forward
    • • motion_vertical_forward
    • • motion_horizontal_backward
    • • motion_vertical_backward
    • • macroblock_code_nocode (1 Bit)
    • • mscale_addr (2 Bit, gesendet, wenn macroblock_code_nocode "1" ist)
    • • coded_block_pattern (gesendet, wenn macroblock_code_nocode "1" ist)
  • Blockschicht bei intracodierten MBs:
    • • dct_dc_size
    • • dct_dc_differential
    • • dct_coeff_next
    • • end_of_block (Codewort hängt von verwendetem Codebuch ab)
  • Blockschicht bei nicht-intracodierten MBs:
    • • dct_coeff_first
    • • dct_coeff_next
    • • end_of_block (bei P-Bildern hängt das Codewort von dem verwendeten Codebuch ab)
  • Die gesamte Menge von Makroblockbetriebsarten für alle drei Bildtypen ist in der nachfolgenden Tabelle 1 aufgelistet.
  • TABELLE I VLC-TABELLEN FÜR MAKROBLOCKTYPEN
    Figure 00640001
  • Bei einem vollautomatisierten Codierer mit einem Durchgang beträgt die durch den Codierungsvorgang entstehende Verzögerung 2 bis 3 Bildperioden. Die Verzögerung im Decodierer beträgt 1 bis 2 Bildperioden (wobei etwaige Nachverarbeitungsverzögerungen nicht mitgezählt werden). Der Codierer- und Decodiererpuffer führen jedoch eine signifikant größere Verzögerung von 0,5 Sekunden ein. Die Gesamtcodeverzögerung beträgt also 0,65 bis 0,7 Sekunden.
  • I-Bilder stellen etwa alle 0,4 Sekunden Zugangspunkte bereit. Beginnend mit dem I-Bild können die anderen Bilder in der GOP je nach Bedarf decodiert werden, um das gewünschte Bild aus dem Bitstrom zu erhalten.
  • Schnelles Vorspulen und Rückspulen freigegeben, indem man I-Bilder in regelmäßigen Abständen hat.
  • Die Grundmerkmale der vorliegenden Unterbreitung wurden mit allen syntaktischen Einzelheiten präsentiert.

Claims (14)

  1. Vorrichtung zur Codierung digitaler Videosignale, umfassend: einen Empfänger (10) zum Empfangen eines digitalen Videoeingangssignals, das eine Abfolge digitaler Repräsentationen in Bezug auf Bildelemente umfaßt, aus denen mindestens ein Einzelbild eines Videobildes besteht, wobei das Einzelbild mehrere verschachtelte Teilbilder umfaßt; einen Codierer (15A, 19, 23, 24, 23A, 38, 45) mit mindestens zwei Codierungsbetriebsarten, wobei eine Betriebsart zum Codieren von Gruppen digitaler Repräsentationen in Bezug auf Einzelbilder von Bildelementen und eine andere Betriebsart zum Codieren von Gruppen digitaler Repräsentationen in Bezug auf verschachtelte Teilbilder in den Einzelbildern dient; dadurch gekennzeichnet, daß der Codierer eine Anzahl von Betriebsarten der Bewegungskompensation für das digitale Videoeingangssignal bereitstellt, wobei die Anzahl von Betriebsarten der Bewegungskompensation für mindestens eine Art von Bild mehrere Bewegungskompensationsbetriebsarten enthält, dergestalt, daß für Einzelbildcodierung und Teilbildcodierung verschiedene Bewegungskompensation bereitgestellt wird, wobei mindestens eine der mehreren Bewegungskompensationsbetriebsarten Bewegungskompensation durch Auftrennen eines Pixelmakroblocks in einen ersten Subblock und einen zweiten Subblock durchführt, an denen jeweils eine Bewegungskompensation dergestalt durchgeführt wird, daß dem ersten Subblock ein Bewegungsvektor und dem zweiten Subblock ein anderer Bewegungsvektor zugeordnet wird, sowie ein jeweiliges Bewegungskompensationstypsignal zum Identifizieren der bereitgestellten Bewegungskompensationsbetriebsart; und eine auf das digitale Videoeingangssignal reagierende Vorrichtung (14) zum Erzeugen eines Teilbild-/Einzelbildcodierungstypsignals, das den Codierer anweist, eine gewählte der Codierungsbetriebsarten, aber nicht beide, auszuführen.
  2. Vorrichtung nach Anspruch 1, bei der die Teilbilder abwechselnde horizontale Abtastzeilen der Einzelbilder umfassen.
  3. Vorrichtung nach Anspruch 1, umfassend: eine Vorrichtung (38) zum Erzeugen einer Schätzung des digitalen Videoeingangssignals; eine auf das digitale Videoeingangssignal und die Schätzung des digitalen Videoeingangssignals reagierende Vorrichtung (11) zum Erzeugen eines Fehlersignals; eine auf das Fehlersignal reagierende Schaltungsanordnung (14, 15A, 16) zum Bestimmen von Frequenzkoeffizienten des Fehlersignals; einen Quantisierer (19) zum Quantisieren der Frequenzkoeffizienten; einen Scanner (23) zum Scannen der quantisierten Frequenzkoeffizienten in einer vorbestimmten Reihenfolge, um eine Abfolge von Frequenzkoeffizientensignalen in der vorbestimmten Reihenfolge zu erzeugen; und einen auf die Abfolge von Frequenzkoeffizientensignalen reagierenden Codierer (24) mit variabler Wortlänge zum Erzeugen eines komprimierten Videosignalbitstroms; wobei die Vorrichtung zum Erzeugen eines Teilbild-/Einzelbildcodierungstypsignals auf das digitale Videoeingangssignal vor der Komprimierung reagiert.
  4. Vorrichtung nach Anspruch 3, bei der die Vorrichtung (14) zum Erzeugen eines Teilbild-/Einzelbildcodierungstypsignals die durch den Scanner (23) produzierte vorbestimmte Reihenfolge steuert.
  5. Vorrichtung nach Anspruch 3, bei der die Vorrichtung (14) zum Erzeugen eines Teilbild-/Einzelbildcodierungstypsignals die Vorrichtung (38) zum Erzeugen einer Schätzung des digitalen Videoeingangssignals steuert.
  6. Vorrichtung nach Anspruch 3, bei der die Vorrichtung (14) zum Erzeugen eines Teilbild-/Einzelbildcodierungstypsignals den Quantisierer (19) steuert.
  7. Vorrichtung nach Anspruch 6, bei der die Schätzung des digitalen Videoeingangssignals als Reaktion auf Bewegungsvektoren erzeugt wird, die durch einen Bewegungsschätzer (37) als Reaktion auf das digitale Videoeingangssignal und mindestens eine Repräsentation eines weiteren Videoeingangssignals bestimmt werden.
  8. Vorrichtung nach Anspruch 3, bei der die Schätzung des digitalen Videoeingangssignals eine bewegungskompensierte Schätzung des digitalen Videoeingangssignals ist.
  9. Vorrichtung nach Anspruch 1, wobei eine bidirektionale Interpolationsbetriebsart der Bewegungskompensation eine der Anzahl von Betriebsarten der Bewegungskompensation für Einzelbildcodierung und/oder Teilbildcodierung ist.
  10. Vorrichtung zur Decodierung eines komprimierten digitalen Videosignals, umfassend: einen Empfänger (50, 52) zum Empfangen des Signals, das einen komprimierten digitalen Videobitstrom repräsentiert; und einen auf ein aus dem empfangenen Signal wiederhergestelltes Codierungstypsignal reagierenden Decodierer (92, 94, 100, 100A, 100B, 100C, 100E, 74) zum Decodieren von Teilbildern oder Einzelbildern als Funktion eines Werts des Codierungstypsignals zum Entwickeln eines decodierten Signals; dadurch gekennzeichnet, daß der Decodierer auf ein aus dem empfangenen Signal wiederhergestelltes Bewegungskompensationstypsignal reagiert, um selektiv und adaptiv eine bewegungskompensierte Decodierung des komprimierten digitalen Videobitstroms durchzuführen, wobei für mindestens entweder die Verwendung der Einzelbildcodierungstechnik oder die Teilbildcodierungstechnik mindestens eine Bewegungskompensationsbetriebsart Bewegungskom pensation durch Auftrennen eines Pixelmakroblocks in einen ersten Subblock und einen zweiten Subblock durchführt, die jeweils separat kompensiert werden, dergestalt, daß dem ersten Subblock ein Bewegungsvektor und dem zweiten Subblock ein anderer Bewegungsvektor zugeordnet wird.
  11. Vorrichtung nach Anspruch 10, bei der der Decodierer einen auf das Codierungstypsignal reagierenden adaptiven Invers-Scanner (64) umfaßt.
  12. Vorrichtung nach Anspruch 10, bei der der Decodierer folgendes umfaßt: eine auf das Bewegungskompensationstypsignal reagierende und selektiv auf Einzelbildbewegungsvektoren und Teilbildbewegungsvektoren reagierende Vorrichtung (100) zum Erzeugen einer adaptiven bewegungskompensierten Schätzung eines decodierten Videosignals; eine auf den komprimierten digitalen Videobitstrom reagierende Vorrichtung (54, 64, 66, 72, 72A) zum Erzeugen eines Fehlersignals der decodierten Schätzung; und eine auf die adaptive bewegungskompensierte Schätzung und das Schätzungsfehlersignal reagierende Vorrichtung (74) zum Erzeugen eines decodierten Videosignals.
  13. Vorrichtung nach Anspruch 10, bei der der Decodierer eine auf das Codierungstypsignal reagierende Vorrichtung (66) zum adaptiven Entquantisieren des komprimierten digitalen Videobitstroms umfaßt.
  14. Vorrichtung nach Anspruch 10, bei der der Decodierer folgendes umfaßt: einen Empfänger (50, 52) zum Empfangen eines komprimierten digitalen Videosignals, das mindestens eine DC-Koeffizientenrepräsentation in Bezug auf das Videosignal umfaßt; eine Vorrichtung (60) zum Erzeugen eines geschätzten DC-Koeffizienten als Reaktion auf das Codierungstypsignal; und eine Vorrichtung (58) zum Erzeugen eines decodierten DC-Koeffizientensignals als Reaktion auf die DC-Koeffizientenrepräsentation und den geschätzten DC-Koeffizienten.
DE69233620T 1991-11-15 1992-11-05 Adaptive Kodierung und Dekodierung von Vollbildern und Halbbildern von Videosignalen Expired - Lifetime DE69233620T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/793,063 US5227878A (en) 1991-11-15 1991-11-15 Adaptive coding and decoding of frames and fields of video
US793063 1992-11-15

Publications (2)

Publication Number Publication Date
DE69233620D1 DE69233620D1 (de) 2006-06-01
DE69233620T2 true DE69233620T2 (de) 2006-11-09

Family

ID=25158980

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69233620T Expired - Lifetime DE69233620T2 (de) 1991-11-15 1992-11-05 Adaptive Kodierung und Dekodierung von Vollbildern und Halbbildern von Videosignalen

Country Status (4)

Country Link
US (1) US5227878A (de)
EP (1) EP0542474B1 (de)
JP (1) JP3104942B2 (de)
DE (1) DE69233620T2 (de)

Families Citing this family (214)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9405914D0 (en) * 1994-03-24 1994-05-11 Discovision Ass Video decompression
USRE37858E1 (en) * 1991-04-12 2002-09-24 Mitsubishi Denki Kabushiki Kaisha Motion compensation predicting encoding method and apparatus
ES2110504T3 (es) * 1991-06-04 1998-02-16 Qualcomm Inc Sistema de compresion de imagenes por dimensionado autoadaptivo de bloques.
US5784107A (en) * 1991-06-17 1998-07-21 Matsushita Electric Industrial Co., Ltd. Method and apparatus for picture coding and method and apparatus for picture decoding
US5510840A (en) * 1991-12-27 1996-04-23 Sony Corporation Methods and devices for encoding and decoding frame signals and recording medium therefor
US6870884B1 (en) * 1992-01-29 2005-03-22 Mitsubishi Denki Kabushiki Kaisha High-efficiency encoder and video information recording/reproducing apparatus
GB9204117D0 (en) * 1992-02-26 1992-04-08 British Broadcasting Corp Video image processing
KR960006762B1 (ko) 1992-02-29 1996-05-23 삼성전자주식회사 화상부호화를 위한 효율적인 2차원 데이타의 주사선택회로
US6680975B1 (en) 1992-02-29 2004-01-20 Samsung Electronics Co., Ltd. Signal encoding and decoding system and method
FR2688369B1 (fr) * 1992-03-03 1996-02-09 Thomson Csf Procede de codage d'images a tres bas debit et dispositif de codage-decodage mettant en óoeuvre ce procede.
JP3093499B2 (ja) * 1992-03-06 2000-10-03 三菱電機株式会社 シーンチェンジ検出装置
JP3443867B2 (ja) * 1992-06-26 2003-09-08 ソニー株式会社 画像信号符号化、復号化方法及び画像信号記録媒体
US5666461A (en) * 1992-06-29 1997-09-09 Sony Corporation High efficiency encoding and decoding of picture signals and recording medium containing same
US5768561A (en) 1992-06-30 1998-06-16 Discovision Associates Tokens-based adaptive video processing arrangement
US6263422B1 (en) 1992-06-30 2001-07-17 Discovision Associates Pipeline processing machine with interactive stages operable in response to tokens and system and methods relating thereto
US6112017A (en) 1992-06-30 2000-08-29 Discovision Associates Pipeline processing machine having a plurality of reconfigurable processing stages interconnected by a two-wire interface bus
US6330665B1 (en) 1992-06-30 2001-12-11 Discovision Associates Video parser
US6079009A (en) 1992-06-30 2000-06-20 Discovision Associates Coding standard token in a system compromising a plurality of pipeline stages
US5842033A (en) 1992-06-30 1998-11-24 Discovision Associates Padding apparatus for passing an arbitrary number of bits through a buffer in a pipeline system
US5828907A (en) 1992-06-30 1998-10-27 Discovision Associates Token-based adaptive video processing arrangement
DE69229338T2 (de) 1992-06-30 1999-12-16 Discovision Ass Datenpipelinesystem
US5809270A (en) 1992-06-30 1998-09-15 Discovision Associates Inverse quantizer
US6047112A (en) 1992-06-30 2000-04-04 Discovision Associates Technique for initiating processing of a data stream of encoded video information
US6067417A (en) 1992-06-30 2000-05-23 Discovision Associates Picture start token
JPH0620034A (ja) * 1992-07-02 1994-01-28 Nec Corp 画像処理用アドレス生成回路
KR950010913B1 (ko) * 1992-07-23 1995-09-25 삼성전자주식회사 가변장부호화 및 복호화시스템
US5982437A (en) * 1992-10-26 1999-11-09 Sony Corporation Coding method and system, and decoding method and system
US5367629A (en) * 1992-12-18 1994-11-22 Sharevision Technology, Inc. Digital video compression system utilizing vector adaptive transform
US5561529A (en) * 1992-12-22 1996-10-01 Canon Kabushiki Kaisha Image signal reproducing apparatus
DE69424591T2 (de) * 1993-03-29 2001-01-18 Canon Kk Verfahren zur Kontrolle der Datenmenge und Kodierer zur Durchführung desselben.
US5915040A (en) * 1993-03-29 1999-06-22 Canon Kabushiki Kaisha Image processing apparatus
US5805914A (en) 1993-06-24 1998-09-08 Discovision Associates Data pipeline system and data encoding method
US5861894A (en) 1993-06-24 1999-01-19 Discovision Associates Buffer manager
US5699544A (en) * 1993-06-24 1997-12-16 Discovision Associates Method and apparatus for using a fixed width word for addressing variable width data
BE1007252A3 (nl) * 1993-06-29 1995-05-02 Philips Electronics Nv Bewegingscompensator.
US5598514A (en) * 1993-08-09 1997-01-28 C-Cube Microsystems Structure and method for a multistandard video encoder/decoder
JPH0787482A (ja) * 1993-09-17 1995-03-31 Fujitsu Ltd 画像データの符号化方法及び復元方法並びに装置
KR0126657B1 (ko) * 1993-10-28 1997-12-29 구자홍 디지탈 영상 복원을 위한 움직임 보상장치
KR970003789B1 (ko) * 1993-11-09 1997-03-21 한국전기통신공사 비디오 부호기의 전송율을 제어하기 위한 비트 할당 방법
US5828786A (en) * 1993-12-02 1998-10-27 General Instrument Corporation Analyzer and methods for detecting and processing video data types in a video data stream
JP3050736B2 (ja) * 1993-12-13 2000-06-12 シャープ株式会社 動画像符号化装置
KR0155784B1 (ko) * 1993-12-16 1998-12-15 김광호 영상데이타의 적응형 가변장 부호화/복호화방법
JP3163880B2 (ja) * 1993-12-16 2001-05-08 松下電器産業株式会社 画像圧縮符号化装置
KR970009408B1 (ko) * 1994-01-18 1997-06-13 대우전자 주식회사 인터/인트라 테이블 선택 회로
US5592226A (en) * 1994-01-26 1997-01-07 Btg Usa Inc. Method and apparatus for video data compression using temporally adaptive motion interpolation
US5563961A (en) * 1994-03-03 1996-10-08 Radius Inc. Video data compression method and system which measures compressed data storage time to optimize compression rate
US5500678A (en) * 1994-03-18 1996-03-19 At&T Corp. Optimized scanning of transform coefficients in video coding
CA2145363C (en) 1994-03-24 1999-07-13 Anthony Mark Jones Ram interface
CA2145379C (en) * 1994-03-24 1999-06-08 William P. Robbins Method and apparatus for addressing memory
CA2145365C (en) * 1994-03-24 1999-04-27 Anthony M. Jones Method for accessing banks of dram
US5715009A (en) * 1994-03-29 1998-02-03 Sony Corporation Picture signal transmitting method and apparatus
FR2718315B1 (fr) * 1994-03-30 1996-06-21 Sgs Thomson Microelectronics Circuit de compression d'image.
US5767898A (en) * 1994-06-23 1998-06-16 Sanyo Electric Co., Ltd. Three-dimensional image coding by merger of left and right images
US5719961A (en) * 1994-07-22 1998-02-17 Apple Computer, Inc. Adaptive technique for encoder and decoder signal transformation
JP3468856B2 (ja) * 1994-07-28 2003-11-17 株式会社東芝 動きベクトル検出方法及び装置
GB9417138D0 (en) 1994-08-23 1994-10-12 Discovision Ass Data rate conversion
JPH0865681A (ja) * 1994-08-25 1996-03-08 Sony Corp 動きベクトル検出装置およびそれを使用した動き補償予測符号化システム
JP2671820B2 (ja) * 1994-09-28 1997-11-05 日本電気株式会社 両方向予測方法及び両方向予測装置
US5644361A (en) * 1994-11-30 1997-07-01 National Semiconductor Corporation Subsampled frame storage technique for reduced memory size
US5627601A (en) * 1994-11-30 1997-05-06 National Semiconductor Corporation Motion estimation with bit rate criterion
FR2731864B1 (fr) * 1995-03-14 1997-06-06 Sgs Thomson Microelectronics Decodeur mpeg a capacite memoire reduite
JPH08256266A (ja) * 1995-03-17 1996-10-01 Mitsubishi Electric Corp 画像符号化方式
US6198767B1 (en) * 1995-03-27 2001-03-06 International Business Machines Corporation Apparatus for color component compression
JPH08275160A (ja) * 1995-03-27 1996-10-18 Internatl Business Mach Corp <Ibm> 離散余弦変換方法
US5809173A (en) * 1995-04-18 1998-09-15 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression using previous frame DCT coefficients
US5864637A (en) * 1995-04-18 1999-01-26 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by selective reduction of spatial resolution
US5724446A (en) * 1995-04-18 1998-03-03 Advanced Micro Devices, Inc. Video decoder apparatus using non-reference frame as an additional prediction source and method therefor
US6002801A (en) * 1995-04-18 1999-12-14 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by selection of IDCT method based on image characteristics
US5774206A (en) * 1995-05-10 1998-06-30 Cagent Technologies, Inc. Process for controlling an MPEG decoder
US5812791A (en) * 1995-05-10 1998-09-22 Cagent Technologies, Inc. Multiple sequence MPEG decoder
US5680482A (en) * 1995-05-17 1997-10-21 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by adaptive selection of video input buffer parameters
GB2301973B (en) * 1995-06-06 1999-10-20 Sony Uk Ltd Motion compensated video processing
KR0153671B1 (ko) * 1995-06-30 1998-11-16 배순훈 고선명 텔레비젼 엔코더의 레이트 콘트롤러
US5774593A (en) * 1995-07-24 1998-06-30 University Of Washington Automatic scene decomposition and optimization of MPEG compressed video
JPH0951504A (ja) * 1995-08-03 1997-02-18 Matsushita Electric Ind Co Ltd 画像符号化装置及び画像復号化装置
US5910909A (en) * 1995-08-28 1999-06-08 C-Cube Microsystems, Inc. Non-linear digital filters for interlaced video signals and method thereof
JPH0974566A (ja) * 1995-09-04 1997-03-18 Sony Corp 圧縮符号化装置及び圧縮符号化データの記録装置
US5936670A (en) * 1995-09-20 1999-08-10 U.S. Philips Corporation Method and device for decoding coded digital video signals
GB2305797B (en) * 1995-09-27 2000-03-01 Sony Uk Ltd Video data compression
US5694127A (en) * 1995-10-17 1997-12-02 Zapex Technologies, Inc. Method and apparatus for efficiently generating variable length code data
US6571019B1 (en) * 1995-10-26 2003-05-27 Hyundai Curitel, Inc Apparatus and method of encoding/decoding a coded block pattern
US5872598A (en) * 1995-12-26 1999-02-16 C-Cube Microsystems Scene change detection using quantization scale factor rate control
KR970057947A (ko) * 1995-12-28 1997-07-31 배순훈 영상 부호화기에서의 타입 결정 및 버퍼 제어 장치
US6057893A (en) * 1995-12-28 2000-05-02 Sony Corporation Picture encoding method, picture encoding apparatus, picture transmitting method and picture recording medium
TW364107B (en) * 1996-03-25 1999-07-11 Trw Inc Method and system for three-dimensional compression of digital video signals
US6571016B1 (en) * 1997-05-05 2003-05-27 Microsoft Corporation Intra compression of pixel blocks using predicted mean
US6215910B1 (en) * 1996-03-28 2001-04-10 Microsoft Corporation Table-based compression with embedded coding
US6101276A (en) * 1996-06-21 2000-08-08 Compaq Computer Corporation Method and apparatus for performing two pass quality video compression through pipelining and buffer management
US6341144B1 (en) * 1996-09-20 2002-01-22 At&T Corp. Video coder providing implicit coefficient prediction and scan adaptation for image coding and intra coding of video
US8625665B2 (en) * 1996-09-20 2014-01-07 At&T Intellectual Property Ii, L.P. Video coder providing implicit coefficient prediction and scan adaptation for image coding and intra coding of video
EP1465431B1 (de) * 1996-09-20 2015-07-15 AT&T Corp. Videokodierer mit impliziter Koeffizientprädiktion und Scanadaption für Bildkodierung und Videointrakodierung
KR100346740B1 (ko) * 1996-09-21 2002-09-18 삼성전자 주식회사 이산코사인변환계수예측방법
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
KR100303685B1 (ko) * 1996-09-30 2001-09-24 송문섭 영상 예측부호화 장치 및 그 방법
US6031573A (en) * 1996-10-31 2000-02-29 Sensormatic Electronics Corporation Intelligent video information management system performing multiple functions in parallel
FR2759524B1 (fr) * 1997-02-10 1999-05-14 Thomson Multimedia Sa Procede et dispositif de codage par estimation de luminance
KR100227336B1 (ko) * 1997-02-20 1999-11-01 서평원 고정 전송율 mpeg 영상 송신기용 전송율 제어 방법 및 그 장치
US6014172A (en) * 1997-03-21 2000-01-11 Trw Inc. Optimized video compression from a single process step
TW398131B (en) * 1997-06-20 2000-07-11 Matsushita Electric Ind Co Ltd The image process method, the image process device and the data memory medium
JP4213526B2 (ja) * 1997-06-20 2009-01-21 パナソニック株式会社 画像処理方法
GB2327577B (en) * 1997-07-18 2002-09-11 British Broadcasting Corp Re-encoding decoded signals
US6426975B1 (en) * 1997-07-25 2002-07-30 Matsushita Electric Industrial Co., Ltd. Image processing method, image processing apparatus and data recording medium
US6167155A (en) * 1997-07-28 2000-12-26 Physical Optics Corporation Method of isomorphic singular manifold projection and still/video imagery compression
CN1136734C (zh) * 1997-07-29 2004-01-28 皇家菲利浦电子有限公司 可变比特率视频编码方法及相应的视频编码器
KR100249229B1 (ko) * 1997-08-13 2000-03-15 구자홍 에이치디티브이의 다운 컨버젼 디코딩 장치
US6477202B1 (en) * 1997-09-03 2002-11-05 Matsushita Electric Industrial Co., Ltd. Apparatus of layered picture coding, apparatus of picture decoding, methods of picture decoding, apparatus of recording for digital broadcasting signal, and apparatus of picture and audio decoding
JPH11112985A (ja) * 1997-09-29 1999-04-23 Sony Corp 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、および、伝送媒体
US6269174B1 (en) 1997-10-28 2001-07-31 Ligos Corporation Apparatus and method for fast motion estimation
KR100251548B1 (ko) * 1997-11-01 2000-04-15 구자홍 디지털영상을위한움직임추정장치및방법
CN1668111A (zh) * 1997-12-01 2005-09-14 三星电子株式会社 运动向量预测方法
WO1999043157A1 (en) * 1998-02-19 1999-08-26 Motorola Inc. System and method for non-causal encoding of video information for improved streaming thereof
US6594398B1 (en) * 1998-03-06 2003-07-15 Divio, Inc. Method and apparatus for run-length encoding video data
CA2265089C (en) * 1998-03-10 2007-07-10 Sony Corporation Transcoding system using encoding history information
KR100309695B1 (ko) * 1998-06-01 2001-12-28 구자홍 간헐영상의압축기록방법및압축간헐영상의재생방법
WO2000018133A1 (en) 1998-09-21 2000-03-30 Sony Corporation Encoding device and method, and decoding device and method
DE69939781D1 (de) * 1998-10-30 2008-12-04 Broadcom Corp Kabelmodemsystem
US6760316B1 (en) * 1998-10-30 2004-07-06 Broadcom Corporation Method and apparatus for the synchronization of multiple cable modem termination system devices
US7103065B1 (en) * 1998-10-30 2006-09-05 Broadcom Corporation Data packet fragmentation in a cable modem system
US6961314B1 (en) 1998-10-30 2005-11-01 Broadcom Corporation Burst receiver for cable modem system
US6563953B2 (en) 1998-11-30 2003-05-13 Microsoft Corporation Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock
US6075901A (en) * 1998-12-04 2000-06-13 France Telecom Method and system for predictive encoding of arrays of data
US6624761B2 (en) 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
ES2569491T3 (es) 1999-02-09 2016-05-11 Sony Corporation Sistema de codificación y método asociado
US6601104B1 (en) 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
US6499060B1 (en) * 1999-03-12 2002-12-24 Microsoft Corporation Media coding for loss recovery with remotely predicted data units
JP3323175B2 (ja) * 1999-04-20 2002-09-09 松下電器産業株式会社 符号化装置
FI113124B (fi) * 1999-04-29 2004-02-27 Nokia Corp Tiedonsiirto
US6993076B1 (en) 1999-05-11 2006-01-31 Thomson Licensing S.A. Apparatus and method for deriving an enhanced decoded reduced-resolution video signal from a coded high-definition video signal
JP3694888B2 (ja) * 1999-12-03 2005-09-14 ソニー株式会社 復号装置および方法、符号化装置および方法、情報処理装置および方法、並びに記録媒体
US20010047473A1 (en) 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
WO2001091803A2 (en) * 2000-06-01 2001-12-06 University Of North Carolina At Chapel Hill Methods and compounds for controlled release of recombinant parvovirus vectors
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
US9143546B2 (en) 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
US6931062B2 (en) * 2001-04-11 2005-08-16 Koninklijke Philips Electronics N.V. Decoding system and method for proper interpolation for motion compensation
US20020191698A1 (en) * 2001-06-15 2002-12-19 Solidstreaming, Inc. Video data CODEC system with low computational complexity
CN101064843B (zh) * 2001-11-22 2010-08-18 松下电器产业株式会社 可变长度编码方法
US7200275B2 (en) 2001-12-17 2007-04-03 Microsoft Corporation Skip macroblock coding
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
JP3944225B2 (ja) * 2002-04-26 2007-07-11 株式会社エヌ・ティ・ティ・ドコモ 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、画像符号化プログラム及び画像復号プログラム
KR100498445B1 (ko) * 2002-05-30 2005-07-01 삼성전자주식회사 성능향상을 위한 동영상 압축방법 및 장치
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US7088776B2 (en) 2002-07-15 2006-08-08 Apple Computer, Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding
US7154952B2 (en) 2002-07-19 2006-12-26 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
US8254461B2 (en) * 2002-07-24 2012-08-28 Apple Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding with reduced requirements for division operations
US6728315B2 (en) 2002-07-24 2004-04-27 Apple Computer, Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding with reduced requirements for division operations
EP2006840B1 (de) 2002-09-04 2012-07-04 Microsoft Corporation Entropiekodierung mittels Kodierungsanpassung zwischen Level und Lauflängen-/Levelmodi
US7433824B2 (en) * 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
JP3504256B1 (ja) * 2002-12-10 2004-03-08 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化方法、動画像復号方法、動画像符号化装置、及び動画像復号装置
US20040120398A1 (en) * 2002-12-19 2004-06-24 Ximin Zhang System and method for adaptive field and frame video encoding using rate-distortion characteristics
US7092442B2 (en) * 2002-12-19 2006-08-15 Mitsubishi Electric Research Laboratories, Inc. System and method for adaptive field and frame video encoding using motion activity
US8111753B2 (en) * 2003-02-06 2012-02-07 Samsung Electronics Co., Ltd. Video encoding method and video encoder for improving performance
US7499495B2 (en) 2003-07-18 2009-03-03 Microsoft Corporation Extended range motion vectors
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
JP4617644B2 (ja) * 2003-07-18 2011-01-26 ソニー株式会社 符号化装置及び方法
US7609763B2 (en) 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
US7688894B2 (en) * 2003-09-07 2010-03-30 Microsoft Corporation Scan patterns for interlaced video content
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7620106B2 (en) * 2003-09-07 2009-11-17 Microsoft Corporation Joint coding and decoding of a reference field selection and differential motion vector information
US7782954B2 (en) * 2003-09-07 2010-08-24 Microsoft Corporation Scan patterns for progressive video content
US8085844B2 (en) * 2003-09-07 2011-12-27 Microsoft Corporation Signaling reference frame distances
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7623574B2 (en) * 2003-09-07 2009-11-24 Microsoft Corporation Selecting between dominant and non-dominant motion vector predictor polarities
US7616692B2 (en) * 2003-09-07 2009-11-10 Microsoft Corporation Hybrid motion vector prediction for interlaced forward-predicted fields
US7567617B2 (en) * 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US7606308B2 (en) * 2003-09-07 2009-10-20 Microsoft Corporation Signaling macroblock mode information for macroblocks of interlaced forward-predicted fields
US7599438B2 (en) * 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
US7577198B2 (en) * 2003-09-07 2009-08-18 Microsoft Corporation Number of reference fields for an interlaced forward-predicted field
US7286710B2 (en) * 2003-10-01 2007-10-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Coding of a syntax element contained in a pre-coded video signal
US7379608B2 (en) * 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units
US7889792B2 (en) * 2003-12-24 2011-02-15 Apple Inc. Method and system for video encoding using a variable number of B frames
JP4213646B2 (ja) * 2003-12-26 2009-01-21 株式会社エヌ・ティ・ティ・ドコモ 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法、及び画像復号プログラム。
US7599435B2 (en) 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
US7453938B2 (en) * 2004-02-06 2008-11-18 Apple Inc. Target bitrate estimator, picture activity and buffer management in rate control for video coder
US7986731B2 (en) * 2004-02-06 2011-07-26 Apple Inc. H.264/AVC coder incorporating rate and quality controller
US7492820B2 (en) * 2004-02-06 2009-02-17 Apple Inc. Rate control for video coder employing adaptive linear regression bits modeling
US7869503B2 (en) 2004-02-06 2011-01-11 Apple Inc. Rate and quality controller for H.264/AVC video coder and scene analyzer therefor
US7586924B2 (en) * 2004-02-27 2009-09-08 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for coding an information signal into a data stream, converting the data stream and decoding the data stream
US20050286629A1 (en) * 2004-06-25 2005-12-29 Adriana Dumitras Coding of scene cuts in video sequences using non-reference frames
GB2417630B (en) 2004-08-27 2010-03-10 Tandberg Television Asa Control of frame types in video compression
EP1790171B1 (de) * 2004-09-16 2018-03-28 Thomson Licensing DTV Verfahren und vorrichtung zur schnellen videorahmen- und feldkodierung
US8634413B2 (en) 2004-12-30 2014-01-21 Microsoft Corporation Use of frame caching to improve packet loss recovery
US20060222251A1 (en) * 2005-04-01 2006-10-05 Bo Zhang Method and system for frame/field coding
WO2006129280A2 (en) * 2005-06-03 2006-12-07 Nxp B.V. Video decoder with hybrid reference texture
US7684981B2 (en) * 2005-07-15 2010-03-23 Microsoft Corporation Prediction of spectral coefficients in waveform coding and decoding
US7599840B2 (en) * 2005-07-15 2009-10-06 Microsoft Corporation Selectively using multiple entropy models in adaptive coding and decoding
US7693709B2 (en) * 2005-07-15 2010-04-06 Microsoft Corporation Reordering coefficients for waveform coding or decoding
US7933294B2 (en) 2005-07-20 2011-04-26 Vidyo, Inc. System and method for low-delay, interactive communication using multiple TCP connections and scalable coding
US8289370B2 (en) * 2005-07-20 2012-10-16 Vidyo, Inc. System and method for scalable and low-delay videoconferencing using scalable video coding
US7933337B2 (en) * 2005-08-12 2011-04-26 Microsoft Corporation Prediction of transform coefficients for image compression
US7565018B2 (en) * 2005-08-12 2009-07-21 Microsoft Corporation Adaptive coding and decoding of wide-range coefficients
US9077960B2 (en) * 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
US8599925B2 (en) * 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
WO2007043583A1 (ja) * 2005-10-11 2007-04-19 Matsushita Electric Industrial Co., Ltd. 画像符号化装置、画像復号化装置及びこれらの方法
US20070147496A1 (en) * 2005-12-23 2007-06-28 Bhaskar Sherigar Hardware implementation of programmable controls for inverse quantizing with a plurality of standards
CN101422047B (zh) * 2006-04-14 2011-01-12 Nxp股份有限公司 图像边界处的运动估计方法及显示设备
JP5746811B2 (ja) * 2006-12-21 2015-07-08 味の素株式会社 大腸癌の評価方法、ならびに大腸癌評価装置、大腸癌評価方法、大腸癌評価システム、大腸癌評価プログラムおよび記録媒体
US8184710B2 (en) * 2007-02-21 2012-05-22 Microsoft Corporation Adaptive truncation of transform coefficient data in a transform-based digital media codec
US7774205B2 (en) * 2007-06-15 2010-08-10 Microsoft Corporation Coding of sparse digital media spectral data
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US8228991B2 (en) * 2007-09-20 2012-07-24 Harmonic Inc. System and method for adaptive video compression motion compensation
KR100898406B1 (ko) 2007-11-19 2009-05-21 중앙대학교 산학협력단 디지털 영상 안정화 시스템 및 방법
US8179974B2 (en) 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
US8406307B2 (en) 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
US8254467B2 (en) * 2008-10-30 2012-08-28 Sensio Technologies Inc. Method and system for scaling compressed image frames
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
JP5100689B2 (ja) * 2009-03-11 2012-12-19 三菱電機株式会社 動画像符号化装置及び動画像復号装置
WO2011142279A1 (ja) 2010-05-13 2011-11-17 シャープ株式会社 符号化装置、復号装置、およびデータ構造
US9490839B2 (en) 2011-01-03 2016-11-08 Qualcomm Incorporated Variable length coding of video block coefficients
CA2829493A1 (en) 2011-03-10 2012-09-13 Vidyo, Inc. Dependency parameter set for scalable video coding
US9516316B2 (en) 2011-06-29 2016-12-06 Qualcomm Incorporated VLC coefficient coding for large chroma block
US9338456B2 (en) 2011-07-11 2016-05-10 Qualcomm Incorporated Coding syntax elements using VLC codewords
US9313486B2 (en) 2012-06-20 2016-04-12 Vidyo, Inc. Hybrid video coding techniques
US10666986B1 (en) * 2019-03-08 2020-05-26 Sony Corporation Sub-block based entropy coding for embedded image codec

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4437087A (en) * 1982-01-27 1984-03-13 Bell Telephone Laboratories, Incorporated Adaptive differential PCM coding
US4475213A (en) * 1982-12-27 1984-10-02 At&T Bell Laboratories Digital code converter
NL8700565A (nl) * 1987-03-10 1988-10-03 Philips Nv Televisiesysteem waarin aan een transformatiekodering onderworpen gedigitaliseerde beeldsignalen worden overgebracht van een kodeerstation naar een dekodeerstation.
JPH02308673A (ja) * 1989-05-23 1990-12-21 Fujitsu Ltd 画像データ符号化方式
JP2562499B2 (ja) * 1989-05-29 1996-12-11 日本電信電話株式会社 高能率画像符号化装置およびその復号化装置
DE3917567A1 (de) * 1989-05-30 1990-12-06 Siemens Ag Verfahren zu einer ermittlung eines entscheidungsergebnisses fuer ein halbbild/vollbild-datenkompressionsverfahrens
US4958226A (en) * 1989-09-27 1990-09-18 At&T Bell Laboratories Conditional motion compensated interpolation of digital motion video
JPH03139088A (ja) * 1989-10-24 1991-06-13 Ricoh Co Ltd 画像データ処理装置
US4969040A (en) * 1989-10-26 1990-11-06 Bell Communications Research, Inc. Apparatus and method for differential sub-band coding of video signals
US5091782A (en) * 1990-04-09 1992-02-25 General Instrument Corporation Apparatus and method for adaptively compressing successive blocks of digital video
US5001561A (en) * 1990-05-02 1991-03-19 At&T Bell Laboratories Embedded coding system for video signals
US4999705A (en) * 1990-05-03 1991-03-12 At&T Bell Laboratories Three dimensional motion compensated video coding
FR2670348A1 (fr) * 1990-12-07 1992-06-12 France Etat Dispositif de codage d'images appartenant a une sequence d'images, a rearrangement des lignes avant transformation mathematique, systeme de transmission d'images, recepteur et procede de codage correspondants.
NL9100234A (nl) * 1991-02-11 1992-09-01 Philips Nv Codeerschakeling voor transformatiecodering van een beeldsignaal en decodeerschakeling voor het decoderen daarvan.
JP2507199B2 (ja) * 1991-06-17 1996-06-12 松下電器産業株式会社 画像符号化方法及び装置
JP2991833B2 (ja) * 1991-10-11 1999-12-20 松下電器産業株式会社 インターレス走査ディジタルビデオ信号の符号化装置及びその方法

Also Published As

Publication number Publication date
US5227878A (en) 1993-07-13
JP3104942B2 (ja) 2000-10-30
EP0542474B1 (de) 2006-04-26
DE69233620D1 (de) 2006-06-01
EP0542474A2 (de) 1993-05-19
JPH06165163A (ja) 1994-06-10
EP0542474A3 (de) 1994-04-06

Similar Documents

Publication Publication Date Title
DE69233620T2 (de) Adaptive Kodierung und Dekodierung von Vollbildern und Halbbildern von Videosignalen
DE69738262T2 (de) Videokodierungs- und Videodekodierungsvorrichtung
DE69839100T2 (de) Verbesserte Videokodierung unter Verwendung von adaptiven Blockparametern für kodierte/unkodierte Blöcke
DE69824486T2 (de) Kodier- und Dekodierverfahren für Videosignal mit Zwischenbild mit Konvertierung periodisch ausgewählter Videohalbbilder zu Videobildern mit progressiver Abtastung
DE69633838T2 (de) Kodierung und Dekodierung von Bewegtbildern
DE69535228T2 (de) Bildumsetzungsvorrichtung
DE69937462T2 (de) Effiziente macroblockheaderkodierung zur videokompression
DE10190285B4 (de) Verfahren und System zur Verarbeitung von komprimierten Videosignalen
DE60027955T2 (de) Verfahren und Vorrichtung zur kontextbasierten Inter/Intra Kodierungsmodeauswahl
DE60125301T2 (de) Videosignaltranskodierung
DE69634423T2 (de) Videokodierung- und dekodierungsvorrichtung
DE69836609T2 (de) Umwandlung von in DV-Format kodierten Videodaten in MPEG-Format
DE69830979T2 (de) Verfahren und vorrichtung zur videocodierung mit variabler bitrate
DE69917971T2 (de) Verfahren und Vorrichtung zur Verarbeitung von komprimierten Videodatenströmen
DE69632232T2 (de) Verfahren und Vorrichtung zur Komprimierung von Videoinformationen mit bewegungsabhängiger Prädiktion
DE60315565T2 (de) Verfahren und Vorrichtung zur Codierung und Decodierung von Bewegungsvektoren
DE69434668T2 (de) Adaptives Codierungs- und Decodierungsverfahren mit variabler Länge für Bilddaten
DE60015566T2 (de) Verfahren und vorrichtung zur komprimierung eines bewegungsvektorfeldes
DE69916027T2 (de) Videokompressionssystem welches auch codierungsentscheidungsdaten komprimiert
DE69735838T2 (de) Videokodierer mit Transformationskoeffizientenprädiktion
DE69433272T2 (de) Vorrichtung zum Vermeiden von Rundungsfehlern bei der inversen Transformation von Transformationskoeffizienten eines Bewegtbildsignales
DE69635369T2 (de) Videokodierungsvorrichtung
DE602004008763T2 (de) Videotranskodierung
KR930018537A (ko) 디지탈 vtr의 영상신호 대역 압축장치
DE112012000397T5 (de) Videocodiersystem unter Verwendung von implizierten Referenzframes

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R071 Expiry of right

Ref document number: 542474

Country of ref document: EP