DE69329519T2 - Verfahren und Vorrichtung zur Bildverarbeitung - Google Patents
Verfahren und Vorrichtung zur BildverarbeitungInfo
- Publication number
- DE69329519T2 DE69329519T2 DE1993629519 DE69329519T DE69329519T2 DE 69329519 T2 DE69329519 T2 DE 69329519T2 DE 1993629519 DE1993629519 DE 1993629519 DE 69329519 T DE69329519 T DE 69329519T DE 69329519 T2 DE69329519 T2 DE 69329519T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- pixel data
- comparison result
- pixel
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000003672 processing method Methods 0.000 title claims description 12
- 238000012545 processing Methods 0.000 claims description 148
- 239000000872 buffer Substances 0.000 claims description 126
- 238000000034 method Methods 0.000 claims description 85
- 238000013139 quantization Methods 0.000 claims description 47
- 238000006243 chemical reaction Methods 0.000 claims description 28
- 230000003139 buffering effect Effects 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000001131 transforming effect Effects 0.000 claims 8
- 238000009825 accumulation Methods 0.000 claims 2
- 238000007906 compression Methods 0.000 description 263
- 230000006835 compression Effects 0.000 description 256
- 230000002441 reversible effect Effects 0.000 description 73
- 238000003860 storage Methods 0.000 description 43
- 238000010586 diagram Methods 0.000 description 39
- 230000003044 adaptive effect Effects 0.000 description 27
- 239000003086 colorant Substances 0.000 description 25
- 238000005070 sampling Methods 0.000 description 17
- 230000008859 change Effects 0.000 description 16
- 238000013144 data compression Methods 0.000 description 12
- 230000006866 deterioration Effects 0.000 description 10
- 230000002427 irreversible effect Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 229910052681 coesite Inorganic materials 0.000 description 4
- 229910052906 cristobalite Inorganic materials 0.000 description 4
- 229910052682 stishovite Inorganic materials 0.000 description 4
- 229910052905 tridymite Inorganic materials 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 238000004040 coloring Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000002542 deteriorative effect Effects 0.000 description 2
- 230000001771 impaired effect Effects 0.000 description 2
- 238000010187 selection method Methods 0.000 description 2
- 239000012536 storage buffer Substances 0.000 description 2
- 241000255925 Diptera Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 210000003128 head Anatomy 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000000377 silicon dioxide Substances 0.000 description 1
- 235000012239 silicon dioxide Nutrition 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Image Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
- Die Erfindung betrifft ein Bildverarbeitungsverfahren und eine Bildverarbeitungsvorrichtung und bezieht sich insbesondere auf ein Bildkompressionsverfahren und eine Bildkompressionsvorrichtung zum Komprimieren von Bilddaten durch Umschalten eines Kompressionsverfahrens zwischen einem umkehrbaren Kompressionsverfahren und einem nicht umkehrbaren Kompressionsverfahren in Übereinstimmung mit der Art des Bildes, und auf ein Datenexpansionsverfahren und eine Datenexpansionsvorrichtung zum Expandieren von Daten, die sowohl umkehrbar komprimierte Daten als auch nicht umkehrbar komprimierte Daten einschliessen.
- In den zurückliegenden Jahren müssen mit der Verbreitung von z. B. DTP auf Computern zu erstellende Bilder eine hohe Bildqualität haben, und neigen dazu, eine grosse Anzahl von Farben und Gradationsniveaus zu haben.
- Die Informationsmenge eines Bildes dieser Art beträgt etwa 46 MByte im Fall von z. B. der Größe DIN A4, 400 dpi (dot per inch, Punkte pro Zoll, 1 Zoll = 2,54 cm), 256 Gradationsniveaus, und drei Primärfarben. Die Informationsmenge kann verringert werden, falls Bilddaten als Kodeinformationen von beispielsweise einer Seitenbeschreibungssprache (im folgenden als "PDL" abgekürzt) verarbeitet werden. In diesem Fall erfordert jedoch die Entwicklung von Kodeinformationen in Bilddaten eine lange Zeitdauer, und können Originalkodedaten mit einer geringeren Informationsmenge aus entwickelten Bilddaten nicht erzeugt werden. Aus diesem Grund ist die Kompressionstechnik von Bilddaten wichtig.
- Als ein allgemeines Kompressionsverfahren eines Farb-Multiwert-Bildes ist ein durch die JPEG (Joint Photographic Expert Group) empfohlenes ADCT (Adaptive Discrete Cosine Transform)- Verfahren bekannt. Das ADCT-Bildkompressionsverfahren wird nachstehend beschrieben.
- Fig. 14 ist ein Blockdiagramm, das eine Anordnung einer ADCT- Bildkompressionsvorrichtung zeigt.
- Bezug nehmend auf Fig. 14 bezeichnet ein Bezugszeichen 3101 einen Farbumwandlungsabschnitt zum Konvertieren eines RGB- Farbraumes des NTSC-Systems in einen YCrCb-Farbraum, der durch ein Helligkeits- bzw. Luminanzsignal Y und zwei Farbdifferenzsignale Cr und Cb ausgedrückt wird.
- Ein Bezugszeichen 3102 bezeichnet einen Unterabtastabschnitt zum Verringern von Farbdifferenzdaten durch Nutzen der Charakteristiken dahingehend, dass menschliche Augen für Luminanz empfindlich sind, aber gegenüber Farbunterschieden unempfindlich sind. Im Einzelnen berechnet der Abschnitt 3102 einen mittleren Wert zweier benachbarter Farbdifferenzdaten, um die Farbdifferenzdatenmenge auf 1/2 zu verringern.
- Ein Bezugszeichen 3103 bezeichnet einen DCT-Abschnitt zum Teilen von Bilddaten, die durch den Unterabtastabschnitt 3102 ausgegeben wurden, in Blöcke, von denen jeder aus 8 · 8 Pixeln besteht, welche Blöcke eine Matrix in der horizontalen und der vertikalen Richtung bilden, und Ausführen einer DCT (Discrete Cosine Transform), um die Blöcke in Frequenzraumdaten zu konvertieren.
- Ein Bezugszeichen 3104 bezeichnet einen Quantisierungsabschnitt zum Teilen von 8 · 8 = 64 DCT-Koeffizienten jeweils mit Quantisierungswerten mit unterschiedlichen Schrittweiten, um sie in Quantisierungsdaten zu konvertieren.
- Ein Bezugszeichen 3105 bezeichnet einen Huffman-Kodierabschnitt zum Klassifizieren der von dem Quantisierungsabschnitt 3104 ausgegebenen 64 quantisierten DCT-Koeffizienten in einen Gleichsignalkoeffizienten und 64 Wechselsignalkoeffizienten, und Kodieren dieser Koeffizienten in Übereinstimmung mit einer von der JPEG empfohlenen Huffman-Tabelle. Die kodierten Daten werden mit Kopfinformationen, wie beispielsweise Quantisierungstabellendaten, Huffman-Tabellendaten und der gleichen, ergänzt und dann in einem Speicher gespeichert oder an eine andere Vorrichtung übertragen.
- Fig. 15 ist ein Blockdiagramm, das eine Anordnung einer ADCT- Datenexpansionsvorrichtung zeigt.
- Bezug nehmend auf Fig. 15 bezeichnet ein Bezugszeichen 3205 einen Huffman-Dekodierabschnitt zum Dekodieren zugeführter kodierter Daten in quantisierte Daten.
- Ein Bezugszeichen 3204 bezeichnet einen inversen Quantisierungsabschnitt zum Konvertieren quantisierter Daten, die von dem Huffman-Dekodierabschnitt 3205 ausgegeben wurden, in DCT- Koeffizientendaten. Die inverse Quantisierung wird durch Multiplizieren von 64 Koeffizienten mit den entsprechenden Quantisierungswerten unter Verwendung der bei der Quantisierung in dem Quantisierungsabschnitt 3104 in Fig. 14 verwendeten Quantisierungstabelle erreicht.
- Ein Bezugszeichen 3203 bezeichnet einen inversen DCT-Abschnitt zum Ausführen einer inversen DCT von DCT-Koeffizientendaten, die von dem inversen Quantisierungsabschnitt 3204 ausgegeben wurden, um diese in eigentliche Bilddaten zu konvertieren.
- Ein Bezugszeichen 3202 bezeichnet einen Interpolationsabschnitt zum Interpolieren von Cr- und Cb-Daten, die aus den von dem inversen DCT-Abschnitt 3203 ausgegebenen Bilddaten weggelassen wurden, durch ein einfaches Wiederholungsverfahren. Es wird angemerkt, dass die Auslassung von Cr- und Cb- Daten auftritt, wenn Daten durch den Unterabtastabschnitt 3102 in Fig. 14 komprimiert werden.
- Ein Bezugszeichen 3201 bezeichnet einen Farbumwandlungsabschnitt zum Konvertieren von YCrCb-Farbraumdaten, die von dem Interpolationsabschnitt 3202 ausgegeben wurden, in NTSC-RGB- Farbraumdaten oder der Einrichtung entsprechende Farbraumdaten.
- Nachstehend wird der Verarbeitungsablauf der ADCT-Bildkompressiorisvorrichtung unter Heranziehen tatsächlicher Daten als Beispiel beschrieben.
- Fig. 16 zeigt NTSC-RGB-Farbraumdaten als einen Abschnitt von durch einen Computer erzeugten Farb-Multiwert-Bilddaten, d. h. einen Abschnitt (16 · 16 Pixel) von Bilddaten, in denen ein Zeichenabschnitt eines Farb-Multiwert-Bildes entwickelt ist.
- Bezug nehmend auf Fig. 16 bezeichnet ein Bezugszeichen 3301 R-Daten; bezeichnet 3302 G-Daten; und bezeichnet 3303 B- Daten. Es wird angemerkt, dass jeder Pixel einen Datenbereich von 8 Bit (0 bis 255) hat, und in Fig. 16 ein Abschnitt eines Zeichens in Blau, ausgedrückt durch (R, G, B) (30, 30, 225), auf einem relativ dunklen weissen Hintergrund, ausgedrückt durch (R, G, B) = (225, 225, 225), gezeichnet ist.
- Der Farbumwandlungsabschnitt 3101 führt unter Verwendung der folgenden Gleichungen die Umwandlung von einem NTSC-RGB- Farbraum in einen YCrCb-Farbraum aus:
- Y = 0, 299 · R + 0, 587 · G + 0, 114 · B
- Cr = 0,713(R - Y)
- Cb = 0,564(B - Y)
- Ferner rundet, um ein Überschiessen und ein Unterschiessen in Berechnungen in dem YCrCb-Farbraum gemäß der CCIR-Empfehlung zu erlauben, der Abschnitt 3101 die Daten unter Verwendung der folgenden Gleichungen:
- Y = 219,0 · Y + 16,5
- Cr = 224,0 · Cr + 128,5
- Cb = 224,0 · Cb + 128,5
- Der Unterabtastabschnitt 3102 führt eine Unterabtastung der durch die vorstehend erwähnten Gleichungen erhaltenen Cr- und Cb-Daten durch. Als Unterabtastverfahren sind ein einfaches Ausdünnungsverfahren, ein MAX-Datenauswahlverfahren, ein MIN- Datenauswahlverfahren und der gleichen bekannt. In diesem Fall wird ein Mittelwertverfahren verwendet. Im Einzelnen wird bei dem Mittelwertverfahren ein Mittelwert zweier benachbarter Pixeldaten als ein Datum verwendet.
- Fig. 17 zeigt die Verarbeitungsergebnisse der in Fig. 16 gezeigten Bilddaten durch den Farbumwandlungsabschnitt 3101 und den Unterabtastabschnitt 3102. Bezug nehmend auf Fig. 17 bezeichnet ein Bezugszeichen 3401 Y-Daten; bezeichnet 3402 Cr- Daten; und bezeichnet 3403 Cb-Daten. Die Datenmengen der Cr- und der Cb-Daten werden durch die Unterabtastverarbeitung auf 1/2 reduziert.
- Die in Fig. 17 gezeigten Y-, Cr- und Cb-Daten werden dem DCT- Abschnitt 3103 zugeführt. Der DCT-Abschnitt 3103 teilt die zugeführten Daten in 8 · 8 Datenblöcke, die eine Matrix in der horizontalen und der vertikalen Richtung bilden. Infolge der Blockunterteilung werden die Y-Daten 3401 in vier Blöcke 3401a bis 3401d unterteilt, wie in Fig. 17 gezeigt. Auf vergleichbare Art und Weise werden die Cr-Daten 3402 in zwei Blöcke 3402a und 3402b unterteilt, und werden die Cb-Daten 3403 in zwei Blöcke 3403a und 3403b unterteilt. Darauffolgend führt der DCT-Abschnitt 3103 die DCT für diese acht Blöcke aus.
- Fig. 18 zeigt das DCT-Ergebnis der in Fig. 17 gezeigten acht Blöcke.
- Bezug nehmend auf Fig. 18 bezeichnet ein Bezugszeichen 3501 DCT-Koeffizienten der Y-Daten. Die Blöcke 3501a bis 3501d entsprechen jeweils den in Fig. 17 gezeigten Blöcken 3401a bis 3401d. Auf vergleichbare Art und bezeichnet ein Bezugszeichen 3502 DCT-Koeffizienten der Cr-Daten; und bezeichnet 3503 DCT-Koeffizienten der Cb-Daten. Es wird angemerkt, dass jeder Block nach der DCT aus einer Gleichsignalkomponente an der oberen linken Ecke und verbleibenden 63 Wechselsignalkomponenten besteht.
- Die in Fig. 18 gezeigten DCT-Koeffizientendaten 3501 bis 3503 werden durch den Quantisierungsabschnitt 3104 quantisiert. In diesem Fall wird die Quantisierung auf der Grundlage von durch die JPEG empfohlenen Quantisierungstabellen durchgeführt.
- Fig. 19 zeigt Quantisierungstabellen, die bei der Quantisierung verwendet werden. Bezug nehmend auf Fig. 19 bezeichnet ein Bezugszeichen 4001 eine Quantisierungstabelle für Y- Komponenten; und bezeichnet 4002 eine Quantisierungstabelle für Cr- und Cb-Komponenten.
- Fig. 20 zeigt das Quantisierungsergebnis der in Fig. 18 gezeigten DCT-Koeffizientendaten unter Verwendung der in Fig. 19 gezeigten Quantisierungstabellen. Bezug nehmend auf Fig. 20 bezeichnet ein Bezugszeichen 3601 die quantisierten Daten der Y-Komponenten; bezeichnet 3602 die quantisierten Daten der Cr-Komponenten; und bezeichnet 3603 die quantisierten Daten der Cb-Komponenten.
- Der Kodierabschnitt 3105 klassifiziert die in Fig. 20 gezeigten quantisierten Daten 3601 bis 3603 in Gleichsignal- und Wechselsignalkomponenten. Was die Gleichsignalkomponenten anbelangt, bildet der Abschnitt 3105 eine optimale Huffman- Kodiertabelle auf der Grundlage eines Histogramms eines Unterschiedes gegenüber einer Gleichsignalkomponente des vorangehenden Blockes und führt die Kodierung gemäß der Tabelle durch. Was die Wechselsignalkomponenten anbelangt, sortiert der Abschnitt 3105 die Wechselsignalkomponenten in einer in Fig. 21 gezeigten Zickzackreihenfolge, bildet eine optimale Huffman-Kodiertabelle auf der Grundlage eines Histogramms einer Kombination einer Lauflänge von Koeffizienten 0 (die Anzahl von Koeffizienten 0, bis ein von 0 verschiedener Koeffizient x erscheint) und dem Wert x, und führt die Kodierung gemäß der Tabelle durch.
- Da jeder Pixel einen Bereich von 8 Bit hat, werden ursprüngliche 16 · 16-Pixeldaten in dem NTSC-RGB-Farbraum, die eine Datenmenge von 6144 Bit ( = 16 · 16 · drei Farben · 8 Bit) haben, auf 795 Bit komprimiert, wenn die Daten von dem Kodierabschnitt 3105 ausgegeben werden. Daher werden Bilddaten auf etwa 1/7,7 (6144/795 = 7,7) komprimiert. In der Praxis jedoch ist, da Bildgrößendaten, Quantisierungstabellendaten, Kodiertabellendaten und der gleichen zu den durch den Kodierabschnitt 3105 kodierten Daten hinzugefügt werden, das Kompressionsverhältnis geringfügig niedriger.
- Nachstehend wird der Verarbeitungsablauf der ADCT-Datenexpansionsvorrichtung beschrieben.
- Der Huffman-Dekodierabschnitt 3205 dekodiert zugeführte kodierte Daten.
- Der inverse Quantisierungsabschnitt 3204 multipliziert die quantisierten Daten, die von dem Huffman-Dekodierabschnitt 3205 ausgegeben wurden, mit den Koeffizienten der in Fig. 19 gezeigten Quantisierungstabellen, wodurch die inverse Quantisierung ausgeführt wird.
- Mit der vorstehend erwähnten Verarbeitung werden die in Fig. 22 gezeigten Daten erhalten. Fig. 22 zeigt das Ergebnis der Huffman-Dekodierung und der inversen Quantisierung der ADCTkomprimierten Bilddaten. Ein Bezugszeichen 3701 bezeichnet Y- Komponenten; 3702 bezeichnet Cr-Komponenten; und 3703 bezeichnet Cb-Komponenten.
- Wie einem Vergleich zwischen den in Fig. 22 gezeigten invers quantisierten Daten (DCT-Koeffizientendaten) und den in Fig. 18 gezeigten DCT-Koeffizientendaten vor der Quantisierung entnommen werden kann, unterscheiden sich diese beiden Daten anscheinend von einander.
- Darauffolgend führt der inverse DCT-Abschnitt 3203 die inverse DCT der DCT-Koeffizientendaten, die von dem inversen Quantisierungsabschnitt 3204 ausgegeben wurden, durch, um diese wieder in Y-, Cr- und Cb-Daten zu konvertieren. Fig. 23 zeigt das Ergebnis der inversen DCT der in Fig. 22 gezeigten DCT- Koeffizientendaten durch den inversen DCT-Abschnitt 3203. Ein Bezugszeichen 3801 bezeichnet Y-Daten; 3802 bezeichnet Cr-Da- Daten; und 3803 bezeichnet Cb-Daten.
- Der Interpolationsabschnitt 3202 interpoliert Daten, die in den von dem inversen DCT-Abschnitt 3203 ausgegebenen Bilddaten weggelassen sind, und der Farbumwandlungsabschnitt 3201 konvertiert die von dem Interpolationsabschnitt 3202 ausgegebenen YCrCb-Farbraumdaten in NTSC-RGB-Farbraumdaten.
- Fig. 24 zeigt Daten, die schliesslich durch die ADCT-Datenexpansionsvorrichtung erhalten werden. Ein Bezugszeichen 3901 bezeichnet R-Daten; 3902 bezeichnet G-Daten; und 3903 bezeichnet B-Daten.
- Die vorstehend erwähnte Technik leidet jedoch unter den folgenden Problemen.
- Im Einzelnen ist das ADCT-Bildkompressionsverfahren ein irreversibles bzw. nicht umkehrbares Kompressionsverfahren, welches Daten bei der Unterabtastung und Quantisierung verliert. Daher unterscheiden sich, wie einem Vergleich zwischen NTSC- RGB-Farbraumdaten (Fig. 16) vor der Kompression und NTSC-RGB- Farbraumdaten (Fig. 24) als Ergebnis der Kompression und Expansion der Daten von Fig. 16 entnommen werden kann, durch das ADCT-Bildkompressionsverfahren expandierte Daten von Daten vor der Kompression. Mit anderen Worten ausgedrückt verschlechtert sich die Bildqualität.
- Die Vorteile eines auf einem Computer erzeugten Bildes (computer erzeugtes Bild) sind ein glatter Umriss, rauschfreie Farbgebung basierend auf einer einzelnen Farbe pro Figur (oder Zeichen) und der gleichen. Wenn jedoch Bilddaten durch das ADCT-Bildkompressionsverfahren komprimiert und expandiert werden, treten ein nicht glatter Umriss einer Figur, ein Moskitorauschen genannter Pseudorand, Einfärbungen aufgrund der Quantisierung und der gleichen auf, so dass die Vorteile des computer erzeugten Bildes nicht vollständig dargestellt werden können. Speziell tritt, da das vorstehend erwähnte Kompressionsverfahren eine 8 · 8-Blockverarbeitung durchführt, eine beträchtliche Farbänderung an den Grenzbereichen der Blöcke auf.
- Wenn in dem ADCT-Bildkompressionsverfahren das Kompressionsverhältnis erhöht werden soll, gehen die Wechselsignalkomponenten der DCT-Koeffizienten schliesslich verloren, und wird eine Blockstörung bzw. -verzerrung erzeugt. In dem extremen Fall kann sich die Auflösung auf z. B. 1/8 verschlechtern.
- Aus diesem Grund kann die Kompression durchgeführt werden, während die Quantisierung unterdrückt wird, um keine auffallende Verschlechterung der Bildqualität zu verursachen. Eine solche Technik ist jedoch in Hinsicht auf das Kompressionsverhältnis nicht praktikabel, da ein computer erzeugtes Bild ursprünglich durch viele hoch frequente Daten charakterisiert ist. Daher muss ein computer erzeugtes Bild, wie beispielsweise ein durch DTP erzeugtes Bild, durch ein reversibles bzw. umkehrbares Verfahren komprimiert werden, das in der Lage ist, ein hohes Kompressionsverhältnis zu erzielen.
- Als ein Kompressionsverfahren für ein durch einen Computer erzeugtes Farb-Multiwert-Bild sind die in Fig. 25 und 26 gezeigten Verfahren bekannt.
- In dem in Fig. 25 gezeigten Kompressionsverfahren identifiziert eine Lauflängenidentifikationsschaltung 4012 die Lauflänge von Pixeldaten mit der selben Farbe, und kodiert und überträgt ein Kodierabschnitt 4013 die Lauflänge der Farbe und Pixeldaten zu dieser Zeit. Das heisst, das Konzept eines so genannten MH-Kodierverfahrens wird auf die Farbbildkodierung erstreckt.
- In dem in Fig. 26 gezeigten Kompressionsverfahren ist ein Zeilenspeicher 4102 zum Speichern von Daten einer vorangehenden Zeile angeordnet, eine Lauflängenidentifikationsschaltung 4103 identifiziert die Lauflänge von Pixeldaten mit der selben Farbe, und ein Kodierabschnitt 4104 kodiert und überträgt die Lauflänge der Farbe und Pixeldaten zu dieser Zeit unter Bezugnahme auf vorangehende Zeileninformationen. Das heisst, das Konzept eines so genannten MR-Kodierverfahrens wird auf die Farbbildkodierung erstreckt.
- Jedes der vorstehend erwähnten Verfahren kann ein sehr hohes Kompressionsverhältnis erzielen, wenn Pixeldaten mit demselben Wert kontinuierlich für eine lange Zeitdauer erscheinen. Diese Verfahren sind jedoch für ein feine Muster beinhaltendes Bild, wie beispielsweise ein DTP-Bild, nicht geeignet. Auch ist, da der Kodierabschnitt häufig die Huffman-Kodierung und der gleichen verwendet, die Schaltung kompliziert. Darüber hinaus kann, da die Lauflängenidentifikationsschaltung erforderlich ist, die Kodierung nicht begonnen werden, bis die Lauflänge endet, wodurch die Echtzeitverarbeitung gestört wird.
- Ferner zielt das in Fig. 26 gezeigte Kompressionsverfahren durch Nutzen einer zwei dimensionalen Korrelation eines Bildes auf ein höheres Kompressionsverhältnis als das in Fig. 25 gezeigte Kompressionsverhältnis. Jedoch muss das in Fig. 26 gezeigte Verfahren einen Pixeldatenspeicher für zumindest eine Zeile haben.
- In einem Verfahren zum Komprimieren von Bilddaten durch ein umkehrbares Kompressionsverfahren, wie beispielsweise der Huffman-Kodierung, ändert sich die Datenmenge nach der Kompression. Insbesondere dann, wenn ein Gradationsbild oder ein durch einen Scanner gelesenes natürliches Bild umkehrbar komprimiert wird, können die komprimierten Daten häufig eine äusserst grosse Datenmenge haben. Aus diesem Grund muss ein Bildspeicher grosser Kapazität für den schlechtesten zu erwartenden Fall bereitgestellt werden.
- Aus der JP-A-62075773 ist es bekannt, eine Vorrichtung bereitzustellen, die gemäß einer Vorgabe durch einen Benutzer entweder eine umkehrbare oder eine nicht umkehrbare Kompression auf Bilddaten der jenigen Bereiche des Bilds durchführt, die von Interesse sind.
- Die Druckschriften US-A-4,394,774 und EP-A-0487282 offenbaren Verfahren einer nicht umkehrbaren Kompression von Bilddaten, die das Ausmass nicht umkehrbarer Kompression in Übereinstimmung mit der verarbeiteten Datenmenge anpassen.
- Die Erfindung erfolgte in Anbetracht der Probleme der vorstehend erwähnten Verfahren und hat zum Ziel, ein verbessertes Bildverarbeitungsverfahren und eine verbesserte Bildverarbeitungsvorrichtung bereitzustellen.
- Erfindungsgemäß wird eine Bildverarbeitungsvorrichtung offenbart, umfassend:
- eine Eingabeeinrichtung zum Eingeben von Daten einschliesslich Bilddaten;
- eine Kodiereinrichtung zum Kodieren und Komprimieren von durch die Eingabeeinrichtung eingegebenen Bilddaten, die selektiv in einer ersten Betriebsart zum reversiblen Komprimieren der Bilddaten und in einer zweiten Betriebsart zum irreversiblen Komprimieren der Bilddaten betreibbar ist; und
- eine Auswahleinrichtung zum Auswählen der ersten oder der zweiten Betriebsart,
- dadurch gekennzeichnet, dass die Auswahl durch die Auswahleinrichtung in Übereinstimmung mit einem Ergebnis des Vergleichens einer Menge D durchgeführt wird, die durch reversibles Komprimieren von Bilddaten mit einem Grenzwert L erhältlich ist.
- Gemäß einem weiteren Aspekt der Erfindung wird ein Bildverarbeitungsverfahren offenbart, umfassend die Schritte des:
- Eingebens von Daten einschliesslich Bilddaten;
- Kodierens und Komprimierens von in dem Eingabeschritt eingegebenen Bilddaten durch Betrieb einer Kodiereinrichtung, die selektiv in einer ersten Betriebsart zum reversiblen Komprimieren der Bilddaten und in einer zweiten Betriebsart zum irreversiblen Komprimieren der Bilddaten betreibbar ist; und
- Auswählens der ersten oder der zweiten Betriebsart, dadurch gekennzeichnet, dass die Auswahl in dem Auswahlschritt durch Vergleichen einer Menge D durchgeführt wird, die durch reversibles Komprimieren von Bilddaten mit einem Grenzwert L erhältlich ist.
- Gemäß einem weiteren Aspekt der Erfindung wird eine Bildverarbeitungsvorrichtung offenbart, umfassend:
- eine Eingabeeinrichtung zum Eingeben von Daten einschliesslich Bilddaten;
- eine Kodiereinrichtung zum Kodieren und Komprimieren von durch die Eingabeeinrichtung eingegebenen Bilddaten, die selektiv in einer ersten Betriebsart zum reversiblen Komprimieren der Bilddaten und in einer zweiten Betriebsart zum irreversiblen Komprimieren der Bilddaten betreibbar ist; und
- eine Auswahleinrichtung zum Auswählen der ersten oder der zweiten Betriebsart,
- dadurch gekennzeichnet, dass die Auswahl durch die Auswahleinrichtung in Übereinstimmung mit einem Ergebnis einer Unterscheidung, ob das Bild ein natürliches Bild oder ein anderes Bild als ein natürliches Bild repräsentiert, und, wenn zumindest ein Teil der Bilddaten andere Bilddaten als natürliche Bilddaten repräsentieren, auch mit einem Ergebnis des Vergleichens der Kodemenge D, die durch reversibles Komprimieren des zumindest Teils der Bilddaten mit einem Grenzwert L erhältlich ist, durchgeführt wird.
- Gemäß einem weiteren Aspekt der Erfindung wird ein Bildverarbeitungsverfahren offenbart, umfassend die Schritte des: Eingebens von Daten einschliesslich Bilddaten;
- Kodierens und Komprimierens von in dem Eingabeschritt eingegebenen Bilddaten durch Betrieb einer Kodiereinrichtung, die selektiv in einer ersten Betriebsart zum reversiblen Komprimieren der Bilddaten und in einer zweiten Betriebsart zum irreversiblen Komprimieren der Bilddaten betreibbar ist; und
- Auswählens der ersten oder der zweiten Betriebsart,
- dadurch gekennzeichnet, dass die Auswahl in dem Auswahlschritt in Übereinstimmung mit einem Ergebnis einer Unterscheidung, ob das Bild ein natürliches Bild oder ein anderes Bild als ein natürliches Bild repräsentiert, und, wenn zumindest ein Teil der Bilddaten andere Bilddaten als natürliche Bilddaten repräsentieren, auch mit einem Ergebnis des Vergleichens der Kodemenge D, die durch reversibles Komprimieren des zumindest Teils der Bilddaten mit einem Grenzwert L erhältlich ist, durchgeführt wird.
- In einer beschriebenen Ausführungsform wird eine Bildverarbeitungsvorrichtung zur Verarbeitung von Bilddaten in Einheiten von Blöcken, von denen jeder aus einer Vielzahl von Pixeln besteht, umfassend:
- eine reversibel komprimierende Einrichtung zum reversiblen Komprimieren eines Block, der D ≤ L (D ist die komprimierte Datenmenge, die erhalten wird, wenn der Block reversible komprimiert wird, und L ist der Grenzwert) erfüllt; und
- eine irreversibel komprimierende Einrichtung zum irreversiblen Komprimieren eines Blocks, der D > L erfüllt.
- Bevorzugt umfasst die reversibel komprimierende Einrichtung: eine Sortiereinrichtung zum ein dimensionalen Sortieren von Pixeldaten des Blocks;
- eine Zwischenspeichereinrichtung zum Zwischenspeichern der von der Sortiereinrichtung ausgegebenen Pixeldaten;
- eine erste Vergleichseinrichtung zum Vergleichen von ersten, durch die Zwischenspeichereinrichtung zwischengespeicherten Pixeldaten mit zweiten, von der Sortiereinrichtung nach den ersten Pixeldaten ausgegebenen Pixeldaten, und Ausgeben eines ersten Vergleichsergebnisses;
- eine zweite Vergleichseinrichtung zum Vergleichen von vorab in zumindest einer Halteeinrichtung gehaltenen Pixeldaten mit den zweiten Pixeldaten, und Ausgeben zumindest eines Vergleichsergebnisses;
- eine Aktualisierungseinrichtung zum dann, wenn das erste Vergleichsergebnis eine Nichtübereinstimmung anzeigt und das zweite Vergleichsergebnis eine Übereinstimmung anzeigt, Aktualisieren von Pixeldaten in der Halteeinrichtung, welche die mit den zweiten Pixeldaten übereinstimmenden Pixeldaten hält, auf die durch die Zwischenspeichereinrichtung zwischengespeicherten Pixeldaten, und zum dann, wenn sowohl das erste als auch das zweite Vergleichsergebnis eine Nichtübereinstimmung anzeigen, Aktualisieren von Pixeldaten in der Halteeinrichtung, welche die ältesten Pixeldaten hält, auf die durch die Zwischenspeichereinrichtung zwischengespeicherten Pixeldaten; und
- eine Ausgabeeinrichtung zum dann, wenn das erste Vergleichsergebnis eine Übereinstimmung anzeigt, Ausgeben des ersten Vergleichsergebnisses, zum dann, wenn das erste Vergleichsergebnis eine Nichtübereinstimmung anzeigt und das zweite Vergleichsergebnis eine Übereinstimmung anzeigt, Ausgeben des ersten Vergleichsergebnisses und des zweiten Vergleichsergebnisses in einer vorbestimmten Reihenfolge, und zum dann, wenn sowohl das erste als auch das zweite Vergleichsergebnis eine Nichtübereinstimmung anzeigen, Ausgeben des ersten Vergleichsergebnisses, des zweiten Vergleichsergebnisses und der zweiten Pixeldaten in einer vorbestimmten Reihenfolge.
- Stärker bevorzugt umfasst die reversibel komprimierende Einrichtung:
- eine Berechnungseinrichtung zum Berechnen der komprimierten Datenmenge D auf der Grundlage des ersten und des zweiten Vergleichsergebnisses;
- eine Unterscheidungseinrichtung zum Unterscheiden einer Beziehung zwischen der durch die Berechnungseinrichtung erhaltenen komprimierten Datenmenge D und dem Grenzwert L; und eine Wiederherstelleinrichtung zum dann, wenn ein Unterscheidungsergebnis der Unterscheidungseinrichtung D > L anzeigt, Wiederherstellen der durch die Zwischenspeichereinrichtung zwischengespeicherten Pixeldaten und in der Halteeinrichtung gehaltenen Pixeldaten auf Werte vor dem Beginn der Verarbeitung eines gegenwärtigen Blocks.
- Darüber hinaus wird ein Bildverarbeitungsverfahren offenbart zum Expandieren komprimierter Daten, die durch Komprimieren von Bilddaten in Einheiten von Blöcken, von denen jeder aus einer Vielzahl von Pixeln besteht, erhalten werden, umfassend die Schritte des:
- Expandierens der komprimierten Daten durch Auswählen der reversiblen Expansionsverarbeitung oder der irreversiblen Expansionsverarbeitung auf der Grundlage von Informationen, die ein Kompressionsverfahren der komprimierten Daten anzeigen; und
- Reproduzierens ursprünglicher Bilddaten durch Zusammenfügen von durch die reversible Expansionsverarbeitung expandierten Bilddaten und durch die irreversible Expansionsverarbeitung expandierten Bilddaten.
- Bevorzugt beinhaltet die reversible Expansionsverarbeitung: den ersten Eingabeschritt des Eingebens eines ersten Bit entsprechend einem Pixel der komprimierten Daten;
- den zweiten Eingabeschritt des Eingebens von Kompressionsinformationen, die aus zumindest 1 Bit eines zweiten Bit und den folgenden Bit entsprechend dem Pixel bestehen, wenn das erste Bit '1 ist;
- den Austauschschritt des Austauschens von Pixeldaten, die durch eine Zwischenspeichereinrichtung zwischengespeichert wurden, durch Pixeldaten, die in zumindest einer Halteeinrichtung gehalten werden, entsprechend zu einem Wert, wenn die Kompressionsinformationen den vorbestimmten Wert haben;
- den Aktualisierungsschritt des Aktualisierens der Pixeldaten, die durch die Halteeinrichtung gehalten werden, auf die durch die Zwischenspeichereinrichtung zwischengespeicherten Pixeldaten, und danach Aktualisierens der Pixeldaten, die durch die Zwischenspeichereinrichtung zwischen zu speichern sind, auf Pixeldaten folgend den Kompressionsinformationen, wenn sich die Kompressionsinformationen von dem vorbestimmten Wert unterscheiden; und den Ausgabeschritt des Ausgebens von durch die Zwischenspeichereinrichtung zwischengespeicherten Pixeldaten.
- Darüber hinaus wird ein Bildverarbeitungsverfahren zum reversiblen Komprimieren von Bilddaten bereitgestellt, umfassend:
- den Zwischenspeicherschritt des Zwischenspeicherns von eingegebenen Pixeldaten;
- den ersten Vergleichsschritt des Vergleichens von ersten Pixeldaten, die in dem Zwischenspeicherschritt zwischengespeichert wurden, mit zweiten Pixeldaten, die nach den ersten Pixeldaten eingegeben wurden, und Ausgebens eines ersten Vergleichsergebnisses;
- den zweiten Vergleichsschritt des Vergleichens zumindest zweier unterschiedlicher erster und zweiter Haltedaten, die vorab gehalten wurden, mit den zweiten Pixeldaten, und Ausgebens ein zweites Vergleichsergebnisses;
- den Aktualisierungsschritt des Aktualisierens der ersten Haltedaten auf die ersten Pixeldaten, wenn das zweite Vergleichsergebnis eine Übereinstimmung zwischen den ersten Haltedaten und den zweiten Pixeldaten anzeigt, und Aktualisierens der zweiten Haltedaten auf die ersten Haltedaten, und danach Aktualisierens der ersten Haltedaten auf die ersten Pixeldaten, wenn das zweite Vergleichsergebnis eine Übereinstimmung zwischen den zweiten Haltedaten und den zweiten Pixeldaten anzeigt, oder wenn sowohl das erste als auch das zweite Vergleichsergebnis einen Nichtübereinstimmung anzeigen; und
- den Ausgabeschritt des Ausgebens eines ersten Kodes, wenn das erste Vergleichsergebnis eine Übereinstimmung anzeigt, Ausgebens eines zweiten Kodes, wenn das zweite Vergleichsergebnis eine Übereinstimmung zwischen den ersten Haltedaten und den zweiten Pixeldaten anzeigt, Ausgebens eines dritten Kodes, wenn das zweite Vergleichsergebnis eine Übereinstimmung zwischen den zweiten Haltedaten und den zweiten Pixeldaten anzeigt, und Ausgebens eines vierter Kodes und der zweiten Pixeldaten in einer vorbestimmten Reihenfolge, wenn beide Vergleichsergebnisse eine Nichtübereinstimmung anzeigen.
- Darüber hinaus wird eine Bildverarbeitungsvorrichtung zum Reproduzieren von Bilddaten durch Expandieren reversibel komprimierter Daten bereitgestellt, umfassend:
- eine Halteeinrichtung zum vorab erfolgenden Halten zumindest dreier unterschiedlicher Pixeldaten;
- eine Speichereinrichtung zum Speichern einer Vorrangreihenfolge der durch die Halteeinrichtung gehaltenen Pixeldaten;
- eine Ausgabeeinrichtung zum Ausgeben der in der Halteeinrichtung gespeicherten Pixeldaten oder der in den reversibel komprimierten Daten enthaltenen Pixeldaten in Übereinstimmung mit der Vorrangreihenfolge und den 3 Bit-Daten von ersten bis dritten Bit der zugeführten, reversibel komprimierten Daten; und
- eine Aktualisierungseinrichtung zum Aktualisieren der durch die Halteeinrichtung gehaltenen Pixeldaten und der Vorrangreihenfolge in Übereinstimmung mit der Vorrangreihenfolge und den 3 Bit-Daten.
- Darüber hinaus wird eine Bildverarbeitungseinrichtung bereitgestellt zum Verarbeiten von Bilddaten einschliesslich Pixelartinformationen in Einheiten von Blöcken, von denen jeder aus m · n Pixeln besteht, umfassend:
- eine Analyseeinrichtung zum Ausgeben erster Blockinformationen in Übereinstimmung mit ersten Pixelartinformationen und zweiter Blockinformationen in Übereinstimmung mit zweiten Pixelartinformationen in Einheiten von Blöcken;
- eine Ersetzungseinrichtung zum Ersetzen eines Pixels mit den ersten Pixelartinformationen durch erste Pixeldaten und Ersetzen eines Pixels mit den zweiten Pixelartinformationen und dem selben Wert wie die ersten Pixeldaten durch zweite Pixeldaten;
- eine reversibel komprimierende Einrichtung zum reversiblen Komprimieren der durch die Ersetzungseinrichtung ersetzten Pixeldaten in Übereinstimmung mit den ersten Blockinformationen und den zweiten Blockinformationen und Ausgeben reversibel komprimierter Daten und eines Bereichunterscheidungsergebnisses;
- eine Interpolationseinrichtung zum Interpolieren von Pixeln in Übereinstimmung mit den Pixelartinformationen und dem Bereichunterscheidungsergebnis in Pixeldaten in Übereinstimmung mit anderen Pixeln in einem Block;
- eine irreversibel komprimierende Einrichtung zum irreversiblen Komprimieren des durch die Interpolationseinrichtung interpolierten Blocks in Übereinstimmung mit den ersten Blockinformationen und dem Bereichunterscheidungsergebnis;
- eine Blockinformationsausgabeeinrichtung zum Ausgeben dritter Blockinformationen in Übereinstimmung mit den zweiten Blockinformationen und dem Bereichunterscheidungsergebnis;
- und eine Halteeinrichtung zum Halten der von der reversibel komprimierenden Einrichtung ausgegebenen reversibel komprimierten Daten und Ausgeben die reversibel komprimierten Daten in Übereinstimmung mit den dritten Blockinformationen.
- Bevorzugt zeigen die ersten Pixelartinformationen einen Pixel eines natürlichen Bildes an, und zeigen die zweiten Pixelartinformationen einen anderen als einen Pixel eines natürlichen Bildes an.
- Stärker bevorzugt berechnet dann, wenn die ersten Blockinformationen und die zweiten Blockinformationen einen Block anzeigen, der nur aus anderen als Pixeln eines natürlichen Bildes besteht, die reversibel komprimierende Einrichtung eine bei der reversiblen Kompression des Blocks zu erhaltende komprimierte Datenmenge D, und gibt ein Bereichunterscheidungsergebnis aus, das einen ersten Bereich und reversibel komprimierte Daten anzeigt, falls D ≤ L (Grenzwert), oder gibt nur ein Bereichunterscheidungsergebnis aus, das einen zweiten Bereich anzeigt, falls D = m · n oder D > L; wenn die ersten Blockinformationen und die zweiten Blockinformationen einen Block einschliesslich sowohl Pixel eines natürlichen Bildes als auch anderer Pixel als solchen des natürlichen Bildes anzeigen, berechnet die reversibel komprimierende Einrichtung die bei der reversiblen Kompression des Blocks zu erhaltende komprimierte Datenmenge D und gibt ein Bereichunterscheidungsergebnis aus, das den ersten Bereich und reversibel komprimierte Daten anzeigt, wenn D ≤ L, oder gibt nur ein Bereichunterscheidungsergebnis aus, das den zweiten Bereich anzeigt, wenn D > L; und wenn die ersten Blockinformationen und die zweiten Blockinformationen einen Block anzeigen, der aus nur Pixeln eines natürlichen Bildes besteht, gibt die reversibel komprimierende Einrichtung nur ein Bereichunterscheidungsergebnis aus, das den zweiten Bereich anzeigt.
- Darüber hinaus wird eine Bildverarbeitungsvorrichtung bereitgestellt zum Expandieren von durch Komprimieren von Bilddaten in Einheiten von Blöcken, von denen jeder aus m · n Pixeln besteht, erhaltenen komprimierten Daten, umfassend:
- eine irreversibel expandierende Einrichtung zum irreversiblen Expandieren der komprimierten Daten;
- eine reversibel expandierende Einrichtung zum reversiblen Expandieren der komprimierten Daten und Ausgeben von Pixeldaten und Pixelartinformationen;
- und eine Auswahleinrichtung zum Auswählen der Ausgabe der reversibel expandierenden Einrichtung oder der Ausgabe der irreversibel expandierenden Einrichtung in Übereinstimmung mit ein Kompressionsverfahren anzeigenden Verfahrensinformationen in Einheiten von Blöcken und der Pixelartinformationen, wobei ursprüngliche Bilddaten durch Zusammenfügen der durch die reversibel expandierende Einrichtung expandierten Pixeldaten und der durch die irreversibel expandierende Einrichtung expandierten Bilddaten reproduziert werden.
- Bevorzugt umfasst die reversibel expandierende Einrichtung: eine Zwischenspeichereinheit zum Zwischenspeichern vorbestimmter Pixeldaten;
- eine Halteeinheit zum vorab erfolgenden Halten zumindest dreier unterschiedlicher Haltedaten;
- eine Speichereinheit zum Speichern von Aktualisierungsinformationen der durch die Halteeinheit gehaltenen Haltedaten;
- eine Aktualisierungseinheit zum dann, wenn 1 Bit-Daten eines ersten Bit der komprimierten Daten '1' sind und 2 Bit- Daten zweiter und dritter Bit von '11' verschieden sind, Austauschen der durch die Zwischenspeichereinheit zwischengespeicherten Pixeldaten durch Haltedaten entsprechend den 2 Bit-Daten, und zum dann, wenn die 1 Bit-Daten '1' sind und die 2 Bit-Daten '11' sind, Aktualisieren von durch die Aktualisierungsinformationen angezeigten Haltedaten auf die durch die Zwischenspeichereinheit zwischengespeicherten Pixeldaten, und danach Aktualisieren der durch die Zwischenspeichereinheit zwischengespeicherten Pixeldaten auf Pixeldaten eines vierten Bit und die folgenden Bit der komprimierten Daten; und
- eine Ausgabeeinheit zum Ausgeben von Bereichinformationen in Übereinstimmung mit 3 Bit-Daten der ersten bis dritten Bit der komprimierten Daten und Ausgeben der durch die Zwischenspeichereinheit zwischengespeicherten Pixeldaten.
- Mit der vorstehenden Anordnung können ein Bildverarbeitungsverfahren und eine Bildverarbeitungsvorrichtung bereitgestellt werden, bei denen dann, wenn die komprimierte Datenmenge D, die erhalten wird, wenn ein Block reversibel komprimiert wird, und der Grenzwert L D ≤ L erfüllen, der Block reversibel komprimiert wird; wenn sie D > L erfüllen, wird der Block irreversibel komprimiert, und werden ursprüngliche Bilddaten durch Auswählen eines Ergebnisses, das durch Expandieren komprimierter Daten als reversibel komprimierte Daten erhalten wird, oder eines Ergebnisses, das durch Expandieren der komprimierten Daten als irreversibel komprimierte Daten erhalten wird, reproduziert. Zum Beispiel werden computer erzeugte Bilddaten so stark wie möglich reversibel komprimiert, um eine Verschlechterung der Bildqualität zu verhindern. Andererseits werden Bilddaten, wie beispielsweise ein Gradationsbild, ein natürliches Bild und der gleichen, für die ein ausreichendes Kompressionsverhältnis durch reversible Kompression nicht erwartet werden kann, effizient durch irreversible Kompression komprimiert, wodurch ein Knappwerden eines Speichers verhindert wird.
- Im Einzelnen sind die meisten von natürlichen Bildern einschliesslich verschiedener Bilddaten, für die ein hohes Kompressionsverhältnis durch das reversible Kompressionsverfahren nicht erwartet werden kann, so dass daher eine Bereichtrennung zwischen einem computer erzeugten Bild und einem natürlichen Bild mit einer sehr hohen Wahrscheinlichkeit durch Unterscheiden der Beziehung zwischen der komprimierten Datenmenge D und dem Grenzwert L erreicht werden kann. Auch dann, wenn Daten eines natürlichen Bildes durch die ADCT-Kompression variiert werden, können menschliche Augen häufig keine Verschlechterung der Bildqualität eines solchen natürlichen Bildes wahrnehmen. Folglich kann die Erfindung eine Kompression mit hoher Bildqualität und einem konstanten Kompressionsverhältnis realisieren.
- Andere Merkmale und Vorteile der Erfindung sind der folgenden Beschreibung in Verbindung mit den beigefügten Zeichnungen, in denen gleiche Bezugszeichen durch die Figuren derselben hindurch die selben oder vergleichbare Teile bezeichnen, entnehmbar.
- Fig. 1 ist ein Blockdiagramm, das eine Anordnung einer Bildkompressionsvorrichtung gemäß dem ersten Ausführungsbeispiel der Erfindung zeigt;
- Fig. 2 ist ein Blockdiagramm, das eine Anordnung eines in Fig. 1 gezeigten reversiblen Kompressionsabschnittes zeigt;
- Fig. 3 ist ein Blockdiagramm, das eine Anordnung einer in Fig. 2 gezeigten Bereichunterscheidungseinheit zeigt;
- Fig. 4 ist ein Blockdiagramm, das einen in Fig. 1 gezeigten ADCT-Kompressionsabschnitt zeigt;
- Fig. 5 ist ein Blockdiagramm, das eine weitere Anordnung des in Fig. 1 gezeigten reversiblen Kompressionsabschnittes zeigt;
- Fig. 6 ist ein Ablaufdiagramm, das eine reversible Kompressionssequenz gemäß dem zweiten Ausführungsbeispiel der Erfindung zeigt;
- Fig. 7 ist ein Ablaufdiagramm, das eine Seguenz einer in Fig. 6 gezeigten reversiblen Kompressionsverarbeitung zeigt;
- Fig. 8 ist ein Ablaufdiagramm, das eine Sequenz einer in Fig. 7 gezeigten Verarbeitung eines Bereichs 2 zeigt;
- Fig. 9 ist eine Ansicht, die eine Verarbeitungsreihenfolge von Pixeln des zweiten Ausführungsbeispiels zeigt;
- Fig. 10 ist ein Blockdiagramm, das eine Anordnung einer Datenexpansionsvorrichtung gemäß dem dritten Ausführungsbeispiel der Erfindung zeigt;
- Fig. 11 ist ein Ablaufdiagramm, das eine Verarbeitungssequenz zum Realisieren eines in Fig. 10 gezeigten Expansionsabschnitts für reversibel komprimierte Daten durch Software zeigt;
- Fig. 12 ist ein Ablaufdiagramm, das eine Sequenz einer in Fig. 11 gezeigten reversiblen Expansionsverarbeitung zeigt;
- Fig. 13A und 13B sind Tabellen zum Erklären eines Unterschiedes zwischen einem Flagsystem und einem Triggersystem;
- Fig. 14 ist ein Blockdiagramm, das eine Anordnung einer ADCT- Bildkompressionsvorrichtung zeigt;
- Fig. 15 ist ein Blockdiagramm, das eine Anordnung einer ADCT- Datenexpansionsvorrichtung zeigt;
- Fig. 16 ist eine Ansicht, die einen Abschnitt von Bilddaten eines durch einen Computer erzeugten Farb-Multiwert-Bildes zeigt;
- Fig. 17 ist eine Ansicht, die ein Ergebnis der Verarbeitung der in Fig. 16 gezeigten Bilddaten durch die in Fig. 14 gezeigte den Vorrichtung zeigt;
- Fig. 18 ist eine Ansicht, die ein DCT-transformiertes Ergebnis von acht in Fig. 17 gezeigten Blöcken zeigt;
- Fig. 19 zeigt Quantisierungstabellen;
- Fig. 20 ist eine Ansicht, die ein quantisiertes Ergebnis von in Fig. 18 gezeigten DCT-Koeffizientendaten unter Verwendung der in Fig. 19 gezeigten Quantisierungstabellen zeigt;
- Fig. 21 ist eine Ansicht, die einen Zustand des Sortierens von Pixeldaten in einer Zickzackreihenfolge zeigt;
- Fig. 22 ist eine Ansicht, die ein Ergebnis einer Huffman- Dekodierung und einer inversen Quantisierung von ADCTkomprimierten Bilddaten zeigt;
- Fig. 23 ist eine Ansicht, die ein inverses DCT-Ergebnis von in Fig. 22 gezeigten DCT-Koeffizientendaten zeigt;
- Fig. 24 ist ein Ansicht, die schliesslich durch die in Fig. 15 gezeigte Vorrichtung erhaltene Daten zeigt;
- Fig. 25 und 26 sind Diagramme, die Kompressionsverfahren für ein durch einen Computer erzeugtes Farb-Multiwert-Bild zeigen;
- Fig. 27A und 27B sind Ansichten, die typische computer erzeugte Bilder zeigen;
- Fig. 28 ist ein Blockdiagramm, das eine Anordnung eine Datenkompressionsvorrichtung gemäß dem vierten Ausführungsbeispiel des Erfindung zeigt;
- Fig. 29 ist ein Ablaufdiagramm, das eine Kodierverarbeitungssequenz eines in Fig. 28 gezeigten Steuerabschnittes zeigt;
- Fig. 30A ist eine Ansicht, die ein Beispiel von durch einen in Fig. 28 gezeigten Pixeldatenerzeugungsabschnitt erzeugten Pixeldaten zeigt;
- Fig. 30B ist eine Ansicht, die Änderungen von in jedem in Fig. 28 gezeigten FF-Abschnitt zu haltenden Daten zeigt;
- Fig. 31 ist ein Zeitverlaufsdiagramm der in Fig. 28 gezeigten Signale;
- Fig. 32 ist eine Ansicht zum Erklären eines komprimierten Ergebnisses gemäß dem vierten Ausführungsbeispiel;
- Fig. 33 ist ein Blockdiagramm, das eine Anordnung einer Datenexpansionsvorrichtung zum Dekodieren kodierter Daten, die durch die in Fig. 28 gezeigte Datenkompressionsvorrichtung ausgegeben wurden, zeigt;
- Fig. 34 ist ein Tabelle, die den Verarbeitungsinhalt einer in Fig. 33 gezeigten PLD zeigt;
- Fig. 35 ist ein Ablaufdiagramm, das die Dekodierverarbeitung der in Fig. 33 gezeigten PLD zeigt;
- Fig. 36A, 36B und 36C sind Ansichten, die einen Dekodierzustand gemäß dem vierten Ausführungsbeispiel zeigen;
- Fig. 37 ist ein Blockdiagramm, das eine Bilddatenkompressionsvorrichtung gemäß dem fünften Ausführungsbeispiel der Erfindung zeigt;
- Fig. 38A, 38B und 38C sind Ansichten, die die Beziehung zwischen in Fig. 37 gezeigten Signalen 1b', 1e und 1f zeigen;
- Fig. 39 ist ein detailliertes Blockdiagramm eines in Fig. 37 gezeigten Pixeldatenersetzungsabschnittes;
- Fig. 40 ist ein detailliertes Blockdiagramm eines in Fig. 37 gezeigten reversiblen Kompressionsabschnittes;
- Fig. 41 ist eine Ansicht, die eine Sortierreihenfolge einer in Fig. 40 gezeigten Bilddatensortiereinheit zeigt;
- Fig. 42 ist ein detailliertes Blockdiagramm einer in Fig. 40 gezeigten Bereichunterscheidungseinheit;
- Fig. 43A und 43B sind Ablaufdiagramme, die eine Kompressionsverarbeitungssequenz der in Fig. 37 gezeigten Datenkompressionsvorrichtung zeigen;
- Fig. 44 und 45 sind Ablaufdiagramme, die Details von Schritten S47 und 556 in Fig. 43 zeigen;
- Fig. 46 ist ein Blockdiagramm, das eine Bilddatenexpansionsvorrichtung gemäß dem fünften Ausführungsbeispiel zeigt;
- Fig. 47 ist ein Ablaufdiagramm, das eine Expansionsverarbeitungssequenz der in Fig. 46 gezeigten Datenexpansionsvorrichtung zeigt;
- Fig. 48 ist ein Ablaufdiagramm eines reversiblen Expansionsabschnittes (Schritt S1404 in Fig. 47) von Fig. 46;
- Fig. 49 ist ein Blockdiagramm, das eine detaillierte Anordnung einer in Fig. 37 gezeigten ADCT 14 zeigt;
- Fig. 50 ist ein vereinfachtes Blockdiagramm zum Erklären einer in Fig. 49 gezeigten adaptiven Huffman-Kodiereinheit;
- Fig. 51 ist eine Ansicht, die einen Zustand von in einem in Fig. 50 gezeigten Pufferspeicher zu speichernden Daten zeigt;
- Fig. 52 zeigt den Inhalt einer in Fig. 50 gezeigten Schwellenwerttabelle;
- Fig. 53 ist eine Ansicht, die ein Segmentformat eines in Fig. 49 gezeigten Kompressionsspeichers zeigt;
- Fig. 54 ist eine Ansicht, die ein Format einer in Fig. 49 gezeigten Segmentinformationstabelle zeigt;
- Fig. 55 ist ein Ablaufdiagramm, das eine Speicherverarbeitung kodierter Daten in der Kompressionsverarbeitung zeigt;
- Fig. 56 ist eine Ansicht, die eine sich von der in Fig. 41 gezeigten unterscheidende Sortierreihenfolge von Pixeldaten in dem in Fig. 37 gezeigten reversiblen Kompressionsabschnitt zeigt;
- Fig. 57 ist ein Blockdiagramm, das eine Anordnung einer adaptiven Huffman-Kodiereinheit gemäß dem sechsten Ausführungsbeispiel der Erfindung zeigt;
- Fig. 58 ist eine Ansicht, die einen Zustand von in einem in Fig. 57 gezeigten Pufferspeicher zu speichernden Daten zeigt;
- Fig. 59 ist ein Blockdiagramm, das eine Anordnung einer adaptiven Huffman-Kodiereinheit gemäß dem siebten Ausführungsbeispiel der Erfindung zeigt; und
- Fig. 60 zeigt den Inhalt eine in Fig. 59 gezeigten Indextabelle.
- Nachstehend werden ein Bildverarbeitungsverfahren und eine Bildverarbeitungsvorrichtung gemäß einem Ausführungsbeispiel der Erfindung im Einzelnen unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.
- In der folgenden Beschreibung führt ein Abschnitt für irreversible Kompression bzw. ein irreversibler Kompressionsabschnitt eine ADCT durch, wird eine Blockgröße von 8 · 8 Pixeln verwendet, und sind Pixeldaten durch 24 Bit definiert. Die Erfindung ist jedoch nicht hierauf beschränkt. In der folgenden Beschreibung werden NTSC-RGB 24 Bit-Daten als originale bzw. ursprüngliche Bilddaten verwendet. Die Erfindung ist jedoch nicht hierauf beschränkt. Beispielsweise können ursprüngliche Bilddaten CMYK-Daten, XYZ-Daten, CIE-Lab-Daten, CIE-Luv-Daten oder YCrCb-Daten sein, und können Daten durch entweder 16 Bit oder 36 Bit definiert sein. Ferner gibt in der folgenden Beschreibung "Bereich 1" einen Bereich zum reversiblen Komprimieren von Blöcken an, und gibt "Bereich 2" einen Bereich zum irreversiblen Komprimieren von Blöcken an.
- Fig. 1 ist ein Blockdiagramm, das eine Anordnung einer Bildkompressionsvorrichtung gemäß dem ersten Ausführungsbeispiel zeigt.
- Bezug nehmend auf Fig. 1 bezeichnet ein Bezugszeichen 1 einen Bilddatenhalteabschnitt zum Ausgeben von Daten, die ein NTSC- RGB-Format haben und durch 24 Bit/Pixel in Einheiten von Blöcken definiert sind.
- Ein Bezugszeichen 2 bezeichnet einen Verzögerungsabschnitt zum Halten eines von dem Bilddatenhalteabschnitt 1 ausgegebenen Blocks, um den Block um eine Zeit entsprechend einem Block zu verzögern, um die Ausführung/Nichtausführung der ADCT-Kompression in Abhängigkeit von einem Ergebnis der reversiblen Kompression festzulegen.
- Ein Bezugszeichen 3 bezeichnet einen reversiblen Kompressionsabschnitt zum Durchführen einer reversiblen Kompression eines von dem Bilddatenhalteabschnitt 1 ausgegebenen Blocks und einer Bereichunterscheidung des Blocks, und Ausgeben komprimierter Daten und eines ein Bereichunterscheidungsergebnis anzeigenden Signals S2g. Weitere Details des Abschnittes 3 werden später beschrieben.
- Ein Bezugszeichen 4 bezeichnet einen ADCT-Kompressionsabschnitt zum dann, wenn das Bereichunterscheidungsergebnis von dem reversiblen Kompressionsabschnitt 3 "Bereich 2" anzeigt, ADCT-Komprimieren von von dem Verzögerungsabschnitt 2 zugeführten Daten und Ausgeben komprimierter Daten während Teilens derselben in Gleichsignalkomponenten, nieder frequente Komponenten, relativ hoch frequente Komponenten, hoch frequente Komponenten und der gleichen. Weitere Details des Abschnittes 4 werden später beschrieben.
- Ein Bezugszeichen 5 bezeichnet einen Puffer zum Speichern von von dem reversiblen Kompressionsabschnitt 3 ausgegebenen komprimierten Daten. Wenn das Bereichunterscheidungsergebnis von dem reversiblen Kompressionsabschnitt 3 "Bereich 1" zeigt, gibt der Puffer 5 die gespeicherten komprimierten Daten aus.
- Ein Bezugszeichen 6 bezeichnet eine Segmentsteuereinrichtung zum Speichern komprimierter Daten aus dem Puffer 5 und komprimierter Daten aus dem ADCT-Kompressionsabschnitt 4 in einem ersten Speicherabschnitt 8. Falls der erste Speicherabschnitt 8 während der Kompressionsverarbeitung mit Daten gefüllt wird, überschreibt der Segmentsteuerabschnitt 6 neue komprimierte Daten an Adressen, an denen ADCT-komprimierte Daten, die eine geringere Wichtigkeit haben und höheren Frequenzkomponenten entsprechen, gespeichert sind, unter Bezugnahme auf eine Segmentinformationstabelle 7, wodurch ein Überlaufen komprimierter Daten verhindert wird. Es wird angemerkt, dass, die Segmentinformationstabelle 7 die Speicheradressen von durch die Segmentsteuereinrichtung 6 in dem ersten Speicherabschnitt 8 gespeicherten Daten speichert.
- Ein Bezugszeichen 9 bezeichnet einen zweiten Speicherabschnitt zum Speichern des Signals S2g, das das von dem reversiblen Kompressionsabschnitt 3 ausgegebene Bereichunterscheidungsergebnis anzeigt.
- Ein Bezugszeichen 10 bezeichnet einen Steuerabschnitt zum Steuern z. B. der Betriebsablaufzeitverhaltens der vorstehend erwähnten Anordnung dieses Ausführungsbeispiels.
- Mit der vorstehend erwähnten Anordnung speichert der in Fig. 1 gezeigte erste Speicherabschnitt 8 die geteilten ADCTkomprimierten Daten oder reversibel komprimierten Daten in Übereinstimmung mit dem das von dem reversiblen Kompressionsabschnitt 3 ausgegebenen Bereichunterscheidungsergebnis anzeigenden Signal S2g.
- Fig. 2 ist ein Blockdiagramm, das die detaillierte Anordnung des reversiblen Kompressionsabschnittes 3 zeigt.
- Bezug nehmend auf Fig. 2 bezeichnet ein Bezugszeichen 201 eine Sortiereinheit zum seriellen Sortieren von Pixeldaten eines zugeführten Blocks.
- Ein Bezugszeichen 202 bezeichnet eine erste Zwischenspeichereinheit zum Zwischenspeichern von Pixeldaten (24 Bit) von der Sortiereinheit 201. Bezugszeichen 203 bis 205 bezeichnen zweite bis vierte Zwischenspeichereinheiten zum jeweiligen Zwischenspeichern von von der ersten Zwischenspeichereinheit 202 ausgegebenen Pixeldaten.
- Ein Bezugszeichen 206 bezeichnet eine erste Vergleichseinheit zum Vergleichen von von der Sortiereinheit 201 ausgegebenen Pixeldaten und von in der ersten Zwischenspeichereinheit zwischengespeicherten Pixeldaten 202 und Ausgeben eines 1 Bit- Signals 52a, welches '0' ist, wenn die beiden Pixeldaten zu einander gleich sind, oder '1' ist, wenn die beiden Pixeldaten von einander verschieden sind. Im Einzelnen zeigt das Signal 52a an, ob sich eine Farbe, die durch Pixeldaten repräsentiert wird, welche seriell von der Sortiereinheit 201 ausgegeben werden, ändert, und ist '1', wenn sich die Farbe ändert.
- Auf vergleichbare Art und Weise bezeichnen Bezugszeichen 207 bis 209 zweite bis vierte Vergleichseinheiten zum Vergleichen von von der Sortiereinheit 201 ausgegebenen Pixeldaten und durch die entsprechenden Zwischenspeichereinheiten 203 bis 205 zwischengespeicherten Pixeldaten und Liefern von Vergleichsergebnissen an einen Dekodierer 210.
- Der Dekodierer 210 empfängt die Vergleichsergebnisse von den zweiten bis vierten Vergleichseinheiten 207 bis 209 und gibt ein 2 Bit-Signal 52b aus. Es wird angemerkt, dass das Signal 52b '00' ist, wenn die zweite Vergleichseinheit 207 eine Übereinstimmung erfasst; '01' ist, wenn die dritte Vergleichseinheit 208 eine Übereinstimmung erfasst; '10' ist, wenn die vierte Vergleichseinheit 209 eine Übereinstimmung erfasst; und '11' ist, wenn alle Vergleichsergebnisse einen Nichtübereinstimmung anzeigen. Im Einzelnen zeigt das Signal 52b an, welche eine der Zwischenspeichereinheiten 203 bis 205 Daten zwischenspeichert, die den selben Wert (die selbe Farbe) haben wie die der von der Sortiereinheit 201 ausgegebenen Pixeldaten, und falls keine der Zwischenspeichereinheiten 203 bis 205 Pixeldaten zwischenspeichert, die den selben Wert haben, ist das Signal S2b '11'.
- Ein Bezugszeichen 211 bezeichnet eine PLD (Programmable Logic Device, programmierbare Logikeinrichtung) zum Empfangen des von der ersten Vergleichseinheit 206 ausgegebenen Signals 52a, des von dem Dekodierer 210 ausgegebenen Signals 52b, und eines von der Sortiereinheit 201 ausgegebenen Pixeldatensignals 52c und Ausgeben komprimierter Daten des reversiblen Kompressionsabschnitts 3, und von Zwischenspeichersignalen 52d bis 52f an die zweiten bis vierten Zwischenspeichereinheiten 203 bis 205. Es wird angemerkt, dass die PLD ein IC (Integrated Circuit, integrierte Schaltung) ist, das durch einen Entwickler/eine Entwicklerin selbst programmierbar ist.
- Es wird angemerkt, dass von der PLD 211 ausgegebene komprimierte Daten die in der nachstehenden Tabelle 1 gezeigte Beziehung haben.
- *1 : 24 Bit-Farbdaten
- Tabelle 2 zeigt die Beziehung zwischen den Eingängen der PLD 211 und den Zwischenspeichersignalen 52d bis S2f, und wenn das Zwischenspeichersignal '1' ist, speichert die entsprechende Zwischenspeichereinheit Eingabedaten zwischen.
- Wie in Tabelle 2 gezeigt ist, sind dann, wenn das Signal 52a '0' ist (die Farbe bleibt unverändert), alle Zwischenspeichersignale unabhängig von dem Zustand des Signals 52b '0'; wenn das Signal 52a '1' ist (die Farbe ändert sich) und das Signal 52b '11' ist (Pixeldaten mit der selben Farbe werden nicht zwischengespeichert), wird der Inhalt der Zwischenspeichereinheit, die die ältesten Pixeldaten zwischenspeichert, neu geschrieben.
- Ein Bezugszeichen 214 bezeichnet eine Bereichunterscheidungseinheit zum Ausgeben eines 1 Bit-Signals 52g, das ein Unterscheidungsergebnis anzeigt, in Übereinstimmung mit den Eingangssignalen 52a und 52b. Details dieser Bereichunterscheidungseinheit 214 werden später beschrieben. Es wird angemerkt, dass die Zustände '0' und '1' des Signals 52g jeweils Unterscheidungsergebnisse von "Bereich 1" und "Bereich 2" anzeigen.
- Ein Bezugszeichen 213 bezeichnet eine Sicherungseinheit zum Speichern von in den Zwischenspeichereinheiten zwischengespeicherten Pixeldaten bevor die Blockverarbeitung für die Unterscheidungsverarbeitung der Bereichunterscheidungseinheit 214 begonnen wird. Wenn das Signal 52g nach der Unterscheidung '1' ist, gibt die Sicherungseinheit 213 Pixeldaten vor der Bereichunterscheidung an die Zwischenspeichereinheiten zurück.
- Fig. 3 ist ein Blockdiagramm, das die detaillierte Anordnung der Bereichunterscheidungseinheit 214 zeigt.
- Bezug nehmend auf Fig. 3 bezeichnen Bezugszeichen 312 bis 316 Register.
- Ein Bezugszeichen 311 bezeichnet ein UND-Tor zum Ausgeben einer Summe eines logischen 3 Bit-Produktes der Signale 52a und 52b.
- Ein Bezugszeichen 301 bezeichnet einen Zähler a zum Zählen der Anzahl von Malen, in welchen das Signals 52a = 1 ist, d. h. die Anzahl von Malen des Erscheinens von Farbänderungspunkten. Ein Bezugszeichen 302 bezeichnet einen Zähler b zum Zählen der Anzahl von Malen der Ausgabe = '1' des UND-Tors 311. Im Einzelnen zählt der Zähler b 302 die Anzahl von Malen, in denen das Signal 52a = '1' und das Signal 52b = '11', d. h. die Anzahl von Malen des Erscheinens nicht zwischengespeicherter Farben.
- Bezugszeichen 303 und 304 bezeichnen Multiplizierer. Der Multiplizierer a 303 multipliziert die Ausgabe des Zählers a 301 mit 2 (der Anzahl von Bit des Signals 52b), gespeichert in dem Register 312, und der Multiplizierer b 304 multipliziert die Ausgabe des Zählers b 302 mit 24 (der Anzahl von Bit der Pixeldaten), gespeichert in dem Register 313.
- Ein Bezugszeichen 305 bezeichnet einen Addierer a zum Addieren der Ausgabe des Multiplizierers a 303, der Ausgabe des Multiplizierers b 304, und 64 (der Änderungspunktinformationszahl von Farben), gespeichert in dem Register 314, und Ausgeben der Anzahl von Bit (komprimierte Datenmenge) D, die schliesslich für den entsprechenden Block erforderlich ist. Es wird angemerkt, dass die Änderungspunktinformationszahl von Farben ein Wert ist, der durch eine voreingestellte Blockgröße festgelegt ist, und nicht auf 64 beschränkt ist.
- Ein Bezugszeichen 306 bezeichnet Subtrahierer zum Ausgeben eines Ergebnisses C-D, das durch Subtrahieren der Ausgabe D des Addierers a 305 von einem in dem Register 315 gespeicherten Wert C erhalten wird. Es wird angemerkt, dass der Wert C eine Solldatengröße pro Block nach der Kompression repräsentiert. Zum Beispiel ist dann, wenn das Sollkompressionsverhältnis dieses Ausführungsbeispiels auf 1/12 gesetzt ist, der Wert C unter Verwendung der Blockgröße und der Pixeldatengröße wie folgt bestimmt:
- C = 8 · 8 · 24/12 = 128 [Byte]
- Ein Bezugszeichen 307 bezeichnet einen Addierer b zum Ausgeben eines Ergebnisses C+S-D, das durch Addieren des Subtraktionsergebnisses C-D aus dem Subtrahierer 306 und einer Ausgabe S von einem (noch zu beschreibenden) Zwischenspeicher 310 erhalten wird.
- Ein Bezugszeichen 308 bezeichnet einen Vergleicher zum Vergleichen des Additionsergebnisses C+S-D aus dem Addierer b 307 mit einem in dem Register 316 gespeicherten Wert 0 und Ausgeben des das Bereichunterscheidungsergebnis repräsentierenden Signals 52g. Es wird angemerkt, dass das Signal 52g '0' ist, falls C+S-D > 0; und '1' ist, falls C+S-D < 0. Wie vorstehend beschrieben wurde, zeigen die Zustände '0' und '1' des Signals 52g jeweils die Unterscheidungsergebnisse von "Bereich 1" und "Bereich 2" an.
- Im Einzelnen ermittelt dann, wenn das Sollkompressionsverhältnis durch Addieren eines (noch zu beschreibenden) Grundbetrages (stock) S nach der Blockkompression (C+S-D z 0) erreicht werden kann, die Bereichunterscheidungseinheit 214 "Bereich 1" zum reversiblen Komprimieren des Blocks; wenn das Sollkompressionsverhältnis auch dann nicht erreicht werden kann, wenn der Grundbetrag S hinzuaddiert wird, bestimmt sie "Bereich 2" zum irreversiblen Komprimieren des Blocks.
- Ein Bezugszeichen 310 bezeichnet einen Zwischenspeicher, der durch den Steuerabschnitt 10 zu Beginn der Kompressionsverarbeitung auf einen vorbestimmten Wert initialisiert wird. Danach speichert, wenn jeder Block als "Bereich 1" bestimmt ist, d. h. wenn das Signal 52g '0' ist, der Zwischenspeicher 310 die Ausgabe C+S-D des Addierers b 307 zwischen. Im Einzelnen speichert der Zwischenspeicher 310 einen Grundbetrag C+S-D (> 0) in Bezug auf das Sollkompressionsverhältnis zu dieser Zeit nach der Kompression eines Blocks zwischen und gibt die zwischengespeicherten Daten als Grundbetrag S aus.
- In diesem Ausführungsbeispiel wird beispielsweise ein Wert "128" als Anfangswert des Grundbetrages S festgelegt. Der Grundbetrag S wird nicht auf 0 festgelegt, um mit einem Fall zurechtzukommen, in dem eine grosse Anzahl unterschiedlicher Farben in dem ersten Block erscheinen. Im Einzelnen erfordert das Kompressionsverfahren des reversiblen Kompressionsabschnittes 3 64 Bit pro Block für Informationen, die einen Farbänderungspunkt repräsentieren, und erfordert darüber hinaus 2 Bit als Zwischenspeicherinformationen an einem Farbänderungspunkt. Darüber hinaus erfordert dann, wenn eine nicht zwischengespeicherte neue Farbe erscheint, das Kompressionsverfahren 24 Bit zum direkten Ausgeben der Daten der Farbe. Wenn die Anzahl von Farbänderungspunkten (der Zählwert des Zählers a 301) durch n repräsentiert ist und die Anzahl von Malen des Erscheinens nicht zwischengespeicherter neuer Farben (der Zählwert des Zählers b 302) durch m repräsentiert ist, wird die folgende Beziehung erhalten:
- = 64 + 2n + 24m
- C + S - (64 + 2n + 24m) ≥ 0
- für 0 n 64, 0 ≤ m ≤ n
- Daher ergibt sich bei dem Kompressionsverfahren des reversiblen Kompressionsabschnittes 3, falls C = 128, S = 0, und m = n in dem ersten Block:
- n < (128 - 64)/26 2,4
- Das heisst, da die oberen Grenze der Anzahl von Farben in diesem Fall 2 ist, muss ein bestimmter Grundbetrag S anfänglich bereitgestellt werden. Falls beispielsweise C = S = 128, n < 7,3, und die Kompression kann auch dann durchgeführt werden, wenn ein Maximum von sieben Farben erscheint, wenn m = n.
- Fig. 4 ist ein Blockdiagramm, das die detaillierte Anordnung des ADCT-Kompressionsabschnittes 4 zeigt.
- Bezug nehmend auf Fig. 4 bezeichnet ein Bezugszeichen 801 eine Farbraumumwandlungseinheit zum Konvertieren von RGB- Farbraumdaten in YCrCb-Farbraumdaten.
- Ein Bezugszeichen 802 bezeichnet eine DCT-Einheit zum Durchführen einer DCT von YCrCb-Daten, die von der Farbraumumwandlungseinheit 801 ausgegeben wurden, um diese in Frequenzraumdaten zu konvertieren.
- Ein Bezugszeichen 803 bezeichnet eine Quantisierungseinheit zum Quantisieren von DCT-Koeffizienten, die von der DCT- Einheit 802 ausgegeben wurden, unter Verwendung jeweils unterschiedlicher Schrittweiten.
- Ein Bezugszeichen 804 bezeichnet eine Kodiereinheit zum Klassifizieren der quantisierten Daten, die von der guantisierungseinheit 803 ausgegeben wurden, in Gleichsignalkoeffizienten und Wechselsignalkoeffizienten und Kodieren dieser Koeffizienten. Im Einzelnen bildet, was Gleichsignalkoeffizienten anbelangt, die Kodiereinheit 804 eine optimale Huffman-Kodiertabelle auf der Grundlage eines Histogramms von Unterschieden von Gleichsignalkoeffizienten in dem vorangehenden Block und kodiert die Gleichsignalkoeffizienten in Übereinstimmung mit dieser Tabelle. Darüber hinaus sortiert, was Wechselsignalkoeffizienten anbelangt, die Kodiereinheit 804 die Koeffizienten in einer Zickzackreihenfolge, bildet eine optimale Huffman-Kodiertabelle auf der Grundlage von Kombinationen einer Lauflänge von Koeffizienten 0 (der Anzahl von Koeffizienten 0, bis einen Koeffizienten x anders als 0 erscheint) und des Wertes x, und kodiert die Wechselsignalkoeffizienten in Übereinstimmung mit dieser Tabelle. Die Kodiereinheit 804 gibt kodierte Daten der Gleichsignalkoeffizienten auf eine Leitung 8a aus, und verteilt und gibt kodierte Daten der Wechselsignalkoeffizienten auf entsprechende Leitungen aus. Das heisst, die Einheit 804 gibt von der nieder frequenten Seite aus p-kodierte Daten auf eine Leitung 8b aus, qkodierte Daten auf eine Leitung 8c aus, r-kodierte Daten auf eine Leitung 8d aus, und so weiter.
- Obwohl nicht beschrieben, können die Signale 52a, 52b und 52c durch die Segmentsteuereinrichtung 6 an verschiedenen Adressen in dem ersten Speicherabschnitt 8 gespeichert werden.
- Darüber hinaus können die Zwischenspeichereinheiten (die zweiten bis vierten Zwischenspeichereinheiten 203 bis 205) zum Zwischenspeichern vorangehender Pixeldaten kombiniert werden, und können zwei Zwischenspeichereinheiten, d. h. die erste und die zweite Zwischenspeichereinheit angeordnet werden.
- Fig. 5 ist ein Blockdiagramm, das eine andere Anordnung des reversiblen Kompressionsabschnittes 3 zeigt. In dieser Anordnung ist nur eine Zwischenspeichereinheit zum Speichern vorangehender Pixeldaten angeordnet, und wird kein Grundbetrag S festgelegt. In diesem Fall ist die Anzahl von Vergleichseinheiten auf zwei verringert, ist das Signal S2b durch 1 Bit definiert, und ist eine Formel zum Berechnen der komprimierten Datenmenge wie folgt modifiziert:
- D = 64 + n + 24 · m
- worin n: die Anzahl von Farbänderungspunkten (der Zählwert des Zählers a 301);
- m: die Anzahl von Malen des Erscheinens nicht zwischengespeicherter neuer Farben (der Zählwert des Zählers b 302).
- In dem reversiblen Kompressionsabschnitt 3 kann eine Zwischenspeichereinheit, die zu aktualisieren ist, wenn Pixeldaten, die den selben Wert haben, in keiner Zwischenspeichereinheit vorhanden sind, permanent zugewiesen werden. Zum Beispiel wird dann, wenn das Signal S2a '1' ist und das Signal S2b '11' ist, die zweite Zwischenspeichereinheit 203 aktualisiert. In diesem Fall kann, obwohl der Kompressionswirkunsgrad leicht beeinträchtigt wird, die Hardwareanordnung vereinfacht werden.
- In der vorstehenden Beschreibung wird die Segmentsteuereinrichtung 6 zur Speichersteuerung verwendet, um die Datenkompression in Echtzeit durchzuführen. Alternativ kann eine Vorabtastung (Vorentwicklung) durchgeführt werden, um einen δ- Faktor der ADCT-Kompression vorab zu ermitteln, und dann die Kompression durchgeführt werden. In diesem Fall kann die Speichersteuerung erleichtert werden.
- Auf diese Art und Weise wird, da ein Block, der ein Sollkompressionsverhältnis erreichen kann, durch den reversiblen Kompressionsabschnitt 3 komprimiert wird, und ein Block, der das Sollkompressionsverhältnis nicht erreichen kann, durch den ADCT-Kompressionsabschnitt 4 komprimiert wird, ein computer erzeugtes Bild beispielsweise so stark als möglich reversibel komprimiert, um eine Verschlechterung der Bildqualität zu verhindern, und werden Bilddaten wie beispielsweise ein Gradationsbild, ein natürliches Bild und der gleichen, das kein ausreichendes Kompressionsverhältnis durch reversible Kompression erwarten kann, effizient durch die ADCT-Kompression komprimiert, wodurch ein Knappwerden des Speichers verhindert wird. Es wird angemerkt, dass ein Gradationsbild, ein natürliches Bild und der gleichen eine Eigenschaft dahingehend haben, dass eine Verschlechterung der Bildqualität auch dann nicht auffallend ist, wenn diese Bilder irreversibel komprimiert und expandiert werden.
- Ferner ist, da die reversible Kompression und die irreversible Kompression in Einheiten von Blöcken umgeschaltet werden können, dieses Ausführungsbeispiel für sowohl ein natürliches Bild, das in einem computer erzeugten Bild synthetisiert wird, und ein computer erzeugtes Bild, das in einem natürlichen Bild synthetisiert wird, effektiv.
- Wenn die Speicherkapazität zum Speichern komprimierter Daten knapp wird, obwohl die Kompression in der vorstehend erwähnten Sequenz durchgeführt wird, werden neue komprimierte Daten an Adressen überschrieben, an denen ADCT-komprimierte Daten auf der höher frequenten Seite gespeichert sind, wodurch ein Knappwerden des Speichers verhindert wird.
- Nachstehend wird eine Bildkompressionsvorrichtung gemäß dem zweiten Ausführungsbeispiel der Erfindung beschrieben.
- In dem zweiten Ausführungsbeispiel wird der reversible Kompressionsabschnitt 3 des ersten Ausführungsbeispiels durch Software realisiert. Daher wird nachstehend allein der reversible Kompressionsabschnitt beschrieben, und wird eine detaillierte Beschreibung der selben Anordnung wie der in dem ersten Ausführungsbeispiel weggelassen.
- Es wird angemerkt, dass die Inhalte bzw. Bedeutungen von Datennamen in der folgenden Beschreibung wie folgt sind, und dass Komponenten in den Klammern den jenigen in dem ersten Ausführungsbeispiel entsprechen.
- next: erste Zwischenspeicherdaten (erste Zwischenspeichereinheit 202)
- former[0]: zweite Zwischenspeicherdaten (zweite Zwischenspeichereinheit 203)
- former[1]: dritte Zwischenspeicherdaten (dritte Zwischenspeichereinheit 204)
- former[2]: vierte Zwischenspeicherdaten (vierte Zwischenspeichereinheit 205)
- present: Pixeldatenausgabe in Zickzackreihenfolge (Ausgabe der Sortiereinheit 201)
- turn: Zwischenspeicheraktualisierungsinformationen
- Es wird angemerkt, dass "next", "former", und "present" Pixeldaten in dem RGB-Format sind und R-, G- bzw. B-Daten umfassen.
- Fig. 6 ist ein Ablaufdiagramm, das eine reversible Kompressionssequenz dieses Ausführungsbeispiels zeigt.
- Bezug nehmend auf Fig. 6 wird in diesem Ausführungsbeispiel in Schritt S401 ein Grundbetrag S auf z. B. 128 initialisiert, und werden in Schritt S402 vier Zwischenspeicherdaten "next" und "former" initialisiert. In diesem Ausführungsbeispiel werden unter der Annahme, dass ein schwarzes Bild, ein rotes Bild und ein blaues Bild auf einem weissen Hintergrund hohe Erscheinungshäufigkeiten in dieser turn haben, wie folgt Weiß-Daten in "next" festgelegt, Schwarz-Daten in "former[0]" festgelegt, Rot-Daten in "former[1]" festgelegt, und Blau-Daten in "former[2]" festgelegt:
- next = (255, 255, 255)
- former[0] = (0, 0, 0)
- former[1] = (255, 0, 0)
- former[2] = (0, 0, 255)
- In Schritt S402 wird, falls "present" nicht mit irgendeinem "former"" übereinstimmt, "turn" zum neu Schreiben des ältesten "former" wie folgt festgelegt:
- turn = 0
- turn p = 1
- turn pp = 2
- In Schritt S403 werden die Pixeldaten "next", "former" und "turn" gesichert.
- Bnext ← next
- Bformer ← former[)
- Bturn ← turn
- Bturn p ← turn pp
- Bturn-pp ← turn pp
- In Schritt S404 wird ein Block reversibel komprimiert, um eine komprimierte Datenmenge D zu erhalten, wie später im Einzelnen beschrieben werden wird.
- In Schritt S405 wird die in Schritt S404 erhaltene komprimierte Datenmenge D mit einem durch Addieren des Grundbetrags S zu einem voreingestellten Wert C erhaltenen Grenzwert L verglichen. Falls D s L, wird "Bereich 1" ermittelt, und der Ablauf schreitet zu Schritt S406 fort; falls D > L, wird "Bereich 2" ermittelt, und der Ablauf schreitet zu Schritt S408 fort.
- Falls das Unterscheidungsergebnis "Bereich 1" anzeigt, wird in Schritt S406 ein Signal S2g des Zustands "0" ausgegeben, und wird in Schritt S407 der Grundbetrag S unter Verwendung der folgenden Formel aktualisiert. Danach schreitet der Ablauf zu Schritt S410 fort.
- S ← C + S - D
- Falls das Unterscheidungsergebnis "Bereich 2" anzeigt, wird in Schritt S408 das Signal 52g im Zustand "1" ausgegeben, und werden in Schritt S409 die gesicherten Pixeldaten nach "next", "former[1]" und "turn" wiederhergestellt. Danach schreitet der Ablauf zu Schritt S410 fort. Im Einzelnen werden in Schritt S409 Zwischenspeicherdaten, die in der Verarbeitung in Schritt S404 neu geschrieben wurden, zu Pixeldaten vor der Verarbeitung wiederhergestellt.
- next ← Bnext
- former ← Bformer(]
- turn ← Bturn
- tumpp ← Bturn p
- turn pp ← Bturn-pp
- In Schritt S410 wird geprüft, ob alle Blöcke verarbeitet sind. Falls NEIN in Schritt S410, kehrt der Ablauf zu Schritt S403 zurück, um die übrigen Blöcke zu verarbeiten; andernfalls wird die Verarbeitung beendet.
- Die Verarbeitungssequenz der reversiblen Kompression (Schritt S404) wird nachstehend beschrieben. Es wird angemerkt, dass Datennamen in der folgenden Beschreibung und Komponenten in den Klammern den jenigen in dem ersten Ausführungsbeispiel entsprechen.
- count2 :die Anzahl von Malen des Erscheinens von Farbänderungspunkten (Zähler a 301);
- count3 :die Anzahl von Malen der Nichtübereinstimmung mit irgendwelchen Zwischenspeicherdaten (Zähler b 302)
- pix[i] :i-te Pixeldaten
- Fig. 7 und 8 sind Ablaufdiagramme, die die Sequenz der reversiblen Kompressionsverarbeitung (Schritt S404) zeigen.
- Bezug nehmend auf Fig. 7 werden in diesem Ausführungsbeispiel in Schritt S501 "count2" und "count3" auf 0 initialisiert, und wird in Schritt S502 0 in einem Zähler i eingestellt. Es wird angemerkt, dass der Zähler i die Anzahl verarbeiteter Pixel zählt und in diesem Ausführungsbeispiel Pixel in der in Fig. 9 gezeigten Reihenfolge verarbeitet werden.
- In Schritt S503 wird "pix[i]" "present" substituiert, und in Schritt S504 wird "present" mit "next" verglichen. Falls die beiden Daten mit einander übereinstimmen, werden in Schritt S505 komprimierte Daten '0' ausgegeben; andernfalls wird in Schritt S506 die "Bereich 2"-Verarbeitung ausgeführt, wie später näher beschrieben werden wird. Im Einzelnen zeigt, da in Schritt S504 die gegenwärtigen Pixeldaten (present) und die unmittelbar vorangehenden Pixeldaten (next) mit einander verglichen werden, eine Übereinstimmung zwischen den beiden Daten an, dass die Farbe links unverändert ist, und zeigt eine Nichtübereinstimmung zwischen den beiden Daten an, dass die Farbe verändert ist.
- In Schritt S507 werden in "present" zwischengespeicherte Pixeldaten in "next" substituiert, und in Schritt S508 wird der Zähler i inkrementiert. In Schritt S509 wird der Wert des Zählers i überprüft. Falls i s 63, kehrt der Ablauf zu Schritt S503 zurück, um die verbleibenden Pixel zu verarbeiten; falls i > 63, schreitet der Ablauf zu Schritt S510 fort.
- Falls die Verarbeitung aller Pixel abgeschlossen ist (i > 63), wird in Schritt S510 die komprimierte Datenmenge D des entsprechenden Blocks unter Verwendung der folgenden Gleichung berechnet, und kehrt der Ablauf dann zu der in Fig. 6 gezeigten Verarbeitungssequenz zurück.
- D = 64 + 2 · count2 + 24 · count3
- Andererseits wird, falls in Schritt S504 ermittelt wird, dass present + next, eine in Fig. 8 gezeigte Verarbeitungssequenz ausgeführt.
- Bezug nehmend auf Fig. 8 werden in diesem Ausführungsbeispiel komprimierte Daten '1' in Schritt S601 ausgegeben, wird "count2 " in Schritt S602 inkrementiert, und werden "turn" und "turnp" mit einander in Schritt S603 verglichen. Falls die beiden Daten mit einander übereinstimmen, springt der Ablauf zu Schritt S605; andernfalls schreitet der Ablauf zu Schritt S604 fort. In Schritt S604 wird die Zwischenspeichernummer von "turn p" in "tumpp" substituiert, und danach wird die Zwischenspeichernummer von "turn" in "turn p" substituiert. Es wird angemerkt, dass diese Verarbeitung dazu dient, zu verhindern, dass "turn" und "turn p" derselbe Wert gegeben wird.
- In Schritt S605 werden "present" und "former" mit einander verglichen. Falls present = former[0], schreitet der Ablauf zu Schritt S606 fort; falls present = former[1], schreitet der Ablauf zu Schritt S608 fort; falls present = former[2], schreitet der Ablauf zu Schritt S610 fort; falls present ≠ former , schreitet der Ablauf zu Schritt S612 fort.
- Falls present = former[0], werden in Schritt S606 komprimierte Daten '00' ausgegeben und wird in Schritt S607 ein Wert '0' in "turn" gesetzt, wodurch die zu aktualisierende Zwischenspeichernummer angezeigt wird. Falls present = former[1], werden in Schritt S608 komprimierte Daten '01' ausgegeben und wird in Schritt S609 ein Wert '1' in "turn" gesetzt. Falls present = former[2], werden in Schritt S610 komprimierte Daten '10' ausgegeben und wird in Schritt S611 ein Wert '2' in "turn" gesetzt.
- Falls present + former, werden in Schritt S612 komprimierte Daten '11' ausgegeben und in Schritt S613 in "present" zwischengespeicherte Pixeldaten ausgegeben. In Schritt S614 wird "count3" inkrementiert, und in Schritt S615 wird eine Zwischenspeichernummer, die sich von den jenigen in "turn p" und "turn pp" unterscheidet, in "turn" gesetzt. Da in Schritten S603 und S604 verhindert wird, dass der selbe Wert in "turnp" und "turn pp" gesetzt wird, nimmt "turn" einen von Werten '0', '1', und '2' an.
- In Schritt S616 werden in "next" zwischengespeicherte Pixeldaten in "former[turn]" substituiert, und danach kehrt der Ablauf zu der in Fig. 7 gezeigten Verarbeitungssequenz zurück.
- Da ein computer erzeugtes Bild, das durch z. B. DTP erzeugt wurde, eine relativ kleine Anzahl von Farben verwendet und durch 256 Farben ausreichend ausgedrückt werden kann, kann eine Tabelle für den gegenwärtigen Wert "present", der in der vorstehenden Beschreibung in Schritt S613 ausgegeben wird, verwendet werden. Zum Beispiel wird ein 8 Bit (256 Farben)- Speicher bereitgestellt und werden Daten von 8 Bit/Pixel ausgegeben, bis die 256-te Farbe erscheint. Wenn die 256-te Farbe erscheint, werden Daten von 24 Bit/Pixel direkt ausgegeben, wodurch eine Anordnung bereitgestellt wird, die keine Beschränkung der Anzahl von Farben hat.
- Der in Schritt S613 auszugebende gegenwärtige Wert "present" kann z. B. aus 18 Bit-Daten an stelle von 24 Bit-Daten bestehen. In diesem Fall ist, obwohl die reversible Kompression gehemmt wird, da Gradationscharakteristiken für menschliche Augen in einem hoch frequenten Bild, wie beispielsweise einem computer erzeugten Bild, nicht wichtig sind, eine komprimierte Datenmenge in diesem Fall gegeben durch:
- D = 64 + 2 · count2 + 18 · count3
- Die Anzahl von "former"s zum Zwischenspeichern vorangehender Daten kann auf 1 reduziert werden. In diesem Fall wird in Schritt S606, S608, S610 oder 5612 ein 1 Bit-Signal ausgegeben, und da die Anzahl von mit in "next" zwischengespeicherten Pixeldaten zu substituierenden Zwischenspeichern eins ist, kann "turn", welches die Aktualisierungsreihenfolge anzeigt, weggelassen werden. In diesem Fall wird die Gleichung zum Berechnen der komprimierten Datenmenge wie folgt neu geschrieben:
- D = 64 + count2 + 24 · count3
- Auf diese Art und Weise kann zusätzlich zu der selben Wirkung wie in dem ersten Ausführungsbeispiel, da der reversible Kompressionsabschnitt durch ein Softwareprogramm realisiert wird, um Daten reversibel zu komprimieren und die komprimierte Datenmenge D zu berechnen, die Hardwareanordnung vereinfacht werden.
- Nachstehend wird eine Datenexpansionsvorrichtung gemäß dem dritten Ausführungsbeispiel der Erfindung beschrieben.
- In dem dritten Ausführungsbeispiel werden komprimierte Daten, die in dem in Fig. 1 gezeigten ersten und zweiten Speicherabschnitt 8 und 9 gespeichert sind, expandiert, um Bilddaten zu reproduzieren.
- Fig. 10 ist ein Blockdiagramm, das eine Anordnung einer Datenexpansionsvorrichtung gemäß diesem Ausführungsbeispiel zeigt.
- Bezug nehmend auf Fig. 10 bezeichnet ein Bezugszeichen 901 eine Segmentsteuereinrichtung zum Verteilen von in dem ersten Speicherabschnitt 8 gespeicherten komprimierten Daten an einen ADCT-Expansionsabschnitt 902 oder einen Expansionsabschnitt für reversibel komprimierte Daten 904 unter Bezugnahme auf die in Fig. 1 gezeigte Segmentinformationstabelle 7. Der ADCT-Expansionsabschnitt 902 expandiert irreversibel komprimierte Daten, um einen 8 · 8 Pixel-Block zu reproduzieren. Der Expansionsabschnitt für reversibel komprimierte Daten 904 (nachstehend in Kurzform einfach als "Expansionsabschnitt" bezeichnet) expandiert reversibel komprimierte Daten auf der Grundlage von in dem zweiten Speicherabschnitt 9 gespeicherten Bereichinformationen, wodurch ein 8 · 8 Pixel- Block reproduziert wird.
- Ein Bezugszeichen 906 bezeichnet einen Wähler zum Auswählen und Ausgeben des von dem ADCT-Expansionsabschnitt 902 zugeführten Blocks oder des von dem Expansionsabschnitt 904 zugeführten Blocks auf der Grundlage von in dem zweiten Speicherabschnitt 9 gespeicherten Bereichinformationen.
- Ein Bezugszeichen 907 bezeichnet einen Bilddatenspeicherabschnitt zum aufeinanderfolgenden Speichern von von dem Wähler 906 ausgegebenen Blöcken, um Bilddaten in dem durch 24 Bit/Pixel definierten NTSC-RGB-Format zu reproduzieren.
- Ein Bezugszeichen 910 bezeichnet einen Steuerabschnitt zum Steuern z. B. des Betriebszeitverhaltens der Anordnung dieses Ausführungsbeispiels.
- Fig. 11 ist ein Ablaufdiagramm, das eine Verarbeitungssequenz zum Verwirklichen des Expansionsabschnitts 904 für reversibel komprimierte Daten durch Software zeigt. Es wird angemerkt, dass die Datennamen die selben wie die jenigen in dem zweiten Ausführungsbeispiel sind.
- Bezug nehmend auf Fig. 11 werden in diesem Ausführungsbeispiel in Schritt S1001, "next", "former" und "turn" wie in Schritt S402 in dem zweiten Ausführungsbeispiel initialisiert. Falls in Schritt S1002 ermittelt wird, dass Bereichinformationen eines aus dem zweiten Speicherabschnitt 9 ausgelesenen Verarbeitungsblocks "Bereich 1" anzeigen, wird in Schritt S1003 die Expansionsverarbeitung ausgeführt, wie später im Einzelnen beschrieben werden wird, und schreitet der Ablauf dann zu Schritt S1004 fort; falls die Bereichinformationen "Bereich 2" anzeigen, springt der Ablauf zu Schritt S1004.
- In Schritt S1004 wird geprüft, ob die Expansion aller komprimierter Daten abgeschlossen ist. Falls NEIN in Schritt S1004, kehrt der Ablauf zu Schritt S1002 zurück; andernfalls wird die Verarbeitung beendet.
- Fig. 12 ist ein Ablaufdiagramm, das eine Abfolge einer reversiblen Expansionsverarbeitung (Schritt S1003) zeigt.
- Bezug nehmend auf Fig. 12 wird in diesem Ausführungsbeispiel in Schritt S1101 ein Wert '0' in einem Zähler i gesetzt. Es wird angemerkt, dass der Zähler i die Anzahl verarbeiteter Pixel zählt, und dass in diesem Ausführungsbeispiel Pixel in der in Fig. 9 gezeigten Reihenfolge verarbeitet werden, wie in dem zweiten Ausführungsbeispiel.
- In Schritt S1102 werden von dem ersten Speicherabschnitt 8 empfangene 1 Bit-Daten geprüft. Falls die empfangenen Daten '1' sind, schreitet der Ablauf zu Schritt S1103 fort; falls die empfangenen Daten '0' sind, springt der Ablauf zu Schritt S1113.
- Falls die von dem ersten Speicherabschnitt 8 empfangenen 1 Bit-Daten '1' sind, werden in Schritt S1103 "turn" und "turn p" mit einander verglichen. Falls die beiden Daten mit einander übereinstimmen, schreitet der Ablauf zu Schritt S1105 fort; andernfalls schreitet der Ablauf zu Schritt S1104 fort. In Schritt S1104 wird eine Zwischenspeichernummer von "turnp" in "tumpp " substituiert, und wird danach eine Zwischenspeichernummer von "turn" in "turnp" substituiert. Es wird angemerkt, dass diese Verarbeitung dazu dient, zu verhindern, dass "turn" und "turn p" der selbe Wert gegeben wird.
- Falls in Schritt S1105 ermittelt wird, dass von dem ersten Speicherabschnitt 8 empfangene 2 Bit-Daten '00' sind, schreitet der Ablauf zu Schritt S1106 fort; falls die Daten '01' sind, schreitet der Ablauf zu Schritt S1107 fort; falls die Daten '10' sind, schreitet der Ablauf zu Schritt S1108 fort; oder falls die Daten '11' sind, schreitet der Ablauf zu Schritt S1110 fort.
- Falls die 2 Bit-Daten '00' sind, wird in Schritt S1106 ein Wert '0' in "turn" substituiert, und schreitet der Ablauf dann zu Schritt S1109 fort. Falls die 2 Bit-Daten '01' sind, wird in Schritt S1107 ein Wert '1' in "turn" substituiert, und schreitet der Ablauf dann zu Schritt S1109 fort. Falls die 2 Bit-Daten '10' sind, wird in Schritt S1108 ein Wert '2' in "turn" substituiert, und schreitet der Ablauf dann zu Schritt S1109 fort. Im Einzelnen sind dann, wenn die von dem ersten Speicherabschnitt 8 empfangenen 2 Bit-Daten '00', '01' oder '10' sind, auszugebende Pixeldaten welche, die in "former[0]", "former[1]" oder "former[2]" zwischengespeichert sind.
- In Schritt S1109 werden in "next" zwischengespeicherte Pixeldaten durch in "former[turn]" zwischengespeicherte Pixeldaten ersetzt, und danach schreitet der Ablauf zu Schritt S1113 fort.
- Andererseits wird dann, wenn die von dem ersten Speicherabschnitt 8 empfangenen 2 Bit-Daten '11' sind, in Schritt S110 eine von den jenigen in "turnp" und "turn pp" verschiedene Zwischenspeichernummer in "turn" gesetzt, werden in Schritt S1111 in "next" zwischengespeicherte Pixeldaten in "former[turn]" substituiert, und werden in Schritt S1112 von dem ersten Speicherabschnitt 8 empfangene 24 Bit-Pixeldaten in "next" substituiert. Danach schreitet der Ablauf zu Schritt S1113 fort. Da in Schritten 51103 und 51104 verhindert wird, dass der selbe Wert in "turn p" und "tumpp" gesetzt wird, nimmt "turn" in Schritt S1110 einen von Werten '0', '1' und '2' an.
- In Schritt S1113 werden in "next" zwischengespeicherte Pixeldaten als Expansionsergebnis ausgegeben, und in Schritt S1114 wird der Zähler i inkrementiert. In Schritt S1115 wird der Wert des Zählers i geprüft. Falls i < 63, kehrt der Ablauf zu Schritt S1102 zurück, um die verbleibenden Pixel zu verarbeiten; falls i > 63 kehrt der Ablauf zu der in Fig. 11 gezeigten Verarbeitungssequenz zurück.
- Auf diese Art und Weise können, um eine Verschlechterung der Bildqualität zu verhindern und ein Sollkompressionsverhältnis zu erreichen, komprimierte Daten, die durch reversibles Komprimieren mancher Bilddaten und durch irreversibles Komprimieren mancher anderer Bilddaten erhalten wurden, in Übereinstimmung mit den Kompressionsverfahren geeignet expandiert werden.
- Da reversibel komprimierte Daten und irreversibel komprimierte Daten in Einheiten von Blöcken expandiert werden, ist dieses Ausführungsbeispiel für sowohl ein in einem computer erzeugten Bild zusammengefügtes natürliches Bild als auch für ein in einem natürlichen Bild zusammengefügtes computer erzeugtes Bild wirkungsvoll.
- In jedem der vorstehend erwähnten Ausführungsbeispiele wird der Speicher unter Verwendung der Segmentsteuereinrichtung in Abschnitte unterteilt, und werden neue komprimierte Daten in einer Reihenfolge ausgehend von ADCT-komprimierte Daten auf einer höher frequenten Seite speichernden Segmenten überschrieben, wodurch ein Sollkompressionsverhältnis erreicht wird. Alternativ können Bereichinformationen in dem zweiten Speicherabschnitt bei der ersten Kompressionsverarbeitung erzeugt werden, um einen ADCT-δ-Faktor zum Erreichen eines Sollkompressionsverhältnisses zu berechnen, und kann das Sollkompressionsverhältnis in der zweiten Kompressionsverarbeitung erreicht werden. In diesem Fall kann eine komplizierte Speichersteuerverarbeitung weggelassen werden.
- In den vorstehend beschriebenen ersten und zweiten Ausführungsbeispielen werden durch den reversiblen Kompressionsabschnitt ausgegebene reversibel komprimierte Daten, d. h. die Signale 52a und 52b, durch ein EIN/AUS ('0'/'1') anzeigendes Flagsystem gebildet, können aber auch durch ein Triggersystem gebildet werden.
- Fig. 13A und 13B sind Diagramme zum Erklären eines Unterschiedes zwischen dem Flagsystem und dem Triggersystem. Fig. 13A zeigt das Flagsystem, und Fig. 13B zeigt das Triggersystem.
- Wie aus Fig. 13A und 13B ersehen werden kann, neigen identische Daten dazu, in dem Triggersystem für eine längere Zeitdauer anzudauern als in dem Flagsystem. Durch Nutzen dieser Eigenschaft können die Signale 52a und 52b einer anderen Lauflängenkompression, wie beispielsweise MH (Modified Huffman), unterworfen werden, um die Datenmenge zu verringern.
- Die Erfindung ist nicht auf MH beschränkt. Zum Beispiel können abgeschlossen komprimierte Daten einer Huffman-Kodierung oder einer Lempel-Ziv-Kodierung unterworfen werden, um weiter komprimiert zu werden. Es wird angemerkt, dass es ebenfalls effektiv ist, eine Huffman-Kodierung oder Lempel-Ziv-Kodierung des Signals 52c durchzuführen.
- Nachstehend wird eine Zusammenfassung eines in den nachfolgenden Ausführungsbeispielen zu verwendenden erfindungsgemäßen Kompressionsverfahrens beschrieben.
- In einem auf einem Computer erzeugten, so genannten CG-Bild wird eine einzelne Figur normalerweise durch eine uniforme Farbe ausgedrückt, obwohl das Bild ein "Vollfarbbild" ist. Als ein typisches computer erzeugtes Bild werden ein Bild, in dem Zeichen auf einer Hintergrundfarbe ausgebildet sind, wie in Fig. 27A gezeigt, oder ein Bild, in dem eine Figur auf einer Hintergrundfarbe ausgebildet ist und Zeichen darauf erzeugt sind, wie in Fig. 27B gezeigt, vorgeschlagen. Im Einzelnen hat ein solches Bild die folgenden Bestrebungen:
- (a) Eine identische Farbe neigt dazu, sich fortzusetzen.
- (b) Auch dann, wenn eine Farbe von A zu B geändert wird, neigt diese dazu, wieder auf A zurück geändert zu werden.
- Ein Schachbrettmuster ist ein typisches Beispiel von (b). Daher wird erfindungsgemäß dann, wenn ein zu verarbeitender Pixel (nachstehend in Kurzform als ein "interessierender Pixel" bezeichnet) die selben Farbdaten wie die Farbdaten (C&sub1;) des unmittelbar vorangehenden Pixels hat, der kürzeste Kode (z. B. '1') ausgegeben; wenn ein interessierender Pixel den selben Wert wie Farbdaten (C&sub2;) eines Pixels hat, der von C&sub1; verschiedene Farbdaten hat, und später erscheint, wird der nächst kürzeste Kode (z. B. '01') ausgegeben; wenn ein interessierender Pixel den selben Wert wie Farbdaten (C&sub3;) eines Pixels hat, der von C&sub2; und C&sub1; verschiedene Farbdaten hat, und später erscheint, wird der nächst kürzeste Kode (z. B. '001') ausgegeben; wenn ein interessierender Pixel von C&sub1;, C&sub2; und C&sub3; verschiedene Farbdaten hat, wird ein nicht verwendeter Kode (z. B. '000') ausgegeben, und werden Farbdaten zu dieser Zeit ausgegeben. Auf diese Art und Weise kann ein computer erzeugtes Bild mit einem hohen Kompressionsverhältnis komprimiert werden, ohne die Bildqualität zu verschlechtern.
- Nachstehend werden ein Bildverarbeitungsverfahren und eine Bildverarbeitungsvorrichtung gemäß einem dieses Kompressionsverfahren verwendenden Ausführungsbeispiel im Einzelnen unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.
- Fig. 28 ist ein Blockdiagramm, das eine Anordnung einer Datenkompressionsvorrichtung zeigt, die die vorliegende Erfindung verwirklichen kann.
- Ein Bezugszeichen 101 bezeichnet einen Pixeldatenerzeugungsabschnitt zum Erzeugen von 24 Bit (8 Bit/Farbe)-Pixeldaten pro Pixel in dem NTSC-RGB-Format.
- Ein Bezugszeichen 102 bezeichnet einen ersten Flip-Flop- Abschnitt (nachstehend als "FF-Abschnitt" bezeichnet) zum Halten von Pixeldaten (24 Bit) von dem Pixeldatenerzeugungsabschnitt 101 in Synchronizität mit der nachfolgenden Flanke eines Pixelerzeugungstaktes CLK (nachstehend in Kurzform einfach als "Takt" bezeichnet). Ein Bezugszeichen 103 bezeichnet einen zweiten FF-Abschnitt zum Empfangen einer Ausgabe d1 von einem ersten Vergleichsabschnitt 10 als Schreibfreigabesignal und Halten von Pixeldaten, die von dem ersten FF-Abschnitt 102 synchron mit dem Takt CLK ausgegeben werden. Ein Bezugszeichen 104 bezeichnet einen dritten FF-Abschnitt zum Empfangen eines ODERs der Ausgabe d1 des ersten Vergleichsabschnitts 105 und einer Ausgabe d2 von einem zweiten Vergleichsabschnitt 106 als Schreibfreigabesignal und Halten von Pixeldaten, die von dem zweiten FF-Abschnitt 103 synchron mit dem Takt CLK ausgegeben wurden.
- Ein Bezugszeichen 105 bezeichnet einen ersten Vergleichsabschnitt zum Vergleichen von Pixeldaten aus dem Pixeldatenerzeugungsabschnitt 101 und in dem ersten FF-Abschnitt 102 gehaltenen Pixeldaten, und zum dann, wenn die beiden Daten zu einander gleich sind, Ausgeben von '1'; und andernfalls Ausgeben von '0'. Ein Bezugszeichen 106 bezeichnet einen zweiten Vergleichsabschnitt zum Vergleichen von Pixeldaten aus dem Pixeldatenerzeugungsabschnitt 101 und in dem zweiten FF- Abschnitt 103 gehaltenen Pixeldaten an, und zum dann, wenn die beiden Daten zu einander gleich sind, Ausgeben von '1'; und andernfalls Ausgeben von '0'. Ein Bezugszeichen 107 bezeichnet einen dritten Vergleichsabschnitt zum Vergleichen von Pixeldaten aus dem Pixeldatenerzeugungsabschnitt 101 und in dem dritten FF-Abschnitt 104 gehaltenen Pixeldaten, und zum dann, wenn die beiden Daten zu einander gleich sind, Ausgeben von '1'; und andernfalls Ausgeben von '0'.
- Ein Bezugszeichen 109 bezeichnet einen Steuerabschnitt zum Empfangen der Vergleichsergebnisse von den drei Vergleichsabschnitten und Pixeldaten von dem Pixeldatenerzeugungsabschnitt 101, und Ausgeben kodierten Daten.
- Im Einzelnen kann der Steuerabschnitt 109 durch beispielsweise eine PLD verwirklicht werden.
- Ein Bezugszeichen 110 bezeichnet eine Kommunikationsschnittstelle zum Hinzufügen eines Kommunikationskopfabschnittes zu von dem Steuerabschnitt 109 zugeführten kodierten Daten und Übertragen der Daten.
- Wie vorstehend beschrieben wurde, kann das Schreibfreigabesignal des zweiten FF-Abschnittes 103 durch das Vergleichsergebnis aus dem ersten Vergleichsabschnitt 105 gesteuert werden, und kann das Schreibfreigabesignal des dritten FF- Abschnittes 104 durch die Vergleichsergebnisse aus dem ersten und dem zweiten Vergleichsabschnitten 105 und 106 gesteuert werden. Alternativ kann der Steuerabschnitt 109 Schreibfreigabesignale für den zweiten und den dritten FF-Abschnitt 103 und 104 ausgeben. Ferner kann ein Speicher anstelle der Kommunikationsschnittstelle 110 angeordnet sein.
- Fig. 29 ist ein Ablaufdiagramm, das eine Kodierverarbeitungssequenz des Steuerabschnittes 109 zeigt.
- Bezug nehmend auf Fig. 29 entspricht ein Block 401 den in Fig. 28 gezeigten Vergleichsabschnitten 105, 106 und 107. In dem Block 401 bezeichnet ein Bezugszeichen X interessierende Pixeldaten; bezeichnet C&sub1; durch den ersten FF-Abschnitt 102 gehaltene Daten; bezeichnet C&sub2; durch den zweiten FF-Abschnitt 103 gehaltene Daten; und bezeichnet C&sub3; durch den dritten FF- Abschnitt 104 gehaltene Daten. Eine Vergleichsergebnisgruppe 401d indem Block 104 dem Steuerabschnitt 109 zugeführt.
- Darüber hinaus entspricht ein Block 402 dem Steuerabschnitt 109. Der Block 402 gibt '1' aus, wenn (d1, d2, d3) - (1, 0, 0); '01', wenn (d1, d2, d3) = (0, 1, 0); '001', wenn (d1, d2, d3) = (0, 0, 1); und '000X' (alle 27 Bit), wenn (d1, d2, d3) = (0, 0, 0). In diesem Fall werden Daten wie beispielsweise (1, 1, 0) nicht berücksichtigt, da der erste, der zweite und der dritte FF-Abschnitt 102, 103 und 104 unterschiedliche Werte haben und zwei Signale niemals gleichzeitig '1' werden.
- In Schritt S403 werden dann, wenn (d1, d2, d3) = (0, 0, 1) oder (0, 0, 0) sind, da das Schreibfreigabesignal (d1 d2) an den dritten FF-Abschnitt 104 '0' ist, Daten, die durch den dritten FF-Abschnitt 104 gehalten werden, mit Daten C&sub2; als einer Ausgabe des zweiten FF-Abschnittes synchron mit der nachfolgenden Flanke des Taktes CLK entsprechend dem Anfang des nächsten Pixel neu geschrieben.
- In Schritt S404 werden dann, wenn (d1, d2, d3) = (0, 1, 0), (0, 0, 1) oder (0, 0, 0) sind, da das Schreibfreigabesignal (d1) an den zweiten FF-Abschnitt 103 '0' ist, Daten, die durch den zweiten FF-Abschnitt 103 gehalten werden, mit Daten C&sub1; als einer Ausgabe des ersten FF-Abschnittes synchron mit der nachfolgenden Flanke des Taktes CLK entsprechend dem Anfang des nächsten Pixel neu geschrieben.
- In Schritt S405 wird der Wert X des interessierenden Pixel in den ersten FF-Abschnitt 102 geschrieben.
- Die vorstehend erwähnte Verarbeitung wird jedes Mal ausgeführt, wenn Pixeldaten durch den Pixeldatenerzeugungsabschnitt 101 erzeugt werden. Der vorstehend erwähnte Kodierverarbeitungszustand wird nachstehend unter Bezugnahme auf ein tatsächliches Datenbeispiel beschrieben.
- Fig. 30A zeigt ein Beispiel von Pixeldaten, die durch den Pixeldatenerzeugungsabschnitt 101 erzeugt werden. Die Zeit verstreicht in Fig. 30A von links nach rechts, und Daten werden von dem Pixeldatenerzeugungsabschnitt 101 wie beispielsweise A, A, B, B, B, ... synchron mit den Takten CLK ausgegeben. A, B, C und D repräsentieren verschiedene 24 Bit-Pixeldaten, und Daten A haben beispielsweise einen Wert '110100001011011100001111'.
- Fig. 30B zeigt Änderungen von in dem ersten, dem zweiten und dem dritten FF-Abschnitt 102, 103 und 104 gehaltenen Daten. Es wird angemerkt, dass Weiß, Schwarz und Rot an den linken Enden der Diagramme Rücksetzwerte der FF-Abschnitte repräsentieren. In diesem Ausführungsbeispiel wird der erste FF- Abschnitt 102 auf Weiß '111111111111111111111111' zurückgesetzt, wird der zweite FF-Abschnitt 103 auf Schwarz '000000000000000000000000' zurückgesetzt, und wird der dritte FF-Abschnitt 104 auf Rot '111111110000000000000000' gesetzt.
- Fig. 31 zeigt Änderungen der in Fig. 30A und 30B gezeigten Daten.
- Bezug nehmend auf Fig. 31 bezeichnet ein Bezugszeichen CLK einen einen Pixel angebenden Takt; bezeichnet d1 eine Ausgabe des ersten Vergleichsabschnittes 105; bezeichnet d2 eine Ausgabe des zweiten Vergleichsabschnittes 106; und bezeichnet d3 eine Ausgabe des dritten Vergleichsabschnittes 107. Ein Bezugszeichen d4 bezeichnet ein Schreibfreigabesignal für den zweiten FF-Abschnitt 103, welches Signal mit der Ausgabe des ersten Vergleichsabschnittes 105 zusammenfällt. Ein Bezugszeichen d5 bezeichnet ein Schreibfreigabesignal für den dritten FF-Abschnitt 104, welches Signal einem ODER der Ausgaben des ersten und des zweiten Vergleichsabschnittes 105 und 106 entspricht. Es wird angemerkt, dass sich die Signale d1 bis d5 so ändern, dass sie gegenüber der Wellenform des Taktes CLK geringfügig verzögert sind.
- Nachstehend wird die Kodierverarbeitung der in Fig. 30A gezeigten Daten unter Bezugnahme auf das in Fig. 29 gezeigte Ablaufdiagramm beschrieben.
- Die ersten Daten A (1301) unterscheiden sich von einem beliebigen von C&sub1; = "weiß", C&sub2; = "schwarz", oder C&sub3; = "rot". Daher sind, wie in Fig. 31 gezeigt, alle Signale d1, d2 und d3 '0' (401). In Übereinstimmung mit dem Block 402 in Fig. 29 verzweigt dann, wenn (d1, d2, d3) = (0, 0, 0), der Ablauf zu Schritt S402d, um '000X' auszugeben. Daher wird in diesem Fall '000A' ausgegeben. Im Einzelnen werden 27 Bit-Daten '000110100001011011100001111' ausgegeben. In diesem Fall geht das Schreibfreigabesignal d5 auf LOW (niedriger Pegel), da (d1 d2) = '0', und von dem ersten FF-Abschnitt 102 ausgegebene Daten werden synchron mit der nachfolgenden Flanke des nächsten Taktes CLK dem dritten FF-Abschnitt 104 zugeführt. Der Inhalt des ersten FF-Abschnittes 102 wird mit Daten aus dem Pixeldatenerzeugungsabschnitt 101 in Übereinstimmung mit den Takten CLK neu geschrieben. Daher wird in dem Zustand von C&sub1; = A, C&sub2; = "weiß" und C&sub3; = "schwarz" die Verarbeitung von Daten A (1302) als dem nächsten Pixel begonnen.
- Es wird angemerkt, dass ein Markierung Δ in Fig. 31 einen Punkt anzeigt, an dem das Schreibfreigabesignal auf einem LOW-Pegel liegt, und der Takt CLK auf LOW (niedrigen Pegel) wechselt.
- Wenn die Daten A (1302) verarbeitet sind, verzweigt, da (d1, d2 und d3) - (1, 0, 0) erhalten ist, der Ablauf zu Schritt S402a, um '1' auszugeben. In diesem Fall werden, da die Signale d4 und d5 auf dem HIGH-Pegel (hohen Pegel) sind, die Inhalte des zweiten und des dritten FF-Abschnittes 103 und 104 nicht neu geschrieben.
- In Fig. 30B wird in diesem Ausführungsbeispiel der Inhalt des ersten FF-Abschnittes 102 synchron mit dem Takt CLK neu geschrieben. Der erste FF-Abschnitt 102 kann jedoch durch ein Signal von dem ersten Vergleichsabschnitt 105 zum Schreiben freigegeben werden. Darüber hinaus repräsentieren Pfeile in den Ausgaben C&sub2; und C&sub3;, dass Daten unverändert belassen werden.
- Nachstehend wird die Verarbeitung von Pixeldaten 1303 in Fig. 30A beschrieben. Zu dieser Zeit sind C&sub1; = B, C&sub2; = A und C&sub3; = "weiß", und X = A, (d1, d2, d3) = (0, 1, 0). Daher verzweigt der Ablauf zu Schritt S402b, um '01' auszugeben. In diesem Fall wird, da (d1 d2) = '1', der Inhalt des dritten FF-Abschnittes 104 nicht neu geschrieben, und werden, da d1 = '1', Daten in dem zweiten FF-Abschnitt 103 neu geschrieben.
- Nachstehend wird die Verarbeitung von Pixeldaten 1304 in Fig. 30A beschrieben. Zu dieser Zeit sind C&sub1; = C, C&sub2; = B und C&sub3; = A, und X = A, (d1, d2, d3) = (0, 0, 1). Daher verzweigt der Ablauf zu Schritt S402c, um '001' auszugeben. In diesem Fall gehen, da (d1 d2) - '1' und d1 = '1', beide Signale d4 und d5 gehen auf HIGH, und werden die Inhalte des zweiten und des dritten FF-Abschnittes 103 und 104 neu geschrieben.
- Somit wurden alle Fälle von Kodemustern '1', '01', '001' und '000X' beschrieben.
- Wie aus Fig. 30B ersehen werden kann, halten der erste, der zweite und der dritte FF-Abschnitt 102 (C&sub1;), 103 (C&sub2;) und 104 (C&sub3;) immer unterschiedliche Werte. Bei dieser Verarbeitung werden in Fig. 30A gezeigte Daten, d. h. 32 · 24 = 768 Hit, in in Fig. 32 gezeigte Daten, d. h. 148 Bit, komprimiert, und wird ein Kompressionsverhältnis von etwa 1/5 erreicht.
- In dem in Fig. 30A gezeigten Datenbeispiel ist eine kontinuierliche Kette einzelner Daten zu Zwecken der Einfachheit der Beschreibung gekürzt. Da jedoch tatsächliche Daten eine längere Kette einzelner Daten einschliessen, kann das Kompressionsverhältnis weiter vergrößert werden, und kann ein Kompressionsverhältnis von bis etwa 1/20 selbst für ein beachtlich feines Bild erreicht werden.
- Fig. 33 ist ein Blockdiagramm, das eine Anordnung einer Datenexpansionsvorrichtung zum Dekodieren kodierter Daten zeigt, die durch die in Fig. 28 gezeigte Datenkompressionsvorrichtung ausgegeben wurden. Bezug nehmend auf Fig. 33 wird, anders als in einer Kodierbetriebsart, keine Datenaustauschverarbeitung zwischen FF-Abschnitten durchgeführt. In der Datenexpansionsvorrichtung ist ein "Zustand" genannter Parameter, der die Vorrangreihenfolge jedes FF-Abschnittes repräsentiert, bereitgestellt, und wird die Dekodierverarbeitung unter Verwendung dieses Parameters durchgeführt.
- Ein Bezugszeichen 700 bezeichnet eine Kommunikationsschnittstelle zum Analysieren eines Kommunikationskopfteils empfangener kodierter Daten. Ein Bezugszeichen 701 bezeichnet einen Puffer zum Puffern von Daten von der Kommunikationsschnittstelle 700. Ein Bezugszeichen 702 bezeichnet ein Schieberegister zum Umwandeln von von dem Puffer 701 zugeführten seriellen Daten in parallele Daten.
- Ein Bezugszeichen 703 bezeichnet einen Zustandspeicherpuffer zum Speichern des aktuellen Zustandes von sechs verschiedenen Zuständen, die die Vorrangreihenfolge dreier FF-Abschnitte repräsentieren. Ein Bezugszeichen 704 bezeichnet eine PLD zum Empfangen von 3 Bit-Daten von dem Zustandspeicherpuffer 703 und oberer 3 Bit von kodierten Daten in dem Schieberegister 702, und Ausgeben von 3 Bit-Daten, die den nächsten Zustand repräsentieren, eines 2 Bit-Auwahlsignals zum Auswählen von Farbdaten, Schreibfreigabesignalen für drei FF-Abschnitte und eines Schiebezählwertes oder eines Schiebetaktsignals für das Schieberegister 702.
- Bezugszeichen 705 bis 707 bezeichnen vierte bis sechste FF- Abschnitte zum dann, wenn entsprechende Schreibfreigabesignale von der PLD 704 auf dem LOW-Pegel sind, halten von Daten in Synchronizität mit jeweils der nachfolgenden Flanke eines Taktes.
- Ein Bezugszeichen 708 bezeichnet einen Wähler zum Auswählen und Ausgeben eines von vier Farbsignalen (parallele 24 Bit- Daten von den vierten bis sechsten FF-Abschnitten 705 bis 707 und dem Schieberegister 702) in Übereinstimmung mit dem ausgewählten Signal von der PLD 704.
- Fig. 34 zeigt den Verarbeitungsinhalt der PLD 704. Bezug nehmend auf Fig. 34 gibt dann, wenn kodierte Daten '01' zugeführt werden, wenn der Zustand (Vorrangreihenfolge) '0' ist, die PLD ein Auswahlsignal zum Auswählen von Farbdaten C5 des fünften FF-Abschnittes 706 aus, setzt die Schreibfreigabesignale auf (H, H, H), um die Inhalte irgendwelcher Zwischenspeicher nicht neu zu schreiben, ändert den Zustand auf '2', und gibt einen Schiebezählwert '2' des Schieberegisters 702 aus.
- Als weiteres Beispiel gibt dann, wenn kodierte Daten '000' zugeführt werden, wenn der Zustand '4' ist, die PLD ein Auswahlsignal zum Auswählen von parallelen 24 Bit-Daten von dem Schieberegister 702 aus. In diesem Fall setzt, da die Vorrangreihenfolge (U2, U3, U1) ist, die PLD die Schreibfreigabesignale auf (L, H, H), um den Inhalt des vierten FF-Abschnittes 705 neu zu schreiben, um die ältesten Daten U1 neu zu schreiben, und ändert den Zustand auf '0', um die Vorrangreihenfolge (U1, U2, U3) festzulegen. Dann gibt die PLD einen Schiebezählwert '27' des Schieberegisters 702 aus.
- Fig. 35 ist ein Ablaufdiagramm, das die Dekodierverarbeitung zeigt. Die in Fig. 32 gezeigte Dekodierverarbeitung kodierter Daten wird nachstehend unter Bezugnahme auf Fig. 35 beispielhaft erklärt.
- Die selben Rücksetzwerte (Weiß, Schwarz, Rot) wie in der Kodierbetriebsart werden in dem vierten, dem fünften und dem sechsten FF-Abschnitt 705, 706 und 707 beibehalten (Schritt 5901). Daher sind U&sub1; = "Weiß", U&sub2; = "Schwarz", und U3 = "Rot".
- Der Zustand wird auf '0' zurückgesetzt (Schritt S902). Wenn in Fig. 32 gezeigte kodierte Daten dem Schieberegister 702 zugeführt werden, sind zu verarbeitende obere 3 Bit-Daten '000'. Gemäß Fig. 34 werden Farbdaten A, die parallel an die 4-ten bis 47-ten Pins des Schieberegisters 702 ausgegeben werden, in Übereinstimmung mit einer Anweisung von der PLD 704 ausgewählt (Schritt S903).
- Da die Schreibfreigabesignale über Schritte S904 und S908 (H, H, L) sind, werden die Farbdaten A in den sechsten FF-Abschnitt 707 geschrieben (Schritt S909), wird '3' in dem Zustand substituiert (Schritt S910), und wird das Schieberegister 702 27 Mal weitergeschaltet (Schritt S911).
- Die nächsten Daten sind '100' und stimmen mit '1**' überein. Gemäß Fig. 34 werden dann, wenn '1**' zugeführt wird, wenn der Zustand = 3 ist, Daten U&sub3;, d. h. der sechste FF-Abschnitt 707, ausgewählt, um die Daten A auszugeben, wird keiner der FF-Abschnitte neu geschrieben, und wird der Zustand unverändert belassen. Da der Schiebezählwert '1' ist, wird das Schieberegister einmal weitergeschaltet, und sind die nächsten Daten '000'.
- Wenn der Zustand = 3 ist und die nächsten Daten '000' sind, werden 24 Bit-Daten B in dem Schieberegister 702 ausgewählt, werden Farbdaten B in dem fünften FF-Abschnitt 706 substituiert, wird der Zustand auf '4' geändert, und wird das Schieberegister um 27 Bit weitergeschaltet.
- Die nächsten Daten sind '111'. Da diese Daten mit '1**' übereinstimmen, werden die Daten U2 ausgewählt, wird der Zustand unverändert belassen, und wird das Schieberegister um 1 Bit weitergeschaltet.
- Da die folgenden Daten '110' und '101' sind, wird die selbe Verarbeitung zweimal wiederholt. Danach sind die nächsten Daten '011' und stimmen mit '01*' überein. Wenn die Daten '01*' zugeführt werden, wenn der Zustand = 4 ist, werden die Daten U3 ausgewählt, wird keiner der FF-Abschnitte neu geschrieben, wird der Zustand auf '5' geändert, und wird das Schieberegister zweimal weitergeschaltet.
- Mit der vorstehend erwähnten Verarbeitung können dekodierte Daten (Fig. 36C), die die selben sind wie die jenigen vor der Kodierung, über in Fig. 36A bis 36C gezeigte Prozesse erhalten werden. Fig. 36A zeigt die Änderung des Zustandes, und Fig. 36B zeigt die Änderungen der FF-Abschnitte. In Fig. 36B repräsentiert ein Symbol mit einem Markierung O zu dieser Zeit ausgewählte Farbdaten. Pfeile zeigen an, dass Daten unverändert belassen werden. Wie der vorstehenden Beschreibung entnommen werden kann, kann die Häufigkeit des Neuschreibens der FF-Abschnitte durch Nutzen des "Zustand"-Parameters stark verringert werden.
- Nachstehend wird eine Anwendung einer Multiwert-Bildkompression unter Verwendung der vorstehend erwähnten reversiblen Kompression (die nachstehend manchmal als "CG"-Kompression" bezeichnet wird) beschrieben.
- Ein Raster-Block-Umwandlungsabschnitt zum Halten von Pixeldatengruppen, von denen jede m (horizontal) x n (vertikal) Eingangspixeldaten (nachstehend als "Block" bezeichnet) beinhaltet, und einer Pixeltypinformationsgruppe pro Pixel (ein Pixel eines natürlichen Bildes wird als "Pixeltyp A" definiert, und ein anderes Bild wird als "Pixeltyp B" definiert), ist angeordnet, und wenn alle Elemente von Pixeltypinformationen in einem Block vom "Pixeltyp A" sind, werden ADCT-komprimierte Daten ausgegeben.
- Andererseits wird dann, wenn alle Elemente von Pixeltypinformationen in einem Block vom "Pixeltyp B" sind, eine CG-komprimierte Datenmenge D mit einem gegebenen Grenzwert L verglichen, und dann, wenn D s L ist, CG-komprimierte Daten ausgegeben; wenn D > L ist, werden ADCT-komprimierte Daten ausgegeben.
- Wenn ein einzelner Block Pixeldaten beider Pixeltypen A und B beinhaltet, werden Pixeldaten des Pixeltyps A durch vorbestimmte Pixeldaten a ersetzt, und werden Pixeldaten des Pixeltyps B, welche Daten den selben Wert wie die Pixeldaten a haben, durch vorbestimmte Pixeldaten β ersetzt. Die CGkomprimierte Datenmenge D zu dieser Zeit wird mit dem gegebenen Grenzwert L verglichen. Wenn D s L, werden CG-komprimierte Daten der substituierten Pixeldatengruppe ausgegeben, und werden ADCT-komprimierte Daten einer Pixeldatengruppe, die unter Ausschluss von Pixeldaten des Pixeltyps B interpoliert wird, ausgegeben. Wenn D > L ist, werden ADCT-komprimierte Daten ausgegeben.
- Darüber hinaus ist ein Kompressionsspeicher zum Speichern der ausgegebenen ADCT-komprimierten Daten und CG-komprimierten Daten angeordnet. Ferner ist ein Blockabbildungsspeicher, der 1 Bit-Daten pro Block, d. h. ein Signal '0' für einen Block, für den CG-komprimierte Daten ausgegeben werden, und ein Signal '1' für einen anderen Block speichert, angeordnet.
- ADCT-komprimierte Dateh werden in p Huffman-Kodes, q Huffman- Kodes, r Huffman-Kodes, ... unterteilt und in dem Kompressionsspeicher zusammen mit den CG-komprimierten Daten gespeichert. Der Kompressionsspeicher wird durch eine Segmentsteuereinrichtung gesteuert, und die Schreibadressen komprimierter Daten werden in einer Segmentinformationstabelle gespeichert.
- Wenn die Speicherkapazität während der vorstehend erwähnten Kompressionsverarbeitung knapp wird, werden neue komprimierte Daten auf am wenigsten wichtige geteilte ADCT-komprimierte Daten reihum unter Bezugnahme auf die Abschnittinformationstabelle überschrieben, wodurch eine gleichbleibende Speichermenge erreicht wird.
- Ein-Bit-Daten "blockmap" werden aus dem Blockabbildungsspeicher ausgelesen. Wenn die Daten "blockmap" '1' sind, werden aus dem Kompressionsspeicher ausgelesene ADCT-komprimierte Daten expandiert und die expandierten Daten in einen Block- Raster-Umwandlungsabschnitt geschrieben. Wenn die Daten "blockmap" '0' sind, werden aus dem Kompressionsspeicher ausgelesene CG-komprimierte Daten expandiert und Pixeltypinformationen analysiert, um eine Pixeltypinformations-Bitmap bzw. -Bitabbildung zu erzeugen.
- Wenn die erzeugte Bitmap zumindest einen Pixel des Pixeltyps A anzeigt, werden aus dem Kompressionsspeicher ausgelesene ADCT-komprimierte Daten expandiert. Was einen dem durch die Bitmap angezeigten Pixeltyp A entsprechenden Pixel anbelangt, werden ADCT-expandierte Daten in den Block-Raster-Umwandlungsabschnitt geschrieben, und was einen dem Pixeltyp B entsprechenden Pixel anbelangt, werden CG-expandierte Daten geschrieben.
- Wenn alle Pixel der erzeugten Bitmap den Pixeltyp B anzeigen, werden CG-expandierte Daten in den Block-Raster-Umwandlungsabschnitt geschrieben.
- In der vorstehend erwähnten Kompressions-/Expansions-Verarbeitung wird ein mit der Bildqualität oder einer komprimierten Datenmenge zusammenhängendes Problem, das durch einen beide Pixeltypen A und B beinhaltenden Block aufgeworfen wird, durch Ersetzen und CG-Komprimieren von Pixeldaten sowie Interpolieren und das ADCT-Komprimieren von Pixeldaten gelöst. Da Pixeltypdaten pro Pixel, die erforderlich sind, da die beiden verschiedenen Arten komprimierter Daten verwendet werden, in CG-komprimierte Daten eingefügt werden können, ist kein zusätzlicher Bitmap-Speicher erforderlich. Ferner wird dann, wenn die CG-komprimierte Datenmenge D den Grenzwert L übersteigt, das Kompressionsverfahren auf das ADCT-Kompressionsverfahren umgeschaltet, wodurch eine gleichbleibende Speichermenge erreicht wird.
- Es wird angemerkt, dass der Raster-Block-Umwandlungsabschnitt und der Block-Raster-Umwandlungsabschnitt Puffer sind, und dass ein einzelner Puffer verwendet werden kann.
- Ein Beispiel einer Vorrichtung zum Verwirklichen der vorstehend erwähnten Verarbeitung wird nachstehend unter Bezugnahme auf die Zeichnungen beschrieben. In diesem Ausführungsbeispiel werden m = 8 und n = 8 verwendet. Die Erfindung ist jedoch nicht hierauf beschränkt. (Zum Beispiel werden dann, wenn farbverschiedene Komponenten durch das ADCT-Verfahren abgetastet werden, m = 16 und n = 8 ausgewählt.) Der Grenzwert L wird als eine Summe eines konstanten Wertes C, der eine zulässige Speichermenge eines zu verarbeitenden Blocks angibt, und eines Grundbetrages S. wie aus nicht verwendeten zulässigen Speichermengen von so weit verarbeiteten Blöcken akkumuliert, angenommen.
- Fig. 37 ist ein Blockdiagramm, das eine funktionelle Anordnung einer Bilddaten-Kompressionsvorrichtung gemäß diesem Ausführungsbeispiel zeigt.
- Ein Bezugszeichen 11 bezeichnet einen Raster-Block-Umwandlungsabschnitt zum Halten von Pixeldaten (24 Bit pro Pixel) in dem NTSC-RGB Format und Pixeltypinformationen (1 Bit pro Pixel; '1' als ein Pixeltyp A für einen Pixel eines natürlichen Bildes; '0' als ein Pixeltyp B für einen anderen Bildpixel) für acht Zeilen, und paralleles Erzeugen von Pixeldaten 1a und Pixeltypinformationen 1b für einen Block. In diesem Ausführungsbeispiel werden die Pixeltypinformationen durch einen Seitenbeschreibungssprache (PDL)-Entwicklungsabschnitt 26 bei Entwicklung von PDL-Daten von einem Hostcomputer 25 erzeugt.
- Ein Bezugszeichen 12 bezeichnet einen Verzögerungsabschnitt zum Verzögern und Halten von Daten (1a und 1b) für einen von der Raster-Block-Umwandlungseinheit 11 ausgegebenen Block, da die Notwendigkeit der (noch zu beschreibenden) ADCT-Kompressionsverarbeitung in Abhängigkeit von dem vorstehend erwähnten CG-Kompressionsverarbeitungsergebnis bestimmt wird.
- Ein Bezugszeichen 13 bezeichnet einen Pixeldateninterpolationsabschnitt zum interpolieren von Daten 1a', die gesteuert durch ein Signal 1f aus dem Verzögerungsabschnitt 12 ausgelesen wurden. Bei dem Signal 1f handelt es sich um 1 Bit-Daten pro Pixel, die durch logisches ODER-Verknüpfen von Signalen 1b' und 1e erzeugt werden. Zum Beispiel wird dann, wenn das in Fig. 38A gezeigte Signal 1b' ausgegeben wird, falls das Signal 1e '0' ist, das in Fig. 38B gezeigte Signal 1f ausgegeben; wenn das Signal 1e '1' ist, wird das in Fig. 38C gezeigte Signal 1f ausgegeben. Daten, die einer Position entsprechen, an der das Signal 1f = '0' ist, werden extrahiert und interpoliert, um eine steile Kante in einem Block zu eliminieren. Zum Beispiel kann in einem bestimmten Verfahren ein Mittelwert von Pixeldaten entsprechend dem Signal 1f = '1' berechnet werden, und kann der berechnete Mittelwert als der Wert von Pixeldaten entsprechend dem Signal 1f = '0' verwendet werden.
- Ein Bezugszeichen 14 bezeichnet einen ADCT-Abschnitt zum dann, wenn das Signal 1g = '1' ist, Empfangen von Daten von dem Pixeldateninterpolationsabschnitt 13, Ausführen der (noch zu beschreibenden) ADCT-Kompressionsverarbeitung, Unterteilen komprimierter Daten in viele Stufen, und Ausgeben geteilter komprimierter Daten. Bei dem Signal 1g handelt es sich um 1 Bit-Daten pro Block, welche '1' sind, wenn das Signal 1e '1' ist (d. h. die CG-komprimierte Datenmenge ist D > L oder D = 64), oder wenn ein Signal 1c '1' ist (d. h. zumindest ein Pixeltypsignal 1b zeigt den Pixeltyp A an).
- Ein Bezugszeichen 15 bezeichnet einen Pixeltypinformationsanalyseabschnitt zum Erzeugen eines 1 Bit-Signals lc pro Block, welches '1' ist, wenn zumindest eine Pixeltypinformation 1b in einem zu verarbeitenden Block den Pixeltyp A anzeigt, oder welches für andere Fälle '0', und eines 1 Bit- Signals 1d pro Block, welches '1' ist, falls zumindest eine Pixeltypinformation 1b den Pixeltyp B anzeigt, oder welches für andere Fälle '0' ist.
- Ein Bezugszeichen 17 bezeichnet einen Pixeldatenersetzungsabschnitt zum Empfangen von Pixeldaten 1a und Pixeltypinformationen 1b von dem Raster-Block-Umwandlungsabschnitt 11, der Pixeldaten mit Pixeltypinformationen ib, die den Pixeltyp A anzeigen, durch vorbestimmte Pixeldaten a ersetzt, und Pixeldaten mit dem Pixeltyp B und dem selben Wert wie der der Pixeldaten a durch Pixeldaten β ersetzt.
- Ein Bezugszeichen 18 bezeichnet einen reversiblen Kompressionsabschnitt (der vorstehend erwähnte CG-Kompressionsabschnitt) zum Empfangen von ersetzten Daten von dem Pixeldatenersetzungsabschnitt 17 (entsprechend dem Pixeldatenerzeugungsabschnitt 101 in Fig. 28), Ausführen der CG-Kompressionsverarbeitung unter Bezugnahme auf die Signale 1c und 1d, und Ausgeben komprimierter Daten (entsprechend der Ausgabe des Steuerabschnittes 109 in Fig. 28) und eines Bereichunterscheidungsergebnisses 1e. Bei dem Unterscheidungsergebnis 1e handelt es sich um 1 Bit-Signal pro Block, welches '1' ist, wenn D > L oder D = 64, oder in anderen Fällen '0' ist.
- Ein Bezugszeichen 19 bezeichnet einen Halteabschnitt für komprimierte Daten zum vorübergehenden Halten CG-komprimierter Daten zu Zwecken der Synchronisation, und zum dann, wenn ein Signal 1h '1' ist, Ausgeben komprimierter Daten. Bei dem Signal 1h handelt es sich um ein 1 Bit-Signal pro Block, welches '1' ist, wenn das Signal 1e '0' und das Signal 1d '1' sind, oder welches in anderen Fällen '0' ist.
- Ein Bezugszeichen 20 bezeichnet eine Abschnittsteuereinrichtung zum Empfangen CG-komprimierter Daten von dem Halteabschnitt für komprimierte Daten 19 und in viele Stufen unterteilter komprimierter Daten von dem ADCT-Abschnitt 14, und Steuern von Speicheradressen zum Speichern dieser Daten in einem Kompressionsspeicher 22. Ein Bezugszeichen 21 bezeichnet eine Segmentinformationstabelle zum Speichern von Segmentinformationen, die geteilte Bereiche des Kompressionsspeichers 22 anzeigen, d. h. Speichern der Schreibadressen komprimierter Daten.
- Ein Bezugszeichen 22 bezeichnet einen Kompressionsspeicher der aus einer Vielzahl kleiner Segmente besteht, zum Speichern von von der Abschnittsteuereinrichtung 20 ausgegebenen komprimierten Daten an vorgegebenen Adressen.
- Ein Bezugszeichen 23 bezeichnet ein Blockabbildungsspeicher zum Speichern der Pixeltypen in einem Block angebenden Signale 1h (1 Bit pro Block).
- Ein Bezugszeichen 24 bezeichnet einen Steuerabschnitt zum Steuern des Betriebszeitverhaltens der vorstehend erwähnten jeweiligen Abschnitte (z. B. synchronen Steuern von Blocksignalen).
- Mit der vorstehenden Anordnung werden die geteilten ADCTkomprimierten Daten und CG-komprimierten Daten in dem Kompressionsspeicher 22 gespeichert, und werden dann, wenn die Speicherkapazität während der Kompressionsverarbeitung knapp wird, neue komprimierte Daten über Daten in der am wenigsten wichtigen Stufe ADGT-komprimierter Daten reihum unter Bezugnahme auf die Segmentinformationstabelle geschrieben, wodurch eine gleichbleibende Speichermenge erreicht wird.
- Fig. 39 ist ein detailliertes Blockdiagramm des Pixeldatenersetzungsabschnittes 17.
- Der Pixeldatenersetzungsabschnitt 17 vergleicht jeden Pixel in der zugeführten Pixeldatengruppe 1a aus dem Raster-Block- Umwandlungsabschnitt 11 mit vorbestimmten Pixeldaten a. Wenn die beiden Daten mit einander übereinstimmen, ersetzt der Abschnitt 17 die entsprechenden Pixeldaten durch vorbestimmte Pixeldaten β. Wenn das Pixeltypsignal 1b '1' ist, ersetzt der Abschnitt 17 den Pixel durch die Pixeldaten a.
- Bei der Verarbeitung zum Ersetzen aller der Pixeltypinformation '1' (d. h. Pixeln natürlicher Bilder) entsprechender Pixel durch Pixeldaten a kann verhindert werden, dass die CGkomprimierte Datenmenge D eines beide Pixeltypen A und B enthaltenden Bildes vergrößert wird, und können gleichzeitig die Pixeltypinformationen in komprimierte Daten eingefügt werden. Aus diesem Grund beeinflusst, obwohl ein geringfügiger Fehler auftritt, d. h. Daten des Pixeltyps B mit dem Wert der Pixeldaten a den Wert der Pixeldaten β haben, ein solcher Fehler die Bildqualität nicht. In diesem Ausführungsbeispiel werden a = {127, 127, 127} und B = {128, 128, 128} festgelegt. Die Erfindung ist jedoch nicht hierauf beschränkt.
- Fig. 40 ist ein detailliertes Blockdiagramm des reversiblen Kompressionsabschnittes 18. Die Grundanordnung in Fig. 40 ist im wesentlichen die selbe wie die in Fig. 28, mit der Ausnahme, dass in Fig. 40 vier Zwischenspeicher zum Speichern von Farbdaten und eine Bereichunterscheidungseinheit 1214 angeordnet sind.
- Ein Bezugszeichen 1201 bezeichnet eine Bilddatensortiereinheit zum Sortieren von Pixeldaten aus dem Pixeldatenersetzungsabschnitt 17 in einer in beispielsweise Fig. 41 gezeigten Reihenfolge.
- Ein Bezugszeichen 1202 bezeichnet eine erste Zwischenspeichereinheit zum Halten von Pixeldaten (24 Bit) von der Bilddatensortiereinheit 1201. Bezugszeichen 1203 bis 1205 bezeichnen zweite bis vierte Zwischenspeichereinheiten zum Halten von von der ersten Zwischenspeichereinheit 1202 ausgegebenen Pixeldaten (24 Bit).
- Ein Bezugszeichen 1206 bezeichnet eine erste Vergleichseinheit zum Vergleichen von Pixeldaten 2c aus der Bilddatensortiereinheit 1201 mit in der Zwischenspeichereinheit 1202 gehaltenen Pixeldaten und Ausgeben eines Signals 2a, welches '0' ist, wenn die beiden Daten zu einander gleich sind; und welches '1' ist, wenn die beiden Daten von einander verschieden sind.
- Bezugszeichen 1207 bis 1209 bezeichnen zweite bis vierte Vergleichseinheiten zum jeweiligen Vergleichen von Pixeldaten aus der Bilddatensortiereinheit 1201 mit in den zweiten bis vierten Zwischenspeichereinheiten 1203 bis 1205 gehaltenen Pixeldaten, und Ausgeben von '0', wenn die beiden Daten zu einander gleich sind; und von '1', wenn die beiden Daten von einander verschieden sind.
- Ein Bezugszeichen 1210 bezeichnet einen Dekodierer zum Empfangen der Vergleichsergebnisse von der zweiten, der dritten und der vierten Vergleichseinheit 1207, 1208 und 1209, und Ausgeben eines 2 Bit-Signals 2b. Es wird angemerkt, dass das Signal 2b '00' ist, wenn die zweite Vergleichseinheit 1207 eine Übereinstimmung erfasst; 'O1' ist, wenn die dritte Vergleichseinheit 1208 einen Übereinstimmung erfasst; '10' ist, wenn die vierte Vergleichseinheit 1209 eine Übereinstimmung erfasst; und '11' ist, wenn keine der Vergleichseinheiten eine Übereinstimmung erfasst.
- Ein Bezugszeichen 1211 bezeichnet einen Wähler zum Auswählen und Ausgeben des Vergleichsergebnisses 2a von der ersten Vergleichseinheit 1206, des Signals 2b von dem Dekodierer 1210, oder von der Bilddatensortiereinheit 1201 ausgegebenen Pixeldaten 2c.
- Ein Bezugszeichen 1212 bezeichnet eine Steuereinheit zum Empfangen der Signale 2a und 2b, Ausgeben von Schreibsignalen für die zweite, die dritte und die vierte Zwischenspeichereinheit 1203, 1204, und 1205, und Steuern des Wählers 1211. Wenn die Beziehung zwischen den Eingängen 2a und 2b und den Schreibsignalen 2d, 2e und 2f durch "2a, 2b: 2d, 2e, 2f" ausgedrückt wird, wird dann, wenn "0, **. 0, 0, 0", d. h. das Signal 2a ist '0', keine der Zwischenspeichereinheiten neu geschrieben. Bei "1, 00. 1, 0, 0", d. h. 2a = '1' und 2b - '00', wird das Schreibsignal 2d für die zweite Zwischenspeichereinheit 1203 auf '1' gesetzt; bei "1, 01, 0, 1, 0", d. h. 2a = '1' und 2b = '01', wird das Schreibsignal 2e für die dritte Zwischenspeichereinheit 1204 auf '1' gesetzt; bei "1, 10. 0, 0, 1", d. h. 2a = '1' und 2b = '10', wird das Schreibsignal 2f für die vierte Zwischenspeichereinheit 1205 auf '1' gesetzt; und bei 2a = '1' und 2b = '11' wird das Schreibsignal 2f für die Zwischenspeichereinheit, die die ältesten Farbdaten hält, auf '1' gesetzt.
- Ein Bezugszeichen 1213 bezeichnet eine Sicherungseinheit zum Sichern der Inhalte der ersten bis vierten Zwischenspeichereinheiten 1202 bis 1205 vor der Verarbeitung, und zum dann, wenn das Unterscheidungsergebnis "Bereich 2" nach der Verarbeitung anzeigt, Wiederherstellen von Daten vor der Verarbeitung in den ersten bis vierten Zwischenspeichereinheiten 1202 bis 1205.
- Ein Bezugszeichen 1214 bezeichnet eine Bereichunterscheidungseinheit zum Empfangen der Signale 2a und 2b und Ausgeben eines Bereichunterscheidungssignals le (0: Bereich 1, 1: Bereich 2).
- Wenn Ausgabepixeldaten durch den reversiblen Kompressionsabschnitt 18 mit der vorstehend erwähnten Anordnung komprimiert werden, können die komprimierten Daten expandiert werden, ohne irgendwelche Bit zu verändern.
- Fig. 42 ist ein detailliertes Blockdiagramm der in Fig. 40 gezeigten Bereichunterscheidungseinheit 1214.
- Ein Bezugszeichen 1301 bezeichnet einen Zähler zum Zählen der Häufigkeit, mit der das Signal 2a = '1' wird (d. h. der Anzahl von Farbänderungspunkten). Ein Bezugszeichen 1302 bezeichnet einen Zähler zum Zählen der Häufigkeit, mit der das Signal 2a '1' und das Signal 2b = '11' werden (d. h. die Häufigkeit des Erscheinens von Farben, die in keiner der Zwischenspeichereinheiten gehalten werden).
- Ein Bezugszeichen 1303 bezeichnet einen Multiplizierer zum Multiplizieren der Ausgabe des Zählers 1301 mit der Anzahl von Bit (2) des Signals 2b. Ein Bezugszeichen 1304 bezeichnet einen Multiplizierer zum Multiplizieren der Ausgabe des Zählers 1302 mit der Anzahl von Bit (24) des Signals 2c.
- Ein Bezugszeichen 1305 bezeichnet einen Addierer zum Addieren von Farbänderungspunktinformationen (64 Bit) und der Ausgaben der Multiplizierer 1303 und 1304, und Ausgeben der Anzahl von Bit (komprimierte Datenmenge) D, die schliesslich für den entsprechenden Block erforderlich sind. Ein Bezugszeichen 1306 bezeichnet einen Addierer zum Addieren der Ausgabe eines Puffers 1307 und einer verbleibenden Speichermenge des Blockes (d. h. Berechnen eines Grundbetrages S als eine insgesamt verbleibende Speichermenge verarbeiteter Blöcke). Das Bezugszeichen 1307 bezeichnet einen Puffer zum Aktualisieren der Ausgabe des Addierers 1306, wenn ein Signal 3d '1' ist. Das Signal 3d ist '1', wenn ein Signal 3a '0' (d. h. D ≤ L) ist und das Signal 1d '1' ist (d. h., ein Block beinhaltet zumindest einen Pixel mit dem Pixeltyp B).
- Ein Bezugszeichen 1308 bezeichnet einen Wähler zum Auswählen und Ausgeben eines konstanten Wertes C, wenn das Signal 1c aus dem Pixeltypinformationsanalyseabschnitt 15 '0' ist, oder eines konstanten Wertes C', wenn das Signal 1c '1' ist.
- Ein Bezugszeichen 1309 bezeichnet einen Subtrahierer zum Subtrahieren der komprimierten Datenmenge D als der Ausgabe des Addierers 1305 von der Ausgabe des Wählers 1308.
- Ein Bezugszeichen 1310 bezeichnet einen Wähler zum Auswählen der Ausgabe des Subtrahierers 1309, wenn das Signal 3b = '0' ist, oder einer Konstante (C - R), wenn 3b = '1' ist.
- Ein Bezugszeichen 1311 bezeichnet einen Addierer zum Addieren der Ausgabe des Subtrahierers 1309 und des Grundbetrages S als der Ausgabe des Puffers 1307.
- Ein Bezugszeichen 1312 bezeichnet einen Vergleicher zum Vergleichen der Ausgabe des Addierers 1311 mit 0 und Ausgeben eines "Bereich 1" repräsentierenden Signals 3a = '0', wenn die Ausgabe des Addierers 1311 0 oder größer ist, oder eines "Bereich 2" repräsentierenden Signals 3a = '1', wenn die Ausgabe des Addierers 1311 kleiner als 0 ist.
- Ein Bezugszeichen 1313 bezeichnet einen Vergleicher zum Vergleichen der komprimierten Datenmenge D aus dem Addierer 1305 mit 64 und Ausgeben eines Signals 3b = '1', wenn eine Übereinstimmung zwischen den beiden Daten gefunden wird, oder eines Signals 3b = '0', wenn eine Nichtübereinstimmung zwischen den beiden Daten gefunden wird.
- Das Bereichunterscheidungssignal 1e wird durch logisches ODER-Verknüpfen des Signals 3a aus dem Vergleicher 1312 und des Signals 3b aus dem Vergleicher 1313 gebildet.
- Der dem Block gegebene Grenzwert L (Grundbetrag S + kritischer Wert C oder C' des Blockes) wird mit der komprimierten Datenmenge D verglichen, und wenn D > L ist, wird das Signal le = '1' gesetzt, um die ADCT-Kompression auszuwählen, um schliesslich ein Überlaufen einer Speichermenge zu vermeiden. Wenn D = 64 (d. h. ein flaches Bild, dessen 64 Pixeldaten den selben Wert haben), wird das Signal 1e = '1' festgelegt. Auch dann, wenn ein flaches Bild ADCT-komprimiert wird, ist die Verschlechterung nicht auffallend, so dass ein hohes Kompressionsverhältnis erhalten werden kann, obwohl sich Farbdaten geringfügig ändern. In diesem Fall wird dann, wenn ein flaches Bild aus einem anderen Grund als dem, dass alle Pixel den Pixeltyp A haben, erzeugt wird, der Grundbetrag S mit einem Wert C - R addiert, der durch Subtrahieren einer experimentell ermittelten komprimierten Datenmenge bei der ADCT- Kompression eines flachen Bildes von dem konstanten Wert C erhalten wurde.
- In anderen Fällen wird das Signal 1e = '0' festgelegt, und wird der Grundbetrag S mit einem Wert addiert, der durch Subtrahieren der komprimierten Datenmenge D von der Konstanten C oder C' erhalten wurde. Wenn alle Pixel in einem Block den Pixeltyp B haben, wird die Konstante C ausgewählt; andernfalls wird die Konstante C' ausgewählt.
- Nachstehend wird die Datenkompressionsverarbeitung unter Bezugnahme auf die in Fig. 43 bis 45 gezeigten Ablaufdiagramme beschrieben.
- In der folgenden Beschreibung wird angenommen, dass Farbdaten, die in der ersten Zwischenspeichereinheit 1202 nach dem jüngsten Aktualisierungsvorgang (nachstehend als "letzte Aktualisierung" bezeichnet) gehalten werden, durch "next" repräsentiert werden, und dass Farbdaten, die in den zweiten bis vierten Zwischenspeichereinheiten 1203 bis 1205 vor der letzten Aktualisierung gehalten worden sind, jeweils durch "former[0]", "former[1]" und "former[2]" repräsentiert werden. Darüber hinaus wird angenommen, dass von der Bilddatensortiereinheit 1201 ausgegebene Pixeldaten durch "present" repräsentiert werden. Dieses "next", "former[0-2]" und "present" sind Daten in dem NTSC-RGB-Format und umfassen R-, G- bzw. B-Daten.
- In diesem Ausführungsbeispiel wird ein Kompressionsverhältnis von 1/10 als Sollkompressionsverhältnis festgelegt, und wird ein einem Block gegebener fester Wert C als (64 · 24)/10 153 Bit angenommen. Wenn ein Block Pixel beider Pixeltypen Pixel A und B einschließt, muss der Block gleichzeitig mit der CG-Kompressionsverarbeitung der ADCT-Kompressionsverarbeitung unterworfen werden. Aus diesem Grund muss der Speicherbereich für die ADCT-komprimierte Datenmenge berücksichtigt werden. Darüber hinaus wird eine komprimierte Datenmenge, die experimentell bei der ADCT-Verarbeitung eines Blockes festgelegt wurde, dessen 64 Pixel die selben Daten haben (flacher Block), durch R repräsentiert.
- Fig. 43 ist ein Ablaufdiagramm, das eine Kompressionsverarbeitungssequenz der in Fig. 37 gezeigten Datenkompressionsvorrichtung zeigt.
- In Schritt S41 wird der Grundbetrag S auf 128 zurückgesetzt. Der Grundbetrag S wird nicht auf 0 zurückgesetzt, um mit einem Fall zurechtzukommen, in dem eine Vielzahl neuer Farben in dem ersten Block erscheint. Das heisst, dass bei dem CG- Kompressionsverfahren dieses Ausführungsbeispiels Informationen, die Farbänderungspunkte repräsentieren (Schritte S76 und S91), 64 Bit pro Block erfordern, Zwischenspeicherinformationen (Schritte S96, S98, S100 und SiO&sub2;) an einem Farbänderungspunkt 2 Bit erfordern, und dann, wenn eine neue Farbe, die in keiner der Zwischenspeichereinheiten gehalten wird, erscheint, 24 Bit erforderlich sind, um die Farbdaten direkt auszugeben (Schritt S103). Aus diesem Grund erfordert das Erscheinen einer neuen Farbe in einem Block (C - 64)/24, und wenn C = 153 ist, folgt (153 - 64)/24 = 3,7, so dass die Anzahl neuer Farben auf 3 beschränkt ist. Daher ist anfänglich ein bestimmter Grundbetrag S erforderlich.
- In Schritt S42 werden die vier Zwischenspeichereinheiten des reversiblen Kompressionsabschnittes 18 zurückgesetzt. In diesem Ausführungsbeispiel wird angenommen, dass ein normales Bild ein schwarzes Bild auf einem weissen Hintergrund ist, und Rücksetzdaten für die Zwischenspeichereinheiten wie folgt festgelegt sind:
- next = {255, 255, 255}, former[1] = {255, 0, 0}, former[2] = {0, 0, 255}.
- Wenn die Farbe von "present" nicht mit Farbdaten in irgendeiner der Zwischenspeichereinheiten übereinstimmt, werden "turn", turn p" und "turn pp" als Zwischenspeicher-Farbdaten- Neuschreibinformationen jeweils auf 0, 1 und 2 zurückgesetzt, um den Inhalt der Zwischenspeichereinheit, die die ältesten Farbdaten hält, neu zu schreiben.
- In Schritt S43 werden die Inhalte der vier Zwischenspeichereinheiteh (next, former[0-2]) des reversiblen Kompressionsabschnittes 18 und die Farbdaten-Neuschreibinformationen (turn, turnp, turn pp) als Sicherungsdaten gespeichert.
- In Schritt S44 wird auf 64 Bit-Informationen in dem Bitmap- Speicher Bezug genommen, und falls 64 Bit sämtlich '1' sind (d. h. alle Pixel natürlicher Bilder), schreitet der Ablauf zu Schritt S45 fort; falls 64 Bit sämtlich '0' sind (d. h. alle Pixeln sind andere als Pixel natürlicher Bilder), schreitet der Ablauf zu Schritt S56 fort; falls 64 Bit sowohl '0' als auch '1' beinhalten, schreitet der Ablauf zu Schritt S47 fort.
- In Schritt S45 wird ermittelt, dass der Block ein Bereich eines natürlichen Bildes ist, und wird ein "Bereich 2" repräsentierendes Signal '1' an den Blockabbildungsspeicher ausgegeben.
- In Schritt S46 werden Daten für einen Block, die durch den Verzögerungsabschnitt 12 gehalten werden, durch den Pixeldateninterpolationsabschnitt 13 interpoliert, und die interpoliert Daten werden der ADCT-Kompressionsverarbeitung unterworfen, wodurch komprimierte Daten ausgegeben werden.
- Andererseits werden in Schritt S47 Daten, die durch Ersetzen von Daten 1a für einen durch den Raster-Block-Umwandlungsabschnitt 11 gehaltenen Block unter Bezugnahme auf Pixeltypsignale 1b erhalten wurden, der CG-Kompressionsverarbeitung unterworfen, werden komprimierte Daten in dem Halteabschnitt 19 für komprimierten Daten gespeichert, und wird die komprimierte Datenmenge D zu dieser Zeit berechnet.
- In Schritt S48 wird geprüft, ob die komprimierte Datenmenge D gleich oder kleiner als der Grenzwert L < = Grundbetrag S + fester Wert C' für einen beide Pixeltypen A und B enthaltenden Block) ist. Falls (C' + 5) D, wird "Bereich 1" ermittelt, und der Ablauf schreitet zu Schritt S49 fort; falls (C' + S) < D, wird "Bereich 2" ermittelt, und der Ablauf schreitet zu Schritt S53 fort.
- In Schritt S49 wird ein "Bereich 1" repräsentierendes Signal '0' an den Blockabbildungsspeicher ausgegeben. In Schritt S50 werden komprimierte Daten aus dem Halteabschnitt 19 für komprimierte Daten ausgegeben. In Schritt S51 wird (C' - D) zu dem Grundbetrag S hinzugefügt. In Schritt S52 werden die durch den Verzögerungsabschnitt 12 gehaltenen Daten für einen Block von dem Pixeldateninterpolationsabschnitt 13 interpoliert, und die interpolierten Daten werden der ADCT-Kompressionsverarbeitung unterworfen, wodurch komprimierte Daten ausgegeben werden.
- Andererseits wird in Schritt S53 ein "Bereich 2" repräsentierendes Signal '1' an den Blockabbildungsspeicher ausgegeben. In Schritt S54 werden die durch den Verzögerungsabschnitt 12 gehaltenen Daten für einen Block durch den Pixeldateninterpolationsabschnitt 13 interpoliert, und die interpolierten Daten werden der ADCT-Kompressionsverarbeitung unterworfen, wodurch komprimierte Daten ausgegeben werden. In Schritt S55 werden die entsprechenden Sicherungsdaten in den vier Zwischenspeichereinheiten (next, former[0-2]) des reversiblen Kompressionsabschnittes 18 und den Zwischenspeicher-Neuschreibinformationen (turn, turn p, turn pp) substituiert. Im Einzelnen werden Informationen, die bei der Berechnung der CG-komprimierten Datenmenge D des Blocks neu geschrieben wurden, in einen Zustand vor der Verarbeitung des Blocks wiederhergestellt.
- Andererseits werden in Schritt S56 Daten, die durch Ersetzen von Daten 1a für einen durch den Raster-Block-Umwandlungsabschnitt 11 unter Bezugnahme auf Pixeltypsignall 1b erhalten wurden, der CG-Kompressionsverarbeitung unterworfen, werden komprimierte Daten in dem Halteabschnitt 19 für komprimierte Daten gespeichert, und wird die komprimierte Datenmenge D zu dieser Zeit berechnet. In Schritt S57 wird die komprimierte Datenmenge D mit 64 verglichen. Falls eine Übereinstimmung zwischen den beiden Werten gefunden wird, wird der Block als ein flaches Bild bestimmt, ist die ADCT-Kompression wirksam, und schreitet der Ablauf zu Schritt S65 fort; andernfalls schreitet der Ablauf zu Schritt S58 fort.
- In Schritt S58 wird geprüft, ob die komprimierte Datenmenge D gleich oder kleiner als der Grenzwert L ( = Grundbetrag S + fester Wert C) ist. Falls (C + S) ≥ D, wird "Bereich 1" ermittelt, und der Ablauf schreitet zu Schritt S59 fort; falls (C + S) < D, wird "Bereich 2" ermittelt, und der Ablauf schreitet zu Schritt S62 fort.
- In Schritt S59 wird ein "Bereich 1" repräsentierendes Signal '0' an den Blockabbildungsspeicher ausgegeben. In Schritt S60 werden komprimierte Daten aus dem Halteabschnitt 19 für komprimierte Daten ausgegeben. In Schritt S61 wird (C - D) zu dem Grundbetrag S addiert.
- Andererseits wird in Schritt S62 ein "Bereich 2" repräsentierendes Signal '1' an den Blockabbildungsspeicher ausgegeben. In Schritt S63 werden die durch den Verzögerungsabschnitt 12 gehaltenen Daten für einen Block durch den Pixeldateninterpolationsabschnitt 13 interpoliert, und die interpolierten Daten werden der ADCT-Kompressionsverarbeitung unterworfen, wodurch komprimierte Daten ausgegeben werden. In Schritt S64 werden die entsprechenden Sicherungsdaten in den vier Zwischenspeichereinheiten (next, former[0-2]) des reversiblen Kompressionsabschnittes 18 und den Zwischenspeicher-Neuschreibinformationen (turn, turnp, turn pp) substituiert. Im Einzelnen werden Informationen, die bei der Berechnung der CG-komprimierten Datenmenge D des Blockes neu geschrieben wurden, in einen Zustand vor der Verarbeitung des Blockes wiederhergestellt.
- Andererseits wird in Schritt S65 ein "Bereich 1" repräsentierendes Signal '0' an den Blockabbildungsspeicher ausgegeben. In Schritt S66 wird (C - R) zu dem Grundbetrag S addiert. In Schritt S67 werden die durch den Verzögerungsabschnitt 12 gehaltenen Daten für einen Block durch den Pixeldateninterpolationsabschnitt 13 interpoliert, und die interpolierten Daten werden der ADCT-Kompressionsverarbeitung unterworfen, wodurch komprimierte Daten ausgegeben werden. In Schritt S68 werden die entsprechenden Sicherungsdaten in den vier Zwischenspeichereinheiten (next, former[0-2]) des reversiblen Kompressionsabschnittes 18 und den Zwischenspeicher-Neuschreibinformationen (turn, turn p, turn pp) substituiert. Im Einzelnen werden Informationen, die bei der Berechnung der CG-komprimierten Datenmenge D des Blockes neu geschrieben wurden, in einen Zustand vor der Verarbeitung des Blockes wiederhergestellt.
- Nachfolgend wird in Schritt S69 geprüft, ob alle Blöcke abgeschlossen sind. Falls NEIN in Schritt S69, kehrt der Ablauf zu Schritt S43 zurück, um die vorstehend erwähnte Verarbeitung zu wiederholen; andernfalls wird die Verarbeitung beendet.
- Der reversible Kompressionsabschnitt 18 (Schritte S47 und S56) wird nachstehend unter Bezugnahme auf die Ablaufdiagramme von Fig. 44 und 45 beschrieben.
- In Schritt S71 werden "count2" zum Zählen von Farbänderungspunkten und "count3" zum Zählen der Häufigkeit eines Falles, in dem Daten "present" in keiner der vier Zwischenspeichereinheiten gehalten werden, auf 0 zurückgesetzt. In Schritt S72 wird ein Zähler i zum Zählen von 64 Pixeln in einem Block auf 0 zurückgesetzt. In Schritt S73 wird geprüft, ob ein Pixeltyp "bitmap(i)" an der i-ten Position von Pixeltypinformationen 1b '0' (d. h. ein computer erzeugter Pixel) ist. Falls bitmap(i) = '0', schreitet der Ablauf zu Schritt S74 fort; falls bitmap(i) - '1' (Pixel eines natürlichen Bildes), schreitet der Ablauf zu Schritt S77 fort.
- Falls in Schritt S74 ermittelt wird, dass ein der i-ten Position entsprechender Pixel aus dem Raster-Block-Umwandlungsabschnitt 11 mit Farbdaten a, die einen Pixel eines natürlichen Bildes repräsentieren, übereinstimmt (Pix(i) = a{127, 127, 127}), schreitet der Ablauf zu Schritt S75 fort, und werden Farbdaten β = {128, 128, 128} in "present", repräsentierend die gegenwärtigen Farbdaten, substituiert. Falls eine Nichtübereinstimmung zwischen den beiden Daten gefunden wird, schreitet der Ablauf zu Schritt S76 fort, und ein Pixelwert Pix(i) an der i-ten Position aus dem Raster-Block-Umwandlungsabschnitt 11 wird substituiert.
- Andererseits wird in Schritt S77 ermittelt, dass der Pixel ein Pixel eines natürlichen Bildes ist, und wird a = {127, 127, 127} in "present" substituiert.
- Darauffolgend wird in Schritt S78 geprüft, ob die gegenwärtigen Farbdaten "present" mit den unmittelbar vorangehenden Farbdaten "next" übereinstimmen. Falls JA in Schritt S78, schreitet der Ablauf zu Schritt S79 fort; andernfalls schreitet der Ablauf zu dem in Fig. 45 gezeigten Schritt S91 fort.
- In Schritt S79 wird ermittelt, dass die Farbe unverändert belassen ist, und wird '0' an die Steuereinheit 1212 ausgegeben. In Schritt S80 wird "present" in "next" substituiert. In Schritt S81 wird der Zähler i inkrementiert. In Schritt S82 wird geprüft, ob i s 64, d. h. ob nicht verarbeitete Pixel verbleiben. Falls solche Pixeln verbleiben, kehrt der Ablauf zu Schritt S73 zurück; falls i > 64, wird ermittelt, dass alle Pixel abgeschlossen sind, und der Ablauf schreitet zu Schritt S83 fort.
- In Schritt S83 wird die komprimierte Datenmenge D des Blockes berechnet, und die Verarbeitung wird beendet. Es wird angemerkt, dass die komprimierte Datenmenge D berechnet werden kann durch:
- D = 64 + 2 · count2 + 24 · count3
- Fig. 45 zeigt die Verarbeitung, die ausgeführt wird, wenn in Schritt S78 ermittelt wird, dass "present" nicht mit "next" übereinstimmt, d. h. die Farbe sich geändert hat.
- In Schritt S91 wird ermittelt, dass sich die Farbe geändert hat, und '1' wird an die Steuereinheit 1212 ausgegeben. In Schritt S92 wird "count2" inkrementiert. In Schritt S93 wird geprüft, ob die die als letztes aktualisierte Zwischenspeichereinheit repräsentierende Zahl "turn" gleich der die vorangehend aktualisierte Zwischenspeichereinheit repräsentierende Zahl "turnp" ist. Wenn die beiden Werte zu einander gleich sind, springt der Ablauf zu Schritt S95; andernfalls schreitet der Ablauf zu Schritt S94 fort. In Schritt S94 wird "turnp" in "turn pp" substituiert, und wird "turn" in "turnp" substituiert. Diese Verarbeitung dient dazu, zu verhindern, dass "turn" und "turnp" den selben Wert haben.
- In Schritt S95 wird der gegenwärtige Wert "present" mit den Inhalten der zweiten bis vierten Zwischenspeichereinheiten 1203 bis 1205 (former[0-2]) verglichen. Falls present = former[0], schreitet der Ablauf zu Schritt S96 fort; falls present = former[1], schreitet der Ablauf zu Schritt S98 fort; falls present = former[2], schreitet der Ablauf zu Schritt 5100 fort; falls "present" zu keinen von "former[0-2]" gleich ist, schreitet der Ablauf zu Schritt S102 fort.
- In Schritt S96 wird ermittelt, dass der gegenwärtige Wert gleich dem Inhalt der zweiten Zwischenspeichereinheit 1203 ist, und '00' wird an die Steuereinheit 1212 ausgegeben. In Schritt S97 wird eine Zahl '0' von der zweiten Zwischenspeichereinheit 1203 in "turn" als eine neu zu schreibende Zwischenspeichernummer substituiert.
- In Schritt S98 wird ermittelt, dass der gegenwärtige Wert gleich dem Inhalt der dritten Zwischenspeichereinheit 1204 ist, und '01' wird an die Steuereinheit 1212 ausgegeben. In Schritt S99 wird eine Zahl '1' von der dritten Zwischenspeichereinheit 1204 in "turn" als eine neu zu schreibende Zwischenspeichernummer substituiert.
- In Schritt S100 wird ermittelt, dass. der gegenwärtige Wert gleich dem Inhalt der vierten Zwischenspeichereinheit 1205 ist, und '10' wird an die Steuereinheit 1212 ausgegeben. In Schritt Si01 wird eine Zahl '2' von der vierten Zwischenspeichereinheit 1205 in "turn" als eine neu zu schreibende Zwischenspeichernummer substituiert.
- In Schritt S102 wird ermittelt, dass der gegenwärtige Wert von jeder der Zwischenspeichereinheiten verschieden ist, und '11' wird an die Steuereinheit 1212 ausgegeben. In Schritt 5103 wird der gegenwärtige Wert "present" ausgegeben. In Schritt S104 wird der Zähler "count3" zum Zählen eines Falles, in dem sich "present" von allen der ersten bis vierten Zwischenspeichereinheiten 1202 bis 1205 unterscheidet, inkrementiert. In Schritt S105 wird eine von "turn p" und "turn pp" verschiedene Zwischenspeichernummer j gesucht, und das gesuchte j wird in "turn" substituiert. Diese Verarbeitung dient dazu, zu verhindern, dass "turn p" und "turn pp" den selben Wert in Schritten 593 und 594 haben, und in diesem Fall wird eine der Zwischenspeichernummern 0, 1 oder 2 gesucht.
- Darauffolgend wird "next" in "former[next]" in Schritt S106 substituiert, und der Ablauf kehrt zu dem in Fig. 44 gezeigten Schritt S80 zurück.
- Fig. 46 ist ein Blockdiagramm einer Bildexpansionsvorrichtung zum Expandieren von Bilddaten, die durch die vorstehend erwähnte Verarbeitung komprimiert wurden.
- Eine Segmentsteuereinrichtung 20 verteilt in einem Kompressionsspeicher 22 gespeicherte komprimierte Daten unter Bezugnahme auf eine Segmentinformationstabelle 21 an einen ADCT- Expansionsabschnitt 31 und einen reversiblen Expansionsabschnitt 33.
- Ein Bezugszeichen 31 bezeichnet einen ADCT-Expansionsabschnitt zum Expandieren und Ausgeben von ADCT-komprimierten Daten. Ein Bezugszeichen 32 bezeichnet einen Puffer zum vorübergehenden Halten von durch den ADCT-Expansionsabschnitt komprimierten Bilddaten.
- Ein Bezugszeichen 33 bezeichnet einen reversiblen Expansionsabschnitt zum Expandieren und Ausgeben CG-komprimierter Daten. Ein Bezugszeichen 34 bezeichnet einen Puffer zum vorübergehenden Halten von durch den reversiblen Expansionsabschnitt 33 expandierten Bilddaten.
- Ein Bezugszeichen 35 bezeichnet einen Bitmap-Speicher zum Speichern von Daten, die durch logisches ODER-Verknüpfen von 1 Bit-Informationen 11a aus einem Blockabbildungsspeicher 23 und durch den reversiblen Expansionsabschnitt 33 analysierten Pixeltypinformationen 11b erhalten wurden.
- Ein Bezugszeichen 36 bezeichnet einen Wähler zum Auswählen und Ausgeben der Ausgabe des Puffers 32 oder der Ausgabe des Puffers 34 in Einheiten von Pixeln in Übereinstimmung mit einer Signal 11c von dem Bitmap-Speicher 35.
- Ein Bezugszeichen 37 bezeichnet einen Block-Raster- Umwandlungsabschnitt zum Speichern von durch den Wähler 36 ausgewählten Bilddaten und Erzeugen eines zusammengesetzten Bildes.
- Fig. 47 ist ein Ablaufdiagramm, das die Expansionsverarbeitung zeigt.
- In Schritt S1401 werden "next" und "former[0-2]" (die Inhalte der ersten bis vierten Zwischenspeichereinheiten 1202 bis 1205) auf dieselben Werte wie die jenigen in der Kompressionsverarbeitung zurückgesetzt. Zur gleichen Zeit werden die Zwischenspeicher-Neuschreibnummern ebenfalls auf die selben Werte wie die jenigen in der Kompressionsverarbeitung zurückgesetzt. Darüber hinaus wird 0 in "bitmap[-1]" als Bitmapinformation des letzten Pixel in einem vorangehend verarbeiteten Block gesetzt.
- In Schritt S1402 werden Bereichinformationen des Blockes aus dem Blockabbildungsspeicher 23 ausgelesen und in "mapdata" substituiert. In Schritt S1403 wird analysiert, ob "mapdata" '0' ("Bereich 1") oder '1' ("Bereich 2") ist. Falle "Bereich 1" ermittelt wird, schreitet der Ablauf zu Schritt S1404 fort; falls "Bereich 2" ermittelt wird, schreitet der Ablauf zu Schritt S1409 fort.
- In Schritt S1404 werden, da "Bereich 1" ermittelt ist, CGkomprimierte Daten von dem Kompressionsspeicher 22 unter der Steuerung der Segmentsteuereinrichtung 20 empfangen, werden die komprimierten Daten expandiert, und werden expandierte Daten ausgegeben. Darüber hinaus werden die Pixeltypinformationen 11b analysiert und in den Bitmap-Speicher 35 geschrieben. In Schritt S1405 werden Pixeldaten CG DATA, die durch Expandieren der CG-komprimierten Daten erhalten wurden, in einen Speicherabschnitt (Raster-Block-Umwandlungsabschnitt 37) geschrieben.
- In Schritt S1406 wird geprüft, ob der Inhalt des Bitmap- Speichers 35 zumindest eine '1' beinhaltet. Falls JA in Schritt S1406, schreitet der Ablauf zu Schritt S1407 fort; andernfalls schreitet der Ablauf zu Schritt S1411 fort.
- Falls der Inhalt des Bitmap-Speichers 35 zumindest eine '1' beinhaltet, da der Block aus Daten, die durch CG-Komprimieren ersetzter Pixeldaten erhalten wurden, und Daten, die durch ADCT-Komprimieren interpolierter Pixeldaten erhalten wurden, besteht, werden ADCT-komprimierte Daten von dem Kompressionsspeicher 22 unter der Steuerung der Segmentsteuereinrichtung 20 empfangen und in Schritt S1407 ADCT-expandiert. In Schritt 51408 werden Pixeldaten ADCT DATA, die durch Expandieren der ADCT-komprimierten Daten erhalten wurden, an Pixelpositionen entsprechend dem Wert '1' in dem Bitmap-Speicher 35 auf dem Speicherabschnitt (Block-Raster-Umwandlungsabschnitt 37) überschrieben.
- Auf diese Art und Weise werden Pixeldaten CG DATA, die durch Expandieren CG-komprimierter Daten in Schritt S1404 erhalten wurden, an Pixelpositionen entsprechend dem Wert '0' in dem Bitmap-Speicher auf dem Block-Raster-Umwandlungsabschnitt 37 geschrieben, und werden Pixeldaten ADCT DATA, die durch Expandieren ADCT-komprimierter Daten in Schritt S1407 erhalten wurden, an Pixelpositionen entsprechend dem Wert '1' in dem Bitmap-Speicher 35 auf dem Block-Raster-Umwändlungsabschnitt 37 geschrieben.
- Andererseits wird in Schritt S1409 "Bereich 2" ermittelt, werden ADCT-komprimierte Daten von dem Kompressionsspeicher 22 unter der Steuerung der Segmentsteuereinrichtung 20 empfangen, werden die komprimierten Daten ADCT-expandiert, und werden expandierte Bilddaten ausgegeben. In Schritt S1410 werden Pixeldaten ADCT DATA, die durch Expandieren der ADCTkomprimierten Daten erhalten wurden, in den Speicherabschnitt (Block-Raster-Umwandlungsabschnitt 37) geschrieben.
- Darauffolgend wird in Schritt S1411 geprüft, ob alle komprimierten Daten expandiert sind. Falls nicht verarbeitete komprimierte Daten verbleiben, kehrt der Ablauf zu Schritt S1402 zurück; andernfalls wird die Verarbeitung beendet.
- Fig. 48 ist ein Ablaufdiagramm, das die Verarbeitung des reversiblen Expansionsabschnittes 33 zeigt (Schritt S1404). In Schritt S1501 wird ein Zähler i zum Zählen der Anzahl von Pixeln auf 0 zurückgesetzt. In Schritt S1502 werden 1 Bit- Daten (Bitmap-Informationen) von dem Kompressionsspeicher 22 empfangen und in "data1" substituiert. In Schritt S1503 wird geprüft, ob data1 = '0'. Falls data1 = '0', schreitet der Ablauf zu Schritt S1504 fort; falls data1 = '1', schreitet der Ablauf zu Schritt S1507 fort.
- In Schritt S1504 wird der Wert von Bitmap-Informationen "bitmap[i-1]" des unmittelbar vorangehenden Pixels i-1 geprüft. Falls bitmap[i-1] = '0', wird '0' in Bitmap-Informationen "bitmap[i]" eines interessierenden Pixels in Schritt S1506 substituiert; falls bitmap[i-1] = '1', wird '1' in "bitmap[i]" in Schritt S1505 substituiert, und danach schreitet der Ablauf zu Schritt S1521 fort. Es wird angemerkt, dass das selbe Ergebnis auch dann erhalten werden kann, wenn der Wert von "bitmap[i-1]" in Bitmap-Informationen "bitmap[i]" des interessierenden Pixels in Schritt S1504 substituiert wird.
- In Schritt S1507 wird geprüft, ob eine zuletzt neu geschriebene Zwischenspeichernummer "turn" gleich einer vorangehend geschriebenen Zwischenspeichernummer "turn p" ist. Falls die beiden Werte zu einander gleich sind, springt der Ablauf zu Schritt S1508; andernfalls wird "turn p" in "tumpp" substituiert, und wird "turn" in "turnp" in Schritt S1507' substituiert. Diese Verarbeitung dient dazu, zu verhindern, dass "turn" und "turn p" den selben Wert haben, und wird auch in der Kompressionsverarbeitung ausgeführt.
- In Schritt S1508 werden 2 Bit-Daten aus dem Kompressionsspeicher 22 in "data2" substituiert, und in Schritt S1509 wird "data2" analysiert. Falls data2 = '00', wird in Schritt S1510 0 in "turn" substituiert, um einen in "former[0]" (zweite Zwischenspeichereinheit 1203) gespeicherten Pixel auszugeben; falls data2 = 'O1', wird in Schritt S1511 l in "turn" substituiert, um einen in "former[1]" (dritte Zwischenspeichereinheit 1204) gespeicherten Pixel auszugeben; falls data2 = '10', wird in Schritt S1512 2 in "turn" substituiert, um einen in "former[2]" (vierte Zwischenspeichereinheit 1205) gespeicherten Pixel auszugeben. Danach schreitet der Ablauf zu Schritt S1513 fort. Falls data2 = '11', schreitet der Ablauf zu Schritt S1515 fort.
- In Schritt S1513 werden Pixeldaten in "next" (erste Zwischenspeichereinheit 1202) und Pixeldaten in "former[turn]" mit einander ausgetauscht, und in Schritt S1514 wird '0' in "bitmap[i]" substituiert.
- Andererseits wird dann, wenn ein auszugebender Pixel in keinem von "next" und "former[0-2]" vorhanden ist, in Schritt S1515 eine von "turnp" und "tumpp" verschiedene Zwischenspeichernummer j gesucht. Da die Verarbeitung zum Verhindern, dass "turnp" und "turn pp" den selben Wert haben, in Schritten S1507 und S1507' ausgeführt wird, wird in diesem Fall eine der Zwischenspeichernummern 0, 1 oder 2 ausgewählt. Die gesuchte Zwischenspeichernummer j wird in "turn" substituiert.
- In Schritt S1516 wird "next" in "former[turn]" substituiert. In Schritt S1517 werden 24 Bit-Daten (Pixeldaten) von dem Kompressionsspeicher 22 empfangen und in "next" substituiert. Falls in Schritt S1518 ermittelt wird, dass der Wert von "next" a ({127, 127, 127}) ist, schreitet der Ablauf zu Schritt S1519 fort; andernfalls schreitet der Ablauf zu Schritt S1520 fort. In Schritt S1519 wird '1' in "bitmap[i]" substituiert; in Schritt S1520 wird '0' in "bitmap[i]" substituiert.
- Darauffolgend werden, mit der vorstehend erwähnten Verarbeitung (Schritte S1502 bis S1520), da auszugebende Pixeldaten in jedem Fall in "next" gespeichert sind, die in "next" gespeicherten Pixeldaten in Schritt S1521 ausgegeben.
- In Schritt S1522 wird der Zähler i inkrementiert. In Schritt S1523 wird geprüft, ob die Verarbeitung von 64 Pixeln abgeschlossen ist. Falls NEIN in Schritt S1523, kehrt der Ablauf zu Schritt S1502 zurück; andernfalls schreitet der Ablauf zu Schritt S1524 fort.
- In Schritt S1524 wird "bitmap[63]" in "bitmap[-1]" substituiert. Dieser Schritt wird für die Verarbeitung der nächsten Verarbeitung ausgeführt, und danach wird die Verarbeitung beendet.
- Der ADCT-Abschnitt 14, der ADCT-Expansionsabschnitt 31, die Segmentsteuereinrichtung 20, die Segmentinformationstabelle 21 und der Kompressionsspeicher 22 werden nachstehend im Einzelnen beschrieben.
- Wie vorangehend in den sich auf den Stand der Technik beziehenden Absätzen beschrieben wurde, erlaubt die ADCT-Kompression die Einstellung der Datenmenge nach der Kompression. Zu diesem Zweck wird die Kompression durch Durchführen eines Vorabtastvorgangs ausgeführt, werden Parameter für die Kompression auf der Grundlage der komprimierten Datenmenge neu festgelegt, wird eine Neukompression ausgeführt, und müssen solche Betriebsabläufe wiederholt werden. Somit ist, da ein komprimierte Solldatenmenge in einer Versuch-und-Fehler-Art und Weise erreicht wird, eine sehr lange Zeit bis zum Ende der Kompression erforderlich.
- Folglich wird in diesem Ausführungsbeispiel das vorstehend erwähnte Problem wie folgt gelöst.
- Fig. 49 ist ein Blockdiagramm, das die detaillierte Anordnung des in Fig. 37 gezeigten ADCT-Abschnittes 14 zeigt.
- Die Kompressionsverarbeitung von Bilddaten wird nachstehend unter Bezugnahme auf Fig. 49 beschrieben.
- In einer Farbumwandlungseinheit 501 werden zugeführte RGB- Bilddaten unter Verwendung einer durch die folgende Gleichung gegebenen linearen 3 · 3 Matrix-Umwandlung in Y-, u- und v- Komponenten konvertiert:
- worin Y die Luminanzkomponente ist und u und v die Chromatizitätskomponenten sind.
- Eine Unterabtasteinheit 502 führt eine Unterabtastung durch, um die Chromatizitätsdaten durch Nutzen der Eigenschaft dahingehend, dass die Empfindlichkeitscharakteristiken menschlicher Augen für die Luminanzkomponente (Y) empfindlicher als für die Chromatizitätskomponenten sind, zu verringern. Zum Beispiel werden Bilddaten in Y: u: v = 4. 4. 4 (ohne Unterabtastung), Y. u. v = 4 : 2 : 2 oder Y. u. v = 4 : 1: 1 konvertiert.
- Die Ausgaben aus der Unterabtasteinheit 502 werden in Einheiten von 8 · 8 Blöcken in der Reihenfolge Y1, u1, v1, Y2, u2, v2, ... in dem Fall von Y: u: v = 4 : 4. 4, in der Reihenfolge Y1, Y2, u1, v1, Y3, Y4, u2, v2, ... in dem Fall von Y. u: v = 4. 2. 2 oder in der Reihenfolge von Y1, Y2, Y3, Y4, u1, v1, Y5, Y6, Y7, Y8, u2, v2, ... in dem Fall von Y. u. v = 4 : 1 : 1 ausgegeben.
- Eine DCT-Einheit 503 DCT-transformiert von der Unterabtasteinheit 502 ausgegebene Daten in Einheiten von 8 · 8 Blöcken und gibt DCT-Koeffizienten aus.
- Eine Quantisierungseinheit 504 quantisiert von der DCT- Einheit 503 ausgegebene DCT-Koeffizienten in Einheiten von 8 · 8 Blöcken unter Verwendung einer Quantisierungstabelle 508, wodurch quantisierte Koeffizienten erhalten werden.
- 8 · 8 zwei dimensionale quantisierte Koeffizienten werden ein dimensional in der Reihenfolge von einer nieder frequenten Komponente zu einer hoch frequenten Komponente durch Zickzackabtastung sortiert, wie in Fig. 21 gezeigt, und die sortierten Koeffizienten werden einer adaptiven Huffman-Kodiereinheit 505 zugeführt.
- Wie später im Einzelnen beschrieben werden wird, führt die adaptive Huffman-Kodiereinheit 505 eine Umwandlung in Einheiten von 64 ein dimensionalen Daten durch und gibt die kodierten Daten, Bitgrößen, und Stufennummern aus. In diesem Ausführungsbeispiel sind vier Stufen bereitgestellt.
- Die Segmentsteuereinrichtung 20 schreibt Daten in den Kompressionsspeicher 22, der in Segmente unterteilt ist, in Einheiten von Stufen in Übereinstimmung mit den kodierten Daten, Bitgrößen, und Stufennummern, die von der adaptiven Huffman- Kodiereinheit 505 ausgegeben wurden. Darüber hinaus schreibt die Steuereinrichtung 20 Segmentverteilungsinformationen, die Schreibsegmente und Stufen von Daten in der Segmentinformationstabelle 21 angeben. Diese Informationen werden bei der Expansion verwendet.
- Wenn die Segmente zum Speichern von in Einheiten von Stufen verteilten Daten durch die Segmentsteuereinrichtung 20 gesteuert werden, kann eine Kompression mit fester Länge verwirklicht werden. Dies wird nachstehend kurz beschrieben. Das heisst, auf jeweilige Stufen verteilte Daten können durch Auswählen der zu übernehmenden Stufen, d. h. komprimierter Daten nur der ersten und der zweiten Stufe, oder komprimierter Daten nur der ersten, der zweiten und der dritten Stufe, oder aller komprimierter Daten in der ersten, der zweiten, der dritten und der vierten Stufe in Übereinstimmung mit der Speicherkapazität des Kompressionsspeichers 22 oder der Gesamtmenge komprimierter Daten eines zu komprimierenden Bildes auf eine Solldatenmenge gesteuert werden. Zum Beispiel wird dann, wenn Daten der ersten Stufe 2,5 MB haben, Daten der zweiten Stufe 1,5 MB haben, Daten der dritten Stufe 0,8 MB haben, Daten der vierten Stufe 0,5 MB haben, und die Solldatenmenge 5,0 MB ist, eine Gesamtmenge komprimierter Daten von 4,8 MB durch Verwenden der Daten der drei Stufen, d. h. der ersten, der zweiten und der dritten Stufe, erreicht und kann so gesteuert werden, dass sie gleich oder kleiner als die Solldatenmenge ist. Daher beeinflusst die Verteilung aller kodierten Daten in Einheiten von Stufen die Genauigkeit der Kompression mit fester Länge.
- Die Segmentsteuereinrichtung 20, der Kompressionsspeicher 22 und die Segmentinformationstabelle 21 werden später im Einzelnen beschrieben.
- Die in Fig. 50 gezeigte adaptive Huffman-Kodiereinheit wird nachstehend kurz beschrieben, und danach werden die jeweiligen Blöcke im Einzelnen beschrieben.
- Die in Fig. 50 gezeigte adaptive Huffman-Kodiereinheit gibt die kodierten Daten, Bitgrößen, und Stufennummern aus. Das heisst, wenn die Sollbitrate (die Bitrate ist eine ein Kompressionsverhältnis repräsentierende Einheit und wird durch die Anzahl von Bit pro Pixel [Bit/Pixelj ausgedrückt) des gesamten Bildes mit 2,4 [Bit/Pixelj angenommen wird, wird die Sollbitrate der ersten Stufe auf 1,5 [Bit/Pixelj in einem 8 · 8-Block festgelegt. Da die verbleibende Anzahl von Stufen drei ist (d. h. die zweite, die dritte und die vierte Stufe), wird die verbleibende Anzahl von Bit (2,4 - 1,5 = 0,9) in dem Block im wesentlichen gleich in drei Stufen unterteilt, und die geteilten Bit werden auf die zweite, die dritte und die vierte Stufe verteilt.
- Bezug nehmend auf Fig. 50 Huffman-kodiert ein adaptiver Huffman-Kodierer 514 ein dimensional sortierte quantisierte Koeffizienten in Einheiten von 64 Koeffizienten (in Einheiten von Y-, u- und v-Komponenten eines 8 · 8-Blockes), und gibt kodierte Daten, eine Bitgröße und ein eine Unterteilung eines Blockes anzeigendes Blockendesignal aus.
- Ein Pufferspeicher 515 speichert diese Daten in dem in Fig. 51 gezeigten Format. Bezug nehmend auf Fig. 51 ist ein Index eine serielle Nummer von ausgegebenen kodierten Daten in einem einzelnen Block, und ist die Anzahl von effektiven Bit kodierter Daten durch eine Bitgröße angegeben. Ein Bitgrößensummenwert wird aus einem Bitgrößenaddierer 517 erhalten.
- Der Bitgrößenaddierer 517 beginnt die Addition von Bitgrößen von Wechselsignalkomponenten in Einheiten von Blöcken in Antwort auf das Blockendesignal und gibt den Summenwert an einen Vergleicher 518 aus. Der Vergleicher 518 vergleicht den Summenwert mit Schwellentabellen 519 (vg1. Fig. 52), die in Einheiten von Y-, u- und v-Komponenten vorbereitet sind. Wenn der Summenwert einen Schwellenwert übersteigt, gibt der Vergleicher 518 einen Index aus, bevor der Summenwert den Schwellenwert übersteigt, und setzt den Bitgrößenaddierer 517 zurück, um die Addition der Bitgröße, die den Schwellenwert überstiegen hat, neu zu beginnen. Wenn der Bitgrößenaddierer 517 das Ende eines Blockes in Übereinstimmung mit dem Blockendesignal erfasst, liefert er den letzten Wert an einen Referenzwertrechner 516. Der Referenzwertrechner 516 berechnet eine Vielzahl von Bitgrößensumme-referenzwerten auf der Grundlage des letzten bzw. finalen Bitgrößensummenwertes.
- Diese Betriebsabläufe werden nachstehend im Einzelnen unter Bezugnahme auf Fig. 51 und 52 beschrieben. Da die Sollbitrate der ersten Stufe auf 1,5 [Bit/Pixel] festgelegt ist, werden die Bitanzahlen von Y-, u- und v-Komponenten in Fig. 52 auf jeweils 40, 28 und 28 [Bit] festgelegt, um diese Bitrate zu realisieren.
- Fig. 51 zeigt kodierte Daten, Bitgrößen und Bitgrößensummenwerte von Y-Komponenten in einem bestimmten 8 · 8-Block. Die Bitgröße des Index 0 wird nicht addiert, da Index 0 einer Gleichsignalkomponente entspricht und die Bitgröße ab der ersten Bitgröße '18' einer Wechselsignalkomponente von Index 1 in den Bitgrößensummenwert geschrieben wird. Da die Bitgröße von Index 2 '7' ist, wird der Bitgrößensummenwert von Index 2 25 ( = 18 + 7), und wird der Bitgrößensummenwert von Index 3 39 ( = 25 + 14).
- Da die Bitgröße von Index 4 '22' ist, wird der Bitgrößensummenwert 61. In diesem Fall wird, da der Vergleicher 518 ermittelt, dass der Bitgrößensummenwert den Wert (40 [Bit]) der Y-Komponenten-Schwellenwerttabelle 519 übersteigt, der Index 3 unmittelbar vor dem Index 4 einem Stufendiskriminator 520 zugeführt. Der Bitgrößenaddierer 517 wird zurückgesetzt, und die Bitgröße '22' von Index 4 wird direkt in den Bitgrößensummenwert geschrieben.
- Da die Bitgröße von Index 5 '9' ist, wird der Bitgrößensummenwert 31 ( = 22 + 9).
- Auf vergleichbare Art und Weise werden die Bitgrößen addiert und in den Bitgrößensummenwert geschrieben, bis der entsprechende Block endet. Der letzte Bitgrößensummenwert '95' wird an den Referenzwertrechner 516 übertragen, und der Referenzwertrechner 516 teilt '95' durch 3, da drei Stufen verbleiben. Somit werden ein Wert '30' und ein Wert '60' doppelt so groß wie der Wert '30' dem Stufendiskriminator 520 als Bitgrößensumme-referenzwerte zugeführt.
- Der Stufendiskriminator 520 ermittelt Stufen, auf die kodierte Daten und Bitgrößen verteilt sind, auf der Grundlage des aus dem Vergleicher 518 erhaltenen Index und der aus dem Referenzwertrechner 516 erhaltenen Bitgrößensumme-Referenzwerten.
- Wie vorstehend beschrieben wurde, haben die erhaltenen Daten den Index 3 und die Bitgrößenreferenzwerte '30' und '60'. Der Pufferspeicher 515 zählt die zugeführten Bitgrößensummenwerte und gibt die Stufe Nummer #1 für Daten bis zu Index 3 aus. Dann wird, was die folgenden Daten anbelangt, der Bitgrößensummenwert mit dem Bitgrößensummenreferenzwert '30' verglichen, und dann, wenn der Bitgrößensummenwert gleich oder größer als 0 und gleich oder kleiner als 30 ist, die Stufe Nummer #2 ausgegeben; wenn der Bitgrößensummenwert gleich oder größer als 31 und gleich oder kleiner als 60 ist, die Stufe Nummer #3 ausgegeben; wenn der Bitgrößensummenwert größer als 60 ist, die Stufe Nummer #4 ausgegeben. An der Teilung jeder Stufe wird ein EOS (Stufenende)-Kode, der die Teilung der Stufe anzeigt, eingefügt.
- Somit wird jede von unterschiedlichen kodierten Mengen in Einheiten von 8 · 8-Blöcken auf die erste Stufe mit der Bitrate von etwa 1,5 [Bit/Pixel] verteilt, und die verbleibenden Daten können gleich in drei Stufen unterteilt werden.
- In dem vorstehend erwähnten Beispiel übersteigt der Bitgrößensummenwert eines 8 · 8-Blockes 40. Falls jedoch der Bitsummenwert 40 nicht übersteigt, wird ein EOB (Blockende)-Kode eingefügt, und werden alle kodierten Daten des 8 · 8-Blockes in das Segment der ersten Stufe geschrieben.
- Nachstehend wird die Expansion von durch den vorstehend erwähnten Kompressionsprozess komprimierten Daten beschrieben.
- Die Anordnung des ADCT-Expansionsabschnittes 31 ist im wesentlichen die selbe wie die des in Fig. 49 gezeigten ADCT- Abschnittes 14, obwohl der Datenfluss zu dem in dem Kompressionsprozess umgekehrt ist. Daher ist die DCT-Einheit 503 in Fig. 49 durch eine inverse DCT-Einheit 503 ersetzt, ist die Quantisierungseinheit 504 durch eine inverse Quantisierungseinheit 504 ersetzt, und ist die adaptive Huffman-Kodiereinheit 505 durch eine adaptive Huffman-Dekodiereinheit 505 ersetzt. Darüber hinaus sind die Quantisierungstabelle 508 und die Huffman-Tabelle 509 jeweils durch eine inverse Quantisierungstabelle 508 und eine Huffman-Dekodiertabelle 509 ersetzt.
- Da kodierte Daten, die einen einzelnen 8 · 8-Block bilden, in dem Kompressionsspeicher 22 gespeichert sind, während sie in eine Vielzahl von Stufen geteilt werden, empfängt und dekodiert die adaptive Huffman-Dekodiereinheit 505 kodierte Daten von der Vielzahl von Stufen, um den einzelnen 8 · 8-Block wiederaufzubauen.
- Zu diesem Zweck fordert die adaptive Huffman-Dekodiereinheit 505 kodierte Daten von Stufe Nummer #1 an der Segmentsteuereinrichtung 20 an. Die Segmentsteuereinrichtung 20 liest die kodierten Daten der ersten Stufe aus dem Kompressionsspeicher 22 unter Bezugnahme auf den Inhalt der Segmentinformationstabelle 21 und überträgt die gelesenen Daten an die adaptive Huffman-Dekodiereinheit 505. Die adaptive Huffman-Dekodiereinheit 505 dekodiert aufeinanderfolgend übertragene kodierte Daten und überträgt dekodierte Ergebnisse an die inverse Quantisierungseinheit 504, bis sie einen EOS-Kode erfasst. Bei Erfassung eines EOS-Kodes fordert die Dekodiereinheit 505 kodierte Daten von Stufe Nummer #2 an.
- Die Segmentsteuereinrichtung 20 liest kodierte Daten der Stufe Nummer #2 aus dem Kompressionsspeicher 22 unter Bezugnahme auf den Inhalt der Segmentinformationstabelle 21 und überträgt die gelesenen Daten an die adaptive Huffman-Dekodiereinheit 505. Die adaptive Huffman-Dekodiereinheit 505 führt die Dekodierung durch, bis sie einen weiteren EOS-Kode auf die selbe Art und Weise wie vorstehend beschrieben erfasst.
- Die Dekodiereinheit 505 dekodiert Daten der dritten und der vierten Stufe auf vergleichbare Art und Weise, wodurch die Kodierung eines einzelnen 8 · 8-Blockes abgeschlossen wird. Falls die Dekodiereinheit 505 einen EOB-Kode während des Dekodierens einer bestimmten Stufe erfasst, fordert sie nicht kodierte Daten der nächsten Stufe an, sondern beginnt mit der Dekodierung des nächsten 8 · 8-Blockes. Wenn komprimierte Daten aufgrund einer zu großen Menge komprimierter Daten oder einer knappen Kapazität des Kompressionsspeichers 22 nicht bis hin zu ihrer letzten Stufe gespeichert sind, führt der Dekodierer eine Expansion unter Verwendung von Daten bis zu dazwischenliegenden Stufen durch.
- Auf diese Art und Weise erhaltene quantisierte Koeffizienten werden durch die inverse Quantisierungseinheit 504 unter Verwendung der inversen Quantisierungstabelle 508 invers quantisiert und werden der inversen DCT-Einheit 503 zugeführt.
- Die inverse DCT-Einheit 503 DCT-transformiert erhaltene DCT- Koeffizienten invers, um Y'-, u'- und v'-Daten zu erhalten.
- Die Unterabtasteinheit 502 führt einen Vergrößerungsbetriebsablauf gemäß einem Unterabtastverhältnis (Y. u. v = 4. 4. 4, 4 : 2 : 2, oder 4 : 1 : 1) durch.
- Die Farbumwandlungseinheit 501 führt eine inverse Umwandlung unter Verwendung der folgenden Gleichung durch, wodurch ein ursprüngliches Bild reproduziert wird:
- Die Speicherung komprimierter Daten, die in mehrere Stufen unterteilt sind, bei der Kompressions-/Expansions-Verarbeitung von Bilddaten, die Speicherung von Daten, die durch den reversiblen Kompressionsabschnitt 18 komprimiert wurden, in dem durch eine Vielzahl von Segmenten gebildeten Kompressionsspeicher 22, und die Speicherung von ausgewählten Segmentinformationen in der Segmentinformationstabelle 11 werden nachstehend im Einzelnen beschrieben. Es wird angemerkt, dass durch den reversiblen Kompressionsabschnitt 18 komprimierte Daten als eine von in mehrere Stufen unterteilte komprimierte Daten verarbeitet werden, und als Daten der ersten Stufe verarbeitet werden, da die Notwendigkeit des Bewahrens von Informationen hoch ist.
- Wie in Fig. 53 gezeigt, ist der Kompressionsspeicher 22 in Segmente S-1 bis S-N unterteilt (z. B. ein Segment = 100 KByte).
- Die Segmentinformationstabelle 21 hat eine in Fig. 54 gezeigte Architektur. Die ersten bis vierten Reihen der Segmentinformationstabelle 21 speichern Informationen, die den ersten bis vierten Stufen zugeordnet sind. In der ersten Spalte sind 1 Bit-Daten, die repräsentieren, ob die entsprechende Stufe effektiv oder ineffektiv ist, gespeichert, und '1' zeigt an, dass die entsprechende Stufe effektiv ist; '0' zeigt an, dass die entsprechende Stufe ineffektiv ist. In der zweiten und den nachfolgenden Spalten sind die ausgewählten Segmentnummern (S-1 bis S-N) des Kompressionsspeichers 22, in die kodierte Daten der jeweiligen Stufen geschrieben sind, gespeichert. Das linke Ende dieser Spalten entspricht dem Kopf eines Bildes, und das rechte Ende dieser Spalten entspricht dem Ende eines Bildes. "ENDE" zeigt das Ende kodierter Daten in jeder Stufe an.
- Eine Sequenz zum Schreiben kodierter Daten in den Kompressionsspeicher 22 in Einheiten von Stufen wird nachstehend beschrieben.
- Es wird angemerkt, dass die auf die einzelnen Stufen verteilten komprimierten Datenmengen in Abhängigkeit von einem Kompressionsverfahren zum Verteilen von Daten auf die Stufen oder den Charakteristiken ursprünglicher Bilddaten variieren. Nachstehend wird ein Fall erläutert, in dem bei Vergleich der ersten bis vierten Stufen die ausgegebene komprimierte Datenmenge der ersten Stufe größer als die in der vierten Stufe ist.
- Nachstehend wird eine Speicherverarbeitung kodierter Daten unter Bezugnahme auf das Ablaufdiagramm einer Speicherverarbeitung kodierter Daten bei der in Fig. 55 gezeigten Kompressionsverarbeitung und der in Fig. 54 gezeigten Segmentinformationstabelle 54 beschrieben.
- Wie in der zweiten Spalte (Spalte Nr. 2) in Fig. 54 gezeigt, werden in den einzelnen Stufen ausgegebene kodierte Daten beginnend in den Segmenten S-1, S-2, S-3 bzw. S-4 geschrieben (Schritt S1).
- In der ersten Stufe 1 wird, da das Segment S-1 früher als andere Stufen mit Daten gefüllt wird, damit begonnen, Daten in das Segment S-5 zu schreiben (Schritte S2 und S3).
- In der zweiten und der dritten Stufe wird, da die Segmente S-2 und S-3 mit Daten gefüllt werden, begonnen, Daten in die Segmente S-5 und S-6 zu schreiben (Schritte S2 und S3).
- Da kodierte Daten der ersten Stufe das Segment S-5 füllen, bevor das Segment S-4 mit kodierten Daten der vierten Stufe gefüllt wird, wird ein leeres Segment S-8 nicht der vierten Stufe, sondern der ersten Stufe zugewiesen (Schritte S2 und S3). Ein solches Phänomen tritt auf, da die in der ersten Stufe erzeugte Kodemenge größer als die in der vierten Stufe erzeugte Kodemenge ist.
- Auf vergleichbare Art und Weise wird dann, wenn ein Segment, in das Daten geschrieben werden, in jeder Stufe mit Daten gefüllt wird, ein leeres Segment ausgewählt, und werden kodierte Daten in das ausgewählte Segment geschrieben (Schritte S2, S3 und S4).
- In diesem Ausführungsbeispiel wird ein Verfahren zum Kodieren eines ursprünglichen Bildes unter Teilen desselben in einige Stufen verwendet. Folglich tritt dann, wenn die Kodemenge jeder Stufe kleiner als die komprimierte Solldatenmenge ist, keine ineffektive Stufe auf. Wenn jedoch die Sollmenge während der Kodierung erreicht wird, wird eine vorgegebene Stufe (die vierte Stufe in Fig. 54) ineffektiv gemacht, und werden kodierte Daten der verbleibenden ersten, zweiten oder dritten Stufe in die der vorgegebenen Stufe zugewiesenen Segmente S- 4, S-11, S-15, ... geschrieben (Schritt S5).
- Die achten bis 11-ten Spalten (Nr. 8 bis 11) in Fig. 54 entsprechen der vorstehenden Beschreibung. Da das Segment S-N in der zweiten Stufe der achten Spalte zugewiesen ist, bedeutet dies, dass alle Segmente des Kompressionsspeichers 22 zugewiesen worden sind, und die vierte Stufe wird ineffektiv gemacht ('0'), um die Knappheit des Kompressionsspeichers zu kompensieren. Wie in der neunten Spalte gezeigt, wird das in der vierten Stufe verwendete Segment S-4 der ersten Stufe zugewiesen, und wird das Segment S-11 der zweiten Stufe zugewiesen. Da die kodierten Daten der zweiten Stufe enden, wenn sie in das Segment S-11 geschrieben sind, wird eine ENDE- Markierung in der 10-ten Spalte gespeichert, wie in Fig. 54 gezeigt.
- Da die kodierten Daten der ersten Stufe enden, wenn sie in das Segment S-15 der 10-ten Spalte geschrieben sind, wird eine Ende-Markierung in der 11-ten Spalte gespeichert.
- Wenn die in dem Kompressionsspeicher 22 gespeicherten komprimierten Daten expandiert werden, werden Bilddaten unter Verwendung nur der effektiven Stufen (den ersten bis dritten Stufen in Fig. 54) expandiert.
- Auf diese Art und Weise kann bei der Kompressions-/Expansionsverarbeitung die Kompression durchgeführt werden, ohne irgendwelche Daten in der CG-Kompression zu verlieren, und wenn die CG-komprimierte Datenmenge den dem Block gegebenen Grenzwert L = (C + S) übersteigt, wird die ADCT-Kompressionsverarbeitung durchgeführt, so dass die endgültige Speichermenge auf einem Umfang gleich oder kleiner als eine vorbestimmte Menge beibehalten und die Bildqualität bewahrt werden können. Was einen Block anbelangt, der verschiedene Pixeltypen beinhaltet, welches mit der Bildqualität und dem Kompressionsverhältnis zusammenhängende Probleme bei den konventionellen Verfahren aufwirft, werden sowohl die ADCT-Kompression als auch die CG-Kompression durchgeführt. Das heisst, bei der ADCT-Kompressionsverarbeitung wird die Bildqualität durch Zuführen interpolierter Daten bewahrt, und bei der CG-Kompressionsverarbeitung wird das Kompressionsverhältnis durch Zuführen ersetzter Daten beibehalten. Darüber hinaus ist, da Pixeltypinformationen in Einheiten von Pixeln eines verschiedene Pixeltypen beinhaltenden Blockes in CG-komprimierte Daten eingefügt werden können, kein zusätzlicher Bitmap- Speicher erforderlich.
- Gemäß dem vorstehend erwähnten mehrstufigen Speicherverfahren kann die Speicherverwaltung leicht in Übereinstimmung mit der Wichtigkeit von Bilddaten durchgeführt werden, und können, da sowohl ADCT-komprimierte Daten als auch und CG-komprimierte Daten in nur einem Speicherraum verarbeitet werden, die Adressensteuerung in einer Auslesebetriebsart und die Synchronsteuerung in einer Schreibbetriebsart erleichtert werden.
- In dem vorstehend beschriebenen fünften Ausführungsbeispiel können die Signale 2a, 2b und 2c an verschiedenen Adressen gespeichert werden. In diesem Fall werden diese Signale durch die Segmentsteuereinrichtung 21 an verschiedenen Adressen gespeichert.
- In dem vorstehend beschriebenen fünften Ausführungsbeispiel werden in dem Halteabschnitt 19 für komprimierte Daten gespeicherte CG-komprimierte Daten (Signale 2a und 2b) durch ein EIN/AUS ('0'/'1') anzeigendes Flagsystem gebildet. Diese Signale können jedoch durch ein Triggersystem gebildet werden.
- Wie in Fig. 13A und 13B gezeigt, neigen identische Daten dazu, in dem Triggersystem für eine längere Zeitdauer als in dem Flagsystem anzudauern. Durch Nutzen dieser Eigenschaft können die Signale 2a und 2b einer weiteren Lauflängenkompression, wie beispielsweise MH, unterworfen werden, um die Datenmenge zu verringern.
- Die Erfindung ist nicht auf MH beschränkt. Zum Beispiel können abgeschlossene komprimierte Daten einer Huffman-Kodierung oder Lempel-Ziv-Kodierung unterworfen werden, um weiter komprimiert zu werden. Es wird angemerkt, dass es ebenfalls wirkungsvoll ist, eine Huffman-Kodierung oder Lempel-Ziv-Kodierung des Signals 2c durchzuführen.
- In dem reversiblen Kompressionsabschnitt 18 des vorstehend erwähnten fünften Ausführungsbeispiels kann der in Schritt S103 auszugebende gegenwärtige Wert "present" als (Nachschlage-) Tabelle gespeichert werden.
- Ein computer erzeugtes Bild, das durch z. B. DTP erzeugt wurde, hat als Merkmal eine kleine Anzahl verwendeter Farben, so dass die meisten Bilder durch 256 Farben ausgedrückt werden können. Darüber hinaus kann ein 8 Bit (256 Farben)-Speicher als Tabelle bereitgestellt sein, und können dann, wenn die 256-te Farbe erscheint, 24 Bit-Daten direkt ausgegeben werden. Folglich ist die Anzahl von ausdrückbaren Farben nicht beschränkt, und da die meisten Farbdaten durch 8 Bit anstelle der in dem vorstehenden System erforderlichen 24 Bit-Daten ausgedrückt werden können, kann das Kompressionsverhältnis vergrößert werden. Daher wird die Anzahl von der CG-Kompressionsverarbeitung zu unterwerfenden Blöcken im Vergleich zu dem fünften Ausführungsbeispiel erhöht, und kann die Bildqualität verbessert werden.
- In dem reversiblen Kompressionsabschnitt 18 des vorstehenden fünften Ausführungsbeispiels ist die Anzahl von Zwischenspeichereinheiten (former) zum Speichern vorangehender Pixeldaten 3, kann aber auf 1 verringert werden. In diesem Fall wird ein Signal entsprechend Schritten S96, S98, S100 und S102 zu einem 1 Bit-Signal, und da die Anzahl von zu schreibenden Zwischenspeichereinheiten (in denen "next" substituiert ist) 1 ist, ist eine Verarbeitung, wie beispielsweise "turn", die die Reihenfolge des Neuschreibens anzeigt, unnötig. In diesem Fall wird eine Gleichung zum Berechnen der komprimierten Datenmenge wie folgt neu geschrieben:
- D = 64 + 1 · count2 + 24 · count3
- In dem reversiblen Kompressionsabschnitt 18 des vorstehenden fünften Ausführungsbeispiels kann der in Schritt S103 auszugebende gegenwärtige Wert "present" z. B. aus 18 Bit-Daten anstelle von 24 Bit-Daten bestehen. In diesem Fall ist, obwohl expandierte Daten einen von dem jenigen ursprünglicher Bilddaten verschiedenen Wert haben und die reversible Kompression gesperrt ist, da ein hoch frequentes Bild, wie beispielsweise ein computer erzeugtes Bild, keine allzu guten Gradationscharakteristiken für menschliche Augen erfordert, die Verschlechterung der Bildqualität nicht auffallend, und wird die komprimierte Datenmenge wie in der folgenden Gleichung verringert:
- D = 64 + 2 · count2 + 18 · count3
- In dem reversiblen Kompressionsabschnitt 18 des vorstehenden fünften Ausführungsbeispiels können Zwischenspeicher-Neuschreibinformationen (turn, turn p, tumpp) weggelassen werden, und kann eine Zwischenspeichereinheit, die neu zu schreiben ist, wenn die selbe Farbe in keiner Zwischenspeichereinheit vorhanden ist, dauerhaft festgelegt werden. Zum Beispiel wird dann, wenn das Signal 2a '1' ist und das Signal 2b '11' ist, eine neu zu schreibende Zwischenspeichereinheit dauerhaft als die zweite Zwischenspeichereinheit 1203 festgelegt. In diesem Fall kann, obwohl der Kompressionswirkungsgrad leicht beeinträchtigt wird, der Hardwareumfang reduziert werden.
- In dem reversiblen Kompressionsabschnitt 18 des vorstehenden fünften Ausführungsbeispiels ist der Puffer 1307 zum Speichern des Grundbetrages S angeordnet, und ist der Grenzwert L eines zu verarbeitenden Blockes durch C + S definiert. Es kann jedoch L = C verwendet werden.
- In dem vorstehend beschriebenen fünften Ausführungsbeispiel wird die Segmentsteuereinrichtung 20 bei der Speichersteuerung verwendet, und wird die Kompression in Echtzeit durchgeführt. Alternativ kann eine Vorabtastung (Vorentwicklung) durchgeführt werden, um einen δ-Faktor der ADCT-Kompression vorab zu ermitteln, und kann dann die Kompression durchgeführt werden. In diesem Fall kann die Speichersteuerung weiter erleichtert werden.
- In dem reversiblen Kompressionsabschnitt 18 in der vorstehend beschriebenen fünften Ausführungsbeispiel übernimmt die Bilddatensortiereinheit 1201 eine in Fig. 41 gezeigte Zickzackreihenfolge. Die Erfindung ist jedoch nicht hierauf beschränkt. Falls die Sortierreihenfolge zu dieser Zeit in Übereinstimmung mit einer Reihenfolge von von dem Raster- Block-Umwandlungsabschnitt 11 gesendeten Daten festgelegt wird, kann die Funktion der Bilddatensortiereinheit 1201 weggelassen werden.
- In dem vorstehend beschriebenen fünften Ausführungsbeispiel ersetzt der Pixeldatenersetzungsabschnitt 17 Werte von Pixeln mit dem Pixeltyp A, um die komprimierte Datenmenge des reversiblen Kompressionsabschnittes 18 zu reduzieren und die Einfügung von Bitmap-Daten zu verwirklichen. Jedoch kann anstelle des Ersetzens von Pixeldaten ein reversibler komprimierter Kode, der den Pixeltyp A repräsentiert, vorab festgelegt werden, und kann der Kode in Übereinstimmung mit dem Pixeltyp A ausgegeben werden.
- Zum Beispiel können drei Zwischenspeichereinheiten anstelle der vier Zwischenspeichereinheiten in dem fünften Ausführungsbeispiel verwendet werden, und kann ein dem Pixeltyp A entsprechender Kode (ein Kode bei Erfassung einer Übereinstimmung mit der vierten Zwischenspeichereinheit 1205) auf '110' festgelegt werden. Danach wird dann, wenn Pixel des Pixeltyps A andauern, '0' auf vergleichbare Art und Weise ausgegeben. Wenn ein Pixel des Pixeltyps B erscheint, wird '1' ausgegeben, und wird die Farbe des Pixels mit den Inhalten der zweiten und der dritten Zwischenspeichereinheit 1203 und 1204 verglichen, um einen Kode auszugeben. In diesem Fall wird dann, wenn die Farbe des Pixels nicht mit den Inhalten der zweiten und der dritten Zwischenspeichereinheit 1203 und 1204 übereinstimmt ('111' wird ausgegeben), die Aktualisierungsverarbeitung durch die Aktualisierungseinrichtung nicht durchgeführt. Das heisst, dass bei Umschalten von dem Pixeltyp A auf den Pixeltyp B der Kode '0', der anzeigt, dass Eingangsdaten die selben sind wie Daten in der ersten Zwischenspeichereinheit 1202, zu einem Kode wird, der den Pixeltyp A repräsentiert. Aus diesem Grund können dann, wenn die Eingangsdaten mit Daten in der zweiten und der dritten Zwischenspeichereinheit 1203 und 1204 verglichen werden, und wenn ermittelt wird, dass die Eingangsdaten mit keinen der Daten in der zweiten und der dritten Zwischenspeichereinheit 1203 und 1204 übereinstimmen (Pixeldaten werden ausgegeben), um Daten in einer der zweiten und der dritten Zwischenspeichereinheit 1203 und 1204 mit Daten in der ersten Zwischenspeichereinheit 1202 neu zu schreiben, die selben Daten unerwünscht in den drei Zwischenspeichereinheiten gespeichert werden, wenn Eingangspixeldaten mit Daten in der ersten Zwischenspeichereinheit 1202 übereinstimmen.
- In dem vorstehend beschriebenen fünften Ausführungsbeispiel wird das Kompressionsverfahren durch Hardware realisiert, kann aber auch durch Software realisiert werden.
- Nachstehend wird ein Fall beschrieben, in dem das erste Beispiel einer auf in Fig. 57 gezeigten Indizes basierten adaptiven Huffman-Kodiereinheit als die in Fig. 49 gezeigte adaptive Huffman-Kodiereinheit 505 verwendet wird.
- Ein Huffman-Kodierer 521 Huffman-kodiert ein dimensional sortierte quantisierte Koeffizienten in Einheiten von 64 Koeffizienten (Y-, u- und v-Komponenten eines 8 · 8-Blockes) und gibt kodierte Daten, Bitgrößen und ein die Teilung eines Blockes anzeigendes Blockendesignal aus.
- Ein Pufferspeicher 522 speichert diese Daten in dem in Fig. 58 gezeigten Format. Bezug nehmend auf Fig. 58 ist ein Index eine serielle Nummer von ausgegebenen kodierten Daten in einem einzelnen Block, und ist die Anzahl von effektiven Bit kodierter Daten durch eine Bitgröße angegeben.
- Ein Bitgrößenaddierer 525 addiert Bitgrößen von Wechselsignalkomponenten in Einheiten von Blöcken in Antwort auf das Blockendesignal und gibt den Summenwert an einen Vergleicher 526 aus.
- Der Vergleicher 526 vergleicht den Summenwert mit Schwellenwerttabellen 527 (vgl. Fig. 52), die in Einheiten von Y-, u- und v-Komponenten vorbereitet sind. Wenn der Summenwert einen Schwellenwert übersteigt, gibt der Vergleicher 526, bevor der Summenwert den Schwellenwert übersteigt, einen Index als einen Grundindex an einen Zähler 523 und einen Stufendiskriminator 524 aus. In dem Fall von Fig. 52 und 58 werden, da der Grundindex von Y 3 wird, Indizes 0 bis 3 in die erste Stufe geschrieben.
- Der Zähler 523 zählt die Indizes aus dem Eingangssignal der Bitgröße der ersten Wechselsignalkomponente eines 8 · 8- Blockes. Bei Erfassung eines Blockes auf der Grundlage des Blockendesignals berechnet der Zähler 523 einen Referenzindex auf der Grundlage des letzten Index und des aus dem Vergleicher 526 erhaltenen Grundindex, und gibt den Referenzindex an den Stufendiskriminator 524 aus. In dem in Fig. 58 gezeigten Beispiel sind, da der Grundindex 3 ist und der letzte Index 18 ist, in die zweite und die nachfolgenden Stufen geschriebene Daten Indizes 4 bis 18. Daher wird, um Daten des Index 4 und nachfolgender Indizes in drei Stufen zu teilen, 18 - 3 = 15 in drei Stufen geteilt, und werden 8 ( = 3 + 5) und 13 ( = 8 + 5) als die Referenzindizes ausgegeben.
- Darüber hinaus setzt das Blockendesignal aus dem Huffman- Kodierer 521 den Bitgrößenaddierer 525 und den Vergleicher 526 zurück.
- Der Stufendiskriminator 524 zählt Indizes basierend auf den von dem Pufferspeicher 522 zugeführten Bitgrößensignalen und gibt eine Stufennummer auf der Grundlage des Zählwertes, des erhaltenen Basisindex und der Referenzindizes aus. Da der Grundindex 3 ist und die Referenzindizes 8 und 13 sind, gibt der Diskriminator 524 die Stufe Nummer #1 aus für Daten bis zu Index 3 in Fig. 58; die Stufe Nummer #2 für Daten von Indizes 4 bis 8; die Stufe Nummer #3 für Daten von Indizes 9 bis 13; und die Stufe Nummer #4 für die folgenden Daten, bis dieser Block endet. In diesem Fall wird, wenn sich die Stufennummer ändert, ein bei der Expansion erforderlicher EOS- Kode eingefügt.
- Die adaptive Huffman-Dekodiereinheit 505 zum Expandieren von durch das vorstehend erwähnte Verfahren kodierte kodierten Daten kann durch das selbe Verfahren wie in dem ersten Beispiel realisiert werden.
- Nachstehend wird ein Fall beschrieben, in dem das zweite Beispiel einer auf in Fig. 59 gezeigten Indizes basierten adaptiven Huffman-Kodiereinheit als die in Fig. 49 gezeigte adaptive Huffman-Kodiereinheit 505 verwendet wird.
- Ein Huffman-Kodierer 531 Huffman-kodiert ein dimensional sortierte quantisierte Koeffizienten in Einheiten von 64 Koeffizienten (Y-, u- und v-Komponenten eines 8 · 8-Blockes) und gibt kodierte Daten, Bitgrößen und ein die Teilung eines Blockes anzeigendes Blockendesignal aus.
- Ein Zähler 533 zählt Bitgrößensignale und überträgt das Zählergebnis, d. h. einen Index, an einen Vergleicher 533.
- Der Vergleicher 533 vergleicht den übertragenen Index mit einem Wert einer in Fig. 60 gezeigten Indextabelle. Wenn der Indexwert einen Tabellenwert übersteigt, liefert der Vergleicher 533 ein Signal an einen Zähler 534.
- Die Ausgabe (Stufennummer) des Zählers 534 hat einen Anfangswert von 1, und der Zähler 534 inkrementiert einen Ausgabewert in Antwort auf ein Eingangssignal. Im Einzelnen wird die Stufennummer um eins inkrementiert.
- In der in Fig. 60 gezeigten Indextabelle ist für einen 8 · 8 Block von Y-Komponenten die Ausgabe (Stufennummer) des Zählers 534 1 bis Index 3, wird die Stufennummer 2 für Indizes 4 bis 8, wird die Stufennummer 3 für Indizes 9 bis 15, und wird die Stufennummer danach 4, bis die Zähler 532 und 534 durch das Blockendesignal zurückgesetzt werden und der 8 · 8 Block endet.
- Um durch dieses Kodierverfahren kodierte Daten zu expandieren, fordert die adaptive Huffman-Dekodiereinheit über die Segmentsteuereinrichtung 20 kodierte Daten von Stufe Nummer #1 an. Die Segmentsteuereinrichtung 20 liest kodierte Daten der ersten Stufe aus dem Kompressionsspeicher 22 unter Bezugnahme auf den Inhalt der Segmentinformationstabelle 21 und überträgt die gelesenen Daten an die adaptive Huffman- Dekodiereinheit 505. Die adaptive Huffman-Dekodiereinheit 505 dekodiert die erhaltenen kodierten Daten und gibt die nächste anzufordernde Stufennummer unter Bezugnahme auf die Indextabelle aus. Danach werden die Anforderung der Stufennummer und die Dekodierung erhaltener kodierter Daten wiederholt, bis die Anzahl dekodierter quantisierter Koeffizienten 64 (die Anzahl von Pixeln in einem 8 · 8-Block) wird. Nachdem die 64 quantisierten Koeffizienten dekodiert sind, wird der nächste 8 · 8-Block dekodiert.
- In der in Fig. 50 oder 57 gezeigten adaptiven Huffman- Dekodiereinheit werden die Bitraten an die jeweiligen Stufen auf der Grundlage von Bitgrößen verteilt. Im Vergleich zu diesem Verfahren kann dann, wenn das Verfahren dieses Ausführungsbeispiels (Fig. 59) verwendet wird, der Hardwareumfang aufgrund eines einfachen Algorithmus reduziert werden, und kann das System zu geringen Kosten realisiert werden, obwohl die Genauigkeit leicht beeinträchtigt wird. Bei diesem Verfahren (Fig. 59) wird kein EOS-Kode an den Teilungen von Stufen in einem einzelnen 8 · 8-Block benötigt, und die kodierte Datenmenge kann dementsprechend reduziert werden.
- In den vorstehenden fünften, sechsten und siebten Ausführungsbeispielen ist die Anzahl von Stufen in dem ADCT- Abschnitt 14, an die komprimierten Daten verteilt werden, 4, ist jedoch nicht besonders beschränkt (beispielsweise können 2, 3, 5 oder 6 Stufen verwendet werden).
- In dem fünften Ausführungsbeispiel ist die Sollbitrate des gesamten Bildes auf 2,4 [Bit/Pixel] festgelegt, ist jedoch nicht besonders auf diesen Wert beschränkt.
- In dem fünften und dem sechsten Ausführungsbeispiel ist die Sollbitrate der ersten Stufe auf 1,5 [Bit/Pixel] festgelegt, und wird der in Fig. 52 gezeigte Schwellenwert auf der Grundlage dieser Bitrate ermittelt. Die Erfindung ist jedoch nicht auf diesen Wert beschränkt, so dass beliebige andere Werte verwendet werden können. Kodierte Daten des zweiten und der nachfolgenden Stufen werden so verteilt, dass sie gleichmäßig auf drei Stufen verteilt sind. Die Erfindung ist jedoch nicht hierauf beschränkt. Zum Beispiel können kodierte Daten an die zweite, die dritte und die vierte Stufe mit einem beliebigen Verhältnis (z. B. 3. 2 : 1,5 " 3 :1 und der gleichen) verteilt werden.
- In dem siebten Ausführungsbeispiel wird die Indextabelle als eine Referenz für die in Fig. 60 gezeigte Stufenverteilung verwendet. Jedoch sind die Tabellenwerte nicht auf die in Fig. 60 gezeigten beschränkt.
- In dem fünften Ausführungsbeispiel wird dann, wenn in mehrere Stufen geteilte komprimierte Daten in dem in eine Vielzahl von Segmenten geteilten Kompressionsspeicher 22 gespeichert werden, die Stufe in einer Reihenfolge von einer Stufe mit einer größeren Stufennummer (Stufe Nummer #4) zu einer Stufe mit einer kleineren Stufennummer (Stufe Nummer #1) ineffektiv gemacht. Die Erfindung ist jedoch nicht hierauf beschränkt. Zum Beispiel kann die ineffektiv zu machende Stufe adaptiv ausgewählt werden.
- In dem vorstehend beschriebenen fünften Ausführungsbeispiel wird die in Fig. 54 gezeigte Segmentinformationstabelle verwendet. Die Erfindung ist jedoch nicht hierauf beschränkt, so dass verschiedene Modifikationen innerhalb des Gedankenguts und des Schutzbereichs der Erfindung gemacht werden können.
- In dem vorstehend beschriebenen vierten Ausführungsbeispiel wird die Erfindung zur Kommunikation verwendet. Die Erfindung ist jedoch nicht hierauf beschränkt. Zum Beispiel kann die Erfindung zur Datenmengenkompression verwendet werden, um die Größen von beispielsweise Bilddateien oder die Speichermenge eines Kopiergerätes zu reduzieren.
- In sowohl der Kodier- als auch der Dekodierbetriebsart werden die drei FF-Abschnitte zum Speichern von Farben verwendet. Die Anzahl von FF-Abschnitten ist jedoch nicht besonders beschränkt (z. B. können vier, fünf oder einhundert FF- Abschnitte verwendet werden). Mit zunehmender Anzahl von FF- Abschnitten kann die Anzahl von speicherbaren Farben vergrößert werden.
- Wenn die Farbe eines interessierenden Pixels nicht mit irgendwelchen in den FF-Abschnitten gehaltenen Farbdaten übereinstimmt, werden Farbdaten (24 Bit) nach den Kodedaten hinzugefügt. In diesem Fall können Farbdaten von m (m < 24) Bit hinzugefügt werden, und in diesem Fall kann auch die Anzahl von in dem Vergleichsabschnitt zu vergleichenden Bit m sein. In diesem Fall ist, obwohl ein reversibles Kodierverfahren gehemmt wird, da ein durch einen Computer erzeugtes, hoch frequentes Bild (z. B. ein Zeichenbild) nicht viele Gradationsniveaus erfordert, die Verschlechterung der Bildqualität nicht auffallend, so dass ein hohes Kompressionsverhältnis erreicht werden kann.
- Ferner können Palettendaten nach Kodedaten anstelle von Farbdaten hinzugefügt werden. In diesem Fall ist, obwohl eine Verbesserung des Kompressionsverhältnisses erwartet werden kann, eine Einrichtung zum Umwandeln von Farbdaten in Palettendaten zusätzlich erforderlich.
- Bei Kombination der reversiblen Kompression (CG-Kompression) und der ADCT-Kompression mit mehrstufiger Speicherung gemäß der Erfindung können ein durch einen Bildscanner gelesenes natürliches Bild und ein nieder frequentes Bild, wie beispielsweise ein Gradationsbild mit einer großen Anzahl von Farben, ADCT-komprimiert werden, und können andere Bildabschnitte CG-komprimiert werden, wodurch das Kompressionsverhältnis ohne Verschlechtern der Bildqualität verbessert werden kann.
- Erfindungsgemäß wird dann, wenn ein interessierender Pixel den selben Wert wie Farbdaten C1 des unmittelbar vorangehenden Pixels hat, der kürzeste Kode '1' ausgegeben; wenn der interessierende Pixel einen anderen Wert als C1, aber den selben Wert wie Farbdaten C2 eines zuletzt erscheinenden Pixels hat, wird der zweit kürzeste Kode '01' ausgegeben; wenn der interessierende Pixel einen von C1 und C2 verschiedenen, aber den selben Wert wie Farbdaten C3 eines zuletzt erscheinenden Pixels hat, wird der dritt kürzeste Kode '001' ausgegeben. Andererseits wird dann, wenn der interessierende Pixel einen von C1, C2 und C3 verschiedenen Wert hat, werden ein nicht verwendeter Kode '000' und Farbdaten zu dieser Zeit ausgegeben. Auf diese Art und Weise kann ein computer erzeugtes Bild reversibel mit einem hohen Kompressionsverhältnis kodiert werden, ohne eine auffallende Verschlechterung der Bildqualität zu verursachen.
- Die zu dieser Zeit erforderliche Speichermenge ist durch (Tiefe von Pixeldaten) x n gegeben. Wenn wie in dem vorstehenden Ausführungsbeispiel die Zahl n von Farbdaten = 3 und (Tiefe von Pixeldaten) = 24 Bit, braucht ein Speicher zum Speichern von Farbdaten nur eine 72 Bit kleine Speichermenge haben.
- Komplizierte Schaltungen, wie beispielsweise eine Laufidentifikationsschaltung, eine Huffman-Kodierschaltung und der gleichen sind nicht erforderlich, und zugeführte Pixeldaten können sequentiell verarbeitet werden. In einem Speicher zu speichernde Farbdaten brauchen keine zusätzlichen Informationen, wie beispielsweise strikte positionelle Informationen, zu haben, und obere l Bit (l < Tiefe von Pixeldaten) brauchen nur einfach mit oberen l Bit eines interessierenden Pixels verglichen zu werden, um ein Vergleichsergebnis auszugeben.
- Wie Fig. 28 (Kodierung) und 33 (Dekodierung) entnommen werden kann, kann eine Schaltung durch eine einfache Anordnung unter Verwendung von Flip-Flops und Vergleichern verwirklicht werden.
- Es können viele scheinbar stark unterschiedliche Ausführungsbeispiele der Erfindung ausgebildet werden, und es ist ohne weiteres klar, dass die Erfindung, mit Ausnahme der Definition in den beigefügten Patentansprüchen, nicht auf die bestimmten Ausführungsbeispiele der selben beschränkt ist.
Claims (44)
1. Bildverarbeitungsvorrichtung, umfassend:
eine Eingabeeinrichtung zum Eingeben von Daten
einschließlich Bilddaten;
eine Kodiereinrichtung (3 und 4 in Fig. 1) zum Kodieren
und Komprimieren von durch die Eingabeeinrichtung
eingegebenen Bilddaten, die selektiv in einer ersten Betriebsart zum
reversiblen Komprimieren der Bilddaten und in einer zweiten
Betriebsart zum irreversiblen Komprimieren der Bilddaten
betreibbar ist; und
eine Auswahleinrichtung (214 in Fig. 2) zum Auswählen
der ersten oder der zweiten Betriebsart,
dadurch gekennzeichnet, dass die Auswahl durch die
Auswahleinrichtung in Übereinstimmung mit einem Ergebnis des
Vergleichens einer Menge D durchgeführt wird, die durch
reversibles Komprimieren von Bilddaten mit einem Grenzwert L
erhältlich ist.
2. Vorrichtung nach Anspruch 1, bei der die Auswahl durch
die Auswahleinrichtung in Einheiten von Blöcken von Bilddaten
durchgeführt wird, von denen jeder eine jeweilige Vielzahl
von Pixeln umfasst.
3. Vorrichtung nach Anspruch 2, bei der die Kodierung in
der ersten Betriebsart in Einheiten von Pixeln durchgeführt
wird, und die Kodierung in der zweiten Betriebsart in
Einheiten von Blöcken durchgeführt wird.
4. Vorrichtung nach einem der vorangehenden Ansprüche, bei
der die Kodiereinrichtung umfasst:
eine Sortiereinrichtung (201 in Fig. 2) zum
eindimensionalen Sortieren von Pixeldaten des Blocks;
eine Zwischenspeichereinrichtung (202 in Fig. 2) zum
Zwischenspeichern der von der Sortiereinrichtung ausgegebenen
Pixeldaten;
eine erste Vergleichseinrichtung (206 in Fig. 2) zum
Vergleichen von ersten, durch die Zwischenspeichereinrichtung
(202) zwischengespeicherten Pixeldaten mit zweiten, von der
Sortiereinrichtung (201) nach den ersten Pixeldaten
ausgegebenen Pixeldaten, und Ausgeben eines ersten
Vergleichsergebnisses;
eine zweite Vergleichseinrichtung (207 bis 209 in Fig.
2) zum Vergleichen von vorab in zumindest einer
Halteeinrichtung (203 bis 205 in Fig. 2) gehaltenen Pixeldaten mit den
zweiten Pixeldaten, und Ausgeben zumindest eines
Vergleichsergebnisses;
eine Aktualisierungseinrichtung (211 in Fig. 2) zum
dann, wenn das erste Vergleichsergebnis eine
Nichtübereinstimmung anzeigt und das zweite Vergleichsergebnis eine
Übereinstimmung anzeigt, Aktualisieren von Pixeldaten in der
Halteeinrichtung (203), welche die mit den zweiten Pixeldaten
übereinstimmenden Pixeldaten hält, auf die durch die
Zwischenspeichereinrichtung (202) zwischengespeicherten
Pixeldaten, und zum dann, wenn sowohl das erste als auch das zweite
Vergleichsergebnis eine Nichtübereinstimmung anzeigen,
Aktualisieren von Pixeldaten in der Halteeinrichtung (203), welche
die ältesten Pixeldaten hält, auf die durch die
Zwischenspeichereinrichtung (202) zwischengespeicherten Pixeldaten; und
eine Ausgabeeinrichtung (211 in Fig. 2) zum dann, wenn
das erste Vergleichsergebnis eine Übereinstimmung anzeigt,
Ausgeben des ersten Vergleichsergebnisses, zum dann, wenn das
erste Vergleichsergebnis eine Nichtübereinstimmung anzeigt
und das zweite Vergleichsergebnis eine Übereinstimmung
anzeigt, Ausgeben des ersten Vergleichsergebnisses und des
zweiten Vergleichsergebnisses in einer vorbestimmten
Reihenfolge, und zum dann, wenn sowohl das erste als auch das
zweite Vergleichsergebnis eine Nichtübereinstimmung anzeigen,
Ausgeben des ersten Vergleichsergebnisses, des zweiten
Vergleichsergebnisses und der zweiten Pixeldaten in einer
vorbestimmten Reihenfolge.
5. Vorrichtung nach Anspruch 4, bei der das erste
Vergleichsergebnis ein 1-Bit-Signal ist und das zweite
Vergleichsergebnis ein aus zumindest 1 Bit bestehendes Signal
ist.
6. Vorrichtung nach Anspruch 4, bei der die
Kodiereinrichtung (214) ferner umfasst:
eine Berechnungseinrichtung (301 bis 305 und 311 bis 314
in Fig. 3) zum Berechnen der Kodemenge D auf der Grundlage
des ersten und des zweiten Vergleichsergebnisses;
eine Unterscheidungseinrichtung (306 bis 308, 310, 315
und 316 in Fig. 3) zum Unterscheiden einer Beziehung zwischen
der Kodemenge D und dem Grenzwert L; und
eine Wiederherstelleinrichtung (213 in Fig. 2) zum dann,
wenn ein Unterscheidungsergebnis der
Unterscheidungseinrichtung (306 bis 308, 310, 315 und 316) D > L anzeigt,
Wiederherstellen der durch die Zwischenspeichereinrichtung (202)
zwischengespeicherten Pixeldaten und in der Halteeinrichtung
(203) gehaltenen Pixeldaten in Daten vor dem Beginn der
Verarbeitung eines gegenwärtigen Blocks.
7. Vorrichtung nach Anspruch 6, bei der die
Berechnungseinrichtung (301 bis 305 und 311 bis 314) einen ersten Zähler
(301) zum Erhalten eines ersten Zählwerts durch Zählen der
Häufigkeit des Auftretens der durch das erste
Vergleichsergebnis angezeigten Nichtübereinstimmung und einen zweiten
Zähler (203) zum Erhalten eines zweiten Zählwerts durch
Zählen der Häufigkeit des Auftretens der gleichzeitig durch das
erste und das zweite Vergleichsergebnis angezeigten
Nichtübereinstimmung umfasst,
wobei die Kodemenge D aus dem ersten und dem zweiten
Zählwert berechnet wird.
8. Vorrichtung nach Anspruch 7, bei der die Kodemenge D
berechnet wird durch:
D = mXn+RX n + R X P + T X g
worin m X n die Anzahl von Pixeln des Blocks ist, P der erste
Zählwert ist, Q der zweite Zählwert ist, R die Anzahl von Bit
des zweiten Vergleichsergebnisses ist, und T die Anzahl von
Bit der Pixeldaten ist.
9. Vorrichtung nach Anspruch 6, bei der die
Unterscheidungseinrichtung (306 bis 308, 310, 315 und 316) umfasst:
eine Differenzberechnungseinheit (306, 307, 310 und
315), die zum Berechnen einer Differenz S zwischen dem
Grenzwert L und der Kodemenge D eines verarbeiteten Blocks
betreibbar ist, wobei S = L - D; und
eine Akkumulationseinheit (308), die dann, wenn das
Unterscheidungsergebnis in dem gegenwärtig zu verarbeitenden
Block D ≤ L anzeigt, zum Aktualisieren des Grenzwerts L mit
einer Summe aus einem vorbestimmten Wert C und der
berechneten Differenz S betreibbar ist.
10. Vorrichtung nach einem der Ansprüche 1 bis 3, bei der,
um in der zweiten Betriebsart betreibbar zu sein, die
Kodiereinrichtung umfasst:
eine Umwandlungseinrichtung (801 in Fig. 4) zum
Umwandeln eines Farbraums der Bilddaten;
eine Transformiereinrichtung (802 in Fig. 4) zum
orthogonalen Transformieren von durch die Umwandlungseinrichtung
umgewandelten Bilddaten;
eine Quantisiereinrichtung (803 in Fig. 4) zum
Quantisieren von von der Transformiereinrichtung ausgegebenen
Koeffizienten; und
eine Kodiereinrichtung (804 in Fig. 4) zum Kodieren von
von der Quantisiereinrichtung ausgegebenen quantisierten
Daten.
11. Vorrichtung nach Anspruch 10, bei der die
Kodiereinrichtung (804) zum Verteilen und Ausgeben von Kodes betreibbar
ist, die durch Kodieren der quantisierten Daten in
Übereinstimmung mit Raumfrequenzen der quantisierten Daten erhalten
wurden.
12. Bildverarbeitungsverfahren, umfassend die Schritte des:
Eingebens von Daten einschließlich Bilddaten;
Kodierens und Komprimierens von in dem Eingabeschritt
eingegebenen Bilddaten durch Betrieb einer Kodiereinrichtung
(3, 4), die selektiv in einer ersten Betriebsart zum
reversiblen Komprimieren der Bilddaten und in einer zweiten
Betriebsart zum irreversiblen Komprimieren der Bilddaten
betreibbar ist; und
Auswählens der ersten oder der zweiten Betriebsart,
dadurch gekennzeichnet, dass die Auswahl in dem
Auswahlschritt durch Vergleichen einer Menge D durchgeführt wird,
die durch reversibles Komprimieren von Bilddaten mit einem
Grenzwert L erhältlich ist.
13. Verfahren nach Anspruch 12, bei dem die Auswahl in dem
Auswahlschritt in Einheiten von Blöcken von Bilddaten
durchgeführt wird, von denen jeder eine jeweilige Vielzahl von
Pixeln umfasst.
14. Verfahren nach Anspruch 13, bei dem die Kodierung in der
ersten Betriebsart in Einheiten von Pixeln durchgeführt wird,
und die Kodierung in der zweiten Betriebsart in Einheiten von
Blöcken durchgeführt wird.
15. Verfahren nach einem der Ansprüche 12 bis 14, bei dem
der Kodier- und Kompressionsschritt die Schritte des:
eindimensionalen Sortierens von Pixeldaten des Blocks;
Zwischenspeicherns der durch den Sortierschritt
ausgegebenen Pixeldaten unter Verwendung eines Zwischenspeichers;
Vergleichens von ersten, durch die
Zwischenspeichereinrichtung zwischengespeicherten Pixeldaten mit zweiten, durch
den Sortierschritt nach den ersten Pixeldaten ausgegebenen
Pixeldaten, und Ausgebens eines ersten Vergleichsergebnisses;
Vergleichens von vorab in zumindest einer Halteeinheit
gehaltenen Pixeldaten mit den zweiten Pixeldaten, und
Ausgebens zumindest eines Vergleichsergebnisses;
Aktualisierens von Pixeldaten in der Halteeinheit,
welche die mit den zweiten Pixeldaten übereinstimmenden
Pixeldaten hält, auf die durch den Zwischenspeicher
zwischengespeicherten Pixeldaten, wenn das erste Vergleichsergebnis eine
Nichtübereinstimmung anzeigt und das zweite Vergleichsergebnis
eine Übereinstimmung anzeigt;
Aktualisierens von Pixeldaten in der Halteeinheit,
welche die ältesten Pixeldaten hält, auf die durch den
Zwischenspeicher zwischengespeicherten Pixeldaten, wenn sowohl das
erste als auch das zweite Vergleichsergebnis eine
Nichtübereinstimmung anzeigen; und
Ausgebens des ersten Vergleichsergebnisses, wenn das
erste Vergleichsergebnis eine Übereinstimmung anzeigt;
Ausgebens des ersten Vergleichsergebnisses und des
zweiten Vergleichsergebnisses in einer vorbestimmten Reihenfolge,
wenn das erste Vergleichsergebnis eine Nichtübereinstimmung
anzeigt und das zweite Vergleichsergebnis eine
Übereinstimmung anzeigt; und
Ausgebens des ersten Vergleichsergebnisses, des zweiten
Vergleichsergebnisses und der zweiten Pixeldaten in einer
vorbestimmten Reihenfolge, wenn sowohl das erste als auch das
zweite Vergleichsergebnis eine Nichtübereinstimmung anzeigen,
umfasst.
16. Verfahren nach Anspruch 15, bei dem das erste
Vergleichsergebnis ein 1-Bit-Signal ist und das zweite
Vergleichsergebnis ein aus zumindest 1 Bit bestehendes Signal
ist.
17. Verfahren nach Anspruch 15, bei dem der Kodier- und
Kompressionsschritt ferner die Schritte des:
Berechnens der Kodemenge D auf der Grundlage des ersten
und des zweiten Vergleichsergebnisses;
Unterscheidens einer Beziehung zwischen der Kodemenge D
und dem Grenzwert L; und
Wiederherstellens der durch den Zwischenspeicher
zwischengespeicherten Pixeldaten und in der Halteeineinheit
gehaltenen Pixeldaten in Daten vor dem Beginn der Verarbeitung
eines gegenwärtigen Blocks, wenn ein Unterscheidungsergebnis
des Unterscheidungsschritts D > L anzeigt, umfasst.
18. Verfahren nach Anspruch 17, bei dem der
Berechnungsschritt die Schritte des:
Erhaltens eines ersten Zählwerts durch Zählen der
Häufigkeit des Auftretens der durch das erste Vergleichsergebnis
angezeigten Nichtübereinstimmung; und
Erhaltens eines zweiten Zählwerts durch Zählen der
Häufigkeit des Auftretens der gleichzeitig durch das erste und
das zweite Vergleichsergebnis angezeigten
Nichtübereinstimmung umfasst,
wobei die Kodemenge D aus dem ersten und dem zweiten
Zählwert berechnet wird.
19. Verfahren nach Anspruch 18, bei dem die Kodemenge D
berechnet wird durch:
D = mXn + RX n + R X P + T X Q
worin m X n die Anzahl von Pixeln des Blocks ist, P der erste
Zählwert ist, Q der zweite Zählwert ist, R die Anzahl von Bit
des zweiten Vergleichsergebnisses ist, und T die Anzahl von
Bit der Pixeldaten ist.
20. Verfahren nach Anspruch 17, bei dem der
Unterscheidungsschritt die Schritte des:
Berechnens einer Differenz S zwischen dem Grenzwert L
und der Kodemenge D eines verarbeiteten Blocks, wobei
S = L - D; und
Aktualisierens des Grenzwerts L mit einer Summe aus
einem vorbestimmten Wert C und der berechneten Differenz S.
wenn das Unterscheidungsergebnis in dem gegenwärtig zu
verarbeitenden Block D ≤ L anzeigt, umfasst.
21. Verfahren nach einem der Ansprüche 12 bis 14, bei dem,
wenn die Kodiereinrichtung in der zweiten Betriebsart
arbeitet, der Kodier- und Kompressionsschritt die Schritte des:
Umwandelns eines Farbraums der Bilddaten;
orthogonalen Transformierens von in dem
Umwandlungsschritt umgewandelten Bilddaten;
Quantisierens von von dem Transformationsschritt
ausgegebenen Transformationskoeffizienten; und
Kodierens von von dem Quantisierschritt ausgegebenen
quantisierten Daten umfasst.
22. Verfahren nach Anspruch 21, bei dem in dem Kodierschritt
Kodes, die durch Kodieren der quantisierten Daten erhalten
wurden, in Übereinstimmung mit Raumfrequenzen der
quantisierten Daten verteilt und ausgegeben werden.
23. Bildverarbeitungsvorrichtung, umfassend:
eine Eingabeeinrichtung zum Eingeben von Daten
einschließlich Bilddaten;
eine Kodiereinrichtung (14 und 18 in Fig. 37) zum
Kodieren und Komprimieren von durch die Eingabeeinrichtung
eingegebenen Bilddaten, die selektiv in einer ersten Betriebsart
zum reversiblen Komprimieren der Bilddaten und in einer
zweiten Betriebsart zum irreversiblen Komprimieren der Bilddaten
betreibbar ist; und
eine Auswahleinrichtung (15 in Fig. 37) zum Auswählen
der ersten oder der zweiten Betriebsart,
dadurch gekennzeichnet, dass die Auswahl durch die
Auswahleinrichtung in Übereinstimmung mit einem Ergebnis einer
Unterscheidung, ob das Bild ein natürliches Bild oder ein
anderes Bild als ein natürliches Bild repräsentiert, und, wenn
zumindest ein Teil der Bilddaten andere Bilddaten als
natürliche Bilddaten repräsentieren, auch mit einem Ergebnis des
Vergleichens der Kodemenge (D), die durch reversibles
Komprimieren des zumindest Teils der Bilddaten mit einem Grenzwert
(L) erhältlich ist, durchgeführt wird.
24. Vorrichtung nach Anspruch 23, bei der die Auswahl durch
die Auswahleinrichtung in Einheiten von Blöcken von Bilddaten
durchgeführt wird, von denen jeder eine jeweilige Vielzahl
von Pixeln umfasst.
25. Vorrichtung nach Anspruch 24, bei der die Kodierung in
der ersten Betriebsart in Einheiten von Pixeln durchgeführt
wird, und die Kodierung in der zweiten Betriebsart in
Einheiten von Blöcken durchgeführt wird.
26. Vorrichtung nach einem der Ansprüche 23 bis 25, bei der
die Kodiereinrichtung umfasst:
eine Sortiereinrichtung (1201) zum eindimensionalen
Sortieren von Pixeldaten des Blocks;
eine Zwischenspeichereinrichtung (1202) zum
Zwischenspeichern der von der Sortiereinrichtung ausgegebenen
Pixeldaten;
eine erste Vergleichseinrichtung (1206) zum Vergleichen
von ersten, durch die Zwischenspeichereinrichtung (1202)
zwischengespeicherten Pixeldaten mit zweiten, von der
Sortiereinrichtung (1201) nach den ersten Pixeldaten ausgegebenen
Pixeldaten, und Ausgeben eines ersten Vergleichsergebnisses;
eine zweite Vergleichseinrichtung (1207 bis 1209) zum
Vergleichen von vorab in zumindest einer Halteeinrichtung
(1203 bis 1205) gehaltenen Pixeldaten mit den zweiten
Pixeldaten, und Ausgeben zumindest eines Vergleichsergebnisses;
eine Aktualisierungseinrichtung (1211) zum dann, wenn
das erste Vergleichsergebnis eine Nichtübereinstimmung
anzeigt und das zweite Vergleichsergebnis eine Übereinstimmung
anzeigt, Aktualisieren von Pixeldaten in der Halteeinrichtung
(1203), welche die mit den zweiten Pixeldaten
übereinstimmenden Pixeldaten hält, auf die durch die
Zwischenspeichereinrichtung (1202) zwischengespeicherten Pixeldaten, und zum
dann, wenn sowohl das erste als auch das zweite
Vergleichsergebnis eine Nichtübereinstimmung anzeigen, Aktualisieren von
Pixeldaten in der Halteeinrichtung (1203), welche die
ältesten Pixeldaten hält, auf die durch die
Zwischenspeichereinrichtung (1202) zwischengespeicherten Pixeldaten; und
eine Ausgabeeinrichtung (1211) zum dann, wenn das erste
Vergleichsergebnis eine Übereinstimmung anzeigt, Ausgeben des
ersten Vergleichsergebnisses, zum dann, wenn das erste
Vergleichsergebnis eine Nichtübereinstimmung anzeigt und das
zweite Vergleichsergebnis eine Übereinstimmung anzeigt,
Ausgeben des ersten Vergleichsergebnisses und des zweiten
Vergleichsergebnisses in einer vorbestimmten Reihenfolge, und
zum dann, wenn sowohl das erste als auch das zweite
Vergleichsergebnis eine Nichtübereinstimmung anzeigen, Ausgeben
des ersten Vergleichsergebnisses, des zweiten
Vergleichsergebnisses und der zweiten Pixeldaten in einer vorbestimmten
Reihenfolge.
27. Vorrichtung nach Anspruch 26, bei der das erste
Vergleichsergebnis ein 1-Bit-Signal ist und das zweite
Vergleichsergebnis ein aus zumindest 1 Bit bestehendes Signal
ist.
28. Vorrichtung nach Anspruch 26, bei der die
Kodiereinrichtung ferner umfasst:
eine Berechnungseinrichtung (1301 bis 1305, 1311 bis
1314) zum Berechnen der Kodemenge D auf der Grundlage des
ersten und des zweiten Vergleichsergebnisses;
eine Unterscheidungseinrichtung (1306 bis 1313) zum
Unterscheiden einer Beziehung zwischen der Kodemenge D und dem
Grenzwert L; und
eine Wiederherstelleinrichtung (1213) zum dann, wenn ein
Unterscheidungsergebnis der Unterscheidungseinrichtung D > L
anzeigt, Wiederherstellen der durch die
Zwischenspeichereinrichtung zwischengespeicherten Pixeldaten und in der
Halteeinrichtung gehaltenen Pixeldaten in Daten vor dem Beginn der
Verarbeitung eines gegenwärtigen Blocks.
29. Vorrichtung nach Anspruch 28, bei der die
Berechnungseinrichtung einen ersten Zähler (1301) zum Erhalten eines
ersten Zählwerts durch Zählen der Häufigkeit des Auftretens
der durch das erste Vergleichsergebnis angezeigten
Nichtübereinstimmung und einen zweiten Zähler (1203) zum Erhalten
eines zweiten Zählwerts durch Zählen der Häufigkeit des
Auftretens der gleichzeitig durch das erste und das zweite
Vergleichsergebnis angezeigten Nichtübereinstimmung umfasst,
wobei die Kodemenge D aus dem ersten und dem zweiten
Zählwert berechnet wird.
30. Vorrichtung nach Anspruch 29, bei der die Kodemenge D
berechnet wird durch:
D = mXn + RX n + R X P + T X Q
worin m X n die Anzahl von Pixeln des Blocks ist, P der erste
Zählwert ist, Q der zweite Zählwert ist, R die Anzahl von Bit
des zweiten Vergleichsergebnisses ist, und T die Anzahl von
Bit der Pixeldaten ist.
31. Vorrichtung nach Anspruch 28, bei der die
Unterscheidungseinrichtung umfasst:
eine Differenzberechnungseinheit (1309), die zum
Berechnen einer Differenz S zwischen dem Grenzwert L und der
Kodemenge D eines verarbeiteten Blocks betreibbar ist, wobei
S = L - D; und
eine Akkumulationseinheit, die dann, wenn das
Unterscheidungsergebnis in dem gegenwärtig zu verarbeitenden Block
D s L anzeigt, zum Aktualisieren des Grenzwerts L mit einer
Summe aus einem vorbestimmten Wert C und der berechneten
Differenz S betreibbar ist.
32. Vorrichtung nach einem der Ansprüche 23 bis 25, bei der,
um in der zweiten Betriebsart betreibbar zu sein, die
Kodiereinrichtung umfasst:
eine Umwandlungseinrichtung (801 in Fig. 4) zum
Umwandeln eines Farbraums der Bilddaten;
eine Transformiereinrichtung (802 in Fig. 4) zum
orthogonalen Transformieren von durch die Umwandlungseinrichtung
umgewandelten Bilddaten;
eine Quantisiereinrichtung (803 in Fig. 4) zum
guantisieren von von der Transformiereinrichtung ausgegebenen
Koeffizienten; und
eine Kodiereinrichtung (804 in Fig. 4) zum Kodieren von
von der Quantisiereinrichtung ausgegebenen quantisierten
Daten.
33. Vorrichtung nach Anspruch 32, bei der die
Kodiereinrichtung (804) zum Verteilen und Ausgeben von Kodes betreibbar
ist, die durch Kodieren der quantisierten Daten in
Übereinstimmung mit Raumfrequenzen der quantisierten Daten erhalten
wurden.
34. Bildverarbeitungsverfahren, umfassend die Schritte des:
Eingebens von Daten einschließlich Bilddaten;
Kodierens und Komprimierens von in dem Eingabeschritt
eingegebenen Bilddaten durch Betrieb einer Kodiereinrichtung
(3, 4), die selektiv in einer ersten Betriebsart zum
reversiblen Komprimieren der Bilddaten und in einer zweiten
Betriebsart
zum irreversiblen Komprimieren der Bilddaten
betreibbar ist; und
Auswählens der ersten oder der zweiten Betriebsart,
dadurch gekennzeichnet, dass die Auswahl in dem
Auswahlschritt in Übereinstimmung mit einem Ergebnis einer
Unterscheidung, ob das Bild ein natürliches Bild oder ein anderes
Bild als ein natürliches Bild repräsentiert, und, wenn
zumindest ein Teil der Bilddaten andere Bilddaten als natürliche
Bilddaten repräsentieren, auch mit einem Ergebnis des
Vergleichens der Kodemenge (D), die durch reversibles
Komprimieren des zumindest Teils der Bilddaten mit einem Grenzwert (L)
erhältlich ist, durchgeführt wird.
35. Verfahren nach Anspruch 34, bei dem die Auswahl in dem
Auswahlschritt in Einheiten von Blöcken von Bilddaten
durchgeführt wird, von denen jeder eine jeweilige Vielzahl von
Pixeln umfasst.
36. Verfahren nach Anspruch 35, bei dem die Kodierung in der
ersten Betriebsart in Einheiten von Pixeln durchgeführt wird,
und die Kodierung in der zweiten Betriebsart in Einheiten von
Blöcken durchgeführt wird.
37. Verfahren nach einem der Ansprüche 34 bis 36, bei dem
der Kodier- und Kompressionsschritt die Schritte des:
eindimensionalen Sortierens von Pixeldaten des Blocks;
Zwischenspeicherns der durch den Sortierschritt
ausgegebenen Pixeldaten unter Verwendung eines Zwischenspeichers;
Vergleichens von ersten, durch die
Zwischenspeichereinrichtung zwischengespeicherten Pixeldaten mit zweiten, durch
den Sortierschritt nach den ersten Pixeldaten ausgegebenen
Pixeldaten, und Ausgebens eines ersten Vergleichsergebnisses;
Vergleichens von vorab in zumindest einer Halteeinheit
gehaltenen Pixeldaten mit den zweiten Pixeldaten, und
Ausgebens zumindest eines Vergleichsergebnisses;
Aktualisierens von Pixeldaten in der Halteeinheit,
welche die mit den zweiten Pixeldaten übereinstimmenden
Pixeldaten hält, auf die durch den Zwischenspeicher
zwischengespeicherten Pixeldaten, wenn das erste Vergleichsergebnis eine
Nichtübereinstimmung anzeigt und das zweite
Vergleichsergebnis eine Übereinstimmung anzeigt;
Aktualisierens von Pixeldaten in der Halteeinheit,
welche die ältesten Pixeldaten hält, auf die durch den
Zwischenspeicher zwischengespeicherten Pixeldaten, wenn sowohl das
erste als auch das zweite Vergleichsergebnis eine
Nichtübereinstimmung anzeigen; und
Ausgebens des ersten Vergleichsergebnisses, wenn das
erste Vergleichsergebnis eine Übereinstimmung anzeigt;
Ausgebens des ersten Vergleichsergebnisses und des
zweiten Vergleichsergebnisses in einer vorbestimmten Reihenfolge,
wenn das erste Vergleichsergebnis eine Nichtübereinstimmung
anzeigt und das zweite Vergleichsergebnis eine
Übereinstimmung anzeigt; und
Ausgebens des ersten Vergleichsergebnisses, des zweiten
Vergleichsergebnisses und der zweiten Pixeldaten in einer
vorbestimmten Reihenfolge, wenn sowohl das erste als auch das
zweite Vergleichsergebnis eine Nichtübereinstimmung anzeigen,
umfasst.
38. Verfahren nach Anspruch 37, bei dem das erste
Vergleichsergebnis ein 1-Bit-Signal ist und das zweite
Vergleichsergebnis ein aus zumindest 1 Bit bestehendes Signal
ist.
39. Verfahren nach Anspruch 37, bei dem der Kodier- und
Kompressionsschritt ferner die Schritte des:
Berechnens der Kodemenge D auf der Grundlage des ersten
und des zweiten Vergleichsergebnisses;
Unterscheidens einer Beziehung zwischen der Kodemenge D
und dem Grenzwert L; und
Wiederherstellens der durch den Zwischenspeicher
zwischengespeicherten Pixeldaten und in der Halteeineinheit
gehaltenen Pixeldaten in Daten vor dem Beginn der Verarbeitung
eines gegenwärtigen Blocks, wenn ein Unterscheidungsergebnis
des Unterscheidungsschritts D > L anzeigt, umfasst.
40. Verfahren nach Anspruch 39, bei dem der
Berechnungsschritt die Schritte des:
Erhaltens eines ersten Zählwerts durch Zählen der
Häufigkeit des Auftretens der durch das erste Vergleichsergebnis
angezeigten Nichtübereinstimmung; und
Erhaltens eines zweiten Zählwerts durch Zählen der
Häufigkeit des Auftretens der gleichzeitig durch das erste und
das zweite Vergleichsergebnis angezeigten
Nichtübereinstimmung umfasst,
wobei die Kodemenge D aus dem ersten und dem zweiten
Zählwert berechnet wird.
41. Verfahren nach Anspruch 40, bei dem die Kodemenge D
berechnet wird durch:
D = m X n + R X P + T X Q
worin m X n die Anzahl von Pixeln des Blocks ist, P der erste
Zählwert ist, g der zweite Zählwert ist, R die Anzahl von Bit
des zweiten Vergleichsergebnisses ist, und T die Anzahl von
Bit der Pixeldaten ist.
42. Verfahren nach Anspruch 39, bei dem der
Unterscheidungsschritt die Schritte des:
Berechnens einer Differenz 5 zwischen dem Grenzwert L
und der Kodemenge D eines verarbeiteten Blocks, wobei
S = L - D; und
Aktualisierens des Grenzwerts L mit einer Summe aus
einem vorbestimmten Wert C und der berechneten Differenz S.
wenn das Unterscheidungsergebnis in dem gegenwärtig zu
verarbeitenden Block D s L anzeigt, umfasst.
43. Verfahren nach einem der Ansprüche 34 bis 36, bei dem,
wenn die Kodiereinrichtung in der zweiten Betriebsart
arbeitet, der Kodier- und Kompressionsschritt die Schritte des:
Umwandelns eines Farbraums der Bilddaten;
orthogonalen Transformierens von in dem
Umwandlungsschritt umgewandelten Bilddaten;
Quantisierens von von dem Transformationsschritt
ausgegebenen Transformationskoeffizienten; und
Kodierens von von dem Quantisierschritt ausgegebenen
quantisierten Daten umfasst.
44. Verfahren nach Anspruch 43, bei dem in dem Kodierschritt
Kodes, die durch Kodieren der quantisierten Daten erhalten
wurden, in Übereinstimmung mit Raumfrequenzen der
quantisierten Daten verteilt und ausgegeben werden.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20494092A JP3236079B2 (ja) | 1992-07-31 | 1992-07-31 | 画像データ圧縮方法 |
JP20524792 | 1992-07-31 | ||
JP4205249A JPH0654208A (ja) | 1992-07-31 | 1992-07-31 | 画像処理方法および画像処理装置 |
EP93305801A EP0586074B1 (de) | 1992-07-31 | 1993-07-22 | Bildverarbeitungsgerät und Verfahren zur mehrstufigen Kompression |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69329519D1 DE69329519D1 (de) | 2000-11-09 |
DE69329519T2 true DE69329519T2 (de) | 2001-05-17 |
Family
ID=27442678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1993629519 Expired - Lifetime DE69329519T2 (de) | 1992-07-31 | 1993-07-28 | Verfahren und Vorrichtung zur Bildverarbeitung |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE69329519T2 (de) |
-
1993
- 1993-07-28 DE DE1993629519 patent/DE69329519T2/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69329519D1 (de) | 2000-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3005775C2 (de) | Kodierverfahren für ein Farbbild | |
DE68918605T2 (de) | Verfahren zur Speicherung und Übertragung von Bilddaten als Bilddatengruppe, passend zur Bildsuche. | |
DE69131369T2 (de) | Gerät und Verfahren zur Bildverarbeitung | |
DE69130275T2 (de) | Verfahren und Gerät zur Bildverarbeitung | |
DE69327375T2 (de) | Verfahren und Vorrichtung zur Wiederherstellung von Bilddaten | |
DE3814627C2 (de) | ||
DE69516734T2 (de) | Bildverarbeitungsverfahren und -gerät | |
DE69322351T2 (de) | Verbesserte Dekomprimierung von Standard ADCT-komprimierten Bildern | |
DE69226095T2 (de) | Bildkodier- und Dekodiersystem unter Verwendung einer Orthogonaltransformation und Bitzuordnungsverfahren | |
DE69333288T2 (de) | Verbesserte vektorquantisierung | |
DE69738515T2 (de) | Vorrichtung und verfahren für hybride kompression von rasterdaten | |
DE69332584T2 (de) | Verbesserte vorverarbeitung und nachverarbeitung von vektorquantifizierung | |
DE69919641T2 (de) | Adaptive Videokompromierung mit variabler Quantisierung | |
DE4133460C2 (de) | Verfahren zum Verdichten von Bildern | |
DE69220269T2 (de) | Anordnung und Verfahren zur Vorverarbeitung binärer Bilddaten von Lauflängekodierung | |
DE69531080T2 (de) | System und Verfahren zur Bildkompression | |
DE69127739T2 (de) | Bilddatenverarbeitungsgerät | |
DE69132625T2 (de) | Gerät zur Bildverarbeitung | |
DE4309105C2 (de) | Verfahren zum Behandeln eines Teils eines verdichteten Bildes für eine Aufbereitung | |
DE69426792T2 (de) | Bildverarbeitungsverfahren und -gerät | |
DE69316504T2 (de) | Bildprozessor und Druckgerät | |
DE60038550T2 (de) | Verfahren und Vorrichtung zur Farbbilddatenbearbeitung und Kompression | |
DE69607529T2 (de) | Kodierung von videofarbbildern | |
US6028961A (en) | Image processing method and apparatus | |
DE69523419T2 (de) | Effiziente iterative Dekomprimierung von standard-ADCT-komprimierten Bildern |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |