DE19746255A1 - Verfahren zur Durchführung der inversen, diskreten Kosinustransformation - Google Patents
Verfahren zur Durchführung der inversen, diskreten KosinustransformationInfo
- Publication number
- DE19746255A1 DE19746255A1 DE19746255A DE19746255A DE19746255A1 DE 19746255 A1 DE19746255 A1 DE 19746255A1 DE 19746255 A DE19746255 A DE 19746255A DE 19746255 A DE19746255 A DE 19746255A DE 19746255 A1 DE19746255 A1 DE 19746255A1
- Authority
- DE
- Germany
- Prior art keywords
- vector
- values
- idct
- scalar
- dimensional
- 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.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/02—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
- H03M7/04—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word the radix thereof being two
-
- 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
-
- 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
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Signal Processing (AREA)
- Algebra (AREA)
- Discrete Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Complex Calculations (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
Die vorliegende Erfindung betrifft ein Verfahren zur Erzeugung
einer inversen diskreten Kosinustransformation (IDCT), und
insbesondere ein IDCT-Verfahren, welches das Ausmaß an
Berechnungen verringern kann, während die Bitgenauigkeit
gewährleistet wird, die von internationalen Standards
gefordert wird.
Die diskrete Kosinustransformation (DCT) wurde in weitem
Ausmaß als Datenkomprimierungsverfahren verwendet, bei welchem
die Korrelation zwischen Pixeln (Bildpunkten) eines Bildes
eingesetzt wird. Die Vorgehensweise wurde bei internationalen
Standards eingesetzt, beispielsweise MPEG, JPEG, H.261 usw. In
einem Empfangsgerät zum Empfang von Bilddaten, die unter
Verwendung von DCT komprimiert sind, ist daher die IDCT dazu
erforderlich, Information zurückzugewinnen, die unter Einsatz
dieser Vorgehensweise komprimiert wurde. Da bei DCT in großem
Ausmaß Multiplikation, Addition und Subtraktion erforderlich
sind, sind nunmehr Untersuchungen mit dem Ziel im Gange,
Berechnungen mit hoher Geschwindigkeit durchzuführen.
Es wurden verschiedene Vorgehensweisen dazu eingesetzt, das
Ausmaß der Berechnungen oder der Zeit zu verringern, die zur
Durchführung der IDCT erforderlich sind. Eine Vorgehensweise
wird von J. Yang vorgeschlagen: "An Efficient Two-Dimensional
Inverse Discrete Cosine Transform Algorithm for HDTV
Receivers", IEEE Trans. Circuits and Systems for Video
Technology, Vol. 5, No. 1, Februar 1995. Die arithmetischen
Operationen, die von Yang vorgeschlagen werden, lassen sich
jedoch nicht leicht vektorisieren. Daher ist die
Parallelverarbeitung der Operationen schwierig, und wird das
Ausmaß an Berechnungen erhöht.
Eine weitere Vorgehensweise wird von N. Demassieux und
F. Jutand vorgeschlagen: "Orthogonal Transforms in VLSI
Implementations for Image Communications", herausgegeben von
P. Pirsch, Elsevier Science Publisher, Niederlande, 1993. Der
Algorithmus auf der Grundlage einer Schmetterlingskette, der
von Demassieux und Jutand vorgeschlagen wurde, umfaßt
zahlreiche Multiplikationsoperationen, welche die
Bitgenauigkeit beeinträchtigen, die dazu führen, daß keine
Kompatibilität mit den voranstehend erwähnten internationalen
Standards vorhanden ist.
Normalerweise wird die IDCT unter Verwendung eines
Gleitkomma-Prozessors durchgeführt, infolge der bei der IDCT verwendeten
Kosinuswerte. Um eine Hochgeschwindigkeitsverarbeitung zu
erzielen, ist ein Hochleistungsprozessor erforderlich, was die
Kosten für das Empfangsgerät erhöht.
Eine zweidimensionale IDCT ist gegeben durch:
Mathematischer Ausdruck 1
Definiert man
so läßt sich der mathematische Ausdruck 1 als ein
Matrixausdruck ausdrücken, der gegeben ist durch
Mathematischer Ausdruck 2
[f] = [c]T[F] [c].
Hierbei entspricht die transponierte Matrix CT einer
eindimensionalen IDCT in Vertikalrichtung, und entspricht die
Matrix C einer eindimensionalen IDCT in Horizontalrichtung. Um
daher eine zweidimensionale IDCT zu berechnen, müssen
Berechnungsverarbeitungen sowohl in Horizontal- als auch in
Vertikalrichtung durchgeführt werden. Ein normaler
Vektorprozessor kann eine Parallelverarbeitung nur in einer
Richtung durchführen. Daher kann die Vektorisierung der
Operationen in beiden Richtungen nicht erzielt werden.
Ein Vorteil der vorliegenden Erfindung besteht in der Lösung
der beim Stand der Technik bestehenden Schwierigkeiten und in
der Bereitstellung eines Verfahrens zur Durchführung von IDCT,
welches die Menge an Berechnungen verringern kann, und die
Anforderungen an die Bitgenauigkeit internationaler Standards
erfüllen kann.
Gemäß einer Zielrichtung der vorliegenden Erfindung wird ein
Verfahren zur Durchführung von IDCT bei komprimierten
Bilddaten zur Verfügung gestellt, bei welchem eine
eindimensionale IDCT in Bezug auf N×N DCT-Daten Xij
durchgeführt wird, unter Verwendung folgenden Ausdrucks
wobei das Verfahren folgende Schritte umfaßt:
Definition jeder Spalte der Skalare Xij als Vektor i = {Xi0, Xi1, . . ., Xi(N-1)} und eines Vektors i = {Yi0, Yi1, . . ., Yi(N-1)}.
Definition jeder Spalte der Skalare Xij als Vektor i = {Xi0, Xi1, . . ., Xi(N-1)} und eines Vektors i = {Yi0, Yi1, . . ., Yi(N-1)}.
Speichern der Skalarwerte von
in einem Skalarregister;
Erhalten des Vektors i = {Yi0, Yi1, . . ., Yi(N-1)} durch Auslesen der Werte, die in dem Skalarregister gespeichert sind, und in dem Vektorregister, und durch Parallelverarbeitung skalarer Vektormultiplikationen und Vektor-Vektor-Additionen in Bezug auf die ausgelesenen Skalarwerte und Vektorwerte entsprechend der Gleichung
Erhalten des Vektors i = {Yi0, Yi1, . . ., Yi(N-1)} durch Auslesen der Werte, die in dem Skalarregister gespeichert sind, und in dem Vektorregister, und durch Parallelverarbeitung skalarer Vektormultiplikationen und Vektor-Vektor-Additionen in Bezug auf die ausgelesenen Skalarwerte und Vektorwerte entsprechend der Gleichung
und wiederholte, N-fache Durchführung der voranstehend
angegebenen Schritte.
Gemäß einer weiteren Zielrichtung der vorliegenden Erfindung
wird ein Verfahren zur Durchführung von IDCT bei komprimierten
Bilddaten zur Verfügung gestellt, welches folgende Schritte
aufweist:
Definition jeder Spalte von Skalaren, Xij (mit i, j=0, 1, 2, . . . N-1) und Yij als ein Vektor i = {Xi0, Xi1, . . ., Xi(N-1)} bzw. ein Vektor i = {Yi0, Yi1, . . ., Yi(N-1)}.
Definition jeder Spalte von Skalaren, Xij (mit i, j=0, 1, 2, . . . N-1) und Yij als ein Vektor i = {Xi0, Xi1, . . ., Xi(N-1)} bzw. ein Vektor i = {Yi0, Yi1, . . ., Yi(N-1)}.
Speichern von Werten
in einem Skalarregister;
Speichern von Werten für i = {Xi0, Xi1, . . ., Xi(N-1)} in einem Vektorregister;
Erhalten von i = {Yi0, Yi1, . . ., Yi(N-1)} durch Auslesen der Werte, die in dem Skalarregister und dem Vektorregister gespeichert sind, und durch Paralleverarbeitung skalarer Vektormultiplikationen und Vektor-Vektor-Additionen in Bezug auf die ausgelesenen Skalarwerte und Vektorwerte entsprechend dem Ausdruck
Speichern von Werten für i = {Xi0, Xi1, . . ., Xi(N-1)} in einem Vektorregister;
Erhalten von i = {Yi0, Yi1, . . ., Yi(N-1)} durch Auslesen der Werte, die in dem Skalarregister und dem Vektorregister gespeichert sind, und durch Paralleverarbeitung skalarer Vektormultiplikationen und Vektor-Vektor-Additionen in Bezug auf die ausgelesenen Skalarwerte und Vektorwerte entsprechend dem Ausdruck
Erhalten von Werten einer eindimensionalen IDCT in einer
ersten Richtung durch Durchführung der eindimensionalen IDCT
in der ersten Richtung durch wiederholte, N-fache Durchführung
der voranstehend angegebenen Schritte;
Erhalten einer transponierten Matrix der erhaltenen eindimensionalen IDCT-Werte in der ersten Richtung; und
Erhalten von Werten einer endgültigen zweidimensionalen IDCT dadurch, daß Werte der transponierten Matrix auf dieselbe Weise wie bei der eindimensionalen IDCT in der ersten Richtung erhalten werden, und eine transponierte Matrix der erhaltenen Werte erhalten wird, um eine eindimensionale IDCT in einer zweiten Richtung durchzuführen.
Erhalten einer transponierten Matrix der erhaltenen eindimensionalen IDCT-Werte in der ersten Richtung; und
Erhalten von Werten einer endgültigen zweidimensionalen IDCT dadurch, daß Werte der transponierten Matrix auf dieselbe Weise wie bei der eindimensionalen IDCT in der ersten Richtung erhalten werden, und eine transponierte Matrix der erhaltenen Werte erhalten wird, um eine eindimensionale IDCT in einer zweiten Richtung durchzuführen.
Die Erfindung wird nachstehend anhand zeichnerisch
dargestellter Ausführungsbeispiele näher erläutert, aus
welchen weitere Ziele, Vorteile und Merkmale der vorliegenden
Erfindung hervorgehen. Es zeigt.
Fig. 1 eine Darstellung eines 8×8-DCT-Koeffizientenblocks
und eines 8×8-Pixelblocks; und
Fig. 2 eine Darstellung zur Erläuterung des
IDCT-Verfahrens, welches durch einen Festkomma-Prozessor
mit 16 Bit gemäß der vorliegenden Erfindung
durchgeführt wird.
Fig. 1 zeigt einen 8×8-DCT-Koeffizientenblock und einen
8×8-Pixelblock. Die eindimensionale IDCT ist in Matrixform
ausgedrückt, nämlich durch folgenden
Mathematischen Ausdruck 3
Mathematischen Ausdruck 3
[Y] = [C] [X].
Unter der Annahme, daß θ=Π/16 ist, läßt sich der mathematische
Ausdruck 3 im einzelnen in bezug auf den 8×8-DCT-Koeffizienten
Xij folgendermaßen ausdrücken:
Mathematischer Ausdruck 4
Gemäß der vorliegenden Erfindung werden drei Verbesserungen
vorgeschlagen, um eine zweidimensionale IDCT mit Hilfe eines
Festkomma-Prozessors mit 16 Bit durchzuführen.
Zuerst wird, um eine Parallelverarbeitung der
zweidimensionalen IDCT durch Vektoroperationen durchzuführen,
der voranstehend angegebene mathematische Ausdruck 3 in den
folgenden Ausdruck umgewandelt.
Mathematischer Ausdruck 5
[Y] =[C] [X] [C]T
[[C] [[C] [X]]T]T.
[[C] [[C] [X]]T]T.
Nach dem mathematischen Ausdruck 5 ist die Durchführung der
zweidimensionalen IDCT dadurch möglich, daß die
eindimensionale IDCT in Vertikalrichtung durchgeführt wird,
die eindimensionale IDCT erneut in Vertikalrichtung in Bezug
auf das Ergebnis als transponierte Matrix durchgeführt wird,
und dann das Ergebnis transponiert wird. Anders ausgedrückt
kann die IDCT nur in einer Richtung durchgeführt werden, also
in Vertikalrichtung, und ermöglicht dies eine vollständig
parallele Verarbeitung und eine vollständige Vektorisierung.
Genauer gesagt wird, wenn X mit N×N eingegeben wird, die
eindimensionale IDCT folgendermaßen ausgedrückt:
Mathematischer Ausdruck 6
Da X, Y und C skalare Werte sind, sind eine N3-fache
Multiplikation und N2(N-1)-fache Additionen erforderlich, um
die eindimensionale IDCT unter Verwendung des mathematischen
Ausdrucks 6 durchzuführen. Wenn jedoch jede Spalte der Skalare
Xij und Yij als Vektor i = {Xi0, Xi1, . . ., Xi(N-1)} und als der
Vektor i = {Yi0, Yi1, . . ., Yi(N-1)} definiert werden, durch
Einsatz der Vektorparallelverarbeitung gemäß der vorliegenden
Erfindung, läßt sich der voranstehende mathematische Ausdruck
folgendermaßen ausdrücken.
Mathematischer Ausdruck 7
Im einzelnen werden folgende Werte für
in einem Skalarregister gespeichert, die Werte für i = {Xi0,
Xi1, . . ., Xi(N-1)} werden in einem Vektorregister gespeichert,
und dann wird die Berechnung unter Verwendung des
mathematischen Ausdrucks 7 durchgeführt. Dasselbe Ergebnis
entsprechend dem mathematischen Ausdruck 6 kann durch N2-fache
skalare Vektormultiplikationen und N(N-1)-fache Vektor-Vektor-Addi
tionen erhalten werden. Dies führt dazu, daß gemäß der
vorliegenden Erfindung die zweidimensionale IDCT in einer
Richtung durchgeführt wird. Dies gestattet eine volle
Vektorisierung, so daß die Berechnung für die IDCT wesentlich
verringert werden kann.
Zweitens werden die skalaren Vektormultiplikationen und die
Vektor-Vektor-Additionen so durchgeführt, daß die
Symmetrieeigenschaften gerader Spalten von
gemäß dem mathematischen Ausdruck 4 genutzt werden, wobei die
erste bis vierte Zeile folgendermaßen aussieht.
Erste Zeile A1=cos4Θx(X0+X4)+cos2ΘxX2+cos6ΘxX6
A2=cosΘxX1+cos3ΘxX3+cos5ΘxX5+cos7ΘxX7,
A2=cosΘxX1+cos3ΘxX3+cos5ΘxX5+cos7ΘxX7,
Zweite Zeile B1=cos4Θx(X0-X4)+cos6ΘxX2-cos2ΘxX6
B2=cos3ΘxX1-cos7ΘxX3-cosΘxX5-cos5ΘxX7,
B2=cos3ΘxX1-cos7ΘxX3-cosΘxX5-cos5ΘxX7,
Dritte Zeile C1=cos4Θx(X0-X4)-cos6ΘxX2+cos2ΘxX6
C2=cos5ΘxX1-cosΘxX3+cos7ΘxX5+cos3ΘxX7,
C2=cos5ΘxX1-cosΘxX3+cos7ΘxX5+cos3ΘxX7,
Vierte Zeile D1=cos4Θx(X0+X4)-cos2ΘxX2-cos6ΘxX6
D2=cos7ΘxX1-cos5ΘxX3+cos3ΘxX5-cosΘxX7,
D2=cos7ΘxX1-cos5ΘxX3+cos3ΘxX5-cosΘxX7,
und der Vektor i = {Yi0, Yi1, . . ., Yi(N-1)} folgendermaßen
erhalten wird
Y0 = A1 + A2,
Y1 = B1 + B2,
Y2 = C1 + C2,
Y3 = D1 + D2,
Y4 = D1 - D2,
Y5 = C1 - C2,
Y6 = B1 - B2,
Y7 = A1 - A2.
Y1 = B1 + B2,
Y2 = C1 + C2,
Y3 = D1 + D2,
Y4 = D1 - D2,
Y5 = C1 - C2,
Y6 = B1 - B2,
Y7 = A1 - A2.
Vorzugsweise werden die Werte für X0+X4 und X0-X4 vorher
erhalten und berechnet. Die Verwendung der voranstehend
geschilderten Symmetrie verringert die Anzahl an
Multiplikationen um das N2/2-fache und der Additionen um das
(N/2) (N-1)-fache, so daß die Menge an Berechnungen um die
Hälfte verringert wird, verglichen mit der Berechnung, die in
Bezug auf die mathematische Gleichung 7 geschildert wurde.
Drittens müssen, um Additionen und Subtraktionen in dem
16-Bit-Prozessor in Bezug auf A1, A2, . . ., D1, D2 durchzuführen,
welche 32-Bitwerte darstellen, die sich aus 16-Bit-Multi
plikationen ergeben, die Werte in Werte mit 16 Bit
geändert werden, wobei die Stellen hinter dem Komma entfallen.
Fehler häufen sich normalerweise in dem darauffolgenden
zweiten eindimensionalen IDCT-Vorgang, was dazu führt, daß die
Bitgenauigkeit nicht mehr erfüllt ist, die von internationalen
Standards gefordert wird. Die internationalen Standards legen
den maximalen Grenzwert für den Fehler fest, der sich zwischen
dem Ergebnis der Gleitkomma-IDCT und dem Ergebnis der
Festkomma-IDCT ergibt, die von der vorliegenden Erfindung
vorgeschlagen wird. Gemäß der vorliegenden Erfindung wird ein
dynamischer Bereich festgelegt, der zur Erfüllung der
internationalen Standards ausreichend ist.
Typischerweise wird zur Durchführung einer Gleitkomma-Operation
mit Hilfe eines Festkomma-Prozessors der Gleitkomma-Wert um eine
bestimmte Bitanzahl nach links verschoben, um in eine ganze Zahl
umgewandelt zu werden, wird eine gewünschte Operation mit der
umgewandelten ganzen Zahl durchgeführt, und wird dann das
Ergebnis nach rechts verschoben, um einen endgültigen Ergebnis
wert dadurch zu erhalten, daß Dezimalbrüche entfallen.
Um beispielsweise den ganzzahligen Anteil des berechneten
Ergebnisses von 0,375×6 zu erhalten, kann die folgende
Operation durchgeführt werden.
0,375 × 6 = ((0,375 « 3) × 6) » 3
= ((0,111(2) « 3) × 110(2) » 3
= (11(2) × 110(2)) » 3
=10010(2) » 3
=10(2)
= 2.
= ((0,111(2) « 3) × 110(2) » 3
= (11(2) × 110(2)) » 3
=10010(2) » 3
=10(2)
= 2.
Bei der voranstehend geschilderten Operation bezeichnet der
Term "«3" eine Linksverschiebung um drei Bit, und bezeichnet
"»3" eine Rechtsverschiebung um drei Bit. Wenn gewünscht
ist, während der voranstehenden Operation die Brüche
abzurunden, kann dies ordnungsgemäß vor der Rechtsverschiebung
durchgeführt werden.
Im einzelnen wird der Kosinuswert, welcher den Gleitkomma-Wert
der eindimensionalen IDCT darstellt, zuerst um 15 Bits nach
links verschoben, so daß sich eine ganze Zahl ergibt, und wird
das Ergebnis mit 32 Bits, welches sich bei der Berechnung
ergibt, um 15 Bits nach rechts verschoben, um das gewünschte
Ergebnis mit 16 Bits zu erhalten. Eine derartige Berechnung
wird zweimal wiederholt, um die zweidimensionale IDCT
durchzuführen. In dem konventionellen Fall werden die Brüche
nach dem ersten IDCT-Vorgang abgeschnitten, und akkumulieren
die Fehler nach Durchführung des zweiten Vorgangs. Dies führt
dazu, daß die Bitgenauigkeit beeinträchtigt wird. Daher ist
ein Prozessor mit 32 Bit erforderlich, um die gewünschte
Bitgenauigkeit sicherzustellen, und dies führt dazu, daß die
Kosten für das IDCT-Gerät ansteigen. Die vorliegende Erfindung
kann die voranstehend geschilderten Probleme mit Hilfe eines
16-Bit-Festkomma-Prozessors lösen.
Im einzelnen wird gemäß der vorliegenden Erfindung, wie in
Fig. 2 gezeigt, der eindimensionale IDCT-Wert in der ersten
Richtung um 11 Bit nach links verschoben, und an den
eindimensionalen IDCT-Abschnitt in der zweiten Richtung
übertragen. Der eindimensionale IDCT-Wert in der zweiten
Richtung wird um 19 Bit nach rechts verschoben, um den
endgültigen zweidimensionalen IDCT-Wert zu erhalten. Der
Maximalwert, der sich bei der eindimensionalen IDCT von
DCT-Daten ergibt, überschreitet nicht 12 Bit, entsprechend den
Eigenschaften des IDCT-Koeffizienten, und daher sind die
oberen 4 Bits der 16 Bits ohne Bedeutung. Behält man 4 Bit für
die Dezimalbrüche bei, statt der oberen 4 Bit, so wird daher
der Fehler verringert, der bei der zweidimensionalen IDCT
hervorgerufen wird.
Aus den voranstehenden Ausführungen wird deutlich, daß die
vorliegende Erfindung in der Hinsicht vorteilhaft ist, daß sie
das Ausmaß an Berechnungen wesentlich verringern kann, während
sie die Bitgenauigkeit internationaler Standards sicherstellt,
und daher die Kosten der IDCT-Verarbeitungsvorrichtung
verringern kann. Die vorliegende Erfindung führt eine
Parallelverarbeitung durch vollständige Vektorisierung durch,
und unter Verwendung der Symmetrie der Kosinusmatrix, um die
zweidimensionale IDCT mit Hilfe eines 16-Bit-Festkomma-Prozessors
durchzuführen.
Zwar wurde die vorliegende Erfindung hier unter Bezugnahme auf
eine bevorzugte Ausführungsform der Erfindung beschrieben und
erläutert, jedoch wird Fachleuten auf diesem Gebiet deutlich
werden, daß sich verschiedene Abänderungen bezüglich der Form
und der Einzelheiten vornehmen lassen, ohne vom Umfang und
Wesen der Erfindung abzuweichen.
Claims (7)
1. Verfahren zur Durchführung von IDCT bei einem Bildsignal,
welches unter Verwendung einer diskreten
Kosinustransformation komprimiert wurde, wobei eine
eindimensionale IDCT in Bezug auf N×N DCT-Daten Xij unter
Verwendung des folgenden Ausdrucks durchgeführt wird:
mit folgenden Schritten:
Definition jeder Spalte der Skalare Xij und Yij als Vektor i={Xi0, Xi1, . . ., Xi(N-1)} bzw. Vektor i={Yi0, Yi1, . . ., Yi(N-1)}.
Speichern in einem Skalarregister, der Skalarwerte von
Speichern der Vektorwerte von i={Xi0, Xi1, . . ., Xi(N-1)} in einem Vektorregister;
Erhalten des Vektors i={Yi0, Yi1, . . ., Yi(N-1)} durch Auslesen der Werte, die in einem Skalarregister gespeichert sind, und in einem Vektorregister, und durch Parallelverarbeitung skalarer Vektormultiplikationen und Vektor-Vektor-Additionen in Bezug auf die ausgelesenen Skalarwerte und Vektorwerte entsprechend der Gleichung
und N-fache, wiederholte Durchführung der voranstehend angegebenen Schritte, um Daten entsprechend einem dekomprimierten Bildsignal zu erhalten.
mit folgenden Schritten:
Definition jeder Spalte der Skalare Xij und Yij als Vektor i={Xi0, Xi1, . . ., Xi(N-1)} bzw. Vektor i={Yi0, Yi1, . . ., Yi(N-1)}.
Speichern in einem Skalarregister, der Skalarwerte von
Speichern der Vektorwerte von i={Xi0, Xi1, . . ., Xi(N-1)} in einem Vektorregister;
Erhalten des Vektors i={Yi0, Yi1, . . ., Yi(N-1)} durch Auslesen der Werte, die in einem Skalarregister gespeichert sind, und in einem Vektorregister, und durch Parallelverarbeitung skalarer Vektormultiplikationen und Vektor-Vektor-Additionen in Bezug auf die ausgelesenen Skalarwerte und Vektorwerte entsprechend der Gleichung
und N-fache, wiederholte Durchführung der voranstehend angegebenen Schritte, um Daten entsprechend einem dekomprimierten Bildsignal zu erhalten.
2. Verfahren zur Durchführung von IDCT nach Anspruch 1,
dadurch gekennzeichnet, daß die skalaren
Vektormultiplikationen und die Vektor-Vektor-Additionen
so durchgeführt werden, daß die Symmetrie gerader Spalten
folgenden Ausdrucks benutzt wird
wobei die erste bis vierte Zeile folgendermaßen aussieht
Erste Zeile A1=cos4Θx(X0+X4)+cos2ΘxX2+cos6ΘxX6
A2=cosΘxX1+cos3ΘxX3+cos5ΘxX5+cos7ΘxX7,
Zweite Zeile B1=cos4Θx(X0-X4)+cos6ΘxX2-cos2ΘxX6
B2=cos3ΘxX1-cos7ΘxX3-cosΘxX5-cos5ΘxX7,
Dritte Zeile C1=cos4Θx(X0-X4)-cos6ΘxX2+cos2ΘxX6
C2=cos5ΘxX1-cosΘxX3+cos7ΘxX5+cos3ΘxX7,
Vierte Zeile D1=cos4Θx(X0+X4)-cos2ΘxX2-cos6ΘxX6
D2=cos7ΘxX1-cos5ΘxX3+cos3ΘxX5-cosΘxX7,
und der Vektor i = {Yi0, Yi1, . . ., Yi(N-1)} dadurch erhalten wird, daß jeweils berechnet wird
Y0=A1+A2, Y1=B1+B2, Y2=C1+C2, Y3=D1+D2, Y4=D1-D2, Y5=C1-C2, Y6=B1-B2, und Y7=A1-A2.
wobei die erste bis vierte Zeile folgendermaßen aussieht
Erste Zeile A1=cos4Θx(X0+X4)+cos2ΘxX2+cos6ΘxX6
A2=cosΘxX1+cos3ΘxX3+cos5ΘxX5+cos7ΘxX7,
Zweite Zeile B1=cos4Θx(X0-X4)+cos6ΘxX2-cos2ΘxX6
B2=cos3ΘxX1-cos7ΘxX3-cosΘxX5-cos5ΘxX7,
Dritte Zeile C1=cos4Θx(X0-X4)-cos6ΘxX2+cos2ΘxX6
C2=cos5ΘxX1-cosΘxX3+cos7ΘxX5+cos3ΘxX7,
Vierte Zeile D1=cos4Θx(X0+X4)-cos2ΘxX2-cos6ΘxX6
D2=cos7ΘxX1-cos5ΘxX3+cos3ΘxX5-cosΘxX7,
und der Vektor i = {Yi0, Yi1, . . ., Yi(N-1)} dadurch erhalten wird, daß jeweils berechnet wird
Y0=A1+A2, Y1=B1+B2, Y2=C1+C2, Y3=D1+D2, Y4=D1-D2, Y5=C1-C2, Y6=B1-B2, und Y7=A1-A2.
3. Verfahren zur Durchführung von IDCT nach Anspruch 2,
dadurch gekennzeichnet, daß die Werte für
X0+X4 und X0-X4 vorher erhalten und berechnet werden.
4. Verfahren zur Durchführung von IDCT bei einem Bildsignal,
welches unter Verwendung einer diskreten
Kosinustransformation komprimiert wurde, mit folgenden
Schritten:
Definition jeder Spalte von Skalaren Xij (mit i, j=0, 1, 2, . . , N-1) und Yij als Vektor i = {Xi0, Xi1, . . ., Xi(N-1)} bzw. Vektor i = {Yi0, Yi1, . . ., Yi(N-1)};
Speichern, in einem Skalarregister, von Werten für
Speichern von Werten für i = {Xi0, Xi1, . . ., Xi(N-1)} in einem Vektorregister;
Erhalten von i = {Yi0, Yi1, . . ., Yi(N-1)} durch Auslesen der Werte, die in dem Skalarregister und dem Vektorregister gespeichert sind, und durch Parallelverarbeitung skalarer Vektormultiplikationen und Vektor-Vektor-Additionen in Bezug auf die ausgelesenen Skalarwerte und Vektorwerte entsprechend folgender Gleichung
Erhalten von Werten einer eindimensionalen IDCT in einer ersten Richtung, mittels Durchführung der eindimensionalen IDCT in der ersten Richtung durch N-fache, wiederholte Durchführung der voranstehend angegebenen Schritte;
Erhalten einer transponierten Matrix der erhaltenen eindimensionalen IDCT-Werte in der ersten Richtung; und
Erhalten von Werten einer endgültigen, zweidimensionalen IDCT dadurch, daß Werte der transponierten Matrix in derselben Art und Weise wie bei der eindimensionalen IDCT in der ersten Richtung erhalten werden, und eine transponierte Matrix der erhaltenen Werte erhalten wird, um eine eindimensionale IDCT in einer zweiten Richtung durchzuführen, wobei die Daten der endgültigen, zweidimensionalen Matrix den Daten für ein dekomprimiertes Bildsignal entsprechen.
Definition jeder Spalte von Skalaren Xij (mit i, j=0, 1, 2, . . , N-1) und Yij als Vektor i = {Xi0, Xi1, . . ., Xi(N-1)} bzw. Vektor i = {Yi0, Yi1, . . ., Yi(N-1)};
Speichern, in einem Skalarregister, von Werten für
Speichern von Werten für i = {Xi0, Xi1, . . ., Xi(N-1)} in einem Vektorregister;
Erhalten von i = {Yi0, Yi1, . . ., Yi(N-1)} durch Auslesen der Werte, die in dem Skalarregister und dem Vektorregister gespeichert sind, und durch Parallelverarbeitung skalarer Vektormultiplikationen und Vektor-Vektor-Additionen in Bezug auf die ausgelesenen Skalarwerte und Vektorwerte entsprechend folgender Gleichung
Erhalten von Werten einer eindimensionalen IDCT in einer ersten Richtung, mittels Durchführung der eindimensionalen IDCT in der ersten Richtung durch N-fache, wiederholte Durchführung der voranstehend angegebenen Schritte;
Erhalten einer transponierten Matrix der erhaltenen eindimensionalen IDCT-Werte in der ersten Richtung; und
Erhalten von Werten einer endgültigen, zweidimensionalen IDCT dadurch, daß Werte der transponierten Matrix in derselben Art und Weise wie bei der eindimensionalen IDCT in der ersten Richtung erhalten werden, und eine transponierte Matrix der erhaltenen Werte erhalten wird, um eine eindimensionale IDCT in einer zweiten Richtung durchzuführen, wobei die Daten der endgültigen, zweidimensionalen Matrix den Daten für ein dekomprimiertes Bildsignal entsprechen.
5. Verfahren zur Durchführung von IDCT nach Anspruch 4,
dadurch gekennzeichnet, daß die skalaren
Vektormultiplikationen und die Vektor-Vektor-Additionen
so durchgeführt werden, daß die Symmetrie gerader Spalten
des folgenden Ausdrucks benutzt wird
wobei die erste bis vierte Zeile folgendermaßen aussieht
Erste Zeile: A1=cos4Θx(X0+X4)+cos2ΘxX2+cos6ΘxX6
A2=cosΘxX1+cos3ΘxX3+cos5ΘxX5+cos7ΘxX7,
Zweite Zeile: B1=cos4Θx(X0-X4)+cos6ΘxX2-cos2ΘxX6
B2=cos3ΘxX1-cos7ΘxX3-cosΘxX5-cos5ΘxX7,
Dritte Zeile: C1=cos4ΘxX0-X4)-cos6ΘxX2+cos2ΘxX6
C2=cos5ΘxX1-cosΘxX3+cos7ΘxX5+cos3ΘxX1,
Vierte Zeile: D1=cos4Θx(X0+X4)-cos2ΘxX2-cos6ΘxX6
D2=cos7ΘxX1-cos5ΘxX3+cos3Θx_X5-cosΘxX7,
und der Vektor i = {Yi0, Yi1, . . ., Yi(N-1)} dadurch erhalten wird, daß jeweils berechnet wird
Y0=A1+A2, Y1=B1+B2, Y2=C1+C2, Y3=D1+D2, Y4=D1-D2, Y5=C1-C2, Y6=B1-B2 und Y7=A1-A2.
wobei die erste bis vierte Zeile folgendermaßen aussieht
Erste Zeile: A1=cos4Θx(X0+X4)+cos2ΘxX2+cos6ΘxX6
A2=cosΘxX1+cos3ΘxX3+cos5ΘxX5+cos7ΘxX7,
Zweite Zeile: B1=cos4Θx(X0-X4)+cos6ΘxX2-cos2ΘxX6
B2=cos3ΘxX1-cos7ΘxX3-cosΘxX5-cos5ΘxX7,
Dritte Zeile: C1=cos4ΘxX0-X4)-cos6ΘxX2+cos2ΘxX6
C2=cos5ΘxX1-cosΘxX3+cos7ΘxX5+cos3ΘxX1,
Vierte Zeile: D1=cos4Θx(X0+X4)-cos2ΘxX2-cos6ΘxX6
D2=cos7ΘxX1-cos5ΘxX3+cos3Θx_X5-cosΘxX7,
und der Vektor i = {Yi0, Yi1, . . ., Yi(N-1)} dadurch erhalten wird, daß jeweils berechnet wird
Y0=A1+A2, Y1=B1+B2, Y2=C1+C2, Y3=D1+D2, Y4=D1-D2, Y5=C1-C2, Y6=B1-B2 und Y7=A1-A2.
6. Verfahren zur Durchführung von IDCT nach Anspruch 5,
dadurch gekennzeichnet, daß die Werte für
X0+X4 und X0-X4 vorher erhalten und berechnet werden.
7. Verfahren zur Durchführung von IDCT nach Anspruch 6,
dadurch gekennzeichnet, daß die
Multiplikation und die Addition mit Hilfe eines
16-Bit-Festkomma-Prozessors so durchgeführt werden, daß der
erhaltene eindimensionale IDCT-Wert in der ersten
Richtung um 11 Bit nach links verschoben wird, und an
einen eindimensionalen IDCT-Abschnitt in der zweiten
Richtung übertragen wird, und der erhaltene
eindimensionale IDCT-Wert in der zweiten Richtung um 19
Bit nach rechts verschoben wird, um einen endgültigen
zweidimensionalen IDCT-Wert zu erhalten.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/744,147 US6044176A (en) | 1996-11-12 | 1996-11-12 | Method of performing inverse discrete cosine transform |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19746255A1 true DE19746255A1 (de) | 1998-07-23 |
Family
ID=24991622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19746255A Ceased DE19746255A1 (de) | 1996-11-12 | 1997-10-20 | Verfahren zur Durchführung der inversen, diskreten Kosinustransformation |
Country Status (5)
Country | Link |
---|---|
US (1) | US6044176A (de) |
JP (1) | JP3816213B2 (de) |
KR (1) | KR100227271B1 (de) |
DE (1) | DE19746255A1 (de) |
TW (1) | TW358314B (de) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6766341B1 (en) | 2000-10-23 | 2004-07-20 | International Business Machines Corporation | Faster transforms using scaled terms |
US7007054B1 (en) | 2000-10-23 | 2006-02-28 | International Business Machines Corporation | Faster discrete cosine transforms using scaled terms |
US6961473B1 (en) | 2000-10-23 | 2005-11-01 | International Business Machines Corporation | Faster transforms using early aborts and precision refinements |
KR100465156B1 (ko) * | 2001-08-31 | 2005-01-13 | (주)씨앤에스 테크놀로지 | 분산산술처리방식의 dct/idct 연산기에 있어서연산오차 및 연산시간 감소방법 |
US8045614B2 (en) | 2005-05-11 | 2011-10-25 | Dolby Laboratories Licensing Corporation | Quantization control for variable bit depth |
US20060080375A1 (en) * | 2004-10-12 | 2006-04-13 | Lee Kun-Bin | Method and apparatus for inverse discrete cosine transform implementation |
KR101480412B1 (ko) * | 2009-01-22 | 2015-01-09 | 삼성전자주식회사 | 영상의 변환 방법 및 장치, 역변환 방법 및 장치 |
US9807395B2 (en) * | 2011-01-18 | 2017-10-31 | Dolby International Ab | Video decoder with reduced dynamic range transform with inverse transform shifting memory |
US20120183047A1 (en) | 2011-01-18 | 2012-07-19 | Louis Joseph Kerofsky | Video decoder with reduced dynamic range transform with inverse transform clipping |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4791598A (en) * | 1987-03-24 | 1988-12-13 | Bell Communications Research, Inc. | Two-dimensional discrete cosine transform processor |
US5668748A (en) * | 1995-04-15 | 1997-09-16 | United Microelectronics Corporation | Apparatus for two-dimensional discrete cosine transform |
US5867601A (en) * | 1995-10-20 | 1999-02-02 | Matsushita Electric Corporation Of America | Inverse discrete cosine transform processor using parallel processing |
US5854757A (en) * | 1996-05-07 | 1998-12-29 | Lsi Logic Corporation | Super-compact hardware architecture for IDCT computation |
-
1996
- 1996-11-12 US US08/744,147 patent/US6044176A/en not_active Expired - Lifetime
-
1997
- 1997-05-02 KR KR1019970016974A patent/KR100227271B1/ko not_active IP Right Cessation
- 1997-09-09 TW TW086113029A patent/TW358314B/zh not_active IP Right Cessation
- 1997-10-15 JP JP28211897A patent/JP3816213B2/ja not_active Expired - Fee Related
- 1997-10-20 DE DE19746255A patent/DE19746255A1/de not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
JP3816213B2 (ja) | 2006-08-30 |
US6044176A (en) | 2000-03-28 |
KR19980041724A (ko) | 1998-08-17 |
KR100227271B1 (ko) | 1999-11-01 |
TW358314B (en) | 1999-05-11 |
JPH10149350A (ja) | 1998-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3686754T2 (de) | Bilddatenkodierverfahren. | |
DE69128006T2 (de) | Vorrichtung zur orthogonalen Transformationskodierung | |
DE69206847T2 (de) | Bildverarbeitungsverfahren | |
DE4133460C2 (de) | Verfahren zum Verdichten von Bildern | |
DE69534399T2 (de) | Verfahren und Gerät zur Bestimmung von Merkmalpunkten | |
DE69309529T2 (de) | Verfahren und Vorrichtung für die räumliche Filterung von blocktransformationsdekodierten digitalen Bildern | |
DE3884802T3 (de) | Verfahren und vorrichtung zur adaptiven blocktransformationscodierung von bildern. | |
DE69735679T2 (de) | Verfahren zur Bilddecodierung | |
DE69032177T2 (de) | Kodierungsgerät | |
DE2640140C2 (de) | Verfahren und Anordnung zur redundanzvermindernden Bildcodierung | |
DE69736329T2 (de) | Verschachtelte verteilte kodierung von spärlich bestückten datensätzen | |
EP0421186B1 (de) | Verfahren zur Codierung beliebig geformter Bildsegmente | |
DE69121995T2 (de) | Bild-kodiereinrichtung und Bild-dekodiereinrichtung | |
DE69031674T2 (de) | Verfahren und Schaltungsanordnung zur zweidimensionalen diskreten Transformation | |
DE4239126A1 (de) | ||
DE19746255A1 (de) | Verfahren zur Durchführung der inversen, diskreten Kosinustransformation | |
WO2002015584A2 (de) | Verfahren zur ganzzahligen approximation von transformationskoeffizienten sowie coder und decoder | |
EP0742673A2 (de) | Verfahren zur Bilddatenreduktion mittels fraktaler Bildcodierung sowie Encoder und Decoder zur Durchführung des Verfahrens | |
DE3545106C2 (de) | ||
EP1101196B1 (de) | Verfahren und anordnung zur bewegungsschätzung in einem digitalisierten bild mit bildpunkten | |
DE60119660T2 (de) | Verfahren zur Verarbeitung von Videodateien | |
EP0908056B1 (de) | Verfahren und vorrichtung zur bearbeitung von bildpunkten eines bildsegments durch einen rechner | |
DE69115530T2 (de) | System zum Filtern eines Bildes | |
DE19641157A1 (de) | Verfahren zur Überprüfung der Konvergenz bei der fraktalen Bildcodierung | |
EP0845909A1 (de) | Verfahren und Filter zur Reduzierung des Blocking Effektes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8131 | Rejection |