DE69031674T2 - Verfahren und Schaltungsanordnung zur zweidimensionalen diskreten Transformation - Google Patents
Verfahren und Schaltungsanordnung zur zweidimensionalen diskreten TransformationInfo
- Publication number
- DE69031674T2 DE69031674T2 DE69031674T DE69031674T DE69031674T2 DE 69031674 T2 DE69031674 T2 DE 69031674T2 DE 69031674 T DE69031674 T DE 69031674T DE 69031674 T DE69031674 T DE 69031674T DE 69031674 T2 DE69031674 T2 DE 69031674T2
- Authority
- DE
- Germany
- Prior art keywords
- bits
- words
- matrix
- bit
- transformation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000009466 transformation Effects 0.000 title claims description 25
- 238000000034 method Methods 0.000 title claims description 11
- 238000004364 calculation method Methods 0.000 claims description 25
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 claims description 2
- 229910052710 silicon Inorganic materials 0.000 claims description 2
- 239000010703 silicon Substances 0.000 claims description 2
- 238000000844 transformation Methods 0.000 claims description 2
- 239000011159 matrix material Substances 0.000 description 72
- 230000005540 biological transmission Effects 0.000 description 11
- 239000013598 vector Substances 0.000 description 11
- 230000017105 transposition Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 241001077660 Molo Species 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 229940050561 matrix product Drugs 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 102220076776 rs144141585 Human genes 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Theoretical Computer Science (AREA)
- Discrete Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Complex Calculations (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
- Die vorliegende Erfindung betrifft ein System zum Berechnen der zweidimensionalen diskreten Transformierten in Cosinusform gemäß dem Oberbegriff des Anspruchs 1. Die Erfindung umfaßt weiterhin die Schaltungen zum Verwirklichen des Systems. Es ist bekannt, daß das Codieren von Fernsehsignalen sehr wirksam unter Verwendung der diskreten Transformation in Cosinusform (DCT) mit der Dimension 8*8 oder allgemeiner M*M durchgeführt wird, wobei M eine Potenz von 2 ist.
- Beim gewerblichen Fernsehen ist die Anzahl der zu verarbeitenden Abtastwerte sehr hoch (typischerweise über 10 Millionen Abtastwerte pro Sekunde, und für das digitale Format für Studios liegt sie im Bereich von 27 Millionen Abtastwerten pro Sekunde), und für das hoch-auflösende Fernsehen (HDTV) liegt der Strom von Abtastwerten, auf den die DCT angewendet werden muß, insbesondere höher als 100 Millionen je Sekunde. In diesem Fall werden mehrere parallel arbeitende Prozessoren verwendet, es ist jedoch offensichtlich von Interesse, eine Schaltung zu verwenden, die die zweidimensionale DCT bei einer möglichst hohen Geschwindigkeit durchführt, um die Anzahl der zu verwendenden Prozessoren zu verringern.
- Es gibt einige wohlbekannte Schaltungsanforderungen an die durch integrierte Schaltungen auf Siliciumbasis durchgeführte zweidimensionale DCT, die zur Erhöhung der Rechengeschwindigkeit auf Berechnungen in der seriellen Arithmetik zurückgreifen muß, wobei gleichzeitig die Anzahl der logischen Gatter innerhalb vernünttiger Grenzen bleiben muß.
- Es sei insbesondere auf die Artikel von F. Jutland, N. Demassieux, G. Concordel, J. Guichard, E. Cassimatis "A single chip video rate 16*16 Discrete Cosine Transform" (Proc. Int. Conf. Acoustic, Speech and Signal Processing 1986) und von S. Cucchi, F. Molo "DCT based television codec for DS3 digital transmission" (130th SMPTE Technical Conference 1988) verwiesen, wo einige Schaltungen zur Durchführung einer zweidimensionalen DCT unter Verwendung der seriellen Arithmetik beschrieben sind. Insbesondere ist im Artikel von Cucchi und Molo die zweidimensionale DCT 8*8 beschrieben, die aus zwei eindimensionalen DCTs der Dimension 8 besteht, wobei für diese letzte das von Chen, Fralick und Smith im Artikel "A fast computational algorithm for the Discrete Cosine Transform" (IEEE Trans. on Comm., Sept.1977) beschriebene Rechenschema befolgt wird.
- Die Ausführung der zweidimensionalen DCT der Dimension M*M wird durch deren Zerlegung in zwei Transformationen der Dimension M vorgenornmen, und die serielle Arithmetik wird zu ihrer Berechnung verwendet, wobei für eine hohe Genauigkeit Zahlendarstellungen mit B Binärziffern verwendet werden, wobei B gewöhnlich gleich 16 ist. Es ist zu beachten, daß die in die DCT eingehenden Wörter und die von derselben DCT abgehenden Wörter (Rechenergebnisse) weniger als 16 Bits (gewöhnlich zwischen 8 und 12 Bits) aufweisen. Wenn die Wörter, auf die die DCT angewendet wird, bei einer Geschwindigkeit Rp in Form paralleler Bits in die Rechenschaltung eintreten und im folgenden eine Worttransformation von der Form paralleler Bits in die Form serieller Bits vorgenommen wird, bevor die beiden DCTs durchgeführt werden (und es wird die inverse Transformation vorgenommen, bevor die sich aus dieser Transformation ergebenden Wörter zum Ausgang übertragen werden), ergibt sich die Bitgeschwindigkeit Rs innerhalb des Prozessors DCT als:
- Rs=Rp×16/M,
- wobei M die Dimension der DCT ist und 16 die Anzahl der zum Durchführen der Berechnungen für jedes Wort verwendeten seriellen Bits ist. Nun ergibt sich für den Fall, daß die DCT die Dimension 8 hat (M = 8), welche die normalerweise als bester Kompromiß zwischen der Ausführungskomplexität und der Wirksamkeit der Redundanzverringerung verwendete Dimension ist:
- Rs=2 Rp,
- was bedeutet, daß die Übertragungsgeschwindigkeit der in serieller Form in Wörtern enthaltenen Bits doppelt so hoch ist wie die Geschwindigkeit des Ankommens der Wörter am Prozessor DCT und des Abgehens von diesem, wodurch es andererseits erforderlich ist, emen Prozessor DCT bereitzustellen, dessen Taktfrequenz gegenüber der Frequenz der ankommenden und abgehenden Wörter verdoppelt ist, und es ist andererseits eine höhere Leistungsfahigkeit bezüglich der Frequenz der Rechenelemente erforderlich, oder es ist gleichermaßen erforderlich, die Geschwindigkeit konstant zu halten, bei der die Bits innerhalb des Prozessors verarbeitet werden, um die Geschwindigkeit der ankommenden und abgehenden Wörter zu begrenzen.
- Die Aufgabe der Erfindung besteht nun darin, die obenerwähnten Nachteile zu beheben. Wie erwähnt, ergibt sich bezüglich der DCT 8*8 mit einer 16 Bits umfassenden internen Wortdarstellung:
- Rs = Rp×16/8.
- Die Erfindung besteht aus der Darstellung jedes Worts in Form zweier 8 Bits aufweisender serieller Folgen (Sp und Sd) staif einer einzigen seriellen Folge mit 16 Bits. Die beiden seriellen Folgen bestehen jeweils aus den Bits der geraden Positionen (gerade Folge Sp) und denen der ungeraden Positionen (ungerade Folge Sd) der Verarbeitungsdaten. Insbesondere sind die elementaren Rechenstrukturen (Addierer/Subtrahierer) so organisiert, daß sie bezüglich Bitpaaren staif bezüglich einzelner Bits arbeiten. Auf diese Weise wird bei jedem Taktimpuis eine Verarbeitung bezüglich eines Bits der geraden Folge Sp und bezuglich eines Bits der ungeraden Folge Sd vorgenommen. Es ist bei Verwendung dieser Technik möglich, eine Übertragungsgeschwindigkeit der in serieller Form gegebenen Wortbits zu erreichen, die
- gleicht. Die nicht zu vermeidende Verringerung der Rechengeschwindigkeit, die sich aus der Notwendigkeit ergibt, die Verarbeitung bezüglich Bitpaaren statt bezüglich einzelner Bits vorzunehmen, ist hinsichtlich des Faktors 2 der Erhöhung der Bitgeschwindigkeit Rs innerhalb des Prozessors unbedeutend.
- Die Erfindung ist allgemeiner auf den Fall anwendbar, bei dem es erforderlich ist, eine Dimensionstransformation M*M vorzunehmen, wobei M eine Potenz von 2 ist und wobei die Rechnungen in serieller Form bezüglich Bitpaaren von Wörtern mit einer Länge von 2 M Bit vorgenommen werden.
- Die Hauptmerkmale des erfindungsgemaßen Systems sind im kennzeichnenden Teil des Anspruchs 1 ausgeführt, während einige der speziellen Merkmale in den Ansprüchen 1 bis 4 angegeben sind. Die Erfindung umfaßt auch die Schaltungen zur Verwirklichung des betrachteten Systems. Einige bevorzugte Ausführungsformen sind in den Ansprüchen 6 bis 8 ausgeführt.
- Die verschiedenen Merkmale und Vorteile der Erfindung werden aus der folgenden Beschreibung besser verstanden werden, wobei anhand von Figur 1 bis 8 auf eine bevorzug te Ausführungsform von Chipblöcken Bezug genommen wird.
- Wir schicken eine kurze Beschreibung einer allgemeinen zweidimensionalen DCT voraus. Bei Bezeichnung der 8*8-Matrix der eingegebenen Abtastwerte mit X ergibt sich:
- DCT(X)=Y-AXAT
- wobei A die Transformationsmatrix ist. Wegen der assoziativen Eigenschaft des Matrixpro dukts kann geschrieben werden:
- Y=A(XAT).
- Das erste Produkt kann unter Bearbeiten der Zeilen der Matrix X in Z = XAT (eindimensionale DCT) umgeformt werden. Darauflün kann unter Bearbeiten der Spalten der Zwischenmatrix Z das Produkt Y = A Z (eindimensionale DCT) gebildet werden.
- Die Matrixprodukte XAT und A Z werden in Wirklichkeit durch schnelle Algorithmen, wie beispielsweise die im obenerwähnten Artikel von Chen, Fralick und Smith angegebenen, gebildet.
- In ähnlicher Weise können, nachdem die Matrix Z einmal berechnet wurde, ZT (transponierte Matrix von Z) und dann YT = ZT AT berechnet werden, wobei wiederum die Zeilen der Matrix ZT bearbeitet werden (es sei bemerkt, daß die ausgegebene Matrix transponiert ist).
- Eine zweidimensionale DCT kann dann allgemein ausgedrückt als Kaskade
- - einer eindimensionalen DCT-Transformation
- - einer Transposition der Zwischenmatrix
- - emer eindimensionalen DCT-Transformation angesehen werden.
- Es ist daher folgendes erforderlich:
- - zwei die eindimensionale DCT-Transformation vomehmende Rechenblöcke
- - em die Transposition einer Matrix vomehmender Block.
- Da die Berechnungen innerhalb des Chips durch die serielle Arithmetik vorgenommen werden, während die Abtastwerte innerhalb des Prozessors und an dessen Ausgang im Parallelformat gegeben sind, muß weiterhin ein Parallel-Seriell-Parallel-Umsetzer zur Verfügung stehen.
- In Figur list das Blockschema des zweidimensionalen DCT-Prozessors dargestellt. Er führt die zweidimensionale DCT 8*8 sowohl beim Absenden als auch beim Empfang durch (entsprechend dem Steuerungs-TXRX). Entsprechend dem oben beschriebenen gibt es zwei Rechenblöcke zum Durchführen der eindimensionalen DCT und einen Block für die Transposition der Zwischenmatrix.
- Insbesondere gilt folgendes:
- - Wenn TXRZ = 1 ist, führt DCTR die DCT zeilenweise durch, und DCTC führt die DCT spaltenweise durch.
- - Wenn TXRZ = 0 ist, führt DCTR die WCT spaltenweise durch, und DCTC führt die IDCT zeilenweise durch.
- In Figur list folgendes speziell dargestellt:
- a) die Rechenblöcke DCTR und DCTC
- b) der Block, der für die ankommenden Wörter und umgekehrt für die abgehenden Wörter die Umsetzung paralleler Bits in serielle Bitpaare vornimmt (PARSERG)
- c) der Block, der die Transposition der Rechenmatrix vornimmt (DCT-Zeilen -- DCT-Spalten) (MEMCG)
- d) die Blöcke, die die Verschiebungen der Abtastwerte des transformierten Signals vornehmen (INTIG, INTOG).
- Weiterhin sind in Figur 1 speziell die Eingangs- und Ausgangssignale und die chipinternen Steuersignale dargestellt:
- -I(15:0): als Zweierkomplement in parallelem Format eingegebene Abtastwerte
- - P: Rücksetzen der internen Zähler
- - AR1, AR0: Auswahl der bezüglich der Daten ann Verarbeitungsausgang vorwnehmenden Rundungen
- - N(6:0): auf die DCT-Koeffizienten einwirkender Verschiebungsfaktor: 0 ≤N(6:0) < 127
- - CK: Maschineneingangstakt
- - TXRX: Übertragungs/Empfangsauswahl
- - OE(15: 1): als Zweierkomplement in parallelem Format ausgegebene Abtastwerte
- - OVF: Überlaufüberwachung
- - SO: Ausgangssynchronisation
- - UC(7:0): externer Ausgang des Zählers
- - CT: Steuerung der DCTR- und DCTC-Rechenblöcke
- - PS: Steuerung von PARSERG
- - SHV: Steuerung von MEMCG
- Im folgenden werden die den Prozessor bildenden Blöcke beschrieben.
- Mit Bezug auf Figur 1 sei bemerkt, daß die Blöcke DCTR und DCTC die Berechnung der zwei eindimensionalen DCTs austühren. Die Transformationsoperationen sind als "schnelle" Algorithinen implementiert, und sie bilden einige kaskadentörmige "Berechnungsdrosseln" (beim Empfang ist die Reihenfolge der Drosseln gegenüber dem Aussenden umgekehrt). Die miffels der Berechnungsdrosseln durchgeführten Hauptoperationen sind: Summation, Subtraktion, Multiplikation. Unter Verwendung der seriellen Arithmetik und der Interpretation der Multiplikation als Folge partieller Summationen kann bemerkt werden, wie nutzlich die Einführung einer Elementarzelle ist, die die Summations- und Subtraktionsoperationen ausführt und die dann auch für die Berechnung von Multiplikationen verwendet werden kann.
- Im folgenden werden eimge Operationen der elementaren Rechenstruktur beschrieben, und es wird ihre Verwendung als Grundkomponente einer Berechnungsdrossel veranschaulicht.
- In Figur 2 ist das Schema eines elementaren Addierers/Subtrahierers dargestellt, der seriell angeordnete Bitpaare bearbeitet. Er stellt den Hauptblock der Transformationsoperation dar. Die Gleichung 5 = (±X ±Y)2-ln weist darauf hin, daß bei gegebenen variablen Größen X und Y (positiv oder negativ) eine Summation oder eine Subtraktion vorgenommen wird und daß das Ergebnis durch 2m dividiert werden muß (Gewichten entsprechend 2-m). Die gegebene Eingangsvariable X mit 16 Bits
- X=(X0, X1, ..., X15)
- wird in Form zweier serieller Folgen verarbeitet:
- Xp=(X0, X2, ..., X14)
- Xd=(X1, X3, ..., X15) wobei Xp die gerade serielle Folge ist und Xd die ungerade serielle Folge ist (welche jeweils 8 Bits aufweisen), welche diese bilden (ähnliches gilt für die Eingangsvariable Y). Die Ausgangsvariable 5 mit 16 Bits:
- S=(S0, S1,...,S15)
- besteht aus den seriellen Folgen (die jeweils 8 Bits autweisen):
- Sp=(S0, S2, ..., S14)
- Sd=(S1, S3, ..., S15)
- Die von einer eigenen Steuerschaltung ausgehenden Signale "Vorgabe", "Laden", "Auswahl" müssen die Zeitpunkte des Beginns, des Summationsbeginns und des Summationsendes richtig synchronisieren.
- Der Wert 2-m ist das binäre Gewicht der aktuellen Summation. Das oben Gesagte kann mit Bezug auf Figur 3a, welche eine Explosionsdarstellung der Fig. 2 ist, durch ein Beispiel dargestellt werden.
- Insbesondere wird vorgeschlagen,
- S=(X+Y)2&supmin;&sup4;
- zu berechnen.
- Mit Bezug auf eine variable Größe mit dem Gewicht 2º ist verständlich, daß eine Vorzeichenerweiterung auf vier Bits erforderlich ist, um die Summation korrekt ausführen zu können. Mit Bezug auf Figur 3a ("GERADER" Addierer) sei bemerkt:
- Die Blöcke "1" und "2" (vollständige Addierer) flihren die Summationen von Bitpaaren am Eingang aus.
- Der Block "3" (EXKLUSIV-ODER mit drei Eingängen) führt die Vorzeichenerweiterung der Summation durch.
- Der Block "7" (Flipflop mit Auswahl) lädt den antänglichen Übertrag (Vorgabe 1) oder den aktuellen Übertrag (Vorgabe = 0) der Summation.
- Der Block "4" (Flipflop mit Auswahl) lädt die Vorzeichenerweiterung der aktuellen Summation (Laden = 1) oder behält die Vorzeichenerweiterung der früheren Summation bei (Laden=0).
- Die Blöcke "5" und "6" (Multiplexer) liefern am Ausgang die Werte der Summation (Auswahl = 0) oder die Vorzeichenerweiterung (Auswahl = 1). Es ist zu beachten, daß auch ein "gerundeter" Ausgang vorhanden ist (zusätzlich zu zwei seriellen Ausgangsfolgen). Tatsächlich muß die abschließende Summation einer Multiplikationsdrossel unter Berücksichtigung einer Rundung vorgenommen werden, da das Endergebnis in jedem Fall in zwei seriellen Folgen mit 8 Bits dargestellt werden muß.
- Im folgenden wird ein Beispiel der Verwendung des "Rundens" dargestellt. In Figur 3b ist ein Diagramm der Summation (X + Y)2&supmin;&sup4; in Abhängigkeit von der Zeit dargestellt. Es ist zu beachten, daß "E" die Vorzeichenerweiterung der Summation (X + Y)2&supmin;&sup4; aufweist, da die 2i4en Bits und die (2i + 1)ten Bits gleichzeitig verarbeitet werden. Wenn Vorgabe = 1 ist (zur Zeit T0), wird ein antänglicher Übertrag (0) in den Block "7" geladen. Zur Zeit T1 wird die Summation der ersten beiden Bits der relevanten geraden Folgen vorgenommen:
- S0=X0+Y0+Ci (Ci=0)
- Der Ausgangsübertrag der Summation (Cp) bildet den Eingangsübertrag der Sum mation der ersten beiden Bits der relevanten ungeraden Folgen:
- S1 = X1 +Y1 +Cp
- Der Ausgangsübertrag dieser Summation (Cd) wird in den Block "7" (Vorgabe = 0) geladen und bildet zur Zeit T2 den Eingangsübertrag Ci der folgenden Summation für die geraden Folgen usw. Zur Zeit T8 wird das letzte Bit der Summation berechnet:
- S15=X15+Y15+Cp und es wird gleichzeitig die Vorzeichenerweiterung berechnet:
- E=X15+Y15+Cd
- Wenn Laden = 1 ist (zur Zeit T8) wird die Vorzeichenerweiterung in den Block "4" geladen.
- Unter der Annahme, daß zur Zeit T9, T 10 Auswahl = 1 ist, wird die Vorzeichenerweiterung für zwei Zeitpunkte richtig erhalten (4 Bits).
- Nun sei angenommen, daß
- (X+Y)2&supmin;³
- berechnet wird.
- Mit Bezug auf eine Variable mit dem Gewicht 20 ist verständlich, daß eine Vorzeichenerweiterung auf drei Bits erforderlich ist, um die richtige Wichtung entsprechend 2&supmin;³ vorzunehmen. In diesem Fall ist das interne Schema der in Figur 2 dargestellten Schaltung in Figur 4a ("UNGERADER" Addierer) dargestellt, das sich im Block "5" von dem aus Figur 3a unterscheidet (Flipflop mit Auswahl statt eines einfachen Multiplexers). Der Ablauf ähnelt dem für den GERADEN Addierer. In Figur 4b ist ein Diagramm der Summation (X+Y)2-³ in Abhängigkeit von der Zeit dargestellt.
- Wiederum werden die 2i-ten Bits und die (2i + 1)ten Bits gleichzeitig verarbeitet, und "E" zeigt die Vorzeichenerweiterung der Summation (X + Y)2-3. Es ist zu beachten, daß es erforderlich ist, eine der beiden Ausgangsfolgen zu verzögern und diese zu invertieren, um die richtige Vorzeichenerweiterung auf 3 Bits und die Synchronisation auszuführen. Es ist in diesem Fall möglich, direkt eine folgende Summation zur Variablen X2º vorzunehmen. In diesem Fall, in dem statt der Summation eine Subtraktion vorgenommen werden muß (z.B. -x + Y), wird X negiert und der anfängliche Übertrag als 1 festgelegt.
- Wenn die "schnellen" Verfahren zum Ausführen der Transformationsberechnungen verwendet werden, sind die bildenden Blöcke einige Multiplikationsdrosseln. Sie bestehen aus Multiplikanden (variablen Größen) und Multiplizierern (festen Größen). Als Beispiel für die Verwendung der zur Durchführung der Multiplikation innerhalb der Drossel vorgesehenen elementaren Addierer/Subtrahiererblöcke ist in Figur 5a die Berechnungsdrossel {C1, S1} dargestellt.
- Die Multiplikanden (variablen Daten) weisen die Form von seriell ankommenden und abgehenden Bitpaaren auf Die Multiplikanden {C1, S1} sind feste Zahlen, und sie entsprechen wänrend der Berechnung der DCT-Transformation der binären Darstellung von m Teilbits (so viele wie nötig) der verwendeten Sinus- und Kosinuswerte. Die Multiplikationen werden mittels einer Folge partieller Summationen vorgenommen. Es wird nun verständlich werden, wie die Anzahl der auszuflihrenden partiellen Summationen verringert werden kann. Es kann geschrieben werden (es sei kurz die einzige Ausgabe W betrachtet):
- wobei
- ist und daher eine ternäre Darstellung für den allgemeinen Koeffizienten der Drossel verwendet wird. Diese Auswahl führt zu einer Verringerung der Anzahl der vorzunehmenden Summationen, da versucht wird, daß die Darstellung der Multiplikationskoeffizienten die maximale Anzahl von Nullen hat. In Figur 5a sind die Koeffizienten {C1 = cos x/8, S1 = sin x/8} entsprechend der Darstellung mit 14 Teilbits dargestellt. In Figur 5c sind die entsprechenden (S i, C i) entsprechend der ternären Darstellung dargestellt, wobei der Wert - 1 durch 1 bezeichnet ist.
- In Figur 5d sind die Ausgaben Z und W als Folgen von Summationen dargestellt, und in Figur 5e ist die Ausgabe W als Folge partieller Summationen dargestellt. In Fig. 5f ist dargestellt, daß die Folge von partiellen Summationen durch die Darstellung mit geraden und ungeraden Bits gegeben ist. In Figur 5g ist das entsprechende mit der Berechnung von W abgeschlossene Schema dargestellt (zum Erhalten der Ausgabe Z der Drossel wird ein ähnliches Schema verwirklicht).
- Wie bereits angegeben wurde, werden die geraden und die ungeraden Bits jedes Bitpaars am Eingang des allgemeinen Addiererslsubtrahierers (sowohl vom GERADEN als auch vom UNGERADEN Typ) gleichzeitig verarbeitet, wenngleich sie unterschiedliche binäre Gewichte haben. Bei Verwendung einer Kaskade GERADER und UNGERADER Addierer/Subtrahierer ist es dann, wie zuvor erläutert wurde, möglich, durch geeignetes Synchronisieren der Eingangs- und Steuersignale jede Berechnungsdrossel zu erfüllen. Der "ABSCHLIESSENDE" Addierer ähnelt dem GERADEN Addierer, er führt jedoch keine Vorzeichenerweiterung durch.
- Es ist zu beachten, daß die "Rundungs"-Eingabe des ABSCHLIESSENDEN Addierers den anfänglichen Übertrag der abschließenden Summation bildet. Um das Runden der Summation auszuflihren, sollte der anfängliche Übertrag in allen Fällen zum geeigneten Zeitpunkt 1 betragen.
- Es ist leicht zu beweisen, daß
- Rundung = Bit #1 von S&sub7;2-²= (S&sub7;2-²)1 ist, und es gilt daher:
- anfänglicher Übertrag = Übertrag (1 +(S&sub7;2&supmin;²)1) = (S&sub7;2-²)1
- Es ist daher zum Durchführen des Rundens ausreichend, daß der anfängliche Ubertrag der abschließenden Summation von einem geeigneten Bit der ungeraden Ausgangsfolge des letzten GERADEN Addierers ausgeht (falls der letzte dem ABSCHLIESSENDEN Block vorhergehende Addierer ein UNGERADER Addierer ist, ist die Argumentation ähnlich).
- Es wird der einzige Schaltungsteil beschrieben, der auf die geraden Bits einwirkt, wenngleich die Verwirklichung für die ungeraden Bits ähnlich ist. Es wird weiter, ohne die Allgemeinheit einzuschränken, angenommen, daß die in den Prozessor DCT eingehenden und von diesem abgehenden Wörter durch 16 Bits dargestellt sind. In Figur 6a ist das prinzipielle Schema der den Seriell-Parallel-Seriell-Umsetzer bildenden Grundelemente dargestellt, närnlich der beiden Matrixpaare (MATRIX 1a, MATRIX 1b) und (MATRIX 2a, MATRIX 2b). Wänrend die MATRIX 1a die Daten parallel lädt, lädt die MATRIX 1b die Daten seriell (MATRIX 2a und MATRIX 2b arbeiten in ähnlicher Weise bei der Seriell- Parallel-Umsetzung). Die beiden Matrixpaare wirken jeweils auf
- a) die 8 geraden Bits der Wörter mit parallelen Bits, wobei sie in eine serielle Folge gerader Bits (MATRIX 1a, MATRIX 1b) umgewandelt werden. Tatsächlich werden die variablen Eingangsgrößen in parallelem Format geschrieben und müssen dann in das serielle Format umgewandelt werden, bevor die DCT-Berechnung vorgenommen wird. Genauer gesagt gehen für jeweils 8 aufeinanderfolgende Eingangswörter 8 parallele Bits in die MATRIX 1a ein, und am Ende dieser Operation werden die 8 Wörter gleichzeitig in Form serieller Bits zum Ausgang übertragen. Die MATRIX 1b arbeitet in ähnlicher Weise, wobei ihre Arbeitsweise zeitlich mit deijenigen der MATRIX 1a wechselt.
- b) eine Folge gerader Bits mit seriellen Bits, wobei sie in eine serielle Folge gerader Bits (MATRIX 2a, MATRIX 2b) umgewandelt werden. Tats;;chlich werden die variablen Ausgangsgrößen des Blocks DCTC (Figur 1) in seriellem Format geschrieben und müssen dann in das parallele Format umgewandelt werden, bevor sie zum Ausgang gesendet werden. Genauer gesagt gehen 8 Wörter in Form serieller Bits gleichzeitig in die MATRIX 2a ein. Am Ende dieser Operation werden die 8 Wörter nacheinander und in Form paralleler Bits zum Ausgang übertragen. Die MATRIX 2b arbeitet in ähnlicher Weise, wobei ihre Arbeitsweise zeitlich mit deijenigen der MATRIX 2a wechselt.
- Jedes Element der vier Matrizen ist ein Flipflop mit Auswahl. Die Auswahl wird durch ein geeignetes Steuersignal gesteuert, welches eine Periode mit 16 Taktimpulsen aufweist, nämlich insbesondere
- - eine Steuerung "C" für (MATRIX 1a, MATRIX 1b)
- - eine Steuerung "D" für (MATRIX 2a, MATRIX 2b).
- Beispielsweise gilt für das Paar (MATRIX 1, MATRIX 1b) folgendes:
- Für C=0 gllt:
- - die MATRIX 1a lädt am Eingang 8 parallele Dateneinheiten für jedes von 8 Eingangswörtern.
- - die MATRIX 1b gibt am Ausgang die 8 seriellen Dateneinheiten der 8 Wörter aus (die in der vorhergehenden Halbperiode - C = 1 geladen wurden).
- Für C=lgilt:
- - die MATRIX 1a gibt am Ausgang die 8 seriellen Dateneinheiten der 8 Wörter aus (die in der vorhergehenden Halbperiode - C =0 geladen wurden).
- - die MATRIX 1b lädt am Eingang 8 parallele Dateneinheiten für jedes von 8 eingegebenen Wörtern.
- Das Paar (MATRIX 2a, MATRIX 2b) führt, durch das Signal D gesteuert, die entgegengesetzte Operation zu (MATRIX 1a, MATRIX 1b) aus.
- Es ist zu beachten, daß D bezüglich C um K Taktimpulse verzögert (und negiert) ist, wenn die in die DCT-Berechnung eingeführte Verzogerung im allgemeinen N*8 + K ist. Falls die in die DCT-Berechnung eingeführte Verzögerung N*8 (K = 0) gleicht, kann ein einziges Matrixpaar (MATRIX 1, MATRIX 2) zum Ausführen der obenerwähnten Operationen verwendet werden. Es wird insbesondere darüber nachgedacht, die von MATRIX 1a und MATRIX 1b durchgeführten Operationen in einer einzigen MATRIX 1 zu kombimeren. In ähnlicher Weise wird darüber nachgedacht, die von MATRIX 1b und MATRIX 2a durchgeführten Operationen in einer einzigen MATRIX 2 zu kombinieren. Das sich ergebende Schema ist in Figur 6b dargestellt, und das Arbeitsprinzip ist das folgende:
- Für C=0 gilt:
- - die MATRIX 1 lädt am Eingang die parallelen Daten, und GLEICHZEITIG werden die in der vorhergehenden Halbperiode von C (C = 1) seriell geladenen Daten parallel ausgegeben.
- - die MATRIX 2 lädt am Eingang die seriellen Daten, und GLEICHZEITIG werden die in der vorhergehenden Halbperiode von C (C = 0) parallel geladenen Daten seriell ausgegeben.
- Für C= 1 gilt:
- - die MATRIX 2 lädt am Eingang die parallelen Daten, und GLEICHZEITIG werden die in der vorhergehenden Halbperiode von C (C = 1) seriell geladenen Daten parallel ausgegeben.
- - die MATRIX 1 lädt am Eingang die seriellen Daten, und GLEICHZEITIG werden die in der vorgehenden Halbperiode von C (C = 0) parallel geladenen Daten seriell ausgegeben.
- Es sei bemerkt, daß auf diese Weise stets alle Elemente der Struktur arbeiten. Dies ist möglich, da die Zeit zur Berechnung der zweidimensionalen DCT (Kaskade von DCTR, MEMCG, DCTC) zu einem Vielfachen von 8 Taktimpulsen gemacht wurde. Die beiden Matrizen (MATRIX 1, MATRIX 2) arbeiten abwechselnd, oder wenn 8 Wörter mit parallelen Bits in eine eingehen und von der anderen abgehen, gehen in die andere Matrix gleichzeitig 8 Wörter mit seriellen Bits ein und gehen von dieser ab. Diese beiden Matrizen arbeiten in einer der beiden Weisen bezüglich 8 Wörtern, die zeitlich sequentiell eingehen oder abgehen (falls sie aus parallelen Bits bestehen) und umgekehrt gleichzeitig eingehen und abgehen (falls sie aus seriellen Bits bestehen).
- Der Block MEMCG vertauscht die Zeilen und Spalten einer Matrix aus 8*8 Abtastwerten unterhalb einer eindimensionalen Transformation und führt dann die Transposition einer Matrix aus. Ahnlich zu dem, was für den Seriell-Parallel-Seriell-Umsetzer gezeigt wurde, wird der die geraden Bits bearbeitende einzelne Schaltungsteil beschrieben. Die Verwirklichung ist für die ungeraden Bits ähnlich. Das Arbeitsprinzip ähnelt im wesentlichen demjenigen von PARSERG, und das Hauptelement ist ein Matrixpaar (Figur 7a). Jedes Element einer Matrix ist ein allgemeines Speicherelement mit Auswahl, die durch ein geeignetes Steuersignal mit einer 128 Taktimpulsen gleichenden Periode gesteuert wird.
- Die Eingangsfolgen sind vom seriellen Typ und bilden die 8 Vektoren der Matrix 0eder Vektor ist aus 8 Elementen gebildet, und jedes Element eines allgemeinen Vektors ist aus 8 variablen geraden Bits gebildet).
- Mit Bezug auf Figur 7a sei folgendes bemerkt:
- Für C=0 gilt:
- - die MATRIX 1 lädt 8 Vektoren V1 ... V8, während MATRIX 2 acht in der vorhergehenden Halbperiode von C (C = 1) geladene Vektoren W1 ... W8 ausgibt.
- Für C = 1 gilt:
- - die MATRIX 2 lädt 8 Vektoren W1T ... W8T, während MATRIX 1 acht in der vorhergehenden Halbperiode von C (C = 0) geladene Vektoren W1 ... V8T ausgibt.
- Die beiden Matrizen wurden in anderer Weise ausgebildet, um das Erreichen einer einzigen Struktur zu ermöglichen. Es ist, ännlich wie bezüglich PARSERG erklärt wurde, möglich, eine einzige Matrix zu erreichen (Figur 7b), bei der alle Elemente stets in Phase arbeiten.
- - Ist C = 0, so werden die Vektoren V1 ... V8 geladen, und die in der vorhergehenden Halbperiode von C (C = 1) geladenen Vektoren W1 ... W8 werden GLEICHZEITIG abgegeben.
- - Ist C = 1, so werden die Vektoren W1T ... W8T geladen, und die in der vorhergehenden Halbperiode von C (C = 0) geladenen Vektoren V1T ... V8T werden GLEICHZEITIG abgegeben.
- Die DCT-Berechnung wird ohne ein Skalieren vorgenommen, die Genauigkeit der DCT-Daten wird jedoch gewöhnlich zum Ermöglichen des Sendens verringert. Es ist daher vorteilhaft, ein Element einzufügen, das eine Verschiebung der Transformationskoeffizienten vornimmt. Es ist insbesondere vorteilhaft, einen Skalierer zu verwenden, der mit 2-n/8 multipliziert, wobei n eine ganze Zahl ist.
- Diese Auswahl wurde wegen einer gewissen Einfachheit der Verwirklichung der Hardware und deswegen, weil die Verschiebung prozentual konstant ist, wenn der Faktor 2-n/8 verwendet wird, vorgenommen.
- Beim Empfang muß ein inverser Skalierer verwendet werden, der die DCT-Koeffizienten mit 2n/8 multipliziert, bevor die Nichttransformation durchgeführt wird. Für den Transmissionsskalierer kann geschrieben werden:
- 2-n/8 = 2-n1/8*2-n2
- n=0 ... 127
- wobei folgendes gilt:
- n1=0 ... 7
- n2=0 ... 15
- Daraufhin wird die Verschiebung beim Senden durch eine Multiplikation mit einem festen Koeffizienten (2-n1/8, nl = 0 ... 7) und einer einfachen Verschiebung vorgenommen. In Figur 8a ist die Kette zweier Verschiebungen beim Senden dargestellt. Die ideale inverse Operation beim Empfang ist in Figur 8b dargestellt. Zum Beseitigen des Nachteils, 14 feste Multiplikationsfaktoren zu haben (2-n1/8 beim Senden, 2n1/8 beim Empfang, n1 = ... 7), wird die Verschiebung beim Empfang folgendermaßen vorgenommen:
- Es ist in den Figuren 8a und 8b die unterschiedliche Reihenfolge zu beachten, in der der Multiplizierer und der Verschieber beim Senden und beim Empfang angeordnet sind. Beim Senden werden die Koeffizienten des transformierten Signals "abwärts" verschoben (mit 2-n/8 multipliziert). Es ist daher mit dem Ziel, die Genauigkeit nicht zu verlieren, erforderlich, zuerst die Multiplikation mit 2-n1/8 und dann die Verschiebung um 2-n2 vorzunehmen. Beim Empfang müssen die Koeffizienten des transformierten Signals "aufwärts" verschoben werden (Multiplikation mit 2n/8) Es ist dann erforderlich, zuerst die Verschiebung 2n2+1 und dann die Multiplikation mit 2-(8-n1)/8 vorzunehmen.
Claims (6)
1. Verfahren zur Durchführung einer zweidimensionalen Transformation der
Dimension M*M, die rechtwinklig und in zwei aufgrund von Buttertly-Berechnungen
durchgeführte eindimensionale Transformationen trennbar ist, wobei das Verfahren Operationen
umfaßt, zu denen Summationen, Subtraktionen und Multiplikationen an in Form von
Parallelbits geschriebenen ankommenden und abgehenden Wörtern gehören, wobei jedes
ankommende und abgehende Wort eine Maximallänge von 2*M Bits aufweist und die
Summationen, Subtraktionen und Multiplikationen an in Form von Wörtern jeweils einer Länge
von 2*M Bits wiedergegebenen variablen Daten durchgeführt werden,
dadurch gekennzeichnet, daß die Summations- und Subtraktionsoperationen an den
variablen Daten, z.B. an einer Variablen
und die Multiplikationsoperationen der variablen Daten mit festen Koeffizienten parallel an
Bitpaaren durchgeführt werden, deren jedes aus einem geraden und einem ungeraden Bit
besteht, wobei die Daten in Form zweier serieller Bitfolgen wiedergegeben sind, von denen
die eine die geraden und die andere die ungeraden Bits der variablen Daten enthält, z.B. in
Form von Bitfolgen
so daß die Geschwindigkeit 1%) der ankommenden und abgehenden, in Form von Wörtern
mit parallelen Bits wiedergegebenen Wörter gleich der Geschwindigkeit Rs der internen
Bitfolgen ist.
2. Verfahren nach Anspruch 1, wobei nur zwei Rechenelemente verwendet werden,
von denen das erste zur Summation oder Subtraktion zweier Variabler und anschließender
Multiplikation mit 2-m ausgelegt ist, wobei m eine gerade ganze Zahl ≥ 0 ist wobei das
zweite Element zur Summation oder Subtraktion zweier Variabler und anschließender
Multiplikation mit 2-n ausgelegt ist, wobei n eine ungerade ganze Zahl ≥ 0 ist, und wobei die
Rechenelemente sich nur darin unterscheiden, daß das zweite Element ein Laufzeitglied
aufweist, um an einem Bit jedes von dem Rechenelement abgehenden Bitpaares eine
Verzögerung um eine Taktperiode einzufügen.
3. Verfahren nach Anspruch 1 oder 2, wobei die Transformation eine diskrete
Cosinustransformation der Dimension M*M und M eine Potenz von 2 ist.
4. Verfahren nach Anspruch 3, wobei die Transformation die Dimension 8*8 hat und
die Variablen intern mit 16-Bit-Genauigkeit wiedergegeben sind.
5. Schaltung zur Durchführung des Verfahrens nach einem der vorhergehenden
Ansprüche, gekennzeichnet durch
eine Einrichtung zum Umsetzen von ankommenden Wörtern X = {X&sub0;, x&sub1;, x&sub2;, x&sub3;,
X&sub1;&sub4;, X&sub1;&sub5;} aus der Form von Parallelbits in die Form von durch zeitlich seriell verteilte
Bitpaare wiedergegebenen Wörtern X = {{X&sub0;, x&sub1;}, {X&sub2; X&sub3;}, ..., {x&sub1;&sub4;, X&sub1;&sub5;}},
eine Einrichtung zum Anwenden einer eindimensionalen Transformation auf die
Zeilen eines M*M-Datenblocks, wobei die Daten in Form von seriell verteilten Bits
behandelt werden,
eine Einrichtung zum Umsetzen der Elemente der M*M-Datenblöcke aus Zeilen in
Spalten,
eine Einrichtung zum Anwenden der eindimensionalen Transformation auf die
Spalten des M*M-Datenblocks und
eine Einrichtung zum Umsetzen der seriellen Bitpaare S = {{S&sub0;, S&sub1; }, {S&sub2;, S&sub3;},
{S&sub1;&sub4;, S&sub1;&sub5;}} in Wörter in Form von Parallelbits S = {S&sub0;, S&sub1;, S&sub2;, S&sub3;, ..., S&sub1;&sub4;, S&sub1;&sub5;}.
6. Schaltung nach Anspruchs, ausgeführt auf Siliciumbasis und enthaltend
ein Eingangsinterface (INTIG),
einen Converter (PARSERG) zum Umsetzen von ankommenden Wörtern von der
Form von Parallelbits in die Form von durch serielle Bitpaare wiedergegebene Wörter und
zum Umsetzen der abgehenden Wörter im umgekehrten Sinn,
einen die eindimensionale DCT-Transformation durchführenden ersten Operator
(DCTR),
eine die Umsetzung von Zeilen in Spalten durchführende Einrichtung (MEMCG),
einen eine eindimensionale Transformation durchführenden zweiten Operator
(DCTC), und
eine Einrichtung (INTOG) zum Skalieren der abgehenden Wörter.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT8921420U IT8921420V0 (it) | 1989-07-13 | 1989-07-13 | Sistema e circuito per il calcolo di trasformata discreta bidimensionale. |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69031674D1 DE69031674D1 (de) | 1997-12-11 |
DE69031674T2 true DE69031674T2 (de) | 1998-06-10 |
Family
ID=11181511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69031674T Expired - Fee Related DE69031674T2 (de) | 1989-07-13 | 1990-05-29 | Verfahren und Schaltungsanordnung zur zweidimensionalen diskreten Transformation |
Country Status (6)
Country | Link |
---|---|
US (1) | US5197021A (de) |
EP (1) | EP0412252B1 (de) |
JP (1) | JPH03165192A (de) |
DE (1) | DE69031674T2 (de) |
ES (1) | ES2111523T3 (de) |
IT (1) | IT8921420V0 (de) |
Families Citing this family (28)
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 |
US5664028A (en) * | 1990-04-19 | 1997-09-02 | Ricoh Corporation | Apparatus and method for compressing still images |
US5319724A (en) * | 1990-04-19 | 1994-06-07 | Ricoh Corporation | Apparatus and method for compressing still images |
FR2680259A1 (fr) * | 1991-10-09 | 1993-02-12 | Ricoh Kk | Appareil et procede de compression d'image. |
US5410500A (en) * | 1992-02-21 | 1995-04-25 | Sony Corporation | Discrete cosine transform apparatus and inverse discrete cosine transform apparatus |
US5313579A (en) * | 1992-06-04 | 1994-05-17 | Bell Communications Research, Inc. | B-ISDN sequencer chip device |
KR940004467A (ko) * | 1992-08-26 | 1994-03-15 | 오오가 노리오 | 이산코사인 변환장치 및 그 역변환장치 |
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 |
JPH06103301A (ja) * | 1992-09-17 | 1994-04-15 | Sony Corp | 8x8離散コサイン変換回路および8x8離散コサイン逆変換回路 |
JPH06149862A (ja) * | 1992-11-13 | 1994-05-31 | Sony Corp | 行列データ乗算方法及び行列データ乗算装置 |
US5345408A (en) * | 1993-04-19 | 1994-09-06 | Gi Corporation | Inverse discrete cosine transform processor |
GB2302421B (en) * | 1995-03-18 | 1999-11-03 | United Microelectronics Corp | Apparatus for two-dimensional inverse discrete cosine transform |
US5671169A (en) * | 1995-06-23 | 1997-09-23 | United Microelectronics Corporation | Apparatus for two-dimensional inverse discrete cosine transform |
US5867601A (en) * | 1995-10-20 | 1999-02-02 | Matsushita Electric Corporation Of America | Inverse discrete cosine transform processor using parallel processing |
US5801979A (en) * | 1995-10-20 | 1998-09-01 | Matsushita Electric Corporation Of America | Carry logic that produces a carry value from NLSBs for a ROM accumulator in an inverse discrete cosine transform processor |
US5805482A (en) * | 1995-10-20 | 1998-09-08 | Matsushita Electric Corporation Of America | Inverse discrete cosine transform processor having optimum input structure |
AUPO648397A0 (en) | 1997-04-30 | 1997-05-22 | Canon Information Systems Research Australia Pty Ltd | Improvements in multiprocessor architecture operation |
US6311258B1 (en) | 1997-04-03 | 2001-10-30 | Canon Kabushiki Kaisha | Data buffer apparatus and method for storing graphical data using data encoders and decoders |
US6195674B1 (en) | 1997-04-30 | 2001-02-27 | Canon Kabushiki Kaisha | Fast DCT apparatus |
US6707463B1 (en) | 1997-04-30 | 2004-03-16 | Canon Kabushiki Kaisha | Data normalization technique |
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 |
AUPO647997A0 (en) * | 1997-04-30 | 1997-05-22 | Canon Information Systems Research Australia Pty Ltd | Memory controller architecture |
US6289138B1 (en) | 1997-04-30 | 2001-09-11 | Canon Kabushiki Kaisha | General image processor |
US6499045B1 (en) * | 1999-10-21 | 2002-12-24 | Xilinx, Inc. | Implementation of a two-dimensional wavelet transform |
US6684235B1 (en) | 2000-11-28 | 2004-01-27 | Xilinx, Inc. | One-dimensional wavelet system and method |
JP3830497B2 (ja) | 2004-06-11 | 2006-10-04 | シャープ株式会社 | 半導体ウエハの製造方法及び半導体装置の製造方法 |
US8192424B2 (en) * | 2007-01-05 | 2012-06-05 | Arthrocare Corporation | Electrosurgical system with suction control apparatus, system and method |
US8654833B2 (en) * | 2007-09-26 | 2014-02-18 | Qualcomm Incorporated | Efficient transformation techniques for video coding |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4196448A (en) * | 1978-05-15 | 1980-04-01 | The United States Of America As Represented By The Secretary Of The Navy | TV bandwidth reduction system using a hybrid discrete cosine DPCM |
US4385363A (en) * | 1978-12-15 | 1983-05-24 | Compression Labs, Inc. | Discrete cosine transformer |
US4293920A (en) * | 1979-09-04 | 1981-10-06 | Merola Pasquale A | Two-dimensional transform processor |
US4449194A (en) * | 1981-09-25 | 1984-05-15 | Motorola Inc. | Multiple point, discrete cosine processor |
FR2561011B1 (fr) * | 1984-03-09 | 1986-09-12 | Cit Alcatel | Processeur de calcul d'une transformee discrete inverse du cosinus |
IT1207346B (it) * | 1987-01-20 | 1989-05-17 | Cselt Centro Studi Lab Telecom | Sformata coseno discreta a coeffi circuito per il calcolo della tra cienti quantizzati di campioni di segnale numerico |
US4791598A (en) * | 1987-03-24 | 1988-12-13 | Bell Communications Research, Inc. | Two-dimensional discrete cosine transform processor |
-
1989
- 1989-07-13 IT IT8921420U patent/IT8921420V0/it unknown
-
1990
- 1990-05-29 EP EP90110138A patent/EP0412252B1/de not_active Expired - Lifetime
- 1990-05-29 DE DE69031674T patent/DE69031674T2/de not_active Expired - Fee Related
- 1990-05-29 ES ES90110138T patent/ES2111523T3/es not_active Expired - Lifetime
- 1990-07-11 US US07/551,628 patent/US5197021A/en not_active Expired - Fee Related
- 1990-07-13 JP JP2184397A patent/JPH03165192A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP0412252A2 (de) | 1991-02-13 |
JPH03165192A (ja) | 1991-07-17 |
IT8921420V0 (it) | 1989-07-13 |
ES2111523T3 (es) | 1998-03-16 |
EP0412252B1 (de) | 1997-11-05 |
US5197021A (en) | 1993-03-23 |
EP0412252A3 (en) | 1991-07-31 |
DE69031674D1 (de) | 1997-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69031674T2 (de) | Verfahren und Schaltungsanordnung zur zweidimensionalen diskreten Transformation | |
DE3789116T2 (de) | Prozessor zur zweidimensionalen diskreten cosinustransformation. | |
DE3750791T2 (de) | Sehr schnelle Transformationsvorrichtung. | |
DE69435034T2 (de) | Verfahren ind vorrichtung zur durchfuehrung einer schnellen hadamard transform | |
DE3875979T2 (de) | Schaltung zur berechnung des quantisierten koeffizienten der diskreten cosinustransformation von digitalen signalabschnitten. | |
DE60318494T2 (de) | Verfahren, einrichtung und system zur durchführung von kalkulationsoperationen | |
DE69632978T2 (de) | Multi-Operand-Addierer, der Parallelzähler benutzt | |
DE3788010T2 (de) | Mehrstufiges Multiplizier- und Addiergerät für Digitalsignale. | |
DE69122575T2 (de) | Datenrundungsvorrichtung | |
DE3650335T2 (de) | Rechenverfahren und -gerät für endlichfeldmultiplikation. | |
DE19758079A1 (de) | Verfahren und Vorrichtung zur Galoisfeld-Multiplikation | |
DE3917059A1 (de) | Cordic-anordnung zum multiplizieren von komplexen zahlen | |
DE1549584A1 (de) | Datenverarbeiter zum Erhalt komplexer Fourierreihe-Koeffizienten | |
DE4345029C2 (de) | Schaltkreis für diskrete Kosinustransformation | |
DE3854608T2 (de) | Vektorrechnerschaltung, welche schnell eine Berechnung auf drei Eingangsvektoren ausführen kann. | |
DE4019646C2 (de) | Vorrichtung und Verfahren zum Multiplizieren von Datenwörtern in Zweier-Komplement-Darstellung | |
DE3810916C2 (de) | Delta-Pulscodemodulation | |
DE2163621A1 (de) | Schaltungsanordnung zur Durchführung der Fourier-Analyse | |
DE19543544C2 (de) | Einrichtung zur zweidimensionalen diskreten Echtzeit-Cosinustransformation | |
DE19746255A1 (de) | Verfahren zur Durchführung der inversen, diskreten Kosinustransformation | |
DE3936503A1 (de) | Digitales verschwommen-folgerungssystem | |
DE2456245C2 (de) | Schaltungsanordnung für ein digitales Filter | |
DE2902766A1 (de) | Zwei-term-vektor-multiplizierschaltung | |
DE69821145T2 (de) | Flächeneffiziente herstellung von koeffizient-architektur für bit-serielle fir, iir filter und kombinatorische/sequentielle logische struktur ohne latenz | |
DE19635113A1 (de) | Multiplizierer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: ALCATEL, PARIS, FR |
|
8339 | Ceased/non-payment of the annual fee |