DE4441291C1 - Verfahren und Schaltungsanordnung zur inversen Quantisierung und inversen diskreten Cosinus-Transformation von komprimierter Bildinformation - Google Patents
Verfahren und Schaltungsanordnung zur inversen Quantisierung und inversen diskreten Cosinus-Transformation von komprimierter BildinformationInfo
- Publication number
- DE4441291C1 DE4441291C1 DE4441291A DE4441291A DE4441291C1 DE 4441291 C1 DE4441291 C1 DE 4441291C1 DE 4441291 A DE4441291 A DE 4441291A DE 4441291 A DE4441291 A DE 4441291A DE 4441291 C1 DE4441291 C1 DE 4441291C1
- Authority
- DE
- Germany
- Prior art keywords
- selector
- input
- adder
- memory
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Discrete Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
Die Erfindung betrifft ein Verfahren und eine Schaltungsanordnung zur
inversen Quantisierung und inversen diskreten Cosinus-Transformation von
komprimierten Videosignalen.
Moderne Verfahren der Videosignalkompression verwenden eine Hybrid
codierung zur Reduzierung der Datenmenge. Hierbei wird die zeitliche Redundanz
in aufeinanderfolgenden Bildern durch eine bewegungskompensierte differentielle
Pulse Code Modulation (DPCM) genutzt. Zwei weitere grundlegende Codierungs
prozeduren sind die Anwendung einer zweidimensionalen diskreten
Cosinus-Transformation (DCT) des Prädiktionsfehlers aus der DPCM und eine
Quantisierung der DCT-Koeffizienten. Hierbei werden Signalanteile aus dem
Datenstrom entfernt, welche die örtliche Redundanz und Irrelevanz innerhalb der
einzelnen Bilder repräsentieren. Die Decodierung kehrt die Wirkung dieser
Prozeduren um.
Die Codierungs- und Decodierungsprozeduren erfordern eine Vielzahl von
Multiplikationen. Schaltungen für Multiplizierer sind jedoch im Vergleich zu denen
von Addierern aufwendiger. Es ist daher für eine kostengünstige Realisierung eines
Decoders von Interesse, möglichst wenig oder nur einen Multiplizierer zu verwen
den. Um dieses zu erreichen, sind Multiplikationen weitestgehend durch Additionen
zu ersetzen oder Teilprodukte mehrfach zu verwenden. Für die inverse diskrete
Cosinus-Transformation (IDCT) gibt es Algorithmen mit besonders wenig Multiplika
tionen. Bei Einsatz eines Multiplizierers kann auch die inverse Quantisierung (IQ)
mit echten Multiplikationen realisiert werden.
In der Europäischen Patentanmeldung EP 02 55 931 A1 ist die Aufteilung einer
zweidimensionalen Transformation in zwei eindimensionale Transformationen
beschrieben, die in zwei Rechenwerken durchgeführt werden. Zur Quantisierung
werden die Daten an ein weiteres Rechenwerk gegeben. Entsprechend wird die
inverse Transformation mit drei weiteren Rechenwerken durchgeführt. Die Daten
werden seriell in jeweils einem Multiplizierer pro Rechenwerk multipliziert. Dadurch
ist der Hardwareaufwand relativ hoch.
In der Europäischen Patentanmeldung EP 05 72 262 A2 wird eine Schaltung
beschrieben, mit der eine IQ und eine IDCT in einem gemeinsamen zentralen
Prozessor (CPU) ausgeführt werden kann. Die CPU besteht dabei aus einem
Rechenwerk mit einem Festwertmultiplizierer, einem Multiplizierer und einem
Multiplizierer-Subtrahierer-Rechenwerk sowie einer nachfolgenden Einheit zur
Berechnung eines Butterflys in zwei Takten mit einem weiteren Multiplizierer. Dieser
Aufbau erfordert durch die Vielzahl an Multiplizierern ebenfalls einen relativ hohen
Hardwarebedarf.
In dem Artikel "Ein neues Konzept zur Video-Codierung für das ISDN-
Bildtelefon" von Thomas Kummerow, Bosch Techn. Berichte 8 (1986/87/89) 6, Seite
310-320, wird ein Videodecoder beschrieben, der vier parallele Prozessorelement-
Schaltkreise mit jeweils einem Multiplizierer und zwei arithmetischen Logik-Einheiten
(ALU) enthält. Die zur Videodecodierung erforderliche Taktrate wird dadurch
erreicht, daß verschiedene Operanden synchron in den parallelen
Prozessorelement-Schaltkreisen mit identischen Befehlen abgearbeitet werden.
Auch bei dieser Lösung ist der Hardwarebedarf relativ hoch.
Das Vorgehen bei der Hybridcodierung ist von einem technischen Komitee der
ISO und IEC im sogenannten MPEG-Standard "Information Technology - Coding of
Moving Pictures and associated Audio for Digital Storage media up to about
1.5 Mbit/s", Part 2: Video, Draft International Standard ISO/IEC DIS 11172-1, 1993
festgelegt. Dort sind die Parameter der Quantisierung und der DCT definiert. Die
Hybridcodierung beruht hier auf zwei Modi. Im sogenannten Intra-Modus werden
statt der Prädiktionsfehler die Daten des Bildes direkt der DCT und der Quantisie
rung unterzogen. Im zweiten Modus (Non-Intra-Modus) werden DCT und Quantisie
rung auf die Prädiktionsfehler aus der DPCM angewendet.
Der erste DCT-Koeffizient stellt den Gleichanteil der Prädiktionsfehler bzw. der
Bilddaten (DC-Koeffizienten) dar, wohingegen alle übrigen sogenannten AC-
Koeffizenten die höhere Spektren repräsentieren. Im MPEG-Standard ist festgelegt,
daß im Intra-Modus die DC-Koeffizienten anders als die AC-Koeffizienten quantisiert
werden. Die AC-Koeffizienten werden entsprechend
invers quantisiert. Hierbei sind i(u,v) die Einträge der Matrix der vom Encoder
übertragenen quantisierten DCT-Koeffizienten, m(u,v) die Einträge der
Quantisierungs-Matrix und q ein Skalierungsfaktor. Im Non-Intra-Modus dagegen gilt
sowohl für die DC- als auch für alle AC-Koeffizienten:
mit dem Vorzeichenoperator
Die Addition von sign(i(u,v)) in Gleichung (2) ergibt immer ungeradzahlige Werte.
Falls in den Gleichungen (1) und (2) das niederwertigste Bit von c(u,v) Null ist, wird
c(u,v) entsprechend
d(u,v) = c(u,v) - sign(c(u,v)) (3)
zu ungeraden Zahlen quantisiert. In einem abschließenden Schritt wird d(u,v) auf
den Wertebereich -2048 bis +2047 begrenzt.
Intra-codierte DC-Koeffizienten hingegen werden mit einer DPCM
entsprechend
d(0,0)intra = d(0,0)past_intra + 8 · i(0,0)intra (4)
decodiert. Der intra-codierte DC-Koeffizient d(0,0)past_intra des vorangegangenen
Blockes ist der Prädiktor des aktuellen DC-Koeffizenten. Der DC-Wert d(0,0) eines
Luminanzblocks wird der Prädiktionswert des nächsten Luminanzblocks. Die
DC-Werte d(0,0) der zwei Blöcke der Chrominanzkomponenten stellen den
Prädiktionswert für die nächsten entsprechenden Blöcke der Chrominanz
komponenten. Zu Beginn jeder neuen Slice und zu Beginn jedes ersten Makroblocks
nach einem nicht-intra-codierten Makroblock im MPEG-Datenstrom ist
d(0,0)past_intra = 1024.
Die der IQ folgende zweidimensionale IDCT wird im Decoder für jeden
8×8 Block von invers quantisierten DCT-Koeffizienten durchgeführt. Eine zweidi
mensionale DCT kann für einen 8×8 Block in 16 eindimensionale DCTs über je einen
Vektor mit 8 Einträgen zerlegt werden. Die eindimensionale DCT entsprechend
wird jeweils 8-mal in Zeilen- und 8-mal in Spaltenrichtung durchgeführt. Für die
eindimensionale DCT sind unterschiedliche Algorithmenstrukturen mit besonders
wenig Multiplikationen beschrieben worden, um Systeme kostengünstig realisieren
zu können.
Es sind Verfahren bekannt, wie das der verteilten Arithmetik (distributed
arithmetics) oder Strukturen mit kreuzweisem Vertauschen der Operanden
(butterfly). Diese sind in "VLSI Implementations for Image Communications", edited
by P. Pirsch, Advances in Image Communications 2, Elsevier Amsterdam 1993,
beschrieben. Das Verfahren der verteilten Arithmetik erfordert nachteilig
ROM-Tabellen, in denen die zu akkumulierenden Teilresultate abgelegt sind.
Butterfly-Strukturen haben den Vorteil, daß Teilprodukte mehrfach verwendet
werden.
Für die Implementierung einer IDCT läßt sich nutzen, daß diese aus der umge
kehrten Struktur der DCT abgeleitet werden kann. In einem Artikel "Practical Fast
1-D DCT Algorithms with 11 Multiplications" von C. Loeffler, A. Lightenberg,
G. S. Moschytz, IEEE, pp. 988-991, 1989, wird eine Butterfly-Struktur beschrieben,
die bei einem Vektor von 8 Einträgen mit nur 11 Multiplikationen und 29 Additionen
besonders wenig Aufwand erfordert. Diese sogenannte Loeffler-Struktur beruht auf
der Gleichung:
Zwischen den einzelnen Einträgen der Vektoren F(u) und G(u) von Gleichung (5)
und (6) besteht das Verhältnis √.
Die Loeffler-Struktur besteht für eine DCT, wie auch für eine IDCT aus vier
Stufen. Um hier das endgültige Ergebnis einer IDCT zu erhalten, muß entsprechend
dem umgekehrten Verhältnis von Gleichung (5) und (6) der Ergebnisvektor, der
Eingangsvektor oder ein Vektor zwischen den Stufen mit 4/√ multipliziert werden.
Diese Multiplikation ist bei einer zweidimensionalen IDCT in der Folge der
eindimensionalen IDCTs vertauschbar. Demnach ergibt sich bei einer zweidimen
sionalen IDCT der Faktor 16/2=8, der durch ein oder mehrere Shifts der Daten
realisiert werden kann.
In Fig. 2 ist die aus der Butterfly-Struktur der DCT nach Loeffler abgeleitete
umgekehrte Struktur der IDCT dargestellt. Diese Struktur besteht aus drei Typen von
funktionalen Blöcken. Die Gleichungen des ersten funktionalen Blockes (Typ bb1)
lauten
Der zweite Typ bb2 beruht auf den Rotationsgleichungen
mit a=k·cos(n·π/N), b=k·sin(n·π/N). In den beiden Gleichungen (9) und (10)
läßt sich das Teilprodukt a·(y₀+y₁) gemeinsam nutzen. Der dritte Typ bb3
schließlich entspricht nur einer Multiplikation
Obwohl die Loeffler-Butterfly-Struktur, wie alle Butterfly-Strukturen keine große
Regularität aufweist, ist diese für eine kompakte und kostengünstige Realisierung
der IDCT besonders attraktiv.
Die Aufgabe der Erfindung war es, ein Verfahren und eine Schaltungsanordnung zur Durch
führung einer inversen Quantisierung (IQ) und einer zweidimensionalen inversen
diskreten Cosinus-Transformtion (IDCT) für die Decodierung von komprimierter
Bildinformation anzugeben, so daß die Schaltungsanordnung aus technischen und wirtschaftlichen Gründen
eine geringe Anzahl an Multiplizierern, Addierern und Speichern erfordert. Dabei
ist eine ausreichende Taktrate zu gewährleisten. Die Berechnungsstrukturen
sollen daher möglichst regulär sein.
Erfindungsgemäß wird die Aufgabe durch ein Verfahren nach Anspruch 1 und
eine Schaltungsanordnung nach Anspruch 2 gelöst.
Für gleiche Berechnungsfolgen wird nur eine Berechnungseinheit
verwendet. Das Verfahren ist so zeitoptimiert, daß auch
die IQ in demselben Multiplizierer ausgeführt werden kann, wie
die IDCT.
Eine Ausführungsform des Rechenwerks zur Durchführung der IQ und IDCT
besteht aus einem gemeinsam genutzten Multiplizierer, einem Addierer und einem
Subtrahierer. Selektoren an den Eingängen des Multiplizierers, des Addierers und
des Subtrahierers schalten die erforderlichen Operanden, so daß die
unterschiedlichen Operationen der IQ und IDCT mit derselben Schaltung erzielt
werden. Ein weiterer Addierer kann vorteilhaft verwendet werden, um die Anzahl der
Systemtakte bei der IDCT weiter zu vermindern.
Durch eine Modifikation von Rotationskonstanten, die im Ausführungsteil näher
beschrieben ist, werden alle Aufgabenstellungen der IDCT mit derselben Schal
tungsstruktur gelöst.
Der Multiplizierer und die Addierer sind über Register direkt miteinander ver
bunden (Pipelining). Hierdurch wird der Zugriff auf die Schreib-Lese-Speicher
minimiert und die Taktzeiten werden vorteilhaft verkürzt.
Die Erfindung ist nachfolgend anhand der Zeichnungen erläutert. Es zeigen:
Fig. 1 Blockschaltbild der Architektur für die inverse Quantisierung und inverse
diskrete Cosinus-Transformation,
Fig. 2 Loeffler-Butterfly-Struktur für eine eindimensionale IDCT über eine Vektor
länge von 8 Einträgen aus drei verschiedenen Typen von funktionalen
Blöcken bb1, bb2 und bb3,
Fig. 3 Blockschaltbild des IQ/IDCT-Prozessors mit dem Registerspeicher II.
Die in Fig. 1 gezeigte erfindungsgemäße Schaltung besteht im Wesentlichen
aus drei Schreib-Lese-Speichern (RAM1, RAM2 und RAM3) 201, 202 und 203 für je
64 Einträge, einem Festwertspeicher (ROM) 204 für die Rotationskonstanten der
IDCT und dem IQ/IDCT-Prozessor 205. Der Registerspeicher I 206 enthält die drei
Prädiktionswerte für die IQ der DC-Koeffizienten im Intra-Modus und q-scale. Der
Registerspeicher II 207 enthält die 8 Zwischenergebnisse der vier Stufen der IDCT
in Fig. 2. Jeder der drei Schreib-Lese-Speicher (RAM) 201, 202 und 203 sowie die
beiden Registerspeicher I und II 206, 207 ermöglichen einen gleichzeitigen Schreib-
und Lesezugriff.
Die inverse Quantisierung und die IDCT werden blockorientiert durchgeführt.
Zunächst wird RAM1 201 mit den decodierten und quantisierten DCT Koeffizienten
im Zig-Zag Scan geschrieben. Im Gegensatz zum Schreiben von RAM1 201 läuft die
IQ zeilen- oder spaltenorientiert ab. Dementsprechend kann die IQ frühestens nach
dem vollständigen Schreiben der ersten Spalte oder Zeile beginnen. Jeder
quantisierte DCT-Koeffizient wird aus RAM1 201 gelesen, invers quantisiert und
wieder in RAM1 201 zurückgeschrieben. Das Resultat der IQ wird in RAM1 201 auf
dieselbe Speicherzelle geschrieben, aus welcher der quantisierte DCT-Koeffizient
zuvor gelesen wurde. Für die IQ der DC-Koeffizienten im Intra-Modus wird der
entsprechende Prädiktionswert in den Registerspeicher I 206 geschrieben.
Nach Abschluß der IQ werden zunächst 8 eindimensionale IDCTs spalteno
rientiert und anschließend orthogonal dazu weitere 8 eindimensionale IDCTs
zeilenorientiert durchgeführt. Die spalten-zeilen-orientierte Folge ist bei der
erfindungsgemäßen Schaltungsanordnung vertauschbar. Die Resultate der
8 eindimensionalen IDCTs werden immer in RAM2 202 geschrieben. Dort stehen sie
nach Abschluß der zweidimensionalen IDCT als decodierte Prädiktionsfehler oder
im Intra-Modus als decodierte Daten zur Verfügung. Die Zeilen-Spalten-Umordnung
sowie die Umordnung der Operanden zu Beginn der Butterfly-Struktur geschieht
durch einen über Adreßumschaltung gesteuerten Schreib- und Lesezugriff in
RAM2 202.
Die Gleichungen (7) und (8) von bb1 sowie (9) und (10) von bb2 weisen eine
ähnliche Struktur auf, die sich auf eine gemeinsame Schaltung des
IQ/IDCT-Prozessors 205 abbilden läßt. Durch eine entsprechende Auswahl der
Vorzeichen der Rotationskonstanten läßt sich dieselbe Schaltung für alle Aufga
benstellungen der IQ und der IDCT nutzen. Die Subtraktion in Gleichung (9) wird
durch die Addition von a·(y₀+y₁) und dem Produkt aus -(a+b) und y₁ realisiert.
Somit wird für die Gleichungen (9) und (10) dieselbe Anordnung aus Addierer und
Subtrahierer wie für die Gleichungen (7) und (8) im IQ/IDCT-Prozessor 205
verwendet.
Ein Sonderfall ergibt sich für das Datum G(5) am Eingang S₀(7) der IDCT. Wie
in Fig. 2 zu sehen ist, muß das Datum G(5) invertiert werden. Um zusätzliche
Schaltungen hierfür zu vermeiden, werden die drei Rotationskonstanten (b+a)/k²,
-(b-a)/k² und b/k² anstelle von (a-b)/k², -(a+b)/k² und a/k² verwendet. Dieses
entspricht einer Modifikation der Gleichungen (9) und (10) entsprechend
Die Multiplikationen der IQ nach (1) sowie die für die IDCT aus Gleichungen
(9), (10) und (11) werden sequentiell in demselben Multiplizierer durchgeführt. Der
IQ/IDCT-Prozessor 205 ist so strukturiert, daß die Addition und die Subtraktion der
Butterfly (7) und (8) sowie die Subtraktionen der Gleichungen (9) und (10) im selben
Systemtakt gleichzeitig durchgeführt werden. Durch das Pipelining finden die
Multiplikationen der Gleichungen (9) und (10) jeweils einen Systemtakt vorher statt.
Ein Ausführungsbeispiel des IQ/IDCT-Prozessors 205 ist in Fig. 3 gezeigt. Er
besteht im Wesentlichen aus dem Addierer 302 und Subtrahierer 303, dem
Multiplizierer 301 sowie einer speziellen Quantisierer- und Begrenzerschaltung (305,
306) für die IQ. In dem Addierer 302 und Subtrahierer 303 werden die parallelen
Operationen einer Butterfly durchgeführt. Der Addierer 302 wird außerdem auch für
die inverse Quantisierung der DC-Koeffizienten im Intra-Modus (4) und für die
Addition der Teilsumme y₀+y₁ aus Gleichungen (9) und (10) verwendet. Vom
IQ/IDCT-Prozessor 205 gibt es zwei Varianten. Die zweite Variante enthält im
Gegensatz zu der ersten zusätzlich den Addierer/Subtrahierer 304 für die Teil
summe y₀+y₁ aus den Gleichungen (9) und (10) und Teile der Butterflies. Diese
Variante erfordert weniger Systemtakte.
Bis zu drei Daten werden in einem Systemtakt aus Registerspeicher II 207 über
drei Selektoren dem Multiplizierer 301, dem Addierer 302 und Subtrahierer 303
sowie dem Addierer/Subtrahierer 304 zugeführt. Es ergeben sich auch bis zu drei
Resultate, die wieder in den Registerspeicher II 207 geschrieben werden müssen.
Die unterschiedlichen Funktionen des IQ/IDCT-Prozessors 205 werden über
Selektoren an den Eingängen des Multiplizierers 301 sowie der Addierer und
Subtrahierer 302, 303 und 304 erzielt. Die Selektoren 307, 308 und 309 sind
erforderlich, um die Daten aus verschiedenen Quellen den Speichern RAM1 201,
RAM2 202 und dem Registerspeicher II 207 zuzuführen. Über die Selektoren 310
und 311 werden die entsprechenden Speicher ausgewählt. Durch die Selektoren ist
die Funktion der Schaltung begrenzt modifizierbar.
Die Multiplikationen um 4/√ für die eindimensionale IDCT werden bei der
zweidimensionalen IDCT durch einen Shift um 4 bit nach links vor Beginn der ersten
8 IDCTs und nach Abschluß der dazu 8 orthogonalen IDCTs um zwei bit nach rechts
realisiert.
Claims (8)
1. Verfahren zur inversen Quantisierung (IQ) und zweidimensionalen inversen
diskreten Cosinus-Transformation (IDCT) von komprimierter Bildinformation
in einem Rechenwerk (205) zur Durchführung von sowohl IQ als auch IDCT,
umfassend einen Multiplizierer, einen Addierer und einen Subtrahierer,
wobei die zweidimensionale IDCT blockorientiert in zwei Schritten als zwei
eindimensionale Transformationen durchgeführt wird, indem
- a) in einem ersten Block (bb1) zwei Eingangswerte (O₀, O₁) sowohl miteinander addiert als auch voneinander subtrahiert werden und das Ergebnis jeweils mit einem Faktor von 0,5 multipliziert wird,
- b) in einem zweiten Block (bb2) zur Berechnung zweier Ausgangswerte der Blockberechnung ein erster Zwischenwert mittels Addition zweier Eingangswerte y₀, y₁ und Multiplikation mit einem ersten Rotationsfaktor, ein zweiter Zwischenwert mittels Multiplikation eines ersten Eingangswertes y₀ mit einem zweiten Rotationsfaktor, ein dritter Zwischenwert mittels Multiplikation eines zweiten Eingangswertes y₁ mit einem dritten Rotationsfaktor berechnet wird und der erste und zweite sowie der erste und dritte Zwischenwert miteinander addiert werden und
- c) in einem dritten Block (bb3) ein Eingangswert r mit einem Faktor 1/√ multipliziert wird,
mit den Rotationsfaktoren, die aus den Faktoren a = k * cos(n * π/N) und
b=k * cos(n * π/N) berechnet werden, wobei k eine Konstante ist, n ein zur Anordnung des
Eingangswertes im Vektor proportionaler Wert ist und N die Anzahl der
Vektorelemente kennzeichnet,
dadurch gekennzeichnet, daß
für eine vor der Berechnung eines zweiten Blocks (bb2) durchzuführende
Inversion eines Eingangswertes
- - der erste Rotationsfaktor gleich b,
- - der zweite Rotationsfaktor gleich -(b-a) und
- - der dritte Rotationsfaktor gleich -(b+a) ist.
2. Schaltungsanordnung zur inversen Quantisierung (IQ) und
zweidimensionalen inversen diskreten Cosinus-Transformation (IDCT) von
komprimierter Bildinformation in einem Rechenwerk (205) zur Durchführung
von Berechnungen für IQ und IDCT mittels Speicher, einem Multiplizierer
(301), einem Addierer (302) und einem Subtrahierer (303), wobei die
zweidimensionale IDCT blockorientiert in zwei Schritten als zwei
eindimensionale Transformationen durchgeführt wird, indem
- a) in einem ersten Block (bb1) zwei Eingangswerte (O₀, O₁) sowohl miteinander addiert als auch voneinander subtrahiert werden und das Ergebnis jeweils mit einem Faktor von 0,5 multipliziert wird,
- b) in einem zweiten Block (bb2) zur Berechnung zweier Ausgangswerte der Blockberechnung ein erster Zwischenwert mittels Addition zweier Eingangswerte y₀, y₁ und Multiplikation mit einem ersten Rotationsfaktor, ein zweiter Zwischenwert mittels Multiplikation eines ersten Eingangswertes y₀ mit einem zweiten Rotationsfaktor, ein dritter Zwischenwert mittels Multiplikation eines zweiten Eingangswertes y₁ mit einem dritten Rotationsfaktor berechnet werden und der erste und zweite sowie der erste und dritte Zwischenwerte miteinander addiert werden und
- c) in einem dritten Block (bb3) ein Eingangswert r mit einem Faktor 1/√ multipliziert wird,
mit den Rotationsfaktoren, die aus den Faktoren a = k * cos(n * π/N) und
b=k * cos(n * π/N) berechnet werden, wobei k eine Konstante ist, n ein zur Anordnung des
Eingangswertes im Vektor proportionaler Wert ist und N die Anzahl der
Vektorelemente kennzeichnet,
dadurch gekennzeichnet, daß
nur ein Multiplizierer (301) verwendet wird und
für eine vor der Berechnung eines zweiten Blocks (bb2) durchzuführende
Iversion eines Eingangswertes
- - der erste Rotationsfaktor gleich b,
- - der zweite Rotationsfaktor gleich -(b-a) und
- - der dritte Rotationsfaktor gleich -(b+a) ist.
3. Schaltungsanordnung nach Anspruch 2, gekennzeichnet, durch
Verschaltung von
- - Speichern (203, 204 und 206) mit einem Selektor (311),
- - dem Selektor (311) mit einem Multiplizierer (301), einem Addierer (302) und einem Selektor (309),
- - einem Speicher (201) mit einem Quantisierer (305),
- - einem Quantisierer (305) mit einem Selektor (310) und einem Begrenzer (305),
- - einem Begrenzer (306) mit einem Selektor (307),
- - einem Selektor (307) mit dem Speicher (201),
- - den Speichern (201) und (202) mit dem Selektor (310),
- - dem Selektor (310) mit dem Multiplizierer (301) und dem Addierer (302),
- - dem Multiplizierer (301) mit dem Quantisierer (305), dem Addierer (302), einem Subtrahierer (303) und dem Selektor (309),
- - dem Selektor (309), dem Addierer (302) und dem Subtrahierer (303) mit einem Registerspeicher (207),
- - dem Addierer (302) mit dem Selektor (307) und dem Speicher (206),
- - einem ersten Ausgang des Speichers (207) mit einem ersten Eingang eines Selektors (308) und jeweils einem Eingang des Addierers (302) und des Subtrahierers (303),
- - einem zweiten Ausgang des Speichers (207) mit einem zweiten Eingang des Selektors (308) und jeweils einem Eingang des Addierers (302) und des Subtrahierers (303),
- - einem dritten Ausgang des Speichers mit dem Multiplizierer (301),
- - dem Selektor (308) mit dem Speicher (202).
4. Schaltungsanordnung nach Anspruch 3, dadurch gekennzeichnet, daß ein
Addierer (304) derart geschaltet ist, daß Daten aus den Speichern (201) und
(202) oder dem Speicher (207) addierbar und die Ergebnisse an den
Multiplizierer (301) oder den Speicher (207) geführt werden.
5. Schaltungsanordnung nach Anspruch 4, dadurch gekennzeichnet, daß der
Ausgang des Addierers (304) an den Multiplizierer (301) und über einen
Selektor (309) mit dem Registerspeicher (207) geschaltet ist und ein erster
Eingang des Addierers über einen Selektor (310) mit den Speichern (201)
und (202) und dem Ausgang des Quantisierers (305), sowie ein zweiter
Eingang mit einem Ausgang des Registerspeichers (207) verbunden ist.
6. Schaltungsanordnung nach einem der Ansprüche 2 bis 5, dadurch
gekennzeichnet, daß die Speicher (201) und (202) durch einen Wechsel
pufferbetrieb und durch einen gleichzeitigen Schreib- Lesezugriff ausgeprägt
sind.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE4441291A DE4441291C1 (de) | 1994-11-21 | 1994-11-21 | Verfahren und Schaltungsanordnung zur inversen Quantisierung und inversen diskreten Cosinus-Transformation von komprimierter Bildinformation |
EP95118023A EP0714212A3 (de) | 1994-11-21 | 1995-11-16 | Bilddekodierer mit konkurrierender Verarbeitung und Verteilung von Verarbeitungseinheiten |
US08/561,108 US5844609A (en) | 1994-11-21 | 1995-11-21 | Decoder and method for decoding of coded picture-, video- and film information |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE4441291A DE4441291C1 (de) | 1994-11-21 | 1994-11-21 | Verfahren und Schaltungsanordnung zur inversen Quantisierung und inversen diskreten Cosinus-Transformation von komprimierter Bildinformation |
Publications (1)
Publication Number | Publication Date |
---|---|
DE4441291C1 true DE4441291C1 (de) | 1996-08-14 |
Family
ID=6533702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4441291A Expired - Fee Related DE4441291C1 (de) | 1994-11-21 | 1994-11-21 | Verfahren und Schaltungsanordnung zur inversen Quantisierung und inversen diskreten Cosinus-Transformation von komprimierter Bildinformation |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE4441291C1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102008008639A1 (de) * | 2008-02-12 | 2009-08-13 | Micronas Gmbh | Anordnung zur inversen diskreten Cosinustransformation |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0255931A2 (de) * | 1986-08-08 | 1988-02-17 | Deutsche Thomson-Brandt GmbH | Verfahren zur Übertragung eines Videosignales |
EP0572262A2 (de) * | 1992-05-28 | 1993-12-01 | C-Cube Microsystems, Inc. | Dekoder für komprimierte Videosignale |
-
1994
- 1994-11-21 DE DE4441291A patent/DE4441291C1/de not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0255931A2 (de) * | 1986-08-08 | 1988-02-17 | Deutsche Thomson-Brandt GmbH | Verfahren zur Übertragung eines Videosignales |
EP0572262A2 (de) * | 1992-05-28 | 1993-12-01 | C-Cube Microsystems, Inc. | Dekoder für komprimierte Videosignale |
Non-Patent Citations (1)
Title |
---|
Bosch Techn. Berichte 8 (1986/87/89)6, S. 310-320 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102008008639A1 (de) * | 2008-02-12 | 2009-08-13 | Micronas Gmbh | Anordnung zur inversen diskreten Cosinustransformation |
DE102008008639B4 (de) * | 2008-02-12 | 2010-03-11 | Micronas Gmbh | Anordnung zur inversen diskreten Cosinustransformation |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19819198B4 (de) | Reversible DCT für verlustfreie/verlustbehaftete Kompression | |
DE69726042T2 (de) | Abwärtsabtastung über schnell-DCT-Domänen und inverser Bewegungsausgleich | |
DE4133460C2 (de) | Verfahren zum Verdichten von Bildern | |
DE69822060T2 (de) | Aufwärtsabtasterfilter und halbbildelementgenerator für abwärtsumsetzungssystem für hochauflösungsfernsehen | |
Shen et al. | Inner-block operations on compressed images | |
DE112009004344T5 (de) | Parallele Implementierung einer Rechenmaschine nach dem Pipelineverfahren auf einerintegrierten Schaltung | |
DE2640140A1 (de) | Verfahren und anordnung zur redundanzvermindernden bildcodierung | |
DE69909364T2 (de) | Vorrichtung und Methode zur Änderung der Grösse eines komprimiertes Bildes | |
DE4038240A1 (de) | Prozessor zum durchfuehren einer orthogonaltransformation | |
US6223193B1 (en) | Macroblock variance estimator for MPEG-2 video encoder | |
EP0956539B1 (de) | Verfahren und anordnung zur codierung und decodierung eines digitalisierten bildes | |
DE4408522C2 (de) | Vorrichtung zur Bilddatenverarbeitung und Verfahren zur Verarbeitung von Bilddaten | |
DE69736620T2 (de) | Videodecoder mit einem horizontalen Polyphasen-Fir-Filter | |
EP0956703B1 (de) | Verfahren und anordnung zur codierung und decodierung eines digitalisierten bildes | |
DE69721373T2 (de) | Quantisierer für ein Videokodierungssystem | |
EP1241892A1 (de) | Hardware-Accelerator eines Systems zur Videoverarbeitung | |
DE19518891A1 (de) | Verfahren und Vorrichtung zur Durchführung einer programmierbaren Videotransformation | |
DE4441291C1 (de) | Verfahren und Schaltungsanordnung zur inversen Quantisierung und inversen diskreten Cosinus-Transformation von komprimierter Bildinformation | |
DE19543544A1 (de) | Einrichtung zur zweidimensionalen diskreten Cosinustransformation | |
DE3545106C2 (de) | ||
DE19524872C1 (de) | Verfahren und Anordnung zur Codierung und Decodierung von einem Videodatenstrom für alle Bildelemente des Videodatenstroms | |
EP0544735B1 (de) | Verfahren und vorrichtung zur bilddaten-transformation | |
EP0366976B1 (de) | Transformationsschaltung | |
DE19746255A1 (de) | Verfahren zur Durchführung der inversen, diskreten Kosinustransformation | |
DE69628269T2 (de) | Konversionsverfahren einer Ausgangsdatenfolge in Invers-DCT und Schaltung davon |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8100 | Publication of the examined application without publication of unexamined application | ||
D1 | Grant (no unexamined application published) patent law 81 | ||
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: SICAN GMBH, 30419 HANNOVER, DE |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: SCI-WORX GMBH, 30419 HANNOVER, DE |
|
8339 | Ceased/non-payment of the annual fee |