DE4306010C2 - Verfahren und Einrichtung zur digitalen Verarbeitung von Bilddaten - Google Patents
Verfahren und Einrichtung zur digitalen Verarbeitung von BilddatenInfo
- Publication number
- DE4306010C2 DE4306010C2 DE19934306010 DE4306010A DE4306010C2 DE 4306010 C2 DE4306010 C2 DE 4306010C2 DE 19934306010 DE19934306010 DE 19934306010 DE 4306010 A DE4306010 A DE 4306010A DE 4306010 C2 DE4306010 C2 DE 4306010C2
- Authority
- DE
- Germany
- Prior art keywords
- factor
- transformation
- value
- transformed
- pixels
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
Description
Die Erfindung betrifft ein Verfahren und eine Einrichtung
zur digitalen Verarbeitung von Bild
daten und betrifft insbesondere ein Verfah
ren und eine Einrichtung zum Komprimieren von Einzel- oder
Stehbildern, welche mit einer JPEG-(Joint Photographic
Experts Group) Stehbildkompressionsnorm kompatibel sind.
Wenn hochqualitative Bilder komprimiert werden müssen, um
Speicher- oder Übertragungsanforderungen zu genügen, ist es
in der Praxis üblich, zuerst die Bilder in einen anderen
Raum umzuwandeln, wo die Information kompakter dargestellt
werden kann. Dies wird üblicherweise Block für Block mit
einer linearen Transformation (Matrix-Multiplikation) ge
macht; eine typische Anordnung besteht darin, 8 Punkt-Trans
formationen an Zeilensegmenten von 8 Pixels durchzuführen
und dann 8 Punkt-Transformationen an Spaltensegmenten von
8 Elementen dieses zeilentransformierten Bildes durchzufüh
ren. Gleichwertig hiermit kann eine einzige 64 Punkt-Trans
formation an einem Pixel-Block aus 64 Pixels durchgeführt
werden, die in einem (8 × 8)-Block angeordnet sind.
Eine gute Wahl für eine eindimensionale Transformation ist
die diskrete Chebychev-Transformation:
wobei
Diese Transformation hat mehrere Vorteile, nämlich
- a) die Kompression ist annäherend optimal bei einigen Maßnah men;
- b) es gibt schnelle Rechenalgorithmen zum Durchführen dieser Transformation und deren Umkehr, und
- c) ein sogenanntes Entschleiern (deblurring) (ein Steigern des Ausgangsbildes) kann ohne weiteres in einen Transformations raum unter bestimmten Annahmen durchgeführt werden, die be schrieben sind von Acheroy, M, "Use of the DCT for the restoration of an image sequence", SPIE vol 593 Medical Image Processing (1985).
Aus N. Birch, P. Thomas, "Datenkompression löst Übertragungs- und Speicherprobleme"
in Elektronik 19, 15. 09. 1989, Seite 44 bis 49, sind Verfahren zur digitalen Verarbeitung
von Bilddaten, bei denen die Daten unter anderem komprimiert werden, bekannt. Darin
wird insbesondere das Verfahren der diskreten Cosinus-Transformation (DCT) erläutert.
Demgemäß wird bei der Transformationscodierung das Eingangsbild in Blöcke aufgeteilt,
um die lokalisierte, räumliche 2D-Korrelation der Pixel zu nutzen. Die Größe eines Blocks
wird durch die statistische Korrelation der Pixel und durch das Bildformat bestimmt. Üblich
seien Blockgrößen zwischen 8 × 8 und 16 × 16 Pixel. Die zweidimensionale Transformation
eines Pixelblocks ergibt einen unkorrelierten Koeffizientenblock. Die wichtigste Information
ist dabei in nur wenigen Koeffizienten zusammengefaßt, die zur Beschreibung des
ursprünglichen Blocks genügen.
Aus DE 42 10 086 A1 ist eine zweidimensionale Schieberegisteranordnung zur
Bildverdichtung von Bildelementdaten in VLSI-Technik bekannt. Die zweidimensionale
Schieberegisteranordnung weist eine Schieberegister-Einrichtung mit einer Anzahl Mehr-Bit-
Schieberegister auf, sowie eine Einrichtung zum Verschieben der Bildelementdaten in
zumindest zwei Richtungen durch die Anzahl Schieberegister der Schieberegister-
Einrichtung.
Aus DE 41 33 460 A1 ist eine Einrichtung und ein Verfahren zum Verdichten von Bildern
bekannt. Dabei wird für eine eindimensionale Transformation die diskete Cosinus-
Transformation gewählt. Um die Bilddaten zu verdichten, wird weiterhin ein Chen-
Algorithmus, insbesondere ein Chen-Wu-Algorithmus verwendet.
Aus US 5,021,891 ist ein Bildkompressionssystem und ein Bildkompressionsverfahren zum
Komprimieren von Bilddaten für die Übertragung bekannt. Dabei wird jeder Block und
entsprechende Unterblöcke von Pixeldaten einer diskreten Cosinus-Transformation (DCT)
unterworfen. Eine Transformationseinrichtung liefert als Ausgabe einen entsprechenden
Block und Unterblöcke von DCT-Koeffizientenwerten.
Aufgabe der Erfindung ist es, die digitale Transformation bzw. Kompression und
Dekompression von Bilddaten durch eine diskrete Cosinus-Transformation zu beschleunigen.
Diese Aufgabe wird durch ein Verfahren bzw. durch Einrichtungen gemäß den
unabhängigen Ansprüchen gelöst. Vorteilhafte Ausbildungen gehen aus den Unteransprüchen
hervor.
Gemäß der Erfindung soll ein Verfahren und eine Einrichtung
zum Verdichten von Daten, insbesondere von Einzel- oder Steh
bildern geschaffen werden. Ferner soll ein Verfahren und
eine Einrichtung zum Verdichten von Einzel- oder Stehbildern
geschaffen werden, welche noch dazu mit einer JPEG-Transfor
mation kompatibel ist. Ein weiteres Ziel der Erfindung
ist die Optimierung des Benutzens von Bits bei den Quantisie
rungs- und Skalierungsschritten einer Datenkompression. Ein
weiteres Ziel der Erfindung ist die Minimierung eines mittle
ren quadratischen Fehlers bei Daten-Kompressionsschemen, bei
welchen eine Quantisierung und eine Koeffizienten-Skalierung
kombiniert werden. Ein weiteres Ziel der Erfindung ist die
Nutzung einer fest vorgegebenen Anzahl von Bits in einer
Weise, bei welcher der Bereich und die Auflösung einer Daten
kompression optimiert werden. Ein weiteres Ziel der Erfindung
besteht darin, der H.261 Auflösung-Spezifikation für kleine
Quantisierungswerte zu entsprechen. Insbesondere ist es ein
Ziel der Erfindung, ein Schema mit Hilfe eines 16 zu 1-
Multiplexers und eines 16 Bit-Multiplikators zu schaffen,
um eine Quantisierungs-Vorskalierung mit einem dynamischen
Bereich von 28 Bits zu ermöglichen.
Ein weiteres Ziel der Erfindung ist die Ausnutzung der Ge
schwindigkeit der verallgemeinerten Chen-Transformation zu
einem maximalen Vorteil in einer Pipeline-Implementierung
des Prozesses. Ein weiteres Ziel der Erfindung ist es, die
Anzahl an Verknüpfungsgliedern zu minimieren, die zum Durch
führen einer Transformation erforderlich sind. Insbesondere
ist es ein Ziel der Erfindung, die Geschwindigkeit des Addie
rer-Netzwerkabschnitts der Transformation auszunutzen, um die
vertikalen und horizontalen Transformations-Additionen mit
derselben Hardware durchzuführen. Gemäß der Erfindung ist
dies bei einem Verfahren zum Komprimieren von Daten nach dem
Oberbegriff des Anspruchs 1 durch die Merkmale in dessen
kennzeichnenden Teil erreicht. Vorteilhafte Weiterbildungen
sind Gegenstand der auf den Anspruch 1 unmittelbar oder mittel
bar rückbezogenen Ansprüche. Ferner ist dies bei einem Ver
fahren zum Dekomprimieren von Daten nach dem
Anspruch 11 durch die Merkmale im kennzeichnenden Teil des
Anspruchs 11 erreicht. Vorteilhafte Weiterbildungen sind Ge
genstand der auf den Anspruch 11 unmittelbar oder mittelbar
rückbezogenen Ansprüche. Ferner ist dies bei einer Einrich
tung zur Durchführung des Verfahrens nach dem Anspruch 1
durch die Merkmale im kennzeichnenden Teil des Anspruchs 25
erreicht. Vorteilhafte Weiterbildungen sind Gegenstand der
auf den Anspruch 25 unmittelbar oder mittelbar rückbezogenen
Ansprüche. Vorteilhafte Weiterbildungen der Erfindung sind
Gegenstand eines Verfahrens nach Anspruch 40, bei welchem
eine Pipeline-Architektur verwendet wird, um eine zweidimen
sionale Transformation durchzuführen. Ferner ist dies mit
einer Einrichtung zur Durchführung des Verfahrens nach An
spruch 40 durch die Merkmale im kennzeichnenden Teil des An
spruchs 45 erreicht. Vorteilhafte Weiterbildungen sind Gegen
stand der auf die Einrichtung nach Anspruch 45 unmittelbar
oder mittelbar rückbezogenen Ansprüche.
Nachfolgend wird die Erfindung anhand von bevorzugten Aus
führungsbeispielen unter Bezugnahme auf die anliegenden
Zeichnungen im einzelnen erläutert. Es zeigen:
Fig. 1A ein Blockdiagramm eines Kompressors gemäß der
Erfindung;
Fig. 1B ein Blockdiagramm eines Dekompressors gemäß der
Erfindung;
Fig. 2A bis 2C eine Eingangspixel- Ordnung, ein Block-Timing,
und ein Vektor-Timing von Daten gemäß der Er
findung;
Fig. 3 eine Dreipunkt-Transformation von RGB-in XYZ-Daten;
Fig. 4A und 4B mögliche VLSI-Layouts gemäß der Erfindung;
Fig. 5 ein Diagramm eines bei der Erfindung verwendeten
Schieberegisters;
Fig. 6A ein Diagramm einer Schiebeanordnung gemäß der
Erfindung;
Fig. 6B ein Beispiel der Schiebeanordnung der Fig. 6A;
Fig. 7 ein Diagramm eines verknüpften Datenflusses;
Fig. 8A und 8B Diagramme von Vorwärtsaddieranordnungen
gemäß der Erfindung;
Fig. 9 ein Diagramm für eine zweidimensionale verallge
meinerte Chen-Transformation gemäß der Erfindung;
Fig. 10 ein Blockdiagramm einer bevorzugten Ausführungs
form der Erfindung;
Fig. 11 eine Hardware-Realisierung der inversen Vor
skalierung und Quantisierung mit einer Verschie
bung vor der Multiplikation;
Fig. 12 eine Hardware-Realisierung der inversen Vor
skalierung und Quantisierung mit einer Verschie
bung nach der Multiplikation;
Fig. 13 ein Flußdiagramm einer herkömmlichen Ausführung
einer zweidimensionalen DCT-Berechnung, und
Fig. 14 ein Flußdiagramm einer Realisierung der zweidimen
sionalen verallgemeinerten Chen-Transformation,
welche die Geschwindigkeit der Transformation
gemäß der Erfindung ausnutzt.
Ein vollständiges System zur Kompression und Rekonstruktion
von Bildern erscheint in der nachstehenden Tabelle 1.
Vorstehende Tabelle 1 beschreibt die Erfindung und, wenn die
wahlweisen Schritte (L, Z) weggelassen werden, die
gegenwärtige Technik. Die Multiplikation mit den Entschleierungs-
(deblurring)Wertigkeiten (Schritt E) kann auch als ein Deco
dierschritt (z. B. nach dem Schritt I) durchgeführt werden.
Das Entschleiern (deblurring) wird durchgeführt, um die
Punkt-Spreiz-Funktion der Eingabeeinrichtung zu kompensieren.
Es muß auf die Vorrichtung abgestimmt oder weggelassen wer
den, wenn das eingegebene Bild bereits vergrößert ist. Es
gibt andere bessere Wege, um das Bild zu entschleiern
(deblurr), aber die hier dargestellte Methode ist bezüg
lich des Rechenaufwands preiswert und ist für einige An
wendungsfälle geeignet, wie beispielsweise für Farbkopie
rer. Die Berechnung der Vorwärts-Transformation (A, B) kann
entsprechend eingerichtet werden, so daß viel von der Rech
nerauslastung aus einer Endmultiplzierstufe besteht. Durch
Vorberechnen der Produkte dieser Multipliziereinheiten und
derjenigen in den Schritten (C, E) kann der Kompressionsprozeß
beschleunigt werden.
Ebenso kann die Berechnung der inversen Transformation (J, R)
arrangiert werden, so daß viel von der Rechnerauslastung aus
einer vorbereitenden Multiplizierstufe besteht. Durch Vor
berechnen der Produkte ist die Rechnerbeanspruchung bei den
Schritten (H, I) wirksam ausgeschlossen. Ferner wird eine
andere Transformation für die 2-D DCT-Transformation einge
setzt, wodurch sich eine weitere Berechnungsvereinfachung
ergibt.
Ferner können die pschyoadaptiven Wertigkeiten wahlweise
geändert werden, um die kombinierten Multipliziereinheiten
für die Schritte (BD) rechnerisch wirksam zu machen, z. B.
um Potenzen von zwei. Kleine Änderungen in den pschycho
adaptiven Wertigkeiten der niederenergetischen Ausgangstrans
formationselemente hat einen geringen Einfluß auf die Bild
qualität oder Kompressionsrate.
Schließlich wird die Aufmerksamkeit gelenkt auf die Schritte
(L, Z) in Tabelle 1, nämlich eine Klassifikation einer
Schwierigkeit und ein Glätten von Block-Bereichsgrenzen.
Da dies wahlweise Möglichkeiten sind und unabhängig von der
Haupterfindung, werden sie im vorliegenden Fall nur sehr
kurz erörtert.
Der eindimensionale Chen-Algorithmus (siehe Chen, W. et al,
"A fast computational algorithm for the DCT", IEEE Trans.
Commun. Vol COM-25 (1977)) gibt an, daß
X = 2/N AN x (1)
wobei x ein Datenvektor ist, X ein transformierter Vektor
ist und AN das folgende bedeutet:
AN = c(k) cos ((2j+1)kπ/2N); j, k = 0, 1, 2, . . . N-1.
Ferner kann AN auf die folgende Weise zerlegt werden:
wobei RN/2 das folgende bedeutet:
RN/2=c(2k+1)cos((2j+1)(2k+1)π/2N); j, k = 0, 1, 2, . . . N(2-1) (3)
Hierbei ist die Matrix Z, die Chen-sche Matrix P. Die Be
zeichnung ist geändert worden, um eine Verwechselung mit
der Matrix P in der vorliegenden Anmeldung zu vermeiden.
Bei einer Acht-Punkt Transformation wird der Chen-Algorithmus
(Gl.2) zweimal rekursiv verwendet. Bei der ersten Iteration
werden die Matrizen Z₈, R₄ und B₈ verwendet. Die zweite
Iteration wird nach A₄ gelöst und es werden die Matrizen Z₄,
R₂, A₂ und B₄ verwendet. Diese werden leicht aus den vor
stehenden Gleichungen oder aus der Veröffentlichung von
Chen hergeleitet (siehe Chen, W. et al, "A fast computational
algorithm for the DCT", IEEE Trans. Commun. Vol COM-25 (1977))
wobei gilt:
wobei sich aus Gl. 3 ergibt: Cn = cos(nπ/16).
Bei all dem was bisher gemacht wurde handelt es sich um die Chen-Trans
formation. Man könnte sie ausmultiplizieren und mit Gewalt
eine Rechenersparnis realisieren. Dies ist es jedoch nicht,
was die Anmelderin geschaffen hat. Um die Anzahl an Multi
plikationesvorgängen auf das Minimum zu reduzieren, werden
die Matrizen auf folgende Weise reparametriert. Dies nennt
die Anmelderin die (modifizierte) Chen-Wu-Transformation,
welche von der Anmelderin geschaffen wurde.
wobei gilt:
a = C1/C7 = cos(π/16)/cos(7π/16) = tan(7π/16),
b = C2/C6 = tan(6π/16),
c = C3/C5 = tan(5π/16),
r = C4 = cos(4π/16) (4).
b = C2/C6 = tan(6π/16),
c = C3/C5 = tan(5π/16),
r = C4 = cos(4π/16) (4).
Die Diagonalmatrix RF₄ enthält die Normalisierungsfaktoren
der nichtparametrierten Matrix RA₄. Auch kann eine Diago
nalmatrix aus den Konstanten in R₂ und A₂ bestehen.
Bei einer Rekonstruktion der A₈-Matrix werden zwei Matrizen getrennt gehalten.
Die Diagonalmatrizen werden gesondert
von der Hauptmatrix gehalten. Die Hauptmatrix wird
mit den BN-Termen multipliziert. Nach einer entsprechenden
Umordnung und Multiplikation mit dem konstanten Term redu
ziert sich die Gleichung 1 folgendermaßen:
X = Q (a, b, c) P(a, b, c, r) x
wobei gilt:
Die verallgemeinerte 8-Punkt-DCT-Transformation wird durch
vier Parameter a, b, c und r bestimmt und kann geschrieben
werden als
T (a, b, c, r) = P(a, b, c, r) X Q(a, b, c)
wobei P() und Q() so, wie oben angegeben sind.
Die Bildtransformation erfordert zwei solcher Transforma
tionen T, nämlich Tv und Th, um das Bild vertikal bzw.
horizontal zu transformieren. Die vollständige zweidimensio
nale Transformation wird dargestellt durch:
[F] = [Tv]t [f] [Th]
wobei f der eingegebene Bildblock ist, F die abgegebenen
Transformations-Koeffizienten sind und das hochgesetzte "t"
kennzeichnet eine Matrix-Transposition. Hier sind alle Ma
trizen 8 × 8.
Da eine Diagonalmatrix (wie "Q") ihre eigene Transponierte
ist und
[A]t [B]t = ([B][A])t
für alle Matrizen ist, und
[Tv] = [Pv] [Q]v,
[Th] = [Ph] [Qh],
[Th] = [Ph] [Qh],
kann geschrieben werden
[F] = [Qv] [Pv]t [f] [Ph] [Qh]
was sich reduziert auf
F(i,j) = q(i,j) * g(i,j)
wobei
[g] = [Pv]t [f] [Ph]
und
g(i,j) = Qv(i,i) * Qh(j,j) (7)
Wenn ein Bild blocktransformiert wird, kann mit Hilfe des
Chen-Wu-Algorithmus nach [g] aufgelöst werden und es kann mit
den Faktoren q(i,j) multipliziert werden.
Wenn
Pv = P(a, b, c, rv)
und
Ph = P(a, b, c, rh)
gegeben ist, wird die Umkehr der vorstehenden Transformation
ausgedrückt durch
[f] = [P′v] [Qv] [F] [Qh] [P′h]t
wobei P′v = P(a, b, c, 1/2rv)
und
und
P′h = P(a, b, c, 1/2rh) sind.
Wieder erfolgt die Lösung über den Chen-Wu-Algorithmus.
Mehrere Methoden sind entwickelt worden, um das Berechnen
der 1-D oder 2-D Chebychev-Transformationen und deren Umkeh
rungen zu beschleunigen. Es gibt einen bekannten Algorithmus (Chen), bei
welchem ein beliebiges 8-Tuple mit der vorstehend wiederge
gebenen Matrix T multipliziert wird, wobei nur 16 Multiplika
tionen, 13 Additionen und 13 Subtraktionen angewendet werden.
Dieser Algorithmus ist nicht auf irgendwelche speziellen Ver
hältnisse der Parameter a, b, c und r angewiesen.
Durch ein Zerlegen in Faktoren [T]= [P] [Q] wie oben ange
geben, wird der Chen Algorithmus in zwei Stufen mit 8
Multiplikationen, die in der Multiplikation mit [Q] ange
wendet werden, mit 8 weiteren Multiplikationen und dem Rest
des Algorithmus aufgeteilt, welcher bei der Multiplikation
mit [P] verwendet wird. Dies ist eine Folge der Wahl für [Q]
mehrere Elemente von [P] werden 1 oder -1, und eine Multipli
kation wird zu Null.
Wie vorstehend aufgezeigt, werden ähnliche Vereinfachungen
bei der inversen Transformation der 2-D-Transformation und
der inversen 2-D-Transformation angewendet. Für (8 mal 8)
Blöcke werden 128 Multiplikationen entweder für die Vorwärts- oder
die umgekehrt 2-D-Transformation (ausschließlich den
Multiplikationen mit [Q] angewendet. Wenn der interne Daten
fluß von Chen′s Algorithmus betrachtet wird, werden diese
Multiplikationen in eine Struktur von acht Addier/Subtrahier
stufen und vier Multiplizierstufen eingebettet.
Es ist wichtig, zu betonen, daß der Chen-Algorithmus unabhän
gig von den Parametern a, b, c und r arbeitet. Jedoch hat
die 8-Punkt-DC-Transformation, die beim Stand der Technik
angewendet wird, die Parameter der "echten Cosinus-Transfor
mation":
wobei die Wahl von r notwendig ist und ausreicht für die
Matrix T, um orthogonal zu sein.
Die Chen-Transformation arbeitet unabhängig von den Werten,
welche für die Parameter a, b, c und r gewählt worden sind,
da die mittels QP geschaffene Transformation orthogonal ist.
Es ist auch möglich, irgendwelche Zahlen zu verwenden und
eine Transformation vorzunehmen, welche die gewünschte De
korrelation der Bilddaten durchführt, welche für eine
Kompression notwendig sind. Diese Transformation ist nicht
eine diskrete Cosinus-Transformation, noch ist es eine Annä
herung an eine DC-Transformation. Es ist ihre eigene Trans
formation.
Für eine effiziente Dekorrelation des eingegebenen Bildes
und für eine Transformation in verhältnismäßig wichtige Raum
frequenz-Koeffizienten ist man sich im allgemeinen einig, daß
die DC-Transformation sehr erwünscht ist (siehe Lee, BC,
"A Fast Cosine Transform", IEEE ASSP, Vol XXXIII (1985)).
Um folglich die Vorteile der DC-Transformation zu erreichen,
werden die Parameter entsprechend gesetzt, um sie denjenigen
der DC-Transformation anzunähern, die in Gl. (4) wiedergegeben
ist. Der andere Faktor ist eine Effizienz bei der Berechnung.
Da eine Addition preiswerter ist als eine Multiplikation
(in Hardware ist es die Ersparnis an Siliziummaterial, und
in der Software ist es eine Ersparnis in der Anzahl Zyklen),
werden die Parameter entsprechend gewählt, um die Berechnung
effizient werden zu lassen.
Andere Rechenlösungen sind für die Diskrete Chebychev-Trans
formation geschaffen worden. Beispielsweise führt ein Al
gorithmus nach Lee die 8 Punkt 1D und die 64 Punkt 2D-
Transformationen mit 12 bzw. 144 Multiplikationen durch
(siehe Lee, BC aao und Jalali and Rao, "Limited Wordlength
and FDCT Processing Accuracy", IEEE AS5P-81, Vol. III Stn.
1180-2).
Jedoch gibt es mehrere Nachteile dieser "schnelleren"
Algorithmen im Vergleich mit dem Chen-Algorithmus:
- a) Die Vereinfachung T = P × Q (und die ähnliche Zerlegung in Faktoren für die umgekehrte Transformation) ist nicht länger wirksam. Ein Trennen der Diagonalmatrix Q ist wesentlich für die Vereinfachungen, welche folgen.
- b) Diese Algorithmen arbeiten nicht mit beliebigen Para metern a, b, c und r. Statt dessen stützen sie sich auf verschiedene trigonometrische Identitäten, die speziell für die echten Cosinus-Parameter gültig sind.
- c) Diese Algorithmen haben eine schwierigere Struktur. Dies kann die technische Ausführung behindern und das Potential für eine numerische Instabilität erhöhen.
A] Bezugnehmend auf Tabelle 1 ist zu bemerken, daß die Schritte
(C, D und E) in die Vorwärts-Transformations-Nachmultiplika
tionen gefaltet werden können, die aus [Q] hergeleitet sind.
Ebenso können die Schritte (H, I) in die inversen Transforma
tions-Vormultiplikationen gefaltet werden, und zwar deswegen,
da die raten-skalare Operation, die pschyoadaptive Wertungs-
Operation (die allgemeinen als Quantisierungswerte bekannt
sind) und die Entschleierungswertigkeitsoperation alle
Punkt-Multiplikations-Operationen sind. Wenn b, c, d und e
die Ausgangswerte der Schritte B, C, D bzw. E sind, dann
gilt:
c(i,j) = b(i,j) * q(i,j)
d(i,j) = c(i,j) * r(i,j) = * q(i,j) * r(i,j)
e(i,j) = d(i,j) * u(i,j) = b(i,j) * g(i,j) * r(i,j) * u(i,j)
d(i,j) = c(i,j) * r(i,j) = * q(i,j) * r(i,j)
e(i,j) = d(i,j) * u(i,j) = b(i,j) * g(i,j) * r(i,j) * u(i,j)
oder
e(i,j) = b(i,j) * all(i,3)
wobei ist
all(i,j) = * r(i,j) * u(i,j) (8)
und g(i,j) der Raten-Skalar ist, r(i,j) psychoadaptiv ge
wählte (oder sogar vom Benutzer gewählte) Quantisierungs
wertigkeiten sind und u(i,j) Entschleierungs-(deblurring)
Wertigkeiten sind. In ähnlicher Weise können die Schritte
H und I verknüpft werden.
Dies bedeutet effektiv, daß die Raten-Skalierung, eine
adaptive Wichtung und Entschleierungsfunktionen ohne einen
zusätzlichen Rechenaufwand durchgeführt werden. Wie oben aus
geführt, ist dieser Lösungsweg bei den "schnelleren" Al
gorithmen, wie denjenigen von Lee, nicht anwendbar.
B] Da Chen′s Algorithmus mit irgendwelchen Parametern a,
b, c und r arbeitet, wählt die Anmelderin Werte, welche eine
Qualität und Kompression ähnlich der DC-Transformation lie
fern, welche aber zu einer hoch-schnellen Multiplikation
führen.
Die folgenden Parameter sind vernünftigerweise nahe bei den
jenigen der DC-Transformation gewählt, aber noch viel effi
zienter zu berechnen: a = 0,5; b = 2,5; c = 1,5; und r = 0,75.
Eine Multiplikation ist nunmehr durch eine viel einfachere
Arithmetik ersetzt. Ein Multiplizieren mit 5 wird beispiels
weise ein Kopieren, Verschieben nach links um 2; Addieren.
Ein Multiplizieren mit 1,5 wird Kopieren, Verschieben nach
rechts um 1; Addieren.
Alternativ hierzu kann der inverse Zähler eines rationalen
Multiplikators in den kombinierten Multiplikator [q] aufge
teilt werden. Folglich kann das Multiplizieren mit 2,5 ein
Multiplizieren mit 5 und mit 2 für betroffene bzw. nicht
betroffene Terme werden.
Mit Hilfe dieses Gedankens erfordert dann das Handhaben ei
nes Parameters r = 0,75 in dem einfachen bzw. auf direktem Weg durchgeführten Chen-Algorithmus
96 Multiplikationen mit 4 und 32 Multiplikationen mit 3.
Mit dem Wu-Paolini-Algorithmus in einer 2D-Implementierungs
verbesserung fällt eine ganze Multiplizierstufe weg und es ergeben
sich 36 Multiplikationen mit 16, 24 Multiplikationen
mit 12 und 4 Multiplikationen mit 9. (Bei der inversen
Transformation werden 36 Multiplikationen mit 9, 24 Multi
plikationen mit 6 und 4 Multiplikationen mit 4 angewendet.)
Auf Kosten der Rechengeschwindigkeit können Parameterwerte,
die sogar näher bei der Cosinus-Transformation liegen, aus
gewählt werden. Die Substitutionen b = 12/5 und/oder r =17/24
sind möglich. Eine weitere interessante Alternative ist:
r Zeile = 0,708333(17/24)
r Spalte = 0,7(7/10)
r Spalte = 0,7(7/10)
Hierbei werden etwas verschiedene Transformationen (verschie
dene Parameter r) für die Zeilen und Spalten verwendet. Hier
durch vereinfachen sich die Multiplikatoren, die bei der
Wu-Paolini-Methode abgeleitet worden sind. Hierbei ergibt
diese Methode 36 Multiplikationen mit 15, 15 Multiplikatio
nen mit 85/8, 12 Multiplikationen mit 24/2 und 4 Multipli
kationen mit 119/16. (Bei der inversen Transformation werden
36 Multiplikationen mit 119/16, 12 Multiplikationen mit 85/16,
12 Multiplikationen mit 21/4 und 4 Multiplikationen mit 15/4
angewendet.)
Bei der gerade beschriebenen Art können Multiplikationen
schnell und preiswert durchgeführt werden, außer die kombi
nierte Multiplikation [q] in dem Kompressor und die kombi
nierte Multiplikation [q] in dem Dekompressor. Jeder dieser
Vorgänge erfordert eine Multiplikation pro Transformations-
Element. Das letztere vereinfacht sich, da die Mehrzahl der
Transformations-Koeffizienten null wird, und die meisten der
Koeffizienten, welche nicht null sind, sind ganze Zahlen
ziemlich nahe bei null, welche speziell behandelt werden.
C] Eine weitere Methode wird angewendet, um den Rechenauf
wand der kombinierten [q]-Multiplikation in dem Kompressor
zu reduzieren. Da der Raten-Skalar tatsächlich ein beliebi
ger wert ist, wird er Punkt für Punkt eingestellt, um allen
[q]-Matrix-Elementen rechnerisch einfache Werte zu geben,
z. B. Potenzen von zwei Punkt. Diese 64 Einstellungen
müssen nur einmal durchgeführt werden (nachdem der Ratenskalar
und Entschleierungsfilter bestimmt sind).
Wenn beispielsweise ein Element (C) der kombinierten Multi
plikation und das entsprechende Dekompressions-Multipli
zierelement (D) sich ergeben zu C = 0,002773 und D = 0,009367
kann die Annäherung C ∼ = 3/1024 = 0,002930 gefunden und ver
wendet werden, um die Multiplikation zu vereinfachen. Dies
ergibt C′ = 3/1024 und D′ = D * C/C′ ∼ = 0,008866.
- a) In dem quantisierten Transformationsraum ist es üblich und
effizient, die Nicht-Null-Schritte der "AC"-Koeffizienten-
Quantisierung mit konstanter Breite (w) zu nehmen und den
Null-Schritt so zu nehmen, daß seine Breite (w * q) ist.
Darüber hinaus ist q = 2 arithmetisch üblich und ist bei nahe optimal für eine entsprechende Qualität über einen weiten Bereich von Kompressionsfaktoren. In der Beschrei bung ist q = 2 genommen ("doppelte Breite null"), obwohl die Erfindung q einschließt. - b) Der folgende Algorithmus ist für eine im begrenzten Um
fang genaue, binäre, ganzzahlige Zweierkompliment-Arith
metik außer für die Zwischen-Determinantionen in den
Schritten (2), (4) und (8) ausgelegt, welche einmal mit
einer hochgenauen Arithmetik durchgeführt werden.
Ferner werden mit der zusätzlichen Ausnahme beim Schritt (9.1) die hier beschriebenen ganzzahligen Multiplikationen bezüglich Kosten und Geschwindigkeit optimiert. Beispiels weise können die Multiplikationen angesehen werden als: Nrr * Nrc = Drr′ * Drc′ = 1,75 * 4,25 = 7 4375Durch Wählen der Indentität von 7,4375 = (8-1) * (1+1/16) wird wirksam eine Multiplikation mit Verschiebungen und Additionen durchgeführt. - c) Die Entschleierungs-(deblurring)Multiplikationen sind hier
im Schritt 8 dargestellt, aber sollten üblicherweise beim
Schritt 4, wenn überhaupt, durchgeführt werden. In vielen
Anwendungsfällen ist es dem Dekompressor nicht "bekannt"
wie und ob das Bild überhaupt zu entschleiern ist. Die
besten Werte von Thr() hängen von der Eingabeeinrichtung
und der Entschleierungsmethode ab.
Ein empfohlener Lösungsweg ist, den Wert m(i,j) (siehe Schritt 8) in einer Kompressionszeit (Schritt 4) zu berechnen und ihn als Teil des verdichteten Bildes zu übertragen oder zu speichern. - d) Es gibt mehrere naheliegende Wege, die Berechnungen parallel zeitlich nacheinander oder verschachtelt durchzuführen. Die bevorzugte Methode für eine vorgegebene Hardware-Architektur ist geradeaus.
Dieser Teil der Anwendung ist im wesentlichen eine Ausfüh
rungsform der Erfindung, die im Text und Pseudo-Code erläutert
worden ist. Es gibt mehrere Abschnitte, einschließlich einer
Parametrisierung, einer Berechnung von allen (i,j) wie in der
Gl. (8), eine Durchführung des Hauptkörpers der Vorwärts-
GC-Transformation, eine Berechnung aller inversen (i,j),
eine Durchführung des Hauptkörpers der inversen GC-Trans
formationen.
- 1. Die Parameter a, b, c und r sind oben dargestellt. Zu be achten ist, daß es einen r-Wert sowohl für die Zeilen als die Spalten gibt. Obwohl die 2D GC-Transformation eine abtrenn bare Transformation ist und in zwei Schritten durchgeführt werden kann, gibt es keine Beschränkung, die fordert, daß sie symmetrisch ist. Daher können die Skalierungsfaktoren, wie dargestellt, asymmetrisch sein.
Die Gleichungen für die Zähler N und die Nenner D zeigen
mögliche Kombinationen von Zähler und Nenner, die gleich den
vorstehenden Werten sein können. Die Entwerfer der GCT-Aus
führung haben Spielraum in den tatsächlichen Werten, welche
in der Addier-Anordnung verwendet werden. Die gewählten Werte
werden für den endgültigen Multiplikationsschritt korrigiert.
Gewählt werden
als die Parameter der verallgemeinerten Chen-Transformation,
wie oben ausgeführt. Die "Zähler" N und die "Nenner" müssen
nicht ganzzahlig sein, obwohl sie der Vereinfachung der Be
rechnung zugewählt werden. Unter mehreren brauchbaren Mög
lichkeiten ist:
Na = 5 Da = 1
Nb = 3 Db = 1,25
Nc = 1,5 Dc = 1
Nrr = 1,75 Drr = 2,5
Nrc = 4,25 Drc = 6
Nrr′ = 1,25 Drr′ = 1,75
Nrc′ = 3 Drc′ = 4,25
Nb = 3 Db = 1,25
Nc = 1,5 Dc = 1
Nrr = 1,75 Drr = 2,5
Nrc = 4,25 Drc = 6
Nrr′ = 1,25 Drr′ = 1,75
Nrc′ = 3 Drc′ = 4,25
aber wiederum weist die Erfindung alle rationalen Näherun
gen zu den vorstehend angeführten Tangenten auf.
Nunmehr werden die benötigten skalaren Normalisierungswerte
berechnet.
- 2. Ebenso ist zu schreiben:
- 3. i ist ein Index {0, 1, 2, 3, 4, 5, 6, 7}, der eine vertikale Position (in dem Bildraum) oder eine Folge einer vertikalen Änderung (in dem Transformationsraum) bezeichnet.
j ist ein Index {0, 1, 2, 3, 4, 5, 6, 7}, welcher die horizontale
Position (in dem Bildraum) oder eine Folge einer horizontalen
Änderung (in dem Transformationsraum) bezeichnet.
Debl(i,j) bezeichnen die Entschleierungsfaktoren oder Debl()
= 1, wenn nicht entschleiert wird.
Thr(i,j) bezeichnen die inversen psychoadaptiven Wertigkeiten,
z. B. wie sie von der CCITT empfohlen sind.
M bezeichnet den Raten-Skalar; hier M = 1, (angenähert) für
typische Kompressionsraten.
v(i,j) bezeichnen die Luminanzwerte in dem Bild-(räumlich)
Raum.
L(i,j) bezeichnen die transformierten Luminanzwerte in dem
transformierten (verdichteten) Raum.
S ist eine beliebige kleine ganze Zahl, welche die arithme
tische Genauigkeit bei der Rekonstruktion bezeichnet.
Die psychoadaptiven Wertigkeiten 1 Thr(i,j) sollten für jeden
Satz Parameter der verallgemeinerten Chen-Transformation re
optimiert werden. Jedoch sind die vorstehend beim Schritt
(1) wiedergegebenen Parameter ausreichend nahe bei den CCITT-
Parametern, so daß dieselbe Matrix Thr() optimal ist.
- 4. Hier ist g(i,j) äquivalent allen (i,j). Dies ist über alle 64 Transformationsstellen (i,j) zu wiederholen, die k(i,j) und s(i,j) lösen, um zu genügen:
wobei die rechte Seite so nahe wie möglich bei g(i,j) ist,
s(i,j) eine ganze Zahl ist, und wobei gilt
g(i,j) = 1,0, k(i,j) in {1, 3, 5, 7, 9} für i+j < 4
g(i,j) = 0,9, k(i,j) in {1, 3, 5} für 1+j < 4
g(i,j) = 0,7, k(i,j) = 1 für i+j < 4
Zr(i) = 1, wenn i = 0, 1, 2 oder 3
Zr(i) = Drr, wenn i = 4, 5, 6 oder 7
Zc(j) = 1, wenn j = 0, 1, 2 oder 3
Zc(j) = Drc, wenn j = 4, 5, 6 oder 7
Zr′(i) = 1, wenn i = 0, 1, 2 oder 3
Zr′(i) = Drr′, wenn i = 4, 5, 6 oder 7
Zc′(j) = 1, wenn j = 0, 1, 2 oder 3
Zc′(j) = Drc, wenn j = 4, 5, 6 oder 7
g(i,j) = 1,0, k(i,j) in {1, 3, 5, 7, 9} für i+j < 4
g(i,j) = 0,9, k(i,j) in {1, 3, 5} für 1+j < 4
g(i,j) = 0,7, k(i,j) = 1 für i+j < 4
Zr(i) = 1, wenn i = 0, 1, 2 oder 3
Zr(i) = Drr, wenn i = 4, 5, 6 oder 7
Zc(j) = 1, wenn j = 0, 1, 2 oder 3
Zc(j) = Drc, wenn j = 4, 5, 6 oder 7
Zr′(i) = 1, wenn i = 0, 1, 2 oder 3
Zr′(i) = Drr′, wenn i = 4, 5, 6 oder 7
Zc′(j) = 1, wenn j = 0, 1, 2 oder 3
Zc′(j) = Drc, wenn j = 4, 5, 6 oder 7
Die Faktoren g(i′j) sind beabsichtigt, um die Quantisierungs
vorspannung unabhängig von der Größenwahl zu machen.
Schritt 5 ist die Pseudo-Code-Durchführung der Vorwärts-
Transformation. Die folgenden Schritte führen eine 2D-
Transformation in einer verschachtelten Form durch. Über
dem gesamten Bild ist das folgende bei jedem (8-mal-8)
Block von Luminanzwerten v(,) durchzuführen:
M(i, 0) = V(i, 0) + V(i,7)
M(i, 1) = V(i, 1) + V(i,6)
M(i, 2) = V(i, 2) + V(i′5)
M(i, 3) = V(i, 3) + V(i,4)
N(i, 4) = V(i, 2) - V(i,4)
N5(i) = V(, 2) - V(i, 5)
M6(i) = V(i, 1) - V(i, 6)
M(i, 5) = M6(i) + M5(i)
M(i, 6) = M6(i) - M5(i)
M(i, 7) = v(i, 0) - v(i,7)
für i = 0, 1, 2, . . ., 7
M(i, 1) = V(i, 1) + V(i,6)
M(i, 2) = V(i, 2) + V(i′5)
M(i, 3) = V(i, 3) + V(i,4)
N(i, 4) = V(i, 2) - V(i,4)
N5(i) = V(, 2) - V(i, 5)
M6(i) = V(i, 1) - V(i, 6)
M(i, 5) = M6(i) + M5(i)
M(i, 6) = M6(i) - M5(i)
M(i, 7) = v(i, 0) - v(i,7)
für i = 0, 1, 2, . . ., 7
H(0, j) = M(0, j) + M(7,j)
H(1, j) = M(1, j) + M(6,j)
H(2, j) = M(2, j) + X(S, j)
H(3, j) = M(3, j) + M(4, j)
H(4, j) = M(3, j) - M(4, j)
H5(j) = M(2, j) - M(S, j)
H6(j) = M(1, j) - X(6, j)
H(5, j) = H6(j) + H5(j)
H(6, j) = H6(j) = H5(j)
H(7, j) = M(o, j) - M(7,j)
für j = 0, 1, 2, . . ., 7
H(1, j) = M(1, j) + M(6,j)
H(2, j) = M(2, j) + X(S, j)
H(3, j) = M(3, j) + M(4, j)
H(4, j) = M(3, j) - M(4, j)
H5(j) = M(2, j) - M(S, j)
H6(j) = M(1, j) - X(6, j)
H(5, j) = H6(j) + H5(j)
H(6, j) = H6(j) = H5(j)
H(7, j) = M(o, j) - M(7,j)
für j = 0, 1, 2, . . ., 7
Nrc, wenn j = 5 oder 6
Drc, wenn j = 4 oder 7
1 (keine Wirkung), wenn j = 0, 1, 2 oder 3 ist
Drc, wenn j = 4 oder 7
1 (keine Wirkung), wenn j = 0, 1, 2 oder 3 ist
(wenn i = 4 oder 7:)
Drr Nrc, wenn j = 5 oder 6
Drr Drc, wenn j = 4 oder 7
Drr, wenn j = 0, 1, 2 oder 3
Drr Nrc, wenn j = 5 oder 6
Drr Drc, wenn j = 4 oder 7
Drr, wenn j = 0, 1, 2 oder 3
(wenn j = 5 oder 6:)
Nrr Nrc, wenn j = 5 oder 6
Nrr Drc, wenn j = 4 oder 7
Nrr, wenn J = 0, 1, 2 oder 3
Nrr Nrc, wenn j = 5 oder 6
Nrr Drc, wenn j = 4 oder 7
Nrr, wenn J = 0, 1, 2 oder 3
E(0, j) = H(d,j) + H(3,j)
E(1, j) = H(7,j) + H(5,j)
E(2, j) = H(0,j) - H(3,j)
E(3, j) = H(7,j) - H(5,j)
E(4, j) = H(I,j) + H(2,j)
E(5, j) = H(6,j) - H(4,j)
E(6, j) = H(1,j) - H(2,j.)
E(7, j) = H(6,j) + H(4,j)
E(1, j) = H(7,j) + H(5,j)
E(2, j) = H(0,j) - H(3,j)
E(3, j) = H(7,j) - H(5,j)
E(4, j) = H(I,j) + H(2,j)
E(5, j) = H(6,j) - H(4,j)
E(6, j) = H(1,j) - H(2,j.)
E(7, j) = H(6,j) + H(4,j)
F(0, j) = E(4,j) + E(0, j)
F(4, j) = E(0,j) - E(4, j)
F(2, j) = Db * E(6,j) + Nb * E(2, j)
F(6, j) = Db * E(2,j) - Nb * E(6, j)
F(1, j) = Da * E(7,j) + Na * E(1, j)
F(7, j) Da * E(1,j) - Na * E(7, j)
F(3, j) = Dc * E(5,j) + Nc * E(3, j)
F(5, j) = Dc * E(3,j) - Nc * E(5, j)
für j = 0, 1, 2, . . ., 7
F(4, j) = E(0,j) - E(4, j)
F(2, j) = Db * E(6,j) + Nb * E(2, j)
F(6, j) = Db * E(2,j) - Nb * E(6, j)
F(1, j) = Da * E(7,j) + Na * E(1, j)
F(7, j) Da * E(1,j) - Na * E(7, j)
F(3, j) = Dc * E(5,j) + Nc * E(3, j)
F(5, j) = Dc * E(3,j) - Nc * E(5, j)
für j = 0, 1, 2, . . ., 7
Z(i, 0) = F(i,0) + F(i,e,)
Z(i, 2) = F(i,0) - F(i,3)
Z(i, 4) = F(i,1) + F(i,2)
Z(i, 6) = F(i,1) + F(i,2)
Z(i, 1) = F(i,7) + F(i,5)
Z(i, 3) = F(i,7) - F(i,5)
Z(i, 5) = F(i,6) - F(i,4)
Z(i, 7) = F(i,6) + F(i,4)
Z(i, 2) = F(i,0) - F(i,3)
Z(i, 4) = F(i,1) + F(i,2)
Z(i, 6) = F(i,1) + F(i,2)
Z(i, 1) = F(i,7) + F(i,5)
Z(i, 3) = F(i,7) - F(i,5)
Z(i, 5) = F(i,6) - F(i,4)
Z(i, 7) = F(i,6) + F(i,4)
G(i, 0) = Z(i, 4) + Z(i, 0)
G(i, 4) = Z(i, 0) - Z(i, 4)
G(i, 2) = Db * Z(i,6) + Nb * Z(i, 2)
G(1, 6) = Db * Z(i,2) - Nb * Z(i, 6)
G(i, 1) = Da * Z(i,7) + Na * Z(i, 1)
G(i, 7) = Da * Z(i,1) - Na * Z(i, 7)
G(i, 3) = Dc * Z(i,5) + Nc * Z(i, 3)
G(i, 5) = Dc * Z(i,3) - Nc * Z(i, 5)
für i = 0,1,2, . . .7
G(i, 4) = Z(i, 0) - Z(i, 4)
G(i, 2) = Db * Z(i,6) + Nb * Z(i, 2)
G(1, 6) = Db * Z(i,2) - Nb * Z(i, 6)
G(i, 1) = Da * Z(i,7) + Na * Z(i, 1)
G(i, 7) = Da * Z(i,1) - Na * Z(i, 7)
G(i, 3) = Dc * Z(i,5) + Nc * Z(i, 3)
G(i, 5) = Dc * Z(i,3) - Nc * Z(i, 5)
für i = 0,1,2, . . .7
Alternativ hierzu kann die Transformation in zwei Schritte
über eine eindimensionale Transformation aufgeteilt werden.
Das folgende ist ein Beispiel eines eindimensionalen Trans
formationsschrittes. Fig. 8 zeigt diese Schritte:
Alle Multiplikationen in diesen Gleichungen werden mit
Schiebe- und Addieroperationen durchgeführt.
Um dies zu der Matrix von der CC-Transformation in Beziehung
zu setzen, wird der Vektorpunkt Y6 als Beispiel dargestellt.
Y6 = C1 - C4 = (1.25 B1) - (3 B4) = 1.25 (A1 - A2) - 3 (A4 - A3)
= 1.25 ((X0 + X7) - (X3 + X4)) - 3 ((X1 + X6) - (X2 + X5))
= 1.25 X0 - 3 X1 + 3 X2 - 1.25 X3 + 1.25 X4 + 3 X5 - 3 X6 + 1.25 X7
Y6/1.25 = X0 - 2.4 X1 + 2.4 X2 - X3 + X4 + 2.4 X5 - 2.4 X6 + X7
= 1.25 ((X0 + X7) - (X3 + X4)) - 3 ((X1 + X6) - (X2 + X5))
= 1.25 X0 - 3 X1 + 3 X2 - 1.25 X3 + 1.25 X4 + 3 X5 - 3 X6 + 1.25 X7
Y6/1.25 = X0 - 2.4 X1 + 2.4 X2 - X3 + X4 + 2.4 X5 - 2.4 X6 + X7
= |1 -b b -1 1 b -b 1| x
wobei b = 2,4 ist. Dies ist die sechste Zeile der Matrix P in
der Gleichung. Das Teilen durch 1,25 ist ein Skalierungsfak
tor, welcher in der Raten-Skaliermatrix gesammelt wird.
Die Zeilendaten eines 8×8-Pixel-Blocks durchlaufen diese
Addiereranordnung. Die sich ergebenden eindimensionalen Fre
quenzkomponenten werden transponiert und durchlaufen wieder
dieselbe Anordnung.
- 6. Nach dem Schritt 5.5 in jedem Bild-Unterblock und für jeder der 64 Stellen (i,j), wobei k(i,j) und s(i,j) vom Schritt (4) verwendet werden, ist der Wert vorzubereiten: L(i,j) = G(i,j) * k(i, j ) * 2-s(i,j)aber wenn dies negativ ist (oder i = j = 0), ist 1 dazu zu addieren. Das Ergebnis ist der Transformationskoeffizient L(i,j).
Erläuterungen zu Schritt 6:
Die hierdurch durchgeführten Berechnungen sind einfach, da k(i,j) immer 1, 3, 5, 7 oder 9 und üblicherweise 1 ist,
eine Multiplikation mit 2 (-s(i,j)) einfach ist,
eine Verschiebung nach rechts (oder vielleicht nach links, wenn M sehr groß gewählt wurde) erfolgt.
Die hierdurch durchgeführten Berechnungen sind einfach, da k(i,j) immer 1, 3, 5, 7 oder 9 und üblicherweise 1 ist,
eine Multiplikation mit 2 (-s(i,j)) einfach ist,
eine Verschiebung nach rechts (oder vielleicht nach links, wenn M sehr groß gewählt wurde) erfolgt.
Arithmetische Verschiebungen nach rechts werden immer nach
unten gerundet. Rundungen gegen null sind tatsächlich er
wünscht; folglich gilt die Klausel "wenn (negativ), 1
addieren".
Die Addition von 1, wenn i = j = 0, bezieht sich auf v(i,j)
< = 0 und ist gerade eine Vorrichtung, um die Anweisung von
Schritt (9.1) zu vereinfachen, der nachstehend angegeben wird.
- 7. Codieren, Speicher und/oder Übertragen der Werte L(i,j). Schließlich werden sie wieder aufgefunden, und das Bild wird in den folgenden Schritten rekonstruiert.
- 8. Dies ist die inverse Version von allen (i,j). Hierzu werden die 64 Transformations-Stellen (i,j) iteriert, indem m(i,j) als die nächste ganze Zahl gelöst wird in:
wobei s(i,j) und k(i,j) bei dem vorstehenden Schritt (4)
gelöst werden und wobei die Ausdrücke "Z" im Schritt (4)
definiert sind.
Ebenso ist A(i,j) als die nächste ganze Zahl zu wählen zu:
Anmerkungen zu Schritt 8:
Die Werte m(i,j) können vorher beim Schritt (4) berechnet
worden sein und werden mit dem verdichteten Bild übertra
gen. Dies ist nicht notwendig für A(i,j)′ welches nur von
Konstanten und m(i,j) abhängt. Bei Anwendung, bei welchen
der Raten-Skalar und die Entschleierungswertigkeiten fest
gelegt sind, sind die Werte m(i,j) und A(i,j) konstant. Der
Faktor 2 ˆ S reflektiert zusätzliche Präzisionsbit, welche
anschließend durch arithmetische Verschiebungen nach rechts
bei den Schritten (9.2) und (10) entfernt werden.
Das Einstellen auf A(0,0) korrigiert einen Abrundungsfehler
um die nachstehenden Ausgangswerte ohne eine Rundungskorrek
tur verwenden zu können. Wie hier angegeben, beruht A(0,0)
auf der Addition von 1 zu L(0,0) beim Schritte (6). Die
Interpolation "(25 - i - j)/64" ist heuristisch, aber ist
annähernd optimal im Sinne eines mittleren quadratischen Feh
lers. Einmal erfolgt wieder die verschachtelte Version von
20.
- 9. Das transformierte Bild wird iteriert, indem das folgende an jedem (8×8) Block von transformierten Luminanzwerten L(_,_) durchgeführt wird, was bei dem vorstehenden Schritt (5) abgeleitet worden ist:
- 9.1 Vorbereiten der Werte:
E(i,j) = L(i,j) * m(i,j) + A(i,j) für L(i,j) < 0
E(i,j) = L(i,j) * m(i,j) - A(i,j) für L(i,j) < 0
E(i,j) = 0 für L(i,j) = 0
für jedes (i,j), werden i = 0, 1, 2, . . . 7 und j = 0, 1, 2, . . . 7 Der Ausdruck L(_,_) bezieht sich auf die Gruppe von Lumi nanz-Transformations-Koeffizienten für einen Block und ent spricht der Notation L(i,j) für alle i und für alle j. A(0,0) muß immer hinzuaddiert werden. Vorliegende Erfindung deckt auch das ab, wo der Test L(0,0) < 0 nicht gemacht wird, und die vorstehenden Schritte (6) und (8) (wahlweise) vereinfacht werden.
In der Praxis sollten kleine Multiplikationen, z. B.
-11 < L(i,j) < 11 als Spezialfalle erkannt werden, um die
Rechenkosten für eine Multiplikation zu sparen.
- 9.2 Wenn es zweckdienlich ist, die Kosten der Halbleiter einheit zu reduzieren, sind die Zahlen E(i,j) um eine be liebige Zahl an Stellen S1 nach rechts zu verschieben. Diese Verschiebungen sind bei einigen Ausführungen des Verfahrens "frei". Bei Ausführungen, bei welchen das Verschieben nicht frei ist, können sie weggelassen werden, wenn E(i,j) null ist. Oder es kann gewählt werden, alle Verschiebungen zu elimi nieren, indem S1 = 0 gesetzt wird.
- 9.3 Bei der zweidimensionalen Form sind wieder einmal die
Werte vorzubereiten:
F(0, j) = E(4, j) + E(0, j)
F(4, j) = E(0, j) - E(47 j)
F(2f j) = Db * E(6, j) + Nb * E(2, j)
F(6, j) = Db * E(2, j) - Nb * E(6, j)
F(1, j) = Da * E(7, j) + Na * E(1, j)
F(7, j) = Da * E(1, j) - Na * E(7, j)
F(3, j) = Dc * E(5, j) + Nc * E(3, j)
F(5, j) = Dc * E(3, j) - Nc * E(5, j)H(0, j) = F(0, j) + F(2, j)
H(1, j) = F(4, j) + F(6, j)
H(2, j) = F(4, j) - F(6, j)
H(3, j) = F(0, j) - F(2, j)
H(4, j) = F(7, j) - F(5, j)
H5(j) = F(7, j) + F(5, j)
H6(j) = F(1, j) - F(3, j)
H(5, j) = H6(j) + H5(j)
H(7, j) = F(1, j) + F(3, j)
für j = Q, 1, 2, . . ., 7 - 9.4 Bei der zweidimensionalen Form sind wieder einmal die
Werte vorzubereiten:
G(i, 0) = H(i, 4) + H(i, 0)
G(i, 4) = H(i, 0) - H(i, 4)
G(i, 2) = Db * H(i, 6) + Nb * H(i, 2)
G(i, 6) = Db * H(i, 2) - Nb * H(i, 6)
G(i, 1) = Da * H(i, 7) + Na * H(i, 1)
G(i, 7) = Da * H(i, 1) - NA * H(i, 7)
G(i, 3) = Dc * H(i, 5) + Nc * H(i, 3)
G(i, 5) = Dc * H(i, 3) - Nc * H(i, 5)M(i, 0) = G(i, 0) + G(i, 2)
M(i, 1) = G(i, 4) + G(i, 6)
N(i, 2) = G(i, 4) - G(i, 6)
M(i, 3) = G(i, 0) - G(i, 2)
M(i, 4) = G(i, 7) - G(i, 5)
M5(i) = G(i, 7) + G(i, 5)
M6(i) = G(i, 1) - G(i, 3)
M(i, 5) = M6(i) - m5(i)
M(i, 6) = M6(i) + M5(i)
M(i, 7) = G(i, 1) + G(i, 3)
für i = 0, 1, 2, . . ., 7 - 9.5 Jedes M(i,j) ist zu multiplizieren mit
(wenn i = 0, 2, 3 oder 4)
Nrc′, wenn j = 5 oder 6
Drc′, wenn j = 4 oder 7
1 (keine Wirkung), wenn j = 0, 1, 2 oder 4 (wenn i = 4 oder 7:)
Drr′ Nrc′, wenn j = 5 oder 6
Drr′ DRC′, wenn j = 4 oder 7
Drr′, wenn j= 0, 1, 2 oder 3(wenn i = 5 oder 6)
Nrr′ Nrc′, wenn j = 5 oder 6
Nrr′ Drc′, wenn j = 4 oder 7
Nrr′, wenn j= 0, 1, 2 oder 3. - 9.6 Vorbereiten der Werte:
Z(i, 0) = M(i, 0) + M(i, 7)
Z(i, 1) = M(i, 1) + M(i, 6)
Z(i, 2) = M(i, 2) + M(i, 5)
Z(i, 3) = M(i, 3) + M(i, 4)
Z(i, 4) M(i, 3) - M(i, 4)
Z(i, 5) = M(i, 2) - M(i, 5)
Z(i, 6) = M(i, 1) - M(i, 6)
Z(i, 7) = M(i, 0) - M(i, 7)
für i = 0, 1, 2, . . ., 7 - 9.7 Vorbereiten der Werte:
Y(0, j) = Z(0, j) + Z(7, j)
Y(1, j) = Z(1, j) + Z(6, j)
Y(2, j) = Z(2, j) + Z(5, j)
Y(3, j) = Z(3, j) + Z(4, j)
Y(4, j) = Z(3, j) - Z(4, j)
Y(5, j) = Z(2, j) - Z(5, j)
Y(6, j) = Z(1, j) - Z(6, j)
Y(7, j) - Z(0, j) - Z(7, j)
für j = 0, 1, 2, . . ., 7 - 10. Nach dem Schritt 9.7 in jedem Bild-Unterblock und
für jede der 64 Stellen (i,j) Vorbereiten des Wertes
S1 - S
v(i,j) = Y(i,j) * 2wobei S und S1 die beliebigen ganzen Zahlen sind, die bei den Schritten (7) und (9.2) festgelegt worden sind. Wiederum ist die Multiplikation in Wirklichkeit eine Rechtsverschiebung. - 11. In Abhängigkeit von System-Einzelheiten kann es nunmehr notwendig sein, eine Bereichsüberprüfung durchzuführen. Wenn beispielsweise der zulässige Luminanzbereich 0 = v(i,j) = 255 ist, dann sollten Werte von V(i,j), die kleiner als 0 oder größer als 255 sind, durch 0 bzw. 255 ersetzt wer den. Die Werte v(i,j) sind die nunmehr rekonstruierten Bild-Luminanzwerte.
Es ist üblich, den Primärprozeß durch zusätzliche Maßnahmen
zu ergänzen, um eine Kompression oder Bildqualität zu ver
bessern. Nach dem Schritt (10) kann eine Bildgenauigkeit
durch iterieren über alle Pixel-Paare V(8I+7,j), V (I+8,j)
und alle Pixel-paare V(k, 8J + 7), v(i, 8J + 8), d. h. be
nachbarte Bildelemente, welche in separate Bildblöcke ge
trennt wurden, bzw. durch Inkrementieren und Dekrementieren
ihrer Werte v1, v2 um beispielsweise (v2 - v1)/
max (2, 11 √(M)) verbessert werden, wobei M der Raten-Skalar
ist, der beim Schritt (4) verwendet worden ist, und wobei
der Ausdruck in dem Nenner wiederum gerade eine übliche An
näherung an das optimale ist.
Vor einem Durchführen des Schrittes (6) kann die subjektive
Schwierigkeit des lokalen Bildbereichs vorzugsweise in eine
von drei Typen qualifiziert werden, eine einfache, doppelte,
oder vierfache Präzision mit der Code-Einleitung ′0, ′10
bzw. ′11. Die Berechnung beim Schritt (6) wird nunmehr
durch
P-s (i, j)
L(i, j) = G(i, j) * K(i, j) * 2
L(i, j) = G(i, j) * K(i, j) * 2
wobei p = 0, 1 oder 2 für einfache, doppelte oder vierfache
Präzision ist. Dies wird beim Schritt (9.2) kompensiert,
wobei die hinzugefügte Präzision mit einer (vergrößerten)
Verschiebung nach rechts entfernt werden muß.
Leider wurde kein sehr effektives, einfaches Klassifikations
system gefunden. Die Anmelderin benutzt daher gegenwärtig
ein schwerfälliges Schema, welches die Schwierigkeits-Maß
nahme P aus vier Quellen ableitet:
- a) P_ links und P_ oben, die Schwierigkeitsmaßnahmen von benachbarten Bildbereichen;
- b) sum(i+j)G(i,j)′2/sum(G(i,j)′2, der Transformations energie-Versatz
- c) -G(0,O), die inverse mittlere Luminanz, und
- d) max(sum_über_festgelegte_Breite (Histogramm (v(i,j)))), die Gleichförmigkeit.
Beim Schritt (7) können die Transformationsdaten <(i, j), welche
zu speichern oder zu übertragen sind, ferner mit Hilfe eines
Entropie-Codierverfahrens reduziert werden. Von der Anmel
derin wird eine Bearbeitung des CCITT-Zickzack-Durchlauf-
und -Schablonen-Code (run-and-template code) mit mehreren
Vorgabe-Huffman-Tabellen in Abhängigkeit von der Bit-Rate
empfohlen. Zur Verdeutlichung wird ein Beispiel davon in dem
folgenden Abschnitt im einzelnen beschrieben.
Ein komprimiertes Bild wird dargestellt durch
- 1) Einleitung (Bildseite, Höhe, Raten-Skalar M, usw.)
- 2) Pixel-Block 0
Pixel-Block 1
Pixel-Block 2
. . .
Pixel-Block N-1 - 3) Anhang (wenn überhaupt) wobei jeder Pixel-Block dargestellt wird durch
- 1) einen Präzisionscode (was durch einen wahlweisen Schritt Z festgelegt wird)
- 2) einen DC-Koeffizienten-Delta-Code
- 3) einen AC-Koeffizienten-Code (wiederholt null oder mehrmals)
- 4) End-Block-Code wobei jeder AC-Koeffizientencode dargestellt wird durch
- 1) Neun-Null-Erweiterung (wird E-mal wiederholt, E 0)
- 2) "Run-Template"-Code-Notierung (R, T)
- 3) Vorzeichen von Koeffizientenwert (1 Bit)
- 4) Absolutwert von Koeffizienten mit gelöschtem MSB (T Bits)
wobei R+ (*E ist die Anzahl von null-wertigen Koeffizienten,
die mit Eins in einer "Zickzack"-Reihenfolge vorausgehen
(eine Folge, die auf der Summe i + j basiert) und wobei T
die Bit-Position des höchstwertigen Bits (MSB) des Absolut
wert des Koeffizienten ist, beispielsweise T = 3, wenn der
Koeffizient 11 oder -11 ist:
Bitposition: 876543210
11 = 000001011 (binär)
- höchstwertiges Bit
Bitposition: 876543210
11 = 000001011 (binär)
- höchstwertiges Bit
Nunmehr wird nicht im einzelnen eine Auswahl oder ein Codie
ren des DC-Koeffizienten Delta beschrieben, sondern es wird
als Beispiel ein Huffman-Code angegeben, welcher bei höheren
Bitraten für die AC-Durchlauf-und-Modell-Codes verwendbar
ist.
Das vorstehend angeführte Verfahren kann bei einer größeren
verallgemeinerten Chen-Transformation 8-mal-16 oder 16-mal-
16 verwendet werden. Das Verfahren zur weiteren Verallgemei
nerung der Chen-Transformation sollte klar festgehalten werden,
daß nämlich die ID-16 Punkt-GCT-Transformation gegeben ist,
(mit den Zeilen in einer "Schmetterlingsreihenfolge" und ohne
die notwendigen, normalisierenden Post-Multiplikatoren) bei
Hierbei sind die "wahren Cosinus-"Parameter
g = tangent 15pi/32 ≈ =10.1532
a = tangent 14pi/32 ≈ = 5.0273
f = tangent 13pi/32 ≈ = 3.2966
b = tangent 12pi/32 ≈ = 2.4142
g = tangent 11pi/32 ≈ = 1.8709
c = tangent 10pi/32 ≈ = 1.4966
h = tangent 9pi/32 ≈ = 1.2185
r = cosine 8pi/32 ≈ = 0.7071
t = cosine 12pi/32 ≈ = 0.3827
s = cosine 4pi/32 = t * b
a = tangent 14pi/32 ≈ = 5.0273
f = tangent 13pi/32 ≈ = 3.2966
b = tangent 12pi/32 ≈ = 2.4142
g = tangent 11pi/32 ≈ = 1.8709
c = tangent 10pi/32 ≈ = 1.4966
h = tangent 9pi/32 ≈ = 1.2185
r = cosine 8pi/32 ≈ = 0.7071
t = cosine 12pi/32 ≈ = 0.3827
s = cosine 4pi/32 = t * b
Die von der Anmelderin verwendeten Parameter sind
e = 10
a = 5
f = 3,25
b = 24
g = 1,875
c = 15
h = 1,25
r = 17/240,708333
r = 17/240,708333
s = t * b = 12/13.
a = 5
f = 3,25
b = 24
g = 1,875
c = 15
h = 1,25
r = 17/240,708333
r = 17/240,708333
s = t * b = 12/13.
Das Inverse von GQ8 (e, f, g, h, r, s, t) ist die Transpo
nierte von GQ8 (e, f, g, h, 1/2r, t′, b; t′)
wobei b = s /7 und t′ = 1 / (t+t*bb) ist.
wobei b = s /7 und t′ = 1 / (t+t*bb) ist.
Die Cosinus-Transformation (a=5,02734; b=2,41421; c=1,49661;
r = 0,70711):
Verwandte Chen-Transformation (a=5,0; b=2,4;c=1,S;r=0,7)
Nunmehr wird im einzelnen eine Einrichtung gemäß der Erfin
dung beschrieben. Im folgenden wird "Punkt" verwendet, um
ein skalares Register oder einen Datenweg beliebiger Genauig
keit zu bezeichnen, üblicherweise 8 bis 12 Bits. Ein Verfah
ren zum Bestimmen einer entsprechenden Genauigkeit ist
bekannt (siehe - Jalali und Rao, "Limited Wordlength and
FDCT Processing Accuracy", IEEE ASSP-81, Vol. III Stn. 1180-2).
Bei der Software-Methode werden Transformationsstufen kom
biniert und die WU-Paolini-Anreicherung wird verwendet. Für
eine Halbleiter-Einrichtung der bevorzugten Ausfüh
rungsform ist es üblicherweise einfacher, zwei 8 Punkt-
Transformationseinheiten vorzusehen, nämlich jeweils eine
für die vertikale und eine für die horizontale Richtung.
Es ist notwendig, eine 6-Punkt-Schiebeanordnung zwischen den
vertikalen und horizontalen Transformationen und ähnliche
Pufferung zwischen dem Transformations- und dem Codierab
schnitt vorzusehen. Obwohl die Erfindung eine monochromati
sche Einrichtung und/oder gesonderte Einrichtungen zur Kom
pression und Dekompression aufweist, enthält eine bevorzug
te Ausführungsform (Fig. 7) sowohl einen Kompressor/Verdich
ter (Fig. 1a) als auch einen Dekompressor (Fig. 1b), welche mit
dreifarbigen Daten arbeiten. Die Daten werden dem Verdichter
(Fig. 2a) in Vektoren von 8 Pixels zugeführt, welche ferner
in einer lexikographischen Reihenfolge in Blöcken von 64
Pixels angeordnet werden. Prozeßblöcke werden in einem
Pipeline-System verarbeitet (Fig. 2). Der Pixel-Eingang an dem
Verdichter weist "R"(rot), "G"(grüne) und "B"(blau) skalare
Größen auf. Diese werden unmittelbar in einen Luminanz-
Chrominanz-Raum transformiert. (Die Gründe für eine solche
Transformation sind allgemein bekannt.)
Die Transformation kann beliebig festgelegte und programmier
bare Koeffizienten (Fig. 3a) verwenden oder sie kann mit ein
fachen Werten in einer redizierten Anwendung "fest verdrah
tet" werden (Fig. 3b). Der Transformationsraum wird hier als
XYZ bezeichnet; es kann jedoch auch eine lineare Form des
dreifarbigen Eingangs verwendet werden, vielleicht der CCITT-
Norm: (Y, R-Y, B-Y). Die drei Werte X, Y und Z werden dann
jeweils an gesonderte monochrome Kompressoren/Verdichter
geliefert. Der Dekompressor benutzt dieselbe oder eine ähnli
che Schaltung wie in Fig. 3, außer daß nunmehr ein XYZ-Vektor
in einen RGB-Vektor transformiert wird.
Die Werte X, Y und Z werden dann in drei Schieberegister ein
gegeben (Fig. 5), um eine Lieferung an die erste Transforma
tionseinheit zu erwarten. Die Transformationseinheit arbeitet
in (2 + 2/3) Pixel-Zeiten, so daß einige der Daten,wie darge
stellt, verzögert werden müssen. Die Benennung "XYZ" ist ein
"unglückliches" Bit; optimierte Codierverfahren erfordern,
daß eine Luminanz "Y" zuerst verarbeitet wird. Während einer
Dekompression wird das XYZ-Versatzproblem umgekehrt. 5 Punkte
von Registern werden in der bevorzugten Ausführungsform durch
ein Umkehren der Benutzung von Y- und Z-Schieberegister wäh
rend einer Dekompression eingespart.
In Fig. 1a enthalten die Hauptabschnitte des Kompressors
einen Eingabeabschnitt (1, 2), welcher das Eingangssignal in
einen XYZ-Raum transformiert und es für eine anschließende
Übertragung an die Transformationseinheit (3) puffert. Für
jeweils acht Pixel-Zeiten muß die erste Transformationsein
heit dreimal zyklisch durchlaufen werden (einmal für jede der
X-, Y- und Z-Daten). Der Ausgang einer Transformation 1 wird
in die Schiebeanordnung (4) eingebracht, wo sie zurückgehal
ten wird, bis der (8 × 8) Pixel-Block vollständig gelesen
worden ist. Die zweite (2) Transformationseinheit (5, 6) be
arbeitet den vorher gelesenen Text-Block, der wieder dreimal
in jeweils acht Pixel-Zeiten durchläuft und erzeugt Daten an
dem Codierer-Eingangspuffer (7, 8). Der Codierer (9, 10, 11)
wird unter den drei Farbkoordinaten gemeinsam benutzt, aber
ein ganzer Luminanzblock wird ohne Unterbrechung codiert,
wobei dann jeweils die Chrominanz-Blöcke folgen. Wenn die
Verarbeitung dieser drei Blöcke nicht innerhalb von
Pixel-Zeiten beendet werden kann, hält die Zeit- und Steuer
logik den Pixel-Takt in der externen Eingabeschaltung an.
Die Speicherbereiche (Eingangsschieberegister 2, Schiebe
anordnung 4, und Codierer-Eingangspuffe 7, 8 müssen für
die drei Farben dreimal vorgesehen sein; die Berechnungsein
heiten 3, 5, 6, 9, 10, 11 werden (in Zeit-Multiplexbetrieb) von
den Y-,X- und Z-Daten gemeinsam benutzt. Der Codierer
9, 10, 11, der Codierer-Eingangspuffer 7, 8, eine Code-
Programmierung 12, 13, 14 und eine (nicht dargestellte) Zeit- und
Steuerlogik können entsprechend dem vorhandenen Stand der
Technik folgen. Ebenso ist das Verfahren für ein Zeit-Multi
plexen von drei Farben über eine einzige Schaltung bekannt.
Der 3-Punkt-Transformationsabschnitt 1 (Fig. 3) und die
Schieberegister 2 (Fig. 5) sind ebenfalls bekannt. Dies Ska
liereinheit 6 (Fig. 1) verwendet bei der Erfindung die nach
stehend beschriebene Quantisier-Multipliziereinheit. Dies ist
eine Gradeaus-Ausführung. Aufgrund der Definition der verall
gemeinerten Chen-Transformation und der entsprechenden Para
meter wird die Auslegung des 8 Punkt-Umformers (Fig. 8) ebenso
Geradeaus richtungsbetrieben. Die Schiebeanordnung (Fig. 6A)
wird im einzelnen erläutert. Vertikale (transformierte)Vek
toren von dem jeweiligen Eingangs-Pixel-Block werden zusam
mengesetzt, während horizontale Vektoren von dem vorherigen
Pixel-Block dem horizontalen Umformer zugeführt werden. Ohne
eine spezielle Auslegung würden dies 128 Register (nämlich
614 jeweils für den augenblicklichen und den vorherigen Block)
sein, da die Punkte in einer Reihenfolge verwendet werden,
die sich von der empfangenen Reihenfolge unterscheidet. Je
doch ist diese Notwendigkeit dadurch entfallen, daß die Da
ten von links nach rechts während geradzahlig numerierter
Pixel-Blöcke und von oben nach unten während ungeradzahlig
numerierter Pixel-Blöcke verschoben werden. Die beschriebene
Schiebeanordnung ist zwei-gerichtet. Eine viergerichtete
Schiebeanordnung wird in einigen Ausführungsformen bevorzugt.
In Fig. 6B ist die Schiebeanordnung der Fig. 6A detaillierter
dargestellt. In Fig. 6B werden Vektoren aus der Schiebeanord
nung von unten her einer nach dem anderen entfernt und an
DCT 8-Abschnitt 5 der Fig. 1A angegeben. In der Zwischenzeit
müssen vertikale Vektoren von dem anderen DCT 8-Abschnitt
von oben in die Schiebeanordnung eingegeben werden. Allmäh
lich werden die alten Vektoren aus der Schiebeanordnung ent
fernt und die Schiebeanordnung wird vollständig mit vertika
len Vektoren von dem nächsten Pixel-Block aufgefüllt.
Für den nächsten Pixel-Block weicht nunmehr die Datenflußrichtung
um 90 von der Datenfluß-Richtung in einem vorheri
gen Pixel-Block ab. Auf diese Weise werden die horizontalen
Vektoren nach rechts aus der Schiebeanordnung entfernt und
an den DCT8-Abschnitt abgegeben, und neue vertikale Vektoren
kommen an der linken Seite an. Beim Übergang zu einem Block
N + 2 wird eine weitere 90°-Drehung zurück zu der normalen
Form umgekehrt, usw. Der Dekompressor (Fig. 1b) hat eine
Struktur, welche derjenigen des Kompressors (Fig. 1a) ziemlich
ähnlich ist, außer daß die Datenflußrichtung umgekehrt ist.
In einer bevorzugten Ausführungsform arbeitet eine einzige
Einrichtung in zwei Moden, nämlich entweder als ein Kompressor
oder als ein Dekompressor.
Mögliche höchstintegrierte (VLSI-)Layouts (Fig. 4a, 4b) führen
zu anderen Datenflüsse bei einer Kompression (Fig. 4c-a,b) und
für eine Dekompression (Fig. 4d-a,b). Andere Datenflüsse werden
möglich, beispielsweise die als Pipeline-System ausgelegte
Anordnung, welche im Abschnitt 8.0 nachstehend noch beschrie
ben wird. Die Arbeitsweise der Transformier- und Schiebeanord
nungseinheiten hat denselben Richtungssinn sowohl für eine
Kompression als auch eine Dekompression in einem Layout
(Fig. 4b), aber nicht in dem anderen (Fig. 4a). Dies ist deut
licher zu erkennen, wenn der verknüpfte Kompressor/Dekom
pressor-Datenfluß betrachtet wird (Fig. 7). Wenn die zwei
Transformationseinheiten RGB- bzw. komprimierten Daten zuge
ordnet werden (Fig. 4a), ergeben sich Layout-Schwierigkeiten,
wenn nicht eine in vier Richtungen wirkende (oben, unten, links, rechts)
Schiebeanordnung verwendet
wird. Folglich sind den zwei Transformationseinheiten die
Eingabe- und Ausgabeabschnitte der Schiebeanordnung zugeord
net.
In einer Ausführungsform benutzt die Transformationseinheit,
welche in dem Kompressor der (Fig. 8A) verwendet ist, 38
Addierer. Eine Verschiebung nach rechts um eine ("R1"),
zwei ("R2") oder vier ("R4") Positionen oder nach links um
eine ("L1") Position wird ohne weiteres durchgeführt. Die
beschriebene Schaltung benutzt die Parameter (a, b, c, r) =
(5, 2,4, 1,5, 17/24). Eine Realisierung mit b = 2,5 würde
in einer anderen Ausführungsform nur 36 Addierer erfordern
(Fig. 8B). Eine verwandte Schaltung ist für die inverse Trans
formationseinheit in dem Dekompressor erforderlich. Bei einer
vorsichtigen Benutzung einer "Ausgabe-Freigabe"-Signalisie
rung können die meisten der Addierer in dem Vorwärts-Umfor
mer wieder verwendet werden.
Die Skaliereinheit benutzt einen programmierten RAM oder ROM
und ein System von impliziten Schiebeeinheiten, Multiplexern
und Addierern. Dies ist eine Geradeaus-Ausführung. Die Deska
liereinheit kann auf verschiedene Weise realisiert werden,
vorzugsweise als eine kleine fest verdrahtete Multiplizier
einheit mit einem RAM, einem Akkumulator, einer Zeit- und
Steuerlogik usw. Bei einer dedizierten, preiswerten Anwendung
kann die Deskalier-Einheit dadurch vereinfacht werden, daß
Entschleierungs-(deblurring)Wertigkeiten nahezu optimal über
einem weiten Bereich sind; folglich kann eine einfache Ska
lierung in der Skaliereinheit angewendet werden. Der Deska
lierer kann entweder zwischen dem Codierer und dessen Aus
gangspuffer oder zwischen dem Ausgangspuffer und einem Umfor
mer angeordnet werden, wie in Fig. 1 und 7 dargestellt ist.
Der Codierer-Eingangspuffer kann auf verschiedene Weise rea
lisiert werden einschließlich in Form einer "Cycle-sharing"-
Register-Reduzieranordnung bzw. einer Registerzuordnung, die sich einen Zyklus teilt,
ähnlich der Schiebeanordnung. Eine
einfachere bzw. direkter wirkende Ausführung verwendet einen 364 mal
10 Bit-RAM mit einem 64 mal 7 Bit ROM, um die RAM-Adressen
zu erzeugen. Ein Beispiel eines Operationszyklus wird nun
mehr anhand von Fig. 1A und 1B beschrieben.
In Fig. 1A werden die Daten in den Kompressor als eine
dreifarbige Information in rot, grün und blau eingegeben.
Sie werden unmittelbar in einen alternierenden Raum über
tragen, der mit XYZ bezeichnet ist. Die drei Elemente X,
Y und Z werden jeweils in ihre eigenen Schieberegister ein
gegeben. Aus dem Schieberegister (Schritt 2) gehen sie an
eine 8 Punkt-DCT-Einheit. Es könnte auch entweder eine 8
Punkt-DCT-Einheit sein, welche bezüglich der drei Farben
X, Y und Z gemultiplext wird, oder sie könnten jeweils ihre
eigene individuelle DCT 8-Einheit haben. Informationen wird
dann in die 64 Punkt-Schiebeanordnung (24) eingegeben. Dies
ist eine individuelle Schiebeanordnung für jede Farbe. Von
der Schiebeanordnung, Block 4, geht es in eine andere DCT-
Einheit, Block 5, welche dem Block 3 ähnlich ist. Die In
formation muß dann skaliert werden, welches eine zusätzliche
Schicht einer zusätzlichen Schiebeeinheit ist.
Die Information wird lediglich sowohl horizontal als auch
vertikal transformiert. Die Schiebeanordnung dreht die Daten
tatsächlich um 90°, so daß sie nunmehr in der anderen Rich
tung transformiert werden können. Nachdem die Daten skaliert
sind, geht es in einen anderen Puffer, die als Blöcke 7 und
8 (Z1 und Z2) bezeichnet sind, um die Daten zu halten, so daß
sie dann schließlich codiert und von dem Chip (Z1, Z2, in
Zickzack) abgegeben werden können.
Dies entspricht dem Ergebnis der Schiebeanordnung, Block 4,
außer daß nunmehr die Daten nicht um 90° gedreht werden.
Statt dessen werden sie in die Zickzack-Ordnung umgewandelt,
welche traditionell für diese Dinge verwendet wird und es wird
die CCITT-Norm angewendet. Die Information ist dann in dem
Steuerblock 9 dargestellt, welcher Nullen feststellt und
Durchläufe für die Nullen erzeugt, Nichtnullen und eine
Schätzung des Logarithmus des Wertes feststellt, was als
Schablone (template) bezeichnet wird. Die Kombination aus
Durchlauf und Schablone wird in einem RAM oder ROM abgelegt,
was als der RT-Code bezeichnet wird und wird dann von dem
Chip aus abgegeben.
Die Mantisse, welche die signifikanten Bits der Transforma
tionskoeffizienten darstellt, wird ebenfalls von dem Chip
aus abgegeben. Da die Mantisse und der Durchlauf- und Schab
lonencode beliebig lang (ein Bit, zwei Bits, was auch immer)
sind, und der Ausgang von dem Chip immer 16 Bits oder
8 Bits, 32 Bit, was auch immer sein wird, wird dies Block 11 (Ausrichtung) erleichtern.
Die anderen in Fig. 1A dargestellten Blöcke sind (wahlweise)
Programmierblöcke 12 bis 14, welche eine beliebige RCB- in
eine XYZ-Transformation, willkürliche Raten-Skalierer und
psychoadaptive Wertigkeiten und einen willkürlich modifizier
ten Huffman-Code für den Durchlauf usw. einstellen können.
Fig. 1B ist Fig. 1A sehr ähnlich. Der Durchlauf- und Schablo
nen-(run and template) Code muß nunmehr in eine Durchlauf- und
Schablonen-Kombination decodiert werden und dann müssen
die notwendige Anzahl an Nullen weggelassen werden. In Fig.
1A ist der Skalierer eine einfache Anordnung aus Addierern
und Schieberegistern. In Fig. 1B ist der Deskalierer als eine
sehr kleine Multipliziereinheit in Hardware ausgeführt.
In Fig. 9 ist ein Diagramm einer Nicht-Pipeline-Ausführung
der zweidimensionalen verallgemeinerten Chen-Transformation
dargestellt. Eine Pipeline-Ausführung wird nachstehend im
Abschnitt 8.0 beschrieben. Pixels kommen von oben her an
und sind üblicherweise 8 Bits breit. Die Pixels durchlaufen
eine breite Anordnung von Addierern in der horizontalen
Transformationseinheit 10 mit einer Datenbreite von üblicher
weise 128 Bits. Die Ausgangswerte der horizontalen Transfor
mationseinheit 10 durchlaufen einen Transpositions-RAM 12,
um die Information von horizontal auf vertikal zu drehen.
Die Daten laufen dann in die vertikale Transformationseinheit
16, welche wiederum nur Addierer aufweist (die üblicherweise
128 Bit breit sind). Die Ausgangskoeffizienten werden schließ
lich auf eine Breite von annähernd 16 Bits reduziert und
durchlaufen dann eine einzige Multipliziereinheit 20, welche
gemäß der Erfindung JPEG kompatibel ist.
Fig. 10 zeigt ein Blockdiagramm für eine höchstintegrierte
(VLSI-)Ausführung gemäß der Erfindung. In Fig. 10 kommen Daten
an einem Element 40 an und werden in dem Eingangsspeicher
42 gehalten, laufen über einen Multiplexer 44 in die erste
Hälfte der GCT-Transformationseinheit 50 (welche ein Addierer
netz ist, wie in Fig. 8 dargestellt ist). Die zweite Hälfte
des Addierernetzes 60 liegt rechts von den mittleren Halte
gliedern 54. Das Ausgangssignal läuft über einen Multiplexer
62 in den Transpositions-RAM 66, wo die Transformation von
horizontal in vertikal erfolgt. Die Ausgangssignale des RAM
66 werden auf die erste Stufe der GCT-Einheit 50 rückge
koppelt, um dadurch die erste Hälfte der vertikalen Trans
formation in einer Time Sharing-Anordnung zu erzeugen. Die
Ausgangssignale der GCT-Einheit 50 werden an den Eingang
der zweiten Stufe der vertikalen Transformationseinheit 60
angelegt. Schließlich werden die Ausgangswerte der GCT-Ein
heit 60 über den Multiplexer 70 und über die Multiplizier
einheit 724 und die Rundungseinheit 76 zu der eine Zickzack
ordnung bildenden Einheit 80 geleitet, deren Ausgang als ein
12 Bit-Koeffizient 84 abgegeben wird.
Anhand von Fig. 10 wird auch noch der inverse Transformations
prozeß gemäß der Erfindung kurz beschrieben. In Fig. 10 wer
den die 12 Bit Koeffizienten über den Block 84 an den Y-
Eingang der Zickzack-Ordnungseinheit 80 eingegeben. Der
Ausgang der Ordnungseinheit 80 läuft über die Multiplizier
einheit 70 und die Rundungseinheit 76, welche einen inversen
Quantisierungsprozeß durchführen, welcher ähnlich demjenigen
ist, der bei dem Vorwärtsprozeß durchgeführt worden ist.
Die Ausgangswerte der Multipliziereinheit 74 werden in den
Haltespeicher 42 eingegeben, was dann die erste Stufe des
inversen Transformationsprozesses ist. Von dem Haltespei
cher durchläuft der inverse Transformationsprozeß denselben
zweistufigen Zeit-Multiplexweg, welchen der Vorwärtsprozeß
durchlaufen hat. Die Ausgangswerte erscheinen an den Ausgangs
speichern 70, an deren Ausgänge Pixels abgegeben werden, wel
che durch die Rundierungseinheit 26 gerundet werden, deren
Ausgangswerte wieder dem Block 40 zugeführt werden.
Um die zu codierende Datenmenge zu verdichten, werden die
Häufigkeits-Bereichskoeffizienten F(i,j) durch den Quanti
sierungswert Q(i,j) in Form einer positiven Zahl geteilt und
dann auf die nächstliegende ganze Zahl gerundet. (Q(i,j) wird
im Unterschied zu dem vorherigen Abschnitt in diesem Ab
schnitt verwendet, um die Quantisierungsmatrix zu bezeich
nen). Umgekehrt erfordert die inverse Operation ein Multipli
zieren mit Q(i,j). Große Quantisierungswerte schaffen die
meiste Kompression, führen aber zu der größten Verschlech
terung in der Qualität eines Bildes (was durch den mittleren
quadratischen Fehler (MSE) gemessen wird). Kleine Quantisie
rungswerte schaffen nicht so viel Kompression, erzeugen aber
einen kleineren MS-Fehler (MSE).
Der Quantisierungsfaktor Q(i,j) kann mit den Matrizen von
Schritten C, D und E der Tabelle 1 kombiniert werden, was
hier als die Vorwärts-Skaliermatrizen Sf(i,j) bezeichnet
wird. In ähnlicher Weise kann die Umkehr des Quantisierungs
faktors mit den Matrizen von Schritten H und I kombiniert
werden, was hier als die inverse Skalier-Matrix Si(i,j) be
zeichnet wird. Daher schließt die Vorwärtstransformation
die Anwendung von Sf/Q (wobei die Indizies der Einfachheit
halber weggelassen sind) und die inverse Transformation
schließt die Verwendung von S₁ * Q ein.
Da die Vorwärtsoperation ein Teilen ist, existiert eine in
verse Beziehung zwischen der Größe Q und der mathematischen
Auflösung von S. Bezüglich des Rechenwirkungsgrades werden
ganzzahlige Divisionen bei einer Multiplikation und einer
Verschiebung im allgemeinen durchgeführt. Beispielsweise
würde bei einer 16 Bit-Arithmetik eine Division durch die
ganze Zahl k zweckmäßiger durch eine Multiplikation mit
2¹⁶/k = 65536/k durchgeführt werden, worauf dann eine Ver
schiebung nach rechts um 16 Bits erfolgt.
Bei der inversen Transformation gibt es wegen der Multipli
kation von Q und Si eine inverse Beziehung zwischen den Be
reichen von Q und Si und daher existiert eine inverse Bezie
hung zwischen dem Bereich von Q und der Auflösung des Pro
duktes. In dem JPEG-Basislinien-System sind die Quantisie
rungswerte 11 vorzeichenlose Bits. Folglich ist der größt
mögliche Quantisierungsfaktor 1023 oder 2¹⁰. Wenn die Multi
plikation in einer 16 Bit Arithmetik durchgeführt wird, hat
Si einen Bereich von 2⁶. Für kleine Q-Werte ist die Auflösung
von Si der überwiegende Beitrag zu dem mittleren quadratischen
Fehler (MSE).
Moderne Computer, Mikroprozessoren und spezielle digitale
Signale verarbeitende Chips haben eine 32 Bit (32b) Multi
plikation, was mehr als genug ist, um dieses Problem zu lösen,
wenn sie, in entsprechender Weise angewendet werden. Bei einer
hochschnellen dedizierten Hardware kann dieselbe Multipli
ziereinheit sowohl für die Vorwärts- als für die inverse
Transformation verwendet werden. Für eine "Realzeit"-Ge
schwindigkeit (bei oder über 30 MHz für Videobilder) ist
eine 16 Bit-Multipliziereinheit für die Auflösung am geeig
netsten. Größere Multipliziereinheiten erfordern mehr Sili
zium und arbeiten langsamer. Einige JPEG-Transformationschips
benutzen eine diskrete Cosinus-Transformation
anstelle der verallgemeinerten Chen-Transformation und es
besteht keine Notwendigkeit für ein Skalieren oder ein Vor
skalieren, d. h. Sf und Si. Andererseits erfordern viele
DCT-Ausführungen den Skalierungstyp, bei welchem die CC-
Transformation erforderlich ist.
Zu beachten ist jedoch, daß es für einen vernünftigen mitt
leren quadratischen Fehler (MSE) notwendig ist, Zugriff auf
den größten Teil des 32 Bit-Ausgangssignals zu haben. Für
den Vorwärtsbetrieb wird eine Teilung dadurch erreicht, daß
eine Anzahl von einer großen normierten Zahl aus, abwärts
skaliert wird. Es ist notwendig, das Ergebnis von den Bits
höherer Ordnung des Ausgangssignals zu nehmen. Für die in
verse Transformation werden die Zahlen multipliziert und
folglich ist eine kleine normalisierte Zahl erwünscht. Es
ist notwendig, das Ergebnis von den Bits niedriger Ordnung
des Ausgangssignals zu nehmen. Die Kombination läßt eine
geringfügige oder keine Reduzierung in der Multiplizier-Hard
ware zu wie zum Beispiel ein Abstimmen unnötiger Bits. Die
Effizienz leidet sehr, wenn das Multiplizieren auf 16 Bits
beschränkt wird, wie dies in US-PS 51 29 015 bzw. DE 42 10 086 A1 bezüglich der
verallgemeinerten Chen-Transformation der
Fall ist. Insbesondere konkurriert bei der inversen Transfor
mation der Bereich von Q mit dem Bereich von Si. Die Auf
lösung von Si ist das wichtigste, wenn der Quantisierungswert
niedrig ist, da hohe Quantisierungszahlen zu einer solchen
Verzerrung führen, daß die Auflösung der Multiplikation
unbedeutend ist.
Das Ziel der Erfindung besteht darin, die maximale Leistung
sowohl für die Vorwärts- als auch die inverse Quantisierung
mit einer 16 Bit-Hardware-Multipliziereinheit, d. h. in einer
16 Bit-Arithmetik zu schaffen. Dies erfordert einen Ausgleich
zwischen Bereich und Auflösungsvermögen.
Bei dem Vorwärtsbetrieb zeigen empirische Ergebnisse, daß
eine 16 Bit Hardware-Multipliziereinheit genug Auflösung
schaffen kann. Der größte Wert (Sf × 216) kann so gewählt
werden, daß er (2¹⁶-1) ist. Ein großes Q reduziert den
Bereich von Werten (Sf/Q × 2¹⁶) aber der Fehler infolge des
Mangels an Auflösung bei dieser Zahl ist klein im Vergleich
zu dem Fehler, welcher durch die Quantisierung eingebracht
wird. Um das Eingangssignal sowie Sf/Q richtig zu skalieren
bzw. zu normieren, erscheint das Ausgangssignal in den oberen
N Bits des Multiplizierer-Ausgangs, d. h.
Ergebnis = (Eingang * Q-Faktor) » N;
wobei "»" die Schiebeoperation nach rechts bezeichnet, und
der Q-Faktor = S₁/Q * 2¹⁶ ist. Die Multiplikation der zwei
N Bit Faktoren erzeugt im allgemeinen ein Produkt 2N Bits.
Da das Ergebnis von dem oberen 16 Bits der Hardware-Multipli
ziereinheit genommen wird, können Verknüpfungsglieder ent
sprechend abgestimmt werden, damit sie die unteren 16 Bits
liefern. Alles was von den unteren N Bits benötigt wird,
ist der relevante Übertrag-Term.
Dies ist in der Zwei-Mode-Hardware-Ausführung in Fig. 11
dargestellt. Wenn die Vorwärtstransformation durchgeführt
wird, ist der Vorwärtseingang (/Vorwärts) niedrig (d. h.
null). Daher gibt der Steuer-Multiplexer (MUX) 100 das
Masse-(GND-)Signal von null an die 16 bei 1 MUX 104. Dies
bewirkt keine Verschiebung (LO) zu dem Eingang hin, der zB 0
bis B15 der Multipliziereinheit angelegt wird. Das Nullsignal
auf der /Vorwärts-Leitung zu dem Multiplexer 108 gibt die
vier Bits eines Q-Exponenten an Eingänge A0 bis A3 der 16
Bit an den 16 Bit Vorzeichen-Multiplizierer 106 ab. In diesem
Fall ist dann:
Q-Faktor = (Q-Mantisse « 4) + Q-Exponent,
und der Multiplizierer 106 erzeugt das Produkt Q-Faktor *
Eingang. Das abgegebene Ergebnis ist gleich (Q-Faktor *
Eingang » 16), da 16 niedrigstwertige Stellen als ein
nicht-verwendbares Wort ausrangiert wird.
Die vorliegende Erfindung betrifft einen Prozeß, bei welchem
die inverse Dequantisierung durch Arrangieren eines Abstrichs
zwischen Bereich und Auflösung unterstützt, welches die
höchste Genauigkeit für 16 Bit Operationen zuläßt. Es wurde
empirirsch entschieden, daß annähernd 12 Auflösungsbits für
den geforderten mittleren quadratischen Fehler (MSE) notwendig
sind. Da 10 Bits für die Quantisierung in der JPEG-Basislinien-
Spezifikation benötigt werden, werden 24 Bereichsbits benö
tigt. Dies wird mit Hilfe der höchsten 12 Bits des 16 Bit-
Faktors als einer Mantisse und den niedrigsten 4 Bits als
ein Exponententerm der Basis 2 erreicht. Die Kombination der
2⁴ möglichen Schiebewerte und der (16-4) Bitmantisse ergibt
folgenden effektiven Bereich:
effektiver Bereich = [(16-4) + 2⁴] Bits = 28 Bits.
Wie in der zweimode-Hardware-Ausführung der Fig. 11 darge
stellt, ist bei dem inversen Mode, wenn /vorwärts hoch ist
der Steuereingang zu dem 16 zu 1 Multiplexer 104 ein Q-
Exponenent. Ein Steuereingang des Wertes I zu dem Multiple
xer erzeugt eine Verschiebung nach links von i Ziffern (Li)
zu dem Eingangswert hin. Die 12 Bits einer Q-Mantisse wer
den an Eingänge A4 bis A15 der Multipliziereinheit 106 ange
legt. Der hohe Steuerwert von /vorwärts zu dem Multiplexer
108 gibt Nullen von Masse (GND) an Bits A0 bis A3 der Multi
pliziereinheit 106 ab. Hierbei ist wiederum zu beachten, daß
das Ausgangsergebnis in den oberen 16 Bits des Multiplizie
rerausgangs liegt, und daß die 16 niedrigstwertigen Stellen
als ein unbrauchbares Wort ausrangiert werden. Das Ergebnis
wird folglich beherrscht durch:
Ergebnis = ((Eingang « Q-Exponent) * Q-Skalar) » 16
wobei Q-Skalar « Q-Exponent = Si × Q × 2¹⁶
Q-Skalar < 2¹²
und 0 < Q-Exponent < (2⁴ - 1) sind.
wobei Q-Skalar « Q-Exponent = Si × Q × 2¹⁶
Q-Skalar < 2¹²
und 0 < Q-Exponent < (2⁴ - 1) sind.
Da der Eingangswert nach links verschoben wird, ist es notwen 11736 00070 552 001000280000000200012000285911162500040 0002004306010 00004 11617
dig, daß der Eingang beschränkt wird. Sonst wird der Wert
überlaufen und falsche Ergebnisse erzeugen. Dies erfolgt im
plizit jedoch durch die Tatsache, daß diese Zahlen durch den
selben Faktor quantisiert worden sind, der nunmehr bei einer
Multiplikation verwendet worden ist. Dies ist der Grund da
für, weshalb die vorliegende Erfindung nicht auf jegliche Multi
plikation verallgemeinbar ist.
Eine vorteilhafte Weiterbildung der Erfindung ist in Fig. 12
dargestellt, in welcher eine Verschiebung nach links durch
einen Multiplexer 110 nach dem Multiplikationsschritt um die
16 Bit durch einen 16 Bit Multiplizierer 112 auftritt. In der Vor
wärts-Transformation ist der Steuereingang/Vorwärts nie
drig. Das Nullsignal an dem Steuereingang des Multiplexers
110 gibt die vier Bits des Q-Exponenten an Eingänge A0 bis
A3 des Multiplizierers 112. Die 16 höchstwertigen Stellen
(Q31 bis Q16) des 32 Bit Produkts des Multiplizierers 116
werden durch den 16 zu eins Multiplexer 110 gemäß dem
Massesignal (GND) von dem Multiplexer 116 ausgewählt.
Bei der inversen Transformation ist das /Vorwärts-Signal hoch.
Daher wird das Massesignal (GND) von dem Multiplexer 114 an
Eingänge A0 bis A3 der 16 Bit von dem 16 Bit Vorzeichen-
Multiplizierer 112 abgegeben. Bits Qi bis Qj (wobei i = 32
bis Q-Exponent und j = 1 bis 15 sind) des 32 Bit-Ausgangs
von dem Multiplizierer 112 werden als das Ergebnis entspre
chend dem Wert des eingegebenen Q-Exponenten an dem 16 zu
eins Multiplexer 110 bis Multiplexer 116 ausgewählt. Da
eine Linksverschiebung des Eingangswerts durch den eingege
benen Wert in dem Bereich nicht begrenzt werden (d. h. vor
formatiert). In diesem Fall werden die Operationen mathe
matisch dargestellt durch:
Ergebnis = (Eingabe * Q-Skalar) » Q-Exponent » 16.
Die nachstehende Tabelle zeigt die mittleren quadratischen
Fehler-(MSE-)Ergebnisse eines Experiments, das an dem Bild
Barbara, einem 794 × 576 × 8b Grauwert-Testbild von CCITT,
durchgeführt worden ist. Die Quantisierungswerte sind in dem
ersten Fall alle Einsen und stammen im zweiten Fall von der
vorgeschlagenen Luminanz-Quantisierungstabelle in der JPEG-
Norm. Das Bild wurde mit einer Software-Simulation eines
Chips mit einem 32b Multiplizierer eines 16b Multiplizierer
und der Erfindung, die durch einen 16b Multiplizierer aus
gefüllt war mit Hilfe einer 12b Mantisse und einem 4b Expo
nenten verarbeitet, wie in dem vorherigen Abschnitt beschrie
ben worden ist. Die Ergebnisse sind in der nachstehenden Ta
belle wiedergegeben.
Wie erwartet, ergibt sich der Hauptunterschied zwischen den
Multiplizierern, wenn Q niedrig ist, d. h. wenn eine Quali
tätswiedergabe gefordert wird. Bei weniger Hardware bietet
die Erfindung beinahe eine 32 Bit Genauigkeit; der Unter
schied in dem mittleren quadratischen Fehler (MSE) ist nicht
nennenswert von Bedeutung. Um jedoch der CCITT-Empfehlung
H. 261 bezüglich eines Transformations-Fehlanpassungstest zu
genügen, müssen bei der Erfindung Parameterwerte verwendet
werden, die viel enger einer diskreten Cosinus-Transformation
angenähert sind. Um dies durchzuführen, benötigt der 32b Mul
tiplizierer etwa 85% mehr Siliziumoberfläche als der 16 Bit
Multiplizierer. Eine Hauptüberlegung für integrierte Schal
tungstechnologie. Bei der Erfindung werden nur 30% mehr zu
dem Flächenbereich hinzugefügt. Es ist interessant zu bemer
ken, daß die einzige Multipliziereinheit etwa 10% des Sili
ziums braucht.
Es sollen VLSI-Chips geschaffen werden, welche das inter
nationale Standard-Bild-Kompressionssystem durchführen, das
von JPEG-Kommittee von CCITT vorgeschlagen worden ist. Viele
Anwendungen erfordern es, daß das VLSI-Chip mit Video-Raten
läuft, welche ungefährt 8 bis 10 Millionen Pixels pro Se
kunde (in Abhängigkeit von der Auflösung) ergibt. Jedes Pixel
enthält normalerweise drei Farben, nämlich rot, grün und
blau. Da die meisten VLSI-Ausführungen mit einer Zeitkompo
nente arbeiten, ist die erforderliche Taktrate das Dreifache
der Pixel-Rate. Dies führt dann zu der Chip-Taktrate von
annähernd 25 bis 30 MHz. Dies ist eine hohe Taktgeschwindig
keit selbst für das Niveau 1991.
Die meisten herkömmlichen Ausführungen der DCT-Transforma
tion verwenden eine Mischung von Multiplizierern und Addie
rern, um die Transformation durchzuführen. Die Multiplizierer
sind üblicherweise der Engpaß bei den meisten Ausführungen.
Andere Funktionen, wie RAMs und ROMs stellen sekundäre Eng
pässe dar. Um diese Engpässe zu überwinden, werden lange
Pipeline-Architekturen verwendet. Eine typische Pipeline
auf einem DCT-Chip kann bis zu 200 Takt-Zyklen haben, was
bedeutet, daß 200 Prozesse parallel im Innern des Chips
stattfinden.
Fig. 13 zeigt eine herkömmliche Pipelin-Architektur für
eine diskrete Cosinus-Transformation. Pixel-Komponenten
treffen an der linken Seite der Figur ein und werden in der
Speichereinheit 120 in parallelen Vektoren einer Größe von
1 × 8 gespeichert. Diese (1 × 8) Vektoren werden zu einer
eindimensionalen Transformationseinheit 120 durchgelassen,
um die DC-Transformation durchzuführen. Die (1 × 8) Zeilen
vektoren werden dann durch die Transponiereinheit 124 in
Spaltenvektoren der Form (8 × 1) transponiert. Nach dem Trans
ponieren werden in herkömmlichen Systemen die transponierten
Vektoren der zweiten DC-Einheit 126 für eine Umwandlung zu
geführt. Während diese zweite Umwandlung stattfindet, wird
die erste Transformationseinheit 122 mit dem nächsten (1 × 8)
Zeilenvektor besetzt gehalten. Folglich ist dies der Pipe
line-Effekt. Die letzte Multiplikation wird von der Multipli
ziereinheit 128 durchgeführt. Da die DC-Transformation der
rechnerische Engpaß für dieses System ist, ist eine solche
Struktur, wie sie oben beschrieben ist, erforderlich, um
entsprechende Video-Raten zu erreichen.
Obwohl Fig. 13 der Klarheit halber vereinfacht ist, ist es
wichtig, die Zwänge und Abhängigkeiten bei der gesamten
Transformation zu verstehen. Wie vorstehend ausgeführt, sind
die Multiplikationsoperationen die Engpässe in diesem System.
Da die Umformungseinheiten 122 und 126 Multiplikationen
enthalten, stellen sie und die letzte Multipliziereinheit
128 annähernd gleiche Engpässe dar. Es soll nunmehr x nS
gefordert werden, um eine einzige Multiplikation durchzufüh
ren. In Fig. 13 (in welcher die zwei DCT-Umformeinheiten 122
und 126 vorhanden sind) führt jede Umformeinheit 122 und
126 gleichzeitig eine Berechnung auf 8 Komponenten durch.
Folglich hat die Umformeinheit 8 × nS, um die Berechnung
durchzuführen. Dies ist augenblicklich mit den heute zur Ver
fügung stehenden Architekturen durchführbar.
Die verallgemeinerte Chen-Transformation gemäß der Erfindung
erfordert keine Multiplikationen bei der Hauptumwandlung, und
nur eine Multiplikation pro Komponente am Ende des Transfor
mationsprozesses. Die Haupt 1D-GC-Transformation besteht aus
einer Anordnung von 38 Addierern, die in einem Maximum von
7 diskreten Niveaus angeordnet sind (siehe Fig. 8 und 9).
Die Addierer-Anordnung weist fest verdrahtete Schiebeeinheiten
auf und kann dadurch Multiplikationen und Divisionen mit Fak
toren von zwei erzeugen, wie oben ausgeführt ist. Durch ein
weiteres Aufteilen der sieben Ebenen in zwei separate Ab
schnitte (wobei diese Aufspaltung aufgrund der einfachen
Struktur der GCT leicht vorzunehmen ist) wird die maximale
Anzahl an Addiererebenen auf vier reduziert. Durch ein sol
ches Aufteilen wird die Umformung nicht mehr länger der
Engpaß für einen Datenfluß. Es ist die letzte Multiplikation,
die RAM-Zugriffe, die zu den Engpässen führen. Dies bedeutet,
daß eine maximale Leistungsfähigkeit durch das Auslegen
dieser Elemente gesteuert wird. Jedoch kann, da nunmehr die
letzte Multiplikation ein Engpaß geworden ist, ein zusätzli
ches Merkmal von der Umwandlungseinheit verwendet werden.
Fig. 14 zeigt eine solche Anordnung.
In Fig. 14 folgt auf den Eingabespeicher 130 für (8 × 1)
Zeilenvektoren ein Multiplexer 132, welcher einen von zwei
Eingängen auswählt, um es der eindimensionalen Umwandlungs
schaltung 134 zuzuführen. Der wichtige Unterschied besteht
nunmehr darin, daß nur eine Umformeinheit 134 vorgesehen ist.
Nach einem vorherbestimmten Zeitabschnitt hat die Umformein
heit 134 die Umformung an dem ankommenden Zeilenvektor been
det. Nach einem Durchlaufen des Transpositions-RAM 136 wird
der transponierte Zeilenvektor durch einen zweiten Multi
plexer 138 zu dem ersten Multiplexer 132 und dann zu einer
und nur einer Umformungseinheit 134 rückgekoppelt. Nunmehr
werden die Spalten transformiert. Nachdem die Spalten trans
formiert und transponiert worden sind, werden die Ergebnisse
zu der Multipliziereinheit 140 weiter geleitet. Nunmehr ist
augenscheinlich, daß im Mittel die Umformeinheit in 4 × nS
arbeiten muß. Darauf ist es zurückzuführen, daß das einfache
Addierer-GCT-Netz einen großen Vorteil schafft. Addierer sind
auch viel schneller als Multipliziereinheiten und daher ist
ein solches Zeitaufteilungs-Multiplexen möglich.
Die GCT-Transformation selbst ist eine beträchtliche Einspa
rung gegenüber der DC-Transformation. Die in Fig. 14 darge
stellte Ausführung schafft eine weitere Ersparnis von 50%,
da nur eine (1) Umformeinheit statt bisher zwei erforderlich
sind. Somit wird aufgrund der Auslegung der Erfindung nur
eine (1) Umformungseinheit 134 verwendet, und diese Einheit
belegt zwischen 40 und 50% des Chips. Die anderen 50% nehmen
RAMs, Haltespeicher, der Multiplizierer 140, eine Ein-/Aus
gabeeinheit usw. ein. Hieraus ist zu ersehen, daß eine zweite
Umformeinheit die Siliziumfläche um annähernd 50% vergrößern
würde.
Durch die Verwendung nur eines Addierernetzes mit einem
Zeitaufteilungs-Multiplexen ist eine effiziente JPEG-Ausfüh
rung mit einer um 50% größeren Leistung hinsichtlich der
Video-Raten geschaffen.
Obwohl die Beispiele der vorstehenden Beschreibung darauf
beschränkt sind, ein bildbezogenes Codieren umzuformen, kann
die Multiplizierer-Erfindung auf ein Quantisierungsschema
verallgemeinert werden, bei welchem das Ausgangssignal mit
derselben Zahl multipliziert wird, durch welche das Eingangs
signal geteilt worden ist. Obwohl eine Verallgemeinerung bis
zu einem gewissen Grad möglich ist, da mehrere Algorithmen
ähnliche Quantisierungsschemen benutzen, hat die Multipli
zierer-Erfindung ihre Berechtigung nur im Zusammenhang mit
einer Quantisierung und Dequantisierung. Obwohl in der bevor
zugten Ausführungsform eine 16 Bit Arithmetik benutzt ist,
kann die Erfindung generell auch bei solchen Prozessen an
gewendet werden, bei welchen eine N Bit Arithmetik benutzt
wird. Auch ist die Erfindung kompatibel mit vorhandenen
Normen, wie JPEG.
Claims (58)
1. Verfahren zur digitalen Verarbeitung von Bilddaten, unter Verwendung einer
Recheneinrichtung, bei dem die Daten komprimiert, übertragen und dekomprimiert werden,
wobei die Daten komprimiert werden, um ein Umformen einer Originalfolge von Werten in
eine Folge von transformierten Bereichskoeffizienten durchzuführen, und wobei zur
Komprimierung
- a) eine Originalfolge von Werten in eine Folge von transformierten Werten umgewan delt wird,
dadurch gekennzeichnet, daß
- b) zur Komprimierung die Folge von transformierten Werten in eine Folge von transformierten Bereichskoeffizienten dadurch umgewandelt wird, daß jeder transformierte Wert durch einen Q-Faktor multipliziert und die N niedrigstwertigen Stellen des Ausgangssignals gestrichen werden, wobei der Q-Faktor durch einen Faktor 2N vornormiert und in einem N Bit-Speicherregister gespeichert wird.
2. Verfahren nach Anspruch 1, gekennzeichnet durch einen Skalierfaktor und einen
Quantisierfaktor, wobei der Q-Faktor gleich 2N-mal dem Skalierfaktor ist, welcher durch den
Quantisierungsfaktor geteilt ist.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß der Maximalwert aller Q-
Faktoren (2N-1) ist.
4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Folge von Original
werten eine Länge von L-Werten hat, und daß die Umwandlungsoperation in eine Reihe von
Additionen und L Endmultiplikationen geteilt wird.
5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Umwandlungsopera
tion in das Produkt einer Diagonalmatrix und einer Nicht-Diagonalmatrix aufgeteilt wird,
und daß die Operation von der Nicht-Diagonalmatrix durch eine Addiereranordnung
durchgeführt werden kann.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß die Addiereranordnung
weniger als sieben Stufen hat und aus weniger als 39 Addierereinheiten zusammengesetzt ist.
7. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß die Umformoperation eine
verallgemeinerte Chen-Tansformation ist, welche sich einer diskreten Cosinus-Transfor
mation nähert.
8. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß der Skalierfaktor einen
inversen psychoadaptiven Wertungsfaktor aufweist.
9. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Originalfolge von
Werten ein zweidimensionales Raster von Bild-Pixels darstellt.
10. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß N gleich 16 ist.
11. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die dekomprimierten
Daten zum Invertieren einer Transformation verwendet werden, wobei eine Originalfolge von
Werten in eine Folge von transformierten Bereichskoeffizienten umgewandelt wird, wobei
jeder der transformierten Bereichskoeffizienten zum Dekomprimieren mit einem Q-Faktor
multipliziert wird, der in einem N Bit Speicherregister in Form eines M Bit Exponenten
gespeichert wird, der als Q-Exponent identifiziert ist, und eine (N - M) Bit Mantisse als Q-
Mantisse identifiziert wird, wobei Q-Faktor = Q-Mantisse * 2Q-Exponent ist, um einen Q-Faktor
mit einem Wertebereich zu schaffen, welcher größer als 2N ist, und die Folge von
multiplizierten, transformierten Bereichskoeffizienten in eine zweite Wertefolge umgewandelt
wird, welche der Originalwertefolge angenähert ist.
12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß der Multiplizierschritt
die Schritte einschließt, Multiplizieren mit Q-Mantisse mit Hilfe einer ganzzahligen Multipli
ziereinheit und Verschieben nach links um Q-Exponenten-Bits.
13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, daß auf den Schritt des
Verschiebens nach links um Q-Exponenten-Bits der Schritt folgt, Multiplizieren mit Q-
Mantisse mit Hilfe der ganzzahligen Multipliziereinheit.
14. Verfahren nach Anspruch 12, dadurch gekennzeichnet, daß auf den Schritt des
Multiplizierens mit der Q-Mantisse mit Hilfe der ganzzahligen Multipliziereinheit der Schritt
folgt, Verschieben nach links um Q-Exponenten-Bits.
15. Verfahren nach Anspruch 12, gekennzeichnet durch einen Skalierfaktor und einen
Quantisierfaktor, wobei der Q-Faktor gleich dem Produkt des Skalier-Faktors und des
Quantisierfaktors ist.
16. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß die Folge von transfor
mierten Bereichskoeffizienten eine Länge von L Werten hat, und daß die inverse
Umformungsoperation in L Anfangsmultiplikationen und eine Reihe von Additionen und
Verschiebungen in einer Addiereranordnung aufgeteilt wird.
17. Verfahren nach Anspruch 11, bei welchem eine Addiereranordnung verwendet wird,
dadurch gekennzeichnet, daß die inverse Umformungsoperation in das Produkt aus einer
Diagonalmatrix und einer Nicht-Diagonalmatrix aufgeteilt wird, und daß die Operation durch
die Nicht-Diagonalmatrix durch die Addiereranordnung durchgeführt werden kann.
18. Verfahren nach Anspruch 17, dadurch gekennzeichnet, daß die Addiereranordnung
weniger als sieben Stufen hat und aus weniger als 39 Addierereinheiten zusammengesetzt ist.
19. Verfahren nach Anspruch 17 dadurch gekennzeichnet, daß die Transformation eine
verallgemeinerte Chen-Transformation ist, welche einer diskreten Cosinus-Transformation
angenähert ist.
20. Verfahren nach Anspruch 15, dadurch gekennzeichnet, daß der Skalierfaktor einen
psychoadaptiven Wertungsfaktor enthält.
21. Verfahren nach Anspruch 15, dadurch gekennzeichnet, daß der Skalierfaktor einen
Entschleierungsfaktor enthält.
22. Verfahren nach Anspruch 12, dadurch gekennzeichnet, daß die ursprüngliche
Wertefolge ein zweidimensionalen Raster von Bild-Pixels darstellt.
23. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß N gleich 16 ist, und daß
M gleich 4 ist.
24. Verfahren nach Anspruch 12, dadurch gekennzeichnet, daß der Q-Faktor durch 2N
vornormiert wird, und daß die N niedrigstwertigen Stellen des Multiplationsproduktes
gestrichen werden.
25. Zwei-Mode-Einrichtung zum Durchführen der Multiplikation einer eingegebenen
ganzen Zahl und eines Q-Wertes, um ein Produkt zu erzeugen, gekennzeichnet durch
- (a) einen Multiplexer, um die eingegebene ganze Zahl um eine ganzzahlige Anzahl von Schiebebits nach links zu schieben;
- (b) eine ganzzahlige Multipliziereinheit, um einen Faktor und die verschobene eingegebene ganze Zahl zu multiplizieren;
- (c) einen Zwei-Mode-Q-Werte-Prozessor, wenn der Prozessor in dem Vorwärts-Mode arbeitet, wobei die Schiebezahl null gesetzt wird und der Faktor gleich einem Q-Wert gesetzt wird und wenn der Prozessor in dem inversen Mode arbeitet, die Schiebezahl auf einen Q-Exponenten gesetzt wird und der Faktor gleich einer Q-Mantisse gesetzt wird, wobei Q-Wert = Q-Mantisse * 2Q-Exponent ist.
26. Einrichtung nach Anspruch 25 mit einem Kompressionsfaktor, dadurch gekenn
zeichnet, daß bei dem Vorwärtsmode der Q-Wert umgekehrt proportional dem Korn
pressionsfaktor ist und in dem inversen Mode der Q-Wert proportional dem
Kompressionsfaktor ist, wobei die Einrichtung als ein Daten-Kompressor/Dekompressor
arbeitet.
27. Einrichtung nach Anspruch 26 mit einem 4 Bit Speicher-Register, einem 12 Bit
Speicher-Register, und einem 16 Bit Speicher-Register, dadurch gekennzeichnet, daß der
Q-Exponent in dem 4 Bit Speicher-Register gespeichert wird, die Q-Mantisse in dem 12 Bit
Speicher-Register gespeichert wird und die eingegebene ganze Zahl in dem 16 Bit Speicher-
Register gespeichert wird.
28. Einrichtung nach Anspruch 25, dadurch gekennzeichnet, daß der Q-Wert vorher mit
2N multipliziert ist und N Bits von dem Multiplizierer-Ausgang her getrennt werden.
29. Einrichtung nach Anspruch 25, dadurch gekennzeichnet, daß die eingegebene ganze
Zahl ein verallgemeinerter Chen-Transformations-Koeffizient in dem inversen Mode ist.
30. Einrichtung nach Anspruch 26, dadurch gekennzeichnet, daß in dem Vorwärts-Mode
der Q-Wert proportional einem psychoadaptiven Wertungsfaktor ist, und in dem inversen
Mode der Q-Wert proportional einem inversen psychoadaptiven Wertungsfaktor ist.
31. Einrichtung nach Anspruch 26, dadurch gekennzeichnet, daß in dem Vorwärts-Mode
der Q-Wert proportional einem Entschleierungsfaktor ist.
32. Zwei-Mode-Einrichtung, um die Multiplikation einer eingegebenen ganzen Zahl und
eines Q-Wertes durchzuführen, um ein Produkt zu erzeugen, gekennzeichnet durch
- (a) eine ganzzahlige Multipliziereinheit, um die Multiplikation eines Faktors und der eingegebenen ganzen Zahl durchzuführen;
- (b) einen Multiplexer, um die Ausgabe der Multipliziereinheit um eine ganzzahlige Anzahl von Schiebebits nach links zu verschieben;
- (c) einen Zwei-Mode-Q-Wert-Prozessor, wobei, wenn der Prozessor in dem Vorwärts-Mode arbeitet, die Schiebezahl bzw. die ganzzahlige Schiebezahl null gesetzt wird und der Faktor auf den Q-Wert gesetzt wird und wenn der Prozessor in dem inversen Mode arbeitet, die Schiebezahl bzw. die ganzzahlige Schiebezahl auf einen Q-Exponenten gesetzt und der Faktor gleich einer Q-Matisse gesetzt wird, wobei Q-Wert = Q-Matisse * 2Q-Exponent ist.
33. Einrichtung nach Anspruch 32, mit einem Kompressionsfaktor, dadurch
gekennzeichnet, daß bei dem Vorwärtsmode der Q-Wert umgekehrt proportional dem
Kompressionsfaktor ist, und in dem inversen Mode der Q-Wert proportional dem
Kompressionsfaktor ist, wobei die Einrichtung als ein Datenkompressor/Dekompressor
arbeitet.
34. Einrichtung nach Anspruch 33, mit einem 4 Bit Speicher-Register, einem 12 Bit
Speicher-Register und einem 16 Bit Speicher-Register, dadurch gekennzeichnet, daß ein Q-
Exponent in dem 4 Bit Speicher-Register gespeichert wird, eine Q-Mantisse in dem 12 Bit
Speicher-Register gespeichert wird, und die eingegebene ganze Zahl in dem 16 Bit Speicher-
Register gespeichert ist.
35. Einrichtung nach Anspruch 33, dadurch gekennzeichnet, daß der Q-Wert vorher mit
2N multipliziert wird und N Bits von dem Multiplizierer-Ausgang her getrimmt werden.
36. Einrichtung nach Anspruch 35, mit drei 16 Bit Speicher-Registern, dadurch
gekennzeichnet, daß der Q-Wert, das Produkt und die eingegebene ganze Zahl in den
Speicher-Registern gespeichert werden.
37. Einrichtung nach Anspruch 32, dadurch gekennzeichnet, daß die eingegebene ganze
Zahl ein generalisierter Chen-Transformations-Koeffizient in dem inversen Mode ist.
38. Einrichtung nach Anspruch 33, dadurch gekennzeichnet, daß in dem Vorwärtsmode
der Q-Wert proportional einem psychoadaptiven Wertungsfaktor ist, und in dem inversen
Mode der Q-Wert proportional einem inversen psychoadaptiven Wertungsfaktor ist.
39. Einrichtung nach Anspruch 33, dadurch gekennzeichnet, daß in dem Vorwärtsmode
der Q-Wert proportional einem Entschleierungsfaktor ist.
40. Verfahren, das eine Pipeline-Architektur benutzt, um eine zweidimensionale
Transformation durchzuführen, dadurch gekennzeichnet, daß die zweidimensionale
Transformation in zwei aufeinanderfolgenden eindimensionalen Transformationen aufgeteilt
wird, wobei die zwei eindimensionalen Transformationen jeweils in eine schnelle Stufe und
eine langsame Stufe aufgeteilt werden, wobei die schnelle Stufe eine Berechnungszeit hat,
welche schneller als diejenige der langsamen Stufe ist, und die zwei schnellen Stufen der
zwei eindimensionalen Transformationen in einem Abschnitt der Pipeline der Pipeline-
Architektur durchgeführt werden.
41. Verfahren nach Anspruch 40, dadurch gekennzeichnet, daß jede schnelle Stufe durch
eine Addierer-Anordnung durchgeführt wird.
42. Verfahren nach Anspruch 41, dadurch gekennzeichnet, daß die zwei schnellen Stufen
aufeinanderfolgend durch im wesentlichen dieselbe Addiereranordnung durchgeführt werden.
43. Verfahren nach Anspruch 42, dadurch gekennzeichnet, daß die zwei langsamen
Stufen algebraisch kombiniert werden und als einzige Stufe durchgeführt werden.
44. Verfahren nach Anspruch 43, dadurch gekennzeichnet, daß die eindimensionalen
Transformationen verallgemeinerte Chen-Transformationen sind, welche diskreten Cosinus-
Transformationen angenähert sind.
45. Einrichtung zur Durchführung einer zweidimensionalen Transformation, welche in
zwei eindimensionale Transformationen aufgeteilt ist, wobei die Einrichtung eine Pipeline-
Architektur hat, gekennzeichnet durch
- (a) einen ersten Prozessor in der Pipeline der Pipeline-Architektur, wobei jede der eindimensionalen Transformationen in einen ersten und in einen zweiten Teil aufteilbar sind, wobei der erste Prozessor den ersten Teil der eindimensionalen Transformationen durchführt;
- (b) einen Umsetzer in der Pipeline der Pipeline-Architektur, um eine erste Gruppe von Vektoren wieder zu ordnen, um eine zweite Gruppe von Vektoren zu erzeugen, wobei der n-te Eintrag des m-ten Vektors der ersten Gruppe von Vektoren der m-te Eintrag des n-ten Vektors der zweiten Gruppe von Vektoren wird;
- (c) einen Endprozessor in der Pipeline der Pipeline-Architektur zum Durchführen der zweiten Teile der zwei eindimensionalen Transformationen, und
- (d) ein Leitwegsystem mit einer Einrichtung, um eine dritte Gruppe von Vektoren zu dem ersten Prozessor zu leiten, um die erste Gruppe von Vektoren zu erzeugen, um die erste Gruppe Vektoren zu dem Umsetzer zu leiten, um die zweite Gruppe von Vektoren zu erzeugen, um die zweite Gruppe Vektoren zu dem ersten Prozessor zu leiten, um eine vierte Gruppe von Vektoren zu erzeugen und um die vierte Gruppe Vektoren zu dem zweiten Prozessor zu leiten, um eine Gruppe von zweidimensional transformierten Vektor zu erzeugen.
46. Einrichtung nach Anspruch 45, dadurch gekennzeichnet, daß die ersten, zweiten,
dritten und vierten Gruppen von Vektoren (M × 1) Vektoren einer Kardinalität M sind.
47. Einrichtung nach Anspruch 45, dadurch gekennzeichnet, daß die Verarbeitungszeit
des ersten Prozessors, um die erste und die vierte Gruppe von Vektoren zu erzeugen, nicht
viel größer ist als die Verarbeitungszeit des zweiten Prozessors, um die Gruppe von
transformierten Vektoren zu erzeugen.
48. Einrichtung nach Anspruch 47, dadurch gekennzeichnet, daß der erste Prozessor eine
Addiereranordnung ist.
49. Einrichtung nach Anspruch 48, dadurch gekennzeichnet, daß der zweite Prozessor
algebraisch die zweiten Teile der zwei eindimensionalen Transformationen kombiniert.
50. Einrichtung nach Anspruch 49, dadurch gekennzeichnet, daß die eindimensionalen
Transformationen verallgemeinerte Chen-Transformationen sind, welche diskreten Cosinus-
Transformationen angenähert sind.
51. Verfahren mit einem Bildkompressor, dadurch gekennzeichnet, daß
ein Eingangs-Pixel mit einer bestimmten Bitbreite in einer Time-Sharing-Anordnung empfangen wird, welche die Eingangspixels mit Hilfe nur einer Addiereranordnung horizontal oder vertikal transformiert;
die transformierten Pixels vertikal oder horizontal gedreht werden;
die vertikalen oder horizontalen Pixels mit nur einer Addiereranordnung transformiert werden, und eine einzige Multiplikation an den transformierten Pixels durchgeführt wird, um verdichtete Pixel-Daten zu schaffen, welche die eingegebenen Pixels darstellen.
ein Eingangs-Pixel mit einer bestimmten Bitbreite in einer Time-Sharing-Anordnung empfangen wird, welche die Eingangspixels mit Hilfe nur einer Addiereranordnung horizontal oder vertikal transformiert;
die transformierten Pixels vertikal oder horizontal gedreht werden;
die vertikalen oder horizontalen Pixels mit nur einer Addiereranordnung transformiert werden, und eine einzige Multiplikation an den transformierten Pixels durchgeführt wird, um verdichtete Pixel-Daten zu schaffen, welche die eingegebenen Pixels darstellen.
52. Bildkompressor, gekennzeichnet durch
eine Umformeinrichtung, um eingegangene Bildelemente mit einer bestimmten Bitbreite aufzunehmen und um die eingegebenen Pixels nur mit einer Addiereranordnung in einer Time-Sharing-Anordnung horizontal oder vertikal umzuformen;
eine Transpositions-Speichereinheit, um die horizontal oder vertikal umgeformten Pixels vertikal oder horizontal zu drehen, wobei die Umformeinrichtung eine Einrichtung zum Aufnehmen der vertikalen oder horizontalen Pixels und eine Einrichtung aufweist, um die vertikalen oder horizontalen Pixels mit Hilfe der Addiereranordnung vertikal oder horizontal zu transformieren, und
eine einzige Multipliziereinheit, um die transformierten Pixels aufzunehmen, und um eine einzige Multiplikation an den transformierten Pixels durchzuführen, um verdichtete Pixel-Daten zu schaffen, welche die eingegebenen Pixels darstellen.
eine Umformeinrichtung, um eingegangene Bildelemente mit einer bestimmten Bitbreite aufzunehmen und um die eingegebenen Pixels nur mit einer Addiereranordnung in einer Time-Sharing-Anordnung horizontal oder vertikal umzuformen;
eine Transpositions-Speichereinheit, um die horizontal oder vertikal umgeformten Pixels vertikal oder horizontal zu drehen, wobei die Umformeinrichtung eine Einrichtung zum Aufnehmen der vertikalen oder horizontalen Pixels und eine Einrichtung aufweist, um die vertikalen oder horizontalen Pixels mit Hilfe der Addiereranordnung vertikal oder horizontal zu transformieren, und
eine einzige Multipliziereinheit, um die transformierten Pixels aufzunehmen, und um eine einzige Multiplikation an den transformierten Pixels durchzuführen, um verdichtete Pixel-Daten zu schaffen, welche die eingegebenen Pixels darstellen.
53. Bildverdichtungssystem nach Anspruch 52, dadurch gekennzeichnet, daß
eingegebene Bild-Pixel-Daten, welche ein Bild darstellen, empfangen werden und daß die Umformeinrichtung eine verallgemeinerten Chen-Transformations-(GCT-)Einrichtung zum Komprimieren der Bilddaten aufweist, wobei die GCT-Einrichtung einen GCT-Addierer aufweist, um die Bilddaten nur mit Addierern horizontal umzuformen,
eine Transpositions-Speichereinheit, um die horizontal transformierten Pixels um eine Vertikale zu drehen, wobei der GCT-Addierer eine Einrichtung aufweist, um die vertikalen Pixels nur mit den Addierern vertikal zu transformieren, und
eine Multipliziereinheit, um eine Multiplikation an den transformierten, vertikalen Pixels durchzuführen, um komprimierte Pixel-Daten zu schaffen, welche die Eingangspixels darstellen, wobei der GCT-Addierer eine erste GCT-Addierernetzstufe zum Transformieren der ersten Hälfte der horizontalen und vertikalen Transformationen und eine zweite CCT-Ad dierernetzstufe aufweist, um die zweite Hälfte der horizontalen und vertikalen Trans formationen zu transformieren.
eingegebene Bild-Pixel-Daten, welche ein Bild darstellen, empfangen werden und daß die Umformeinrichtung eine verallgemeinerten Chen-Transformations-(GCT-)Einrichtung zum Komprimieren der Bilddaten aufweist, wobei die GCT-Einrichtung einen GCT-Addierer aufweist, um die Bilddaten nur mit Addierern horizontal umzuformen,
eine Transpositions-Speichereinheit, um die horizontal transformierten Pixels um eine Vertikale zu drehen, wobei der GCT-Addierer eine Einrichtung aufweist, um die vertikalen Pixels nur mit den Addierern vertikal zu transformieren, und
eine Multipliziereinheit, um eine Multiplikation an den transformierten, vertikalen Pixels durchzuführen, um komprimierte Pixel-Daten zu schaffen, welche die Eingangspixels darstellen, wobei der GCT-Addierer eine erste GCT-Addierernetzstufe zum Transformieren der ersten Hälfte der horizontalen und vertikalen Transformationen und eine zweite CCT-Ad dierernetzstufe aufweist, um die zweite Hälfte der horizontalen und vertikalen Trans formationen zu transformieren.
54. Bildverdichtungssystem nach Anspruch 53, dadurch gekennzeichnet, daß die erste
und zweite Addierereinrichtung die Bild-Pixels in einer Time-Sharing-Anordnung horizontal
und vertikal transformiert.
55. Bildverdichtungssystem nach Anspruch 54, dadurch gekennzeichnet, daß die
Multipliziereinheit eine Zickzack-Ordnungseinheit enthält.
56. System nach Anspruch 55, dadurch gekennzeichnet, daß die Multipliziereinrichtung
eine Rundiereinheit enthält.
57. System nach Anspruch 56, dadurch gekennzeichnet, daß die Multipliziereinheit eine
Multipllzier-Tabelleneinheit aufweist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US84376592A | 1992-02-28 | 1992-02-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4306010A1 DE4306010A1 (de) | 1993-09-23 |
DE4306010C2 true DE4306010C2 (de) | 1997-11-06 |
Family
ID=25290953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19934306010 Expired - Fee Related DE4306010C2 (de) | 1992-02-28 | 1993-02-26 | Verfahren und Einrichtung zur digitalen Verarbeitung von Bilddaten |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP3155383B2 (de) |
DE (1) | DE4306010C2 (de) |
GB (1) | GB2264609B (de) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3971135B2 (ja) * | 2001-07-11 | 2007-09-05 | 株式会社テクノマセマティカル | Dct行列分解方法及びdct装置 |
US7123655B2 (en) | 2001-08-09 | 2006-10-17 | Sharp Laboratories Of America, Inc. | Method for reduced bit-depth quantization |
JP4507265B2 (ja) | 2008-06-30 | 2010-07-21 | ルネサスエレクトロニクス株式会社 | 画像処理回路、及びそれを搭載する表示パネルドライバ並びに表示装置 |
US9185423B2 (en) | 2009-02-12 | 2015-11-10 | Zoran (France) S.A. | Frame buffer compression for video processing devices |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5021891A (en) * | 1990-02-27 | 1991-06-04 | Qualcomm, Inc. | Adaptive block size image compression method and system |
US5129015A (en) * | 1990-04-19 | 1992-07-07 | Ricoh Company Ltd. | Apparatus and method for compressing still images without multiplication |
US5319724A (en) * | 1990-04-19 | 1994-06-07 | Ricoh Corporation | Apparatus and method for compressing still images |
US5305399A (en) * | 1990-04-19 | 1994-04-19 | Ricoh Corporation | Two dimensional shift-array for use in image compression VLSI |
JP3336029B2 (ja) * | 1991-01-02 | 2002-10-21 | 株式会社リコー | 画像圧縮用量子化方法及び装置 |
GB2259824B (en) * | 1991-09-19 | 1995-01-18 | Sony Broadcast & Communication | Data compression |
-
1993
- 1993-02-24 JP JP03381393A patent/JP3155383B2/ja not_active Expired - Fee Related
- 1993-02-26 DE DE19934306010 patent/DE4306010C2/de not_active Expired - Fee Related
- 1993-03-01 GB GB9304142A patent/GB2264609B/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB2264609B (en) | 1996-01-10 |
GB9304142D0 (en) | 1993-04-14 |
DE4306010A1 (de) | 1993-09-23 |
JPH0646269A (ja) | 1994-02-18 |
GB2264609A (en) | 1993-09-01 |
JP3155383B2 (ja) | 2001-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4133460C2 (de) | Verfahren zum Verdichten von Bildern | |
DE19819198B4 (de) | Reversible DCT für verlustfreie/verlustbehaftete Kompression | |
DE19534943B4 (de) | Vorrichtung zur Komprimierung unter Verwendung von eingebetteten Kleinwellen | |
DE60308255T2 (de) | 2D-Transformationen zur Bild- und Videokodierung | |
DE19983253B4 (de) | Die Kompression von Farbbildern auf der Grundlage einer zweidimensionalen diskreten Wavelet-Transformation, die ein scheinbar verlustloses Bild hervorbringt | |
DE19626600C2 (de) | Kodierer und Verfahren zum Kodieren | |
DE69922486T2 (de) | Nachbearbeitung von dekomprimierten bildern | |
DE19626615C2 (de) | Verfahren und Apparat zur Kompression, das bzw. der reversible Wavelet-Transformationen und einen eingebetteten Kodestrom verwendet | |
DE69723550T2 (de) | Kodierung und dekodierung von grafischen symbolen | |
DE69737514T2 (de) | System und verfahren zum bearbeiten wellenartiger und umgekehrten wellenartigen transformationen von digitalen daten | |
DE2640140A1 (de) | Verfahren und anordnung zur redundanzvermindernden bildcodierung | |
DE69837430T2 (de) | Verfahren zur datenkompression | |
JP2821489B2 (ja) | 静止画像圧縮処理装置及び方法 | |
DE60119904T2 (de) | Vorrichtung und Verfahren zur Entfernung des Mosaikeffekts in Rohbilddaten im Hinblick auf die Datenkompression | |
DE102015114162A1 (de) | Effiziente Interpolation | |
US6134571A (en) | Implicit DST-based filter operating in the DCT domain | |
DE4408522C2 (de) | Vorrichtung zur Bilddatenverarbeitung und Verfahren zur Verarbeitung von Bilddaten | |
DE19819405B4 (de) | Implementation eines reversiblen eingebetteten Wavelet-Systems | |
WO2002015584A2 (de) | Verfahren zur ganzzahligen approximation von transformationskoeffizienten sowie coder und decoder | |
DE4306010C2 (de) | Verfahren und Einrichtung zur digitalen Verarbeitung von Bilddaten | |
DE3545106C2 (de) | ||
DE69918980T2 (de) | Videokompression mit speicherreduktion, farbrotation und kombinierter signal- und blockrandfilterung | |
DE69636139T2 (de) | Hierarchische Kodierungs- Dekodierungs-Vorrictung mit Speichervorrichtung für ein digitales Bildsignal | |
DE2647774C3 (de) | Schaltungsanordnung zur Kodierung und Dekodierung von Bildern durch Matrizentransformation mit gewichtetem Beitrag mehrerer Bildpunkte zu einem transformierten Bildpunkt | |
EP0929975B1 (de) | Verfahren und anordnung zur vektorquantisierung und zur inversen vektorquantisierung eines digitalisierten bildes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |