WO1991014339A1 - Digital image coding with quantization level computation - Google Patents

Digital image coding with quantization level computation Download PDF

Info

Publication number
WO1991014339A1
WO1991014339A1 PCT/EP1991/000450 EP9100450W WO9114339A1 WO 1991014339 A1 WO1991014339 A1 WO 1991014339A1 EP 9100450 W EP9100450 W EP 9100450W WO 9114339 A1 WO9114339 A1 WO 9114339A1
Authority
WO
WIPO (PCT)
Prior art keywords
blocks
block
frame
quantization
quantization level
Prior art date
Application number
PCT/EP1991/000450
Other languages
French (fr)
Inventor
Tristan Savatier
Alain Delpuch
Original Assignee
Thomson Consumer Electronics S.A.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thomson Consumer Electronics S.A. filed Critical Thomson Consumer Electronics S.A.
Publication of WO1991014339A1 publication Critical patent/WO1991014339A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • the present invention relates to digital image coding using quantization level computation.
  • optical storage media e.g. CD-ROM, MOD (Magneto Optical Disc)
  • a maximum video data rate of about 1.2 Mbits/s is allowed.
  • This codec contains a motion adap ⁇ tive intrafield/interfra e coding processor.
  • the digitized video data are transformed by means of a DCT with a blocksize of 8*8 samples.
  • the coefficients obtained are scanned within the blocks in a zig-zag fashion, in order to optimize the runlength of zeros. Taking into account the frequency response of the human visual system, the coeffi ⁇ cients are weighted in two dimensions, thereby attenuating high frequencies.
  • the maximum coefficient is detected.
  • the value of this coef ⁇ ficient in combination with the status of the buffer con ⁇ trols the accuracy of an uniform quantizer. All AC coeffi ⁇ cients are quantized by this quantizer and the step size is transmitted to the receiver.
  • the differences between the coeffi ⁇ cients of the previous frame are calculated and these values are quantized in the same way as the coefficients in the intraframe mode.
  • the decision whether the intrafield or the interframe mode is used is controlled by the number of non ⁇ zero coefficients.
  • the values selected for "cransmission are encoded by a variable length Huffmann encoder and stored in a buffer for transmission.
  • the fullness of the buffer controls the threshold and the quantizer step size, respectively. It is to be made sure that the buffer will have no overflow or un ⁇ derflow within the present frame. This causes a varying quantizer step size and a consequently varying image quality within each frame.
  • Method (a) allows to apply a spatially uniform step size of quantization to the whole image. But computing the right lev ⁇ el of quantization to code the image in as close as possible to N bits is very difficult.
  • Method (b) allows to compute quantization step size block by block. However, it is difficult to calculate the quantiza ⁇ tion step size in such a way that a uniform level of quanti ⁇ zation in the spatial domain is provided.
  • a digital image can be described as a set of blocks B(n,i,j) of pixels, where i (resp. j) gives the location of the block in a frame in terms of row (resp. column) and n is a frame number.
  • F is called the quantization function applied to the block B(n,i,j) with the level L.
  • Applying the quantization func ⁇ tion to a block produces another block where some of the in ⁇ formation of the original has been discarded.
  • the total number of bits required to code the quantized im ⁇ age shall be close to a size N of a buffer.
  • the blocks can be scanned and encoded not row by row or column by column but in a pseudo-random order, which is identical in both the coder and decoder. In case of a fixed scanning order for all frames the kind of scanning method need not to be transmitted.
  • pseudo-random block scanning order can also be changed for each frame to get even better results.
  • N the total size of the buffer
  • b the total number of blocks per frame
  • m the number of the already coded blocks of the frame
  • m+, ,i is the quantization level that will be used for block m+1
  • L'm is the average quantization level after m blocks were coded
  • M' is the number of bits that was required to code the first m blocks of the present frame
  • M is the num ⁇ ber of bits that was desired to code the first m blocks of the present frame
  • L. are the specific quantization lev ⁇ els of the m blocks.
  • the initial estimation L n of the quantization level is known by both the coder and decoder.
  • a good estimation for L- is the average value of the quantization level used in the pre ⁇ vious frame.
  • Lm+,l. becomes normalized to ensure that mm m+l max where Lmin and Lmax are minimum and maximum q ⁇ uantization lev- els.
  • the quantization level computation algorithm can not com ⁇ pletely avoid buffer overflow or underflow.
  • the coefficients C. and C- can be chosen to react faster or slower to instant changes in the buffer state.
  • a faster reaction (larger C. , smaller C_ ) will avoid large buffer overflows or underflows, but will also generate a less uniform quantization level.
  • a slower reaction (smaller C. , larger C_ ) will provide a more uniform quantization level, but will al ⁇ low the possibility of larger buffer overflows or underflows.
  • buffer overflow or underflow C. and/or C- is ad ⁇ justed, so that the overall rate is enforced.
  • the quantization level can be recalculated by the decoder and does not need to be transmitted.
  • Fig. 1 is a schematic block diagram of a coder
  • Fig. 2 is a schematic block diagram of a decoder
  • Fig. 3 shows an image with randomly scanned blocks of pixels
  • Fig. 4 shows a quantization matrix for luminance blocks
  • Fig. 5 shows a scanning order
  • Fig. 6 shows a quantizer function graph
  • the images have a medium resolution, e.g. 704 * 288 pixels.
  • the luminance component Y is coded for each of the pixels, whereas the color components U and V are coded in the form of macro-pixels, a macro-pixel being made of 4 luminance pixels.
  • Each frame is divided into marcro-blocks of 16*16 luminance pixels .
  • Each macro-block is composed of :
  • a single 704 * 288-image not encoded consists of:
  • a compression rate of about 1/50 is to be achieved.
  • an digital image source 11 is connected to a frame memory (a RAM) 12.
  • the frame memory 12 may receive block ad ⁇ dresses within the present image from a pseudo-random block address generator 10, takes sequentially blocks of e.g. 8*8 pixels and stores them in a normal (row by row and column by column, respectively) or random fashion. Each block of pixels is then send to a subtractor 141 and to a motion com ⁇ pensation circuit 17.
  • intraframe coding it is necessary to encode a frame by itself, e.g. when there is a "cut" in the image sequence. This technique is called intraframe coding. It is also neces ⁇ sary to use intraframe coding to allow non-sequential decod ⁇ ing, e.g. start decoding from various points within an image sequence stored on a CD. But intraframe coding results in a higher data rate.
  • interframe coding may yield no good quality of the coded image
  • moving pieces in the image sequence should be detected. Thereby the differences between the moving pieces from frame n-1 and the according pieces from frame n are minimized and the inter ⁇ frame coding leads to improved image quality.
  • the purpose of motion compensation is to build an image as close as possi ⁇ ble to frame n by only taking moving pieces out of frame n-1.
  • the motion compensation circuit 17 This is performed in the motion compensation circuit 17 on a block basis: the block B(n,i,j) of frame n located at frame coordinates (i,j) is evaluated by copying the block B' (n-1, i+x,j+y) located at frame coordinates (i+x, j+y) in a frame memory (a RAM) 142 which contains frame n-1.
  • the mo ⁇ tion compensation vector V(n,x,y) represents the apparent motion of the image at this point of screen.
  • the vectors may have a precision of ⁇ 1 pixel and a range of ⁇ 16 pixel. In case of non-random block scanning the motion compensation vectors are delta coded.
  • the delta vectors (dx, dy) range from -32 to +32 and the most frequent value encountered is 0 (vector same as previous vector) .
  • the delta coordinates are coded independently with adapted Huffman codes in Huffman coder 154. As the statistics for dx and dy are not identical two Huffman codes are used.
  • the vectors are packed 4 by 4: As there is a big chance for dx and dy to be zero, the distribution of zero values among the 4 dx values is coded with an adapted Huffman code. Only the non-zero values of dx are coded after that (with another adapted Huffman code). The same technique is used for dy. In order to optimise the size of the code for the motion com ⁇ pensation vectors, a certain tolerance is accepted.
  • V is the target block (not coded)
  • V' is the block obtained by us ⁇ ing the best motion compensation vector computed for V
  • V is the block obtained by using the previous motion com ⁇ pensation vector (the one which was used for the block left of V)
  • the previous motion compensation vector will be used again, if- E(V ,V) ⁇ E(V* ,V) + E .
  • an error function (e.g. the quadratic error) is evaluated in error evaluation circuit 18.
  • the equation of the quadratic error is:
  • ii and jj are the coordinates within the blocks B(n,i,j) and B' (n-1, i+x, j+y) , respectively, of pixels P and P', respectively, and E(B,B' ) is an estimation of the differ ⁇ ence between block B(n,i,j) of frame n and block B' (n-1, i+x, j+y) of frame n-1.
  • B(n,i,j) is the target block (not coded)
  • B' (n-1, i+x, j+y) is the block obtained after interframe coding.
  • Motion compensation is worth being encoded only if:
  • B n is the block B(n-1, i+x, j+y) obtained only with motion com ⁇ pensation (not interframe coded) .
  • Mo ⁇ tion compensation circuit 17 may contain a memory in which this 40*40 pixel area is stored.
  • Em(B,B') ⁇ ⁇
  • ii and jj are the coordinates within the blocks B(n,i,j) and B' (n-1, i+x, j+y) , respectively, of pixels P and P', respectively.
  • B(n,i,j) is the target block (not coded)
  • B' (n-1, i+x, j+y) is the block obtained after interframe cod ⁇ ing.
  • the Y component pixel values are used.
  • the motion compensation should be performed in the decoded frame n-1 for that is the one used at decoding time to built the next frame, but practically the source frame n-1 is used instead of the decoded one.
  • Motion compensation vectors obtained by using source images are easier to encode efficiently, because of the lower level of noise and of the better quality of the source images com ⁇ pared with decoded images. Random noise tends to generate a random factor in the motion compensation vectors.
  • inter/intra-circuit 14 The value of the quadratic error, which has been calculated in error evaluation circuit 18, is send to inter/intra-cir- cuit 14.
  • inter/intra-circuit 14 the decision is made which kind of coding leads to better coded image quality.
  • the subtractor 141 In case of intraframe coding the block B' (n-1, i+x, j+y) of pixels of frame n-1 at the negative input of subtractor 141 is not subtracted from the according block of frame n.
  • the subtractor 141 is active and the block B' (n-1, i+x, +y) , which is stored in frame memory 142, is (motion compensated) subtracted from the according block of frame n.
  • Frame memory 142 receives addresses from motion compensation circuit 17.
  • the resulting block of pixels or pixel differences, respec ⁇ tively, is transformed in a DCT circuit 151.
  • Each 8*8 block of values representing spatial data (such as the luminance component Y) is transformed by a DCT into an 8*8 block of spectral coefficients representing the frequen ⁇ cy distribution in both, horizontal and vertical direction.
  • the range of the coefficients in the transformed block is eight times the range of the values in the source block.
  • the top-left coefficient of the transformed block is particular: it is the average value of the source block (multiplied by eight) .
  • This coefficient is called DC value
  • the other coef ⁇ ficients are called AC values. It appears that the DC coeffi ⁇ cient is very important, and that even if a high quanti- zation level is requested, there should be a minimum error on this value since an error on the average produces very noticeable artefacts (blocking effects).
  • the block is quantized in quantizer 152 by an algorithm chosen to trade off perceived image quality against bit rate.
  • the algorithm of quantizer 152 is described by the following equations:
  • x is a DCT coefficient of the transformed block
  • y is the quantized coefficient
  • T is the threshold at which the output is forced to zero
  • g is the quantization step size.
  • the values of T and g are chosen according to the available transmission or storage bandwidth.
  • the according quantizer function graph is shown in Fig. 6.
  • the quantizer step size g depends on the position of the co ⁇ efficient in the transformed block: high frequency coeffi ⁇ cients will be quantized coarser than low frequency coeffi ⁇ cients because lower frequency DCT coefficients are relative ⁇ ly less important in the perception of the subjective quali ⁇ ty of the decoded image.
  • the quantizer step size is obtained for each position in the block by scaling with the according element of a predefined quantization matrix Q. As an exam- pie, the quantization matrix used for Y is shown in figure 4. A different quantization matrix is used for U and V.
  • T g / 2 .
  • the value of g is then multiplied by the quantization level to get the final quantization factor for each coefficient of the block.
  • a feedback loop is built consisting of a de-quantizer 156 and a DCT circuit 157.
  • De-quantizer 156 performs the according inverse func ⁇ tion of quantizer 152 and DCT circuit 157 an inverse DCT.
  • the decoded blocks B' (n-l,i,j) at the output of DCT circuit 157 are stored in frame memory 142 which is also connected to motion compensation circuit 17. By this way the feedback loop is closed.
  • the quantized block consists usually of few important spec ⁇ tral components (statistically concentrated in the low hori ⁇ zontal and vertical frequencies), separated by a lot of ze ⁇ ros. Therefore the quantized DCT coefficients in the block are first folded, thereby transformed in a linear list con ⁇ taining alternatively a run of r zeros (r may be equal to 0) and a non zero coefficient and are then encoded with vari ⁇ able wordlength (runlength coding) together with the motion vectors in the Huffman coder 154.
  • the zigzag order can be chosen in order to increase the prob ⁇ ability of having a very long run of zero coefficients until the end of the block. Because the EOB code is a frequent event, it is coded with few bits.
  • the optimal zigzag order depends on the quantization method and of the code used subsequently.
  • the Huffman code for encoding the runs of zeros with a maxi ⁇ mum efficiency contains 64 possible runs of r zeros (r rang ⁇ ing from 0 to 63). An additional code is reserved for the EOB sign. The code defined for each run of zeros is totally independent of the value that follows the run.
  • Huffman code encodes the non-zero coefficients with a maximum efficiency.
  • the range covered by this code is [-256,-1] and [+l,+256].
  • non-zero coefficients have an important proba ⁇ bility to be ⁇ 1, particularly in the higher frequency coeffi ⁇ cients because they are more strongly quantized, a special code has been reserved to code a terminal run of ⁇ 1 values.
  • the signs of the non-zero coefficients are always coded with one bit, as their event may be considered as random with a 50% probability.
  • the Huffman coded data are stored in the buffer within buff ⁇ er circuit 155 with a variable data rate and read out with a constant data rate.
  • a channel coder 16 receives these data together with other signals.
  • the general quantization step size of quantizer 152 and de-quantizer 156 within a block is adapted by means of the quantization level, which is recalculated after each block has been encoded within buffer circuit 155 as a function of the amount of the already encoded data for the frame, compared with the total buffer size (see formulas for , and in part 'summary of the invention').
  • the quantization level can be carried out by a microprocessor within buffer circuit 155.
  • the quantization level can advan ⁇ tageously be recalculated by the decoder and does not need to be transmitted.
  • the blocks e.g. 32, 33, 34, 35, 36, within the present frame 31 are scanned ac ⁇ cording to the addresses generated in pseudo random block address generator 10 as mentioned before and indicated in Fig. 3. This leads to a better estimation of the appropriate overall quantization level within the present frame.
  • the blocks within frame 31 are scanned row by row and column by column.
  • the pseudo-random block scanning order can be changed for each frame to get even better results.
  • the kind of block scanning will be transmitted and stored, respective ⁇ ly, too.
  • the channel coder 16 adds the inter/intra-information from inter/intra circuit 14, the Huffman coded motion compensa ⁇ tion information and e.g. pseudo-random address information from pseudo-random address generator 10, audio signals, er ⁇ ror correction information and sync words to the video data stream.
  • Clock Generator 191 supplies control circuit 192 with clock pulses. Control circuit 192 supplies all the other circuits in the coder with appropriate control signals.
  • a channel decoder 26 receives the storage media or transmission channel data stream. This data stream is split into luminance and chrominance signals (Y, U and V), motion compensation information, inter/intra-decision information, audio signals, sync words and, if required, pseudo random block addresses. In addition error correction is performed within channel decoder 26.
  • the video signal e.g. the luminance component
  • the video signal is fed with a constant data rate together with the Huffman coded motion vectors into buffer circuit 255 and transferred with a vari ⁇ able data rate from this buffer to a Huffman decoder 254.
  • the special code for a terminal run of ⁇ 1 values and EOB code is performed.
  • inverse sorter 253 an inverse scanning according to sorter 153 and Fig. 5 is performed. At the output are blocks of quantized 8*8 DCT coefficients available. In de-quantizer 252 the coefficients are expanded approximately to their val ⁇ ue at the input of quantizer 152 in the coder. This includes an inverse scaling according to quantization matrix (Fig. 4) .
  • the quantization level in de-quantizer 252 is controlled by the fullness of the buffer in buffer circuit 155 and re ⁇ calculated in buffer circuit 255 similar to the computing in buffer circuit 155 and does not need to be transmitted.
  • a DCT circuit 251 performs an inverse DCT on the 64 coeffi ⁇ cients of each block.
  • the pixel values and pixel difference values, respectively, of the blocks are transferred to an adder 241.
  • the output signal from a frame memory 242 is not added and in case of interframe coding this output signal B' (n-1, i+x, +y) is (mo ⁇ tion compensated) added to the pixel difference values.
  • An inter/intra circuit 24 receives the inter/intra informa ⁇ tion from channel decoder 26 via the motion compensation cir ⁇ cuit 27.
  • the inter/intra circuit 24 controls the adder 241 as described before.
  • Motion compensation circuit 27 receives motion compensation vectors from Huffman decoder 254 and blocks of pixels of frame n-1 from frame memory 242.
  • motion compensation circuit 27 can send motion compensa ⁇ tion vectors from Huffman decoder 254 as addresses to frame memory 242.
  • Motion compensation circuit 27 may contain a pixel memory.
  • the blocks B(n,i, ' j) of pixels of frame n at the output of inter/intra circuit 24 are written into a frame memory 22. This can be done row by row and column by column, respective ⁇ ly, or with pseudo-random addresses either with a fixed and stored or calculated order or by a transmitted order. These addresses are send from channel decoder 26 to frame memory 22 and motion compensation circuit 27. Before storing the according blocks are written into frame memory 242 as frame n-1.
  • the frame memory 22 can be read out pixel by pixel and line by line.
  • the resulting signal can be displayed e.g. on a TV screen 21.
  • the processing for the chrominance components U and V is per ⁇ formed in a similar way.
  • the quantization matrix may vary. As mentioned before the motion vector calculation in motion compensation circuits 17 and 27, respectively, is carried out with the Y component only.
  • Clock regeneration circuit 291 supplies- control circuit 292 with clock pulses.
  • Control circuit 292 supplies all the oth ⁇ er circuits in the decoder with appropriate control signals.

Abstract

In a coder frames of a digital video signal are scanned to get blocks of pixels, motion vectors are estimated and block errors are calculated using the decoded foregoing frame, thereby providing an intra/inter decision signal and intraframe-blocks of pixel values or motion compensated interframe-blocks of pixel difference values depending on the result of the block error. The blocks of pixel values and pixel difference values, respectively, are transformed with a DCT to blocks of coefficients, coded together with the motion vectors in a Huffman coder with variable wordlength. The resulting groups of coded coefficients are quantized individually by the use of a quantization level and the coded coefficients of the group are individually quantized by the use of a quantization matrix, controlled by the fullness of a buffer. In a decoder groups of coded coefficients which belong to blocks of pixels are de-quantized individually by the use of an encoding quantization level and each coded coefficient of each group is de-quantized individually by the inverse use of an encoding quantization matrix, controlled by the fullness of a buffer. The groups of coded coefficients and motion vectors are decoded in a Huffman decoder with variable wordlength, thereby providing blocks of decoded coefficients. The blocks of decoded coefficients are transformed with an inverse DCT to pixel values and pixel difference values, respectively, out of which blocks of pixels out of intraframe-blocks of pixel values and motion compensated interframe-blocks of pixel difference values, respectively, are generated depending on an intra/inter decision signal, thereby evaluating the motion vectors. The blocks of pixels are inserted again in frame of a digital video signal in an according order. The quantization level is calculated and normalized by using special formulas.

Description

Digital Image Coding with, quantization level computation
Background of the invention
The present invention relates to digital image coding using quantization level computation.
A large number of coding methods for full-motion digital im¬ ages have been proposed in recent years.
Because the available data rate in present transmission chan¬ nels and storage media is limited it is an object of these coding methods to reduce the data rate of the coded and transmitted or stored video signal.
For the purpose of storing digital motion images on optical storage media, e.g. CD-ROM, MOD (Magneto Optical Disc), a maximum video data rate of about 1.2 Mbits/s is allowed.
One general example of a system for coding and decoding digi¬ tal video signals is disclosed in "Scene Adaptive Coder", W.H. Chen, W. . Pratt, IEEE Transactions on Communications, Vol. COM-32, No. 3, issued in March, 1984 in which scene adaptive coding/decoding of video signals is described, us¬ ing DCT (discrete cosine transform), a variable threshold for the DCT coefficients, quantization, Huffman-coding and a buffer in the coder and a buffer, Huff ann decoder, thresh¬ old adding and inverse DCT in the decoder.
Another such coding/decoding system is disclosed in "Compari¬ son Between Progressive and Interlaced Scanning for a Future HDTV System with Digital Data Rate Reduction",
D. Westerkamp, H. Peters, Proceedings of the 2nd Internation¬ al Workshop of Signal Processing for HDTV, 1'Aquila, Febru¬ ary 29 - March 2, 1988. This codec contains a motion adap¬ tive intrafield/interfra e coding processor. The digitized video data are transformed by means of a DCT with a blocksize of 8*8 samples. The coefficients obtained are scanned within the blocks in a zig-zag fashion, in order to optimize the runlength of zeros. Taking into account the frequency response of the human visual system, the coeffi¬ cients are weighted in two dimensions, thereby attenuating high frequencies.
The maximum coefficient is detected. The value of this coef¬ ficient in combination with the status of the buffer con¬ trols the accuracy of an uniform quantizer. All AC coeffi¬ cients are quantized by this quantizer and the step size is transmitted to the receiver.
In the interframe mode the differences between the coeffi¬ cients of the previous frame are calculated and these values are quantized in the same way as the coefficients in the intraframe mode. The decision whether the intrafield or the interframe mode is used is controlled by the number of non¬ zero coefficients. The values selected for "cransmission are encoded by a variable length Huffmann encoder and stored in a buffer for transmission.
In both systems the fullness of the buffer controls the threshold and the quantizer step size, respectively. It is to be made sure that the buffer will have no overflow or un¬ derflow within the present frame. This causes a varying quantizer step size and a consequently varying image quality within each frame.
In US Pa-tent No. 4,785,349 regions of a frame are coded in a different manner. This may also cause a varying image quali¬ ty within each frame.
From the above mentioned documents it is known that a coding scheme is such that the more a block is quantized the less bits it takes to code it. It is also known that the quanti¬ zation is adaptive to the image content. Two methods are currently applied to compute the level of quantization required to compress the data rate of the DCT- coefficients within a given amount of bits N:
(a) Compute a threshold/quantization step size so that a frame can be coded in approximately N bits. Apply the quantizer with this uniform step size to the whole frame.
(b) Scan the blocks in rows and columns and compute a local threshold/quantization step size.
Method (a) allows to apply a spatially uniform step size of quantization to the whole image. But computing the right lev¬ el of quantization to code the image in as close as possible to N bits is very difficult.
Method (b) allows to compute quantization step size block by block. However, it is difficult to calculate the quantiza¬ tion step size in such a way that a uniform level of quanti¬ zation in the spatial domain is provided.
Summary of the invention
It is an object of the present invention to adapt the quantization level for blocks of a coded digital image to the actual filling rate of a buffer, thereby distributing the quantization level.
A digital image can be described as a set of blocks B(n,i,j) of pixels, where i (resp. j) gives the location of the block in a frame in terms of row (resp. column) and n is a frame number.
F is called the quantization function applied to the block B(n,i,j) with the level L. Applying the quantization func¬ tion to a block produces another block where some of the in¬ formation of the original has been discarded. The higher the quantization level and the coarser the quantization, respec¬ tively, is, the smaller the code is and the larger the amount of information discarded. Therefore the quantization level increases when the buffer tends to be filled too fast, and decreases when the buffer tends to be filled to slowly. The total number of bits required to code the quantized im¬ age shall be close to a size N of a buffer. To have a good estimation of the overall complexity of the entire image, a special adaptive quantization technique is presented.
In order to have an even better estimation of what quanti¬ zation level should be used, if only few blocks have been already processed, the blocks can be scanned and encoded not row by row or column by column but in a pseudo-random order, which is identical in both the coder and decoder. In case of a fixed scanning order for all frames the kind of scanning method need not to be transmitted.
In addition the pseudo-random block scanning order can also be changed for each frame to get even better results.
If N is the total size of the buffer, b is the total number of blocks per frame and m is the number of the already coded blocks of the frame, the desired number M of bits to code the m blocks should be M = N * (m / b) .
Therefore, when a given block B(n,i,j) is picked, the follow¬ ing steps are carried out:
(1) Compute the level of quantization L that should be ap¬ plied with F to B(n,i,j) with the following formulas and code the block:
Figure imgf000006_0001
Lm+1 = L'm + ' L'm = <1 / »> * ∑ c2 i=l (2) Pick (pseudo-randomly) a new block among the remaining non-scanned blocks,
(3) Go back to (1) .
m+, ,i is the quantization level that will be used for block m+1, L'm is the average quantization level after m blocks were coded, C. and C„ are constants greater 0, e.g. C. = 1 and Cp = 256, M' is the number of bits that was required to code the first m blocks of the present frame, M is the num¬ ber of bits that was desired to code the first m blocks of the present frame and L. are the specific quantization lev¬ els of the m blocks.
The initial estimation Ln of the quantization level is known by both the coder and decoder. A good estimation for L-, is the average value of the quantization level used in the pre¬ vious frame.
Lm+,l. becomes normalized to ensure that mm m+l max where Lmin and Lmax are minimum and maximum q^uantization lev- els.
The quantization level computation algorithm can not com¬ pletely avoid buffer overflow or underflow. The coefficients C. and C- can be chosen to react faster or slower to instant changes in the buffer state. A faster reaction (larger C. , smaller C_ ) will avoid large buffer overflows or underflows, but will also generate a less uniform quantization level. On the other hand, a slower reaction (smaller C. , larger C_ ) will provide a more uniform quantization level, but will al¬ low the possibility of larger buffer overflows or underflows. In case of buffer overflow or underflow C. and/or C- is ad¬ justed, so that the overall rate is enforced.
Advantageously the quantization level can be recalculated by the decoder and does not need to be transmitted. The advantages of the present invention will become more ap¬ parent from the following more detailed description when tak¬ en in conjunction with the accompanying drawings.
Brief description of the drawings
Fig. 1 is a schematic block diagram of a coder
Fig. 2 is a schematic block diagram of a decoder
Fig. 3 shows an image with randomly scanned blocks of pixels
Fig. 4 shows a quantization matrix for luminance blocks
Fig. 5 shows a scanning order
Fig. 6 shows a quantizer function graph
Description of the preferred embodiments
The images have a medium resolution, e.g. 704 * 288 pixels.
The luminance component Y is coded for each of the pixels, whereas the color components U and V are coded in the form of macro-pixels, a macro-pixel being made of 4 luminance pixels.
Each frame is divided into marcro-blocks of 16*16 luminance pixels . Each macro-block is composed of :
- 4 blocks of 8*8 pixels for Y,
- 1 block of 8*8 macro-pixels for U, - 1 block of 8*8 macro-pixels for V.
A single 704 * 288-image not encoded consists of:
- (704 / 16) * (288 / 16) = 792 macro blocks,
792 * 6 = 4752 blocks,
- 4752 * 64 = 304128 bytes.
Such a frame would occupy a size of about 300 KByte in the uncoded format, whereas the available bandwidth allows about (1.2 Mbit/s) / (8 * 25 /s) = 6 KByte per frame, i.e. less than 1/2 bit per pixel. A compression rate of about 1/50 is to be achieved.
In Fig. 1 an digital image source 11 is connected to a frame memory (a RAM) 12. The frame memory 12 may receive block ad¬ dresses within the present image from a pseudo-random block address generator 10, takes sequentially blocks of e.g. 8*8 pixels and stores them in a normal (row by row and column by column, respectively) or random fashion. Each block of pixels is then send to a subtractor 141 and to a motion com¬ pensation circuit 17.
As most of the time frame n-1 is very close to frame n, only the differences between frames n-1 and n are encoded. This technique is called interframe coding (delta-coding) and re¬ sults in a relatively low data rate.
However in some cases it is necessary to encode a frame by itself, e.g. when there is a "cut" in the image sequence. This technique is called intraframe coding. It is also neces¬ sary to use intraframe coding to allow non-sequential decod¬ ing, e.g. start decoding from various points within an image sequence stored on a CD. But intraframe coding results in a higher data rate.
Because in case of motion in the image sequence interframe coding may yield no good quality of the coded image, moving pieces in the image sequence should be detected. Thereby the differences between the moving pieces from frame n-1 and the according pieces from frame n are minimized and the inter¬ frame coding leads to improved image quality. The purpose of motion compensation is to build an image as close as possi¬ ble to frame n by only taking moving pieces out of frame n-1.
This is performed in the motion compensation circuit 17 on a block basis: the block B(n,i,j) of frame n located at frame coordinates (i,j) is evaluated by copying the block B' (n-1, i+x,j+y) located at frame coordinates (i+x, j+y) in a frame memory (a RAM) 142 which contains frame n-1. The mo¬ tion compensation vector V(n,x,y) represents the apparent motion of the image at this point of screen. When using 8*8 pixel blocks for motion compensation the vectors may have a precision of ±1 pixel and a range of ±16 pixel. In case of non-random block scanning the motion compensation vectors are delta coded. The delta vectors (dx, dy) range from -32 to +32 and the most frequent value encountered is 0 (vector same as previous vector) . The delta coordinates are coded independently with adapted Huffman codes in Huffman coder 154. As the statistics for dx and dy are not identical two Huffman codes are used.
Then the vectors are packed 4 by 4: As there is a big chance for dx and dy to be zero, the distribution of zero values among the 4 dx values is coded with an adapted Huffman code. Only the non-zero values of dx are coded after that (with another adapted Huffman code). The same technique is used for dy. In order to optimise the size of the code for the motion com¬ pensation vectors, a certain tolerance is accepted. If V is the target block (not coded), V' is the block obtained by us¬ ing the best motion compensation vector computed for V, and V is the block obtained by using the previous motion com¬ pensation vector (the one which was used for the block left of V) , the previous motion compensation vector will be used again, if- E(V ,V) < E(V* ,V) + E .
By choosing an appropriate threshold E , the number of delta vectors equal to zero can become very big, and the coding will be much more efficient because zero delta vectors are coded with very few bits. This leaves more room for the er¬ ror correction.
Once a good approximation of frame n has been obtained from frame n-1 by using motion compensation, the residual pixel differences remain to be encoded. To have an estimation of the difference between two blocks and to decide for each block, if motion compensated interframe coding or intraframe coding yields better image quality in connection with a giv¬ en data rate, an error function (e.g. the quadratic error) is evaluated in error evaluation circuit 18. The equation of the quadratic error is:
7 7 E(B,B') = 2T ∑ (P(ϋ,jj) - P'(ii,jj))2 ii=0 jj=0
where ii and jj are the coordinates within the blocks B(n,i,j) and B' (n-1, i+x, j+y) , respectively, of pixels P and P', respectively, and E(B,B' ) is an estimation of the differ¬ ence between block B(n,i,j) of frame n and block B' (n-1, i+x, j+y) of frame n-1. B(n,i,j) is the target block (not coded), B' (n-1, i+x, j+y) is the block obtained after interframe coding.
Motion compensation is worth being encoded only if:
E(B,B') < (1 / 2) * E(B,B0) .
Bn is the block B(n-1, i+x, j+y) obtained only with motion com¬ pensation (not interframe coded) .
If motion compensation is calculated for 8*8 pixel blocks within a range of ±16 pixels, the research for the best matching block is performed in a 40*40 pixels area (33*33 possible displacements). A brute force search is performed among all the possible motion vectors (x,y) and the vector which corresponds to the minimum mean absolute error is cho¬ sen. This vector is transferred to a Huffman coder 154. Mo¬ tion compensation circuit 17 may contain a memory in which this 40*40 pixel area is stored.
The equation of the mean absolute error Em is:
7 7 Em(B,B') = ∑ ∑ |P(ii,jj) - P' (ii,jj)| ii=0 jj=0
where ii and jj are the coordinates within the blocks B(n,i,j) and B' (n-1, i+x, j+y) , respectively, of pixels P and P', respectively. B(n,i,j) is the target block (not coded), B' (n-1, i+x, j+y) is the block obtained after interframe cod¬ ing. The Y component pixel values are used.
In theory the motion compensation should be performed in the decoded frame n-1 for that is the one used at decoding time to built the next frame, but practically the source frame n-1 is used instead of the decoded one. Motion compensation vectors obtained by using source images are easier to encode efficiently, because of the lower level of noise and of the better quality of the source images com¬ pared with decoded images. Random noise tends to generate a random factor in the motion compensation vectors.
Motion compensating in principle is also described in- US Pat¬ ent No. 4,785,349, columns 27 - 29.
The value of the quadratic error, which has been calculated in error evaluation circuit 18, is send to inter/intra-cir- cuit 14. In inter/intra-circuit 14 the decision is made which kind of coding leads to better coded image quality. In case of intraframe coding the block B' (n-1, i+x, j+y) of pixels of frame n-1 at the negative input of subtractor 141 is not subtracted from the according block of frame n. In case of interframe coding the subtractor 141 is active and the block B' (n-1, i+x, +y) , which is stored in frame memory 142, is (motion compensated) subtracted from the according block of frame n. Frame memory 142 receives addresses from motion compensation circuit 17.
The resulting block of pixels or pixel differences, respec¬ tively, is transformed in a DCT circuit 151.
Each 8*8 block of values representing spatial data (such as the luminance component Y) is transformed by a DCT into an 8*8 block of spectral coefficients representing the frequen¬ cy distribution in both, horizontal and vertical direction. The range of the coefficients in the transformed block is eight times the range of the values in the source block. The top-left coefficient of the transformed block is particular: it is the average value of the source block (multiplied by eight) . This coefficient is called DC value, the other coef¬ ficients are called AC values. It appears that the DC coeffi¬ cient is very important, and that even if a high quanti- zation level is requested, there should be a minimum error on this value since an error on the average produces very noticeable artefacts (blocking effects).
Before being encoded further, the block is quantized in quantizer 152 by an algorithm chosen to trade off perceived image quality against bit rate. The algorithm of quantizer 152 is described by the following equations:
x - T y = + 1 for x _> T, g'
y = 0 for -T < x < T,
x + T for x < -T,
where x is a DCT coefficient of the transformed block, y is the quantized coefficient, T is the threshold at which the output is forced to zero and g is the quantization step size. The values of T and g are chosen according to the available transmission or storage bandwidth. The according quantizer function graph is shown in Fig. 6.
The quantizer step size g depends on the position of the co¬ efficient in the transformed block: high frequency coeffi¬ cients will be quantized coarser than low frequency coeffi¬ cients because lower frequency DCT coefficients are relative¬ ly less important in the perception of the subjective quali¬ ty of the decoded image. The quantizer step size is obtained for each position in the block by scaling with the according element of a predefined quantization matrix Q. As an exam- pie, the quantization matrix used for Y is shown in figure 4. A different quantization matrix is used for U and V.
A minimum value should be defined for g, to guarantee that the quantized frequency coefficients are always in the range covered by the code used to encode them. As for threshold T, one may- use T = g / 2 .
The value of g is then multiplied by the quantization level to get the final quantization factor for each coefficient of the block.
In order to simulate the behaviour and the decoding error of a decoder (Fig. 2) and to correct the coding calculation within the coder (Fig. 1) accordingly, a feedback loop is built consisting of a de-quantizer 156 and a DCT circuit 157. De-quantizer 156 performs the according inverse func¬ tion of quantizer 152 and DCT circuit 157 an inverse DCT. The decoded blocks B' (n-l,i,j) at the output of DCT circuit 157 are stored in frame memory 142 which is also connected to motion compensation circuit 17. By this way the feedback loop is closed.
The quantized block consists usually of few important spec¬ tral components (statistically concentrated in the low hori¬ zontal and vertical frequencies), separated by a lot of ze¬ ros. Therefore the quantized DCT coefficients in the block are first folded, thereby transformed in a linear list con¬ taining alternatively a run of r zeros (r may be equal to 0) and a non zero coefficient and are then encoded with vari¬ able wordlength (runlength coding) together with the motion vectors in the Huffman coder 154.
The folding of each of the matrices of 64 DCT coefficients is performed in a sorter 153 accordingly to the order shown in Fig. 5. The sorting starts with coefficient No. 1, which is the DC coefficient, is continued in a viceversa diagonal manner and ends with coefficient No. 64. This kind of sort¬ ing is called 'zigzag scanning1. After the last coefficient of the present block an End-of-Block code (EOB) is added.
The zigzag order can be chosen in order to increase the prob¬ ability of having a very long run of zero coefficients until the end of the block. Because the EOB code is a frequent event, it is coded with few bits.
The optimal zigzag order depends on the quantization method and of the code used subsequently.
Zigzag scanning and runlength coding are described in princi¬ ple in the above mentioned article "Scene Adaptive Coder" by Chen and Pratt.
The Huffman code for encoding the runs of zeros with a maxi¬ mum efficiency contains 64 possible runs of r zeros (r rang¬ ing from 0 to 63). An additional code is reserved for the EOB sign. The code defined for each run of zeros is totally independent of the value that follows the run.
Another Huffman code encodes the non-zero coefficients with a maximum efficiency. The range covered by this code is [-256,-1] and [+l,+256].
As quantized non-zero coefficients have an important proba¬ bility to be ±1, particularly in the higher frequency coeffi¬ cients because they are more strongly quantized, a special code has been reserved to code a terminal run of ±1 values. The signs of the non-zero coefficients are always coded with one bit, as their event may be considered as random with a 50% probability.
The Huffman coded data are stored in the buffer within buff¬ er circuit 155 with a variable data rate and read out with a constant data rate. A channel coder 16 receives these data together with other signals.
In order to guaranty the data rate and to avoid buffer over¬ flow or underflow the general quantization step size of quantizer 152 and de-quantizer 156 within a block is adapted by means of the quantization level, which is recalculated after each block has been encoded within buffer circuit 155 as a function of the amount of the already encoded data for the frame, compared with the total buffer size (see formulas for , and in part 'summary of the invention'). The quantization level can be carried out by a microprocessor within buffer circuit 155. The quantization level can advan¬ tageously be recalculated by the decoder and does not need to be transmitted.
In case of pseudo-random block scanning the blocks, e.g. 32, 33, 34, 35, 36, within the present frame 31 are scanned ac¬ cording to the addresses generated in pseudo random block address generator 10 as mentioned before and indicated in Fig. 3. This leads to a better estimation of the appropriate overall quantization level within the present frame. Other¬ wise the blocks within frame 31 are scanned row by row and column by column.
The pseudo-random block scanning order can be changed for each frame to get even better results. In this case the kind of block scanning will be transmitted and stored, respective¬ ly, too.
The channel coder 16 adds the inter/intra-information from inter/intra circuit 14, the Huffman coded motion compensa¬ tion information and e.g. pseudo-random address information from pseudo-random address generator 10, audio signals, er¬ ror correction information and sync words to the video data stream. Clock Generator 191 supplies control circuit 192 with clock pulses. Control circuit 192 supplies all the other circuits in the coder with appropriate control signals.
In Fig. 2 a channel decoder 26 receives the storage media or transmission channel data stream. This data stream is split into luminance and chrominance signals (Y, U and V), motion compensation information, inter/intra-decision information, audio signals, sync words and, if required, pseudo random block addresses. In addition error correction is performed within channel decoder 26.
The video signal, e.g. the luminance component, is fed with a constant data rate together with the Huffman coded motion vectors into buffer circuit 255 and transferred with a vari¬ able data rate from this buffer to a Huffman decoder 254. In this circuit the according decoding of the different Huffman codes, the special code for a terminal run of ±1 values and EOB code is performed.
In the inverse sorter 253 an inverse scanning according to sorter 153 and Fig. 5 is performed. At the output are blocks of quantized 8*8 DCT coefficients available. In de-quantizer 252 the coefficients are expanded approximately to their val¬ ue at the input of quantizer 152 in the coder. This includes an inverse scaling according to quantization matrix (Fig. 4) . The quantization level in de-quantizer 252 is controlled by the fullness of the buffer in buffer circuit 155 and re¬ calculated in buffer circuit 255 similar to the computing in buffer circuit 155 and does not need to be transmitted.
A DCT circuit 251 performs an inverse DCT on the 64 coeffi¬ cients of each block. The pixel values and pixel difference values, respectively, of the blocks are transferred to an adder 241. In case of intraframe coding of the present block the output signal from a frame memory 242 is not added and in case of interframe coding this output signal B' (n-1, i+x, +y) is (mo¬ tion compensated) added to the pixel difference values.
An inter/intra circuit 24 receives the inter/intra informa¬ tion from channel decoder 26 via the motion compensation cir¬ cuit 27. The inter/intra circuit 24 controls the adder 241 as described before. Motion compensation circuit 27 receives motion compensation vectors from Huffman decoder 254 and blocks of pixels of frame n-1 from frame memory 242.
So in case of intraframe coding advantageously motion compen¬ sation vectors need not to be transmitted. In case of motion the motion compensation circuit 27 can send motion compensa¬ tion vectors from Huffman decoder 254 as addresses to frame memory 242. Motion compensation circuit 27 may contain a pixel memory.
The blocks B(n,i,'j) of pixels of frame n at the output of inter/intra circuit 24 are written into a frame memory 22. This can be done row by row and column by column, respective¬ ly, or with pseudo-random addresses either with a fixed and stored or calculated order or by a transmitted order. These addresses are send from channel decoder 26 to frame memory 22 and motion compensation circuit 27. Before storing the according blocks are written into frame memory 242 as frame n-1.
The frame memory 22 can be read out pixel by pixel and line by line. The resulting signal can be displayed e.g. on a TV screen 21. The processing for the chrominance components U and V is per¬ formed in a similar way. The quantization matrix may vary. As mentioned before the motion vector calculation in motion compensation circuits 17 and 27, respectively, is carried out with the Y component only.
Clock regeneration circuit 291 supplies- control circuit 292 with clock pulses. Control circuit 292 supplies all the oth¬ er circuits in the decoder with appropriate control signals.

Claims

Claims
Method of encoding digital image sequences, comprising the steps of:
-providing a compressed digital video signal of a type in which each frame thereof comprises a plurality of blocks of coefficients coded with variable wordlength, -quantizing each block individually by the use of a quantization level.
Method as defined in claim 1, further including the step of:
-quantizing each coefficient of the block individually by the use of a quantization matrix.
Method as defined in claim 1 or 2, further including the step of:
-calculating the quantization level of each block using the formulas
(M'-M) m
Lm+1 = L'm + ' L'm = d / *> * ∑ Li' c2 i=l
where Lm+,l. is the q^uantization level that will be used for a present block m+l, L1 is the average quantization level after m blocks were coded, C. and C? are constants greater 0, e.g. C. = 1 and C_ = 256, M' is the number of bits that was desired to code the first m blocks of the present frame, M is the number of bits that was required to code the first m blocks of the present frame and L. are the specific quantization levels of the first m blocks. 4. Method as defined in claim 3, further including the step of:
-normalizing the quantization level Lm+,l, to ensure that mm. < __.m+_,l, < __.max,' where mm. and Lmax are minimum and maximum q^uanti- zation levels.
5. Method as defined in claim 3 or 4, further including the step of:
-calculating an initial quantization level Ln for the first block of each frame, 0 being the average value of the quantization levels used in the previous frame, L_ being known by both a coder and decoder.
6. Method as defined in claim 3, 4 or 5, further including the step of:
-quantizing each coefficient of the block by dividing it by -1 the quantization level Lm of the block and bv the according element of the quantization matrix.
7. Apparatus for encoding digital image sequences, compris¬ ing:
-means for providing a compressed digital video signal of a type in which each frame thereof comprises a plu¬ rality of blocks of coefficients coded in a Huffman cod¬ er with variable wordlength,
-means for quantizing each coefficient of the blocks in¬ dividually by dividing it by an individual block quan¬ tization level and by the according element of a quan¬ tization matrix.
Apparatus as defined in claim 7, wherein the quantization level of each block is individually calcu¬ lated by means which use the formulas (M ' -M) m
Lm+1 = m + ' L m = d / m) * . c2 i=l
where J . is the quantization level that will be used m+l ^ for a present block m+l, L1 is the average quantization level after m blocks were coded, C. and C. are constants greater 0, e.g. C. = 1 and C_ = 256, M' is the number of bits that was required to code the first m blocks of the present frame, M is the number of bits that was desired to code the first m blocks of the present frame and L. are the specific quantization lev¬ els of the first m blocks.
9. Apparatus as defined in claim 8, wherein the quanti¬ zation level m+ ^l-. is normalized to ensure that mm m+l max where Lmm. and Lmax are minimum and maximum q^uanti- zation levels and wherein an initial quantization level L_ for the first block of each frame m is calculated, _ being the average value of the quantization levels used in the previous frame.
PCT/EP1991/000450 1990-03-15 1991-03-09 Digital image coding with quantization level computation WO1991014339A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US49409890A 1990-03-15 1990-03-15
US494,098 1990-03-15

Publications (1)

Publication Number Publication Date
WO1991014339A1 true WO1991014339A1 (en) 1991-09-19

Family

ID=23963032

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP1991/000450 WO1991014339A1 (en) 1990-03-15 1991-03-09 Digital image coding with quantization level computation

Country Status (2)

Country Link
AU (1) AU7474591A (en)
WO (1) WO1991014339A1 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0478230A2 (en) * 1990-09-27 1992-04-01 AT&T Corp. Adaptive buffer/quantizer control for transform video coders
EP0482864A2 (en) * 1990-10-22 1992-04-29 Fujitsu Limited An image data processing apparatus
GB2261567A (en) * 1991-11-15 1993-05-19 Televerket Method and device for image coding of a video signal
WO1993012613A1 (en) * 1991-12-13 1993-06-24 Avid Technology, Inc. Quantization table adjustment
US5355450A (en) * 1992-04-10 1994-10-11 Avid Technology, Inc. Media composer with adjustable source material compression
US5909250A (en) * 1993-04-16 1999-06-01 Media 100 Inc. Adaptive video compression using variable quantization
US5926223A (en) * 1993-04-16 1999-07-20 Media 100 Inc. Adaptive video decompression
EP0967575A2 (en) * 1998-06-23 1999-12-29 Nec Corporation Method and apparatus for image data compression and decompression
WO2002007448A1 (en) * 2000-07-17 2002-01-24 Telefonaktiebolaget L M Ericsson (Publ) Alternative block orders for better prediction
EP2112819A1 (en) * 1992-01-29 2009-10-28 Mitsubishi Denki Kabushiki Kaisha High-efficiency encoder and video information recording/reproducing apparatus
US7688892B2 (en) 1992-01-29 2010-03-30 Mitsubishi Denki Kabushiki Kaisha High efficiency encoder and video information recording/reproducing apparatus

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4394774A (en) * 1978-12-15 1983-07-19 Compression Labs, Inc. Digital video compression system and methods utilizing scene adaptive coding with rate buffer feedback
FR2597282A1 (en) * 1986-04-11 1987-10-16 Guichard Jacques Method of quantization in a coding by transformation for the transmission of image signals
US4704628A (en) * 1986-07-16 1987-11-03 Compression Labs, Inc. Combined intraframe and interframe transform coding system
EP0323362A1 (en) * 1987-12-30 1989-07-05 Thomson Grand Public Adaptive method of transform coding and decoding a sequence of pictures, and devices for carrying out this method
EP0347330A1 (en) * 1988-06-17 1989-12-20 Thomson-Csf Method for controlling the filling of the buffer memory of a picture coder, and controlling device for carrying out the method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4394774A (en) * 1978-12-15 1983-07-19 Compression Labs, Inc. Digital video compression system and methods utilizing scene adaptive coding with rate buffer feedback
FR2597282A1 (en) * 1986-04-11 1987-10-16 Guichard Jacques Method of quantization in a coding by transformation for the transmission of image signals
US4704628A (en) * 1986-07-16 1987-11-03 Compression Labs, Inc. Combined intraframe and interframe transform coding system
EP0323362A1 (en) * 1987-12-30 1989-07-05 Thomson Grand Public Adaptive method of transform coding and decoding a sequence of pictures, and devices for carrying out this method
EP0347330A1 (en) * 1988-06-17 1989-12-20 Thomson-Csf Method for controlling the filling of the buffer memory of a picture coder, and controlling device for carrying out the method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IEEE Transactions on Circuits and Systems. volume 35, no. 2, February 1988. (New York, NY, US), H. Gharavi: "Low bitrate video transmission for ISDN application", pages 258-261. *
Symposium record on the 16th International TV Symposium, Montreux, CH, 17-22 June 1989, K. Grotz et al.: "Image coding techniques for 64 kbit/s channels", pages 387-409. *

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0478230A3 (en) * 1990-09-27 1992-11-25 American Telephone And Telegraph Company Adaptive buffer/quantizer control for transform video coders
EP0478230A2 (en) * 1990-09-27 1992-04-01 AT&T Corp. Adaptive buffer/quantizer control for transform video coders
EP0482864A2 (en) * 1990-10-22 1992-04-29 Fujitsu Limited An image data processing apparatus
EP0482864A3 (en) * 1990-10-22 1993-01-13 Fujitsu Limited An image data processing apparatus
GB2261567B (en) * 1991-11-15 1995-04-19 Televerket Method and device for image coding of a video signal
GB2261567A (en) * 1991-11-15 1993-05-19 Televerket Method and device for image coding of a video signal
US5966181A (en) * 1991-11-15 1999-10-12 Televerket Video coding system with buffer control quantization step size
US5577190A (en) * 1991-12-13 1996-11-19 Avid Technology, Inc. Media editing system with adjustable source material compression
US6553142B2 (en) 1991-12-13 2003-04-22 Avid Technology, Inc. Quantization table adjustment
WO1993012613A1 (en) * 1991-12-13 1993-06-24 Avid Technology, Inc. Quantization table adjustment
US6023531A (en) * 1991-12-13 2000-02-08 Avid Technology, Inc. Quantization table adjustment
US6687407B2 (en) 1991-12-13 2004-02-03 Avid Technology, Inc. Quantization table adjustment
US7936817B2 (en) 1992-01-29 2011-05-03 Mitsubishi Denki Kabushiki Kaisha High-efficiency encoder and video information recording/reproducing apparatus
US7756202B2 (en) 1992-01-29 2010-07-13 Mitsubishi Denki Kabushiki Kaisha High-efficiency encoder and video information recording/reproducing apparatus
US7688892B2 (en) 1992-01-29 2010-03-30 Mitsubishi Denki Kabushiki Kaisha High efficiency encoder and video information recording/reproducing apparatus
EP2112819A1 (en) * 1992-01-29 2009-10-28 Mitsubishi Denki Kabushiki Kaisha High-efficiency encoder and video information recording/reproducing apparatus
US5355450A (en) * 1992-04-10 1994-10-11 Avid Technology, Inc. Media composer with adjustable source material compression
US6072836A (en) * 1993-04-16 2000-06-06 Media 100 Inc. Adaptive video compression and decompression
US5926223A (en) * 1993-04-16 1999-07-20 Media 100 Inc. Adaptive video decompression
US5909250A (en) * 1993-04-16 1999-06-01 Media 100 Inc. Adaptive video compression using variable quantization
EP0967575A3 (en) * 1998-06-23 2001-02-07 Nec Corporation Method and apparatus for image data compression and decompression
EP0967575A2 (en) * 1998-06-23 1999-12-29 Nec Corporation Method and apparatus for image data compression and decompression
GB2380353A (en) * 2000-07-17 2003-04-02 Ericsson Telefon Ab L M Alternative block orders for better prediction
WO2002007448A1 (en) * 2000-07-17 2002-01-24 Telefonaktiebolaget L M Ericsson (Publ) Alternative block orders for better prediction
US6724818B1 (en) 2000-07-17 2004-04-20 Telefonaktiebolaget Lm Ericsson (Publ) Alternative block orders for better prediction
GB2380353B (en) * 2000-07-17 2004-10-06 Ericsson Telefon Ab L M Alternative block orders for better prediction

Also Published As

Publication number Publication date
AU7474591A (en) 1991-10-10

Similar Documents

Publication Publication Date Title
EP0519962B1 (en) Digital image coding using a random scanning of image frames
EP1113672B1 (en) Quantization matrix for still and moving picture coding
EP0562787B1 (en) Image coding method and apparatus
EP0663778B1 (en) Image coding method and apparatus therefor
KR100253931B1 (en) Approximate mpeg decoder with compressed reference frames
EP0535960B1 (en) Coding signal processor
US5638126A (en) Method and apparatus for deciding quantization parameter
KR970003789B1 (en) Bit allocation method for controlling bit-rate of video encoder
US5892548A (en) Adaptive quantizer with modification of high frequency coefficients
EP0959627A2 (en) A motion video compression system with adaptive bit allocation and quantization
KR20000071026A (en) Apparatus and method for optimizing the rate control in a coding system
US20050036549A1 (en) Method and apparatus for selection of scanning mode in dual pass encoding
WO1999004359A1 (en) Apparatus and method for macroblock based rate control in a coding system
US6185253B1 (en) Perceptual compression and robust bit-rate control system
US7095448B2 (en) Image processing circuit and method for modifying a pixel value
EP0519995B1 (en) Digital image processing including block edges filtering
JPH08275158A (en) Moving image compression system with guaranteed bit generation limit
WO1991014339A1 (en) Digital image coding with quantization level computation
EP0680218B1 (en) Image signal decoding apparatus having an encoding error compensation
JP3902948B2 (en) Video encoding device
JP2900927B2 (en) Encoding method and encoding device
JPH0487470A (en) Picture processing unit

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU BB BG BR CA FI HU JP KP KR LK MC MG MW NO PL RO SD SU US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE BF BJ CF CG CH CM DE DK ES FR GA GB GR IT LU ML MR NL SE SN TD TG

NENP Non-entry into the national phase

Ref country code: CA