NL1001247C2 - Werkwijze voor het comprimeren met gebruikmaking van reversibele ingebedde minigolven. - Google Patents

Werkwijze voor het comprimeren met gebruikmaking van reversibele ingebedde minigolven. Download PDF

Info

Publication number
NL1001247C2
NL1001247C2 NL1001247A NL1001247A NL1001247C2 NL 1001247 C2 NL1001247 C2 NL 1001247C2 NL 1001247 A NL1001247 A NL 1001247A NL 1001247 A NL1001247 A NL 1001247A NL 1001247 C2 NL1001247 C2 NL 1001247C2
Authority
NL
Netherlands
Prior art keywords
coefficients
data
bit
input data
coefficient
Prior art date
Application number
NL1001247A
Other languages
English (en)
Other versions
NL1001247A1 (nl
Inventor
Edward Lawrence Schwartz
James Dow
Martin Boliek
Ahmad Zandi
Original Assignee
Ricoh Kk
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23201171&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=NL1001247(C2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Ricoh Kk filed Critical Ricoh Kk
Publication of NL1001247A1 publication Critical patent/NL1001247A1/nl
Application granted granted Critical
Publication of NL1001247C2 publication Critical patent/NL1001247C2/nl

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/148Wavelet transforms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/635Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/647Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/98Adaptive-dynamic-range coding [ADRC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing 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/2383Channel coding or modulation of digital bit-stream, e.g. QPSK modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • H04N21/4382Demodulation or channel decoding, e.g. QPSK demodulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • H04N21/6379Control 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation

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

Werkwijze voor het comprimeren met gebruikmaking van reversibele ingebedde minigolven.
VELD VAN DE UITVINDING
-..5 De onderhavige uitvinding heeft betrekking op het veld van da tacompressie- en datadecompressie-systemen; in het bijzonder heeft de onderhavige uitvinding betrekking op een werkwijze en apparaat voor het verliesloos en met verlies gepaard gaande coderen en decoderen van data in compressie/decompressie-systemen.
10
ACHTERGROND VAN DE UITVINDING
Datacompressie is een bijzonder nuttig instrument voor het opslaan en overdragen van grote hoeveelheden data. De tijd die bijvoorbeeld nodig is voor het overdragen van een beeld, zoals een facsimile-15 overdracht van een document, wordt drastisch gereduceerd wanneer er compressie wordt gebruikt voor het verlagen van het aantal bits die nodig zijn om het beeld te herscheppen.
Er bestaan veel verschillende datacompressietechnieken in de stand van de techniek. Compressietechnieken kunnen in twee globale 20 categorieën worden verdeeld, met verlies coderen en zonder verlies coderen. Het met verlies coderen behelst de codering die leidt tot het verlies van informatie, zodat er geen garantie voor een perfecte reconstructie van de originele data is. Het doel van met verlies gepaard gaande compressie is dat veranderingen in de originele data zodanig 25 zijn uitgevoerd dat ze niet bezwaarlijk of detecteerbaar zijn. Bij verliesloze compressie blijft alle informatie behouden en wordt de data zodanig gecomprimeerd dat een perfecte reconstructie mogelijk is.
Bij verliesloze compressie worden ingangssymbolen of intensi-teitsdata omgezet in uitgangscodewoorden. De invoer kan beelddata, 30 geluidsdata, eendimensionale data (bijvoorbeeld data die ruimtelijk of in de tijd veranderen), tweedimensionale data (bijvoorbeeld data die in twee ruimtelijke richtingen veranderen ((of één ruimtelijke en één tijdsdimensie)), of multidimensionale/multispectrale data omvatten. Als de compressie succesvol is zijn de codewoorden weergegeven in 35 minder bits dan het aantal bits dat nodig is voor de ongecodeerde ingangssymbolen (of intensititeitsdata). Verliesloze codeerwerkwijzen omvatten woordenboek-werkwijzen van codering (bijvoorbeeld Lempel-Ziv), looplengte-codering, enumeratieve codering en entropie-codering.
1001247 2
Bij verliesloze beeldcompressie is de compressie gebaseerd op predicties of conteksten, plus codering. De JBIG-standaard voor facsimile-compressie en DPCM (differentieelpulscode-modulatie - een optie in de JPEG-standaard) voor continue-toonbeelden zijn voorbeelden van —5 verliesloze compressie voor beelden. Bij verliesloze compressie worden ingangssymbolen of intensiteitsdata gekwantiseerd voorafgaand aan de conversie in uitgangscodewoorden. De kwantisering is bedoeld voor het behouden van relevante karakteristieken van de data terwijl onbelangrijke karakteristieken worden geëlimineerd. Voorafgaand aan de kwanti-10 sering gebruikt het met verlies gepaard gaande compressiesysteem vaak een transformatie voor het verschaffen van energiecompactheid. JPEG is een voorbeeld van een met verlies gepaard gaande codeerwerkwijze voor beelddata.
Recentelijke ontwikkelingen in de beeldsignaalverwerking blijven 15 de aandacht vestigen op een noodzaak voor efficiënte en accurate vormen van datacompressiecodering. Er zijn diverse vormen van transformatie of piramidale signaalverwerking voorgesteld, inclusief piramidale verwerking met multiresolutie en piramidale minigolf (wavelet)-verwerking. Naar deze vormen wordt ook verwezen als subbandverwerking en 20 hiërarchische verwerking. De piramidale minigolf-verwerking van beelddata is een specifiek type van piramidale verwerking met multiresolutie dat gebruik kan maken van kwadratuurspiegelfilters (QMF's) voor het verschaffen van subband-decompositie van een origineel beeld. Merk op dat er andere typen van niet-QMF-minigolven bestaan. Zie voor meer 25 informatie over minigolf-verwerking Antonini, M., et al., "Image Coding Using Wavelet Transform", IEEE Transactions on Image Processing, vol 1, no. 2, april 1992; Shapiro, J., "An Embedded Hierarchical Image Coder Using Zerotrees of Wavelet Coefficients", Proc. IEEE Data Compression Conference, pagina's 214-223. 1993-30 Een probleem dat met veel van de minigolf-verwerking volgens de stand van de techniek is verbonden, is dat er een groot geheugen nodig is om alle data op te slaan terwijl deze worden verwerkt. Met andere woorden, bij het uitvoeren van minigolf-verwerking moeten alle data worden onderzocht voordat de data worden gecodeerd. In een dergelijk 35 geval is er geen data-uitvoer totdat er tenminste één volledige doorgang door alle data is gemaakt. In feite behelst de minigolf-verwerking op kenmerkende wijze veelvoudige doorgangen door de data. Hierdoor is vaak een groot geheugen noodzakelijk. Het is gewenst om mini- 1001247 3 golf-verwerking te gebruiken terwijl de eis van een groot geheugen wordt vermeden. Verder is het gewenst om minigolf-verwerking uit te voeren met gebruikmaking van slechts één enkele doorgang door de data.
Veel minigolf- of subband-transformatie-implementaties vereisen "5 filters in een specifieke canonische vorm. Laag- en hoogdoorlaatfliters moeten bijvoorbeeld dezelfde lengte hebben, de som van de kwadraten van de coëfficiënten moet één zijn, het hoogdoorlaatfilter moet de tijd- en frequentie-inverse van het laagdoorlaatfilter zijn enzovoorts (zie U.S.-octrooi no. 5*01*1·13*1* gepubliceerd in mei 1991 door Lawton 10 et al.). Het is gewenst om een bredere klasse van filters toe te staan. Dat wil zeggen, het is gewenst om minigolf- of subband-trans-formatie-implementaties te verschaffen die laag- en hoogdoorlaatfliters gebruiken die niet dezelfde lengte hebben, de som van de kwadraten hoeft geen één te zijn, het hoogdoorlaatfilter hoeft niet de tijd-15 en frequentie-omgekeerde van het laagdoorlaatfilter te zijn enzovoorts .
De onderhavige uitvinding verschaft met verlies gepaard gaande en verliesloze compressie met gebruikmaking van een transformatie die een goede energiecompactheid verschaft. De onderhavige uitvinding voorziet 20 tevens in het modelleren van gemeenschappelijke ruimtelijke/frequen-tiedomeindata (minigolf-transformatiedomein) om een efficiënte compressie mogelijk te maken. Ook is er een progressieve overdracht verschaft waarbij de snelheid of vervorming door de gebruiker na het coderen geselecteerd kan worden.
25
SAMENVATTING VAN DE UITVINDING
Er wordt een werkwijze en apparaat voor het coderen en decoderen van data beschreven. De onderhavige uitvinding omvat een werkwijze en apparaat voor het genereren van getransformeerde signalen als reactie 30 op ingangsdata. In een uitvoeringsvorm worden de getransformeerde signalen gegenereerd met gebruikmaking van een reversibele minigolf-transformatie. De onderhavige uitvinding omvat tevens een werkwijze en apparaat voor het comprimeren van de getransformeerde signalen in data die een verliesloos gecomprimeerde versie van de ingangsdata vertegen-35 woordigen. In een uitvoeringsvorm ontleedt de onderhavige uitvinding de ingangsdata met gebruikmaking van een reversibel filter met een niet-minimale lengte. De decompositie kan worden uitgevoerd met gebruikmaking van veelvoudige eendimensionale filters.
10 0 12 4 7 4
De onderhavige uitvinding omvat tevens een werkwijze en apparaat voor het uitvoeren van ingebedde codering van de getransformeerde signalen. De ingebedde codering van de onderhavige uitvinding omvat het ordenen van de serie coëfficiënten en het uitvoeren van bitsigni-5 ficantie-inbedding op de getransformeerde signalen.
De onderhavige uitvinding omvat tevens een werkwijze en apparaat voor het decomprimeren van de verliesloos gecomprimeerde versie van de ingangsdata in getransformeerde signalen. De onderhavige uitvinding voorziet tevens in met verlies gepaard gaande compressie van ingangs-10 signalen door afkapping van verliesloos gecomprimeerde data. De onderhavige uitvinding omvat tevens een werkwijze en apparaat voor het genereren van de ingangsdata van de getransformeerde signalen tot een gereconstrueerde versie van de ingangsdata met gebruikmaking van een inverse reversibele minigolf-transformatie.
15
KORTE BESCHRIJVING VAN DE TEKENINGEN
De onderhavige uitvinding is bij wijze van voorbeeld, en niet bij wijze van beperking, geïllustreerd aan de hand van de figuren van de 20 begeleidende tekeningen. Hierin verwijzen gelijke verwijzingscijfers naar gelijke elementen.
Figuur IA is een blokschema van een uitvoeringsvorm van het co-deergedeelte van het codeersysteem van de onderhavige uitvinding.
Figuur 1B is een blokschema van een uitvoeringsvorm van de bit-25 significantie-inbedding van de onderhavige uitvinding.
Figuur 2A is een blokschema van een minigolf-analyse/synthese-systeem,
Figuur 2B illustreert voorwaartse en achterwaartse vertegenwoordigingen van transformatiesystemen voor het filteren met niet-overlap-30 pende reversibele filters van minimale lengte.
Figuren 3A~D illustreren resultaten van het uitvoeren van een decompositie met vier niveaus.
Figuur 4a is een blokschema van een piramidale transformatie met drie niveaus.
35 Figuur UB is een blokschema van een tweedimensionale transforma tie met twee niveaus.
Figuur 4C is een blokschema dat eendimensionale filters illustreert die een decompressie met multiresolutie uitvoeren.
1001247 5
Figuur 4D is een blokschema van een systeem dat gebruik maakt van de reversibele minigolven van de onderhavige uitvinding.
Figuur 4e zijn blokschema's van een verbeterings- en analysesysteem met gebruikmaking van de reversibele minigolven van de onderhavi-5 ge uitvinding.
Figuur 5 illustreert een boomstructuur van minigolf-coëffi-ciënten.
Figuren 6A en 6A (vervolg) zijn een stroomschema van een uitvoeringsvorm van de enkele-lijst-nulboom-modellering voor het coderen in 10 de onderhavige uitvinding.
Figuren 6B en 6B (vervolg) zijn een stroomschema van een uitvoeringsvorm van de enkele-lijst-nulboom-modellering voor het coderen in de onderhavige uitvinding met gebruikmaking van gereduceerd vlaggeheu-gen.
15 Figuur 6C is een stroomschema van een uitvoeringsvorm van de enkele-lijst-nulboom-modellering voor het decoderen in de onderhavige uitvinding.
Figuur 6D is een stroomschema van een uitvoeringsvorm van de enkele-lijst-nulboom-modellering voor het decoderen in de onderhavige 20 uitvinding met gebruikmaking van gereduceerd vlaggeheugen.
Figuur 7A is een stroomschema van een uitvoeringsvorm van de horizon-modellering voor het coderen in de onderhavige uitvinding.
Figuur 7B is een stroomschema van een uitvoeringsvorm van de horizon-modellering voor het coderen in de onderhavige uitvinding met 25 gebruikmaking van gereduceerd vlaggeheugen.
Figuur 7C is een stroomschema van de horizon-modellering voor het decoderen in de onderhavige uitvinding.
Figuur 7D is een stroomschema van de horizon-modellering voor het decoderen in de onderhavige uitvinding met gebruikmaking van geredu-30 ceerd vlaggeheugen.
Figuur 8A is een stroomschema van een uitvoeringsvorm van de B-doorgang voor het coderen in de onderhavige uitvinding.
Figuur 8B is een stroomschema van een uitvoeringsvorm vein de B-doorgang voor het coderen in de onderhavige uitvinding met gebruikma-35 king van gereduceerd vlaggeheugen.
Figuur 9A is een stroomschema van een uitvoeringsvorm van de B-doorgang voor het decoderen in de onderhavige uitvinding.
Figuur 9B is een stroomschema van een uitvoeringsvorm van de B- 1001247 6 doorgang voor het decoderen in de onderhavige uitvinding met gebruikmaking van gereduceerd vlaggeheugen.
Figuur 10 is een uitvoeringsvorm van het voorwaartse minigolf-filter van de onderhavige uitvinding.
5 Figuur 11 is een blokschema van een uitvoeringsvorm van een ach terwaarts minigolf-filter van de onderhavige uitvinding.
Figuur 12 illustreert een beeld en coëfficiënten in een lijnbuffer voor een piramidale decompositie met vier niveaus.
Figuur 13 is een blokschema van een uitvoeringsvorm van minigolf-10 filtering met gebruikmaking van een filter-besturingseenheid.
Figuur 14 is een blokschema van een andere uitvoeringsvorm van minigolf-filtering met gebruikmaking van een filter-besturingseenheid.
Figuur 15 illustreert de toewijzing van geheugenbanken om horizontale en verticale toegangen te ondersteunen.
15 Figuur 16 illustreert het filterbedrijf voor een decompositie met twee niveaus.
Figuur 17 is een blokschema van een uitvoeringsvorm van het con-textmodel van de onderhavige uitvinding.
Figuur l8 is een blokschema van een uitvoeringsvorm van de 20 teken/grootte-eenheid van de onderhavige uitvinding.
Figuur 19 is een blokschema van een uitvoeringsvorm van de groot-te-geheugeneenheid van de onderhavige uitvinding.
Figuur 20 is een blokschema van een uitvoeringsvorm van de signi-ficantie-eenheid van de onderhavige uitvinding.
25 Figuur 21 is een blokschema van een uitvoeringsvorm van de boom- geheugen-eenheid van de onderhavige uitvinding.
Figuur 22 is een blokschema van een uitvoeringsvorm van de coëfficiënt-verschuiving van de onderhavige uitvinding.
Figuur 23 is een blokschema van een alternatieve uitvoeringsvorm 30 van de significantie-eenheid van de onderhavige uitvinding met gebruikmaking van een uitrichting met 1,5.
Figuur 24 illustreert de dynamische toewijzing van het gecodeerde datageheugen voor het bedrijf met één doorgang.
Figuren 25A en B zijn een stroomschema van een uitvoeringsvorm 35 van het codeerproces van de onderhavige uitvinding.
Figuren 26A en B zijn een stroomschema van het decoderen van een uitvoeringsvorm van het decodeerproces van de onderhavige uitvinding.
Figuren 27A en B zijn een stroomschema van een uitvoeringsvorm 1001247 7 van het proces voor het modelleren van elke coëfficiënt voor zowel de codeer- als decodeerprocessen van de onderhavige uitvinding.
Figuren 28A en B zijn een stroomschema van een alternatieve uitvoeringsvorm van het codeerproces van de onderhavige uitvinding.
5 Figuren 29A en B zijn een stroomschema van een alternatieve uit voeringsvorm van het decodeerproces van de onderhavige uitvinding.
Figuren 30A en B zijn een stroomschema van een alternatieve uitvoeringsvorm van het proces voor het modelleren van elke coëfficiënt in de codeer- en decodeerprocessen van de onderhavige uitvinding.
10 Figuur 31 is een uitvoeringsvorm van de vermenigvuldigers voor de frequentieband die wordt gebruikt voor de coëfficiënt-uitrichting in de onderhavige uitvinding.
GEDETAILLEERDE BESCHRIJVING VAN DE UITVINDING
15
Hieronder worden een werkwijze en apparaat voor compressie en decompressie beschreven. In de volgende gedetailleerde beschrijving van de onderhavige uitvinding zijn talrijke specifieke details uiteengezet, zoals typen codeerinrichtingen, bitgetallen, signaalnamen enzo-20 voorts, om een volledig begrip van de onderhavige uitvinding te verschaffen. Het zal de vakman echter duidelijk zijn dat de onderhavige uitvinding zonder deze specifieke details uitgevoerd kan worden. In andere gevallen zijn bekende structuren en inrichtingen getoond in de vorm van een blokschema, veeleer dan in detail, om te vermijden dat de 25 onderhavige uitvinding onduidelijk wordt.
Sommige gedeelten van de volgende gedetailleerde beschrijvingen zijn weergegeven in termen van algoritmen en symbolische weergaven van bewerkingen van databits binnen een computergeheugen. Deze algoritmische beschrijvingen en weergaven zijn de middelen die door de vak-30 mensen in de dataverwerkingstechniek worden gebruikt om de essentie van hun werk op de meest effectieve wijze aan andere vakmensen over te dragen. Een algoritme wordt hier, en in het algemeen, beschouwd als een consequente opeenvolging van stappen die tot een gewenst resultaat leiden. De stappen zijn die stappen die fysieke manipulaties van fy-35 sieke kwantiteiten vereisen. Gewoonlijk, maar niet noodzakelijkerwijs, hebben deze kwantiteiten de vorm van elektrische of magnetische signalen die kunnen worden opgeslagen, overgedragen, gecombineerd, vergeleken, en op andere wijze gemanipuleerd. Het is soms geschikt gebleken 1001247 8 om, in hoofdzaak om redenen van algemeen gebruik, naar deze signalen te verwijzen als bits, waarden, elementen, symbolen, karakters, termen, nummers of iets dergelijks.
Er moet echter in gedachten worden gehouden dat al deze en soort-5 gelijke termen bij de geschikte fysieke kwantiteiten moeten behoren en alleen geschikte labels zijn die aan deze kwantiteiten zijn toegewezen. Tenzij specifiek anders is aangegeven dan uit de volgende uiteenzettingen blijkt, zal het duidelijk zijn dat door de hele onderhavige uitvinding heen uiteenzettingen die gebruik maken van termen zoals 10 "verwerking” of "berekening" of "bepaling" of "aanduiding" of iets dergelijks naar de actie en processen van een computersysteem of soortgelijke elektronische berekeningsinrichting verwijzen, die data die zijn vertegenwoordigd als fysieke (elektronische) kwantiteiten binnen de registers en geheugens van het computersysteem manipuleren 15 en transformeren in andere data die op soortgelijke wijze zijn vertegenwoordigd als fysieke kwantiteiten binnen de geheugens of registers van het computersysteem of andere dergelijke informatie-opslag-, overdrachts- of aanduidinrichtingen.
De onderhavige uitvinding heeft tevens betrekking op een apparaat 20 voor het uitvoeren van de bewerkingen hierin. Dit apparaat kan speciaal voor de vereiste doelen zijn geconstrueerd, of het kan een "general purpose" computer omvatten die selectief wordt geactiveerd of gereconfigureerd door een computerprogramma dat in de computer is opgeslagen. De algoritmen en aanduidingen die hier zijn weergegeven 25 zijn niet inherent gerelateerd aan een specifieke computer of een ander apparaat. Diverse "general purpose" machines kunnen worden gebruikt met programma's in overeenstemming met hetgeen hierin is beschreven, of het kan geschikt blijken te zijn om meer gespecialiseerde apparaten te construeren voor het uitvoeren van de vereiste werkwij-30 zestappen. De vereiste structuur voor een verscheidenheid aan deze machines wordt duidelijk aan de hand van de onderstaande beschrijving. Verder is de onderhavige uitvinding niet beschreven met verwijzing naar een specifieke programmeertaal. Het zal duidelijk zijn dat een verscheidenheid aan programmeertalen gebruikt kan worden om de uitvin-35 ding zoals hier beschreven te implementeren.
Overzicht van de onderhavige uitvinding 1001247 9
De onderhavige uitvinding verschaft een compressie/decompressie-systeem dat een codeergedeelte en een decodeergedeelte heeft. Het codeergedeelte is verantwoordelijk voor het coderen van ingangsdata voor het tot stand brengen van gecomprimeerde data, terwijl het deco-5 deergedeelte verantwoordelijk is voor het decoderen van tevoren gecodeerde data voor het verschaffen van een gereconstrueerde versie van de oorspronkelijke ingangsdata. De ingangsdata kunnen een verscheidenheid aan datatypen omvatten, zoals beeld (stilstaand of video), audio enzovoorts. In een uitvoeringsvorm zijn de data digitale signaaldata; 10 analoge data die zijn gedigitaliseerd, tekstdataformaten, en andere formaten zijn echter mogelijk. De bron van de data kan een geheugen of kanaal voor het codeergedeelte en/of decodeergedeelte zijn.
In de onderhavige uitvinding kunnen elementen van het codeergedeelte en/of het decodeergedeelte in hardware of software zijn ge-15 ïmplementeerd, zoals die op een computersysteem worden gebruikt. De onderhavige uitvinding verschaft een verliesloos compressie/decompres-siesysteem. De onderhavige uitvinding kan tevens worden geconfigureerd voor het uitvoeren van een met verlies gepaard gaande compressie/-decompressie.
20 Figuur IA is een blokschema van een uitvoeringsvorm van het co deergedeelte van het systeem. Merk op dat het decodeergedeelte van het systeem in omgekeerde volgorde werkt, samen met de datastroom. Met verwijzing naar figuur IA worden ingangsbeelddata 101 ontvangen door het minigolf-transformatieblok 102. Het uitgangssignaal van het mini-25 golf-transformatieblok 102 is gekoppeld aan een bitsignificantie-inbeddingsblok 103· In reactie op het uitgangssignaal van het minigolf-transformatieblok 102 levert het bitsignificantie-inbeddingsblok 103 tenminste één bitstroom die door een entropie-codeerinrichting 104 wordt ontvangen. In reactie op het ingangssignaal van het bitsignifi-30 cantie-inbeddingsblok 103 brengt de entropie-codeerinrichting 104 een codestroom 107 tot stand.
In een uitvoeringsvorm omvat het bitsignificantie-inbeddingsblok 103 een tekengrootte-formatteringseenheid 109, een frequentie-geba-seerd contextmodel 105 en een gemeenschappelijk ruimte/frequentie-35 contextmodel 106, zoals in figuur 1B is getoond. In een uitvoeringsvorm omvat het gemeenschappelijk ruimte/frequentie-contextmodel 106 een horizon-contextmodel. In sommige uitvoeringsvormen omvat het fre-quentie-gebaseerde contextmodelblok 105 een nulboom-model. In een 1 0 0 1 2 4 7 10 andere uitvoeringsvorm omvat het frequentie-gebaseerde contextmodel 105 een significantieboommodel. De tekengrootte-eenheid 109. het frequentie-gebaseerde contextmodel 105 en het gemeenschappelijk ruim-** te/frequentie (JSF)- contextmodel 106 voeren in de onderhavige uitvin- 5 ding de bitsignificantie-inbedding uit. De ingang van de tekengrootte-eenheid 109 wordt gekoppeld met de uitgang van het minigolf-transfor-matiecoderingsblok 102. De uitgang van de tekengrootte-eenheid 109 is gekoppeld met een schakelaar 108. De schakelaar 108 is gekoppeld om het uitgangssignaal van de tekengrootte-eenheid 109 te leveren aan een 10 ingang van ofwel het frequentie-gebaseerde modelleringsblok 105 ofwel het gemeenschappelijke ruimte/frequentie-modelleringsblok 106. De uitgang van het frequentie-gebaseerde coderingsblok 105 en het hori-zon-volgorde-coderingsblok 106 zijn gekoppeld met de ingang van de entropie-codeerinrichting 104. De entropie-codeerinrichting 104 brengt 15 de uitgangscodestroom 107 tot stand.
Met terugverwijzing naar figuur IA worden in de onderhavige uitvinding de beelddata 101 ontvangen en transformatie-gecodeerd met gebruikmaking van reversibele minigolven in het minigolf-transforma-tieblok 102, zoals later hieronder wordt, gedefinieerd, voor het ver-20 schaffen van een serie coëfficiënten die een decompositie met multire-solutie van het beeld vertegenwoordigen. Deze coëfficiënten worden ontvangen door het bitsignificantie-inbeddingsblok 103·
Het bitsignificantie-inbeddingsblok 103 ordent de coëfficiënten en zet deze om in tekengrootteformaat en, gebaseerd op hun significan-25 tie (zoals later hieronder wordt beschreven), worden de geformatteerde coëfficiënten onderworpen aan een combinatie van verschillende ingebedde modelleringswerkwijzen. In de onderhavige uitvinding worden de geformatteerde coëfficiënten onderworpen aan een van twee ingebedde modelleringswerkwijzen (bijvoorbeeld frequentie-gebaseerde modellering 30 en JSF-modellering).
In een uitvoeringsvorm worden de geformatteerde coëfficiënten onderworpen aan ofwel frequentie-gebaseerde modellering ofwel gemeenschappelijke ruimtelijke/frequentie-modellering. Wanneer de ingangsdata beelddata omvatten met veelvoudige bitniveaus worden in de onderha-35 vige uitvinding een aantal bitniveaus gecodeerd met frequentie-gebaseerde modellering, terwijl de resterende bitniveaus worden gecodeerd met JSF-modellering. De beslissing welke werkwijze gebruikt moet worden op welke bitniveaus kan een gebruikersparameter zijn. In een uit- 1001247 11 voeringsvorm worden de bltniveaus net hoge orde van de coëfficiënten geordend en gecodeerd met de frequentie-gebaseerde modellering van de onderhavige uitvinding. Bij de frequentie-gebaseerde contextmodelwerk-wijze van de onderhavige uitvinding is de predictie van de significan-5 tie van de coëfficiëntbits gerelateerd aan de piramidale structuur van de minigolf. De lage-orde-coëfficiëntbitniveaus worden geordend en gecodeerd met het gemeenschappelijke ruimte/frequentie-contextmodel van de onderhavige uitvinding. De JSF-modellering, bijvoorbeeld hori-zon-modellering, biedt voordelen ten opzichte van de frequentie-geba-10 seerde codering voor bitniveaus die minder gecorreleerd zijn met betrekking tot de frequentiedomein-coëfficiëntverhoudingen.
De resultaten van de bitsignificantie-inbedding zijn beslissingen (of symbolen) die door de entropie-codeerinrichting gecodeerd moeten worden. In een uitvoeringsvorm worden alle beslissingen naar één enke-15 le codeerinrichting gezonden. In een andere uitvoeringsvorm worden beslissingen gelabeld door significantie, en worden beslissingen voor elk significantieniveau verwerkt door verschillende (fysieke of virtuele) veelvoudige codeerinrichtingen.
De bitstromen die voortkomen uit het frequentie-gebaseerde con-20 textmodelblok 105 en het JSF-contextmodelblok 106 worden gecodeerd in volgorde van de significantie met gebruikmaking van de entropie-codeerinrichting 104. In een uitvoeringsvorm omvat de entropie-codeerinrichting 104 een binaire entropie-codeerinrichting. In een uitvoe ringsvorm omvat de entropie-codeerinrichting 104 een Q-codeerinrich-25 ting, een B-codeerinrichting die is gedefinieerd in US-octrooi no.
5.272.478 of een codeerinrichting zoals is beschreven in de US-oc-trooiaanvrage serie no. 08/016.035. getiteld "Method and Apparatus for Parallel Decoding and Encoding of Data", ingediend op 10 februari 1993· Voor meer informatie over de Q-codeerinrichting, zie Pennebaker, 30 W.B., et al., "An Overview of the Basic Principles of the Q-coder
Adaptive Binary Arithmetic," IBM Journal of Research and Development, vol. 32, pagina 717'26, 1988. In een uitvoeringsvorm verschaft één enkele codeerinrichting één enkele uitgangscodestroom. In een andere uitvoeringsvorm verschaffen veelvoudige (fysieke of virtuele) codeer-35 inrichtingen veelvoudige (fysieke of virtuele) datastromen.
Minigolf-decompositie
De onderhavige uitvinding voert eerst een decompositie van een 1 0 0 1 2 4 7 12 beeld (in de vorm van beelddata) of een ander datasignaal uit met gebruikmaking van reversibele minigolven. In de onderhavige uitvinding omvat een reversibele minigolf-transformatie een implementatie van een exacte-reconstructie-systeem in gehele getallen rekenkunde, zodat een - v 5 signaal met geheeltallige coëfficiënten verliesloos kan worden teruggewonnen. Door het gebruik van reversibele minigolven kan de onderhavige uitvinding verliesloze compressie verschaffen met eindige-preci-sie-rekenkunde. De resultaten die tot stand zijn gebracht door het toepassen van de reversibele minigolf-transformatie op de beelddata 10 zijn een serie coëfficiënten. In een uitvoeringsvorm van de onderhavige uitvinding is de reversibele minigolf-tranformatie geïmplementeerd met gebruikmaking van een stel filters. In een uitvoeringsvorm zijn de filters een laagdoorlaatfilter met twee aftakkingen en een hoogdoor-laatfilter met zes aftakkingen. In een uitvoeringsvorm worden deze 15 filters geïmplementeerd met gebruikmaking van alleen optel- en aftrek-bewerkingen (plus onveranderlijke bitverschuiving).
Tevens genereert in de onderhavige uitvinding het hoogdoorlaat-filter zijn uitgangssignaal met gebruikmaking van de resultaten van het laagdoorlaatfilter. De resulterende hoogdoorlaatfiltercoëffi-20 ciënten zijn slechts een paar bits groter dan de pixelresolutie en de laagdoorlaatfiltercoëfficiënten zijn hetzelfde als de pixelresolutie. Omdat alleen de laagdoorlaatfiltercoëfficiënten herhaaldelijk in een piramidale decompositie worden gefilterd, is de resolutie niet verhoogd in multiniveau-decomposities.
25 Een minigolf-transformatiesysteem wordt gedefinieerd door een paar FIR-analysefilters h0(n), h^n) en een paar FIR-synthesefilters g0(n), gj(n). In de onderhavige uitvinding zijn h0 en g0 de laagdoor-laatfliters en hj en gj de hoogdoorlaatfliters. Een blokschema van het minigolfsysteem is getoond in figuur 2A. Met verwijzing naar figuur 2A 30 worden, voor een ingangssignaal x(n), de analysefilters h0 en hi toegepast en de uitgangssignalen worden gedecimeerd door 2 (kritisch onderbemonsterd) om de getransformeerde signalen y0(n) en yx(n) op te wekken, waarnaar hier wordt verwezen als laagdoorlaatgefilterde respectievelijk hoogdoorlaatgefilterde coëfficiënten. De analysefilters en 35 bun overeenkomstige decimatie-, of onderbemonsteringsblokken vormen het analysegedeelte van het minigolf-transformatiesysteem. De codeer/decodeerinricnting omvat alle verwerkingslogica en routines die worden uitgevoerd in het getransformeerde domein (bijvoorbeeld predic- 1001247 13 tie, kwantisering, codering enzovoorts). Het minigolf-systeem dat in figuur 2A is getoond omvat tevens een synthesegedeelte waarin de getransformeerde signalen omhoog worden bemonsterd door 2 (na elke term wordt bijvoorbeeld een nul ingevoegd) en dan door de synthesefilters 5 So(n) en gj(n) worden geleid. De laagdoorlaatgefilterde coëfficiënten y0(n) worden door het laagdoorlaat-synthesefilter g0 geleid en de hoog-do'orlaatgefilterde coëfficiënten yx(n) worden door het hoogdoorlaatfilter gj geleid. De uitgangssignalen van de filters g0(n) en g,(n) zijn gecombineerd voor het tot stand brengen van x(n).
10 Terwijl omlaag bemonsteren en omhoog bemonsteren in een aantal uitvoeringsvormen worden uitgevoerd, worden in andere uitvoeringsvormen filters zodanig gebruikt dat berekeningen die onnodig zijn als gevolg van omlaag bemonsteren en omhoog bemonsteren niet worden uitgevoerd .
15 Het minigolf-systeem kan worden beschreven in termen van de Z- transformatie, waarbij X(Z), X(Z) de ingangs- respectievelijk uitgangssignalen zijn, Y0(Z), Yj(Z) de laagdoorlaatgefilterde en hoogdoor-laatgefilterde getransformeerde signalen zijn, H0(Z), HX(Z) de laagdoorlaat- en de hoogdoorlaat-analysefilters en tenslotte G0(Z), 20 GX(Z) de laagdoorlaat- en de hoogdoorlaat-synthesefilters zijn. Als er geen wijziging of kwantisering in het transformatiedomein is, is het uitgangssignaal X(Z) in figuur 2 gegeven door 25 *<z> = i[H,(Z)G,(Z)+H,(Z)G,(Z)]X(Z) + i[H0(-Z)G0(Z)+H,(-Z)G,(Z)]X(-Z).
In de onderhavige uitvinding is de tweede term van XtZ), waarnaar 30 wordt verwezen als de "aliasing"-term, geannuleerd omdat de synthesefilters definieerd zijn als de kwadratuurspiegel van de analysefil-ters, dat wil zeggen fG0(Z) = H1(-Z) 35 {g^Z)—Hq(-Z) 1001247 14
In termen van de filtercoëfficiënten {«ofoM-ljnhjfa) ‘5 l8lW»-(-l)nh0(n)
Daarom is, voor een kwadratuurspiegel-fi1terpaar, na aftrekking, 10 het uitgangssignaal: X(z) = I[H,(Z)H,(-Z) -Η,(Ζ)Η,(-Ζ)]Χ(Ζ).
15
Derhalve is in het kwadratuurspiegelsysteem van de onderhavige uitvinding het uitgangssignaal gedefinieerd in termen van alleen de analysefilters. De minigolf-transformatie wordt recursief op de ge-20 transformeerde signalen toegepast doordat de uitgangssignalen die door de filters zijn gegenereerd direct of indirect als ingangssignalen in de filters worden gebruikt. In de beschreven uitvoeringsvorm wordt alleen de laagdoorlaatgefilterde getransformeerde component y0(n) recursief getransformeerd zodat het systeem piramidaal is. Een voorbeeld 25 van een dergelijk piramidaal systeem is getoond in figuur 4A.
De Z-tranformatie is een geschikte notatie voor het uitdrukken van het bedrijf van hardware en/of software op data. Vermenigvuldiging door Z'· modelleert een m klokcyclusvertraging in hardware, en een arraytoegang tot het m-de voorafgaande element in software* Dergelijke 30 hardware-implementaties omvatten geheugen, pijptrappen, verschuivers, registers enzovoorts.
In de onderhavige uitvinding zijn de signalen x(n) en x(n) identiek tot aan een multiplicatieve constante en een vertragingsterm, dat wil zeggen in termen van de Z-transformatie 35 X(Z) = cZ"mX(Z).
t 0 0 1 2 4 7 15
Dit wordt een exact reconstructiesysteem genoemd. Derhalve kan in een uitvoeringsvorm van de onderhavige uitvinding de minigolf-trans-formatie die aanvankelijk op de ingangsdata is toegepast exact worden gereconstrueerd.
- «- 5 Een uitvoeringsvorm van de onderhavige uitvinding met gebruikma king van de Hadamard-transformatie is een exact reconstructiesysteem, dat in genormaliseerde vorm de volgende weergave in het Z-domein heeft: 10 | Hot2> = ' Hj(Z) = -^(1-Z-l) 15
Na substitutie is het uitgangssignaal X(Z) cZ-^Z), 20 wat duidelijk een exacte reconstructie is. Zie voor meer informatie over de Hamadard-transformatie Anil K. Jain, Fundamentals of Image Processing, pagina 155*
Naar een reversibele versie van de Hamadard-transformatie wordt hier verwezen als de S-transformatie. Zie voor meer informatie over de 25 S-transformatie Said, A. en Pearlman, W. "Reversible Image Compression via Multiresolution Representation and Predictive Coding," Dept, of Electrical, Computer and Systems Engineering, Renssealaer Polytechnic Institute, Troy, NY 1993· Aangezien de Hadamard-transformatie een exacte reconstructietransformatie is, is de volgende ongenormaliseerde 30 versie (die door constante factoren van de Hadamard-transformatie verschilt) eveneens een exacte reconstructietransformatie: ih0(Z) = 1(1+Z-1) 35 (hl(Z) = 1-Z-l 1001247 16
Gegeven de bemonsteringen van het ingangssignaal als x0, xlt is de S-transformatie een reversibele implementatie van dit systeem als y0(0) - [(x(0)+x(l))/2j 5 |yi(°) - χ(0)-χ(1)
De notatie [.J betekent naar beneden afronden of afkappen en hiernaar wordt soms verwezen als de vloerfunctie. Op soorgelijke wijze 10 betekent de plafondfunctie f. "J naar boven afronden naar het dichtstbijzijnde gehele getal.
Het bewijs dat deze implementatie reversibel is volgt uit het feit dat de enige informatie die in de approximatie verloren gaat de minst significante bit van x(0)+x(l) is. Maar aangezien de minst sig-15 nificante bits van x(0)+x(l) en x(0)-x(l) identiek zijn, kan dit worden teruggewonnen uit het hoogdoorlaatfilter-uitgangssignaal y^O). Met andere woorden, 20 fx(0) = 7,,(0)+1^(0)+1)/2] x(l) = 70(0)^(0)-1)/2]
De S-transformatie is een niet-overlappende transformatie met 25 gebruikmaking van reversibele filters van minimale lengte. Filters met minimale lengte omvatten een paar filters, waarbij beide filters twee aftakkingen hebben. Transformaties met minimale lengte verschaffen geen goede energiecompactheid. Filters met minimale lengte implementeren een niet-overlapte transformatie omdat de lengte van. de filters 30 gelijk is aan het aantal filters. Overlapte transformaties gebruiken tenminste één filter dat een grotere lengte heeft dan het aantal filters. Overlapte transformaties die gebruik maken van langere (niet-minimale lengte hebbende) filters kunnen een betere energiecompactheid verschaffen. De onderhavige uitvinding verschaft reversibele filters 35 met niet-minimale lengte, wat een overlapte transformatie mogelijk maakt.
Een ander voorbeeld van een exact-reconstructie-systeem omvat de twee/zes (TS)-transformatie die de Z-domein-definitie heeft, 1001247 17 H0(Z) = -|(1+Z-1) Η- (Z) = -^(-Ι-Ζ^+δΖ-Ζ-δΖ^+Ζ-^+Ζ-5) 5 1 6V2
Na substitutie is het uitgangssignaal X(Z) = 2Z'3X(Z), 10 wat een exacte-reconstructie-transformatie is.
De rationele ongenormaliseerde versie van de TS-transformatie omvat: h0(Z) = 1(1+Z-1) 15 I h,(Z) = l(-l-Z-1+8Z-2-8Z-3+Z^+Z-5) lv 8
Als x(0), x(l),....x(5) zes bemonsteringen van het signaal zijn, dan zijn de eerste drie laagdoorlaatgefilterde coëfficiënten yo(0), yo(l). Υο(2) en de eerste hoogdoorlaatgefilterde coëfficiënt yi(0) 20 gegeven door:
'y.(O) = LM0)+x(i))/2j • y„(l) = L(x(2) + x(3))/2J y.(2) = L(X(4) + X(5))/2J
5 y,(0) = [(-(x(0)+x(1))) + 8(x(2)-x(3)) + (x(4) + >:(S))/8_|.
De rechtlijnige implementatie van de rationele ongenormaliseerde versie van de TS-transformatie is echter niet reversibel.'Het volgende 30 voorbeeld toont dat de implementatie lokaal niet-reversibel. is. Een langere sequentie kan worden geconstrueerd als een voorbeeld voor het algemene geval. Aangezien -(x(0)+x(l))*(x(4)-*-x(5)) * -y0(0)*y0(2) vanwege het afronden om y0(0) en y0(2) te berekenen, is deze transformatie niet reversibel met gebruikmaking van lokale informatie. Als bijvoor-35 beeld x(0)-l,x(l)»l,x(2)=3.x(3)*l,x(4)-l,x(5)-l. dan is 1001247 18 y0(o)=L(1+i)/2j=i y0(i)=L(3+I)/2j=2 yo(2)-L(l + l)/2j«l 5 y»(°) “ LH1 + x)+ 8(3 -1) + (1 +1)] / 8j = [(-2 +16 + 2) / 8j = 2 en als x(0)-l.x(i)-2.x(2)-4.x(3).ltX(i»)-1,x(5)-1, dan 10 y0(0)=[(l + 2)/2j = l y0(i) - [(4+1) / 2j=2 y0(2)= [(1 +-1)/ 2 J = 1 yi(0)= [[-(1 + 2) + 8(4 -1) + (1 + 1)]J / 8 = [(-3 + 24 + 2) / 8j = [23 / 8j = 2 15
Aangezien y0{0), y0(1), y0(2) en yj(0) voor twee verschillende stellen ingangssignalen x(0)...x(5) hetzelfde zijn, is de transformatie niet- reversibel, aangezien gegeven y0(0).....yi(0) niet uit deze lokale informatie kan worden bepaald welk van de twee stellen ingevoerd wer-20 den. (Merk op dat er bewezen kan worden dat de transformatie niet reversibel is met gebruikmaking van globale informatie van alle coëfficiënten) .
Nu wordt er een reversibele TS-transformatie bekeken, waarnaar hier wordt verwezen als een RTS-transformatie, die een verschillende 25 hoogdoorlaatfilteringsbewerking verschaft.
Als x(0), x(l), x(2), x(3), x(4), x(5) zes bemonsteringen van het signaal zijn, dan zijn de eerste drie laagdoorlaatgefilterde coëfficiënten yo(0), y0(l), y0(2) en de eerste hoogdoorlaatgefilterde coëfficiënt yi(0) gegeven door ' 30
y„<o) = L(x(0)+x(1))'2J
y,(D = l(x(2)+x(3))/2j . y„(2) = L(X(4) + X(5))/2J
35 1001247 5 19 y.(°) = L(-LOt(0) + x(1))/2j+4(x(2)-x(3)) + L(X(4)+x(5))/2J)/4j = L(-yo(0)+4(x(2)-x(3))+y0(2))/4j.
- «·.
Aangezien x(2) - x(3)=y,(o) - L”(y0(°) +y0(2)) / 4j 10 dan is x(2)-x{3) volledig bekend. Doordat y0(l)= [(x(2)+x(3))/2j en x(2)-x(3) en x(2)-x(3) hierboven zijn gedefinieerd, kunnen x(2) en x(3) worden teruggewonnen omdat de minst significante bits van x(0)+(l) en x(0)-x(l) identiek zijn.
Laat in het bijzonder: 15 d(0) = x(2) - x(3) = y, (0) - L(-y„(0)+y0(2) / 4)J x(2) = y,(1) + L(d(0) + l)/2j x(3) = y0(i)+r(d(o)-i)/2l 20
Een uitvoeringsvorm van het voorwaartse filter voor de RTS-trans-formatie is getoond in aanhangsel A dat is geïmplementeerd in de programmeertaal "C".
Merk op dat wiskundig de vergelijking: 25 1 _(_1 _ z-1 + 8Z-2 - 8Z-3 + Z-4 + Z"s) en de vergelijking: 30 1(1(-1 - Z-') + 4(Z-’ - Z-1) + i(Z- + Z-S)j hetzelfde zijn wanneer deze worden uitgevoerd met oneindige precisie-rekenkunde. De reden dat de tweede vergelijking een reversibel filter vertegenwoordigt is duidelijk wanneer deze fysiek wordt geïmplemen-35 teerd met geheeltallige rekenkunde. Bij wijze van voorbeeld gegeven hardware-implementaties van het laagdoorlaatfilter en het hoogdoor-laatfilter zijn beschreven in combinatie met de figuren 10 en 11.
Merk op dat zowel in de S-transformatie als in de RTS-transforma- 1001247 20 tie het laagdoorlaatfilter is geïmplementeerd zodat het gebied van het ingangssignaal x(n) hetzelfde is als het uitgangssignaal y0(n). Als bijvoorbeeld het signaal een 8-bit-beeld is is het uitgangssignaal van het laagdoorlaatfilter eveneens 8 bits. Dit is een belangrijke eigen-5 schap voor een piramidaal systeem waarbij het laagdoorlaatfilter successief wordt toegepast omdat in systemen uit de stand van de techniek het gebied van het uitgangssignaal groter is dan dat van het ingangssignaal, waardoor successieve toepassingen van het filter moeilijk worden gemaakt. Bovendien heeft het laagdoorlaatfilter slechts twee 10 aftakkingen, waardoor het een niet-overlappend filter is. Deze eigenschap is belangrijk voor de hardware-implementatie, zoals hieronder wordt beschreven.
In een uitvoeringsvorm, met verwijzing naar de RTS-trans formatie, zijn het laagdoorlaatfilter en het hoogdoorlaatfilter gedefinieerd 15 als: h0(Z) = 1(1+Z-1) .
hi<z> iH(1+z_1)+4(z"2-z"3)4(z"4+z'5)) 20 Derhalve kunnen de resultaten van het laagdoorlaatfilter tweemaal worden gebruikt (in de eerste en derde termen) in het hoogdoorlaatfilter. Daarom hoeven er slechts twee andere optellingen uitgevoerd te worden om de resultaten van het hoogdoorlaatfilter te bereiken.
Veel overlappende reversibele filters van niet-minimale lengte 25 kunnen in de onderhavige uitvinding worden gebruikt. Dergelijke voorwaartse en inverse vertegenwoordigingen van het transformatiesysteem voor het filteren met niet-overlapte reversibele filters met minimale lengte zijn getoond in figuur 2B. De volgende klasse van filters kan bijvoorbeeld in de onderhavige uitvinding worden gebruikt. Voor een 30 geheel getal L z z, d(0) = x(2(LL/2j +1)) - x(2(L V2J +1) +1) en ' 35 y„(0) = l(x(0) + x(l))/2j y.W"L(x(2) + x(3))/2j y,(L -1) = [M2L(L -1) / 2J) + x(2[(L -1) / 2J +1)) / 2j 1001247 21 en IVJJ L-l £a,yo(i) + bd(0)+ Xc,y0(j) - 5 yi(o)=—-k ........
De lengte* van het hoogdoorlaatfilter is 2L. Als L oneven is, kan het filter dichter bij een symmetrisch filter liggen. Als ait b, ct en k gehele getallen zijn en ksb, dan is het filter reversibel. Als ait b, 10 ct tweede machten zijn (of het negatief of complement van een tweede macht), dan kan de implementatie van het filter worden vereenvoudigd. Als k = b (onafhankelijk van de waarden van aj en Ci), dan is het gebied van het uitgangssignaal van het hoogdoorlaatfilter yx geminimaliseerd. Als er voor elke a* exact één Cj is waarbij aA = -Cj, dan zal 15 het hoogdoorlaatfilter geen reactie op een constant ingangssignaal hebben. Als a£ = -Cj wanneer j-(L-l)=i, dan kan het filter dichter bij een symmetrisch filter liggen.
Een andere nuttige eigenschap is 20 £[(a,)(2ir + (a,)(2i + ir]+(b)(2([l/2j +1))‘ i«0 -(b)(2(Ll/2j + l) + l)"+ g [c,(2,)” + c,(2, + l)"] = 0
HL/2J+2L J
25 Dit zorgt ervoor dat het hoogdoorlaatfilter geen reactie heeft op een lineair veranderend ingangssignaal wanneer m=l en een kwadratisch veranderend ingangssignaal wanneer m=2 enzovoorts, waarbij m de momentane voorwaarde is. Deze eigenschap is de voornaamste reden dat de RTS-transformatie een betere energiecompactheid heeft dan de S-trans-30 formatie.
Terwijl filters aan de minimumverplichtingen voor reversibiliteit moeten voldoen, kunnen, voor verschillende toepassingen, filters worden gebruikt die aan geen, sommige of alle andere eigenschappen voldoen. In een aantal uitvoeringsvormen is een van de volgende bij wijze 35 van voorbeeld gegeven hoogdoorlaatfilters gebruikt. De filters zijn vermeld in een notatie die alleen de integere coëfficiënten van de rationele versie van het filter vermeldt, om te vermijden dat de uitvinding onduidelijk wordt.
1001247 22 1 1-4-4 16-164 4-1-1 1 1-3-3 8-8 3 3-1-1 5 -1-1 0 0 16-160 0 1 1 -1-1 44-16-16 256-256 16 16-4-41 1 3 3-22-22 128-128 22 22-3-3 10
Naar het laatste filter wordt verwezen als het (twee/tien) TT-filter, en het heeft de eigenschap dat het geen reactie heeft op een kubisch toenemende functie. Merk op dat, aangezien 22=16+2x3 en 3=2+1, 15 dit filter kan worden geïmplementeerd met een totaal van zeven optellingen en aftrekkingen.
De strikte reversibiliteitseisen voor filters kunnen worden verminderd door het volgende op te merken. Hoogdoorlaatfilter-coëffi-ciënten worden in dezelfde volgorde gecodeerd en gedecodeerd. Pixel-20 waarden die overeenkomen met tevoren gedecodeerde hoogdoorlaatfilter-coëfficiënten zijn exact bekend, zodat ze gebruikt kunnen worden in de huidige hoogdoorlaatfiltering. Het volgende filter kan bijvoorbeeld worden gebruikt wanneer een rasterorde wordt gebruikt.
25 h.(z)=[1([-5(i+z'')J+[i(8(z'! +Z'S))J) #
Het gebruik van één enkel vast hoogdoorlaatfilter is niet ver-30 eist. Er kunnen adaptieve filters of veelvoudige filters worden gebruikt. De data die worden gebruikt voor het aanpassen of selecteren van veelvoudige filters moeten worden beperkt tot data die beschikbaar zijn in de decodeerinrichting voorafgaand aan een specifieke inverse f i1teringsbewerking.
35 Een manier om veelvoudige filters te gebruiken is het progressief verwerken van de hoogdoorlaatfiltercoëfficiënten. Alternerende hoog-doorlaatfilterbewerkingen (y^O), yt(2), y1(4),...) kunnen eerst worden verwerkt met een reversibel filter zoals het RTS-hoogdoorlaatfilter.
1001247 23
De resterende verwerking (y1(l), yi(3). yi(5).···) kunnen een niet-reversibel filter van maximaal zes aftakkingen gebruiken, omdat de exacte waarden van de ingangssignalen naar het overlappende gedeelte van het filter bekend zijn. Een van de volgende filters kan bijvoor- - 5 beeld worden gebruikt.
-13-3 1 -14-4 1 -3 8-8 3 10 1 -5 10 -10 5 -1 1 -4 8 -8 4 -1
In sommige uitvoeringsvormen kan het hoogdoorlaatfilter worden vervangen door een predictie/interpolatie-bewerking. Een predictor/-15 interpolator kan het verschil voorspellen tussen een paar ingangssignalen met gebruikmaking van willekeurige data die in de decodeerin-richting beschikbaar zijn voorafgaand aan een specifieke predictie/-interpolatie-bewerking. Het voorspelde verschil wordt afgetrokken van het daadwerkelijke verschil van de ingangssignalen en wordt uitge-20 voerd. In een uitvoeringsvorm worden bij predictiewerkwijzen volgens de stand van de techniek die in DPCM worden gebruikt, progressieve codering of ruimtelijke domeincodering gebruikt.
Met gebruikmaking van de laagdoorlaat- en hoogdoorlaatfilters van de onderhavige uitvinding wordt een multiresolutie-decompositie uitge-25 voerd. Het aantal compositieniveaus is variabel en kan elk aantal zijn; momenteel is het aantal decompositieniveaus echter gelijk aan twee tot vijf niveaus.
Als bijvoorbeeld de reversibele minigolf-transformatie recursief op een beeld wordt toegepast, dan werkt het eerste decompositieniveau 30 op het fijnste detail, of resolutie. Op een eerste decompositieniveau is het beeld ontleed in vier subbeelden (bijvoorbeeld subbanden). Elke subband vertegenwoordigt een band van ruimtelijke frequenties. De subbands van het eerste niveau zijn aangeduid als LL0, LH0, HL0 en HH0. Het proces van het ontleden van het oorspronkelijke beeld omvat het 35 onderbemonsteren door twee in zowel horizontale als verticale dimensies, zodat de subbanden van het eerste niveau LL0, LH0, HL0 en HH0 elk een vierde zoveel coëfficiënten hebben als het ingangssignaal pixels (of coëfficiënten) van het beeld heeft, zoals is getoond in figuur 3A.
1 0 0 1 24 7 24
De subband LL0 omvat gelijktijdig laagfrequente horizontale en laagfrequente verticale informatie. Kenmerkend is een groot gedeelte van de beeldenergie in deze subband geconcentreerd. De subband LH0 -* omvat laagfrequente horizontale en hoogfrequente verticale informatie 5 (bijvoorbeeld horizontale flankinformatie). De subband HL0 omvat hoogfrequente horizontale informatie en laagfrequente verticale informatie (bijvoorbeeld verticale flankinformatie). De subband HH0 omvat hoogfrequente horizontale informatie en hoogfrequente verticale informatie (bijvoorbeeld textuur of diagonale flankinformatie).
10 Elk van de navolgende tweede, derde en vierde lagere decomposi- tie-niveaus is tot stand gebracht door het ontleden van de laagfrequente LL-subband van het voorafgaande niveau. Deze subband LL0 van het eerste niveau is ontleed voor het tot stand brengen van de subbanden LL1, LHlt HLj en ΗΗΧ van het tweede, gemiddelde-detail-niveau. Op soor-15 tgelijke wijze wordt de subband LL^ ontleed om de ruwe-detail-subbanden LL2, LH2, HL2 en HH2 van het derde niveau tot stand te brengen. Ook wordt de subband LL2 ontleed om ruwere-detail-subbanden LL3, LH3, HL3 en HH3 van het derde niveau tot stand te brengen, zoals in figuur 3D is getoond. Als gevolg van het onderbemonsteren door twee is elke subband 20 van het tweede niveau een zestiende afmeting van het oorspronkelijke beeld. Elke bemonstering (bijvoorbeeld pel) op dit niveau vertegenwoordigt gemiddeld detail in het oorspronkelijke beeld op dezelfde plaats. Op soortgelijke wijze is elke subband van het derde niveau 1/64 de afmeting van het oorspronkelijke beeld. Elke pel op dit niveau 25 komt overeen met relatief ruw detail in het oorspronkelijke beeld op dezelfde plaats. Ook is elke subband van het vierde niveau 1/256 de afmeting van het oorspronkelijke beeld.
Aangezien de ontlede beelden als gevolg van onderbemonstering fysiek kleiner zijn dan het oorspronkelijke beeld, kan hetzelfde ge-30 heugen dat wordt gebruikt voor het opslaan van het oorspronkelijke beeld worden gebruikt voor het opslaan van alle ontlede subbanden. Met andere woorden, het oorspronkelijke beeld en de ontlede subbanden LL0 en LLj worden weggegooid en worden niet opgeslagen in een decompositie met drie niveaus.
35 Een ouder-kind-verhouding bestaat tussen een subbandcomponent die ruw detail vertegenwoordigt en een corresponderende subbandcomponent op het volgende fijnere-detail-niveau.
Hoewel er slechts vier subband-decompositieniveaus zijn getoond, 1001247 25 zouden aanvullende niveaus ontwikkeld kunnen worden overeenkomstig de eisen van een specifiek systeem. Ook kunnen met andere transformaties zoals DCT of lineair op afstand van elkaar liggende subbanden, verschillende ouder-kind-verhoudingen worden gedefinieerd.
- «· 5 Het proces van multiresolutie-decompositie kan worden uitgevoerd met gebruikmaking van een filteringssysteem, zoals dat is afgebeeld in figuur 4A. Een ingangssignaal dat een eendimensionaal signaal met de lengte L weergeeft wordt door de filtereenheden 401 en 402 laagdoor-laat- en hoogdoorlaatgefilterd voordat het door twee via-eenheden 403 10 en 405 wordt onderbemonsterd. Een onderbemonsterd uitgangssignaal van de eenheid 403 wordt door de eenheden 405 en 406 laagdoorlaat- en hoogdoorlaatgefilterd voordat het door twee via-eenheden 407 respectievelijk 408 wordt onderbemonsterd. De subbandcomponenten L en H verschijnen aan respectieve uitgangen van de eenheden 407 en 408. Op 15 soortgelijke wijze wordt het uitgangssignaal van de eenheid 405 door de eenheden 409 en 410 laagdoorlaat- en hoogdoorlaatgefilterd voordat het door de eenheden 411 respectievelijk 412 wordt onderbemonsterd. De subband-componenten L en H verschijnen aan de respectieve uitgangen van de eenheden 411 en 412. Zoals hierboven is beschreven zijn de 20 filters in een uitvoeringsvorm van de onderhavige uitvinding die in subband-decompositie worden gebruikt digitale kwadratuurspiegelfilters voor het splitsen van de horizontale en verticale frequentiebanden in laagfrequente en hoogfrequente banden.
Figuur 4B illustreert een tweedimensionale transformatie met twee 25 niveaus. Figuur 4C illustreert eveneens een tweedimensionale transformatie met twee niveaus die is geïmplementeerd met gebruikmaking van eendimensionale filters, zoals de filters die zijn getoond in de figuren 10 en 11. De eendimensionale filters zijn om de andere positie aangebracht, om te vermijden dat er berekeningen worden uitgevoerd die 30 onnodig zijn geworden door onderbemonstering. In een uitvoeringsvorm delen eendimensionale filters de berekening tussen laagdoorlaat- en hoogdoorlaatfilterberekening.
Daarom verschaft de onderhavige uitvinding een systeem voor de compressie en decompressie waarin overlapte, reversibele filters met 35 niet-minimale lengte worden gebruikt. Figuur 4D is een blokschema van een uitvoeringsvorm van een dergelijk systeem. Met verwijzing naar figuur 4D wordt eerst een hiërarchische decompositie uitgevoerd. De resultaten van de hiërarchische decompositie worden voor compressie 1 0 0 1 24 7 26 naar een compressor gezonden. De compressie die wordt uitgevoerd kan vectorkwantisering, scalaire kwantisering, nullooplengte-telling, Huffman-codering enzovoorts omvatten. Het uitgangssignaal van de compressor comprimeert data, die een gecomprimeerde versie van de oor-5 spronkelijke ingangsdata vertegenwoordigen. Een decompressor kan de data op een bepaald moment in de toekomst ontvangen en de data decom-primeren. De onderhavige uitvinding voert dan een inverse decompositie uit met gebruikmaking van overlapte, reversibele filters met niet-minimale lengte voor het tot stand brengen van een gereconstrueerde 10 versie van de oorspronkelijke data.
De reversibele minigolf-filters van de onderhavige uitvinding kunnen ook worden gebruikt in bij wijze van voorbeeld gegeven analyse-en verbeteringssystemen, zoals deze in figuur 4E zijn getoond. Met verwijzing naar figuur 4E wordt de hiërarchische decompositie uitge-15 voerd op ingangsdata met gebruikmaking van overlapte, reversibele minigolf-fliters van niet-minimale lengte. De analyse-eenheid ontvangt de coëfficiënten die door de filters zijn gegenereerd en classificeert hen in beslissingen, bijvoorbeeld veeleer dan de coëfficiënten volledig te coderen wordt alleen relevante informatie onttrokken. Zo kunnen 20 bijvoorbeeld in een document-archiveringssysteem blanco pagina's worden herkend met gebruikmaking van alleen de ruwste laagdoorlaatfilter-subband. Een ander voorbeeld zou zijn om alleen hoogdoorlaatfilter-informatie van een specifieke subband te gebruiken om onderscheid te maken tussen tekstbeeld en beelden van natuurlijke scenes. De hiërar-25 chische decompositie kan worden gebruikt voor het registreren van veelvoudige beelden, zodat een ruwe registratie eerst wordt uitgevoerd met ruwe subbanden. In een andere uitvoeringsvorm ondergaan de coëfficiënten verbetering of filtering gevolgd door inverse decompositie. Verscherping, flankverbeteringen, ruisbesturing enzovoorts kunnen 30 worden uitgevoerd met gebruikmaking van een hiërarchische decompositie. Derhalve verschaft de onderhavige uitvinding een minigolf-trans-formatie voor het gebruik in gemeenschappelijke tijd/ruimte- en fre-quentiedomein-analyse en filtering/verbeteringssystemen.
35 Ingebedde bitsignificantie-codering
In de onderhavige uitvinding worden de coëfficiënten die zijn gegenereerd als resultaat van de minigolf-decompositie entropie-geco-deerd. In de onderhavige uitvinding ondergaan de coëfficiënten eerst 1001247 27 een ingebedde codering waarin de coëfficiënten zijn geordend in een visueel significante volgorde of, meer in het algemeen, geordend met betrekking tot de een of andere foutmetriek (bijvoorbeeld vervormings-metriek). Fout- of vervormingsmetrieken omvatten piekfout, en gemid-5 delde kwadratische fout (MSE). Bovendien kan de ordening worden uitgevoerd om de voorkeur te geven aan ruimtelijke bitsignificantie-loka-tie, relevantie voor database-ondervraging en directioneel (verticaal, horizontaal, diagonaal enzovoorts). De onderhavige uitvinding maakt gebruik van veelvoudige ingebedde codeertechnieken, waarbij een ge-10 deelte van de coëfficiënten op één significantieniveau wordt gecodeerd met één codeertechniek, terwijl de resterende coëfficiënten met andere technieken worden gecodeerd. In de onderhavige uitvinding zijn fre-quentie-gebaseerde modellering en gemeenschappelijke ruimtelijke/fre-quentie-modellering twee verschillende ingebedde codeersystemen die 15 worden gebruikt voor het coderen van de coëfficiënten die zijn gegenereerd door de minigolf-transformatie van de onderhavige uitvinding. Frequentie-gebaseerde modellering behelst het voorspellen van een aantal coëfficiënten met een hogere frequentie dan wanneer een coëfficiënt met een lagere frequentie wordt gecodeerd. De gemeenschappelijke 20 ruimte/frequentie-modellering trekt voordeel uit zowel de bekende frequentiebanden als de aangrenzende pixels (of data). Naar een uitvoeringsvorm van de gemeenschappelijke ruimte/frequentie-modellering wordt hier verwezen als horizon-modellering.
De data worden eerst in tekengrootte-formaat geformatteerd, wat 25 wordt gevolgd door het sorteren van de data op basis van significantie. Nadat de data zijn gesorteerd met betrekking tot de gegeven sig-nificantiemetriek worden de data gecodeerd.
Zowel de frequentie-gebaseerde codering en de horizon-codering kunnen zijn gebaseerd op bitsignificantie-ordening, maar gebruiken 30 verschillende werkwijzen voor het coderen van de gebeurtenissen.
Als een digitaal signaal x(n) wordt aangenomen, waarbij elke x(n) is vertegenwoordigd met R precisiebits, dan codeert de ingebedde codering van de onderhavige uitvinding de meest significante bit (of bits) van elke x(n) van het signaal, dan de volgende significante bit (of 35 bits) enzovoorts. In het geval van een visueel gedefinieerde ordening kan bijvoorbeeld een beeld dat een betere kwaliteit in het midden dein langs de hoeken of langs de randen vereist (zoals sommige medische beelden) aan een zodanige codering worden onderworpen dat de bits van 1 0 0 1 247 28 lage orde van de centrale pixels gecodeerd kunnen worden voorafgaand aan de bits van hogere orde van de grenspixels.
Voor een ingebed systeem dat is gebaseerd op een bitsignifican--«· tie-vervormingsmaat, worden binaire waarden van de data geordend door 5 grootte. In het geval waarbij de waarden niet-negatieve gehele getallen zijn, zoals dit gebeurt met betrekking tot de intensiteit van pixels, is de volgorde die gebruikt kan worden de bitniveau-volgorde (bijvoorbeeld van het meest significante naar het minst significante bitniveau). In uitvoeringsvormen waar negatieve gehele tweecomplement-10 getallen ook zijn toegestaan, is de ingebedde orde van de tekenbit hetzelfde als de eerste niet-nulbit van de absolute waarde van het gehele getal. Daarom wordt de tekenbit niet beschouwd totdat een niet-nulbit is gecodeerd. Als een resultaat zijn de mogelijke waarden voor een gebeurtenis in het ingebedde bitsignificantie-systeem van de on-15 derhavige uitvinding ternair voordat de tekenbit is gecodeerd. De ternaire gebeurtenissen zijn "niet significant", "positief significant" en "negatief significant". Wanneer bijvoorbeeld de tekengrootte-notatie wordt gebruikt is het 16-bit-getal -7: 1000000000000111 20 Op bitniveau-basis zullen de eerste twaalf beslissingen "niet- significant" zijn. De eerste 1-bit vindt plaats op de dertiende beslissing. De dertiende beslissing zal "negatief significant" zijn. Nadat de tekenbit is gecodeerd, zijn de mogelijke gebeurtenissen gereduceerd tot binair, dat wil zeggen 0, 1. De veertiende en vijftiende 25 beslissingen zijn beide "1".
In een uitvoeringsvorm van de onderhavige uitvinding wordt er een lijst gebruikt om de coëfficiënten in de gaten te houden. In een uitvoeringsvorm differentieert een eenbitvlag, waarnaar hier wordt verwezen als de groepvlag, die bij elke coëfficiënt behoort, coëfficiënten 30 waarvan de tekenbit nog niet is gecodeerd van de coëfficiënten waarvan de tekenbit reeds is gecodeerd. In een andere uitvoeringsvorm kunnen twee of meer lijsten worden gebruikt in plaats van een vlagbit. In een andere uitvoeringsvorm wordt één enkele lijst gebruikt zonder een vlag.
35 In een andere uitvoeringsvorm worden geen lijsten gebruikt. Alle beslissingen voor een coëfficiënt zijn gegenereerd en gelabeld door significantie, voordat beslissingen voor de volgende coëfficiënt tot stand worden gebracht. Dit elimineert de noodzaak voor het opslaan van 1001247 29 alle coëfficiënten in lijsten.
Het codeer- en decodeerproces van de octrooi-uitvinding
De volgende stroomschema's, figuren 25~30. tonen uitvoeringsvor-5 men van de codeer- en decodeerprocessen van de octrooi-uitvinding.
Figuur 25 is een stroomschema dat de codeer trans formatie en het modelleringsproces van de onderhavige uitvinding illustreert. Met verwijzing naar figuur 25 begint de codeertransformatie en het modelleringsproces door het verwerven van ingangsdata (verwerkingsblok 10 25OI). Na het verwerven van ingangsdata past de onderhavige uitvinding een reversibel minigolf-filter toe (verwerkingsblok 2502).
Vervolgens bepaalt een test of een ander decompositie-niveau gewenst is (verwerkingsblok 2503). Als een ander decompositie-niveau gewenst is, gaat het verwerken verder met verwerking 2504, waarbij het 15 reversibele filter is toegepast op de LL-coëfficiënten die resulteerden uit de direct voorafgaande decompositie, en de verwerking keert terug naar de verwerking 2503· Op deze wijze maakt de onderhavige uitvinding het mogelijk dat elk willekeurig aantal decompositie-ni-veaus kan worden uitgevoerd.
20 Als een andere decompositieniveau niet is gewenst, gaat de ver werking verder met verwerkingsblok 2506, waarbij de groepvlag voor elke coëfficiënt wordt geïnitialiseerd op de A-groep. Na het initiali-seren van de groepvlag wordt het bitniveau voor de A-doorgang, SA, op het meest significante bitniveau (max) ingesteld (verwerkingsblok 25 2507). Vervolgens wordt het bitniveau voor de B-doorgang, SB, op het eerstvolgend significante bitniveau (max-1) ingesteld (verwerkingsblok 2508).
Dan bepaalt een test of het bitniveau voor de A-doorgang, SA, met een frequentie-gebaseerd model moet worden gecodeerd (verwerkingsblok 30 2509). Als het bitniveau SA met het frequentie-gebaseerde model moet worden gecodeerd, gaat de verwerking verder met verwerkingsblok 2510, waar elke coëfficiënt wordt gemodelleerd met het frequentie-gebaseerde model en de entropiecode. Als aan de andere kant het bitniveau SA niet met het frequentie-gebaseerde model moet worden gecodeerd, dan gaat de 35 verwerking verder bij verwerkingsblok 2511, waar elke coëfficiënt wordt gemodelleerd met een gemeenschappelijke-ruimte/frequentie-model en entropiecode.
In beide gevallen gaat de verwerking daarna verder bij verwer- 1001247 30 kingsblok 2512, waar een test bepaalt of het bitniveau SA groter is dan of gelijk is aan nul, waarbij wordt aangegeven of het het laatste bitniveau is. Als het bitniveau SA groter dan of gelijk aan nul is, springt de verwerking in een lus terug naar het verwerkingsblok 2509.
- ^ 5 Als aan de andere kant het bitniveau SA niet groter dan of gelijk aan nul is, gaat de verwerking verder met verwerkingsblok 2513· waar een test bepaalt of het bitniveau SB groter dan of gelijk aan nul is, zodat het proces bepaalt of het bitniveau het laatste bitniveau is dat een B-doorgang moet doorlopen. Als het bitniveau SB groter dan of gelijk 10 aan nul is, gaat de verwerking verder met verwerkingsblok 2509· Als echter het bitniveau SB niet groter dan of gelijk aan nul is, gaat de verwerking verder met verwerkingsblok 2514, waar de gecodeerde data ofwel worden overgedragen naar een kanaal ofwel worden opgeslagen in het geheugen. Na het opslaan of overdragen van de gecodeerde data 15 eindigt de codeertransformatie en het modelleringsproces van de onderhavige uitvinding.
Figuur 26 illustreert een decodeertransformatie en modelleringsproces van de onderhavige uitvinding. Met verwijzing naar figuur 26 begint de decodeertransformatie en het modelleringsproces van de on-20 derhavige uitvinding door het opvragen van gecodeerde data (verwerkingsblok 2601). De gecodeerde data kan worden ontvangen van een kanaal of geheugen of een ander overdrachtssysteem. Na het opvragen van de gecodeerde data wordt een groepvlag voor elke coëfficiënt geïnitia-liseerd op de A-groep (verwerkingsblok 2602). Volgend op deze initia-25 lisatie wordt het bitniveau voor de A-doorgang, SA, ingesteld op het meest significante bitniveau (max) (verwerkingsblok 2603) en het bitniveau voor de B-doorgang, SB, wordt ingesteld op het volgende meest significante bitniveau (max -1) (verwerkingsblok 2604). Dan wordt de waarde van elke coëfficiënt ingesteld op een beginwaarde van nul (ver-30 werkingsblok 2605)·
Na het initialiseren van de waarde van elke coëfficiënt op nul bepaalt een test of het bitniveau SA wel of niet moet worden gedecodeerd met een frequentie-gebaseerd model (verwerking 2606). Als het bitniveau SA moet worden gedecodeerd met een frequentie-gebaseerd model 35 gaat de verwerking verder naar verwerkingsblok 2607, waar elke coëfficiënt wordt gemodelleerd met een frequentie-gebaseerd model en entro-pie-decodering. Als het bitniveau SA niet moet worden gedecodeerd met een frequentie-gebaseerd model, dan gaat de verwerking verder naar 1001247 31 verwerking 2608, waar elke coëfficiënt wordt gemodelleerd met een gemeenschappelijk ruimte/frequentie-model en entropie-decodering.
Nadat elke coëfficiënt is gemodelleerd gaat de verwerking verder met verwerkingsblok 2609, waarbij het bitniveau SA bepaalt of dit het 5 laatste bitniveau is door te testen of dit groter dan of gelijk aan nul is. Als het bitniveau SA groter dan of gelijk aan nul is, gaat de verwerking verder met verwerkingsblok 2606. Als aan de andere kant het bitniveau SA niet groter dan of gelijk aan nul is, dan bepaalt een test of het bitniveau SB van de B-doorgang groter dan of gelijk aan nul is 10 (verwerkingsblok 2610), waarbij wordt aangegeven dat het het laatste bitniveau voor een B-doorgang is. Als dit het geval is gaat de verwerking verder met verwerkingsblok 2606 voor het verdere decoderen. Als aan de andere kant het bitniveau voor de B-doorgang, SB, niet groter dan of gelijk aan nul is, wordt een invers reversibel filter toegepast 15 op de coëfficiënten van het ruwste decompositie-niveau (verwerkingsblok 2611). Een test bepaalt dan of alle niveaus invers zijn gefilterd (verwerkingsblok 2612). Als dit niet het geval is wordt het inverse reversibele filter opnieuw toegepast op de coëfficiënten op het ruwste resterende compositieniveau (verwerkingsblok 2613). Daarna gaat de 20 verwerking terug naar de verwerking 2612 om nogmaals te testen of alle niveaus invers zijn gefilterd.
Wanneer alle niveaus invers zijn gefilterd gaat de verwerking verder met verwerkingsblok 2612, waarbij een opslag of overdracht van gereconstrueerde data plaatsvindt.
25 Figuur 27 illustreert een uitvoeringsvorm van het proces voor het modelleren van elke coëfficiënt. Het afgeheelde proces vertegenwoordigt het modelleringsproces voor ofwel de frequentie-gebaseerde ofwel JSF-modellering en codering of decodering. Dat wil zeggen, elk van de vier blokken (2507, 2508, 2607, 2608) kan worden geïmplementeerd met 30 het model leringsproces van figuur 27· Met verwijzing naar figuur 27 begint een eerste proces door het eerst testen of het modelleren moet worden uitgevoerd in één doorgang (verwerkingsblok 2701). Als de modellering niet moet worden uitgevoerd in één doorgang, dan bepaalt een test of het bitniveau SA groter is dan het bitniveau SB (verwerkings-35 blok 2702). Als dit niet het geval is, dan gaat het proces naar verwerkingsblok 2703. waar een vlag (do_A_flag) wordt opgeschoond om aan te geven dat een A-doorgang niet moet worden uitgevoerd. Als het bitniveau SA groter is dan het bitniveau SB, dan gaat de verwerking verder 1001247 32 met verwerkingsblok 2704, waarbij de vlag (do_A_flag) wordt ingesteld om aan te geven dat een A-doorgang moet worden uitgevoerd.
Na een van de verwerkingsblokken 2703 of 2704 gaat de verwerking verder met verwerkingsblok 2705. waarbij een test bepaalt of het bit- * 5 niveau SB gelijk aan het bitniveau SA is. Als de bitniveaus niet gelijk zijn, schoont de onderhavige uitvinding een vlag (do_B_flag) op om te verhinderen dat een B-doorgang optreedt (verwerkingsblok 2705), en daarna gaat de verwerking verder met verwerkingsblok 2707· Als het bitniveau SB gelijk aan het bitniveau SA is, dan wordt de do_B_flag 10 ingesteld om aan te geven dat een B-doorgang moet worden uitgevoerd (verwerkingsblok 2706), en daarna gaat de verwerking ook verder met verwerkingsblok 2707.
Bij verwerkingsblok 2^0^ bepaalt een test of de A-doorgang-vlag is ingesteld en of de nulboom-modellering moet worden uitgevoerd. Als 15 de vlag aangeeft dat een A-doorgang moet optreden en de nulboom-model-lering moet worden uitgevoerd, wordt een "bepaald/onbepaald"-vlag geïnitialiseerd naar de "onbepaalde" toestand voor elke coëfficiënt (verwerkingsblok 2708), en de verwerking gaat verder met verwerkingsblok 2709· Als aan de andere kant ofwel de A-doorgang-aanduidingsvlag 20 of de nulboommodellerings-aanduiding niet zijn ingesteld, gaat de verwerking direct verder naar verwerkingsblok 2709. Bij verwerkingsblok 2709 wordt de eerste coëfficiënt ingesteld op de variabele C.
Wanneer de eerste coëfficiënt is toegewezen aan de variabele C bepaalt een test of de B-doorgang-aanduidingsvlag is ingesteld (ver-25 werkingsblok 2719)· Als de B-doorgang-aanduidingsvlag (do_B_flag) is ingesteld, voert de onderhavige uitvinding een B-doorgang op coëfficiënt C uit (verwerkingsblok 2710), en de verwerking gaat verder met verwerkingsblok 2711. Als aan de andere kant de B-doorgang-vlag niet is ingesteld, dan wordt er geen B-doorgang op C uitgevoerd, en de 30 verwerking gaat direct door naar het verwerkingsblok 2711.
Vervolgens bepaalt een test of de A-doorgang-aanduidingsvlag (do_A_flag) is ingesteld (verwerkingsblok 2711). Als de A-doorgang-aanduidingsvlag is ingesteld, dan wordt een A-doorgang uitgevoerd op coëfficiënt C (verwerkingsblok 2717). Daarna gaat de verwerking verder 35 met verwerkingsblok 2713· Als de A-doorgang-aanduidingsvlag niet is ingesteld, gaat de verwerking verder met verwerkingsblok 2713 zonder een A-doorgang op coëfficiënt C uit te voeren.
Bij verwerkingsblok 2713 bepaalt een test of coëfficiënt C de 1001247 33 laatste coëfficiënt is. Als de coëfficiënt C niet de laatste coëfficiënt is, dan gaat de verwerking verder met verwerkingsblok ZJlH, waar de volgende coëfficiënt wordt toegewezen aan de variabele C, en de verwerking gaat verder met verwerkingsblok 2719· Als echter de coëffi- • % 5 ciënt C de laatste coëfficiënt is, gaat de verwerking verder met verwerkingsblok 2715, waar een test bepaalt of de B-doorgang-vlag (do_B_flag) is -ingesteld. Als de B-doorgang-vlag is ingesteld, wordt het bitniveau SB gelijk aan het bitniveau SB-1 ingesteld (verwerkingsblok 2716), en de verwerking gaat verder met verwerkingsblok 2717· Als 10 de B-doorgang-aanduidingsvlag niet is ingesteld gaat de verwerking verder met verwerkingsblok 2717· Bij verwerkingsblok 2717 bepaalt een test of de A-doorgang-vlag is ingesteld. Als deze is ingesteld wordt het bitniveau SA gelijk aan het bitniveau SA-1 ingesteld (verwerkingsblok 2718) en de verwerking eindigt. Ook eindigt, als de A-doorgang-15 vlag niet is ingesteld, de verwerking onmiddellijk.
In sommige uitvoeringsvormen kan zonder een vlagbit te gebruiken worden bepaald of een coëfficiënt op een specifiek bitniveau zich in de A-groep of in de B-groep bevindt. Dit bespaart een geheugenbit per coëfficiënt, wat significant kan zijn voor grote beelden. In plaats 20 daarvan wordt een masker vergeleken met gebruikmaking van EN-logica op een coëfficiënt. Als het resultaat van de EN nul is, bevindt de bit zich in de A-groep; anders bevindt deze zich in de B-groep. Een voorbeeld van deze maskers is getoond in tabel 7 voor 8 bitniveaus. Merk op dat deze maskers het tweecomplement van 2(bltniveau*1> (zonder de te-25 kenbit) zijn.
1001247 34
Tabel 7 - Maskers 5 - *r ^^
Bitniveau Masker (binair) 10 7 00000000 6 10000000 5 11000000 15 4 11100000 3 11110000 20 2 11111000 1 11111100 0 11111110 25 --
Aangezien onafhankelijke maskers kunnen worden toegewezen aan de A-doorgang respectievelijk B-doorgang (hierna MA en MB genoemd), kunnen 30 zoveel A-doorgangen als gewenst worden uitgevoerd vóór de overeenkomstige B-doorgangen. In een uitvoeringsvorm met 17 bitniveaus worden 3 A-doorgangen uitgevoerd, dan worden 14 gelijktijdige A-doorgangen en B-doorgangen uitgevoerd en tenslotte worden 2 B-doorgangen uitgevoerd. Aangezien A-doorgang-beslissingen kenmerkend efficiënter gecodeerd 35 kunnen worden dan B-doorgang-beslissingen, kan het uitvoeren van veelvoudige A-doorgangen aanvankelijk de kwaliteit van met verlies gepaard gaande compressie verbeteren.
Figuur 28 illustreert een uitvoeringsvorm van een codeerinrich-ting van de onderhavige uitvinding die gebruik maakt van een geredu-40 ceerd vlaggeheugen (zoals later in de gedetailleerde beschrijving wordt beschreven). Met verwijzing naar figuur 28 begint het transformatie- en modelleringsproces van de codeerinrichting door het verwerven van ingangsdata (verwerkingsblok 2801). Na het verwerven van ingangsdata past de onderhavige uitvinding een reversibel minigolf-45 filter toe (verwerkingsblok 2802).
Vervolgens bepaalt een test of een ander decompositieniveau gewenst is (verwerkingsblok 2803)· Als een ander decompositieniveau 1001247 35 gewenst is, gaat de verwerking verder met verwerking 2804, waar het reversibele filter wordt toegepast op de LL-coëfficiënten die resulteerden uit de direct voorafgaande decompressie, en de verwerking -* keert terug naar de verwerking 2803· Op deze wijze maakt de onderhavi-5 ge uitvinding het mogelijk dat een willekeurig aantal decompositieni-veaus kan worden uitgevoerd.
Als een ander decompositieniveau niet gewenst is, gaat de verwerking verder met verwerkingsblok 2805, waar het bitniveau voor de A-doorgang, SA, wordt ingesteld op het meest significante bitniveau 10 (max). Vervolgens wordt het bitniveau voor de B-doorgang, SB, ingesteld op het volgende significante bitniveau (max-1) (verwerkingsblok 2806).
Daarna wordt het masker MA ingesteld op -2(SA+1) (verwerkingsblok 2807) en het masker MB wordt ingesteld op -2(SB+1) (verwerkingsblok 28Ο8). Vervolgens bepaalt een test of het bitniveau voor de A-door-15 gang, SA, moet worden gecodeerd met een frequentie-gebaseerd model (verwerkingsblok 2808). Als het bitniveau SA moet worden gecodeerd met het frequentie-gebaseerde model, dan gaat de verwerking verder met verwerkingsblok 2809, waar een bit van elke coëfficiënt wordt gemodelleerd met het frequentie-gebaseerde model en de entropie-code. Als aan 20 de andere kant het bitniveau SA niet moet worden gecodeerd met het frequentie-gebaseerde model, dan gaat de verwerking verder met verwerkingsblok 28IO, waarbij een bit vein elke coëfficiënt is gemodelleerd met een gemeenschappelijk ruimte/frequentie-model en entropie-code.
In beide gevallen gaat de verwerking daarna verder met verwer-25 kingsblok 2811, waar een test bepaalt of het bitniveau SA groter dan of gelijk aan nul is, waarbij wordt aangeduid of het het laatste bitniveau is. Als het bitniveau SA groter dan of gelijk aan nul is, dan springt de verwerking in een lus terug naar verwerkingsblok 2808. Als aan de andere kant het bitniveau SA niet groter dan of gelijk aan nul 30 is, gaat de verwerking door met verwerkingsblok 2812, waar een test bepaalt of het bitniveau SB groter dan of gelijk aan nul is, zodat het proces bepaalt of het bitniveau het laatste bitniveau is dat een B-doorgang moet ondergaan. Als het bitniveau SB groter dan of gelijk aan nul is, gaat de verwerking verder met verwerkingsblok 2808. Als echter 35 het bitniveau SB niet groter dan of gelijk aan nul is, gaat de verwerking verder met verwerkingsblok 2813, waar gecodeerde data ofwel naar een kanaal wordt overgedragen ofwel in het geheugen wordt opgeslagen. Na de opslag of overdracht van de gecodeerde data eindigt het co- 1 0 0 1 247 36 deertransformatie- en modelleringsproces van de onderhavige uitvinding.
Figuur 29 illustreert een alternatieve uitvoeringsvorm van het ... decodeertransformatie- en modelleringsproces van de onderhavige uit-5 vinding wanneer een gereduceerd vlaggeheugen wordt gebruikt. Met verwijzing naar figuur 29 begint het decodeertransformatie- en modelle-ringsproces van de onderhavige uitvinding door het opvragen van gecodeerde data (verwerkingsblok 2901). De gecodeerde data kunnen worden ontvangen van een kanaal of geheugen of een ander overdrachtssysteem. 10 Wanneer de gecodeerde data zijn ontvangen wordt het bitniveau voor de A-doorgang, SA, ingesteld op het meest significante bitniveau (max) (verwerkingsblok 2903) en het bitniveau voor de B-doorgang, SB, wordt ingesteld op het volgende meest significante bitniveau (max -1) (verwerkingsblok 2904). Na het initialiseren van de waarde van elke co-15 ëfficiënt op nul, wordt de waarde van elke coëfficiënt ingesteld op een beginwaarde van nul (verwerkingsblok 2905)· Dan wordt het masker MB ingesteld op -2 (SB+1) (verwerkingsblok 2902) en het masker MA wordt ingesteld op -2(SA+1) (verwerkingsblok 2915)·
Dan bepaalt een test of het bitniveau SA wel of niet moet worden 20 gedecodeerd met een frequentie-gebaseerd model (verwerking 2906). Als het bitniveau SA moet worden gedecodeerd met een frequentie-gebaseerd model, dan gaat de verwerking verder met verwerkingsblok 2907. waar één bit van elke coëfficiënt wordt gemodelleerd met een frequentie-gebaseerd model en entropie-decodering. Als het bitniveau SA niet moet 25 worden gedecodeerd met een frequentie-gebaseerd model, dan gaat de verwerking verder met verwerking 2908, waar één bit van elke coëfficiënt wordt gemodelleerd met een gemeenschappelijk ruimte/frequentie-model en entropie-decodering.
Nadat elke coëfficiënt is gemodelleerd gaat de verwerking verder 30 met verwerkingsblok 2909, waar het bitniveau SA bepaalt of het het laatste bitniveau is door te testen of het groter dan of gelijk aan nul is. Als het bitniveau SA groter dan of gelijk aan nul is, gaat de verwerking verder met verwerkingsblok 2906. Als aan de andere kant het bitniveau SA niet groter dan of gelijk aan nul is, bepaalt een test of 35 het bitniveau SB van de B-doorgang groter dan of gelijk aan nul is (verwerkingsblok 2910), waarbij wordt aangeduid dat het het laatste bitniveau voor een B-doorgang is. Als dit het geval is gaat de verwerking verder met verwerkingsblok 2902 voor verdere decodering. Als aan 1001247 37 de andere kant het bitniveau voor de B-doorgang, SB, niet groter dan of gelijk aan nul is, wordt een invers reversibel filter toegepast op de coëfficiënten van het ruwste decompositie-niveau (verwerkingsblok ... 2911). Een test bepaalt dan of alle niveaus invers zijn gefilterd 5 (verwerkingsblok 2912). Als dit niet het geval is, wordt het inverse reversibele filter opnieuw toegepast op de coëfficiënten van het ruwste resterende compositieniveau (verwerkingsblok 2913)· Daarna gaat de verwerking terug naar verwerking 2912, waar een test opnieuw vaststelt of alle niveaus invers zijn gefilterd.
10 Wanneer alle niveaus invers zijn gefilterd, gaat de verwerking verder met verwerkingsblok 2912, waar een opslag of overdracht van gereconstrueerde data plaatsvindt.
Figuur 30 illustreert een uitvoeringsvorm van het proces voor het modelleren van elke coëfficiënt. Merk op dat net als figuur 27 het 15 proces van figuur 30 gebruikt kan worden voor het implementeren van de modelleringsstappen in de figuren 28 en 29· Met verwijzing naar figuur 30 begint een eerste proces door het eerst testen of een A-doorgang gewenst is en of SA groter dan of gelijk aan nul is (verwerkingsblok 3001). Als dit het geval is, dan wordt de vlag (do_A_flag) die aan-20 duidt dat een A-doorgang moet worden uitgevoerd ingesteld (verwerkingsblok 3004). en de verwerking gaat verder met verwerkingsblok 3002. Anders wordt de do_A_flag opgeschoond (verwerkingsblok 3003).
Als het bitniveau SA groter is dan het bitniveau SB, dan gaat de verwerking verder met verwerkingsblok 3004, waar een vlag wordt inge-25 steld om aan te geven dat een A-doorgang moet plaatsvinden. Als het bitniveau SA niet groter dan het bitniveau SB is, dan gaat de verwerking verder met verwerkingsblok 3003, waar de vlag die aanduidt dat een A-doorgang zou moeten plaatsvinden wordt opgeschoond.
Na een van de verwerkingsblokken 3003 of 3004 gaat de verwerking 30 verder met verwerkingsblok 3002, waar een test bepaalt of het bitniveau SB groter dan of gelijk aan het bitniveau SA is en of een B-doorgang gewenst is. Als de bitniveaus niet gelijk zijn, schoont de onderhavige uitvinding een vlag (do_B_flag) op om te verhinderen dat een B-doorgang optreedt (verwerkingsblok 3005). en de verwerking gaat daarna 35 verder met verwerkingsblok 3007- Als het bitniveau SB gelijk aan het bitniveau SA is, dan wordt de do_B_flag-vlag ingesteld om aan te duiden dat een B-doorgang moet worden uitgevoerd (verwerkingsblok 3006), en de verwerking gaat ook daarna verder met verwerkingsblok 3007.
1 0 0 1 2 4 7 38
Bij het verwerkingsblok 3007 bepaalt een test of de A-doorgang-vlag is ingesteld en de nulboom-modellering moet worden uitgevoerd. Als de vlag aanduidt dat een A-doorgang moet plaatsvinden en nulboom-modellering moet worden uitgevoerd, dan wordt een ’’bepaald/onbepaald"-5 vlag geïnitialiseerd op de "onbepaalde” toestand voor elke coëfficiënt die kinderen heeft (verwerkingsblok 3008), en de verwerking gaat verder met verwerkingsblok 3009. Als aan de andere kant ofwel de A-door-gang-aanduidingsvlag ofwel de nulboom-modelleringsaanduiding niet zijn ingesteld, gaat de verwerking direct verder met verwerkingsblok 3009. 10 Bij verwerkingsblok 3009 is de eerste coëfficiënt ingesteld op de variabele C.
Wanneer de eerste coëfficiënt is toegewezen aan de variabele C, bepaalt een test of de B-doorgang-aanduidingsvlag is ingesteld (verwerkingsblok 3019) · Als de B-doorgang-aanduidingsvlag (do_B_flag) is 15 ingesteld, voert de onderhavige uitvinding een B-doorgang op coëfficiënt C uit (verwerkingsblok 3010), en de verwerking gaat verder met verwerkingsblok 3OH. Als aan de andere kant de B-doorgang-vlag niet is ingesteld, dan wordt er geen B-doorgang uitgevoerd op C, en de verwerking gaat direct door naar verwerkingsblok 3011.
20 De test bepaalt dan of de A-doorgang-aanduidingsvlag is ingesteld (verwerkingsblok 3011). Als de A-doorgang-aanduidingsvlag is ingesteld, dan wordt een A-doorgang uitgevoerd op coëfficiënt C (verwerkingsblok 3017). Daarna gaat de verwerking verder met verwerkingsblok 3OI3. Als de A-doorgang-aanduidingsvlag is ingesteld gaat de verwer-25 king verder met verwerkingsblok 3013 zonder een A-doorgang op coëfficiënt C uit te voeren.
Bij verwerkingsblok 3013 bepaalt een test of de coëfficiënt C de laatste coëfficiënt is. Als de coëfficiënt C niet de laatste coëfficiënt is, gaat de verwerking verder met verwerkingsblok 3014, waar de 30 volgende coëfficiënt wordt toegewezen aan de variabele C en de verwerking gaat verder met verwerkingsblok 3019. Als echter de coëfficiënt C de laatste coëfficiënt is, dan gaat de verwerking verder met verwerkingsblok 3OI5, waar een test bepaalt of de B-doorgang-vlag (do_B_flag) is ingesteld. Als de B-doorgang-vlag is ingesteld, wordt 35 het bitniveau SB gelijk aan het bitniveau SB-1 ingesteld (verwerkingsblok 3OI6), en de verwerking gaat verder met verwerkingsblok 3017. Als de B-doorgang-aanduidingsvlag niet is ingesteld, dan gaat de verwerking verder met verwerkingsblok 3017· Bij verwerkingsblok 3017 bepaalt 1001247 39 een test of de A-doorgang-vlag is ingesteld. Als deze is ingesteld wordt het bitniveau SA gelijk aan het bitniveau SA-1 ingesteld (verwer-kingsblok 3018) en de verwerking eindigt. Ook als de A-doorgang-vlag niet is ingesteld, eindigt de verwerking onmiddellijk.
5
Coëfficiëntbomen
In een piramidaal systeem kunnen de coëfficiënten in stellen worden gegroepeerd met gebruikmaking van een boomstructuur. De wortel van elke boom is een pure laagdoorlaatfiltercoëfficiënt. Figuur 5 10 illustreert de boomstructuur van een pure laagdoorlaatfilter-coëffici-ënt van het getransformeerde beeld. Voor een tweedimensionaal signaal zoals een beeld heeft de wortel van de boom drie "kinderen" en de rest van de knooppunten hebben elk vier kinderen. De boom is hiërarchisch niet beperkt tot tweedimensionale signalen. Voor een eendimensionaal 15 signaal bijvoorbeeld heeft een wortel één kind en niet-wortel-knooppunten hebben elk twee kinderen. Hogere dimensies volgen uit de eendimensionale en tweedimensionale gevallen.
De boomstructuur blijkt tevens uit het bedrijf van de filters die in de figuren 4A-4C zijn getoond. Het bedrijf van de paren filters met 20 onderbemonstering leidt ertoe dat de hierboven beschreven coëfficiënten gerelateerd zijn.
In de onderhavige uitvinding bepaalt, nadat de coëfficiënten in tekengrootteformaat zijn geplaatst, een contextmodel welk van de veelvoudige codeerwerkwijzen gebruikt moet worden om de coëfficiënten 25 verder te coderen. Een frequentie-gebaseerd codeerschema, zoals nul-boom-codering, codeert op efficiënte wijze de significantiedata die bij een gegeven subband-decompositie voor een gespecificeerde drempel behoren. In aanvulling op het gebruik van symbolen die de significantie of insignificantie van één enkele geïsoleerde coëfficiënt in de 30 bijbehorende subband-decompositie aanduiden, worden de ingangen van insignificante ouders met alle kinderen insignificant (die met grootheden die minder dan of gelijk aan de gegeven drempel zijn) samen gegroepeerd en gemeenschappelijk gecodeerd. Naar deze bomen wordt soms verwezen als nulbomen. Deze insignificante bomen zijn gecodeerd met 35 één enkel doelspecifiek symbool, dat soms een nulboomwortel wordt genoemd. Als er echter een significante afstammeling is wordt de ingang van een insignificante coëfficiënt gecodeerd met gebruikmaking van het symbool voor een "geïsoleerde nul". Derhalve wordt een boom J 0 o 1 2 4 7 40 gecodeerd met vier symbolen (positief significant, negatief significant, geïsoleerde nul of nulboomwortel) voor beslissingen waar het teken van de coëfficiënt nog niet is gecodeerd.
-* Frequentie-gebaseerde codering is bijzonder nuttig in compressie- 5 systemen omdat de gemeenschappelijke codering van insignificante bomen het mogelijk maakt dat een klein aantal oudercoëfficiënten de insigni-ficantie van een groot aantal afstammelingcoëfficiënten voorspelt. Aangezien de ingangen in de boom die bij afstammelingcoëfficiënten behoren van de wortel voorspeld kunnen worden, zijn er geen aanvullen-10 de symbolen nodig om de insignificantie hiervan te coderen. De insig-nificantie van de gehele boom is met zeer lage kosten gecodeerd. Daarom bestaan de bitniveaus van hoge orde voornamelijk uit insignificante coëfficiënten, waarvan vele noch nulboomwortels noch geïsoleerde nullen zijn (dat wil zeggen er zijn kinderen in insignificante bomen die 15 niet gecodeerd hoeven te worden).
Shapiro openbaart een frequentie-gebaseerd model dat Zerotree is genoemd in US-octrooi nr. 5*321.776. Bij de werkwijze van Shapiro worden twee lijsten, een dominante lijst en een ondergeschikte lijst, gebruikt om alle coëfficiënten op te slaan. Voor elk significantieni-20 veau worden twee doorgangen gemaakt, een dominante doorgang en een ondergeschikte doorgang. In een uitvoeringsvorm is het frequentie-gebaseerde model van de onderhavige uitvinding Zerotree.
In een andere uitvoeringsvorm is een frequentie-gebaseerd model dat gelijk is aan Zerotree (zoals beschreven door Shapiro) gebruikt. 25 In plaats van veelvoudige lijsten te gebruiken wordt er slechts één lijst gebruikt, waarbij elk van de lijstelementen is gemarkeerd als zijnde leden van een van de twee groepen. De scheiding van coëfficiënten in een A-groep en een B-groep is equivalent aan de scheiding die Shapiro bereikt met dominante en ondergeschikte lijsten (respectieve-30 lijk). Shapiro's gebruik van veelvoudige lijsten maakt een grotere flexibiliteit mogelijk bij het ordenen van coëfficiënten in de ondergeschikte lijst ten koste van grotere software/hardware-complexiteit. Deze Enkele-Lijst-Zerotree-werkwijze maakt gebruik van twee doorgangen, de A-doorgang en de B-doorgang, die equivalent zijn aan Shapiro's 35 dominante doorgang respectievelijk ondergeschikte doorgang. Het Enkele-Lijst-Zerotree-model wordt hieronder beschreven.
Het codeersysteem van de onderhavige uitvinding behoudt een lijst van de coëfficiënten in tekengroottevorm in het geheugen. Elk element 1001247 kl in de lijst heeft een eenbit-label dat aanduidt of het element een lid is van de "A-groep" of de "B-groep". Aan het begin van een fase worden die coëfficiënten waarvan nog niet is gebleken dat ze significant zijn gelabeld dat ze zich in de A-groep bevinden. Die coëfficiënten waarvan 5 tevoren is gebleken dat ze significant zijn met betrekking tot voorafgaande, grotere drempels worden gelabeld dat ze zich in de B-groep bevinden. De lijst omvat de coëfficiënten in de volgorde waarin ze voor de codering verwerkt zullen worden. Aan het begin van de allereerste fase worden alle coëfficiënten gelabeld als leden van de A-10 groep, aangezien er van geen enkele coëfficiënt is vastgesteld dat deze significant is. Wanneer van coëfficiënten wordt vastgesteld dat ze significant of insignificant zijn, worden de labels voor hun ingangen veranderd van de oorspronkelijke A-groepbestemming naar B-groepbe-stemming. Deze lijst wordt achtereenvolgens verfijnd met steeds fijne-15 re drempels. Dat wil zeggen, er treden veelvoudige doorgangen door de lijst op.
In een uitvoeringsvorm worden de binaire gebeurtenissen die overeenkomen met de coëfficiënten van de B-groep binair rekenkundig gecodeerd onder een context model van Markov van de nulde orde. De 20 kwartaire gebeurtenissen die overeenkomen met de coëfficiënten van de A-groep worden eveneens gecodeerd onder een contextmodel van Markov van de nulde orde.
De volgorde van coëfficiënten in de lijst van de onderhavige uitvinding handhaaft de boomstructuur zodanig dat er geen kind kan 25 worden gemodelleerd voorafgaand aan zijn ouder. Derhalve wordt een ordening die de boomstructuur handhaaft vast en consequent gebruikt. In een uitvoeringsvorm worden de coëfficiënten in het geheugen opgeslagen in de volgorde van de eerste gebruikte opslagplaats. In een andere uitvoeringsvorm kan een gekoppelde lijst worden gebruikt.
30 In een uitvoeringsvorm worden de coëfficiënten gecodeerd in een ingebed bitsignificantie-, of bitniveausysteem. Aangezien de coëfficiënten worden gecodeerd van het meest significante bitniveau tot het minst significante bitniveau moet het aantal bitniveaus in de data worden bepaald. In de onderhavige uitvinding wordt dit bewerkstelligd 35 door het vinden van een bovengrens aan de grootheden van de coëffi-ciëntwaarden die zijn berekend van de data of zijn afgeleid van de diepte van het beeld en de filtercoëfficiënten. Als de bovengrens bijvoorbeeld 1^9 is, dan zijn er 8 significantiebits of 8 bitniveaus.
1001247 42
Figuur 6a illustreert een uitvoeringsvorm van het enkele-lijst-nulboomcodeerproces van de onderhavige uitvinding. In een uitvoeringsvorm kan het proces in figuur 6A worden gebruikt in het modellerings-proces van figuur 27· Met verwijzing naar figuur 6A begint het proces - % 5 met het testen of de groepvlag voor de coëfficiënt C is ingesteld op de "A-groep" (verwerking 3221). Als dit niet het geval is, dan eindigt het proces. Als aan de andere kant de groepvlag voor de coëfficiënt C is ingesteld op de "A-groep”, dan gaat de verwerking verder met ver-werkingsblok 3222, waar een test bepaalt of de "bepaald/onbepaald"-10 vlag voor de coëfficiënt C is ingesteld op "onbepaald". Als de "bepaald/onbepaald"-vlag voor de coëfficiënt niet is ingesteld op "onbepaald", dan eindigt het proces. Als echter de "bepaald/onbe-paald"-vlag voor de coëfficiënt C is ingesteld op "onbepaald", dan gaat de verwerking verder met verwerkingsblok 3203, waar een test 15 bepaalt of de bit SA van de coëfficiënt C één is.
Als de bit SA van de coëfficiënt C niet gelijk aan één is, gaat de verwerking verder met verwerkingsblok 3207. Als aan de andere kant de bit SA van de coëfficiënt C één is, gaat de verwerking verder met verwerkingsblok 3204, waar een test bepaalt of het teken van de co- 20 ëfficiënt C positief is. Als het teken van de coëfficiënt C niet positief is, dan wordt de beslissing gecodeerd als "negatief significant" in "A-groep" context(en) (verwerkingsblok 3205), en het proces gaat verder met verwerkingsblok 3229. Als het teken van de coëfficiënt C positief is, wordt de beslissing gecodeerd als "positief significant" 25 in "A-groep" context(en) (verwerkingsblok 3206), en het proces gaat verder met verwerkingsblok 3229· Bij verwerkingsblok 3229 is de groepvlag voor C ingesteld op de "B-groep".
Bij verwerkingsblok 3207 bepaalt een test of de bit SA nul is voor alle afstammelingen (kinderen) van de coëfficiënt C. Als de bit SA 30 geen nul is, wordt de beslissing gecodeerd als "insignificant met significante kinderen" (01) in "A-groep"-context(en) (verwerkingsblok 3208), en het proces eindigt. Als aan de andere kant de bit SA nul is voor alle afstammelingen (kinderen) van de coëfficiënt C, dan wordt de beslissing gecodeerd als "nulboom-wortel" (00) in "A-groep"-con-35 text(en) (verwerkingsblok 3209)· Daarna wordt de "bepaald/onbepaald"-vlag voor alle afstammelingen van de coëfficiënt C ingesteld op "bepaald" (verwerkingsblok 3221), en het proces eindigt.
In een andere uitvoeringsvorm kan de beëindigingstest voor het 1 0 0 1 2 4 7 43 proces zijn of er wel of niet een gewenste compressieverhouding is bereikt.
In een uitvoeringsvorm worden de binaire gebeurtenissen die voor-** tvloeien uit de B-doorgang entropie-gecodeerd onder het broncontextmo-5 del van Markov van de nulde orde. Het 2-bit alfabet (grootte 4) dat voortvloeit uit de A-doorgang wordt eveneens onder de Markov-bron van de nulde orde gecodeerd, door een kwartaire (alfabet van de grootte 4) rekenkundige codeerinrichting.
Figuren 6B en 6B (vervolg) illustreren een alternatieve uitvoe-10 ringsvorm van het enkele-lijst-nulboom-codeerproces van de onderhavige uitvinding met gebruikmaking van gereduceerd vlaggeheugen. In een uitvoeringsvorm kan het proces van figuur 6B worden gebruikt als de A-doorgang in het proces van figuur 30. Met verwijzing naar de figuren 6b en 6B (vervolg) begint het proces met het testen of het resultaat 15 van de EN-bewerking van de coëfficiënt C met het masker MA nul is (verwerking 3201). Als dit niet het geval is eindigt het proces. Als aan de andere kant het resultaat van de EN-bewerking van de coëfficiënt C met het masker MA nul is, gaat de verwerking verder met verwerkingsblok 3202, waar een test bepaalt of de "bepaald/onbepaald"-vlag voor de 20 ouder van de coëfficiënt C op "onbepaald" is ingesteld. Als de vlag voor de ouder van de coëfficiënt niet op "onbepaald" is gesteld, eindigt het proces. Als echter de "bepaald/onbepaald"-vlag voor de ouder van de coëfficiënt C op "onbepaald" is gesteld, gaat de verwerking verder met verwerkingsblok 3203, waar een test bepaalt of de bit SA van 25 de coëfficiënt C één is.
Als de bit SA van de coëfficiënt C geen één is, gaat de verwerking verder met verwerkingsblok 3207. Als aan de andere kant de bit SA van de coëfficiënt C één is, gaat de verwerking door naar verwerkingsblok 3204, waar een test bepaalt of het teken van de coëfficiënt C 30 positief is. Als het teken van de coëfficiënt C niet positief is, wordt de beslissing gecodeerd als "negatief significant" in "A-groep" context(en) (verwerkingsblok 3205). en het proces eindigt. Als het teken van de coëfficiënt C positief is, wordt de beslissing gecodeerd als "positief significant" in "A-groep"-context(en) (verwerkingsblok 35 3206), en het proces eindigt. In een uitvoeringsvorm wordt een kwar taire codeerinrichting gebruikt en kwartaire beslissingen worden gecodeerd in één context. In een andere uitvoeringsvorm wordt een binaire codeerinrichting gebruikt en worden drie contexten gebruikt (waarbij 1001247 44 bijvoorbeeld de drie contexten zijn: de eerste bit van de beslissing, de tweede bit wanneer de eerste bit nul is en de tweede bit wanneer de eerste bit een één is).
Bij verwerkingsblok 3207 bepaalt een test of de bit SA nul is - ** 5 voor alle afstammelingen (kinderen) van de coëfficiënt C. Als bit SA geen nul is, wordt de beslissing gecodeerd als "insignificant met significante kinderen”, "geïsoleerde nul”, (01) in "A-groep"-con-text(en) (verwerkingsblok 3208), en het proces eindigt. Als aan de andere kant de bit SA nul is voor alle afstammelingen (kinderen) van de 10 coëfficiënt C, dan wordt de beslissing gecodeerd als "nulboom-wortel” (00) in "A-groep”-context(en) (verwerkingsblok 3209). Dan wordt de "bepaald/onbepaald”-vlag voor de coëfficiënt C ingesteld op "bepaald" (verwerkingsblok 3210). Daarna wordt de ”bepaald/onbepaald"-vlag voor alle afstammelingen van de coëfficiënt, die op hun beurt afstammelin-15 gen hebben, ingesteld op "bepaald" (verwerkingsblok 3211), en het proces eindigt.
Decodeerstappen
In de onderhavige uitvinding wordt het decoderen uitgevoerd in 20 een vaste samenhang met de codering.
Figuur 6C illustreert een uitvoeringsvorm van de A-doorgang voor een nulboom-horizon-decodeerproces, en kan worden gebruikt in verbinding met het proces van figuur 27. Met verwijzing naar figuur 6C begint het proces door te testen of de groepvlag voor coëfficiënt C is 25 ingesteld op de "A-groep" (verwerkingsblok 3521). Als dit niet het geval is eindigt het proces. Als dit echter wel het geval is, gaat de verwerking verder met verwerkingsblok 3528, waar een test bepaalt of de ”bepaald/onbepaald"-vlag voor de coëfficiënt C is ingesteld op "onbepaald". Als dit niet het geval is eindigt het proces. Als dit wel 30 het geval is, gaat het proces verder met verwerkingsblok 3502, waar de ternaire beslissing wordt gedecodeerd in A-groep-context(en).
Dan bepaalt een test of de beslissing "positief significant" is (verwerkingsblok 3503)· Als de beslissing "positief significant" is, dan wordt het teken van de coëfficiënt C ingesteld op positief (ver-35 werkingsblok 3505), de grootte van de coëfficiënt wordt gesteld op 2SA (verwerkingsblok 3507), de groepvlag voor de coëfficiënt C wordt ingesteld op de "B-groep" (verwerkingsblok 3541), en het proces eindigt.
Als de beslissing niet "positief significant" is (verwerkingsblok 1001247 45 3503), dan bepaalt een test of de beslissing "negatief significant" is (verwerkingsblok 3504). Als de beslissing niet "negatief significant" is, dan gaat het proces verder naar verwerkingsblok 3509, waar een test bepaalt of de beslissing een nulboom-wortel is. Als de beslissing 5 geen nulboom-wortel is, eindigt het proces. Als de beslissing een nulboom-wortel is, wordt de "bepaald/onbepaald"-vlag voor alle afstammelingen van de- coëfficiënt C ingesteld op "onbepaald" (verwerkingsblok 3531), en het proces eindigt.
Als echter de test van verwerkingsblok 3504 bepaalt dat de be-10 slissing "negatief significant" is, dan wordt het teken van de coëfficiënt C ingesteld op negatief (verwerkingsblok 3506), de grootte van de coëfficiënt C wordt ingesteld op 2SA (verwerkingsblok 3507), de groepvlag voor de coëfficiënt C wordt ingesteld op de B-groep (verwerkingsblok 3541), en het proces eindigt.
15 Figuur 6D illustreert een alternatieve uitvoeringsvorm van het A- doorgangproces voor een nulboom-horizon-decodeerproces met gebruikmaking van gereduceerd vlaggeheugen, en kan worden gebruikt in het proces dat in figuur 30 is beschreven. Met verwijzing naar figuur 6D begint het proces met te testen of het resultaat van de EN-bewerking 20 van de coëfficiënt C met het masker MA nul is (verwerkingsblok 3501). Als dit niet het geval is eindigt het proces. Als het resultaat van de EN-bewerking van de coëfficiënt C met het masker MA echter nul is, dan gaat de verwerking verder met verwerkingsblok 3508, waar een test bepaalt of de "bepaald/onbepaald"-vlag voor de ouder van C "onbepaald" 25 is. Als dit niet het geval is eindigt het proces. Als dit wel het geval is gaat het proces verder met verwerkingsblok 3502, waar de ternaire beslissing is gedecodeerd in A-groep-context(en).
Dan bepaalt een test of de beslissing "positief significant" is (verwerkingsblok 3503). Als de beslissing "positief significant" is, 30 dan wordt het teken van de coëfficiënt op positief gesteld (verwerkingsblok 3505), de grootte van de coëfficiënt wordt ingesteld op 2SA (verwerkingsblok 3507), en het proces eindigt.
Als de beslissing niet "positief significant" is, bepaalt een test of deze "negatief significant" is (verwerkingsblok 3504). Als de 35 beslissing niet "negatief significant" is, dan gaat het proces verder met verwerkingsblok 3509, waar een test bepaalt of de beslissing een nulboomwortel is. Als de beslissing niet een nulboomwortel is, eindigt het proces. Als de beslissing een nulboomwortel is, wordt de "bepaald- 1001247 46 /onbepaald"-vlag voor de coëfficiënt C ingesteld op "bepaald" (verwer-kingsblok 3510), de "bepaald/onbepaald"-vlaggen voor alle afstammelingen van coëfficiënt C, die op hun beurt afstammelingen hebben, worden ingesteld op "onbepaald" (verwerkingsblok 3511). en het proces ein-5 digt.
Als echter de test van verwerkingsblok 3504 bepaalt dat de beslissing "negatief significant" is, dan wordt het teken van de coëfficiënt C ingesteld op negatief (verwerkingsblok 3506), de grootte van de coëfficiënt C wordt ingesteld op 2SA (verwerkingsblok 3507), en het 10 proces eindigt.
Er bestaan alternatieven voor de keus die door Shapiro is gemaakt om kwartaire beslissingen te gebruiken voor het beschrijven van bomen. Grotere alfabetten kunnen worden gebruikt om de karakteristieken van een gehele boom verder te specificeren wanneer de wortel van de boom 15 wordt gecodeerd. In een uitvoeringsvorm wordt het volgende stel sex-taire beslissingen gebruikt.
- insignificant met insignificante kinderen (nulboom-wortel) - insignificant met tenminste één significant kind - significant, positief en alle kinderen niet-negatief 20 - significant, positief en tenminste één kind is negatief - signficant, negatief en alle kinderen zijn niet-positief - significant, negatief en tenminste één kind is positief.
In deze uitvoeringsvorm wordt tekeninformatie in aanvulling op insignificantie voorspeld voor een gehele boom. In andere uitvoerings-25 vormen kunnen bomen met andere tekenbeperkingen of met grootte-beper-kingen worden voorspeld. Alternatieve predictoren kunnen in het bijzonder nuttig zijn bij het weergeven van textuur of bij het weergeven van eigenschappen met multiresolutie. Met grotere alfabetten kan het gebruik van Markov-contexten van hogere orde (zoals later wordt be-30 schreven) nuttig zijn.
Ingebedde gemeens chappeli.ike ruimte/freauentie-modellering gebaseerd op multidoorgang-liisten 35 In de onderhavige uitvinding codeert frequentie-ingebedde code ring, zoals horizon-volgorde-modellering die hier is geopenbaard, de ternaire gebeurtenissen die overeenkomen met de coëfficiënten in de A-groep. Bij horizon-codering zijn alle initialisaties die vooraf gaan 100 1247 **7 aan de codeerstappen identiek aan het frequentie-gebaseerde systeem. In een uitvoeringsvorm wordt binaire entropiecodering uitgevoerd met drie contexten, "A-groep-grootte", "A-groep-teken" en "B-groep."
Figuur 7A is een stroomschema van een uitvoeringsvorm van de A-5 doorgang voor een enkele-lijst-horizon-codeerproces volgens de onderhavige uitvinding. Dit proces kan worden gebruikt in het proces van figuur 27. Met verwijzing naar figuur 7A begint het A-doorgangproces met het testen of de groepvlag voor de coëfficiënt C is ingesteld op de "A-groep" (verwerkingsblok 3IH)· Als dit niet het geval is, ein-10 digt het proces. Als de groepvlag voor de coëfficiënt C is ingesteld op de "A-groep", dan gaat de verwerking verder met verwerkingsblok 3102, waar een test bepaalt of de bit SA van de coëfficiënt C één is. Als de bit SA vein de coëfficiënt C niet één is, dan wordt de beslissing gecodeerd als insignificant (0) in "A-groep"-context (verwerkingsblok 15 3IO3) en het proces eindigt. Als de bit SA van de coëfficiënt C één is, dan gaat de verwerking verder met verwerkingsblok 3104, waar een test bepaalt of het teken van de coëfficiënt C positief is. Als het teken van de coëfficiënt C positief is, dan wordt de beslissing gecodeerd als "positief significant" (10) in "A-groep"-context(en) (verwerkings-20 blok 3106), en het proces gaat verder met verwerkingsblok 3117· Als aan de andere kant het teken van de coëfficiënt C niet positief is, wordt de beslissing gecodeerd als "negatief significant" (11) in "A-groep"-context(en) (verwerkingsblok 3105). en het proces gaat verder met verwerkingsblok 3H7· Bij verwerkingsblok 3H7 wordt de groepvlag 25 voor de coëfficiënt C ingesteld op de "B-groep".
Figuur 7B is een stroomschema van een alternatieve uitvoeringsvorm van de A-doorgang voor een enkele-lijst-horizon-codeerproces met gebruikmaking van gereduceerd vlaggeheugen. Dit proces kan worden gebruikt in het proces van figuur 30. Met verwijzing naar figuur 7B 30 begint het A-doorgangproces met het testen of het resultaat van de EN-bewerking van de coëfficiënt C met het masker MA nul is (verwerkingsblok 3101). Als dit niet het geval is, dan eindigt het proces. Als het resultaat van de EN-bewerking van de coëfficiënt C met het masker MA nul is, gaat de verwerking verder met verwerkingsblok 3102, waar een 35 test bepaalt of de bit SA van de coëfficiënt C één is. Als de bit SA van de coëfficiënt C niet één is, wordt de beslissing gecodeerd als insignificant (0) in "A-groep"-context (verwerkingsblok 3103) en het proces eindigt. Als de bit SA van de coëfficiënt C één is, dan gaat de 1001247 48 verwerking verder met verwerkingsblok 3104, waar een test bepaalt of het teken van de coëfficiënt C positief is. Als het teken van de coëfficiënt C positief is, dan wordt de beslissing gecodeerd als "positief significant" (10) in "A-groep"-context(en) (verwerkingsblok 5 3106), en het proces eindigt. Als aan de andere kant het teken van de coëfficiënt C niet positief is, dan wordt de beslissing gecodeerd als "negatief significant" (11) in "A-groep"-context(en) (verwerkingsblok 3IO5). en het proces eindigt.
10 Decodeers tappen
Figuur 70 illustreert een uitvoeringsvorm van het A-doorgangpro-ces voor een enkele-lijst-horizon-decodeerproces volgens de onderhavige uitvinding, en kan worden gebruikt in het proces van figuur 27· Met verwijzing naar figuur 70 begint het proces met het testen of de 15 groepvlag voor de coëfficiënt C is ingesteld op de "A-groep" (verwerkingsblok 3411). Als dit niet het geval is, eindigt het proces. Als echter de groepvlag voor de coëfficiënt C is ingesteld op de "A-groep", dan gaat de verwerking verder met het verwerkingsblok 3402, waar de ternaire beslissing is gedecodeerd in A-groep-context(en).
20 Dan bepaalt een test of de beslissing "positief significant" is (verwerkingsblok 3403). Als de beslissing "positief significant" is, wordt het teken van de coëfficiënt C ingesteld op positief (verwerkingsblok 3405), de grootte van de coëfficiënt wordt ingesteld op 2SA (verwerkingsblok 3407), de groepvlag voor de coëfficiënt C wordt inge-25 steld voor de "B-groep" (verwerkingsblok 3418), en het proces eindigt.
Als de beslissing niet "positief significant" is, bepaalt een test of deze "negatief significant" is (verwerkingsblok 3404). Als de beslissing niet "negatief significant" is, eindigt het proces. Als echter de beslissing "negatief significant" is, wordt het teken van de 30 coëfficiënt C ingesteld op negatief (verwerkingsblok 3406), de grootte van C wordt ingesteld op 2SA (verwerkingsblok 3407), de groepvlag voor de coëfficiënt C wordt ingesteld op de "B-groep" (verwerkingsblok 3418), en het proces eindigt.
Figuur 7D illustreert een alternatieve uitvoeringsvorm van het A-35 doorgangproces voor een enkele-lijst-horizon-decodeerproces met gebruikmaking van gereduceerd vlaggeheugen, en kan worden gebruikt in het proces van figuur 30. Met verwijzing naar figuur 7D begint het proces met het testen of het resultaat van de EN-bewerking van de 1001247 49 coëfficiënt C met het masker MA nul is (verwerkingsblok 3401). Als dit niet het geval is, dan eindigt het proces. Als het resultaat van de EN-bewerking van de coëfficiënt C met het masker MA echter nul is, dan ** gaat de verwerking verder met verwerkingsblok 3402, waar de temaire 5 beslissing wordt gedecodeerd in A-groep-context(en).
Dan bepaalt een test of de beslissing "positief significant" is (verwerkingsblok 3403). Als de beslissing "positief significant" is, wordt het teken van de coëfficiënt C ingesteld op positief (verwerkingsblok 3405), de grootte van de coëfficiënt wordt ingesteld op 2SA 10 (verwerkingsblok 3407), en het proces eindigt.
Als de beslissing niet "positief significant" is, bepaalt een test of deze "negatief significant" is (verwerkingsblok 3404). Als de beslissing niet "negatief significant" is, eindigt het proces. Als echter de beslissing "negatief significant" is, wordt het teken van de 15 coëfficiënt C ingesteld op negatief (verwerkingsblok 3406), de grootte van C wordt ingesteld op 2SA (verwerkingsblok 3407). en het proces eindigt.
B-dooreang voor zowel nulboom als horizon 20 In een uitvoeringsvorm zijn het B-doorgangproces voor zowel de nulboom als de horizon van de onderhavige uitvinding hetzelfde. Uitvoeringsvormen voor de B-doorgang-algoritme voor het codeerproces en het decodeerproces zijn getoond in de figuren 8A en 8B respectievelijk 9A en 9B.
25 Figuur 8A illustreert een uitvoeringsvorm van het B-doorgangpro- ces dat gedeeltelijk wordt gebruikt voor het nulboom- en enkele-lijst-horizon-codeerproces, en kan worden gebruikt bij het proces van figuur 27. Met verwijzing naar figuur 8A test het proces eerst of de groep-vlag voor de coëfficiënt C is ingesteld (verwerkingsblok 3311)· Als 30 dit niet het geval is, eindigt het proces. Als aan de andere kant de groepvlag is ingesteld, gaat de verwerking verder met verwerkingsblok 3302, waar een test bepaalt of de bit SB van de coëfficiënt C "1" is. Als de bit van SB van de coëfficiënt C niet "1" is, dan wordt de beslissing gecodeerd als "0" in "B-groep"-context(en) (verwerkingsblok 35 3303). en het proces eindigt. Als de bit SB van de coëfficiënt C "1" is, dan wordt de beslissing gecodeerd als "1" in "B-groep"-context(en) (verwerkingsblok 3304), en het proces eindigt.
Figuur 8B illustreert een alternatieve uitvoeringsvorm van het B- 1 0 0 1 2 4 7 50 doorgangproces dat gedeeltelijk wordt gebruikt voor het nulboom- en enkele-lijst-horizon-codeerproces en gebruik maakt van gereduceerd vlaggeheugen, en dat kan worden gebruikt in het proces van figuur 30. Met verwijzing naar figuur 8B test het proces eerst of het resultaat 5 van de EN-bewerking van de coëfficiënt C met het masker MB niet gelijk is aan nul (verwerkingsblok 3301). Als dit niet het geval is, dan eindigt het proces. Als aan de andere kant het resultaat van de EN-bewerking van de coëfficiënt C met het masker MB niet gelijk aan nul is, gaat de verwerking verder met verwerkingsblok 3302, waar een test 10 bepaalt of de bit SB van de coëfficiënt "1" is. Als de bit SB van de coëfficiënt C niet "1" is, dan wordt de beslissing gecodeerd als "0" in ”B-groep"-context(en) (verwerkingsblok 3303). en het proces eindigt. Als de bit SB van de coëfficiënt C "1" is, dan wordt de beslissing gecodeerd als "1" in "B-groep"-context (en) (verwerkingsblok 15 3304), en het proces eindigt.
Figuur 9A illustreert een uitvoeringsvorm van de B-doorgang-deco-dering van de onderhavige uitvinding, en kan worden gebruikt in het proces van figuur 27· Met verwijzing naar figuur 9A bepaalt een test eerst of de groepvlag voor de coëfficiënt C is ingesteld op de "B-20 groep" (verwerkingsblok 3611). Als dit niet het geval is, dan eindigt het proces. Als echter de groepvlag voor de coëfficiënt C is ingesteld op de "B-groep", dan worden de beslissingen gedecodeerd in de "B-groep"-context(en) (verwerkingsblok 3602). Een test bepaalt dan of de beslissing een "1" is (verwerkingsblok 3603) · Als de beslissing geen 25 "1" is, eindigt het proces. Als de beslissing een "1" is, dan wordt de bit SB van de coëfficiënt C ingesteld (verwerkingsblok 3604) en het proces eindigt.
Figuur 9B illustreert een alternatieve uitvoeringsvorm van de B-doorgang-decodering van de onderhavige uitvinding met gebruikmaking 30 vein gereduceerd vlaggeheugen, en kan worden gebruikt in het proces van figuur 30. Met verwijzing naar figuur 9B bepaalt een test eerst of het resultaat van de EN-bewerking van de coëfficiënt C met het masker MB niet gelijk aan nul is (verwerkingsblok 3601). Als het resultaat van de EN-bewerking van de coëfficiënt C met het masker MB nul is, dan 35 eindigt het proces. Als echter het resultaat van de EN-bewerking van de coëfficiënt C met het masker MB niet gelijk aan nul is, dan worden de beslissingen gedecodeerd in de "B-groep"-context(en) (verwerkingsblok 3602). Een test bepaalt dan of de beslissing een "1" is (verwer- 1001247 51 kingsblok 3603). Als de beslissing geen "1" is, dan eindigt het proces. Als de beslissing een "1" is, dan wordt de bit SB van de coëfficiënt ingesteld (verwerkingsblok 3604) en het proces eindigt.
Met gebruikmaking van de combinatie van nulboom-volgorde-codering 5 en horizon-volgorde-codering verschaft de onderhavige uitvinding bit-significantie-codering van de coëfficiënten die door de reversibele minigolven zijn'gegenereerd. Merk op dat het gebruik van zowel de A-groep als de B-groep en de temaire en de binaire gebeurtenissen, die overeenkomen met de "A"- respectievelijk "B"-doorgangen, in het bij-10 zonder belangrijk is met het oog op het feit dat een schakelaar wordt gemaakt door het gebruik van de nulboom-ordening naar de horizon-orde-ning aan het eind van elke A-doorgang. Dit compenseert de inefficiëntie in predictie die de nulboom-ordening bij de bits van de lage orde begeleidt. Daarom begint het systeem in de onderhavige uitvinding 15 door het nulboom-coderen van de data met bits van hogere orde, en na een aantal doorgangen door de lijst, dat wil zeggen nadat een aantal bitniveaus zijn gecodeerd, schakelt de codeerinrichting van de onderhavige uitvinding om, om de rest van de data te coderen met gebruikmaking van horizon-codering. Het aantal doorgangen kan statistisch wor-20 den gekozen of kan adaptief worden gekozen door de prestatie van het nulboom-ordening-codeerblok te bewaken.
Contextmodel-alternatieven
In een uitvoeringsvorm worden vijf binaire contextbins gebruikt. 25 Dit is klein wanneer dit wordt vergeleken met andere systemen zoals JBIG, die iets meer dan 1024 contexten gebruikt. De compressie kan worden verbeterd door het gebruik van meer contextbins. Beslissingen kunnen worden geconditioneerd op ruimtelijke lokatie, niveau, en/of bitpositie. Beslissingen kunnen tevens worden geconditioneerd op tevo-30 ren gecodeerde data die zich qua ruimtelijke lokatie, niveau, en/of bitpositie in de nabijheid van de huidige data bevinden. In het algemeen kunnen hierboven beschreven Markov-contexten van de nulde orde worden vervangen door Markov-contexten van hogere orde.
Een aantal voorbeelden zijn als volgt. De meest significante (en 35 daarom het eenvoudigst voorspelde) bit van elke mantisse (B-groep-data in sommige uitvoeringsvormen) zouden een verschillende context kunnen gebruiken dan de rest van de bits. De significant/niet-significant-beslissing zou kunnen worden geconditioneerd op dezelfde beslissing 1001247 52 die werd gemaakt voor ruimtelijk nabijgelegen voorafgaande coëfficiënten op hetzelfde transformatieniveau. Op soortgelijke wijze zouden de tekenbits voor significante coëfficiënten geconditioneerd kunnen worden op het teken van ruimtelijk nabijgelegen voorafgaande coëffici-5 ënten op hetzelfde niveau of het teken van de coëfficiënt van de ouder..
Contextmodelverbeteringen kunnen in het bijzonder belangrijk zijn wanneer beelden worden gecomprimeerd die een ruimtelijke of multireso-lutie-structuur hebben. Grijsscala-beelden van lijntekeningen of tekst 10 zijn een voorbeeld van beelden met deze beide typen structuur. Verbeteringen zijn ook belangrijk voor het comprimeren van bestanden die reeds met een bepaalde piekfout gecomprimeerd en gedecomprimeerd moeten worden.
15
Alternatieve uitvoeringsvormen van de onderhavige uitvinding
De onderhavige uitvinding kan worden geïmplementeerd in hardware en/of software. Een hardware-implementatie van de onderhavige uitvinding vereist implementatie van de minigolf-filters, geheugen/data-20 stroom-beheer om de data voor de filters te verschaffen, een context-model om de ingebedde codering van de onderhavige uitvinding te besturen, geheugen/datastroom-beheer om de data voor het contextmodel te verschaffen, en een binaire entropie-codeerinrichting.
25 Minigolf-filters
Een uitvoeringsvorm van het voorwaartse minigolf-filter van de onderhavige uitvinding is getoond in figuur 10. Het minigolf-filter dat in figuur 10 is getoond ontvangt 4 16-bit tweecomplement-invoer-pixels, die zijn getoond als x(2)-x(5)· 30 Met verwijzing naar figuur 10 gebruikt het twee aftakkingen heb bende "1 1" laagdoorlaatfilter een 16-bit opteller 1001. De uitgangen worden S respectievelijk D genoemd. De uitgang van de opteller (S) is afgekapt tot 16 bits met gebruikmaking van het verschuif-met-l-blok 1003· Het verschuif-met-l-blok 1003 voert een verdeel-door-2-functie 35 uit door zijn 17-bit invoer naar de rechter bit te verschuiven.
Het zes aftakkingen hebbende "-1 -1 8 -8 1 1" hoogdoorlaatfilter vereist de berekening van -S0 + S2. De functie S2 - S0 wordt bere kend met de 16-bit aftrekker 1005, die het uitgangssignaal van het 1001247 53 verschuif-met-l-blok 1003 en de Y0(0) ontvangt. De ^Dj-term wordt berekend met gebruikmaking van de aftrekker 1002 en het verschuif-met-2-blok 1004. Het uitgangssignaal dat door de 16-bit aftrekker 1002 tot stand is gebracht wordt twee plaatsen naar links verschoven, waardoor 5 het uitgangssignaal hiervan effectief met vier wordt vermenigvuldigd. De .optelling van het ^-uitgangssignaal van het verschuif-met-2-blok 1004 bij het uitgangssignaal van de aftrekker 1005 wordt uitgevoerd door de 20-bit opteller 1006. Het uitgangssignaal van de laatste op-teller wordt afgekapt tot 18 bits met gebruikmaking van het verschuif-10 met-2-blok 1007· Het verschuif-met-2-blok 1007 voert een verdeel-door- 4-functie uit door zijn 20-bit ingangssignaal twee bits naar rechts te verschuiven.
De totale vereiste berekeningshardware (zonder meetelling van registers voor het opslaan van tijdelijke resultaten) is: 15 -16 16-bit opteller, - 2 @ 16-bit aftrekkers, - 1 6 19-bit opteller.
Merk op dat het verschuiven wordt uitgevoerd door de bedrading, zodat er geen logica nodig is.
20 In andere uitvoeringsvormen kunnen, voor ingangssignalen van de afmeting N, één N-bit-opteller, twee N-bit-aftrekkers en één (N+3) bitopteller worden gebruikt.
Als gevolg van de extreem lage hardware-kosten van deze optel-lers/aftrekkers kunnen indien gewenst parallelle implementaties van de 25 filters worden gebruikt.
Merk op dat alternatief, in plaats van het aftrekken van X(3) en X(2), X(4)-X(5) kan worden berekend en opgeslagen totdat ze later nodig zijn als X(2)-X(3) voor de volgende verschuiving of toepassing van het filter. Zowel het voorwaartse filter (als het hieronder be-30 schreven inverse filter) kunnen van een pijpleiding worden voorzien om een hogere doorgang te bewerkstelligen.
Het inverse minigolf-filter is getoond in figuur 11. De ingangssignalen van Y0(0) en Y0(2) worden afgetrokken door de aftrekker 1101. Het resultaat van de aftrekking wordt twee bits naar rechts verschoven 35 door het verschuif-met-2-blok 1102. Dit deelt het uitgangssignaal van de aftrekker effectief door 4. Een aftrekking wordt uitgevoerd tussen het uitgangssignaal van het verschuif-met-2-blok 1104 en het YjiO)-ingangssignaal. Het ingangssignaal Y0(l) wordt door het verschuif-met- 1 0 0 1 24 7 54 1-blok 1103 een bit naar links verschoven, waardoor het ingangssignaal met twee wordt vermenigvuldigd. Nadat Y0(l) is verschoven met 1 (vermenigvuldigd met twee), is de onderste zijband van de verschoven waarde de onderste zijband die is genomen van het uitgangssignaal van de 5 aftrekker 1104 en gecombineerd met het 16 bits uitgangssignaal van het verschuif-met-l-blok 1103 voor het vormen van een ingangssignaal voor de opteller 1103 en de aftrekker 1106. Het andere ingangssignaal voor de opteller 1103 en de aftrekker 1106 is het uitgangssignaal van de aftrekker 1104. De uitgangssignalen van de opteller 1105 en de aftrek-10 ker 1106 kunnen achtereenvolgens worden afgekapt.
Er kan een keuze van twee afkappingsbewerkingen worden gebruikt. In beide gevallen wordt de 20-bit waarde verschoven met 1 (verdeeld door 2), tot een 19~bit waarde. Voor een systeem dat alleen verliesloze compressie uitvoert, kunnen de minst significante 16 bits worden 15 uitgevoerd (de resterende 3 bits kunnen worden genegeerd). In een met verlies gepaard gaand systeem (of een met verlies gepaard gaand/ver-liesloos systeem) wordt de 19-bit waarde ingesteld op nul als deze negatief is of op 2l6-l ingesteld als deze groter dan 2l6-l is; anders kunnen de minst significante 16 bits worden uitgevoerd.
20 Voor ingangssignalen van de afmeting N bits kunnen een N-bit aftrekker, een (N+2) bit aftrekker, een (N+3) bitopteller en een (N+3) bit aftrekker worden gebruikt, en de afkappingseenheid geeft N bits af.
25 Geheugengebruik
Met betrekking tot het geheugen- en datastroombeheer voor de minigolf-filters vein de onderhavige uitvinding, is het geheugen/data-stroombeheer voor beelden waar een volledig frame in het geheugen past, geen moeilijke kwestie. Zelfs voor 1024 X 1024 16-bit medische 30 beelden (bijvoorbeeld met een grootte van 2 Mbytes) is het eisen van een volledig framebuffer voor veel toepassingen redelijk. Voor grotere beelden (bijvoorbeeld A4, 400 DPI vierkleurenbeelden hebben een grootte van ongeveer 50 Mbytes) is het uitvoeren van de minigolf-trans formatie met een beperkte hoeveelheid lijnbuffergeheugen gewenst.
35 Merk op dat voor de onderhavige uitvinding een volledig framebuf fer niet noodzakelijk is om een ééndoorgang-systeem te implementeren. Hierdoor kan het vereiste geheugen worden gereduceerd met ongeveer een factor 100 (vergeleken met het gebruik van een volledig framebuffer 1001247 55 voor grote beelden). Het ééndoorgang-systeem van de onderhavige uitvinding wordt later beschreven.
De data die in het filtergeheugen zijn opgeslagen zijn een serie coëfficiënten die moeten worden blootgesteld aan de ingebedde codering 5 en binaire entropie-codering. De ingebedde codering maakt gebruik van een contextmodel voor het coördineren van het gebruik van frequentie-gebaseerde codering of horizon-codering, en voor het verschaffen van data in de juiste volgorde. Het contextmodel werkt samen met een ge-heugenbeheerschema. Voor systemen met een volledig framebuffer is het 10 verschaffen van data in de juiste volgorde niet moeilijk. Voor systemen zonder een volledig framebuffer verschaft het transformatie-data-beheerschema van de ééndoorgang-uitvoeringsvorm van de onderhavige uitvinding (hieronder beschreven) coëfficiënten voor het contextmodel, zodat het contextmodel alleen coëfficiënten voor één boom tijdelijk 15 hoeft op te slaan. Een frequentie-gebaseerd ééndoorgang-contextmodel en een gemeenschappelijk ééndoorgang-ruimte/frequentiemodel werken aan één boom tegelijkertijd.
De resultaten van het ingebedde bedrijf van de onderhavige uitvinding zijn het tot brengen van bitstromen van het frequentie-geba-20 seerde modelleringsmechanisme van de onderhavige uitvinding en het gemeenschappelijke ruimte/frequentie-modelleringsmechanisme van de onderhavige uitvinding. Deze bitstromen worden dan gecodeerd met gebruikmaking van een binaire entropie-codeerinrichting.
Voor systemen met een volledig framebuffer kan een willekeurige 25 binaire entropie-codeerinrichting (of een andere geschikte codeerin-richting) worden gebruikt. Voor systemen zonder een volledig framebuffer moeten ofwel veelvoudige onafhankelijke codeerinrichtingen worden gebruikt of de codeerinrichting moet in staat zijn veelvoudige onafhankelijke codeerinrichtingen te simuleren. Ook is geheugen- of ka-30 naalbeheer nodig om de uitgangssignalen van de onafhankelijke codeerinrichtingen te volgen. Een voordeel van de onderhavige uitvinding is dat de te beheren data zijn geprioriteerd (ingebed). Als er niet voldoende ruimte of bandbreedte beschikbaar is tijdens de compressie of overdracht kan minder belangrijke data gaandeweg worden weggegooid, 35 wat leidt tot redelijke met verlies gepaard gaande compressie.
Eéndooreane-systeem van de onderhavige uitvinding
De onderhavige uitvinding verschaft een ééndoorgang-transformatie 1001247 56 die het mogelijk maakt dat de ingangsdata in het systeem volledig verwerkt kunnen worden zoals deze zijn ontvangen. In een dergelijk systeem is de verwerking van de data niet afhankelijk van data die volgen. Het geheugen dat nodig is om een beeld te comprimeren is onaf-5 hankelijk van de lengte van het beeld. Door het wegnemen van de afhankelijkheid verschaft de onderhavige uitvinding een systeem dat gecomprimeerde data kan uitvoeren voordat alle data zijn verwerkt.
A. Databeheer voor eendoorgang-transformatie 10
Figuur 12 illustreert een sectie van een beeld dat wordt gecomprimeerd in een rasterorde door bandmode met gebruikmaking van de leer van de onderhavige uitvinding. Er wordt een decompositie in vier niveaus beschouwd. Elke boom heeft 24x24=l6xl6=256 coëfficiënten. Aange-15 zien echter het hoogdoorlaatfilter van de minigolf-trans formatie in de onderhavige uitvinding wordt overlapt, hangt elke boom van meer dan 256 invoerpixels af. Het twee aftakkingen hebbende "1 1" laagdoorlaat-filter (L) leidt niet tot overlapping; alle overlapping komt vein het zes aftakkingen hebbende "-1 -1 8 -8 1 1" hoogdoorlaatfilter (H). De 20 grootste overlapping vindt plaats voor de cascade van drie toepassingen van het laagdoorlaatfilter gevolgd door één toepassing van het hoogdoorlaatfilter (LLLH). Drie toepassingen van het laagdoorlaatfilter (LLL) vereisen een steun van 23 = 8 ingangspixels. De steungebieden met de grootte van 8x8 pixels zijn getoond in figuur 12. Wanneer het 25 hoogdoorlaatfilter in de cascade is opgenomen zijn de steungebieden (6x23) x (6x23) = 48x48 pixels. Een steungebied van 48x48 pixels bestaat uit zesendertig 8x8 blokken zoals getoond in figuur 12.
Er wordt nu aangenomen dat de coëfficiënten in het steungebied van 48x48 pixels dat in figuur 12 is getoond momentaan worden ver-30 werkt. Het licht gearceerde gedeelte van het steungebied toont pixels die reeds in voorafgaande steungebieden zijn gebruikt. Het licht gearceerde gedeelte dat zich buiten het steungebied bevindt illustreert pixels die reeds in voorafgaande steungebieden zijn gebruikt en die nodig zullen zijn in toekomstige steungebieden. Het zwarte 16x16 ge-35 bied is het gedeelte van het steungebied dat pixels omvat die niet tevoren zijn gebruikt. Op soortgelijke wijze omvat het donker gearceerde 16x16 gebied pixels die niet eerder zijn gebruikt maar die gebruikt zullen worden in het volgende steungebied van 48x48 pixels.
1001247 57
Een I6xl6 transformatie in drie niveaus wordt berekend· de voorafgaande resultaten voor acht andere 16x16 transformaties in drie niveaus worden opgeroepen uit een buffer, en het vierde niveau van de trans-formatie wordt toegevoerd aan de negen 16 x 16 transformaties in drie 5 niveaus. De tijdelijke opslag die nodig is om dit te bewerkstelligen is genoeg om de drie-niveau-transformatiecoëfficiënten voor (2 x breedte_van_beeld +32) x 16 pixels op te slaan, plus genoeg om een 16 lijns (één band) buffer van pixels op te slaan.
Figuur 13 is een blokschema van een uitvoeringsvorm van de ééndo-10 organg-minigolffiltereenheid die een filterbesturingseenheid 1301, een geheugen 1302 en een filter 1303 omvat. Het filter 1303 omvat het filter dat is beschreven in samenhang met figuur 10. Het geheugen 1302 verwijst naar het geheugen dat hierboven is beschreven in samenhang met figuur 12 en slaat ofwel pixels ofwel coëfficiënten op. De filter-15 besturingseenheid 1301 bepaalt de datastroom tussen het geheugen 1302 en het filter 1303· Het bedrijf van de filterbesturingseenheid 1301 wordt hieronder uiteengezet.
Figuur 14 illustreert een alternatieve minigolf-filtereenheid. Om een bedrijf met hoge snelheid te bereiken kunnen veelvoudige filters 20 worden gebruikt. In een uitvoeringsvorm zou, aangezien het filter 1303 4 of 5 ingangssignalen vereist (bijvoorbeeld invers filter, voorwaarts filter) en twee uitgangssignalen tot stand brengt, de vereiste geheu-gen-bandbreedte aanzienlijk kunnen zijn. Het geheugen kan veelvoudige pixels/coëfficiënten per lokatie, veelvoudige banken en/of veelvoudige 25 poorten hebben. Een geheugeninterface-eenheid 1^01 reduceert de vereiste geheugen-bandbreedte door kleine buffers te verschaffen voor lokale data die tijdens de verwerking worden gebruikt. De geheugeninterface-eenheid 1401 verschaft tevens multiplexing/demultiplexing tussen de invoer/uitvoer (1/0) vein het geheugen 1302 en de invoer/uit-30 voer van het filter 1303·
In aemvulling op de vereiste geheugen-bandbreedte voor de filtering kan er een aanvullende bandbreedte nodig zijn voor de invoer van de pixels in het geheugen 1302 en de uitvoer van de coëfficiënten naar het contextmodel. Als pixels in rasterorde worden ingevoerd kan een 35 aanvullend geheugen vereist zijn voor de bandbuffer.
Als een geheugen veelvoudige elementen (pixels of coëfficiënten) per lokatie opslaat, in plaats van horizontaal of verticaal aangrenzende elementen in een rij of kolom op te slaan, kan dit de hoeveel 1001247 58 heid geheugentoegangen en tussentijdse opslag reduceren die nodig is als elementen in een NxN-blok, wanneer N een tweede macht is, dezelfde lokatie delen. Dit maakt een gelijk gemak voor verticale en horizonta-le toegangen mogelijk.
5 Veelvoudige geheugenbanken kunnen eveneens worden geïmplementeerd zodat zowel horizontale als verticale toegang evenveel voordeel van veelvoudige banken kunnen hebben, zoals in figuur 15 is getoond. Voor het geval van twee banken kan een bank-selecteerbit die wordt geleverd voor het selecteren van een van de banken in een uitvoeringsvorm world) den gevormd door de exclusief OF-vorming van de onderste zijbanden van de horizontale en verticale coördinaten. Voor het geval van vier banken kunnen de tweebank-selecteerbits worden gevormd door het optellen (module U met een 2-bits opteller) van de twee onderste zijbanden van de horizontale en verticale coördinaten).
15 Figuur 16 illustreert het ééndoorgang-bedrijf voor een twee- niveau-decompositie-implementatie door de filterbesturingseenheid 1301 (figuur 13)· Merk op dat voor illustratieve doeleinden eerst een twee-niveau-beschrijving zal worden gegeven om de algemene techniek van de onderhavige uitvinding te illustreren. In andere uitvoeringsvormen 20 worden drieniveau-, vierniveau-, of hogere-niveau-decomposities gebruikt. Een tweeniveau-decompositie heeft 16 coëfficiënten per boom en vereist een berekening met 16 ingangspixels die niet tevoren zijn gebruikt. De filtering voor een boom coëfficiënten wordt uitgevoerd in 16 of minder tijdseenheden om overeen te komen met de invoer- en uit-25 voersnelheid. Voor dit voorbeeld worden twee parallel werkende filters gebruikt voor het bereiken van de gewenste doorgang van twee filterbe-werkingen per tijdseenheid. Voor elke ruimtelijke lokatie waar de voorflank van een filter wordt toegevoerd, toont figuur 16 een nummer dat de tijd aanduidt waarop elke filterbewerking wordt uitgevoerd.
30 Aangezien de volgorde van de filtering wordt bepaald door de voorflank van het filter, genereert de filtering niet alle coëfficiënten van de ene boom voordat coëfficiënten van de volgende boom worden gegenereerd. De filtering van de kinderen van de boom vindt plaats vóór de filtering van de ouders, en laagdoorlaatfiltering wordt 35 uitgevoerd vóór de overeenkomstige hoogdoorlaatfiltering. De filtering werkt op A-groep-coëfficiënten die hetzelfde aantal coëfficiënten van een type heeft dat een boom heeft.
De horizontale filtering van niveau 1 wordt uitgevoerd gedurende 1001247 59 de tijd O tot en met 7 en de resultaten worden opgeslagen in een tijdelijk buffer (elke ruimtelijke lokatie leidt tot twee coëfficiënten). Gedurende de tijd 2 tot en met 9 wordt een verticale filtering uitge-voerd (met gebruikmaking van het tweede filter) op data in het buffer 5 en data van voorafgaande horizontale filtering van het geheugen (tweemaal per ruimtelijke lokatie). De verticale filtering kan beginnen zodra de tweede horizontale filteringsbewerking voltooid is. De HH-, HL- en LH-coëfficiënten zijn klaar voor uitvoer naar het contextmodel (op de geschikte tijd). De LL-coëfficiënten worden in het volgende 10 niveau gebruikt.
Met slechts twee filters kan de horizontale filtering van het niveau 0 nul pas beginnen op tijd 8 wanneer de horizontale filtering van niveau 1 voltooid is, waardoor een filter beschikbaar komt. De horizontale filtering van niveau 0 kan pas eindigen op tijd 10, één 15 cyclus nadat de verticale filtering van niveau 0 voltooid is, waardoor alle vereiste data worden verschaft. Vervolgens kan gedurende de tijd 11 en 12 de verticale filtering van het niveau 1 plaatsvinden.
De hieronder weergegeven tabel 1 vat het bedrijf van elk filter gedurende elke tijdseenheid samen. Het formaat van de ingangen is 20 niveaunummer, horizontaal of verticaal ("H" of "V") en de ruimtelijke lokatie van de voorflank. De ingangssignalen van verticale-filterings-bewerkingen zijn geïdentificeerd ofwel als laagdoorlaatfilter ofwel als hoogdoorlaatfilter met een onder-index "L" of "H". Merk op dat het niet noodzakelijk is om het ene filter toe te wijzen voor het uitvoe-25 ren van horizontale filtering en het andere voor het uitvoeren van verticale filtering, aangezien beide filters identiek zijn.
1 00 1 247 6θ
Tabel 1 ' TiJd 1 Filter 1 Filter 2 5 _I 1H(0,Q)_ (werkeloos) i_[lH(0,l)___ 1_|1H(2,0) 1VL(0>0) 3 n 1H(2,1) IVh(O.O) ίο I : i_ 111(0,2) 1VL(0,2) 5 _ lH(O^) 1VH(2,0) 6 _ 1H(2,2) 1VL(0,2) 15 1_ 1H(2^) 1Vh(0,2) 1_ 0H(0,0) 1VL(2,2) _9_ (werkeloos) 1Vh(2,2) 10 0H(0,1) (werkeloos) 20 ' π_ 0Vl(0,0) J2_ ovh(o,Q) 13 (werkeloos) 25 14 (werkeloos) _15___
Terwijl de horizontale filtering van niveau 1 opnieuw kan beginnen voor de volgende groep ingangspixels op tijd 11, zou dit ertoe 30 leiden dat het filter sneller dan de invoer- en uitvoersnelheid werkt. In plaats daarvan zullen in de onderhavige uitvinding de filters werkeloos zijn en de volgende groep zal gestart worden op tijd 16. Werkeloze filtercycli kunnen worden gebruikt voor geheugenoverdrachten. In plaats van aan het eind van de filtering voor elke groep plaats te 35 vinden, kunnen de werkeloze cycli indien gewenst over de filteringscy-cli worden verdeeld.
Met het oog op de uiteenzetting van het geval van twee niveaus, is het geval van drie niveaus getoond in tabel 2. Reeksen van twee of 1 0 0 1 2 4 7 -5 61 vier tijdseenheden zijn gebruikt voor het overdragen van de informatie naar één pagina, waardoor deze gemakkelijker te lezen is.
Tabel 2
Tijd Filter 1 Filter 2 _ 0-3 2H(0,0), 2H(0,1), 2H(2,0) 2H(2,1) 2VL<0,0), 2VH(0.0) 10 ±7_ 2H(4,0), 2H(4,1), 2H(6,0) 2H(6,1) 2VL(2,0), 2VH(2,0), 2VL(4,0), 2VH(4,0) 8-11 2H(0,2), 2H(0,3), 2H(2,2) 2H(2,3) 2VL(6,0)< 2VH(6,0), 271.(0,2), 2VH(0,2) 12-15 2H(4,2), 2H(4,3), 2H(6,2) 2H(6,3) 2VL(2,2), 2VH(2.2). 2Vi (4,2), 2VH(4,2) 16-19 2H(0,4), 211(0,5), 2H(2,4) 2H(2,5) 2VL(6,2), 2VH(6,2), 2VL(0,4), 2Vh(0,4) 15 ' 20-23 2H(4,4), 2H(4,5), 2H(6,4) 2H(6,5) 2VL(2,4), 2VH(2,4), 2VL(4,4), 2Vh(4,4) 24-27 2H(0,6), 211(0,7), 2H(2,6) 2H(2,7) 2VL(6,4), 2VH(6,4), 2Vi .(0,6), 2VH(0,6) 28-31 2H(4,6), 2H(4,7)y 2H(6<6) 2H(6,7) 2VL(2,6), 2VH(2,6), 2VT (4,6), 2VH(4,6) 20 32-35 1H(0,0), 1H(0,1), 1H(2,0) 1H(2,1) 2VL(6,6), 2VH(6,6), 1VL(0,0), 1VH(0,0) 36-39 1H(0,2), 1H(0,3), 1H(2,2) 1H(2,3) 1VL(2.0), 1VH(2,0), 1Vi(0,2), 1Vh(0,2) 40-43__ΟΗίΟ,Ο/νη^ΜΟΗ^Ι), 1Vl(2,2), lVH(2'2),(«tetoBiL0V| (0,0), 44-47 2Vh(0,0), (kerielccB), (verteld»), (verteld») 25 48-51 52-55 (verteld*) (verteld*) 56-59 30 60-63 ' ___ 35 Tabel 3 illustreert het geval met vier niveaus. Aangezien er nu 256 tijdseenheden per groep coëfficiënten zijn, is eenvoudigheidshalve alleen het niveau en de richting van de filtering getoond.
1001247 62
Tabel 3
Tijd Filter 1 ^ 5 0-1 Niveau 3 Horizontaal (werkeloos) 2*127 Niveau 3 Horizontaal Niveau 3 Vertikaal 128-129 Niveau 2 Horizontaal Niveau 3 Vertikaal 130-159 Niveau 2 Horizontaal Niveau 2 Vertikaal 10---- I6O-I6I Niveau 1 Horizontaal Niveau 2 Vertikaal 162-167 Niveau 1 Horizontaal Niveau 1 Vertikaal 168 Niveau 0 Horizontaal Niveau 1 Vertikaal 15 169 (werkeloos) Niveau 1 Vertikaal
170 Niveau 0 Horizontaal (werkeloos) I
171 (werkeloos) Niveau 0 Vertikaal 172 (werkeloos) Niveau 0 Vertikaal 20---- 173*255 (werkeloos) (werkeloos)
De uitgangssignalen van de filtering en het geheugensubsysteem 25 van de onderhavige uitvinding zijn een serie coëfficiënten die in de onderhavige uitvinding een ingebedde bitsignificantie-codering ondergaan.
B. Het contextmodel voor het ééndoorgang-systeem 30
In een uitvoeringsvorm van de onderhavige uitvinding, het ingebedde bitsignificantie-contextmodel voor het ééndoorgang-systeem, wordt elke boom verwerkt in vier gedeelten. De wortel van de boom, de LL-coëfficiënt van het hoogste niveau, wordt gecodeerd door horizon-35 volgorde-ééndoorgangcodering. De drie subbomen die aan elke wortel met drie kinderen beginnen, de HH-, HL- en LH-coëfficiënten van het hoogste niveau, worden verwerkt met zowel gemeenschappelijke ruimte/fre-quentie-ééndoorgangmodellering en frequentie-gebaseerde ééndoorgang- 1001247 63 modellering. De coëfficiënten worden zodanig gecodeerd dat gecodeerde data uitgevoerd kunnen worden voorafgaand aan het ingebedde bitsigni-ficantie-contextmodel dat op alle data werkt.
- «· 5 Eéndoorgang-sienificantieboom
Het nulboom-contextmodel kan niet worden gebruikt in het ééndoor-gang-systeem. Het nulboomsysteem vereist een lijst (of veelvoudige lijsten) die elke coëfficiënt bevat en de nulboom maakt veelvoudige doorgangen door de lijst(en). Een alternatief frequentie-gebaseerd 10 model, ééndoorgang-significantieboom, vereist geen lijst die alle coëfficiënten omvat. Een ander verschil tussen ééndoorgang-significantieboom en nulboom is dat de significantieboom alle kinderen verwerkt voordat hun ouders worden verwerkt wanneer beslissingen worden gegenereerd, in tegenstelling tot de nulboom, die ouders eerst verwerkt.
15 Het contextmodel van de onderhavige uitvinding is getoond in blokschema in figuur 17. Het contextmodel 1700 omvat twee verwerkings-eenheden, de teken/grootte-eenheid 109 (figuur IA) en de significan-tie-eenheid 1702. Het contextmodel 1700 gebruikt tevens twee geheugens (met geheugenbesturingslogica), een grootte-geheugen 1701 en een boom-20 geheugen 1703. Elk van deze twee geheugeneenheden kan met veelvoudige opslaggebieden worden geïmplementeerd om tijdens hogesnelheidsbedrijf een alternerend gebruik mogelijk te maken (dat wil zeggen terwijl data in het ene wordt geschreven, wordt het andere gelezen of geleegd).
Het grootte-geheugen 1701 herordent coëfficiënten in de boom in 25 een volgorde gebaseerd op significantie, zoals een volgorde gebaseerd op hun grootte. Dit wordt bewerkstelligd door het handhaven van een wachtrij voor elke mogelijke grootte. De significantie-eenheid 1702 ontvangt coëfficiënten in volgorde van significantie (bijvoorbeeld grootte) en genereert beslissingen voor een codeerinrichting die de A-30 doorgang-algoritme hanteert. Het boomgeheugen 1703 is met de significantie-eenheid 1702 gekoppeld en elimineert nulbomen na alle nullen.
De volgende discussie gaat ervan uit dat de coëfficiënten l8-bits zijn en dat de ingangsdata een vierniveau-decompositie hebben ondergaan.
35 Een uitvoeringsvorm van de teken/grootte-eenheid 109 is getoond in figuur 18 en zet ingangscoëfficiënten om in een teken/grootte-formaat. De teken/grootte-eenheid 109 wordt gekoppeld om 18 bits van de coëfficiënten te ontvangen en omvat een inverter l801, een multiplexer 100124¾ 64 (MUX) 1802, een prioriteits-codeerinrichting I803 en een teller 1804. De teken/grootte-eenheid 109 voert een significantie-aanduiding uit (bijvoorbeeld een 5-bit waarde), de mantisse van de ingangscoëfficiënt (bijvoorbeeld 17 bits), het teken van de ingangscoëfficiënt 1 bit en 5 een index van de teller 1804 (bijvoorbeeld 7 bits).
MUX l802 is gekoppeld om 17 bits van de coëfficiënt te ontvangen die direct in de teken/grootte-eenheid 109 is ingevoerd en een geïnverteerde versie van de 17 bits van de tweecomplement-inrichting l801. Gebaseerd op de tekenbit (coëfficiëntbit 17) die is ontvangen 10 aan de selectie-ingang van de MUX 1802 wordt van de twee ingangssignalen het positieve ingangssignaal uitgevoerd als de mantisse.
De teken/grootte-eenheid 109 maakt gebruikt van een prioriteits-codeerinrichting l803 om de eerste significante bit van elke coëfficiënt te bepalen. Gebaseerd op de eerste significante bit van elke 15 coëfficiënt kan een significantie-niveau bij de coëfficiënt behoren.
De teller l804 wordt gebruikt om een index aan het huidige boom-element toe te wijzen. Voor een vierniveau-decompositie varieert de index van 0 tot 84 (omdat 1 * 4 ♦ 16 + 64 = 85, het aantal elementen in een subboom). De ingangscoëfficiënten bevinden zich in boomvolgor-20 de, waarbij er in dit voorbeeld van uit wordt gegaan dat ouders eerst komen, en kinderen het laatst. De coëfficiënten zijn van verschillende decompositieniveaus, zoals in tabel 4 voor de coëfficiënten in volgorde is getoond.
25 Tabel 4
Niveau Coëfficiënt-index _0_ 0_ 30 l_ 1,22,43,64__ 2 _ 2,7,12,17,23,28,33,38,44,49,54,59,65,70,75,80_ 3 3...6,8...11,13...16,18...21,24...27,29...32,34...37,39...42, _ 45...48,50...53,55...58,60...63, 66...69, 71...74,76...79,81...84 35 1001247 65
Figuur 19 is een uitvoeringsvorm van het blokschema van het grootte-geheugen 1701. Een teller en een geheugen behoren bij elk mogelijk significantieniveau (behalve dat er niets nodig is voor nul-coëfficiënten die niet gecodeerd hoeven te worden). De teller 1916 en 5 het geheugen 1936 behoren bijvoorbeeld bij significantieniveau 17. In een uitvoeringsvorm zijn er zestien significantieniveaus. Daarom zijn er zeventien tellers en zeventien bijbehorende geheugens.
In een uitvoeringsvorm moet elk geheugen 85 lokaties hebben, voor elke mogelijke coëfficiënt in een subboom (aangezien elke subboom 85 10 coëfficiënten omvat), maar de geheugengrootte kan gemakshalve naar boven worden afgerond tot een tweede macht, zoals 128. Elke geheu-geningang kan een tekenbit omvatten, een 7~bit index en N grootte-bits, waarbij N het significante niveau is. Als het gebruik van een geheugen met vaste breedte is gewenst, kunnen ingangen voor signifi-15 cant 16 en 0, 15 en 1 enzovoorts worden gecombineerd, zodat elk woord twee ingangen heeft van totaal 32 bits. Natuurlijk moet met een oneven aantal signficantieniveaus één woord slechts één ingang omvatten, wat in dit voorbeeld niveau 7 is.
Teken-, index- en mantissewaarden die van de teken/grootte-een-20 heid 109 zijn ontvangen worden naar het geschikte geheugen geschreven op het adres dat door de teller van het bijbehorende geheugen is verschaft. De bijbehorende teller wordt dan geïncrementeerd zodat de volgende coëfficiënt op dat significantieniveau in de volgende lokatie kan worden opgeslagen.
25 Het geheugen wordt uit elk van de geheugens 1920-1926 in dalende significantie-volgorde uitgelezen. Het uitgangssignaal van elke coëfficiënt omvat zijn mantisse, teken en indexuitgang. Als de teller voor het hoogste significantieniveau (bijvoorbeeld niveau 16) niet gelijk aan nul is, wordt deze gedecrementeerd en het geheugen wordt op 30 dat adres gelezen. Dit wordt herhaald totdat de tellerwaarde nul is. Dan wordt het volgende significantieniveau (bijvoorbeeld niveau 15) beschouwd. Elk significantieniveau wordt om de beurt beschouwd totdat alle tellers tot nul zijn gedecrementeerd en alle geheugens zijn geleegd .
35 In een waretijd-systeem kan het gewenst zijn om twee teller- en geheugenbanken te gebruiken, zodat de ene bank kan worden gebruikt voor invoer terwijl de andere wordt gebruikt voor uitvoer.
De tellers adresseren hun bijbehorende geheugen op zodanige wijze 1 0 0 1 2 4 7 66 dat een LIFO (last in, first out) wordt geïmplementeerd. Een LIFO is de correcte volgorde wanneer subbomen worden ingevoerd in de volgorde van ouders eerst. Alternatief zou, als subbomen ingevoerd zouden wor-den met het kind eerst, het bedrijf van de tellers zodanig veranderd 5 kunnen worden dat een FIFO (first in, first out) wordt geïmplementeerd .
Figuur 20 is een blokschema van een uitvoeringsvorm van de signi-ficantie-eenheid 1702. Met verwijzing naar figuur 20 wordt de index-teller 2001 gebruikt om door elke coëfficiënt in een subboom te lopen, 10 kinderen eerst. In een uitvoeringsvorm is de indexteller 2001 geïniti-aliseerd op 84 en telt omlaag tot nul. De significantieteller 2004 begint op het maximum significantieniveau (bijvoorbeeld 16 in het voorbeeld) en telt omlaag elke keer dat de indexteller 84 een cyclus voltooit (keert terug naar 84), zodat de significantieteller 2004 het 15 bitniveau volgt. Het niveau van een specifieke index wordt bepaald door logica (index tot niveau 2003) die de functie uitvoert die hierboven in tabel 4 is getoond.
De grootte-geheugeneenheid 1701 verschaft een index, grootte en teken van de volgende coëfficiënt in het geheugen dat is geactiveerd 20 door het uitgangssignaal van de significantieteller 2004. Als de in-dexinvoer van het geheugen hetzelfde is als de indexuitvoer van de indexteller 2001 bevestigt de equivalentie-logica 2002 de niet-nul-uitgangsaanduiding. De niet-nul-uitgangsaanduiding geeft aan dat het grootte-geheugen de volgende index enzovoorts zou moeten verschaffen 25 bij de volgende cyclus. Als er geen overeenstemming is, wordt een niet-overeenstemmings-aanduiding gezonden aan de discussie-generator 2008.
In een uitvoeringsvorm worden drie flip-flops, getoond als vlag 0 (2005), vlag 1 (2006) en vlag 2 (2007) gebruikt om op de hoogte te 30 blijven van niet-nul-data en zijn toegewezen aan decompositie-niveaus 0 respectievelijk 1 respectievelijk 2. Merk op dat het vereiste aantal flip-flops één minder dan het aantal decompositie-niveaus is. De flipflops 2005*2007 worden eerst opgeschoond. Wanneer het niet-nul-signaal van de equivalentie-logica 202 is bevestigd, worden alle flip-flops in 35 de flip-flops 2005*2007 die behoorden bij een niveau lager dan het huidige niveau ingesteld. De flip-flop die bij het huidige niveau behoort wordt opgeschoond. Het niveau wordt verschaft door index-tot-niveau-logica 2003, die het niveau verschaft als reactie op de index 1001247 67 die door de indexteller 2001 is verschaft.
"Gecodeerde" vlaggen zijn opgeslagen (in sommige uitvoeringsvormen een registerbestand), één bit voor elke index. Terwijl het niet-nul-signaal wordt gehandhaafd wordt de bit die bij de momentane index-5 tellerwaarde in de gecodeerde-vlag-opslagplaats behoort ingesteld. Anders, als de significantietellerwaarde de maximum waarde is, wordt de bijbehorende bit opgeschoond. Anders blijft de waarde van de bit onveranderd. Het reeds gecodeerde uitgangssignaal van de gecodeerde-vlag-opslagplaats is hetzelfde als de nieuwe waarde van de bit die bij 10 de momentane index behoort. Merk op dat in een alternatieve uitvoeringsvorm de gecodeerde vlaggen niet worden gebruikt en het reeds gecodeerde signaal nooit wordt gebruikt.
In een uitvoeringsvorm bepaalt de beslissingsgenerator 2008 wanneer het momentane niveau 3 is en het voorafgaande niveau dit niet 15 was. In reactie op deze bepaling bevestigt de beslissingsgenerator 2008 het startuitgangssignaal en het startniveau-uitgangssignaal is het voorafgaande niveau. Als het niet-nul-signaal is bevestigd, geeft de beslissingsgenerator 2008 een beslissing als "significant" af en geeft tevens het teken (00,01) en de mantisse af. Anders, als het 20 reeds gecodeerde ingangssignaal is bevestigd, wordt er geen beslissing uitgevoerd. Anders, als de vlag-flip-flop die aan het momentane niveau is toegewezen is ingesteld, voert de beslissingsgenerator 2008 de beslissing als "insignificant, met significante kinderen" (10) uit. Anders voert de beslissingsgenerator 2008 de beslissing als "insigni-25 ficant, en kinderen insignificant" (11) uit en bevestigt het geheel-nul-signaal.
Merk op dat om zowel de frequentie-gebaseerde modellering als horizon-ééndoorgang-gemeenschappelijke-ruimte/frequentie-modellering te implementeren, de volgende verandering wordt bewerkstelligd aan de 30 significantie-eenheid 2000. De significantieteller 2004 wordt met een drempel vergeleken, en het geheel-nul-uitgangssignaal wordt alleen bevestigd als de tellerwaarde groter dan de drempel is.
In een uitvoeringsvorm is het significantiecategorie-ingangssig-naal naar het boomgeheugen 1703 (getoond in figuur 21 en hieronder 35 beschreven) het uitgangssignaal van de significantieteller 2004. In deze uitvoeringsvorm van het contextmodel (bijvoorbeeld ingebedde bitsignificantie-eenheid) is de significantiecategorie gebaseerd op het aantal bitniveaus, en zijn er 17 verschillende significantiecate- 1 0 0 1 2 4 7 68 gorieën. Dit is een willekeurige keuze. In een andere uitvoeringsvorm kunnen bitniveaus worden gecombineerd om minder significantiecatego-rieën tot stand te brengen. Ook kan er niveau-informatie aan bitni-veau-informatie worden toegevoegd om meer significantieniveaus tot 5 stand te brengen. Meer significantiecategorieën kunnen een betere met verlies gepaard gaande compressie verschaffen terwijl minder significantiecategorieën de hardware-complexiteit kunnen reduceren.
Figuur 21 is een blokschema van een uitvoeringsvorm van de boom-geheugen-eenheid van de onderhavige uitvinding. Met verwijzing naar 10 figuur 21 heeft het geheugen 2101 voldoende ruimte voor het opslaan van een beslissing en een significantie-aanduiding voor elke mogelijke beslissing. In een uitvoeringsvorm is, voor een vier-niveau-decomposi-tie met zeventien significantieniveaus, het aantal lokaties in het geheugen 2101 gelijk aan 85 x 17 * IM5.
15 Om toegang te krijgen tot het geheugen 2101 worden adressen gege nereerd. De teller 2102 is aanvankelijk nul. Wanneer de beslissingsge-nerator 2008 niet het geheel-nul-ingangssignaal bevestigt wordt de waarde in de teller 2102 gebruikt om het geheugen te adresseren. Als de beslissingsgenerator 2008 het startingangssignaal bevestigt, wordt 20 de momentane waarde van de teller 2102 opgeslagen in een van de registers 2110-2112 overeenkomstig het startniveau, dat dient als een se-lectie-mechanisme. De teller 2102 wordt dan geïncrementeerd.
Wanneer de beslissingsgenerator 2008 het geheel-nul-ingangssignaal bevestigt wordt de waarde in het register (bijvoorbeeld 2110, 25 2111, 2112) dat door het niveau-ingangssignaal is geselecteerd ge bruikt om het geheugen 2101 te adresseren en deze waarde plus één wordt in de teller 2102 geladen. Dit leidt ertoe dat de geheugenloka-ties die voor insignificante kinderen van een insignificante ouder worden gebruikt worden genegeerd.
30 Tijdens het geheugenuitgangssignaal wordt de teller 2102 gedecre- menteerd om het adres van de lokatie uit te voeren. Het uitvoeren (en decrementeren) stopt wanneer de teller 2102 nul bereikt. De uitvoer van het boomgeheugen 2100 wordt ontvangen door een entropie-codeerin-richting die de beslissing correct op de gespecificeerde significantie 35 codeert.
Voor waretijd-bedrijf kunnen twee boomgeheugen-eenheden worden gebruikt zodat de ene wordt gebruikt voor invoer terwijl de andere wordt gebruikt voor uitvoer.
1001247 69
Coëfficiënt-uitrichting
In een uitvoeringsvorm van de onderhavige uitvinding gebruikt het nulboom-contextmodel een ongenormaliseerd 1 + Z'1 laagdoorlaatfilter. Het nulboom-contextmodel kan echter ook worden gebruikt met genormali- * 5 seerde filters, zoals <2
Om genormaliseerde filters te gebruiken kan een uitrichtingseen-10 heid, zoals de uitrichtingseenheid 2200 in figuur 22 tussen het voorwaartse minigolf-filter 1000 en het contextmodel 105. worden gebruikt om de verkregen (of alternatief, verloren) energie van het ongenormaliseerde filter te compenseren, wat de compressie verbetert. Omdat uitrichting een niet-uniforme kwantisering voor met verlies gepaard 15 gaand bedrijf mogelijk maakt, kan de uitrichting de visuele kwaliteit van met verlies gepaard gaande beeldreconstructies verbeteren. In het eendimensionale geval zouden coëfficiënten van elk niveau van de boom een verschillende uitrichting hebben (delers = /2, 2, 2/2, 4, vermenigvuldigers = 2/2, 2, /2, 1). In het tweedimensionale geval zouden de 20 delers 2, 4, 8, 16 en de vermenigvuldigers 8, 4, 2, 1 zijn.
Aangezien de uitrichting alleen voor het groeperen van soortgelijke binaire beslissingen voor het coderen is, is het gebruik van de exacte normalisatie niet kritisch. De uitrichting moet tijdens de decodering worden geïnverteerd, zodat zowel vermenigvuldiging als 25 deling vereist zijn. Het gebruik van factoren/delers die tweede machten zijn zou het mogelijk melken dat in plaats daarvan de hardware efficiënt wordt verschoven. Wanneer coëfficiënten worden vermenigvuldigd met een tweede macht hoeven de toegevoegde minder significante bits niet te worden gecodeerd.
30 In plaats van het beperken van de uitrichtingsfactoren/delers tot de tweede macht kan echter een approximatie zoals /2 1,5 of /2 « 2 + 1,5 met de volgende werkwijze worden gebruikt. In plaats van vermenig-vuldigings/delings-coëfficiënten door de factor/deler zouden in plaats daarvan alleen de "significante" coëfficiënten door de factor/deler 35 worden geschaald. De teken/grootte-eenheid kan worden gemodificeerd zoals getoond in figuur 23 om een "1,5"-prioriteits-codeerinrichting 23OI te omvatten die ofwel de positie van ofwel (1) de meest significante "1" bit als de volgende meest significante bit ook "1" is, of 1001247 5 70 anders (2) de positie die minder is dan de positie van de meest significante "1" bit. Een waarheidstabel voor een "1,5"-prioriteits-codeer-inrichting voor drie lngangsbits is getoond in tabel 5.
- ^
Tabel 5
Ingangssigraal (Binair) Ditga^sienaal 001 · 0 10--— 010_0_ 011_ 1_ 100_ 1_ 15 JOl_ 1_ 110_ 2_ 111__[2_, 20
Afhankelijk van het niveau van de coëfficiënt dat door de huidige indexwaarde is aangeduid selecteert een multiplexer 2302 de significantie van ofwel de standaard prioriteits-codeerinrichting ofwel de "1,5"~prioriteits-codeerinrichting. Wanneer de "1,5"-uitrichting wordt 25 gebruikt, omvat de mantisse N+l bits, waarbij N de significantiewaarde is. Anders omvat de mantisse N bits.
Een uitrichtingseenheid 2200 die een twee-ingangs-multiplexer omvat die werkt als verschuiver kan de uitrichting door 1 of 2 imple men teren. Wanneer dit wordt gecombineerd met de uitrichting van 1,5 30 die door de teken/grootte-eenheid is verschaft maakt uitrichtingen van 1, 1,5· 2 of 3 mogelijk, wat een goede approximatie van de gewenste vermenigvuldigers voor eendimensionale signalen is aangezien de getallen eenvoudiger zijn (bijvoorbeeld tweede machten). (Voor tweedimensionale signalen zoals beelden zijn de getallen eenvoudiger). Tijdens 35 het decoderen is de N+2de bit van de mantisse (die niet is gecodeerd) het complement van de N+lde bit wanneer de "1,5"~prioriteits-codeerin-richting is gebruikt.
De coëfficiënt-uitrichting kan worden gebruikt voor het afstemmen 1001247 71 van de nulboom en voor fijnere en niet-uniforme kwantisering. In het geval van beelden (tweedimensionale signalen) richt een uitvoeringsvorm van de RTS-transformatie de coëfficiënten uit door de frequentie-band te vermenigvuldigen met de getallen die in figuur 31 zijn afge-5 beeld. Het vermenigvuldigen van deze getallen leidt ertoe dat de RTS-transformatie een zeer dichte approximatie van de exacte reconstruc-tie-minigolven van de TS-transformaties is.
De entropie-codeerinrichting moet rekening houden met het uit-richtingsproces om efficiënt te zijn.
10
Freauentie-gebaseerde contextmodellen door fractionele bitniveaus
Een alternatieve werkwijze voor frequentie-gebaseerde modellering maakt gebruikt van fractionele bitniveaus of fractionele significan-tiebits. Een uitvoeringsvorm hiervan is het tweemaal verwerken van elk 15 bitniveau, zodat de doorgangen een Al-doorgang, een Bl-doorgang, een A0-doorgang en een BO-doorgang omvatten. Merk op dat de namen van de doorgangen zijn gekozen omdat de Al-doorgang coëfficiënten verwerkt die met "11" beginnen en de AO-doorgang coëfficiënten verwerkt die met "10" beginnen.
20 Gedurende de Al-doorgang voor bitniveau S is een coëfficiënt in de A-groep alleen significant als beide bits S en S-l niet gelijk aan nul zijn. Tijdens de A2-doorgang is een coëfficiënt in de A-groep significant als de bit S niet gelijk aan nul is. Aangezien de twee meest significante bits bekend zijn, hoeven de Bl-doorgang en de B0-25 doorgang alleen S-l bits te verwerken (aangenomen dat S=0 het minst significante bitniveau is).
Aangezien alternerende fractionele bitniveaus met een factor van 1,5 of 2/1,5 verschillen, kan de uitrichting voor verschillende niveaus worden bereikt door de gewenste fractionele bitniveaus voor elk 30 niveau te groeperen.
Fractionele bitniveaus leiden tot fijnere modellering van de data door de ouder/kind-verhouding die door het frequentie-gebaseerde con-textmodel wordt gebruikt. Meer dan twee doorgangen, bijvoorbeeld vier of acht doorgangen zouden gebruikt kunnen worden voor nog fijnere 35 modellering. In het geval van vier doorgangen zou de All-doorgang bijvoorbeeld coëfficiënten verwerken die met "111" begonnen. De andere doorgangen zouden "110", "101" en "100" verwerken. Een minder fijne modellering zou eveneens gebruikt kunnen worden. Er zou bijvoorbeeld 1001247 72 alleen een doorgang gemaakt kunnen worden voor elk ander bitniveau. In het geval van een minder fijne modellering worden meer bits gecodeerd door de B-groep.
- * 5 Codeerinrichting en geheugen/kanaal-beheer voor ééndoorgang-svsteem - Het geheugenbeheer voor gecodeerde data in het ééndoorgang-systeem is verschaft voor systemen die alle data in het geheugen opslaan en voor systemen die data in een kanaal overdragen. In het ééndoor-gang-systeem moeten de gecodeerde data zodanig worden opgeslagen dat 10 er op ingebedde causale wijze toegang tot kan worden verkregen, zodat minder significante data weggegooid kunnen worden zonder meer significante data te verliezen. Aangezien gecodeerde data een variabele lengte hebben, kan een dynamische geheugentoewijzing worden gebruikt.
In een uitvoeringsvorm van de onderhavige uitvinding gebruikt het 15 ingebedde codeersysteem 18 bitniveaus en wijst derhalve 18 significan-tieniveaus aan de data toe. De codeerinrichting in een ééndoorgang-systeem moet "causaal ingebed" zijn. Dat wil zeggen, de decoderings-gebeurtenissen die overeenkomen met een bitniveau vereisen geen informatie van bitniveaus van lagere orde. In het geval van een ééndoorgang 20 zullen typisch genomen alle bits van een boom worden gecodeerd voordat een van de bits in de volgende boom worden gecodeerd, zodat bits van verschillende significantie niet worden gescheiden. Voor codeerinrich-tingen die geen interne toestand gebruiken, zoals Huffman-codeerin-richtingen, is dit geen probleem. Veel geavanceerde compressoren met 25 een betere compressie gebruiken echter de interne toestand.
Een manier om dit probleem voor deze codeerinrichtingen op te lossen is het gebruik van achttien verschillende codeerinrichtingen, misschien achttien Q-codeerinrichtingchips. Een techniek die het gebruik van negen Q-codeerinrichtingchips mogelijk zou maken is beschre-30 ven in US-octrooi no. 5·097·26ΐ (Langdon, Jr.), getiteld "Data Compression for Recording on a Record Medium," gepubliceerd op 17 maart 1992. Als betere manier wordt gebruik gemaakt van een van een pijpleiding voorziene codeerinrichting om verschillende virtuele codes met één enkele fysieke codeerinrichting te implementeren, zoals die is 35 beschreven in US-octrooiaanvrage serieno. 08/016.035. getiteld "Method and Apparatus for Parallel Decoding and Encoding of Data", aangevraagd op 10 februari 1993· 1° een dergelijke codeerinrichting worden de veelvoudige-bit-generatortoestanden voor elke mogelijkheid aan een 1001247 73 gedeelte van de data toegewezen. Elk van achttien toestanden zou bijvoorbeeld aan een specifiek bitniveau voor achttien bitdata kunnen worden toegewezen. Registers in de verschuiver in de codeerinrichting worden eveneens toegewezen aan elk gedeelte van de data. In de codeer-5 inrichting wordt er geen in-elkaar-schuiving uitgevoerd; elk gedeelte van de data wordt eenvoudigweg bit-gecomprimeerd.
In uitvoeringsvormen met ofwel veelvoudige fysieke ofwel virtuele codeerinrichtingen wordt er geheugen tóegewezen aan elk gedeelte van de data. Wanneer de compressie is voltooid, is een gekoppelde lijst 10 die het toegewezen geheugen plus de inhoud van het toegewezen geheugen het resultaat.
Als het geheugen overloopt leidt de geheugentoewijzings-routering ertoe dat belangrijkere data minder belangrijke data overschrijven. De minst significante bit van numerieke data kan bijvoorbeeld het eerst 15 worden overschreven. De informatie die beschrijft hoe geheugen wordt toegewezen moet in aanvulling op de gecodeerde data worden toegewezen.
Figuur 2k toont een bij wijze van voorbeeld gegeven dynamische geheugen-toewijzingseenheid voor drie significantie-categorieën. Er zijn slechts drie categorieën beschreven om te vermijden dat de onder-20 havige uitvinding onduidelijk wordt; kenmerkend zal een groter aantal categorieën, zoals 8, 16 of 18, worden gebruikt. Een registerbestand (of andere opslagplaats) houdt een wijzer voor elke significantie-categorie plus een andere wijzer voor het aanduiden van de volgende vrije geheugenlokatie. Het geheugen is verdeeld in pagina's van vaste 25 grootte.
In het begin wijst elke wijzer die aan een significantie-catego-rie is toegewezen naar de start van een geheugenpagina en de vrije wijzer wijst naar de volgende beschikbare geheugenpagina. Gecodeerde data, die zijn geïdentificeerd met een significantie-categorie, worden 30 opgeslagen op de geheugenlokatie die is geadresseerd door de overeenkomstige wijzer. De wijzer wordt dan geïncrementeerd tot de volgende geheugenlokatie.
Wanneer de wijzer het maximum voor de huidige pagina bereikt, wordt het adres van de start van de volgende vrije pagina die in de 35 vrije wijzer is opgeslagen opgeslagen met de huidige pagina als een koppeling. In een uitvoeringsvorm zou het gedeelte vein het gecodeerde datageheugen of een afzonderlijk geheugen of registerbestand voor dit doel gebruikt kunnen worden. Dan wordt de huidige wijzer ingesteld op 1001247 74 de volgende vrije pagina. De vrije wijzer wordt geïncrementeerd. Deze stappen leiden ertoe dat een nieuwe geheugenpagina wordt toegewezen aan een bepaalde significantie-categorie en verschaft koppelingen met -¾ geheugenpagina's die data voor een gemeenschappelijke significantie-5 categorie omvatten, zodat de volgorde van de toewijzing tijdens het decoderen kan worden bepaald.
Wanneer alle pagina's in het geheugen in gebruik zijn en er meer data zijn die meer significant zijn dan de minst significante data in het geheugen, kan een geheugen-hertoewijzing worden uitgevoerd. Drie 10 van dergelijke hertoewijzings-technieken worden beschreven. In alle drie de gevallen wordt geheugen dat aan de minst significante data is toegewezen hertoegewezen aan meer significante data, en worden er geen minst significante data meer opgeslagen.
Eerst wordt de pagina die momentaan door de minst significante 15 data wordt gebruikt eenvoudigweg toegewezen aan de meer significante data. Aangezien de meeste typische entropie-codeerinrichtingen gebruik maken van interne-toestandsinformatie, gaan alle minst significante data die tevoren in die pagina zijn opgeslagen verloren.
Als tweede wordt de pagina die momentaan door de minst signifi-20 cante data wordt gebruikt toegewezen aan de meer significante data. In tegenstelling tot het vorige geval wordt de wijzer ingesteld op het einde van de pagina en terwijl meer significante data naar de pagina worden geschreven wordt de overeenkomstige wijzer gedecrementeerd. Dit heeft het voordeel dat de minst significante data aan het begin van de 25 pagina worden behouden als de meer significante data niet de gehele pagina nodig hebben.
Als derde kan, in plaats van dat de huidige pagina van minst significante data wordt hertoegewezen, elke willekeurige pagina van minst significante data worden hertoegewezen. Dit vereist dat de geco-30 deerde data voor alle pagina's onafhankelijk worden gecodeerd, wat de bereikte compressie kan reduceren. Dit vereist tevens dat de ongecodeerde data die overeenkomen met de start van alle pagina’s worden geïdentificeerd. Aangezien elke pagina van minst significante data kan worden weggegooid, is een grotere flexibiliteit in kwantisering be-35 schikbaar.
Het derde alternatief kan in het bijzonder aantrekkelijk zijn in een systeem dat een vaste compressiesnelheid over gebieden van het beeld bereikt. Een vastgesteld aantal geheugenpagina's kan aan een 1001247 75 gebied van het beeld worden toegewezen. Of minder significante data wel of niet worden behouden kan afhangen van de compressie die in een bepaald gebied is bereikt. Merk op dat het geheugen dat aan een gebied -« is toegewezen misschien niet volledig benut is als de verliesloze 5 compressie minder dan de hoeveelheid toegewezen geheugen nodig had. Het. bereiken van een vaste compressiesnelheid op een gebied van het beeld kan directe toegang tot de beeldgebieden ondersteunen.
Wanneer de compressie voltooid is, kan de data indien gewenst worden overgedragen naar een kanaal of opslaginrichting in de volgorde 10 van significantie. De diverse koppelingen en wijzers zouden dan niet langer nodig zijn en een multidoorgang-decodering zou kunnen worden uitgevoerd. Als alternatief kunnen voor de ééndoorgang-decodering de wijzers naar de data voor elke significantie worden behouden.
In sommige toepassingen hoeven sommige significantie-categorieën 15 niet te worden gebruikt. Een 16-bit compressor kan bijvoorbeeld worden gebruikt voor een 12-bit medisch beeld, zodat de significantie-categorieën die overeenkomen met bitniveaus 15·..12 ongebruikt zouden zijn. In implementaties met grote pagina's en veel ongebruikte significantie-categorieën zou dit tot geheugenverspilling leiden (wanneer het 20 systeem niet van te voren weet dat sommige categorieën niet gebruikt zijn), aangezien er geen geheugen aan hen hoeft te zijn toegewezen. Een andere oplossing voor deze geheugenverspilling zou het gebruik van een klein geheugen (of register) zijn om een telling voor elke signi-ficantie-categorie te houden. De telling zou het aantal "insignifi-25 cant, geen significante kinderen''-beslissingen bijhouden die optreden voordat willekeurige andere beslissingen plaatsvinden. Het geheugen dat nodig is om deze tellers op te slaan moet worden ingeruild tegen het geheugen dat door ongebruikte significantie-categorieën is gebruikt .
30 De mogelijkheid om vanuit beide einden data in elke pagina te schrijven kan worden gebruikt voor het beter benutten van de totale hoeveelheid geheugen die in het systeem beschikbaar is. Wanneer alle pagina's zijn toegewezen kan elke pagina die voldoende vrije ruimte aan het einde heeft worden toegewezen voor gebruik vanuit het einde. 35 De mogelijkheid om beide einden van een pagina te gebruiken moet worden afgewogen tegen de kosten van het bijhouden van de lokatie waar de twee typen data elkaar ontmoeten. Merk op dat dit verschillend is van het geval waarbij een van de datatypen niet significant was en eenvou- 1001247 76 dig overschreven zou kunnen worden.
Het gebruik van een kanaal
In een systeem waar data wordt overgedragen in een kanaal in - % 5 plaats van te worden opgeslagen in een geheugen en geheugenpagina's van vaste grootte worden gebruikt (maar slechts één pagina per signi-ficantie-categorie nodig is), wordt, wanneer een geheugenpagina vol is, deze overgedragen in het kanaal, en de geheugenlokatie kan worden hergebruikt zodra deze pagina's zijn overgedragen. In sommige toepas-10 singen kan de paginagrootte van het geheugen de grootte van datapak-ketten zijn die in het kanaal worden gebruikt of een veelvoud van de pakketgrootte (merk op dat er in een uitvoeringsvorm twee pagina's per significantieniveau gebruikt kunnen worden, zodat data in de ene geschreven kunnen worden terwijl de andere wordt gelezen voor uitvoer 15 naar het kanaal).
In een aantal communicatiesystemen, bijvoorbeeld ATM (Asynchronous Transfer Mode) kunnen prioriteiten aan pakketten worden toegewezen. ATM heeft twee prioriteitsniveaus, prioriteitsniveau en secundair niveau. Secundaire pakketten worden alleen overgedragen als er vol-20 doende bandbreedte beschikbaar is. Een drempel kan worden gebruikt om te bepalen welke significantie-categorieën van het prioriteitsniveau en welke van het secundaire niveau zijn. Een andere werkwijze zou het gebruik van een drempel bij de codeerinrichting zijn om geen significantie-categorieën over te dragen die minder significant dan een drem-25 pel waren.
Met verlies genaard gaande compressie met begrensde piekfout
In een aantal toepassingen is een perfecte (verliesloze) reconstructie niet nodig. Het kan gewenst zijn om compressie met een gespe-30 cificeerde maximum piekfout te bereiken. Laat de piekfout ±E zijn. Dit kan worden bereikt door het afkappen van de gecomprimeerde data, zodat alle minder significante data die niet nodig zijn om de gewenste nauwkeurigheid te bereiken worden weggegooid.
Een andere manier voor het bereiken van compressie met een gespe-35 cificeerde maximale piekfout is het delen (met integere deling) door een waarde die minder dan of gelijk aan 2xE-*-l is van elke pixel van het beeld dat moet worden gecomprimeerd. Tijdens de reconstructie wordt elke pixel in het beeld verwerkt met: 1001247 77 uitgangspixel = (2xE+l) x ingangspixel +E.
(Als alternatief kan in plaats van het optellen van E tijdens de de-compressie aftrekking plaatsvinden voorafgaand aan het delen door 5 2xE+l).
Een andere wijze voor het bereiken van compressie met een gespecificeerde maximale piekfout is het vervangen van de deling en vermenigvuldiging door verschuivingen. De verschuivingshoeveelheid is [log2(2xE+l}J. Omdat verschuiven geschikt is kan een betere foutspeci-10 ficatie (vervanging van piekfout) fouten van de formule (-2n<fout<-2") zijn.
Het bovenstaande moet niet worden verward met kwantisering van coëfficiënten, wat goed bekend is bij de techniek van met verlies gepaard gaande beeldcompressie. Bij veel met verlies gepaard gaande 15 compressiesystemen (bijvoorbeeld JPEG) wordt aan transformatiedomein-coëfficiënten een maximale piekfout toegewezen, die de piekfout van het beeld slechts indirect bestuurt. Een kritisch verschil is dat de onderhavige uitvinding de kwantisering uitvoert op pixels en een verliesloze compressie van coëfficiënten gebruikt.
20 De transformatiedomein-kwantisering kan eveneens worden gebruikt.
Veel coëfficiënten hebben een effect op piekfout-voortplantingen door veelvoudige niveaus van de transformatie. Het is gemakkelijker om het effect op piekfouten te bepalen voor de hoogdoorlaatfilter-coëffi-ciënten die geen kinderen hebben.
25 Vervolgens wordt een eendimensionaal signaal beschouwd dat moet worden gecodeerd met een maximale piekfout van ±E. Dit kan worden bereikt door de hoogdoorlaatfiltercoëfficiënten met het fijnste detail op ±E te kwantiseren. Voor een tweedimensionaal signaal kunnen, aangezien er twee toepassingen van het hoogdoorlaatfilter zijn, de 30 HH-coëfficiënten met het fijnste detail worden gekwantiseerd op ±4e.
Een alternatief voor het gebruik van kwantisering van het in-gangsbeeld is het besturen van de beslissingen naar de entropie-co-deerinrichting. Een voorbeeld is het volgende. Voor elke coëfficiënt, als het instellen van de coëfficiënt op nul er niet toe zou leiden dat 35 de fout in een willekeurige pixel die door die coëfficiënt is beïnvloed de maximale fout overschrijdt, wordt de coëfficiënt op nul gesteld. In een aantal implementaties zullen alleen speficieke coëfficiënten worden getest, misschien alleen de wisselstroom-coëfficiënten 1001247 78 die geen kinderen hebben. Coëfficiënten kunnen worden beschouwd met een stap-voor-stap-strategie waarbij er één tegelijkertijd wordt beschouwd. Andere strategieën kunnen kleine groepen coëfficiënten be-schouwen en de grootst mogelijke subreeks van de groep op nul kiezen.
5 Terwijl veel wijzingen en modificaties van de onderhavige uitvin ding de vakman zonder twijfel duidelijk worden nadat hij de vorige beschrijving heeft gelezen, zal het duidelijk zijn dat de specifieke uitvoeringsvorm die bij wijze van voorbeeld is getoond en beschreven geenszins beperkend is bedoeld. Daarom zijn verwijzingen naar details 10 van de voorkeursuitvoeringsvorm niet bedoeld om de reikwijdte van de conclusies te beperken, die op zichzelf alleen die eigenschappen citeren die als essentieel voor de uitvinding worden beschouwd.
1001247 79
Voorbeeld code voor RTS-transformatie (voorwaarts) APPENDIX één-ni veao-deccmp.
void RTS{T,vfm,n) int ν,χη,η; int ·Τ; i .
int 1« j # X * int *Xf ·Υ; for (i-0;i<n;i++) * for (j-0;j<m; j+-2) ^ XI j/2](T(i*«+j)+Tli*wt3+^>>>1; Y j j/2] - Tli«w+jl-T(i*w+3+l]; 1 . , for (j-0:j<a/2;3++) ï [i*m+m/2+j]“'* (“X[j]+(*l t (m/2) )«2) +XI *5+2) % (m/2) 1)»2; } }
Voorbeeld code voor RTS-transformatie (invers) één-niveau-decomp.
void InverseRTS(T,w,a,n) int w,m,n; int *T; { .
int 1,3; int *Bf »D; for (i-0;i<n;i++) ( for (j-0;j<in/2; j++) l B[jl - (-T(i*m+j]+T(i*m+ ((j+2)I(m/2))))*0X3; D( (j+D'(m/2) ) - ( (T(i*m+j)-T[i*m+( (j+2) I (m/2) ) ] + ^ (T(i*a+m/2 + j)«2)+B[ j))»2) ; for {j-0;j<m/2;j++) l T [ϊ·ν+2· j] - ((T[i*m+j]«l)+D[jJ+l)»l; T[i*w+2·j+1] - T[i*v+2·j] - D|j]; )
Appendix· A - I
1001247 80
Twee-niveau-decomp. - RTS-transfoncatie (voorwaarts) ▼oid RTSn) int w,a,n; int *T; ( — int i, j,k: int •temp? int ·Χ, ·Υ; for (i-0;i<n;i++j i for (j-0;j<a; j+«2) X[j/2J - (Tri«w+j]+T(i*w+j4lJ)»i,.
} - T(i*w4j]-Tli«w+j+l]; for (j-0;j++) temp(i*m4j]-x(j).
j tejrPli*,n‘*'ro/2+j]- (-X( j]+(Y( (j+1) % (m/2) ]«2) +X( (j+2) % (m/2) ))»2; for (j"0;j<e;j++) for (i-0;i<n;i+-2) ( ïtt/?ï “ (t«np[i*in+jJ+t*mp{(i+ll*jn4jl)»i; ^ Yli/2) - temp(i*m+3J-temp( (i+1) ·τη+ jj .
for (i-0;i<n/2;i++) l T(i*W+j]-X[i]; j ** li+n/2) ‘w+jj- (“X(i) + (Y[ (i+1) I (n/2) )«2)+X( (i+2) % (n/2) ] )»2; A'2 1001247 81
Twee-niveau-decooip- - RTS-transfonnatie (invers) void InverseRTS(T,w,m, η) int w,m,n; int *1; l int i,j; int *B, «D; int *te«p;
for (j-0;j<a;j++J
for (i-0;i<n/2;i++) l B[i] - {-T(i*w+jJ +T(((i+2)I(n/2))*w+j])&0X3; X>1 (i+1) I (n/2) ] - ((T[i*w+j]-Tl((i+2)I(n/2))*w+j]+ (T( (n/2+i) *w+j]«2)+Bti) )»2) ; ) for (i«0;i<n/2;i+-*·) tempI2*i*m+j] - ((Tti*w+j)«l)+D[i)+l)»l; temp [ (2*i+l) *m+ j] ttmpI2*i*m+j] - D[i); ) ) for (i-0;i<n;i++) ( for (j-0;j<a/2;j++)
Bij] - (-templi*»+j)+temp(i*m+({j+2)I(m/2))])*0X3;
Dl(j+1)% (m/2)] - ((temp[i*m+j)-templi*w+((3+2)%(m/2))] + (t«jnpti*m+ro/2+j]«2)+B(3] )»2) ; > for (j-0;j<m/2;j++) i T[i*w+2*j] - ((temp[i*m+j]<<l)+Dl j]+l)»l;
Tli*w+2*j+l) - Tli*w+2*j) - Dij]; } > 1 0 0 1 2 4 7 *’3

