DE19534730A1 - Verfahren zum Codieren und Decodieren von Daten - Google Patents
Verfahren zum Codieren und Decodieren von DatenInfo
- Publication number
- DE19534730A1 DE19534730A1 DE19534730A DE19534730A DE19534730A1 DE 19534730 A1 DE19534730 A1 DE 19534730A1 DE 19534730 A DE19534730 A DE 19534730A DE 19534730 A DE19534730 A DE 19534730A DE 19534730 A1 DE19534730 A1 DE 19534730A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- bit
- block
- coefficients
- pass
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title description 9
- 230000002441 reversible effect Effects 0.000 claims abstract description 57
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 50
- 238000000034 method Methods 0.000 claims description 199
- 230000009466 transformation Effects 0.000 claims description 69
- 238000001914 filtration Methods 0.000 claims description 32
- 230000001131 transforming effect Effects 0.000 claims 2
- 230000008569 process Effects 0.000 description 147
- 238000012545 processing Methods 0.000 description 132
- 230000015654 memory Effects 0.000 description 127
- 238000007906 compression Methods 0.000 description 52
- 230000006835 compression Effects 0.000 description 52
- 238000010586 diagram Methods 0.000 description 33
- 238000003860 storage Methods 0.000 description 21
- 239000000872 buffer Substances 0.000 description 17
- 230000002829 reductive effect Effects 0.000 description 15
- 238000004458 analytical method Methods 0.000 description 11
- 238000013139 quantization Methods 0.000 description 11
- 230000015572 biosynthetic process Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 10
- 230000006837 decompression Effects 0.000 description 9
- 238000000844 transformation Methods 0.000 description 9
- 238000003786 synthesis reaction Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000036961 partial effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000013144 data compression Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 239000002131 composite material Substances 0.000 description 3
- 230000001143 conditioned effect Effects 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 3
- 238000011835 investigation Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 241001465754 Metazoa Species 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 230000001364 causal effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005755 formation reaction Methods 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- PXMNMQRDXWABCY-UHFFFAOYSA-N 1-(4-chlorophenyl)-4,4-dimethyl-3-(1H-1,2,4-triazol-1-ylmethyl)pentan-3-ol Chemical compound C1=NC=NN1CC(O)(C(C)(C)C)CCC1=CC=C(Cl)C=C1 PXMNMQRDXWABCY-UHFFFAOYSA-N 0.000 description 1
- FGRBYDKOBBBPOI-UHFFFAOYSA-N 10,10-dioxo-2-[4-(N-phenylanilino)phenyl]thioxanthen-9-one Chemical compound O=C1c2ccccc2S(=O)(=O)c2ccc(cc12)-c1ccc(cc1)N(c1ccccc1)c1ccccc1 FGRBYDKOBBBPOI-UHFFFAOYSA-N 0.000 description 1
- 241000282376 Panthera tigris Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 229910052729 chemical element Inorganic materials 0.000 description 1
- 239000003638 chemical reducing agent Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 210000003608 fece Anatomy 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000037452 priming Effects 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/148—Wavelet transforms
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/162—User input
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/167—Position within a video image, e.g. region of interest [ROI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/36—Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
- H04N19/635—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
- H04N19/64—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
- H04N19/647—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/98—Adaptive-dynamic-range coding [ADRC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2383—Channel coding or modulation of digital bit-stream, e.g. QPSK modulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
- H04N21/4382—Demodulation or channel decoding, e.g. QPSK demodulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6377—Control signals issued by the client directed to the server or network components directed to server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6377—Control signals issued by the client directed to the server or network components directed to server
- H04N21/6379—Control signals issued by the client directed to the server or network components directed to server directed to encoder, e.g. for requesting a lower encoding rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/115—Selection of the code volume for a coding unit prior to coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Image Processing (AREA)
Description
Die Erfindung betrifft Verfahren zum Codieren und Decodieren von
Daten und betrifft darüber hinaus das Gebiet von Daten-Kompres
sions- und Dekompressionssystemen. Insbesondere betrifft die Er
findung ein Verfahren und eine Einrichtung zum verlustfreien und
verlustbehafteten Codieren und Decodieren von Daten in Kompres
sions/Dekompressionssystemen.
Die Datenkompression ist ein äußerst brauchbares Werkzeug, um
große Datenmengen zu speichern und zu übertragen. Beispielsweise
wird die Zeit, die zum Übertragen eines Bildes, beispielsweise
eine Faksimileübertragung eines Dokuments erforderlich ist, dra
stisch reduziert, wenn die Kompression angewendet wird, um die
Anzahl an Bits zu verringern, die erforderlich sind, um das Bild
neu zu erzeugen.
Im Stand der Technik gibt es viele verschiedene Datenkompres
sionstechniken, welche in zwei große Kategorien eingeteilt wer
den, nämlich ein verlustbehaftetes und ein verlustfreies Codie
ren. Verlustbehaftetes Codieren schließt ein Codieren ein, das
auf einen Informationsverlust hinausläuft, so daß es keine Ga
rantie für eine einwandfreie Rekonstruktion der ursprünglichen
Daten gibt. Das Ziel einer verlustbehafteten Kompression besteht
darin, daß Änderungen in den ursprünglichen Daten in einer sol
chen Weise ausgeführt werden, daß sie nicht zu beanstanden oder
feststellbar sind. Bei der verlustfreien Kompression wird die
gesamte Information zurückerhalten, und die Daten werden in
einer Weise komprimiert, welche eine einwandfreie Rekonstruk
tion ermöglicht.
Bei der verlustfreien Kompression werden eingegebene Symbole
oder Intensitätsdaten in ausgegebene Codeworte umgewandelt. Die
Eingabe kann ein Bild, einen Ton, eindimensionale Daten (z. B.
Daten, die sich räumlich oder zeitlich ändern) zweidimensionale
Daten (z. B. Daten, die sich in zwei räumlichen Richtungen (oder
einer räumlichen und einer zeitlichen Dimension) ändern) oder
mehrdimensionale (mehrere spektrale) Daten enthalten. Wenn die
Kompression erfolgreich ist, werden die Codeworte in weniger
Bits dargestellt als die Anzahl Bits, welche für die uncodier
ten eingegebenen Symbole (oder Intensitätsdaten) erforderlich
sind. Verlustfreie Codierverfahren schließen Wörterbuch-Codier
verfahren (z. B. Lempel-Ziv), ein Lauflängen-Codieren, ein enu
meratives Codieren und ein Entropie-Codieren ein. Bei der ver
lustfreien Bildkompression basiert eine Kompression auf Prädik
tionen oder Kontexten plus Codieren. Die JBIG-Norm für Faksimi
le-Kompression und Differenzen-Pulscodemodulation (DPCM-Verfah
ren - eine Option in der JPEG-Norm) für fortlaufende Ton-Bilder
sind Beispiele für eine verlustfreie Kompression von Bildern.
Bei der verlustbehafteten Kompression werden eingegebene Symbo
le oder Intensitätsdaten vor einer Umsetzung quantisiert, um
Codeworte auszugeben. Eine Quantisierung wird gewünscht, um re
levante Kenngrößen der Daten zu konservieren, während unwichti
ge Kenndaten beseitigt werden. Vor einer Quantisierung benutzt
ein verlustbehaftetes Kompressionssystem oft eine Transforma
tion, um eine Energieverdichtung zu schaffen. JPEG ist ein Bei
spiel einer verlustbehafteten Codiermethode für Bilddaten.
Bei neueren Entwicklungen in der Bildsignal-Verarbeitung wird
die Aufmerksamkeit auf einen Mangel an wirksamen und genauen
Formen eines Datenkompressions-Codierens gerichtet. Verschiede
ne Transformationsformen oder eine pyramidale Signalverarbei
tung sind vorgeschlagen worden, einschließlich einer pyramida
len Verarbeitung mit Mehrfachauflösung und einer pyramidalen
Elementarwellen- bzw. Wavelet-Verarbeitung. Diese Formen werden
auch als Unterband-(subband-) Verarbeiten und hierarchisches
Verarbeiten bezeichnet. Ein pyramidales Wavelet-Verarbeiten von
Bilddaten ist eine spezifische Form von pyramidalem Verarbeiten
mit Mehrfachauflösung, bei welchem Quadratur-Spiegelfilter
(QMFs) verwendet werden können, um eine Unterbandzerlegung
eines Vorlagenbildes zu erzeugen. Es gibt auch noch andere Ar
ten von Nicht-QMF-Wavelets. (Bezüglich mehr Information zu Wa
velet-Verarbeitung, siehe Antonini, M., et al., "Image Coding
Using Wavelet Tranform" IEEE Transactions on Image Processing,
Vol. 1, No. 2, April 1992; Shapiro, J., "An Embedded Hierarchi
cal Image Coder Using Zerotrees of Wavelet Coefficients", Proc.
IEEE Data Compression Conference, S. 214 bis 223, 1993).
Eine Schwierigkeit bei vielen bekannten Wavelet-Verarbeitungen
besteht darin, daß ein großer Speicher erforderlich ist, um al
le Daten zu speichern, während sie zu verarbeiten sind. Mit an
deren Worten, um eine Wavelet-Verarbeitung durchzuführen, müs
sen alle Daten geprüft werden, bevor ein Codieren an den Daten
durchgeführt wird. In einem solchen Fall gibt es keine Daten
ausgabe, bis zumindest ein voller Durchgang durch alle Daten
gemacht worden ist. In der Praxis umfaßt eine Wavelet-Verarbei
tung üblicherweise mehrere Durchgänge (multiple passes) durch
die Daten. Deswegen ist oft ein großer Speicher erforderlich.
Es ist wünschenswert, eine Wavelet-Verarbeitung zu benutzen,
solange die Anforderung nach einem großen Speicher vermieden
wird. Ferner ist es wünschenswert, eine Wavelet-Verarbeitung
mit nur einem einzigen Datendurchgang durchzuführen.
Viele Wavelet- oder Unterband-Transformations-Implementationen
erfordern Filter in einer speziellen kanonischen Form. Bei
spielsweise müssen Tief- und Hochpaßfilter dieselbe Länge ha
ben, die Summe der Quadrate der Koeffizienten muß eins sein,
das Hochpaßfilter muß eine Zeit- und Frequenzumkehr des Tief
paßfilters sein, usw. (Siehe US-Patent 5,014,134, erteilt Mai
1991). Es ist wünschenswert, eine breitere Filterklasse zuzu
lassen. Das heißt, es ist wünschenswert, Wavelet- oder Unter
band-Transformations-Implementierungen zu schaffen, welche
Tief- und Hochpaßfilter verwenden, die nicht dieselbe Länge ha
ben, bei welchen die Summe der Quadrate der Koeffizienten nicht
eins sein muß, das Hochpaßfilter nicht die Zeit- und Frequenz
umkehr des Tiefpaßfilters haben muß, usw.
Gemäß der Erfindung ist eine verlustbehaftete und verlustfreie
Kompression mit Hilfe einer Transformation geschaffen, welche
eine gute Energieverdichtung schafft. Die vorliegende Erfindung
sieht auch ein Modellieren von gemeinsamen bzw. Verbund-
Raum/Frequenzdomänen-Daten (joint spatial/frequency domain da
ta) (eine Wavelet-Transformationsdomäne) vor, um eine effiziente
Verdichtung (Kompression) zuzulassen. Ebenso ist eine progres
sive Übertragung mit einer Rate oder Verzerrung vorgesehen, die
von dem Benutzer nach einem Codieren wählbar ist.
Gemäß der Erfindung weist dies mit einem Verfahren zum Codieren
von eingegebenen Daten mit den Schritten in den Ansprüchen 1,
12, 13 und 17 erreicht. Vorteilhafte Weiterbildungen sind Ge
genstand der auf einen der vorstehenden Ansprüche unmittelbar
oder mittelbar rückbezogenen Ansprüche. Ferner ist dies mit
einem Verfahren zum Decodieren von Daten in ursprüngliche Daten
mit den Schritten im Anspruch 8 erreicht. Vorteilhafte Weiter
bildungen sind Gegenstand der auf den Anspruch 8 unmittelbar
oder mittelbar rückbezogenen Ansprüche.
Ein Verfahren und eine Vorrichtung zum Codieren und Decodieren
von Daten wird beschrieben. Die Erfindung weist ein Verfahren
und eine Einrichtung auf, um transformierte Signale entspre
chend eingegebenen Daten zu erzeugen. In einer Ausführungsform
werden die transformierten Daten mit Hilfe einer reversiblen
Wavelet-Transformation erzeugt. Die Erfindung weist auch ein
Verfahren und eine Einrichtung auf, um die transformierten
Signale in Daten zu verdichten, die eine verlustfreie kompri
mierte Version der eingegebenen Daten darstellen. In einer Aus
führungsform werden gemäß der Erfindung die eingegebenen Daten
mit Hilfe eines reversiblen Filters nicht-minimaler Länge zer
legt. Die Zerlegung kann mit mehreren eindimensionalen Filtern
durchgeführt werden. Die Erfindung weist auch ein Verfahren und
eine Einrichtung auf, um eingebettetes Codieren der transfor
mierten Signale durchzuführen. Das eingebettete Codieren gemäß
der Erfindung umfaßt ein Ordnen der Serie von Koeffizienten und
ein Durchführen einer Bit-Signifikanz, die in den transformier
ten Signale eingebettet ist.
Die Erfindung weist auch ein Verfahren und eine Einrichtung
auf, um die verlustfrei komprimierte Version der eingegebenen
Daten in transformierte Daten zu dekomprimieren. Darüber hinaus
sieht die Erfindung eine verlustbehaftete Kompression von ein
gegebenen Daten durch ein Abbrechen bzw. Abschneiden von ver
lustfrei komprimierten Daten vor. Die Erfindung umfaßt auch ein
Verfahren und eine Einrichtung, um die eingegebenen Daten aus
den transformierten Signalen in eine rekonstruierte Version der
eingegebenen Daten mit Hilfe einer inversen, reversiblen Wave
let-Transformation zu erzeugen.
Nachfolgend wird die Erfindung anhand von bevorzugten Ausfüh
rungsformen unter Bezugnahme auf die anliegenden Zeichnungen im
einzelnen beschrieben, wobei gleiche Bezugszeichen gleiche Ele
mente bzw. Komponenten bezeichnen. Es zeigen:
Fig. 1A ein Blockdiagramm einer Ausführungsform eines Codier
teils eines Codiersystems gemäß der Erfindung;
Fig. 1B ein Blockdiagramm einer Ausführungsform der Bit-Signifi
kanz-Einbettung gemäß der Erfindung;
Fig. 2A ein Blockdiagramm eines Wavelet-Analyse/Synthese-Sy
stems;
Fig. 2B Vorwärts- und Rückwärts-(Umkehr-)Darstellungen von
Transformationssystemen zum Filtern mit reversiblen Fil
tern mit nicht-überlappter minimaler Länge;
Fig. 3A bis 3D Ergebnisse zum Durchführen einer Vierstufen- bzw.
Vierebenen-Zerlegung;
Fig. 4A ein Blockdiagramm einer pyramidalen Dreiebenen-Transfor
mation;
Fig. 4B ein Blockdiagramm einer zweidimensionalen, Zweiebenen
Transformation:
Fig. 4C ein Blockdiagramm von eindimensionalen Filtern, die eine
Dekompression mit Mehrfachauflösung durchführen;
Fig. 4D ein Blockdiagramm eines Systems mit den reversiblen Wa
velets der Erfindung;
Fig. 4E Blockdiagramme eines Vergrößerungs- und Analysesystems,
welches die reversiblen Wavelets der Erfindung benutzt;
Fig. 5 eine Baumstruktur bei Wavelets-Koeffizienten;
Fig. 6a und 6a (fortgesetzt) ein Flußdiagramm einer Ausführungs
form des Einzellisten-Nullbaum-Modellierens (single list
zerotree modeling) zum Codieren in der Erfindung;
Fig. 6b und 6b (fortgesetzt) ein Flußdiagramm einer Ausführungs
form des Einzellisten-Nullbaum-Modellierens zum Codieren
in der Erfindung mit Hilfe eines reduzierten (verklei
nerten) Flag-Speichers;
Fig. 6c ein Flußdiagramm einer Ausführungsform des Einzellisten-
Nullbaum-Modellierens zum Decodieren in der Erfindung;
Fig. 6d ein Flußdiagramm einer Ausführungsform des Einzellisten-
Nullbaum-Modellierens zum Decodieren in der Erfindung
mit Hilfe eines reduzierten Flag-Speichers;
Fig. 7a ein Flußdiagramm einer Ausführungsform des Horizont-Mo
dellierens zum Codieren in der Erfindung;
Fig. 7b ein Flußdiagramm einer Ausführungsform des Horizont-Mo
dellierens zum Codieren in der Erfindung mit Hilfe eines
reduzierten Flag-Speichers;
Fig. 7c ein Flußdiagramm des Horizont-Modellierens zum Decodie
ren in der Erfindung;
Fig. 7d ein Flußdiagramm des Horizont-Modellierens zum Decodie
ren in der Erfindung mit Hilfe eines reduzierten Flag-
Speichers;
Fig. 8a ein Flußdiagramm einer Ausführungsform eines B-Durch
gangs (B-pass) zum Codieren in der Erfindung;
Fig. 8b ein Flußdiagramm einer Ausführungsform des B-Durchgangs
zum Codieren in der Erfindung mit Hilfe eines reduzier
ten Flag-Speichers;
Fig. 9a ein Flußdiagramm einer Ausführungsform des B-Durchgangs
für ein Decodieren in der Erfindung;
Fig. 9b ein Flußdiagramm einer Ausführungsform des B-Durchgangs
für ein Decodieren in der Erfindung mit Hilfe eines re
duzierten Flag-Speichers;
Fig. 10 eine Ausführungsform des Vorwärts-Wavelet-Filters der
Erfindung;
Fig. 11 ein Blockdiagramm einer Ausführungsform eines Umkehr-Wa
velet-Filters gemäß der Erfindung;
Fig. 12 ein Bild und Koeffizienten in einem Zeilenpuffer für
eine pyramidale Vierebenen-Zerlegung;
Fig. 13 ein Blockdiagramm einer Ausführungsform einer Wavelet-
Filterung mit Hilfe einer Filter-Steuereinheit;
Fig. 14 ein Blockdiagramm einer weiteren Ausführungsform einer
Wavelet-Filterung mit Hilfe einer Filter-Steuereinheit;
Fig. 15 eine Zuteilung von Speicherbänken,um horizontale und
vertikale Zugriffe zu stützen;
Fig. 16 die Filteroperation für eine Zweiebenen-Zerlegung;
Fig. 17 ein Blockdiagramm einer Ausführungsform des Kontextmo
dells der Erfindung;
Fig. 18 ein Blockdiagramm einer Ausführungsform der Vorzei
chen/Größeneinheit der Erfindung;
Fig. 19 ein Blockdiagramm einer Ausführungsform der Größen-Spei
chereinheit der Erfindung;
Fig. 20 ein Blockdiagramm einer Ausführungsform der Signifikanz
einheit der Erfindung;
Fig. 21 ein Blockdiagramm einer Ausführungsform der Baum
speichereinheit der Erfindung;
Fig. 22 eine Blockdiagramm einer Ausführungsform von Koeffizien
ten Verschieben gemäß der Erfindung;
Fig. 23 ein Blockdiagramm einer alternativen Ausführungsform der
Signifikanzeinheit der Erfindung mit Hilfe eines Ab
gleichs mal 1,5;
Fig. 24 eine dynamische Zuordnung eines codierten Datenspeichers
für eine Durchgangsoperation;
Fig. 25a und 25b ein Flußdiagramm einer Ausführungsform des Co
dierprozesses gemäß der Erfindung;
Fig. 26a und 26b ein Flußdiagramm des Decodierens einer Ausfüh
rungsform des Decodierprozesses der Erfindung;
Fig. 27a und 27b ein Flußdiagramm einer Ausführungsform des Pro
zesses zum Modellieren jedes Koeffizienten sowohl für
die Codier- als auch die Decodierprozesse der Erfindung;
Fig. 28a und 28b ein Flußdiagramm einer alternativen Ausfüh
rungsform des Codierprozesses der Erfindung;
Fig. 29a und 29b ein Flußdiagramm einer alternativen Ausfüh
rungsform eines Decodierprozesses der Erfindung;
Fig. 30a und 30b ein Flußdiagramm einer alternativen Ausfüh
rungsform des Prozesses zum Modellieren jedes Koeffi
zienten in den Codier- und Decodierprozessen der Erfin
dung, und
Fig. 31 eine Ausführungsform von Multiplikatoren für das Fre
quenzband, das für einen Koeffizientenabgleich in der
Erfindung verwendet ist.
Nunmehr wird ein Kompressions- und Dekompressionsverfahren be
schrieben. In der folgenden detaillierten Beschreibung der Er
findung werden zahlreiche spezifische Details angeführt, wie Ty
pen von Codierern, Zahlen von Bits, Signalnamen, usw., um ein
gründliches Verständnis der Erfindung zu schaffen. Für einen
Fachmann ist ersichtlich, daß die Erfindung auch ohne diese spe
ziellen Details in der Praxis ausgeführt werden kann. In anderen
Fällen werden bekannte Strukturen und Vorrichtungen in Blockdia
grammform dargestellt und nicht im einzelnen beschrieben, um die
Erfindung nicht unverständlich zu machen.
Einige Teile der detaillierten Beschreibungen, welche folgen,
sind in Form von Algorithmen und symbolischen Darstellungen von
Operationen an Datenbits in einem Computer-Speicher dargestellt.
Diese algorithmischen Beschreibungen und Darstellungen sind die
Mittel, die von Fachleuten auf dem Datenverarbeitungsgebiet ver
wendet werden, um das Wesentliche ihrer Arbeit anderen Fachleu
ten am effektivsten zu übermitteln. Ein Algorithmus wird hier
und im allgemeinen als eine in sich logische Folge von Schritten
aufgefaßt, die zu einem gewünschten Ergebnis führen. Die Schrit
te sind solche, welche physikalische Manipulationen von physika
lischen Größen erfordern. Üblicherweise, obwohl nicht notwendi
gerweise, nehmen diese Größen die Form von elektrischen oder
magnetischen Signalen an, die gespeichert, übertragen, ver
knüpft, verglichen oder auf andere Weise behandelt werden kön
nen. Es hat sich als praktisch erwiesen, prinzipiell aus Gründen
eines häufigen Umgangs auf diese Signale als Bits, Werte, Ele
mente, Symbole, Zeichen, Terme (Glieder), Zahlen o,ä, zu verwei
sen.
Jedoch sind alle diese und ähnliche Terme den entsprechenden
physikalischen Größen zuzuordnen, und sind nur bequeme Signatu
ren, die bei diesen Größen verwendet werden. Wenn nicht speziell
etwas anderes angegeben, wie es aus den folgenden Besprechungen
offensichtlich ist, ist festzuhalten, daß bei der vorliegenden
Erfindung Erörterungen, bei welchen Begriffe verwendet werden,
wie "Verarbeiten" oder "Berechnen" oder "Bemessen" oder "Bestim
men" oder "Anzeigen" o.a., sich auf die Funktion oder Prozesse
eines Computersystems oder einer ähnlichen elektronischen Re
cheneinrichtung beziehen, welche Daten behandelt und transfor
miert, die als physikalische (elektronische) Größen in den Com
puter-System-Registern und -Speichern in anderen Daten darge
stellt sind, die in ähnlicher Weise als physikalische Größen in
den Computersystem-Speichern oder -Registern oder in anderen
derartigen Informationsspeichern, Übertragungs- oder Anzeigevor
richtungen dargestellt sind.
Die Erfindung betrifft auch eine Einrichtung zum Durchführen
der hier angeführten Operationen. Die Einrichtung kann speziell
für die geforderten Zwecke ausgeführt werden oder sie kann einen
Universal-Rechner aufweisen, der durch ein in dem Computer ge
speichertes Programm selektiv aktiviert oder konfiguriert ist.
Die hier wiedergegebenen Algorithmen und Darstellungen beziehen
sich nicht auf irgendeinen speziellen Computer oder ein anderes
Gerät. Verschiedene Universaleinrichtungen können mit Programmen
gemäß den hier wiedergegebenen Lehren verwendet werden, oder es
kann sich als bequem erweisen, speziellere Einrichtungen zu
schaffen, um die geforderten Verfahrensschritte durchzuführen.
Die geforderte Struktur einer Vielzahl dieser Einrichtungen er
gibt sich aus der nachstehenden Beschreibung. Außerdem ist die
vorliegende Erfindung nicht bezüglich einer ganz bestimmten Pro
grammiersprache beschrieben. Vielmehr können eine Vielzahl von
Programmiersprachen verwendet werden, um die Lehren der Erfin
dung auszuführen.
Die Erfindung schafft ein Kompressions/Dekompressionssystem mit
einem Codier- und Decodierteil. Der Codierteil ist zum Codieren
von eingegebenen Daten vorgesehen, um komprimierte Daten zu er
zeugen, während der Decodierteil um Decodieren vorher codierter
Daten vorgesehen ist, um eine rekonstruierte Version der ur
sprünglichen Eingabedaten zu erzeugen. Die eingegebenen Daten
können eine Vielzahl von Datentypen aufweisen, wie ein (Einzel- oder
Video-)Bild, ein Tonsignal, usw. In einer Ausführungsform
sind die Daten digitale Signaldaten; jedoch sind auch digitali
sierte Analogdaten, Textdaten-Formate und andere Formate mög
lich. Die Quelle der Daten kann ein Speicher oder ein Kanal für
den Codier- und/oder den Decodierteil sein.
Gemäß der Erfindung können Elemente des Codier- und/oder des
Decodier-Teils in Hardware oder Software ausgeführt sein, wie
sie in einem Computersystem verwendet sind. Die Erfindung
schafft ein verlustfreies Kompressions-/Dekompressionssystem.
Die Erfindung kann auch entsprechend zusammengestellt werden, um
eine verlustbehaftete Kompression/Dekompression durchzuführen.
Fig. 1A ist ein Blockdiagramm einer Ausführungsform des Codier
teils des Systems. Der Decodierteil des Systems arbeitet im Hin
blick auf den Datenfluß in umgekehrter Reihenfolge. In Fig. 1A
werden eingegebene Bilddaten 101 mit einem Wavelet-Transforma
tionsblock 102 empfangen. Der Ausgang des Blocks 102 ist mit
einer Bitsignifikanz-Einbettungsblock 103 verbunden. Entspre
chend dem Ausgang von dem Block 102 erzeugt der Block 103 zumin
dest einen Bitfluß, der von einem Entropie-Coder 104 aufgenommen
wird. Entsprechend dem Eingang von dem Block 103 erzeugt der
Entropie-Coder 104 einen Codefluß 107.
In einer Ausführungsform weist der Bitsignifikanz-Einbettungs
block 103 eine Vorzeichen-Größen-Formatiereinheit 109, ein auf
Frequenz basierendes Kontextmodell 105 und ein gemeinsames
Raum/Frequenz-Kontextmodell 106 auf, wie es in Fig. 1B darge
stellt ist. In einer Ausführungsform weist das Modell 106 ein
Horizont-Kontextmodell auf. In einigen Ausführungsformen weist
ein Frequenz-Kontextmodellblock 105 ein Nullbaum-Modell auf. In
einer anderen Ausführungsform weist ein Frequenz-Kontextmodell
105 ein Signifikanz-Baummodell auf. Eine Vorzeichen-Größenein
heit 109, ein Frequenz-Kontextmodell 105 und das gemeinsame
Raum/Frequenz-(JSF-) Kontextmodell 106 führen ein Bit-Signifi
kanz-Einbetten in der Erfindung durch. Der Eingang der Vorzei
chen-Größeneinheit 109 ist mit dem Ausgang des Wavelet-Transfor
mations-Codierblocks 102 verbunden. Der Ausgang der Einheit 109
ist mit einem Schalter 108 verbunden, der vorgesehen ist, um den
Ausgang der Einheit 109 mit einem Eingang entweder des Blocks
105 oder des Blocks 106 zu verbinden. Der Ausgang der Blöcke 105
und 106 ist mit dem Eingang eines Entropie-Coders 104 verbunden,
welcher den abgegebenen Codefluß 107 erzeugt.
In Fig. 1A werden bei der Erfindung die Bilddaten 101 empfangen
und mit Hilfe reversibler Wavelets in dem Wavelet-Transforma
tionsblock 102 transformiert-codiert, wie später noch ausgeführt
wird, um eine Reihe von Koeffizienten zu erzeugen, die eine Zer
legung mit Mehrfach-Auflösung des Bildes darstellen. Diese Koef
fizienten werden von dem Bit-Signifikanz-Einbettungsblock 103
empfangen.
Der Block 103 ordnet und setzt die Koeffizienten in ein Vorzei
chen-Größen-Format um, und basierend auf dieser Signifikanz (wie
später noch beschrieben wird) werden die formatierten Koeffi
zienten einer Kombination von verschiedenen Einbett-Modellier
verfahren unterzogen. In der Erfindung werden die formatierten
Koeffizienten jeweils einem von zwei Einbett-Modellierverfahren
(z. B. einer auf Frequenz basierenden Modellierung und einer SJF-
Modellierung) unterzogen.
In einer Ausführungsform werden die formatierten Koeffizienten
entweder einer auf Frequenz basierenden Modellierung oder einer
JSF-Modellierung unterzogen. Wenn die eingegebenen Daten Bildda
ten mit Mehrfach-Bitebenen aufweisen, werden bei der Erfindung
eine Anzahl Bitebenen mit einem frequenz-gestützen Modellieren
codiert, während die verbleibenden Bitebenen mit einem JSF-Mo
dellieren codiert werden. Die Entscheidung, welches Verfahren
bei welchen Bitebenen anzuwenden ist, kann ein Benutzer-Parame
ter sein. In einer Ausführungsform werden höhere Bitebenen der
Koeffizienten mit der frequenz-gestützten Modellierung der Er
findung geordnet und codiert. In dem frequenz-gestützten Kon
textmodell-Verfahren der Erfindung ist die Signifikanz-Prädik
tion der Koeffizientenbits auf die pyramidale Struktur des Wave
lets bezogen. Die niedrigerwertigen Koeffizienten-Bitebenen wer
den mit dem JSF (joint space/frequency) Kontextmodell der Erfin
dung geordnet und codiert. Die JSF-Modellierung, beispielsweise
eine Horizont-Modellierung, schafft Vorteile gegenüber einem
frequenz-gestützten Codieren für Bitebenen, die weniger korre
liert bezüglich der Frequenzdomäne durch die Koeffizientenrela
tionen sind.
Die Ergebnisse der Bit-Signifikanz-Einbettung sind Entscheidun
gen (oder Symbole), die mittels des Entropie-Coders zu codieren
sind. In einer Ausführungsform werden alle Entscheidungen an
einen einzigen Codierer gesendet. In einer anderen Ausführungs
form werden Entscheidungen durch Signifikanz kenntlich gemacht,
und Entscheidungen für jede Signifikanzebene werden von ver
schiedenen (physikalischen oder virtuellen) Mehrfach-Codieren
codiert.
Die Bitflüsse, die sich von dem frequenz-gestützten Kontextmo
dell-Block 105 und dem JSF-Kontextmodell-Block 106 ergeben, wer
den in der Signifikanz-Reihenfolge mit Hilfe des Entropie-Coder
104 codiert. In einer Ausführungsform weist der Entropie-Coder
einen binären Entropie-Coder auf. In einer weiteren Ausführungs
form weist der Entropie-Coder 104 einen Q-Coder, einen B-Coder,
wie er in US-Patent 5,272,478 definiert ist, oder einen Coder
auf, wie sie in der am 10. Februar 1993 eingereichten US-Patent
anmeldung S.N. 08/016,035 beschrieben ist, mit dem Titel "Ver
fahren und Einrichtung zum parallelen Decodieren und Codieren
von Daten". (Bezüglich mehr Information zu dem Q-Coder, siehe
Pennebaker, W.B., et al., "An Overview of the Basis Principles
of the Q-coder, Adaptive Binary Arithmetic," IBM Journal of Re
search and Development, Vol. 32, S. 717-26, 1988. In einer Ausfüh
rungsform erzeugt ein einziger Coder einen einzigen Code-Aus
gangsfluß. In einer anderen Ausführungsform erzeugen mehrere
(physikalische oder virtuelle) Coder mehrere (physikalische oder
virtuelle) (Mehrfach-)Datenflüsse.
Die Erfindung führt anfangs eine Zerlegung eines Bildes (in
Form von Bilddaten) oder eines anderen Datensignals mit Hilfe
reversibler Wavelets durch. In der Erfindung weist eine
reversible Wavelet-Transformation eine Implementierung eines
exakten Konstruktionssystems im Ganzzahl-Arithmetik auf, so daß
ein Signal mit ganzzahligen Koeffizienten verlustfrei wiederge
wonnen werden kann. Durch Verwenden von reversiblen Wavelets
kann mittels der Erfindung eine verlustfreie Kompression mit
endlicher Präzisionsarithmetik geschaffen werden. Die Ergebnis
se, die erzeugt worden sind, indem die reversible Wavelet-Trans
formation bei Bilddaten angewendet wird, sind eine Koeffizien
tenreihe. In einer Ausführungsform der Erfindung wird die rever
sible Wavelet-Transformation mit Hilfe eines Satzes Filter
durchgeführt. In einer Ausführung sind die Filter ein Tiefpaß
filter mit zwei Abgriffen und ein Hochpaßfilter mit sechs Ab
griffen. In einer Ausführungsform werden diese Filter nur mit
Hilfe von Additions- und Subtraktionsoperationen (plus einem
fest verdrahteten Bit-Shifting) implementiert.
In der Erfindung erzeugt das Hochpaßfilter mit Hilfe der Ergeb
nisse des Tiefpaßfilters ein Ausgangssignal. Die sich ergebenden
Hochpaß-Koeffizienten sind nur wenige Bits, die größer als die
Pixel-Auflösung sind, und die Tiefpaß-Koeffizienten sind diesel
ben wie die Pixel-Auflösung. Da nur die Tiefpaß-Filter wieder
holt in einer pyramidalen Zerlegung gefiltert werden, wird die
Auflösung in Mehrebenen-Zerlegungen nicht erhöht.
Ein Wavelet-Transformationssystem ist durch ein Paar FIR-Analy
sefilter h₀(n), hI(n) und durch ein Paar FIR-Synthesefilter
g₀(n), g₁(n) definiert. In der Erfindung sind h₀ und g₀ die
Tiefpaßfilter und h₁ und g₁ sind die Hochpaßfilter. Ein Block
diagramm des Wavelet-Systems ist in Fig. 2A dargestellt. In
Fig. 2A werden für ein Eingangssignal x(n) die Analyse für h₀
und h₁ verwendet, und die Ausgänge durch 2 (kritisch unterabge
tastet (subsampled)) gemindert, um die transformierten Signale
y₀, (n) und y₁(n) zu erzeugen, welche hier als tiefpaß- bzw.
hochpaß-gefilterte Koeffizienten bezeichnet werden. Die Analyse
filter und deren entsprechende Dezimier- oder Unterabtast-Blöcke
bilden den Analyseteil des Wavelet-Transformationssystems. Die
Coder/Decoder enthalten die gesamte Verarbeitungslogik und Rou
tinen, die in der transformierten Domäne (z. B. Prädiktion, Quan
tisierung, Codierung usw.) durchgeführt worden sind. Das in
Fig. 2A dargestellte Wavelet-System enthält auch einen Synthese
teil, in welchem die transformierten Signale mit 2 hochgetastet
(upsampled) werden (z. B. eine Null wird nach jedem Term einge
setzt), und durchlaufen dann Synthesefilter g₀(n), g₁(n). Die
tiefpaß-gefilterten y₀ (n) durchlaufen das Tiefpaß-Synthesefil
ter g₀, und die hochpaß-gefilterten Koeffizienten y₁(n) durch
laufen das Hochpaßfilter g₁. Die Ausgänge der Filter g₀(n) und
g₁(n) werden verknüpft, um x(n) zu erzeugen.
Während das Runter- und das Hochtasten in einigen Ausführungs
formen durchgeführt werden, werden in anderen Ausführungsformen
Filter verwendet, so daß die Rechnungen, welche infolge des Run
ter- und des Hochtastens nicht benötigt werden, nicht durchge
führt werden.
Das Wavelet-System kann anhand der Z-Transformation beschrieben
werden, wobei X(Z), (Z) die eingegebenen bzw. ausgegebenen
Signale sind, Y₀(Z), Y₁(Z) die tiefpaß- und hochpaßtransformier
ten Signale sind, H₀(Z), H₁(Z) die Tiefpaß- und die Hochpaß-Ana
lysefilter sind und G₀(Z), G₁(Z) die Tiefpaß- und die Hochpaß-
Synthesefilter sind. Wenn es keine Alteration oder Quantisierung
in der Transformations-Domäne gibt, ist der Ausgang (Z) in
Fig. 2 gegen durch:
(Z) = ½[H₀(Z)G₀(Z)+H₁(Z)G₁(Z)]X(Z)+½[H₀(-Z)G₀(Z)+H₁(-Z)G₁(Z)]X(-Z).
In der Erfindung wird der zweite Term von (Z), der als der
"Aliasing"-Term bezeichnet ist, annulliert, da die Synthesefil
ter als der Quadratur-Spiegel des Synthesefilters definiert
sind, d. h.
Hinsichtlich der Filter-Koeffizienten gilt:
Daher wird für ein Quadratur-Spiegelfilterpaar nach einer Sub
stitution der Ausgang:
(z) = ½[H₀(Z)H₁(-Z)-H₁(Z)H₀(-Z)]X(Z).
In dem Quadratur-Spiegelsystem der Erfindung ist der Ausgang
nur in Form der Analysefilter definiert. Die Wavelet-Transforma
tion wird rekursiv bei den transformierten Signalen angewendet,
so daß die durch die Filter erzeugten Ausgangssignale direkt
oder indirekt als Eingangssignale in den Filtern verwendet wer
den. In der beschriebenen Ausführungsform wird nur die tiefpaß
transformierte Komponente y₀(n) rekursiv transformiert, so daß
das System pyramidal ist. Ein Beispiel eines solchen pyramidalen
Systems ist in Fig. 4A dargestellt.
Die Z-Transformation ist eine bequeme Darstellungsweise, um die
Operation von Hardware und/oder von Software an Daten aus zu
drücken. Eine Multiplikation Z-m modelliert eine m-Taktzyklus-
Verzögerung in Hardware, und eine Anordnung greift auf das m-te
vorherige Element in der Software zu. Derartige Hardware-Imple
mentationen enthalten Speicher, Pipestufen, Schieberegister, Re
gister, usw.
In der Erfindung sind die Signale x(n) und (n) identisch bis
auf eine multiplikative Konstante und einen Verzögerungsterm,
d. h. in Form der Z-Transformation
(Z) = cZ-mX(Z).
Dies wird ein exaktes Rekonstruktionssystem genannt. Folglich
ist in einer Ausführungsform der Erfindung die Wavelet-Transfor
mation, die anfangs bei den eingegebenen Daten angewendet worden
ist, exakt rekonstruierbar.
Eine Ausführungsform der Erfindung, bei welcher die Hadamard-
Transformation verwendet ist, ist ein exaktes Rekonstruktionssy
stem, welches in normierter Form die folgende Darstellung in der
Z-Domäne hat.
Nach Substitution wird der Ausgang:
(Z) = Z-1X(Z),
welches deutlich eine exakte Rekonstruktion ist. (Für mehr In
formation bezüglich der Hadamard-Transformation, siehe Anil K.
Jain, Fundamentals of Image Processing, S. 155).
Eine reversible Version der Hadamard-Transformation wird hier
als die S-Transformation bezeichnet. (Für mehr Information be
züglich der S-Transformation siehe Said, A. and Pearlman, W, "Re
versible Image Compression via Multiresolution Representation
and Predictive Coding," Dept. of Electrical, Computer and Sy
stems Engineering, Renssealaer Polytechnic Institute, Troy, NY
1993). Da die Hadamard-Transformation eine exakte Rekonstruk
tions-Transformation ist, ist die folgende, nicht-normierte Ver
sion (welche sich von der Hadamard-Transformation durch konstan
te Faktoren unterscheidet) auch eine exakte Rekonstruktions-
Transformation.
Wenn die Abtastwerte des Eingangssignals als x₀, x₁ gegeben
sind, ist die S-Transformation eine resersible Implementation
dieses Systems, nämlich
Die Schreibweise bedeutet Abrunden nach unten oder Kürzen
und wird manchmal als die Boden-(floor)Funktion bezeichnet. Dem
entsprechend bedeutet die Decken-(ceiling)Funktion aufrunden
nach oben zu der nächsten ganzen Zahl.
Der Nachweis, daß diese Implementierung reversibel ist, folgt
aus der Tatsache, daß die einzige in der Näherung verloren ge
gangene Information das niedrigstwertige Bit von x(0)+x(1) ist.
Da jedoch das niedrigstwertige Bit von x(0)+x(1) und x(0)-x(1)
identisch ist, kann dies aus dem Hochpaß-gefilterten Ausgang
y₁(0) wiedergewonnen werden. Mit anderen Worten, es gilt:
Die S-Information ist eine nicht-überlappende Transformation
mit reversiblen Filtern minimaler Länge. Filter minimaler Länge
weisen ein Filterpaar auf, wobei beide Filter zwei Abgriff ha
ben. Transformationen minimaler Länge schaffen keine gute Ener
gieverdichtung. Filter minimaler Länge implementieren eine
nicht-überlappte Transformation, da die Länge der Filter gleich
der Anzahl Filter ist. Überlappte Informationen benutzen zumin
dest ein Filter, welches eine Länge hat, die größer als die An
zahl Filter ist. Überdeckte Informationen mit längeren Filtern
(nicht-minimaler Länge) können eine bessere Energieverdichtung
schaffen. Gemäß der Erfindung sind reversible Filter mit nicht
minimaler Länge vorgesehen, welche eine überlappte Transforma
tion zu lassen.
Ein anderes Beispiel eines Exakt-Rekonstruktionssystems weist
die Zwei/Sechs (TS)-Transformation auf, welche die Z-Domänen-De
finition hat:
Nach Substitution ist der Ausgang dann
(Z) = 2Z-3X(Z),
welches eine Exakt-Rekonstruktions-Transformation ist.
Die rationale, nicht-normierte Version der TS-Transformation
weist auf:
Wenn x(0), x(1), . . . x(5) sechs Tastwerte des Signals sind, dann
sind die ersten drei tiefpaß-gefilterten Koeffizienten y₀(0)=
,y₀(1), y₀(2) und der erste hochpaß-gefilterte Koeffizient y₁(0)
gegeben durch
Jedoch ist die gerade Vorwärts-Implementierung der rationalen
nicht-normierten Version der TS-Transformation nicht reversibel.
Das folgende Beispiel zeigt, daß die Implementierung lokal nicht
reversibel ist. Eine längere Folge kann als ein Beispiel für den
umfassenden Fall konstruiert werden. Da
-(x(0)+x(1))+(x(4)+x(5))≠-y₀(0)+x₀(2)
wegen des Abrundens ist,
ist, um y₀(0) und y₀(2) zu berechnen, diese Transformation mit
Hilfe einer lokalen Information nicht reversibel.
Wenn beispielsweise x(0) = 1, x(1) = 1, x(2) = 3, x(3) = 1, x(4) = 1, x(5) =1
ist, dann gilt:
und wenn x(0) = 1, x(1) = 2, x(2) = 4, x(3) = 1, x(4) = 1, x(5) = 1 ist, dann
gilt:
Da y₀(0), y₀(1), y₀(2) und y₁(0) dieselben sind für zwei ver
schiedene Sätze von Eingangssignalen x(0) . . . .x(5), ist die
Transformation nicht reversibel, da, wenn y₀(0), . . . y₁(0) gege
ben ist, sie nicht aus dieser lokalen Information bestimmt wer
den kann, welche der zwei Sätze eingegeben wurden. (Es kann be
kanntlich nur nachgewiesen werden, daß die Transformation nicht
reversibel ist, wenn eine umfassende Information für alle Koef
fizienten verwendet wird).
Nunmehr wird eine reversible TS-Transformation betrachtet, wel
che hier als RTS-Transformation bezeichnet ist, welche eine an
dere Hochpaß-Filteroperation schafft.
Wenn x(0), x(1), x(2), x(3), x(4), x(5) sechs (6) Tastwerte des
Signals sind, dann sind die ersten drei tiefpaß-gefilterten
Koeffizienten y₀(0), y₀(1), y₀(2) und der erste hochpaß-gefilter
te Koeffizient y₁(0) gegeben durch:
Da
ist, dann ist x(2)-x(3) vollständig bekannt. Mit
und x(2)-x(3) und x(2)-x(3) wie oben
festgelegt ist, können x(2) und x(3) wieder gewonnen werden, da
die niedrigstwertigen Bits von x(0)+x(1) und x(0)-x(1) iden
tisch sind.
Insbesondere gilt dann
Eine Ausführungsform des Vorwärts-Filters für die RTS-Transfor
mation ist im Anhang A dargestellt, welcher in der Programmier
sprache "C" ausgeführt ist. Zu beachten ist, daß mathematisch
die Gleichung
⅛(-1-Z-1+8Z-2-8Z-3+Z-4+Z-5)
und die Gleichung
¼(½(-1-Z-1)+4(Z-2-Z-3)+½(Z-4+Z-5))
dieselben sind, wenn sie mit einer unbegrenzten Präzisions-
Arithmetik durchgeführt werden. Der Grund, weshalb die zweite
Gleichung ein reversibles Filter darstellt, ist offensichtlich,
wenn sie mit einer ganzzahligen Arithmetik durchgeführt worden
ist. Beispiele von Hardware-Implementierungen des Tiefpaß- und
des Hochpaßfilters werden in Verbindung mit Fig. 10 und 11 be
schrieben.
Zu beachten ist, daß sowohl bei der TS- als auch bei der RTS-
Transformation das Tiefpaßfilter implementiert wird, so daß der
Bereich des eingegebenen Signals x(n) derselbe ist wie bei dem
abgegebenen Signal y₀(n). Wenn beispielsweise das Signal ein
8 Bit-Bild ist, ist auch das Ausgangssignal des Tiefpaßfilters 8
Bit. Dies ist eine wichtige Eigenschaft für ein pyramidales Sy
stem, bei welchem das Tiefpaßfilter nacheinander angewendet
wird, da in bekannten Systemen der Bereich des abgegebenen
Signals größer ist als derjenige des eingegebenen Signals, was
aufeinanderfolgende Anwendungen des Filters schwierig macht. Au
ßerdem hat das Tiefpaßfilter nur zwei Abgriffe, wodurch es zu
einem nicht-überlappenden Filter wird. Diese Eigenschaft ist
wichtig für die Hardware-Implementierung, wie später noch be
schrieben wird.
In einer Ausführungsform sind bezüglich der RTS-Transformation
die Tiefpaß- und Hochpaßfilter so definiert:
Folglich können die Ergebnisse von dem Tiefpaßfilter zweimal
(in den ersten und dritten Termen) in dem Hochpaßfilter verwen
det werden. Folglich müssen nur zwei weitere Informationen
durchgeführt werden, um die Ergebnisse des Hochpaßfilters zu er
reichen.
Viele überlappte reversible Filter nicht-minimaler Länge können
bei der Erfindung verwendet werden. Solche Vorwärts- und inverse
Darstellungen des Transformationssystems zum Filtern mit rever
siblen Filtern nicht-überlappter minimaler Länge sind in Fig. 2B
dargestellt. Beispielsweise kann die folgende Klasse Filter in
der Erfindung verwendet werden. Für eine ganze Zahl Lz gilt:
und
und
Die Länge des Tiefpaßfilters ist 2L. Wenn L ungerade ist, liegt
das Filter näher bei einem symmetrischen Filter. Wenn ai, b, ci
und k ganze Zahlen sind, und kb ist, dann ist das Filter rever
sibel. Wenn ai, b, ci und k Potenzen von zwei sind (oder das Ne
gative oder Komplement einer Potenz von zwei), dann kann die Im
plementierung des Filters vereinfacht werden. Wenn k=b (unabhän
gig von den Werten von ai und i1) ist, dann wird der Bereich des
Ausgangssignals des Hochpaßfilters y₁ minimiert. Für jedes a₁
hat dann, wenn es genau ein ci gibt, wobei ai = -ci ist, das
Hochpaßfilter keine Antwort bei einem konstanten Eingang. Wenn
ai=-cj ist, wenn j-(L-1)=i ist, dann kann das Filter näher bei
einem symmetrischen Filter sein.
Eine weitere brauchbare Eigenschaft ist
Hiervon kommt es, daß das Hochpaßfilter kein Ansprechen auf ein
sich linear änderndes Eingangssignal, wenn m=1 ist, und auch auf
ein sich quadratisch änderndes Eingangssignal hat, wenn m=2 ist,
usw. wobei m der momentane Zustand ist. Diese Eigenschaft ist
hauptsächlich der Grund dafür, daß die RTS-Transformation eine
bessere Energieverdichtung hat als die S-Transformation.
Obwohl Filter den Minimum-Beschränkungen für eine Reversibili
tät entsprechen müssen, können verschiedene Anwendungen Filter
verwendet werden, welche keinen, einigen oder allen der übrigen
Eigenschaften gerecht werden. In einigen Ausführungsformen wird
eines der folgenden als Beispiel angeführten Hochpaßfiltern ver
wendet. Diese Filter sind in einer Schreibweise aufgelistet,
welche gerade die ganzzahligen Koeffizienten der rationalen Ver
sion der Filter aufführt, um eine Unklarheit bei der Erfindung
zu vermeiden:
Das letzte Filter wird auf das (Zwei/Zehn- Two/Ten)TT-Filter
bezeichnet, und es hat die Eigenschaft, daß es nicht auf eine
kubisch ansteigende Funktion anspricht. Da 22=16+2×3 und 3=2+1
gilt, kann dieses Filter mit insgesamt sieben Additionen und
Subtraktionen implementiert werden.
Die strikten Reversibilitäts-Anforderungen für Filter können
durch Beachten des Folgenden gelockert werden. Hochpaß-Koeffizienten
werden in irgendeiner Reihenfolge codiert und decodiert.
Pixel-Werte, welche den vorher decodierten Hochpaß-Koeffizienten
entsprechen, sind genau bekannt, so daß sie in einer aktuellen
Hochpaß-Filterung verwendet werden können. Beispielsweise kann
das folgende Filter verwendet werden, wenn eine Rasterreihenfol
ge angewendet wird.
Das Verwenden eines einzigen, fest eingestellten Filters ist
nicht erforderlich. Adaptive Filter oder mehrere Filter können
verwendet werden. Die Daten, die verwendet sind, um sie an meh
rere Filter anzupassen oder über diese auszuwählen, müssen auf
Daten beschränkt werden, welche in den Decoder vor einer spe
ziellen inversen Filteroperation verfügbar sind.
Eine Möglichkeit, mehrere Filter zu benutzen, besteht darin,
die Hochpaß-Koeffizienten progressiv zu verarbeiten. Alternative
Hochpaß-Filteroperationen (y₁(0), y₁(2), y₁(4) können zuerst
mit einem reversiblen Filter, wie dem RTS-Hochpaßfilter, verar
beitet werden. Die restliche Verarbeitung (y₁(1), y₁(3), y₁(5), . . . )
kann ein nicht-reversibles Filter mit bis zu sechs Abgriffen be
nutzen, da die exakten Werte der Eingänge in dem Überlappungs
teil des Filters bekannt sind. Beispielsweise kann eines der
folgenden Filter verwendet werden:
In einigen Ausführungsformen kann das Hochpaßfilter durch eine
Prädiktions-/Interpolations-Operation ersetzt werden. Ein Prä
diktor/Interpolator kann die Differenz zwischen einem Paar Ein
gängen voraussagen, die irgendwelche Daten verwenden, welche in
dem Decoder vor der speziellen Prädiktions-/Interpolationsopera
tion verfügbar sind. Die vorhergesagte Differenz wird von der
tatsächlichen Differenz der Eingänge subtrahiert und wird abge
geben. In einer Ausführungsform werden bekannte Prädiktionsver
fahren, die in DPCM verwendet sind, ein progressives Codieren
und ein Raumdomänen-Codieren verwendet.
Mit Hilfe der Tiefpaß- und der Hochpaßfilter der Erfindung wird
eine Mehrfach-Auflösungs-Zerlegung durchgeführt. Die Anzahl an
Kompositionsebenen ist variabel und kann irgendeine Anzahl sein;
jedoch reicht gegenwärtig die Anzahl an Zerlegungsebenen von
zwei bis fünf Ebenen.
Wenn beispielsweise die reversible Wavelet-Transformation re
kursiv bei einem Bild angewendet wird, arbeitet die erste Zerle
gungsebene mit dem feinsten Detail oder der feinsten Auflösung.
Auf einer ersten Zerlegungsebene wird ein Bild in vier Unterbil
der (z. B. Unterbänder) zerlegt. Jedes Unterband stellt ein Band
von Ortsfrequenzen dar. Die Unterbänder der ersten Ebene sind
bezeichnet mit LL₀, LH₀, HL₀ und HH₀. Der Prozeß, das ursprüng
liche Bild zu zerlegen, schließt ein Unterabtasten (subsampling)
durch zwei sowohl in horizontalen als auch in vertikalen Dimen
sionen ein, so daß die Unterbänder LL₀, LH₀, HL₀ und HH₀ der
ersten Ebene, die jeweils ein Viertel so viele Koeffizienten ha
ben wie das eingegebene Signal, Pixels (oder Koeffizienten) des
Bildes hat, wie in Fig. 3A dargestellt ist.
Ein Unterband LL₀ enthält gleichzeitig niederfrequente hori
zontale und niederfrequente vertikale Informationen. Üblicher
weise ist ein großer Teil der Bildenergie in diesem Unterband
konzentriert. Das Unterband LH₀ enthält niederfrequente hori
zontale und hochfrequente vertikale Information (z. B. horizonta
le Randinformation). Das Unterband HL₀ enthält hochfrequente,
horizontale und niederfrequente vertikale Information (z. B. ver
tikale Randinformation). Das Unterband HH₀ enthält hochfrequen
te horizontale und vertikale Information (z. B. Struktur- oder
Diagonal-Rand-Information).
Jede der folgenden zweiten, dritten und vierten unteren Zerle
gungsebenen wird dadurch erzeugt, daß das niederfrequente LL-Un
terband der vorhergehenden Ebene zerlegt wird. Das Unterband LL₀
der ersten Ebene wird zerlegt, um Unterbänder LL₁ LH₁, HL₁ und
HH1 der moderat detaillierten zweiten Ebene zu erzeugen. Ähnlich
wird das Unterband LL₁ zerlegt, um grob detaillierte Unterbänder
LL₂, LH₂ HL₂ und HH₂ der dritten Ebene zu erzeugen. Ebenso wird
das Unterband LL₂ erzeugt, um grober detaillierte Unterbänder
LL₃, LH₃, HL₃ HH₃ der dritten Ebene zu erzeugen, wie in Fig. 3D
dargestellt ist. Infolge des Unterabtastens durch zwei ist jedes
Unterband der zweiten Ebene ein Sechzehntel der Größe des ur
sprünglichen Bildes. Jeder Tastwert (z. B. Bildelement) auf die
ser Ebene stellt ein moderates Detail in dem ursprünglichen Bild
an derselben Stelle dar. Ebenso ist jedes Unterband der dritten
Ebene 1/64 der Größe des ursprünglichen Bildes. Jedes Bildele
ment auf dieser Ebene entspricht einem relativ groben Detail in
dem ursprünglichen Bild an derselben Stelle. Ebenso ist jedes
Unterband der vierten Ebene 1/256 der Größe des ursprünglichen
Bildes.
Da die zerlegten Bilder infolge des Unterabtastens kleiner als
das ursprüngliche Bild sind, kann derselbe Speicher, der zum
Speichern des ursprünglichen Bildes verwendet worden ist, ver
wendet werden, um alle zerlegten Unterbänder zu speichern. Mit
anderen Worten, das ursprüngliche Bild und die zerlegten Unter
bänder LL₀ und LL₁ werden ausrangiert und nicht in einer Drei
ebenen-Zerlegung gespeichert.
Eine Eltern-Kind-Beziehung besteht zwischen einer Unterband-Kom
ponente, die ein grobes Detail darstellt, relativ zu einer ent
sprechenden Unterband-Komponente in der nächsten feiner detail
lierten Ebene.
Obwohl nur vier Unterband-Zerlegungsebenen dargestellt sind,
könnten zusätzliche Ebenen entsprechend den Anforderungen eines
bestimmten Systems entwickelt werden. Ebenso können mit anderen
Transformationen, wie DCT oder linear mit Zwischenraum angeord
neten Unterbändern verschiedene Eltern-Kind-Beziehungen definiert
werden.
Der Prozeß einer Mehrfachauflösungs-Zerlegung kann mit Hilfe
eines Filtersystems, wie demjenigen in Fig. 4A durchgeführt wer
den. Ein eingegebenes Signal, das ein eindimensionales Signal
mit einer Länge L darstellt, wird mittels Filtereinheiten 401
und 402 tiefpaß- und hochpaß-gefiltert, bevor es durch zwei über
Einheiten 403 und 405 mit zwei unterabgetastet wird. Ein unter
abgetastetes Ausgangssignal von der Einheit 403 wird durch Ein
heit 405 und 406 tiefpaß- und hochpaßgefiltert, bevor es über
Einheiten 406 bzw. 408 mit zwei unterabgetastet wird. Unterband-
Komponenten L und H erscheinen an entsprechenden Ausgängen von
Einheiten 407 und 408. In ähnlicher Weise wird das Ausgangs
signal von der Einheit 405 über Einheiten 409 und 410 tiefpaß- und
hochpaßgefiltert, bevor es durch Einheiten 411 bzw. 412 un
terabgetastet wird. Unterband-Komponenten L und H erscheinen an
entsprechenden Ausgängen der Einheit 411 und 412. Wie vorstehend
beschrieben, sind die Filter in einer Ausführungsform der Erfin
dung, die bei einer Unterband-Zerlegung verwendet sind, digitale
Quadratur-Spiegelfilter, um die horizontalen und vertikalen Fre
quenzbänder in nieder- und hochfrequente Bänder aufzuspalten.
Fig. 4B stellt eine zweidimensionale Transformation in zwei Ebe
nen dar. Fig. 4C stellt eine zweidimensionale Transformation in
zwei Ebenen dar, die mit Hilfe von eindimensionalen Filtern im
plementiert ist, wie sie in Fig. 10 und 11 dargestellt sind. Die
eindimensionalen Filter werden in jeder anderen Position ange
wendet, um eine Berechnung zu vermeiden, die durch Unterabtasten
unnötig wird. In einer Ausführungsform benutzen eindimensionale
Filter eine Berechnung zwischen einer Tiefpaß- und Hochpaßbe
rechnung gemeinsam.
Daher schafft die Erfindung ein System zur Kompression und De
kompression, in welcher überlappte reversible Filter von nicht
minimaler Länge verwendet werden. Fig. 4D ist ein Blockdiagramm
einer Ausführungsform eines solchen Systems. In Fig. 4D wird an
fangs eine hierarchische Zerlegung durchgeführt. Die Ergebnisse
der hierarchischen Zerlegung werden zur Kompression an einem
Kompressor abgegeben. Die durchgeführte Kompression kann eine
Vektor-Quantisierung, eine Skalar-Quantisierung, ein Null-Lauf
längen-Zählen, ein Huffman-Codieren, usw. sein. Der Ausgangswert
des Kompressors verdichtet Daten, die eine verdichtete Version
der ursprünglichen eingegebenen Daten darstellt. Ein Dekompres
sor kann die Daten irgendwann (in der Zukunft) erhalten und die
Daten dekomprimieren. Die Erfindung führt dann eine inverse Zer
legung mit Hilfe von überlappten reversiblen Filtern von nicht
minimaler Länge durch, um eine rekonstruierte Version der ur
sprünglichen Daten zu erzeugen.
Die reversiblen Wavelet-Filter der Erfindung können auch bei
spielsweise in Analyse-Vergrößerungssystemen verwendet werden,
wie in Fig. 4E dargestellt ist. In Fig. 4E wird eine hierarchische
Zerlegung an eingegebenen Daten mit Hilfe von überdeckten rever
siblen Wavelet-Filtern von nicht-minimaler Länge durchgeführt.
Die Analyseeinheit erhält die von den Filtern erzeugten Koeffi
zienten und klassifiziert sie in Entscheidungen, z. B. nicht
vollständig Codieren der Koeffizienten nur relevante Information
wird extrahiert. Beispielsweise können in einem Dokumenten-Ar
chiviersystem leere Seiten mit Hilfe nur des gröbsten Tiefpaß-
Unterbands erkannt werden. Bei einem anderen Beispiel würde nur
Hochpaß-Information von einem ganz bestimmten Unterband verwen
det werden, um zwischen Textbild und Bildern natürlicher Szenen
zu unterscheiden. Die hierarchische Zerlegung kann zum Regi
strieren von Mehrfachbildern verwendet werden, so daß eine grobe
Registrierung zuerst mit Hilfe von groben Unterbändern gegeben
ist. In einer anderen Ausführungsform werden die Koeffizienten
einer Vergrößerung oder Filterung unterzogen, auf die eine in
verse Zerlegung folgt. Ein scharfes Abgrenzen, Rand-Vergrößerun
gen, eine Rauschkontrolle, usw. können mit Hilfe einer hierar
chischen Zerlegung durchgeführt werden. Folglich schafft die Er
findung eine Wavelet-Transformation für ein Verwenden in gemein
samen Zeit/Raum- und Frequenz-Domänen Analyse- und Filter-/Ver
größerungssystemen.
In der Erfindung werden die Koeffizienten, die als Ergebnis der
Wavelet-Zerlegung erzeugt worden sind, entropie-codiert. In der
Erfindung werden die Koeffizienten anfangs einem eingebetteten
Codieren unterzogen, bei welchem die Koeffizienten in einer vi
suell signifikanten Reihenfolge geordnet oder, allgemeiner aus
gedrückt, bezüglich einer gewissen Fehlermetrik (z. B. einer Ver
zerrungsmetrik) geordnet werden. Fehler- oder Verzerrungsmetri
ken enthalten Peak-Fehler und einen mittleren quadratischen Feh
ler (MSE). Zusätzlich kann ein Ordnen durchgeführt werden, um
Präferenz einer Bit-Signifikanz-Raumstelle, Relevanz für ein Da
tenbasis-Fragen (data base querring) und eine Richtung (verti
kal, horizontal, diagonal, usw.) zu geben. Die Erfindung benutzt
mehrere eingebettete Codier-Techniken, wobei ein Teil der Koef
fizienten auf einer Signifikanz-Ebene mit einer Codiertechnik
codiert wird, während die restlichen Koeffizienten mit anderen
Techniken codiert werden. In der Erfindung sind ein auf Frequenz
basierendes Modellieren und ein gemeinsames bzw. Verbund-
Raum/Frequenz-Modellieren zwei verschiedene eingebettete Codier
systeme, die verwendet werden, um die Koeffizienten zu codieren,
die durch die Wavelet-Transformation der Erfindung erzeugt wor
den sind. Das auf Frequenz basierende Modellieren schließt ein
Voraussagen einer Anzahl Koeffizienten auf einer höheren Fre
quenz ein, wenn ein Koeffizient auf einer niedrigeren Frequenz
codiert wird. Das gemeinsame Raum/Frequenz-Modellieren hat den
Vorteil sowohl der bekannten Frequenzbänder als auch der benach
barten Pixel (oder Daten). Eine Ausführungsform des gemeinsamen
Raum/Frequenz-Modellierens wird hier als Horizont-Modellieren
bezeichnet.
Die Daten werden anfangs in ein Vorzeichen-Größen-Format forma
tiert, auf welches Daten folgen, die basierend auf einer Signi
fikanz zu sortieren sind. Nachdem die Daten bezüglich der vorge
gebenen Signifikanz-Metrik sortiert sind, werden die Daten co
diert. Sowohl das auf der Frequenz basierende Codieren als auch
das Horizont-Codieren kann auf einem Bit-Signifikanz-Ordnen ba
sieren. Aber es können auch verschiedene Verfahren zum Codieren
der Ereignisse verwendet werden.
Wenn ein digitales Signal x(n) für jedes x(n) mit R-Präzisions
bits dargestellt wird, dann codiert das eingegebettete Codieren
der Erfindung das höchstwertige Bit (oder Bits) für jedes x(n)
des Signals, dann das nächste signifikante Bit (oder Bits) usw.
Beispielsweise kann im Falle einer visuellen definierten Anord
nung ein Bild, welches eine bessere Qualität in der Mitte also
entlang der Ecken oder nahe der Ränder erfordert (wie einige me
dizinische Bilder), einem Codieren unterworfen werden, so daß die
niederwertigen Bits der zentralen Pixel vor den höherwertigen
Bits der Randpixel codiert werden können.
Für ein eingebettetes System, das auf einer Bit-Signifikanz-
Verzerrungs(Verzeichnungs-)maßnahme beruht, werden binäre Werte
der Daten nach der Größe geordnet. Wenn die Werte nicht-negative
ganze Zahlen sind, wie es bezüglich der Intensität von Pixels
vorkommt, ist die Reihenfolge, die angewendet werden kann, die
Bitebenen-Reihenfolge, (beispielsweise von der höchstwertigen zu
der niedrigstwertigen Bitebene). In Ausführungsformen, in wel
chen auch negative Zweierkompliment-Ganzzahlen zugelassen sind,
ist die eingebettete Reihenfolge des Vorzeichenbits dasselbe wie
das erste Nicht-Null-Bit des Absolutwerts der ganzen Zahl. Daher
wird das Vorzeichenbit nicht beachtet, bis ein Nicht-Null-Bit
codiert wird. Folglich sind die möglichen Werte für ein Ereignis
in dem eingebetteten Signifikanz-System der Erfindung dreifach,
bevor das Vorzeichenbit codiert wird. Die dreifachen Ereignisse
sind "nicht-signifikant", "positiv-signifikant" und "negativ
signifikant". Beispielsweise ist mit Hilfe einer Vorzeichengrö
ßen-Schreibweise die 16 Bit-Zahl - 7:
1000000000000111.
Auf einer Bitebenen-Basis sind die ersten zwölf Entscheidungen
"nicht-signifikant". Das erste 1 Bit kommt bei der dreizehnten
Entscheidung vor, die "negativ-signifikant" ist. Nachdem das
Vorzeichenbit codiert ist, werden die möglichen Ereignisse auf
binäre reduziert, d. h. 0,1. Die 14-ten und 15-ten-Ereignisse
sind beide "1".
In einer Ausführungsform der Erfindung wird eine Liste verwen
det, um eine Spur der Koeffizienten zu erhalten. In einer Aus
führungsform unterscheidet ein Einbit Flag, das als das Gruppen-
Flag bezeichnet wird, das jedem Koeffizienten zugeordnet ist,
Koeffizienten, deren Vorzeichenbit noch nicht codiert worden
ist, von den Koeffizienten mit dem bereits codierten Vorzeichen
bit. In einer anderen Ausführungsform können zwei oder mehr Li
sten statt eines Flag-Bits verwendet werden. In anderen Ausfüh
rungsformen wird eine einzige Liste ohne ein Flag verwendet.
In einer weiteren Ausführungsform werden Listen überhaupt nicht
verwendet. Alle Entscheidungen für einen Koeffizienten werden
erzeugt und durch Signifikanz kenntlich gemacht, bevor irgend
welche Entscheidungen für den nächsten Koeffizienten erzeugt
werden. Hierdurch entfällt die Notwendigkeit, alle Koeffizienten
in Listen zu speichern.
Die folgenden Flußdiagramme in Fig. 25a bis 30b sind Ausfüh
rungsformen der Codier- und Decodierprozesse der Erfindung.
Fig. 25a und 25b sind ein Flußdiagramm, das den Coder-Transforma
tions- und Modellierprozeß der Erfindung erläutert. In Fig. 25a
und 25 beginnt der Coder-Transformations- und Modellierprozeß
mit Gewinnen von eingegebenen Daten (Verarbeitungsblock 2501).
Nach Gewinnen von eingegebenen Daten verwendet die Erfindung ein
reversibles Wavelet-Filter (Verarbeitungsblock 2502).
Als nächstes wird durch eine Untersuchung bestimmt, ob eine
weitere Zerlegungsebene gewünscht wird (Verarbeitungsblock
2503). Wenn eine weitere Zerlegungsebene gewünscht wird, wird
die Verarbeitung beim Verarbeitungsblock 2504 fortgesetzt, in
welchem an das reversible Filter die LL-Koeffizienten angelegt
werden, die sich aus der unmittelbar vorhergehenden Zerlegung
ergeben, und die Verarbeitung geht zurück auf den Verarbeitungs
block 2503. Auf diese Weise ermöglicht die Erfindung, eine An
zahl Zerlegungsebenen durchzuführen.
Wenn eine weitere Zerlegungsebene nicht gewünscht wird, geht
die Verarbeitung auf Verarbeitungsblock 2506 über, in welchem
das Gruppen-Flag für jeden Koeffizienten in der A-Gruppe initia
lisiert wird. Nach einem Initialisieren des Gruppen-Flags wird
die Bitebene für den A-Durchgang SA auf die höchstwertige Bite
bene (max) gesetzt (Verarbeitungsblock 2507). Als nächstes wird
die Bitebene für den B-Durchgang SB auf die nächst höchstwertige
Bitebene (max-1) gesetzt (Verarbeitungsblick 2508).
Dann wird bei einer Untersuchung bestimmt, ob die Bitebene für
den A-Durchgang SA mit einem auf Frequenz basierenden Modell zu
codieren ist (Verarbeitungsblock 2509). Wenn die Bitebene SA zu
dem auf Frequenz basierenden Modell zu codieren ist, wird die
Verarbeitung beim Verarbeitungsblock 2510 fortgesetzt, wobei je
der Koeffizient mit dem auf Frequenz basierenden Modell und dem
Entropie-Code modelliert wird. Wenn andererseits die Bitebene SA
nicht mit dem auf Frequenz basierenden Modell zu codieren ist,
wird die Verarbeitung beim Verarbeitungsblock 2511 fortgesetzt,
in welchem jeder Koeffizient mit einem gemeinsamen Raum/Fre
quenz-Modell und Entropie-Code modelliert wird.
Auf jeden Fall wird die Verarbeitung danach beim Verarbeitungs
block 2512 fortgesetzt, in welchem durch eine Untersuchung be
stimmt wird, ob die Bitebene SA größer oder gleich null ist, wo
durch angezeigt wird, ob sie die letzte Bitebene ist. Wenn die
Bitebene SA größer oder gleich null ist, geht die Verarbeitungs
schleife auf den Verarbeitungsblock 2509 zurück. Wenn dagegen
die Bitebene SA nicht größer oder gleich null ist, geht die Ver
arbeitung beim Verarbeitungsblock 2513 weiter, bei welchem durch
eine Untersuchung bestimmt wird, ob die Bitebene SB größer oder
gleich null ist, so daß der Prozeß festlegt, ob die Bitebene die
letzte Bitebene ist, um einen B-Durchlauf vorzunehmen. Wenn die
Bitebene SB größer oder gleich null ist, wird die Verarbeitung
beim Verarbeitungsblock 2509 fortgesetzt. Wenn jedoch die Bite
bene SB nicht größer oder gleich null ist, wird die Verarbeitung
beim Verarbeitungsblock 2514 fortgesetzt, wobei codierte Daten
entweder auf einem Kanal gesendet oder in einem Speicher gespei
chert werden. Nach einem Speichern oder Senden der codierten Da
ten, endet der Coder-Transformations- und Modellierprozeß der
Erfindung.
Fig. 26a und 26b stellen ein Coder-Transformations- und Model
lier-Prozeß der Erfindung dar. In Fig. 26a beginnt der Decoder-
Transformations- und Modellierprozeß der Erfindung durch Wieder
auffinden codierter Daten (Verarbeitungsblock 2601). Die codier
ten Daten können von einem Kanal aus oder von einem Speicher
oder einem anderen Übertragungssystem empfangen werden. Nach
Wiederauffinden der codierten Daten, wird ein Gruppen-Flag für
jeden Koeffizienten in der A-Gruppe initialisiert (Verarbei
tungsblock 2601). Nach dieser Initialisierung wird die Bitebene
für den A-Durchgang SA auf die höchstwertige Bitebene (max)
(Verarbeitungsblock 2603) gesetzt, und die Bitebene für den B-
Durchgang SB wird auf die nächste Bitebene nach der höchstwerti
gen (max-1) (Verarbeitungsblock 2604) gesetzt. Dann wird der
Wert jedes Koeffizienten auf einen Anfangswert null gesetzt
(Verarbeitungsblock 2605).
Nach Initialisieren des Wertes jedes Koeffizienten auf null,
wird durch eine Untersuchung bestimmt, ob die Bitebene SA somit
einem auf Frequenz basierenden Modell zu decodieren ist oder
nicht (Verarbeitungsblock 2606). Wenn die Bitebene SA mit einem
auf Frequenz basierenden Modell zu decodieren ist, geht die Ver
arbeitung beim Verarbeitungsblock 2607 weiter, in welchem jeder
Koeffizient mit einem auf Frequenz basierenden Modell und einem
Entropie-Code modelliert wird. Wenn die Bitebene SA nicht mit
einem auf Frequenz basierenden Modell zu modellieren ist, geht
die Verarbeitung beim Verarbeitungsblock 2608 weiter, in welchem
jeder Koeffizient mit einem gemeinsamen Raum/Frequenz-Modell und
einem Entropie-Decodieren modelliert wird.
Nachdem jeder Koeffizient modelliert ist, geht die Verarbeitung
beim Verarbeitungsblock 2609 weiter, in welchem die Bitebene SA
festlegt, wenn es die letzte Ebene ist, indem geprüft wird, ob
sie größer oder gleich null ist. Wenn die Bitebene SA größer
oder gleich null ist, wird die Verarbeitung beim Verarbeitungs
block 2606 fortgesetzt. Wenn dagegen die Bitebene SA nicht grö
ßer oder gleich null ist, wird durch einen Test bestimmt, ob die
B-Durchgang-Bitebene SB größer oder gleich null ist (Verarbei
tungsblock 2610), wodurch angezeigt wird, daß es die letzte Bit
ebene für den B-Durchgang ist. Wenn dem so ist, wird die Verar
beitung beim Verarbeitungsblock 2606 für ein weiteres Decodieren
fortgesetzt. Wenn dagegen die Bitebene für den B-Durchgang SB
nicht größer oder gleich null ist, wird ein inverses reversibles
Filter bei den Koeffizienten für die gröbste Zerlegungsebene an
gewendet (Verarbeitungsblock 2611). Dann wird durch einen Test
bestimmt, ob alle Ebenen invers gefiltert worden sind (Verarbei
tungsblick 2612). Wenn dem nicht so ist, wird das inverse rever
sible Filter wieder an den Koeffizienten auf der gröbsten ver
bleibenden Zerlegungsebene angelegt (Verarbeitungsblock 2613).
Danach wird mit der Verarbeitung auf den Verarbeitungsblock 2612
zurückgegangen, um noch einmal zu testen, ob alle Ebenen invers
gefiltert worden sind.
Sobald alle Ebenen invers gefiltert worden sind, wird die Ver
arbeitung beim Verarbeitungsblock 2612 fortgesetzt, in welchem
es zu einem Speichern oder einer Übertragung von rekonstruierten
Daten kommt.
Fig. 27a und 27b veranschaulichen eine Ausführungsform des Pro
zesses zum Modellieren jedes Koeffizienten. Der dargestellte
Prozeß veranschaulicht den Modellierprozeß entweder für auf Fre
quenz basierendes oder JSF-Modellieren und ein Codieren oder De
codieren. Das heißt, jeder der vier Blöcke (2507, 2508, 2607,
2608) können mit dem Modellierprozeß der Fig. 28a und 28b imple
mentiert werden. In Fig. 27 beginnt ein Anfangsprozeß durch Ini
tialisieren einer Untersuchung, ob das Modellieren in einem
Durchgang durchzuführen ist (Verarbeitungsblock 2701).
Wenn das Modellieren nicht in einem Durchgang durchzuführen
ist, wird durch eine Untersuchung bestimmt, ob die Bitebene SA
größer als die Bitebene SB ist (Verarbeitungsblock 2702). Wenn
dies nicht ist, dann geht der Prozeß auf den Verarbeitungsblock
2703 über, in welchem ein Flag (do_A_flag) gelöscht wird, um an
zuzeigen, daß ein A-Durchgang nicht durchzuführen ist. Wenn die
Bitebene SA größer als die Bitebene SB ist, dann wird die Ver
arbeitung beim Verarbeitungsblock 2704 fortgesetzt, wobei das
Flag (do_A_flag) gesetzt wird, um anzuzeigen, daß ein A-Durch
gang durchzuführen ist.
Entweder nach dem Verarbeitungsblock 2703 oder 2704 wird eine
Verarbeitung beim Verarbeitungsblock 2705 fortgesetzt, bei wel
chem durch eine Untersuchung bestimmt wird, ob die Bitebene SB
gleich der Bitebene SA ist. Wenn Bitebenen nicht gleich sind,
wird bei der Erfindung ein Flag (do_B_flag) gelöscht, um zu
verhindern, daß ein B-Durchgang vorkommt (Verarbeitungsblick
2705), und die Verarbeitung wird danach beim Block 2707 fortge
setzt. Wenn die Bitebene SB gleich der Bitebene SA ist, wird das
do_B_flag Flag gesetzt, um anzuzeigen, daß ein B-Durchgang
durchzuführen ist (Block 2706), und die Verarbeitung wird danach
beim Block 2707 fortgesetzt.
Beim Block 2707 wird durch eine Untersuchung bestimmt, ob das
A-Durchgangsflag gesetzt wird, und das Null- bzw. Nichtbaum-Mo
dellieren durchzuführen ist. Wenn das Flag anzeigt, daß ein A-
Durchgang vorkommt und ein Nullbaum-Modellieren durchzuführen
ist, wird ein "bestimmtes/unbestimmtes"-Flag bei dem "unbestimm
ten Zustand für jeden Koeffizienten initialisiert (Block 2708)
und die Verarbeitung geht beim Block 2709 weiter. Wenn dagegen
entweder das A-Durchgang-Anzeigeflag oder die Nullbaum-Model
lieranzeige nicht gesetzt wird, geht die Verarbeitung direkt
beim Block 2709 weiter. Im Block 2709 wird der erste Koeffizient
auf die Veränderliche C gesetzt.
Sobald der erste Koeffizient auf die Veränderliche C gesetzt
ist, wird durch eine Untersuchung bestimmt, ob das B-Durchgang-
Anzeigeflag gesetzt ist (Verarbeitungsblock 2719). Wenn das B-
Durchgang-Anzeigeflag (do_B_flag) gesetzt ist, wird bei der Er
findung ein B-Durchgang beim Koeffizienten C durchgeführt (Block
1710) und die Verarbeitung wird beim Block 2711 fortgesetzt.
Wenn dagegen das B-Durchgang-Flag nicht gesetzt ist, dann wird
ein B-Durchgang nicht bei C durchgeführt und die Verarbeitung
wird direkt beim Block 2711 fortgesetzt.
Dann wird bei einer Untersuchung bestimmt, ob das A-Durchgang
Anzeigeflag (do_A_flag) gesetzt ist (Block 2711). Wenn dieses
Flag gesetzt ist, dann wird ein A-Durchgang beim Koeffizienten C
durchgeführt (Block 2717). Danach wird die Verarbeitung beim
Block 2713 fortgesetzt. Wenn das A-Durchgang-Anzeigeflag nicht
gesetzt ist, geht die Verarbeitung beim Block 2713 weiter, ohne
einen A-Durchgang beim Koeffizienten C durchzuführen.
Beim Block 2713 wird durch eine Untersuchung bestimmt, ob der
Koeffizient C der letzte Koeffizient ist. Wenn der Koeffizient
nicht der letzte Koeffizient ist, wird die Verarbeitung beim
Block 1714 fortgesetzt, wobei der nächste Koeffizient der Verän
derlichen C zugeordnet wird, und die Verarbeitung beim Block
2719 Weitergeht. Wenn jedoch der Koeffizient C der letzte Koef
fizient ist, wird die Verarbeitung beim Block 2715 fortgesetzt,
wobei eine Untersuchung festlegt, ob das B-Durchgangsflag (do
_B_flag) gesetzt ist. Wenn dieses Flag gesetzt ist, wird die
Bitebene SB gleich der Bitebene SB-1 gesetzt (Block 2716) und
die Verarbeitung geht beim Block 2717 weiter. Wenn das B-Durch
gang-Anzeigeflag nicht gesetzt ist, geht die Verarbeitung beim
Block 2717 weiter. Im Block 2717 wird durch eine Untersuchung
bestimmt, ob das A-Durchgangsflag gesetzt ist. Wenn es gesetzt
ist, dann wird die Bitebene SA gleich der Bitebene SA-1 gesetzt
(Block 2718), und die Verarbeitung endet. Ebenso endet, wenn das
A-Durchgangsflag nicht gesetzt ist, die Verarbeitung unmittel
bar.
In einigen Ausführungsformen kann, ob ein Koeffizient in einer
ganz bestimmten Bitebene in der A- oder B-Gruppe ist, ohne Ver
wenden eines Flag-Bits bestimmt werden. Hierdurch wird ein Spei
cherbit pro Koeffizient gespart, was bei großen Bildern von Be
deutung ist. Statt dessen wird eine Maske mit Hilfe einer UND-
Logik mit einem Koeffizienten verglichen. Wenn das Ergebnis der
UND-Logik null ist, dann ist das Bit in der A-Gruppe; andern
falls ist es in der B-Gruppe. Ein Beispiel dieser Masken ist in
Tabelle 7 für 8 Bitebenen dargestellt. Diese Masken sind das
Zweierkomplement von 2(Bitebene+1) (ohne das Vorzeichenbit).
Da unabhängige Masken dem A- bzw. dem B-Durchgang zugeordnet
werden können (was hiermit mit MA und MB bezeichnet ist), können
soviele A-Durchgänge erforderlichenfalls vor dem entsprechenden
B-Durchgang durchgeführt werden. In einer Ausführungsform mit 17
Bitebenen werden drei A-Durchgänge durchgeführt; dann werden
gleichzeitig 14 A- und B-Durchgänge und schließlich zwei B-
Durchänge durchgeführt. Da A-Durchgangsentscheidungen üblicher
weise wirksamer als B-Durchgang-Entscheidungen codiert werden
können, kann ein Durchführen von mehreren A-Durchgängen anfangs
eine Qualität für eine verlustbehaftete Kompression verbessern.
Fig. 28a und 28b stellen eine Ausführungsform des Codierers der
Erfindung dar, welcher einen verkleinerten Flag-Speicher be
nutzt, (wie später noch in der detaillierten Beschreibung ausge
führt wird). In Fig. 28a beginnt der Coder-Transformations- und
Modellierprozeß durch Erwerben eingegebener Daten (Block 2801).
Danach wird bei der Erfindung ein reversibles Wavelet-Filter
verwendet (Block 2802). Als nächstes wird bei einer Untersuchung
bestimmt, ob eine andere Zerlegungsebene gewünscht wird (Block
2803).
Wenn dies gewünscht wird, geht die Verarbeitung beim Block 2804
weiter, bei welchem an das reversible Filter die LL-Koeffizien
ten angelegt werden, welche sich aus der unmittelbar vorherge
henden Kompression ergaben, und mit der Verarbeitung wird auf
Block 2803 zurückgegangen. Auf diese Weise kann bei der Erfin
dung eine Anzahl Zerlegungsebenen durchgeführt werden. Wenn eine
andere Zerlegungsebene nicht gewünscht wird, geht die Verarbei
tung beim Block 2805 weiter, wobei die Bitebene für den A-Durch
gang SA auf die höchstwertige Bitebene (max) gesetzt wird. Als
nächstes wird die Bitebene für den B-Durchgang SB auf die dem
höchstwertigen Bit nächstkommende Bitebene (max-1) gesetzt
(Block 2806).
Als nächstes wird die Maske MA auf gesetzt. (Block
2807). Die Maske MB wird gesetzt (Block 2808). Dann
wird durch eine Untersuchung bestimmt, ob die Bitebene für den
A-Durchgang SA mit einem auf Frequenz basierenden Modell codiert
wird (Block 2808). Wenn die Bitebene SA in dem auf Frequenz ba
sierenden Modell zu codieren ist, wird mit der Verarbeitung beim
Block 2809 fortgefahren, wo ein Bit jedes Koeffizienten mit dem
auf Frequenz basierenden Modell und einem Entropie-Code model
liert wird. Wenn andererseits die Bitebene SA nicht mit dem auf
Frequenz basierenden Modell zu codieren ist, wird beim Block
2810 fortgefahren, wobei ein Bit jedes Koeffizienten mit einem
gemeinsamen Raum/Frequenz-Modell und einem Entropie-Code model
liert wird.
Auf jeden Fall wird die Verarbeitung beim Block 2811 fortge
setzt, wo durch eine Untersuchung bestimmt wird, ob die Bitebene
SA größer oder gleich null ist, wodurch angezeigt wird, ob es
die letzte Bitebene ist. Wenn die Bitebene SA größer oder gleich
null ist, wird mit der Verarbeitungsschleife auf Block 2808 zu
rückgegangen. Wenn dagegen die Bitebene SA nicht größer oder
gleich null ist, wird beim Block 2812 fortgefahren, wobei durch
eine Untersuchung bestimmt wird, ob die Bitebene SB größer oder
gleich null ist, so daß der Prozeß festlegt, wenn die Bitebene
die letzte Bitebene ist, um einen Bit-Durchgang vorzunehmen.
Wenn die Bitebene SB größer oder gleich null ist, wird beim
Block 2808 fortgefahren. Wenn dagegen die Bitebene SB nicht grö
ßer oder gleich null ist, wird beim Block 2813 fortgefahren, in
welchem codierte Daten entweder auf einem Kanal gesendet oder in
einem Speicher gespeichert werden. Nach einem Speichern oder
Senden der codierten Daten endet der Coder-Transformations- und
Modellierprozeß der Erfindung.
Fig. 29a und 29b veranschaulichen eine alternative Ausführungs
form des Decoder-Transformations- und Modellierprozesses der Er
findung, wobei ein verkleinerter Flag-Speicher verwendet wird.
In Fig. 29A beginnt der Decoder-Transformations- und Modellier
prozeß der Erfindung durch ein Wiederauffinden codierter Daten
(Block 2901). Die codierten Daten können von einem Kanal oder
einem Speicher oder einem anderen Übertragungssystem erhalten
werden. Sobald die Codedaten empfangen sind, wird die Bitebene
für den A-Durchgang SA auf die höchstwertige Bitebene (max)
(Block 2903) gesetzt, und die Bitebene für den B-Durchgang SB
wird auf die der höchstwertigen Ebene am nächsten kommende Bite
bene (max-1) gesetzt (Block 2904). Nach einem Initialisieren des
Wertes für jeden Koeffizienten auf null wird der Wert jedes
Koeffizienten auf einen Anfangswert null gesetzt (Block 2905).
Dann wird die Maske MB auf gesetzt (Block 2902), und
die Maske MA wird auf gesetzt (Block 2915).
Dann wird durch eine Untersuchung bestimmt, ob die Bitebene SA
mit einem auf Frequenz basierenden Modell zu decodieren ist oder
nicht (Block 2906). Wenn die Bitebene SA mit einem solchen Mo
dell zu decodieren ist, wird beim Block 2907 fortgefahren, in
welchem ein Bit jedes Koeffizienten mit einem auf Frequenz ba
sierenden Modell und einem Entropie-Decodieren modelliert wird.
Wenn die Bitebene SA nicht mit einem auf Frequenz basierenden
Modell zu decodieren ist, wird beim Block 2908 fortgefahren, wo
bei ein Bit jedes Koeffizienten mit einem gemeinsamen Rau.
Nachdem jeder Koeffizient modelliert ist, wird beim Block 2909
fortgefahren, in welchem die Bitebene SA festlegt, ob sie die
letzte Bitebene ist, indem geprüft wird, ob sie größer oder
gleich null ist. Wenn die Bitebene SA größer oder gleich null
ist, wird beim Block 2906 fortgefahren. Wenn dagegen die Bitebe
ne SA nicht größer oder gleich null ist, dann wird bestimmt, ob
die B-Durchgangs-Bitebene SB größer oder gleich null ist (Block
2910), um dadurch anzuzeigen, daß es die letzte Bitebene für
einen B-Durchgang ist. Wenn dem so ist, wird mit der Verarbei
tung beim Block 2902 für ein weiteres Decodieren fortgefahren
Wenn dagegen die Bitebene für den B-Durchgang SB nicht größer
oder gleich null ist, wird ein inverses reversibles Filter bei
den Koeffizienten für die gröbste Zerlegungsebene angewendet
(Block 2911). Dann wird bestimmt, ob alle Ebenen invers gefiltert
worden sind (Block 2912) und wenn dem nicht so ist, wird das in
verse, reversible Filter wieder an den Koeffizienten auf der
gröbsten verbleibenden Zerlegungsebene verwendet (Block 2913).
Danach wird mit der Verarbeitung auf Block 2912 zurückgegangen,
in welcher wieder einmal bestimmt wird, ob alle Ebenen invers
gefiltert sind. Sobald alle Ebenen invers gefiltert sind, wird
mit der Verarbeitung beim Block 2912 fortgefahren, bis zu einem
Speichern oder einer Übertragung von rekonstruierten Daten.
Fig. 30 und Fig. 30b veranschaulichen eine Ausführungsform des
Prozesses zum Modellieren jedes Koeffizienten. Ähnlich wie in
Fig. 27a und 27b kann der Prozeß der Fig. 30a und 30b verwendet
werden, um die Modellierschritte in Fig. 28a bis 29b zu implemen
tieren. In Fig. 30a beginnt ein Initialisierprozeß dadurch, daß
zuerst geprüft wird, ob ein A-Durchgang gewünscht wird, und ob
SA größer oder gleich 0 ist (Block 3001). Wenn dem so ist, wird
das Flag (do_A_flag), da anzeigt, daß ein A-Durchgang durchzu
führen ist, gesetzt (Block 3004) und es wird beim Block 3002
fortgefahren. Anderenfalls wird das Flag (do_A_flag) gelöscht
(Block 3003).
Wenn die Bitebene SA größer als die Bitebene SB ist, dann wird
beim Block 3004 fortgefahren, wobei ein Flag gesetzt wird, um
anzuzeigen, daß ein A-Durchgang vorgekommen ist. Wenn die Bit
ebene SA nicht größer als die Bitebene SB ist, dann wird beim
Block 3003 fortgefahren, in welchem das Flag, das einen A-Durch
gang anzeigt, angenommen wird, um es zu löschen. Nach jedem der
Blöcke 3003 oder 3004 wird die Verarbeitung von Block 3002 fort
gesetzt, wobei bestimmt wird, ob die Bitebene SB größer oder
gleich der Bitebene SA ist, und wenn ein B-Durchgang gewünscht
wird. Wenn die Bitebenen nicht gleich sind, wird bei der Erfin
dung ein Flag (do_B_flag) gesetzt, um zu verhindern, daß ein B-
Durchgang vorkommt (Block 3005) und die Verarbeitung geht beim
Block 3007 weiter. Wenn die Bitebene SB gleich der Bitebene SA
ist, wird das (do_B_flag) gesetzt, um anzuzeigen, daß ein B-
Durchgang durchgeführt ist (Block 3006), und danach wird mit der
Verarbeitung beim Block 3007 fortgefahren.
Block 3007 wird bestimmt, ob das A-Durchgangsflag gesetzt
und das Nullbaum-Modellieren durchzuführen ist. Wenn das
Flag anzeigt, daß ein A-Durchgang vorgekommen ist und ein Null
baum-Modellieren durchzuführen ist, wird ein "bestimmtes/unbe
stimmtes" Flag in dem "unbestimmten" Zustand für jeden Koeffi
zienten initialisiert, welcher Kinder hat (Block 3008), und es
wird beim Block 3009 fortgefahren. Wenn dagegen entweder das A-
Durchgang-Anzeigeflag oder die Nullbaum-Modellieranzeige nicht
gesetzt sind, wird direkt beim Block 3009 mit der Verarbeitung
fortgefahren. Im Block 3009 wird der erste Koeffizient auf die
Veränderliche C gesetzt.
Sobald der erste Koeffizient der Veränderlichen C zugeordnet
worden ist, wird bestimmt, ob das B-Durchgangs-Anzeigeflag ge
setzt ist (Block 3019). Wenn das B-Durchgangs-Anzeigeflag (do
_B_flag) gesetzt ist, wird bei der Erfindung ein B-Durchgang
beim Koeffizienten C durchgeführt (Block 3010) und die Verarbei
tung wird beim Block 3011 fortgesetzt. Wenn dagegen das B-Durch
gangs-Flag nicht gesetzt ist, dann wird ein B-Durchgang bei der
Veränderlichen C nicht durchgeführt, und die Verarbeitung wird
direkt beim Block 3011 fortgesetzt.
Dann wird bestimmt, ob der A-Durchgangs-Anzeigeflag gesetzt
worden ist (Block 3011). Wenn dieses Flag gesetzt worden ist,
dann wird ein A-Durchgang beim Koeffizienten durchgeführt (Block
3017). Danach wird beim Block 3013 fortgefahren. Wenn das A-
Durchgangs-Anzeigeflag gesetzt ist, wird beim Block 3013 fortge
fahren, ohne einen A-Durchgang beim Koeffizienten C durchzufüh
ren. Beim Block 3013 wird bestimmt, ob der Koeffizient C der
letzte Koeffizient ist.
Wenn der Koeffizient C nicht der letzte ist, wird beim Block
3013 fortgefahren, wobei der nächste Koeffizient der Veränderli
chen C durchgeführt wird, und die Verarbeitung beim Block 3019
fortgesetzt wird. Wenn jedoch der Koeffizient der letzte Koeffi
zient ist, wird beim Block 3015 fortgefahren, wobei bestimmt
wird, ob das B-Durchgangsflag (do_B_flag) gesetzt wird. Wenn das
B-Durchgangsflag gesetzt ist, wird die Bitebene SB gleich der
Bitebene SB-1 gesetzt (Block 3016) und es wird beim Block 3017
fortgefahren. Wenn das B-Durchgangs-Anzeigeflag nicht gesetzt
wird, wird mit der Verarbeitung beim Block 3017 fortgefahren.
Beim Block 3017 wird bestimmt, ob das A-Durchgangsflag gesetzt
ist. Wenn es gesetzt ist, wird die Bitebene SA gleich der Bit
ebene SA-1 gesetzt (Block 3018) und die Verarbeitung beendet.
Wenn das A-Durchgangsflag nicht gesetzt ist, wird die Verarbei
tung ebenfalls unmittelbar beendet.
In einem pyramidalen System können die Koeffizienten in Sätzen
gruppiert werden, wobei eine Baumstruktur verwendet wird. Die
Wurzel jedes Baumes ist ein rein tiefpaß-gefilterter Koeffi
zient. Fig. 5 veranschaulicht die Baumstruktur eines rein tief
paß-gefilterten Koeffizienten des transformierten Bildes. Für
ein zweidimensionales Signal, wie ein Bild, hat die Wurzel des
Baums drei "Kinder" und der Rest der Verzweigungspunkte haben
jeweils vier Kinder. Der Baum begrenzt hierarchisch nicht die
zweidimensionalen Signale. Beispielsweise hat für ein eindimen
sionales Signal eine Wurzel ein Kind und nicht mit Wurzel verse
hene Verzweigungspunkte haben jeweils zwei Kinder. Höhere Dimen
sionen erfolgen von den ein- und zweidimensionalen Fällen aus.
Die Baumstruktur ist auch aus der Arbeitsweise der in Fig. 4A
bis 4C dargestellten Filter ersichtlich. Die Arbeitsweise der
Filterpaare mit einem Unterabtasten bewirkt, daß die vorher be
schriebenen Koeffizienten in Beziehung gesetzt werden.
Nachdem in der Erfindung die Koeffizienten in ein Vorzeichen-
Größen-Format gebracht worden sind, bestimmt ein Kontext-Modell,
welches der verschiedenen Codierverfahren zu verwenden ist, um
die Koeffizienten weiter zu codieren. Ein auf Frequenz basieren
des Codierschema, wie ein Nullbaum-Codieren, codiert wirksam die
Signifikanzdaten, die einer vorgegebenen Unterband-Zerlegung für
einen spezifizierten Schwellenwert zugeordnet sind. Zusätzlich
zum Verwenden von Symbolen, welche die Signifikanz oder Insigni
fikanz eines einzelnen isolierten Koeffizienten in der zugeord
neten Unterband-Zerlegung anzeigen, werden die Eingänge von In
signifikanteneltern für alle Insignifikant-Kinder (mit Größen
kleiner oder gleich dem vorgegebenen Schwellenwert) zusammen
gruppiert und gemeinsam codiert. Diese Bäume werden manchmal
auch als Nullbäume bezeichnet. Diese insignifikanten Bäume wer
den mit einem einzigen dedizierten Symbol codiert, was manchmal
als eine Nullbaum-Wurzel bezeichnet wird. Wenn es jedoch einen
signifikanten Descendenten gibt, wird der Eingang eines insigni
fikanten Koeffizienten mit Hilfe des Symbols für eine "Isolierte
Null" codiert. Folglich wird ein Baum mit vier Symbolen (positiv
signifikant, negativ signifikant, isoliert null oder Nullbaum-
Wurzel) für Entscheidungen codiert, bei welchen das Vorzeichen
des Koeffizienten noch nicht codiert worden ist.
Ein auf Frequenz basierendes Codieren ist insbesondere in Kom
pressionssystemen brauchbar, da das gemeinsame Codieren von in
signifikanten Bäumen eine kleine Anzahl von Ausgangskoeffizien
ten zuläßt, um die Insignifikanz einer großen Anzahl von descen
denten Koeffizienten vorherzusagen. Da die Eingänge an dem Baum,
welcher descendenten Koeffizienten zugeordnet ist, von der Wur
zel aus vorhergesagt werden kann, werden keine zusätzlichen Sym
bole benötigt, um diese Insignifikanz zu codieren. Die Insigni
fikanz des ganzen Baums wird mit sehr niedrigen Kosten codiert.
Folglich bestehen die höherwertigen Bitebenen aus insignifikan
ten Koeffizienten, von welchen viele weder Nullbaum-Wurzeln noch
isolierte Nullen sind (d. h. sie sind Kinder in insignifikanten
Bäumen, welche nicht zu codieren sind).
Shapiro offenbar ein auf Frequenz basierendes Modell, den soge
nannten Nullbaum in US-Patent 5,321,776. Bei Shapiro′s-Verfahren
werden zwei Listen, eine dominante und eine Subordinatenliste
verwendet, um alle Koeffizienten zu speichern. Für jede Signi
fikanzebene werden zwei Durchgänge gemacht, ein dominanter
Durchgang und ein Subordinatendurchgang. In einer Ausführungs
form ist das auf Frequenz basierende Modell der Erfindung ein
Nullbau.
In einer anderen Ausführungsform wird ein auf Frequenz basie
rendes Modell, das dem Nullbaum entspricht (wie er von Shapiro
beschrieben worden ist) verwendet. Statt mehrerer Listen zu ver
wenden, wird nur eine einzige Liste verwendet, wobei jedes der
Listenelemente markiert ist, Teile einer der beiden Gruppen zu
sein. Die Trennung von Koeffizienten in eine A- und eine B-Grup
pe ist äquivalent der Trennung, die Shapiro mit dominanten bzw.
Subordinanten-Listen erreicht. Shapiro′s Benutzen von mehreren
Listen läßt eine größere Flexibilität beim Ordnen von Koeffi
zienten in der Subordinatenliste aufgrund einer größeren Soft
ware/Hardware-Komplexität zu. Bei dem Nullbaum-Verfahren mit
einer einzigen Liste werden zwei Durchgänge, der A- und der B-
Durchgang, verwendet, welche äquivalent Shapiro′s dominanten
Durchgang bzw. dem Subordinaten-Durchgang sind. Das Nullbaum-Mo
dell mit einer einzigen Liste wird nachstehend beschrieben.
Das Codiersystem der Erfindung enthält eine Liste der Koeffi
zienten in Vorzeichen-Größenform in einem Speicher. Jedes Ele
ment in der Liste hat eine Ein-Bit-Ebene, welche anzeigt, ob das
Element ein Teil der "A-" oder der "B-Gruppe"ist. Am Anfang
einer Stufe werden diese Koeffizienten, die noch nicht als
signifikant befunden worden sind, kenntlich gemacht, daß sie in
der A-Gruppe sind. Diese Koeffizienten, die vorher als signifi
kant bezüglich der vorherigen größeren Schwellenwerte befunden
worden sind, werden kenntlich gemacht als in die B-Gruppe gehö
rig. Die Liste enthält die Koeffizienten in der Reihenfolge, in
welche sie für ein Codieren bearbeitet werden. Am Anfang der al
lerersten Stufe werden alle Koeffizienten als Teile der A-Gruppe
markiert, da kein Koeffizient als signifikant festgelegt worden
ist. Wenn Koeffizienten als signifikant oder insignifikant be
stimmt werden, werden die Lebel für ihre Eingänge von der ur
sprünglichen A-Gruppen-Benennung in der B-Gruppen-Benennung ge
ändert. Diese Liste wird anschließend mit zunehmend feineren
Schwellenwerten wieder verfeinert. Das heißt, es kommen mehrere
Durchgänge durch die Liste vor.
In einer Ausführungsform sind die binären Ereignisse, welche
den Koeffizienten in der B-Gruppe entsprechen, arithmetisch un
ter einem Markov-Kontext-Modell nullter Ordnung codiert. Die
quaternären Ereignisse, die den Koeffizienten der A-Gruppe ent
sprechen, werden auch unter einem Markov-Kontext-Modell nullter
Ordnung codiert.
Die Ordnung von Koeffizienten in der Liste der Erfindung erhält
die Baumstruktur, daß kein "Kind" vor seinem Elternteil model
liert werden kann. Folglich ist eine Ordnung, welche die Baum
struktur bewahrt, festgelegt und wird durchwegs verwendet. In
einer Ausführungsform werden die Koeffizienten im Speicher in
einer Reihenfolge von der ersten verwendeten Speicherstelle aus
gespeichert. In der anderen Ausführungsform kann eine verknüpfte
Liste verwendet werden.
In einer Ausführungsform werden die Koeffizienten in einem ein
gebetteten Bit-Signifikanz- oder Bitebenen-System codiert. Da
die Koeffizienten von der höchstwertigen zu der niedrigstwerti
gen Ebene codiert werden, muß die Anzahl Bitebenen in den Daten
festgelegt werden. Bei der Erfindung ist dies dadurch erreicht,
daß eine obere Grenze in den Größen der koeffizienten Werte ge
funden wird, die aus den Daten berechnet oder aus der Tiefe des
Bildes und den Filterkoeffizienten abgeleitet worden sind. Wenn
beispielsweise die obere Grenze 149 ist, dann gibt es 8 Signifi
kanz-Bits oder 8 Bitebenen.
In Fig. 6a und 6b ist eine Ausführungsform des eine einzige Li
ste aufweisenden Nullbaum-Codierprozesses der Erfindung darge
stellt. In einer Ausführungsform kann in Fig. 6a der Modellier
prozeß der Fig. 27a und 27b verwendet werden. In Fig. 6a beginnt
der Prozeß damit, zu testen, ob das Gruppenflag für den Koeffi
zienten C auf die "A-Gruppe" gesetzt ist (Block 2321). Wenn
nicht, dann endet der Prozeß. Wenn dagegen das Gruppenflag für
den Koeffizienten C auf die "A-Gruppe" gesetzt ist, wird eine
Verarbeitung beim Block 3222 fortgesetzt, wobei bestimmt wird,
ob das "bestimmte/unbestimmte" Flag für den Koeffizienten C auf
"unbestimmt" gesetzt ist. Wenn das "bestimmte/unbestimmte" Flag
für den Koeffizienten nicht auf "unbestimmt" gesetzt ist, endet
der Prozeß. Wenn dagegen das "bestimmte/unbestimmte" Flag für
den Koeffizienten C auf "unbestimmt" gesetzt ist, wird die Ver
arbeitung beim Block 3203 fortgesetzt, wobei bestimmt wird, ob
das Bit SA des Koeffizienten C eins ist.
Wenn das Bit SA des Koeffizienten C nicht eins ist, wird beim
Block 3207 fortgefahren. Wen 84189 00070 552 001000280000000200012000285918407800040 0002019534730 00004 84070n dagegen das Bit SA des Koeffizien
ten eins ist, wird mit der Verarbeitung beim Block 3204 fortge
fahren, wobei zuerst bestimmt wird, ob das Vorzeichen des Koef
fizienten C positiv ist. Wenn das Vorzeichen des Koeffizienten C
nicht positiv ist, wird die Entscheidung als "negativ signifi
kant" in "A-Gruppen"-Kontext(en) codiert (Block 3205) und der
Prozeß wird beim Block 3229 fortgesetzt. Wenn das Vorzeichen des
Koeffizienten C positiv ist, wird die Entscheidung als "positiv
signifikant" in "A-Gruppen"-Kontext(en) codiert (Block 3203),
und der Prozeß wird beim Block 3229 fortgesetzt. Beim Block 3229
wird das Gruppenflag für C auf die "B-Gruppe" gesetzt.
Beim Block 3207 wird bestimmt, ob das Bit SA für alle die Des
cendenten (Kinder) des Koeffizienten C null ist. Wenn das Bit SA
nicht null ist, wird die Entscheidung als "insignifikant mit
signifikanten Kindern" (01) in "A-Gruppe"-Kontext(en) codiert
(Block 3208) und der Prozeß endet. Wenn dagegen das Bit SA für
alle Descendenten (Kinder) des Koeffizienten C null ist, wird
die Entscheidung als "Nullbaum-Wurzel" auf (00) in "A-Gruppen"-
Kontext(en) codiert (Block 3209). Danach wird das "bestimmt/un
bestimmt"Flag für alle die Descendenten des Koeffizienten C auf
bestimmt" gesetzt (Block 3221) und der Prozeß endet.
In einer weiteren Ausführungsform kann der Beendigungstest für
dem Prozeß darin bestehen, ob ein gewünschtes Kompressionsver
hältnis erreicht ist oder nicht. In einer Ausführungsform sind
die binären Ereignisse, die sich aus dem B-Durchgang ergeben,
unter einen Markov-Quellen-Kontext-Modell nullter Ordnung
entropie-codiert. Das 2 Bit-Alphabet(Größe 4), das sich aus dem
A-Durchgang ergibt, wird ebenfalls unter einer Markov-Quelle
nullter Ordnung durch einen quaternären (Alphabet der Größe 4)
arithmetischen Coder codiert.
In Fig. 6b und 6b (fortgesetzt) ist eine alternative Ausfüh
rungsform des Nullbaum-Codierprozesses der einzigen Liste der
Erfindung mit Hilfe eines verringerten Flag-Speichers darge
stellt. In einer Ausführungsform kann der Prozeß der Fig. 6b als
der A-Durchgang in dem Prozeß von Fig. 30 verwendet werden. In
den beiden Fig. 6b beginnt der Prozeß damit, zu untersuchen, ob
das Ergebnis eines UNDens von Koeffizienten C mit der Maske MA
null ist (Block 3201). Wenn dem nicht so ist, endet der Prozeß.
Wenn dagegen das Ergebnis des UNDens von Koeffizient C mit der
Maske MA null ist, wird die Verarbeitung beim Block 3202 fortge
setzt, wo bestimmt wird, ob das "bestimmte/unbestimmte" Flag für
den Elternteil des Koeffizienten C "unbestimmt" gesetzt ist.
Wenn das Flag für den Elternteil des Koeffizienten nicht "unbe
stimmt" gesetzt ist, endet der Prozeß. Wenn jedoch das "bestimm
te/unbestimmte" Flag für den Elternteil des Koeffizienten C auf
"unbestimmt" gesetzt ist, wird die Verarbeitung beim Block 3203
fortgesetzt, bei welchem bestimmt wird, ob das Bit SA des Koef
fizienten C eins ist.
Wenn das Bit SA des Koeffizienten C nicht eins ist, wird beim
Block 3207 fortgefahren. Wenn dagegen das Bit SA des Koeffizien
ten C eins ist, wird die Verarbeitung beim Block 3204 fortge
setzt, bei welchem bestimmt wird, ob das Vorzeichen des Koeffi
zienten C positiv ist. Wenn das Vorzeichen des Koeffizienten C
nicht positiv ist, wird die Entscheidung als "negativ signifi
kant" in "A-Gruppen"-Kontext(en) codiert (Block 3205), und der
Prozeß endet. Wenn das Vorzeichen des Koeffizienten C positiv
ist, wird die Entscheidung als "positiv signifikant" in "A-Grup
pen"-Kontext(en) codiert (Block 3206), und der Prozeß endet. In
einer Ausführungsform wird ein quaternärer Coder verwendet, und
quaternäre Entscheidungen werden in einem Kontext codiert. In
einer anderen Ausführungsform wird ein binärer Coder verwendet
und drei Kontexte werden benutzt (z. B. die drei Kontexte sind
das erste Bit der Entscheidung, das zweite Bit, bei welchem das
erste Bit null ist, und das zweite Bit, wenn das erste Bit eine
eins ist).
Beim Block 3207 wird bestimmt, ob das Bit SA für alle Descen
denten (Kinder) des Koeffizienten C null ist. Wenn das Bit SA
nicht null ist, wird die Entscheidung als "insignifikant für
signifikante Kinder", "isolierte Null", (01) in "A-Gruppen"-Kon
text(en) codiert (Block 3208), und der Prozeß endet. Wenn dage
gen das Bit SA für alle Descendenten (Kinder) des Koeffizienten
C null ist, wird die Entscheidung als "Nullbaum-Wurzel" (00) in
"A-Gruppen"-Kontext(en) codiert (Block 3209). Dann wird das "be
stimmte/unbestimmte" Flag für den Koeffizienten C auf "bestimmt"
gesetzt (Block 3210). Danach werden das "bestimmte/unbestimmte"
Flag für alle die Descendenten des Koeffizienten, welche ihrer
seits Descendenten haben, auf "bestimmt" gesetzt (Block 3211),
und der Prozeß endet.
In der Erfindung wird ein Decodieren im Sperrschritt (lockstep)
mit dem Codieren durchgeführt. In Fig. 6c ist eine Ausführungs
form des A-Durchgangs-Prozesses für einen Nullbaum-Horizont-De
codierprozeß dargestellt und sie kann in Verbindung mit dem Pro
zeß von Fig. 27 verwendet werden. In Fig. 6c beginnt der Prozeß
damit, zu untersuchen, ob das Gruppenflag für den Koeffizienten
C auf die "A-Gruppe" gesetzt ist (Block 3521). Wenn nicht, endet
der Prozeß. Wenn dem jedoch so ist, wird die Verarbeitung beim
Block 3528 fortgesetzt, bei-welchem bestimmt wird, ob das "be
stimmte/unbestimmte" Flag für den Koeffizienten C auf "unbe
stimmt" gesetzt ist. Wenn nicht, endet der Prozeß. Wenn dem so
ist, dann wird der Prozeß beim Block 3502 fortgesetzt, bei wel
chem eine ternäre Entscheidung in A-Gruppen-Kontext(en) deco
diert wird.
Dann wird bestimmt, ob die Entscheidung "positiv signifi
kant"ist (Block 3503). Wenn die Entscheidung "positiv signifi
kant" ist, wird das Vorzeichen des Koeffizienten C auf positiv
gesetzt (Block 3505). Die Größe des Koeffizienten wird auf 2SA
gesetzt (Block 3507), das Gruppenflag für den Koeffizienten C
wird auf die "B-Gruppe" gesetzt (Block 3541), und der Prozeß en
det.
Wenn die Entscheidung "nicht signifikant" ist (Block 3503),
wird bestimmt, ob die Entscheidung "negativ signifikant" ist
(Block 3504). Wenn die Entscheidung nicht "negativ signifikant"
ist, wird der Prozeß beim Block 3509 fortgesetzt, bei welchem
bestimmt wird, ob die Entscheidung eine Nullbaum-Wurzel ist.
Wenn die Entscheidung nicht eine Nullbaum-Wurzel ist, endet der
Prozeß. Wenn die Entscheidung eine Nullbaum-Wurzel ist, wird das
"bestimmte/unbestimmte" Flag für alle Descendenten des Koeffi
zienten C auf "unbestimmt" gesetzt (Block 3531), und der Prozeß
endet.
Wenn jedoch bei der Überprüfung des Blockes 3504 festgestellt
wird, daß die Entscheidung "negativ signifikant" ist, dann wird
das Vorzeichen des Koeffizienten C auf negativ gesetzt (Block
3506), die Größe des Koeffizienten wird auf 2SA gesetzt (Block
3507), das Gruppenflag für den Koeffizienten C wird auf die B-
Gruppe gesetzt (Block 3541), und der Prozeß endet.
In Fig. 6d ist eine alternative Ausführungsform des A-Durch
gangs-Prozesses für einen Nullbaum-Horizont-Decodierprozeß mit
einem verkleinerten Flag-Speicher dargestellt und sie kann in
dem in Fig. 30 beschriebenen Prozeß verwendet werden. In Fig. 6d
beginnt der Prozeß damit, zu untersuchen, ob das Ergebnis des
UNDens von Koeffizient C mit der Maske MA null ist (Block 3501).
Wenn dem nicht so ist, dann endet der Prozeß. Wenn jedoch das
Ergebnis des UNDens von Koeffizient C mit der Maske MA null ist,
wird die Verarbeitung beim Block 3508 fortgesetzt, wobei be
stimmt wird, ob das "bestimmte/unbestimmte" Flag für den Eltern
teil von C "unbestimmt" ist. Wenn dem nicht so ist, endet der
Prozeß. Wenn dem so ist, dann wird der Prozeß beim Block 3502
fortgesetzt, bei welchem die ternäre Entscheidung in A-Gruppen-
Kontext(en) decodiert wird.
Dann wird bei einer Überprüfung bestimmt, ob die Entscheidung
"positiv signifikant" ist (Block 3503). Wenn die Entscheidung
"positiv signifikant" ist, wird das Vorzeichen des Koeffizienten
positiv gesetzt (Block 3505), die Größe des Koeffizienten wird
auf 2SA gesetzt (Block 3507), und der Prozeß endet.
Wenn die Entscheidung nicht "positiv signifikant" ist, wird
festgestellt, ob sie "negativ signifikant" ist ( Block 3504).
Wenn die Entscheidung nicht "negativ signifikant" ist, wird der
Prozeß beim Block 3509 fortgesetzt, bei welchem in einer Unter
suchung festgestellt wird, ob die Entscheidung eine Nullbaum-
Wurzel ist. Wenn die Entscheidung nicht eine Nullbaum-Wurzel
ist, endet der Prozeß. Wenn die Entscheidung eine Nullbaum-Wur
zel ist, wird das "bestimmte/unbestimmte" Flag für den Koeffi
zienten C auf "bestimmt" gesetzt (Block 3510), die "bestimm
ten/unbestimmten" Flags für alle Descendenten von Koeffizienten
C, welche ihrerseits Descendenten haben, werden auf "unbestimmt"
gesetzt (Block 3511), und der Prozeß endet.
Wenn jedoch bei der Kontrolle von Block 3504 festgestellt wird,
daß die Entscheidung "negativ signifikant" ist, dann wird das
Vorzeichen des Koeffizienten C auf negativ gesetzt (Block 3506),
die Größe des Koeffizienten c wird auf 2SA gesetzt (Block 3507),
und der Prozeß endet.
Alternativen bestehen in der Wahl, die von Shapiro getroffen
worden ist, um quaternäre Entscheidungen zu verwenden, um Bäume
zu beschreiben. Es können größere Alphabete verwendet werden, um
die Kenndaten eines ganzen Baumes weiter zu spezifizieren, wenn
die Wurzel des Baumes codiert wird. In einer Ausführungsform
werden die folgenden Sätze von hexanären (6-ary) Entscheidungen
verwendet.
- -Insignifikant mit insignifikanten Kindern (Nullbaum-Wur zel)
- - Insignifikant mit mindestens einem signifikanten Kind
- - Signifikant, positiv und alle Kinder nicht-negativ
- - Signifikant, positiv und zumindest ein Kind ist negativ
- - Signifikant, negativ und alle Kinder sind nicht-positiv
- - Signifikant, negativ und zumindest ein Kind ist positiv.
In dieser Ausführungsform wird eine Vorzeichen-Information zu
sätzlich zu einer Insignifikanz für einen ganzen Baum vorausge
sagt. In einer anderen Ausführungsform können Bäume mit anderen
Vorzeichen-Zwängen oder mit Größen-Zwängen vorhergesagt werden.
Alternative Prädiktoren sind insbesondere brauchbar zum Darstel
len von Struktur oder zum Darstellen von Mehrfach-Auflösungs
merkmalen. Mit größeren Alphabeten kann die Verwendung von Mar
kov-Kontexten höherer Ordnung (wie später noch beschrieben wird)
nützlich sein.
In der Erfindung codiert ein eingebettetes Frequenz-Codieren,
wie das hier beschriebene Horizont-Ordnung-Modellieren, die ter
nären Ereignisse, die den Koeffizienten in der A-Gruppe entspre
chen. Beim Horizont-Codieren sind alle Initialisationen, die den
Codierschritten vorausgehen, identisch mit dem auf Frequenz ba
sierenden System. In einer Ausführungsform wird ein binäres En
tropie-Codieren mit drei Kontexten "A-Gruppen-Größe", "A-Grup
pen-Vorzeichen" und "B-Gruppe" durchgeführt.
Fig. 7a ist ein Flußdiagramm einer Ausführungsform des A-Durch
gangs für einen Horizont-Codierprozeß mit einer einzigen Liste
gemäß der Erfindung. Dieser Prozeß kann in dem Prozeß von Fig. 27
verwendet werden. In Fig. 7a beginnt der A-Durchgang-Prozeß da
mit, zu untersuchen, ob das Gruppenflag für einen Koeffizienten
C auf die "A-Gruppe" gesetzt ist (Block 3111). Wenn nicht, endet
der Prozeß. Wenn der Gruppenflag für den Koeffizienten C auf die
"A-Gruppe" gesetzt ist, wird die Verarbeitung beim Block 3102
fortgesetzt, bei welchem bestimmt wird, ob das Bit SA des Koef
fizienten C eins ist. Wenn das Bit SA des Koeffizienten C nicht
ein ist, wird die Entscheidung als insignifikant "0" in dem "A-
Gruppen"-Kontext codiert (Block 3103), und der Prozeß endet.
Wenn das Bits SA des Koeffizienten C eins ist, dann wird die Ver
arbeitung bei Block 3104 fortgesetzt, bei welchem bestimmt wird,
ob das Vorzeichen von Koeffizienten C positiv ist. Wenn das Vor
zeichen des Koeffizienten C positiv ist, wird die Entscheidung
"als positiv signifikant" (10) in "A-Gruppen"-Kontext(en) co
diert (Block 3106), und der Prozeß wird bei Block 3117 fortge
setzt. Wenn dagegen das Vorzeichen von Koeffizienten C nicht po
sitiv ist, wird die Entscheidung als "negativ signifikant" (11)
in "A-Gruppen"-Kontext(en) codiert (Block 3105), und der Prozeß
wird bei Block 3117 fortgesetzt. Bei Block 3117 wird das Grup
penflag für Koeffizienten C auf die "B-Gruppe" gesetzt.
Fig. 7b ist ein Flußdiagramm einer alternativen Ausführungsform
des A-Durchgangs für einen Einzellisten-Horizont-Codierprozeß
mit Hilfe eines verkleinerten Flag-Speichers. Dieser Prozeß kann
in dem Prozeß von Fig. 30 verwendet werden. In Fig. 7b beginnt der
A-Durchgangsprozeß damit, zu untersuchen, ob das Ergebnis des
UNDens von Koeffizient C mit der Maske MA null ist (3101). Wenn
nicht, dann endet der Prozeß. Wenn das Ergebnis des UNDens von
Koeffizient C mit der Maske MA null ist, wird die Verarbeitung
beim Block 3102 fortgesetzt, bei welchem in einer Untersuchung
bestimmt wird, ob das Bit SA des Koeffizienten C eins ist. Wenn
das Bit SA des Koeffizienten C nicht eins ist, wird die Ent
scheidung als insignifikant (0) in einem "A-Gruppen"-Kontext co
diert (Block 3103), und der Prozeß endet. Wenn das Bit SA des
Koeffizienten C eins ist, dann wird die Verarbeitung beim Block
3104 fortgesetzt, bei welchem mit einer Untersuchung bestimmt
wird, ob das Vorzeichen von Koeffizienten C positiv ist. Wenn
das Vorzeichen von Koeffizienten C positiv ist, wird die Ent
scheidung als "positiv signifikant" (10) in "A-Gruppen"-Kon
text(en) codiert (Gruppe 3106) und der Prozeß endet. Wenn dage
gen das Vorzeichen von Koeffizienten C nicht positiv ist, wird
die Entscheidung als "negativ signifikant" (11) in "A-Gruppen"-
Kontext(en) codiert (Block 3105), und der Prozeß endet.
In Fig. 7c ist eine Ausführungsform des A-Durchgangs-Prozesses
für einen Einzellisten-Horizont-Decodierprozeß der Erfindung
dargestellt und sie kann in dem Prozeß von Fig. 27 verwendet wer
den. In Fig. 7c beginnt der Prozeß damit, zu untersuchen, ob das
Gruppenflag für den Koeffizienten C auf die "A-Gruppe" gesetzt
ist (Block 3411). Wenn nicht, endet der Prozeß. Wenn jedoch das
Gruppenflag für den Koeffizienten C auf die "A-Gruppe" gesetzt
ist, wird die Verarbeitung beim Block 3402 fortgesetzt, bei wel
chem die quaternäre Entscheidung in A-Gruppen-Kontext(en) deco
diert wird.
Dann wird bei der Untersuchung bestimmt, ob die Entscheidung
"positiv signifikant" ist (Block 3403). Wenn die Entscheidung
"positiv signifikant" ist, wird das Vorzeichen des Koeffizienten
C positiv gesetzt (Block 3405), die Größe des Koeffizienten wird
auf 2SA gesetzt (Block 3407), das Gruppenflag für den Koeffi
zienten wird auf die "B-Gruppe" gesetzt (Block 3418) und der
Prozeß endet.
Wenn die Entscheidung nicht "positiv signifikant" ist, wird bei
der Untersuchung festgestellt, ob sie "negativ signifikant" ist
(Block 3404). Wenn die Entscheidung nicht "negativ signifikant"
ist, endet der Prozeß. Wenn jedoch die Entscheidung "negativ
signifikant" ist, dann wird das Vorzeichen des Koeffizienten C
negativ gesetzt (Block 3406), die Größe von C wird auf 2SA ge
setzt (Block 3407), das Gruppenflag für den Koeffizienten C wird
auf "B-Gruppe" gesetzt (Block 3418), und der Prozeß endet.
In Fig. 7d ist eine alternative Ausführungsform des A-Durch
gangs-Prozesses für einen Einzellisten-Horizont-Decodierprozeß
mit Hilfe eines verkleinerten Flag-Speichers dargestellt und sie
kann in dem Prozeß der Fig. 30 verwendet werden. In Fig. 7d be
ginnt der Prozeß damit, zu untersuchen, ob das Ergebnis des
UNDens von Koeffizient C mit der Maske MA null ist (Block 3401).
Wenn dem nicht so ist, dann endet der Prozeß. Wenn jedoch das
Ergebnis des UNDens von Koeffizient C mit der Maske MA null ist,
wird die Verarbeitung beim Block 3402 fortgesetzt, bei welchem
die ternäre Entscheidung in A-Gruppen-Kontext(en) decodiert
wird.
Dann wird bei einer Untersuchung bestimmt, ob die Entscheidung
"positiv signifikant" ist (Block 3403). Wenn die Entscheidung
"positiv signifikant" ist, wird das Vorzeichen des Koeffizienten
C positiv gesetzt (Block 3405), die Größe des Koeffizienten wird
auf 2SA gesetzt (Block 3407), und der Prozeß endet. Wenn die
Entscheidung nicht "positiv signifikant" ist, wird bei einer Un
tersuchung bestimmt, ob sie "negativ signifikant" ist (Block
3404). Wenn die Entscheidung nicht "negativ signifikant" ist,
endet der Prozeß. Wenn jedoch die Entscheidung "negativ signifi
kant" ist, dann wird das Vorzeichen des Koeffizienten C negativ
gesetzt (Block 3406), die Größe von C wird auf 2SA gesetzt
(Block 3407) und der Prozeß endet.
In einer Ausführungsform sind der B-Durchgangsprozeß sowohl für
den Nullbaum als auch für den Horizont der Erfindung dieselben.
Ausführungsformen für den B-Durchgang-Algorithmus für den Co
dierprozeß und den Decodierprozeß sind in Fig. 8a und 8b bzw. 9a
und 9b dargestellt.
In Fig. 8a ist eine Ausführungsform des B-Durchgangsprozesses
dargestellt, der teilweise für den Nullbaum und den Einzelli
sten-Horizont-Codierprozeß verwendet wird und in dem Prozeß der
Fig. 27 verwendet werden kann. In Fig. 8a untersucht der Prozeß
anfangs, ob das Gruppenflag für den Koeffizienten C gesetzt ist
(Block 3311). Wenn nicht, dann endet der Prozeß. Wenn dagegen
das Gruppenflag gesetzt ist, wird die Verarbeitung beim Schritt
3302 fortgesetzt, bei welchem in einer Untersuchung bestimmt
wird, ob das Bit SB des Koeffizienten C "1" ist. Wenn das Bit
von SB des Koeffizienten C nicht "1" ist, dann wird die Ent
scheidung als "0" in "B-Gruppen"-Kontext(en) codiert (Block
3303), und der Prozeß endet. Wenn das Bit SB des Koeffizienten C
"1" ist, dann wird die Entscheidung als "1" in "B-Gruppen"-Kon
text(en) codiert (Block 3304), und der Prozeß endet.
In Fig. 8b ist eine alternative Ausführungsform des B-Durch
gangs-Prozesses dargestellt, welcher teilweise für einen Null
baum- und Einzellisten-Horizont-Codierprozeß verwendet werden
kann und einen verkleinerten Flag-Speicher benutzt, und sie kann
in dem Prozeß von Fig. 30 verwendet werden. In Fig. 8b wird bei
dem Prozeß anfangs untersucht, ob das Ergebnis des UNDens des
Koeffizienten C mit der Maske MB nicht-null ist (Block 3301).
Wenn nicht, dann endet der Prozeß. Wenn dagegen das Ergebnis des
UNDens von Koeffizient C mit der Maske MB nicht-null ist, wird
die Verarbeitung bei Block 3302 fortgesetzt, bei welchem be
stimmt wird, ob das Bit SB des Koeffizienten C "1" ist. Wenn das
Bit von SB des Koeffizienten nicht "1" ist, dann wird die Ent
scheidung als "0" in "B-Gruppen"-Kontext(en) codiert (Block
3303), und der Prozeß endet. Wenn das Bit SB des Koeffizienten C
"1" ist, dann wird die Entscheidung als "1" in "B-Gruppen"-Kon
text(en) codiert (Block 3304), und der Prozeß endet.
In Fig. 9a ist eine Ausführungsform des B-Durchgangs-Decodieren
der Erfindung dargestellt und sie kann in dem Prozeß der Fig. 27
verwendet werden. In Fig. 9a wird durch eine Untersuchung anfangs
bestimmt, ob das Gruppenflag für Koeffizient C auf die "B-Grup
pe gesetzt ist (Block 3611). Wenn nicht, dann endet der Prozeß.
Wenn jedoch das Gruppenflag für Koeffizient C nicht auf die "B-
Gruppe" gesetzt ist, dann werden die Entscheidungen in den "B-
Gruppen"-Kontext(en) decodiert (Block 3602). Bei einer Untersu
chung wird dann unterschieden, ob die Entscheidung eine "1" ist
(Block 3603). Wenn die Entscheidung nicht eine "1" ist, endet
der Prozeß. Wenn die Entscheidung eine "1" ist, wird das Bit SB
von Koeffizient C gesetzt (3604), und der Prozeß endet.
In Fig. 9b ist eine alternative Ausführungsform des B-Durch
gang-Codierens der Erfindung mit Hilfe eines verkleinerten Flag-
Speichers dargestellt, und sie kann in den Prozeß von Fig. 30
verwendet werden. In Fig. 30b wird bei einer Untersuchung anfangs
bestimmt, ob das Ergebnis des UNDens von Koeffizient C mit der
Maske MB nicht-null ist (Block 3601). Wenn das Ergebnis des
UNDens von Koeffizient C mit der Maske MB null ist, dann endet
der Prozeß. Wenn jedoch das Ergebnis des UNDens von Koeffizient
C mit der Maske MB nicht-null ist, dann werden die Entscheidun
gen in den "B-Gruppen"-Kontext(en) decodiert (Block 3602). Bei
einer Untersuchung wird dann entschieden, ob die Entscheidung
eine "1" ist (Block 3603). Wenn die Entscheidung nicht eine "1"
ist, dann endet der Prozeß. Wenn die Entscheidung eine "1" ist,
dann wird das Bit SB des Koeffizienten C gesetzt (Block 3604),
und der Prozeß endet.
Mit Hilfe der Verknüpfung von Nullbaum-Ordnungs-Codieren und
Horizont-Ordnungs-Codieren schafft die Erfindung ein Bit-Signi
fikanz-Codieren der Koeffizienten, welche durch die reversiblen
Wavelets erzeugt worden sind. Die Verwendung sowohl der A-Grup
pen als auch der B-Gruppe und der ternären sowie der binären Er
eignisse, welche den "A"- bzw. "B"-Durchgängen entsprechen, ist
speziell wichtig im Hinblick auf die Tatsache, daß ein Schalten
vorgenommen wird mit Hilfe des Nullbaum-Ordnens auf das Hori
zont-Ordnens am Ende eines A-Durchgangs. Dies kompensiert die
Ineffizienz in der Vorhersage, welche ein Nullbaum-Anordnen der
niederwertigen Bits begleitet. Folglich beginnt in der Erfindung
das System durch ein Nullbaum-Codieren mit Daten höherwertiger
Bits, und nach einer Anzahl Durchgänge durch die Liste, d. h.
nachdem eine Anzahl Bitebenen codiert sind, schaltet der Coder
der Erfindung, um den Rest der Daten mit Hilfe des Horizont-Co
dierens zu codieren. Die Anzahl Durchgänge kann statistisch oder
adaptiv durch Überwachen der Leistung des Nullbaum-Ordnungs-Co
dierblocks gewählt werden.
In einer Ausführungsform werden fünf binäre Kontext-Fächer
(bins) verwendet. Dies ist klein im Vergleich mit anderen Syste
men, wie JBIG, welches etwas mehr als 1024 Kontexte verwendet.
Eine Kompression kann mit Hilfe von mehr Kontext-Fächern verbes
sert werden. Entscheidungen können an einer räumlichen Adresse,
einer Ebene und/oder einer Bitposition konditioniert werden.
Entscheidungen können auch durch vorher decodierte Daten kondi
tioniert werden, welche nahe bei den aktuellen Daten in einer
räumlichen Adresse, einer Ebene und/oder einer Bitposition sind.
Im allgemeinen können Markov-Kontexte nullter Ordnung, die vor
her beschrieben worden sind, durch Markov-Kontexte höherer Ord
nung ersetzt werden.
Mehrere Beispiele folgen. Das höchstwertige (und folglich sehr
leicht vorhersagbare) Bit jeder Mantisse (B-Gruppendaten in
einigen Ausführungsformen) könnte einen anderen Kontext als den
Rest der Bits verwenden. Die signifikante/nicht-signifikante
Entscheidung könnte in derselben Entscheidung konditioniert wer
den, die für räumlich nahe, vorherige Koeffizienten in derselben
Transformationsebene gemacht worden sind. In ähnlicher Weise
könnten die Vorzeichenbits für signifikante Koeffizienten an dem
Vorzeichen für räumlich nahe, vorherige Koeffizienten auf der
selben Ebene oder auf dem Vorzeichen des Koeffizienten des
Elternteils konditioniert werden.
Kontextmodell-Verbesserungen können insbesondere wichtig sein,
wenn Bilder verdichtet werden, welche eine räumliche oder eine
mehrfache Auflösungsstruktur haben Grauskala-Bilder von Zeilen-
Zeichnungen oder Texte sind ein Beispiel von Bildern mit diesen
beiden Strukturtypen. Verbesserungen sind auch wichtig zum Ver
dichten von Dateien, welche bereits mit einem spezifischen Peak-
Fehler komprimiert oder dekomprimiert worden sind.
Die Erfindung kann auch in Hardware und/oder Software ausge
führt werden. Eine Hardware-Implementation der Erfindung erfor
dert ein Implementieren der Wavelet-Filter, ein Speicher/Daten
fluß-Management, um die Daten für die Filter zu schaffen, ein
Kontext-Modell, um das eingebettete Codieren der Erfindung zu
steuern, ein Speicher/Daten-Flußmanagement, um die Daten für das
Kontext-Modell zu schaffen, und einen binären Entropie-Coder.
Eine Ausführungsform des Vorwärts-Wavelet-Filters der Erfindung
ist in Fig. 10 dargestellt. Das in Fig. 10 dargestellte Wavelet-
Filter paßt 4 16 Bit Zweier-Komplement-Eingabepixels an, die als
x(2)-x(5) dargestellt sind.
In Fig. 10 verwendet das Tiefpaßfilter mit 2 Anschlüssen "1 1"
einen 16 Bit-Addierer 1001. Die Ausgänge sind mit S bzw. D be
zeichnet. Der Ausgang des Addierers (S) wird abgeschnitten bei
16 Bits mit Hilfe eines um "1" verschiebenden Blocks 1003, wel
cher eine Funktion "Teilen durch 2" durchführt, indem dessen 17
Bit-Eingaben um ein Bit nach rechts verschoben werden.
Das Hochpaßfilter mit 6 Abgriffen "-1 -1 8 -8 1 1" erfordert
die Berechnung von -S₀+4D₁+S₂. Die Funktion S₂ - S₀ wird mit
einer 16 Bit-Subtrahiereinheit 1003 berechnet, welche den Aus
gang des Blocks 1003 und des Y₀(o) erhält. Der 4D₁-Term wird mit
Hilfe einer Subtrahiereinheit 1002 und eines um 2 verschiebenden
Blocks 1004 berechnet. Der Ausgang, welcher mittels der 16 Bit
Subtrahiereinheit 1002 erzeugt wird, wird um zwei Stellen nach
links verschoben, um dadurch effektiv dessen Ausgang mit vier zu
multiplizieren. Ein Addieren des 4D₁-Ausgangs von dem Block 1004
mit dem Ausgang der Subtrahiereinheit 1005 wird durch einen 20
Bit-Addierer 1006 durchgeführt. Der Ausgang des letzten Addie
rers wird bei 18 Bit mit Hilfe eines um zwei verschiebenden
Blocks 1007 abgeschnitten. Der Block 1007 führt eine Teilfunk
tion durch vier durch, indem dessen 20 eingegebene Bits um zwei
Bits nach rechts verschoben werden.
Folglich ist die gesamte erforderliche Hardware (wobei Register
zum Speichern vorübergehender Ergebnisse nicht mitgezählt sind:
- - 1 @ 16 Bit-Addierer
- - 2 @ 16 Bit-Subtrahiereinheiten
- - 1 @ 19 Bit-Addierer.
Hierbei wird ein Verschieben durch das Verdrahten vorgenommen,
so daß keine Logik benötigt wird. In anderen Ausführungsformen
können für Eingänge einer Größe N ein N-Bit-Addierer, zwei N-
Bit-Subtrahiereinheiten und ein (N+3) Bit-Addierer verwendet
werden. Infolge der sehr niedrigen Hardware-Kosten dieser Addie
rer/Subtrahiereinheiten können erforderlichenfalls parallele Im
plementationen der Filter verwendet werden.
Alternativ kann statt des Subtrahierens X(3) und X(2), X(4)-
X(5) berechnet werden und aufbewahrt werden, bis es später als
X(2)-X(3) für die nächste Verschiebung oder Anwendung des Fil
ters benötigt wird. Sowohl das Vorwärtsfilter (als auch das
nachstehend beschriebene inverse Filter) können durch eine Pipe-
Line verbunden werden, um einen höheren Durchsatz zu erreichen.
Das inverse Wavelet-Filter ist in Fig. 11 dargestellt. Die Ein
gangssignale von Y₀(0) und Y₀(2) werden von einer Subtrahierein
heit 1101 subtrahiert. Das Ergebnis der Subtraktion wird nach
rechts um zwei Bits durch den Schiebeblock 1102 verschoben.
Hierdurch wird effektiv der Ausgang der Subtrahiereinheit um
vier geteilt. Eine Subtraktion wird zwischen dem Ausgangssignal
des Blocks 1104 und dem Y₁(0) Eingangssignal durchgeführt. Das
Eingangssignal y₀(1) wird um ein Bit nach links durch den Schie
beblock 1103 verschoben, wodurch das Eingangssignal mit zwei
multipliziert wird. Nachdem Y₀(1) um 1 verschoben ist, (multi
pliziert mit zwei), ist das niedrigstwertige (LS-) Bit der ver
schobene Wert des LS-Bits, das aus dem Ausgangssignal der Sub
trahiereinheit 1104 genommen und mit dem 16 Bit-Ausgangssignal
vom Block 1103 verknüpft worden ist, um ein Eingangssignal für
einen Addierer 1105 und eine Subtrahiereinheit 1106 zu bilden.
Der andere Eingang des Addierers 1105 und der Subtrahiereinheit
1106 ist das Ausgangssignal des Subtrahierers 1104. Die Aus
gangssignale des Addierers 1105 und des Subtrahierers 1106 wer
den anschließend abgeschnitten.
Die Wahl von zwei Schnittoperationen kann angewendet werden. In
beiden Fällen wird der 20 Bit-Wert um 1 (geteilt durch 2) auf
einen 19 Bit-Wert verschoben. Für ein System, das nur eine ver
lustfreie Kompression durchführt, können die niedrigstwertigen
16 Bits abgegeben werden. (Die restlichen 3 Bits können igno
riert werden). Bei einem verlustbehafteten (oder einem verlust
behafteten/verlustfreien) System wird der 19 Bit-Wert auf null
gesetzt, wenn er negativ ist und wird auf 2¹⁶-1 gesetzt, wenn er
größer als 2¹⁶-1 ist; anderenfalls können die niedrigstwertigen
16 Bits abgegeben werden. Für Eingangssignale der Größe 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 wer
den, und die Schneideeinheit gibt N Bits ab.
Bezüglich des Speicher- und Datenfluß-Managements für die Wave
let-Filter gemäß der Erfindung ist für Bilder, bei welchen ein
Vollbild in einen Speicher eingebracht werden kann, ein Spei
cher/Datenfluß-Management nicht eine schwierige Ausgabe. Selbst
für (1024 × 1024) 16 Bit-medizinische Bilder (z. B. zwei M Bytes
in der Größe), die einen Vollbildpuffer erfordern, ist dies für
viele Anwendungen vernünftig. Für größere Bilder (z. B. A4, 400
DPI Vierfarben-Bilder sind es über 50 M Bytes hinsichtlich der
Größe) ist ein Durchführen der Wavelet-Transformation mit einer
begrenzten Größe eines Zeilenpuffer-Speicher wünschenswert.
Ein Vollbild-Puffer ist für die Erfindung nicht notwendig, um
ein Eindurchlauf-System zu implementieren. Deswegen kann der er
forderliche Speicher etwa um einen Faktor 100 (verglichen mit
einem Vollbild-Puffer für große Bilder) verkleinert werden. Das
Eindurchlauf-System der Erfindung wird später beschrieben.
Die in dem Filter-Speicher gespeicherten Daten sind eine Reihe
von Koeffizienten, die dem eingebetteten Codieren und dem binä
ren Entropie-Codieren zu unterziehen sind. Das eingebettete Co
dieren verwendet ein Kontext-Modell, um die Verwendung von auf
Frequenz basierendem Codieren oder ein Horizont-Codieren zu ko
ordinieren und um Daten in der richtigen Reihenfolge zu schaf
fen. Das Kontext-Modell arbeitet in Verbindung mit einem Spei
cher-Management-Schema. Für Systeme mit einem Vollbild-Puffer
ist ein Vorsehen von Daten in der richtigen Reihenfolge nicht
schwierig. Für Systeme ohne einen Vollbild-Puffer schafft das
Transformationsdaten-Management-Schema der Ausführungsform der
Erfindung mit einem Durchlauf (was unten noch beschrieben wird)
Koeffizienten an dem Kontext-Modell, so daß das Kontext-Modell
nur Koeffizienten für einen Baum puffern muß. Ein auf Frequenz
basierendes Eindurchlauf-Kontext-Modell und ein gemeinsames,
einen Durchlauf erledigendes Raum-Frequenz-Kontext-Modell arbei
ten zu einer bestimmten Zeit an einem Baum.
Die Ergebnisse der Einbettungsoperation der Erfindung bestehen
darin, Bitströme für den auf Frequenz basierenden Modellierme
chanismus der vorliegenden Erfindung und den gemeinsamen
Raum/Frequenz-Modelliermechanismus der Erfindung zu erzeugen.
Diese Datenströme werden dann mit Hilfe eines binären Entropie-
Codierers codiert.
Für ein System mit einem Vollbild-Puffer kann ein binärer
Entropie-Codierer (oder irgendein anderer Codierer) verwendet
werden. Für Systeme ohne einen Vollbild-Puffer müssen entweder
mehrere unabhängige Codierer verwendet werden, oder der Codierer
muß in der Lage sein, mehrere unabhängige Codierer zu simulie
ren. Ebenso wird ein Speicher- oder Kanal-Management gefordert,
um eine Speicherspur der Ausgangssignale von den unabhängigen
Codierern zu erhalten. Ein Vorteil der Erfindung liegt darin,
daß die zu verwaltenden Daten Prioritäten unterworfen (eingebet
tet) sind. Wenn ausreichend Raum oder Bandbreite während einer
Kompression oder einer Übertragung nicht verfügbar ist, können
weniger wichtige Daten unterwegs (on the fly) ausrangiert wer
den, die für eine vernünftige verlustbehaftete Kompression vor
gesehen sind.
Die Erfindung schafft eine Eindurchgang-Transformation, die es
ermöglicht, die eingegebenen Daten in dem System vollständig zu
verarbeiten, wenn sie empfangen werden. In einem solchen System
ist die Verarbeitung der Daten nicht abhängig von Daten, welche
folgen. Ein Speicher, der erforderlich ist, um ein Bild zu kom
primieren, ist unabhängig von der Länge des Bildes. Durch Ent
fernen der Unabhängigkeit, schafft die Erfindung ein System, das
verdichtete Daten abgeben kann, bevor alle Daten verarbeitet
werden können.
Fig. 12 stellt einen Abschnitt eines Bildes dar, das in einer
Rasteranordnung durch eine Bandform mit Hilfe der Lehren der Er
findung zu verdichten ist. Es wird eine Vierebenen-Zerlegung be
trachtet. Jeder Baum hat 2⁴ × 2⁴=16 × 16 = 256 Koeffizienten. Da
jedoch das Hochpaßfilter der Wavelet-Transformation in der Er
findung überlappt wird, hängt jeder Baum von mehr als 256 einge
gebenen Pixels ab. Das Tiefpaßfilter (L) mit zwei Abgriffen "1
1" verursacht nicht irgendein Überlappen; das gesamte Überlappen
kommt von dem Hochpaßfilter (H) mit sechs Abgriffen "-1 -1 8 -8
1 1". Das größte Überlappen kommt für die Kaskade von drei An
wendungen des Tiefpaßfilters vor, worauf eine Anwendung des
Hochpaßfilters (LLLH) folgt. Drei Anwendungen des Tiefpaßfilters
(LLL) erfordern ein Unterstützen von 2³-8 eingegebenen Pixels.
Stützbereiche von (8 × 8) Größenpixels sind in Fig. 12 darge
stellt. Wenn das Hochpaßfilter in der Kaskade enthalten ist,
sind die Stützbereiche (6 × 2³) × (6 x 2³) = 48 × 48 Pixels. Ein
(48 × 48) Pixel-Stützbereich besteht aus 36 (8 × 8) Blöcken, wie
in Fig. 12 dargestellt ist.
Die Koeffizienten in einem in Fig. 12 dargestellten (48 × 48)
Pixel-Stützbereich sind laufend zu verarbeiten. Der leicht
schattierte Bereich des Stützbereichs veranschaulicht Pixel, die
bereits in den vorherigen Stützbereichen verwendet worden sind.
Der leicht schattierte Bereich, der außerhalb des Stützbereichs
ist, veranschaulicht Pixel, die bereits in vorherigen Stützbe
reichen verwendet worden sind, und in zukünftigen Stützbereichen
benötigt werden. Der schwarze (16 × 16) Bereich ist der Teil des
Stützbereichs, welcher Pixel enthält, die vorher noch nicht ver
wendet worden sind. Dementsprechend enthält der dunkel schat
tierte (16 × 16) Bereich Pixel, die vorher noch nicht verwendet
worden sind, aber welche in dem nächsten (48 × 48) Stützbereich
verwendet werden. Eine Dreiebenen-(16 × 16) Transformation wird
berechnet, die vorherigen Ergebnisse für acht andere (16 × 16)
Dreiebenen-Transformationen werden von einem Puffer aus zurück
gerufen, und die vierte Transformationsebene wird bei den neun
(16 × 16) Dreiebenen-Transformationen angewendet. Das Puffern,
das erforderlich ist, um dies zu erreichen, ist groß genug, um
die Dreiebenen-Transformations-Koeffizienten für (2 × 2) (Bild
breite + 32)) × 16 Pixel plus genug zu speichern, um ein 16 Zei
len-(ein Band-)Puffer von Pixel zu speichern.
Fig. 13 ist ein Blockdiagramm einer Ausführungsform der Ein
durchgang-Wavelet-Filtereinheit, welche eine Filtersteuereinheit
1301, einen Speicher 1302 und einen Filter 1303 aufweist. Der
Filter 1303 weist das in Verbindung mit Fig. 10 beschriebene Fil
ter auf. Ein Speicher 1302 betrifft den Speicher, der vorstehend
in Verbindung mit Fig. 12 beschrieben worden ist, und speichert
entweder Pixel oder Koeffizienten. Die Filtersteuereinheit 1301
legt den Datenfluß zwischen dem Speicher 1302 und dem Filter
1303 fest. Die Arbeitsweise der Filtersteuereinheit 1301 wird
weiter unten noch beschrieben.
In Fig. 14 ist eine alternative Wavelet-Filtereinheit darge
stellt. Um einen hochschnellen Betrieb zu erreichen, können meh
rere Filter verwendet werden. Da in einer Ausführungsform das
Filter 1303 4 oder 5 Eingänge erfordert (z. B. inverses Filter,
Vorwärtsfilter) und zwei Ausgangssignale erzeugt, könnte die er
forderliche Speicher-Bandbreite wesentlich sein. Der Speicher
kann mehr Pixel/Koeffizienten pro Speicherstelle haben, mehrere
Banken/oder mehrere Ausgänge. Ein Speicher-Interface 1401 ver
ringert die Speicherbandbreite, die erforderlich ist, um schmale
Puffer für lokale Daten zu schaffen, die während einer Verarbei
tung verwendet worden sind. Eine Speicher-Interface-Einheit 1401
schafft auch ein Multiplexen/Demultiplexen zwischen dem Ein
gang/Ausgang/I/O des Speichers 1302 und dem Ein-/Ausgang des
Filters 1303.
Zusätzlich zu der Speicherbandbreite, die zum Filtern erforder
lich ist, kann eine zusätzliche Bandbreite für ein Eingeben der
Pixel in den Speicher 1302 und für ein Ausgeben der Koeffizien
ten an das Kontext-Modell erforderlich sein. Wenn Pixel in einer
Rasteranordnung eingegeben werden, kann ein zusätzlicher Spei
cher für den Bandpuffer erforderlich sein.
Wenn ein Speicher mehrere Elemente (Pixel oder Koeffizienten)
pro Speicherstelle speichert, kann er statt horizontal oder ver
tikal benachbarte Elemente in einer Spalte oder Zeile zu spei
chern, die Menge an Speicher-Zugriffen und das erforderliche
Puffern verringern, wenn Elemente in einem (N × N) Block, wenn N
eine Potenz von 2 ist, dieselbe Speicherstelle benutzen. Dies
erlaubt die gleich Bequemlichkeit für vertikale und horizontale
Zugriffe.
Mehrere Speicherbänke können ebenfalls implementiert werden, so
daß sowohl ein horizontaler als auch ein vertikaler Zugriff den
gleichen Vorteil von mehreren Bänken haben kann, wie in Fig. 15
gezeigt ist. Für den Fall von zwei Bänken kann ein Bankauswähl
bit, das zum Auswählen einer der Bänke vorgesehen ist, in einer
Ausführungsform durch eine exclusive ODER-Behandlung der LS-Bits
der horizontalen und vertikalen Koordinaten gebildet werden. Für
den Fall von vier Bänken kann das Zweibänke-Auswählbit gebildet
werden durch Addieren (Modul 4 mit einem 2 Bit-Adierer) der zwei
L S-Bits der horizontalen und vertikalen Koordinaten.
In Fig. 16 ist eine Eindurchgang-Filteroperation für eine Zwei
ebenen-Zerlegungs-Implementierung durch die Filtersteuereinheit
1301 (Fig. 13) dargestellt. Zu Zwecken der Darstellung ist eine
Zweiebenen-Beschreibung zuerst erörtert, um die generelle Tech
nik der Erfindung zu erläutern. In anderen Ausführungsformen
werden Zerlegungen von drei Ebenen, vier Ebenen oder höheren
Ebenen verwendet. Eine Zweiebenen-Zerlegung hat 16 Koeffizienten
pro Baum und erfordert eine Berechnung mit 16 Eingangspixel, die
vorher noch nicht verwendet worden sind. Die Filterung für einen
Koeffizientenbaum wird in 16 oder weniger Zeiteinheiten durchge
führt, um der Eingangs- oder Ausgangsrate zu entsprechen. Für
dieses Beispiel werden zwei parallel arbeitende Filter verwen
det, um den gewünschten Durchsatz von zwei Filteroperationen pro
Zeiteinheit zu erreichen. Für jede örtliche Speicherstelle, an
welcher die Vorderkante eines Filters verwendet wird, zeigt
Fig. 16 eine Zahl, welche die Zeit anzeigt, daß jede Filteropera
tion durchgeführt wird.
Da die Filterreihenfolge durch die Vorderkante des Filters
festgelegt ist, erzeugt ein Filtern nicht alle Koeffizienten ei
nes Baumes vor einem Erzeugen eines der Koeffizienten des näch
sten Baumes. Das Filtern der Kinder des Baumes kommt vor dem
Filtern der Eltern, und ein Tiefpaßfiltern erfolgt vor dem ent
sprechenden Hochpaßfiltern. Die Filterung arbeitet auf einer A-
Gruppe von Koeffizienten, welche dieselbe Anzahl von Koeffizien
ten eines Typs hat, die einen Baum gibt.
Die horizontale Filterung von Ebene 1 wird während der Zeit 0
bis 7 durchgeführt, und die Ergebnisse werden in einem temporä
ren Puffer gespeichert. (Jede räumliche Speicherstelle läuft auf
zwei Koeffizienten hinaus.) Während der Zeit 2 bis 9 wird eine
vertikale Filterung (mit Hilfe des zweiten Filters) an Daten in
dem Puffer und an Daten aus einer vorherigen horizontalen Filte
rung aus dem Speicher (zweimal pro räumlicher Speicherstelle)
durchgeführt. Ein vertikales Filtern kann beginnen, sobald die
zweite horizontale Filteroperation beendet ist. Die HH-, HL- und
LH-Koeffizienten sind bereit für ein Abgeben an das Kontext-Mo
dell (in der entsprechenden Zeit). Die LL-Koeffizienten werden
in der nächsten Ebene verwendet.
Mit nur zwei Filtern kann eine horizontale Filterung der Ebene
0 nicht bis zum Zeitpunkt 8 beginnen, wenn die horizontale Fil
terung der Ebene 1 vollständig ist, was ein Filter verfügbar
macht. Ein horizontales Filtern der Ebene 0 kann nicht enden bis
zur Zeit 10 eines Zyklus, nachdem die vertikale Filterung der
Ebene 0 vollständig ist, wobei alle erforderlichen Daten geprüft
werden. Als nächstes kann während der Zeit 11 und 12 die verti
kale Filterung der Ebene 1 vorkommen.
In der nachstehenden Tabelle 1 ist die Arbeitsweise jedes Fil
ters während jeder Zeiteinheit angegeben. Das Format der Einträ
ge ist Ebenenzahl, horizontal oder vertikal ("H" oder "V") und
die räumliche Adresse der Vorderkante. Die Eingänge der vertika
len Filteroperationen werden entweder als Tiefpaß oder als Hoch
paß durch einen Index "L" oder "H" identifiziert. Es ist nicht
notwendig, ein Filter zum Durchführen einer horizontalen Filte
rung und das andere zum Durchführen einer vertikalen Filterung
zuzuordnen, da beide Filter identisch sind.
Obwohl eine horizontale Filterung der Ebene 1 für die nächste
Gruppe von eingegebenen Pixels zur Zeit 11 wieder beginnen kann,
würde dies bewirken, daß das Filter schneller arbeitet als die
Eingabe- oder Ausgaberate. Statt dessen laufen bei der Erfindung
die Filter leer durch, und die nächste Gruppe wird zum Zeitpunkt
16 gestartet. Leer durchlaufende Filterzyklen können für Spei
cherübertragungen verwendet werden. Statt am Ende der Filterung
für jede Gruppe vorzukommen, können die Leerlaufzyklen erforder
lichenfalls auch über die Filterzyklen verteilt werden.
Im Hinblick auf die Erläuterung des Zweiebenen-Falles ist in
Tabelle 2 der Dreiebenen-Fall dargestellt. Konzentrationen von
zwei oder vier Zeiteinheiten werden verwendet, um die Informa
tion auf eine Seite zu übertragen, um dadurch das Lesen zu er
leichtern.
In Tabelle 3 ist der Vierebenen-Fall dargestellt. Da es nunmehr
256 Zeiteinheiten pro Koeffizientengruppe sind, ist der Einfach
heit halber nur die Filterungsebene und -richtung dargestellt.
Das Ausgangssignal des Filterungs- und Speicheruntersystems der
Erfindung ist eine Reihe von Koeffizienten, die einer eingebet
teten Bit-Signifikanz-Codierung in der Erfindung unterzogen
sind.
In einer Ausführungsform der Erfindung wird bezüglich des ein
gebetteten Bit-Signifikanz-Kontextmodells für das Eindurchgang-
System jeder Baum in vier Teilen verarbeitet. Die Wurzel des
Baums, der höchste Ebenen-LL-Koeffizient wird durch eine Ein
durchgang-Horizont-Ordnungscodierung codiert. Die drei Unterbäu
me, die mit jeweils in Wurzeln von drei Kindern beginnen, die
Koeffizienten der höchsten Ebene HH, HL und LH, werden sowohl
durch ein Eindurchgang-Verbund-Raum/Frequenz-Modellieren und ein
auf Frequenz basierendes Eindurchgang-Modellieren verarbeitet.
Die Koeffizienten werden so codiert, daß codierte Daten vor dem
eingebetteten Bit-Signifikanz-Kontext-Modell abgegeben werden
können, das auf allen Daten arbeitet.
Das Nullbaum-Kontext-Modell kann nicht in dem Eindurchgang-Sy
stem verwendet werden. Ein Nullbaum erfordert eine Liste (oder
mehrere Listen), die jeden Koeffizienten enthalten, und ein
Nullbaum macht mehrere Durchgänge durch die Liste(n). Ein al
ternatives, auf Frequenz basierendes Modell, ein Eindurchgang-
Signifikanzbaum, erfordert nicht irgendeine Liste, welche alle
Koeffizienten enthält. Ein weiterer Unterschied zwischen einem
Eindurchgang-Signifikanzbaum und einem Nullbaum ist der, daß ein
Signifikanzbaum alle Kinder vor einem Verarbeiten der Eltern
verarbeitet, wenn Entscheidungen erzeugt werden, im Unterschied
zu einem Nullbaum, welcher zuerst den Elternteil verarbeitet.
Das Kontext-Modell der Erfindung ist in Blockdiagrammform in
Fig. 17 dargestellt. Das Kontextmodell 1700 erfordert zwei Verar
beitungseinheiten, die Vorzeichen-Größeneinheit 109 (Fig. 1A)
und die Signifikanz-Einheit 1702. Das Kontext-Modell 1700 ver
wendet auch zwei Speicher (mit Speicher-Steuerlogik), einen Grö
ßenspeicher 1701 und einen Baumspeicher 1703. Jeder dieser zwei
Speichereinheiten kann mit mehreren Speicherbereichen durchge
führt werden, um ein Wechseln während eines hochschnellen Be
triebs zuzulassen (d. h. während Daten in einen zu schreiben
sind, wird der andere gelesen oder geleert).
Der Größenspeicher 1701 ordnet Koeffizienten in dem Baum in
einer Reihenfolge, die auf der Signifikanz basiert, wie bei
spielsweise einer Reihenfolge, die auf deren Größe basiert. Dies
wird erreicht durch Aufrechterhalten einer Warteschlange für je
de möglich Größe. Die Signifikanz-Einheit 1702 erhält Koeffi
zienten in der Signifikanz-Reihenfolge (z. B. der Größe) und er
zeugt Entscheidungen für einen Coder, welcher den A-Durchgangs-
Algorithmus behandelt. Der Baumspeicher 1703 ist mit der Signi
fikanz-Einheit 1702 verbunden und eliminiert Nullbäume nach al
len Nullen.
Bei der folgenden Erörterung ist angenommen, daß die Koeffi
zienten 18 Bits sind, und daß die Eingangsdaten einer Vierebe
nen-Zerlegung unterzogen werden. Eine Ausführungsform der Vor
zeichen-Größeneinheit 109 ist in Fig. 18 dargestellt und setzt
eingegebene Koeffizienten in ein Vorzeichen-Größenformat um.
Eine Vorzeichen-Größeneinheit 109 ist angeschlossen, um 18 Bits
der Koeffizienten aufzunehmen, und enthält einen Inverter 1803,
einen Multiplexer (MUX) 1802, einen Prioritätscoder 1803 und
einen Zähler 1804. Die Vorzeichen/Größeneinheit 109 gibt eine
Signifikanzanzeige (z. B. einen 5 Bit-Wert), die Mantisse des
eingegebenen Koeffizienten (z. B. 17 Bits), das Vorzeichen des
eingegebenen Koeffizienten (1 Bit) und einen Index vom Zähler
1804 aus (z. B. 7 Bits) ab.
MUX 1802 ist vorgesehen, um 17 Bits des Koeffizienten direkt in
die Vorzeichen/Größeneinheit 109 und eine invertierte Version
der 17 Bits von der Zweierkomplement-Einheit 1801 aus aufzuneh
men. Basierend auf dem Vorzeichenbit (Koeffizientenbit 17), das
an dem Auswähleingang von MUX 1802 erhalten worden ist, wird der
positive der zwei Eingangswerte als die Mantisse abgegeben.
Die Vorzeichen/Größeneinheit 109 benutzt einen Prioritätscoder
1803, um das erste signifikante Bit jedes Koeffizienten zu be
stimmen. Basierend auf dem ersten signifikanten Bit jedes Koef
fizienten kann die Signifikanzebene dem Koeffizienten zugeordnet
werden.
Der Zähler 1804 wird verwendet, um einen Index dem aktuellen
Baumelement zuzuordnen. Für eine Vierebenen-Zerlegung ändert
sich der Index von 0 bis 84 (da 1 + 4 + 16 + 64 = 85, die Zahl
von Elementen in einem Unterbaum ist). Die eingegebenen Koeffi
zienten sind eine Baumanordnung, wobei angenommen wird, daß die
Eltern zuerst und die Kinder zuletzt in diesem Beispiel sind.
Die Koeffizienten sind von verschiedenen Zerlegungsebenen, wie
in Tabelle 4 für die Koeffizienten in der Anordnung dargestellt
ist.
Fig. 19 ist eine Ausführungsform des Blockdiagramms des Größen
speichers 1701. Ein Zähler und ein Speicher ist jeder möglichen
Signifikanzebene zugeordnet (außer nichts wird für Null-Koeffi
zienten benötigt, welche nicht codiert werden müssen). Bei
spielsweise sind der Zähler 1916 und der Speicher 1936 der
Signifikanz-Ebene 17 zugeordnet. In einer Ausführungsform gibt
es 16 Signifikanzebenen. Daher gibt es 17 Zähler und 17 zugeord
nete Speicher.
In einer Ausführungsform muß jeder Speicher 85 Speicherstellen
für jeden möglichen Koeffizienten in einem Unterbaum haben (da
jeder Unterbaum 85 Koeffizienten enthält), jedoch kann die Spei
chergröße bis auf eine Potenz von 2 abgerundet werden, wie bei
spielsweise 128. Jeder Speichereintrag kann ein Vorzeichenbit,
einen 7 Bit-Index und N Größenbits enthalten, wobei N die signi
fikante Ebene ist. Wenn die Verwendung eines Speichers fester
Breite gewünscht wird, können Einträge für signifikante 16 und
0, 15 und 1, etc. verknüpft werden, so daß jedes Wort zwei Ein
tragungen hat, die sich auf 32 Bits belaufen. Natürlich muß bei
einer ungeraden Anzahl von Signifikanzebenen ein Wort nur einen
Eintrag enthalten, welcher in diesem Beispiel Ebene 7 ist.
Vorzeichen-, Index- und Mantisse-Werte, die von der Vorzeichen-
Größeneinheit 109 empfangen worden sind, werden in den entspre
chenden Speicher an der Adresse geschrieben, welche durch den
zugeordneten Speicher-Zähler vorgesehen ist. Der zugeordnete
Speicher wird dann inkrementiert, so daß der nächste Koeffizient
auf dieser Signifikanzebene an der nächsten Stelle gespeichert
werden kann.
Der Speicher wird von jedem der Speicher 1920 bis 1926 in ab
nehmender Signifikanz-Anordnung gelesen. Der Ausgangswert jedes
Koeffizienten enthält sein Mantisse, das Vorzeichen und den ab
gegebenen Index. Wenn der Zähler für die höchste Signifikanzebe
ne bzw. -stufe, (z. B. Stufe 16) nicht-null ist, wird er dekre
mentiert, und der Speicher wird an dieser Adresse gelesen. Dies
wird wiederholt, bis der Zählerwert null ist. Dann wird die
nächste Signifikanzstufe (z. B. Stufe 15) betrachtet. Jede Signi
fikanzstufe wird wiederum betrachtet, bis alle Zähler auf null
dekrementiert worden sind, und alle Speicher geleert sind. In
einem Realzeit-System kann es wünschenswert sein, zwei Bänke von
Zählern und Speichern zu verwenden, so daß eine Bank für das
Eingeben und die andere für das Ausgeben verwendet werden kann.
Die Zähler adressieren ihren zugeordneten Speicher, so daß ein
LIFO (das zuletzt Eingegebene wird zuerst ausgegeben) implemen
tiert ist. Ein LIFO-Speicher ist die korrekte Reihenfolge, wenn
Unterbäume in der Reihenfolge von Eltern zuerst eingegeben wer
den. Andererseits wenn Unterbäume zuerst als Kind eingegeben
worden sind, könnte die Operation der Zähler geändert werden, um
einen FIFO (zuerst eingeben, zuerst ausgeben) durchführen.
Fig. 20 ist ein Blockdiagramm einer Ausführungsform einer Signi
fikanzeinheit 1702. In Fig. 20 wird ein Indexzähler 2001 verwen
det, um durch jeden Koeffizienten in einem Unterbaum, die Kinder
zuerst, durchzugehen. In einer Ausführungsform wird der Index
zähler 2001 bei 84 initialisiert und zählt rückwärts auf null.
Ein Signifikanzzähler 2004 beginnt auf der Maximum-Signifikanz
stufe, (z. B. 16 in dem Beispiel 9 und zählt jedesmal rückwärts,
wenn der Indexzähler 84 einen Zyklus beendet (auf 84 zurück
kehrt), so daß der Signifikanzzähler 2004 eine Spur der Bitebene
hält. Die Stufe/Ebene eines ganz bestimmten Index wird durch Lo
gik festgelegt (Index auf Stufe 2003), welche die in der vorste
henden Tabelle 4 dargestellte Funktion durchführt.
Ein Größenspeicher 1701 erzeugt einen Index, eine Größe und ein
Vorzeichen des nächsten Koeffizienten in dem Speicher, welcher
durch das Ausgangssignal des Signifikanzzählers 2004 freigegeben
ist. Wenn der von dem Speicher angegebene Index derselbe ist,
wie der abgegebene Index des Indexzählers 2001, setzt die Äqui
valenzlogik 2002 die Nicht-Null-Ausgangsanzeige durch. Die
Nicht-Null-Ausgangsanzeige bedeutet, daß der Größenspeicher den
nächsten Index usw. bei dem nächsten Zyklus erzeugen sollte.
Wenn dies nicht eine Anpassung ist, dann wird eine Nicht-Anpas
sungsanzeige an einen Diskussionsgenerator 2008 gesendet.
In einer Ausführungsform werden drei Flip-Flops, die als Flag 0
(2005) Flag 1 (2006) und Flag 2 (2007) verwendet werden, um eine
Speicherspur von Nicht-Null-Daten zu erhalten und werden Zerle
gungsebenen 0, 1 bzw. 2 zugeordnet. Die Anzahl an erforderlichen
Flip-Flops ist eins weniger als die Anzahl Zerlegungsebenen. Die
Flip-Flops 2005 bis 2007 werden zuerst gelöscht. Wenn das Nicht-
Null-Signal von der Äquivalenzlogik 202 eingesetzt wird, werden
alle Flip-Flops in den Flip-Flops 2005 bis 2007, die einer Ebene
weniger als der aktuellen Ebene zugeordnet sind, gesetzt. Das
Flip-Flop, das der aktuellen Ebene zugeordnet ist, wird ge
löscht. Die Ebene ist mit einer Index-Ebenen-Logik 2003 verse
hen, welche die Ebene entsprechend dem Index von dem Index-Zäh
ler 2001 erzeugt.
"Codierte" Flags werden gespeichert (in einigen Ausführungsfor
men eine Registerdatei), und zwar ein Bit für jeden Index. Wenn
das Nicht-Null-Signal durchgesetzt ist, wird das Bit gesetzt,
das dem aktuellen Index-Zählerwerts des codierten Flags zugeord
net ist. Andernfalls wird, wenn der Signifikanz-Zählerwert der
Maximumwert ist, das zugeordnete Bit gelöscht. Andernfalls
bleibt der Wert des Bits unverändert. Das bereits codierte Aus
gangssignal von einer codierten Flag-Speicherung ist dasselbe
wie der neue Wert des Bits, das dem aktuellen Index zugeordnet
ist. In einer alternativen Ausführungsform werden die codierten
Flags nicht verwendet, und das bereits codierte Signal wird nie
mals verwendet.
In einer Ausführungsform bestimmt ein Entscheidungsgenerator
2008, wenn die aktuelle Ebene 3 ist, und die vorherige Ebene es
nicht war. Entsprechend dieser Festlegung setzt der Entschei
dungsgenerator 2008 das Startsignal durch, und der gegebene
Startpegel ist der vorherige Pegel. Wenn das Nicht-Null-Signal
durchgesetzt ist, gibt der Entscheidungsgenerator 2008 eine Ent
scheidung als "signifikant" ab und gibt auch das Vorzeichen
(00, 01) und die Mantisse ab. Wenn dagegen der bereits codierte
Eingang durchgesetzt ist, wird keine Entscheidung abgegeben. An
dernfalls gibt, wenn das Flag-Flip-Flop, das der aktuellen Ebene
zugeordnet ist, gesetzt ist, der Entscheidungsgenerator 2008 die
Entscheidung als "unwichtig, mit signifikanten Kindern" (10) ab.
Andernfalls gibt der Entscheidungsgenerator 2008 die Entschei
dung als "unwichtig und Kinder unwichtig" (11) ab und setzt das
Nullsignal durch.
Um sowohl ein auf Frequenz basierendes Modellieren als auch ein
Horizont-Eindurchgang-Verbund-Raum/Frequenz-Modellieren durchzu
führen, wird die folgende Änderung an der Signifikanzeinheit
2000 gemacht. Der Signifikanzzähler 2004 wird mit einem Schwel
lenwert verglichen, und der gesamte Nullausgang wird nur durch
gesetzt, wenn der Zählerwert größer als der Schwellenwert ist.
In einer Ausführungsform ist die Signifikanz-Kategorie, die in
den Baumspeicher 1703 eingegeben worden ist (siehe Fig. 21, die
nachstehend beschrieben wird) der Ausgangswert des Signifikanz
zählers 2004. In dieser Ausführungsform des Kontext-Modells (z. B.
eine Bit-Signifikanz-Einbettungseinheit) basiert die Signifi
kanz-Kategorie auf der Anzahl Bitebenen, und es sind siebzehn
verschiedene Signifikanz-Kategorien. Diese ist eine beliebige
Wahl. In einer anderen Ausführungsform können Bitebenen kombi
niert werden, um weniger Signifikanz-Kategorien zu erzeugen.
Ebenso kann eine Ebenen-Information zu einer Bitebene-Informa
tion hinzugefügt werden, um mehr Signifikanz-Kategorien zu er
zeugen. Mehr Signifikanz-Kategorien können eine bessere, ver
lustbehaftete Kompression schaffen, während weniger eine Hard
ware-Komplexität reduzieren können.
Fig. 21 ist ein Blockdiagramm einer Ausführungsform der Baum
speichereinheit der Erfindung. In Fig. 21 hat der Speicher 2101
adäquaten Speicherplatz zum Speichern einer Entscheidung und
einer Signifikanzanzeige für jede mögliche Entscheidung. In
einer Ausführungsform ist für eine Vierebenen-Zerlegung mit 17
Signifikanzstufen die Anzahl Speicherstellen im Speicher 2101
gleich 85 × 17 = 1445.
Um auf den Speicher 2101 zuzugreifen, werden Adressen erzeugt.
Ein Zähler 2102 ist anfangs null. Wenn der Entscheidungsgenera
tor 2008 den gesamten Nulleingang nicht durchsetzt, wird der
Wert im Zähler 2102 verwendet, um den Speicher zu adressieren.
Wenn der Entscheidungsgenerator 2008 den eingegebenen Start
durchsetzt, wird der aktuelle Wert des Zählers 2102 in einem der
Register 2110 bis 2112 entsprechend der Startebene gespeichert,
welche als ein Auswählmechanismus wirkt. Der Zähler 2102 wird
dann inkrementiert.
Wenn der Entscheidungsgenerator 2008 den gesamten Nulleingang
durchsetzt, wird der Wert in dem Register (z. B. 2110, 2111,
2112), das durch die eingegebene Stufe ausgewählt worden ist,
verwendet, um den Speicher 2101 zu adressieren; dieser Wert 1
wird in den Zähler 2102 geladen. Dies bewirkt, daß die Speicher
stellen, die für unwichtige Kinder eines unwichtigen Elternteils
verwendet worden sind, ignoriert wird.
Während einer Speicherabgabe wird der Zähler 2102 dekremen
tiert, um die Adresse der auszugebenden Speicherstelle zu schaf
fen. Der Ausgangswert von dem Baumspeicher 2100 wird von einem
Entropie-Codierer empfangen, der die Entscheidung an der spezi
fizierten Signifikanz entsprechend codiert. Für eine Realzeit-
Operation können zwei Baumspeichereinheiten verwendet werden, so
daß eine zum Eingeben verwendet wird, während die andere zum
Ausgeben verwendet wird.
In einer Ausführungsform der Erfindung verwendet das Nullbaum-
Kontext-Modell ein nicht-normiertes (1+Z-1) Tiefpaßfilter. Je
doch kann das Nullbaum-Kontext-Modell auch mit normierten Fil
tern wie (1+Z-1/), verwendet werden. Um normierte Filter zu
verwenden, kann eine Abgleichseinheit, wie beispielsweise die
Ausgleichseinheit 2200 in Fig. 22 zwischen dem Vorwärts-Wavelet-
Filter 1000 und dem Kontext-Modell 105 verwendet werden, um die
Energie zu kompensieren, die von dem nicht-normierten Filter,
welches die Kompression verbessert, gewonnen wird (oder anderen
falls verloren wird). Da ein Abgleichen eine nicht-gleichförmige
Quantisierung für eine verlustbehaftete Operation zuläßt, kann
ein Abgleich die visuelle Qualität von verlustbehafteten Bildre
konstruktionen verbessern. In dem eindimensionalen Fall würden
Koeffizienten für jedes Niveau des Baums einen unterschiedlichen
Abgleich haben (Divisoren = , 2, 2, 4, Multiplikatoren =
2, 2, , 1. In dem zweidimensionalen Fall würden die Teiler
2, 4, 8, 16 und die Multiplikatoren würden 8, 4, 2, 1 sein.
Da der Abgleich gerade für ein Gruppieren ähnlicher binärer
Entscheidungen für ein Codieren ist, ist ein Verwenden des exak
ten Normierungswertes nicht kritisch. Der Abgleich muß während
des Decodierens invertiert werden, so daß eine Multiplikation
und Division erforderlich sind. Ein Verwenden von Faktoren/Divi
soren, die Potenzen von zwei sind, würde ein hardware-effi
zientes Verschieben zulassen, was statt dessen durchzuführen ist.
Wenn Koeffizienten mit einer Potenz von zwei multipliziert wer
den, sind die weniger signifikanten, hinzugefügten Nullbits
nicht zu codieren.
Jedoch kann, statt die Abgleichfaktoren/Divisoren auf die Potenz
von zwei zu begrenzen, eine Annäherung, wie ≈ 1,5 oder
≈ 2 ÷ 1,5 im folgenden Verfahren angewendet werden. Statt
Koeffizienten mit dem Faktor/Divisor zu multiplizieren/dividie
ren, würde nur die "signifikanten" Koeffizienten statt dessen mit
dem Faktor/Divisor skaliert. Die Vorzeichen-Größeneinheit kann
so, wie in Fig. 23 dargestellt, modifiziert werden, um einen
"1,5" Prioritätscoder 2301 zu erhalten, welcher auf die Position
entweder von (1) dem höchstwertigen "1"-Bit, wenn das dem
höchstwertigen Bit nächstfolgende Bit auch "1" ist, oder aber
(2) auf eins weniger als auf die Position des höchstwertigen
"1"-Bits zurückkehrt. Eine Wahrheitstabelle für einen "1,5",
Prioritätscoder für 3 Eingangsbits ist in Tabelle 5 dargestellt.
In Abhängigkeit von der Stufe des Koeffizienten, die durch den
augenblicklichen Indexwert angezeigt ist, wählt ein Multiplexer
2302 die Signifikanz entweder des Standard-Prioriätscoders oder
des "1,5"-Prioritätscoders aus. Wenn der "1.5"-Abgleich verwen
det wird, enthält die Mantisse (N+1) Bits, wobei N der Signifi
kanzwert ist. Andererseits enthält die Mantisse N Bits.
Eine Abgleicheinheit 200, die einen Multiplexer mit zwei Eingän
gen aufweist, der als ein Schieberegister wirkt, kann ein Ab
gleichen mit eins oder zwei durchführen. Wenn dies mit dem 1,5-
Abgleich verknüpft wird, der durch die Vorzeichen-Größen-Einheit
vorgesehen ist, erlaubt dies Abgleichen von 1,1,5,2 oder 3, wel
ches eine gute Annäherung der gewünschten Multiplikatoren 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 eines Decodierens ist das
(N+2)te Bit der Mantisse (welche nicht codiert ist) das Komple
ment des (N+1)ten Bit, wenn der "1,5"-Prioritätscoder verwendet
wird.
Ein Koeffizienten-Abgleich kann verwendet werden für ein Ab
stimmen des Nullbaums und für eine feinere und nicht-gleichför
mige Quantisierung. Im Fall von Bildern (zweidimensionalen
Signalen) gleicht eine Ausführungsform der RTS-Transformation die
Koeffizienten dadurch ab, daß das Frequenzband mit den Zahlen
multipliziert wird, die in Fig. 31 dargestellt sind. Ein Multi
plizieren dieser Zahlen läuft auf die RTS-Transformation hinaus,
die eine sehr nahe Annäherung an die exakten Rekonstruktions-Wa
velets der TS-Transformationen sind. Der Entropie-Coder muß den
Abgleichprozeß in Betracht ziehen, um wirksam zu sein.
Ein alternatives Verfahren des auf Frequenz basierenden Model
lierens verwendet partielle Bitebenen oder partielle Signifikanz
bits. Eine Implementierung davon ist es, jede Bitebene zweimal
zu verarbeiten, so daß die Durchgänge einen A1-Durchgang, einen
B1-Durchgang, einen A0-Durchgang und einen B0-Durchgang enthal
ten. Die Namen der Durchgänge wurden gewählt, da der A1-Durch
gang Koeffizienten behandelt, die mit "11" beginnen und der A0-
Durchgang, die behandelt, welche mit "11" beginnen.
Während des A1-Durchgangs für die Bitebene F ist ein Koeffi
zient der A-Gruppe nur signifikant, wenn beide Bits S und S-1
nicht-null sind. Während des A2-Durchgangs ist ein Koeffizient
in der A-Gruppe signifikant, wenn das Bits S nicht-null ist. Da
die zwei höchstwertigen Bits bekannt sind, werden der B1- und
B0-Durchgang nur benötigt, um S-1 Bits zu verarbeiten (unter der
Annahme, daß S=0 die niedrigstwertige Bitebene ist).
Da alternierende partielle Bitebenen sich um einen Faktor von
1,5 oder 2/1,5 unterscheiden, kann der Abgleich für unterschied
liche Ebenen dadurch erreicht werden, daß die gewünschten par
tiellen Bitebenen für jede Stufe gruppiert werden. Partielle
Bitebenen bewirken ein feineres Modellieren der Daten aufgrund
der Eltern/Kind-Beziehung, die für das auf Frequenz basierende
Kontext-Modell verwendet worden sind. Mehr als zwei Durchgänge,
beispielsweise mit vier oder acht Durchgänge, können für ein
noch feineres Modellieren verwendet werden. Beispielsweise würde
im Fall von vier Durchgängen der A11-Durchgang Koeffizienten be
handeln, welche mit "111" beginnen. Die anderen Durchgänge wür
den "110", "101" und "100" behandeln. Ein weniger feines Model
lieren könnte auch angewendet werden. Beispielsweise würde ein
Durchgang nur mit jeder weiteren Bitebene gemacht. In dem Fall
des weniger feinen Modellierens werden mehr Bits von der B-Grup
pe codiert.
Ein Speicher-Management für codierte Daten in dem Eindurchgang-
System wird für Systeme dargestellt, welche alle Daten im Spei
cher speichern, und für Systeme, die Daten an einen Kanal über
tragen. In dem Eindurchgang-System müssen codierte Daten so ge
speichert werden, daß auf sie in einer eingebetteten kausalen
Form zugegriffen werden kann, so daß weniger signifikante Daten
weggeworfen werden können, ohne signifikantere Daten zu verlie
ren. Da codierte Daten variabel lang sind, kann eine dynamische
Speicherzuordnung verwendet werden.
In einer Ausführungsform der Erfindung benutzt das eingebettete
Codierschema 18 Bitebenen und teilt 18 Signifikanzstufen den Da
ten zu. Der Codierer in einem Eindurchgang-System muß "eingebet
tet kausal" sein. Das heißt, die Codierereignisse, die einer
Bitebene entsprechen, erfordern nicht Information von niederwer
tigeren Bitebenen. In dem Eindurchgang-Fall werden üblicherweise
alle Bits von einem Baum codiert, bevor irgendwelche Bits in dem
nächsten Baum codiert werden, so daß Bits unterschiedlicher
Signifikanz nicht getrennt werden. Für Codierer, die einen inne
ren Zustand nicht benutzen, wie Huffman-Codierer, ist dies kein
Problem. Doch benutzen viele hochentwickelte Kompressoren mit
einer besseren Kompression den internen Zustand.
Ein Weg, um diese Schwierigkeit für diese Codierer zu lösen, ist
18 verschiedene Codierer, vielleicht 18Q-Codierer-Chips zu ver
wenden. Eine Technik, die die Verwendung von 9 Q-Codierer-Chips
erlauben würde, ist in dem US-Patent 5,097,261 (Langdon, Jr.),
beschrieben, das am 17.3.1992 erteilt worden ist, und den Titel
hat: "Datenkompression für ein Aufzeichnen auf ein Aufzeichnungs
medium". Ein besserer Weg benutzt einen in eine Pipeline einge
bundenen Codierer, um verschiedene virtuelle Codes mit einem
einzigen Codierer durchzuführen, wie es beispielsweise in der
US-Patentanmeldung S.N. 08/016,035 beschrieben ist, die am
10.2.1993 eingereicht worden ist und den Titel trägt: "Verfahren
und Einrichtung für paralleles Decodieren und Codieren von Da
ten". In einem solchen Codierer sind die Mehrbit-Generatorzu
stände für jede Wahrscheinlichkeit jeweils einem Teil der Daten
zugeordnet. Beispielsweise könnte jeder von 18 Zuständen einer
ganz bestimmten Bitebene für 18 Bit-Daten zugeordnet sein. Regi
ster in den Schiebeeinheiten in dem Codierer sind ebenfalls je
dem Teil der Daten zugeordnet. In dem Codierer wird kein Ver
schachteln durchgeführt; jeder Teil der Daten ist einfach bit-ver
packt.
In Ausführungsformen entweder mit mehreren tatsächlichen oder
virtuellen Codierern ist ein Speicher jedem Teil der Daten zuge
ordnet. Wenn eine Kompression beendet ist, ist eine verknüpfte
Liste, welche den zugeordneten Speicher plus des Inhalts des zu
geordneten Speichers beschreibt, das Ergebnis. Wenn der Speicher
überläuft, bewirkt der Speicher-Zuordnungs-Leitweg, daß wichti
gere Daten über weniger wichtige Daten geschrieben werden. Bei
spielsweise kann das niedrigstwertige Bit von numerischen Daten
als erstes überschrieben werden. Die Information, die be
schreibt, wie ein Speicher zugeordnet wird, muß zusätzlich zu
den codierten Daten gespeichert werden.
Fig. 24 zeigt ein Beispiel einer dynamischen Speicherzuordnungs
einheit für drei Signifikanz-Kategorien. Es werden nur drei Ka
tegorien beschrieben, um ein Unverständlichmachen der Erfindung
zu vermeiden; üblicherweise würden eine größere Anzahl Katego
rien, wie 8, 16 oder 18 verwendet werden. Eine Registerdatei
(oder ein anderer Speicher) hält einen Speicher für jede signi
fikante Kategorie plus einen weiteren Zeiger, um die nächste
freie Speicherstelle anzuzeigen. Der Speicher ist in festes Sei
tengrößen aufgeteilt.
Anfangs zeigt jeder Zeiger, welcher einer Signifikanz-Kategorie
zugeordnet ist, auf den Beginn einer Speicherseite, und der
freie Zeiger zeigt auf die nächste verfügbare Speicherseite. Co
dierte Daten, die mit Hilfe einer Signifikanz-Kategorie identi
fiziert worden sind, werden an der Speicherstelle gespeichert,
welche durch den entsprechenden Zeiger adressiert worden ist.
Der Zeiger wird dann auf die nächste Speicherstelle inkremen
tiert.
Wenn der Zeiger das Maximum für die augenblickliche Seite er
reicht, wird die Adresse des Startes der nächsten freien Seite,
die in dem freien Zeiger gespeichert ist, mit der augenblickli
chen als Verbindungsglied gespeichert. In einer Ausfüh
rungsform könnte der Teil des codierten Datenspeichers oder ein
gesonderter Speicher oder eine Registerdatei für diesen Zweck
verwendet werden. Dann wird der augenblickliche Zeiger auf die
nächste freie Seite gesetzt. Der freie Zeiger wird inkremen
tiert. Diese Stufen bewirken, daß eine neue Speicherseite einer
ganz bestimmten Signifikanz-Kategorie zugeordnet ist und Verbin
dungsglieder zu Speicherseiten vorgesehen werden, welche Daten
für eine gemeinsame Signifikanz-Kategorie enthalten, so daß die
Zuordnungsreihenfolge während des Decodierens bestimmt werden
kann.
Wenn alle Seiten in dem Speicher verwendet sind und es mehr Da
ten gibt, welche signifikanter sind als die am wenigsten signi
fikanten Daten in dem Speicher, kann ein Wiederzuordnen des
Speichers durchgeführt werden. Drei derartige Zuordnungstechni
ken werden beschrieben. In allen drei Fällen wird ein Speicher,
der dem niedrigstwertigen Daten zugeordnet ist, wieder signifi
kanteren Daten zugeordnet und es wird nicht mehr der niedrigst
wertige Datenwert gespeichert.
Zuerst wird die Seite, die von den niedrigstwertigen Daten au
genblicklich verwendet wird, einfach den höherwertigen Daten zu
geordnet. Da typische Entropie-Coder interne Zustandsinformation
verwenden, gehen alle niedrigstwertigen Daten, die vorher auf
dieser Seite gespeichert sind, verloren. Zweitens wird die
Seite, die gerade von den niedrigstwertigen Daten benutzt wird,
den höherwertigen Daten zugeordnet. Im Unterschied zu dem vorhe
rigen Fall wird der Zeiger auf das Ende der Seite gesetzt, und
da höherwertige Daten auf der Seite geschrieben sind, wird der
entsprechende Zeiger dekrementiert. Dies hat den Vorteil, daß
die niedrigstwertigen Daten beim Start der Seite erhalten wer
den, wenn die höherwertigen Daten nicht die ganze Seite erfor
dern.
Drittens kann statt der aktuellen Seite mit niedrigstwertigen
Daten, die wieder zuzuordnen sind, eine Seite von niedrigstwer
tigen Daten wieder zugeordnet werden. Dies erfordert, daß die
codierten Daten für alle Zeiten unabhängig codiert sind, welche
die erreichte Kompression verringern können. Es ist auch erfor
derlich, daß die uncodierten Daten, die dem Start aller Seiten
entsprechen, identifiziert werden. Da eine Seite mit niedrigst
wertigen Daten ausrangiert werden kann, ist eine größere Flexi
bilität in der Quantisierung verfügbar.
Die dritte Alternative kann in einem System besonders attraktiv
sein, das eine fest Kompressionsrate über Bereiche des Bildes
erreicht. Eine genau festgelegte Anzahl Speicherseiten kann
einem Bereich des Bildes zugeteilt werden. Ob weniger signifi
kante Daten erhalten werden oder nicht, kann von der Kompression
abhängen, die in einem ganz bestimmten Bereich erreicht worden
ist. Der Speicher, der einem Bereich zugeordnet ist, kann nicht
vollständig genutzt werden, wenn eine verlustfreie Kompression
zugeordnet ist, die weniger als den Speicherplatz erfordert. Ein
Erreichen einer fest vorgegebenen Kompressionsrate bei einem Be
reich des Bildes kann einen direkten Zugriff auf die Bildberei
che unterstützen.
Wenn eine Kompression beendet ist, können die Daten erforderli
chenfalls an einen Kanal oder eine Speichereinrichtung in der
Signifikanz-Reihenfolge übertragen werden. Die verschiedenen
Bindeglieder und Zeichen würden dann nicht mehr länger benötigt
werden und es könnte eine mehrfache Durchgang-Decodierung durch
geführt werden. Andererseits können für ein Eindurchgang-Deco
dieren die Zeiger der Daten der jeweiligen Signifikanz erhalten
werden.
In einigen Anwendungsfällen können einige Signifikanz-Katego
rien nicht verwendet werden. Beispielsweise kann ein 16 Bit-Kom
pressor bei einem medizinischen 12 Bit-Bit verwendet werden, so
daß Signifikanz-Kategorien, die Bitebenen 15 . . . 12 entsprechen,
unbenutzt sein würden. In Implementationen mit großen Seiten und
vielen ungenutzten Signifikanz-Kategorien würde dies Speicher
platz vergeuden (wenn das System nicht im voraus erkennt, daß
einige Kategorien nicht benutzt werden), da ihnen kein Speicher
zugeordnet werden muß. Eine weitere Lösung bei dieser Speicher
vergeudung würde darin bestehen, einen kleinen Speicher (oder
ein entsprechendes Register) zu verwenden, um einen Zählwert für
jede Signifikanz-Kategorie zu halten. Der Zählwert würde eine
Speicherspur der Anzahl von "unbedeutenden, nicht-signifikanten
Kinder" -Entscheidungen halten, die auftreten, bevor irgendeine
andere Entscheidung vorkommt. Der Speicher, der erforderlich
ist, um diese Zählwerte zu speichern, muß gegenüber dem Spei
cher, der von nicht-genutzten Signifikanz-Kategorien benutzt
worden ist, "ausgetauscht" werden.
Die Möglichkeit, Daten in jede Seite von beiden Enden her zu
schreiben, kann benutzt werden, um den gesamten Speicherinhalt,
der in dem System verfügbar ist, besser zu nutzen. Wenn alle
Seiten zugeteilt sind, kann eine Seite, die ausreichend freien
Platz an dem Ende hat, für eine Benutzung von diesem Ende her
zugeteilt werden. Die Möglichkeit, beide Enden einer Seite zu
benutzen, muß gegenüber den Kosten ausgeglichen sein, die Spei
cherspur der Stelle zu halten, an welcher sich die zwei Datenty
pen begegnen. Dies ist jedoch schwierig für den Fall, daß einer
der Datentypen nicht signifikant war und einfach überschrieben
werden könnte.
In einem System, bei welchem Daten in einem Kanal übertragen
werden, statt in einem Speicher gespeichert zu werden und Spei
cherseiten fest vorgegebener Größe verwendet werden (aber nur
eine Seite pro Signifikanz-Kategorie benötigt wird), wird dies,
wenn eine Speicherseite voll ist, in den Kanal übertragen, und
eine Speicherstelle kann wieder benutzt werden, sobald die Daten
übertragen sind. In einigen Anwendungsfällen kann die Seitengrö
ße des Speichers die Größe von Datenpaketen sein, die in dem Ka
nal verwendet werden, oder ein Mehrfaches der Paketgröße sein.
(Zu beachten ist, daß in einer Ausführungsform zwei Seiten pro
Signifikanz-Stufe verwendet werden können, so daß Daten in eine
Seite geschrieben werden können, während die anderen für ein Ab
geben an den Kanal gelesen werden).
In einigen Kommunikationssystem, beispielsweise ATM (asynchro
ner Transfer-Mode), können Prioritäten Paketen zugeordnet wer
den. ATM hat zwei Prioritätsstufen, eine primäre und eine sekun
däre. Sekundäre Pakete werden nur übertragen, wenn ausreichende
Bandbreite verfügbar ist. Ein Schwellenwert kann benutzt werden,
um zu bestimmen, welche Signifikanz-Kategorien primär sind und
welche sekundär sind. Ein anderes Verfahren würde darin beste
hen, einen Schwellenwert an dem Codierer zu verwenden, um Signi
fikanz-Kategorien nicht zu übertragen, die weniger signifikant
waren als ein Schwellenwert.
In einigen Anwendungen wird eine perfekte (verlustfreie) Rekon
struktion nicht benötigt. Es kann jedoch wünschenswert sein, eine
Kompression mit einem spezifizierten Maximum-Peakfehler zu er
reichen. Der Peakfehler soll ±E sein. Dies kann durch Abschnei
den der verdichteten Daten erreicht werden, so daß alle weniger
signifikanten Daten, die nicht benötigt werden, um die geforder
te Genauigkeit zu erreichen, ausgeschieden werden.
Ein andere Möglichkeit, um eine Kompression mit einem spezifi
zierten Maximum-Peakfehler zu erreichen, ist durch einen Wert,
der kleiner als oder gleich (2 × E +1) ist, jedes Pixel des zu
komprimierenden Bildes (mit einer ganzzahligen Division) zu tei
len. Während einer Rekonstruktion wird jedes Pixel in dem Bild
verarbeitet mit:
Ausgabepixel = (2×E+1) × eingegebenes Pixel + E.
Ausgabepixel = (2×E+1) × eingegebenes Pixel + E.
(Alternativ hierzu kann, statt E während einer Dekompression
hinzuzufügen, eine Subtraktion während einer Kompression vor
einem Teilen durch (2×E+1) vorkommen).
Ein anderer Weg, um eine Kompression mit einem spezifizierten
Maximum-Peakfehler zu erreichen, besteht darin, die Division und
Multiplikation durch Verschiebungen zu ersetzen. Der Verschiebe
wert ist [log2 (2×E+1)]. Da ein Verschieben bequem ist, kann eine
bessere Fehlerspezifizierung (ein Ersetzen des Peakfehlers) Feh
ler der Form (-2n<Fehler<-2n) sein.
Das Vorhergehende sollte nicht mit einer Quantisierung von
Koeffizienten verwechselt werden, was auf dem Gebiet der ver
lustbehafteten Bildkompression allgemein bekannt ist. In vielen
verlustbehafteten Kompressionssystemen (z. B. JPEG) werden Trans
formations-Domänen-Koeffizienten einem Maximum-Peakfehler zuge
ordnet, welcher nur indirekt den Peakfehler des Bildes steuert.
Eine kritische Differenz besteht darin, daß die Erfindung die
Quantisierung an Pixel durchführt, und eine verlustfreie Kom
pression von Koeffizienten benutzt.
Eine Transformations-Domänenquantisierung kann ebenfalls be
nutzt werden. Viele Koeffizienten haben eine Wirkung auf einen
Peakfehler, der sich über mehrere Stufen/Ebenen der Transforma
tion ausbreitet. Es ist leichter die Wirkung auf einen Peakfeh
ler für Hochpaß-Koeffizienten zu bestimmen, die keine Kinder ha
ben.
Es wird nunmehr ein eindimensionales Signal betrachtet, welches
mit einem Maximum-Peakfehler von ±E zu codieren ist. Dies kann
dadurch erreicht werden, daß die feinsten Hochpaß-Koeffizienten
in ±2E quantisiert werden. Für ein zweidimensionales Signal kön
nen, da es zwei Anwendungen des Hochpaßfilters gibt, die fein
sten HH-Koeffizienten mit ±4E quantisiert werden.
Eine Alternative, uni eine Quantisierung bei dem eingegebenen
Bild anzuwenden, besteht darin, die Entscheidungen in dem
Entropie-Coder Zu steuern. Ein Beispiel hierfür ist das folgen
de. Für jeden Koeffizienten wird, wenn ein Einstellen des Koef
fizienten auf null den Fehler in irgendeinem Pixel nicht hervor
rufen würde, das durch diesen Koeffizienten beeinflußt worden
ist, um den Maximum-Fehler zu überschreiten, der Koeffizient
null gesetzt. In einigen Implementierungen werden nur ganz be
stimmte Koeffizienten geprüft, vielleicht nur die Wechselstrom-
Koeffizienten, welche keine Kinder haben. Koeffizienten können
mit einer gierigen Strategie betrachtet werden, wobei einer zu
einer bestimmten Zeit betrachtet wird. Andere Strategien können
kleine Gruppen von Koeffizienten berücksichtigen und auswählen,
um die größtmögliche Untermenge der Gruppen zu null zumachen.
Claims (21)
1. Verfahren zum Codieren eingegebener Daten, welches die
Schritte aufweist:
Erzeugen transformierter Signale entsprechend den eingegebenen Daten, wobei die transformierten Signale mit Hilfe einer rever siblen Wavelet-Transformation erzeugt werden, und
Komprimieren der transformierten Signale in Daten, die eine verlustfreie komprimierte Version der eingegebenen Daten dar stellen.
Erzeugen transformierter Signale entsprechend den eingegebenen Daten, wobei die transformierten Signale mit Hilfe einer rever siblen Wavelet-Transformation erzeugt werden, und
Komprimieren der transformierten Signale in Daten, die eine verlustfreie komprimierte Version der eingegebenen Daten dar stellen.
2. Verfahren nach Anspruch 1, bei welchem die transformierten
Signale eine Anzahl Koeffizienten aufweisen.
3. Verfahren nach Anspruch 1, bei welchem der Schritt, Erzeu
gen, ein Zerlegen der eingegebenen Daten durch Verwenden minde
stens eines reversiblen Filters nicht-minimaler Länge ein
schließt, um eine Reihe von Koeffizienten zu erzeugen.
4. Verfahren nach Anspruch 3, bei welchem das zumindest eine
reversible Filter nicht-minimaler Länge eine Anzahl eindimen
sionaler Filter aufweist.
5. Verfahren nach Anspruch 1, bei welchem die eingegebenen Da
ten Bilddaten aufweisen.
6. Verfahren nach Anspruch 1, bei welchem der Schritt, Verdich
ten, ein eingebettetes Codieren der transformierten Signale um
faßt, einschließlich der Schritte, Ordnen der Koeffizientenrei
he und Durchführen einer Bit-Signifikanz-Einbettung an den
transformierten Signalen.
7. Verfahren nach Anspruch 1, das ferner die Schritte aufweist:
Dekomprimieren der verlustfrei komprimierten Version der einge gebenen Daten in transformierte Signale, und
Erzeugen der eingegebenen Daten aus den transformierten Signa len in einer rekonstruierten Version der eingegebenen Daten mit Hilfe einer inversen, reversiblen Wavelet-Transformation.
Dekomprimieren der verlustfrei komprimierten Version der einge gebenen Daten in transformierte Signale, und
Erzeugen der eingegebenen Daten aus den transformierten Signa len in einer rekonstruierten Version der eingegebenen Daten mit Hilfe einer inversen, reversiblen Wavelet-Transformation.
8. Verfahren zum Decodieren von Daten in ursprüngliche Daten,
welches die Schritte aufweist:
Dekomprimieren einer verlustfrei komprimierten Version von ein gegebenen Daten in eine Anzahl transformierter Signale, und
Erzeugen einer rekonstruierten Version von ursprünglichen Daten aus der Anzahl transformierter Signale mit Hilfe einer inversen reversiblen Wavelet-Transformation.
Dekomprimieren einer verlustfrei komprimierten Version von ein gegebenen Daten in eine Anzahl transformierter Signale, und
Erzeugen einer rekonstruierten Version von ursprünglichen Daten aus der Anzahl transformierter Signale mit Hilfe einer inversen reversiblen Wavelet-Transformation.
9. Verfahren nach Anspruch 8, bei welchem die transformierten
Signale eine Anzahl Koeffizienten aufweisen.
10. Verfahren nach Anspruch 8, bei welchem der Schritt, Erzeu
gen, ein Zerlegen der eingegebenen Daten mit Hilfe zumindest
eines reversiblen Filters nicht-minimaler Länge einschließt, um
eine Reihe von Koeffizienten zu erzeugen.
11. Verfahren nach Anspruch 10, bei welchem das zumindest eine
reversible Filter nicht-minimaler Länge eine Anzahl eindimen
sionaler Filter aufweist.
12. Verfahren zum Codieren von eingegebenen Daten, welches die
Schritte aufweist:
Erzeugen einer ersten Anzahl transformierter Signale entspre chend den eingegebenen Daten, wobei die transformierten Signale mit Hilfe einer reversiblen Wavelet-Transformation erzeugt wer den;
Komprimieren der ersten Anzahl transformierter Signale in Da ten, welche eine verlustfrei komprimierte Version der eingege benen Daten darstellen;
Dekomprimieren der verlustfrei komprimierten Version der einge gebenen Daten in eine zweite Anzahl transformierter Signale, und
Erzeugen der eingegebenen Daten aus der zweiten Anzahl trans formierter Signale in eine rekonstruierte Version der eingege benen Daten mit Hilfe einer inversen, reversiblen Wavelet- Transformation.
Erzeugen einer ersten Anzahl transformierter Signale entspre chend den eingegebenen Daten, wobei die transformierten Signale mit Hilfe einer reversiblen Wavelet-Transformation erzeugt wer den;
Komprimieren der ersten Anzahl transformierter Signale in Da ten, welche eine verlustfrei komprimierte Version der eingege benen Daten darstellen;
Dekomprimieren der verlustfrei komprimierten Version der einge gebenen Daten in eine zweite Anzahl transformierter Signale, und
Erzeugen der eingegebenen Daten aus der zweiten Anzahl trans formierter Signale in eine rekonstruierte Version der eingege benen Daten mit Hilfe einer inversen, reversiblen Wavelet- Transformation.
13. Verfahren zum Codieren eingegebener Daten, welche die
Schritte aufweist:
Codieren durch Transformation der eingegebenen Daten in eine Reihe Koeffizienten, und
eingebettetes Codieren der Reihe Koeffizienten einschließlich der Schritte, Ordnen der Reihe von Koeffizienten und Durchfüh ren einer Bit-Signifikanz-Einbettung bei der Reihe Koeffizien ten, wobei eine erste Art von eingebettetem Codieren an einem ersten Teil der Daten durchgeführt wird, und eine zweite Art von eingebettetem Codieren an einem zweiten Teil der Daten durchgeführt wird.
Codieren durch Transformation der eingegebenen Daten in eine Reihe Koeffizienten, und
eingebettetes Codieren der Reihe Koeffizienten einschließlich der Schritte, Ordnen der Reihe von Koeffizienten und Durchfüh ren einer Bit-Signifikanz-Einbettung bei der Reihe Koeffizien ten, wobei eine erste Art von eingebettetem Codieren an einem ersten Teil der Daten durchgeführt wird, und eine zweite Art von eingebettetem Codieren an einem zweiten Teil der Daten durchgeführt wird.
14. Verfahren nach Anspruch 13, bei welchem der Schritt Codie
ren durch Transformation eine Wavelet-Filterung der eingegebe
nen Daten einschließt.
15. Verfahren nach Anspruch 13, bei welchem die erste Art von
eingebettetem Codieren ein Baumcodieren beinhaltet.
16. Verfahren nach Anspruch 13, bei welchem der Schritt, einge
bettetes Codieren ein Formatieren der Reihe von Koeffizienten
in ein Vorzeichen-Größen-Format beinhaltet.
17. Verfahren zum Codieren eingegebener Daten, welches die
Schritte aufweist:
Transformieren eingegebener Daten in Reihe von Koeffizienten durch Verwenden reversibler Wavelets;
Umwandeln der Reihe Koeffizienten in einem Vorzeichen-Größen- Format in eine Reihe formatierter Koeffizienten;
Codieren eines ersten Teils der Reihe formatierter Koeffizien ten mit Hilfe einer ersten Art eingebetteten Codierens, um einen ersten Bitstrom zu erzeugen, und
Codieren eines zweiten Teils der Serie formatierter Koeffizien ten durch Verwenden einer zweiten Art eingebetteten Codierens, um einen zweiten Bitstrom zu erzeugen, wobei der erste und der zweite Bitstrom in einen einzigen Bitstrom kombiniert werden.
Transformieren eingegebener Daten in Reihe von Koeffizienten durch Verwenden reversibler Wavelets;
Umwandeln der Reihe Koeffizienten in einem Vorzeichen-Größen- Format in eine Reihe formatierter Koeffizienten;
Codieren eines ersten Teils der Reihe formatierter Koeffizien ten mit Hilfe einer ersten Art eingebetteten Codierens, um einen ersten Bitstrom zu erzeugen, und
Codieren eines zweiten Teils der Serie formatierter Koeffizien ten durch Verwenden einer zweiten Art eingebetteten Codierens, um einen zweiten Bitstrom zu erzeugen, wobei der erste und der zweite Bitstrom in einen einzigen Bitstrom kombiniert werden.
18. Verfahren nach Anspruch 15, welches ein Entropie-Codieren
des einzigen Bitstroms einschließt.
19. Verfahren nach Anspruch 17, bei welchem die erste Art Co
dieren ein Baumanordnungs-Codieren aufweist.
20. Verfahren nach Anspruch 17, bei welchem der erste Teil hö
herwertige Bits und der zweite Teil niederwertige Bits auf
weist.
21. Verfahren nach Anspruch 17, bei welchem der einzige Bit
strom eine verlustfrei komprimierte Version der eingegebenen
Daten darstellt.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US31014194A | 1994-09-20 | 1994-09-20 | |
US08/310,141 | 1994-09-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19534730A1 true DE19534730A1 (de) | 1996-05-02 |
DE19534730B4 DE19534730B4 (de) | 2006-04-27 |
Family
ID=23201171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19534730A Expired - Fee Related DE19534730B4 (de) | 1994-09-20 | 1995-09-19 | Verfahren zum Codieren und Decodieren von Daten |
Country Status (4)
Country | Link |
---|---|
US (1) | US7418142B2 (de) |
JP (1) | JP3302229B2 (de) |
DE (1) | DE19534730B4 (de) |
NL (1) | NL1001247C2 (de) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6577770B1 (en) | 1997-10-08 | 2003-06-10 | Luratech Gesellschaft Fuer Luft-Und Raumfahrttechnologie & Multimedia Mbh | System and method for a multidimensional, discrete wavelet-transformation |
DE19819405B4 (de) * | 1997-05-01 | 2006-06-29 | Ricoh Co., Ltd. | Implementation eines reversiblen eingebetteten Wavelet-Systems |
US8565298B2 (en) | 1994-09-21 | 2013-10-22 | Ricoh Co., Ltd. | Encoder rate control |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3471366B2 (ja) * | 1997-07-30 | 2003-12-02 | 三菱電機株式会社 | 画像圧縮・伸張方法および画像圧縮・伸張装置 |
US7065253B2 (en) * | 1999-09-03 | 2006-06-20 | Intel Corporation | Wavelet zerotree coding of ordered bits |
DE10146582A1 (de) * | 2001-09-21 | 2003-04-24 | Micronas Munich Gmbh | Vorrichtung und Verfahren zur Teilbandzerlegung von Bildsignalen |
JP2004015741A (ja) * | 2002-06-11 | 2004-01-15 | Fujitsu Ltd | 画像処理方法、画像処理プログラムおよび画像処理装置 |
US7395210B2 (en) * | 2002-11-21 | 2008-07-01 | Microsoft Corporation | Progressive to lossless embedded audio coder (PLEAC) with multiple factorization reversible transform |
US7826670B2 (en) * | 2005-06-15 | 2010-11-02 | Fujifilm Corporation | Data compression apparatus and data compression program storage medium |
JP4360379B2 (ja) * | 2006-05-16 | 2009-11-11 | ソニー株式会社 | 画像処理装置及び画像処理方法、プログラム及び記録媒体 |
JP5035154B2 (ja) * | 2008-03-07 | 2012-09-26 | 富士通株式会社 | 映像信号処理装置及び映像信号処理方法 |
JP2009290552A (ja) * | 2008-05-29 | 2009-12-10 | Fujifilm Corp | 動画圧縮装置および動画圧縮プログラム |
US8538189B2 (en) * | 2008-11-14 | 2013-09-17 | Ati Technologies Ulc | Image noise filter and method |
US9185423B2 (en) * | 2009-02-12 | 2015-11-10 | Zoran (France) S.A. | Frame buffer compression for video processing devices |
US8559733B2 (en) * | 2009-03-31 | 2013-10-15 | Citrix Systems, Inc. | Methods and systems for approximating progressive image encoding using image partitioning |
JP2011019008A (ja) * | 2009-07-07 | 2011-01-27 | Fujifilm Corp | 動画圧縮送信装置、動画圧縮送信プログラム、および動画圧縮送信方法 |
KR101739603B1 (ko) * | 2009-08-20 | 2017-05-24 | 톰슨 라이센싱 | 2진 세트들을 인코딩 및 디코딩하기 위해 트리 구조들을 재이용하는 방법 및 장치 |
US8793391B2 (en) * | 2010-11-30 | 2014-07-29 | Deutsche Telekom Ag | Distortion-aware multihomed scalable video streaming to multiple clients |
US20160029024A1 (en) * | 2011-08-10 | 2016-01-28 | Zoran (France) S.A. | Frame buffer compression for video processing devices |
US20130166767A1 (en) * | 2011-11-23 | 2013-06-27 | General Electric Company | Systems and methods for rapid image delivery and monitoring |
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. |
US8879858B1 (en) | 2013-10-01 | 2014-11-04 | Gopro, Inc. | Multi-channel bit packing engine |
US9423455B2 (en) * | 2014-12-15 | 2016-08-23 | Genesys Testware, Inc. | Design-for-test techniques for a digital electronic circuit |
US20160234529A1 (en) * | 2015-02-05 | 2016-08-11 | Syed Shakir Iqbal | Method and apparatus for entropy encoding and decoding |
US10462490B2 (en) * | 2015-11-06 | 2019-10-29 | Raytheon Company | Efficient video data representation and content based video retrieval framework |
CN112995637B (zh) * | 2021-03-10 | 2023-02-28 | 湘潭大学 | 一种基于三维离散小波变换的多剖面医学图像压缩方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5014134A (en) * | 1989-09-11 | 1991-05-07 | Aware, Inc. | Image compression method and apparatus |
Family Cites Families (106)
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 |
DE2640157C2 (de) | 1976-09-07 | 1982-10-07 | Philips Patentverwaltung Gmbh, 2000 Hamburg | Verfahren und Anordnung zum redundanzvermindernden Codieren von Bildern |
DE2640140C2 (de) | 1976-09-07 | 1982-10-07 | Philips Patentverwaltung Gmbh, 2000 Hamburg | Verfahren und Anordnung zur redundanzvermindernden Bildcodierung |
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 |
EP0070948B1 (de) | 1981-07-28 | 1985-07-10 | International Business Machines Corporation | Sprachkodierungsverfahren und Ausführungsanordnung für das genannte Verfahren |
US4437087A (en) | 1982-01-27 | 1984-03-13 | Bell Telephone Laboratories, Incorporated | Adaptive differential PCM coding |
US4674125A (en) | 1983-06-27 | 1987-06-16 | Rca Corporation | Real-time hierarchal pyramid signal processing apparatus |
US4599567A (en) | 1983-07-29 | 1986-07-08 | Enelf Inc. | Signal representation generator |
US4652881A (en) | 1984-01-10 | 1987-03-24 | Lewis Bernard L | Efficient adaptive filter bank |
FR2577084B1 (fr) | 1985-02-01 | 1987-03-20 | Trt Telecom Radio Electr | Systeme de bancs de filtres d'analyse et de synthese d'un signal |
US4701006A (en) | 1985-02-20 | 1987-10-20 | Stanford University | Optical-digital hologram recording |
US4751742A (en) * | 1985-05-07 | 1988-06-14 | Avelex | Priority coding of transform coefficients |
GB2181318B (en) | 1985-10-04 | 1989-12-28 | Sony Corp | Two-dimensional finite impulse response filters |
US4760563A (en) | 1986-01-09 | 1988-07-26 | Schlumberger Technology Corporation | Seismic exploration using exactly invertible discrete transformation into tau-p space |
US4929223A (en) | 1986-02-18 | 1990-05-29 | Adolph Coors Company | Packaging alignment system |
DE3732085A1 (de) | 1986-03-26 | 1989-04-06 | Ant Nachrichtentech | Digitaler filterbaum |
US4663660A (en) | 1986-06-20 | 1987-05-05 | Rca Corporation | Compressed quantized image-data transmission technique suitable for use in teleconferencing |
GB8621994D0 (en) | 1986-09-12 | 1986-10-22 | Crosfield Electronics Ltd | Image processing |
US4868868A (en) | 1986-09-30 | 1989-09-19 | Oki Electric Industry Co., Ltd. | Sub-band speech analyzing and synthesizing device |
FR2606576B1 (fr) | 1986-11-07 | 1989-02-03 | Labo Electronique Physique | Dispositif pour transmettre des images de television haute definition dans des canaux a bande etroite |
GB2197766B (en) | 1986-11-17 | 1990-07-25 | Sony Corp | Two-dimensional finite impulse response filter arrangements |
US4817182A (en) | 1987-05-04 | 1989-03-28 | General Electric Company | Truncated subband coding of images |
US4815023A (en) | 1987-05-04 | 1989-03-21 | General Electric Company | Quadrature mirror filters with staggered-phase subsampling |
BE1000643A5 (fr) | 1987-06-05 | 1989-02-28 | Belge Etat | Procede de codage de signaux d'image. |
EP0294957B1 (de) | 1987-06-09 | 1995-04-12 | Sony Corporation | 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 |
US4881075A (en) | 1987-10-15 | 1989-11-14 | Digital Equipment Corporation | Method and apparatus for adaptive data compression |
US5156943A (en) | 1987-10-25 | 1992-10-20 | Whitney Theodore R | High resolution imagery systems and methods |
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 |
US4858017A (en) * | 1988-01-22 | 1989-08-15 | The Trustees Of Columbia University In The City Of New York | System and method for hierarchal image encoding and decoding |
US4985927A (en) | 1988-03-25 | 1991-01-15 | Texas Instruments Incorporated | Method of detecting and reviewing pattern defects |
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 |
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 |
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 |
US4973961A (en) | 1990-02-12 | 1990-11-27 | At&T Bell Laboratories | Method and apparatus for carry-over control in arithmetic entropy coding |
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 |
DE4016172C1 (de) | 1990-05-19 | 1991-03-28 | Werner 5900 Siegen De Ackermann | |
US5101446A (en) | 1990-05-31 | 1992-03-31 | Aware, Inc. | Method and apparatus for coding an image |
US5128757A (en) | 1990-06-18 | 1992-07-07 | Zenith Electronics Corporation | Video transmission system using adaptive sub-band coding |
EP0465732B1 (de) | 1990-07-11 | 1996-10-02 | Koninklijke Philips Electronics N.V. | Vorrichtung zur Ableitung eines kompatiblen Zeilensprungfernsehsignals mit geringer Auflösung und anderen Komponenten eines hochauflösenden Zeilensprungfernsehsignals sowie Vorrichtung zur Wiederherstellung des Originalsignals |
US5148498A (en) | 1990-08-01 | 1992-09-15 | Aware, Inc. | Image coding apparatus and method utilizing separable transformations |
US5081645A (en) | 1990-08-06 | 1992-01-14 | Aware, Inc. | Novel spread spectrum codec apparatus and method |
US5128791A (en) | 1990-08-13 | 1992-07-07 | Bell Communications Research, Inc. | Multi-channel HDTV system |
US5097331A (en) | 1990-08-24 | 1992-03-17 | Bell Communications Research, Inc. | Multiple block-size transform video coding using an asymmetric sub-band structure |
US5049992A (en) | 1990-08-27 | 1991-09-17 | Zenith Electronics Corporation | HDTV system with receivers operable at different levels of resolution |
US5049993A (en) | 1990-10-03 | 1991-09-17 | Bell Communications Research, Inc. | Format conversion preprocessing method and circuit |
GB2252002B (en) | 1991-01-11 | 1995-01-04 | Sony Broadcast & Communication | Compression of video signals |
JP3012698B2 (ja) | 1991-01-29 | 2000-02-28 | オリンパス光学工業株式会社 | 画像データの符号化装置および符号化方法 |
US5121191A (en) | 1991-03-15 | 1992-06-09 | Aware, Inc. | Method and apparatus for coding motion pictures |
US5276525A (en) | 1991-03-22 | 1994-01-04 | Bell Communications Research, Inc. | Two-dimensional block scanning for subband image and video coding |
US5262958A (en) | 1991-04-05 | 1993-11-16 | Texas Instruments Incorporated | Spline-wavelet signal analyzers and methods for processing signals |
AU1996292A (en) * | 1991-05-17 | 1992-12-30 | Analytic Sciences Corporation, The | Continuous-tone image compression |
US5235434A (en) | 1991-06-27 | 1993-08-10 | Polaroid Corporation | Method and apparatus for selectively adjusting the brightness of large regions of an image |
US5349348A (en) | 1991-08-15 | 1994-09-20 | International Business Machines Corporation | Multi-mode data stream generator |
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 |
JPH0638193A (ja) * | 1992-07-17 | 1994-02-10 | Casio Comput Co Ltd | 画像圧縮装置 |
US5379355A (en) | 1992-08-24 | 1995-01-03 | Ricoh Corporation | Data encoding using one or more adaptive decision trees |
US5638498A (en) | 1992-11-10 | 1997-06-10 | Adobe Systems Incorporated | Method and apparatus for reducing storage requirements for display data |
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 |
US5412741A (en) * | 1993-01-22 | 1995-05-02 | David Sarnoff Research Center, Inc. | Apparatus and method for compressing information |
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 |
US5381145A (en) | 1993-02-10 | 1995-01-10 | Ricoh Corporation | Method and apparatus for parallel decoding and encoding of data |
JP2933457B2 (ja) | 1993-02-18 | 1999-08-16 | 日本電気株式会社 | ウェーブレット変換符号化方法 |
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 |
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 |
JP2720926B2 (ja) | 1993-10-26 | 1998-03-04 | 富士ゼロックス株式会社 | 画像符号化装置 |
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 |
JPH09507730A (ja) * | 1994-01-14 | 1997-08-05 | ヒューストン・アドバンスト・リサーチ・センター | ビデオ・イメージに対する境界スプライン・ウエーブレット圧縮 |
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 |
US5566089A (en) | 1994-10-26 | 1996-10-15 | General Instrument Corporation Of Delaware | Syntax parser for a video decompression processor |
-
1995
- 1995-09-18 JP JP23798895A patent/JP3302229B2/ja not_active Expired - Lifetime
- 1995-09-19 DE DE19534730A patent/DE19534730B4/de not_active Expired - Fee Related
- 1995-09-20 NL NL1001247A patent/NL1001247C2/nl not_active IP Right Cessation
-
1997
- 1997-09-30 US US08/941,466 patent/US7418142B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5014134A (en) * | 1989-09-11 | 1991-05-07 | Aware, Inc. | Image compression method and apparatus |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8565298B2 (en) | 1994-09-21 | 2013-10-22 | Ricoh Co., Ltd. | Encoder rate control |
DE19819405B4 (de) * | 1997-05-01 | 2006-06-29 | Ricoh Co., Ltd. | Implementation eines reversiblen eingebetteten Wavelet-Systems |
US6577770B1 (en) | 1997-10-08 | 2003-06-10 | Luratech Gesellschaft Fuer Luft-Und Raumfahrttechnologie & Multimedia Mbh | System and method for a multidimensional, discrete wavelet-transformation |
Also Published As
Publication number | Publication date |
---|---|
DE19534730B4 (de) | 2006-04-27 |
JP3302229B2 (ja) | 2002-07-15 |
US7418142B2 (en) | 2008-08-26 |
NL1001247C2 (nl) | 1997-05-27 |
NL1001247A1 (nl) | 1996-03-20 |
JPH08116265A (ja) | 1996-05-07 |
US20020048405A1 (en) | 2002-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19626600C2 (de) | Kodierer und Verfahren zum Kodieren | |
DE19534730B4 (de) | Verfahren zum Codieren und Decodieren von Daten | |
DE19626615C2 (de) | Verfahren und Apparat zur Kompression, das bzw. der reversible Wavelet-Transformationen und einen eingebetteten Kodestrom verwendet | |
DE19534943B4 (de) | Vorrichtung zur Komprimierung unter Verwendung von eingebetteten Kleinwellen | |
DE19861377B4 (de) | Ein verbessertes Kompressions- und Dekompressionssystem mit reversiblen Wavelets und verlustbehafteter Rekonstruktion | |
US7068849B2 (en) | Method and apparatus for compression using reversible wavelet transforms and an embedded codestream | |
DE69722601T2 (de) | Datenkompression mit hybrider verlustloser entropiekodierung von run-length codes | |
DE602004002525T2 (de) | Verfahren zum Umcodieren eines nach JPEG2000 komprimierten Bildes | |
DE69635055T2 (de) | Kodierung von zerotree-informationen in einem bildkodierungssystem mit wavelettransformation | |
DE19506164A1 (de) | Verfahren zum Komprimieren eingegebener Symbole in Codeworte | |
DE102007020292A1 (de) | Verfahren zur Komprimierung von Daten unter Verwendung einer Lauflängen-Kodierung insbesondere für medizinische Bilddaten | |
EP1472888B1 (de) | Kontextsensitive kodierung und dekodierung eines videodatenstroms | |
DE19819405B4 (de) | Implementation eines reversiblen eingebetteten Wavelet-Systems | |
DE60012717T2 (de) | Bildcodierung unter verwendung einer umordnung von wavelet-koeffizienten | |
DE19944213C1 (de) | Verfahren zum Komprimieren eines digitalen Bildes mit mehreren Bit-Ebenen | |
GB2313757A (en) | Method using an embedded codestream | |
DE19549491C2 (de) | Entropie-Codierer | |
GB2302244A (en) | Wavelet transform filter |
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 |