DE19861377B4 - Ein verbessertes Kompressions- und Dekompressionssystem mit reversiblen Wavelets und verlustbehafteter Rekonstruktion - Google Patents

Ein verbessertes Kompressions- und Dekompressionssystem mit reversiblen Wavelets und verlustbehafteter Rekonstruktion Download PDF

Info

Publication number
DE19861377B4
DE19861377B4 DE19861377A DE19861377A DE19861377B4 DE 19861377 B4 DE19861377 B4 DE 19861377B4 DE 19861377 A DE19861377 A DE 19861377A DE 19861377 A DE19861377 A DE 19861377A DE 19861377 B4 DE19861377 B4 DE 19861377B4
Authority
DE
Germany
Prior art keywords
coefficients
bit
information
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.)
Expired - Fee Related
Application number
DE19861377A
Other languages
English (en)
Inventor
Martin Calif. Boliek
Michael J. Calif. Gormish
Alexander F. Calif. Keith
Edward L. Calif. Schwarz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Application granted granted Critical
Publication of DE19861377B4 publication Critical patent/DE19861377B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/148Wavelet transforms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection 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/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/186Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/1883Methods 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/635Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods 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/647Methods 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/98Adaptive-dynamic-range coding [ADRC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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

Abstract

Verfahren zur Rekonstruktion von Bilddaten mit einer Vielzahl an Platten, umfassend: Empfangen von Koeffizienten entsprechend Hochfrequenzhorizontalinformation und Tieffrequenzvertikalinformation, beeinflusst durch eine Plattengrenze; und Empfangen von Koeffizienten entsprechend Hochfrequenzhorizontalinformation und Hochfrequenzvertikalinformation beeinflusst durch eine Plattengrenze; Rekonstruieren von ersten Koeffizienten entsprechend Tieffrequenzhorizontalinformation und Hochfrequenzvertikalinformation; Durchführen einer vertikalen inversen Transformation individuell mit jeder Platte, die rekonstruierte Koeffizienten entsprechend Tieffrequenzhorizontalinformation und Hochfrequenzvertikalinformation hat; Rekonstruieren von zweiten Koeffizienten entsprechend Hochfrequenzhorizontalinformation und Hochfrequenzvertikalinformation; und Durchführen einer horizontalen inversen Transformation individuell mit jeder Platte, die rekonstruierte Hochfrequenzhorizontalinformationen und Hochfrequenzvertikalinformationen hat, dadurch gekennzeichnet, daß die ersten Koeffizienten und zweiten Koeffizienten jeweils so rekontruiert werden, dass sie glatt über jede Grenze zwischen der Vielzahl an Platten sind.

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 Kompression-/Dekompressionssystemen.
  • Die Datenkompression ist ein sehr nützliches Werkzeug zur Speicherung und Übertragung 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 verlustbehafteten 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), zweidimensionale Daten (z. B. Daten, die sich in zwei räumliche Richtungen ändern (oder in einer räumlichen oder zeitlichen Dimension)) oder multidimensionale Daten bzw. multispektrale 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 Eingangssymbole (oder Intensitätsdaten) erforderlich sind. Verlustfreie Kodierverfahren beinhalten lexikalische Kodierverfahren (”dictionary methods of coding”, z. B. Lempel-Ziv), Lauflä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 Eingangssymbole oder Intensitätsdaten vor einer Konversion quantisiert, um Kodewörter auszugeben. 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 Datenkompressionskodierung. Verschiedene Formen der Transformation oder pyramidalen Signalverarbeitung sind vorgeschlagen worden, und zwar einschließlich einer Mehrfachauflösungs-Pyramidalverarbeitung und einer Wavelet-Pyramidalverarbeitung. Diese Formen werden ebenso als Unterbandverarbeitung bzw. Subbandverarbeitung und hierarchische Verarbeitung bezeichnet. Die pyramidale Waveletverarbeitung von Bilddaten 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”, IEEE 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, verwiesen. 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 hinsichtlich der Transformationsdomäne bringt komplexe Beziehungen zwischen vielen Koeffizienten mit sich. Zum Beispiel hat die Klasse aller linearen 2D-Rampen in der räumlichen 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. Typischerweise werden iterative Lösungen verwendet, wobei eine Verbesserungsoperation (Glätten/”De-Ringing” bzw. ”Ent-Überschwingen”/Kantenverbesserung bzw. „edge enhancement”) 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 identifizieren und die Kanten von einem Bild zu entfernen. Die Verwendung von Gauss-Funktionen bzw. gauss'schen Algorithmen bei der Kantendetektion haben eine lange Geschichte. Es wird z. B. auf D. 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. an 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. an 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 dass 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ünschenswert, 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 Kompressionsrate 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.
  • US 5,600,373 A befasst sich mit einem Verfahren gemäß der Präambel des Anspruchs 1.
  • Die vorliegende Erfindung wird durch den Gegenstand der angefügten Ansprüche definiert.
  • 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 Rekonstruktion von SD-Koeffizienten, damit diese glatt über die Grenze verlaufen, die Anwendung 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 Transformation, 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.
  • 1 zeigt kontextabhängige Verhältnisse, in denen ”Kinder” auf ihre ”Mütter” bzw. ”Eltern” (”parents”) konditioniert sind.
  • 2 ist ein Blockdiagramm einer Ausführungsform eines Kompressionssystems der vorliegenden Erfindung.
  • 3 und 4 zeigen mögliche geometrische Verhältnisse des Kontextmodells für jedes Bit einer jeden Bitebene in dem binären Stil.
  • 5 zeigt ein in Elemente unterteiltes Bild bzw. ”plattiertes” Bild.
  • 6 zeigt Wichtigkeitsniveau-Eintrittspunkte und Hauptkopfsyntax.
  • 7 zeigt Wichtigkeitsniveau-Eintrittspunkte und Platten”-Kopfsyntax.
  • 8 zeigt Wichtigkeitsniveau-Lokatoren und Hauptkopfsyntax.
  • 9 zeigt Wichtigkeitsniveau-Lokatoren und ”Platten”-Kopfsyntax.
  • 10 zeigt die Bittiefen der verschiedenen Koeffizienten bei einer Zwei-Niveau-TS-Transformation und einer TT-Transformationszerlegung eines Eingangsbildes mit b-Bits pro Pixel.
  • 11 zeigt eine Ausführungsform der Multiplizierer oder Ausrichtungen für das Frequenzband, das zur Koeffizientenausrichtung bei der vorliegenden Erfindung verwendet wird.
  • 12 zeigt Beispiele einer Bitsignifikanzdarstellung.
  • 13 zeigt Nachbarschaftskoeffizienten für jeden Koeffizienten einer Kodiereinheit.
  • 14 zeigt eine kindbasierte Abtastreihenfolge.
  • 15 zeigt eine Stelle von Referenzbits.
  • 16 zeigt Koeffizienten, die verwendet werden, um zu entscheiden, ob ein Vorhersehen versucht wird.
  • 17 zeigt eine Post-Vorherseh-Kopfbit-Kontextmodell-Nachbarschaftskoeffizientenverteilung.
  • 18 zeigt ein Beispiel eines Mutterkoeffizienten (”Parent”-Koeffizienten) und einer Bitebene.
  • 19 zeigt eine Nachbarschafts- und Mutterkoeffizientenverteilung hinsichtlich des Kopfbit-Kontextmodells.
  • 20 zeigt ein Flußdiagramm für ein Kontextmodell vom Transformationsstil.
  • 21 zeigt ein Flußdiagramm einer Ausführungsform des Dekodierungsprozesses der vorliegenden Erfindung.
  • 22 zeigt ein Flußdiagramm einer Ausführungsform des Dekodierungsprozesses der vorliegenden Erfindung.
  • 23 zeigt eine typische Verteilung für verlustbehaftete Rekonstruktion.
  • 24 zeigt ein Verfahren zur Berechnung der inversen TT-Transformation.
  • 25 zeigt Gewichte, die verwendet werden, um Pf über ”Platten”-Grenzen zu berechnen (voller Rahmen bzw. Vollbild).
  • 26 zeigt Gewichte, die verwendet werden, um Pt auf einer einzigen ”Platten”-Grenze mit Spiegelung zu berechnen.
  • 27 zeigt Gewichte, um Pf–Pt ungefähr zu berechnen.
  • 28A und 28B erläutern eine Entscheidung über lineare Rekonstruktion (28A) oder einer Stufenkanten-Rekonstruktion (28B), indem fünf S-Koeffizienten verwendet werden.
  • 29 zeigte eine Kantenextraktionsausführungsform, die eine Differenz einer gauß'schen Kantenextraktion für eine Auflösung erzeugt.
  • 30 zeigt eine partielle Transformation, die bei der Rekonstruktion zu verwenden ist.
  • 31 zeigt eine ”Clipping”-Rekonstruktion bzw. stutzende Rekonstruktion.
  • 32 zeigt die Entsprechung zwischen der Periode einer sinusförmigen und einer negativen Korrelation.
  • 33 zeigt ein Beispiel eines Einzelplattenpuffers (”Single-Tile”-Puffer).
  • 34 zeigt eine Ausführungsform eines FSM-Kodierers zur Verwendung beim „Häufig-Auftritts”-Kontextmodellieren.
  • 35 zeigt eine einzige Nachschlagtabelle, die in einem FSM-Kodierer aufgenommen werden kann, um beim ”Häufig-Auftritts”-Kontextmodellieren verwendet zu werden.
  • 36 ist ein Flußdiagramm einer Ausführungsform des Kontextmodells vom Binärstil.
  • 37 zeigt die Nachbarschaftskoeffizienten, die zu dem Kontext für das Kontextmodell vom Binärstil beitragen.
  • 38A und 38B zeigen zwei Beispiele von neun Zeigern, die beibehalten werden, um auf Speicherstellen für den nächsten Kontext zu zeigen.
  • 39 zeigt eine normalisierte Ausrichtung.
  • 40 zeigt eine pyramidale Ausrichtung.
  • 41 zeigt eine Ausführungsform der BVI-Kennung bzw. des BVI-Etiketts.
  • Es werden ein Verfahren und ein Apparat zur Kompression und Dekompression beschrieben. 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 Computerspeichers 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 notwendigerweise, 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 ähnlichen 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 Anzeigevorrichtungen 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 elektronischer Befehle geeignet ist, wobei diese jeweils mit einem Computersystembus gekoppelt sind. Die Algorithmen und Anzeigen, die hierin dargestellt werden, beziehen sich nicht inhärend auf irgendeinen bestimmten Computer oder anderen Apparat. Verschiedene 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 durchzufü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 Transformationskoeffizienten in einem Frequenzband bezüglich der anderen Frequenzbänder.
    arithmetisches Kodieren: (”arithmetic coding”) Shannon/Elias-Kodieren mit endlicher Präzisionsarithmetik, nicht notwendigerweise ein binärer Entropiekodierer.
    B-Kodieren: (”B-coding”) Ein binärer Entropiekodierer, der eine Maschine mit endlichen 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.
    Binärstil: (”binary-style”) Kodierstil mit kantenfüllendem Gray-Kodieren (”Edge-Fill”-Gray-Kodieren) der Pixel und eines bestimmten Kontextmodells.
    Binärstil-Kontextmodell: (”binary-style context model”) Ein Kontextmodell für Bi-Niveau- und Begrenzt-Niveau-Bilddaten (”Bi-Level”-Bilddaten und ”Limited-Level”-Bilddaten).
    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.
    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. Betrachtet man eine Abtastung eines ”Mutter”- bzw. ”Parent”-Frequenzbandes in Rasterordnung, so wird jeder Koeffizient vier Kinder haben. Diese Kinder werden von oben links, oben rechts, unten links und unten rechts geordnet, und zwar gefolgt durch die nächste Mutter (”parent”) und dem nächsten Satz von vier Kinder usw., bis zum Ende der Linie bzw. Zeile. Dann kehrt die Verarbeitung 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 Ausführungsform ist die Kopfsignalisierung nicht enthalten.
    Koeffizient (”coefficient”): Komponenten nach der Transformation.
    Komponenten: (”components”) Konstituierende Teile des Bildes. Die Komponenten bilden die Pixel. Zum Beispiel stellen die roten, grünen und blauen Binder Komponentenbänder dar. Jedes einzelne Pixel ist aus einer roten, grünen und blauen Komponente gebildet. Komponenten und Komponentenbänder können einen jeglichen Informationstyp enthalten, der eine räumliche 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.
    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.
    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.
    Eingebettet mit Ordnen: (”embedded with ordering”) Ein spezieller Fall des eingebetteten Kontextmodells, wo es keine explizite Markierung der Wichtigkeit gibt, sondern 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 Wichtigkeitsniveaus in einer Reihenfolge von dem wichtigsten zu dem am wenigstens wichtigen plaziert werden, dann wird die Quantisierung durch einfaches Abschneiden des Kodestroms durchgeführt. Dieselbe Funktionalität ist bei Kennungen (”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 Kodieren 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-Entropiekodierer bzw. Multikontext-Binär-Entropiekodierer bezeichnet. Der Kontext des aktuellen Bits stellt eine gewisse 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ängenkodierer oder einen Huffman-Kodierer enthalten.
    Eintrittspunkt: (”entry point”) Ein Punkt in den kodierten Daten, der mit einem bekannten Kodierzustand beginnt. Der Dekodierer kann bei diesem Punkt mit dem Dekodieren beginnen, ohne die vorhergehenden Daten zu dekodieren. In den meisten Fällen erfordert dies, daß der Kontext und der binäre Entropiekodierer 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.
    Feste Rate: (”fixed-rate”) Eine Anwendung oder ein System, das eine gewisse Pixelrate 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 begrenzter 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 fester Größe handeln.)
    Frequenzband: (”frequency band”) Jedes Frequenzband beschreibt eine Gruppe von Koeffizienten, die sich aus derselben Sequenz von Filteroperationen 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.
    Huffman-Kodierer: (”Huffman Coder”) Im allgemeinen ein Kode mit fester Länge, der eine ganzzahlige 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 demselben verlustbehafteten Kodestrom erneut komprimiert wird.
    Bildplatte: (”image tile”) Ein rechteckiger Bereich, der so gewählt wird, daß es ermöglicht wird, ein Gitter von benachbarten, nicht überlappenden Unterbildern festzulegen, wobei jedes identische Parameter aufweist. Bei einer Ausführungsform arbeiten die Kodieroperationen nur mit den Pixeldaten und Koeffizientendaten in einer Bildplatte. Diese Beschränkung erlaubt einen wahlfreien Zugriff und die Dekompression von interessierenden Bereichen. Bei einer Ausführungsform haben die Bildplatten alle dieselbe Größe, und zwar möglicherweise 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 einschließlich der Größe des Gesamtbildes haben.
    Wichtige Niveaus bzw. Pegel: (”importance levels”) Die Einheit von kodierten Daten, die vor einer Kompression einer gesamten Bitebene von eingebetteten Daten entspricht. Das Wichtigkeitsniveau enthält alle geeigneten Bitebenen von den unterschiedlichen Koeffizienten-Frequenzbändern.
    LPS (am wenigsten wahrscheinliches Symbol): (”Least Probable Symbol”) Das Ergebnis bzw. Resultat bei einer binären Entscheidung mit einer Wahrscheinlichkeit von weniger als 50%. Wenn die zwei Ergebnisse bzw. Resultate gleich wahrscheinlich 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.
    Verlustbehaftetes Kodieren: (”lossy coding”) Kodieren von Daten, das keine perfekte Rekonstruktion der Originaldaten garantiert. Die Änderungen an den Originaldaten können in einer solchen Art und Weise durchgeführt werden, so daß sie nicht visuell beanstandet oder detektiert werden können. Häufig ist eine feste Rate möglich.
    MPS (höchstwahrscheinliches Symbol): (”Most Probable Symbol”) Das Ergebnis bzw. das Resultat einer binären Entscheidung mit einer Wahrscheinlichkeit von mehr als 50%.
    Überlappte Transformation: (”overlapped transform”) Eine Transformation, wo ein einziger Quellenabtastpunkt zu mehreren Koeffizienten mit derselben Frequenz beiträ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 pyramidalen 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 Wahrscheinlichkeit innerhalb eines Kontextes verfolgt bzw. deren Spur folg.
    Progressive Pixeltiefe: (”progressive Pixel depth”) Ein Kodestrom, der mit sich vertiefenden bzw. tiefer gehenden Daten-Bitebenen bei voller Bildauflösung geordnet ist.
    Progressiv-Pyramiridal: (”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).
    Pyramidales Niveau: (”pyramidal level”) Platz in der Waveletzerlegungspyramide. Dies steht in direkter 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 Wahrscheinlichkeitsschätzungen aktualisiert werden, wenn Bits ausgegeben werden.
    Quantisierung: (”quantization”) Eine selektive Beseitigung oder Nicht-Verwendung von Daten oder Information. Eine Quantisierung führt notwendigerweise zu einer unperfekten (verlustbehafteten) Rekonstruktion. 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 übersprungen.
    Reversible Transformation: (”reversible transform”) Bei einer Ausführungsform ist eine reversible Transformation eine effiziente Transformation, die mit einer Ganzzahl-Arithmetik realisiert wird, deren komprimierte Ergebnisse in das Original rekonstruiert werden können.
    Kennung: (”tag”) Ein unkodierter Teil des Kodestroms, der Information über die Kodiercharakteristiken und die Grenzen des Kodestroms signalisiert. Bei einer Ausführungsform weisen Kennungen eine identifizierende Zahl auf, die ihre Funktion 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 Signifikanz als die höchst signifikanten Bits ungleich Null.
    Platten-Datensegment: (”tile data sgement”) Abschnitt des Kodestroms, der vollständig eine Kodiereinheit beschreibt.
    Transformationsstil: (”transform style”) 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.
    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.
    Vereinheitlicht-verlustfrei/ verlustbehaftet: (”unified lossless/lossy”) Dasselbe Kompressionssystem stellt einen Kodestrom bereit, der zur verlustfreien oder verlustbehafteten Rekonstruktion 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 AnalyseFilter, 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 Ausführungsform handelt es sich um eine Transformation, die einen Hochpaßfilter und einen Tiefpaßfilter umfaßt. Die sich ergebenden Koeffizienten werden um zwei dezimiert (kritisch gefiltert) und die Filter werden auf die Tiefpaßkoeffizienten 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 Waveletbaums 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 Anahl 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 genannt werden.
    Tabelle 1 Spannweite eines Waveletbaums für verschiedene Zerlegungsniveaus
    Breite Höhe Total
    1 Niveau 2 2 4
    2 Niveaus 4 4 16
    3 Niveaus 8 8 64
    4 Niveaus 16 16 256
    5 Niveaus 32 32 1024
    6 Niveaus 64 64 4096
  • Überblick über die vorliegende Erfindung
  • 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 Eingangsdaten können eine Vielfalt von Datentypen umfassen, wie z. B. Bilddaten (bewegte Bilddaten bzw. Videobilddaten oder Fotodaten), Audiodaten usw. Bei einer Ausführungsform 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 vorliegende 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.
  • Überblick über das System der vorliegenden Erfindung
  • 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 Pixelbilder. Jedoch sind reversible eingebettete Wavelets und andere Wavelettransformationssysteme 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.
  • 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 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 Bilddaten entweder zu der Wavelet-Stilverarbeitung (Blöcke 202, 203, 205) oder der Binär-Stilverarbeitung (Block 204) weitersendet. Bei der vorliegenden Erfindung ist die Entscheidung, welcher Modus zu verwenden ist, datenabhängig. Bei einer Ausführungsform umfaßt der Stil-Auswahlmechanismus 210 einen Multiplexer. Die Stilauswahl 210 wird während eines Dekodieren 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 Multikomponentenhandhabung) transformiert, indem reversible Wavelets im Wavelettransformationsblock 202 verwendet werden, und zwar, wie unten festgelegt wird, um eine Reihe von Koeffizienten 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 eingebetteter 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 Signifikanz (wie im folgenden beschrieben wird). In dem Fall des Transformationsmodus stellen die ”Bitebenen” Ebenen von Wichtigkeitsniveaus der Transformationskoeffizienten dar und das Kontextmodell 205 konditioniert die Waveletkoeffizienten in der Bitsignifikanzdarstellung.
  • Die Ergebnisse des Ordnen und Modellierens umfassen Entscheidungen (oder Symbole), 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) = xXORx/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 signifikanten 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. 3 zeigt das geometrische 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. 4 zeigt sieben Pixel und zwei Bits von Bitebeneninformation für 29 Kontextbins.
  • 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 Dekodieren kann ein Bit in dem Kopf der Platte verwendet werden, um den Stil zu bezeichnen, der verwendet wird, um die Daten zu kodieren. Die Stilauswahl 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.
  • Auswahl eines binären Stils oder Transformationsstils
  • 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 vollständiges (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 benachbarten Pixeln. Für ein normales Bild ist ein Histogramm sehr Laplace-artig und ein Waveletstil 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 Transformationsmodus 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 Vorabkenntnis 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 Erfindung kein Binärstilkodieren enthält und somit nur die reversible eingebettete Waveletkompression (CREW) und Dekompression verwendet.
  • Weiter stellt die vorliegende Erfindung ein Dekompressionssystem bereit. Das Dekompressionssystem der vorliegenden Erfindung beinhaltet Komponenten, um jene Operationen 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 beschrieben, wo es sich von dem Kompressionssystem unterscheidet (abgesehen davon, daß es einfach eine Umkehrung des Datenflusses darstellt).
  • Der Kodestrom der vorliegenden Erfindung
  • 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 bestimmten 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 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 Kodieren 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 Kompressionseffizienz durch drei Faktoren verringert, falls die Plattengröße zu klein ist: der signalisierende Overhead bzw. Überkopf, der Verlust der Kodiereffizienz an den Grenzen 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 Originalbildes.
  • 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 Komponenten 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.
  • Köpfe und Kennungen
  • Die vorliegende Erfindung verwendet Kennungen, um die Charakteristiken des Kodestroms 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, Zeigerkennungen 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. Zeigerkennungen („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
  • 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 mehreren 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ückspulen oder Speichern des Kodestromes schwierig ist.
  • Wichtigkeitsniveau-Eintrittspunkte, Hauptkopf (IEM)
  • 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 Wichtigkeitsniveaus 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 Ordnung 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 beschrieben) 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.
  • 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.
  • Wichtigkeitsniveau-Eintrittspunkte, Plattenkopf (JET)
  • 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 Kodierer ausgewählt. Jedoch ist ein Eintrittspunkt jedesmal erforderlich, wenn sich die Komponente in dem Datenstrom ändert. Ebenso, falls die erste Komponente nicht die Komponente mit der Nr. 0 ist, ist ein Eintrittspunkt mit einem Zeigerwert 0 erforderlich. Bei jedem Eintrittspunkt wird der Entropiekodierer auf einen bekannten Zustand zurückgesetzt. 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. Bemerkenswert 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 Eintrittspunkt für Komponente 0 Piem = 0 ist, ist keine Kennung für die Komponente 0 erforderlich.
  • Die Länge der IET-Kennung ist variabel und hängt von der Anzahl der Eintrittspunkte in jeder Platte ab.
  • 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 Wichtigkeitsniveau, das einen Eintrittspunkt hat.
    Pieti:
    Anzahl der Bytes von dem Ende des Plattenkopfs oder dem Beginn aller kodierten Daten in jener Platte bis zu dem i-ten Eintrittspunktbyte. Diese Aufzeichnungen 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.
  • Wichtigkeitsniveau-Lokalisierer, Hauptkopf (ILM)
  • 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 Wichtigkeitsniveaus 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.
  • 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 Aufzeichnungen 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. 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, falls nötig.
  • Wichtigkeitsniveau-Lokalisierer, Plattenkopf (ILT)
  • 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 Wichtigkeitsniveaus 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 Wichtigkeitsniveau 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.
  • 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 einschließ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 Wichtigkeitsniveau, das einen Lokalisierer hat.
    Pilmi:
    Anzahl der Bytes von dem Ende des Plattenkopfes oder dem Beginn aller kodierten 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.
  • Informationskennung
  • 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 Importance levels”) Kennung stellt ein Beispiel einer Informationskennung dar und ist in 41 gezeigt und wird weiter unten genauer beschrieben.
  • Reversible Wavelets
  • Die vorliegende Erfindung verwendet Kompression durch reversible Wavelets.
  • Waveletzerlegung
  • 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 Transformationsmatrix 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.
  • Zweidimensionale Waveletzerlegung
  • 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 Bezeichungen 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änder des ersten Niveaus 1SS, 1SD, 1DS und 1DD jeweils ein Viertel so viele Koeffizienten aufweisen, wie die Eingabe bzw. das Eingangssignal Pixel (oder Koeffizienten) des Bildes hat.
  • Das Unterband 1SS enthält simultan eine Tieffrequenzhorizontal- und eine Tieffrequenzvertikalinformation. 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 Unterband 1DS enthält Hochfrequenzhorizontalinformation und Tieffrequenzvertikalinformation (z. B. vertikale Kanteninformation). Das Unterband 1DD enthält eine Hochfrequenzhorizontalinformation 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 ähnlicher 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 entwikkelt 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.
  • Baumstruktur von Wavelets
  • 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 vorliegenden 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.
  • Durchführung der Vorwärts-Wavelettransformation
  • Bei der vorliegenden Erfindung wird die Wavelettransformation mit zwei 1-D-Operationen, 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ührungsform 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 stattdessen 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.
  • Berechnung bezüglich eines Waveletbaums
  • 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.
  • Figure 00410001
  • Die inverse Transformation ist in der folgenden Gleichung gezeigt:
    Figure 00410002
    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:
    Figure 00410003
    Für die TT-Transformation gilt: t(n) = ⌊ 3s(n – 2) – 22s(n – 1) + 22s(n + 1) – 3s(n + 2) + 32 / 64⌋
  • Bemerkenswert ist, daß bei der folgenden Diskussion die Notation ⌊.⌋ bedeutet, abzurunden bzw. abzuschneiden und wird manchmal als die Bodenfunktion (”floor function”) bezeichnet.
  • Diese Filter können realisiert werden, indem nur Addition- und Subtraktionsoperationen (plus hartverdrahtetes Bitverschieben) verwendet wird. Zum Beispiel kann die Multiplikation mit 3 und 22 durch Schiebungen und Addierungen durchgeführt werden.
  • Bemerkenswert ist, daß sowohl bei der reversiblen TS-Transformation und TI-Transformation, ä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 Ganzzahl-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-überlappenden Filter macht. Diese Eigenschaft ist wichtig für die Hardwarerealisierung.
  • Eingebettetes Ordnen
  • 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 Koeffizienten 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 Kodestromes 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.
  • Bitsignifikanzdarstellung
  • 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 Bitsignifikanzdarstellung 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 Betragsbit 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 einschließ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. 12 zeigt Beispiele der Bitsignifikanzdarstellung. Tabelle 2 zeigt alle möglichen Werte für Formbit-Koeffizienten, die von –7 bis 8 reichen. Tabelle 2 Bitsignifikanzdarstellung für 4-Bit-Werte
    Dezimal 2er Komplement Vorzeichenbetrag Bit-Signifikanz
    –8 1000
    –7 1001 1111 11 1 1
    –6 1010 1110 11 1 0
    –5 1011 1101 11 0 1
    –4 1100 1100 11 0 0
    –3 1101 1011 0 11 1
    –2 1110 1010 0 11 0
    –1 1111 1001 0 0 11
    0 0000 0000 0 0 0
    1 0001 0001 0 0 10
    2 0010 0010 0 10 0
    3 0011 0011 0 10 1
    4 0100 0100 10 0 0
    5 0101 0101 10 0 1
    6 0110 0110 10 1 0
    7 0111 0111 10 1 1
  • 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 Bitebenenkodieren nicht verwendet werden. Bei einer alternativen Ausführungsform wird eine Bitebene nur kodiert, wenn ein Koeffizient als eine binäre Zahl signifikant wird.
  • Koeffizientenausrichtung
  • Die vorliegende Erfindung richtet Koeffizienten zueinander vor der Bitebenenkodierung aus. Dies liegt daran, weil die Koeffizienten in den unterschiedlichen Frequenz-Unterbändern unterschiedliche Frequenzen darstellen, ähnlich wie bei der FFT oder DCT. Durch Ausrichtung der Koeffizienten steuert die vorliegende Erfindung die Quantisierung. Die weniger stark quantisierten Koeffizienten werden in Richtung auf die vorhergehenden 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.
  • 39 zeigt eine normalisierte Ausrichtung und 40 zeigt eine pyramidale Ausrichtung.
  • 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 ausgedrü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 10 gezeigt. 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. Wichtigkeitsniveaus, 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 Wichtigkeitsniveau 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 39 gezeigt ist. Tabelle 3 Koeffizientenausrichtung für normalisierte Ausrichtung
    1-DD 1-DS, 1-SD 2-DD 2-DS, 2-SD 3-DD 3-DS, 3-SD 4-DD 4-DS, 4-SD
    Referenz links 1 links 1 links 2 links 2 links 3 links 3 links 4
  • Die Ausrichtung von Koeffizienten unterschiedlicher Größe ist sowohl dem Kodierer als auch dem Dekodierer bekannt und hat keinen Einfluß auf die Effizienz des Entropiekodierers.
  • Bemerkenswert ist, daß Kodiereinheiten desselben Datensatzes unterschiedliche Ausrichtungen haben können.
  • Ordnen des Kodestroms und des Kontextmodells
  • Bei einer Ausführungsform umfaßt der Kodestrom der vorliegenden Erfindung einen Hauptkopf, Plattenköpfe und Schwanzdaten. Jede Platte weist wenigstens einen Datenpunkt von jeder Komponente in dem Bild auf. Die Komponentendaten werden transformiert (unter Verwendung einer Transformationsstil- oder Binärstil-Kodierung) und dann in den Wichtigkeitsniveaus ausgerichtet bzw. dort eingepaßt. Die Wichtigkeitsniveaus 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 Prozess 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 Komponente 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 Rasterordnung mit dem höchst signifikanten Bit (MSB) zuerst und dem niedrigst signifikanten Bit (LSB) zuletzt gepackt, und zwar ungeachtet der Tiefe des Koeffizienten. Vorzeichenbehaftete 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 Wichtigkeitsniveaus 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 Eintrittspunkten 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 Eintrittspunkt, 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-Unterbandes 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 verwendet 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 Entropiekodierer den Bitstrom zu modellieren, der durch die Koeffizienten in der eingebetteten Bitsignifikanzreihenfolge erzeugt wird.
  • 13 zeigt die Nachbarschaftskoeffizienten für jeden Koeffizienten einer Kodiereinheit. Nimmt man Bezug auf 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 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 verbessern.
  • Kontextmodell-Transformationsstil
  • 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.
  • Kindbasierte Ordnung
  • Bei einer Ausführungsform werden die Bitebenen der einzelnen Frequenzbänder in der Reihenfolge SS DSn SDn DDn ... DSi SDi DDi ... DSl SDl DDl 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 kindbasierte 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-Frequenzbandes 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. 14 zeigt diese Ordnung.
  • Frequenzband-Bitebenen-Vorhersehen
  • Bei einer Ausführungsform werden die Bits in dem Wichtigkeitsniveau in der Frequenzbandreihenfolge 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. (Bemerkenswert 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 Wichtigkeitsniveau 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 wesetlichen, 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 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 Wichtigkeitsniveau befindet als das aktuelle Bit, nimmt man an, daß die Mutter ein Null-Kopfbit ist (die Mutter wird nicht verwendet).
  • 16-Bit-Vorhersehen
  • 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. (Bemerkenswert ist, daß ein Eins-Bit kodiert werden kann, selbst falls das Vorhersehen erfolgreich 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. 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 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-Koeffizienten 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, verwendet 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.
  • Post-Vorhersehen
  • 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 unmittelbar 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.
  • Post-Vorherseh-Kopfbit-Kontextmodell
  • 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 würde. Tabelle 4 zeigt die Typen von Information, die für jeden Koeffizienten verwendet werden. 17 zeigt die Beiträge der Nachbarschaftskoeffizienten. Tabelle 4 Koeffizient-Kontextinformation
    Definition Typ A Typ B
    Referenzbit ist ein Null-Kopfbit 00 0
    Referenzbit ist ein Kopfbit mit einem Wert 1 01 1
    Referenzbit ist das erste oder zweite Schwanzbit 10 1
    Referenzbit ist ein Schwanzbit nach dem zweiten Schwanzbit 11 1
  • 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.
  • Kopfbit-Kontextmodell, wenn Vorhersehen nicht versucht wird
  • 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 Kodieren verfügbar. Es ist ebenso klar, daß nur eine gewisse Information 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. 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 19 gezeigt. Die Typen beziehen sich auf Tabelle 4.
  • Vorzeichenbit-Kontextmodell
  • Das Vorzeichenbit eines jeden Koeffizienten wird unmittelbar nach dem letzten Kopfbit (das erste Eins-Bit) jenes Koeffizienten kodiert. Das Vorzeichenbit ist Teil des Wichtigkeitsniveaus, 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. Tabelle 5 Vorzeichenbit-Kontextinformation
    Definition Bits
    Vorzeichen eines nördlichen Koeffizienten ist unbekannt 0
    Vorzeichen eines nördlichen Koeffizienten ist positiv 1
    Vorzeichen eines nördlichen Koeffizienten ist negativ 2
  • Schwanzbit-Kontextmodell
  • Das Schwanzbit-Kontextmodell unterscheidet sich von den Kopf- oder Vorzeichenbit-Kontextmodellen. Es besteht aus drei Zuständen, die darauf basieren, wieviele Schwanzbits in dem aktuellen Koeffizienten sind bzw. waren. Tabelle 6 zeigt diese Werte. Tabelle 6 Schwanzbit-Kontextinformation
    Definition Bits
    Referenzbit ist erstes Schwanzbit 0
    Referenzbit ist zweites oder drittes Schwanzbit 1
    Referenzbit ist mehr als drittes Schwanzbit 2
  • Schritte zur Modellierung einer jeden Frequenzband-Bitebene
  • Eine Ausführungsform des Prozesses zur Modellierung einer jeden Bitebene eines jeden Frequenzbandes eines jeden Wichtigkeitsniveaus kann grafisch in 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ührungsform gibt es insgesamt fünf unabhängige Kontexte. Tabelle 7 Entscheidungen in dem Kontextmodell-Flußdiagramm
    Entscheidung Frage
    D1 Sind alle Ziel-Bits in dem Frequenzband Null?
    D2 Sind 16 Koeffizienten in den aktuellen zwei Reihen verblieben und, wenn dem so ist, sind die vier Mütter und die acht nördlichen Nachbar-Null-Kopfbits in der aktuellen Bitebene und die 16 Ziel-Koeffizienten-Bit-Null-Kopfbits in der vorhergehenden Bitebene?
    D3 Sind die 16 Ziel-Bit-Null-Kopfbits in der aktuellen Bitebene?
    D4 War das eben kodierte Kopfbit ein Eins-Bit?
    D5 Wurde das Ende der 16 Bits oder der Zeilen erreicht?
    D6 Wurde das Ende des Frequenzbandes erreicht?
    D7 Ist das Ziel-Bit ein Kopfbit?
    D8 War das eben kodierte Kopfbit ein Eins-Bit?
    D9 Wurde das Ende der 16 Bits der Zeilen erreicht?
    Tabelle 8 Kodieren in dem Kontextmodell-Flußdiagramm
    Kode Bit zu kodieren Kontext
    C1 alle Bits == 0?0:1 Frequenzband (1 Kontext)
    C2 alle Bits == 0?0:1 Vorhersehen (2 Kontexte) vorhergehendes Vorherseh-Ergebnis vorhergehendes C2-Bit kodiert (1 Bit)
    C3 Ziel-Bit Post-Vorherseh-Bit (16 Kontexte) Nachbarschaftsinformation (4 Bits)
    C4 Vorzeichenbit Vorzeichenbit (3 Kontexte) nördliches Nachbarschafts-Vorzeichenbit (1 Bit) oder unbekannt
    C5 Ziel-Bit Kopfbit (512 Kontexte) Mutter in (2 Bits) Nachbarschaftsinformation (7 Bits)
    C6 Ziel-Bit Schwanzbit (3 Kontexte) Ziel-Koeffizienteninformation (Tiefe in Schwanz) (2 Bits)
  • Eine alternative Ausführungsform eines Kontextmodells, das eine Ausführungsform einer Vorzeichen-/Betragseinheit enthält, die Eingangskoeffizienten in ein Vorzeichen-/Betragsformat 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 Anmeldung 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 Ausfü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. Alternativ können mehrere (physikalische oder virtuelle) Kodierer verwendet werden, um mehrere (physikalische oder virtuelle) Datenströme zu erzeugen.
  • Binärstil-Kontextmodell
  • 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. 36 zeigt den Fluß dieses Kontextmodells.
  • Frequenzband-Bitebenen-Vorhersehen
  • Die Bits in dem Wichtigkeitsniveau werden in dem Frequenzband kodiert, das, wie oben definiert, geordnet ist. Wenn eine Bitebene eines Frequenzbandes kodiert wird (möglicherweise 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 Entropiekodierer 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.
  • 16-Bit-Vorhersehen
  • 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.
  • Räumliches Kontextmodell
  • 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 Dekodieren.
  • Die ”Diamanten” bzw. Rauten von 36 werden in Tabelle 9 beschrieben. Tabelle 9 Entscheidungen in dem Kontextmodell-Flußdiagramm
    Entscheidung Frage Beschreibung
    D1 Sind alle Ziel-Bits (Bits, die gegenwärtig kodiert werden, in dem Frequenzband dieselben?
    D2 Sind die 16 Ziel-Bits in der aktuellen Bit-Ebene dieselben?
    D3 Wurde das Ende der 16 Bits oder der Zeilen erreicht?
    D4 Wurde das Ende des Frequenzbandes erreicht?
  • Die Kodierboxen von 36 sind in Tabelle 10 beschrieben. Tabelle 10 Kodieren in dem Kontextmodell-Flußdiagramm
    Kode Bit zum Kode Kontext Beschreibung
    C1 Alle Bits == x?0:1 Frequenzband (1 Kontext)
    C2 x Äquivalentbit (1 Kontext)
    C3 Alle Bits == y?0:1 Vorhersehen (2 Kontexte)
    C4 y Äquivalentbits (falls es dasselbe ist, ist es eine 1 oder 0) (1 Kontext)
    C5 Ziel-Bit Bit (128 Kontexte) 7 Nachbarschaftsbits
  • Nachbarschaftskoeffizienten
  • Die Nachbarschaftskoeffizienten, die zu dem Kontext beitragen, sind in 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 benachbart sein werden.
  • Der Kodier- und Dekodierprozeß der vorliegenden Erfindung
  • Die 21 zeigt eine Ausführungsform des Kodierprozesses der vorliegenden Erfindung. Nimmt man Bezug auf 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 Koeffizienten 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 Verarbeitungsblock 2103 fort, wo die Verarbeitungslogik einen reversiblen Filter auf die Daten anwendet. Nach der Anwendung des reversiblen Filters testet die Verarbeitungslogik, ob es ein anderes pyramidales Niveau gibt, das gewünscht ist (Verarbeitungsblock 2104). Falls ein anderes pyramidales Niveau gewünscht ist, wendet die Verarbeitungslogik den reversiblen Filter auf die LL-Koeffizienten an (Verarbeitungsblock 2105) und die Verarbeitung kehrt zu einem Verarbeitungsblock 2104 zurück, wo der Test wiederholt 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ß.
  • 22 zeigt eine Ausführungsform des Dekodierprozesses der vorliegenden Erfindung. Nimmt man Bezug auf 22, so beginnt der Prozeß durch Erfassen kodierter Daten für eine Platte (Verarbeitungsblock 2201). Als nächstes entropie-dekodiert die Verarbeitungslogik die dekodierten Daten (Verarbeitungsblock 2202). Die Verarbeitungslogik 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-Kontextmodell modelliert und ein inverses Gray-Kodieren mit den Daten durchführt (Verarbeitungsblock 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 Verarbeitungsblock 2204 fortschreitet, wo die Verarbeitungslogik jedes Bit eines jeden Koeffizienten mit dem Kontextmodell modelliert, dann konvertiert die Verarbeitungslogik 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 Zerlegung 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 (Verarbeitungsblock 2210). Falls es mehr Platten in dem Bild gibt, kehrt die Verarbeitungsschleife zurück zu dem Verarbeitungsblock 2201 und dann wird der Prozeß wiederholt; ansonsten endet der Prozeß.
  • Entropiekodieren
  • Bei einer Ausführungsform wird die gesamte Entropiekodierung, die durch die vorliegende 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-Parallelkodierer usw. Ein einzelner Kodierer kann verwendet werden, um einen einzigen Ausgabe-Kodestrom zu erzeugen. Alternativ können mehrere (physikalische oder virtuelle) Kodierer verwendet werden, um mehrere (physikalische oder virtuelle) Datenströme zu erzeugen.
  • Bei einer Ausführungsform umfaßt der binäre Entropiekodierer der vorliegenden Erfindung 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 Adaptive Binary Arithmetic”, 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 Wahrscheinlichkeitsversatz 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-Kodierer 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 Wahrscheinlichkeiten exzellent, die nahe bei 0,5 liegen. Eine Kompression für stark asymmetrische 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öglichkeit 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-Kodierern. 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 Apparatus 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 Erfindung 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-Hardware oder durch Multiprozessor-Computer realisiert, ohne die Kompressionsleistungsfähigkeit zu opfern. Eine Ausführungsform eines Hochgeschwindigkeits-Parallelkodierers, 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 fundamentale Rückkopplungsschleifen beschränkt. Eine mögliche Lösung ist es, den hereinkommenden Datenstrom in mehrere Ströme aufzuteilen und diese zu paralleln 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-Parallelkodierer, 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 Wahrscheinlichkeiten 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.
  • Verlustbehaftete Kompressions-Rekonstruktion
  • Verlustbehaftete Koeffizienten-Rekonstruktion
  • Nachdem die Koeffizienten quantisiert worden sind, gibt es einen Zahlenbereich innerhalb 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 Ausfü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 Ausfü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. 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 alternativ 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 ausgewä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 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ätzung wird basierend auf den Daten, die bereits bekannt sind, erzeugt. Bei einer Ausführungsform kann ein Histogramm von quantisierten Koeffizienten verwendet werden, um die Vorhersage durchzuführen.
  • Die Varianz in der Verteilung kann während des Kodieren 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 signalisiert. Ein derartiges Signalisieren kann durch ein separates Signal oder durch Bereitstellen 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 Rekonstruktionspunkt ausgewählt wird, kann eine unterschiedliche Energiemenge in das Bild eingeführt bzw. injiziert werden. Bei einer Ausführungsform werden unterschiedliche Rekonstruktionspunkte für unterschiedliche pyramidale Niveaus oder unterschiedliche Unterbänder verwendet.
  • Bei einer Ausführungsform kann vor dem Sammeln von Daten ein vorgegebener Rekonstruktionspunkt 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 unterschiedlicher Verteilungen auszugleichen, stellt die vorliegende Erfindung folgendes bereit:
  • s2
    = Abtastvarianz
    Q
    = Quantisierung
    Figure 00720001
    worin s2 die Abtastvarianz ist, die durch den Dekoder gemessen wird, und zwar basierend 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.
    Figure 00720002
    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 Koeffizienten 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.
  • Rausch-Injektion
  • 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 Waveletkoeffizienten 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 Erfindung 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-quantisierten 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älligen 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-Transformation-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 Koeffizienten injiziert. Zum Beispiel kann Rauschen nur in die Pyramidalniveau-1-DD-Koeffizienten 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 Amplitude und die Abweichung des Rauschens in dem Originalbild dem Dekoder signalisiert. 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.
  • Ent-Plattierung und Ent-Überschwingung (”detiling” und ”deringing”) Die Zwei-Zehn-Transformation erlaubt gewisse Vorteile bei der Rekonstruktion nach verlustbehafteter Kompression. Zur Re-Iteration wird die Zwei-Zehn-Transformation wie folgt definiert: Sn = ⌊(X2n + X2n+1)/2⌋ Bn = X2n – X2n+1 Pn = (3Sn-2 – 22Sn-1 + 22Sn+1 – 3Sn+2 + 32)/64 Dn = Bn + Pn X2n = Sn + ⌊(Dn – Pn + 1)/2⌋ oder Sn + ⌊(Bn + 1)/2⌋ X2n+1 = Sn – ⌊(Dn – Pn)/2⌋ oder Sn – ⌊Bn/2⌋
  • 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.
  • Neue Ordnung für Zwei-Durchgangs-Inverstransformation
  • 24 zeigt ein Verfahren zum Berechnen der inversen TT-Transformation, das nützlich 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-Komponenten). 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 Bildmodell 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-Inverstransformation der vorliegenden Erfindung reduziert das Bedürfnis, Zwischenergebnisse zu sichern, um die Transformation zu berechnen und Quantisierungsgrenzen zu bestimmen. 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 24, so beginnt der Zwei-Durchgangs-Inverstransformationsprozeß 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 Durchlaufs 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.
  • Rekonstruktion und Stutzen bzw. Abschneiden (”clipping”)
  • Eine Ausführungsform eines Verfahrens zum Erzeugen einer bevorzugten Rekonstruktion ist wie folgt:
    Figure 00760001
  • 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 Verbindung mit der Kantenextraktion im folgenden diskutiert.
  • Das Stutzen bzw. Abschneiden (im folgenden auch ”Clipping” genannt) ist eine Operation, 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öglichen 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 berechnen („void” steht für Leerstelle; „twoten” für „zwei-zehn”)
    Figure 00770001
  • 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 Abtastungen identisch rekonstruiert werden, das heißt es ist der ”P”-Abschnitt der TT-Transformation. 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”.
  • Figure 00780001
  • 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.
  • Figure 00790001
  • Eine Ausführungsform der inverse_calc0- und inverse_calc1-Routinen lautet wie folgt:
    Figure 00790002
  • Bemerkenswert ist, daß eine dieser Routinen für die geraden Abtastungen und eine für die ungeraden Abtastungen dient.
  • Rekonstruktion hinsichtlich Plattengrenzen
  • 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ärtstransformation unabhängig mit jeder Platte durchgeführt. Während des Dekodieren 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-Transformationskoeffizienten aus den folgenden Gründen beseitigt werden. Der TT-Tiefpaßfilter 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:
    Figure 00800001
    Figure 00810001
  • Der P-Abschnitt des inversen TS-Filters, der eine Funktion von S-Koeffizienten ist, lautet wie folgt: P = (3S–2 – 22S_1 + 22S1 – 3S2 + 32)/64.
  • 25 zeigt die Gewichte, die zur Berechnung von Pf über die Plattengrenzen verwendet werden (voller Rahmen bzw. Vollbild). 26 zeigt die Gewichte, die zur Berechnung 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:
    Figure 00810002
    Figure 00820001
  • 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”.
  • Figure 00820002
  • Die Quantisierung von DS- und DD-Koeffizienten wird durch die vertikale Transformation 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.
  • Figure 00820003
  • 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. 27 erläuterte Gewichte zum ungefähren Berechnen von Pf – Pt. Versetzt-um-eins-Fehler aufgrund eines unterschiedlichen Ganzzahl-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-Koeffizienten in anderen Platten mit SS-Koeffizienten anzunähern, um den Speichergebrauch zu reduzieren.
  • Weil der TT-Filter verlustfrei ist, kann eine Platten-Artifakt-Enfernung als eine Post-Verarbeitung durchgeführt werden. Ein Bild kann dekomprimiert werden ohne eine Platten-Artifakt-Entfernungskonstruktion. Die Stelle der Plattengrenzen und die Quantisierung werden zur späteren Verwendung gesichert. Wenn ein Bild ohne Platten-Artifkate gewünscht wird, kann das Bild transformiert werden und dann kann es unter Verwendung der Information über die Plattenstellen und die Quantisierung ohne Platten-Artifakte 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 bevorzugte 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.
  • Rekonstruktion von Stufenkanten
  • 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. 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 Rekonstruktion oder eine Stufenkanten-Rekonstruktion durchzuführen ist, wie folgt. Bemerkenswert ist, daß in dem Prozeß ein ”B-Wert, die Differenz zwischen zwei Abtastungen, 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 maximale 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 vorliegende 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 Rekonstruktion 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 stelle Unterschiede zwischen dem äußeren und inneren Paar von S-Werten dar. Beispiele sind in 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-Transformation-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 Rekonstruktionsverfahren der vorliegenden Erfindung für alle Transformationsniveaus verwendet werden. Hinsichtlich natürlicher Bilder kann diese Rekonstruktion nur für Hochfrequenz-Transformationsniveaus verwendet werden.
  • Angepaßte Filter-Rekonstruktion
  • Das Ziel einer Rekonstruktion unter Verwendung angepaßter Filter ist es, keine Information 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 vorliegenden Erfindung, der in Abhängigkeit davon verwendet werden kann, ob oder ob nicht eine Kante gefunden ist bzw. wurde, wie folgt:
    3 –22 0 22 –3 - keine Kante
    0 –13 –9 25 –3 - Kante links
    0 0 –48 64 –16 - Kante links
    3 –25 9 13 0 - Kante rechts
    16 –64 48 0 0 - Kante rechts
  • 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 entspricht den obigen Filtern.
    1 –4 4 –4 1
    0 –1 3 –3 –1
    0 0 2 –3 1
    1 –3 3 –1 0
    1 –3 2 0 0
  • 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 ist. (Zum Beispiel 48)
    • 3) Für einen angepaßten Filter mit vier Abgriffen die Antwortstärke des entsprechenden 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.
  • Kantenextraktion (”edge extraction”)
  • 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 unterschiedlichen Ausmaßen bzw. Stärken einer Gauß-Glättung.
  • Eine Kantenextraktion verwendet eine Differenz einer Gauß-Technik, wie in 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 Berechnungseffizienz 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 (horziontal oder vertikal benachbart). Die vorliegende Erfindung 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 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.
  • Verwendung eines bevorzugten Raumdomänenbildes
  • 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-Wavelettransformation 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 30. Dann stutzt bzw. clippt die vorliegende Erfindung Koeffizienten von der Teil-Transformation auf den gültigen Bereich der quantifizierten 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.
  • Tiefpaßkoeffizienten überdecken Kanten
  • Das Kanten-Auffindverfahren der vorliegenden Erfindung lokalisiert Kanten mit der Genauigkeit eines einzigen Pixels. S- oder SS-Koeffizienten bei der inversen Wavelettransformation 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 Zerlegungsniveaus 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. Sattdessen 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.
  • Clipping-Rekonstruktionen bzw. stutzende Rekonstruktionen
  • 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 (”ringing”). 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.
  • 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 Abtastungen 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 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 mittleren 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.
  • Strukturextraktion
  • 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 Strukturmodell-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 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 Ganzzahl-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 Schwellenwerte können verwendet werden.
  • Figure 00930001
  • Der Wert von r beträgt die halbe Periode der Sinuskurve. Die Parameter x und y 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 Dekodieren verwendet.
  • Figure 00930002
  • 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 Dekodieren 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-Korrelationsraum 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 Sinuskurve 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.
  • Spezieller Puffer für eine Platte (”tile”)
  • Bei einer Ausführungsform wird das Kodierverfahren der vorliegenden Erfindung mit Software realisiert, die auf einem Prozessor oder mehreren Prozessoren in einem Computersystem 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. Verlagerungen, 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 vertikale 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.
  • 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 38A, so beinhalten die neun Zeiger Zeiger zu den Koeffizienten N, X, U und S. Weiter nach links von den N-, X- und U-Koeffizienten 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. 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-Information 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-Implementation 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 benachbarten 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 33 gezeigt. Deshalb wird, ungeachtet, wie groß die Plattengröße ist, ein größerer Speicherbereich 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 Nordwest-(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 offensichtlich ist, daß mehr als ein Zeiger mit einer geringeren Anzahl von Offsets in Abhängigkeit von der Realisierung verwendet werden kann.
  • Ein anderer Vorteil der vorliegenden Erfindung ist, daß, falls die Größe des Speicherblockes 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 Ausfü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 verwendet 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.
  • Kontextmodellieren bei üblichem Auftreten
  • 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 Vorhersehen (”look ahead”), wie in 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 Vorherseh-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 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 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 Läufe 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 aufeinanderfolgende 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 vorbestimmten 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.
  • 34 zeigt eine Ausführungsform der vorliegenden Erfindung. Nimmt man Bezug auf 34, so beinhaltet der FSM-Kodierer 3400 eine Nachschlagtabelle (LUT) 3401, die angeschlossen ist, um den aktuellen FSM-Zustand 3410, den aktuellen Wahrscheinlichkeitszustand 3420 für den Kontext und Bits 3430 in dem kodierten Bitstrom, die dekodiert 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 Kontextmodells, einschließlich ihrer Zeiger.
  • Kehrt man zurück zu 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 Bitstrom-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-Minimum 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 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.
  • Störungsausbreitung über Platten
  • 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 Plattenlangen-Hauptkopfparameter.
    Tabelle 11 Bits gegenüber Wichtigkeitsniveauwerten
    Parameter Größe Werte
    BVI 16 0×ff61
    Lbvi 16 10-65535
    Cbvii 8 1-255
    Ibvii 16 0-65535
    Pbvii 32 0-(232-1)
    res 8 0 (falls nötig)
    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 Komponente 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 beschriebene 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 Wichtigkeitsniveaus in Ibvii beziehen. Dieser Pbvi-Parameter zusammen mit Cbvi und Ibvi bilden einen Datensatz, der für jede beschriebene Komponente und jedes beschriebene 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ährleistet 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 quantisiert 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 überjede 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 Wichtigkeitsniveau 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 Wichtigkeitsniveau 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. beeinträchtigt. Bei einer Ausführungsform befinden sich die Daten in einer normalisierten Ausrichtung, wie in 39 gezeigt ist. Bei einer alternativen Ausführungsform befinden sich die Daten in einer pyramidalen Ausrichtung, wie in 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 pyramidalen 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 subtrahiert, 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ührungsform 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 40, so können die Daten von dem Wichtigkeitsniveau 30 zu dem Wichtigkeitsniveau 25 dekodiert werden und dann vom Wichtigkeitsniveau 24 zum Niveau 20 abgeschnitten werden. Das Dekodieren der Daten würde 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 Wichtigkeitsniveau 9 zum Wichtigkeitsniveau 5 auftreten, mit einem Abschneiden vom Wichtigkeitsniveau 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 40 die Bildauflö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 dramatisch die Anzahl der Wichtigkeitsniveaus. Jedoch vereinfacht es, weil jedes Frequenzband 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 würde, 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 Komponenten 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 ungeachtet 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-Kennungsinformation. 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 Transformation bzw. Kompression mit reversiblen Wavelets wird insbesondere auf die deutschen Patentanmeldungen 198 19 405 und 196 26 600 der gleichen Anmelderin hingewiesen.
  • Bezugszeichenliste
  • Fig. 2
  • 201
    Bilddaten
    211
    Multikomponenten-Handhabung
    210
    Stilauswahl
    202
    reversible Wavelettransformation
    203
    eingebettete Ordnungsquantisierung
    204
    eingebettetes Binärstilkodieren
    205
    Kontextmodellieren
    206
    Entropiekodieren
    Fig. 21
    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-Kontextmodell
    Fig. 22
    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-Kontextmodell
    2212
    Gray-invers Kodieren
    Fig. 29
    2901
    Tiefpaßfilter horizontal
    2902
    Tiefpaßfilter vertikal
    2903
    Differenz horizontal
    2904
    Differenz vertikal
    2905
    Lokalmaximum
    2906
    Lokalmaximum

Claims (12)

  1. Verfahren zur Rekonstruktion von Bilddaten mit einer Vielzahl an Platten, umfassend: Empfangen von Koeffizienten entsprechend Hochfrequenzhorizontalinformation und Tieffrequenzvertikalinformation, beeinflusst durch eine Plattengrenze; und Empfangen von Koeffizienten entsprechend Hochfrequenzhorizontalinformation und Hochfrequenzvertikalinformation beeinflusst durch eine Plattengrenze; Rekonstruieren von ersten Koeffizienten entsprechend Tieffrequenzhorizontalinformation und Hochfrequenzvertikalinformation; Durchführen einer vertikalen inversen Transformation individuell mit jeder Platte, die rekonstruierte Koeffizienten entsprechend Tieffrequenzhorizontalinformation und Hochfrequenzvertikalinformation hat; Rekonstruieren von zweiten Koeffizienten entsprechend Hochfrequenzhorizontalinformation und Hochfrequenzvertikalinformation; und Durchführen einer horizontalen inversen Transformation individuell mit jeder Platte, die rekonstruierte Hochfrequenzhorizontalinformationen und Hochfrequenzvertikalinformationen hat, dadurch gekennzeichnet, daß die ersten Koeffizienten und zweiten Koeffizienten jeweils so rekontruiert werden, dass sie glatt über jede Grenze zwischen der Vielzahl an Platten sind.
  2. Verfahren nach Anspruch 1, wobei die Koeffizienten entsprechend Tieffrequenzhorizontalinformation und der Hochfrequenzvertikalinformation horizontale Kanteninformation umfassen.
  3. Verfahren nach Anspruch 1, wobei die vertikale inverse Transformation eine Zwei-Zehn-Transformation (TT-Transformation) umfasst.
  4. Verfahren nach Anspruch 1, wobei die Koeffizienten entsprechend Hochfrequenzhorizontalinformation und Hochfrequenzvertikalinformation diagonale Kanteninformation umfassen.
  5. Verfahren nach Anspruch 1, wobei die horizontale inverse Transformation eine Zwei-Zehn-Transformation (TT-Transformation) umfasst.
  6. Verfahren nach Anspruch 1, wobei die Rekonstruktion der Koeffizienten entsprechend Tieffrequenzhorizontalinformation und Hochfrequenzvertikalinformation, die Durchführung der inversen vertikalen Transformation, die Rekonstruktion von Koeffizienten entsprechend Hochfrequenzhorizontalinformation und Hochfrequenzvertikalinformation, und die Durchführung der inversen horizontalen Transformation für jede Einheit von kodierten Daten wiederholt wird.
  7. Verfahren nach Anspruch 6, wobei die inverse horizontale Transformation mit einem Paar von Bildlinien durchgeführt wird.
  8. Verfahren nach Anspruch 6, wobei jede Einheit der kodierten Daten ein Wichtigkeitsniveau umfasst.
  9. Verfahren nach Anspruch 1, weiter umfassend ein Konsistentmachen der rekonstruierten Koeffizienten mit den tatsächlich quantisierten Koeffizienten.
  10. Verfahren nach Anspruch 1, weiter umfassend: Sichern von Koeffizienten entsprechend Hochfrequenzhorizontalinformation und Tieffrequenzvertikalinformation, beeinflusst durch eine Plattengrenze; und Sichern von Koeffizienten entsprechend Hochfrequenzhorizontalinformation und Hochfrequenzvertikalinformation beeinflusst durch eine Plattengrenze.
  11. Computer-Softwareprodukt, welches ein Verfahren nach einem der vorherigen Ansprüche ausführt.
  12. Apparat mit Einrichtungen zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 10.
DE19861377A 1997-09-30 1998-09-29 Ein verbessertes Kompressions- und Dekompressionssystem mit reversiblen Wavelets und verlustbehafteter Rekonstruktion Expired - Fee Related DE19861377B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/940,831 1997-09-30
US08/940,831 US6141446A (en) 1994-09-21 1997-09-30 Compression and decompression system with reversible wavelets and lossy reconstruction

Publications (1)

Publication Number Publication Date
DE19861377B4 true DE19861377B4 (de) 2011-06-30

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 Before (1)

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

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)

* Cited by examiner, † Cited by third party
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
EP1198780A4 (de) * 1999-02-04 2005-08-17 Quvis Inc Verbesserung des aussenhens eines komprimierten bildes unter verwendung stochastischer resonanz und energieaustausches
US6718065B1 (en) * 1999-02-04 2004-04-06 Quvis, Inc. Optimized signal quantification
US20030142875A1 (en) * 1999-02-04 2003-07-31 Goertzen Kenbe D. Quality priority
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
EP1119911A1 (de) * 1999-07-27 2001-08-01 Koninklijke Philips Electronics N.V. Filterungsschaltung
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 キヤノン株式会社 フィルタ処理装置およびフィルタ処理方法
KR101022091B1 (ko) * 2001-11-22 2011-03-17 파나소닉 주식회사 부호화 방법 및 부호화 장치
CN1946187B (zh) * 2001-11-22 2012-02-22 松下电器产业株式会社 可变长度编码方法以及可变长度解码方法
PT1423847E (pt) * 2001-11-29 2005-05-31 Coding Tech Ab Reconstrucao de componentes de frequencia elevada
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
EP1335607A3 (de) * 2001-12-28 2003-10-22 Ricoh Company, Ltd. Vorrichtung und Verfahren zur Bildglättung
DK2312498T3 (en) * 2002-04-23 2015-11-16 Ntt Docomo Inc System and method for arithmetic coding and decoding
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
US7424434B2 (en) * 2002-09-04 2008-09-09 Microsoft Corporation Unified lossy and lossless audio compression
US7536305B2 (en) 2002-09-04 2009-05-19 Microsoft Corporation Mixed lossless audio compression
US7433824B2 (en) * 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
ATE381090T1 (de) 2002-09-04 2007-12-15 Microsoft Corp Entropische kodierung mittels anpassung des kodierungsmodus zwischen niveau- und lauflängenniveau-modus
US7328150B2 (en) * 2002-09-04 2008-02-05 Microsoft Corporation Innovations in pure lossless audio compression
CA2499212C (en) * 2002-09-17 2013-11-19 Vladimir Ceperkovic Fast codec with high compression ratio and minimum required resources
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
US7991051B2 (en) * 2003-11-21 2011-08-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
BRPI0506846B1 (pt) * 2004-01-30 2018-12-11 Thomson Licensing codificador de vídeo e método para codificar quadros de imagens divisíveis em macro-blocos
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
WO2006006936A1 (en) * 2004-07-14 2006-01-19 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
JP2008526077A (ja) * 2004-12-22 2008-07-17 エヌエックスピー ビー ヴィ ビデオストリーム変更装置
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
US7684981B2 (en) * 2005-07-15 2010-03-23 Microsoft Corporation Prediction of spectral coefficients in waveform coding and decoding
US7599840B2 (en) * 2005-07-15 2009-10-06 Microsoft Corporation Selectively using multiple entropy models in adaptive coding and decoding
US7693709B2 (en) 2005-07-15 2010-04-06 Microsoft Corporation Reordering coefficients for waveform coding or decoding
US7565018B2 (en) * 2005-08-12 2009-07-21 Microsoft Corporation Adaptive coding and decoding of wide-range coefficients
US7933337B2 (en) 2005-08-12 2011-04-26 Microsoft Corporation Prediction of transform coefficients for image compression
US7391915B1 (en) * 2005-08-12 2008-06-24 Texas Instruments Incorporated Cache friendly method for performing inverse discrete wavelet transform
WO2007023377A1 (en) * 2005-08-25 2007-03-01 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
GB2450023B (en) * 2006-03-03 2011-06-08 Honeywell Int Inc An iris image encoding method
EP1853092B1 (de) * 2006-05-04 2011-10-05 LG Electronics, Inc. Verbesserung von Stereo-Audiosignalen mittels Neuabmischung
US8086077B2 (en) * 2006-06-30 2011-12-27 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 ビットプレーン復号装置およびビットプレーン復号方法
JP5174027B2 (ja) * 2006-09-29 2013-04-03 エルジー エレクトロニクス インコーポレイティド ミックス信号処理装置及びミックス信号処理方法
JP5232791B2 (ja) 2006-10-12 2013-07-10 エルジー エレクトロニクス インコーポレイティド ミックス信号処理装置及びその方法
JP2008109389A (ja) * 2006-10-25 2008-05-08 Canon Inc 画像処理装置および画像処理装置の制御方法
BRPI0718614A2 (pt) * 2006-11-15 2014-02-25 Lg Electronics Inc Método e aparelho para decodificar sinal de áudio.
EP1926321A1 (de) * 2006-11-27 2008-05-28 Matsushita Electric Industrial Co., Ltd. Hybride Strukturdarstellung
KR101100223B1 (ko) 2006-12-07 2011-12-28 엘지전자 주식회사 오디오 처리 방법 및 장치
WO2008069584A2 (en) 2006-12-07 2008-06-12 Lg Electronics Inc. A method and an apparatus for decoding an audio signal
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 情報処理装置および方法
US20100121470A1 (en) * 2007-02-13 2010-05-13 Lg Electronics Inc. Method and an apparatus for processing an audio signal
JP2010518460A (ja) * 2007-02-13 2010-05-27 エルジー エレクトロニクス インコーポレイティド オーディオ信号の処理方法及び装置
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
US8121435B2 (en) * 2008-03-31 2012-02-21 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for resolution switching
US20090244601A1 (en) * 2008-03-31 2009-10-01 Konica Minolta Systems Laboratory, Inc. Systems and Methods for Color Data Compression
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
KR101481481B1 (ko) * 2013-01-04 2015-01-13 고려대학교 산학협력단 가역 정보 은닉 시스템 및 방법
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
WO2016076677A1 (ko) * 2014-11-14 2016-05-19 엘지전자(주) 대용량 병렬 처리를 위해 비디오 신호를 엔트로피 인코딩 또는 엔트로피 디코딩하는 방법 및 장치
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 セイコーエプソン株式会社 印刷装置、印刷方法および印刷システム
US11134276B1 (en) 2019-01-30 2021-09-28 Vulcan Inc. Key and difference block video decompression
US11470355B1 (en) 2019-01-30 2022-10-11 Vulcan Inc. Quality control engine for video compression
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 成都索贝数码科技股份有限公司 视频图像小波变换高频系数按限定尺寸分块编码方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19626600A1 (de) * 1995-06-30 1997-01-09 Ricoh Kk Reversible-Wavelet-Transformationen und eingebettete Kodestrom-Manipulation
US5600373A (en) * 1994-01-14 1997-02-04 Houston Advanced Research Center Method and apparatus for video image compression and decompression using boundary-spline-wavelets
US5661822A (en) * 1993-03-30 1997-08-26 Klics, Ltd. Data compression and decompression

Family Cites Families (24)

* Cited by examiner, † Cited by third party
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
DE3750206C5 (de) * 1986-09-13 2019-11-14 Philips Gmbh 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
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
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
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
WO1998034398A2 (en) * 1997-02-03 1998-08-06 Sharp Kabushiki Kaisha An embedded image coder with rate-distortion optimization
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 画像データの変換装置および変換方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5661822A (en) * 1993-03-30 1997-08-26 Klics, Ltd. Data compression and decompression
US5600373A (en) * 1994-01-14 1997-02-04 Houston Advanced Research Center Method and apparatus for video image compression and decompression using boundary-spline-wavelets
DE19626600A1 (de) * 1995-06-30 1997-01-09 Ricoh Kk Reversible-Wavelet-Transformationen und eingebettete Kodestrom-Manipulation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BGH Beschl. V. 28.03.2000 - X ZB 36/98 (BPatG) - Graustufenbild *

Also Published As

Publication number Publication date
HK1020132A1 (en) 2000-03-10
US6141446A (en) 2000-10-31
GB9819916D0 (en) 1998-11-04
US6996281B2 (en) 2006-02-07
US20040114810A1 (en) 2004-06-17
US20020172429A1 (en) 2002-11-21
GB2330473B (en) 1999-12-15
JP2005102243A (ja) 2005-04-14
DE19844752B4 (de) 2005-10-13
US7382925B2 (en) 2008-06-03
JP3653183B2 (ja) 2005-05-25
JP3973104B2 (ja) 2007-09-12
DE19844752A1 (de) 1999-04-15
GB2330473A (en) 1999-04-21
US20060023963A1 (en) 2006-02-02
JPH11168633A (ja) 1999-06-22
US6754394B2 (en) 2004-06-22

Similar Documents

Publication Publication Date Title
DE19861377B4 (de) Ein verbessertes Kompressions- und Dekompressionssystem mit reversiblen Wavelets und verlustbehafteter Rekonstruktion
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
DE69633129T2 (de) Waveletbaum-bildcoder mit überlappenden bildblöcken
DE69434862T2 (de) Segmentierungs-basiertes entfernen von artefakten aus einem jpeg-bild
DE69722601T2 (de) Datenkompression mit hybrider verlustloser entropiekodierung von run-length codes
US6256415B1 (en) Two row buffer image compression (TROBIC)
DE69835528T2 (de) Eingebetteter dct-basierte standbildkodierungsalgorithmus
DE19534943B4 (de) Vorrichtung zur Komprimierung unter Verwendung von eingebetteten Kleinwellen
US7027647B2 (en) Coder matched layer separation for compression of compound documents
DE60109423T2 (de) Videokodierung mit prädiktiver bitebenenkodierung und progressiver fein-granularitätsskalierung (pfgs)
US6941024B2 (en) Coder matched layer separation and interpolation for compression of compound documents
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
EP3434015B1 (de) Datenkompression mittels adaptiven unterabtastens
DE69915843T2 (de) Teilbandkodierung/-dekodierung
DE19819405B4 (de) Implementation eines reversiblen eingebetteten Wavelet-Systems
DE60012717T2 (de) Bildcodierung unter verwendung einer umordnung von wavelet-koeffizienten
EP1285537B1 (de) Verfahren und eine anordnung zur codierung bzw. decodierung einer folge von bildern
DE602004011213T2 (de) Intraframe-komprimierung und dekomprimierung von videosignalen mit fester bitrate
DE10143062C2 (de) Verfahren und Vorrichtung zur Codierung oder Codierung und Übertragung digitaler Videoinformationen
Topiwala et al. Region of interest compression using pyramidal coding schemes
Knipe Improved spatial and transform domain compression schemes
KR20000060518A (ko) 영상 압축 방법
EP1085761A1 (de) Bewegungsschätzung in einem objektorientierten Videokodierer

Legal Events

Date Code Title Description
Q369 Divided out of:

Ref document number: 19844752

Country of ref document: DE

Kind code of ref document: P

8110 Request for examination paragraph 44
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20111001

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee