CN1874509B - Method and system for context-based adaptive binary arithmetic coding - Google Patents

Method and system for context-based adaptive binary arithmetic coding Download PDF

Info

Publication number
CN1874509B
CN1874509B CN200610088710.XA CN200610088710A CN1874509B CN 1874509 B CN1874509 B CN 1874509B CN 200610088710 A CN200610088710 A CN 200610088710A CN 1874509 B CN1874509 B CN 1874509B
Authority
CN
China
Prior art keywords
numeral
piece
value
assigned
context
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
Application number
CN200610088710.XA
Other languages
Chinese (zh)
Other versions
CN1874509A (en
Inventor
M·卡策维茨
R·库尔切伦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Technologies Oy
Original Assignee
Nokia Oyj
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
Priority claimed from US09/995,240 external-priority patent/US6856701B2/en
Application filed by Nokia Oyj filed Critical Nokia Oyj
Publication of CN1874509A publication Critical patent/CN1874509A/en
Application granted granted Critical
Publication of CN1874509B publication Critical patent/CN1874509B/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

A method of image coding wherein an image is divided into blocks having a plurality of pixels. A transform coding operation is performed on a block of pixels to produce a corresponding block of transform coefficient values, which is scanned to produce a scanned array of coefficient values represented by a plurality of number pairs having a first and a second number. The first and second numbers are assigned to one of a plurality of contexts (14) representative of the number pairs. The first number of a number pair is assigned to a context based on a first number of another number pair. Alternatively, the second number of a number pair is assigned to a context based on the first number of the number pair (16). Furthermore, a number indicative of the number of non-zero coefficient values in the block of transform coefficient values is determined and assigned to a context.

Description

Method and system based on contextual adaptive binary arithmetic coding
The application is that application number is dividing an application of 02822672.0 patent application.
Technical field
Relate generally to rest image of the present invention and compression of video sequence, relate in particular to a kind of based on contextual adaptive binary arithmetic coding method and system.
Background technology
The array that digital picture of compressed format has not comprised an image pixel or pel.For example, in a kind of conventional digital image format famous with 1/4th CLV Common Intermediate Formats (QCIF), image or frame have comprised 25,344 pixels in the array that is arranged in 176 * 144 pixels.Each pixel represents by the bit of some successively, and what their transmitted is the information about pixel lightness (brightness) and/or color (colourity).There is in addition brightness in representative digit image and/or the different schemes of colourity.Normally used is so-called YUV color model.Wherein brightness or Y representation in components pixel intensity, and pixel color is represented by two colourity or the color difference components of U and V mark.Conventionally using in addition those trichromatic components of take expression light is other color model on basis, for example RGB (red, green, blue) color model.Yet, to compare with the color model based on primary colors, the color model representing based on brightness/chroma has more advantage.These advantages stem from the characteristic that human visual system is easier to experience light variation rather than change color.And YUV color model is generally chromatic component (U, V), use a spatial resolution lower than luminance component (Y), utilized thus this specific character.So just can in the situation that significantly picture quality is not discovered by reduction institute, reduce the needed amount of information of presentation video color information.
Normally realizing by means of double sampling compared with low spatial resolution of chromatic component.Conventionally, the piece of 16 * 16 image pixels is represented by the piece of four 8 * 8 pixels that comprised monochrome information, corresponding chromatic component represents by the piece of 8 * 8 pixels respectively, wherein said represent one with luminance component in the image-region of piece equivalence of 16 * 16 pixels.Therefore the factor that chromatic component is 2 by a size in the x and y direction carries out space double sampling.The luminance block of four 8 * 8 pixels that finally obtain and 2 spatially with it the combination of the chrominance block of 8 * 8 corresponding pixels be commonly referred to a YUV macro block, or referred to as macro block.And QCIF image comprises 11 * 9 macro blocks.If represent luminance block and chrominance block by 8 (the namely numeral in 0 to 255 this scope) resolution, so, for brightness and the needed total bit number of chrominance information that represents to be associated with each macro block, be 6 * (8 * 8 * 8)=3072 bits.Therefore, for representing that the needed bit number of QCIF format-pattern is 99 * 3072=304,128 bits.
Will be appreciated that, even in the situation that the factor that is 2 by a size as mentioned above carries out double sampling to two of digital picture chromatic components, the not compressed image of median size (for example 174 * 144 pixels) also can need a large amount of bits to supply to show used.This means will be excessive with the needed amount of memory of uncompressed form preservation digital picture.In addition, for instance, if having medium or transmit rest image compared with the data communication network of low available bandwidth via one, so the transmission time will be very long or network likely can block.If wish to send in real time a series of images as digital video sequences, bandwidth demand even can be more strict so.For example, with the speed of 30 frames per second, transmitting one has used YUV color model to represent and has comprised that the Serial No. of a series of QCIF of compression format-patterns need to use the above bandwidth of 9Mb/s (million bits per second).Due to the very large memory span of needs, transport channel capacities and hardware performance, therefore, when being used to videograph, transmission and demonstration, this high data rate is normally unpractical.If transmit in real time video sequence in ISDN (integrated services digital network) or this class fixed line of PSTN (public switch telephone network), data available transmission bandwidth is about 64k/s conventionally so.In mobile video telephone, have at least part transmission to carry out on Radio Communications Link, available bandwidth likely can be low to 20kb/s so.This means and must significantly reduce for representing the amount of information of video data, so that can be at transmitted over communications networks digital picture or the video sequence of low bandwidth.Yet desirable, this minimizing should realize in the situation that significantly not reducing image/video sequence quality.
In several years, for reducing representative digit image and video sequence desired data amount, carried out a large amount of research work in the past, developed thus multiple different schemes and international standard digital still and digital video are compressed.In existing nearly all rest image and video encoder, the basic method for compressing image using has all comprised block-based transition coding.Conventionally, transition coding is to convert the illustrated view data that comprises pixel value to a kind of form that comprises one group of coefficient value, and wherein each coefficient value is a weighting factor (multiplier) of the basic function of conversion of discussing.Can show in addition, at the inner spatial redundancy that has quite large degree of typical digital picture.In fact, this means the inner any pixel value of image its immediate other pixel values are actual to be conventionally identical, that is to say, between pixel value, have to a great extent relevant.In addition it is further known, image is being carried out to some mathematic(al) manipulation, for example when two-dimension discrete cosine transform (DCT), this spatial redundancies will significantly reduce, and produces thus a more succinct view data and shows.
the block-based transition coding of using in JPEG still image coding
For example, in the rest image compression performed according to the reference mode of widely used Joint Photographic Experts Group, first the image that encode is divided into the square block array of non-overlapping copies, and wherein for instance, each piece comprises the image pixel array of 8 * 8.Then, with regard to JPEG benchmark, be that two-dimension discrete cosine transform (DCT) is applied independently in to each image block.Do like this and have being transformed into spatial frequency domain from the view data of pixel codomain and producing the effect of one group of corresponding coefficient value, wherein each coefficient value be one about the weighting factor of two-dimensional dct basic function.Consequent coefficient value, through quantizing, is then used entropy to encode and with a kind of lossless manner, it is encoded, thereby further reduces for it and show needed data volume (namely bit number).According to JPEG benchmark, entropy coder has only used huffman coding to produce a compression bit stream, but also can use arithmetic coding in other patterns.Finally, for example, data for Description Image and coding parameter (compression type, quantification and coding schedule, image size etc.) are embedded into the bit stream that entropy coder produces.And because Joint Photographic Experts Group comprises four kinds of alternative coding modes and only available quantification and coding schedule assigned to a small amount of constraints, thereby be necessary to carry out aforesaid operations, to can exchange JPEG compression bit stream between different platform and rebuilding image in the unambiguous situation of milli.
The such digital video sequences of conventional film recording on similar film comprises a series of rest images (being conventionally referred to as " frame "), and illusion of movement is by succession showing that to be generally the so comparatively faster speed of 15 to 30 frames per second described frame produces.The same with any rest image, a digital video sequences inside, the pixel value of individual frames will demonstrate sizable spatial redundancy.Therefore, the same with independent rest image, the frame of digital video sequences also can be processed by block-based transition coding.
Equally, the image of video sequence consecutive frame is similar often, and therefore, between certain frame of video and next frame of video, variation is on the whole very little.This means in Typical Digital video sequence inside and have sizable time redundancy.For example, in a scene, can comprise some the static element such as background scenery, also can comprise some moving region, for example newscaster's face.In the consecutive frame of sequence, background may remain unchanged, and the unique motion in scene is produced by the variation of newscaster's facial expression.Therefore, when forming the compression expression of video sequence, except reducing the method for spatial redundancy, also can use those to reduce the technology of view data time redundancy in sequence, realize thus further data compression.
hybrid video coders/decoder
The video coding system of prior art has been used and a kind ofly with the famous technology of motion compensated prediction, has been reduced the time redundancy in video sequence.With regard to this motion compensation technique, in digital video sequences, the picture material of some (conventionally a lot) frame is one or more other frames " prediction " from sequence, and wherein said other frames are usually said " reference frame ".The prediction of picture material is to realize by using " motion vector " to follow the trail of object or a region in image between the frame that will encode and one or more reference frame.In general, in video sequence, one or more reference frames can or be followed after described frame prior to the frame that will encode.Yet, from follow-up discussion herein, can obviously find out, motion compensated prediction is applied to all frames of video sequence and in the video coding system of prior art, uses thus the coding of at least two types, do like this and inappropriate (or possibility).
Use motion compensated prediction and compressed video sequence frame is commonly referred to interframe encode or P frame.Only motion compensated prediction is difficult to provide the video frame images content representation of sufficiently clear, and the frame that is therefore conventionally necessary for each intraframe coding provides one so-called " predicated error " (PE) frame.As more described in detail after a while herein, what predication error frame represented is the decoded version of inter-frame encoding frame and the difference between coded frame picture material.More particularly, predication error frame has comprised the corresponding difference of rebuilding between pixel value that represents that the pixel value of the frame that will encode forms with prediction (interframe encode) version based on discussed frame.Therefore, predication error frame has the feature similar to rest image, and can reduce the expression needed data volume of this frame (bit number) by applying block-based transition coding.
Do not use the video sequence frame of motion compensated prediction compression to be called as (in frame) coding or I frame in frame.Conventionally, intracoded frame by block-based transition coding is applied to wanted coded frame pixel value produce.Possible in the situation that, the piece of intracoded frame is to predict interior previous coding piece from same frame in addition.This technology is usually said inter prediction, the effect of represent in the frame-needed data volume of coded frame that it has further minimizing.
In order to describe in more detail the principle of block-based transition coding and motion compensated prediction, now will be to Fig. 1 reference in addition, this figure is the schematic diagram of conventional hybrid video coders, has wherein used in frame and has produced a compression (coding) video bit stream with the combination of interframe encode.In Fig. 2, described corresponding decoder and will be described in the text after a while.
Video encoder 300 comprises that one for the input 301 from camera or other video source (not shown) receiving digital video signals.It can also comprise that is adjusted into a converter unit 304 of carrying out block-based discrete cosine transform (DCT), a quantizer 306, an inverse quantizer 308, one is adjusted to execution block-based anti-discrete inverse transformation block 310, combiner 312 and 316 and frame memories 320 of conversion (IDCT) in advance.Encoder also comprises exercise estimator 330, sports ground encoder (motion field encoder) 340 and motion compensated predictor 350.Switch 302 and 314 are by control and management device 360, between the frame mode of Video coding and the inter-frame mode of Video coding, switch encoder and operate with cooperative mode.Encoder 300 also comprises video multiplex encoder 370, the various types of information that it generates from encoder 300, form individual bit stream 335, to be further transferred to long-range receiving terminal, or for instance, it also can be kept at described bit stream in a large-capacity storage media, for example hard disc of computer (not showing).
Encoder 300 is following runnings.Each uncompressed video frames that video source offers input 301 is all to receive and process in the mode of macro block one by one, wherein preferably with raster scan order, it is processed.When starting the video sequence of encoding new, the first frame in described sequence is encoded as an intracoded frame.Next, unless met one of following condition, otherwise will be by encoder being programmed with interframe encode form each frame of encoding: 1) judge that the reference frame using in the present frame that is just being encoded and prediction is very different, and produced thus too much prediction error information; 2) predefined Zheng Neizheng recurrence interval stops; Or 3) from a receiving terminal, receive a feedback, this feedback representation be that a requirement provides the request of frame with intraframe coding form.
Condition 1) appearance is by monitoring that the output of combiner 316 detects.Combiner 316 forms a difference between the current macro of the frame that is just encoded and its prediction producing in motion compensated prediction parts 350.For example, if measure (the absolute difference summation of pixel value) about this difference exceeds a predetermined threshold, combiner 316 will be given notice to control and management device 360 via control line 319 so, and control and management device 360 will come console switch 302 and 314 via control line 313, to encoder 300 is switched to intra-frame encoding mode.Condition 2) appearance is by means of the timer in control and management device 360 or frame counter and monitor as follows, if timer termination or frame counter reach the frame of predetermined quantity, control and management device 360 is via control line 313 console switchs 302 and 314, to encoder is switched to intra-frame encoding mode.If control and management device 360 receives from a receiving terminal feedback signal that an expression receiving terminal need to refresh intracoded frame via control line 321, trigger condition 3).For example, if the frame previously having sent is subject to heavy damage because disturb in its transport process, and then can not on receiver, it be decoded, likely occur this situation.Under this condition, Rcv decoder sends the request that a requirement is encoded to next frame with intraframe coding form, reinitializes thus described coded sequence.
Now the operation of the encoder 300 in intra-frame encoding mode is described.In intra-frame encoding mode, 360 pairs of switches 302 of control and management device operate, so that from input line 318 receiver, video inputs.Vision signal is to receive from input 301 in the mode of macro block one by one and via input line 318.When it is received, the brightness and the blocks of chrominance values that form macro block are delivered to dct transform unit 304, and a two-dimension discrete cosine transform is carried out to each piece value in described unit, thus for each piece produces a two dimensional DCT coefficients array.For instance, in afore-mentioned, each macro block comprises the spatially blocks of chrominance values of 8 * 8 corresponding pixels with it of the blocks of luminance values of 48 * 8 and two, and dct transform parts 304 are the coefficient value array of one 8 * 8 of each piece generation.
DCT coefficient about each piece is delivered to quantizer 306, in described quantizer 306, uses quantization parameter QP to quantize it.Selection about quantization parameter QP is controlled via control line 315 and by control and management device 360.Due to the numerical precision of the coefficient through the quantizing numerical precision lower than the DCT change unit 304 initial coefficients that generate, therefore described quantification can be introduced an information loss.So just provide another so as to reducing the mechanism that represents each image desired data amount in video sequence.Yet the dct transform institute harmless from essence is different, the information loss of introducing by quantification can cause the irreversible degradation of picture quality.The quantization degree that is applied to DCT coefficient is higher, and the loss of picture quality is also just larger.
As shown in the circuit 325 of Fig. 1, concerning each piece, it will be delivered to video multiplex encoder 370 from quantizer 306 through the DCT coefficient quantizing.Zigzag scanning process of video multiplex encoder 370 use sorts to the conversion coefficient of each piece.This operation is that the two-dimensional array of the conversion coefficient through quantizing is transformed in an one-dimensional array.Typical zigzag scanning is as shown in Figure 3 roughly that the order increasing progressively with spatial frequency sorts to coefficient.In addition, described operation is sorted to it according to coefficient value toward contact, so that the coefficient of position coefficient early after more likely leaning on than position in array has larger absolute value in one-dimensional array.This is that lower spatial frequency often has higher amplitude because inner at image block.Those values at the one-dimensional array Zhong, end of the conversion coefficient therefore, quantizing in process are generally zero.
the distance of swimming of dct transform coefficient-grade (run-level) coding
Conventionally, video multiplex encoder 370 has used two values of grade by name (level) and the distance of swimming (run) to represent each nonzero coefficient through quantizing in one-dimensional array.Grade is the value of the coefficient through quantizing, and the distance of swimming is the continuous zero valued coefficients number before discussed coefficient.About the distance of swimming of given coefficient and the value of grade, through sequence, making the value of grade is before relevant distance of swimming value.The grade point equating with zero is for representing that described does not have nonzero coefficient.This size is that 0 grade point is called EOB (block end) symbol.
entropy coding
By using entropy to encode, in video multiplexer 370, further the value of the distance of swimming and grade is encoded.Described entropy coding is a lossless operation, and what it utilized is that coded data set internal symbol has this fact of different probabilities of occurrence conventionally.So,, by assigning a variable number, can represent the symbol more likely occurring with thering is the still less code word of bit, rather than represent each symbol with the bit of fixed qty.Therefore, entropy coding is commonly referred to variable length code (VLC).Because some grade and the distance of swimming more likely occur than other values, therefore can effectively with entropy coding, reduce the needed bit number of value that represents the distance of swimming and grade.Can implement entropy coding with multiple distinct methods here.For example, the entropy of the distance of swimming and class parameter coding can be implemented by means of the look-up table shining upon between each possibility symbol of the coded data centralization of definition and corresponding variable-length code (VLC).Normally by training data is carried out, statistical analysis is defined this look-up table, and wherein said training data comprises same-sign and has similar statistical property to coded symbol.In addition the replacement technology that also has a kind of arithmetic coding by name, it can be used for converting the distance of swimming and grade point to variable length codeword.For example, when a group code is carried out to arithmetic coding, for the distance of swimming and the grade point that conversion coefficient piece is quantized, be to encode as the decimal number of a floating type.
Once use Appropriate method to carry out entropy coding to the distance of swimming and grade point, video multiplex encoder is further combined it with control information, use in addition a kind of variable length decoding method that is suitable for discussed information type to carry out entropy coding, thereby formed the independent compression bit stream of coded image information 335.
The local decode version of macro block also forms in encoder 300.This operation is to complete by the quantization transform coefficient about each piece of quantizer 306 outputs is applied to a kind of reverse dct transform via inverse quantizer 308 and in inverse transformation block 310.So, the pel array of reconstruction is to construct for each piece in described macro block.The view data finally obtaining is input to combiner 312.In intra-frame encoding mode, switch 314 is set, so that it is zero to arrive being input as of combiner 312 via switch 314.So the operation that, combiner 312 is carried out is equivalent to transmits those decode image data that do not change.
When receiving the macro block of present frame and macro block having been carried out to the aforementioned Code And Decode step in unit 304,306,308,310 and 312, in frame memory 320, construct the decoded version of intracoded frame.After last macro block of present frame has been carried out to intraframe coding and subsequent decoding, frame memory 320 will comprise the frame of a complete decoding, in the process of the frame of video of the follow-up reception of encoding with interframe encode form, the frame of described complete decoding can be used as a prediction reference frame.
Now the operation of the encoder 300 in interframe encoding mode is described.In interframe encoding mode, control and management device 360 receives its input by console switch 302 from circuit 317, has wherein comprised the output of combiner 316.Combiner 316 is with macro block mode receiver, video input signal from input 301.When combiner 316 receives the formation brightness of macro block and the piece of chromatic value, it can form corresponding prediction error information piece.Described prediction error information represents is the difference between its predicted value producing in discussed piece and motion compensated prediction unit 350.More particularly, the two-dimensional array that comprises described value about the prediction error information of each piece in macro block, wherein each value representation is a pixel value and be the difference between the decoded pixel value obtained of the motion compensated prediction of described formation according to following process in coded brightness or chrominance information piece.Therefore, in the situation that each macro block comprises the spatially blocks of chrominance values of 8 * 8 corresponding pixels with it of the blocks of luminance values of 8 * 8 pixels and two, about the prediction error information of macro block, also comprise the luminance prediction error value piece of four 8 * 8, and two chrominance prediction error value pieces of corresponding 8 * 8 with it spatially.
Prediction error information about each piece in macro block is passed to dct transform unit 304, and a two-dimension discrete cosine transform is carried out to each predicted value piece in described unit, to be the two-dimensional array that each piece produces a dct transform coefficient.Therefore, in the situation that the luminance prediction error value piece that comprises four 8 * 8 about the prediction error information of each macro block and two corresponding 8 * 8 chrominance prediction error value piece with it spatially, the conversion coefficient value array that DCT converting unit 304 is one 8 * 8 of each blocks of prediction generation.Conversion coefficient about each blocks of prediction is passed to quantizer 306, wherein with a quantization parameter QP and in the similar mode of the described mode of a kind of encoder operation with being above combined in frame mode, it is quantized.Equally, about the selection of quantization parameter QP, by control and management device 360, by control line 315, controlled.
What through the DCT coefficient quantizing, represent is the prediction error information of each piece in macro block, and as shown in the circuit 325 in Fig. 1, these coefficients are delivered to video multiplexer 370 from quantizer 306.The same with intra-frame encoding mode, video multiplex encoder 370 has used aforementioned zigzag scanning process (referring to Fig. 3) to sort to the conversion coefficient of each blocks of prediction, then each non-zero quantized coefficients is expressed as to a grade and a distance of swimming value.In addition it also used entropy coding and with a kind of be combined the similar mode of the described mode of intra-frame encoding mode above the distance of swimming and grade point compressed.Video multiplex encoder 370 also receives motion vector information via circuit 326 from sports ground coding unit 340, and from control and management device 360 receiving control information.This encoder carries out entropy coding to motion vector information, and forms an independent coded image information bit stream 335, has comprised motion vector, predicated error and control information through entropy coding in described bit stream.
What through the DCT coefficient quantizing, represent is the prediction error information of each piece in macro block, and these coefficients are to be also delivered to inverse quantizer 308 from quantizer 306.Here it is carried out inverse quantization and the inverse quantization DCT coefficient finally obtaining is applied to reverse dct transform unit 310, wherein in described unit, it is carried out to dct transform, to produce the prediction error value piece of local decoder.Then, the prediction error value piece through local decoder is input in combiner 312.In interframe encoding mode, will arrange switch 314, so that combiner 312 also receives the predicted pixel values of each piece in the macro block producing about motion compensation units 350.Combiner 312 combines each local solution code block of prediction error value with corresponding predicted pixel values piece, to produce, rebuild image block and deposited in frame memory 320.
Because the macro block of vision signal is to receive and through the Code And Decode step previously described unit 304,306,308,310 and 312 from video source, so the decoded version of intracoded frame is constructed in frame memory 320.After last macro block of vision signal has been carried out to intraframe coding and subsequent decoding, the frame that frame memory 320 comprises a complete decoding, described frame can serve as a prediction reference frame in the process of the frame of video receiving by interframe encode form decode successive.
What describe now is a macro block generation prediction for present frame.Any one frame with interframe encode form coding all needs one for the reference frame of motion compensated prediction.This means in the process that video sequence is encoded, the first frame that no matter will encode is first frame or other frame in sequence, is all necessary to adopt interframe encode form to encode to it.And this then mean when control and management device 36 is switched to interframe encoding mode by video encoder 300, by the coded frame to previous formation, decode, the complete reference frame forming thus can be used in the frame memory 320 of encoder.Conventionally, reference frame forms by intracoded frame or inter-frame encoding frame are carried out to local decoder.
In the process of a macro block generation forecast that is present frame, first step is carried out by motion estimation unit 330.Motion estimation unit 330 receives those brightness that forms coded frame and blocks of chrominance values via circuit 328.Then, it carries out a piece matching operation, so that essence is corresponding to the Yi Ge region of current macro in identification reference frame.In order to carry out described matching operation, the on-the-spot estimation unit that moves visits the reference frame data of preserving in frame memory 320 via circuit 327.More particularly, motion estimation unit 330 is by for example, to representing to be checked that between macro block and candidate's best pixel matching area, other different numerical value of margin of image element (absolute difference sum) calculates execution block to mate, and wherein said best pixel matching area derives from the reference frame of preservation in frame memory 320.In the predetermined search ranges of reference frame, for the skew being likely offset, calculated a difference, and motion estimation unit 330 has been determined minimum calculated difference.Skew between the candidate pixel value piece of the reference frame of the macro block of present frame and generation minimal difference has defined the motion vector about discussed macro block.
Once in motion estimation unit 330 is for macro block has produced motion vector, and it outputs to sports ground coding unit 340 by motion vector.Motion model that comprises one group of basic function and kinematic coefficient of described sports ground coding unit 340 use carries out approximate evaluation to the motion vector receiving from motion estimation unit 330.More particularly, sports ground coding unit 340 is expressed as one group of kinetic system numerical value by motion vector, wherein when these values and basic function are multiplied each other, has formed an approximation of motion vector.Conventionally, a translational motion model only has two kinematic coefficients and has used basic function here.
Kinematic coefficient is delivered to motion compensated prediction unit 350 from sports ground coding unit 340.Motion compensated prediction unit 350 also receives the best match candidate region of the pixel value of motion estimation unit 330 identifications from frame memory 320.By using the approximate representation of the motion vector that sports ground coding unit 340 produces and from the pixel value in the pixel best match candidate region of reference frame, motion-compensated prediction block 350 produces the array of a predicted pixel values for each piece in macro block.Each predicted pixel values piece is delivered to combiner 316, in described combiner, (input) pixel value of the reality in the piece corresponding to current macro and predicted pixel values is subtracted each other.So just obtained one group of blocks of prediction about macro block.
Now the operation of the Video Decoder 400 shown in Fig. 2 is described.Decoder 400 comprises one from encoder 300 received code bit streams and is demultiplexed into the video multiplex decoder 470 of its part, an inverse quantizer 410, a reverse dct transform device 420, a motion compensated prediction unit 440, a frame memory 450,430, one control and management devices 460 of a combiner and an output 480.
What 460 pairs of control and management devices were decoded is that intracoded frame or inter-frame encoding frame are made response, thereby the operation of decoder 400 is controlled.In frame/and interframe Trig control signal will cause decoder to switch in decoding schema, and wherein for instance, described signal is to derive the image type information that provides of the header portion at each compressed video frame receiving from encoder.In frame/interframe Trig control signal extracts from coded video bit stream by video multiplex decoder 470 and is delivered to control and management device 460 via control line 422.
The decoding of intracoded frame is that the macro block of take is one by one carried out as basis, and wherein in fact each macro block is decoded in coded message associated in identifying receiver, video bit stream 335.Video multiplex decoder 470 is separated those coded messages about the piece in macro block from relate to the possible control information of discussed macro block first.And comprise variable length codeword about the coded message of each piece in inter-coded macroblocks.What these code words represented is grade and the distance of swimming value for the entropy coding of piece non-zero quantization DCT coefficient.A kind of variable length decoding method of video multiplex decoder 410 use is decoded to variable length codeword, restoration grade and distance of swimming value thus, and wherein said method is corresponding with the coding method of using in encoder 300.Then, described decoder is each piece reconstruction quantization transform coefficient array in macro block and is delivered to inverse quantizer 410.In video demodulation multiplexer, use in addition a kind of appropriate variable length decoding method to decode to relating to any control information of macro block, and be delivered to control and management device 460.Especially, the information relevant to the quantification gradation that is applied to conversion coefficient is extracted from coded bit stream by video multiplex decoder 470 and is provided to control and management device 460 via control line 424.Control and management device transfers, via control line 415, this information is delivered to inverse quantizer 420.Inverse quantizer 410 is come for those DCT coefficients that quantized of each piece inverse quantization in macro block according to control information, and the DCT coefficient that has carried out now inverse quantization is offered to reverse dct transform device 420.
Oppositely 420 pairs of the dct transform devices inverse quantization DCT coefficient for each piece of macro block is carried out reverse dct transform, to form one, comprises and rebuilds pixel value and through the image information piece of decoding.Owing to not using motion compensated prediction in the coding/decoding of inter-coded macroblocks, so control and management device 460 carrys out control combination device 430 by the mode of any reference information with a kind of preventing in the decoding of inter-coded macroblocks.About the reconstruction pixel value of each piece in macro block, be delivered to the video output terminals 480 of decoder, wherein for instance, described value can be offered to a display device (not showing).In addition, the reconstruction pixel value about each piece of macro block is also kept in frame memory 450.Because the follow-up macro block to intracoded frame is decoded and preserves, thereby in frame memory 450, converge out gradually a decoded frame, and described frame can be served as to a reference frame thus, to use in the motion compensated prediction that the decoding of the inter-frame encoding frame with follow-up reception is associated.
Inter-frame encoding frame is also to decode in the mode of macro block one by one, and in fact, each inter-coded macroblocks is just decoded recognizing associated coded message from receive bit stream when.Video multiplex decoder 470 is from encoding motion vector information and relate to the possible control information of discussed macro block and isolate the coded prediction control information about each piece of inter-coded macroblocks.As mentioned above, for the coded prediction control information of each piece of macro block, comprise variable length codewords, what its represented is grade and the distance of swimming value for the non-zero quantization transform coefficient entropy coding of described blocks of prediction.A kind of variable length decoding method of video multiplex decoder 470 use is decoded to variable length codeword, restoration grade and distance of swimming value thus, and wherein said method is corresponding with the coding method of using in encoder 300.Then quantization transform coefficient array about each piece in macro block of described decoder reconstructs and be delivered to inverse quantizer 410.In addition, in video multiplex decoder, also used a kind of appropriate variable length decoding method to decode to relating to the control information of inter-coded macroblocks, and described information is delivered to control and management device 460.From coded bit stream, extract with the information that the quantification gradation that is applied to the conversion coefficient of blocks of prediction is associated, and described information is provided to control and management device 460 via control line 424.Control and management device 460 transfers, via control line 415, this information is delivered to inverse quantizer 420.The quantization DCT coefficient that inverse quantizer 420 represents each piece in macro block according to control information to these carries out inverse quantization, and the DCT coefficient of present inverse quantization is offered to inverse quantizer 420.Then in reverse dct transform device 420 to representing that the inverse quantization DCT coefficient of the prediction error information of each piece carries out inverse transformation, to generate the array of a prediction error value re-establishing for each piece in macro block.
The encoding motion vector information that relates to macro block is extracted from coded video bit stream 335 by video multiplex decoder 470 and is to use a kind of appropriate variable length decoding method and decoded.The decoding motion vectors obtaining is thus delivered to motion compensated prediction unit 440 via data wire 426, and wherein said unit has used one to rebuild a motion vector for macro block with the identical motion model of described inter-coded macroblocks motion model used of encoding in encoder 300.The motion vector of the rebuilding motion vector at first definite with the motion estimation unit of encoder 330 is similar.440 of the motion compensated prediction unit of decoder are used the motion vector of rebuilding and identify the position that rebuilds pixel region in the prediction reference frame of preserving at frame memory 450.For example, reference frame can be the intracoded frame of an early decoding, can be also the inter-frame encoding frame of an early decoding.Though but there is which kind of situation, the pixel region of reconstructed motion vector indication is all used to form the prediction of the macro block of discussing.More particularly, motion compensated prediction unit 440 copies corresponding pixel value by the pixel region of identifying from reference frame and forms one about the array of pixel values of each piece in macro block.Described prediction is the pixel value piece of deriving from reference frame, and it is delivered to combiner 430 from motion compensated prediction unit 440, and it combines with the prediction error information through decoding there.In practice, the pixel value of each prediction piece is added in the corresponding reconstructed prediction error value of reverse dct transform device 420 outputs.Can obtain thus the reconstruction array of pixel values about each piece in macro block.The pixel value of rebuilding is delivered to the video output terminals 480 of decoder and is kept in frame memory 450.Owing to decoding and having preserved the macro block of inter-frame encoding frame, therefore in frame memory 450, pool gradually a decoded frame, described decoded frame is used in the motion compensated prediction of other inter-frame encoding frame as a reference frame thus.
h.26L video encoding standard
H.26L, ITU-T suggestion is the newest standards in the video encoding standard family of International Telecommunication Association's exploitation.Especially, the low bit rate that this standard is intended to be conventionally less than 64kb/s carries out Video coding, and therefore described standard is particularly suitable for how bestly using the wireless communication networks of available bandwidth or the digital video that any fixed line communication net transmits to encode to paying the utmost attention to via those.H.26L, the video coding system that ITU-T defines is a hybrid video coding system, and it is to operate according to the rule combining with generic video encoder 300 described in Fig. 1 and 2 and decoder 400 as mentioned above.Especially, what according to the video coding system of H.26L realizing, use is that block-based transition coding is combined with motion compensated prediction, thereby reduces the room and time redundancy in video sequence.
H.26L the latest edition of suggestion is usually said Test Model 8 (TML8), in " H.26L Test Model Long Term Number 8 (TML-8) draft 0 " (ITU-T telecommunication standardization part, seminar 16, Video coding panel of expert) in, it is described, two kinds of alternative entropy coding modes have been stipulated in the suggestion of this version.In the first (default) pattern, used so-called general variable length coding (UVLC) method to encode to all syntactic elements.UVLC coding mode is a kind of look-up table method, wherein in the situation that not considering discussed information type, with same group of variable length codeword, represents all dissimilar information that video encoder produces.And the alternative entropy coding method specify using in so-called " high Complexity classes (profile) " is a kind of with based on contextual adaptive binary arithmetic coding (CABAC) and famous technology.This method is a kind of binary arithmetic coding form that continues to be adapted to coded message statistical property, and in the prior art as a kind of and well-known (being published in " Arithmetic coding for data compression " literary composition of 520th~540 pages of Commun.ACM the 30th volumes in June, 1987 referring to H.Witten, R.M.Neal and J.G.Cleary) in the most effective entropy coding form.
Due to UVLC entropy coding, used same group of variable length codeword and represent all types of information that video encoder generates, therefore the statistical property of described code word does not match best the information characteristics that will encode conventionally.For example, probably different from the appearance situation of value of control information that relates to quantization parameter value for being expressed as the particular run of quantization DCT coefficient of in-frame encoding picture piece and the frequency of occurrences of grade point.In H.26L, introduced CABAC entropy coding method, to overcome the intrinsic suboptimum characteristic of UVLC entropy coding method.That as previously described herein, arithmetic coding represents is a symbol group that will encode with independent variable-length code (VLC) (floating number).Compare with the entropy coding method of each symbol of absolute coding, this method provides distinctive advantage.Specifically, the entropy coding method of each symbol of absolute coding at least needs to represent each symbol with a bit.That represent due to arithmetic coding is the symbol group with single code word, thereby likely realizes the data compression speed that is less than 1 bps.Therefore the CABAC method, providing in H.26L also likely improves data compression.In addition, because described method is a kind of adaptive approach, so it can consider that the statistical nature of coded information changes, even if guarantee that thus variation to a certain degree occurs coded data character, also can keep data compression performance.
based on contextual arithmetic coding
As mentioned above, CABAC arithmetic coding is a kind of entropy coding method, and it can be adapted to the variation statistics of coded information.So, with hypothesis fixedly the entropy coding of statistical property compare, described method can provide the compression efficiency of improvement.Fig. 4 describes is a kind of exemplary based on contextual binary arithmetic coder 700.CABAC is a kind of binary arithmetic coding method, and therefore, first the data symbol with non-binary sequence that encode converts binary value (" binarization ") in binary map unit 710.Described binarization is processed and is comprised the sign map to that will an encode binary sequence (bin), and wherein each binary sequence has a corresponding binary sequence numbering and can give a value 0 or 1.In table 1, provided below an example of this mapping.But also it is contemplated that in principle other binarization scheme of using.
In CABAC method, each binary sequence is assigned to so-called " context " (gaining the name thus based on contextual arithmetic coding).It is the binary sequence that concentrates in together and have similar statistical nature that a context can be considered as.In other words, here suppose concerning being assigned to contextual each binary sequence, its probability that comprises numerical value 1 or 0 is to belong to described contextual other binary sequences similar.So, at arithmetic encoder, produce the probability Estimation of code word be for each context rather than will encode each
Figure 200610088710XA00800011
Table 1
Possible binary sequence definition.Each context defines according to one " context model ", and described context is that statistical nature information based on will coded data symbol (being binary sequence thus) is set up in advance.Conventionally, if the difference between 0 probability of occurrence and 1 probability of occurrence is increased to maximum, can improve the achieved data compression ratio of binary arithmetic coder.Equally, based on contextual arithmetic coding performance, also depend on the selection of context model.Conventionally, this means that the difference that select between those probabilities of occurrence of 0 and 1 that can make to be assigned to each contextual binary sequence reaches maximum context model.
Exemplary described in Fig. 4 based on contextual arithmetic encoder in, once the symbol that will encode in 710 binarizations of binary map unit is assigned to a corresponding context in context assignment unit 720.Then the value that is assigned to corresponding binary sequence (namely 1 or 0) is delivered to arithmetic encoder 730.Subsequently, one of coding engine 750 use of arithmetic encoder 730 has assigned the contextual probability Estimation of binary sequence to encode to the numerical value of binary sequence.The performance of the data compression ratio of here, realizing as arithmetic encoder depends on the precision of probability Estimation.Say in principle, described estimation can be fixing or adaptive.If use fixation probability to estimate, about contextual probability Estimation, will be assigned to predetermined value and remain unchanged in coding is processed.Fixation probability estimates that normally the training data that has a similar statistical nature by the real data to encoding analyzes and obtained in advance.If used adaptive probability estimation, by fixed value, come to estimate for each context initialization probability, and hereto pass through the actual count feature of coded data (binary sequence) and upgrade described probability in whole coding is processed according to those.Carry out adaptive coding and estimate that meeting is better conventionally, because they can adapt to the data that will encode.
Exemplary having used adaptive probability to estimate and comprised that one to the probability Estimation unit 740 calculating through the probability Estimation of upgrading based on contextual arithmetic encoder shown in Fig. 4.Each contextual probability Estimation is by record, to be assigned in each contextual each binary sequence 1 and 0 occurrence number to upgrade.For example, concerning being assigned to the binary sequence of any context k, it has been assigned m sub-value 0 and has assigned n sub-value 1 for it if, so, in context k 1, its probability Estimation is n/ (n (m+1)), and for 0, its probability Estimation is (m+1)/(n (m+1)).
Fig. 5 describes is corresponding with encoder described in conjunction with Figure 4 based on contextual arithmetic decoder 800.At input 810, based on contextual arithmetic decoder, receive an expression through the bit stream of the data symbol of arithmetic coding.At the beginning, according to the decoding symbols of previous reception, in context assignment unit 850, calculate the probability Estimation of a context and renewal binary sequence value.Here, the calculating about probability Estimation of carrying out with probability Estimation unit 830 assigned in the context that context assignment unit 850 is carried out is all to use the method identical with encoder to complete.Then, the bit receiving is fed in the arithmetic coding engine 840 of arithmetic encoder 820, converts thereof into there the binary sequence value of decoding by the current probability Estimation of the context calculating and binary sequence value.In binary sequence-numerical value map unit 860, through the binary sequence of decoding, be mapped to the value of the distance of swimming and grade.
the CABAC method of using in H.26L
To the details of selecting in ITU-T suggestion H.26L for the CABAC arithmetic coding method of high Complexity classes be described in detail now.According to TML 8 H.26L, the Context-dependent of the distance of swimming and grade point is in the binary sequence number of grade or the distance of swimming value of coded block type and binarization.Different block types be according to the scan mode that coefficient value is sorted (single/bis-), component type (brightness/chroma, AC/DC) or coding mode (in interframe/frame) defines.Yet concerning specified type, context only depends on binary sequence number.More particularly, according to TML 8 H.26L, here for grade coding has defined four contexts.First context is for first binary sequence, and second context is for second binary sequence, and the 3rd context represents the residue binary sequence of rank amplitude for those.Residue context is for the symbol of grade.Used in addition similar method that distance of swimming value is assigned to context.Concerning the distance of swimming, there are three contexts, first context is for first binary sequence, and second context is for second binary sequence, and the 3rd context is for all remaining binary sequences.Because distance of swimming value is equal to or greater than zero all the time, therefore for affix below, there is no need to represent symbolic information into it.So,, concerning the piece of a given type, that for the binary sequence (grade and Run-Length Coding) of conversion coefficient, carries out is assigned to binary sequence contextual processing and can summarizes as follows:
If(bin_nr>MAX_BIN_VAL)
bin_nr=MAX_BIN_VAL; (1)
end
context=bin_nr
Wherein bin_nr is binary sequence number, and context is context numbers.According to TML 8 H.26L, the value of MAX_BIN_VAL is set as 3, but also can use in principle different MAX_BIN_VAL to be used as replacing.
The distance of swimming-grade is to being following coding: first according to piece/coefficient type, the distance of swimming and grade are classified, wherein said type comprises: scan pattern, coefficient type (DC/AC) and coding mode (in interframe/frame or in 16 * 16 frames).Then by grade and the distance of swimming are mapped to a binary sequence, it is carried out to binarization, and be assigned to a context according to the numbering of each binary sequence.
Fig. 6 a~6d have been described in detail this processing by reference to 4 * 4 exemplary quantization DCT coefficient arrays.In addition it has also been described for following the trail of the method for the distance of swimming of quantization DCT coefficient and the statistical property of grade point, thereby has proved the self-adaptive features of CABAC method.First the two-dimensional array of the DCT coefficient value through quantizing is carried out to zigzag scanning, to produce the one-dimensional array of a value shown in Fig. 6 a here.Then using the zero coefficient values in one-dimensional array as the distance of swimming and grade point to being represented.As discussed previously, each grade point represents the quantization DCT coefficient value of a non-zero, and the relevant distance of swimming is corresponding to the number of the zero valued coefficients before discussed coefficient.In Fig. 6 b, provided the distance of swimming-grade pair that derives from exemplary quantization DCT coefficient array.Each centering, grade point as a block end symbol, does not have zero coefficient values to indicate in described before distance of swimming value and by null grade point.
Then, each distance of swimming and grade point convert a binary value to.According to H.26LTML 8, for changing, quantize the distance of swimming of dct transform coefficient value and the binarization scheme of grade with above scheme shown in Fig. 1 is identical.Fig. 6 c shows is that binarization scheme that table 1 is provided is applied to the distance of swimming in exemplary array and the result of grade point.In addition, Fig. 6 c has also shown according to H.26L binary sequence being assigned to context.As mentioned above, wherein only used three contexts to describe the size of the distance of swimming and grade point.First context has comprised all remaining binary sequences corresponding to 1, the second context of binary sequence corresponding to 2, the three contexts of binary sequence.In Fig. 6 c, context is described by runic horizontal line.By checking that Fig. 6 c can find out, most of grade points are all mapped to the binary sequence that is assigned to context 3, and most of distance of swimming values are mapped to the binary sequence that is assigned to context 1.
Each just upgrades after the binary sequence of having encoded through the contextual probability Estimation of assigning.The probability Estimation of the distance of swimming and grade is independently updated.As discussed previously, what given contextual probability Estimation represented is the statistical nature that is assigned to discussed contextual binary sequence.More particularly, described probability Estimation is described is to be assigned to the probability that comprises 0 or 1 in contextual binary sequence.Fig. 6 d be take a kind of demonstration mode and has been described the method for upgrading probability Estimation as the distance of swimming and grade.What in this figure, describe is the distance of swimming and the grade at 4 * 4 quantization DCT coefficient pieces shown in those representative graphs of binarization 6a, and be assigned to context, and then the front and back of encoding in arithmetic encoder, in being assigned to the contextual binary sequence of specifying the distance of swimming or grade, comprise 0 or 1 probability.Fig. 6 d has adopted form, has wherein recorded 1 and 0 appearance situation in being assigned to each contextual binary sequence.Therefore, specify contextual probability Estimation to provide as follows for one:
The number of 0 probability=0/(number of 0 number+1)
The number of 1 probability=1/(number of 0 number+1)
In this drawing, suppose that 4 * 4 of the quantization DCT coefficient shown in Fig. 6 a are the pieces of processing the earliest.This means the situation that previously occurs that does not record 1 and 0 in table.In order to overcome this problem, here to suppose before processing described, each context has equal 1 or 0 the probability that comprises.And this hypothesis is to input identical value in the row by the appearance situation at record 0 and 1 to represent.In Fig. 6 d, 1 is used to initialization probability estimates.As selection, also can come to estimate for each context initialization probability by a probability Estimation that derives from training data analysis.Then in binarization, about quantizing the distance of swimming and the grade point of dct transform coefficient and being assigned to 1 and 0 the number each being occurred in contextual binary sequence contextual time, count, upgrade thus probability Estimation.The right-hand column of Fig. 6 d has shown the situation after processing the quantification of 4 * 4 shown in Fig. 6 a DCT piece.
Although compare with UVLC entropy coding method, at ITU-T, advise that the CABAC arithmetic coding method adopting in the high Complexity classes of TML 8 H.26L provides improvement aspect data compression, with regard to code efficiency, described method is not still best.Therefore, an object of the present invention is to provide a kind of can further improve code efficiency based on contextual arithmetic coding method and system.
Summary of the invention
The present invention is based on a kind of like this understanding, that is exactly when using and based on contextual arithmetic coding, specified data symbols being encoded, by using those to the context model of having assigned the context of other data symbols to take in, can aspect code efficiency, be improved.Especially, the CABAC method of using in the high Complexity classes by reference to TML 8 H.26L, the present inventor determines, in the distance of swimming and be associated with between the grade of dct transform coefficient and exist some to contact.In addition inventor has also determined and can construct improved context model by these relations, and wherein said model can make it to operate with the code efficiency through improving when CABAC method is applied to the distance of swimming and grade point.Especially, inventor is definite, and successive value will demonstrate very big similitude.More particularly, inner at the transformation coefficient block of appointment, the grade of coded coefficient has the amplitude that is similar to previous coding coefficient level in fact conventionally.In addition inventor has also determined an inverse relation between grade and distance of swimming value.Especially, larger grade point is more likely before less distance of swimming value.Equally set up conversely, that is to say, less grade point is likely after the larger distance of swimming.Therefore, the present invention proposes to create new context model for the coding of DCT variation coefficient, and wherein said model has been taken these relations between grade and distance of swimming value into account.
In order to carry out in first context model designing based on contextual encoder, concerning being assigned to the binary sequence of coefficient level value of a binarization, its Context-dependent is in the coefficient level of previous coding.In order to carry out in second context model designing based on contextual decoder, concerning being assigned to the binary sequence of coefficient level value of binarization, its Context-dependent is in the coefficient level of early decoding.For in implementing based on contextual decoder or the 3rd context model designing based on contextual arithmetic decoder, concerning being assigned to the binary sequence of coefficient distance of swimming value of binarization, its Context-dependent is in the coefficient level value of early decoding.
Inventor also further determines, between the transform coefficient values being associated with different images piece, has certain similitude.These similitudes can become larger between mutually close image block, and often the strongest between the image block being mutually close to.More particularly, for represent specific image block non-zero transform coefficient value quantity Nc often with approach or be identical in abutting connection with the number of the non-zero transform coefficient value of the image block of discussing.Therefore, the present invention has also introduced such concept, and that is exactly that image block for transition coding provides the indication of a non-zero transform coefficient number and encodes this value is encoded with entropy.In addition, if will be based on contextual arithmetic coding for Nc value be encoded, inventor determines so, beneficially by the context being assigned to at least one other transition coding image block is taken in and the Nc value of piece is assigned to a context.So,, between mutually close image block, the similitude between Nc value can utilize this based on contextual arithmetic coding process.According to ITU-T, advise H.26L TML 8, the number of non-zero transform coefficient in image block is not encoded.As an alternative and as indicated previously, provide a block end (EOB) indication here.EOB indication represents last the distance of swimming-grade corresponding to nonzero coefficient encoding.Inventor determines, compare with the current method that EOB indication is provided used in TML 8 H.26L, here the method proposing will cause the raising in code efficiency, the motivated indication of nonzero coefficient number in a piece is wherein provided in the present invention, and has used based on contextual arithmetic coding it is encoded.
Although the present invention's motivation and basic conception thereof behind provides in encoding and decoding of video, especially just H.26L TML 8 provides, and should be appreciated that, the present invention also goes for other video coding systems and still image coding.Say in principle, the present invention can be applied to any one and use block-based transition coding and the image encoding system based on contextual arithmetic coding.
According to a first aspect of the invention, a kind of method for encoding images is provided, wherein image has been divided into and has a plurality of of a plurality of pixels, each pixel has a pixel value, and described pixel value piece is carried out to a transition coding operation, to produce corresponding transform coefficient values piece.In a given scanning sequency, scan described transform coefficient values piece, to produce one through the coefficient value array of overscanning, and to representing the coefficient value in the array of overscanning, described numeral is to having one first numeral and second numeral by a plurality of numerals.The first numeral and the second numeral are assigned to in a plurality of contexts that the described numeral of expression is right.According to a first aspect of the invention, first right value of numeral be the first numeral based on another digital centering and be assigned to one contextual.
Preferably, based on a digital centering first numeral and the first numeral of another digital centering is assigned to the context that a contextual step is taken first numeral of having assigned other digital centerings into account.
Beneficially, the first numeral of digital centering is a zero coefficient values.Preferably, the first numeral that numeral is right equates with the size of zero coefficient values.
Preferably, the second numeral of digital centering is a plurality of continuous zero coefficient value before zero coefficient values.
Preferably, described context is a context based on contextual arithmetic encoder.
More preferably, described context is the context based on contextual binary arithmetic operation encoder.
Beneficially, the first and second digit mappings are to one group of binary sequence, and wherein each binary sequence has a binary sequence numbering being associated, and each binary sequence can adopt one in the first value or the second value.
Preferably, each first and second numeral is mapped in described one group of binary sequence, by digit mapping in described one group of binary sequence given one be to indicate by the value of binary sequence is assigned to the first value.
Preferably, the first value is that the 1 and second value is 0.
Preferably, each group binary sequence is all assigned to a context.
Very advantageously, in the situation that to having assigned the context of other digital centering the first numerals to take in, the first numeral based on another digital centering and the first numeral of a digital centering is assigned to a contextual step is by checking that the binary sequence of the binary sequence that first right numerals of described other numerals are shone upon numbers to carry out.
Beneficially, described method also comprises and keeps one for describing the probability Estimation of each contextual statistical property.
Preferably, concerning each context, what described probability Estimation represented is to have the digital statistical likelihood that is assigned to contextual predetermined value.
Preferably, concerning each context, described probability Estimation is to be assigned to the first value in discussed contextual binary sequence and the appearance situation of the second value keeps by record.
According to a second aspect of the invention, a kind of method for encoding images is provided, wherein image has been divided into and has a plurality of of a plurality of pixels, each pixel has a pixel value, and described pixel value piece is carried out to a transition coding operation, to produce corresponding transform coefficient values piece.Scan conversion coefficient value piece in a kind of given scanning sequency, to produce one through the coefficient value array of overscanning, and to representing the coefficient value in the array of overscanning, wherein said numeral is to having one first numeral and second numeral by a plurality of numerals.The first numeral and the second numeral are assigned to in a plurality of contexts that the described numeral of expression is right.According to a second aspect of the invention, numeral the second right numeral be based on digital centering first numeral and be assigned to one contextual.
Preferably, based on a digital centering first numeral and the first numeral of another digital centering is assigned to a contextual step to having assigned the context of other digital centering the first numerals to take in.
Beneficially, the first numeral of digital centering is a zero coefficient values.Preferably, the first numeral that numeral is right equates with the size of zero coefficient values.
Preferably, the second numeral of digital centering is a plurality of continuous zero coefficient value before zero coefficient values.
Preferably, described context is a context based on contextual arithmetic encoder.
More preferably, described context is the context based on contextual binary arithmetic operation encoder.
Beneficially, the first and second digit mappings are to one group of binary sequence, and wherein each binary sequence has a binary sequence numbering being associated, and each binary sequence can adopt one in the first value or the second value.
Preferably, each first and second numeral is mapped in described one group of binary sequence, by digit mapping in described one group of binary sequence given one be to indicate by the value of binary sequence is assigned to the first value.
Preferably, the first value is that the 1 and second value is 0.
Preferably, each group binary sequence is all assigned to a context.
Very advantageously, in the situation that to having assigned the context of second numeral that one of them numeral is right to take in, based on digital centering the first numeral, digital centering the second numeral being assigned to a contextual step is by checking that the binary sequence of the binary sequence that the second numeral is shone upon numbers to carry out.
Beneficially, described method also comprises and keeps one for describing the probability Estimation of each contextual statistical property.
Preferably, concerning each context, what described probability Estimation represented is to have the digital statistical likelihood that is assigned to contextual predetermined value.
Preferably, concerning each context, described probability Estimation is to be assigned to the first value in discussed contextual binary sequence and the appearance situation of the second value keeps by record.
Preferably, according to the present invention, the method for the first and second aspects is all applicable to transform coefficient values piece.
According to a third aspect of the present invention, a kind of encoder is provided, comprise the device of a plurality of that there are a plurality of pixels for image is divided into, wherein each pixel has a pixel value, comprise in addition for pixel value piece being carried out to a transition coding operation, to produce the device of a corresponding transform coefficient values piece.Described encoder also comprises for carrying out scan conversion coefficient value piece with a given scanning sequency, to produce the device through the coefficient value array of overscanning, for representing the device of a plurality of numerals to the coefficient value of the array through overscanning of representative, described numeral is to having one first numeral and second numeral, and for first digital and the second numeral being assigned to the device of one of right a plurality of contexts of representative digit.According to a third aspect of the present invention, described encoder comprises for the first right numeral of numeral being assigned to a contextual device according to the first right numeral of another numeral.
According to a fourth aspect of the present invention, a kind of encoder is provided, comprise the device of a plurality of that there are a plurality of pixels for image is divided into, wherein each pixel has a pixel value, comprise in addition pixel value piece is carried out to a transition coding operation, to produce the device of corresponding transform coefficient values piece.Described encoder also comprises for a given scanning sequency scan conversion coefficient value piece, to produce the device through the coefficient value array of overscanning, for representing the device of a plurality of numerals to the coefficient value of the array through overscanning of representative, wherein said numeral is to having one first numeral and second numeral, and for first digital and the second numeral being assigned to the device of one of right a plurality of contexts of representative digit.According to a fourth aspect of the present invention, described encoder comprises for the second right numeral of numeral being assigned to a contextual device according to the first numeral of digital centering.
According to a fifth aspect of the present invention, a kind of method for encoding images is provided, wherein image has been divided into and has a plurality of of a plurality of pixels, each pixel has a pixel value, and pixel value piece is carried out to a transition coding operation, to produce corresponding transform coefficient values piece.According to a fifth aspect of the present invention, the numeral that provides to represent zero coefficient values number in transform coefficient values piece is provided described method, and this numeral is assigned to a context that represents described numeral.
Very advantageously, the numeral that represents non-zero transform coefficient value number in transform coefficient values piece is assigned to a contextual step to having assigned another digital context to take in, wherein said another numeral be the zero coefficient values number in another transformation coefficient block.
Very advantageously, transformed value piece scans in given scanning sequency, produced thus a coefficient value array through overscanning, and described in the array of overscanning, coefficient value is by a plurality of numerals to representing, wherein said numeral is to having one first numeral and second numeral.
Beneficially, the first numeral of digital centering is a zero coefficient values.
Preferably, the first numeral that numeral is right equates with the size of zero coefficient values.
More preferably, right the first numeral of numeral and zero coefficient values subtract 1 size and equate.
Preferably, the second numeral of digital centering is a plurality of continuous zero coefficient value before zero coefficient values.
The block end indication of last zero coefficient values of an indication in the coefficient value array through overscanning preferably, is not here provided.
Preferably, according to the present invention the method for first, second and Wu aspect each be applicable to transform coefficient values piece.
According to a sixth aspect of the invention, a kind of encoder is provided, comprising for image being divided into the device of a plurality of with a plurality of pixels, wherein each pixel has a pixel value, comprise in addition for pixel value piece being carried out to a transition coding operation, to produce the device of corresponding transform coefficient values piece.The digital device that provides one to be used to indicate zero coefficient values number in transform coefficient values piece is provided described encoder, and for described numeral being assigned to a contextual device that represents described numeral.
Very advantageously, described encoder also comprises in the situation that assign the digital device of described indication transform coefficient values piece non-zero transform coefficient value number to having assigned another digital context to take in, wherein said another numeral indication be the number of non-zero transform coefficient in another transformation coefficient block.
According to a seventh aspect of the present invention, a kind of computer program is provided, comprising for image being divided into the code of a plurality of with a plurality of pixel values, wherein each pixel value has a pixel value, comprise in addition for pixel value piece being carried out to a transition coding operation, to produce the code of corresponding transform coefficient values piece.Described computer program also comprises for given scanning sequency scan conversion coefficient value piece, to produce the code through the coefficient value array of overscanning, for represent the code through the coefficient value of the array of overscanning by a plurality of numerals, wherein said numeral is to having one first numeral and second numeral, and for first digital and the second numeral being assigned to the code of one of right a plurality of contexts of representative digit.According to a seventh aspect of the present invention, described computer program also comprises for first right numeral of one of them numeral being assigned to a contextual code according to the first numeral of another digital centering.
Beneficially, the first numeral of digital centering is a zero coefficient values.
Preferably, the first numeral that numeral is right equates with the size of zero coefficient values.
Preferably, the second numeral of digital centering is a plurality of continuous zero coefficient value before zero coefficient values.
According to an eighth aspect of the present invention, a kind of computer program is provided, comprising for image being divided into the code of a plurality of with a plurality of pixel values, wherein each pixel value has a pixel value, comprise in addition for pixel value piece being carried out to a transition coding operation, to produce the code of corresponding transform coefficient values piece.Described computer program also comprises for carry out scan conversion coefficient value piece with given scanning sequency, to produce the code through the coefficient value array of overscanning, for represent the code through the coefficient value of the array of overscanning by a plurality of numerals, wherein said numeral is to having one first numeral and second numeral, and for the first numeral and the second numeral being assigned to the code of one of right a plurality of contexts of the described numeral of expression.According to an eighth aspect of the present invention, described computer program also comprises for the second right numeral of described numeral being assigned to a contextual code according to digital centering the first numeral.
Beneficially, zero coefficient values of the first numeral of digital centering.
Preferably, the first numeral that numeral is right equates with the size of zero coefficient values.
Preferably, the second numeral of digital centering is zero coefficient values a plurality of continuous zero coefficient value before.
According to a ninth aspect of the present invention, a kind of computer program is provided, comprising for image being divided into the code of a plurality of with a plurality of pixel values, wherein each pixel value has a pixel value, comprise in addition for pixel value piece being carried out to a transition coding operation, to produce the code of corresponding transform coefficient values piece.According to a ninth aspect of the present invention, described computer program also comprises the digital code that represents transform coefficient values piece zero coefficient values number for providing, and comprises in addition for this numeral being assigned to a contextual code that represents described numeral.
Very advantageously, described computer program also comprises in the situation that to having assigned another digital context to take in, the numeral of non-zero transform coefficient value number in indication transform coefficient values piece is assigned to a contextual code, and what wherein said another numeral was indicated is the number of the zero coefficient values in another transformation coefficient block.
According to a tenth aspect of the present invention, provide a kind of computer program according to the present invention the 7th, the 8th and Jiu aspect.
According to an eleventh aspect of the present invention, provide a kind of based on contextual arithmetic coding method, wherein data symbol array represents by a code word.Data symbol in described array is that the numeral that has comprised one first numeral and second numeral is right.The first numeral of described digital centering is assigned to a context of selecting from represent a plurality of contexts of the first numeral, and the second numeral of digital centering is assigned to a context of selecting from represent a plurality of contexts of the second numeral.According to an eleventh aspect of the present invention, the first right numeral of numeral is to be assigned to contextual based on the first right numeral of another numeral of digital centering.
According to a twelfth aspect of the present invention, provide a kind of based on contextual arithmetic decoding method, wherein data symbol array is to decode from the code word of an expression array.Data symbol in described array is that the numeral that has comprised one first numeral and second numeral is right.The first numeral that described numeral is right is assigned to a context of selecting from represent a plurality of contexts of the first numeral, and the second right numeral of numeral is assigned to a context of selecting from represent a plurality of contexts of the second numeral.According to a twelfth aspect of the present invention, the first right numeral of numeral is right the first numeral of another numeral based on digital centering and be assigned to contextual.
According to Shi Sange of the present invention aspect, provide a kind of based on contextual arithmetic coding method, wherein data symbol array represents by a code word.Data symbol in described array is to comprise that the numeral of one first numeral and second numeral is right.The first numeral that described numeral is right is assigned to a context of selecting from represent a plurality of contexts of the first numeral, and the second numeral that described numeral is right is assigned to a context of selecting from represent a plurality of contexts of the second numeral.According to Shi Sange of the present invention aspect, numeral the second right numeral be based on digital centering first numeral and be assigned to one contextual.
According to Shi Sige of the present invention aspect, provide a kind of based on contextual arithmetic decoding method, wherein data symbol array is to decode from the code word of an expression array.Data symbol in described array is to comprise that the numeral of one first numeral and second numeral is right.The first numeral that described numeral is right is assigned to a context of selecting from represent a plurality of contexts of the first numeral, and the second numeral that described numeral is right is assigned to a context of selecting from represent a plurality of contexts of the second numeral.According to Shi Sige of the present invention aspect, numeral the second right numeral be the first digit based on digital centering and be assigned to one contextual.
According to Shi Wuge of the present invention aspect, provide a kind of based on contextual arithmetic coding method, wherein data symbol array represents by a code word, provides in addition and has represented the numeral of non-zero number of symbols in array and be assigned to a context that represents described numeral.
According to Shi Liuge of the present invention aspect, provide a kind of based on contextual arithmetic encoder, comprising for represent the device of a data character array by code word.Data symbol in described array is to comprise that the numeral of the first numeral and the second numeral is right, described encoder also comprises for the first right numeral of numeral being assigned to a contextual device from representing that a plurality of contexts of the first numeral are selected, and the second right numeral of numeral is assigned to a contextual device of selecting from represent a plurality of contexts of the second numeral.According to Shi Liuge of the present invention aspect, described encoder comprise according to numeral of described digital centering right first numeral and by another numeral first right numeral be assigned to a contextual device.
According to Shi Qige of the present invention aspect, provide a kind of based on contextual arithmetic decoder, comprising the code word for from expression data symbol array, decode the device of data symbol array.Data symbol in described array is to comprise that the numeral of the first numeral and the second numeral is right, described decoder also comprises: for the first right numeral of numeral is assigned to a contextual device from representing that a plurality of contexts of the first numeral are selected, and the second right numeral of numeral is assigned to a contextual device of selecting from represent a plurality of contexts of the second numeral.According to Shi Qige of the present invention aspect, described decoder comprise according to numeral of described digital centering right first numeral and by another numeral first right numeral be assigned to a contextual device.
According to Shi Bage of the present invention aspect, provide a kind of based on contextual arithmetic encoder, comprising represent the device of a data character array by code word.Data symbol in described array is to comprise that the numeral of the first numeral and the second numeral is right, described encoder also comprises for the first right numeral of numeral is assigned to a contextual device from representing that a plurality of contexts of the first numeral are selected, and the second right numeral of numeral is assigned to a contextual device of selecting from represent a plurality of contexts of the second numeral.According to Shi Bage of the present invention aspect, described encoder comprises for the second right numeral of numeral being assigned to a contextual device according to digital centering the first numeral.
According to nineteen of the present invention aspect, provide a kind of based on contextual arithmetic decoder, comprising the code word for from expression data symbol array, decode the device of described array.Data symbol in described array is to comprise that the numeral of the first numeral and the second numeral is right, described decoder also comprises for the first right numeral of numeral is assigned to a contextual device from representing that a plurality of contexts of the first numeral are selected, and the second right numeral of numeral is assigned to a contextual device of selecting from represent a plurality of contexts of the second numeral.According to nineteen of the present invention aspect, described decoder comprises for the second right numeral of numeral being assigned to a contextual device according to digital centering the first numeral.
According to Er Shige of the present invention aspect, provide a kind of based on contextual encoder, comprising represent the device of a data character array by a code word, the digital device that provides one to represent non-zero number of symbols in array is provided in addition, and described numeral is assigned to a contextual device that represents described numeral.
By reading this specification in conjunction with Fig. 7 a to 12, it is clear that the present invention will become.
Accompanying drawing explanation
Fig. 1 be one to the block diagram that has used the exemplary video encoder structure of block-based transition coding and motion compensated prediction to be described.
Fig. 2 is the block diagram of the exemplary Video Decoder corresponding with Fig. 1 encoder.
Fig. 3 is a diagram that shows exemplary zigzag scanning.
Fig. 4 is the block diagram that shows the encoder based on contextual arithmetic coding scheme in prior art.
Fig. 5 is the block diagram that shows the decoder based on contextual arithmetic coding scheme in prior art.
Fig. 6 a is the diagram that shows the exemplary two-dimensional array of the quantization DCT coefficient value scanning in zigzag mode.
Fig. 6 b is one and shows the grade of those derivation of arrays by Fig. 6 a and the form of distance of swimming value.
Fig. 6 c is that the binarization scheme of display list 1 is applied to the grade of binarization and the form of distance of swimming value that the grade of Fig. 6 b and the value of the distance of swimming cause.
Fig. 6 d is one and has shown in order to upgrade the form of the method for probability Estimation from the distance of swimming and grade.
Fig. 7 a is one and has shown the form that according to grade point, context is assigned to the method for binary sequence.
Fig. 7 b is one and has shown the form that according to first embodiment of the invention, context is assigned to the method for grade point.
Fig. 8 a is one and has shown the form that based on distance of swimming value, context is assigned to the method for binary sequence.
Fig. 8 b is one and has shown the form that according to second embodiment of the invention, context is assigned to the method for distance of swimming value.
Fig. 9 is a block diagram of having described according to the encoder based on contextual arithmetic coding scheme of the present invention.
Figure 10 be one according to the block diagram of decoder of the present invention.
Figure 11 is one and has described the flow chart of method for encoding images according to the preferred embodiment of the invention.
Figure 12 is one and has described the flow chart of method for encoding images in accordance with another embodiment of the present invention.
Embodiment
To discuss in detail embodiments of the invention now.As mentioned above, the invention provides multiple related mechanism, by this mechanism, can be improved the code efficiency based on contextual arithmetic encoder (data compression).This improvement is by context model of having assigned the context of other data symbols to take in being realized with those.
At the 1.1st joint below, describe the first embodiment of the present invention in detail, this embodiment relates to a kind of based on contextual binary arithmetic coder, and described encoder is suitable for H.26L in the image encoding system of definition, using in the suggestion of ITU-T for example.In this embodiment, to carry out the grade point that the distance of swimming-grade coding produces be in the situation that considered that belonging to another transform coefficient levels of same is assigned to contextual to the quantization encoding coefficient by the transition coding piece to image pixel.
At the 1.2nd joint, describe the second embodiment of the present invention in detail, this embodiment also relate to a kind of for image encoding system based on contextual binary arithmetic coder, wherein said system can be the image encoding system of definition in for example ITU-T suggestion H.26L.In a second embodiment, to carry out the distance of swimming value that the distance of swimming-grade coding produces be in the situation that considered that the right grade point of the distance of swimming-grade under distance of swimming value is assigned to contextual to the dct transform coefficient of the quantification by the transition coding piece to image pixel.
At the 1.3rd joint third embodiment of the invention described, this embodiment relate to equally a kind of for image encoding system based on contextual arithmetic encoder, wherein said system can be the image encoding system of definition in for example I TU-T suggestion H.26L.According to the 3rd embodiment, the number N c of the non-zero transform coefficient of transition coding image block determined, and considering in the contextual situation being assigned to for the Nc value of at least one other transition coding image block, is assigned to a context.
The preferred embodiments of the present invention have combined the function of above-mentioned these three embodiment.
As described earlier in this article, ITU-T advise the high Complexity classes of TML 8 H.26L used a kind of with CABAC famous based on contextual arithmetic coding form.H.26L in the video encoder of implementing a basis, the various dissimilar information that CABAC method is used to being produced by encoder is encoded, the conversion coefficient (intra-frame encoding mode) producing comprising image pixel transition coding piece or predicated error (interframe encoding mode).Thereby scan and produce one-dimensional array according to a kind of specific scan pattern by block of image pixels being carried out to the two-dimensional array of the conversion coefficient of transition coding generation.These two kinds of scan patterns define in H.26L.The first pattern is called " single sweep pattern ", and another kind of pattern is called " two scan pattern ".No matter use any scan pattern, scan conversion coefficient all can convert the two-dimensional array of coefficient value to one and carry out in a predefined manner the one-dimensional array that coefficient is sorted.In described one-dimensional array, orderly transform coefficient values is converted into the distance of swimming and grade point.In the one-dimensional array through sequence, last entry be one according to the block end symbol of TML 8 H.26L, this entry is taked is a form with the zero grade point equating.Show thus: in oldered array, last zero coefficient values has converted a distance of swimming-grade pair to.
The distance of swimming and grade point are to be converted into binary digital (binarization) by being mapped to a series of binary sequences, wherein can for each binary digit can value of being endowed 0 or 1 (referring to table 1).Then, the distance of swimming and the grade point of process binarization are assigned to context, and namely one is the independent set of context of the distance of swimming and tier definition.According to H.26LTML 8, concerning a given block type, for the set of context of tier definition only depends on the numbering of the binary sequence of having assigned grade.More particularly, according to TML 8 H.26L, be that grade coding has defined four contexts.First context is for first binary sequence, and second context is for second binary sequence, and the 3rd context is used for the binary sequence of remaining expression rank amplitude.Residue context is for the symbol of grade.With regard to the distance of swimming, there are three contexts, wherein first context is for first binary sequence, and second context is for the second binary sequence, and the 3rd context is for remaining all binary sequences.Because distance of swimming value is always equal to or greater than zero, therefore do not need below to represent symbolic information with an affix.
1.1 context models for grade
According to the first embodiment of the present invention, when the grade point of a binarization is assigned to a context, except the binary sequence that consideration grade self is mapped to, also to consider the grade point of the previous distance of swimming-grade centering.Aspect this, term " previously the distance of swimming-grade to " means that the previous coefficient in the one-dimensional array of the described distance of swimming-grade pair and orderly coefficient value is corresponding.Following false code has provided one for context being assigned to the example procedure of the grade point that the distance of swimming-grade is right, has wherein considered binary sequence that grade itself is mapped to and the previous grade point of the distance of swimming-grade centering:
If(bin_nr>MAX_BIN_LEVEL);
bin_nr=MAX_BIN_LEVEL;
end
if(prev_level>MAX_LEVEL) (2)
prev_level=MAX_LEVEL;
end
context=(bin_nr-1)*MAX_LEVEL+prev_level
In expression formula (2), prev_level is the size of the grade point that the previous distance of swimming-grade is right.At the beginning of each piece, prev_level can be initialized to zero.In two scan patterns, at each scanning beginning initialization prev_level, every twice.Parameter MAX_BIN_LEVEL provides a kind of and has numbered and affect the means that the mode of context appointment is controlled for the binary sequence on being mapped to by grade point.More particularly, with a kind of to according to the current context that H.26L TML 8 carries out, assign similar mode, MAX_BIN_LEVEL has effectively defined the context that the binary sequence numbering of all MAX_BIN_LEVEL of being more than or equal to is assigned to.In a kind of similar mode, the means that the mode that parameter MAX_LEVEL provides a kind of grade point on the previous distance of swimming-grade centering to affect context appointment is controlled.Fig. 7 a and Fig. 7 b have described according to first embodiment of the invention and also by the false code of application expression formula (2), context have been assigned to the method for grade point, wherein MAX_BIN_LEVEL=3 and MAX_LEVEL=5.Can define with any combination of MAX_BIN_LEVEL and MAX_LEVEL in principle one group of context that is suitable for the grade point statistical nature that will encode.
1.2 context models for the distance of swimming
According to a second embodiment of the present invention, used method a kind of and that the described method of the 1.1st joint is similar that distance of swimming value is assigned to context here.More particularly, the distance of swimming value of a binarization is being assigned to one contextual time, except considering binary sequence that the distance of swimming itself is mapped to, also will taking in the right grade of the distance of swimming-grade of distance of swimming value ownership.False code hereinafter provided one for context being assigned to the example procedure of the distance of swimming value of the distance of swimming-grade centering, taken the right grade point of the distance of swimming-grade that binary sequence that the distance of swimming itself is mapped to and described distance of swimming value belong in this process into account:
If(bin_nr>MAX_BIN_RUN);
bin_nr=MAX_BIN_RUN;
end
if(level>MAX_RUNL) (3)
level=MAX_RUNL;
end
context=(bin_nr-1)*MAX_RUNL+level
In expression formula (3), level is the size of the grade point of the distance of swimming-grade centering.The means that the mode that parameter MAX_BIN_RUN provides a binary sequence numbering that distance of swimming value is mapped to affect context appointment is controlled.More particularly, with a kind of with according to 8 current contexts that carry out H.26LTML, assign similar mode, MAX_BIN_RUN has effectively defined a context of having assigned all binary sequences numberings that are more than or equal to MAX_BIN_RUN.In a kind of similar mode, the means that the mode that parameter MAX_RUNL provides a kind of grade point on the distance of swimming-grade centering to affect context appointment is controlled.Fig. 8 a and Fig. 8 b have described according to second embodiment of the invention and also by the false code of application expression formula (3), context have been assigned to the method for grade point, wherein MAX_BIN_RUN=3 and MAX_RUNL=4.Can define with any combination of MAX_BIN_RUN and MAX_RUNL in principle one group of context that is suitable for the distance of swimming Data-Statistics feature that will encode.
1.3 contexts for nonzero coefficient number
Especially, the third embodiment of the present invention refers more particularly to the method that the oldered array of transform coefficient values is converted to the distance of swimming and grade point, and signals those distance of swimming-grade logarithm object methods corresponding with the array that quantizes variation coefficient value.More particularly, to a block of image pixels or prediction error value carries out transition coding, thereby after forming the two-dimensional array of a transform coefficient values and each coefficient value being quantized, the non-zero quantized coefficients value number in array will be determined.Value that is called Nc will be assigned to described numeral and be used to signal clearly the number of zero coefficient values in array.Therefore,, according to this embodiment of the present invention, no longer need one here such as the EOB symbol such with zero grade point equating.
Through the conversion coefficient quantizing, further according to predetermined scanning sequency, be scanned, to produce an orderly one-dimensional array.Alternatively, also can after being sorted, quantization parameter value determine again Nc.Then, each non-zero quantized coefficients in oldered array converts the distance of swimming-grade pair to.According to this embodiment of the invention, what the grade point that the distance of swimming-grade is right represented is through the coefficient of quantification, to subtract the size of 1 value obtaining, and distance of swimming value is corresponding with the number of discussed coefficient continuous null value quantization parameter before.Because the grade point that no longer will equate with zero is as block end designator, therefore for described grade point has been given the size that quantization parameter subtracts 1 resulting value.For example can save thus, for representing the needed data volume of class information (bit number).
Then, the same with Nc value, used entropy to encode In Grade and distance of swimming value to encode here.Used such as in the situation that the CABAC technology H.26L realizing in TML 8 based on contextual arithmetic coding method, as mentioned above, can to the distance of swimming and grade point, encode according to the of the present invention first and/or second embodiment.Alternatively, also can be by any other suitable context model for the distance of swimming and grade point.Can define an independent context model for Nc in addition.According to this embodiment of the invention, first the Nc value that represents given middle non-zero quantization transform coefficient number is mapped to a series of binary sequence to it is carried out to binarization, wherein each binary sequence has a corresponding binary sequence numbering.Then the binary sequence being mapped to based on Nc is numbered and has been assigned at least one other image block of a Nc value or the Nc of macro block to be identified for the context of described Nc.Following false code has provided for a context being assigned to the example procedure of a Nc value, has considered binary sequence that Nc itself is mapped to and previous Nc value in this process:
If(bin_nr>MAX_BIN_Nc);
bin_nr=MAX_BIN_Nc;
end
if(prev_nc>MAX_Nc) (4)
prev_nc=MAX_Nc;
end
context=(bin_nr-1)*MAX_nc+prev_nc
In expression formula (4), prev_nc is previous Nc value.
When the grade of given quantification transformation coefficient block through coding and distance of swimming value being sent to a decoder from encoder, through the transmission before the distance of swimming and grade point are encoded of the Nc value of entropy coding.On decoder, described Nc value is decoded, following thereafter the distance of swimming-grade pair corresponding with the quantization transform coefficient value of discussed piece.When In Grade value is decoded, in order to compensate the corresponding subtraction of doing in encoder, numerical value+1 will be added in each grade size.
In order to show, use method for encoding images and improvement in code efficiency, according to the present invention, mean bit rate difference is to calculate by using about QP=28,24,20,16 result.Table 2 has shown that the bit rate of the percentage form of comparing with TML 8 reduces, wherein MAX_LEVEL=5 and MAX_RUN=4.All frames are all encoded as I frame in CABAC pattern.As shown in table 2, the minimizing scope of bit rate is from 0.95 to 4.74%.When QP value is very little, described improvement will be more remarkable.
In table 2, appear at the title of form the first row at Gisle Bjontegaard " Recommended Simulation Conditions for H.26L " (VCG-M75, ITU-T Video Coding Experts Group, Austin, Texas, USA, 2-4April, 2001) the middle picture using.
Figure 200610088710XA00800021
Table 2
With reference now to Fig. 9,, according to the present invention, the encoder 10 of transmitting terminal comprises that one for preserving the unit 16 of previous grade and the distance of swimming.As shown in Figure 9, for the distance of swimming-grade of given, to 102, be provided to map unit 12, described map unit 12 is by described to being mapped to a series of binary sequence, and each binary sequence has value 0 or 1.In representing the sequence that the distance of swimming-grade is right, the position of binary sequence is called binary sequence numbering.Binary sequence numbering is represented by signal 104.The grade point 108 of the previous coding providing based on signal 104He unit 16, assignment unit 14 is assigned to a binary sequence numbering by a context.The context that signal 106 represents is provided to an adaptive arithmetic code device 20.1 probability of occurrence and 0 probability of occurrence are estimated by a probability Estimation unit 22.Based on described probability Estimation 120,24 pairs of binary sequences of arithmetic coding unit are encoded.124 of feedback signals are provided to probability Estimation module 22 from encoder 24, thereby upgrade probability Estimation.Information through coding is transformed into a bit stream 122.To be delivered to a decoder or be kept in a memory device for using after a while.
Preferably, encoder 10 also comprise an energy by the distance of swimming-grade to before offering arithmetic encoder 20, nonzero coefficient number N c in piece being offered to arithmetic encoder 20 unit 18, therefore also Nc encoded and be included in bit stream 122.Described Nc is represented by signal 110.In the situation that using Nc, there is no need to send a block end (EOB) symbol to decoder.In the prior art, the grade point that size is 0 will be used to EOB symbol.More particularly, Nc is just found and be to encode it is encoded with entropy after transform and quantization.It is pointed out that in the situation that nonzero coefficient number is known, no longer include necessary use 0 grade point and signal block end.Therefore,, by quantization parameter value is subtracted to 1, can In Grade value modify.
As shown in figure 10, the bit stream 122 that comes received code device 10 to provide at receiving terminal with decoder 50.What the bit stream receiving represented is the data symbol through arithmetic coding, and it is represented by reference number 202.At the beginning, according to the symbol of early decoding, in context assignment unit 66, calculate a context, and in probability Estimation unit 62, upgrade the probability Estimation of binary sequence value.The early decoding symbol that upgrades probability Estimation institute foundation is shown by reference number 205.That in the probability Estimation calculating that the context of carrying out in context assignment blocks 66 is assigned and probability Estimation piece 62 is carried out and encoder 10, carries out is similar.Then, the bit 202 receiving is fed to the arithmetic decoding engine 64 of arithmetic encoder 60, converts thereof into the binary sequence value 206 through decoding there by the current probability Estimation of the context calculating and binary sequence value 204.In piece 68, through the binary sequence 208 of decoding, be mapped to the distance of swimming and grade point.If in encoder 10 to piece in nonzero coefficient number N c encode and the bit stream 202 that receiving in described number is provided, signal 214 is offered to binary sequence-numerical value mapping block 68, thus by grade point being added to 1 coefficient recovering through quantizing.
Figure 11 describes the flow chart of method for encoding images according to the preferred embodiment of the invention.As shown in the figure, method 500 starts from the step 510 that encoder receives an image.In step 520, the image receiving is divided into a plurality of.In step 530, each piece is scanned, and obtain grade and the distance of swimming of passing through the coefficient quantizing in piece in step 540.Compare with the encoding scheme of prior art, in step 550, the present invention has also used previous grade in contextual appointment process.Especially, as described in the 1.1st joint, the processing that context is assigned to the binary sequence that represents quantization parameter grade point takes in the grade point of previous coding.Equally, as described in 1.2 joints, grade point has also been considered in the processing that context is assigned to the binary sequence that represents quantization parameter distance of swimming value.The context of having assigned is sent to an arithmetic encoder, to encode in step 560.In addition, as described in the 1.3rd joint, the number of Nc or non-zero quantized coefficients is in step 530, scanned among the process of described or just obtained afterwards determining, and in step 560, Nc is encoded before Nc and context are provided to a decoder.
Alternatively, as shown in figure 11, when assigning context and reckon without grade or the distance of swimming of previous coding, in this case, by the signal of indication Nc is delivered to receiving terminal, can improve described method for encoding images.As shown in figure 12, Nc obtains and provides in step 542, rather than in order to assign context in step 550, in step 540, obtains grade and the distance of swimming of previous coding.In order to carry out coding in step 560, Nc sent to arithmetic encoder assign context in step 550 before.By means of sending Nc, here no longer include and necessary EOB symbol is sent to decoder.
Although here it is described for the preferred embodiments of the present invention, but it will be understood to those of skill in the art that, aforementioned and multiple other that without departing from the present invention, can carry out form and details aspect to it change, omit and deviate from.