Claims (24)

1. Werkwijze voor het coderen van ingangsdata omvattende de volgende stappen: 5 het uitvoeren van een overlappende omkeerbare minigolftransfor matie op de ingangsdata gebruik makend van niet-minimale lengte omkeerbare filters teneinde een reeks van coëfficiënten te produceren, en het comprimeren van de reeks van coëfficiënten in data die een 10 verliesvrij gecomprimeerde versie van de ingangsdata vertegenwoordigt.
2. Werkwijze volgens conclusie 1, waarbij de getransformeerde signalen een aantal coëfficiënten bevatten.
3· Werkwijze volgens conclusie 1. waarin de genereerstap omvat het ontbinden van de ingangsdata gebruikmakend van ten minste een re-15 versibel filter met niet-minimale lengte teneinde een reeks coëffi ciënten te produceren.
4. Werkwijze volgens conclusie 1, waarin de genoemde niet-minimale lengte reversibele filters voorzien zijn van een aantal ééndimensionale filters. 20
5· Werkwijze volgens conclusie 1, waarbij de ingangsdata voor zien zijn van beelddata.
6. Werkwijze volgens conclusie 1, waarbij de comprimeerstap omvat een ingebedde codering van de reeks van coëfficiënten met inbegrip van stappen voor het ordenen van de coëfficiëntenreeks en het 25 uitvoeren van een bit-significante inbedding op de reeks van coëffi ciënten na ordening.
7- Werkwijze volgens conclusie 1, verder voorzien van de volgende stappen: het ontbinden van de verliesvrij gecomprimeerde versie van de 30 ingangsdata in getransformeerde signalen; en het genereren van de ingangsdata uit de getransformeerde signalen in een gereconstrueerde versie van de ingangsdata gebruikmakend van een inverse reversibele minigolftransformatie.
8. Werkwijze voor het decoderen van data in de oorspronkelijke 35 data omvattende de volgende stappen: het decomprimeren van een verliesvrij gecomprimeerde versie van de ingangsdata in een aantal getransformeerde signalen; en 1001247 het genereren van een gereconstrueerde versie van de oorspronkelijke data uit het aantal getransformeerde signalen met een overlappende inverse reversibele minigolftransformatie gebruikmakend van niet-minimale lengte reversibele filters teneinde een reeks van coëf-5 ficiënten te produceren.
9· Werkwijze volgens conclusie 8, waarin de getransformeerde signalen voorzien zijn van een aantal coëfficiënten.
10. Werkwijze volgens conclusie 8, waarin de genereerstap omvat het ontbinden van de ingangsdata gebruikmakend van ten minste een re- 10 versibel filter met niet-minimale lengte teneinde een reeks coëffi ciënten te produceren.
11. Werkwijze volgens conclusie 10, waarbij de niet-minimale lengte reversibele filters voorzien zijn van een aantal ééndimensionale filters.
12. Werkwijze voor het verwerken van ingangsdata omvattende de volgende stappen: het genereren van een eerste aantal getransformeerde signalen in responsie op de ingangsdata met een reversibele overlappende minigolf transformatie gebruikmakend van een eerste paar niet-minimale 20 lengte reversibele filters; het comprimeren van het eerste aantal getransformeerde signalen in data die een verliesvrije gecomprimeerde versie van de ingangsdata vertegenwoordigt; het decomprimeren van de verliesvrij gecomprimeerde versie van 25 de ingangsdata in een tweede aantal getransformeerde signalen; en het genereren van ingangsdata uit een tweede aantal getransformeerde signalen in een gereconstrueerde versie van de ingangsdata met een inverse reversibele overlappende minigolftransformatie gebruikmakend vein een tweede paar niet-minimale lengte reversibele filters. 30
13· Werkwijze voor het coderen van ingeingsdata omvattende de volgende stappen: transformatiecodering van de ingangsdata in een reeks van coëfficiënten met een overlappende reversibele minigolftransformatie gebruikmakend van een paar niet-minimale lengte reversibele filters; en 35 inbedcodering van de reeks van coëfficiënten omvattende de stappen voor het ordenen van de reeks van coëfficiënten en voor het uitvoeren van een bit-significante inbedding op de reeks van coëffi 1001247 ciënten, waarbij een eerste type van inbedcodering wordt uitgevoerd op een eerste deel van de data en een tweede type inbedcodering wordt uitgevoerd op een tweede deel van de data.
14. Werkwijze volgens conclusie 13, waarin de transformatie- 5 codeerstap omvat het minigolffilteren van de ingangsdata.
15. Werkwijze volgens conclusie 13, waarin het eerste type inbedcodering een boomcodering omvat.
16. Werkwijze volgens conclusie 13, waarin de inbedcodeerstap omvat het formatteren van de reeks coëfficiënten in teken-groottefor- 10 maat.
17· Werkwijze voor het coderen van ingangsdata omvattende de volgende stappen: het transformeren van ingangsdata in een reeks van coëfficiënten met een overlappende reversibele minigolftransformatie ge-15 bruikmakend van een paar niet-minimale lengte reversibele filters; het omvormen van de reeks van coëfficiënten in een teken-groot-te-format; het coderen van een eerste deel van de reeks van geformatteerde coëfficiënten gebruikmakend van een eerste type inbedcodering teneinde 20 een eerste bitstroom te produceren; en het coderen van een tweede deel van de reeks van geformatteerde coëfficiënten gebruikmakend van een tweede type inbedcodering teneinde een tweede bitstroom te produceren, waarbij de eerste bitstroom en de tweede bitstroom worden gecombineerd in een enkele bitstroom.
18. Werkwijze volgens conclusie 17, verder omvattende een en- tropie-codering van de enkele bitstroom.
19. Werkwijze volgens conclusie 17, waarbij het eerste type codering omvat een boomvolgorde-codering.
20. Werkwijze volgens conclusie 17, waarbij het eerste deel de 30 hogere-ordebits van de reeks van geformatteerde coëfficiënten omvat en het tweede deel de lagere-ordebits van de reeks van geformatteerde coëfficiënten omvat.
21. Werkwijze volgens conclusie 17, waarbij de enkele bitstroom een verliesvrij gecomprimeerde versie van de ingangsdata vertegenwoor- 35 digt.
22. Codeereenheid voor het coderen van ingangsdata in een gecomprimeerde datastroom, welke codeereenheid voorzien is van: 1001247 een omkeerbaar minigolffilter voor het transformeren van ingangsdata in een aantal coëfficiënten gebruikmakend van een paar niet-minimale lengte omkeerbare filters; een inbedcodeereenheid gekoppeld aan een omkeerbaar minigolf-5 filter voor het omvormen van een inbedcodering op het aantal coëffi ciënten teneinde een bitstroom te genereren; en een entropie-codeereenheid gekoppeld met de inbedcodeereenheid teneinde een entropie-codering uit te voeren op de bitstroom teneinde gecodeerde data te creëren.
23. Codeereenheid voor het coderen van ingangsdata omvattende: een transformatiecodeereenheid aangesloten voor ontvangst van de ingangsdata en voor het genereren van een reeks van coëfficiënten die een decompositie van de ingangsdata vertegenwoordigen gebruikmakend van een paar niet-minimale lengte reversibele filters; en 15 een inbedcodeereenheid aangesloten voor ontvangst van de reeks van coëfficiënten en voor het uitvoeren van een bit-significante codering op de reeks van coëfficiënten teneinde gecodeerde data te creëren waarbij de inbedcodeereenheid gecodeerde data produceert voorafgaand aan de ontvangst van de gehele reeks van coëfficiënten.
24. Codeereenheid volgens conclusie 23, waarin de transforma- tiecodeereenheid en de inbedcodeereenheid functioneren voor het genereren van gecodeerde data uit de ingangsdata tijdens een enkele doorgang door de data. 1001247
NL1001247A 1994-09-20 1995-09-20 Werkwijze voor het comprimeren met gebruikmaking van reversibele ingebedde minigolven. NL1001247C2 (nl)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US31014194A 1994-09-20 1994-09-20
US31014194 1994-09-20

