DE69738610T2 - MPEG-Codierer/Decodierer - Google Patents

MPEG-Codierer/Decodierer Download PDF

Info

Publication number
DE69738610T2
DE69738610T2 DE1997638610 DE69738610T DE69738610T2 DE 69738610 T2 DE69738610 T2 DE 69738610T2 DE 1997638610 DE1997638610 DE 1997638610 DE 69738610 T DE69738610 T DE 69738610T DE 69738610 T2 DE69738610 T2 DE 69738610T2
Authority
DE
Germany
Prior art keywords
difference
data
optimal
module
program
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
DE1997638610
Other languages
English (en)
Other versions
DE69738610D1 (de
Inventor
Hiroaki Minato-ku Ueda
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.)
Crescent Moon LLC
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of DE69738610D1 publication Critical patent/DE69738610D1/de
Application granted granted Critical
Publication of DE69738610T2 publication Critical patent/DE69738610T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Multi Processors (AREA)
  • Image Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

  • Die Erfindung betrifft ein Bildverarbeitungsgerät, insbesondere ein Gerät zum Komprimieren und Codieren von Bilddaten mit einer CPU (Zentraleinheit) oder einem DSP (Digitalsignalprozessor) und ein Gerät zur Wiedergabe bzw. Wiederherstellung von Bilddaten aus einem komprimierten Bildcode mit einer Zentraleinheit oder einem Digitalsignalprozessor.
  • Wenn digitalisierte Bilddaten direkt auf einem Aufzeichnungsmedium, wie z. B. einem CD-ROM und einer Festplatte, aufgezeichnet werden, wird eine enorme Kapazität des Aufzeichnungsmediums benötigt. Daher werden die digitalisierten Bilddaten normalerweise vor der Aufzeichnung komprimiert. Die Anwendung der DCT-Codierung (diskrete Cosinus-Transformation) ist bei Kompressionssystemen weiter verbreitet als andere Verfahren, wie z. B. DPCM (Differenz-Pulscodemodulation) und andere Codierungen mit orthogonalen Transformationen. Zum Beispiel wird die DCT-Codierung in internationalen Codierungsstandards angewandt, wie z. B. bei JPEG (Joint Photographic coding Experts Group) und MPEG (Moving Picture coding Experts Group). Die DCT-Codierung nutzt ihre Eigenschaften, so daß sich das Leistungsspektrum in Komponenten mit niedrigerer Frequenz der DCT-Koeffizienten konzentriert.
  • 24 zeigt eine Schemaskizze, die hierarchische Ebenen eines Codierungsformats darstellt, das MPEG entspricht. Wie aus 24 erkennbar, sind MPEG-Codes hierarchisch strukturiert. Die oberste hierarchische Ebene ist eine Videosequenz. Die Videosequenz besteht aus mehreren GOPs (Bildgruppen). Jede Bildgruppe besteht aus mehreren Bildern. Ein Bild repräsentiert einen Rahmen (Frame). Bilder können in I-Bilder, P-Bilder und B-Bilder eingeteilt werden. I-Bilder sind intraframe-codiert. P-Bilder sind vorwärts-präzidiert interframe-codiert. B-Bilder sind vorwärts/rückwärts-präzidiert interframe-codiert. Jedes Bild besteht aus mehreren Scheiben (slices).
  • Jede Scheibe besteht aus mehreren Makroblöcken, die von links nach rechts und von oben nach unten angeordnet sind. Jeder Makroblock besteht aus insgesamt sechs Blöcken. Vier Blöcke davon sind Leuchtdichtekomponenten (Y1, Y2, Y3, Y4), und zwei Blöcke davon sind Farbdifferenzkomponenten (Cb und Cr). Jeder der Blöcke besteht aus 8 × 8 Pixeln. Jeder Block ist die kleinste Codierungseinheit.
  • Als Nächstes wird unter Bezugnahme auf die beigefügten Zeichnungen ein Bildkompressionssystem beschrieben, das einem herkömmlichen System wie z. B. MPEG entspricht.
  • 25 zeigt ein Blockschaltbild, das eine Struktur einer Bildkompressionseinrichtung darstellt, die Bilddaten entsprechend MPEG komprimiert. Wie aus 25 erkennbar, liest die Bildkompressionseinrichtung RGB-Pixeldaten des Bilds ein. Die YUV-Umwandlungseinrichtung 205 wandelt die RGB-Pixeldaten in YUV-Pixeldaten um. Eine Bewegungsschätzeinrichtung 206 durchsucht die Bewegung von Makroblöcken des aktuellen Rahmens in Bezug auf die vorhergehenden/nachfolgenden Rahmen. Wie oben erwähnt, sind Bilder in drei Bildtypen eingeteilt: I-Bilder, die intraframe-codiert sind, P-Bilder, die interframe-codiert sind, und Bilder, die vorwärts/rückwärts-präzidiert interframe-codiert sind. Daher werden drei Typen von Kompressionsprozessen durchgeführt.
  • Im Fall von I-Bildern transformiert die DCT-Einrichtung 208 Blockdaten im aktuellen Rahmen in DCT-Koeffizienten. Eine Quantisiereinrichtung 209 quantisiert die DCT-Koeffizienten. Eine Codiereinrichtung 210 mit variabler Wortlänge komprimiert die quantisierten DCT-Koeffizienten mit hoher Effizienz zu Huffman-Codes.
  • Wiederhergestellte Bilddaten, die als Referenz bei der Codierung von P-Bildern und B-Bildern verwendet werden, erhält man aus quantisierten DCT-Koeffizienten wie folgt. Eine Dequantisiereinrichtung 214 dequantisiert die quantisierten DCT-Koeffizienten. Eine IDCT-Einrichtung (Einrichtung zur inversen diskreten Cosinus-Transformation) 213 führt die inverse diskrete Cosinus-Transformation für die dequantisierten DCT-Koeffizienten durch. Die erhaltenen Bilddaten werden im Referenzrahmenabschnitt 211 gespeichert.
  • Im Fall von P-Bildern berechnet eine bewegungskompensierte Voraussageeinrichtung 207 die Differenzen zwischen der Pixelebene jedes Blocks im aktuellen Rahmen und der Pixelebene in dem aus dem Referenzrahmenabschnitt 211 ausgelesenen vorhergehenden Rahmen, wobei die Verschiebung durch einen Bewegungsvektor aufgezeigt wird, der durch die Bewegungsschätzeinrichtung 206 aufgesucht wird. Die DCT-Einrichtung 208 führt die diskrete Cosinus-Transformation für die Differenzdaten durch, um DCT-Koeffizienten zu erzeugen. Die Quantisiereinrichtung 209 quantisiert die DCT-Koeffizienten. Die Codiereinrichtung 210 mit variabler Wortlänge komprimiert mit hoher Effizienz die quantisierten DCT-Koeffizienten zu Huffman-Codes.
  • Wiederhergestellte Bilddaten, die als Referenz bei der Codierung von P-Bildern und B-Bildern verwendet werden, erhält man aus quantisierten DCT-Koeffizienten wie folgt. Eine Dequantisiereinrichtung 214 dequantisiert die quantisierten DCT-Koeffizienten. Eine IDCT-Einrichtung (Einrichtung zur inversen diskreten Cosinus-Transformation) 213 führt die inverse diskrete Cosinus-Transformation für die dequantisierten DCT-Koeffizienten durch. Die Bilddaten im Referenzrahmenabschnitt 211 werden ausgelesen, wobei die Verschiebung durch einen Bewegungsvektor aufgezeigt und zu den Differenzdaten addiert wird. Die Summen werden im Referenzrahmenabschnitt 211 gespeichert.
  • Im Fall von B-Bildern berechnet die bewegungskompensierte Voraussageeinrichtung 207 die Differenzen zwischen der Pixelebene jedes Blocks im aktuellen Rahmen und der Pixelebene in dem aus dem Referenzrahmenabschnitt 211 ausgelesenen vorhergehenden oder nachfolgenden Rahmen, wobei die Verschiebung durch einen Bewegungsvektor aufgezeigt wird, der durch die Bewegungsschätzeinrichtung 206 aufgesucht wird. Die DCT-Einrichtung 208 führt die diskrete Cosinus-Transformation für die Differenzdaten durch, um DCT-Koeffizienten zu erzeugen. Die Quantisiereinrichtung 209 quantisiert die DCT-Koeffizienten. Die Codiereinrichtung 210 mit variabler Wortlänge komprimiert mit hoher Effizienz die quantisierten DCT-Koeffizienten zu Huffman-Codes. Da B-Bilder nicht als Referenzrahmen benutzt werden, werden aus den quantisierten DCT-Koeffizienten in B-Bildern keine wiederhergestellten Bilddaten regeneriert.
  • Als Nächstes wird unter Bezugnahme auf die beigefügten Zeichnungen ein Bilddatenwiederherstellungssystem beschrieben. 26 zeigt ein Blockschaltbild, das die Struktur einer Bilddatenwiederherstellungseinrichtung darstellt, die Bilddaten aus den Codes wiederherstellt, die durch ein Bildkompressionssystem erzeugt werden oder der MPEG-Syntax entsprechen.
  • Die in 26 dargestellte Bilddatenwiederherstellungseinrichtung decodiert I-Bilder, die intraframe-codiert worden sind, P-Bilder, die vorwärts-prädiziert interframe-codiert worden sind, und B-Bilder, die vorwärts- oder rückwärts-präzidiert interframe-codiert worden sind.
  • Im Fall von I-Bildern werden Bilddaten wie folgt wiederhergestellt. Die Decodiereinrichtung 225 mit variabler Wortlänge decodiert Codes mit variabler Wortlänge, um quantisierte DCT-Koeffizienten zu regenerieren. Die Dequantisiereinrichtung 226 dequantisiert die quantisierten DCT-Koeffizienten, um dequantisierte DCT-Koeffizienten zu regenerieren. Die IDCT-Einrichtung 227 führt die inverse diskrete Cosinus-Transformation für die dequantisierten DCT-Koeffizienten aus, um die YUV-Pixeldaten zu regenerieren. Die RGB-Umwandlungseinrichtung 228 wandelt YUV-Pixeldaten in RGB-Pixeldaten um und gibt die RGB-Pixeldaten aus.
  • Im Fall von P-Bildern werden Bilddaten wie folgt wiederhergestellt. Die Decodiereinrichtung 225 mit variabler Wortlänge decodiert Codes mit variabler Wortlänge, um quantisierte DCT-Koeffizienten zu regenerieren. Die Dequantisiereinrichtung 226 dequantisiert die quantisierten DCT-Koeffizienten. Die IDCT-Einrichtung 227 führt die inverse diskrete Cosinus-Transformation aus, um die Differenzdaten zu regenerieren. Die aus dem Referenzrahmenabschnitt 229 ausgelesenen Daten des vorhergehenden Rahmens werden durch die Bewegungskompensationseinrichtung 230 bewegungskompensiert und zu den Differenzdaten addiert, um Daten im aktuellen Rahmen zu regenerieren. Die RGB-Umwandlungseinrichtung 228 wandelt die resultierenden Daten in RGB-Pixeldaten um und gibt die RGB-Pixeldaten aus.
  • Im Fall von B-Bildern werden Bilddaten wie folgt wiederhergestellt. Die Codiereinrichtung 225 mit variabler Wortlänge decodiert Codes mit variabler Wortlänge, um quantisierte DCT-Koeffizienten zu regenerieren. Die Dequantisiereinrichtung 226 dequantisiert die quantisierten DCT-Koeffizienten. Die IDCT-Einrichtung 227 führt die inverse diskrete Cosinus-Transformation durch, um die Differenzdaten zu regenerieren. Die aus dem Referenzrahmenabschnitt 229 ausgelesenen Daten des vorhergehenden Rahmens oder nachfolgenden Rahmens werden durch die Bewegungskompensationseinrichtung 230 bewegungskompensiert und zu den Differenzdaten addiert, um Daten im aktuellen Rahmen zu regenerieren. Die RGB-Umwandlungseinrichtung 228 wandelt die resultierenden Daten in RGB-Pixeldaten um und gibt die RGB-Pixeldaten aus.
  • Daher können entsprechend dem internationalen Standard-MPEG-System Bilddaten mit hoher Effizienz komprimiert und wiederhergestellt werden. Da jedoch der bewegungsschätzende, bewegungskompensierte Voraussageprozeß und der DCT/IDCT-Prozeß eine große Anzahl von Berechnungen erfordern, wenn Bilddaten durch Software auf einer Zentraleinheit (CPU) oder einem Digitalsignalprozessor (DSP) komprimiert und wiederhergestellt werden, sollten sie mit einem optimalen Programm verarbeitet werden, das der Charakteristik der jeweiligen CPU oder des jeweiligen DSP entspricht.
  • Daher sind verschiedene Programme bereitzustellen, die verschiedenen CPU bzw. DSP entsprechen, und diese Programme sollten umgeschaltet werden, um mit der jeweiligen CPU und dem jeweiligen DSP zu Rande zu kommen.
  • Als Hinweis auf eine verwandte Technik zum Umschalten mehrerer Programme ist in der Japanischen Patentoffenlegungsschrift Nr. 63-234 461 ein System vorgeschlagen worden, das im Time-Sharing-Verfahren mit einer Priorität zwischen mehreren Codierungs-/Decodierungsprozessen umschaltet. Außerdem wird zum Beispiel in der Japanischen Patentoffenlegungsschrift Nr. 2-108119 eine Struktur offenbart, von der mehrere Datenkompressionseinrichtungen bereitgestellt und Daten durch die optimale Kompressionseinrichtung mit der höchsten Kompressionsleistung komprimiert werden. In der Japanischen Patentoffenlegungsschrift Nr. 5-233267 ist eine Struktur eines eingebauten ROM-Programmspeichers vorgeschlagen worden, von dem sowohl ein in einem ROM gespeichertes komprimiertes Programm als auch ein in einem Sicherungs-RAM gespeichertes Differenzprogramm beide in einem RAM entwickelt werden, um ein ausführbares Programm zusammenzusetzen.
  • In den herkömmlichen Bildverarbeitungs- und -wiederherstellungseinrichtungen sind jedoch eine große Anzahl von Programmen erforderlich, die einer großen Anzahl von Zentraleinheiten (CPU), Digitalsignalprozessoren (DSP) usw. entsprechen. Daher vergrößert sich die Speicherkapazität für Programme.
  • Außerdem müssen bei jeder Umschaltung von Vorrichtungen auch Programme umgeschaltet werden. Daher wird der Prozeß kompliziert.
  • Eine Aufgabe der vorliegenden Erfindung ist die Bereitstellung einer Bildkompressionsvorrichtung und -wiederherstellungsvorrichtung, die ein optimales Programm für die Zentraleinheit (CPU) oder den Digitalsignalprozessor (DSP) ausführen, die unter einer großen Anzahl von CPU- und DSP-Typen in Gebrauch sind und mit einer kleinen Programmkapazität ausgestattet sind.
  • Ein erster Aspekt der vorliegenden Erfindung ist die Bereitstellung einer Bildkompressionsvorrichtung, die Bilddaten komprimiert, indem sie veranlaßt, daß ein Prozessor ein optimales ausführbares Programm zur Durchführung eines Intraframe-Codierungsprozesses, eines Interframe-Codierungsprozesses mit Vorwärtsprädiktion und eines bidirektionalen Interframe-Codierungsprozeß ausführt, wobei der Intraframe Codierungsprozeß aufweist: Unterteilen des aktuellen Rahmens in kleine Blöcke, Durchführen des DCT-Prozesses (diskrete Cosinus-Transformation) für jeden der kleinen Blöcke, Quantisieren des transformierten Ergebnisses und Codieren des quantisierten Ergebnisses, wobei der Interframe-Codierungsprozeß mit Vorwärtsprädiktion aufweist: Unterteilen des aktuellen Rahmens in kleine Blöcke, Durchsuchen des vorhergehenden Rahmens nach einem kleinen Block, der die Differenz zwischen jedem der kleinen Blöcke im aktuellen Rahmen und dem aufgesuchten kleinen Block minimiert, Ermitteln der Differenzdaten zwischen jedem der kleinen Blöcke im aktuellen Rahmen und dem relevanten aufgesuchten kleinen Block, Durchführen des DCT Prozesses für die Differenzdaten, Quantisieren des transformierten Ergebnisses und Codieren des quantisierten Ergebnisses, wobei der bidirektionale Interframe-Codierungsprozeß aufweist: Unterteilen des aktuellen Rahmen in kleine Blöcke, Durchsuchen des vorhergehenden Rahmens und des nachfolgenden Rahmens nach einem kleinen Block, der die Differenz zwischen jedem der kleinen Blöcke im aktuellen Rahmen und dem aufgesuchten kleinen Block minimiert, Ermitteln der Differenzdaten zwischen jedem der kleinen Blöcke im aktuellen Rahmen und dem relevanten aufgesuchten kleinen Block, Durchführen des DCT-Prozesses für die Differenzdaten, Quantisieren des transformierten Ergebnisses und Codieren des quantisierten Ergebnisses; sowie eine Einrichtung zum Erzeugen des Programms für die erfaßte Zentraleinheit (CPU) oder den erfaßten Digitalsignalprozessor (DSP) mit dem Basismodul und dem Differenzmodul, die der CPU bzw. dem DSP entsprechen.
  • Diese und weitere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden angesichts der folgenden ausführlichen Beschreibung der besten Ausführungsart der Erfindung, wie sie in den beigefügten Zeichnungen veranschaulicht wird, besser ersichtlich werden.
  • 1 zeigt ein Blockschaltbild, das ein Beispiel der Struktur einer Bildkompressionsvorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
  • 2 zeigt ein Blockschaltbild, das ein Beispiel der Struktur einer Bildwiederherstellungsvorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
  • 3 zeigt ein Schema zur Erläuterung eines Erzeugungsprozesses eines optimalen Programms nach einer Ausführungsform der vorliegenden Erfindung;
  • 4 zeigt ein Ablaufdiagramm zur Erläuterung eines Arbeitsablaufs einer Gerätesteuerungseinrichtung einer Bildkompressionsvorrichtung nach einer Ausführungsform der vorliegenden Erfindung;
  • 5 zeigt einen ersten Teil eines Ablaufdiagramms zur Erläuterung eines Bildkompressionsprozesses nach einer Ausführungsform der vorliegenden Erfindung;
  • 6 zeigt einen zweiten Teil eines Ablaufdiagramms zur Erläuterung eines Bildkompressionsprozesses nach einer Ausführungsform der vorliegenden Erfindung;
  • 7 zeigt ein Ablaufdiagramm zur Erläuterung eines Erzeugungsprozesses für ein Kompressionsprogramm nach einer Ausführungsform der vorliegenden Erfindung;
  • 8 zeigt ein Ablaufdiagramm zur Erläuterung einer Gerätesteuerungseinrichtung einer Bildwiederherstellungsvorrichtung nach einer Ausführungsform der vorliegenden Erfindung;
  • 9 zeigt ein Ablaufdiagramm zur Erläuterung eines Bildwiederherstellungsprozesses nach einer Ausführungsform der vorliegenden Erfindung;
  • 10 zeigt ein Ablaufdiagramm zur Erläuterung eines Erzeugungsprozesses für ein Wiederherstellungsprogramm nach einer Ausführungsform der vorliegenden Erfindung;
  • 11 zeigt ein Ablaufdiagramm zur Erläuterung eines Modulerzeugungsprozesses nach einer Ausführungsform der vorliegenden Erfindung;
  • 12(a) zeigt ein Beispiel einer Anweisung;
  • 12(b) zeigt eine Liste, die Differenzcodes gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
  • 13(c) zeigt ein Beispiel einer Folge von Differenzcodes;
  • 14(A) zeigt eine Liste von Programmcodes eines Basis-Quantisierungsmoduls;
  • 14(3) zeigt eine Liste von Programmcodes eines optimalen Quantisierungsmoduls für die CPU B;
  • 14(C) zeigt einen oberen Abschnitt einer Liste von Differenzcodes eines Differenz-Quantisierungsmoduls für die CPU B;
  • 15 zeigt eine Liste von Differenzcodes eines Differenz-Quantisierungsmoduls für die CPU B;
  • 16(A) zeigt eine Liste von Programmcodes eines Basis-DCT-moduls;
  • 16(B) zeigt eine Liste von Programmcodes eines optimalen DCT-moduls für die CPU B;
  • 16(C) zeigt einen oberen Abschnitt einer Liste von Differenzcodes eines Differenz-DCT-moduls für die CPU B;
  • 17 zeigt eine Liste von Differenzcodes eines Differenz-DCT-moduls für die CPU B;
  • 18(A) zeigt eine Liste von Programmcodes eines Basis-Bewegungskompensationsmoduls;
  • 18(B) zeigt eine Liste von Programmcodes eines optimalen Bewegungskompensationsmoduls für die CPU B;
  • 18(C) zeigt einen oberen Abschnitt einer Liste von Differenzcodes eines Differenz-Bewegungskompensationsmoduls für die CPU B;
  • 19 zeigt eine Liste von Differenzcodes eines Differenz-Bewegungskompensationsmoduls für die CPU B;
  • 20(A) zeigt eine Liste von Programmcodes eines Basis-YUV-Umwandlungsmoduls;
  • 20(B) zeigt eine Liste von Programmcodes eines optimalen YUV-Umwandlungsmoduls für die CPU B;
  • 20(C) zeigt einen oberen Abschnitt einer Liste von Differenzcodes eines Differenz-YUV-Umwandlungsmoduls für die CPU B;
  • 21 zeigt eine Liste von Differenzcodes eines Differenz-YUV-Umwandlungsmoduls für die CPU B;
  • 22(A) zeigt eine Liste von Programmcodes eines Basis-Codierungsmoduls mit variabler Wortlänge;
  • 22(B) zeigt eine Liste von Programmcodes eines optimalen Codierungsmoduls mit variabler Wortlänge für die CPU B;
  • 22(C) zeigt einen oberen Abschnitt einer Liste von Differenzcodes eines Differenz-Codierungsmoduls mit variabler Wortlänge für die CPU B;
  • 23 zeigt eine Liste von Differenzcodes eines Differenz-Codierungsmoduls mit variabler Wortlänge für die CPU B;
  • 24 zeigt ein Schema, das hierarchische Ebenen eines Code-Formats darstellt, das MPEG entspricht;
  • 25 zeigt ein Blockschaltbild, das die Struktur einer herkömmlichen Bildverarbeitungsvorrichtung darstellt; und
  • 26 zeigt ein Blockschaltbild, das die Struktur einer herkömmlichen Bildwiederherstellungsvorrichtung darstellt.
  • 1 zeigt ein Blockschaltbild, das die Struktur einer Bildverarbeitungsvorrichtung nach einer Ausführungsform der vorliegenden Erfindung darstellt. Wie aus 1 erkennbar, weist die Bildverarbeitungsvorrichtung eine Gerätesteuerungseinrichtung 1, eine Zentraleinheit (CPU) 2, eine Tastatur 3, eine Bildkompressionseinrichtung 4, Programmdaten 15, eine Decodiereinrichtung 16 und eine Code-Tabelle 17 auf. Die Gerätesteuerungseinrichtung 1 steuert die gesamte Vorrichtung. Die CPU 2 führt ein Programm aus, das der Bildkompressionseinrichtung 4 entspricht. Die Tastatur 3 ermöglicht, daß der Benutzer Daten in die Vorrichtung eingibt. Die Bildkompressionseinrichtung 4 komprimiert ein Bild. Die Programmdaten 15 enthalten die Basismodule und die mehreren Sätze von Differenzmodulen. Jedes Differenzmodul wird erzeugt, indem die Differenz zwischen dem Basismodul und einem optimalen Modul für jede CPU gebildet wird. Alle Module werden durch Entropiecodierung komprimiert. Die Decodierungseinrichtung 16 decodiert die Programmdaten 15 unter Bezugnahme auf die Code-Tabelle 17, in der Entropiecodes gespeichert sind.
  • Die Bildkompressionseinrichtung 4 weist auf: eine YUV-Umwandlungseinrichtung 5, eine Bewegungsschätzeinrichtung 6, eine bewegungskompensierte Voraussageeinrichtung 7, eine DCT-Einrichtung 8, eine Quantisiereinrichtung 9, eine Codiereinrichtung 10 mit variabler Wortlänge, eine Dequantisiereinrichtung 14, eine IDCT-Einrichtung 13, eine Bewegungskompensationseinrichtung 12 und einen Referenzrahmenabschnitt 11.
  • Die YUV-Umwandlungseinrichtung 5 wandelt RGB-Pixeldaten eines Bilds in YUV-Pixeldaten um. Die Bewegungsschätzeinrichtung 6 durchsucht die Bewegung des Bilds für jeden der Makroblöcke. Die bewegungskompensierte Voraussageeinrichtung 7 berechnet die Differenzdaten zwischen dem bestehenden bzw. aktuellen Block und den Blöcken der vorhergehenden/nachfolgenden Rahmen, die bewegungskompensiert worden sind. Die DCT-Einrichtung 8 führt den diskreten Cosinus-Transformationsprozeß für die Absolutdaten oder Differenzdaten des Blocks durch, um DCT-Koeffizienten zu generieren. Die Quantisiereinrichtung 9 quantisiert die DCT-Koeffizienten. Die Codiereinrichtung 10 mit variabler Wortlänge codiert die quantisierten DCT-Koeffizienten zu Huffman-Codes. Die Dequantisiereinrichtung 14 dequantisiert die quantisierten DCT-Koeffizienten. Die IDCT-Einrichtung 13 führt den IDCT-Prozeß (inverse diskrete Cosinus-Transformation) für die dequantisierten DCT-Koeffizienten durch, um absolute Pixeldaten oder Differenzpixeldaten zu generieren. Die Bewegungskompensationseinrichtung 12 addiert die Differenzdaten zu den absoluten Pixeldaten des Referenzrahmens, die bewegungskompensiert worden sind, und schreibt die Summe in den Referenzrahmenabschnitt 11 ein. Der Referenzrahmenabschnitt 11 speichert die vorhergehenden/nachfolgenden Referenzrahmen.
  • Die in 1 dargestellte Bildkompressionsvorrichtung liest RGB-Pixeldaten eines Bilds. Die YUV-Umwandlungseinrichtung 5 wandelt die RGB-Pixeldaten in YUV-Pixeldaten um. Die Bewegungsschätzeinrichtung 6 sucht den Bewegungsvektor jedes Makroblocks in dem aktuellen Rahmen. Der Bewegungsvektor wird so abgeleitet, daß die Differenz zwischen dem Bildblock im aktuellen. Rahmen und einem Bildblock im vorhergehenden Rahmen oder im folgenden Rahmen, der entsprechend dem Bewegungsvektor verschoben ist, minimiert wird.
  • In MPEG werden Bilder (Rahmen) in intraframe-codierte I-Bilder, vorwärts-prädiziert interframe-codierte P-Bilder und vorwärts/rückwärts-prädiziert oder bidirektional interframe-codierte B-Bilder eingeteilt. Daher werden entsprechend dem Typ eines Bilds drei Kompressionstypen durchgeführt.
  • Im Fall von I-Bildern führt eine DCT-Einrichtung 8 den diskreten Cosinus-Transformationsprozeß für die Daten des Blocks des bestehenden bzw. aktuellen Rahmens durch, um DCT-Koeffizienten zu generieren. Eine Quantisiereinrichtung 9 quantisiert die DCT-Koeffizienten. Eine Codiereinrichtung 10 mit variabler Wortlänge komprimiert mit hoher Effizienz die quantisierten DCT-Koeffizienten zu Huffman-Codes.
  • Wiederhergestellte Bilddaten, die als Referenz beim Codieren von P-Bildern und B-Bildern verwendet werden, erhält man aus quantisierten DCT-Koeffizienten wie folgt. Die Dequantisiereinrichtung 14 dequantisiert die quantisierten DCT- Koeffizienten. Die IDCT-Einrichtung (inverse diskrete Cosinus-Transformation) 13 führt den inversen diskreten Cosinus-Transformationsprozeß für die dequantisierten DCT-Koeffizienten aus, um Pixeldaten zu regenerieren. Die erhaltenen Pixeldaten werden in einem Referenzrahmenabschnitt 11 gespeichert.
  • Im Fall von P-Bildern berechnet eine bewegungskompensierte Voraussageeinrichtung 7 die Differenzdaten zwischen den Pixeldaten des Blocks (8×8 Pixel) des aktuellen Rahmens und den Pixeldaten des aus dem Referenzrahmenabschnitt 11 ausgelesenen vorhergehenden Rahmens, wobei die Verschiebung durch einen Bewegungsvektor zugeordnet wird, der durch die Bewegungsschätzeinrichtung 6 aufgesucht wird. Die DCT-Einrichtung 8 führt den diskreten Cosinus-Transformationsprozeß für die Differenzdaten durch, um DCT-Koeffizienten zu generieren. Die Quantisiereinrichtung 9 quantisiert die DCT-Koeffizienten. Die Codiereinrichtung 10 mit variabler Wortlänge komprimiert mit hoher Effizienz die quantisierten DCT-Koeffizienten zu Huffmann-Codes.
  • Wiederhergestellte Bilddaten, die als Referenz beim Codieren von P-Bildern und B-Bildern verwendet werden, erhält man aus quantisierten DCT-Koeffizienten wie folgt. Die Dequantisiereinrichtung 14 dequantisiert die quantisierten DCT-Koeffizienten. Die IDCT-Einrichtung 13 führt den inversen diskreten Cosinus-Transformationsprozeß für die dequantisierten DCT-Koeffizienten durch, um Differenzdaten zu regenerieren. Die Bilddaten im Referenzrahmenabschnitt 11 werden ausgelesen, wobei die Verschiebung durch einen Bewegungsvektor aufgezeigt wird, und zu den Differenzdaten addiert. Die Summen werden im Referenzrahmenabschnitt 11 gespeichert.
  • Im Fall von B-Bildern berechnet die bewegungskompensierte Voraussageeinrichtung 7 die Differenzdaten zwischen den Pixeldaten des Blocks (8×8 Pixel) des aktuellen Rahmens und den Pixeldaten des vorhergehenden Rahmens oder des nachfolgenden Rahmens, die aus dem Referenzrahmenabschnitt 11 ausgelesen werden, wobei die Verschiebung durch den Bewegungsvektor zugeordnet wird, der durch die Bewegungsschätzeinrichtung 6 aufgesucht wird. Die DCT-Einrichtung 8 führt den diskreten Cosinus-Transformationsprozeß für die Differenzdaten durch, um DCT- Koeffizienten zu generieren. Die Quantisiereinrichtung 9 quantisiert die DCT-Koeffizienten. Die Codiereinrichtung 10 mit variabler Wortlänge komprimiert mit hoher Effizienz die quantisierten DCT-Koeffizienten zu Huffmann-Codes. Da B-Bilder nicht als Referenzrahmen verwendet werden, werden keine Pixeldaten aus den quantisierten DCT-Koeffizienten in B-Bildern regeneriert.
  • Die Gerätesteuerungseinheit 1 prüft die Kennung (ID) der vorhandenen Zentraleinheit (CPU) 2 und die CPU-ID der Programmdaten 15, um festzustellen, ob das Programm der Bildverarbeitungseinrichtung 4 ein optimales Programm für eine vorhandene CPU 2 ist oder nicht. Wenn das Ermittlungsergebnis NEIN ist, dann extrahiert die Gerätesteuerungseinrichtung 1 komprimierte Codes von Basismodulen und Differenzmodulen, die der vorhandenen CPU entsprechen, aus den Programmdaten 15, veranlaßt, daß die Decodiereinrichtung 16 die komprimierten Codes unter Bezugnahme auf die Code-Tabelle 17 decodiert, kombiniert decodierte Module für jede Funktion, um optimale Module für die vorhandene CPU 2 zu generieren, und kombiniert die optimalen Module und assembliert sie zu dem optimalen Programm für die vorhandene CPU 2.
  • 2 zeigt ein Blockschaltbild, das die Struktur einer Bildwiederherstellungsvorrichtung nach einer Ausführungsform der vorliegenden Erfindung darstellt.
  • Wie aus 2 erkennbar, weist die Bildwiederherstellungsvorrichtung auf: eine Gerätesteuerungseinrichtung 21, eine Zentraleinheit (CPU) 22, eine Tastatur 23, eine Bildwiederherstellungseinrichtung 24, Programmdaten 31, eine Decodiereinrichtung 32 und eine Code-Tabelle 33. Die Gerätesteuerungseinrichtung 21 steuert die gesamte Vorrichtung. Die CPU 22 führt das Programm aus, das der Bildwiederherstellungseinrichtung 24 entspricht. Die Tastatur 23 ermöglicht dem Benutzer, Daten in die Vorrichtung einzugeben. Die Bildwiederherstellungseinrichtung 24 stellt Bilder wieder her. Die Programmdaten 31 enthalten die Basismodule und mehrere Sätze von Differenzmodulen. Jedes Differenzmodul wird durch Differenzbildung zwischen dem Basismodul und einem optimalen Modul für jede CPU generiert. Alle Module werden durch Entropiecodierung kompri miert. Die Decodiereinrichtung 32 decodiert die Programmdaten 31 unter Bezugnahme auf die Code-Tabelle 33, in der Entropiecodes gespeichert sind.
  • Die Bildwiederherstellungseinrichtung 24 weist auf: eine Codiereinrichtung 25 mit variabler Wortlänge, eine Dequantisiereinrichtung 26, eine IDCT-Einrichtung 27, eine RGB-Umwandlungseinrichtung 28, einen Referenzrahmenabschnitt 29 und eine Bewegungskompensationseinrichtung 30. Die Decodiereinrichtung 25 mit variabler Wortlänge decodiert komprimierte Codes, um quantisierte DCT-Koeffizienten zu regenerieren. Die Dequantisiereinrichtung 26 dequantisiert die decodierten quantisierten DCT-Koeffizienten, um dequantisierte DCT-Koeffizienten zu regenerieren. Die IDCT-Einrichtung 27 führt den inversen diskreten Cosinuns-Transformationsprozeß für die dequantisierten DCT-Koeffizienten durch, um YUV-Pixeldaten oder Differenzdaten zu regenerieren. Die RGB-Umwandlungseinrichtung 28 wandelt YUV-Pixeldaten in RBG-Pixeldaten um. Der Referenzrahmenabschnitt 29 speichert den vorhergehenden Rahmen und den nachfolgenden Rahmen, die als Referenzrahmen verwendet werden. Die Bewegungskompensationseinrichtung 30 kompensiert die Bewegung der Blockdaten, die aus dem Referenzrahmenabschnitt 29 ausgelesen werden, entsprechend Bewegungsvektoren.
  • Die in 2 dargestellte Bildwiederherstellungsvorrichtung empfängt mit hoher Effizenz codierte Codes des Bilds und stellt Bilder wieder her, die aus intraframe-codierten I-Bildern, vorwärts-prädiziert interframe-codierten P-Bildern und vorwärts- oder rückwärts-prädiziert interframe-codierten B-Bildern bestehen.
  • Im Fall von I-Bildern werden Bilddaten wie folgt wiederhergestellt. Die Decodiereinrichtung 25 mit variabler Wortlänge decodiert die empfangenen Codes, um quantisierte DCT-Koeffizienten zu regenerieren. Die Dequantisiereinrichtung 26 dequantisiert die quantisierten DCT-Koeffizienten, um dequantisierte DCT-Koeffizienten zu regenerieren. Die IDCT-Einrichtung 27 führt den inversen diskreten Cosinus-Transformationsprozeß für die dequantisierten DCT-Koeffizienten durch, um die YUV-Pixeldaten des Blocks zu regenerieren. Die RGB-Umwand lungseinrichtung 28 wandelt YUV-Pixeldaten in RGB-Pixeldaten um.
  • Im Fall von P-Bildern werden Bilddaten wie folgt wiederhergestellt. Die Decodiereinrichtung 25 mit variabler Wortlänge decodiert die empfangenen Codes, um quantisierte DCT-Koeffizienten zu regenerieren. Die Dequantisiereinrichtung 26 dequantisiert die quantisierten DCT-Koeffizienten. Die IDCT-Einrichtung 27 führt den inversen diskreten Cosinus-Transformationsprozeß für die dequantisierten DCT-Koeffizienten durch, um die Differenzdaten der Pixel des Blocks zu generieren. Die aus dem Referenzrahmenabschnitt 29 ausgelesenen Daten des vorhergehenden Rahmens werden durch die Bewegungskompensationseinrichtung 30 bewegungskompensiert und zu den Differenzdaten addiert, um YUV-Pixeldaten im aktuellen Rahmen zu regenerieren. Die RGB-Umwandlungseinrichtung 28 wandelt die resultierenden Daten in RGB-Pixeldaten um und gibt die RGB-Pixeldaten aus.
  • Im Fall von B-Bildern decodiert die Decodiereinrichtung 25 mit variabler Wortlänge die empfangenen Codes, um quantisierte DCT-Koeffizienten zu regenerieren. Die Dequantisiereinrichtung 26 dequantisiert die quantisierten DCT-Koeffizienten. Die IDCT-Einrichtung 27 führt den inversen diskreten Cosinus-Transformationsprozeß für die dequantisierten DCT-Koeffizienten durch, um die Differenzdaten des Blocks zu regenerieren. Die aus dem Referenzrahmenabschnitt 29 ausgelesenen Daten des vorhergehenden oder nachfolgenden Rahmens werden durch die Bewegungskompensationseinrichtung 30 bewegungskompensiert und zu den Differenzdaten addiert, um YUV-Pixeldaten im aktuellen Rahmen zu regenerieren. Die RGB-Umwandlungseinrichtung 28 wandelt die resultierenden Daten in RGB-Pixeldaten um und gibt die RGB-Pixeldaten aus.
  • Außerdem prüft die Gerätesteuereinrichtung 21 die Kennung (ID) der vorhandenen CPU 22 und die CPU-ID der Programmdaten 31, um festzustellen, ob das Programm der Bildwiederherstellungseinrichtung 24 ein optimales Programm für die vorhandene CPU 22 ist oder nicht. Wenn das Ermittlungsergebnis NEIN ist, extrahiert die Gerätesteuerungseinrichtung 21 komprimierte Codes von Basismodulen und Differenzmodulen, die der vor handenen CPU entsprechen, aus den Programmdaten 31, veranlaßt, daß die Decodiereinrichtung 32 die komprimierten Codes unter Bezugnahme auf die Code-Tabelle 33 decodiert, kombiniert decodierte Module für jede Funktion, um optimale Module für die vorhandene CPU 22 zu generieren, und kombiniert und assembliert die optimalen Module zu dem optimalen Programm für die vorhandene CPU 22.
  • Als Nächstes wird das Verfahren zur Erzeugung eines optimalen Programms für eine bestimmte CPU gemäß einer Ausführungsform der vorliegenden Erfindung beschrieben.
  • 3 zeigt ein Schema, das einen Datenfluß eines Erzeugungsprozesses für ein optimales Programm gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. 3 zeigt, wie das optimale Dequantisierungsmodul für die CPU B 82 aus einem komprimierten Basis- und Differenzmodul in den Programmdaten 31 erzeugt wird, falls eine CPU A (CPU-ID=A) auf eine CPU B (CPU-ID=B) umgeschaltet wird.
  • Zunächst werden komprimierte Codes eines Basis-Dequantisierungsmoduls und komprimierte Codes von Dequantisierungs-Differenzdaten, die der CPU B entsprechen, aus den Programmdaten 31 extrahiert.
  • Als Nächstes decodiert die Decodiereinrichtung 32 unter Bezugnahme auf die Code-Tabelle 33 die komprimierten Codes eines Basismoduls, um ein Basis-Dequantisierungsmodul 83 zu generieren, decodiert unter Bezugnahme auf die Code-Tabelle 33 die komprimierten Codes von Differenzdaten, um ein Differenz-Dequantisierungsmodul zu geerieren, das der CPU B 85 entspricht, und erzeugt aus dem Basismodul 83 und den Differenzdaten 85 ein Dequantisierungsmodul 82, das für die CPU B optimal ist.
  • Als Nächstes wird das optimale Dequantisierungsmodul für die CPU A im Bildwiederherstellungsprogramm 81 durch das für die CPU B optimale Dequantisierungsmodul 82 ausgetauscht.
  • Als Nächstes werden ebenso das optimale Decodierungsmodul mit variabler Länge für die CPU A, das optimale IDCT-Modul für die CPU A, das optimale Bewegungskompensationsmodul für die CPU A und das optimale RGB-Umwandlungsmodul für die CPU A durch diejenigen Module ausgetauscht, die für die CPU B opti mal sind. Auf diese Weise wird ein für die CPU B optimales Bildwiederherstellungsprogramm 81 erzeugt.
  • Die Programmdaten 31 bestehen aus Modulen, die speziell zu einer hohen Belastung der CPU führen. Das heißt, auf der Bildwiederherstellungsseite bestehen die Programmdaten aus einem Modul mit variabler Wortlänge, einem Dequantisierungsmodul, einem IDCT-Modul, einem Bewegungsschätzmodul und einem RGB-Umwandlungsmodul. Da außerdem die Module viele sich wiederholende Anweisungen aufweisen, sind ähnliche Anweisungen in Modulen enthalten und angeordnet. Daher ist der Unterschied zwischen optimalen Modulen für verschiedene Zentraleinheiten (CPU) gering, und der Anteil der Differenzdaten ist klein.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung sind Programmdaten so strukturiert, daß das oben erwähnte Merkmal der Differenzdaten genutzt wird. Indem man dafür sorgt, daß die Programmdaten 31 aus den Basismodulen und den Differenzmodulen bestehen, die durch Bilden der Differenz zwischen jedem Basismodul und mehreren optimalen Modulen für jede CPU erzeugt werden, kann die Gesamtgröße der Programmdaten 31 reduziert werden.
  • Auf der Bildkompressionsseite bestehen die Programmdaten 15 ebenso aus Basismodulen und Differenzmodulen für jede Funktion, wie z. B. YUV-Umwandlung, Bewegungsschätzung, bewegungskompensierte Voraussage, DCT, Quantisierung, Codierung mit variabler Wortlänge, Dequantisierung, IDCT und Bewegungskompensation.
  • Als Nächstes wird die Funktionsweise gemäß einer Ausführungsform der vorliegenden Erfindung beschrieben.
  • 4 zeigt ein Ablaufdiagramm, das einen Arbeitsablauf der Gerätesteuereinrichtung 1 der in 1 dargestellten Bildkompressionsvorrichtung darstellt.
  • Das System vergleicht die Kennung (ID) der vorhandenen CPU 2 und die CPU-ID der vorhandenen Programmdaten 15 (im Schritt 41) und ermittelt, ob die Kennungen übereinstimmen oder nicht (im Schritt 42). Nur wenn das Ermittlungsergebnis im Schritt 42 NEIN ist, erzeugt das System ein Kompressionsprogramm (im Schritt 43). Als Nächstes komprimiert das System Bilder (im Schritt 44). Das System ermittelt, ob alle Rahmen komprimiert worden sind oder nicht (im Schritt 45). Wenn das Ermittlungsergebnis im Schritt 45 NEIN ist, springt der Programmablauf zum Schritt 44 zurück.
  • Die 5 und 6 zeigen einen ersten Teil bzw. einen zweiten Teil eines Ablaufdiagramms eines Bildkompressionsvorgangs.
  • Wie aus den 1, 5 und 6 erkennbar, wandelt bei dem Bildkompressionsvorgang die YUV-Umwandlungseinrichtung 5 RGB-Pixeldaten in YUV-Pixeldaten um (im Schritt 101). Die Bewegungsschätzeinrichtung 6 sucht nach einem Bewegungsvektor für jeden Makroblock des Bilds (im Schritt 102), ermittelt den Bildtyp (im Schritt 103) und führt einen vorgegebenen Prozeß durch, der dem Typ des Bilds entspricht.
  • Im Fall von I-Bildern werden diese wie folgt komprimiert. Die DCT-Einrichtung 8 führt den diskreten Cosinus-Transformationsprozeß für die YUV-Pixeldaten durch, um DCT-Koeffizienten zu generieren (im Schritt 104). Die Quantisiereinrichtung 9 quantisiert die DCT-Koeffizienten (im Schritt 105). Die Codiereinrichtung 10 mit variabler Wortlänge komprimiert mit hoher Effizienz die quantisierten DCT-Koeffizienten zu Huffman-Codes (im Schritt 106). Die Dequantisiereinrichtung 14 dequantisiert die quantisierten DCT-Koeffizienten (im Schritt 107). Die IDCT-Einrichtung 13 führt den inversen diskreten Cosinus-Transformationsprozeß für die dequantisierten DCT-Koeffizienten durch, um YUV-Pixeldaten zu regenerieren, die im Referenzrahmenabschnitt 11 gespeichert werden (im Schritt 108).
  • Im Fall von P-Bildern werden diese wie folgt komprimiert. Die bewegungskompensierte Voraussageeinrichtung 7 berechnet die Differenzdaten zwischen dem Block des aktuellen Rahmens und dem Block des vorhergehenden Rahmens, der aus dem Referenzrahmenabschnitt 11 ausgelesen wird, wobei durch den Bewegungsvektor eine Verschiebung zugeordnet wird (im Schritt 109). Die DCT-Einrichtung 8 führt den diskreten Cosinus-Transformationsprozeß für die Differenzdaten durch, um DCT-Koeffizienten zu generieren (im Schritt 110). Die Quantisiereinrichtung 9 quantisiert die DCT-Koeffizienten (im Schritt 111). Die Codiereinrichtung 10 mit variabler Wortlänge kompri miert die quantisierten DCT-Koeffizienten mit hoher Effizienz zu Huffman-Codes (im Schritt 112). Die Dequantisiereinrichtung 14 dequantisiert die quantisierten die DCT-Koeffizienten (im Schritt 113). Die IDCT-Einrichtung 13 führt den inversen diskreten Cosinus-Transformationsprozeß für die dequantisierten DCT-Koeffizienten durch, um Differenzdaten zu regenerieren (im Schritt 114). Die bewegungskompensierte Einrichtung 12 verschiebt die Daten in dem aus dem Referenzrahmenabschnitt 11 ausgelesenen vorhergehenden Rahmen entsprechend dem Bewegungsvektor und addiert die Differenzdaten zu den verschobenen Daten. Die Summe wird im Referenzrahmenabschnitt 11 gespeichert (im Schritt 115).
  • Im Fall von B-Bildern werden diese wie folgt komprimiert. Die bewegungskompensierte Voraussageeinrichtung 7 berechnet die Differenzdaten zwischen dem Block des aktuellen Rahmens und dem Block des vorhergehenden oder nachfolgenden Rahmens, die aus dem Referenzrahmenabschnitt 11 ausgelesen werden, wobei durch den Bewegungsvektor eine Verschiebung zugeordnet wird (im Schritt 116). Die DCT-Einrichtung 8 führt den diskreten Cosinus-Transformationsprozeß für die Differenzdaten durch, um DCT-Koeffizienten zu generieren (im Schritt 117). Die Quantisiereinrichtung 9 quantisiert die DCT-Koeffizienten (im Schritt 118). Die Codiereinrichtung 10 mit variabler Wortlänge komprimiert mit hoher Effizienz die quantisierten DCT-Koeffizienten zu Huffman-Codes (im Schritt 119). Die Dequantisiereinrichtung 14 dequantisiert die quantisierten DCT-Koeffizienten (im Schritt 120). Die IDCT-Einrichtung 13 führt den inversen diskreten Cosinus-Transformationsprozeß für die dequantisierten DCT-Koeffizienten durch, um Differenzdaten zu regenerieren (im Schritt 121). Die Bewegungskompensationseinrichtung 12 verschiebt die Daten in vorhergehenden oder nachfolgenden Rahmen, die aus dem Referenzrahmenabschnitt 11 ausgelesen werden, entsprechend dem Bewegungsvektor und addiert die Differenzdaten zu den verschobenen Daten. Die Summen werden im Referenzrahmenabschnitt 11 gespeichert (im Schritt 122).
  • 7 zeigt ein Ablaufdiagramm zur Erläuterung des Erzeugungsvorgangs eines Kompressionsprogramms gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Das System erzeugt ein YUV-Umwandlungsmodul der vorhandenen CPU mit Argumenten "X" (X ist die Kennung (ID) der vorhandenen CPU) und "YUV_Umwandlung" (im Schritt 131). Als Nächstes erzeugt das System ein Bewegungsschätzmodul der vorhandenen CPU mit Argumenten "X" (X ist die Kennung (ID) der vorhandenen CPU) und "Bewegung_Schätzung" (im Schritt 132).
  • Danach erzeugt das System ein bewegungskompensiertes Voraussagemodul der vorhandenen CPU mit Argumenten "X" (X ist die Kennung (ID) der vorhandenen CPU) und "bewegungs_kompensierte_Voraussage" (im Schritt 133). Das System erzeugt ein DCT-Modul der vorhandenen CPU mit Argumenten "X" (X ist die Kennung (ID) der vorhandenen CPU) und "DCT" (im Schritt 134).
  • Das System erzeugt ein Quantisierungsmodul der vorhandenen CPU mit Argumenten in "X" (X ist die Kennung (ID) der vorhandenen CPU) und "Quantisierung" (im Schritt 135). Das System erzeugt ein Codierungsmodul mit variabler Wortlänge der vorhandenen CPU mit Argumenten "X" (X ist die Kennung (ID) der vorhandenen CPU) und "variable_Länge_Code_Codierung" (im Schritt 136). Das System erzeugt ein Dequantisierungsmodul mit Argumenten "X" (X ist die Kennung (ID) der vorhandenen CPU) und "Dequantisierung" (im Schritt 137).
  • Das System erzeugt ein IDCT-Modul der vorhandenen CPU mit Argumenten "X" (X ist die Kennung (ID) der vorhandenen CPU) und "IDCT" (im Schritt 138). Das System erzeugt ein bewegungskompensiertes Modul der vorhandenen CPU mit Argumenten "X" (X ist die Kennung (ID) der vorhandenen CPU) und "Bewegung_Kompensation" (im Schritt 139).
  • 8 zeigt ein Ablaufdiagramm zur Erläuterung eines Prozesses der Gerätesteuerungseinrichtung 21 der in 2 dargestellten Bildwiederherstellungsvorrichtung.
  • Das System vergleicht die Kennung (ID) der vorhandenen CPU 22 mit der CPU-ID der vorhandenen Programmdaten 31 (im Schritt 141) und ermittelt, ob die Kennungen übereinstimmen oder nicht (im Schritt 142). Nur wenn das Ermittlungsergebnis NEIN ist, erzeugt das System ein Wiederherstellungsprogramm (im Schritt 143). Als Nächstes stellt System Bilder wieder her (im Schritt 144) und ermittelt, ob alle Rahmen wiederhergestellt worden sind oder nicht (im Schritt 145). Wenn das Ermittlungsergebnis NEIN ist, springt das Programm zum Schritt 144 zurück.
  • 9 zeigt ein Ablaufdiagramm zur Erläuterung eines Bildwiederherstellungsvorgangs gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Die Decodiereinrichtung 25 mit variabler Wortlänge (siehe 2) decodiert komprimierte Codes, um quantisierte DCT-Koeffizienten zu regenerieren (im Schritt 161), ermittelt den Bildtyp (im Schritt 162) und verarbeitet das Bild entsprechend dem Typ.
  • Im Fall von I-Bildern werden Bilddaten wie folgt wiederhergestellt. Die Dequantisiereinrichtung 26 (siehe 2) dequantisiert die quantisierten DCT-Koeffizienten (im Schritt 163). Die IDCT-Einrichtung 27 (siehe 2) führt den inversen diskreten Cosinus-Transformationsprozeß für die dequantisierten DCT-Koeffizienten durch, um YUV-Pixeldaten zu regenerieren. Die YUV-Pixeldaten werden im Referenzrahmenabschnitt 29 gespeichert (im Schritt 164). Die RGB-Umwandlungseinrichtung 28 (siehe 2) wandelt die YUV-Pixeldaten in RGB-Pixeldaten um (im Schritt 165).
  • Im Fall von P-Bildern werden Bilddaten wie folgt wiederhergestellt. Die Dequantisiereinrichtung 28 (siehe 2) dequantisiert die quantisierten DCT-Koeffizienten (im Schritt 166). Die IDCT-Einrichtung 27 (siehe 2) führt den inversen diskreten Cosinus-Transformationsprozeß für die dequantisierten DCT-Koeffizienten durch, um Differenzdaten zu regenerieren (im Schritt 167). Die aus dem Referenzrahmenabschnitt 29 (siehe 2) ausgelesenen Daten des vorhergehenden Rahmens werden durch die Bewegungskompensationseinrichtung 30 bewegungskompensiert (siehe 2) und zu den Differenzdaten addiert, um YUV-Pixeldaten im aktuellen Rahmen zu regenerieren, und die YUV-Pixeldaten werden im Referenzrahmenabschnitt 29 gespeichert (im Schritt 168). Die RGB-Umwandlungseinrichtung 28 (siehe 2) wandelt die YUV-Pixeldaten in RGB-Pixeldaten um (im Schritt 169).
  • Im Fall von B-Bildern werden Bilddaten wie folgt wiederhergestellt. Die Dequantisiereinrichtung 28 (siehe 2) dequantisiert die quantisierten DCT-Koeffizienten (im Schritt 170). Die IDCT-Einrichtung 27 (siehe 2) führt den inversen diskreten Cosinus-Transformationsprozeß für die dequantisierten DCT-Koeffizienten durch, um Differenzdaten zu regenerieren (im Schritt 171). Die Daten des vorhergehenden oder nachfolgenden Rahmens, die aus dem Referenzrahmenabschnitt 29 (siehe 2) ausgelesen werden, werden durch die Bewegungskompensationseinrichtung 30 (siehe 2) bewegungskompensiert und zu den Differenzdaten addiert, um YUV-Pixeldaten im aktuellen Rahmen zu regenerieren, und die YUV-Pixeldaten werden im Referenzrahmenabschnitt 29 gespeichert (im Schritt 172). Die RGB-Umwandlungseinrichtung 28 (siehe 2) wandelt die YUV-Pixeldaten in RGB-Pixeldaten um (im Schritt 173).
  • 10 zeigt ein Ablaufdiagramm zur Erläuterung des Vorgangs zum Erzeugen eines Wiederherstellungsprogramms gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Das System erzeugt ein Decodierungsmodul von variabler Wortlänge der vorhandenen CPU mit Argumenten "X" (X ist die Kennung (ID) der vorhandenen CPU) und "variable_Länge_Code_Codierung" (im Schritt 151). Das System erzeugt ein Dequantisierungsmodul der vorhandenen CPU mit Argumenten "X" (X ist die Kennung (ID) der vorhandenen CPU) und "Dequantisierung" (im Schritt 152). Das System erzeugt ein IDCT-Modul der vorhandenen CPU mit Argumenten "X" (X ist die Kennung (ID) der vorhandenen CPU) und "IDCT" (im Schritt 153).
  • Das System erzeugt ein RGB-Umwandlungsmodul der vorhandenen CPU mit Argumenten "X" (X ist die Kennung (ID) der vorhandenen CPU) und "RGB_Umwandlung" (im Schritt 154). Das System erzeugt ein Bewegungskompensationsmodul der vorhandenen CPU mit Argumenten "X" (X ist die Kennung (ID) der vorhandenen CPU) und "Bewegung Kompensation" (im Schritt 155).
  • 11 zeigt ein Ablaufdiagramm, das einen Vorgang zur Erzeugung jedes in 7 oder 10 dargestellten Moduls mit Argumenten "bezeichnete_CPU" und "bezeichnete_Funktion" darstellt.
  • Die Gerätesteuerungseinrichtung 1 (21) extrahiert die komprimierten Codes des Basismoduls mit der bezeichneten Funktion und die komprimierten Codes des Differenzmoduls, welcher der bezeichneten Funktion und der bezeichneten CPU entspricht, aus den Programmdaten 15 (31) (im Schritt 181).
  • Als Nächstes decodiert die Decodiereinrichtung 16 (32) Codes in beiden Modulen unter Bezugnahme auf die Code-Tabelle 17 (33) (im Schritt 182). Das System kombiniert das decodierte Differenzmodul und das decodierte Basismodul, um ein optimales Modul für die bezeichnete CPU zu erzeugen (im Schritt 183).
  • Das System tauscht das Modul in der Bildkompressionseinrichtung 4 (oder der Bildwiederherstellungseinrichtung 24) durch das erzeugte optimale Modul aus (im Schritt 184).
  • Als Nächstes wird unter Bezugnahme auf die beigefügten Zeichnungen eine Ausführungsform der vorliegenden Erfindung ausführlich beschrieben. In der nachstehenden Beschreibung wird angenommen, daß ein Intel 80 × 86-Prozessor verwendet wird.
  • Die 12 und 13 zeigen einen ersten Teil bzw. einen zweiten Teil einer Liste, welche die Struktur von Differenzcodes von Programmdaten darstellt. 12(A) zeigt ein Beispiel eines Programmcodes. Eine in 12(A) dargestellte Anweisung wird benutzt, um den Inhalt eines Registers bx in ein Register ax zu verschieben. Wie in 12(A) dargestellt, ist eine Programmanweisung (mov ax, bx) in einen Operationscode und Operanden unterteilt. Für einen Operanden wird oft ein Register benutzt, wie in diesem Beispiel dargestellt. Daher stellen bestimmte Differenzcodes die Änderung in der Einheit der Anweisung dar, und die anderen Differenzcodes repräsentieren Änderungen in der Einheit von Operationscodes, Operand und Register.
  • 12(B) zeigt eine Liste der Differenzcodes. Wie in 12(B) dargestellt, besteht jeder Differenzcode aus einem Byte.
  • "00" stellt dar, daß keine Änderung entsteht.
  • "01" stellt dar, daß die Typen aller Register von 32 Bit auf 16 Bit geändert werden.
  • "02" stellt dar, daß die Typen aller Register von 16 Bit auf 32 Bit geändert werden.
  • "03" stellt dar, daß der Typ des ersten Registers von 32 Bit auf 16 Bit geändert wird.
  • "04" stellt dar, daß der Typ des ersten Registers von 16 Bit auf 32 Bit geändert wird.
  • "05" stellt dar, daß der Typ des zweiten Registers von 32 Bit auf 16 Bit geändert wird.
  • "06" stellt dar, daß der Typ des zweiten Registers von 16 Bit auf 32 Bit geändert wird.
  • "07" stellt dar, daß der Operand durch den Operanden mit vorausgehendem Differenzcode ausgetauscht wird.
  • "08" stellt dar, daß das erste Register durch das Register mit vorausgehendem Differenzcode ausgetauscht wird.
  • "09" stellt dar, daß das zweite Register durch das Register mit vorausgehendem Differenzcode austauscht wird.
  • "0A" stellt dar, daß der Operationscode durch den Operationscode mit vorausgehendem Differenzcode ausgetauscht wird.
  • "0B" stellt dar, daß die Anweisung in der bestehenden Zeile durch die Anweisung mit vorausgehendem Differenzcode ausgetauscht wird.
  • "0C" stellt dar, daß die Anweisung mit vorausgehendem Differenzcode zwischen der vorhergehenden Zeile und der aktuellen Zeile eingefügt wird.
  • "0D" stellt dar, daß Zeilen von der aktuellen Zeile bis zu der Zeile mit dem Zahlenwert mit vorausgehendem Differenzcode durch den Programmcode mit vorausgehendem Zahlenwert ausgetauscht werden.
  • "0E" stellt dar, daß die Programmcodes mit vorausgehendem Zahlenwert für die Anzahl von Zeilen, die durch den Zahlenwert mit vorausgehendem Differenzcode bezeichnet werden, zwischen der vorhergehenden Zeile und der aktuellen Zeile eingefügt werden.
  • "0F" stellt dar, daß die aktuelle Zeile gelöscht wird.
  • "10" stellt dar, daß die Zeilen von der aktuellen Zeile an in der durch den Zahlenwert mit vorausgehendem Differenzcode bezeichneten Anzahl gelöscht werden.
  • "11" stellt dar, daß die aktuelle Zeile und die nächste Zeile ausgetauscht werden.
  • "12" stellt dar, daß die aktuelle Zeile und die Zeile, die durch den Zahlenwert mit vorausgehendem Differenzcode bezeichnet wird, ausgetauscht werden.
  • 13(C) zeigt eine Liste, die ein Beispiel der Differenzcode-Folge von Programmdaten darstellt. Die ersten zwei Codes stellen die Startzeile und die letzte Zeile des Bereichs dar, in der eine Differenz existiert.
  • "0010" ist ein Zwei-Byte-BCD-Code (binär codierter Dezimalcode), der die Startzeilennummer repräsentiert, von der an die Differenz existiert.
  • "0014" ist ein Zwei-Byte-BCD-Code, der die Nummer der letzten Zeile repräsentiert, bis zu der die Differenz existiert.
  • "01", "04", "00", "0B, 'inc ax'", "00" stellen Differenzcodes dar, die in der Reihenfolge zunehmender Zeilennummern angeordnet sind.
  • Wenn es einen weiteren Zeilenbereich gibt, in dem eine Differenz existiert, werden die Nummer der Startzeile und die Nummer der letzten Zeile zum Beispiel als "0040" bzw. "0045" beschrieben. Nach der letzten Zeilennummer werden Differenzcodes in der Reihenfolge zunehmender Zeilennummern beschrieben. Wenn keine Zeile mehr vorhanden ist, in der eine Differenz existiert, wird dies mit "0000" beschrieben.
  • In dieser Ausführungsform werden Differenzcodes nur für den Zeilenbereich beschrieben, in dem auf die oben erwähnte Weise eine Differenz existiert, was zu einem kleinen Datenumfang der Differenzdatei führt. Der Datenumfang der Differenzdatei wird kleiner, weil im Gegensatz dazu, daß eine Anweisung normalerweise aus drei oder mehr Bytes zusammengesetzt ist, der Differenzcode nur aus einem Byte besteht.
  • Da außerdem ähnliche Differenzcodes gruppiert werden, wenn sie nach dem Entropiecodierungsverfahren komprimiert werden, wird der Datenumfang der Differenzdatei weiter verringert.
  • Die 14 und 15 zeigen ein Beispiel, in dem ein Basis-Quantisierungsmodul durch ein optimales Quantisierungsmodul für eine CPU B ausgetauscht wird. 14(A) zeigt Programmcodes eines Basis-Quantisierungsmoduls. 14(B) zeigt Programmcodes des optimalen Quantisierungsmoduls für die CPU B. 14(C) zeigt einen oberen Abschnitt von Differenzcodes eines Differenz-Quantisierungsmoduls für die CPU B. 15 zeigt den Differenzcode-Abschnitt des Differenz-Quantisierungsmoduls für die CPU B.
  • Wie aus 15 erkennbar, werden zur Erzeugung des optimalen Quantisierungsmoduls für die CPU B die folgenden Änderungen durchgeführt.
  • Da die Zeile "0020" den Differenzcode "01" beschreibt, werden die Typen aller Register von 32 Bit auf 16 Bit geändert. Da die Zeile "0021" den Differenzcode "01" beschreibt, werden die Typen aller Register von 32 Bit auf 16 Bit geändert. Da die Zeile "0022" den Differenzcode "01" beschreibt, werden die Typen aller Register von 32 Bit auf 16 Bit geändert. Da die Zeilen "0023" und "0024" den Differenzcode "01" beschreiben, werden die Typen aller Register von 32 Bit auf 16 Bit geändert.
  • Da die Zeile "0025" den Differenzcode "0C" beschreibt, wird der Programmcode "push ax" mit dem vorausgehenden Differenzcode zwischen der vorhergehenden Zeile und der aktuellen Zeile eingefügt. Da die Zeile "0026" den Differenzcode "0C" beschreibt, wird der Programmcode "mov ax, cx" mit dem vorausgehenden, Differenzcode zwischen der vorhergehenden Zeile und der aktuellen Zeile eingefügt. Da die Zeile "0027" den Differenzcode "07" beschreibt, wird der Operand des Basismoduls der Zeile "0025" durch den Operand "dx" mit dem vorausgehenden Differenzcode ausgetauscht. Da die Zeile "0028" den Differenzcode "0C" beschreibt, wird der Programmcode "mov cx, ax" mit dem vorausgehenden Differenzcode zwischen der vorhergehenden Zeile und der aktuellen Zeile eingefügt. Da die Zeile "0028" den Differenzcode "01" beschreibt, werden die Typen aller Register von 32 Bit auf 16 Bit geändert.
  • Da die Zeile "0030" den Differenzcode "0C" beschreibt, wird der Programmcode "pop ax" mit dem vorausgehenden Differenzcode zwischen der vorhergehenden Zeile und der aktuellen Zeile eingefügt. Da die Zeile "0031" den Differenzcode "01" beschreibt, werden die Typen aller Register von 32 Bit auf 16 Bit geändert. Da die Zeile "0032" den Differenzcode "01" be schreibt, werden die Typen aller Register von 32 Bit auf 16 Bit geändert.
  • Die 16 und 17 zeigen ein Beispiel eines Prozesses, in dem ein Basis-DCT-Modul durch ein optimales DCT-Modul für die CPU B ausgetauscht wird. 16(A) zeigt Programmcodes eines Basis-DCT-Moduls. 16(B) zeigt Programmcodes des optimalen DCT-Moduls für die CPU B. 16(C) zeigt einen oberen Abschnitt von Differenzcodes eines Differenz-DCT-Moduls für die CPU B. 17 zeigt einen Differenzcode-Abschnitt des Differenz-DCT-Moduls für die CPU B.
  • Wie aus 17 erkennbar, werden zum Erzeugen eines optimalen DCT-Moduls für die CPU B die folgenden Änderungen durchgeführt.
  • Da die Zeile "0020" den Differenzcode "03" beschreibt, wird der Typ des ersten Registers von 32 Bit auf 16 Bit geändert. Da die Zeile "0021" den Differenzcode "03" beschreibt, wird der Typ des ersten Registers von 32 Bit auf 16 Bit geändert. Da die Zeile "0022" den Differenzcode "01" beschreibt, werden die Typen aller Register von 32 Bit auf 16 Bit geändert. Da die Zeile "0023" den Differenzcode "01" beschreibt, werden die Typen aller Register von 32 Bit auf 16 Bit geändert. Da die Zeile "0024" den Differenzcode "03" beschreibt, wird der Typ des ersten Registers von 32 Bit auf 16 Bit geändert. Da die Zeile "0025" den Differenzcode "03" beschreibt, wird der Typ des ersten Registers von 32 Bit auf 16 Bit geändert. Da die Zeile "0026" den Differenzcode "01" beschreibt, werden die Typen aller Register von 32 Bit auf 16 Bit geändert. Da die Zeile "0027" den Differenzcode "01" beschreibt, werden die Typen aller Register von 32 Bit auf 16 Bit geändert. Da die Zeile "0028" den Differenzcode "00" beschreibt, wird keine Änderung durchgeführt. Da die Zeile "0029" den Differenzcode "0B" beschreibt, wird die aktuelle Zeile durch den Programmcode "shr ax, c1" mit dem vorausgehenden Differenzcode ausgetauscht. Da die Zeile "0030" den Differenzcode "0D" beschreibt, werden die Programmcodes "neg c1" und "add c1, 16" mit dem vorausgehenden Differenzcode zwischen der vorhergehenden Zeile und der aktuellen Zeile eingefügt. Da die Zeile "0032" den Differenzcode "0C" beschreibt, wird der Programmco de "shr dx, c1" mit dem vorausgehenden Differenzcode zwischen der vorhergehenden Zeile und der aktuellen Zeile eingefügt. Da die Zeile "0033" den Differenzcode "0C" beschreibt, wird der Programmcode "or ax, dx" mit dem vorausgehenden Differenzcode zwischen der vorhergehenden Zeile und der aktuellen Zeile eingefügt. Da die Zeile "0034" den Differenzcode "03" beschreibt, wird der Typ des ersten Registers des Basismoduls der Zeile "0030" von 32 Bit auf 16 Bit geändert.
  • Die 18 und 19 zeigen ein Beispiel eines Prozesses, in dem ein Basis-Bewegungskompensationsmodul durch ein optimales Bewegungskompensationsmodul für die CPU B ausgetauscht wird. 18(A) zeigt Programmcodes, die das Basis-Bewegungskompensationsmodul darstellen. 18(B) zeigt Programmcodes des optimalen Bewegungskompensationsmoduls für die CPU B. 18(C) zeigt einen oberen Abschnitt eines Differenz-Bewegungskompensationsmoduls für die CPU B. 19 zeigt einen Differenzcode-Abschnitt des Differenz-Bewegungskompensationsmoduls für die CPU B.
  • Wie aus 19 erkennbar, werden zur Erzeugung des optimalen Bewegungskompensationsmoduls für die CPU B die folgenden Änderungen durchgeführt.
  • Da die Zeile "0020" den Differenzcode "01" beschreibt, werden die Typen aller Register von 32 Bit auf 16 Bit geändert. Da die Zeile "0021" den Differenzcode "01" beschreibt, werden die Typen aller Register von 32 Bit auf 16 Bit geändert. Da die Zeile "0022" den Differenzcode "00" beschreibt, wird keine Änderung durchgeführt. Da die Zeile "0023" den Differenzcode "00" beschreibt, wird keine Änderung durchgeführt.
  • Da die Zeilen "0024" bis "0029" den Differenzcode "00" beschreiben, wird keine Änderung durchgeführt. Da die Zeile "0030" den Differenzcode "0C" beschreibt, wird der Programmcode "mov [si], dx" mit dem vorausgehenden Differenzcode zwischen der vorhergehenden Zeile und der aktuellen Zeile eingefügt. Da die Zeile "0031" den Differenzcode "0B" beschreibt, wird die Zeile "0030" des Basismoduls durch den Programmcode "mov dx, [si + 2]" mit dem vorausgehenden Differenzcode ausgetauscht. Da die Zeile "0032" den Differenzcode "0B" beschreibt, wird die aktuelle Zeile durch den Programmcode "mov cx, [di + 2]" mit dem vorausgehenden Differenzcode ausgetauscht. Da die Zeile "0033" den Differenzcode "00" beschreibt, wird keine Änderung durchgeführt.
  • Die 20 und 21 zeigen ein Beispiel eines Prozesses, in dem ein Basis-YUV-Umwandlungsmodul durch ein optimales YUV-Umwandlungsmodul für die CPU B ausgetauscht wird. 20(A) zeigt Programmcodes des Basis-YUV-Umwandlungsmoduls. 20(B) zeigt Programmcodes des optimalen YUV-Umwandlungsmoduls für die CPU B. 20(C) zeigt einen oberen Abschnitt der Differenzcodes eines Differenz-YUV-Umwandlungsmoduls für die CPU B. 21 zeigt einen Abschnitt der Differenzcodes des Differenz-YUV-Umwandlungsmoduls für die CPU B.
  • Wie aus 21 erkennbar, werden zur Erzeugung des optimalen YUV-Umwandlungsmoduls für die CPU B die folgenden Änderungen durchgeführt.
  • Da die Zeile "0020" den Differenzcode "03" beschreibt, wird der Typ des ersten Registers von 32 Bit auf 16 Bit geändert. Da die Zeile "0021" den Differenzcode "03" beschreibt, wird der Typ des ersten Registers von 32 Bit auf 16 Bit geändert. Da die Zeile "0022" den Differenzcode "03" beschreibt, wird die Zeile des ersten Registers von 32 Bit auf 16 Bit geändert. Da die Zeile "0023" den Differenzcode "00" beschreibt, wird keine Änderung durchgeführt.
  • Da die Zeile "0024" den Differenzcode "01" beschreibt, werden die Typen aller Register von 32 Bit auf 16 Bit geändert. Da die Zeile "0025" den Differenzcode "03" beschreibt, wird der Typ des ersten Registers von 32 Bit auf 16 Bit geändert. Da die Zeile "0026" den Differenzcode "00" beschreibt, wird keine Änderung durchgeführt. Da die Zeile "0027" den Differenzcode "01" beschreibt, werden die Typen aller Register von 32 Bit auf 16 Bit geändert. Da die Zeile "0028" den Differenzcode "0C" beschreibt, wird der Programmcode "adc dx, 0" mit dem vorausgehenden Differenzcode zwischen der vorhergehenden Zeile und der aktuellen Zeile eingefügt. Da die Zeile "0029" den Differenzcode "03" beschreibt, wird der Registertyp des Basismoduls der Zeile "0028" von 32 Bit auf 16 Bit geändert. Da die Zeile "0030" den Differenzcode "0C" beschreibt, wird der Programmcode "adc dx, 0" mit dem vorausgehenden Dif ferenzcode zwischen der vorhergehenden Zeile und der aktuellen Zeile eingefügt. Da die Zeile "0031" den Differenzcode "03" beschreibt, wird der Typ des ersten Registers von 32 Bit auf 16 Bit geändert.
  • Da die Zeile "0032" den Differenzcode "0C" beschreibt, wird der Programmcode "mov bh, dl" mit dem vorausgehenden Differenzcode zwischen der vorhergehenden Zeile und der aktuellen Zeile eingefügt. Da die Zeile "0033" den Differenzcode "03" beschreibt, wird der Typ des ersten Registers von 32 Bit auf 16 Bit geändert. Da die Zeile "0034" den Differenzcode "00" beschreibt, wird keine Änderung durchgeführt. Da die Zeile "0035" den Differenzcode "03" beschreibt, wird der Typ des ersten Registers von 32 Bit auf 16 Bit geändert. Da die Zeile "0036" den Differenzcode "03" beschreibt, wird der Typ des ersten Registers von 32 Bit auf 16 Bit geändert.
  • Die 22 und 23 zeigen ein Beispiel eines Verfahrens, bei dem ein Basis-Codierungsmodul mit variabler Wortlänge durch ein optimales Codierungsmodul mit variabler Wortlänge für die CPU B ausgetauscht wird. 22(A) zeigt Programmcodes des Basis-Codierungsmoduls mit variabler Wortlänge. 22(B) zeigt Programmcodes des optimalen Codierungsmoduls mit variabler Wortlänge für die CPU B. 22(C) zeigt einen oberen Abschnitt von Differenzcodes des optimalen Codierungsmoduls mit variabler Wortlänge für die CPU B. 23 zeigt einen Differenzcode-Abschnitt des Differenz-Codierungsmoduls mit variabler Wortlänge für die CPU B.
  • Wie aus 23 erkennbar, werden zur Erzeugung des optimalen Codierungsmoduls mit variabler Wortlänge der CPU B die folgenden Änderungen durchgeführt.
  • Da die Zeile "0020" den Differenzcode "0C" beschreibt, wird der Programmcode "xchg bh, b1" mit dem vorausgehenden Differenzcode zwischen der vorhergehenden Zeile und der aktuellen Zeile eingefügt. Da die Zeile "0021" den Differenzcode "0A" beschreibt, wird die aktuelle Zeile durch den Programmcode "xchg dh, dl" mit dem vorausgehenden Differenzcode ausgetauscht. Da die Zeile "0022" den Differenzcode "01" beschreibt, werden die Typen aller Register von 32 Bit auf 16 Bit geändert.
  • Da die Zeile "0023" den Differenzcode "0C" beschreibt, wird der Programmcode "mov [di + 2], dx" mit dem vorausgehenden Differenzcode zwischen der vorhergehenden Zeile und der aktuellen Zeile eingefügt. Da die Zeile "0024" den Programmcode "03" beschreibt, wird der Typ des ersten Registers von 32 Bit auf 16 Bit geändert.
  • Da das an mehreren CPU- und DSP-Arten ausführbare Programm für Bildkompression und -wiederherstellung, wie oben beschrieben, aus den Grundmodulen und mehreren Sätzen von Differenzmodulen besteht, die der jeweiligen Zentraleinheit (CPU) und dem jeweiligen Digitalsignalprozessor (DSP) entsprechen und durch Entropiecodierung komprimiert werden, wird die Kapazität des Programms vermindert, während die Anpassungsfähigkeit an mehrere CPU- und DSP-Arten erhalten bleibt.
  • Wenn gemäß der vorliegenden Erfindung ein optimales Kompressions-Wiederherstellungsprogramm für jede CPU, jeden DSP usw. erzeugt wird, sofern diese nicht verändert werden, braucht außerdem kein zusätzliches Kompressions-/Wiederherstellungsprogramm erzeugt zu werden.
  • Obwohl die vorliegende Erfindung in Bezug auf eine beste Ausführungsart dargestellt und beschrieben worden ist, dürfte der Fachmann erkennen, daß die vorstehenden und verschiedene andere Änderungen, Weglassungen und Hinzufügungen in Form und Detail der Erfindung ausgeführt werden können, ohne vom Grundgedanken und vom Umfang der vorliegenden Erfindung abzuweichen.

