Nothing Special   »   [go: up one dir, main page]

DE69129595T2 - Systeme und Verfahren zur Kodierung alternierender Halbbilder in Zeilensprungbildsequenzen - Google Patents

Systeme und Verfahren zur Kodierung alternierender Halbbilder in Zeilensprungbildsequenzen

Info

Publication number
DE69129595T2
DE69129595T2 DE69129595T DE69129595T DE69129595T2 DE 69129595 T2 DE69129595 T2 DE 69129595T2 DE 69129595 T DE69129595 T DE 69129595T DE 69129595 T DE69129595 T DE 69129595T DE 69129595 T2 DE69129595 T2 DE 69129595T2
Authority
DE
Germany
Prior art keywords
data
field
motion vector
block
current frame
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
DE69129595T
Other languages
English (en)
Other versions
DE69129595D1 (de
Inventor
Dimitris Anastassiou
Feng-Ming Wang
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.)
Columbia University in the City of New York
Original Assignee
Columbia University in the City of New York
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=24489783&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69129595(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Columbia University in the City of New York filed Critical Columbia University in the City of New York
Application granted granted Critical
Publication of DE69129595D1 publication Critical patent/DE69129595D1/de
Publication of DE69129595T2 publication Critical patent/DE69129595T2/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/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
    • 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/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/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/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

  • Diese Erfindung bezieht sich auf Verfahren und Systeme zum Codieren abwechselnder Teilbilder eines verschachtelten Videoformats und ist insbesondere anwendbar auf Anordnungen, in denen die anderen Teilbilder bereits codiert worden sind.
  • Die verschachtelte Abtastung ist ein effizientes Verfahren der Bandbreitenkompression für die Fernsehübertragung. Eine weitere Bandbreitenkompression kann durch Abwärtsabtastung der verschachtelten Videosequenz durch Löschen entweder aller geraden oder aller ungeraden Teilbilder erreicht werden. Dieses Schema wird z. B. in dem momentanen Vorschlag der Expertengruppe für bewegte Bilder (MPEG) verwendet, der sich auf Codierungs- und Decodierungsprotokolle für die Kompression von Videodaten bezieht. In jenem vorgeschlagenen Format werden nur die ungeraden Teilbilder einer verschachtelten Videosequenz codiert und übertragen. Die vorliegende Erfindung, die die Tatsache ausnutzt, daß gerade und ungerade Teilbilder hochgradig korreliert sind, ermöglicht ein sehr effizientes Codieren der fehlenden geraden Teilbilder.
  • Eine Aufgabe dieser Erfindung besteht deshalb darin, Verfahren und Systeme für das effiziente Codieren eines Teilbildes eines verschachtelten Videos zu schaffen.
  • Eine weitere Aufgabe dieser Erfindung besteht darin, Verfahren und Systeme zum Codieren verschachtelter Videodaten zu schaffen, um ein effizientes und genaues Decodieren unter Verwendung von Verfahren und Systemen zu gestatten.
  • Diese Technik ist allgemein als Blockanpassung bekannt. Die US-A-4 897 720 (Wu & Yang/Bell) beschreiben eine besondere Form einer Vorrichtung zum Ausführen einer solchen Blockanpassung und listen mehrere Dokumente auf, die die Prinzipien der Blockanpassung und ähnlicher Techniken beschreiben. Genauer besteht das Prinzip der Blockanpassung für die Kompression darin:
  • gerade Teilbilder nicht zu übertragen;
  • ein Teilbild, das nicht übertragen wird, in Blöcke zu teilen;
  • das (als Bezugsteilbild bezeichnete) vorherige ungerade übertragene Teilbild entsprechend diesen Blöcken in Zonen zu teilen, wobei sich jede Zone über die Grenzen des entsprechenden Blocks hinaus erstreckt;
  • den Inhalt jedes Blocks mit dem Inhalt der entsprechenden Zone in dem Bezugsteilbild zu vergleichen, um innerhalb jener Zone die Stelle der besten Übereinstimmung des Blockinhalts zu bestimmen; und
  • für jeden Block die (als Blockvektor bezeichnete) Verschiebung zwischen ihm und der in der entsprechenden Zone am besten angepaßten Stelle zu übertragen;
  • und für die Dekompression darin:
  • für jeden Block den Blockvektor zur Auswahl des geeigneten blockgroßen Abschnitts der entsprechenden Zone aus dem Bezugsteilbild zu verwenden; und
  • das gerade Teilbild durch Zusammensetzen dieser blockgroßen Abschnitte der Zonen in den entsprechenden Blöcken jenes Teilbildes aufzubauen.
  • Gemäß einem ersten Aspekt der Erfindung wird ein System zum Codieren von Videodaten geschaffen, die aufeinanderfolgende Vollbilder von Videobildern repräsentieren, wobei die Videodaten für jedes Vollbild verschachtelte erste und zweite Teilbilder besitzen, wobei das System einen Teilbildseparator, der eine Sequenz von Videodaten- Vollbildern empfängt und jedes Vollbild in sein erstes und sein zweites Teilbild separiert, dadurch gekennzeichnet, daß das System ferner enthält:
  • (a) einen Generator für erste Bewegungsvektoren, der das erste Teilbild eines momentanen Vollbildes (E1(t)) und das zweite Teilbild eines momentanen Vollbildes (Oc1(t)) empfängt und einen oder mehrere erste Bewegungsvektoren (FMV) ableitet, wovon jeder einem jeweiligen Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes und einem entsprechenden Block von Pixeldaten des zweiten Teilbildes des momentanen Vollbildes zugeordnet ist;
  • (b) einen Generator für zweite Bewegungsvektoren, der das erste Teilbild des momentanen Vollbildes (E1(t)) und das erste Teilbild des unmittelbar vorhergehenden Vollbildes (Ec1(t-1)) empfängt und einen oder mehr zweite Bewegungsvektoren (CMV) ableitet, wovon jeder einem jeweiligen Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes und einem entsprechenden Block von Pixeldaten des ersten Teilbildes des unmittelbar vorhergehenden Vollbildes zugeordnet ist;
  • (c) einen Speicher, der mit dem Teilbildseparator, dem Generator für erste Bewegungsvektoren und dem Generator für zweite Bewegungsvektoren gekoppelt ist, um das zweite Teilbild des momentanen Vollbildes (Oc1(t)), das erste Teilbild des momentanen Vollbildes (E1(t)), das erste Teilbild des unmittelbar vorhergehenden Vollbildes (Ec1(t-1)), einen oder mehrere erste Bewegungsvektoren, die vom Generator für erste Bewegungsvektoren abgeleitet werden, und einen oder mehr zweite Bewegungsvektoren, die vom Generator für zweite Bewegungsvektoren abgeleitet werden, speichert;
  • (d) einen Bewegungsvektorprozessor, der mit dem Speicher gekoppelt ist, um hieraus wiederherzustellen: (i) den einen oder die mehreren ersten Bewegungsvektoren, (ii) den einen oder die mehreren zweiten Bewegungsvektoren, (iii) einen Block von Pixeldaten des zweiten Teilbildes des momentanen Vollbildes, der jedem ersten Bewegungsvektor zugeordnet ist, der aus dem Speicher wiederhergestellt wird, (iv) einen Block von Pixeldaten des ersten Teilbildes des unmittelbar vorhergehenden Vollbildes, der jedem zweiten Bewegungsvektor zugeordnet ist, der aus dem Speicher wiederhergestellt wird, und (v) den Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes, der jedem ersten Bewegungsvektor oder zweiten Bewegungsvektor zugeordnet ist, die aus dem Speicher wiederhergestellt werden, und um die Informationen bezüglich des besten Modus zu bestimmen, um einen oder mehrere Blöcke von Pixeldaten vorherzusagen, die jeweils einem ersten oder zweiten Bewegungsvektor zugeordnet sind, die aus dem Speicher wiederhergestellt worden sind, und jeweils den geringsten Pixelfehler im Vergleich zum entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes besitzen, und um ferner Pixelfehlerdaten zu bestimmen, die irgendeinen Pixelfehler zwischen einem oder jedem der mehreren vorhergesagten Blöcke von Pixeldaten und dem entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes repräsentieren; und
  • (e) einen Ausgangsdatengenerator, der mit dem Bewegungsvektorprozessor und mit dem Teilbildseparator gekoppelt ist, um das zweite Teilbild des momentanen Vollbildes, die Informationen bezüglich des besten Modus und die Pixelfehlerdaten zu erzeugen.
  • Gemäß einem zweiten Aspekt der Erfindung wird ein Verfahren zum Codieren von Videodaten geschaffen, die aufeinanderfolgende Vollbilder von Videobildern repräsentieren, wobei die Videodaten für jedes Vollbild verschachtelte erste und zweite Teilbilder besitzen, wobei das Verfahren die folgenden Schritte enthält: (a) Empfangen einer Sequenz von Vollbildern von Videodaten und (b) Separieren der Daten für jedes Vollbild in dessen erste und zweite Teilbilder, dadurch gekennzeichnet, daß das Verfahren ferner die folgenden Schritte enthält:
  • (c) Ableiten eines oder mehrerer erster Bewegungsvektoren (FMV), wovon jeder einem jeweiligen Block von Pixeldaten des ersten Teilbildes eines momentanen Vollbildes (Ei(t)) und einem entsprechenden Block von Pixeldaten des zweiten Teilbildes des momentanen Vollbildes (Oc1(t)) zugeordnet ist;
  • (d) Ableiten eines oder mehrerer zweiter Bewegungsvektoren (CMV), wovon jeder einem Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes (Ei(t)) und einem entsprechenden Block von Pixeldaten des ersten Teilbildes des unmittelbar vorhergehenden Vollbildes (Ec1(t-1)) zugeordnet ist;
  • (e) Speichern des zweiten Teilbildes des momentanen Vollbildes (Oc1(t)), des ersten Teilbildes des momentanen Vollbildes (E1(t)), des ersten Teilbildes des unmittelbar vorhergehenden Vollbildes (Ec1(t-1)), eines oder mehrerer erster Bewegungsvektoren, die im Schritt (c) abgeleitet wurden, sowie eines oder mehrerer zweiter Bewegungsvektoren, die im Schritt (d) abgeleitet wurden;
  • (f) Bestimmen von Informationen bezüglich des besten Modus aus dem einen oder den mehreren gespeicherten ersten Bewegungsvektoren und/oder dem einen oder den mehreren gespeicherten zweiten Bewegungsvektoren, um einen oder mehrere Blöcke von Pixeldaten vorherzusagen, wovon jeder einem entsprechenden gespeicherten ersten oder zweiten Bewegungsvektor zugeordnet ist und wovon jeder den geringsten Pixelfehler im Vergleich zum entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes besitzt;
  • (g) Bestimmen von Pixelfehlerdaten, die irgendeinen Pixelfehler zwischen dem einen oder den mehreren vorhergesagten Blöcken von Pixeldaten und dem einen oder den mehreren entsprechenden Blöcken von Pixeldaten des ersten Teilbildes des momentanen Vollbildes repräsentieren; und
  • (h) Erzeugen von Signalen, die das zweite Teilbild des momentanen Vollbildes, die Bewegungsvektordaten bezüglich des besten Modus und die Pixelfehlerdaten repräsentieren.
  • Gemäß einem dritten Aspekt der Erfindung wird ein Decodierungssystem für codierte Videodaten geschaffen, die eine Sequenz von Vollbildern von Videobildern repräsentieren, wobei die Videodaten für jedes Vollbild erste und zweite verschachtelte Teilbilder besitzen, dadurch gekennzeichnet, daß das System enthält:
  • (a) eine Eingangsschaltung, die codierte Videodaten empfängt und die codierten Daten für jedes Vollbild in (i) erste Bewegungsvektordaten, die einem oder mehreren Blöcken von Pixeldaten des zweiten Teilbildes des momentanen Vollbildes (Oc(t)) und einem oder mehreren entsprechenden Blöcken von Pixeldaten eines ersten Teilbildes des momentanen Vollbildes (Ec(t)) zugeordnet sind, (ii) zweite Bewegungsvektordaten, die, sofern vorhanden, einem oder mehreren Blöcken von Pixeldaten des ersten Teilbildes eines unmittelbar vorhergehenden Vollbildes (Ec1(t-1)) und einem oder mehreren entsprechenden Blöcken von Pixeldaten eines ersten Teilbildes des momentanen Vollbildes zugeordnet sind, (iii) Pixelfehlerdaten, die irgendeinen Pixelfehler in jedem Block von Pixeldaten, der den ersten und/oder zweiten Bewegungsvektordaten zugeordnet ist, im Vergleich zu dem entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes (Ec(t)) repräsentieren, sowie (iv) das zweite Teilbild des momentanen Vollbildes separiert;
  • (b) eine Blockauswahleinrichtung, die die ersten und zweiten Bewegungsvektordaten von der Eingangsschaltung empfängt und einen oder mehrere Blöcke von Pixeldaten des zweiten Teilbildes des momentanen Vollbildes und/oder einen oder mehrere Blöcke von Pixeldaten des ersten Teilbildes eines unmittelbar vorhergehenden Vollbildes, die den empfangenen ersten bzw. zweiten Vektordaten zugeordnet sind, auswählt;
  • (c) einen Blockprozessor, der den einen oder die mehreren ausgewählten Blöcke von Pixeldaten empfängt, die von der Blockauswahleinrichtung ausgewählt werden, und einen oder mehrere der empfangenen Blöcke von Pixeldaten bestimmt, wovon jeder den niedrigsten Pixelfehler im Vergleich zu dem entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes besitzt;
  • (d) einen Blockaddierer, der den einen oder die mehreren Blöcke von Pixeldaten, die vom Blockprozessor bestimmt werden, sowie die Pixelfehlerdaten für denselben Block oder dieselben mehreren Blöcke von Pixeldaten empfängt und ein vorhergesagtes erstes Teilbild des momentanen Vollbildes (Ec1(t)) erzeugt; und
  • (e) einen Vollbildgenerator, der das vorhergesagte erste Teilbild des momentanen Vollbildes und das zweite Teilbild des momentanen Vollbildes empfängt und das momentane Vollbild von Videobilddaten erzeugt.
  • Gemäß einem vierten Aspekt der Erfindung wird ein Decodierungsverfahren für codierte Videodaten geschaffen, die eine Sequenz von Vollbildern von Videobildern repräsentieren, wobei die Videodaten für jedes Vollbild erste und zweite verschachtelte Teilbilder besitzen, wobei das Verfahren den folgenden Schritt enthält: (a) Empfangen codierter Videodaten für aufeinanderfolgende Vollbilder, dadurch gekennzeichnet, daß das Verfahren ferner die Schritte enthält:
  • (b) Separieren der codierten Daten für jedes Vollbild in (i) erste Bewegungsvektordaten, die, sofern vorhanden, einem oder mehreren Blöcken von Pixeldaten des zweiten Teilbildes eines momentanen Vollbildes (Oc(t)) und einem oder mehreren entsprechenden Blöcken von Pixeldaten eines ersten Teilbildes des momentanen Vollbildes (Ec(t)) zugeordnet sind, (ii) zweite Bewegungsvektordaten, die, sofern vorhanden, einem oder mehreren Blöcken von Pixeldaten des ersten Teilbildes eines unmittelbar vorhergehenden Vollbildes (Ec1(t-1)) und einem oder mehreren entsprechenden Blöcken von Pixeldaten des ersten Teilbildes des momentanen Vollbildes zugeordnet sind, (iii) Pixelfehlerdaten, die irgendeinen Pixelfehler in jedem Block von Pixeldaten, die den ersten und/oder zweiten Bewegungsvektordaten zugeordnet sind, im Vergleich zu dem entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes (Ec(t)) repräsentieren, und (iv) das zweite Teilbild des momentanen Vollbildes;
  • (c) Auswählen eines oder mehrerer Blöcke von Pixeldaten des zweiten Teilbildes des momentanen Vollbildes, die den ersten Bewegungsvektordaten zugeordnet sind, und/oder eines oder mehrerer Blöcke von Pixeldaten des ersten Teilbildes eines unmittelbar vorhergehenden Vollbildes, die den zweiten Bewegungsvektordaten zugeordneten Bewegungsvektordaten zugeordnet sind;
  • (d) Ableiten aus dem Block oder den Blöcken von Pixeldaten, die im Schritt (c) ausgewählt werden, eines oder mehrerer Blöcke von Pixeldaten, wovon jeder den niedrigsten Pixelfehler im Vergleich zu dem entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes besitzt;
  • (e) Erzeugen eines vorhergesagten ersten Teilbildes des momentanen Vollbildes (Ec1(t)) aus dem einen oder den mehreren Blöcken von Pixeldaten, die im Schritt (d) abgeleitet werden, und aus den Pixelfehlerdaten für denselben Block oder dieselben mehreren Blöcke von Pixeldaten; und
  • (f) Erzeugen des momentanen Vollbildes von Videobilddaten aus dem vorhergesagten ersten Teilbild des momentanen Vollbildes und dem zweiten Teilbild des momentanen Vollbildes, die aus den empfangenen codierten Videodaten separiert werden.
  • Zum besseren Verständnis der vorliegenden Erfindung gemeinsam mit anderen und weiteren Aufgaben wird Bezug auf die folgende Beschreibung genommen.
  • Kurzbeschreibung der Zeichnung
  • Fig. 1 zeigt ein Systemschaltbild eines Codierers in Übereinstimmung mit der Erfindung.
  • Fig. 2 zeigt einen Teilbildteiler, der in dem Codierer nach Fig. 1 nutzbar ist.
  • Fig. 3 zeigt einen linearen Interpolierer, der in dem Codierer nach Fig. 1 nutzbar ist.
  • Fig. 4 zeigt einen Blockdaten-Codierer, der in dem Codierer nach Fig. 1 nutzbar ist.
  • Fig. 5 zeigt eine zum Codieren von Blockdaten verwendete Tabelle für gleichmäßige Quantisierung.
  • Fig. 6 zeigt ein Zickzack-Abtastdiagramm eines 8 x 8-DCT- Blocks.
  • Fig. 7 zeigt einen Blockdaten-Decodierer, der in dem Codierer nach Fig. 1 und dem Decodierer nach Fig. 13 nutzbar ist.
  • Fig. 8 zeigt einen Generator für den besten Modus, der in dem Codierer nach Fig. 1 nutzbar ist.
  • Fig. 9 zeigt einen Fehlergenerator, der in dem Generator für den besten Modus nach Fig. 8 nutzbar ist.
  • Fig. 10 zeigt einen Fehlermittelwertgenerator, der in dem Generator für den besten Modus nach Fig. 8 nutzbar ist.
  • Fig. 11 zeigt einen Komparator, der in dem Generator für den besten Modus nach Fig. 8 nutzbar ist.
  • Fig. 12 zeigt eine Blockauswahleinrichtung, die in dem Generator für den besten Modus nach Fig. 8 nutzbar ist.
  • Fig. 13 ist ein Systemschaltbild eines Decodierers gemäß der Erfindung.
  • Fig. 14 ist eine Blockkoppeleinheit, die in dem Decodierer nach Fig. 13 nutzbar ist.
  • Fig. 15(a) zeigt eine alternative Anordnung eines Generators für den besten Modus, der in dem Codierer nach Fig. 1 nutzbar ist.
  • Fig. 15(b) zeigt eine Koppeleinheit, die dem Generator für den besten Modus nach Fig. 15(a) entspricht.
  • Beschreibung der Erfindung
  • In Fig. 1 ist ein System zum Codieren abwechselnder Teilbilder einer verschachtelten Videosequenz zur Übertragung an einen Decodierer gezeigt. Daher ist das in Fig. 1 gezeigte System für Videovollbilder, die aus aufeinanderfolgenden ungeraden und geraden Teilbildern von Videodaten bestehen, zum Codieren z. B. der geraden Teilbilder verwendbar.
  • Im folgenden bezieht sich:
  • "Teilbild" auf ein unvollständiges Vollbild von Daten, z. B. die abwechselnden Teilbilder eines NTSC-Fernsehsignals;
  • "Vollbild" auf ein vollständiges Vollbild von Daten, z. B. auf zwei zusammengesetzte Teilbilder von NTSC- Daten;
  • In Fig. 1 enthält der Codierer eine als Endgerät 20 gezeigte Eingabeeinrichtung zum Empfang einer verschachtelten Videosequenz und eine als Teilbildteiler 22 gezeigte Separatoreinrichtung, um ungerade Teilbilder von Daten O(t) von geraden Teilbildern von Daten E(t) zu trennen. Fig. 2 ist eine Veranschaulichung eines geeigneten Teilbildteilers. Ein als DMUX-Einheit 25 gezeigter Demultiplexer nimmt eine verschachtelte Videosequenz und verwendet einen Zähler als ein Steuersignal. Wenn das Ausgangssignal des Zählers gerade ist, wird der "gerade" Ausgangsport des 2-auf-1-DMUX ausgewählt, andernfalls wird der "ungerade" Ausgangsport ausgewählt.
  • Die Daten des ungeraden Teilbildes werden durch die Einheit 21 codiert und für die Modulatoreinheit 68 bereitgestellt. Die codierten Daten des ungeraden Teilbildes werden durch die Einheit 23 decodiert. Auf diese Weise werden irgendwelche während des Blockanpassungsprozesses durch das Codieren und Decodieren eingeführten Fehler berücksichtigt. Die decodierten Daten des ungeraden Teilbildes werden mit Oc(t) bezeichnet.
  • Eine Verzögerungskopplungseinrichtung mit den Verzögerungseinheiten 19 und 24 ist so angeordnet, daß dann, wenn an einem Punkt 26 für Referenztaktzwecke ein mit Oc(t) bezeichnetes ungerades Teilbild von Daten bereitgestellt wird, das mit Oc(t-1) bezeichnete vorhergehende ungerade Teilbild von Daten und das gerade Teilbild von Daten E(t) gleichzeitig an den Punkten 28 und 30 anliegen. Damit sind die Teilbilder Oc(t), Oc(t-1) und E(t) zu irgendeiner gegebenen Iteration des Systembetriebs gleichzeitig bei 26, 28 bzw. 30 verfügbar.
  • Der Codierer enthält auch eine als lineare Interpolatoren (LI) 32, 34 und 36, die gesonderte Kanäle einer einzigen Interpolationseinheit bilden können, gezeigte Interpolationseinrichtung, die das näherungsweise Ausfüllen der Pixeldaten der fehlenden Zeilen jedes einzelnen Teilbildes von Daten durch Interpolation der Pixeldaten an den entsprechenden Stellen in der vorhergehenden und der nachfolgenden Zeile des gleichen einzelnen Teilbildes bewirkt. Dies schafft vollständige Vollbilder abwechselnder Zeilen tatsächlicher Eingangspixeldaten und verzahnter Zeilen interpolierter Daten mit der Vollbildrate. Auf diese interpolierten Teilbilder wird als verbesserte Teilbilder Bezug genommen. Auch eine nichtlineare Interpolation ist möglich. Wie gezeigt, empfängt die Einheit 32 die Eingangsdaten Oc(t) des momentanen ungeraden Teilbildes über die Codierungseinheit 21 und die Decodierungseinheit 23 von der Separatoreinrichtung, und ihr Ausgangssignal ist eine verbesserte Teilbildversion Oci(t). Ähnlich empfängt die Einheit 34 das vergangene ungerade Teilbild Oc(t-1) von der Verzögerungseinheit 24, und ihr Ausgangssignal ist eine verbesserte Teilbildversion Oci(t-1). Ähnlich empfängt die Interpolationseinheit 36 das momentane gerade Teilbild von Eingangsdaten E(t) von dem Separator, und ihr Ausgangssignal ist eine verbesserte Teilbildversion Ei(t). Die Interpolationseinrichtung stellt Oci(t), Oci(t-1) und Ei(t) für die Speicherbank 50 und die Blockanpassungseinrichtung bereit.
  • Mit Bezug auf Fig. 3 ist eine Ausführungsform einer für die Einheiten 32, 34 und 36 geeigneten Interpolationsschaltung gezeigt. In Fig. 3 werden lineare Interpolationen zwischen zwei Abtastzeilen eines Teilbildes zum Erzeugen der fehlenden Zwischenzeilen ausgeführt. Dies geschieht für jedes fehlende Pixel durch eine Volladdierereinrichtung 31 und ein Schieberegister 29. Wie gezeigt, wird das Eingangsteilbild, das nur gerade oder ungerade Zeilen eines Vollbildes enthält, in den Teilbildpuffer 35 eingegeben. Unter der Steuerung der von der Zähleinrichtung gelieferten Werte werden zwei Pixel, die sich auf zwei aufeinanderfolgenden Zeilen (d. h. der Zeile vor und nach der Stelle der fehlenden Zeile) an der gleichen horizontalen Stelle befinden, ausgewählt und getrennt in den zwei Registern 37 und 39 gespeichert. Die Werte der beiden Pixel werden dann in der Einrichtung 31 addiert und in dem Schieberegister 29 um ein Bit nach rechts verschoben, was äquivalent zu einer Division der Summe der zwei Pixelwerte durch einen Faktor zwei ist. Der gleiche Prozeß wird der Reihe nach auf jedes fehlende Pixel des Teilbildes angewandt. In der Praxis wird diese Abfolge von Operationen unter Verwendung zusätzlicher Addierer- und Registerkombinationen parallel ausgeführt. Das Ausgangssignal der Einheiten 32, 34 und 36 sind linear interpolierte verbesserte Teilbilder. Wie gezeigt, führt die Eingabe von Oc(t) an die Einheit 32 zu dem interpolierten Ausgangssignal Oci(t), und ähnlich führt das Interpolieren des Eingangssignals Oc(t-1) zu dem interpolierten Ausgangssignal Oci(t-1), und das Interpolieren von E(t) führt zu dem interpolierten Ausgangssignal Ei(t).
  • Die als Vorwärts-, Rückwärts- und Gleichlagen-Blockanpassungseinheiten (BM-Einheiten) 40, 42 und 44 gezeigte Blockanpassungseinrichtung kann auch aus getrennten Kanälen einer einzigen Einheit bestehen. Die Blockanpassungseinheit empfängt die verbesserten Teilbilder von Daten Ei(t), Oci(t), Oci(t-1) und Eci(t-1) als Eingangssignal. Das vergangene gerade Teilbild von Daten Eci(t-1) wird von der Speicherbank 50 empfangen, wo es gespeichert wurde, nachdem es in der vorherigen Iteration des Codierers abgeleitet worden war.
  • Die Blockanpassungseinrichtung sucht für jeden gegebenen Block von Pixeln in Ei(t) die am besten an den gegebenen Block Ei(t) angepaßten entsprechenden Blöcke in Oci(t), Cci(t-1) und Eci(t-1). Auf diese kann als die am besten vorwärts, rückwärts und gleichliegend angepaßten Blöcke Bezug genommen werden. Die Blockanpassungseinrichtung berechnet dann zu jedem der erkannten am besten angepaßten Blöcke einen geeigneten Bewegungsvektor und gibt jene Daten an die Speicherbank 50 aus. Damit ist "fmv" der entsprechende Bewegungsvektor, der anzeigt, welcher Block in Oci(t) am besten an den entsprechenden Block Ei(t) angepaßt ist. Ähnlich ist "bmv" der entsprechende Bewegungsvektor, der anzeigt, welcher Block in Oci(t-1) am besten an den entsprechenden Block in Ei(t) angepaßt ist. Schließlich stellt "cmv" den entsprechenden Bewegungsvektor dar, der anzeigt, welcher Block in Eci(t-1) am besten an den entsprechenden Block in Ei(t) angepaßt ist. In der vorliegenden Ausführungsform werden für die bewegungskompensierte Blockanpassung Blöcke zu 16 x 16 Pixeln verwendet. Es sind Blockanpassungstechniken bekannt, und die Blockanpassungseinheiten 40, 42 und 44 können dementsprechend eine wie in dem US-Patent 4.897.720 von Wu und Yang gezeigte Blockanpassung verwenden.
  • Der Zähler 52 und die Auswahleinrichtung 54 für die beste Anpassung verwenden die Bewegungsvektorinformationen, um für die am besten angepaßten Blöcke in der Speicherbank 50 entsprechend dem Block Ei(t), an den sie angepaßt werden, Adressen zu erzeugen.
  • Die Speicherbank 50 kann aus Schreib-Lese-Speicher-Chips (RAM-Chips) bestehen, die groß genug sein müssen, um fünf M x N-Bilder (M und N sind die durch Pixel ausgedrückte Breite und Höhe eines Bildes) und drei Sätze von N/16 x M/16 Bewegungsvektoren zu halten.
  • Der Generator für den besten Modus 60 empfängt als Eingangssignal jeden Block von Ei(t) und die von der Blockanpassungseinrichtung gefundenen vorwärts, rückwärts und gleichliegend am besten angepaßten Blöcke. Gleichzeitig empfängt die als Einheit 62 gezeigte Bewegungsvektor Wähleinrichtung die Bewegungsvektorwerte für jeden der am besten angepaßten Blöcke. Der Generator für den besten Modus bestimmt, welcher der am besten angepaßten Blöcke an den entsprechenden Block Ei(t) am besten angepaßt ist. Diese verschiedenen Vergleiche sind als Modi bekannt. Auf der Grundlage eines Vergleichs eines spezifischen Blocks von Pixeldaten von Ei(t) mit den am besten angepaßten Blöcken der zukünftigen ungeraden, vergangenen ungeraden bzw. vergangenen geraden Pixeldaten kann es daher einen Vorwärtsmodus, einen Rückwärtsmodus und einen Gleichlagenmodus geben. Der Generator für den besten Modus kann auch Blöcke erzeugen und vergleichen, die Mittelwerte zweier oder mehrerer der von der Blockanpaßeinrichtung empfangenen am besten angepaßten Blöcke sind. Diese gemittelten Modi können auf irgendeiner gemittelten Kombination der am besten angepaßten Blöcke beruhen. In bestimmten Anwendungen haben sich gemittelte Modi als Kombinationen der vergangenen geraden und der zukünftigen ungeraden Blöcke sowie der vergangenen und der zukünftigen ungeraden Blöcke von deren entsprechenden verbesserten Teilbildern von Pixeldaten am besten nutzbar erwiesen. Der Generator für den besten Modus wählt dann aus jenen Modi den auch als Block für den besten Modus bekannten insgesamt am besten angepaßten Block aus.
  • Nach Auswahl des Blocks für den besten Modus erzeugt der Generator für den besten Modus drei verschiedene Ausgangssignale; den Block für den besten Modus, einen Differenzblock und ein Signal für die Bewegungsvektor- Wähleinrichtung 62 und die Modulatoreinheit 68, das anzeigt, welcher Modus ausgewählt wurde. Die Bewegungsvektor-Wähleinrichtung 62 sendet dann die Bewegungsvektorinformationen bezüglich des entsprechenden Blocks oder (im Fall eines gemittelten Modus) der entsprechenden Blöcke an den Bewegungsvektor-Codierer 64. Die Einheit 64 codiert die Bewegungsvektordaten und stellt sie für den Modulator 68 bereit. Der Bewegungsvektor-Codierer verwendet eine Codierung mit variabler Länge (VLC), die auf einer Suchtabelle beruht, in der die Binärcodes für alle möglichen Bewegungsvektoren gespeichert sind. Die Suchtabelle kann nutzerangepaßt definiert werden, wobei die vorliegende Erfindung jedoch die gleiche verwendet, die in dem momentanen MPEG-Vorschlag verwendet wird.
  • Der Differenzblock ist das Ergebnis einer pixelweisen Subtraktion der Werte des Blocks des insgesamt besten 1 Modus von dem Block in Ei (t). Der Differenzblock wird dann durch den Blockdaten-Codierer 41 codiert und für die Modulatoreinheit 68 bereitgestellt. Der Datencodierer 41 ist ausführlicher in Fig. 4 gezeigt. Die Einheit 48 setzt die von dem Generator für den besten Modus empfangenen 16 x 16-Blöcke in vier 8 x 8-Blöcke um. Die DCT-Einheit 43 wendet auf die Differenzblockdaten eine diskrete Kosinustransformation an. Die Transformation wird mit 8 x 8 großen Blöcken ausgeführt. Die diskrete 8 x 8- Kosinustransformation ist definiert durch:
  • wobei x(i,j), i,j = 0,...,7 der Pixelwert, X(u,v), u,v = 0,...,7 der transformierte Koeffizient,
  • und C(u) = 1, u,v = 1,...,7 ist. Die DCT ist im Stand der Technik wohlbekannt, und es sind zu diesem Zweck IC-Chips verfügbar.
  • Um eine höhere Codierungseffizienz zu erreichen, werden die DCT-Koeffizienten durch einen in Fig. 5 gezeigten gleichmäßigen Quantisierer mit einer festen Schrittweite S quantisiert. Die in einer Quantisierungstabelle gespeicherten Werte von S unterscheiden sich typischerweise von einem Koeffizienten zum anderen. Während Fig. 5 eine lineare Quantisierung zeigt, ist auch eine nichtlineare Quantisierung möglich. Im vorliegenden Fall wird als Quantisierungstabelle der momentane MPEG-Standard verwendet. Es können aber auch andere Quantisierungstabellen Verwendung finden. Nach der Quantisierung enthalten die DCT-Blöcke eine große Menge von Null-Koeffizienten. Um den Durchlauf von Null-Koeffizienten zu maximieren und dadurch eine höhere Datenkompression zu erwirken, können auf die DCT-Blöcke die bekannten Techniken der Zickzack- Abtastung angewandt werden. Die Zickzack-Abtastung ist durch eine in Fig. 6 gezeigte Suchtabelle verwirklicht, die die Koordinaten der DCT-Koeffizientenblöcke auf Werte zwischen 0 und 63 abbildet. Dies stellt die Ordnung der Codierung mit variabler Länge dar. Um die quantisierten DCT-Koeffizienten in Binärcodes umzusetzen, kann dann eine bekannte Form der Huffman-Codierung angewandt werden. Obgleich auch andere Tabellen verwendet werden können, wird für diese Zwecke im vorliegenden Fall die MPEG-VLC-Tabelle verwendet.
  • Die codierten Differenz-Blockdaten werden auch für den in Fig. 7 gezeigten Blockdaten-Decodierer 58 bereitgestellt. Der Blockdaten-Decodierer führt die entgegengesetzten Operationen des Codierers in der umgekehrten Reihenfolge aus. Zuerst werden die codierten Daten Huffmann-decodiert, und danach wird auf sie eine Ent-Zickzack-Abtastung angewandt. Danach werden die Daten entquantisiert, und unter Verwendung bekannter Techniken wird auf sie eine inverse diskrete Kosinustransformation angewandt. Der Decodierer verwendet die gleichen Tabellen wie der Codierer. Das Ausgangssignal des Blockdaten-Decodierers 58 wird für den Blockaddierer 56 bereitgestellt. Der Blockaddierer 56 empfängt auch von dem Modusgenerator den Block für den besten Modus. Um das gleiche gerade Teilbild zu erzeugen, das von dem Decodierer wiederhergestellt wird, addiert er den Differenzblock zu dem Block für den besten Modus. Jenes gerade Teilbild wird dann für die Speicherbank 50 bereitgestellt, wo es während der nächsten Iteration des Systems von der Gleichlagenblock- Anpassungseinheit 44 als das gleichliegende vergangene gerade Teilbild verwendet wird.
  • Die Modulatoreinheit 68 kombiniert dann die vier von ihr empfangenen Datensätze (die Daten des ungeraden Teilbildes, die codierten Bewegungsvektordaten, die codierten Differenzblockdaten und die Signaldaten für den besten Modus) und erzeugt ein entsprechendes Signal für das Endgerät 70. Von dort aus können die Daten an einen entsprechenden Decodierer gesendet werden.
  • Fig. 8 zeigt eine geeignete Ausführungsform des Generators 60 für den besten Modus. Der Generator für den besten Modus enthält vier Fehlergeneratoren, die als Vorwärts-Fehlergenerator (FEG) 92, Mittelwert-Fehlergenerator (FCEG) 94, Mittelwert-Fehlergenerator (BFEG) 96 und Gleichlagen-Fehlergenerator (CEG) 98 gezeigt sind. Als Eingangssignal empfangen die Fehlergeneratoren einen Block von Ei(t) und die entsprechenden am besten angepaßten Blöcke.
  • Der Vorwärts-Fehlergenerator FEG vergleicht den entsprechenden Block in Ei(t) mit dem vorwärts am besten angepaßten Block. Der Gleichlagen-Fehlergenerator CEG vergleicht den entsprechenden Block in Ei(t) mit dem am besten angepaßten gleichliegenden Block.
  • Die Mittelwert-Fehlergeneratoren empfangen zwei oder mehr am besten angepaßte Blöcke, die sie miteinander mitteln, um einen Mittelwertblock zu erzeugen. Dieser Mittelwertblock wird dann mit dem entsprechenden Block in Ei(t) verglichen. Der Mittelwert-Fehlergenerator BFEG erzeugt daher einen Block, welcher der Mittelwert des rückwärts am besten angepaßten Blocks und des vorwärts am besten angepaßten Blocks ist. Ähnlich erzeugt der Mittelwert- Fehlergenerator FCEG einen Block, der der Mittelwert des vorwärts am besten angepaßten Blocks und des am besten angepaßten gleichliegenden Blocks ist. Um die Mittelung auszuführen, können die Pixelwerte von den zwei Blöcken auf einer pixelweisen Basis addiert werden und jeder daraus resultierende Pixelwert durch einen Faktor zwei dividiert werden (d. h. Division jedes Wertes auf die Hälfte).
  • Die Fehlergeneratoren erzeugen aus diesen Eingangssignalen drei Ausgangssignale; einen Vorhersageblock, einen Differenzblock und einen absoluten Fehler.
  • Der Vorhersageblock ist der Block, den der Fehlergenerator mit dem entsprechenden Block in Ei(t) vergleicht. Im Fall von FEG oder CEG ist der Vorhersageblock daher gerade der von den Blockanpassungseinheiten empfangene am besten angepaßte Block. Im Fall der Mittelwert-Fehlergeneratoren ist der Vorhersageblock der Mittelwert der zwei oder mehr am besten angepaßten Blöcke. Die Vorhersageblöcke werden auf die Auswahleinrichtung 93 für den Vorhersageblock ausgegeben.
  • Der Differenzblock wird auf einer pixelweisen Basis durch Subtrahieren der Werte eines Pixels in einem Block von dem Wert des entsprechenden Pixels in dem anderen Block berechnet. Dieser Wert dieser Differenz wird dann einem entsprechenden Pixel in dem Differenzblock zugeordnet. Die Summe des Absolutwertes von allen diesen Pixeln in dem Differenzblock ist der absolute Fehler.
  • Die Differenzblöcke werden für die Differenzblock-Aus wahleinheit 95 bereitgestellt. Die absoluten Fehler werden an die Komparatoreinheit 97 ausgegeben. Der Komparator wählt auf der Grundlage der absoluten Fehler den besten Modus aus. Typischerweise ist dies der Modus mit dem geringsten absoluten Fehler, jedoch ist eine andere Auswahl möglich. Dieser wird als der beste Modus bezeichnet. Der Komparator erzeugt dann ein Signal, das der Differenzblock-Auswahleinheit 95, der Modulatoreinheit 68, der Bewegungsvektor-Wähleinheit 62 und der Auswahleinrichtung 93 für den Vorhersageblock den besten Modus anzeigt. Beim Empfang des Signals sendet die Differenzblock-Wählenrichtung den entsprechenden Differenzblock an den Blockdaten-Codierer 41, und die Vorhersageblock- Wähleinrichtung sendet den entsprechenden Vorhersageblock (den Block für den besten Modus) an den Blockaddierer 56.
  • In Fig. 9 ist eine Ausführungsform einer für den Vorwärts-Fehlergenerator FEG oder den Gleichlagen-Fehlergenerator CEG geeigneten Fehlergeneratorschaltung gezeigt. Die Pufferblockeinheit 67 und die Pufferblockeinheit 69 empfangen in Fig. 9 einen Block von Ei(t) und den am besten angepaßten Block von entweder Oci(t) oder Eci(t-1). Die Subtraktionseinheit 51 berechnet die Differenz der Werte von jedem Satz der einander entsprechenden Pixel in den zwei Blöcken und ordnet jenen Wert einem entsprechenden Pixelwert in dem Blockpuffer 55 zu. Dieser ist als der Differenzblock bekannt. Der Absolutwertgenerator 53 setzt den Wert der Differenz für jeden Pixelsatz in einen Absolutwert um und stellt jene Informationen für die Addierereinheit 57 bereit. Um einen absoluten Fehlerwert zu erzeugen, summiert die Addierereinheit 57 alle Absolutwerte für die Differenzen der zwei Blöcke, die verglichen werden.
  • Fig. 10 zeigt eine Ausführungsform eines geeigneten Fehlermittelwertgenerators. Der Blockpuffer 78 empfängt einen Block in Ei(t). Die Blockpuffer 79 und 83 empfangen von den Teilbildern, über die zum Erzeugen eines Blocks gemittelt wird, die am besten angepaßten Blöcke. Im Fall des Fehlergenerators BFEG werden die am besten angepaßten Blöcke von Oci(t-1) und Oci(t) verwendet. Im Fall des Fehlermittelwertgenerators FCEG werden die am besten angepaßten Blöcke von Oci(t) und Eci(t-1) verwendet. Um einen mittleren Block zu erzeugen, werden die Werte jedes der entsprechenden Pixel in jedem der am besten angepaßten Blöcke addiert und durch zwei dividiert. Dies wird durch die Einheit 81 erreicht. Dieser mittlere Block wird dann durch die Subtraktionseinheit 77 von dem entsprechenden Block in Ei(t) subtrahiert. In der gleichen Weise wie die anderen Fehlergeneratoren werden ein Differenzblock und ein Fehlerabsolutwert erzeugt.
  • In Fig. 11 ist eine geeignete Ausführungsform der Komparatoreinheit 97 gezeigt. Die Minimumsentscheidungseinheit 74 wählt aus den vier Absolutfehler-Eingangswerten den geringsten Wert aus und gibt ein entsprechendes Signal für den besten Modus aus. Während die momentane Ausführungsform den Modus mit dem geringstmöglichen Absolutfehler auswählt, sind auch andere Entscheidungskriterien verfügbar.
  • In Fig. 12 ist eine geeignete Ausführungsform einer Differenzblock-Wähleinrichtung gezeigt. Die Multiplexereinheit 73 empfängt die vier Differenzblöcke als Eingangssignal. Als Antwort auf das Signal für den besten Modus gibt die Einheit 73 den entsprechenden Differenzblock aus.
  • Decodiererbeschreibung
  • Da das verwirklichte Codierungsschema sehr unsymmetrisch ist, ist der Decodierer einfacher als der Codierer. Zum großen Teil beruht dies auf der Tatsache, daß der Decodierer keine Blockanpassung vornehmen muß oder keinen besten Modus zu bestimmen braucht.
  • In Fig. 13 enthält der Decodierer eine als Endgerät 80 gezeigte Eingabeeinrichtung zum Empfang codierter Daten. Eine als Demodulatoreinheit 82 gezeigte Demodulatoreinrichtung trennt die codierten Daten in vier Bitströme: Stellensignale in der Form eines Bewegungsvektor- Bitstroms, einen Bitstrom für das Signal für den besten Modus, Pixelfehlersignale in Form eines Differenzblock- Bitstroms und einen Bitstrom für die Datensignale der ungeraden Teilbilder.
  • Der erste Bitstrom mit den Bewegungsvektordaten wird durch einen Bewegungsvektordecodierer 84 decodiert, der die gleiche VLC-Tabelle verwendet, die auch in dem Codierer verwendet wird. Der Bewegungsvektordecodierer 84 teilt den Bitstrom in Abschnitte, die einen oder zwei verschiedene Bewegungsvektoren darstellen. Unter Verwendung der VLC-Tabelle schafft der Decodierer die entsprechenden Bewegungsvektoren. Die Bewegungsvektoren stellen die Verschiebung der am besten angepaßten Blöcke von den Originalblöcken Ei(t) dar. Der Bewegungsvektordecodierer schafft die Bewegungsvektoren zum Adressieren der Generatoreinheit 88. Der Adressengenerator empfängt auch von der Demodulatoreinheit 82 das Signal für den besten Modus. Der Adressengenerator verwendet die decodierten Bewegungsvektoren und das Signal für den besten Modus, um in Abhängigkeit von den spezifischen Bewegungsvektorsignalen und dem Signal für den besten Modus Speicheradressen eines oder mehrerer der am besten zukünftig angepaßten ungeraden, vergangen angepaßten ungeraden und vergangen angepaßten geraden Blöcke zu erzeugen. Diese Blöcke werden manchmal als die vorwärts, rückwärts bzw. gleichliegend am besten angepaßten Blöcke bezeichnet.
  • In einer alternativen Anordnung müssen nur drei Bitströme gesendet werden. In dieser Anordnung würden das Signal für den besten Modus und der Bewegungsvektor in einem Adressenbitstrom kombiniert, der beschreiben würde, wo die entsprechenden am besten angepaßten Blöcke im Speicher des Empfängers gefunden werden können.
  • Eine als Vorhersageblockgenerator 92 gezeigte Blockkoppeleinrichtung empfängt von der als Speicherbank 86 gezeigten Speichereinrichtung die vorwärts, rückwärts und gleichliegend am besten angepaßten Blöcke. Sie empfängt auch von dem Demodulator 82 das Signal für den besten Modus. Die Einheit 92 erzeugt dann den gleichen Modusdatenblock, der in dem Codierer identifiziert wurde. Der Modusdatenblock wird dann für die Blockaddierereinheit 87 bereitgestellt. Genauer ist mit Bezug auf Fig. 14 eine geeignete Ausführungsform eines Blockgenerators 85 gezeigt. Der am besten angepaßte Block oder die am besten angepaßten Blöcke, die den Datenblock für den besten Modus darstellen, werden von der Speicherbank 86 in den entsprechenden Blockpuffern empfangen. In dieser Ausführungsform werden die zwei gemittelten Modi durch Einheiten 102 und 103 erzeugt. Die zwei anderen Modi, die bloß am besten angepaßte Blöcke verwenden, sind nach Empfang in den entsprechenden Puffern bereits verfügbar. Im Betrieb werden für die Blockgeneratoreinheit 92 nur der am besten angepaßten Block oder die am besten angepaßten Blöcke bereitgestellt, die benötigt werden, um den gewünschten Block für den besten Modus zu erzeugen. Wenn daher entweder der zukünftige ungerade Block oder der vergangene gerade Block den Block für den besten Modus darstellt, wird nur der entsprechende gewünschte Block von der Einheit 92 empfangen, und er wird von der Einheit 92 an die Blockaddierereinheit 87 gekoppelt. Ist jedoch der Datenblock, der den Mittelwert des vergangenen geraden Blocks und des zukünftigen ungeraden Blocks darstellt, der Block für den besten Modus, werden jene Blöcke von dem Speicher für die Puffer 100 bzw. 101 zur Mittelung in der Einheit 103 und Kopplung an die Blockaddierereinheit 87 bereitgestellt. Der Betrieb über die Puffer 99 und 100 und die Einheit 102 verläuft ähnlich, wenn der Block für den besten Modus den Mittelwert des am besten an das vergangene und das zukünftige ungerade Teilbild angepaßten Blocks darstellt. Wie gezeigt, antwortet die Einheit 92 auf das Signal des besten Modus, indem sie die Mittelungsfunktion verwirklicht, jedoch muß die Einheit 92 in anderen Anwendungen nur dazu veranlaßt werden, einfach irgendeinen einzelnen Eingangsblock durchzuleiten und immer dann, wenn zwei Blöcke empfangen werden, als Antwort auf die gleichzeitige Eingabe zweier Blöcke ein gemitteltes Ausgangssignal für die Einheit 87 bereitzustellen. Beim Betrieb der Einheit 92 wird dann der geeignete Modus, wie gezeigt, in die MUX-Einheit 106 geladen, die den entsprechenden Vorhersageblock an die Blockaddierereinheit 87 ausgibt.
  • Die Blockdecodierungseinheit 89 decodiert die Differenzblöcke und stellt dann den Differenzblock für die Blokkaddierereinheit 87 bereit, wo er zu dem einzelnen Datenblock für den besten Modus von der Einheit 92 addiert wird. Genauer wird mit Bezug auf Fig. 7 eine Erläuterung des Decodierers 89 gegeben. Dieser Decodierer ist genauso konstruiert wie die Decodierungseinheit 58 in dem Codierer in Fig. 1. Die Einheiten 59, 61, 63 bzw. 65 führen mit den ankommenden codierten Differenzblockdaten der Reihe nach die folgenden Funktionen aus: Huffman-Decodierung, Ent-Zickzack-Abtastung, Entquantisierung und inverse diskrete Kosinustransformation. Die Einheit 66 baut die vier 8 x 8-Blöcke wieder zu einem 16 x 16-Block zusammen.
  • Die Kombination des Blocks des besten Modus und des Differenzblocks durch die Blockaddierereinheit 87 erzeugt das codierte Teilbild Eci(t). Dieses Teilbild wird dann für die Speicherbank 86 bereitgestellt, wo es zum Neuschaffen des nächsten geraden Teilbildes verwendet werden kann. Es wird auch für die als Einheit 90 gezeigte Weicheneinrichtung bereitgestellt.
  • Der vierte von der Demodulatoreinheit 82 ausgegebene Bitstrom sind die codierten Daten des ungeraden Teilbildes. Diese Daten werden für die Decodierungseinheit 91 bereitgestellt, die eine mit der vorherigen Codierung kompatible Codierung vom MPEG-Typ schaffen kann. Die decodierten Daten des ungeraden Teilbildes werden für den linearen Interpolator 107 bereitgestellt, der in der gleichen Weise wie der lineare Interpolator in dem Codierer arbeitet. Damit wird das verbesserte Teilbild von Daten Oci(t) erzeugt und an die Weicheneinheit 90 und die Speicherbank 86 gesendet. Um die entsprechenden Blöcke für die Blockkoppeleinheit 85 zu erzeugen, verwendet die Speicherbank 86 die in der vorherigen Iteration des Systems erzeugten Pixelteilbilddaten Oci(t) und Oci(t-1) Wie zuvor erwähnt, sind Eci(t) und damit Eci(t-1) auch von einer Ablage in der Speicherbank 86 erhältlich.
  • Die Weicheneinheit 90 läßt sowohl von den geraden als auch von den ungeraden durch sie empfangenen verbesserten Teilbildern von Daten Eci(t) und Oci(t) die Hälfte der Zeilen fallen und kombiniert sie sequentiell, um eine Rekonstruktion der verschachtelten Datensequenz zu schaffen, die ursprünglich in das Endgerät 20 des Codierers eingegeben worden war. Wie in Fig. 13 gezeigt, werden die verschachtelten Videodaten für die Verzögerungseinheit 72 bereitgestellt, um ein Betrachten der Videosequenz zu gestatten.
  • Der Ausdruck "bester Modus" bezeichnet, wie er hier verwendet wird, einen ausgewählten Modus. Normalerweise wird die Modusauswahl vorgenommen, um die an einen Decodierer zu übertragenen Pixelfehlersignale zu minimieren, jedoch wird der Begriff so verwendet, daß er einen Bezug auf irgendeinen für die Verwendung in einer einzelnen Anwendung verfügbaren Modus einschließt.
  • Andere als jene obenbeschriebenen Kombinationen von Modi sind ebenfalls zulässig. Fig. 15(a) zeigt eine Anordnung eines Generators für den besten Modus, die einen anderen Satz von Modi verwendet. Der Generator für den besten Modus aus Fig. 15(a) vergleicht den entsprechenden Block in Ei(t) mit dem am besten zukünftig angepaßten ungeraden Block, dem am besten vergangen angepaßten ungeraden Block, dem am besten vergangen angepaßten geraden Block und mit einem Block, der der Mittelwert des am besten zukünftig angepaßten ungeraden Blocks und des am besten vergangen angepaßten geraden Blocks ist. Die Fehlergeneratoreinheiten 110-113 führen die entsprechenden Vergleiche durch. Die anderen Operationen des Generatorblocks für den besten Modus in Fig. 15(a) sind ähnlich denen des Generatorblocks für den besten Modus in Fig. 8.
  • Fig. 15(b) zeigt eine geeignete Ausführungsform eines Vorhersageblockgenerators, der dem Generator für den besten Modus aus Fig. 15(a) entspricht. Die Einheit 125 erzeugt den Mittelwert des am besten zukünftig angepaßten ungeraden und vergangen angepaßten geraden Blocks, während die Einheiten 121-123, soweit angebracht, die am besten vergangen angepaßten ungeraden, zukünftig angepaßten ungeraden und vergangen angepaßten geraden Blöcke an die Einheit 127 koppeln. Die Einheit 127 gibt den entsprechenden Block als Antwort auf das Signal für den besten Modus aus.
  • Auch andere Anordnungen sind möglich. Ursprüngliche Daten eines ungeraden Teilbildes können selbst dann zu Blockanpassungszwecken verwendet werden, wenn das ungerade Teilbild codiert wird.
  • In einer anderen Anordnung könnte der Generator für den besten Modus Vergleiche anstellen, die nur auf dem vergangenen geraden Teilbild und dem zukünftigen ungeraden Teilbild beruhen. Damit würde der Generator für den besten Modus nur 3 Eingänge benötigen.
  • In einer anderen alternativen Anordnung können die von dem Endgerät 20 empfangenen Daten verschachtelte Daten sein, die zu vollen Vollbildern von Daten komprimiert wurden. In Anordnungen dieses Typs ist die Teilbildverzögerungseinheit 19 nicht erforderlich.
  • Zusammenfassend enthalten die Verfahren und Systeme gemäß der Erfindung verschiedene Betriebsmodi. Als am besten nutzbar haben sich die folgenden vier Modi erwiesen, auf Kosten einer erhöhten Komplexität, zu der eine Mittelung zwischen den Bildern, eine rückwärtige Mittelung oder sogar eine Dreiwegmittelung gehört, sind jedoch weitere möglich.
  • 1. Ein "rekursiver", vorhersagender Modus, in dem das vergangene gleichliegende gerade Teilbild zur Vorhersage verwendet wird. Es muß ein Bewegungsvektor gesendet werden, der für stationäre Objekte häufig Nullen besitzt.
  • 2. Ein "vorwärts"-Modus, in dem das zukünftige ungerade Teilbild zur Vorhersage verwendet wird. Es muß ein Bewegungsvektor gesendet werden.
  • 3. Ein "gemittelter" Modus, in dem durch eine Mittelung der Pixelwerte der zwei optimalen Blöcke sowohl das vergangene als auch das zukünftige ungerade Teilbild verwendet wird. In jenem Fall müssen zwei Bewegungsvektoren gesendet werden.
  • 4. Ein "rekursiver gemittelter" Modus, in dem das vorhergehende gerade gleichliegende Teilbild wie oben mit dem zukünftigen ungeraden Teilbild kombiniert ist.
  • Wenn die Verfahren und Systeme gemäß dieser Erfindung mit einer entsprechenden Codierung der fortschreitenden Sequenz, die sich aus dem Fallenlassen der geraden Teilbilder des verschachtelten Videos ergibt, kombiniert werden, schaffen sie eine qualitativ hochwertige Kompression mit einer sinnvollen Codierungskomplexität. Diese Technik kann zur Codierung von Videos in Standardqualität mit etwa 5 MBits/s oder zur hochkomprimierenden digitalen HDTV-Codierung in Vertriebsqualität verwendet werden. Die Codierung der quantisierten DCT-Koeffizienten muß in Abhängigkeit von deren statistischer Natur, die ihrerseits von der gewünschten Qualität des rekonstruierten Endsignals abhängt, optimiert werden. Wird die horizontale Abwärtsabtastung umgangen, muß die sich daraus ergebende Asymmetrie zwischen den horizontalen und den vertikalen Frequenzen für optimale Ergebnisse in Betracht gezogen werden, wenn die DCT-Blöcke codiert werden. Zur Bewegungsabschätzung wurden hier 16 x 16-Blöcke und zur DCT-Codierung 8 x 8 Blöcke verwendet, je nach der Anwendung können aber andere Konfigurationen einschließlich z. B. eines Vierbaum-basierten segmentierten Blockanpassungszugangs unter Verwendung sowohl von 16 x 16-Blöcken als auch von 8 x 8-Blöcken optimal sein. In den durchgeführten Simulationen wurde beobachtet, daß die geraden Teilbilder mit etwa 60 % der Bitrate der ungeraden Teilbilder mit der gleichen Qualität codiert werden. Das gleiche Konzept kann zur HDTV-Codierung bei niedrigen Bitraten (z. B. unter 20 MBits/s) verwendet werden. Es gibt verschiedene Vorschläge zur HDTV-Codierung unter Verwendung von mindestens 70 MBits/s. Es wurde auch beobachtet, daß eine nichtlineare kantenerhaltende Rauschglättungs-Vorverarbeitung die Codierungsleistung besonders in dem Fall der Codierung verrauschter HDTV- Videosignale stark verbessert.

Claims (28)

1. System zum Codieren von Videodaten, die aufeinanderfolgende Vollbilder von Videobildern repräsentieren, wobei die Videodaten für jedes Vollbild verschachtelte erste und zweite Teilbilder besitzen, wobei das System einen Teilbildseparator (20), der eine Folge von Videodaten-Vollbildern empfängt und jedes Vollbild in sein erstes und sein zweites Teilbild separiert, dadurch gekennzeichnet, daß das System ferner enthält:
(a) einen Generator (40) für erste Bewegungsvektoren, der das erste Teilbild eines momentanen Vollbildes (E1(t)) und das zweite Teilbild eines momentanen Vollbildes (Oc1(t)) empfängt und einen oder mehrere erste Bewegungsvektoren (FMV) ableitet, wovon jeder einem jeweiligen Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes und einem entsprechenden Block von Pixeldaten des zweiten Teilbildes des momentanen Vollbildes zugeordnet ist;
(b) einen Generator (44) für zweite Bewegungsvektoren, der das erste Teilbild des momentanen Vollbildes (E1(t)) und das erste Teilbild des unmittelbar vorhergehenden Vollbildes (Ec1(t-1)) empfängt und einen oder mehr zweite Bewegungsvektoren (CMV) ableitet, wovon jeder einem jeweiligen Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes und einem entsprechenden Block von Pixeldaten des ersten Teilbildes des unmittelbar vorhergehenden Vollbildes zugeordnet ist;
(c) einen Speicher (50), der mit dem Teilbildseparator, dem Generator für erste Bewegungsvektoren und dem Generator für zweite Bewegungsvektoren gekoppelt ist, um das zweite Teilbild des momentanen Vollbildes (Oc1(t)), das erste Teilbild des momentanen Vollbildes (E1(t)), das erste Teilbild des unmittelbar vorhergehenden Vollbildes (Ec1(t-1)), einen oder mehrere erste Bewegungsvektoren, die vom Generator für erste Bewegungsvektoren abgeleitet werden, und einen oder mehr zweite Bewegungsvektoren, die vom Generator für zweite Bewegungsvektoren abgeleitet werden, speichert;
(d) einen Bewegungsvektorprozessor (54, 60, 62), der mit dem Speicher gekoppelt ist, um hieraus wiederherzustellen: (i) den einen oder die mehreren ersten Bewegungsvektoren, (ii) den einen oder die mehreren zweiten Bewegungsvektoren, (iii) einen Block von Pixeldaten des zweiten Teilbildes des momentanen Vollbildes, der jedem ersten Bewegungsvektor zugeordnet ist, der aus dem Speicher wiederhergestellt wird, (iv) einen Block von Pixeldaten des ersten Teilbildes des unmittelbar vorhergehenden Vollbildes, der jedem zweiten Bewegungsvektor zugeordnet ist, der aus dem Speicher wiederhergestellt wird, und (v) den Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes, der jedem ersten Bewegungsvektor oder zweiten Bewegungsvektor zugeordnet ist, die aus dem Speicher wiederhergestellt werden, und um die Informationen bezüglich des besten Modus zu bestimmen, um einen oder mehrere Blöcke von Pixeldaten vorherzusagen, die jeweils einem ersten oder zweiten Bewegungsvektor zugeordnet sind, die aus dem Speicher wiederhergestellt worden sind, und jeweils den geringsten Pixelfehler im Vergleich zum entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes besitzen, und um ferner Pixelfehlerdaten zu bestimmen, die irgendeinen Pixelfehler zwischen einem oder jedem der mehreren vorhergesagten Blöcke von Pixeldaten und dem entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes repräsentieren; und
(e) einen Ausgangsdatengenerator (21, 41, 64, 68), der mit dem Bewegungsvektorprozessor und mit dem Teilbildseparator gekoppelt ist, um das zweite Teilbild des momentanen Vollbildes, die Informationen bezüglich des besten Modus und die Pixelfehlerdaten zu erzeugen.
2. System nach Anspruch 1, ferner dadurch gekennzeichnet, daß der Bewegungsvektorprozessor eine Bewegungsvektor-Wähleinrichtung (62) enthält und Auswahldaten für den besten Bewegungsvektor, die einen oder mehr erste ausgewählte Bewegungsvektor und/oder einen oder mehrere ausgewählte zweite Bewegungsvektoren spezifizieren, ableitet, um einen Block oder Blöcke des ersten Teilbildes des momentanen Vollbildes vorherzusagen, die jeweils einem ersten oder zweiten Bewegungsvektor zugeordnet sind, der aus dem Speicher wiederhergestellt wird, und die jeweils den geringsten Pixelfehler im Vergleich zum entsprechenden Block des ersten Teilbildes des momentanen Vollbildes besitzen, wobei die Bewegungsvektor-Wähleinrichtung die Auswahldaten für den besten Bewegungsvektor empfängt und aus dem Speicher den einen oder die mehreren ausgewählten ersten Bewegungsvektoren und/oder den einen oder die mehreren ausgewählten zweiten Bewegungsvektoren, die hierdurch spezifiziert sind, wiederherstellt, wobei die Informationen bezüglich des besten Modus den einen oder die mehreren ausgewählten ersten Bewegungsvektoren und/oder den einen oder die mehreren ausgewählten zweiten Bewegungsvektoren enthalten.
3. System nach Anspruch 1, ferner dadurch gekennzeichnet, daß die Informationen bezüglich des besten Modus sämtliche ersten Bewegungsvektoren und sämtliche zweiten Bewegungsvektoren, die aus dem Speicher wiederhergestellt wurden, enthalten und der Bewegungsvektorprozessor für den besten Modus Bewegungsvektor-Auswahldaten für den besten Modus erzeugt, die einen oder mehrere ausgewählte erste Bewegungsvektoren und/oder einen oder mehrere ausgewählte zweite Bewegungsvektoren für die Vorhersage eines oder mehrerer Blöcke des ersten Teilbildes des momentanen Vollbildes spezifizieren, die jeweils einem ersten oder einem zweiten Bewegungsvektor zugeordnet sind, die aus dem Speicher wiederhergestellt werden, und jeweils den geringsten Pixelfehler im Vergleich zum entsprechenden Block des ersten Teilbildes des momentanen Vollbildes besitzen.
4. System nach Anspruch 1, ferner dadurch gekennzeichnet, daß das System ferner einen Generator (42) dritte Bewegungsvektoren enthält, der das erste Teilbild des momentanen Vollbildes (E1(t)) und das zweite Teilbild eines unmittelbar vorhergehenden Vollbildes (Oc1(t-1)) empfängt und einen oder mehrere dritte Bewegungsvektoren (BMV) ableitet, die jeweils einem Block von Pixeldaten aus dem ersten Teilbild des momentanen Vollbildes und einem entsprechenden Block von Pixeldaten aus dem zweiten Teilbild des unmittelbar vorhergehenden Vollbildes zugeordnet sind; wobei der Speicher mit dem Generator für dritte Bewegungsvektoren gekoppelt ist und ferner einen oder mehrere dritte Bewegungsvektoren, die vom Generator für dritte Bewegungsvektoren abgeleitet werden, und das zweite Teilbild des unmittelbar vorhergehenden Vollbildes speichert; und wobei der Bewegungsvektorprozessor aus dem Speicher den einen oder die mehreren dritten Bewegungsvektoren und den Block von Pixeldaten des zweiten Teilbildes des unmittelbar vorhergehenden Vollbildes wiederherstellt, die jedem dritten Bewegungsvektor zugeordnet sind, der aus dem Speicher wiederhergestellt wird.
5. System nach Anspruch 4, ferner dadurch gekennzeichnet, daß der Bewegungsvektorprozessor eine Bewegungsvektor-Wähleinrichtung (62) enthält und Bewegungsvektor-Auswahldaten für den besten Modus ableitet, die einen oder mehrere ausgewählte erste Bewegungsvektoren und/oder einen oder mehrere ausgewählte zweite Bewegungsvektoren und/oder einen oder mehrere ausgewählte dritte Bewegungsvektoren spezifizieren, um einen oder mehrere Blöcke des ersten Teilbildes des momentanen Vollbildes vorherzusagen, wovon jeder einem entsprechenden ersten, zweiten oder dritten Bewegungsvektor zugeordnet ist, die aus dem Speicher wiederhergestellt werden, und wovon jeder den geringsten Pixelfehler im Vergleich zu dem entsprechenden Block des ersten Teilbildes des momentanen Rahmens besitzt, wobei die Bewegungsvektor-Wähleinrichtung die Bewegungsvektor-Auswahldaten für den besten Modus empfängt und aus dem Speicher den einen oder die mehreren ausgewählten ersten Bewegungsvektoren und/oder den einen oder die mehreren ausgewählten zweiten Bewegungsvektoren und/oder den einen oder die mehreren ausgewählten dritten Bewegungsvektoren, die hierdurch spezifiziert sind, wiederherstellt, wobei die Informationen bezüglich des besten Modus den einen oder die mehreren ausgewählten ersten Bewegungsvektoren und/oder den einen oder die mehreren ausgewählten zweiten Bewegungsvektoren und/oder den einen oder die mehreren ausgewählten dritten Bewegungsvektoren enthalten.
6. System nach Anspruch 4, ferner dadurch gekennzeichnet, daß die Informationen bezüglich des besten Modus sämtliche ersten Bewegungsvektoren, sämtliche zweiten Bewegungsvektoren und sämtliche dritten Bewegungsvektoren enthalten, die aus dem Speicher wiederhergestellt worden sind, wobei die Bewegungsvektor-Auswahldaten für den besten Modus einen oder mehrere ausgewählte erste Bewegungsvektoren und/oder einen oder mehrere ausgewählte zweite Bewegungsvektoren und/oder einen oder mehrere ausgewählte dritte Bewegungsvektoren angeben, um einen oder mehrere Blöcke des ersten Teilbildes des momentanen Vollbildes vorherzusagen, wovon jeder einem entsprechenden ersten, zweiten oder dritten Bewegungsvektor zugeordnet ist, der aus dem Speicher wiederhergestellt wird, und wovon jeder den geringsten Pixelfehler im Vergleich zu dem entsprechenden Block des ersten Teilbildes des momentanen Vollbildes besitzt.
7. System nach irgendeinem vorangehenden Anspruch, ferner dadurch gekennzeichnet, daß das System eine Interpolationsschaltung (34, 36) enthält, die mit dem Teilbildseparator, dem Generator für erste Bewegungsvektoren, dem Generator für zweite Bewegungsvektoren und mit dem Speicher gekoppelt ist, um Verbesserungen der Pixeldaten des ersten Teilbildes und des zweiten Teilbildes eines Vollbildes abzuleiten und um die Verbesserungen für den Generator für erste Bewegungsvektoren, für den Generator für zweite Bewegungsvektoren und für den Speicher bereitzustellen.
8. System nach irgendeinem vorangehenden Anspruch, ferner dadurch gekennzeichnet, daß der Bewegungsvektorprozessor einen Generator (60) für den besten Modus enthält, der umfaßt:
(a) einen ersten Fehlergenerator (92), der mit dem Speicher gekoppelt ist und den Block von Pixeldaten des zweiten Teilbildes des momentanen Vollbildes, der jedem ersten Bewegungsvektor zugeordnet ist, der aus dem Speicher wiederhergestellt wird, und den Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes, der jedem ersten Bewegungsvektor zugeordnet ist, der aus dem Speicher wiederhergestellt wird, empfängt und aus einem Vergleich des einen oder der mehreren zugeordneten Blöcke von Pixeldaten ein erstes Fehlersignal (F) erzeugt, das den absoluten Fehler zwischen verglichenen Blöcken von Pixeldaten angibt;
(b) einen zweiten Fehlergenerator (113), der mit dem Speicher gekoppelt ist und den Block von Pixeldaten des ersten Teilbildes des unmittelbar vorhergehenden Vollbildes, der jedem zweiten Bewegungsvektor zugeordnet ist, der aus dem Speicher wiederhergestellt wird, sowie den Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes, der jedem zweiten Bewegungsvektor zugeordnet ist, der aus dem Speicher wiederhergestellt wird, empfängt und aus einem Vergleich des zugeordneten Blocks oder der zugeordneten Blöcke von Pixeldaten ein zweites Fehlersignal (C) erzeugt, das den absoluten Fehler zwischen verglichenen Blöcken von Pixeldaten angibt; und
(c) einen Komparator (115), der mit dem ersten Fehlergenerator und dem zweiten Fehlergenerator gekoppelt ist, um das erste Fehlersignal und das zweite Fehlersignal zu empfangen und um die Bewegungsvektor-Auswahldaten für den besten Modus anhand des Vergleichs des ersten Fehlersignals mit dem zweiten Fehlersignal abzuleiten.
9. System nach irgendeinem vorangehenden Anspruch, ferner dadurch gekennzeichnet, daß der Ausgangsdatengenerator einen Blockdaten-Codierer (41), der mit dem Bewegungsvektorprozessor gekoppelt ist, um die Pixelfehlerdaten zu codieren, einen Bewegungsvektor-Codierer (64), der mit dem Bewegungsvektorprozessor gekoppelt ist, um die Informationen bezüglich des besten Modus zu codieren, einen Codierer (21) für das zweite Teilbild, der mit dem Teilbildseparator gekoppelt ist, um das zweite Teilbild des momentanen Vollbildes zu codieren, sowie eine Datenkombinationsschaltung (68) enthält, die mit dem Blockdaten-Codierer, dem Bewegungsvektor-Codierer und dem Codierer für das zweite Teilbild gekoppelt ist, um die codierten Pixelfehlerdaten, die codierten Bewegungsvektor- Auswahldaten für den besten Modus und die codierten Daten für das zweite Teilbild zu empfangen und zu kombinieren.
10. System nach Anspruch 9, ferner dadurch gekennzeichnet, daß der Blockdaten-Codierer enthält:
(a) eine Schaltung (43) für diskrete Kosinustransformation, die mit dem Bewegungsvektorprozessor gekoppelt ist, um die Pixelfehlerdaten zu empfangen und um an den empfangenen Pixelfehlerdaten eine diskrete Kosinustransformation auszuführen;
(b) eine Quantisierungsschaltung (45), die mit der Schaltung für diskrete Kosinustransformation gekoppelt ist, um hiervon Daten zu empfangen, die einer diskreten Kosinustransformation unterworfen worden sind, und um die empfangenen transformierten Daten zu quantisieren;
(c) eine Zickzack-Abtastschaltung (46), die mit der Quantisierungsschaltung gekoppelt ist, um hiervon quantisierte Daten zu empfangen und um die quantisierten Daten auf vorgegebene Konstanten abzubilden; und
(d) eine Huffman-Codierungsschaltung (47), die mit der Zickzackschaltung gekoppelt ist, um abgebildete Daten zu empfangen, um die abgebildeten Daten in Binärcodes umzusetzen und um die Binärcodes für die Datenkombinationsschaltung bereitzustellen.
11. Verfahren zum Codieren von Videodaten, die aufeinanderfolgende Vollbilder von Videobildern repräsentieren, wobei die Videodaten für jedes Vollbild verschachtelte erste und zweite Teilbilder besitzen, wobei das Verfahren die folgenden Schritte enthält: (a) Empfangen einer Sequenz von Vollbildern von Videodaten und (b) Separieren der Daten für jedes Vollbild in dessen erste und zweite Teilbilder, dadurch gekennzeichnet, daß das Verfahren ferner die folgenden Schritte enthält:
(c) Ableiten eines oder mehrerer erster Bewegungsvektoren (FMV), wovon jeder einem jeweiligen Block von Pixeldaten des ersten Teilbildes eines momentanen Vollbildes (Ei(t)) und einem entsprechenden Block von Pixeldaten des zweiten Teilbildes des momentanen Vollbildes (Oc1(t)) zugeordnet ist;
(d) Ableiten eines oder mehrerer zweiter Bewegungsvektoren (CMV), wovon jeder einem Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes (Ei(t)) und einem entsprechenden Block von Pixeldaten des ersten Teilbildes des unmittelbar vorhergehenden Vollbildes (Ec1(t-1)) zugeordnet ist;
(e) Speichern des zweiten Teilbildes des momentanen Vollbildes (Oc1(t)), des ersten Teilbildes des momentanen Vollbildes (E1(t)), des ersten Teilbildes des unmittelbar vorhergehenden Vollbildes (Ec1(t-1)), eines oder mehrerer erster Bewegungsvektoren, die im Schritt (c) abgeleitet wurden, sowie eines oder mehrerer zweiter Bewegungsvektoren, die im Schritt (d) abgeleitet wurden;
(f) Bestimmen von Informationen bezüglich des besten Modus aus dem einen oder den mehreren gespeicherten ersten Bewegungsvektoren und/oder dem einen oder den mehreren gespeicherten zweiten Bewegungsvektoren, um einen oder mehrere Blöcke von Pixeldaten vorherzusagen, wovon jeder einem entsprechenden gespeicherten ersten oder zweiten Bewegungsvektor zugeordnet ist und wovon jeder den geringsten Pixelfehler im Vergleich zum entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes besitzt;
(g) Bestimmen von Pixelfehlerdaten, die irgendeinen Pixelfehler zwischen dem einen oder den mehreren vorhergesagten Blöcken von Pixeldaten und dem einen oder den mehreren entsprechenden Blöcken von Pixeldaten des ersten Teilbildes des momentanen Vollbildes repräsentieren; und
(h) Erzeugen von Signalen, die das zweite Teilbild des momentanen Vollbildes, die Bewegungsvektordaten bezüglich des besten Modus und die Pixelfehlerdaten repräsentieren.
12. Verfahren nach Anspruch 11, ferner dadurch gekennzeichnet, daß der Schritt (f) ferner enthält: Erzeugen von Bewegungsvektor-Auswahldaten für den besten Modus, die einen oder mehrere ausgewählte erste Bewegungsvektoren und/oder einen oder mehrere ausgewählte zweite Bewegungsvektoren spezifizieren, um einen oder mehrere Blöcke von Pixeldaten vorherzusagen, wovon jeder einem entsprechenden gespeicherten ersten oder zweiten Bewegungsvektor zugeordnet ist und wovon jeder den geringsten Pixelfehler im Vergleich zu dem entsprechenden Block des ersten Teilbildes des momentanen Vollbildes besitzt, und Wiederherstellen des einen oder der mehreren ausgewählten ersten Bewegungsvektoren und/oder des einen oder der mehreren ausgewählten zweiten Bewegungsvektoren, die durch die Bewegungsvektor-Auswahldaten für den besten Modus spezifiziert werden, wobei die Informationen bezüglich des besten Modus den einen oder die mehreren ausgewählten Bewegungsvektoren und/oder den einen oder die mehreren ausgewählten zweiten Bewegungsvektoren enthalten.
13. Verfahren nach Anspruch 11, ferner dadurch gekennzeichnet, daß die Informationen bezüglich des besten Modus sämtliche ersten Bewegungsvektoren und sämtliche zweiten Bewegungsvektoren, die im Schritt (f) bestimmt werden, sowie Bewegungsvektor-Auswahldaten für den besten Modus, die einen oder mehrere erste Bewegungsvektoren und/oder einen oder mehrere zweite Bewegungsvektoren spezifizieren, um einen oder mehrere Blöcke von Pixeldaten vorherzusagen, wovon jeder einem entsprechenden gespeicherten ersten oder zweiten Bewegungsvektor entspricht und wovon jeder den geringsten Pixelfehler im Vergleich zum entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes besitzt.
14. Verfahren nach Anspruch 11, ferner dadurch gekennzeichnet, daß das Verfahren den folgenden Schritt enthält: Ableiten eines oder mehrerer dritter Bewegungsvektoren (BMV), wovon jeder einem entsprechenden Block von Pixeldaten des ersten Teilbildes eines momentanen Vollbildes (Ei(t)) und einem entsprechenden Block von Pixeldaten des zweiten Teilbildes eines unmittelbar vorhergehenden Vollbildes (Oc1(t-1)) zugeordnet ist, wobei der Schritt (e) das Speichern des einen oder der mehreren abgeleiteten dritten Bewegungsvektoren und des zweiten Teilbildes des unmittelbar vorhergehenden Vollbildes enthält und wobei der Schritt (f) das Bestimmen von Informationen bezüglich des besten Modus aus dem einen oder den mehreren gespeicherten ersten Bewegungsvektoren und/oder dem einen oder den mehreren gespeicherten zweiten Bewegungsvektoren und/oder dem einen oder den mehreren gespeicherten dritten Bewegungsvektoren enthält, um einen oder mehrere Blöcke von Pixeldaten vorherzusagen, wovon jeder einem entsprechenden gespeicherten ersten, zweiten oder dritten Bewegungsvektor zugeordnet ist und wovon jeder den geringsten Pixelfehler im Vergleich zum entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes besitzt.
15. Verfahren nach Anspruch 14, ferner dadurch gekennzeichnet, daß es enthält: Erzeugen von Bewegungsvektor-Auswahldaten für den besten Modus, die einen oder mehrere ausgewählte erste Bewegungsvektoren und/oder einen oder mehrere ausgewählte zweite Bewegungsvektoren und/oder einen oder mehrere ausgewählte dritte Bewegungsvektoren spezifizieren, um einen oder mehrere Blöcke von Pixeldaten vorherzusagen, wovon jeder einem entsprechenden gespeicherten ersten, zweiten oder dritten Bewegungsvektor zugeordnet ist und wovon jeder den geringsten Pixelfehler im Vergleich zu dem einen oder den mehreren entsprechenden Blöcken des ersten Teilbildes des momentanen Vollbildes besitzt, und Wiederherstellen des einen oder der mehreren ausgewählten dritten Bewegungsvektoren und/oder des einen oder der mehreren ausgewählten zweiten Bewegungsvektoren und/oder des einen oder der mehreren ausgewählten ersten Bewegungsvektoren, die durch die Informationen bezüglich des besten Modus spezifiziert werden, wobei die Bewegungsvektor-Auswahldaten für den besten Modus den einen oder die mehreren ausgewählten dritten Bewegungsvektoren und/oder den einen oder die mehreren ausgewählten zweiten Bewegungsvektoren und/oder den einen oder die mehreren ausgewählten ersten Bewegungsvektoren enthalten.
16. Verfahren nach Anspruch 14, ferner dadurch gekennzeichnet, daß die Informationen bezüglich des besten Modus sämtliche ersten Bewegungsvektoren, sämtliche zweiten Bewegungsvektoren und sämtliche dritten Bewegungsvektoren, die aus dem Speicher wiederhergestellt werden, und Bewegungsvektor-Auswahldaten für den besten Modus enthalten, die einen oder mehrere erste Bewegungsvektoren und/oder einen oder mehrere zweite Bewegungsvektoren und/oder einen oder mehrere dritte Bewegungsvektoren spezifizieren, um einen oder mehrere Blöcke von Pixeldaten vorherzusagen, wovon jeder einem entsprechenden ersten, zweiten oder dritten Bewegungsvektor zugeordnet ist und wovon jeder den geringsten Pixelfehler im Vergleich zu dem entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes besitzt.
17. Verfahren nach irgendeinem der Ansprüche 11 bis 16, ferner dadurch gekennzeichnet, daß es den folgenden Schritt enthält: Ableiten von Verbesserungen der Pixeldaten des ersten und des zweiten Teilbildes eines Vollbildes vor den Schritten (c) und (d).
18. Verfahren nach irgendeinem der Ansprüche 11 bis 17, ferner dadurch gekennzeichnet, daß der Schritt (f) enthält:
(i) Vergleichen des Blocks von Pixeldaten des zweiten Teilbildes des momentanen Vollbildes, der jedem gespeicherten ersten Bewegungsvektor zugeordnet ist, mit dem entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes, und Erzeugen eines ersten Fehlersignals (F), das den absoluten Fehler zwischen den verglichenen Blöcken von Pixeldaten angibt;
(ii) Vergleichen des Blocks von Pixeldaten des ersten Teilbildes des unmittelbar vorhergehenden Vollbildes, der jedem gespeicherten zweiten Bewegungsvektor zugeordnet ist, mit dem entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes und Erzeugen eines zweiten Fehlersignals (C), das den absoluten Fehler zwischen den verglichenen Blöcken von Pixeldaten angibt; und
(iii) Ableiten eines Signals für besten Modus, das die Bewegungsvektordaten für den besten Modus angibt, indem das erste Fehlersignal mit dem zweiten Fehlersignal verglichen wird.
19. Verfahren nach irgendeinem der Ansprüche 11 bis 18, ferner dadurch gekennzeichnet, daß der Schritt (h) enthält:
(i) Codieren der Pixelfehlerdaten;
(ii) Codieren der Bewegungsvektordaten für besten Modus;
(iii) Codieren des zweiten Teilbildes des momentanen Vollbildes; und
(iv) Kombinieren der codierten Pixelfehlerdaten, der codierten Bewegungsvektordaten für besten Modus und der codierten Daten für das zweite Teilbild.
20. Verfahren nach Anspruch 19, ferner dadurch gekennzeichnet, daß der Schritt (i) enthält:
(a) Ausführen einer diskreten Kosinustransformation an den Pixelfehlerdaten;
(b) Quantisieren der der diskreten Kosinustransformation unterworfenen Daten;
(c) Abbilden der quantisierten Daten auf vorgegebene Konstanten; und
(d) Umsetzen der abgebildeten Daten in einen binären Bitstrom.
21. Decodierungssystem für codierte Videodaten, die eine Sequenz von Vollbildern von Videobildern repräsentieren, wobei die Videodaten für jedes Vollbild erste und zweite verschachtelte Teilbilder besitzen, dadurch gekennzeichnet, daß das System enthält:
(a) eine Eingangsschaltung (82, 84, 89, 91, 107), die codierte Videodaten empfängt und die codierten Daten für jedes Vollbild in (i) erste Bewegungsvektordaten, die einem oder mehreren Blöcken von Pixeldaten des zweiten Teilbildes des momentanen Vollbildes (Oc(t)) und einem oder mehreren entsprechenden Blöcken von Pixeldaten eines ersten Teilbildes des momentanen Vollbildes (Ec(t)) zugeordnet sind, (ii) zweite Bewegungsvektordaten, die, sofern vorhanden, einem oder mehreren Blöcken von Pixeldaten des ersten Teilbildes eines unmittelbar vorhergehenden Vollbildes (Ec1(t-1)) und einem oder mehreren entsprechenden Blöcken von Pixeldaten eines ersten Teilbildes des momentanen Vollbildes zugeordnet sind, (iii) Pixelfehlerdaten, die irgendeinen Pixelfehler in jedem Block von Pixeldaten, der den ersten und/oder zweiten Bewegungsvektordaten zugeordnet ist, im Vergleich zu dem entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes (Ec(t)) repräsentieren, sowie (iv) das zweite Teilbild des momentanen Vollbildes separiert;
(b) eine Blockauswahleinrichtung (88), die die ersten und zweiten Bewegungsvektordaten von der Eingangsschaltung empfängt und einen oder mehrere Blöcke von Pixeldaten des zweiten Teilbildes des momentanen Vollbildes und/oder einen oder mehrere Blöcke von Pixeldaten des ersten Teilbildes eines unmittelbar vorhergehenden Vollbildes, die den empfangenen ersten bzw. zweiten Vektordaten zugeordnet sind, auswählt;
(c) einen Blockprozessor (85), der den einen oder die mehreren ausgewählten Blöcke von Pixeldaten empfängt, die von der Blockauswahleinrichtung ausgewählt werden, und einen oder mehrere der empfangenen Blöcke von Pixeldaten bestimmt, wovon jeder den niedrigsten Pixelfehler im Vergleich zu dem entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes besitzt;
(d) einen Blockaddierer (87), der den einen oder die mehreren Blöcke von Pixeldaten, die vom Blockprozessor bestimmt werden, sowie die Pixelfehlerdaten für denselben Block oder dieselben mehreren Blöcke von Pixeldaten empfängt und ein vorhergesagtes erstes Teilbild des momentanen Vollbildes (Ec1(t)) erzeugt; und
(e) einen Vollbildgenerator (90), der das vorhergesagte erste Teilbild des momentanen Vollbildes und das zweite Teilbild des momentanen Vollbildes empfängt und das momentane Vollbild von Videobilddaten erzeugt.
22. System nach Anspruch 21, ferner dadurch gekennzeichnet, daß es einen Speicher (86) enthält, der mit der Eingangsschaltung, der Blockwähleinrichtung, dem Blockprozessor und dem Blockaddierer gekoppelt ist, um das zweite Teilbild eines momentanen Vollbildes und das erste Teilbild des unmittelbar vorhergehenden Vollbildes zu speichern, wobei die Blockauswahleinrichtung Adressensignale für den Speicher erzeugt, um daraus den einen oder die mehreren Blöcke von Pixeldaten wiederherzustellen, die von der Blockauswahleinrichtung ausgewählt werden.
23. System nach Anspruch 21, ferner dadurch gekennzeichnet, daß die Eingangsschaltung zusätzlich Signale für den besten Modus empfängt, die den einen oder die mehreren Blöcke von Pixeldaten angeben, wovon jeder den niedrigsten Pixelfehler im Vergleich zu den entsprechenden Blöcken von Pixeldaten des ersten Teilbildes des momentanen Vollbildes besitzt, und die Signale für den besten Modus für den Blockprozessor bereitstellt, wobei der eine oder die mehreren Blöcke, die vom Blockprozessor erzeugt werden, durch das Signal für den besten Modus ausgewählt werden.
24. System nach Anspruch 21, ferner dadurch gekennzeichnet, daß die Eingangsschaltung dritte Bewegungsvektordaten empfängt, die einem oder mehreren Blöcken von Pixeldaten des zweiten Teilbildes eines unmittelbar vorhergehenden Vollbildes (Oc1(t-1)) und einem oder mehreren entsprechenden Blöcken von Pixeldaten eines ersten Teilbildes des momentanen Vollbildes zugeordnet sind, wobei die Pixelfehlerdaten irgendeinen Pixelfehler in irgendeinem Block von Pixeldaten, der den ersten und/oder den zweiten und/oder den dritten Bewegungsvektordaten zugeordnet ist, im Vergleich zu dem entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes repräsentieren, wobei die Blockauswahleinrichtung die dritten Bewegungsvektordaten von der Eingangsschaltung empfängt und einen oder mehrere Blöcke von Pixeldaten des zweiten Teilbildes eines unmittelbar vorhergehenden Vollbildes, die den Bewegungsvektordaten zugeordnet sind, auswählt; und der Blockprozessor den einen oder die mehreren Blöcke von Pixeldaten des zweiten Teilbildes eines unmittelbar vorhergehenden Vollbildes, die von der Blockauswahleinrichtung ausgewählt werden, empfängt.
25. Decodierungsverfahren für codierte Videodaten, die eine Sequenz von Vollbildern von Videobildern repräsentieren, wobei die Videodaten für jedes Vollbild erste und zweite verschachtelte Teilbilder besitzen, wobei das Verfahren den folgenden Schritt enthält: (a) Empfangen codierter Videodaten für aufeinanderfolgende Vollbilder, dadurch gekennzeichnet, daß das Verfahren ferner die Schritte enthält:
(b) Separieren der codierten Daten für jedes Vollbild in (i) erste Bewegungsvektordaten, die, sofern vorhanden, einem oder mehreren Blöcken von Pixeldaten des zweiten Teilbildes eines momentanen Vollbildes (Oc(t)) und einem oder mehreren entsprechenden Blöcken von Pixeldaten eines ersten Teilbildes des momentanen Vollbildes (Ec(t)) zugeordnet sind, (ii) zweite Bewegungsvektordaten, die, sofern vorhanden, einem oder mehreren Blöcken von Pixeldaten des ersten Teilbildes eines unmittelbar vorhergehenden Vollbildes (Ec1(t-1)) und einem oder mehreren entsprechenden Blöcken von Pixeldaten des ersten Teilbildes des momentanen Vollbildes zugeordnet sind, (iii) Pixelfehlerdaten, die irgendeinen Pixelfehler in jedem Block von Pixeldaten, die den ersten und/oder zweiten Bewegungsvektordaten zugeordnet sind, im Vergleich zu dem entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes (Ec(t)) representieren, und (iv) das zweite Teilbild des momentanen Vollbildes;
(c) Auswählen eines oder mehrerer Blöcke von Pixeldaten des zweiten Teilbildes des momentanen Vollbildes, die den ersten Bewegungsvektordaten zugeordnet sind, und/oder eines oder mehrerer Blöcke von Pixeldaten des ersten Teilbildes eines unmittelbar vorhergehenden Vollbildes, die den den zweiten Bewegungsvektordaten zugeordneten Bewegungsvektordaten zugeordnet sind;
(d) Ableiten aus dem Block oder den Blöcken von Pixeldaten, die im Schritt (c) ausgewählt werden, eines oder mehrerer Blöcke von Pixeldaten, wovon jeder den niedrigsten Pixelfehler im Vergleich zu dem entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes besitzt;
(e) Erzeugen eines vorhergesagten ersten Teilbildes des momentanen Vollbildes (Ec1(t)) aus dem einen oder den mehreren Blöcken von Pixeldaten, die im Schritt (d) abgeleitet werden, und aus den Pixelfehlerdaten für denselben Block oder dieselben mehreren Blöcke von Pixeldaten; und
(f) Erzeugen des momentanen Vollbildes von Videobilddaten aus dem vorhergesagten ersten Teilbild des momentanen Vollbildes und dem zweiten Teilbild des momentanen Vollbildes, die aus den empfangenen codierten Videodaten separiert werden.
26. Verfahren nach Anspruch 25, ferner dadurch gekennzeichnet, daß es den folgenden Schritt enthält: Speichern des zweiten Teilbildes eines momentanen Vollbildes und des ersten Teilbildes des unmittelbar vorhergehenden Vollbildes vor dem Schritt (c), wobei der eine Block oder die mehreren Blöcke von Pixeldaten, die im Schritt (c) ausgewählt werden, aus dem gespeicherten zweiten Teilbild eines momentanen Vollbildes und/oder dem gespeicherten ersten Teilbild des unmittelbar vorhergehenden Vollbildes ausgewählt werden, und wobei der Schritt (c) die Erzeugung von Adressensignalen für die Auswahl des einen Blocks oder der mehreren ausgewählten Blöcke von Pixeldaten aus einem Speicher enthält.
27. Verfahren nach Anspruch 25, ferner dadurch gekennzeichnet, daß die im Schritt (b) separierten Videodaten Signale für den besten Modus enthalten, die den einen oder die mehreren Blöcke von Pixeldaten angeben, wovon jeder den niedrigsten Pixelfehler im Vergleich zu dem entsprechenden Block von Pixeldaten des ersten Teilbildes des momentanen Vollbildes besitzt, wobei der eine oder die mehreren Blöcke, die im Schritt (d) abgeleitet werden, unter Verwendung des Signals für den besten Modus abgeleitet werden.
28. Verfahren nach Anspruch 25, ferner dadurch gekennzeichnet, daß die im Schritt (b) separierten Videodaten dritte Bewegungsvektordaten enthalten, die einem oder mehreren Blöcken von Pixeldaten des zweiten Teilbildes eines unmittelbar vorhergehenden Vollbildes (Oct(t-1)) und einem oder mehreren entsprechenden Blöcken von Pixeldaten eines ersten Teilbildes des momentanen Vollbildes zugeordnet sind, und der eine oder die mehreren Blöcke von Pixeldaten, die im Schritt (c) ausgewählt werden, einen oder mehrere Blöcke von Pixeldaten des zweiten Teilbildes eines unmittelbar vorhergehenden Vollbildes enthält, die den dritten Bewegungsvektordaten zugeordnet sind.
DE69129595T 1990-12-03 1991-12-03 Systeme und Verfahren zur Kodierung alternierender Halbbilder in Zeilensprungbildsequenzen Expired - Lifetime DE69129595T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/621,343 US5193004A (en) 1990-12-03 1990-12-03 Systems and methods for coding even fields of interlaced video sequences

Publications (2)

Publication Number Publication Date
DE69129595D1 DE69129595D1 (de) 1998-07-16
DE69129595T2 true DE69129595T2 (de) 1998-10-15

Family

ID=24489783

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69130329T Expired - Lifetime DE69130329T2 (de) 1990-12-03 1991-12-03 System und verfahren zur codierung eines zeilensprunghalbbildes
DE69129595T Expired - Lifetime DE69129595T2 (de) 1990-12-03 1991-12-03 Systeme und Verfahren zur Kodierung alternierender Halbbilder in Zeilensprungbildsequenzen

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69130329T Expired - Lifetime DE69130329T2 (de) 1990-12-03 1991-12-03 System und verfahren zur codierung eines zeilensprunghalbbildes

Country Status (6)

Country Link
US (1) US5193004A (de)
EP (2) EP0564597B1 (de)
JP (1) JP2746749B2 (de)
CA (1) CA2096431C (de)
DE (2) DE69130329T2 (de)
WO (1) WO1992010061A2 (de)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5253275A (en) * 1991-01-07 1993-10-12 H. Lee Browne Audio and video transmission and receiving system
JP2586260B2 (ja) * 1991-10-22 1997-02-26 三菱電機株式会社 適応的ブロッキング画像符号化装置
USRE39276E1 (en) 1991-11-08 2006-09-12 Matsushita Electric Industrial Co., Ltd. Method for determining motion compensation
JP2929044B2 (ja) * 1991-11-08 1999-08-03 松下電器産業株式会社 動き補償予測方法
US5369449A (en) 1991-11-08 1994-11-29 Matsushita Electric Industrial Co., Ltd. Method for predicting move compensation
USRE39279E1 (en) 1991-11-08 2006-09-12 Matsushita Electric Industrial Co., Ltd. Method for determining motion compensation
US5293229A (en) * 1992-03-27 1994-03-08 Matsushita Electric Corporation Of America Apparatus and method for processing groups of fields in a video data compression system
US5367385A (en) * 1992-05-07 1994-11-22 Picturetel Corporation Method and apparatus for processing block coded image data to reduce boundary artifacts between adjacent image blocks
JP3308990B2 (ja) * 1992-07-03 2002-07-29 松下電器産業株式会社 動画像の予測符号化方法及び予測符号化装置
JPH0828876B2 (ja) * 1993-02-25 1996-03-21 日本電気株式会社 動画像信号のリフレッシュ方法
DE69418372T2 (de) * 1993-03-15 1999-11-25 Sony Corp., Tokio/Tokyo Übertragung und Dekodierung von Bildsignalen
KR950702083A (ko) * 1993-04-08 1995-05-17 오오가 노리오 움직이는 벡터검출방법 및 장치
WO1994029999A1 (en) * 1993-06-16 1994-12-22 Gould Kim V W System and method for transmitting video material
US5387940A (en) * 1993-07-07 1995-02-07 Rca Thomson Licensing Corporation Method and apparatus for providing scaleable compressed video signal
EP0644698A3 (de) * 1993-09-14 1997-03-05 Gold Star Co B-Bild Verarbeitungsvorrichtung mit halbpixel Bewegungskompensation für einen Bildkodierer.
JP3149303B2 (ja) * 1993-12-29 2001-03-26 松下電器産業株式会社 デジタル画像符号化方法及びデジタル画像復号化方法
TW283289B (de) * 1994-04-11 1996-08-11 Gen Instrument Corp
JPH0865681A (ja) * 1994-08-25 1996-03-08 Sony Corp 動きベクトル検出装置およびそれを使用した動き補償予測符号化システム
EP1271957B1 (de) 1994-12-20 2006-05-24 Matsushita Electric Industrial Co., Ltd. Verfahren und Vorrichtung zur objektbasierten prädiktiven Kodierung und Übertragung von digitalen Bildern und Dekodierungsvorrichtung
US5610659A (en) * 1995-05-08 1997-03-11 Futuretel, Inc. MPEG encoder that concurrently determines video data encoding format and rate control
US5731850A (en) * 1995-06-07 1998-03-24 Maturi; Gregory V. Hybrid hierarchial/full-search MPEG encoder motion estimation
US5757424A (en) * 1995-12-19 1998-05-26 Xerox Corporation High-resolution video conferencing system
GB2311184A (en) * 1996-03-13 1997-09-17 Innovision Plc Motion vector field error estimation
US5991447A (en) * 1997-03-07 1999-11-23 General Instrument Corporation Prediction and coding of bi-directionally predicted video object planes for interlaced digital video
JP4178562B2 (ja) * 1997-05-22 2008-11-12 ソニー株式会社 動きベクトル検出装置および方法
US6269484B1 (en) 1997-06-24 2001-07-31 Ati Technologies Method and apparatus for de-interlacing interlaced content using motion vectors in compressed video streams
US5990955A (en) * 1997-10-03 1999-11-23 Innovacom Inc. Dual encoding/compression method and system for picture quality/data density enhancement
JP4326028B2 (ja) * 1997-10-15 2009-09-02 エヌエックスピー ビー ヴィ 動き予測方法
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
CN100452883C (zh) 2001-12-17 2009-01-14 微软公司 处理视频图像的方法
US6689463B2 (en) * 2001-12-18 2004-02-10 Corning Incorporated Secondary coating composition for optical fibers
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
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
US7496283B2 (en) * 2002-06-28 2009-02-24 Microsoft Corporation Methods and systems for processing digital data rate and directional playback changes
US7154952B2 (en) * 2002-07-19 2006-12-26 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
US7813429B2 (en) * 2002-08-13 2010-10-12 Lsi Corporation System and method for segmentation of macroblocks
US7020200B2 (en) * 2002-08-13 2006-03-28 Lsi Logic Corporation System and method for direct motion vector prediction in bi-predictive video frames and fields
KR100517504B1 (ko) * 2003-07-01 2005-09-28 삼성전자주식회사 B-픽처의 움직임 보상 모드 결정방법 및 장치
US7499495B2 (en) * 2003-07-18 2009-03-03 Microsoft Corporation Extended range motion vectors
US7609763B2 (en) * 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
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
US7606308B2 (en) * 2003-09-07 2009-10-20 Microsoft Corporation Signaling macroblock mode information for macroblocks of interlaced forward-predicted fields
US7620106B2 (en) * 2003-09-07 2009-11-17 Microsoft Corporation Joint coding and decoding of a reference field selection and differential motion vector information
US8064520B2 (en) * 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7599438B2 (en) * 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
US7567617B2 (en) * 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US7539393B2 (en) * 2003-12-05 2009-05-26 Microsoft Corporation Method and system for reverse playback of compressed data
US7627227B2 (en) * 2004-05-17 2009-12-01 Microsoft Corporation Reverse presentation of digital media streams
US9077960B2 (en) * 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
FR2917262A1 (fr) * 2007-06-05 2008-12-12 Thomson Licensing Sas Dispositif et procede de codage d'un contenu video sous la forme d'un flux scalable.
US8254455B2 (en) * 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US8964117B2 (en) 2007-09-28 2015-02-24 Ati Technologies Ulc Single-pass motion adaptive deinterlacer and method therefore
US8300987B2 (en) * 2007-09-28 2012-10-30 Ati Technologies Ulc Apparatus and method for generating a detail-enhanced upscaled image
US8259228B2 (en) * 2007-12-10 2012-09-04 Ati Technologies Ulc Method and apparatus for high quality video motion adaptive edge-directional deinterlacing
US9456192B2 (en) * 2007-12-14 2016-09-27 Cable Television Laboratories, Inc. Method of coding and transmission of progressive video using differential signal overlay
US8396129B2 (en) * 2007-12-28 2013-03-12 Ati Technologies Ulc Apparatus and method for single-pass, gradient-based motion compensated image rate conversion
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
US20120195364A1 (en) * 2011-01-31 2012-08-02 Apple Inc. Dynamic mode search order control for a video encoder
US10904555B2 (en) * 2018-07-11 2021-01-26 Tencent America LLC Method and apparatus for video coding

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07118784B2 (ja) * 1984-10-27 1995-12-18 ソニー株式会社 テレビジヨン信号の動き検出方法
JP2612557B2 (ja) * 1985-12-18 1997-05-21 ソニー株式会社 データ伝送受信システム及びデータ復号装置
DE3875983T2 (de) * 1987-03-04 1993-04-15 Hitachi Ltd Geraet zur wiedergabe von videosignalen geringer aufloesung auf videomonitoren hoher aufloesung.
EP0294961B1 (de) * 1987-06-09 1994-10-12 Sony Corporation Auswahl eines Bewegungsvektors in Fernsehbildern
DE3854171T2 (de) * 1987-06-09 1995-12-21 Sony Corp Bewertung von Bewegungsvektoren in Fernsehbildern.
DE3853555T2 (de) * 1987-06-09 1995-08-17 Sony Corp Verarbeitung des Bewegungsvektors in digitalen Fernsehbildern.
DE3877105D1 (de) * 1987-09-30 1993-02-11 Siemens Ag, 8000 Muenchen, De
US4897720A (en) * 1988-03-14 1990-01-30 Bell Communications Research, Inc. Circuit implementation of block matching algorithm
US4821119A (en) * 1988-05-04 1989-04-11 Bell Communications Research, Inc. Method and apparatus for low bit-rate interframe video coding
IT1228109B (it) * 1988-12-21 1991-05-28 Telettra Spa M Sistema e dispositivo di premultiplazione a pacchetto per trasmissione di piu' flussi dati generati da un unico algoritmo
JP2521145B2 (ja) * 1989-02-20 1996-07-31 日本ビクター株式会社 動き補償予測符号化復号化方式
US5001559A (en) * 1989-10-12 1991-03-19 International Business Machines Corporation Transform coding using coefficient prediction techniques
US4999705A (en) * 1990-05-03 1991-03-12 At&T Bell Laboratories Three dimensional motion compensated video coding
US5134480A (en) * 1990-08-31 1992-07-28 The Trustees Of Columbia University In The City Of New York Time-recursive deinterlace processing for television-type signals
CA2087578C (en) * 1993-01-19 1998-10-27 William Kevin Reagen Preparing catalyst for olefin polymerization

Also Published As

Publication number Publication date
WO1992010061A2 (en) 1992-06-11
US5193004A (en) 1993-03-09
JP2746749B2 (ja) 1998-05-06
EP0564597A1 (de) 1993-10-13
DE69129595D1 (de) 1998-07-16
EP0564597B1 (de) 1998-10-07
EP0630157B1 (de) 1998-06-10
JPH06504169A (ja) 1994-05-12
DE69130329D1 (de) 1998-11-12
EP0630157A3 (de) 1995-03-22
DE69130329T2 (de) 1999-03-04
EP0630157A2 (de) 1994-12-21
WO1992010061A3 (en) 1992-07-09
CA2096431A1 (en) 1992-06-04
CA2096431C (en) 1995-07-04

Similar Documents

Publication Publication Date Title
DE69129595T2 (de) Systeme und Verfahren zur Kodierung alternierender Halbbilder in Zeilensprungbildsequenzen
DE69221191T2 (de) Verfahren und Vorrichtung zur Prädiktiven Kodierung eines Bildsignals mit Bewegungskompensation
DE69232063T2 (de) Adaptive Bewegungskompensation mit mehreren Bewegungskompensatoren
DE69131438T2 (de) Adaptive Bewegungskompensation für das digitale Fernsehen
DE69120139T2 (de) Gerät und Verfahren zur adaptiven Kompression von aufeinanderfolgenden Blöcken eines digitalen Videosignals
DE69425919T2 (de) Adaptive Komprimierung von digitalen Videodaten
DE69606441T2 (de) Videodatenkodierer und -dekodierer
DE69709914T2 (de) Vorrichtung zur Bildvorhersage und -decodierung
DE3856536T2 (de) Kodierung von Daten, die wie eine multidimensionale Matrix dargestellt sind
DE69530336T2 (de) Bewegungskompensation für digitale Videosignale mit Zeilensprung
DE3751416T2 (de) Bildcodiersystem zum Ueberwachen einer Informationsmenge durch Bildung eines Histogramms.
DE69535228T2 (de) Bildumsetzungsvorrichtung
DE69224250T2 (de) Ableitung und Verwendung von Bewegungsvektoren in einem Differenzpulskodemodulationssystem
DE69618171T2 (de) Bewegungsschätzung für prädiktive bildkodierung
DE69432142T2 (de) Verfahren und vorrichtung zur effizienten transkodierung
DE69323986T2 (de) Vorrichtung und Verfahren zur Bildverarbeitung
DE69714071T2 (de) Vorrichtung zur kompression von pixelblöcken in einem bildverarbeitungssystem
DE69222766T2 (de) System zur adaptiven kompression der blockgrössen eines bildes
DE69521966T2 (de) Einrichtung zur Kodierung eines Videosignales bei Anwesenheit eines Leuchtdichtegradienten
DE3789273T2 (de) Kodierungssystem zur Reduktion der Redundanz.
DE69223560T2 (de) Einrichtung zur Verminderung von Quantisierungsstörungen in einem Zwischenbild-Hybrid-Kodierungssystem mit Bewegungskompensation
DE69624669T2 (de) Videokodierer und -dekodierersystem und -methoden
DE69329983T2 (de) Bildverarbeitungsverfahren und -vorrichtung
EP0309669A2 (de) Verfahren zur szenenmodellgestützten Bilddatenreduktion für digitale Fernsehsignale
DE19739266B4 (de) Verfahren und Vorrichtung zum Kodieren binärer Formen

Legal Events

Date Code Title Description
8363 Opposition against the patent
8310 Action for declaration of annulment
8313 Request for invalidation rejected/withdrawn