DE19702048C2 - Skalierbarer Videocodierer gemäß MPEG2-Standard - Google Patents

Skalierbarer Videocodierer gemäß MPEG2-Standard

Info

Publication number
DE19702048C2
DE19702048C2 DE19702048A DE19702048A DE19702048C2 DE 19702048 C2 DE19702048 C2 DE 19702048C2 DE 19702048 A DE19702048 A DE 19702048A DE 19702048 A DE19702048 A DE 19702048A DE 19702048 C2 DE19702048 C2 DE 19702048C2
Authority
DE
Germany
Prior art keywords
data
chip
image
search
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE19702048A
Other languages
English (en)
Other versions
DE19702048A1 (de
Inventor
Adrian Stephen Butter
John Mark Kaczmarczyk
Agnes Yee Ngai
Robert J Yagley
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GlobalFoundries Inc
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE19702048A1 publication Critical patent/DE19702048A1/de
Application granted granted Critical
Publication of DE19702048C2 publication Critical patent/DE19702048C2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N11/00Colour television systems
    • H04N11/04Colour television systems using pulse code modulation
    • H04N11/042Codec means
    • H04N11/044Codec means involving transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N11/00Colour television systems
    • H04N11/06Transmission systems characterised by the manner in which the individual colour picture signal components are combined
    • H04N11/20Conversion of the manner in which the individual colour picture signal components are combined, e.g. conversion of colour television standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/147Scene change detection

Description

Die Erfindung betrifft eine Vorrichtung zur Codierung digitaler visueller Bilder einschließlich der räumlichen (Inner-Bild) und zeitlichen Komprimierung (Zwischen-Bild), das heißt der Verringerung der Redundanz innerhalb eines Bildes und zwischen Bildern. Die Redundanz in den Bildern wird durch die Verwendung der diskreten Kosinustransformation, der Quantisierung und der Veränderliche-Längen-Codierung verringert oder beseitigt. Die Redundanz zwischen Bildern wird durch die Verwendung von Bewegungsvektoren verringert oder sogar beseitigt. Im besonderen betrifft die Erfindung ein skalierbares Codierersystem. Das heißt, ein dem MPEG2-Standard entsprechendes Videocodierersystem mit skalierbarem Aufbau, das ein Nur-I-Vollbilder- Videocodierermodul mit einem Prozessor zur Ausführung der diskreten Kosinustransformation, einem Quantisierer, einem Veränderliche-Längen-Codierer, einem FIFO-Puffer und einer Schnittstelle zum komprimierten Speichern aufweist, um eine I- Vollbilder enthaltende Bitfolge zu erzeugen. FÜR IPB-Bitfolgen enthält das System ein zweites Prozessorelement mit einer Bezugsspeicher-Schnittstelle, der Fähigkeit zur Bewegungskompensation, zur inversen Quantisierung, zur inversen diskreten Kosinustransformation sowie Bewegungskompensationsmittel; und mindestens ein drittes Prozessorelement für die Bewegungsschätzung. Das System kann die Form eines einzelnen integrierten Schaltkreischips oder einer Vielzahl integrierter Schaltkreischips haben, das heißt ein Chip für jeden Prozessor, für das I-Vollbild-Videocodierermodul, für das zweite Prozessorelement und für das dritte Prozessorelement. Es können eine oder mehrere dritte Prozessoreinheiten vorhanden sein.
Hintergrund der Erfindung
Innerhalb der letzten zehn Jahre hat der Fortschritt der weltweiten elektronischen Nachrichtübertragungssysteme die Art und Weise, in der Menschen Informationen senden und empfangen können, verbessert. Im besonderen haben sich die Möglichkeiten der Echtzeit-Video- und Audiosysteme in den letzten Jahren wesentlich verbessert. Um den Teilnehmern Dienste bereitzustellen, wie beispielsweise Video-auf-Abruf und Videokonferenzen, ist eine sehr große Bandbreite des Netzwerkes erforderlich. Tatsächlich ist die Bandbreite des Netzes häufig das Haupthindernis für eine effektive Arbeitsweise solcher Systeme.
Um die durch die Netzwerke hervorgerufenen Beschränkungen zu überwinden, sind Komprimierungssysteme entstanden. Diese Systeme verringern den Umfang der Video- und Audiodaten, die übertragen werden müssen, indem in den Bildfolgen auftretende Redundanzen entfernt werden. Am Empfangsende wird die Bildfolge dekomprimiert und kann in Echtzeit angezeigt werden.
Ein Beispiel für einen entstandenen Videokomprimierungsstandard ist der MPEG-Standard (Moving Picture Experts Group). Innerhalb des MPEG-Standards wird die Videokomprimierung sowohl innerhalb eines gegebenen Bildes als auch zwischen Bildern definiert. Die Videokomprimierung innerhalb eines Bildes wird durch Wandlung des digitalen Bildes aus dem Zeitbereich in den Frequenzbereich mittels einer diskreten Kosinustransformation, einer Quantisierung, einer veränderliche-Längen-Codierung und der Huffman-Codierung durchgeführt. Die Videokomprimierung zwischen Bildern wird mit einem Prozeß durchgeführt, der als Bewegungsschätzung bezeichnet wird, in welchem ein Bewegungsvektor zusammen mit Differenzdaten verwendet wird, um die Bewegung eines Satzes Bildelemente aus einem Bild in ein anderes zu beschreiben.
Der ISO MPEG2-Standard spezifiziert nur die Syntax der Bitfolge und die Semantik des Decodierprozesses. Die Auswahl der Codierparameter und die Kompromisse zwischen Leistungsfähigkeit und Komplexität bleiben dem Entwickler der Codierer überlassen. Da die Entwicklung eines dem MPEG2-Standard entsprechenden Codierers komplex und teuer ist, ist eine solche Codierer-Lösung wünschenswert, die flexibel ist, um an verschiedene Anwendungen angepasst zu werden, und die erweitert werden kann, wenn die Anforderungen des Benutzers wachsen, das heißt ein skalierbarer Codierer.
Der MPEG2-Standard erfordert zur Verarbeitung eines Videobildes eine zehnmal höhere Leistungsfähigkeit und eine vier mal höhere Auflösung als der MPEG1-Standard. Es wird somit zu einer großen Herausforderung für die Entwickler, ein bezahlbares Codiererprodukt zu schaffen. Der MPEG2-Standard stellt Betriebsweisen bereit, die für einige Anwendungen vorteilhaft sind, erfüllt andere aber nur in bestimmten Grenzen. Eine skalierbare Produktarchitektur, die Wachstumsmöglichkeiten und wirtschaftliche Abstufungen bietet, ist sehr wünschenswert.
Die US-Patentschrift Nr. 5,418,570 offenbart ein digitales Videocodiersystem, das eine erhöhte Codiereffizienz besitzt, dadurch, dass es zur vorhersagenden Codierung eines hoch­ aufgelösten Bildsignals nur ein lokal dekodiertes Signal mit niedriger Auflösung verwendet. Obwohl damit Fortschritte in der Codiereffizienz erreicht werden, ist das dem Verfahren entsprechende Codiersystem relativ teuer, da es speziell für den jeweiligen Einsatzzweck mit anspruchsvolleren oder eher weniger anspruchsvollen technischen Spezifikationen hergestellt werden muß. Aufgrund der dort offenbarten Systemarchitektur ist es nämlich unumgänglich, für unterschiedliche Anwendungszwecke entsprechend unterschiedliche Implementierungen des Codiersystems herzustellen, etwa für Videokonferenzen, die mit relativ niedriger Bandbreite via Internet übertragen werden, einfach gehaltene Implementierungen, oder im Gegensatz dazu aufwändigere Implementierungen etwa für HDTV-Fernseh- Übertragungen im digitalen Fernsehen, die breitbandig übertragen werden müssen, um eine entsprechende Qualität insbesondere bei schnellen Bildfolgen zu gewährleisten.
Grund dafür ist die oben erwähnte, nicht vorhandene Skalierbarkeit des Codiersystems für unterschiedlich hohe technische Anforderungen. Daher ist eine preisgünstige Massenproduktion dieses Codiersystems nur begrenzt möglich.
Aufgaben der Erfindung
Es ist eine Hauptaufgabe der Erfindung, eine skalierbare Codiererarchitetektur und deren Realisierung bereitzustellen.
Es ist eine weitere Aufgabe der Erfindung, eine Skalierbarkeit bereitzustellen, die es gestattet, aus denselben Elementen Nur- I, I-P und I-P-B Systeme aufzubauen.
Zusammenfassung der Erfindung
Diese und andere Aufgaben werden durch den dem MPEG2-Standard entsprechenden digitalen Videocodierer der Erfindung mit skalierbarer Architektur erfüllt. Das skalierbare Prozessorsystem besitzt ein Nur-I-Vollbilder-Videocodierermodul mit einem Prozessor zur Ausführung der diskreten Kosinustransformation, einer Quantisierereinheit, einem Veränderliche-Längen-Codierer, einem FIFO-Puffer und einer Schnittstelle zum komprimierten Speichern, um eine I-Vollbilder enthaltende Bitfolge zu erzeugen. FÜR IPB-Bitfolgen enthält das System ein zweites Prozessorelement mit einer Bezugsspeicher- Schnittstelle, der Fähigkeit zur Bewegungsschätzung, zur inversen Quantisierung, zur inversen diskreten Kosinustransformation sowie Bewegungskompensationsmittel; und mindestens ein drittes Prozessorelement für die Bewegungsschätzung. Das System kann die Form eines einzelnen integrierten Schaltkreischips oder einer Vielzahl integrierter Schaltkreischips haben, das heißt ein Chip für jeden Prozessor, für das I-Vollbild-Videocodierermodul, für das zweite Prozessorelement und für das dritte Prozessorelement. Es können eine oder mehrere dritte Prozessoreinheiten vorhanden sein.
Die Figuren
Die Erfindung kann unter Bezugnahme auf die anhängenden Figuren klarer verstanden werden.
Fig. 1 zeigt einen Signalflußplan eines dem MPEG2-Standard entsprechenden verallgemeinerten Codierers 11, der eine Einheit zur Ausführung der diskreten Kosinustransformation 21, einen Quantisierer 23, einen Veränderliche-Längen-Codierer 25, einen inversen Quantisierer 29, eine Einheit zur Ausführung der inversen diskreten Kosinustransformation 31, eine Bewegungskompensation 41, einen Vollbildspeicher 42 und eine Bewegungsschätzung 43 enthält. Die Datenpfade enthalten den Eingang für das i-te Bild 111 sowie Differenzdaten 112, Bewegungsvektoren 113, den Bildausgang 121, die Bildrückführung für die Bewegungsschätzung und Kompensation 131 und für das bewegungskompensierte Bild 101. Diese Figur setzt voraus, daß das i-te Bild im Bildspeicher 42 vorhanden ist und daß das i + 1ste Bild mittels Bewegungsschätzung codiert wird.
Fig. 2 verdeutlicht die I-, P- und B-Bilder, Beispiele ihrer Anzeige- und Übertragungsreihenfolge und die Vorwärts- und Rückwärts-Bildvorhersage.
Fig. 3 verdeutlicht die Suche des Bewegungsschätzungsblockes im aktuellen Vollbild oder Bild nach dem am besten übereinstimmenden Block im nachfolgenden oder vorhergehenden Vollbild oder Bild. Die Elemente 211 und 211' stellen denselben Ort in den beiden Bildern dar.
Fig. 4 verdeutlicht die Bewegung von Blöcken entsprechend der Bewegungsvektoren von ihrer Position innerhalb eines vorhergehenden Bildes zu einem neuen Bild, und die nachgestellten Blöcke des vorhergehenden Bildes nach der Anwendung von Bewegungsvektoren.
Fig. 5 zeigt die Kombination von drei Codiererchips der Erfindung. Dieses sind der Intra-Chip oder Intra-Prozessor 601, der Weiterverarbeitungs-Chip oder Weiterverarbeitungs-Prozessor 801, hierin ebenfalls gleichbedeutend als Rekonstruktions-Chip oder Rekonstruktions-Prozessor 801 bezeichnet, der Suche-Chip oder Suche-Prozessor 901 und die zugeordneten RAM-Chips 531, 533 und 535, einschließlich DRAM-Chips und SRAM-Chips. Der Intra- Chip oder Intra-Prozessor enthält die Schnittstelle zum Leitrechner, einen digital gefilterten Videoeingang 541 und einen Ausgang für komprimierte Videodaten.
Fig. 6 zeigt ein I-Vollbild-Videocodierermodul 601 mit einer Leitrechner-Schnittstelle 611, einem internen RISC-Prozessor 621, einer Schnittstelle zum Bewegungsschätzungsmittel 631, einer Bildelemente-Schnittstelle 641 zum Empfangen von Bildelementedaten von einem Bildelementebus 643, einer Bildspeicher-Schnittstelle 651 zum Empfangen von Vollbilddaten von und zum Senden von Vollbilddaten an einen externen RAM 653, einen Prozessor zur Ausführung der diskreten Kosinustransformation (DCT-Prozessor) 671, eine Quantisierungseinheit 673, einen Veränderliche-Längen-Codierer 675, einen FIFO-Puffer 677 und eine Schnittstelle zum komprimierten Speichern 679.
Fig. 7 zeigt das Bildspeicherabbild 701 mit einem privaten Speicher 711 für den Prozessor sowie fünf Speichersegmenten 721, 723, 725, 727 und 729.
Fig. 8 zeigt einen S-Chip oder Prozessor 801 mit einer Suchspeicher-Schnittstelle 811, einem Suche-Eingabepuffer 821, einer Suche-Bewegungsschätzung 803 und einer X-Chip- Schnittstelle 831.
Fig. 9 zeigt einen Weiterverarbeitungs-Chip oder Prozessor 901 mit einer Bezugsspeicher-Schnittstelle 911, einem Weiter­ verarbeitungs-Eingabepuffer 921, einer Weiterverarbeitungs- Bewegungsschätzung 903, einem IR-Chip oder einer Prozessorschnittstelle 931, einem Weiterverarbeitungs-Chip oder Prozessorelement 905', einer inversen Quantisierung (IQ) 941, einer inversen diskreten Kosinustransformationseinheit (IDCT) 943 und einer Fehlervorhersage und Bewegungskompensation 945.
Detaillierte Beschreibung der Erfindung
Die Erfindung betrifft skalierbare Codierer und Codierverfahren, die den MPEG- und HDTV-Standards entsprechen. Die Codierfunktionen, die von dem Codierer ausgeführt werden, enthalten die Dateneingabe, die räumliche Komprimierung, die Bewegungsschätzung, die Erzeugung der Makroblock-Arbeitsweise, die Datenrekonstruktion, die Entropiecodierung und die Datenausgabe. Die räumliche Komprimierung enthält die diskrete Kosinustransformation (DCT), die Quantisierung und die Entropiecodierung. Die zeitliche Komprimierung enthält intensive Rekonstruktionsfunktionen wie beispielsweise die inverse diskrete Kosinustransformation, die inverse Quantisierung und die Bewegungskompensation. Die Bewegungsschätzung und Kompensation sind zeitliche Komprimierungsfunktionen. Die räumliche und zeitliche Komprimierung sind sich wiederholende Funktionen mit hohen Verarbeitungsanforderungen.
Im besonderen betrifft die Erfindung einen skalierbaren Prozessor zur Ausführung der räumlichen und zeitlichen Komprimierung, einschließlich der diskreten Kosinustransformation, der Quantisierung, der Entropiecodierung, der Bewegungsschätzung, der Bewegungskompensation und der Vorhersage, und noch spezieller ein skalierbares System zur Ausführung der räumlichen und zeitliche Komprimierung.
Das skalierbare Prozessorsystem der Erfindung besitzt ein Nur-I- Vollbilder-Videocodierermodul mit einem Prozessor zur Ausführung der diskreten Kosinustransformation, einen Quantisierer, einen Veränderliche-Längen-Codierer, einen FIFO-Puffer und einer Schnittstelle zum komprimierten Speichern, um eine I-Vollbilder enthaltende Bitfolge zu erzeugen. Für IPB-Bitfolge enthält das System ein zweites Prozessorelement mit einer Bezugsspeicher- Schnittstelle, der Fähigkeit zur Bewegungskompensation, zur inversen Quantisierung, zur inversen diskreten Kosinustransforma tion sowie Bewegungskompensationsmittel; und mindestens ein drittes Prozessorelement für die Bewegungsschätzung. Das System kann die Form eines einzelnen integrierten Schaltkreischips oder einer Vielzahl integrierter Schaltkreischips haben, das heißt einen Chip für jeden Prozessor, für das I-Vollbild- Videocodierermodul, für das zweite Prozessorelement und für das dritte Prozessorelement. Es können eine oder mehrere dritte Prozessoreinheiten vorhanden sein.
Der erste Komprimierungschritt ist die Beseitigung der räumlichen Redundanz, zum Beispiel der Beseitigung der räumlichen Redundanz in einem stehenden Bildabschnitt eines "I"- Vollbildes. Räumliche Redundanz ist die Redundanz innerhalb eines Bildes. Wegen der auf Blöcken basierenden Natur des Bewegungskompensationsprozesses, der unten beschrieben wird, war es für den MPEG2-Standard wünschenswert, ein auf Blöcken aufbauendes Verfahren zur Verringerung der räumlichen Redundanz zu verwenden. Das Verfahren der Wahl ist die diskrete Kosinustransformation und die diskrete Kosinustransformationscodierung des Bildes. Die diskrete Kosinustransformationscodierung wird mit einer gewichteten skalaren Quantisierung und einer Lauflängencodierung kombiniert, um noch weitergehende Komprimierungsniveaus zu erreichen.
Die diskrete Kosinustransformation ist eine orthogonale Transformation. Orthogonale Transformationen sind, da sie über den Frequenzbereich interpretiert werden, auf Filtersätze orientiert. Die diskrete Kosinustransformation ist ebenfalls eine lokale Transformation. Das heißt, der Codierprozeß tastet ein räumliches Fenster der Größe 8 × 8 ab, was ausreichend ist, um 64 Transformationskoeffizienten oder Unter-Bänder zu erzeugen.
Ein weiterer Vorteil der diskreten Kosinustransformation besteht darin, daß schnelle Codier- und Decodieralgorithmen verfügbar sind. Zusätzlich verhält sich die Unter-Band-Zerlegung der diskreten Kosinustransformation ausreichend gleichförmig, um die Anwendung psycho-visueller Kriterien zu gestatten.
Nach der Transformation sind viele Frequenz-Koeffizienten null, im besonderen die Koeffizienten für hohe räumliche Frequenzen. Diese Koeffizienten werden in Form eines Zickzackmusters organisiert und in Lauf-Amplituden- (Lauf-Pegel) Paare gewandelt. Jedes Paar zeigt die Anzahl von Null-Koeffizienten und die Amplitude der Nicht-Null Koeffizienten an. Dies wird in einem Veränderliche-Längen-Code codiert.
Die Bewegungskompensation wird verwendet, um die Redundanz zwischen Bildern zu verringern oder sogar zu beseitigen. Die Bewegungskompensation nutzt die zeitliche Redundanz aus, indem das aktuelle Bild in Blöcke unterteilt wird, zum Beispiel Makroblöcke, und indem dann in vorhergehend übertragenen Bildern nach einem nahegelegenen Block mit ähnlichem Inhalt gesucht wird. Nur die Differenz zwischen den Bildelementen des aktuellen Blockes und den Bildelementen des vorhergesagten Blockes, der aus dem Bezugsbild ausgeblendet wird, wird für die Übertragung tatsächlich komprimiert und anschließend übertragen.
Das einfachste Verfahren der Bewegungskompensation und Vorhersage besteht darin, die Helligkeits- und Farbwerte, d. h. die Intensität und die Farbe, jedes Bildelementes in einem "I"- Bild aufzuzeichnen und dann Veränderungen der Helligkeits- und Farbwerte, d. h. der Intensität und der Farbe, für jedes spezielle Bildelement in dem nachfolgenden Bild aufzuzeichnen. Dies ist jedoch bezüglich der Bandbreite des Übertragungsmediums, des Speicherbedarfs, der Prozessorkapazität und der Verarbeitungszeit unwirtschaftlich, weil sich zwischen den Bildern Objekte bewegen, das heißt, Bildelementeinhalte bewegen sich von einem Ort in einem Bild zu einem anderen Ort in einem nachfolgenden Bild. Eine bessere Idee besteht darin, ein vorhergehendes oder nachfolgendes Bild zu benutzen, um vorherzusagen, wo sich ein Bildelementeblock in einem nachfolgenden oder vorhergehenden Bild oder Bildern befinden, wird zum Beispiel mit Bewegungsvektoren, und das Ergebnis als "vorhergesagte Bilder" oder "P"-Bilder abzulegen. Im besonderen beinhaltet dies die Ausführung einer besten Schätzung oder Vorhersage darüber, wo die Bildelemente oder Makroblöcke aus Bildelementen des i-ten Bildes in dem i - 1sten oder i + 1sten Bild auftreten werden. Ein weiterer Schritt besteht darin, sowohl nachfolgende als auch vorhergehende Bilder zu verwenden, um vorherzusagen, wo sich ein Bildelementeblock in einem Zwischen-Bild oder "B"-Bild befinden wird.
Es ist zu beachten, daß die Reihenfolge der Bildcodierung und der Bildübertragung nicht notwendigerweise mit der Reihenfolge der Anzeige der Bilder übereinstimmen muß. Vergleiche Fig. 2. Für I-P-B-Systeme unterscheidet sich die Reihenfolge der Bildeingabe von der Codierungsreihenfolge, und die eingegebenen Bilder müssen zeitweilig gespeichert werden, bis sie zur Codierung verwendet werden. Ein Puffer speichert diese Eingaben, bis sie verwendet werden.
Zu Darstellungszwecken wird in Fig. 1 ein verallgemeinerter Signalflußplan eines dem MPEG-Standard entsprechenden Codierers gezeigt. In dem Signalflußplan werden die Darstellungen des i-ten Bildes und des 1 + 1sten Bildes verarbeitet, um Bewegungsvektoren zu erzeugen. Die Bewegungsvektoren sagen voraus, wo sich ein Bildelemente-Makroblock in einem vorhergehenden und/oder einem nachfolgenden Bild befinden wird. Die Verwendung von Bewegungsvektoren anstatt vollständiger Bilder ist ein Schlüsselaspekt der zeitlichen Komprimierung in den MPEG- und HDTV-Standards. Wie in Fig. 1 dargestellt, werden die Bewegungsvektoren, wenn sie einmal erzeugt wurden, verwendet, um die Bewegung der Bildelemente-Makroblöcke vom i­ ten Bild zum i + 1sten Bild zu beschreiben.
Wie in Fig. 1 dargestellt, werden die Darstellungen des i-ten Bildes und des i + 1sten Bildes im Laufe des Codierprozesses im Codierer 11 verarbeitet, um die Bewegungsvektoren zu erzeugen, welche die Art und Weise darstellen, in welcher zum Beispiel das i + 1ste und die nachfolgenden Bilder codiert und übertragen werden. Ein Eingabe-Bildabschnitt 111 eines nachfolgenden Bildes wird an die Bewegungsschätzungseinheit 43 des Codierers angelegt. Als Ausgangssignal der Bewegungsschätzungseinheit 43 werden die Bewegungsvektoren 113 gebildet. Diese Vektoren werden durch die Bewegungskompensationseinheit 41 verwendet, um Makroblockdaten aus vorhergehenden und/oder zukünftigen Bildern zu gewinnen, die als "Bezugsdaten" bezeichnet werden und die von dieser Einheit ausgegeben werden. Ein Ausgabewert der Bewegungskompensationseinheit 41 wird negativ zu dem Ausgabewert der Bewegungsschätzungseinheit 43 addiert und auf den Eingang der Einheit 21 zur Ausführung der diskreten Kosinustransformation gegeben. Die Ausgabe der Einheit 21 zur Ausführung der diskreten Kosinustransformation wird in einem Quantisierer 23 quantisiert. Der Ausgang des Quantisierers 23 wird in zwei Ausgänge, 121 und 131, aufgespalten; ein Ausgang 121 geht auf ein nachgeordnetes Element 25 zur weiteren Komprimierung und Verarbeitung vor der Übertragung, wie beispielsweise einen Lauflängencodierer; der andere Ausgang 131 durchläuft die Rekonstruktion des codierten Bildelemente- Makroblockes zum Speichern im Bezugsspeicher 42. In dem zu Darstellungszwecken gezeigten Codierer durchläuft der zweite Ausgabewert 131 eine inverse Quantisierung 29 und eine inverse diskrete Kosinustransformation 31, um eine verlustbehaftete Version des Differenz-Makroblockes zurückzugeben. Diese Daten werden zu dem Ausgabewert der Bewegungskompensationseinheit 41 addiert und geben eine verlustbehaftete Version des ursprünglichen Bildes an den Bezugsspeicher 42 zurück.
Wie in Fig. 2 dargestellt, gibt es drei Typen von Bildern. Dies sind "Innere Bilder" oder "I"-Bilder, welche als Ganzes codiert und übertragen werden und keine Bewegungsvektoren benötigen. Diese "I"-Bilder dienen als Quelle für Bewegungsvektoren. Es gibt "Vorhergesagte Bilder" oder "P"-Bilder, welche durch Bewegungsvektoren aus einem vorhergehenden Bild gebildet werden und die als Quelle für Bewegungsvektoren für weitere Bilder dienen können. Schließlich gibt es "Zweirichtungs-Bilder" oder "B"-Bilder, welche durch Bewegungsvektoren aus zwei anderen Bildern gebildet werden, einem vergangenen und einem zukünftigen, und die nicht als Quelle von Bewegungsvektoren dienen können. Bewegungsvektoren werden aus "I"- und "P"-Bildern erzeugt und verwendet, um "P"- und "B"-Bilder zu bilden.
Ein Verfahren, mittels dem die Bewegungsschätzung ausgeführt wird, wird in Fig. 3 dargestellt und ist ausgehend von einem Makroblock 21, die Suche eines i-ten Bildes innerhalb eines Bereiches des nächsten Bildes, um den am besten übereinstimmenden Makroblock 213 zu finden. Das Verschieben der Makroblöcke auf diese Art und Weise ergibt für das i + 1ste Bild ein Makroblockmuster, wie es in Fig. 4 dargestellt wird. Auf diese Weise wird das i-te Bild ein wenig verändert, z. B. durch Bewegungsvektoren und Differenzdaten, um das i + 1ste Bild zu erzeugen. Was codiert wird, sind die Bewegungsvektoren und Differenzdaten und nicht das i + 1ste Bild selbst. Bewegungsvektoren verschieben die Position eines Bildabschnittes von Bild zu Bild, während die Differenzdaten Veränderungen in Helligkeit, Farbwerten und der Sättigung übertragen, d. h. Veränderungen in den Schatten und der Beleuchtung.
Wir kehren zu Fig. 3 zurück und suchen eine gute Übereinstimmung, indem im i-ten Bild sowie im i + 1sten Bild von demselben Ort ausgegangen wird. Im i-ten Bild wird ein Suchfenster erzeugt. Gesucht wird eine beste Übereinstimmung innerhalb dieses Suchfensters. Einmal gefunden, werden die Bewegungsvektoren für den am besten übereinstimmenden Makroblock codiert. Die Codierung des am besten übereinstimmenden Makroblockes beinhaltet einen Bewegungsvektor das heißt, wieviele Bildelemente in y-Richtung und wieviele Bildelemente in x-Richtung der am besten übereinstimmende Makroblock im nächsten Bild verschoben ist. Die Differenzdaten, auch als "Vorhesagefehler" bezeichnet, welche die Differenz in Farbwerten und Helligkeit zwischen dem aktuellen Makroblock und dem am besten übereinstimmenden Bezugs- Makroblock angeben, werden ebenfalls codiert.
Die Arbeitsfunktionen eines MPEG2-Codierers sind in drei grundlegenden Elementen realisiert: einem I- oder Intra-Element, einem R- oder Weiterverarbeitungs- oder Rekonstruktions-Element und einem S- oder Suche-Element. Die Funktionen sind entsprechend der Anwendungsanforderungen, der Chipgröße, der Entwicklungswerkzeuge und Komplexität und der Leistungsfähigkeit unterteilt.
Wie in Fig. 6 dargestellt, findet die gesamte externe Kommunikation einschließlich der Bildelemente-Schnittstelle 641, der Leitrechner-Schnittstelle 611 und der Datenausgabe- Schnittstelle 679 über ein einzelnes I-Element 601 statt. Das I- Element 601 ist die Master-Schnittstelle des Codierers und eine grundlegende Anforderung in einer beliebigen Videokomprimierungsanwendung unter Verwendung des Chipsatzes der Erfindung, wie sie in Fig. 5 dargestellt ist. In diesem Chip ist ein programmierbarer Prozessor 621 zusammen mit den Entropiecodierfunktionen, das heißt der diskreten Kosinustransformations-Prozessoreinheit 6713 der Quantisierungseinheit 673, und einem Veränderliche-Längen- Codierer 672 integriert. Infolgedessen könnte dieses Bauelement in einer Anwendung eingesetzt werden, die nur das Codieren von Nur-I-Vollbildern erfordert. Um funktionelle Erweiterungen zu er möglichen, ist eine Rekonstruktions-Schnittstelle hinzugefügt worden. Die vor der Codierung anzuwendenden Verarbeitungsfunktionen sind ebenfalls in diesem Bauelement enthalten.
Die wiederaufbauende Verarbeitung des Makroblockes ist für alle I-Vollbild- und P-Bild-Codierungen erforderlich. Funktionen wie die inverse diskrete Kosinustransformation 943 (IDCT), die inverse Quantisierung 941 (IQ) und die Bewegungskompensation 903 (MC) sind in einem einzelnen Chip untergebracht, dem R-Chip oder R-Prozessor 901, wie er in Fig. 9 dargestellt ist. Eine gering entwickelte Bewegungsschätzungsfähigkeit mit einem programmierbaren Prozessor wird ebenfalls hinzugefügt, um Anwendungen mit langsamen Bewegungen zu behandeln. Für Anwendungen mit höheren Anforderungen an die Bewegungsschätzung ist eine Ergebnissuche-Schnittstelle eingebaut. Dadurch können I- und R-Chip zusammen in Anwendungen mit wenig Bewegung eingesetzt werden, wie beispielsweise Fernunterricht, Videokonferenzen, für Überwachungsaufgaben usw.
Die Bewegungsschätzung ist eine sich wiederholende Funktion und stellt hohe Anforderungen an die Verarbeitung. Ein Hardware- Bauelement, der Suche-Chip oder Suche-Prozessor 801, der in Fig. 8 mit extern programmierbaren Registern dargestellt ist, ist für diese Funktion vorgesehen. Es ist eine Erweiterungs- Schnittstelle vorhanden, um einen größeren Suchbereich zu erhalten. Die Drei-Chip-Konfiguration kann für Anwendungen wie Rundfunkübertragungen und dergleichen eingesetzt werden. Für schnellere Bewegungen, beispielsweise bei wissenschaftlichen Anwendungen mit Hochgeschwindigkeitsfotografie können zusätzliche S-Chips eine höhere Bildqualität mit einem größeren Suchbereich bereitstellen. Dies ist eine skalierbare Eigenschaft der vorliegenden Architektur.
Chip-Unterteilung
Die Verbindungen der drei Codiererchips sind in Fig. 5 dargestellt. Fig. 5 zeigt die Kombination der drei Codiererchips der Erfindung. Dieses sind der Intra-Chip oder Intra-Prozessor 601, der Weiterverarbeitungs-Chip oder Weiterverarbeitungs-Prozessor 801, der Suche-Chip oder Suche- Prozessor 901 und die zugeordneten RAM-Chips 531, 533 und 535 einschließlich DRAM-Chips und SRAM-Chips. Der Intra-Chip oder Intra-Prozessor enthält die Schnittstelle zum Leitrechner, einen digital gefilterten Videoeingang 541 und einen Ausgang für komprimierte Videodaten 543.
I-Chip
Der in Fig. 6 dargestellte I-Chip behandelt die Eingabedaten 541 und die Ausgabebitfolge 543 des Codierersystems. Die eingehenden Bildelementedaten werden im Vollbildformat in einem externen DRAM gespeichert, der als Vollbildspeicher bezeichnet wird. Dieser Chip führt die Kernfunktionen aus, die für die I- Vollbild-Codierung erforderlich sind. Die Bildelementedaten werden, wenn erforderlich, aus dem RGB-Format in das YCbCr- Format gewandelt. Die Bildelementedaten werden auf Szenenänderungen und auf sich wiederholende Felder überwacht, auf der Basis von 3:2 Auszügen. Die eingehenden Bildelementedaten werden ebenfalls nachgestellt, um ein HHR- Ausgabeformat zu erzeugen. Der Codierer kann eine feldorientiertes oder ein vollbildorientiertes Format empfangen und codierte Felder oder Vollbilder ausgeben, unabhängig davon, welches Format die Eingabe hatte. Eingabedaten 4:2:2 können als 4:2:2 oder 4:2:0 Ausgabedaten codiert werden. Der auf dem Chip integrierte RISC-Prozessor 621 ist für die adaptive DCT, die adaptive Quantisierung und die Geschwindigkeitssteuerung verantwortlich. Der Prozessor besitzt eine dynamisch unterteilbare Struktur, die es ihm gestattet, als 4-Byte- Maschine oder als vier 1-Byte-Maschinen zu arbeiten. Dies wird in unserer gemeinsamen, ebenfalls anhängenden US-Patentanmeldung Nr. 08/411 239 vom 27. März 1995 von Charles Boice, John M. Kaczmarczyk, Agnes Ngai und Robert C. Woodard mit dem Titel "DYNAMICALLY PARTITIONABLE DIGITAL VIDEO PROCESSOR" beschrieben, deren Offenbarung durch diese Bezugnahme hierin mit aufgenommen wird.
Die codierten Bilddaten werden mit Kopfzeileninformationen vermischt, wie dies in unserer gemeinsamen, ebenfalls anhängenden US-Patentanmeldung Nr. 08/410 951 vom 27. März 1995 von James D. Greenfield, Diane M. Mauersberg und Agnes Ngai mit dem Titel "APPARATUS FOR HEADER GENERATION" beschrieben, deren Offenbarung durch diese Bezugnahme hierin mit aufgenommen wird. Dies erzeugt die letztendliche MPEG-2- oder MPEG-1-Bitfolge, welche der Codierer in einen externen DRAM oder FIFO schreiben kann, zum Beispiel über die Schnittstelle 679 zum komprimierten Speichern. Wenn das Bild in einem DRAM gespeichert wird, kann es durch den Benutzer über die Leitrechner-Schnittstelle in Nicht- Echtzeit ausgelesen werden.
Der R-Chip 901, ebenfalls als Weiterverarbeitungs-Chip oder Rekonstruktions-Chip bezeichnet, der in Fig. 9 dargestellt ist, ist für die Weiterverarbeitung mittels Suchverfahren zur Bewegungsschätzung und für die Bildrekonstruktion zur Bewegungskompensation verantwortlich. Zur Unterstützung der Bewegungsschätzungsfunktion wird externer DRAM eingesetzt. Die Funktionseinheiten des R-Chips führen alle die Grundfunktionen aus, die für die Rekonstruktion der Bilder und für die Bewegungsschätzung erforderlich sind.
Die Hauptfunktionen des Prozessors sind auf Makroblöcken basierende Entscheidungen, die Einstellung des Suchbereiches pro Bild und die Unterstützungen der Bewegungsschätzung. Die Quantisiererdaten werden von der Bewegungsschätzer-Schnittstelle 631 des I-Chips empfangen, während S-Chip-Suchergebnisse vom S- Chip auf der X-Chip-Schnittstelle 831 empfangen werden. Quantisierte Daten werden dann unter Verwendung von bis zu vier Matrizentabellen dequantisiert. Die IDCT wandelt über eine zweidimensionale inverse Transformation die Koeffizienten in Bildelementedaten um. Diese rekonstruierten Bilddaten werden als Bezugsdaten für nachfolgende Bildcodierungen über die Speicher- Schnittstelle gesichert. Die Bewegungsschätzung kann Feld- und Bildbewegungen, doppelte, einzelne und Zweirichtungs-Bewegungen bis zu einer Auflösung von einem halben Bildelement für I- P- und B-Bilder unterstützen.
Die Zwei-Chip-Konfiguration (Intra- und Weiterverarbeitungs/­ Rekonstruktions-Chips) kann einen Suchbereich bis zu +/- 8horizontal und +/-7vertikal unterstützen, und die Drei-Chip- Konfiguration (Intra-, Weiterverarbeitungs/Rekonstruktions und Suche-Chips kann einen Suchbereich bis zu +/-64horizontal und +/-56vertikal unterstützen. Wenn Bewegungsschätzungsergebnisse benötigt werden, werden die Größe des Suchfensters und die Ergeb­ nisse der Suche nach der besten Übereinstimmung bestimmt und die Makroblock-Differenzdaten erzeugt.
Suche-Chip
Der Suche-Chip 801, der in Fig. 8 dargestellt ist, ist für den Hauptanteil der Bewegungsschätzung verantwortlich. Der Zweck der Bewegungsschätzung besteht darin, den Platz eines Makroblockes aus dem aktuellen Bild (CMB) in dem Bezugsbild zu finden. Dieser Ort wird bestimmt, indem die beste Übereinstimmung gefunden wird, welche durch Vergleichen der CMB-Daten mit den Bezugsbilddaten und Einbeziehen eines systematischen Faktors, welcher auf der Bewegung der vorhergehenden Bilder basiert, festgestellt wird.
Das gesamte Bezugsbild kann in Echtzeit nicht abgesucht werden. Deshalb erfolgt die Suche in einem Untersatz des Bezugsbildes. Dieser Untersatz wird als Suchfenster bezeichnet. Vergleiche Fig. 3. Je größer das Suchfenster ist, desto größer ist die Chance, eine exakte Übereinstimmung für den CMB zu finden. Das Suchfenster kann deutlich vergrößert werden, indem zusätzliche Suche-Chips 801 benutzt werden. Eine leistungsfähige Bewegungsschätzung erzeugt Videobilder höherer Qualität und stark komprimierte Bitfolgen. Der Suche-Chip empfängt auf der Grundlage der Bildstruktur die Suchfensterparameter von dem Prozessor auf dem Weiterverarbeitungs/Rekonstruktions-Chip und die Helligkeitsdaten entweder im Vollbild- oder Feldformat von dem Intra-Chip.
Die Bezugsbilder werden im Vollbildformat in einem gespeichert. Die Bewegungsschätzungseinheit führt eine Feldsuche auf dem CMB und dem Bezugsbild durch. Zusammen mit einem Vollbildergebnis für Vollbildstrukturierte Bilder werden vier Feldergebnisse berechnet. Die Ergebnisse haben die Form absoluter Differenzwerte und werden auf der Grundlage der Bewegungscharakteristik vorhergehender Bilder systematisch beeinflußt. Die beeinflußten absoluten Differenzwerte werden zusammen mit Bewegungsvektoren an den R-Chip 901 gesendet.
Verarbeitungsablauf
Der I-Chip 601 enthält sowohl Vorverarbeitungs- als auch Entropiecodierfunktionen. Die Vorverarbeitungsfunktionen werden vor einer beliebigen Codierfunktion ausgeführt. Die Entropiecodierung ist der letzte Abschnitt der Bildverarbeitung.
Ihr Blockschaltbild ist in Fig. 6 dargestellt.
Auf dem Intra-Chip 601 ist eine Leitrechner-Schnittstelle 611 installiert, die als Hauptsteuerkanal zwischen dem Codiererchipsatz und dessen Umgebung dient. Diese Schnittstelle ist ein generisches RAM-Protokoll mit 16 Datenbits und 8 Adreßbits. Die an dieser Schnittstelle definierten Register enthalten Befehle, Konfigurationsparameter, Codierparameter, Initialisierungsdaten, den elektronischen Briefkasten usw. Die Leitrechnerbefehle enthalten Start Codieren, Stopp Codieren, Abrufen des komprimierten Bildes aus dem Ausgabe-DRAM usw. Die Konfigurationsparameter enthalten die Speichergröße, den Speichertyp, die im Codierersystem installierte Chipanzahl usw.
Die Codierparameter können beim Einschalten gesetzt werden oder an einer Bildgrenze modifiziert werden, um den Codierprozeß zu leiten. Diese Parameter enthalten unter anderem das Videoeingabeformat gegenüber dem Videoausgabeformat, die Benutzer-Matrizentabellen, die Intra-VLC-Tabelle, das ZZ- Abtastmuster, die Feld/Vollbild-Bildcodierung, die Anzahl der Bilder pro Bildfolge, die Anzahl der Bilder pro GOP, die Anzahl der B-Bilder, die Anzahl der Bezugsfelder und benutzerspezifische Daten. Diese Schnittstelle wird ebenfalls verwendet, um den Chipsatz zu initialisieren. Im Codiererchipsatz gibt es zwei interne Prozessoren. Die Befehle beider Prozessoren werden über diese Schnittstelle heruntergeladen. Zusätzlich sind Puffer vorhanden, die einen speziellen Inhalt verlangen, um ordnungsgemäß zu funktionieren, und diese werden ebenfalls über diese Schnittstelle initialisiert.
Der elektronische Briefkasten ist ein Nachrichtenübertragungsmechanismus zwischen dem chip-internen Prozessor und dem externen Prozessor. Wenn ein Befehl oder eine neue Information über das Briefkastenregister mit dem korrekten Prozessorcode an den chip-internen Prozessor gesendet wird, wird der neue Befehl ausgeführt. Diese Register stellen eine gewisse Flexibilität bereit. Die definierten Funktionen könnten während Codierprozesses durch Leitrechner-Schreiboperationen deaktiviert oder inaktiviert werden.
Auf der Schnittstelle wird weiterhin ein Stapelspeicher installiert, um zu ermöglichen, daß Register während des Codierprozesses verändert werden. Der Stapelspeicher besitzt eine Tiefe von zwölf Einträgen. Die Leitrechner- Schreiboperationen werden, wenn der Codierer mit der Codierung eines Bildes beschäftigt ist, nur in diesen Stapelspeicher geschrieben. Die in den Stapelspeicher geschriebenen Informationen werden am Ende der Verarbeitung des aktuellen Bildes verarbeitet. Der Codierer erscheint für den externen Prozessor solange beschäftigt, bis der Stapelspeicher leer ist. Dieses Entwurfsmerkmal verringert die Kommunikationszeit zwischen der Bildverarbeitung und ermöglicht eine maximale Codierzeit.
Bildelemente-Schnittstelle
Die Bildelemente-Schnittstelle ist eine 24-bit-Bildelemente- Schnittstelle, die verwendet wird, um digitale Eingangssignale im RGB-Format zu empfangen. Sie kann ebenfalls 16 oder 24 bit breite YCbCr-Eingabedaten bearbeiten. Die Farbkonvertierungsschaltung, die Szenenwechsel-Erkennungslogik und die 3/2-Auszug-Inversionsfunktion sind ebenfalls auf dieser Schnittstelle installiert.
Der Prozeß der Farbkonvertierung, eine Form der Datenreduktion, kann Eingabedaten im 4:2:2 oder 4:2:0 Farbwert-Codeformat umwandeln.
Jeder Ort innerhalb eines Bildes wird durch Helligkeits- und Farbwert-Bildelementdaten dargestellt. Wie im MPEG2-Standard spezifiziert, sind YCbCr-Daten das Eingabedatenformat für die Komprimierung und das Ausgabedatenformat für die Dekomprimierung. Für RGB-Daten muß die Eingabe zuerst in das 4:2:2-Format gewandelt werden, bevor ein Codierprozeß durchgeführt werden kann. Wenn die Eingabedaten das 4:2:2 YCbCr- Format besitzen, bedeutet dies, daß jeder Punkt eines Bildes durch 8 Bits Helligkeitsdaten und 8 Bits alternativer Cb und Cr Farbdaten dargestellt wird. Wenn die Eingabedaten das 4:2:0 YCbCr-Format besitzen, bedeutet dies, daß jeder Punkt eines Bildes durch 8 Bits Helligkeitsdaten und horizontal und vertikal untergetastete alternative Cb und Cr Farbdaten dargestellt wird. Die unnötige redundante Information wird durch den Prozeß der Farbkonvertierung und/oder die Formatdezimierung von 4:2:2 auf 4:2:0 in der Eingangsstufe entfernt, um einen Komprimierungsschritt auszuführen und die durch den verbleibenden Codierer fließende Datenmenge zu verringern. Dies verringert die Leistungsanforderungen in den verbleibenden Elementen.
Um einen weiten Bereich Anwendungen abzudecken, beschreibt der MPEG2-Standard viele Codierwerkzeuge und Optionen für den Komprimierungsprozeß. Das Abwägen zwischen Qualität/Leistungs­ fähigkeit und Komplexität bleiben jedoch für eine gegebene Anwendung dem Entwickler der Codierer überlassen. Viele der Codieroptionen sind innerhalb eines Bildes anpaßbar, entweder auf Bildebene oder auf Makroblockebene. Diese Flexibilität gestattet eine verbesserte Steuerung der Bitgeschwindigkeit. Dynamische und adaptive Veränderungen von Codieroptionen könnten auf der Grundlage der vorliegenden Informationen auf zukünftige Codierungen angewandt werden, oder sie könnten auch auf Grundlage zukünftiger Informationen auf die aktuellen Daten angewandt werden. Die Erkennung von Szenenwechseln, ein Vorgriffsmechanismus, der Bildinformationen vor dem Codierprozeß sammelt, stellt weitaus leistungsfähigere Steuermöglichkeiten bereit. Die Erkennung von Szenenwechseln zeigt große Veränderungen zwischen Bildern und ebenfalls Komplexitätsänderungen an. Die Berechnungen zur Erkennung von Szenenwechseln werden mit den Eingabedaten durchgeführt; für die verbleibenden Funktionen ergeben sich keine zusätzlichen Anforderung an den Datendurchsatz oder die Bandbreite. Da sich die Reihenfolge der Bildeingabe von der Codierreihenfolge unterscheiden kann, wird in der Szenenwechsel-Erkennungslogik die Information von bis zu drei Bildern vorverarbeitet. Die Szenenwechsel-Erkennungslogik kann verwendet werden, um die Qualität des gerade verarbeiteten Bildes zu regulieren. Dieser Umfang des Vorgreifens auf Informationen gestattet es dem Codierer, die Codieroptionen sowohl am Beginn als auch in der Mitte der Bildverarbeitung dynamisch zu verändern.
Wenn eine 3/2-Auszugsinversion (3/2 PDI) freigegeben wird, enthalten die Eingabedaten redundante oder sich wiederholende Felder. Um leistungsfähiger zu werden, müssen die redundanten Daten vor der Codierung entfernt werden. Die Erkennung sich wiederholender Felder erfordert die Sicherung von mindestens einem Feld. Der Bedarf an chip-internem Speicherplatz für die Erkennung sich wiederholender Felder macht es ökonomischer, die Felddaten in externem Speicher aufzubewahren. Die Eingabedaten werden zuerst im Vollbildspeicher-DRAM gespeichert und müssen für die Erkennung sich wiederholender Felder und die Bildcodierung abgerufen werden. Das Erkennungsschema beruht auf einem 3/2-Muster. Mit einer leistungsfähigen 3/2- Auszugsinversionslogik würden von jeweils 30 eingegebenen Bildern nach Anwendung der 3/2-Auszugsinversion nur fünfundzwanzig Bilder codiert. Die restliche Speicherbandbreite könnte dann für den Abruf der sich wiederholenden Felddaten benutzt werden. Um den Speicherverkehr zu minimieren, wird das folgende Schema angewandt: Wenn die Eingabedaten zuerst ein ungeradzahliges Feld enthalten, wird die Erkennung zuerst mit den Daten des ungeradzahligen Feldes ausgeführt, und die Datenerkennung in einem geradzahligen Feld wird ausgeführt, nachdem ein wiederholtes ungeradzahliges Feld erkannt worden ist. Wenn die Eingabedaten zuerst ein geradzahliges Feld beinhalten, findet der umgekehrte Vorgang statt. Wenn ein Datenbyte an der Bildelemente-Schnittstelle empfangen wird, wird derselbe Byteplatz im vorhergehenden Feld gleicher Parität aus dem Vollbildspeicher wiederhergestellt. Ein sich wiederholendes Feld wird am Ende der Bildfeldeingabe erkannt. Wenn das Feld ein sich wiederholendes Feld ist, wird dessen Speicherplatz für die Eingabe des nächsten Feldes derselben Parität benutzt. Dies beseitigt komplexe Speicherzugriffe während der Bildcodierung.
Vollbildspeicher-Schnittstelle
Die Vollbildspeicher-Schnittstelle ist in Fig. 7 dargestellt. Am Ausgang der Bildelemente-Schnittstelle sind die Eingabedaten soweit vorverarbeitet, um in dem an den Intra-Chip angeschlossenen externen Vollbild-DRAM gespeichert zu werden. Dieser Vollbildspeicher wird nur benutzt, um das eingegebene Bild (die aktuellen Daten) zu speichern, bis es für die Codierung bereit ist. Der Datenverkehr über diese Schnittstelle ist etwa doppelt so groß wie die Übertragungsrate der Eingabedaten. Es wird ein 32 bit breiter Datenbus verwendet, um den DRAM zu unterstützen, z. B. einen 70 ns DRAM. Für die I- und IP-Codierformate ist die Reihenfolge der Bildeingabe dieselbe wie die Reihenfolge der Bildcodierung. Aus diesem Grund beginnt die Codierung, wenn ein Makroblock Daten verfügbar ist. In dieser Konfiguration wird der Vollbildspeicher in sechs Segmente unterteilt, fünf für die Daten des Eingabebildes und eins für die Verwendung durch den chip-internen Prozessor. Für jedes Eingabebild wird ein Segment des Vollbildspeichers ausgewählt. Die Daten innerhalb eines Bildes werden an vorgegebenen Distanzen zur Anfangsadresse des ausgewählten Segmentes sequentiell gespeichert. Jedes Segment hat die Größe eines Viertels eines Bildes, mit Ausnahme des Segmentes für die Verwendung durch den Prozessor, das kleiner sein kann. Für jedes Eingabebild werden vier aufeinanderfolgende Segmente verwendet. Die fünf Segmente werden rotierend benutzt. Die Speicherabbildung ist in Fig. 7 dargestellt.
Wenn das erste Eingabebild empfangen wird, wird es in Segment vier gespeichert. Da die Größe jedes Segmentes nur ein Viertel eines Bildes beträgt, benutzt das erste Bild die Segmente 4, 3, 2 und 1. Das zweite Eingabebild wird in den Segmenten 0, 4, 3 und 2 gespeichert. Das dritte Bild wird in den Segmenten 1, 0, 4, und 3 gespeichert. Das vierte Bild wird in den Segmenten 2, 1, 0, und 4 gespeichert. Das fünfte Bild benutzt die Segmente 3, 2, 1, und 0. Dann wiederholt sich das Muster der Segmentbenutzung. Dieses Schema minimiert die externen Speicheranforderungen, für I- und IP-Konfigurationen werden 1 MByte DRAM benötigt. Für das IPB-Codierformat ist die Reihenfolge der Bildeingabe von der Reihenfolge der Bildcodierung verschieden, wie dies in Fig. 2 dargestellt ist. Somit muß ein Eingabebild vollständig gespeichert werden, bis es zur Verwendung bereit ist. In diesem Fall beträgt die Speichergröße 2 MByte für NTSC und 4 MByte für PAL. Der Vollbildspeicher wird in fünf Segmente unterteilt, vier Eingabebilder und eins für die Verwendung durch den chip­ internen Prozessor. Jedes Segment hat die gleiche Größe wie ein Bild. Es wird auf ähnliche Weise benutzt wie bei den Nicht-IPB- Formaten. Dieses Schema ermöglicht auf Grundlage des Codierformates skalierbare Speicheranforderungen.
Der hauptsächliche Speicherverkehr im Vollbildspeicher besteht aus dem Speichern der Eingabedaten, dem Datenabruf bei der 3/2- Auszugsinversion und dem Abruf von Codierdaten. An der Voll­ bildspeicher-Schnittstelle wird ein Prioritätsschema angewandt, wobei die Eingabedaten die höchste Priorität aufweisen und der Datenabruf für die Auszugsinversion die niedrigste Priorität aufweist. Eine Speicheranforderung zum Speichern von Eingabedaten wird ausgegeben, wenn 32 Bytes oder mehr Daten in der Bildelemente-Schnittstelle eingegangen sind. Die Daten werden kontinuierlich im DRAM gespeichert, jeweils 4 Bytes gleichzeitig, bis weniger als 32 Datenbytes in der Bildelemente- Schnittstelle stehen, wobei zu diesem Zeitpunkt weitere anhängende Abrufe von Daten aus dem Speicher bedient werden. Der Abruf von Codierdaten umfaßt einen Makroblock von 16 mal 16 Bytes. Dieser Speicherzugriff kann an einer beliebigen DRAM- Zeilenadresse durch eine Speicheranforderung der Eingabedaten unterbrochen werden. Die Unterbrechung des Speicherzugriffs verhindert einen Datenüberlauf an der Bildelemente- Schnittstelle.
Die Makroblockdaten werden vorabgerufen, um eine Blockierung der Codiererpipeline zu verhindern. Wenn die Makroblockdaten verfügbar sind, beginnt der Codierprozeß. Der Datenfluß der Makroblockdaten hängt von dem verarbeiteten Bildtyp ab. Zum Zweck der vorliegenden Beschreibung wird angenommen, daß eine vorausschauende Bildverarbeitung durchgeführt wird. Dann werden bei einem P-Bild die aktuellen Makroblockdaten für alle drei Bauelemente gleichzeitig bereitgestellt. Die Datenbenutzung innerhalb jedes Chips ist unterschiedlich, und der Zeitpunkt, zu dem die Daten verwendet werden, ist ebenfalls unterschiedlich. Der logische Fluß der Daten dieses Makroblockes ist, wenn sie von allen empfangenden Bauelementen empfangen werden, vom S-Chip 801 zum R-Chip 901 und dann zurück zum I-Chip 501.
Verarbeitung im Suche-Chip Suche-Eingabepuffer
Im Suche-Chip 801, der in Fig. 8 dargestellt ist, werden die aktuellen Makroblockdaten hauptsächlich zur Bewegungsschätzung benutzt. Abhängig vom durch den Benutzer ausgewählten Suchformat werden die Makroblockdaten entweder 4 zu 1 oder 2 zu 1 heruntergetastet oder verbleiben 1 zu 1 im Eingabepuffer. Ein einzelner Suche-Chip 801 stellt im 4 zu 1 Format den größten und im 1 zu 1 Format den kleinsten Suchbereich bereit. Das Heruntertasten wird sowohl im 4 zu 1 als auch im 2 zu 1 Format in horizontaler Richtung durchgeführt. Diese Schema beseitigt die Komplexität von Vollbild- und Feld-Suchen auf der Basis der Bewegungsschätzung in denselben heruntergetasteten Daten. Die heruntergetasteten Daten werden im Suchspeicher, dem externen Speicher, der an den Suche-Chip angeschlossen ist, gespeichert, wobei sie für den nachfolgenden Bildcodierprozeß als Bezugsdaten verwendet werden. Die Eingabedaten werden in der Bewegungsschätzung verwendet und stellen eine genauere Differenz zwischen den Daten der beiden Bilder bereit. Gleichzeitig werden die Daten des zuvor codierten Bezugsbildes zur Bewegungsschätzung aus dem Suchspeicher abgerufen. Der Umfang der abzurufenden Bezugsdaten für jeden zu verarbeitenden Makroblock hängt vom Ort des Makroblockes und vom Suchbereich ab.
Um Chipressourcen (Siliziumfläche) zu sparen, können die chip­ internen Puffer für die Bezugsdaten in der Bewegungsschätzungseinheit 20 von 128 Zeilen des Suchfensters gleichzeitig enthalten. Die Bezugsdaten werden abgerufen, wenn der Suchprozeß fortschreitet. Die Puffer für die Bezugsdaten umfassen zwei gleichgroße Einheiten. Eine dieser Einheiten wird für die Daten der ungeradzahligen Zeilen verwendet und die andere für die Daten der geradzahligen Zeilen. Die beiden Puffer sind separate Funktionseinheiten. Somit können die Suchprozesse in den ungeradzahligen Daten und in den geradzahligen Daten gleichzeitig stattfinden.
Die größte Herausforderung bei der Bewegungsschätzung sind die Anforderungen an die Verarbeitungskapazität. Um die Suchschaltung zu minimieren, werden Feldsuchen zusammen ausgeführt, und die Ergebnisse der Feldsuchen werden kombiniert, um Vollbild-Suchergebnisse zu bilden. Zum Beispiel seien CF1 die ungeraden Zeilen der aktuellen Makroblockdaten, CF2 die geraden Zeilen der aktuellen Makroblockdaten, Rf1 die ungeradzahligen Zeilen der Bezugsdaten, und Rf2 seien die geradzahligen Zeilen der Bezugsdaten.
Es werden vier Feldsuchen gleichzeitig ausgeführt, Cf1 gegen Rf1, Cf1 gegen Rf2, Cf2 gegen Rf1 und Cf2 gegen Rf2. Die Ergebnisse von Cf1 gegen Rf1 und von Cf2 gegen Rf2 sowie von Cf2 gegen Rf1 und von Cf1 gegen Rf2 werden kombiniert, um die Vollbild-Suchergebnisse zu bilden. Dieses Schema läßt die die Vollbild-Suchschaltung überflüssig werden.
Suche-Chip Ergebnis
Es werden fünf vollständige Bildelementeergebnisse für jeden vollbildstrukturieren Makroblock erzeugt. Für jeden feldstrukturieren Makroblock werden bis zu zwei vollständige Bildelementeergebnisse erzeugt, eine beste Übereinstimmung für das aktuelle ungeradzahlige Feld und eine beste Übereinstimmung für das aktuelle geradzahlige Feld.
X-Chip-Schnittstelle
Die X-Chip-Schnittstelle 831 unterstützt die Kommunikation zwischen dem Suche-Chip 901 und dem Weiterverarbeitungs-Chip oder Rekonstruktions-Chip 801 sowie zwischen weiteren Suche- Chips 901 innerhalb der Konfiguration. Für jeden Makroblock werden bis zu fünf Suchergebnisse, ein Vollbild und vier Felder, über diese Schnittstelle an den R-Chip weitergeleitet. Diese Schnittstelle wird ebenfalls für Kommunikationen zwischen Suche- Chip 901 und Suche-Chip 901 verwendet. Bei Multi-Suche-Chip- Konfigurationen besitzt jeder Suche-Chip 901 eine Chipkennung. Ein vordefiniertes Verdrahtungsschema an den Anschlußkontakten des Suche-Chips 901 wird als Chipkennung oder Adresse verwendet. Die Adresse 0 kennzeichnet den Suche-Chip 901, der die Hauptkommunikation mit dem R-Chip 801 ausführt. Die Codiererstruktur kann einen, zwei oder vier Suche-Chips 901 unterstützen. Adresse 3 kennzeichnet den letzten Suche-Chip in der Kette. In einer Konfiguration mit vier Suche-Chips wird das Suchfenster in vier Viertel unterteilt. Adresse 0 verwaltet das obere linke Viertel, Adresse 1 verwaltet das obere rechte Viertel, Adresse 2 verwaltet das untere linke Viertel und Adresse 3 verwaltet das untere rechte Viertel. Suche-Chip 3 gibt das Suchergebnis an Suche-Chip 2 weiter, wenn es verfügbar ist. Ähnliches gilt für die Übergabe von Suche-Chip 2 auf 1 und von Suche-Chip 1 auf 0. Das Ergebnis für die beste Übereinstimmung, das von dem Suche-Chip mit der höheren Adresse erhalten wird, wird mit dem Ergebnis des empfangenden Chips verglichen. Das bessere der beiden Ergebnisse wird dann an den nächsten Suche- Chip weitergeleitet. Schließlich wird die beste Übereinstimmung von allen Suche-Chips durch den Suche-Chip 0 ausgewählt und an den R-Chip zurückgegeben.
Verarbeitung im R-Chip R-Eingabepuffer
Die Daten des aktuellen Makroblockes, die zuvor vom Intra-Chip 601 empfangen wurden, werden auf diesem Chip gepuffert und innerhalb des Weiterverarbeitungsprozesses verwendet.
Im IPB-Modus bleibt die Verarbeitung im R-Chip 801 hinter der im Suche-Chip 901 zurück. Um sicherzustellen, daß die Pipeline ständig gefüllt ist, ist der Puffer groß genug, um die Daten von zwei Makroblöcken zu fassen. Die Daten des nächsten aktuellen Makroblockes werden abgerufen, wenn sowohl im Suche- Eingabepuffer als auch im R-Eingabepuffer Platz ist.
R-Bewegungsschätzung
Die Bezugsdaten sind im bislang im externen Speicher, d. h. im mit dem R-Chip, d. h. dem Weiterverarbeitungs-Chip oder Rekonstruktions-Chip, verbundenen Rekonstruktionsspeicher gespeichert worden. Die Bezugsdaten bestehen, wie es der Name mit sich bringt, aus rekonstruierten Daten. Wenn diese Daten zur Verfeinerung der Bewegung benutzt werden, erzeugen sie eine Vorhersagedifferenz, die mit der übereinstimmt, die durch den Decoder rekonstruiert wird. Dieses Schema minimiert den Unterschied zwischen den Komprimierungs- und Dekomprimierungsprozessen.
Der R-Chip 801 empfängt ebenfalls das Suchformat, das durch den Benutzer ausgewählt worden ist. In Abhängigkeit von dem Suchformat werden die vom Suche-Chip 901 empfangenen Ergebnisse auf die Auflösung des Gesamtbildes umskaliert. Auf der Grundlage des Suchergebnisses erfolgt eine Verfeinerung der Suche, einschließlich der Ergebnisse aus dem 1 zu 1 (nicht heruntergetasteten) Format. In der Konfiguration mit 3 (oder mehr) Chips wird ein maximaler Verfeinerungs-Suchbereich von +/-­ 4horizontal und +/-1vertikal verwendet.
Eine weitere große Herausforderung bei der Bewegungsschätzung ist die Speicherbandbreite. Die aus dem Rekonstruktionsspeicher abgerufenen Bezugsdaten werden chip-intern gepuffert, bis die Vollbild-Differenzdaten erzeugt worden sind. Dieses Schema minimiert den externen Speicherverkehr. Jedes Suchergebnis wird zuerst an einer Bildelementegrenze verfeinert. Bis zum nächsten Verfeinerungsprozeß, der Halbbildelement-Verarbeitung, schließen sich maximal drei Ergebnisse mit vollen Bildelementen an. Bis zu acht Halbbildelement-Makroblöcke können zur weiteren Halbbildelement-Verfeinerungs-Suche um jedes Ergebnis der Vollbildelement-Verfeinerung gekennzeichnet werden. Alle Ergebnisse der Voll- und Halbbildelement-Verfeinerungen werden zu dem chip-internen Prozessor, das heißt dem R-Prozessor übertragen.
IR-Chip-Schnittstelle
In Abhängigkeit vom Suchetyp bestimmt der R-Prozessor den Makroblocktyp und den Bewegungsvektor für jeden Makroblock. Auswählbare Suchetypen können die Bewegung von Nur-Vollbildern, von Nur-Feldern, von Nur-Volle-Bildelementen, Nur-Halbe- Bildelementen und die adaptive Vollbild/Feld-Bewegung enthalten. Wenn die adaptive Vollbild/Feld-Bewegungsschätzung ausgewählt ist, wird der am besten übereinstimmende Makroblock verwendet, um den Codierprozeß fortzusetzen. Auf der Grundlage der besten Übereinstimmung werden die übereinstimmenden Farbwertdaten aus dem Rekonstruktionsspeicher wiederhergestellt. Es werden sowohl die Helligkeits- als auch die Farbwert-Vollbild-Differenzdaten erzeugt und in der Intra-Chip- 601 und R-Chip- 801 Schnittstelle gepuffert. Die Helligkeitsdifferenzdaten werden zuerst in den Intra-Chip 601 übertragen. Wenn die quantisierten Helligkeitsdaten an den R-Chip 801 zurückgegeben werden, werden die Farbwert-Differenzdaten zum Intra-Chip 601 übertragen. Sowohl die Differenzdaten als auch die quantisierten Daten teilen sich denselben bidirektionalen Datenbus zwischen dem Intra-Chip 601 und dem R-Chip 801. Die Datenübertragungen werden stufenweise durchgeführt, um Buskollisionen zu verhindern.
Zusätzlich zu den Helligkeits- und Farbwert-Differenzdaten berechnet und überträgt der R-Chip entsprechende Bewegungsvektor daten für jeden Nicht-Intra-Makroblock an den I-Chip. Diese Daten werden durch den R-Prozessor gesendet, wenn sie vom I-Chip angefordert werden.
Die quantisierten Daten werden zuerst an den inversen Quantisierer 941, dann an die inverse DCT-Einheit 943 und dann schließlich an die Bewegungskompensationseinheit 945 weitergeleitet. Die IDCT-Daten werden für die Bewegungsnachstellung in der Bewegungskompensations- (MC) Einheit 945 zu den aktuellen Makroblockdaten, des Makroblockes der in der Makroblocksuche verwendet wurde, hinzugefügt. Die MC- Einheit 945 erzeugt die rekonstruierten Daten. Sie werden gepuffert und für das Speichern im Rekonstruktionsspeicher vorbereitet und als Verfeinerungs-Bezugsdaten für die nachfolgende Bildcodierung verwendet.
Beim IP-Codierformat werden die Suche-Verfeinerungsschaltungen auf dem R-Chip 801 als kleiner Bewegungsschätzer verwendet. Das Zentrum des Suchfensters ist der Ort des aktuellen Makroblockes. Der R-Chip 801 kann Suchbereiche bis zu +/-8horizontal und +/-7vertikal im IP-Modus unterstützen. Ähnlich wie beim IPB- Codierformat werden die Bezugsdaten pro Makroblock einmal abgerufen. Diese Daten werden chip-intern gepuffert, bis die Vollbild-Differenzdaten erzeugt werden. Zuerst wird eine Bewegungsschätzung auf Grundlage voller Bildelemente ausgeführt. Dann wird eine Verfeinerungssuche mit den am besten übereinstimmenden Volle-Bildelemente-Makroblockdaten ausgeführt. Zwei Verfeinerungen werden durchgeführt: eine Suche mit doppelt bereitgestellten Daten und eine Halbbildelemente-Suche.
Wenn Bewegungsschätzungssuchen mit doppelt bereitgestellten Daten für Bilder in Vollbildstruktur ausgeführt werden, werden die am besten übereinstimmenden Vollbildelemente-Makroblockdaten in ungeradzahlige und geradzahlige Felddaten aufgespalten. Für jedes Feld werden Daten der entgegengesetzten Parität, welche eine Differenz von +/-1 besitzen, nach der Berechnung der doppelt bereitzustellenden Bezugsdaten-Abrufadresse über Bewegungsvektor-Skalieroperationen, wie sie im MPEG2-Standard spezifiziert werden, aus dem externen Speicher abgerufen. Die Felddaten werden mit den Daten ihrer entgegengesetzten Parität interpoliert, um die Bezugsdaten zu bilden, die in der Suche mit doppelt bereitgestellten Daten verwendet werden.
Die Halbbildelement-Verfeinerung wird über einen Prozeß durchgeführt, der dem in der IPB-Codierung verwendeten ähnelt. Alle Ergebnisse, einschließlich der Vollbildelement-Suche, der Suche mit doppelt bereitgestellten Daten und der Halbbild­ element-Suche werden durch den R-Prozessor gesammelt. Die verbleibenden Prozesse ähnlichen denen im IPB-Modus.
Bezugsspeicher-Schnittstelle
In jeder Makroblockverarbeitung gibt es einen Abruf von Bezugsdaten, einen Zugriff auf doppelt bereitzustellende Daten, einen Abruf der am besten übereinstimmenden Farbwertdaten, ein Speichern der rekonstruierten Helligkeitsdaten und ein Speichern der rekonstruierten Farbwertdaten. Um die Anforderungen an die Speicherbandbreite zu verringern, werden die Bezugsdaten nur einmal pro Makroblock abgerufen. Um sicherzustellen, daß die Pipeline einheitlich gefüllt ist, werden die Speicheroperationen auf Grundlage des Platzes des Makroblockes im Bild in einer speziellen Reihenfolge bearbeitet. Da die Bewegungsschätzung nur mit den Helligkeitsdaten ausgeführt wird, werden zur Verbesserung der Speicherlesegeschwindigkeit für eine spezielle Operation die Helligkeits- und Farbwertdaten in unterschiedlichen Bereichen des Rekonstruktionsspeichers abgelegt.
Entropiecodierung im Intra-Chip Intra-Prozessor
Der Intra-Prozessor 601 wird detailliert in Fig. 6 dargestellt. Wenn die aktuellen Makroblockdaten im Vollbildspeicher verfügbar gemacht werden, wird durch den I-Prozessor 601 der Energiegehalt des Makroblockes berechnet, welcher verwendet wird, um für die beste Geschwindigkeitssteuerung ein Quantisierungsniveau zu bestimmen. Mit den Vollbild-Differenzdaten wird durch den I- Prozessor eine Vollbild- oder Feld-DCT-Entscheidung getroffen, wenn diese vom R-Chip 801 zurückgegeben werden. Der Intra- Prozessor 601 besitzt die Eigenschaft, daß er dynamisch unterteilt werden kann, was es ihm gestattet, als vier 1-Byte- Einheiten oder als eine 4-Byte-Funktionseinheit zu arbeiten. Sowohl die Quantisierungs- als auch die Feld/Vollbild-DCT- Berechnungen werden im unterteilten Modus ausgeführt, was einen vierfachen Leistungsgewinn bringt.
In Abhängigkeit vom Eingabebild und von der spezifizierten Ausgabe-Bitgeschwindigkeit können Überlauf- oder Unterlauf-Bedin gungen auftreten. Es liegt in der Verantwortlichkeit der Geschwindigkeitssteuerung, das Auftreten beider Bedingungen zu verhindern. Um einen Überlauf zu verhindern sind die Verwendung einer reinen DCT und externe FIFO-Rückkopplungen installiert worden. Auffülloperationen sind vorgesehen, um den Unterlauf zu steuern oder sogar zu beseitigen.
Die Bildcodierzeit hängt vom Eingabeformat und dem Codierformat ab. Die Bildgeschwindigkeit wird durch die Anwendung spezifiziert. Der Bildabstand ist die Zeit, während derer der Codierer bei der Bildcodierung nicht beschäftigt ist. Der Bildabstand wird durch die Bildgeschwindigkeit und die Bildcodierzeit bestimmt. Wenn Auffülloperationen erforderlich sind, werden diese während des Bildabstandes durchgeführt. Dies begrenzt die maximale Anzahl Bits, die der Codierer pro Abstand auffüllen kann. Der Codierer verfolgt die Anzahl Bits, die pro Bild erzeugt werden und die sich in einem Bild befinden. Wenn die Anzahl der erzeugten Bits pro Bild kleiner ist als die im Bild befindlichen Bits, wird das Auffüllen benutzt, um die unbenutzten Bits aufzufüllen. Die unbenutzten Bits eines Bildes können über mehrere Bildabstände aufgefüllt werden. Dieser Mechanismus stellt sicher, daß die Bitfolge der Anwendung entspricht, ohne die Leistungsfähigkeit herabzusetzen.
Quantisierer
In der Quantisierereinheit ist die Möglichkeit zum Abschneiden der Koeffizienten integriert. Das Koeffizient- Abschneideregister, das vom Mikrocode geschrieben wird, wird verwendet, um die Position des letzten von null verschiedenen Amplituden-Koeffizienten innerhalb eines Blockes zu speichern. Wenn die Geschwindigkeitssteuerung eine dem Überlauf nahe kommende Bedingung erkennt, kann der Code einen Wert in das Koeffizient-Abschneideregister schreiben. Dieser Wert wird auf der Grundlage der Nähe zum Überlauf berechnet. Alle Koeffizienten hinter dem Platz, der im Koeffizient- Abschneideregister spezifiziert wird, werden zu null gemacht. Dieses Schema wird ebenfalls verwendet, um eine beschränkte Bitfolge zu erzeugen. Eine beschränkte Bitfolge ist im MPEG2 Main Profile at Main Level Standard so beschrieben, daß alle Makroblöcke innerhalb eines Sektors, mit Ausnahme von zwei Makroblöcken, jeweils weniger als 4608 Bits enthalten müssen. Der Codierer verfolgt die pro Makroblock erzeugten Bits und die Anzahl der Makroblöcke innerhalb eines Sektors, die mehr als 4608 Bits besitzen. Wenn zwei Makroblöcke erkannt werden, die mehr als 4608 Bits besitzen, wird das Koeffizient- Abschneideregister für den Rest des Sektors auf 31 gesetzt. In diesem Fall benutzt der Chip die 31 ersten Koeffizienten jedes 8 × 8 Blockes, um die Bitfolge zu bilden. Die Zahl der pro Koeffizient verwendeten Bits hängt vom Wert des Koeffizienten ab. Vierundzwanzig Bits werden verwendet, um einen maximalen Wert zu codieren. Unter der Voraussetzung, daß alle 31 Koeffizienten die maximale Zahl enthalten, werden im 4:2:0 Format 4464 Bits erzeugt. Dieser Mechanismus stellt sicher, daß die Ausgabebitfolge beschränkt ist und setzt ebenfalls einen oberen Grenzwert für die Anzahl der erzeugten Bits, um einen Überlauf zu verhindern.
Veränderliche-Längen-Codierer
Der Ausgabewert der Quantisierung wird vor der ZZ- Abtastverarbeitung zur Rekonstruktion des Bildes auf den R-Chip 801 zurückgegeben. Dies beseitigt eine gewisse Entwurfskomplexität, und auf dem R-Chip 801 ist keine inverse ZZ-Funktion erforderlich. Das Abtastformat kann an der Leitrechner-Schnittstelle ausgewählt werden. Der Mikrocode kann das Abtastformat ebenfalls auf Grundlage des Bildformates auswählen. Eine abwechselnde Abtastung wird für eine Zeilensprung-Codierung verwendet und eine traditionelle Abtastung für fortlaufende Bilder.
Auf die quantisierten Daten wird eine ZZ-Abtastung angewandt, welche mittels der Huffman-Tabelle mit veränderlicher Länge codiert wird. Die Daten veränderlicher Länge werden in einem Puf­ fer gespeichert. Ein codiertes Blockmuster, wie es im MPEG2- Standard definiert ist, wird verwendet, um anzuzeigen, welcher Block im Makroblock von null verschiedene Daten enthält. Wenn alle Blöcke codiert sind, werden den VLC-Daten Kopfzeilen hinzugefügt.
Schnittstelle zum komprimierten Speichern
Die Kopfzeilen werden in einer flexiblen Art und Weise erzeugt. Die Kopfzeilendefinitionen sind in einer programmierbaren Tabelle gespeichert. Der Mikrocode besitzt ebenfalls die Fähigkeit, den Inhalt der Kopfzeilentabelle zu verändern, wenn im MPEG2-Standard Veränderungen auftreten. In Abhängigkeit von den Anforderungen der Anwendung trifft der Mikrocode die Auswahl, welche Kopfzeilen erzeugt werden soll. Die elementare Folge ergibt sich aus den Koeffizientendaten zusammen mit den Kopfzeilen.
Integriertes System
In einer Ausführungsform wird gemäß unserer Erfindung ein dem MPEG2-Standard entsprechendes digitales Videocodierersystem bereitgestellt, das ein I-Vollbild-Videocodierermodul 601 mit (1) einer Leitrechner-Schnittstelle 611, (2) einer Bildelemente- Schnittstelle 641 zum Empfangen von Bildelementedaten über einen Bildelementebus 643, (3) einer Vollbildspeicher-Schnittstelle 651 zum Empfangen und Senden von Vollbilddaten, (4) einem diskreten Kosinustransformations-Prozessor 671, (5) einer Quanti­ sierungseinheit (673), (6) einem Veränderliche-Längen-Codierer 675, (7) einem FIFO-Puffer 677 und (8) einer Schnittstelle zum komprimierten Speichern 679 besitzt, um eine I-Vollbilder enthaltende Bitfolge zu erzeugen.
In einer weiteren Ausführungsform der skalierbaren Architektur des dem MPEG2-Standard entsprechenden digitalen Videocodierersystems enthält das I-Vollbild-Videocodierermodul eine Schnittstelle (9) zu einem Bewegungsschätzungsmittel, und das System enthält desweiteren einen zweiten Prozessor, d. h. ein R-Prozessorelemente 901 mit (10) einer Bezugsspeicher- Schnittstelle 911, (11) einem Bewegungsschätzungsmittel 903, (12) einem inversen Quantisierungsmittel 941, (13) einem inversen diskreten Kosinustransformationsmittel 943 und einem Bewegungskompensationsmittel 945. Das System enthält ebenfalls mindestens ein drittes Prozessorelement oder Suche- Prozessorelement 801 mit (14) einer Suchspeicher-Schnittstelle und (15) einem Bewegungsschätzungsmittel 801. Diese Ausführungsform stellt eine I-P-B-Datenfolge bereit.
Der Codierer kann die Form eines einzelnen integrierten Schaltkreischips oder einer Vielzahl integrierter Schaltkreischips haben. Zum Beispiel können separate integrierte Schaltkreischips für das I-Vollbild-Videocodierermodul, das zweite Prozessorelement 901 und das dritte Prozessorelement 801 vorhanden sein. Es kann ebenfalls mehr als ein solches drittes Prozessorelemente 801 vorhanden sein.
Gemäß einer alternativen Ausführungsform unserer Erfindung wird ein digitales Videocodierersystem bereitgestellt, wobei das I- Vollbild-Videocodierermodul 601 eine Schnittstelle (9) zu einem Bewegungsschätzungsmittel enthält, und das System enthält desweiteren nur ein zweites oder R-Prozessorelement mit (10) einer Bezugsspeicher-Schnittstelle 911, (11) einem Bewegungsschätzungsmittel 903, (12) einem inversen Quantisierungsmittel 941, (13) einem inversen diskreten Kosinustransformationsmittel 943 und einem Bewegungskompensationsmittel 945. Diese Ausführungsform ist zur Erzeugung einer I-P-Datenfolge nützlich.
Wenngleich die Erfindung unter Bezugnahme auf bestimmte bevorzugte Ausführungsformen und Beispiele beschrieben worden ist, ist nicht beabsichtigt, das Gebiet der Erfindung, das durch die anhängenden Ansprüche definiert wird, einzuschränken.

Claims (3)

1. Dem MPEG2-Standard entsprechendes digitales Videocodierersystem mit skalierbarer Architektur, ein I- Vollbilder-Videocodierermodul aufweisend mit (1) einer Leitrechner-Schnittstelle, (2) einer Bildelemente- Schnittstelle zum Empfangen von Bildelementedaten über einen Bildelementebus, (3) einer Vollbildspeicher-Schnittstelle zum Empfangen und Senden von Vollbilddaten, (4) einem diskreten Kosinustransformations-Prozessor, (5) einer Quantisierungseinheit, (6) einem Veränderliche-Längen- Codierer, (7) einem FIFO-Puffer und mit (8) einer Schnittstelle zum komprimierten Speichern, um eine I- Vollbilder enthaltende Bitfolge zu erzeugen,
wobei das I-Vollbilder-Videocodierermodul eine Schnittstelle (9) zu einem Bewegungsschätzungsmittel enthält, und wobei das System des weiteren enthält:
  • a) ein zweites Prozessorelemente mit (10) einer Bezugsspeicher-Schnittstelle, (11) einem Bewegungsschätzungsmittel, (12) einem inversen Quantisierungsmittel, (13) einem inversen diskreten Kosinustransformationsmittel und einem Bewegungskompensationsmittel; und
  • b) mindestens ein drittes Prozessorelement mit (14) einer Suchspeicher-Schnittstelle und (15) einem Bewegungsschätzungsmittel;