Claims (3)

  1. Bildverarbeitungsvorrichtung, die Bilddaten komprimiert, indem sie bewirkt, daß ein Prozessor ein optimales ausführbares Programm zur Durchführung eines Intraframe-Codierungsprozesses, eines Interframe-Codierungsprozesses mit Vorwärtsprädiktion und eines bidirektionalen Interframe-Codierungsprozesses ausführt, wobei der Intraframe-Codierungsprozeß aufweist: Unterteilen des aktuellen Rahmens in kleine Blöcke, Durchführen eines DCT-Prozesses (diskrete Cosinus-Transformation) für jeden der kleinen Blöcke, Quantisieren des transformierten Ergebnisses und Codieren des quantisierten Ergebnisses, wobei der Interframe-Codierungsprozeß mit Vorwärtsprädiktion aufweist: Unterteilen des aktuellen Rahmens in kleine Blöcke, Durchsuchen des vorhergehenden Rahmens nach einem kleinen Block, der die Differenz zwischen jedem der kleinen Blöcke im aktuellen Rahmen und dem aufgesuchten kleinen Block minimiert, Ermitteln der Differenzdaten zwischen jedem der kleinen Blöcke im aktuellen Rahmen und dem relevanten aufgesuchten kleinen Block, Durchführen des DCT-Prozesses für die Differenzdaten, Quantisieren des transformierten Ergebnisses und Codieren des quantisierten Ergebnisses, wobei der bidirektionale Interframe-Codierungsprozeß aufweist: Unterteilen des aktuellen Rahmens in kleine Blöcke, Durchsuchen des vorhergehenden Rahmens und des nachfolgenden Rahmens nach einem kleinen Block, der die Differenz zwischen jedem der kleinen Blöcke im aktuellen Rahmen und dem aufgesuchten kleinen Block minimiert, Ermitteln der Differenzdaten zwischen jedem der kleinen Blöcke im aktuellen Rahmen und dem relevanten aufgesuchten kleinen Block, Ausführen des DCT-Prozesses für die Differenzdaten, Quantisieren des transformierten Ergebnisses und Codieren des quantisierten Ergebnisses, gekennzeichnet durch eine Einrichtung zum Speichern von Basis-Quellenmodulen und Differenzmodulen, die jeweils Differenzen zwischen dem Basis-Quellenmodul und dem Quellenmodul für jeden Prozessor beschreiben; eine Einrichtung zum Erkennen eines Prozessortyps, der gegenwärtig genutzt wird; und eine Einrichtung zum Erzeugen eines optimalen Quellenmoduls für ein optimales ausführbares Modul für den erkannten Prozessortyp durch Modifikation jedes der Basis-Quellenmodule mit Differenzcodes in jedem der Differenzmodule, wobei die Differenzcodes jeweils eine Differenz zwischen dem optimalen Quellenmodul und dem Basis-Quellenmodul auf Anweisungsbasis, Operationscode-Basis oder Operandenbasis ausdrücken; eine Einrichtung zum Erzeugen eines optimalen Quellenprogramms durch Kombinieren einer Vielzahl der optimalen Quellenmodule; eine Einrichtung zum Zusammensetzen bzw. Assemblieren des optimalen ausführbaren Programms aus dem optimalen Quellenprogramm.
  2. Bildwiederherstellungsvorrichtung, die Bilddaten wiederherstellt, indem sie bewirkt, daß ein Prozessor ein optimales Programm zur Durchführung eines Wiederherstellungsprozesses ausführt, wobei der Wiederherstellungsprozeß aufweist: Decodieren von Bildcodes, um quantisierte DCT-Koeffizienten zu regenerieren, Dequantisieren der quantisierten DCT-Koeffizienten, um dequantisierte DCT-Koeffizienten zu regenerieren, Durchführen der IDCT (inversen diskreten Cosinus-Transformation) für die dequantisierten DCT-Koeffizienten, um Pixeldaten oder Differenzdaten zu regenerieren, Speichern der regenerierten Pixeldaten in einem Referenzrahmenabschnitt, Auslesen von Pixeldaten aus dem Referenzrahmenabschnitt, Kompensieren der Bewegung der ausgelesenen Pixeldaten und Addieren der Differenzdaten zu den bewegungskompensierten Pixeldaten, gekennzeichnet durch eine Einrichtung zum Speichern von Basis-Quellenmodulen und Differenzmodulen, die jeweils Differenzen zwischen dem Ba sis-Quellenmodul und dem Quellenmodul für jeden Prozessor beschreiben; eine Einrichtung zum Erkennen eines Prozessortyps, der gegenwärtig genutzt wird; und eine Einrichtung zum Erzeugen eines optimalen Quellenmoduls für ein optimales ausführbares Modul für den erkannten Prozessortyp durch Modifikation des jeweiligen Basis-Quellenmoduls mit Differenzcodes in jedem der Differenzmodule, wobei die Differenzcodes jeweils eine Differenz zwischen dem optimalen Quellenmodul und dem Basis-Quellenmodul auf Anweisungsbasis, Operationscode-Basis oder Operandenbasis ausdrücken; eine Einrichtung zum Erzeugen eines optimalen Quellenprogramms durch Kombinieren einer Vielzahl der optimalen Quellenmodule; eine Einrichtung zum Zusammensetzen bzw. Assemblieren des optimalen ausführbaren Programms aus dem optimalen Quellenprogramm.
  3. Vorrichtung nach Anspruch 1 oder 2, wobei die Basis-Quellenmodule und Differenzmodule entropiecodiert worden sind, und wobei die Vorrichtung ferner aufweist: eine Einrichtung zum Decodieren der Basis-Quellenmodule und Differenzmodule, die entropiecodiert worden sind.
