-
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.