zur Erzeugung einer I-P-B-Datenfolge,
wobei das Codierersystem einen einzelnen integrierten Schaltkreischip umfaßt.
2. Videocodierersystem gemäß Anspruch 1, wobei das Codierersystem ein drittes Prozessorelement aufweist.
3. Videocodierersystem gemäß Anspruch 1, wobei das Codierersystem mehr als ein drittes Prozessorelement aufweist.
DE19702048A 1996-02-22 1997-01-22 Skalierbarer Videocodierer gemäß MPEG2-Standard Expired - Lifetime DE19702048C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/605,559 US5768537A (en) 1996-02-22 1996-02-22 Scalable MPEG2 compliant video encoder

Publications (2)

Publication Number Publication Date
DE19702048A1 DE19702048A1 (de) 1997-08-28
DE19702048C2 true DE19702048C2 (de) 2003-12-18

Family

ID=24424175

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19702048A Expired - Lifetime DE19702048C2 (de) 1996-02-22 1997-01-22 Skalierbarer Videocodierer gemäß MPEG2-Standard

Country Status (4)

Country Link
US (3) US5768537A (de)
JP (1) JPH09247679A (de)
KR (1) KR100196019B1 (de)
DE (1) DE19702048C2 (de)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7558324B2 (en) * 1993-01-18 2009-07-07 Sony Corporation Apparatus for encoding and decoding header data in picture signal transmission
US5768537A (en) * 1996-02-22 1998-06-16 International Business Machines Corporation Scalable MPEG2 compliant video encoder
GB2311182A (en) * 1996-03-13 1997-09-17 Innovision Plc Improved gradient based motion estimation
US6031575A (en) * 1996-03-22 2000-02-29 Sony Corporation Method and apparatus for encoding an image signal, method and apparatus for decoding an image signal, and recording medium
JP3622365B2 (ja) * 1996-09-26 2005-02-23 ヤマハ株式会社 音声符号化伝送方式
US5905542A (en) * 1996-12-04 1999-05-18 C-Cube Microsystems, Inc. Simplified dual prime video motion estimation
US5964842A (en) * 1997-01-31 1999-10-12 Network Computing Devices, Inc. Method and apparatus for scaling data compression based on system capacity
US6111913A (en) * 1997-05-20 2000-08-29 International Business Machines Corporation Macroblock bit regulation schemes for video encoder
US6067322A (en) * 1997-06-04 2000-05-23 Microsoft Corporation Half pixel motion estimation in motion video signal encoding
US6018368A (en) * 1997-07-11 2000-01-25 Samsung Electro-Mechanics Co., Ltd. Scalable encoding apparatus and method with improved function of scaling motion vector
DE19737835C2 (de) * 1997-08-29 1999-07-15 Siemens Ag Verfahren zum Komprimieren von Bildinformationen
US6507672B1 (en) * 1997-09-10 2003-01-14 Lsi Logic Corporation Video encoder for digital video displays
US6233428B1 (en) * 1997-09-17 2001-05-15 Bruce Fryer System and method for distribution of child care training materials and remote monitoring of child care centers
JP4264571B2 (ja) * 1998-04-09 2009-05-20 ソニー株式会社 ディジタル画像復号装置及び方法、並びに記録媒体
JP4123567B2 (ja) * 1998-04-30 2008-07-23 ソニー株式会社 画像信号処理装置及び方法
DE19835845A1 (de) 1998-08-07 2000-02-10 Siemens Ag Verfahren und Anordnung zur Bewegungsschätzung in einem digitalisierten Bild mit Bildpunkten
US6670996B2 (en) * 1998-08-20 2003-12-30 Intel Corporation Apparatus and method for display of progressive and interland video content
US6961378B1 (en) * 1998-11-05 2005-11-01 International Business Machines Corporation On-chip dynamic buffer level indicators for digital video encoder
US6418166B1 (en) * 1998-11-30 2002-07-09 Microsoft Corporation Motion estimation and block matching pattern
CN1229996C (zh) * 1999-01-29 2005-11-30 三菱电机株式会社 图象特征编码方法
US6519005B2 (en) * 1999-04-30 2003-02-11 Koninklijke Philips Electronics N.V. Method of concurrent multiple-mode motion estimation for digital video
US6425071B1 (en) * 1999-05-03 2002-07-23 3Com Corporation Subsystem bridge of AMBA's ASB bus to peripheral component interconnect (PCI) bus
WO2001058166A1 (en) * 2000-02-01 2001-08-09 Koninklijke Philips Electronics N.V. Video encoding with a two step motion estimation for p-frames
KR20020001062A (ko) * 2000-06-24 2002-01-09 박종섭 응용분야에 적응적인 엠펙 영상압축 부호화기
KR100397055B1 (ko) * 2000-07-21 2003-09-06 (주)씨앤에스 테크놀로지 저전송율 영상통신을 위한 움직임 예측기 구조
US7194128B1 (en) * 2000-07-26 2007-03-20 Lockheed Martin Corporation Data compression using principal components transformation
DE10121259C2 (de) * 2001-01-08 2003-07-24 Siemens Ag Optimale SNR-skalierbare Videocodierung
DE10102159C2 (de) * 2001-01-18 2002-12-12 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Erzeugen bzw. Decodieren eines skalierbaren Datenstroms unter Berücksichtigung einer Bitsparkasse, Codierer und skalierbarer Codierer
JP2002232911A (ja) * 2001-02-01 2002-08-16 Mitsubishi Electric Corp 動きベクトル検出装置及び動きベクトル検出方法
GB0104785D0 (en) * 2001-02-27 2001-04-18 Pace Micro Tech Plc MPEG decoder video in the form of cue and/or review streams of data
US20020191851A1 (en) * 2001-05-01 2002-12-19 Giora Keinan Efficient encoding of video frames using pre-encoded primitives
US7072393B2 (en) 2001-06-25 2006-07-04 International Business Machines Corporation Multiple parallel encoders and statistical analysis thereof for encoding a video sequence
US6996183B2 (en) * 2001-09-26 2006-02-07 Thomson Licensing Scene cut detection in a video bitstream
US20030105799A1 (en) * 2001-12-03 2003-06-05 Avaz Networks, Inc. Distributed processing architecture with scalable processing layers
US6842177B2 (en) * 2001-12-14 2005-01-11 University Of Washington Macroblock padding
US8284844B2 (en) 2002-04-01 2012-10-09 Broadcom Corporation Video decoding system supporting multiple standards
JP4078906B2 (ja) * 2002-07-19 2008-04-23 ソニー株式会社 画像信号の処理装置および処理方法、画像表示装置、それに使用される係数データの生成装置および生成方法、並びに各方法を実行するためのプログラムおよびそのプログラムを記録したコンピュータ読み取り可能な媒体
DE10243568A1 (de) * 2002-09-19 2004-01-29 Siemens Ag Verfahren zur skalierbaren Videocodierung eines Videobildsignals sowie ein zugehöriger Codec
CN100423581C (zh) * 2002-12-30 2008-10-01 Nxp股份有限公司 动态图形的编码/解码方法及其设备
US20040179599A1 (en) * 2003-03-13 2004-09-16 Motorola, Inc. Programmable video motion accelerator method and apparatus
US20040233294A1 (en) * 2003-05-20 2004-11-25 Mingjian Zheng System and method for USB compatible I-frame only MPEG image compression
US7593580B2 (en) * 2003-07-14 2009-09-22 Texas Instruments Incorporated Video encoding using parallel processors
US7289680B1 (en) * 2003-07-23 2007-10-30 Cisco Technology, Inc. Methods and apparatus for minimizing requantization error
US20050157783A1 (en) * 2004-01-15 2005-07-21 Sony Corporation Adaptive bandwidth allocation method and system for AV signal distribution
US20060008154A1 (en) * 2004-07-01 2006-01-12 Belle Ronny V Video compression and decompression to virtually quadruple image resolution
US7970219B2 (en) * 2004-12-30 2011-06-28 Samsung Electronics Co., Ltd. Color image encoding and decoding method and apparatus using a correlation between chrominance components
US20060146933A1 (en) * 2004-12-30 2006-07-06 Paul Lu Method and system for video motion processing in a microprocessor
JP4806418B2 (ja) * 2005-01-10 2011-11-02 クォーティックス インク ビジュアルメディアの統合処理のための統合アーキテクチャ
US20060222251A1 (en) * 2005-04-01 2006-10-05 Bo Zhang Method and system for frame/field coding
US7949044B2 (en) * 2005-04-12 2011-05-24 Lsi Corporation Method for coefficient bitdepth limitation, encoder and bitstream generation apparatus
US20060233258A1 (en) * 2005-04-15 2006-10-19 Microsoft Corporation Scalable motion estimation
US20080247460A1 (en) * 2005-10-07 2008-10-09 Jung Won Kang Method and Apparatus For Scalable Video Adaption Using Adaption Operators For Scalable Video
WO2007043770A1 (en) * 2005-10-07 2007-04-19 Electronics And Telecommunications Research Institute Method and apparatus for scalable video adaptation using adaptation operators for scalable video
US7760951B2 (en) * 2006-02-14 2010-07-20 Broadcom Corporation Method and system for pipelined processing in an integrated embedded image and video accelerator
WO2007102511A1 (ja) * 2006-03-09 2007-09-13 Pioneer Corporation 画像処理装置、画像処理方法、および画像処理プログラム
US8494052B2 (en) * 2006-04-07 2013-07-23 Microsoft Corporation Dynamic selection of motion estimation search ranges and extended motion vector ranges
US8155195B2 (en) 2006-04-07 2012-04-10 Microsoft Corporation Switching distortion metrics during motion estimation
US20070268964A1 (en) * 2006-05-22 2007-11-22 Microsoft Corporation Unit co-location-based motion estimation
US8000388B2 (en) * 2006-07-17 2011-08-16 Sony Corporation Parallel processing apparatus for video compression
CA2665182A1 (en) * 2006-10-10 2008-04-17 Nippon Telegraph And Telephone Corporation Video encoding method and decoding method, apparatuses therefor, programs therefor, and storage media for recording the programs
US9237357B2 (en) * 2007-09-02 2016-01-12 Lg Electronics Inc. Method and an apparatus for processing a video signal
WO2009032255A2 (en) * 2007-09-04 2009-03-12 The Regents Of The University Of California Hierarchical motion vector processing method, software and devices
US8724705B2 (en) * 2008-06-26 2014-05-13 Telefonaktiebolaget Lm Ericsson (Publ) Detecting repetition in digital video
JP5225388B2 (ja) * 2008-10-22 2013-07-03 日本電信電話株式会社 スケーラブル動画像符号化方法、スケーラブル動画像符号化装置、スケーラブル動画像符号化プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
SG173007A1 (en) * 2009-01-15 2011-08-29 Agency Science Tech & Res Image encoding methods, image decoding methods, image encoding apparatuses, and image decoding apparatuses
US8660177B2 (en) * 2010-03-24 2014-02-25 Sony Computer Entertainment Inc. Parallel entropy coding
US8755438B2 (en) * 2010-11-29 2014-06-17 Ecole De Technologie Superieure Method and system for selectively performing multiple video transcoding operations
TWI536824B (zh) * 2012-05-04 2016-06-01 奇揚網科股份有限公司 視訊編碼系統、方法以及電腦可讀取之媒體
US9774881B2 (en) * 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US9942560B2 (en) 2014-01-08 2018-04-10 Microsoft Technology Licensing, Llc Encoding screen capture data
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
US9436982B1 (en) * 2015-06-25 2016-09-06 Intel Corporation Scalable rank filter

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5418570A (en) * 1992-03-03 1995-05-23 Kabushiki Kaisha Toshiba Motion picture coding apparatus
US5457780A (en) * 1991-04-17 1995-10-10 Shaw; Venson M. System for producing a video-instruction set utilizing a real-time frame differential bit map and microblock subimages
US5566089A (en) * 1994-10-26 1996-10-15 General Instrument Corporation Of Delaware Syntax parser for a video decompression processor

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4727412A (en) * 1984-04-27 1988-02-23 Utah Scientific Advanced Development Center, Inc. Video signal correction system with low chrominance circuit for modifying currections
EP0294955B1 (de) * 1987-06-09 1995-04-12 Sony Corporation Bewegungsvektorabschätzung in Fernsehbildern
US4882613A (en) * 1987-10-20 1989-11-21 Sanyo Electric Co., Ltd. Method of and apparatus for motion vector compensation in receiving television signal based on muse system
US5012329A (en) * 1989-02-21 1991-04-30 Dubner Computer Systems, Inc. Method of encoded video decoding
JPH07109990B2 (ja) * 1989-04-27 1995-11-22 日本ビクター株式会社 適応型フレーム間予測符号化方法及び復号方法
US5164819A (en) * 1991-04-03 1992-11-17 Music John D Method and system for coding and compressing color video signals
US5200820A (en) * 1991-04-26 1993-04-06 Bell Communications Research, Inc. Block-matching motion estimator for video coder
ATE148607T1 (de) * 1991-09-30 1997-02-15 Philips Electronics Nv Bewegungsvektorschätzung, bewegungsbildkodierung- und -speicherung
US5185655A (en) * 1991-10-02 1993-02-09 Tandy Corporation Method and apparatus for encoding full color video data signals and protocol for encoding same
US5436665A (en) * 1992-03-03 1995-07-25 Kabushiki Kaisha Toshiba Motion picture coding apparatus
US5253041A (en) * 1992-05-26 1993-10-12 General Electric Company Digital television signal compression apparatus
US5270813A (en) * 1992-07-02 1993-12-14 At&T Bell Laboratories Spatially scalable video coding facilitating the derivation of variable-resolution images
US5253056A (en) * 1992-07-02 1993-10-12 At&T Bell Laboratories Spatial/frequency hybrid video coding facilitating the derivatives of variable-resolution images
US5253055A (en) * 1992-07-02 1993-10-12 At&T Bell Laboratories Efficient frequency scalable video encoding with coefficient selection
DE4322343C2 (de) * 1992-07-06 1996-10-02 Mitsubishi Electric Corp Mittel zum Erfassen eines Bewegungsvektors und Verfahren zum Bestimmen eines Bewegungsvektors
FR2696069B1 (fr) * 1992-09-23 1994-12-09 Philips Electronique Lab Procédé et dispositif pour l'estimation du mouvement dans une image.
JP3348310B2 (ja) * 1992-09-28 2002-11-20 ソニー株式会社 動画像符号化方法および動画像符号化装置
KR950006769B1 (ko) * 1992-12-31 1995-06-22 현대전자산업주식회사 고선명 텔레비젼의 색차신호 동벡터 추출방법 및 움직임 보상장치
JP2962083B2 (ja) * 1993-01-22 1999-10-12 松下電器産業株式会社 解像度変換方法、解像度変換装置、画像符号化装置、画像復号化装置
WO1994018799A1 (en) * 1993-02-03 1994-08-18 Qualcomm Incorporated Interframe video encoding and decoding system
US5376968A (en) * 1993-03-11 1994-12-27 General Instrument Corporation Adaptive compression of digital video data using different modes such as PCM and DPCM
JP2778412B2 (ja) * 1993-05-20 1998-07-23 国際電信電話株式会社 動き補償フレーム間コンポジットtv信号直接符号化装置
BE1007252A3 (nl) * 1993-06-29 1995-05-02 Philips Electronics Nv Bewegingscompensator.
KR960012932B1 (ko) * 1993-09-17 1996-09-25 대우전자 주식회사 이차원 공간 필터링을 이용한 시간축 대역 제한 방법
US5453799A (en) * 1993-11-05 1995-09-26 Comsat Corporation Unified motion estimation architecture
US5493513A (en) * 1993-11-24 1996-02-20 Intel Corporation Process, apparatus and system for encoding video signals using motion estimation
US5453787A (en) * 1993-12-10 1995-09-26 International Business Machines Corporation Variable spatial frequency chrominance encoding in software motion video compression
US5638128A (en) * 1994-11-08 1997-06-10 General Instrument Corporation Of Delaware Pixel interpolation filters for video decompression processor
US5510856A (en) * 1994-12-30 1996-04-23 Daewoo Electronics Co., Ltd. Apparatus for determining motion vectors
US5517250A (en) * 1995-02-28 1996-05-14 General Instrument Corporation Of Delaware Acquisition of desired data from a packetized data stream and synchronization thereto
US5526054A (en) * 1995-03-27 1996-06-11 International Business Machines Corporation Apparatus for header generation
US5623308A (en) * 1995-07-07 1997-04-22 Lucent Technologies Inc. Multiple resolution, multi-stream video system using a single standard coder
US5768537A (en) * 1996-02-22 1998-06-16 International Business Machines Corporation Scalable MPEG2 compliant video encoder
US5748240A (en) * 1996-03-15 1998-05-05 International Business Machines Corporation Optimal array addressing control structure comprising an I-frame only video encoder and a frame difference unit which includes an address counter for addressing memory addresses

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5457780A (en) * 1991-04-17 1995-10-10 Shaw; Venson M. System for producing a video-instruction set utilizing a real-time frame differential bit map and microblock subimages
US5418570A (en) * 1992-03-03 1995-05-23 Kabushiki Kaisha Toshiba Motion picture coding apparatus
US5566089A (en) * 1994-10-26 1996-10-15 General Instrument Corporation Of Delaware Syntax parser for a video decompression processor