Publications (2)

Publication Number Publication Date
NL1001247A1 NL1001247A1 (nl) 1996-03-20
NL1001247C2 true NL1001247C2 (nl) 1997-05-27

Family

ID=23201171

Family Applications (1)

Application Number Title Priority Date Filing Date
NL1001247A NL1001247C2 (nl) 1994-09-20 1995-09-20 Werkwijze voor het comprimeren met gebruikmaking van reversibele ingebedde minigolven.

Country Status (4)

Country Link
US (1) US7418142B2 (nl)
JP (1) JP3302229B2 (nl)
DE (1) DE19534730B4 (nl)
NL (1) NL1001247C2 (nl)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6549666B1 (en) 1994-09-21 2003-04-15 Ricoh Company, Ltd Reversible embedded wavelet system implementation
GB2325584B (en) * 1997-05-01 2000-03-29 Ricoh Kk Decompression system using inverse wavelet transform
JP3471366B2 (ja) * 1997-07-30 2003-12-02 三菱電機株式会社 画像圧縮・伸張方法および画像圧縮・伸張装置
DE19744407C1 (de) 1997-10-08 1999-02-11 Luratech Ges Fuer Luft Und Rau Verfahren zur mehrdimensionalen, diskreten Wavelet-Transformation und Transformationseinheit zur Durchführung des Verfahrens
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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993010634A1 (en) * 1991-11-12 1993-05-27 General Electric Company Data compression system
WO1994017492A1 (en) * 1993-01-22 1994-08-04 David Sarnoff Research Center, Inc. Apparatus and method for compressing information

Family Cites Families (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3506327A (en) 1964-04-23 1970-04-14 Battelle Development Corp Wavefront reconstruction using a coherent reference beam
US3950103A (en) 1972-10-27 1976-04-13 Canadian Patents And Development Limited Method and apparatus to determine spatial distribution of magnitude and phase of electro-magnetic fields especially optical fields
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 (fr) 1981-07-28 1985-07-10 International Business Machines Corporation Procédé de codage de la voix et dispositif de mise en oeuvre dudit procédé
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 (en) 1987-06-09 1995-04-12 Sony Corporation Motion vector processing in digital television images
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 (en) 1988-04-28 1992-01-02 Sharp Kabushiki Kaisha Orthogonal transform coding system for image data
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
US5014134A (en) * 1989-09-11 1991-05-07 Aware, Inc. Image compression method and apparatus
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 (nl) 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 (en) 1990-07-11 1996-10-02 Koninklijke Philips Electronics N.V. Apparatus for deriving a compatible low-definition interlaced television signal and other components from an interlaced high-definition television signal and apparatus for reconstructing the original signal
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
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
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993010634A1 (en) * 1991-11-12 1993-05-27 General Electric Company Data compression system
WO1994017492A1 (en) * 1993-01-22 1994-08-04 David Sarnoff Research Center, Inc. Apparatus and method for compressing information

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
A. SAID ET AL.: "Image Compression Using the Spatial-Orientation Tree", 1993 IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS, vol. 1, 3 May 1993 (1993-05-03), CHICAGO, IL, US, pages 279 - 282, XP000409989 *
A. SAID ET AL.: "Reversible Image Compression via Multiresolution Representation and Predictive Coding", VISUAL COMMUNICATIONS AND IMAGE PROCESSING '93, vol. 2094, no. 2/3, 8 November 1993 (1993-11-08), CAMBRIDGE, MASSACHUSETTS, US, pages 664 - 674, XP000609929 *
J. M. SHAPIRO: "Embedded Image Coding Using Zerotrees of Wavelet Coefficients", IEEE TRANSACTIONS ON SIGNAL PROCESSING, vol. 41, no. 12, December 1993 (1993-12-01), NEW YORK, US, pages 3445 - 3462, XP000426658 *
J.D. VILLASENOR ET AL.: "Filter Evaluation and Selection in Wavelet Image Compression", DCC '94, DATA COMPRESSION CONFERENCE 1994, 29 March 1994 (1994-03-29), SNOWBIRD, UTAH, US, pages 351 - 360, XP000609928 *
OHTA ET AL.: "Wavelet Picture Coding with Transform Coding Approach", IEICE TRANSACTIONS ON FUNDAMENTALS OF ELECTRONICS, COMMUNICATIONS AND COMPUTER SCIENCES, vol. E75-A, no. 7, July 1992 (1992-07-01), TOKYO JP, pages 776 - 784, XP000311771 *
XIONG ET AL.: "Joint Optimization of Scalar and Tree-structured Quantization of Wavelet Image Decompositions", PROCEEDINGS OF THE 27TH ASILOMAR CONFERENCE ON SIGNALS, SYSTEMS AND COMPUTERS, vol. 2, 1 November 1993 (1993-11-01), PACIFIC GROVE, CA, US, pages 891 - 895, XP000438424 *

Also Published As

Publication number Publication date
DE19534730B4 (de) 2006-04-27
JP3302229B2 (ja) 2002-07-15
US7418142B2 (en) 2008-08-26
DE19534730A1 (de) 1996-05-02
NL1001247A1 (nl) 1996-03-20
JPH08116265A (ja) 1996-05-07
US20020048405A1 (en) 2002-04-25

Similar Documents

Publication Publication Date Title
NL1001248C2 (nl) Apparaat voor het comprimeren met gebruikmaking van reversibele ingebedde minigolven.
NL1001247C2 (nl) Werkwijze voor het comprimeren met gebruikmaking van reversibele ingebedde minigolven.
US5867602A (en) Reversible wavelet transform and embedded codestream manipulation
US6195465B1 (en) Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US7167592B2 (en) Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
GB2293733A (en) Apparatus for image data compression using reversible embedded waveletts
GB2302244A (en) Wavelet transform filter
GB2313757A (en) Method using an embedded codestream
GB2302488A (en) Image data compression using embedded coding

Legal Events

Date Code Title Description
AD1A A request for search or an international type search has been filed
RD2N Patents in respect of which a decision has been taken or a report has been made (novelty report)

Effective date: 19970122

PD2B A search report has been drawn up
VD1 Lapsed due to non-payment of the annual fee

Effective date: 20080401