DE1997638610 1996-09-06 1997-08-28 MPEG-Codierer/Decodierer Expired - Lifetime DE69738610T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP8257497A JP2914320B2 (ja) 1996-09-06 1996-09-06 モジュール切り替え型画像圧縮・再生装置
JP25749796 1996-09-06

Publications (2)

Publication Number Publication Date
DE69738610D1 DE69738610D1 (de) 2008-05-15
DE69738610T2 true DE69738610T2 (de) 2008-07-24

Family

ID=17307119

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1997638610 Expired - Lifetime DE69738610T2 (de) 1996-09-06 1997-08-28 MPEG-Codierer/Decodierer

Country Status (4)

Country Link
US (1) US6034730A (de)
EP (1) EP0828231B1 (de)
JP (1) JP2914320B2 (de)
DE (1) DE69738610T2 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10111792A (ja) * 1996-10-03 1998-04-28 Nec Corp 画像処理装置
US6411651B1 (en) * 1998-06-26 2002-06-25 Compaq Information Technologies Group, L.P. Method and system for distributed video compression in personal computer architecture
US8896715B2 (en) 2010-02-11 2014-11-25 Microsoft Corporation Generic platform video image stabilization
US9824426B2 (en) 2011-08-01 2017-11-21 Microsoft Technology Licensing, Llc Reduced latency video stabilization

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0770176B2 (ja) * 1987-03-23 1995-07-31 三菱電機株式会社 誤り制御装置
JPH02108119A (ja) * 1988-10-17 1990-04-20 Seiko Epson Corp データ圧縮装置
JPH05233267A (ja) * 1992-02-24 1993-09-10 Nec Home Electron Ltd プログラムrom内蔵装置
GB2268293A (en) * 1992-06-17 1994-01-05 Texas Instruments Ltd Installing a resident part of a Terminate and Stay Resident program.
JPH06152922A (ja) * 1992-11-06 1994-05-31 Canon Inc 画像送信装置
US5748980A (en) * 1994-05-27 1998-05-05 Microsoft Corporation System for configuring a computer system
JP2792452B2 (ja) * 1995-02-06 1998-09-03 日本電気株式会社 マルチメディア通信システム
US5838981A (en) * 1995-10-05 1998-11-17 Ricoh Company, Ltd. Data communication apparatus with a program renewal function
US5796434A (en) * 1996-06-07 1998-08-18 Lsi Logic Corporation System and method for performing motion estimation in the DCT domain with improved efficiency
US5819115A (en) * 1996-06-28 1998-10-06 Compaq Computer Corporation Driver bundle including a compressed, self-extracting, executable driver for the host processor and an adapter driver for the processor of a network adapter card
US5826090A (en) * 1997-03-17 1998-10-20 International Business Machines Corporation Loadable hardware support