Also Published As

Publication number Publication date
DE19702048A1 (de) 1997-08-28
US5768537A (en) 1998-06-16
KR970063947A (ko) 1997-09-12
US6198772B1 (en) 2001-03-06
JPH09247679A (ja) 1997-09-19
KR100196019B1 (ko) 1999-06-15
US6081622A (en) 2000-06-27

Similar Documents

Publication Publication Date Title
DE19702048C2 (de) Skalierbarer Videocodierer gemäß MPEG2-Standard
DE69735402T2 (de) System und Methode zur Bewegungskompensation mit Hilfe eines Schrägziegelspeicherformats für verbesserte Effizienz
DE69633129T2 (de) Waveletbaum-bildcoder mit überlappenden bildblöcken
DE60305325T2 (de) System und verfahren zur ratenverzerrungsoptimierten datenpartitionierung zur videocodierung unter verwendung von rückwärtsadaption
DE69333714T2 (de) Speicher zur Verwendung im Dekodieren von Wörtern variabler Länge und Dekoder und Verfahren zur Verwendung in digitalen Kommunikationssystemen
DE69813911T2 (de) VERFAHREN ZUR BESTIMMUNG VON BEWEGUNGSVEKTORFELDERN MIT LOKALER BEWEGUNGSSCHäTZUNG
DE60310800T2 (de) Approximierter Kubikfilter
DE69723550T2 (de) Kodierung und dekodierung von grafischen symbolen
DE69634423T2 (de) Videokodierung- und dekodierungsvorrichtung
DE69839100T2 (de) Verbesserte Videokodierung unter Verwendung von adaptiven Blockparametern für kodierte/unkodierte Blöcke
DE69738262T2 (de) Videokodierungs- und Videodekodierungsvorrichtung
DE69937462T2 (de) Effiziente macroblockheaderkodierung zur videokompression
DE69434369T2 (de) Adaptives variables Längendekodierungsverfahren für Videodaten
DE19704439C2 (de) Verfahren und Vorrichtung zur Bewegungsschätzung in einem digitalen Videocodierer unter Verwendung von Trajektorien
DE60125301T2 (de) Videosignaltranskodierung
DE69836432T2 (de) Bildcoder und -decoder
DE19758761B4 (de) Verfahren zum Intrakodieren eines von einer Pixelmatrix gebildeten Bildes
KR100313284B1 (ko) 화상의부호화방법,비인트라화상의매크로블럭부호화방법,화상매크로블럭부호화장치및비인트라화상매크로블럭부호화장치
EP0687111A2 (de) Verfahren zur Codierung/Decodierung eines Datenstroms
JP2002501709A (ja) ウェーブレットに基づくデータ圧縮を行う方法及び装置
US5748240A (en) Optimal array addressing control structure comprising an I-frame only video encoder and a frame difference unit which includes an address counter for addressing memory addresses
DE102005040026A1 (de) Vorrichtung und Verfahren zur Verarbeitung von Video-/Bilddaten
DE19739266A1 (de) Verfahren und Vorrichtung zum Kodieren binärer Formen
KR20000059799A (ko) 웨이브릿 부호화를 이용한 움직임 보상 부호화 장치 및 방법
DE69816971T2 (de) Videokodierer mit skalierungsabhängiger vlc (variable length code) kodierung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8304 Grant after examination procedure
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04N0007500000

Ipc: H04N0019610000

R081 Change of applicant/patentee

Owner name: GLOBALFOUNDRIES INC., KY

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMONK, NY, US

Owner name: GLOBALFOUNDRIES INC., KY

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMONK, N.Y., US

R082 Change of representative

Representative=s name: RICHARDT PATENTANWAELTE PARTG MBB, DE

R081 Change of applicant/patentee

Owner name: GLOBALFOUNDRIES INC., KY

Free format text: FORMER OWNER: GLOBALFOUNDRIES US 2 LLC (N.D.GES.DES STAATES DELAWARE), HOPEWELL JUNCTION, N.Y., US

R082 Change of representative

Representative=s name: RICHARDT PATENTANWAELTE PARTG MBB, DE

R071 Expiry of right