DE69129595T2 - Systeme und Verfahren zur Kodierung alternierender Halbbilder in Zeilensprungbildsequenzen - Google Patents
Systeme und Verfahren zur Kodierung alternierender Halbbilder in ZeilensprungbildsequenzenInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 41
- 239000013598 vector Substances 0.000 claims description 228
- 238000013139 quantization Methods 0.000 claims description 9
- 238000005070 sampling Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims 2
- 230000007547 defect Effects 0.000 claims 1
- 230000000875 corresponding effect Effects 0.000 description 60
- 239000000872 buffer Substances 0.000 description 10
- 238000012935 Averaging Methods 0.000 description 7
- 238000007906 compression Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 101100493820 Caenorhabditis elegans best-1 gene Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/112—Selection of coding mode or of prediction mode according to a given display mode, e.g. for interlaced or progressive display mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
1990
- 1990-12-03 US US07/621,343 patent/US5193004A/en not_active Ceased
-
1991
- 1991-12-03 EP EP92904203A patent/EP0564597B1/de not_active Expired - Lifetime
- 1991-12-03 CA CA002096431A patent/CA2096431C/en not_active Expired - Lifetime
- 1991-12-03 DE DE69130329T patent/DE69130329T2/de not_active Expired - Lifetime
- 1991-12-03 WO PCT/US1991/008816 patent/WO1992010061A2/en active IP Right Grant
- 1991-12-03 JP JP4504277A patent/JP2746749B2/ja not_active Expired - Lifetime
- 1991-12-03 EP EP94202506A patent/EP0630157B1/de not_active Expired - Lifetime
- 1991-12-03 DE DE69129595T patent/DE69129595T2/de not_active Expired - Lifetime
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 |