DE4306010C2 - Verfahren und Einrichtung zur digitalen Verarbeitung von Bilddaten - Google Patents

Verfahren und Einrichtung zur digitalen Verarbeitung von Bilddaten

Info

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
Application number
DE19934306010
Other languages
English (en)
Other versions
DE4306010A1 (de
Inventor
Martin P Boliek
James D Allen
Steven M Blonstein
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of DE4306010A1 publication Critical patent/DE4306010A1/de
Application granted granted Critical
Publication of DE4306010C2 publication Critical patent/DE4306010C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/124Quantisation

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.
1.0 Theoretische Erörterung der Erfindung
Ein vollständiges System zur Kompression und Rekonstruktion von Bildern erscheint in der nachstehenden Tabelle 1.
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.
1.1 Chen-Algorithmus
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.
1.1.1 Acht-Punkt-(N=8) 1D Chen-Transformationsbeispiel
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).
1.1.2 Chen-Wu (modifiziert) oder parametrierte Transformation
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).
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:
1.2 Die verallgemeinerte Transformation
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],
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
P′h = P(a, b, c, 1/2rh) sind.
Wieder erfolgt die Lösung über den Chen-Wu-Algorithmus.
1.2.1 Chen′s 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.
1.2.2 Chen-Wu-Algorithmus (modifiziert)
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.
1.3 Wahl von Parameterwerten
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.
1.4 Alternative Algorithmen
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.
1.5 Erläuterung der Erfindung
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)
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)
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.
2.0 Detaillierte Beschreibung des (primären) Prozeß Anmerkungen
  • 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.
2.1 Beispiel Pseudo-Code-Ausführungsform
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
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
Die Faktoren g(i′j) sind beabsichtigt, um die Quantisierungs­ vorspannung unabhängig von der Größenwahl zu machen.
5. Durchführen der Vorwärts-GC-Transformation
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:
5. 1 Vorbereiten der Werte
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
5.2 Vorbereiten der Werte
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
5.3 Jedes H(i,j) 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 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
(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
5.4 Vorbereiten der Werte
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)
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
5.5. Vorbereiten der Werte
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)
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
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 -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.
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.
2.2 Erläuterung von Sekundärprozessen
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
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.
2.3 Beispiel komprimiertes Dateiformat
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
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.
2.4 128 Punkte- und 256 Punkte-Transformationen
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
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.
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.
2.5 Beispiel Matrizen Transponierte der Matrix TP
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)
3.0 Beschreibung einer Einrichtung
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.
4.0 Quantisierungs-Multipliziereinheit
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).
4.1 Traditionelle Lösungswege
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.
4.2 Beschreibung der Erfindung
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.
4.3 Vorwärts-Skalierung und Quantisierung
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.
4.4 Inverse Vorskalierung und Dequantisierung
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.
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.
4.5 Leistungserörterung
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.
5.0 Pipeline-Ausführungen der GCT-Transformation 5.1 Hintergrund
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.
5.2 Die Erfindung
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.
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.
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.
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.
DE19934306010 1992-02-28 1993-02-26 Verfahren und Einrichtung zur digitalen Verarbeitung von Bilddaten Expired - Fee Related DE4306010C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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