Also Published As

Publication number Publication date
EP0828231A3 (de) 2000-04-26
EP0828231A2 (de) 1998-03-11
JP2914320B2 (ja) 1999-06-28
DE69738610D1 (de) 2008-05-15
US6034730A (en) 2000-03-07
JPH1084287A (ja) 1998-03-31
EP0828231B1 (de) 2008-04-02

Similar Documents

Publication Publication Date Title
DE60308255T2 (de) 2D-Transformationen zur Bild- und Videokodierung
DE69433272T2 (de) Vorrichtung zum Vermeiden von Rundungsfehlern bei der inversen Transformation von Transformationskoeffizienten eines Bewegtbildsignales
KR950006772B1 (ko) 압축된 비데오 데이타 표시를 발생하는 방법
DE60315565T2 (de) Verfahren und Vorrichtung zur Codierung und Decodierung von Bewegungsvektoren
DE69738264T2 (de) Videokodierungs- und Videodekodierungsvorrichtung
DE69233620T2 (de) Adaptive Kodierung und Dekodierung von Vollbildern und Halbbildern von Videosignalen
DE69632232T2 (de) Verfahren und Vorrichtung zur Komprimierung von Videoinformationen mit bewegungsabhängiger Prädiktion
DE69824554T2 (de) Verfahren und anordnung zum erzeugen eines standbildes mit hoher auflösung
DE19983253B4 (de) Die Kompression von Farbbildern auf der Grundlage einer zweidimensionalen diskreten Wavelet-Transformation, die ein scheinbar verlustloses Bild hervorbringt
DE19758761B4 (de) Verfahren zum Intrakodieren eines von einer Pixelmatrix gebildeten Bildes
DE69813349T2 (de) Vorrichtung zur Kontrolle der Datenmenge und Kodierer dieselbige anwendend
DE60309375T2 (de) Parametrisierung für verlauf-kompensation
DE602004001993T2 (de) Transformations basiertes restbewegungsrahmen kodierungsverfahren mit übervollständiger basis und zugehörige vorrichtung zur videokompression
DE19739266B4 (de) Verfahren und Vorrichtung zum Kodieren binärer Formen
DE69932429T2 (de) Verfahren und gerät für die inverse quantisierung von mpeg-4 video
DE69837497T2 (de) Verfahren und vorrichtung zum kodieren eines videosignals
KR940008495A (ko) 화상데이타의 압축, 해제방법 및 그 장치
DE69736654T2 (de) Vorrichtung und Verfahren zur Prädiktionskodierung und -dekodierung
DE10204617B4 (de) Verfahren und Vorrichtungen zur Kompression und Dekompression eines Videodatenstroms
DE69816971T2 (de) Videokodierer mit skalierungsabhängiger vlc (variable length code) kodierung
EP1425920B1 (de) Verfahren zur videocodierung und computerprogrammprodukt
DE69738610T2 (de) MPEG-Codierer/Decodierer
DE60036585T2 (de) Videodatencoder und Verfahren zur Codierung von Videodaten
DE69835431T2 (de) Bildkodier-und-dekodierverfahren und-vorrichtung
DE69835264T2 (de) Verfahren und Vorrichtung zur Auswahl einer Quantisierungstabelle für digitale Bildkodierung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: CRESCENT MONN, LLC, SAN DIEGO, CALIF., US