DE19534943B4 - Vorrichtung zur Komprimierung unter Verwendung von eingebetteten Kleinwellen - Google Patents

Vorrichtung zur Komprimierung unter Verwendung von eingebetteten Kleinwellen Download PDF

Info

Publication number
DE19534943B4
DE19534943B4 DE19534943A DE19534943A DE19534943B4 DE 19534943 B4 DE19534943 B4 DE 19534943B4 DE 19534943 A DE19534943 A DE 19534943A DE 19534943 A DE19534943 A DE 19534943A DE 19534943 B4 DE19534943 B4 DE 19534943B4
Authority
DE
Germany
Prior art keywords
result
data
bit
coefficients
coefficient
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19534943A
Other languages
English (en)
Other versions
DE19534943A1 (de
Inventor
Ahmad Menlo Park Zandi
James D. Menlo Park Allen
Edward L. Menlo Park Schwartz
Martin Menlo Park Boliek
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of DE19534943A1 publication Critical patent/DE19534943A1/de
Application granted granted Critical
Publication of DE19534943B4 publication Critical patent/DE19534943B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/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/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/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/645Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission by grouping of coefficients into blocks after the transform
    • 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
    • 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
    • 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

Codierer zum Codieren von Eingabedaten zu einem komprimierten Datenstrom, wobei der Codierer aufweist:
einen reversiblen bzw. umkehrbaren Kleinwellenfilter zum Transformieren der Eingabedaten in eine Mehrzahl von Koeffizienten;
einen Einbettungscodierer, der an die reversiblen Kleinwellenfilter bzw. Filter angeschlossen ist, um Einbettungscodieren an der Mehrzahl der Koeffizienten durchzuführen, so daß ein Bitstrom erzeugt wird; wobei das Einbettungscodieren auf die Anordnung der Koeffizienten in einer Reihenfolge bzw. Ordnung gerichtet ist, und
einen Entropiecodierer, der an dem Einbettungscodierer angeschlossen ist bzw. angekoppelt ist, um Entropiecodierung für bzw. an dem Bitstrom durchzuführen, um codierte Daten zu erzeugen.

Description

  • Die vorliegende Erfindung bezieht sich auf den technischen Bereich der Datenkompressions- und -dekompressionssysteme; insbesondere bezieht sich die vorliegende Erfindung auf ein Verfahren und eine Vorrichtung zur verlustfreien und verlustbehafteten Codierung und Decodierung von Daten in Kompressions-/Dekempressionssystemen, wie sie durch die unabhängigen Patentansprüche 1, 2, 4, 9, 12 und 16 umschrieben sind.
  • Die Datenkompression ist ein äußerst nützliches Werkzeug zum Speichern und Übertragen großer Datenmengen. Zum Beispiel wird die zur Übertragung eines Bildes, wie etwa eine Faksimileübertragung eines Dokuments, erforderliche Zeit stark reduziert, wenn eine Kompression verwendet wird, um die Anzahl der Bits, die erforderlich ist, um das Bild wiederherzustellen, verringert wird.
  • Viele verschiedene Datenkompressionstechniken existieren im Stand der Technik. Die Kompressionstechniken können in zwei größere Kategorien unterteilt werden, verlustbehaftete Codierung und verlustlose Codierung. Die verlustbehaftete Codierung bezieht eine Codierung ein, die einen Verlust an Informationen ergibt, so daß es keine Garantie für eine perfekte Wiederherstellung der Originaldaten gibt. Das Ziel der verlustbehafteten Kompression ist, daß Änderungen der Originaldaten in einer solchen Weise vorgenommen werden, daß sie nicht zu beanstanden oder bemerkbar bzw. erfaßbar sind. Bei der verlustlosen Kompression werden sämtliche Informationen zurückbehalten und die Daten werden in einer Weise komprimiert, die die perfekte Wiederherstellung ermöglicht.
  • Bei der verlustlosen Kompression werden Eingabesymbole oder Intensitätsdaten in Ausgabecodewörter umgewandelt. Die Eingabe kann Bilddaten, Audiodaten, eindimensionale Daten (z.B. sich räumlich oder zeitlich ändernde Daten), zweidimensionale Daten (z.B. Daten, die sich in zwei räumlichen Richtungen ändern (oder in eine räumliche und eine zeitliche Dimension ändern)) oder vieldimensionale/multispektrale Daten enthalten. Wenn die Kompression erfolgreich ist, werden die Codewörter in weniger Bits dargestellt als es die Anzahl von Bits für die uncodierten Eingabesymbole (oder Intensitätsdaten) erfordert. Verlustlose Codierungsverfahren enthalten Wörterbuchverfahren zur Codierung (z.B. Lempel-Ziv), Lauflängencodieren, aufzählendes Codieren und Entropiecodieren. Bei der verlustlosen Bildkompression wird die Kompression auf Vorhersagen oder Kontexte plus Codieren begründet. Der JBIG-Standard für Faksimilekompression und der DPCM (Differentialpuls-Codemodulation – eine Möglichkeit, bei dem JPEG-Standard) für Bilder mit kontinuierlichen Tönen sind Beispiele für die verlustlose Kompression von Bildern. Bei der verlustbehafteten Kompression werden Eingangssymboldaten oder -intensitätsdaten vor der Umsetzung zu Ausgangscodewörtern quantisiert. Die Quantisierung beabsichtigt, die relevanten Charakteristiken der Daten zu erhalten, während unwichtige Charakteristiken eliminiert werden. Vor der Quantisierung verwenden die verlustbehafteten Systeme häufig eine Transformation, um eine Energiekompaktierung zur Verfügung zu stellen. JPEG ist ein Beispiel für ein verlustbehaftetes Codierungsverfahren für Bilddaten.
  • Neuere Entwicklungen bei der Prozessierung von Bilddaten fahren darin fort, die Aufmerksamkeit auf eine Notwendigkeit für effiziente und genaue Arten von Datenkom pressionscodierung zu richten. Verschiedene Arten von Transformationssignalprozessierung und/oder pyramidenartiger Signalprozessierung sind vorgeschlagen worden, die eine Mehrlösungs-Pyramidal-Prozessierung und eine Kleinwellen-Pyramidal-Prozessierung umfassen. Auf diese Art wird auch als Unterbandprozessierung und als hierarchische Prozessierung Bezug genommen. Die Kleinwellen-Pyramidal-Prozessierung von Bilddaten ist eine spezifische Art der Mehrlösungs-Pyramidal-Prozessierung, die Quadratur-Spiegelfilter (QMFs) verwenden kann, um eine Unterband-Zergliederung eines Originalbildes zu erzeugen. Es sei zur Kenntnis genommen, daß andere Arten von Nicht-QMF-Kleinwellen existieren. Zum Erhalt von mehr Informationen zur Kleinwellen-Prozessierung siehe Antonini, M., et al. "Image Coding Using Wavelet Transform", IEEE Transactions on Image Processing, Band I, Nr. 2, April 1992, Shapiro, J. "An Embedded Hierachical Image Coder Using Zerotrees of Wavelet Coefficients", Proc. IEEE Data Compression Conference, Seiten 214–223, 1993.
  • Ein mit vielen Kleinwellen(wavelet)-Prozessierungen nach dem Stand der Technik verbundenes Problem ist, daß ein großer Speicher erforderlich ist, um sämtliche Daten zu speichern, während sie prozessiert bzw. bearbeitet werden. Mit anderen Worten, bei der Durchführung der Kleinwellen-Prozessierung müssen sämtliche Daten überprüft werden, bevor eine Codierung der Daten durchgeführt wird. In einem solchen Fall gibt es keine Datenausgabe, bis mindestens ein voller Durchlauf durch sämtliche Daten vorgenommen worden ist. Tatsächlich bezieht die Kleinwellen-Prozessierung typischerweise mehrere Durchläufe durch die Daten ein. Deshalb wird häufig ein großer Speicher benötigt. Es ist wünschenswert, die Kleinwellen-Prozessierung zu verwenden, während das Erfordernis nach einem großen Speicher vermieden werden sollte. Darüber hinaus ist es wünschenswert, die Kleinwellen-Prozessierung nur unter Verwendung eines einzigen Durchlaufs durch die Daten durchzuführen.
  • Viele Kleinwellen- oder Unterband-Transformationsumsetzungen erfordern Filter in einer bestimmten kanonischen Form. Zum Beispiel müssen Tief- und Hochpaßfilter die gleiche Länge haben, die Summe der Quadrate der Koeffizienten müssen Eins sein, der Hochpaßfilter muß die zeitliche und frequenzmäßige Umkehrung des Tiefpaßfilters sein usw. (siehe US-Patent Nr. 5,014,134, erteilt im Mai 1991 an Lawton et al.). Es ist wünschenswert, eine breitere Klasse von Filtern zu ermöglichen. Das heißt, es ist wünschenswert, Kleinwellen- oder Subband-Transformationsumsetzungen zur Verfügung zu stellen, die Tief- und Hochpaßfilter verwenden, die nicht die gleiche Länge haben, bei denen die Summe der Quadrate der Koeffizienten nicht Eins sein müssen, bei denen der Hochpaßfilter nicht die zeitliche und frequenzmäßige Umkehrung des Tiefpaßfilters sein muß, usw.
  • Aufgabe der vorliegenden Erfindung ist es eine verbesserte verlustlose und eine verbesserte verlustbehaftete Kompression zur Verfügung zu stellen.
  • Die obige Aufgabe wird durch eine Vorrichtung bzw. ein Verfahren gemäß der vorliegenden Erfindung, insbesondere gemäß den Patentansprüchen 1, 2, 4, 9, 12 und 16 gelöst. Zweckmäßige Ausführungsformen der Vorrichtung bzw. Vorrichtungen gemäß der vorliegenden Erfindung bzw. Verfahrensvarianten des Verfahrens gemäß der vorliegenden Erfindung werden durch die in den Unteransprüchen aufgeführten Merkmale zur Verfügung gestellt.
  • Vorteilhaft wird eine Transformation verwendet, die eine gute Energiekompaktierung bzw. -verdichtung zur Verfügung stellt. Weiter vorteilhaft wird auch ein Modellieren von räumlich/frequenzmäßig verbundenen Bereichsdaten (Kleinwellen-Transformationsbereich) zur Verfügung gestellt, um eine effiziente Kompression zu ermöglichen. Auch wird eine progressive Übertragung mit durch den Benutzer nach der Codierung auswählbarer Rate oder Verzerrung zur Verfügung gestellt.
  • Vorteilhaft wird ein Verfahren und eine Vorrichtung zur Codierung und Decodierung von Daten beschrieben. Vorteilhaft werden ein Verfahren und eine Vorrichtung zum Erzeugen übertragener Signale in Reaktion bzw. Antwort auf Eingabedaten bereitgestellt. Vorteilhaft werden transformierte Signale unter Verwendung einer umkehrbaren bzw. reversiblen Kleinwellen-Transformierung erzeugt. Weiter vorteilhaft werden auch ein Verfahren und eine Vorrichtung zum Komprimieren der transformierten Signale in Daten, die eine verlustlos komprimierte Version der Eingabedaten darstellen, bereitgesgtellt. Vorteilhaft werden die Eingabedaten unter Verwendung eines umkehrbaren bzw. reversiblen Filters mit nicht minimierter Länge zerlegt. Die Zerlegung kann unter Verwendung mehrerer bzw. multipler eindimensionaler Filter durchgeführt werden.
  • Weiter vorteilhaft werden auch ein Verfahren und eine Vorrichtung zur Durchführung einer eingegrabenen bzw. vergrabenen Codierung der transformierten Signale bereitgestellt. Die vergrabene bzw. eingebettete Codierung umfaßt vorteilhaft das Ordnen der Reihen von Koeffizienten und die Durchführung eines bit-signifikanten Einbettens bzw. Vergrabens für die transformierten Signale.
  • Weiter vorteilhaft werden auch ein Verfahren und eine Vorrichtung zur Dekomprimierung der verlustfrei komprimierten Version der Eingabedaten in transformierte Signale bereitgestellt. Vorteilhaft wird auch die verlustbehaftete Kompression von Eingabesignalen durch Abschneiden von verlustlos komprimierten Daten zur Verfügung gestellt. Weiter vorteilhaft werden auch ein Verfahren und eine Vorrichtung zum Erzeugen der Eingangsdaten aus den transformierten Signalen in eine rekonstruierte Version der Eingangsdaten unter Verwendung einer inversen reversiblen Kleinwellen-Transformation bereitgestellt.
  • Nachfolgend wird die vorliegende Erfindung unter Bezugnahme auf Beispiele und ohne Einschränkungen in den Figuren der beigefügten Darstellung wiedergegeben, in denen sich gleiche Bezugsziffern auf gleiche bzw. entsprechende Elemente beziehen, und in denen:
  • 1A ein Blockdiagramm einer Ausführungsform eines Codierungsabschnitts des Codierungssystems nach der vorliegenden Erfindung ist.
  • 1B ein Blockdiagramm einer Ausführungsform des bit-signifikanten Einbettens bzw. Vergrabens nach der vorliegenden Erfindung ist.
  • 2A ein Blockdiagramm eines Kleinwellen-Analyse-/-Synthesesystems ist.
  • 2B vorwärts gerichtete und rückwärts gerichtete Darstellungen von Transformationssystemen zum Filtern mit nicht überlappten reversiblen Filtern minimaler Länge darstellt.
  • 3A–D Ergebnisse der Durchführung einer Zerlegung auf vier Niveaus bzw. in vier Stufen darstellt.
  • 4A ein Blockdiagramm einer Pyramidal-Transformation in vier Niveaus bzw. vier Stufen ist.
  • 4B ein Blockdiagramm einer zweidimensionalen Transformation in zwei Stufen bzw. auf zwei Niveaus ist.
  • 4C ein Blockdiagramm ist, das eindimensionale Filter darstellt, die eine Dekompression mit Mehrfachauflösung durchführen.
  • 4D ein Blockdiagramm eines Systems ist, das reversible Kleinwellen gemäß der Erfindung verwendet.
  • 4E Blockdiagramme von Verstärkungs- und Analysesystemen, die die reversiblen Kleinwellen gemäß der vorliegenden Erfindung verwenden sind.
  • 5 eine Baumstruktur auf bzw. für Kleinwellen-Koeffizienten darstellt.
  • 6A und 6A (fortgesetzt) ein Flußdiagramm einer Ausführungsform der Einzellisten-Nullbaum-Modellierung zur Codierung gemäß der vorliegenden Erfindung ist.
  • 6B und 6B (fortgesetzt) ein Flußdiagramm einer Ausführungsform der Einzellisten-Nullbaum-Modellierung zur Codierung gemäß der vorliegenden Erfindung unter Verwendung eines verringerten Flag-Speichers ist.
  • 6C ein Flußdiagramm einer Ausführungsform einer Einzellisten-Nullbaum-Modellierung zum Decodieren gemäß der vorliegenden Erfindung ist.
  • 6D ein Flußdiagramm einer Ausführungsform der Einzellisten-Nullbaum-Modellierung zum Decodieren gemäß der vorliegenden Erfindung unter Verwendung eines verringerten Flag-Speichers ist.
  • 7A ein Flußdiagramm einer Ausführungsform des horizontalen bzw. Horizontmodellierens zum Decodieren gemäß der vorliegenden Erfindung unter Verwendung eines verkleinerten bzw. verringerten Flag-Speichers ist.
  • 8A ein Flußdiagramm einer Ausführungsform des B-Durchlaufs zur Codierung gemäß der vorliegenden Erfindung ist.
  • 8B ein Flußdiagramm einer Ausführungsform des B-Durchlaufs zur Codierung gemäß der vorliegenden Erfindung unter Verwendung eines verringerten bzw. reduzierten Flag-Speichers ist.
  • 9A ein Flußdiagramm einer Ausführungsform des B-Durchlaufs zum Decodieren gemäß der vorliegenden Erfindung ist.
  • 9B ein Flußdiagramm einer Ausführungsform des B-Durchlaufs zum Decodieren gemäß der vorliegenden Erfindung unter Verwendung eines verringerten bzw. reduzierten Flag-Speichers ist.
  • 10 eine Ausführungsform des Vorwärts-Kleinwellenfilters gemäß der vorliegenden Erfindung ist.
  • 11 ein Blockdiagramm einer Ausführungsform eines umgekehrten Kleinwellenfilters gemäß der vorliegenden Erfindung ist.
  • 12 ein Bild und Koeffizienten in einem Zeilenpuffer für eine Pyramidal-Zerlegung auf vier Niveaus bzw. in vier Stufen darstellt.
  • 13 ein Blockdiagramm einer Ausführungsform des Kleinwellenfilterns unter Verwendung einer Filtersteuereinheit ist.
  • 14 ein Blockdiagramm einer anderen Ausführungsform einer Kleinwellenfilterung unter Verwendung einer Filtersteuereinheit ist.
  • 15 die Zuordnung von Speichergruppen bzw. Speicherbänken darstellt, um einen horizontalen und einen vertikalen Zugriff zu unterstützen.
  • 16 den Filterbetrieb für eine Zerlegung in zwei Niveaus bzw. zwei Stufen darstellt.
  • 17 ein Blockdiagramm einer Ausführungsform des Kontextmodells gemäß der vorliegenden Erfindung ist.
  • 18 ein Blockdiagramm einer Ausführungsform der Vorzeichen- bzw. Zeichen-/Größenordnungseinheit gemäß der vorliegenden Erfindung ist.
  • 19 ein Blockdiagramm einer Ausführungsform der Größenordnungs-Speichereinheit gemäß der vorliegenden Erfindung ist.
  • 20 ein Blockdiagramm einer Ausführungsform der Wertigkeits- bzw. Wichtigkeitseinheit gemäß der vorliegenden Erfindung ist.
  • 21 ein Blockdiagramm einer Ausführungsform der Baum-Speichereinheit gemäß der vorliegenden Erfindung ist.
  • 22 ein Blockdiagramm einer Ausführungsform der Koeffizientenverschiebung gemäß der vorliegenden Erfindung ist.
  • 23 ein Blockdiagramm einer alternativen Ausführungsform der Wertigkeits- bzw. Wichtigkeitseinheit gemäß der vorliegenden Erfindung ist, unter Verwendung einer Ausrichtung bzw. einem Abgleich um bzw. auf 1,5.
  • 24 die dynamische Zuweisung vom Speicher mit codierten Daten für einen Durchlaufbetrieb darstellt.
  • 25A und B ein Flußdiagramm einer Ausführungsform des Codierungsverfahrens nach der vorliegenden Erfindung ist.
  • 26A und B ein Flußdiagramm der Decodierung nach einer Ausführungsform des Decodierungsverfahrens gemäß der vorliegenden Erfindung ist.
  • 27A und B ein Flußdiagramm einer Ausführungsform des Verfahrens zur Modellierung jedes Koeffizienten sowohl für das Codierungs- als auch das Decodierungsverfahren gemäß der vorliegenden Erfindung ist.
  • 28A und B Flußdiagramme einer alternativen Ausführungsform des Codierungsverfahrens gemäß der vorliegenden Erfindung ist.
  • 29A und B ein Flußdiagramm einer alternativen Ausführungsform des Decodierungsverfahrens gemäß der vorliegenden Erfindung ist.
  • 30A und B ein Flußdiagramm einer alternativen Ausführungsform des Verfahrens zur Modellierung jedes Koeffizienten in den Codierungs- und Decodierungsverfahren gemäß der vorliegenden Erfindung ist.
  • 31 eine Ausführungsform des Multiplizierers bzw. Vervielfachers für das Frequenzband ist, das für die Koeffizientenzuordnung bzw. -ausrichtung gemäß der vorliegenden Erfindung verwendet wird.
  • Ein Verfahren und eine Vorrichtung zur Kompression und Dekompression wird hier nachfolgend beschrieben. In der nachfolgenden detaillierten Beschreibung der vorliegenden Erfindung werden zahlreiche spezifische Einzelheiten zum Ausdruck gebracht, wie etwa Arten von Codierereinrichtungen, Anzahlen von Bits, Namen von Signalen usw., um ein tiefgehendes Verständnis der vorliegenden Erfindung zu ermöglichen. Jedoch wird es für den Fachmann klar werden, daß die vorliegende Erfindung ohne diese spezifischen Einzelheiten in die Tat umgesetzt werden kann. In anderen Beispielen werden wohlbekannte Konstruktionen und Vorrichtungen eher in Blockdiagrammform als in Einzelheiten gezeigt, um eine Verundeutlichung der vorliegenden Erfindung zu vermeiden.
  • Einige Abschnitte der detaillierten Beschreibung werden in Ausdrücken von Algorithmen und von symbolischen Darstellungen von Operationen auf Datenbits innerhalb eines Computerspeichers präsentiert. Diese algorithmischen Beschreibungen und Darstellungen sind die Mittel, die von den Fachleuten auf dem Gebiet der Datenverarbeitung verwendet werden, um den Gegenstand ihrer Tätigkeit anderen Fachleuten am effektivsten zuzutragen. Ein Algorithmus wird hier und im allgemeinen als eine selbstkonsistente Folge von Schritten zu verstehen sein, die zu einem gewünschten Ergebnis führt. Die Schritte sind derartig, daß sie physikalische Manipulationen und physikalische Größen erfordern. Üblicherweise haben diese Größen die Form von elektrischen oder magnetischen Signalen, die geeignet sind, gespeichert, übertragen, kombiniert, verglichen und auf andere Weise manipuliert zu werden, obwohl dies nicht notwendig ist. Es hat sich zur Zeit prinzipiell aus Gründen der üblichen Verwendungen als günstig erwiesen, auf diese Signale als Bits, Werte, Elemente, Symbole, Schriftzeichen, Ausdrücke, Nummern bzw. Zahlen oder dergleichen Bezug zu nehmen.
  • Es sollte jedoch beachtet werden, daß all diese und ähnliche Ausdrücke mit den angemessenen physikalischen Größen in Verbindung zu sehen sind und nichts weiter als geeignete Oberbegriffe sind, die diesen Größen zugeordnet sind. Wenn es nicht besonders anders ausgesagt wird, wie aus der nachfolgenden Erörterung klar wird, ist es bevorzugt, daß für die gesamte vorliegende Erfindung Erörterungen, die Ausdrücke, wie etwa "Prozessieren" oder "Berechnen" bzw. "Veranschlagen" oder "Kalkulieren" oder "Bestimmen" oder "Anzeigen" oder dergleichen, verwenden, sich auf Tätigkeiten oder Prozesse eines Computersystems oder ähnliche bzw. gleiche elektronische Computereinrichtungen beziehen, die Daten, die als physikalische (elektronische) Größen innerhalb der Register und Speicher des Computersystems dargestellt werden, in andere ähnliche bzw. vergleichbar dargestellte Daten als physikalische Größen innerhalb des Speichers oder Registers des Computersystems oder anderer solcher Informationsspeicher, Übertragungs- oder Wiedergabeeinrichtungen manipulieren und übertragen.
  • Die vorliegende Erfindung bezieht sich auch auf eine Vorrichtung zur Durchführung der Operationen hierin. Die Vorrichtung kann für die erforderlichen Zwecke besonders aufgebaut sein oder sie kann einen Computer für allgemeine Zwecke umfassen, der selektiv aktiviert oder durch ein Computerprogramm, das in dem Computer gespeichert ist, rekonfiguriert werden. Die Algorithmen und Anzeigen, die hierin dargestellt werden, sind nicht inhärent auf bestimmte Computer oder andere Vorrichtungen bezogen. Verschiedene Vorrichtungen für allgemeine Zwecke können mit diesen Programmen in Übereinstimmung mit den Lehren hierin verwendet werden, oder es kann sich als bevorzugt erweisen, spezialisiertere Vorrichtungen aufzubauen, um die erforderlichen Verfahrensschritte durchzuführen. Die erforderliche Konstruktion für verschiedene dieser Vorrichtungen wird aus der nachfolgenden Beschreibung erscheinen. Zusätzlich wird die vorliegende Erfindung nicht unter Bezugnahme auf irgendeine bestimmte Programmiersprache beschrieben. Es wird zu bevorzugen sein, daß viele verschiedene Programmiersprachen verwendet werden können, um die Lehren der Erfindung in die Tat umzusetzen, wie sie hierin beschrieben wird.
  • Nachfolgend wird ein Überblick über die Erfindung gegeben. Die vorliegende Erfindung stellt ein Kompressions-/Dekompressionssystem zur Verfügung, das einen Codierungsabschnitt und einen Decodierungsabschnitt aufweist. Der Codierungs- bzw. Verschlüsselungsabschnitt ist für die Codierung von Eingabe- bzw. Eingangsdaten verantwortlich, um komprimierte Daten zu erzeugen, während der Decodierungsabschnitt für die Decodierung zuvor codierter Daten zuständig ist, um eine rekonstruierte bzw. wieder aufgebaute Version der Originaleingabedaten zu erzeugen. Die Eingabedaten können verschiedene Datentypen aufweisen, wie etwa Bilddaten (stehende oder Videodaten), Audiodaten usw. In einer Ausführungsform sind die Daten digitale Signaldaten; jedoch sind analog digitalisierte Daten, Textformatdaten und andere Formate möglich. Die Quelle der Daten kann ein Speicher oder Kanal für den Codierungsabschnitt und/oder den Decodierungsabschnitt sein.
  • In der vorliegenden Erfindung können Elemente des Codierungsabschnittes und/oder des Decodierungsabschnittes in Hardware oder Software umgesetzt werden, so wie sie für ein Computersystem verwendet werden. Die vorliegende Erfindung stellt ein verlustfreies Kompressions-/Dekompressionssystem zur Verfügung. Die vorliegende Erfindung kann auch konfiguriert werden, um eine verlustbehaftete Kompression/Dekompression durchzuführen.
  • Die 1A ist ein Blockdiagramm einer Ausführungsform des Codierungsabschnitts des Systems. Man beachte, daß der Decodierungsabschnitt des Systems in der umgekehrten Ordnung gleichermaßen mit dem Datenfluß operiert. Bezugnehmend auf 1 werden Eingabebilddaten 101 durch den Kleinwellen-Übertragungsblock 102 empfangen. Der Ausgang des Kleinwellen-Übertragungsblocks 102 wird zu einem Bit-Wichtungs-Einbettungsblock 103 gekoppelt. In Antwort auf die Ausgabe von dem Kleinwellen-Übertragungsblock 102 erzeugt der Bit-Wichtungs-Einbettungsblock 103 mindestens einen Bitstrom, der durch einen Entropiecodierer 104 empfangen wird. In Antwort auf die Eingabe von der Bit-Wichtungs-Einbettung 103 erzeugt der Entropiecodierer 104 einen Codestrom 107.
  • In einer Ausführungsform weist eine Bit-Signifikanzeinbettung 103 ein frequenzbasierendes Kontextmodell 105 und ein verbundenes Raum-/Frequenz-Kontextmodell 106, wie in 1B gezeigt, auf. In einer Ausführungsform weist das verbundene Raum-/Frequenz-Kontextmodell 106 ein Horizontal-Kontextmodell auf. In einigen Ausführungsformen weist ein frequenzbasierender Kontektmodellblock 105 ein Nullbaum-Modell auf. In einer anderen Ausführungsform weist das frequenzbasierende Kontextmodell 105 ein Wichtungsbaummodell auf. Die Zeichen-Größenordnungseinheit 109, das frequenzbasierende Kontextmodell 105 und das verbundene Raum-/Frequenz-(JSF)-Kontextmodell 106 führen in der vorliegenden Erfindung eine Bit-Wichtungs-Einbettung durch. Die Eingabe der Zeichen-Größenordnungseinheit 109 wird zu dem Ausgang des Kleinwellen-Transformations-Codierungsblocks 102 gekoppelt. Der Ausgang der Zeichen-Größenordnungseinheit 109 wird zu einem Schalter 108 gekoppelt bzw. übertragen. Der Schalter 108 wird gekoppelt, um den Ausgang der Zeichen-Größenordnungseinheit 109 zu einem Eingang entweder eines frequenzbasierenden Modellierungsblocks 105 oder eines verbundenen Raum-/Frequenz-Modellierungsblocks 106 zur Verfügung zu stellen. Der Ausgang des frequenzbasierenden Codierungsblocks 105 und des Horizontal-Ordnungs-Codierungsblocks 106 werden zu dem Eingang des Entropiecodierers 104 gekoppelt. Der Entropiecodierer 104 erzeugt den Ausgangscodestrom 107.
  • Zurückgehend auf 1A werden gemäß der vorliegenden Erfindung die Bilddaten 101 empfangen und unter Verwendung reversibler Kleinwellen im Kleinwellen-Transformationsblock 102, wie später unten bestimmt wird, codiert transformiert, um eine Reihe von Koeffizienten zu erzeugen, die eine Mehrfachauflösungs-Zerlegung des Bildes darstellen. Diese Koeffizienten werden durch die Bit-Wichtungs-Einbettung 103 empfangen.
  • Die Wichtungs-Einbettung 103 fordert an und konvertiert die Koeffizienten in ein Zeichen-Größenordnungsformat und basierend auf ihrer Wichtung (wie unten später beschrieben wird) werden die formatierten Koeffizienten einer Kombination von verschiedenen Einbettungs-Modellierungsverfahren ausgesetzt. Gemäß der vorliegenden Erfindung werden die formatierten Koeffizienten einem von zwei Einbettungs-Modellierungsverfahren ausgesetzt (z.B. frequenzbasierendem Modellieren und JSF-Modellieren).
  • In einer Ausführungsform werden die formatierten Koeffizienten entweder einem frequenzbasierenden Modellieren oder einer verbundenen Raum-/Frequenz-Modellierung ausgesetzt. Wenn die eingegebenen Daten Bilddaten aufweisen, die mehrere Bitebenen haben, werden gemäß der vorliegenden Erfindung eine Anzahl von Bitebenen mit frequenzbasierender Modellierung codiert, während die verbleibenden Bitebenen mit JSF-Modellierung codiert werden. Die Entscheidung, welches Verfahren für welche Bitebenen verwendet wird, kann ein vom Benutzer bestimmter Parameter bzw. ein Benutzerparameter sein. In einer Ausführungsform werden die Bitebenen höherer Ordnung von Koeffizienten angefordert und codiert mit der frequenzbasierenden Modellierung nach der vorliegenden Erfindung. In dem frequenzbasierenden Kontext-Modellverfahren nach der vorliegenden Erfindung bezieht sich die Vorhersage der Wichtung bzw. Wertigkeit der Koeffizientenbits auf die Pyramidal-Struktur der Klein- bzw. Unterwellen. Die Koeffizienten-Bitebenen niederer Ordnung werden geordnet und mit dem verbundenen Raum-/Frequenz-Kontextmodell nach der vorliegenden Erfindung codiert. Das JSF-Modellieren, z.B. das Horizontal-Modellieren, stellt gegenüber dem frequenzbasierenden Codieren von Bitebenen, die weniger im Hinblick auf die Frequenzbereich-Koeffizientverhältnisse korreliert sind, Vorteile zur Verfügung.
  • Das Ergebnis von Bit-Wichtungs-Einbettung sind Entscheidungen (oder Symbole), die durch den Entropiecodierer zu codieren sind. In einer Ausführungsform werden sämtliche Entscheidungen zu einem einzigen Codierer geleitet. In einer anderen Ausführungsform werden Entscheidungen durch Wichtung beschriftet bzw. bewertet, und Entscheidungen für jeden Wichtungspegel werden durch verschiedene (physikalische oder virtuelle) Mehrfachcodierer verarbeitet.
  • Die Bitströme, die aus dem frequenzbasierenden Kontext-Modellblock 105 und dem JSF-Kontext-Modellblock 106 resultieren, werden in der Ordnung ihrer Wichtung unter Verwendung des Entropiecodierers 104 codiert. In einer Ausführungsform weist der Entropiecodierer 104 einen Binär-Entropiecodierer auf. In einer Ausführungsform weist der Entropiecodierer 104 einen Q-Codierer, einen B-Codierer, der in dem US-Patent Nr. 5,272,478 A definiert ist, oder einen Codierer, wie etwa in der US-Patentanmeldung mit der Serial-Nr. 08/016,035 beschrieben ist, betitelt mit "Method and Apparatus for Parallel Decoding and Encoding of Data", angemeldet am 10. Februar 1993, auf. Für mehr Informationen zu dem Q-Codierer, siehe Pennebaker, W.B., et al. "An Overview of the Basic Principles of the Q-coder Adaptive Binary Arithmetic", IBM Journal of Research and Development, Vol. 32, Seiten 717–26, 1988. In einer Ausführungsform erzeugt ein einzelner Codierer einen einzelnen Ausgangscodestrom. In einer anderen Ausführungsform erzeugen mehrere (physikalische oder virtuelle) Codierer mehrere (physikalische oder virtuelle) Datenströme.
  • Kleinwellenzerlegung
  • Die vorliegende Erfindung führt anfänglich eine Zerlegung eines Bildes (in der Form von Bilddaten) oder anderer Datensignale unter Verwendung reversibler Klein- bzw. Unterwellen durch. Gemäß der vorliegenden Erfindung weist eine reversible Klein- bzw. Nebenwellen-Transformation eine Umsetzung eines genauen Wiederherstellungssystems in ganzzahliger Arithmetik auf, so daß ein Signal mit ganzzahligen Koeffizienten verlustfrei zurückgewonnen werden kann. Unter Verwendung reversibler Kleinwellen ist die vorliegende Erfindung auch dazu in der Lage, eine verlustfreie Kompression mit endlicher Präzisionsarithmetik zur Verfügung zu stellen. Die Ergebnisse, die durch Anwenden der reversiblen Kleinwellen-Transformation auf die Bilddaten erzeugt werden, sind eine Reihe von Koeffizienten. In einer Ausführungsform der vorliegenden Erfindung wird die reversible Kleinwellen-Transformation unter Verwendung einer Einstellung von Filtern in die Tat umgesetzt. Gemäß einer Ausführungsform sind die Filter ein Tiefpaßfilter mit zwei Gängen bzw. Abgriffen oder Transformatorstufen ("two-tap") und ein Hochpaßfilter mit sechs Abgriffen bzw. Abzweigen oder Transformierungsstufen. In einer Ausführungsform werden diese Filter nur unter Verwendung von Additions- und Subtraktionsoperationen (und verdrahteter Bitverschiebung) in die Tat umgesetzt. Auch erzeugt der Hochpaßfilter gemäß der vorliegenden Erfindung seinen Ausgang unter Verwendung der Ergebnisse des Hochpaßfilters. Die sich ergebenden Hochpaßkoeffizienten sind nur ein paar Bits größer als die Bildpunktauflösung und die Tiefpaßkoeffizienten sind die gleichen wie die Bildpunktauflösung. Weil nur die Tiefpaßkoeffizienten wiederholt in einer pyramidalen Zerlegung gefiltert werden, wird die Auflösung nicht in mehrstufige bzw. mehrpegelige Zerlegungen erweitert.
  • Ein Kleinwellen-Transformationssystem wird durch ein Paar von FIR-Analysefiltern h0(n), h1(n) bestimmt und ein Paar von FIR-Synthesefiltern g0(n), g1(n) definiert. Gemäß der vorliegenden Erfindung sind h0 und g0 die Tiefpaßfilter und h1 und g1 sind die Hochpaßfilter. Ein Blockdiagramm des Kleinwellensystems ist in 2A gezeigt. Bezugnehmend auf 2A werden für ein Eingangssignal x(n) die Analysefilter h0 und h1 angelegt und die Ausgänge werden um 2 verringert (kritisches Subabtasten), um die transformierten Signale y0(n) und y1(n) zu erzeugen, auf die hierin als Tiefpaß- bzw. Hochpaßkoeffizienten Bezug genommen wird. Die Analysefilter und ihre entsprechend verringerten oder unterabgetasteten Blöcke bilden den Analyseabschnitt des Kleinwellen-Transformationssystems. Der Codierer/Decodierer enthält sämtliche Verarbeitungslogik und -routinen bzw. -prozeduren, die in dem transformierten Bereich durchgeführt werden (z.B. Vorhersage, Quantisierung, Codierung etc.). Das in 2A gezeigte Kleinwellensystem enthält auch einen Syntheseabschnitt, indem die Transformationssignale um 2 aufwärts abgetastet sind (z.B. wird nach jedem zweiten Ausdruck eine Null eingefügt) und anschließend durch die Synthesefilter g0(n) und g1(n) hindurchgeführt. Die Tiefpaßkoeffizienten y0(n) werden durch den Tiefpaßsynthesefilter g0 und das hochpaßgefilterte y1(n) wird durch Hochpaßfilter g1 hindurchgeführt. Der Ausgang der Filter g0(n) und g1(n) wird zur Erzeugung von x ^(n) kombiniert.
  • Während in einigen Ausführungsformen Ab- und Aufwärtsabtastung durchgeführt werden, werden in anderen Ausführungsformen Filter verwendet, so daß Berechnungen, die wegen des Ab- und Aufwärtsabtastens unnötig sind, nicht durchgeführt werden.
  • Das Kleinwellensystem kann in Ausdrücken von Z-Transformationen beschrieben werden, wobei X(Z), X ^(Z) die Eingangs- bzw. Ausgangssignale sind, wobei Y0(Z), Y1(Z) die Tiefpaß- und Hochpaß-Transformationssignale sind, H0(Z), H1(Z) die Hochpaß- und die Tiefpaßanalysefilter und schließlich G0(Z), G1(Z) die Tiefpaß- und die Hochpaßsynthesefilter sind. Falls keine Änderung oder Quantisierung in dem Transformationsbereich vorkommt, ist der Ausgang X ^(Z) gemäß 2 gegeben durch
    Figure 00170001
  • Gemäß der vorliegenden Erfindung wird der zweite Ausdruck von X ^(Z), auf den als "Faltungs"(aliasing)-Ausdruck Bezug genommen wird, gestrichen bzw. abgeschafft, weil die Synthesefilter als der Quadraturspiegel bzw. Quertransformationsspiegel der Analysefilter definiert sind, nämlich
    Figure 00180001
  • In den Ausdrücken der Filterkoeffizienten heißt dies
  • Figure 00180002
  • Deshalb lautet der Ausgang eines Quadraturspiegel- bzw. Quertransformationsfilterpaares nach der Substitution bzw. Ersetzung:
    Figure 00180003
  • Folglich wird bei einem Querspiegel- bzw. Quertransformationssystem nach der vorliegenden Erfindung der Ausgang nur in Ausdrücken der Analysefilter bestimmt. Die Kleinwellen-Transformation wird rekursiv auf das transformierte Signal angewendet, indem die durch die Filter erzeugten Ausgänge direkt oder indirekt als Eingänge in die Filter verwendet werden. Bei der beschriebenen Ausführungsform wird nur die tiefpaßtransformierte Komponente y0(n) rekursiv bzw. wiederholbar transformiert, so daß das System pyramidal bzw. in Form einer Pyramide ist. Ein Beispiel eines solchen pyramidalen Systems ist in 4A gezeigt.
  • Die Z-Transformation ist eine angemessene Notation, um die Operation in Form von Daten auf Hardware und/oder auf Software auszudrücken. Die Multiplikation mit Z–m modelliert bzw. stellt dar einen m Verzögerungszeitzyklus bzw. -zeitgeberzyklus in der Hardware und einen Zugriff auf die Anordnung des m-ten davorliegenden Elements in der Software. Derartige Umsetzungen von Hardware enthalten Speicher, Rohr- bzw. Leitungsstufen, Verschieber, Register usw.
  • Gemäß der vorliegenden Erfindung sind die Signale x(n) und x ^(n) identisch bis zu einer multiplikativen Konstante und einem Verzögerungsausdruck, nämlich in Ausdrücken der Z-Transformation X^(Z) = cZ–mX(Z).
  • Dies wird als ein genaues Wiederherstellungssystem bezeichnet. Folglich ist in einer Ausführungsform gemäß der vorliegenden Erfindung die Kleinwellen-Transformation, die eingangs auf die Eingabedaten angewendet wird, genau wiederherstellbar.
  • Eine Ausführungsform gemäß der vorliegenden Erfindung, die die Hadamard-Transformation verwendet, ein genaues Wiederherstellungssystem, welches in der normalisierten Form die nachfolgende Darstellung in dem Z-Bereich aufweist:
    Figure 00200001
  • Nach der Ersetzung lautet der Ausgang X^(Z)=Z–1X(Z),welche deutlicherweise eine genaue Wiederherstellung ist. Um mehr Informationen zu der Hadamard-Transformation zu erhalten, siehe Anil K. Jain, Fundamentals of Image Processing, Seite 155.
  • Auf eine reversible bzw. umkehrbare Version der Hadamard-Transformation wird hierin als die S-Transformation Bezug genommen. Für mehr Informationen zu der S-Transformation siehe 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. Da die Hadamard-Transformation eine genaue Wiederherstellungstransformation ist, ist die nachfolgende unnormierte Version (die sich von der Hadamard-Transformation um konstante Faktoren unterscheidet) ebenfalls eine genaue Wiederherstellungstransformation:
    Figure 00200002
  • Es seien die Proben der Eingangssignale als x0, x1 gegeben, wobei die S-Transformation eine reversible bzw. umkehrbare Implementation dieses Systems ist, als
    Figure 00210001
  • Die Notation ⌊.⌋ bedeutet abzurunden oder zu kürzen bzw. abzuschneiden, und darauf wird manchmal als "Boden- bzw. Grundfunktion" (floor function) Bezug genommen. Ähnlich bedeutet die Dach- bzw. Deckenfunktion (ceiling function) ⌈.⌉., daß auf die nächste ganze Zahl aufgrundet wird.
  • Der Beweis, daß diese Implementation bzw. Umsetzung reversibel ist, folgt aus der Tatsache, daß die einzige Information, die bei der Annäherung verlorengeht, das letzte signifikante Bit von x(0) + x(1) ist. Aber da die letzten signifikanten Bits von x(0) + x(1) und x(0) – x(1) identisch sind, kann dies von dem Hochpaßausgang y1(0) zurückgewonnen werden. Mit anderen Worten
    Figure 00210002
  • Die S-Transformation ist eine nicht-überlappende Transformation, die reversible Filter mit minimaler Länge verwendet. Filter mit minimaler Länge weisen ein Paar von Filtern auf, wobei sämtliche Filter zwei Abgriffe bzw. Stufen aufweisen. Transformationen mit minimaler Länge stellen keine gute Energie-Kompaktierung zur Verfügung. Filter mit minimaler Länge setzen eine nicht-überlappende Transformation in die Tat um, weil die Länge der Filter gleich der Anzahl der Filter ist. Überlappende Transformationen verwenden zumindest einen Filter, der eine Länge aufweist, die größer ist als die Anzahl der Filter. Überlappende Transformationen, die längere Filter verwenden (nicht-minimaler Länge), können eine bessere Energie-Kompaktierung zur Verfügung stellen. Die vorliegende Erfindung stellt reversible Filter mit nicht-minimaler Länge zur Verfügung, die eine überlappende Transformation ermöglichen.
  • Ein anderes Beispiel eines genauen Wiederherstellungssystems weist die 2/6-(TS)-Transformation auf, die die Z-Bereich-Definition hat
    Figure 00220001
  • Nach dieser Substitution lautet der Ausgang X ^(Z) = 2Z–3X(Z),die eine genaue bzw. exakte Wiederherstellungstransformation ist.
  • Die rationale, unormierte Version der TS-Transformation weist auf:
    Figure 00220002
  • Wenn x(0), x(1) ... x(5) sechs Proben der Signale sind, dann sind die ersten drei Tiefpaßkoeffizienten y0(0), y0(1), y0(2) und der erste Hochpaßkoeffizient y1(0) gegeben durch:
    Figure 00220003
  • Jedoch ist die direkte Vorwärts-Umsetzung bzw. -Implementation der rationalen unnormierten Version der TS-Transformation nicht umgekehrbar. Das folgende Beispiel zeigt, daß die Implementation lokal nicht umkehrbar ist. Eine längere Folge kann wie ein Beispiel für den allgemeinen Fall aufgebaut werden. Da –(x(0) + x(1)) + (x(4) + x(5)) ≠ –y0(0) + y0(2) ist, weil zum Berechnen von y0(0) und y0(2) gerundet wird, ist diese Transformation unter Verwendung von lokalen Informationen nicht umkehrbar bzw. reversibel.
  • Zum Beispiel, falls x(0) = 1,x(1) = 1,x(2) = 3,x(3) = 1,x(4) = 1,x(5) = 1, dann y0(0) = ⌊(1 + 1)/2⌋ = 1 y0(1) = ⌊(3 + 1)/2⌋ = 2 y0(2) = ⌊(1 + 1)/2⌋ = 1 y1(0)= ⌊[–(1 + 1) + 8(3 – 1) + (1 + 1)]/8⌋ ⌊(–2 + 16 + 2)/8⌋ = 2und wenn x(0) = 1,x(1) = 2,x(2) = 4,x(3) = 1,x(4) = 1,x(5) = 1, dann y0(0) = ⌊(1 + 2)/2⌋ = 1 y0(1) = ⌊(4 + 1)/2⌋ = 2 y0(2) = ⌊(1 + 1)/2⌋ = 1 y1(0) = ⌊[–(1 + 2) + 8(4 – 1) + (1 + 1)]⌋/8 = ⌊(–3 + 24 + 2)/8⌋ = ⌊23/8⌋ = 2
  • Da y0(0), y0(1), y0(2) und y0(0) die gleichen für die zwei verschiedenen Sätze von Eingängen x(0) ... x(5) sind, ist die Transformation nicht reversibel, da bei gegebenen y0(0), ... y1(0) nicht aus dieser lokalen Information bestimmt werden kann, welcher der zwei Sätze eingegeben worden ist. (Man registriere, daß bewiesen werden kann, daß die Transformation unter Verwendung allgemeiner Informationen von sämtlichen Koeffizienten nicht reversibel ist.)
  • Man ziehe nun ein reversible TS-Transformation in Betracht, auf die hierin als eine RTS-Transformation Bezug genommen wird, die einen verschiedenen Hochpaßfilterbetrieb zur Verfügung stellt.
  • Falls x(0), x(1), x(2), x(3), x(4), x(5) sechs Proben des Signals sind, dann werden die ersten drei Tiefpaßkoeffizienten y0(0), y0(1), y0(2) und der erste Hochpaßkoeffizient y1(0) gegeben durch y0(0) = ⌊(x(0) + x(1))/2⌋ y0(1) = ⌊(x(2) + x(3))/2⌋ y0(2) = ⌊(x(4) + x(5))/2⌋ y1(0) = ⌊(– ⌊(x(0) + x(1))/2⌋ +4(x(2) – x(3))+ ⌊(x(4) + x(5))/2⌋)/4 = ⌊(–y0) + 4(x(2) – x(3)) + y0(2))/4⌋.
  • Da x(2) – x(3) = y1(0) –⌊– (y0(0) + y0(2))/4⌋ist dann x(2) – x(3) vollständig bekannt. Mit y0(1) = ⌊(x(2) + x(3))/2⌋ und x(2) – x(3) und x(2) – x(3), die oben bestimmt sind, können x(2) und x(3) zurückgewonnen werden, weil die letzten signifikanten Bits von x(0) + x(1) und x(0) – x(1) identisch sind.
  • Insbesondere sei d(0) = x(2) – x(3) = y1(0) – ⌊(–y0(0) + y0(2)/4⌋ x(2) = y0(1) + ⌊(d(0) + 1)/2⌋ x(3) = y0(1) + ⌈(d(0) – 1)/2⌉
  • Eine Ausführungsform des Vorwärtsfilters für die RTS-Transformation wird in dem Anhang A als durch die Programmiersprache "C" umgesetzt gezeigt. Man nehme zur Kenntnis, daß mathematisch die Gleichung
    Figure 00250001
    und die Gleichung:
    Figure 00250002
    gleich sind, wenn sie mit einer unendlichen Präzisions-Arithmetik durchgeführt werden. Der Grund, daß zwei Gleichungen einen reversiblen Filter darstellen, wird klar, wenn sie physikalisch mit ganzzahliger Arithmetik umgesetzt werden. Beispielhafte Hardware-Umsetzungen des Tiefpaßfilters und des Hochpaßfilters werden in Verbindung mit den 10 und 11 beschrieben.
  • Man beachte, daß sowohl bei der S-Transformation als auch der RTS-Transformation der Tiefpaßfilter so umgesetzt ist, daß der Bereich des Eingangssignals x(n) der gleiche ist, wie das Ausgangssignal y0(n). Wenn zum Beispiel das Signal ein 8-Bit-Bild ist, beträgt der Ausgang des Tiefpaßfilters ebenfalls 8 Bits. Für ein pyramidales System ist dies eine wichtige Eigenschaft, wo der Tiefpaßfilter sukzessive eingesetzt wird, weil in Systemen nach dem Stand der Technik der Bereich des Ausgangssignals größer ist als der des Eingangssignals, wodurch sukzessive Anwendungen des Filters schwierig gemacht werden. Zusätzlich hat der Tiefpaßfilter nur zwei Abgriffe bzw. Stufen, die aus ihm einen nicht-überlappenden Filter machen. Diese Eigenschaft ist für die Umsetzung in Hardware wichtig, wie später unten beschrieben wird.
  • Gemäß einer Ausführungsform wird der Tiefpaßfilter und der Hochpaßfilter unter Bezugnahme auf die RTS-Transformation wie folgt definiert:
    Figure 00260001
  • Folglich können die Ergebnisse von den Tiefpaßfiltern zweimal in dem Hochpaßfilter (in dem ersten und dem dritten Ausdruck bzw. Term) verwendet werden. Folglich ist es nur erforderlich, zwei andere Additionen durchzuführen, um das Ergebnis des Hochpaßfilters zu erlangen.
  • Viele überlappende reversible Filter mit nicht-minimaler Länge können gemäß der vorliegenden Erfindung verwendet werden. Derartige Vorwärts- und Invers-Darstellungen von dem Transformationssystem zur Filterung mit nicht-überlappenden reversiblen Filtern minimaler Länge sind in 2B gezeigt. Zum Beispiel kann die folgende Klasse von Filtern gemäß der vorliegenden Erfindung verwendet werden. Für eine ganze Zahl L ≥ z gilt d(0) = x(2(⌊L/2⌋ + 1)) – x(2(⌊L/2⌋ + 1) + 1)und y0(0) = ⌊(x(0) + x(1))/2⌋ y0(1) = ⌊(x(2) + x(3))/2⌋ y0(L – 1) = ⌊(x(2 ⌊(L – 1)/2⌋) + x(2 ⌊(L – 1)/2⌋ + 1))/2⌋und
    Figure 00260002
  • Die Länge des Hochpaßfilters beträgt 2L. Wenn L ungerade ist, kann der Filter näher bei einem symmetrischen Filter sein. Wenn ai, b, ci und k ganze Zahlen bzw. Integer sind und k ≤ b it, dann ist der Filter reversibel bzw. umkehrbar. Wenn ai, b, ci und k Potenzen von zwei sind (oder das negative oder das Komplement einer Potenz von zwei), dann kann die Implementation des Filters vereinfacht werden. Wenn k = b ist (ungeachtet des Wertes von ai und ci) dann ist der Bereich des Ausgangs des Hochpaßfilters y1 minimiert. Für jedes ai, wenn es nur genau ein cj mit ai = –cj gibt, dann wird der Hochpaßfilter keine Reaktion bzw. Antwort auf einen konstanten Eingangswert bzw. Eingang haben. Wenn ai – cj wenn j – (L – 1) = i ist, dann kann der Filter dichter bei einem symmetrischen Filter sein.
  • Eine andere zweckmäßige Eigenschaft ist
  • Figure 00270001
  • Dies bewirkt, daß der Hochpaßfilter keine Reaktion bzw. Antwort auf einen sich linear ändernden Eingang hat, wenn m = 1 und sich der Eingang quadratisch ändert, wenn m = 2 usw., wobei m die momentane Bedingung bzw. der momentane Zustand ist. Diese Eigenschaft ist der prinzipielle Grund, weshalb die RTS-Transformation eine bessere Energiekompaktierung hat als die S-Transformation.
  • Während die Filter die minimalen Zwangsbedingungen bzw. Nebenbedingungen für die Umkehrbarkeit für verschiedene Anwendungen erfüllen müssen, können Filter verwendet werden, die keine, einige oder sämtliche der anderen Eigenschaften erfüllen. Bei einigen Ausführungsformen wird einer der folgenden beispielhaften Hochpaßfilter verwendet. Die Filter sind in einer Notation aufgeführt, die nur die ganzzahligen Koeffizieten der rationalen Version des Filters aufführt, um eine Verundeutlichung der Erfindung zu vermeiden.
  • Figure 00280001
  • Auf den letzten Filter wird als den (zwei/zehn) TT-Filter Bezug genommen und er weist die Eigenschaft auf, daß er keine Reaktion bzw. Antwort auf eine kubisch anwachsende Funktion hat. Man bemerke, daß dieser Filter mit insgesamt sieben Additionen und Subtraktionen in die Tat umgesetzt werden kann, da 22 = 16 + 2 × 3 und 3 = 2 + 1 ist.
  • Die strikten Umkehrbarkeitserfordernisse für Filter können unter Bemerkung des nachfolgenden entspannt werden. Hochpaßkoeffizienten werden in der gleichen Reihenfolge codiert bzw. decodiert. Bildpunktwerte, die zuvor decodierten Hochpaßkoeffizienten entsprechen, sind genau bekannt, so daß sie in gegenwärtigen Hochpaßfilterungen verwendet werden können. Zum Beispiel kann der folgende Filter verwendet werden, wenn eine Rasterreihe verwendet wird.
    Figure 00280002
  • Die Verwendung eines einzelnen festen Hochpaßfilters ist nicht erforderlich. Adaptive Filter können verwendet werden oder multiple Filter können verwendet werden. Die Daten, die verwendet werden, um multiple Filter zu adaptieren oder auszuwählen, müssen auf Daten eingeschränkt werden, die in dem Decodierer vor einer bestimmten inversen Filterbetätigung verfügbar sind.
  • Eine Art, um multiple Filter zu verwenden, ist es, die Hochpaßkoeffizienten fortschreitend zu verarbeiten. Abwechselnde Hochpaßfilterbetätigungen (y1(0), y1(2), y1(4), ...) können zuerst mit einem reversiblen Filter, wie etwa dem RTS-Hochpaßfilter, prozessiert werden. Die verbleibende Prozessierung (y1(1), y1(3), y1(5), ...) kann einen nicht-reversiblen Filter von bis zu sechs Abgriffen bzw. Stufen verwenden, weil die genauen Werte der Eingänge zu diesem überlappenden Abschnitt des Filters bekannt sind. Zum Beispiel kann ein beliebiger der folgenden Filter verwendet werden.
  • Figure 00290001
  • In einigen Ausführungsformen kann der Hochpaßfilter durch eine Vorhersage-/Interpolations-Operation ersetzt werden. Ein Vorhersager/Interpolator kann die Differenz zwischen einem Paar von Ausgängen vorhersagen, indem beliebige Daten, die in dem Decodierer vor einer besonderen Vorhersage-/Interpolations-Operation verfügbar sind, verwendet werden. Die vorhergesagte Differenz wird von der gegenwärtigen Differenz der Eingänge abgezogen und wird ausgegeben. Gemäß einer Ausführungsform werden Vorhersageverfahren nach dem Stand der Technik, die in DPCM bei progressivem Codieren oder Raumbereich-Codieren verwendet werden, benutzt.
  • Unter Verwendung der Hochpaß- und Tiefpaßfilter nach der vorliegenden Erfindung wird eine Zerlegung mit mehreren Lösungen durchgeführt. Die Anzahl der Pegel bzw. Niveaus der Zusammensetzung ist variabel und kann irgendeine Anzahl sein; jedoch entspricht gegenwärtig die Anzahl der Zerlegungspegel zwei bis fünf Pegeln.
  • Zum Beispiel wird der erste Pegel bzw. das erste Niveau der Zerlegung auf die feinsten Einzelheiten oder Auflösungen angesetzt, wenn die reversible Kleinwellen-Transforma tion rekursiv bzw. wiederholbar auf ein Bild angesetzt wird. Bei einem ersten Zerlegungsniveau wird das Bild in zwei Subbilder (z.B. Subbänder) zerlegt. Jedes Subband stellt ein Band räumlicher Frequenzen dar. Die ersten Niveau-Subbänder sind LL0, LH0, HL0 und HH0 benannt. Das Verfahren zur Zerlegung des Originalbildes bezieht Unterabtastung um bzw. durch zwei sowohl in horizontalen als auch in vertikalen Dimensionen ein, so daß die ersten Pegel bzw. Niveau-Unterbänder LL0, LH0, HL0 und HH0 jeweils ein Viertel so viele Koeffizienten haben, wie der Eingang Bildpunkte (oder Koeffizienten) des Bildes hat, so wie in 3A gezeigt wird.
  • Das Unterband LL0 enthält gleichzeitig horizontale Niederfrequenz- und vertikale Niederfrequenzinformationen. Üblicherweise wird in diesem Unterband ein großer Abschnitt der Bildenergie konzentriert. Das Unterband LH0 enthält horizontale Niederfrequenz- und vertikale Hochfrequenzinformationen (beispielsweise horizontale Kanteninformationen). Das Unterband HL0 enthält horizontale Hochfrequenzinformationen und vertikale Niederfrequenzinformationen (beispielsweise Informationen von vertikalen Kanten). Das Unterband HH0 enthält horizontale Hochfrequenzinformationen und vertikale Hochfrequenzinformationen (z.B. Informationen über Texturen oder diagonale Kanten).
  • Jede der nachfolgenden zweiten, dritten und vierten niedrigeren Zerlegungspegel bzw. -niveaus wird durch Zerlegen der niederfrequenten LL-Unterbänder des vorherigen Pegels bzw. Niveaus erzeugt. Dieses Unterband LL0 des ersten Pegels bzw. Niveaus wird zerlegt, um die Unterbänder LL1, LH1, HL1 und HH1 des gemäßigten zweiten Detailpegels bzw. -niveaus zu erzeugen. Ähnlich wird das Unterband LL1 zerlegt, um Grobdetailunterbänder LL2, LH2, HL2 und HH2 des zweiten Niveaus bzw. Pegels zu erzeugen. Auch wird das Unterband LL2 zerlegt, um die gröberen Detailunterbände LL3, LH3, HL3 und HH3 des dritten Niveaus, wie in 3D gezeigt, zu erzeugen. Aufgrund des Unterabtastens um zwei ist jedes zweite Niveau- bzw. Pegelunterband ein Sechzehntel der Größe des Originalbildes. Jede Probe bzw. Abtastung (z.B. "pel") stellt bei diesem Pegel bzw. Niveau eine mittlere Einzelheit bzw. ein mittleres oder gemäßigtes Detail in dem Originalbild an dem gleichen Ort dar. Ähnlich bzw. gleichermaßen ist jedes dritte Unterbandniveau bzw. Unterbandpegel 1/64 der Größe des Originalbildes. Jedes "pel" entspricht bei diesem Niveau bzw. Pegel einem relativ großen Detail in dem Originalbild an dem gleichen Ort. Auch ist jeder vierte Unterbandpegel bzw. jedes vierte Unterbandniveau bzw. -pegel 1/256 der Größe des Originalbildes.
  • Da die zerlegten Bilder wegen der Unterabtastung physikalisch kleiner sind als das Originalbild, kann der gleiche Speicher, der zur Speicherung der Originaldaten verwendet wird, verwendet werden, um sämtliche der zerlegten Unterbänder zu speichern. Mit anderen Worten, das Originalbild und die zerlegten Unterbänder LL0 und LL1 werden ausrangiert und werden nicht in einer Zerlegung in drei Niveaus bzw. Pegel gespeichert.
  • Ein Eltern-Kind- bzw. Vorgänger-Nachkomme-Verhältnis existiert zwischen einer Unterbandkomponente, die ein Grobdetail darstellt, im Verhältnis zu einer entsprechenden Unterbandkomponente bei dem nächstfeineren Detailniveau bzw. Detailpegel.
  • Auch wenn nur vier Unterband-Zerlegungspegel gezeigt werden, können in Entsprechung mit den Erfordernissen eines bestimmten Systems zusätzliche Pegel entwickelt werden. Auch mit anderen Transformationen, wie etwa DCT oder linear beabstandeten Unterbändern, können unterschiedliche Eltern-Kind-Verhältnisse bestimmt werden.
  • Das Verfahren einer Zerlegung mit mehreren Auflösungen kann unter Verwendung eines Filtersystems durchgeführt werden, wie es etwa in 4A angedeutet ist. Ein Eingabesignal, das ein eindimensionales Signal mit der Länge L darstellt, wird durch Filtereinheiten 401 und 402 tiefpaß- und hochpaßgefiltert, bevor sie durch zwei Durchgangseinheiten 403 und 405 unterabgetastet werden. Ein unterabgetastetes Ausgangssignal von der Einheit 403 wird durch die Einheiten 405 und 406 tiefpaß- und hochpaßgefiltert, bevor sie durch die Durchgangseinheiten 407 bzw. 408 unterabgetastet werden. Die Unterbandkomponenten L und H erscheinen an jeweiligen Ausgängen von Einheiten 407 und 408. Gleichermaßen werden die Ausgangssignale von der Einheit 405 durch die Einheiten 409 und 410 tiefpaß- und hochpaßgefiltert, bevor sie durch die Einheiten 411 bzw. 412 unterabgetastet werden. Die Unterbandkomponenten L und H erscheinen an jeweiligen Ausgängen von Einheiten 411 und 412. Wie oben beschrieben, sind in einer Ausführungsform nach der vorliegenden Erfindung, die bei Unterband-Zerlegung verwendet wird, digitale Quadraturspiegelfilter bzw. Quertransformationsspiegelfilter, um die horizontalen und vertikalen Frequenzbänder in Niederfrequenz- und Hochfrequenzbänder aufzuteilen.
  • Die 4B stellt eine zweidimensionale zweipegelige Transformation dar. Die 4C stellt auch eine zweidimensionale, zweipegelige Transformation dar, die unter Verwendung von eindimensionalen Filtern in die Tat umgesetzt ist, wie etwa den in den 10 und 11 gezeigten. Die eindimensionalen Filter werden an jeder anderen Stelle eingesetzt, um Berechnungen zu vermeiden, die durch Unterabtastung unnötig geworden sind. In einer Ausführungsform unterteilen eindimensionale Filter die Berechnung zwischen Tiefpaß- und Hochpaßberechnung.
  • Deshalb stellt die vorliegende Erfindung ein System zur Kompression und Dekompression zur Verfügung, indem überlappende reversible Filter mit nicht-minimaler Länge verwendet werden. Die 4D ist ein Blockdiagramm einer Ausführungsform eines solchen Systems. Bezugnehmend auf 4D wird eingangs eine hierarchische Dekompression durchgeführt. Die Ergebnisse der hierarchischen Dekompression werden zu einem Komprimierer zur Kompression geleitet. Die durchgeführte Kompression kann eine Vektorquantisierung, eine Skalarquantisierung, eine Nullauf-Längenzählung, Huffman-Codierung usw. enthalten. Der Ausgang des Komprimierers komprimiert Daten, die eine komprimierte Version der Originaleingangsdaten darstellt. Ein Dekomprimierer kann die Daten irgendwann in der Zukunft empfangen und die Daten dekomprimieren. Die vorliegende Erfindung führt dann eine umgekehrte Zerlegung unter Verwendung überlappender reversibler Filter mit nicht-minimaler Länge durch, um eine wiederhergestellte Version der Originaldaten zu erzeugen.
  • Die reversiblen Kleinwellen- bzw. Unterwellenfilter nach der vorliegenden Erfindung können auch bei exemplarischen Analyse- und Verstärkungssystemen verwendet werden, wie etwa in 4E gezeigt. Bezugnehmend auf 4E wird hierarchische Zerlegung an Eingangsdaten unter Verwendung überlappender reversibler Kleinwellenfilter mit nicht-minimaler Länge durchgeführt. Die Analyseeinheit empfängt die durch die Filter erzeugten Koeffizienten und klassifiziert sie zu Entscheidungen, beispielsweise werden eher als die Koeffizienten vollständig zu codieren, nur relevante Informationen extrahiert. Zum Beispiel können in einem Dokumentenarchivierungssystem Leerseiten nur unter Verwendung des gröbsten Tiefpaß-Unterbandes erkannt werden. Ein anderes Beispiel wäre es, nur Hochpaßinformationen von einem bestimmten Unterband zu verwenden, um zwischen Bild und Text und Bildern von natürlichen Landschaften, Motiven oder dergleichen zu unterscheiden. Die hierarchische Zerlegung kann zur Registrierung verschiedenster Bilder verwendet werden, so daß zuerst eine Grobregistrierung mit Grobunterbändern vorgenommen wird. Bei anderen Ausführungsformen unterliegen die Koeffizienten, gefolgt durch eine inverse Zerlegung, einer Verstärkung oder Filterung. Verschärfung, Kantenverstärkung, Rausch- bzw. Störsteuerung usw. können unter Verwendung einer hierarchischen Zerlegung durchgeführt werden. Folglich stellt die vorliegende Erfindung eine Kleinwellen-Transformation zur Verwendung in verbundenen Zeit-/Raum- und Frequenzbereichsanalyse- und Filterungs-Verstärkungssystemen dar.
  • Die Bit-Wichtungs- bzw. Wertigkeits-Einbettungscodierung
  • Gemäß der vorliegenden Erfindung werden die als ein Ergebnis der Kleinwellenzerlegung erzeugten Koeffizienten entropie-codiert. Gemäß der vorliegenden Erfindung werden die Koeffizienten anfänglich einer Einbettungscodierung unterzogen, in der die Koeffizienten in einer visuellen Wichtungsordnung geordnet werden oder, allgemeiner ausgedrückt, im Hinblick auf einige Fehlermaße bzw. Maßstäbe geordnet werden (z.B. Verzerrungsmetrik). Fehler- oder Verzerrungsmetriken enthalten Spitzenfehler und mittlere quadratische Fehler (MSE). Zusätzlich kann ein Ordnen durchgeführt werden, um der Bitsignifikanz bzw. Bitwichtungsraumanordnung, Relevanz für auf Daten basierendes Fragen und richtungsorientiert durchzuführen (vertikal, horizontal, diagonal usw.). Die vorliegende Erfindung verwendet Mehrfacheinbettungs-Codierungstechniken, in denen ein Abschnitt der Koeffizienten bei einem Wichtungspegel mit einer Codierungstechnik codiert wird, während die verbleibenden Koeffizienten mit anderen Techniken codiert werden. Gemäß der vorliegenden Erfindung sind auf Frequenzen basierendes Modellieren und verbundenes Raum-/Frequenz-Modellieren zwei verschiedene Einbettungscodierungssysteme, die verwendet werden, um die durch die Kleinwellen-Transformation nach der vorliegenden Erfindung erzeugten Koeffizienten zu codieren. Das frequenzbasierende Modellieren bezieht ein, daß eine Anzahl von Koeffizienten bei höheren Frequenzen, als wenn ein Koeffizient bei einer niedrigeren Frequenz codiert wird, vorhergesagt werden. Das verbundene Raum-/Frequenz-Modellieren nimmt einen Vorteil sowohl von den bekannten Frequenzbändern als auch den benachbarten Bildpunkten (oder Daten). Auf eine Ausführungsform der verbundenen Raum-/Frequenz-Modellierung wird hierin als Horizontal- bzw. Horizontmodellierung Bezug genommen.
  • Die Daten werden eingangs in Zeichengrößenordnungsformate formatiert, was von dem Sortieren der Daten auf der Grundlage der Wichtung gefolgt ist. Nachdem die Daten im Hinblick auf die gegebene Wichtungsmetrik sortiert sind, werden die Daten codiert. Sowohl das auf Frequenzen basierende Codieren als auch das Horizontalcodieren können auf Bit-Signifikanzordnung basieren, aber verwenden unterschiedliche Verfahren zum Codieren der Ereignisse.
  • Ein digitales Signal x(n) sei angenommen, wobei jedes x(n) mit R-Bits für die Genauigkeit dargestellt wird, wobei dann die Einbettungscodierung nach der vorliegenden Erfindung das signifikanteste Bit (oder Bits) für jedes x(n) von dem Signal codiert, dann das nächstsignifikante Bit (oder Bits) codiert usw. Zum Beispiel könnte in dem Fall des visuell definierten Ordnens ein Bild, das in dem Zentrum eine bessere Qualität als entlang der Ecken und nahe der Kanten (wie beispielsweise einige medizinische Bilder) erfordert, einer solchen Codierung unterzogen werden, daß Bits niederer Ordnung der zentralen Bildpunkte vor den Bits höherer Ordnung der Umgebungsbildpunkte codiert werden.
  • Für ein eingebettetes System, das auf einer Bit-Signifikanzverzerrungsmessung basiert, werden binäre Werte der Daten nach den Größenordnungen geordnet. In dem Fall, wo die Werte nicht negative ganze Zahlen (integer) sind, so wie sie im Hinblick auf die Intensität von Bildpunkten auftreten, ist die Ordnung, die verwendet werden kann, die Bitebenen-Ordnung (z.B. von der signifikantesten zu der am wenigsten signifikanten Bitebene). In den Ausführungsformen, in denen komplementäre negative ganze Zahlen bzw. Integers von zweien ebenfalls erlaubt sind, ist die eingebettete Ordnung des Zeichenbits die gleiche wie das erste Bit, das nicht Null ist, des absoluten Wertes der ganzen Zahl. Deshalb wird das Zeichenbit nicht beachtet, bis ein Bit codiert wird, das nicht Null ist. Als ein Ergebnis werden die möglichen Werte für ein Ereignis in dem Bit-Signifikanz-Einbettungssystem nach der vorliegenden Erfindung ternär, bevor das Zeichenbit codiert wird. Die ternären Ereignisse sind "nicht signifikant", "positiv signifikant" und "negativ signifikant". Zum Beispiel lautet die 16-Bit-Zahl –7 unter Verwendung der Zeichengrößenordnungsnotation:
    1000000000000111
  • Auf einer Bit-Ebenen-Grundlage werden die ersten zwölf Entscheidungen "nicht signifikant" lauten. Das erste 1-Bit tritt bei der dreizehnten Entscheidung auf. Die dreizehnte Entscheidung wird "negativ signifikant" lauten. Nachdem das Zeichenbit codiert ist, werden die möglichen Ereignisse zu binären verringert, d.h. 0, 1. Die vierzehnte und die fünfzehnte Entscheidung lauten beide "1".
  • Bei einer Ausführungsform nach der vorliegenden Erfindung wird eine Liste verwendet, um sich über die Koeffizienten auf dem laufenden zu halten. In einer Ausführungsform unterscheidet ein Bit-Flag, auf das hierin als Gruppenflag Bezug genommen wird, das mit jedem Koeffizienten verbunden ist, Koeffizienten voneinander, deren Zeichenbit bis jetzt noch nicht mit den Koeffizienten mit den bereits codierten Zeichenbits codiert worden ist. In einer anderen Ausführungsform können zwei oder mehr Listen anstelle eines Flag-Bits verwendet werden. In einer anderen Ausführungsform wird eine einzige Liste ohne ein Flag verwendet.
  • In einer anderen Ausführungsform werden keine Listen verwendet. Sämtliche Entscheidungen für einen Koeffizienten werden erzeugt und durch die Signifikanz bzw. Wertigkeit benannt bzw. beschriftet, bevor irgendwelche Entscheidungen für den nächsten Koeffizienten erzeugt werden. Dies eliminiert das Erfordernis zum Speichern sämtlicher Koeffizienten in der Liste.
  • Das Codierungs- und Decodierungsverfahren nach der vorliegenden Erfindung
  • Die folgenden Flußdiagramm, die 25 bis 30, stellen Ausführungsformen des Codierungs- und Decodierungsverfahrens nach der vorliegenden Erfindung dar.
  • Die 25 zeigt ein Flußdiagramm, das eine Codierungstransformation und ein Modellierverfahren nach der vorliegenden Erfindung darstellt. Bezugnehmend auf 25 beginnt die Codierungstransformation und das Modellierungsverfahren durch den Erhalt von Eingangsdaten (Verfahrensblock 2501). Nachdem Eingangsdaten erhalten worden sind, wendet die vorliegende Erfindung einen reversiblen Kleinwellenfilter an (Verfahrensblock 2502).
  • Als nächstes bestimmt ein Test, wenn ein anderer Pegel der Zerlegung erwünscht ist (Verfahrensblock 2503). Wenn ein anderer Zerlegungspegel gewünscht wird, wird das Verfahren beim Verfahrensschritt 2504 fortgesetzt, wo der reversible Filter auf die LL-Koeffizienten angewendet wird, die aus der unmittelbar davor befindlichen Zerlegung resultieren und das Verfahren wird hinten beim Verfahrensschritt 2503 fortgesetzt. Auf diese Weise ermöglicht die vorliegende Erfindung, jede Anzahl von Zerlegungspegeln bzw. -niveaus durchzuführen.
  • Wenn ein anderer Zerlegungspegel gewünscht wird, wird das Verfahren bei dem Verfahrensblock 2506 fortgesetzt, wo das Gruppenflag von jedem Koeffizienten für die A-Gruppe vorbereitet wird. Nach der Initialisierung bzw. Vorbereitung des Gruppenflags wird die Bitebene für den A-Durchgang, SA, auf die signifikanteste Bitebene (max) eingestellt bzw. gesetzt (Verfahrensblock 2507). Als nächstes wird die Bitebene für den B-Durchgang, SB, auf die nächstsignifikanteste Bitebene (max-1) eingestellt bzw. gesetzt (Verfahrens- bzw. Verarbeitungsblock 2508).
  • Anschließend bestimmt ein Test, ob die Bitebene für den A-Durchgang SA mittels einem frequenzbasierenden Modell codiert werden muß (Verfahrensblock 2509). Wenn die Bitebene SA mit dem frequenzbasierenden Modell zu codieren ist, wird das Verfahren bei dem Verfahrensblock 2510 fortgesetzt, wo jeder Koeffizient mit dem frequenzbasierenden Modell und dem Entropiecode modelliert wird. Andererseits wird das Verfahren bei dem Verfahrensblock 2511 fortgesetzt, wenn jeder Koeffizient mit einem verbundenen Raum-/Frequenz-Modell und einem Entropiecode modelliert wird, wenn die Bitebene SA nicht mit dem frequenzbasierenden Modell zu codieren ist.
  • In jedem Fall wird das Verfahren danach bei dem Verfahrensblock 2512 fortgesetzt, wo ein Test bestimmt, ob die Bitebene SA größer ist als oder gleich Null ist, wodurch angezeigt wird, ob es die letzte Bitebene ist. Wenn die Bitebene SA größer als oder gleich Null ist, zieht das Verfahren eine Schleife zurück zu dem Verfahrensblock 2509. Andererseits, wenn die Bitebene SA größer als oder gleich Null ist, wird das Verfahren bei dem Verfahrensblock 2513 fortgesetzt, wo ein Test bestimmt, ob die Bitebene SB größer als oder gleich Null ist, so daß das Verfahren bestimmt, ob die Bitebene die letzte Bitebene ist, die einen B-Durchgang zu durchlaufen hat. Wenn die Bitebene SB größer als oder gleich Null ist, wird das Verfahren bei dem Verfahrensblock 2509 fortgesetzt. Jedoch wird das Verfahren beim Verfahrensblock 2514 fortgesetzt, wo die codierten Daten entweder auf einen Kanal übertragen oder in einem Speicher gespeichert werden, wenn die Bitebene SB nicht größer als oder gleich Null ist. Nach dem Speichern oder Übertragen der codierten Daten endet das Codiertransformations- und Modellierungsverfahren nach der vorliegenden Erfindung.
  • Die 26 stellt ein Decodiertransformations- und Modellierungsverfahren nach der vorliegenden Erfindung dar. Bezugnehmend auf 26 beginnt das Decodiertransformations- und Modellierungsverfahren nach der vorliegenden Erfindung mit dem Wiederauffinden codierter Daten (Verfahrensblock 2601). Die codierten Daten können von einem Kanal oder Speicher oder einem anderen Übertragungssystem empfangen werden. Nach dem Wiederauffinden der codierten Daten wird ein Gruppenflag für jeden Koeffizienten zu der A-Gruppe initialisiert (Verfahrensblock 2602). Nachfolgend zu dieser Initialisierung wird die Bitebene für den A-Durchgang SA auf die signifikanteste Bitebene (max) (Verfahrensblock 2603) gesetzt und die Bitebene für den B-Durchgang SB wird auf die nächstsignifikante Bitebene (max-1) (Verfahrensblock 2604) gesetzt. Dann wird der Wert jedes Koeffizienten auf einen Anfangswert von Null eingestellt (Verfahrensblock 2605).
  • Nach dem Initialisieren des Wertes von jedem Koeffizienten auf Null, bestimmt ein Test, ob die Bitebene SA mit einem frequenzbasierenden Modell zu decodieren ist oder nicht (Verfahren 2606). Wenn die Bitebene SA mit einem frequenzbasierenden Modell zu decodieren ist, setzt das Verfahren beim Verfahrensblock 2607 fort, wo jeder Koeffizient mit einem frequenzbasierenden Modell und einer Entropiedecodierung modelliert wird. Wenn die Bitebene SA nicht mit einem frequenzbasierenden Modell decodiert wird, wird das Verfahren beim Verfahrensschritt 2608 fortgesetzt, wo jeder Koeffizient mit einem verbundenen Raum-/Frequenz-Modell und Entropiedecodierung modelliert wird.
  • Nachdem jeder Koeffizient modelliert ist, setzt das Verfahren beim Verfahrensblock 2609 fort, wo die Bitebene SA bestimmt, ob es die letzte Bitebene ist, indem geprüft wird, ob sie größer als oder gleich Null ist. Wenn die Bitebene SA größer als oder gleich Null ist, wird das Verfahren beim Verfahrensblock 2606 fortgesetzt. Andererseits bestimmt ein Test, ob die B-Durchgangs-Bitebene SB größer als oder gleich Null ist, wenn die Bitebene SA nicht größer als oder gleich Null ist (Verfahrensblock 2610), wodurch angezeigt wird, daß es sich für einen B-Durchgang um die letzte Bitebene handelt. Falls dem so ist, wird das Verfahren bei dem Verfahrensblock 2606 für die weitere Decodierung fortgesetzt. Andererseits wird, falls die Bitebene für den B-Durchgang SB nicht größer als oder gleich Null ist, ein inverser reversibler Filter auf die Koeffizienten von dem gröbsten Pegel der Zerlegung angewendet (Verfahrensblock 2611). Ein Test bestimmt dann, ob sämtliche der Pegel invers gefiltert worden sind (Verfahrensblock 2612). Falls nicht, wird abermals der inverse reversible Filter auf die Koeffizienten auf dem gröbsten verbleibenden Pegel bzw. Niveau der Zusammensetzung angewendet (Verfahrensblock 2613). Danach wird das Verfahren hinten beim Verfahrensschritt 2612 fortgesetzt, um noch einmal zu prüfen, ob sämtliche der Pegel invers gefiltert worden sind.
  • Wenn sämtliche der Pegel invers gefiltert worden sind, wird das Verfahren beim Verfahrensblock 2612 fortgesetzt, wo eine Speicherung oder eine Übertragung von wiederhergestellten Daten auftritt.
  • Die 27 stellt eine Ausführungsform des Verfahrens zum Modellieren jedes Koeffizienten dar. Das wiedergegebene Verfahren stellt das Modellierungsverfahren für entweder das frequenzbasierende bzw. JSF-Modellieren oder Codieren bzw. Decodieren dar. Das heißt, jeder der vier Blöcke (2507, 2508, 2607, 2608) kann mit dem Modellierungsverfahren nach 27 in die Tat umgesetzt werden. Bezugnehmend auf 27 beginnt ein anfängliches Verfahren durch anfängliches Prüfen, ob die Modellierung in einem Durchgang durchgeführt wird (Verfahrensblock 2701). Falls die Modellierung nicht in einem Durchgang geschehen kann, bestimmt ein Test, ob die Bitebene SA größer ist als die Bitebene SB (Verfahrensblock 2702). Wenn dies nicht der Fall ist, dann geht das Verfahren zu dem Verfahrensblock 2703 über, wo ein Flag (do_A_flag) freigemacht wird, um anzuzeigen, daß ein A-Durchgang nicht durchgeführt wird. Wenn die Bitebene SA größer als die Bitebene SB ist, dann wird das Verfahren bei dem Verfahrensblock 2704 fortgesetzt, wo das Flag (do_A_flag) gesetzt wird, um anzuzeigen, daß ein A-Durchgang durchzuführen ist.
  • Nach einem der Verfahrensblöcke 2703 oder 2704 wird das Verfahren bei dem Verfahrensblock 2705 fortgesetzt, wo ein Test bestimmt, ob die Bitebene SB gleich der Bitebene SA ist. Wenn die Bitebenen gleich sind, macht die vorliegende Erfindung ein Flag (do_B_flag) frei, um das Auftreten eines B-Durchlaufs zu verhindern (Verfahrensblock 2705) und das Verfahren wird danach bei dem Verfahrensblock 2707 fortgesetzt. Wenn die Bitebene SB gleich der Bitebene SA ist, ist das "do_B_flag"-Flag gesetzt, um anzuzeigen, daß ein B-Durchgang durchzuführen ist (Verfahrensblock 2706) und das Verfahren wird danach auch bei dem Verfahrensblock 2707 fortgesetzt.
  • Bei dem Verfahrensblock 2707 bestimmt ein Test, ob das Flag des A-Durchgangs gesetzt ist und die Nullbaum-Modellierung durchzuführen ist. Falls das Flag anzeigt, daß ein A-Durchgang aufzutreten hat und eine Nullbaum-Modellierung durchzuführen ist, wird ein "bestimmt/unbestimmt"-Flag auf den Zustand "unbestimmt" für jeden Koeffizienten initialisiert (Verfahrensblock 2708), und das Verfahren wird bei dem Verfahrensblock 2709 fortgesetzt. Wenn andererseits entweder das A-Durchgangsanzeigeflag oder die Nullbaum-Modellierungsanzeige nicht gesetzt sind, wird unmittelbar mit dem Verfahrensblock 2709 fortgesetzt. Bei dem Verfahrensblock 2709 ist der erste Koeffizient auf die Variable C gesetzt.
  • Wenn der erste Koeffizient der Variablen C zugeordnet worden ist, bestimmt ein Test ob der B-Durchgangsanzeigeflag gesetzt ist (Verfahrensblock 2719). Wenn der B-Durchgangsanzeigeflag (do_B_flag) gesetzt ist, führt die vorliegende Erfindung einen B-Durchgang mit dem Koeffizienten C (Verfahrensblock 2710) durch und das Verfahren wird bei dem Verfahrensblock 2711 fortgesetzt. Andererseits wird, falls der B-Durchgangsflag nicht gesetzt ist, dann ein B-Durchgang nicht für C durchgeführt und das Verfahren wird unmittelbar beim Verfahrensblock 2711 fortgesetzt.
  • Ein Test bestimmt dann, ob der A-Durchgangsanzeigeflag (do_A_flag) gesetzt ist (Verfahrensblock 2711). Wenn der A-Durchgangsanzeigeflag gesetzt ist, dann wird mit dem Koeffizienten C ein A-Durchgang durchgeführt (Verfahrensblock 2717). Danach wird das Verfahren beim Verfahrensblock 2713 fortgesetzt. Falls der A-Durchgangsanzeigeflag nicht gesetzt ist, wird das Verfahren beim Verfahrensblock 2713 fortgesetzt, ohne einen A-Durchgang mit Koeffizient C durchzuführen.
  • Beim Verfahrensblock 2713 bestimmt ein Test, ob der Koeffizient C der letzte Koeffizient ist. Wenn der Koeffizient C nicht der letzte Koeffizient ist, dann wird das Verfahren beim Verfahrensblock 2714 fortgesetzt, wo der nächste Koeffizient der Variablen C zugeordnet wird und das Verfahren beim Verfahrensblock 2719 fortgesetzt wird. Jedoch wird das Verfahren beim Verfahrensblock 2715 fortgesetzt, wo ein Test bestimmt, wenn der B-Durchgangsflag (do_B_flag) gesetzt ist, falls der Koeffizient C der letzte Koeffizient ist. Wenn der B-Durchgangsflag gesetzt ist, wird die Bitebene SB gleich der Bitebene SB-1 gesetzt (Verfahrensblock 2716) und das Verfahren wird bei dem Verfahrensblock 2717 fortgesetzt. Falls der B-Durchgangsanzeigeflag nicht gesetzt ist, wird das Verfahren beim Verfahrensblock 2717 fortgesetzt. Bei dem Verfahrensblock 2717 bestimmt ein Test, ob der A-Durchgangsflag gesetzt ist. Falls er gesetzt ist, dann ist die Bitebene SA gleich zu der Bitebene SA-1 gesetzt (Verfahrensblock 2718) und das Verfahren endet. Auch falls der A-Durchgangsflag nicht gesetzt ist, endet das Verfahren unmittelbar.
  • Bei einigen Ausführungsformen kann ohne die Verwendung eines Flag-Bits bestimmt werden, ob ein Koeffizient bei einer bestimmten Bitebene in der A-Gruppe oder der B-Gruppe ist. Dies spart ein Speicherbit pro Koeffizient, was für große Bilder wesentlich sein kann. Stattdessen wird eine Maske unter Verwendung von UND-Logik für einen Koeffizienten verglichen. Wenn das Ergebnis des UND Null ist, ist das Bit in der A-Gruppe; ansonsten ist es in der B-Gruppe. Ein Beispiel für diese Masken wird in der Tabelle 7 für acht Bitebenen gezeigt. Man beachte, daß diese Masken die Zweier-Komplemente von 2(Bitebene+1) sind (ohne das Zeichenbit).
  • Tabelle 7 – Masken
    Figure 00420001
  • Da den A-Durchgang bzw. B-Durchgang unabhängige Masken zugeordnet werden können (hierin MA und MB genannt), können so viele A-Durchgänge wie gewünscht, vor dem entsprechenden B-Durchgang durchgeführt werden. Gemäß einer Ausführungsform mit 17 Bitebenen werden drei A-Durchgänge durchgeführt, dann werden 14 gleichzeitige A-Durchgänge und B-Durchgänge durchgeführt und schließlich werden zwei B-Durchgänge durchgeführt. Da typischerweise A-Durchgangsentscheidungen effizienter codiert werden können als B-Durchgangsentscheidungen, können anfangs mehrfach durchgeführt A-Durchgänge die Qualität für eine verlustbehaftete Kompression verbessern.
  • Die 28 stellt eine Ausführungsform eines Codierers nach der vorliegenden Erfindung dar, der einen verkleinerten bzw. verringerten Flagspeicher verwendet (wie später in der detaillierten Beschreibung erörtert wird). Bezugnehmend auf 28 beginnt das Codier-Transformations- und Modelierungsverfahren mit dem Erhalt der Eingangsdaten (Verfahrensblock 2801). nach dem Erhalten der Eingangsdaten legt die vorliegende Erfindung einen umkehrbaren Kleinwellenfilter (Verfahrensblock 2802) an.
  • Als nächstes bestimmt ein Test, ob ein anderer Pegel der Zerlegung gewünscht ist (Verfahrensblock 2803). Falls ein anderer Zerlegungspegel gewünscht ist, wird das Verfahren beim Verfahrensblock 2804 fortgesetzt, wo der reversible bzw. umkehrbare Filter an die LL-Koeffizienten angelegt wird, die aus der unmittelbar vorherigen Zerlegung resultieren, und das Verfahren wird hinten beim Verfahrensschritt 2803 fortgesetzt. In dieser Weise ermöglicht es die vorliegende Erfindung, jede Anzahl von Zerlegungspegeln durchzuführen.
  • Wenn ein anderer Zerlegungspegel nicht gewünscht ist, wird das Verfahren beim Verfahrensblock 2805 fortgesetzt, wo die Bitebene für den A-Durchgang SA auf die signifikanteste Bitebene (max) gesetzt wird. Als nächstes wird die Bitebene für den B-Durchgang SB auf die nächstsignifikanteste Bitebene (max-1) gesetzt (Verfahrensblock 2806).
  • Als nächstes wird die Maske MA auf
    Figure 00430001
    (Verfahrensblock 2807) gesetzt und die Maske MB wird auf
    Figure 00430002
    gesetzt (Verfahrensblock 2808). Dann bestimmt ein Test, ob die Bitebene für den A-Durchgang SA mit einem frequenzbasierenden Modell (Verfahrensblock 2808) codiert werden soll. Falls die Bitebene SA mit dem frequenzbasierenden Modell zu codieren ist, wird das Verfahren beim Verfahrensblock 2809 fortgesetzt, wo ein Bit von jedem Koeffizienten mit dem frequenzbasierenden Modell und dem Entropiecode modelliert wird. Andererseits wird das Verfahren beim Verfahrensblock 2810 fortgesetzt, wo ein Bit von jedem Koeffizienten mit einem verbundenen Raum-/Frequenz-Modell und Entropiecode modelliert wird, falls die Bitebene SA nicht mit dem frequenzbasierenden Modell zu codieren ist.
  • In jedem Fall wird das Verfahren danach beim Verfahrensblock 2811 fortgesetzt, wo ein Test bestimmt, ob die Bitebene SA größer als oder gleich Null ist, wodurch angezeigt wird, ob es die letzte Bitebene ist. Falls die Bitebene SA größer als oder gleich Null ist, macht das Verfahren eine Schleife zurück zu dem Verfahrensblock 2808. Andererseits wird das Verfahren beim Verfahrensblock 2812 fortgesetzt, wo ein Test bestimmt, ob die Bitebene SB größer als oder gleich Null ist, falls die Bitebene SA nicht größer als oder gleich Null ist, so daß das Verfahren bestimmt, ob die Bitebene die letzte Bitebene ist, die einen B-Durchgang durchläuft. Falls die Bitebene SB größer als oder gleich Null ist, setzt das Verfahren beim Verfahrensblock 2808 fort. Falls jedoch die Bitebene SB nicht größer als oder gleich Null ist, wird das Verfahren beim Verfahrensblock 2813 fortgesetzt, wo codierte Daten entweder auf einen Kanal übertragen oder in einem Speicher gespeichert werden. Nach dem Speichern oder Übertragen der codierten Daten endet das Codiertransformations- und Modellierungsverfahren nach der vorliegenden Erfindung.
  • Die 29 stellt eine alternative Ausführungsform des Decodertransformations- und Modellierungsverfahrens nach der vorliegenden Erfindung dar, wenn ein reduzierter Flagspeicher verwendet wird. Bezugnehmend auf 29 beginnt das Decodiertransformations- und Modellierungsverfahren nach der vorliegenden Erfindung durch Wiederherstellen bzw. Wiederauffinden codierter Daten (Verfahrensblock 2901). Die codierten Daten können von einem Kanal oder Speicher oder anderen Übertragungssystemen empfangen wreden. Sobald die codierten Daten empfangen werden, wird die Bitebene für den A-Durchgang SA auf die signifikanteste Bitebene (max) gesetzt (Verfahrensblock 2903) und die Bitebene für den B-Durchgang SB wird auf die nächstsignifikanteste Bitebene (max-1) gesetzt (Verfahrensblock 2904). Nach dem Initialisieren des Wertes von jedem Koeffizienten auf Null, wird der Wert von jedem Koeffizienten auf einen anfänglichen Wert von Null gesetzt (Verfahrensblock 2905). Dann wird die Maske MB auf
    Figure 00440001
    gesetzt (Verfahrensblock 2902) und die Maske MA wird auf
    Figure 00440002
    gesetzt (Verfahrensblock 2915).
  • Dann bestimmt ein Test, ob die Bitebene SA mit einem frequenzbasierenden Modell zu decodieren ist oder nicht (Verfahrensblock 2906). Falls die Bitebene SA mit einem frequenzbasierenden Modell zu decodieren ist, wird das Verfahren beim Verfahrensblock 2907 fortgesetzt, wo ein Bit von jedem Koeffizienten mit einem frequenzbasierenden Modell und einer Entropiedecodierung modelliert wird. Falls die Bitebene SA nicht mit einem frequenzbasierenden Modell zu decodieren ist, wird das Verfahren beim Verfahrensblock 2908 fortgesetzt, wo ein Bit von jedem Koeffizienten mit einem verbundenen Raum-/Frequenz-Modell und einer Entropiedecodierung modelliert wird.
  • Nachdem jeder Koeffizient modelliert ist, wird das Verfahren beim Verfahrensblock 2909 fortgesetzt, wo die Bitebene SA bestimmt, ob es die letzte Bitebene ist, indem geprüft wird, ob sie größer als oder gleich Null ist. Ist die Bitebene SA größer als oder gleich Null, wird das Verfahren beim Verfahrensblock 2906 fortgesetzt. Andererseits, falls die Bitebene SA nicht größer als oder gleich Null ist, dann bestimmt ein Test, ob die B-Durchgangsbitebene SB größer als oder gleich Null ist (Verfahrensblock 2910), wobei angezeigt wird, daß es die letzte Bitebene für einen B-Durchgang ist. Falls dem so ist, wird das Verfahren beim Verfahrensblock 2902 für die weitere Decodierung fortgesetzt. Falls andererseits die Bitebene für den B-Durchgang, SB, nicht größer als oder gleich Null ist, wird ein reverser reversibler Filter an die Koeffizienten von dem gröbsten Zerlegungspegel angesetzt (Verfahrensblock 2911). Ein Test bestimmt dann, ob sämtliche der Pegel umgekehrt bzw. invers gefiltert worden sind (Verfahrensblock 2912). Falls nicht, wird der inverse reversible Filter wieder auf die Koeffizienten auf dem verbleibenden gröbsten Verbindungsniveau bzw. Zerlegungsniveau angelegt (Verfahrens- bzw. Verarbeitungsblock 2913). Danach wird das Verfahren hinten beim Verfahrensblock 2912 fortgesetzt, wo ein Test wiederum bestimmt, ob sämtliche der Pegel bzw. Niveaus invers gefiltert worden sind.
  • Sobald sämtliche der Niveaus bzw. Pegel invers gefiltert worden sind, wird das Verfahren beim Verfahrensblock 2912 fortgesetzt, wo ein Speichern oder Übertragen von wiederhergestellten Daten auftritt.
  • 30 stellt eine Ausführungsform des Verfahrens zum Modellieren von jedem Koeffizienten dar. Man bemerke, daß, wie bei 27, das Verfahren nach 30 verwendet werden kann, um die Modellierungsschritte nach den 28 und 29 in die Tat umzusetzen. Bezugnehmend auf 30 beginnt ein anfängliches Verfahren durch anfängliches Prüfen, ob ein A-Durchgang gewünscht ist und ob SA größer als oder gleich Null ist (Verfahrensblock 3001). Falls dem so ist, dann wird das Flag (do_A_flag) gesetzt (Verfahrensblock 3004), das anzeigt, daß ein A-Durchgang durchzuführen ist, und das Verfahren wird beim Verfahrensblock 3002 fortgesetzt. Ansonsten wird das do_A_flag-Flag freigemacht bzw. gelöscht (verfahrensblock 3003).
  • Falls die Bitebene SA größer ist als die Bitebene SB, dann wird das Verfahren beim Verfahrensblock 3004 fortgesetzt, wo ein Flag gesetzt wird, um anzudeuten, daß ein A-Durchgang aufzutreten hat. Falls die Bitebene SA nicht größer als die Bitebene SB ist, dann wird das Verfahren beim Verfahrensblock 3003 fortgesetzt, wo das Flag, das einen A-Durchgang anzeigt, als klar auftretend angenommen wird.
  • Nach entweder dem Verfahrensblock 3003 oder 3004 wird das Verfahren beim Verfahrensblock 3002 fortgesetzt, wo ein Test bestimmt, ob die Bitebene SB größer als oder gleich der Bitebene SA ist und ob ein B-Durchgang gewünscht wird. Falls die Bitebenen nicht gleich sind, löscht bzw. macht die vorliegende Erfindung ein Flag (do_B_flag) frei, um zu verhindern, daß ein B-Durchgang auftritt (Verfahrensblock 3005) und das Verfahren wird danach beim Verfahrensblock 3007 fortgesetzt. Falls die Bitebene SB gleich der Bitebene SA ist, wird das do_B_flag-Flag gesetzt, um anzuzeigen, daß ein B-Durchgang durchzuführen ist (Verfahrensblock 3006) und das Verfahren wird auch danach beim Verfahrensblock 3007 fortgesetzt.
  • Beim Verfahrensblock 3007 bestimmt ein Test, ob der A-Durchgangsflag gesetzt ist und die Nullbaum-Modellierung durchzuführen ist. Falls das Flag andeutet, daß ein A-Durchgang aufzutreten hat und eine Nullbaum-Modellierung durchzuführen ist, wird ein "bestimmt/unbestimmt"-Flag mit dem "unbestimmt"-Zustand für jeden Koeffizienten initialisiert, der Kinder bzw. Nachkommen (Verfahrensblock 3008) hat und das Verfahren wird beim Verfahrensblock 3009 fortgesetzt. Andererseits wird, falls entweder der A-Durchgangsanzeigeflag oder die Nullbaum-Modellierungsanzeige nicht gesetzt sind, das Verfahren unmittelbar beim Verfahrensblock 3009 fortgesetzt. Beim Verfahrensblock 3009 wird der erste Koeffizient auf die Variable C gesetzt.
  • Sobald der erste Koeffizient der Variablen C zugeordnet worden ist, bestimmt ein Test, ob der B-Durchgangsanzeigeflag gesetzt ist (Verfahrensblock 3019). Falls der B-Durchgangsanzeigeflag (do_B_flag) gesetzt ist, führt die vorliegende Erfindung einen B-Durchgang an dem Koeffizienten C (Verfahrensblock 3010) durch und das Verfahren wird beim Verfahrensblock 3011 fortgesetzt. Andererseits wird ein B-Durchgang nicht an C durchgeführt, falls der B-Durchgangsflag nicht gesetzt ist, und das Verfahren wird unmittelbar beim Verfahrensblock 3011 fortgesetzt.
  • Der Test bestimmt dann, ob der A-Durchgangsanzeigeflag gesetzt worden ist (Verfahrensblock 3011). Falls der A-Durchgangsanzeigeflag gesetzt worden ist, dann wird auf den Koeffizienten C ein A-Durchgang durchgeführt (Verfahrensblock 3017). Danach wird das Verfahren beim Verfahrensblock 3013 fortgesetzt. Falls der A-Durchgangsanzeigeflag gesetzt ist, wird das Verfahren beim Verfahrensblock 3013 fortgesetzt, ohne einen A-Durchgang an dem Koeffizienten C durchzuführen.
  • Beim Verfahrensblock 3013 bestimmt ein Test, ob der Koeffizient C der letzte Koeffizient ist. Fall der Koeffizient C nicht der letzte Koeffizient ist, dann wird das Verfahren beim Verfahrensblock 3013 fortgesetzt, wo der nächste Koeffizient der Variablen C zugeordnet wird und das Verfahren wird beim Verfahrensblock 3019 fortgesetzt. Jedoch wird das Verfahren beim Verfahrensblock 3015 fortgesetzt, wo ein Test bestimmt, ob das B-Durchgangsflag (do_B_flag) gesetzt ist, falls der Koeffizient C der letzte Koeffizient ist. Wenn der B-Durchgangsflag gesetzt ist, ist die Bitebene SB gleich der Bitebene SB-1 (Verfahrensblock 3016) und das Verfahren wird beim Verfahrensblock 3017 fortgesetzt. Falls der B-Durchgangsanzeigeflag nicht gesetzt ist, wird das Verfahren beim Verfahrensblock 3017 fortgesetzt. Beim Verfahrensblock 3017 bestimmt ein Test, ob der A-Durchgangsflag gesetzt ist. Falls er gesetzt ist, dann wird die Bitebene SA gleich der Bitebene SA-1 gesetzt (Verfahrensblock 3018) und das Verfahren endet. Auch falls der A-Durchgangsflag nicht gesetzt wird, endet dann das Verfahren unmittelbar.
  • Koeffizientenbäume
  • In einem Pyramidalsystem können Koeffizienten unter Verwendung einer Baumstruktur in Sätze gruppiert werden. Die Wurzel von jedem Baum ist ein reiner Tiefpaßkoeffizient. Die 5 stellt die Baumstruktur eines reinen Tiefpaßkoeffizienten des transformierten Bildes dar. Für ein zweidimensionales Signal, wie etwa ein Bild, hat die Wurzel des Baumes drei "Kinder" und der Rest der Knoten weist jeweils vier Kinder bzw. Nachkommen auf. Die Baumhierarchie ist nicht auf zweidimensionale Signale begrenzt. Zum Beispiel weist eine Wurzel für ein eindimensionales Signal einen Nachkommen und Nicht-Wurzel-Knoten auf, die jeweils zwei Nachkommen haben. Höhere Dimensionen folgen aus den eindimensionalen und zweidimensionalen Fällen.
  • Die Baumstruktur wird auch aus den Operationen der in den 4A bis 4C gezeigten Filter deutlich. Die Operation der Filterpaare mit Unterabtastung bewirkt die Inbezugsetzung der zuvor beschriebenen Koeffizienten.
  • Bei der vorliegenden Erfindung bestimmt ein Kontextmodell, welches der mehreren Codierungsverfahren zu verwenden ist, um die Koeffizienten weiter zu codieren, nachdem die Koeffizienten im Zeichen-Größenordnungsformat angeordnet worden sind. Ein frequenzbasierendes Codierungsschema, wie etwa Nullbaum-Codierung, codiert die Signifikanzdaten, die mit einer gegebenen Unterbandzerlegung für eine spezifizierte Schwelle verbunden sind, effizient. Zusätzlich zur Verwendung von Symbolen, die die Signifikanz oder Insignifikanz von einzelnen isolierten Koeffizienten in der verbundenen Unterbandzerlegung anzeigen, werden die Eingänge von insignifikanten Eltern mit allen insignifikanten Nachkommen (jene mit Größenordnungen, die geringer als oder gleich der gegebenen Schwelle sind) zusammengruppiert und gemeinsam codiert. Auf diese Bäume wird manchmal als Nullbäume Bezug genommen. Dies insignifikanten Bäume werden mit einzelnen zugeordneten bzw. zweckmäßigen Symbolen codiert, die manchmal als Nullbaumwurzel bezeichnet werden. Wenn es da jedoch einen signifikanten Herabsteigenden gibt, wird der Eingang eines insignifikanten Koeffizienten unter Verwendung des Symbols für eine "isolierte bzw. getrennte Null" codiert. Folglich wird ein Baum mit vier Symbolen (positive Signifikanz, negative Signifikanz, isolierte Null oder Nullbaumwurzel) für Entscheidungen codiert, wobei das Zeichen für den Koeffizienten bis dahin nicht codiert worden ist.
  • Das frequenzbasierende Codieren ist besonders zweckmäßig bei Kompressionssystemen, weil es das verbundene Codieren von insignifikanten Bäumen einer kleinen Anzahl von Eltern- bzw. Stammkoeffizienten ermöglicht, die Insignifikanz einer großen Anzahl von absteigenden bzw. abfallenden Koeffizienten vorherzusagen. Da die Eingänge in den Baum, der mit den absteigenden Koeffizienten verbunden ist, von der Wurzel vorhergesagt werden kann, sind keine zusätzlichen Symbole nötig, um ihre Insignifikanz zu codieren. Die Insignifikanz des gesamten Baumes kann bei sehr geringen Kosten codiert werden. Folglich bestehen die Bitebenen höherer Ordnung zumeist aus insignifikanten Koeffizienten, von denen viele weder Nullbaumwurzeln noch isolierte Nullen sind (d.h. sie sind Kinder bzw. Nachkommen in insignifikanten Bäumen, welche nicht codiert werden müssen).
  • Shapiro offenbart ein frequenzbasierendes Modell, das Nullbaum genannt wird, in dem US-Patent Nr. 5,321,776. Bei dem Verfahren von Shapiro werden zwei Listen, eine dominierende Liste und eine untergeordnete Liste, verwendet, um sämtliche der Koeffizienten zu speichern. Für jeden Signifikanz- bzw. Wertigkeitspegel bzw. jedes Signifikanzniveau werden zwei Durchgänge vorgenommen, ein dominanter Durchgang und ein untergeordneter Durchgang. Bei einer Ausführungsform ist das frequenzbasierende Modell nach der vorliegenden Erfindung ein Nullbaum.
  • In einer anderen Ausführungsform wird ein frequenzbasierendes Modell, ähnlich dem Nullbaum (wie durch Shapiro beschrieben), verwendet. Anstelle der Verwendung mehrerer Listen bzw. multipler Listen wird nur eine einzige Liste verwendet, wobei jedes der Listenelemente als ein Mitglied einer von zwei Gruppen markiert worden ist. Die Trennung von Koeffizienten in eine A-Gruppe und eine B-Gruppe ist äquivalent zu der Trennung, die Shapiro mit dominanten und untergeordneten Listen (jeweils) erzielt. Shapiro's Verwendung von multiplen Listen ermöglicht eine größere Flexibilität bei der Ordnung von Koeffizienten in untergeordnete Listen zu Lasten von größerer bzw. umfangreicher Software-/Hardware-Komplexität. Das Einzellisten-Nullbaum-Verfahren verwendet zwei Durchgänge, den A-Durchgang und den B-Durchgang, die äquivalent zu Shapiro's dominantem Durchgang bzw. untergeordnetem Durchgang sind. Das Einzellisten-Nullbaum-Modell wird unten beschrieben.
  • Das Codierungssystem nach der vorliegenden Erfindung hält eine Liste der Koeffizienten in einer Zeichen-Größenordnungsform im Speicher aufrecht. Jedes Element in der Liste hat eine Einbit-Benennung bzw. -Beschriftung, die andeutet, ob das Element ein Mitglied der "A-Gruppe" oder der "B-Gruppe" ist. Bei dem Beginn einer Stufe werden jene Koeffizienten, die nicht bis jetzt als signifikant herausgefunden worden sind, als in die A-Gruppe gehörend benannt. Jene Koeffizienten, die zuvor als signifikant im Hinblick auf vorherige, größere Schwellen herausgefunden worden sind, werden als in die B-Gruppe gehörig benannt. Die Liste enthält die Koeffizienten in der Ordnung, in der sie für die Codierung verarbeitet werden. Bei dem Beginn der allerersten Stufe werden sämtliche Koeffizienten als Mitglieder der A-Gruppe benannt, da keine Koeffizienten als signifikant eingerichtet worden sind. Wenn Koeffizienten als signifikant oder insignifikant bestimmt worden sind, werden die Benennungen für deren Eingänge von der ursprünglichen A-Gruppenbenennung zu der B-Gruppenbenennung gewechselt. Die Liste wird nachfolgend bei zunehmend feineren Schwellen verfeinert. Das heißt, mehrfache Durchgänge durch die Liste treten auf.
  • In einer Ausführungsform werden die binären Ereignisse, die den Koeffizienten der B-Gruppe entsprechen, binär arithmetisch unter einem Markov-Kontextmodell nullter Ordnung codiert. Die Vierer-Ereignisse (4-ary events), die den Koeffizienten der A-Gruppe entsprechen, werden ebenfalls unter einem Markov-Kontextmodell nullter Ordnung codiert.
  • Die Reihenfolge der Koeffizienten in der Liste gemäß der vorliegenden Erfindung bewahrt die Baumstruktur derart, daß kein Kind bzw. Nachkomme vor seinen Eltern modelliert werden kann. Folglich ist eine Ordnung, die die Baumstruktur bewahrt, fest eingerichtet und wird einheitlich bzw. konsistent verwendet. In einer Ausführungsform werden die Koeffizienten im Speicher in der Reihenfolge von dem ersten Speicherort verwendet. In einer anderen Ausführungsform kann eine verbundene Liste verwendet werden.
  • In einer Ausführungsform werden die Koeffizienten in einem Bit-Signifikanz- oder einem Bitebenen-Einbettungssystem codiert. Da die Koeffizienten von der signifikantesten Bitebene zu der am wenigsten signifikanten Bitebene codiert werden, muß die Anzahl der Bitebenen in den Daten bestimmt werden. Gemäß der vorliegenden Erfindung wird dies ausgeführt, indem eine obere Grenze bzw. Schranke der Größenordnungen der Koeffizientenwerte aus den Daten berechnet wird oder aus der Tiefe des Bildes und der Filterkoeffizienten erhalten wird. Zum Beispiel gibt es acht signifikante Bits oder acht Bitebenen, wenn die obere Schranke 149 beträgt.
  • Die 6A stellt eine Ausführungsform des Einzellisten-Nullbaum-Codierungsverfahrens nach der vorliegenden Erfindung dar. In einer Ausführungsform kann das Verfahren gemäß 6A auch bei dem Modellierungsverfahren nach 27 verwendet werden. Bezugnehmend auf 6A beginnt das Verfahren mit dem Testen, ob der Gruppenflag für den Koeffizienten C auf die "A-Gruppe" (Verfahrensschritt 3221) gesetzt ist. Falls nicht, endet das Verfahren. Andererseits wird dann das Verfahren bei dem Verfahrensblock 3222 fortgesetzt, wo ein Test bestimmt, ob der "bestimmt/unbe stimmt"-Flag für den Koeffizienten C auf "unbestimmt" gesetzt ist, falls der Gruppenflag für den Koeffizienten C auf die "A-Gruppe" gesetzt ist. Falls das "bestimmt/unbestimmt"-Flag für den Koeffizienten nicht auf "unbestimmt" gesetzt ist, endet das Verfahren. Falls jedoch der "bestimmt/unbestimmt"-Flag für den Koeffizienten C auf "unbestimmt" gesetzt ist, wird das Verfahren bei dem Verfahrensblock 3203 fortgesetzt, wo ein Test bestimmt, ob das Bit SA des Koeffizienten C Eins ist.
  • Wenn das Bit SA des Koeffizienten C nicht Eins ist, wird das Verfahren bei dem Verfahrensblock 3207 fortgesetzt. Andererseits wird das Verfahren bzw. die Verarbeitung beim Verfahrensblock 3204 fortgesetzt, wo ein Test bestimmt, ob das Zeichen des Koeffizienten C positiv ist, falls das Bit SA des Koeffizienten C Eins ist. Wenn das Zeichen des Koeffizienten C nicht positiv ist, wird die Entscheidung bei "negativ signifikant" in dem/den "A-Gruppen"-Kontext(en) codiert (Verfahrensblock 3205), und das Verfahren wird beim Verfahrensblock bzw. Verarbeitungsblock 3229 fortgesetzt. Wenn das Zeichen des Koeffizienten C positiv ist, wird die Entscheidung als "positiv signifikant" in dem/den "A-Gruppen"-Kontext(en) codiert (Verarbeitungsblock 3206) und das Verfahren wird bei dem Verfahrens- bzw. Verarbeitungsblock 3229 fortgesetzt. Bei dem Verarbeitungs- bzw. Verfahrensblock 3229 wird der Gruppenflag für C auf die "B-Gruppe" gesetzt.
  • Bei dem Verarbeitungsblock 3207 bestimmt ein Test, ob das Bit SA für sämtliche absteigenden (Kinder bzw. Nachkommen) des Koeffizienten C Null ist. Wenn das Bit SA nicht Null ist, wird die Entscheidung als "insignifikant mit signifikanten Nachkommen" (01) in dem/den "A-Gruppen"-Kontext(en) codiert (Verarbeitungsblock 3208) und das Verfahren endet. Andererseits wird, falls das Bit SA für sämtliche absteigenden (Kinder bzw. Nachkommen) des Koeffizienten C Null ist, die Entscheidung als "Nullbaumwurzel" (00) mit bzw. bei "A-Gruppen"-Kontext(en) codiert (Verarbeitungsblock 3209). Danach wird der "bestimmt/unbestimmt"-Flag für sämtliche der Absteigenden des Koeffizienten C auf "bestimmt" gesetzt (Verarbeitungsblock 3221) und das Verfahren endet.
  • In einer anderen Ausführungsform kann der Terminierungstest für das Verfahren sein, ob ein bestimmtes gewünschtes Kompressionsverhältnis erreicht wird.
  • Gemäß einer Ausführungsform werden die binären Ereignisse, die aus dem B-Durchlauf resultieren, unter dem Markov-Quellenkontextmodell nullter Ordnung entropiecodiert. Das 2-Bit-Alphabet (Größe 4), das aus dem A-Durchlauf resultiert, wird ebenfalls unter der Markov-Quelle nullter Ordnung durch einen 4er (Alphabet der Größe 4) Arithmetikcodierer decodiert.
  • Die 6B und 6B (fortgesetzt) stellen eine alternative Ausführungsform des Einzellisten-Nullbaum-Codierungsverfahrens nach der vorliegenden Erfindung dar, das einen reduzierten Flagspeicher verwendet. Gemäß einer Ausführungsform kann das Verfahren nach 6B als der A-Durchgang in dem Verfahren nach 30 verwendet werden. Bezugnehmend auf die 6B und 6B (fortgesetzt), beginnt das Verfahren, indem getestet wird, ob das Ergebnis einer UND-Operation des Koeffizienten C mit der Maske MA Null ergibt (Verfahrensschritt 3201). Falls nicht, endet das Verfahren. Andererseits, falls das Ergebnis der UND-Operation des Koeffizienten C mit der Maske MA Null ist, wird die Verarbeitung bzw. das Verfahren bei dem Verfahrens- bzw. Verarbeitungsblock 3202 fortgesetzt, wo ein Test bestimmt, ob der "bestimmt/unbestimmt"-Flag für die Eltern bzw. den Stamm des Koeffizienten C auf "unbestimmt" gesetzt ist, falls der Flag für die Eltern bzw. den Stamm der Koeffizienten auf "unbestimmt" gesetzt ist, endet das Verfahren. Falls jedoch der "bestimmt/unbestimmt"-Flag für den Stamm des Koeffizienten C auf "unbestimmt" gesetzt ist, wird die Verarbeitung beim Verfahrensblock 3203 fortgesetzt, wo ein Test bestimmt, ob das Bit SA des Koeffizienten C Eins ist.
  • Falls das Bit SA des Koeffizienten C nicht Eins ist, wird die Verarbeitung beim Verfahrensblock 3207 fortgesetzt. Andererseits wird die Verarbeitung beim Verarbeitungsblock 3204 fortgesetzt, wo ein Test bestimmt, ob das Zeichen des Koeffizienten C positiv ist, falls das Bit SA des Koeffizienten C Eins ist. Wenn das Zeichen des Koeffi zienten C nicht positiv ist, wird die Entscheidung bei "negativ signifikant" in dem/den "A-Gruppen"-Kontext(en) codiert (Verarbeitungsblock 3205) und das Verfahren endet. Falls das Zeichen des Koeffizienten C positiv ist, wird die Entscheidung als "positiv signifikant" in dem/den "A-Gruppen"-Kontext(en) codiert (Verarbeitungsblock 3206) und das Verfahren endet. In einer Ausführungsform wird ein 4er-Codierer verwendet und 4er-Entscheidungen werden in einem Kontext codiert. In einer anderen Ausführungsform wird ein binärer Codierer verwendet und drei Kontexte werden verwendet (z.B. sind die drei Kontexte das erste Bit der Entscheidung, das zweite Bit, wenn das erste Bit Null ist und das zweite Bit, wenn das erste Bit Eins ist).
  • Beim Verarbeitungsblock 3207 bestimmt ein Test, ob das Bit SA für sämtliche Absteigenden (Nachkommen) des Koeffizienten C Null ist. Falls das Bit SA nicht Null ist, wird die Entscheidung als "insignifikant mit signifikanten Nachkommen", "isolierte bzw. getrennte Null" (01) in dem/den "A-Gruppen"-Kontext(en) (Verarbeitungsblock 3208) codiert, und das Verfahren endet. Andererseits wird, wenn das Bit SA für sämtliche der Absteigenden (Nachkommen) des Koeffizienten C Null ist, die Entscheidung als "Nullbaumwurzel" (00) in dem/den "A-Gruppen"-Kontext(en) (Verarbeitungsblock 3209) codiert. Dann wird der "bestimmt/unbestimmt"-Flag für den Koeffizienten C auf "bestimmt" (Verarbeitungsblock 3210) gesetzt. Danach wird der "bestimmt/unbestimmt"-Flag für sämtliche der Absteigenden des Koeffizienten, welche umgekehrt bzw. folglich Absteigende aufweisen, auf "bestimmt" (Verarbeitungsblock 3211) gesetzt, und das Verfahren endet.
  • Decodierungsschritte
  • Gemäß der vorliegenden Erfindung wird das Decodieren eng verknüpft bzw. im Schulterschluß mit der Codierung durchgeführt.
  • Die 6C stellt eine Ausführungsform des A-Durchgangsverfahrens für einen Nullbaum-Horizontal-Decodierungsprozeß dar und kann in Verbindung mit dem Verfahren nach 27 verwendet werden. Bezugnehmend auf 6C beginnt das Verfahren, indem getestet wird, ob der Gruppenflag für den Koeffizienten C auf die "A-Gruppe" gesetzt ist (Verarbeitungsblock 3521). Falls nicht, endet das Verfahren. Jedoch wird, falls dem so ist, die Verarbeitung bei dem Verarbeitungsblock 3528 fortgesetzt, wo ein Test bestimmt, ob der "bestimmt/unbestimmt"-Flag für den Koeffizienten C auf "unbestimmt" gesetzt ist. Falls nicht endet das Verfahren. Falls dem so ist, wird das Verfahren beim Verarbeitungsblock 3502 fortgesetzt, wo die ternäre Entscheidung in einem A-Gruppen-Kontext(en) decodiert wird.
  • Dann bestimmt ein Test, ob die Entscheidung "positiv signifikant" ist (Verarbeitungsblock 3503). Falls die Entscheidung "positiv signifikant" ist, wird das Zeichen des Koeffizienten C auf positiv gesetzt (Verarbeitungsblock 3505), die Größenordnung des Koeffizienten wird auf 2S A gesetzt (Verarbeitungsblock 3507), der Gruppenflag für den Koeffizienten C wird auf die "B-Gruppe" (Verarbeitungsblock 3541) gesetzt und das Verfahren endet.
  • Falls die Entscheidung nicht "positiv signifikant" (Verfahrensblock 3503) ist, bestimmt ein Test, ob die Entscheidung "negativ signifikant" ist (Verarbeitungsblock 3504). Falls die Entscheidung nicht "negativ signifikant" ist, wird das Verfahren beim Verarbeitungsblock 3509 fortgesetzt, wo ein Test bestimmt, ob die Entscheidung eine Nullbaumwurzel ist. Falls die Entscheidung keine Nullbaumwurzel ist, endet das Verfahren. Falls die Entscheidung eine Nullbaumwurzel ist, wird das "bestimmt/unbestimmt"-Flag für sämtliche Absteigenden des Koeffizienten C auf "unbestimmt" (Verarbeitungsblock 3531) gesetzt und das Verfahren endet.
  • Jedoch wird, falls der Test bzw. die Prüfung des Verarbeitungsblocks 3504 bestimmt, daß die Entscheidung "negativ signifikant" ist, anschließend das Zeichen des Koeffizienten C auf negativ gesetzt (Verarbeitungsblock 3506), die Größenordnung des Koeffiziente auf 2S A gesetzt (Verarbeitungsblock 3507), der Gruppenflag für den Koeffizienten C auf die B-Gruppe (Verarbeitungsblock 3541) gesetzt und das Verfahren endet.
  • Die 6D stellt eine alternative Ausführungsform des A-Durchgangsverfahrens für einen Nullbaum-Horizontal-Decodierungsprozeß unter Verwendung eines reduzierten Flagspeichers dar und kann in dem in 30 beschriebenen Verfahren verwendet werden. Bezugnehmend auf 6D beginnt das Verfahren durch Testen, ob das Ergebnis einer UND-Operation des Koeffizienten C mit der Maske MA Null ist (Verarbeitungsblock 3501). Falls nicht, endet dann der Prozeß. Falls jedoch das Ergebnis der UND-Operation des Koeffizienten C mit der Maske MA Null ist, wird die Verarbeitung beim Verarbeitungsblock 3508 fortgesetzt, wo ein Test bestimmt, ob der "bestimmt/unbestimmt"-Flag für den Stamm von C "unbestimmt" lautet. Falls nicht, endet das Verfahren. Falls dem so ist, wird dann das Verfahren beim Verarbeitungsblock 3502 fortgesetzt, wo die ternäre Entscheidung in A-Gruppen-Kontext(en) decodiert wird.
  • Anschließend bestimmt ein Test, ob die Entscheidung "positiv signifikant" ist (Verarbeitungsblock 3503). Falls die Entscheidung "positiv signifikant" ist, wird das Zeichen des Koeffizienten auf positiv gesetzt (Verarbeitungsblock 3505), die Größenordnung des Koeffizienten auf 2S A gesetzt (Verarbeitungsblock 3507) und das Verfahren endet.
  • Falls die Entscheidung nicht "positiv signifikant" ist, bestimmt ein Test, ob sie "negativ signifikant" ist (Verarbeitungsblock 3504). Falls die Entscheidung nicht "negativ signifikant" ist, wird das Verfahren beim Verarbeitungsblock 3509 fortgesetzt, wo ein Test bestimmt, ob die Entscheidung eine Nullbaumwurzel ist. Falls die Entscheidung keine Nullbaumwurzel ist, endet das Verfahren. Falls die Entscheidung eine Nullbaumwurzel ist, wird der "bestimmt/unbestimmt"-Flag für den Koeffizienten C auf "bestimmt" gesetzt (Verarbeitungsblock 3510), die "bestimmt/unbestimmt"-Flags für sämtliche Absteigenden des Koeffizienten C, welche umgekehrt bzw. in Folge Absteigende aufweisen, auf "unbestimmt" gesetzt (Verarbeitungsblock 3511), und das Verfahren endet.
  • Jedoch wird dann, wenn der Test vom Verarbeitungsblock 3504 bestimmt, daß die Entscheidung "negativ signifikant" lautet, das Zeichen des Koeffizienten C auf negativ gesetzt (Verarbeitungsblock 3506), die Größenordnung des Koeffizienten C wird auf 2S A (Verarbeitungsblock 3507) gesetzt und das Verfahren endet.
  • Alternativen existieren gemäß der durch Shapiro vorgenommenen Auswahl, um 4er-Entscheidungen zu verwenden, um Bäume zu beschreiben. Größere Alphabete können verwendet werden, um die Charakteristiken eines vollkommenen Baumes ferner zu spezifizieren, wenn die Wurzel des Baumes codiert wird. In einer Ausführungsform werden die folgenden von 6er-Entscheidungen verwendet.
    • – insignifikant mit insignifikanten Nachkommen (Nullbaumwurzel)
    • – insignifikant mit zumindest einem signifikanten Nachkommen
    • – signifikant, positiv und sämtliche Nachkommen nicht negativ
    • – signifikant, positiv und zumindest ein Nachkomme ist negativ
    • – signifikant, negativ und sämtliche Nachkommen sind nicht positiv
    • – signifikant, negativ und zumindest ein Nachkomme ist positiv
  • In dieser Ausführungsform wird Zeicheninformation zusätzlich zur Insignifikanz für einen gesamten Baum vorhergesagt. In anderen Ausführungsformen können Bäume mit anderen Zeichen Zwangs- bzw. Nebenbedingungen oder mit Größenordnungs-Zwangs- bzw. Nebenbedingungen vorhergesagt werden. Alternativ könnten Vorhersager insbesondere bei der Darstellung von Texturen bzw. Strukturen oder bei der Darstellung von Mehr-Auflösungsmerkmalen zweckmäßig sein. Bei größeren Alphabeten kann die Verwendung von Markov-Kontexten höherer Ordnung (wie später beschrieben wird) zweckmäßig sein.
  • Listenbasierende mehrdurchgangs-verbundene Raum-/Frequenz-Einbettungsmodellierung
  • Gemäß der vorliegenden Erfindung wird fequenz-eingebettetes Codieren, wie etwa hierin offenbartes Horizont- bzw. Horizontal-Ordnungsmodellieren, zum Codieren von ternären Ereignissen, die den Koeffizienten in der A-Gruppe entsprechen, verwendet.
  • Beim Horizont- bzw. Horizontalcodieren sind sämtliche den Codierungsschritten vorausgehende Initialisierungen identisch zu dem frequenzbasierenden System. In einer Ausführungsform wird binäres Entropiecodieren mit drei Kontexten durchgeführt, der "A-Gruppen-Größenordnung", dem "A-Gruppenzeichen" und der "B-Gruppe".
  • Die 7A ist ein Flußdiagramm einer Ausführungsform des A-Durchgangs für ein Einzellisten-Horizontal-Codierverfahren nach der vorliegenden Erfindung. Dieses Verfahren kann in dem Verfahren nach 27 verwendet werden. Bezugnehmend auf 7A beginnt das A-Durchgangsverfahren, indem getestet wird, ob der Gruppenflag für den Koeffizienten C auf die "A-Gruppe" (Verfahrensblock 3111) gesetzt ist. Falls nicht, endet das Verfahren. Falls der Gruppenflag für den Koeffizienten C auf die "A-Gruppe" gesetzt ist, wird die Verarbeitung bei dem Verarbeitungsblock 3102 fortgesetzt, wo ein Test bestimmt, ob das Bit SA des Koeffizienten C Eins ist. Falls das Bit SA des Koeffizienten C nicht Eins ist, wird die Entscheidung als insignifikant (0) in dem "A-Gruppen"-Kontext (Verarbeitungsblock 3103) codiert und das Verfahren endet. Falls das Bit SA des Koeffizienten C Eins ist, dann wird die Verarbeitung beim Verarbeitungsblock 3104 fortgesetzt, wo ein Test bestimmt, ob das Zeichen des Koeffizienten C positiv ist. Falls das Zeichen bzw. Vorzeichen des Koeffizienten C positiv ist, wird die Entscheidung als "positiv signifikant" (10) in dem/den "A-Gruppen"-Kontext(en) kodiert (Verarbeitungsblock 3106) und das Verfahren wird beim Verarbeitungsblock 3117 fortgesetzt. Andererseits wird, falls das Zeichen bzw. Vorzeichen des Koeffizienten C nicht positiv ist, die Entscheidung als "negativ signifikant" (11) in dem/den "A-Gruppen"-Kontext(en) (Verarbeitungsblock 3105) codiert und das Verfahren wird beim Verarbeitungsblock 3117 fortgesetzt. Bei dem Verarbeitungsblock 3117 wird der Gruppenflag für den Koeffizienten C auf die "B-Gruppe" gesetzt.
  • Die 7B ist ein Flußdiagramm einer alternativen Ausführungsform des A-Durchgangs für ein Einzellisten-Horizontal-Codierungsverfahren, das einen reduzierten Flagspeicher verwendet. Dieses Verfahren kann in dem Verfahren nach 30 verwendet werden. Bezugnehmend auf 7B beginnt der A-Durchlauf, indem getestet wird, ob das Ergebnis der UND-Operation des Koeffizienten C mit der Maske MA Null ergibt (Verarbeitungsblock 3101). Falls nicht, endet dann das Verfahren. Falls das Ergebnis der UND-Operation des Koeffizienten C mit der Maske MA Null ist, wird die Verarbeitung beim Verarbeitungsblock 3102 fortgesetzt, wo ein Test bestimmt, ob das Bit SA des Koeffizienten C Eins ist. Falls das Bit SA des Koeffizienten C nicht Eins ist, wird die Entscheidung als insignifikant (0) in dem "A-Gruppen"-Kontext (Verarbeitungsblock 3103) codiert und das Verfahren endet. Falls das Bit SA des Koeffizienten C Eins ist, dann wird die Verarbeitung beim Verarbeitungsblock 3104 fortgesetzt, wo ein Test bestimmt, ob das Zeichen bzw. Vorzeichen des Koeffizienten C positiv ist. Falls das Vorzeichen des Koeffizienten C positiv ist, wird die Entscheidung als "positiv signifikant" (10) in dem/den "A-Gruppen"-Kontext(en) (Verarbeitungsblock 3106) codiert und das Verfahren endet. Andererseits wird, falls das Vorzeichen des Koeffizienten C nicht positiv ist, die Entscheidung als "negativ signifikant" (11) in dem/den "A-Gruppen"-Kontext(en) (Verarbeitungsblock 3105) codiert und das Verfahren endet.
  • Decodierungsschritte
  • Die 7C stellt eine Ausführungsform des A-Durchgangsverfahrens für ein Einzellisten-Horizontal-Decodierungsverfahren nach der vorliegenden Erfindung dar und kann in dem Verfahren nach 27 verwendet werden. Bezugnehmend auf 7C beginnt das Verfahren, indem getestet wird, ob der Gruppenflag für den Koeffizienten C auf die "A-Gruppe" gesetzt ist (Verarbeitungsblock 3411). Falls nicht, endet das Verfahren. Jedoch wird, falls der Gruppenflag für den Koeffizienten C auf die "A-Gruppe" gesetzt ist, die Verarbeitung bei dem Verarbeitungsblock 3402 fortgesetzt, wo die ternäre Entscheidung in dem/den "A-Gruppen"-Kontext(en) codiert wird.
  • Anschließend bestimmt ein Test, ob die Entscheidung "positiv signifikant" ist (Verarbeitungsblock 3403). Falls die Entscheidung "positiv signifikant" ist, wird das Vorzeichen des Koeffizienten C auf positiv gesetzt (Verarbeitungsblock 3405), die Größenordnung des Koeffizienten auf 2S A gesetzt (Verarbeitungs- bzw. Verfahrensblock 3407), der Gruppenflag für den Koeffizienten C wird auf die "B-Gruppe" gesetzt (Verarbeitungsblock 3418), und das Verfahren endet.
  • Falls die Entscheidung nicht "positiv signifikant" lautet, bestimmt ein Test, ob sie "negativ signifikant" (Verarbeitungsblock 3404) ist. Falls die Entscheidung nicht "negativ signifikant" ist, endet das Verfahren. Jedoch wird dann, wenn die Entscheidung "negativ signifikant" ist, der Koeffizient C auf negativ (Verarbeitungsblock 3406) gesetzt, die Größenordnung von C auf 2S A gesetzt (Verarbeitungsblock 3407), der Gruppenflag für den Koeffizienten C wird auf die "B-Gruppe" gesetzt (Verarbeitungsblock 3418) und das Verfahren endet.
  • Die 7D stellt eine alternative Ausführungsform des A-Durchlaufverfahrens für ein Einzellisten-Horizontal-Decodierungsverfahren unter Verwendung eines reduzierten Flagspeichers dar und kann in dem Verfahren nach 30 verwendet werden. Bezugnehmend auf 7D beginnt das Verfahren, indem getestet wird, ob das Ergebnis der UND-Operation des Koeffizienten C mit der Maske MA Null ist (Verarbeitungsblock 3401). Falls nicht, endet das Verfahren. Jedoch wird, falls das Ergebnis der UND-Operation des Koeffizienten C mit der Maske MA Null ist, die Verarbeitung beim Verarbeitungsblock 3402 fortgesetzt, wo die ternäre Entscheidung in dem/den A-Gruppen-Kontexten) decodiert wird.
  • Anschließend bestimmt ein Test, ob die Entscheidung "positiv signifikant" ist (Verarbeitungsblock 3403). Falls die Entscheidung "positiv signifikant" ist, wird das Zeichen bzw. Vorzeichen des Koeffizienten C auf positiv gesetzt (Verarbeitungsblock 3405), die Größenordnung des Koeffizienten wird auf 2S A gesetzt (Verarbeitungsblock 3407) und das Verfahren endet.
  • Falls die Entscheidung nicht "positiv signifikant" ist, bestimmt ein Test, ob sie "negativ signifikant" (Verarbeitungsblock 3404) ist. Falls die Entscheidung nicht "negativ signifikant" ist, endet das Verfahren. Jedoch wird, falls die Entscheidung "negativ signifikant" lautet, dann das Vorzeichen des Koeffizienten C auf negativ gesetzt (Verarbeitungsblock 3406), die Größenordnung von C wird auf 2S A gesetzt (Verarbeitungsblock 3407) und das Verfahren endet.
  • B-Durchlauf sowohl für Nullbaum als auch für Horizont
  • In einer Ausführungsform ist das B-Durchlaufverfahren sowohl für den Nullbaum als auch für den Horizont nach der vorliegenden Erfindung das gleiche. Ausführungsformen für den B-Durchlaufalgorithmus für das Codierverfahren und das Decodierverfahren sind in den 8A und 8B bzw. 9A und 9B gezeigt.
  • Die 8A stellt eine Ausführungsform eines B-Durchlaufverfahrens dar, das teilweise für Nullbaum und Einzellisten-Horizontal-Codierungsverfahren verwendet wird und in dem Verfahren nach 27 verwendet werden kann. Bezugnehmend auf die 8A prüft das Verfahren eingangs, ob der Gruppenflag für den Koeffizienten C gesetzt ist (Verfahrensblock 3311), falls nicht, endet das Verfahren. Andererseits wird, falls der Gruppenflag gesetzt ist, die Verarbeitung beim Verarbeitungsblock 3302 fortgesetzt, wo ein Test bestimmt, ob das Bit SB des Koeffizienten C "1" ist. Falls das Bit von SB des Koeffizienten C nicht "1" ist, dann wird die Entscheidung als "0" in dem/den "B-Gruppen"-Kontext(en) (Verarbeitungsblock 3303) codiert und das Verfahren endet. Falls das Bit SB des Koeffizienten C "1" ist, dann wird die Entscheidung als "1" in dem/den "B-Gruppen"-Kontext(en) (Verarbeitungsblock 3304) codiert und das Verfahren endet.
  • Die 8B stellt eine alternative Ausführungsform des B-Durchgangsverfahrens dar, das teilweise für Nullbaum- und Einzellisten-Horizontal-Codierungsverfahren verwendet wird und einen reduzierten Flagspeicher verwendet und in dem Verfahren nach 30 verwendet werden kann. Bezugnehmend auf die 8B prüft das Verfahren anfangs, ob das Ergebnis einer UND-Operation des Koeffizienten C mit der Maske MB nicht Null ist (Verarbeitungsblock 3301). Falls nicht, endet das Verfahren. Andererseits wird, wenn das Ergebnis der UND-Operation des Koeffizienten C mit der Maske MB nicht Null ist, die Verarbeitung beim Verarbeitungsblock 3302 fortgesetzt, wo ein Test bestimmt, ob das Bit SB des Koeffizienten C "1" ist. Falls das Bit von SB des Koeffizienten C nicht "1" ist, dann wird die Entscheidung als "0" in dem/den "B-Gruppen"-Kontext(en) (Verarbeitungsblock 3303) codiert und das Verfahren endet. Falls das Bit SB des Koeffizienten C "1" ist, dann wird die Entscheidung als "1" in dem/den "B-Gruppen"-Kontext(en) (Verarbeitungsblock 3304) codiert und das Verfahren endet.
  • Die 9A stellt eine Ausführungsform der B-Durchlaufdecodierung nach der vorliegenden Erfindung dar und kann in dem Verfahren nach 27 verwendet werden. Bezugnehmend auf die 9A bestimmt anfangs ein Test, ob der Gruppenflag für den Koeffizienten C auf die "B-Gruppe" gesetzt ist (Verarbeitungsblock 3611). Falls nicht, endet das Verfahren. Jedoch werden, falls der Gruppenflag für den Koeffizienten C auf die "B-Gruppe" gesetzt ist, dann die Entscheidungen in dem/den "B-Gruppen"-Kontext(en) (Verarbeitungsblock 3602) decodiert. Ein Test entscheidet dann, ob die Entscheidung eine "1" ist (Verarbeitungsblock 3603). Falls die Entscheidung keine "1" ist, endet das Verfahren. Falls die Entscheidung eine "1" ist, wird das Bit SB des Koeffizienten C gesetzt (Verarbeitungsblock 3604) und das Verfahren endet.
  • Die 9B stellt eine alternative Ausführungsform der B-Durchlaufdecodierung nach der vorliegenden Erfindung unter Verwendung eines reduzierten Flagspeichers dar und kann in dem Verfahren nach 30 verwendet werden. Bezugnehmend auf 9B bestimmt ein Testanfang, ob das Ergebnis einer UND-Operation des Koeffizienten C mit der Maske MB nicht Null ist (Verarbeitungsblock 3601). Falls das Ergebnis der UND-Operation des Koeffizienten C mit der Maske MB Null ist, endet das Verfahren. Jedoch werden, falls das Ergebnis der UND-Operation des Koeffizienten C mit der Maske MB nicht Null ist, die Entscheidungen in dem/den "B-Gruppen"-Kontext(en) (Verfahrensblock 3602) decodiert. Ein Test entscheidet dann, ob die Entscheidung eine "1" ist (Verarbeitungsblock 3603). Falls die Entscheidung keine "1" ist, endet das Verfahren. Falls die Entscheidung eine "1" ist, wird das Bit SB des Koeffizienten C (Verarbeitungsblock 3604) gesetzt und das Verfahren endet.
  • Unter Verwendung der Kombination des Nullbaum-Ordnungscodierens und des Horizontal-Ordnungscodierens stellt die vorliegende Erfindung eine bitsignifikante Codierung der Koeffizienten, die durch reversible Kleinwellen erzeugt werden, zur Verfügung. Man beachte, daß die Verwendung sowohl der A-Gruppe als auch der B-Gruppe und der ternären und der binären Ereignisse, die den "A"- und "B"-Durchläufen jeweils entsprechen, insbesondere im Hinblick auf die Tatsache wichtig ist, daß ein Schalter aus der Verwendung des Nullbaum-Ordnens zu dem Horizontal-Ordnen an dem Ende von jedem A-Durchlauf gemacht wird. Dies kompensiert die Ineffizienz bei der Vorhersage, die das Nullbaumordnen bei den Bits niederer Ordnung begleitet. Deshalb beginnt gemäß der vorliegenden Erfindung das System, indem die Bitdaten höherer Ordnung nullbaum-codiert werden und nach einer Anzahl von Durchläufen durch die Listen, d.h. nachdem eine Anzahl von Bitebenen codiert sind, schaltet der Codierer nach der vorliegenden Erfindung um, um den Rest der Daten unter Verwendung von Horizontal-Codieren zu codieren. Die Anzahl der Durchläufe kann statistisch ausgewählt werden oder kann angepaßt ausgewählt werden, indem die Durchführung bzw. Funktion des Nullbaum-Ordnungs-Codierungsblocks überwacht wird.
  • Alternativen zum Kontextmodell
  • In einer Ausführungsform werden fünf binäre Kontext-Überrahmen bzw. -Rahmen verwendet. Dies ist gering, falls dies mit anderen Systemen, wie etwa JBIG, verglichen wird, welches etwas mehr als 1024 Kontexte verwendet. Die Kompression kann unter Verwendung von mehr Kontext-Überrahmen bzw. -Rahmen verbessert werden. Entscheidungen können anhand von räumlichen Anordnungen, Pegeln und/oder Bitstellungen verarbeitet bzw. aufbereitet werden. Im allgemeinen können die vorher beschriebenen Markov-Kontexte nullter Ordnung durch Markov-Kontexte höherer Ordnung ersetzt werden.
  • Einige Beispiele lauten wie folgt. Das signifikanteste (und deshalb am leichtesten vorhersagbare) Bit von jeder Mantisse (B-Gruppendaten in einigen Ausführungsformen) könnte einen von dem Rest der Bits verschiedenen Kontext verwenden. Die Signifikanz-/Nicht-Signifikanz-Entscheidung könnte auf der Grundlage der gleichen Entscheidung aufbereitet bzw. verarbeitet werden, wie sie für räumlich eng beieinanderliegende vorherige Koeffizienten bei dem gleichen Transformationspegel gemacht worden ist. Gleichermaßen können die Zeichen- bzw. Vorzeichenbits für die signifikanten Koeffizienten auf den Zeichen von räumlich dicht davorliegenden Koeffizienten bei dem gleichen Pegel oder den Zeichen bzw. Vorzeichen des Koeffizienten des Stamms bzw. der Eltern verarbeitet bzw. aufbereitet werden.
  • Verbesserungen des Kontextmodells können insbesondere wichtig sein, wenn Bilder komprimiert werden, die eine räumliche oder eine Multi-Auflösungsstruktur aufweisen. Graustufenbilder von Linienzeichnungen oder Texte sind ein Beispiel für Bilder mit beiden dieser Arten von Strukturen. Verbesserungen sind auch für die Kompression von Daten wichtig, die bereits mit einem spezifizierten Spitzenfehler hätten komprimiert bzw. dekomprimiert werden sollen.
  • Alternative Ausführungsformen der vorliegenden Erfindung
  • Die vorliegende Erfindung kann in Hardware und/oder Software in die Tat umgesetzt werden. Eine Hardware-Umsetzung der vorliegenden Erfindung erfordert, Umsetzung der Kleinwellenfilter, des Speicher-/Datenflußmanagements, um Daten für die Filter zur Verfügung zu stellen, ein Kontextmodell, um die Einbettungscodierung nach der vorliegenden Erfindung zu steuern, das Speicher-/Datenflußmanagement, um die Daten für das Kontextmodell zur Verfügung zu stellen, und einen binären Entropiecodierer.
  • Klein- bzw. Unterwellenfilter
  • Eine Ausführungsform des Vorwärts-Kleinwellenfilters nach der vorliegenden Erfindung ist in 10 dargestellt. Der in 10 gezeigte Kleinwellenfilter bezieht ein bzw. beherbergt vier 16-Bit-Zweier-Komplement-Eingabebildelemente, die als x(2)–x(5) gezeigt sind.
  • Bezugnehmend auf 10 verwenden die Tiefpaßfilter mit zwei Abgriffen bzw. Stufen "1 1" einen 16-Bit-Addierer 1001. Die Ausgänge werden als S bzw. D bezeichnet. Der Ausgang des Addierers (S) ist auf 16 Bits unter Verwendung eines 1-Verschiebungsblocks 1003 auf 16 Bits verringert. Der 1-Verschiebungsblock 1003 führt eine Divisiondurch-2-Funktion durch Verschieben seines 17-Bit-Einganges zu dem rechten einen Bit bzw. dem richtigen Bit durch.
  • Der Hochpaßfilter mit sechs Abgriffen bzw. Stufen "–1 –1 8 –8 1 1" erfordert die Berechnung von –S0 + 4D1 + S2. Die Funktion S2 – S0 wird mit einem 16-Bit-Subtrahierer 1005 berechnet, der den Ausgang des 1-Verschiebungsblocks 1003 und das Y0(0) empfängt. Der Ausdruck 4D1 wird unter Verwendung des Subtrahierers 1002 und des 2-Verschiebungsblocks 1004 berechnet. Der Ausgang, der durch den 16-Bit-Subtrahierer 1002 erzeugt wird, wird auf die linken zwei Plätze verschoben, wodurch sein Ausgang effektiv mit vier multipliziert wird. Das Addieren des Ausgangs 4D1 von dem 2-Verschiebungsblock 1004 zu dem Ausgang des Subtrahierers 1005 wird durch den 20-Bit-Addierer 1006 durchgeführt. Der Ausgang des Schlußaddierers ist unter Verwendung des 2-Verschiebungsblocks 1007 auf 18 Bits verringert. Der 2-Verschiebungsblock 1007 führt eine Division-durch-4-Funktion durch, indem sein 20-Bit-Eingang zu den rechten zwei Bits verschoben wird.
  • Folglich ist die gesamte erforderliche Berechnungshardware (Register für die zeitweise Speicherung von Ergebnissen nicht eingerechnet):
    • – @ 16-Bit-Addierer,
    • – @ 16-Bit-Subtrahierer,
    • – @ 19-Bit-Addierer.
  • Man beachte, daß das Verschieben durch die Verdrahtung vorgenommen wird, so daß keine Logik erforderlich ist.
  • In anderen Ausführungsformen können für Eingänge der Größe N, ein N-Bit-Addierer, zwei N-Bit-Subtrahierer und ein (N + 3)-Bit-Addierer verwendet werden.
  • Wegen der extrem niedrigen Hardwarekosten für diese Addierer/Subtrahierer können parallele Umsetzungen für die Filter verwendet werden, falls dies gewünscht ist.
  • Man bemerke, daß alternativ anstelle des Subtrahierens von X(3) und X(2) X(4)–X(5) berechnet werden kann und aufrechterhalten werden kann, bis es später als X(2)–X(3) für die nächste Verschiebung oder Anwendung des Filters benötigt wird. Sowohl der Vorwärtsfilter (und der oben beschriebene inverse bzw. Rückwärtsfilter) können in einer Leitung angeordnet werden, um einen höheren Durchsatz zu erzielen.
  • Der inverse Wellen- bzw. Kleinwellenfilter wird in 11 dargestellt. Die Eingänge von Y0(0) und Y0(2) werden durch den Subtrahierer 1101 subtrahiert. Das Ergebnis der Subtraktion wird durch den Um-2-Verschiebungsblock 1102 um zwei Bits nach rechts verschoben. Dies dividiert den Ausgang des Subtrahierers effektiv durch vier. Eine Subtraktion wird zwischen dem Ausgang des Um-2-Verschiebungsblocks 1104 und des Y1(0)-Eingang durchgeführt. Der Eingang Y0(1) wird um ein Bit nach links durch den Um-1-Verschiebungsblock 1103 um ein Bit nach links verschoben, wodurch der Eingang mit 2 multipliziert wird. Nachdem Y0(1) um eins verschoben ist (multipliziert mit 2), ist das LSB des verschobenen Wertes das LSB, das von dem Ausgang des Subtrahierers 1104 genommen ist, und wird mit dem 16-Bit-Ausgang von dem Um-1-Verschiebungsblock 1103 kombiniert, um einen Eingang für den Addierer 1105 und den Subtrahierer 1106 zu bilden. Der andere Eingang für den Addierer 1105 und den Subtrahierer 1106 ist der Ausgang des Subtrahierers 1104. Die Ausgänge des Addierers 1105 und des Subtrahierers 1106 können nachfolgend abgeschnitten werden bzw. einer Abschneidung unterzogen werden.
  • Eine Auswahl von zwei Abschneide-Operationen kann verwendet werden. In beiden Fällen wird der 20-Bit-Wert um eins verschoben (durch 2 geteilt) zu einem 19-Bit-Wert. Für ein System, das nur eine verlustlose Kompression durchführt, können die 16 am wenigsten signifikanten Bits ausgegeben werden (die verbleibenden drei Bits können außer acht gelassen werden). In einem verlustbehafteten System (oder einem verlustbehafteten/verlustlosen System) wird der 19-Bit-Wert auf Null gesetzt, falls er negativ ist, oder auf 216-1 gesetzt, falls er größer als 216-1 ist; ansonsten können die 16 am wenigsten signifikanten Bits ausgegeben werden.
  • Für Eingänge von N-Bits können ein N-Bit-Subtrahierer, ein (N + 2)-Bit-Subtrahierer, ein (N + 3)-Bit-Addierer und ein (N + 3)-Bit-Subtrahierer verwendet werden und die Abschneide- bzw. Kürzungseinrichtung gibt N Bits aus.
  • Speicherverwendung
  • Im Hinblick auf das Speicher- und Datenflußmanagement für die Wellen- bzw. Kleinwellenfilter nach der vorliegenden Erfindung für Bilder, wo ein vollständiger Rahmen in einen Speicher passen kann, ist das Speicher-/Datenflußmanagement keine schwierige Angelegenheit. Auch für viele Anwendungen ist es vernünftig, was für 1024 × 1024 medizinische 16-Bit-Bilder (z.B. mit einer Größe von 2 Megabytes), die einen vollständigen Pufferrahmen erfordern, ist. Für größere Bilder (z.B. A4, 400 DPI 4-Farbenbilder weisen eine Größe von etwa 50 Megabyte auf) ist die Durchführung der Kleinwellentransformation mit einer begrenzten Menge an Linien-Pufferspeicher wünschenswert.
  • Man bemerke, daß ein vollständiger Rahmenpuffer nicht erforderlich ist, um die vorliegende Erfindung in ein System mit einem Durchlauf umzusetzen. Deshalb kann der erforderliche Speicher um einen Faktor 100 verringert werden (verglichen mit einem vollständen Rahmenpuffer für große Bilder). Das System mit einem Durchlauf gemäß der vorliegenden Erfindung wird später beschrieben.
  • Die in dem Filterspeicher gespeicherten Daten sind eine Reihe von Koeffizienten, die dem Einbettungscodieren und dem binären Entropiecodieren auszusetzen sind. Das Einbettungscodieren verwendet ein Kontextmodell, um die Verwendung von frequenzbasierender Codierung oder Horizontalcodierung zu koordinieren, und um Daten in einer zweckmäßigen bzw. angemessenen Ordnung zur Verfügung zu stellen. Das Kontextmodell arbeitet in Verbindung mit einem Speicher-Managementschema. Für Systeme mit einem vollständigen Rahmenpuffer ist es nicht schwierig, Daten in der angemessenen Ordnung zur Verfügung zu stellen. Für Systeme ohne einen vollständigen Rahmenpuffer stellt das Datentransformations-Managementschema der Ausführungsform mit einem Durchlauf gemäß der vorliegenden Erfindung (unten beschrieben) dem Kontextmodell Koeffizienten zur Verfügung, so daß es das Kontextmodell nur erfordert, Koeffizienten für einen Baum zu puffern. Ein frequenzbasierendes Kontextmodell mit einem Durchlauf und ein verbundenes Raum-/Frequenz-Kontextmodell mit einem Durchlauf werden zu einer Zeit bzw. einem Zeitpunkt an einem Baum betrieben.
  • Die Ergebnisse der Einbettungsoperation gemäß der vorliegenden Erfindung ist zum Erzeugen von Bit-Strömen von dem frequenzbasierenden Modellierungsmechanismus gemäß der vorliegenden Erfindung und dem verbundenen Raum-/Frequenz-Modellierungsmechanismus gemäß der vorliegenden Erfindung. Diese Bit-Ströme werden anschließend unter Verwendung eines binären Entropiecodierers codiert.
  • Für Systeme mit einem vollständigen Rahmenpuffer können beliebige binäre Entropiecodierer oder andere angemessene Codierer verwendet werden. Für Systeme ohne einen vollständigen Rahmenpuffer müssen entweder mehrfache unabhängige Codierer verwendet werden oder der Codierer muß dazu in der Lage sein, mehrfache unabhängige Codierer zu simulieren. Auch wird ein Speicher oder ein Kanal-Management benötigt, um die Ausgänge von den unabhängigen Codierern zu verfolgen bzw. auf dem laufenden zu halten. Der Vorteil der vorliegenden Erfindung ist, daß die Daten, die zu handhaben bzw. zu managen sind, prioritiert sind (eingebettet). Falls während der Kompression oder Übertragung nicht ausreichend Raum bzw. Platz oder Bandbreite zur Verfügung steht, können weniger wichtige Daten auf dem Wege außer acht gelassen werden, um eine vernünftige verlustbehaftete Kompression zur Verfügung zu stellen.
  • System mit einem Durchlauf gemäß der vorliegenden Erfindung
  • Die vorliegende Erfindung stellt eine Transformation mit einem Durchlauf zur Verfügung, die es ermöglicht, die Eingabedaten in das System, wie sie empfangen werden, vollständig zu prozessieren. In einem solchen System ist die Verarbeitung der Daten nicht von den Daten abhängig, die folgen. Der erforderliche Speicher, um ein Bild zu komprimieren, ist abhängig von der Länge des Bildes. Durch die Entfernung der Abhängigkeit stellt die vorliegende Erfindung ein System zur Verfügung, das komprimierte Daten ausgeben kann, bevor sämtliche Daten verarbeitet worden sind.
  • A. Datenmanagement für die Transformation mit einem Durchlauf
  • Die 12 stellt einen Bereich eines Bildes dar, das in einer Rasterordnung durch eine Band- bzw. Frequenzbandmode bzw. -methode unter Verwendung der Lehren gemäß der vorliegenden Erfindung komprimiert. Man ziehe eine Zerlegung mit vier Pegeln in Betracht. Jeder Baum weist 24 × 24 = 16 × 16 = 256 Koeffizienten auf. Jedoch hängt jeder Baum von mehr als 256 Eingabebildelementen ab, da der Hochpaßfilter der Kleinwellentransformation gemäß der vorliegenden Erfindung überlappt. Der "1 1"-Tiefpaßfilter mit zwei Abgriffen bzw. Stufen (L) bewirkt keine Überlappung und die gesamte Überlappung stammt von dem Hochpaßfilter (H) mit sechs Abgriffen bzw. Stufen "–1 –1 8 –8 1 1". Die größte Überlappung tritt für die Kaskade von drei Anwendungen des Tiefpaßfilter, gefolgt durch eine Anwendung des Hochpaßfilters (LLLH), auf. Drei Anwendungen des Tiefpaßfilters (LLL) erfordern eine Unterstützung von 23 = 8 Eingabebildelementen. Stütz- bzw. Unterstützungsbereiche mit einer Größe von 8 × 8 Bildelementen sind in 12 gezeigt. Wenn der Hochpaßfilter in diese Kaskade einbezogen wird, betragen die Unterstützungsbereiche (6 × 23) × (6 × 23) = 48 × 48 Bildelemente. Ein Unterstützungsbereich mit 48 × 48 Bildelementen, der aus sechsunddreißig 8 × 8 Blöcken besteht, ist in 12 gezeigt.
  • Man nehme an, daß die Koeffizienten des in 12 gezeigten Unterstützungsbereichs mit 48 × 48 Bildelementen gegenwärtig gerade verarbeitet werden. Der hell schattierte Abschnitt des Unterstützungsbereichs stellt Bildelemente dar, die bereits in vorangehenden Unterstützungsbereichen verwendet worden sind. Der hell schattierte Teil, der außerhalb des Unterstützungsbereiches ist, stellt Bildelemente dar, die bereits in vorangehenden Unterstützungsbereichen verwendet worden sind und in zukünftigen Unterstützungsbereichen benötigt werden. Der schwarze 16 × 16 Bereich ist der Teil des Unterstützungsbereichs, der Bildelemente enthält, die zuvor nicht verwendet worden sind. In ähnlicher Weise enthält der dunkel schattierte 16 × 16 Bereich Bildelemente, die zuvor nicht verwendet worden sind, welche jedoch in dem nächsten 48 × 48 Unterstützungsbereich verwendet werden. Eine 16 × 16 Transformation eines Baumpegels wird berechnet, wobei die vorherigen Ergebnisse von acht anderen 16 × 16 Transformationen mit drei Pegeln aus einem Puffer zurückgerufen werden und der vierte Pegel der Transformation wird auf die neun 16 × 16 Transformationen mit drei Pegeln angewendet. Die erforderliche Pufferung, um dies vorzunehmen, reicht aus, um die dreipegeligen Transformationskoeffizienten für (2 × Breite des Bildes + 32) × 16 Bildelemente zu speichern und reicht aus, um einen 16-Linien-Puffer (ein Band bzw. Frequenzband) von Bildelementen zu speichern.
  • Die 13 ist ein Blockdiagramm einer Ausführungsform einer Kleinwellenfilterungseinheit mit einem Durchlauf, die eine Filtersteuereinheit 1301, einen Speicher 1302 und einen Filter 1303 enthält. Der Filter 1303 weist den in Verbindung mit 10 beschriebenen Filter auf. Der Speicher 1302 bezieht sich auf den Speicher, der oben in Verbindung mit 12 beschrieben worden ist, und speichert entweder Bildelemente oder Koeffizienten. Die Filtersteuereinheit 1301 bestimmt den Datenfluß zwischen dem Speicher 1302 und dem Filter 1303. Die Operation der Filtersteuereinheit 1301 wird unten beschrieben.
  • Die 14 stellt eine alternative Kleinwellenfiltereinheit dar. Um einen Hochgeschwindigkeitsbetrieb zu erzielen, können Filter mehrfach verwendet werden. In einer Ausführungsform könnte die Speicherbandbreite wesentlich sein, da der Filter 1303 vier oder fünf Eingänge erfordert (beispielsweise inverser Filter, Vorwärtsfilter). Der Speicher könnte mehrfache Bildelemente/Koeffizienten pro Stelle bzw. Ort, mehrfache Bänke und/oder mehrfache Anschlüsse bzw. Ports aufweisen. Eine Speicherschnittstelleneinheit 1401 verringert die Bandbreite des Speichers, die erforderlich ist, indem kleine Puffer für lokale Daten, die während der Verarbeitung benötigt werden, vorgesehen werden. Die Speicherschnittstelleneinheit 1401 stellt auch Multiplexen/Demultiplexen zwischen dem Eingang/Ausgang (I/O) des Speichers 1302 und den I/O des Filters 1303 zur Verfügung.
  • Zusätzlich zu der Speicherbandbreite, die für das Filtern erforderlich ist, kann zusätzliche Bandbreite für die Eingabe der Bildelemente in den Speicher 1302 und die Ausgabe der Koeffizienten zu dem Kontextmodell erforderlich sein. Wenn Bildelemente bzw. Bildpunkte in der Rasterordnung eingegeben werden, kann zusätzlicher Speicher für den Band- bzw. Frequenzbandpuffer erforderlich werden.
  • Falls ein Speicher mehrere bzw. Mehrfachelemente (Bildelemente oder Koeffizienten) pro Stelle bzw. Ort speichert, statt horizontale oder vertikale benachbarte Elemente in einer Reihe oder Spalte zu speichern, kann es die Menge an Speicherzugriffen und Pufferungen reduzieren, die erforderlich ist, wenn Elemente in einem N × N-Block die gleiche Stelle bzw. den gleichen Ort teilen, wenn N eine Potenz von 2 ist. Dies ermöglicht die gleiche Angemessenheit für vertikale und für horizontale Zugriffe.
  • Mehrfache Bänke bzw. Speicherbänke können auch in die Tat umgesetzt werden, so daß sowohl horizontale als auch vertikale Zugriffe die gleichen Vorteile aus mehrfachen Bänken ziehen können, wie in 15 gezeigt wird. Für den Fall mit zwei Bänken kann ein Bank-Auswahl-Bit ausgebildet werden, das zur Verfügung gestellt wird, um eine der Bänke auszuwählen, und zwar in einer Ausführungsform durch eine Exklusiv-Oder- Operation der LSBs der horizontalen und der vertikalen Koordinaten. Für den Fall mit vier Bänken können die zwei Bank-Auswähl-Bits ausgebildet werden, indem (Modul 4 mit einem 2-Bit-Addierer) die zwei LSBs der horizontalen und vertikalen Koordinaten addiert werden.
  • Die 16 stellt die Filteroperation mit einem Durchlauf für eine Zerlegungsimplementation mit zwei Pegeln bzw. zwei Niveaus durch die Filtersteuereinheit 1301 (13) dar. Man bemerke, daß zu Darstellungszwecken eine Beschreibung mit zwei Pegeln zuerst erörtert wird, um die allgemeine Technik gemäß der vorliegenden Erfindung darzustellen. In anderen Ausführungsformen werden dreipegelige, vierpegelige oder Zerlegungen mit höheren Pegeln verwendet. Eine zweipegelige Zerlegung weist 16 Koeffizienten pro Baum auf und erfordert eine Berechnung mit 16 Eingabebildelementen, die zuvor nicht verwendet worden sind. Das Filtern für einen Baum mit Koeffizienten wird in 16 oder weniger Zeiteinheiten durchgeführt, um der Eingabe- und Ausgaberate zu entsprechen. Für dieses Beispiel werden zwei Filter in Parallelanordnung bzw. parallel betrieben verwendet, um den gewünschten Durchsatz von zwei Filteroperationen pro Zeiteinheit zu erzielen. Für jede räumliche Stelle bzw. jeden räumlichen Ort, wo die führende Kante bzw. Flanke eines Filters angelegt wird, zeigt 16 eine Zahl, die die Zeit anzeigt, in der jede Filterbetätigung durchgeführt wird.
  • Da die Ordnung des Filterns durch die führende Kante des Filters bestimmt wird, erzeugt das Filtern nicht sämtliche der Koeffizienten eines Baumes, bevor einige bzw. beliebige der Koeffizienten des nächsten Baumes erzeugt sind. Die Filterung der Nachkommen des Baumes tritt vor dem Filtern der Stämme bzw. Eltern auf und das Tiefpaßfiltern wird vor dem entsprechenden Hochpaßfiltern vorgenommen. Das Filtern betreibt eine A-Gruppe von Koeffizienten, die die gleiche Anzahl von Koeffizienten eines Typs aufweist, wie ein Baum.
  • Die Horizontal-Filterung mit dem Pegel 1 wird während einer Zeit 0 bis 7 durchgeführt und die Ergebnisse werden in einem temporären Puffer gespeichert. (Jede räumliche Stelle bzw. jeder räumliche Ort ergibt zwei Koeffizienten.) Während einer Zeit 2 bis 9 wird vertikales Filtern an den Daten in dem Puffer (unter Verwendung des zweiten Filters) und den Daten der vorherigen horizontalen Filter vom Speicher (zweifach pro räumlichem Ort bzw. Stelle) durchgeführt. Vertikales Filtern kann beginnen, sobald die zweite horizontale Filterungsoperation abgeschlossen ist. Die Koeffizienten HH, HL und LH sind fertig für die Ausgabe zu dem Kontextmodell (zu der angemessenen Zeit). Die Koeffizienten LL werden in dem nächsten Pegel bzw. auf dem nächsten Niveau verwendet.
  • Mit nur zwei Filtern kann die Null-Horizontalfilterung mit Pegel 0 bis zur Zeit 8 nicht beginnen, wenn die Horizontalfilterung mit Pegel 1 nicht vollständig ist, was einen Filter verfügbar werden läßt. Die Horizontalfilterung mit Pegel 0 kann bis zur Zeit 10 nicht beendet werden, einem Zyklus nach dem die Vertikalfilterung mit Pegel 0 vollständig ist, wobei sämtliche erhaltenen Daten bestätigt bzw. bewiesen werden. Während der Zeit 11 und 12 kann als nächstes die vertikale Filterung mit Pegel 1 auftreten.
  • Die Tabelle 1 unten faßt den Betrieb jeden Filters während jeder Zeiteinheit zusammen. Das Format der Eingänge lautet Pegelzahl, horizontal oder vertikal ("H" oder "V") und die räumliche Stelle bzw. Anordnung der führenden Kante. Die Eingänge der vertikalen Filteroperationen sind auch als Tiefpaß zu Hochpaß erkannt, mit einem Index "L" oder "H". Man bemerke, daß es erforderlich ist, einen Filter zuzuordnen, um horizontale Filterung durchzuführen, und den anderen, um vertikale Filterung durchzuführen, da beide Filter identisch sind.
  • Tabelle 1
    Figure 00740001
  • Während die horizontale Filterung mit Pegel 1 wieder für die nächste Gruppe von Eingabebildelementen bei einer Zeit 11 beginnen kann, würde dies den Filter dazu veranlassen, schneller betätigt zu werden als dies Eingabe- und Ausgaberate. Stattdessen werden gemäß der vorliegenden Erfindung die Filter außer Betrieb sein und die nächste Gruppe wird bei der Zeit 16 gestartet. Zyklen mit außer Betrieb gesetzten Filtern können für Speicherübertragungen verwendet werden. Anstelle an dem Ende des Filterns für jede Gruppe aufzutreten, können die Außer-Betrieb-Zyklen, falls gewünscht, unter den Filterzyklen verteilt werden.
  • Im Hinblick auf die Erläuterung zu dem Fall mit zwei Pegel wird der Fall mit drei Pegeln in Tabelle 2 gezeigt. Kettenschaltungen bzw. Kaskadierungen von zwei oder vier Zeiteinheiten werden verwendet, um die Informationen auf eine Seite zu übertragen, wodurch es leichter gemacht wird, zu lesen.
  • Tabelle 2
    Figure 00760001
  • Die Tabelle 3 stellt den Fall mit vier Pegeln bzw. Niveaus dar. Da es nun 256 Zeiteinheiten pro Gruppe von Koeffizienten gibt, wird zur Vereinfachung nur der Pegel bzw. das Niveau und die Filterungsrichtung gezeigt.
  • Tabelle 3
    Figure 00770001
  • Der Ausgang des Filterungs- und Speicheruntersystems gemäß der vorliegenden Erfindung ist eine Reihe von Koeffizienten, die einer Bitsignifikanz-Einbettungskodierung gemäß der vorliegenden Erfindung unterzogen werden.
  • B. Das Kontextmodell für das System mit einem Durchlauf
  • In einer Ausführungsform der vorliegenden Erfindung wird mit dem Bitwertigkeits- bzw. -signifikanz-Einbettungskontextmodell für das System mit einem Durchgang jeder Baum in vier Teilen verarbeitet.
  • Die Wurzel des Baumes, der LL-Koeffizient ist dem höchsten Pegel, wird durch Horizontalordnungscodieren in einem Durchgang codiert. Die drei Unterbäume, die mit jeder der Wurzeln drei Nachkommen beginnen, die HH-, HL- und LH-Koeffizienten mit dem höchsten Pegel, werden sowohl mit der verbundenen Raum-/Frequenzmodelierung mit einem Durchgang als auch mit dem frequenzbasierenden Modelieren mit einem Durchgang verarbeitet. Die Koeffizienten werden so codiert, daß codierte Daten ausgegeben werden können, bevor das Bitsignifikanz-Einbettungskontextmodell mit sämtlichen Daten arbeitet.
  • Signifikanzbaum mit einem Durchgang
  • Das Nullbaum-Kontextmodell kann in dem System mit einem Durchlauf nicht verwendet werden. Der Nullbaum erfordert eine Liste (oder mehrere Listen), die jeden Koeffizienten enthalten, und Nullbäume führen mehrere Durchläufe durch die Liste(n) durch. Ein alternatives frequenzbasierendes Modell, ein Signifikanzbaum mit einem Durchlauf, erfordert keine Listen, die sämtliche Koeffizienten enthalten. Ein anderer Unterschied zwischen einem Signifikanzbaum mit einem Durchlauf und einem Nullbaum ist, daß der Signifikanzbaum sämtliche Nachkommen bearbeitet, bevor ihre Eltern bzw. ihre Stämme verarbeitet werden, wenn Entscheidungen erzeugt werden, im Gegensatz zu dem Nullbaum, der die Eltern bzw. den Stamm zuerst verarbeitet.
  • Das Kontextmodell gemäß der vorliegenden Erfindung ist in der Form eines Blockdiagramms in 17 gezeigt. Das Kontextmodell 1700 enthält zwei Verarbeitungsein heiten, die Zeichen bzw. Vorzeichen-/Größenordnungseinheit 109 (1A) und die Signifikanzeinheit 1702. Das Kontextmodell 1700 verwendet auch zwei Speicher (mit Speichersteuerlogik), einen Größenordnungs-Speicher 1701 und einen Baumspeicher 1703. Jede dieser zwei Speichereinheiten kann mit multiplen Speicherbereichen in die Tat umgesetzt werden, um eine abwechselnde Verwendung während des Hochgeschwindigkeitsbetriebes zu ermöglichen (d.h. während Daten in den einen geschrieben werden, wird der andere gelesen oder freigemacht).
  • Der Größen- bzw. Größenordnungs-Speicher 1701 ordnet die Koeffizienten in dem Baum neu in einer Ordnung, die auf Signifikanz bzw. Wichtung basiert, sowie eine Ordnung, die auf ihren Größen bzw. Größenordnungen basiert. Dies wird ausgeführt, indem eine Schlange von jeder möglichen Größenordnung aufrechterhalten wird. Die Signifikanzeinheit 1702 empfängt Koeffizienten in der Ordnung der Signifikanz (z.B. der Größe bzw. Größenordnung) und erzeugt Entscheidungen für einen Codierer der den A-Durchlaufalgorithmus verwendet bzw. handhabt. Der Baumspeicher 1703 ist an die Signifikanz- bzw. Wertigkeitseinheit 1702 angeschlossen und beseitigt Nullbäume nach sämtlichen Nullen.
  • Die nachfolgende Erörterung nimmt an, daß die Koeffizienten 18 Bits aufweisen und daß die Eingangsdaten einer Zerlegung mit vier Pegeln bzw. Niveaus unterzogen worden sind.
  • Eine Ausführungsform der Zeichen- bzw. Vorzeichen-/Größenordnungseinheit 109 ist in 18 dargestellt, und überträgt die Eingangskoeffizienten in ein Zeichen- bzw. Vorzeichen-/Größenordnungsformat. Die Zeichen- bzw. Vorzeichen-/Größenordnungseinheit 109 ist angeschlossen, um 18 Bits der Koeffizienten zu empfangen und enthält einen Inverter 1801, einen Multiplexer (MUX) 1802, einen Prioritätscodierer 1803 und eine Zähleinrichtung 1804. Die Vorzeichen-/Größenordnungseinheit 109 gibt eine Wertigkeitsanzeige bzw. Signifikanzanzeige (z.B. einen 5-Bit-Wert), die Mantisse des Eingabekoeffizienten (z.B. 17 Bits), das Zeichen bzw. Vorzeichen des Eingangskoeffizienten mit einem Bit und einen Index von der Zähleinrichtung 1804 (z.B. 7 Bits).
  • Die MUX 1802 ist angeschlossen, um 17 Bits von den Koeffizienten, die unmittelbar in die Vorzeichen-/Größenordnungseinheit 109 eingegeben sind, und eine invertierte Version der 17 Bits von der Zweier-Komplementärwerteinrichtung 1801 zu empfangen. Basierend auf dem Zeichen- bzw. Vorzeichenbit (Koeffizientenbit 17), das an dem ausgewählten Eingang der MUX 1802 empfangen wird, gibt der positive der zwei seinen Ausgang als die Mantisse ein.
  • Die Vorzeichen-/Größenordnungseinheit 109 verwendet einen Prioritätscodierer 1803, um das erte signifikante Bit bzw. Wertigkeitsbit von jedem Koeffizienten zu bestimmen. Auf der Grundlage des ersten signifkanten Bits von jedem Koeffizienten kann ein Signifikanz- bzw. Wertigkeitspegel mit dem Koeffizienten in Verbindung gebracht werden.
  • Die Zähleinrichtung 1804 wird verwendet, um einen Index mit dem gegenwärtigen Baumelement zu verbinden bzw. zu verknüpfen. Für eine Zerlegung mit vier Pegeln variiert der Index von 0 bis 84 (weil 1 + 4 + 16 + 64 = 85 die Anzahl der Elemente in einem Unterbaum ist). Die Eingangskoeffizienten sind in der Baumordnung, welche in diesem Beispiel so angenommen werden, daß die Eltern bzw. Stämme zuerst und die Kinder bzw. Nachkommen zuletzt sind. Die Koeffizienten sind für die geordneten Koeffizienten von unterschiedlichen Zerlegungspegeln bzw. -niveaus, wie in Tabelle 4 gezeigt wird.
  • Tabelle 4
    Figure 00810001
  • Die 19 ist eine Ausführungsform des Blockdiagramms des Größen- bzw. Größenordnungsspeichers 1701. Eine Zähleinrichtung und ein Speicher sind miteinander für jeden möglichen Wertigkeits- bzw. Signifikanzpegel verbunden (ausgenommen nichts ist erforderlich für Null-Koeffizienten, die nicht codiert zu werden brauchen). Zum Beispiel sind die Zähleinrichtung 1916 und der Speicher 1936 mit dem Signifikanzpegel bzw. Wertigkeitspegel 17 verbunden. In einer Ausführungsform gibt es 16 Wertigkeits- bzw. Signifikanzpegel. Deshalb gibt es 17 Zähleinrichtungen und 17 angeschlossene Speicher.
  • In einer Ausführungform muß jeder Speicher 85 Stellen bzw. Orte für jeden möglichen Koeffizienten in einem Unterbaum aufweisen (da jeder Unterbaum 85 Koeffizienten enthält), jedoch kann die Speichergröße auf eine Potenz von 2 angemessen aufgerundet werden, wie etwa 128. Jeder Speichereingang kann ein Zeichen- bzw. Vorzeichenbit, einen 7-Bit-Index und N-Größenordnungsbits aufweisen, wobei N der Signifikanz- bzw. Wertigkeitspegel ist. Falls die Verwendung einer fixen Speicherbreite gewünscht wird, können Eingänge für die Signifikanz bzw. Wertigkeit 16 und 0, 15 und 1 usw. kombiniert werden, so daß jedes Wort zwei Eingänge hat, die zusammen 32 Bits ergeben. Natürlich muß bei einer ungeraden Anzahl von Signifikanz- bzw. Wertigkeitspegeln ein Wort nur einen Eingang enthalten, welches in diesem Beispiel der Pegel bzw. das Niveau 7 ist.
  • Zeichen- bzw. Vorzeichen-, Index- und Mantissenwerte, die von der Zeichen- bzw. Vorzeichen-/Größenordnungseinheit 109 empfangen worden sind, werden in den passenden bzw. angemessenen Speicher an der Adresse geschrieben, die durch die angeschlossene Zähleinrichtung des Speichers zur Verfügung gestellt wird. Die angeschlossene Zähleinrichtung wird dann inkrementiert bzw. erhöht, so daß der nächste Koeffizient bei diesem Signifikanz- bzw. Wertigkeitspegel an dem nächsten Ort bzw. der nächsten Stelle gespeichert werden kann.
  • Der Speicher wird von jedem der Speicher 19201926 in abnehmender Ordnung der Signifikanz bzw. Wertigkeit ausgelesen. Der Ausgang von jedem Koeffizienten enthält seinen Mantissen-, seinen Zeichen- bzw. Vorzeichen- und seinen Indexausgang. Wenn die Zähleinrichtung für den höchsten Pegel bzw. das höchste Niveau der Signifikanz bzw. der Wertigkeit nicht Null ist (z.B. Pegel 16), wird er verringert, und der Speicher wird bei dieser Adresse gelesen. Dies wird wiederholt, bis der Wert der Zähleinrichtung Null ist. Anschließend wird der nächste Wertigkeits- bzw. Signifikanzpegel (z.B. Pegel 15) in Betracht gezogen. Jeder Signifikanz- bzw. Wertigkeitspegel wird der Reihe nach in Betracht gezogen, bis sämtliche Zähler bzw. Zähleinrichtungen bis auf Null herabgesetzt worden sind und sämtliche Speicher geleert worden sind.
  • In einem Realzeitsystem kann es wünschenswert sein, zwei Bänke von Zähleinrichtungen und Speichern zu verwenden, so daß eine Bank für den Eingang verwendet wird, während die andere für den Ausgang verwendet wird.
  • Die Zähler adressieren ihre angeschlossenen Speicher so, daß ein LIFO (last in, first out, letzter rein, erster raus) in die Tat umgesetzt wird. Ein LIFO ist die zutreffende Ordnung, wenn Unterbäume in der Ordnung mit Stämmen bzw. Eltern zuerst eingegeben werden. Alternativ kann die Betätigung der Zäheinrichtungen, falls die Unterbäume zuerst mit den Nachkommen bzw. Kindern eingegeben werden, geändert werden, um ein FIFO (first in, first out, erster rein, erster raus) in die Tat umzusetzen.
  • Die 20 ist ein Blockdiagramm einer Ausführungsform einer Wertigkeits- bzw. Signifikanzeinheit 1702. Bezugnehmend auf 20 wird die Index-Zähleinrichtung 2001 verwendet, um durch jeden Koeffizienten in einem Unterbau mit Nachkommen zuerst hindurchzuschreiten. In einer Ausführungsform wird die Index-Zähleinrichtung 2001 mit 84 initialisiert und zählt herab bis Null. Der Signifikanz- bzw. Wertigkeitszähler 2004 beginnt bei einem maximalen Wertigkeitspegel (in dem Beispiel beispielsweise 16) und zählt jedesmal abwärts, wenn die Index-Zähleinrichtung 84 einen Zyklus vervollständigt (zu 84 zurückkehrt), so daß die Wertigkeits- bzw. Signifikanzzähleinrichtung 2004 die Bitebene verfolgt bzw. auf dem laufenden hält. Der Pegel eines bestimmten Index wird durch eine Logik bestimmt (Index zu Pegel 2003), die die in der obigen Tabelle 4 gezeigte Funktion durchführt.
  • Die Größenordnungsspeichereinheit 1701 stellt einen Index, eine Größenordnung und ein Zeichen bzw. Vorzeichen des nächsten Koeffizienten in dem Speicher zur Verfügung, der von dem Signifikanzzähler 2004 freigegeben wird. Wenn der von dem Speicher eingegebene Index der gleiche ist, wie der von der Index-Zähleinrichtung 2001 ausgegebene Index, gibt die Äquivalenzlogik-2002-Ausgabeanzeige nicht Null an. Die Ausgangsanzeige nicht Null bedeutet, daß der Größenordnungsspeicher den nächsten Index zur Verfügung stellen sollte usw. für den nächsten Zyklus. Wenn keine Übereinstimmung auftritt, dann wird eine Anzeige keine Übereinstimmung zu einem Diskussionsgenerator 2008 gesendet.
  • In einer Ausführungsform werden drei als Flag 0 (2005), Flag 1 (2006) und Flag 2 (2007) gezeigte Flipflops verwendet, um die Nicht-Null-Daten zu verfolgen bzw. auf dem laufenden zu halten und werden Zerlegungspegeln bzw. -niveaus 0, 1 bzw. 2 zugeordnet. Man beachte, daß die Anzahl der erforderlichen Flipflops um eins niedriger ist als die Anzahl der Zerlegungspegel bzw. -niveaus. Die Flipflops 2005 bis 2007 werden anfangs freigemacht bzw. gelöscht. Wenn das Nicht-Null-Signal von der Äquivalenzlogik 202 angegeben wird, dann werden sämtliche der Flipflops unter den Flipflops 2005 bis 2007 gesetzt, die einem Pegel zugeordnet sind, der niedriger ist als der gegenwärtige Pegel. Der Flipflop, der dem gegenwärtigen Pegel zugeordnet ist, wird freigemacht bzw. gelöscht. Der Pegel wird durch die Index-zu-Pegel-Logik 2003 zur Verfügung gestellt, die den Pegel in Antwort zu dem durch die Index-Zieleinrichtung 2001 zur Verfügung gestellten Index zur Verfügung stellt.
  • "Codierte" Flags werden gespeichert (in einigen Ausführungsformen ein Registerfeld), ein Bit für jeden Index. Wenn das Nicht-Null-Signal angegeben wird, wird das Bit, das mit dem gegenwärtigen Wert der Index-Zähleinrichtung in dem codierten Flagspeicher verknüpft ist, gesetzt. Andererseits wird, falls der Signifikanz- bzw. Wertigkeits-Zähleinrichtungswert der maximale Wert ist, das verküpfte Bit gelöscht bzw. freigegeben. Ansonsten bleibt der Wert des Bits ungeändert. Das bereits codierte Ausgangssignal von dem codierten Speicher der Flags ist das gleiche, wie der neue Wert des Bits, das mit dem gegenwärtigen Index verknüpft ist. Man bemerke, daß in einer alternativen Ausführungsform die codierten Flags nicht verwendet werden und das bereits codierte Signal niemals benutzt wird.
  • In einer Ausführungsform bestimmt der Entscheidungsgenerator 2008, wann der gegenwärtige Pegel 3 ist und der vorherige Pegel es nicht war bzw. nicht war. In Antwort auf diese Bestimmung gibt der Entscheidungsgenerator 2008 den Start-Ausgang und der Startpegel-Ausgang ist der vorangehende Pegel. Wenn das Nicht-Null-Signal angegeben wird, gibt der Entscheidungsgenerator 2008 eine Entscheidung als "Signifikant" aus und gibt auch das Zeichen (00, 01) und die Mantisse aus. Andererseits wird, falls der bereits codierte Eingang angegeben wird, keine Entscheidung ausgegeben. Andererseits gibt, falls das Flag-Flipflop, das dem gegenwärtigen Pegel bzw. Niveau zugeordnet ist, gesetzt wird, der Entscheidungsgenerator 2008 die Entscheidung als "insignifkant mit signifikanten Nachkommen" (10) aus. Andererseits gibt der Entscheidungsgenerator 2008 die Entscheidung als "insignifikant und insignifikaten Nachkommen" (11) aus und gibt das ingesamt Null-Signal an.
  • Man bemerke, daß zur Umsetzung sowohl des frequenzbasierenden Modellierens als auch des horizontalen verbundenen Raum-/Frequenz-Modellierens mit einem Durchlauf die folgende Änderung in der Signifikanz- bzw. Wertigkeitseinheit 2000 gemacht wird. Die Signifikanz-Zähleinrichtung 2004 wird mit einer Schwelle verglichen und der insgesamt Null-Ausgang wird nur angegeben, wenn der Wert der Zählereinrichtung größer ist als die Schwelle.
  • In einer Ausführungsform ist die Signifikanz-Kategorie-Eingabe in den Baumspeicher 1703 (gezeigt in 21 und unten beschrieben) der Ausgang der Signifikanz-Zähl-einrichtung 2004. In dieser Ausführungsform des Kontextmodells (z.B. Bit-Signifikanz-Einbettungseinheit) liegt die Anzahl der Bitebenen der Signifikanz-Kategorie zugrunde, und es gibt 17 verschiedene Signifikanz-Kategorien. Dies ist eine willkürliche bzw. beliebige Wahl. In einer anderen Ausführungsform können Bitebenen kombiniert werden, um weniger Signifikanz-Kategorien zu erzeugen. Auch kann Pegelinformation zu Bitebeneninformation hinzuaddiert werden, um mehr Signifikanz-Kategorien zu erzeugen. Mehr Signifikanz-Kategorien könnten eine bessere verlustbehaftete Kompression zur Verfügung stellen, während weniger die Hardwarekomplexität verringern könnten.
  • Die 21 ist ein Blockdiagramm einer Ausführungsform der Baumspeichereinheit gemäß der vorliegenden Erfindung. Bezugnehmend auf 21 weist der Speicher 2101 angemessenen Platz zum Speichern einer Entscheidung und einer Signifikanzanzeige für jede mögliche Entscheidung auf. In einer Ausführungsform für eine Pegel-Zerlegung mit 17 Signifikanzpegeln ist die Anzahl der Orte bzw. Stellen im Speicher 2101 gleich zu 85 × 17 = 1445.
  • Um auf den Speicher 2101 zuzugreifen, werden Adressen erzeugt. Die Zählereinrichtung 2102 ist anfangs Null. Wenn der Entscheidungsgenerator 2008 nicht den Insgesamt-Null-Eingang angibt, wird der Wert in der Zählereinrichtung 2102 verwendet, um den Speicher zu adressieren. Wenn der Entscheidungsgenerator 2008 den Starteingang angibt, wird der gegenwärtige Wert der Zählereinrichtung 2102 in einem der Register 21102112 gemäß dem Startpegel gespeichert, der als Auswählmechanismus tätig ist. Die Zählereinrichtung 2102 wird dann heraufgesetzt.
  • Wenn der Entscheidungsgenerator 2008 den Insgesamt-Null-Eingang angibt, ist der Wert in dem Register (z.B. 2110, 2111, 2112), der durch den Pegeleingang ausgewählt ist, verwendet, um den Speicher 2101 zu adressieren, und dieser Wert plus Eins wird in die Zählereinrichtung 2102 geladen. Dies bewirkt, daß die für die insignifikanten Nachkommen eines insignifikanten Elternteils bzw. Stammes verwendeten Speicherstellen bzw. -orte ignoriert werden.
  • Während der Speicherausgabe wird die Zählereinrichtung 2102 herabgesetzt, um die Adresse der Stelle, die ausgegeben werden soll, zur Verfügung zu stellen. Die Ausgabe (und Herabsetzung) wird angehalten, wenn die Zählereinrichtung 2102 Null erreicht. Der Ausgang von der Baumspeichereinheit 2100 wird durch einen Entropiecodierer empfangen, der die Entscheidung bei der spezifizierten Signifikanz bzw. Wertigkeit angemessen codiert.
  • Für einen Realzeitbetrieb können zwei Baumspeichereinheiten verwendet werden, so daß eine für die Eingabe verwendet wird, während die andere für die Ausgabe verwendet wird.
  • Ausrichtung bzw. Anordnung der Koeffizienten
  • In einer Ausführungsform gemäß der vorliegenden Erfindung verwendet das Nullbaum-Kontextmodell einen unnormierten 1 + Z–1 Tiefpaßfilter. Jedoch kann das Nullbaum-Kontextmodell mit normierten Filtern verwendet werden, wie etwa
    Figure 00870001
  • Um normierte Filter zu verwenden, kann eine Ausrichtungs- bzw. Anordnungseinheit, wie etwa eine Anordnungseinheit 2200 gemäß 22, zwischen dem Vorwärts-Kleinwellenfilter 1000 und dem Kontextmodell 105 verwendet werden, um die Energie zu kompensieren, die von dem unnormierten Filter gewonnen (oder alternativ verloren) worden ist, was die Kompression verbessert. Da die Ausrichtung bzw. Anordnung eine nicht-einheitliche Quantisierung der Verlustoperation ermöglicht, kann die Ausrichtung bzw. Anordnung die sichtbare bzw. visuelle Qualität von verlustbehafteten Bildwiederherstellungen verstärken. In dem eindimensionalen Fall würden Koeffizienten von jedem Pegel bzw. Niveau des Baumes unterschiedliche Ausrichtungen bzw. Anordnungen aufweisen (Divisoren = √2, 2, 2√2, 4, Multiplikatoren = 2√2, 2, √2, 1). In dem zweidimensionalen Fall würden die Divisoren 2, 4, 8, 16 sein und die Multiplikatoren würden 8, 4, 2, 1 sein.
  • Da die Ausrichtung bzw. Anordnung gerade für das Gruppieren gleicher bzw. ähnlicher binärer Entscheidungen für die Codierung ist, ist die Verwendung der genauen Normierungswerte nicht kritisch. Die Ausrichtung bzw. Anordnung muß während der Decodierung umgekehrt bzw. invertiert werden, so daß sowohl Multiplikation als auch Division erforderlich sind. Die Verwendung von Faktoren/Divisoren, die eine Potenz von Zwei sind, würde es ermöglichen, effiziente Hardware-Verschiebungen stattdessen durchzuführen. Wenn Koeffizienten mit einer Potenz von Zwei multipliziert werden, brauchen die weniger signifikanten addierten bzw. hinzugefügten Null-Bits nicht codiert zu werden.
  • Jedoch kann anstelle einer Einschränkung der Anordnungs- bzw. Ausrichtungsfaktoren/-Divisoren auf eine Potenz von Zwei eine Annäherung wie √2 ≈ 1,5 oder √2 ≈ 2 ÷ 1,5 mit dem folgenden Verfahren verwendet werden. Anstelle von Multiplikations-/Divisions-Koeffizienten durch die Faktoren/Divisoren würden nur die "Signifikant"-Koeffizienten durch den Faktor/Divisor skaliert werden. Die (Vor-)Zeichen-/Größenordnungseinheit kann, wie in 23 gezeigt, modifiziert werden, um einen "1,5"-Prioritätscodierer 2301 zu enthalten, der die Position entweder (1) des signifikantesten "1"-Bits, falls das nächst-signifikanteste Bit ebenfalls "1" ist, oder andererseits (2) dasjenige, das geringer ist als die Stelle bzw. Position des signifikantesten "1"-Bits zurückgibt. Eine Wahrheitstabelle für einen "1,5"-Prioritätscodierer für 3 Eingangsbits ist in der Tabelle 5 gezeigt.
  • Tabelle 5
    Figure 00880001
  • Abhängig von dem Niveau des Koeffizienten, der durch den gegenwärtigen Indexwert angezeigt wird, wählt ein Multiplexer 2302 die Signifikanz bzw. Wertigkeit entweder des Standard-Prioritätscodierers oder des "1,5"-Prioritätscodierers. Immer wenn die "1,5"-Ausrichtung bzw. -Anordnung verwendet wird, enthält die Mantisse N + 1 Bits, wobei N der signifikante Wert ist. Ansonsten enthält die Mantisse N Bits.
  • Eine Ausrichtungs- bzw. Anordnungseinheit 2200, die einen Multiplexer mit zwei Eingängen aufweist, der als eine Verschiebungseinrichtung in die Tat umgesetzt werden kann und richtet aus bzw. ordnet an um 1 oder 2. Wird dies mit der 1,5-Anordnung bzw. -ausrichtung, die durch die (Vor-)Zeichen-/Größenordnungseinheit zur Verfügung gestellt wird, kombiniert, so ermöglicht dies die Ausrichtung bzw. Anordnung von 1, 1,5, 2 oder 3, was eine gute Annäherung der gewünschten Multiplizierer für eindimensionale Signale ist, da die Zahlen einfacher sind (z.B. Potenzen von Zwei). (Für zweidimensionale Signale, wie Bilder, sind die Zahlen einfacher.) Während der Decodierung ist das N + 2-te Bit der Mantisse (welches nicht codiert ist, das Komplement des n + 1-ten Bits, wenn der "1,5"-Prioritätscodierer verwendet wird.
  • Die Koeffizientenanordnung bzw. -ausrichtung kann zum Abstimmen des Nullbaums und zur genaueren und nicht gleichmäßigen Quantisierung verwendet werden. Im Fall von Bildern (zweidimensionalen Signalen) richtet eine Ausführungsform der RTS-Transformation die Koeffizienten durch Multiplizieren des Frequenzbandes mit den in 31 dargestellten Zahlen aus bzw. ordnet sie an. Das Multiplizieren dieser Zahlen resultiert in die RTS-Transformation, die eine sehr gute Annäherung an die genauen wiederhergestellten Kleinwellen der TS-Transformation ist.
  • Der Entropiecodierer muß das Anordnungs- bzw. Ausrichtungsverfahren in Betracht ziehen, um effizient zu sein.
  • Frequenzbasierendes Kontextmodell durch teilweise bzw. bruchstückhafte Bitebenen
  • Ein alternatives Verfahren des frequenzbasierenden Modellierens verwendet teilweise bzw. bruchstückhafte Bitebenen oder teilweise bzw. bruchstückhafte Signifikanz- bzw. Wertigkeitsbits. Eine Umsetzung von diesen ist die zweifache Verarbeitung jeder Bitebene, so daß die Durchläufe einen A1-Durchlauf, einen B1-Durchlauf, einen A0-Durchlauf und einen B0-Durchlauf enthalten. Man bemerke, daß die Namen der Durchläufe ausgewählt wurden, weil der A1-Durchlauf Koeffizienten behandelt bzw. handhabt, die mit "11" beginnen und der A0-Durchlauf jene handhabt bzw. behandelt, die mit "10" beginnen.
  • Während des A1-Durchlaufs für eine Bitebene S ist ein Koeffizient in der A-Gruppe nur signifikant, wenn sowohl Bits S als auch S-1 nicht Null sind. Während des A2-Durchlaufs ist ein Koeffizient in der A-Gruppe signifikant, falls das Bit S nicht Null ist. Da die zwei signifikantesten Bits bekannt sind, brauchen der B1-Durchlauf und der B0-Durchlauf nur S-1 Bits zu verarbeiten (unter der Annahme, daß S=0 die am wenigsten signifikante Bitebene ist).
  • Da abwechselnde bruchstückhafte bzw. teilweise Bitebenen sich voneinander um einen Faktor 1,5 oder 2/1,5 unterscheiden, kann die Anordnung für unterschiedliche Pegel durch Gruppieren der gewünschten teilweisen Bitebenen für jeden Pegel erzielt werden.
  • Die teilweisen bzw. bruchstückhaften Bitebenen verursachen eine genauere Modellierung der Daten durch das Eltern- bzw. Stamm-/Nachkommen-Verhältnis, das durch das frequenzbasierende Kontextmodell verwendet wird. Mehr als zwei Durchläufe, beispielsweise vier oder acht Durchläufe könnten für eine noch genauere Modellierung verwendet werden. Zum Beispiel würde in dem Fall mit vier Durchläufen der A11-Durchlauf Koeffizienten behandeln bzw. handhaben, die mit "111" beginnen. Die anderen Durchläufe würden "110", "101" und "100" handhaben. Eine weniger genaue Modellierung könnte ebenfalls verwendet werden. Zum Beispiel könnte ein Durchlauf nur für jede andere Bitebene vorgenommen werden. In dem Fall der weniger genauen Modellierung werden mehr Bits durch die B-Gruppe codiert.
  • C. Codierer- und Speicher-/Kanalmanagement für ein System mit einem Durchlauf bzw. Durchgang
  • Das Speichermanagement für codierte Daten wird in dem System mit einem Durchlauf für Systeme, die sämtliche der Daten im Speicher abspeichern, und für Systeme vorgestellt, die die Daten in einem Kanal übertragen. In dem System mit einem Durchlauf müssen codierte Daten so gespeichert werden, daß sie in der eingebetteten Kausalart bzw. -mode zugegriffen werden können, so daß weniger signifikante bzw. wertige Daten mißachtet werden können, ohne signifikantere Daten zu verlieren. Da codierte Daten eine variable Länge aufweisen, kann eine Zuweisung dynamischen Speichers verwendet werden.
  • Gemäß einer Ausführungsform nach der vorliegenden Erfindung verwendet das eingebettete Codierungsschema 18 Bitebenen und überträgt 18 Signifikanz- bzw. Wertigkeitspegel auf die Daten. Der Codierer muß in einem System mit einem Durchlauf "kausal einbettend" sein. Die Decodierungsereignisse, die einer Bitebene entsprechen, erfordern keine Informationen von Bitebenen geringerer Ordnung. In dem Fall mit einem Durchlauf werden üblicherweise sämtliche der Bits eines Baumes codiert, bevor irgendwelche der Bits des nächsten Baumes codiert werden, so daß Bits unterschiedlicher Signifikanz bzw. Wertigkeit nicht getrennt werden. Für Codierer, die keinen inneren Zustand bzw. internen Zustand verwenden, wie Huffman-Codierer, ist dies kein Problem. Jedoch verwenden viele kompliziertere Komprimierer mit besserer Komprimierung interne bzw. innere Zustände.
  • Ein Weg, dieses Problem für diese Codierer zu lösen, ist es, 18 verschiedene Codierer, vielleicht 18 Q-Codiererchips, zu verwenden. Eine Technik, die die Verwendung von 9 Q-Codiererchips ermöglicht, ist in dem US-Patent Nr. 5,097,261 (Langdon, Jr.) beschrieben, betitelt mit "Data Compression for Recording on a Record Medium", erteilt am 17. März 1992. Eine bessere Art verwendet einen in einer Leitung bzw. in einer Reihe angeordneten Codierer, um verschiedene virtuelle Codes mit einem einzigen physikalischen Codierer in die Tat umzusetzen, so wie es in der US-Patentanmeldung mit der Serial No. 08/016,035, betitelt mit "Method and Apparatus for Parallel Decoding and Encoding of Data", eingereicht am 10. Februar 1993, beschrieben wird. In einem solchen Codierer sind die mehrfachen bzw. multiplen Bitgeneratorzustände für jede Wahrscheinlichkeit jeweils einem Teil der Daten zugeordnet. Zum Beispiel könnte jeder von 18 Zuständen einer bestimmten Bitebene für 18 Bitdaten zugeordnet werden. Register in der Verschiebungseinrichtung in dem Codierer sind ebenfalls jedem Teil der Daten zugeordnet. In dem Codierer wird keine Verschachtelung durchgeführt; jede Art von Daten wird einfach bitgestapelt bzw. nach Bits abgelegt.
  • In Ausführungsformen entweder mit mehrfachen bzw. multiplen physikalischen Codierern oder virtuellen Codierern wird Speicher jedem Teil der Daten zugeordnet. Wenn die Komprimierung vollständig ist, ist eine verknüpfte Liste, die den zugeordneten Speicher plus den Inhalt des zugeordneten Speichers beschreibt, das Ergebnis.
  • Falls der Speicher übergeht, bewirkt die Speicherzuordnungswegbestimmung, daß wichtigere Daten die weniger wichtigen Daten überschreiben. Zum Beispiel kann das am wenigsten signifikante Bit von numerischen Daten zuerst überschrieben werden. Die Information, die beschreibt, wie Speicher zugeordnet wird, muß zusätzlich zu den codierten Daten gespeichert werden.
  • Die 24 zeigt ein Beispiel einer dynamischen Speicherzuordnungseinheit für drei Kategorien der Signifikanz bzw. Wertigkeit. Nur drei Kategorien werden beschrieben, um eine Verundeutlichung der vorliegenden Erfindung zu vermeiden; typischerweise würde eine große Anzahl von Kategorien, wie etwa 8, 16 oder 18 verwendet werden. Ein Registerfeld (oder anderer Speicher) hält einen Zeiger für jede Signifikanz bzw. Wertigkeitskategorie und einen anderen Zeiger, um den nächsten freien Speicherplatz anzuzeigen. Der Speicher wird in Seiten fester Größe unterteilt.
  • Eingangs zeigt jeder Zeiger, der einer Signifikanz-Kategorie zugeordnet ist, auf den Beginn einer Seite des Speichers und der freie Zeiger deutet auf die nächste verfügbare Seite des Speichers. Die codierten Daten, die mit einer Signifikanz-Kategorie identifiziert werden, werden an dem Speicherort gespeichert, der durch den entsprechenden Zeiger adressiert ist. Der Zeiger wird dann auf den nächsten Speicherplatz bzw. -ort erhöht bzw. inkrementiert.
  • Wenn der Zeiger das Maximum für die gegenwärtige Seite erreicht, wird die Adresse des Starts der nächsten freien Seite, die in dem freien Zeiger gespeichert ist, mit der gegenwärtigen Seite als Verbindung bzw. Verknüpfung gespeichert. In einer Ausführungsform kann der Teil des codierten Datenspeichers oder eines getrennten Speichers oder Registerfeldes für diesen Zweck verwendet werden. Anschließend wird der gegenwärtige Zeiger auf die nächste freie Seite gesetzt. Der freie Zeiger wird erhöht. Diese Schritte bewirken, daß eine neue Seite des Speichers einer bestimmten Signifikanz- bzw. Wertigkeits-Kategorie zugeordnet wird und stellt Verbindungen bzw. Verknüpfungen zu Seiten des Speichers zur Verfügung, die Daten für eine allgemeine Signifikanz-Kategorie enthalten, so daß die Ordnung der Zuteilung während des Decodierens bestimmt werden kann.
  • Wenn sämtliche Seiten in dem Speicher in Benutzung sind und mehr Daten vorhanden sind, die signifikanter sind als die wenig signifikanten Daten im Speicher, kann eine Neuzuordnung durchgeführt werden. Drei derartige Neuzuordnungstechniken werden beschrieben. In sämtlichen drei Fällen wird Speicher, der den weniger bzw. am wenigsten signifkanten Daten zugeordnet ist, signifikanteren Daten neu zugeordnet und keine weniger bzw. am wenigsten signifikanten Daten werden länger gespeichert.
  • Zuerst wird die erste gegenwärtig durch die am wenigsten signifikanten Daten verwendete Seite einfach den mehr signifikanten Daten zugeordnet. Da die meisten typischen Entropiecodierer interne Zustandsinformationen verwenden, wird sämtliche der weniger bzw. am wenigsten signifikanten Daten, die zuvor in dieser Seite gespeichert wurden, verloren.
  • Zweitens wird die gegenwärtig durch die am wenigsten signifikanten Daten verwendete Seite den signifikanteren Daten zugeordnet. Anders als bei dem vorherigen Fall wird der Zeiger auf das Ende der Seite gesetzt und signifikantere Daten werden in die Seite geschrieben, wobei der entsprechende Zeiger erniedrigt bzw. dekrementiert wird. Dies hat den Vorteil, daß die am wenigsten signifikanten Daten bei dem Beginn von der Seite bewahrt werden, wenn die signifikanteren Daten nicht die gesamte Seite erfordern.
  • Drittens kann anstelle der gegenwärtigen Seite der am wenigsten signifikanten Daten, die neu zugeordnet werden, irgendeine Seite mit am wenigsten signifikanten Daten neu zugeordnet werden. Dies erfordert, daß die codierten Daten für sämtliche Seiten unabhängig codiert werden, was die erzielte Komprimierung verringern kann. Es erfordert auch, daß die uncodierten Daten, die dem Beginn sämtlicher Seiten entsprechen, erkannt bzw. identifiziert werden. Da eine beliebige Seite am wenigsten signifikanter Daten außer Acht gelassen werden kann, ist eine größere Flexibilität bei der Quantisierung verfügbar.
  • Die dritte Alternative kann besonders vorteilhaft in einem System sein, das eine feste Komprimierungsrate über Bereiche des Bildes erzielt. Eine spezifizierte Anzahl von Speicherseiten kann einem Bereich des Bildes zugewiesen werden. Ob weniger signifikante Daten zurückbehalten werden oder nicht, kann von der in einem bestimmten Bereich erzielten Komprimierung abhängen. Man beachte, daß der einem Bereich zugeordnete Speicher nicht vollständig in Benutzung genommen sein kann, falls verlustlose Komprimierung weniger als die zugeordnete Speichermenge erfordert. Die Erzielung einer festen Kompressionsrate für einen Bereich des Bildes kann einen wahlfreien Zugriff zu den Bildbereichen unterstützen.
  • Wenn die Komprimierung vollständig ist, können die Daten übertragen werden, falls gewünscht zu einem Kanal oder einer Speichereinrichtung, in der Ordnung der Signifikanz bzw. Wertigkeit. Die verschiedenen Verknüpfungen und Zeiger würden dann nicht mehr benötigt werden und eine Decodierung mit mehrfachen Durchläufen könnte durchgeführt werden. Alternativ können die Zeiger zu den Daten für jede Signifikanz für eine Decodierung mit einem Durchlauf aufrechterhalten werden.
  • In einigen Anwendungen können einige Signifikanz- bzw. Wertigkeits-Kategorien nicht mehr verwendet werden. Zum Beispiel könnte ein 16-Bit-Komprimierer für ein 12-Bit-Medizinalbild verwendet werden, so daß die Signifikanz-Kategorien, die zu Bitebenen 15...12 korrespondieren, ungenutzt sein würden. Bei Umsetzungen mit großen Seiten und vielen ungenutzten Signifikanz-Kategorien würde dies Speicher verschwenden (falls das System nicht im voraus wüßte, daß einige Kategorien unbenutzt sind), da der Speicher diesen nicht zugeordnet werden muß. Eine andere Lösung für diese Speicherverschwendung wäre es, einen kleinen Speicher (oder Register) zu verwenden, um eine Zahl bzw. Zählung für jede Signifikanz-Kategorie zu halten. Die Zahl bzw. Zählung würde die Anzahl von Entscheidungen "insignifikant, nicht signifikante Nachkommen" verfolgen bzw. auf dem laufenden halten, die auftreten, bevor irgendwelche anderen Entscheidungen vorkommen. Der Speicher, der zum Speichern dieser Zählungen bzw. dieser Zähler erforderlich ist, muß gegenüber dem durch unbenutzte Signifikanz-Kategorien verwendeten Speicher aufgerechnet ("traded off") werden.
  • Die Fähigkeit, Daten in jede Seite von beiden Enden einzuschreiben, kann verwendet werden, den insgesamt in dem System verfügbaren Speicherplatz besser auszunutzen. Wenn sämtliche Seiten zugewiesen sind, kann jede Seite, die ausreichend freien Platz an dem Ende zur Verfügung hat, für die Verwendung von dem Ende zugewiesen werden. Die Fähigkeit, beide Enden einer Seite zu verwenden, muß gegenüber den Kosten für die Verfolgung des Platzes, wo die zwei Arten von Daten aufeinandertreffen, abgewogen werden. Man bemerke, daß dies von dem Fall unterschiedlich ist, wo einer der Datentypen nicht signifikant war und einfach überschrieben werden konnte.
  • Verwendung eines Kanals
  • In einem System, in dem Daten in einem Kanal übertragen werden, anstelle in einem Speicher gespeichert zu werden, und Seiten fester Größe des Speichers verwendet werden kann (aber nur eine Seite pro Signifikanz-Kategorie erforderlich ist), wenn eine Seite des Speichers voll ist, diese in dem Kanal übertragen werden und der Speicherplatz kann, sobald die Daten übertragen sind, wieder verwendet werden. Bei einigen Anwendungen kann die Seitengröße des Speichers die Größe des Datenpaketes sein, die in dem Kanal verwendet wird, oder ein Mehrfaches der Paketgröße. (Man bemerke, daß in einer Ausführungsform zwei Seiten pro Signifikanzpegel verwendet werden können, so daß Daten in eine geschrieben werden können, während die andere zur Ausgabe zu dem Kanal gelesen wird.)
  • In einigen Kommunikationssystemen, z.B. ATM (asynchroner Übertragungsmodus) (Asynchrounous Transfer Mode) können Prioritäten den Paketen zugeordnet werden. ATM weist zwei Prioritätspegel, eine Primäre und eine Sekundäre, auf. Sekundäre Pakete werden nur übertragen, wenn eine hinreichende Bandbreite zur Verfügung stellt. Eine Schwelle kann verwendet werden, um zu bestimmen, welche Signifikanz-Kategorien primär sind und welche sekundär sind. Ein anderes Verfahren wäre die Verwendung einer Schwelle bei dem Codierer, um keine Signifikanz-Kategorien zu übertragen, die weniger signifikant waren als die Schwelle.
  • Verlustbehaftete Komprimierung mit begrenztem Spitzenfehler
  • In einigen Anwendungen ist keine perfekte (verlustfreie) Wiederherstellung erforderlich. Es kann wünschenswert sein, eine Komprimierung mit einem bestimmten maximalen Spitzenfehler zu erzielen. Der Spitzenfehler sei ±E. Dies kann erzielt werden, indem die komprimierten Daten abgeschnitten werden, so daß sämtliche weniger signifikanten Daten, die nicht benötigt werden, um die gewünschte Auflösung bzw. Genauigkeit zu erzielen, außer Acht gelassen werden.
  • Ein anderer Weg zur Erzielung der Komprimierung mit einem bestimmten maximalen Spitzenfehler ist es, durch einen Wert zu teilen (mit ganzzahliger Division), der geringer ist als oder gleich ist zu 2 × E + 1 für jedes Bildelement des zu komprimierenden Bildes. Während der Wiederherstellung wird jedes Bildelement in dem Bild verarbeitet mit: Ausgabe-Bildelement = (2 × E + 1) × Eingabe-Bildelement + E.
  • (Alternativ kann anstelle des Addierens von E während der Dekomprimierung eine Subtraktion während der Komprimierung vor der Division durch 2 × E + 1 auftreten.)
  • Ein anderer Weg, um die Komprimierung mit einem spezifizierten maximalen Spitzenfehler zu erzielen, ist es, die Division und die Multiplikation durch Verschiebungen zu ersetzen. Der Verschiebungsbetrag ist ⌊log2(2 × E + 1)⌋. Weil die Verschiebung angenehm bzw. angemessen ist, kann eine bessere Fehlerspezifikation (die den Spitzenfehler ersetzt) Fehler der Form (2n < Fehler < –2n] sein.
  • Das Vorhergehende sollte nicht mit der Quanitisierung von Koeffizienten durcheinandergebracht werden, die im Stand der Technik von verlustbehafteten Bildkomprimierungen wohlbekannt ist. In vielen verlustbehafteten Komprimierungssystemen (z.B. JPEG) werden Transformationsbereichskoeffizienten einem maximalen Spitzenfehler zugeordnet, welcher den Spitzenfehler des Bildes nur indirekt steuert. Ein kritischer Unterschied ist, daß die vorliegende Erfindung die Quantisierung auf Bildelemente durchführt und verlustlose Komprimierung von Koeffizienten verwendet.
  • Die Transformationsbereichsquantisierung kann ebenfalls verwendet werden. Viele Koeffizienten haben eine Wirkung auf den Spitzenfehler, der sich durch mehrere Pegel bzw. Niveaus der Transformation hindurchzieht. Es ist leichter, den Effekt auf den Spitzenfehler für die Hochpaßkoeffizienten zu bestimmen, die keine Nachkommen haben.
  • Man ziehe ein eindimensionales Bild in Betracht, das mit einem maximalen Spitzenfehler von ±E zu codieren ist. Dies kann durch Quantisieren der Hochpaßkoeffizienten der feinsten Einzelheit zu ±2E erzielt werden. Für ein zweidimensionales Signal kann, da es zwei Anwendungen des Hochpaßfilters gibt, die Koeffizienten HH der feinsten Einzelheit zu ±4E quantisiert werden.
  • Eine Alternative, die Quantisierung des Eingabebildes zu verwenden, ist, die Entscheidungen zu dem Entropiecodierer zu steuern. Ein Beispiel lautet wie folgt. Für jeden Koeffizienten wird, falls die Einstellung des Koeffizienten auf Null nicht den Fehler in irgendeinem Bildelement durch den Koeffizienten beeinträchtigen würde, um den maximalen Fehler zu überschreiten, der Koeffizient auf Null gesetzt werden. In einigen Umsetzungen werden nur bestimmte Koeffizienten geprüft, vielleicht nur die AC-Koeffizienten, die keine Nachkommen haben. Die Koeffizienten können mit einer gierigen Strategie in Betracht gezogen werden, bei der einer zu einer Zeit bzw. einem Zeitpunkt in Betracht gezogen wird. Andere Schritte dagegen können kleinere Gruppen von Koeffizienten in Betracht ziehen und den größten möglichen Untersatz der Gruppe zu Null wählen.
  • Während viele Änderungen und Modifikationen der vorliegenden Erfindung möglich sind, wird bei einem Fachmann aus dem Stand der Technik kein Zweifel darüber auftreten, nachdem er die vorangehende Beschreibung gelesen hat, daß die bestimmte Ausführungsform, die durch Darstellungen gezeigt und beschrieben worden ist, in keiner Weise als einschränkend aufzufassen ist. Deshalb sind Bezugnahmen auf Einzelheiten der bevorzugten Ausführungsform nicht als dem Schutzbereich der Ansprüche einschränkend beabsichtigt, welche nur die Merkmale wiedergeben, die als wesentlich für die Erfindung angesehen werden.
  • Ein Verfahren und eine Vorrichtung zum Codieren und Decodieren von Daten werden beschrieben. Die vorliegende Erfindung enthält ein Verfahren und eine Vorrichtung zum Erzeugen transformierter Signale in Antwort auf Eingabedaten. In einer Ausführungsform werden die transformierten Signale unter Verwendung einer reversiblen Wellen- bzw. Kleinwellen-Transformation erzeugt. Die vorliegende Erfindung enthält auch ein Verfahren und eine Vorrichtung zum Komprimieren der transformierten Signale in Daten, die eine verlustlos komprimierte Version der Eingabedaten darstellen. In einer Ausführungsform zerlegt die vorliegende Erfindung die Eingabedaten unter Verwendung eines reversiblen Filters nichtminimaler Länge. Die Zerlegung kann unter Verwendung mehrerer bzw. mehrfacher eindimensionaler Filter durchgeführt werden.
  • Beispiel-Code für eine RTS-(Vorwärts-)Transformation – einpegelige Dekompression –
    Figure 01000001
  • Beispiel-Code für (inverse) RTS-Transformation – einpegelige Dekompression –
    Figure 01000002
  • Zweipegelige Dekompression-RTS-(Vorwärts-)Transformation
    Figure 01010001
  • Zweipegelige Dekompression (inverse) RTS-Transformation
    Figure 01020001

Claims (24)

  1. Codierer zum Codieren von Eingabedaten zu einem komprimierten Datenstrom, wobei der Codierer aufweist: einen reversiblen bzw. umkehrbaren Kleinwellenfilter zum Transformieren der Eingabedaten in eine Mehrzahl von Koeffizienten; einen Einbettungscodierer, der an die reversiblen Kleinwellenfilter bzw. Filter angeschlossen ist, um Einbettungscodieren an der Mehrzahl der Koeffizienten durchzuführen, so daß ein Bitstrom erzeugt wird; wobei das Einbettungscodieren auf die Anordnung der Koeffizienten in einer Reihenfolge bzw. Ordnung gerichtet ist, und einen Entropiecodierer, der an dem Einbettungscodierer angeschlossen ist bzw. angekoppelt ist, um Entropiecodierung für bzw. an dem Bitstrom durchzuführen, um codierte Daten zu erzeugen.
  2. Codierer zum Codieren von Eingabedaten, der aufweist: einen Transformierungscodierer, der angekoppelt bzw. angeschlossen ist, um die Eingabedaten zu empfangen, und eine Reihe bzw. Serie von Koeffizienten zu erzeugen, wobei die Reihe bzw. Serie von Koeffizienten eine Zerlegung der Eingabedaten darstellt; und einen Einbettungscodierer, der angekoppelt bzw. angeschlossen ist, um die Serie bzw. Reihe von Koeffizienten zu empfangen und eine Bit-Signifikanz- bzw. -Wertigkeits-Codierung auf die Reihe von Koeffizienten anzuwenden, um codierte Daten zu erzeugen, wobei der Einbettungscodierer codierte Daten vor dem Empfang sämtlicher der Reihe bzw. Serie von Koeffizienten erzeugt, und bei der Bit-Signifikanz-Codierung die Koeffizienten binär basierend auf der Signifikanz bzw. Wertigkeit des Bits ausgedrückt werden.
  3. Codierer nach Anspruch 2, in dem der Transformationscodierer und der Einbettungscodierer betrieben werden, um codierte Daten von den Eingangsdaten in einem Durchlauf zu erzeugen.
  4. Wavelet-Transformationsfilter zur Transformation von Eingabedatensignalen, das aufweist: einen ersten Addierer zum Addieren eines ersten Proben- bzw. Signalpaares der Eingabedatensignale, um die Summe der Addition als ein erstes Ergebnis zu erzeugen und auszugeben; eine erste Ausgangslogik, in die das erste Ergebnis eingeht und die basierend darauf einen ersten Tiefpaßkoeffizienten ausgibt; einen ersten Subtrahierer, der die Differenz zweier Eingaben, von denen eine erste der erste Tiefpaßkoeffizient ist, erzeugt und ausgibt und dessen Ausgabe ein zweites Ergebnis darstellt, wobei die Ausgabe als zweite Eingabe zu dem ersten Subtrahierer zurückgeführt wird und mittels dem ersten Subtrahierer von der ersten Eingabe abgezogen wird; einen zweiten Subtrahierer, der eine Differenz aus einem zweiten Paar von Proben bzw. Abtastungssignalen des Eingangsdatensignals als ein drittes Ergebnis erzeugt und ausgibt; einen zweiten Addierer, der das dritte Ergebnis und das zweite Ergebnis addiert, um so die Summe der Addition als ein viertes Ergebnis zu erzeugen und auszugeben; eine zweite Ausgangslogik, in die das vierte Ergebnis eingeht und die basierend darauf einen zweiten Tiefpaßkoeffizienten erzeugt und ausgibt, so daß das Wavelet- bzw. Kleinwellen-Transformationsfilter den ersten und den zweiten Tiefpaßkoeffizienten ausgibt.
  5. Filter nach Anspruch 4, in dem die erste Ausgangslogik bzw. Ausgabelogik eine Dividiereinrichtung aufweist.
  6. Filter nach Anspruch 5, in dem die Divisionseinrichtung eine Bit-Verschiebeeinrichtung aufweist.
  7. Filter nach Anspruch 4, in dem die zweite Ausgangs- bzw. Ausgabelogik eine Divisionseinrichtung aufweist.
  8. Filter nach Anspruch 7, in dem die Divisionseinrichtung eine Bit-Verschiebungseinrichtung aufweist.
  9. Wavelet-Transformationsfilter zum Transformieren von Eingabedatensignalen, das aufweist: einen ersten Addierer zum Addieren eines ersten Proben- bzw. Abtastsignalpaares der Eingabedatensignale, um die Summe der Addition als ein erstes Ergebnis zu erzeugen und auszugeben; einen ersten Multiplizierer, in dem das erste Ergebnis eingeht und der das erste Ergebnis mit einem ersten Faktor vervielfacht bzw. multipliziert, um das Produkt der Multiplikation als ein zweites Ergebnis auszugeben, wobei das zweite Ergebnis als ein erster Tiefpaßkoeffizient ausgegeben wird; einen ersten Subtrahierer, in den ein Tiefpaßkoeffizient eingeht, der von dem zweiten Ergebnis subtrahiert wird, um die Differenz als ein drittes Ergebnis zu erzeugen, wobei der Tiefpaßkoeffizient von dem ersten Subtrahierer ausgegeben und als Eingabe zu dem ersten Subtrahierer zurückgeführt wird; einen zweiten Subtrahierer, um ein zweites Paar von Proben bzw. Abtastsignalen des Eingabedatensignals voneinander zu subtrahieren, um die Differenz als ein, viertes Ergebnis zu erzeugen und auszugeben; eine erste Divisionseinrichtung, die das vierte Ergebnis empfängt und das dritte Ergebnis durch einen zweiten Faktor dividiert, um das Ergebnis der Division als ein fünftes Ergebnis zu erzeugen und auszugeben; einen zweiten Addierer, in den das dritte Ergebnis und das zweite Ergebnis eingeht und der das dritte und vierte Ergebnis addiert und die Summe als sechstes Ergebnis ausgibt; eine zweite Divisionseinrichtung, die das sechste Ergebnis empfängt und das sechste Ergebnis durch einen dritten Faktor dividiert, um einen zweiten Tiefpaßkoef-fizienten zu erzeugen, wobei der erste Tiefpaßkoeffizient und der dritte Tiefpaßkoef-fizient von dem Filter ausgegeben werden.
  10. Filter nach Anspruch 9, in dem die Multipliziereinrichtung eine Verschiebungseinrichtung aufweist.
  11. Filter nach Anspruch 9, in dem wenigstens eine der Divisionseinrichtungen eine Verschiebungseinrichtung aufweist.
  12. Wavelet-Transformationsfilter zum Transformieren von Eingangsdatensignalen, das aufweist: einen ersten Subtrahierer, um ein Paar von Tiefpaßkoeffizienten zu subtrahieren, um die Differenz als ein erstes Ergebnis zu erzeugen und auszugeben; einen zweiten Subtrahierer, in den das erste Ergebnis eingeht und der das erste Ergebnis von einem Hochpaßkoeffizienten subtrahiert, um die Differenz als ein zweites Ergebnis zu erzeugen und auszugeben; einen ersten Addierer, der das zweite Ergebnis mit einem Tiefpaßkoeffizienten addiert, der als zweite Eingabe in den ersten Addierer eingegeben wird, um die Summe als ein drittes Ergebnis zu erzeugen; einen dritten Subtrahierer, um das zweite Ergebnis von der zweiten Eingabe, die auf dem Tiefpaßkoeffizienten basiert, zu subtrahieren, um ein viertes Ergebnis zu erzeugen; wobei das Filter eine erste Probe bzw. Abtastsignal, das auf dem dritten Ergebnis basiert und eine zweiten Probe bzw. Abtastsignal, das auf dem vierten Ergebnis basiert, ausgibt.
  13. Filter nach Anspruch 12, das ferner einen ersten Abschneidemechanismus aufweist, der angekoppelt bzw. ange schlossen ist, um das dritte Ergebnis zu empfangen und das dritte Ergebnis abzuschneiden, um die erste Probe bzw. das erste Abtastsignal zu erzeugen.
  14. Filter nach Anspruch 12, das ferner eine Divisionseinrichtung aufweist, die an das erste Ergebnis angekoppelt bzw. angeschlossen ist, um das erste Ergebnis durch einen ersten Faktor zu dividieren, um den ersten Eingang bzw. Eingabe zu erzeugen.
  15. Filter nach Anspruch 12, das ferner eine Multipliziereinrichtung aufweist, die an den Tiefpaßkoeffizienten angekoppelt bzw. angeschlossen ist, um den Tiefpaßkoeffizienten zu multiplizieren, um den zweiten Eingang bzw. Eingabe zu erzeugen.
  16. Codierer zum Codieren einer Vielzahl von Datensymbolen, der aufweist: eine Formatierungseinheit, die angekoppelt bzw. angeschlossen ist, um die Vielzahl von Datensymbolen zu empfangen und die Vielzahl von Datensymbolen in einen Satz von formatierten Datensymbolen zu formatieren; wobei durch die Formatierung eine Anzahl von Datensymbolen in Symbole basierend auf einem Datenformat formatiert werden, eine Signifikanz- bzw. Wertigkeitseinheit, die an die Formatierungseinheit angekoppelt bzw. angeschlossen ist, um eine Vielzahl von Entscheidungen in Antwort auf jedes der Vielzahl der Datensymbole zu erzeugen; eine Speichereinrichtung, die angekoppelt bzw. angeschlossen ist, um die Vielzahl von Entscheidungen von der Signifikanz- bzw. Wertigkeitseinheit zum Speichern und Ausgeben zu empfangen.
  17. Codierer nach Anspruch 16, in dem die Mehrzahl von Datensymbolen eine Mehrzahl von Koeffizienten aufweist.
  18. Codierer nach Anpruch 16, in dem die Formatierungseinheit eine (Vor-)Zeichen-/Größenordnungseinheit aufweist, um die Mehrzahl von Datensymbolen in den Satz von formatierten Datensymbolen umzusetzen, die in (Vor-)Zeichen-/Größenordnungsform formatiert sind.
  19. Codierer nach Anspruch 18, in dem die (Vor-)Zeichen-/Größenordnungseinheit aufweist: eine Signifikanz- bzw. Wertigkeitsbestimmungseinrichtung, um eine Signifikanzanzeige für jedes Datensymbol auszugeben; einen (Vor-)Zeichen- und Mantissengenerator, der angekoppelt bzw. angeschlossen ist, um jedes der Mehrzahl der Datensymbole zu empfangen und (Vor-)Zeichen und Mantissen für jedes der Mehrzahl von Datensymbolen zu erzeugen; und eine Index-Zähleinrichtung zum Erzeugen eines Index für jedes der Mehrzahl von Datensymbolen.
  20. Codierer nach Anspruch 19, in dem die Signifikanz- bzw. Wertigkeitsbestimmungseinrichtung einen Prioritätscodierer aufweist.
  21. Codierer nach Anspruch 19, in dem die Signifikanz- bzw. Wertigkeitsbestimmungseinrichtung ein Paar von Prioritätscodierern und eine Auswähleinrichtung aufweist, um zwischen Ausgängen von jedem des Paares von Prioritätscodierern auszuwählen, um die Signifikanz- bzw. Wertigkeitsanzeige auszugeben.
  22. Codierer nach Anspruch 16, der ferner einen Größenordnungsspeicher aufweist, der angekoppelt bzw. angeschlossen ist, um die Mehrzahl von formatierten Datensymbolen zur Speicherung zu empfangen.
  23. Codierer nach Anspruch 22, in dem jedes der Mehrzahl von formatierten Datensymbolen in dem Größenordnungsspeicher auf der Grundlage eines Signifikanz- bzw. Wertigkeitspegels gespeichert wird.
  24. Codierer nach Anspruch 22, in dem der Größenordnungsspeicher eine Mehrzahl von Speicherbereichen aufweist, wobei jedes der Mehrzahl von Speicherbereichen Daten speichert für einen unterschiedlichen Signifikanz- bzw. Wertigkeitspegel, der Größenordnungsspeicher ferner eine Mehrzahl von Zähleinrichtungen bzw. Zählern aufweist, wobei jeder der Mehrzahl von Zählern bzw. Zähleinrichtungen mit einem der Mehrzahl der Speicherbereiche verbunden ist, um Adressen für die Speicherung der formatierten Datensymbole zur Verfügung zu stellen.
DE19534943A 1994-09-21 1995-09-20 Vorrichtung zur Komprimierung unter Verwendung von eingebetteten Kleinwellen Expired - Fee Related DE19534943B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/310,146 1994-09-21
US08/310,146 US5748786A (en) 1994-09-21 1994-09-21 Apparatus for compression using reversible embedded wavelets

Publications (2)

Publication Number Publication Date
DE19534943A1 DE19534943A1 (de) 1996-03-28
DE19534943B4 true DE19534943B4 (de) 2006-01-12

Family

ID=23201196

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19534943A Expired - Fee Related DE19534943B4 (de) 1994-09-21 1995-09-20 Vorrichtung zur Komprimierung unter Verwendung von eingebetteten Kleinwellen

Country Status (4)

Country Link
US (4) US5748786A (de)
JP (6) JP3436832B2 (de)
DE (1) DE19534943B4 (de)
NL (1) NL1001248C2 (de)

Families Citing this family (195)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7251637B1 (en) 1993-09-20 2007-07-31 Fair Isaac Corporation Context vector generation and retrieval
US6173275B1 (en) * 1993-09-20 2001-01-09 Hnc Software, Inc. Representation and retrieval of images using context vectors derived from image information elements
US5748786A (en) * 1994-09-21 1998-05-05 Ricoh Company, Ltd. Apparatus for compression using reversible embedded wavelets
US6873734B1 (en) * 1994-09-21 2005-03-29 Ricoh Company Ltd Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US6549666B1 (en) * 1994-09-21 2003-04-15 Ricoh Company, Ltd Reversible embedded wavelet system implementation
US5659631A (en) * 1995-02-21 1997-08-19 Ricoh Company, Ltd. Data compression for indexed color image data
SE507410C2 (sv) * 1995-11-08 1998-05-25 Ericsson Telefon Ab L M Förfarande och anordning för rörelseestimering
US5982434A (en) * 1996-03-22 1999-11-09 Sony Corporation Image signal coding method and device thereof, image signal decoding method and device thereof, and recording medium
US6141452A (en) * 1996-05-13 2000-10-31 Fujitsu Limited Apparatus for compressing and restoring image data using wavelet transform
US6310972B1 (en) * 1996-06-28 2001-10-30 Competitive Technologies Of Pa, Inc. Shape adaptive technique for image and video compression
IL119523A0 (en) * 1996-10-30 1997-01-10 Algotec Systems Ltd Data distribution system
US5748116A (en) * 1996-11-27 1998-05-05 Teralogic, Incorporated System and method for nested split coding of sparse data sets
US5909518A (en) * 1996-11-27 1999-06-01 Teralogic, Inc. System and method for performing wavelet-like and inverse wavelet-like transformations of digital data
US5859604A (en) * 1997-01-14 1999-01-12 International Business Machines Corporation Merged VLSI implementation of hardware optimized Q-Coder and software optimized QM-Coder
AU6863998A (en) * 1997-03-11 1998-09-29 Computer Information And Sciences, Inc. System and method for image compression and decompression
US6445823B1 (en) * 1997-03-12 2002-09-03 Texas Instruments Incorporated Image compression
AUPO600897A0 (en) * 1997-04-04 1997-05-01 Canon Information Systems Research Australia Pty Ltd An efficient method of image compression comprising a low resolution image in the bit stream
GB2325584B (en) * 1997-05-01 2000-03-29 Ricoh Kk Decompression system using inverse wavelet transform
US5949911A (en) * 1997-05-16 1999-09-07 Teralogic, Inc. System and method for scalable coding of sparse data sets
US6125201A (en) * 1997-06-25 2000-09-26 Andrew Michael Zador Method, apparatus and system for compressing data
US6021227A (en) * 1997-06-30 2000-02-01 Hewlett-Packard Company Image compression system including encoder having run mode
EP0930788A4 (de) * 1997-07-30 2003-12-17 Mitsubishi Electric Corp Verfahren und vorrichtung zur bildkompression und -dekompression
EP0905651A3 (de) * 1997-09-29 2000-02-23 Canon Kabushiki Kaisha Bildverarbeitungsverfahren und -vorrichtung
US6956973B1 (en) * 1997-09-30 2005-10-18 Texas Instruments Incorporated Image compression
DE19744407C1 (de) 1997-10-08 1999-02-11 Luratech Ges Fuer Luft Und Rau Verfahren zur mehrdimensionalen, diskreten Wavelet-Transformation und Transformationseinheit zur Durchführung des Verfahrens
US6937659B1 (en) * 1997-11-14 2005-08-30 Ac Capital Management, Inc. Apparatus and method for compressing video information
US6044172A (en) * 1997-12-22 2000-03-28 Ricoh Company Ltd. Method and apparatus for reversible color conversion
JP3679586B2 (ja) * 1997-12-24 2005-08-03 キヤノン株式会社 符号化及び復号装置とその符号化及び復号方法
CA2320177A1 (en) 1998-02-13 1999-08-19 Quvis, Inc. Apparatus and method for optimized compression of interlaced motion images
US20020044692A1 (en) * 2000-10-25 2002-04-18 Goertzen Kenbe D. Apparatus and method for optimized compression of interlaced motion images
US6134350A (en) * 1998-02-18 2000-10-17 Dome Imaging Systems, Inc. Method of producing wavelets and compressing digital images and of restoring the digital images
AUPP248498A0 (en) * 1998-03-20 1998-04-23 Canon Kabushiki Kaisha A method and apparatus for encoding and decoding an image
JP3639108B2 (ja) * 1998-03-31 2005-04-20 株式会社ソニー・コンピュータエンタテインメント 描画装置および描画方法、並びに提供媒体
WO1999056457A2 (en) * 1998-04-29 1999-11-04 Zulu Broadcasting Llc Portable data transmission system for global and local computer networks
FR2846837B1 (fr) * 2002-11-05 2005-04-29 Canon Kk Codage de donnees numeriques avec determination d'un parcours parmi les donnees
US6236757B1 (en) * 1998-06-18 2001-05-22 Sharp Laboratories Of America, Inc. Joint coding method for images and videos with multiple arbitrarily shaped segments or objects
US6215907B1 (en) * 1998-06-26 2001-04-10 Fisher-Rosemont Systems, Inc. Recursive on-line wavelet data compression technique for use in data storage and communications
US8050329B2 (en) * 1998-06-26 2011-11-01 Mediatek Inc. Method and apparatus for generic scalable shape coding
US6307971B1 (en) * 1998-10-01 2001-10-23 Sharewave, Inc. Method and apparatus for digital data compression
AUPP686498A0 (en) * 1998-10-30 1998-11-26 Canon Kabushiki Kaisha A decoder for decoding a coded representation of a digital image
US6606416B1 (en) 1998-10-30 2003-08-12 Canon Kabushiki Kaisha Encoding method and apparatus for representing a digital image
US6463177B1 (en) * 1998-11-04 2002-10-08 Sharp Laboratories Of America, Inc. Dynamic management of embedded coded images in a digital storage device
US6487319B1 (en) * 1998-11-18 2002-11-26 Sarnoff Corporation Apparatus and method for identifying the location of a coding unit
US6208276B1 (en) * 1998-12-30 2001-03-27 At&T Corporation Method and apparatus for sample rate pre- and post-processing to achieve maximal coding gain for transform-based audio encoding and decoding
US6718065B1 (en) * 1999-02-04 2004-04-06 Quvis, Inc. Optimized signal quantification
CA2361410A1 (en) * 1999-02-04 2000-08-10 Quvis, Inc. Optimized signal quantification
KR20010101951A (ko) * 1999-02-04 2001-11-15 추후제출 확률적 공진과 에너지 대체를 사용하여 압축 영상의외형을 개선하는 시스템 및 방법
EP1030524A1 (de) * 1999-02-19 2000-08-23 Alcatel Verfahren zur Kodierung eines digitalen Bildes und Koder
US6215908B1 (en) * 1999-02-24 2001-04-10 Intel Corporation Symmetric filtering based VLSI architecture for image compression
JP2000295618A (ja) * 1999-03-08 2000-10-20 Texas Instr Inc <Ti> 埋込み型ゼロトリーパターン及びビットプレーンを使用する画像符号化方法
US6633679B1 (en) 1999-03-23 2003-10-14 Teletechnologies, Ltd. Visually lossless still image compression for CMYK, CMY and Postscript formats
CN1197253C (zh) 1999-04-15 2005-04-13 株式会社理光 数据高速压缩伸展方法及其装置
US6643406B1 (en) 1999-07-28 2003-11-04 Polaroid Corporation Method and apparatus for performing linear filtering in wavelet based domain
US7065253B2 (en) * 1999-09-03 2006-06-20 Intel Corporation Wavelet zerotree coding of ordered bits
US6594391B1 (en) * 1999-09-03 2003-07-15 Lucent Technologies Inc. Method and apparatus for texture analysis and replicability determination
US6834123B2 (en) * 2001-05-29 2004-12-21 Intel Corporation Method and apparatus for coding of wavelet transformed coefficients
US6956903B2 (en) * 2001-05-29 2005-10-18 Intel Corporation Method and apparatus for three-dimensional wavelet transform
US6771829B1 (en) * 1999-10-23 2004-08-03 Fastvdo Llc Method for local zerotree image coding
US6549673B1 (en) * 1999-10-28 2003-04-15 Lucent Technologies Inc. Wavelet-based compression of images for storage, transmission and reconstruction using hierarchical subband decomposition
JP2001136524A (ja) * 1999-11-02 2001-05-18 Ricoh Co Ltd 圧縮伸長装置
US6912250B1 (en) 1999-11-12 2005-06-28 Cornell Research Foundation Inc. System and methods for precursor cancellation of intersymbol interference in a receiver
TW452708B (en) * 1999-11-24 2001-09-01 Winbond Electronics Corp Architecture for fast compression of 2-dimensional image data
US8204924B1 (en) 1999-12-06 2012-06-19 Hrl Laboratories, Llc Variable precision wavelets
US6671413B1 (en) * 2000-01-24 2003-12-30 William A. Pearlman Embedded and efficient low-complexity hierarchical image coder and corresponding methods therefor
AUPQ618500A0 (en) 2000-03-13 2000-04-06 Canon Kabushiki Kaisha Memory management of compressed images data
US6549674B1 (en) * 2000-10-12 2003-04-15 Picsurf, Inc. Image compression based on tiled wavelet-like transform using edge and non-edge filters
EP1152620A3 (de) * 2000-04-28 2002-09-11 Avxing International Ltd. In Matrixoperation eingebettete Bildcodierung
US7023922B1 (en) * 2000-06-21 2006-04-04 Microsoft Corporation Video coding system and method using 3-D discrete wavelet transform and entropy coding with motion information
US6678422B1 (en) * 2000-08-30 2004-01-13 National Semiconductor Corporation Method and apparatus for image data compression with low memory requirement
US7239424B1 (en) * 2000-09-08 2007-07-03 Ricoh Co., Ltd. Wavelet-based image processing path
WO2002035849A1 (en) * 2000-10-24 2002-05-02 Eyeball Networks Inc. Three-dimensional wavelet-based scalable video compression
AUPR192700A0 (en) 2000-12-06 2001-01-04 Canon Kabushiki Kaisha Storing coding image data in storage of fixed memory size
US7069545B2 (en) * 2000-12-29 2006-06-27 Intel Corporation Quantization and compression for computation reuse
US6895120B2 (en) * 2001-03-30 2005-05-17 Ricoh Co., Ltd. 5,3 wavelet filter having three high pair and low pair filter elements with two pairs of cascaded delays
AUPR433901A0 (en) * 2001-04-10 2001-05-17 Lake Technology Limited High frequency signal construction method
US7028060B2 (en) * 2001-05-07 2006-04-11 Hrl Laboratories Llc Method and apparatus for jointly optimizing linear signal processing filters with subband filters
US6697521B2 (en) * 2001-06-15 2004-02-24 Nokia Mobile Phones Ltd. Method and system for achieving coding gains in wavelet-based image codecs
DE10129240A1 (de) 2001-06-18 2003-01-02 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Verarbeiten von zeitdiskreten Audio-Abtastwerten
US7082450B2 (en) * 2001-08-30 2006-07-25 Nokia Corporation Implementation of a transform and of a subsequent quantization
US7876820B2 (en) * 2001-09-04 2011-01-25 Imec Method and system for subband encoding and decoding of an overcomplete representation of the data structure
JP3796432B2 (ja) * 2001-10-31 2006-07-12 キヤノン株式会社 フィルタ処理装置およびフィルタ処理方法
EP1322119B1 (de) * 2001-11-27 2013-01-09 Samsung Electronics Co., Ltd. Verfahren und Vorrichtung zur Kodierung und Dekodierung von Schlüsseldaten und Schlüsselwerten von Koordinateninterpolator und Aufzeichnungsmedium
FR2834855B1 (fr) * 2002-01-11 2004-04-02 Canon Kk Codage de donnees numeriques avec determination de parcours d'echantillons
US7460722B2 (en) * 2002-01-11 2008-12-02 Canon Kabushiki Kaisha Encoding of digital data with determination of sample path
US7317840B2 (en) * 2002-02-26 2008-01-08 Decegama Angel Methods for real-time software video/audio compression, transmission, decompression and display
US7630569B2 (en) * 2002-02-26 2009-12-08 Decegama Angel Real-time software video/audio transmission and display with content protection against camcorder piracy
US20030198395A1 (en) * 2002-04-19 2003-10-23 Droplet Technology, Inc. Wavelet transform system, method and computer program product
US7447631B2 (en) * 2002-06-17 2008-11-04 Dolby Laboratories Licensing Corporation Audio coding system using spectral hole filling
JP4090293B2 (ja) * 2002-06-28 2008-05-28 三洋電機株式会社 動画像再生装置
JP3902990B2 (ja) * 2002-07-02 2007-04-11 キヤノン株式会社 アダマール変換処理方法及びその装置
DE10229706A1 (de) * 2002-07-02 2004-12-09 T-Mobile Deutschland Gmbh Verfahren zur Speicherplatzverwaltung in einem Speichrmedium eines digitalen Endgeräts bei einer Datenspeicherung nach dem Verfahren der priorisierten Pixelübertragung
US7239754B2 (en) * 2002-07-16 2007-07-03 Hiroshi Akimoto Method, apparatus and system for compressing still images in multipurpose compression systems
DE60330198D1 (de) 2002-09-04 2009-12-31 Microsoft Corp Entropische Kodierung mittels Anpassung des Kodierungsmodus zwischen Niveau- und Lauflängenniveau-Modus
JP2004104347A (ja) * 2002-09-06 2004-04-02 Ricoh Co Ltd 画像処理装置、画像処理方法、プログラム及び記録媒体
JP3956360B2 (ja) * 2002-09-30 2007-08-08 株式会社リコー 撮像装置及び画像処理方法
FR2846179B1 (fr) 2002-10-21 2005-02-04 Medialive Embrouillage adaptatif et progressif de flux audio
JP2004153751A (ja) * 2002-11-01 2004-05-27 Ricoh Co Ltd 画像処理装置及び画像処理方法
US7463782B2 (en) * 2002-11-05 2008-12-09 Canon Kabushiki Kaisha Data encoding with an amplitude model and path between the data and corresponding decoding
US7330597B2 (en) * 2002-11-22 2008-02-12 Texas Instruments Incorporated Image compression
FR2849980B1 (fr) * 2003-01-15 2005-04-08 Medialive Procede pour la distribution de sequences video, decodeur et systeme pour la mise en oeuvre de ce prodede
AU2003900531A0 (en) * 2003-01-30 2003-02-20 Canon Kabushiki Kaisha Compression into a fixed buffer
FR2852179A1 (fr) 2003-03-06 2004-09-10 Thomson Licensing Sa Procede de codage d'une image video
FR2853786B1 (fr) * 2003-04-11 2005-08-05 Medialive Procede et equipement de distribution de produits videos numeriques avec une restriction de certains au moins des droits de representation et de reproduction
JP4135617B2 (ja) * 2003-09-08 2008-08-20 ソニー株式会社 画像符号化装置及び方法
JP4949037B2 (ja) 2003-11-18 2012-06-06 スカラド、アクチボラグ ディジタル画像を処理するための方法および画像表現形式
US20050228654A1 (en) * 2004-03-30 2005-10-13 Yolanda Prieto Method and apparatus for improved bit rate efficiency in wavelet based codecs by means of subband correlation
US7653255B2 (en) 2004-06-02 2010-01-26 Adobe Systems Incorporated Image region of interest encoding
US7570286B2 (en) * 2005-05-27 2009-08-04 Honda Motor Co., Ltd. System and method for creating composite images
GB2429593A (en) * 2005-08-26 2007-02-28 Electrosonic Ltd Data compressing using a wavelet compression scheme
WO2007028241A2 (en) * 2005-09-07 2007-03-15 Universal Data Protection Corporation Method and system for data security of recording media
US20070071331A1 (en) * 2005-09-24 2007-03-29 Xiteng Liu Image compression by economical quaternary reaching method
US20070271250A1 (en) * 2005-10-19 2007-11-22 Monro Donald M Basis selection for coding and decoding of data
JP2007188211A (ja) * 2006-01-12 2007-07-26 Matsushita Electric Ind Co Ltd 画像処理装置、撮像装置、画像処理方法およびそのプログラム
US20070162531A1 (en) * 2006-01-12 2007-07-12 Bhaskar Kota Flow transform for integrated circuit design and simulation having combined data flow, control flow, and memory flow views
US8674855B2 (en) * 2006-01-13 2014-03-18 Essex Pa, L.L.C. Identification of text
US7783079B2 (en) * 2006-04-07 2010-08-24 Monro Donald M Motion assisted data enhancement
US7586424B2 (en) * 2006-06-05 2009-09-08 Donald Martin Monro Data coding using an exponent and a residual
US7845571B2 (en) * 2006-06-19 2010-12-07 Monro Donald M Data compression
US7770091B2 (en) * 2006-06-19 2010-08-03 Monro Donald M Data compression for use in communication systems
US20070290899A1 (en) * 2006-06-19 2007-12-20 Donald Martin Monro Data coding
EP2051499B1 (de) * 2006-07-13 2015-09-09 NEC Corporation Wavelet-basierte kodierungs- und dekodierungseinrichtung und kodierungsverfahren und dekodierungsverfahren von bildern
JP4182446B2 (ja) * 2006-07-14 2008-11-19 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
US7689049B2 (en) * 2006-08-31 2010-03-30 Donald Martin Monro Matching pursuits coding of data
US7508325B2 (en) * 2006-09-06 2009-03-24 Intellectual Ventures Holding 35 Llc Matching pursuits subband coding of data
US7974488B2 (en) * 2006-10-05 2011-07-05 Intellectual Ventures Holding 35 Llc Matching pursuits basis selection
US20080084924A1 (en) * 2006-10-05 2008-04-10 Donald Martin Monro Matching pursuits basis selection design
JP4732316B2 (ja) * 2006-12-07 2011-07-27 キヤノン株式会社 画像処理装置、記録装置、画像処理方法、プログラム、および記憶媒体
US8411734B2 (en) 2007-02-06 2013-04-02 Microsoft Corporation Scalable multi-thread video decoding
US7707213B2 (en) * 2007-02-21 2010-04-27 Donald Martin Monro Hierarchical update scheme for extremum location
US7707214B2 (en) * 2007-02-21 2010-04-27 Donald Martin Monro Hierarchical update scheme for extremum location with indirect addressing
US20080205505A1 (en) * 2007-02-22 2008-08-28 Donald Martin Monro Video coding with motion vectors determined by decoder
US10194175B2 (en) * 2007-02-23 2019-01-29 Xylon Llc Video coding with embedded motion
US20080218809A1 (en) * 2007-03-08 2008-09-11 Wen Wu Chen Method and architecture of sending and receiving facsimile over instant messaging software
WO2008126139A1 (ja) * 2007-03-30 2008-10-23 Fujitsu Limited 画像データ圧縮装置及び復号装置
BR122018004904B1 (pt) 2007-04-12 2019-11-05 Dolby Int Ab ladrilhamento em codificação e decodificação de vídeo
EP1980956A1 (de) * 2007-04-12 2008-10-15 Deutsche Thomson OHG Verfahren und Vorrichtung zur selektiven Geräuschreduzierung in einem digitalen Signal
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US7990289B2 (en) * 2007-07-12 2011-08-02 Intellectual Ventures Fund 44 Llc Combinatorial coding/decoding for electrical computers and digital data processing systems
US7737869B2 (en) * 2007-07-12 2010-06-15 Monro Donald M Symbol based data compression
US7545291B2 (en) * 2007-07-12 2009-06-09 Donald Martin Monro FIFO radix coder for electrical computers and digital data processing systems
US7511638B2 (en) * 2007-07-12 2009-03-31 Monro Donald M Data compression for communication between two or more components in a system
US8055085B2 (en) * 2007-07-12 2011-11-08 Intellectual Ventures Fund 44 Llc Blocking for combinatorial coding/decoding for electrical computers and digital data processing systems
US7671767B2 (en) * 2007-07-12 2010-03-02 Donald Martin Monro LIFO radix coder for electrical computers and digital data processing systems
US7511639B2 (en) * 2007-07-12 2009-03-31 Monro Donald M Data compression for communication between two or more components in a system
US7548176B2 (en) * 2007-07-12 2009-06-16 Donald Martin Monro Data coding buffer for electrical computers and digital data processing systems
US7602316B2 (en) * 2007-07-12 2009-10-13 Monro Donald M Data coding/decoding for electrical computers and digital data processing systems
US8144037B2 (en) * 2007-07-12 2012-03-27 Intellectual Ventures Fund 44 Llc Blocking for combinatorial coding/decoding for electrical computers and digital data processing systems
GB0716158D0 (en) * 2007-08-17 2007-09-26 Imagination Tech Ltd Data compression
US8238677B2 (en) * 2008-03-07 2012-08-07 International Business Machines Corporation Adaptive lossless data compression method for compression of color image data
JP4875649B2 (ja) * 2008-03-19 2012-02-15 株式会社リコー 画像処理装置、画像処理方法および画像処理プログラム
US8179974B2 (en) 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
US20100002147A1 (en) * 2008-07-02 2010-01-07 Horizon Semiconductors Ltd. Method for improving the deringing filter
US8406307B2 (en) 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
US7786903B2 (en) * 2008-10-06 2010-08-31 Donald Martin Monro Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US7864086B2 (en) * 2008-10-06 2011-01-04 Donald Martin Monro Mode switched adaptive combinatorial coding/decoding for electrical computers and digital data processing systems
US7791513B2 (en) * 2008-10-06 2010-09-07 Donald Martin Monro Adaptive combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US7786907B2 (en) * 2008-10-06 2010-08-31 Donald Martin Monro Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
KR101676059B1 (ko) * 2009-01-26 2016-11-14 톰슨 라이센싱 비디오 코딩을 위한 프레임 패킹
EP2382777A4 (de) * 2009-01-27 2012-08-15 Thomson Licensing Verfahren und vorrichtung zur transformationsauswahl bei der videokodierung und -dekodierung
CN102131081A (zh) * 2010-01-13 2011-07-20 华为技术有限公司 混合维度编解码方法和装置
JP5722349B2 (ja) 2010-01-29 2015-05-20 トムソン ライセンシングThomson Licensing ブロックに基づくインターリーブ
US8559741B2 (en) * 2010-06-02 2013-10-15 Altek Corporation Lossless image compression method
AU2011292589B2 (en) 2010-08-17 2015-03-19 Samsung Electronics Co., Ltd. Video encoding method and apparatus using transformation unit of variable tree structure, and video decoding method and apparatus
AU2015203104B2 (en) * 2010-08-17 2016-06-30 Samsung Electronics Co., Ltd. Video encoding method and apparatus using transformation unit of variable tree structure, and video decoding method and apparatus
US8793391B2 (en) * 2010-11-30 2014-07-29 Deutsche Telekom Ag Distortion-aware multihomed scalable video streaming to multiple clients
US9706214B2 (en) * 2010-12-24 2017-07-11 Microsoft Technology Licensing, Llc Image and video decoding implementations
US8917950B2 (en) * 2011-01-18 2014-12-23 Sony Corporation Simplifying parametric loop filters
US8494290B2 (en) * 2011-05-05 2013-07-23 Mitsubishi Electric Research Laboratories, Inc. Method for coding pictures using hierarchical transform units
US8537171B2 (en) * 2011-05-13 2013-09-17 Samsung Display Co., Ltd. Piecewise non-causal compression and subsequent decompression of quantized data for processing of decompressed data in higher precision processing space
US9948928B2 (en) 2011-07-20 2018-04-17 Nxp Usa, Inc. Method and apparatus for encoding an image
US8731067B2 (en) 2011-08-31 2014-05-20 Microsoft Corporation Memory management for video decoding
US20130117418A1 (en) * 2011-11-06 2013-05-09 Akamai Technologies Inc. Hybrid platform for content delivery and transcoding
US9819949B2 (en) 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
JP5966346B2 (ja) * 2011-12-21 2016-08-10 ソニー株式会社 画像処理装置および方法
JP5966347B2 (ja) * 2011-12-21 2016-08-10 ソニー株式会社 画像処理装置および方法
US10230959B2 (en) * 2012-06-01 2019-03-12 Nxp Usa, Inc. Method and apparatus for performing compression of image data
KR102056686B1 (ko) * 2013-02-18 2019-12-18 삼성디스플레이 주식회사 영상 처리부, 이를 포함하는 표시 장치 및 이를 이용한 영상 처리 방법
FR3005816B1 (fr) * 2013-05-17 2019-11-29 Jean-Claude Colin Procede pour encoder, notamment des images compressees, notamment par "range coder" ou compression arithmetique.
US9485456B2 (en) 2013-12-30 2016-11-01 Akamai Technologies, Inc. Frame-rate conversion in a distributed computing system
US9357232B2 (en) 2014-10-28 2016-05-31 Sony Corporation Image processing system with binary decomposition and method of operation thereof
US9674554B2 (en) 2014-10-28 2017-06-06 Sony Corporation Image processing system with coding mode and method of operation thereof
US9357237B2 (en) 2014-10-28 2016-05-31 Sony Corporation Image processing system with bitstream reduction and method of operation thereof
US10063889B2 (en) 2014-10-28 2018-08-28 Sony Corporation Image processing system with conditional coding and method of operation thereof
US10356410B2 (en) 2014-10-28 2019-07-16 Sony Corporation Image processing system with joint encoding and method of operation thereof
US9294782B1 (en) 2014-10-28 2016-03-22 Sony Corporation Image processing system with artifact reduction mechanism and method of operation thereof
EP3350993A1 (de) 2015-09-18 2018-07-25 Koninklijke Philips N.V. Verfahren und vorrichtung für schnelle und effiziente kompression und dekompression von bildern
US9992252B2 (en) 2015-09-29 2018-06-05 Rgb Systems, Inc. Method and apparatus for adaptively compressing streaming video
US10462490B2 (en) * 2015-11-06 2019-10-29 Raytheon Company Efficient video data representation and content based video retrieval framework
AU2017204643B2 (en) 2017-07-07 2020-05-14 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data
GB2605931B (en) * 2017-10-18 2023-05-10 Frank Donnelly Stephen Entropy and value based packet truncation
CN111713104B (zh) * 2018-02-14 2022-04-26 索尼公司 图像处理装置和方法
CN110545445A (zh) * 2018-05-28 2019-12-06 深信服科技股份有限公司 一种视频压缩方法及装置、服务器及计算机可读存储介质
CN108880604B (zh) * 2018-06-28 2021-05-14 河南机电职业学院 一种扩频通信系统中多分量调频干扰抑制方法和装置
CN109067405B (zh) * 2018-07-27 2022-10-11 深圳市元征科技股份有限公司 一种数据压缩的方法、装置、终端及计算机可读存储介质
WO2021197407A1 (en) * 2020-04-02 2021-10-07 Beijing Bytedance Network Technology Co., Ltd. Video coding using adaptation parameter sets

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5014134A (en) * 1989-09-11 1991-05-07 Aware, Inc. Image compression method and apparatus
US5272478A (en) * 1992-08-17 1993-12-21 Ricoh Corporation Method and apparatus for entropy coding
US5381145A (en) * 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data

Family Cites Families (139)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3506327A (en) 1964-04-23 1970-04-14 Battelle Development Corp Wavefront reconstruction using a coherent reference beam
US3950103A (en) 1972-10-27 1976-04-13 Canadian Patents And Development Limited Method and apparatus to determine spatial distribution of magnitude and phase of electro-magnetic fields especially optical fields
DE2640140C2 (de) 1976-09-07 1982-10-07 Philips Patentverwaltung Gmbh, 2000 Hamburg Verfahren und Anordnung zur redundanzvermindernden Bildcodierung
DE2640157C2 (de) 1976-09-07 1982-10-07 Philips Patentverwaltung Gmbh, 2000 Hamburg Verfahren und Anordnung zum redundanzvermindernden Codieren von Bildern
US4136954A (en) 1976-12-29 1979-01-30 Jamieson John A Imaging apparatus including spatial-spectral interferometer
US4223354A (en) 1978-08-30 1980-09-16 General Electric Company Phase corrected raster scanned light modulator and a variable frequency oscillator for effecting phase correction
US4393456A (en) 1981-03-19 1983-07-12 Bell Telephone Laboratories, Incorporated Digital filter bank
DE3171311D1 (en) 1981-07-28 1985-08-14 Ibm Voice coding method and arrangment for carrying out said method
US4437087A (en) * 1982-01-27 1984-03-13 Bell Telephone Laboratories, Incorporated Adaptive differential PCM coding
US4674125A (en) 1983-06-27 1987-06-16 Rca Corporation Real-time hierarchal pyramid signal processing apparatus
US4599567A (en) 1983-07-29 1986-07-08 Enelf Inc. Signal representation generator
US4652881A (en) 1984-01-10 1987-03-24 Lewis Bernard L Efficient adaptive filter bank
FR2577084B1 (fr) 1985-02-01 1987-03-20 Trt Telecom Radio Electr Systeme de bancs de filtres d'analyse et de synthese d'un signal
US4701006A (en) 1985-02-20 1987-10-20 Stanford University Optical-digital hologram recording
US4751742A (en) * 1985-05-07 1988-06-14 Avelex Priority coding of transform coefficients
GB2181318B (en) 1985-10-04 1989-12-28 Sony Corp Two-dimensional finite impulse response filters
US4760563A (en) 1986-01-09 1988-07-26 Schlumberger Technology Corporation Seismic exploration using exactly invertible discrete transformation into tau-p space
US4929223A (en) 1986-02-18 1990-05-29 Adolph Coors Company Packaging alignment system
DE3732085A1 (de) 1986-03-26 1989-04-06 Ant Nachrichtentech Digitaler filterbaum
US4663660A (en) 1986-06-20 1987-05-05 Rca Corporation Compressed quantized image-data transmission technique suitable for use in teleconferencing
GB8621994D0 (en) * 1986-09-12 1986-10-22 Crosfield Electronics Ltd Image processing
US4868868A (en) 1986-09-30 1989-09-19 Oki Electric Industry Co., Ltd. Sub-band speech analyzing and synthesizing device
FR2606576B1 (fr) 1986-11-07 1989-02-03 Labo Electronique Physique Dispositif pour transmettre des images de television haute definition dans des canaux a bande etroite
GB2197766B (en) 1986-11-17 1990-07-25 Sony Corp Two-dimensional finite impulse response filter arrangements
US4815023A (en) 1987-05-04 1989-03-21 General Electric Company Quadrature mirror filters with staggered-phase subsampling
US4817182A (en) 1987-05-04 1989-03-28 General Electric Company Truncated subband coding of images
US4774574A (en) * 1987-06-02 1988-09-27 Eastman Kodak Company Adaptive block transform image coding method and apparatus
BE1000643A5 (fr) * 1987-06-05 1989-02-28 Belge Etat Procede de codage de signaux d'image.
DE3853555T2 (de) 1987-06-09 1995-08-17 Sony Corp Verarbeitung des Bewegungsvektors in digitalen Fernsehbildern.
US4837517A (en) 1987-07-16 1989-06-06 Schlumberger Technology Corporation Spatial frequency method and apparatus for investigating earth conductivity with high vertical resolution by induction techniques
US4785349A (en) 1987-10-05 1988-11-15 Technology Inc. 64 Digital video decompression system
US4936665A (en) 1987-10-25 1990-06-26 Whitney Theodore R High resolution imagery systems and methods
US5156943A (en) 1987-10-25 1992-10-20 Whitney Theodore R High resolution imagery systems and methods
US5028995A (en) * 1987-10-28 1991-07-02 Hitachi, Ltd. Picture signal processor, picture signal coder and picture signal interpolator
US4827336A (en) 1987-12-18 1989-05-02 General Electric Company Symbol code generation processing from interframe DPCM of TDM'd spatial-frequency analyses of video signals
US5001764A (en) 1988-03-25 1991-03-19 Texas Instruments Incorporated Guardbands for pattern inspector
US5018210A (en) 1988-03-25 1991-05-21 Texas Instruments Incorporated Pattern comparator with substage illumination and polygonal data representation
US4985927A (en) 1988-03-25 1991-01-15 Texas Instruments Incorporated Method of detecting and reviewing pattern defects
US5095447A (en) 1988-03-25 1992-03-10 Texas Instruments Incorporated Color overlay of scanned and reference images for display
US4897717A (en) 1988-03-30 1990-01-30 Starsignal, Inc. Computer-based video compression system
EP0339589A3 (de) * 1988-04-28 1992-01-02 Sharp Kabushiki Kaisha Orthogonales Transformationskodierungssystem für Bilddaten
US4982283A (en) 1988-05-06 1991-01-01 General Electric Company Line-sequential pyramid processing of a plurality of raster-scanned image variables
US4899147A (en) * 1988-06-03 1990-02-06 Unisys Corporation Data compression/decompression apparatus with throttle, start-up and backward read controls
US4829378A (en) 1988-06-09 1989-05-09 Bell Communications Research, Inc. Sub-band coding of images with low computational complexity
US4904073A (en) 1988-08-10 1990-02-27 Aware, Inc. Fractal tiling for multiple mirror optical devices
FR2637400B1 (fr) 1988-09-30 1990-11-09 Labo Electronique Physique Dispositif de traitement ameliore d'un signal echographique
US4929946A (en) * 1989-02-09 1990-05-29 Storage Technology Corporation Adaptive data compression apparatus including run length encoding for a tape drive system
FR2643986B1 (fr) 1989-03-03 1991-05-17 Thomson Csf Procede d'analyse d'un signal par ondelettes
US4918524A (en) 1989-03-14 1990-04-17 Bell Communications Research, Inc. HDTV Sub-band coding using IIR filter bank
JPH02305182A (ja) 1989-05-19 1990-12-18 Fuji Photo Film Co Ltd 画像信号圧縮符号化装置
US5072308A (en) 1989-06-21 1991-12-10 International Mobile Machines Corporation Communication signal compression system and method
US4987480A (en) 1989-07-11 1991-01-22 Massachusetts Institute Of Technology Multiscale coding of images
US4974187A (en) 1989-08-02 1990-11-27 Aware, Inc. Modular digital signal processing system
US5073964A (en) 1989-08-04 1991-12-17 Aware, Inc. Signal processing device and method
US5241395A (en) * 1989-08-07 1993-08-31 Bell Communications Research, Inc. Adaptive transform coding using variable block size
US5235435A (en) 1989-11-08 1993-08-10 Adobe Systems Incorporated Method of producing halftone images
US5097261A (en) * 1989-11-22 1992-03-17 International Business Machines Corporation Data compression for recording on a record medium
US5173880A (en) 1989-12-26 1992-12-22 Exxon Production Research Company Method of generating seismic wavelets using seismic range equation
US5068911A (en) 1990-02-09 1991-11-26 Aware, Inc. Method and apparatus for representing an image
US5103306A (en) 1990-03-28 1992-04-07 Transitions Research Corporation Digital image compression employing a resolution gradient
US4999705A (en) * 1990-05-03 1991-03-12 At&T Bell Laboratories Three dimensional motion compensated video coding
US5384725A (en) * 1990-05-18 1995-01-24 Yale University Method and apparatus for encoding and decoding using wavelet-packets
DE4016172C1 (de) 1990-05-19 1991-03-28 Werner 5900 Siegen De Ackermann
US5101446A (en) 1990-05-31 1992-03-31 Aware, Inc. Method and apparatus for coding an image
US5128757A (en) 1990-06-18 1992-07-07 Zenith Electronics Corporation Video transmission system using adaptive sub-band coding
ATE143758T1 (de) 1990-07-11 1996-10-15 Philips Electronics Nv Vorrichtung zur ableitung eines kompatiblen zeilensprungfernsehsignals mit geringer auflösung und anderen komponenten eines hochauflösenden zeilensprungfernsehsignals sowie vorrichtung zur wiederherstellung des originalsignals
US5148498A (en) 1990-08-01 1992-09-15 Aware, Inc. Image coding apparatus and method utilizing separable transformations
US5081645A (en) 1990-08-06 1992-01-14 Aware, Inc. Novel spread spectrum codec apparatus and method
US5128791A (en) 1990-08-13 1992-07-07 Bell Communications Research, Inc. Multi-channel HDTV system
US5097331A (en) 1990-08-24 1992-03-17 Bell Communications Research, Inc. Multiple block-size transform video coding using an asymmetric sub-band structure
US5049992A (en) 1990-08-27 1991-09-17 Zenith Electronics Corporation HDTV system with receivers operable at different levels of resolution
US5049993A (en) 1990-10-03 1991-09-17 Bell Communications Research, Inc. Format conversion preprocessing method and circuit
GB2252002B (en) * 1991-01-11 1995-01-04 Sony Broadcast & Communication Compression of video signals
JP3012698B2 (ja) * 1991-01-29 2000-02-28 オリンパス光学工業株式会社 画像データの符号化装置および符号化方法
US5121191A (en) 1991-03-15 1992-06-09 Aware, Inc. Method and apparatus for coding motion pictures
US5276525A (en) * 1991-03-22 1994-01-04 Bell Communications Research, Inc. Two-dimensional block scanning for subband image and video coding
US5262958A (en) 1991-04-05 1993-11-16 Texas Instruments Incorporated Spline-wavelet signal analyzers and methods for processing signals
JPH04323963A (ja) * 1991-04-23 1992-11-13 Canon Inc 画像処理方法及び装置
US5235434A (en) * 1991-06-27 1993-08-10 Polaroid Corporation Method and apparatus for selectively adjusting the brightness of large regions of an image
US5315670A (en) * 1991-11-12 1994-05-24 General Electric Company Digital data compression system including zerotree coefficient coding
GB2262854B (en) * 1991-12-24 1995-05-24 Sony Broadcast & Communication Image processing apparatus
US5347479A (en) * 1991-12-27 1994-09-13 Nec Corporation Small-size wavelet transform apparatus
CA2088082C (en) * 1992-02-07 1999-01-19 John Hartung Dynamic bit allocation for three-dimensional subband video coding
US5321776A (en) * 1992-02-26 1994-06-14 General Electric Company Data compression system including successive approximation quantizer
KR0150955B1 (ko) * 1992-05-27 1998-10-15 강진구 비트고정을 위한 영상압축방법과 신장방법 및 그 장치
US5511151A (en) * 1992-06-10 1996-04-23 Canon Information Systems, Inc. Method and apparatus for unwinding image data
US5303200A (en) * 1992-07-02 1994-04-12 The Boeing Company N-dimensional multi-port memory
US5379355A (en) * 1992-08-24 1995-01-03 Ricoh Corporation Data encoding using one or more adaptive decision trees
JPH06125543A (ja) * 1992-10-12 1994-05-06 Toshiba Corp 符号化装置
US5638498A (en) * 1992-11-10 1997-06-10 Adobe Systems Incorporated Method and apparatus for reducing storage requirements for display data
US5631977A (en) * 1992-12-08 1997-05-20 Fuji Xerox Co., Ltd. Encoding device for encoding an image along an order determined by resolution tone level
JP3293920B2 (ja) * 1993-01-22 2002-06-17 キヤノン株式会社 画像処理装置およびその方法
US5412741A (en) 1993-01-22 1995-05-02 David Sarnoff Research Center, Inc. Apparatus and method for compressing information
US5563960A (en) * 1993-01-22 1996-10-08 David Sarnoff Research Center, Inc. Apparatus and method for emphasizing a selected region in the compressed representation of an image
US5414780A (en) * 1993-01-27 1995-05-09 Immix Method and apparatus for image data transformation
IL104636A (en) * 1993-02-07 1997-06-10 Oli V R Corp Ltd Apparatus and method for encoding and decoding digital signals
US5583500A (en) * 1993-02-10 1996-12-10 Ricoh Corporation Method and apparatus for parallel encoding and decoding of data
US5420891A (en) 1993-03-18 1995-05-30 New Jersey Institute Of Technology Multiplierless 2-band perfect reconstruction quadrature mirror filter (PR-QMF) banks
US5546477A (en) * 1993-03-30 1996-08-13 Klics, Inc. Data compression and decompression
WO1994023385A2 (en) 1993-03-30 1994-10-13 Adrian Stafford Lewis Data compression and decompression
JPH07168809A (ja) 1993-03-30 1995-07-04 Klics Ltd ウェーブレット変換方法及びウェーブレット変換回路
JP3499254B2 (ja) 1993-06-04 2004-02-23 富士写真フイルム株式会社 画像データ圧縮処理方法
GB2281465B (en) * 1993-08-27 1997-06-04 Sony Uk Ltd Image data compression
US5495292A (en) 1993-09-03 1996-02-27 Gte Laboratories Incorporated Inter-frame wavelet transform coder for color video compression
US5717789A (en) * 1993-09-08 1998-02-10 California Institute Of Technology Image enhancement by non-linear extrapolation in frequency space
JP3282138B2 (ja) 1993-09-08 2002-05-13 富士写真フイルム株式会社 画像データ圧縮処理方法および画像データ再構成方法
IL107658A0 (en) 1993-11-18 1994-07-31 State Of Israel Ministy Of Def A system for compaction and reconstruction of wavelet data
US5453945A (en) * 1994-01-13 1995-09-26 Tucker; Michael R. Method for decomposing signals into efficient time-frequency representations for data compression and recognition
CA2180240A1 (en) * 1994-01-14 1995-07-20 Charles K. Chui Boundary-spline-wavelet compression for video images
US5541594A (en) * 1994-03-28 1996-07-30 Utah State University Foundation Fixed quality source coder with fixed threshold
US5534925A (en) * 1994-05-02 1996-07-09 Cognitech Inc. Image compression by optimal reconstruction
US5602589A (en) 1994-08-19 1997-02-11 Xerox Corporation Video image compression using weighted wavelet hierarchical vector quantization
US5748786A (en) * 1994-09-21 1998-05-05 Ricoh Company, Ltd. Apparatus for compression using reversible embedded wavelets
US6195465B1 (en) * 1994-09-21 2001-02-27 Ricoh Company, Ltd. Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US5867602A (en) * 1994-09-21 1999-02-02 Ricoh Corporation Reversible wavelet transform and embedded codestream manipulation
US5966465A (en) * 1994-09-21 1999-10-12 Ricoh Corporation Compression/decompression using reversible embedded wavelets
US5881176A (en) * 1994-09-21 1999-03-09 Ricoh Corporation Compression and decompression with wavelet style and binary style including quantization by device-dependent parser
US5604824A (en) 1994-09-22 1997-02-18 Houston Advanced Research Center Method and apparatus for compression and decompression of documents and the like using splines and spline-wavelets
GB2295936B (en) * 1994-12-05 1997-02-05 Microsoft Corp Progressive image transmission using discrete wavelet transforms
KR0159434B1 (ko) * 1995-04-19 1999-01-15 김광호 휴먼 비쥬얼 시스템 모델링을 이용한 웨이블렛 영상 압축/복원장치 및 방법
JP2840589B2 (ja) * 1996-02-09 1998-12-24 富士通株式会社 データ圧縮装置及びデータ復元装置
US6088062A (en) * 1996-10-29 2000-07-11 Sony Corporation Picture signal processing apparatus
US6031940A (en) * 1996-11-27 2000-02-29 Teralogic, Inc. System and method for efficiently encoding video frame sequences
US5909518A (en) * 1996-11-27 1999-06-01 Teralogic, Inc. System and method for performing wavelet-like and inverse wavelet-like transformations of digital data
US6020975A (en) * 1996-12-20 2000-02-01 Apple Computer, Inc. System and method for accelerated data recompression
US5999656A (en) * 1997-01-17 1999-12-07 Ricoh Co., Ltd. Overlapped reversible transforms for unified lossless/lossy compression
TW341018B (en) * 1997-09-23 1998-09-21 Winbond Electronics Corp The compress and de-compress apparatus for video signal and its method
US6237010B1 (en) * 1997-10-06 2001-05-22 Canon Kabushiki Kaisha Multimedia application using flashpix file format
US6229929B1 (en) * 1998-05-14 2001-05-08 Interval Research Corporation Border filtering of video signal blocks
US6236765B1 (en) * 1998-08-05 2001-05-22 Intel Corporation DWT-based up-sampling algorithm suitable for image display in an LCD panel
US6263109B1 (en) * 1998-09-25 2001-07-17 Hewlett-Packard Company Context-based ordering and coding of transform coefficient bit-planes for embedded bitstreams
SE513353C2 (sv) * 1998-10-21 2000-08-28 Ericsson Telefon Ab L M Partiell hämtning av bilder i den komprimerade domänen
US6201897B1 (en) * 1998-11-09 2001-03-13 Earth Resource Mapping Transformation and selective inverse transformation of large digital images
US6356668B1 (en) * 1998-12-29 2002-03-12 Eastman Kodak Company Method for efficient rate control
US6339658B1 (en) * 1999-03-09 2002-01-15 Rockwell Science Center, Llc Error resilient still image packetization method and packet structure
US6546143B1 (en) * 1999-03-12 2003-04-08 Hewlett-Packard Development Company Efficient wavelet-based compression of large images
US6350989B1 (en) * 1999-04-23 2002-02-26 Sandia National Laboratories Wafer-fused semiconductor radiation detector
US6549673B1 (en) * 1999-10-28 2003-04-15 Lucent Technologies Inc. Wavelet-based compression of images for storage, transmission and reconstruction using hierarchical subband decomposition
JP4367880B2 (ja) * 1999-12-09 2009-11-18 キヤノン株式会社 画像処理装置及びその方法並びに記憶媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5014134A (en) * 1989-09-11 1991-05-07 Aware, Inc. Image compression method and apparatus
US5272478A (en) * 1992-08-17 1993-12-21 Ricoh Corporation Method and apparatus for entropy coding
US5381145A (en) * 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
PENNEBAKER,W.B., et al.: An overview of the basic principles of the Q-loder adaptive binary arith- metic coder. In: IBM J.Res. Developement, Vol.32, No.6, Nov 1988 *
Shapiro,J.: An Embedded Hirarchical Image. Coder Using Zerotrees of Wavelet Coefficients". In: Proc. IEEE Data Compression Conference, S.214-223, 1993
Shapiro,J.: An Embedded Hirarchical Image. Coder Using Zerotrees of Wavelet Coefficients". In: Proc. IEEE Data Compression Conference, S.214-223,1993 *

Also Published As

Publication number Publication date
JP3436832B2 (ja) 2003-08-18
DE19534943A1 (de) 1996-03-28
JP2003179498A (ja) 2003-06-27
JP2005304055A (ja) 2005-10-27
JP2005304056A (ja) 2005-10-27
NL1001248C2 (nl) 1997-06-04
JP2005304054A (ja) 2005-10-27
US7492955B2 (en) 2009-02-17
NL1001248A1 (nl) 1996-03-21
US20070116369A1 (en) 2007-05-24
US6222941B1 (en) 2001-04-24
US20060222254A1 (en) 2006-10-05
US5748786A (en) 1998-05-05
JP3800552B2 (ja) 2006-07-26
JPH08139935A (ja) 1996-05-31
JP2003274186A (ja) 2003-09-26

Similar Documents

Publication Publication Date Title
DE19534943B4 (de) Vorrichtung zur Komprimierung unter Verwendung von eingebetteten Kleinwellen
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
DE19534730B4 (de) Verfahren zum Codieren und Decodieren von Daten
US7215820B2 (en) Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
DE69628760T2 (de) Speicherung und wiedergewinnung von grossen digitalen bildern
GB2293733A (en) Apparatus for image data compression using reversible embedded waveletts
DE19819405B4 (de) Implementation eines reversiblen eingebetteten Wavelet-Systems
GB2302244A (en) Wavelet transform filter
GB2313757A (en) Method using an embedded codestream

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20140401