DE19534943A1 - Vorrichtung zur Komprimierung unter Verwendung von eingebetteten Kleinwellen - Google Patents
Vorrichtung zur Komprimierung unter Verwendung von eingebetteten KleinwellenInfo
- Publication number
- DE19534943A1 DE19534943A1 DE19534943A DE19534943A DE19534943A1 DE 19534943 A1 DE19534943 A1 DE 19534943A1 DE 19534943 A DE19534943 A DE 19534943A DE 19534943 A DE19534943 A DE 19534943A DE 19534943 A1 DE19534943 A1 DE 19534943A1
- Authority
- DE
- Germany
- Prior art keywords
- result
- data
- bit
- coefficients
- coefficient
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/148—Wavelet transforms
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/15—Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/156—Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/162—User input
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/167—Position within a video image, e.g. region of interest [ROI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/1883—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/36—Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
- H04N19/635—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
- H04N19/64—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
- H04N19/645—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission by grouping of coefficients into blocks after the transform
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
- H04N19/64—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
- H04N19/647—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/98—Adaptive-dynamic-range coding [ADRC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6377—Control signals issued by the client directed to the server or network components directed to server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/115—Selection of the code volume for a coding unit prior to coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Discrete Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Image Processing (AREA)
- Complex Calculations (AREA)
Description
Die vorliegende Erfindung bezieht sich auf den technischen Bereich der Datenkom
pressions- und -dekompressionssysteme; insbesondere bezieht sich die vorliegende
Erfindung auf ein Verfahren und eine Vorrichtung zur verlustfreien und verlustbehafte
ten Codierung und Decodierung von Daten in Kompressions-/Dekompressionssystemen
wie sie durch die unabhängigen Patentansprüche 1, 2, 4, 9, 12 und 16 umschrieben sind.
Die Datenkompression ist ein äußerst nützliches Werkzeug zum Speichern und Über
tragen großer Datenmengen. Zum Beispiel wird die zur Übertragung eines Bildes, wie
etwa eine Faksimileübertragung eines Dokuments, erforderliche Zeit stark reduziert,
wenn eine Kompression verwendet wird, um die Anzahl der Bits, die erforderlich ist,
um das Bild wiederherzustellen, verringert wird.
Viele verschiedene Datenkompressionstechniken existieren im Stand der Technik. Die
Kompressionstechniken können in zwei größere Kategorien unterteilt werden, ver
lustbehaftete Codierung und verlustlose Codierung. Die verlustbehaftete Codierung
bezieht eine Codierung ein, die einen Verlust an Informationen ergibt, so daß es keine
Garantie für eine perfekte
Wiederherstellung der Originaldaten gibt. Das Ziel der verlustbehafteten Kompression
ist, daß Änderungen der Originaldaten in einer solchen Weise vorgenommen werden,
daß sie nicht zu beanstanden oder bemerkbar bzw. erfaßbar sind. Bei der verlustlosen
Kompression werden sämtliche Informationen zurückbehalten und die Daten werden in
einer Weise komprimiert, die die perfekte Wiederherstellung ermöglicht.
Bei der verlustlosen Kompression werden Eingabesymbole oder Intensitätsdaten in
Ausgabecodewörter umgewandelt. Die Eingabe kann Bilddaten, Audiodaten, eindimen
sionale Daten (z. B. sich räumlich oder zeitlich ändernde Daten), zweidimensionale
Daten (z. B. Daten, die sich in zwei räumlichen Richtungen ändern (oder in eine räumli
che und eine zeitliche Dimension ändern)) oder vieldimensionale/multispektrale Daten
enthalten. Wenn die Kompression erfolgreich ist, werden die Codewörter in weniger
Bits dargestellt als es die Anzahl von Bits für die uncodierten Eingabesymbole (oder
Intensitätsdaten) erfordert. Verlustlose Codierungsverfahren enthalten Wörterbuchver
fahren zur Codierung (z. B. Lempel-Ziv), Lauflängencodieren, aufzählendes Codieren
und Entropiecodieren. Bei der verlustlosen Bildkompression wird die Kompression auf
Vorhersagen oder Kontexte plus Codieren begründet. Der JBIG-Standard für Faksimile
kompression und der DPCM (Differentialpuls-Codemodulation - eine Möglichkeit, bei
dem JPEG-Standard) für Bilder mit kontinuierlichen Tönen sind Beispiele für die
verlustlose Kompression von Bildern. Bei der verlustbehafteten Kompression werden
Eingangssymboldaten oder -intensitätsdaten vor der Umsetzung zu Ausgangscodewörtern
quantisiert. Die Quantisierung beabsichtigt, die relevanten Charakteristiken der Daten zu
erhalten, während unwichtige Charakteristiken eliminiert werden. Vor der Quantisierung
verwenden die verlustbehafteten Systeme häufig eine Transformation, um eine Energie
kompaktierung zur Verfügung zu stellen. JPEG ist ein Beispiel für ein verlustbehaftetes
Codierungsverfahren für Bilddaten.
Neuere Entwicklungen bei der Prozessierung von Bilddaten fahren darin fort, die
Aufmerksamkeit auf eine Notwendigkeit für effiziente und genaue Arten von Datenkom
pressionscodierung zu richten. Verschiedene Arten von Transformationssignalprozessie
rung und/oder pyramidenartiger Signalprozessierung sind vorgeschlagen worden, die
eine Mehrlösungs-Pyramidal-Prozessierung und eine Kleinwellen-Pyramidal-Prozessie
rung umfassen. Auf diese Art wird auch als Unterbandprozessierung und als hierarchi
sche Prozessierung Bezug genommen. Die Kleinwellen-Pyramidal-Prozessierung von
Bilddaten ist eine spezifische Art der Mehrlösungs-Pyramidal-Prozessierung, die Quadra
tur-Spiegelfilter (QMFs) verwenden kann, um eine Unterband-Zergliederung eines
Originalbildes zu erzeugen. Es sei zur Kenntnis genommen, daß andere Arten von
Nicht-QMF-Kleinwellen existieren. Zum Erhalt von mehr Informationen zur Kleinwel
len-Prozessierung siehe Antonini, M., et al. "Image Coding Using Wavelet Transform",
IEEE Transactions on Image Processing, Band 1, Nr. 2, April 1992, Shapiro, J. "An
Embedded Hierachical Image Coder Using Zerotrees of Wavelet Coefficients", Proc.
IEEE Data Compression Conference, Seiten 214-223, 1993.
Ein mit vielen Kleinwellen(wavelet)-Prozessierungen nach dem Stand der Technik
verbundenes Problem ist, daß ein großer Speicher erforderlich ist, um sämtliche Daten
zu speichern, während sie prozessiert bzw. bearbeitet werden. Mit anderen Worten, bei
der Durchführung der Kleinwellen-Prozessierung müssen sämtliche Daten überprüft
werden, bevor eine Codierung der Daten durchgeführt wird. In einem solchen Fall gibt
es keine Datenausgabe, bis mindestens ein voller Durchlauf durch sämtliche Daten
vorgenommen worden ist. Tatsächlich bezieht die Kleinwellen-Prozessierung typischer
weise mehrere Durchläufe durch die Daten ein. Deshalb wird häufig ein großer Speicher
benötigt. Es ist wünschenswert, die Kleinwellen-Prozessierung zu verwenden, während
das Erfordernis nach einem großen Speicher vermieden werden sollte. Darüber hinaus
ist es wünschenswert, die Kleinwellen-Prozessierung nur unter Verwendung eines
einzigen Durchlaufs durch die Daten durchzuführen.
Viele Kleinwellen- oder Unterband-Transformationsumsetzungen erfordern Filter in
einer bestimmten kanonischen Form. Zum Beispiel müssen Tief- und Hochpaßfilter die
gleiche Länge haben, die Summe der Quadrate der Koeffizienten müssen Eins sein, der
Hochpaßfilter muß die zeitliche und frequenzmäßige Umkehrung des Tiefpaßfilters sein
usw. (siehe US-Patent Nr. 5,014,134, erteilt im Mai 1991 an Lawton et al.). Es ist
wünschenswert, eine breitere Klasse von Filtern zu ermöglichen. Das heißt, es ist
wünschenswert, Kleinwellen- oder Subband-Transformationsumsetzungen zur Verfügung
zu stellen, die Tief- und Hochpaßfilter verwenden, die nicht die gleiche Länge haben,
bei denen die Summe der Quadrate der Koeffizienten nicht Eins sein müssen, bei denen
der Hochpaßfilter nicht die zeitliche und frequenzmäßige Umkehrung des Tiefpaßfilters
sein muß, usw.
Die vorliegende Erfindung stellt eine verlustlose und eine verlustbehaftete Kompression
zur Verfügung, die eine Transformation verwendet, die eine gute Energiekompaktierung
bzw. -verdichtung zur Verfügung stellt. Die vorliegende Erfindung stellt auch ein
Modelieren von räumlich/frequenzmäßig verbundenen Bereichsdaten (Kleinwellen-Trans
formationsbereich) zur Verfügung, um eine effiziente Kompression zu ermöglichen.
Auch wird eine progressive Übertragung mit durch den Benutzer nach der Codierung
auswählbarer Rate oder Verzerrung zur Verfügung gestellt.
Die obigen Aufgaben werden durch eine Vorrichtung bzw. ein Verfahren gemäß der
vorliegenden Erfindung, insbesondere gemäß den Patentansprüchen 1, 2, 4, 9, 12 und
16 gelöst. Zweckmäßige Ausführungsformen der Vorrichtung bzw. Vorrichtungen
gemäß der vorliegenden Erfindung bzw. Verfahrensvarianten des Verfahrens gemäß der
vorliegenden Erfindung werden durch die in den Unteransprüchen aufgeführten Merkma
le zur Verfügung gestellt.
Ein Verfahren und eine Vorrichtung zur Codierung und Decodierung von Daten wird
beschrieben. Die vorliegende Erfindung umfaßt ein Verfahren und eine Vorrichtung zum
Erzeugen übertragener Signale in Reaktion bzw. Antwort auf Eingabedaten. Bei einer
Ausführungsform werden transformierte Signale unter Verwendung einer umkehrbaren
bzw. reversiblen Kleinwellen-Transformierung erzeugt. Die vorliegende Erfindung
enthält auch ein Verfahren und eine Vorrichtung zum Komprimieren der transformierten
Signale in Daten, die eine verlustlos komprimierte Version der Eingabedaten darstellen.
Gemäß einer Ausführungsform zerlegt die vorliegende Erfindung die Eingabedaten unter
Verwendung eines umkehrbaren bzw. reversiblen Filters mit nicht minimierter Länge.
Die Zerlegung kann unter Verwendung mehrerer bzw. multipler eindimensionaler Filter
durchgeführt werden.
Die vorliegende Erfindung umfaßt auch ein Verfahren und eine Vorrichtung zur Durch
führung einer eingegrabenen bzw. vergrabenen Codierung der transformierten Signale.
Die vergrabene bzw. eingebettete Codierung gemäß der vorliegenden Erfindung umfaßt
das Ordnen der Reihen von Koeffizienten und die Durchführung eines bit-signifikanten
Einbettens bzw. Vergrabens für die transformierten Signale.
Die vorliegende Erfindung enthält auch ein Verfahren und eine Vorrichtung zur Dekom
primierung der verlustfrei komprimierten Version der Eingabedaten in transformierte
Signale. Die vorliegende Erfindung stellt auch die verlustbehaftete Kompression von
Eingabesignalen durch Abschneiden von verlustlos komprimierten Daten zur Verfügung.
Die vorliegende Erfindung umfaßt auch ein Verfahren und eine Vorrichtung zum
Erzeugen der Eingangsdaten aus den transformierten Signalen in eine rekonstruierte
Version der Eingangsdaten unter Verwendung einer inversen reversiblen Kleinwellen-
Transformation.
Nachfolgend wird die vorliegende Erfindung unter Bezugnahme auf Beispiele und ohne
Einschränkungen in den Figuren der beigefügten Darstellung wiedergegeben, in denen
sich gleiche Bezugsziffern auf gleiche bzw. entsprechende Elemente beziehen, und in
denen
Fig. 1A ein Blockdiagramm einer Ausführungsform eines Codierungsabschnitts
des Codierungssystems nach der vorliegenden Erfindung ist.
Fig. 1B ein Blockdiagramm einer Ausführungsform des bit-signifikanten Ein
bettens bzw. Vergrabens nach der vorliegenden Erfindung ist.
Fig. 2A ein Blockdiagramm eines Kleinwellen-Analyse-/-Synthesesystems ist.
Fig. 2B vorwärts gerichtete und rückwärts gerichtete Darstellungen von Trans
formationssystemen zum Filtern mit nicht überlappten reversiblen Filtern
minimaler Länge darstellt.
Fig. 3A-D Ergebnisse der Durchführung einer Zerlegung auf vier Niveaus bzw. in
vier Stufen darstellt.
Fig. 4A ein Blockdiagramm einer Pyramidal-Transformation in vier Niveaus bzw.
vier Stufen ist.
Fig. 4B ein Blockdiagramm einer zweidimensionalen Transformation in zwei
Stufen bzw. auf zwei Niveaus ist.
Fig. 4C ein Blockdiagramm ist, das eindimensionale Filter darstellt, die eine
Dekompression mit Mehrfachauflösung durchführen.
Fig. 4D ein Blockdiagramm eines Systems ist, das reversible Kleinwellen gemäß
der Erfindung verwendet.
Fig. 4E Blockdiagramme von Verstärkungs- und Analysesystemen, die die rever
siblen Kleinwellen gemäß der vorliegenden Erfindung verwenden.
Fig. 5 eine Baumstruktur auf bzw. für Kleinwellen-Koeffizienten darstellt.
Fig. 6A und 6A (fortgesetzt) ein Flußdiagramm einer Ausführungsform der Einzellisten-
Nullbaum-Modellierung zur Codierung gemäß der vorliegenden Erfindung
ist.
Fig. 6B und 6B (fortgesetzt) ein Flußdiagramm einer Ausführungsform der Einzellisten-
Nullbaum-Modellierung zur Codierung gemäß der vorliegenden Erfindung
unter Verwendung eines verringerten Flag-Speichers ist.
Fig. 6C ein Flußdiagramm einer Ausführungsform einer Einzellisten-Nullbaum-
Modellierung zum Decodieren gemäß der vorliegenden Erfindung ist.
Fig. 6D ein Flußdiagramm einer Ausführungsform der Einzellisten-Nullbaum-
Modellierung zum Decodieren gemäß der vorliegenden Erfindung unter
Verwendung eines verringerten Flag-Speichers ist.
Fig. 7A ein Flußdiagramm einer Ausführungsform des horizontalen bzw. Hori
zontmodellierens zum Decodieren gemäß der vorliegenden Erfindung
unter Verwendung eines verkleinerten bzw. verringerten Flag-Speichers
ist.
Fig. 8A ein Flußdiagramm einer Ausführungsform des B-Durchlaufs zur Codie
rung gemäß der vorliegenden Erfindung ist.
Fig. 8B ein Flußdiagramm einer Ausführungsform des B-Durchlaufs zur Codie
rung gemäß der vorliegenden Erfindung unter Verwendung eines ver
ringerten bzw. reduzierten Flag-Speichers ist.
Fig. 9A ein Flußdiagramm einer Ausführungsform des B-Durchlaufs zum Deco
dieren gemäß der vorliegenden Erfindung ist.
Fig. 9B ein Flußdiagramm einer Ausführungsform des B-Durchlaufs zum Deco
dieren gemäß der vorliegenden Erfindung unter Verwendung eines ver
ringerten bzw. reduzierten Flag-Speichers ist.
Fig. 10 eine Ausführungsform des Vorwärts-Kleinwellenfilters gemäß der vor
liegenden Erfindung ist.
Fig. 11 ein Blockdiagramm einer Ausführungsform eines umgekehrten Kleinwel
lenfilters gemäß der vorliegenden Erfindung ist.
Fig. 12 ein Bild und Koeffizienten in einem Zeilenpuffer für eine Pyramidal-
Zerlegung auf vier Niveaus bzw. in vier Stufen darstellt.
Fig. 13 ein Blockdiagramm einer Ausführungsform des Kleinwellenfilterns unter
Verwendung einer Filtersteuereinheit ist.
Fig. 14 ein Blockdiagramm einer anderen Ausführungsform einer Kleinwellenfil
terung unter Verwendung einer Filtersteuereinheit ist.
Fig. 15 die Zuordnung von Speichergruppen bzw. Speicherbänken darstellt, um
einen horizontalen und einen vertikalen Zugriff zu unterstützen.
Fig. 16 den Filterbetrieb für eine Zerlegung in zwei Niveaus bzw. zwei Stufen
darstellt.
Fig. 17 ein Blockdiagramm einer Ausführungsform des Kontextmodells gemäß
der vorliegenden Erfindung ist.
Fig. 18 ein Blockdiagramm einer Ausführungsform der Vorzeichen- bzw. Zei
chen-/Größenordnungseinheit gemäß der vorliegenden Erfindung ist.
Fig. 19 ein Blockdiagramm einer Ausführungsform der Größenordnungs-Spei
chereinheit gemäß der vorliegenden Erfindung ist.
Fig. 20 ein Blockdiagramm einer Ausführungsform der Wertigkeits- bzw. Wich
tigkeitseinheit gemäß der vorliegenden Erfindung ist.
Fig. 21 ein Blockdiagramm einer Ausführungsform der Baum-Speichereinheit
gemäß der vorliegenden Erfindung ist.
Fig. 22 ein Blockdiagramm einer Ausführungsform der Koeffizientenverschiebung
gemäß der vorliegenden Erfindung ist.
Fig. 23 ein Blockdiagramm einer alternativen Ausführungsform der Wertigkeits
bzw. Wichtigkeitseinheit gemäß der vorliegenden Erfindung ist, unter
Verwendung einer Ausrichtung bzw. einem Abgleich um bzw. auf 1,5.
Fig. 24 die dynamische Zuweisung vom Speicher mit codierten Daten für einen
Durchlaufbetrieb darstellt.
Fig. 25A und B ein Flußdiagramm einer Ausführungsform des Co
dierungsverfahrens nach der vorliegenden Erfindung ist.
Fig. 26A und B ein Flußdiagramm der Decodierung nach einer
Ausführungsform des Decodierungsverfahrens gemäß der vorliegenden
Erfindung ist.
Fig. 27A und B ein Flußdiagramm einer Ausführungsform des
Verfahrens zur Modellierung jedes Koeffizienten sowohl für das Codie
rungs- als auch das Decodierungsverfahren gemäß der vorliegenden
Erfindung ist.
Fig. 28A und B Flußdiagramme einer alternativen Ausführungs
form des Codierungsverfahrens gemäß der vorliegenden Erfindung ist.
Fig. 29A und B ein Flußdiagramm einer alternativen Ausfüh
rungsform des Decodierungsverfahrens gemäß der vorliegenden Erfin
dung ist.
Fig. 30A und B ein Flußdiagramm einer alternativen Ausfüh
rungsform des Verfahrens zur Modellierung jedes Koeffizienten in den
Codierungs- und Decodierungsverfahren gemäß der vorliegenden Erfin
dung ist.
Fig. 31 eine Ausführungsform des Multiplizierers bzw. Vervielfachers für das
Frequenzband ist, das für die Koeffizientenzuordnung bzw. -ausrichtung
gemäß der vorliegenden Erfindung verwendet wird.
Ein Verfahren und eine Vorrichtung zur Kompression und Dekompression wird hier
nachfolgend beschrieben. In der nachfolgenden detaillierten Beschreibung der vor
liegenden Erfindung werden zahlreiche spezifische Einzelheiten zum Ausdruck gebracht,
wie etwa Arten von Codierereinrichtungen, Anzahlen von Bits, Namen von Signalen
usw., um ein tiefgehendes Verständnis der vorliegenden Erfindung zu ermöglichen.
Jedoch wird es für den Fachmann klar werden, daß die vorliegende Erfindung ohne
diese spezifischen Einzelheiten in die Tat umgesetzt werden kann. In anderen Beispielen
werden wohlbekannte Konstruktionen und Vorrichtungen eher in Blockdiagrammform
als in Einzelheiten gezeigt, um eine Verundeutlichung der vorliegenden Erfindung zu
vermeiden.
Einige Abschnitte der detaillierten Beschreibung werden in Ausdrücken von Algorithmen
und von symbolischen Darstellungen von Operationen auf Datenbits innerhalb eines
Computerspeichers präsentiert. Diese algorithmischen Beschreibungen und Darstellungen
sind die Mittel, die von den Fachleuten auf dem Gebiet der Datenverarbeitung ver
wendet werden, um den Gegenstand ihrer Tätigkeit anderen Fachleuten am effektivsten
zuzutragen. Ein Algorithmus wird hier und im allgemeinen als eine selbstkonsistente
Folge von Schritten zu verstehen sein, die zu einem gewünschten Ergebnis führt. Die
Schritte sind derartig, daß sie physikalische Manipulationen und physikalische Größen
erfordern. Üblicherweise haben diese Größen die Form von elektrischen oder magneti
schen Signalen, die geeignet sind, gespeichert, übertragen, kombiniert, verglichen und
auf andere Weise manipuliert zu werden, obwohl dies nicht notwendig ist. Es hat sich
zur Zeit prinzipiell aus Gründen der üblichen Verwendungen als günstig erwiesen, auf
diese Signale als Bits, Werte, Elemente, Symbole, Schriftzeichen, Ausdrücke, Nummern
bzw. Zahlen oder dergleichen Bezug zu nehmen.
Es sollte jedoch beachtet werden, daß all diese und ähnliche Ausdrücke mit den ange
messenen physikalischen Größen in Verbindung zu sehen sind und nichts weiter als
geeignete Oberbegriffe sind, die diesen Größen zugeordnet sind. Wenn es nicht beson
ders anders ausgesagt wird, wie aus der nachfolgenden Erörterung klar wird, ist es
bevorzugt, daß für die gesamte vorliegende Erfindung Erörterungen, die Ausdrücke, wie
etwa "Prozessieren" oder "Berechnen" bzw. "Veranschlagen" oder "Kalkulieren" oder
"Bestimmen" oder "Anzeigen" oder dergleichen, verwenden, sich auf Tätigkeiten oder
Prozesse eines Computersystems oder ähnliche bzw. gleiche elektronische Computer
einrichtungen beziehen, die Daten, die als physikalische (elektronische) Größen in
nerhalb der Register und Speicher des Computersystems dargestellt werden, in andere
ähnliche bzw. vergleichbar dargestellte Daten als physikalische Größen innerhalb des
Speichers oder Registers des Computersystems oder anderer solcher Informationsspei
cher, Übertragungs- oder Wiedergabeeinrichtungen manipulieren und übertragen.
Die vorliegende Erfindung bezieht sich auch auf eine Vorrichtung zur Durchführung der
Operationen hierin. Die Vorrichtung kann für die erforderlichen Zwecke besonders
aufgebaut sein oder sie kann einen Computer für allgemeine Zwecke umfassen, der
selektiv aktiviert oder durch ein Computerprogramm, das in dem Computer gespeichert
ist, rekonfiguriert werden. Die Algorithmen und Anzeigen, die hierin dargestellt wer
den, sind nicht inhärent auf bestimmte Computer oder andere Vorrichtungen bezogen.
Verschiedene Vorrichtungen für allgemeine Zwecke können mit diesen Programmen in
Übereinstimmung mit den Lehren hierin verwendet werden, oder es kann sich als
bevorzugt erweisen, spezialisiertere Vorrichtungen aufzubauen, um die erforderlichen
Verfahrensschritte durchzuführen. Die erforderliche Konstruktion für verschiedene
dieser Vorrichtungen wird aus der nachfolgenden Beschreibung erscheinen. Zusätzlich
wird die vorliegende Erfindung nicht unter Bezugnahme auf irgendeine bestimmte
Programmiersprache beschrieben. Es wird zu bevorzugen sein, daß viele verschiedene
Programmiersprachen verwendet werden können, um die Lehren der Erfindung in die
Tat umzusetzen, wie sie hierin beschrieben wird.
Nachfolgend wird ein Überblick über die Erfindung gegeben. Die vorliegende Erfindung
stellt ein Kompressions-/Dekompressionssystem zur Verfügung, das einen Codierungs
abschnitt und einen Decodierungsabschnitt aufweist. Der Codierungs- bzw. Verschlüsse
lungsabschnitt ist für die Codierung von Eingabe- bzw. Eingangsdaten verantwortlich,
um komprimierte Daten zu erzeugen, während der Decodierungsabschnitt für die
Decodierung zuvor codierter Daten zuständig ist, um eine rekonstruierte bzw. wieder
aufgebaute Version der Originaleingabedaten zu erzeugen. Die Eingabedaten können
verschiedene Datentypen aufweisen, wie etwa Bilddaten (stehende oder Videodaten),
Audiodaten usw. In einer Ausführungsform sind die Daten digitale Signaldaten; jedoch
sind analog digitalisierte Daten, Textformatdaten und andere Formate möglich. Die
Quelle der Daten kann ein Speicher oder Kanal für den Codierungsabschnitt und/oder
den Decodierungsabschnitt sein.
In der vorliegenden Erfindung können Elemente des Codierungsabschnittes und/oder des
Decodierungsabschnittes in Hardware oder Software umgesetzt werden, so wie sie für
ein Computersystem verwendet werden. Die vorliegende Erfindung stellt ein verlust
freies Kompressions-/Dekompressionssystem zur Verfügung. Die vorliegende Erfindung
kann auch konfiguriert werden, um eine verlustbehaftete Kompression/Dekompression
durchzuführen.
Die Fig. 1A ist ein Blockdiagramm einer Ausführungsform des Codierungsabschnitts des
Systems. Man beachte, daß der Decodierungsabschnitt des Systems in der umgekehrten
Ordnung gleichermaßen mit dem Datenfluß operiert. Bezugnehmend auf Fig. 1 werden
Eingabebilddaten 101 durch den Kleinwellen-Übertragungsblock 102 empfangen. Der
Ausgang des Kleinwellen-Übertragungsblocks 102 wird zu einem Bit-Wichtungs-Einbet
tungsblock 103 gekoppelt. In Antwort auf die Ausgabe von dem Kleinwellen-Über
tragungsblock 102 erzeugt der Bit-Wichtungs-Einbettungsblock 103 mindestens einen
Bitstrom, der durch einen Entropiecodierer 104 empfangen wird. In Antwort auf die
Eingabe von der Bit-Wichtungs-Einbettung 103 erzeugt der Entropiecodierer 104 einen
Codestrom 107.
In einer Ausführungsform weist eine Zeichen-Größenordnungs-Formatierungseinheit 109
ein frequenzbasierendes Kontextmodell 105 und ein verbundenes Raum-/Frequenz-
Kontextmodell 106, wie in Fig. 1B gezeigt, auf. In einer Ausführungsform weist das
verbundene Raum-/Frequenz-Kontextmodell 106 ein Horizontal-Kontextmodell auf. In
einigen Ausführungsformen weist ein frequenzbasierender Kontextmodellblock 105 ein
Nullbaum-Modell auf. In einer anderen Ausführungsform weist das frequenzbasierende
Kontextmodell 105 ein Wichtungsbaummodell auf. Die Zeichen-Größenordnungseinheit
109, das frequenzbasierende Kontextmodell 105 und das verbundene Raum-/Fre
quenz(JSF)-Kontextmodell 106 führen in der vorliegenden Erfindung eine Bit-Wich
tungs-Einbettung durch. Die Eingabe der Zeichen-Größenordnungseinheit 109 wird zu
dem Ausgang des Kleinwellen-Transformations-Codierungsblocks 102 gekoppelt. Der
Ausgang der Zeichen-Größenordnungseinheit 109 wird zu einem Schalter 108 gekoppelt
bzw. übertragen. Der Schalter 108 wird gekoppelt, um den Ausgang der Zeichen-
Größenordnungseinheit 109 zu einem Eingang entweder eines frequenzbasierenden
Modellierungsblocks 105 oder eines verbundenen Raum-/Frequenz-Modellierungsblocks
106 zur Verfügung zu stellen. Der Ausgang des frequenzbasierenden Codierungsblocks
105 und des Horizontal-Ordnungs-Codierungsblocks 106 werden zu dem Eingang des
Entropiecodierers 104 gekoppelt. Der Entropiecodierer 104 erzeugt den Ausgangscode
strom 107.
Zurückgehend auf Fig. 1A werden gemäß der vorliegenden Erfindung die Bilddaten 101
empfangen und unter Verwendung reversibler Kleinwellen im Kleinwellen-Transforma
tionsblock 102, wie später unten bestimmt wird, codiert transformiert, um eine Reihe
von Koeffizienten zu erzeugen, die eine Mehrfachauflösungs-Zerlegung des Bildes
darstellen. Diese Koeffizienten werden durch die Bit-Wichtungs-Einbettung 103 empfan
gen.
Die Wichtungs-Einbettung 103 fordert an und konvertiert die Koeffizienten in ein
Zeichen-Größenordnungsformat und basierend auf ihrer Wichtung (wie unten später
beschrieben wird) werden die formatierten Koeffizienten einer Kombination von ver
schiedenen Einbettungs-Modellierungsverfahren ausgesetzt. Gemäß der vorliegenden
Erfindung werden die formatierten Koeffizienten einem von zwei Einbettungs-Modellie
rungsverfahren ausgesetzt (z. B. frequenzbasierendem Modellieren und JSF-Modellieren).
In einer Ausführungsform werden die formatierten Koeffizienten entweder einem
frequenzbasierenden Modellieren oder einer verbundenen Raum-/Frequenz-Modellierung
ausgesetzt. Wenn die eingegebenen Daten Bilddaten aufweisen, die mehrere Bitebenen
haben, werden gemäß der vorliegenden Erfindung eine Anzahl von Bitebenen mit
frequenzbasierender Modellierung codiert, während die verbleibenden Bitebenen mit
JSF-Modellierung codiert werden. Die Entscheidung, welches Verfahren für welche
Bitebenen verwendet wird, kann ein vom Benutzer bestimmter Parameter bzw. ein
Benutzerparameter sein. In einer Ausführungsform werden die Bitebenen höherer
Ordnung von Koeffizienten angefordert und codiert mit der frequenzbasierenden Model
lierung nach der vorliegenden Erfindung. In dem frequenzbasierenden Kontext-Modell
verfahren nach der vorliegenden Erfindung bezieht sich die Vorhersage der Wichtung
bzw. Wertigkeit der Koeffizientenbits auf die Pyramidal-Struktur der Klein- bzw.
Unterwellen. Die Koeffizienten-Bitebenen niederer Ordnung werden geordnet und mit
dem verbundenen Raum-/Frequenz-Kontextmodell nach der vorliegenden Erfindung
codiert. Das JSF-Modellieren, z. B. das Horizontal-Modellieren, stellt gegenüber dem
frequenzbasierenden Codieren von Bitebenen, die weniger im Hinblick auf die Frequenz
bereich-Koeffizientverhältnisse korreliert sind, Vorteile zur Verfügung.
Das Ergebnis von Bit-Wichtungs-Einbettung sind Entscheidungen (oder Symbole), die
durch den Entropiecodierer zu codieren sind. In einer Ausführungsform werden sämtli
che Entscheidungen zu einem einzigen Codierer geleitet. In einer anderen Ausführungs
form werden Entscheidungen durch Wichtung beschriftet bzw. bewertet, und Entschei
dungen für jeden Wichtungspegel werden durch verschiedene (physikalische oder
virtuelle) Mehrfachcodierer verarbeitet.
Die Bitströme, die aus dem frequenzbasierenden Kontext-Modellblock 105 und dem JSF-
Kontext-Modellblock 106 resultieren, werden in der Ordnung ihrer Wichtung unter
Verwendung des Entropiecodierers 104 codiert. In einer Ausführungsform weist der
Entropiecodierer 104 einen Binär-Entropiecodierer auf. In einer Ausführungsform weist
der Entropiecodierer 104 einen Q-Codierer, einen B-Codierer, der in dem US-Patent Nr.
5,272,478 definiert ist, oder einen Codierer, wie etwa in der US-Patentanmeldung mit
der Serial-Nr. 08/016,035 beschrieben ist, betitelt mit "Method and Apparatus for
Parallel Decoding and Encoding of Data", angemeldet am 10. Februar 1993, auf. Für
mehr Informationen zu dem Q-Codierer, siehe Pennebaker, W.B., et al. "An Overview
of the Basic Principles of the Q-coder Adaptive Binary Arithmetic", IBM Journal of
Research and Development, Vol. 32, Seiten 717-26, 1988. In einer Ausführungsform
erzeugt ein einzelner Codierer einen einzelnen Ausgangscodestrom. In einer anderen
Ausführungsform erzeugen mehrere (physikalische oder virtuelle) Codierer mehrere
(physikalische oder virtuelle) Datenströme.
Die vorliegende Erfindung führt anfänglich eine Zerlegung eines Bildes (in der Form
von Bilddaten) oder anderer Datensignale unter Verwendung reversibler Klein- bzw.
Unterwellen durch. Gemaß der vorliegenden Erfindung weist eine reversible Klein- bzw.
Nebenwellen-Transformation eine Umsetzung eines genauen Wiederherstellungssystems
in ganzzahliger Arithmetik auf, so daß ein Signal mit ganzzahligen Koeffizienten
verlustfrei zurückgewonnen werden kann. Unter Verwendung reversibler Kleinwellen ist
die vorliegende Erfindung auch dazu in der Lage, eine verlustfreie Kompression mit
endlicher Präzisionsarithmetik zur Verfügung zu stellen. Die Ergebnisse, die durch
Anwenden der reversiblen Kleinwellen-Transformation auf die Bilddaten erzeugt wer
den, sind eine Reihe von Koeffizienten. In einer Ausführungsform der vorliegenden
Erfindung wird die reversible Kleinwellen-Transformation unter Verwendung einer Ein
stellung von Filtern in die Tat umgesetzt. Gemäß einer Ausführungsform sind die Filter
ein Tiefpaßfilter mit zwei Gängen bzw. Abgriffen oder Transformatorstufen ("two-tap")
und ein Hochpaßfilter mit sechs Abgriffen bzw. Abzweigen oder Transformierungs
stufen. In einer Ausführungsform werden diese Filter nur unter Verwendung von
Additions- und Subtraktionsoperationen (und verdrahteter Bitverschiebung) in die Tat
umgesetzt. Auch erzeugt der Hochpaßfilter gemäß der vorliegenden Erfindung seinen
Ausgang unter Verwendung der Ergebnisse des Hochpaßfilters. Die sich ergebenden
Hochpaßkoeffizienten sind nur ein paar Bits größer als die Bildpunktauflösung und die
Tiefpaßkoeffizienten sind die gleichen wie die Bildpunktauflösung. Weil nur die Tiefpaß
koeffizienten wiederholt in einer pyramidalen Zerlegung gefiltert werden, wird die
Auflösung nicht in mehrstufige bzw. mehrpegelige Zerlegungen erweitert.
Ein Kleinwellen-Transformationssystem wird durch ein Paar von FIR-Analysefiltern
h₀(n), h₁(n) bestimmt und ein Paar von FIR-Synthesefiltern g₀(n), g₁(n) definiert. Gemäß
der vorliegenden Erfindung sind h₀ und g₀ die Tiefpaßfilter und h₁ und g₁ sind die
Hochpaßfilter. Ein Blockdiagramm des Kleinwellensystems ist in Fig. 2A gezeigt.
Bezugnehmend auf Fig. 2A werden für ein Eingangssignal x(n) die Analysefilter h₀ und
h₁ angelegt und die Ausgänge werden um 2 verringert (kritisches Subabtasten), um die
transformierten Signale y₀(n) und y₁(n) zu erzeugen, auf die hierin als Tiefpaß- bzw.
Hochpaßkoeffizienten Bezug genommen wird. Die Analysefilter und ihre entsprechend
verringerten oder unterabgetasteten Blöcke bilden den Analyseabschnitt des Kleinwellen-
Transformationssystems. Der Codierer/Decodierer enthält sämtliche Verarbeitungslogik
und -routinen bzw. -prozeduren, die in dem transformierten Bereich durchgeführt
werden (z. B. Vorhersage, Quantisierung, Codierung etc.). Das in Fig. 2A gezeigte
Kleinwellensystem enthält auch einen Syntheseabschnitt, indem die Transformations
signale um 2 aufwärts abgetastet sind (z. B. wird nach jedem zweiten Ausdruck eine Null
eingefügt) und anschließend durch die Synthesefilter g₀(n) und g₁(n) hindurchgeführt.
Die Tiefpaßkoeffizienten y₀(n) werden durch den Tiefpaßsynthesefilter g₀ und das
hochpaßgefilterte y₁(n) wird durch Hochpaßfilter g₁ hindurchgeführt. Der Ausgang der
Filter g₀(n) und g₁(n) wird zur Erzeugung von (n) kombiniert.
Während in einigen Ausführungsformen Ab- und Aufwärtsabtastung durchgeführt
werden, werden in anderen Ausführungsformen Filter verwendet, so daß Berechnungen,
die wegen des Ab- und Aufwärtsabtastens unnötig sind, nicht durchgeführt werden.
Das Kleinwellensystem kann in Ausdrücken von Z-Transformationen beschrieben
werden, wobei X(Z), (Z) die Eingangs- bzw. Ausgangssignale sind, wobei Y₀(Z),
Y₁(Z) die Tiefpaß- und Hochpaß-Transformationssignale sind, H₀(Z), H₁(Z) die Hoch
paß- und die Tiefpaßanalysefilter und schließlich G₀(Z), G₁(Z) die Tiefpaß- und die
Hochpaßsynthesefilter sind. Falls keine Änderung oder Quantisierung in dem Trans
formationsbereich vorkommt, ist der Ausgang (Z) gemäß Fig. 2 gegeben durch
Gemäß der vorliegenden Erfindung wird der zweite Ausdruck von (Z), auf den als
"Faltungs"(aliasing)-Ausdruck Bezug genommen wird, gestrichen bzw. abgeschafft, weil
die Synthesefilter als der Quadraturspiegel bzw. Quertransformationsspiegel der Analy
sefilter definiert sind, nämlich
In den Ausdrücken der Filterkoeffizienten heißt dies
Deshalb lautet der Ausgang eines Quadraturspiegel- bzw. Quertransformationsfilterpaa
res nach der Substitution bzw. Ersetzung:
Folglich wird bei einem Querspiegel- bzw. Quertransformationssystem nach der vor
liegenden Erfindung der Ausgang nur in Ausdrücken der Analysefilter bestimmt. Die
Kleinwellen-Transformation wird rekursiv auf das transformierte Signal angewendet,
indem die durch die Filter erzeugten Ausgänge direkt oder indirekt als Eingänge in die
Filter verwendet werden. Bei der beschriebenen Ausführungsform wird nur die tiefpaß
transformierte Komponente y₀(n) rekursiv bzw. wiederholbar transformiert, so daß das
System pyramidal bzw. in Form einer Pyramide ist. Ein Beispiel eines solchen pyrami
dalen Systems ist in Fig. 4A gezeigt.
Die Z-Transformation ist eine angemessene Notation, um die Operation in Form von
Daten auf Hardware und/oder auf Software auszudrücken. Die Multiplikation mit Z-m
modelliert bzw. stellt dar einen m Verzögerungszeitzyklus bzw. -zeitgeberzyklus in der
Hardware und einen Zugriff auf die Anordnung des m-ten davorliegenden Elements in
der Software. Derartige Umsetzungen von Hardware enthalten Speicher, Rohr- bzw.
Leitungsstufen, Verschieber, Register usw.
Gemäß der vorliegenden Erfindung sind die Signale x(n) und (n) identisch bis zu einer
multiplikativen Konstante und einem Verzögerungsausdruck, nämlich in Ausdrücken der
Z-Transformation
(Z) = cZ-mX(Z).
Dies wird als ein genaues Wiederherstellungssystem bezeichnet. Folglich ist in einer
Ausführungsform gemäß der vorliegenden Erfindung die Kleinwellen-Transformation,
die eingangs auf die Eingabedaten angewendet wird, genau wiederherstellbar.
Eine Ausführungsform gemäß der vorliegenden Erfindung, die die Hadamard-Trans
formation verwendet, ein genaues Wiederherstellungssystem, welches in der normalisier
ten Form die nachfolgende Darstellung in dem Z-Bereich aufweist:
Nach der Ersetzung lautet der Ausgang
(Z) = Z-1X(Z),
welche deutlicherweise eine genaue Wiederherstellung ist. Um mehr Informationen zu
der Hadamard-Transformation zu erhalten, siehe Anil K. Jain, Fundamentals of Image
Processing, Seite 155.
Auf eine reversible bzw. umkehrbare Version der Hadamard-Transformation wird hierin
als die 5-Transformation Bezug genommen. Für mehr Informationen zu der 5-Trans
formation siehe Said, A. und Pearlman, W. "Reversible Image Compression via Multi
resolution Representation and Predictive Coding", Dept. of Electrical, Computer and
Systems Engineering, Renssealaer Polytechnic Institute, Troy, NY 1993. Da die Hada
mard-Transformation eine genaue Wiederherstellungstransformation ist, ist die nachfol
gende unnormierte Version (die sich von der Hadamard-Transformation um konstante
Faktoren unterscheidet) ebenfalls eine genaue Wiederherstellungstransformation:
Es seien die Proben der Eingangssignale als x₀, x₁ gegeben, wobei die S-Transformation
eine reversible bzw. umkehrbare Implementation dieses Systems ist, als
Die Notation bedeutet abzurunden oder zu kürzen bzw. abzuschneiden, und darauf
wird manchmal als "Boden- bzw. Grundfunktion" (floor function) Bezug genommen.
Ähnlich bedeutet die Dach- bzw. Deckenfunktion (ceiling function) , daß auf die
nächste ganze Zahl aufgrundet wird.
Der Beweis, daß diese Implementation bzw. Umsetzung reversibel ist, folgt aus der
Tatsache, daß die einzige Information, die bei der Annäherung verlorengeht, das letzte
signifikante Bit von x(0)+x(1) ist. Aber da die letzten signifikanten Bits von x(0)+x(1)
und x(0)-x(1) identisch sind, kann dies von dem Hochpaßausgang y₁(0) zurückgewonnen
werden. Mit anderen Worten
Die S-Transformation ist eine nicht-überlappende Transformation, die reversible Filter
mit minimaler Länge verwendet. Filter mit minimaler Länge weisen ein Paar von Filtern
auf, wobei sämtliche Filter zwei Abgriffe bzw. Stufen aufweisen. Transformationen mit
minimaler Länge stellen keine gute Energie-Kompaktierung zur Verfügung. Filter mit
minimaler Länge setzen eine nicht-überlappende Transformation in die Tat um, weil die
Länge der Filter gleich der Anzahl der Filter ist. Überlappende Transformationen
verwenden zumindest einen Filter, der eine Länge aufweist, die größer ist als die Anzahl
der Filter. Überlappende Transformationen, die längere Filter verwenden (nicht-minima
ler Länge), können eine bessere Energie-Kompaktierung zur Verfügung stellen. Die
vorliegende Erfindung stellt reversible Filter mit nicht-minimaler Länge zur Verfügung,
die eine überlappende Transformation ermöglichen.
Ein anderes Beispiel eines genauen Wiederherstellungssystems weist die 2/6-(TS)-
Transformation auf, die die Z-Bereich-Definition hat
Nach dieser Substitution lautet der Ausgang
(Z) =2Z-3X(Z),
die eine genaue bzw. exakte Wiederherstellungstransformation ist.
Die rationale, unormierte Version der TS-Transformation weist auf:
Wenn x(0), x(1) . . . x(5) sechs Proben der Signale sind, dann sind die ersten drei
Tiefpaßkoeffizienten y₀(0), y₀(1), y₀(2) und der erste Hochpaßkoeffizient y₁(0) gegeben
durch:
Jedoch ist die direkte Vorwärts-Umsetzung bzw. -Implementation der rationalen unnor
mierten Version der TS-Transformation nicht umgekehrbar. Das folgende Beispiel zeigt,
daß die Implementation lokal nicht umkehrbar ist. Eine längere Folge kann wie ein
Beispiel für den allgemeinen Fall aufgebaut werden. Da -(x(0)+x(1))+(x(4)+x(5))≠
y₀(0)+y₀(2) ist, weil zum Berechnen von y₀(0) und y₀(2) gerundet wird, ist diese Trans
formation unter Verwendung von lokalen Informationen nicht umkehrbar bzw. rever
sibel.
Zum Beispiel, falls x(0)=1,x(1)=1,x(2)=3,x(3)=1,x(4)=1,x(5)=1, dann
und wenn x(0)=1,x(1)=2,x(2)=4,x(3)=1,x(4)=1,x(5)=1, dann
Da y₀(0), y₀(1), y₀(2) und y₀(0) die gleichen für die zwei verschiedenen Sätze von
Eingängen x(0) . . . x(5) sind, ist die Transformation nicht reversibel, da bei gegebenen
y₀(0), . . . y₁(0) nicht aus dieser lokalen Information bestimmt werden kann, welcher der
zwei Sätze eingegeben worden ist. (Man registriere, daß bewiesen werden kann, daß die
Transformation unter Verwendung allgemeiner Informationen von sämtlichen Koeffizien
ten nicht reversibel ist.)
Man ziehe nun eine reversible TS-Transformation in Betracht, auf die hierin als eine
RTS-Transformation Bezug genommen wird, die einen verschiedenen Hochpaßfilterbe
trieb zur Verfügung stellt.
Falls x(0), x(1), x(2), x(3), x(4), x(5) sechs Proben des Signals sind, dann werden die
ersten drei Tiefpaßkoeffizienten y₀(0), y₀(1), y₀(2) und der erste Hochpaßkoeffizient
y₁(0) gegeben durch
Da
ist dann x(2)-x(3) vollständig bekannt. Mit
und x(2)-x(3) und x(2)-x(3), die oben bestimmt sind, können
x(2) und x(3) zurückgewonnen werden, weil die letzten signifikanten Bits von x(0)+x(1)
und x(0)-x(1) identisch sind.
Insbesondere sei
Eine Ausführungsform des Vorwärtsfilters für die RTS-Transformation wird in dem
Anhang A als durch die Programmiersprache "C" umgesetzt gezeigt. Man nehme zur
Kenntnis, daß mathematisch die Gleichung
und die Gleichung:
gleich sind, wenn sie mit einer unendlichen Präzisions-Arithmetik durchgeführt werden.
Der Grund, daß zwei Gleichungen einen reversiblen Filter darstellen, wird klar, wenn
sie physikalisch mit ganzzahliger Arithmetik umgesetzt werden. Beispielhafte Hardware-
Umsetzungen des Tiefpaßfilters und des Hochpaßfilters werden in Verbindung mit den
Fig. 10 und 11 beschrieben.
Man beachte, daß sowohl bei der S-Transformation als auch der RTS-Transformation
der Tiefpaßfilter so umgesetzt ist, daß der Bereich des Eingangssignals x(n) der gleiche
ist, wie das Ausgangssignal y₀(n). Wenn zum Beispiel das Signal ein 8-Bit-Bild ist,
beträgt der Ausgang des Tiefpaßfilters ebenfalls 8 Bits. Für ein pyramidales System ist
dies eine wichtige Eigenschaft, wo der Tiefpaßfilter sukzessive eingesetzt wird, weil in
Systemen nach dem Stand der Technik der Bereich des Ausgangssignals größer ist als
der des Eingangssignals, wodurch sukzessive Anwendungen des Filters schwierig
gemacht werden. Zusätzlich hat der Tiefpaßfilter nur zwei Abgriffe bzw. Stufen, die aus
ihm einen nicht-überlappenden Filter machen. Diese Eigenschaft ist für die Umsetzung
in Hardware wichtig, wie später unten beschrieben wird.
Gemäß einer Ausführungsform wird der Tiefpaßfilter und der Hochpaßfilter unter
Bezugnahme auf die RTS-Transformation wie folgt definiert:
Folglich können die Ergebnisse von den Tiefpaßfiltern zweimal in dem Hochpaßfilter (in
dem ersten und dem dritten Ausdruck bzw. Term) verwendet werden. Folglich ist es nur
erforderlich, zwei andere Additionen durchzuführen, um das Ergebnis des Hochpaßfil
ters zu erlangen.
Viele überlappende reversible Filter mit nicht-minimaler Länge können gemäß der
vorliegenden Erfindung verwendet werden. Derartige Vorwärts- und Invers-Darstellun
gen von dem Transformationssystem zur Filterung mit nicht-überlappenden reversiblen
Filtern minimaler Länge sind in Fig. 2B gezeigt. Zum Beispiel kann die folgende Klasse
von Filtern gemäß der vorliegenden Erfindung verwendet werden. Für eine ganze Zahl
Lz gilt
und
und
Die Länge des Hochpaßfilters beträgt 2L. Wenn L ungerade ist, kann der Filter näher
bei einem symmetrischen Filter sein. Wenn ai, b, ci und k ganze Zahlen bzw. Integer
sind und k b ist, dann ist der Filter reversibel bzw. umkehrbar. Wenn ai, b, ci und k
Potenzen von zwei sind (oder das negative oder das Komplement einer Potenz von
zwei), dann kann die Implementation des Filters vereinfacht werden. Wenn k = b ist
(ungeachtet des Wertes von ai und ci), dann ist der Bereich des Ausgangs des Hoch
paßfilters y₁ minimiert. Für jedes ai, wenn es nur genau ein ci mit ai = -ci gibt, dann
wird der Hochpaßfilter keine Reaktion bzw. Antwort auf einen konstanten Eingangswert
bzw. Eingang haben. Wenn ai-ci wenn j-(L-1)=i ist, dann kann der Filter dichter bei
einem symmetrischen Filter sein.
Eine andere zweckmäßige Eigenschaft ist
Dies bewirkt, daß der Hochpaßfilter keine Reaktion bzw. Antwort auf einen sich linear
ändernden Eingang hat, wenn m=1 und sich der Eingang quadratisch ändert, wenn
m=2 usw., wobei m die momentane Bedingung bzw. der momentane Zustand ist. Diese
Eigenschaft ist der prinzipielle Grund, weshalb die RTS-Transformation eine bessere
Energiekompaktierung hat als die S-Transformation.
Während die Filter die minimalen Zwangsbedingungen bzw. Nebenbedingungen für die
Umkehrbarkeit für verschiedene Anwendungen erfüllen müssen, können Filter verwendet
werden, die keine, einige oder sämtliche der anderen Eigenschaften erfüllen. Bei einigen
Ausführungsformen wird einer der folgenden beispielhaften Hochpaßfilter verwendet.
Die Filter sind in einer Notation aufgeführt, die nur die ganzzahligen Koeffizienten der
rationalen Version des Filters aufführt, um eine Verundeutlichung der Erfindung zu
vermeiden.
Auf den letzten Filter wird als den (zwei/zehn) TT-Filter Bezug genommen und er weist die Eigenschaft auf, daß er keine Reaktion bzw. Antwort auf eine kubisch anwachsende
Funktion hat. Man bemerke, daß dieser Filter mit insgesamt sieben Additionen und
Subtraktionen in die Tat umgesetzt werden kann, da 22= 16+2×3 und 3=2+1 ist.
Die strikten Umkehrbarkeitserfordernisse für Filter können unter Bemerkung des
nachfolgenden entspannt werden. Hochpaßkoeffizienten werden in der gleichen Reihen
folge codiert bzw. decodiert. Bildpunktwerte, die zuvor decodierten Hochpaßkoef
fizienten entsprechen, sind genau bekannt, so daß sie in gegenwärtigen Hochpaßfilterun
gen verwendet werden können. Zum Beispiel kann der folgende Filter verwendet
werden, wenn eine Rasterreihe verwendet wird.
Die Verwendung eines einzelnen festen Hochpaßfilters ist nicht erforderlich. Adaptive
Filter können verwendet werden oder multiple Filter können verwendet werden. Die
Daten, die verwendet werden, um multiple Filter zu adaptieren oder auszuwählen,
müssen auf Daten eingeschränkt werden, die in dem Decodierer vor einer bestimmten
inversen Filterbetätigung verfügbar sind.
Eine Art, um multiple Filter zu verwenden, ist es, die Hochpaßkoeffizienten fortschrei
tend zu verarbeiten. Abwechselnde Hochpaßfilterbetätigungen (y₁(0), y₁(2), y₁(4), . . . )
können zuerst mit einem reversiblen Filter, wie etwa dem RTS-Hochpaßfilter, prozes
siert werden. Die verbleibende Prozessierung (y₁(1), y₁(3), y₁(5), . . . ) kann einen nicht
reversiblen Filter von bis zu sechs Abgriffen bzw. Stufen verwenden, weil die genauen
Werte der Eingänge zu diesem überlappenden Abschnitt des Filters bekannt sind. Zum
Beispiel kann ein beliebiger der folgenden Filter verwendet werden.
In einigen Ausführungsformen kann der Hochpaßfilter durch eine Vorhersage-/Inter
polations-Operation ersetzt werden. Ein Vorhersager/Interpolator kann die Differenz
zwischen einem Paar von Ausgängen vorhersagen, indem beliebige Daten, die in dem
Decodierer vor einer besonderen Vorhersage-/Interpolations-Operation verfügbar sind,
verwendet werden. Die vorhergesagte Differenz wird von der gegenwärtigen Differenz
der Eingänge abgezogen und wird ausgegeben. Gemäß einer Ausführungsform werden
Vorhersageverfahren nach dem Stand der Technik, die in DPCM bei progressivem
Codieren oder Raumbereich-Codieren verwendet werden, benutzt.
Unter Verwendung der Hochpaß- und Tiefpaßfilter nach der vorliegenden Erfindung
wird eine Zerlegung mit mehreren Lösungen durchgeführt. Die Anzahl der Pegel bzw.
Niveaus der Zusammensetzung ist variabel und kann irgendeine Anzahl sein; jedoch
entspricht gegenwärtig die Anzahl der Zerlegungspegel zwei bis fünf Pegeln.
Zum Beispiel wird der erste Pegel bzw. das erste Niveau der Zerlegung auf die feinsten
Einzelheiten oder Auflösungen angesetzt, wenn die reversible Kleinwellen-Transforma
tion rekursiv bzw. wiederholbar auf ein Bild angesetzt wird. Bei einem ersten Zerle
gungsniveau wird das Bild in zwei Subbilder (z. B. Subbänder) zerlegt. Jedes Subband
stellt ein Band räumlicher Frequenzen dar. Die ersten Niveau-Subbänder sind LL₀, LH₀,
HL₀ und HH₀ benannt. Das Verfahren zur Zerlegung des Originalbildes bezieht Unter
abtastung um bzw. durch zwei sowohl in horizontalen als auch in vertikalen Dimensio
nen ein, so daß die ersten Pegel bzw. Niveau-Unterbänder LL₀, LH₀, HL₀ und HH₀
jeweils ein Viertel so viele Koeffizienten haben, wie der Eingang Bildpunkte (oder
Koeffizienten) des Bildes hat, so wie in Fig. 3A gezeigt wird.
Das Unterband LL₀ enthält gleichzeitig horizontale Niederfrequenz- und vertikale
Niederfrequenzinformationen. Üblicherweise wird in diesem Unterband ein großer
Abschnitt der Bildenergie konzentriert. Das Unterband LH₀ enthält horizontale Nieder
frequenz- und vertikale Hochfrequenzinformationen (beispielsweise horizontale Kanten
informationen). Das Unterband HL₀ enthält horizontale Hochfrequenzinformationen und
vertikale Niederfrequenzinformationen (beispielsweise Informationen von vertikalen
Kanten). Das Unterband HH₀ enthält horizontale Hochfrequenzinformationen und
vertikale Hochfrequenzinformationen (z. B. Informationen über Texturen oder diagonale
Kanten).
Jede der nachfolgenden zweiten, dritten und vierten niedrigeren Zerlegungspegel bzw.
-niveaus wird durch Zerlegen der niederfrequenten LL-Unterbänder des vorherigen
Pegels bzw. Niveaus erzeugt. Dieses Unterband LL₀ des ersten Pegels bzw. Niveaus
wird zerlegt, um die Unterbänder LL₁, LH₁, HL₁ und HH₁ des gemäßigten zweiten
Detailpegels bzw. -niveaus zu erzeugen. Ähnlich wird das Unterband LL₁ zerlegt, um
Grobdetailunterbänder LL₂, LH₂, HL₂ und HH₂ des zweiten Niveaus bzw. Pegels zu
erzeugen. Auch wird das Unterband LL₂ zerlegt, um die gröberen Detailunterbände LL₃,
LH₃, HL₃ und HH₃ des dritten Niveaus, wie in Fig. 3D gezeigt, zu erzeugen. Aufgrund
des Unterabtastens um zwei ist jedes zweite Niveau- bzw. Pegelunterband ein Sechzehn
tel der Größe des Originalbildes. Jede Probe bzw. Abtastung (z. B. "pel") stellt bei
diesem Pegel bzw. Niveau eine mittlere Einzelheit bzw. ein mittleres oder gemäßigtes
Detail in dem Originalbild an dem gleichen Ort dar. Ähnlich bzw. gleichermaßen ist
jedes dritte Unterbandniveau bzw. Unterbandpegel 1/64 der Größe des Originalbildes.
Jedes "pel" entspricht bei diesem Niveau bzw. Pegel einem relativ großen Detail in dem
Originalbild an dem gleichen Ort. Auch ist jeder vierte Unterbandpegel bzw. jedes vierte
Unterbandniveau bzw. -pegel 1/256 der Größe des Originalbildes.
Da die zerlegten Bilder wegen der Unterabtastung physikalisch kleiner sind als das
Originalbild, kann der gleiche Speicher, der zur Speicherung der Originaldaten ver
wendet wird, verwendet werden, um sämtliche der zerlegten Unterbänder zu speichern.
Mit anderen Worten, das Originalbild und die zerlegten Unterbänder LL₀ und LL₁
werden ausrangiert und werden nicht in einer Zerlegung in drei Niveaus bzw. Pegel
gespeichert.
Ein Eltern-Kind- bzw. Vorgänger-Nachkomme-Verhältnis existiert zwischen einer Unter
bandkomponente, die ein Grobdetail darstellt, im Verhältnis zu einer entsprechenden
Unterbandkomponente bei dem nächstfeineren Detailniveau bzw. Detailpegel.
Auch wenn nur vier Unterband-Zerlegungspegel gezeigt werden, können in Entspre
chung mit den Erfordernissen eines bestimmten Systems zusätzliche Pegel entwickelt
werden. Auch mit anderen Transformationen, wie etwa DCT oder linear beabstandeten
Unterbändern, können unterschiedliche Eltern-Kind-Verhältnisse bestimmt werden.
Das Verfahren einer Zerlegung mit mehreren Auflösungen kann unter Verwendung eines
Filtersystems durchgeführt werden, wie es etwa in Fig. 4A angedeutet ist. Ein Ein
gabesignal, das ein eindimensionales Signal mit der Länge L darstellt, wird durch
Filtereinheiten 401 und 402 tiefpaß- und hochpaßgefiltert, bevor sie durch zwei Durch
gangseinheiten 403 und 405 unterabgetastet werden. Ein unterabgetastetes Ausgangs
signal von der Einheit 403 wird durch die Einheiten 405 und 406 tiefpaß- und hoch
paßgefiltert, bevor sie durch die Durchgangseinheiten 407 bzw. 408 unterabgetastet
werden. Die Unterbandkomponenten L und H erscheinen an jeweiligen Ausgängen von
Einheiten 407 und 408. Gleichermaßen werden die Ausgangssignale von der Einheit 405
durch die Einheiten 409 und 410 tiefpaß- und hochpaßgefiltert, bevor sie durch die
Einheiten 411 bzw. 412 unterabgetastet werden. Die Unterbandkomponenten L und H
erscheinen an jeweiligen Ausgängen von Einheiten 411 und 412. Wie oben beschrieben,
sind in einer Ausführungsform nach der vorliegenden Erfindung, die bei Unterband-
Zerlegung verwendet wird, digitale Quadraturspiegelfilter bzw. Quertransformations
spiegelfilter, um die horizontalen und vertikalen Frequenzbänder in Niederfrequenz- und
Hochfrequenzbänder aufzuteilen.
Die Fig. 4B stellt eine zweidimensionale zweipegelige Transformation dar. Die Fig. 4C
stellt auch eine zweidimensionale, zweipegelige Transformation dar, die unter Ver
wendung von eindimensionalen Filtern in die Tat umgesetzt ist, wie etwa den in den
Fig. 10 und 11 gezeigten. Die eindimensionalen Filter werden an jeder anderen Stelle
eingesetzt, um Berechnungen zu vermeiden, die durch Unterabtastung unnötig geworden
sind. In einer Ausführungsform unterteilen eindimensionale Filter die Berechnung
zwischen Tiefpaß- und Hochpaßberechnung.
Deshalb stellt die vorliegende Erfindung ein System zur Kompression und Dekom
pression zur Verfügung, indem überlappende reversible Filter mit nicht-minimaler Länge
verwendet werden. Die Fig. 4D ist ein Blockdiagramm einer Ausführungsform eines
solchen Systems. Bezugnehmend auf Fig. 4D wird eingangs eine hierarchische Dekom
pression durchgeführt. Die Ergebnisse der hierarchischen Dekompression werden zu
einem Komprimierer zur Kompression geleitet. Die durchgeführte Kompression kann
eine Vektorquantisierung, eine Skalarquantisierung, eine Nullauf-Längenzählung,
Huffman-Codierung usw. enthalten. Der Ausgang des Komprimierers komprimiert
Daten, die eine komprimierte Version der Originaleingangsdaten darstellt. Ein Dekom
primierer kann die Daten irgendwann in der Zukunft empfangen und die Daten dekom
primieren. Die vorliegende Erfindung führt dann eine umgekehrte Zerlegung unter
Verwendung überlappender reversibler Filter mit nicht-minimaler Länge durch, um eine
wiederhergestellte Version der Originaldaten zu erzeugen.
Die reversiblen Kleinwellen- bzw. Unterwellenfilter nach der vorliegenden Erfindung
können auch bei exemplarischen Analyse- und Verstärkungssystemen verwendet werden,
wie etwa in Fig. 4E gezeigt. Bezugnehmend auf Fig. 4E wird hierarchische Zerlegung
an Eingangsdaten unter Verwendung überlappender reversibler Kleinwellenfilter mit
nicht-minimaler Länge durchgeführt. Die Analyseeinheit empfängt die durch die Filter
erzeugten Koeffizienten und klassifiziert sie zu Entscheidungen, beispielsweise werden
eher als die Koeffizienten vollständig zu codieren, nur relevante Informationen ex
trahiert. Zum Beispiel können in einem Dokumentenarchivierungssystem Leerseiten nur
unter Verwendung des gröbsten Tiefpaß-Unterbandes erkannt werden. Ein anderes
Beispiel wäre es, nur Hochpaßinformationen von einem bestimmten Unterband zu
verwenden, um zwischen Bild und Text und Bildern von natürlichen Landschaften,
Motiven oder dergleichen zu unterscheiden. Die hierarchische Zerlegung kann zur
Registrierung verschiedenster Bilder verwendet werden, so daß zuerst eine Grobregi
strierung mit Grobunterbändern vorgenommen wird. Bei anderen Ausführungsformen
unterliegen die Koeffizienten, gefolgt durch eine inverse Zerlegung, einer Verstärkung
oder Filterung. Verschärfung, Kantenverstärkung, Rausch- bzw. Störsteuerung usw.
können unter Verwendung einer hierarchischen Zerlegung durchgeführt werden. Folglich
stellt die vorliegende Erfindung eine Kleinwellen-Transformation zur Verwendung in
verbundenen Zeit-/Raum- und Frequenzbereichsanalyse- und Filterungs-Verstärkungs
systemen dar.
Gemäß der vorliegenden Erfindung werden die als ein Ergebnis der Kleinwellenzerle
gung erzeugten Koeffizienten entropie-codiert. Gemäß der vorliegenden Erfindung
werden die Koeffizienten anfänglich einer Einbettungscodierung unterzogen, in der die
Koeffizienten in einer visuellen Wichtungsordnung geordnet werden oder, allgemeiner
ausgedrückt, im Hinblick auf einige Fehlermaße bzw. Maßstäbe geordnet werden (z. B.
Verzerrungsmetrik). Fehler- oder Verzerrungsmetriken enthalten Spitzenfehler und
mittlere quadratische Fehler (MSE). Zusätzlich kann ein Ordnen durchgeführt werden,
um der Bitsignifikanz bzw. Bitwichtungsraumanordnung, Relevanz für auf Daten
basierendes Fragen und richtungsorientiert durchzuführen (vertikal, horizontal, diagonal
usw.). Die vorliegende Erfindung verwendet Mehrfacheinbettungs-Codierungstechniken,
in denen ein Abschnitt der Koeffizienten bei einem Wichtungspegel mit einer Codie
rungstechnik codiert wird, während die verbleibenden Koeffizienten mit anderen Techni
ken codiert werden. Gemäß der vorliegenden Erfindung sind auf Frequenzen basierendes
Modellieren und verbundenes Raum-/Frequenz-Modellieren zwei verschiedene Ein
bettungscodierungssysteme, die verwendet werden, um die durch die Kleinwellen-
Transformation nach der vorliegenden Erfindung erzeugten Koeffizienten zu codieren.
Das frequenzbasierende Modellieren bezieht ein, daß eine Anzahl von Koeffizienten bei
höheren Frequenzen, als wenn ein Koeffizient bei einer niedrigeren Frequenz codiert
wird, vorhergesagt werden. Das verbundene Raum-/Frequenz-Modellieren nimmt einen
Vorteil sowohl von den bekannten Frequenzbändern als auch den benachbarten Bild
punkten (oder Daten). Auf eine Ausführungsform der verbundenen Raum-/Frequenz-
Modellierung wird hierin als Horizontal- bzw. Horizontmodellierung Bezug genommen.
Die Daten werden eingangs in Zeichengrößenordnungsformate formatiert, was von dem
Sortieren der Daten auf der Grundlage der Wichtung gefolgt ist. Nachdem die Daten im
Hinblick auf die gegebene Wichtungsmetrik sortiert sind, werden die Daten codiert.
Sowohl das auf Frequenzen basierende Codieren als auch das Horizontalcodieren können
auf Bit-Signifikanzordnung basieren, aber verwenden unterschiedliche Verfahren zum
Codieren der Ereignisse.
Ein digitales Signal x(n) sei angenommen, wobei jedes x(n) mit R-Bits für die Genau
igkeit dargestellt wird, wobei dann die Einbettungscodierung nach der vorliegenden
Erfindung das signifikanteste Bit (oder Bits) für jedes x(n) von dem Signal codiert, dann
das nächstsignifikante Bit (oder Bits) codiert usw. Zum Beispiel könnte in dem Fall des
visuell definierten Ordnens ein Bild, das in dem Zentrum eine bessere Qualität als
entlang der Ecken und nahe der Kanten (wie beispielsweise einige medizinische Bilder)
erfordert, einer solchen Codierung unterzogen werden, daß Bits niederer Ordnung der
zentralen Bildpunkte vor den Bits höherer Ordnung der Umgebungsbildpunkte codiert
werden.
Für ein eingebettetes System, das auf einer Bit-Signifikanzverzerrungsmessung basiert,
werden binäre Werte der Daten nach den Größenordnungen geordnet. In dem Fall, wo
die Werte nicht negative ganze Zahlen (integer) sind, so wie sie im Hinblick auf die
Intensität von Bildpunkten auftreten, ist die Ordnung, die verwendet werden kann, die
Bitebenen-Ordnung (z. B. von der signifikantesten zu der am wenigsten signifikanten
Bitebene). In den Ausführungsformen, in denen komplementäre negative ganze Zahlen
bzw. Integers von zweien ebenfalls erlaubt sind, ist die eingebettete Ordnung des
Zeichenbits die gleiche wie das erste Bit, das nicht Null ist, des absoluten Wertes der
ganzen Zahl. Deshalb wird das Zeichenbit nicht beachtet, bis ein Bit codiert wird, das
nicht Null ist. Als ein Ergebnis werden die möglichen Werte für ein Ereignis in dem
Bit-Signifikanz-Einbettungssystem nach der vorliegenden Erfindung ternär, bevor das
Zeichenbit codiert wird. Die ternären Ereignisse sind "nicht signifikant", "positiv signi
fikant" und "negativ signifikant". Zum Beispiel lautet die 16-Bit-Zahl -7 unter Ver
wendung der Zeichengrößenordnungsnotation:
1000000000000111
Auf einer Bit-Ebenen-Grundlage werden die ersten zwölf Entscheidungen "nicht signifi
kant" lauten. Das erste 1-Bit tritt bei der dreizehnten Entscheidung auf. Die dreizehnte
Entscheidung wird "negativ signifikant" lauten. Nachdem das Zeichenbit codiert ist,
werden die möglichen Ereignisse zu binären verringert, d. h. 0, 1. Die vierzehnte und
die fünfzehnte Entscheidung lauten beide "1".
Bei einer Ausführungsform nach der vorliegenden Erfindung wird eine Liste verwendet,
um sich über die Koeffizienten auf dem laufenden zu halten. In einer Ausführungsform
unterscheidet ein Bit-Flag, auf das hierin als Gruppenflag Bezug genommen wird, das
mit jedem Koeffizienten verbunden ist, Koeffizienten voneinander, deren Zeichenbit bis
jetzt noch nicht mit den Koeffizienten mit den bereits codierten Zeichenbits codiert
worden ist. In einer anderen Ausführungsform können zwei oder mehr Listen anstelle
eines Flag-Bits verwendet werden. In einer anderen Ausführungsform wird eine einzige
Liste ohne ein Flag verwendet.
In einer anderen Ausführungsform werden keine Listen verwendet. Sämtliche Ent
scheidungen für einen Koeffizienten werden erzeugt und durch die Signifikanz bzw.
Wertigkeit benannt bzw. beschriftet, bevor irgendwelche Entscheidungen für den
nächsten Koeffizienten erzeugt werden. Dies eliminiert das Erfordernis zum Speichern
sämtlicher Koeffizienten in der Liste.
Die folgenden Flußdiagramme, die Fig. 25 bis 30, stellen Ausführungsformen des
Codierungs- und Decodierungsverfahrens nach der vorliegenden Erfindung dar.
Die Fig. 25 zeigt ein Flußdiagramm, das eine Codierungstransformation und ein Model
lierverfahren nach der vorliegenden Erfindung darstellt. Bezugnehmend auf Fig. 25
beginnt die Codierungstransformation und das Modellierungsverfahren durch den Erhalt
von Eingangsdaten (Verfahrensblock 2501). Nachdem Eingangsdaten erhalten worden
sind, wendet die vorliegende Erfindung einen reversiblen Kleinwellenfilter an (Ver
fahrensblock 2502).
Als nächstes bestimmt ein Test, wenn ein anderer Pegel der Zerlegung erwünscht ist
(Verfahrensblock 2503). Wenn ein anderer Zerlegungspegel gewünscht wird, wird das
Verfahren beim Verfahrensschritt 2504 fortgesetzt, wo der reversible Filter auf die LL-
Koeffizienten angewendet wird, die aus der unmittelbar davor befindlichen Zerlegung
resultieren und das Verfahren wird hinten beim Verfahrensschritt 2503 fortgesetzt. Auf
diese Weise ermöglicht die vorliegende Erfindung, jede Anzahl von Zerlegungspegeln
bzw. -niveaus durchzuführen.
Wenn ein anderer Zerlegungspegel gewünscht wird, wird das Verfahren bei dem
Verfahrensblock 2506 fortgesetzt, wo das Gruppenflag von jedem Koeffizienten für die
A-Gruppe vorbereitet wird. Nach der Initialisierung bzw. Vorbereitung des Gruppen
flags wird die Bitebene für den A-Durchgang, SA, auf die signifikanteste Bitebene (max)
eingestellt bzw. gesetzt (Verfahrensblock 2507). Als nächstes wird die Bitebene für den
B-Durchgang, SB, auf die nächstsignifikanteste Bitebene (max-1) eingestellt bzw. gesetzt
(Verfahrens- bzw. Verarbeitungsblock 2508).
Anschließend bestimmt ein Test, ob die Bitebene für den A-Durchgang SA mittels einem
frequenzbasierenden Modell codiert werden muß (Verfahrensblock 2509). Wenn die
Bitebene SA mit dem frequenzbasierenden Modell zu codieren ist, wird das Verfahren
bei dem Verfahrensblock 2510 fortgesetzt, wo jeder Koeffizient mit dem frequenzbasie
renden Modell und dem Entropiecode modelliert wird. Andererseits wird das Verfahren
bei dem Verfahrensblock 2511 fortgesetzt, wenn jeder Koeffizient mit einem verbunde
nen Raum-/Frequenz-Modell und einem Entropiecode modelliert wird, wenn die Bit
ebene SA nicht mit dem frequenzbasierenden Modell zu codieren ist.
In jedem Fall wird das Verfahren danach bei dem Verfahrensblock 2512 fortgesetzt, wo
ein Test bestimmt, ob die Bitebene SA größer ist als oder gleich Null ist, wodurch
angezeigt wird, ob es die letzte Bitebene ist. Wenn die Bitebene SA größer als oder
gleich Null ist, zieht das Verfahren eine Schleife zurück zu dem Verfahrensblock 2509.
Andererseits, wenn die Bitebene SA größer als oder gleich Null ist, wird das Verfahren
bei dem Verfahrensblock 2513 fortgesetzt, wo ein Test bestimmt, ob die Bitebene SB
größer als oder gleich Null ist, so daß das Verfahren bestimmt, ob die Bitebene die
letzte Bitebene ist, die einen B-Durchgang zu durchlaufen hat. Wenn die Bitebene SB
größer als oder gleich Null ist, wird das Verfahren bei dem Verfahrensblock 2509
fortgesetzt. Jedoch wird das Verfahren beim Verfahrensblock 2514 fortgesetzt, wo die
codierten Daten entweder auf einen Kanal übertragen oder in einem Speicher gespeichert
werden, wenn die Bitebene SB nicht größer als oder gleich Null ist. Nach dem Speichern
oder Übertragen der codierten Daten endet das Codiertransformations- und Modellie
rungsverfahren nach der vorliegenden Erfindung.
Die Fig. 26 stellt ein Decodiertransformations- und Modellierungsverfahren nach der
vorliegenden Erfindung dar. Bezugnehmend auf Fig. 26 beginnt das Decodiertrans
formations- und Modellierungsverfahren nach der vorliegenden Erfindung mit dem
Wiederauffinden codierter Daten (Verfahrensblock 2601). Die codierten Daten können
von einem Kanal oder Speicher oder einem anderen Übertragungssystem empfangen
werden. Nach dem Wiederauffinden der codierten Daten wird ein Gruppenflag für jeden
Koeffizienten zu der A-Gruppe initialisiert (Verfahrensblock 2602). Nachfolgend zu
dieser Initialisierung wird die Bitebene für den A-Durchgang SA auf die signifikanteste
Bitebene (max) (Verfahrensblock 2603) gesetzt und die Bitebene für den B-Durchgang
SB wird auf die nächstsignifikante Bitebene (max-1) (Verfahrensblock 2604) gesetzt.
Dann wird der Wert jedes Koeffizienten auf einen Anfangswert von Null eingestellt
(Verfahrensblock 2605).
Nach dem Initialisieren des Wertes von jedem Koeffizienten auf Null, bestimmt ein
Test, ob die Bitebene SA mit einem frequenzbasierenden Modell zu decodieren ist oder
nicht (Verfahren 2606). Wenn die Bitebene SA mit einem frequenzbasierenden Modell
zu decodieren ist, setzt das Verfahren beim Verfahrensblock 2607 fort, wo jeder Koeffi
zient mit einem frequenzbasierenden Modell und einer Entropiedecodierung modelliert
wird. Wenn die Bitebene SA nicht mit einem frequenzbasierenden Modell decodiert
wird, wird das Verfahren beim Verfahrensschritt 2608 fortgesetzt, wo jeder Koeffizient
mit einem verbundenen Raum-/Frequenz-Modell und Entropiedecodierung modelliert
wird.
Nachdem jeder Koeffizient modelliert ist, setzt das Verfahren beim Verfahrensblock
2609 fort, wo die Bitebene SA bestimmt, ob es die letzte Bitebene ist, indem geprüft
wird, ob sie größer als oder gleich Null ist. Wenn die Bitebene SA größer als oder gleich
Null ist, wird das Verfahren beim Verfahrensblock 2606 fortgesetzt. Andererseits
bestimmt ein Test, ob die B-Durchgangs-Bitebene SB größer als oder gleich Null ist,
wenn die Bitebene SA nicht größer als oder gleich Null ist (Verfahrensblock 2610),
wodurch angezeigt wird, daß es sich für einen B-Durchgang um die letzte Bitebene
handelt. Falls dem so ist, wird das Verfahren bei dem Verfahrensblock 2606 für die
weitere Decodierung fortgesetzt. Andererseits wird, falls die Bitebene für den B-Durch
gang SB nicht größer als oder gleich Null ist, ein inverser reversibler Filter auf die
Koeffizienten von dem gröbsten Pegel der Zerlegung angewendet (Verfahrensblock
2611). Ein Test bestimmt dann, ob sämtliche der Pegel invers gefiltert worden sind
(Verfahrensblock 2612). Falls nicht, wird abermals der inverse reversible Filter auf die
Koeffizienten auf dem gröbsten verbleibenden Pegel bzw. Niveau der Zusammensetzung
angewendet (Verfahrensblock 2613). Danach wird das Verfahren hinten beim Verfah
rensschritt 2612 fortgesetzt, um noch einmal zu prüfen, ob sämtliche der Pegel invers
gefiltert worden sind.
Wenn sämtliche der Pegel invers gefiltert worden sind, wird das Verfahren beim
Verfahrensblock 2612 fortgesetzt, wo eine Speicherung oder eine Übertragung von
wiederhergestellten Daten auftritt.
Die Fig. 27 stellt eine Ausführungsform des Verfahrens zum Modellieren jedes Koeffi
zienten dar. Das wiedergegebene Verfahren stellt das Modellierungsverfahren für
entweder das frequenzbasierende bzw. JSF-Modullieren oder Codieren bzw. Decodieren
dar. Das heißt, jeder der vier Blöcke (2507, 2508, 2607, 2608) kann mit dem Modellie
rungsverfahren nach Fig. 27 in die Tat umgesetzt werden. Bezugnehmend auf Fig. 27
beginnt ein anfängliches Verfahren durch anfängliches Prüfen, ob die Modellierung in
einem Durchgang durchgeführt wird (Verfahrensblock 2701). Falls die Modellierung
nicht in einem Durchgang geschehen kann, bestimmt ein Test, ob die Bitebene SA größer
ist als die Bitebene SB (Verfahrensblock 2702). Wenn dies nicht der Fall ist, dann geht
das Verfahren zu dem Verfahrensblock 2703 über, wo ein Flag (do_A_flag) freigemacht
wird, um anzuzeigen, daß ein A-Durchgang nicht durchgeführt wird. Wenn die Bitebene
SA größer als die Bitebene SB ist, dann wird das Verfahren bei dem Verfahrensblock
2704 fortgesetzt, wo das Flag (do_A_flag) gesetzt wird, um anzuzeigen, daß ein A-
Durchgang durchzuführen ist.
Nach einem der Verfahrensblöcke 2703 oder 2704 wird das Verfahren bei dem Ver
fahrensblock 2705 fortgesetzt, wo ein Test bestimmt, ob die Bitebene SB gleich der
Bitebene SA ist. Wenn die Bitebenen gleich sind, macht die vorliegende Erfindung ein
Flag (do_B_flag) frei, um das Auftreten eines B-Durchlaufs zu verhindern (Verfahrens
block 2705) und das Verfahren wird danach bei dem Verfahrensblock 2707 fortgesetzt.
Wenn die Bitebene SB gleich der Bitebene SA ist, ist das "do_B_flag"-Flag gesetzt, um
anzuzeigen, daß ein B-Durchgang durchzuführen ist (Verfahrensblock 2706) und das
Verfahren wird danach auch bei dem Verfahrensblock 2707 fortgesetzt.
Bei dem Verfahrensblock 2707 bestimmt ein Test, ob das Flag des A-Durchgangs
gesetzt ist und die Nullbaum-Modellierung durchzuführen ist. Falls das Flag anzeigt, daß
ein A-Durchgang aufzutreten hat und eine Nullbaum-Modellierung durchzuführen ist,
wird ein "bestimmt/unbestimmt"-Flag auf den Zustand "unbestimmt" für jeden Koeffi
zienten initialisiert (Verfahrensblock 2708), und das Verfahren wird bei dem Verfahrens
block 2709 fortgesetzt. Wenn andererseits entweder das A-Durchgangsanzeigeflag oder
die Nullbaum-Modellierungsanzeige nicht gesetzt sind, wird unmittelbar mit dem
Verfahrensblock 2709 fortgesetzt. Bei dem Verfahrensblock 2709 ist der erste Koeffi
zient auf die Variable C gesetzt.
Wenn der erste Koeffizient der Variablen C zugeordnet worden ist, bestimmt ein Test
ob der B-Durchgangsanzeigeflag gesetzt ist (Verfahrensblock 2719). Wenn der B-
Durchgangsanzeigeflag (do_B_flag) gesetzt ist, führt die vorliegende Erfindung einen B-
Durchgang mit dem Koeffizienten C (Verfahrensblock 2710) durch und das Verfahren
wird bei dem Verfahrensblock 2711 fortgesetzt. Andererseits wird, falls der B-Durch
gangsflag nicht gesetzt ist, dann ein B-Durchgang nicht für C durchgeführt und das
Verfahren wird unmittelbar beim Verfahrensblock 2711 fortgesetzt.
Ein Test bestimmt dann, ob der A-Durchgangsanzeigeflag (do_A_flag) gesetzt ist
(Verfahrensblock 2711). Wenn der A-Durchgangsanzeigeflag gesetzt ist, dann wird mit
dem Koeffizienten C ein A-Durchgang durchgeführt (Verfahrensblock 2717). Danach
wird das Verfahren beim Verfahrensblock 2713 fortgesetzt. Falls der A-Durchgangs
anzeigeflag nicht gesetzt ist, wird das Verfahren beim Verfahrensblock 2713 fortgesetzt,
ohne einen A-Durchgang mit Koeffizient C durchzuführen.
Beim Verfahrensblock 2713 bestimmt ein Test, ob der Koeffizient C der letzte Koeffi
zient ist. Wenn der Koeffizient C nicht der letzte Koeffizient ist, dann wird das Ver
fahren beim Verfahrensblock 2714 fortgesetzt, wo der nächste Koeffizient der Variablen
C zugeordnet wird und das Verfahren beim Verfahrensblock 2719 fortgesetzt wird.
Jedoch wird das Verfahren beim Verfahrensblock 2715 fortgesetzt, wo ein Test be
stimmt, wenn der B-Durchgangsflag (do_B_flag) gesetzt ist, falls der Koeffizient C der
letzte Koeffizient ist. Wenn der B-Durchgangsflag gesetzt ist, wird die Bitebene SB
gleich der Bitebene SB-1 gesetzt (Verfahrensblock 2716) und das Verfahren wird bei
dem Verfahrensblock 2717 fortgesetzt. Falls der B-Durchgangsanzeigeflag nicht gesetzt
ist, wird das Verfahren beim Verfahrensblock 2717 fortgesetzt. Bei dem Verfahrens
block 2717 bestimmt ein Test, ob der A-Durchgangsflag gesetzt ist. Falls er gesetzt ist,
dann ist die Bitebene SA gleich zu der Bitebene SA-1 gesetzt (Verfahrensblock 2718) und
das Verfahren endet. Auch falls der A-Durchgangsflag nicht gesetzt ist, endet das
Verfahren unmittelbar.
Bei einigen Ausführungsformen kann ohne die Verwendung eines Flag-Bits bestimmt
werden, ob ein Koeffizient bei einer bestimmten Bitebene in der A-Gruppe oder der B-
Gruppe ist. Dies spart ein Speicherbit pro Koeffizient, was für große Bilder wesentlich
sein kann. Statt dessen wird eine Maske unter Verwendung von UND-Logik für einen
Koeffizienten verglichen. Wenn das Ergebnis des UND Null ist, ist das Bit in der A-
Gruppe; ansonsten ist es in der B-Gruppe. Ein Beispiel für diese Masken wird in der
Tabelle 7 für acht Bitebenen gezeigt. Man beachte, daß diese Masken die Zweier-
Komplemente von 2(Bitebene+1) sind (ohne das Zeichenbit).
Masken | |
Bitebene | |
Maske (binär) | |
7 | |
00000000 | |
6 | 10000000 |
5 | 11000000 |
4 | 11100000 |
3 | 11110000 |
2 | 11111000 |
1 | 11111100 |
0 | 11111110 |
Da den A-Durchgang bzw. B-Durchgang unabhängige Masken zugeordnet werden
können (hierin MA und MB genannt), können so viele A-Durchgänge wie gewünscht, vor
dem entsprechenden B-Durchgang durchgeführt werden. Gemäß einer Ausführungsform
mit 17 Bitebenen werden drei A-Durchgänge durchgeführt, dann werden 14 gleichzeitige
A-Durchgänge und B-Durchgänge durchgeführt und schließlich werden zwei B-Durch
gänge durchgeführt. Da typischerweise A-Durchgangsentscheidungen effizienter codiert
werden können als B-Durchgangsentscheidungen, können anfangs mehrfach durchgeführt
A-Durchgänge die Qualität für eine verlustbehaftete Kompression verbessern.
Die Fig. 28 stellt eine Ausführungsform eines Codierers nach der vorliegenden Erfin
dung dar, der einen verkleinerten bzw. verringerten Flagspeicher verwendet (wie später
in der detaillierten Beschreibung erörtert wird). Bezugnehmend auf Fig. 28 beginnt das
Codier-Transformations- und Modelierungsverfahren mit dem Erhalt der Eingangsdaten
(Verfahrensblock 2801). Nach dem Erhalten der Eingangsdaten legt die vorliegende
Erfindung einen umkehrbaren Kleinwellenfilter (Verfahrensblock 2802) an.
Als nächstes bestimmt ein Test, ob ein anderer Pegel der Zerlegung gewünscht ist
(Verfahrensblock 2803). Falls ein anderer Zerlegungspegel gewünscht ist, wird das
Verfahren beim Verfahrensblock 2804 fortgesetzt, wo der reversible bzw. umkehrbare
Filter an die LL-Koeffizienten angelegt wird, die aus der unmittelbar vorherigen Zerle
gung resultieren, und das Verfahren wird hinten beim Verfahrensschritt 2803 fortgesetzt.
In dieser Weise ermöglicht es die vorliegende Erfindung, jede Anzahl von Zerlegungs
pegeln durchzuführen.
Wenn ein anderer Zerlegungspegel nicht gewünscht ist, wird das Verfahren beim
Verfahrensblock 2805 fortgesetzt, wo die Bitebene für den A-Durchgang SA auf die
signifikanteste Bitebene (max) gesetzt wird. Als nächstes wird die Bitebene für den B-
Durchgang SB auf die nächstsignifikanteste Bitebene (max-1) gesetzt (Verfahrensblock
2806).
Als nächstes wird die Maske MA auf -2 (Verfahrensblock 2807) gesetzt und die
Maske MB wird auf -2 gesetzt (Verfahrensblock 2808). Dann bestimmt ein Test, ob
die Bitebene für den A-Durchgang SA mit einem frequenzbasierenden Modell (Ver
fahrensblock 2808) codiert werden soll. Falls die Bitebene SA mit dem frequenzbasie
renden Modell zu codieren ist, wird das Verfahren beim Verfahrensblock 2809 fort
gesetzt, wo ein Bit von jedem Koeffizienten mit dem frequenzbasierenden Modell und
dem Entropiecode modelliert wird. Andererseits wird das Verfahren beim Verfahrens
block 2810 fortgesetzt, wo ein Bit von jedem Koeffizienten mit einem verbundenen
Raum-/Frequenz-Modell und Entropiecode modelliert wird, falls die Bitebene SA nicht
mit dem frequenzbasierenden Modell zu codieren ist.
In jedem Fall wird das Verfahren danach beim Verfahrensblock 2811 fortgesetzt, wo ein
Test bestimmt, ob die Bitebene SA größer als oder gleich Null ist, wodurch angezeigt
wird, ob es die letzte Bitebene ist. Falls die Bitebene SA größer als oder gleich Null ist,
macht das Verfahren eine Schleife zurück zu dem Verfahrensblock 2808. Andererseits
wird das Verfahren beim Verfahrensblock 2812 fortgesetzt, wo ein Test bestimmt, ob
die Bitebene SB größer als oder gleich Null ist, falls die Bitebene SA nicht größer als
oder gleich Null ist, so daß das Verfahren bestimmt, ob die Bitebene die letzte Bitebene
ist, die einen B-Durchgang durchläuft. Falls die Bitebene SB größer als oder gleich Null
ist, setzt das Verfahren beim Verfahrensblock 2808 fort. Falls jedoch die Bitebene SB
nicht größer als oder gleich Null ist, wird das Verfahren beim Verfahrensblock 2813
fortgesetzt, wo codierte Daten entweder auf einen Kanal übertragen oder in einem Spei
cher gespeichert werden. Nach dem Speichern oder Übertragen der codierten Daten
endet das Codiertransformations- und Modellierungsverfahren nach der vorliegenden
Erfindung.
Die Fig. 29 stellt eine alternative Ausführungsform des Decodertransformations- und
Modellierungsverfahrens nach der vorliegenden Erfindung dar, wenn ein reduzierter
Flagspeicher verwendet wird. Bezugnehmend auf Fig. 29 beginnt das Decodiertrans
formations- und Modellierungsverfahren nach der vorliegenden Erfindung durch Wie
derherstellen bzw. Wiederauffinden codierter Daten (Verfahrensblock 2901). Die
codierten Daten können von einem Kanal oder Speicher oder anderen Übertragungs
systemen empfangen werden. Sobald die codierten Daten empfangen werden, wird die
Bitebene für den A-Durchgang SA auf die signifikanteste Bitebene (max) gesetzt (Ver
fahrensblock 2903) und die Bitebene für den B-Durchgang SB wird auf die nächstsignifi
kanteste Bitebene (max-1) gesetzt (Verfahrensblock 2904). Nach dem Initialisieren des
Wertes von jedem Koeffizienten auf Null, wird der Wert von jedem Koeffizienten auf
einen anfänglichen Wert von Null gesetzt (Verfahrensblock 2905). Dann wird die Maske
MB auf -2 gesetzt (Verfahrensblock 2902) und die Maske MA wird auf -2
gesetzt (Verfahrensblock 2915).
Dann bestimmt ein Test, ob die Bitebene SA mit einem frequenzbasierenden Modell zu
decodieren ist oder nicht (Verfahrensblock 2906). Falls die Bitebene SA mit einem
frequenzbasierenden Modell zu decodieren ist, wird das Verfahren beim Verfahrens
block 2907 fortgesetzt, wo ein Bit von jedem Koeffizienten mit einem frequenzbasie
renden Modell und einer Entropiedecodierung modelliert wird. Falls die Bitebene SA
nicht mit einem frequenzbasierenden Modell zu decodieren ist, wird das Verfahren beim
Verfahrensblock 2908 fortgesetzt, wo ein Bit von jedem Koeffizienten mit einem
verbundenen Raum-/Frequenz-Modell und einer Entropiedecodierung modelliert wird.
Nachdem jeder Koeffizient modelliert ist, wird das Verfahren beim Verfahrensblock
2909 fortgesetzt, wo die Bitebene SA bestimmt, ob es die letzte Bitebene ist, indem
geprüft wird, ob sie größer als oder gleich Null ist. Ist die Bitebene SA größer als oder
gleich Null, wird das Verfahren beim Verfahrensblock 2906 fortgesetzt. Andererseits,
falls die Bitebene SA nicht größer als oder gleich Null ist, dann bestimmt ein Test, ob
die B-Durchgangsbitebene SB größer als oder gleich Null ist (Verfahrensblock 2910),
wobei angezeigt wird, daß es die letzte Bitebene für einen B-Durchgang ist. Falls dem
so ist, wird das Verfahren beim Verfahrensblock 2902 für die weitere Decodierung
fortgesetzt. Falls andererseits die Bitebene für den B-Durchgang, SB, nicht größer als
oder gleich Null ist, wird ein reverser reversibler Filter an die Koeffizienten von dem
gröbsten Zerlegungspegel angesetzt (Verfahrensblock 2911). Ein Test bestimmt dann, ob
sämtliche der Pegel umgekehrt bzw. invers gefiltert worden sind (Verfahrensblock
2912). Falls nicht, wird der inverse reversible Filter wieder auf die Koeffizienten auf
dem verbleibenden gröbsten Verbindungsniveau bzw. Zerlegungsniveau angelegt (Ver
fahrens- bzw. Verarbeitungsblock 2913). Danach wird das Verfahren hinten beim
Verfahrensblock 2912 fortgesetzt, wo ein Test wiederum bestimmt, ob sämtliche der
Pegel bzw. Niveaus invers gefiltert worden sind.
Sobald sämtliche der Niveaus bzw. Pegel invers gefiltert worden sind, wird das Ver
fahren beim Verfahrensblock 2912 fortgesetzt, wo ein Speichern oder Übertragen von
wiederhergestellten Daten auftritt.
Fig. 30 stellt eine Ausführungsform des Verfahrens zum Modellieren von jedem Koeffi
zienten dar. Man bemerke, daß, wie bei Fig. 27, das Verfahren nach Fig. 30 verwendet
werden kann, um die Modellierungsschritte nach den Fig. 28 und 29 in die Tat umzuset
zen. Bezugnehmend auf Fig. 30 beginnt ein anfängliches Verfahren durch anfängliches
Prüfen, ob ein A-Durchgang gewünscht ist und ob SA größer als oder gleich Null ist
(Verfahrensblock 3001). Falls dem so ist, dann wird das Flag (do_A_flag) gesetzt
(Verfahrensblock 3004), das anzeigt, daß ein A-Durchgang durchzuführen ist, und das
Verfahren wird beim Verfahrensblock 3002 fortgesetzt. Ansonsten wird das do_A_flag-
Flag freigemacht bzw. gelöscht (Verfahrensblock 3003).
Falls die Bitebene SA größer ist als die Bitebene SB, dann wird das Verfahren beim
Verfahrensblock 3004 fortgesetzt, wo ein Flag gesetzt wird, um anzudeuten, daß ein A-
Durchgang aufzutreten hat. Falls die Bitebene SA nicht größer als die Bitebene SB ist,
dann wird das Verfahren beim Verfahrensblock 3003 fortgesetzt, wo das Flag, das einen
A-Durchgang anzeigt, als klar auftretend angenommen wird.
Nach entweder dem Verfahrensblock 3003 oder 3004 wird das Verfahren beim Ver
fahrensblock 3002 fortgesetzt, wo ein Test bestimmt, ob die Bitebene SB größer als oder
gleich der Bitebene SA ist und ob ein B-Durchgang gewünscht wird. Falls die Bitebenen
nicht gleich sind, löscht bzw. macht die vorliegende Erfindung ein Flag (do_B_flag)
frei, um zu verhindern, daß ein B-Durchgang auftritt (Verfahrensblock 3005) und das
Verfahren wird danach beim Verfahrensblock 3007 fortgesetzt. Falls die Bitebene SB
gleich der Bitebene SA ist, wird das do_B_flag-Flag gesetzt, um anzuzeigen, daß ein B-
Durchgang durchzuführen ist (Verfahrensblock 3006) und das Verfahren wird auch
danach beim Verfahrensblock 3007 fortgesetzt.
Beim Verfahrensblock 3007 bestimmt ein Test, ob der A-Durchgangsflag gesetzt ist und
die Nullbaum-Modellierung durchzuführen ist. Falls das Flag andeutet, daß ein A-
Durchgang aufzutreten hat und eine Nullbaum-Modellierung durchzuführen ist, wird ein
"bestimmt/unbestimmt"-Flag mit dem "unbestimmt"-Zustand für jeden Koeffizienten
initialisiert, der Kinder bzw. Nachkommen (Verfahrensblock 3008) hat und das Ver
fahren wird beim Verfahrensblock 3009 fortgesetzt. Andererseits wird, falls entweder
der A-Durchgangsanzeigeflag oder die Nullbaum-Modellierungsanzeige nicht gesetzt
sind, das Verfahren unmittelbar beim Verfahrensblock 3009 fortgesetzt. Beim Ver
fahrensblock 3009 wird der erste Koeffizient auf die Variable C gesetzt.
Sobald der erste Koeffizient der Variablen C zugeordnet worden ist, bestimmt ein Test,
ob der B-Durchgangsanzeigeflag gesetzt ist (Verfahrensblock 3019). Falls der B-Durch
gangsanzeigeflag (do_B_flag) gesetzt ist, führt die vorliegende Erfindung einen B-
Durchgang an dem Koeffizienten C (Verfahrensblock 3010) durch und das Verfahren
wird beim Verfahrensblock 3011 fortgesetzt. Andererseits wird ein B-Durchgang nicht
an C durchgeführt, falls der B-Durchgangsflag nicht gesetzt ist, und das Verfahren wird
unmittelbar beim Verfahrensbloc 99999 00070 552 001000280000000200012000285919988800040 0002019534943 00004 99880k 3011 fortgesetzt.
Der Test bestimmt dann, ob der A-Durchgangsanzeigeflag gesetzt worden ist (Ver
fahrensblock 3011). Falls der A-Durchgangsanzeigeflag gesetzt worden ist, dann wird
auf den Koeffizienten C ein A-Durchgang durchgeführt (Verfahrensblock 3017). Danach
wird das Verfahren beim Verfahrensblock 3013 fortgesetzt. Falls der A-Durchgangs
anzeigeflag gesetzt ist, wird das Verfahren beim Verfahrensblock 3013 fortgesetzt, ohne
einen A-Durchgang an dem Koeffizienten C durchzuführen.
Beim Verfahrensblock 3013 bestimmt ein Test, ob der Koeffizient C der letzte Koeffi
zient ist. Fall der Koeffizient C nicht der letzte Koeffizient ist, dann wird das Verfahren
beim Verfahrensblock 3013 fortgesetzt, wo der nächste Koeffizient der Variablen C
zugeordnet wird und das Verfahren wird beim Verfahrensblock 3019 fortgesetzt. Jedoch
wird das Verfahren beim Verfahrensblock 3015 fortgesetzt, wo ein Test bestimmt, ob
das B-Durchgangsflag (do_B_flag) gesetzt ist, falls der Koeffizient C der letzte Koeffi
zient ist. Wenn der B-Durchgangsflag gesetzt ist, ist die Bitebene SB gleich der Bitebene
SB-1 (Verfahrensblock 3016) und das Verfahren wird beim Verfahrensblock 3017
fortgesetzt. Falls der B-Durchgangsanzeigeflag nicht gesetzt ist, wird das Verfahren
beim Verfahrensblock 3017 fortgesetzt. Beim Verfahrensblock 3017 bestimmt ein Test,
ob der A-Durchgangsflag gesetzt ist. Falls er gesetzt ist, dann wird die Bitebene SA
gleich der Bitebene SA-1 gesetzt (Verfahrensblock 3018) und das Verfahren endet. Auch
falls der A-Durchgangsflag nicht gesetzt wird, endet dann das Verfahren unmittelbar.
In einem Pyramidalsystem können Koeffizienten unter Verwendung einer Baumstruktur
in Sätze gruppiert werden. Die Wurzel von jedem Baum ist ein reiner Tiefpaßkoeffi
zient. Die Fig. 5 stellt die Baumstruktur eines reinen Tiefpaßkoeffizienten des trans
formierten Bildes dar. Für ein zweidimensionales Signal, wie etwa ein Bild, hat die
Wurzel des Baumes drei "Kinder" und der Rest der Knoten weist jeweils vier Kinder
bzw. Nachkommen auf. Die Baumhierarchie ist nicht auf zweidimensionale Signale
begrenzt. Zum Beispiel weist eine Wurzel für ein eindimensionales Signal einen Nach
kommen und Nicht-Wurzel-Knoten auf, die jeweils zwei Nachkommen haben. Höhere
Dimensionen folgen aus den eindimensionalen und zweidimensionalen Fällen.
Die Baumstruktur wird auch aus den Operationen der in den Fig. 4A bis 4C gezeigten
Filter deutlich. Die Operation der Filterpaare mit Unterabtastung bewirkt die Inbezug
setzung der zuvor beschriebenen Koeffizienten.
Bei der vorliegenden Erfindung bestimmt ein Kontextmodell, welches der mehreren
Codierungsverfahren zu verwenden ist, um die Koeffizienten weiter zu codieren,
nachdem die Koeffizienten im Zeichen-Größenordnungsformat angeordnet worden sind.
Ein frequenzbasierendes Codierungsschema, wie etwa Nullbaum-Codierung, codiert die
Signifikanzdaten, die mit einer gegebenen Unterbandzerlegung für eine spezifizierte
Schwelle verbunden sind, effizient. Zusätzlich zur Verwendung von Symbolen, die die
Signifikanz oder Insignifikanz von einzelnen isolierten Koeffizienten in der verbundenen
Unterbandzerlegung anzeigen, werden die Eingänge von insignifikanten Eltern mit allen
insignifikanten Nachkommen (jene mit Größenordnungen, die geringer als oder gleich
der gegebenen Schwelle sind) zusammengruppiert und gemeinsam codiert. Auf diese
Bäume wird manchmal als Nullbäume Bezug genommen. Diese insignifikanten Bäume
werden mit einzelnen zugeordneten bzw. zweckmäßigen Symbolen codiert, die manch
mal als Nullbaumwurzel bezeichnet werden. Wenn es da jedoch einen signifikanten
Herabsteigenden gibt, wird der Eingang eines insignifikanten Koeffizienten unter
Verwendung des Symbols für eine "isolierte bzw. getrennte Null" codiert. Folglich wird
ein Baum mit vier Symbolen (positive Signifikanz, negative Signifikanz, isolierte Null
oder Nullbaumwurzel) für Entscheidungen codiert, wobei das Zeichen für den Koeffi
zienten bis dahin nicht codiert worden ist.
Das frequenzbasierende Codieren ist besonders zweckmäßig bei Kompressionssystemen,
weil es das verbundene Codieren von insignifikanten Bäumen einer kleinen Anzahl von
Eltern- bzw. Stammkoeffizienten ermöglicht, die Insignifikanz einer großen Anzahl von
absteigenden bzw. abfallenden Koeffizienten vorherzusagen. Da die Eingänge in den
Baum, der mit den absteigenden Koeffizienten verbunden ist, von der Wurzel vorherge
sagt werden kann, sind keine zusätzlichen Symbole nötig, um ihre Insignifikanz zu
codieren. Die Insignifikanz des gesamten Baumes kann bei sehr geringen Kosten codiert
werden. Folglich bestehen die Bitebenen höherer Ordnung zumeist aus insignifikanten
Koeffizienten, von denen viele weder Nullbaumwurzeln noch isolierte Nullen sind (d. h.
sie sind Kinder bzw. Nachkommen in insignifikanten Bäumen, welche nicht codiert
werden müssen).
Shapiro offenbart ein frequenzbasierendes Modell, das Nullbaum genannt wird, in dem
US-Patent Nr. 5,321,776. Bei dem Verfahren von Shapiro werden zwei Listen, eine
dominierende Liste und eine untergeordnete Liste, verwendet, um sämtliche der Koeffi
zienten zu speichern. Für jeden Signifikanz- bzw. Wertigkeitspegel bzw. jedes Signifi
kanzniveau werden zwei Durchgänge vorgenommen, ein dominanter Durchgang und ein
untergeordneter Durchgang. Bei einer Ausführungsform ist das frequenzbasierende
Modell nach der vorliegenden Erfindung ein Nullbaum.
In einer anderen Ausführungsform wird ein frequenzbasierendes Modell, ähnlich dem
Nullbaum (wie durch Shapiro beschrieben), verwendet. Anstelle der Verwendung
mehrerer Listen bzw. multipler Listen wird nur eine einzige Liste verwendet, wobei
jedes der Listenelemente als ein Mitglied einer von zwei Gruppen markiert worden ist.
Die Trennung von Koeffizienten in eine A-Gruppe und eine B-Gruppe ist äquivalent zu
der Trennung, die Shapiro mit dominanten und untergeordneten Listen (jeweils) erzielt.
Shapiro′s Verwendung von multiplen Listen ermöglicht eine größere Flexibilität bei der
Ordnung von Koeffizienten in untergeordnete Listen zu Lasten von größerer bzw.
umfangreicher Software-/Hardware-Komplexität. Das Einzellisten-Nullbaum-Verfahren
verwendet zwei Durchgänge, den A-Durchgang und den B-Durchgang, die äquivalent zu
Shapiro′s dominantem Durchgang bzw. untergeordnetem Durchgang sind. Das Einzel
listen-Nullbaum-Modell wird unten beschrieben.
Das Codierungssystem nach der vorliegenden Erfindung hält eine Liste der Koeffizienten
in einer Zeichen-Größenordnungsform im Speicher aufrecht. Jedes Element in der Liste
hat eine Einbit-Benennung bzw. -Beschriftung, die andeutet, ob das Element ein Mit
glied der "A-Gruppe" oder der "B-Gruppe" ist. Bei dem Beginn einer Stufe werden jene
Koeffizienten, die nicht bis jetzt als signifikant herausgefunden worden sind, als in die
A-Gruppe gehörend benannt. Jene Koeffizienten, die zuvor als signifikant im Hinblick
auf vorherige, größere Schwellen herausgefunden worden sind, werden als in die B-
Gruppe gehörig benannt. Die Liste enthält die Koeffizienten in der Ordnung, in der sie
für die Codierung verarbeitet werden. Bei dem Beginn der allerersten Stufe werden
sämtliche Koeffizienten als Mitglieder der A-Gruppe benannt, da keine Koeffizienten als
signifikant eingerichtet worden sind. Wenn Koeffizienten als signifikant oder insignifi
kant bestimmt worden sind, werden die Benennungen für deren Eingänge von der
ursprünglichen A-Gruppenbenennung zu der B-Gruppenbenennung gewechselt. Die Liste
wird nachfolgend bei zunehmend feineren Schwellen verfeinert. Das heißt, mehrfache
Durchgänge durch die Liste treten auf.
In einer Ausführungsform werden die binären Ereignisse, die den Koeffizienten der B-
Gruppe entsprechen, binär arithmetisch unter einem Markov-Kontextmodell nullter
Ordnung codiert. Die Vierer-Ereignisse (4-ary events), die den Koeffizienten der A-
Gruppe entsprechen, werden ebenfalls unter einem Markov-Kontextmodell nullter
Ordnung codiert.
Die Reihenfolge der Koeffizienten in der Liste gemäß der vorliegenden Erfindung
bewahrt die Baumstruktur derart, daß kein Kind bzw. Nachkomme vor seinen Eltern
modelliert werden kann. Folglich ist eine Ordnung, die die Baumstruktur bewahrt, fest
eingerichtet und wird einheitlich bzw. konsistent verwendet. In einer Ausführungsform
werden die Koeffizienten im Speicher in der Reihenfolge von dem ersten Speicherort
verwendet. In einer anderen Ausführungsform kann eine verbundene Liste verwendet
werden.
In einer Ausführungsform werden die Koeffizienten in einem Bit-Signifikanz- oder
einem Bitebenen-Einbettungssystem codiert. Da die Koeffizienten von der signifikante
sten Bitebene zu der am wenigsten signifikanten Bitebene codiert werden, muß die
Anzahl der Bitebenen in den Daten bestimmt werden. Gemäß der vorliegenden Erfin
dung wird dies ausgeführt, indem eine obere Grenze bzw. Schranke der Größenordnun
gen der Koeffizientenwerte aus den Daten berechnet wird oder aus der Tiefe des Bildes
und der Filterkoeffizienten erhalten wird. Zum Beispiel gibt es acht signifikante Bits
oder acht Bitebenen, wenn die obere Schranke 149 beträgt.
Die Fig. 6A stellt eine Ausführungsform des Einzellisten-Nullbaum-Codierungsver
fahrens nach der vorliegenden Erfindung dar. In einer Ausführungsform kann das
Verfahren gemäß Fig. 6A auch bei dem Modellierungsverfahren nach Fig. 27 verwendet
werden. Bezugnehmend auf Fig. 6A beginnt das Verfahren mit dem Testen, ob der
Gruppenflag für den Koeffizienten C auf die "A-Gruppe" (Verfahrensschritt 3221)
gesetzt ist. Falls nicht, endet das Verfahren. Andererseits wird dann das Verfahren bei
dem Verfahrensblock 3222 fortgesetzt, wo ein Test bestimmt, ob der "bestimmt/unbe
stimmt"-Flag für den Koeffizienten C auf "unbestimmt" gesetzt ist, falls der Gruppen
flag für den Koeffizienten C auf die "A-Gruppe" gesetzt ist. Falls das "bestimmt/
unbestimmt"-Flag für den Koeffizienten nicht auf "unbestimmt" gesetzt ist, endet das
Verfahren. Falls jedoch der "bestimmt/unbestimmt"-Flag für den Koeffizienten C auf
"unbestimmt" gesetzt ist, wird das Verfahren bei dem Verfahrensblock 3203 fortgesetzt,
wo ein Test bestimmt, ob das Bit SA des Koeffizienten C Eins ist.
Wenn das Bit SA des Koeffizienten C nicht Eins ist, wird das Verfahren bei dem Ver
fahrensblock 3207 fortgesetzt. Andererseits wird das Verfahren bzw. die Verarbeitung
beim Verfahrensblock 3204 fortgesetzt, wo ein Test bestimmt, ob das Zeichen des
Koeffizienten C positiv ist, falls das Bit SA des Koeffizienten C Eins ist. Wenn das
Zeichen des Koeffizienten C nicht positiv ist, wird die Entscheidung bei "negativ si
gnifikant" in dem/den "A-Gruppen"-Kontext(en) codiert (Verfahrensblock 3205), und
das Verfahren wird beim Verfahrensblock bzw. Verarbeitungsblock 3229 fortgesetzt.
Wenn das Zeichen des Koeffizienten C positiv ist, wird die Entscheidung als "positiv
signifikant" in dem/den "A-Gruppen"-Kontext(en) codiert (Verarbeitungsblock 3206) und
das Verfahren wird bei dem Verfahrens- bzw. Verarbeitungsblock 3229 fortgesetzt. Bei
dem Verarbeitungs- bzw. Verfahrensblock 3229 wird der Gruppenflag für C auf die "B-
Gruppe" gesetzt.
Bei dem Verarbeitungsblock 3207 bestimmt ein Test, ob das Bit SA für sämtliche
absteigenden (Kinder bzw. Nachkommen) des Koeffizienten C Null ist. Wenn das Bit SA
nicht Null ist, wird die Entscheidung als "insignifikant mit signifikanten Nachkommen"
(01) in dem/den "A-Gruppen"-Kontext(en) codiert (Verarbeitungsblock 3208) und das
Verfahren endet. Andererseits wird, falls das Bit SA für sämtliche absteigenden (Kinder
bzw. Nachkommen) des Koeffizienten C Null ist, die Entscheidung als "Nullbaumwur
zel" (00) mit bzw. bei "A-Gruppen"-Kontext(en) codiert (Verarbeitungsblock 3209).
Danach wird der "bestimmt/unbestimmt"-Flag für sämtliche der Absteigenden des
Koeffizienten C auf "bestimmt" gesetzt (Verarbeitungsblock 3221) und das Verfahren
endet.
In einer anderen Ausführungsform kann der Terminierungstest für das Verfahren sein,
ob ein bestimmtes gewünschtes Kompressionsverhältnis erreicht wird.
Gemäß einer Ausführungsform werden die binären Ereignisse, die aus dem B-Durchlauf
resultieren, unter dem Markov-Quellenkontextmodell nullter Ordnung entropiecodiert.
Das 2-Bit-Alphabet (Größe 4), das aus dem A-Durchlauf resultiert, wird ebenfalls unter
der Markov-Quelle nullter Ordnung durch einen 4er (Alphabet der Größe 4) Arithmetik
codierer decodiert.
Die Fig. 6B und 6B (fortgesetzt) stellen eine alternative Ausführungsform des Einzel
listen-Nullbaum-Codierungsverfahrens nach der vorliegenden Erfindung dar, das einen
reduzierten Flagspeicher verwendet. Gemäß einer Ausführungsform kann das Verfahren
nach Fig. 6B als der A-Durchgang in dem Verfahren nach Fig. 30 verwendet werden.
Bezugnehmend auf die Fig. 6B und 6B (fortgesetzt), beginnt das Verfahren, indem
getestet wird, ob das Ergebnis einer UND-Operation des Koeffizienten C mit der Maske
MA Null ergibt (Verfahrensschritt 3201). Falls nicht, endet das Verfahren. Andererseits,
falls das Ergebnis der UND-Operation des Koeffizienten C mit der Maske MA Null ist,
wird die Verarbeitung bzw. das Verfahren bei dem Verfahrens- bzw. Verarbeitungs
block 3202 fortgesetzt, wo ein Test bestimmt, ob der "bestimmt/unbestimmt"-Flag für
die Eltern bzw. den Stamm des Koeffizienten C auf "unbestimmt" gesetzt ist, falls der
Flag für die Eltern bzw. den Stamm der Koeffizienten auf "unbestimmt" gesetzt ist,
endet das Verfahren. Falls jedoch der "bestimmt/unbestimmt"-Flag für den Stamm des
Koeffizienten C auf "unbestimmt" gesetzt ist, wird die Verarbeitung beim Verfahrens
block 3203 fortgesetzt, wo ein Test bestimmt, ob das Bit SA des Koeffizienten C Eins
ist.
Falls das Bit SA des Koeffizienten C nicht Eins ist, wird die Verarbeitung beim Ver
fahrensblock 3207 fortgesetzt. Andererseits wird die Verarbeitung beim Verarbeitungs
block 3204 fortgesetzt, wo ein Test bestimmt, ob das Zeichen des Koeffizienten C
positiv ist, falls das Bit SA des Koeffizienten C Eins ist. Wenn das Zeichen des Koeffi
zienten C nicht positiv ist, wird die Entscheidung bei "negativ signifikant" in dem/den
"A-Gruppen"-Kontext(en) codiert (Verarbeitungsblock 3205) und das Verfahren endet.
Falls das Zeichen des Koeffizienten C positiv ist, wird die Entscheidung als "positiv
signifikant"in dem/den "A-Gruppen"-Kontext(en) codiert (Verarbeitungsblock 3206) und
das Verfahren endet. In einer Ausführungsform wird ein 4er-Codierer verwendet und
4er-Entscheidungen werden in einem Kontext codiert. In einer anderen Ausführungsform
wird ein binärer Codierer verwendet und drei Kontexte werden verwendet (z. B. sind die
drei Kontexte das erste Bit der Entscheidung, das zweite Bit, wenn das erste Bit Null ist
und das zweite Bit, wenn das erste Bit Eins ist).
Beim Verarbeitungsblock 3207 bestimmt ein Test, ob das Bit SA für sämtliche Absteigen
den (Nachkommen) des Koeffizienten C Null ist. Falls das Bit SA nicht Null ist, wird
die Entscheidung als "insignifikant mit signifikanten Nachkommen", "isolierte bzw.
getrennte Null" (01) in dem/den "A-Gruppen"-Kontext(en) (Verarbeitungsblock 3208)
codiert, und das Verfahren endet. Andererseits wird, wenn das Bit SA für sämtliche der
Absteigenden (Nachkommen) des Koeffizienten C Null ist, die Entscheidung als "Null
baumwurzel" (00) in dem/den "A-Gruppen"-Kontext(en) (Verarbeitungsblock 3209)
codiert. Dann wird der "bestimmt/unbestimmt"-Flag für den Koeffizienten C auf
"bestimmt" (Verarbeitungsblock 3210) gesetzt. Danach wird der "bestimmt/unbe
stimmt"-Flag für sämtliche der Absteigenden des Koeffizienten, welche umgekehrt bzw.
folglich Absteigende aufweisen, auf "bestimmt" (Verarbeitungsblock 3211) gesetzt, und
das Verfahren endet.
Gemäß der vorliegenden Erfindung wird das Decodieren eng verknüpft bzw. im Schul
terschluß mit der Codierung durchgeführt.
Die Fig. 6C stellt eine Ausführungsform des A-Durchgangsverfahrens für einen Null
baum-Horizontal-Decodierungsprozeß dar und kann in Verbindung mit dem Verfahren
nach Fig. 27 verwendet werden. Bezugnehmend auf Fig. 6C beginnt das Verfahren,
indem getestet wird, ob der Gruppenflag für den Koeffizienten C auf die "A-Gruppe"
gesetzt ist (Verarbeitungsblock 3521). Falls nicht, endet das Verfahren. Jedoch wird,
falls dem so ist, die Verarbeitung bei dem Verarbeitungsblock 3528 fortgesetzt, wo ein
Test bestimmt, ob der "bestimmt/unbestimmt"-Flag für den Koeffizienten C auf "unbe
stimmt" gesetzt ist. Falls nicht endet das Verfahren. Falls dem so ist, wird das Ver
fahren beim Verarbeitungsblock 3502 fortgesetzt, wo die ternäre Entscheidung in einem
A-Gruppen-Kontext(en) decodiert wird.
Dann bestimmt ein Test, ob die Entscheidung "positiv signifikant" ist (Verarbeitungs
block 3503). Falls die Entscheidung "positiv signifikant" ist, wird das Zeichen des
Koeffizienten C auf positiv gesetzt (Verarbeitungsblock 3505), die Größenordnung des
Koeffizienten wird auf 2S A gesetzt (Verarbeitungsblock 3507), der Gruppenflag für den
Koeffizienten C wird auf die "B-Gruppe" (Verarbeitungsblock 3541) gesetzt und das
Verfahren endet.
Falls die Entscheidung nicht "positiv signifikant" (Verfahrensblock 3503) ist, bestimmt
ein Test, ob die Entscheidung "negativ signifikant" ist (Verarbeitungsblock 3504). Falls
die Entscheidung nicht "negativ signifikant" ist, wird das Verfahren beim Verarbeitungs
block 3509 fortgesetzt, wo ein Test bestimmt, ob die Entscheidung eine Nullbaumwurzel
ist. Falls die Entscheidung keine Nullbaumwurzel ist, endet das Verfahren. Falls die
Entscheidung eine Nullbaumwurzel ist, wird das "bestimmt/unbestimmt"-Flag für
sämtliche Absteigenden des Koeffizienten C auf "unbestimmt" (Verarbeitungsblock
3531) gesetzt und das Verfahren endet.
Jedoch wird, falls der Test bzw. die Prüfung des Verarbeitungsblocks 3504 bestimmt,
daß die Entscheidung "negativ signifikant" ist, anschließend das Zeichen des Koeffizien
ten C auf negativ gesetzt (Verarbeitungsblock 3506), die Größenordnung des Koeffizien
te auf 2S A gesetzt (Verarbeitungsblock 3507), der Gruppenflag für den Koeffizienten C
auf die B-Gruppe (Verarbeitungsblock 3541) gesetzt und das Verfahren endet.
Die Fig. 6D stellt eine alternative Ausführungsform des A-Durchgangsverfahrens für
einen Nullbaum-Horizontal-Decodierungsprozeß unter Verwendung eines reduzierten
Flagspeichers dar und kann in dem in Fig. 30 beschriebenen Verfahren verwendet
werden. Bezugnehmend auf Fig. 6D beginnt das Verfahren durch Testen, ob das
Ergebnis einer UND-Operation des Koeffizienten C mit der Maske MA Null ist (Ver
arbeitungsblock 3501). Falls nicht, endet dann der Prozeß. Falls jedoch das Ergebnis der
UND-Operation des Koeffizienten C mit der Maske MA Null ist, wird die Verarbeitung
beim Verarbeitungsblock 3508 fortgesetzt, wo ein Test bestimmt, ob der "bestimmt/
unbestimmt"-Flag für den Stamm von C "unbestimmt" lautet. Falls nicht, endet das
Verfahren. Falls dem so ist, wird dann das Verfahren beim Verarbeitungsblock 3502
fortgesetzt, wo die ternäre Entscheidung in A-Gruppen-Kontext(en) decodiert wird.
Anschließend bestimmt ein Test, ob die Entscheidung "positiv signifikant" ist (Ver
arbeitungsblock 3503). Falls die Entscheidung "positiv signifikant" ist, wird das Zeichen
des Koeffizienten auf positiv gesetzt (Verarbeitungsblock 3505), die Größenordnung des
Koeffizienten auf 2S A gesetzt (Verarbeitungsblock 3507) und das Verfahren endet.
Falls die Entscheidung nicht "positiv signifikant" ist, bestimmt ein Test, ob sie "negativ
signifikant" ist (Verarbeitungsblock 3504). Falls die Entscheidung nicht "negativ si
gnifikant" ist, wird das Verfahren beim Verarbeitungsblock 3509 fortgesetzt, wo ein
Test bestimmt, ob die Entscheidung eine Nullbaumwurzel ist. Falls die Entscheidung
keine Nullbaumwurzel ist, endet das Verfahren. Falls die Entscheidung eine Nullbaum
wurzel ist, wird der "bestimmt/unbestimmt"-Flag für den Koeffizienten C auf "be
stimmt" gesetzt (Verarbeitungsblock 3510), die "bestimmt/unbestimmt"-Flags für sämtli
che Absteigenden des Koeffizienten C, welche umgekehrt bzw. in Folge Absteigende
aufweisen, auf "unbestimmt" gesetzt (Verarbeitungsblock 3511), und das Verfahren
endet.
Jedoch wird dann, wenn der Test vom Verarbeitungsblock 3504 bestimmt, daß die
Entscheidung "negativ signifikant" lautet, das Zeichen des Koeffizienten C auf negativ
gesetzt (Verarbeitungsblock 3506), die Größenordnung des Koeffizienten C wird auf 2S A
(Verarbeitungsblock 3507) gesetzt und das Verfahren endet.
Alternativen existieren gemäß der durch Shapiro vorgenommenen Auswahl, um 4er-
Entscheidungen zu verwenden, um Bäume zu beschreiben. Größere Alphabete können
verwendet werden, um die Charakteristiken eines vollkommenen Baumes ferner zu
spezifizieren, wenn die Wurzel des Baumes codiert wird. In einer Ausführungsform
werden die folgenden von 6er-Entscheidungen verwendet.
- - insignifikant mit insignifikanten Nachkommen (Nullbaumwurzel)
- - insignifikant mit zumindest einem signifikanten Nachkommen
- - signifikant, positiv und sämtliche Nachkommen nicht negativ
- - signifikant, positiv und zumindest ein Nachkomme ist negativ
- - signifikant, negativ und sämtliche Nachkommen sind nicht positiv
- - signifikant, negativ und zumindest ein Nachkomme ist positiv.
In dieser Ausführungsform wird Zeicheninformation zusätzlich zur Insignifikanz für
einen gesamten Baum vorhergesagt. In anderen Ausführungsformen können Bäume mit
anderen Zeichen Zwangs- bzw. Nebenbedingungen oder mit Größenordnungs-Zwangs
bzw. Nebenbedingungen vorhergesagt werden. Alternativ könnten Vorhersager ins
besondere bei der Darstellung von Texturen bzw. Strukturen oder bei der Darstellung
von Mehr-Auflösungsmerkmalen zweckmäßig sein. Bei größeren Alphabeten kann die
Verwendung von Markov-Kontexten höherer Ordnung (wie später beschrieben wird)
zweckmäßig sein.
Gemäß der vorliegenden Erfindung wird frequenz-eingebettetes Codieren, wie etwa
hierin offenbartes Horizont- bzw. Horizontal-Ordnungsmodellieren, zum Codieren von
ternären Ereignissen, die den Koeffizienten in der A-Gruppe entsprechen, verwendet.
Beim Horizont- bzw. Horizontalcodieren sind sämtliche den Codierungsschritten vor
ausgehende Initialisierungen identisch zu dem frequenzbasierenden System. In einer
Ausführungsform wird binäres Entropiecodieren mit drei Kontexten durchgeführt, der
"A-Gruppen-Größenordnung", dem "A-Gruppenzeichen" und der "B-Gruppe".
Die Fig. 7A ist ein Flußdiagramm einer Ausführungsform des A-Durchgangs für ein
Einzellisten-Horizontal-Codierverfahren nach der vorliegenden Erfindung. Dieses
Verfahren kann in dem Verfahren nach Fig. 27 verwendet werden. Bezugnehmend auf
Fig. 7A beginnt das A-Durchgangsverfahren, indem getestet wird, ob der Gruppenflag
für den Koeffizienten C auf die "A-Gruppe" (Verfahrensblock 3111) gesetzt ist. Falls
nicht, endet das Verfahren. Falls der Gruppenflag für den Koeffizienten C auf die "A-
Gruppe" gesetzt ist, wird die Verarbeitung bei dem Verarbeitungsblock 3102 fortgesetzt,
wo ein Test bestimmt, ob das Bit SA des Koeffizienten C Eins ist. Falls das Bit SA des
Koeffizienten C nicht Eins ist, wird die Entscheidung als insignifikant (0) in dem "A-
Gruppen"-Kontext (Verarbeitungsblock 3103) codiert und das Verfahren endet. Falls das
Bit SA des Koeffizienten C Eins ist, dann wird die Verarbeitung beim Verarbeitungs
block 3104 fortgesetzt, wo ein Test bestimmt, ob das Zeichen des Koeffizienten C
positiv ist. Falls das Zeichen bzw. Vorzeichen des Koeffizienten C positiv ist, wird die
Entscheidung als "positiv signifikant" (10) in dem/den "A-Gruppen"-Kontext(en) kodiert
(Verarbeitungsblock 3106) und das Verfahren wird beim Verarbeitungsblock 3117
fortgesetzt. Andererseits wird, falls das Zeichen bzw. Vorzeichen des Koeffizienten C
nicht positiv ist, die Entscheidung als "negativ signifikant" (11) in dem/den "A-Grup
pen"-Kontext(en) (Verarbeitungsblock 3105) codiert und das Verfahren wird beim
Verarbeitungsblock 3117 fortgesetzt. Bei dem Verarbeitungsblock 3117 wird der
Gruppenflag für den Koeffizienten C auf die "B-Gruppe" gesetzt.
Die Fig. 7B ist ein Flußdiagramm einer alternativen Ausführungsform des A-Durch
gangs für ein Einzellisten-Horizontal-Codierungsverfahren, das einen reduzierten
Flagspeicher verwendet. Dieses Verfahren kann in dem Verfahren nach Fig. 30 ver
wendet werden. Bezugnehmend auf Fig. 7B beginnt der A-Durchlauf, indem getestet
wird, ob das Ergebnis der UND-Operation des Koeffizienten C mit der Maske MA Null
ergibt (Verarbeitungsblock 3101). Falls nicht, endet dann das Verfahren. Falls das
Ergebnis der UND-Operation des Koeffizienten C mit der Maske MA Null ist, wird die
Verarbeitung beim Verarbeitungsblock 3102 fortgesetzt, wo ein Test bestimmt, ob das
Bit SA des Koeffizienten C Eins ist. Falls das Bit SA des Koeffizienten C nicht Eins ist,
wird die Entscheidung als insignifikant (0) in dem "A-Gruppen"-Kontext (Verarbeitungs
block 3103) codiert und das Verfahren endet. Falls das Bit SA des Koeffizienten C Eins
ist, dann wird die Verarbeitung beim Verarbeitungsblock 3104 fortgesetzt, wo ein Test
bestimmt, ob das Zeichen bzw. Vorzeichen des Koeffizienten C positiv ist. Falls das
Vorzeichen des Koeffizienten C positiv ist, wird die Entscheidung als "positiv signifi
kant"(10) in dem/den "A-Gruppen"-Kontext(en) (Verarbeitungsblock 3106) codiert und
das Verfahren endet. Andererseits wird, falls das Vorzeichen des Koeffizienten C nicht
positiv ist, die Entscheidung als "negativ signifikant" (11) in dem/den "A-Gruppen"-
Kontext(en) (Verarbeitungsblock 3105) codiert und das Verfahren endet.
Die Fig. 7C stellt eine Ausführungsform des A-Durchgangsverfahrens für ein Einzel
listen-Horizontal-Decodierungsverfahren nach der vorliegenden Erfindung dar und kann
in dem Verfahren nach Fig. 27 verwendet werden. Bezugnehmend auf Fig. 7C beginnt
das Verfahren, indem getestet wird, ob der Gruppenflag für den Koeffizienten C auf die
"A-Gruppe" gesetzt ist (Verarbeitungsblock 3411). Falls nicht, endet das Verfahren.
Jedoch wird, falls der Gruppenflag für den Koeffizienten C auf die "A-Gruppe" gesetzt
ist, die Verarbeitung bei dem Verarbeitungsblock 3402 fortgesetzt, wo die ternäre
Entscheidung in dem/den "A-Gruppen"-Kontext(en) codiert wird.
Anschließend bestimmt ein Test, ob die Entscheidung "positiv signifikant" ist (Ver
arbeitungsblock 3403). Falls die Entscheidung "positiv signifikant" ist, wird das Vor
zeichen des Koeffizienten C auf positiv gesetzt (Verarbeitungsblock 3405), die Größen
ordnung des Koeffizienten auf 2S A gesetzt (Verarbeitungs- bzw. Verfahrensblock 3407),
der Gruppenflag für den Koeffizienten C wird auf die "B-Gruppe" gesetzt (Verarbei
tungsblock 3418), und das Verfahren endet.
Falls die Entscheidung nicht "positiv signifikant" lautet, bestimmt ein Test, ob sie
"negativ signifikant" (Verarbeitungsblock 3404) ist. Falls die Entscheidung nicht "nega
tiv signifikant" ist, endet das Verfahren. Jedoch wird dann, wenn die Entscheidung
"negativ signifikant" ist, der Koeffizient C auf negativ (Verarbeitungsblock 3406)
gesetzt, die Größenordnung von C auf 2S A gesetzt (Verarbeitungsblock 3407), der
Gruppenflag für den Koeffizienten C wird auf die "B-Gruppe" gesetzt (Verarbeitungs
block 3418) und das Verfahren endet.
Die Fig. 7D stellt eine alternative Ausführungsform des A-Durchlaufverfahrens für ein
Einzellisten-Horizontal-Decodierungsverfahren unter Verwendung eines reduzierten
Flagspeichers dar und kann in dem Verfahren nach Fig. 30 verwendet werden. Be
zugnehmend auf Fig. 7D beginnt das Verfahren, indem getestet wird, ob das Ergebnis
der UND-Operation des Koeffizienten C mit der Maske MA Null ist (Verarbeitungsblock
3401). Falls nicht, endet das Verfahren. Jedoch wird, falls das Ergebnis der UND-
Operation des Koeffizienten C mit der Maske MA Null ist, die Verarbeitung beim
Verarbeitungsblock 3402 fortgesetzt, wo die ternäre Entscheidung in dem/den A-Grup
pen-Kontext(en) decodiert wird.
Anschließend bestimmt ein Test, ob die Entscheidung "positiv signifikant" ist (Ver
arbeitungsblock 3403). Falls die Entscheidung "positiv signifikant" ist, wird das Zeichen
bzw. Vorzeichen des Koeffizienten C auf positiv gesetzt (Verarbeitungsblock 3405), die
Größenordnung des Koeffizienten wird auf 2S A gesetzt (Verarbeitungsblock 3407) und
das Verfahren endet.
Falls die Entscheidung nicht "positiv signifikant" ist, bestimmt ein Test, ob sie "negativ
signifikant" (Verarbeitungsblock 3404) ist. Falls die Entscheidung nicht "negativ signifi
kant" ist, endet das Verfahren. Jedoch wird, falls die Entscheidung "negativ signifikant"
lautet, dann das Vorzeichen des Koeffizienten C auf negativ gesetzt (Verarbeitungsblock
3406), die Größenordnung von C wird auf 2S A gesetzt (Verarbeitungsblock 3407) und
das Verfahren endet.
In einer Ausführungsform ist das B-Durchlaufverfahren sowohl für den Nullbaum als
auch für den Horizont nach der vorliegenden Erfindung das gleiche. Ausführungsformen
für den B-Durchlaufalgorithmus für das Codierverfahren und das Decodierverfahren sind
in den Fig. 8A und 8B bzw. 9A und 9B gezeigt.
Die Fig. 8A stellt eine Ausführungsform eines B-Durchlaufverfahrens dar, das teilweise
für Nullbaum und Einzellisten-Horizontal-Codierungsverfahren verwendet wird und in
dem Verfahren nach Fig. 27 verwendet werden kann. Bezugnehmend auf die Fig. 8A
prüft das Verfahren eingangs, ob der Gruppenflag für den Koeffizienten C gesetzt ist
(Verfahrensblock 3311), falls nicht, endet das Verfahren. Andererseits wird, falls der
Gruppenflag gesetzt ist, die Verarbeitung beim Verarbeitungsblock 3302 fortgesetzt, wo
ein Test bestimmt, ob das Bit SB des Koeffizienten C "1" ist. Falls das Bit von SB des
Koeffizienten C nicht "1" ist, dann wird die Entscheidung als "0" in dem/den "B-
Gruppen"-Kontext(en) (Verarbeitungsblock 3303) codiert und das Verfahren endet. Falls
das Bit SB des Koeffizienten C "1" ist, dann wird die Entscheidung als "1" in dem/den
"B-Gruppen"-Kontext(en) (Verarbeitungsblock 3304) codiert und das Verfahren endet.
Die Fig. 8B stellt eine alternative Ausführungsform des B-Durchgangsverfahrens dar,
das teilweise für Nullbaum- und Einzellisten-Horizontal-Codierungsverfahren verwendet
wird und einen reduzierten Flagspeicher verwendet und in dem Verfahren nach Fig. 30
verwendet werden kann. Bezugnehmend auf die Fig. 8B prüft das Verfahren anfangs,
ob das Ergebnis einer UND-Operation des Koeffizienten C mit der Maske MB nicht Null
ist (Verarbeitungsblock 3301). Falls nicht, endet das Verfahren. Andererseits wird,
wenn das Ergebnis der UND-Operation des Koeffizienten C mit der Maske MB nicht
Null ist, die Verarbeitung beim Verarbeitungsblock 3302 fortgesetzt, wo ein Test
bestimmt, ob das Bit SB des Koeffizienten C "1" ist. Falls das Bit von SB des Koeffizien
ten C nicht "1" ist, dann wird die Entscheidung als "0" in dem/den "B-Gruppen"-Kon
text(en) (Verarbeitungsblock 3303) codiert und das Verfahren endet. Falls das Bit SB des
Koeffizienten C "1" ist, dann wird die Entscheidung als "1" in dem/den "B-Gruppen"-
Kontext(en) (Verarbeitungsblock 3304) codiert und das Verfahren endet.
Die Fig. 9A stellt eine Ausführungsform der B-Durchlaufdecodierung nach der vor
liegenden Erfindung dar und kann in dem Verfahren nach Fig. 27 verwendet werden.
Bezugnehmend auf die Fig. 9A bestimmt anfangs ein Test, ob der Gruppenflag für den
Koeffizienten C auf die "B-Gruppe" gesetzt ist (Verarbeitungsblock 3611). Falls nicht,
endet das Verfahren. Jedoch werden, falls der Gruppenflag für den Koeffizienten C auf
die "B-Gruppe" gesetzt ist, dann die Entscheidungen in dem/den "B-Gruppen"-Kon
text(en) (Verarbeitungsblock 3602) decodiert. Ein Test entscheidet dann, ob die Ent
scheidung eine "1" ist (Verarbeitungsblock 3603). Falls die Entscheidung keine "1" ist,
endet das Verfahren. Falls die Entscheidung eine "1" ist, wird das Bit SB des Koeffizien
ten C gesetzt (Verarbeitungsblock 3604) und das Verfahren endet.
Die Fig. 9B stellt eine alternative Ausführungsform der B-Durchlaufdecodierung nach
der vorliegenden Erfindung unter Verwendung eines reduzierten Flagspeichers dar und
kann in dem Verfahren nach Fig. 30 verwendet werden. Bezugnehmend auf Fig. 9B
bestimmt ein Testanfang, ob das Ergebnis einer UND-Operation des Koeffizienten C mit
der Maske MB nicht Null ist (Verarbeitungsblock 3601). Falls das Ergebnis der UND-
Operation des Koeffizienten C mit der Maske MB Null ist, endet das Verfahren. Jedoch
werden, falls das Ergebnis der UND-Operation des Koeffizienten C mit der Maske MB
nicht Null ist, die Entscheidungen in dem/den "B-Gruppen"-Kontext(en) (Verfahrens
block 3602) decodiert. Ein Test entscheidet dann, ob die Entscheidung eine "1" ist
(Verarbeitungsblock 3603). Falls die Entscheidung keine "1" ist, endet das Verfahren.
Falls die Entscheidung eine "1" ist, wird das Bit SB des Koeffizienten C (Verarbeitungs
block 3604) gesetzt und das Verfahren endet.
Unter Verwendung der Kombination des Nullbaum-Ordnungscodierens und des Horizon
tal-Ordnungscodierens stellt die vorliegende Erfindung eine bitsignifikante Codierung der
Koeffizienten, die durch reversible Kleinwellen erzeugt werden, zur Verfügung. Man
beachte, daß die Verwendung sowohl der A-Gruppe als auch der B-Gruppe und der
ternären und der binären Ereignisse, die den "A"- und "B"-Durchläufen jeweils entspre
chen, insbesondere im Hinblick auf die Tatsache wichtig ist, daß ein Schalter aus der
Verwendung des Nullbaum-Ordnens zu dem Horizontal-Ordnen an dem Ende von jedem
A-Durchlauf gemacht wird. Dies kompensiert die Ineffizienz bei der Vorhersage, die das
Nullbaumordnen bei den Bits niederer Ordnung begleitet. Deshalb beginnt gemäß der
vorliegenden Erfindung das System, indem die Bitdaten höherer Ordnung nullbaum-co
diert werden und nach einer Anzahl von Durchläufen durch die Listen, d. h. nachdem
eine Anzahl von Bitebenen codiert sind, schaltet der Codierer nach der vorliegenden
Erfindung um, um den Rest der Daten unter Verwendung von Horizontal-Codieren zu
codieren. Die Anzahl der Durchläufe kann statistisch ausgewählt werden oder kann
angepaßt ausgewählt werden, indem die Durchführung bzw. Funktion des Nullbaum-
Ordnungs-Codierungsblocks überwacht wird.
In einer Ausführungsform werden fünf binäre Kontext-Überrahmen bzw. -Rahmen
verwendet. Dies ist gering, falls dies mit anderen Systemen, wie etwa JBIG, verglichen
wird, welches etwas mehr als 1024 Kontexte verwendet. Die Kompression kann unter
Verwendung von mehr Kontext-Überrahmen bzw. -Rahmen verbessert werden. Ent
scheidungen können anhand von räumlichen Anordnungen, Pegeln und/oder Bitstellun
gen verarbeitet bzw. aufbereitet werden. Im allgemeinen können die vorher beschriebe
nen Markov-Kontexte nullter Ordnung durch Markov-Kontexte höherer Ordnung ersetzt
werden.
Einige Beispiele lauten wie folgt. Das signifikanteste (und deshalb am leichtesten
vorhersagbare) Bit von jeder Mantisse (B-Gruppendaten in einigen Ausführungsformen)
könnte einen von dem Rest der Bits verschiedenen Kontext verwenden. Die Signifikanz-
/Nicht-Signifikanz-Entscheidung könnte auf der Grundlage der gleichen Entscheidung
aufbereitet bzw. verarbeitet werden, wie sie für räumlich eng beieinanderliegende
vorherige Koeffizienten bei dem gleichen Transformationspegel gemacht worden ist.
Gleichermaßen können die Zeichen- bzw. Vorzeichenbits für die signifikanten Koeffi
zienten auf den Zeichen von räumlich dicht davorliegenden Koeffizienten bei dem
gleichen Pegel oder den Zeichen bzw. Vorzeichen des Koeffizienten des Stamms bzw.
der Eltern verarbeitet bzw. aufbereitet werden.
Verbesserungen des Kontextmodells können insbesondere wichtig sein, wenn Bilder
komprimiert werden, die eine räumliche oder eine Multi-Auflösungsstruktur aufweisen.
Graustufenbilder von Linienzeichnungen oder Texte sind ein Beispiel für Bilder mit
beiden dieser Arten von Strukturen. Verbesserungen sind auch für die Kompression von
Daten wichtig, die bereits mit einem spezifizierten Spitzenfehler hätten komprimiert
bzw. dekomprimiert werden sollen.
Die vorliegende Erfindung kann in Hardware und/oder Software in die Tat umgesetzt
werden. Eine Hardware-Umsetzung der vorliegenden Erfindung erfordert, Umsetzung
der Kleinwellenfilter, des Speicher-/Datenflußmanagements, um Daten für die Filter zur
Verfügung zu stellen, ein Kontextmodell, um die Einbettungscodierung nach der vor
liegenden Erfindung zu steuern, das Speicher-/Datenflußmanagement, um die Daten für
das Kontextmodell zur Verfügung zu stellen, und einen binären Entropiecodierer.
Eine Ausführungsform des Vorwärts-Kleinwellenfilters nach der vorliegenden Erfindung
ist in Fig. 10 dargestellt. Der in Fig. 10 gezeigte Kleinwellenfilter bezieht ein bzw.
beherbergt vier 16-Bit-Zweier-Komplement-Eingabebildelemente, die als x(2)-x(5)
gezeigt sind.
Bezugnehmend auf Fig. 10 verwenden die Tiefpaßfilter mit zwei Abgriffen bzw. Stufen
"1 1" einen 16-Bit-Addierer 1001. Die Ausgänge werden als S bzw. D bezeichnet. Der
Ausgang des Addierers (S) ist auf 16 Bits unter Verwendung eines 1-Verschiebungs
blocks 1003 auf 16 Bits verringert. Der 1-Verschiebungsblock 1003 führt eine Division
durch-2-Funktion durch Verschieben seines 17-Bit-Einganges zu dem rechten einen Bit
bzw. dem richtigen Bit durch.
Der Hochpaßfilter mit sechs Abgriffen bzw. Stufen "-1 -1 8 -8 1 1" erfordert die
Berechnung von -S₀ + 4D₁ + S₂. Die Funktion S2-S₀ wird mit einem 16-Bit-Sub
trahierer 1005 berechnet, der den Ausgang des 1-Verschiebungsblocks 1003 und das
Y₀(0) empfängt. Der Ausdruck 4D₁ wird unter Verwendung des Subtrahierers 1002 und
des 2-Verschiebungsblocks 1004 berechnet. Der Ausgang, der durch den 16-Bit-Sub
trahierer 1002 erzeugt wird, wird auf die linken zwei Plätze verschoben, wodurch sein
Ausgang effektiv mit vier multipliziert wird. Das Addieren des Ausgangs 4D₁ von dem
2-Verschiebungsblock 1004 zu dem Ausgang des Subtrahierers 1005 wird durch den 20-
Bit-Addierer 1006 durchgeführt. Der Ausgang des Schlußaddierers ist unter Verwendung
des 2-Verschiebungsblocks 1007 auf 18 Bits verringert. Der 2-Verschiebungsblock 1007
führt eine Division-durch-4-Funktion durch, indem sein 20-Bit-Eingang zu den rechten
zwei Bits verschoben wird.
Folglich ist die gesamte erforderliche Berechnungshardware (Register für die zeitweise
Speicherung von Ergebnissen nicht eingerechnet):
- ⚫ @ 16-Bit-Addierer,
- ⚫ @ 16-Bit-Subtrahierer,
- ⚫ @ 19-Bit-Addierer.
Man beachte, daß das Verschieben durch die Verdrahtung vorgenommen wird, so daß
keine Logik erforderlich ist.
In anderen Ausführungsformen können für Eingänge der Größe N, ein N-Bit-Addierer,
zwei N-Bit-Subtrahierer und ein (N+3)-Bit-Addierer verwendet werden.
Wegen der extrem niedrigen Hardwarekosten für diese Addierer/Subtrahierer können
parallele Umsetzungen für die Filter verwendet werden, falls dies gewünscht ist.
Man bemerke, daß alternativ anstelle des Subtrahierens von X(3) und X(2) X(4)-X(5)
berechnet werden kann und aufrechterhalten werden kann, bis es später als X(2)-X(3)
für die nächste Verschiebung oder Anwendung des Filters benötigt wird. Sowohl der
Vorwärtsfilter (und der oben beschriebene inverse bzw. Rückwärtsfilter) können in einer
Leitung angeordnet werden, um einen höheren Durchsatz zu erzielen.
Der inverse Wellen- bzw. Kleinwellenfilter wird in Fig. 11 dargestellt. Die Eingänge
von Y₀(0) und Y₀(2) werden durch den Subtrahierer 1101 subtrahiert. Das Ergebnis der
Subtraktion wird durch den Um-2-Verschiebungsblock 1102 um zwei Bits nach rechts
verschoben. Dies dividiert den Ausgang des Subtrahierers effektiv durch vier. Eine
Subtraktion wird zwischen dem Ausgang des Um-2-Verschiebungsblocks 1104 und des
Y₁(0)-Eingang durchgeführt. Der Eingang Y₀(1) wird um ein Bit nach links durch den
Um-1-Verschiebungsblock 1103 um ein Bit nach links verschoben, wodurch der Eingang
mit 2 multipliziert wird. Nachdem Y₀(1) um eins verschoben ist (multipliziert mit 2), ist
das LSB des verschobenen Wertes das LSB, das von dem Ausgang des Subtrahierers
1104 genommen ist, und wird mit dem 16-Bit-Ausgang von dem Um-1-Verschiebungs
block 1103 kombiniert, um einen Eingang für den Addierer 1105 und den Subtrahierer
1106 zu bilden. Der andere Eingang für den Addierer 1105 und den Subtrahierer 1106
ist der Ausgang des Subtrahierers 1104. Die Ausgänge des Addierers 1105 und des
Subtrahierers 1106 können nachfolgend abgeschnitten werden bzw. einer Abschneidung
unterzogen werden.
Eine Auswahl von zwei Abschneide-Operationen kann verwendet werden. In beiden
Fällen wird der 20-Bit-Wert um eins verschoben (durch 2 geteilt) zu einem 19-Bit-Wert.
Für ein System, das nur eine verlustlose Kompression durchführt, können die 16 am
wenigsten signifikanten Bits ausgegeben werden (die verbleibenden drei Bits können
außer acht gelassen werden). In einem verlustbehafteten System (oder einem verlustbe
hafteten/verlustlosen System) wird der 19-Bit-Wert auf Null gesetzt, falls er negativ ist,
oder auf 2¹⁶-1 gesetzt, falls er größer als 2¹⁶-1 ist; ansonsten können die 16 am wenig
sten signifikanten Bits ausgegeben werden.
Für Eingänge von N-Bits können ein N-Bit-Subtrahierer, ein (N+2)-Bit-Subtrahierer,
ein (N+3)-Bit-Addierer und ein (N+3)-Bit-Subtrahierer verwendet werden und die
Abschneide- bzw. Kürzungseinrichtung gibt N Bits aus.
Im Hinblick auf das Speicher- und Datenflußmanagement für die Wellen- bzw. Klein
wellenfilter nach der vorliegenden Erfindung für Bilder, wo ein vollständiger Rahmen
in einen Speicher passen kann, ist das Speicher-/Datenflußmanagement keine schwierige
Angelegenheit. Auch für viele Anwendungen ist es vernünftig, was für 1024 × 1024
medizinische 16-Bit-Bilder (z. B. mit einer Größe von 2 Megabytes), die einen voll
ständigen Pufferrahmen erfordern, ist. Für größere Bilder (z. B. A4, 400 DPI 4-Farben
bilder weisen eine Größe von etwa 50 Megabyte auf) ist die Durchführung der Kleinwel
lentransformation mit einer begrenzten Menge an Linien-Pufferspeicher wünschenswert.
Man bemerke, daß ein vollständiger Rahmenpuffer nicht erforderlich ist, um die vor
liegende Erfindung in ein System mit einem Durchlauf umzusetzen. Deshalb kann der
erforderliche Speicher um einen Faktor 100 verringert werden (verglichen mit einem
vollständen Rahmenpuffer für große Bilder). Das System mit einem Durchlauf gemäß
der vorliegenden Erfindung wird später beschrieben.
Die in dem Filterspeicher gespeicherten Daten sind eine Reihe von Koeffizienten, die
dem Einbettungscodieren und dem binären Entropiecodieren auszusetzen sind. Das
Einbettungscodieren verwendet ein Kontextmodell, um die Verwendung von frequenzba
sierender Codierung oder Horizontalcodierung zu koordinieren, und um Daten in einer
zweckmäßigen bzw. angemessenen Ordnung zur Verfügung zu stellen. Das Kontextmo
dell arbeitet in Verbindung mit einem Speicher-Managementschema. Für Systeme mit
einem vollständigen Rahmenpuffer ist es nicht schwierig, Daten in der angemessenen
Ordnung zur Verfügung zu stellen. Für Systeme ohne einen vollständigen Rahmenpuffer
stellt das Datentransformations-Managementschema der Ausführungsform mit einem
Durchlauf gemäß der vorliegenden Erfindung (unten beschrieben) dem Kontextmodell
Koeffizienten zur Verfügung, so daß es das Kontextmodell nur erfordert, Koeffizienten
für einen Baum zu puffern. Ein frequenzbasierendes Kontextmodell mit einem Durchlauf
und ein verbundenes Raum-/Frequenz-Kontextmodell mit einem Durchlauf werden zu
einer Zeit bzw. einem Zeitpunkt an einem Baum betrieben.
Die Ergebnisse der Einbettungsoperation gemaß der vorliegenden Erfindung ist zum
Erzeugen von Bit-Strömen von dem frequenzbasierenden Modellierungsmechanismus
gemäß der vorliegenden Erfindung und dem verbundenen Raum-/Frequenz-Modellie
rungsmechanismus gemaß der vorliegenden Erfindung. Diese Bit-Ströme werden
anschließend unter Verwendung eines binären Entropiecodierers codiert.
Für Systeme mit einem vollständigen Rahmenpuffer können beliebige binäre Entropieco
dierer oder andere angemessene Codierer verwendet werden. Für Systeme ohne einen
vollständigen Rahmenpuffer müssen entweder mehrfache unabhängige Codierer ver
wendet werden oder der Codierer muß dazu in der Lage sein, mehrfache unabhängige
Codierer zu simulieren. Auch wird ein Speicher oder ein Kanal-Management benötigt,
um die Ausgänge von den unabhängigen Codierern zu verfolgen bzw. auf dem laufenden
zu halten. Der Vorteil der vorliegenden Erfindung ist, daß die Daten, die zu handhaben
bzw. zu managen sind, prioritiert sind (eingebettet). Falls während der Kompression
oder Übertragung nicht ausreichend Raum bzw. Platz oder Bandbreite zur Verfügung
steht, können weniger wichtige Daten auf dem Wege außer acht gelassen werden, um
eine vernünftige verlustbehaftete Kompression zur Verfügung zu stellen.
Die vorliegende Erfindung stellt eine Transformation mit einem Durchlauf zur Ver
fügung, die es ermöglicht, die Eingabedaten in das System, wie sie empfangen werden,
vollständig zu prozessieren. In einem solchen System ist die Verarbeitung der Daten
nicht von den Daten abhängig, die folgen. Der erforderliche Speicher, um ein Bild zu
komprimieren, ist abhängig von der Länge des Bildes. Durch die Entfernung der
Abhängigkeit stellt die vorliegende Erfindung ein System zur Verfügung, das kom
primierte Daten ausgeben kann, bevor sämtliche Daten verarbeitet worden sind.
Die Fig. 12 stellt einen Bereich eines Bildes dar, das in einer Rasterordnung durch eine
Band- bzw. Frequenzbandmode bzw. -methode unter Verwendung der Lehren gemäß der
vorliegenden Erfindung komprimiert. Man ziehe eine Zerlegung mit vier Pegeln in
Betracht. Jeder Baum weist 2⁴ × 2⁴ = 16 × 16 = 256 Koeffizienten auf. Jedoch hängt
jeder Baum von mehr als 256 Eingabebildelementen ab, da der Hochpaßfilter der Klein
wellentransformation gemäß der vorliegenden Erfindung überlappt. Der "1 1"-Tiefpaßfil
ter mit zwei Abgriffen bzw. Stufen (L) bewirkt keine Überlappung und die gesamte
Überlappung stammt von dem Hochpaßfilter (H) mit sechs Abgriffen bzw. Stufen "-1 -1
8 -8 1 1". Die größte Überlappung tritt für die Kaskade von drei Anwendungen des
Tiefpaßfilter, gefolgt durch eine Anwendung des Hochpaßfilters (LLLH), auf. Drei
Anwendungen des Tiefpaßfilters (LLL) erfordern eine Unterstützung von 2³ = 8
Eingabebildelementen. Stütz- bzw. Unterstützungsbereiche mit einer Größe von 8×8
Bildelementen sind in Fig. 12 gezeigt. Wenn der Hochpaßfilter in diese Kaskade
einbezogen wird, betragen die Unterstützungsbereiche (6 × 2³)×(6 × 2³) = 48 × 48
Bildelemente. Ein Unterstützungsbereich mit 48 × 48 Bildelementen, der aus sechsund
dreißig 8×8 Blöcken besteht, ist in Fig. 12 gezeigt.
Man nehme an, daß die Koeffizienten des in Fig. 12 gezeigten Unterstützungsbereichs
mit 48 × 48 Bildelementen gegenwärtig gerade verarbeitet werden. Der hell schattierte
Abschnitt des Unterstützungsbereichs stellt Bildelemente dar, die bereits in vorangehen
den Unterstützungsbereichen verwendet worden sind. Der hell schattierte Teil, der
außerhalb des Unterstützungsbereiches ist, stellt Bildelemente dar, die bereits in vor
angehenden Unterstützungsbereichen verwendet worden sind und in zukünftigen Unter
stützungsbereichen benötigt werden. Der schwarze 16 × 16 Bereich ist der Teil des
Unterstützungsbereichs, der Bildelemente enthält, die zuvor nicht verwendet worden
sind. In ähnlicher Weise enthält der dunkel schattierte 16 × 16 Bereich Bildelemente, die
zuvor nicht verwendet worden sind, welche jedoch in dem nächsten 48 × 48 Unterstüt
zungsbereich verwendet werden. Eine 16 × 16 Transformation eines Baumpegels wird
berechnet, wobei die vorherigen Ergebnisse von acht anderen 16 × 16 Transformationen
mit drei Pegeln aus einem Puffer zurückgerufen werden und der vierte Pegel der
Transformation wird auf die neun 16 × 16 Transformationen mit drei Pegeln angewen
det. Die erforderliche Pufferung, um dies vorzunehmen, reicht aus, um die dreipegeli
gen Transformationskoeffizienten für (2 × Breite des Bildes +32) × 16 Bildelemente zu
speichern und reicht aus, um einen 16-Linien-Puffer (ein Band bzw. Frequenzband) von
Bildelementen zu speichern.
Die Fig. 13 ist ein Blockdiagramm einer Ausführungsform einer Kleinwellenfilterungs
einheit mit einem Durchlauf, die eine Filtersteuereinheit 1301, einen Speicher 1302 und
einen Filter 1303 enthält. Der Filter 1303 weist den in Verbindung mit Fig. 10 be
schriebenen Filter auf. Der Speicher 1302 bezieht sich auf den Speicher, der oben in
Verbindung mit Fig. 12 beschrieben worden ist, und speichert entweder Bildelemente
oder Koeffizienten. Die Filtersteuereinheit 1301 bestimmt den Datenfluß zwischen dem
Speicher 1302 und dem Filter 1303. Die Operation der Filtersteuereinheit 1301 wird
unten beschrieben.
Die Fig. 14 stellt eine alternative Kleinwellenfiltereinheit dar. Um einen Hochgeschwin
digkeitsbetrieb zu erzielen, können Filter mehrfach verwendet werden. In einer Aus
führungsform könnte die Speicherbandbreite wesentlich sein, da der Filter 1303 vier
oder fünf Eingänge erfordert (beispielsweise inverser Filter, Vorwärtsfilter). Der
Speicher könnte mehrfache Bildelemente/Koeffizienten pro Stelle bzw. Ort, mehrfache
Bänke und/oder mehrfache Anschlüsse bzw. Ports aufweisen. Eine Speicherschnitt
stelleneinheit 1401 verringert die Bandbreite des Speichers, die erforderlich ist, indem
kleine Puffer für lokale Daten, die während der Verarbeitung benötigt werden, vor
gesehen werden. Die Speicherschnittstelleneinheit 1401 stellt auch Multiplexen/Demulti
plexen zwischen dem Eingang/Ausgang (I/O) des Speichers 1302 und den I/O des Filters
1303 zur Verfügung.
Zusätzlich zu der Speicherbandbreite, die für das Filtern erforderlich ist, kann zusätzli
che Bandbreite für die Eingabe der Bildelemente in den Speicher 1302 und die Ausgabe
der Koeffizienten zu dem Kontextmodell erforderlich sein. Wenn Bildelemente bzw.
Bildpunkte in der Rasterordnung eingegeben werden, kann zusätzlicher Speicher für den
Band- bzw. Frequenzbandpuffer erforderlich werden.
Falls ein Speicher mehrere bzw. Mehrfachelemente (Bildelemente oder Koeffizienten)
pro Stelle bzw. Ort speichert, statt horizontale oder vertikale benachbarte Elemente in
einer Reihe oder Spalte zu speichern, kann es die Menge an Speicherzugriffen und
Pufferungen reduzieren, die erforderlich ist, wenn Elemente in einem NxN-Block die
gleiche Stelle bzw. den gleichen Ort teilen, wenn N eine Potenz von 2 ist. Dies er
möglicht die gleiche Angemessenheit für vertikale und für horizontale Zugriffe.
Mehrfache Bänke bzw. Speicherbänke können auch in die Tat umgesetzt werden, so daß
sowohl horizontale als auch vertikale Zugriffe die gleichen Vorteile aus mehrfachen
Bänken ziehen können, wie in Fig. 15 gezeigt wird. Für den Fall mit zwei Bänken kann
ein Bank-Auswahl-Bit ausgebildet werden, das zur Verfügung gestellt wird, um eine der
Bänke auszuwählen, und zwar in einer Ausführungsform durch eine Exklusiv-Oder-
Operation der LSBs der horizontalen und der vertikalen Koordinaten. Für den Fall mit
vier Bänken können die zwei Bank-Auswähl-Bits ausgebildet werden, indem (Modul 4
mit einem 2-Bit-Addierer) die zwei LSBs der horizontalen und vertikalen Koordinaten
addiert werden.
Die Fig. 16 stellt die Filteroperation mit einem Durchlauf für eine Zerlegungsimplemen
tation mit zwei Pegeln bzw. zwei Niveaus durch die Filtersteuereinheit 1301 (Fig. 13)
dar. Man bemerke, daß zu Darstellungszwecken eine Beschreibung mit zwei Pegeln
zuerst erörtert wird, um die allgemeine Technik gemäß der vorliegenden Erfindung
darzustellen. In anderen Ausführungsformen werden dreipegelige, vierpegelige oder
Zerlegungen mit höheren Pegeln verwendet. Eine zweipegelige Zerlegung weist 16
Koeffizienten pro Baum auf und erfordert eine Berechnung mit 16 Eingabebildelemen
ten, die zuvor nicht verwendet worden sind. Das Filtern für einen Baum mit Koeffi
zienten wird in 16 oder weniger Zeiteinheiten durchgeführt, um der Eingabe- und
Ausgaberate zu entsprechen. Für dieses Beispiel werden zwei Filter in Parallelanordnung
bzw. parallel betrieben verwendet, um den gewünschten Durchsatz von zwei Filter
operationen pro Zeiteinheit zu erzielen. Für jede räumliche Stelle bzw. jeden räumlichen
Ort, wo die führende Kante bzw. Flanke eines Filters angelegt wird, zeigt Fig. 16 eine
Zahl, die die Zeit anzeigt, in der jede Filterbetätigung durchgeführt wird.
Da die Ordnung des Filterns durch die führende Kante des Filters bestimmt wird,
erzeugt das Filtern nicht sämtliche der Koeffizienten eines Baumes, bevor einige bzw.
beliebige der Koeffizienten des nächsten Baumes erzeugt sind. Die Filterung der Nach
kommen des Baumes tritt vor dem Filtern der Stämme bzw. Eltern auf und das Tiefpaß
filtern wird vor dem entsprechenden Hochpaßfiltern vorgenommen. Das Filtern betreibt
eine A-Gruppe von Koeffizienten, die die gleiche Anzahl von Koeffizienten eines Typs
aufweist, wie ein Baum.
Die Horizontal-Filterung mit dem Pegel 1 wird während einer Zeit 0 bis 7 durchgeführt
und die Ergebnisse werden in einem temporären Puffer gespeichert. (Jede räumliche
Stelle bzw. jeder räumliche Ort ergibt zwei Koeffizienten.) Während einer Zeit 2 bis 9
wird vertikales Filtern an den Daten in dem Puffer (unter Verwendung des zweiten
Filters) und den Daten der vorherigen horizontalen Filter vom Speicher (zweifach pro
räumlichem Ort bzw. Stelle) durchgeführt. Vertikales Filtern kann beginnen, sobald die
zweite horizontale Filterungsoperation abgeschlossen ist. Die Koeffizienten HH, HL und
LH sind fertig für die Ausgabe zu dem Kontextmodell (zu der angemessenen Zeit). Die
Koeffizienten LL werden in dem nächsten Pegel bzw. auf dem nächsten Niveau ver
wendet.
Mit nur zwei Filtern kann die Null-Horizontalfilterung mit Pegel 0 bis zur Zeit 8 nicht
beginnen, wenn die Horizontalfilterung mit Pegel 1 nicht vollständig ist, was einen
Filter verfügbar werden läßt. Die Horizontalfilterung mit Pegel 0 kann bis zur Zeit 10
nicht beendet werden, einem Zyklus nach dem die Vertikalfilterung mit Pegel 0 voll
ständig ist, wobei sämtliche erhaltenen Daten bestätigt bzw. bewiesen werden. Während
der Zeit 11 und 12 kann als nächstes die vertikale Filterung mit Pegel 1 auftreten.
Die Tabelle 1 unten faßt den Betrieb jeden Filters während jeder Zeiteinheit zusammen.
Das Format der Eingänge lautet Pegelzahl, horizontal oder vertikal ("H" oder "V") und
die räumliche Stelle bzw. Anordnung der führenden Kante. Die Eingänge der vertikalen
Filteroperationen sind auch als Tiefpaß zu Hochpaß erkannt, mit einem Index "L" oder
"H". Man bemerke, daß es erforderlich ist, einen Filter zuzuordnen, um horizontale
Filterung durchzuführen, und den anderen, um vertikale Filterung durchzuführen, da
beide Filter identisch sind.
Während die horizontale Filterung mit Pegel 1 wieder für die nächste Gruppe von
Eingabebildelementen bei einer Zeit 11 beginnen kann, würde dies den Filter dazu
veranlassen, schneller betätigt zu werden als dies Eingabe- und Ausgaberate. Statt dessen
werden gemäß der vorliegenden Erfindung die Filter außer Betrieb sein und die nächste
Gruppe wird bei der Zeit 16 gestartet. Zyklen mit außer Betrieb gesetzten Filtern
können für Speicherübertragungen verwendet werden. Anstelle an dem Ende des Filterns
für jede Gruppe aufzutreten, können die Außer-Betrieb-Zyklen, falls gewünscht, unter
den Filterzyklen verteilt werden.
Im Hinblick auf die Erläuterung zu dem Fall mit zwei Pegel wird der Fall mit drei
Pegeln in Tabelle 2 gezeigt. Kettenschaltungen bzw. Kaskadierungen von zwei oder vier
Zeiteinheiten werden verwendet, um die Informationen auf eine Seite zu übertragen,
wodurch es leichter gemacht wird, zu lesen.
Die Tabelle 3 stellt den Fall mit vier Pegeln bzw. Niveaus dar. Da es nun 256 Zeitein
heiten pro Gruppe von Koeffizienten gibt, wird zur Vereinfachung nur der Pegel bzw.
das Niveau und die Filterungsrichtung gezeigt.
Der Ausgang des Filterungs- und Speicheruntersystems gemäß der vorliegenden Erfin
dung ist eine Reihe von Koeffizienten, die einer Bitsignifikanz-Einbettungskodierung
gemäß der vorliegenden Erfindung unterzogen werden.
In einer Ausführungsform der vorliegenden Erfindung wird mit dem Bitwertigkeits-
bzw. -signifikanz-Einbettungskontextmodell für das System mit einem Durchgang jeder
Baum in vier Teilen verarbeitet.
Die Wurzel des Baumes, der LL-Koeffizient ist dem höchsten Pegel, wird durch Hori
zontalordnungscodieren in einem Durchgang codiert. Die drei Unterbäume, die mit jeder
der Wurzeln drei Nachkominen beginnen, die HH-, HL- und LH-Koeffizienten mit dem
höchsten Pegel, werden sowohl mit der verbundenen Raum-/Frequenzmodelierung mit
einem Durchgang als auch mit dem frequenzbasierenden Modelieren mit einem Durch
gang verarbeitet. Die Koeffizienten werden so codiert, daß codierte Daten ausgegeben
werden können, bevor das Bitsignifikanz-Einbettungskontextmodell mit sämtlichen Daten
arbeitet.
Das Nullbaum-Kontextmodell kann in dem System mit einem Durchlauf nicht verwendet
werden. Der Nullbaum erfordert eine Liste (oder mehrere Listen), die jeden Koeffizien
ten enthalten, und Nullbäume führen mehrere Durchläufe durch die Liste(n) durch. Ein
alternatives frequenzbasierendes Modell, ein Signifikanzbaum mit einem Durchlauf,
erfordert keine Listen, die sämtliche Koeffizienten enthalten. Ein anderer Unterschied
zwischen einem Signifikanzbaum mit einem Durchlauf und einem Nullbaum ist, daß der
Signifikanzbaum sämtliche Nachkommen bearbeitet, bevor ihre Eltern bzw. ihre Stämme
verarbeitet werden, wenn Entscheidungen erzeugt werden, im Gegensatz zu dem Null
baum, der die Eltern bzw. den Stamm zuerst verarbeitet.
Das Kontextmodell gemäß der vorliegenden Erfindung ist in der Form eines Blockdia
gramms in Fig. 17 gezeigt. Das Kontextmodell 1700 enthält zwei Verarbeitungsein
heiten, die Zeichen bzw. Vorzeichen-/Größenordnungseinheit 109 (Fig. 1A) und die
Signifikanzeinheit 1702. Das Kontextmodell 1700 verwendet auch zwei Speicher (mit
Speichersteuerlogik), einen Größenordnungs-Speicher 1701 und einen Baumspeicher
1703. Jede dieser zwei Speichereinheiten kann mit multiplen Speicherbereichen in die
Tat umgesetzt werden, um eine abwechselnde Verwendung während des Hochgeschwin
digkeitsbetriebes zu ermöglichen (d. h. während Daten in den einen geschrieben werden,
wird der andere gelesen oder freigemacht).
Der Größen- bzw. Größenordnungs-Speicher 1701 ordnet die Koeffizienten in dem
Baum neu in einer Ordnung, die auf Signifikanz bzw. Wichtung basiert, sowie eine
Ordnung, die auf ihren Größen bzw. Größenordnungen basiert. Dies wird ausgeführt,
indem eine Schlange von jeder möglichen Größenordnung aufrechterhalten wird. Die
Signifikanzeinheit 1702 empfängt Koeffizienten in der Ordnung der Signifikanz (z. B. der
Größe bzw. Größenordnung) und erzeugt Entscheidungen für einen Codierer der den A-
Durchlaufalgorithmus verwendet bzw. handhabt. Der Baumspeicher 1703 ist an die
Signifikanz- bzw. Wertigkeitseinheit 1702 angeschlossen und beseitigt Nullbäume nach
sämtlichen Nullen.
Die nachfolgende Erörterung nimmt an, daß die Koeffizienten 18 Bits aufweisen und daß
die Eingangsdaten einer Zerlegung mit vier Pegeln bzw. Niveaus unterzogen worden
sind.
Eine Ausführungsform der Zeichen- bzw. Vorzeichen-/Größenordnungseinheit 109 ist
in Fig. 18 dargestellt, und überträgt die Eingangskoeffizienten in ein Zeichen- bzw.
Vorzeichen-/Größenordnungsformat. Die Zeichen- bzw. Vorzeichen-/Größenordnungs
einheit 109 ist angeschlossen, um 18 Bits der Koeffizienten zu empfangen und enthält
einen Inverter 1801, einen Multiplexer (MUX) 1802, einen Prioritätscodierer 1803 und
eine Zähleinrichtung 1804. Die Vorzeichen-/Größenordnungseinheit 109 gibt eine
Wertigkeitsanzeige bzw. Signifikanzanzeige (z. B. einen 5-Bit-Wert), die Mantisse des
Eingabekoeffizienten (z. B. 17 Bits), das Zeichen bzw. Vorzeichen des Eingangskoeffi
zienten mit einem Bit und einen Index von der Zähleinrichtung 1804 (z. B. 7 Bits).
Die MUX 1802 ist angeschlossen, um 17 Bits von den Koeffizienten, die unmittelbar in
die Vorzeichen-/Größenordnungseinheit 109 eingegeben sind, und eine invertierte
Version der 17 Bits von der Zweier-Komplementärwerteinrichtung 1801 zu empfangen.
Basierend auf dem Zeichen- bzw. Vorzeichenbit (Koeffizientenbit 17), das an dem
ausgewählten Eingang der MUX 1802 empfangen wird, gibt der positive der zwei seinen
Ausgang als die Mantisse ein.
Die Vorzeichen-/Größenordnungseinheit 109 verwendet einen Prioritätscodierer 1803,
um das erste signifikante Bit bzw. Wertigkeitsbit von jedem Koeffizienten zu bestimmen.
Auf der Grundlage des ersten signifikanten Bits von jedem Koeffizienten kann ein
Signifikanz- bzw. Wertigkeitspegel mit dem Koeffizienten in Verbindung gebracht
werden.
Die Zähleinrichtung 1804 wird verwendet, um einen Index mit dem gegenwärtigen
Baumelement zu verbinden bzw. zu verknüpfen. Für eine Zerlegung mit vier Pegeln
variiert der Index von 0 bis 84 (weil 1 + 4 + 16 + 64 = 85 die Anzahl der Elemente
in einem Unterbaum ist). Die Eingangskoeffizienten sind in der Baumordnung, welche
in diesem Beispiel so angenommen werden, daß die Eltern bzw. Stämme zuerst und die
Kinder bzw. Nachkommen zuletzt sind. Die Koeffizienten sind für die geordneten
Koeffizienten von unterschiedlichen Zerlegungspegeln bzw. -niveaus, wie in Tabelle 4
gezeigt wird.
Pegel | |
Index der Koeffizienten | |
0 | |
0 | |
1 | 1, 22, 43, 64 |
2 | 2, 7, 12, 17, 23, 28, 33, 38, 44, 49, 54, 59, 65, 70, 75, 80 |
3 | 3 . . . 6, 8 . . . 11, 13 . . . 16, 18 . . . 21, 24 . . . 27, 29 . . . 32, 34 . . . 37, 39 . . . 42, 45 . . .48, 50 . . . 53, 55 . . . 58, 60 . . . 63, 66 . . .69, 71 . . . 74, 76 . . .79, 81 . . . 84 |
Die Fig. 19 ist eine Ausführungsform des Blockdiagramms des Größen- bzw. Größen
ordnungsspeichers 1701. Eine Zähleinrichtung und ein Speicher sind miteinander für
jeden möglichen Wertigkeits- bzw. Signifikanzpegel verbunden (ausgenommen nichts ist
erforderlich für Null-Koeffizienten, die nicht codiert zu werden brauchen). Zum Beispiel
sind die Zähleinrichtung 1916 und der Speicher 1936 mit dem Signifikanzpegel bzw.
Wertigkeitspegel 17 verbunden. In einer Ausführungsform gibt es 16 Wertigkeits- bzw.
Signifikanzpegel. Deshalb gibt es 17 Zähleinrichtungen und 17 angeschlossene Speicher.
In einer Ausführungsform muß jeder Speicher 85 Stellen bzw. Orte für jeden möglichen
Koeffizienten in einem Unterbaum aufweisen (da jeder Unterbaum 85 Koeffizienten
enthält), jedoch kann die Speichergröße auf eine Potenz von 2 angemessen aufgerundet
werden, wie etwa 128. Jeder Speichereingang kann ein Zeichen- bzw. Vorzeichenbit,
einen 7-Bit-Index und N-Größenordnungsbits aufweisen, wobei N der Signifikanz- bzw.
Wertigkeitspegel ist. Falls die Verwendung einer fixen Speicherbreite gewünscht wird,
können Eingänge für die Signifikanz bzw. Wertigkeit 16 und 0, 15 und 1 usw. kom
biniert werden, so daß jedes Wort zwei Eingänge hat, die zusammen 32 Bits ergeben.
Natürlich muß bei einer ungeraden Anzahl von Signifikanz- bzw. Wertigkeitspegeln ein
Wort nur einen Eingang enthalten, welches in diesem Beispiel der Pegel bzw. das
Niveau 7 ist.
Zeichen- bzw. Vorzeichen-, Index- und Mantissenwerte, die von der Zeichen- bzw.
Vorzeichen-/Größenordnungseinheit 109 empfangen worden sind, werden in den passen
den bzw. angemessenen Speicher an der Adresse geschrieben, die durch die ange
schlossene Zähleinrichtung des Speichers zur Verfügung gestellt wird. Die angeschlosse
ne Zähleinrichtung wird dann inkrementiert bzw. erhöht, so daß der nächste Koeffizient
bei diesem Signifikanz- bzw. Wertigkeitspegel an dem nächsten Ort bzw. der nächsten
Stelle gespeichert werden kann.
Der Speicher wird von jedem der Speicher 1920-1926 in abnehmender Ordnung der
Signifikanz bzw. Wertigkeit ausgelesen. Der Ausgang von jedem Koeffizienten enthält
seinen Mantissen-, seinen Zeichen- bzw. Vorzeichen- und seinen Indexausgang. Wenn
die Zähleinrichtung für den höchsten Pegel bzw. das höchste Niveau der Signifikanz
bzw. der Wertigkeit nicht Null ist (z. B. Pegel 16), wird er verringert, und der Speicher
wird bei dieser Adresse gelesen. Dies wird wiederholt, bis der Wert der Zähleinrichtung
Null ist. Anschließend wird der nächste Wertigkeits- bzw. Signifikanzpegel (z. B. Pegel
15) in Betracht gezogen. Jeder Signifikanz- bzw. Wertigkeitspegel wird der Reihe nach
in Betracht gezogen, bis sämtliche Zähler bzw. Zähleinrichtungen bis auf Null her
abgesetzt worden sind und sämtliche Speicher geleert worden sind.
In einem Realzeitsystem kann es wünschenswert sein, zwei Bänke von Zähleinrichtungen
und Speichern zu verwenden, so daß eine Bank für den Eingang verwendet wird,
während die andere für den Ausgang verwendet wird.
Die Zähler adressieren ihre angeschlossenen Speicher so, daß ein LIFO (last in, first
out, letzter rein, erster raus) in die Tat umgesetzt wird. Ein LIFO ist die zutreffende
Ordnung, wenn Unterbäume in der Ordnung mit Stämmen bzw. Eltern zuerst eingege
ben werden. Alternativ kann die Betätigung der Zähleinrichtungen, falls die Unterbäume
zuerst mit den Nachkommen bzw. Kindern eingegeben werden, geändert werden, um ein
FIFO (first in, first out, erster rein, erster raus) in die Tat umzusetzen.
Die Fig. 20 ist ein Blockdiagramm einer Ausführungsform einer Wertigkeits- bzw.
Signifikanzeinheit 1702. Bezugnehmend auf Fig. 20 wird die Index-Zähleinrichtung
2001 verwendet, um durch jeden Koeffizienten in einem Unterbau mit Nachkommen
zuerst hindurchzuschreiten. In einer Ausführungsform wird die Index-Zähleinrichtung
2001 mit 84 initialisiert und zählt herab bis Null. Der Signifikanz- bzw. Wertigkeitszähler
2004 beginnt bei einem maximalen Wertigkeitspegel (in dem Beispiel beispielsweise
16) und zählt jedesmal abwärts, wenn die Index-Zähleinrichtung 84 einen Zyklus
vervollständigt (zu 84 zurückkehrt), so daß die Wertigkeits- bzw. Signifikanzzähleinrich
tung 2004 die Bitebene verfolgt bzw. auf dem laufenden hält. Der Pegel eines bestimm
ten Index wird durch eine Logik bestimmt (Index zu Pegel 2003), die die in der obigen
Tabelle 4 gezeigte Funktion durchführt.
Die Größenordnungsspeichereinheit 1701 stellt einen Index, eine Größenordnung und ein
Zeichen bzw. Vorzeichen des nächsten Koeffizienten in dem Speicher zur Verfügung,
der von dem Signifikanzzähler 2004 freigegeben wird. Wenn der von dem Speicher
eingegebene Index der gleiche ist, wie der von der Index-Zähleinrichtung 2001 ausgege
bene Index, gibt die Äquivalenzlogik-2002-Ausgabeanzeige nicht Null an. Die Aus
gangsanzeige nicht Null bedeutet, daß der Größenordnungsspeicher den nächsten Index
zur Verfügung stellen sollte usw. für den nächsten Zyklus. Wenn keine Übereinstim
mung auftritt, dann wird eine Anzeige keine Übereinstimmung zu einem Diskussions
generator 2008 gesendet.
In einer Ausführungsform werden drei als Flag 0 (2005), Flag 1(2006) und Flag 2
(2007) gezeigte Flipflops verwendet, um die Nicht-Null-Daten zu verfolgen bzw. auf
dem laufenden zu halten und werden Zerlegungspegeln bzw. -niveaus 0, 1 bzw. 2
zugeordnet. Man beachte, daß die Anzahl der erforderlichen Flipflops um eins niedriger
ist als die Anzahl der Zerlegungspegel bzw. -niveaus. Die Flipflops 2005 bis 2007
werden anfangs freigemacht bzw. gelöscht. Wenn das Nicht-Null-Signal von der Äquiva
lenzlogik 202 angegeben wird, dann werden sämtliche der Flipflops unter den Flipflops
2005 bis 2007 gesetzt, die einem Pegel zugeordnet sind, der niedriger ist als der gegen
wärtige Pegel. Der Flipflop, der dem gegenwärtigen Pegel zugeordnet ist, wird freige
macht bzw. gelöscht. Der Pegel wird durch die Index-zu-Pegel-Logik 2003 zur Ver
fügung gestellt, die den Pegel in Antwort zu dem durch die Index-Zieleinrichtung 2001
zur Verfügung gestellten Index zur Verfügung stellt.
"Codierte" Flags werden gespeichert (in einigen Ausführungsformen ein Registerfeld),
ein Bit für jeden Index. Wenn das Nicht-Null-Signal angegeben wird, wird das Bit, das
mit dem gegenwärtigen Wert der Index-Zähleinrichtung in dem codierten Flagspeicher
verknüpft ist, gesetzt. Andererseits wird, falls der Signifikanz- bzw. Wertigkeits-Zähl
einrichtungswert der maximale Wert ist, das verknüpfte Bit gelöscht bzw. freigegeben.
Ansonsten bleibt der Wert des Bits ungeändert. Das bereits codierte Ausgangssignal von
dem codierten Speicher der Flags ist das gleiche, wie der neue Wert des Bits, das mit
dem gegenwärtigen Index verknüpft ist. Man bemerke, daß in einer alternativen Aus
führungsform die codierten Flags nicht verwendet werden und das bereits codierte Signal
niemals benutzt wird.
In einer Ausführungsform bestimmt der Entscheidungsgenerator 2008, wann der gegen
wärtige Pegel 3 ist und der vorherige Pegel es nicht war bzw. nicht war. In Antwort auf
diese Bestimmung gibt der Entscheidungsgenerator 2008 den Start-Ausgang und der
Startpegel-Ausgang ist der vorangehende Pegel. Wenn das Nicht-Null-Signal angegeben
wird, gibt der Entscheidungsgenerator 2008 eine Entscheidung als "Signifikant" aus und
gibt auch das Zeichen (00, 01) und die Mantisse aus. Andererseits wird, falls der bereits
codierte Eingang angegeben wird, keine Entscheidung ausgegeben. Andererseits gibt,
falls das Flag-Flipflop, das dem gegenwärtigen Pegel bzw. Niveau zugeordnet ist,
gesetzt wird, der Entscheidungsgenerator 2008 die Entscheidung als "insignifikant mit
signifikanten Nachkommen" (10) aus. Andererseits gibt der Entscheidungsgenerator
2008 die Entscheidung als "insignifikant und insignifikaten Nachkommen" (11) aus und
gibt das insgesamt Null-Signal an.
Man bemerke, daß zur Umsetzung sowohl des frequenzbasierenden Modellierens als
auch des horizontalen verbundenen Raum-/Frequenz-Modellierens mit einem Durchlauf
die folgende Änderung in der Signifikanz- bzw. Wertigkeitseinheit 2000 gemacht wird.
Die Signifikanz-Zähleinrichtung 2004 wird mit einer Schwelle verglichen und der
insgesamt Null-Ausgang wird nur angegeben, wenn der Wert der Zählereinrichtung
größer ist als die Schwelle.
In einer Ausführungsform ist die Signifikanz-Kategorie-Eingabe in den Baumspeicher
1703 (gezeigt in Fig. 21 und unten beschrieben) der Ausgang der Signifikanz-Zähl
einrichtung 2004. In dieser Ausführungsform des Kontextmodells (z. B. Bit-Signifikanz-
Einbettungseinheit) liegt die Anzahl der Bitebenen der Signifikanz-Kategorie zugrunde,
und es gibt 17 verschiedene Signifikanz-Kategorien. Dies ist eine willkürliche bzw.
beliebige Wahl. In einer anderen Ausführungsform können Bitebenen kombiniert
werden, um weniger Signifikanz-Kategorien zu erzeugen. Auch kann Pegelinformation
zu Bitebeneninformation hinzuaddiert werden, um mehr Signifikanz-Kategorien zu
erzeugen. Mehr Signifikanz-Kategorien könnten eine bessere verlustbehaftete Kom
pression zur Verfügung stellen, während weniger die Hardwarekomplexität verringern
könnten.
Die Fig. 21 ist ein Blockdiagramm einer Ausführungsform der Baumspeichereinheit
gemäß der vorliegenden Erfindung. Bezugnehmend auf Fig. 21 weist der Speicher 2101
angemessenen Platz zum Speichern einer Entscheidung und einer Signifikanzanzeige für
jede mögliche Entscheidung auf. In einer Ausführungsform für eine Pegel-Zerlegung mit
17 Signifikanzpegeln ist die Anzahl der Orte bzw. Stellen im Speicher 2101 gleich zu 85
× 17 = 1445.
Um auf den Speicher 2101 zuzugreifen, werden Adressen erzeugt. Die Zählereinrichtung
2102 ist anfangs Null. Wenn der Entscheidungsgenerator 2008 nicht den Insgesamt-Null-
Eingang angibt, wird der Wert in der Zählereinrichtung 2102 verwendet, um den
Speicher zu adressieren. Wenn der Entscheidungsgenerator 2008 den Starteingang
angibt, wird der gegenwärtige Wert der Zählereinrichtung 2102 in einem der Register
2110-2112 gemäß dem Startpegel gespeichert, der als Auswählmechanismus tätig ist.
Die Zählereinrichtung 2102 wird dann heraufgesetzt.
Wenn der Entscheidungsgenerator 2008 den Insgesamt-Null-Eingang angibt, ist der Wert
in dem Register (z. B. 2110, 2111, 2112), der durch den Pegeleingang ausgewählt ist,
verwendet, um den Speicher 2101 zu adressieren, und dieser Wert plus Eins wird in die
Zählereinrichtung 2102 geladen. Dies bewirkt, daß die für die insignifikanten Nachkom
men eines insignifikanten Elternteils bzw. Stammes verwendeten Speicherstellen bzw.
-orte ignoriert werden.
Während der Speicherausgabe wird die Zählereinrichtung 2102 herabgesetzt, um die
Adresse der Stelle, die ausgegeben werden soll, zur Verfügung zu stellen. Die Ausgabe
(und Herabsetzung) wird angehalten, wenn die Zählereinrichtung 2102 Null erreicht.
Der Ausgang von der Baumspeichereinheit 2100 wird durch einen Entropiecodierer
empfangen, der die Entscheidung bei der spezifizierten Signifikanz bzw. Wertigkeit
angemessen codiert.
Für einen Realzeitbetrieb können zwei Baumspeichereinheiten verwendet werden, so daß
eine für die Eingabe verwendet wird, während die andere für die Ausgabe verwendet
wird.
In einer Ausführungsform gemäß der vorliegenden Erfindung verwendet das Nullbaum-
Kontextmodell einen unnormierten 1 + Z-1 Tiefpaßfilter. Jedoch kann das Nullbaum-
Kontextmodell mit normierten Filtern verwendet werden, wie etwa
Um normierte Filter zu verwenden, kann eine Ausrichtungs- bzw. Anordnungseinheit,
wie etwa eine Anordnungseinheit 2200 gemäß Fig. 22, zwischen dem Vorwärts-Klein
wellenfilter 1000 und dem Kontextmodell 105 verwendet werden, um die Energie zu
kompensieren, die von dem unnormierten Filter gewonnen (oder alternativ verloren)
worden ist, was die Kompression verbessert. Da die Ausrichtung bzw. Anordnung eine
nicht-einheitliche Quantisierung der Verlustoperation ermöglicht, kann die Ausrichtung
bzw. Anordnung die sichtbare bzw. visuelle Qualität von verlustbehafteten Bildwie
derherstellungen verstärken. In dem eindimensionalen Fall würden Koeffizienten von
jedem Pegel bzw. Niveau des Baumes unterschiedliche Ausrichtungen bzw. Anord
nungen aufweisen (Divisoren = √, 2, 2 √, 4, Multiplikatoren = 2 √, 2, √, 1). In
dem zweidimensionalen Fall würden die Divisoren 2, 4, 8, 16 sein und die Multiplikato
ren würden 8, 4, 2, 1 sein.
Da die Ausrichtung bzw. Anordnung gerade für das Gruppieren gleicher bzw. ähnlicher
binärer Entscheidungen für die Codierung ist, ist die Verwendung der genauen Normie
rungswerte nicht kritisch. Die Ausrichtung bzw. Anordnung muß während der Decodie
rung umgekehrt bzw. invertiert werden, so daß sowohl Multiplikation als auch Division
erforderlich sind. Die Verwendung von Faktoren/Divisoren, die eine Potenz von Zwei
sind, würde es ermöglichen, effiziente Hardware-Verschiebungen statt dessen durch
zuführen. Wenn Koeffizienten mit einer Potenz von Zwei multipliziert werden, brauchen
die weniger signifikanten addierten bzw. hinzugefügten Null-Bits nicht codiert zu
werden.
Jedoch kann anstelle einer Einschränkung der Anordnungs- bzw. Ausrichtungsfaktoren/
Divisoren auf eine Potenz von Zwei eine Annäherung wie √ ≈ 1,5 oder √ ≈ 2 ÷
1,5 mit dem folgenden Verfahren verwendet werden. Anstelle von Multiplikations-/
Divisions-Koeffizienten durch die Faktoren/Divisoren würden nur die "Signifikant"-
Koeffizienten durch den Faktor/Divisor skaliert werden. Die (Vor-)Zeichen-/Größen
ordnungseinheit kann, wie in Fig. 23 gezeigt, modifiziert werden, um einen "1,5"-
Prioritätscodierer 2301 zu enthalten, der die Position entweder (1) des signifikantesten
"1"-Bits, falls das nächst-signifikanteste Bit ebenfalls "1" ist, oder andererseits (2)
dasjenige, das geringer ist als die Stelle bzw. Position des signifikantesten "1"-Bits
zurückgibt. Eine Wahrheitstabelle für einen "1,5"-Prioritätscodierer für 3 Eingangsbits
ist in der Tabelle 5, gezeigt.
Eingabe (binär) | |
Ausgabe | |
001 | |
0 | |
010 | 0 |
011 | 1 |
100 | 1 |
101 | 1 |
110 | 2 |
111 | 2 |
Abhängig von dem Niveau des Koeffizienten, der durch den gegenwärtigen Indexwert
angezeigt wird, wählt ein Multiplexer 2302 die Signifikanz bzw. Wertigkeit entweder
des Standard-Prioritätscodierers oder des "1,5"-Prioritätscodierers. Immer wenn die
"1,5"-Ausrichtung bzw. -Anordnung verwendet wird, enthält die Mantisse N + 1 Bits,
wobei N der signifikante Wert ist. Ansonsten enthält die Mantisse N Bits.
Eine Ausrichtungs- bzw. Anordnungseinheit 2200, die einen Multiplexer mit zwei
Eingängen aufweist, der als eine Verschiebungseinrichtung in die Tat umgesetzt werden
kann und richtet aus bzw. ordnet an um 1 oder 2. Wird dies mit der 1,5-Anordnung
bzw. -ausrichtung, die durch die (Vor-)Zeichen-/Größenordnungseinheit zur Verfügung
gestellt wird, kombiniert, so ermöglicht dies die Ausrichtung bzw. Anordnung von 1,
1,5, 2 oder 3, was eine gute Annäherung der gewünschten Multiplizierer für eindimen
sionale Signale ist, da die Zahlen einfacher sind (z. B. Potenzen von Zwei). (Für zweidi
mensionale Signale, wie Bilder, sind die Zahlen einfacher.) Während der Decodierung
ist das N+2-te Bit der Mantisse (welches nicht codiert ist), das Komplement des n+1-ten
Bits, wenn der "1,5"-Prioritätscodierer verwendet wird.
Die Koeffizientenanordnung bzw. -ausrichtung kann zum Abstimmen des Nullbaums und
zur genaueren und nicht gleichmäßigen Quantisierung verwendet werden. Im Fall von
Bildern (zweidimensionalen Signalen) richtet eine Ausführungsform der RTS-Trans
formation die Koeffizienten durch Multiplizieren des Frequenzbandes mit den in Fig. 31
dargestellten Zahlen aus bzw. ordnet sie an. Das Multiplizieren dieser Zahlen resultiert
in die RTS-Transformation, die eine sehr gute Annäherung an die genauen wiederherge
stellten Kleinwellen der TS-Transformation ist.
Der Entropiecodierer muß das Anordnungs- bzw. Ausrichtungsverfahren in Betracht
ziehen, um effizient zu sein.
Ein alternatives Verfahren des frequenzbasierenden Modellierens verwendet teilweise
bzw. bruchstückhafte Bitebenen oder teilweise bzw. bruchstückhafte Signifikanz- bzw.
Wertigkeitsbits. Eine Umsetzung von diesen ist die zweifache Verarbeitung jeder
Bitebene, so daß die Durchläufe einen A1-Durchlauf, einen B1-Durchlauf, einen A0-
Durchlauf und einen B0-Durchlauf enthalten. Man bemerke, daß die Namen der Durch
läufe ausgewählt wurden, weil der A1-Durchlauf Koeffizienten behandelt bzw. handhabt,
die mit "11" beginnen und der A0-Durchlauf jene handhabt bzw. behandelt, die mit
"10" beginnen.
Während des A1-Durchlaufs für eine Bitebene S ist ein Koeffizient in der A-Gruppe nur
signifikant, wenn sowohl Bits S als auch S-1 nicht Null sind. Während des A2-Durch
laufs ist ein Koeffizient in der A-Gruppe signifikant, falls das Bit S nicht Null ist. Da
die zwei signifikantesten Bits bekannt sind, brauchen der B1-Durchlauf und der B0-
Durchlauf nur S-1 Bits zu verarbeiten (unter der Annahme, daß S=0 die am wenigsten
signifikante Bitebene ist).
Da abwechselnde bruchstückhafte bzw. teilweise Bitebenen sich voneinander um einen
Faktor 1,5 oder 2/1,5 unterscheiden, kann die Anordnung für unterschiedliche Pegel
durch Gruppieren der gewünschten teilweisen Bitebenen für jeden Pegel erzielt werden.
Die teilweisen bzw. bruchstückhaften Bitebenen verursachen eine genauere Modellierung
der Daten durch das Eltern- bzw. Stamm-/Nachkommen-Verhältnis, das durch das
frequenzbasierende Kontextmodell verwendet wird. Mehr als zwei Durchläufe, beispiels
weise vier oder acht Durchläufe könnten für eine noch genauere Modellierung verwendet
werden. Zum Beispiel würde in dem Fall mit vier Durchläufen der A11-Durchlauf
Koeffizienten behandeln bzw. handhaben, die mit "111" beginnen. Die anderen Durch
läufe würden "110", "101" und "100" handhaben. Eine weniger genaue Modellierung
könnte ebenfalls verwendet werden. Zum Beispiel könnte ein Durchlauf nur für jede
andere Bitebene vorgenommen werden. In dem Fall der weniger genauen Modellierung
werden mehr Bits durch die B-Gruppe codiert.
Das Speichermanagement für codierte Daten wird in dem System mit einem Durchlauf
für Systeme, die sämtliche der Daten im Speicher abspeichern, und für Systeme vor
gestellt, die die Daten in einem Kanal übertragen. In dem System mit einem Durchlauf
müssen codierte Daten so gespeichert werden, daß sie in der eingebetteten Kausalart
bzw. -mode zugegriffen werden können, so daß weniger signifikante bzw. wertige Daten
mißachtet werden können, ohne signifikantere Daten zu verlieren. Da codierte Daten
eine variable Länge aufweisen, kann eine Zuweisung dynamischen Speichers verwendet
werden.
Gemäß einer Ausführungsform nach der vorliegenden Erfindung verwendet das eingebet
tete Codierungsschema 18 Bitebenen und überträgt 18 Signifikanz- bzw. Wertigkeits
pegel auf die Daten. Der Codierer muß in einem System mit einem Durchlauf "kausal
einbettend" sein. Die Decodierungsereignisse, die einer Bitebene entsprechen, erfordern
keine Informationen von Bitebenen geringerer Ordnung. In dem Fall mit einem Durch
lauf werden üblicherweise sämtliche der Bits eines Baumes codiert, bevor irgendwelche
der Bits des nächsten Baumes codiert werden, so daß Bits unterschiedlicher Signifikanz
bzw. Wertigkeit nicht getrennt werden. Für Codierer, die keinen inneren Zustand bzw.
internen Zustand verwenden, wie Huffman-Codierer, ist dies kein Problem. Jedoch
verwenden viele kompliziertere Komprimierer mit besserer Komprimierung interne bzw.
innere Zustände.
Ein Weg, dieses Problem für diese Codierer zu lösen, ist es, 18 verschiedene Codierer,
vielleicht 18 Q-Codiererchips, zu verwenden. Eine Technik, die die Verwendung von 9
Q-Codiererchips ermöglicht, ist in dem US-Patent Nr. 5,097,261 (Langdon, Jr.) be
schrieben, betitelt mit "Data Compression for Recording on a Record Medium", erteilt
am 17. März 1992. Eine bessere Art verwendet einen in einer Leitung bzw. in einer
Reihe angeordneten Codierer, um verschiedene virtuelle Codes mit einem einzigen
physikalischen Codierer in die Tat umzusetzen, so wie es in der US-Patentaumeldung
mit der Serial No. 08/016,035, betitelt mit "Method and Apparatus for Parallel Deco
ding and Encoding of Data", eingereicht am 10. Februar 1993, beschrieben wird. In
einem solchen Codierer sind die mehrfachen bzw. multiplen Bitgeneratorzustände für
jede Wahrscheinlichkeit jeweils einem Teil der Daten zugeordnet. Zum Beispiel könnte
jeder von 18 Zuständen einer bestimmten Bitebene für 18 Bitdaten zugeordnet werden.
Register in der Verschiebungseinrichtung in dem Codierer sind ebenfalls jedem Teil der
Daten zugeordnet. In dem Codierer wird keine Verschachtelung durchgeführt; jede Art
von Daten wird einfach bitgestapelt bzw. nach Bits abgelegt.
In Ausführungsformen entweder mit mehrfachen bzw. multiplen physikalischen Codie
rern oder virtuellen Codierern wird Speicher jedem Teil der Daten zugeordnet. Wenn
die Komprimierung vollständig ist, ist eine verknüpfte Liste, die den zugeordneten
Speicher plus den Inhalt des zugeordneten Speichers beschreibt, das Ergebnis.
Falls der Speicher übergeht, bewirkt die Speicherzuordnungswegbestimmung, daß
wichtigere Daten die weniger wichtigen Daten überschreiben. Zum Beispiel kann das am
wenigsten signifikante Bit von numerischen Daten zuerst überschrieben werden. Die
Information, die beschreibt, wie Speicher zugeordnet wird, muß zusätzlich zu den
codierten Daten gespeichert werden.
Die Fig. 24 zeigt ein Beispiel einer dynamischen Speicherzuordnungseinheit für drei
Kategorien der Signifikanz bzw. Wertigkeit. Nur drei Kategorien werden beschrieben,
um eine Verundeutlichung der vorliegenden Erfindung zu vermeiden; typischerweise
würde eine große Anzahl von Kategorien, wie etwa 8, 16 oder 18 verwendet werden.
Ein Registerfeld (oder anderer Speicher) hält einen Zeiger für jede Signifikanz bzw.
Wertigkeitskategorie und einen anderen Zeiger, um den nächsten freien Speicherplatz
anzuzeigen. Der Speicher wird in Seiten fester Größe unterteilt.
Eingangs zeigt jeder Zeiger, der einer Signifikanz-Kategorie zugeordnet ist, auf den
Beginn einer Seite des Speichers und der freie Zeiger deutet auf die nächste verfügbare
Seite des Speichers. Die codierten Daten, die mit einer Signifikanz-Kategorie identifi
ziert werden, werden an dem Speicherort gespeichert, der durch den entsprechenden
Zeiger adressiert ist. Der Zeiger wird dann auf den nächsten Speicherplatz bzw. -ort
erhöht bzw. inkrementiert.
Wenn der Zeiger das Maximum für die gegenwärtige Seite erreicht, wird die Adresse
des Starts der nächsten freien Seite, die in dem freien Zeiger gespeichert ist, mit der
gegenwärtigen Seite als Verbindung bzw. Verknüpfung gespeichert. In einer Ausfüh
rungsform kann der Teil des codierten Datenspeichers oder eines getrennten Speichers
oder Registerfeldes für diesen Zweck verwendet werden. Anschließend wird der gegen
wartige Zeiger auf die nächste freie Seite gesetzt. Der freie Zeiger wird erhöht. Diese
Schritte bewirken, daß eine neue Seite des Speichers einer bestimmten Signifikanz- bzw.
Wertigkeits-Kategorie zugeordnet wird und stellt Verbindungen bzw. Verknüpfungen zu
Seiten des Speichers zur Verfügung, die Daten für eine allgemeine Signifikanz-Kategorie
enthalten, so daß die Ordnung der Zuteilung während des Decodierens bestimmt werden
kann.
Wenn sämtliche Seiten in dem Speicher in Benutzung sind und mehr Daten vorhanden
sind, die signifikanter sind als die wenig signifikanten Daten im Speicher, kann eine
Neuzuordnung durchgeführt werden. Drei derartige Neuzuordnungstechniken werden
beschrieben. In sämtlichen drei Fällen wird Speicher, der den weniger bzw. am wenig
sten signifikanten Daten zugeordnet ist, signifikanteren Daten neu zugeordnet und keine
weniger bzw. am wenigsten signifikanten Daten werden länger gespeichert.
Zuerst wird die erste gegenwärtig durch die am wenigsten signifikanten Daten ver
wendete Seite einfach den mehr signifikanten Daten zugeordnet. Da die meisten typi
schen Entropiecodierer interne Zustandsinformationen verwenden, wird sämtliche der
weniger bzw. am wenigsten signifikanten Daten, die zuvor in dieser Seite gespeichert
wurden, verloren.
Zweitens wird die gegenwärtig durch die am wenigsten signifikanten Daten verwendete
Seite den signifikanteren Daten zugeordnet. Anders als bei dem vorherigen Fall wird der
Zeiger auf das Ende der Seite gesetzt und signifikantere Daten werden in die Seite
geschrieben, wobei der entsprechende Zeiger erniedrigt bzw. dekrementiert wird. Dies
hat den Vorteil, daß die am wenigsten signifikanten Daten bei dem Beginn von der Seite
bewahrt werden, wenn die signifikanteren Daten nicht die gesamte Seite erfordern.
Drittens kann anstelle der gegenwärtigen Seite der am wenigsten signifikanten Daten, die
neu zugeordnet werden, irgendeine Seite mit am wenigsten signifikanten Daten neu
zugeordnet werden. Dies erfordert, daß die codierten Daten für sämtliche Seiten un
abhängig codiert werden, was die erzielte Komprimierung verringern kann. Es erfordert
auch, daß die uncodierten Daten, die dem Beginn sämtlicher Seiten entsprechen, erkannt
bzw. identifiziert werden. Da eine beliebige Seite am wenigsten signifikanter Daten
außer Acht gelassen werden kann, ist eine größere Flexibilität bei der Quantisierung
verfügbar.
Die dritte Alternative kann besonders vorteilhaft in einem System sein, das eine feste
Komprimierungsrate über Bereiche des Bildes erzielt. Eine spezifizierte Anzahl von
Speicherseiten kann einem Bereich des Bildes zugewiesen werden. Ob weniger signifi
kante Daten zurückbehalten werden oder nicht, kann von der in einem bestimmten
Bereich erzielten Komprimierung abhängen. Man beachte, daß der einem Bereich
zugeordnete Speicher nicht vollständig in Benutzung genommen sein kann, falls ver
lustlose Komprimierung weniger als die zugeordnete Speichermenge erfordert. Die
Erzielung einer festen Kompressionsrate für einen Bereich des Bildes kann einen
wahlfreien Zugriff zu den Bildbereichen unterstützen.
Wenn die Komprimierung vollständig ist, können die Daten übertragen werden, falls
gewünscht zu einem Kanal oder einer Speichereinrichtung, in der Ordnung der Signifi
kanz bzw. Wertigkeit. Die verschiedenen Verknüpfungen und Zeiger würden dann nicht
mehr benötigt werden und eine Decodierung mit mehrfachen Durchläufen könnte
durchgeführt werden. Alternativ können die Zeiger zu den Daten für jede Signifikanz für
eine Decodierung mit einem Durchlauf aufrechterhalten werden.
In einigen Anwendungen können einige Signifikanz- bzw. Wertigkeits-Kategorien nicht
mehr verwendet werden. Zum Beispiel könnte ein 16-Bit-Komprimierer für ein 12-Bit-
Medizinalbild verwendet werden, so daß die Signifikanz-Kategorien, die zu Bitebenen
15 . . . 12 korrespondieren, ungenutzt sein würden. Bei Umsetzungen mit großen Seiten
und vielen ungenutzten Signifikanz-Kategorien würde dies Speicher verschwenden (falls
das System nicht im voraus wüßte, daß einige Kategorien unbenutzt sind), da der
Speicher diesen nicht zugeordnet werden muß. Eine andere Lösung für diese Speicher
verschwendung wäre es, einen kleinen Speicher (oder Register) zu verwenden, um eine
Zahl bzw. Zählung für jede Signifikanz-Kategorie zu halten. Die Zahl bzw. Zählung
würde die Anzahl von Entscheidungen "insignifikant, nicht signifikante Nachkommen"
verfolgen bzw. auf dem laufenden halten, die auftreten, bevor irgendwelche anderen
Entscheidungen vorkommen. Der Speicher, der zum Speichern dieser Zählungen bzw.
dieser Zähler erforderlich ist, muß gegenüber dem durch unbenutzte Signifikanz-Katego
rien verwendeten Speicher aufgerechnet ("traded off") werden.
Die Fähigkeit, Daten in jede Seite von beiden Enden einzuschreiben, kann verwendet
werden, den insgesamt in dem System verfügbaren Speicherplatz besser auszunutzen.
Wenn sämtliche Seiten zugewiesen sind, kann jede Seite, die ausreichend freien Platz an
dem Ende zur Verfügung hat, für die Verwendung von dem Ende zugewiesen werden.
Die Fähigkeit, beide Enden einer Seite zu verwenden, muß gegenüber den Kosten für
die Verfolgung des Platzes, wo die zwei Arten von Daten aufeinandertreffen, abgewogen
werden. Man bemerke, daß dies von dem Fall unterschiedlich ist, wo einer der Daten
typen nicht signifikant war und einfach überschrieben werden konnte.
In einem System, in dem Daten in einem Kanal übertragen werden, anstelle in einem
Speicher gespeichert zu werden, und Seiten fester Größe des Speichers verwendet
werden kann (aber nur eine Seite pro Signifikanz-Kategorie erforderlich ist), wenn eine
Seite des Speichers voll ist, diese in dem Kanal übertragen werden und der Speicherplatz
kann, sobald die Daten übertragen sind, wieder verwendet werden. Bei einigen Anwen
dungen kann die Seitengröße des Speichers die Größe des Datenpaketes sein, die in dem
Kanal verwendet wird, oder ein Mehrfaches der Paketgröße. (Man bemerke, daß in
einer Ausführungsform zwei Seiten pro Signifikanzpegel verwendet werden können, so
daß Daten in eine geschrieben werden können, während die andere zur Ausgabe zu dem
Kanal gelesen wird.)
In einigen Kommunikationssystemen, z. B. ATM (asynchroner Übertragungsmodus)
(Asynchrounous Transfer Mode) können Prioritäten den Paketen zugeordnet werden.
ATM weist zwei Prioritätspegel, eine Primäre und eine Sekundäre, auf. Sekundäre
Pakete werden nur übertragen, wenn eine hinreichende Bandbreite zur Verfügung stellt.
Eine Schwelle kann verwendet werden, um zu bestimmen, welche Signifikanz-Katego
rien primär sind und welche sekundär sind. Ein anderes Verfahren wäre die Verwen
dung einer Schwelle bei dem Codierer, um keine Signifikanz-Kategorien zu übertragen,
die weniger signifikant waren als die Schwelle.
In einigen Anwendungen ist keine perfekte (verlustfreie) Wiederherstellung erforderlich.
Es kann wünschenswert sein, eine Komprimierung mit einem bestimmten maximalen
Spitzenfehler zu erzielen. Der Spitzenfehler sei ±E. Dies kann erzielt werden, indem
die komprimierten Daten abgeschnitten werden, so daß sämtliche weniger signifikanten
Daten, die nicht benötigt werden, um die gewünschte Auflösung bzw. Genauigkeit zu
erzielen, außer Acht gelassen werden.
Ein anderer Weg zur Erzielung der Komprimierung mit einem bestimmten maximalen
Spitzenfehler ist es, durch einen Wert zu teilen (mit ganzzahliger Division), der geringer
ist als oder gleich ist zu 2×E+1 für jedes Bildelement des zu komprimierenden Bildes.
Während der Wiederherstellung wird jedes Bildelement in dem Bild verarbeitet mit:
Ausgabe-Bildelement = (2×E+1) × Eingabe-Bildel 04426 00070 552 001000280000000200012000285910431500040 0002019534943 00004 04307ement+E.
(Alternativ kann anstelle des Addierens von E während der Dekomprimierung eine
Subtraktion während der Komprimierung vor der Division durch 2×E+1 auftreten.)
Ein anderer Weg, um die Komprimierung mit einem spezifizierten maximalen Spitzen
fehler zu erzielen, ist es, die Division und die Multiplikation durch Verschiebungen zu
ersetzen. Der Verschiebungsbetrag ist
Weil die Verschiebung ange
nehm bzw. angemessen ist, kann eine bessere Fehlerspezifikation (die den Spitzenfehler
ersetzt) Fehler der Form (2n < Fehler < -2n] sein.
Das Vorhergehende sollte nicht mit der Quanitisierung von Koeffizienten durchein
andergebracht werden, die im Stand der Technik von verlustbehafteten Bildkomprimie
rungen wohlbekannt ist. In vielen verlustbehafteten Komprimierungssystemen (z. B.
JPEG) werden Transformationsbereichskoeffizienten einem maximalen Spitzenfehler
zugeordnet, welcher den Spitzenfehler des Bildes nur indirekt steuert. Ein kritischer
Unterschied ist, daß die vorliegende Erfindung die Quantisierung auf Bildelemente
durchführt und verlustlose Komprimierung von Koeffizienten verwendet.
Die Transformationsbereichsquantisierung kann ebenfalls verwendet werden. Viele
Koeffizienten haben eine Wirkung auf den Spitzenfehler, der sich durch mehrere Pegel
bzw. Niveaus der Transformation hindurchzieht. Es ist leichter, den Effekt auf den
Spitzenfehler für die Hochpaßkoeffizienten zu bestimmen, die keine Nachkommen
haben.
Man ziehe ein eindimensionales Bild in Betracht, das mit einem maximalen Spitzenfehler
von ±E zu codieren ist. Dies kann durch Quantisieren der Hochpaßkoeffizienten der
feinsten Einzelheit zu ±2E erzielt werden. Für ein zweidimensionales Signal kann, da
es zwei Anwendungen des Hochpaßfilters gibt, die Koeffizienten HH der feinsten
Einzelheit zu ±4E quantisiert werden.
Eine Alternative, die Quantisierung des Eingabebildes zu verwenden, ist, die Entschei
dungen zu dem Entropiecodierer zu steuern. Ein Beispiel lautet wie folgt. Für jeden
Koeffizienten wird, falls die Einstellung des Koeffizienten auf Null nicht den Fehler in
irgendeinem Bildelement durch den Koeffizienten beeinträchtigen würde, um den
maximalen Fehler zu überschreiten, der Koeffizient auf Null gesetzt werden. In einigen
Umsetzungen werden nur bestimmte Koeffizienten geprüft, vielleicht nur die AC-
Koeffizienten, die keine Nachkommen haben. Die Koeffizienten können mit einer
gierigen Strategie in Betracht gezogen werden, bei der einer zu einer Zeit bzw. einem
Zeitpunkt in Betracht gezogen wird. Andere Schritte dagegen können kleinere Gruppen
von Koeffizienten in Betracht ziehen und den größten möglichen Untersatz der Gruppe
zu Null wählen.
Während viele Änderungen und Modifikationen der vorliegenden Erfindung möglich
sind, wird bei einem Fachmann aus dem Stand der Technik kein Zweifel darüber
auftreten, nachdem er die vorangehende Beschreibung gelesen hat, daß die bestimmte
Ausführungsform, die durch Darstellungen gezeigt und beschrieben worden ist, in keiner
Weise als einschränkend aufzufassen ist. Deshalb sind Bezugnahmen auf Einzelheiten
der bevorzugten Ausführungsform nicht als dem Schutzbereich der Ansprüche ein
schränkend beabsichtigt, welche nur die Merkmale wiedergeben, die als wesentlich für
die Erfindung angesehen werden.
Ein Verfahren und eine Vorrichtung zum Codieren und Decodieren von Daten werden
beschrieben. Die vorliegende Erfindung enthält ein Verfahren und eine Vorrichtung zum
Erzeugen transformierter Signale in Antwort auf Eingabedaten. In einer Ausführungs
form werden die transformierten Signale unter Verwendung einer reversiblen Wellen
bzw. Kleinwellen-Transformation erzeugt. Die vorliegende Erfindung enthält auch ein
Verfahren und eine Vorrichtung zum Komprimieren der transformierten Signale in
Daten, die eine verlustlos komprimierte Version der Eingabedaten darstellen. In einer
Ausführungsform zerlegt die vorliegende Erfindung die Eingabedaten unter Verwendung
eines reversiblen Filters nichtminimaler Länge. Die Zerlegung kann unter Verwendung
mehrerer bzw. mehrfacher eindimensionaler Filter durchgeführt werden.
Claims (24)
1. Codierer zum Codieren von Eingabedaten zu einem kompri
mierten Datenstrom, wobei der Entropiecoderier aufweist:
einen reversiblen bzw. umkehrbaren Kleinwellenfilter zum Transformieren der Eingabedaten in eine Mehrzahl von Koeffi zienten;
einen Einbettungscodierer der an die reversiblen Klein wellenfilter bzw. Filter angeschlossen ist, um Einbettungs codieren an der Mehrzahl der Koeffizienten durchzuführen, so daß ein Bitstrom erzeugt wird; und
einen Entropiecodierer, der an dem Einbettungscodierer angeschlossen ist bzw. angekoppelt ist, um Entropiecodierung für bzw. an dem Bitstrom durchzuführen, um codierte Daten zu erzeugen.
einen reversiblen bzw. umkehrbaren Kleinwellenfilter zum Transformieren der Eingabedaten in eine Mehrzahl von Koeffi zienten;
einen Einbettungscodierer der an die reversiblen Klein wellenfilter bzw. Filter angeschlossen ist, um Einbettungs codieren an der Mehrzahl der Koeffizienten durchzuführen, so daß ein Bitstrom erzeugt wird; und
einen Entropiecodierer, der an dem Einbettungscodierer angeschlossen ist bzw. angekoppelt ist, um Entropiecodierung für bzw. an dem Bitstrom durchzuführen, um codierte Daten zu erzeugen.
2. Codierer zum Codieren von Eingabedaten, der aufweist:
einen Transformierungscodierer, der angekoppelt bzw. angeschlossen ist, um die Eingabedaten zu empfangen, und eine Reihe bzw. Serie von Koeffizienten zu erzeugen, wobei die Reihe bzw. Serie von Koeffizienten eine Zerlegung der Ein gabedaten darstellt; und
einen Einbettungscodierer, der angekoppelt bzw. ange schlossen ist, um die Serie bzw. Reihe von Koeffizienten zu empfangen und eine Bit-Signifikanz- bzw. -Wertigkeits-Codie rung auf die Reihe von Koeffizienten anzuwenden, um codierte Daten zu erzeugen, wobei der Einbettungscodierer codierte Daten vor dem Empfang sämtlicher der Reihe bzw. Serie von Koeffizienten erzeugt.
einen Transformierungscodierer, der angekoppelt bzw. angeschlossen ist, um die Eingabedaten zu empfangen, und eine Reihe bzw. Serie von Koeffizienten zu erzeugen, wobei die Reihe bzw. Serie von Koeffizienten eine Zerlegung der Ein gabedaten darstellt; und
einen Einbettungscodierer, der angekoppelt bzw. ange schlossen ist, um die Serie bzw. Reihe von Koeffizienten zu empfangen und eine Bit-Signifikanz- bzw. -Wertigkeits-Codie rung auf die Reihe von Koeffizienten anzuwenden, um codierte Daten zu erzeugen, wobei der Einbettungscodierer codierte Daten vor dem Empfang sämtlicher der Reihe bzw. Serie von Koeffizienten erzeugt.
3. Codierer nach Anspruch 2, in dem der Transformations
codierer und der Einbettungscodierer betrieben werden, um
codierte Daten von den Eingangsdaten in einem Durchlauf zu
erzeugen.
4. Kleinwellen-Transformationsfilter zur Filterung von
Eingabedatensignalen, der aufweist:
einen ersten Addierer zum Addieren eines ersten Proben bzw. Signalpaares der Eingabedatensignale, um ein erstes Ergebnis zu erzeugen;
eine erste Ausgangslogik, um einen ersten Tiefpaßkoeffi zienten auszugeben, der auf dem ersten Ergebnis basiert;
einen ersten Subtrahierer, der Eingaben eines Tiefpaßko effizienten und des ersten Tiefpaßkoeffizienten hat, so daß der Tiefpaßkoeffizient von dem ersten Tiefpaßkoeffizienten subtrahiert wird, um ein zweites Ergebnis zu erzeugen, wobei der Tiefpaßkoeffizient durch den ersten Subtrahierer als eine Rückführung (feed back) empfangen wird;
einen zweiten Subtrahierer, um ein zweites Paar von Proben bzw. Abtastungssignalen des Eingangsdatensignals von jedem anderen abzuziehen, um ein drittes Ergebnis zu erzeu gen;
einen zweiten Addierer, der angekoppelt bzw. angeschlos sen ist, um einen Eingang, der auf dem dritten Ergebnis und dem zweiten Ergebnis basiert, zu empfangen, um ein viertes Ergebnis zu erzeugen;
eine zweite Ausgangslogik, die angeschlossen bzw. ange koppelt ist, um einen zweiten Tiefpaßkoeffizienten zu erzeu gen, der auf dem vierten Ergebnis basiert, so daß der Filter den ersten und den zweiten Tiefpaßkoeffizienten ausgibt.
einen ersten Addierer zum Addieren eines ersten Proben bzw. Signalpaares der Eingabedatensignale, um ein erstes Ergebnis zu erzeugen;
eine erste Ausgangslogik, um einen ersten Tiefpaßkoeffi zienten auszugeben, der auf dem ersten Ergebnis basiert;
einen ersten Subtrahierer, der Eingaben eines Tiefpaßko effizienten und des ersten Tiefpaßkoeffizienten hat, so daß der Tiefpaßkoeffizient von dem ersten Tiefpaßkoeffizienten subtrahiert wird, um ein zweites Ergebnis zu erzeugen, wobei der Tiefpaßkoeffizient durch den ersten Subtrahierer als eine Rückführung (feed back) empfangen wird;
einen zweiten Subtrahierer, um ein zweites Paar von Proben bzw. Abtastungssignalen des Eingangsdatensignals von jedem anderen abzuziehen, um ein drittes Ergebnis zu erzeu gen;
einen zweiten Addierer, der angekoppelt bzw. angeschlos sen ist, um einen Eingang, der auf dem dritten Ergebnis und dem zweiten Ergebnis basiert, zu empfangen, um ein viertes Ergebnis zu erzeugen;
eine zweite Ausgangslogik, die angeschlossen bzw. ange koppelt ist, um einen zweiten Tiefpaßkoeffizienten zu erzeu gen, der auf dem vierten Ergebnis basiert, so daß der Filter den ersten und den zweiten Tiefpaßkoeffizienten ausgibt.
5. Filter nach Anspruch 4, in dem die erste Ausgangslogik
bzw. Ausgabelogik eine Dividiereinrichtung aufweist.
6. Filter nach Anspruch 5, in dem die Divisionseinrichtung
eine Bit-Verschiebeeinrichtung aufweist.
7. Filter nach Anspruch 4, in dem die zweite Ausgangs- bzw.
Ausgabelogik eine Divisionseinrichtung aufweist.
8. Filter nach Anspruch 7, in dem die Divisionseinrichtung
eine Bit-Verschiebungseinrichtung aufweist.
9. Kleinwellen-Transformationsfilter bzw. Wellen-Transfor
mationsfilter zum Filtern eines Eingabedatensignals, der
aufweist:
einen ersten Addierer zum Addieren eines ersten Proben bzw. Abtastsignalpaares des Eingabedatensignals, um ein er stes Ergebnis zu erzeugen;
einen ersten Multiplizierer, der angekoppelt bzw. ange schlossen ist, um das erste Ergebnis zu empfangen, um das erste Ergebnis mit einem ersten Faktor zu vervielfachen bzw. zu multiplizieren zu einem zweiten Ergebnis, wobei das zweite Ergebnis als ein erster Tiefpaßkoeffizient ausgegeben wird;
einen ersten Subtrahierer, der angekoppelt bzw. ange schlossen ist, um einen Tiefpaßkoeffizienten zu empfangen und von dem zweiten Ergebnis zu subtrahieren, um ein drittes Ergebnis zu erzeugen, wobei der Tiefpaßkoeffizient durch den ersten Subtrahierer als eine Rückkopplung bzw. Feedback emp fangen wird;
einen zweiten Subtrahierer, um ein zweites Paar von Proben bzw. Abtastsignalen des Eingabedatensignals vonein ander zu subtrahieren, um ein viertes Ergebnis zu erzeugen;
eine erste Divisionseinrichtung, die angekoppelt bzw. angeschlossen ist, um das vierte Ergebnis zu empfangen, um das dritte Ergebnis durch einen zweiten Faktor zu dividieren, um ein fünftes Ergebnis zu erzeugen;
einen zweiten Addierer, der angeschlossen bzw. angekop pelt ist, um das dritte Ergebnis und das zweite Ergebnis zu empfangen und zu addieren;
eine zweite Divisionseinrichtung, die angekoppelt bzw. angeschlossen ist, um das sechste Ergebnis zu empfangen und das sechste Ergebnis durch einen dritten Faktor zu dividie ren, um einen zweiten Tiefpaßkoeffizienten zu erzeugen, wobei der erste Tiefpaßkoeffizient und der dritte Tiefpaßkoeffi zient von dem Filter ausgegeben werden.
einen ersten Addierer zum Addieren eines ersten Proben bzw. Abtastsignalpaares des Eingabedatensignals, um ein er stes Ergebnis zu erzeugen;
einen ersten Multiplizierer, der angekoppelt bzw. ange schlossen ist, um das erste Ergebnis zu empfangen, um das erste Ergebnis mit einem ersten Faktor zu vervielfachen bzw. zu multiplizieren zu einem zweiten Ergebnis, wobei das zweite Ergebnis als ein erster Tiefpaßkoeffizient ausgegeben wird;
einen ersten Subtrahierer, der angekoppelt bzw. ange schlossen ist, um einen Tiefpaßkoeffizienten zu empfangen und von dem zweiten Ergebnis zu subtrahieren, um ein drittes Ergebnis zu erzeugen, wobei der Tiefpaßkoeffizient durch den ersten Subtrahierer als eine Rückkopplung bzw. Feedback emp fangen wird;
einen zweiten Subtrahierer, um ein zweites Paar von Proben bzw. Abtastsignalen des Eingabedatensignals vonein ander zu subtrahieren, um ein viertes Ergebnis zu erzeugen;
eine erste Divisionseinrichtung, die angekoppelt bzw. angeschlossen ist, um das vierte Ergebnis zu empfangen, um das dritte Ergebnis durch einen zweiten Faktor zu dividieren, um ein fünftes Ergebnis zu erzeugen;
einen zweiten Addierer, der angeschlossen bzw. angekop pelt ist, um das dritte Ergebnis und das zweite Ergebnis zu empfangen und zu addieren;
eine zweite Divisionseinrichtung, die angekoppelt bzw. angeschlossen ist, um das sechste Ergebnis zu empfangen und das sechste Ergebnis durch einen dritten Faktor zu dividie ren, um einen zweiten Tiefpaßkoeffizienten zu erzeugen, wobei der erste Tiefpaßkoeffizient und der dritte Tiefpaßkoeffi zient von dem Filter ausgegeben werden.
10. Filter nach Anspruch 9, in dem die Multipliziereinrich
tung eine Verschiebungseinrichtung aufweist.
11. Filter nach Anspruch 9, in dem wenigstens eine der Divi
sionseinrichtungen eine Verschiebungseinrichtung aufweist.
12. Wellen- bzw. Kleinwellen-Transformationsfilter zum Fil
tern eines Eingangsdatensignals, der aufweist:
einen ersten Subtrahierer, um ein Paar von Tiefpaßkoef fizienten zu subtrahieren, um ein erstes Ergebnis zu erzeu gen;
einen zweiten Subtrahierer, um eine erste Eingabe, die auf dem ersten Ergebnis basiert, von einem Hochpaßkoeffizien ten zu subtrahieren, um ein zweites Ergebnis zu erzeugen;
einen ersten Addierer, um das zweite Ergebnis zu einer zweiten Eingabe, die auf einem Tiefpaßkoeffizienten basiert, zu addieren, um ein drittes Ergebnis zu erzeugen;
einen dritten Subtrahierer, um das zweite Ergebnis von der zweiten Eingabe, die auf dem Tiefpaßkoeffizienten ba siert, zu subtrahieren, um ein viertes Ergebnis zu erzeugen; wobei der Filter eine erste Probe bzw. Abtastsignal, das auf dem dritten Ergebnis und einem zweiten Ergebnis basiert, das auf dem vierten Ergebnis basiert, ausgibt.
einen ersten Subtrahierer, um ein Paar von Tiefpaßkoef fizienten zu subtrahieren, um ein erstes Ergebnis zu erzeu gen;
einen zweiten Subtrahierer, um eine erste Eingabe, die auf dem ersten Ergebnis basiert, von einem Hochpaßkoeffizien ten zu subtrahieren, um ein zweites Ergebnis zu erzeugen;
einen ersten Addierer, um das zweite Ergebnis zu einer zweiten Eingabe, die auf einem Tiefpaßkoeffizienten basiert, zu addieren, um ein drittes Ergebnis zu erzeugen;
einen dritten Subtrahierer, um das zweite Ergebnis von der zweiten Eingabe, die auf dem Tiefpaßkoeffizienten ba siert, zu subtrahieren, um ein viertes Ergebnis zu erzeugen; wobei der Filter eine erste Probe bzw. Abtastsignal, das auf dem dritten Ergebnis und einem zweiten Ergebnis basiert, das auf dem vierten Ergebnis basiert, ausgibt.
13. Filter nach Anspruch 12, der ferner einen ersten Ab
schneidemechanismus aufweist, der angekoppelt bzw. ange
schlossen ist, um das dritte Ergebnis zu empfangen und das
dritte Ergebnis abzuschneiden, um die erste Probe bzw. das
erste Abtastsignal zu erzeugen.
14. Filter nach Anspruch 12, der ferner eine Divisionsein
richtung aufweist, die an das erste Ergebnis angekoppelt bzw.
angeschlossen ist, um das erste Ergebnis durch einen ersten
Faktor zu dividieren, um den ersten Eingang bzw. Eingabe zu
erzeugen.
15. Filter nach Anspruch 12, der ferner eine Multiplizier
einrichtung aufweist, die an den Tiefpaßkoeffizienten ange
koppelt bzw. angeschlossen ist, um den Tiefpaßkoeffizienten
zu multiplizieren, um den zweiten Eingang bzw. Eingabe zu
erzeugen.
16. Codierer zum Codieren einer Mehrzahl von Datensymbolen,
der aufweist:
eine Formatierungseinheit, die angekoppelt bzw. ange schlossen ist, um die Mehrzahl von Datensymbolen zu empfangen und die Mehrzahl von Datensymbolen in einen Satz von forma tierten Datensymbolen zu formatieren;
eine Signifikanz- bzw. Wertigkeitseinheit, die an die Formatierungseinheit angekoppelt bzw. angeschlossen ist, um eine Mehrzahl von Entscheidungen in Antwort auf jedes der Mehrzahl der Datensymbole zu erzeugen;
eine Speichereinrichtung, die angekoppelt bzw. ange schlossen ist, um die Mehrzahl von Entscheidungen von der Signifikanz- bzw. Wertigkeitseinheit zum Speichern und Ausge ben zu empfangen.
eine Formatierungseinheit, die angekoppelt bzw. ange schlossen ist, um die Mehrzahl von Datensymbolen zu empfangen und die Mehrzahl von Datensymbolen in einen Satz von forma tierten Datensymbolen zu formatieren;
eine Signifikanz- bzw. Wertigkeitseinheit, die an die Formatierungseinheit angekoppelt bzw. angeschlossen ist, um eine Mehrzahl von Entscheidungen in Antwort auf jedes der Mehrzahl der Datensymbole zu erzeugen;
eine Speichereinrichtung, die angekoppelt bzw. ange schlossen ist, um die Mehrzahl von Entscheidungen von der Signifikanz- bzw. Wertigkeitseinheit zum Speichern und Ausge ben zu empfangen.
17. Codierer nach Anspruch 16, in dem die Mehrzahl von Da
tensymbolen eine Mehrzahl von Koeffizienten aufweist.
18. Codierer nach Anspruch 16, in dem die Formatierungsein
heit eine (Vor-) Zeichen-/Größenordnungseinheit aufweist, um
die Mehrzahl von Datensymbolen in den Satz von formatierten
Datensymbolen umzusetzen, die in (Vor-)Zeichen-/Größenord
nungsform formatiert sind.
19. Codierer nach Anspruch 18, in dem die (Vor-)Zeichen-/
Größenordnungseinheit aufweist:
eine Signifikanz- bzw. Wertigkeitsbestimmungseinrich tung, um eine Signifikanzanzeige für jedes Datensymbol auszu geben;
einen (Vor-)Zeichen- und Mantissengenerator, der ange koppelt bzw. angeschlossen ist, um jedes der Mehrzahl der Datensymbole zu empfangen und (Vor-)Zeichen und Mantissen für jedes der Mehrzahl von Datensymbolen zu erzeugen; und
eine Index-Zähleinrichtung zum Erzeugen eines Index für jedes der Mehrzahl von Datensymbolen.
eine Signifikanz- bzw. Wertigkeitsbestimmungseinrich tung, um eine Signifikanzanzeige für jedes Datensymbol auszu geben;
einen (Vor-)Zeichen- und Mantissengenerator, der ange koppelt bzw. angeschlossen ist, um jedes der Mehrzahl der Datensymbole zu empfangen und (Vor-)Zeichen und Mantissen für jedes der Mehrzahl von Datensymbolen zu erzeugen; und
eine Index-Zähleinrichtung zum Erzeugen eines Index für jedes der Mehrzahl von Datensymbolen.
20. Codierer nach Anspruch 19, in dem die Signifikanz- bzw.
Wertigkeitsbestimmungseinrichtung einen Prioritätscodierer
aufweist.
21. Codierer nach Anspruch 19, in dem die Signifikanz- bzw.
Wertigkeitsbestimmungseinrichtung ein Paar von Prioritätsco
dierern und eine Auswähleinrichtung aufweist, um zwischen
Ausgängen von jedem des Paares von Prioritätscodierern auszu
wählen, um die Signifikanz- bzw. Wertigkeitsanzeige auszu
geben.
22. Codierer nach Anspruch 16, der ferner einen Größenord
nungsspeicher aufweist, der angekoppelt bzw. angeschlossen
ist, um die Mehrzahl von formatierten Datensymbolen zur Spei
cherung zu empfangen.
23. Codierer nach Anspruch 22, in dem jedes der Mehrzahl von
formatierten Datensymbolen in dem Größenordnungsspeicher auf
der Grundlage eines Signifikanz- bzw. Wertigkeitspegels ge
speichert wird.
24. Codierer nach Anspruch 22, in dem der Größenordnungs
speicher eine Mehrzahl von Speicherbereichen aufweist, wobei
jedes der Mehrzahl von Speicherbereichen Daten speichert für
einen unterschiedlichen Signifikanz- bzw. Wertigkeitspegel,
der Größenordnungsspeicher ferner eine Mehrzahl von
Zähleinrichtungen bzw. Zählern aufweist, wobei jeder der
Mehrzahl von Zählern bzw. Zähleinrichtungen mit einem der
Mehrzahl der Speicherbereiche verbunden ist, um Adressen für
die Speicherung der formatierten Datensymbole zur Verfügung
zu stellen.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/310,146 US5748786A (en) | 1994-09-21 | 1994-09-21 | Apparatus for compression using reversible embedded wavelets |
US08/310,146 | 1994-09-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19534943A1 true DE19534943A1 (de) | 1996-03-28 |
DE19534943B4 DE19534943B4 (de) | 2006-01-12 |
Family
ID=23201196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19534943A Expired - Fee Related DE19534943B4 (de) | 1994-09-21 | 1995-09-20 | Vorrichtung zur Komprimierung unter Verwendung von eingebetteten Kleinwellen |
Country Status (4)
Country | Link |
---|---|
US (4) | US5748786A (de) |
JP (6) | JP3436832B2 (de) |
DE (1) | DE19534943B4 (de) |
NL (1) | NL1001248C2 (de) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0934572A1 (de) * | 1997-05-16 | 1999-08-11 | Teralogic Inc. | System und verfahren für skalierbare kodierung von verstreuten datensets |
EP1025536A1 (de) * | 1996-11-27 | 2000-08-09 | Teralogic Inc. | System und verfahren zum bearbeiten wellenartiger und umgekehrten wellenartigen transformationen von digitalen daten |
DE19819405B4 (de) * | 1997-05-01 | 2006-06-29 | Ricoh Co., Ltd. | Implementation eines reversiblen eingebetteten Wavelet-Systems |
US8565298B2 (en) | 1994-09-21 | 2013-10-22 | Ricoh Co., Ltd. | Encoder rate control |
Families Citing this family (191)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7251637B1 (en) | 1993-09-20 | 2007-07-31 | Fair Isaac Corporation | Context vector generation and retrieval |
US6173275B1 (en) * | 1993-09-20 | 2001-01-09 | Hnc Software, Inc. | Representation and retrieval of images using context vectors derived from image information elements |
US5748786A (en) * | 1994-09-21 | 1998-05-05 | Ricoh Company, Ltd. | Apparatus for compression using reversible embedded wavelets |
US6873734B1 (en) * | 1994-09-21 | 2005-03-29 | Ricoh Company Ltd | Method and apparatus for compression using reversible wavelet transforms and an embedded codestream |
US5659631A (en) * | 1995-02-21 | 1997-08-19 | Ricoh Company, Ltd. | Data compression for indexed color image data |
SE507410C2 (sv) * | 1995-11-08 | 1998-05-25 | Ericsson Telefon Ab L M | Förfarande och anordning för rörelseestimering |
US5982434A (en) * | 1996-03-22 | 1999-11-09 | Sony Corporation | Image signal coding method and device thereof, image signal decoding method and device thereof, and recording medium |
US6141452A (en) * | 1996-05-13 | 2000-10-31 | Fujitsu Limited | Apparatus for compressing and restoring image data using wavelet transform |
US6310972B1 (en) * | 1996-06-28 | 2001-10-30 | Competitive Technologies Of Pa, Inc. | Shape adaptive technique for image and video compression |
IL119523A0 (en) * | 1996-10-30 | 1997-01-10 | Algotec Systems Ltd | Data distribution system |
US5748116A (en) * | 1996-11-27 | 1998-05-05 | Teralogic, Incorporated | System and method for nested split coding of sparse data sets |
US5859604A (en) * | 1997-01-14 | 1999-01-12 | International Business Machines Corporation | Merged VLSI implementation of hardware optimized Q-Coder and software optimized QM-Coder |
US7003168B1 (en) | 1997-03-11 | 2006-02-21 | Vianet Technologies, Inc. | Image compression and decompression based on an integer wavelet transform using a lifting scheme and a correction method |
US6445823B1 (en) * | 1997-03-12 | 2002-09-03 | Texas Instruments Incorporated | Image compression |
AUPO600897A0 (en) * | 1997-04-04 | 1997-05-01 | Canon Information Systems Research Australia Pty Ltd | An efficient method of image compression comprising a low resolution image in the bit stream |
US6125201A (en) * | 1997-06-25 | 2000-09-26 | Andrew Michael Zador | Method, apparatus and system for compressing data |
US6021227A (en) * | 1997-06-30 | 2000-02-01 | Hewlett-Packard Company | Image compression system including encoder having run mode |
JP3471366B2 (ja) * | 1997-07-30 | 2003-12-02 | 三菱電機株式会社 | 画像圧縮・伸張方法および画像圧縮・伸張装置 |
EP0905651A3 (de) * | 1997-09-29 | 2000-02-23 | Canon Kabushiki Kaisha | Bildverarbeitungsverfahren und -vorrichtung |
US6956973B1 (en) * | 1997-09-30 | 2005-10-18 | Texas Instruments Incorporated | Image compression |
DE19744407C1 (de) | 1997-10-08 | 1999-02-11 | Luratech Ges Fuer Luft Und Rau | Verfahren zur mehrdimensionalen, diskreten Wavelet-Transformation und Transformationseinheit zur Durchführung des Verfahrens |
US6937659B1 (en) * | 1997-11-14 | 2005-08-30 | Ac Capital Management, Inc. | Apparatus and method for compressing video information |
US6044172A (en) * | 1997-12-22 | 2000-03-28 | Ricoh Company Ltd. | Method and apparatus for reversible color conversion |
JP3679586B2 (ja) * | 1997-12-24 | 2005-08-03 | キヤノン株式会社 | 符号化及び復号装置とその符号化及び復号方法 |
US20020044692A1 (en) * | 2000-10-25 | 2002-04-18 | Goertzen Kenbe D. | Apparatus and method for optimized compression of interlaced motion images |
JP2002503901A (ja) | 1998-02-13 | 2002-02-05 | クビス・インク | 飛越し走査移動画像の最適圧縮方法及び装置 |
US6134350A (en) * | 1998-02-18 | 2000-10-17 | Dome Imaging Systems, Inc. | Method of producing wavelets and compressing digital images and of restoring the digital images |
AUPP248498A0 (en) * | 1998-03-20 | 1998-04-23 | Canon Kabushiki Kaisha | A method and apparatus for encoding and decoding an image |
JP3639108B2 (ja) * | 1998-03-31 | 2005-04-20 | 株式会社ソニー・コンピュータエンタテインメント | 描画装置および描画方法、並びに提供媒体 |
WO1999056457A2 (en) * | 1998-04-29 | 1999-11-04 | Zulu Broadcasting Llc | Portable data transmission system for global and local computer networks |
FR2846837B1 (fr) * | 2002-11-05 | 2005-04-29 | Canon Kk | Codage de donnees numeriques avec determination d'un parcours parmi les donnees |
US6236757B1 (en) * | 1998-06-18 | 2001-05-22 | Sharp Laboratories Of America, Inc. | Joint coding method for images and videos with multiple arbitrarily shaped segments or objects |
US6215907B1 (en) * | 1998-06-26 | 2001-04-10 | Fisher-Rosemont Systems, Inc. | Recursive on-line wavelet data compression technique for use in data storage and communications |
US8050329B2 (en) * | 1998-06-26 | 2011-11-01 | Mediatek Inc. | Method and apparatus for generic scalable shape coding |
US6347155B1 (en) * | 1998-10-01 | 2002-02-12 | Sharewave, Inc. | Method and apparatus for digital data compression |
US6606416B1 (en) | 1998-10-30 | 2003-08-12 | Canon Kabushiki Kaisha | Encoding method and apparatus for representing a digital image |
AUPP686498A0 (en) * | 1998-10-30 | 1998-11-26 | Canon Kabushiki Kaisha | A decoder for decoding a coded representation of a digital image |
US6463177B1 (en) * | 1998-11-04 | 2002-10-08 | Sharp Laboratories Of America, Inc. | Dynamic management of embedded coded images in a digital storage device |
US6487319B1 (en) * | 1998-11-18 | 2002-11-26 | Sarnoff Corporation | Apparatus and method for identifying the location of a coding unit |
US6208276B1 (en) * | 1998-12-30 | 2001-03-27 | At&T Corporation | Method and apparatus for sample rate pre- and post-processing to achieve maximal coding gain for transform-based audio encoding and decoding |
US6718065B1 (en) * | 1999-02-04 | 2004-04-06 | Quvis, Inc. | Optimized signal quantification |
KR20010101951A (ko) * | 1999-02-04 | 2001-11-15 | 추후제출 | 확률적 공진과 에너지 대체를 사용하여 압축 영상의외형을 개선하는 시스템 및 방법 |
EP1157350A4 (de) * | 1999-02-04 | 2005-09-14 | Quvis Inc | Optimierte signal-quantifikation |
EP1030524A1 (de) * | 1999-02-19 | 2000-08-23 | Alcatel | Verfahren zur Kodierung eines digitalen Bildes und Koder |
US6215908B1 (en) * | 1999-02-24 | 2001-04-10 | Intel Corporation | Symmetric filtering based VLSI architecture for image compression |
JP2000295618A (ja) * | 1999-03-08 | 2000-10-20 | Texas Instr Inc <Ti> | 埋込み型ゼロトリーパターン及びビットプレーンを使用する画像符号化方法 |
US6633679B1 (en) | 1999-03-23 | 2003-10-14 | Teletechnologies, Ltd. | Visually lossless still image compression for CMYK, CMY and Postscript formats |
CN100394692C (zh) | 1999-04-15 | 2008-06-11 | 株式会社理光 | 数据高速压缩伸展方法及其装置 |
US6643406B1 (en) | 1999-07-28 | 2003-11-04 | Polaroid Corporation | Method and apparatus for performing linear filtering in wavelet based domain |
US7065253B2 (en) * | 1999-09-03 | 2006-06-20 | Intel Corporation | Wavelet zerotree coding of ordered bits |
US6594391B1 (en) * | 1999-09-03 | 2003-07-15 | Lucent Technologies Inc. | Method and apparatus for texture analysis and replicability determination |
US6834123B2 (en) * | 2001-05-29 | 2004-12-21 | Intel Corporation | Method and apparatus for coding of wavelet transformed coefficients |
US6956903B2 (en) * | 2001-05-29 | 2005-10-18 | Intel Corporation | Method and apparatus for three-dimensional wavelet transform |
US6771829B1 (en) * | 1999-10-23 | 2004-08-03 | Fastvdo Llc | Method for local zerotree image coding |
US6549673B1 (en) * | 1999-10-28 | 2003-04-15 | Lucent Technologies Inc. | Wavelet-based compression of images for storage, transmission and reconstruction using hierarchical subband decomposition |
JP2001136524A (ja) * | 1999-11-02 | 2001-05-18 | Ricoh Co Ltd | 圧縮伸長装置 |
US6912250B1 (en) | 1999-11-12 | 2005-06-28 | Cornell Research Foundation Inc. | System and methods for precursor cancellation of intersymbol interference in a receiver |
TW452708B (en) * | 1999-11-24 | 2001-09-01 | Winbond Electronics Corp | Architecture for fast compression of 2-dimensional image data |
US8204924B1 (en) | 1999-12-06 | 2012-06-19 | Hrl Laboratories, Llc | Variable precision wavelets |
US6671413B1 (en) * | 2000-01-24 | 2003-12-30 | William A. Pearlman | Embedded and efficient low-complexity hierarchical image coder and corresponding methods therefor |
AUPQ618500A0 (en) | 2000-03-13 | 2000-04-06 | Canon Kabushiki Kaisha | Memory management of compressed images data |
US6549674B1 (en) * | 2000-10-12 | 2003-04-15 | Picsurf, Inc. | Image compression based on tiled wavelet-like transform using edge and non-edge filters |
US6584228B1 (en) * | 2000-04-28 | 2003-06-24 | Avxing International Ltd. Cayman | Image coding embedded in matrix operation |
US7023922B1 (en) * | 2000-06-21 | 2006-04-04 | Microsoft Corporation | Video coding system and method using 3-D discrete wavelet transform and entropy coding with motion information |
US6678422B1 (en) * | 2000-08-30 | 2004-01-13 | National Semiconductor Corporation | Method and apparatus for image data compression with low memory requirement |
US7239424B1 (en) * | 2000-09-08 | 2007-07-03 | Ricoh Co., Ltd. | Wavelet-based image processing path |
US6931068B2 (en) * | 2000-10-24 | 2005-08-16 | Eyeball Networks Inc. | Three-dimensional wavelet-based scalable video compression |
AUPR192700A0 (en) | 2000-12-06 | 2001-01-04 | Canon Kabushiki Kaisha | Storing coding image data in storage of fixed memory size |
US7069545B2 (en) * | 2000-12-29 | 2006-06-27 | Intel Corporation | Quantization and compression for computation reuse |
US6895120B2 (en) * | 2001-03-30 | 2005-05-17 | Ricoh Co., Ltd. | 5,3 wavelet filter having three high pair and low pair filter elements with two pairs of cascaded delays |
AUPR433901A0 (en) * | 2001-04-10 | 2001-05-17 | Lake Technology Limited | High frequency signal construction method |
US7028060B2 (en) * | 2001-05-07 | 2006-04-11 | Hrl Laboratories Llc | Method and apparatus for jointly optimizing linear signal processing filters with subband filters |
US6697521B2 (en) * | 2001-06-15 | 2004-02-24 | Nokia Mobile Phones Ltd. | Method and system for achieving coding gains in wavelet-based image codecs |
DE10129240A1 (de) | 2001-06-18 | 2003-01-02 | Fraunhofer Ges Forschung | Verfahren und Vorrichtung zum Verarbeiten von zeitdiskreten Audio-Abtastwerten |
US7082450B2 (en) * | 2001-08-30 | 2006-07-25 | Nokia Corporation | Implementation of a transform and of a subsequent quantization |
US7876820B2 (en) * | 2001-09-04 | 2011-01-25 | Imec | Method and system for subband encoding and decoding of an overcomplete representation of the data structure |
JP3796432B2 (ja) * | 2001-10-31 | 2006-07-12 | キヤノン株式会社 | フィルタ処理装置およびフィルタ処理方法 |
EP2302929B1 (de) * | 2001-11-27 | 2015-03-25 | Samsung Electronics Co., Ltd. | Kodierung und Dekodierung eines Bitstroms mit Koordinateninterpolator |
FR2834855B1 (fr) * | 2002-01-11 | 2004-04-02 | Canon Kk | Codage de donnees numeriques avec determination de parcours d'echantillons |
US7460722B2 (en) * | 2002-01-11 | 2008-12-02 | Canon Kabushiki Kaisha | Encoding of digital data with determination of sample path |
US7317840B2 (en) * | 2002-02-26 | 2008-01-08 | Decegama Angel | Methods for real-time software video/audio compression, transmission, decompression and display |
US7630569B2 (en) * | 2002-02-26 | 2009-12-08 | Decegama Angel | Real-time software video/audio transmission and display with content protection against camcorder piracy |
US20030198395A1 (en) * | 2002-04-19 | 2003-10-23 | Droplet Technology, Inc. | Wavelet transform system, method and computer program product |
US7447631B2 (en) * | 2002-06-17 | 2008-11-04 | Dolby Laboratories Licensing Corporation | Audio coding system using spectral hole filling |
JP4090293B2 (ja) * | 2002-06-28 | 2008-05-28 | 三洋電機株式会社 | 動画像再生装置 |
JP3902990B2 (ja) * | 2002-07-02 | 2007-04-11 | キヤノン株式会社 | アダマール変換処理方法及びその装置 |
DE10229706A1 (de) * | 2002-07-02 | 2004-12-09 | T-Mobile Deutschland Gmbh | Verfahren zur Speicherplatzverwaltung in einem Speichrmedium eines digitalen Endgeräts bei einer Datenspeicherung nach dem Verfahren der priorisierten Pixelübertragung |
US7239754B2 (en) * | 2002-07-16 | 2007-07-03 | Hiroshi Akimoto | Method, apparatus and system for compressing still images in multipurpose compression systems |
ES2297083T3 (es) * | 2002-09-04 | 2008-05-01 | Microsoft Corporation | Codificacion entropica por adaptacion de la codificacion entre modos por longitud de ejecucion y por nivel. |
JP2004104347A (ja) * | 2002-09-06 | 2004-04-02 | Ricoh Co Ltd | 画像処理装置、画像処理方法、プログラム及び記録媒体 |
JP3956360B2 (ja) * | 2002-09-30 | 2007-08-08 | 株式会社リコー | 撮像装置及び画像処理方法 |
FR2846179B1 (fr) * | 2002-10-21 | 2005-02-04 | Medialive | Embrouillage adaptatif et progressif de flux audio |
JP2004153751A (ja) * | 2002-11-01 | 2004-05-27 | Ricoh Co Ltd | 画像処理装置及び画像処理方法 |
US7463782B2 (en) * | 2002-11-05 | 2008-12-09 | Canon Kabushiki Kaisha | Data encoding with an amplitude model and path between the data and corresponding decoding |
US7330597B2 (en) * | 2002-11-22 | 2008-02-12 | Texas Instruments Incorporated | Image compression |
FR2849980B1 (fr) * | 2003-01-15 | 2005-04-08 | Medialive | Procede pour la distribution de sequences video, decodeur et systeme pour la mise en oeuvre de ce prodede |
AU2003900531A0 (en) * | 2003-01-30 | 2003-02-20 | Canon Kabushiki Kaisha | Compression into a fixed buffer |
FR2852179A1 (fr) | 2003-03-06 | 2004-09-10 | Thomson Licensing Sa | Procede de codage d'une image video |
FR2853786B1 (fr) * | 2003-04-11 | 2005-08-05 | Medialive | Procede et equipement de distribution de produits videos numeriques avec une restriction de certains au moins des droits de representation et de reproduction |
JP4135617B2 (ja) * | 2003-09-08 | 2008-08-20 | ソニー株式会社 | 画像符号化装置及び方法 |
EP2713619A3 (de) * | 2003-11-18 | 2015-01-07 | Mobile Imaging in Sweden AB | Verfahren zum verarbeiten eines digitalen bildes und bildrepräsentationsformat |
US20050228654A1 (en) * | 2004-03-30 | 2005-10-13 | Yolanda Prieto | Method and apparatus for improved bit rate efficiency in wavelet based codecs by means of subband correlation |
US7653255B2 (en) | 2004-06-02 | 2010-01-26 | Adobe Systems Incorporated | Image region of interest encoding |
US7570286B2 (en) * | 2005-05-27 | 2009-08-04 | Honda Motor Co., Ltd. | System and method for creating composite images |
GB2429593A (en) | 2005-08-26 | 2007-02-28 | Electrosonic Ltd | Data compressing using a wavelet compression scheme |
WO2007028241A2 (en) * | 2005-09-07 | 2007-03-15 | Universal Data Protection Corporation | Method and system for data security of recording media |
US20070071331A1 (en) * | 2005-09-24 | 2007-03-29 | Xiteng Liu | Image compression by economical quaternary reaching method |
US20070271250A1 (en) * | 2005-10-19 | 2007-11-22 | Monro Donald M | Basis selection for coding and decoding of data |
US20070162531A1 (en) * | 2006-01-12 | 2007-07-12 | Bhaskar Kota | Flow transform for integrated circuit design and simulation having combined data flow, control flow, and memory flow views |
JP2007188211A (ja) * | 2006-01-12 | 2007-07-26 | Matsushita Electric Ind Co Ltd | 画像処理装置、撮像装置、画像処理方法およびそのプログラム |
US8674855B2 (en) * | 2006-01-13 | 2014-03-18 | Essex Pa, L.L.C. | Identification of text |
US7783079B2 (en) * | 2006-04-07 | 2010-08-24 | Monro Donald M | Motion assisted data enhancement |
US7586424B2 (en) * | 2006-06-05 | 2009-09-08 | Donald Martin Monro | Data coding using an exponent and a residual |
US20070290899A1 (en) * | 2006-06-19 | 2007-12-20 | Donald Martin Monro | Data coding |
US7770091B2 (en) * | 2006-06-19 | 2010-08-03 | Monro Donald M | Data compression for use in communication systems |
US7845571B2 (en) * | 2006-06-19 | 2010-12-07 | Monro Donald M | Data compression |
JP4424522B2 (ja) * | 2006-07-13 | 2010-03-03 | 日本電気株式会社 | 符号化及び復号化装置ならびに符号化方法及び復号方法 |
JP4182446B2 (ja) * | 2006-07-14 | 2008-11-19 | ソニー株式会社 | 情報処理装置および方法、プログラム、並びに記録媒体 |
US7689049B2 (en) * | 2006-08-31 | 2010-03-30 | Donald Martin Monro | Matching pursuits coding of data |
US7508325B2 (en) * | 2006-09-06 | 2009-03-24 | Intellectual Ventures Holding 35 Llc | Matching pursuits subband coding of data |
US7974488B2 (en) * | 2006-10-05 | 2011-07-05 | Intellectual Ventures Holding 35 Llc | Matching pursuits basis selection |
US20080084924A1 (en) * | 2006-10-05 | 2008-04-10 | Donald Martin Monro | Matching pursuits basis selection design |
JP4732316B2 (ja) * | 2006-12-07 | 2011-07-27 | キヤノン株式会社 | 画像処理装置、記録装置、画像処理方法、プログラム、および記憶媒体 |
US8411734B2 (en) | 2007-02-06 | 2013-04-02 | Microsoft Corporation | Scalable multi-thread video decoding |
US7707214B2 (en) * | 2007-02-21 | 2010-04-27 | Donald Martin Monro | Hierarchical update scheme for extremum location with indirect addressing |
US7707213B2 (en) * | 2007-02-21 | 2010-04-27 | Donald Martin Monro | Hierarchical update scheme for extremum location |
US20080205505A1 (en) * | 2007-02-22 | 2008-08-28 | Donald Martin Monro | Video coding with motion vectors determined by decoder |
US10194175B2 (en) * | 2007-02-23 | 2019-01-29 | Xylon Llc | Video coding with embedded motion |
US20080218809A1 (en) * | 2007-03-08 | 2008-09-11 | Wen Wu Chen | Method and architecture of sending and receiving facsimile over instant messaging software |
WO2008126139A1 (ja) * | 2007-03-30 | 2008-10-23 | Fujitsu Limited | 画像データ圧縮装置及び復号装置 |
SI3758380T1 (sl) | 2007-04-12 | 2021-04-30 | Dolby International AB Apollo Building, 3E | Razpostavljanje pri kodiranju in dekodiranju videa |
EP1980956A1 (de) * | 2007-04-12 | 2008-10-15 | Deutsche Thomson OHG | Verfahren und Vorrichtung zur selektiven Geräuschreduzierung in einem digitalen Signal |
US9648325B2 (en) | 2007-06-30 | 2017-05-09 | Microsoft Technology Licensing, Llc | Video decoding implementations for a graphics processing unit |
US7511639B2 (en) * | 2007-07-12 | 2009-03-31 | Monro Donald M | Data compression for communication between two or more components in a system |
US7511638B2 (en) * | 2007-07-12 | 2009-03-31 | Monro Donald M | Data compression for communication between two or more components in a system |
US8144037B2 (en) * | 2007-07-12 | 2012-03-27 | Intellectual Ventures Fund 44 Llc | Blocking for combinatorial coding/decoding for electrical computers and digital data processing systems |
US7990289B2 (en) * | 2007-07-12 | 2011-08-02 | Intellectual Ventures Fund 44 Llc | Combinatorial coding/decoding for electrical computers and digital data processing systems |
US7545291B2 (en) * | 2007-07-12 | 2009-06-09 | Donald Martin Monro | FIFO radix coder for electrical computers and digital data processing systems |
US7737869B2 (en) * | 2007-07-12 | 2010-06-15 | Monro Donald M | Symbol based data compression |
US7671767B2 (en) * | 2007-07-12 | 2010-03-02 | Donald Martin Monro | LIFO radix coder for electrical computers and digital data processing systems |
US8055085B2 (en) * | 2007-07-12 | 2011-11-08 | Intellectual Ventures Fund 44 Llc | Blocking for combinatorial coding/decoding for electrical computers and digital data processing systems |
US7548176B2 (en) * | 2007-07-12 | 2009-06-16 | Donald Martin Monro | Data coding buffer for electrical computers and digital data processing systems |
US7602316B2 (en) * | 2007-07-12 | 2009-10-13 | Monro Donald M | Data coding/decoding for electrical computers and digital data processing systems |
GB0716158D0 (en) * | 2007-08-17 | 2007-09-26 | Imagination Tech Ltd | Data compression |
US8238677B2 (en) * | 2008-03-07 | 2012-08-07 | International Business Machines Corporation | Adaptive lossless data compression method for compression of color image data |
JP4875649B2 (ja) * | 2008-03-19 | 2012-02-15 | 株式会社リコー | 画像処理装置、画像処理方法および画像処理プログラム |
US8179974B2 (en) | 2008-05-02 | 2012-05-15 | Microsoft Corporation | Multi-level representation of reordered transform coefficients |
US20100002147A1 (en) * | 2008-07-02 | 2010-01-07 | Horizon Semiconductors Ltd. | Method for improving the deringing filter |
US8406307B2 (en) | 2008-08-22 | 2013-03-26 | Microsoft Corporation | Entropy coding/decoding of hierarchically organized data |
US7791513B2 (en) * | 2008-10-06 | 2010-09-07 | Donald Martin Monro | Adaptive combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems |
US7864086B2 (en) * | 2008-10-06 | 2011-01-04 | Donald Martin Monro | Mode switched adaptive combinatorial coding/decoding for electrical computers and digital data processing systems |
US7786903B2 (en) * | 2008-10-06 | 2010-08-31 | Donald Martin Monro | Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems |
US7786907B2 (en) * | 2008-10-06 | 2010-08-31 | Donald Martin Monro | Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems |
JP5877065B2 (ja) | 2009-01-26 | 2016-03-02 | トムソン ライセンシングThomson Licensing | ビデオ符号化のためのフレーム・パッキング |
EP3668098A1 (de) * | 2009-01-27 | 2020-06-17 | InterDigital VC Holdings, Inc. | Verfahren und vorrichtung zur transformationsauswahl bei der videocodierung und -decodierung |
CN102131081A (zh) * | 2010-01-13 | 2011-07-20 | 华为技术有限公司 | 混合维度编解码方法和装置 |
US9215445B2 (en) | 2010-01-29 | 2015-12-15 | Thomson Licensing | Block-based interleaving |
US8559741B2 (en) * | 2010-06-02 | 2013-10-15 | Altek Corporation | Lossless image compression method |
MX349418B (es) | 2010-08-17 | 2017-07-28 | Samsung Electronics Co Ltd | Metodo y aparato de codificacion de video que utiliza unidad de transformacion de estructura arborescente variable y metodo y aparato de decodificacion de video. |
AU2015203103B2 (en) * | 2010-08-17 | 2016-06-30 | Samsung Electronics Co., Ltd. | Video encoding method and apparatus using transformation unit of variable tree structure, and video decoding method and apparatus |
US8793391B2 (en) * | 2010-11-30 | 2014-07-29 | Deutsche Telekom Ag | Distortion-aware multihomed scalable video streaming to multiple clients |
US9706214B2 (en) * | 2010-12-24 | 2017-07-11 | Microsoft Technology Licensing, Llc | Image and video decoding implementations |
US8917950B2 (en) * | 2011-01-18 | 2014-12-23 | Sony Corporation | Simplifying parametric loop filters |
US8494290B2 (en) * | 2011-05-05 | 2013-07-23 | Mitsubishi Electric Research Laboratories, Inc. | Method for coding pictures using hierarchical transform units |
US8537171B2 (en) * | 2011-05-13 | 2013-09-17 | Samsung Display Co., Ltd. | Piecewise non-causal compression and subsequent decompression of quantized data for processing of decompressed data in higher precision processing space |
CN103703783B (zh) | 2011-07-20 | 2017-11-24 | 飞思卡尔半导体公司 | 编码图像的方法及装置 |
US8731067B2 (en) | 2011-08-31 | 2014-05-20 | Microsoft Corporation | Memory management for video decoding |
US20130117418A1 (en) * | 2011-11-06 | 2013-05-09 | Akamai Technologies Inc. | Hybrid platform for content delivery and transcoding |
US9819949B2 (en) | 2011-12-16 | 2017-11-14 | Microsoft Technology Licensing, Llc | Hardware-accelerated decoding of scalable video bitstreams |
JP5966346B2 (ja) * | 2011-12-21 | 2016-08-10 | ソニー株式会社 | 画像処理装置および方法 |
JP5966347B2 (ja) * | 2011-12-21 | 2016-08-10 | ソニー株式会社 | 画像処理装置および方法 |
WO2013179101A1 (en) * | 2012-06-01 | 2013-12-05 | Freescale Semiconductor, Inc. | Method and apparatus for performing compression of image data |
KR102056686B1 (ko) * | 2013-02-18 | 2019-12-18 | 삼성디스플레이 주식회사 | 영상 처리부, 이를 포함하는 표시 장치 및 이를 이용한 영상 처리 방법 |
FR3005816B1 (fr) * | 2013-05-17 | 2019-11-29 | Jean-Claude Colin | Procede pour encoder, notamment des images compressees, notamment par "range coder" ou compression arithmetique. |
US9485456B2 (en) | 2013-12-30 | 2016-11-01 | Akamai Technologies, Inc. | Frame-rate conversion in a distributed computing system |
US10356410B2 (en) | 2014-10-28 | 2019-07-16 | Sony Corporation | Image processing system with joint encoding and method of operation thereof |
US9674554B2 (en) | 2014-10-28 | 2017-06-06 | Sony Corporation | Image processing system with coding mode and method of operation thereof |
US10063889B2 (en) | 2014-10-28 | 2018-08-28 | Sony Corporation | Image processing system with conditional coding and method of operation thereof |
US9357232B2 (en) | 2014-10-28 | 2016-05-31 | Sony Corporation | Image processing system with binary decomposition and method of operation thereof |
US9294782B1 (en) | 2014-10-28 | 2016-03-22 | Sony Corporation | Image processing system with artifact reduction mechanism and method of operation thereof |
US9357237B2 (en) | 2014-10-28 | 2016-05-31 | Sony Corporation | Image processing system with bitstream reduction and method of operation thereof |
EP3350993A1 (de) | 2015-09-18 | 2018-07-25 | Koninklijke Philips N.V. | Verfahren und vorrichtung für schnelle und effiziente kompression und dekompression von bildern |
US9992252B2 (en) | 2015-09-29 | 2018-06-05 | Rgb Systems, Inc. | Method and apparatus for adaptively compressing streaming video |
US10462490B2 (en) * | 2015-11-06 | 2019-10-29 | Raytheon Company | Efficient video data representation and content based video retrieval framework |
AU2017204643B2 (en) | 2017-07-07 | 2020-05-14 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding video data |
GB2568165B (en) * | 2017-10-18 | 2022-08-31 | Frank Donnelly Stephen | Entropy and value based packet truncation |
CN111713104B (zh) * | 2018-02-14 | 2022-04-26 | 索尼公司 | 图像处理装置和方法 |
CN110545445A (zh) * | 2018-05-28 | 2019-12-06 | 深信服科技股份有限公司 | 一种视频压缩方法及装置、服务器及计算机可读存储介质 |
CN108880604B (zh) * | 2018-06-28 | 2021-05-14 | 河南机电职业学院 | 一种扩频通信系统中多分量调频干扰抑制方法和装置 |
CN109067405B (zh) * | 2018-07-27 | 2022-10-11 | 深圳市元征科技股份有限公司 | 一种数据压缩的方法、装置、终端及计算机可读存储介质 |
WO2021197406A1 (en) * | 2020-04-02 | 2021-10-07 | Beijing Bytedance Network Technology Co., Ltd. | Coefficients coding in transform skip mode |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5014134A (en) * | 1989-09-11 | 1991-05-07 | Aware, Inc. | Image compression method and apparatus |
Family Cites Families (141)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3506327A (en) | 1964-04-23 | 1970-04-14 | Battelle Development Corp | Wavefront reconstruction using a coherent reference beam |
US3950103A (en) | 1972-10-27 | 1976-04-13 | Canadian Patents And Development Limited | Method and apparatus to determine spatial distribution of magnitude and phase of electro-magnetic fields especially optical fields |
DE2640140C2 (de) | 1976-09-07 | 1982-10-07 | Philips Patentverwaltung Gmbh, 2000 Hamburg | Verfahren und Anordnung zur redundanzvermindernden Bildcodierung |
DE2640157C2 (de) | 1976-09-07 | 1982-10-07 | Philips Patentverwaltung Gmbh, 2000 Hamburg | Verfahren und Anordnung zum redundanzvermindernden Codieren von Bildern |
US4136954A (en) | 1976-12-29 | 1979-01-30 | Jamieson John A | Imaging apparatus including spatial-spectral interferometer |
US4223354A (en) | 1978-08-30 | 1980-09-16 | General Electric Company | Phase corrected raster scanned light modulator and a variable frequency oscillator for effecting phase correction |
US4393456A (en) | 1981-03-19 | 1983-07-12 | Bell Telephone Laboratories, Incorporated | Digital filter bank |
DE3171311D1 (en) | 1981-07-28 | 1985-08-14 | Ibm | Voice coding method and arrangment for carrying out said method |
US4437087A (en) * | 1982-01-27 | 1984-03-13 | Bell Telephone Laboratories, Incorporated | Adaptive differential PCM coding |
US4674125A (en) | 1983-06-27 | 1987-06-16 | Rca Corporation | Real-time hierarchal pyramid signal processing apparatus |
US4599567A (en) | 1983-07-29 | 1986-07-08 | Enelf Inc. | Signal representation generator |
US4652881A (en) | 1984-01-10 | 1987-03-24 | Lewis Bernard L | Efficient adaptive filter bank |
FR2577084B1 (fr) | 1985-02-01 | 1987-03-20 | Trt Telecom Radio Electr | Systeme de bancs de filtres d'analyse et de synthese d'un signal |
US4701006A (en) | 1985-02-20 | 1987-10-20 | Stanford University | Optical-digital hologram recording |
US4751742A (en) * | 1985-05-07 | 1988-06-14 | Avelex | Priority coding of transform coefficients |
GB2181318B (en) | 1985-10-04 | 1989-12-28 | Sony Corp | Two-dimensional finite impulse response filters |
US4760563A (en) | 1986-01-09 | 1988-07-26 | Schlumberger Technology Corporation | Seismic exploration using exactly invertible discrete transformation into tau-p space |
US4929223A (en) | 1986-02-18 | 1990-05-29 | Adolph Coors Company | Packaging alignment system |
DE3732085A1 (de) | 1986-03-26 | 1989-04-06 | Ant Nachrichtentech | Digitaler filterbaum |
US4663660A (en) | 1986-06-20 | 1987-05-05 | Rca Corporation | Compressed quantized image-data transmission technique suitable for use in teleconferencing |
GB8621994D0 (en) * | 1986-09-12 | 1986-10-22 | Crosfield Electronics Ltd | Image processing |
US4868868A (en) | 1986-09-30 | 1989-09-19 | Oki Electric Industry Co., Ltd. | Sub-band speech analyzing and synthesizing device |
FR2606576B1 (fr) | 1986-11-07 | 1989-02-03 | Labo Electronique Physique | Dispositif pour transmettre des images de television haute definition dans des canaux a bande etroite |
GB2197766B (en) | 1986-11-17 | 1990-07-25 | Sony Corp | Two-dimensional finite impulse response filter arrangements |
US4817182A (en) | 1987-05-04 | 1989-03-28 | General Electric Company | Truncated subband coding of images |
US4815023A (en) | 1987-05-04 | 1989-03-21 | General Electric Company | Quadrature mirror filters with staggered-phase subsampling |
US4774574A (en) * | 1987-06-02 | 1988-09-27 | Eastman Kodak Company | Adaptive block transform image coding method and apparatus |
BE1000643A5 (fr) * | 1987-06-05 | 1989-02-28 | Belge Etat | Procede de codage de signaux d'image. |
DE3853555T2 (de) | 1987-06-09 | 1995-08-17 | Sony Corp | Verarbeitung des Bewegungsvektors in digitalen Fernsehbildern. |
US4837517A (en) | 1987-07-16 | 1989-06-06 | Schlumberger Technology Corporation | Spatial frequency method and apparatus for investigating earth conductivity with high vertical resolution by induction techniques |
US4785349A (en) | 1987-10-05 | 1988-11-15 | Technology Inc. 64 | Digital video decompression system |
US4936665A (en) | 1987-10-25 | 1990-06-26 | Whitney Theodore R | High resolution imagery systems and methods |
US5156943A (en) | 1987-10-25 | 1992-10-20 | Whitney Theodore R | High resolution imagery systems and methods |
US5028995A (en) * | 1987-10-28 | 1991-07-02 | Hitachi, Ltd. | Picture signal processor, picture signal coder and picture signal interpolator |
US4827336A (en) | 1987-12-18 | 1989-05-02 | General Electric Company | Symbol code generation processing from interframe DPCM of TDM'd spatial-frequency analyses of video signals |
US4985927A (en) | 1988-03-25 | 1991-01-15 | Texas Instruments Incorporated | Method of detecting and reviewing pattern defects |
US5018210A (en) | 1988-03-25 | 1991-05-21 | Texas Instruments Incorporated | Pattern comparator with substage illumination and polygonal data representation |
US5001764A (en) | 1988-03-25 | 1991-03-19 | Texas Instruments Incorporated | Guardbands for pattern inspector |
US5095447A (en) | 1988-03-25 | 1992-03-10 | Texas Instruments Incorporated | Color overlay of scanned and reference images for display |
US4897717A (en) | 1988-03-30 | 1990-01-30 | Starsignal, Inc. | Computer-based video compression system |
EP0339589A3 (de) * | 1988-04-28 | 1992-01-02 | Sharp Kabushiki Kaisha | Orthogonales Transformationskodierungssystem für Bilddaten |
US4982283A (en) | 1988-05-06 | 1991-01-01 | General Electric Company | Line-sequential pyramid processing of a plurality of raster-scanned image variables |
US4899147A (en) * | 1988-06-03 | 1990-02-06 | Unisys Corporation | Data compression/decompression apparatus with throttle, start-up and backward read controls |
US4829378A (en) | 1988-06-09 | 1989-05-09 | Bell Communications Research, Inc. | Sub-band coding of images with low computational complexity |
US4904073A (en) | 1988-08-10 | 1990-02-27 | Aware, Inc. | Fractal tiling for multiple mirror optical devices |
FR2637400B1 (fr) | 1988-09-30 | 1990-11-09 | Labo Electronique Physique | Dispositif de traitement ameliore d'un signal echographique |
US4929946A (en) * | 1989-02-09 | 1990-05-29 | Storage Technology Corporation | Adaptive data compression apparatus including run length encoding for a tape drive system |
FR2643986B1 (fr) | 1989-03-03 | 1991-05-17 | Thomson Csf | Procede d'analyse d'un signal par ondelettes |
US4918524A (en) | 1989-03-14 | 1990-04-17 | Bell Communications Research, Inc. | HDTV Sub-band coding using IIR filter bank |
JPH02305182A (ja) | 1989-05-19 | 1990-12-18 | Fuji Photo Film Co Ltd | 画像信号圧縮符号化装置 |
US5072308A (en) | 1989-06-21 | 1991-12-10 | International Mobile Machines Corporation | Communication signal compression system and method |
US4987480A (en) | 1989-07-11 | 1991-01-22 | Massachusetts Institute Of Technology | Multiscale coding of images |
US4974187A (en) | 1989-08-02 | 1990-11-27 | Aware, Inc. | Modular digital signal processing system |
US5073964A (en) | 1989-08-04 | 1991-12-17 | Aware, Inc. | Signal processing device and method |
US5241395A (en) * | 1989-08-07 | 1993-08-31 | Bell Communications Research, Inc. | Adaptive transform coding using variable block size |
US5235435A (en) | 1989-11-08 | 1993-08-10 | Adobe Systems Incorporated | Method of producing halftone images |
US5097261A (en) * | 1989-11-22 | 1992-03-17 | International Business Machines Corporation | Data compression for recording on a record medium |
US5173880A (en) | 1989-12-26 | 1992-12-22 | Exxon Production Research Company | Method of generating seismic wavelets using seismic range equation |
US5068911A (en) | 1990-02-09 | 1991-11-26 | Aware, Inc. | Method and apparatus for representing an image |
US5103306A (en) | 1990-03-28 | 1992-04-07 | Transitions Research Corporation | Digital image compression employing a resolution gradient |
US4999705A (en) * | 1990-05-03 | 1991-03-12 | At&T Bell Laboratories | Three dimensional motion compensated video coding |
US5384725A (en) * | 1990-05-18 | 1995-01-24 | Yale University | Method and apparatus for encoding and decoding using wavelet-packets |
DE4016172C1 (de) | 1990-05-19 | 1991-03-28 | Werner 5900 Siegen De Ackermann | |
US5101446A (en) | 1990-05-31 | 1992-03-31 | Aware, Inc. | Method and apparatus for coding an image |
US5128757A (en) | 1990-06-18 | 1992-07-07 | Zenith Electronics Corporation | Video transmission system using adaptive sub-band coding |
EP0465732B1 (de) | 1990-07-11 | 1996-10-02 | Koninklijke Philips Electronics N.V. | Vorrichtung zur Ableitung eines kompatiblen Zeilensprungfernsehsignals mit geringer Auflösung und anderen Komponenten eines hochauflösenden Zeilensprungfernsehsignals sowie Vorrichtung zur Wiederherstellung des Originalsignals |
US5148498A (en) | 1990-08-01 | 1992-09-15 | Aware, Inc. | Image coding apparatus and method utilizing separable transformations |
US5081645A (en) | 1990-08-06 | 1992-01-14 | Aware, Inc. | Novel spread spectrum codec apparatus and method |
US5128791A (en) | 1990-08-13 | 1992-07-07 | Bell Communications Research, Inc. | Multi-channel HDTV system |
US5097331A (en) | 1990-08-24 | 1992-03-17 | Bell Communications Research, Inc. | Multiple block-size transform video coding using an asymmetric sub-band structure |
US5049992A (en) | 1990-08-27 | 1991-09-17 | Zenith Electronics Corporation | HDTV system with receivers operable at different levels of resolution |
US5049993A (en) | 1990-10-03 | 1991-09-17 | Bell Communications Research, Inc. | Format conversion preprocessing method and circuit |
GB2252002B (en) * | 1991-01-11 | 1995-01-04 | Sony Broadcast & Communication | Compression of video signals |
JP3012698B2 (ja) * | 1991-01-29 | 2000-02-28 | オリンパス光学工業株式会社 | 画像データの符号化装置および符号化方法 |
US5121191A (en) | 1991-03-15 | 1992-06-09 | Aware, Inc. | Method and apparatus for coding motion pictures |
US5276525A (en) * | 1991-03-22 | 1994-01-04 | Bell Communications Research, Inc. | Two-dimensional block scanning for subband image and video coding |
US5262958A (en) | 1991-04-05 | 1993-11-16 | Texas Instruments Incorporated | Spline-wavelet signal analyzers and methods for processing signals |
JPH04323963A (ja) * | 1991-04-23 | 1992-11-13 | Canon Inc | 画像処理方法及び装置 |
US5235434A (en) * | 1991-06-27 | 1993-08-10 | Polaroid Corporation | Method and apparatus for selectively adjusting the brightness of large regions of an image |
US5315670A (en) * | 1991-11-12 | 1994-05-24 | General Electric Company | Digital data compression system including zerotree coefficient coding |
GB2262854B (en) * | 1991-12-24 | 1995-05-24 | Sony Broadcast & Communication | Image processing apparatus |
US5347479A (en) * | 1991-12-27 | 1994-09-13 | Nec Corporation | Small-size wavelet transform apparatus |
CA2088082C (en) * | 1992-02-07 | 1999-01-19 | John Hartung | Dynamic bit allocation for three-dimensional subband video coding |
US5321776A (en) * | 1992-02-26 | 1994-06-14 | General Electric Company | Data compression system including successive approximation quantizer |
KR0150955B1 (ko) * | 1992-05-27 | 1998-10-15 | 강진구 | 비트고정을 위한 영상압축방법과 신장방법 및 그 장치 |
US5511151A (en) * | 1992-06-10 | 1996-04-23 | Canon Information Systems, Inc. | Method and apparatus for unwinding image data |
US5303200A (en) * | 1992-07-02 | 1994-04-12 | The Boeing Company | N-dimensional multi-port memory |
US5272478A (en) * | 1992-08-17 | 1993-12-21 | Ricoh Corporation | Method and apparatus for entropy coding |
US5379355A (en) * | 1992-08-24 | 1995-01-03 | Ricoh Corporation | Data encoding using one or more adaptive decision trees |
JPH06125543A (ja) * | 1992-10-12 | 1994-05-06 | Toshiba Corp | 符号化装置 |
US5638498A (en) * | 1992-11-10 | 1997-06-10 | Adobe Systems Incorporated | Method and apparatus for reducing storage requirements for display data |
US5631977A (en) * | 1992-12-08 | 1997-05-20 | Fuji Xerox Co., Ltd. | Encoding device for encoding an image along an order determined by resolution tone level |
US5412741A (en) * | 1993-01-22 | 1995-05-02 | David Sarnoff Research Center, Inc. | Apparatus and method for compressing information |
US5563960A (en) * | 1993-01-22 | 1996-10-08 | David Sarnoff Research Center, Inc. | Apparatus and method for emphasizing a selected region in the compressed representation of an image |
JP3293920B2 (ja) * | 1993-01-22 | 2002-06-17 | キヤノン株式会社 | 画像処理装置およびその方法 |
US5414780A (en) * | 1993-01-27 | 1995-05-09 | Immix | Method and apparatus for image data transformation |
IL104636A (en) * | 1993-02-07 | 1997-06-10 | Oli V R Corp Ltd | Apparatus and method for encoding and decoding digital signals |
US5583500A (en) * | 1993-02-10 | 1996-12-10 | Ricoh Corporation | Method and apparatus for parallel encoding and decoding of data |
US5381145A (en) * | 1993-02-10 | 1995-01-10 | Ricoh Corporation | Method and apparatus for parallel decoding and encoding of data |
US5420891A (en) | 1993-03-18 | 1995-05-30 | New Jersey Institute Of Technology | Multiplierless 2-band perfect reconstruction quadrature mirror filter (PR-QMF) banks |
AU6381394A (en) | 1993-03-30 | 1994-10-24 | Lewis, Adrian S. | Data compression and decompression |
US5546477A (en) * | 1993-03-30 | 1996-08-13 | Klics, Inc. | Data compression and decompression |
JPH07168809A (ja) | 1993-03-30 | 1995-07-04 | Klics Ltd | ウェーブレット変換方法及びウェーブレット変換回路 |
JP3499254B2 (ja) | 1993-06-04 | 2004-02-23 | 富士写真フイルム株式会社 | 画像データ圧縮処理方法 |
GB2281465B (en) * | 1993-08-27 | 1997-06-04 | Sony Uk Ltd | Image data compression |
US5495292A (en) | 1993-09-03 | 1996-02-27 | Gte Laboratories Incorporated | Inter-frame wavelet transform coder for color video compression |
JP3282138B2 (ja) | 1993-09-08 | 2002-05-13 | 富士写真フイルム株式会社 | 画像データ圧縮処理方法および画像データ再構成方法 |
US5717789A (en) * | 1993-09-08 | 1998-02-10 | California Institute Of Technology | Image enhancement by non-linear extrapolation in frequency space |
IL107658A0 (en) | 1993-11-18 | 1994-07-31 | State Of Israel Ministy Of Def | A system for compaction and reconstruction of wavelet data |
US5453945A (en) * | 1994-01-13 | 1995-09-26 | Tucker; Michael R. | Method for decomposing signals into efficient time-frequency representations for data compression and recognition |
CA2180240A1 (en) * | 1994-01-14 | 1995-07-20 | Charles K. Chui | Boundary-spline-wavelet compression for video images |
US5541594A (en) * | 1994-03-28 | 1996-07-30 | Utah State University Foundation | Fixed quality source coder with fixed threshold |
US5534925A (en) * | 1994-05-02 | 1996-07-09 | Cognitech Inc. | Image compression by optimal reconstruction |
US5602589A (en) * | 1994-08-19 | 1997-02-11 | Xerox Corporation | Video image compression using weighted wavelet hierarchical vector quantization |
US5748786A (en) * | 1994-09-21 | 1998-05-05 | Ricoh Company, Ltd. | Apparatus for compression using reversible embedded wavelets |
US5881176A (en) * | 1994-09-21 | 1999-03-09 | Ricoh Corporation | Compression and decompression with wavelet style and binary style including quantization by device-dependent parser |
US6195465B1 (en) * | 1994-09-21 | 2001-02-27 | Ricoh Company, Ltd. | Method and apparatus for compression using reversible wavelet transforms and an embedded codestream |
US5966465A (en) * | 1994-09-21 | 1999-10-12 | Ricoh Corporation | Compression/decompression using reversible embedded wavelets |
US5867602A (en) * | 1994-09-21 | 1999-02-02 | Ricoh Corporation | Reversible wavelet transform and embedded codestream manipulation |
US5604824A (en) | 1994-09-22 | 1997-02-18 | Houston Advanced Research Center | Method and apparatus for compression and decompression of documents and the like using splines and spline-wavelets |
GB2295936B (en) * | 1994-12-05 | 1997-02-05 | Microsoft Corp | Progressive image transmission using discrete wavelet transforms |
KR0159434B1 (ko) * | 1995-04-19 | 1999-01-15 | 김광호 | 휴먼 비쥬얼 시스템 모델링을 이용한 웨이블렛 영상 압축/복원장치 및 방법 |
JP2840589B2 (ja) * | 1996-02-09 | 1998-12-24 | 富士通株式会社 | データ圧縮装置及びデータ復元装置 |
US6088062A (en) * | 1996-10-29 | 2000-07-11 | Sony Corporation | Picture signal processing apparatus |
US6031940A (en) * | 1996-11-27 | 2000-02-29 | Teralogic, Inc. | System and method for efficiently encoding video frame sequences |
US5909518A (en) * | 1996-11-27 | 1999-06-01 | Teralogic, Inc. | System and method for performing wavelet-like and inverse wavelet-like transformations of digital data |
US6020975A (en) * | 1996-12-20 | 2000-02-01 | Apple Computer, Inc. | System and method for accelerated data recompression |
US5999656A (en) * | 1997-01-17 | 1999-12-07 | Ricoh Co., Ltd. | Overlapped reversible transforms for unified lossless/lossy compression |
TW341018B (en) * | 1997-09-23 | 1998-09-21 | Winbond Electronics Corp | The compress and de-compress apparatus for video signal and its method |
US6237010B1 (en) * | 1997-10-06 | 2001-05-22 | Canon Kabushiki Kaisha | Multimedia application using flashpix file format |
US6229929B1 (en) * | 1998-05-14 | 2001-05-08 | Interval Research Corporation | Border filtering of video signal blocks |
US6236765B1 (en) * | 1998-08-05 | 2001-05-22 | Intel Corporation | DWT-based up-sampling algorithm suitable for image display in an LCD panel |
US6263109B1 (en) * | 1998-09-25 | 2001-07-17 | Hewlett-Packard Company | Context-based ordering and coding of transform coefficient bit-planes for embedded bitstreams |
SE513353C2 (sv) * | 1998-10-21 | 2000-08-28 | Ericsson Telefon Ab L M | Partiell hämtning av bilder i den komprimerade domänen |
US6201897B1 (en) * | 1998-11-09 | 2001-03-13 | Earth Resource Mapping | Transformation and selective inverse transformation of large digital images |
US6356668B1 (en) * | 1998-12-29 | 2002-03-12 | Eastman Kodak Company | Method for efficient rate control |
US6339658B1 (en) * | 1999-03-09 | 2002-01-15 | Rockwell Science Center, Llc | Error resilient still image packetization method and packet structure |
US6546143B1 (en) * | 1999-03-12 | 2003-04-08 | Hewlett-Packard Development Company | Efficient wavelet-based compression of large images |
US6350989B1 (en) * | 1999-04-23 | 2002-02-26 | Sandia National Laboratories | Wafer-fused semiconductor radiation detector |
US6549673B1 (en) * | 1999-10-28 | 2003-04-15 | Lucent Technologies Inc. | Wavelet-based compression of images for storage, transmission and reconstruction using hierarchical subband decomposition |
JP4367880B2 (ja) * | 1999-12-09 | 2009-11-18 | キヤノン株式会社 | 画像処理装置及びその方法並びに記憶媒体 |
-
1994
- 1994-09-21 US US08/310,146 patent/US5748786A/en not_active Expired - Lifetime
-
1995
- 1995-09-18 JP JP23798795A patent/JP3436832B2/ja not_active Expired - Fee Related
- 1995-09-20 NL NL1001248A patent/NL1001248C2/nl not_active IP Right Cessation
- 1995-09-20 DE DE19534943A patent/DE19534943B4/de not_active Expired - Fee Related
-
1996
- 1996-08-09 US US08/693,649 patent/US6222941B1/en not_active Expired - Lifetime
-
2002
- 2002-09-02 JP JP2002256535A patent/JP2003179498A/ja active Pending
-
2003
- 2003-02-03 JP JP2003026242A patent/JP2003274186A/ja active Pending
-
2005
- 2005-04-19 JP JP2005120798A patent/JP2005304056A/ja active Pending
- 2005-04-19 JP JP2005120796A patent/JP3800552B2/ja not_active Expired - Lifetime
- 2005-04-19 JP JP2005120797A patent/JP2005304055A/ja active Pending
-
2006
- 2006-03-08 US US11/371,725 patent/US20060222254A1/en not_active Abandoned
- 2006-11-14 US US11/599,794 patent/US7492955B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5014134A (en) * | 1989-09-11 | 1991-05-07 | Aware, Inc. | Image compression method and apparatus |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8565298B2 (en) | 1994-09-21 | 2013-10-22 | Ricoh Co., Ltd. | Encoder rate control |
EP1025536A1 (de) * | 1996-11-27 | 2000-08-09 | Teralogic Inc. | System und verfahren zum bearbeiten wellenartiger und umgekehrten wellenartigen transformationen von digitalen daten |
EP1025536A4 (de) * | 1996-11-27 | 2001-01-31 | Teralogic Inc | System und verfahren zum bearbeiten wellenartiger und umgekehrten wellenartigen transformationen von digitalen daten |
DE19819405B4 (de) * | 1997-05-01 | 2006-06-29 | Ricoh Co., Ltd. | Implementation eines reversiblen eingebetteten Wavelet-Systems |
EP0934572A1 (de) * | 1997-05-16 | 1999-08-11 | Teralogic Inc. | System und verfahren für skalierbare kodierung von verstreuten datensets |
EP0934572A4 (de) * | 1997-05-16 | 2003-01-22 | Teralogic Inc | System und verfahren für skalierbare kodierung von verstreuten datensets |
Also Published As
Publication number | Publication date |
---|---|
JP2005304054A (ja) | 2005-10-27 |
US20070116369A1 (en) | 2007-05-24 |
JP2003274186A (ja) | 2003-09-26 |
US6222941B1 (en) | 2001-04-24 |
JP3436832B2 (ja) | 2003-08-18 |
US5748786A (en) | 1998-05-05 |
JPH08139935A (ja) | 1996-05-31 |
NL1001248A1 (nl) | 1996-03-21 |
NL1001248C2 (nl) | 1997-06-04 |
JP2005304055A (ja) | 2005-10-27 |
DE19534943B4 (de) | 2006-01-12 |
JP2005304056A (ja) | 2005-10-27 |
US7492955B2 (en) | 2009-02-17 |
JP3800552B2 (ja) | 2006-07-26 |
JP2003179498A (ja) | 2003-06-27 |
US20060222254A1 (en) | 2006-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19534943B4 (de) | Vorrichtung zur Komprimierung unter Verwendung von eingebetteten Kleinwellen | |
DE19626600C2 (de) | Kodierer und Verfahren zum Kodieren | |
DE19626615C2 (de) | Verfahren und Apparat zur Kompression, das bzw. der reversible Wavelet-Transformationen und einen eingebetteten Kodestrom verwendet | |
DE19534730B4 (de) | Verfahren zum Codieren und Decodieren von Daten | |
US7215820B2 (en) | Method and apparatus for compression using reversible wavelet transforms and an embedded codestream | |
DE69628760T2 (de) | Speicherung und wiedergewinnung von grossen digitalen bildern | |
DE19861377B4 (de) | Ein verbessertes Kompressions- und Dekompressionssystem mit reversiblen Wavelets und verlustbehafteter Rekonstruktion | |
DE19819405B4 (de) | Implementation eines reversiblen eingebetteten Wavelet-Systems | |
DE60015755T2 (de) | Verlustfreie adaptive codierung von daten eines endlichen alphabets | |
Wu et al. | Design of distributed interactive online geographic information system viewer using wavelets | |
GB2302244A (en) | Wavelet transform filter | |
GB2313757A (en) | Method using an embedded codestream | |
Sudhakar et al. | Color image compression using multiwavelets with modified SPIHT algorithm | |
Glover | Subband/transform functions for image processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8364 | No opposition during term of opposition | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |
Effective date: 20140401 |