Claims (9)

1. a method for encoding images, wherein, image is divided into a plurality of pieces with a plurality of pixels, each pixel has a pixel value, and block of pixels is carried out to transition coding operation to produce corresponding transform coefficient values piece, and transform coefficient values piece is quantized into quantization transform coefficient value piece, described method is characterised in that:
Provide indication to quantize the numeral of the number of the zero coefficient values in transform coefficient values piece; And
Described numeral is assigned to a context that represents described numeral.
2. according to the method for claim 1, it is characterized in that: considering in the contextual situation that another such numeral is assigned to, the numeral of the zero coefficient values number in the described quantization transform coefficient value piece of indication is assigned to a context, and wherein said another such numeral is indicated the number of zero coefficient values in another quantization transform coefficient piece.
3. according to the method for claim 1, it is characterized in that:
With a kind of given scanning sequency, scan described quantization transform coefficient value piece, to produce the coefficient value array of a scanning, and
By a plurality of, there are the first numeral and the numerals of the second numeral to the coefficient value in the array that represents to scan, wherein
Described the first numeral indication zero coefficient values; And
The number of the continuous zero coefficient value before the described zero coefficient values of described the second numeral indication.
4. according to the method for claim 3, it is characterized in that: the first numeral subtracts 1 equal and opposite in direction with zero coefficient values.
5. an encoder, comprise for image being divided into a plurality of devices with the piece of a plurality of pixels, wherein each pixel has a pixel value, and comprise for block of pixels being carried out to transition coding operation to produce the device of corresponding transform coefficient values piece, and for transform coefficient values piece being quantized into the device of quantization transform coefficient value piece, it is characterized in that, described encoder comprises:
For providing an indication to quantize the digital device of the zero coefficient values number of transform coefficient values piece; And
For described numeral being assigned to a contextual device that represents described numeral.
6. according to the encoder of claim 5, it is characterized in that: describedly for the numeral of zero coefficient values number for the described quantization transform coefficient value piece of indication being assigned to a contextual device, being arranged to the context that another such numeral is assigned to and taking in, wherein said another such numeral is indicated the zero coefficient values number in another quantization transform coefficient piece.
7. according to the encoder of claim 5 or 6, it is characterized in that:
For quantizing transform coefficient values piece to produce the device of the coefficient value array of a scanning with the scanning of given scanning sequency, and for the device to the coefficient value of the array that represents to scan by a plurality of numerals with the first numeral and the second numeral, wherein
Described the first numeral indication zero coefficient values; And
The number of the continuous zero coefficient value before the described zero coefficient values of described the second numeral indication.
8. based on a contextual arithmetic coding method, wherein data symbol array represents by code word, it is characterized in that:
The numeral of non-zero number of symbols in a described array of indication is provided, and
Described numeral is assigned to a context that represents described numeral.
9. based on a contextual arithmetic encoder, comprise the device that represents data symbol array by code word, it is characterized in that: described encoder comprises
For the digital device of a described array non-zero number of symbols of indication is provided, and
For described numeral being assigned to a contextual device that represents this numeral.
CN200610088710.XA 2001-09-14 2002-09-12 Method and system for context-based adaptive binary arithmetic coding Expired - Lifetime CN1874509B (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US32211201P 2001-09-14 2001-09-14
US60/322112 2001-09-14
US60/322,112 2001-09-14
US09/995,240 2001-11-27
US09/995240 2001-11-27
US09/995,240 US6856701B2 (en) 2001-09-14 2001-11-27 Method and system for context-based adaptive binary arithmetic coding

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNB028226720A Division CN1327395C (en) 2001-09-14 2002-09-12 Method and system for context-based adaptive binary arithmetic coding

Publications (2)

Publication Number Publication Date
CN1874509A CN1874509A (en) 2006-12-06
CN1874509B true CN1874509B (en) 2014-01-15

Family

ID=37425312

Family Applications (2)

Application Number Title Priority Date Filing Date
CN200610088710.XA Expired - Lifetime CN1874509B (en) 2001-09-14 2002-09-12 Method and system for context-based adaptive binary arithmetic coding
CNB2006100887097A Expired - Lifetime CN100454339C (en) 2001-09-14 2002-09-12 Method and system for context-based adaptive binary arithmetic coding

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNB2006100887097A Expired - Lifetime CN100454339C (en) 2001-09-14 2002-09-12 Method and system for context-based adaptive binary arithmetic coding

Country Status (1)

Country Link
CN (2) CN1874509B (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7082450B2 (en) 2001-08-30 2006-07-25 Nokia Corporation Implementation of a transform and of a subsequent quantization
EP2154894A1 (en) * 2008-08-15 2010-02-17 Thomson Licensing Video coding with coding of the locations of significant coefficients in a block of coefficients
US9094691B2 (en) * 2010-03-15 2015-07-28 Mediatek Singapore Pte. Ltd. Methods of utilizing tables adaptively updated for coding/decoding and related processing circuits thereof
CN108777797B (en) * 2010-04-13 2021-01-29 Ge视频压缩有限责任公司 Device, method, storage medium and corresponding coding device for decoding a block of transform coefficients
CN106878725B (en) 2010-10-08 2020-03-17 Ge视频压缩有限责任公司 Encoder and encoding method, and decoder and decoding method
US8571307B2 (en) * 2010-11-16 2013-10-29 Hand Held Products, Inc. Method and system operative to process monochrome image data
CN104094607B (en) * 2011-05-04 2017-04-26 宁波观原网络科技有限公司 Modeling method and system based on context in transform domain of image/video
KR102106534B1 (en) * 2011-06-28 2020-05-04 삼성전자주식회사 Method and apparatus for entropy coding and decoding
US20130083856A1 (en) * 2011-06-29 2013-04-04 Qualcomm Incorporated Contexts for coefficient level coding in video compression
CN103024370B (en) * 2011-09-23 2018-03-23 中兴通讯股份有限公司 A kind of motion vector second-compressed decoding method and device
US9237358B2 (en) * 2011-11-08 2016-01-12 Qualcomm Incorporated Context reduction for context adaptive binary arithmetic coding
CN108769691B (en) * 2011-12-28 2022-05-31 夏普株式会社 Image decoding device, image decoding method, and image encoding device
US10298956B2 (en) 2012-01-03 2019-05-21 Hfi Innovation Inc. Method and apparatus for block-based significance map and significance group flag context selection
MY185457A (en) * 2012-04-15 2021-05-19 Samsung Electronics Co Ltd Parameter update method for entropy coding and decoding of conversion coefficient level, and entropy coding device and entropy decoding device of conversion coefficient level using same
CN107295338B (en) * 2016-04-12 2020-09-04 上海兆芯集成电路有限公司 Image compression and decompression method based on lossless joint image expert group format

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2274224B (en) * 1993-01-07 1997-02-26 Sony Broadcast & Communication Data compression
KR100242635B1 (en) * 1996-01-25 2000-02-01 윤종용 A system for variable-length-coding and variable-length-decoding digital data
CN1268061C (en) * 1996-01-25 2006-08-02 三星电子株式会社 Method and apparatus for varied length coding and decoding
US6351563B1 (en) * 1997-07-09 2002-02-26 Hyundai Electronics Ind. Co., Ltd. Apparatus and method for coding/decoding scalable shape binary image using mode of lower and current layers
KR100303085B1 (en) * 1998-04-24 2001-09-24 전주범 Apparatus and method for encoding binary shape signals in shape coding technique
JP2000295618A (en) * 1999-03-08 2000-10-20 Texas Instr Inc <Ti> Image encoding method using embedding type zero tree pattern and bit plane

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
Gisle Bjontegaard et al.Context-adaptive VLC(CVLC) coding of coefficients.JVT-C028.JVT of ISO/IEC MPEG & ITU-T VCEG,2002,1-3页第1-2节.
Gisle Bjontegaard et al.Context-adaptive VLC(CVLC) coding of coefficients.JVT-C028.JVT of ISO/IEC MPEG &amp *
ITU-T VCEG,2002,1-2. *
ITU-T VCEG,2002,1-3页第1-2节. *
Marta Karczewicz et al.VLC coefficients coding for high bitrates.JVT-B072.JVT of ISO/IEC MPEG & ITU-T VCEG,2002,1-2.
Marta Karczewicz et al.VLC coefficients coding for high bitrates.JVT-B072.JVT of ISO/IEC MPEG &amp *

Also Published As

Publication number Publication date
CN1874509A (en) 2006-12-06
CN1866297A (en) 2006-11-22
CN100454339C (en) 2009-01-21

Similar Documents

Publication Publication Date Title
CN1327395C (en) Method and system for context-based adaptive binary arithmetic coding
CN101267563B (en) Adaptive variable-length coding
CN100521550C (en) Coding method, decoding method, coder and decoder for digital video
CN101222644B (en) Moving image encoding/decoding device and moving image encoding/decoding method
AU2002334271A1 (en) Method and system for context-based adaptive binary arithmetic coding
US8401321B2 (en) Method and apparatus for context adaptive binary arithmetic coding and decoding
US7162091B2 (en) Intra compression of pixel blocks using predicted mean
US7181072B2 (en) Intra compression of pixel blocks using predicted mean
EP2894855B1 (en) Signal decoding method, signal decoding device and signal decoding program
US7957600B2 (en) Methods and systems for rate-distortion optimized quantization of transform blocks in block transform video coding
CN1874509B (en) Method and system for context-based adaptive binary arithmetic coding
AU2014202978B2 (en) Method and system for context-based adaptive binary arithmetic coding
AU2008202981B2 (en) Method and system for context-based adaptive binary arithmetic
EP1933568A2 (en) Method and system for context-based adaptive binary arithmetic coding

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160113

Address after: Espoo, Finland

Patentee after: NOKIA TECHNOLOGIES OY

Address before: Espoo, Finland

Patentee before: NOKIA Corp.

CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20140115