DE69329962T2 - System und Verfahren für die diskrete Cosinus-Transformation und für die inverse diskrete Cosinus-Transformation mit einfacher Struktur und mit hoher Betriebsgeschwindigkeit - Google Patents

System und Verfahren für die diskrete Cosinus-Transformation und für die inverse diskrete Cosinus-Transformation mit einfacher Struktur und mit hoher Betriebsgeschwindigkeit

Info

Publication number
DE69329962T2
DE69329962T2 DE69329962T DE69329962T DE69329962T2 DE 69329962 T2 DE69329962 T2 DE 69329962T2 DE 69329962 T DE69329962 T DE 69329962T DE 69329962 T DE69329962 T DE 69329962T DE 69329962 T2 DE69329962 T2 DE 69329962T2
Authority
DE
Germany
Prior art keywords
data
matrix
time unit
subtracting
sub1
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
Application number
DE69329962T
Other languages
English (en)
Other versions
DE69329962D1 (de
Inventor
Eiji Iwata
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of DE69329962D1 publication Critical patent/DE69329962D1/de
Application granted granted Critical
Publication of DE69329962T2 publication Critical patent/DE69329962T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/145Square transforms, e.g. Hadamard, Walsh, Haar, Hough, Slant transforms

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Discrete Mathematics (AREA)
  • Complex Calculations (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Thermal Transfer Or Thermal Recording In General (AREA)

Description

  • Die Erfindung betrifft ein System für die diskrete Cosinus-Transformation (DCT-System) sowie ein System für die inverse diskrete Cosinus-Transformation (IDCT-System), wie sie für die digitale Bildverarbeitung usw. verwendet werden.
  • Die diskrete Cosinus-Transformation (DCT) ist ein Typ der orthogonalen Transformation, mit welcher Daten aus einer realen Domäne bzw. einem realen Raum in eine Frequenzdomäne bzw. einen Frequenzraum transformiert werden. Die inverse diskrete Cosinus-Transformation (IDCT) ist ebenfalls ein Typ der orthogonalen Transformation, mit welcher die zur DCT inverse Transformation ausgeführt wird, d. h. Daten aus einer Frequenzdomäne in Daten einer realen Domäne transformiert werden. Die DCT und die IDCT werden z. B. für die Bildverarbeitung usw. verwendet.
  • Eine DCT mit 8 Zeilen · 8 Spalten und eine IDCT mit 8 Zeilen · 8 Spalten läßt sich durch die folgenden Basis-(Standard)-Gleichungen (1) und (2) ausdrücken:
  • (1) DCT: [C] = 1/2 [P&sub0;] [X]
  • (2) IDCT: [X] = 1/2 [P&sub0;t] [C]
  • Hierin bezeichnet [X] die Daten einer Originalmatrix mit 8 Zeilen · 8 Spalten in einer realen Domäne. [C] bezeichnet die Daten einer Matrix mit 8 Zeilen · 8 Spalten in einer Frequenzdomäne. [P&sub0;] bezeichnet eine Matrix mit 8 Zeilen · 8 Spalten, und [P&sub0;t] bezeichnet die Transpositionsmatrix der Matrix [P]. Im Folgenden bezeichnet das auf der linken oberen Seite von Matrizen angebrachte Suffix t die entsprechende Transpositionsmatrix.
  • Die Matrix [P&sub0;] ist durch die folgende Gleichung (3) definiert.
  • Die Koeffizienten (Faktoren) A, B, C, D, E, F und G in der Matrix [P] sind in der folgenden Tabelle 1 dargestellt.
  • Tabelle 1
  • A = cos(π/4)
  • B = cos(π/8)
  • C = cos(3π/8)
  • D = cos(π/16)
  • E = cos(3π/16)
  • F = cos(5π/16)
  • G = cos(7π/16)
  • Wenn die Komponenten der Matrix [C] in einer Frequenzdomäne durch jeweils 8 Multiplikationen gewonnen werden, erfordert die Berechnung der 8 · 8-DCT nach der obigen Gleichung (1) insgesamt 8 · 64 = 512 Multiplikationen, um alle 64 Komponenten der Matrix [C] zu gewinnen.
  • Um die Komponenten der originalen Daten [X] in einer realen Domäne mit jeweils 8 Multiplikationen zu gewinnen, erfordert die Berechnung der 8 · 8-IDCT ebenfalls insgesamt 8 · 64 = 512 Multiplikationen, um alle 64 Komponenten der Daten [X] zu gewinnen.
  • Es wurden Schaltungen vorgeschlagen, mit denen die Zahl der Multiplikationen bei der Berechnung der 8 · 8-DCT und der 8 · 8-IDCT reduziert und die Berechnung der 8 · 8-DCT und der 8 · 8-IDCT mit hoher Geschwindigkeit ausgeführt werden kann.
  • So werden z. B. in einer 8 · 8-DCT-Schaltung und einer 8 · 8-IDCT-Schaltung, welche in IEEE JOURNAL OF SOLID-STATE CIRCUITS, Band 27, Nr. 4, April 1992, Seiten 492 bis 498 dargestellt sind, die acht Eingangssignale einer Vorverarbeitung (Addition und Subtraktion) unterzogen. Dann werden acht Recheneinheiten zur Berechnung des inneren Produkts vierter Ordnung benutzt, um die acht Ausgangssignale zu gewinnen. Diese Operation wird acht mal wiederholt, um die 64 Ausgangsgrößen zu gewinnen.
  • Ein Blick auf das Element c&sub0; der Matrix [C] in der Gleichung (1) zeigt z. B., daß aus der Gleichung zur Gewinnung von c&sub0; die folgende Gleichung (4) wird. Hier sind x&sub0; bis x&sub7; Elemente der Matrix [X].
  • (4) c&sub0; = A(x&sub0; + x&sub7;) + A(x&sub1; + x&sub6;) + A(x&sub2; + x&sub5;) + A(x&sub3; + x&sub4;)
  • In der Gleichung (4) sind vier Multiplikationen erforderlich, um c&sub0; zu gewinnen, d. h. Multiplikationen von A mit (x&sub0; + x&sub7;), von A mit (x&sub1; + x&sub6;), von A mit (x&sub2; + x&sub5;) und von A mit (x&sub3; + x&sub4;).
  • Deshalb ist die Zahl der Multiplikationen, die zur Gewinnung aller 64 Elemente der Matrix [C] benötigt werden, gleich 4 · 64 = 256.
  • Bei der inversen diskreten Cosinus-Transformation nach der Gleichung (2) werden 256 Multiplikationen benötigt, um alle 64 Elemente der Matrix [X] zu gewinnen.
  • Bei der oben erwähnten herkömmlichen 8 · 8-DCT und der 8 · 8-IDCT ist die Zahl der Multiplikationen zwar reduziert, es sind jedoch immer noch 256 Multiplikationen erforderlich, was mit dem Nachteil einer langen Rechenzeit verbunden ist.
  • Wenn eine derart große Zahl von Multiplikationen von Schaltungen durchgeführt wird, wird die Zahl der Multiplizierschaltungen, die eine kompliziertere Schaltungsstruktur haben als Addierschaltungen oder Subtrahierschaltungen, größer, was mit dem Nachteil verbunden ist, daß die Schaltungsstrukturen der 8 · 8-DCT-Schaltung und der 8 · 8-IDCT-Schaltung extrem kompliziert werden.
  • Wenn eine große Zahl von Berechnungen durchgeführt wird, bei denen irrationale Zahlen beteiligt sind, akkumuliert sich der durch die Approximation der irrationalen Zahlen verursachte Fehler, was mit dem weiteren Nachteil verbunden ist, daß die Genauigkeit des Rechenergebnisses beeinträchtigt wird.
  • Es ist ein Ziel der vorliegenden Erfindung, ein neuartiges Verfahren zur diskreten Cosinus- Transformation mit 8 Zeilen · 8 Spalten (8 · 8-DCT-Verfahren) zur Verfügung zu stellen, das eine schnelle 8 · 8-DCT ermöglicht, ohne daß die Genauigkeit beeinträchtigt wird.
  • Es ist ein weiteres Ziel der Erfindung, ein 8 · 8-DCT-System zur Verfügung zu stellen, dessen Schaltungsstruktur durch eine Minimierung der Zahl der Multiplikationen vereinfacht wird und das mit hoher Geschwindigkeit betrieben werden kann, ohne daß die Genauigkeit beeinträchtigt wird.
  • Es ist ein weiteres Ziel der Erfindung, ein neuartiges Verfahren zur inversen diskreten Cosinus-Transformation mit 8 Zeilen · 8 Spalten (8 · 8-IDCT-Verfahren) zur Verfügung zu stellen, das eine schnelle 8 · 8-IDCT ermöglicht, ohne daß die Genauigkeit beeinträchtigt wird.
  • Es ist ein weiteres Ziel der Erfindung, ein 8 · 8-IDCT-System zur Verfügung zu stellen, dessen Schaltungsstruktur durch eine Minimierung der Zahl der Multiplikationen vereinfacht wird und das mit hoher Geschwindigkeit betrieben werden kann, ohne daß die Genauigkeit beeinträchtigt wird.
  • Es ist ebenso ein Ziel der Erfindung, andere neuartige Verfahren zur diskreten Cosinus-Transformation und zur inversen diskreten Cosinus-Transformation als das 8 · 8-DCT-Verfahren bzw. das 8 · 8-IDCT-Verfahren zur Verfügung zu stellen, die diskrete Cosinus-Transformationen und inverse diskrete Cosinus-Transformationen mit hoher Geschwindigkeit und ohne Beeinträchtigung der Genauigkeit ermöglichen.
  • Es ist ein weiteres Ziel der Erfindung neuartige DCT-Systeme, die von den neuartigen DCT- Verfahren Gebrauch machen, und neuartige IDCT-Systeme, die von den neuartigen IDCT- Verfahren Gebrauch machen, zur Verfügung zu stellen, die eine einfache Schaltungsstruktur besitzen, mit hoher Geschwindigkeit und ohne Beeinträchtigung der Genauigkeit arbeiten. Das Prinzip der Erfindung wird anhand einer diskreten 8 · 8-Cosinus-Transformation beschrieben.
  • Die Gleichung (4) zur Gewinnung der Komponentendaten c&sub0; in der Gleichung (1) für die oben erwähnte 8 · 8-DCT läßt sich in die folgende Gleichung (5) umwandeln:
  • (5) c&sub0; = A(x&sub0; + x&sub7; + x&sub1; + x&sub6; + x&sub2; + x&sub5; + x&sub3; + x&sub4;)
  • Wie aus Gleichung (5) erkennbar ist, lassen sich die Komponentendaten c&sub0; theoretisch durch eine einzige Multiplikation bestimmen, indem die irrationale Zahl A mit dem Ergebnis der Addition (x&sub0; + x&sub1; + x&sub2; + x&sub3; + x&sub4; + x&sub5; + x&sub6; + x&sub7;) multipliziert wird. Bei dieser Berechnungsmethode benötigt man jedoch acht Multiplizierer, um die Komponentendaten c&sub0; bis c&sub7; zu berechnen, so daß der Schaltungsaufwand schließlich größer wird.
  • Deshalb wird ein Verfahren betrachtet, das weniger Multiplikationen und damit eine einfachere Schaltungsstruktur erfordert.
  • Die Matrix [P] in der Gleichung (1) und die Matrix [Pt] in der Gleichung (2) lassen sich in kleinere Matrizen zerlegen (Matrix-Faktorenzerlegung: Auflösung), wobei die Gleichungen (1) und (2) können in Form der folgenden Gleichungen (6) bzw. (7) neu geschrieben werden können.
  • (6) DCT: [C] = 1/2 [R] [Q] [X]
  • (7) IDCT: [X] = 1/2 [Qt] [Rt] [C]
  • Die Matrix [R] in der Gleichung (6) wird durch die folgende Gleichung (8) ausgedrückt:
  • Wie die Gleichung (8) zeigt, ist die Matrix [R] eine 8 · 8-Matrix, die die in der Tabelle 1 angegebenen irrationalen Zahlen A, B, C, D, E, F und G enthält, die durch die Cosinusfunktionen der 8 · 8-DCT definiert sind, sowie die entsprechenden negativen irrationalen Zahlen -B, -D, - G und "0".
  • Die Matrix [Q] in der Gleichung (6) wird durch die folgende Gleichung (9) ausgedrückt:
  • Wie die Gleichung (9) zeigt, ist die Matrix [Q] eine Konstantenmatrix mit den Submatrizen [Q1], [Q2], [Q3] und [Q4], die jeweils aus 4 Zeilen · 4 Spalten bestehen und die Faktoren 0, 1 und -1 haben. D. h., [01] ist eine 4 · 4-Konstantenmatrix, bestehend aus [Q2] besteht aus [Q3] besteht aus [Q4] besteht aus
  • Die Transpositionsmatrix [Rt] der Matrix [R] und die Transpositionsmatrix [Qt] der Matrix 101 lassen sich durch die folgenden Gleichungen (10) bzw. (11) ausdrücken.
  • Die Berechnung einer aus den Faktoren 0, 1 und -1 bestehenden Matrix kann durchgeführt werden durch Addition für die Faktoren 1, Subtraktion für die Faktoren -1 und keine Operation für die Faktoren 0, so daß die Verarbeitung mittels einer Addier- und einer Subtrahierschaltung möglich ist und hier keine Multiplikationsschaltung benötigt wird. Bei der Berechnung der obigen Gleichung (6) genügt eine einzige Multiplikation für die Matrix [R], die irrationale Zahlen enthält.
  • Entsprechend ist bei der Gleichung (7) nur die Multiplikation und Addition für die Transpositionsmatrix [Rt] erforderlich.
  • Das 8 · 8-DCT-System gemäß der Erfindung besteht aus einer Addier- und Subtrahiereinrichtung für die der Berechnung des inneren Produkts aus der ersten Konstantenmatrix [Q] und den Eingangsdaten [X] der Matrixform entsprechende Addition und Subtraktion, und einer Multiplikations- und Addiereinrichtung für die der Berechnung des inneren Produkts aus der zweiten Matrix [R] und den Ergebnissen der Berechnung in der Addier- und Subtrahierschaltung entsprechende Multiplikation und Addition.
  • Das 8 · 8-IDCT-System besteht ebenfalls aus einer Multiplikations- und Addiereinrichtung für die der Berechnung des inneren Produkts aus der ersten Matrix [Rt], d. h. der Transpositionsmatrix der Matrix [R], und den Eingangsdaten [C] der Matrixform entsprechenden Multiplikation und Addition sowie einer Addier- und Subtrahiereinrichtung für die der Berechnung des inneren Produkts aus der zweiten Konstantenmatrix [Qt], d. h. der Transpositionsmatrix der Konstantenmatrix [Q], und dem Ergebnis der Berechnung in der Multiplikations- und Addierschaltung entsprechende Addition und Subtraktion.
  • Auch bei Systemen, die andere diskrete Cosinus-Transformationen und andere inverse diskrete Cosinus-Transformationen ausführen als die oben erwähnte diskrete 8 · 8-Cosinus- Transformation bzw. die inverse diskrete 8 · 8-Cosinus-Transformation, z. B. eine 4 · 4-DCT und eine 4 · 4-IDCT oder eine 4 · 8-DCT und eine 4 · 8-IDCT, wird die Zahl der Multiplikationen in einer Matrix mit irrationalen Zahlen reduziert, indem die Transformationsmatrizen der diskreten Cosinus-Transformation und der inversen diskreten Cosinus-Transformation in Konstantenmatrizen mit Faktoren +1, -1 und 0 und/oder Faktoren 1 und 0 und eine durch die diskrete Cosinus-Transformation definierte Matrix mit irrationalen Zahlen zerlegt und diese dann mit Hilfe der Addier- und Subtrahiereinrichtung für die Konstantenmatrizen und die Multiplizier- und Addiereinrichtung für die Matrix mit irrationalen Zahlen berechnet werden.
  • Das System zur diskreten 8 · 8-Cosinus-Transformation gemäß der Erfindung führt die Berechnung der Gleichung (6) in den folgenden zwei Schritten durch:
  • Schritt 1: [S] [Q] [X]
  • Schritt 2: [C] = 1/2 [R] [S]
  • Bei diesen Operationen wird nur in dem Schritt 2 eine Multiplikation benötigt, so daß in dem System zur diskreten 8 · 8-Cosinus-Transformation gemäß der Erfindung die Berechnung in dem Schritt 1 mit einer Addier- und Subtrahiereinrichtung und die Berechnung in dem Schritt 2 mit einer Multiplizier- und Addiereinrichtung ausgeführt werden kann. Es ist zu beachten, daß die Berechnung von 1/2 durch eine 1-Bit-Verschiebung realisiert wird, so daß eine Divisions- oder Multiplikationsrechnung nicht erforderlich ist.
  • Auch das System zur inversen diskreten 8 · 8-Cosinus-Transformation gemäß der Erfindung führt die Berechnung der Gleichung (7) in den folgenden zwei Schritte durch:
  • Schritt 1: [S] [Rt] [X]
  • Schritt 2: [C] = 1/2 [Qt] [S]
  • Bei diesen Operationen wird nur in dem Schritt 1 eine Multiplikation benötigt, so daß in dem System zur inversen diskreten 8 · 8-Cosinus-Transformation gemäß der Erfindung die Berechnung in dem Schritt 1 von einer Multiplizier- und Addiereinrichtung und die Berechnung in dem Schritt 2 von einer Addier- und Subtrahiereinrichtung durchgeführt wird.
  • Auch bei Systemen, die andere diskrete Cosinus-Transformationen ausführen als die beschriebene diskrete 8 · 8-Cosinus-Transformation, wird die Transformationsmatrix der diskreten Cosinus-Transformation zerlegt in wenigstens eine Konstantenmatrix mit den Faktoren +1, -1 und 0 und/oder die Faktoren +1 und 0 und eine Matrix, die die durch die diskrete Cosinus-Transformation definierten irrationalen Zahlen enthält, wobei in dem Schritt 1 eine Addition und Subtraktion durchgeführt wird, die der Berechnung des inneren Produkts der Daten der Matrixform mit der Konstantenmatrix mit den Faktoren +1, -1 und 0 und/oder den Faktoren +1 und 0 entspricht, während in dem Schritt 2 eine Multiplikation und Addition durchgeführt wird, die der Berechnung des inneren Produkts der Ergebnisse der Addition und Subtraktion in dem Schritt 1 mit der Matrix entspricht, die die durch die diskrete Cosinus-Transformation definierten irrationalen Zahlen enthält.
  • Auch bei Systemen, die andere inverse diskrete Cosinus-Transformationen ausführen als die oben beschriebene inverse diskrete 8 · 8-Cosinus-Transformation, wird die Transformationsmatrix der inversen diskreten Cosinus-Transformation zerlegt in wenigstens eine Konstantenmatrix mit den Faktoren +1, -1 und 0 und/oder den Faktoren +1 und 0 und eine Matrix, die die durch die diskrete Cosinus-Transformation definierten irrationalen Zahlen enthält, wobei in dem Schritt 1 eine Multiplikation und Addition durchgeführt wird, die der Berechnung des inneren Produkts des Ergebnisses der Daten der Matrixform mit der Matrix entspricht, die die durch die diskrete Cosinus-Transformation definierten irrationalen Zahlen enthält, während in dem Schritt 2 eine Addition und Subtraktion durchgeführt wird, die der Berechnung des inneren Produkts des Ergebnisses der Multiplikation und Addition in dem Schritt 1 mit der Konstantenmatrix mit den Faktoren +1, -1 und 0 und/oder den Faktoren +1 und 0 entspricht.
  • Anhand der anliegenden Zeichnungen werden Ausführungsbeispiele der Erfindung beschrieben, die die obigen Ziele und Merkmale sowie weitere Ziele und Merkmale weiter verdeutlichen.
  • Fig. 1 zeigt die Schaltungsstruktur eines 8 · 8-DCT-Systems gemäß der Erfindung,
  • Fig. 2 zeigt die Grundstruktur einer Addier- und Subtrahierschaltung eines 8 · 8-DCT-Systems gemäß der Erfindung,
  • Fig. 3 zeigt das Konzept der Signalverarbeitung bei der Berechnung des Schritts 1 mit Hilfe der Addier- und Subtrahierschaltung eines 8 · 8-DCT-Systems gemäß der Erfindung,
  • Fig. 4 zeigt den zeitlichen Ablauf der Signalverarbeitung in der Addier- und Subtrahierschaltung,
  • Fig. 5 zeigt die Schaltungsstruktur der Multiplizier- und Addierschaltung eines 8 · 8-DCT- Systems gemäß der Erfindung,
  • Fig. 6 zeigt eine Darstellung zur Erläuterung des zeitlichen Ablaufs der Signalverarbeitung bei der Berechnung nach dem Schritt 2 mit Hilfe der Multiplizier- und Addierschaltung eines 8 · 8-DCT-Systems gemäß der Erfindung,
  • Fig. 7 zeigt die Schaltungsstruktur des 8 · 8-IDCT-Systems gemäß der Erfindung,
  • Fig. 8 zeigt eine Ansicht zur Erläuterung des zeitlichen Ablaufs der Signalverarbeitung bei der Berechnung des Schritts 1 (oben?) mit Hilfe der Multiplizier- und Addierschaltung eines 8 · 8-DCT-Systems (IDCT-System?) gemäß der Erfindung,
  • Fig. 9 zeigt eine Graphik des Signalflusses bei der Berechnung des Schritts 2 in einem 8 · 8-IDCT-System gemäß der Erfindung,
  • Fig. 10 zeigt das Konzept der Signalverarbeitung bei der Berechnung des Schritts 2 mit Hilfe der Addier- und Subtrahierschaltung eines 8 · 8-IDCT-Systems gemäß der Erfindung.
  • Als erstes Ausführungsbeispiel der Erfindung werden ein System zur diskreten 8 · 8-Cosinus- Transformation (8 · 8-DCT-System) sowie ein System zur inversen diskreten 8 · 8-Cosinus- Transformation (8 · 8-IDCT-System) beschrieben, die im Zeitmultiplex arbeitet.
  • Fig. 1 zeigt eine Ansicht der Struktur eines 8 · 8-DCT-Systems. Das 8 · 8-DCT-System von Fig. 1 enthält ein Eingangsregister 1, eine Addier- und Subtrahierschaltung 2, eine Zwischenwert- Halteschaltung 3, eine Multiplizier- und Addierschaltung 4 und ein Ausgangsregister 5. Dieses 8 · 8-DCT-System besitzt eine Zweistufen-Pipeline-Struktur mit einer Addier- und Subtrahierschaltung 2 als erster Stufe und einer Multiplizier- und Addierschaltung 4 als zweiter Stufe, die über die Zwischenwert-Halteschaltung 3 verbunden sind.
  • Das in Fig. 1 dargestellte 8 · 8-DCT-System führt die durch die Gleichung (6) definierte Berechnung in den folgenden zwei Schritten aus, wobei von der Addier- und Subtrahierschaltung und der Multiplizier- und Addierschaltung jeweils eine benutzt wird:
  • Schritt 1: [S] = [Q] [X]
  • Schritt 2: [C] 1/2 · [R] [S]
  • Die Matrizen [Q] und [R] sind in den Gleichungen (9) bzw. (8) definiert. Die Matrix [X] ist ein Vektor, bestehend aus acht Elementen in jeder Spalte der 8 · 8 originalen Daten in einer realen Domäne. Die Matrix [C] ist der in die Frequenzdomäne transformierte Vektor und besteht aus acht Elementen.
  • Das Eingangsregister 1 nimmt in jedem Taktzyklus seriell ein Wort der originalen Daten [X] auf. Die originalen Daten [X] bestehen aus acht Elementen, so daß acht Taktzyklen erforderlich sind, um alle Daten der originalen Daten [X] in das Eingangsregister 1 aufzunehmen.
  • Die Addier- und Subtrahierschaltung 2 führt die Berechnung nach Schritt 1 aus.
  • In der Zwischenwert-Halteschaltung 3 werden die Rechenergebnisse der Addier- und Subtrahierschaltung 2 temporär gehalten.
  • Die Multiplizier- und Addierschaltung 4 führt die Berechnung nach Schritt 2 aus.
  • Das Ausgangsregister 5 gibt in jedem Taktzyklus seriell ein Wort der Daten [C] in der Frequenzdomäne aus.
  • Zur Vereinfachung wird im Folgenden angenommen, daß die Addition und Subtraktion zu einer Zeit durchgeführt und die Multiplikation und Addition in einem Taktzyklus beendet werden. Die Addier- und Subtrahierschaltung 2 und die Multiplizier- und Addierschaltung 4 vollführen die vorbestimmte Addition und Subtraktion bzw. die Multiplikation und Addition jeweils in acht Taktzyklen.
  • Erläuterung der Berechnung in dem Schritt 7
  • In dem Schritt 1 wird eine Berechnung durchgeführt, bei der die in der Gleichung (9) dargestellte Konstantenmatrix [Q], die die Koeffizienten 1, -1 und 0 hat, mit den originalen Daten [X] multipliziert wird.
  • Die Vektoren [5] und [X] in dem Berechnungsschritt 1
  • [S] [Q] [X]
  • sind in den folgenden Gleichungen (12) bzw. (13) dargestellt:
  • Die folgende Gleichung (14) zeigt die Ergebnisse der Berechnung in dem Schritt 1:
  • (14) s&sub0; = x&sub0; + x&sub1; + x&sub2; + x&sub3; + x&sub4; + x&sub5; + x&sub6; + x&sub7;
  • s&sub1; = x&sub0; - x&sub1; - x&sub2; + x&sub3; + x&sub4; - x&sub5; - x&sub6; + x&sub7;
  • s&sub2; = x&sub1; - X&sub2; - x&sub5; + x&sub6;
  • s&sub3; = x&sub0; - x&sub3; - x&sub4; + x&sub7;
  • s&sub4; = x&sub3; - x&sub4;
  • s&sub5; = x&sub2; - x&sub5;
  • s&sub6; = x&sub1; - x&sub6;
  • s&sub7; = x&sub0; - x&sub7;
  • Die Berechnung nach Schritt 1 wird mit Hilfe der Addier- und Subtrahierschaltung 2 durchgeführt.
  • Fig. 2 zeigt die Grundstruktur der Addier- und Subtrahierschaltung 2, während Fig. 3 das Konzept der Signalverarbeitung in der Addier- und Subtrahierschaltung zeigt, nach welchem die Verarbeitung in der Basisschaltung von Fig. 2 erfolgt. Fig. 4 zeigt eine Ansicht zur Erläuterung des zeitlichen Ablaufs bei der Signalverarbeitung in der Addier- und Subtrahierschaltung 2, die in Fig. 3 dargestellt ist.
  • Die in Fig. 2 dargestellte Basisschaltung der Addier- und Subtrahierschaltung 2 besteht aus einem Addierer 11 und einem Subtrahierer 12, die zusammen ein Paar bilden. Die Eingangsdaten a und b werden dem Addierer 11 und dem Subtrahierer 12 zugeführt. Der Addierer 11 gibt das Ergebnis der Addition von a und b, d. h. den Wert (a + b), aus, während der Subtrahierer 12 das Ergebnis der Subtraktion von a und b, d. h. den Wert (a - b), ausgibt.
  • Bei der Verarbeitung nach dem in Fig. 3 dargestellten Konzept wird die Addier- und Subtrahierschaltung 2 sieben mal benutzt, um die acht Elemente (so bis s&sub7;) des Vektors [S] zu gewinnen. Wenn die Berechnung von einer einzigen Addier- und Subtrahierschaltung durchgeführt wird, werden die acht Elemente des Vektors [S], wie in Fig. 4 dargestellt, während sieben Taktzyklen in der Zwischenwert-Halteschaltung 3 gehalten.
  • D. h., die Addier- und Subtrahierschaltung 2 führt folgende Operationen aus:
  • (1) Sie benutzt das Paar der ersten Stufe, d. h. den Addierer 11a und den Subtrahierer 12a, um in dem Taktzyklus 0 die Addition und Subtraktion von x&sub0; und x&sub7; durchzuführen. Der Addierer 11a liefert das Ergebnis der Addition (x&sub0; + x&sub7;), während der Subtrahierer 12a das Ergebnis der Subtraktion (x&sub0; - x&sub7;) liefert.
  • In diesem Zeitpunkt wird die Ausgangsgröße (xo- x&sub7;) des Subtrahierers 12 zu 37.
  • (2) In dem Taktzyklus 1 benutzt die Schaltung das Paar der zweiten Stufe, d. h. den Addierer 11b und den Subtrahierer 12b, um die Addition und Subtraktion von x&sub1; und x&sub6; durchzuführen. Der Addierer 11b liefert das Addierergebnis (x&sub1; + x&sub6;), während der Subtrahierer 12b das Ergebnis der Subtraktion (x&sub1; - x&sub6;) liefert.
  • In diesem Zeitpunkt wird die Ausgangsgröße (x&sub1; - x&sub6;) des Subtrahierers 12b zu s&sub6;.
  • (3) In dem Taktzyklus 2 benutzt die Schaltung das Paar der dritten Stufe, d. h. den Addierer 11c und den Subtrahierer 12c, um die Addition und Subtraktion von x&sub2; und x&sub5; durchzuführen, wobei (so auch oben!) der Addierer 11c das Addierergebnis (x&sub2; + x&sub5;) und der Subtrahierer 12c das Subtrahierergebnis (x&sub2; - x&sub5;) ausgibt.
  • In diesem Zeitpunkt wird die Ausgangsgröße (x&sub2; - x&sub5;) des Subtrahierers 12b zu s&sub5;.
  • (4) In dem Taktzyklus 3 benutzt die Schaltung das Paar der vierten Stufe, d. h. den Addierer 11d und den Subtrahierer 12d, um die Addition und die Subtraktion von x&sub3; und x&sub4; durchzuführen, wobei der Addierer 11d das Addierergebnis (x&sub3; + x&sub4;) und der Subtrahierer 12d das Subtrahierergebnis (x&sub3; - x&sub4; = s&sub4;) ausgibt.
  • In diesem Zeitpunkt wird die Ausgangsgröße (x&sub3; - x&sub4;) des Subtrahierers 12d zu s&sub4;.
  • (5) In dem Taktzyklus 4 benutzt die Schaltung das Paar der fünften Stufe, d. h. den Addierer 11e und den Subtrahierer 12e, um die Addition und die Subtraktion der Eingangsdaten (x&sub0; + x&sub7;) und (x&sub3; + x&sub4;) durchzuführen, wobei der Addierer 11e das Addierergebnis (x&sub0; + x&sub7; + x&sub3; + x&sub4;) und der Subtrahierer 12e das Subtrahierergebnis (x&sub0; - x&sub3; - x&sub4; + x&sub7; = s&sub3;) ausgibt.
  • In diesem Zeitpunkt wird die Ausgangsgröße (x&sub0; - x&sub3; - x&sub4; + x&sub7;) des Subtrahierers 12e zu s&sub3;.
  • (6) In dem Taktzyklus 5 benutzt die Schaltung das Paar der sechsten Stufe, d. h. den Addierer 11f und den Subtrahierer 12f, um die Addition und Subtraktion der Eingangsdaten (x&sub1; + x&sub6;) und (x&sub2; + x&sub5;) durchzuführen, wobei der Addierer 11f das Addierergebnis (x&sub1; + x&sub6; + x&sub2; + x&sub5;) und der Subtrahierer 12f das Subtrahierergebnis (x&sub1; - x&sub2; - X&sub5; + X&sub6; = s&sub2;) ausgibt.
  • In diesem Zeitpunkt wird die Ausgangsgröße (x&sub1; - x&sub2; - x&sub5; + x&sub6;) des Subtrahierers 12f zu s&sub2;.
  • (7) In dem Taktzyklus 6 benutzt die Schaltung das Paar der siebten Stufe, d. h. den Addierer 11 g und den Subtrahierer 12g, um die Addition und Subtraktion der Eingangsdaten (x&sub0; + x&sub7; + x&sub3; + x&sub4;) und (x&sub1; + x&sub6; + x&sub2; + x&sub5;) durchzuführen, wobei der Addierer 11 g das Addierergebnis (x&sub0; + x&sub1; + X&sub2; + X&sub3; + X&sub4; + X&sub5; + Xg + x&sub7; = so) und der Subtrahierer 12g das Subtrahierergebnis (x&sub0; - x&sub1; - x&sub2; + x&sub3; + x&sub4; - x&sub5; - x&sub6; + x&sub7; = s&sub1;) ausgibt.
  • In diesem Zeitpunkt wird die Ausgangsgröße (x&sub0; - x&sub1; - x&sub2; + x&sub3; + x&sub4; - x&sub5; - x&sub6; + x&sub7;) des Subtrahierers 12g zu s&sub1;.
  • Auf diese Weise werden die acht Elemente (s&sub0; bis s&sub7;) des Vektors [S] im Verlauf von sieben Taktzyklen an die Zwischenwert-Halteschaltung 3 ausgegeben.
  • Falls dies Rechengeschwindigkeit des Addierers 11 und des Subtrahierers 12 in der Addier- und Subtrahierschaltung 2 zu niedrig ist und die Addition und Subtraktion nicht innerhalb eines Taktzyklus beendet wird, kann man die Addier- und Subtrahierschaltung 2 aus mehreren Einheitsschaltungen (bestehend jeweils aus einem Addierer-Subtrahierer-Paar 11, 12) zusammensetzen, damit die Rechengeschwindigkeit der zulässigen Zeit (von acht Taktzyklen) entspricht und die Pipeline-Verarbeitung störungsfrei ablaufen kann.
  • Wenn z. B. der Addierer 11 und der Subtrahierer 12 den Addier- und Subtrahiervorgang in zwei Taktzyklen beenden, wird die Addier- und Subtrahierschaltung 2 aus zwei Einheitsschaltungen gebildet.
  • Außerdem muß die Addier- und Subtrahierschaltung 2 nicht notwendigerweise aus dem Addierer-Subtrahierer-Paar 11, 12 bestehen sondern kann durch das Zusammenfügen der erforderlichen Zahl von Addierern 11 und Subtrahierern 12 gebildet werden.
  • Erläuterung der Berechnung in dem Schritt 2
  • In dem Schritt 2 wird eine Berechnung durchgeführt, bei der die in der Gleichung (8) dargestellte Matrix [R], die höchstens vier irrationale Zahlen pro Spalte enthält, multipliziert wird. Die Vektoren [C] und [S] in der Berechnung der Gleichung von Schritt 2
  • [C] = 1/2 · [R] [S]
  • sind in den folgenden Gleichungen (15) und (16) dargestellt:
  • Die Ergebnisse der Berechnung in dem Schritt 2 sind in der folgenden Gleichung (17) angegeben. In den Rechengleichungen von Schritt 2 werden die Rechenergebnisse von [R] [S] am Ende jedoch halbiert. Dies geschieht, indem die Ausgangsdaten von [R] [S] um zwei Bits nach rechts verschoben werden, so daß die Schaltung keine spezielle Multiplizierschaltung oder Dividierschaltung benötigt.
  • (17) c&sub0; = A · s&sub0;
  • c&sub1; = G · s&sub4; + F · s&sub5; + E · s&sub6; + D · s&sub7;
  • c&sub2; = C · s&sub5; + B · s&sub3;
  • c&sub3; = -F · s&sub4; - D · s&sub5; - G · s&sub6; + E · s&sub7;
  • c&sub4; = A · s&sub1;
  • c&sub5; = E · s&sub4; + G · s&sub5; - D · s&sub6; + F · s&sub7;
  • c&sub6; = -B · s&sub2; + C · s&sub3;
  • c&sub7; = D · s&sub4; + E · s&sub5; - E · s&sub6; + G · s&sub7;.
  • Die Berechnung nach Schritt 2 wird von der Multiplizier- und Addierschaltung 4 durchgeführt.
  • Fig. 5 zeigt die Struktur der Multiplizier- und Addierschaltung 4. Die Multiplizier- und Addierschaltung 4 enthält einen Multiplizierer 20, einen Multiplizierer 21 und einen Multiplizierer 22.
  • Der Multiplizierer 20 besteht aus einem Multiplizierer 30, einem Akkumulator 40 und einem Koeffizientenspeicher 50. Die Multiplizier- und Addierschaltung 4 führt in einem bestimmten Takt k die Eingangsdaten dem Multiplizierer 30 zu. Der Multiplizierer 30 multipliziert die Eingangsdaten mit dem Koeffizienten A, der in der Koeffizientenspeicherregion 50a des Koeffizientenspeichers 50 gespeichert ist, dem Koeffizient B, der in der Koeffizientenspeicherregion 50b gespeichert ist, oder dem Koeffizienten C, der in der Koeffizientenspeicherregion 50c gespeichert ist, und gibt das Multiplikationsergebnis als Signal S30 an den Akkumulator 40 aus. Der Akkumulator 40 addiert oder subtrahiert das Multiplikationsergebnis, das von dem Multiplizierer 30 als Signal S30 zugeführt wird, und das Multiplikationsergebnis, das von dem Multiplizierer 30 in dem vorangehenden Taktzyklus (k-1) eingegeben wurde, und gibt das Ergebnis der Addition und Subtraktion als S40 aus.
  • Deshalb kann das n-te innere Produkts in n Taktzyklen berechnet werden.
  • Der Multiplizierer 21 und der Multiplizierer 22 haben die gleiche Struktur wie die der oben beschriebene Multiplizierer 20, mit der Ausnahme, daß in dem Koeffizientenspeicher 51 die von dem Multiplizierer 21 und dem Multiplizierer 22 benutzten Koeffizienten D, E, F und G gespeichert sind.
  • Der Multiplizierer 21 und der Multiplizierer 22 führen Berechnungen durch, bei denen die gleichen Koeffizienten benutzt werden, so daß sie den Koeffizientenspeicher 51 gemeinsam nutzen können.
  • Fig. 6 zeigt eine Ansicht zur Erläuterung des zeitlichen Ablaufs der Signalverarbeitung bei der Berechnung nach Schritt 2 mit Hilfe des Multiplizierers 20, des Multiplizierers 21 und des Multiplizierers 22.
  • Im Folgenden wird der zeitliche Ablauf der Signalverarbeitung bei der Berechnung nach Schritt 1 mit dem Multiplizierer 20 erläutert.
  • (1a) In dem Taktzyklus 0 nimmt der Multiplizierer die Größe s&sub0; als Eingangsdaten auf, multipliziert diese Größe so mit dem in der Koeffizientenspeicherregion 50a gespeicherten Koeffizienten A und liefert das Multiplikationsergebnis (A · s&sub0;) als Signal S30 an den Akkumulator 40. Der Akkumulator 40 gibt das Multiplikationsergebnis (A · s&sub0;) als Signal S40 aus. Zu dieser Zeit wird das Signal S40 das Element c&sub0; der Matrix [C].
  • (2a) In dem Taktzyklus 1 nimmt der Multiplizierer die Größe s&sub1; als Eingangsdaten auf, multipliziert diese Größe s&sub1; mit dem in der Koeffizientenspeicherregion 50a gespeicherten Koeffizienten A und gibt das Multiplikationsergebnis (A · s&sub1;) als Signal S30 an den Akkumulator 40 aus. Der Akkumulator 40 gibt das Multiplikationsergebnis (A · s&sub1;) als Signal S40 aus. In diesem Zeitpunkt wird das Signal S40 das Element c&sub4;.
  • (3a) In dem Taktzyklus 2 nimmt der Multiplizierer die Größe s&sub2; als Eingangsdaten auf, multipliziert diese Größe s&sub2; mit dem in der Koeffizientenspeicherregion 50c gespeicherten Koeffizienten C und gibt das Multiplikationsergebnis (C · s&sub2;) als Signal S30 an den Akkumulator 40 aus. Der Akkumulator 40 gibt das Multiplikationsergebnis (C · s&sub2;) als Signal S40 aus und hält gleichzeitig das Multiplikationsergebnis (C · s&sub2;).
  • (4a) In dem Taktzyklus 3 nimmt der Multiplizierer die Größe s&sub3; als Eingangsdaten auf, multipliziert diese Größe s&sub3; mit dem in der Koeffizientenspeicherregion 50b gespeicherten Koeffizienten B und gibt das Multiplikationsergebnis (B · s&sub3;) als Signal S30 an den Akkumulator 40 aus. Der Akkumulator 40 addiert das Multiplikationsergebnis (B · s&sub3;) und das in dem vorangehenden Taktzyklus 2 gehaltene Multiplikationsergebnis (C · s&sub2;) und gibt das Addierergebnis (C · s&sub2; + B · s&sub3;) als Signal S40 aus. Das Signal S40 wird in diesem Zeitpunkt (zu dieser Zeit?) c&sub2;.
  • (5a) In dem Taktzyklus 4 nimmt der Multiplizierer die Größe s&sub2; als Eingangsdaten auf, führt eine negative Multiplikation zwischen diesem s&sub2; und dem in der Koeffizientenspeicherregion 50b gespeicherten Koeffizienten B aus und gibt das Multiplikationsergebnis (-B · s&sub2;) als Signal S30 an den Akkumulator 40 aus. Der Akkumulator 40 gibt das Multiplikationsergebnis (-B · s&sub2;) als Signal S40 aus und hält gleichzeitig das Multiplikationsergebnis (-B · s&sub2;).
  • (6a) In dem Taktzyklus 5 nimmt der Multiplizierer die Größe s&sub3; als Eingangsdaten auf, multipliziert diese Größe s&sub3; mit dem in der Koeffizientenspeicherregion 50c gespeicherten Koeffizienten C und gibt das Multiplikationsergebnis (C · s&sub3;) als Signal S30 an den Akkumulator 40 aus. Der Akkumulator 40 addiert das Multiplikationsergebnis (C · s&sub3;) und das in dem Taktzyklus 4 gehaltene vorherige Multiplikationsergebnis (-B · s&sub2;) und gibt das Addierergebnis (-B - s&sub2; + C · s&sub3;) als Signal S40 aus. Das Signal S40 wird in diesem Zeitpunkt c&sub6;.
  • Als nächstes wird der zeitliche Ablauf der Signalverarbeitung bei der Berechnung nach dem Schritt 2 unter Verwendung des Multiplizierers 21 und des Multiplizierers 22 erläutert.
  • (1b) In dem Taktzyklus 0 nehmen sowohl der Multiplizierer 21 als auch der Multiplizierer 22 die Größe s&sub4; als Eingangsdaten auf, führen die Multiplikationen mit dem in der Koeffizientenspeicherregion 51d gespeicherten Koeffizienten G und dem in der Koeffizientenspeicherregion 51b gespeicherten Koeffizienten E durch und liefern die Multiplikationsergebnisse (G · s&sub4;) und (E · s&sub4;) als Signale S30 an den Akkumulator 40. Der Akkumulator 40 gibt die Multiplikationsergebnisse als Signale S40 aus und hält sie gleichzeitig.
  • (2b) In dem Taktzyklus 1 nehmen sowohl der Multiplizierer 21 als auch der Multiplizierer 22 die Größe s&sub5; als Eingangsdaten auf, führen Multiplikationen mit dem in der Koeffizientenspeicherregion 51c gespeicherten Koeffizienten F und dem in der Koeffizientenspeicherregion 51d gespeicherten Koeffizienten G durch und geben die Multiplikationsergebnisse (F · s&sub5;) und (G · s&sub5;) als Signale S30 an den Akkumulator 40 aus. Der Akkumulator 40 addiert die Multiplikationsergebnisse und die in dem Taktzyklus 0 gehaltenen vorherigen Multiplikationsergebnisse (G · s&sub4;) und (E · s&sub4;), gibt die Addierergebnisse (G · s&sub4; + F · s&sub5;) und (E · s&sub4; + G · s&sub5;) aus und hält diese gleichzeitig.
  • (3b) In dem Taktzyklus 2 nehmen sowohl der Multiplizierer 21 als auch der Multiplizierer 22 als Eingangsdaten s&sub6; auf, führen negative Multiplikationen mit dem in der Koeffizientenspeicherregion 51b gespeicherten Koeffizienten E und dem in der Koeffizientenspeicherregion 51a gespeicherten Koeffizienten D durch und geben die Multiplikationsergebnisse (E · s&sub6;) und (-D · s&sub6;) als Signale S30 an den Akkumulator 40 aus. Der Akkumulator 40 addiert die Multiplikationsergebnisse und die in dem Taktzyklus 1 gehaltenen vorherigen Multiplikationsergebnisse (G · s&sub4; + F · s&sub5;) und (E · s&sub4; + G · s&sub5;), geben die Addierergebnisse (G · s&sub4; + F · s&sub5; + E · s&sub6;) und (E · s&sub4; + G · s&sub5; - D · s&sub6;) aus und halten diese gleichzeitig.
  • (4b) In dem Taktzyklus 3 nehmen sowohl der Multiplizierer 21 als auch der Multiplizierer 22 als Eingangsdaten 57 aus, führen Multiplikationen mit dem in der Koeffizientenspeicherregion 51a gespeicherten Koeffizienten D und dem in der Koeffizientenspeicherregion 51c gespeicherten Koeffizienten F durch und geben die Multiplikationsergebnisse (D · s&sub7;) und (F · s&sub7;) als Signale S30 an den Akkumulator 40 aus. Der Akkumulator 40 addiert die Multiplikationsergebnisse und die in dem Taktzyklus 2 gehaltenen vorherigen Addierergebnisse (G · s&sub4; + F · s&sub5; + E · s&sub6;) und (E · s&sub4; + G · s&sub5; - D · s&sub6;) und geben die Addierergebnisse (G · s&sub4; + F · s&sub5; + E · s&sub6; + D · s&sub7;) und (E · s&sub4; + G · s&sub5; + D · s&sub6; + F · s&sub7;) als Signal S40 aus.(G · s&sub4; + F · s&sub5; + E · s&sub7;) und(E · s&sub4; + G · s&sub5; + D · s&sub5; + F · s&sub7;) werden zu dieser Zeit c&sub1; bzw. c&sub5;.
  • (5b) Von dem Taktzyklus 4 bis zu dem Taktzyklus 7 nehmen sowohl der Multiplizierer 21 als auch der Multiplizierer 22 jeweils die folgenden Eingangsdaten auf: In dem Taktzyklus 4 die Eingangsdaten s&sub4;, in dem Taktzyklus 5 die Eingangsdaten s&sub5;, in dem Taktzyklus 6 die Eingangsdaten s&sub6;, in dem Taktzyklus 7 die Eingangsdaten 57. Sie führen in der gleichen Weise Berechnungen durch wie in den obigen Fällen (1b) bis (4b) und geben c&sub3; (-F · s&sub4; + D · s&sub5; - G · s&sub6; + E · s&sub7;)und(-D · s&sub4; + E · s&sub5; - F · s&sub7;) als Signal S40 aus.
  • Auf diese Weise werden die acht Elemente (c&sub0; bis c&sub7;) des Vektors [S] im Verlauf von sieben Taktzyklen an das Ausgangsregister 5 ausgeben.
  • Falls die Rechengeschwindigkeit der Multiplizier- und Addierschaltungen 20, 21 und 22 zu niedrig ist und die Multiplikation und Addition nicht in einem Taktzyklus durchgeführt werden kann, kann man die Berechnung mit Hilfe mehrerer Multiplizier- und Addierschaltungen 20, 21 und 22 durchführen, damit die Rechenzeit in die zulässige Zeit (von acht Taktzyklen) fällt und die Pipeline-Verarbeitung störungsfrei abläuft.
  • Wenn z. B. die Multiplikation und Addition in zwei Taktzyklen beendet ist, benutzt man jeweils zwei Multiplizier- und Addierschaltungen 20, 21 und 22, und führt die Berechnung wird mit Hilfe von sechs Multiplizier- und Addierschaltungen, nämlich den Multiplizier- und Addierschaltungen 20a, 20b, 21a, 21b, 22a und 22b durch. In diesem Fall wird die Berechnung von der Multiplizier- und Addierschaltung 20a ausgeführt, um c&sub0; und c&sub4; nach (1a) bis (3a) zu gewinnen. Die Berechnung von c&sub2; und c&sub6; nach (4a) bis (6a) erfolgt in der zweiten Multiplizier- und Addierschaltung 20b.
  • Die Berechnung von c&sub1; von (1b) bis (4b) erfolgt in der Multiplizier- und Addierschaltung 21a, während die Berechnung von c&sub3; von (5b) von der Multiplizier- und Addierschaltung 21b durchgeführt wird.
  • Die Berechnung von c&sub5; von (1b) bis (4b) erfolgt in der Multiplizier- und Addierschaltung 22a durchgeführt, während die Berechnung von c&sub7; von (5b) von der Multiplizier- und Addierschalturig 22b durchgeführt wird.
  • Auf diese Weise wird in dem 8 · 8-DCT-System gemäß der Erfindung bei der Berechnung der 8 · 8-DCT der aus den acht Elementen der Spalten der Matrixdaten [C] in der Frequenzdomäne bestehenden Vektor [C] durch die Verarbeitung des aus den acht Elementen der Spalten der originalen Daten [X] bestehenden Vektors [X] nach den obigen Schritte 1 und 2 berechnet. Man führt diese Berechnung für alle acht Spalten der Daten [X] durch und gewinnt so die Daten [C] in der Frequenzdomäne, die aus 64 Elementen bestehen.
  • Die Zahl der Multiplikationen, die für die Gewinnung der acht Elemente der Spalten des Vektors [C] benötigt werden, entspricht gerade den 22 Operationen in dem Schritt 2, so daß die Zahl der für die Gewinnung der Frequenzdaten [C] (64 Elemente) benötigten Multiplikationen 22 · 8 Spalten = 176 wird.
  • Auf diese Weise kann in dem 8 · 8-DCT-System gemäß der Erfindung die Zahl der Multiplikationen im Vergleich zu dem herkömmlichen 8 · 8-DCT-System um den Faktor 80 reduziert werden. Wenn die Multiplikationen und Additionen in einem Taktzyklus beendet werden, können als Multiplizier- und Addierschaltungen die drei Multiplizier- und Addierschaltungen 20, 21 und 22 verwendet werden, so daß die Schaltungsstruktur vereinfacht wird.
  • Auch die Zahl der Operationen, bei denen irrationale Zahlen beteiligt sind, wird reduziert, so daß der durch Approximieren der irrationalen Zahlen erzeugte Akkumulierungsfehler verringert wird.
  • Als Hardwareschaltung zur Realisierung des 8 · 8-DCT-Systems gemäß der Erfindung können eine elektronische Schaltung, die die oben beschriebenen Rechenverarbeitungen ausführt, ein digitaler Signalprozessor (DSP), eine Schaltung mit Halbleitervorrichtungen usw. in Betracht gezogen werden. Diese Schaltungsstruktur läßt sich auch für das folgende 8 · 8-DCT- System und für das 8 · 8-IDCT-System verwenden.
  • Als nächstes wird ein 8 · 8-IDCT-System erläutert, das die inverse Operation des oben beschriebenen 8 · 8-DCT-Systems ausführt.
  • Fig. 7 zeigt die Struktur des 8 · 8-IDCT-Systems. Das 8 · 8-IDCT-System von Fig. 7 besitzt ein Eingangsregister 61, eine Multiplizier- und Addierschaltung 62, eine Zwischenwert-Halteschaltung 63, eine Addier- und Subtrahierschaltung 64 und ein Ausgangsregister 65. Dieses System hat eine Zweistufen-Pipeline-Struktur, die aus der Multiplizier- und Addierschaltung 62 als erster Stufe und der Addier- und Subtrahierschaltung 64 als zweite Stufe besteht, die über die Zwischenwert-Halteschaltung 63 verbunden sind.
  • Das in Fig. 7 dargestellte 8 · 8-IDCT-System führt die in der Gleichung (7) definierte Operation in den folgenden zwei Schritten aus, wobei die Multiplizier- und Addierschaltung 62 und die Addier- und Subtrahierschaltung 64 benutzt werden.
  • Schritt 1: [T] = [Rt] [C]
  • Schritt 2: [X] = 1 /2 · [Qt] [T]
  • Die Matrizen [Rt], [Qt] sind die in den Gleichungen (10) bzw. (11) definierten Transpositionsmatrizen.
  • Wie bei der oben beschriebenen 8 x 8-DCT sind die Matrizen [X] bzw. [C] ein Vektor mit den acht Elementen der Spalten der originalen Daten [X] in einer realen Domäne bzw. ein Vektor, der durch Transformation des Vektors [X] in die Frequenzdomäne gewonnen wird.
  • Als nächstes wird die Struktur des 8 · 8-IDCT-Systems erläutert.
  • Das Eingangsregister 61 nimmt in jedem Taktzyklus seriell die einzelnen Wörter der Daten [C] der Frequenzdomäne auf. Die Matrix [C] besteht aus acht Elementen, so daß acht Taktzyklen benötigt werden, um alle Daten der Matrix [C] in dem Eingangsregister 61 aufzunehmen.
  • Die Multiplizier- und Addierschaltung 61 führt die Berechnung nach Schritt 1 aus.
  • Die Zwischenwert-Halteschaltung 63 speichert das Operationsergebnis der Multiplizier- und Addierschaltung 62 temporär.
  • Die Addier- und Subtrahierschaltung 64 führt die Berechnung nach Schritt 2 aus.
  • Das Ausgangsregister 65 gibt in jedem Taktzyklus seriell jeweils ein Wort der originalen Daten [X] aus.
  • Zur Vereinfachung wird im Folgenden angenommen, daß die Addition zu einer Zeit durchgeführt und die Multiplikation und Addition in einem Taktzyklus beendet wird. Die Addier- und Addierschaltung 62 und die Addier- und Subtrahierschaltung 64 beenden die vorbestimmte Multiplikation und Addition bzw. die Addition und Subtraktion jeweils in acht Taktzyklen.
  • Erläuterung der Operation in dem Schritt 1
  • In dem Schritt 1 findet eine Berechnung statt, bei der die in der Gleichung (10) dargestellte Transpositionsmatrix [Rt], die wenigstens vier irrationale Zahlen pro Spalte enthält, mit den Daten [C] in der Frequenzdomäne multipliziert wird.
  • Der Vektor [T] in der Rechengleichung von Schritt 1
  • [T] = [Rt] [C]
  • ist durch die folgende Gleichung (18) gegeben.
  • Die Ergebnisse der Operation in Schritt 1 sind in der folgenden Gleichung (19) angegeben.
  • (19) t&sub0; = A · c&sub0;
  • t&sub1; = A · c&sub4;
  • t&sub2; = C · c&sub2; - B · c&sub6;
  • t&sub3; = B · C&sub2; + C - C&sub6;
  • t&sub4; = G · c&sub1; - F · c&sub3; + E · c&sub5; - D · c&sub7;
  • t&sub5; = F · c&sub1; - D · c&sub3; + G · c&sub5; + E · c&sub7;
  • t&sub6; = E · c&sub1; - G · C&sub3; - D · c&sub5; - F · c&sub7;
  • t&sub7; = D · c&sub1; + E · c&sub3; + F · c&sub5; - G · c&sub7;.
  • Die Berechnung nach Schritt 1 wird von der Multiplizier- und Addierschaltung 62 durchgeführt. Die Multiplizier- und Addierschaltung 62 ist die gleiche wie die Multiplizier- und Addierschaltung 4 des oben beschriebenen 8 · 8-DCT-Systems und besteht aus den Multiplizier- und Addierschaltungen 20, 21 und 22.
  • Fig. 8 zeigt eine Darstellung zur Erläuterung des zeitlichen Ablaufs der Signalverarbeitung bei der Berechnung nach Schritt 1 unter Verwendung des Multiplizierers 20, des Multiplizierers 21 und des Multiplizierers 22.
  • (1a) In dem Taktzyklus 0 nimmt die Schaltung als Eingangsdaten die Größe c&sub0; auf, multipliziert diese Größe c&sub0; mit dem in der Koeffizientenspeicherregion 50a gespeicherten Koeffizienten A und gibt das Multiplikationsergebnis (A · c&sub0;) als Signal S30 an den Akkumulator 40 aus. Der Akkumulator 40 gibt das Multiplikationsergebnis (A · c&sub0;) als Signal S40 aus. Das Signal S40 wird zu dieser Zeit t&sub0;.
  • (2a) In dem Taktzyklus 1 nimmt die Schaltung als Eingangsdaten die Größe c&sub4; auf, multipliziert diese Größe c&sub4; mit dem in der Koeffizientenspeicherregion 50a gespeicherten Koeffizienten A und gibt das Multiplikationsergebnis (A · c&sub4;) als Signal S30 an den Akkumulator 40 aus. Der Akkumulator 40 gibt das Multiplikationsergebnis (A · c&sub4;) als Signal S40 aus. Das Signal S40 wird zu dieser Zeit t&sub1;.
  • (3a) In dem Taktzyklus 2 nimmt die Schaltung als Eingangsdaten die Größe c&sub2; auf, multipliziert diese Größe c&sub2; mit dem in der Koeffizientenspeicherregion 50c gespeicherten Koeffizienten C und gibt das Multiplikationsergebnis (C · c&sub2;) als Signal S30 an den Akkumulator 40 aus. Der Akkumulator 40 gibt das Multiplikationsergebnis (C · c&sub2;) als Signal S40 aus und hält gleichzeitig das Multiplikationsergebnis (C · c&sub2;).
  • (4a) In dem Taktzyklus 3 nimmt die Schaltung als Eingangsdaten die Größe c&sub5; auf, führt eine negative Multiplikation dieses c&sub6; mit dem in der Koeffizientenspeicherregion 50b gespeicherten Koeffizienten B durch und gibt das Multiplikationsergebnis (-B · c&sub6;) als Signal S30 an den Akkumulator 40 aus. Der Akkumulator 40 addiert das Multiplikationsergebnis (-B · c&sub6;) und das in dem vorherigen Taktzyklus 2 gehaltene Multiplikationsergebnis (C · c&sub2;) und gibt das Addierergebnis (C · c&sub2; - B · c&sub3;) als Signal S40 aus. Das Signal S40 wird zu dieser Zeit t&sub2;.
  • (5a) In dem Taktzyklus 4 nimmt die Schaltung als Eingangsdaten die Größe c&sub2; auf, multipliziert diese Größe c&sub2; mit dem in der Koeffizientenspeicherregion 50b gespeicherten Koeffizienten B und gibt das Multiplikationsergebnis (B · c&sub2;) als Signal S30 an den Akkumulator 40 aus. Der Akkumulator 40 gibt das Multiplikationsergebnis (B · c&sub2;) als Signal S40 aus und hält gleichzeitig das Multiplikationsergebnis (B · c&sub2;).
  • (6a) In dem Taktzyklus 5 nimmt die Schaltung als Eingangsdaten die Größe c&sub6; auf, multipliziert diese Größe c&sub6; mit dem in der Koeffizientenspeicherregion 50c gespeicherten Koeffizienten C und gibt das Multiplikationsergebnis (C · c&sub6;) als Signal S30 an den Akkumulator 40 aus. Der Akkumulator 40 addiert das Multiplikationsergebnis (C · c&sub6;) und das in dem Taktzyklus 4 gehaltene Multiplikationsergebnis (B · c&sub2;) und gibt das Addierergebnis (B · c&sub2; + C · c&sub6;) als Signal S40 aus. Das Signal S40 wir zu dieser Zeit zu t&sub3;.
  • Als nächstes wird der zeitliche Ablauf der Signalverarbeitung bei der Berechnung nach Schritt 2 mit Hilfe der Multiplizierer 21 und 22 erläutert.
  • (1b) In dem Taktzyklus 0 nehmen sowohl der Multiplizierer 21 als auch der Multiplizierer 22 als Eingangsdaten c&sub1; auf, führen Multiplikationen mit dem in der Koeffizientenspeicherregion 51d gespeicherten Koeffizienten G und dem in der Koeffizientenspeicherregion 51b gespeicherten Koeffizienten E durch und geben die Multiplikationsergebnisse (G · c&sub1;) und (E · c&sub1;) als Signale S30 an den Akkumulator 40 aus. Der Akkumulator 40 gibt die Multiplikationsergebnisse als Signale S40 aus und hält sie gleichzeitig.
  • (2b) In dem Taktzyklus 1 nehmen sowohl der Multiplizierer 21 als auch der Multiplizierer 22 als Eingangsdaten c&sub3; auf, führen negative Multiplikationen mit den in der Koeffizientenspeicherregion 5b gespeicherten Koeffizienten F und dem in der Koeffizientenspeicherregion 51d gespeicherten Koeffizienten G durch und geben die Multiplikationsergebnisse (-F · c&sub3;) und (-G · c&sub3;) als Signale S30 an den Akkumulator 40 aus. Der Akkumulator 40 addiert die Multiplikationsergebnisse und die in dem Taktzyklus 0 gehaltenen vorherigen Multiplikationsergebnisse (G · c&sub1;) und (E · c&sub1;), gibt die Addierergebnisse (G · c&sub1; - F · c&sub3;) und (E · c&sub1; - G · c&sub3;) aus und hält diese gleichzeitig.
  • (3b) In dem Taktzyklus 2 nehmen sowohl der Multiplizierer 21 als auch der Multiplizierer 22 als Eingangsdaten c&sub5; auf, führen negative Multiplikationen mit dem in der Koeffizientenspeicherregion 51b gespeicherten Koeffizienten E und dem in der Koeffizientenspeicherregion 51a gespeicherten Koeffizienten D durch und geben die Multiplikationsergebnisse (E · c&sub5;) und (-D · c&sub5;) als Signale S30 an den Akkumulator 40 aus. Der Akkumulator 40 addiert die Multiplikationsergebnisse und die in dem Taktzyklus 0 gehaltenen vorherigen Addierergebnisse (G · c&sub1; - F · c&sub3;) und (E · c&sub1; - G · c&sub3;) und gibt die Addierergebnisse (G · c&sub1; - F · c&sub3; + E · c&sub5;) und (E · c&sub1; - G · c&sub3; - D · c&sub5;) aus und hält diese gleichzeitig.
  • (4b) In dem Taktzyklus 3 nehmen sowohl der Multiplizierer 21 als auch der Multiplizierer 22 als Eingangsdaten c&sub7; aus, führen negative Multiplikationen mit dem in der Koeffizientenspeicherregion 51a gehaltenen Koeffizienten D und dem in der Koeffizientenspeicherregion 51c gehaltenen Koeffizienten F durch und geben die Multiplikationsergebnisse (D · c&sub7;) und (F · c&sub7;) als Signal S30 an den Akkumulator 40 aus. Der Akkumulator 40 addiert die Multiplikationsergebnisse und die in dem Taktzyklus 2 gehaltenen Addierergebnisse (G · c&sub1; - F · c&sub3; + E · c&sub5;) und (E · c&sub1; - G · c&sub3; - D · c&sub5;) und gibt die Addierergebnisse(G ·c&sub1; · F - c&sub3; + E · c&sub5; - D · c&sub7;) und (E · c&sub1; - G · c&sub3; - D · c&sub5; - F · c&sub7;) als Signal S40 aus. (G · c&sub1; - F · c&sub3; + E - c&sub5; - D · c&sub7;) und (E c&sub1; - G · c&sub3; - D - c&sub5; - F · c&sub7;) werden zu dieser Zeit t&sub4; bzw. t&sub6;.
  • (5b) Während der Taktzyklen 4 bis 7 nehmen der Multiplizierer 21 und der Multiplizierer 22 als Eingangsdaten auf: c&sub1; in dem Taktzyklus 4, c&sub3; in dem Taktzyklus 5, c&sub5; in dem Taktzyklus 6, c&sub7; in dem Taktzyklus 7. Sie führen die Berechnungen in der gleichen Weise durch wie in den obigen Fällen (1b) bis (4b) und geben t&sub5; (F · c&sub1; - D · C&sub3; + G · c&sub5; + E · c&sub7;) und t&sub7; (D · C&sub1; + E · c&sub3; + F - c&sub5; + G · C&sub7;) als Signal S40 aus.
  • Auf diese Weise werden die acht Elemente (t&sub0; bis t&sub7;) des Vektors [T] im Verlauf von sieben Taktzyklen an die Zwischenwert-Halteschaltung 3 ausgeben.
  • Falls die Rechengeschwindigkeit der Multiplizier- und Addierschaltungen 20, 21 und 22 zu niedrig ist und die Multiplikation und Addition nicht in einem Taktzyklus durchgeführt werden kann, kann man die Berechnung mit Hilfe von mehreren Multiplizier- und Addierschaltungen 20, 21 und 22 durchführen, wie dies oben für das 8 · 8-DCT-System beschrieben wurde.
  • Erläuterung der Berechnung in dem Schritt 2
  • In dem Schritt 2 werden die Ausgangsdaten (t&sub0; bis t&sub7;) von Schritt 1 mit der in der Gleichung (11) dargestellten Transpositionsmatrix [Qt] multipliziert, die die Koeffizienten 1, -1 und 0 hat.
  • Das Ergebnis der Rechenoperation der nach der Gleichung von Schritt 2
  • [X] = 1/2 · [Qt] [T]
  • ist in der folgenden Gleichung (20) angegeben.
  • (20) x&sub0; = t&sub0; + t&sub1; + t&sub3; + t&sub7;
  • x&sub1; = t&sub0; - t&sub1; + t&sub2; + t&sub6;
  • x&sub2; = t&sub0; - t&sub1; - t&sub2; + t&sub5;
  • x&sub3; = t&sub0; + t&sub1; - t&sub3; + t&sub4;
  • x&sub4; = t&sub0; + t&sub1; - t&sub3; - t&sub4;
  • x&sub5; = t&sub0; - t&sub1; - t&sub2; - t&sub5;
  • x&sub6; = t&sub0; - t&sub1; + t&sub2; - t&sub6;
  • x&sub7; = t&sub0; + t&sub1; + t&sub3; - t&sub7;.
  • In der Rechengleichung von Schritt 2 wird das Ergebnis der Berechnung [Qt] [T] zuletzt halbiert. Dies kann durch Verschiebung der Ausgangsdaten von [Qt] [T] um 2 Bits nach rechts geschehen, so daß keine Rechenschaltung benötigt wird.
  • Fig. 9 zeigt das Konzept der Signalverarbeitung in der Addier- und Subtrahierschaltung 2 für die Verarbeitung zusammen mit der Grundschaltung der Addier- und Subtrahierschaltung 64. Weiter zeigt Fig. 10 eine Ansicht zur Erläuterung des zeitlichen Ablaufs der Signalverarbeitung unter Verwendung der Addier- und Subtrahierschaltung 64 von Fig. 10.
  • Wie Fig. 9 zeigt, wird die Addier- und Subtrahierschaltung 64 siebenmal benutzt, um die acht Elemente (x&sub0; bis x&sub7;) des Vektors [X] zu ermitteln, so daß bei der Berechnung mit Hilfe einer einzigen Addier- und Subtrahierschaltung 64, wie in Fig. 10 dargestellt, die acht Elemente des Vektors [X] im Verlauf von sieben Taktzyklen an die Zwischenwert-Halteschaltung 63 ausgegeben werden.
  • D. h., die Addier- und Subtrahierschaltung 64 führt die folgenden Verarbeitungen aus:
  • (1) In dem Taktzyklus 1 benutzt die Schaltung das Paar der ersten Stufe, d. h. den Addierer 11a' und den Subtrahierer 12a', um t&sub0; und t&sub1; zu addieren und zu subtrahieren. Der Addierer 11a' gibt das Addierergebnis (t&sub0; + t&sub1;) aus, während der Subtrahierer 12a' das Subtrahierergebnis (t&sub0; - t&sub1;) ausgibt.
  • (2) In dem Taktzyklus 1 benutzt die Schaltung das Paar der zweiten Stufe, d. h. den Addierer 11b' und den Subtrahierer 12b', um die Eingangsdaten (t&sub0; + t&sub1;) und 13 zu addieren und zu subtrahieren. Der Addierer 11b' gibt das Addierergebnis (t&sub0; + t&sub1; + t&sub3;) aus, während der Subtrahierer 12b' das Subtrahierergebnis (t&sub0; + t&sub1; - t&sub3;) ausgibt.
  • (3) In dem Taktzyklus 2 benutzt die Schaltung das Paar der dritten Stufe, d. h. den Addierer 11c' und den Subtrahierer 12c', um die Eingangsdaten (t&sub0; - t&sub1;) und t&sub2; zu addieren und zu subtrahieren. Der Addierer 11c' gibt das Addierergebnis (t&sub0; - t&sub1; + t&sub2;) aus, während der Subtrahierer 12c' das Subtrahierergebnis (t&sub0; - t&sub1; - t&sub2;) ausgibt.
  • (4) In dem Taktzyklus 3 benutzt die Schaltung das Paar der vierten Stufe, d. h. den Addierer 11d' und den Subtrahierer 12d', um die Eingangsdaten (t&sub0; + t&sub1; + t&sub3;) und t&sub7; zu addieren und zu subtrahieren. Der Addierer 11d' gibt das Addierergebnis (t&sub0; + t&sub1; + t&sub7; = x&sub0;) aus, während der Subtrahierer 12d' das Subtrahierergebnis (t&sub0; + t&sub1; - t&sub1; - x&sub7;) ausgibt.
  • (5) In dem Taktzyklus 4 benutzt die Schaltung das Paar der fünften Stufe, d. h. den Addierer 11e' und den Subtrahierer 12e', um die Eingangsdaten (t&sub0; - t&sub1; + t&sub2;) und t&sub6; zu addieren und zu subtrahieren. Der Addierer 11e' gibt das Addierergebnis (t&sub0; - t&sub1; + t&sub2; + t&sub6; = x&sub1;) aus, während der Subtrahierer 12e' das Subtrahierergebnis (t&sub0; - t&sub1; + t&sub2; - t&sub6; = x&sub6;) ausgibt.
  • (6) In dem Taktzyklus 5 benutzt die Schaltung das Paar der siebten Stufe, d. h. den Addierer 11g' und den Subtrahierer 12g', um die Eingangsdaten (t&sub0; + t&sub1; - t&sub3;) und t&sub4; zu addieren und zu subtrahieren. Der Addierer 11g' gibt das Addierergebnis (t&sub0; + t&sub1; - t&sub3; + t&sub4; = x&sub3;) aus, während der Subtrahierer 12g' das Subtrahierergebnis (t&sub0; + t&sub1; - t&sub3; - t&sub4; = x&sub4;) ausgibt.
  • (7) In dem Taktzyklus 6 benutzt die Schaltung das Paar der sechsten Stufe, d. h. den Addierer 11f' und den Subtrahierer 12f', um die Eingangsdaten (t&sub0; t&sub1; - t&sub2;) und t&sub5; zu addieren und zu subtrahieren. Der Addierer 11f' gibt das Addierergebnis (t&sub0; - t&sub1; - t&sub2; + t&sub5; = x&sub2;) aus, während der Subtrahierer 12f' das Subtrahierergebnis (to - t&sub1; - t&sub2; - t&sub5; = x&sub5;) ausgibt.
  • Auf diese Weise werden im Verlauf von sieben Taktzyklen die acht Elemente (so bis 57) der originalen Daten [X] an das Ausgangsregister 65 ausgegeben.
  • Falls die Rechengeschwindigkeit des Addierers 11 und des Subtrahierers 12 in der Addier- und Subtrahierschaltung 64 zu niedrig ist und die Addition und Subtraktion nicht innerhalb eines Taktzyklus beendet wird, kann man die Addier- und Subtrahierschaltung 64, ähnlich wie die Addier- und Subtrahierschaltung 2 des 8 · 8-DCT-Systems, mit mehreren Einheitsschaltungen (bestehend aus einem Addierer-Subtrahiererpaar-Paar 11, 12) ausstatten, damit die Rechenzeit innerhalb der zulässigen Zeit (von acht Taktzyklen) liegt und die Pipeline-Verarbeitung störungsfrei abläuft.
  • Auf diese Weise berechnet das 8 · 8-IDCT-System gemäß der Erfindung bei der 8 · 8-IDCT den aus den acht Elementen der Spalten der originalen Daten [X] bestehenden Vektor [X], indem in den oben erwähnten Schritten 1 und 2 der aus den acht Elementen der Spalten der Daten [C] in der Frequenzdomäne bestehende Vektor [C] verarbeitet wird. Diese Berechnung wird für jede der acht Spalten von [C] durchgeführt, so daß man als Ergebnis die aus 64 Elementen bestehenden originalen Daten [X] erhält.
  • Die Zahl der Multiplikationen, die zur Gewinnung der acht Elemente der Spalten des Vektors [X] benötigt werden, entspricht gerade den 22 Operationen, die in dem Schritt 1 ausgeführt werden, so daß die Zahl der für die Ermittlung der Daten [C] in der Frequenzdomäne (64 Elemente) benötigten Multiplikationen 22 · 8 Spalten = 176 wird.
  • Auf diese Weise kann in dem 8 · 8-IDCT-System gemäß der Erfindung die Zahl der Multiplikationen im Vergleich zu dem herkömmlichen 8 · 8-IDCT-System um den Faktor 80 reduziert werden. Wenn die Multiplikationen und Additionen in einem Taktzyklus beendet werden, können als Multiplizier- und Addierschaltungen die drei Multiplizier- und Addierschaltungen 20, 21 und 22 verwendet werden, so daß die Schaltungsstruktur vereinfacht wird. Außerdem wird die Zahl der Operationen, an denen irrationale Zahlen beteiligt sind, reduziert, so daß die Akkumulation des Fehlers, der durch die Approximierung der irrationalen Zahlen verursacht wird, reduziert wird.
  • In dem oben beschriebenen Ausführungsbeispiel wurde ein 8 · 8-DCT-System für die Durchführung einer 8 · 8-DCT und ein 8 · 8-IDCT-System für die Durchführung einer 8 · 8-IDCT erläutert. Die Anwendung der vorliegenden Erfindung ist jedoch nicht auf Systeme für die 8 · 8- DCT und die 8 · 8-IDCT beschränkt sondern kann z. B. auch in Schaltungen für die 4 · 4-DCT und die 4 · 4-IDCT oder für die 4 · 8-DCT und die 4 · 8-IDCT benutzt werden.
  • In dem oben beschriebenen Ausführungsbeispiel kann man eine Matrix-Faktorenzerlegung der Gleichungen der diskreten 8 · 8-Cosinus-Transformation und der inversen diskreten 8 · 8- Cosinus-Transformation in Konstantenmatrizen und eine Matrix mit einer kleinen Zahl von irrationalen Zahlen vornehmen und die Operationen entsprechend den in Faktoren zerlegten Matrizen mit Hilfe einer aus einer Halbleitervorrichtung bestehenden elektronischen Schaltung realisieren oder alternativ Programme assemblieren, die dem oben beschriebenen Berechnungsverfahren entsprechen, und das Programm durch Computersoftware mit Hilfe eines Computers auszuführen und dann die obigen Operationen mit einem DSP usw. realisieren. Es ist so möglich, jedes beliebige Verfahren zur Realisierung des oben beschriebenen Systems zur diskreten 8 · 8-Cosinus-Transformation und des Systems zur inversen diskreten 8 · 8-Cosinus-Transformation sowie anderer DCT-Systeme und IDCT-Systeme zu benutzen.
  • Bei dem DCT-System gemäß der Erfindung, z. B. in dem 8 · 8-DCT-System, wird die Matrix der diskreten Cosinus-Transformation zerlegt in eine Konstantenmatrix [Q] mit Faktoren 1, 0 und -1 und eine Matrix [R], die weniger irrationale Zahlen enthält als die diskrete Cosinus- Transformationsmatrix, wobei mit Hilfe der Addier- und Subtrahierschaltung Additionen und Subtraktionen durchgeführt werden, die der Berechnung des inneren Produkts der Daten der Matrixform mit der Konstantenmatrix [Q] entsprechen, und wobei mit Hilfe der Multiplizier- und Addierschaltung Multiplikationen und Additionen durchgeführt werden, die der Berechnung des inneren Produkts des Rechenergebnisses der Addier- und Subtrahierschaltung mit der Matrix [R] entsprechen, so daß die Multiplikation in der Multiplizier- und Addierschaltung mit weniger Multiplikationsschritten durchgeführt werden kann als bei der Multiplikation der Daten einer Matrixform mit der Standardmatrix der diskreten Cosinus-Transformation.
  • Es ist deshalb möglich, die Zahl der Operationen zu reduzieren, an denen irrationale Zahlen beteiligt sind, und dadurch die Genauigkeit der Rechenergebnisse zu verbessern. Es ist ferner möglich die Zahl der Multiplizierer zu verringern, so daß die Schaltungsstruktur einfacher und der Schaltungsaufwand kleiner wird. Da die Zahl der Operationen, an denen irrationale Zahlen beteiligt sind, kleiner ist, ist es ferner möglich, die Akkumulierung des bei der Approximierung der irrationalen Zahlen auftretenden Fehlers zu reduzieren. Außerdem kann die Arbeitsgeschwindigkeit verbessert werden.
  • Bei dem 8 · 8-IDCT-System gemäß der Erfindung wird auch die Matrix der inversen diskreten Cosinus-Transformation zerlegt in eine Transpositionsmatrix [Rt], die weniger irrationale Zahlen enthält als die Matrix der diskreten Cosinus-Transformation, und eine Konstanten-Transpositionsmatrix [Qt] mit den Faktoren 1, 0 und -1, wobei die Multiplikation und Addition zur Berechnung des inneren Produkts aus den Rechenergebnissen der Addier- und Subtrahierschaltung und der Matrix [Rt] von der Multiplizier- und Addierschaltung durchgeführt wird, und die Addition und Subtraktion zur Berechnung des inneren Produkts aus den Daten einer Matrixform und der Konstanten-Transpositionsmatrix [Qt] von der Addier- und Subtrahierschaltung durchgeführt wird, so daß die Multiplikation in der Multiplizier- und Addierschaltung mit weniger Multiplikationsschritten durchgeführt werden kann als bei der Multiplikation der Daten einer Matrixform mit der Standardmatrix der inversen diskreten Cosinus- Transformation.
  • Es ist deshalb möglich, die Zahl der Operationen zu reduzieren, an denen irrationale Zahlen beteiligt sind, und dadurch die Genauigkeit der Rechenergebnisse zu verbessern. Es ist ferner möglich die Zahl der Multiplizierer zu verringern, so daß die Schaltungsstruktur einfacher und der Schaltungsaufwand kleiner wird. Da die Zahl der Operationen, an denen irrationale Zahlen beteiligt sind, kleiner ist, ist es ferner möglich, die Akkumulierung des bei der Approximierung der irrationalen Zahlen auftretenden Fehlers zu reduzieren. Außerdem kann die Arbeitsgeschwindigkeit verbessert werden.
  • Es lassen sich zahlreiche und sehr verschiedene Ausführungsbeispiele der Erfindung konstruieren, ohne daß der Bereich der Erfindung verlassen wird. Die vorliegende Erfindung ist selbstverständlich nicht auf die oben beschriebenen spezifischen Ausführungsbeispiele beschränkt.

Claims (22)

1. Verfahren zur Steuerung eines physikalischen Transformationsprozesses in einer DCT-Transformationsschaltung zum Transformieren von auf Bilddaten bezogenen elektrischen Eingangssignalen, die in einen realen Raum mit 8 Zeilen · 8 Spalten angeordnete binäre Daten repräsentieren, in elektrische Ausgangssignale, die binäre Daten in einen Frequenzraum mit 8 Zeilen · 8 Spalten repräsentieren, wobei das Verfahren eine zweidimensionale diskrete Cosinus-Transformation mit 8 Zeilen · 8 Spalten nach der folgenden Gleichung ausführt:
[C] = 1/2 [R] [X] [Q]
worin [X] die Daten einer Matrix bedeutet, die der diskreten Cosinus- Transformation unterzogen werden soll und folgendermaßen definiert ist:
[X] = xj (j = 0 ~ 7)
[C] Daten einer Matrix bedeutet, die folgendermaßen definiert ist:
[C] = cj (j = 0 ~ 7)
[Q] eine 8 · 8-Matrix bedeutet, die folgendermaßen definiert ist:
[R] eine 8 · 8-Matrix bedeutet, die folgendermaßen definiert ist:
mit A = cos(π/4)
B = cos(π/8)
C = cos(3π/8)
D = cos(3π/16)
E = cos(3π/16)
F = cos(5π/16)
und G = cos(7π/16)
wobei das Verfahren die Verfahrensschritt umfaßt:
eine erste Berechnung zum Berechnen einer Matrix [S] [Q] · [X], wobei [S] = s&sub1; (j = 0 ~ 7 );
eine zweite Berechnung zum Berechnen einer Matrix [T] [R] · [S], wobei [T] = t&sub1; (j = 0 ~ 7) und
Verschieben der Matrix [T] um ein Bit, um dadurch die Matrix [C] = [T]/2 zu gewinnen.
2. Verfahren nach Anspruch 1, bei dem die erste Berechnung durch Additionen und Subtraktionen ausgeführt wird, wobei eine Addition erfolgt, wenn ein Faktor in der Matrix [Q] gleich 1 ist, und eine Subtraktion erfolgt, wenn ein Faktor in der Matrix [Q] gleich -1 ist, um dadurch die Matrix [S] zu gewinnen.
3. Verfahren nach Anspruch 2, bei dem die erste Berechnung durch eine Pipeline- Verarbeitung erfolgt, wobei die folgenden Operationen ausgeführt werden:
in einer ersten Zeiteinheit: (x&sub0; + x&sub7;) und ein Element s&sub7; = x&sub0; - x&sub7;,
in einer zweiten Zeiteinheit: (x&sub1; + x&sub6;) und ein Element s&sub6; = x&sub1; - x&sub6;,
in einer dritten Zeiteinheit: (x&sub2; + x&sub5;) und ein Element s&sub5; = x&sub2; - x&sub5;,
in einer vierten Zeiteinheit: (x&sub3; + x&sub4;) und ein Element s&sub4; = x&sub3; - x&sub4;,
in einer fünften Zeiteinheit: (x&sub0; + x&sub7;) + (x&sub3; + x&sub4;) und ein Element s&sub3; = (x&sub0; + x&sub7;) - (x&sub3; + x&sub4;),
in einer sechsten Zeiteinheit: (x&sub1; + x&sub6;) + (x&sub2; + x&sub5;) und ein Element s&sub2; = (x&sub1; + x&sub6;) - (x&sub2; + x&sub5;), und
in einer siebten Zeiteinheit: ein Element s&sub0; = {(x&sub0; + x&sub7;) + (x&sub3; + x&sub4;)} + {(x&sub1; + x&sub6;) + (x&sub2; + x&sub5;)} und ein Element s&sub1; = {(x&sub0; + x&sub7;) + (x&sub3; + x&sub4;)} - {(x&sub1; + x&sub6;) + (x&sub2; + x&sub5;)},
um dadurch die Matrix [S] zu gewinnen, die folgenden Elemente enthält:
s&sub0; = x&sub0; + x&sub1; + x&sub2; + x&sub3; + x&sub4; + x&sub5; + x&sub6; + x&sub7;
s&sub1; = x&sub0; - x&sub1; - x&sub2; + x&sub3; + x&sub4; - x&sub5; - x&sub6; + x&sub7;
s&sub2; = x&sub1; - x&sub2; - x&sub5; + x&sub6;
s&sub3; = x&sub0; - x&sub3; - x&sub4; + x&sub7;
s&sub4; = x&sub3; - x&sub4;
s&sub5; = x&sub2; - x&sub5;
s&sub6; = x&sub1; - x&sub6;
und s&sub7; = x&sub0; - x&sub7;
4. Verfahren nach Anspruch 3, bei dem die zweite Berechnung durch eine Pipeline- Verarbeitung erfolgt, wobei die folgenden Operationen ausgeführt werden:
in einer ersten Zeiteinheit: ein Element t&sub0; = A · s&sub0;, G · s&sub4; und E · s&sub4;,
in einer zweiten Zeiteinheit: ein Element t&sub4; = A · s&sub1;, (G · s&sub4;) + F · s&sub5; und (E · s&sub4;) + G · s&sub5;,
in einer dritten Zeiteinheit: C · s&sub2;, {(G · s&sub4;) + F · s&sub5;)} + E · s&sub6;, und {(E · s&sub4;) + (G · s&sub5;)} - D · s&sub6;,
in einer vierten Zeiteinheit: ein Element t&sub2; = (C · s&sub2;) + B · s&sub3;, ein Element t&sub1; = {(G · s&sub4;) + (F · s&sub5;) + E · s&sub6;} + D · s&sub7; und ein Element t&sub5; = {(E · s&sub4;) + (G · s&sub5;) - (D · s&sub6;)} + Fs&sub7;,
in einer fünften Zeiteinheit: -B · s&sub2;, -F · s&sub4; und -D · s&sub4;,
in einer sechsten Zeiteinheit: ein Element t&sub6; = (-B · s&sub2;) + C · s&sub3;, (-F · s&sub4;) - D · s&sub5; und (-D · s&sub4;) + E · s&sub5;,
in einer siebten Zeiteinheit: (-F · s&sub4; - D · s&sub5;) - G · s&sub6; und (-D · s&sub4; + E · s&sub5;) -F · S&sub6; und,
in einer achten Zeiteinheit: ein Element t&sub3; = (-F · s&sub4; - D · s&sub5; - G · s&sub6;) + E · s&sub7; und ein
Element t&sub7; = (-D · s&sub4; + E · s&sub5; -F · s&sub6;) + G · s&sub7;,
um dadurch die Matrix [T] zu gewinnen, die folgenden Elemente enthält:
und
5. System zur Steuerung eines physikalischen Transformationsprozesses in einer DCT- Transformationsschaltung zum Transformieren von auf Bilddaten bezogenen elektrischen Eingangssignalen, die in einen realen Raum mit 8 Zeilen · 8 Spalten angeordnete binäre Daten repräsentieren, in elektrische Ausgangssignale, die binäre Daten in einen Frequenzraum mit 8 Zeilen · 8 Spalten repräsentieren, wobei das Verfahren eine zweidimensionale diskrete Cosinus-Transformation mit 8 Zeilen · 8 Spalten nach der folgenden Gleichung ausführt:
[C] = 1 /2 [R] [X] [Q]
worin [X] die Daten einer Matrix bedeutet, die der diskreten Cosinus- Transformation unterzogen werden soll und folgendermaßen definiert ist:
[X] = xj (j = 0 ~ 7)
[C] Daten einer Matrix bedeutet, die folgendermaßen definiert ist:
[C] = cj (j = 0 ~ 7)
[Q] eine 8 · 8-Matrix bedeutet, die folgendermaßen definiert ist:
[R] eine 8 · 8-Matrix bedeutet, die folgendermaßen definiert ist:
mit
A = cos(π/4)
B = cos(π/8)
C = cos(3π/8)
D = cos(3π/8)
E = cos(3π/16)
F = cos(5π/16)
und G = cos(7π/16)
wobei das System aufweist:
eine erste Recheneinrichtung (2) zum Berechnen einer Matrix [S] = [Q] · [X], wobei [S] = sj (j = 0 ~ 7);
eine zweite Recheneinrichtung (4) zum Berechnen einer Matrix [T] [R] · [S], wobei[T] = tj(j = 0 ~ 7)und
einer Verschiebungseinrichtung zum Verschieben der Matrix [T] um ein Bit, um dadurch die Matrix [C] = [T]/2 zu gewinnen.
6. System nach Anspruch 5, bei dem die erste Recheneinrichtung (2) mehrere Addiereinrichtungen (11) und mehrere Subtrahiereinrichtungen (12) umfaßt, wobei
jede Addiereinrichtung (11) zwei Datenelemente der Matrix [X] addieren kann und
jede Subtrahiereinrichtung (12) ein Datenelement der Matrix [X] von einem anderen Datenelement der Matrix [X] subtrahieren kann und
die Beziehung der beiden zu addierenden Datenelemente und die Beziehung zwischen dem genannten einen Datenelement und dem genannten anderen Datenelement durch die genannte Berechnung [Q]·[X] definiert ist.
7. System nach Anspruch 6, bei dem die erste Recheneinrichtung (2) aufweist:
eine erste Addiereinrichtung (11a) zum Berechnen von (x&sub0; + x&sub7;
eine erste Subtrahiereinrichtung (12a) zum Berechnen eines Elements s&sub7; = x&sub0; - x&sub7;,
eine zweite Addiereinrichtung (11b) zum Berechnen (x&sub1; + x&sub6;),
eine zweite Subtrahiereinrichtung (12b) zum Berechnen eines Elements s&sub6; = x&sub1; - x&sub6;,
eine dritte Addiereinrichtung (11c) zum Berechnen von (x&sub2; + x&sub5;)
eine dritte Subtrahiereinrichtung (12c) zum Berechnen eines Elements s&sub5; = x&sub2; - x&sub5;,
eine vierte Addiereinrichtung (11d) zum Berechnen von (x&sub3; + x&sub4;)
eine vierte Subtrahiereinrichtung (12d) zum Berechnen eines Elements s&sub4; = x&sub3; - x&sub4;,
eine fünfte Addiereinrichtung (11e) zum Addieren der Daten (x&sub0; + x&sub7;) aus der ersten Addiereinrichtung (11a) und der Daten (x&sub3; + x&sub4;) aus der vierten Addiereinrichtung (11d)
eine fünfte Subtrahiereinrichtung (12e) zum Subtrahieren der Daten (x&sub3; + x&sub4;) aus der vierten Addiereinrichtung (11d) von den Daten (x&sub0; + x&sub7;) aus der ersten Addiereinrichtung (11a) und zur Lieferung eines Elements s&sub3; = {(x&sub0; + x&sub7;) - (x&sub3; + x&sub4;)},
eine sechste Addiereinrichtung (11f) zum Addieren der Daten (x&sub1; + x&sub6;) aus der zweiten Addiereinrichtung (11b) und der Daten (x&sub2; + x&sub5;) aus der dritten Addiereinrichtung (11c)
eine sechste Subtrahiereinrichtung (12f) zum Subtrahieren der Daten (x&sub2; + x&sub5;) aus der dritten Addiereinrichtung (11c) von den Daten (x&sub1; + x&sub6;) aus der zweiten Addiereinrichtung (11b) und zur Lieferung eines Elements s&sub2; = (x&sub1; + x&sub6;) - (x&sub2; + x&sub5;),
eine siebte Addiereinrichtung (11g) zum Addieren der Daten aus der fünften Addiereinrichtung (11e) und der Daten aus der sechsten Addiereinrichtung (11f) und zur Lieferung eines Elements so = x&sub0; + x&sub1; + x&sub2; + x&sub3; + x&sub4; + x&sub5; + x&sub6; + x&sub7;,
und eine siebte Subtrahiereinrichtung (12g) zum Subtrahieren der Daten aus der sechsten Addiereinrichtung (11f) von den Daten aus der fünften Addiereinrichtung (11e) und zur Lieferung eines Elements s&sub1; = x&sub0; - x&sub1; - x&sub2; + x&sub3; + x&sub4; - x&sub5; - x&sub6; + x&sub7;.
8. System nach Anspruch 7, bei dem die erste bis siebte Addiereinrichtung (11a bis 11g) zu einer einzigen Addiereinrichtung integriert sind und bei dem die erste bis siebte Subtrahiereinrichtung (12a bis 12g) zu einer einzigen Subtrahiereinrichtung integriert sind,
wobei ferner eine Zwischenwert-Speichereinrichtung (3) zum Speichern der in der genannten einzigen Addireinrichtung und der genannten einzigen Subtrahiereinrichtung berechneten Ergebnisse vorgesehen ist und
wobei die erste Recheneinrichtung (2) einen Pipeline-Prozessor aufweist, um mit Hilfe der einzigen Addiereinrichtung, der einzigen Subtrahiereinrichtung und der Zwischenwert-Speichereinrichtung (3) die folgenden Operationen durchzuführen:
in einer ersten Zeiteinheit: (x&sub0; + x&sub7;) und ein Element s&sub7; = x&sub0; - x&sub7;,
in einer zweiten Zeiteinheit: (x&sub1; + x&sub6;) und ein Element s&sub6; = x&sub1; - x&sub6;,
in einer dritten Zeiteinheit: (x&sub2; + x&sub5;) und ein Element s&sub5; = x&sub2; - x&sub5;,
in einer vierten Zeiteinheit: (x&sub3; + x&sub4;) und ein Element s&sub4; = x&sub3; - x&sub4;,
in einer fünften Zeiteinheit: (x&sub0; + x&sub7;) + (x&sub3; + x&sub4;) und ein Element s&sub3; = (x&sub0; + x&sub7;) - (x&sub3; + x&sub4;),
in einer sechsten Zeiteinheit: (x&sub1; + x&sub6;) + (x&sub2; + x&sub5;) und ein Element s&sub2; = (x&sub1; + x&sub6;) - (x&sub2; + x&sub5;),
in einer siebten Zeiteinheit: ein Element so = {(x&sub0; + x&sub7;) + (x&sub3; + x&sub4;)} + {(x&sub1; + x&sub6;) + (x&sub2; + x&sub5;)} und ein Element s&sub1; = {(x&sub0; + x&sub7;) + (x&sub3; + x&sub4;)} - {(x&sub1; + x&sub6;) + (x&sub2; + x&sub5;)},
um dadurch die Matrix [S] zu gewinnen, die folgenden Elemente enthält:
s&sub0; = x&sub0; + x&sub1; + x&sub3; + x&sub4; + x&sub5; + x&sub7;
s&sub1; = x&sub0; - x&sub1; - x&sub2; + x&sub3; + x&sub4; - x&sub5; - x&sub6; + x&sub7;
s&sub2; = x&sub1; - x&sub2; - x&sub5; + x&sub6;
s&sub3; = x&sub0; - x&sub3; - x&sub4; + x&sub7;
s&sub4; = x&sub3; - x&sub4;
s&sub5; = x&sub2; - x&sub5;
s&sub6; = x&sub1; - x&sub6;
und s&sub7; = x&sub0; - x&sub7;
9. System nach Anspruch 7, bei dem die zweite Recheneinrichtung (4) aufweist:
wenigstens eine Koeffizienten-Speichereinrichtung (50, 51) zum Speichern der irrationalen Zahlen A, B, -B, C, D, -D, E, F, -F und G,
eine erste Multiplizier- und Subtrahiereinrichtung (20) mit einem ersten Eingang zum aufeinanderfolgenden Aufnehmen von Daten, die die Elemente s&sub0;, s&sub1;, s&sub2;, s&sub3;, s&sub2; und s&sub3; enthalten, einer ersten Multipliziereinrichtung (30) zum Multiplizieren der aufgenommenen Daten mit den von der Koeffizienten-Speichereinrichtung (50) gelieferten irrationalen Zahlen A, -B und C und einer ersten Akkumuliereinrichtung (40) zum Akkumulieren der Daten aus der ersten Multipliziereinrichtung (30),
eine zweite Multiplizier- und Subtrahiereinrichtung (21) mit einem zweiten Eingang zum aufeinanderfolgenden Aufnehmen von Daten, die die Elemente s&sub4;, s&sub5;, s&sub6;, s&sub7;, s&sub4;, s&sub5;, s&sub6; und s&sub7; enthalten, einer zweiten Multipliziereinrichtung (30) zum Multiplizieren der aufgenommenen Daten mit den von der Koeffizienten-Speichereinrichtung (51) gelieferten irrationalen Zahlen G, F, E, -F, -D und -G und einer zweiten Akkumuliereinrichtung (40) zum Akkumulieren der Daten aus der zweiten Multipliziereinrichtung (30) und
eine dritte Multiplizier- und Subtrahiereinrichtung (22) mit einem dritten Eingang zum aufeinanderfolgenden Aufnehmen von Daten, die die Elemente s&sub4;, s&sub5;, s&sub6;, s&sub7;, s&sub4;, s&sub5;, s&sub6; und s&sub7; enthalten, einer dritten Multipliziereinrichtung (30) zum Multiplizieren der aufgenommenen Daten mit den von der Koeffizienten-Speichereinrichtung (51) gelieferten irrationalen Zahlen E, G, -D, F und -F und einer dritten Akkumuliereinrichtung (40) zum Akkumulieren der Daten aus der dritten Multipliziereinrichtung (30),
wobei die Koeffizienten-Speichereinrichtung (50, 51) nach Maßgabe der genannten Berechnung [S] · [Q] eine der irrationalen Zahlen A, B, -B, C, D, -D, E, F, -F und G an die erste bis dritte Multipliziereinrichtung (30) liefert,
um dadurch die Matrix [T] zu gewinnen, die folgenden Elemente enthält:
und
10. System nach Anspruch 9, bei dem der zweite Eingang und der dritte Eingang zu einem einzigen Eingang integriert sind und dieser einzige Eingang aufeinanderfolgend Daten aufnimmt, die die Elemente s&sub4;, s&sub5;, s&sub6;, s&sub4;, s&sub5;, s&sub6; und s&sub7; umfassen und diese an die zweite und die dritte Multipliziereinrichtung (30) ausgibt.
11. System nach Anspruch 10, bei dem die zweite Recheneinrichtung (4) einen Pipeline-Prozessor aufweist, mit dessen Hilfe die erste bis dritte Multiplizier- und Subtrahiereinrichtung (20, 21, 22) jeweils die folgenden Operationen ausführen:
in einer ersten Zeiteinheit: ein Element t&sub0; = A · s&sub0;, G · s&sub4; und E · s&sub4;,
in einer zweiten Zeiteinheit: ein Element t&sub4; = A · s&sub1;, (G · s&sub4;) + F · s&sub5; und (E · s&sub4;) + G · s&sub5;,
in einer dritten Zeiteinheit: C · s&sub2;, {(G · s&sub4;) + F · s&sub5;)} + E · s&sub6; und {(E · s&sub4;) + G · s&sub5;} - D · s&sub6;,
in einer vierten Zeiteinheit: ein Element t&sub2; = (C · s&sub2;) + B · s&sub3;, ein Element t&sub1; = {(G · s&sub4;) + F · s&sub5;) + E · s&sub6;} + D · s&sub7; und ein Element t&sub5; = {(E · s&sub4;)+ G · s&sub5; - D · s&sub6;} + F · s&sub7;,
in einer fünften Zeiteinheit: -B · s&sub2;, -F · s&sub4; und -D · s&sub4;,
in einer sechsten Zeiteinheit: ein Element t&sub6; = (-B · s&sub2;) + C · s&sub3;, (-F · s&sub4;) - D · s&sub5; und (- D · s&sub4;) + E · s&sub5;,
in einer siebten Zeiteinheit: keine Operation, (-F · s&sub4; - D · s&sub5;) - G · s&sub6; und (-D · s&sub4; + E · s&sub5;) - F · s&sub6; und,
in einer achten Zeiteinheit: keine Operation, ein Element t&sub3; = (-F · s&sub4; - D · s&sub5; - G · s&sub6;) + E · s&sub7; und ein Element t&sub7; = (-D · s&sub4; + E · s&sub5; - F · s&sub6;) + G · s&sub7;.
12. Verfahren zum Steuern eines physikalischen Transformationsprozesses in einer IDCT-Transformationsschaltung zum Transformieren von elektrischen Eingangssignalen, die sich auf physikalische Größen beziehen, welche in einen Frequenzraum mit 8 Zeilen · 8 Spalten angeordnete binäre Daten repräsentieren, in elektrische Ausgangssignale, die binäre Daten in einen realen Raum mit 8 Zeilen · 8 Spalten repräsentieren, wobei das Verfahren eine inverse zweidimensionale diskrete Cosinus- Transformation mit 8 Zeilen · 8 Spalten von binären Daten in Matrixform nach der folgenden Gleichung ausführt:
[X] = 1 /2 [Qt] [Rt] [C]
worin [C] Daten einer Matrix bedeutet, die folgendermaßen definiert ist:
[C] = cj (j = 0 ~ 7)
[X] die Daten einer Matrix bedeutet, die der diskreten Cosinus-Transformation unterzogen werden soll und folgendermaßen definiert ist:
[X] = xj (j = 0 ~ 7)
[Rt] eine 8 · 8-Matrix bedeutet, die folgendermaßen definiert ist:
mit A = cos(π/4)
B = cos(π/8)
C = cos(3π/8)
D = cos(π/16)
E = cos(3π/16)
F = cos(5π/16)
und G = cos(7π/16)
[Qt] eine 8 · 8-Matrix bedeutet, die folgendermaßen definiert ist:
wobei das Verfahren die Verfahrensschritt umfaßt:
eine erste Berechnung zum Berechnen einer Matrix [T] = [Rt] [C], wobei [T] = tj, mit
(j = 0 ~ 7);
eine zweite Berechnung zum Berechnen einer Matrix [S] = [Qt] · [T], wobei S = sj, mit
(j = 0 ~ 7)und
Verschieben der Matrix [S] um ein Bit, um dadurch die Matrix [X] = [S]/2 zu gewinnen.
13. Verfahren nach Anspruch 12, bei dem die zweite Berechnung durch Additionen und Subtraktionen ausgeführt wird, wobei eine Addition erfolgt, wenn ein Faktor in der Matrix [Qt] gleich 1 ist, und eine Subtraktion erfolgt, wenn ein Faktor in der Matrix [Qt] gleich -1 ist, um dadurch die Matrix [T] zu gewinnen.
14. Verfahren nach Anspruch 13, bei dem die bei dem die erste Berechnung durch eine Pipeline-Verarbeitung erfolgt, wobei die folgenden Operationen ausgeführt werden:
in einer ersten Zeiteinheit: ein Element t&sub0; = A · c&sub0;, G · c&sub1; und E · c&sub1;,
in einer zweiten Zeiteinheit: ein Element t&sub1; = A · c&sub4;, (G · c&sub1;) - F · c&sub3; und (E · c&sub1;) - G · c&sub3;,
in einer dritten Zeiteinheit: C · c&sub2;, {(G · c&sub1;) - F · c&sub3;)} + E · c&sub5;, und {(E · c&sub1;) - G · c&sub3;} - D · c&sub5;,
in einer vierten Zeiteinheit: ein Element t&sub2; = (C · c&sub2;) - B · c&sub6;, ein Element t&sub4; = {(G · c&sub1;) - F · c&sub3;) + E · c&sub5;} - D · c&sub7; und ein Element t&sub6; = {(E · c&sub1;) -G · c&sub3; - D · c&sub5;} - F · c&sub7;,
in einer fünften Zeiteinheit: B · c&sub2;, F · c&sub1; und D · c&sub1;,
in einer sechsten Zeiteinheit: ein Element t&sub3; = (B · c&sub2;) + C · c&sub6;, (F · c&sub1;) - D · c&sub3; und
(D · c&sub1;) + E · c&sub3;,
in einer siebten Zeiteinheit: (F · c&sub1; - D · c&sub3; + G · c&sub5;) und (D · c&sub1; + E · c&sub3;) - F · c&sub5; und,
in einer achten Zeiteinheit: ein Element t&sub5; = (F · c&sub1; - D · c&sub3; + G · c&sub5;) + E · c&sub7; und ein
Element t&sub7; = (D · c&sub1; + E · c&sub3; + F · c&sub5;) + G · c&sub7;,
um dadurch die Matrix [T] zu gewinnen, die folgenden Elemente enthält:
t&sub0; - A · c&sub0;
t&sub1; = A · c&sub4;
t&sub2; = C · c&sub2; -B ·
c&sub6;
t&sub3; = B · c&sub2; + C ·
c&sub6;
t&sub4; = G · c&sub1; - F · c&sub3; + E · c&sub5; - D · c&sub7;
t&sub5; = F · c&sub1; - D · c&sub3; + G · c&sub5; + E · c&sub7;
t&sub6; = D · c&sub1; - G · c&sub3; - D · c&sub5; - F · c&sub7;
und t&sub7; = D · c&sub1; + E · c&sub3; + F · c&sub5; - G ·
c&sub7;.
15. Verfahren nach Anspruch 14, bei dem die zweite Berechnung durch eine Pipeline- Verarbeitung erfolgt, wobei die folgenden Operationen ausgeführt werden:
in einer ersten Zeiteinheit: (t&sub0; + t&sub1;) und (t&sub0; - t&sub1;),
in einer zweiten Zeiteinheit: (t&sub0; + t&sub1;) + t&sub3; und (t&sub0; + t&sub1;) - t&sub3;,
in einer dritten Zeiteinheit: (t&sub0; - t&sub1;) + t&sub2; und (t&sub0; - t&sub1;) - t&sub2;,
in einer vierten Zeiteinheit: ein Element s&sub0; = (t&sub0; + t&sub1; +t&sub3;) + t&sub7; und ein Element s&sub7; = (t&sub0; + t&sub1; + t&sub3;) - t&sub7;,
in einer fünften Zeiteinheit: ein Element s&sub1; = (t&sub0; - t&sub1; +t&sub2;) + t&sub6; und ein Element s&sub6; = (t&sub0; - t&sub1;+ t&sub2;) - t&sub6;,
in einer sechsten Zeiteinheit: ein Element s&sub3; = (t&sub0; + t&sub1; - t&sub3;) + t&sub4; und ein Element s&sub4; =(t&sub0; + t&sub1; - t&sub3;) - t&sub4;,
in einer siebten Zeiteinheit: ein Element s&sub2; = (t&sub0; - t&sub1; - t&sub2;) + t&sub5; und ein Element s&sub5; = (t&sub0; - t&sub1; - t&sub2;) - t&sub5;,
um dadurch die Matrix [S] zu gewinnen, die folgenden Elemente enthält:
s&sub0; = x&sub0;+ x&sub1; + x&sub2; + x&sub3; + x&sub4; + x&sub5; + x&sub6; + x&sub7;
s&sub1; - x&sub0; - x&sub1; - x&sub2; + x&sub3; + x&sub4; - x&sub5; - x&sub6; + x&sub7;
s&sub2; = x&sub1; - x&sub2; - x&sub5; + x&sub6;
s&sub3; = x&sub0; - x&sub3; - x&sub4; + x&sub7;
s&sub4; = x&sub3; - x&sub4;
s&sub5; = x&sub2; - x&sub5;
s&sub6; = x&sub1; - x&sub6;
und s&sub7; = x&sub0; - x&sub7;
16. System zum Steuern eines physikalischen Transformationsprozesses in einer IDCT-Transformationsschaltung zum Transformieren von elektrischen Eingangssignalen, die sich auf physikalische Größen beziehen, welche in einer Frequenzdomäne mit 8 Zeilen · 8 Spalten angeordnete binäre Daten repräsentieren, in elektrische Ausgangssignale, die binäre Daten in einer realen Domäne mit 8 Zeilen · 8 Spalten repräsentieren, wobei das Verfahren eine inverse zweidimensionale diskrete Cosinus- Transformation mit 8 Zeilen · 8 Spalten von binären Daten in Matrixform nach der folgenden Gleichung ausführt:
[X] = 1/2 [Qt] [Rt] [C]
worin [C] Daten einer Matrix bedeutet, die folgendermaßen definiert ist:
[C] = cj (j = 0 ~ 7)
[X] die Daten einer Matrix bedeutet, die der diskreten Cosinus-Transformation unterzogen werden soll und folgendermaßen definiert ist:
[X] = xj (j = 0 ~ 7)
[Rt] eine 8 · 8-Matrix bedeutet, die folgendermaßen definiert ist:
mit A = cos(π/4)
B = cos(3π/8)
C = cos(π/8)
D = cos(π/16)
E = cos(3π/16)
F = cos(5π/16)
und G = cos(7π/16)
[Qt] eine 8 x 8-Matrix bedeutet, die folgendermaßen definiert ist:
wobei das System aufweist:
eine erste Recheneinrichtung (62) zum Berechnen einer Matrix [T] = [Rt] · [C], wobei[T] = tj (j = 0 ~ 7);
eine zweite Recheneinrichtung (64) zum Berechnen einer Matrix [S] = [Qt] · [T], wobei [S] = sj (j = 0 ~ 7) und
einer Verschiebungseinrichtung (64) zum Verschieben der Matrix [S] um ein Bit, um dadurch die Matrix [X] = [S]/2 zu gewinnen.
17. System nach Anspruch 16, bei dem die zweite Recheneinrichtung (64) mehrere Addiereinrichtungen und mehrere Subtrahiereinrichtungen umfaßt, wobei
jede Addiereinrichtung zwei Datenelemente der Matrix [T] addieren kann und
jede Subtrahiereinrichtung ein Datenelement der Matrix [T] von einem anderen
Datenelement der Matrix [T] subtrahieren kann und
die Beziehung der beiden zu addierenden Datenelemente und die Beziehung zwischen dem genannten einen Datenelement und dem genannten anderen Datenelement durch die genannte Berechnung [Qt] · [T] definiert ist.
18. System nach Anspruch 17, bei dem die zweite Recheneinrichtung (64) aufweist:
eine erste Addiereinrichtung (11a') zum Berechnen von (t&sub0; + t&sub1;),
eine erste Subtrahiereinrichtung (12a') zum Berechnen von (t&sub0; - t&sub1;),
eine zweite Addiereinrichtung (11b') zum Addieren der Daten (t&sub0; + t&sub1;) aus der ersten Addiereinrichtung zu dem Datenelement t&sub3;,
eine zweite Subtrahiereinrichtung (12b') zum Subtrahieren des Datenelements t&sub3; von (t&sub0; + t&sub1;) aus der ersten Addiereinrichtung,
eine dritte Addiereinrichtung (11c') zum Addieren der Daten (t&sub0; - t&sub1;) aus der ersten Subtrahiereinrichtung zu dem Datenelement t&sub2;,
eine dritte Subtrahiereinrichtung (12c') zum Subtrahieren des Datenelements t&sub2; von
(t&sub0; - t&sub1;) aus der ersten Subtrahiereinrichtung (12a'),
eine vierte Addiereinrichtung (11d') zum Addieren der Daten (t&sub0; + t&sub1; + t&sub3;) aus der zweiten Addiereinrichtung (11b') zu dem Datenelement t&sub7; und zur Lieferung eines Elements
s&sub0; = (t&sub0; + t&sub1; + t&sub3; + t&sub7;),
eine vierte Subtrahiereinrichtung (12d') zum Subtrahieren des Datenelements t&sub7; von
(t&sub0; + t&sub1; + t&sub3;) aus der zweiten Addiereinrichtung (11b') und zur Lieferung eines Elements s&sub7; = t&sub0; + t&sub1; + t&sub3; - t&sub7;,
eine fünfte Addiereinrichtung (11e') zum Addieren der Daten (t&sub0; - t&sub1; + t&sub2;) aus der dritten Addiereinrichtung (11c') zu dem Datenelement t&sub6; und zur Lieferung eines Elements
s&sub1; = t&sub0; - t&sub1; + t&sub3; - t&sub6;
eine fünfte Subtrahiereinrichtung (12e') zum Subtrahieren des Datenelements t&sub6; von (t&sub0; - t&sub1; + t&sub2;) aus der dritten Addiereinrichtung (11c') und zur Lieferung eines Elements
s&sub6; = t&sub0; - t&sub1; + t&sub2; - t&sub6;,
eine sechste Addiereinrichtung (11f') zum Addieren der Daten (t&sub0; - t&sub1; - t&sub2;) aus der dritten Subtrahiereinrichtung (12c') zu dem Datenelement t&sub5; und zur Lieferung eines Elements s&sub2; = t&sub0; - t&sub1; - t&sub2; + t&sub5;,
eine sechste Subtrahiereinrichtung (12f') zum Subtrahieren des Datenelements t&sub5; von (t&sub0; - t&sub1; - t&sub2;) aus der dritten Subtrahiereinrichtung (12c') und zur Lieferung eines Elements s&sub5; = t&sub0; - t&sub1; - t&sub2; - t&sub5;,
eine siebte Addiereinrichtung (11g) zum Addieren der Daten (t&sub0; + t&sub1; - t&sub3;) aus der zweiten Subtrahiereinrichtung (12b') zu dem Datenelement t&sub5; und zur Lieferung eines Elements s&sub3; = t&sub0; + t&sub1; - t&sub3; + t&sub4;,
und eine siebte Subtrahiereinrichtung (12g') zum Subtrahieren des Datenelements t&sub4; von (t&sub0; + t&sub1; - t&sub3;) aus der zweien Subtrahiereinrichtung (12b') und zur Lieferung eines Elements s&sub4; = t&sub0; + t&sub1; - t&sub3; - t&sub4;.
19. System nach Anspruch 18, bei dem die erste Recheneinrichtung (62) aufweist:
wenigstens eine Koeffizienten-Speichereinrichtung (50, 51) zum Speichern der irrationalen Zahlen A, B, -B, C, -D, E, F, -F und G,
eine erste Multiplizier- und Subtrahiereinrichtung mit einem ersten Eingang zum aufeinanderfolgenden Aufnehmen von Daten, die die Elemente c&sub0;, c&sub4;, c&sub2;, c&sub6;, c&sub2; und c&sub6; enthalten, einer ersten Multipliziereinrichtung zum Multiplizieren der aufgenommenen Daten mit den von der Koeffizienten-Speichereinrichtung gelieferten irrationalen Zahlen A, -B und C und einer ersten Akkumuliereinrichtung zum Akkumulieren der Daten aus der ersten Multipliziereinrichtung,
eine zweite Multiplizier- und Subtrahiereinrichtung mit einem zweiten Eingang zum aufeinanderfolgenden Aufnehmen von Daten, die die Elemente c&sub1;, c&sub3;, c&sub5;, c&sub7;, c&sub1;, c&sub3;, c&sub5; und c&sub7; enthalten, einer zweiten Multipliziereinrichtung zum Multiplizieren der aufgenommenen Daten mit den von der Koeffizienten-Speichereinrichtung gelieferten irrationalen Zahlen D, F, E, -F, -D und -G und einer zweiten Akkumuliereinrichtung zum Akkumulieren der Daten aus der zweiten Multipliziereinrichtung und
eine dritte Multiplizier- und Subtrahiereinrichtung mit einem dritten Eingang zum aufeinanderfolgenden Aufnehmen von Daten, die die Elemente c&sub1;, c&sub3;, c&sub5;, c&sub7;, c&sub1;, c&sub3;, c&sub5; und c&sub7; enthalten, einer dritten Multipliziereinrichtung zum Multiplizieren der aufgenommenen Daten mit den von der Koeffizienten-Speichereinrichtung gelieferten irrationalen Zahlen E, -G, -D, F und -F und einer dritten Akkumuliereinrichtung zum Akkumulieren der Daten aus der dritten Multipliziereinrichtung,
wobei die Koeffizienten-Speichereinrichtung nach Maßgabe der genannten Berechnung [Qt] · [C] eine der irrationalen Zahlen A, B, -B, C, D, -D, E, F, -F und G an die erste bis dritte Multipliziereinrichtung liefert,
um dadurch die Matrix [S] zu gewinnen, die folgenden Elemente enthält:
s&sub0; = A · c&sub0;
s&sub1; = A · c&sub4;
s&sub2; = C · c&sub2; - B · c&sub6;
s&sub3; = B · c&sub2; + C · c&sub6;
s&sub4; = G · c&sub1; - F · c&sub3; + E · c&sub5; - D · c&sub7;
s&sub5; = F · c&sub1; - D · c&sub3; + G · c&sub5; + E · c&sub7;
s&sub6; = E · c&sub1; - G · c&sub5; - D · c&sub5; - F · c&sub7;
und s&sub7; = D· c&sub1; + E · c&sub3; + F · c&sub5; - G · c&sub7;.
20. System nach Anspruch 19, bei dem der zweite Eingang und der dritte Eingang zu einem einzigen Eingang integriert sind und dieser einzige Eingang aufeinanderfolgend Daten aufnimmt, die die Elemente c&sub1;, c&sub3;, c&sub5;, c&sub7;, c&sub1;, c&sub3;, c&sub5; und c&sub7; umfassen und diese an die zweite und die dritte Multipliziereinrichtung ausgibt.
21. System nach Anspruch 20, bei dem die zweite Recheneinrichtung einen Pipeline- Prozessor aufweist, mit dessen Hilfe die erste bis dritte Multiplizier- und Subtrahiereinrichtung jeweils die folgenden Operationen ausführen:
in einer ersten Zeiteinheit: ein Element so = A · c&sub0;, G · c&sub1; und E · c&sub1;,
in einer zweiten Zeiteinheit: ein Element s&sub1; = A · c&sub4;, (G · c&sub1;) - F · c&sub3; und (E · c&sub1;) - G · c&sub3;,
in einer dritten Zeiteinheit: C · c&sub2;, {(G · c&sub1;) - F · c&sub3;)} + E · c&sub5;, und {(E · c&sub1;) - G · c&sub3;} - D · c&sub5;.
in einer Vierten Zeiteinheit: ein Element s&sub2; = (C · c&sub2;)- B · c&sub6;, ein Element s&sub4; = {(G · c&sub1;) - F · c&sub3;) - E · c&sub5;} - D · c&sub7; und ein Element s&sub6; = {(E · c&sub1;) - G · c&sub3; - (D · c&sub5;)} + F · c&sub7;,
in einer fünften Zeiteinheit: B · c&sub2;, F · c&sub1; und D · c&sub1;,
in einer sechsten Zeiteinheit: ein Element s&sub3; = (B · c&sub2;) + C · c&sub6;, (F · c&sub1;) - D · c&sub3; und (D · c&sub1;) + E · c&sub3;,
in einer siebten Zeiteinheit: keine Operation, (F · c&sub1; - D · c&sub3;) + G · c&sub5; und (D · c&sub1; + E · + c&sub3;)
F · c&sub5; und
in einer achten Zeiteinheit: keine Operation, ein Element s&sub5; = (F · c&sub1; - D · c&sub3; + G · c&sub5;) + E · c&sub7; und ein Element = (D · c&sub1; + E · c&sub3; + F · c&sub5;) - G · c&sub7;,
wobei ferner eine Zwischenwert-Speichereinrichtung (63) zum Speichern der Ergebnisse in den jeweiligen Zeiteinheiten vorgesehen ist.
22. System nach Anspruch 21, bei dem die erste bis siebte Addiereinrichtung zu einer einzigen Addiereinrichtung integriert sind und bei dem die erste bis siebte Subtrahiereinrichtung zu einer einzigen Subtrahiereinrichtung integriert sind,
wobei die zweite Recheneinrichtung (64) einen Pipeline-Prozessor aufweist, um
mit Hilfe der einzigen Addiereinrichtung, der einzigen Subtrahiereinrichtung und der Zwischenwert-Speichereinrichtung die folgenden Operationen durchzuführen:
in einer ersten Zeiteinheit: (t&sub0; + t&sub1;) und (t&sub0; - t&sub1;)
in einer zweiten Zeiteinheit: (t&sub0; + t&sub1;) + t&sub3; und (t&sub0; + t&sub1;) - t&sub3;,
in einer dritten Zeiteinheit: (t&sub0; - t&sub1;) + t&sub2; und (t&sub0; - t&sub1;) - t&sub2;,
in einer vierten Zeiteinheit: ein Element so = (t&sub0; + t&sub1; + t&sub3;) + t&sub7; und ein Element s&sub7; = (t&sub0; + t&sub1; + t&sub3;) - t&sub7;,
in einer fünften Zeiteinheit: ein Element s&sub1; = (t&sub0; - t&sub1; + t&sub2;) + t&sub6; und ein Element s&sub6; = (t&sub0; - t&sub1; - t&sub1; + t&sub2;) - t&sub6;,
in einer sechsten Zeiteinheit: ein Element s&sub3; = (t&sub0; + t&sub1; - t&sub3;) + t&sub4; und ein Element s&sub4; = (t&sub0; + t&sub1; - t&sub3;) - t&sub4;, und
in einer siebten Zeiteinheit: ein Element s&sub2; = (t&sub0; - t&sub1; - t&sub2;) + t&sub5; und ein Element s&sub5; = (t&sub0; - t&sub1; - t&sub2;) - t&sub5;,
um dadurch die Matrit [S] zu gewinnen, die folgenden Elemente enthält:
s&sub0; = t&sub0; + t&sub1; + t&sub3; + t&sub7;
s&sub1; = t&sub0; - t&sub1; + t&sub2; + t&sub6;
s&sub2; = t&sub0; - t&sub1; - t&sub2; + t&sub5;
s&sub3; = t&sub0; + t&sub1; - t&sub3; + t&sub4;
s&sub4; = t&sub0; + t&sub1; - t&sub3; - t&sub4;
s&sub5; = t&sub0; - t&sub1; - t&sub2; - t&sub5;
s&sub6; = t&sub0; - t&sub1; + t&sub2; - t&sub7;
und s&sub7; = + t&sub1;+ t&sub3; - t&sub7;.
DE69329962T 1992-09-17 1993-09-17 System und Verfahren für die diskrete Cosinus-Transformation und für die inverse diskrete Cosinus-Transformation mit einfacher Struktur und mit hoher Betriebsgeschwindigkeit Expired - Fee Related DE69329962T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4273738A JPH06103301A (ja) 1992-09-17 1992-09-17 8x8離散コサイン変換回路および8x8離散コサイン逆変換回路

Publications (2)

Publication Number Publication Date
DE69329962D1 DE69329962D1 (de) 2001-04-05
DE69329962T2 true DE69329962T2 (de) 2001-09-13

Family

ID=17531882

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69329962T Expired - Fee Related DE69329962T2 (de) 1992-09-17 1993-09-17 System und Verfahren für die diskrete Cosinus-Transformation und für die inverse diskrete Cosinus-Transformation mit einfacher Struktur und mit hoher Betriebsgeschwindigkeit

Country Status (4)

Country Link
US (2) US5629882A (de)
EP (1) EP0588726B1 (de)
JP (1) JPH06103301A (de)
DE (1) DE69329962T2 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336180B1 (en) 1997-04-30 2002-01-01 Canon Kabushiki Kaisha Method, apparatus and system for managing virtual memory with virtual-physical mapping
EP0714212A3 (de) * 1994-11-21 1999-03-31 SICAN, GESELLSCHAFT FÜR SILIZIUM-ANWENDUNGEN UND CAD/CAT NIEDERSACHSEN mbH Bilddekodierer mit konkurrierender Verarbeitung und Verteilung von Verarbeitungseinheiten
JPH08235159A (ja) * 1994-12-06 1996-09-13 Matsushita Electric Ind Co Ltd 逆コサイン変換装置
JP3577134B2 (ja) * 1995-05-29 2004-10-13 シャープ株式会社 データ処理装置
JP2914226B2 (ja) * 1995-06-16 1999-06-28 日本電気株式会社 可逆変換を可能にするディジタル信号の変換符号化方式
JP3274593B2 (ja) * 1995-09-27 2002-04-15 日本電気株式会社 可逆変換可能な変換装置及び逆変換装置
US6222542B1 (en) 1995-10-10 2001-04-24 Anysoft, Ltd Apparatus for and method of acquiring, processing and routing data contained in a GUI window
JP3129392B2 (ja) * 1996-02-02 2001-01-29 日本電気株式会社 2次元idct回路
US5854757A (en) * 1996-05-07 1998-12-29 Lsi Logic Corporation Super-compact hardware architecture for IDCT computation
AUPO648397A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Improvements in multiprocessor architecture operation
US6289138B1 (en) 1997-04-30 2001-09-11 Canon Kabushiki Kaisha General image processor
AUPO647997A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Memory controller architecture
US6061749A (en) 1997-04-30 2000-05-09 Canon Kabushiki Kaisha Transformation of a first dataword received from a FIFO into an input register and subsequent dataword from the FIFO into a normalized output dataword
US6195674B1 (en) 1997-04-30 2001-02-27 Canon Kabushiki Kaisha Fast DCT apparatus
US6414687B1 (en) 1997-04-30 2002-07-02 Canon Kabushiki Kaisha Register setting-micro programming system
US6477467B1 (en) * 1998-07-14 2002-11-05 Westerngeco, L.L.C. Efficient inversion of near singular geophysical signals
US6243730B1 (en) * 1999-05-04 2001-06-05 Sony Electronics, Inc. Methods and systems for performing short integer chen IDCT algorithm with fused multiply/add
US6859815B2 (en) * 2000-12-19 2005-02-22 Koninklijke Philips Electronics N.V. Approximate inverse discrete cosine transform for scalable computation complexity video and still image decoding
JP3971135B2 (ja) * 2001-07-11 2007-09-05 株式会社テクノマセマティカル Dct行列分解方法及びdct装置
US20050213835A1 (en) * 2004-03-18 2005-09-29 Huazhong University Of Science & Technology And Samsung Electronics Co., Ltd. Integer transform matrix selection method in video coding and related integer transform method

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2625973C3 (de) * 1976-06-10 1981-12-24 Philips Patentverwaltung Gmbh, 2000 Hamburg Verfahren und Anordnung zur redundanzvermindernden Transformation von Bildern
US4293920A (en) * 1979-09-04 1981-10-06 Merola Pasquale A Two-dimensional transform processor
DE3482627D1 (de) * 1983-04-11 1990-08-09 Nec Corp Orthogonale transformation und geraet zu ihrer durchfuehrung.
US4621337A (en) * 1983-08-11 1986-11-04 Eastman Kodak Company Transformation circuit for implementing a collapsed Walsh-Hadamard transform
FR2582424B1 (fr) * 1985-05-22 1989-06-30 Guichard Jacques Circuit de calcul rapide de la transformee en cosinus, directe ou inverse, d'un signal discret
US4829465A (en) * 1986-06-19 1989-05-09 American Telephone And Telegraph Company, At&T Bell Laboratories High speed cosine transform
US4791598A (en) * 1987-03-24 1988-12-13 Bell Communications Research, Inc. Two-dimensional discrete cosine transform processor
GB8713455D0 (en) * 1987-06-09 1987-07-15 Sony Corp Television standards converters
US4914615A (en) * 1987-09-04 1990-04-03 At&T Bell Laboratories Calculator of matrix products
US5054103A (en) * 1987-09-24 1991-10-01 Matsushita Electric Works, Ltd. Picture encoding system
US5001663A (en) * 1989-05-03 1991-03-19 Eastman Kodak Company Programmable digital circuit for performing a matrix multiplication
US5008848A (en) * 1989-05-30 1991-04-16 North American Philips Corporation Circuit for performing S-transform
IT8921420V0 (it) * 1989-07-13 1989-07-13 Telettra Spa Sistema e circuito per il calcolo di trasformata discreta bidimensionale.
JPH0375868A (ja) * 1989-08-17 1991-03-29 Sony Corp 行列データ乗算装置
JPH03100771A (ja) * 1989-09-06 1991-04-25 Internatl Business Mach Corp <Ibm> アレイ処理方法
JPH03102567A (ja) * 1989-09-18 1991-04-26 Sony Corp 行列乗算回路
US5007100A (en) * 1989-10-10 1991-04-09 Unisys Corporation Diagnostic system for a parallel pipelined image processing system
JP3185211B2 (ja) * 1989-12-15 2001-07-09 ソニー株式会社 行列データ乗算装置
JP2646778B2 (ja) * 1990-01-17 1997-08-27 日本電気株式会社 ディジタル信号処理装置
US5126962A (en) * 1990-07-11 1992-06-30 Massachusetts Institute Of Technology Discrete cosine transform processing system
JPH04242861A (ja) * 1990-12-28 1992-08-31 Sony Corp 内積演算回路
US5257213A (en) * 1991-02-20 1993-10-26 Samsung Electronics Co., Ltd. Method and circuit for two-dimensional discrete cosine transform
JP2866754B2 (ja) * 1991-03-27 1999-03-08 三菱電機株式会社 演算処理装置
US5349549A (en) * 1991-09-30 1994-09-20 Sony Corporation Forward transform processing apparatus and inverse processing apparatus for modified discrete cosine transforms, and method of performing spectral and temporal analyses including simplified forward and inverse orthogonal transform processing
US5253192A (en) * 1991-11-14 1993-10-12 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Signal processing apparatus and method for iteratively determining Arithmetic Fourier Transform
US5654910A (en) * 1992-08-26 1997-08-05 Sony Corporation Processing method and apparatus for performing 4 ×4 discrete cosine transformation or inverse discrete cosing transformation

Also Published As

Publication number Publication date
EP0588726A2 (de) 1994-03-23
JPH06103301A (ja) 1994-04-15
DE69329962D1 (de) 2001-04-05
EP0588726B1 (de) 2001-02-28
EP0588726A3 (de) 1995-01-04
US5621676A (en) 1997-04-15
US5629882A (en) 1997-05-13

Similar Documents

Publication Publication Date Title
DE69329962T2 (de) System und Verfahren für die diskrete Cosinus-Transformation und für die inverse diskrete Cosinus-Transformation mit einfacher Struktur und mit hoher Betriebsgeschwindigkeit
DE3789116T2 (de) Prozessor zur zweidimensionalen diskreten cosinustransformation.
DE69230897T2 (de) Diskreter/invers-diskreter Cosinus-Transformationsprozessor und Datenverarbeitungsverfahren
DE3875979T2 (de) Schaltung zur berechnung des quantisierten koeffizienten der diskreten cosinustransformation von digitalen signalabschnitten.
DE69435034T2 (de) Verfahren ind vorrichtung zur durchfuehrung einer schnellen hadamard transform
DE19835216B4 (de) Prozessor und Verfahren zur parallelen Datenverarbeitung
DE69031674T2 (de) Verfahren und Schaltungsanordnung zur zweidimensionalen diskreten Transformation
DE69332975T2 (de) Digitales filter mit hoher genauigkeit und effizienz
DE68921847T2 (de) Verfahren und Anordnung zur Filterung des Bilddarstellungssignals.
DE69132844T2 (de) Schneller Rechner zur Durchführung einer Vorwärts- und Rückwärtstransformation
DE102018130084A1 (de) Dynamische Quantisierung neuronaler Netzwerke
DE102017121257A1 (de) Ausführen von Mittelwert-Poolbildung in Hardware
DE68927611T2 (de) Digitales neuronales Netwerk
DE69737699T2 (de) Gerät und verfahren zur fft-berechnung
DE69009067T2 (de) Verfahren zur herstellung von digitalsignalprozessoren unter verwendung eines programmierten kompilators.
DE4345029C2 (de) Schaltkreis für diskrete Kosinustransformation
DE2729912C2 (de) Anordnung zum Erzeugen digitaler Ausgangssignalwerte
DE69424790T2 (de) Prozessor für schnelle Fourier-Transformation
DE68926154T2 (de) Pipelineprozessor zur Durchführung des LMS Algorithmus
DE19504089A1 (de) Pipelined SIMD-Systolic Array Prozessor und dessen Arbeitsverfahren
WO1992009040A1 (de) Schaltungsanordnung zur berechnung von matrixoperationen in der signalverarbeitung
DE19906801C2 (de) Spreizungs-Signal-Analysator und Verfahren zum Analysieren eines Spreizungssignals
DE3854039T2 (de) Bildverarbeitungssystem.
DE10204647A1 (de) Matrizenrechner des Zeitteilungstyps
DE69225628T2 (de) Gerät für die orthogonale Transformation für die Videosignalverarbeitung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee