CA2249259C - Data compression using adaptive bit allocation and hybrid lossless entropy encoding - Google Patents
Data compression using adaptive bit allocation and hybrid lossless entropy encoding Download PDFInfo
- Publication number
- CA2249259C CA2249259C CA002249259A CA2249259A CA2249259C CA 2249259 C CA2249259 C CA 2249259C CA 002249259 A CA002249259 A CA 002249259A CA 2249259 A CA2249259 A CA 2249259A CA 2249259 C CA2249259 C CA 2249259C
- Authority
- CA
- Canada
- Prior art keywords
- run length
- indices
- length codes
- zero
- quantization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/192—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/115—Selection of the code volume for a coding unit prior to coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
Abstract
A method and apparatus for adaptive bit allocation and hybrid lossless entropy encoding. The system includes three components: (1) a transform stage, (2) a quantization stage, and (3) a lossless entropy coder stage. The transform stage (1) uses a wavelet transform algorithm. The quantization stage (2) adaptively estimates values for parameters defining an approximation between quantization size and the logarithm of quantization error, and recursively calculates the optimal quantization size for each band to achieve a desired bit rate. The baseband and subbands are transformed into quantization matrices using the corresponding quantization sizes. The lossless entropy coder stage (3) uses the observation that the entropy property of run lengths of zero index values in the subband quantization matrices is different from the entropy property of non-zero indices. Each quantization matrix is parsed so that each non-zero index is extracted into a separate stream, and the remaining position information is parsed into an odd stream of run length values for "0" and an even stream of run length values for "1". These three streams are Huffman coded separately in conventional fashion.
Description
WO 97/35427 PCTrUS97/04279 DATA COMPRESSION USING
ADAPTIVE BIT ALLOCATION AND
~ HYBRID LOSSLESS ENTROPY ENCODING
BACKGROUND OF THE INVENTION
1. Field of ~heInvention This invention relates to data compression, and more particularly to data compression using adaptive bit allocation and hybrid lossless entropy encoding.
ADAPTIVE BIT ALLOCATION AND
~ HYBRID LOSSLESS ENTROPY ENCODING
BACKGROUND OF THE INVENTION
1. Field of ~heInvention This invention relates to data compression, and more particularly to data compression using adaptive bit allocation and hybrid lossless entropy encoding.
2. Des~-,iylion of Related Art A number of methods exist for cGll"~lessing data. These methods are characterized as 10 either"lossy" or"lossless". Lossy colllylession can achieve subslall~ial colllplcJ~;on ratios by, in effect, ~IlliLLing red~m~nt or unimportant il~llllalion while still ~
a reasonable s~mhl~nre to the original data. Since data is lost, lossy colll~l~,ss;on is normally used only for data, such as sound or ~laphics (still or motion), that can be perceived reasonably accurately despite the loss of illrolllla~ion. Lossless co~ ession 15 generally results in lower cGn~r ,ssion ratios but can reco~ ,)te the original data in its entirety. Thus, lossless cGIllples~;on is generally used for m~chin~ code, text, and numêrical data that require perfêct precision.
A number of di~GIellL methods exist for pGlrolllung lossy col~lpression, inn.ll~ding the well-known JPEG ~L~uld~d for graphics and MPEG standard for video. However, no one 20 particular conlpression algo.i~ll has been shown to be optimal for all data cQnt~nt tc~ing an algoli~lùu to particular data (e.g., graphics images) can achieve higher compression ratios. In some contexts, such as tr~ncmis.cion of data over a constrained bandwidth (e.g, typical modems, LANs, or WANs), an improvement in colllples~;on ratio by even a few percent can achieve subst~nti~l long-term savings.
Accordingly, a need exists for improved data compression algorithms, particularly for lossy compression of graphics images. The present invention provides such an improved lossy compression algorithm that is particularly efficient for compressing graphics images.
CA 022492~9 1998-09-17 WO 9~/3~427 PCTrUS97/04279 -3-SUMMARY OF THE INVENTION
The invention comprises a method and apparatus for adaptive bit allocation and hybrid lossless entropy encoding in a lossy compression system. The preferred embodiment of the compression algorithm of the present invention includes three components: (I) a transform stage to decorrelate image data into a b~ceb~n~ and multiple subbands, (2) a qu~nti7~tion stage to quantize the res-~lting transform coefficients1 and (3) a lossless entropy coder stage to encode the q~l~nti7ed indexes. Decol~pression is accomplished by inverting the compression stages.
In the pre~.led embodiment, the transform stage uses a wavelet transform algorithm.
10 However, other transforrns may be used, such as the well-known discrete cosine rOI~.l (DCT) algorithm. The qU~nti7~tion stage recursively and adaptively estim~t~os the optimal q~ AI;on size for each band using an appro~ill~lion between q~ t;~AI;on size and qURnti7~tion error. More particularly, the q~nti7~tiQn stage adaptively esl;...~ s values for pa-a---~ilers definin~ an appro~u---ation between qU~nti7~tion size and the logarithm of ql~nti7~tiQn error, and recursively calculates the optimal q~ ;on size for each band to achieve a desired bit rate. The b~eb~n~ and subbands are then arOIlllcd into q~l~nti7~tion matrices using the collea~onding qu~ l;on sizes.
The lossless entropy coder stage takes advantage of the observation that the entropy propc.Ly of run lengths of zero index values in the subband q ~ ;on matrices generated by the present invention is di~rel-L from the entropy property of non-zero indices. Accordingly, a hybrid entropy coding algorithm was developed. In particular, each q~l~nti7.~tion matrix is parsed so that (1) the position of each non-zero index is replaced by the special token "1", and (2) ea,ch non-zero index is tAlla~,led and put in a se~dle stream. This results in a simple binary mask matrix that indicates the position of each non-zero index in each subband, and a stream of the non-zero indices. The binary mask is then processed using conventional run length coding (includinE coding the run length of the " I " tokens) to generate a run length coded matrix. Since the binary mask is only bi-valued, the run lengths of"0" and '~1" alternate. This pattern is parsed into an odd stream of run length values for "0" and an even strearn of run length values for " I ". The result of this process is that the qu~nti7~tion matrix for each subband is divided into three streams (a non-zero stream, a "0" run length stream, and a " I " run length stream), which are then E~l-ffm~n coded separately in conventional fashion. This hybrid entropy coding algorithm gives an appruxilllalcly 10% percent improvement over conventional run length and ~llffm~n coding for similar images. The overall compression algorithm gives an approximately 2~6 dB improvement in terms of peak signal-to-noise ratio (PSNR) over JPEG algorithms for the same images at the same bit rates.
10 The details of the prc~.ed embodiment of the present invention are set forth in the acco.--p~,ying drawings and the description below. Once the details of the invention are known, numerous additional innovations and ch~ng~s will become obvious to one skilled in the art.
W O 97/35427 PCT~US97/04279 B~IEF DESCRIPTION OF THE DRAWINGS
. FIGURE 1 is a block diagram of the three components comprising a compression encoder in accordance with the present invention.
FIGURE 2 is a block diagram showing multi-level decomposition of an image.
FIGURE 3 is a diagram showing a qll~nti~tiQn function that maps all x values in the interval d, to d2 to the value r,.
FIGURE 4 is a diagram showing application of a di~lellLial pulse code modulationalgorithrn to a current pixel x.
FIGURE S is a flow chart showing the hybrid lossless entropy coding algorithm of the lC present invention.
Like reference numbers and deci~tionc in the various dlawings indicate like elPm~nts.
W 097135427 PCT~US97/04279 DETA~LED DESCRIPTION OF THE INVENTION
Throughout this description, the preferred embodiment and examples shown should be considered as exemplars, rather than as limitations on the present invention.
Oven~iew The preferred embodiment of the compression algorithm of the present invention comprises three components, as shown in FIGURE 1: (1) a transforrn stage I to decorrelate image data, (2) a qu~nti7~tion stage 2 to quantize the res~-ltinp~ transforrn coeffi~i~nt~, and (3) a lossless entropy coder stage 3 to encode the q~l~nti7ed indexes.
Deco",~resaion is accompliche~ by inverting the co~l"~res~ion stages.
10 In the p-ert,led embodiment, the transform stage uses a wavelet ~.~nsrollll algorithm.
However, other ~ srull..s may be used, such as the well-known discrete cosine llallarullll (DCT) algo.iLhn.. For ease of unde-~Litn~i..g this des.,.ipLion will assume that a wavelet transform algo.illlln is used.
(I) Wavelet Trar~form 15 Wavelet ~l~-sÇ~ s are relatively new m~th~m~tical tools. A general wavelet ~ Çullll can effectively decorrelate image data by decomposing an image into a number of easily colllyl~sail~le sub-images which contain high frequency (or edge) infullllalion. In the preÇelled emborliment a wavelet transform is used in mllltirle levels to decompose an image. Each level of wavelet Ll~n~ru,lll decomposes the image into four quarter-size sub-images, in known fashion.
For ~ le, ~,f~,.l.ng to FIGIJRE 2, an image 20 ccilll~.is;ng a two-dimensional matrix of numbers l~pres~ g pixels is decomposed in the LlallarOIlll stage 1 into four quarter-size sub-images LL0, HL0, LH0, and HH0 by application of a wavelet transform. Then, as indicated by the dotted line, the wavelet transform is applied to the LL0 sub-image to derive LLI, HLl, LH1, and HH1 sub-images, and then again is applied to the LLI sub-CA 02249259 l998-09-l7 W 097/3~427 PCTAUS97/04279 image to derive LL2, HL2, LH2, and HH2 sub-images, and then once more is applied to the LL2 sub-image to derive LL3, HL3, LH3, and HH3 sub-images.
In the example shown in FIGURE 2, the fourth level sub-image LL3 is called the b~seb~n~ image, and resembles a shrunken version ofthe original image 20 that is 1/256 of the size of the original image 20. The 12 rPnt~ining sub-images (referred to as "subband images" or just "subbands") supplement the difference between the baseband image snd the original image 20. More particularly, the subband images represent edge information in the horizontal, vertical, and diagonal (labeled as HL, LH, HH) orienta-tions.
10 As a result of the p~erel~ed four level wavelet decomposition, the image 20 is decom-posed into one b~seb~nd image LL3 and twelve subband images (HL0-3, LH0-3, and HH0-3). If desired, the baeeb~n~ image shown can be further deco,l,posed in a similar fashion several layers down, res--ltir~ in a similar pyramid structure with additional subbands.
Ab~ charactP.rictic of wavelet Ll~r,~r~"", subbands is that the data comprising each subband is very sparse and most pixel values are very close to zero. This characteristic leads to improved qll~nti7~tion and lossless entropy encoding in accordance with the present invention.
In the p,ere"ed embo-iimPnt, the impl~ ;on of the wavelet Lr~nsr~ ~ "l is achieved by using a pair of carefillly dPeig~ed wavelet filters. Among the many possible wavelet filters, the pr~,rc;~l~d embodiment of the present invention uses Daubechies's 7 and 9 biorthogonal filters as the wavelet filters. These filters are ;,ll~h....~n~ed using a straightforward finite impulse response (FIR) implr."~"~l;on, in known fashion.
WO 97/35427 PCT~US97/04279 -8-(') Quanti a~ion Quantization discards imperceptible infiormation in baceb~nd and subband images to achieve compression to meet a bit rate requirement from a user. A q~l~nti7~r is a "many to one" fimction Q(x) which maps many input values into a smaller set of output values.
s Q~l~nti7ers are a staircase filnction characterized by a set of numbers called decision points dj and a set of numbers called reconstruction levels rj. An input value x is mapped to a reconstruction level ri if x lies the interval of (dj, dj 11). For example, FIGURE 3 is a diagram showing the mapping of all x values in the interval d, to d2 to the value r,. The interval d, to dj+, may not be uniform for all i.
10 In the plerel~ed embodiment, since the wavelet transform does a good job of decorrelating the image data in general, a uniform scalar qll,qnti7~r is used in the qoqnti7qtion stage 2. The equation for the preîe~lèd uniform scalar ql~qnti7~tion is:
-- --1, x <--_ qi 2 r =~ [O,otherwise] (1) X qi +l X> q' qj 2 where qj is the q~lqnti7~tion size for subband i.
15 In addition, since there is still a high degree of correlation among neighboring pixels in the bqseb~nd image, di~-el,Lial pulse code modlllqtion (DPCM) is used to predict and quantize the b~ceb!qn~ data further. In particular, in the p~e~el~èd embodiment, the bqc~ l" image is scqnned row by row from top to bottom and each pixel is s.ll,jected to the DPCM algorithm. For example, FIGI)RE 4 shows a current pixel x that is predicted using three neighboring pixels a, b, c, which have already been qllqnti7ed A simple prediction is used in the prefe,led embodiment. In particular, the prediction residue r is calculated by:
W O 97/3S427 PCT~US97/04279 r=x-a*-b*+c* (2) where a*, b*, c* are reconstruction (or "de-quAnti7ed") levels for a, b, c The prediction residue r is then passed through a uniform scalar quantizer, such as the one shown in ~ Equation (1).
s S-~bbAn~l images represent edge information under different orientation of different levels.
Thus, each subband will have a separate qU~nti7~tion size acco~dh1g to the statistical properties of such subband. The procedure for determining an optimal q~1Anti7Ation size is called bit allocation. The present invention incl~ld~s a novel adaptive bit allocation scheme described in detail below.
10 AC a result ofthe pr~Çel,ed qlJAnti7Ation stage, the bAcebAl-d and 12 subband images are each processed into a q~ Al;on matrix of reconsLlllction levels r" or quAnti7Ation indices.
~3J ~.0~~ Entropy Coding The final co~ )resa;on is achieved by losslessly encoding the ql~Anti7~tion matrix for each 1S subband in the lossless entropy coder stage 3. The lossless entropy coder stage 3 assigns a variable size token to each qoAnti7~t;on index according to the frequency with which that index appears; the more frequently a particular index appears, the shorter the token ACsigned to it. The prerelled embodiment of the present invention uses the well-known ~llffimAn coding techn;que to encode the data in each subband q~1Anti7~tion matrix. In the prior art, since a majority of the indices in each subband qllAnti7Atit)n matrix are zero-valued, conventional run length coding of each matrix would normally be pelr~ll"ed before ~llfl;nAn coding. Run length coding simply replaces a seql~onee of like-valued data values with a symbol repres~nting the data value and the number of such values in the sequence.
The output of the lossless entropy coder stage 3 is a data structure that represents a compressed version of the original image 20. That data structure may be transmitted and/or stored for later reconstitution into an image that approximates the original image 20.
Based on extensive empirical analysis in deve}oping the present invention, it has been observed that the entropy property (i. e., randomness) of run lengths of zero index values in the subband qu~nti7~tion matrices generated by the present invention is di~l e..L from the entropy plupel~y of non-zero indices. Accoldingly, a hybrid entropy coding algorithm was developed which gives an appro~ lalely 10% percent improvement over the 10 conventional run length and ~l~ffm~n coding approach. This hybrid entropy coding algorithm is described in detail below.
Bit ~llo~t;Qn Bit allocation is a process of d~Lell,l,ning the q~l~nti7~tion size for baseband and subband images so that the overall q~ l;on error apl)ro~ les a .. ;l-;.. under the 5 constraint of a total bit rate set by a user. Detell,~ ng such m;nimllm.C is a typical progli.. ;.. p: problem in m~them~tics One could write:
min ~ l D (R ) under the condition: -~ m Rk Rrotal (4) 20 where: D,~R,;~ and R,~ are the distortion (q~lA ~ l;on çrror) and the bit rate for the b~ceb~nd image and each subband image, respe~,Li./ely; R,o,a~ is a selected total bit rate;
and mk is the down sample factor, which is defined to be the ratio of image size to s ~bb~nd size (for example, for the decomposition structure shown in FIGURE 2, mLH~ =
16, mLH3 = 256).
CA 02249259 l998-09-l7 The solution of Equation (3) can be found by a Lagrange multiplier method:
(J) Rk ~ --Dk(R~ + A (R,o,a, ~ --Rk) (5) ~ where J is the overall cost fi nction, and ~ is the Lagrange multiplier. The minimum of Jis achieved when the first partial derivative of Jequals zero. This condition yields:
~D,(Rj ) ~R, ~i (6) for all subbands i. To solve Equation (6), the explicit e.~,ules~ion of D~(Rk) needs to be known. However, in practice, it is hard to find the explicit e.~yr~ s~ion for D~(Rk) for each subband.
It is known that the probability distribution fimcvtion (PDF) of subband data can be 10 approYim~ted by a Generalized G~ss~n model, for which Dk(Rk) is known. This ~proacll leads to allocating the bit rate in plOpOI lion to the log~i~ " of the variance of the subband data, and is widely used in various wavelet image coding SChf-l~f.,S.
Unfortunately, carefully f ~ ion of this method shows that this method is not correct and cannot lead to optimal bit allocation. If bit rate allocation is done simply in propolLion to the logarithm ofthe variance ofthe subb~n~l this implies that, if the two subbands have the same variance, then their curve will be the same. On the contrary, based on extensive e.,lyi~ al analysis in developing the present invention, it has been found that the best-fit curve is quite di~ nt for subb~n-ls with the same variance.
Instead of the above metho~l, the pleÇ~.Ied embodiment takes advantage of the 20 observations, made during the development of the present invention, that (1) the logarithm of the mean square error (MSE) of the qu~nti~tion of a subband to the colle~yohdillg bit rate (dete~ ed by lossless coding of the qu~nti7~tion indices for such subband) can be appro~ill,aled by a straight line, and (2) that such bit rate can be approxim~t~d from the qll~nti~tion size.
W O 97/35427 PCT~US97/04279 -12-Using a straight line model, the distortion (qu~nti7~tion error) to bit rate curve for each band can be expressed as:
D (R ) = ea~R~ t ~
where a~. and bk are parameters representing the line and depending on subband k. Using 5 Equation (7), Equation (6) becomes:
Rk = --Q~g (--) ~ bk) (8) Under the co~ inl of the total bit rate R~ b this results in:
Rk = log~ ( bk log (ak) k=l mk k=l mkak k=l mkak mkak From Equation (9):
~o 1 = exp ~ J (10) k = I m kak From Equation (10), the sllbb~n~l bit rate can be derived using Equation (8). However, since the goal is to find qu~ ;on size rather than bit rate, the relationship between bit rate and qll~nti7~tion size must be determined. It is observed that the relationship between bit rate R* and q~ 1 ;on size Q~ can be a~pro~i"laled using following equation:
Maxk - ~in rOg Q = CkRk dk (l l) W O 97/35427 PCT~US97/04279 From Equation (11):
O Ma~k Mink exp (CkRk +dk) (12) where: Maxk, Mink are the maximum and minim~1m coefficients of subband k; and cl. and d~, similar to ak and bk, are constants depending on the statistical properties of subband s k and can be estim~ted using simple curve fitting.
Using the above model, the bit allocation problem can be solved by e~ g ab bb ckand dk for each subband. These estim~tions can be done off-line by st~tictic~lly~lr~ ting the bit rate for each subband over a large number of sample images. However this may not be optimal for a particular image. Since ab bb ck and dk are p&~ eters to representin~ a straight line, they can easily be ~stim~ted on the fly. Suppose n points in the curve D,~l~Rk) are known, and also Q,~(Rk), i.e., (Q" D" R,), i = 1, 2, .. . n, then:
n n n n ~ Rj log(D,.) - ~ Rj ~ log(Di) F l j . l ~k n n n (13) n~Ri2-~Rj~Ri i=l j=l j -l n n ~ log(D,.) -ak~R, (14) n n ~ R IOg MaXk Mink _ ~, R ~ IOg MC~k Mink Ck = ~ Q~ Q j ( 1 5 ) n~R j2 - ~ Rj ~ Ri i=l 1=l j=l L Maxk - Mink ~ R
Q~ I F ¦
n (16) In the p- ~rerled embodiment, the set of Qj are set to have initial default values covering a reasonable range of possible ql~nti7~tion values. D" the distortion (error) of quan-tization, is calculated using Equation (1). The bit rate, R" is c~lc~ te(~ by calling the lossless encoder routine (described below). In the ,~,erel.ed embodiment, n is empirically set to 6. However, other values may be used for n, as desired.
Using the above approach, the following steps are pt;lroll.,cd in the pl~Çe.led embodiment of the present invention to adaptively deL~ e bit allocations for the b~ceb~n(l and subband images during the q~ ;7~1ion stage 2:
10 (1) Fstim~te values for palal--~,Lers d~ofining an appro~ ;r.n beL~ee.~ q~l~nti7~tior~
si_e and q,~..l;,~l;ol- error for each subband - this is, e~ le ak, bb c~ and dk for each sl1bb~n-1 irnage k, using Fqll~tiQnc (13), (14), (15), and (16). Again, Ma~k and Mink are the maximum and .. ;.. ;~.. coeffici~ntc of subb~n~ k, detell.lll1ed by sea~ .ng the coefficients. Calc~ te an initial set of Q from:
Max - Min~
N, (17) whereNj={8,12,15,24,48,64}forthefirst8subbands,andNi={8, 10,14, 18, 36, 50} for last 4 subbands. Nj is the total number of qll~nti7~tion levels for Qi.
The number of bits per index is close to Log(N,) if a lossless coding tecl~ e isnot ll~i, The values for Nl are eul~ically chosen to cover a pGs;,il~le range of bit rates for each s~.bb~n-l (2) F.stim~te values for p~ ~I-eLers d~finin~ an appro~.lnation between qn~nti7~tion size and c~ nti7~tion error for the b~ceb~nd - that is, ~stim~te ab bb ck and d~ for the b~ceb~n~ image using Equations (13), (14), (15), and (16). Max and Min are WO 97/35427 PCT~US97/04279 set to 2000 and 0, respectively, for the b~ceban~ Max and Min are fixed values for the b~Aceb~n-l image in Equation ( I I ) because the baseband image uses DPCM
qllAnti7Ation. The preferred values were empirically determined Q = ~4, 10, 20, 40, 80, 100}. The values for O, were empirically chosen to cover a reasonable s range of Q; for the b~seban~ image.
a reasonable s~mhl~nre to the original data. Since data is lost, lossy colll~l~,ss;on is normally used only for data, such as sound or ~laphics (still or motion), that can be perceived reasonably accurately despite the loss of illrolllla~ion. Lossless co~ ession 15 generally results in lower cGn~r ,ssion ratios but can reco~ ,)te the original data in its entirety. Thus, lossless cGIllples~;on is generally used for m~chin~ code, text, and numêrical data that require perfêct precision.
A number of di~GIellL methods exist for pGlrolllung lossy col~lpression, inn.ll~ding the well-known JPEG ~L~uld~d for graphics and MPEG standard for video. However, no one 20 particular conlpression algo.i~ll has been shown to be optimal for all data cQnt~nt tc~ing an algoli~lùu to particular data (e.g., graphics images) can achieve higher compression ratios. In some contexts, such as tr~ncmis.cion of data over a constrained bandwidth (e.g, typical modems, LANs, or WANs), an improvement in colllples~;on ratio by even a few percent can achieve subst~nti~l long-term savings.
Accordingly, a need exists for improved data compression algorithms, particularly for lossy compression of graphics images. The present invention provides such an improved lossy compression algorithm that is particularly efficient for compressing graphics images.
CA 022492~9 1998-09-17 WO 9~/3~427 PCTrUS97/04279 -3-SUMMARY OF THE INVENTION
The invention comprises a method and apparatus for adaptive bit allocation and hybrid lossless entropy encoding in a lossy compression system. The preferred embodiment of the compression algorithm of the present invention includes three components: (I) a transform stage to decorrelate image data into a b~ceb~n~ and multiple subbands, (2) a qu~nti7~tion stage to quantize the res-~lting transform coefficients1 and (3) a lossless entropy coder stage to encode the q~l~nti7ed indexes. Decol~pression is accomplished by inverting the compression stages.
In the pre~.led embodiment, the transform stage uses a wavelet transform algorithm.
10 However, other transforrns may be used, such as the well-known discrete cosine rOI~.l (DCT) algorithm. The qU~nti7~tion stage recursively and adaptively estim~t~os the optimal q~ AI;on size for each band using an appro~ill~lion between q~ t;~AI;on size and qURnti7~tion error. More particularly, the q~nti7~tiQn stage adaptively esl;...~ s values for pa-a---~ilers definin~ an appro~u---ation between qU~nti7~tion size and the logarithm of ql~nti7~tiQn error, and recursively calculates the optimal q~ ;on size for each band to achieve a desired bit rate. The b~eb~n~ and subbands are then arOIlllcd into q~l~nti7~tion matrices using the collea~onding qu~ l;on sizes.
The lossless entropy coder stage takes advantage of the observation that the entropy propc.Ly of run lengths of zero index values in the subband q ~ ;on matrices generated by the present invention is di~rel-L from the entropy property of non-zero indices. Accordingly, a hybrid entropy coding algorithm was developed. In particular, each q~l~nti7.~tion matrix is parsed so that (1) the position of each non-zero index is replaced by the special token "1", and (2) ea,ch non-zero index is tAlla~,led and put in a se~dle stream. This results in a simple binary mask matrix that indicates the position of each non-zero index in each subband, and a stream of the non-zero indices. The binary mask is then processed using conventional run length coding (includinE coding the run length of the " I " tokens) to generate a run length coded matrix. Since the binary mask is only bi-valued, the run lengths of"0" and '~1" alternate. This pattern is parsed into an odd stream of run length values for "0" and an even strearn of run length values for " I ". The result of this process is that the qu~nti7~tion matrix for each subband is divided into three streams (a non-zero stream, a "0" run length stream, and a " I " run length stream), which are then E~l-ffm~n coded separately in conventional fashion. This hybrid entropy coding algorithm gives an appruxilllalcly 10% percent improvement over conventional run length and ~llffm~n coding for similar images. The overall compression algorithm gives an approximately 2~6 dB improvement in terms of peak signal-to-noise ratio (PSNR) over JPEG algorithms for the same images at the same bit rates.
10 The details of the prc~.ed embodiment of the present invention are set forth in the acco.--p~,ying drawings and the description below. Once the details of the invention are known, numerous additional innovations and ch~ng~s will become obvious to one skilled in the art.
W O 97/35427 PCT~US97/04279 B~IEF DESCRIPTION OF THE DRAWINGS
. FIGURE 1 is a block diagram of the three components comprising a compression encoder in accordance with the present invention.
FIGURE 2 is a block diagram showing multi-level decomposition of an image.
FIGURE 3 is a diagram showing a qll~nti~tiQn function that maps all x values in the interval d, to d2 to the value r,.
FIGURE 4 is a diagram showing application of a di~lellLial pulse code modulationalgorithrn to a current pixel x.
FIGURE S is a flow chart showing the hybrid lossless entropy coding algorithm of the lC present invention.
Like reference numbers and deci~tionc in the various dlawings indicate like elPm~nts.
W 097135427 PCT~US97/04279 DETA~LED DESCRIPTION OF THE INVENTION
Throughout this description, the preferred embodiment and examples shown should be considered as exemplars, rather than as limitations on the present invention.
Oven~iew The preferred embodiment of the compression algorithm of the present invention comprises three components, as shown in FIGURE 1: (1) a transforrn stage I to decorrelate image data, (2) a qu~nti7~tion stage 2 to quantize the res~-ltinp~ transforrn coeffi~i~nt~, and (3) a lossless entropy coder stage 3 to encode the q~l~nti7ed indexes.
Deco",~resaion is accompliche~ by inverting the co~l"~res~ion stages.
10 In the p-ert,led embodiment, the transform stage uses a wavelet ~.~nsrollll algorithm.
However, other ~ srull..s may be used, such as the well-known discrete cosine llallarullll (DCT) algo.iLhn.. For ease of unde-~Litn~i..g this des.,.ipLion will assume that a wavelet transform algo.illlln is used.
(I) Wavelet Trar~form 15 Wavelet ~l~-sÇ~ s are relatively new m~th~m~tical tools. A general wavelet ~ Çullll can effectively decorrelate image data by decomposing an image into a number of easily colllyl~sail~le sub-images which contain high frequency (or edge) infullllalion. In the preÇelled emborliment a wavelet transform is used in mllltirle levels to decompose an image. Each level of wavelet Ll~n~ru,lll decomposes the image into four quarter-size sub-images, in known fashion.
For ~ le, ~,f~,.l.ng to FIGIJRE 2, an image 20 ccilll~.is;ng a two-dimensional matrix of numbers l~pres~ g pixels is decomposed in the LlallarOIlll stage 1 into four quarter-size sub-images LL0, HL0, LH0, and HH0 by application of a wavelet transform. Then, as indicated by the dotted line, the wavelet transform is applied to the LL0 sub-image to derive LLI, HLl, LH1, and HH1 sub-images, and then again is applied to the LLI sub-CA 02249259 l998-09-l7 W 097/3~427 PCTAUS97/04279 image to derive LL2, HL2, LH2, and HH2 sub-images, and then once more is applied to the LL2 sub-image to derive LL3, HL3, LH3, and HH3 sub-images.
In the example shown in FIGURE 2, the fourth level sub-image LL3 is called the b~seb~n~ image, and resembles a shrunken version ofthe original image 20 that is 1/256 of the size of the original image 20. The 12 rPnt~ining sub-images (referred to as "subband images" or just "subbands") supplement the difference between the baseband image snd the original image 20. More particularly, the subband images represent edge information in the horizontal, vertical, and diagonal (labeled as HL, LH, HH) orienta-tions.
10 As a result of the p~erel~ed four level wavelet decomposition, the image 20 is decom-posed into one b~seb~nd image LL3 and twelve subband images (HL0-3, LH0-3, and HH0-3). If desired, the baeeb~n~ image shown can be further deco,l,posed in a similar fashion several layers down, res--ltir~ in a similar pyramid structure with additional subbands.
Ab~ charactP.rictic of wavelet Ll~r,~r~"", subbands is that the data comprising each subband is very sparse and most pixel values are very close to zero. This characteristic leads to improved qll~nti7~tion and lossless entropy encoding in accordance with the present invention.
In the p,ere"ed embo-iimPnt, the impl~ ;on of the wavelet Lr~nsr~ ~ "l is achieved by using a pair of carefillly dPeig~ed wavelet filters. Among the many possible wavelet filters, the pr~,rc;~l~d embodiment of the present invention uses Daubechies's 7 and 9 biorthogonal filters as the wavelet filters. These filters are ;,ll~h....~n~ed using a straightforward finite impulse response (FIR) implr."~"~l;on, in known fashion.
WO 97/35427 PCT~US97/04279 -8-(') Quanti a~ion Quantization discards imperceptible infiormation in baceb~nd and subband images to achieve compression to meet a bit rate requirement from a user. A q~l~nti7~r is a "many to one" fimction Q(x) which maps many input values into a smaller set of output values.
s Q~l~nti7ers are a staircase filnction characterized by a set of numbers called decision points dj and a set of numbers called reconstruction levels rj. An input value x is mapped to a reconstruction level ri if x lies the interval of (dj, dj 11). For example, FIGURE 3 is a diagram showing the mapping of all x values in the interval d, to d2 to the value r,. The interval d, to dj+, may not be uniform for all i.
10 In the plerel~ed embodiment, since the wavelet transform does a good job of decorrelating the image data in general, a uniform scalar qll,qnti7~r is used in the qoqnti7qtion stage 2. The equation for the preîe~lèd uniform scalar ql~qnti7~tion is:
-- --1, x <--_ qi 2 r =~ [O,otherwise] (1) X qi +l X> q' qj 2 where qj is the q~lqnti7~tion size for subband i.
15 In addition, since there is still a high degree of correlation among neighboring pixels in the bqseb~nd image, di~-el,Lial pulse code modlllqtion (DPCM) is used to predict and quantize the b~ceb!qn~ data further. In particular, in the p~e~el~èd embodiment, the bqc~ l" image is scqnned row by row from top to bottom and each pixel is s.ll,jected to the DPCM algorithm. For example, FIGI)RE 4 shows a current pixel x that is predicted using three neighboring pixels a, b, c, which have already been qllqnti7ed A simple prediction is used in the prefe,led embodiment. In particular, the prediction residue r is calculated by:
W O 97/3S427 PCT~US97/04279 r=x-a*-b*+c* (2) where a*, b*, c* are reconstruction (or "de-quAnti7ed") levels for a, b, c The prediction residue r is then passed through a uniform scalar quantizer, such as the one shown in ~ Equation (1).
s S-~bbAn~l images represent edge information under different orientation of different levels.
Thus, each subband will have a separate qU~nti7~tion size acco~dh1g to the statistical properties of such subband. The procedure for determining an optimal q~1Anti7Ation size is called bit allocation. The present invention incl~ld~s a novel adaptive bit allocation scheme described in detail below.
10 AC a result ofthe pr~Çel,ed qlJAnti7Ation stage, the bAcebAl-d and 12 subband images are each processed into a q~ Al;on matrix of reconsLlllction levels r" or quAnti7Ation indices.
~3J ~.0~~ Entropy Coding The final co~ )resa;on is achieved by losslessly encoding the ql~Anti7~tion matrix for each 1S subband in the lossless entropy coder stage 3. The lossless entropy coder stage 3 assigns a variable size token to each qoAnti7~t;on index according to the frequency with which that index appears; the more frequently a particular index appears, the shorter the token ACsigned to it. The prerelled embodiment of the present invention uses the well-known ~llffimAn coding techn;que to encode the data in each subband q~1Anti7~tion matrix. In the prior art, since a majority of the indices in each subband qllAnti7Atit)n matrix are zero-valued, conventional run length coding of each matrix would normally be pelr~ll"ed before ~llfl;nAn coding. Run length coding simply replaces a seql~onee of like-valued data values with a symbol repres~nting the data value and the number of such values in the sequence.
The output of the lossless entropy coder stage 3 is a data structure that represents a compressed version of the original image 20. That data structure may be transmitted and/or stored for later reconstitution into an image that approximates the original image 20.
Based on extensive empirical analysis in deve}oping the present invention, it has been observed that the entropy property (i. e., randomness) of run lengths of zero index values in the subband qu~nti7~tion matrices generated by the present invention is di~l e..L from the entropy plupel~y of non-zero indices. Accoldingly, a hybrid entropy coding algorithm was developed which gives an appro~ lalely 10% percent improvement over the 10 conventional run length and ~l~ffm~n coding approach. This hybrid entropy coding algorithm is described in detail below.
Bit ~llo~t;Qn Bit allocation is a process of d~Lell,l,ning the q~l~nti7~tion size for baseband and subband images so that the overall q~ l;on error apl)ro~ les a .. ;l-;.. under the 5 constraint of a total bit rate set by a user. Detell,~ ng such m;nimllm.C is a typical progli.. ;.. p: problem in m~them~tics One could write:
min ~ l D (R ) under the condition: -~ m Rk Rrotal (4) 20 where: D,~R,;~ and R,~ are the distortion (q~lA ~ l;on çrror) and the bit rate for the b~ceb~nd image and each subband image, respe~,Li./ely; R,o,a~ is a selected total bit rate;
and mk is the down sample factor, which is defined to be the ratio of image size to s ~bb~nd size (for example, for the decomposition structure shown in FIGURE 2, mLH~ =
16, mLH3 = 256).
CA 02249259 l998-09-l7 The solution of Equation (3) can be found by a Lagrange multiplier method:
(J) Rk ~ --Dk(R~ + A (R,o,a, ~ --Rk) (5) ~ where J is the overall cost fi nction, and ~ is the Lagrange multiplier. The minimum of Jis achieved when the first partial derivative of Jequals zero. This condition yields:
~D,(Rj ) ~R, ~i (6) for all subbands i. To solve Equation (6), the explicit e.~,ules~ion of D~(Rk) needs to be known. However, in practice, it is hard to find the explicit e.~yr~ s~ion for D~(Rk) for each subband.
It is known that the probability distribution fimcvtion (PDF) of subband data can be 10 approYim~ted by a Generalized G~ss~n model, for which Dk(Rk) is known. This ~proacll leads to allocating the bit rate in plOpOI lion to the log~i~ " of the variance of the subband data, and is widely used in various wavelet image coding SChf-l~f.,S.
Unfortunately, carefully f ~ ion of this method shows that this method is not correct and cannot lead to optimal bit allocation. If bit rate allocation is done simply in propolLion to the logarithm ofthe variance ofthe subb~n~l this implies that, if the two subbands have the same variance, then their curve will be the same. On the contrary, based on extensive e.,lyi~ al analysis in developing the present invention, it has been found that the best-fit curve is quite di~ nt for subb~n-ls with the same variance.
Instead of the above metho~l, the pleÇ~.Ied embodiment takes advantage of the 20 observations, made during the development of the present invention, that (1) the logarithm of the mean square error (MSE) of the qu~nti~tion of a subband to the colle~yohdillg bit rate (dete~ ed by lossless coding of the qu~nti7~tion indices for such subband) can be appro~ill,aled by a straight line, and (2) that such bit rate can be approxim~t~d from the qll~nti~tion size.
W O 97/35427 PCT~US97/04279 -12-Using a straight line model, the distortion (qu~nti7~tion error) to bit rate curve for each band can be expressed as:
D (R ) = ea~R~ t ~
where a~. and bk are parameters representing the line and depending on subband k. Using 5 Equation (7), Equation (6) becomes:
Rk = --Q~g (--) ~ bk) (8) Under the co~ inl of the total bit rate R~ b this results in:
Rk = log~ ( bk log (ak) k=l mk k=l mkak k=l mkak mkak From Equation (9):
~o 1 = exp ~ J (10) k = I m kak From Equation (10), the sllbb~n~l bit rate can be derived using Equation (8). However, since the goal is to find qu~ ;on size rather than bit rate, the relationship between bit rate and qll~nti7~tion size must be determined. It is observed that the relationship between bit rate R* and q~ 1 ;on size Q~ can be a~pro~i"laled using following equation:
Maxk - ~in rOg Q = CkRk dk (l l) W O 97/35427 PCT~US97/04279 From Equation (11):
O Ma~k Mink exp (CkRk +dk) (12) where: Maxk, Mink are the maximum and minim~1m coefficients of subband k; and cl. and d~, similar to ak and bk, are constants depending on the statistical properties of subband s k and can be estim~ted using simple curve fitting.
Using the above model, the bit allocation problem can be solved by e~ g ab bb ckand dk for each subband. These estim~tions can be done off-line by st~tictic~lly~lr~ ting the bit rate for each subband over a large number of sample images. However this may not be optimal for a particular image. Since ab bb ck and dk are p&~ eters to representin~ a straight line, they can easily be ~stim~ted on the fly. Suppose n points in the curve D,~l~Rk) are known, and also Q,~(Rk), i.e., (Q" D" R,), i = 1, 2, .. . n, then:
n n n n ~ Rj log(D,.) - ~ Rj ~ log(Di) F l j . l ~k n n n (13) n~Ri2-~Rj~Ri i=l j=l j -l n n ~ log(D,.) -ak~R, (14) n n ~ R IOg MaXk Mink _ ~, R ~ IOg MC~k Mink Ck = ~ Q~ Q j ( 1 5 ) n~R j2 - ~ Rj ~ Ri i=l 1=l j=l L Maxk - Mink ~ R
Q~ I F ¦
n (16) In the p- ~rerled embodiment, the set of Qj are set to have initial default values covering a reasonable range of possible ql~nti7~tion values. D" the distortion (error) of quan-tization, is calculated using Equation (1). The bit rate, R" is c~lc~ te(~ by calling the lossless encoder routine (described below). In the ,~,erel.ed embodiment, n is empirically set to 6. However, other values may be used for n, as desired.
Using the above approach, the following steps are pt;lroll.,cd in the pl~Çe.led embodiment of the present invention to adaptively deL~ e bit allocations for the b~ceb~n(l and subband images during the q~ ;7~1ion stage 2:
10 (1) Fstim~te values for palal--~,Lers d~ofining an appro~ ;r.n beL~ee.~ q~l~nti7~tior~
si_e and q,~..l;,~l;ol- error for each subband - this is, e~ le ak, bb c~ and dk for each sl1bb~n-1 irnage k, using Fqll~tiQnc (13), (14), (15), and (16). Again, Ma~k and Mink are the maximum and .. ;.. ;~.. coeffici~ntc of subb~n~ k, detell.lll1ed by sea~ .ng the coefficients. Calc~ te an initial set of Q from:
Max - Min~
N, (17) whereNj={8,12,15,24,48,64}forthefirst8subbands,andNi={8, 10,14, 18, 36, 50} for last 4 subbands. Nj is the total number of qll~nti7~tion levels for Qi.
The number of bits per index is close to Log(N,) if a lossless coding tecl~ e isnot ll~i, The values for Nl are eul~ically chosen to cover a pGs;,il~le range of bit rates for each s~.bb~n-l (2) F.stim~te values for p~ ~I-eLers d~finin~ an appro~.lnation between qn~nti7~tion size and c~ nti7~tion error for the b~ceb~nd - that is, ~stim~te ab bb ck and d~ for the b~ceb~n~ image using Equations (13), (14), (15), and (16). Max and Min are WO 97/35427 PCT~US97/04279 set to 2000 and 0, respectively, for the b~ceban~ Max and Min are fixed values for the b~Aceb~n-l image in Equation ( I I ) because the baseband image uses DPCM
qllAnti7Ation. The preferred values were empirically determined Q = ~4, 10, 20, 40, 80, 100}. The values for O, were empirically chosen to cover a reasonable s range of Q; for the b~seban~ image.
(3) Calculate the optimal bit rate Rk for each of the bAcebAnc~ and subband images using Equations (8) and (10).
(4) If Rk < 0, indicating il~- l.laLion in subband k is so small that it can be discarded, mark subband k and exclude it from the subband pool, and loop to step (3) and recalculate the optimal bit rates R~.
(S) Calculate Qk using Equation (12). The result of this process is a set of optimal qu~nti7Ation size values Qk that can be used in F.q~Ation (1) (shown there as q,).
Lossless Entropy Coding In the prior art, the ql~A..l;~Al;on matrices would be run length code and then ~l~n~n 15 coded. The present invention teaches â more efficient method of coding that gives an ~lY 10% percent improvement over the conventional run length and H~1fl;r1An coding approach.
FIGURE 5 is a flow chart showing the hybrid lossless entropy coding algolilhlll of the present invention. Initially, each subband is represe,lted at this stage by a ql~..l;,Al;on matrix 50 Col~ u~g a set of qu~ A~;on indices. Each quA~ Al;on matrix 50 is parsed so that (1) the position of each non-zero index is replaced by the special token "1", and (2) each non-zero index is extracted and put in a separate stream. This results in a simple binary mask matrix 51 that indir.~tes the position of each non-zero index in each subband, and a stream 52 of the non-zero indices.
Norrnally, such a binary mask 51 would be harder to collll)rc~,~ than the non-zero strea 52 because the binary mask 51 actually represents the structure ii~olll,ation of the original image. However, it was observed during the development of the invention that CA 022492~9 1998-09-17 the data in each subband is typically so sparse that the run lengths of"0" are very long but the run lengths of"l" are normally short. In other words, the entropy property of run lengths of "0" is different from the entropy property of run lengths of "1". Thus, it was concluded that it would be better to Hllffim~n code the "0" run length indices and "1" run s length indices separately.
Accordingly, in the pl~re-led embodiment, the binary mask 51 is processed using conventional run length coding (inrluding coding the run length of the "1" tokens) to generate a run length coded matrix 53. It will be noted that since the binary mask 51 is only bi-valued, the run lengths of"0" and "1" alternate. Therefore, the run length coded 10 matrix 53 has an odd-even pattern. This pattern is parsed into two run length streams 54, 55, d~fining an odd stream 54 of run length values for "0" and an even stream 55 of run length values for " 1 " . (Of course, the de~ig~tion of odd and even may be reversed).
The result of this process is that the q!~nfi7~tion matrix for each subband is divided into three streams (non-zero stream 52, "0" run length stream 54, and "1" run length stream 15 55), which are then ~ll~n~n coded sepalalely in conventional fashion.
Ideally, each subband would be processed in this manner individually, since their st~ti~tic~l prope,lies are ~ e--L. However, for 12 subbands, 36 Hllfl;n~n streams will be ge~laled (further, for color images, each subband has three color space co--lpollents, such as YUV or RGB). This is not very effici~nf in terms of speed and file size due to additional overhead in the file format. Empirically, it was determined that the three subbands on each level of the wavelet transforrn have quite similar entropy properties.
Accordingly, in the prere-led embodiment of the present invention, the q~nti7~tion e~s of each such set ofthree subb~nds are c~ ined tog~ ,r on a row-by-row basis before applying the above hybrid coding scheme. (Other combinaLions~ such as column-2s by-column, could be used as well).
CA 02249259 l998-09-l7 In the preferred embodiment, conventional run length coding followed by Huffman coding is used for the baseband because the baseband residue is not sparse and applying the above hybrid coding approach results in little or no gain in compression. However, if desired, the inventive hybrid coding algorithm could be used for the baseband as well.
Importantly, the hybrid coding algorithm may be used in any other context where a substantial difference exists in the entropy property of run lengths of"O" compared to the entropy plOpelly of run lengths of non-zero elements (which may be transformed by substitution to "1" tokens).
In the p-efel-ed embodiment, conventional run length coding plus a Hnffin~n coding approach is used in the lossless encoder routine for coding the b~ceb~nd and subbands used by the qll~nti~tion stage 2 to deterrnine the bit rate associated with a particular nti7~tion size Q. This approach was s.ole~led in consideration of computational speed and memory limitations. However, it should be recognized that other means of determining or P,l;"~ g the bit rate could be used, such as the hybrid approach des~,-il)ed above.
Format of a Compressed Stream In the pr~fel-~,d ~mhoclim~nt~ each ~nflin~n coded stream for the b~ceb~ntl and subbands, as well as other general image information, are combined together into a single bi~ ,an-.
In the pi~relled embodiment, the final bi~ is olg~ized in the following order toachieve progressive playback (that is, decoding the baceban~ portion of the bi~sLI èalll for the co",p,essed image so as to generate a first, "grainy" image, and then progressively decoding each subband portion of the bi~ ;anl to succ~c.cively overlay and add , resc~.~ tion to the underlying image until done) General Image Information y R~ceb~n~
U B~ceb~n~i V B~ceb~nti Y Subbands I
U Subbands 1 V Subbands I
Y Subbands 2 U Subbands 2 V Subbands 2 Y Subbands 3 U Subbands 3 V Subbands 3 Y Subbands 4 U Subbands 4 V Subbands 4 General Image I,~lo",..~lion The general image i,~~ ion in~ d~ inrolll,ation about the dimension of the image and color space, and comprises the following components in the ple~tlled embo~1im~nt Component Function IWavelet Stream ID (Ox15) 2 Color Space (Ox20 for grayscale image, Ox03 for YUV image) 3 Columns low byte 4 Columns high byte Rows low byte 6 Rows high byte Baseband Stream Each baceb~n~ strearn (i.e., one for each color) colll~,lises a biL~lleam in~lnrlin~ the following components in the preft.led embodiment:
Component Function 1 Qu~nti7~tion Size: I or2bytes 2 Hl~ffin~n Bit Stream for b~eb~n~
CA 02249259 l998-09-l7 WO97!35427 PCT~US97/04279 _l9_ Subband~ Stream Each subband stream comprises a bitstream for each color of three subbands correspond-ing to each level of the prefelled wavelet transform, and includes the followingcomponents in the plefelled embodiment:
5Component Function No of bytes for non-zero index stream in current level (I or 2 bytes) 2 No. of bytes for '~1" run length stream in current level (1 or 2 bytes) 3 Level illro-.,lalion (1 byte): lowest 3 bits in~ic~qlte if the subband was discarded 4 QuqntT~tion size for LH ~subband if not discarded (1 or 2 bytes) Q~l~nti~,qtion size of ~DL subband if not discarded (1 or 2 bytes) 6 Q~ l;on size of HH s~bbqn(' if not discarded (1 or 2 bytes) 7 ~nffin_n stream for non-zero index 8 ~ n stream for"l" run length g ~lTfl~m~n stream for "O" run length Decoding Decoding of a bi~Lie&lll encoded with the present invention is straightforward, and may be accomplished as follows:
(1) Decode the ~lffinqn streams;
(2) For each subband, rebuild a binary mask by interleaving and exrqn~lin~e the "O"
run length streams and "1" run length ~L~n~, (3) Rebuild the col~ ,ordillg qnsT ~ ;on matrix from the binary mask and the non-zero stream by sequentially substituting the non-zero values for "1" tokens (this may be combined with step (2));
CA 02249259 l998-09-l7 (4) Apply the corresponding q~.~nti7~tion size values to each qu~nti7~tion matrix in known fashion to generate the baseband image and subband images;
(S) Calculate Qk using Equation (12). The result of this process is a set of optimal qu~nti7Ation size values Qk that can be used in F.q~Ation (1) (shown there as q,).
Lossless Entropy Coding In the prior art, the ql~A..l;~Al;on matrices would be run length code and then ~l~n~n 15 coded. The present invention teaches â more efficient method of coding that gives an ~lY 10% percent improvement over the conventional run length and H~1fl;r1An coding approach.
FIGURE 5 is a flow chart showing the hybrid lossless entropy coding algolilhlll of the present invention. Initially, each subband is represe,lted at this stage by a ql~..l;,Al;on matrix 50 Col~ u~g a set of qu~ A~;on indices. Each quA~ Al;on matrix 50 is parsed so that (1) the position of each non-zero index is replaced by the special token "1", and (2) each non-zero index is extracted and put in a separate stream. This results in a simple binary mask matrix 51 that indir.~tes the position of each non-zero index in each subband, and a stream 52 of the non-zero indices.
Norrnally, such a binary mask 51 would be harder to collll)rc~,~ than the non-zero strea 52 because the binary mask 51 actually represents the structure ii~olll,ation of the original image. However, it was observed during the development of the invention that CA 022492~9 1998-09-17 the data in each subband is typically so sparse that the run lengths of"0" are very long but the run lengths of"l" are normally short. In other words, the entropy property of run lengths of "0" is different from the entropy property of run lengths of "1". Thus, it was concluded that it would be better to Hllffim~n code the "0" run length indices and "1" run s length indices separately.
Accordingly, in the pl~re-led embodiment, the binary mask 51 is processed using conventional run length coding (inrluding coding the run length of the "1" tokens) to generate a run length coded matrix 53. It will be noted that since the binary mask 51 is only bi-valued, the run lengths of"0" and "1" alternate. Therefore, the run length coded 10 matrix 53 has an odd-even pattern. This pattern is parsed into two run length streams 54, 55, d~fining an odd stream 54 of run length values for "0" and an even stream 55 of run length values for " 1 " . (Of course, the de~ig~tion of odd and even may be reversed).
The result of this process is that the q!~nfi7~tion matrix for each subband is divided into three streams (non-zero stream 52, "0" run length stream 54, and "1" run length stream 15 55), which are then ~ll~n~n coded sepalalely in conventional fashion.
Ideally, each subband would be processed in this manner individually, since their st~ti~tic~l prope,lies are ~ e--L. However, for 12 subbands, 36 Hllfl;n~n streams will be ge~laled (further, for color images, each subband has three color space co--lpollents, such as YUV or RGB). This is not very effici~nf in terms of speed and file size due to additional overhead in the file format. Empirically, it was determined that the three subbands on each level of the wavelet transforrn have quite similar entropy properties.
Accordingly, in the prere-led embodiment of the present invention, the q~nti7~tion e~s of each such set ofthree subb~nds are c~ ined tog~ ,r on a row-by-row basis before applying the above hybrid coding scheme. (Other combinaLions~ such as column-2s by-column, could be used as well).
CA 02249259 l998-09-l7 In the preferred embodiment, conventional run length coding followed by Huffman coding is used for the baseband because the baseband residue is not sparse and applying the above hybrid coding approach results in little or no gain in compression. However, if desired, the inventive hybrid coding algorithm could be used for the baseband as well.
Importantly, the hybrid coding algorithm may be used in any other context where a substantial difference exists in the entropy property of run lengths of"O" compared to the entropy plOpelly of run lengths of non-zero elements (which may be transformed by substitution to "1" tokens).
In the p-efel-ed embodiment, conventional run length coding plus a Hnffin~n coding approach is used in the lossless encoder routine for coding the b~ceb~nd and subbands used by the qll~nti~tion stage 2 to deterrnine the bit rate associated with a particular nti7~tion size Q. This approach was s.ole~led in consideration of computational speed and memory limitations. However, it should be recognized that other means of determining or P,l;"~ g the bit rate could be used, such as the hybrid approach des~,-il)ed above.
Format of a Compressed Stream In the pr~fel-~,d ~mhoclim~nt~ each ~nflin~n coded stream for the b~ceb~ntl and subbands, as well as other general image information, are combined together into a single bi~ ,an-.
In the pi~relled embodiment, the final bi~ is olg~ized in the following order toachieve progressive playback (that is, decoding the baceban~ portion of the bi~sLI èalll for the co",p,essed image so as to generate a first, "grainy" image, and then progressively decoding each subband portion of the bi~ ;anl to succ~c.cively overlay and add , resc~.~ tion to the underlying image until done) General Image Information y R~ceb~n~
U B~ceb~n~i V B~ceb~nti Y Subbands I
U Subbands 1 V Subbands I
Y Subbands 2 U Subbands 2 V Subbands 2 Y Subbands 3 U Subbands 3 V Subbands 3 Y Subbands 4 U Subbands 4 V Subbands 4 General Image I,~lo",..~lion The general image i,~~ ion in~ d~ inrolll,ation about the dimension of the image and color space, and comprises the following components in the ple~tlled embo~1im~nt Component Function IWavelet Stream ID (Ox15) 2 Color Space (Ox20 for grayscale image, Ox03 for YUV image) 3 Columns low byte 4 Columns high byte Rows low byte 6 Rows high byte Baseband Stream Each baceb~n~ strearn (i.e., one for each color) colll~,lises a biL~lleam in~lnrlin~ the following components in the preft.led embodiment:
Component Function 1 Qu~nti7~tion Size: I or2bytes 2 Hl~ffin~n Bit Stream for b~eb~n~
CA 02249259 l998-09-l7 WO97!35427 PCT~US97/04279 _l9_ Subband~ Stream Each subband stream comprises a bitstream for each color of three subbands correspond-ing to each level of the prefelled wavelet transform, and includes the followingcomponents in the plefelled embodiment:
5Component Function No of bytes for non-zero index stream in current level (I or 2 bytes) 2 No. of bytes for '~1" run length stream in current level (1 or 2 bytes) 3 Level illro-.,lalion (1 byte): lowest 3 bits in~ic~qlte if the subband was discarded 4 QuqntT~tion size for LH ~subband if not discarded (1 or 2 bytes) Q~l~nti~,qtion size of ~DL subband if not discarded (1 or 2 bytes) 6 Q~ l;on size of HH s~bbqn(' if not discarded (1 or 2 bytes) 7 ~nffin_n stream for non-zero index 8 ~ n stream for"l" run length g ~lTfl~m~n stream for "O" run length Decoding Decoding of a bi~Lie&lll encoded with the present invention is straightforward, and may be accomplished as follows:
(1) Decode the ~lffinqn streams;
(2) For each subband, rebuild a binary mask by interleaving and exrqn~lin~e the "O"
run length streams and "1" run length ~L~n~, (3) Rebuild the col~ ,ordillg qnsT ~ ;on matrix from the binary mask and the non-zero stream by sequentially substituting the non-zero values for "1" tokens (this may be combined with step (2));
CA 02249259 l998-09-l7 (4) Apply the corresponding q~.~nti7~tion size values to each qu~nti7~tion matrix in known fashion to generate the baseband image and subband images;
(5) Apply the inverse L~ r~JIlll in known fashion to the baseband image and subband images to generate an approximation of the original image.
s The decoded images in the b~ceb~n-l level and each subband level ~om step (S) may be displayed before decoding the next level, thereby permitting progressive playback.
Implementation The invention may be impl~om~nted in hardware or software, or a colllbillalion of both.
However, preferably, the invention is impl~ .led in one or more computer programs 10 executing on one or more prog~ able computers each comprising a processor, a data storage system (inchlAing volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device. Plogl~ull code is applied to input data to pelru,ll~ the fim~.ti~c described herein and gcne.~le output i~lfollllaLion. The output ;I~rollllalion is applied to one or more output devices, in known f~chion - 15 Each program is preferably imrlçmPnted in a high level procedural or object oriented pro~,.. ;.~g lan~l~e to c~ ~ate with a comrut~r system. However, the programs can be implçnll~nted in assembly or m~hine l~ ge7 if desired. In any case, the l~n~ge may be a compiled or interpreted l~n~e Each such computer program is preferably stored on a storage media or device (e.g, ROM or m~nçfic Aickette) readable by a general or special purpose progl~ll,llable comrllt~, for configuring and opel ~L;i g the computer when the storage media or device is read by the c~ to pc~ the procedures dcs."il,ed herein. The inventive system may also be considered to be implem~nted as a computer-readable storage meAillm,corlfi~.red with a computer program, where the storage me~ m so configured causes a computer to operate in a specific and pred~fined manner to pel~llll the fiunctions described herein.
CA 022492~9 1998-09-17 A number of embodiments of the present invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, while the terrn "matrix" has been used to describe an image data structure, it should not be interpreted to mean a strict two-s dimensional data structure. Other data structures known in the art can as easily be used to store the relevant pixel or index information. Further, while ~llffm~n coding has been referred to as the ple~lled method for the final lossless entropy coding step, other lossless entropy coding algorithms, such as arithmetic coding, may be used. Moreover, while image colllpression has been ~icc~lcse~ the algorithms described herein may be 10 applied to other data types. Accordingly, it is to be understood that the invention is not to be limited by the specific illustrated embodiment, but only by the scope of the appended claims.
s The decoded images in the b~ceb~n-l level and each subband level ~om step (S) may be displayed before decoding the next level, thereby permitting progressive playback.
Implementation The invention may be impl~om~nted in hardware or software, or a colllbillalion of both.
However, preferably, the invention is impl~ .led in one or more computer programs 10 executing on one or more prog~ able computers each comprising a processor, a data storage system (inchlAing volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device. Plogl~ull code is applied to input data to pelru,ll~ the fim~.ti~c described herein and gcne.~le output i~lfollllaLion. The output ;I~rollllalion is applied to one or more output devices, in known f~chion - 15 Each program is preferably imrlçmPnted in a high level procedural or object oriented pro~,.. ;.~g lan~l~e to c~ ~ate with a comrut~r system. However, the programs can be implçnll~nted in assembly or m~hine l~ ge7 if desired. In any case, the l~n~ge may be a compiled or interpreted l~n~e Each such computer program is preferably stored on a storage media or device (e.g, ROM or m~nçfic Aickette) readable by a general or special purpose progl~ll,llable comrllt~, for configuring and opel ~L;i g the computer when the storage media or device is read by the c~ to pc~ the procedures dcs."il,ed herein. The inventive system may also be considered to be implem~nted as a computer-readable storage meAillm,corlfi~.red with a computer program, where the storage me~ m so configured causes a computer to operate in a specific and pred~fined manner to pel~llll the fiunctions described herein.
CA 022492~9 1998-09-17 A number of embodiments of the present invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, while the terrn "matrix" has been used to describe an image data structure, it should not be interpreted to mean a strict two-s dimensional data structure. Other data structures known in the art can as easily be used to store the relevant pixel or index information. Further, while ~llffm~n coding has been referred to as the ple~lled method for the final lossless entropy coding step, other lossless entropy coding algorithms, such as arithmetic coding, may be used. Moreover, while image colllpression has been ~icc~lcse~ the algorithms described herein may be 10 applied to other data types. Accordingly, it is to be understood that the invention is not to be limited by the specific illustrated embodiment, but only by the scope of the appended claims.
Claims (12)
1. A hybrid lossless entropy coding method for compressing data comprising a matrix including a plurality of zero indices and non-zero indices, the method including the steps of:
(a) replacing each non-zero index in the matrix by a unique token, thereby generating a parsed matrix including a plurality of zero indices and token indices, the run length codes including even run length codes and odd run length codes;
(b) placing each non-zero index from the matrix into a first data stream;
(c) run length coding the parsed matrix into alternating run length codes for the zero indices and unique token indices, the run length codes including even run length codes and odd run length codes;
(d) placing the even run length codes into a second data stream;
(e) placing the odd run length codes into a third data stream; and (f) coding each of the first, second, and third data streams with a lossless entropy coding algorithm.
(a) replacing each non-zero index in the matrix by a unique token, thereby generating a parsed matrix including a plurality of zero indices and token indices, the run length codes including even run length codes and odd run length codes;
(b) placing each non-zero index from the matrix into a first data stream;
(c) run length coding the parsed matrix into alternating run length codes for the zero indices and unique token indices, the run length codes including even run length codes and odd run length codes;
(d) placing the even run length codes into a second data stream;
(e) placing the odd run length codes into a third data stream; and (f) coding each of the first, second, and third data streams with a lossless entropy coding algorithm.
2. A hybrid lossless entropy coding method for compressing data, the method being implemented in a programmed computer comprising a processor, a data storage system, and at least one output device, the method including the steps of:
(a) storing data in the data storage system of the programmed computer, the data comprising a matrix including a plurality of zero indices and non-zero indices;
(b) replacing each non-zero index in the matrix by a unique token, thereby generating a parsed matrix including a plurality of zero indices and token indices;
(c) placing each non-zero index from the matrix into a first data stream;
(d) run length coding the parsed matrix into alternating run length codes for the zero indices and unique token indices, the run length codes including even run length codes and odd run length codes;
(e) placing the even run length codes into a second data stream;
(f) placing the odd run length codes into a third data stream;
(g) coding each of the first, second, and third data streams with a lossless entropy coding algorithm to thereby generate output information; and (h) applying the output information to at least one of the output devices.
(a) storing data in the data storage system of the programmed computer, the data comprising a matrix including a plurality of zero indices and non-zero indices;
(b) replacing each non-zero index in the matrix by a unique token, thereby generating a parsed matrix including a plurality of zero indices and token indices;
(c) placing each non-zero index from the matrix into a first data stream;
(d) run length coding the parsed matrix into alternating run length codes for the zero indices and unique token indices, the run length codes including even run length codes and odd run length codes;
(e) placing the even run length codes into a second data stream;
(f) placing the odd run length codes into a third data stream;
(g) coding each of the first, second, and third data streams with a lossless entropy coding algorithm to thereby generate output information; and (h) applying the output information to at least one of the output devices.
3. The method of claims 1 or 2, wherein the unique token is "1".
4. The method of claims 1 or 2, wherein the lossless entropy coding algorithm is Huffman coding.
5. The method of claims 1 or 2, wherein the lossless entropy coding algorithm is arithmetic coding.
6. The method of claims 1 or 2, wherein the matrix comprises quantization indices derived from an image by a lossy data compression and quantization system.
7. A computer-readable storage medium storing a computer program for compressing data using a hybrid lossless entropy coding algorithm, the data comprising a matrix including a plurality of zero indices and non-zero indices, where the computer program stored on the storage medium causes a computer to operate in a specific and predefined manner to perform the functions of:
(a) replacing each non-zero index in the matrix by a unique token, thereby generating a parsed matrix including a plurality of zero indices and token indices;
(b) placing each non-zero index from the matrix into a first data stream;
(c) run length coding the parsed matrix into alternating run length codes for the zero indices and unique token indices, the run length codes including even run length codes and odd run length codes;
(d) placing the even run length codes into a second data stream;
(e) placing the odd run length codes into a third data stream; and (f) coding each of the first, second, and third data streams with a lossless entropy coding algorithm.
(a) replacing each non-zero index in the matrix by a unique token, thereby generating a parsed matrix including a plurality of zero indices and token indices;
(b) placing each non-zero index from the matrix into a first data stream;
(c) run length coding the parsed matrix into alternating run length codes for the zero indices and unique token indices, the run length codes including even run length codes and odd run length codes;
(d) placing the even run length codes into a second data stream;
(e) placing the odd run length codes into a third data stream; and (f) coding each of the first, second, and third data streams with a lossless entropy coding algorithm.
8. The invention of claim 7, wherein the unique token is "1".
9. The invention of claim 7, wherein the lossless entropy coding algorithm is Huffman coding.
10. The invention of claim 7, wherein the lossless entropy coding algorithm is arithmetic coding.
11. The invention of claim 7, wherein the matrix comprises quantization indices derived from an image by a lossy data compression and quantization system.
12. A method for compressing image data, comprising the steps of:
(a) storing an image in a computer as image data;
(b) applying a transform algorithm to decorrelate the image data into a baseband and multiple subbands;
(c) generating quantization coefficients by the steps of:
(1) estimating values for parameters defining an approximation between quantization size and the logarithm of quantization error for each subband;
(2) estimating values for parameters defining an approximation between quantization size and the logarithm of quantization error for the baseband;
(3) calculating an optimal bit rate R k for each of the baseband and subbands;
(4) marking each subband k and excluding it from the subbands if R k < 0 for such subband k, and then looping to step (3);
(5) calculating a quantization size Q k for each of the baseband and subbands as:
where Max k and Min k are the maximum and minimum coefficients of subband k, and c k and d k are constants depending on statistical properties of subbband k;
(d) applying each quantization size Q k to corresponding ones of the baseband and multiple subbands to generate corresponding quantization matrices each comprising a plurality of zero indices and non-zero indices;
(e) applying a hybrid lossless entropy coding algorithm to losslessly compress each quantization matrix by the steps of:
(1) replacing each non-zero index in the quantization matrix by a unique token, thereby generating a parsed matrix including a plurality of zero indices and token indices;
(2) placing each non-zero index from the quantization matrix into a first data stream;
(3) run length coding the parsed matrix into alternating run length codes for the zero indices and unique token indices, the run length codes including even run length codes and odd run length codes;
(4) placing the even run length codes into a second data stream;
(5) placing the odd run length codes into a third data stream; and (6) coding each of the first, second, and third data streams with a lossless entropy coding algorithm.
(a) storing an image in a computer as image data;
(b) applying a transform algorithm to decorrelate the image data into a baseband and multiple subbands;
(c) generating quantization coefficients by the steps of:
(1) estimating values for parameters defining an approximation between quantization size and the logarithm of quantization error for each subband;
(2) estimating values for parameters defining an approximation between quantization size and the logarithm of quantization error for the baseband;
(3) calculating an optimal bit rate R k for each of the baseband and subbands;
(4) marking each subband k and excluding it from the subbands if R k < 0 for such subband k, and then looping to step (3);
(5) calculating a quantization size Q k for each of the baseband and subbands as:
where Max k and Min k are the maximum and minimum coefficients of subband k, and c k and d k are constants depending on statistical properties of subbband k;
(d) applying each quantization size Q k to corresponding ones of the baseband and multiple subbands to generate corresponding quantization matrices each comprising a plurality of zero indices and non-zero indices;
(e) applying a hybrid lossless entropy coding algorithm to losslessly compress each quantization matrix by the steps of:
(1) replacing each non-zero index in the quantization matrix by a unique token, thereby generating a parsed matrix including a plurality of zero indices and token indices;
(2) placing each non-zero index from the quantization matrix into a first data stream;
(3) run length coding the parsed matrix into alternating run length codes for the zero indices and unique token indices, the run length codes including even run length codes and odd run length codes;
(4) placing the even run length codes into a second data stream;
(5) placing the odd run length codes into a third data stream; and (6) coding each of the first, second, and third data streams with a lossless entropy coding algorithm.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA002358857A CA2358857C (en) | 1996-03-19 | 1997-03-19 | Data compression using adaptive bit allocation and hybrid lossless entropy encoding |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/618,368 US5682152A (en) | 1996-03-19 | 1996-03-19 | Data compression using adaptive bit allocation and hybrid lossless entropy encoding |
US08/618,368 | 1996-03-19 | ||
PCT/US1997/004279 WO1997035427A1 (en) | 1996-03-19 | 1997-03-19 | Data compression using adaptive bit allocation and hybrid lossless entropy encoding |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002358857A Division CA2358857C (en) | 1996-03-19 | 1997-03-19 | Data compression using adaptive bit allocation and hybrid lossless entropy encoding |
Publications (2)
Publication Number | Publication Date |
---|---|
CA2249259A1 CA2249259A1 (en) | 1997-09-25 |
CA2249259C true CA2249259C (en) | 2002-01-01 |
Family
ID=24477417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002249259A Expired - Lifetime CA2249259C (en) | 1996-03-19 | 1997-03-19 | Data compression using adaptive bit allocation and hybrid lossless entropy encoding |
Country Status (10)
Country | Link |
---|---|
US (2) | US5682152A (en) |
EP (2) | EP0888689B1 (en) |
JP (1) | JP3271985B2 (en) |
AT (1) | ATE242577T1 (en) |
AU (1) | AU719715B2 (en) |
BR (1) | BR9708130A (en) |
CA (1) | CA2249259C (en) |
DE (1) | DE69722601T2 (en) |
HU (1) | HUP9700604A3 (en) |
WO (1) | WO1997035427A1 (en) |
Families Citing this family (152)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5748116A (en) * | 1996-11-27 | 1998-05-05 | Teralogic, Incorporated | System and method for nested split coding of sparse data sets |
US6529551B1 (en) * | 1996-12-10 | 2003-03-04 | Thomson Licensing S.A. | Data efficient quantization table for a digital video signal processor |
AU6863998A (en) * | 1997-03-11 | 1998-09-29 | Computer Information And Sciences, Inc. | System and method for image compression and decompression |
WO1999017257A2 (en) * | 1997-09-29 | 1999-04-08 | Conexant Systems, Inc. | System and method for compressing images using multi-threshold wavelet coding |
US6038346A (en) * | 1998-01-29 | 2000-03-14 | Seiko Espoo Corporation | Runs of adaptive pixel patterns (RAPP) for lossless image compression |
US6249614B1 (en) * | 1998-03-06 | 2001-06-19 | Alaris, Inc. | Video compression and decompression using dynamic quantization and/or encoding |
US6121904A (en) * | 1998-03-12 | 2000-09-19 | Liquid Audio, Inc. | Lossless data compression with low complexity |
US6043763A (en) * | 1998-03-12 | 2000-03-28 | Liquid Audio, Inc. | Lossless data compression with low complexity |
US6298166B1 (en) | 1998-03-30 | 2001-10-02 | Seiko Epson Corporation | Image transformations in the compressed domain |
US6124811A (en) * | 1998-07-02 | 2000-09-26 | Intel Corporation | Real time algorithms and architectures for coding images compressed by DWT-based techniques |
US6763139B1 (en) * | 1998-07-03 | 2004-07-13 | Canon Kabushiki Kaisha | Image coding method and apparatus for localized decoding at multiple resolutions |
US6094631A (en) * | 1998-07-09 | 2000-07-25 | Winbond Electronics Corp. | Method of signal compression |
US6952823B2 (en) * | 1998-09-01 | 2005-10-04 | Pkware, Inc. | Software patch generator using compression techniques |
US6195026B1 (en) * | 1998-09-14 | 2001-02-27 | Intel Corporation | MMX optimized data packing methodology for zero run length and variable length entropy encoding |
US6697525B1 (en) | 1998-10-02 | 2004-02-24 | Parthusceva Ltd. | System method and apparatus for performing a transform on a digital image |
US6633679B1 (en) * | 1999-03-23 | 2003-10-14 | Teletechnologies, Ltd. | Visually lossless still image compression for CMYK, CMY and Postscript formats |
US6441764B1 (en) * | 1999-05-06 | 2002-08-27 | Massachusetts Institute Of Technology | Hybrid analog/digital signal coding |
US8212893B2 (en) | 1999-06-08 | 2012-07-03 | Verisign, Inc. | Digital camera device and methodology for distributed processing and wireless transmission of digital images |
US7369161B2 (en) * | 1999-06-08 | 2008-05-06 | Lightsurf Technologies, Inc. | Digital camera device providing improved methodology for rapidly taking successive pictures |
US7372485B1 (en) * | 1999-06-08 | 2008-05-13 | Lightsurf Technologies, Inc. | Digital camera device and methodology for distributed processing and wireless transmission of digital images |
US6351491B1 (en) * | 1999-06-23 | 2002-02-26 | Sarnoff Corporation | Apparatus and method for optimizing the rate control for multiscale entropy encoding |
US6704454B1 (en) * | 1999-07-23 | 2004-03-09 | Sarnoff Corporation | Method and apparatus for image processing by generating probability distribution of images |
US6469688B1 (en) * | 1999-08-02 | 2002-10-22 | Hewlett-Packard Company | Extensible, interactive bitmaps in a graphical user interface |
US7111094B1 (en) | 1999-08-02 | 2006-09-19 | Shin-Ping Liu | System, method and algorithm for the optimization of entropy for lossless compression |
US6318156B1 (en) * | 1999-10-28 | 2001-11-20 | Micro Motion, Inc. | Multiphase flow measurement system |
US7103357B2 (en) | 1999-11-05 | 2006-09-05 | Lightsurf Technologies, Inc. | Media spooler system and methodology providing efficient transmission of media content from wireless devices |
US7847833B2 (en) * | 2001-02-07 | 2010-12-07 | Verisign, Inc. | Digital camera device providing improved methodology for rapidly taking successive pictures |
US20060143249A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US6879988B2 (en) | 2000-03-09 | 2005-04-12 | Pkware | System and method for manipulating and managing computer archive files |
US20060143237A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060143253A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US8230482B2 (en) | 2000-03-09 | 2012-07-24 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060155788A1 (en) * | 2000-03-09 | 2006-07-13 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US8959582B2 (en) | 2000-03-09 | 2015-02-17 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060143180A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20050015608A1 (en) * | 2003-07-16 | 2005-01-20 | Pkware, Inc. | Method for strongly encrypting .ZIP files |
US7844579B2 (en) | 2000-03-09 | 2010-11-30 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060173847A1 (en) * | 2000-03-09 | 2006-08-03 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060143199A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
EP1152620A3 (en) * | 2000-04-28 | 2002-09-11 | Avxing International Ltd. | Image coding embedded in matrix operation |
US6868186B1 (en) | 2000-07-13 | 2005-03-15 | Ceva D.S.P. Ltd. | Visual lossless image compression |
US6748116B1 (en) | 2000-08-22 | 2004-06-08 | Airzip, Inc. | Apparatus and method for compressing and decompressing image files |
US7305354B2 (en) | 2001-03-20 | 2007-12-04 | Lightsurf,Technologies, Inc. | Media asset management system |
JP2002314999A (en) * | 2001-04-12 | 2002-10-25 | Nikon Corp | Image compressor, image compressing program and electronic camera |
JP4681757B2 (en) * | 2001-05-16 | 2011-05-11 | 株式会社リコー | Image processing apparatus and image processing method |
US8200818B2 (en) * | 2001-07-06 | 2012-06-12 | Check Point Software Technologies, Inc. | System providing internet access management with router-based policy enforcement |
US7590684B2 (en) * | 2001-07-06 | 2009-09-15 | Check Point Software Technologies, Inc. | System providing methodology for access control with cooperative enforcement |
US20040107360A1 (en) * | 2002-12-02 | 2004-06-03 | Zone Labs, Inc. | System and Methodology for Policy Enforcement |
GB0119569D0 (en) * | 2001-08-13 | 2001-10-03 | Radioscape Ltd | Data hiding in digital audio broadcasting (DAB) |
US20070124292A1 (en) * | 2001-10-30 | 2007-05-31 | Evan Kirshenbaum | Autobiographical and other data collection system |
JP2003141020A (en) * | 2001-10-31 | 2003-05-16 | Toshiba Tec Corp | Information storage and output system, and information storage and output service |
US7639739B2 (en) * | 2001-11-02 | 2009-12-29 | The Regents Of The University Of California | Technique to enable efficient adaptive streaming and transcoding of video and other signals |
FR2832271A1 (en) * | 2001-11-13 | 2003-05-16 | Koninkl Philips Electronics Nv | TUNER INCLUDING A VOLTAGE CONVERTER |
US7240001B2 (en) | 2001-12-14 | 2007-07-03 | Microsoft Corporation | Quality improvement techniques in an audio encoder |
US6934677B2 (en) * | 2001-12-14 | 2005-08-23 | Microsoft Corporation | Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands |
US7027982B2 (en) * | 2001-12-14 | 2006-04-11 | Microsoft Corporation | Quality and rate control strategy for digital audio |
US7724281B2 (en) | 2002-02-04 | 2010-05-25 | Syniverse Icx Corporation | Device facilitating efficient transfer of digital content from media capture device |
US20030161406A1 (en) * | 2002-02-26 | 2003-08-28 | Chulhee Lee | Methods for objective measurement of video quality |
US6980695B2 (en) * | 2002-06-28 | 2005-12-27 | Microsoft Corporation | Rate allocation for mixed content video |
US7016547B1 (en) * | 2002-06-28 | 2006-03-21 | Microsoft Corporation | Adaptive entropy encoding/decoding for screen capture content |
US7051040B2 (en) | 2002-07-23 | 2006-05-23 | Lightsurf Technologies, Inc. | Imaging system providing dynamic viewport layering |
US7433824B2 (en) * | 2002-09-04 | 2008-10-07 | Microsoft Corporation | Entropy coding by adapting coding between level and run-length/level modes |
US7502743B2 (en) | 2002-09-04 | 2009-03-10 | Microsoft Corporation | Multi-channel audio encoding and decoding with multi-channel transform selection |
JP4676140B2 (en) * | 2002-09-04 | 2011-04-27 | マイクロソフト コーポレーション | Audio quantization and inverse quantization |
US7299190B2 (en) * | 2002-09-04 | 2007-11-20 | Microsoft Corporation | Quantization and inverse quantization for audio |
EP2006840B1 (en) | 2002-09-04 | 2012-07-04 | Microsoft Corporation | Entropy coding by adapting coding between level and run-length/level modes |
US6850943B2 (en) * | 2002-10-18 | 2005-02-01 | Check Point Software Technologies, Inc. | Security system and methodology for providing indirect access control |
US7903892B2 (en) * | 2002-10-29 | 2011-03-08 | Ati Technologies Ulc | Image analysis for image compression suitability and real-time selection |
US8111928B2 (en) * | 2003-02-13 | 2012-02-07 | Ati Technologies Ulc | Method and apparatus for compression of multi-sampled anti-aliasing color data |
US7643679B2 (en) * | 2003-02-13 | 2010-01-05 | Ati Technologies Ulc | Method and apparatus for block based image compression with multiple non-uniform block encodings |
US7764833B2 (en) | 2003-02-13 | 2010-07-27 | Ati Technologies Ulc | Method and apparatus for anti-aliasing using floating point subpixel color values and compression of same |
US8136155B2 (en) * | 2003-04-01 | 2012-03-13 | Check Point Software Technologies, Inc. | Security system with methodology for interprocess communication control |
US7788726B2 (en) * | 2003-07-02 | 2010-08-31 | Check Point Software Technologies, Inc. | System and methodology providing information lockbox |
US7383180B2 (en) * | 2003-07-18 | 2008-06-03 | Microsoft Corporation | Constant bitrate media encoding techniques |
US7343291B2 (en) | 2003-07-18 | 2008-03-11 | Microsoft Corporation | Multi-pass variable bitrate media encoding |
KR100547853B1 (en) * | 2003-07-28 | 2006-01-31 | 삼성전자주식회사 | Discrete wavelet transform apparatus and method for adaptively encoding still images based on energy of each block |
EP1503594A3 (en) * | 2003-07-28 | 2012-02-15 | Samsung Electronics Co., Ltd. | Discrete wavelet transform unit and method for adaptively encoding a still image based on energy of each block |
US7688894B2 (en) * | 2003-09-07 | 2010-03-30 | Microsoft Corporation | Scan patterns for interlaced video content |
US7724827B2 (en) * | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
US7782954B2 (en) * | 2003-09-07 | 2010-08-24 | Microsoft Corporation | Scan patterns for progressive video content |
US7092832B2 (en) * | 2003-12-11 | 2006-08-15 | Inlight Solutions, Inc. | Adaptive compensation for measurement distortions in spectroscopy |
US7460990B2 (en) | 2004-01-23 | 2008-12-02 | Microsoft Corporation | Efficient coding of digital media spectral data using wide-sense perceptual similarity |
US7801383B2 (en) * | 2004-05-15 | 2010-09-21 | Microsoft Corporation | Embedded scalar quantizers with arbitrary dead-zone ratios |
US7653255B2 (en) | 2004-06-02 | 2010-01-26 | Adobe Systems Incorporated | Image region of interest encoding |
US8136149B2 (en) * | 2004-06-07 | 2012-03-13 | Check Point Software Technologies, Inc. | Security system with methodology providing verified secured individual end points |
CN101032081B (en) * | 2004-07-14 | 2010-05-26 | 喷流数据有限公司 | Method and system for optimization of data compression |
US7570827B2 (en) | 2004-07-14 | 2009-08-04 | Slipstream Data Inc. | Method, system and computer program product for optimization of data compression with cost function |
EP1766783B1 (en) * | 2004-07-14 | 2011-11-02 | Slipstream Data Inc. | Method, system and computer program product for optimization of data compression |
US7627896B2 (en) * | 2004-12-24 | 2009-12-01 | Check Point Software Technologies, Inc. | Security system providing methodology for cooperative enforcement of security policies during SSL sessions |
US8422546B2 (en) | 2005-05-25 | 2013-04-16 | Microsoft Corporation | Adaptive video encoding using a perceptual model |
US7539612B2 (en) | 2005-07-15 | 2009-05-26 | Microsoft Corporation | Coding and decoding scale factor information |
US7599840B2 (en) * | 2005-07-15 | 2009-10-06 | Microsoft Corporation | Selectively using multiple entropy models in adaptive coding and decoding |
US7684981B2 (en) * | 2005-07-15 | 2010-03-23 | Microsoft Corporation | Prediction of spectral coefficients in waveform coding and decoding |
US7693709B2 (en) * | 2005-07-15 | 2010-04-06 | Microsoft Corporation | Reordering coefficients for waveform coding or decoding |
US7933337B2 (en) * | 2005-08-12 | 2011-04-26 | Microsoft Corporation | Prediction of transform coefficients for image compression |
US7565018B2 (en) * | 2005-08-12 | 2009-07-21 | Microsoft Corporation | Adaptive coding and decoding of wide-range coefficients |
US8599925B2 (en) * | 2005-08-12 | 2013-12-03 | Microsoft Corporation | Efficient coding and decoding of transform blocks |
EP1995974B1 (en) * | 2005-12-05 | 2015-05-20 | Huawei Technologies Co., Ltd. | Method for realizing arithmetic coding |
US7953604B2 (en) * | 2006-01-20 | 2011-05-31 | Microsoft Corporation | Shape and scale parameters for extended-band frequency coding |
US7831434B2 (en) | 2006-01-20 | 2010-11-09 | Microsoft Corporation | Complex-transform channel coding with extended-band frequency coding |
US8190425B2 (en) * | 2006-01-20 | 2012-05-29 | Microsoft Corporation | Complex cross-correlation parameters for multi-channel audio |
US8059721B2 (en) * | 2006-04-07 | 2011-11-15 | Microsoft Corporation | Estimating sample-domain distortion in the transform domain with rounding compensation |
US20070237237A1 (en) * | 2006-04-07 | 2007-10-11 | Microsoft Corporation | Gradient slope detection for video compression |
US8130828B2 (en) * | 2006-04-07 | 2012-03-06 | Microsoft Corporation | Adjusting quantization to preserve non-zero AC coefficients |
US7995649B2 (en) | 2006-04-07 | 2011-08-09 | Microsoft Corporation | Quantization adjustment based on texture level |
US8503536B2 (en) * | 2006-04-07 | 2013-08-06 | Microsoft Corporation | Quantization adjustments for DC shift artifacts |
US7974340B2 (en) * | 2006-04-07 | 2011-07-05 | Microsoft Corporation | Adaptive B-picture quantization control |
US8711925B2 (en) * | 2006-05-05 | 2014-04-29 | Microsoft Corporation | Flexible quantization |
WO2008007760A1 (en) * | 2006-07-13 | 2008-01-17 | Nec Corporation | Encoding and decoding device and encoding method and decoding method |
JP4862894B2 (en) * | 2006-11-28 | 2012-01-25 | 日本電気株式会社 | Encoding apparatus and method, and processor |
US8208554B2 (en) | 2006-12-07 | 2012-06-26 | Qualcomm Incorporated | Line-based video compression |
US7899247B2 (en) * | 2007-01-24 | 2011-03-01 | Samsung Electronics Co., Ltd. | Apparatus and method of segmenting an image according to a cost function and/or feature vector and/or receiving a signal representing the segmented image in an image coding and/or decoding system |
US8238424B2 (en) * | 2007-02-09 | 2012-08-07 | Microsoft Corporation | Complexity-based adaptive preprocessing for multiple-pass video compression |
US8184710B2 (en) * | 2007-02-21 | 2012-05-22 | Microsoft Corporation | Adaptive truncation of transform coefficient data in a transform-based digital media codec |
US8498335B2 (en) * | 2007-03-26 | 2013-07-30 | Microsoft Corporation | Adaptive deadzone size adjustment in quantization |
US8243797B2 (en) | 2007-03-30 | 2012-08-14 | Microsoft Corporation | Regions of interest for quality adjustments |
US8442337B2 (en) * | 2007-04-18 | 2013-05-14 | Microsoft Corporation | Encoding adjustments for animation content |
US8331438B2 (en) * | 2007-06-05 | 2012-12-11 | Microsoft Corporation | Adaptive selection of picture-level quantization parameters for predicted video pictures |
US7774205B2 (en) * | 2007-06-15 | 2010-08-10 | Microsoft Corporation | Coding of sparse digital media spectral data |
US7885819B2 (en) | 2007-06-29 | 2011-02-08 | Microsoft Corporation | Bitstream syntax for multi-process audio decoding |
US8254455B2 (en) * | 2007-06-30 | 2012-08-28 | Microsoft Corporation | Computing collocated macroblock information for direct mode macroblocks |
EP2081155B1 (en) * | 2008-01-21 | 2011-11-16 | Telefonaktiebolaget LM Ericsson (publ) | Prediction-based image processing |
US8108401B2 (en) * | 2008-03-28 | 2012-01-31 | International Business Machines Corporation | Applying various hash methods used in conjunction with a query with a group by clause |
US8189933B2 (en) | 2008-03-31 | 2012-05-29 | Microsoft Corporation | Classifying and controlling encoding quality for textured, dark smooth and smooth video content |
US7827187B2 (en) * | 2008-04-04 | 2010-11-02 | International Business Machines Corporation | Frequency partitioning: entropy compression with fixed size fields |
US8179974B2 (en) | 2008-05-02 | 2012-05-15 | Microsoft Corporation | Multi-level representation of reordered transform coefficients |
US8325800B2 (en) | 2008-05-07 | 2012-12-04 | Microsoft Corporation | Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers |
US8379851B2 (en) | 2008-05-12 | 2013-02-19 | Microsoft Corporation | Optimized client side rate control and indexed file layout for streaming media |
US7925774B2 (en) * | 2008-05-30 | 2011-04-12 | Microsoft Corporation | Media streaming using an index file |
US8897359B2 (en) | 2008-06-03 | 2014-11-25 | Microsoft Corporation | Adaptive quantization for enhancement layer video coding |
US8108361B2 (en) * | 2008-07-31 | 2012-01-31 | Microsoft Corporation | Efficient column based data encoding for large-scale data storage |
US8099440B2 (en) * | 2008-08-15 | 2012-01-17 | International Business Machines Corporation | Method for laying out fields in a database in a hybrid of row-wise and column-wise ordering |
US8406307B2 (en) | 2008-08-22 | 2013-03-26 | Microsoft Corporation | Entropy coding/decoding of hierarchically organized data |
US8265140B2 (en) * | 2008-09-30 | 2012-09-11 | Microsoft Corporation | Fine-grained client-side control of scalable media delivery |
US8189666B2 (en) | 2009-02-02 | 2012-05-29 | Microsoft Corporation | Local picture identifier and computation of co-located information |
US8370326B2 (en) | 2009-03-24 | 2013-02-05 | International Business Machines Corporation | System and method for parallel computation of frequency histograms on joined tables |
JP5158000B2 (en) * | 2009-04-07 | 2013-03-06 | ソニー株式会社 | Information processing apparatus and method |
US8321326B2 (en) | 2009-09-15 | 2012-11-27 | Auerbach Group Llc | Method and system for enhancing the efficiency of a digitally communicated data exchange |
US20110191587A1 (en) * | 2010-02-02 | 2011-08-04 | Futurewei Technologies, Inc. | Media Processing Devices With Joint Encryption-Compression, Joint Decryption-Decompression, And Methods Thereof |
US8442988B2 (en) | 2010-11-04 | 2013-05-14 | International Business Machines Corporation | Adaptive cell-specific dictionaries for frequency-partitioned multi-dimensional data |
CN103096052B (en) * | 2011-11-04 | 2015-11-25 | 华为技术有限公司 | The method and apparatus of a kind of Image Coding, decoding |
US9020290B2 (en) | 2013-01-30 | 2015-04-28 | Microsoft Technology Licensing, Llc | Reduce extrapolate |
US9466090B2 (en) * | 2013-06-20 | 2016-10-11 | Intel Corporation | Subset based compression and decompression of graphics data |
EP3259849A1 (en) | 2015-02-17 | 2017-12-27 | Parstream GmbH | Method and apparatus for adaptive data compression |
US9635389B1 (en) * | 2015-11-30 | 2017-04-25 | Amazon Technologies, Inc. | Binary mask compression |
US10387991B2 (en) | 2016-07-01 | 2019-08-20 | Intel Corporation | Method and apparatus for frame buffer compression |
US10355865B1 (en) * | 2018-05-24 | 2019-07-16 | DeepTruth, LLC | Systems and techniques for certification of trusted media data |
GB2577521B (en) * | 2018-09-27 | 2022-05-18 | Displaylink Uk Ltd | A method of controlling encoding of display data |
US10687062B1 (en) | 2019-02-22 | 2020-06-16 | Google Llc | Compression across multiple images |
CN109981110B (en) * | 2019-03-05 | 2023-03-24 | 哈尔滨工业大学(深圳) | Method of lossy compression with point-by-point relative error bounds |
CN112511824B (en) * | 2020-11-27 | 2022-12-02 | 苏州浪潮智能科技有限公司 | Image compression sampling method and assembly |
WO2023168712A1 (en) * | 2022-03-11 | 2023-09-14 | Oppo广东移动通信有限公司 | Zero run-length value encoding and decoding methods and video encoding and decoding methods, apparatuses and systems |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2389277A1 (en) * | 1977-04-29 | 1978-11-24 | Ibm France | QUANTIFICATION PROCESS WITH DYNAMIC ALLOCATION OF THE AVAILABLE BIT RATE, AND DEVICE FOR IMPLEMENTING THE SAID PROCESS |
EP0085820B1 (en) * | 1982-02-09 | 1985-11-21 | International Business Machines Corporation | Method for multi-speed digital transmission and apparatus for carrying out said method |
US4546342A (en) * | 1983-12-14 | 1985-10-08 | Digital Recording Research Limited Partnership | Data compression method and apparatus |
US4965830A (en) * | 1989-01-17 | 1990-10-23 | Unisys Corp. | Apparatus for estimating distortion resulting from compressing digital data |
CA2014935C (en) * | 1989-05-04 | 1996-02-06 | James D. Johnston | Perceptually-adapted image coding system |
US5101446A (en) * | 1990-05-31 | 1992-03-31 | Aware, Inc. | Method and apparatus for coding an image |
US5146324A (en) * | 1990-07-31 | 1992-09-08 | Ampex Corporation | Data compression using a feedforward quantization estimator |
JPH04127747A (en) * | 1990-09-19 | 1992-04-28 | Toshiba Corp | Variable rate encoding system |
EP0493130B1 (en) * | 1990-12-28 | 1997-06-11 | Canon Kabushiki Kaisha | Image encoding apparatus optimizing the amount of generated code |
EP0495501B1 (en) * | 1991-01-17 | 1998-07-08 | Sharp Kabushiki Kaisha | Image coding and decoding system using an orthogonal transform and bit allocation method suitable therefore |
US5276525A (en) * | 1991-03-22 | 1994-01-04 | Bell Communications Research, Inc. | Two-dimensional block scanning for subband image and video coding |
US5157488A (en) * | 1991-05-17 | 1992-10-20 | International Business Machines Corporation | Adaptive quantization within the jpeg sequential mode |
CA2088082C (en) * | 1992-02-07 | 1999-01-19 | John Hartung | Dynamic bit allocation for three-dimensional subband video coding |
JPH0638198A (en) * | 1992-05-19 | 1994-02-10 | Sony Corp | Picture signal transmitter and picture signal transmission method |
FR2697706B1 (en) * | 1992-11-03 | 1994-11-25 | Thomson Csf | Flow reduction method and device for recording images on a VCR. |
JP3123286B2 (en) * | 1993-02-18 | 2001-01-09 | ソニー株式会社 | Digital signal processing device or method, and recording medium |
US5429636A (en) * | 1993-10-08 | 1995-07-04 | United States Surgical Corporation | Conductive body tissue penetrating device |
JP2682402B2 (en) * | 1993-10-28 | 1997-11-26 | 日本電気株式会社 | Data processing device |
KR960003628B1 (en) * | 1993-12-06 | 1996-03-20 | Lg전자주식회사 | Coding and decoding apparatus & method of digital signal |
US5651078A (en) * | 1994-07-18 | 1997-07-22 | Thomson Consumer Electronics, Inc. | Method and apparatus for reducing contouring in video compression |
US5552832A (en) * | 1994-10-26 | 1996-09-03 | Intel Corporation | Run-length encoding sequence for video signals |
US5692177A (en) * | 1994-10-26 | 1997-11-25 | Microsoft Corporation | Method and system for data set storage by iteratively searching for perfect hashing functions |
-
1996
- 1996-03-19 US US08/618,368 patent/US5682152A/en not_active Expired - Lifetime
-
1997
- 1997-03-18 HU HU9700604A patent/HUP9700604A3/en unknown
- 1997-03-19 BR BR9708130A patent/BR9708130A/en not_active Application Discontinuation
- 1997-03-19 WO PCT/US1997/004279 patent/WO1997035427A1/en active IP Right Grant
- 1997-03-19 AT AT97915146T patent/ATE242577T1/en active
- 1997-03-19 EP EP97915146A patent/EP0888689B1/en not_active Expired - Lifetime
- 1997-03-19 DE DE69722601T patent/DE69722601T2/en not_active Expired - Lifetime
- 1997-03-19 EP EP00200570A patent/EP1005231A1/en not_active Withdrawn
- 1997-03-19 CA CA002249259A patent/CA2249259C/en not_active Expired - Lifetime
- 1997-03-19 JP JP53361397A patent/JP3271985B2/en not_active Expired - Fee Related
- 1997-03-19 AU AU22161/97A patent/AU719715B2/en not_active Ceased
- 1997-10-27 US US08/962,927 patent/US6049630A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0888689B1 (en) | 2003-06-04 |
JP3271985B2 (en) | 2002-04-08 |
HUP9700604A2 (en) | 1997-11-28 |
US5682152A (en) | 1997-10-28 |
HU9700604D0 (en) | 1997-05-28 |
CA2249259A1 (en) | 1997-09-25 |
JP2001501783A (en) | 2001-02-06 |
US6049630A (en) | 2000-04-11 |
AU719715B2 (en) | 2000-05-18 |
AU2216197A (en) | 1997-10-10 |
HUP9700604A3 (en) | 1998-04-28 |
ATE242577T1 (en) | 2003-06-15 |
EP1005231A1 (en) | 2000-05-31 |
BR9708130A (en) | 1999-07-27 |
DE69722601T2 (en) | 2004-05-13 |
WO1997035427A1 (en) | 1997-09-25 |
DE69722601D1 (en) | 2003-07-10 |
EP0888689A1 (en) | 1999-01-07 |
EP0888689A4 (en) | 1999-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2249259C (en) | Data compression using adaptive bit allocation and hybrid lossless entropy encoding | |
DE60305325T2 (en) | SYSTEM AND METHOD FOR RATE DRAINING OPTIMIZED DATA PARTITIONING FOR VIDEO-CORDING USING REVERSE ADAPTATION | |
US5966465A (en) | Compression/decompression using reversible embedded wavelets | |
US7634145B2 (en) | Compression and decompression with wavelet style and binary style including quantization by device-dependent parser | |
US6941024B2 (en) | Coder matched layer separation and interpolation for compression of compound documents | |
JP4365957B2 (en) | Image processing method and apparatus and storage medium | |
US7298915B2 (en) | Image encoding apparatus and method | |
US20030219166A1 (en) | Method and apparatus for specifying quantization based upon the human visual system | |
WO2003065708A1 (en) | Coder matched layer separation for compression of compound documents | |
JP2005218124A (en) | Data compression system | |
US6462681B1 (en) | Scalable coding by scanning selected parts of respective bit-streams | |
JP2005192087A (en) | Compression-coding apparatus, compression-coding method and program | |
US9264736B2 (en) | Encoding method, decoding method, encoding device, and decoding device | |
US7020342B1 (en) | Scalable coding | |
US8135223B2 (en) | Image processing apparatus and method of image processing | |
EP0944262B1 (en) | A method of progressive coding according to visual significance | |
van der Vleuten et al. | Low-complexity scalable DCT image compression | |
DE602004011213T2 (en) | INTRAFRAME COMPRESSION AND DECOMPRIMATION OF VIDEO SIGNALS WITH A FIXED BITRATE | |
CA2358857C (en) | Data compression using adaptive bit allocation and hybrid lossless entropy encoding | |
WO1998054841A1 (en) | Data compressing device by permutation encoding and decompressing device | |
Akopian et al. | Multibase transform coding for multispectral image compression | |
Sayood et al. | Studies on image compression and image reconstruction | |
Viswanath et al. | Image Compression & Effect of Quantizing Different Ffrequency Components. | |
KR20000060518A (en) | Image compressing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request | ||
MKEX | Expiry |
Effective date: 20170320 |