DE69133175T2 - Ein Bilddaten-Bearbeitungssystem - Google Patents
Ein Bilddaten-BearbeitungssystemInfo
- Publication number
- DE69133175T2 DE69133175T2 DE69133175T DE69133175T DE69133175T2 DE 69133175 T2 DE69133175 T2 DE 69133175T2 DE 69133175 T DE69133175 T DE 69133175T DE 69133175 T DE69133175 T DE 69133175T DE 69133175 T2 DE69133175 T2 DE 69133175T2
- Authority
- DE
- Germany
- Prior art keywords
- dct
- data
- coefficients
- image data
- matrix
- 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 - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/12—Systems in which the television signal is transmitted via one channel or a plurality of parallel channels, the bandwidth of each channel being less than the bandwidth of the television signal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Discrete Mathematics (AREA)
- Computing Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
- Diese Erfindung betrifft ein Verfahren zum Wiederherstellen von Bilddaten von Bildern mit kontinuierlichem Ton, wie Grauton- oder Grauskalenbildern und Farbbildern, insbesondere ein Verfahren zum Wiederherstellen von Bilddaten, welche nach der Aufteilung eines Bildes mit kontinuierlichem Ton in Blöcke codiert wurden, die eine Vielzahl von Bildelementen umfassen, und zum anschließenden Durchführen orthogonaler Transformationen für die Bildelemente in jedem Block.
- Wenn die Volumen von Bilddaten, die Bilder mit kontinuierlichem Ton, wie Grauskalenbilder und Farbbilder, repräsentieren, zu groß sind, ist es notwendig, das Gesamtvolumen von Bilddaten, wenn sie gespeichert oder übertragen werden, zu komprimieren.
- Unter derartigen Bedingungen wird die adaptive diskrete Kosinustransformation (nachstehend ADCT abgekürzt), eine orthogonale Transformation, zum Komprimieren und Codieren von Bilddaten ohne Änderung der Charakteristiken von Bilddaten mit kontinuierlichem Ton verbreitet verwendet.
- Das beschriebene Verfahren der verwandten Technik ist das ADCT-Verfahren, das als orthogonales Transformations verfahren verbreitet verwendet wird.
- Gemäß dem ADCT-Verfahren werden Bilder in Blöcke geteilt, die z. B. 8·8 Bildelemente umfassen. DCT-Koeffizienten. welche die Verteilung von Raumfrequenzen ausdrücken, werden bestimmt, indem die zweidimensionalen diskreten Kosinustransformationen (nachstehend DCTs abgekürzt) für die Bildsignale von jeweiligen geteilten Blöcken durchgeführt werden. Die Bildsignale werden durch das Quantisieren der DCT-Koeffizienten unter Verwendung von Schwellen, die Ansichten entsprechen, gemäß einer Huffman-Tabelle codiert, die statistisch aus den quantisierten Koeffizienten erhalten wird.
- Fig. 1 und 2 sind funktionelle Blockbilder, welche die ADCT-Codierprozesse veranschaulichen. Fig. 1 zeigt die Grundkonfiguration einer ADCT-Codierschaltung, und Fig. 2 zeigt detailliert die Konfiguration einer zweidimensionalen DCT- Einheit, welche die ADCT-Codierschaltung bildet.
- Fig. 3 und 4 sind funktionelle Blockbilder, welche die ADCT-Decodierprozesse veranschaulichen. Fig. 3 zeigt die Grundkonfiguration einer ADCT-Decodierschaltung, und Fig. 4 zeigt detailliert die Konfiguration einer zweidimensionalen inversen DCT-Einheit der ADCT-Decodierschaltung.
- Fig. 5 zeigt Beispiele von Daten für ein Originalbild, das von der zweidimensionalen DCT-Einheit empfangen wird.
- Fig. 6 zeigt Beispiele von DCT-Koeffizienten, die eine Raumfrequenzverteilung repräsentieren.
- Zuerst werden die ADCT-Codierprozesse mit Bezugnahme auf die funktionellen Blockbilder der in Fig. 1 und 2 gezeigten ADCT-Codierprozesse beschrieben.
- Als zweites werden die ADCT-Decodierprozesse mit Bezugnahme auf die funktionellen Blockbilder der in Fig. 3 und 4 gezeigten ADCT-Decodierprozesse beschrieben.
- Eine zweidimensionale DCT-Einheit 40 empfängt vierundsechzig (64) Bildsignale, wie die in Fig. 5 gezeigten, für einen Block, der 8·8 Bildelemente umfaßt. Durch die Verarbeitung der zweidimensionalen DCTs für die empfangenen Bildsignale berechnet die zweidimensionale DCT-Einheit 40 die DCT-Koeffizienten, die eine Raumfrequenzverteilung repräsentieren, wie die in Fig. 6 gezeigten, und gibt sie an einen linearen Quantisierer 41 in der nächsten Stufe aus.
- Fig. 2 zeigt die Prozesse der Berechnung der DCT-Koeffizienten konkreter, die von der zweidimensionalen DCT-Einheit 40 ausgeführt werden. Eine eindimensionale DCT-Einheit 400 multipliziert die Matrix, welche die empfangenen Bildsignale repräsentiert, mit der Matrix, welche die in einer DCT-Konstantenspeichereinheit 401 gespeicherten DCT-Koeffizienten (Konstanten mit einem 8·8 Matrixdatenformat) repräsentiert, und ein Transponierer 402 transponiert die als Ergebnis der Matrixmultiplikation in der eindimensionalen DCT-Einheit 400 erhaltene Produktmatrix. Dann multipliziert eine eindimensionale DCT-Einheit 403 die transponierte Matrix, die durch die Matrixtransposition im Transponierer 402 erhalten wurde, mit der Matrix, welche die in der DCT-Konstantenspeichereinheit 401 gespeicherten DCT-Konstanten repräsentiert.
- Schließlich transponiert der Transponierer 404 die Produktmatrix, die aus der Matrixmultiplikation in der eindimensionalen DCT-Einheit 403 erhalten wurde, und gibt, als Matrix, welche die von der zweidimensionalen DCT-Einheit 40 aus den empfangenen Bildsignalen berechneten DCT-Koeffizienten repräsentiert, die transponierte Matrix aus, die aus der Matrixtransposition im Transponierer 404 erhalten wurde.
- Beim Empfangen der von der zweidimensionalen DCT-Einheit 40 berechneten DCT-Koeffizienten quantisiert der lineare Quantisierer 41 jene, die kleiner sind als die entsprechenden Schwellen, in "0", und quantisiert jene, die nicht kleiner sind als die entsprechenden Schwellen, in den ganzzahligen Quotienten, der durch das Teilen der jeweiligen DCT-Koeffizienten durch die Quantisierungsschwellen erhalten wird, die in den entsprechenden Matrixpositionen in einer Quantisierungsschwellen-Speichereinheit 42 gespeichert, sind.
- Fig. 7 zeigt Beispiele von Quantisierungsschwellen (im 8·8 Matrixdatenformat), die in der Quantisierungsschwellen- Speichereinheit 42 gespeichert sind und für die jeweiligen Teilungen verwendet werden.
- Fig. 8 zeigt Beispiele von quantisierten Koeffizienten (im 8·8 Matrixdatenformat). In diesem Fall sind nur das D.C.
- (Gleichstrom)-Element (Matrixwert der ersten Reihe und der ersten Spalte) und einige A. C. (Wechselstrom)-Elemente (andere Matrixwerte als die erste Reihe und die erste Spalte) der quantisierten Koeffizienten positiv.
- Fig. 9 zeigt die Scan-Reihenfolge der generierten quantisierten Koeffizienten (von den Elementen der Raumfrequenzen mit niedrigerer Frequenz zu den Elementen mit höherer Frequenz). Der lineare Quantisierer 41 gibt die generierten quantisierten Koeffizienten an einen Codierer 43 mit variabler Länge in der nächsten Stufe gemäß der in Fig. 9 gezeigten Zickzackreihenfolge aus.
- Beim Empfang dieser quantisierten Koeffizienten codiert der Codierer 43 mit variabler Länge generierte quantisierte Koeffizienten unter Bezugnahme auf eine Codetabelle 44, welche aus einer Huffman-Tabelle besteht, die durch statistische Werte für die jeweiligen Bilder erstellt wurde. Hinsichtlich ihrer D.C.-Komponente wird die Differenz zwischen den D.C.-Elementen des aktuellen und der vorhergehenden Blöcke unter Verwendung einer variablen Länge codiert. Hinsichtlich ihrer A.C.-Komponenten wird die Lauflänge zwischen quantisierten Koeffizienten, die von 0 verschieden sind, (nachstehend als Indexwerte bezeichnet) unter Verwendung variabler Längen codiert. Der Codierer 43 mit variabler Länge gibt sequentiell die Codedaten an die externen Einheiten aus.
- Als zweitens empfängt ein Decodierer 50 mit variabler Länge die durch die obigen ADCT-Prozesse codierten Codedaten. Der Decodierer 50 mit variabler Länge decodiert die empfangenen Codedaten in Daten mit fester Länge der Indexdaten und der Lauflängen und gibt die decodierten Daten an einen Dequantisierer 52 gemäß einer Docodiertabelle 51 aus, welche aus einer Tabelle besteht, die zur die Codetabelle 44 bildenden Huffman-Tabelle invers ist.
- Beim Empfang der decodierten Daten (der decodierten quantisierten Koeffizienten) stellt der Dequantisierer 52 die DCT-Koeffizienten durch eine Dequantisierung wieder her, indem die entsprechenden decodierten Daten mit den Schwellen multipliziert werden, die in den entsprechenden Positionen in einer Quantisierungsschwellen-Speichereinheit 53 gespeichert sind (zum Steuern derselben Quantisierungsschwellen wie den im Quantisierungsschwellenspeicher 42 gespeicherten). Der Dequantisierer 52 gibt die wiederhergestellten DCT-Koeffizienten an eine zweidimensionale inverse DCT- Einheit 54 in der nächsten Stufe aus.
- Beim Empfang der wiederhergestellten DCT-Koeffizienten stellt die zweidimensionale inverse DCT-Einheit 54 die Bildsignale aus den wiederhergestellten DCT-Koeffizienten wieder her, welche die Verteilung der Raumfrequenzen anzeigen, indem inverse DCT-Prozesse für die wiederhergestellten DCT- Koeffizienten verwendet werden.
- Fig. 4 zeigt die Prozesse der Wiederherstellung der Bildsignale konkreter, die in der zweidimensionalen inversen DCT-Einheit 54 ausgeführt werden. Eine eindimensionale inverse DCT-Einheit 540 multipliziert die Matrix, welche die wiederhergestellten DCT-Koeffizienten repräsentiert, mit der Matrix, welche die im inversen DCT-Konstantenspeicher 541 gespeicherten inversen DCT-Konstanten repräsentiert (die transponierte Matrix der Matrix, welche die im DCT-Konstantenspeicher 401 gespeicherten DCT-Konstanten repräsentiert). Ein Transponierer 542 transponiert die aus der Matrixmultiplikation in der eindimensionalen inversen DCT-Einheit 540 erhaltene Produktmatrix. Dann multipliziert eine eindimensionale inverse DCT-Einheit 543 die transponierte Matrix, die durch die Matrixtransposition im Transponierer 542 erhalten wurde, mit der Matrix, welche die im inversen DCT- Konstantenspeicher 541 gespeicherten inversen DCT-Konstanten repräsentiert. Schließlich transponiert der Transponierer 544 die Produktmatrix, die aus der Matrixmultiplikation in der eindimensionalen inversen DCT-Einheit 543 erhalten wurde, und gibt, als Matrix, welche die aus den DCT-Koeffiziehten von der zweidimensionalen inversen DCT-Einheit 54 wiederhergestellten Bildsignale repräsentiert, die transponierte Matrix aus, die aus der Matrixtransposition im Transponierer 544 erhalten wurde.
- Als nächstes wird die bekannte Schaltungskonfiguration der eindimensionalen DCT-Einheit 400 in der zweidimensionalen DCT-Einheit 40 erläutert. Die eindimensional DCT-Einheit 403 in der zweidimensionalen DCT-Einheit 40 und die eindimensionale inverse DCT-Einheit 540 und 543 in der zweidimensionalen inversen DCT-Einheit 54 haben genau dieselbe Schaltungskonfiguration.
- Hier wird angenommen, daß die empfangenen Bildsignale für 8·8 Bildelemente durch eine 8·8 Matrix X ausgedrückt werden, daß die im DCT-Konstantspeicher 401 gespeicherten DCT-Konstanten durch eine 8·8 Matrix A ausgedrückt werden, und daß die von der eindimensionalen DCT-Einheit 400 erhaltene Produktmatrix A·X durch eine 8·8 Matrix Y ausgedrückt wird.
- Die Matrixmultiplikation wird durch das Multiplizieren der Reihen der ersten Matrix mit den Spalten der zweiten Matrix durchgeführt. Spezifischer ermittelt die eindimensional DCT-Einheit 400 einen Elementwert Yab der Matrix Y in einer Reihe a und Spalte b durch die Summe der Produkte zwischen den entsprechenden Elementen einer Reihenmatrix Aaj der ersten Matrix, d. h. Matrix A, und den entsprechenden Elementen einer Spaltenmatrix Xjb der zweiten Matrix, d. h. Matrix X, für alle ganzen Zahlen j 1 bis 8. Das heißt,
- Yab = SIGMA(j = 1 bis 8) Aaj·Xjb.
- Durch die Definition Fajb = j·Xjb wird der Zweck mäßigkeit halber die obige Gleichung umgeschrieben:
- Yab = SIGMA(j = 1 bis 8) Fajb [1]
- Zur Realisation der obigen Produktsummenoperationen für alle Kombinationen ganzer Zahlen a und b 1 bis 8 wird herkömmlich eine Anordnung verwendet, die Verriegelungsschaltungen, Multiplizierer, Addierer und einen Multiplexer umfaßt, wie die in Fig. 10 gezeigte, um die eindimensionale DCT-Einheit 400 zu verkörpern.
- Eine Verriegelungsschaltung 410 setzt sequentiell eines der acht (8) empfangenen Bildsignale Xjb (worin j eine ganze Zahl 1 bis 8 ist), welche die acht (8) Bildelemente in der Spalte b eines 8·8 Bildelementblocks repräsentieren.
- Das Folgende ist eine Beschreibung des j.ten Schritts in der Verarbeitung des j.ten Bildsignals Xjb.
- Die eindimensionale DCT-Einheit 400 läßt den DCT-Konstantenspeicher 401 gleichzeitig an acht (8) Verriegelungsschaltungen 411-1 bis 411-8 acht (8) entsprechende DCT- Konstanten Aij (worin i eine ganze Zahl 1 bis 8 ist) ausgeben, die acht (8) DCT-Konstanten zum Gewichten der acht (8) Bildelemente in einer bestimmten Spalte eines 8·8 Bildelementblocks repräsentieren.
- Acht (8) Multiplizierer 412-1 bis 412-8, welche in Entsprechung zu acht (8) Verriegelungsschaltungen 411-1 bis 411-8 vorgesehen sind, multiplizieren jeweils die DCT-Konstanten A&sub1;j bis A&sub8;J, die in den Verriegelungsschaltungen 411-1 bis 411-8 gesetzt und von diesen empfangen werden, mit dem Bildsignal Xjb, das in der Verriegelungsschaltung 410 gesetzt und von dieser empfangen wird, und setzen die Produkte in den Verriegelungsschaltungen 413-1 bis 413-8.
- So werden parallel acht (8) j.te Terme F&sub1;jb bis F&sub8;jb von acht (8) Gleichungen mit demselben Format wie Gleichung [1] berechnet, um acht (8) Elementwerte Y&sub1;b bis Y&sub8;b ·Ln der Spalte b der Produktmatrix Y zu erhalten.
- Acht (8) Addierer 414-1 bis 414-8, die in Entsprechung zu acht (8) Verriegelungsschaltungen 413-1 bis 413-8 vorgesehen sind, addieren die erhaltenen Produkte F&sub1;jb bis F&sub8;jb/- die als jeweilige j.te Tenne auf der rechten Seite von acht (8) Gleichungen auftreten, um acht (8) Elementwerte Y&sub1;b bis Y&sub8;b in der Spalte b der Produktmatrix Y zu den Werten zu erhalten, welche in den Verriegelungsschaltungen 415-1 bis 415-8 gehalten werden und Initialwerte 0 aufweisen, die jeweils mit den Ausgangsanschlüssen der Addierer 414-1 bis 414-8 verbunden sind. Verriegelungsschaltungen 415-1 bis 415-8 speichern nun die obigen Summen anstelle der bisher gehaltenen Werte.
- Die bisher in den Verriegelungsschaltungen 415-1 bis 415-8 gehaltenen Werte sind die acht (8) Summen von Fj&sub1;b, der den ersten Tenn repräsentiert, bis Fi(j - 1)b der den (j - 1).ten Tenn auf der rechten Seite der Gleichung repräsentiert, um acht (8) Elementwerte Yib zu erhalten, worin i eine ganze Zahl 1 bis 8 ist. So sind die in den Verriegelungsschaltungen 415-1 bis 415-8 neu gespeicherter Werte die acht (8) Summen von Fjib, der den ersten Tenn repräsentiert, bis Fijb, der den j.ten Term auf der rechten Seite der Gleichung repräsentiert, um acht (8) Elementwerte Yib zu jede halten.
- Das heißt, nachdem die eindimensionale DCT-Einheit 400 denDCT-Konstantenspeicher 401 das j.te Bildsignal Xjb ausgeben läßt, speichern die Verriegelungsschaltungen 415-1 bis 415-8 parallel die jeweiligen acht (8) Akkumulationen aus den ersten Tennen FH bis den j.ten Tennen Fijb für jede ganze Zahl i 1 bis 8.
- Wenn j 8 erreicht, d. h. wenn die Berechnungen für die rechte Seite der acht (8) Gleichungen zum Erhalten von acht (8) Elementwerten Y&sub1;b bis Y&sub8;b in der Spalte b der Produktmatrix Y vollendet sind, verriegeln Verriegelungsschaltungen 416-1 bis 416-8 acht (8) Elementwerte Y&sub1;b bis Y&sub8;b für acht (8) Bildelemente in der Spalte b der Produktmatrix Y.
- Ein Multiplexer 417 gibt die von den Verriegelungsschaltungen 416-1 bis 416-8 verriegelten Elementwerte Y&sub1;b bis Y&sub8;b aus, indem er sie sequentiell auswählt.
- Die eindimensionale DCT-Einheit 400 transformiert so alle Bildsignale in einem 8·8 Bildelementblock, indem die obigen Vorgänge für jede Spalte b von 1 bis 8 wiederholt werden. Sie transformiert alle Bilddaten eines Bildschirms, der eine Vielzahl derartiger Bildelementblöcke umfaßt, durch Wiederholungen der Transformationsprozesse.
- Fig. 12 zeigt detailliert die Konfiguration eines herkömmlichen Decodierers.
- Ein Quantisierungsschwellenspeicher 53 speichert die Quantisierungsmatrix. Die Decodierdaten aus dem Decodierer 50 mit variabler Länge werden einem Demultiplexer 521 im Dequantisierer 52 zugeführt.
- Ein Adressenzähler 527 führt Zählaktionen pro Bildrevisionssignal durch, das von einem Zeitkontroller 522 zugeführt wird, und führt die Bildrevisionssignale einem quantisierten Koeffizientenhalter 528 unter Verwendung der Zählwerte als Adressen zu.
- Der Demultiplexer 521 trennt die zugeführten Decodierdaten durch das Auswahlsignal, das vom Zeitkontroller 522 zugeführt wird. Indexdaten werden einem Multiplizierer 523 zugeführt, und Laufdaten werden einer Lauflängen-Beurteilungseinheit 524 zugeführt.
- Die Lauflängen-Beurteilungseinheit 524 hält die Anzahl insignifikanter Koeffizienten, die durch die zugeführten Laufdaten gezeigt werden, und führt dem Multiplizierer 523 durch das verbleibende Auswahlsignal eine logische "0" zu, bis die insignifikante Koeffizientenanzahl der Impulse der Bildelement-Revisionssignale zugeführt wird. Der Multipli zierer 523 gibt die Indexdaten durch den eingegebenen Indexwert aus, und fügt die insignifikanten Koeffizienten ein, die während der Codierprozesse weggelassen wurden, indem "0" aus einem Null-Generator 523 durch das oben beschriebeine Auswahlsignal ausgegeben wird, wodurch die von den quantisierten Koeffizienten transformierten eindimensionalen Daten wiederhergestellt werden.
- Durch das Speichern des Ausgangs aus dem Multiplizierer 523 im quantisierten Koeffizientenhalter 528 in Entsprechung zum Ausgang aus dem oben beschriebenen Adressenzähler 527 werden die quantisierten Koeffizienten im 8·8 Matrixformat wiederhergestellt.
- Dann schaltet der Zeitkontroller 522 den quantisierten Koeffizientenhalter 528 und den Quantisierungsschwellenspeicher 53 in den Auslesemodus. Die jeweiligen Elemente der Quantisierungsmatrix werden mit den entsprechenden quantisierten Koeffizienten in Entsprechung zu den Ausleseadressen multipliziert, die aus dem Adressenzähler 527 ausgegeben werden, und dadurch werden DCT-Koeffizienten D wiederhergestellt.
- Eine zweidimensionale inverse DCT-Einheit 54 transformiert orthogonal DCT-Koeffizienten D durch eine inverse diskrete Kosinustransformation für DCT-Koeffizienten D, und die Bilddaten jeweiliger Blöcke werden dadurch wiederhergestellt.
- Bildsignale, die von der in Fig. 1 gezeigten Codierschaltung codiert werden, werden von der in Fig. 3 gezeigten Decodierschaltung decodiert. Dann werden sie verarbeitet und in Einheiten von 8·8 Bildelementblöcken übertragen, die von den Bilddaten eines Anzeigeschirms abgeteilt werden.
- Bewegte Bilder ändern sich selten signifikant, und die Änderungen liegen hauptsächlich im Detail, insbesondere im hohen Bereich, wenn sie orthogonal transformiert werden.
- Daher wird ein grobes Bild in der ersten Stufe und ein feines Bild in der zweiten Stufe übertragen, wodurch die Bilddaten progressiv wiederhergestellt werden.
- Fig. 11 ist ein Blockbild einer herkömmlichen Decodierschaltung (progressiver Bildaufbau).
- Das herkömmliche progressive Wiederherstellungsverfahren wird mit Bezugnahme auf Fig. 11 erläutert. Der Decodierer 50 mit variabier Länge empfängt Codedaten durch seinen Eingangsanschluß 55. X01 bis X64 repräsentieren die Scan- Reihenfolge der DCT-Koeffizienten (die 1 bis 64 entsprechen, wie in Fig. 9 gezeigt). Der Decodierer 50 mit variabler Länge decodiert Codedaten, die den DCT-Koeffizienten aus den ersten Termen bis zum n1.ten Tenn (wobei n1 < 64) entsprechen, in quantisierte DCT-Koeffizienten unter Verwendung der Decodiertabelle 51.
- Der Dequantisierer 52 empfängt die decodierten quantisierten Koeffizienten, die von der zweidimensionalen inversen DCT-Einheit 54 in Bilddaten transformiert (wiederhergestellt) werden. Das wiederhergestellte Bild bezieht sich hier auf die groben Bilddaten, die in der ersten Stufe übertragen werden. Der Bildspeicher 58 hält die groben Bilddaten, die von der zweidimensionalen inversen DCT-Einheit 54 erhalten und von ihrem Ausgangsanschluß 59 übertragen werden.
- Als nächstes decodiert der Decodierer 50 mit variabler Länge die Codedaten, die den DCT-Koeffizienten vom n1.ten Term bis zum n2.ten Term (wobei n1 ≤ n2 ≤ 64) entsprechen, in quantisierte DCT-Koeffizienten. Die decodierten quantisierten Koeffizienten werden zum Dequantisierer 52 ausgegeben, um in die DCT-Koeffizienten dequantisiert zu werden, die von der zweidimensionalen inversen DCT-Einheit 54 in Bilddaten transformiert werden.
- Ein Addierer 57 addiert die erhaltenen Bilddaten mit den im Bildspeicher 58 gehaltenen Bilddaten, speichert, die addierten Bilddaten im Bildspeicher 58 anstelle der bisher gehaltenen Bilddaten, und gibt die addierten Bilddaten aus dem Ausgangsanschluß 59 aus.
- Diese Prozesse werden wiederholt, bis schließlich der Decodierer 50 mit variabler Länge die DCT-Koeffizienten vom ersten Term bis zum vierundsechzigsten Term in Bilddaten decodiert, und der Bildspeicher 58 die wiederhergestellten Bilddaten hält.
- So wird durch die sequentielle Addition der Codedaten, bis schließlich alle Daten übertragen sind, der progressive Bildaufbau des 8·8 Bildelementblocks vollendet.
- Wie oben angegeben, müssen im Stand der Technik, wenn die eindimensionale inverse DCT-Einheit 540 DCT-Koeffizienten in Bilder wiederherstellt, die DCT-Koeffizienten aller Bildelemente in allen Blöcken inverse DCTs eingehen. Dies wird durch die Matrix A repräsentiert. Wenn ein Block 8·8 Bildelemente umfaßt, müssen so die inversen DCTs für die jeweiligen 8·8 Matrixelemente der Matrix X durchgeführt werden. Da jeder Operationssatz für ein Bildelement acht (8) Multiplikationen zwischen entsprechenden Matrixelementen und sieben (7) Additionen der acht (8) Produkte umfaßt, erfordern die Berechnungen der Produktmatrix Y( = A·X) insgesamt 512 Multiplikationen und 448 Additionen für alle 8·8 Bildelemente.
- Somit besteht das Problem, daß die Bildwiederherstellung nicht beschleunigt werden kann, wenn alle Bildelemente in allen Blöcken eines Bildschirms inverse DCTs eingehen. Insbesondere wenn die Bilddaten (oder ihre Differenzdaten) progressiv für jeweilige Gruppen von DCT-Koeffizienten wiederhergestellt werden, die in eine vorherbestimmte Anzahl geteilt werden, wie in Fig. 13 und 14 gezeigt, ist es ziemlich häufig, da die DCT-Koeffizienten höherer Ordnung viele Null (0)-Werte aufweisen, daß alle DCT-Koeffizienten in den neu wiederhergestellten Blöcken Null (0)-Werte aufweisen. In diesem Fall werden viele unnötige Verarbeitungen durchgeführt, da die wiederhergestellten Bilddaten ohnehin alle Null sind.
- Zur Wiederholung, der Multiplizierer 529 im Dequantisierer 52 multipliziert alle Elemente der wiederhergestellten quantisierten Koeffizienten mit den entsprechenden Elementen der Quantisierungsmatrix. So müssen zur Dequantisierung der quantiaierten Koeffizienten, die einem Block entsprechen, insgesamt 8·8 Produktsummenoperationen für die in ihre Bilder wiederherzustellenden Bildelemente durchgeführt werden. Da eine große Anzahl von Produktsummenoperationen durchgeführt werden muß, erfordern demgemäß die Wiederherstellungsverarbeitungen zu viel Zeit.
- Obwohl der Stand der Technik zur Matrixberechnung, wie in Fig. 10 gezeigt, die Transformationsprozesse beschleunigt, müssen die Anzahlen der Multiplizierer 412 und Addierer 414 unweigerlich mit jenen der Bildelemente in einer Spalte eines Blocks übereinstimmen. Da es acht (8) Bildelemente in einem Block gibt, sind in diesem Fall acht (8) Multiplizierer 412-1 bis 412-8 und acht Addierer 414-1 bis 414-8 erforderlich.
- Wie allgemein bekannt ist, ist eine große Anzahl von Gattern zur Konfiguration der Multiplizierer 412-1 bis 412-8 notwendig. Somit haben die herkömmlichen eindimensionalen DCT-Einheiten 400 und 403 sowie die eindimensionalen inversen DCT-Einheiten 540 und 543 das Problem, daß ihre Schaltungsgrößen zu groß sind.
- So hat der Erfinder früher ein Patent für eine "orthogonale Transformationsanordnung" angemeldet und diese geoffenbart. Diese Anmeldung wurde am 14. November 1989 als japanische Patentanmeldung 1989-295643 eingereicht und war ausgebildet, es zu ermöglichen, daß eine kleine Schaltung Matrixberechnungen durchführt.
- Bei einer herkömmlichen ADCT-Grauskalenwiederherstellung, z. B. wenn acht Bit-(256 Stufen-)Bilddaten verwendet werden, muß ein elf Bit-DCT-Koeffizientenpuffer zum Halten von DCT-Koeffizienten nach der Dequantisierung für den Ausgang des Dequantisierungsteils 52 vorgesehen sein und ein acht Bit-Wiederherstellungsbildspeicher muß für den Ausgang der zweidimensionalen DCT-Einheit 54 vorgesehen sein. Demgemäß ist ein 19 Bit-Bildspeicher erforderlich, wodurch die Anordnungsgrößen groß werden, und die Verarbeitungseffizienz des progressiven Bildaufbaus reduziert wird, da viel Verarbeitungszeit für Speicher Zugriffe notwendig ist.
- Es ist wünschenswert, eine Hochgeschwindigkeitsbilddatenverarbeitungsvorrichtung durch das Reduzieren der Anzahl von Operationen zu realisieren.
- Gemäß einem ersten Aspekt der vorliegenden Erfindung ist ein Bilddatenprozessor vorgesehen, bei dem ein Bilddatenwiederherstellungsverfahren verwendet wird, zum Wiederherstellen von Bilddaten aus Codedaten, die durch das Codieren von quantisierten Koeffizienten generiert wurden, die durch das Quantisieren, unter Verwendung von entsprechenden Quantisierungsschwellen, von Transformationskoeffizienten generiert wurden, die durch das Ausführen von zweidimensionalen diskreten Kosinustransformationen an den Bilddaten in einer Vielzahl von Blöcken erhalten wurden, die jeweils eine Vielzahl von Bildelementen umfassen, die ein Bild bilden, mit: einem Decodiermittel zum Ausgeben von quantisierten Koeffizienten durch das Decodieren von empfangenen Codedaten; einem Dequantisierungsmittel zum Wiederherstellen der Transformationskoeffizienten durch eine Dequantisierung, die ausgeführt wird, indem Elemente der quantisierten Koeffizienten, die von dem Decodiermittel ausgegeben wurden, mit den entsprechenden Quantisierungsschwellen multipliziert werden; einem Gleichstromtransformationsmittel zum Generieren von Bilddaten auf der Basis eines resultierenden Produktes, das durch Multiplizieren des Gleichstromelementes der Transformationskoeffizienten mit vorbestimmten Konstanten erhalten wurde; einem inversen Normalisierungsmittel zum Reproduzieren von Blöcken der Bilddaten durch das Transformieren der Transformationskoeffizienten, die von dem Dequantisierungsmittel ausgegeben wurden; einem Blockdetektionsmittel zum Delektieren eines Blocks ohne signifikantes Wechselstromelement auf der Basis der Transformationskoeffizienten entsprechend den jeweiligen Blöcken oder der quantisierten. Koeffizienten entsprechend jeweiligen Blöcken, die von dem Dequantisierungsmittel eingegeben wurden; und einem Selektionsmittel zum Ausgeben entweder einer Ausgabe von dem inversen Normalisierungsmittel oder einer Ausgabe von dem Gleichstromtransformationsmittel, gemäß dem Resultat, das durch das Blockdetektionsmittel detektiert wurde.
- Gemäß einem zweiten Aspekt der vorliegenden Erfindung ist ein Bilddatenwiederherstellungsverfahren vorgesehen, zum Wiederherstellen von Bilddaten aus Codedaten, die durch das Codieren von quantisierten Koeffizienten generiert wurden, die durch das Quantisieren, unter Verwendung von entsprechenden Quantisierungsschwellen, von Transformationskoeffizienten generiert wurden, die durch das Ausführen von zweidimensionalen diskreten Kosinustransformationen an den Bilddaten in einer Vielzahl von Blöcken erhalten wurden, die jeweils eine Vielzahl von Bildelementen umfassen, die ein Bild bilden, mit den folgenden Schritten: Ausgeben von quantisierten Koeffizienten durch das Decodieren von empfangenen Codedaten; Wiederherstellen der Transformationskoeffi zienten durch eine Dequantisierung, die ausgeführt wird, indem Elemente der quantisierten Koeffizienten mit den entsprechenden Quantisierungsschwellen multipliziert werden; Generieren von Bilddaten auf der Basis eines resultierenden Produktes, das durch Multiplizieren des Gleichstromelementes der Transformationskoeffizienten mit vorbestimmten Konstanten erhalten wurde; Generieren von Bilddaten durch Transformieren der Transformationskoeffizienten; Delektieren eines Blocks ohne signifikantes Wechselstromelement auf der Basis der Transformationskoeffizienten entsprechend den jeweiligen Blöcken oder den quantisierten Koeffizienten entsprechend jeweiligen Blöcken; und Ausgeben entweder der Bilddaten, die unter Verwendung des Gleichstromelementes des Transformationskoeffizienten generiert wurden, oder der Bilddaten, die durch Transformierung der Transformationskoeffizienten generiert wurden, gemäß dem delektierten Block.
- Fig. 1 ist eine Grundkonfigurationsdarstellung einer ADCT-Codierschaltung;
- Fig. 2 ist eine detaillierte Konfigurationsdarstellung einer zweidimensionalen DCT-Einheit;
- Fig. 3 ist eine Grundkonfigurationsdarstellung einer ADCT-Decodierschaltung;
- Fig. 4 ist eine detaillierte Konfigurationsdarstellung einer zweidimensionalen inversen DCT-Einheit;
- Fig. 5 ist eine erläuternde Darstellung eines eingegebenen Originalbilds;
- Fig. 6A und 6B sind erläuternde Darstellungen eines berechneten DCT-Koeffizienten;
- Fig. 1 ist eine erläuternde Darstellung einer bei der Quantisierung verwendeten Schwelle;
- Fig. 8A und 8B sind erläuternde Darstellungen eines generierten quantisierten Koeffizienten;
- Fig. 9 ist eine erläuternde Darstellung einer Scan- Sequenz quantisierter Koeffizienten;
- Fig. 10 ist eine erläuternde Darstellung eines eindimensionalen DCT-Einheitsprozesses und eines eindimensionalen DCT-Einheitsprozesses des Standes der Technik;
- Fig. 11 ist ein Blockbild einer progressiven ADCT- Wiederherstellungssektion des Standes der Technik;
- Fig. 12 ist eine Konfigurationsdarstellung einer Wiederherstellungseinheit des Standes der Technik;
- Fig. 13 ist ein Beispiel der Aufteilung eines DCT- Koeffizienten (erste Stufe);
- Fig. 14 ist ein Beispiel der Aufteilung eines DCT- Koeffizienten (zweite Stufe);
- Fig. 15 ist ein Blockbild des Prinzips der ersten Ausführungsform;
- Fig. 16 ist eine Konfigurationsdarstellung einer Ausführungsform einer Wiederherstellungsanordnung;
- Fig. 17 ist eine Darstellung eines Beispiels codierter Daten;
- Fig. 18 ist eine erläuternde Darstellung eines Adressenspeichers;
- Fig. 19 ist ein Blockbild des Prinzips der zweiten Ausführungsform;
- Fig. 20 ist eine Konfigurationsdarstellung einer Quantisierungssektion der zweiten Ausführungsform;
- Fig. 21 ist eine Konfigurationsdarstellung einer zweidimensionalen inversen DCT-Einheit der zweiten Ausführungsform;
- Fig. 22 ist ein Blockbild des Prinzips der dritten Ausführungsform;
- Fig. 23 ist eine Konfigurationsdarstellung einer Wiederherstellungsanordnung einer Ausführungsform;
- Fig. 24 ist eine Darstellung eines Beispiels codierter Daten;
- Fig. 25 ist eine Konfigurationsdarstellung einer Wiederherstellungsanordnung einer Ausführungsform;
- Fig. 26 ist eine Konfigurationsdarstellung des Prinzips der vierten Ausführungsform;
- Fig. 27A ist eine Konfigurationsdarstellung der vierten Ausführungsform;
- Fig. 27B ist ein Zeitdiagramm;
- Fig. 27C ist ein operationales Flußdiagramm in bezug auf Fig. 27B;
- Fig. 28 ist eine Konfigurationsdarstellung der fünften Ausführungsform;
- Fig. 29A ist eine Konfigurationsdarstellung der fünften Ausführungsform;
- Fig. 29B und 29C sind ein Zeitdiagramm in bezug auf Fig. 29A;
- Fig. 30 ist ein Flußdiagramm eines Operationskontrollers;
- Fig. 31 ist ein Blockbild des Prinzips der sechsten Ausführungsform;
- Fig. 32 ist ein Blockbild des Prinzips der siebten Aus führungs form;
- Fig. 33 ist eine Konfigurationsdarstellung der sechsten Ausführungsform;
- Fig. 34 ist eine erläuternde Darstellung wiederherzustellender Bilddaten;
- Fig. 35 ist eine erläuternde Darstellung eines wiederherzustellenden DCT-Koeffizienten;
- Fig. 36 ist eine erläuternde Darstellung eines aufgeteilten DCT-Koeffizienten der ersten Stufe in dem Fall, wo der Koeffizient auf dem dritten Pegel durch zwei geteilt wird;
- Fig. 37 ist eine erläuternde Darstellung eines aufgeteilten DCT-Koeffizienten der zweiten Stufe in dem Fall, wo der Koeffizient auf dem dritten Pegel durch zwei geteilt wird;
- Fig. 38 ist eine erläuternde Darstellung aufgeteilter Bilddaten in dem Fall, wo der DCT-Koeffizient in Fig. 36 durch eine inverse DCT verarbeitet wird;
- Fig. 39 zeigt geteilte Bilddaten in dem Fall, wo ein DCT-Koeffizient durch eine inverse DCT verarbeitet wird;
- Fig. 40 ist eine Konfigurationsdarstellung der siebten Ausführungsform;
- Fig. 41 ist eine Modelldarstellung von Fig. 40;
- Fig. 42 ist eine erläuternde Darstellung der Gradationsstufe der großen Konfiguration der siebten Ausführungsform;
- Fig. 43A, 43B und 43C sind Konfigurationsdarstellungen einer Ausführungsform einer Akkumulation auf der Basis von Fig. 41;
- Fig. 44 ist eine erläuternde Darstellung von Fig. 38, wobei 128 hinzuaddiert wird;
- Fig. 45 ist eine erläuternde Darstellung von Fig. 39, wobei 128 hinzuaddiert wird;
- Fig. 46 ist ein Blockbild des Prinzips der achten Ausführungsform;
- Fig. 47A ist eine Konfigurationsdarstellung der achten Aus führungs form;
- Fig. 47B ist ein operationales Flußdiagramm der achten Ausführungsform;
- Fig. 48 ist ein Blockbild einer insignifikanten Blocksignal-Generatorschaltung der achten Ausführungsform;
- Fig. 49 ist eine Beispieldarstellung decodierter Datenketten;
- Fig. 50 ist ein allgemeines Blockbild einer Ausführungsform;
- Fig. 51 ist ein Blockbild einer Adressengeneratorschaltung;
- Fig. 52 ist ein Blockbild der neunten Ausführungsform;
- Fig. 53 ist ein allgemeines Blockbild der neunten Ausführungsform;
- Fig. 54 ist ein Blockbild einer insignifikanten Blockdetektionssektion;
- Fig. 55 ist ein Blockbild einer Adressengeneratorschaltung;
- Fig. 56 ist ein operationales Flußdiagramm einer Ausführungsform dieser Erfindung.
- Fig. 15 zeigt ein Blockbild des Bilddatea-Wiederherstellungsverfahrens gemäß der ersten Ausführungsform dieser Erfindung.
- In Fig. 15 sind Bilder in eine Vielzahl von Blöcken geteilt, die jeweils eine Vielzahl von Bildelementen umfassen. Die jeweiligen Elemente von DCT-Koeffizienten, die durch die orthogonale Transformation von Bilddaten in diesen Blöcken erhalten werden, werden quantisiert, und die in den Quanti sierungsverarbeitungen generierten quantisierten Koeffizienten werden codiert, um Codedaten zu generieren. Diese Codedaten werden von einem Decodierer 111 in quantisierte Koeffizienten decodiert, die ihrerseits durch einen Dequantisierer 120 dequantisiert werden. Ein orthogonaler Transformierer 141 transformiert die vom Dequantisierer 120 generierten DCT-Koeffizienten, um Bilddaten wiederherzustellen. Der Dequantisierer 120 im Bilddaten-Wiederherstellungsverfahren umfaßt einen Selektor 121 zum Auswählen signifikanter Nicht-Null-Elemente quantisierter Koeffizienten, die vom Decodierer 111 zugeführt werden, eine Speichereinheit 122 zum Ausgeben der Quantisierungsschwellen, die den vom Selektor 121 ausgewählten signifikanten Elementen entsprechen, und einen Multiplizierer 123 zum Ausgeben, als Elemente von DCT-Koeffizienten, die den signifikanten Elementen entsprechen, der Ergebnisse der Multiplikation der vom Selektor 121 ausgewählten signifikanten Elemente mit den Quantisierungsschwellen, die den signifikanten Elementen entsprechen und aus der Speichereinheit 122 ausgegeben werden. Der Decodierer 111 führt die durch die Prozesse des Decodierens der eingeführten Codedaten generierten quantisierten Koeffizienten dem Selektor 121 im Dequantisierer 120 zu.
- Wenn der Selektor 121 an den Multiplizierer 123 signifikante Nicht-Null-Elemente der vom Decodierer 111 zugeführten quantisierten Koeffizienten ausgibt, gibt die Speichereinheit 122 die Quantisierungsschwellen aus, die den vom Selektor 121 ausgewählten signifikanten Elementen entsprechen.
- So dequantisiert der Multiplizierer 123 selektiv die signifikanten Elemente der quantisierten Koeffizienten nur durch das Multiplizieren signifikanter Elemente der zugeführten quantisierten Koeffizienten als entsprechende Quan tisierungsschwellen.
- Daher ermöglicht die erste Ausführungsform dieser Erfindung, daß Quantisierungsverarbeitungen beschleunigt werden, indem die Dequantisierungsverarbeitungen für die insignifikanten Elemente quantisierter Koeffizienten weggelassen werden, d. h. durch das Reduzieren der Anzahl von Multiplikationen.
- Fig. 16 zeigt die Konfiguration einer Wiederherstellungsanordnung, die beim Bilddaten-Wiederherstellungsverfahren gemäß der ersten Ausführungsform dieser Erfindung verwendet wird.
- An dieser Stelle werden die Beziehungen zwischen den in Fig. 15 gezeigten Elementen und den in Fig. 16 erzeigten erläutert.
- Der Decodierer 111 entspricht einem Decodierer 211 und einer Decodiertabelle 212.
- Der Dequantisierer 120 entspricht einem Dequantisierer 220.
- Der Selektor 121 entspricht einem Adressenrechner 222, einem Adressenhalter 223 und einem quantisierten Koeffizientenhalter 226.
- Die Speichereinheit 122 entspricht dem Adressenrechner 222, dem Adressenhalter 223 und einem Quantisierungsschwellenhalter 227.
- Der Multiplizierer 123 entspricht einem Multiplizierer 228.
- Der orthogonale Transformierer 141 entspricht einer inversen DCT-Einheit 241.
- Die in Fig. 16 gezeigte Ausführungsform wird nachstehend auf der Basis dieser Beziehungen beschrieben.
- Die Decodiertabelle 212 speichert im voraus in einer Tabelle kombinierte Daten von Codes mit variabler Länge und ihre entsprechenden Indices und Läufe.
- Die über einen Transmissionsweg zugeführten Codedaten werden zuerst in den Decodierer 211 eingegeben, der die Decodiertabelle 212 auf der Basis der eingegebenen Codedaten durchsucht, so daß die kombinierten Daten der entsprechenden Indices und Läufe aus der Decodiertabelle 212 gelesen werden. Diese Daten werden ihrerseits dem Dequantisierer 220 zugeführt.
- Der Dequantisierer 220 stellt DCT-Koeffizienten in die Matrix D wieder her, indem Dequantisierungsverarbeitungen in die quantisierten Koeffizienten durchgeführt werden, auf der Basis der Codedaten. Die inverse DCT-Einheit 241 führt eine inverse DCT bzw. eine orthogonale Transformation an der Matrix D durch, welche die DCT-Koeffizienten repräsentiert, so daß Bilddaten wiederhergestellt werden.
- Das Folgende ist eine Beschreibung der Konfiguration und Operationen des Dequantisierers 220.
- Der Dequantisierer 220 umfaßt einen Demultiplexer 221 zum Trennen von Decodierdaten in Indexdaten und Laufdaten, einen Adressenrechner 222 zum Berechnen (nachstehend beschrieben) von Adressen, einen Adressenhalter 223 zum Akkumulieren von Adressen, die vom Adressenrechner 222 berechnet werden, einen Zähler 225 zum Zähler der Anzahl signifikanter Koeffizienten, einen quantisierten Koeffizientenhalter 226 zum Speichern der Indexdaten, die vom Demultiplexer 221 zugeführt werden, einen Quantisierungsschwellenhalter 227 zum Speichern der oben beschriebenen Quantisierungsmatrix VTM, einen Multiplizierer 228 zum Multiplizieren von Aus gangen aus dem quantisierten Koeffizientenhalter 226 mit Ausgängen aus dem Quantisierungsschwellenhalter 227, und einen Zeitkontroller 224 zum Steuern der Zeit von Operationen in verschiedenen Einheiten.
- Die vom Decodierer 211 zugeführten Decodierdaten werden in den Demultiplexer 221 eingegeben. Wenn Indexdaten als De codierdaten zugeführt werden, führt der Zeitkontroller 224 ein Auswahlsignal CSL einer logischen "1" dem Steueranschluß S des Demultiplexers 221 zu.
- Wenn der Demultiplexer 221 eine logische "1" als Auswahlsignal CSL an seinem Steueranschluß S empfängt, führt er die Indexdaten der eingegebenen Decodierdaten dem quantisierten Koeffizientenhalter 226 zu. Wenn er eine logische "0" als Auswahlsignal CSL an seinem Steueranschluß S empfängt, führt er die Laufdaten der eingegebenen Decodierdaten dem Adressenrechner 222 zu.
- Der Zähler 225 ist ein Vorwärts-Rückwärts-Zähler und kann den Additionsmodus oder den Subtraktionsmodus in Abhängigkeit vom Zählersteuersignal wählen, das in den Steueranschluß SUP eingegeben wird. Der Zähler 225 ist konfiguriert, Zähloperationen auf der Basis des gewählten Modus und synchronisiert mit Synchronisationssignalen, die einem Taktanschluß zugeführt werden, durchzuführen.
- Der quantisierte Koeffizientenhalter 226 und der Quantisierungsschwellenhalter 227 sind als Speicherbereiche gebildet, die den jeweiligen Matrixelementen von 8·8 Matrizen entsprechen. Die Adressen jeweiliger Bereiche werden durch die in Fig. 9 gezeigte Zickzack-Scan-Reihenfolge spezifiziert. Der quantisierte Koeffizientenhalter 226 kann einen Einschreib-Modus und einen Auslese-Modus in Abhängigkeit vom Schreib-Lese-Steuersignal, das in den Steueranschluß SRW eingegeben wird, auswählen. Wenn beispielsweise eine logische "1" in den Steueranschluß SRW eingegeben wird, operiert der quantisierte Koeffizientenhalter 226 im Schreibmodus, und wenn eine logische "0" in den Steueranschluß SRW eingegeben wird, operiert der quantisierte Koeffizientenhalter 226 im Lesemodus.
- Der Quantisierungsschwellenhalter 227 liest und gibt die Quantisierungsschwelle aus, die in den von einem Adres seneingang bezeichneten Adressen gespeichert ist, wenn eine logische "0" dem Steueranschluß SR als Lesesteuersignal zugeführt wird.
- Wie in Fig. 18 gezeigt, ist der Adressenhalter 223 z. B. aus 64 Speicherbereichen gebildet, denen die Stahlen 1 bis 64 zugeordnet sind. Vom Adressenrechner 222 zugeführte Adressen werden sequentiell in diesen Speicherbereichen gespeichert, und die vorher gespeicherte Adresse wird zurück an den Adressenrechner 222 sowie an den quantisierten Koeffizientenhalter 226 ausgegeben.
- Der in Fig. 16 gezeigte Dequantisierer 220 stellt zuerst die quantisierten Koeffizienten in ein Matrixformat wieder her, auf der Basis der vom Decodierer 211 zugeführten Codedaten.
- Wenn die Wiederherstellungsprozesse für die den jeweiligen Blöcken entsprechenden Decodierdaten beginnen, wird der Inhalt des oben beschriebenen Adressenhalters 223 auf Null gesetzt, und "1" wird als Initialadressenwert im Speicherbereich 1 gespeichert. Der Zeitkontroller 224 setzt den Schreibmodus im quantisierten Koeffizientenhalter 226, indem eine logische "1" als Lese/Schreib-Steuersignal in den Steueranschluß SRW eingegeben wird, und setzt den Inhalt in den Speicherbereichen auf Null, die den jeweiligen Adressen des quantisierten Koeffizientenhalters 226 entsprechen.
- Der Zeitkontroller 224 setzt den Zähler 225 in den Additionsmodus, und der Zählwert des Zählers 225 wird auf den Initialwert 0 zurückgesetzt.
- In Abhängigkeit vom Auswahlsignal CSL das vom Zeitkontroller 224 zugeführt wird, werden die Decodierdaten, die aus dem Decodierer 211 ausgegeben werden (siehe Fig. 17), in Indexdaten und Laufdaten getrennt. Diese Daten werden dem quantisierten Koeffizientenhalter 226 bzw. dem Adressenrechner 222 zugeführt.
- Wenn die ersten Indexdaten eingegeben werden, empfängt der quantisierte Koeffizientenhalter 226, als Adresse, den Initialwert 1, der im voraus im Adressenhalter gespeichert wurde. Die Indexdaten werden in Entsprechung zur Adresse "1" gespeichert.
- Hier beziehen sich die Laufdaten auf die Anzahl insignifikanter Koeffizienten, die durch die entsprechenden Indexdaten gezeigten signifikanten Koeffizienten folgen. Daher zeigt das Ergebnis der Akkumulation der durch die zugeführten Laufdaten plus 1 angegebenen Anzahl die Gesamtanzahl der Elemente der quantisierten Koeffizienten, die in einer Dimension transformiert wurden. Diese Gesamtsumme entspricht der Adresse im letzten Element.
- Der Adressenrechner 222 addiert die vom Demultiplexer 221 zugeführten Laufdaten mit den Ausgängen aus dem oben beschriebenen Adressenhalter 223. Durch die weitere Addition von 1 zum Additionsergebnis führt der Adressenrechner 222 die oben beschriebene Akkumulation durch. Der Adressenrechner 222 führt das Akkumulationsergebnis als Adresse dem Adressenhalter 223 zu, und diese Adressen werden im Adressenhalter 223 gespeichert.
- In diesem Fall wird jedoch der im Adressenhalter 223 gespeicherte Initialadressenwert 1 weiter addiert. Demgemäß sind die vom Adressenrechner 222 berechneten Adressen Adressen für signifikante Koeffizienten, die den als nächste Decodierdaten zugeführten Indexdaten entsprechen. Die eingegebenen Indexdaten werden im quantisierten Koeffizientenhalter 226 in Entsprechung zu den Adressen gespeichert.
- Beispielsweise werden Indexdaten Dm, die den D.C.-Elementen der in Fig. 17 gezeigten Decodierdaten entsprechen, im Speicherbereich des quantisierten Koeffizientenhalters 226 gespeichert, der dem im Adressenhalter 223 gespeicherten Initialadressenwert 1 entspricht, d. h. in dem Speicherbe reich, der dem Element (1, 1) der quantisierten Koeffizienten entspricht, die in Fig. 9 als Nummer 1 gezeigt sind.
- Der Adressenrechner 222 berechnet die Adresse 2, die den nächsten Indexdaten 13 entspricht, gemäß den Laufdaten R&sub0;, die den Indexdaten Dm entsprechen. Mittels der Durchführung ähnlicher Prozesse für aufeinanderfolgend zugeführte Decodierdaten (I&sub2;, R&sub0;, I&sub3;, . . . I&sub6;, R&sub3;) gibt der Adressenrechner 222 sequentiell Adressen 3, 4, 5, 6 und 10 aus. In Entsprechung zu diesen Adressen speichert der quantisierte Koeffizientenhalter 226 Indexdaten I&sub2;, I&sub3;, I&sub4;, I&sub5;, I&sub6; und I&sub7;, und der Adressenhalter 223 akkumuliert sequentiell 1, 2, 3, 4, 5, 6 und 10 als Adressen signifikanter Koeffizienten.
- Durch die Wiederholung der obigen Prozesse jedesmal, wenn Laufdaten zugeführt werden, berechnet der Adressenrechner 222 sequentiell die Adressen signifikanter Koeffizienten, und der Adressenhalter 223 speichert sequentiell die Adressen dieser signifikanten Koeffizienten. Der quantisierte Koeffizientenhalter 226 speichert Indexdaten, die den nach den oben beschriebenen Laufdaten zugeführten Adressen entsprechen, wodurch die quantisierten Koeffizienten in die 8·8 Matrixform wiederhergestellt werden.
- Der Zeitkontroller 224 führt dem Zähler 225 Synchronisationssignale zu, die mit den Aktionen des Speicherns von Indexdaten durch den oben beschriebenen quantisierten Koeffizientenhalter 226 synchronisiert sind. Der Kahler 225 zählt die Gesamtsumme der signifikanten Koeffizienten, die in den quantisierten Koeffizienten für die jeweiligen Blöcke enthalten sind.
- Wenn der Adressenrechner 222 Reob als Laufdaten empfängt, beurteilt er, daß der Empfang von einem Block entsprechenden Decodierdaten beendet ist, und gibt ein Blockende-Signal (BEN) an den Zeitkontroller 224 aus.
- Beim Empfang des Blockende-Signals (BEN) beurteilt der Zeitkontroller 224, daß die Wiederherstellungssprozesse für quantisierte Koeffizienten für einen Block beendet sind, und die Prozesse zur Dequantisierung der quantisierten Koeffizienten, die dem Block entsprechen, beginnen werden.
- Die Dequantisierungsprozesse für die wiederhergestellten quantisierten Koeffizienten werden nachstehend erläutert.
- Der Zeitkontroller 224 führt eine logische "0", als Lese/Schreib-Steuersignal (R/W), dem Steueranschluß SRW des quantisierten Koeffizientenhalters 226 zu, und als Lesesteuersignal (RED) dem Quantisierungsschwellenhalter 227 zu. Danach werden in Entsprechung zu den vom Adressenhalter 223 zugeführten Adressen die quantisierten Koeffizienten und die entsprechenden Elemente der Quantisierungsmatrix VTM jeweils aus dem quantisierten Koeffizientenhalter 226 und dem Quantisierungsschwellenhalter 227 gelesen, um dem Multiplizierer 228 zugeführt zu werden.
- Der Zeitkontroller 224 führt auch eine logische "0" dem Steueranschluß SUD im Zähler 225 zu, setzt den Zähler in einen Subtraktionsmodus, spezifiziert sequentiell den Speicherbereich des Adressenhalters 223, und führt dem Zähler 225 mit den spezifizierenden Aktionen synchronisierte Synchronisationssignale zu.
- So werden im Adressenhalter 223 gespeicherte Adressen sequentiell an den quantisierten Koeffizientenhalter 226 und den Quantisierungsschwellenhalter 227 ausgegeben. Gemäß diesen Adressen gibt der quantisierte Koefft; ; ientenhalter 226 signifikante Koeffizienten aus, die den quantisierten Koeffizienten entsprechen, und der Quantisierungsschwellenhalter 227 gibt die Elemente der Quantisierungsmatrix VTM aus, die den signifikanten Koeffizienten entsprechen.
- Wenn Wiederherstellungsprozesse der quantisierten Koeffizienten für die in Fig. 17 gezeigten Decodierdaten durchge führt werden, werden beispielsweise Adressen 1, 2, 3, 4, 5, 6 und 10, die den signifikanten Elementen der im Adressenhalter 223 gespeicherten quantisierten Koeffizienten entsprechen, sequentiell ausgegeben. (Siehe Fig. 18). Die Elemente 64, -16, . . ., -8, -8 quantisierter Koeffizienten, die im quantisierten Koeffizientenhalter 226 gespeichert sind, werden sequentiell gemäß diesen Adressen gelesen. (Siehe Fig. 8). Der Quantisierungsschwellenhalter 227 liest 15, 11, . . ., 10, 14 der Matrix VTM aus, die diesen Elementen der quantisierten Koeffizienten entsprechen, und führt sie dem Multiplizierer 228 zu.
- Der Zähler 225 subtrahiert den mit dem oben beschriebenen Synchronisationssignal synchronisierten Zählwert parallel zu den Dequantisierungsprozessen der signifikanten Koeffizienten. Wenn der Zählwert auf 0 fällt, gibt der Zähler 225 ein Stoppsignal aus seinem Ausgangsanschluß 0 an den Zeitkontroller 224 aus.
- Der Zeitkontroller 224 beurteilt gemäß dem Stopp-Signal, daß ein Dequantisierungsprozeß quantisierter Koeffizienten, die einem Block entsprechen, vollendet ist, und beendet seine Aktionen der Spezifikation des Speicherbereichs für den Adressenhalter 223.
- Durch die Wiederholung der oben beschriebenen Leseaktionen, bis der Zählwert des Zählers 225 auf 0 fällt, werden so die signifikanten Koeffizienten, die in quantisierten Koeffizienten enthalten sind, und die entsprechenden Elemente in der Quantisierungsmatrix VTM sequentiell dem Multiplizierer 228 zugeführt, wo sie multipliziert werden, was ermöglicht, daß nur signifikante Koeffizienten, die in quantisierten Koeffizienten enthalten sind, selektiv dequantisiert werden.
- Durch das Zuführen des Ausgangs aus dem Multiplizierer 228 und der entsprechenden Adressen an einen Eingabepuffer (in den Zeichnungen nicht gezeigt), der innerhalb der inversen DCT-Einheit 241 vorgesehen ist, und durch das Speichern der Ausgänge aus dem Multiplizierer 228 die den obigen Adressen entsprechen, wird eine 8·8 DCT-Koeffizientenmatrix D wiederhergestellt. Mittels der Durchführung einer herkömmlichen inversen DCT für die 8·8 DCT-Koeffizientenmatrix D werden Bilddaten eines Blocks erhalten.
- Die Multiplikationen des Multiplizierers 228 sind das Zeitaufwendigste an den Prozessen für Dequant isierungesn. So werden durch das Weglassen von Multiplikationen für insignifikante Koeffizienten Dequantisierungen erheblich beschleunigt.
- Gewöhnlich enthalten quantisierte Koeffizienten viele insignifikante Koeffizienten. Wie beispielsweise in Fig. 7 gezeigt, sind siebenundfünfzig (57) Elemente insignifikante Koeffizienten, während nur sieben (7) Elemente signifikante Koeffizienten darstellen. Da in diesem Fall mir sieben (7) anstelle von vierundsechzig (64) Produktsummenoperationen durchgeführt werden müssen, werden Dequantisierungen in etwa einem Zehntel der Zeit durchgeführt, die beim herkömmlichen Verfahren erforderlich ist.
- Durch die selektive Dequantisierung nur der signifikanten Koeffizienten, die in quantisierten Koeffizienten enthalten sind, wird so die für die Dequantisierungen erforderliche Zeit signifikant verkürzt, und die Wiederherstellungsprozesse werden beschleunigt.
- Der quantisierte Koeffizientenhalter 226 im in Fig. 16 gezeigten Dequantisierer 220 kann durch ein FIFO konfiguriert sein, so daß nur signifikante Koeffizienten in quantisierten Koeffizienten, die einem Block entsprechen, gespeichert werden. In diesem Fall werden die signifikanten Koeffizienten sequentiell aus dem quantisierten Koeffizientenhalter 226 gelesen. Ferner werden die Elemente der Quanti sierungsmatrix VTM, die den signifikanten Koeffizienten entsprechen, aus dem Quantisierungsschwellenhalter 227 gemäß den Adressen gelesen, die sequentiell aus dem Adressenhalter 223 ausgegeben werden.
- Fig. 19 ist ein Blockbild der zweiten Ausführungsform dieser Erfindung.
- In Fig. 19 stellt ein Bilddaten-Decodierprozessor 131 rasch Bilddaten wieder her, die durch einen Eilddaten- Codierprozessor codiert wurden, um die quantisierten Koeffizienten zu codieren, die aus den durch orthogonales Transformieren von Bilddaten in einem Block berechneten DCT-Koeffizienten erhalten wurden. Zur Realisierung derartiger Verarbeitungen unifaßt der Bilddaten-Decodierprozessor 131 einen Decodierer 132, einen Dequantisierer 133, einen Quantisierungsschwelllenkontroller 134, eine inverse DCT-Einhelt 135 und einen inversen DCT-Konstantenkontroller 136.
- Der Decodierer 132 führt einen Prozeß zur Wiederherstellung quantisierter Koeffizienten für die jeweiligen Blöcke durch, die von einem Bilddaten-Codierprozessor, in Fig. 19 nicht gezeigt, codiert wurden.
- Der Dequantisierer 133 umfaßt einen Adresseninformationsdetektor 137 zum Delektieren von Adressen in einem Block quantisierter Koeffizienten, wobei Nicht-Null-Werte der quantisierten Koeffizienten vom Decodierer 132 wiederhergestellt werden, und einen DCT-Koeffizientenwiederhersteller 138 zum Wiederherstellen von DCT-Koeffizienten durch das Multiplizieren der quantisierten Nicht-Null-Koeffizienten mit den entsprechenden Quantisierungssichwellen. Die vom DCT-Koeffizientenwiederhersteller 138 wiederhergestellten DCT-Koeffizienten haben Nicht-Null-Werte, da die entsprechenden Quantisierungsschwellen Null-Werte aufweisen. Der Quantisierungsschwellenkontroller 134 steuert Quantisierungsschwellen, die vom DCT-Koeffizientenwiederher steller 138 verwendet werden.
- Die inverse DCT-Einheit 135 stellt Bilddaten wieder her, indem Matrixmultiplikationen zwischen der vorbereiteten Matrix, die inverse DCT-Konstanten repräsentiert, der Matrix, die vom Dequantisierer 133 wiederhergestellte DCT- Koeffizienten repräsentiert, und der transponierten Matrix der vorbereiteten Matrix, die inverse DCT-Konstanten repräsentiert, durchgeführt werden. Zur Beschleunigung dieser Verarbeitungen umfaßt die inverse DCT-Einheit 135 einen entsprechenden inversen DCT-Konstantenspezifizierer 139 und einen Matrixmultiplizierer 140. Der inverse DCT-Konstantenspezifizierer 139 dient zum Spezifizieren der Spaltenmatrix der inversen DCT-Konstante, welche den DCT-Koeffizienten entspricht, die vom DCT-Koeffizientenwiederhersteller 138 gemäß den vom Adresseninformationsdetektor 137 übermittelten Adresseninformationen wiederhergestellt wurden. Der Matrixmultiplizierer 140 dient zum Multiplizieren der vorbereiteten Matrix, die inverse DCT-Konstanten repräsentiert, mit der Matrix, welche die vom Dequantisierer 133 wiederhergestellten DCT-Koeffizienten repräsentiert, indem die vom DCT- Koeffizientenwiederhersteller 138 wiederhergestellten DCT- Koeffizienten mit der vom entsprechenden inversen DCT-Konstantenspezifizierer 139 spezifizierten Spaltenmatrix multipliziert werden.
- Der inverse DCT-Konstantenkontroller 136 steuert die für den Matrixmultiplizierer 140 erforderlichen DCT-Konstanten.
- Der Matrixmultiplizierer 140 der inversen DCT-Einheit 135 multipliziert zuerst die Matrix A, die inverse DCT- Konstanten repräsentiert, mit der Matrix B, die DCT-Koeffizienten repräsentiert, um die Matrix Z zu erhalten. Das heißt,
- Z = A&supmin;¹·B
- wird berechnet, indem die Matrix, welche die inversen DCT- Konstanten repräsentiert, mit den jeweiligen Spaltenmatrizen der DCT-Koeffizienten repräsentierenden Matrix multipliziert wird.
- Bei der Multiplikation der Matrizen spezifiziert der Matrixmultiplizierer 140 die signifikanten Koeffizienten in den Spaltenmatrizen der ausgewählten DCT-Koeffizienten beim Empfang der DCT-Koeffizienten mit Nicht-Null-Werten vom DCT- Koeffizientenwiederhersteller 138.
- Bei der Spezifikation der signifikanten DCT-Koeffizienten, die in den Spaltenmatrizen der Matrix zu verarbeiten sind, welche die DCT-Koeffizienten repräsentiert, gemäß den vom Adresseninformationsdetektor 137 empfangenen Adressen, spezifiziert so der entsprechende inverse DCT-Konstantenspezifizierer 139 die Spaltenmatrix der Matrix, welche inverse DCT-Konstanten repräsentiert, die dem signifikanten DCT-Koeffizienten entsprechen.
- Beim Empfang der Spalten der inverse DCT-Konstanten repräsentierenden Matrix berechnet der Matrixmuitiplizierer 140 nur den Nicht-Null-Teil der Produktmatrix Z, die durch die Multiplikation der Matrizen A" und B erhalten wird. Er führt diese Berechnung nur durch das Multiplizieren der spezifizierten Elemente in den Reihen der Matrix, welche die inversen DCT-Konstanten repräsentiert, mit den ausgewählten signifikanten Elementen in den Spaltenmatrizen der die DCT- Koeffizienten repräsentierenden Matrix durch. So werden nur die Nicht-Null-Wertelemente der Produktmatrix Z einer arithmetischen Operation unterzogen.
- Diese Erfindung bewirkt, daß nur die notwendigen Operationen für die DCT-Koeffizienten mit Nicht-Null-Werten durchgeführt werden, und unnötige Operationen für die DCT- Koeffizienten mit dem Null-Wert weggelassen werden. Demgemäß werden die Bilddaten in diesem Verfahren schneller wieder hergestellt als im herkömmlichen DCT-Bilddaten-Wiederherstellungsverfahren.
- Fig. 20 zeigt eine Ausführungsform eines Dequantisierers 550, der durch diese Erfindung konfiguriert ist.
- Fig. 21 zeigt eine Ausführungsform einer zweidimensionaien DCT-Einheit 560, die durch diese Erfindung konfiguriert ist.
- In Fig. 20 ist 53 eine in Fig. 3 gezeigte Quantisierungsschwellen-Speichereinheit zum Speichern der heruntergeladenen Quantisierungsschwellen. 551 ist ein Demultiplexer zum Trennen der Decodierdaten, die vom Decodierer 50 mit variabler Länge gesendet werden, in Indexdaten (IDX) und Laufdaten (RUN). 552 ist ein Blockende-Detektor zum Delektieren, ob ein Block das Ende erreicht hat. 553 ist ein signifikanter Koeffizientenselektor zum Halten dar Adressen innerhalb eines Blocks der Indexdaten mit Nicht-Null-Werten gemäß den Laufdaten, die vom Demultiplexer 551 verteilt werden, und zum Ausgeben von Adresseninformationen an die zweidimensionale inverse DCT-Einheit 560. 554 ist ein DCT- Koeffizientenwiederhersteller zum Halten von Indexdaten, die vom Demultiplexer 551 verteilt werden. Wiederherstellen der DCT-Koeffizienten durch das Multiplizieren der Indexdaten mit Quantisierungsschwellen im Quantisierungsschwellenspeicher 53, die aus den vom signifikanten Koeffizientenselektor 553 spezifizierten Adresseninformationen gelesen werden, und Ausgeben der wiederhergestellten DCT-Koeffizienten an eine zweidimensionale inverse DCT-Einheit 560. 555 ist ein Zeitkontroller zum Steuern jeweiliger funktioneller Teile.
- In Fig. 21 ist 561 eine DCT-Konstantenspeichereinheit, die in der in Fig. 3 gezeigten zweidimensionalen inversen DCT-Einheit 560 vorgesehen ist. Sie umfaßt einen DCT-Konstanten-Adressenrechner 569 und einen DCT-Konstantenspeicher 570, und speichert inverse DCT-Konstanten. 562 ist ein DCT- Koeffizientenhalter zum Halten der DCT-Koeffizienten, die vom DCT-Koeffizientenwiederhersteller 554 im Dequantisierer 550 übermittelt werden. 563 ist ein signifikanter Koeffifientenadressenhalter, der umfaßt: einen signifikanten Koeffizientenadressenspeicher 564 zum Halten der Adresseninformationen, die vom signifikanten Koeffizientenselektor 553 im Dequantisierer 52 übermittelt werden, einen Spaltenadressendetektor 565 zum Detektieren von Adresseninformationen, die in der zu verarbeitenden Spaltenmatrix enthalten sind, in den im signifikanten Koeffizientenadressenspeicher 564 gespeicherten Adresseninformationen, und einen Spaltenanzahlrechner 566 zum Berechnen der Anzahl von Nicht-Null-Wert- DCT-Koeffizienten, die in den zu verarbeitenden Spaltenmatrizen enthalten sind. 567 ist ein Lesekontroller zum Steuern des Auslesens der Speicherdaten aus dem inversen DCT-Konstantenspeicher 561 und dem DCT-Koeffizientenhalter 562. 568 ist ein inverser DCT-Rechner zum Ausführen einer zweidimensionalen inversen DCT zum Wiederherstellen von Bilddaten aus den inversen DCT-Konstanten, die aus dem inversen DCT-Konstantenspeicher 561 gelesen werden, und den DCT-Koeffizienten, die aus dem DCT-Koeffizientenhalter 562 gelesen werden.
- Als nächstes werden die Operationen der so konfigurierten zweiten Ausführungsform dieser Erfindung detailliert erläutert. Zuerst wird der Betrieb des Dequantisierers 550 erläutert.
- Die quantisierten Koeffizienten, welche aus Indexdaten und Laufdaten bestehen, die aus den Codedaten vom Decodierer 50 mit variabier Länge decodiert werden, werden in den Demultiplexer 551 eingegeben. Die Indexdaten und Laufdaten werden abwechselnd eingegeben. Das heißt, wenn die in Fig. 5A gezeigten quantisierten Koeffizienten (in der in Fig. 9 ge zeigten Scan-Reihenfolge gesendet) als Beispiel herangezogen werden, der erste D.C.-Element-Indexdatenwert "5", der Laufdatenwert "0", der die Anzahl von quantisierten Null-Wert- Koeffizienten bis zum nächsten Indexdatenwert "-1" repräsentiert, der Indexdatenwert "-1", der Laufdatenwert "0", der die Anzahl der quantisierten Null-Wert-Koeffizienten bis zum nächsten Indexdatenwert "-2" repräsentiert, der Indexdatenwert "-2", der Lauf datenwert "0", der die Anzahl der quantisierten Null-Wert-Koeffizienten bis zum nächsten Indexdatenwert "1" repräsentiert, der Indexdatenwert "1", der Laufdatenwert "5", der die Anzahl der quantisierten Null-Wert- Koeffizienten bis zum nächsten Indexdatenwert "-1" repräsentiert, der Indexdatenwert "-1", und dann "Reob", der repräsentiert, daß alle verbleibenden quantisierten Koeffizienten in dem Block "0" sind.
- Wenn die Decodierdatenspalten der quantisierten Koeffizienten, welche die Indexdaten und die Laufdaten umfassen, eingegeben werden, trennt der Zeitkontroller 555 die eingegebenen Daten in Indexdaten für den DCT-Koefft.zientenwiederhersteller 554 durch das Ausgeben des Auswahlsignals CSL an den Demultiplexer 551 und in Laufdaten an den Blockende- Detektor 552. Die oben beschriebene Eingabe von in Fig. 5A gezeigten quantisierten Koeffizienten wird nachstehend, erläutert.
- Der Zeitkontroller 555 sendet zuerst den eingegebenen Indexdatenwert "5" an den DCT-Koeffizientenwiederhersteller 554 durch das Steuern des Demultiplexers 551, wenn der signifikante Koeffizientenhalter 553 die Adresse "0" hält, und wenn der Indexdatenwert "5" in Entsprechung zum Kopfende eines Blocks existiert.
- Dann sendet der Zeitkontroller 555 den eingegebenen Lauf datenwert "0" an den Blockende-Detektor 552 durch das Steuern des Demultiplexers 551. Beim Empfang dos Lauf datenwerts "0", da er von "Reob" verschieden ist, beurteilt der Blockende-Detektor 552, daß signifikante (d. h. Nicht- Null-Wert) quantisierte Koeffizienten in einem Block zurückbleiben, und stellt eine Verarbeitungsanforderung an den signifikanten Koeffizientenselektor 553.
- Ansprechend auf diese Verarbeitungsanforderung berechnet und hält der signifikante Koeffizientenselektor 553 die Adresse (spezifiziert durch die Anzahl ab dem Kopfende quantisierter Koeffizienten) in Position "1", d. h. die nächsten signifikanten quantisierten Koeffizienten aus dem eingegebenen Lauf datenwert "0".
- Der Zeitkontroller 555 sendet den eingegebenen Indexdatenwert "-1" in Entsprechung zur Adresse "1" an den DCT- Koeffizientenwiederhersteller 554, wo er den Indexdatenwert "-1" durch das Steuern des Demultiplexers 551 hält.
- Dann sendet der Zeitkontroller 555 den eingegebenen Lauf datenwert "0" an den Blockende-Detektor 552, der eine Verarbeitungsanforderung an den signifikanten Koeffizientenselektor 553 beim Empfang des eingegebenen Lauf datenwerts "0" stellt. Der signifikante Koeffizientenselektor 553 berechnet seinerseits die Adressenposition "2", wo der signifikante quantisierte Koeffizient neben den eingegebenen Laufdatenwert "0" existiert. Der Zeitkontroller 555 sendet den eingegebenen Indexdatenwert "-2", welcher der Adresse "2" entspricht, an den DCT-Koeffizientenwiederhersteller 554.
- Der Zeitkontroller 555 sendet auch den eingegebenen Lauf datenwert "0" an den Blockende-Detektor 552, der eine Verarbeitungsanforderung an den signifikanten Koeffizientenselektor 553 beim Empfang des eingegebenen Laufdatenwerts "0" stellt. Der signifikante Koeffizientenselektor 553 berechnet seinerseits die Adressenposition "3", wo der signifikante quantisierte Koeffizient neben dem eingegebenen Lauf datenwert "0" existiert. Der Zeitkontroller 555 sendet den eingegebenen Indexdatenwert "-1", welcher der Adresse "3" entspricht, an den DCT-Koeffizientenwiederhersteller 554, wo er gehalten wird.
- Der Zeitkontroller 555 sendet auch den eingegebenen Lauf datenwert "5" an den Blockende-Detektor 552, der eine Verarbeitungsanforderung an den signifikanten Koeffizientenselektor 553 beim Empfang des eingegebenen Lauf datenwerts "5" stellt. Der signifikante Koeffizientenselektor 553 berechnet seinerseits die Adressenposition "9", wo der signifikante quantisierte Koeffizient neben dem eingegebenen Lauf datenwert "3" existiert. Der Zeitkontroller 555 sendet den eingegebenen Indexdatenwert "-1", welcher der Adresse "9" entspricht, an den DCT-Koeffizientenwiederhersteller 554, wo er gehalten wird.
- Der Zeitkontroller 555 sendet auch den eingegebenen Laufdatenwert "Reob" an den Blockende-Detektor 552, der beurteilt, daß kein signifikanter quantisierter Koeffizient in dem Block zurückbleibt, und den Zeitkontroller 555 über das Signal (BEN), das die Beurteilung anzeigt, benachrichtigt. Durch das Senden eines BSE-Signals an den signifikanten Koeffizientenselektor 553 weist der Zeitkontroller 555 den signifikanten Koeffizientenselektor 553 an, die Adressenberechnungen zu beenden, und die gehaltenen Adresseninformationen an die zweidimensionale inverse DCT-Einheit 560 auszugeben. Der signifikante Koeffizientenselektor 553 hält Adressen "0", "1", "2", "3" und "9", die den Indexdaten "5", "-1", "-2", "1" und "-1" entsprechen. Daher stellt der DCT- Koeffizienteriwiederhersteller 554 die DCT-Koeffizienten wieder her, indem die entsprechenden Quantisierungsschwellen im Quantisierungsschwellenspeicher 53, die gemäß den Adressen des signifikanten Koeffizientenselektors 5; 13 gelesen werden, und die Indexdaten, die er selbst hält multipli ziert werden, und gibt die wiederhergestellten DCT-Koeffizienten an die zweidimensionale inverse DCT-Einheit 560 aus, wo sie gehalten werden.
- Als nächstes werden die Aktionen der zweidimensionalen inversen DCT-Einheit 560 zum Empfangen der DCT-Koeffizienten und der Adressen, die in der zweiten Aus führungs form dieser Erfindung auftreten, unter Verwendung des obigen Beispiels erläutert.
- Ein signifikanter Koeffizientenadressenspeicher 564 hält Adressen "0", "1", "2", "3" und "9", die vom signifikanten Koeffizientenselektor 553 übermittelt werden. Ein Inverser DCT-Rechner 568 stellt Bilddaten gemäß der in Fig. 4 gezeigten Konfiguration wieder her, welche die eindimensionale inverse DCT-Einheit 540, den Transponierer 542, die eindimensionale inverse DCT-Einheit 543 und einen Transponierer 544 enthält. Der inverse DCT-Rechner 568 multipliziert zuerst die Matrix, welche die aus dem DCT-Koeffizientenhalter 562 gelesenen DCT-Koeffizienten repräsentiert, und die Matrix, welche die aus dem inversen DCT-Konstantenspeicher 561 gelesenen inversen DCT-Konstanten repräsentiert. Spezifischer wird die Matrix, welche die inversen DCT-Konstanten repräsentiert, mit den jeweiligen Spaltenaatrizen multipliziert, die sequentiell aus der die DCT-Koeffizienten repräsentierenden Matrix ausgewählt werden.
- Wenn die zu verarbeitende Spaltenmatrix ausgewählt wird, detektiert der Spaltenadressendetektor 565 Adresseninformationen, die in der ausgewählten Spaltenmatrix der DCT-Koeffizienten gespeichert sind, aus den Adresseninformationen, die im signifikanten Koeffizientenadressenspeicher 564 gespeichert sind. Indem beispielsweise die Spaltenmatrix ausgewählt wird, welche die erste Spalte der DCT-Koeffizienten repräsentiert, detektiert der Spaltenadressendetektor 565 Adressen "0", "2", "3" und "9" von den Adressen "0", "1", "2", "3" und "9", die im signifikanten Koeffizientenadressenspeicher 564 gehalten werden. Ansprechend auf diese Detektion durch den Spaltenadressendetektor 565 berechnet ein Spaltenanzahlrechner 566, daß die zu verarbeitende ausgewählte Spaltenmatrix vier (4) Nicht-Null-Wert-DCT-Koeffizienten aufweist.
- Wenn der Spaltenadressendetektor 565 die Adressen detektiert, die in der zu verarbeitenden Spaltenmatrix der DCT-Koeffizienten enthalten sind, liest ein Lesekontroller 567 die DCT-Koeffizienten, die durch die Adressen vom DCT- Koeffizientenhalter 562 spezifiziert werden, liest die Spaltenmatrix der inversen DCT-Konstanten, die den Adressen vom inversen DCT-Konstantenspeicher 561 entsprechtön, und sendet die gelesenen Daten an den inversen DCT-Rechnor 568. Die Leseverarbeitungen werden mit der vom Spaltenanzahlrechner 566 berechneten Anzahl synchronisiert.
- Das heißt, in Entsprechung zu den vom Spaltenadressendetektor 565 detektierten Adressen "0", "2", '"3" und "9" liest der Lesekontroller 567 sequentiell DCT-Koeffizienten "B&sub1;&sub1;", "B&sub2;&sub1;", "B&sub3;&sub1;" und "B&sub4;&sub1;" aus dem DCT-Koeffizientenhalter 562 und gibt sie an den inversen. DCT-Rechner 568 aus, und er liest auch sequentiell aus der inversen DCT- Konstantenspeichereinheit 561 die Spaltenmatrix der inversen DCT-Konstanten, die dem DCT-Koeffizienten "BU" entsprechen, d. h. [A&sub1;&sub1;, A&sub2;&sub1;, A&sub3;&sub1;, A&sub4;&sub1;, A&sub5;&sub1;, A&sub6;&sub1;, A&sub7;&sub1;, A&sub8;&sub1;, die Spaltenmatrix der inversen DCT-Konstanten, die dem DCT-Koeffizienten "B&sub2;&sub1;" entsprechen, d. h. [A&sub1;&sub2;, A&sub2;&sub2;, A&sub3;&sub2;, A&sub4;&sub2;, A&sub5;&sub2;, A&sub6;&sub2;, A&sub7;&sub2;, A&sub8;&sub2;]t, die Spaltenmatrix der inversen DCT-Konstanten, die dem DCT-Koeffizienten "B&sub3;&sub1;" entsprechen, d. h. [A&sub1;&sub3;, A&sub2;&sub3;, A&sub3;&sub3;, A&sub4;&sub3;, A&sub5;&sub3;, A&sub6;&sub3;, A&sub7;&sub3;, A&sub8;&sub3;]t, und die Spaltenmatrix der inversen DCT-Konstanten, die dem DCT-Koeffizienten "B&sub4;&sub1;" entsprechen, d. h. [A&sub1;&sub4;, A&sub2;&sub4;, A&sub3;&sub4;, A&sub4;&sub4;, A&sub5;&sub4;, A&sub6;&sub4;, A&sub7;&sub4;, A&sub8;&sub4;]t, und gibt diese Spaltenmatrizen an den inversen DCT-Rechner 568 aus.
- Beim Empfang der Nicht-Null-Wert DCT-Koeffizienten in der Matrix B und den entsprechenden Spaltenmatrizen der Matrix AT, welche die inversen DCT-Konstanten repräsentiert, multipliziert sie der inverse DCT-Rechner 566i sequentiell, um die Nicht-Null-Werteleroente in der Produktmatrix Z zu berechnen. Das heißt, anstelle der Berechnung aller Elemente der Produktmatrix Z werden nur die Nicht-Null-Wertelemente berechnet, d. h. unnötige Berechnungen für die Null-Wert- elemente werden weggelassen.
- So reduziert die zweidimensionale inverse DCT-Einheit 560 die Anzahl von Rechenschritten durch die Ausführung nur der notwendigen Operationen für die Nicht-Null-Werte.
- Obwohl die zweite Ausführungsform dieser Erfindung mit Bezugnahme auf Fig. 19, 20 und 21 erläutert wurde, die das adaptive diskrete Kosinuscodierverfahren erklären, ist die Verwendung dieser Erfindung in keiner Weise als auf diese Ausführungsform beschränkt anzusehen. Tatsächlich ist sie auf ein beliebiges Verfahren anwendbar, das eine orthogonale Transformation involviert.
- Fig. 22 ist ein Blockbild der dritten Ausführungsform dieser Erfindung.
- In Fig. 22 ist ein Bild in eine Vielzahl von Blöcken geteilt, die jeweils eine Vielzahl von Bildelementen umfassen. Die jeweiligen Elemente der durch eine zweidimensionale DCT erhaltenen DCT-Koeffizienten für die Bildelemente dieser Blöcke werden durch Quantisierungsschwellen quantisiert, und die durch die Quantisierungsprozesse erhaltenen quantisierten Koeffizienten werden codiert, um Codedaten zu generieren. Ein Decodierer 151 decodiert die eingegebenen Codedaten und gibt die quantisierten Koeffizienten gemäß einem Bilddatenwiederherstellungsverfahren zum Wiederherstellen der Bilddaten aus den generierten Codedaten aus.
- Ein Dequantisierer 161 führt eine Dequantisierung durch, indem er die aus dem Decodierer 151 ausgegebenen jeweiligen Elemente und die entsprechenden Quantisierungsschwellen multipliziert, und stellt die DCT-Koeffizienten wieder her.
- Eine DCT-Einheit 181 generiert Bilddaten, indem sie eine zweidiraensionale DCT für die vom Dequantisierer 161 zugeführten DCT-Koeffizienten durchführt.
- Ein D.C.-Multiplizierer 182 multipliziert das D.C.-Element der DCT-Koeffizienten mit einer vorherbestimmten Konstante und generiert einen Bilddatenwert auf der Basis der Multiplikationen.
- Ein Blockdetektor 171 delektiert Blöcke ohne irgendein signifikantes A.C.-Element auf der Basis der DCT-Koeffizienten, die den jeweiligen Blöcken entsprechen, oder der quantisierten Koeffizienten, die den jeweiligen vom Dequantisierer 161 eingegebenen Blöcken entsprechen.
- Ein Selektor 191 überträgt, als Bilddatenwert, einen Ausgang entweder von der DCT-Einheit 181 oder dem D.C.-Multiplizierer 182 gemäß dem Detektionsergebnis des Blockdetektors.
- Codedaten werden in den Decodierer 151 eingegeben, der quantisierte Koeffizienten durch das Decodieren der Codedaten ausgibt. Durch das Multiplizieren der jeweiligen Elemente der quantisierten Koeffizienten mit den entsprechenden Quantisierungsschwellen dequantisiert der Dequantisierer 161 die zugeführten quantisierten Koeffizienten und gibt die entsprechenden DCT-Koeffizienten aus. Die DCT-Einheit 181 führt zweidimensionale DCTs an den DCT-Koeffizienten durch und generiert auch Bilddaten der Blöcke, die den DCT-Koeffizienten entsprechen, und gibt diese aus.
- Der D.C.-Multiplizierer 182 multipliziert die D.C.-Ele mente der oben beschriebenen DCT-Koeffizienten mit vorherbestimmten Konstanten und generiert Bilddaten auf der Basis der Multiplikationen.
- Zu dieser Zeit detektiert der Blockdetektor 171 Blöcke ohne jegliche signifikanten A.C.-Elemente auf der Basis der DCT-Koeffizienten oder der quantisierten Koeffizienten, die den vom Dequantisierer 161 eingegebenen jeweiligen Blöcken entsprechen. Der Selektor 191 überträgt einen Ausgang entweder von der DCT-Einheit 181 oder dem D.C.-Multiplizierer 182 gemäß den Detektionsergebnissen.
- Hier sind die Werte der jeweiligen Bildelementdaten des Blocks, welche mittels der Durchführung von DCTs für die den Blöcken ohne jegliche signifikanten A.C.-Elemente entsprechenden DCT-Koeffizienten durch die oben beschriebene DCT- Einheit 181 erhalten werden, gleich den Werten, die durch das Multiplizieren der D.C.-Elemente der oben beschriebenen DCT-Koeffizienten mit den vorherbestimmten Konstanten erhalten werden.
- Daher werden hinsichtlich eines Blocks, von dem vom Blockdetektor 171 beurteilt wurde, daß er keine signifikanten A. C.-Elemente aufweist, zweidimensionale DCTs der DCT-Einheit 181 durch die oben beschriebenen Multiplikationen der D.C.-Elemente mit den vorherbestimmten Konstanten ersetzt.
- In der dritten Ausführungsform dieser Erfindung detektiert der Blockdetektor 171
- Blöcke ohne jegliche signifikanten A.C.-Elemente auf der Basis quantisierter Koeffizienten. Die DCT-Einheit 181 führt keine zweidimensionalen DCT-Prozesse für derartige Blöcke durch. Diese Prozesse werden durch die Multiplikationen des D.C.-Multiplizierers 182 der D.C.-Elemente der DCT-Koeffizienten mit den vorherbestimmten Konstanten ersetzt. Da der D.C.-Multiplizierer 182 Multiplikationen schneller durchführt als zweidimensionale DCTs, die von der DCT-Einheit 181 verarbeitet werden, werden Bilddaten rascher wiederhergestellt.
- Fig. 23 zeigt die Konfiguration des Wiederherstellers, auf den das Bilddatenwiederherstellungsverfahren gemäß der dritten Ausführungsform dieser Erfindung angewendet wird.
- Hier ist die Entsprechung zwischen den; in Fig. 22 und 23 aufscheinenden Teilen wie folgt.
- Der Decodierer 151 entspricht einem Decodierer 251 und einer Decodiertabelle 252.
- Der Dequantisierer 161 entspricht einem DCT-Koeffizientenwiederhersteller 268 und einem Quantisierungsschwellenhalter 263 in einem Dequantisierer 260.
- Der Blockdetektor 171 entspricht einem Zähler 265 und einem Beurteiler 266 im Dequantisierer 260.
- Die DCT-Einheit 181 entspricht einer inversen DCT-Einheit 281.
- Der D.C.-Multiplizierer 182 entspricht einem D.C.-Elementmultiplizierer 282.
- Der Selektor 191 entspricht einem Multiplexer 291.
- Unter Annahme der obigen Entsprechungen wird unten die dritte Ausführungsform dieser Erfindung erläutert.
- Die Decodiertabelle 252 speichert im voraus in einer Tabelle die Kombination von Codes mit variabler Länge und den entsprechenden Index- und Laufdaten.
- Der Quantisierungsmatrixhalter 269 speichert die Quantisierungsmatrix VTH, die Quantisierungsschwellen repräsentiert. (Siehe Fig. 7).
- Die der Decodiereinheit über einen Transmissionsweg, etc., zugeführten Codedaten werden zuerst in den Decodierer 251 eingegeben, der die oben beschriebene Decodiertabelle 252 auf der Basis der eingegebenen Codedaten durchsucht und die Kombination der entsprechenden Index- und Laufdaten aus der Decodiertabelle 252 liest.
- So werden die eingegebenen Codes in die Kombination der entsprechenden Index- und Laufdaten decodiert, und die Indexdaten, welche die Werte der signifikanten Koeffizienten anzeigen, und die Laufdaten, welche die Länge der konsekutiven insignifikanten Elemente nach den signifikanten Koeffizienten anzeigen, werden aufeinanderfolgend dem Dequantisierer 260 zugeführt.
- Auf der Basis der Index- und Laufdaten dequantisiert der Dequantisierer 260 die quantisierten Koeffizienten in die wiederhergestellten DCT-Koeffizienten, beurteilt, ob es signifikante Nicht-Null-Koeffizienten in den A.C.-Elementen gibt, und gibt ein Schaltsignal auf der Basis des Beurteilungsergebnisses aus.
- Die wiederhergestellten DCT-Koeffizienten werden dem D.C.-Elementmultiplizierer 282 zugeführt.
- Die inverse DCT-Einhait 281 führt inversw DCTs für die zugeführten wiederhergestellten DCT-Koeffizienten durch, um Bilddaten wiederherzustellen.
- Wenn es keine signifikanten A.C.-Elemente in den DCT- Koeffizienten gibt, d. h. wenn es nur signifikante D.C.-Elemente gibt, sind hier die jeweiligen Bildelementdaten, die mittels der Durchführung inverser DCTs für die DCT-Koeffizienten erhalten werden, gleich den Ergebnissen, welche durch das Multiplizieren dieser D.C.-Elemente mit den entsprechenden Konstanten (nachstehend als D.C.-Multiplikationskonstanten bezeichnet) erhalten werden, die aus den DCT-Konstanten erhalten werden.
- Wenn nur die D.C.-Elemente in den DCT-Koeffizienten signifikante Koeffizienten bilden, stellt der D.C.-Elementaultiplizierer 282, indem derartige signifikante D.C.-Elemente mit den oben beschriebenen D.C.-Multiplikationskonstanten multipliziert werden, um alle Bildelenentdaten in einem Block zu erhalten, die Bilddaten des Blocks so wieder her.
- Die Multiplikationsergebnisse, d. h. die wiederherge stellten Bilddaten eines Blocks, zusammen mit dem Ergebnis der Durchführung inverser DCTs durch die inverse DCT-Einheit 281, werden dem Multiplexer 291 zugeführt.
- Der Multiplexer 291 überträgt, als Bilddaten, einen Ausgang entweder von der inversen DCT-Einheit 281 oder den D.C.-Elementinultiplizierer 282, in Abhängigkeit vom oben beschriebenen Schaltsignal, das vom Dequantisierer 260 zugeführt wird. Die Konfiguration und Aktionen des Dequantisierers 260 werden nachstehend beschrieben.
- Vor der Wiederherstellung von Bildern der Blöcke in einem Bildschirm wird ein Quantisierungssteuerparameter SF, der die Genauigkeit der Bildquantisierung spezifiziert, in den Dequantisierer 260 eingegeben, und der Quantisierungsschwellenhalter 263 speichert, als Quantisierangsschwelle QTH, s Ergebnis der Multiplikation des Quantisierungssteuerparameters SF mit der Quantisierungsmatrix VTH, die im Quantisierungsnatrixhalter 269 gespeichert ist.
- Wenn die Bilder wiederhergestellt werden, führt der Decodierer 251 abwechselnd die Indexdaten und die Laufdaten dem Demultiplexer 261 im Dequantisierer 260 zu, z. B. wie in Fig. 24A gezeigt.
- Gemäß dem vom Zeitkontroller 264 zugeführten Auswahlsignal CSL gibt der Demultiplexer 261 die eingegebenen Daten abwechselnd aus Ausgangsanschlüssen O&sub1; und O&sub2; aus, so daß die aufeinanderfolgend zugeführten Index- und Laufdaten getrennt und jeweils dem DCT-Koeffizientenwiederhersteller 268 und einem Blockende-Detektor 262 zugeführt werden.
- Beim Empfang des Lauf datenwerts Reob, er das Blockende der zugeführten Laufdaten anzeigt, beurteilt der Blockende- Detektor 262, daß alle in einem Block enthaltenen quantisierten Koeffizienten eingegeben sind, und gibt ein Blockende (EOB)-Signal aus. Der Blockende-Detektor 262 führt alle anderen zugeführten Laufdaten als Reob zu einem Adressen generator 267.
- Der Adressengenerator 267 akkumuliert die Werte der sequentiell zugeführten Laufdaten, zu denen 1 addiert wird. Der Adressengenerator 267 gibt, als den nächsten Indexdaten entsprechende Adressen, die durch die Akkumulationsergebnisse angezeigten Matrixpositionen, die der Zlickzack-Scan- Reihenfolge (siehe Fig. 9) entsprechen, zum Quantisierungsschwellenhalter 268 und DCT-Koeffizientenhalter 263 aus.
- Die vom Adressengenerator 267 ermittelten Akkumulationswerte werden jedesmal, wenn der Blockence-Detektor 262 ein Blockende detektiert, auf den Initialwert "1" zurückgesetzt.
- Wenn beispielsweise die Decodierdaten, wie die in Fig. 24A gezeigten, dem Demultiplexer 261 im Dequantisierer 260 Zugeführt werden, generiert der Adressengenerator 267 eine Adresse, die das (1, 1) Element der einem ersten Indexdatenwert Dm entsprechenden Adresse anzeigt. Dann, ansprechend auf einen Lauf datenwert R&sub0;, wird 1 zu den Akkumulationswerten im Adressengenerator 267 addiert, und der Adressengenerator 267 generiert, als Adresse des nächsten Indexdatenwerts 13, eine Adresse, die das (1, 2) Element der Matrix anzeigt, das der zweiten Position des Zickzack- Scannens entspricht.
- Der Quantisierungsschwellenhalter 263 gibt die entsprechenden Elemente der Quantisierungsschwellen QTH an den DCT- Koeffizientenwiederhersteller 268 gemäß den in Entsprechung zu den Indexdaten generierten Adressen aus.
- Der DCT-Koeffizientenwiederhersteller 268 dequantisiert Elemente der quantisierten DCT-Koeffizienten durch das Multiplizieren der zugeführten Elemente der Quantisierungsschwellen QTH mit den eingegebenen Indexdatenwerten. Die durch die Dequantisierung generierten DCT-Koeffizienten werden in Entsprechung zu den vom Adressengenerator 267 zu geführten Adressen gespeichert.
- So gibt der Zeitkontroller 264 ein Additionssignal synchron mit den Eingangszeiten der Indexdaten vom Decodierer 251 aus. Der Zähler 265 führt die Zählaktionen synchron mit dem Additionssignal durch, parallel zur oben beschriebenen Dequantisierung. Jedesmal, wenn Eingaben der Index- und Laufdaten, die einem Block entsprechen, beendet sind, wird der Zählwert des Zählers 265 auf seinen Initialwert "0" zurückgesetzt.
- So zählt der Zähler 265 die Gesamtanzahl von Indexdaten, welche als quantisierte Koeffizienten eingegeben werden, die den jeweiligen Blöcken entsprechen.
- Wenn bei der Wiederherstellung der DCT-Koeffizienten, die den jeweiligen Blöcken entsprechen, die gesamten vom Zähler 265 gezählten Indexdaten "1" sind, sind hier alle A.C.-Elemente der DCT-Koeffizienten 0. Daher wird beurteilt, daß der den DCT-Koeffizienten entsprechende Bildblock nur die D.C.-Elemente ohne jegliche signifikanten A.C.-Elemente umfaßt.
- Der Zählwert des Zählers 265 wird der Beurteilungseinheit 266 zugeführt, die gemäß einer Instruktion vom Zeitkontroller 264 beurteilt, ob der zugeführte Zählwert "1" ist oder nicht, und eine logische "1" ausgibt, wenn der Zählwert "1" ist, und ansonsten eine logische "0". Der Zeitkontroller 264 weist die Beurteilungseinheit 266 gemäß dem EOB-Signal vom Blockende-Detektor 262 an. Beurteilungsaktionen durchzuführen.
- Wenn die decodierten Daten, wie die in Fig. 24A gezeigten, dem Dequantisierer 260 als Ergebnis der Decodierung der Codedaten, die dem m.ten Block entsprechen, zugeführt werden, ist die Gesamtsumme der vom Zähler 265 gezählten signifikanten Koeffizienten "5". In diesem Fall beurteilt die Beurteilungseinheit 266, daß der Block nicht nur D.C.-Ele mente, sondern auch etwas anderes enthält, und der Multiplexer 291 empfängt eine logische "0" als Schaltsignal. Ansprechend darauf überträgt der Multiplexer 291 gewöhnlich einen Ausgang aus der inversen DCT-Einheit 281 als Bilddaten des m.ten Blocks.
- Wenn die decodierten Daten, wie die in Fig. 24B gezeigten, dem Dequantisierer 260 als Ergebnis der Decodierung der Codedaten, die dem n.ten Block entsprechen, zugeführt werden, ist die Gesamtsumme der vom Zähler 265 gezählten signifikanten Koeffizienten "1". In diesem Fall beurteilt die Beurteilungseinheit 266, daß der Block nur D.C.-Elemente enthält, und der Multiplexer 291 empfängt eine logische "1" als Schaltsignal. Ansprechend darauf überträgt der Multiplexer 291 einen Ausgang aus dem DCT-Elementmultiplizierer 282 als Bilddaten des n.ten Blocks.
- Da der D.C.-Elementmultiplizierer 282 die D.C.-Elemente der zugeführten DCT-Koeffizienten mit den D.C.-Konstanten multipliziert, operiert der D.C.-Elementmultiplizierer 282 viel schneller als die inverse DCT-Einheit 281 für inverse DCT-Verarbeitungen.
- Indem die inverse DCT-Verarbeitung für die Blöcke, die nur D.C.-Elemente umfassen, durch die Multiplikation der D.C.-Elemente in den Block mit den DCT-Konstzanten ersetzt wird, werden so die Codedaten erheblich rascher wiederhergestellt.
- Wenn beispielsweise eine Datenbank einen progressiven Bildaufbau durchführt, wird das Bild in der ersten Stufe mit dem geringsten Informationsbetrag manchmal allein durch die Blöcke konfiguriert, die nur D.C.-Elemente umfassen. In diesem Fall werden nur die D.C.-Elemente der jeweiligen Blöcke, die in den in der Datenbank akkumulierten Codierdaten enthalten sind, der in Fig. 23 gezeigten Wiederherstellungseinheit zugeführt, um wiederhergestellt zu werden.
- In diesem Fall umfassen die decodierten Daten, die durch das Decodieren der allen Blöcken entsprechenden Codedaten erhalten werden. Indexdaten zum Anzeigen von D.C.-Elementen und den Laufdatenwert Reob 2um Anzeigen des Blockendes, und die Beurteilungseinheit 266 im Dequantisierer 260 beurteilt, daß alle Blöcke nur D.C.-Elemente umfassen. So werden die inversen DCT-Verarbeitungen nicht für alle Blöcke in einem Bildschirm durchgeführt, und ein Ausgang aus dem D.C.-Elementmultiplizierer 282 wird als wiederhergestellte Bilddaten übertragen.
- Wenn ein Bild mit einem geringen Informationsbetrag wiederhergestellt wird, wird die erforderliche Wiederherstellungszeit signifikant verkürzt, z. B. auf ein Achtel jener für herkömmliche Prozesse.
- So wird es möglich, das Suchen von Bildern, die z. B. in einer Datenbank gespeichert sind, unter Verwendung des progressiven Bildaufbaus zu beschleunigen.
- Standardblöcke haben aber viele Blöcke, die nur D.C.- Elemente im Hintergrund umfassen, und derartige Blöcke machen etwa 40% der einen Bildschirm bildenden Blöcke aus.
- Demgemäß verkürzt die in Fig. 23 gezeigte Wiederherstellungseinheit die Zeit, die für die Wiederherstellung des Bilds eines Bildschirms erforderlich ist, auch wenn ein detailliertes Bild wiederhergestellt wird.
- Die dritte Ausführungsform dieser Erfindung beschreibt den Fall, bei dem der im Dequantisierer 260 vorgesehene Zähler 265 und Beurteiler 266 beurteilen, ob die Gesamtsumme der signifikanten Koeffizienten größer als "1" ist oder nicht, um Blöcke nur mit D.C.-Elementen zu detektieren. Es ist jedoch möglich, nur D.C.-Elemente umfassende Blöcke durch die vom DCT-Koeffizientenwiederhersteller 268 wiederhergestellten DCT-Koeffizienten zu detektieren.
- In diesem Fall wird, wie in Fig. 25 gezeigt, anstelle des in Fig. 23 dargestellten Dequantisierers 260 ein Dequantisierer 270 ohne den Zähler 265 und die Beurteilungseinheit 266 des Dequantisierers 260 zusammen mit einem Blockdetektor 271 verwendet, um die Wiederherstellungseinheit zu konfigurieren.
- Der Blockdetektor 271 empfängt die vom Dequantisierer 270 generierten DCT-Koeffizienten, um die signifikanten Elemente der DCT-Koeffizienten zu delektieren. Der Blockdetektor 271 beurteilt, daß ein Block nur D.C.-Elemente unifaßt, und gibt eine logische "1" als Schaltsignal an den Multiplexer 291 aus, wenn die Anzahl detektierter signifikanter Anzahlen nicht größer als "1" ist.
- Fig. 26 ist ein Blockbild der vierten Ausführungsform dieser Erfindung.
- In Fig. 26 transformiert ein orthogonaler Bilddatentransformierer 81 orthogonal Bilddaten oder transformiert codierte Bilddaten in inverse, und eine Matrixoperationsschaltung 82 führt während einer orthogonalen Transformation vom orthogonalen Bilddatentransformierer 81 angeforderte Matrixoperationen zwischen einer N·N Matrix, die Transformationskonstanten repräsentiert, und einer N·1 Matrix durch, die zu verarbeitende Daten repräsentiert.
- Die Matrixoperationsschaltung 82 umfaßt eine erste Verriegelung 210, zweite Verriegelungen 211-1 bis 211-x, Multiplizierer 212-1 bis 212-x, die entsprechend den zweiten Verriegelungen 211-1 bis 211-x vorgesehen sind, Addierer 213-1 bis 213-x, die entsprechend den Multiplizierern 212-1 bis 212-x vorgesehen sind, dritte Verriegelungen; 214-1 bis 214-x, die entsprechend den Addierern 213-1 bis 213-x vorgesehen sind, und Selektoren 215-1 bis 215-x, die entsprechend den Addierern 213-1 bis 213-x vorgesehen sind, wobei x die Anzahl von Spalten in einer der N/x N·x Matrizen ist, welche alle dieselben N·x Matrixdimensionen aufweisen, die von der N·N Matrix der Transformationskonstanten abgeteilt sind.
- Nachstehend wird ein Beispiel diskutiert, in dem N = 8 und x = 4. Das heißt, eine 8·8 Matrix von Trans formatioriskonstanten wird in zwei (2) 8·4 Matrizen geteilt, und eine 8·1 Spaltenmatrix repräsentiert die zu verarbeitenden Daten.
- Spezifisch unifaßt die Matrixoperationsschaltung 82 die erste Verriegelung 210, die vier (4) zweiten Verriegelungen 211-1 bis 211-4, die vier (4) Multiplizierer 212-1 bis 212-4, die vier (4) Addierer 213-1 bis 213-4, die acht (8) dritten Verriegelungen 214-11 bis 214-41 und 214-12 bis 214-42, und Selektoren 215-1 bis 215-4. Das heißt, die Addierer 213-1 bis 213-4 sind mit jeweiligen Paaren von zwei (2) dritten Verriegelungen (214-11 und 214-12) bis (214-41 und 214-42) verbunden.
- Die erste Verriegelung 210 verriegelt sequentiell, acht (8) Verarbeitungsdatenwerte in der 8·1 Spaltenmatrix. Die zweiten Verriegelungen 211-1 bis 211-4 verriegeln sequentiell die Transformationskonstanten in den Spaltenmatrizen, die den verarbeiteten Daten entsprechen, verriegelt durch die erste Verriegelung 210 für die jeweiligen zwei (2) 8·4 Matrizen. Die Multiplizierer 212-1 bis 212-4 multiplissieren die zu verarbeitenden Daten, verriegelt durch die erste Verriegelung 210, mit den durch die zweiten Verriegelungen 211-1 bis 211-4 verriegelten Transformationskonstanten. Die Addierer 213-1 bis 213-4 akkumulieren die von den Multiplizierern 212-1 bis 212-4 ermittelten Produkte. Die dritten Verriegelungen 214-11 bis 214-42 verriegeln die von den Addierern 213-1 bis 213-4 ermittelten akkumulierten Summen. Die Selektoren 215-1 bis 215-4 wählen Paare der dritten Verriegelungen (214-11 und 214-12) bis (214-41 und 214-42) aus, die entsprechend den von den zweiten Verriegelungen 211-1 bis 211-4 verriegelten Transformationskonstanten vorgesehen sind, und führen die von den dritten Verriegelungen 214-11 bis 214-42 verriegelten bisher akkumulierten Summen den Addierern 213-1 bis 213-4 zu.
- Wenn in der vierten Ausführungsform dieser Erfindung die erste Verriegelung 210 dieselben zu verarbeitenden Daten verriegelt, verriegeln die zweiten Verriegelungen 211-1 bis 211-4 die entsprechenden Spalterunatrizen der Trans formationskonstanten für die jeweiligen zwei Teilungen der 8·8 Originalmatrix in einer Zeitserie.
- Ansprechend auf die sequentiellen Verriegelungsaktionen durch die zweiten Verriegelungen 211-1 bis 211-4 multiplizieren die Multiplizierer 212-1 bis 212-4 sequentiell dieselben zu verarbeitenden Daten, die von der ersten Verriegelung verriegelt werden, mit den entsprechenden Spaltenmatrizen-Transformationskonstanten, die sequentiell von den zweiten Verriegelungen 211-1 bis 211-4 verriegelt werden.
- Nachdem diese Multiplikation in einer Zeitserie ausgeführt wurde, addieren die Addierer 213-1 bis 213-4 sequentiell die aus den Multiplizierern 212-1 bis 212-4 ausgegebenen Daten entsprechend den zweiten Verriegelungen 211-1 bis 211-4 mit den vorher akkumulierten Daten, die aus den Selektoren 215-1 bis 215-4 ausgegeben werden, und geben die aktualisierten akkumulierten Daten an jeweilige Paare der dritten Verriegelungen (214-11 und 214-12) bis (214-41 und 214-42) aus. Diese Paare verriegeln die akkumulierten Werte für die jeweiligen zwei Teilungen jeder der 8·4 Matrizen.
- Die Selektoren 215-1 bis 215-4 wählen die von den Paaren der dritten Verriegelungen (214-11 und 214-12) bis (214-41 und 214-42) verriegelten akkumulierten Daten aus und geben sie an die Addierer 213-1 bis 213-4 aus, um die akkumulierten Daten zu aktualisieren.
- Die so ausgeführten Akkumulationen werden fortgesetzt, bis die erste Verriegelung 210 ihre Verriegelungsaktionen beendet. Die Multiplikationen der 8·8 Originalmatrix der Transformationskonstanten mit der 8 · 1 Spaltenmatrix werden vollendet, wenn die dritten Verriegelungen 214-11 bis 214-42 die Elementwerte der 8 · 1 Produktmatrix verriegeln.
- Gemäß der vierten Ausführungsform dieser Erfindung wird so die Anzahl von Multiplizierern 212-1 bis 212-4 gegenüber den Erfordernissen des Standes der Technik um die Hälfte reduziert, wodurch die Schaltungsgröße stark verringert wird.
- Nachstehend wird die vierte Ausführungsform dieser Erfindung weiter diskutiert, wobei sein Prinzip auf die eindimensionale DCT-Einheit 400 angewendet wird, auf die in Fig. 2 bezuggenommen wird. Wie vorstehend angegeben, multipliziert die eindimensionale DCT-Einheit 400 eine Bildsignalmatrix X, z. B. aus 8·8 Bildelementen, mit einer DCT-Konstantenmatrix A, z. B. aus 8·8 Elementen, die im DCT-Konstantenspeicher 401 gespeichert sind, um die Produktmatrix Y (= A·X); zu erhalten.
- Die vierte Ausführungsform dieser Erfindung beschleunigt Matrixmultiplikationen. Spezifischer wird die 8·8 Bildsignalmatrix in acht (8) 8·1 Spaltenmatrizen geteilt. Wenn die Spaltenmatrix, welche die erste Spalte der Matrix X repräsentiert, verarbeitet wird, werden die Multiplikationen durchgeführt, die zur Berechnung der Matrixelemente Y&sub1;&sub1; bis Y&sub8;&sub1; in der ersten Spalte der Produktmatrix Y erforderlich sind.
- Fig. 27A, 27B und 27C zeigen eine Verwendung der vierten Ausführungsform dieser Erfindung in der eindimensionalen DCT-Einheit 400.
- Das in Fig. 27A, 28B und 28C gezeigte Beispiel nimmt an, daß die DCT-Konstanten in der 8·8 Originalmatrix in eine erste 4·8 Gruppe, welche die Elemente in der oberen Hälfte der 8·8 Originalmatrix repräsentiert, und eine weitere zweite 4·8 Gruppe, welche die Elemente in der unteren Hälfte repräsentiert, geteilt werden.
- Wie bereits in der Erläuterung zu Fig. 3 diskutiert wurde, speichert der DCT-Konstantenspeicher 401 die DCT-Konstanten. Erste Multiplexer 31-1 bis 31-4 multiplexen acht (8) Elemente in vier (4) jeweiligen Reihen.
- Eine erste Verriegelung 20, zweite Verriegelungen 21-1 bis 21-4, Multiplizierer 22-1 bis 22-4, Addierer 24-1 bis 24-4, vierte Verriegelungen 25-11 bis 25-42 und zweite Multiplexer 26-1 bis 26-4, die in Fig. 27A gezeigt sind, entsprechen jeweils der ersten Verriegelung 210, den zweiten Verriegelungen 211-1 bis 211-4, den Multiplizierern 212-1 bis 212-4, den Addierern 213-1 bis 213-4, den dritten Verriegelungen 214-11 bis 214-42 und den Selektoren 215-1 bis 215-4, die in Fig. 26 gezeigt sind. Dritte Verriegelungen 23-1 bis 23-4 verriegeln die aus den Multiplizierern 22-1 bis 22-4 ausgegebenen Produkte. Fünfte Verriegelungen 27-11 bis 27-42 verriegeln jeweils die Produkte der Matrixmultiplikationen, die von den vierten Verriegelungen 25-11 bis 25-42 verriegelt werden. Ein Ausgabemultiplexer 28 gibt selektiv die Matrixmultiplikationsprodukte aus, die von den fünften Verriegelungen 27-11 bis 27-42 verriegelt werden. Ein Operationskontroller 30 steuert die in Fig. 27A gezeigten jeweiligen Schaltungen.
- Wie bereits diskutiert, wird die 8·8 Matrix von DCT- Konstanten in zwei (2) 4·8 Matrizen geteilt. Die Anzahl der ersten Multiplexer 31-1 bis 31-4, der zweiten Verriegelungen 21-1 bis 21-4, der Multiplizierer 22-1 bis 22-4, der dritten Verriegelungen 23-1 bis 23-4, der Addierer 24-1 bis 24-4 und der zweiten Multiplexer 26-1 bis 26-4, die vier (4) ist, entspricht den vier (4) Sätzen von acht (8) Matrixelementen, die aus den 4·8 Matrizen der ersten und zweiten Gruppe ausgegeben werden. Die Anzahl gepaarter vierter Verriegelungen in jedem der vier Paare (25-11 und 25-12) bis (25-41 und 25-42), die zwei ist, entspricht der Anzahl von Teilungen der 8·8 Originalmatrix.
- Fig. 27C ist ein Flußdiagramm zur Erläuterung der Operationen der eindimensionalen DCT-Einheit 400.
- Wenn die Bilddaten in der ersten Spalte eines 8·8 Bildsignals sequentiell eingegeben werden, speichert der Operationskontroller 30 zuerst das Kopfende-Bildsignalelement X&sub1;&sub1; in der ersten Spalte, indem ein Verriegelungsinstruktionssignal an die erste Verriegelung 20 gesendet wird. (Für die Eingabe von SP1 siehe Fig. 27B). Die ersten Multiplexer 31-1 bis 31-4 wählen vier DCT-Konstanten A&sub1;&sub1; bis A&sub4;&sub1;, die zur ersten Gruppe der Matrixteilung gehören, aus den acht (8) DCT-Konstanten A&sub1;&sub1; bis A&sub8;&sub1; aus, die aus dem DCT-Konstantenspeicher 401 ausgegeben werden, synchron mit dem Speichern von Xu in der ersten Verriegelung 20 gemäß einem Auswahl-Steuersignal (SEL), und setzen die vier (4) ausgewählten DCT-Konstanten A&sub1;&sub1; bis A&sub8;&sub1; in den zweiten Verriegelungen 21-1 bis 21-4, indem Verriegelungsinstruktionssignale zu den zweiten Verriegelungen 21-1 bis 21-4 gesendet werden. (Für die Konstanten von SP1 siehe Fig. 27B).
- Wenn die zweiten Verriegelungen 21-1 bis 21-4 die vier DCT-Konstanten A&sub1;&sub1; bis A&sub4;&sub1; verriegeln, multiplizieren die jeweiligen Multiplizierer 22-1 bis 22-4 die DCT-Konstanten A&sub1;&sub1; bis A&sub4;&sub1; mit dem Kopfende-Bildsignalelement X&sub1;&sub1;. Das heißt, der Operationskontroller 30 sendet zuerst Verriegelungssignale an die dritten Verriegelungen 23-1 bis 23-4. (Für SP2 siehe Fig. 27B). Dann verriegeln die dritten Verriegelungen 23-1 bis 23-4 die Multiplikationsergebnisse F&sub1;&sub1; bis F&sub4;&sub1;.
- So werden die Produkte F&sub1;&sub1; bis F&sub4;&sub1; parallel berechnet, und repräsentieren die ersten Terme der Produktsummenoperationen zur Ermittlung der Matrixelemente.
- Der Operationskontroller 30 führt eine Steuerung durch, um in die Addierer 24-1 bis 24-4 die Ausgänge aus den vierten Verriegelungen 25-11 bis 25-41 einzugeben, die in Entsprechung zu den DCT-Konstanten A&sub1;&sub1; bis A&sub4;&sub1; in der ersten Gruppe vorgesehen sind, indem er die zweiten Multiplexer 26-1 bis 26-4 gemäß dem Auswahlsteuersignal (SEL) steuert, und setzt die vier (4) ausgewählten DCT-Konstanten A&sub1;&sub1; bis A&sub4;&sub1; in den zweiten Verriegelungen 21-1 bis 21-4, indem Verriegelungsinstruktionssignale zu den zweiten Verriegelungen 21-1 bis 21-4 gesendet werden. (Für die Konstanten von. SP1 siehe Fig. 27B).
- Wenn die zweiten Verriegelungen 21-1 bis 21-4 die vier DCT-Konstanten A&sub1;&sub1; bis A&sub4;&sub1; verriegeln, multiplizieren die jeweiligen Multiplizierer 22-1 bis 22-4 die DCT-Konstanten AH bis A41 mit dem Kopfende-Bildsignalelement X&sub1;&sub1;. Das heißt, der Operationskontroller 30 sendet zuerst Verriegelungssignale an die dritten Verriegelungen 23--1 bis 23-4. (Für SP2 siehe Fig. 27B). Dann verriegeln die dritten Verriegelungen 23-1 bis 23-4 die Multiplikationsergebnisse F&sub1;&sub1; bis F&sub4;&sub1;.
- So werden die Produkte F&sub1;&sub1; bis F&sub4;&sub1; parallel berechnet, und repräsentieren die ersten Terme der Produktsummenoperationen zur Ermittlung der Matrixelemente.
- Der Operationskontroller 30 führt eine Steuerung durch, um in die Addierer 24-1 bis 24-4 die Ausgänge aus den vierten Verriegelungen 25-11 bis 25-41 einzugeben, die in Entsprechung zu den DCT-Konstanten A&sub1;&sub1; bis A&sub4;&sub1; in der ersten Gruppe vorgesehen sind, indem er die zweiten Multiplexer 26-1 bis 26-4 gemäß dem Auswahl Steuersignal (SEL) steuert. Die vierten Verriegelungen 25-11 bis 25-42 werden gemäß den Instruktionen vom Operationskontroller 30 auf Null gesetzt, wenn die Operationen für die Spaltenmatrix des Kopfende- Bildsignalelements X&sub1;&sub1; beginnen.
- Beim Empfang der Null-Werte von den vierten Verriegelungen 25-11 bis 25-42 und der Produkte F&sub1;&sub1; bis F&sub4;&sub1; von den Verriegelungen 23-1 bis 23-4 addieren die Addierer 24-1 bis 24-4 diese miteinander, um die akkumulierten Werte, in diesem Fall F&sub1;&sub1; bis F&sub4;&sub1;, zu erzeugen. Durch das Senden von Verriegelungsinstruktionssignalen an die vierten Verriegelungen 25-11 bis 25-41 setzt der Operationskontroller 30 die akkumulierten Werte FU bis F41. Dann werden die Verarbeitungen für die DCT-Konstanten AH bis A41 in der ersten Gruppe beendet. (Für SP3 siehe Fig. 27B).
- Gleichzeitig mit dem Abschluß der obigen Verarbeitungen, während der Operationskontroller 30 das Kopfende- Bildsignalelement X&sub1;&sub1; gemäß dem Auswahlsteuer (SEL)-Signal in der ersten Verriegelung 20 verriegelt hält, wählen die ersten Multiplexer 31-1 bis 31-4 die vier DCT-Konstanten A&sub5;&sub1; bis ABI aus, die zur zweiten Gruppe der acht DCT-Konstanten AH bis ABI gehören, und setzen die ausgewählten DCT-Konstanten A51 bis ABI in den ersten Verriegelungen 21-1 bis 21-4. (Für SP2 siehe Fig. 27B). Gemäß den Verriegelungsoperationen multiplizieren die Muitiplizierer 22-1 bis 22-4 das in der ersten Verriegelung 20 verriegelte Kopfende-Bildsignalelement X&sub1;&sub1;, mit den entsprechenden DCT-Konstanten A&sub1;&sub1; bis A&sub8;&sub1;. Der Operationskontroller 30 setzt die Produkte F51 bis F&sub8;&sub1; in den dritten Verriegelungen 23-1 bis 23-4. (Für SP3 siehe Fig. 27B). So werden die ersten Termo F&sub5;&sub1; bis F&sub8;&sub1; parallel berechnet.
- Durch das Steuern der zweiten Multiplexer 26-1 bis 26-4 führt der Operationskontroller 30 eine Steuerung durch, um in die Addierer 24-1 bis 24-4 die Ausgänge aus den vierten Verriegelungen 25-12 bis 25-42 (initialisiert auf Null) einzugeben, die in Entsprechung zu den DCT-Konstanten A&sub5;&sub1; bis A&sub8;&sub1; vorgesehen und als zur zweiten Gruppe gehörend klassifiziert sind. Die Addierer 24-1 bis 24-4 addieren den in den vierten Verriegelungen 25-12 bis 25-42 gespeicherten Null- Initialwert mit den Produkten F51 bis FBI und setzen die Summen in den Verriegelungen 25-12 bis 25-42. (Für SP4 siehe Fig. 27B). So werden die Verarbeitungen für die DCT-Konstanten A&sub5;&sub1; bis A&sub8;&sub1;, die zur zweiten Gruppe gehören, beendet, um die Prozesse des ersten Schritts abzuschließen.
- Nachdem die Prozesse des ersten Schritts abgeschlossen sind, setzt der Operationskontroller 30 das zweite Bildsignalelement vom Kopfende in der ersten Spalte X&sub2;&sub1; in der zweiten Verriegelung 20. Die ersten Multiplexer 31-1 bis 31-4 wählen die vier DCT-Konstanten A&sub1;&sub2; bis A&sub4;&sub2; in der ersten Gruppe aus den acht DCT-Konstanten A&sub1;&sub2; bis A&sub8;&sub2; aus. Der Operationskontroller 30 setzt auch die vier (4) ausgewählten DCT-Konstanten A&sub1;&sub2; bis A&sub4;&sub2; in den Verriegelungen 21-1 bis 21-4. (Für die Konstanten von SP3 siehe Fig. 27B). Gemäß den Verriegelungsverarbeitungen multiplizieren die Multiplizierer 22-1 bis 22-4 die DCT-Konstanten A&sub1;&sub2; bis A&sub4;&sub2; mit dem zweiten Bildsignalelement X&sub2;&sub1;. Der Operationskontroller 30 setzt die Produkte F&sub1;&sub2; bis F&sub4;&sub2; in den dritten Verriegelungen 23-1 bis 23-4. (Für SP4 siehe Fig. 27B). Daher werden die zweiten Tenne F&sub1;&sub2; bis F&sub4;&sub2; der Produktsummenoperationen zur Ermittlung der Elementwerte in der Produktmatrix sequentiell berechnet.
- Durch die Steuerung der zweiten Multiplexer 26-1 bis 26-4 gibt der Operationskontroller 30 in die Addierer 24-1 bis 24-4 die bisher akkumulierten Produktsummenwerte F&sub1;&sub1; bis F&sub4;&sub1; ein, welche aus den vierten Verriegelungen 25-11 bis 25-41 ausgegeben werden, die in Entsprechung zu den zur ersten Gruppe gehörenden DCT-Konstanten A&sub1;&sub2; bis A&sub4;&sub2; vorgesehen sind.
- Der Operationskontroller setzt die vierten Verriegelungen 25-11 bis 25-41 mit den aktualisierten Produktsummenwerten F&sub1;&sub1; + F&sub1;&sub2; bis F&sub4;&sub1; + F&sub4;&sub2; zurück. (Für SP5 siehe Fig. 27B). So werden die Prozesse für den ersten Schritt abgeschlossen. Nach den obigen Prozessen läßt der Operationskontroller 30 die ersten Multiplexer 31-1 bis 31-4 die vier (4) DCT-Konstanten A&sub5;&sub2; bis A&sub8;&sub2; aus den acht (8) DCT-Konstanten A&sub1;&sub2; bis A&sub8;&sub2;, die in der DCT-Konstantenspeichereinheit 401 gespei chert sind, gemäß dem Auswahlsteuer (SEL)-Signal auswählen und setzt sie in den zweiten Verriegelungen 21-1 bis 21-4, während das zweite Bildsignalelement X&sub2;&sub1; in der Verriegelung 20 verriegelt gehalten wird. (Für SP4-Konstanten siehe Fig. 27B). Gemäß den Verriegelungsaktionen multiplizieren die Multiplizierer 22-1 bis 22-4 die DCT-Konstanten A&sub5;&sub2; bis A&sub8;&sub2; mit dem zweiten Bildsignalelement X&sub2;&sub1;. Der Operationskontroller 30 setzt die Produkte F&sub5;&sub2; bis F&sub8;&sub2; in den dritten Verriegelungen. (Für SP5 siehe Fig. 27B). So werden die zweiten Tenne F&sub5;&sub2; bis F&sub8;&sub2; in den Produktsummenoperationen zur Ermittlung der Elementwerte der Produktmatrix parallel berechnet.
- Durch die Steuerung der zweiten Multiplexer 26-1 bis 26-4 gibt der Operationskontroller 30 in die Addierer 24-1 bis 24-4 die bisher akkumulierten Produktsummenwerte F&sub5;&sub1; bis F&sub8;&sub1; ein, welche aus den vierten Verriegelungen 25-11 bis 25-41 ausgegeben werden, die in Entsprechung zu den zur zweiten Gruppe gehörenden DCT-Konstanten A&sub5;&sub2; bis A&sub8;&sub2; vorgesehen sind. So werden die neu akkumulierten Produktsuniimenwerte F&sub5;&sub1; + F&sub5;&sub2; bis F&sub8;&sub1; + F&sub8;&sub1; erhalten. Diese Werte werden in den vierten Verriegelungen 25-12 bis 25-42 zux-ückgesetzt.
- Dies schließt die Operationen für die DCT-Konstanten A&sub5;&sub2; bis A&sub8;&sub2; in der zweiten Gruppe im zweiten Schritt ab.
- Das dritte bis achte Bildsignalelement X&sub3;&sub1; bis X&sub8;&sub1; werden durch die jeweiligen zur ersten Gruppe gehörenden DCT-Konstanten und die zur zweiten Gruppe gehörenden berechnet.
- Folglich setzen die vierten Verriegelungen 25-11 bis 25-41 die Elementendwerte der Produktmatrix, welche gemäß den Matrizen, die die zur ersten Gruppe gehörenden DCT-Konstanten repräsentieren, und den entsprechenden Bildsignalelementen berechnet wird. Die vierten Verriegelungen 25-12 bis 25-42 setzen die Elementendwerte der Produktmatrix, welche gemäß den Matrizen, die die zur zweiten Gruppe gehörenden DCT-Konstanten repräsentieren, und den entsprechenden Bildsignalelementen berechnet wird.
- Wenn die vierten Verriegelungen 25-11 bis 25-41 die Elementwerte der oberen Hälfte der Produktmatrix verriegeln, setzt der Operationskontroller 30 diese Elementwerte in den fünften Verriegelungen 27-11 bis 27-41, indem die Verriegelungsinstruktionssignale an die fünften Verriegelungen 27-11 bis 27-41 gesendet werden. (Für SP17 siehe Fig. 27B).
- Wenn die vierten Verriegelungen 25-12 bis 25-42 die Elementwerte der unteren Hälfte der Produktmatrix verriegeln, setzt der Operationskontroller 30 diese Elementwerte in den fünften Verriegelungen 27-12 bis 27-42, indem die Verriegelungsinstruktionssignale an die fünften Verriegelungen 25-12 bis 25-42 gesendet werden. (Für SP18 siehe Fig. 27B).
- Hier werden die Elementwerte der Produktmatrix in den fünften Verriegelungen 25-12 bis 25-42 gesetzt. Der Ausgabemultiplexer 28 vollendet die Berechnung in der ersten Spalte der Produktmatrix zwischen den DCT-Konstanten und den Bildsignalelementen.
- Durch die Wiederholung der obigen Prozesse für alle acht (8) Spalten der Matrix X, die Bildsignale in einem Block repräsentiert, vollendet der Operationskontroller 30 die Matrixberechnung zwischen der DCT-Konstanten repräsentierenden Matrix A und der Matrix X. Mittels der Durchführung ähnlicher Matrixberechnungsprozesse für die Produktmatrix AX und Matrix P, welche die Transposition der DCT- Konstanten repräsentiert, werden die DCT-Koeffizienten für die Bilddaten des Blocks erhalten.
- Wie in Fig. 27B gezeigt, werden insgesamt vierundsechzig (64) Ergebnisse von den 137 Prozeßzeiteinstellungen ausgegeben.
- Gemäß dieser Erfindung multipliziert so eine geringe Anzahl von Multiplizierern 22-1 bis 22-4 Matrizen, die in den orthogonalen Transformationen von Bilddaten erforderlich sind.
- Obwohl beim Erläutern verschiedener Ausführungsformen dieser Erfindung auf Zeichnungen verwiesen wird, ist diese Erfindung keineswegs auf solche Ausführungsformen begrenzt. Diese Erfindung wird beispielsweise gemäß der ADCT erläutert, aber die Anwendung der vierten Ausführungsform dieser Erfindung ist nicht auf solch eine Transformation begrenzt, sondern sie ist auf alle Arten von orthogonalen Transformationen anwendbar. Die Konfiguration der Bilddaten und eines Blocks, die Anzahl von Schaltungselementen und die Verriegelungssequenzen, die in dieser vierten Ausführungsform beschrieben sind, sind einfach nur Beispiele. Die vierte Ausführungsform dieser Erfindung ist nicht auf diese Beispiele begrenzt.
- Fig. 28 ist ein Blockbild zur Erläuterung der fünften Ausführungsform dieser Erfindung.
- In Fig. 28 transformiert ein orthogonaler Bilddatentransformierer 83 orthogonal Bilddaten oder normalisiert invers codierte Bilddaten. Ein Matrixmultiplizierer 84 multipliziert eine 1*N Matrix mit einer N·1 Matrix, wie vom Bilddatennormalisierer 83 angefordert.
- Der Matrixmultiplizierer 84 umfaßt erste Verriegelungen 310-1 bis 310-N, Selektoren 311-1 bis 311-n, Multiplizierer 313-1 bis 313-n, einen Addierer 314, einen Akkumulator 315, einen Ausgabeselektor 316, und einen Operationskontroller 317, wobei N mit der Anzahl von Elementen in einer Spalte der Matrix koinzidiert, welche die zu verarbeitenden Daten repräsentiert, und n die Anzahl von Teilungen repräsentiert, die eine gleiche Anzahl von Elementen enthalten.
- Es wird beispielsweise angenommen, daß Spaltenmatrizen einer 8·8 Matrix, welche die zu verarbeitenden Daten repräsentiert, in zwei (2) Teilungen jeweils mit vier (4) Elementen geteilt werden. In diesem Fall gibt es acht (8) erste Verriegelungen 310-1 bis 310-8, zwei (2) Selektoren 311-1 und 311-2, und zwei (2) Multiplizierer 311-1 bis 311-2. Da weitaus weniger Multiplizierer vorliegen als In der in Fig. 10 gezeigten Konfiguration, wird so die Schaltungsgröße stark reduziert.
- Die ersten Verriegelungen 310-1 bis 310-N verriegeln die Elemente in einer Spaltenmatrix der ausgewählte zu verarbeitende Daten repräsentierenden Matrix. Die Selektoren 311-1 bis 311-n wählen und geben sequentiell ein Element der zu verarbeitenden Daten aus, das in den ersten Verriege- lungen 310-1 bis 310-N verriegelt ist. Die zweiten Verriegelungen 312-1 bis 312-n verriegeln sequentiell die Transformationskonstanten, die dem von den Selektoren 311-1 bis 311-n ausgegebenen Element entsprechen. Die Multiplizierer 311-1 bis 311-n multiplizieren die von den zweiten Verriegelungen 312-1 bis 312-n verriegelten Transformationskonistanten mit den zu verarbeitenden Daten, die aus den Selektoren 311-1 bis 311-n ausgegeben werden. Der Addierer 314 summiert die aus den Multiplizierern 313-1 bis 313-n ausgegebenen Produkte. Der Akkumulator 315 akkumuliert die aus dem Addierer 314 ausgegebenen Produktsummenwerte. Der Äusgabeselektor 316 gibt Null (0) anstelle der Ausgänge aus dem Akkumulator 315 aus. Der Operationskontroller 317 detektiert, ob die Elemente der Matrix, welche die zu verarbeitenden Daten repräsentiert, die in den ersten Verriegelungen 310-1 bis 310-N verriegelt sind. Null (0) sind oder nicht, und steuert die Selektoren 311-1 bis 311-n und den Äusgabeselektor 316 gemäß den Detektionsergebnissen.
- Durch die Steuerung der ersten Verriegelungen 310-1 bis 310-N läßt der Operationskontroller 317 die ersten Verriegelungen 310-1 bis 310-N die Spaltenmatrix [X&sub1;&sub1;, X&sub2;&sub1;, X&sub3;&sub1;, X&sub4;&sub1;, X&sub5;&sub1;, X&sub6;&sub1;, X&sub7;&sub1;, X&sub8;&sub1;] der ausgewählten zu verarbeitenden Daten verriegeln. Durch die Steuerung der Selektoren 311-1 bis 311-n läßt der Operationskontroller 317 die Selektoren 311-1 bis 311-n ein verriegeltes Element der zu verarbeitenden Daten sequentiell auswählen und die ausgewählten Daten an die entsprechenden Multiplizierer 313-1 bis 313-n ausgeben.
- In Entsprechung zu den obigen Verarbeitungen wählt der Operationskontroller 317 eine Reihenmatrix aus, die DCT-Konstanten repräsentiert, und läßt die zweiten Verriegelungen 312-1 bis 312-n die DCT-Konstauten, welche dein zu verarbeitenden Daten entsprechen, die aus den Selektoren 311-1 bis 311-n ausgegeben werden, in der ausgewählten Reihenmatrix verriegeln.
- Wenn beispielsweise die Reihenmatrix, weiche die erste Reihe der DCT-Konstanten repräsentierenden Matrix repräsentiert, ausgewählt wird, um das Element Y&sub1;&sub1; der Produktmatrix Y (= A·X) zu berechnen, wenn die Selektoren 311-1 bis 311-n das Element X&sub1;&sub1; aus der die zu verarbeitenden (Bildsignal-)Daten repräsentierenden Matrix X ausgeben, verriegeln die zweiten Verriegelungen 312-1 bis 312-n, die dem X&sub1;&sub1; ausgebenden Selektor 311-1 bis 311-n entsprechen, das DCT- Konstantenelement AH. Wenn die Selektoren 311-1 bis 311-n das Bildsignalelement X&sub2;&sub1; ausgeben, verriegeln die zweiten Verriegelungen 312-1 bis 312-n das entsprechende DCT-Konstantenelement A&sub1;&sub2;.
- Beim Empfang der aus den Selektoren 311-1 bis 311-n ausgegebenen Bildsignaldaten und der von den zweiten Verriegelungen 312-1 bis 312-n verriegelten DCT-Konstanten multipliziert der Multiplizierer 313 diese. Der Addierer 314 addiert die aus den Multiplizierern 313-1 bis 313-n ausgegebenen Produkte. Der Akkumulator 315 akkumuliert die Summe der aus dem Addierer 314 ausgegebenen Produkte.
- Durch diese Prozesse werden beispielsweise die ersten zwei Tenne (A&sub1;&sub1;X&sub1;&sub1; + A&sub1;&sub2;X&sub2;&sub1;) im Element Y&sub1;&sub1; der Produktmatrix Y berechnet. Gemäß der Steuerung durch den Operationskontroller 317 geben die Selektoren 311-1 bis 311-n sequentiell die zu verarbeitenden Bildsignal-Datenelemente aus, bis schließlich der Akkumulator 315 das Matrixelement Y&sub1;&sub1; (= A&sub1;&sub1;X&sub1;&sub1;+A&sub1;&sub2;X&sub2;&sub1; + A&sub1;&sub3;X&sub3;&sub1; + A&sub1;&sub4;4X&sub1;&sub4; + A&sub1;&sub5;X&sub5;&sub1; + A&sub1;&sub6;X&sub6;&sub1; + A&sub1;&sub7;X&sub7;&sub1; + A&sub1;&sub8;X&sub8;&sub1;) verriegelt.
- Der Operationskontroller 317 führt diese Prozesse durch das sequentielle Auswählen der Reihenmatrizen der DCT-Konstanten aus, um die Matrixelement Y&sub1;&sub1; bis Y&sub8;&sub1; zu berechnen.
- Wenn alle von den ersten Verriegelungen 310-1 bis 310-N verriegelte Bildsignaldaten in der Matrixmultiplikation Null (0) sind, läßt der Operationskontroller 317, da keine Operation zur Berechnung des entsprechenden Elementwerts erforderlich ist, den Ausgabeselektor 316 Null (0) ausgeben.
- Wenn einige der von den ersten Verriegelungen 310-1 bis 310-N verriegelten Bildsignaldaten in der Matrixmultiplikation nicht Null (0) sind, wird beurteilt, ob die in die Selektoren 311-1 bis 311-n eingegebenen und aus diesen ausgegebenen Bildsignaldaten Null (0) sind oder nicht. Wenn beurteilt wird, daß sie alle tatsächlich Null (0) sind, überspringen die Selektoren 311-1 bis 311-n, da keine Operationen durch die Multiplizierer 313-1 bis 313-n zur Berechnung der entsprechenden Produkte erforderlich sind, das Ausgeben der Bildsignaldaten. So wird die Anzahl von Operationen reduziert.
- Somit haben in der fünften Ausführungsform dieser Erfindung die in einem orthogonalen Bilddatentrans formierer verwendeten Matrixmultiplizierer kleinere Schaltungen und operieren schneller.
- Nachstehend wird detailliert die Anwendung des Prinzips der fünften Ausführungsform dieser Erfindung auf die eindimensionale inverse DCT-Einheit 540 diskutiert, die in Fig. 4 gezeigt ist.
- Wie bereits in der Beschreibung von Fig. 28 erläutert, ist diese Ausführungsform auf die Verringerung der Anzahl von Operationen durch das Überspringen jener für die Elemente, von denen bekannt ist, daß sie Inder Matrixmultiplikation Null (0) sind, gerichtet.
- Da, wie in Fig. 8A und 8B gezeigt, die Matrix, welche die codierten quantisierten Koeffizienten repräsentiert, viele Null (0)-Werte enthält, haben auch die DCT-Koeffizienten, die in die eindimensionale inverse DCT-Einheit 540 eingegeben und durch die quantisierten Koeffizienten wiederhergestellt werden, viele Null (0)-Werte. Daher ist es besonders effektiv, das Prinzip der fünften Ausführungsform dieser Erfindung auf die eindimensionale inverse DCT-Einheit 540 anzuwenden.
- Die eindimensionale inverse DCT-Einheit 540 berechnet Elemente in der Produktmatrix Z (= A&supmin;¹·B), wobei die 8·8 Matrizen A und B jeweils inverse DCT-Konstanten und DCT- Koeffizienten repräsentieren, wie vorstehend angegeben.
- Spezifischer ist die 8·8 Matrixmultiplikation durch die Multiplikation von 1·8 Matrizen mit 8·1 Matrizen konfiguriert, um die Matrix Z zu erhalten. Die aus der inversen DCT-Konstantenmatrix A" sequentiell ausgewählten Reihenroatrizen werden mit den aus der DCT-Koeffizientenmatrix B ausgewählten Spaltenmatrizen multipliziert.
- Anfänglich wird angenommen, daß die ausgewählte Spaltenmatrix die erste Spalte der DCT-Koeffizientenmatrix B repräsentiert.
- Zuerst wird das Element Z&sub1;&sub1; durch die Multiplikation der Reihenmatrix, welche die erste Reihe der inversen DCT- Konstantenmatrix A [A&sub1;&sub1;, A&sub1;&sub2;, A&sub1;&sub3;, A&sub1;&sub4;, A&sub1;&sub5;, A&sub1;&sub6;, A&sub1;&sub7;, A&sub1;&sub8;]t repräsentiert, mit der ausgewählten Spaltenmatrix erhalten.
- Als zweites wird das Element Z&sub2;&sub1; durch die Multiplikation der Reihenmatrix, welche die zweite Reihe der inversen DCT-Konstantenmatrix A (A&sub2;&sub1;, A&sub2;&sub2;, A&sub2;&sub3;, A&sub2;&sub4;, A&sub2;&sub5;, A&sub2;&sub6;, A&sub2;&sub7;, A&sub2;&sub8;]t repräsentiert, mit der ausgewählten Spaltenmatrix erhalten.
- Als drittes wird das Element Z&sub3;&sub1; durch die Multiplikation der Reihenmatrix, welche die dritte Reihe der inversen DCT-Konstantenmatrix A [A&sub3;&sub1;, A&sub3;&sub2;, A&sub3;&sub3;, A&sub3;&sub4;, A&sub3;&sub5;, A&sub3;&sub6;, A&sub3;&sub7;, 38]t repräsentiert, mit der ausgewählten Spaltenmatrix erhalten.
- Mittels der Durchführung ähnlich Multiplikationen werden die Elemente Z&sub1;&sub1;, Z&sub2;&sub1;, Z&sub3;&sub1;, Z&sub4;&sub1;, Z&sub5;&sub1;, Z&sub6;&sub1;, Z&sub7;&sub1;, Z&sub8;&sub1; in der ersten Spalte der Produktmatrix Z erhalten.
- Fig. 29A zeigt die eindimensionale inverse DCT-Einheit 540, auf die das Prinzip der fünften Ausführungsform dieser Erfindung angewendet wird.
- In Fig. 29A speichert der inverse DCT-Konstantenspeicher 541 die inversen DCT-Konstanten, wie bereits in der Beschreibung von Fig. 3 und 4 erläutert. Inverse DCT-Konstantenspeiehereinheiten 320-1 bis 320-8 umfassen Verriegelungen zum Speichern von DCT-Koeffizienten und entsprechen den in Fig. 28 gezeigten ersten Verriegelungen 310-1 bis 310-N.
- Multiplexer 321-1 und 321-2 entsprechen den in Fig. 28 gezeigten Selektoren 311-1 bis 311-n.
- Verriegelungen 322--1 und 322-2 entsprechen den in Fig. 28 gezeigten zweiten Verriegelungen 312-1 bis 312-n.
- Multiplizierer 323-1 und 323-2 entsprechen den in Fig. 28 gezeigten Multiplizierern 313-1 bis 313-n.
- Verriegelungen 324-1 und 324-2 verriegeln die von den Multiplizierern 323-1 und 323-2 berechneten Produkte.
- Ein Addierer 325 entspricht dem in Fig. 28 gezeigten Addierer 314.
- Eine Verriegelung 326 verriegelt die vom Addierer 325 berechnete Summe.
- Ein Addierer 327 ist ein Teil des in Fig. 28 gezeigten Akkumulators 315 und addiert die vorher akkumulierten Summen der Produkte mit der neu erhaltenen Summe der Produkte.
- Eine Verriegelung 328 ist ein Teil des in Fig. 28 gezeigten Akkumulators 315 und verriegelt die vom Addierer 327 berechnete Summe.
- Ein Multiplexer 329 entspricht dem in Fig. 28 gezeigten Ausgabeselektor 316.
- Ein Nullgenerator 320 gibt Null (0) an den Multiplizierer 329 aus.
- Ein Operationskontroller 331 entspricht dem in Fig. 28 gezeigten Operationskontroller 317.
- Der Operationskontroller 331 umfaßt einen Nulldetektor 332 zum Delektieren, ob die von den Verriegelungen 320-1 bis 320-8 verriegelten DCT-Koeffizienten Null (0) sind oder nicht, einen Operationsanzahlkontroller 333 ZUM Senden eines Steuersignals zur Steuerung von Matrixmultiplikationen gemäß dem vom Nulldetektor 332 detektierten Ergebnis, und einen Signalauswahlkontroller 334 zum Schalten des Multiplexers 329 gemäß dem Steuersignal des Operationsanzahlkontrollers 333.
- Wie bereits in der Beschreibung von Fig. 28 erläutert, wird die ausgewählte Spaltenmatrix der DCT-Koeffizienten in der fünften Ausführungsform dieser Erfindung in Teilungen mit der gleichen Anzahl von Spaltenelementen geteilt. Die Multiplexer 321-1 und 321-2, die Verriegelungen 322-1 und 322-2, die Multiplizierer 321-1 und 323-2 sind gemäß einer fünften Ausführungsform dieser Erfindung in Entsprechung zu den zwei (2) Teilungen der Spalten in der DCT-Koeffizientenmatrix B vorgesehen, wie in Fig. 29A gezeigt.
- Die Ausgänge aus den vier (4) Verriegelungen 320-1 bis 320-4, die in der oberen Hälfte positioniert sind, werden in den oberen Multiplexer 321-1 eingegeben, dessen Auswahlausgang in den oberen Multiplizierer 323-1 eingegeben wird, der auch die Ausgänge aus der oberen Verriegelung 322-1 empfängt.
- Die Ausgänge aus den vier (4) Verriegelungen 320-5 bis 320-8, die in der unteren Hälfte positioniert sind, werden in den unteren Multiplexer 321-2 eingegeben, dessen Auswahlausgang in den unteren Multiplizierer 323-2 eingegeben wird, der auch die Ausgänge aus der unteren Verriegelung 322-2 empfängt.
- Fig. 30 ist ein Flußdiagramm, das die Aktionen des Operationskontrollers 331 veranschaulicht.
- Mit Bezugnahme auf Fig. 30 werden die Aktionen der so konfigurierten eindimensionalen inversen DCT-Einheit 540 detailliert erläutert, die eine fünfte Ausführungsform dieser Erfindung ist.
- Die Verriegelung 320-1 empfängt in einer vorherbestimmten Reihenfolge an ihrem Eingangsanschluß die Elemente in der ersten Spalte der DCT-Koeffizientenmatrix B, die vom in Fig. 3 gezeigten Dequantisierer 52 gesendet wird. Die eingegebenen DCT-Koeffizienten werden jeweils von den Verriegelungen 320-1 bis 320-8 verriegelt, die zur Datentransmission angeschlossen sind, z. B. in einer Schieberegister-Form.
- So verriegeln beispielsweise die vier (4) oberen Verriegelungen 320-1 bis 320-4 jeweils die ersten Spaltenelemente in den ungeraden Reihen der DCT-Koeffizientenmatrix B, d. h. B&sub1;&sub1;, B&sub3;&sub1;, B&sub5;&sub1; und B&sub7;&sub1;, und die vier (4) unteren Verriegelungen 320-5 bis 320-8 verriegeln jeweils die ersten Spaltenelemente in den geraden Reihen der DCT-Koeffizientenmatrix B, d. h. B&sub2;&sub1;, B&sub4;&sub1;, B&sub6;&sub1; und B&sub8;&sub1;.
- SCHRITT 1 bis SCHRITT 6 im Flußdiagramm von Fig. 30 zeigen die Verarbeitungen während der Verriegelungsaktionen.
- Zuerst beurteilt der Nulldetektor 332 des; Operationskontrollers 331, ob die in den Verriegelungen 320-1 und 320-5 verriegelten Datenwerte beide Null (0) sind oder nicht. Wenn sie dies sind, benachrichtigt der Nulldetektor 332 den Operationsanzahlkontroller 333 über "R1 = 0"; ansonsten "R1 = 1".
- Als zweites beurteilt der Nulldetektor 332 des Operationskontrollers 331, ob die in den Verriegelungen 320-2 und 320-6 verriegelten Datenwerte beide Null (0) ssind oder nicht. Wenn sie dies sind, benachrichtigt der Nulldetektor 332 den Operationsanzahlkontroller 333 über "R2 = 0"; ansonsten "R2 = 1".
- Als drittes beurteilt der Nulldetektor 332 des Operationskontrollers 331, ob die in den Verriegelungen 320-3 und 320-7 verriegelten Datenwerte beide Null (0) ssind oder nicht. Wenn sie dies sind, benachrichtigt der Nulldetektor 332 den Operationsanzahlkontroller 333 über "R3 = 0"; ansonsten "R3 = 1".
- Als viertes beurteilt der Nulldetektor 332 des Opera tionskontrollers 331, ob die in den Verriegelungen 320-4 und 320-8 verriegelten Datenwerte beide Null (0) sind oder nicht. Wenn sie dies sind, benachrichtigt der Nulldetektor 332 den Operationsanzahlkontroller 333 über "R4 = 0"; ansonsten "R4 = 1".
- Beim Empfang der Daten in bezug auf R1 bis R4 vom Nulldetektor 332 beurteilt der Operationsanzahlkontroller 333, ob alle vier (4) empfangenen Datenwerte R1 bis R4 Null (0) sind oder nicht. Dies ist als SCHRITT 7 im Floßdiagrainm von Fig. 30 gezeigt.
- Wenn die Beurteilung von SCHRITT 7 anzeigt, daß die Daten R1 bis R4 alle Null (0) sind, ist es ohne Durchführung der tatsächlichen Berechnungen offensichtlich, daß die Elemente Z&sub1;&sub1; bis Z&sub8;&sub1; in der ersten Spalte der Produktmatrix Z Null (0) sind. So beendet der Operationsanzahlkontroller 333 die Operationen für die erste Spalte in der DCT-Koeffizientenmatrix B, die von den Verriegelungen 320-1 bis 320-8 verriegelt ist, durch die Transmission eines Operation-Ende (ENDE)-Signals. Der Operationsanzahlkontroller 333 veranlaßt gleichzeitig den Multiplexer 329, Null (0) als Werte der Elemente Z&sub1;&sub1; bis Z&sub8;&sub1; auszugeben. Diese Null (0)-Werte werden vom Nullgenerator 330 generiert, indem ein Nullsignal an den Signalauswahlkontroller 334 gesendet wird. Dann beendet der Operationsanzahlkontroller 333 seine Verarbeitungen.
- Wenn die Beurteilung von SCHRITT 7 anzeigt, daß nicht alle Daten R1 bis R4 Null (0) sind, d. h. zumindest einer der Datenwerte R1 bis R4 Eins (1) ist, spezifiziert der Operationsanzahlkontroller 333 einen Datenwert, der Eins (1) ist, unter R1 bis R4, was als SCHRITT 9 bis SCHRITT 12 im Flußdiagramm von Fig. 30 gezeigt ist. Anschließend führt der Operationsanzahlkontroller 333 in SCHRITT 13 Operationen unter Verwendung der DCT-Koeffizienten aus, die von den zwei (2) gepaarten Verriegelungen 320-1 und 320-(i + 4) verriegelt werden, wobei i "Ri = l" erfüllt, und eine ganze Zahl von 1 bis 4 ist.
- Spezifisch beginnen die Operationen zuerst mit der Eingabe der DCT-Koeffizienten, die von den zwei (2) gepaarten Verriegelungen 320-1 und 320-(i + 4), wobei "Ri = l" erfüllt wird, verriegelt sind, in die entsprechenden Multiplizierer 323-1 und 323-2.
- Als zweites wird die inverse DCT-Konstante, welche aus der inversen DCT-Konstantenspeichereinheit 541 gelesen wird und dem anfänglich ausgewählten DCT-Koeffizienten in der ersten Reihe der Matrix entspricht, die die inversen DCT- Konstanten repräsentiert, in den entsprechenden Verriegelungen 322-1 und 322-2 gesetzt.
- Wenn beispielsweise zumindest einer vom DCT-Koeffizienten BH, der in der Verriegelung 320-1 verriegelt ist, oder DCT-Koeffizienten 351, der in der Verriegelung 320-5 verriegelt ist, nicht Null (0) ist, d. h. Eins (1) ist (R1 = 1), werden gemäß den Prozessen von SCHRITT 9 bis SCHRITT 12 aus dem inversen DCT-Konstantenspeicher 541 gelesene Elemente A&sub1;&sub1; und A&sub1;&sub5; in den Multiplizierern 323-1 und 323-2 gesetzt.
- Der Multiplizierer 323-1 und 323-2 multiplizieren die jeweiligen eingegebenen Werte, um ihre Produkte zu ermitteln. Diese Produkte werden dann von den Verriegelungsschaltungen 324-1 und 324-2 gemäß einem Verriogelungsinstruktions Signal verriegelt. Da der Addierer 325 die von den beiden Multiplizierern 323-1 und 323-2 gemäß den Verriegelungsprozessen ermittelten Produkte addiert, verriegelt die Verriegelung 326 die Summe, und der Addierer 327 addiert die bisher akkumulierte Gesamtsumme der Summen mit der neu erhaltenen Summe, die vom Addierer 325 berechnet wurde. Daher verriegelt die Verriegelung 328 die neu erhaltenen akkumulierten Summen gemäß einem Verriegelungsinstruktionssignal.
- Wenn entweder der in der Verriegelung 320-1 verriegelte DCT-Koeffizient B&sub1;&sub1; oder der in der Verriegelung 320-2 verriegelte DCT-Koeffizient 8&sub2;&sub1; nicht Null (0) ist, wenn die bisher akkumulierte Gesamtsumme der von der Verriegelung 328 verriegelten Summen Null (0) ist, verriegelt die Verriegelung 328 als neue akkumulierte Gesamtsumme (A&sub1;&sub1;B&sub1;&sub1; + A&sub1;&sub2;B&sub2;&sub1;) gemäß den Prozessen in SCHRITT 13.
- Nachdem die Operationen in SCHRITT 13 vollendet sind, beurteilt der Operationsanzahlkontroller 333, ob alle Prozesse für "Ri = 1" in dem im Flußdiagramm von Fig. 30 gezeigten SCHRITT 14 und SCHRITT 15 beendet sind. Wenn der Operationsanzahlkontroller 333 beurteilt, daß die Prozesse noch nicht vollendet wurden, spezifiziert der Operationsanzahlkontroller 333 den "Ri = 1" erfüllenden DCT-Koeffizienten oder beendet seine Verarbeitungen, außer es gibt keinen derartigen DCT-Koeffizienten. Anschließend werden in SCHRITT 13 von den zwei (2) gepaarten Verriegelungen 320-i und 320-(i - 4) verriegelte DCT-Koeffizienten, die "Ri = 1" erfüllen, für die Matrixmultiplikation verwendet.
- Wenn die Verriegelungen 320-1 bis 320-8 die erste Spalte der DCT-Koeffizientenmatrix B verriegeln, werden daher der erste und fünfte Term, der zweite und sechste Term, der dritte und siebente Term sowie der vierte und achte Term gepaart und als Einheiten bei der Berechnung des Elements der Produktmatrix Z (= A&supmin;¹·B) verwendet. Wenn gleichzeitig die beiden DCT-Koeffizienten BH und B(i + 4)i die in den Berechnungseinheiten enthalten sind, beide Null sind, werden daher die Operationen für ihre Tenne weggelassen. Nachdem die Operationen zur Ermittlung des Produktmatrixelements Z&sub1; beendet sind, wird die zweite Reihe der inversen DCT-Konstanten, die in den Verriegelungen 320-1 und 320-2 verriegelt sind, ähnlich mit der ersten Spalte der DCT-Koeffizienten multipliziert, um Z&sub2;&sub1; zu erhalten.
- Indem die Prozesse ähnlich durchgeführt werden, werden die Elemente in der ersten Spalte Z&sub1;&sub1; bis Z&sub8;&sub1; effizient berechnet.
- Dann verriegeln die Verriegelungen 320-1 und 320-2 die zweite Spalte der aus dem Dequantisierer 52 in Fig. 3 ausgegebenen DCT-Koeffizienten, und die obigen Prozesse werden wiederholt.
- Ferner wird durch die Wiederholung dieser Vorgänge bis zur achten Spalte der DCT-Koeffizientenmatrix B die Produktmatrix Z = A&supmin;¹·B) berechnet.
- Fig. 29B und 29C zeigen die Operationszeit von Prozeß ST9 bis ST15 in Fig. 30. Das Ziel der Operation in Fig. 29B und 29C ist in dem Blockbild von Fig. 13 gezeigt, wo Nicht- Null-Daten in den Zeilen 1 bis 4 enthalten sind, während alle Daten nach Zeile 4 Null sind. In Zeile l sind vier eingegebene Datenwerte Xll bis X41 nicht Null, und die Prozesse ST10 bis ST15 werden mit der in Fig. 29B gezeigten Zeiteinstellung durchgeführt. Da in Zeile 2 die eingsgebenen Datenwerte X42 Null und X32 nicht Null sind, ergibt die Bestimmung von R2 in ST10 1, wodurch zwei Variationen von Prozeßzeiteinstellungen zur Ermittlung eines Elements erforderlich sind. In Zeile 3 sind zwei eingegebenen Datenwerte X bis X21 nicht Null, und die in Fig. 29C gezeigte Prozeßzeiteinstellung wird verwendet. Da in Zeile 4 eingegebene Datenwerte X24 Null und X14 nicht Null sind, wird R1 als 1 bestimmt, wodurch eine Prozeßzeiteinstellung zur Ermittlung eines Elements erforderlich ist. In den Zeilen 5 bis 8 werden Prozesse AT9 bis ST15 nicht durchgeführt, der Prozeß ST8 wird jedoch durchgeführt, was zum Ausgang von Null führt.
- Demgemäß wird in der fünften Ausführungsform dieser Erfindung die Matrixmultiplikation durch das Überspringen der Operationen für die Terme, von denen bekannt ist, daß sie Null (0) sind, beschleunigt. So wird die Anzahl von Operationen stark verringert.
- Die fünfte Ausführungsform dieser Erfindung ist unter Bezugnahme auf die beigefügten Zeichnungen beschrieben worden. Diese Erfindung ist jedoch nicht auf nur solch eine Ausführungsform begrenzt. Die fünfte Ausführungsform dieser Erfindung ist beispielsweise gemäß der ADCT erläutert worden, aber das Prinzip dieser Ausführungsform ist auf alle Arten von Normalisierungen anwendbar. Die Konfiguration eines Blocks von Bilddaten und die Anzahl der Schaltungselemente und die zuvor dargestellten Verriegelungssequenzen sind nur Beispiele. Die Anwendung der fünften Ausführungsform dieser Erfindung ist keineswegs auf diese Beispiele begrenzt.
- Fig. 31 und 32 sind Blockbilder zum Erläutern der sechsten und siebten Prinzipien dieser Erfindung. Gemäß diesen Prinzipien wird ein Originalbild in eine Vielzahl von Blöcken aufgeteilt, die eine Vielzahl von Bildelementen mit N Bit-Gradationswerten aufweisen. DCT-Koeffizienten werden quantisiert, die mittels der Durchführung zweidimensionaler diskreter Kosinustransformationen für die Gradationswerte einer Vielzahl von Bildelementen in jedem Block erhalten werden, und das Originalbild wird progressiv aus Daten wiederhergestellt, die durch das Codieren der quantisierten DCT-Koeffizienten erhalten werden.
- Ein Ziel des sechsten Prinzips dieser Erfindung ist das Realisieren der oben angegebenen Bilddatenwiederherstellung durch eine Anordnung, die umfaßt: einen Decodierer 612 zum Decodieren aufgeteilter codierter Daten (von einem Block aufgeteilt) in DCT-Koeffizienten, einen Dequantisierer 616 zum Ermitteln eines DCT-Koeffizienten durch das Dequantisieren eines quantisierten DCT-Koeffizienten, der vom Decodierer 612 decodiert wird, eine inverse DCT-Einheit 620 zum Erhalten von Bilddaten mittels der Durchführung einer inversen DCT-Operation durch eine Matrixoperation an einem vom Dequantisierer 616 eingegebenen DCT-Koeffizienten, einen Bilddatenspeicher 624 mit einem Bildspeicher mit zumindest M+l Bits in der Tiefenrichtung zum Speichern von Bilddaten, die von der inversen DCT-Einheit 620 geliefert werden, und eine Addiereinrichtung 622 zum Lesen von bereits im Bilddatenspeicher 624 gespeicherten Bilddaten und Addieren dieser mit von der inversen DCT-Einheit 620 gelieferten Bilddaten, wenn Bilddaten von der inversen DCT-Einheit 620 in den Bilddatenspeicher 624 eingegeben werden, wodurch eine Bilddaten-Wiederherstellungsanordnung zum progressiven Wiederherstellen und Speichern eines Originalbilds durch die Akkumulation aufgeteilter Bilddaten erhalten wird, die sequentiell aus aufgeteilten codierten Daten wiederhergestellt werden.
- Gemäß dem siebten Prinzip dieser Erfindung, das in Fig. 32 gezeigt ist, umfaßt eine Bilddaten-Wiederherstellungsanordnung einen Decodierer 612 zum Decodieren aufgeteilter codierter Daten (von einem Block aufgeteilt) in einen DCT- Koeffizienten, einen Dequantisierer 616 zum Ermitteln eines DCT-Koeffizienten durch das Dequantisieren eines quantisierten DCT-Koeffizienten, der vom Decodierer 612 decodiert wird, eine inverse DCT-Einheit 620 zum Erhalten von Bilddaten mittels der Durchführung einer inversen DCT-Operation durch eine Matrixoperation an einem vom Dequantisierer 616 eingegebenen DCT-Koeffizienten, eine Pegelverschiebeeinrichtung 630 zum Verhindern eines Unterlaufs durch das Addieren von 2 N - 1 mit Bilddaten, die von der inversen DCT-Eiinheit 620 erhalten werden, eine Bilddaten-Speichereinheit 624 mit einem Bildspeicher mit zumindest N + 1 Bits in der Tiefenrichtung zum Speichern von Bilddaten, die von der Pegelverschiebeeinrichtung 630 vorgesehen werden, eine Akkumuliereinrichtung 632 zum Addieren von Bilddaten, die von der Pegelverschiebeeinrichtung 630 geliefert werden, mit bisher akkumulierten Bilddaten, die aus der Bilddaten-Speichereinheit 624 gelesen werden, und Wiederherstellen der neuen akkumulierten Bilddaten in der Bilddaten-Speichereinheit 624, wodurch eine Bilddaten-Wiederherstellungsanordnung zum progressiven Wiederherstellen eines Originalbilds durch die Akkumulation und Wiederherstellung aufgeteilter Bilddaten erhalten wird, die sequentiell aus aufgeteilten codierten Daten wiederhergestellt werden.
- Eine Bilddaten-Wiederherstellungsanordnung mit der oben angegebenen Konfiguration gemäß den 6. und 7.
- Ausführungsformen dieser Erfindung sieht die folgenden Effekte vor:
- Die sechsten und siebten Prinzipien dieser Erfindung verwenden die Linearität einer DCT und einer Inversen DCT. Wenn beispielsweise ein Block in zwei aufgeteilt wird, ist die Summe der Bilddaten, die mittels der Durchführung inverser DCTs für jeweilige DCT-Koeffizienten erhalten werden, gleich den Bilddaten, die mittels der Durchführung inverser DCTs für die DCT-Koeffizienten ohne Aufteilung des Blocks erhalten werden.
- Gemäß den sechsten und siebten Prinzipien dieser Erfindung werden daher Bilddaten sequentiell in einem Speicher wiederhergestellt und gespeichert, nachdem sie aus aufgeteilten Codedaten decodiert wurden, dequantisiert, und einer inversen DCT unterworfen. Wenn die wiederhergestellten Bilddaten in einem Speicher gespeichert werden, werden bereits im Bildspeicher gespeicherte Bilddaten gelesen und summiert, wodurch ein Zwischenbildspeicher übersprungen wird, der temporär DCT-Koeffizienten speichert, und eine kleinere Schaltung realisiert wird.
- Für 8 Bit-Bilddaten kann beispielsweise ein dynamischer Bereich von Bilddaten, die decodiert werden, wenn ein aufgeteilter DCT-Koeffizient individuell in codierte Daten wiederhergestellt wird, um ein Bit erweitert werden und einen 9 Bit-Bildspeicher ergeben. Es kann jedoch eine Schaltung mit einer Speicherkonfiguration von weniger als der Hälfte einer herkömmlichen Schaltung erhalten werden, wohingegen eine herkömmliche Schaltung einen 11 Bit-Bildspeicher zum Speichern von Zwischendaten und einen 8 Bit-Bildspeicher zum Speicher wiederhergestellter Bilder erfordert.
- Fig. 33 zeigt die Konfiguration einer weiteren Ausführungsform dieser Erfindung.
- In Fig. 33 sind der Decodierer 612 mit variabler Länge, die Decodiertabelle 614, der lineare Dequantisierer 616, die Quantisierungsmatrix 618 und die zweidimensionale inverse DCT-Einheit 620 gleich wie die in Fig. 3 gezeigten herkömmlichen Anordnungen. In den 6. und 7. Ausführungsformen dieser Erfindung sind eine zweidimensionale inverse DCT-Einheit 620, eine Addiereinrichtung 622 und ein Bildspeicher 624 als Bilddaten-Speichereinrichtung mit zumindest N + 1 Bits in der Tiefenrichtung zur Durchführung eines progressiven Bildaufbaus jedoch vorgesehen. Wenn die Addiereinrichtung 622 Bilddaten speichert, die aus aufgeteilten codierten Daten wiederhergestellt wurden, liest sie bereits im Bildspeicher 624 gespeicherte Bilddaten und summiert diese.
- Der Gradationswert von Bildelementen eines Originalbilds wird in N = 8 Bits repräsentiert, während der Bild- Speicher 624 eine N + 1 = 9 Bit-Konfiguration aufweist. Das heißt, der Speicher kann den Gradationswert von 0 bis 384 speichern, was die Summe der Gradationswerte von 0 bis 256 einer N = 8 Bit-Konfiguration und des Gradationswerts 128 für eine 1 Bit-Erweiterung ist.
- Die Vergleichssektion 626 fügt eine Biteinschränkung zu den aus dem Bildspeicher 624 gelesenen Bilddaten hinzu und gibt das Ergebnis aus dem Anschluß 628 an die Anzeige, etc., aus. Da der Bildspeicher 624 eine N + 1 = 9 Bit-Konfiguration hat (1 Bit-Erweiterung), wird ein Überlauf mit einem Gradationswert von Bilddaten von mehr als 255 auf 255 festgelegt, und ein Unterlauf mit einem negativen Gradationswert von Bilddaten wird auf 0 festgelegt.
- Als nächstes wird eine progressive Bildaufbauoperation beschrieben, wie in Fig. 33 gezeigt.
- Codierte Daten Dl (X01, X02, . . . Xn1, n1 < 64) der ersten Stufe werden aus dem Anschluß 610 eingegeben. Die codierten Daten Dl der ersten Stufe werden vom Decodierer 612 für Daten mit variabler Länge unter Verwendung der Decodiertabelle 614 decodiert und dem linearen Dequantisierer 610 zugeführt. Der lineare Dequantisierer 616 stellt einen DCT-Koeffizienten wieder her, indem er einen eingegebenen DCT-Koeffizienten mit der Quantisierungsschwelle multipliziert, die in der Quantisierungsmatrix 618 erhalten wird (Dequantisierungsoperation). Der im linearen Dequantisierer 616 wiederhergestellte DCT-Koeffizient wird der zweidimensionalen inversen DCT-Einheit 620 zugeführt und in Bilddaten wiederhergestellt.
- Wenn Anfangsblockinformationen dem Determinierer 608 der ersten Stufe zugeführt werden, bestimmt er aus diesen Informationen, ob die aktuelle Stufe die erste Stufe ist oder nicht. Wenn sie dies ist, wählt der Multiplexer 609 den Ausgang der zweidimensionalen inversen DCT-Einheit 620 aus, und der Determinierer 608 der ersten Stufe wird gesteuert, um den Ausgang im Bildspeicher 624 zu speichern. Andererseits werden aufgeteilte Bilddaten der ersten Stufe, die in der zweidimensionalen inversen DCT-Einheit 620 wiederhergestellt werden, der Addiereinrichtung 622 zugeführt, und mit den bereits im Bildspeicher 624 gespeicherten und aus diesem gelesenen Bilddaten addiert. In der zweiten Stufe wird der Determinierer 608 der ersten Stufe so gesteuert, daß der Multiplexer 609 den Ausgang der Addiereinrichtung 622 auswählen kann, und der Bildspeicher 624 den Ausgang speichern kann. Der Bildspeicher 624 speichert aufgeteilte Bilddaten, die durch eine kumulative Addition erhalten werden, und gibt die Daten aus dem Anschluß 628 nach der Einstellung eines Überlaufs und Unterlaufs in der Vergleichssektion 626 aus.
- So wird der progressive Bildaufbau eines Bildschirms mittels der Durchführung des Vorgangs bis zu den letzten Bilddaten X64 der letzten Stufe vollendet.
- Für 2-stufige progressive Bildaufbauten, wo Bilddaten durch eine ADCT codiert werden, wie in Fig. 34 gezeigt, wird ein DCT-Koeffizient ohne Aufteilung wiederhergestellt, wie in Fig. 35 gezeigt, während in einem zweistufigen progressiven Bildaufbau ein geteilter DCT-Koeffizient wie in Fig. 36 und 37 gezeigt wiederhergestellt wird. Die Aufteilungsoperation wird nicht für einen DCT-Koeffizienten durchgeführt, sondern wird durch das Aufteilen codierter Daten am Anschluß 610 erhalten.
- Ein geteilter DCT-Koeffizient der ersten, Stufe, wie in Fig. 36 gezeigt, hat die ersten 3 Pegel von X01 bis X03, während ein aufgeteilter DCT-Koeffizient der zweiten Stufe, wie in Fig. 37 gezeigt, die folgenden Pegel von X04 bis X64 aufweist.
- Ein geteilter DCT-Koeffizient der ersten Stufe, wie in Fig. 36 gezeigt, wird in aufgeteilte Bilddaten, die in. Fig. 38 gezeigt sind, durch eine inverse DCT-Operation wiederhergestellt und im Bildspeicher 624 gespeichert. Dann wird ein aufgeteilter DCT-Koeffizient der zweiten Stufe, wie in Fig. 37 gezeigt, durch eine inverse DCT transformiert, und aufgeteilte Bilddaten, die in Fig. 39 gezeigt sind, werden der Addiersektion 622 zugeführt. Die Addiersektion 622 summiert die in Fig. 38 gezeigten aufgeteilten Bilddaten und die in Fig. 39 gezeigten aufgeteilten Bilddaten, und gibt das Ergebnis an den Bildspeicher 624 aus.
- In Fig. 38 und 39 zeigen gepunktete Teile aufgeteilter Bilddaten Unterlaufteile mit negativen Werten an, die den Bildspeicher 624 um 1 Bit auf eine N + 1 = 9 Bit-Konfiguration erweitern, wodurch die Bilddaten gespeichert werden können. Unterlaufteile im Bildspeicher 624 vor der letzten aufgeteilten Stufe werden alle auf den Gradationswert von 0 festgelegt und von der Vergleichssektion 626 angezeigt.
- Eine der in Fig. 33 gezeigten Ausführungsformen verwendet den Bild- Speicher 624 mit einer N + 1 = 9 Bit-Konfiguration (1 Bit-Erweiterung), die andere verwendet jedoch den Esildspeicher 624 mit einer N + 2 = 10 Bit-Konfiguration (2 Bit-Erweiterung). In diesem Fall können die erweiterten 2 Bits für Unterlauf- oder Überlauf Informationen verwendet werden. Die Verwendung eines erweiterten 1 Bits für Überlauf Informationen ergibt den Gradationswert von 0 bis 256 einer 8 Bit-Konfiguration bis zum Wert von 0 bis 384, erhöht um 128. Die Zuordnung eines weiteren erweiterten 1 Bits zum Prozeß eines Unterlaufs ermöglicht die Repräsentation des Gradationswerts von 0 bis -128. So wird ein breiter Bereich von Gradationswerten von -128 bis 384 gespeichert.
- Fig. 40 zeigt die Konfiguration der 7. Ausführungsform dieser Erfindung, in der der Bild- Speicher 624 eine N + 1 = 9 Bit-Konfiguration mit einem erweiterten Bit aufweist, und die Bilddaten ohne jeglichen Unterlauf werden kumulativ addiert.
- Die Konfiguration vom Decodierer 612 mit variabler Länge bis zur zweidimensionalen inversen DCT-Einheit 620, die in Fig. 40 gezeigt ist, ist gleich wie jene in Fig. 33. Nach der zweidimensionalen inversen DCT-Einheit 620 ist die Pegel verschiebesektion 630 vorgesehen, um einen Überlauf durch das Addieren von 2 N - 1 = 128 mit den von der zweidimensionalen inversen DCT-Einheit 620 erhaltenen Bilddaten zu verhindern.
- Durch die Pegelverschiebesektion 630 im Pegel verschobene Bilddaten werden der Kumuliersektion 632 zugeführt, und mit den bereits im Bildspeicher 624 gespeicherter Bilddaten durch die Kumuliersektion 632 addiert. Die Kumuliersektion 632 umfaßt eine Subtrahiersektion 634 und eine Addiersektion 636. Durch das Kumulieren in der Kumuliersektion 632 verarbeitete Bilddaten werden im Bildspeicher 624 gespeichert, der eine N + 1 = 9 Bit-Konfiguration mit einer 1 Bit-Erweiterung aufweist. Nach dem Bildspeicher 624 ist die Subtrahiersektion 640 zum Subtrahieren von 2 N - 1 = 128 vom im Pegel verschobenen Betrag in der Pegelverschiebesektion 630 vorgesehen, wodurch eine N = 8 Bit-Konfiguration an den Anschluß 28 ausgegeben wird.
- Fig. 41 ist eine Modellansicht zur Erläuterung des Operationsprinzips der Kumuliersektion 632, wobei der Bildspeicher 624 eine N + 1 = 9 Bit-Konfiguration umfaßt.
- In Fig. 41 umfaßt der Block A eine zweidimensionale inverse DCT-Einheit 620 und eine Pegelverschiebesektion 630, und ein Block B umfaßt eine Kumuliersektion 632 und einen Bildspeicher 624. Bilddaten f(i), f'(i) und g(i) sind wie folgt definiert:
- f(i): Ergebnis der i.ten inversen DCT
- (-128 < f(i) < 383)
- f'(i): positiv transformierte Daten
- (0 < f'(i) < 511)
- g(i): Inhalt des Bildspeichers nach der i.ten Aktualisierung
- (0 < g(i) < 511)
- Die zweidimensionale inverse DCT-Einheit 620 hat eine N + 2 = 10 Bit-Konfiguration, da sie Überlauf- und Unterlaufdaten enthält, wohingegen alle anderen Sektionen eine N + 1 = 9 Bit-Konfiguration aufweisen.
- Wenn die zweidimensionale inverse DCT-Einheit 620 Bilddaten f(i) in der i.ten Stufe ergibt, stellt die Pegel, verschiebesektion 630 die Unterlaufdaten durch eine Pegelverschiebung ein, und die Pegelverschiebesektion 30 gibt die folgenden Bilddaten aus:
- f'(i) = f(i) + 128 . . . (9)
- Die Pegelverschiebung ist in Fig. 42 gezeigt.
- Wie in Fig. 42 gezeigt, hat eine N = 8 Bit-Konfiguration den Gradationswert von 0 bis 255, und die zweidimensionale inverse DCT-Einheit 620 gibt 10 Bit-Bilddaten aus, die jeweils 1 Bit für einen Unterlauf und Überlauf enthalten. Der Gradationswert kann positiv innerhalb des Bereichs von 0 bis 511 transformiert werden, wie im rechten Teil von Fig. 42 gezeigt, indem 2 N - 1 = 128 durch die Pegelverschiebesektion 630 mit dem obigen Wert addiert wird, der zusätzliche Bits für einen Überlauf und Unterlauf enthält. Da die Pegelverschiebesektion 630 Daten mit einer N + 1 = 9 Bit-Konfiguration ausgibt, kann der Gradationswert positiv innerhalb des Bereichs von 0 bis 511 transformiert werden.
- Daten g(0), die aus dem Bildspeicher 624 in der i.ten = 0 Stufe gelesen werden, zeigen die folgende Gleichung; g(0) = 0
- Wenn die zweidimensionale inverse DCT-Einheit 620 Bild daten f(i) = f(1) in der i.ten = 1. Stufe im obigen Initialzustand ausgibt, werden die Daten von der Pegelverschiebesektion 630 in f'(i) = f'(1) transformiert und der Akkumuliersektion 632 zugeführt. Gleichzeitig, während die Bilddaten g(i) = g(0) aus den Bildspeicher 624 gelesen wenden, wird der Ausgang g(i + 1) = g(1) aus der Akkumuliersektion 632 wie folgt dargestellt:
- g(1) = g(0) + f(i)
- = g(0) + f(1) + 128
- = f(1) + 128 . . . (10)
- Ähnlich werden die Bilddaten g(i + 1), die aus der Akkuniiuliersektion in der i.ten Stufe ausgegeben werden, wie folgt dargestellt:
- g(i+l) = g(i) + f(i + 1) + 128... (11)
- wobei:
- f'(i + 1) = f(i + 1) + 128
- f(i + 1) = f'(i + 1) - 128... (12)
- Durch Einsetzen von f(i + 1) von (12) in die vorhergehende Gleichung (11) werden die aus der Akkumuliersektion 632 ausgegebenen Bilddaten g(i + 1) wie folgt erhalten;
- g(i + 1) = g(i) + f(i + 1) - 128... (13)
- Die Gleichung (13) zeigt das Ergebnis der Akkumulieroperation der Akkumuliersektion 632 in einer beliebigen Stufe an. Demgemäß umfaßt die Akkumuliersektion 632 die Subtrahiersektion 634 und Addiersektion 636. Wenn die Addieroperation getrennt für die erste Stufe und zweite Stufe durchgeführt wird, wird die Akkumuliersektion 632 wie in Fig. 43B und 43C gezeigt konfiguriert. In Fig. 43B wählt ein Schaltungskreis 632b Bilddaten f(i + 1) aus und gibt das Ergebnis an eine Addiersektion 632c aus, wenn er ein Signal der ersten Stufe empfängt. Da der Bildspeicher 24 im Initialisierungsprozeß vor der ersten Stufe auf Null gesetzt wird, gibt die Addiersektion 632c die Bilddaten f(i + 1) an den Bildspeicher 24 aus. In der zweiten Stufe wählt der Schaltungskreis 632b den Ausgang einer Subtrahiersektion 632a aus und gibt Ergebnis an die Addiersektion 632c aus. Die Addiersektion 632c addiert den im Bildspeicher 24 in der ersten Stufe gespeicherten Wert mit den ausgewählten Bilddaten, und speichert dann das Ergebnis im Bildspeicher 24.
- In Fig. 43C wählt ein Schaltungskreis 632e den Ausgang des Bildspeichers 24 aus, wenn er ein Signal der ersten Stufe empfängt, und gibt es an die Addiersektion 632f aus. Da dieser Bildspeicher 24 im Initialisierungsprozeß auf Null gesetzt wird, wie oben beschrieben, gibt die Addiersektion 632f die Bilddaten f(i + 1) an den Bildspeicher 24 aus. In der zweiten Stufe wählt der Schaltungskreis 632e den Ausgang der Subtrahiersektion 632d aus und gibt ihn an die Addiersektion 632f aus. Die Addiersektion 632f addiert den Wert, der durch das Subtrahieren von 128 von den im Bildspeicher 24 in der ersten Stufe gespeicherten Bilddaten erhalten wurde, mit den in der zweiten Stufe eingegebenen Bilddaten, und speichert dann das Ergebnis im Bildspeicher 24.
- Die im Bildspeicher 24 in der ersten und zweiten Stufe gespeicherten Bilddaten sind demgemäß identisch.
- Wenn in Fig. 40 Originalbilddaten eine N = 8 (Gradationswert von 256) Bit-Konfiguration auf weisen, addiert die Pegelverschiebesektion 630 2 N - 1 = 128 mit den aufgeteilten Bilddaten, die durch die inverse DCT-Operation von der zweidimensionalen inversen DCT-Einheit 620 verarbeitet werden. Gemäß dieser Pegelverschiebeoperation werden Originalbilddaten transformiert, um positiv zu sein, wobei überlaufdaten eliminiert werden, wie in Fig. 42 gezeigt.
- Fig. 44 und 45 zeigen aufgeteilte Bilddaten, wo in Fig. 38 und 39 gezeigte aufgeteilte Bilddaten mit dem Gradationswert 128 durch die Pegelverschiebesektion 630 addiert werden. Die Addition des Gradationswerts 128 eliminiert alle Unterlauf daten, die durch den gepunkteten Teil in Fig. 38 und 39 angezeigt sind, während nur Überlaufdaten zurückbleiben, die durch den gepunkteten Teil des Teils mit höherem Pegel in Fig. 44 angezeigt sind.
- So werden die aufgeteilten Bilddaten mit Unterlaufdaten, die wie in Fig. 44 gezeigt eliminiert wurden, im Bildspeicher 624 in der ersten Stufe gespeichert, und werden in der zweiten Stufe mit den in Fig. 45 gezeigten aufgeteilten Bilddaten durch die Akkumulieroperation durch die Akkumuliersektion 632 addiert, und werden dann im Bildspeicher gespeichert.
- Aus dem Bildspeicher 624 gelesenen Bilddaten werden aus dem Anschluß 28 nach der Subtraktion 2 N - 1 = 128 durch die Subtrahiersektion 640 ausgegeben, um zu einer 8 Bit-Datenkonfiguration zurückzukehren.
- Fig. 46 ist ein Blockbild, das das Prinzip der B. Ausführungsform dieser Erfindung zeigt.
- In dieser Ausführungsform wird ein Originalbild in Blöcke aufgeteilt, die eine Vielzahl von N·N Bildern umfassen. Dann wird ein Transformationskoeffizient quantisiert, der aus einer zweidimensionalen diskreten Kosinustransformation am Gradationswert einer Vielzahl von M·N Bildern in jedem Block erhalten wird. So wird das Originalbild durch Daten wiederhergestellt, die durch das Codieren des resultierenden quantisierten Koeffizienten erhalten werden.
- Eine Decodiereinrichtung 710 decodiert codierte Daten.
- Eine Dequantisierungseinrichtung 702 liefert einen DCT- Koeffizienten durch das Dequantisieren des von der Decodiereinrichtung 701 decodierten quantisierten Koeffizienten.
- Eine inverse DCT-Einheit 703 führt eine inverse DCT- Operation am durch die Dequantisierungseinrichtung 702 dequantisierten DCT-Koeffizienten durch.
- Wenn kein signifikanter Koeffizient im quantisierten Koeffizienten in einem Block vorliegt, der von der Decodiereinrichtung 701 decodiert wurde, steuert eine signifikante Koeffizientendetektiereinrichtung 704 den Ausgang wiederhergestellter Bilddaten für die von der Dequantisierungseinrichtung 702 durchgeführte Dequantisierung und die von der inversen DCT-Einrichtung 703 durchgeführte inverse DCT.
- Ein Bildspeicher 707 speichert Bilddaten.
- Eine Addiereinrichtung 705 addiert den Ausgang des Bildspeichers 707 und den Ausgang der inversen DCT-Einrichtung. Die Addieroperation wird nicht in der ersten Stufe durchgeführt, sondern wird in der zweiten Stufe gestartet.
- Eine Auswahleinrichtung 706 erhält den Ausgang der Addiereinrichtung 705 und der inversen DCT-Einrichtung 703, wählt den Ausgang der inversen DCT-Einrichtung 703 in der ersten Stufe aus, wählt den Ausgang der in der zweiten Stufe gestarteten Addiereinrichtung 705, und liefert dem Bildspeicher 707 diese Ausgänge.
- Codierte Daten werden von der Decodiereinrichtung 701 decodiert, wodurch ein quantisierter Koeffizient geliefert wird. Wenn kein signifikanter Koeffizient im decodierten quantisierten Koeffizienten in einem Block existiert, wird 0 als wiederhergestellte Daten ausgegeben. Wenn ein signifikanter Koeffizient existiert, werden die Dequantisiereinrichtung 702 und die inverse DCT-Einrichtung 703 betrieben, um das Originalbild wiederherzustellen.
- Ferner werden in der ersten Stufe die wiederhergestellten Bilddaten von der Auswahleinrichtung 706 ausgewählt und im Bildspeicher 707 gespeichert. In den folgenden Stufen werden im Bildspeicher 707 gespeicherte Bilddaten und von der inversen DCT-Einrichtung 703 wiederhergestellte Bilddaten summiert, der Ausgang wird von der Auswahleinrichtung 706 ausgewählt, und die resultierenden Daten werden im Bildspeicher 707 gespeichert.
- Wenn kein signifikanter Koeffizient in einem quantisierten Koeffizienten In einem Block existiert, zur nächsten Blockadresse gehen, ohne eine Addition oder irgendeine Operation durchzuführen, wodurch Operationen, wie Additionen einer Dequantisierung und inversen DCT, eliminiert werden.
- Fig. 47A zeigt die Konfiguration des achten Prinzips dieser Erfindung.
- Von einem Anschluß 711 eingegebene Codedaten werden in einen Decodierer 712 für Daten mit variabler Länge eingegeben. Der Decodierer 712 für Daten mit variabler Länge decodiert die eingegebenen Codedaten in Daten mit fester Länge, die Index- und Laufdaten umfassen, gemäß einer Decodiertabelle 713, die eine Huffman-Tabelle und eine Inverse Tabelle umfaßt, und gibt dann das Ergebnis an den Dequantisierer 714 aus. Der Dequantisierer 714 bestimmt die Anzahl signifikanter Koeffizienten in einem Block, und gibt ein insignifikantes Blocksignal Null an eine zweidimensionale inverse DCT- Einheit 716 aus, wenn kein signifikanter existiert. Wenn einer oder mehrere signifikante Koeffizienten in einem Block existieren, stellt der Dequantisierer 714 einen DCT-Koeffizienten wieder her, indem er die eingegebenen quantisierten Koeffizienten mit von einer Quantisierungsmatrix 715 gelieferten entsprechenden Werten multipliziert, und gibt das Ergebnis an die zweidimensionale inverse DCT-Einheit 716 aus. Wenn ein insignifikantes Blocksignal Null eingegeben wird, gibt die zweidimensionale inverse DCT-Einheit 716 ein insignifikantes Blocksignal Null an den Anschluß 718 aus, ohne eine zweidimensionale inverse DCT durchzuführen. Wenn ein insignifikantes Blocksignal Null eingegeben wird, werden eingegebene DCT-Koeffizienten von der inversen DCT-Einrichtung 703 orthogonal transformiert, ein Koeffizient der Raumfrequenzverteilung wird von einem Bildsignal transformiert, und das Ergebnis wird zum Anschluß 717 ausgegeben.
- Der oben beschriebene Vorgang wird wiederholt, um Bild wiederherstellunsoperationen für einen Bildschirm zu vollenden.
- Fig. 47B ist ein operationales Flußdiagramm der 8. Ausführungsform dieser Erfindung, Die Operation wird durch das Eingeben von decodierten Daten gestartet. Decodierte Daten, die quantisierte Koeffizienten enthalten, werden durch das Ausführen des Decodierprozesses ST21 für Daten mit variabler Länge geliefert. Dann wird eine Bestimmung ST22 durchgeführt, um das Vorliegen oder Fehlen eines signifikanten Koeffizienten zu bestimmen. Wenn die Bestimmung ST22 anzeigt, daß ein signifikanter Koeffizient existiert (JA), dequantisiert ein Dequantisierungsprozeß ST23 einen quantisierten Koeffizienten, um einen DCT-Koeffizienten zu erhalten. Der DCT-Koeffizient wird dann durch die zweidimensionale inverse DCT ST24 verarbeitet, um ein Wiederherstellungssignal ST25 auszugeben.
- Wenn die Bestimmung ST22 anzeigt, daß kein signifikanter Koeffizient existiert (NEIN), wird ein insignifikantes Blocksignal Null ausgegeben (ST26). Das heißt, Nur-Null- Daten werden ausgegeben. Nachdem die Prozesse ST25 und ST26 ausgeführt wurden, erfolgt eine Bestimmung ST27, um zu bestimmen, ob alle Blöcke geprüft wurden. Wenn nicht alle Blöcke geprüft wurden (NEIN), wird der Vorgang wiederholt, beginnend mit dem Decodierprozeß ST21 für Daten mit variabler Länge. Wenn alle Blöcke geprüft wurden (JA), wird der Vorgang beendet.
- Wie oben beschrieben, werden Nur-Null-Daten ausgegeben, wenn kein signifikanter Koeffizient existiert. So sind der Dequantisierungsprozeß ST23 und der zweidimensionale inverse DCT-Prozeß ST24 nicht erforderlich, und demgemäß wird eine Leistung mit höherer Geschwindigkeit realisiert.
- Fig. 48 ist ein Blockbild einer Schaltung zum Generieren eines insignifikanten Blocksignals im Dequantisierer 714 einer Ausführungsform dieser Erfindung. Fig. 49 zeigt Reihen decodierter Daten.
- Nachstehend wird ein Verfahren zur Berechnung der Anzahl in einem Block enthaltener signifikanter Koeffizienten gemäß einem Blockbild einer Schaltung zum Generieren eines insignifikanten Blocksignals dieser Erfindung beschrieben, wie in Fig. 48 gezeigt.
- Decodierte Daten, welche einen Index und Laufdaten unifassen, die vom Decodierer 712 für Daten mit variabler Länge aus codierten Daten decodiert werden, werden vom Anschluß 710 in den Demultiplexer 721 eingegeben. Der Demultiplexer 721 wählt abwechselnd einen Index und Laufdaten aus den decodierten Eingangsdaten gemäß einem vom Zeitkontroller 725 gelieferten Auswahlsignal (CLS) aus, und gibt dann einen Index (IDX) in die DCT-Koeffizienten-Wiederherstellungssektion 728 und Laufdaten (RUN) in die Blockende-Detektiersektion 722 ein.
- Im Fall eines Nur-DC-Komponentenblocks (wie in Fig. 49(A) gezeigt) werden decodierte Daten (D1) der ersten DC-Komponente vom Demultiplexer 721 ausgewählt und zur DCT- Koeffizienten-Wiederherstellungssektion 728 ausgegeben. Dann wird die Anzahl signifikanter Koeffizienten mit dem Wert 1 in einem Zielblock vom signifikanten Koeffizientenrechner 723 gemäß einem vom Zeitkontroller 725 gelieferten Zählsignal (ICN) gezählt. Die signifikante Koeffizientenauswahlsektion 726 speichert Adressen (ADR = 0) decodierter Daten (D1). Dann wählt der Demultiplexer 721 Laufdaten (Reob) aus und gibt die Daten an die Blockende-Detektiersektion 722 aus. Die Blockende-Detektiersektion 722 erkennt, daß, als Wert der eingegebenen Laufdaten (RUN) "(Reob)" dle verbleibenden Koeffizienten von Bildelementen in dem Block alle insignifikante Koeffizienten sind, bestimmt, daß das Ende der Koeffizienten in dem Block erreicht ist, und gibt an den Zeitkontroller 725 ein Signal (BEN) aus, welches das Ende der Koeffizienten in dem Block anzeigt. Dann weist der Zeit kontroller 725 (BCN) den signifikanten Koeffizientendeterminierer 724 an, die Anzahl signifikanter Koeffizienten in dem Block zu bestimmen. Da die Anzahl signifikanter Koeffizienten in dem Block "1" ist, bestimmt der signifikante Koeffizientendeterminierer 724 das Vorliegen eines signifikanten Koeffizienten im Zielblock, und gibt ein insignifikantes Blocksignal Null als "0" aus dem Anschluß 720 aus.
- Die DCT-Koeffizienten-Wiederherstellungssektion 728 multipliziert darin gespeicherte decodierte Daten mit einer Quantisierungsschwelle, die in der Adresse (ADR = 0) von DC- Komponenten im Quantisierungsschwellenspeichec 727 gespeichert ist, und gibt das Ergebnis aus dem Anschluß 729 aus. Dann transformiert die zweidimensionale inverse DCT-Einheit 716 den Ausgang in Bildsignale, wodurch alle Bildelemente in einem Block in Bildsignale wiederhergestellt werden.
- Im Fall eines Blocks, wo Koeffizienten von DC-Komponenten und AC-Komponenten gemischt sind (wie in Fig. 49(C) gezeigt), wählt der Demultiplexer 721 decodierte Daten (D2) der ersten DC-Komponente aus und gibt sie an die DCT-Koeffizienten-Wiederherstellungssektion 728 aus. Dann zählt der signifikante Koeffizientenrechner 723 die Anzahl signifikanter Koeffizienten in einem Zielblock als "1" gemäß einem vom Zeitkontroller 725 gelieferten Zählsignal (ICN). Die signifikante Koeffizientenauswahlsektion 726 speichert Adressen (ADR = 0) decodierter Daten (D2). Dann wählt der Demultiplexer 721 Laufdaten (R0) aus und gibt sie an die Blockende- Detektiersektion 722 aus. Da der Wert eingegebener Laufdaten (RUN) R0 ist, bestimmt die Blockende-Detektiersektion 722, daß das Ende der Koeffizienten in dem Block nicht erreicht wurde. Die signifikante Koeffizientenauswahlsektion 726 berechnet und speichert eine Adresse (ADR) des nächsten signifikanten Koeffizienten gemäß einem Wert eingegebener Laufdaten (RUN). Da der Demultiplexer 721 dieses Mal einen Index (II) auswählt, wird andererseits ein eingegebener Index (II) in der DCT-Koeffizienten-Miederherstellungssektion 728 gespeichert. Dann wird die Anzahl signifikanter Koeffizienten in einem Zielblock von "+1" mit dem signifikanten Koeffizientenrechner 723 gemäß einem vom Zeitkontroller 725 gelieferten Zählsignal (ICN) addiert, wodurch eine Gesamtsumme von "2" erzeugt wird. Als nächstes wählt der Demultiplexer 721 Laufdaten (R0) aus und gibt sie an die Blockende-Detektiersektion 722 aus. Da der Wert eingegebener Laufdaten (RUN) R0 ist, bestimmt die Blockende-Detektiersektion 722, daß das Ende signifikanter Koeffizienten in dem Block nicht erreicht wurde. Dann berechnet und speichert die signifikante Koeffizientenauswahlsektion 726 eine Adresse (ADR) des nächsten signifikanten Koeffizienten gemäß dem Wert eingegebener Laufdaten (RUN).
- Der Demultiplexer 721 wählt dieses Mal einen Index (12) aus, und der eingegebene Index (12) wird in der DCT-Koeffizienten-Wiederherstellungssektion 728 gespeichert. Gemäß einem vom Zeitkontroller 725 gelieferten Zählsignal (ICN) wird die Anzahl "+1" signifikanter Koeffizienten in einem Zielblock mit dem signifikanten Koeffizientenzähler 723 addiert, wodurch eine Gesamtsumme von "3" erzeugt wird. Dann wählt der Demultiplexer 721 Laufdaten (Reob) aus und gibt sie an die Blockende-Detektiersektion 722 aus. Da das eingegebene Signal Laufdaten (Reob) anzeigt, bestimmt die Blockende-Detektiersektion 722, daß die verbleibenden Koeffizienten von Bildelementen in dem Block alle insignifikante Koeffizienten sind und das Ende der Koeffizienten in dem Block erreicht wurde, und gibt dann an den Zeitkontroller 725 ein Signal (BEN) aus, das anzeigt, daß das Ende der signifikanten Koeffizienten in dem Block erreicht wurde. Der Zeitkontroller 725 (BCN) weist den signifikanten Koeffizientendeterminierer 724 an, die Anzahl signifikanter Koef fizienten in dem Block zu bestimmen. Da diese Anzahl 3 ist, bestimmt der signifikante Koeffizientendeterminierer 724 das Vorliegen signifikanter Koeffizienten, und gibt ein insignifikantes Blocksignal "0" aus dem Anschluß 720 aus. Die DCT- Koeffizienten-Wiederherstellungssektion 728 multipliziert darin gespeicherte decodierte Daten (D1, II, I2) mit der in der entsprechenden Adresse (ADR) der Quantisierungsschwellen-Speichereinheit 727 gespeicherter Quantisierungsschwelle, und gibt das Ergebnis aus dem Anschluß 729 aus. Die zweidimensionale inverse DCT-Einheit 716 transformiert das Ergebnis in Bildsignale, wodurch alle Bildelemente in einem Block in Bildsignale wiederhergestellt werden.
- Nach der zweiten Stufe des progressiven Bildaufbaus wählt der Demuitiplexer 721 zuerst Laufdaten aus. Wenn kein signifikanter Koeffizient existiert (wie in Fig. 49 (B) gezeigt), wird der ausgewählte Laufdatenwert (Reob) an die Blockende-Detektiersektion 722 ausgegeben. Da der Wert der eingegebenen Laufdaten (RUN) Reob ist, bestimmt die Blockende-Detektiersektion 722, daß die verbleibenden Koeffizienten von Bildelementen in dem Block alle insignifikante Koeffizienten sind, und das Ende signifikanter Koeffizienten in dem Block erreicht ist. Dann gibt sie an den Zeitkontroller 725 ein Signal (BEM) aus, welches das Ende signifikanter Koeffizienten in dem Block anzeigt. Der Zeitkontroller 725 (BCN) weist den signifikanten Koeffizientendeterminierer 724 an, die Anzahl signifikanter Koeffizienten in dem Block zu bestimmen. Der signifikante Koeffizientendeterminierer 724 bestimmt, daß die Anzahl signifikanter Koeffizienten in dem Block 0 ist, das heißt, kein signifikanter Koeffizient im Zielblock vorliegt, und gibt ein insignifikantes Blocksignal Null als "1" aus dem Anschluß 720 aus, wodurch alle Prozesse in dem Block beendet werden.
- Fig. 50 ist ein Blockbild, das die Bildaktualisierung der zweiten Ausführungsform der achten Ausführungsform dieser Erfindung zeigt. Codierte Daten D1 (X01) aus einem Anschluß 761 werden von einem Decodierer 762 für Daten mit variabler Länge gemäß einer Decodiertabelle 763 decodiert, und in einen Dequantisierer 764 eingegeben. Da DC-Komponenten in der ersten Stufe enthalten sind, zeigt ein insignifikantes Blocksignal "0" an, und der Dequantisierer 764 führt eine orthogonale Dequantisierungsoperation unter Verwendung einer Quantisierungsmatrix 765 durch. Nach der Dequantisierungsoperation wird der DCT-Koeffizient an eine zweidimensionale inverse DCT-Einheit 766 ausgegeben, die ihn in Bilddaten wiederherstellt. Ein Signal FIRST, das die erste Stufe anzeigt, weist den Selektor 769 an, die wiederhergestellten aufgeteilten Bilddaten auszuwählen. Gemäß einem Schreibsignal WRITE, das von einem Bildspeicherkontroller 767 ausgegeben wird, speichert ein Bildspeicher 768 den Ausgang der zweidimensionalen inverson DCT- Einheit 766, die vom Selektor 769 ausgewählt wird. Eine Speicheradresse wird als Adresse MADR angegeben, die aus einem Adressengenerator 771 ausgegeben wird. Die erste Stufe der Bildwiederherstellungsoperation für einen Bildschirm wird durch die Wiederholung des obigen Vorgangs für alle Blöcke vollendet.
- Als nächstes werden Codedaten D2 (Xn1 + i. . . Xn2 : n1 < n2 < 64) der zweiten Stufe durch den oben beschriebenen Vorgang in Bilddaten decodiert. Wenn kein signifikanter Koeffizient existiert, wie in Fig. 49(B) gezeigt, wird jedoch ein insignifikantes Blocksignal ZERO als "1" ausgegeben, wie oben beschrieben. In diesem Fall hat der Bildsipeicherkontroller 767 keinen Zugriff auf einen Bildspeicher, beendet jedoch die Operation am aktuellen Block nach der Erhöhung des Werts eines Blockadressengenerator-Zählers 774 um Eins durch eine ODER-Schaltung 772, wie in Fig. 51 gezeigt. Wenn einer oder mehrere signifikante Koeffizienten in einem Block existieren, werden normal wiederhergestellte Bilddaten durch eine Addiersektion 770 mit Bilddaten der vorhergehenden Stufe addiert. Der Selektor 769 wählt das Additionsergebnis aus, schreibt das Ergebnis in den Bildspeicher 768 gemäß einem vom Bildspeicherkontroller 767 gelieferten Schreibsignal WRITE, erhöht den Wert eines 6 Bit-Zählers 773 um Eins, der Adressen in einem Block gemäß dem Anforderungsadressen-Aktualisierungssignal REQ generiert, und aktualisiert die Schreibadresse MADR zum Schreiben Im Bildspeicher. Nachdem alle Bildelemente in einem Block aktualisiert wurden, wird ein Übertrags Signal CARRY vom 6 Bit-Zähler 773 ausgegeben, der Wert des Blockadressengenerator-Zählers 774 wird durch die ODER-Schaltung 772 um Eins erhöht, und der Prozeß des aktuellen Blocks wird beendet. Die zweite Stufe der Bildwiederherstellungsoperation für einen Bildschirm wird durch die Wiederholung des obigen Vorgangs für alle Blöcke vollendet.
- Die progressive Wiederherstellung eines Bildschirms wird vollendet, indem derselbe Vorgang wie die zweite Stufe bis zum Prozeß der codierten Daten D1 (Xni + 1 . . . X64 : ni < 64) der i.ten Stufe durchgeführt wird.
- Fig. 52 ist ein Blockdiagramm der 9. Ausführungsform dieser Erfindung. In dieser Ausführungsform wird ein Originalbild in Blöcke mit einer Vielzahl von N·N Bildelementen aufgeteilt. Dann wird ein Transformationskoeffizient quantisiert, der mittels der Durchführung einer zweidimensionalen diskreten Kosinustransformation am Gradationswert einer Vielzahl von N·N Bildelementen jedes Blocks erhalten wird. So wird das Originalbild aus codierten Daten des resultierenden quantisierten Koeffizienten wiederhergestellt.
- Eine Decodiereinrichtung 801 decodiert die codierten Eingangsdaten in einen quantisierten Koeffizienten. Die Decodieroperation wird unter Verwendung einer Decodier tabelle durchgeführt.
- Eine Dequantisierungseinrichtung 802 dequantisiert einen quantisierten DCT-Koeffizienten, der von der Decodiereinrichtung 801 decodiert wird. Die Dequantisierung wird unter Verwendung einer Dequantisierungsmatrix durchgeführt.
- Eine inverse DCT-Einheit 803 führt eine inverse DCT- Operation an einem DCT-Koeffizienten durch.
- Eine Bilddaten-Speichereinheit 804 speichert Daten wie Bilddaten.
- Eine Addiereinrichtung 805 wählt und gibt in der ersten Stufe Daten aus, die von der inversen DCT-Einheit 803 geliefert werden, und summiert in der zweiten Stufe in der Bilddaten-Speichereinheit 804 gespeicherte Bilddaten sowie durch die inverse DCT in der inversen DCT-Einheit 803 erhaltene Bilddaten und gibt diese aus.
- Eine Adressengeneratoreinrichtung 806 generiert eine Adresse zum Speichern der in der Addiereinrichtung 805 in der Bilddaten-Speichereinheit 804 erhaltenen Bilddaten.
- Wenn alle Bilddaten in dem Block, die durch eine DCT verarbeitet werden, als 0 bestimmt werden, ersetzt ein insignifikanter Blockdetenninierer 807 eine von der Generatoreinrichtung 806 generierte Adresse durch die nächste Blockadresse, ohne den von der Addiersektion 805 in der Bilddaten-Speichereinheit 804 gelieferten Ausgang zu speichern. Wenn beispielsweise ein Zähler zum Zählen der Anzahl von Null-Wert-Bilddaten in einem Block vorgesehen ist, und der Zähler 0 als Anzahl von Daten anzeigt, die eingegeben werden, während der Zähler Operationen zählt, wird die Blockadresse durch die nächste Blockadresse ersetzt.
- Wenn Codedaten eingegeben werden, decodiert die Decodiereinrichtung 801 codierte Daten unter Verwendung einer Decodiertabelle, wodurch ein quantisierter Koeffizient erhalten wird. Der quantisierte Koeffizient wird vom Dequanti sierer 802 unter Verwendung einer Dequantisierungsmatrix dequantisiert, wodurch ein DCT-Koeffizient vorgesehen wird. Die inverse DCT-Einheit 803 führt eine inversse DCT am DCT- Koeffizienten durch und liefert Bilddaten. In der ersten Stufe werden die Bilddaten in der Adresse gespeichert, welche die Adressengeneratoreinrichtung 806 der Bilddatenspeichereinheit 804 übermittelt. In der zweiten Stufe werden in der Bilddaten-Speichereinheit 804 gespeicherte Bilddaten und durch die inverse DCT-Operation in der inversen DCT-Einheit 803 verarbeitete Bilddaten summiert und gespeichert. Der insignifikante Blockdeterminierer 807 bestimmt, ob die Ausgänge der inversen DCT-Einheit 803 oder Bilddaten alle Null sind oder nicht, und, wenn sie dies sind, geht er zur nächsten Blockadresse, ohne die Addiereinrichtung 805 zu betreiben.
- Die obige Beschreibung wird wie folgt zusammengefaßt:
- Codierte Eingangsdaten werden in einen quantisierten Koeffizienten decodiert, und der quantisierte Koeffizient wird in einen DCT-Koeffizienten dequantisiert.
- Wenn ein oder mehrere Bilddatenwerte in einem Block, die durch die inverse DCT des DCT-Koeffizienten erhalten werden, von 0 verschieden sind, werden die gespeicherten Daten mit den Bilddaten in dem Block addiert, und das Ergebnis wird im Speicher gespeichert.
- Wenn alle Bilddaten in dem Block, die durch die inverse DCT des DCT-Koeffizienten erhalten werden. Null sind, bleiben die gespeicherten Bilddaten unverändert, und Bilddaten des nächsten Blocks werden decodiert.
- Fig. 53 ist ein allgemeines Blockbild einer ADCT-Wiederherstellung. Codierte Daten D1 (X01 . . . Xn1 : n1 < 64) der ersten Stufe, die vom Anschluß 811 aufgeteilt werden, werden im Decodierer 812 für Daten mit variabler Länge decodiert, und im Dequantisierer 813 dequantisiert. Sowohl die Deco dieroperation im Decodierer 812 für Daten mit variabler Länge als auch die Dequantisierungsoperation im Dequantisierer 813 werden auf herkömmliche Weise durchgeführt. Ein im Dequantisierer 813 dequantisierter DCT-Koeffizient wird an die zweidimensionale inverse DCT-Einheit 814 geliefert, durch eine inverse DCT-Operation verarbeitet, und in Bilddaten wiederhergestellt. Wenn die ersten wiederhergestellten Bilddaten im Bildspeicher 816 in der ersten Stufe gespeichert werden, werden vom Selektor 819 wiederhergestellte aufgeteilte Bilddaten gemäß einem Signal FIRST ausgewählt, das die erste Stufe anzeigt, und in den Bildspeicher 816 gemäß einem Schreibsignal WRITE geschrieben, das vom Bildspeicherkontroller 810 geliefert wird. Die erste Stufe der Bildwiederherstellungsoperation für einen Bildschirm wird durch die Wiederholung des obigen Vorgangs für alle Blöcke vollendet. Als nächstes werden codierte Daten D2(Xn1 + 1 . . . Xn2 : n1 < n2 < 64) der zweiten Stufe im oben beschriebenen Vorgang in Bilddaten wiederhergestellt. Wiederhergestellte aufgeteilte Bilddaten werden an die insignifikante Blockdetektiersektion 817 geliefert.
- Fig. 54 ist ein Blockbild der insignifikanten Blockdetektiersektion 817. 64 Bildelemente in einem Block, die von einem 6 Bit-Zähler 872 generiert werden, werden aus der zweidimensionalen DCT-Einheit 814 gemäß einem Lesesignal DR gelesen. Bilddaten (DATA), die aus der zweidimensionalen inversen DCT-Einheit 814 ausgegeben werden, v/erden von einer Vergleichssektion 870 geprüft, um zu bestimmen, ob ihnen "0" zugeteilt wird oder nicht. An die Vergleichssektion 870 wird "0" zusätzlich zu den oben angegebenen Bilddaten DATA als grundsätzliche Eingabedaten geliefert, und es wird eine Prüfung durchgeführt, um zu detektieren, ob "0" und Bilddaten (DATA) äquivalent sind oder nicht. Wenn sie dies nicht sind, gibt die Vergleichssektion 870 ein Nicht-Null-Signal NEQ aus. Ein Detektionskontroller 871 ermittelt den Status eines Blocks und gibt ein Detektionssignal ZERO an den Adressengenerator 818 und den Bildspeicherkontroller 810 aus, wenn ein Block mit 64 Bildelementen insgesamt Null anzeigt. Wenn Null detektiert wird, geht der Biidspeicherkontroller 810 zur nächsten Blockadresse, ohne auf den Bildspeicher 816 zuzugreifen.
- Fig. 55 ist ein Blockbild der Adressengeneratorschaltung 818. Wenn ein Detektionssignal ZERO an einen Blockadressengenerator-Zähler 882 durch eine ODER-Schaltung 881 ausgegeben wird, wird der Wert des Blockadressengenerator-Zählers 882 um eine Adresse erhöht, und der Prozeß des aktuellen Blocks wird beendet.
- Wenn ein Detektionssignal ZERO nicht ausgegeben wird, werden wiederhergestellte aufgeteilte Bilddaten mit den vorhergehenden Bilddaten von einer Addiersektion 815 addiert, und das Ergebnis wird von einem Selektor 819 ausgewählt.
- Die Adressengeneratorschaltung 818 generiert eine Adresse, wo auf den Bildspeicher 816 zugegriffen wird, und die Adresse wird an den Bildspeicher 816 geliefert, worin der Zugriff durch einen 6 Bit-Zähler 880 und den Blockadressengenerator-Zähler 882 erfolgt. Gemäß einem vom Bildspeicherkontroller 810 gelieferten Schreibsignal WRITE wird das vom Selektor 819 ausgewählte Ergebnis der Addition in der Adresse gespeichert, wo die Bilddaten gelesen werden. Zu dieser Zeit wird der Wert des 6 Bit-Zählers 980, der eine Adresse in einem Block generiert, gemäß einem Anforderungsadressen-Aktualisierungssignal REQ um Eins erhöht, das vom Bildspeicherkontroller 810 geliefert wird, wodurch eine Schreibadresse ADR des Bildspeichers 816 aktualisiert wird. Wenn die Aktualisierungsoperationen für alle Bildeleraente in einem Block vollendet sind, wird ein Übertrags signal CARRY vom 6 Bit-Zähler 880 ausgegeben, der Wert des Blockadressen generator-Zählers 882 wird durch die ODER-Schaltung 881 um Eins erhöht, und der Prozeß des aktuellen Blocks wird beendet. Die zweite Stufe der Bildwiederherstelluagsoperation für einen Bildschirm wird durch die Wiederholung des obigen Vorgangs für alle Blöcke vollendet.
- Der progressive Bildaufbau für einen Bildschirm wird vollendet, indem derselbe Vorgang wie die zweite Stufe bis zu den codierten Daten D1 (Xn1 + 1 . . . X64 : ni < 64) der i.ten Stufe durchgeführt wird.
- In der vorliegenden Ausführungsform wird ein insignifikantes Blockdetektiersignal ZERO von der insignifikanten Blockdefektiersektion 817 nach der Operation durch die zweidimensionale inverse DCT-Einheit 814 ausgegeben. Das Signal kann jedoch vom Decodierer 812 für Daten mit variabler Länge, vom Dequantisierer 813 oder von der zweidimensionalen inversen DCT-Einheit 814 generiert werden.
- Fig. 56 ist ein operationales Flußdiagramm einer Ausführungsform dieser Erfindung.
- Wenn die Operation einer Ausführungsform der 9. Ausführungsform dieser Erfindung gestartet wird, wird zuerst der Decodierprozeß ST31 für Daten mit variabler Länge vom in Fig. 53 gezeigten Decodierer 812 für Daten mit variabler Länge durchgeführt. Wenn der Decodierprozeß ST31 für Daten mit variabler Länge vollendet ist, wird der Dequantisierungsprozeß ST32 vom Dequantisierer 813 durchgeführt. Dann wird der inverse DCT-Prozeß ST33 von der zweidimensionalen DCT-Einheit 814 durchgeführt. Als nächstes erfolgt eine Prüfung ST34, um zu bestimmen, ob Bilddaten des aktuellen Blocks erfolgreich wiederhergestellt wurden. Diese Prüfung wird von einem in der ersten Stufe ausgegebenen Signal FIRST vorgenommen. Wenn die Bilddaten noch nicht wiederhergestellt sind (NEIN), wählt der Selektor 819 von der zweidimensionalen inversen DCT-Einheit 814 gelieferte Daten aus und schreibt (ST35) sie in den Bildspeicher 816, in dem die Schreiboperation unter der Steuerung des Bildspeicherkontrollers 810 durchgeführt wird. Dann erfolgt eine Prüfung ST36, um zu bestimmen, ob der Prozeß für alle Blöcke vollendet wurde. Wenn dies nicht der Fall ist (NEIN), wird der Decodierprozeß ST31 für Daten mit variabler Länge erneut wiederholt. Die Prüfung ST36 wird vom Bildspelcherkontroller 810 vorgenommen.
- Wenn die Prüfung ST34 bestimmt hat, daß Bilddaten des aktuellen Blocks bereits wiederhergestellt wurden (JA), erfolgt eine Prüfung ST37, um zu bestimmen, ob alle Daten im aktuellen Block, die durch eine inverse DCT verarbeitet wurden, "0" sind. Die Prüfung ST37 wird von der insignifikanten Blockdetektiersektion 817 vorgenommen. Wenn die Prüfung ST37 bestimmt, daß alle Bilder "0" sind (JA), gibt die insignifikante Blockdetektiersektion 817 ein Signal (ZERO) an den Adressengenerator 818 aus, und weist diesen an, zum Kopf des nächsten Blocks zu gehen. Dann geht der Adressengenerator 818 zu einer Schreibadresse des Bildspeichers 816 für den Kopf des nächsten Blocks (ST38). Wenn die Prüfung ST37 bestimmt hat, daß alle Daten nicht "0" sind (NEIN), oder daß einer oder mehrere Nicht-Null-Werte in den Daten enthalten sind, werden Daten im Bildspeicher und durch die inverse DCT-Operation verarbeitete Daten von der Addiersektion 815 summiert (ST39). Der Selektor 819 wählt den von der Addiersektion 815 gelieferten Ausgang aus; von der zweidimensionalen inversen DCT-Einheit 814 gelieferte Bilddaten und im Bildspeicher 816 gespeicherte Bilddaten werden summiert; und das Ergebnis wird an den Bildspeicher 816 geliefert. Das heißt, die Addiersektion 815 führt die Addieroperation (ST39) durch, und die resultierenden Daten werden durch den Selektor 819 in den Bildspeicher 81,6 geschrieben (ST35). Nach der Schreiboperation erfolgt eine Prüfung ST36, und der gesamte Vorgang wird nach Abdeckung aller Blöcke (JA) vollendet.
- Gemäß der ersten Ausführungsform dieser Erfindung ist es möglich, selektiv signifikante Komponenten eines quantisierten Koeffizienten zu dequantisieren. Das heißt, indem insignifikante Komponenten eines quantisierten Koeffizienten nicht dequantisiert werden, wird die für die Multiplikationsoperation auf gewendete Zeit minimiert. So wird der Dequantisierungsprozeß mit viel höherer Geschwindigkeit ausgeführt. Gemäß der zweiten Ausführungsform dieser Erfindung kann die Wiederherstellung orthogonal transformierter Bilder durch inverse orthogonale Transformationen effizient, mit viel schnelleren arithmetischen Operationen ausgeführt werden als jene gemäß den herkömmlichen Verfahren, wodurch progressive Bildaufbauten beschleunigt werden.
- Gemäß der dritten Ausführungsform dieser Erfindung delektiert ein Blockdetektionsmittel auf der Basis eines quantisierten Koeffizienten oder eines Transformationskoeffizienten Blöcke, die keine signifikante A.C.-Komponente haben. Bei den delektierten Blöcken wird die zweidimensionale diskrete Kosinustransformation des orthogonalen Transformationsverfahrens bei der Multiplikationsoperation der D.C.-Komponente eines Transformationskoeffizienten eines D.C.-Transformationsverfahrens durch eine spezifizierte Konstante ersetzt, wodurch Bilddaten mit viel höherer Geschwindigkeit als bei den herkömmlichen Verfahren wiederhergestellt werden.
- Gemäß der 4. Ausführungsform dieser Erfindung wird eine Konfiguration realisiert, die eine Matrixoperationsschaltung mit der kleinstmöglichen Anzahl von Addierschaltungen umfaßt, die in einer orthogonalen Bilddatentransformationseinheit verwendet wird, die entweder Bilddaten D.C.-transformiert oder codierte Daten invers orthogonal transfor miert. Deshalb kann die Größe der Matrixoperationsschaltung minimiert werden.
- Gemäß der 5. Ausführungsform dieser Erfindung wird eine Konfiguration realisiert, die eine kleine, dennoch eine hohe Geschwindigkeit aufweisende Matrixoperationsschaltung umfaßt, die in einer orthogonalen Bilddatentransformationseinheit verwendet wird, die entweder Bilddaten D.C.-transformiert oder codierte Daten invers orthogonal transformiert.
- Gemäß den 6. und 7. Aus führungs formen dieser Erfindung wird eine Akkumulationsaddition an Bilddaten, die in einem Bildspeicher gespeichert sind, immer dann vorgenommen, wenn Bilddaten aus geteilten codierten Daten sequentiell wiederhergestellt werden. Deshalb ist es nicht erforderlich, Daten während der Bildwiederherstellung zu speichern, und ein progressiver Bildaufbau kann unter Verwendung eines um wenigstens 1 Bit erweiterten Bildspeichers ausgeführt;
- werden, wodurch Speicherforderungen reduziert werden und ein effektiver progressiver Bildaufbau mit einer kleineren Schaltung ausgeführt wird.
- Gemäß der 8. Ausführungsform dieser Erfindung ist dann, wenn kein signifikanter Koeffizient in einem Block existiert, solch eine Operation wie etwa die Dequantisierung, die inverse DCT und die Bildspeicheraktualisierung nicht erforderlich. Daher kann die Bildwiederherstellung mit einer viel höheren Geschwindigkeit als bei herkömmlichen Verfahren ausgeführt werden.
- Gemäß der 9. Ausführungsform dieser Erfindung kann das Aktualisieren von Bildelementen in einem Block nur durch das Aktualisieren einer Blockadresse vollendet werden, falls keine Nicht-Null-Daten in einem Block existieren, wenn ein geteilter DCT-Koeffizient individuell in Bilddaten decodiert wird und ein progressiver Bildaufbau auf der Basis einer Akkumulationsaddition von ihnen durchgeführt wird. Somit kann ein effektiver progressiver Bildaufbau ausgeführt werden.
Claims (2)
1. Bilddatenprozessor, bei dem ein
Bilddatenwiederherstellungsverfahren zum Wiederherstellen von Bilddaten aus
Codedaten verwendet wird, die durch das Codieren von
quantisierten Koeffizienten generiert wurden, die durch das
Quantisieren, unter Verwendung von entsprechenden
Quantisierungsschwellen, von Transformationskoeffizienten generiert
wurden, die durch das Ausführen von zweidimensionalen
diskreten Kosinustransformationen an den Bilddaten in einer
Vielzahl von Blöcken erhalten wurden, die jeweils eine
Vielzahl von Bildelementen umfassen, die ein Bild bilden,
mit:
einem Decodiermittel zum Ausgeben von quantisierten
Koeffizienten durch das Decodieren von empfangenen
Codedaten;
einem Dequantisierungsmittel zum Wiederherstellen der
Transformationskoeffizienten durch eine Dequantisierung, die
ausgeführt wird, indem Elemente der quantisierten
Koeffizienten, die von dem Decodiermittel ausgegeben wurden, mit den
entsprechenden Quantisierungsschwellen multipliziert werden;
einem Gleichstromtransformationsmittel zum Generieren
von Bilddaten auf der Basis eines resultierenden Produktes,
das durch Multiplizieren des Gleichstromelementes der
Transformationskoeffizienten mit vorbestimmten Konstanten
erhalten wurde;
einem inversen Normalisierungsmittel zum Reproduzieren
von Blöcken der Bilddaten durch das Transformieren der
Transformationskoeffizienten, die von dem
Dequantisierungsmittel ausgegeben wurden;
einem Blockdetektionsmittel zum Detektieren eines
Blocks ohne signifikantes Wechselstromelement auf der Basis
der Transformationskoeffizienten entsprechend den jeweiligen
Blöcken oder der quantisierten Koeffizienten entsprechend
jeweiligen Blöcken, die von dem Dequantisierungsmittel
eingegeben wurden; und
einem Selektionsmittel zum Ausgeben entweder einer
Ausgabe von dem inversen Normalisierungsmittel oder einer
Ausgabe von dem Gleichstromtransformationsmittel, gemäß dem
Resultat, das durch das Blockdetektionsmittel delektiert
wurde.
2. Bilddatenwiederherstellungsverfahren zum
Wiederherstellen von Bilddaten aus Codedaten, die durch das
Codieren von quantisierten Koeffizienten generiert wurden, die
durch das Quantisieren, unter Verwendung von entsprechenden
Quantisierungsschwellen, von Transformationskoeffizienten
generiert wurden, die durch das Ausführen von
zweidimensionaien diskreten Kosinustransformationen an den Bilddaten in
einer Vielzahl von Blöcken erhalten wurden, die jeweils eine
Vielzahl von Bildelementen umfassen, die ein Bild bilden,
mit den folgenden Schritten:
Ausgeben von quantisierten Koeffizienten durch das
Decodieren von empfangenen Codedaten;
Wiederherstellen der Transformationskoeffizienten durch
eine Dequantisierung, die ausgeführt wird, indem Elemente
der quantisierten Koeffizienten mit den entsprechenden
Quantisierungsschwellen multipliziert werden;
Generieren von Bilddaten auf der Basis eines
resultierenden Produktes, das durch Multiplizieren des
Gleichstromelementes der Transformationskoeffizienten mit vorbestimmten
Konstanten erhalten wurde;
Generieren von Bilddaten durch Transformieren der
Transformationskoeffizienten;
Delektieren eines Blocks ohne signifikantes
Wechselstromelement auf der Basis der Transformationskoeffizienten
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6630290 | 1990-03-16 | ||
JP6945190A JP2507654B2 (ja) | 1990-03-19 | 1990-03-19 | 画像デ―タ直交変換処理装置のマトリクス演算回路 |
JP7160190A JP2809798B2 (ja) | 1990-03-20 | 1990-03-20 | 画像データ直交変換装置のマトリクス演算処理方式 |
JP2071602A JPH03270572A (ja) | 1990-03-20 | 1990-03-20 | 画像データ復号化処理方式 |
JP18047190A JP2887842B2 (ja) | 1990-07-10 | 1990-07-10 | 画像データ復元方法および装置 |
JP18047390A JP2887843B2 (ja) | 1990-07-10 | 1990-07-10 | 画像データ復元方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69133175D1 DE69133175D1 (de) | 2003-01-23 |
DE69133175T2 true DE69133175T2 (de) | 2003-04-17 |
Family
ID=27551037
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69132232T Expired - Fee Related DE69132232T2 (de) | 1990-03-16 | 1991-03-15 | System zur Verarbeitung von Bilddaten |
DE69133177T Expired - Fee Related DE69133177T2 (de) | 1990-03-16 | 1991-03-15 | Bilddatenbearbeitungssystem |
DE69133175T Expired - Fee Related DE69133175T2 (de) | 1990-03-16 | 1991-03-15 | Ein Bilddaten-Bearbeitungssystem |
DE1991633401 Expired - Fee Related DE69133401T2 (de) | 1990-03-16 | 1991-03-15 | System zur Verarbeitung von Bilddaten |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69132232T Expired - Fee Related DE69132232T2 (de) | 1990-03-16 | 1991-03-15 | System zur Verarbeitung von Bilddaten |
DE69133177T Expired - Fee Related DE69133177T2 (de) | 1990-03-16 | 1991-03-15 | Bilddatenbearbeitungssystem |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1991633401 Expired - Fee Related DE69133401T2 (de) | 1990-03-16 | 1991-03-15 | System zur Verarbeitung von Bilddaten |
Country Status (5)
Country | Link |
---|---|
US (1) | US5689346A (de) |
EP (6) | EP1250010A1 (de) |
KR (1) | KR940008151B1 (de) |
CA (1) | CA2038478A1 (de) |
DE (4) | DE69132232T2 (de) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5303058A (en) * | 1990-10-22 | 1994-04-12 | Fujitsu Limited | Data processing apparatus for compressing and reconstructing image data |
JPH05268482A (ja) * | 1991-10-15 | 1993-10-15 | Internatl Business Mach Corp <Ibm> | 画像情報を圧縮解除する方法およびその装置 |
JPH06141185A (ja) * | 1992-10-26 | 1994-05-20 | Nec Corp | 画像間引き装置 |
GB2303012B (en) * | 1995-07-01 | 1999-11-03 | Motorola Inc | Image processing circuit and method |
US5987181A (en) | 1995-10-12 | 1999-11-16 | Sharp Kabushiki Kaisha | Coding and decoding apparatus which transmits and receives tool information for constructing decoding scheme |
DE19603808C1 (de) * | 1996-02-02 | 1997-04-17 | Siemens Ag | Anordnung und Verfahren zur Codierung und Decodierung von mit einem blockbasierten Codierungsverfahren codierten Bildern |
CN1145363C (zh) * | 1997-02-08 | 2004-04-07 | 松下电器产业株式会社 | 静画和动画编码的量化矩阵 |
JP4099682B2 (ja) | 1998-09-18 | 2008-06-11 | ソニー株式会社 | 画像処理装置および方法、並びに記録媒体 |
US6272252B1 (en) * | 1998-12-18 | 2001-08-07 | Xerox Corporation | Segmenting image data into blocks and deleting some prior to compression |
CN1397140A (zh) * | 2000-09-27 | 2003-02-12 | 皇家菲利浦电子有限公司 | 数据的解码 |
US6420979B1 (en) * | 2000-11-15 | 2002-07-16 | Nec Corporation | Method for compressing and decompressing image signals and apparatus for compressing and decompressing image signals |
US7366236B1 (en) * | 2001-06-04 | 2008-04-29 | Cisco Sytems Canada Co. | Source adaptive system and method for 2D iDCT |
US7656949B1 (en) | 2001-06-27 | 2010-02-02 | Cisco Technology, Inc. | Methods and apparatus for performing efficient inverse transform operations |
JP4127537B2 (ja) * | 2004-02-04 | 2008-07-30 | 富士フイルム株式会社 | 画像処理方法および装置並びにプログラム |
US20050276500A1 (en) * | 2004-06-15 | 2005-12-15 | Canon Kabushiki Kaisha | Image encoding apparatus, and image processing apparatus and its control method |
US7499592B2 (en) * | 2004-06-15 | 2009-03-03 | Canon Kabushiki Kaisha | Image decoding apparatus and its control method |
JP4725127B2 (ja) * | 2005-02-16 | 2011-07-13 | ソニー株式会社 | 復号装置および方法、記録媒体、並びにプログラム |
JP4769605B2 (ja) * | 2006-03-17 | 2011-09-07 | 富士通株式会社 | 動画像符号装置及び方法 |
US7783956B2 (en) * | 2006-07-12 | 2010-08-24 | Cronera Systems Incorporated | Data recorder |
WO2011042898A1 (en) * | 2009-10-05 | 2011-04-14 | I.C.V.T Ltd. | Apparatus and methods for recompression of digital images |
JP6210368B2 (ja) * | 2012-09-18 | 2017-10-11 | サン パテント トラスト | 画像復号方法および画像復号装置 |
JP6547275B2 (ja) * | 2014-10-29 | 2019-07-24 | 株式会社リコー | 情報処理システム、情報処理装置、情報処理方法、及びプログラム |
US11222092B2 (en) * | 2019-07-16 | 2022-01-11 | Facebook Technologies, Llc | Optimization for deconvolution |
CN111905396B (zh) * | 2020-06-13 | 2021-11-19 | 宁波大学 | 一种基于在线采样数据驱动的精馏过程实时监测方法 |
KR20220090887A (ko) * | 2020-12-23 | 2022-06-30 | 삼성전자주식회사 | 이미지 처리 장치 및 이미지 처리 장치의 동작 방법 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0228028A1 (de) * | 1985-12-20 | 1987-07-08 | Siemens Aktiengesellschaft | Schaltungsanordnung zur Transformationscodierung |
US4704628A (en) * | 1986-07-16 | 1987-11-03 | Compression Labs, Inc. | Combined intraframe and interframe transform coding system |
FR2625638B1 (fr) * | 1987-12-30 | 1994-06-17 | Thomson Grand Public | Procede de synchronisation pour la transmission, sur un canal asynchrone, d'une suite d'images codees au moyen d'un code a longueur variable, et dispositif pour la mise en oeuvre de ce procede |
EP0376683A2 (de) * | 1988-12-27 | 1990-07-04 | Kabushiki Kaisha Toshiba | Diskrete Cosinustransformationsvorrichtung |
JPH0832039B2 (ja) * | 1989-08-19 | 1996-03-27 | 日本ビクター株式会社 | 可変長符号化方法及びその装置 |
US5142380A (en) * | 1989-10-23 | 1992-08-25 | Ricoh Company, Ltd. | Image data processing apparatus |
US5107345A (en) * | 1990-02-27 | 1992-04-21 | Qualcomm Incorporated | Adaptive block size image compression method and system |
EP0469855B1 (de) * | 1990-07-31 | 1999-12-01 | Fujitsu Limited | Verfahren und Gerät zur Bilddatenverarbeitung |
US5303058A (en) * | 1990-10-22 | 1994-04-12 | Fujitsu Limited | Data processing apparatus for compressing and reconstructing image data |
-
1991
- 1991-03-15 EP EP20020014939 patent/EP1250010A1/de not_active Withdrawn
- 1991-03-15 EP EP00105960A patent/EP1022911B1/de not_active Expired - Lifetime
- 1991-03-15 EP EP96111838A patent/EP0740472B1/de not_active Expired - Lifetime
- 1991-03-15 DE DE69132232T patent/DE69132232T2/de not_active Expired - Fee Related
- 1991-03-15 EP EP98114620A patent/EP0880285B1/de not_active Expired - Lifetime
- 1991-03-15 DE DE69133177T patent/DE69133177T2/de not_active Expired - Fee Related
- 1991-03-15 DE DE69133175T patent/DE69133175T2/de not_active Expired - Fee Related
- 1991-03-15 EP EP03012233A patent/EP1343329A1/de not_active Withdrawn
- 1991-03-15 DE DE1991633401 patent/DE69133401T2/de not_active Expired - Fee Related
- 1991-03-15 EP EP91302272A patent/EP0447269B1/de not_active Expired - Lifetime
- 1991-03-16 KR KR1019910004212A patent/KR940008151B1/ko not_active IP Right Cessation
- 1991-03-18 CA CA002038478A patent/CA2038478A1/en not_active Abandoned
-
1994
- 1994-11-18 US US08/343,973 patent/US5689346A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE69133177D1 (de) | 2003-01-23 |
DE69133401D1 (de) | 2004-07-29 |
US5689346A (en) | 1997-11-18 |
EP0740472A3 (de) | 1997-02-12 |
DE69132232T2 (de) | 2001-03-15 |
EP0880285B1 (de) | 2002-12-11 |
DE69133401T2 (de) | 2005-01-13 |
DE69133177T2 (de) | 2003-04-17 |
CA2038478A1 (en) | 1991-09-17 |
KR940008151B1 (ko) | 1994-09-03 |
DE69133175D1 (de) | 2003-01-23 |
DE69132232D1 (de) | 2000-07-06 |
EP1343329A1 (de) | 2003-09-10 |
EP1250010A1 (de) | 2002-10-16 |
EP0447269A2 (de) | 1991-09-18 |
EP0447269A3 (en) | 1993-05-26 |
EP0447269B1 (de) | 2000-05-31 |
EP0880285A1 (de) | 1998-11-25 |
EP0740472A2 (de) | 1996-10-30 |
EP1022911A1 (de) | 2000-07-26 |
EP1022911B1 (de) | 2004-06-23 |
EP0740472B1 (de) | 2002-12-11 |
KR910017880A (ko) | 1991-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69133175T2 (de) | Ein Bilddaten-Bearbeitungssystem | |
DE3789116T2 (de) | Prozessor zur zweidimensionalen diskreten cosinustransformation. | |
DE3750791T2 (de) | Sehr schnelle Transformationsvorrichtung. | |
DE69131808T2 (de) | Verfahren und Gerät zur Bilddatenverarbeitung | |
DE4133460C2 (de) | Verfahren zum Verdichten von Bildern | |
DE69416665T2 (de) | Quantisierungs- und Entquantisierungsschaltung mit reduzierter Grösse | |
DE69226095T2 (de) | Bildkodier- und Dekodiersystem unter Verwendung einer Orthogonaltransformation und Bitzuordnungsverfahren | |
DE69228841T2 (de) | Vorrichtung zum Kodieren von Bildern | |
DE69737514T2 (de) | System und verfahren zum bearbeiten wellenartiger und umgekehrten wellenartigen transformationen von digitalen daten | |
DE69128006T2 (de) | Vorrichtung zur orthogonalen Transformationskodierung | |
DE69736329T2 (de) | Verschachtelte verteilte kodierung von spärlich bestückten datensätzen | |
DE69628760T2 (de) | Speicherung und wiedergewinnung von grossen digitalen bildern | |
DE69223560T2 (de) | Einrichtung zur Verminderung von Quantisierungsstörungen in einem Zwischenbild-Hybrid-Kodierungssystem mit Bewegungskompensation | |
DE69425847T2 (de) | Rechner für die inverse diskrete Cosinus-Transformation | |
DE69031674T2 (de) | Verfahren und Schaltungsanordnung zur zweidimensionalen diskreten Transformation | |
DE69421286T2 (de) | Verfahren zur durchführung von schnellen diskreten kosinustransformationen und schnellen inversen diskreten kosinustransformationen unter verwendung von nachschlagetabellen | |
DE102018203709A1 (de) | Verfahren und Vorrichtung zum speichereffizienten Betreiben eines neuronalen Netzes | |
DE69416662T2 (de) | Bewegtbildkodierer | |
DE4038240A1 (de) | Prozessor zum durchfuehren einer orthogonaltransformation | |
DE69331174T2 (de) | Bildverarbeitungsvorrichtung | |
WO2017162835A1 (de) | Datenkompression mittels adaptiven unterabtastens | |
DE69026634T2 (de) | Verfahren und System zum Schreiben und Lesen von kodierten Daten | |
DE69802269T2 (de) | Vorrichtung und verfahren zum vergleichen von pixelblöcken | |
DE69700865T2 (de) | Blocktransformationskodierer für willkürlich geformte Bildsegmente | |
DE69835264T2 (de) | Verfahren und Vorrichtung zur Auswahl einer Quantisierungstabelle für digitale Bildkodierung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |