DE19844752A1 - Ein verbessertes Kompressions- und Dekompressionssystem mit reversiblen Wavelets und verlustbehafteter Rokonstruktion - Google Patents
Ein verbessertes Kompressions- und Dekompressionssystem mit reversiblen Wavelets und verlustbehafteter RokonstruktionInfo
- Publication number
- DE19844752A1 DE19844752A1 DE19844752A DE19844752A DE19844752A1 DE 19844752 A1 DE19844752 A1 DE 19844752A1 DE 19844752 A DE19844752 A DE 19844752A DE 19844752 A DE19844752 A DE 19844752A DE 19844752 A1 DE19844752 A1 DE 19844752A1
- Authority
- DE
- Germany
- Prior art keywords
- coefficients
- reconstruction
- coefficient
- data
- bits
- 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
-
- 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
-
- 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/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- 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/17—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 an image region, e.g. an object
- H04N19/176—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 an image region, e.g. an object the region being a block, e.g. a macroblock
-
- 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/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
- 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
-
- 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
Description
Die vorliegende Erfindung betrifft das Gebiet der Datenkompressions- und
-dekompressionssysteme; insbesondere betrifft die vorliegende Erfindung ein Verfahren
und einen Apparat zum verlustfreien und verlustbehafteten Kodieren und Dekodieren
von Daten in Kompressions-/Dekompressionssystemen.
Die Datenkompression ist ein sehr nützliches Werkzeug zur Speicherung und Über
tragung großer Datenmengen. Zum Beispiel wird die Zeit, die zum Übertragen eines
Bildes, z. B. einer Faksimileübertragung eines Dokuments erforderlich ist, drastisch
reduziert, wenn eine Kompression verwendet wird, um die Anzahl der benötigten Bits
zu verringern, um das Bild neu zu erzeugen.
Es gibt viele unterschiedliche Datenkompressionstechniken im Stand der Technik. Die
Kompressionstechniken können in zwei große Kategorien unterteilt werden, nämlich
verlustbehaftetes Kodieren und verlustfreies Kodieren. Verlustbehaftetes Kodieren bringt
ein Kodieren mit sich, das zu dem Verlust von Information führt, so daß es keine
Garantie einer perfekten Rekonstruktion der Originaldaten gibt. Das Ziel einer verlustbe
hafteten Kompression ist, daß die Veränderungen an den Originaldaten derartig
vorgenommen werden, daß sie nicht stören oder nicht detektierbar sind. Bei einer
verlustfreien Kompression wird die gesamte Information, die enthalten ist und die Daten
in einer Art und Weise komprimiert, die eine perfekte Rekonstruktion erlaubt.
Bei der verlustfreien Kompression werden Eingangssymbole oder Intensitätsdaten
konvertiert, um Kodewörter auszugeben. Die Eingabe kann Bilddaten, Audiodaten,
eindimensionale Daten (z. B. Daten, die sich räumlich oder zeitlich ändern), zweidimen
sionale Daten (z. B. Daten, die sich in zwei räumliche Richtungen ändern (oder in einer
räumlichen oder zeitlichen Dimension)) oder multidimensionale Daten bzw. multispek
trale Daten enthalten. Falls die Kompression erfolgreich ist, werden die Kodewörter mit
weniger Bits dargestellt als die Anzahl von Bits, die für die unkodierten Eingangs
symbole (oder Intensitätsdaten) erforderlich sind. Verlustfreie Kodierverfahren beinhalten
lexikalische Kodierverfahren ("dictionary methods of coding", z. B. Lempel-Ziv), Lauf
längenkodieren, enumeratives Kodieren und Entropiekodieren. Bei einer verlustfreien
Bildkompression basiert die Kompression auf Vorhersagen oder Kontexten plus einem
Kodieren. Der JBIG-Standard für die Faksimilekompression (ISO/IEC 11544) und
DPCM (Differential-Pulskodemodulation - eine Option in dem JPEG-Standard (ISO/IEC
10918)) für Bilder mit kontinuierlichen Tonwerten, stellen Beispiele einer verlustfreien
Kompression für Bilder dar. Bei einer verlustbehafteten Kompression werden Eingangs
symbole oder Intensitätsdaten vor einer Konversion quantisiert, um Kodewörter auszu
geben. Die Quantisierung ist dazu gedacht, relevante Charakteristiken der Daten zu
bewahren, während unwichtige Charakteristiken beseitigt werden. Vor der Quantisierung
verwenden verlustbehaftete Kompressionssysteme häufig eine Transformation, um eine
Energieverdichtung ("energy compaction") bereitzustellen. JPEG stellt ein Beispiel eines
verlustbehafteten Kodierverfahrens für Bilddaten dar.
Jüngste Entwicklungen bei der Bildsignalverarbeitung konzentrieren weiterhin ihre
Aufmerksamkeit auf ein Bedürfnis nach wirksamen und genauen Formen einer Daten
kompressionskodierung. Verschiedene Formen der Transformation oder pyramidalen
Signalverarbeitung sind vorgeschlagen worden, und zwar einschließlich einer Mehr
fachauflösungs-Pyramidalverarbeitung und einer Wavelet-Pyramidalverarbeitung. Diese
Formen werden ebenso als Unterbandverarbeitung bzw. Subbandverarbeitung und
hierarchische Verarbeitung bezeichnet. Die pyramidale Waveletverarbeitung von Bild
daten stellt einen spezifischen Typ einer Mehrfachauflösungs-Pyramidalverarbeitung dar,
die quadratische Spiegelfilter ("Quadrature Mirror Filters" bzw. QMFs) verwenden kann,
um eine Unterbandzerlegung eines Originalbildes zu erzeugen. Bemerkenswert ist, daß
andere Typen von Nicht-QMF-Wavelets existieren. Hinsichtlich weiterer Information
betreffend die Waveletverarbeitung wird auf Antonini, M., et al. "Image Coding Using
Wavelet Transform", IBEE Transactions on Image Processing, Band 1, Nr. 2, April
1992; Shapiro, J. "An Embedded Hierarchical Image Coder Using Zerotrees of Wavelet
Coefficients", Proc. IEEE Data Compression Conference, Seiten 214-223, 1993, verwie
sen. Hinsichtlich Information über reversible Transformationen wird auf Said, A. und
Pearlman, W. "Reversible Image Compression via Multiresolution Representation and
Predictive Coding", Dept. of Electrical, Computer and Systems Engineering, Renssealaer
Polytechnic Institute, Troy, NY 1993, verwiesen.
Quantisierung von Waveletkoeffizienten führt zu gefälligen Bildern, weil Waveletfilter
überlappt sind. Im Gegensatz hierzu leidet die Quantisierung von blockbasierten, nicht
überlappten Transformationskoeffizienten an Artifakten bei Grenzen, was nicht gefällig
ist.
Die Entfernung von Block-Artifakten von traditionellen blockbasierten Transformationen,
wie z. B. die DCT, ist wegen vielfacher Gründe schwierig. Die Grenze beeinflußt bzw.
beeinträchtigt jeden Koeffizienten. Jeder Transformationskoeffizient beeinflußt bzw.
beeinträchtigt viele räumliche Domänenstellen. Eine Allmählichkeit bzw. Glätte hinsicht
lich der Transformationsdomäne bringt komplexe Beziehungen zwischen vielen Koeffi
zienten mit sich. Zum Beispiel hat die Klasse aller linearen 2D-Rampen in der räumli
chen Domäne keine nette DCT-Darstellung. Es ist schwierig, die Randbedingungen bzw.
Beschränkungen hinsichtlich der Glätte bzw. Stetigkeit von Transformationsdomänen mit
Quantisierungs-Randbedingungen bzw. -Beschränkungen zu kombinieren. Typischer
weise werden iterative Lösungen verwendet, wobei eine Verbesserungsoperation (Glät
ten/"De-Ringing" bzw. "Ent-Überschwingen"/Kantenverbesserung bzw. "edge enhance
ment") in der räumlichen Domäne durchgeführt wird, wobei hiernach eine Begrenzung
hinsichtlich der Transformationsdomäne erfolgt, um die Verbesserung innerhalb des
Quantisierungsfehlers zu halten.
Kanten ("edges") stellen häufig die Ursache für Artifakte in einem Bild dar. Eine
Kantenextraktion ist in der Fachwelt gut als ein Mittel bekannt, um Kanten zu identifi
zieren und die Kanten von einem Bild zu entfernen. Die Verwendung von Gauß-Funk
tionen bzw. gauß'schen Algorithmen bei der Kantendetektion haben eine lange Geschich
te. Es wird z. B. auf E. Marr und E. Hildreth "Theory of Edged Section", Proc. R. SOC.
London, Band 207, Seiten 187-217, 1980; V.T. und Thomaso A. Poggio "On Edge
Detection", IEEE Trans. on Pattern Analysis and Machine Intelligence, Band 8, Seiten
147-63, 1986; L. Basano, D. Caprile, et al. "Edge-Detection Schemes Highly Suitable
for Hardware Implementation", J. Opt. Soc. Am., Band 5, Seiten 1170-1175, 1988; und
S. Mallate und S. Zhong "Characterization of Signals from Multiscale Edges", IEEE
Trans. on Pattern Analysis and Machine Intelligence, Band 14, Seiten 710-732, 1992,
verwiesen. Obwohl diese Verfahren zur Detektion von Kanten in dem Stand der Technik
existierten, gab es immer den Wunsch, die Kantendetektion zu verbessern, so daß
Rekonstruktionen mit scharfen Kanten gemacht werden können, ohne Artifakte in der
Nähe der Kanten.
Die Kompression ist häufig sehr zeitaufwendig und speicherintensiv. Es ist wünschens
wert, die Kompression schneller und/oder mit einem verringerten Speicher, wenn
möglich, durchzuführen. Manche Anwendungen haben niemals eine Kompression
verwendet, weil entweder die Qualität nicht gewährleistet werden konnte, die Kom
pressionsrate nicht hoch genug war oder die Datenrate nicht steuerbar war. Jedoch ist die
Verwendung von Kompression wünschenswert, um die Menge an Information, die zu
übertragen und/oder zu speichern ist, zu reduzieren.
Es werden ein Verfahren und ein Apparat zur Durchführung einer Rekonstruktion
beschrieben. Das Verfahren der vorliegenden Erfindung ermöglicht den Empfang von
DS- und DD-Koeffizienten, die durch eine Grenze beeinträchtigt sind, die Rekon
struktion von SD-Koeffizienten, damit diese glatt über die Grenze verlaufen, die Anwen
dung einer vertikalen inversen Transformation, und zwar individuell auf jedes Element
bzw. auf jede "Platte" ("tile"), die Rekonstruktion von D-Koeffizienten, damit sie glatt
über die Grenze verlaufen, und das Anwenden einer horizontalen inversen Transforma
tion, jeweils einzeln auf jedes Element bzw. jede "Platte" ("tile").
Im folgenden wird die Erfindung im Zusammenhang mit den beigefügten Figuren
beschrieben. Dabei werden weitere Merkmale der Erfindung offenbart. Merkmale
unterschiedlicher Ausführungsformen können miteinander kombiniert werden.
Fig. 1 zeigt kontextabhängige Verhältnisse, in denen "Kinder" auf ihre "Mütter"
bzw. "Eltern" ("parents") konditioniert sind.
Fig. 2 ist ein Blockdiagramm einer Ausführungsform eines Kompressionssy
stems der vorliegenden Erfindung.
Fig. 3 und 4 zeigen mögliche geometrische Verhältnisse des Kontextmodells für jedes
Bit einer jeden Bitebene in dem binären Stil.
Fig. 5 zeigt ein in Elemente unterteiltes Bild bzw. "plattiertes" Bild.
Fig. 6 zeigt Wichtigkeitsniveau-Eintrittspunkte und Hauptkopfsyntax.
Fig. 7 zeigt Wichtigkeitsniveau-Eintrittspunkte und Platten"-Kopfsyntax.
Fig. 8 zeigt Wichtigkeitsniveau-Lokatoren und Hauptkopfsyntax.
Fig. 9 zeigt Wichtigkeitsniveau-Lokatoren und "Platten"-Kopfsyntax.
Fig. 10 zeigt die Bittiefen der verschiedenen Koeffizienten bei einer
Zwei-Niveau-TS-Transformation und einer TT-Transformationszerlegung eines
Eingangsbildes mit b-Bits pro Pixel.
Fig. 11 zeigt eine Ausführungsform der Multiplizierer oder Ausrichtungen für das
Frequenzband, das zur Koeffizientenausrichtung bei der vorliegenden
Erfindung verwendet wird.
Fig. 12 zeigt Beispiele einer Bitsignifikanzdarstellung.
Fig. 13 zeigt Nachbarschaftskoeffizienten für jeden Koeffizienten einer Kodier
einheit.
Fig. 14 zeigt eine kindbasierte Abtastreihenfolge.
Fig. 15 zeigt eine Stelle von Referenzbits.
Fig. 16 zeigt Koeffizienten, die verwendet werden, um zu entscheiden, ob ein
Vorhersehen versucht wird.
Fig. 17 zeigt eine Post-Vorherseh-Kopfbit-Kontextmodell-Nachbarschaftskoeffi
zientenverteilung.
Fig. 18 zeigt ein Beispiel eines Mutterkoeffizienten ("Parent"-Koeffizienten) und
einer Bitebene.
Fig. 19 zeigt eine Nachbarschafts- und Mutterkoeffizientenverteilung hinsichtlich
des Kopfbit-Kontextmodells.
Fig. 20 zeigt ein Flußdiagramm für ein Kontextmodell vom Transformationsstil.
Fig. 21 zeigt ein Flußdiagramm einer Ausführungsform des Dekodierungsprozes
ses der vorliegenden Erfindung.
Fig. 22 zeigt ein Flußdiagramm einer Ausführungsform des Dekodierungsprozes
ses der vorliegenden Erfindung.
Fig. 23 zeigt eine typische Verteilung für verlustbehaftete Rekonstruktion.
Fig. 24 zeigt ein Verfahren zur Berechnung der inversen TT-Transformation.
Fig. 25 zeigt Gewichte, die verwendet werden, um Pf über "Platten"-Grenzen zu
berechnen (voller Rahmen bzw. Vollbild).
Fig. 26 zeigt Gewichte, die verwendet werden, um Pt auf einer einzigen "Plat
ten"-Grenze mit Spiegelung zu berechnen.
Fig. 27 zeigt Gewichte, um Pf-Pt ungefähr zu berechnen.
Fig. 28A und Fig. 28B erläutern eine Entscheidung über lineare Rekonstruktion (Fig.
28A) oder einer Stufenkanten-Rekonstruktion (Fig. 28B), indem fünf
S-Koeffizienten verwendet werden.
Fig. 29 zeigte eine Kantenextraktionsausführungsform, die eine Differenz einer
gauß'schen Kantenextraktion für eine Auflösung erzeugt.
Fig. 30 zeigt eine partielle Transformation, die bei der Rekonstruktion zu verwen
den ist.
Fig. 31 zeigt eine "Clipping"-Rekonstruktion bzw. stutzende Rekonstruktion.
Fig. 32 zeigt die Entsprechung zwischen der Periode einer sinusförmigen und
einer negativen Korrelation.
Fig. 33 zeigt ein Beispiel eines Einzelplattenpuffers ("Single-Tile"-Puffer).
Fig. 34 zeigt eine Ausführungsform eines FSM-Kodierers zur Verwendung beim
"Häufig-Auftritts"-Kontextmodellieren.
Fig. 35 zeigt eine einzigen Nachschlagtabelle, die in einem FSM-Kodierer aufge
nommen werden kann, um beim "Häufig-Auftritts"-Kontextmodellieren
verwendet zu werden.
Fig. 36 ist ein Flußdiagramm einer Ausführungsform des Kontextmodells vom
Binärstil.
Fig. 37 zeigt die Nachbarschaftskoeffizienten, die zu dem Kontext für das Kon
textmodell vom Binärstil beitragen.
Fig. 38A und 38B zeigen zwei Beispiele von neun Zeigern, die beibehalten werden, um
auf Speicherstellen für den nächsten Kontext zu zeigen.
Fig. 39 zeigt eine normalisierte Ausrichtung.
Fig. 40 zeigt eine pyramidale Ausrichtung.
Fig. 41 zeigt eine Ausführungsform der BVI-Kennung bzw. des BVI-Etiketts.
Es werden ein Verfahren und ein Apparat zur Kompression und Dekompression be
schrieben. Bei der folgenden Beschreibung werden zahlreiche Details dargelegt, wie z. B.
die Anzahl der Bits, Bitraten, Typen von Filtern usw. Es ist jedoch für einen Fachmann
offensichtlich, daß die vorliegende Erfindung ohne diese spezifischen Details praktiziert
werden kann. In anderen Fällen werden gut bekannte Strukturen und Vorrichtungen eher
in Blockdiagrammform gezeigt als im Detail, um eine Verschleierung der vorliegenden
Erfindung zu vermeiden.
Manche Abschnitte der detaillierten Beschreibung, die folgen, werden in Algorithmen
und symbolischen Darstellungen von Operationen mit Datenbits innerhalb eines Compu
terspeichers ausgedrückt. Diese algorithmischen Beschreibungen und Darstellungen sind
die Mittel, die von Fachleuten auf dem Gebiet der Datenverarbeitung verwendet werden,
um das wesentliche ihrer Arbeit anderen Fachleuten zu vermitteln. Ein Algorithmus
bedeutet hier und im allgemeinen eine selbstkonsistente Sequenz von Schritten, die zu
einem gewünschten Ergebnis führen. Bei den Schritten handelt es sich um physikalische
Manipulationen von physikalischen Quantitäten. Üblicherweise, aber nicht notwendiger
weise, nehmen diese Quantitäten die Gestalt elektrischer oder magnetischer Signale ein,
die gespeichert, übertragen, kombiniert, verglichen und sonstwie manipuliert werden
können. Es hat sich als zweckmäßig erwiesen, und zwar hauptsächlich aufgrund der
allgemeinen Verwendbarkeit, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen,
Terme, Zahlen oder dergleichen zu bezeichnen.
Man sollte dennoch im Kopf behalten, daß alle diese und ähnliche Terme passenden
physikalischen Quantitäten zugeordnet sind und daß lediglich passende Etiketten diesen
Quantitäten zugewiesen wurden. Soweit es nicht speziell bei den folgenden Diskussionen
bemerkt wird, ist davon auszugehen, daß für die gesamte Erfindung die Diskussionen,
die Terme, wie "Verarbeiten" und "Berechnen" oder "Bestimmen" oder "Anzeigen" oder
dergleichen, sich auf Aktionen und Prozesse eines Computersystems oder einer ähnli
chen elektronischen Berechnungsvorrichtung beziehen, die Daten, die als physikalische
(elektronische) Quantitäten innerhalb der Register und Speicher des Computersystems
dargestellt sind, in andere Daten manipuliert oder transformiert, die in ähnlicher Weise
als physikalische Daten innerhalb der Speicher oder Register des Computersystems oder
innerhalb anderer derartiger Informationsspeicher, Übertragungs- oder Anzeigevor
richtungen dargestellt sind.
Die vorliegende Erfindung betrifft ebenso einen Apparat, um die Operationen darin
durchzuführen. Dieser Apparat kann insbesondere für die erforderlichen Zwecke speziell
konstruiert sein oder er kann einen Allzweck-Computer umfassen, der selektiv durch ein
Computerprogramm aktiviert oder rekonfiguriert wird, das in dem Computer gespeichert
ist. Ein derartiges Computerprogramm kann in einem computerlesbaren Speichermedium
gespeichert werden, wie z. B. jeglicher Typ von Platte bzw. Diskette, einschließlich einer
Diskette, optischen Platte, CD-ROM und magneto-optische Platten, Nur-Lese-Speicher
(ROMs), Speicher mit wahlfreiem Zugriff (RAMs), EPROMs, EEPROMs, magnetische
oder optische Karten oder jeglicher Typ von Medium, das zur Speicherung elektro
nischer Befehle geeignet ist, wobei diese jeweils mit einem Computersystembus gekop
pelt sind. Die Algorithmen und Anzeigen, die hierin dargestellt werden, beziehen sich
nicht inhärend auf irgendeinen bestimmten Computer oder anderen Apparat. Verschiede
ne Allzweckmaschinen können mit Programmen in Übereinstimmung mit den Lehren
hierin verwendet werden oder sie können sich als zweckmäßig erweisen, um einen
spezialisierteren Apparat aufzubauen, um die erforderlichen Verfahrensschritte durch
zuführen. Die geforderte Struktur für eine Vielfalt dieser Maschinen wird sich aus der
folgenden Beschreibung ergeben. Zusätzlich wird die vorliegende Erfindung nicht unter
Bezugnahme auf irgendwelche bestimmten Programmsprachen beschrieben. Man wird
erkennen, daß eine Vielfalt von Programmiersprachen verwendet werden kann, um die
Lehren der Erfindung zu realisieren, wie hierin beschrieben ist.
Die folgenden Terme werden in der Beschreibung verwendet, die folgt. Eine Definition
wurde für diese verschiedenen Terme mit aufgenommen. Jedoch sollte die Definition,
soweit die Terme in der Fachwelt bekannt sind, nicht als beschränkend aufgefaßt
werden. Diese Definitionen werden bereitgestellt, um das Verständnis der vorliegenden
Erfindung zu erleichtern.
Ausrichtung ("alingment"):
Der Grad der Verschiebung der Transformationskoeffizi enten in einem Frequenzband bezüglich der anderen Fre quenzbänder.
Der Grad der Verschiebung der Transformationskoeffizi enten in einem Frequenzband bezüglich der anderen Fre quenzbänder.
Arithmetisches Kodieren ("arithmetic coding"):
Shannon/Elias-Kodieren mit endlicher Präzisionsarith metik, nicht notwendigerweise ein binärer Entropiekodie rer.
Shannon/Elias-Kodieren mit endlicher Präzisionsarith metik, nicht notwendigerweise ein binärer Entropiekodie rer.
B-Kodieren ("B-coding"):
Ein binärer Entropiekodierer, der eine Maschine mit end lichen Zuständen bzw. eine "Finite State Machine" (im folgenden auch mit "FSM" abgekürzt) zur Kompression verwendet. Anders als bei dem Huffman-Kodieren macht sich die FSM gut bei binären Symbolen und ist für eine Spanne von Eingangswahrscheinlichkeiten nützlich.
Ein binärer Entropiekodierer, der eine Maschine mit end lichen Zuständen bzw. eine "Finite State Machine" (im folgenden auch mit "FSM" abgekürzt) zur Kompression verwendet. Anders als bei dem Huffman-Kodieren macht sich die FSM gut bei binären Symbolen und ist für eine Spanne von Eingangswahrscheinlichkeiten nützlich.
Binärer Entropiekodierer ("binary entropy coder"):
Ein rauschloser Kodierer, der auf binäre Entscheidungen (ja/nein) wirkt, die häufig als das höchstwahrscheinliche Symbol ("most probable symbol" oder "mps") und als das geringstwahrscheinliche Symbol ("least probable symbol" bzw. "lps") ausgedrückt werden.
Ein rauschloser Kodierer, der auf binäre Entscheidungen (ja/nein) wirkt, die häufig als das höchstwahrscheinliche Symbol ("most probable symbol" oder "mps") und als das geringstwahrscheinliche Symbol ("least probable symbol" bzw. "lps") ausgedrückt werden.
Binärstil ("binary-style"):
Kodierstil mit kantenfüllendem Gray-Kodieren ("Edge-Fill"-Gray-Kodieren) der Pixel und eines bestimmten Kon textmodells.
Kodierstil mit kantenfüllendem Gray-Kodieren ("Edge-Fill"-Gray-Kodieren) der Pixel und eines bestimmten Kon textmodells.
Binärstil-Kontextmodell ("binary-style context model"):
Ein Kontextmodell für Bi-Niveau- und Begrenzt-Niveau-Bild daten ("Bi-Level"-Bilddaten und "Limited-Level"-Bild daten).
Ein Kontextmodell für Bi-Niveau- und Begrenzt-Niveau-Bild daten ("Bi-Level"-Bilddaten und "Limited-Level"-Bild daten).
Bit-Signifikanz ("bit-significance"):
Eine Zahldarstellung ähnlich zu Vorzeichenbetrag mit Kopfbits ("Head"-Bits), denen das Vorzeichenbit folgt, dem die Schwanzbits ("Tail"-Bits) folgen, falls welche vorhanden sind. Das Einbetten ("embedding") kodiert in der Bitebenenordnung ("bit-plane order") bezüglich dieser Darstellung.
Eine Zahldarstellung ähnlich zu Vorzeichenbetrag mit Kopfbits ("Head"-Bits), denen das Vorzeichenbit folgt, dem die Schwanzbits ("Tail"-Bits) folgen, falls welche vorhanden sind. Das Einbetten ("embedding") kodiert in der Bitebenenordnung ("bit-plane order") bezüglich dieser Darstellung.
Kindbasierte Ordnung ("child-based order"):
Eine Abtastordnung durch ein zweidimensionales Bild. Sie ist der Rasterordnung ähnlich, mit der Ausnahme, daß die Abtastung mit Zwei-mal-Zwei-Blöcken arbeitet. Be trachtet man eine Abtastung eines "Mutter"- bzw. "Pa rent"-Frequenzbandes in Rasterordnung, so wird jeder Koeffizient vier Kinder haben. Diese Kinder werden von oben links, oben rechts, unten links und unten rechts ge ordnet, und zwar gefolgt durch die nächste Mutter ("pa rent") und dem nächsten Satz von vier Kindern usw., bis zum Ende der Linie bzw. Zeile. Dann kehrt die Verarbei tung zu den nächsten beiden Linien bzw. Zeilen zurück und endet schließlich in der unteren rechten Ecke. Keine Linien bzw. Zeilen werden übersprungen. Die kindbasierte Ordnung wird ebenso als 2×2-Blockordnung bezeichnet.
Eine Abtastordnung durch ein zweidimensionales Bild. Sie ist der Rasterordnung ähnlich, mit der Ausnahme, daß die Abtastung mit Zwei-mal-Zwei-Blöcken arbeitet. Be trachtet man eine Abtastung eines "Mutter"- bzw. "Pa rent"-Frequenzbandes in Rasterordnung, so wird jeder Koeffizient vier Kinder haben. Diese Kinder werden von oben links, oben rechts, unten links und unten rechts ge ordnet, und zwar gefolgt durch die nächste Mutter ("pa rent") und dem nächsten Satz von vier Kindern usw., bis zum Ende der Linie bzw. Zeile. Dann kehrt die Verarbei tung zu den nächsten beiden Linien bzw. Zeilen zurück und endet schließlich in der unteren rechten Ecke. Keine Linien bzw. Zeilen werden übersprungen. Die kindbasierte Ordnung wird ebenso als 2×2-Blockordnung bezeichnet.
Kodestrom ("codestream"):
Ein Kodeabschnitt von Bilddaten, und zwar einschließlich der Kopfsignalisierung. Bei einer alternativen Aus führungsform ist die Kopfsignalisierung nicht enthalten.
Ein Kodeabschnitt von Bilddaten, und zwar einschließlich der Kopfsignalisierung. Bei einer alternativen Aus führungsform ist die Kopfsignalisierung nicht enthalten.
Koeffizient ("coefficient"):
Komponenten nach der Transformation.
Komponenten nach der Transformation.
Komponenten ("components"):
Konstituierende Teile des Bildes. Die Komponenten bilden die Pixel. Zum Beispiel stellen die roten, grünen und blau en Bänder Komponentenbänder dar. Jedes einzelne Pixel ist aus einer roten, grünen und blauen Komponente ge bildet. Komponenten und Komponentenbänder können einen jeglichen Informationstyp enthalten, der eine räumli che Abbildung auf das Bild umfaßt bzw. eine räumliche Umsetzung bezüglich des Bildes hat.
Konstituierende Teile des Bildes. Die Komponenten bilden die Pixel. Zum Beispiel stellen die roten, grünen und blau en Bänder Komponentenbänder dar. Jedes einzelne Pixel ist aus einer roten, grünen und blauen Komponente ge bildet. Komponenten und Komponentenbänder können einen jeglichen Informationstyp enthalten, der eine räumli che Abbildung auf das Bild umfaßt bzw. eine räumliche Umsetzung bezüglich des Bildes hat.
Kontextmodell ("context model"):
Kausal verfügbare Information relativ zu dem aktuell zu kodierenden Bit, die eine historisch gelernte Information über das aktuelle Bit gibt, wodurch eine Schätzung der bedingten Wahrscheinlichkeit für das Entropiekodieren ermöglicht wird.
Kausal verfügbare Information relativ zu dem aktuell zu kodierenden Bit, die eine historisch gelernte Information über das aktuelle Bit gibt, wodurch eine Schätzung der bedingten Wahrscheinlichkeit für das Entropiekodieren ermöglicht wird.
Effiziente Transformation ("efficient transform"):
Transformation, die die beste Energieverdichtung ("energy compaction") in die Koeffizienten hinein erreicht, während die minimale Anzahl von Bits verwendet wird, um jene Koeffizienten darzustellen.
Transformation, die die beste Energieverdichtung ("energy compaction") in die Koeffizienten hinein erreicht, während die minimale Anzahl von Bits verwendet wird, um jene Koeffizienten darzustellen.
Eingebettetes Kontextmodell ("embedded context model"):
Ein Kontextmodell, das die Kontextbins trennt und zu Wichtigkeitspegeln bzw. -niveaus in einer solchen Art und Weise führt, daß eine effektive verlustbehaftete Kompression erzielt wird, falls die wichtigeren Werte beibehalten werden.
Ein Kontextmodell, das die Kontextbins trennt und zu Wichtigkeitspegeln bzw. -niveaus in einer solchen Art und Weise führt, daß eine effektive verlustbehaftete Kompression erzielt wird, falls die wichtigeren Werte beibehalten werden.
Eingebettet mit Ordnen ("embedded with ordering"):
Ein spezieller Fall des eingebetteten Kontextmodells, wo es keine explizite Markierung der Wichtigkeit gibt, son dern eher die komprimierten Daten mit den wichtigsten Daten in der Front bzw. zu Beginn geordnet werden.
Ein spezieller Fall des eingebetteten Kontextmodells, wo es keine explizite Markierung der Wichtigkeit gibt, son dern eher die komprimierten Daten mit den wichtigsten Daten in der Front bzw. zu Beginn geordnet werden.
Eingebettete Quantisierung ("embedded quantization"):
Quantisierung, die durch den Kodestrom impliziert ist bzw. darin mit enthalten ist. Falls z. B. die Wichtigkeits niveaus in einer Reihenfolge von dem wichtigsten zu dem am wenigstens wichtigen plaziert werden, dann wird die Quantisierung durch einfaches Abschneiden des Kode stroms durchgeführt. Dieselbe Funktionalität ist bei Ken nungen ("tags"), Markern, Zeigern oder einer anderen Signalisierung verfügbar. Mehrere Quantisierungen können mit einem Bild beim Dekodieren durchgeführt werden, aber nur eine eingebettete Quantisierung kann während des Kodierens durchgeführt werden.
Quantisierung, die durch den Kodestrom impliziert ist bzw. darin mit enthalten ist. Falls z. B. die Wichtigkeits niveaus in einer Reihenfolge von dem wichtigsten zu dem am wenigstens wichtigen plaziert werden, dann wird die Quantisierung durch einfaches Abschneiden des Kode stroms durchgeführt. Dieselbe Funktionalität ist bei Ken nungen ("tags"), Markern, Zeigern oder einer anderen Signalisierung verfügbar. Mehrere Quantisierungen können mit einem Bild beim Dekodieren durchgeführt werden, aber nur eine eingebettete Quantisierung kann während des Kodierens durchgeführt werden.
Entropiekodierer ("entropy coder"):
Eine Vorrichtung, die ein aktuelles Bit basierend auf einer Wahrscheinlichkeitsschätzung kodiert oder dekodiert. Ein Entropiekodierer wird hierin auch als binärer Multikontext-Entropie kodierer bzw. Multikontext-Binär-Entropiekodierer bezeichnet. Der Kontext des aktuellen Bits stellt eine ge wisse gewählte Konfiguration von "nahegelegenen" Bits dar und erlaubt die Wahrscheinlichkeitsschätzung für die beste Darstellung des aktuellen Bits (oder mehrerer Bits). Bei einer Ausführungsform kann ein Entropiekodierer einen binären Kodierer, einen parallelen Lauflängenkodie rer oder einen Huffman-Kodierer enthalten.
Eine Vorrichtung, die ein aktuelles Bit basierend auf einer Wahrscheinlichkeitsschätzung kodiert oder dekodiert. Ein Entropiekodierer wird hierin auch als binärer Multikontext-Entropie kodierer bzw. Multikontext-Binär-Entropiekodierer bezeichnet. Der Kontext des aktuellen Bits stellt eine ge wisse gewählte Konfiguration von "nahegelegenen" Bits dar und erlaubt die Wahrscheinlichkeitsschätzung für die beste Darstellung des aktuellen Bits (oder mehrerer Bits). Bei einer Ausführungsform kann ein Entropiekodierer einen binären Kodierer, einen parallelen Lauflängenkodie rer oder einen Huffman-Kodierer enthalten.
Eintrittspunkt ("entry point"):
Ein Punkt in den kodierten Daten, der mit einem bekann ten Kodierzustand beginnt. Der Dekodierer kann bei die sem Punkt mit dem Dekodieren beginnen, ohne die vorher gehenden Daten zu dekodieren. In den meisten Fällen erfordert dies, daß der Kontext und der binäre Entropieko dierer in einen Anfangszustand zurückgesetzt werden. Die kodierten Daten für jede Kodiereinheit beginnen bei einem Eintrittspunkt.
Ein Punkt in den kodierten Daten, der mit einem bekann ten Kodierzustand beginnt. Der Dekodierer kann bei die sem Punkt mit dem Dekodieren beginnen, ohne die vorher gehenden Daten zu dekodieren. In den meisten Fällen erfordert dies, daß der Kontext und der binäre Entropieko dierer in einen Anfangszustand zurückgesetzt werden. Die kodierten Daten für jede Kodiereinheit beginnen bei einem Eintrittspunkt.
Feste Länge ("fixed-length"):
Ein System, das einen spezifischen Block von Daten in einen spezifischen Block von komprimierten Daten, z. B. BTC (Blockabschneidungskodieren) und eine gewisse Form von VQ (Vektorquantisierung) konvertiert. Kodes mit fester Länge dienen Anwendungen mit einer fixierten Rate und fixierten Größe, aber die Leistungsfähigkeit bei einer Ratenstörung bzw. Ratenverzerrung ist häufig schlecht im Vergleich zu Systemen mit einer variablen Rate.
Ein System, das einen spezifischen Block von Daten in einen spezifischen Block von komprimierten Daten, z. B. BTC (Blockabschneidungskodieren) und eine gewisse Form von VQ (Vektorquantisierung) konvertiert. Kodes mit fester Länge dienen Anwendungen mit einer fixierten Rate und fixierten Größe, aber die Leistungsfähigkeit bei einer Ratenstörung bzw. Ratenverzerrung ist häufig schlecht im Vergleich zu Systemen mit einer variablen Rate.
Feste Rate ("fixed-rate"):
Eine Anwendung oder ein System, das eine gewisse Pixel rate aufrechterhält und einen begrenzten Bandweitenkanal hat. Bei einer Ausführungsform wird zum Erreichen dieses Ziels eher eine lokale mittlere Kompression erzielt als eine globale mittlere Kompression. Zum Beispiel erfordert MPEG eine feste Rate.
Eine Anwendung oder ein System, das eine gewisse Pixel rate aufrechterhält und einen begrenzten Bandweitenkanal hat. Bei einer Ausführungsform wird zum Erreichen dieses Ziels eher eine lokale mittlere Kompression erzielt als eine globale mittlere Kompression. Zum Beispiel erfordert MPEG eine feste Rate.
Feste Größe ("fixed-size"):
Eine Anwendung oder ein System, die einen Puffer mit be grenzter Größe hat. Bei einer Ausführungsform wird zur Erreichung dieses Ziels eine globale mittlere Kompression erreicht, z. B. ein Druckpuffer. (Bei einer Anwendung kann es sich um eine Anwendung mit fester Rate und/oder fe ster Größe handeln.)
Eine Anwendung oder ein System, die einen Puffer mit be grenzter Größe hat. Bei einer Ausführungsform wird zur Erreichung dieses Ziels eine globale mittlere Kompression erreicht, z. B. ein Druckpuffer. (Bei einer Anwendung kann es sich um eine Anwendung mit fester Rate und/oder fe ster Größe handeln.)
Frequenzband ("frequency band"):
Jedes Frequenzband beschreibt eine Gruppe von Koeffi zienten, die sich aus derselben Sequenz von Filteroperatio nen ergeben.
Jedes Frequenzband beschreibt eine Gruppe von Koeffi zienten, die sich aus derselben Sequenz von Filteroperatio nen ergeben.
Kopfbits ("head bits"):
Bei der Bitsignifikanzdarstellung handelt es sich bei den Kopfbits um die Betragbits, und zwar ausgehend von dem höchstwertigen bis zu dem und einschließlich des ersten Bits ungleich Null.
Bei der Bitsignifikanzdarstellung handelt es sich bei den Kopfbits um die Betragbits, und zwar ausgehend von dem höchstwertigen bis zu dem und einschließlich des ersten Bits ungleich Null.
Huffman-Kodierer ("Huffman Coder"):
Im allgemeinen ein Kode mit fester Länge, der eine ganz zahlige Anzahl von Bits für jedes Symbol erzeugt.
Im allgemeinen ein Kode mit fester Länge, der eine ganz zahlige Anzahl von Bits für jedes Symbol erzeugt.
Idempotent ("idempotent"):
Ein Kodieren, das es ermöglicht, daß ein Bild in einer verlustbehafteten Form dekomprimiert wird und zu dem selben verlustbehafteten Kodestrom erneut komprimiert wird.
Ein Kodieren, das es ermöglicht, daß ein Bild in einer verlustbehafteten Form dekomprimiert wird und zu dem selben verlustbehafteten Kodestrom erneut komprimiert wird.
Bildplatte ("image tile"):
Ein rechteckiger Bereich, der so gewählt wird, daß es er möglicht wird, ein Gitter von benachbarten, nicht überlap penden Unterbildern festzulegen, wobei jedes identische Parameter aufweist. Bei einer Ausführungsform arbeiten die Kodieroperationen nur mit den Pixeldaten und Koeffi zientendaten in einer Bildplatte. Diese Beschränkung er laubt einen wahlfreien Zugriff und die Dekompression von interessierenden Bereichen. Bei einer Ausführungsform haben die Bildplatten alle dieselbe Größe, und zwar mögli cherweise mit der Ausnahme der rechten oder unteren Platten. Bei einer Ausführungsform können die Bildplatten eine jede Größe bis zur Größe des Gesamtbildes und ein schließlich der Größe des Gesamtbildes haben.
Ein rechteckiger Bereich, der so gewählt wird, daß es er möglicht wird, ein Gitter von benachbarten, nicht überlap penden Unterbildern festzulegen, wobei jedes identische Parameter aufweist. Bei einer Ausführungsform arbeiten die Kodieroperationen nur mit den Pixeldaten und Koeffi zientendaten in einer Bildplatte. Diese Beschränkung er laubt einen wahlfreien Zugriff und die Dekompression von interessierenden Bereichen. Bei einer Ausführungsform haben die Bildplatten alle dieselbe Größe, und zwar mögli cherweise mit der Ausnahme der rechten oder unteren Platten. Bei einer Ausführungsform können die Bildplatten eine jede Größe bis zur Größe des Gesamtbildes und ein schließlich der Größe des Gesamtbildes haben.
Wichtige Niveaus bzw. Pegel ("importance levels"):
Die Einheit von kodierten Daten, die vor einer Kompres sion einer gesamten Bitebene von eingebetteten Daten ent spricht. Das Wichtigkeitsniveau enthält alle geeigneten Bitebenen von den unterschiedlichen Koeffizienten-Fre quenzbändern.
Die Einheit von kodierten Daten, die vor einer Kompres sion einer gesamten Bitebene von eingebetteten Daten ent spricht. Das Wichtigkeitsniveau enthält alle geeigneten Bitebenen von den unterschiedlichen Koeffizienten-Fre quenzbändern.
LPS (am wenigsten wahrscheinliches Symbol) ("Least Probable Symbol"):
Das Ergebnis bzw. Resultat bei einer binären Entschei dung mit einer Wahrscheinlichkeit von weniger als 50%. Wenn die zwei Ergebnisse bzw. Resultate gleich wahr scheinlich sind, ist es unwichtig, welches als mps oder lps bezeichnet wird, solange der Kodierer und der Dekodierer dieselbe Bezeichnung vornehmen.
Das Ergebnis bzw. Resultat bei einer binären Entschei dung mit einer Wahrscheinlichkeit von weniger als 50%. Wenn die zwei Ergebnisse bzw. Resultate gleich wahr scheinlich sind, ist es unwichtig, welches als mps oder lps bezeichnet wird, solange der Kodierer und der Dekodierer dieselbe Bezeichnung vornehmen.
Verlustfreies/rauschfreies/reversibles Kodieren
("lossless/noisless/reversible coding"):
Komprimieren von Daten in einer Art und Weise, die eine perfekte Rekonstruktion der Originaldaten ermöglicht.
Komprimieren von Daten in einer Art und Weise, die eine perfekte Rekonstruktion der Originaldaten ermöglicht.
Verlustbehaftetes Kodieren ("lossy coding"):
Kodieren von Daten, das keine perfekte Rekonstruktion der Originaldaten garantiert. Die Änderungen an den Ori ginaldaten können in einer solchen Art und Weise durch geführt werden, so daß sie nicht visuell beanstandet oder detektiert werden können. Häufig ist eine feste Rate mög lich.
Kodieren von Daten, das keine perfekte Rekonstruktion der Originaldaten garantiert. Die Änderungen an den Ori ginaldaten können in einer solchen Art und Weise durch geführt werden, so daß sie nicht visuell beanstandet oder detektiert werden können. Häufig ist eine feste Rate mög lich.
MPS (höchstwahrscheinliches Symbol) ("Most Probable Symbol"):
Das Ergebnis bzw. das Resultat einer binären Entschei dung mit einer Wahrscheinlichkeit von mehr als 50%.
Das Ergebnis bzw. das Resultat einer binären Entschei dung mit einer Wahrscheinlichkeit von mehr als 50%.
Überlappte Transformation ("overlapped transform"):
Eine Transformation, wo ein einziger Quellenabtastpunkt zu mehreren Koeffizienten mit derselben Frequenz bei trägt. Beispiele sind viele Wavelets und die überlappte orthogonale Transformation.
Eine Transformation, wo ein einziger Quellenabtastpunkt zu mehreren Koeffizienten mit derselben Frequenz bei trägt. Beispiele sind viele Wavelets und die überlappte orthogonale Transformation.
Mutter-Koeffizient bzw. Eltern-Koeffizient ("parent coefficient"):
Der Koeffizient oder Pixel in dem nächsthöheren pyra midalen Niveau, der denselben Bildraum wie der aktuelle Koeffizient oder Pixel abdeckt. Zum Beispiel handelt es sich bei der Mutter der 1SD-Koeffizienten um den 2SD-Koeffienzenten, der die Mutter des 3SD-Koeffizienten in Fig. 1 ist.
Der Koeffizient oder Pixel in dem nächsthöheren pyra midalen Niveau, der denselben Bildraum wie der aktuelle Koeffizient oder Pixel abdeckt. Zum Beispiel handelt es sich bei der Mutter der 1SD-Koeffizienten um den 2SD-Koeffienzenten, der die Mutter des 3SD-Koeffizienten in Fig. 1 ist.
Wahrscheinlichkeits-Schätzmaschine/Modul ("probabilty estimation machine/module"):
Teil eines Kodiersystems, das die Wahr scheinlichkeit innerhalb eines Kontextes erfolgt bzw. deren Spur folgt.
Teil eines Kodiersystems, das die Wahr scheinlichkeit innerhalb eines Kontextes erfolgt bzw. deren Spur folgt.
Progressive Pixeltiefe ("progressive pixel depth"):
Ein Kodestrom, der mit sich vertiefenden bzw. tiefer ge henden Daten-Bitebenen bei voller Bildauflösung geordnet ist.
Ein Kodestrom, der mit sich vertiefenden bzw. tiefer ge henden Daten-Bitebenen bei voller Bildauflösung geordnet ist.
Progressiv-Pyramidal: ("progressive pyramidal"):
Abfolge von Auflösungen, wobei jede untere Auflösung ein linearer Faktor von zwei in einer jeden Dimension ist (ein Faktor von vier in einem Bereich).
Abfolge von Auflösungen, wobei jede untere Auflösung ein linearer Faktor von zwei in einer jeden Dimension ist (ein Faktor von vier in einem Bereich).
Pyramidales Niveau ("pyramidal level"):
Platz in der Waveletzerlegungspyramide. Dies steht in di rekter Beziehung zur Auflösung.
Platz in der Waveletzerlegungspyramide. Dies steht in di rekter Beziehung zur Auflösung.
Q-Kodierer ("Q-coder"):
Ein binärer arithmetischer Kodierer, wo Additionen für Multiplikationen und Wahrscheinlichkeiten substituiert wurden, die auf diskrete Werte beschränkt sind, und Wahr scheinlichkeitsschätzungen aktualisiert werden, wenn Bits ausgegeben werden.
Ein binärer arithmetischer Kodierer, wo Additionen für Multiplikationen und Wahrscheinlichkeiten substituiert wurden, die auf diskrete Werte beschränkt sind, und Wahr scheinlichkeitsschätzungen aktualisiert werden, wenn Bits ausgegeben werden.
Quantisierung ("quantization"):
Eine selektive Beseitigung oder Nicht-Verwendung von Daten oder Information. Eine Quantisierung führt notwen digerweise zu einer unperfekten (verlustbehafteten) Rekon struktion. Jedoch kann eine intelligente Quantisierung zu einer guten Qualität für die gegebene Datenmenge führen.
Eine selektive Beseitigung oder Nicht-Verwendung von Daten oder Information. Eine Quantisierung führt notwen digerweise zu einer unperfekten (verlustbehafteten) Rekon struktion. Jedoch kann eine intelligente Quantisierung zu einer guten Qualität für die gegebene Datenmenge führen.
Rasterordnung ("raster order"):
Eine Abtastordnung durch ein zweidimensionales Bild. Sie startet in der oberen linken Ecke, bewegt sich von links nach rechts, kehrt dann zur linken Seite der nächsten Zeile bzw. Linie zurück und endet schließlich in der unteren rechten Ecke. Keine Linien bzw. Zeilen werden übersprun gen.
Eine Abtastordnung durch ein zweidimensionales Bild. Sie startet in der oberen linken Ecke, bewegt sich von links nach rechts, kehrt dann zur linken Seite der nächsten Zeile bzw. Linie zurück und endet schließlich in der unteren rechten Ecke. Keine Linien bzw. Zeilen werden übersprun gen.
Reversible Transformation ("reversible transform"):
Bei einer Ausführungsform ist eine reversible Transforma tion eine effiziente Transformation, die mit einer Ganz zahl-Arithmetik realisiert wird, deren komprimierte Ergeb nisse in das Original rekonstruiert werden können.
Bei einer Ausführungsform ist eine reversible Transforma tion eine effiziente Transformation, die mit einer Ganz zahl-Arithmetik realisiert wird, deren komprimierte Ergeb nisse in das Original rekonstruiert werden können.
Kennung ("tag"):
Ein unkodierter Teil des Kodestroms, der Information über die Kodiercharakteristiken und die Grenzen des Kode stroms signalisiert. Bei einer Ausführungsform weisen Kennungen eine identifizierende Zahl auf, die ihre Funk tion ermittelt bzw. weiterträgt.
Ein unkodierter Teil des Kodestroms, der Information über die Kodiercharakteristiken und die Grenzen des Kode stroms signalisiert. Bei einer Ausführungsform weisen Kennungen eine identifizierende Zahl auf, die ihre Funk tion ermittelt bzw. weiterträgt.
Schwanzbits (oder Schwanz) ("tail-bits (or tail)"):
Bei einer Bitsignifikanzdarstellung handelt es sich bei den Schwanzbits um Betragbits, mit einer geringeren Si gnifikanz als die höchst signifikanten Bits ungleich Null.
Bei einer Bitsignifikanzdarstellung handelt es sich bei den Schwanzbits um Betragbits, mit einer geringeren Si gnifikanz als die höchst signifikanten Bits ungleich Null.
Platten-Datensegment ("tile data segement"):
Abschnitt des Kodestroms, der vollständig eine Kodier einheit beschreibt.
Abschnitt des Kodestroms, der vollständig eine Kodier einheit beschreibt.
Transformationsstil ("transform style"):
Kodierstil, der eine reversible Wavelettransformation zur Energieverdichtung verwendet.
Kodierstil, der eine reversible Wavelettransformation zur Energieverdichtung verwendet.
TS-Transformation ("Two-Six-transform"):
Zwei-Sechs-Transformation, ein spezifisches reversibles Wavelet-Filterpaar mit einem Tiefpaß-Analysefilter mit zwei Abgriffen und einem Hochpaß-Analysefilter mit sechs Abgriffen. Bei den Synthesefiltern handelt es sich um quadratische Spiegel der Analysefilter.
Zwei-Sechs-Transformation, ein spezifisches reversibles Wavelet-Filterpaar mit einem Tiefpaß-Analysefilter mit zwei Abgriffen und einem Hochpaß-Analysefilter mit sechs Abgriffen. Bei den Synthesefiltern handelt es sich um quadratische Spiegel der Analysefilter.
TT-Transformation ("Two-Ten-transform"):
Zwei-Zehn-Transformation, ein spezifisches reversibles Wavelet-Filterpaar mit einem Tiefpaß-Analysefilter mit zwei Abriffen und einem Hochpaß-Analysefilter mit zehn Abgriffen. Bei den Synthesefiltern handelt es sich um einen quadratischen Spiegel der Analysefilter.
Zwei-Zehn-Transformation, ein spezifisches reversibles Wavelet-Filterpaar mit einem Tiefpaß-Analysefilter mit zwei Abriffen und einem Hochpaß-Analysefilter mit zehn Abgriffen. Bei den Synthesefiltern handelt es sich um einen quadratischen Spiegel der Analysefilter.
Vereinheitlicht-verlustfrei/verlustbehaftet ("unified lossless/lossy"):
Dasselbe Kompressionssystem stellt einen Kodestrom be reit, der zur verlustfreien oder verlustbehafteten Rekon struktion in der Lage ist. Bei einer Ausführungsform der vorliegenden Erfindung ist dieser Kodestrom zu beidem in der Lage, und zwar ohne Einstellungen am Kodierer oder Instruktionen für den Kodierer.
Dasselbe Kompressionssystem stellt einen Kodestrom be reit, der zur verlustfreien oder verlustbehafteten Rekon struktion in der Lage ist. Bei einer Ausführungsform der vorliegenden Erfindung ist dieser Kodestrom zu beidem in der Lage, und zwar ohne Einstellungen am Kodierer oder Instruktionen für den Kodierer.
Waveletfilter ("wavelet filters"):
Die Hochpaß- und Tiefpaß-Synthesefilter und Analyse-Filter, die in der Wavelettransformation verwendet werden.
Die Hochpaß- und Tiefpaß-Synthesefilter und Analyse-Filter, die in der Wavelettransformation verwendet werden.
Wavelettransformation ("wavelet transform"):
Eine Transformation mit sowohl Zwangsbedingungen bzw. -beschränkungen in der Frequenzdomäne (Frequenzraum) als auch in der Zeit- (oder Raum-)Domäne. Bei einer Aus führungsform handelt es sich um eine Transformation, die einen Hochpaßfilter und einen Tiefpaßfilter umfaßt. Die sich ergebenden Koeffizienten werden um zwei deziiniert (kritisch gefiltert) und die Filter werden auf die Tiefpaßko effizienten angewendet.
Eine Transformation mit sowohl Zwangsbedingungen bzw. -beschränkungen in der Frequenzdomäne (Frequenzraum) als auch in der Zeit- (oder Raum-)Domäne. Bei einer Aus führungsform handelt es sich um eine Transformation, die einen Hochpaßfilter und einen Tiefpaßfilter umfaßt. Die sich ergebenden Koeffizienten werden um zwei deziiniert (kritisch gefiltert) und die Filter werden auf die Tiefpaßko effizienten angewendet.
Waveletbäume ("wavelet trees"):
Die Koeffizienten und die Pixel, die zu einem einzigen Koeffizienten in dem SS-Abschnitt der Waveletzerlegung höchsten Niveaus in Beziehung stehen. Die Anzahl von Koeffizienten ist eine Funktion der Anzahl von Niveaus. Fig. 1 zeigt die Koeffizienten, die in einem Waveletbaum enthalten sind. Die Spanne bzw. Spannweite eines Wave letbaums hängt von der Anzahl der Zerlegungsniveaus ab. Zum Beispiel überspannt bei einem Zerlegungsniveau ein Waveletbaum vier Pixel, bei zwei Niveaus 16 usw. Die Tabelle 1 unten zeigt die Anzahl von Pixel für unterschiedliche Niveaus, die von einem Waveletbaum beeinflußt werden. Bei zwei Dimensionen umfaßt jeder Waveletbaum drei Unterbäume, die SD, DD und DS ge nannt werden.
Die Koeffizienten und die Pixel, die zu einem einzigen Koeffizienten in dem SS-Abschnitt der Waveletzerlegung höchsten Niveaus in Beziehung stehen. Die Anzahl von Koeffizienten ist eine Funktion der Anzahl von Niveaus. Fig. 1 zeigt die Koeffizienten, die in einem Waveletbaum enthalten sind. Die Spanne bzw. Spannweite eines Wave letbaums hängt von der Anzahl der Zerlegungsniveaus ab. Zum Beispiel überspannt bei einem Zerlegungsniveau ein Waveletbaum vier Pixel, bei zwei Niveaus 16 usw. Die Tabelle 1 unten zeigt die Anzahl von Pixel für unterschiedliche Niveaus, die von einem Waveletbaum beeinflußt werden. Bei zwei Dimensionen umfaßt jeder Waveletbaum drei Unterbäume, die SD, DD und DS ge nannt werden.
Die vorliegende Erfindung stellt ein Kompressions-/Dekompressionssystem bereit, das
einen Kodierabschnitt und einen Dekodierabschnitt aufweist. Der Kodierabschnitt ist für
das Kodieren von Eingangsdaten verantwortlich, um komprimierte Daten zu erzeugen,
während der Dekodierabschnitt für das Dekodieren zuvor kodierter Daten verantwortlich
ist, um eine rekonstruierte Version der Originaleingangsdaten zu erzeugen. Die Ein
gangsdaten können eine Vielfalt von Datentypen umfassen, wie z. B. Bilddaten (bewegte
Bilddaten bzw. Videobilddaten oder Fotodaten), Audiodaten usw. Bei einer Ausfüh
rungsform kann es sich bei den Daten um digitale Signaldaten handeln; jedoch sind
digitalisierte analoge Daten, Textdaten-Formate und andere Formate ebenso möglich. Bei
der Datenquelle für den Kodierabschnitt und/oder den Dekodierabschnitt kann es sich
um einen Speicher oder einen Kanal handeln.
Bei der vorliegenden Erfindung können Elemente des Kodierabschnittes und/oder des
Dekodierabschnittes durch Hardware oder Software realisiert werden, wie z. B. jene
Hardware oder Software, die bei einem Computersystem verwendet wird. Die vorliegen
de Erfindung stellt ein verlustfreies Kompressions-/Dekompressionssystem bereit. Die
vorliegende Erfindung kann ebenso so aufgebaut werden, daß sie eine verlustbehaftete
Kompression/Dekompression durchführt. Die vorliegende Erfindung kann so aufgebaut
werden, daß sie eine Analyse bzw. ein Parsen von komprimierten Daten ohne eine
Dekompression durchführt.
Die vorliegende Erfindung gibt die glatten bzw. weichen Kanten und flachen Bereiche,
die in natürlichen Bildern zu finden sind, ziemlich gut wieder. Unter Verwendung von
reversiblen eingebetteten Wavelets komprimiert die vorliegende Erfindung tiefe Pixel
bilder. Jedoch sind reversible eingebettete Wavelets und andere Wavelettransformations
systeme und sinusartige Transformationssysteme nicht sehr gut für die Darstellung
scharfer Kanten geeignet, die man in Textbildern oder grafischen Bildern findet. Dieser
Typ von Bild kann gut durch ein Gray-Kodieren komprimiert werden, dem dann ein
kontextbasiertes Bitebenenkodieren, wie z. B. JBIG, folgt. Weiter werden rauschfreie,
computererzeugte Bilder durch einen Binärstil gut modelliert.
Die vorliegende Erfindung stellt einen Binärstil zur Kompression von binären und
grafischen Bildern bereit. Dabei wird ebenso die Kompression von manchen Bildern
verbessert, die nicht den vollen dynamischen Bereich nutzen. Bei dem Binärstil kodiert
die vorliegende Erfindung Bitebenen des Bildes, ohne die Wavelettransformation zu
verwenden.
Fig. 2 ist ein Blockdiagramm einer Ausführungsform eines Kompressionssystems der
vorliegenden Erfindung, die den Binärstil verwendet. Bemerkenswert ist, daß der
Dekodierabschnitt des Systems in einer umgekehrten Reihenfolge bzw. Ordnung arbeitet,
und zwar zusammen mit bzw. entlang des Datenflusses. Nimmt man Bezug auf Fig. 2,
so wird ein Eingangsbild 201 in einen Multikomponenten-Handhabungsmechanismus
211 eingegeben. Der Multikomponenten-Handhabungsmechanismus 211 liefert eine
optionale Farbraumkonversion und eine optionale Handhabung von unterabgetasteten
Bildkomponenten. Der Stil-Auswahlmechanismus 210 bestimmt, ob das Bild ein Bild
mit einem kontinuierlichen Ton ist oder ein binäres Bild ist, oder welche Abschnitte
eines Bildes derartiger Charakteristiken haben. Die Bilddaten werden zu dem
Stil-Auswahlmechanismus 210 weitergegeben, der die Bilddaten oder Abschnitte der Bild
daten entweder zu der Wavelet-Stilverarbeitung (Blöcke 202, 203, 205) oder der Binär-Stil
verarbeitung (Block 204) weitersendet. Bei der vorliegenden Erfindung ist die
Entscheidung, welcher Modus zu verwenden ist, datenabhängig. Bei einer Ausführungs
form umfaßt der Stil-Auswahlmechanismus 210 einen Multiplexer. Die Stilauswahl 210
wird während eines Dekodierens nicht verwendet.
Bei dem Waveletstil führt der reversible Waveletblock bzw. der Block mit reversiblen
Wavelets 202 eine reversible Wavelettransformation durch. Die Ausgabe des Blockes
202 ist eine Reihe von Koeffizienten. Der Quantisierungsblock 203 mit eingebetteter
Ordnung plaziert die Koeffizienten in einer Bitsignifikanzdarstellung und markiert dann
die Koeffizienten, um eine Ausrichtung aller Koeffizienten im Eingangsbild 201 zu
erzeugen (wie durch den reversiblen Waveletblock 202 erzeugt).
Die Bilddaten 201 werden empfangen und (nach einer optimalen Multikomponenten
handhabung) transformiert, indem reversible Wavelets im Wavelettransformationsblock
202 verwendet werden, und zwar, wie unten festgelegt wird, um eine Reihe von Koeffi
zienten zu erzeugen, die eine Mehrfachauflösungszerlegung des Bildes darstellen. Die
reversiblen Wavelettransformationen der vorliegenden Erfindung sind hinsichtlich der
Berechnung nicht kompliziert. Die Transformationen können durch Software oder
Hardware mit keinem systematischen Fehler durchgeführt werden. Weiter sind die
Wavelets der vorliegenden Erfindung exzellent für eine Energieverdichtung geeignet und
exzellent hinsichtlich ihrer Kompressionsleistungsfähigkeit. Diese Koeffizienten werden
durch den Quantisierungsblock 203 mit eingebetteter Ordnung empfangen.
Der Quantisierungsblock 203 mit eingebetteter Ordnung liefert eine Quantisierung mit
eingebetteter Ordnung, wie im folgenden beschrieben wird. Das Ergebnis ist ein einge
betteter Datenstrom. Der eingebettete Datenstrom erlaubt, daß ein Kodierstrom zur
Kodierzeit, Übertragungszeit oder Dekodierzeit quantisiert wird. Bei einer Ausführungs
form ordnet der Quantisierungsblock 203 mit eingebetteter Ordnung die Koeffizienten
in einem Vorzeichenbetragsformat und konvertiert sie.
Der eingebettete Datenstrom wird durch das Kontextmodell 205 empfangen, das die
Daten in dem eingebetteten Datenstrom modelliert, und zwar basierend auf ihrer Signifi
kanz (wie im folgenden beschrieben wird). In dem Fall des Transformationsmodus
stellen die "Bitebenen" Ebenen von Wichtigkeitsniveaus der Transformationskoeffizien
ten dar und das Kontextmodell 205 konditioniert die Waveletkoeffizienten in der
Bitsignifikanzdarstellung.
Die Ergebnisse des Ordnens und Modellierens umfassen Entscheidungen (oder Symbo
le), die durch einen Entropiekodierer 206 zu kodieren sind. Bei einer Ausführungsform
werden alle Entscheidungen zu einem einzigen Kodierer gesendet. Bei einer anderen
Ausführungsform werden die Entscheidungen durch ihre Signifikanz markiert und die
Entscheidungen für jedes Signifikanzniveau werden durch unterschiedliche (physische
oder virtuelle) Mehrfachkodierer verarbeitet. Der Bitstrom bzw. die Bitströme werden in
der Reihenfolge ihrer Signifikanz kodiert, indem ein Entropiekodierer 206 verwendet
wird. Bei einer Ausführungsform umfaßt der Entropiekodierer 206 einen oder mehrere
binäre Entropiekodierer. Bei einer anderen Ausführungsform wird ein Huffman-Kodieren
verwendet.
Bei dem binären Stil führt der Gray-Kodierblock 205 ein Gray-Kodieren mit den Pixeln
in dem Eingangsbild 201 durch. Das Gray-Kodieren stellt eine Pixeloperation dar, die
die Korrelation zwischen den Bitebenen der Pixel nutzt. Dies liegt daran, daß für jeden
Wert von x und x+1 sich Gray (x) und Gray (x+1) in ihrer Wurzel-2-Darstellung nur um
ein Bit unterscheiden. Bei einer Ausführungsform führt der Gray-Kodierblock 201 eine
punktweise Transformation mit 8 Pixeln durch:
Gray (x) = x XOR x/2.
Die vorliegende Erfindung ist nicht auf diese Art von Gray-Kodieren beschränkt. Auch
ist sie nicht auf die Verwendung von Pixeln beschränkt, die eine Größe von 8 Bits
aufweisen. Bemerkenswert ist jedoch, daß die Verwendung der obigen Gleichung den
Vorteil zeigt, daß es einem Pixel ermöglicht wird, nur mit einigen der höchst signifikan
ten Bits, die verfügbar sind, rekonstruiert zu werden, wie dies bei der fortschreitenden,
bitebenenweisen Transmission ("progressive-by-bit-plane transmission") der Fall ist. Mit
anderen Worten bewahrt diese Form von Gray-Kodieren die Bitsignifikanzordnung.
Im Binärstil werden die Daten bitebenenweise kodiert, indem ein Kontextmodell im
Kodierblock 204 und ein Kodierer 206 verwendet wird. Bei einer Ausführungsform
konditioniert das Kontextmodell im Kodierblock 204 das aktuelle Bit, indem eine
räumliche und Wichtigkeitsniveauinformation verwendet wird.
Bei dem Binärstil wird ein Kontextmodell, das ähnlich wie JBIG ist, auf Gray-kodierte
Pixel angewendet. Bei einer Ausführungsform wird jede Bitebene der Bildplatte separat
kodiert, wobei jedes einzelne Bit in einer Rasterordnung konditioniert und kodiert wird,
wobei die Werte von zehn umgebenen Bits verwendet werden. Fig. 3 zeigt das geome
trische Verhältnis des Kontextmodells für jedes Bit einer jeden Bitebene im Binärstil.
Die konditionierenden Bits führen zu einer adaptiven Wahrscheinlichkeitsschätzung für
jedes einzelne Muster. Bemerkenswert ist, daß gewisse verschiedene Schablonen für das
Kontextmodell des binären Entropiekodierers verwendet werden können, wenn sie bei
der Bitebenen-Entropiekodierung der Gray-kodierten Werte verwendet werden. Fig. 4
zeigt sieben Pixel und zwei Bits von Bitebeneninformation für 29 Kontextbits.
Unter Verwendung dieses Kontexts und des Wertes des aktuellen Bits erzeugt der binäre
Kodierer 206 einen Bitstrom. Derselbe binäre Entropiekodierer 206 wird verwendet, um
Daten sowohl von dem Transformationsmodus als auch dem binären Stil zu kodieren.
Bei einer Ausführungsform umfaßt der binäre Kodierer 206 einen FSM-Kodierer, der
mit einer Nachschlagtabelle realisiert ist. Bemerkenswert ist, daß die vorliegende
Erfindung mit einem binären Entropiekodierer, wie z. B. dem Q-Kodierer, QM-Kodierer
oder einem Hochgeschwindigkeits-Parallelkodierer verwendet werden kann.
Da der binäre Kodierer 206 für jeden Stil derselbe ist und das Gray-Kodieren und das
binäre Kontextmodell einfach sind, ist ein geringer Extraaufwand erforderlich, um den
binären Stil und den Transformationsstil in demselben System zu haben. Weiter sind,
während die Kontextmodellkonfiguration anders ist, der Aufwand für beide Modi
derselbe. Das heißt, beide verwenden denselben Speicher zum Speichern von Kontexten
und beide verwenden denselben binären Entropiekodierer.
Die vorliegende Erfindung kann mit dem gesamten Bild durchgeführt werden oder
allgemeiner mit plattenförmigen Segmenten des Bildes. Manche Platten können mit dem
Transformationsstil besser komprimiert werden als andere mit dem binären Stil. Es gibt
eine beliebige Anzahl von möglichen Algorithmen, um auszuwählen, welcher Modus
verwendet wird. Falls Platten verwendet werden, dann ist ein plattenweiser wahlfreier
Zugriff möglich. Ebenso können interessierende Bereiche getrennt dekodiert werden, um
eine höhere Wiedergabetreue bzw. Genauigkeit zu erreichen. Schließlich kann die Wahl,
ob die Transformation oder der binäre Stil verwendet werden, plattenweise getroffen
werden.
Bemerkenswert ist ebenfalls, daß das Bild weiterhin bitebenenweise progressiv ist,
indem das Dualmodussystem der vorliegenden Erfindung verwendet wird und daß es in
einem hierarchischen Format kodiert werden kann, wie es durch JBIG gelehrt wird.
Hinsichtlich des Dekodierens kann ein Bit in dem Kopf der Platte verwendet werden,
um den Stil zu bezeichnen, der verwendet wird, um die Daten zu kodieren. Die Stilaus
wahl 210 wird nicht verwendet. Eine verlustfreie Abbildung, falls sie möglich ist, von
dem originalen dynamischen Bereich zu einem niedrigeren dynamischen Bereich, wie
z. B. durch eine Histogrammverdichtung (im folgenden beschrieben), kann weiterhelfen.
Ein "Vorhersehen" ("look ahead"), wie z. B. bei JBIG, kann verwendet werden. Das
Vorhersehen kann eine typische Vorhersage oder eine deterministische Vorhersage
verwenden, wie z. B. bei JBIG.
Die Stilauswahl 210 wählt zwischen dem binären Stil und dem Transformationsstil. Bei
einer Ausführungsform wird das eingegebene Bild mit beiden Stilen kodiert und die
Stilauswahl 210 wählt den Stil aus, der die geringere Bitrate erzeugt (wobei eine
verlustfreie Kompression angenommen wird). Mit anderen Worten, es wird der Modus
ausgewählt, der am besten komprimiert. Dieses Verfahren ist nicht so aufwendig, wie
man erwarten könnte, da sowohl der binäre Stil als auch der Transformationsmodus bei
einer Softwareumsetzung relativ schnell ist und bei einer Hardwareumsetzung relativ
klein ist. Eine Abweichung von diesem Verfahren stellt eine Umgehung des Kodierers
und die Verwendung von Entropiewerten zur Bestimmung der tieferen Bitrate dar.
Bei einer alternativen Ausführungsform erzeugt die vorliegende Erfindung ein voll
standiges (oder teilweises) Histogramm der Pixelwerte des Bildes oder ein Histogramm
der Unterschiede zwischen Paaren von benachbarten Pixelwerten. In dem Fall des
Histogramms von Pixelwertes, eine statistische Analyse dieser Daten, wie z. B., falls das
Histogramm bei wenigen Werten Spitzen aufweist, weit weniger als der dynamische
Bereich der Pixeltiefe, dann wird der binäre Stil verwendet wird.
Bei einer Ausführungsform erzeugt die vorliegende Erfindung ein vollständiges (oder
teilweises) Histogramm der Differenzen erster Ordnung zwischen Paaren von benachbar
ten Pixeln. Für ein normales Bild ist ein Histogramm sehr Laplace-artig und ein Wave
letstil würde verwendet werden. Jedoch, falls dieses Histogramm nicht Spitzenwerte mit
einer Laplace-artigen Verteilung aufweist, dann wird der binäre Stil verwendet.
Beide Typen von Histogrammen können erzeugt werden und zusammen verwendet
werden, um den Stil auszuwählen.
Die dn-Filterausgabe der TS-Transformation oder der TT-Transformation, die beide
später diskutiert werden, ähnelt den Statistiken erster Ordnung. Dies legt ein Verfahren
nahe, wo die Transformation durchgeführt wird und das Histogramm erzeugt wird.
Basierend auf dem Histogramm wird der Stil ausgewählt. Falls es der Transformations
modus ist, schreitet das System mit den Transformationskoeffizienten, die bereits erzeugt
sind, fort. Falls der binäre Stil ausgewählt wird, werden die Transformationskoeffizienten
ausrangiert bzw. eliminiert (oder invers transformiert, und zwar abhängig davon, ob die
Pixel gesichert bzw. gespeichert werden) und das System schreitet mit dem binären Stil
fort.
Bei einer anderen Ausführungsform kann eine Segmentierung und/oder eine Vorabkennt
nis des Dokumenttyps bei der Bestimmung, welcher Stil auszuwählen ist, helfen.
Bei manchen Ausführungsformen wird die Plattengröße so gewählt, daß sie die Nutzen
beider Stile maximiert.
Bemerkenswert ist, daß bei einer Ausführungsform das System der vorliegenden Erfin
dung kein Binärstilkodieren enthält und somit nur die reversible eingebettete Wavelet
kompression (CREW) und Dekompression verwendet.
Weiter stellt die vorliegende Erfindung ein Dekompressionssystem bereit. Das Dekom
pressionssystem der vorliegenden Erfindung beinhaltet Komponenten, um jene Operatio
nen umzukehren, die durch das Kompressionssystem durchgeführt werden, sei es in
einer verlustbehafteten oder verlustfreien Art und Weise. Um eine Verschleierung der
vorliegenden Erfindung zu verhindern, wird das Dekompressionssystem nur dort be
schrieben, wo es sich von dem Kompressionssystem unterscheidet (abgesehen davon,
daß es einfach eine Umkehrung des Datenflusses darstellt).
Bei dem Bildkompressionssystem der vorliegenden Erfindung wird ein digitales Bild in
rechteckige Bereiche, sog. Platten, unterteilt, die unabhängig kodiert werden. Weiter
besteht ein digitales Bild aus mehreren Komponenten, die jeweils unterschiedliche
Aspekte eines Pixels oder von Pixeln beschreiben. (Das üblichste Beispiel stellen
Farbkomponenten dar, wobei jede Komponente den Grad bzw. die Stärke einer bestimm
ten Farbe, wie z. B. rot, grün oder blau beschreibt.) Diese Bildkomponenten werden
ebenso unabhängig kodiert.
Bildplatten stellen vollständige, unabhängig kodierte Unterbilder des gesamten Bildes
dar, die durch ein regelmäßiges rechteckförmiges Gitter festgelegt sind, das auf dem
Bild plaziert wird, und die in Rasterordnung numeriert sind, wie in Fig. 5 gezeigt ist.
Die Platten werden üblicherweise in dem Kodestrom ebenso in Rasterordnung geordnet.
Die Platten auf der rechten Seite und unten können unterschiedliche Größen aufweisen,
und zwar abhängig von der Größe des Originalbildes und der Platten. (Ein Extrakodieren
ist für diese Platten mit unüblicher Größe nicht erforderlich.) Die Größe der Platten kann
von dem Benutzer während des Kodierens festgelegt werden. Jegliche Höhe und Breite
kann verwendet werden, bis zur Größe des Bildes.
Die Wahl der Plattengröße hat einen Haupteinfluß auf die Leistungsfähigkeit. Kleine
Platten, insbesondere in der vertikalen Richtung bzw. Abmessung eines rastergeordneten
Bildes erlauben die Verwendung von weniger Arbeitsspeicher. Jedoch wird die Kom
pressionseffizienz durch drei Faktoren verringert, falls die Plattengröße zu klein ist: der
signalisierende Overhead bzw. Überkopf, der Verlust der Kodiereffizienz an den Gren
zen der Platten und das Anlaufen der Adaption des Entropiekodierers. Es ist von Nutzen,
Plattenabmessungen zu haben, die ein Mehrfaches der Ausdehnung bzw. des Ausmaßes
einer Komponente mit tiefster Frequenz darstellen, was eine Funktion der Anzahl von
Niveaus ist (2Anzahl von Niveaus). Platten mit 128×128 oder 256×256 erscheinen bei
vielen Anwendungen vernünftig, und zwar in Abhängigkeit von der Größe des Original
bildes.
Es gibt nichts bei der Definition oder der Syntax von Platten, das eine Kompression
einer Sequenz von Bildern verhindert. Somit kann es sich bei in Platten eingeteilten
Bildern um in der Zeit unterschiedliche Bilder (wie bei einem Film) oder um im Raum
unterschiedliche Bilder (wie bei 3D-Querschnitten wie bei MIR) handeln.
Jede Platte enthält eine Komponente oder mehrere Komponenten. Jede Komponente
überdeckt oder überspannt die gesamte Platte, wobei jede eine unterschiedliche Auflö
sung aufweisen kann. Bei einer Ausführungsform weist jede Platte wenigstens einen
Abfragewert bzw. eine Abtastung ("sample") von jeder Komponente auf. Diese Kompo
nenten können unterschiedliche Pixeltiefen aufweisen und können in unterschiedlichen
Stilen kodiert sein. Jede Komponente wird unabhängig kodiert, aber die kodierten Daten
können auf einer Wichtigkeitsniveaubasis überlappt bzw. verschachtelt werden.
Die vorliegende Erfindung verwendet Kennungen, um die Charakteristiken des Kode
stroms zu begrenzen und zu signalisieren. Jeder Kodestrom weist wenigstens zwei Köpfe
auf: den Hauptkopf am Beginn des Bildes und einen Plattenkopf am Beginn einer jeden
Platte (Jeder Kodestrom enthält wenigstens eine Platte.)
Bei einer Ausführungsform werden fünf Arten von Kennungen verwendet: begrenzende
Kennungen, Kennungen mit fester Information, funktionelle Kennungen, Zeigerkennun
gen und Informationskennungen. Begrenzende Kennungen ("delimiting tags") werden
verwendet, um die Köpfe und die Daten mit einem Rahmen zu versehen. Kennungen mit
fester Information ("fixed information tags") stellen notwendige Informationen über ein
Bild dar. Funktionelle Kennungen ("functional tags") beschreiben die Kodierfunktionen,
die verwendet werden, um die gesamte Platte oder das Bild zu kodieren. Zeigerkennun
gen ("pointer tags") zeigen auf das Wichtigkeitsniveau in einer Platte (oder zu der
nächsten Platte). Informationskennungen ("informational tags") liefern eine optionale
Information über die Daten.
Zeigerkennungen stellen entweder eine Länge oder einen Punkt im Kodestrom bereit.
Zeigerkennungen können in dem Hauptkopf oder in allen Plattenköpfen erscheinen. Die
IEM-Kennung oder die IET-Kennung, die unten beschrieben werden, werden verwendet,
falls es einen Eintrittspunkt in den Kodestrom gibt oder falls es mehrere Komponenten
gibt. (Ein Eintrittspunkt wird benötigt, jedesmal wenn die Komponente, die kodiert wird,
sich ändern. Er ist ebenso erforderlich, falls die Komponente in einer Platte mit meh
reren Komponenten nicht die Komponente 0 ist.) Die ILM- und ILT-Kennungen sind
optional; sie zeigen zu dem Start der kodierten Daten in einem Wichtigkeitsniveau.
Die Gegenwart irgendeiner dieser Kennungen in dem Hauptkopf zeigt an, daß alle diese
Kennungen in dem Hauptkopf sind. Wenn keine dieser Kennungen in dem Hauptkopf
ist, dann werden alle Kennungen in den Plattenköpfen sein. Der Vorteil demgegenüber,
daß alle Zeigerkennungen in dem Hauptkopf erscheinen, ist, daß der Dekodierer oder
Parser einen Kodestrom auswählen und/oder quantisieren kann, ohne "zurückzuspulen".
Diese Fähigkeit kann für Anwendungen von Vorteil sein, die schnelle oder begrenzte
Kodierer und/oder Parser erfordern. Falls der Kodierer nicht dazu in der Lage ist, den
gesamten Weg zu dem Hauptkopf zurückzuspulen, dann können die Zeigerkennungen in
den Plattenköpfen verteilt werden. Diese Verteilung ist vorteilhaft, wenn sehr große
Bilder kodiert werden oder wenn ein Hardwarekodierer verwendet wird, wo ein Zurück
spulen oder Speichern des Kodestromes schwierig ist.
Die IEM-Kennung umfaßt eine Liste von Zeigern zu allen Eintrittspunkten in einer jeden
Platte für eine gegebene Komponente. Jede IEM-Kennung dient einer unterschiedlichen
Komponente. Eintrittspunkte werden auf 8-Bit-Grenzen zu Beginn eines Wichtigkeits
niveaus gefunden. Die Wichtigkeitsniveaus, die Eintrittspunkte haben, werden zur
Kodierzeit ausgewählt. Jedoch benötigt man einen Eintrittspunkt jedesmal, wenn sich die
Komponente in dem Datenstrom ändert. Ebenso, falls die erste Komponente nicht die
Komponente mit der Zahl 0 ist, wird ein IEM-Zeigereintritt mit einem Zeigerwert 0
benötigt. Bei jedem Eintrittspunkt wird der Entropiekodierer zurückgesetzt. Deshalb
werden diese Eintrittspunkte durch den Dekodierer gehandhabt.
Obwohl jeder IEM-Zeigereintritt korrekt sein muß, können redundante Eintritte (Kopien)
vorhanden sein. Diese Eintritt müssen in einer mit der Zeigerlänge ansteigenden Ord
nung sortiert werden. Bemerkenswert ist, daß, da die Komponenten durch Wichtigkeits
niveaus überlappt sein können, die IEM-Kennungen für verschiedene Komponenten
überlappt bzw. verschachtelt sein können.
Bei einer Ausführungsform wird die IEM-Kennung in dem Hauptkopf verwendet, falls
es Eintrittspunkte in der Datei gibt, es sei denn eine IET-Kennung (wird später be
schrieben) wird bei jedem Plattenkopf verwendet. Die IEM-Kennung erscheint einmal
pro Komponente, außer möglicherweise für die Komponente 0. Falls der einzige
Eintrittspunkt für die Komponente 0 Piem = 0 ist, in allen Platten, so wird keine
Kennung für die Komponente 0 benötigt.
Die Länge ist variabel und hängt von der Anzahl der Platten in dem Bild und der
Anzahl der Eintrittspunkte in jeder Platte ab.
Fig. 6 zeigt die Wichtigkeitsniveau-Eintrittspunkte, den Hauptkopfsyntax der
IEM-Kennungen mit den unten beschriebenen Feldern:
IEM: Marker.
Liem: Länge einer Kennung in Bytes, Marker nicht eingeschlossen.
Ciem: Komponente, auf die die Kennung angewendet wird. Komponenten werden mit 0, 1, 2 usw. numeriert.
Niemi: Anzahl der Eintrittspunkte in der i-ten Platte. Es gibt ein Niem für jede Platte in dem Bild, selbst wenn es keine Eintrittspunkte in jener Platte gibt.
Iiemij: Nummer des Wichtigkeitsniveaus, beginnend mit dem j-ten Eintrittspunkt der i-ten Platte für die Ciem-Komponente. Diese Iiem-Kennung und die entsprechende Piem-Kennung bilden einen Typ von Aufzeichnung bzw. Datensatz, die bzw. der für jeden Eintrittspunkt wiederholt wird. Diese Aufzeichnungen bzw. Datensätze müssen in einer Reihenfolge sein, und zwar von dem höchsten zu dem niedrigsten Wichtigkeitsniveau, das einen Eintrittspunkt hat
Piemj: Anzahl von Bytes von dem Ende des Plattenkopfes oder von dem Beginn aller kodierten Daten in jener Platte zu dem j-ten Eintrittspunktbyte.
Diese Aufzeichnungen bzw. Datensätze müssen in der Reihenfolge von dem kleinsten Zeiger zu dem größten sein.
res: Ein Füllbyte von Nullen, das an das Ende plaziert wird, falls erforderlich.
Liem: Länge einer Kennung in Bytes, Marker nicht eingeschlossen.
Ciem: Komponente, auf die die Kennung angewendet wird. Komponenten werden mit 0, 1, 2 usw. numeriert.
Niemi: Anzahl der Eintrittspunkte in der i-ten Platte. Es gibt ein Niem für jede Platte in dem Bild, selbst wenn es keine Eintrittspunkte in jener Platte gibt.
Iiemij: Nummer des Wichtigkeitsniveaus, beginnend mit dem j-ten Eintrittspunkt der i-ten Platte für die Ciem-Komponente. Diese Iiem-Kennung und die entsprechende Piem-Kennung bilden einen Typ von Aufzeichnung bzw. Datensatz, die bzw. der für jeden Eintrittspunkt wiederholt wird. Diese Aufzeichnungen bzw. Datensätze müssen in einer Reihenfolge sein, und zwar von dem höchsten zu dem niedrigsten Wichtigkeitsniveau, das einen Eintrittspunkt hat
Piemj: Anzahl von Bytes von dem Ende des Plattenkopfes oder von dem Beginn aller kodierten Daten in jener Platte zu dem j-ten Eintrittspunktbyte.
Diese Aufzeichnungen bzw. Datensätze müssen in der Reihenfolge von dem kleinsten Zeiger zu dem größten sein.
res: Ein Füllbyte von Nullen, das an das Ende plaziert wird, falls erforderlich.
Die IET-Kennung ist eine Liste von Zeigern zu allen Eintrittspunkten in dieser Platte für
eine gegebene Komponente. Jede IET-Kennung ist für eine unterschiedliche Komponente
da. Diese Eintrittspunkte werden auf 8-Bit-Grenzen zu Beginn eines Wichtigkeitsniveaus
gefunden. Die Wichtigkeitsniveaus, die Eintrittspunkte haben, werden durch den Kodie
rer ausgewählt. Jedoch ist ein Eintrittspunkt jedesmal erforderlich, wenn sich die Kom
ponente in dem Datenstrom ändert. Ebenso, falls die erste Komponente nicht die Kom
ponente mit der Nr. 0 ist, ist ein Eintrittspunkt mit einem Zeigerwert 0 erforderlich. Bei
jedem Eintrittspunkt wird der Entropiekodierer auf einen bekannten Zustand zurückge
setzt. Deshalb müssen diese Eintrittspunkte durch den Dekodierer gehandhabt werden.
Obwohl jeder IET-Zeigereintritt korrekt ist, kann es redundante Eintritte (Kopien) geben.
Die Eintritte werden in einer ansteigenden Reihenfolge der Zeigerlänge sortiert. Bemer
kenswert ist, daß, da die Komponenten durch Wichtigkeitsniveaus überlappt sein können,
die IET-Kennungen für die unterschiedlichen Komponenten überlappt sein können.
Die IET-Kennung wird in jedem Plattenkopf einer Platte mit Eintrittspunkten verwendet,
es sei denn, eine IEM-Kennung wird in dem Hauptkopf verwendet und erscheint einmal
pro Komponente, außer möglicherweise für Komponente 0. Falls der einzige Eintritts
punkt für Komponente 0 Piem = 0 ist, ist keine Kennung für die Komponente 0 erfor
derlich.
Die Länge der IET-Kennung ist variabel und hängt von der Anzahl der Eintrittspunkte
in jeder Platte ab.
Fig. 7 zeigt die Wichtigkeitsniveau-Eintrittspunkte und die Plattenkopfsyntax der IET-Kennungen,
die die folgenden Felder enthalten.
IET: Marker.
Liet: Länge einer Kennung in Bytes, der Marker ist nicht eingeschlossen.
Ciet: Komponente, auf die diese Kennung angewendet wird. Die Komponenten werden mit 0, 1, 2 usw. numeriert.
Iieti: Nummer des Wichtigkeitsniveaus, beginnend mit dem i-ten Eintrittspunkt für die Ciet-Komponente. Diese Iiet-Kennung und die entsprechende Piet-Kennung bilden einen Typ einer Aufzeichnung bzw. eines Datensatzes, der für jeden Eintrittspunkt wiederholt wird. Diese Aufzeichnungen bzw. Datensätze befinden sich in der Reihenfolge von dem höchsten zu dem niedrigsten Wichtigkeits niveau, das einen Eintrittspunkt hat.
Pieti: Anzahl der Bytes von dem Ende des Plattenkopfs oder dem Beginn aller kodier ten Daten in jener Platte bis zu dem i-ten Eintrittspunktbyte. Diese Aufzeichnun gen bzw. Datensätze sind in der Reihenfolge von dem kleinsten Zeiger zu dem größten.
res: Ein Füllbyte mit Nullen, das an das Ende plaziert wird.
Liet: Länge einer Kennung in Bytes, der Marker ist nicht eingeschlossen.
Ciet: Komponente, auf die diese Kennung angewendet wird. Die Komponenten werden mit 0, 1, 2 usw. numeriert.
Iieti: Nummer des Wichtigkeitsniveaus, beginnend mit dem i-ten Eintrittspunkt für die Ciet-Komponente. Diese Iiet-Kennung und die entsprechende Piet-Kennung bilden einen Typ einer Aufzeichnung bzw. eines Datensatzes, der für jeden Eintrittspunkt wiederholt wird. Diese Aufzeichnungen bzw. Datensätze befinden sich in der Reihenfolge von dem höchsten zu dem niedrigsten Wichtigkeits niveau, das einen Eintrittspunkt hat.
Pieti: Anzahl der Bytes von dem Ende des Plattenkopfs oder dem Beginn aller kodier ten Daten in jener Platte bis zu dem i-ten Eintrittspunktbyte. Diese Aufzeichnun gen bzw. Datensätze sind in der Reihenfolge von dem kleinsten Zeiger zu dem größten.
res: Ein Füllbyte mit Nullen, das an das Ende plaziert wird.
Die ILM-Kennung ist eine Liste von Zeigern, die auch vom Kodierer ausgewählte
Wichtigkeitsniveaus in jeder Platte für eine gegebene Komponente zeigt. Diese Wichtig
keitsniveaus werden nicht notwendigerweise auf 8-Bit-Grenzen gefunden. Optimal zeigt
der Zeiger zu dem ersten Byte, das Daten für das lokalisierte Wichtigkeitsniveau (und
keine Daten von irgendeinem vorhergehenden Wichtigkeitsniveau) enthält. Jedoch kann
der Zeiger auf ein beliebiges Datenbyte zeigen, das Daten für jenes Wichtigkeitsniveau
enthält.
Obwohl jeder ILM-Zeigereintritt korrekt ist, kann es redundante Eintritte (Kopien)
geben. Die Eintritte werden in einer mit der Zeigerlänge ansteigenden Reihenfolge
sortiert. Bemerkenswert ist, daß, da die Komponenten durch Wichtigkeitsniveau unter
Verwendung von Eintrittspunkten überlappt sein können, die ILM-Kennungen für die
unterschiedlichen Komponenten überlappt sein können.
Die ILM-Kennung ist optional in dem Hauptkopf, aber kann nicht verwendet werden,
falls die Zeigerkennungen sich in den Plattenköpfen befinden. Es gibt bis zu einer ILM
pro Komponente in dem Hauptkopf.
Die Länge der ILM-Kennung ist variabel und hängt von der Anzahl der Platten in dem
Bild und der Anzahl der Lokalisierpunkte in jeder Platte ab.
Fig. 8 zeigt die Wichtigkeitsniveau-Lokalisierer und die Hauptkopfsyntax für die
ILM-Kennung, die die folgenden Felder enthält:
ILM: Marker.
Lilm: Länge der Kennung in Bytes, nicht einschließlich des Markers.
Cilm: Komponente, auf die diese Kennung angewendet wird.
Nilmi: Anzahl von Lokalisierern in der i-ten Platte. Es gibt ein Niem für jede Platte in dem Bild, selbst wenn es keine Lokalisierer in jener Platte gibt.
Iilmij: Nummer des j-ten Wichtigkeitsniveaus, beginnend mit der i-ten Platte für die Cilm-Komponente. Diese Iilm-Kennung und die entsprechende Pilm-Kennung bilden einen Typ einer Aufzeichnung bzw. eines Datensatzes, die bzw. der für jeden Lokalisierer wiederholt wird. Diese Aufzeichnun gen bzw. Datensätze müssen in der Reihenfolge von dem höchsten zu dem niedrigsten Wichtigkeitsniveau sein.
Pilmij: Anzahl der Bytes von dem Ende des Plattenkopfes oder dem Beginn aller kodierter Daten in jener Platte bis zu einem Datenbyte, das Daten von dem j-ten Wichtigkeitsniveau enthält. Diese Aufzeichnungen bzw. Daten sätze sind in der Reihenfolge von dem kleinsten Zeiger zu dem größten.
res: Ein Füllbyte mit Nullen, das an das Ende plaziert wird, falls nötig.
Lilm: Länge der Kennung in Bytes, nicht einschließlich des Markers.
Cilm: Komponente, auf die diese Kennung angewendet wird.
Nilmi: Anzahl von Lokalisierern in der i-ten Platte. Es gibt ein Niem für jede Platte in dem Bild, selbst wenn es keine Lokalisierer in jener Platte gibt.
Iilmij: Nummer des j-ten Wichtigkeitsniveaus, beginnend mit der i-ten Platte für die Cilm-Komponente. Diese Iilm-Kennung und die entsprechende Pilm-Kennung bilden einen Typ einer Aufzeichnung bzw. eines Datensatzes, die bzw. der für jeden Lokalisierer wiederholt wird. Diese Aufzeichnun gen bzw. Datensätze müssen in der Reihenfolge von dem höchsten zu dem niedrigsten Wichtigkeitsniveau sein.
Pilmij: Anzahl der Bytes von dem Ende des Plattenkopfes oder dem Beginn aller kodierter Daten in jener Platte bis zu einem Datenbyte, das Daten von dem j-ten Wichtigkeitsniveau enthält. Diese Aufzeichnungen bzw. Daten sätze sind in der Reihenfolge von dem kleinsten Zeiger zu dem größten.
res: Ein Füllbyte mit Nullen, das an das Ende plaziert wird, falls nötig.
Die ILT-Kennung ist eine Liste von Zeigern, die zu von einem Kodierer ausgewählten
Wichtigkeitsniveaus in jeder Platte für eine gegebene Komponente zeigen. Diese Wich
tigkeitsniveaus findet man nicht notwendigerweise auf 8-Bit-Grenzen. Optimal zeigen
die Zeiger zu dem ersten Byte, das Daten für das lokalisierte Wichtigkeitsniveau (und
nicht Daten von irgendeinem vorhergehenden Wichtigkeitsniveau) enthält. Jedoch kann
der Zeiger zu einem beliebigen Datenbyte zeigen, das Daten für jenes Wichtigkeits
niveau enthält.
Obwohl jeder ILT-Zeigereintritt korrekt ist, kann es redundante Eintritte (Kopien) geben.
Die Eintritte werden in einer mit der Zeigerlänge zunehmenden Reihenfolge sortiert.
Bemerkenswert ist, da die Komponenten durch Wichtigkeitsniveaus unter Verwendung
von Eintrittspunkten überlappt sein können, die ILT-Kennungen für die unterschiedlichen
Komponenten überlappt sein können.
Die IET-Kennung ist bis zu einem ILT pro Komponente in den Plattenköpfen, aber kann
nicht verwendet werden, falls sich Zeigerkennungen in dem Hauptkopf befinden. Die
Länge der IET-Kennung ist variabel und hängt von der Anzahl der Lokalisierpunkte in
jeder Platte ab.
Fig. 9 zeigt die Wichtigkeitsniveau-Lokalisierer und die Plattenkopfsyntax der
ILT-Kennung, die die folgenden Felder enthält:
ILT: Marker.
Lilt: Länge der Kennung in Bytes, nicht ei 99999 00070 552 001000280000000200012000285919988800040 0002019844752 00004 99880nschließlich des Markers.
Cilt: Komponente, auf die die Kennung angewendet wird. Komponenten werden mit 0, 1, 2 usw. numeriert.
Iilti: Nummer des Wichtigkeitsniveaus, beginnend mit dem i-ten Eintrittspunkt für die Cilt-Komponente. Diese Iilt-Kennung und die entsprechende Pilt-Kennung bilden eine Typ eines Datensatzes, der für jeden Lokalisierer wiederholt wird. Diese Datensätze sind in der Reihenfolge von dem höchsten zu dem niedrigsten Wich tigkeitsniveau, das einen Lokalisierer hat.
Pilmi: Anzahl der Bytes von dem Ende des Plattenkopfes oder dem Beginn aller kodier ten Daten in jener Platte bis zu einem Datenbyte, das alle Daten von dem j-ten Wichtigkeitsniveau enthält. Diese Datensätze sind in der Reihenfolge von dem kleinsten Zeiger zu dem größten.
res: Ein Füllbyte mit Nullen, das an das Ende plaziert werden kann.
Lilt: Länge der Kennung in Bytes, nicht ei 99999 00070 552 001000280000000200012000285919988800040 0002019844752 00004 99880nschließlich des Markers.
Cilt: Komponente, auf die die Kennung angewendet wird. Komponenten werden mit 0, 1, 2 usw. numeriert.
Iilti: Nummer des Wichtigkeitsniveaus, beginnend mit dem i-ten Eintrittspunkt für die Cilt-Komponente. Diese Iilt-Kennung und die entsprechende Pilt-Kennung bilden eine Typ eines Datensatzes, der für jeden Lokalisierer wiederholt wird. Diese Datensätze sind in der Reihenfolge von dem höchsten zu dem niedrigsten Wich tigkeitsniveau, das einen Lokalisierer hat.
Pilmi: Anzahl der Bytes von dem Ende des Plattenkopfes oder dem Beginn aller kodier ten Daten in jener Platte bis zu einem Datenbyte, das alle Daten von dem j-ten Wichtigkeitsniveau enthält. Diese Datensätze sind in der Reihenfolge von dem kleinsten Zeiger zu dem größten.
res: Ein Füllbyte mit Nullen, das an das Ende plaziert werden kann.
Informationskennungen sind strikte bzw. genaue Information und sind nicht notwendig
für einen Dekodierer. Jedoch können diese Kennungen einem Parser oder Dekodierer
assistieren. Die Bits gegenüber Wichtigkeitsniveaus (BVI) bzw. ("Bits Versus Importan
ce levels") Kennung stellt ein Beispiel einer Informationskennung dar und ist in Fig. 41
gezeigt und wird weiter unten genauer beschrieben.
Die vorliegende Erfindung verwendet Kompression durch reversible Wavelets.
Die vorliegende Erfindung führt anfänglich eine Zerlegung eines Bildes (in der Gestalt
von Bilddaten) oder eines anderen Datensignals unter Verwendung reversibler Wavelets
durch. Bei der vorliegenden Erfindung umfaßt eine reversible Wavelettransformation
eine Implementation eines exakten Rekonstruktionssystems in Ganzzahl-Arithmetik, so
daß ein Signal mit Ganzzahl-Koeffizienten verlustfrei wiedergewonnen werden kann.
Eine effiziente reversible Transformation ist eine, bei der die Determinante einer Trans
formationsmatrix gleich 1 (oder fast gleich 1) ist.
Indem reversible Wavelets verwendet werden, ist die vorliegende Erfindung dazu in der
Lage, eine verlustfreie Kompression mit endlicher Präzisionsarithmetik bereitzustellen.
Die Ergebnisse, die durch Anwenden der reversiblen Wavelettransformation auf die
Bilddaten erzeugt werden, sind eine Reihe von Koeffizienten.
Die reversible Wavelettransformation der vorliegenden Erfindung kann realisiert werden,
indem ein Satz von Filtern verwendet wird. Bei einer Ausführungsform handelt es sich
bei den Filtern um einen Zwei-Abgriff-Tiefpaßfilter und einen Sechs-Abgriff-Hochpaß
filter, um eine Transformation zu implementieren bzw. zu realisieren, die hierin als die
TS-Transformation oder Zwei-Sechs-Transformation bezeichnet wird. Bei einer anderen
Ausführungsform handelt es sich bei den Filtern um einen Zwei-Abgriff-Tiefpaßfilter
und einen Zehn-Abgriff-Hochpaßfilter, um eine Transformation zu realisieren, die hierin
als die TT-Transformation oder die Zwei-Zehn-Transformation bezeichnet wird.
Unter Verwendung der Tiefpaß- und Hochpaßfilter der vorliegenden Erfindung wird eine
Hochauflösungs-Zerlegung durchgeführt. Die Anzahl der Niveaus der Zerlegung ist
variabel und kann jede Zahl annehmen; jedoch gleicht gegenwärtig die Anzahl der
Zerlegungsniveaus zwei bis zehn Niveaus. Die maximale Anzahl der Niveaus ist der
log2 des Maximums der Länge oder der Breite der Eingabe.
Die üblichste Art und Weise, um die Transformation mit zweidimensionalen Daten
durchzuführen, wie z. B. ein Bild, ist es, die eindimensionalen Filter getrennt, das heißt
entlang der Reihen und dann entlang der Spalten anzuwenden. Das erste Niveau einer
Zerlegung führt zu vier unterschiedlichen Bändern von Koeffizienten, die hierin als SS,
DS, SD und DD bezeichnet werden. Die Buchstaben bezeichnen glatte (S; für "smooth")
und detaillierte (D) Filter, die oben festgelegt wurden, wobei der glatte Filter einem
Tief-(L)-Filter und der detaillierte Filter einem Hoch-(H)-Durchlaßfilter entspricht.
Folglich besteht das SS-Band aus Koeffizienten von dem glatten Filter, und zwar sowohl
in Zeilen- als auch Spaltenrichtung.
Jedes Frequenzunterband in einer Waveletzerlegung kann weiter zerlegt werden. Die
üblichste Praxis ist es, nur das SS-Frequenzunterband weiter zu zerlegen, und kann eine
weitere Zerlegung des SS-Frequenzunterbandes in jedem Zerlegungsniveau enthalten,
wenn jedes erzeugt wird. Eine derartige Mehrfach-Zerlegung wird als pyramidale
Zerlegung bezeichnet. Die Bezeichnungen SS, SD, DS, DD und die Zerlegungsniveauzahl
bezeichnen jede Zerlegung.
Bemerkenswert ist, daß mit entweder der TS- oder TT-Transformation der vorliegenden
Erfindung die pyramidale Zerlegung nicht die Koeffizientengröße erhöht.
Falls die reversible Wavelettransformation rekursive auf ein Bild angewendet wird,
arbeitet das erste Niveau einer Zerlegung mit dem feinsten Detail oder der feinsten
Auflösung. Bei einem ersten Zerlegungsniveau wird das Bild in vier Unterbilder (z. B.
Unterbänder) zerlegt. Jedes Unterband stellt ein Band von räumlichen Frequenzen dar.
Die Unterbänder ersten Niveaus werden mit 1SS, 1SD, 1DS und 1DD bezeichnet. Der
Prozeß der Zerlegung des Originalbildes beinhaltet eine Unterabtastung mit zwei sowohl
in der horizontalen als auch vertikalen Dimension bzw. Richtung, so daß die Unterbän
der des ersten Niveaus 1SS, 1SD, 1DS und 1DD jeweils ein Viertel so viele Koeffizien
ten aufweisen, wie die Eingabe bzw. das Eingangssignal Pixel (oder Koeffizienten) des
Bildes hat.
Das Unterband 1SS enthält simultan eine Tieffrequenzhorizontal- und eine Tieffrequenz
vertikalinformation. Typischerweise ist ein großer Teil der Bildenergie in diesem
Unterband konzentriert. Das Unterband 1SD enthält eine Tieffrequenzhorizontal- und
eine Hochfrequenzvertikalinformation (z. B. horizontale Kanteninformation). Das Unter
band 1DS enthält Hochfrequenzhorizontalinformation und Tieffrequenzvertikalinforma
tion (z. B. vertikale Kanteninformation). Das Unterband 1DD enthält eine Hochfrequenz
horizontalinformation und eine Hochfrequenzvertikalinformation (z. B. Struktur- oder
eine diagonale Kanteninformation).
Jedes der aufeinanderfolgenden zweiten, dritten und vierten unteren Zerlegungsniveaus
wird durch Zerlegung des Tieffrequenz-SS-Unterbandes des vorhergehenden Niveaus
erzeugt. Dieses Unterband 1SS des ersten Niveaus wird zerlegt, um Unterbänder 2SS,
2SD, 2DS und 2DD des zweiten Niveaus mit moderaten Details zu erzeugen. In ähnli
cher Weise wird das Unterband 2SS zerlegt, um Unterbänder mit groben Details 3SS,
3SD, 3DS und 3DD des dritten Niveaus zu erzeugen. Ebenso wird das Unterband SS2
zerlegt, um gröber detaillierte Unterbänder 4SS, 4SD, 4DS und 4DD des dritten Niveaus
zu erzeugen. Aufgrund der Unterabtastung mit 2, stellt jedes zweite Niveau-Unterband
1/16 der Größe des Originalbildes dar. Jede Abtastung (z. B. Pixel) bei diesem Niveau
stellt ein moderates Detail in dem Originalbild bei derselben Stelle dar. In ähnlicher
Weise hat jedes Unterband des dritten Niveaus 1/64 der Größe des Originalbildes. Jedes
Pixel bei diesem Niveau entspricht einem relativ groben Detail in dem Originalbild bei
derselben Stelle. Ebenso ist jedes Unterband des vierten Niveaus 1/256 der Größe des
Originalbildes.
Da die zerlegten Bilder aufgrund der Unterabtastung physikalisch kleiner sind als das
Originalbild, kann derselbe Speicher, der zur Speicherung des Originalbildes verwendet
wird, verwendet werden, um alle zerlegten Unterbänder zu speichern. Mit anderen
Worten, das Originalbild und die zerlegten Unterbänder 1SS und 2SS werden ausrangiert
bzw. eliminiert und nicht bei einer Drei-Niveau-Zerlegung gespeichert.
Obwohl nur vier Unterband-Zerlegungsniveaus beschrieben sind, können zusätzliche
Niveaus in Übereinstimmung mit den Anforderungen eines bestimmten Systems entwic
kelt werden. Ebenso können mit anderen Transformationen, wie z. B. einer DCT oder
linear beabstandeten Unterbändern, unterschiedliche Eltern-Kind-Verhältnisse bzw.
Mutter-Kind-Verhältnisse festgelegt werden.
Bemerkenswert ist, daß eine pyramidale Zerlegung nicht die Koeffizientengröße mit den
Waveletfiltern der vorliegenden Erfindung erhöht.
Bei anderen Ausführungsformen können andere Unterbänder zusätzlich zu dem SS
ebenso zerlegt werden.
Es gibt eine natürliche und nützliche Baumstruktur für Waveletkoeffizienten bei einer
pyramidalen Zerlegung. Ein Ergebnis der Unterbandzerlegung ist ein einziges
SS-Frequenz-Unterband, das dem letzten Niveau der Zerlegung entspricht. Auf der anderen
Seite gibt es so viele SD-, DS- und DD-Bänder wie die Anzahl der Niveaus. Die
Baumstruktur definiert die Mutter eines Koeffizienten in einem Frequenzband so, daß sie
ein Koeffizient in einem selben Frequenzband bei einer tieferen Auflösung ist und sich
auf dieselbe räumliche Stelle bezieht.
Bei der vorliegenden Erfindung umfaßt jeder Baum die SS-Koeffizienten und drei
Unterbäume, nämlich die DS-, SD- und DD-Unterbäume. Die Verarbeitung der vorlie
genden Erfindung wird typischerweise mit drei Unterbäumen durchgeführt. Die Wurzel
eines jeden Baumes ist ein rein glatter Koeffizient. Für ein zweidimensionales Signal,
wie z. B. ein Bild, gibt es drei Unterbäume, jeder mit vier Kindern. Der Baum ist
hierarchisch nicht auf zweidimensionale Signale beschränkt. Zum Beispiel weist für ein
eindimensionales Signal jeder Unterbaum ein Kind auf. Höhere Dimensionen ergeben
sich aus den eindimensionalen und zweidimensionalen Fällen.
Der Prozeß einer Multiauflösungszerlegung kann durchgeführt werden, indem ein
Filtersystem verwendet wird. Hinsichtlich Beispielen für eine zweidimensionale Zwei-
Niveau-Transformation siehe US-Patentanmeldung Nr. 08/498,695, eingereicht am
30. Juni 1995, mit dem Titel "Method and Apparatus for Compression Using Reversible
Wavelet Transforms and an Embedded Codestream" und US-Patentanmeldung Nr.
08/498,036, eingereicht am 30. Juni 1995, die den Titel trägt "Reversible Wavelet
Transform and Embedded Codestream Manipulation", die beispielsweise eindimensionale
Filter verwenden.
Bei der vorliegenden Erfindung wird die Wavelettransformation mit zwei 1-D-Operatio
nen, zuerst horizontal, dann vertikal, durchgeführt. Bei einer Ausführungsform führt ein
Hardwareteil die horizontale Operation durch, während ein anderes die vertikalen
Operationen durchführt.
Die Anzahl der Niveaus bestimmen die Anzahl der Iterationen. Bei einer Ausführungs
form wird ein Vier-Niveau-Zerlegung durchgeführt, indem die TT-Transformation
sowohl in der horizontalen als auch vertikalen Richtung durchgeführt wird. Bei einer
anderen Ausführungsform wird eine Vier-Niveau-Zerlegung durchgeführt, indem vier
TS-Transformationen statt dessen verwendet werden.
Die Transformation der vorliegenden Erfindung ist hinsichtlich der Berechnung effizient.
Bei einer Ausführungsform ordnet die vorliegende Erfindung die Berechnungen, die
durch die Transformation durchgeführt werden, um den Umfang des auf dem Chip
befindlichen Speichers und des außerhalb des Chips befindlichen Speichers und die
erforderliche Bandweite zu reduzieren.
Die folgenden Gleichungen definieren sowohl die TS-Transformation als auch die
TT-Transformation. Für eine Eingabe x(n) werden die Ausgabe des Tiefpaßfilters, das glatte
Signal s(n) und des Hochpaßfilters, das detaillierte Signal d(n) berechnet, wie in der
folgenden Gleichung gezeigt ist.
Die inverse Transformation ist in der folgenden Gleichung gezeigt:
wobei p(n) durch folgendes berechnet wird:
p(n) = d(n) - t(n).
Die TS-Transformation und die TT-Transformation unterscheiden sich in der Definition
von t(n). Für die TS-Transformation gilt:
Für die TT-Transformation gilt:
Bemerkenswert ist, daß bei der folgenden Diskussion die Notation bedeutet, ab
zurunden bzw. abzuschneiden und wird manchmal als die Bodenfunktion ("floor
function") bezeichnet.
Diese Filter können realisiert werden, indem nur Additions- und Subtraktionsoperationen
(plus hartverdrahtetes Bitverschieben) verwendet wird. Zum Beispiel kann die Multipli
kation mit 3 und 22 durch Schiebungen und Addierungen durchgeführt werden.
Bemerkenswert ist, daß sowohl bei der reversiblen TS-Transformation und TT-Trans
formation, ähnlich wie bei der S-Transformation, der Tiefpaßfilter realisiert ist, so daß
der Bereich des Eingangssignal x(n) derselbe ist wie bei dem Ausgangssignal s(n). Das
heißt, es gibt kein Wachsen bei der glatten Ausgabe. Falls das Eingangssignal b-Bits tief
ist, dann beträgt die glatte Ausgabe ebenso b-Bits. Zum Beispiel ist, falls das Signal ein
8-Bit-Bild ist, der Ausgang des Tiefpaßfilters ebenso 8 Bits. Dies ist eine wichtige
Eigenschaft für ein pyramidales System, wo die glatte Ausgabe weiter durch z. B.
aufeinanderfolgendes Anwenden des Tiefpaßfilters dekomprimiert wird. Bei Systemen
nach dem Stand der Technik ist der Bereich des Ausgangssignals größer als jener des
Eingangssignals, wodurch aufeinanderfolgende Anwendungen des Filters schwierig
werden. Ebenso gibt es keinen systematischen Fehler, der auf ein Runden bei der
Ganz:zahl-Anwendung der Transformation zurückzuführen ist, so daß alle Fehler in
einem verlustbehafteten System durch die Quantisierung gesteuert werden können.
Zusätzlich weist der Tiefpaßfilter nur zwei Abgriffe auf, was es zu einem nicht-überlap
penden Filter macht. Diese Eigenschaft ist wichtig für die Hardwarerealisierung.
Bei der vorliegenden Erfindung werden die Koeffizienten, die als ein Ergebnis der
Waveletzerlegung erzeugt werden, entropiekodiert. Bei der vorliegenden Erfindung
durchlaufen die Koeffizienten anfänglich ein eingebettetes Ordnen, bei dem die Koeffi
zienten in einer visuell signifikanten Reihenfolge oder allgemeiner bezüglich derselben
Fehlermetrik (z. B. Störungsmetrik) geordnet werden. Fehler oder Störungsmetriken
beinhalten z. B. den Spitzenfehler und den mittleren quadratischen Fehler (MSE).
Zusätzlich kann ein Ordnen durchgeführt werden, um einer Bitsignifikanz-Raumstelle
Präferenz, Relevanz für Datenbasisabfrage und Direktionalität (vertikal, horizontal,
diagonal usw.) zu geben.
Das Ordnen der Daten wird durchgeführt, um die eingebettete Quantisierung des Kode
stromes zu erzeugen. Bei der vorliegenden Erfindung werden zwei Ordnungssysteme
verwendet: ein erstes zum Ordnen der Koeffizienten und ein zweites zum Ordnen der
Binärwerte innerhalb eines Koeffizienten. Das Ordnen der vorliegenden Erfindung
erzeugt einen Bitstrom, der im folgenden mit einem binären Entropiekodierer kodiert
wird.
Die meisten Transformationskoeffizienten sind vorzeichenbehaftete Zahlen, selbst wenn
die Originalkomponenten nicht vorzeichenbehaftet sind (jegliche Koeffizienten, die von
wenigstens einem detaillierten Filter ausgegeben werden, sind vorzeichenbehaftet). Bei
einer Ausführungsform ist die eingebettete Ordnung, die für Binärwerte innerhalb eines
Koeffizienten verwendet wird, bitebenenweise. Die Koeffizienten werden in Bitsignifi
kanzdarstellung vor dem Kodieren ausgedrückt. Die Bitsignifikanz ist eine Vorzeichen-
Betrag-Darstellung, wobei das Vorzeichenbit, eher als das höchstwertige Bit (MSB) mit
dem ersten Bit ungleich 0 kodiert wird. Das heißt das Vorzeichenbit folgt dem ersten
Betragsbit ungleich 0 eher, als daß es allen Betragsbits vorangeht. Ebenso wird das
Vorzeichenbit so angesehen, daß es in derselben Bitebene wie das höchstwertige Be
tragsbit ungleich 0 ist.
Das Bitsignifikanzformat stellt eine Zahl dar, die drei Sätze von Bits verwendet: Kopf,
Schwanz und Vorzeichen. Die Kopfbits sind alle Null-Bits von MSB bis zu und ein
schließlich des ersten Betragsbits ungleich 0. Die Bitebene, in der das erste Betragsbit
ungleich 0 auftritt, definiert die Signifikanz des Koeffizienten. Der Satz der Schwanzbits
umfaßt die Betragbits nach dem ersten Betragsbit ungleich 0 bis zu dem LSB. Das
Vorzeichenbit bezeichnet einfach das Vorzeichen, wobei 0 ein positives Vorzeichen
darstellt und 1 ein negatives Vorzeichen darstellen kann. Eine Zahl, wie z. B. ± 2n mit
einem Bit ungleich 0 als das MSB weist nur ein Kopfbit auf. Ein Null-Koeffizient hat
keine Schwanz- oder Vorzeichenbits. Fig. 12 zeigt Beispiele der Bitsignifikanzdar
stellung. Tabelle 2 zeigt alle möglichen Werte für Formbit-Koeffizienten, die von -7 bis
8 reichen.
In Tabelle 2 beinhaltet die Bitsignifikanzdarstellung, die in jeder Spalte gezeigt ist, ein
Bit oder zwei Bits. In dem Fall von zwei Bits ist das erste Bit das allererste Bit und
wird von dem Vorzeichenbit gefolgt.
In dem Fall, wo die Werte nicht negative ganze Zahlen sind, wie dies z. B. bezüglich der
Intensität von Pixeln auftritt, ist die Reihenfolge, die verwendet werden kann, die
Bitebenenreihenfolge (z. B. von der höchstwertigen zu der niedrigstwertigen Bitebene).
Bei Ausführungsformen, wo negative Zweier-Komplement-Ganzzahlen ebenso erlaubt
sind, ist die eingebettete Reihenfolge des Vorzeichenbits dieselbe, wie das erste Bit
ungleich 0 des absoluten Wertes der ganzen Zahl. Deshalb wird das Vorzeichenbit nicht
beachtet, bis ein Bit ungleich 0 kodiert wird. Zum Beispiel lautet unter Verwendung der
Vorzeichen-Betrag-Notation die 16-Bit-Zahl -7 wie folgt:
1000000000000111.
Auf einer Bitebenenbasis werden die ersten zwölf Entscheidungen "insignifikant" oder
0 sein. Die erste Bitebene tritt bei der dreizehnten Entscheidung auf. Als nächstes wird
das Vorzeichenbit "negativ" kodiert. Nachdem das Vorzeichenbit kodiert ist, werden die
Schwanzbits verarbeitet. Die fünfzehnte und sechzehnte Entscheidung sind jeweils "1".
Da die Koeffizienten von der höchstwertigen Bitebene bis zur niedrigstwertigen Bitebene
kodiert werden, muß die Anzahl der Bitebenen in den Daten bestimmt werden. Bei der
vorliegenden Erfindung wird dies bewerkstelligt, indem eine obere Grenze bei den
Beträgen der Koeffizientwerten gefunden wird, die von den Daten berechnet werden
oder von der Tiefe des Bildes und den Filterkoeffizienten abgeleitet werden. Zum
Beispiel, falls die obere Grenze 149 ist, dann gibt es acht Bits mit Signifikanz oder acht
Bitebenen. Hinsichtlich der Geschwindigkeit bei der Software, kann ein Bitebenenkodie
ren nicht verwendet werden. Bei einer alternativen Ausführungsform wird eine Bitebene
nur kodiert, wenn ein Koeffizient als eine binäre Zahl signifikant wird.
Die vorliegende Erfindung richtet Koeffizienten zueinander vor der Bitebenenkodierung
aus. Dies liegt daran, weil die Koeffizienten in den unterschiedlichen Frequenz-Unter
bändern unterschiedliche Frequenzen darstellen, ähnlich wie bei der FFT oder DCT.
Durch Ausrichtung der Koeffizienten steuert die vorliegende Erfindung die Quantisie
rung. Die weniger stark quantisierten Koeffizienten werden in Richtung auf die vorher
gehenden Bitebenen ausgerichtet (z. B. nach links verschoben). Somit, falls der Strom
abgeschnitten ist, werden diese Koeffizienten mehr Bits haben, die sie festlegen als die
stärker quantifizierten Koeffizienten.
Fig. 39 zeigt eine normalisierte Ausrichtung und Fig. 40 zeigt eine pyramidale Aus
richtung.
Bei einer Ausführungsform werden die Koeffizienten für die beste Raten-Störungs-bzw.
Raten-Verzerrungs-Leistungsfähigkeit ("rate distortion performance") ausgerichtet, und
zwar ausgedrückt durch SNR (Signal-zu-Rausch-Verhältnis) oder MSE. Es gibt viele
mögliche Ausrichtungen, einschließlich jener, die nahezu optimal ist, und zwar ausge
drückt durch statistische Fehlermetriken, wie z. B. MSE. Alternativ kann die Ausrichtung
eine psychovisuelle Quantisierung der Koeffizientendaten erlauben. Die Ausrichtung hat
einen wesentlichen Einfluß auf die Entwicklung der Bildqualität (oder in anderen
Worten auf die Raten-Störungskurve), aber hat einen vernachlässigbaren Einfluß auf das
End-Kompressionsverhältnis des verlustfreien Systems. Andere Ausrichtungen können
einer spezifischen Koeffizientenquantifizierung entsprechen, getreue Kodierung des
Bereichs von Interesse oder hinsichtlich der Auflösung fortschreitende Ausrichtung.
Die Ausrichtung kann in dem Kopf der komprimierten Daten signalisiert werden oder
sie kann für eine bestimmte Anwendung fixiert werden (das heißt das System weist nur
eine Ausrichtung auf). Die Ausrichtung der Koeffizienten unterschiedlicher Größe ist
sowohl für den Kodierer als auch Dekodierer bekannt und hat keinen Einfluß auf die
Effizienz des Entropiekodierers.
Die Bittiefen der verschiedenen Koeffizienten in einer Zwei-Niveau-TS-Transformation
und einer TT-Transformationszerlegung von einem Eingangsbild mit b-Bits pro Pixel
sind in Fig. 10 gezeigt. Fig. 11 ist eine Ausführungsform der Multiplizierer für das
Frequenzband, das für eine Koeffizientenausrichtung bei der vorliegenden Erfindung
verwendet wird. Zur Ausrichtung der Koeffizienten wird die 1-DD-Koeffizientengröße
als eine Referenz verwendet und Verschiebungen werden bezüglich dieser Größe
gegeben. Eine Verschiebung von n ist eine Multiplikation mit 2n.
Bei einer Ausführungsform werden die Koeffizienten bezüglich des Betrags des größten
Koeffizienten verschoben, um eine Ausrichtung aller Koeffizienten in dem Bild zu
erzeugen. Die ausgerichteten Koeffizienten werden dann in Bitebenen, sog. Wichtigkeits
niveaus, gehandhabt, und zwar von dem höchst signifikanten Wichtigkeitsniveau zu dem
niedrigst signifikaten Wichtigkeitsniveau. Das Vorzeichen wird mit dem letzten Kopfbit
eines jeden Koeffizienten kodiert. Das Vorzeichenbit wird mit dem letzten Kopfbit eines
jeden Koeffizienten kodiert. Das Vorzeichenbit ist unabhängig, in welchem Wichtigkeits
niveau das letzte Kopfbit ist. Es ist wichtig zu bemerken, daß die Ausrichtung einfach
die Reihenfolge steuert, in der die Bits zu dem Entropiekodierer gesendet werden.
Aktuelles Füllen ("padding"), Verschieben, Speichern oder Kodieren von Extra-Null-Bits
wird nicht ausgeführt.
Tabelle 3 zeigt eine Ausführungsform von Ausrichtungszahlen für Ausrichtkoeffizienten
für eine normalisierte Ausrichtung, wie sie z. B. in Fig. 39 gezeigt ist.
Die Ausrichtung von Koeffizienten unterschiedlicher Größe ist sowohl dem Kodierer als
auch dem Dekodierer bekannt und hat keinen Einfluß auf die Effizienz des Entropieko
dierers.
Bemerkenswert ist, daß Kodiereinheiten desselben Datensatzes unterschiedliche Aus
richtungen haben können.
Bei einer Ausführungsform umfaßt der Kodestrom der vorliegenden Erfindung einen
Hauptkopf, Plattenköpfe und Schwanzdaten. Jede Platte weist wenigstens einen Daten
punkt von jeder Komponente in dem Bild auf. Die Komponentendaten werden trans
formiert (unter Verwendung einer Transformationsstil- oder Binärstil-Kodierung) und
dann in den Wichtigkeitsniveaus ausgerichtet bzw. dort eingepaßt. Die Wichtigkeits
niveaus werden dann entropiekodiert, indem das geeignete Kontextmodell und der Kode
verwendet wird (z. B. FSM-Kodierer).
Bemerkenswert ist, daß bei einer Ausführungsform das Modellieren und Kodieren ein
direkt ablaufender Prozeß ist. Keine Neuanordnung der Daten wird durchgeführt.
Deshalb stellen die entropiekodierten Wichtigkeitsniveaus die minimal möglich kodierte
Einheit in dem Datenstrom dar. Falls Eintrittspunkte vor ein Wichtigkeitsniveau plaziert
werden (oder die Daten eine feste Länge haben), dann kann der Kodestrom dekodiert
werden, wobei beim Punkt begonnen wird.
Die SS-Koeffizienten werden als das höchst signifikante Wichtigkeitsniveau klassifiziert.
(Bemerkenswert ist, daß, falls das Binärstilkodieren verwendet wird und die Komponen
te in Null-Niveaus zerlegt wird, dann die Koeffizienten so betrachtet werden, daß sie in
dem DD-Frequenzband sind.) Diese Koeffizienten (ob Transformationsstil oder Binärstil)
werden nicht entropiekodiert. Die SS-Koeffizienten werden in den Kodestrom in Raster
ordnung mit dem höchst signifikanten Bit (MSB) zuerst und dem niedrigst signifikanten
Bit (LSB) zuletzt gepackt, und zwar ungeachtet der Tiefe des Koeffizienten. Vorzeichen
behaftete Komponenten werden als nicht vorzeichenbehaftete Werte gespeichert, und
zwar versetzt um 2ˆ(Tiefe-1). Zum Beispiel wird bei 8-Bit-Tiefen vorzeichenbehafteten
Komponenten, die Werte von -128 bis 127 einnehmen, 128 zu ihrem Wert addiert und
sie werden nicht vorzeichenbehaftet von 0 bis 255 gespeichert.
Bei einer Ausführungsform werden bezüglich jedes Komponenten die Wichtigkeits
niveaus in dem Kodestrom von dem höchst signifikanten (höchste Zahl bzw. Nummer)
bis niedrigst signifikanten geordnet.
Es ist möglich, ein bestimmten Wichtigkeitsniveau unter Verwendung von Eintritts
punkten einzugeben und zu dekodieren. Auf Eintrittspunkte wird mit der IEM- oder
IET-Kennung gezeigt. Der Entropiekodierer kann bei gewissen Punkten in dem Kodestrom
zurückgesetzt werden; die Punkte werden zur Kodierzeit entschieden und können nur am
Beginn eines Wichtigkeitsniveaus auftreten. Diese Rücksetzung erzeugt einen Eintritts
punkt, wo die Kodierzustandsinformation (Kontext und Wahrscheinlichkeiten) ein
bekannter Anfangszustand ist. Der Kodestrom wird mit Bits auf das nächste Vielfache
von acht Bits gefällt.
Das Kontextmodell bestimmt sowohl die Reihenfolge, in der Daten kodiert werden, als
auch die Konditionierung, die für spezifische Bits der Daten verwendet werden. Ein
Ordnen wird zuerst berücksichtigt.
Die Reihenfolge, mit der die Koeffizienten während jeder Bitebene verarbeitet werden,
reichen von der niedrigen Auflösung zu der hohen Auflösung (von der niedrigen
Frequenz zu der hohen Frequenz). Der Koeffizient-Unterbandkodierer innerhalb jeder
Bitebene reicht von dem hohen Niveau (niedrige Auflösung, niedrige Frequenz) zu dem
niedrigen Niveau (hohe Auflösung, hohe Frequenz). Innerhalb jedes Frequenz-Unterban
des findet das Kodieren in einer festgelegten Reihenfolge bzw. Ordnung statt. Bei einer
Ausführungsform kann es sich bei der Ordnung um eine Rasterordnung, z. B.
2×2-Blockordnung, Serpentinenordnung, Peano-Abtastordnung usw. handeln.
In dem Fall einer Vier-Niveau-Zerlegung ist die Reihenfolge unter Verwendung des
Kodestroms einer Ausführungsform der vorliegenden Erfindung wie folgt:
4-SS, 4-DS, 4-SD, 4-DD, 3-DS, 3-SD, 3-DD, 2-DS, 2-SD, 2-DD, 1-DS, 1-SD, 1-DD.
Eine Ausführungsform des Kontextmodells, das bei der vorliegenden Erfindung verwen
det wird, wird im folgenden beschrieben. Dieses Modell verwendet Bits innerhalb einer
Kodiereinheit, und zwar basierend auf den räumlichen und spektralen Abhängigkeiten
der Koeffizienten. Die verfügbaren Binärwerte der benachbarten Koeffizienten und der
Mutterkoeffizienten können verwendet werden, um Kontexte zu erzeugen. Die Kontexte
sind jedoch für die Dekodierbarkeit ursächlich und für eine effiziente Adaption in
geringer Anzahl.
Die vorliegende Erfindung stellt ein Kontextmodell bereit, um für den binären En
tropiekodierer den Bitstrom zu modellieren, der durch die Koeffizienten in der eingebet
teten Bitsignifikanzreihenfolge erzeugt wird.
Fig. 13 zeigt die Nachbarschaftskoeffizienten für jeden Koeffizienten einer Kodier
einheit. Nimmt man Bezug auf Fig. 13, so werden die Nachbarschaftskoeffizienten mit
den offensichtlichen geografischen Notationen (z. B. N = Norden, NE = Nordosten, E =
Osten, SE = Südosten, W = Westen usw.) bezeichnet. Nimmt man einen Koeffizienten,
wie z. B. P in Fig. 13, und eine aktuelle Bitebene, so kann das Kontextmodell jegliche
Information von der gesamten Kodiereinheit vor der gegebenen Bitebene nutzen. Der
Mutterkoeffizient des vorliegenden Koeffizienten wird ebenso für dieses Kontextmodell
verwendet.
Die Kopfbits sind die am meisten komprimierbaren Daten. Deshalb wird ein großer
Umfang an Kontext oder Konditionierung verwendet, um die Kompression zu ver
bessern.
Eine Ausführungsform des Kontextmodells der vorliegenden Erfindung ist im folgenden
beschrieben. Dieses Modell verwendet Bits innerhalb einer Kodiereinheit, und zwar
basierend auf den räumlichen und spektralen Abhängigkeiten der Koeffizienten. Die
verfügbaren binären Werte der Nachbarschaftskoeffizienten und Mutterkoeffizienten
können verwendet werden, um Kontexte zu erzeugen. Die Kontexte sind jedoch für die
Dekodierbarkeit kausal und für eine effiziente Adaption in einer kleinen Anzahl.
Bei der vorliegenden Erfindung umfaßt das Vorzeichenbit-Kontextmodell das Kodieren
des Vorzeichens nach dem letzten Kopfbit. Es gibt viele Kontexte für das Vorzeichen,
und zwar abhängig davon, ob der N-Koeffizient positiv, negativ oder das Zeichen noch
nicht kodiert ist.
Bei einer Ausführungsform werden die Bitebenen der einzelnen Frequenzbänder in der
Reihenfolge SS DSn SDn DDn . . . DSi SDi DDi . . . DS1 SD1 DD1 kodiert. Bei einer
Ausführungsform handelt es sich bei der Reihenfolge innerhalb eines Frequenzbandes
für das Vorhersehen ("look ahead") sowie für das individuelle Kodieren um die kindba
sierte Ordnung. Die kindbasierte Ordnung ist eine Abtastungsreihenfolge durch das
zweidimensionale Bild, ähnlich zur Rasterordnung, mit der Ausnahme der Zwei-Zeilen-,
Zwei-mal-Zwei-Blockordnung. Man betrachte die Abtastung eines Mutter-Frequenzban
des in Rasterordnung. Jeder Koeffizient wird vier Kinder haben. Diese Kinder werden
in der Reihenfolge oben links, oben rechts, unten links und dann unten rechts geordnet.
Dann kehrt die Ordnung zu der linken Seite zurück und beginnt mit den beiden nächsten
Zeilen bzw. Linien, bis sie schließlich in der unteren rechten Ecke endet. Keine Zeilen
bzw. Linien werden übersprungen. Falls es eine ungerade Anzahl von Zeilen bzw.
Linien gibt, ist die letzte Zeile in einer einfachen Rasterordnung. Fig. 14 zeigt diese
Ordnung.
Bei einer Ausführungsform werden die Bits in dem Wichtigkeitsniveau in der Frequenz
bandreihenfolge kodiert. Wenn eine Bitebene eines Frequenzbandes kodiert wird, zeigt
das erste Ausgabebit an, ob oder ob nicht die ganze Bitebene 0 ist. Falls sie 0 ist, dann
wird ein Null-Bit zu dem Entropiekodierer geliefert. Es gibt einen einzigen Kontext für
ein Frequenzband-Bitebenen-Vorhersehen. Der Kodierer schreitet zu der nächsten
Frequenzband-Bitebene fort.
Falls es wenigstens ein Eins-Bit gibt, dann wird ein Eins-Bit zu dem Entropiekodierer
geliefert und die Bitebene wird kodiert, wie im folgenden beschrieben wird. (Bemer
kenswert ist, daß ein Eins-Bit zu dem Entropiekodierer selbst dann geliefert werden
kann, falls die Bitebene lauter Nullen sind. In diesem Fall wird die Bitebene, wie im
folgenden beschrieben, kodiert.) Dieser Durchlauf wird für jede Bitebene benötigt, die
Daten enthalten kann. Es gibt kein Bit, das für Frequenzbänder kodiert wird, die wegen
der Ausrichtung und Koeffiziententiefe kein Eins-Bit bei dem aktuellen Wichtigkeits
niveau haben können, oder für Frequenzbänder, die keine Koeffizienten enthalten.
Bei einer Ausführungsform werden benachbarte Koeffizienten und Mutterkoeffizienten
DS, SD und DD, die nicht aufgrund von Plattenkanten existieren, als Nullen behandelt.
Diese Behandlung gilt ebenso für den Prozeß zur Bestimmung, ob ein Vorhersehen, das
Post-Vorherseh-Kopfbit-Kontextmodell und das Kopfbit-Kontextmodell zu versuchen ist.
Viele Kontextmodelle, die hierin beschrieben werden, verwenden Bits von anderen
Koeffizienten (Nachbarschaftskoeffizienten in dem selben Frequenzband und den
Mutterkoeffizienten usw.). Bei einer Ausführungsform werden die Bits in Abhängigkeit
von dem Typ eines Nachbars untersucht. Falls das höchstwertige Bit eines Koeffizienten
kodiert wird, dann ist das Referenzbit in der Mutter das zweit-signifikanteste Bit, das
Referenzbit in den wesentlichen, nordwestlichen, nördlichen und nordöstlichen Nachbarn
ist ebenso das höchst signifikante Bit, das Referenzbit in dem östlichen und südlichen
Nachbarn ist das Bit, das signifikanter ist als das höchst signifikante Bit, und wird somit
als Null angenommen. Das Referenzbit, das zu verwenden ist, ist in Fig. 15 gezeigt.
Wenn man das niedrigst signifikante Bit kodiert, nimmt man an, daß die Mutter ein
anderes Bit unterhalb des aktuellen niedrigst signifikanten Bits hat, das Null ist. Falls
das Referenzbit des Mutterkoeffizienten sich tatsächlich in einem tieferen Wichtigkeits
niveau befindet als das aktuelle Bit, nimmt man an, daß die Mutter ein Null-Kopfbit ist
(die Mutter wird nicht verwendet).
Bei der vorliegenden Erfindung wird ein Vorhersehen verwendet. Dieses Vorhersehen
wird bezeichnet, um die Redundanz von Entscheidungen zu reduzieren, die durch den
Kodierer kodiert werden. Die Bestimmung, ob das Vorhersehen verwendet wird, wird
rein auf kausalen und deterministischen Daten gegründet. Falls nicht, werden keine
Daten kodiert und jeder Koeffizient wird unabhängig kodiert, wie in den folgenden
Abschnitten beschrieben wird. Falls das Vorhersehen versucht wird und erfolgreich ist,
wird ein Nullbit mit einem Vorhersehkontext kodiert und die 16 Koeffizienten werden
übersprungen. Ansonsten wird ein Eins-Bit mit einem Vorhersehkontext kodiert und
jeder Koeffizient wird kodiert, wie in der folgenden Beschreibung beschrieben. (Bemer
kenswert ist, daß ein Eins-Bit kodiert werden kann, selbst falls das Vorhersehen erfolg
reich war. Dies ermöglicht es, daß der Kodierer den Vorhersehprozeß umgeht.)
Bei einer Ausführungsform hängt die Entscheidung, das Vorhersehen zu versuchen,
davon ab, ob man auf irgendwelche Eins-Bits in den 16 Ziel-Koeffizienten (in der
kindbasierten Ordnung), in den vier Müttern jener Koeffizienten oder in den acht
nördlichen Nachbaren jener Koeffizienten gestoßen ist. Das Vorhersehen wird versucht,
falls die Referenzbits in den Müttern, die Referenzbits in den nördlichen Nachbarn und
die Bits in der vorhergehenden Bitebene der 16 Ziel-Koeffizienten alle Null-Kopfbits
sind. Zur Klarstellung, es sind nicht nur alle Referenzbits 0, sondern alle Bits, die
signifikanter sind als die Referenzbits, sind 0. Fig. 16 zeigt diese Koeffizienten. An der
Kante der Platte oder des Bildes können 16 Ziel-Koeffizienten nicht in zwei Reihen
verfügbar sein; unter diesen Umständen wird kein Vorhersehen versucht. (Die Frage D2
in dem Flußdiagramm in Fig. 20 wird mit nein beantwortet.)
Bemerkenswert ist, daß, falls die Mütter nicht verfügbar sind (aufgrund der Ausrichtung
oder Nichtexistenz) oder nicht verwendet werden, dann angenommen wird, daß man auf
Eins-Bit niemals stoßen wird. Bei einer Ausführungsform wird diese Betrachtung ebenso
auf die Koeffizienten höchsten Niveaus DS, SD und DD angewendet, da die SS-Koeffi
zienten nicht als Mütter verwendet werden. Für die Frequenzbänder wird die Mutter als
nicht verfügbar angesehen. Weiter, falls keine nördlichen Nachbarn vorhanden sind (z. B.
die erste Zeile der Platte), dann wird angenommen, daß diese nicht verfügbaren Bits 0
sind.
Falls die Entscheidung so ist, daß man mit Vorhersehen fortschreitet, dann werden die
16 Bits der aktuellen Bitebene der Ziel-Koeffizienten untersucht, um zu sehen, ob sie
alle Null-Kopfbits sind. Falls dem so ist, dann wird ein Null-Bit mit einem Kontext
kodiert, der aus dem letzten Vorhersehen besteht, das in dem aktuellen Frequenzband bei
dem aktuellen Wichtigkeitsniveau versucht wird. Falls dies das erste Vorhersehen ist,
das in dem aktuellen Frequenzband bei dem aktuellen Wichtigkeitsniveau versucht wird,
dann wird angenommen, daß das vorhergehende Vorhersehen erfolgreich war (es wird
angenommen, daß eine Null zuvor kodiert wurde). Falls die 16 Bits nicht alle
Null-Kopfbits sind, wird ein Eins-Bit mit demselben Kontext kodiert. Bemerkenswert ist, daß
andere Koeffizientenzahlen, die sich von 16 unterscheiden, wie z. B. 8 oder 32, verwen
det werden können. Eine andere Auswahl kann auf dem verfügbaren Speicher basieren
oder kann auf der Stelle von Referenzbits basieren, die keine Null-Kopfbits sind.
Falls das Vorhersehen versucht wird oder fehlschlägt oder nicht versucht wird, werden
die 16 (oder weniger) Bits individuell kodiert. Jeder Koeffizient hat Kopfbits, die
dekodiert werden, bis das erste Eins-Bit auftritt, dann wird das Vorzeichenbit unmittel
bar danach kodiert. Danach befindet sich der Koeffizient in dem Schwanz.
Das Kodieren ähnelt den zwei Fällen: 1) Vorhersehen fehlgeschlagen, 2) Vorhersehen
nicht versucht. Jedoch können bei einer Ausführungsform unterschiedliche Kontexte
verwendet werden und in dem ersten Fall ist bekannt, daß alle Koeffizienten, die zu
dekodieren sind, Kopfbits sind.
Falls das Vorhersehen versucht wird und fehlschlägt, dann sind wenige Fakten bekannt.
Als erstes sind die Mutter- und nördliche Nachbarschaftskoeffizienten der oberen acht
alle in dem Null-Kopfzustand. Zweitens gilt dies für alle Ziel-Koeffizienten. Schließlich
gibt es wenigstens ein Eins-Bit unter den Ziel-Bits. Weil diese Information sich so vom
Nichtversuchen des Vorhersehens unterscheidet, werden verschiedene Kontexte zum
Kodieren dieser Kopfbits verwendet. Somit wird ein unterschiedliches Kontextmodell für
diese Bits verwendet, um so nicht sehr unterschiedliche Statistiken zu kombinieren.
Um das Kontextmodell auszubilden, werden gewisse Werte von den benachbarten Pixeln
abgeleitet. Es ist klar, daß nur eine gewisse Information von dem Mutter- und nächsten
Nachbarschaftskoeffizienten verwendet werden kann, weil ansonsten das Kontextmodell
in einer sich verbietenden Art und Weise groß werden wurde. Tabelle 4 zeigt die Typen
von Information, die für jeden Koeffizienten verwendet werden. Fig. 17 zeigt die
Beiträge der Nachbarschaftskoeffizienten.
Die vorliegende Erfindung unternimmt spezielle Schritte bei Plattengrenzen. Bei einer
Ausführungsform, falls es weniger als 16 Koeffizienten (8 Spalten) gibt, dann wird kein
Vorhersehen versucht. Ebenso, falls es nur eine Linie bzw. Zeile am unteren Ende einer
Platte gibt, dann wird kein Vorhersehen versucht.
Die Bits in dem Wichtigkeitsniveau werden in der Frequenzband-Reihenfolge festgelegt.
Innerhalb jedes Frequenzbandes werden die Bits in kindbasierter Ordnung kodiert. Der
Kopfbit-Kontextmodell-Abschnitt des Transformationsstil-Kontextmodells hängt von
zwei Quellen der Information ab:
- - dem Mutterkoeffizienten, falls signalisiert, 2 Bits,
- - den nächsten Nachbarschaftskoeffizienten, 7 Bits.
Diese neun Bits bilden eine einzigartige Zahl, die einen bestimmten Zustand signalisiert,
der ein Kontext genannt wird. Dieser Kontext wird zu dem FSM-Kodierer geliefert und
wird verwendet, um die Wahrscheinlichkeitsschätzung für das Kodieren zu adaptieren.
Offensichtlich ist die für diesen Kontext verwendete Information zufällig; das heißt sie
ist zur Zeit des Kodierens verfügbar. Es ist ebenso klar, daß nur eine gewisse Informa
tion von den Mutter- und nächsten Nachbarkoeffizienten verwendet werden können.
Tabelle 4 zeigt die Typen von Information, die von jedem Koeffizient verwendet
werden.
Wenn sie verwendet werden, trägt der Mutterkoeffizient zwei Bits zu dem Kontext bei
(Typ A - Information in Tabelle 4). Der Mutterkoeffizient wird als der Koeffizient mit
einem Transformationsniveau nach oben (in demselben Frequenzband) festgelegt, der
den gesamten räumlichen Bereich abdeckt. Koeffizienten in dem höchsten Niveau eines
jeden Frequenzbandes haben keine Mutter (SS-Koeffizienten werden nicht als Mütter
verwendet) und der Beitrag wird als Null festgelegt. Fig. 18 zeigt ein Beispiel einer
Mutter.
In dem Fall, wo untere Transformationsniveau-Koeffizienten ausgerichtet werden, so daß
das Referenzbit in der Mutter unterhalb des aktuellen Bits liegt, wird die Mutter nicht
für den Kontext verwendet (der 2-Bit-Beitrag zu dem Kontext ist immer Null). Ebenso
kann die Mutter als ungenutzt signalisiert werden, was für einen wahren zufälligen
Zugriff in die Frequenzbänder eines Koeffizienten nützlich ist. Ebenso verwenden
Koeffizienten, die keine Mütter haben, keine Mütter.
Die Beiträge zu dem Kontext von den Nachbarkoeffizienten sind in Fig. 19 gezeigt. Die
Typen beziehen sich auf Tabelle 4.
Das Vorzeichenbit eines jeden Koeffizienten wird unmittelbar nach dem letzten Kopfbit
(das erste Eins-Bit) jenes Koeffizienten kodiert. Das Vorzeichenbit ist Teil des Wichtig
keitsniveaus, das das letzte Kopfbit enthält. Bei einer Ausführungsform unterscheidet
sich das Vorzeichenbit von dem Kopfbit-Kontext und dem Schwanzbit-Kontext, und
zwar bestehend aus drei Zuständen, die auf dem aktuellen Vorzeichen-Bitwert des
nördlichen Nachbarschaftskoeffizienten basieren. Falls es keinen nördlichen Nachbarn
gibt, ist das Vorzeichen unbekannt. Das letzte Kopfbit und das Vorzeichenbit sollten als
eine kleinste Einheit bzw. atomare Einheit betrachtet werden. Tabelle 5 zeigt den
Kontext, der für die Vorzeichenbits verwendet wird. Dieselben Vorzeichenbit-Kontexte
werden verwendet, sei es das Vorzeichenbit wird nach einem Kopfbit oder einem
Post-Vorherseh-Kopfbit kodiert.
Das Schwanzbit-Kontextmodell unterscheidet sich von den Kopf- oder Vorzeichen-bit-
Kontextmodellen. Es besteht aus drei Zuständen, die darauf basieren, wieviele Schwanz
bits in dem aktuellen Koeffizienten sind bzw. waren. Tabelle 6 zeigt diese Werte.
Eine Ausführungsform des Prozesses zur Modellierung einer jeden Bitebene eines jeden
Frequenzbandes eines jeden Wichtigkeitsniveaus kann grafisch in Fig. 20 betrachtet
werden. Die getroffenen Entscheidungen finden sich in Tabelle 7 und die Bits und der
Kontext, die zu dem Kodierer gesendet werden, sind in Tabelle 8. Bei einer Ausfüh
rungsform gibt es insgesamt fünf unabhängige Kontexte.
Eine alternative Ausführungsform eines Kontextmodells, das eine Ausführungsform einer
Vorzeichen-/Betragseinheit enthält, die Eingangskoeffizienten in ein Vorzeichen-/Be
tragsformat konvertiert, ist in der US-Patentanmeldung Nr. 08/498,695, eingereicht am
30. Juni 1995 mit dem Titel "Method and Apparatus for Compression Using Reversible
Wavelet Transforms and an Embedded Codestream", und in der US-Patentanmeldung
mit der Nr. 08/498,036, eingereicht am 30. Juni 1995 mit dem Titel "Reversible Wavelet
Transform and Embedded Codestream Manipulation" (entspricht der deutschen Anmel
dung 196 26 600) und ebenso in der US-Patentanmeldung mit der Nr. 08/642,518,
eingereicht am 3. Mai 1996 mit dem Titel "Compression and Decompression with
Wavelet Style and Binary Style Including Quantization by Device-Dependent Parser"
und der US-Patenanmeldung Nr. 08/643,268, eingereicht am 3. Mai 1996 mit dem Titel
"Compression/Decompression Using Reversible Embedded Wavelets", beschrieben.
Das Kontextmodell liefert Kontexte zum Entropiekodieren der Daten. Bei einer Aus
führungsform wird das gesamte Entropiekodieren, das durch die vorliegende Erfindung
durchgeführt wird, durch binäre Entropiekodierer durchgeführt. Ein einzelner Kodierer
kann verwendet werden, um einen einzigen Ausgangs-Kodestrom zu erzeugen. Alterna
tiv können mehrere (physikalische oder virtuelle) Kodierer verwendet werden, um
mehrere (physikalische oder virtuelle) Datenströme zu erzeugen.
Das Modulieren für den Binärstil ähnelt dem Transformationsstil-Kontextmodell. Einer
der Unterschiede ist jedoch, daß die Binärstil-Koeffizienten nicht vorzeichenbehaftete
Zahlen sind. Es gibt kein Vorzeichenbit oder eine Unterscheidung zwischen Kopf und
Schwanz. Fig. 36 zeigt den Fluß dieses Kontextmodells.
Die Bits in dem Wichtigkeitsniveau werden in dem Frequenzband kodiert, das, wie oben
definiert, geordnet ist. Wenn eine Bitebene eines Frequenzbandes kodiert wird (mögli
cherweise Teil eines Wichtigkeitsniveaus), bestimmt das erste ausgegebene Bit des
Kontextmodells, ob oder ob nicht die gesamte Bitebene dieselbe ist. Falls alle Bits
dieselben sind, dann wird ein Eins-Bit zu dem Entropiekodierer geliefert; ansonsten wird
ein Null-Bit kodiert. Dann wird ein Eins-Bit zu dem Entropiekodierer geliefert, wobei
angezeigt wird, was das Eins-Bit ist: 0 oder 1. Es gibt einen separaten Kontext für ein
Frequenzband-Bitebenen-Vorhersehen und einen Kontext für den Wert des Bits. Der
Kodierer schreitet zu der nächsten Frequenzband-Bitebene fort.
Falls es nur zwei unterschiedliche Bits gibt, dann wird ein Eins-Bit zu dem Entropieko
dierer geliefert und die Bitebene wird kodiert, wie im folgenden beschrieben wird.
Bemerkenswert ist, daß eine Eins zu dem Entropiekodierer geliefert werden kann, selbst
wenn die Bitebene konstant ist. In diesem Fall wird die Bitebene kodiert, wie im
folgenden beschrieben wird. Dieses Bit, das das Vorhersehen signalisiert, ist für jede
Frequenzband-Bitebene erforderlich.
Dieses 16-Bit-Vorhersehen überprüft, ob die nächsten 16 Bits (in derselben Line bzw.
Zeile) alle dieselben sind; falls dem so ist, wird ein Null-Bit zu dem Entropiekodierer
geliefert. Dann wird eine Null oder eine Eins geliefert, um anzuzeigen, welchem Bit die
Bits glichen. Es gibt einen separaten Kontext für N-Bit-Vorhersehen. Falls am Ende
eines Frequenzbandes weniger als 16 Bits verbleiben, werden jene verbleibenden Bits
auf dieselbe Art und Weise behandelt. Falls all diese Bedingungen nicht wahr sind, wird
ein Eins-Bit zu dem Entropiekodierer geliefert.
Die Bits in dem Wichtigkeitsniveau werden in der Frequenzband-Reihenfolge, die oben
festgelegt ist, kodiert. Innerhalb jedes Frequenzbandes werden die Bits in Rasterordnung
kodiert. Das Kontextmodell hängt von acht Nachbarschaftspixeln innerhalb desselben
Frequenzbandes ab.
Ein Bit von jedem dieser Pixel bildet eine einzige Anzahl, die einen bestimmten Zustand
signalisiert, der ein Kontext genannt wird. Dieser Kontext wird zu dem FSM-Kodierer
geliefert und wird verwendet, um die Wahrscheinlichkeitsschätzung zum Kodieren zu
adaptieren. Die Information, die für diesen Kontext verwendet wird, ist kausal; sie ist
verfügbar zur Zeit des Dekodierens.
Die "Diamanten" bzw. Rauten von Fig. 36 werden in Tabelle 9 beschrieben.
Die Kodierboxen von Fig. 36 sind in Tabelle 10 beschrieben.
Die Nachbarschaftskoeffizienten, die zu dem Kontext beitragen, sind in Fig. 37 gezeigt,
und zwar jeder Beitrag des Bitwertes bei jedem Koeffizienten bei der aktuellen Bitebene.
Bemerkenswert ist, da jedes Frequenzband eine Unterabtastung der Originalbilder ist,
daß die in der Schablone verwendeten Pixel nicht unmittelbar zu dem Originalbild be
nachbart sein werden.
Die Fig. 21 zeigt eine Ausführungsform des Kodierprozesses der vorliegenden Erfin
dung. Nimmt man Bezug auf Fig. 21, so beginnt der Kodierprozeß damit, daß die
Verarbeitungslogik Eingangsdaten für eine Platte erfaßt (Verarbeitungsblock 2101).
Die Verarbeitungslogik bestimmt dann, ob ein binäres Kodieren durchgeführt werden
muß (Verarbeitungsblock 2102). Falls ein binäres Kodieren durchzuführen ist, schreitet
die Verarbeitung zu dem Verarbeitungsblock 2111 fort, wo die Verarbeitungslogik ein
Gray-Kodieren mit den Eingangsdaten durchführt, und jedes Bit eines jeden Koeffizien
ten mit einem Binärstil-Kontextmodell modelliert (Verarbeitungsblock 2112). Die
Verarbeitung schreitet zum Verarbeitungsblock 2108 fort.
Falls ein binäres Kodieren nicht durchgeführt wird, schreitet der Prozeß zum Ver
arbeitungsblock 2103 fort, wo die Verarbeitungslogik einen reversiblen Filter auf die
Daten anwendet. Nach der Anwendung des reversiblen Filters testet die Verarbeitungs
logik, ob es ein anderes pyramidales Niveau gibt, das gewünscht ist (Verarbeitungsblock
2104). Falls ein anderes pyramidales Niveau gewünscht ist, wendet die Verarbeitungs
logik den reversiblen Filter auf die LL-Koeffizienten an (Verarbeitungsblock 2105) und
die Verarbeitung kehrt zu einem Verarbeitungsblock 2104 zurück, wo der Test wie
derholt wird. Falls ein anderes Niveau der Zerlegung nicht erwünscht ist, schreitet der
Prozeß zum Verarbeitungsblock 2106 fort, wo die Verarbeitungslogik die Koeffizienten
in die Vorzeichen-Betrag-Form konvertiert. Danach modelliert die Verarbeitungslogik
jedes Bit eines jeden Koeffizienten mit dem Horizontal-Kontextmodell ("horizon context
model") (Verarbeitungsblock 2107) und der Prozeß schreitet zu dem Verarbeitungsblock
2108 fort.
Bei dem Verarbeitungsblock 2108 kodiert die Verarbeitungslogik jedes Bit eines jeden
Koeffizienten. Die Verarbeitungslogik überträgt dann alle kodierten Daten und speichert
sie (Verarbeitungsblock 2109).
Die Verarbeitungslogik testet dann, ob mehr Platten in dem Bild verwendet werden
(Verarbeitungsblock 2110). Falls mehr Platten in dem Bild verwendet werden, schaut die
Verarbeitungslogik zurück zu dem Verarbeitungsblock 2101 und der Prozeß wird
wiederholt; ansonsten endet der Prozeß.
Fig. 22 zeigt eine Ausführungsform des Dekodierprozesses der vorliegenden Erfindung.
Nimmt man Bezug auf Fig. 22, so beginnt der Prozeß durch Erfassen kodierter Daten
für eine Platte (Verarbeitungsblock 2201). Als nächstes entropie-dekodiert die Ver
arbeitungslogik die dekodierten Daten (Verarbeitungsblock 2202). Die Verarbeitungs
logik testet dann, ob die Daten einem binären Dekodieren unterzogen werden sollen
(Verarbeitungsblock 2203). Falls die Daten einem binären Dekodieren eines jeden Bits
unterzogen werden sollen, schreitet der Prozeß zum Verarbeitungsblock 2211 fort, wo
die Verarbeitungslogik jedes Bits eines jeden Koeffizienten mit einem Binärstil-Kon
textmodell modelliert und ein inverses Gray-Kodieren mit den Daten durchführt (Ver
arbeitungsblock 2212). Nach dem inversen Gray-Kodieren schreitet der Prozeß zu dem
Verarbeitungsblock 2209 fort.
Falls ein binäres Dekodieren nicht durchgeführt wird und der Prozeß zu dem Ver
arbeitungsblock 2204 fortschreitet, wo die Verarbeitungslogik jedes Bit eines jeden
Koeffizienten mit dem Kontextmodell modelliert, dann konvertiert die Verarbeitungs
logik jeden Koeffizienten in die geeignete Form zum Filtern (Verarbeitungsblock 2205)
und wendet einen reversiblen Filter auf den Koeffizienten an (Verarbeitungsblock 2206).
Nach dem Anwenden des reversiblen Filters testet die Verarbeitungslogik, ob es dort ein
anderes pyramidales Niveau gibt (Verarbeitungsblock 2207). Falls es ein anderes Niveau
der Zerlegung gibt, schreitet der Prozeß zum Verarbeitungsblock 2208 fort, wo die
Verarbeitungslogik einen reversiblen Filter auf den Koeffizienten anwendet und der
Prozeß zum Verarbeitungsblock 2207 zurückkehrt. Falls ein anderes Niveau der Zerle
gung nicht erforderlich ist, dann schreitet der Prozeß zum Verarbeitungsblock 2209, wo
die rekonstruierten Daten entweder übertragen oder gespeichert werden.
Als nächstes testet die Verarbeitungslogik, ob es mehr Platten in dem Bild gibt (Ver
arbeitungsblock 2210). Falls es mehr Platten in dem Bild gibt, kehrt die Verarbeitungs
schleife zurück zu dem Verarbeitungsblock 2201 und dann wird der Prozeß wiederholt;
ansonsten endet der Prozeß.
Bei einer Ausführungsform wird die gesamte Entropiekodierung, die durch die vorlie
gende Erfindung durchgeführt wird, durch binäre Entropiekodierer durchgeführt. Bei
einer Ausführungsform umfaßt der Entropiekodierer 104 entweder einen Q-Kodierer,
einen QM-Kodierer, einen FSM-Kodierer oder einen Hochgeschwindigkeits-Parallelko
dierer usw. Ein einzelner Kodierer kann verwendet werden, um einen einzigen Aus
gabe-Kodestrom zu erzeugen. Alternativ können mehrere (physikalische oder virtuelle) Ko
dierer verwendet werden, um mehrere (physikalische oder virtuelle) Datenströme zu
erzeugen.
Bei einer Ausführungsform umfaßt der binäre Entropiekodierer der vorliegenden Erfin
dung einen Q-Kodierer. Hinsichtlich weiterer Information über Q-Kodierer wird auf
Pennebaker, W.B., et al. "An Overview of the Basic Principles of the Q-Coder Adapti
ve Binary Arithinetic", IBM Journal of Research and Development, Band 32, Seiten
717-26, 1988, verwiesen. Bei einer alternativen Ausführungsform verwendet ein binärer
Entropiekodierer einen QM-Kodierer, der gut bekannt ist und ein effizienter binärer
Entropiekodierer ist. Er ist besonders effizient bei Bits, die einen sehr hohen Wahr
scheinlichkeitsversatz bzw. sehr hohe Wahrscheinlichkeitsasymmetrie ("probability
skew") aufweisen. Der QM-Kodierer wird sowohl bei dem JPEG- Standard als auch bei
dem JBIG-Standard verwendet.
Der binäre Entropiekodierer kann einen FSM-Kodierer umfassen. Ein derartiger Kodierer
stellt eine einfache Konversion von einer Wahrscheinlichkeit und einem Resultat in
einem komprimierten Bitstrom bereit. Bei einer Ausführungsform wird ein FSM-Kodie
rer realisiert, indem Nachschlagtabellen sowohl für den Dekoder als auch für den
Kodierer verwendet werden. Eine Vielfalt von Wahrscheinlichkeitsschätzverfahren kann
mit einem derartigen FSM-Kodierer verwendet werden. Die Kompression ist für Wahr
scheinlichkeiten exzellent, die nahe bei 0,5 liegen. Eine Kompression für stark asymme
trische Wahrscheinlichkeiten hängt von der Größe der verwendeten Nachschlagtabelle
ab. Ähnlich wie beim QM-Kodierer ist es bei eingebetteten Bitströmen nützlich, da die
Entscheidungen in der Reihenfolge des Auftretens kodiert werden. Es gibt keine Mög
lichkeit für "Übertrags"-Probleme, da die Ausgaben durch eine Nachschlagtabelle
festgelegt sind. Tatsächlich gibt es eine maximale Verzögerung zwischen Kodieren und
der Produktion eines komprimierten Ausgabebits, anders als bei den Q- und QM-Kodie
rern. Bei einer Ausführungsform umfaßt der FSM-Kodierer der vorliegenden Erfindung
einen B-Kodierer, der im US-Patent Nr. 5,272,478 mit dem Titel "Method and Appara
tus for Entropy Coding", herausgegeben am 21. Dezember 1993, beschrieben ist. Bei
einer anderen Ausführungsform umfaßt der FSM-Kodierer einen Kodierer, der im
US-Patent Nr. 08/719,819 beschrieben ist, das den Titel trägt "Apparatus and Method for
Performing M-ARY Finite State Machine Entropy Encoding", die am 26. September
1996 eingereicht wurde.
Bei einer Ausführungsform umfaßt der binäre Entropiekodierer der vorliegenden Erfin
dung einen Hochgeschwindigkeits-Parallelkodierer. Sowohl der QM-Kodierer als auch
der FSM-Kodierer erfordert, daß ein Bit gleichzeitig kodiert oder dekodiert wird. Der
Hochgeschwindigkeits-Parallelkodierer handhabt verschiedene Bits parallel. Bei einer
Ausführungsform wird der Hochgeschwindigkeits-Parallelkodierer in einer VLSI-Hard
ware oder durch Multiprozessor-Computer realisiert, ohne die Kompressionsleistungs
fähigkeit zu opfern. Eine Ausführungsform eines Hochgeschwindigkeits-Parallelkodie
rers, der bei der vorliegenden Erfindung verwendet werden kann, ist im US-Patent Nr.
5,381,145 beschrieben, das den Titel trägt "Method and Apparatus for parallel Decoding
and Encoding of Data", herausgegeben am 10. Januar 1995.
Die effizientesten binären Entropiekodierer sind in ihrer Geschwindigkeit durch fun
damentale Rückkopplungsschleifen beschränkt. Eine mögliche Lösung ist es, den
hereinkommenden Datenstrom in mehrere Ströme aufzuteilen und diese zu parallelen
Kodierern zuzuführen. Die Ausgabe der Kodierer sind mehrere Ströme von kodierten
Daten variabler Länge. Ein Problem bei dieser Art von Lösungsansatz ist es, wie die
Daten auf einem einzigen Kanal zu übertragen sind. Der Hochgeschwindigkeits-Par
allelkodierer, der im US-Patent Nr. 5,381,145 beschrieben ist, löst dieses Problem mit
einem Verfahren des Überlappens dieser kodierten Datenströme.
Viele der verwendeten Kontexte in der vorliegenden Erfindung stellen fixierte Wahr
scheinlichkeiten dar, die einen FSM-Kodierer, wie z. B. den B-Kodierer, besonders
nützlich machen. Bemerkenswert ist, daß, wenn ein System, das Wahrscheinlichkeiten
nahe bei 0,5 verwendet, beide Hochgeschwindigkeits-Parallelkodierer, die oben erwähnt
wurden, und der FSM-Kodierer effizienter arbeiten als der Q-Kodierer. Somit haben
beide einen potentiellen Kompressionsvorteil mit dem Kontextmodell der vorliegenden
Erfindung.
Bei einer anderen Ausführungsform werden sowohl ein binärer Entropiekodierer als auch
ein schneller M-ARY-Kodierer verwendet. Der schnelle M-ARY-Kodierer kann ein
Huffman-Kodierer sein.
Nachdem die Koeffizienten quantisiert worden sind, gibt es einen Zahlenbereich in
nerhalb der legitimen Rekonstruktionswerte. In einem derartigen Fall sind die Bits
unterer Ordnung (oder untere Bits) eines Koeffizienten typischerweise unbekannt und
Bitwerte für diese Bits unterer Ordnung müssen zugewiesen werden. Bei einer Aus
führungsform führt die vorliegende Erfindung eine verlustbehaftete Rekonstruktion der
quantisierten Werte durch, indem Werte zu einem vorbestimmten Satz von ganzzahligen
Werten abgeschnitten bzw. gerundet werden. Zum Beispiel werden bei einer Aus
führungsform alle Koeffizienten zwischen 0 und 31 auf 0 quantisiert, alle Koeffizienten
zwischen 32 und 63 werden auf 32 quantisiert usw. Somit werden in diesem Fall alle
unbekannten Bits der Koeffizienten durch alle Nullen ersetzt. Fig. 23 erläutert typische
Verteilungen von Koeffizienten ohne Quantisierung.
Bei einer anderen Ausführungsform kann ein Wert in der Mitte eines jeden Bereichs
einen genaueren Wert bereitstellen, um die Gruppe der Koeffizienten darzustellen. Zum
Beispiel werden alle Koeffizienten zwischen 64 und 127 auf 96 quantisiert (oder alterna
tiv 95). Der Punkt, auf den die Werte quantisiert werden, wird als Rekonstruktionspunkt
bezeichnet.
Bei noch einer anderen Ausführungsform kann der Wert 0,375 (3/8) von der unteren
Grenze eines jeden Bereichs verwendet werden. Zum Beispiel weisen alle Koeffizienten
zwischen 64 und 127 einen Rekonstruktionspunkt von 88 auf. Jeder Wert kann ausge
wählt werden, und zwar basierend auf dem spezifischen Bild bzw. den spezifischen
Bildern, der Verteilung von Daten, dem gewünschten Ergebnis oder anderen Kriterien.
Aufgrund der Differenz zwischen den Bildern können die sich ergebenden Verteilungen
versetzte bzw. asymmetrische Gestalten aufweisen. Man vergleiche z. B. die Kurven 2701
und 2702 in Fig. 23.
Bei der vorliegenden Erfindung wird der Rekonstruktionspunkt basierend auf der
Verteilung ausgewählt. Bei einer Ausführungsform wird die Verteilung geschätzt und
basierend auf dieser Schätzung wird ein Rekonstruktionspunkt ausgewählt. Die Schät
zung wird basierend auf den Daten, die bereits bekannt sind, erzeugt. Bei einer Aus
führungsform kann ein Histogramm von quantisierten Koeffizienten verwendet werden,
um die Vorhersage durchzuführen.
Die Varianz in der Verteilung kann während des Kodierens bestimmt werden. Indem
diese Varianz dem Kodierer während des Dekodierens bereitgestellt wird, kann eine
bessere Vorhersage zum Auswählen eines Rekonstruktionswertes durchgeführt werden.
Eine einzelne Varianz kann für alle quantisierten Koeffizienten in einem Frequenzband
verwendet werden. Bei einer Ausführungsform wird die Varianz dem Dekoder signali
siert. Ein derartiges Signalisieren kann durch ein separates Signal oder durch Bereit
stellen der Varianz in einer Kennung, wie z. B. einer Kommentarkennung, erfolgen.
Bemerkenswert ist, daß die Auswahl des Rekonstruktionspunktes Rauschen in die Nicht-
Null-Koeffizienten einführen kann. In Abhängigkeit davon, welcher Rekonstruktions
punkt ausgewählt wird, kann eine unterschiedliche Energiemenge in das Bild eingeführt
bzw. injiziert werden. Bei einer Ausführungsform werden unterschiedliche Rekon
struktionspunkte für unterschiedliche pyramidale Niveaus oder unterschiedliche Unter
bänder verwendet.
Bei einer Ausführungsform kann vor dem Sammeln von Daten ein vorgegebener Rekon
struktionspunkt bzw. Default-Rekonstruktionspunkt verwendet werden. Somit liefert die
vorgegebene Erfindung ein adaptives Verfahren zum Durchführen einer verlustbehafteten
Rekonstruktion. Weiter stellt die vorliegende Erfindung ein nicht-iteratives Verfahren
zum Verbessern der Koeffizientenrekonstruktion dar.
Um die nicht-gleichmäßige Verwendung des numerischen Bereiches aufgrund unter
schiedlicher Verteilungen auszugleichen, stellt die vorliegende Erfindung folgendes
bereit:
s2 = Abtastvarianz
Q = Quantisierung
Q = Quantisierung
worin s2 die Abtastvarianz ist, die durch den Dekoder gemessen wird, und zwar basie
rend auf den verfügbaren Daten, und Q die Quantisierung ist, die dem Dekoder bekannt
ist. Dann werden Nicht-Null-Koeffizienten korrigiert, indem sie von 0 wegbewegt
werden.
wobei i einer ganzen Zahl gleicht.
Bei einer Ausführungsform, nachdem das gesamte Dekodieren vollendet ist, wird jeder
Koeffizient ungleich Null auf ein Rekonstruktionsniveau eingestellt. Dies erfordert das
Lesen und vielleicht Modifizieren und Schreiben eines jeden Koeffizienten.
Bei einer Ausführungsform wird, da jede Bitebene eines jeden Koeffizienten verarbeitet
wird, falls der Koeffizient nicht Null ist, der geeignete Rekonstruktionswert des Koeffi
zienten gespeichert. Wenn das Dekodieren stoppt, sind bereits alle Koeffizienten auf
ihren korrekten Rekonstruktionswert eingestellt. Dies beseitigt das Erfordernis nach
einem separaten Durchlauf durch den Speicher, um Rekonstruktionsniveaus einzustellen.
Die vorliegende Erfindung stellt die Injektion von Rauschen in die Daten bereit, die
dekodiert werden. Bei einer Ausführungsform handelt es sich bei den dekodierten Daten
um Bilddaten, die quantisiert worden sind. Bei einer Ausführungsform umfassen die
quantisierten Bilddaten quantisierte Koeffizienten. Die Quantisierung von Waveletkoeffi
zienten ist für eine Tiefpaß-Operation wesentlich. Zum Beispiel können die Daten
quantifiziert werden, wenn nur ein Teil der Daten dekodiert wird. Die Durchführung
einer Tiefpaßfilterung mit den Bilddaten ist akzeptabel, es sei denn, eine Struktur wird
zerstört. Das Gefühl bzw. das Erscheinungsbild dieser Struktur kann durch das Injizieren
von Rauschen wieder eingefangen werden. Deswegen injiziert die vorliegenden Erfin
dung Rauschen in ein Bild als Funktion der Quantisierung.
Bei einer Ausführungsform wird Rauschen in das Bild injiziert, indem nur die null
quantisierten Koeffizienten verwendet werden. Ein Zufallswert kann zu den null-quanti
sierten Koeffizienten addiert bzw. zugegeben werden. Der null-quantisierte Koeffizient
kann als eine Reihe von Null-Bits dargestellt werden, denen eine gewisse Anzahl
unbekannter Bits folgt. Diese unbekannten Bits werden durch die Addition von zufäl
ligen Werten wiedergewonnen. Falls es sich dabei um vier Bits unbekannter Daten
handelt, können sie mit einer Zahl von 0 bis 15 ersetzt werden. Je höher die Zahl, desto
größer das Rauschen. Die unbekannten Bits sind Betragsbits. Das Vorzeichenbit kann
ebenfalls zufällig gewählt werden, was zu Koeffizienten zwischen -15 und 15 führt.
Bemerkenswert ist, daß das addierte Rauschen bei den
Niveau-1-Transformations-DD-Koeffizienten
nur 4-Pixelwerte aufgrund der reversiblen Wavelettransformation der
vorliegenden Erfindung beeinflußt. Deshalb verursacht das Ergebnis der Rauschinjektion
keine merklichen Artifakte hinsichtlich der Nachbarschaftspixel.
Bei einer Ausführungsform wird Rauschen in einen jeden der null-quantisierten Koeffi
zienten injiziert. Zum Beispiel kann Rauschen nur in die Pyramidalniveau-1-DD-Koeffi
zienten injiziert werden. Bei einer anderen Ausführungsform wird Rauschen nur in die
Pyramidalniveau-1-DS- und SD-Koeffizienten injiziert.
Bei einer alternativen Ausführungsform ist das Rauschen eine Funktion des Rauschens
im Originalbild. Um Rauschen als eine Funktion des Rauschens in dem Originalbild zu
injizieren, wird das Rauschen in dem Originalbild quantifiziert und dem Dekoder
bereitgestellt. Bei einer Ausführungsform wird ein räumlicher Plan hergestellt, der die
Energieverteilung zeigt. Bei einer Ausführungsform werden die Verteilung, die Am
plitude und die Abweichung des Rauschens in dem Originalbild dem Dekoder signali
siert. Diese Information kann zu dem Dekoder signalisiert werden, indem eine Kennung
in dem Kodestrom verwendet wird und indem separate Signale oder ein separater
Informationspfad verwendet werden.
Bei einer alternativen Ausführungsform kann eine Alpha-Ebene hergestellt werden, die
zeigt, wo das Rauschen plaziert werden sollte. Die Alpha-Ebene kann in einer ähnlichen
Art und Weise verwendet werden wie eine Blending-Ebene bzw. Misch-Ebene, wo die
Ebene unterschiedliche Stellen in dem Bild anzeigt, wo unterschiedliche Rauschmengen
zu injizieren sind. Das heißt bei einer anderen Stelle (z. B. Bereich) kann die Ebene
Rauschen eines ersten zu injizierenden Typs spezifizieren, während eine andere Stelle in
der Alpha-Ebene anzeigen kann, daß eine unterschiedliche Menge an Rauschen zu
injizieren ist.
Das Rauschen, das zugegeben wird, kann auf einer Verteilung von Werten innerhalb des
Bereichs, der Null umgibt, basieren. Falls die Verteilung der Werte versetzt ist oder
nicht um den Nullwert zentriert ist, kann es sein, daß ein systematischer Fehler bzw. ein
Offset neben dem Rauschen zu addieren (oder subtrahieren) ist.
Die Zwei-Zehn-Transformation erlaubt gewisse Vorteile bei der Rekonstruktion nach
verlustbehafteter Kompression. Zur Re-Iteration wird die Zwei-Zehn-Transformation wie
folgt definiert:
Bei einer Ausführungsform wird zur verlustbehafteten Kompression D quantisiert. Zum
Erzeugen von bevorzugten Rekonstruktionen werden in manchen Fällen D-Werte direkt
berechnet. In anderen Fällen wird ein bevorzugter B-Wert bestimmt, der dann in einen
D-Wert konvertiert wird, indem P verwendet wird, falls nötig.
Fig. 24 zeigt ein Verfahren zum Berechnen der inversen TT-Transformation, das nütz
lich ist, wenn eine adaptive Waveletkoeffizientenrekonstruktion verwendet wird. Die
Ausgabe eines jeden von zwei Durchläufen stellen S-Koeffizienten dar. Bei einer
Ausführungsform sind die S-Koeffizienten Abtastungen von Bildern (Pixel-Komponen
ten). Bei einer alternativen Ausführungsform sind die S-Koeffizienten Mittelungen von
mehreren Abtastungen des Bildes ("Super-Pixel-Komponenten"). Die S-Komponenten
können als Bilddaten in der räumlichen Domäne behandelt werden, womit es erlaubt
wird, bevorzugte Rekonstruktionen zu erzeugen.
Bevorzugte Rekonstruktionen basieren auf einem Bildmodell. Ein Bildmodell kann
scharfe Kanten und glatte Bereiche, wo es keine Kanten gibt, bereitstellen. Ein Bildmo
dell kann eine Strukturinformation bereitstellen. Ein Bildmodell kann bildabhängig sein
oder beschrieben werden mit dem Komprimierten hinsichtlich eines spezifischen Bildes.
Bildmodelle werden unten beschrieben. Die Verwendung der Zwei-Durchgangs-Invers
transformation der vorliegenden Erfindung reduziert das Bedürfnis, Zwischenergebnisse
zu sichern, um die Transformation zu berechnen und Quantisierungsgrenzen zu be
stimmen. Mit anderen Worten müssen die SS- und SD-Koeffizienten, die bei dem ersten
Durchlauf gebraucht bzw. verbraucht werden, nicht gesichert oder gespeichert zu
werden.
Nimmt man Bezug auf Fig. 24, so beginnt der Zwei-Durchgangs-Inverstransformations
prozeß der vorliegenden Erfindung mit dem ersten Durchgang, Durchgang 1, der die
inverse vertikale Transformation mit den SS- und SD-Koeffizienten alleine durchführt.
Die Quantisierung eines jeden SD-Koeffizienten steuert die Rekonstruktionsgrenzen von
zwei Abtastungen. Der zweite Durchgang, Durchgang 2, wirkt auf zwei Zeilen bzw.
Linien von Koeffizienten gleichzeitig und übt die inverse vertikale Transformation auf
DS- und DD-Koeffizienten und die inverse horizontale Transformation auf zwei vertikal
benachbarte S- und D-Koeffizientenpaare aus. Der zweite Durchlauf schreitet fort, bis
alle Zeilen der Daten die zwei inversen Transformationsoperationen des zweiten Durch
laufs durchlaufen sind. Bemerkenswert ist, daß die Quantisierung der DS- und
DD-Koeffizienten die Rekonstruktionsgrenzen der vier Abtastungen steuert. Ebenso dienen
hinsichtlich des zweiten Durchlaufes die DS-Koeffizienten von den zwei oberen Zeilen
bzw. Linien der Berechnung der vertikalen Inverstransformation, angewendet auf
DS- und DD-Koeffizienten.
Eine Ausführungsform eines Verfahrens zum Erzeugen einer bevorzugten Rekonstruk
tion ist wie folgt:
Der erste Schritt der Analyse der Koeffizienten wird verwendet, wenn die bevorzugte
Rekonstruktion von den Koeffizienten geschätzt wird. Ein Beispiel dafür wird in Verbin
dung mit der Kantenextraktion im folgenden diskutiert.
Das Stutzen bzw. Abschneiden (im folgenden auch "Clipping" genannt) ist eine Opera
tion, bei der ein bestimmter Wert auf einen Wert in einem Bereich (oder einen der
Endpunkte des Bereichs) gesetzt wird, wenn der Wert außerhalb des Bereichs liegt.
Clipping ist notwendig, um zu gewährleisten, daß das rekonstruierte Bild zu denselben
quantisierten Koeffizienten führt, wie in den kodierten Daten spezifiziert. Für einen
gegebenen quantisierten Koeffizientenwert D, der Q-Bits hat, die für die Quantisierung
unbekannt sind, bestimmt die vorliegende Erfindung die minimal und maximal mögli
chen Werte von D, die verwendet werden, um die bevorzugten Rekonstruktionen
abzuschneiden bzw. zu clippen, wenn notwendig. Bei einer Ausführungsform kann der
folgende Kode verwendet werden, um die minimalen und maximalen Werte zu be
rechnen ("void" steht für Leerstelle; "twoten" für "zwei-zehn")
Bei dem obigen beispielhaften Kode bezeichnet "&" die logische UNDierungsoperation
und der | bezeichnet ein logisches Oder. Zum Clippen bzw. Abschneiden der D-Werte
kann die Clipping-Routine "clip", die im folgenden beschrieben ist, verwendet werden.
Die "clip"-Routine ist nützlich für SD und DS. Bei einer Ausführungsform kann die
beschrieben "clip"-Routine ebenso für DD-Koeffizienten verwendet werden; jedoch kann
bei einer alternativen Ausführungsform eine Routine, wie z. B. "clip_loose"
("clip_locker"), besser sein, um es gewissen Versetzt-um-eins-Fehlern zu erlauben, das
unabhängige Clipping in Beziehung stehender DS- und DD-Werte auszugleichen.
Bemerkenswert ist, daß die clip_loose-Routine die "clip"-Routine aufruft. Der
"Flat"-Parameter ("Flach-Parameter") ist der Wert von D, der dazu führt, daß beide Abtastun
gen identisch rekonstruiert werden, das heißt es ist der "P"-Abschnitt der TT-Trans
formation. Aufgrund eines unterschiedlichen Ganzzahl-Rundens sind
Versetzt-um-eins-Fehler erlaubt, die dazu führen, daß beide Abtastungen identisch rekonstruiert werden.
Im folgenden steht "twoten" für "Zwei-Zehn".
Für DS- und DD-Werte werden bevorzugten Rekonstruktionswerte üblicherweise als ein
Paar von "d"-Werten bestimmt. Die "do_clip_pair"-Routine ("tue_clip_Paar"-Routine),
die unten beschrieben ist, schneidet zwei D-Werte ab bzw. clippt zwei D-Werte "a" und
"b", was zu einem "a_clip" und einem "b_clip" führt. Bemerkenswert ist, daß diese
Routine die clip-loose-Routine aufruft.
Eine Ausführungsform der inverse_calc0- und inverse_calc1-Routinen lautet wie folgt:
Bemerkenswert ist, daß eine dieser Routinen für die geraden Abtastungen und eine für
die ungeraden Abtastungen dient.
Die vorliegende Erfindung erzeugt bevorzugte Rekonstruktionen, um Plattengrenzen zu
eliminieren. Die vorliegende Erfindung erzeugt bevorzugte Rekonstruktionen, indem
Information von den Nachbarschaftsplatten verwendet wird, um eine Rekonstruktion zu
erzeugen, die konsistent mit der Durchführung der Transformation ohne Plattengrenzen
sein würde.
Bei einer Ausführungsform mit der bevorzugten Rekonstruktion wird die Vorwärtstrans
formation unabhängig mit jeder Platte durchgeführt. Während des Dekodierens ist es die
Wahl eines Benutzers/einer Anwendung, zu entscheiden, ob dekodiert und eine inverse
Transformation unabhängig rekonstruiert wird oder nicht.
Das TT-Transformationswavelet erlaubt, daß eine Rekonstruktion die Vorteile einer
überlappten Transformation aufrechterhält, selbst wenn Platten eines Bildes unabhängig
transformiert werden. Wenn die TT-Transformation unabhängig mit Platten eines Bildes
durchgeführt wird, können die Grenz-Artifakte leicht entfernt werden.
Die Platten-Grenzen-Artifakte ("tile boundary artifacts") können leicht von TT-Trans
formationskoeffizienten aus den folgenden Gründen beseitigt werden. Der TT-Tiefpaßfil
ter ist durch die Grenzen unbeeinflußt, wenn es eine ungerade Anzahl von Abtastungen
gibt, was zu genauen S-Koeffizienten führt. Die D-Koeffizienten, die durch Grenzen
beeinflußt sind, haben nur einen begrenzten räumlichen Effekt. Bemerkenswert ist, daß
eine Glätte so festgelegt ist, daß sie eine Null-Hochpaßfilter-Antwort hat, wenn der
Filter angewendet wird, während die Grenze überschritten wird bzw. gekreuzt wird.
Deshalb kann ein Glätten leicht in der Transformationsdomäne durchgeführt werden und
leicht auf den Umfang beschränkt werden, der durch Quantisierung erlaubt ist.
Bei einer Ausführungsform beseitigt die vorliegende Erfindung Platten-Artifakte, indem
vor jeder Anwendung der Transformation rekonstruiert wird. Ein beispielhafter Kode
zum Beseitigen von Platten-Artifakten lautet wie folgt:
Der P-Abschnitt des inversen TS-Filters, der eine Funktion von S-Koeffizienten ist,
lautet wie folgt:
P=(3S-2 - 22 S-1 + 22 S1 - 3 S2 + 32)/64.
Fig. 25 zeigt die Gewichte, die zur Berechnung von Pf über die Plattengrenzen verwen
det werden (voller Rahmen bzw. Vollbild). Fig. 26 zeigt die Gewichte, die zur Be
rechnung von Pt auf einer einzigen Plattengrenze mit Spiegeln verwendet werden. Die
Platten-Grenzen-Artifakte werden durch den Unterschied zwischen Pt und Pf verursacht.
Indem D= -(Pf-Pt) verwendet wird, wird ein glattes Ergebnis erhalten, das mit den aktuell
quantisierten Koeffizienten konsistent sein muß.
Der SD-Koeffizient kann konsistent mit der Quantisierung gemacht werden, da die
Quantisierung bekannt ist. Als erstes bestimmt die vorliegende Erfindung die minimal
und maximal erlaubten Werte von dem quantisierten SD-Wert, vorausgesetzt, daß die
Anzahl der bitebenen-quantisierten Q-Bits unbekannt sind. Wie oben beschrieben wurde,
können die minimalen und maximalen Werte gemäß dem folgenden Kode bestimmt
werden:
Die MIN- und MAX-Werte werden verwendet, um das Ergebnis zu clippen, das von der
Berechnung -(Pf-Pt) erhalten wurde. Im folgenden steht SMOOTH für "glatt".
Die Quantisierung von DS- und DD-Koeffizienten wird durch die vertikale Trans
formation fortgepflanzt bzw. übertragen. Deshalb ist die Handhabung der horizontalen
Transformation etwas komplizierter. Um dies so durchzuführen, werden ein Paar von
Linien, die mit "a" und "b" bezeichnet sind, die DS- und DD-Koeffizienten sich teilen,
zu einer Zeit bzw. gleichzeitig betrachtet. Diese DS- und DD-Werte werden vor der
inversen vertikalen Transformation gesichert; deshalb sind sie immer noch verfügbar.
Die Werte nach der Transformation lauten DA und DB. Die minimalen und maximalen
Werte für DS und DD (MIN_DS, MIN_DD, MAX_DS, MAX_DD) werden auf dieselbe
Art und Weise wie die DS-Minimum- und -Maximumwerte berechnet.
Für Bilder, die keine Hochfrequenzinformation enthalten (alle Koeffizienten, außer den
SS-Koeffizienten sind Null), gleicht die Rekonstruktion für jedes Plattieren ("tiling")
(mit einer gleichen Anzahl von Abtastungen für jedes pyramidale Niveau) jener für
einen vollen Rahmen ("full frame") bzw. für ein Vollbild.
Weil die Rekonstruktion nur eine kleine Anzahl von Gesamtkoeffizienten für vernünftige
Platten beeinflußt, ist weder der Berechnungsaufwand noch der Speicheraufwand sehr
hoch. Jedoch gibt es eine Anzahl von Vereinfachungen, die durchgeführt werden
können, um diese Kosten zu reduzieren. Fig. 27 erläuterte Gewichte zum ungefähren Be
rechnen von Pf-Pt. Versetzt-um-eins-Fehler aufgrund eines unterschiedlichen Ganz
zahl-Rundens verhindern das Erreichen des exakt selben Ergebnisses als Vollbild bzw.
Vollrahmen bei Bildern mit hoher Frequenz, sollten aber bei praktischen Anwendungen
keinen Unterschied machen. Eine andere potentielle Vereinfachung ist es, alle S-Koeffi
zienten in anderen Platten mit SS-Koeffizienten anzunähern, um den Speichergebrauch
zu reduzieren.
Weil der TT-Filter verlustfrei ist, kann eine Platten-Artifakt-Entfernung als eine
Post-Verarbeitung durchgeführt werden. Ein Bild kann dekomprimiert werden ohne eine
Platten-Artifakt-Entfernungskonstruktion. Die Stelle der Plattengrenzen und die Quanti
sierung werden zur späteren Verwendung gesichert. Wenn ein Bild ohne Platten-Artifka
te gewünscht wird, kann das Bild transformiert werden und dann kann es unter Verwen
dung der Information über die Plattenstellen und die Quantisierung ohne Platten-Artifak
te rekonstruiert werden.
Bei manchen Systemen ist die Vereinfachung des Dekodierens wichtig. Der Umfang der
Information von benachbarten Platten, der für eine bevorzugte Rekonstruktion benötigt
wird, ist gering. Diese Information könnte in einem Kommentar mit den kodierten Daten
für jede Platte gespeichert werden, wobei es ermöglicht wird, jede Platte unabhängig zu
dekodieren. Ebenso gibt es kein Erfordernis, daß einem jeden Koeffizienten eine bevor
zugte Rekonstruktion gegeben wird. Bei einer Ausführungsform können nur solchen
Koeffizienten, die in gewissen Transformationsniveaus sind, oder solchen, die auf Null
quantisiert sind, bevorzugte Rekonstruktionen gegeben werden.
Die vorliegende Erfindung erlaubt die Rekonstruktion von Stufenkanten, indem eine
vorbestimmte Anzahl von Koeffizienten verwendet wird. Bei einer Ausführungsform
werden nur S-Koeffizienten verwendet und die vorbestimmte Anzahl ist 5. Fig. 28A und
28B zeigen Beispielsätze von fünf S-Koeffizienten, wobei eine Rekonstruktion zu
linearen (glatten) oder Stufenkanten jeweils passend ist. Die durchgehenden Linien
zeigen die Stufengröße der bevorzugten Rekonstruktion.
Bei einer Ausführungsform ist der Prozeß zum Bestimmen, ob eine lineare Rekon
struktion oder eine Stufenkanten-Rekonstruktion durchzuführen ist, wie folgt. Bemer
kenswert ist, daß in dem Prozeß ein "B"-Wert, die Differenz zwischen zwei Abtastun
gen, berechnet wird und der Koeffizient D gleich der Summe B+P ist.
Die vorliegende Erfindung versucht eine Stufenkante zu rekonstruieren, wo das Bild
nicht flach ist. Bei einer Ausführungsform rekonstruiert, falls der minimale und maxima
le S-Wert sich um weniger als 10 unterscheiden, die vorliegende Erfindung nicht eine
Stufenkante. Bemerkenswert ist, daß bei einer alternativen Ausführungsform eine
Schwelle von 10 nicht verwendet werden muß und eine unterschiedliche Schwelle
verwendet werden kann.
Bei der Rekonstruktion einer Stufenkante berechnet die vorliegende Erfindung die
Rekonstruktion B, indem die linken drei S-Werte verwendet werden, die als "LEFT"
("LINKS") bezeichnet werden, und die Rekonstruktion B, indem die rechten drei
S-Werte verwendet werden, die als "RIGHT" ("RECHTS") bezeichnet werden. Falls
entweder die LEFT- oder die RIGHT-Berechnung Null ist, dann rekonstruiert die vor
liegende Erfindung, indem B=Null verwendet wird und bricht ab.
Falls sowohl die LEFT- als auch die RIGHT-Berechnung dasselbe Vorzeichen haben,
verwendet die vorliegende Erfindung die Rekonstruktion mit dem kleineren Betrag und
bricht ab. Falls ebenso die LEFT- und die RIGHT-Berechnung sich im Vorzeichen
unterscheiden, dann bricht die vorliegende Erfindung ab und eine typische Rekon
struktion wird verwendet.
Bei einer Ausführungsform der vorliegenden Erfindung wird die Berechnung der
Rekonstruktion B durchgeführt, indem zuerst die Unterschiede bestimmt werden. Die
Werte d Δa und Δb stellen Unterschiede zwischen dem äußeren und inneren Paar von
S-Werten dar. Beispiele sind in Fig. 28A und 28B gezeigt.
Die vorliegende Erfindung testet dann, ob | Δa | < | Δb |. Falls dem so ist, ändert die
vorliegende Erfindung Δa auf Δa = Δb.
Es gibt zwei Optionen, um den Fall zu handhaben, wenn Δa und Δb unterschiedliche
Vorzeichen haben. Die erste Option ist es, Δa = 0 festzulegen. Die erste Option führt
dazu, daß dieser Fall eine harte Kante impliziert. Die zweite Option wird auf Δa = Δb
festgelegt. Die zweite Option führt dazu, daß dieser Fall eine glatte (normale) Zwei-
Zehn-Transformations-Rekonstruktion impliziert.
Als nächstes setzt die vorliegende Erfindung x = Δa/Δb. Falls sich das Vorzeichen von
Δa und Δb unterscheiden, setzt die vorliegende Erfindung B = 2 Δb (1+x); ansonsten
setzt die vorliegende Erfindung B = 2 Δb (1-3/4x). Schließlich, hinsichtlich LEFT, gibt
die vorliegende Erfindung B zurück, während hinsichtlich RIGHT die vorliegende
Erfindung -B zurückgibt.
Hinsichtlich von Linien-Kunst bzw. Strichzeichnungen oder graphischen Bildern, wo alle
oder zumindest die meisten Kanten Stufenkanten sind, kann dieses Rekonstruktions
verfahren der vorliegenden Erfindung für alle Transformationsniveaus verwendet werden.
Hinsichtlich natürlicher Bilder kann diese Rekonstruktion nur für Hochfrequenz-Trans
formationsniveaus verwendet werden.
Das Ziel einer Rekonstruktion unter Verwendung angepaßter Filter ist es, keine Informa
tion von der anderen Seite der Kanten zu verwenden. Wenn eine Kante gefunden wird,
verwendet die vorliegende Erfindung eine symmetrische Ausdehnung auf die andere
Seite der Kante. Zum Beispiel lautet ein Satz von Filterkoeffizienten gemäß der vorlie
genden Erfindung, der in Abhängigkeit davon verwendet werden kann, ob oder ob nicht
eine Kante gefunden ist bzw. wurde, wie folgt:
Die vorliegende Erfindung kann die folgenden angepaßten Filter verwenden, um Kanten
in den Sätzen von fünf S-Koeffizienten zu finden. Die Reihenfolge dieser Filter ent
spricht den obigen Filtern.
Bei einer Ausführungsform wird ein Filterkoeffizientensatz mit einer Ausdehnung
verwendet falls:
- 1) Sein entsprechender angepaßter Filter die Minimum-Betragsantwort aufweist.
- 2) Die Antwortstärke seines entsprechenden angepaßten Filters geringer als ein Schwellenwert is. (zum Beispiel 48).
- 3) Für einen angepaßten Filter mit vier Abgriffen die Antwortstärke des entspre chenden angepaßten Filters mit drei Abgriffen ebenso kleiner als der Schwellen wert sein muß.
Die Rekonstruktion mit angepaßtem Filter gemäß der vorliegenden Erfindung kann auf
allen Frequenzniveaus oder bloß auf hohen Frequenzniveaus durchgeführt werden.
Ein Ziel der bevorzugten Rekonstruktion ist es, scharfe Kanten zu haben und ein
Überschwingen bzw. eine Bildverdopplung ("ringing") naher Kanten zu beseitigen. Bei
einer Ausführungsform identifiziert die vorliegende Erfindung, wo die Kanten bei einem
rekonstruierten Bild sind und verwendet dann Multiskaleninformation von unterschiedli
chen Ausmaßen bzw. Stärken einer Gauß-Glättung.
Eine Kantenextraktion verwendet eine Differenz einer Gauß-Technik, wie in Fig. 29
gezeigt ist. Um Kanten mit der Genauigkeit eines einzelnen Pixels zu lokalisieren, wird
kein Unterabtasten durchgeführt. Während jeglicher Typ von Tiefpaßfilter verwendet
werden könnte, sind trennbare horizontale und vertikale Filter hinsichtlich der Be
rechnungseffizienz vorteilhaft. Die Verwendung ungerader Filterlängen führt zu keiner
Phasenverschiebung. Eine gute Wahl stellen die folgenden Filterabgriffe (gefolgt von
einer Teilung durch 16) dar:
1 4 6 4 1
Bei der vorliegenden Erfindung subtrahiert der Kantentextraktionsprozeß anfänglich
Paare benachbarter Pixel (horizontal oder vertikal benachbart). Die vorliegende Erfin
dung sichert als potentielle Kantenstellen Differenzen mit einem Betrag, der größer ist
als wenigstens ein Nachbar in der Richtung der Differenz. Andere kleinere Differenzen
werden ignoriert. Ebenso werden Differenzen unterhalb eines Schwellenwertes (z. B. 8)
ignoriert.
Nimmt man Bezug auf Fig. 29, so umfaßt ein Tiefpaßfilter einen Tiefpaß-Horizontal-
Invers-Transformationsfilter und einen Tiefpaß-Vertikal-Transformationsfilter. Das
Ausgangssignal des Tiefpaßfilters 2902 wird als Eingangssignal für den Tiefpaßfilter in
der nächsten Auflösung verwendet. Die Filterausgaben werden durch die horizontale
Differenz 2903 verarbeitet und für das lokale Maximum 2905 verwendet, und durch die
vertikale Differenz 2904 verarbeitet und für das lokale Maximum 2906 verwendet.
Kantenstellen mit unterschiedlichen Auflösungen werden verglichen. Kantenstellen
(Ausgangssignale der lokalen Maximumeinheiten) werden gesichert, falls bei der nächst
höheren oder tieferen Auflösung die entsprechende Stelle oder eine ihrer vier Nachbarn
eine gesicherte Potentialkantenstelle mit demselben Vorzeichen ist. Reale Kanten
kommen bei demselben Platz mit unterschiedlichen Skalen bzw. Maßstäben vor und
Artifakte tun dies nicht (das heißt die Artifakte reihen sich nicht aneinander bzw.
gleichen sich nicht ab).
Die Lokalisierung von Kanten kann zur adaptiven Filterung verwendet werden, die
Kanten verhindert, während Überschwing-Artifakte bzw. "Ringing"-Artifakte verringert
werden. Ein Beispiel, dies zu realisieren, ist die Verwendung des Tiefpaßfilters mit fünf
Abgriffen, der im oberen Abschnitt beschrieben wurde, bei fünf Abtastfenstern mit
keiner Kante. Falls es eine Kante in der Mitte der fünf Abtastfenster gibt, wird die
Abtastung unverändert verwendet (keine Filterung). Falls es eine Kante oder mehrere
Kanten in anderen Positionen in dem Fenster gibt, werden nur die Abtastungen und
Abgriffe in der Mitte des Fensters, die die Kante oder die Kanten nicht enthalten oder
außerhalb der Kante bzw. der Kanten liegen, verwendet und der Teiler des Filters ist die
Summe der verwendeten Abgriffe. Mehrfache (z. B. 2) Iterationen des Filters können
verwendet werden. Dieser Filter neigt dazu, die Kanten zu schärfen. Die Pixel in der
Nähe der Kanten werden durch Pixel beeinflußt, die weiter weg von der Kante sind, was
zu der Neigung führt, einem vorhergehenden Verschmieren ("blurring") der Information
von der anderen Seite der Kante entgegenzuwirken.
Die vorliegende Erfindung erzeugt eine bevorzugte Rekonstruktion wie folgt. Zuerst
erzeugt die vorliegende Erfindung ein bevorzugtes Raumdomänenbild. Zum Beispiel
kann das adaptive Filterverfahren zum Kantenbewahren, das oben beschrieben wurde,
verwendet werden. Als nächstes führt die vorliegende Erfindung eine Teil-Wavelettrans
formation des bevorzugten Bildes durch. Die horizontale Transformation wird normal
durchgeführt. Nur die S-Ausgaben der horizontalen Transformation werden durch die
vertikale Transformation verarbeitet. Die D-Ausgaben der horizontalen Transformation
werden nicht verarbeitet. Siehe Fig. 30. Dann stutzt bzw. clippt die vorliegende Erfin
dung Koeffizienten von der Teil-Transformation auf den gültigen Bereich der quantifi
zierten Koeffizienten, um eine bevorzugte Rekonstruktion zu erzeugen.
Das bevorzugte Bild in der räumlichen Domäne kann in Bereichen aktualisiert werden,
wo Koeffizienten gestutzt bzw. geclippt sind, und der Prozeß kann, falls gewünscht,
iteriert werden.
Das Kanten-Auffindverfahren der vorliegenden Erfindung lokalisiert Kanten mit der
Genauigkeit eines einzigen Pixels. S- oder SS-Koeffizienten bei der inversen Wavelet
transformation entsprechen mehreren Pixeln. Die Anzahl der Pixel beträgt 22.Niveau-1 für
S-Koeffizienten und 22.Niveau für SS-Koeffizienten. Falls irgendeine der Pixelstellen, die
einem S- oder SS-Koeffizienten entspricht, eine Kante enthält, nimmt man an, daß dieser
Koeffizient eine Kante ist.
Für die S- oder SS-Koeffizienten in der Mitte eines Fünf-Abtast-Fensters für Zerlegungs
niveaus größer als 1 ist die Verwendung des vollen (2Niveau)(2Niveau) oder (2Niveau)
(2Niveau-1) Kanten-Suchbereichs nicht notwendigerweise wünschenswert. Die Detektion
einer Kante in der Mitte des Fensters, wenn sie wirklich auf der Grenze ist, kann die
Gelegenheit bzw. Möglichkeit zum Auffinden einer guten Rekonstruktion verringern.
Statt dessen kann ein kleinerer Suchbereich in der Richtung der Transformation verwendet
werden, wie z. B. (2Niveau-1.2Niveau) oder (2Niveau-1)(2Niveau-1) oder (2Niveau-2) (2Niveau-1)
Auch kann -1 für Niveau 2 und -2 für Niveaus größer als 2 verwendet werden.
Wenn einmal die S- oder die SS-Koeffizienten bekannt sind, die Kanten überdecken,
kann ein Spiegeln für jene Koeffizienten auf die eine oder die andere Seite der Kanten
verwendet werden.
Insbesondere bezüglich Rekonstruktionen, die versuchen, Kanten zu schärfen, ist das
Stutzen bzw. Clippen von Rekonstruktionen nützlich, so daß sie nicht die Grenzen
benachbarter S-Koeffizienten überschreiben, und es reduziert ein Überschwingen ("ring
ing"): Fig. 31 erläutert eine Clipping-Rekonstruktion. Bei einer Ausführungsform können
entweder die unmittelbaren Nachbarn der mittleren Abtastung verwendet werden oder
derjenige der zwei Nachbarn auf beiden Seiten, der hinsichtlich des Wertes zu der
mittleren Abtastung am nächsten ist.
Fig. 31 erläutert, daß ein Abfragewert-(z. B. Pixel-)Bereich des rekonstruierten Wertes
für den mittleren S-Koeffizienten den Wert des vierten S-Koeffizienten überschreitet. In
einem solchen Fall, falls der rekonstruierte Wert größer als die benachbarten Abtastun
gen ist, wie z. B. S-Koeffizient 4, wird sein Wert auf den Wert des benachbarten Pixels
gestutzt bzw. geclippt, z. B. S-Koeffizient 4. In ähnlicher Weise beinhaltet der mögliche
rekonstruierte Wert der mittleren Abtastung nicht den Wert des zweiten S-Koeffizienten,
der dem mittleren Pixel in Fig. 31 am nächsten ist. In einem solchen Fall kann der
mögliche Wert der mittleren Abtastung auf den Wert ausgedehnt werden, um der Wert
der genannten Abtastung zu sein, so daß ein Clippen bzw. Stutzen nicht angezeigt ist.
Bemerkenswert ist jedoch, daß in beiden Fällen eine Änderung einer Seite des erlaubten
Bereichs des rekonstruierten Wertes eine entsprechende Änderung auf der anderen Seite
des Bereichs verursacht. Zum Beispiel, falls der obere Bereich des rekonstruierten
Wertes der Abtastung gestutzt bzw. geclippt werden muß, um nicht größer zu sein als
der vierte Abfragewert, dann wird in ähnlicher Weise der Bereich unterhalb der mitt
leren Abtastung ebenso reduziert. Deshalb stellt auf diese Art und Weise die Erfindung
eine Clipping-Rekonstruktion bereit, die nicht die Grenzen benachbarter Koeffizienten
überschreitet und ein Überschwingen ("ringing") reduziert.
Wavelets können gut Kanten darstellen und Bereiche glätten. Eine Struktur ist schwierig
darzustellen, da sie sehr viele kleine Kanten darstellen muß. Es gibt viele Arten, eine
Struktur ("texture") darzustellen, diesbezüglich wird z. B. auf WP, K. Pratt, Digital Image
Processing, John Wiley and Sons, 1978, verwiesen. Die vorliegende Erfindung stellt eine
Darstellung einer Struktur bereit, die besser sein kann als das Strukturmodell, das bei
DCT-basierten Kompressionsverfahren, wie z. B. JPEG, inhärent ist. Sinusförmige Gitter
werden verwendet.
Um eine derartige Strukturextraktion zu ermöglichen, treten die folgenden Operationen
während des Kodierens auf. Die vorliegende Erfindung erzeugt ein Restbild, das eine
Struktur enthält, die nicht gut durch Wavelets dargestellt wird. Um dies zu erreichen,
erzeugt die vorliegende Erfindung ein rekonstruiertes Bild nach Quantisierung. Zum
Beispiel quantisiert die vorliegende Erfindung ein MSE-Wichtigkeitsniveau mehr als die
ungefähre Ziel- bzw. Soll-Kompression. Zweitens subtrahiert die vorliegende Erfindung
das quantisierte, rekonstruierte Bild von dem Originalbild. Dies ist das Restbild.
Als nächstes modelliert die vorliegende Erfindung die Struktur in dem Restbild. Eine Art
und Weise ist es, die 1D-Sinuskurve mit beliebiger Rotation in 2D und beliebiger Phase
und beliebiger Frequenz in 2D zu finden, die die größte Korrelation mit jedem
16×16-Block des Restbildes hat. Dann gibt die vorliegende Erfindung die Struktur
modell-Parameter als einen Kommentar in den komprimierten Datenstrom ab.
Bei dem obigen Prozeß stellt der wichtigste Schritt die Modellierung der Struktur dar.
Die Korrelation mit Sinuskurven ist hinsichtlich der Berechnung aufwendig. Eine
Auto-Korrelation wird verwendet, um den Suchraum für die Sinuskurven zu begrenzen. Die
2D-Auto-Korrelation wird für Blöcke für das Restbild berechnet, die halbe Periode einer
Sinuskurve entspricht einer negativen Auto-Korrelation (siehe Fig. 32). Nur der erste
Bereich einer negativen Korrelation um Null ist von Interesse.
Nach dem Bereich einer negativen Auto-Korrelation kann wie folgt für jede Ganz
zahl-Position xi, yi in dem Bereich gesucht werden. Die Schrittgröße (Schritt) kann 1/4 oder
1/8 betragen. Der Schwellenwert kann 4,75 betragen. Andere Schrittgrößen und Schwel
lenwerte können verwendet werden.
Der Wert von r beträgt die halbe Periode der Sinuskurve. Die Parameter x und 32916 00070 552 001000280000000200012000285913280500040 0002019844752 00004 32797y sind
ein Einheitsvektor, der den Winkel spezifiziert, um die 1D-Sinuskurve zu drehen. Diese
Parameter werden sowohl zur Bestimmung der besten Übereinstimmung während des
Kodierens als auch zum Erzeugen einer Struktur während des Dekodierens verwendet.
Bei Verwendung dieses Modells werden die vier Parameter als ein Kommentar in dem
kodierten Datenstrom gespeichert, wie z. B. als x, y coef_c und coef_s. Die Parameter
coef_c und coef_s können auf 0,5-Schritte quantisiert werden.
Während des Dekodierens wird das quantisierte Bild, das zum Erzeugen des Restes
verwendet wird, erzeugt. Die Information in dem Strukturkommentar wird verwendet,
um die Sinuskurven zu erzeugen. Die Sinuskurven werden zu dem quantisierten Bild
addiert, was zu einer bevorzugten Rekonstruktion des Bildes führt. Die bevorzugte
Rekonstruktion wird als die bevorzugte Raumdomänengröße verwendet. Falls die
Waveletkoeffizienten, die für den Dekodierer verfügbar sind, genauer sind als jene, die
in dem quantisierten Bild verwendet werden, das zum Erzeugen des Rests verwendet
wird, werden die Artifakte, die auf das Strukturmodell zurückzuführen sind, verringert.
Anstelle der Verwendung eines blockbasierten Strukturmodells kann ein kontinuierliches
oder überlapptes Modell verwendet werden.
Das obige Modell ist gut zum Modellieren von Streifen und ähnlichen 1D-Strukturen. Es
kann ausgedehnt werden, um 2D-Sinuskurven-Gitter handzuhaben. Im Auto-Korrela
tionsraum kann der Bereich entlang der Linie senkrecht zu x, y (und beim Durchgang
durch 0,0) nach dem ersten negativen Bereich abgesucht werden. Die Länge entlang
dieser senkrechten Richtung kann verwendet werden, um die halbe Periode der Sinuskur
ve in dieser Richtung zu spezifizieren.
Der Bereich einer negativen Auto-Korrelation kann als ein erster Schritt in anderen
Strukturmodellierverfahren verwendet werden. Zum Beispiel kann es verwendet werden,
um Strukturrauschen zu erzeugen.
Bei einer Ausführungsform wird das Kodierverfahren der vorliegenden Erfindung mit
Software realisiert, die auf einem Prozessor oder mehreren Prozessoren in einem Com
putersystem läuft. Bei diesem Typ von System untersucht das Kontextmodell der
vorliegenden Erfindung viele Koeffizienten und verwendet viele Zeiger, um diese
Koeffizienten zu verfolgen bzw. über sie auf dem laufenden zu bleiben, was verwendet
werden wird, um temporär einen Kontext für einen später zu kodierenden Koeffizienten
bereitzustellen. Die Zeiger zeigen zu den Speicherstellen, die die Koeffizienten enthalten,
die für den Kontext verwendet werden. Ebenso wird ein Satz von Offsets bzw. Verlage
rungen, sowohl horizontal als auch vertikal bewahrt bzw. aufrechterhalten, um zu
bestimmen, wie die Zeiger zu aktualisieren sind, um zu den Speicherstellen für den
nächsten Kontext zu zeigen. Der horizontale Offset bzw. Versatz ist der Abstand von
dem aktuellen Koeffizienten zu dem nächsten Koeffizienten nach Osten und der vertika
le Offset bzw. Versatz ist der Abstand von dem aktuellen Koeffizient nach Süden. Diese
Offsets hängen von dem Speicher ab und hängen davon ab, wie die Koeffizienten in
dem Speicher gespeichert werden. Das Kontextmodell handhabt die Kanten, indem
spezielle Fälle verwendet werden, wenn die Koeffizienten, die benötigt werden, um
einen Kontext bereitzustellen, nicht existieren, und zwar wegen des Vorhandenseins
eines Kanten- oder Grenzenzustands.
Fig. 38A und 38B zeigen zwei Beispiele von neun Zeigern, die aufrechterhalten werden,
um zu Speicherstellen zu zeigen, um die nächsten vier Koeffizienten X, Y, U und V zu
bestimmen. Nimmt man Bezug auf Fig. 38A, so beinhalten die neun Zeiger Zeiger zu
den Koeffizienten N, X, U und S. Weiter nach links von den N-, X- und U-Koeffizien
ten sind drei zusätzliche Koeffizienten NW, XW und UW. Rechts davon sind zwei
zusätzliche Koeffizienten XE und UE. Die NX-, U- und S-Zeiger werden verwendet, um
auf die Stellen zuzugreifen, die in gestrichelten Boxen gezeigt sind. Fig. 38B zeigt
Pixelwerte X einer anderen Version, bei der die neuen Werte NW, XW und UW auf der
linken Seite, mit NX, X und U, die die mittlere Spalte bilden, und NY, Y und V, die die
rechte Spalte bilden, sind. Bemerkenswert ist, daß in diesem Fall die S- und E-Informa
tion in Signalisierungsbits gespeichert wird. Wenn die Speicherstelle von U aktualisiert
wird, wird eine Bestimmung dahingehend durchgeführt, was hinsichtlich von S auftritt.
Wenn X kodiert wird, wird NX aktualisiert, was schließlich die U-Position bekommt.
Um ein Kontextmodellieren in einer mit Software betriebenen Computersystem-Im
plementation zu verbessern, verwendet die vorliegende Erfindung einen speziellen Puffer
für jede Platte (tile), wenn Kontexte bereitgestellt werden. Der Puffer ist ein Block eines
Speichers, bei dem es sich um einen Block mit fester oder variabler Größe eines benach
barten Speichers handelt, wobei die Größe des Blocks des Speichers größer ist als die
Größe der Platte (oder des Frequenzbandes), die darin gespeichert ist oder zu speichern
ist. Zum Beispiel kann, falls die Platte 256 Koeffizienten in jeder Dimension hat, der
Block des Speichers 384 Koeffizienten in jeder Dimension sein. Ein Beispiel ist in Fig.
33 gezeigt. Deshalb wird, ungeachtet, wie groß die Plattengröße ist, ein größerer Spei
cherbereich ihr zugeordnet. Der Block eines Speichers muß nicht dieselbe Gestalt haben
wie die darin gespeicherte Platte. Zum Beispiel muß der Block eines Speichers, der einer
quadratischen Platte zugeordnet ist, nicht selbst quadratisch sein.
Der Vorteil der Verwendung eines größeren Speicherblocks ist, daß die Zeiger durch
einen einzigen Zeiger zu einem vorbestimmten Punkt in der Platte (z. B. die obere linke
Ecke) und einen Satz von Offsets ersetzt werden können. Diese Offsets werden für jedes
Unterband fixiert. Somit ist anstatt von neun Zeigern und wenigstens zwei Offsets in
dem Fall des oben beschriebenen Kontextmodells nur ein Zeiger und ein Satz von
Offsets notwendig. Bei einer Ausführungsform wird ein Zeiger zu dem Nord
west-(NW-)Koeffizienten mit zwei festen Offsets in der Horizontalen und Vertikalen für den
Koeffizientenzugriff verwendet. Die korrekte Anzahl von Anwendungen der Offsets
werden von dem NW-Zeiger zu den anderen neun Stellen verwendet.
Ein Nutzen eines derartigen Lösungsansatzes ist eine Verringerung der Anzahl der
benötigten Register. Die Offsets müssen nicht in Registern oder in einem Speicherraum
als Teil des kompillierten Kodes gespeichert werden; sie sind Konstanten.
Bemerkenswert ist, daß, obwohl die vorliegende Erfindung mehrere Zeiger mit einem
Zeiger (aber weniger als die zuvor benötigten) und mehreren Offsets ersetzt, es offen
sichtlich ist, daß mehr als ein Zeiger mit einer geringeren Anzahl von Offsets in Abhän
gigkeit von der Realisierung verwendet werden kann.
Ein anderer Vorteil der vorliegenden Erfindung ist, daß, falls die Größe des Speicher
blockes korrekt ausgewählt wird, dann, wenn die Verarbeitung über die Platte hinweg
fortschreitet, die Platten dazu neigen, unterschiedliche Cache-Linien bzw. -Zeilen zu
treffen. Die Auswahl der Größe basiert ebenso auf dem Kompilierer oder der
Ziel-Maschine, das heißt der Maschine, auf der die Software laufen soll. Bei einer Aus
führungsform wird die Größe des Puffers ausgewählt, wobei das Null-Band nicht ein
Mehrfaches einer Cache-Zuordnungsgröße sein soll. Falls es abseits vom Mehrfachen
liegt, gibt es eine bessere Chance, innerhalb des Caches zu bleiben. Mit einer geeigneten
Auswahl der Größe gibt eines eine größere Wahrscheinlichkeit, daß lokal verwendete
Abschnitte der Platte innerhalb des Caches gehalten werden können, ohne dieselben
Cache-Zeilen wieder zu verwenden, was wünschenswert ist. Somit erlaubt die korrekte
Auswahl der Größe des Puffers eine bessere Verwendung des Caches.
Die vorliegende Erfindung handhabt ebenso effektiv Kantenfälle. Hinsichtlich des
Handhabens von Kanten gibt es kein Erfordernis zu überprüfen, ob eine Verarbeitung
einer Kante auftritt, weil die Werte außerhalb der Platte in dem Puffer bei der Kante so
festgelegt sind, daß sie ein vorbestimmter Wert sind. Mit anderen Worten werden,
basierend auf dem Zeigerwert, jene Koeffizientenwerte, die für einen Kontext benötigt
werden, der außerhalb der Platte fällt, so gewählt, daß sie der vorbestimmte Wert sind.
Bei einer Ausführungsform ist der vorbestimmte Wert Null. Falls ein Spiegeln verwen
det wird, können diese Werte nicht für alle Platten gleich sein. Somit wird die Platte mit
Null-Koeffizienten gefüllt, die den verbleibenden Raum in den Puffer füllen, um zu
ermöglichen, daß die Abseits-Kantenbedingung korrekt ist.
Bemerkenswert ist, daß bei einer alternativen Ausführungsform gewisse Werte außerhalb
der Platte Werte aufweisen können, die auf Nicht-Null gesetzt sind.
Bei der vorliegenden Erfindung verwendet ein Kontextmodell die Nachbarschaft eines
Koeffizienten und erzeugt einen Kontext und ein Bit, die zu einem Entropiekodierer
gesendet werden. Ein häufig verwendeter Kontext (mehr als 15 bis 25% der Zeit) neigt
dazu, "Läufe" ("runs") zu haben, wo derselbe Kontext häufig auftritt.
Der FSM-Dekodierer,. der denselben Kontext als eine Eingabe empfängt, führt eine
Rückkopplungsschleife in Antwort auf jeden Kontext durch. Die Rückkopplungsschleife
beinhaltet Operationen, wie z. B. Verschieben von Bits, Aktualisieren eines Registers
usw. Die Rückkopplungsschleife und die Operationen, die damit assoziiert sind, sind
zeitaufwendig. Es ist wünschenswert, die Rückkopplungsschleife nur einmal für alle sich
wiederholenden Kontexte in einer Reihe durchzuführen, falls möglich, um diesen
Overhead zu reduzieren.
Bei einer Ausführungsform kann derselbe Kontext typischerweise in drei Situationen
auftreten:
- 1) Bei der Durchführung des Vorhersehens ("look ahead"), wie in Fig. 16, Tabelle 7 D2 und Tabelle 8 C2, beschrieben ist, kann D2 für die aktuelle Position relativ zur Kante des Bildes bestimmt werden. Dabei kann es sich um viele Vorher seh-Intervalle handeln. Falls das vorhergehende C2-Bit Null war, wird C2 denselben Kontext für alle Vorherseh-Intervalle verwenden, solange die dekodierten Bits Null sind.
- 2) Nachdem das Vorhersehen für die TT-Transformation fehlgeschlagen ist, so wird unter Bezugnahme auf Fig. 17 und Tabelle 8, C3 für bis zu 16 Bits, falls die Nachbarschaft Null ist, derselbe Kontext verwendet, solange die dekodierten Bits Null sind; und
- 3) Bezüglich der Fig. 19 und Tabelle 8 C5, falls die Nachbarschaft Null ist, wird derselbe Kontext belangt bzw. verwendet, solange die dekodierten Bits Null sind.
Das Speichern vorhergehend dekodierter Bits unter Verwendung von Laufzählungen
("runcounts") von Koeffizienten, die Null sind, erlaubt eine schnelle Bestimmung von
Nicht-Null-Nachbarschaftsbits, was Laufe erlaubt, die derselbe Kontext sein können, der
zu bestimmen ist.
Bei der vorliegenden Erfindung arbeitet der Dekodierer spekulativ dahingehend, daß es
unbestimmt ist, ob einer der Kontexte häufiger auftritt, bis eine vorhergehende aufein
anderfolgende Zahl dieser Kontexte aufgetreten ist. Die vorliegende Erfindung untersucht
den Bitstrom und bestimmt, ob es eine vorbestimmte Zahl desselben Kontexts in einer
Reihe gegeben haben kann, und, falls dem so ist, wird der Multistufenprozeß des
Aktualisierens des FSM-Kodierers und des Kontextmodells separat für alle vorbestimm
ten Zahl von Kontexten vermieden und durch eine einzige Aktualisierung ersetzt. Somit
kann der FSM-Kodierer die vorbestimmte Anzahl von Positionen in dem Bitstrom
vorwärtsspringen. In ähnlicher Weise springt das Kontextmodell vorwärts.
Fig. 34 zeigt eine Ausführungsform der vorliegenden Erfindung. Nimmt man Bezug auf
Fig. 34, so beinhaltet der FSM-Kodierer 3400 eine Nachschlagtabelle (LUT) 3401, die
angeschlossen ist, um den aktuellen FSM-Zustand 3410, den aktuellen Wahrscheinlich
keitszustand 3420 für den Kontext und Bits 3430 in dem kodierten Bitstrom, die deko
diert werden, zu empfangen. Falls derselbe Kontext mehrmals in einer Reihe auftritt,
dann wird das Bit bei einem jeden Auftritt des Kontextes dekodiert. Falls der aktuelle
Bitstrom mit einem Muster von Bits übereinstimmt, die dem aktuellen FSM und einer
Anfangswahrscheinlichkeit entsprechen, die anzeigt, daß eine vorbestimmte Anzahl (z. B.
5) derselben Wahrscheinlichkeitsklassen-Entscheidungen in einer Reihe auftreten wird,
dann führt der Dekodierer die vorbestimmte Anzahl von Operationen in einer einzigen
Operation durch, einschließlich der Aktualisierung des FSM-Zustandes und des Kon
textmodells, einschließlich ihrer Zeiger.
Kehrt man zurück zu Fig. 34, so dient LUT 3401 n-Bits und ist angeschlossen, um einen
aktuellen FSM-Zustand 3410 und eine Anfangswahrscheinlichkeit 3420 zu empfangen.
Basierend auf diesen Eingaben werden ein Bitstrom-Maximum 3412 und ein Bit
strom-Minimum 3411 ausgegeben. Diese beiden Bitstromausgaben werden mit dem aktuellen
Bitstrom 3430 verglichen, indem ein Vergleicher 3402 verwendet wird. Falls der
aktuelle Bitstrom 3430 weniger ist als das Bitstrom-Maximum 3412 oder gleich dem
Bitstrom-Maximum 3412 ist und größer ist als oder gleich ist wie ein Bitstrom-Mini
mum 3411, dann zeigt die Ausgabe des Vergleichers 3402 an, daß das spekulative
Dekodieren auftreten kann (z. B. wird sein Ausgang auf ja (Y) gesetzt); ansonsten zeigt
die Ausgabe des Vergleichers 3402 an, daß spekulatives Dekodieren nicht auftreten
sollte.
Die Verschiebungsausgabe von LUT 3401 ist mit einem Bitverschieber verbunden, der
im aktuellen Bitstrom 3430 verschiebt. Der Bitverschieber empfängt ebenso eine Ja-
/Nein-Ausgabe von Komparator bzw. Vergleicher 3402 als ein Freigabesignal. Der
nächste FSM-Zustand wird zu einem FSM-Zustandsregister gesendet, der zurückfährt
bzw. rückkoppelt, um den aktuellen FSM-Zustand 3410 bereitzustellen. Das
FSM-Zustandsregister empfängt ebenso die Ja-/Nein-Ausgabe des Vergleichers 3402 als ein
Freigabesignal. Die nächste Wahrscheinlichkeitsausgabe vom LUT 3401 wird zu dem
Kontextspeicher gesendet, der den Kontext zusammen mit der Ja-/Nein-Ausgabe des
Vergleichers 3402 speichert, der als eine richtige Freigabe wirkt. Bemerkenswert ist, daß
die Ja-/Nein-Ausgabe des Vergleichers 3402 ebenso zu dem Kontextmodell gesendet
wird.
Bemerkenswert ist, daß, wenn das spekulative Dekodieren nicht auftritt, die Bits im
aktuellen Bitstrom 3430 in der normalen bitweisen Art und Weise, die oben beschrieben
ist, dekodiert werden.
Das Bitstrom-Maximum 3412 und das -Minimum 3411 werden verwendet, anstatt eines
Bitstroms, um hinsichtlich des fraktionellen Bitfalles auszugleichen, wo der Kodierer
nicht ein Bit für jeden FSM-Zustand ausgibt. In diesem Fall kann es sein, daß andere
Bits in einem aktuellen Bitstrom 3430 untersucht werden müssen. Das heißt in Antwort
auf einen n-Bit-Lauf erzeugt der Kodierer einen Bitstrom und ändert den FSM-Zustand
in Abhängigkeit von den Bits nach dem n-Bit-Lauf. Der Kodierer gibt schließlich Bits
in dem kodierten Bitstrom nach dem Lauf von identischen Kontexten aus, die zum Teil
auf dem ursprünglichen Lauf von Kontexten gegründet wurden. Das Bitstrom-Maximum
und -Minimum gewährleistet, daß diese Bits berücksichtigt werden.
Bei einer Ausführungsform gibt die Nachschlagtabelle ebenso den nächsten
FSM-Zustand, die nächste Wahrscheinlichkeitsschätzung und die Verschiebungsanzeige aus,
die den Umfang der in dem aktuellen Bitstrom, der hereinkommt, zu verschiebenden
Bits spezifiziert. Bemerkenswert ist, daß irgendetwas davon oder all dies durch separate
Tabellen bereitgestellt werden kann.
Bei einer alternativen Ausführungsform kann eine einzelne Nachschlagtabelle, wie z. B.
LUT 3501 in Fig. 35 den aktuellen FSM-Zustand, die Anfangswahrscheinlichkeit und
den Bitstrom empfangen. In Antwort auf diese Eingänge kann die Tabelle eine
Ja-/Nein-(Y/N)-Anzeige oder eine Anzeige der Häufigkeit, mit der der Kontext aufgetreten ist,
ausgeben. Bemerkenswert ist, daß bei dieser Ausführungsform anstelle einer festen
Lauflänge (z. B. 4) die Lauflänge variabel ist 0, 1, 2, 3, 4, 5, 6, 7. Jedoch liegt ein Problem bei
dieser Ausführungsform darin, daß die Tabelle größer ist.
Bei einer Ausführungsform der vorliegenden Erfindung werden Kennungen in den
kodierten Datenstrom mit aufgenommen. Zum Beispiel zeigt eine Kennung die Anzahl
der Bits an, die bei jedem Wichtigkeitsniveau kodiert werden, summiert über alle
Platten. Dies ist die BVI-Kennung. Diese Kennung kann verwendet werden, um eine
Quantisierung fester Größe für die dekodierten Daten zu erreichen, die eine gleiche
Originaltreue oder Qualität in jeder Platte aufweisen.
Die BVI-Kennung bringt die Anzahl der Bits mit den Wichtigkeitsniveaus auf einer
bildweiten Basis in Beziehung. Diese optionale Kennung wird in dem Hauptkopf
verwendet. Die Größe dieser Kennung mit variabler Länge hängt von der Anzahl der
Wichtigkeitsniveaus ab, die durch den Kodierer aufgezählt bzw. spezifiziert werden.
BVI: Tabelle 11 zeigt die Größe und Werte für die Plattenlängen-Hauptkopfparameter.
Lbvi: Länge einer Kennung in Bytes, nicht einschließlich des Markers (die Länge ist
gerade).
Cbvii: Dies signalisiert, welche Komponentendaten beschrieben werden. Dieser Cbvi-Parameter zusammen mit Ibvi und Pbvi bildet eine Aufzeichnung bzw. einen Datensatz, der für jede Komponente und jedes Wichtigkeitsniveau wiederholt wird, das ausgewählt wurde, beschrieben zu werden. Die Kennungen sind in Reihenfolge, wobei alle Wichtigkeitsniveau-Beschreibungen in der ersten Kom ponente vor jenen für die nächste Komponente sind usw.
Ibvii: Die Nummer bzw. Zahl des Wichtigkeitsniveaus in der aktuellen Komponente, kodiert durch die Anzahl der Bytes in Pbvii. Diese Zahl (oder diese Zahlen) wird bzw. werden zur Zeit des Kodierens ausgewählt, um interessierende Punkte in der Raten-Störungskurve zu übermitteln. Dieser Ibvi-Parameter bildet zusammen mit Cbvi und Pbvi eine Aufzeichnung bzw. einen Datensatz, der für jede be schriebene Komponente und jedes beschriebene Wichtigkeitsniveau wiederholt wird.
Pbvii: Anzahl der Bytes in der kodierten Datei, die den Haupt- und die Plattenköpfe und alle Daten enthalten, die sich auf die Nummer bzw. Zahl der Wichtigkeits niveaus in Ibvii beziehen. Dieser Pbvi-Parameter zusammen mit Cbvi und Ibvi bilden einen Datensatz, der für jede beschriebene Komponente und jedes be schriebene Wichtigkeitsniveau wiederholt wird.
res: Ein Füllbit mit Nullen, das an das Ende plaziert wird, falls nötig.
Cbvii: Dies signalisiert, welche Komponentendaten beschrieben werden. Dieser Cbvi-Parameter zusammen mit Ibvi und Pbvi bildet eine Aufzeichnung bzw. einen Datensatz, der für jede Komponente und jedes Wichtigkeitsniveau wiederholt wird, das ausgewählt wurde, beschrieben zu werden. Die Kennungen sind in Reihenfolge, wobei alle Wichtigkeitsniveau-Beschreibungen in der ersten Kom ponente vor jenen für die nächste Komponente sind usw.
Ibvii: Die Nummer bzw. Zahl des Wichtigkeitsniveaus in der aktuellen Komponente, kodiert durch die Anzahl der Bytes in Pbvii. Diese Zahl (oder diese Zahlen) wird bzw. werden zur Zeit des Kodierens ausgewählt, um interessierende Punkte in der Raten-Störungskurve zu übermitteln. Dieser Ibvi-Parameter bildet zusammen mit Cbvi und Pbvi eine Aufzeichnung bzw. einen Datensatz, der für jede be schriebene Komponente und jedes beschriebene Wichtigkeitsniveau wiederholt wird.
Pbvii: Anzahl der Bytes in der kodierten Datei, die den Haupt- und die Plattenköpfe und alle Daten enthalten, die sich auf die Nummer bzw. Zahl der Wichtigkeits niveaus in Ibvii beziehen. Dieser Pbvi-Parameter zusammen mit Cbvi und Ibvi bilden einen Datensatz, der für jede beschriebene Komponente und jedes be schriebene Wichtigkeitsniveau wiederholt wird.
res: Ein Füllbit mit Nullen, das an das Ende plaziert wird, falls nötig.
Um Daten auf eine feste Größendarstellung mit einer festen Originaltreue zu dekodieren,
vorausgesetzt, daß die Daten mit Platten kodiert wurden, verwendet die vorliegende
Erfindung Wichtigkeitsniveau-Eintrittspunkte. Eine jede Platte hat mindestens einen
Eintrittspunkt. Diese werden in den Kennungen, die hierin beschrieben sind, spezifiziert.
Bemerkenswert ist, daß, wo eine konstante Störung über alle Platten nicht notwendig ist,
eine Festratenquantisierung erzielt werden kann, indem eine bestimmte Anzahl von
Bytes bei einer bestimmten Auflösung für jede Platte dekodiert wird. Jedoch gewähr
leistet dies nicht, daß jede Platte dieselbe Originaltreue hat, sondern nur, daß jede Platte
dieselbe Datenmenge hat.
Bei einer Ausführungsform der vorliegenden Erfindung behält das Dekodieren eine
konstante Störung bei, indem in jeder Platte bei demselben Wichtigkeitsniveau quanti
siert wird. Bemerkenswert ist, daß dies zu unterschiedlichen Datenmengen für jede Platte
führen kann; jedoch ist die Originaltreue einer jeden Platte dieselbe. Somit stellt die
vorliegende Erfindung ein Dekodieren bereit, so daß dieselbe Qualität hinsichtlich
Verzerrung oder Störung in jeder Platte ist, wobei die dekodierten Bits nicht proportional
(nicht gleichmäßig) unter den Platten verteilt werden. Auf diese Art und Weise kann
eine konstante Verzerrung bzw. Störung über das gesamte Bild erzielt werden.
Als ein Beispiel dafür, warum Platten unterschiedliche Datenmengen .für dieselbe
Originaltreue haben können, kann z. B. eine Platte ein komplexes natürliches Bild
enthalten, das viele kodierte Daten erfordert, während es sich bei der anderen Platte um
einen weißen Bereich handelt, der wenig Daten erfordert.
Wie oben diskutiert wurde, kann die BVI-Kennung verwendet werden, um die Anzahl
von Bytes für ein gegebenes Wichtigkeitsniveau über das gesamte Bild hinweg zu
erzielen. Mit anderen Worten zeigt die BVI-Kennung an, wieviele Bytes in einem
Wichtigkeitsniveau sind.
Um dieselbe Qualität für eine Störung bzw. Verzerrung über jede Platte zu erzielen,
bestimmt die vorliegende Erfindung die Anzahl der Bytes, die zum Kodieren eines jeden
Wichtigkeitsniveaus über die n-Platten verwendet werden. Diese Information kann von
der BVI-Kennung bestimmt werden. Falls eine vorbestimmte Zahl von x-Bytes in dem
dekodierten Bild gewünscht wird, können die Bytes eines jeden Wichtigkeitsniveaus
addiert werden und eine Bestimmung wird durchgeführt, wo in dem Wichtigkeitsniveau
hinsichtlich einer jeden Platte zu stoppen ist. Mit anderen Worten, nur eine gewisse
Anzahl von Bytes werden dekodiert, um die gleiche Originaltreue zu erhalten und das
Dekodieren wird bei jeder Platte bei demselben Wichtigkeitsniveau gestoppt.
BVI zeigt z. B. die folgende Summation von Bits über das gesamte Bild hinweg für die
Wichtigkeitsniveaus (die 16.011 Bits, die in der Nähe des Wichtigkeitsniveaus 12
aufgeführt sind, zeigen die Gesamtzahl der Bits für die Wichtigkeitsniveaus 12 und 13
an):
Wichtigkeitsniveau | |
Zahl der Bits | |
13 | 4.096 |
12 | 16.011 |
11 | 40.000 |
10 | 100.000 |
9 | 250.000 |
8 | 500.000 |
7 | 1.000.000 |
6 | 2,500.000 |
5 | 5.500.000 |
Zum Beispiel können nur 750.000 Bits in dem dekodierten Bild erlaubt sein, so daß
dann alles, was dekodiert werden kann, durch Wichtigkeitsniveau 8 und die Hälfte vom
Wichtigkeitsniveau 7 hindurchläuft (da die 1.000.000 Bits, die mit dem Wichtigkeits
niveau 7 getestet werden, 500.000 Bits der Wichtigkeitsniveaus 8 bis 18 enthalten).
Die vorliegende Erfindung stellt zahlreiche Alternativen bereit, um zu entscheiden, wo
das Dekodieren der Daten gestoppt wird. Man kann Wichtigkeitsniveaus dekodieren, bis
die Daten ausgehen. Zum Beispiel könnte man in dem obigen Beispiel entscheiden, von
dem Wichtigkeitsniveau 13 herunter bis zum halben Weg und durch das Wichtigkeits
niveau 7 hindurch zu dekodieren. Bei einer anderen Ausführungsform könnte ein
Prozentsatz für jedes Niveau bestimmt werden und dann kann dieser Prozentsatz auf
jedes der Wichtigkeitsniveaus angewendet werden. Wenn z. B. nur die Hälfte des
Niveaus zu dekodieren ist, wie oben bestimmt wurde, könnten diese 50% auf alle
Niveaus angewendet werden, bis die Daten ausgehen, anstatt daß nur eine Hälfte der
Daten nach dem Wichtigkeitsniveau 8 dekodiert werden würde. Somit diktiert in diesem
Fall der gesamt Prozentsatz zwischen dem eingeplanten Umfang der dekodierten Daten
und den zu dekodierenden Daten die Entscheidung darüber, wo das Dekodieren auf
jedem Wichtigkeitsniveau zu stoppen ist. Somit stellt die vorliegende Erfindung eine
Darstellung mit fester Größe mit derselben Wiedergabetreue über jede Platte hinweg
bereit. Mit anderen Worten, die Zielgröße des Bildes wird mit denselben Segmenten
fixiert, die darin enthalten sind und unterschiedliche Datenraten haben.
Die Anwendung dieser Erfindung wird durch die Ausrichtung beeinflußt bzw. beein
trächtigt. Bei einer Ausführungsform befinden sich die Daten in einer normalisierten
Ausrichtung, wie in Fig. 39 gezeigt ist. Bei einer alternativen Ausführungsform befinden
sich die Daten in einer pyramidalen Ausrichtung, wie in Fig. 40 gezeigt ist. Obwohl das
obige Beispiel mit einer normalen Ausrichtung durchgeführt wurde, kann die vorliegende
Erfindung durchgeführt werden, während Daten dekodiert werden, die mit einer pyrami
dalen Ausrichtung kodiert wurden, um ein Bild einer fixierten Größe mit derselben
Originaltreue über die Platten hinweg zu erzielen, mit einer normalisierten Ausrichtung.
Die Verwendung der normalisierten Ausrichtung erzeugt die beste Qualität bezüglich des
quadrierten Fehlers. Wieder einmal zeigen die Daten in der BVI-Kennung die gesamte
Zahl von Bytes an, von denen die vorliegende Erfindung die Anzahl von Bytes sub
trahiert, die dem dekodierten Bild zugeordnet sind. Falls die Daten in einer pyramidalen
Ausrichtung mit Eintrittspunkten sind, erlauben die Eintrittspunkte ein Überspringen und
Abschneiden des korrekten Datenumfangs bei jedem Segment. Bei einer Ausführungs
form wird das Abschneiden in einer normalisierten Art und Weise durchgeführt, was zu
dem besten MSE führt.
Zum Beispiel kann basierend auf der Bestimmung des Datenumfangs, der durch die
Verwendung der BVI-Kennung erlaubt ist, eine Entscheidung zum Abschneiden der
Daten über die Wichtigkeitsniveaus eines jeden pyramidalen Niveaus hinweg gemacht
werden, wo die Daten sich in einer pyramidalen Ausrichtung befinden. Nimmt man z. B.
Bezug auf Fig. 40, so können die Daten von dem Wichtigkeitsniveau 30 zu dem Wich
tigkeitsniveau 25 dekodiert werden und dann vom Wichtigkeitsniveau 24 zum Niveau 20
abgeschnitten werden. Das Dekodieren der Daten wurde ebenso vom Wichtigkeitsniveau
19 zum Wichtigkeitsniveau 15 auftreten, und zwar gefolgt durch das Abschneiden vom
Wichtigkeitsniveau 14 bis 10, und das Dekodieren der Daten würde vom Wichtigkeits
niveau 9 zum Wichtigkeitsniveau 5 auftreten, mit einem Abschneiden vom Wichtigkeits
niveau 4 zu 0. Somit werden für jedes Frequenzband bei unterschiedlichen Niveaus
dieselben Daten abgeschnitten und in diesem Format ist es bekannt, welchen Einfluß
bzw. Auswirkung ein derartiges Abschneiden haben wird. Dies ist äquivalent zum
Abschneiden der Daten in der normalisierten Ausrichtung beim Niveau 5.
Bei einem anderen Szenario, falls die Ausrichtung normal ist, ist eine pyramidale
Quantisierung durch ähnliche Mittel möglich. Falls es einen Eintrittspunkt am Beginn
eines jeden Wichtigkeitsniveaus gibt, dann kann jedes Wichtigkeitsniveau bis zu den
pyramidalen Niveaus von Interesse dekodiert werden. Falls z. B. in Fig. 40 die Bild
auflösung um zwei in jeder Dimension zu reduzieren ist (pyramidales Niveau 1 ist zu
quantisieren), werden alle Daten, die dem pyramidalen Wichtigkeitsniveau 3 und 2
entsprechen, dekodiert. Wenn es vollendet ist, fällt der Dekoder auf den Anfang des
nächsten Wichtigkeitsniveaus ab.
Bemerkenswert ist, daß jedes Frequenzband in einer pyramidalen Anordnung dargelegt
werden kann, bei der jedes Frequenzband dem anderen folgt. Dies erhöht nicht drama
tisch die Anzahl der Wichtigkeitsniveaus. Jedoch vereinfacht es, weil jedes Frequenz
band eine einzige Breite hat, das Abschneiden der Daten, so daß ihr Einfluß auf den
Rest des Bildes besser verstanden wird. Bemerkenswert ist, daß dies eine Anzahl von
Rücksetzungen erforderlich machen wurde, um einen zurück zum Beginn eines jeden
Frequenzbandes zu bringen, um so zu erlauben, daß einer bei der korrekten Stelle
abschneidet.
Somit können im allgemeinen ungeachtet der Ausrichtung, wenn sie kodiert sind,
entweder normalisierte, pyramidale Ausrichtung oder irgendeine andere Ausrichtung, die
Daten dekodiert werden, um eine konstante Störung bzw. Verzerrung über alle Platten
hinweg zu erzielen, und zwar basierend auf der Information in den Kennungen. Die
Daten in den Kennungen helfen zu bestimmen, welche Daten zu dekodieren sind, um so
ein festes Zielbild mit derselben Auflösung über alle Platten zu erzielen.
Es kann eine BVI für jede Farbkomponente geben und der Benutzer kann entscheiden,
wie Bits für jede Farbkomponente zuzuordnen bzw. zuzuweisen sind. Der Benutzer kann
dann die BVI verwenden, um das Wichtigkeitsniveau, bei dem zu stoppen ist, für jede
Komponente zu bestimmen. Deshalb kann der Umfang an Information in den Kompo
nenten verglichen werden und gegenübergestellt werden und Entscheidungen können
darüber getroffen werden, wie die Bits unter den Komponenten zuzuordnen bzw.
zuzuweisen sind.
Deshalb ermöglicht die BVI-Kennung die Spezifizierung mehrerer Komponenten, um die
Auswahl eines Prozentsatzes von Bits von einem jeden der mehreren Komponenten zum
Abschneiden zu ermöglichen. Dies gewährleistet die Verteilung über alle Platten un
geachtet der Rate mit keiner gleichen Rate oder Größe pro Platte.
Die Daten in einer BVI-Kennung können synthetisiert werden oder aufgebessert bzw.
ergänzt werden, und zwar durch die IET- oder IEM- und die ILT- oder ILM-Kennungs
information. Jeder dieser Kennungspunkte zeigt zu Wichtigkeitsniveaus in einer Platte.
Falls sie für alle Kennungen existieren, können diese Daten hinzugefügt werden, um
BVI-ähnliche Information zu erzeugen.
Hinsichtlich der hierin verwendeten Fachbegriffe und der Grundzüge einer Trans
formation bzw. Kompression mit reversiblen Wavelets wird insbesondere auf die
deutschen Patentanmeldungen 198 19 405 und 196 26 600 der gleichen Anmelderin
hingewiesen.
201
Bilddaten
211
Multikomponenten-Handhabung
210
Stilauswahl
202
reversible Wavelettransformation
203
eingebettete Ordnungsquantisierung
204
eingebettetes Binärstilkodieren
205
Kontextmodellieren
206
Entropiekodieren
2101
Erfassen von Eingangsdaten für Platte
2102
Durchführen von Binärkodieren?
2103
Anwenden reversibler Filter
2104
anderes Pyramidenniveau gewünscht?
2105
Anwenden von reversiblem Filter auf LL-Koeffizienten
2106
Konvertieren von Koeffizienten in Vorzeichen-/Betrag-Form
2107
Modellieren eines jeden Bits von Koeffizienten mit dem
Horizontal-Kontext-Modell
2108
Entropiekodieren
2109
Übertragen oder Speichern von Daten
2110
Mehr Platten im Bild?
2111
Gray-Kodieren
2112
Modellieren eines jeden Bits für jeden Koeffizienten mit einem Binärstil-Kon
textmodell
2201
Erfassen von kodierten Daten für Platte
2202
Entropie-Dekodieren
2203
Durchführen von Binärdekodieren?
2204
Modellieren eines jeden Bits für jeden Koeffizienten mit
Horizont-Kontext-Modell
2205
Konvertieren von Koeffizienten in geeignete Form zum Filtern
2206
Anwenden eines reversiblen Filters
2207
Ein anderes Pyramidenniveau?
2208
Anwenden eines reversiblen Filters auf Koeffizienten
2209
Übertragen oder Speichern rekonstruierter Daten
2210
Mehr Platten im Bild?
2211
Modellieren eines jeden Bits für jeden Koeffizienten mit einem Binärstil-Kon
textmodell
2212
Gray-invers Kodieren
2901
Tiefpaßfilter horizontal
2902
Tiefpaßfilter vertikal
2903
Differenz horizontal
2904
Differenz vertikal
2905
Lokalmaximum
2906
Lokalmaximum
Claims (86)
1. Verfahren zum Durchführen einer Rekonstruktion, das die folgenden Schritte
umfaßt:
- a) Sichern bzw. Speichern der DS- und DD-Koeffizienten, die durch eine Grenze erzeugt werden bzw. sich aus dieser ergeben;
- b) Rekonstruieren von SD-Koeffizienten, so daß sie über die Grenze hinüber glatt sind;
- c) Anwenden einer vertikalen inversen Transformation einzeln bzw. individuell auf jede Platte bzw. "Tile";
- d) Rekonstruieren von D-Koeffizienten, so daß sie über die Grenze hinüber glatt sind; und
- e) Anwenden einer horizontalen inversen Transformation individuell bzw. einzeln auf jede Platte bzw. "Tile".
2. Verfahren nach Anspruch 1, das weiter den Schritt umfaßt, die Schritte a) bis e)
für jedes Niveau zu wiederholen.
3. Verfahren nach Anspruch 2, bei welchem jedes Niveau ein Wichtigkeitsniveau
umfaßt.
4. Verfahren nach Anspruch 1, das weiter den Schritt umfaßt, bei dem die SD- und
D-Koeffizienten konsistent mit tatsächlich quantisierten Koeffizient gemacht werden.
5. Apparat zum Durchführen einer Rekonstruktion, der folgendes umfaßt:
eine Einrichtung zum Sichern bzw. Speichern von DS- und DD-Koeffizienten, die durch eine Grenze erzeugt werden;
eine Einrichtung zum Rekonstruieren von SD-Koeffizienten, so daß sie über die Grenze hinüber glatt verlaufen;
eine Einrichtung zum Anwenden einer vertikalen inversen Transformation, und zwar einzeln auf jede Platte;
eine Einrichtung zum Rekonstruieren von D-Koeffizienten, so daß sie glatt über die Grenze hinüber verlaufen; und
eine Einrichtung zum Anwenden einer horizontalen inversen Transformation, und zwar einzeln auf jede Platte.
eine Einrichtung zum Sichern bzw. Speichern von DS- und DD-Koeffizienten, die durch eine Grenze erzeugt werden;
eine Einrichtung zum Rekonstruieren von SD-Koeffizienten, so daß sie über die Grenze hinüber glatt verlaufen;
eine Einrichtung zum Anwenden einer vertikalen inversen Transformation, und zwar einzeln auf jede Platte;
eine Einrichtung zum Rekonstruieren von D-Koeffizienten, so daß sie glatt über die Grenze hinüber verlaufen; und
eine Einrichtung zum Anwenden einer horizontalen inversen Transformation, und zwar einzeln auf jede Platte.
6. Apparat nach Anspruch 5, bei welchem die Einrichtung zum Sichern bzw.
Speichern, die Einrichtung zum Rekonstruieren der SD-Koeffizienten, die Einrichtung
zum Anwenden einer vertikalen inversen Transformation, die Einrichtung zum Rekon
struieren von D-Koeffizienten und die Einrichtung zum Anwenden einer horizontalen
inversen Transformation auf jedes Niveau einzeln wirken bzw. mit jedem Niveau
einzeln arbeiten.
7. Apparat nach Anspruch 6, bei welchem jedes einzelne Niveau ein Wichtigkeits
niveau umfaßt.
8. Apparat nach Anspruch 5, der weiter eine Einrichtung umfaßt, um die SD- und
D-Koeffizienten mit tatsächlich quantisierten Koeffizienten konsistent zu machen.
9. Computer-Softwareprodukt, das ein Medium enthält, das durch einen Prozessor
gelesen werden kann, wobei das Medium darauf eine Sequenz von Instruktionen
gespeichert hat, die, wenn sie durch den Prozessor ausgeführt werden, den Prozessor
veranlassen, für jedes Niveau folgendes zu machen:
DS- und DD-Koeffizienten werden gesichert, die durch eine Grenze erzeugt werden,
SD-Koeffizienten werden rekonstruiert, um glatt über die Grenze hinüber zu verlaufen,
eine vertikale inverse Transformation wird individuell auf jede Platte angewen det,
D-Koeffizienten werden rekonstruiert, so daß sie glatt über die Grenze hinüber verlaufen, und
eine horizontale inverse Transformation wird individuell auf jede Platte ange wendet.
DS- und DD-Koeffizienten werden gesichert, die durch eine Grenze erzeugt werden,
SD-Koeffizienten werden rekonstruiert, um glatt über die Grenze hinüber zu verlaufen,
eine vertikale inverse Transformation wird individuell auf jede Platte angewen det,
D-Koeffizienten werden rekonstruiert, so daß sie glatt über die Grenze hinüber verlaufen, und
eine horizontale inverse Transformation wird individuell auf jede Platte ange wendet.
10. Verfahren zum Durchführen einer inversen Transformation, das die folgenden
Schritte umfaßt:
- a) eine inverse vertikale Transformation wird nur auf SS- und SD-Koeffizienten angewendet;
- b) die inverse vertikale Transformation wird auf DS- und DD-Koeffizienten auf zwei aktuellen Zeilen bzw. Linien der Koeffizienten angewendet, indem DS-Koeffizienten von zwei vorhergehenden Zeilen bzw. Linien verwendet werden;
- c) eine inverse horizontale Transformation wird für zwei vertikal benachbarte S- und D-Koeffizientenpaare in den zwei aktuellen Zeilen bzw. Linien von Koeffi zienten durchgeführt; und
- d) es wird b) und c) für jedes Paar von Zeilen bzw. Linien nach den zwei aktuellen Zeilen bzw. Linien wiederholt.
11. Verfahren nach Anspruch 10, bei welchem die Quantisierung eines jeden
SD-Koeffizienten die Rekonstruktionsgrenzen von zwei Abfragewerten bzw. Abtastwerten
steuert.
12. Verfahren nach Anspruch 10, bei welchem die Quantisierung von DS- und
DD-Koeffizienten die Rekonstruktionsgrenzen für vier Abfragewerte bzw. Abtastwerte
steuert.
13. Verfahren nach Anspruch 10, bei welchem die SS- und SD-Koeffizienten, die
verbraucht wurden, indem eine inverse vertikale Transformation nur auf SS- und
SD-Koeffizienten ausgeführt wurde, nicht gesichert bzw. gespeichert werden.
14. Verfahren nach Anspruch 10, bei welchem die S-Komponenten als Bilddaten in
der räumlichen Domäne behandelt werden.
15. Apparat zum Durchführen einer inversen Transformation, der folgendes umfaßt:
eine Einrichtung, um eine inverse vertikale Transformation nur auf SS- und SD-Koeffizienten anzuwenden;
eine Einrichtung, um die inverse vertikale Transformation auf DS- und DD-Koeffizienten auf zwei aktuelle Zeilen von Koeffizient unter Verwendung von DS-Koeffizienten von zwei vorhergehenden Zeilen bzw. Linien anzuwenden;
eine Einrichtung, um eine inverse horizontale Transformation für vertikal benachbarte S- und D-Koeffizientenpaare in den zwei aktuellen Zeilen bzw. Linien von Koeffizienten durchzuführen; und
wobei die Einrichtung zum Anwenden einer inversen vertikalen Transformation auf SS- und SD-Koeffizienten, die Einrichtung zum Anwenden der inversen vertikalen Transformation auf DS- und DD-Koeffizienten und die Einrichtung zum Anwenden einer inversen horizontalen Transformation ihre Operationen wiederholt für jedes Paar von Zeilen bzw. Linien nach den zwei aktuellen Zeilen bzw. Linien durchführt.
eine Einrichtung, um eine inverse vertikale Transformation nur auf SS- und SD-Koeffizienten anzuwenden;
eine Einrichtung, um die inverse vertikale Transformation auf DS- und DD-Koeffizienten auf zwei aktuelle Zeilen von Koeffizient unter Verwendung von DS-Koeffizienten von zwei vorhergehenden Zeilen bzw. Linien anzuwenden;
eine Einrichtung, um eine inverse horizontale Transformation für vertikal benachbarte S- und D-Koeffizientenpaare in den zwei aktuellen Zeilen bzw. Linien von Koeffizienten durchzuführen; und
wobei die Einrichtung zum Anwenden einer inversen vertikalen Transformation auf SS- und SD-Koeffizienten, die Einrichtung zum Anwenden der inversen vertikalen Transformation auf DS- und DD-Koeffizienten und die Einrichtung zum Anwenden einer inversen horizontalen Transformation ihre Operationen wiederholt für jedes Paar von Zeilen bzw. Linien nach den zwei aktuellen Zeilen bzw. Linien durchführt.
16. Apparat nach Anspruch 15, bei welchem die Quantisierung eines jeden
SD-Koeffizienten Rekonstruktionsgrenzen von zwei Abfragewerten bzw. Abtastwerten
steuert.
17. Apparat nach Anspruch 15, bei welchem eine Quantisierung von DS- und
DD-Koeffizienten Rekonstruktionsgrenzen für vier Abfragewerten bzw. Abtastwerten bzw.
Werten steuert.
18. Apparat nach Anspruch 15, bei welchem die SS- und SD-Koeffizienten, die
verbraucht wurden, indem eine inverse vertikale Transformation auf SS- und
SD-Koeffizienten angewendet wurde, nicht gesichert werden.
19. Apparat nach Anspruch 15, bei welchem die S-Komponenten als Bilddaten in
der räumlichen Domäne behandelt werden.
20. Computer-Softwareprodukt, das ein durch einen Prozessor lesbares Medium
enthält, wobei das Medium darauf eine Sequenz von Instruktionen abgespeichert hat,
die, wenn sie durch den Prozessor ausgeführt werden, dem Prozessor zu folgendem
veranlassen:
- a) eine inverse vertikale Transformation wird nur auf SS- und SD-Koeffizienten angewendet,
- b) die inverse vertikale Transformation wird auf DS- und DD-Koeffizienten auf zwei aktuellen Zeilen bzw. Linien der Koeffizienten angewendet, indem DS-Koeffizienten von zwei vorhergehenden Zeilen bzw. Linien verwendet werden,
- c) eine inverse horizontale Transformation wird für zwei vertikal benachbarte S- und D-Koeffizientenpaare in den genannten zwei aktuellen Zeilen bzw. Linien von Koeffizienten durchgeführt, und
- d) für jedes Paar von Zeilen bzw. Linien nach den zwei aktuellen Zeilen bzw. Linien wird b) und c) wiederholt.
21. Verfahren zum Erzeugen einer bevorzugten Rekonstruktion, das die folgenden
Schritte umfaßt:
- a) für jeden SD-Koeffizienten wird eine bevorzugte Rekonstruktion berechnet und die bevorzugte Rekonstruktion wird gestutzt bzw. geclippt, um mit der Quanti sierung konsistent zu sein;
- b) eine inverse vertikale Transformation wird nur auf SS- und SD-Koeffizienten angewendet;
- c) für jeden DS- und DD-Koeffizienten wird eine bevorzugte Rekonstruktion berechnet und die bevorzugte Rekonstruktion wird gestutzt bzw. geclippt, um mit der Quantisierung konsistent zu sein;
- d) die inverse vertikale Transformation wird auf DS- und DD-Koeffizienten auf zwei aktuellen Zeilen bzw. Linien von Koeffizienten angewendet, indem DS-Koeffizienten von zwei vorhergehenden Zeilen bzw. Linien verwendet werden;
- e) eine inverse horizontale Transformation wird für zwei vertikal benachbarte S- und D-Koeffizientenpaare in den zwei aktuellen Zeilen bzw. Linien von Koeffi zienten durchgeführt; und
- f) für jedes Paar von Linien bzw. Zeilen nach den zwei aktuellen Zeilen bzw. Linien wird d) und e) wiederholt.
22. Verfahren nach Anspruch 21, das weiter den Schritt aufweist, daß die Schritte
a) bis f) für jedes Unterband wiederholt werden.
23. Verfahren nach Anspruch 21, das weiter den Schritt aufweist, daß die bevorzugte
Rekonstruktion gestutzt bzw. geclippt wird, indem mögliche Minimum- und Maxim
umwerte der Bits verwendet werden, die unbekannt sind.
24. Apparat zum Erzeugen einer bevorzugten Rekonstruktion, der folgendes umfaßt:
eine Einrichtung, um für jeden SD-Koeffizienten eine bevorzugte Rekonstruktion zu berechnen und die bevorzugte Rekonstruktion zu clippen bzw. zu stutzen, um mit der Quantisierung konsistent zu sein;
eine Einrichtung zum Anwenden einer inversen vertikalen Transformation nur auf SS- und SD-Koeffizienten;
eine Einrichtung, um für jeden DS- und DD-Koeffizienten eine bevorzugte Rekonstruktion zu berechnen und um die bevorzugte Rekonstruktion zu clippen bzw. zu stutzen, um mit der Quantisierung konsistent zu sein;
eine Einrichtung, um die inverse vertikale Transformation auf DS- und DD-Koeffizienten auf zwei aktuellen Linien bzw. Zeilen von Koeffizienten anzuwenden, indem die DS-Koeffizienten von zwei vorhergehenden Linien bzw. Zeilen verwendet werden;
eine Einrichtung, um eine inverse horizontale Transformation für zwei vertikal benachbarte S- und D-Koeffizientenpaare in den genannten zwei aktuellen Zeilen bzw. Linien von Koeffizienten durchzuführen; und
wobei die Einrichtung zum Anwenden der inversen vertikalen Transformation auf DS- und DD-Koeffizienten und die Einrichtung zum Durchführen einer inversen horizontalen Transformation für zwei vertikal benachbarte S- und D-Koeffizientenpaare wiederholt für jedes Paar von Linien nach den zwei aktuellen Zeilen bzw. Linien arbeiten.
eine Einrichtung, um für jeden SD-Koeffizienten eine bevorzugte Rekonstruktion zu berechnen und die bevorzugte Rekonstruktion zu clippen bzw. zu stutzen, um mit der Quantisierung konsistent zu sein;
eine Einrichtung zum Anwenden einer inversen vertikalen Transformation nur auf SS- und SD-Koeffizienten;
eine Einrichtung, um für jeden DS- und DD-Koeffizienten eine bevorzugte Rekonstruktion zu berechnen und um die bevorzugte Rekonstruktion zu clippen bzw. zu stutzen, um mit der Quantisierung konsistent zu sein;
eine Einrichtung, um die inverse vertikale Transformation auf DS- und DD-Koeffizienten auf zwei aktuellen Linien bzw. Zeilen von Koeffizienten anzuwenden, indem die DS-Koeffizienten von zwei vorhergehenden Linien bzw. Zeilen verwendet werden;
eine Einrichtung, um eine inverse horizontale Transformation für zwei vertikal benachbarte S- und D-Koeffizientenpaare in den genannten zwei aktuellen Zeilen bzw. Linien von Koeffizienten durchzuführen; und
wobei die Einrichtung zum Anwenden der inversen vertikalen Transformation auf DS- und DD-Koeffizienten und die Einrichtung zum Durchführen einer inversen horizontalen Transformation für zwei vertikal benachbarte S- und D-Koeffizientenpaare wiederholt für jedes Paar von Linien nach den zwei aktuellen Zeilen bzw. Linien arbeiten.
25. Apparat nach Anspruch 24, bei welchem weiter die Operationen für jedes
Unterband wiederholt werden.
26. Apparat nach Anspruch 24, der weiter eine Einrichtung zum Clippen der bevor
zugten Rekonstruktion umfaßt, indem mögliche Minimum- und Maximumwerte der Bits
verwendet werden, die unbekannt sind.
27. Computer-Softwareprodukt, das ein von einem Prozessor lesbares Medium
enthält, wobei das Medium darauf eine Sequenz von Instruktionen gespeichert hat, die,
wenn sie durch den Prozessor ausgeführt werden, den Prozessor zu folgendem ver
anlassen:
- a) für jeden SD-Koeffizienten wird eine bevorzugte Rekonstruktion berechnet und die bevorzugte Rekonstruktion wird gestutzt bzw. geclippt, um mit der Quanti sierung konsistent zu sein,
- b) eine inverse vertikale Transformation wird nur auf SS- und SD-Koeffizienten ausgeübt,
- c) für jeden DS- und DD-Koeffizienten wird eine bevorzugte Rekonstruktion berechnet und die bevorzugte Rekonstruktion wird geclippt bzw. gestutzt, um mit der Quantisierung konsistent zu sein,
- d) die inverse vertikale Transformation wird auf DS- und DD-Koeffizienten auf zwei aktuellen Zeilen bzw. Linien von Koeffizienten angewendet, indem DS-Koeffizienten von zwei vorhergehenden Zeilen bzw. Linien verwendet werden,
- e) eine inverse horizontale Transformation wird für zwei vertikal benachbarte S- und D-Koeffizientenpaare in den zwei aktuellen Zeilen bzw. Linien von Koeffi zienten durchgeführt, und
- f) für jedes Paar von Zeilen bzw. Linien wird nach den zwei aktuellen Zeilen bzw. Linien d) und e) wiederholt.
28. Verfahren zum Verarbeiten kodierter Daten, wobei das Verfahren die folgenden
Schritte umfaßt:
ein Hinweis auf den Umfang von Daten, die zum Kodieren von Wichtigkeits niveaus über n-Platten in den kodierten Daten verwendet werden, wird empfangen;
ein vorbestimmter Umfang an kodierten Daten, der zu dekodieren ist, wird bestimmt; und
nur der vorbestimmte Umfang der kodierten Daten wird dekodiert, so daß dekodierte Daten mit derselben Originaltreue über die gesamte Platte erhalten werden.
ein Hinweis auf den Umfang von Daten, die zum Kodieren von Wichtigkeits niveaus über n-Platten in den kodierten Daten verwendet werden, wird empfangen;
ein vorbestimmter Umfang an kodierten Daten, der zu dekodieren ist, wird bestimmt; und
nur der vorbestimmte Umfang der kodierten Daten wird dekodiert, so daß dekodierte Daten mit derselben Originaltreue über die gesamte Platte erhalten werden.
29. Verfahren nach Anspruch 28, bei welchem das Dekodieren nur des Abschnittes
der kodierten Daten das Dekodieren der kodierten Daten, beginnend mit dem höchsten
Wichtigkeitsniveau und fortschreitend in Abfolge zu den tieferen Wichtigkeitsniveaus
umfaßt, bis eine vorbestimmte Menge an kodierten Daten dekodiert worden ist.
30. Apparat zum Verarbeiten kodierter Daten, wobei der Apparat folgendes umfaßt:
eine Einrichtung zum Empfangen einer Anzeige des Umfangs an Daten, die zum Kodieren von Wichtigkeitsniveaus über n-Platten in den kodierten Daten verwendet werden;
eine Einrichtung zum Bestimmen einer vorbestimmten Menge der kodierten Daten, die zu dekodieren sind; und
eine Einrichtung zum Dekodieren nur des vorbestimmten Umfangs der kodierten Daten, so daß die dekodierten Daten mit derselben Originaltreue über jede Platte erhalten werden.
eine Einrichtung zum Empfangen einer Anzeige des Umfangs an Daten, die zum Kodieren von Wichtigkeitsniveaus über n-Platten in den kodierten Daten verwendet werden;
eine Einrichtung zum Bestimmen einer vorbestimmten Menge der kodierten Daten, die zu dekodieren sind; und
eine Einrichtung zum Dekodieren nur des vorbestimmten Umfangs der kodierten Daten, so daß die dekodierten Daten mit derselben Originaltreue über jede Platte erhalten werden.
31. Apparat nach Anspruch 30, bei welchem die Einrichtung zum Dekodieren eine
Einrichtung zum Dekodieren der kodierten Daten umfaßt, und zwar beginnend mit dem
höchsten Wichtigkeitsniveau und fortschreitend in Abfolge zu tieferen Wichtigkeits
niveaus, bis eine vorbestimmte Menge an kodierten Daten dekodiert worden ist.
32. Computer-Softwareprodukt einschließlich eines Mediums, das von einem
Prozessor lesbar ist, wobei das Medium darauf eine Abfolge von Instruktionen gespei
chert hat, die, wenn sie durch den Prozessor ausgeführt werden, den Prozessor ver
anlassen, folgendes durchzuführen:
eine Anzeige der Menge der Daten wird empfangen, die verwendet werden, um Wichtigkeitsniveaus über n-Platten in den kodierten Daten zu kodieren;
eine vorbestimmte Menge der kodierten Daten wird bestimmt, die zu dekodieren ist; und
nur die vorbestimmte Menge der kodierten Daten wird dekodiert, so daß die dekodierten Daten mit derselben Originaltreue über jede Platte erhalten werden.
eine Anzeige der Menge der Daten wird empfangen, die verwendet werden, um Wichtigkeitsniveaus über n-Platten in den kodierten Daten zu kodieren;
eine vorbestimmte Menge der kodierten Daten wird bestimmt, die zu dekodieren ist; und
nur die vorbestimmte Menge der kodierten Daten wird dekodiert, so daß die dekodierten Daten mit derselben Originaltreue über jede Platte erhalten werden.
33. Verfahren zum Verarbeiten von Daten, das folgendes umfaßt:
eine Anzahl von quantisierten Null-Koeffizienten wird empfangen;
Rauschen wird in das Bild injiziert, indem geeignete Rekonstruktionswerte für die quantisierten Null-Koeffizienten ausgewählt werden.
eine Anzahl von quantisierten Null-Koeffizienten wird empfangen;
Rauschen wird in das Bild injiziert, indem geeignete Rekonstruktionswerte für die quantisierten Null-Koeffizienten ausgewählt werden.
34. Verfahren nach Anspruch 33, bei welchem das injizierte Rauschen eine Funktion
des Rauschens in einem Originalbild ist, von dem die Anzahl von quantisierten
Null-Koeffizienten erzeugt wurden.
35. Verfahren nach Anspruch 34, das weiter den Schritt umfaßt, eine Information zu
empfangen, die das Rauschen in dem Originalbild betrifft, und zwar in einer Kennung,
die komprimierte Koeffizienten begleitet, von denen die Anzahl der quantisierten
Null-Koeffizienten abgeleitet werden.
36. Verfahren nach Anspruch 35, bei welchem die Information eine Verteilung des
Rauschens in dem Originalbild umfaßt.
37. Verfahren nach Anspruch 35, bei welchem die Information eine Amplitude des
Rauschens in dem Originalbild umfaßt.
38. Verfahren nach Anspruch 35, bei welchem die Information die Varianz des
Rauschens in dem Originalbild umfaßt.
39. Apparat zum Verarbeiten von Daten, der folgendes umfaßt:
eine Einrichtung zum Empfangen einer Anzahl quantisierter Null-Koeffizienten;
eine Einrichtung zum Injizieren von Rauschen in das Bild, indem geeignete Rekonstruktionswerte für die quantisierten Null-Koeffizienten ausgewählt werden.
eine Einrichtung zum Empfangen einer Anzahl quantisierter Null-Koeffizienten;
eine Einrichtung zum Injizieren von Rauschen in das Bild, indem geeignete Rekonstruktionswerte für die quantisierten Null-Koeffizienten ausgewählt werden.
40. Apparat nach Anspruch 39, bei welchem das injizierte Rauschen eine Funktion
des Rauschens in einem Originalbild ist, von dem die Anzahl von quantisierten
Null-Koeffizienten erzeugt werden.
41. Apparat nach Anspruch 40, der weiter eine Einrichtung zum Empfangen von
Information umfaßt, die das Rauschen in dem Originalbild betrifft, und zwar in einer
Kennung, die komprimierte Koeffizienten begleitet, von denen die Anzahl von quanti
sierten Null-Koeffizienten abgeleitet werden.
42. Apparat nach Anspruch 41, bei welchem die Information eine Verteilung des
Rauschens in dem Originalbild umfaßt.
43. Apparat nach Anspruch 41, bei welche die Information die Amplitude des
Rauschens in dem Originalbild umfaßt.
44. Apparat nach Anspruch 41, bei welchem die Information die Varianz des
Rauschens in dem Originalbild umfaßt.
45. Computer-Softwareprodukt, das ein durch einen Prozessor lesbares Medium
umfaßt, wobei das Medium darauf eine Sequenz von Instruktionen gespeichert hat, die,
wenn sie durch den Prozessor ausgeführt werden, den Prozessor zu folgendem ver
anlassen:
eine Anzahl von quantisierten Null-Koeffizienten wird empfangen;
ein Rauschen wird in das Bild injiziert, indem geeignete Rekonstruktionswerte für die quantisierten Null-Koeffizienten ausgewählt werden.
eine Anzahl von quantisierten Null-Koeffizienten wird empfangen;
ein Rauschen wird in das Bild injiziert, indem geeignete Rekonstruktionswerte für die quantisierten Null-Koeffizienten ausgewählt werden.
46. Verfahren zum Verarbeiten von Platten von kodierten Daten, das die folgenden
Schritte umfaßt:
eine Platte mit einer Plattengröße in einem Abschnitt eines Speichers größer als die Plattengröße wird gespeichert; und
eine Dekodieroperation wird mit den Koeffizienten in der Platte durchgeführt, die in dem Abschnitt eines Speichers gespeichert ist, indem ein Zeiger zu einer Stelle in der Platte und eine Reihe von Offsets von der Stelle verwendet wird, um einen Satz von Koeffizienten zu lokalisieren, um während des Dekodierens auf jeden einzelnen Koeffizienten zugreifen zu können.
eine Platte mit einer Plattengröße in einem Abschnitt eines Speichers größer als die Plattengröße wird gespeichert; und
eine Dekodieroperation wird mit den Koeffizienten in der Platte durchgeführt, die in dem Abschnitt eines Speichers gespeichert ist, indem ein Zeiger zu einer Stelle in der Platte und eine Reihe von Offsets von der Stelle verwendet wird, um einen Satz von Koeffizienten zu lokalisieren, um während des Dekodierens auf jeden einzelnen Koeffizienten zugreifen zu können.
47. Verfahren nach Anspruch 46, bei welchem der Abschnitt des Speichers au
ßerhalb der Platte einen vorbestimmten Wert speichert.
48. Verfahren nach Anspruch 47, bei welchem der vorbestimmte Wert die Zahl 0 ist.
49. Verfahren nach Anspruch 46, bei welchem die Offsets fixiert sind.
50. Apparat zum Verarbeiten von Platten von kodierten Daten, der folgendes
umfaßt:
eine Einrichtung zum Speichern einer Platte mit einer Plattengröße in einem Teil eines Speichers, der größer als die Plattengröße ist; und
eine Einrichtung, um eine Dekodieroperation auf Koeffizienten in der Platte anzuwenden, die in dem Teil eines Speichers gespeichert ist, indem ein Zeiger zu einer Stelle in der Platte und eine Reihe von Offsets bzw. Abweichungen bzw. Distanz adressen ausgehend von der Stelle verwendet werden, um einen Satz von Koeffizienten zu lokalisieren, um während des Dekodierens auf jeden einzelnen Koeffizienten zugrei fen zu können.
eine Einrichtung zum Speichern einer Platte mit einer Plattengröße in einem Teil eines Speichers, der größer als die Plattengröße ist; und
eine Einrichtung, um eine Dekodieroperation auf Koeffizienten in der Platte anzuwenden, die in dem Teil eines Speichers gespeichert ist, indem ein Zeiger zu einer Stelle in der Platte und eine Reihe von Offsets bzw. Abweichungen bzw. Distanz adressen ausgehend von der Stelle verwendet werden, um einen Satz von Koeffizienten zu lokalisieren, um während des Dekodierens auf jeden einzelnen Koeffizienten zugrei fen zu können.
51. Apparat nach Anspruch 50, bei welchem der Abschnitt des Speichers außerhalb
der Platte einen vorbestimmten Wert speichert.
52. Apparat nach Anspruch 51, bei welchem die vorbestimmte Zahl 0 ist.
53. Apparat nach Anspruch 50, bei welchem die Offsets fixiert sind.
54. Computer-Softwareprodukt, das ein von einem Prozessor lesbares Medium
enthält, wobei auf dem Medium eine Sequenz von Instruktionen gespeichert sind, die,
wenn sie durch den Prozessor ausgeführt werden, den Prozessor zu folgendem ver
anlassen:
eine Platte mit einer Plattengröße wird in einem Abschnitt eines Speichers gespeichert, der größer als die Plattengröße ist, und
eine Dekodieroperation wird auf die Koeffizienten in der Platte angewendet, die in dem Teil des Speichers gespeichert ist, indem ein Zeiger auf eine Stelle in der Platte und eine Reihe von Offsets bzw. Abweichungen bzw. Distanzadressen ausgehend von der Stelle verwendet werden, um einen Satz von Koeffizienten zu lokalisieren, um während des Dekodierens auf jeden einzelnen Koeffizienten zuzugreifen.
eine Platte mit einer Plattengröße wird in einem Abschnitt eines Speichers gespeichert, der größer als die Plattengröße ist, und
eine Dekodieroperation wird auf die Koeffizienten in der Platte angewendet, die in dem Teil des Speichers gespeichert ist, indem ein Zeiger auf eine Stelle in der Platte und eine Reihe von Offsets bzw. Abweichungen bzw. Distanzadressen ausgehend von der Stelle verwendet werden, um einen Satz von Koeffizienten zu lokalisieren, um während des Dekodierens auf jeden einzelnen Koeffizienten zuzugreifen.
55. Verfahren zum Dekodieren von Daten, wobei das Verfahren die folgenden
Schritte umfaßt:
Erkennen, wenn eine Anzahl bzw. Vielzahl von identischen Kontexten einem Entropiekodierer bereitgestellt werden sollen; und
Durchführen einer einzelnen Kodieroperation für alle der Anzahl von identischen Kontexten, falls die Anzahl von identischen Kontexten in einer Abfolge auftreten.
Erkennen, wenn eine Anzahl bzw. Vielzahl von identischen Kontexten einem Entropiekodierer bereitgestellt werden sollen; und
Durchführen einer einzelnen Kodieroperation für alle der Anzahl von identischen Kontexten, falls die Anzahl von identischen Kontexten in einer Abfolge auftreten.
56. Verfahren nach Anspruch 55, bei welchem der Schritt des Erkennens, wenn eine
Anzahl von identischen Kontexten einem Entropiekodierer bereitgestellt werden oder
werden sollen, das Vergleichen eines Teils eines kodierten Eingabedatenstroms mit
einer Vorhersage dahingehend, was der kodierte Eingangsdatenstrom sein müßte bzw.
aus was er bestehen müßte, falls die Anzahl von identischen Kontexten in einer Aufein
anderfolge auftreten, umfaßt.
57. Verfahren nach Anspruch 55, bei welchem der Schritt des Erkennens, wenn eine
Anzahl von identischen Kontexten einem Entropiekodierer bereitgestellt werden sollen,
einen Vergleich eines Teils eines kodierten Eingabedatenstroms mit einem Paar von
Vorhersagen dahingehend, was der kodierte Eingangsdatenstrom sein müßte bzw. aus
was er bestehen müßte, falls die Anzahl von identischen Kontexten in einer Aufeinand
erfolge auftreten, umfaßt, wobei der Kodierbetrieb durchgeführt wird, wenn der kodierte
Eingangsdatenstrom irgendeiner Vorhersage in dem Paar von Vorhersagen gleicht oder
zwischen das Paar von Vorhersagen fällt.
58. Apparat zum Dekodieren von Daten, der folgendes umfaßt:
eine Einrichtung zum Erkennen, wenn eine Anzahl von identischen Kontexten einem Entropiekodierer bereitgestellt werden soll; und
eine Einrichtung, um einen einzigen Kodierbetrieb für alle der Anzahl von identischen Kontexten durchzuführen, falls die Anzahl von identischen Kontexten in einer Aufeinanderfolge auftreten.
eine Einrichtung zum Erkennen, wenn eine Anzahl von identischen Kontexten einem Entropiekodierer bereitgestellt werden soll; und
eine Einrichtung, um einen einzigen Kodierbetrieb für alle der Anzahl von identischen Kontexten durchzuführen, falls die Anzahl von identischen Kontexten in einer Aufeinanderfolge auftreten.
59. Apparat nach Anspruch 58, bei welchem die Einrichtung zum Erkennen eine
Einrichtung zum Vergleichen eines Abschnittes eines kodierten Eingangsdatenstroms
mit einer Vorhersage dahingehend, was der kodierte Eingangsdatenstrom sein müßte
bzw. aus was er bestehen müßte, falls die Anzahl von identischen Kontexten in einer
Aufeinanderfolge auftreten, umfaßt.
60. Apparat nach Anspruch 58, bei welchem die Einrichtung zum Erkennen eine
Einrichtung zum Vergleichen eines Abschnittes eines kodierten Eingangsdatenstroms
mit einem Paar von Vorhersagen dahingehend, was der kodierte Eingangsdatenstrom
sein müßte bzw. aus was er bestehen müßte, falls die Anzahl identischer Kontexte in
einer Aufeinanderfolge auftritt, umfaßt, wobei der Kodierbetrieb durchgeführt wird,
wenn der kodierte Eingangsdatenstrom gleich einer der beiden Vorhersagen in dem Paar
von Vorhersagen ist oder zwischen das Paar von Vorhersagen fällt bzw. dazwischen
liegt.
61. Computer-Softwareprodukt, das ein Medium enthält, das durch einen Prozessor
lesbar ist, wobei auf dem Medium eine Sequenz von Instruktionen gespeichert ist, die,
wenn sie durch den Prozessor ausgeführt werden, den Prozessor zu folgendem ver
anlassen:
Erkennen, wenn eine Anzahl identischer Kontexte zu einem Entropiekodierer bereitgestellt werden soll; und
Durchführen eines einzigen Kodierbetriebs für alle der Anzahl von identischen Kontexten, falls die Anzahl der identischen Kontexte in einer Aufeinanderfolge auf treten.
Erkennen, wenn eine Anzahl identischer Kontexte zu einem Entropiekodierer bereitgestellt werden soll; und
Durchführen eines einzigen Kodierbetriebs für alle der Anzahl von identischen Kontexten, falls die Anzahl der identischen Kontexte in einer Aufeinanderfolge auf treten.
62. Verfahren zum Rekonstruieren, das die folgenden Schritte umfaßt:
eine Differenz wird zwischen einem ersten Koeffizienten und einem zweiten Koeffizienten einer vorbestimmten Anzahl von Koeffizienten bestimmt, wobei der erste Koeffizient einen Minimumwert unter den Koeffizienten hat und der zweite Wert einen Maximumwert unter den Koeffizienten hat;
es wird zu etwas anderem als einer Stufenkante rekonstruiert, wobei die Diffe renz zwischen der vorbestimmten Anzahl von Koeffizienten kleiner ist als ein vor bestimmter Schwellenwert;
es wird zu einer Stufenkante rekonstruiert, wobei die Differenz zwischen der vorbestimmten Anzahl von Koeffizienten größer ist als ein vorbestimmter Schwellen wert, wobei der Schritt des Rekonstruierens zu einer Stuferkante die folgenden Schritte umfaßt:
erste und zweite partielle Rekonstruktionswerte werden basierend auf einer vorbestimmten Anzahl von Koeffizientenwerten rechts und links einer Stelle einer potentiellen Stufenkante berechnet,
ein Rekonstruktionswert wird berechnet, indem entweder der erste oder der zweite partielle Rekonstruktionswert verwendet wird, und zwar basierend darauf, ob entweder der erste oder zweite partielle Rekonstruktionswert 0 ist und ob Vorzeichen des ersten und zweiten partiellen Rekonstruktionswertes dieselben sind.
eine Differenz wird zwischen einem ersten Koeffizienten und einem zweiten Koeffizienten einer vorbestimmten Anzahl von Koeffizienten bestimmt, wobei der erste Koeffizient einen Minimumwert unter den Koeffizienten hat und der zweite Wert einen Maximumwert unter den Koeffizienten hat;
es wird zu etwas anderem als einer Stufenkante rekonstruiert, wobei die Diffe renz zwischen der vorbestimmten Anzahl von Koeffizienten kleiner ist als ein vor bestimmter Schwellenwert;
es wird zu einer Stufenkante rekonstruiert, wobei die Differenz zwischen der vorbestimmten Anzahl von Koeffizienten größer ist als ein vorbestimmter Schwellen wert, wobei der Schritt des Rekonstruierens zu einer Stuferkante die folgenden Schritte umfaßt:
erste und zweite partielle Rekonstruktionswerte werden basierend auf einer vorbestimmten Anzahl von Koeffizientenwerten rechts und links einer Stelle einer potentiellen Stufenkante berechnet,
ein Rekonstruktionswert wird berechnet, indem entweder der erste oder der zweite partielle Rekonstruktionswert verwendet wird, und zwar basierend darauf, ob entweder der erste oder zweite partielle Rekonstruktionswert 0 ist und ob Vorzeichen des ersten und zweiten partiellen Rekonstruktionswertes dieselben sind.
63. Verfahren nach Anspruch 62, bei welchem die sich ergebende Rekonstruktion
linear ist, wobei die Differenz zwischen der vorbestimmten Zahl von Koeffizienten
kleiner ist als der vorbestimmte Schwellenwert.
64. Verfahren nach Anspruch 62, bei welchem die vorbestimmte Anzahl von
Koeffizienten nur S-Koeffizienten umfaßt.
65. Verfahren nach Anspruch 62, bei welchem die vorbestimmte Anzahl von
Koeffizienten 5 ist.
66. Verfahren nach Anspruch 62, bei welchem ein partieller Rekonstruktionswert
von 0 bei der Berechnung des Rekonstruktionswertes verwendet wird, falls einer des
ersten oder zweiten partiellen Rekonstruktionswertes 0 ist.
67. Verfahren nach Anspruch 62, bei welchem ein partieller Rekonstruktionswert,
der gleich einem partiellen Rekonstruktionswert ist, der einen mimalen Wert hat,
zwischen dem ersten und zweiten partiellen Rekonstruktionswert liegt, falls Vorzeichen
des ersten oder zweiten partiellen Rekonstruktionswertes dieselben sind.
68. Verfahren nach Anspruch 62, bei welchem die Berechnung von wenigstens
entweder dem ersten oder dem zweiten partiellen Rekonstruktionswert folgendes
umfaßt:
Differenzen zwischen äußeren und inneren Paaren von Koeffizientenwerten werden bestimmt;
es wird getestet, ob ein Betrag der Differenz zwischen dem äußeren Paar größer ist als ein Betrag der Differenz zwischen dem inneren Paar;
die Differenzen werden einander gleichgesetzt, falls der Betrag der Differenz zwischen dem äußeren Paar größer als der Betrag der Differenz zwischen dem inneren Paar ist;
ein Verhältnis der Differenz zwischen dem äußeren Paar zu der Differenz zwischen dem inneren Paar wird berechnet; und
der wenigstens eine Rekonstruktionswert von den ersten und zweiten partiellen Rekonstruktionswerten wird auf ein Produkt der Differenz zwischen dem inneren Paar und einem Ergebnis, das abgeleitet wird, indem das Verhältnis verwendet wird, festge legt.
Differenzen zwischen äußeren und inneren Paaren von Koeffizientenwerten werden bestimmt;
es wird getestet, ob ein Betrag der Differenz zwischen dem äußeren Paar größer ist als ein Betrag der Differenz zwischen dem inneren Paar;
die Differenzen werden einander gleichgesetzt, falls der Betrag der Differenz zwischen dem äußeren Paar größer als der Betrag der Differenz zwischen dem inneren Paar ist;
ein Verhältnis der Differenz zwischen dem äußeren Paar zu der Differenz zwischen dem inneren Paar wird berechnet; und
der wenigstens eine Rekonstruktionswert von den ersten und zweiten partiellen Rekonstruktionswerten wird auf ein Produkt der Differenz zwischen dem inneren Paar und einem Ergebnis, das abgeleitet wird, indem das Verhältnis verwendet wird, festge legt.
69. Verfahren nach Anspruch 68, bei welchem das äußere und innere Paar von
Koeffizientenwerten S-Koeffizienten umfaßt.
70. Verfahren zum Durchführen einer Rekonstruktion, das die folgenden Schritte
umfaßt:
ein Rekonstruktionswert wird erzeugt; und
der Rekonstruktionswert wird gestutzt bzw. geclippt, falls der Rekonstruktions wert die Grenzen von benachbarten Koeffizienten überschreitet, wobei der Rekon struktionswert auf einen Koeffizientenwert innerhalb der Grenzen der benachbarten Koeffizienten bzw. eines benachbarten Koeffizienten mit einem Wert am nächsten zu dem Rekonstruktionswert gestutzt bzw. geclippt wird.
ein Rekonstruktionswert wird erzeugt; und
der Rekonstruktionswert wird gestutzt bzw. geclippt, falls der Rekonstruktions wert die Grenzen von benachbarten Koeffizienten überschreitet, wobei der Rekon struktionswert auf einen Koeffizientenwert innerhalb der Grenzen der benachbarten Koeffizienten bzw. eines benachbarten Koeffizienten mit einem Wert am nächsten zu dem Rekonstruktionswert gestutzt bzw. geclippt wird.
71. Verfahren nach Anspruch 70, bei welchem eine Mitten-Abtastwert bzw. Ab
fragewert als der Rekonstruktionswert verwendet wird, falls der darauffolgende Rekon
struktionswert nicht die Grenzen von benachbarten Koeffizienten überschreitet.
72. Verfahren nach Anspruch 70, das einen Abfragewert bzw. Abtastwert eines einer
Anzahl von unmittelbaren Nachbarn eines Mitten-Abtastwertes bzw. mittleren Abfrage
wertes als den Rekonstruktionswert verwendet, falls der darauffolgende Rekonstruk
tionswert nicht die Grenzen von benachbarten Koeffizienten überschreitet.
73. Verfahren nach Anspruch 72, bei welchem der Abtastwert einer der Anzahl der
unmittelbaren Nachbarn einen Wert hat, der näher an dem mittleren Abfragewert bzw.
Mitten-Abtastwert liegt als der andere der Anzahl der unmittelbaren Nachbarn.
74. Verfahren nach Anspruch 70, bei welchem die benachbarten Koeffizienten
benachbarte S-Koeffizienten umfassen.
75. Verfahren nach Anspruch 70, bei welchem der Rekonstruktionswert auf einen
Koeffizientenwert eines benachbarten Koeffizienten mit einem Wert, der dem Rekon
struktionswert am nächsten ist, gestutzt bzw. geclippt wird.
76. Verfahren zum Modellieren binärer Daten, das die folgenden Schritte umfaßt:
es wird bestimmt, ob eine erste vorbestimmte Anzahl von Bits in einem Fre quenzband dieselben sind;
ein erstes Bit mit einem ersten Zustand und ein zweites Bit werden zu einem Kodierer gesendet, falls die vorbestimmte Anzahl von Bits in dem Frequenzband dieselbe ist, wobei das zweite Bit anzeigt, ob die erste vorbestimmte Anzahl von Bits alle 1 oder alle 0 sind;
das erste Bit mit einem zweiten Zustand, der sich von dem ersten Zustand unterscheidet, wird zu dem Kodierer gesendet, falls die erste vorbestimmte Anzahl von Bits in dem Frequenzband nicht dieselbe ist;
falls die erste vorbestimmte Anzahl von Bits in dem Frequenzband nicht diesel be ist, dann wird bestimmt, ob eine zweite vorbestimmte Anzahl von Bits dieselbe ist;
ein drittes Bit wird gesendet, das anzeigt, ob die zweite vorbestimmte Anzahl von Bits dieselbe ist; und
ein Kontext für ein Ziel-Bit, das auf benachbarten Koeffizienten basiert, wird gesendet, falls die zweite vorbestimmte Anzahl von Bits nicht dieselbe ist.
es wird bestimmt, ob eine erste vorbestimmte Anzahl von Bits in einem Fre quenzband dieselben sind;
ein erstes Bit mit einem ersten Zustand und ein zweites Bit werden zu einem Kodierer gesendet, falls die vorbestimmte Anzahl von Bits in dem Frequenzband dieselbe ist, wobei das zweite Bit anzeigt, ob die erste vorbestimmte Anzahl von Bits alle 1 oder alle 0 sind;
das erste Bit mit einem zweiten Zustand, der sich von dem ersten Zustand unterscheidet, wird zu dem Kodierer gesendet, falls die erste vorbestimmte Anzahl von Bits in dem Frequenzband nicht dieselbe ist;
falls die erste vorbestimmte Anzahl von Bits in dem Frequenzband nicht diesel be ist, dann wird bestimmt, ob eine zweite vorbestimmte Anzahl von Bits dieselbe ist;
ein drittes Bit wird gesendet, das anzeigt, ob die zweite vorbestimmte Anzahl von Bits dieselbe ist; und
ein Kontext für ein Ziel-Bit, das auf benachbarten Koeffizienten basiert, wird gesendet, falls die zweite vorbestimmte Anzahl von Bits nicht dieselbe ist.
77. Verfahren nach Anspruch 76, bei welchem die vorbestimmte Anzahl von Bits
alle Ziel-Bits umfaßt.
78. Verfahren nach Anspruch 76, bei welchem der Schritt der Bestimmung, ob die
zweite vorbestimmte Anzahl von Bits dieselbe ist, die Bestimmung umfaßt, ob die
zweite vorbestimmte Anzahl von Bits Null-Kopfbits sind.
79. Verfahren zum Verarbeiten von Daten, das die folgenden Schritte umfaßt:
es wird bestimmt, ob zu versuchen ist, eine vorbestimmte Anzahl von Koeffi zienten als eine Gruppe zu kodieren;
die vorbestimmte Anzahl von Koeffizienten wird individuell kodiert, indem ein erstes Kontextmodell verwendet wird, falls nicht versucht wird, die vorbestimmte Anzahl von Koeffizienten als eine Gruppe zu kodieren;
als erstes wird die vorbestimmte Anzahl von Koeffizienten kodiert, wenn die Daten in einem vorbestimmten Zustand sind und der Versuch, die vorbestimmte Anzahl von Koeffizienten als eine Gruppe zu kodieren, erfolgreich ist; und
zweitens wird jeder Koeffizient in der vorbestimmten Anzahl von Koeffizienten unabhängig kodiert, wenn die Daten nicht in dem vorbestimmten Zustand sind und der Versuch, die vorbestimmte Anzahl von Koeffizienten als eine Gruppe zu kodieren, fehlschlägt, wobei das zweite Kodieren ein zweites Kontextmodell verwendet, das sich von dem ersten Kontextmodell unterscheidet.
es wird bestimmt, ob zu versuchen ist, eine vorbestimmte Anzahl von Koeffi zienten als eine Gruppe zu kodieren;
die vorbestimmte Anzahl von Koeffizienten wird individuell kodiert, indem ein erstes Kontextmodell verwendet wird, falls nicht versucht wird, die vorbestimmte Anzahl von Koeffizienten als eine Gruppe zu kodieren;
als erstes wird die vorbestimmte Anzahl von Koeffizienten kodiert, wenn die Daten in einem vorbestimmten Zustand sind und der Versuch, die vorbestimmte Anzahl von Koeffizienten als eine Gruppe zu kodieren, erfolgreich ist; und
zweitens wird jeder Koeffizient in der vorbestimmten Anzahl von Koeffizienten unabhängig kodiert, wenn die Daten nicht in dem vorbestimmten Zustand sind und der Versuch, die vorbestimmte Anzahl von Koeffizienten als eine Gruppe zu kodieren, fehlschlägt, wobei das zweite Kodieren ein zweites Kontextmodell verwendet, das sich von dem ersten Kontextmodell unterscheidet.
80. Verfahren nach Anspruch 79, bei welchem der Schritt des ersten Kodierens das
Kodieren eines Bits mit einem ersten Zustand mit einem Vorherseh-Kontext umfaßt.
81. Verfahren nach Anspruch 80, das weiter den Schritt des Überspringens der
vorbestimmten Anzahl von Koeffizienten umfaßt.
82. Verfahren nach Anspruch 79, bei welchem die Daten in einem vorbestimmten
Zustand sind, wenn gewisse Bits in der vorbestimmten Anzahl von Koeffizienten,
Mütter jener Koeffizienten oder nördliche Nachbarkoeffizienten der vorbestimmten
Anzahl von Koeffizienten alle Null-Kopfbits umfassen.
83. Verfahren nach Anspruch 79, bei welchem das unabhängige Kodieren eines
jeden Koeffizienten folgendes umfaßt:
Kopfbits eines jeden Koeffizienten werden dekodiert bis ein erstes 1-Bit auftritt;
ein Vorzeichenbit eines jeden Koeffizienten wird kodiert, wenn das erste 1-Bit auftritt; und
die Schwanzbits jedes Koeffizienten werden danach kodiert.
Kopfbits eines jeden Koeffizienten werden dekodiert bis ein erstes 1-Bit auftritt;
ein Vorzeichenbit eines jeden Koeffizienten wird kodiert, wenn das erste 1-Bit auftritt; und
die Schwanzbits jedes Koeffizienten werden danach kodiert.
84. Verfahren nach Anspruch 79, das weiter das Kodieren von Bitebenen einzelner
Frequenzbänder in der kindbasierten Ordnung umfaßt.
85. Verfahren nach Anspruch 79, bei welchem Bits in jedem Wichtigkeitsniveau in
Frequenzbandordnung kodiert werden.
86. Verfahren nach Anspruch 79, bei welchem das zweite Kontextmodell auf
Nachbarschaftskoeffizienten in demselben Frequenzband und auf einem Mutterkoeffi
zienten basiert.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/940,831 US6141446A (en) | 1994-09-21 | 1997-09-30 | Compression and decompression system with reversible wavelets and lossy reconstruction |
US08/940831 | 1997-09-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19844752A1 true DE19844752A1 (de) | 1999-04-15 |
DE19844752B4 DE19844752B4 (de) | 2005-10-13 |
Family
ID=25475500
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19844752A Expired - Fee Related DE19844752B4 (de) | 1997-09-30 | 1998-09-29 | Ein verbessertes Kompressions- und Dekompressionssystem mit reversiblen Wavelets und verlustbehafteter Rokonstruktion |
DE19861377A Expired - Fee Related DE19861377B4 (de) | 1997-09-30 | 1998-09-29 | Ein verbessertes Kompressions- und Dekompressionssystem mit reversiblen Wavelets und verlustbehafteter Rekonstruktion |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19861377A Expired - Fee Related DE19861377B4 (de) | 1997-09-30 | 1998-09-29 | Ein verbessertes Kompressions- und Dekompressionssystem mit reversiblen Wavelets und verlustbehafteter Rekonstruktion |
Country Status (5)
Country | Link |
---|---|
US (4) | US6141446A (de) |
JP (2) | JP3653183B2 (de) |
DE (2) | DE19844752B4 (de) |
GB (1) | GB2330473B (de) |
HK (1) | HK1020132A1 (de) |
Families Citing this family (170)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5842004A (en) * | 1995-08-04 | 1998-11-24 | Sun Microsystems, Inc. | Method and apparatus for decompression of compressed geometric three-dimensional graphics data |
US6535878B1 (en) * | 1997-05-02 | 2003-03-18 | Roxio, Inc. | Method and system for providing on-line interactivity over a server-client network |
US6275619B1 (en) * | 1997-08-29 | 2001-08-14 | Teralogic, Inc. | System and method for performing wavelet and inverse wavelet transformations of digital data using semi-orthogonal wavelets |
EP0901274B1 (de) | 1997-09-03 | 2004-04-07 | Hitachi, Ltd. | Verfahren und System zum Einbetten von Information in Daten |
AUPO951997A0 (en) * | 1997-09-29 | 1997-10-23 | Canon Information Systems Research Australia Pty Ltd | A decoder method and architecture |
US7197190B1 (en) * | 1997-09-29 | 2007-03-27 | Canon Kabushiki Kaisha | Method for digital data compression |
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 |
IL122299A (en) * | 1997-11-25 | 2003-11-23 | Broadcom Corp | Video encoding device |
JP3679586B2 (ja) * | 1997-12-24 | 2005-08-03 | キヤノン株式会社 | 符号化及び復号装置とその符号化及び復号方法 |
JP3570213B2 (ja) * | 1998-03-27 | 2004-09-29 | 株式会社日立製作所 | 電子透かし画像処理方法 |
JP3171243B2 (ja) * | 1998-05-22 | 2001-05-28 | 日本電気株式会社 | 画像合成システム及びその画像合成方法 |
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 |
US6763139B1 (en) * | 1998-07-03 | 2004-07-13 | Canon Kabushiki Kaisha | Image coding method and apparatus for localized decoding at multiple resolutions |
US6668097B1 (en) * | 1998-09-10 | 2003-12-23 | Wisconsin Alumni Research Foundation | Method and apparatus for the reduction of artifact in decompressed images using morphological post-filtering |
JP3883028B2 (ja) | 1998-12-14 | 2007-02-21 | 株式会社リコー | 画像符号化装置及び方法 |
AU765657B2 (en) * | 1999-01-14 | 2003-09-25 | Motorola Australia Pty Ltd | A method and apparatus for quantising and dequantising data |
US20030142875A1 (en) * | 1999-02-04 | 2003-07-31 | Goertzen Kenbe D. | Quality priority |
US6718065B1 (en) * | 1999-02-04 | 2004-04-06 | Quvis, Inc. | Optimized signal quantification |
AU772599B2 (en) * | 1999-02-04 | 2004-05-06 | Quvis, Inc. | Improving compressed image appearance using stochastic resonance and energy replacement |
JP2003504987A (ja) * | 1999-07-20 | 2003-02-04 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ビデオシーケンスを圧縮する符号化方法 |
US6704454B1 (en) * | 1999-07-23 | 2004-03-09 | Sarnoff Corporation | Method and apparatus for image processing by generating probability distribution of images |
KR100749291B1 (ko) * | 1999-07-27 | 2007-08-14 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 필터링 장치 |
JP2001136524A (ja) | 1999-11-02 | 2001-05-18 | Ricoh Co Ltd | 圧縮伸長装置 |
US6934420B1 (en) * | 1999-12-22 | 2005-08-23 | Trident Systems Incorporated | Wave image compression |
JP3487250B2 (ja) * | 2000-02-28 | 2004-01-13 | 日本電気株式会社 | 符号化音声信号形式変換装置 |
US6813387B1 (en) * | 2000-02-29 | 2004-11-02 | Ricoh Co., Ltd. | Tile boundary artifact removal for arbitrary wavelet filters |
US6549674B1 (en) * | 2000-10-12 | 2003-04-15 | Picsurf, Inc. | Image compression based on tiled wavelet-like transform using edge and non-edge filters |
KR100344900B1 (ko) * | 2000-05-15 | 2002-07-20 | 주식회사 이시티 | 영상 압축/복원 장치 및 그 방법 |
JP2002064709A (ja) * | 2000-06-06 | 2002-02-28 | Canon Inc | 画像処理装置及びその方法とそのコンピュータプログラム及び記憶媒体 |
JP2002077920A (ja) * | 2000-08-28 | 2002-03-15 | Sony Corp | 画像圧縮装置及び画像圧縮方法 |
US6947874B2 (en) * | 2000-11-16 | 2005-09-20 | Canon Kabushiki Kaisha | Entropy coding |
GB2370201B (en) * | 2000-12-18 | 2004-07-21 | Ubinetics Ltd | Level allocation |
US7162080B2 (en) * | 2001-02-23 | 2007-01-09 | Zoran Corporation | Graphic image re-encoding and distribution system and method |
FR2823338A1 (fr) | 2001-04-10 | 2002-10-11 | Koninkl Philips Electronics Nv | Procede et dispositif de post traitement d'images numeriques |
US6671324B2 (en) * | 2001-04-16 | 2003-12-30 | Mitsubishi Electric Research Laboratories, Inc. | Estimating total average distortion in a video with variable frameskip |
JP3657530B2 (ja) * | 2001-05-15 | 2005-06-08 | シャープ株式会社 | 画像形成装置 |
US20030023982A1 (en) * | 2001-05-18 | 2003-01-30 | Tsu-Chang Lee | Scalable video encoding/storage/distribution/decoding for symmetrical multiple video processors |
US7127117B2 (en) * | 2001-06-11 | 2006-10-24 | Ricoh Company, Ltd. | Image compression method and apparatus for suppressing quantization rate in particular region, image expansion method and apparatus therefor, and computer-readable storage medium storing program for the compression or expansion |
US7003173B2 (en) * | 2001-06-12 | 2006-02-21 | Sharp Laboratories Of America, Inc. | Filter for combined de-ringing and edge sharpening |
US7068850B2 (en) * | 2001-06-29 | 2006-06-27 | Equator Technologies, Inc. | Decoding of predicted DC coefficient without division |
US7113646B2 (en) * | 2001-06-29 | 2006-09-26 | Equator Technologies, Inc. | Decoding of predicted AC coefficient without division |
US7386146B2 (en) * | 2001-09-13 | 2008-06-10 | Canon Kabushiki Kaisha | Insertion of a message in a sequence of digital images |
JP3796432B2 (ja) * | 2001-10-31 | 2006-07-12 | キヤノン株式会社 | フィルタ処理装置およびフィルタ処理方法 |
KR100947399B1 (ko) * | 2001-11-22 | 2010-03-12 | 파나소닉 주식회사 | 부호화 방법 |
CN1946185B (zh) * | 2001-11-22 | 2014-07-23 | 松下电器产业株式会社 | 可变长度编码方法以及可变长度解码方法 |
US7469206B2 (en) * | 2001-11-29 | 2008-12-23 | Coding Technologies Ab | Methods for improving high frequency reconstruction |
US7151844B2 (en) * | 2001-12-06 | 2006-12-19 | General Motors Corporation | Image sensor method and apparatus having hardware implemented edge detection processing |
SE520682C2 (sv) * | 2001-12-06 | 2003-08-12 | Anoto Ab | Rekonstruering av ett virtuellt raster |
US6999627B2 (en) * | 2001-12-19 | 2006-02-14 | Freescale Semiconductor, Inc. | Deterministic prediction in an image processing system |
US7302104B2 (en) * | 2001-12-28 | 2007-11-27 | Ricoh Co., Ltd. | Smoothing tile boundaries of images encoded and decoded by JPEG 2000 |
PT1504408E (pt) | 2002-04-23 | 2016-02-25 | Ntt Docomo Inc | Sistema e método para codificação aritmética |
US9577667B2 (en) | 2002-04-23 | 2017-02-21 | Ntt Docomo, Inc. | System and method for arithmetic encoding and decoding |
JP4019790B2 (ja) | 2002-05-23 | 2007-12-12 | 富士ゼロックス株式会社 | 画像処理装置および画像処理プログラム |
US7031518B2 (en) * | 2002-07-01 | 2006-04-18 | Xerox Corporation | Segmentation method and system for Multiple Raster Content (MRC) representation of documents |
US8228849B2 (en) * | 2002-07-15 | 2012-07-24 | Broadcom Corporation | Communication gateway supporting WLAN communications in multiple communication protocols and in multiple frequency bands |
US7536305B2 (en) * | 2002-09-04 | 2009-05-19 | Microsoft Corporation | Mixed lossless audio compression |
US7424434B2 (en) * | 2002-09-04 | 2008-09-09 | Microsoft Corporation | Unified lossy and lossless audio compression |
DK1400954T3 (da) | 2002-09-04 | 2008-03-31 | Microsoft Corp | Entropi-kodning ved tilpasning af kodning mellem niveau- og runlængde/niveau-moduser |
US7433824B2 (en) * | 2002-09-04 | 2008-10-07 | Microsoft Corporation | Entropy coding by adapting coding between level and run-length/level modes |
US7328150B2 (en) * | 2002-09-04 | 2008-02-05 | Microsoft Corporation | Innovations in pure lossless audio compression |
CN100401778C (zh) * | 2002-09-17 | 2008-07-09 | 弗拉迪米尔·切佩尔科维奇 | 具有高压缩率和最小必需资源的快速codec |
JP4208533B2 (ja) * | 2002-09-19 | 2009-01-14 | キヤノン株式会社 | 画像処理装置及び画像処理方法 |
US20040101205A1 (en) * | 2002-11-27 | 2004-05-27 | General Electric Company | Position coding system and method |
US6651002B1 (en) * | 2002-12-20 | 2003-11-18 | Honeywell International Inc. | Wavelet compression of gravity correction data |
US7254277B2 (en) * | 2002-12-30 | 2007-08-07 | Texas Instruments Incorporated | Image processing with minimization of ringing artifacts and noise |
JP3772845B2 (ja) * | 2003-03-24 | 2006-05-10 | コニカミノルタホールディングス株式会社 | 画像処理プログラム、画像処理装置、および撮影装置 |
JP4045544B2 (ja) * | 2003-04-14 | 2008-02-13 | ソニー株式会社 | 符号化装置及び符号化方法 |
JP2005045452A (ja) * | 2003-07-25 | 2005-02-17 | Konica Minolta Business Technologies Inc | 画像処理装置、画像処理プログラム及び画像合成方法 |
US7724827B2 (en) * | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
WO2005051000A1 (en) * | 2003-11-21 | 2005-06-02 | Electronics And Telecommunications Research Institute | Interframe wavelet coding apparatus and method capable of adjusting computational complexity |
DE10355600B4 (de) * | 2003-11-28 | 2021-06-24 | OSRAM Opto Semiconductors Gesellschaft mit beschränkter Haftung | Halbleiterchip und Verfahren zur Herstellung von Halbleiterchips |
US7437013B2 (en) * | 2003-12-23 | 2008-10-14 | General Instrument Corporation | Directional spatial video noise reduction |
JP2007522724A (ja) * | 2004-01-30 | 2007-08-09 | トムソン ライセンシング | アダプティブレートコントロールによるエンコーダ |
JP2005333393A (ja) * | 2004-05-19 | 2005-12-02 | Sharp Corp | 画像圧縮装置,画像出力装置,画像伸張装置,印刷装置,画像処理装置,複写機,画像圧縮方法,画像伸張方法,画像処理プログラムおよび画像処理プログラムを記録した記録媒体 |
US7609899B2 (en) * | 2004-05-28 | 2009-10-27 | Ricoh Company, Ltd. | Image processing apparatus, image processing method, and recording medium thereof to smooth tile boundaries |
US7492953B2 (en) * | 2004-06-17 | 2009-02-17 | Smith Micro Software, Inc. | Efficient method and system for reducing update requirements for a compressed binary image |
AU2004321469B2 (en) * | 2004-07-14 | 2009-08-20 | Agency For Science, Technology And Research | Context-based encoding and decoding of signals |
US7545988B2 (en) * | 2004-08-09 | 2009-06-09 | George William Meeker | Image blocking artifact reduction via transform pair |
US7175090B2 (en) * | 2004-08-30 | 2007-02-13 | Cognex Technology And Investment Corporation | Methods and apparatus for reading bar code identifications |
US7058138B2 (en) * | 2004-09-01 | 2006-06-06 | Xg Technology, Llc | Coordinated numerical control of sideband energy and modulation compression method for the radio frequency transmission of high speed data |
WO2006029508A1 (en) * | 2004-09-13 | 2006-03-23 | Solace Systems Inc. | Highly scalable subscription matching for a content routing network |
US8363714B2 (en) | 2004-12-22 | 2013-01-29 | Entropic Communications, Inc. | Video stream modifier |
US10803126B1 (en) | 2005-01-13 | 2020-10-13 | Robert T. and Virginia T. Jenkins | Method and/or system for sorting digital signal information |
KR100672592B1 (ko) * | 2005-01-14 | 2007-01-24 | 엘지전자 주식회사 | 디스플레이 장치의 영상 보상장치 및 보상방법 |
TWI257256B (en) * | 2005-02-05 | 2006-06-21 | Via Tech Inc | Sampling method of image data |
JP4618676B2 (ja) | 2005-04-28 | 2011-01-26 | 株式会社リコー | 構造化文書符号の転送方法、画像処理システム、サーバ装置、プログラム及び情報記録媒体 |
US7668387B2 (en) * | 2005-06-20 | 2010-02-23 | Intel Corporation | Selective local transient improvement and peaking for video sharpness enhancement |
US7693709B2 (en) | 2005-07-15 | 2010-04-06 | Microsoft Corporation | Reordering coefficients for waveform coding or decoding |
US7599840B2 (en) * | 2005-07-15 | 2009-10-06 | Microsoft Corporation | Selectively using multiple entropy models in adaptive coding and decoding |
US7684981B2 (en) * | 2005-07-15 | 2010-03-23 | Microsoft Corporation | Prediction of spectral coefficients in waveform coding and decoding |
US7933337B2 (en) | 2005-08-12 | 2011-04-26 | Microsoft Corporation | Prediction of transform coefficients for image compression |
US7565018B2 (en) * | 2005-08-12 | 2009-07-21 | Microsoft Corporation | Adaptive coding and decoding of wide-range coefficients |
US7391915B1 (en) * | 2005-08-12 | 2008-06-24 | Texas Instruments Incorporated | Cache friendly method for performing inverse discrete wavelet transform |
US20070053442A1 (en) * | 2005-08-25 | 2007-03-08 | Nokia Corporation | Separation markers in fine granularity scalable video coding |
GB2429593A (en) | 2005-08-26 | 2007-02-28 | Electrosonic Ltd | Data compressing using a wavelet compression scheme |
JP2009529201A (ja) * | 2006-03-03 | 2009-08-13 | ハネウェル・インターナショナル・インコーポレーテッド | 都合のよい符合化システム |
ATE527833T1 (de) * | 2006-05-04 | 2011-10-15 | Lg Electronics Inc | Verbesserung von stereo-audiosignalen mittels neuabmischung |
WO2008005868A2 (en) * | 2006-06-30 | 2008-01-10 | Aperio Technologies, Inc. | Method for storing and retrieving large images via dicom |
US9137549B2 (en) * | 2006-07-25 | 2015-09-15 | Hewlett-Packard Development Company, L.P. | Compressing image data |
US7865025B2 (en) * | 2006-08-01 | 2011-01-04 | Ching-Wei Yeh | Data processing method in embedded block coding with optimized truncation module |
JP2008048240A (ja) * | 2006-08-18 | 2008-02-28 | Nec Electronics Corp | ビットプレーン復号装置およびビットプレーン復号方法 |
US20100040135A1 (en) * | 2006-09-29 | 2010-02-18 | Lg Electronics Inc. | Apparatus for processing mix signal and method thereof |
US9418667B2 (en) | 2006-10-12 | 2016-08-16 | Lg Electronics Inc. | Apparatus for processing a mix signal and method thereof |
JP2008109389A (ja) * | 2006-10-25 | 2008-05-08 | Canon Inc | 画像処理装置および画像処理装置の制御方法 |
WO2008060111A1 (en) * | 2006-11-15 | 2008-05-22 | Lg Electronics Inc. | A method and an apparatus for decoding an audio signal |
EP1926321A1 (de) * | 2006-11-27 | 2008-05-28 | Matsushita Electric Industrial Co., Ltd. | Hybride Strukturdarstellung |
WO2008069594A1 (en) | 2006-12-07 | 2008-06-12 | Lg Electronics Inc. | A method and an apparatus for processing an audio signal |
EP2102855A4 (de) | 2006-12-07 | 2010-07-28 | Lg Electronics Inc | Verfahren und vorrichtung zum decodieren eines audiosignals |
WO2008073455A1 (en) * | 2006-12-11 | 2008-06-19 | Koplar Interactive Systems International, L.L.C. | Spatial data encoding and decoding |
US8212805B1 (en) | 2007-01-05 | 2012-07-03 | Kenneth Banschick | System and method for parametric display of modular aesthetic designs |
US8503521B2 (en) * | 2007-01-16 | 2013-08-06 | Chih-Ta Star SUNG | Method of digital video reference frame compression |
WO2008093698A1 (ja) * | 2007-01-31 | 2008-08-07 | Sony Corporation | 情報処理装置および方法 |
US20100119073A1 (en) * | 2007-02-13 | 2010-05-13 | Lg Electronics, Inc. | Method and an apparatus for processing an audio signal |
US20100121470A1 (en) * | 2007-02-13 | 2010-05-13 | Lg Electronics Inc. | Method and an apparatus for processing an audio signal |
US8184710B2 (en) * | 2007-02-21 | 2012-05-22 | Microsoft Corporation | Adaptive truncation of transform coefficient data in a transform-based digital media codec |
US9554721B1 (en) * | 2007-04-23 | 2017-01-31 | Neurowave Systems Inc. | Seizure detector, brain dysfunction monitor and method |
JP4356031B2 (ja) * | 2007-05-17 | 2009-11-04 | ソニー株式会社 | 情報処理装置および方法 |
US8379229B2 (en) * | 2008-02-14 | 2013-02-19 | Seiko Epson Corporation | Simulation of a printed dot-pattern bitmap |
US8386271B2 (en) * | 2008-03-25 | 2013-02-26 | Microsoft Corporation | Lossless and near lossless scalable audio codec |
US8155436B2 (en) * | 2008-03-31 | 2012-04-10 | Konica Minolta Laboratory U.S.A., Inc. | Systems and methods for color data compression |
US20090244601A1 (en) * | 2008-03-31 | 2009-10-01 | Konica Minolta Systems Laboratory, Inc. | Systems and Methods for Color Data Compression |
US8121435B2 (en) * | 2008-03-31 | 2012-02-21 | Konica Minolta Laboratory U.S.A., Inc. | Systems and methods for resolution switching |
US8179974B2 (en) | 2008-05-02 | 2012-05-15 | Microsoft Corporation | Multi-level representation of reordered transform coefficients |
US8406307B2 (en) | 2008-08-22 | 2013-03-26 | Microsoft Corporation | Entropy coding/decoding of hierarchically organized data |
US8326077B2 (en) * | 2008-10-31 | 2012-12-04 | General Instrument Corporation | Method and apparatus for transforming a non-linear lens-distorted image |
JP5421609B2 (ja) * | 2009-02-17 | 2014-02-19 | キヤノン株式会社 | スキャン変換装置及び画像符号化装置、並びにそれらの制御方法 |
US8798158B2 (en) * | 2009-03-11 | 2014-08-05 | Industry Academic Cooperation Foundation Of Kyung Hee University | Method and apparatus for block-based depth map coding and 3D video coding method using the same |
JP5004986B2 (ja) | 2009-03-19 | 2012-08-22 | キヤノン株式会社 | スキャン変換装置及び画像符号化装置、並びにそれらの制御方法 |
JP5302769B2 (ja) | 2009-05-14 | 2013-10-02 | キヤノン株式会社 | スキャン変換装置及び画像符号化装置及びそれらの制御方法 |
JP5556996B2 (ja) * | 2010-01-06 | 2014-07-23 | ソニー株式会社 | 画像処理装置および方法 |
US10104391B2 (en) | 2010-10-01 | 2018-10-16 | Dolby International Ab | System for nested entropy encoding |
US20120082228A1 (en) | 2010-10-01 | 2012-04-05 | Yeping Su | Nested entropy encoding |
GB2484736B (en) * | 2010-10-22 | 2014-11-05 | Displaylink Uk Ltd | Image generation |
US8750383B2 (en) * | 2011-01-17 | 2014-06-10 | Exaimage Corporation | Systems and methods for wavelet and channel-based high definition video encoding |
US9807395B2 (en) | 2011-01-18 | 2017-10-31 | Dolby International Ab | Video decoder with reduced dynamic range transform with inverse transform shifting memory |
US8532425B2 (en) * | 2011-01-28 | 2013-09-10 | Sony Corporation | Method and apparatus for generating a dense depth map using an adaptive joint bilateral filter |
JP5507515B2 (ja) * | 2011-09-14 | 2014-05-28 | 富士フイルム株式会社 | 非可逆圧縮装置およびその動作制御方法ならびにその動作制御プログラム |
TWI595770B (zh) * | 2011-09-29 | 2017-08-11 | 杜比實驗室特許公司 | 具有對稱圖像解析度與品質之圖框相容全解析度立體三維視訊傳達技術 |
US9087260B1 (en) * | 2012-01-03 | 2015-07-21 | Google Inc. | Hierarchical randomized quantization of multi-dimensional features |
US8774540B2 (en) * | 2012-04-20 | 2014-07-08 | Broadcom Corporation | Tile support in decoders |
US9002126B2 (en) * | 2012-05-04 | 2015-04-07 | Environmental Systems Research Institute (ESRI) | Limited error raster compression |
US9307252B2 (en) * | 2012-06-04 | 2016-04-05 | City University Of Hong Kong | View synthesis distortion model for multiview depth video coding |
US8811735B2 (en) * | 2012-07-14 | 2014-08-19 | Sigma Designs, Inc. | System and method for scalar quantization error reduction |
US8891888B2 (en) | 2012-09-05 | 2014-11-18 | Google Inc. | Entropy coding for recompression of images |
US20140105511A1 (en) * | 2012-10-11 | 2014-04-17 | Macaulay-Brown, Inc. | Matched representation space method for numerically encoding data |
US9462152B2 (en) * | 2013-01-04 | 2016-10-04 | Korea University Research And Business Foundation | System and method for hiding reversible information |
US9165538B2 (en) | 2013-03-13 | 2015-10-20 | Displaylink (Uk) Limited | Image generation |
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. |
KR101348959B1 (ko) * | 2013-06-04 | 2014-01-14 | 한국항공우주연구원 | 4 행로 나무구조 벡터 양자화 방법 |
US9489104B2 (en) | 2013-11-14 | 2016-11-08 | Apple Inc. | Viewable frame identification |
US9582160B2 (en) | 2013-11-14 | 2017-02-28 | Apple Inc. | Semi-automatic organic layout for media streams |
US9241169B2 (en) * | 2013-12-17 | 2016-01-19 | Broadcom Corporation | Raster to block conversion in a compressed domain |
US20150254806A1 (en) * | 2014-03-07 | 2015-09-10 | Apple Inc. | Efficient Progressive Loading Of Media Items |
US9237350B2 (en) | 2014-06-16 | 2016-01-12 | Sony Corporation | Image processing system with random access capable integral image compression and method of operation thereof |
KR102123620B1 (ko) * | 2014-11-14 | 2020-06-26 | 엘지전자 주식회사 | 대용량 병렬 처리를 위해 비디오 신호를 엔트로피 인코딩 또는 엔트로피 디코딩하는 방법 및 장치 |
US10244250B2 (en) * | 2015-05-29 | 2019-03-26 | Samsung Electronics Co., Ltd. | Variable-rate texture compression using fixed-rate codes |
US10432932B2 (en) * | 2015-07-10 | 2019-10-01 | Mozilla Corporation | Directional deringing filters |
US10535114B2 (en) * | 2015-08-18 | 2020-01-14 | Nvidia Corporation | Controlling multi-pass rendering sequences in a cache tiling architecture |
US9992252B2 (en) | 2015-09-29 | 2018-06-05 | Rgb Systems, Inc. | Method and apparatus for adaptively compressing streaming video |
US9853660B1 (en) * | 2017-03-23 | 2017-12-26 | Intel Corporation | Techniques for parallel data compression |
US10838922B2 (en) * | 2017-03-31 | 2020-11-17 | International Business Machines Corporation | Data compression by using cognitive created dictionaries |
CN108491354B (zh) * | 2018-02-01 | 2021-04-13 | 四川大学 | 一种通用的离散信号分解和重建方法 |
JP7115099B2 (ja) * | 2018-07-25 | 2022-08-09 | セイコーエプソン株式会社 | 印刷装置、印刷方法および印刷システム |
US11470355B1 (en) | 2019-01-30 | 2022-10-11 | Vulcan Inc. | Quality control engine for video compression |
US11134276B1 (en) | 2019-01-30 | 2021-09-28 | Vulcan Inc. | Key and difference block video decompression |
US10979737B1 (en) * | 2019-01-30 | 2021-04-13 | Vulcan Inc. | Key and difference block video compression |
US11047737B2 (en) * | 2019-10-23 | 2021-06-29 | Spectral Sciences, Inc. | Temporal-spectral multiplexing sensor and method |
CN111199214B (zh) * | 2020-01-04 | 2023-05-05 | 西安电子科技大学 | 一种残差网络多光谱图像地物分类方法 |
CN117354545B (zh) * | 2023-12-06 | 2024-02-23 | 成都索贝数码科技股份有限公司 | 视频图像小波变换高频系数按限定尺寸分块编码方法 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB211833A (en) | 1923-02-23 | 1924-10-16 | Anders Emil Ryberg | Improvements in apparatus for cutting a web of paper into sheets |
US4316222A (en) * | 1979-12-07 | 1982-02-16 | Ncr Canada Ltd. - Ncr Canada Ltee | Method and apparatus for compression and decompression of digital image data |
GB2114833B (en) * | 1982-02-03 | 1985-06-05 | Tatung | Signal processing |
GB2163619A (en) * | 1984-08-21 | 1986-02-26 | Sony Corp | Error concealment in digital television signals |
ATE108587T1 (de) * | 1986-09-13 | 1994-07-15 | Philips Nv | Verfahren und schaltungsanordung zur bitratenreduktion. |
JPH0828875B2 (ja) * | 1989-08-21 | 1996-03-21 | 三菱電機株式会社 | 符号化装置および復号化装置 |
GB2247132A (en) * | 1990-08-17 | 1992-02-19 | Sony Broadcast & Communication | Digital video data compression |
GB2260459B (en) * | 1991-10-04 | 1995-03-29 | Sony Broadcast & Communication | Serial data decoder |
CA2088082C (en) * | 1992-02-07 | 1999-01-19 | John Hartung | Dynamic bit allocation for three-dimensional subband video coding |
US5272478A (en) * | 1992-08-17 | 1993-12-21 | Ricoh Corporation | Method and apparatus for entropy coding |
KR100287624B1 (ko) * | 1992-09-28 | 2001-04-16 | 야스카와 히데아키 | 화상데이타의압축,해제방법및그장치 |
US5381145A (en) * | 1993-02-10 | 1995-01-10 | Ricoh Corporation | Method and apparatus for parallel decoding and encoding of data |
AU6381394A (en) * | 1993-03-30 | 1994-10-24 | Lewis, Adrian S. | Data compression and decompression |
US5321522A (en) * | 1993-07-19 | 1994-06-14 | Xerox Corporation | ADCT compression with minimum compression ratio |
US5729631A (en) * | 1993-11-30 | 1998-03-17 | Polaroid Corporation | Image noise reduction system using a wiener variant filter in a pyramid image representation |
WO1995019683A1 (en) * | 1994-01-14 | 1995-07-20 | Houston Advanced Research Center | Boundary-spline-wavelet compression for video images |
US5491685A (en) * | 1994-05-19 | 1996-02-13 | Digital Pictures, Inc. | System and method of digital compression and decompression using scaled quantization of variable-sized packets |
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 |
US5867602A (en) * | 1994-09-21 | 1999-02-02 | Ricoh Corporation | Reversible wavelet transform and embedded codestream manipulation |
JPH08186714A (ja) * | 1994-12-27 | 1996-07-16 | Texas Instr Inc <Ti> | 画像データのノイズ除去方法及びその装置 |
GB2311704B (en) * | 1995-08-31 | 1998-04-15 | Ricoh Kk | Method and apparatus for compressing arbitrary data |
US5787203A (en) * | 1996-01-19 | 1998-07-28 | Microsoft Corporation | Method and system for filtering compressed video images |
US5841473A (en) * | 1996-07-26 | 1998-11-24 | Software For Image Compression, N.V. | Image sequence compression and decompression |
US5841969A (en) * | 1996-08-13 | 1998-11-24 | Honeywell Inc. | Single bus architecture supporting subsystems of various criticality levels |
EP0956701B1 (de) * | 1997-02-03 | 2005-11-23 | Sharp Kabushiki Kaisha | mit embedded coding arbeitender bildcodierer mit ratenstörungsoptimierung |
GB2325584B (en) * | 1997-05-01 | 2000-03-29 | Ricoh Kk | Decompression system using inverse wavelet transform |
JPH1118087A (ja) * | 1997-06-20 | 1999-01-22 | Olympus Optical Co Ltd | 画像データの変換装置および変換方法 |
-
1997
- 1997-09-30 US US08/940,831 patent/US6141446A/en not_active Expired - Lifetime
-
1998
- 1998-09-11 GB GB9819916A patent/GB2330473B/en not_active Expired - Fee Related
- 1998-09-29 DE DE19844752A patent/DE19844752B4/de not_active Expired - Fee Related
- 1998-09-29 DE DE19861377A patent/DE19861377B4/de not_active Expired - Fee Related
- 1998-09-30 JP JP27682398A patent/JP3653183B2/ja not_active Expired - Fee Related
-
1999
- 1999-10-19 HK HK99104603A patent/HK1020132A1/xx not_active IP Right Cessation
-
2000
- 2000-05-01 US US09/562,648 patent/US6754394B2/en not_active Expired - Fee Related
-
2003
- 2003-11-19 US US10/718,226 patent/US6996281B2/en not_active Expired - Fee Related
-
2004
- 2004-10-12 JP JP2004298155A patent/JP3973104B2/ja not_active Expired - Fee Related
-
2005
- 2005-09-23 US US11/233,808 patent/US7382925B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
HK1020132A1 (en) | 2000-03-10 |
US7382925B2 (en) | 2008-06-03 |
JPH11168633A (ja) | 1999-06-22 |
US6141446A (en) | 2000-10-31 |
JP2005102243A (ja) | 2005-04-14 |
GB9819916D0 (en) | 1998-11-04 |
JP3653183B2 (ja) | 2005-05-25 |
US20040114810A1 (en) | 2004-06-17 |
GB2330473B (en) | 1999-12-15 |
DE19861377B4 (de) | 2011-06-30 |
JP3973104B2 (ja) | 2007-09-12 |
DE19844752B4 (de) | 2005-10-13 |
US20020172429A1 (en) | 2002-11-21 |
GB2330473A (en) | 1999-04-21 |
US6996281B2 (en) | 2006-02-07 |
US20060023963A1 (en) | 2006-02-02 |
US6754394B2 (en) | 2004-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19861377B4 (de) | Ein verbessertes Kompressions- und Dekompressionssystem mit reversiblen Wavelets und verlustbehafteter Rekonstruktion | |
DE69633129T2 (de) | Waveletbaum-bildcoder mit überlappenden bildblöcken | |
DE19626615C2 (de) | Verfahren und Apparat zur Kompression, das bzw. der reversible Wavelet-Transformationen und einen eingebetteten Kodestrom verwendet | |
DE19626600C2 (de) | Kodierer und Verfahren zum Kodieren | |
US7027647B2 (en) | Coder matched layer separation for compression of compound documents | |
DE19534943B4 (de) | Vorrichtung zur Komprimierung unter Verwendung von eingebetteten Kleinwellen | |
US6941024B2 (en) | Coder matched layer separation and interpolation for compression of compound documents | |
DE69933461T2 (de) | Fehlerverdeckung für hierarchische subband kodierung und dekodierung | |
EP1110180B1 (de) | Eingebettete quadtree wavelets bildkompression | |
Hsiang | Highly scalable subband/wavelet image and video coding | |
DE19534730B4 (de) | Verfahren zum Codieren und Decodieren von Daten | |
DE602004001993T2 (de) | Transformations basiertes restbewegungsrahmen kodierungsverfahren mit übervollständiger basis und zugehörige vorrichtung zur videokompression | |
Pan et al. | A fast and low memory image coding algorithm based on lifting wavelet transform and modified SPIHT | |
EP3434015B1 (de) | Datenkompression mittels adaptiven unterabtastens | |
DE19819405B4 (de) | Implementation eines reversiblen eingebetteten Wavelet-Systems | |
DE60012717T2 (de) | Bildcodierung unter verwendung einer umordnung von wavelet-koeffizienten | |
DE602004011213T2 (de) | Intraframe-komprimierung und dekomprimierung von videosignalen mit fester bitrate | |
DE10143062C2 (de) | Verfahren und Vorrichtung zur Codierung oder Codierung und Übertragung digitaler Videoinformationen | |
AU719749B2 (en) | A method for digital data compression | |
Knipe | Improved spatial and transform domain compression schemes | |
DE19944300A1 (de) | Verfahren, Anordnung und Computerprogrammerzeugnis zur Bewegungsschätzung bei der Codierung von einem Bildobjekt in einem Bild | |
KR20000060518A (ko) | 영상 압축 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8369 | Partition in: |
Ref document number: 19861377 Country of ref document: DE Kind code of ref document: P |
|
Q171 | Divided out to: |
Ref document number: 19861377 Country of ref document: DE Kind code of ref document: P |
|
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 |