CN100454339C - 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
CN100454339C
CN100454339C CNB2006100887097A CN200610088709A CN100454339C CN 100454339 C CN100454339 C CN 100454339C CN B2006100887097 A CNB2006100887097 A CN B2006100887097A CN 200610088709 A CN200610088709 A CN 200610088709A CN 100454339 C CN100454339 C CN 100454339C
Authority
CN
China
Prior art keywords
numeral
swimming
distance
grade
value
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
CNB2006100887097A
Other languages
Chinese (zh)
Other versions
CN1866297A (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
Application filed by Nokia Oyj filed Critical Nokia Oyj
Publication of CN1866297A publication Critical patent/CN1866297A/en
Application granted granted Critical
Publication of CN100454339C publication Critical patent/CN100454339C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Abstract

A method and system for image coding, wherein an image is divided into a plurality of blocks for scanning. The pixels values in the scanned block are represented by a plurality of level-run value pairs, wherein the level value is indicative of a non-zero pixel value and the run value is indicative of the number of consecutive zero pixel values preceding the non-zero pixel value. A plurality of contexts indicative of the level-run value pairs are conveyed to a decoder for allowing the decoder to reconstruct the image based on the contexts. The assignment of the contexts is also based on the level value of a preceding level-run pair. Additionally, instead of an end-of-block symbol, the number of non-zero coefficients is provided to the decoder prior to conveying the contexts thereto.

Description

Method and system based on contextual adaptive binary arithmetic coding
The application is that application number is dividing an application of 02822672.0 patented claim.
Technical field
Relate generally to rest image of the present invention and video sequence compression relate in particular to a kind of based on contextual adaptive binary arithmetic coding method and system.
Background technology
The digital picture of compressed format has not comprised the array of an image pixel or pel.For example, in a kind of commonly used digital image format celebrated with 1/4th CLV Common Intermediate Formats (QCIF), image or frame have comprised 25,344 pixels in the array that is arranged in one 176 * 144 pixel.Each pixel represented by the bit of some successively, and their transmit is information about pixel lightness (brightness) and/or color (colourity).There are the brightness in the expression digital picture and/or the different schemes of colourity in addition.Normally used then 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.Usually use those other color model in addition, for example RGB (red, green, indigo plant) color model based on the trichromatic component of expression light.Yet, to compare with color model based on primary colors, the color model of representing based on brightness/chroma has more advantage.These advantages stem from the characteristic that the human visual system is easier to experience light variation rather than change color.(U V) has used a spatial resolution that is lower than luminance component (Y), has utilized this specific character thus and the YUV color model is generally chromatic component.So just can under the situation of picture quality that not significantly reduction be discovered, reduce the needed quantity of information of presentation video color information.
Normally realizing of chromatic component by means of double sampling than low spatial resolution.Usually, the piece of one 16 * 16 image pixel is represented by four pieces that comprised 8 * 8 pixels of monochrome information, corresponding chromatic component represented by the piece of one 8 * 8 pixel respectively, the image-region of the piece equivalence of 16 * 16 pixels in one of wherein said expression and the luminance component.Therefore chromatic component is that 2 factor carries out the space double sampling by a size in the x and y direction.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, perhaps abbreviate macro block as.And the QCIF image comprises 11 * 9 macro blocks.If represent luminance block and chrominance block, so, be used to represent that the brightness and the needed total bit number of chrominance information that are associated with each macro block are 6 * (8 * 8 * 8)=3072 bits with 8 (numeral in 0 to 255 this scope just) resolution.Therefore, be used to represent that the needed bit number of QCIF format-pattern is 99 * 3072=304,128 bits.
Will be appreciated that, even using a size as mentioned above is that 2 factor comes two chromatic components of digital picture are carried out under the situation of double sampling, it is used that the not compressed image of median size (for example 174 * 144 pixels) also can need a large amount of bits to come for showing.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 via one than the data communication network of low available bandwidth, so the transmission time will be very long or network might 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, transmitting one with the speed of per second 30 frames has used the YUV color model to represent and has comprised that the Serial No. of a series of QCIF of compression format-patterns need use the above bandwidth of 9Mb/s (million bits per second).Because need very big memory span, transport channel capacities and hardware performance, therefore, when being used to videograph, transmission and demonstration, this high data rate is normally unpractical.If transmit video sequence in real time on ISDN (ISDN (Integrated Service Digital Network)) or this class permanent haulage line of PSTN (public switch telephone network), the data available transmission bandwidth is about 64k/s usually so.In mobile video telephone, have at least part transmission on Radio Communications Link, to carry out, available bandwidth might hang down 20kb/s so.This means and significantly to reduce the quantity of information that is used to represent video data, so that can be at the transmitted over communications networks digital picture or the video sequence of low bandwidth.Yet desirable is that this minimizing should realize under the situation that does not significantly reduce the image/video sequence quality.
Carried out number of research projects in several years in the past, developed multiple different schemes and international standard thus and come digital still and digital video are compressed at reducing expression digital picture and video sequence desired data amount.In existing nearly all rest image and video encoder, employed basic method for compressing image has all comprised block-based transition coding.Usually, transition coding is that the illustrated view data that will comprise pixel value from converts a kind of form that comprises one group of coefficient value to, and wherein each coefficient value all is a weighting factor (multiplier) of the basis function of the conversion of discussing.Can show in addition, at the inner spatial redundancy that has quite big degree of typical digital picture.In fact, this means the inner any pixel value of image actual with other pixel values of its next-door neighbour usually be identical, that is to say, between pixel value, have being correlated with to a great extent.In addition it is further known, image is being carried out some mathematic(al) manipulation, for example two-dimension discrete cosine transform (DCT) time, this spatial redundancies will significantly reduce, and produces a more succinct view data thus and shows.
The block-based transition coding of in the JPEG still image coding, using
For example, in the rest image compression performed according to the reference mode of widely used Joint Photographic Experts Group, the image encoded of at first is divided into the square block array of non-overlapping copies, and wherein for instance, each piece all comprises one 8 * 8 image pixel array.Then, then be that two-dimension discrete cosine transform (DCT) is applied independently in each image block with regard to the JPEG benchmark.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 all is a weighting factor about the two-dimensional dct basis function.Consequent coefficient value is through quantizing, and uses entropy coding then and with a kind of lossless manner it encoded, and shows needed data volume (bit number just) thereby further reduce for it.According to the 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, the data that are used for describing image and coding parameter (for example compression type, quantification and coding schedule, image size or the like) are embedded into the bit stream that entropy coder produces.And owing to Joint Photographic Experts Group comprises four kinds of alternative coding modes and only a small amount of constraint condition assigned in available quantification and coding schedule, thereby be necessary to carry out aforesaid operations, so that can exchange the JPEG compression bit stream between the different platform and have no reconstructed image under the situation of ambiguity.
The such digital video sequences of conventional film that is write down on the similar film comprises a series of rest images (being referred to as " frame " usually), and illusion of movement then is by showing in succession that to be generally the so comparatively faster speed of per second 15 to 30 frames 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 handled 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 on the whole is 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 the scene is then produced by the variation of newscaster's facial expression.Therefore, when forming the compression expression of video sequence, except the method that reduces spatial redundancy, also can use those to reduce the technology of view data time redundancy in the sequence, realize further data compression thus.
Hybrid video coders/demoder
A kind of technology that is celebrated with motion compensated prediction of having used the video coding system of prior art reduces the time redundancy in the video sequence.With regard to this motion compensation technique, in digital video sequences, the picture material of some (usually 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 the object or the zone of using " motion vector " to follow the trail of between the frame that will encode and one or more reference frame in the image.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 the follow-up argumentation of this paper, can obviously find out, motion compensated prediction is applied to all frames of video sequence and uses at least two types coding thus in the video coding system of prior art, do like this and inappropriate (perhaps possibility).
Use motion compensated prediction and compressed video sequence frame is commonly referred to interframe encode or P frame.Only motion compensated prediction then is difficult to provide the video frame images content representation of sufficiently clear, and the frame that therefore is necessary for each intraframe coding usually provides one so-called " predicated error " (PE) frame.As this paper more described in detail after a while, what predication error frame was represented was the decoded version of inter-frame encoding frame and the difference between the coded frame picture material.More particularly, the predication error frame pixel value that comprised the frame that expression will encode and the corresponding difference of rebuilding between the pixel value that forms based on prediction (interframe encode) version of argumentation 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 using block-based transition coding.
Do not use the video sequence frame of motion compensated prediction compression to be called as (in the frame) coding or I frame in the frame.Usually, intracoded frame by block-based transition coding is applied to the coded frame of wanting pixel value produce.Under possible situation, the piece of intracoded frame is to predict the interior previous coding piece from same frame in addition.This technology is usually said inter prediction, and it has further minimizing and represents in the frame-effect of the needed data volume of coded frame.
In order to describe the principle of block-based transition coding and motion compensated prediction in more detail, now will be to Fig. 1 reference in addition, this figure is the synoptic diagram of conventional hybrid video coders, has wherein used the interior combination with interframe encode of frame to produce a compression (coding) video bit stream.In Fig. 2, described corresponding demoder and will be described in the text after a while.
Video encoder 300 comprises that one is used for from the input end 301 of 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 inverse transformation block 310, combiner 312 and 316 and frame memories 320 of carrying out block-based anti-discrete conversion in advance (IDCT).Scrambler also comprises exercise estimator 330, sports ground scrambler (motion field encoder) 340 and motion compensated predictor 350.Switch 302 and 314 are by control manager 360 switching scrambler and operating with cooperative mode between the inter-frame mode of the frame mode of video coding and video coding.Scrambler 300 also comprises video multiplex scrambler 370, it constitutes individual bit stream 335 from the various types of information that scrambler 300 generates, so that further be transferred to long-range receiving terminal, perhaps for instance, it also can be kept at described bit stream in the large-capacity storage media, for example hard disc of computer (not showing).
Scrambler 300 is following runnings.Each uncompressed video frames that video source offers input end 301 all is to receive and handle in the mode of macro block one by one, wherein preferably comes it is handled with raster scan order.When beginning the video sequence of encoding new, first frame in the described sequence is encoded as an intracoded frame.Next, unless satisfy one of following condition, otherwise will come by scrambler is programmed: judge that 1) reference frame that uses in the present frame that just is being encoded and the prediction is very different, and produced too much prediction error information thus with interframe encode form each frame of encoding; 2) recurrence interval of frame stops in the predefined frame; Perhaps 3) receive a feedback from a receiving terminal, this feedback expression be a requirement provides frame with the intraframe coding form request.
Condition 1) appearance is to detect by the output that monitors combiner 316.Combiner 316 forms a difference between the current macro of the frame that just is encoded and its prediction that produces in motion compensated prediction parts 350.If measure (for example absolute difference summation of pixel value) about this difference exceeds a predetermined threshold, combiner 316 will be given notice to control manager 360 via control line 319 so, and control manager 360 will be come operating switch 302 and 314 via control line 313, so that scrambler 300 is switched to intra-frame encoding mode.Condition 2) appearance is by means of the timer in the control manager 360 or frame counter and monitor as follows, if timer termination or frame counter reach the frame of predetermined quantity, then control manager 360 is via control line 313 operating switchs 302 and 314, so that scrambler is switched to intra-frame encoding mode.If control manager 360 receives the feedback signal that an expression receiving terminal need refresh intracoded frame via control line 321 from a receiving terminal, then trigger condition 3).For example,, and then can not on receiver, it be decoded, then this situation might occur if the previous frame that sends is subjected to havoc because disturb in its transport process.Under this condition, Rcv decoder sends a requirement and comes request that next frame is encoded with the intraframe coding form, reinitializes described coded sequence thus.
Operation to the scrambler in the intra-frame encoding mode 300 now is described.In intra-frame encoding mode, 360 pairs of switches 302 of control manager are operated, so that import from incoming line 318 receiver, videos.Vision signal then is to receive from input end 301 in the mode of macro block one by one and via incoming line 318.When it was received, the brightness and the blocks of chrominance values that constitute macro block were delivered to dct transform unit 304, and a two-dimension discrete cosine transform is carried out to each piece value in described unit, produced a two dimensional DCT coefficients array for each piece thus.For instance, in afore-mentioned, each macro block all comprises 48 * 8 blocks of luminance values and two blocks of chrominance values of 8 * 8 corresponding pixels with it spatially, and dct transform parts 304 then are the coefficient value array of one 8 * 8 of each piece generation.
DCT coefficient about each piece is delivered to quantizer 306, uses quantization parameter QP that it is quantized in described quantizer 306.Selection about quantization parameter QP is controlled via control line 315 and by control manager 360.Because the numerical precision of the coefficient that process quantizes is lower than the numerical precision of 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 of each image desired data amount in the expression video sequence.Yet, different with the dct transform institute that essence is harmless, can cause the irreversible degradation of picture quality by the information loss that quantizes to introduce.The quantization degree that is applied to the DCT coefficient is high more, and the loss of picture quality is also just big more.
Shown in the circuit 325 of Fig. 1, concerning each piece, it will be delivered to video multiplex scrambler 370 from quantizer 306 through the DCT coefficient that quantizes.Video multiplex scrambler 370 uses a zigzag scanning process to come the conversion coefficient of each piece is sorted.This operation is that the two-dimensional array through quantized transform coefficients is transformed in the one-dimensional array.Typical zigzag scanning as shown in Figure 3 roughly is to come coefficient is sorted with the order that spatial frequency increases progressively.In addition, described operation comes it is sorted according to coefficient value toward contact, so that position coefficient early more likely has bigger absolute value than the coefficient after the position is leaned in the array in the one-dimensional array.This is that lower spatial frequency often has higher amplitude because in image block inside.Therefore, in the process one-dimensional array of quantized transform coefficients, those values at end are generally zero.
The distance of swimming-the grade of dct transform coefficient (run-level) coding
Usually, video multiplex scrambler 370 has used two values of the grade by name (level) and the distance of swimming (run) to represent each nonzero coefficient through quantizing in the one-dimensional array.Grade is the value through the coefficient that quantizes, and the distance of swimming then is institute's coefficient of discussing continuous zero valued coefficients number before.Make that through ordering the value of grade is before relevant distance of swimming value about the distance of swimming of given coefficient and the value of grade.Then be used for representing described with zero grade point that equates and do not have nonzero coefficient.This size is that 0 grade point is called EOB (block end) symbol.
Entropy coding
By using entropy coding, 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 usually.So, by assigning a variable number, can represent the symbol that more likely occurs with having the code word of bit still less, rather than use the bit of fixed qty to represent each symbol.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 use entropy coding to reduce the needed bit number of value of the expression distance of swimming and grade.Can use multiple distinct methods to implement entropy coding here.For example, the entropy coding of the distance of swimming and class parameter can be implemented by means of the look-up table that shines upon between each possibility symbol of the coded data centralization of definition and the corresponding variable-length code (VLC).Normally statistical study is defined this look-up table by the training data is carried out, and wherein said training data comprises same-sign and has similar statistical property to coded symbol.The replacement technology that also has a kind of arithmetic coding by name in addition, it can be used for converting the distance of swimming and grade point to variable length codeword.For example, when a class symbol was carried out arithmetic coding, the distance of swimming and the grade point that are used for the conversion coefficient piece is quantized were to encode as the decimal number of a floating type.
In case having used appropriate method comes the distance of swimming and grade point are carried out entropy coding, then the video multiplex scrambler further combines it with control information, use a kind of variable length decoding method that is suitable for the information type of discussing to carry out entropy coding in addition, thereby formed the independent compression bit stream of coded image information 335.
The local decode version of macro block also forms in scrambler 300.This operation is to finish by the quantization transform coefficient about each piece of quantizer 306 outputs is used a kind of reverse dct transform via inverse quantizer 308 and in inverse transformation block 310.So, the pel array of reconstruction is for each block structure in the described macro block.The view data that finally obtains 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 of combiner 312 execution is equivalent to and transmits those decode image data that do not change.
Carried out in the aforementioned Code And Decode step in the unit 304,306,308,310 and 312 decoded version of structure intracoded frame in frame memory 320 at the macro block that receives present frame and to macro block.After last macro block of present frame has been carried out 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 the interframe encode form, the frame of described complete decoding can be used as a prediction reference frame.
Operation to the scrambler in the interframe encoding mode 300 now is described.In interframe encoding mode, control manager 360 comes to receive its input from circuit 317 by operating switch 302, has wherein comprised the output of combiner 316.Combiner 316 is with macro block mode receiver, video input signal from input end 301.When combiner 316 received the piece of the brightness that constitutes macro block and chromatic value, it can form corresponding prediction error information piece.Described prediction error information is represented is difference between its predicted value that produces in the piece discussed and the motion compensated prediction unit 350.More particularly, comprise the two-dimensional array of described value about the prediction error information of each piece in the macro block, wherein each value representation all is pixel value and be difference between the decoded pixel value that motion compensated prediction obtained of described formation according to following process in coded brightness or the chrominance information piece.Therefore, comprise all that the brightness value of 8 * 8 pixels is determined and two spatially with it under the situation of the blocks of chrominance values of 8 * 8 corresponding pixels at each macro block, also comprise four 8 * 8 luminance prediction error value piece about the prediction error information of macro block, and two spatially corresponding with it 8 * 8 chrominance prediction error value piece.
Prediction error information about each piece in the 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, so that all produce the two-dimensional array of a dct transform coefficient for each piece.Therefore, comprise in the prediction error information about each macro block under the situation of 8 * 8 spatially corresponding with it chrominance prediction error value piece of four 8 * 8 luminance prediction error value piece and two, DCT converting unit 304 is the conversion coefficient value array of one 8 * 8 of each blocks of prediction generation.Conversion coefficient about each blocks of prediction then is passed to quantizer 306, wherein uses a quantization parameter QP and comes it is quantized in the similar mode of a kind of and the described mode of encoder operation in the frame mode of above combining.Equally, control by control line 315 by control manager 360 about the selection of quantization parameter QP.
What the DCT coefficient that process quantizes was represented is the prediction error information of each piece in the macro block, and shown in the circuit among Fig. 1 325, these coefficients are delivered to video multiplexer 370 from quantizer 306.The same with intra-frame encoding mode, video multiplex scrambler 370 has used aforementioned zigzag scanning process (referring to Fig. 3) to come the conversion coefficient of each blocks of prediction is sorted, and then each non-zero quantized coefficients is expressed as a grade and a distance of swimming value then.It has also used entropy coding and has come the distance of swimming and grade point are compressed in a kind of mode similar with above combining the described mode of intra-frame encoding mode in addition.Video multiplex scrambler 370 also receives motion vector information via circuit 326 from sports ground coding unit 340, and from control manager 360 receiving control information.This scrambler 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 the described bit stream.
What the DCT coefficient that process quantizes was represented is the prediction error information of each piece in the macro block, and these coefficients also are to be delivered to inverse quantizer 308 from quantizer 306.The inverse quantization DCT coefficient that it is carried out inverse quantization here and will finally obtain is applied to reverse dct transform unit 310, wherein in described unit it is carried out dct transform, so that produce the prediction error value piece of local decoding.Then, the prediction error value piece through local decoding is input in the combiner 312.In interframe encoding mode, will be provided with, so that combiner 312 also receives the predicted pixel values of each piece in the macro block that produces about motion compensation units 350 switch 314.Combiner 312 combines each local solution code block of prediction error value with corresponding predicted pixel values piece, so that produce the reconstructed image piece and deposit it in frame memory 320.
Because the macro block of vision signal is from the video source reception and through the Code And Decode step the previous described unit 304,306,308,310 and 312, so the decoded version of intracoded frame is constructed in frame memory 320.After last macro block of vision signal has been carried out intraframe coding and subsequent decoding, frame memory 320 comprises the frame of a complete decoding, and described frame can serve as a prediction reference frame in the process with the frame of video of the follow-up reception of interframe encode formats.
What describe now is to predict for a macro block generation of present frame.Any one frame with interframe encode form coding all needs a reference frame that is used for motion compensated prediction.This means that in the process that video sequence is encoded first frame that no matter will encode is first frame or other frame in the sequence, all be necessary to adopt the interframe encode form to come it is encoded.And this then mean that when control manager 36 switches to interframe encoding mode with video encoder 300 decode by the coded frame to previous formation, the complete reference frame of Xing Chenging can use thus in the frame memory 320 of scrambler.Usually, reference frame forms by intracoded frame or inter-frame encoding frame being carried out the part decoding.
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 brightness and the blocks of chrominance values that those constitute coded frame via circuit 328.Then, it carries out a piece matching operation, so that essence is corresponding to a zone of current macro in the 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 the frame memory 320 via circuit 327.More particularly, motion estimation unit 330 is by being checked that to expression other different numerical value of margin of image element (for example absolute difference sum) calculate the execution block coupling between macro block and candidate's best pixel matching area, and wherein said best pixel matching area derives from the reference frame of preserving in the frame memory 320.In the predetermined search ranges of reference frame, at the skew that might be offset and 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 then defined the motion vector about the macro block of being discussed.
In case motion estimation unit 330 is for macro block has produced motion vector, then it outputs to sports ground coding unit 340 with motion vector.Described sports ground coding unit 340 uses a motion model that comprises one group of basis function and kinematic coefficient to come the motion vector that receives from motion estimation unit 330 is carried out approximate evaluation.More particularly, sports ground coding unit 340 is expressed as one group of kinetic system numerical value with motion vector, has wherein then formed an approximate value of motion vector when these values and basis function are multiplied each other.Usually, a translational motion model only has two kinematic coefficients and has used basis 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 zone of the pixel value of motion estimation unit 330 identifications from frame memory 320.Approximate representation by using the motion vector that sports ground coding unit 340 produces and from the pixel value in the pixel best match candidate zone of reference frame, motion-compensated prediction block 350 all produces the array of a predicted pixel values for each piece in the macro block.Each predicted pixel values piece all is delivered to combiner 316, then will subtract each other corresponding to (input) pixel value of the reality in the piece of current macro and predicted pixel values in described combiner.So just obtained one group of blocks of prediction about macro block.
Operation to Video Decoder shown in Figure 2 400 now is described.Demoder 400 comprises that one demultiplexes into the video multiplex demoder 470 of its ingredient from scrambler 300 received code bit streams and with it, an inverse quantizer 410, a reverse dct transform device 420, a motion compensated prediction unit 440, a frame memory 450,430, one control manager 460 of a combiner and an output terminal 480.
What 460 pairs of control manager were decoded is that intracoded frame or inter-frame encoding frame are made response, thereby the operation of demoder 400 is controlled.In the frame/and interframe triggers control signal and will cause demoder to switch in decoding schema, and wherein for instance, described signal is to derive the image type information that provides of the header branch at each compressed video frame that receives from scrambler.In the frame/interframe triggers control signal and extracted from coded video bit stream by video multiplex demoder 470 and be delivered to control manager 460 via control line 422.
The decoding of intracoded frame is to be that carry out on the basis with one by one macro block, and wherein in fact each macro block all is decoded in coded message associated in identifying receiver, video bit stream 335.Video multiplex demoder 470 is at first discussed from relating to and is separated those coded messages about the piece in the macro block the possible control information of macro block.And comprise variable length codeword about the coded message of each piece in the inter-coded macroblocks.What these code words were represented is grade and the distance of swimming value that is used for the entropy coding of piece non-zero quantization DCT coefficient.Video multiplex demoder 410 uses a kind of variable length decoding method to come variable length codeword is decoded, restoration grade and distance of swimming value thus, and wherein said method is corresponding with the coding method of use in the scrambler 300.Then, described demoder is that each piece in the macro block is rebuild quantization transform coefficient array and it is delivered to inverse quantizer 410.In the video demodulation multiplexer, used a kind of appropriate variable length decoding method to come any control information that relates to macro block is decoded in addition, and it has been delivered to control manager 460.Especially, the information relevant with the quantification gradation that is applied to conversion coefficient is extracted from coded bit stream by video multiplex demoder 470 and is provided to control manager 460 via control line 424.Control manager transfers via control line 415 this information to be delivered to inverse quantizer 420.Inverse quantizer 410 comes to be those DCT coefficients that quantized of each piece inverse quantization in the macro block according to control information, and the DCT coefficient that will carry out inverse quantization now offers reverse dct transform device 420.
The inverse quantization DCT coefficient that reverse 420 pairs of dct transform devices are used for each piece of macro block is carried out reverse dct transform, comprises the image information piece of rebuilding pixel value and process decoding so that form one.Owing in the coding/decoding of inter-coded macroblocks, do not use motion compensated prediction, so control manager 460 prevents to use the mode of any reference information to come control combination device 430 with a kind of in the decoding of inter-coded macroblocks.Then be delivered to the video output terminals 480 of demoder about the reconstruction pixel value of each piece in the macro block, wherein for instance, described value can be offered a display device (not showing).In addition, the reconstruction pixel value about each piece of macro block also is kept in the frame memory 450.Owing to the follow-up macro block of intracoded frame being decoded and preserving, thereby in frame memory 450, converge out a decoded frame gradually, and described frame can be served as a reference frame thus, so as with motion compensated prediction that the decoding of the inter-frame encoding frame of follow-up reception is associated in use.
Inter-frame encoding frame also is to decode in the mode of macro block one by one, and in fact, each inter-coded macroblocks all is just decoded recognizing associated coded message from receive bit stream when.Video multiplex demoder 470 is from encoding motion vector information and relate to the coded prediction control information of isolating the possible control information of the macro block of discussing about each piece of inter-coded macroblocks.As mentioned above, the coded prediction control information that is used for each piece of macro block comprises variable length codewords, and what its was represented is grade and the distance of swimming value that is used for the non-zero quantization transform coefficient entropy coding of described blocks of prediction.Video multiplex demoder 470 uses a kind of variable length decoding method to come variable length codeword is decoded, restoration grade and distance of swimming value thus, and wherein said method is corresponding with the coding method of use in the scrambler 300.One of described then decoder reconstructs is delivered to inverse quantizer 410 about the quantization transform coefficient array of each piece in the macro block and with it.In addition, in the video multiplex demoder, also used a kind of appropriate variable length decoding method to come the control information that relates to inter-coded macroblocks is decoded, and described information then is delivered to control manager 460.Then from coded bit stream, extract with the information that the quantification gradation of the conversion coefficient that is applied to blocks of prediction is associated, and described information is provided to control manager 460 via control line 424.Control manager 460 transfers via control line 415 this information to be delivered to inverse quantizer 420.Inverse quantizer 420 comes the quantization DCT coefficient of each piece in these expression macro blocks is carried out inverse quantization according to control information, and the DCT coefficient of present inverse quantization is offered inverse quantizer 420.Then then in reverse dct transform device 420 the inverse quantization DCT coefficient to the prediction error information of representing each piece carry out inverse transformation so that generate the array of a prediction error value that rebulids for each piece in the macro block.
Relate to that the macroblock encoding motion vector information extracts and be to use a kind of appropriate variable length decoding method by video multiplex demoder 470 from coded video bit stream 335 and decoded.The decoding motion vectors that obtains thus is delivered to motion compensated prediction unit 440 via data line 426, and wherein said unit has used a motion model identical with the used motion model of the described inter-coded macroblocks of coding in the scrambler 300 to rebuild a motion vector as macro block.The motion vector of rebuilding is similar to the motion estimation unit of the scrambler 330 initial motion vectors of determining.440 of the motion compensated prediction unit of demoder use the motion vector of rebuilding and discern the position that rebuilds pixel region in the prediction reference frames that frame memory 450 is preserved.For example, reference frame can be the intracoded frame of an early decoding, also can be the inter-frame encoding frame of an early decoding.But though which kind of situation appears, the pixel region of reconstructed motion vector indication all is 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 discerning and forms an array of pixel values about each piece in the macro block from reference frame.Described prediction then 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 of process decoding there.In practice, the pixel value of each prediction piece all is added in the corresponding reconstructed prediction error value of reverse dct transform device 420 outputs.Can obtain reconstruction array of pixel values thus about each piece in the macro block.The pixel value of rebuilding then is delivered to the video output terminals 480 of demoder and is kept in the frame memory 450.Owing to decoding and having preserved the macro block of inter-frame encoding frame, therefore in frame memory 450, pool a decoded frame gradually, described thus decoded frame uses in the motion compensated prediction of other inter-frame encoding frame as a reference frame.
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, this standard is intended to carry out the video coding with common low bit rate less than 64kb/s, and therefore described standard is particularly suitable for how the best uses the wireless communication networks of available bandwidth or the digital video that any fixed line communication net is transmitted 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 that combines with described generic video scrambler 300 of Fig. 1 and 2 and demoder 400 as mentioned above.Especially, what use according to the video coding system of H.26L realizing is that block-based transition coding is combined with motion compensated prediction, thus the room and time redundancy in the minimizing video sequence.
H.26L Jian Yi latest edition 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 expert group) in it is described, two kinds of alternative entropy coding patterns have been stipulated in the suggestion of this version.In first kind of (default) pattern, used so-called general variable length coding (UVLC) method to come all syntactic elements are encoded.The UVLC coding mode is a kind of look-up table method, wherein represents all different kinds of information that video encoder produce with same group of variable length codeword not considering under the situation of the information type of discussing.And the alternative entropy coding method that specify to use in so-called " high complexity class (profile) " is a kind of with based on contextual adaptive binary arithmetic coding (CABAC) and the technology that is celebrated.This method is a kind of binary arithmetic coding form that continues to be adapted to the coded message statistical property, and in the prior art as a kind of and well-known (be published in Commun.ACM 30th with J.G.Cleary in June, 1987 referring to H.Witten, R.M.Neal and roll up " Arithmetic coding for data compression " literary composition of the 520th~540 page) in the most effective entropy coding form.
Because the UVLC entropy coding has used same group of variable length codeword to represent all types of information that video encoder generates, therefore do not match best usually will the information encoded feature for the statistical property of described code word.For example, the appearance situation with the value of the control information that relates to quantization parameter value is different probably for the frequency of occurrences that is used for being expressed as the particular run of quantization DCT coefficient of in-frame encoding picture piece and grade point.In H.26L, introduced the CABAC entropy coding method, so as to overcome the UVLC entropy coding method intrinsic suboptimum characteristic.As previously described herein, arithmetic coding is represented 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 needs to use a bit to represent each symbol at least.Because that arithmetic coding is represented is the symbol group with single code word, thereby might realize the data compression speed less than 1 bps.Therefore, the CABAC method that provides in H.26L also might improve 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 guarantee coded data character thus variation to a certain degree takes place, and also can keep the data compression performance.
Based on contextual arithmetic coding
As mentioned above, the CABAC arithmetic coding is a kind of entropy coding method, and it can be adapted to coded change in information statistics.So, with the 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, the data symbol with nonbinary sequence that encode at first converts binary value (" binarization ") in binary map unit 710.Described binarization is handled and is comprised sign map to a binary sequence (bin) that will will encode, and wherein each binary sequence all has a binary sequence corresponding numbering and can give a value 0 or 1.Below in table 1, provided an example of this mapping.But also it is contemplated that other binarization scheme of use in principle.
In the CABAC method, each binary sequence all 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, suppose here concerning being assigned to contextual each binary sequence that its probability that comprises numerical value 1 or 0 is to belong to described contextual other binary sequences similar.So, be used for the probability estimate that arithmetic encoder produces code word be for each context rather than will encode each
Figure C20061008870900201
Table 1
Possible binary sequence definition.Each context is all according to one " context model " definition, and described context be based on will coded data symbol (being binary sequence thus) statistical nature information set up in advance.Usually, if the difference between the probability of occurrence of 0 probability of occurrence and 1 is increased to maximum, then can improve the data compression ratio that binary arithmetic coder can be realized.Equally, also depend on the selection of context model based on contextual arithmetic coding performance.Usually, this means and select those can make the difference between 0 and 1 the probability of occurrence that is assigned to each contextual binary sequence reach maximum context model.
Fig. 4 described exemplary based on contextual arithmetic encoder in, in case the symbol that will encode in 710 binarizations of binary map unit then is assigned to it corresponding context in context assignment unit 720.The value that then will be assigned to corresponding binary sequence (just 1 or 0) then is delivered to arithmetic encoder 730.Subsequently, coding engine 750 one of the use of arithmetic encoder 730 have assigned the contextual probability estimate of binary sequence to come the numerical value of binary sequence is encoded.Here, the performance of the data compression ratio of realizing as arithmetic encoder depends on the precision of probability estimate.Say that in principle described estimation can be fixing or adaptive.If use fixation probability to estimate, then will be assigned to predetermined value and in encoding process, remain unchanged about contextual probability estimate.Fixation probability is estimated normally by being obtained in advance analyzing to the training data that the real data that will encode has a similar statistical nature.If used the adaptive probability estimation, then use fixed value to come to estimate, and hereto pass through the actual count feature of coded data (binary sequence) and in whole encoding process, upgrade described probability according to those for each context initialization probability.Carry out adaptive coding and estimate that meeting is better usually, because they can adapt to the data that will encode.
Exemplary used the adaptive probability estimation and comprised a probability estimate unit 740 shown in Figure 4 to calculating through the probability estimate of upgrading based on contextual arithmetic encoder.Each contextual probability estimate then is to be assigned in each contextual each binary sequence 1 and 0 occurrence number by record to upgrade.For example, concerning the binary sequence that is assigned to any context k, if assigned m sub-value 0 and assigned n sub-value 1 for it for it, so, in context k 1, its probability estimate is n/ (n (m+1)), for 0, its probability estimate then is (m+1)/(n (m+1)).
What Fig. 5 described is corresponding based on contextual arithmetic decoder 800 with scrambler described in conjunction with Figure 4.At input end 810, receive the bit stream of an expression through the data symbol of arithmetic coding based on contextual arithmetic decoder.At the beginning, according to the decoding symbols of previous reception, in context assignment unit 850, calculate the probability estimate of a context and renewal binary sequence value.Here, the context of context assignment unit 850 execution assigns the calculating of carrying out with probability estimate unit 830 about probability estimate all to be to use the method identical with scrambler to finish.Then, the bit that receives is fed in the arithmetic coding engine 840 of arithmetic encoder 820, uses the current probability estimate of the context calculate and binary sequence value to convert thereof into the binary sequence value of decoding there.In binary sequence-numerical value map unit 860, be mapped to the value of the distance of swimming and grade through the binary sequence of decoding.
The CABAC method of in H.26L, using
To be described in detail the selected details that is used for the CABAC arithmetic coding method of high complexity class in the ITU-T suggestion H.26L now.According to TML 8 H.26L, the context of the distance of swimming and grade point depends on the binary sequence number of the 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/pair), component type (brightness/chroma, AC/DC) or coding mode (in interframe/frame) defines.Yet concerning specified type, context only depends on the binary sequence number.More particularly, according to TML 8 H.26L, four contexts have been defined for the grade coding here.First context is used for first binary sequence, and second context is used for second binary sequence, and the 3rd context is used for the residue binary sequence of those expression rank amplitudes.The residue context then is used for the symbol of grade.Used similar methods that distance of swimming value is assigned to context in addition.Concerning the distance of swimming, there are three contexts, first context is used for first binary sequence, and second context is used for second binary sequence, and the 3rd context then is used for all remaining binary sequences.Because distance of swimming value is equal to or greater than zero all the time, therefore hereinafter, there is no need to be its expression symbolic information to affix.So, concerning the piece of a given type, can followingly summarize at the contextual processing that binary sequence is assigned to that the binary sequence (grade and Run-Length Coding) of conversion coefficient is carried out:
If(bin_nr>MAX_BIN_VAL)
bin_nr=MAX_BIN_VAL; (1)
end
context=bin_nr
Wherein bin_nr is the binary sequence number, and context is a context numbers.According to TML 8 H.26L, the value of MAX_BIN_VAL is set at 3, but also can use different MAX_BIN_VAL to be used as replacing in principle.
The distance of swimming-grade is to being following coding: at first come the distance of swimming and grade are classified according to piece/coefficient type, wherein said type comprises: scan pattern, coefficient type (DC/AC) and coding mode (in interframe/frame or in 16 * 16 frames).Come it is carried out binarization by grade and the distance of swimming are mapped to a binary sequence then, and it is assigned to a context according to the numbering of each binary sequence.
Fig. 6 a~6d is by describing in detail this processing with reference to 4 * 4 exemplary quantization DCT coefficient arrays.It has also described the method for the statistical property of the distance of swimming that is used to follow the trail of quantization DCT coefficient and grade point in addition, thereby has proved the self-adaptive features of CABAC method.At first the two-dimensional array that passes through the DCT coefficient value that quantizes is carried out zigzag scanning, so that produce the one-dimensional array of a value shown in Fig. 6 a here.Then with the zero coefficient values in the one-dimensional array as the distance of swimming and grade point to being represented.As discussed previously, each grade point is all represented the quantization DCT coefficient value of a non-zero, and the relevant distance of swimming is then corresponding to the number of argumentation coefficient zero valued coefficients before.It is right to have provided the distance of swimming-grade that derives from exemplary quantization DCT coefficient array in Fig. 6 b.Each centering, grade point is in before the distance of swimming value and with null grade point and is used as a block end symbol, does not have zero coefficient values so that indicate in described.
Then, each distance of swimming and grade point all convert a binary value to.According to H.26LTML 8, the binarization scheme that is used to change the distance of swimming that quantizes the dct transform coefficient value and grade is with above scheme shown in Figure 1 is identical.Fig. 6 c shows is that the binarization scheme that table 1 provides is applied to the distance of swimming in the 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 then 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 the runic horizontal line.By controlling chart 6c as can be seen, most of grade points all are mapped to the binary sequence that is assigned to context 3, and most of distance of swimming values then 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 estimate of assigning.The probability estimate of the distance of swimming and grade then is independently updated.As discussed previously, what given contextual probability estimate was represented is the statistical nature that is assigned to the contextual binary sequence of being discussed.What more particularly, described probability estimate was described is to be assigned to comprise 0 or 1 probability in the contextual binary sequence.It is the method that the distance of swimming and grade are upgraded probability estimate that Fig. 6 d has described with a kind of demonstration mode.What describe among this figure is the distance of swimming and grade at 4 * 4 quantization DCT coefficient pieces shown in those representative graphs of binarization 6a, and it is assigned to context, and then the front and back of in arithmetic encoder, encoding, 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 write down 1 and 0 appearance situation in being assigned to each contextual binary sequence.Therefore, the contextual probability estimate of appointment is following providing:
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 handling the earliest.This means and in table, do not write down 1 and 0 the situation that before occurs.In order to overcome this problem, supposed here that before handling described each context all has equal 1 or 0 the probability that comprises.And this hypothesis is to represent by the identical value of input in the row of record 0 and 1 appearance situation.In Fig. 6 d, 1 is used to initialization probability estimates.As selection, also can use a probability estimate that derives from the training data analysis to estimate for each context initialization probability.Then be assigned to 1 and 0 the number that each is occurred in contextual binary sequence contextual the time about the distance of swimming that quantizes dct transform coefficient and grade point and with it then and count, upgrade probability estimate thus in binarization.The right-hand column of Fig. 6 d has shown the situation after handling the quantification of 4 * 4 shown in Fig. 6 a DCT piece.
Although compare with the UVLC entropy coding method, advise that at ITU-T the CABAC arithmetic coding method that adopts in the high complexity class of TML 8 H.26L provides improvement aspect the data compression, with regard to code efficiency, described method still is not 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 be exactly use come based on contextual arithmetic coding specified data symbols encoded in, by using those context models that context of having assigned other data symbols is taken in, can aspect code efficiency, be improved.Especially, by the CABAC method of using in the high complexity class with reference to TML 8 H.26L, the present inventor determines, between the distance of swimming and the grade that is associated with dct transform coefficient existence some get in touch.The inventor has also determined to use these to concern to construct improved context model in addition, and wherein said model can make it when the CABAC method is applied to the distance of swimming and grade point to operate through the code efficiency that improves.Especially, the inventor determines that the successive value will demonstrate very big similarity.More particularly, in the transformation coefficient block inside of appointment, the grade of coded coefficient has the amplitude that is similar to the previous coding coefficient level in fact usually.The inventor has also determined an inverse relation between grade and the distance of swimming value in addition.Especially, big more grade point is possible more before less distance of swimming value.Equally set up conversely, that is to say, less grade point is likely after the bigger distance of swimming.Therefore, the present invention proposes to create new context model for the coding of DCT variation factor, and wherein said model has been taken these relations between grade and the distance of swimming value into account.
In order to carry out in first context model that designs based on contextual scrambler, concerning the binary sequence of the coefficient level value that is assigned to a binarization, its context depends on the coefficient level of previous coding.In order to carry out in second context model that designs based on contextual demoder, concerning the binary sequence of the coefficient level value that is assigned to binarization, its context depends on the coefficient level of early decoding.For in implementing based on contextual demoder or the 3rd context model that designs based on contextual arithmetic decoder, concerning the binary sequence of the coefficient distance of swimming value that is assigned to binarization, its context depends on the coefficient level value of early decoding.
The inventor also further determines, with transform coefficient values that the different images piece is associated between have certain similarity.These similaritys can become bigger between close mutually image block, and often the strongest between the image block that is close to mutually.More particularly, be used for representing specific image block the non-zero transform coefficient value quantity Nc often with near 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 notion, and that is exactly that image block for transition coding provides the indication of a non-zero transform coefficient number and uses entropy coding to come this value is encoded.In addition, if will be used for the Nc value is encoded based on contextual arithmetic coding, the inventor has determined so, beneficially by to being assigned to that the context that is used at least one other transition coding image block takes in the Nc value of piece being assigned to a context.So, between close mutually image block, the similarity between the Nc value can utilize this based on contextual arithmetic coding process.Advise H.26L TML 8 according to ITU-T, the number of non-zero transform coefficient in the image block is not encoded.As an alternative and as indicated previously, provide a block end (EOB) indication here.EOB indication expression to corresponding to last distance of swimming-grade of nonzero coefficient to encoding.The inventor determines, compare with the current method that the EOB indication is provided used in TML 8 H.26L, here the method for Ti Chuing will cause the raising on the code efficiency, the clearly indication of nonzero coefficient number in the piece wherein is provided in the present invention, and has used based on contextual arithmetic coding to come it is encoded.
Although the present invention's motivation and key concept 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 used based on the transition coding of determining with based on the image encoding system of 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 a plurality of with a plurality of pixels, each pixel has a pixel value, and described pixel value piece is carried out a transition coding operation, so that produce corresponding transform coefficient values piece.The described transform coefficient values piece of scanning in a given scanning sequency, so that produce a coefficient value array through overscanning, and use a plurality of numerals to representing the coefficient value in the array of overscanning, described numeral is to having one first numeral and one second numeral.First numeral and second numeral are assigned to one that represents in the right a plurality of contexts of described numeral.According to a first aspect of the invention, first right value of numeral be based on first numeral of another digital centering and be assigned to one contextual.
Preferably, based on first numeral of a digital centering 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, first numeral of digital centering is a zero coefficient values.Preferably, first numeral that numeral is right equates with the size of zero coefficient values.
Preferably, 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 based on the context of contextual binary arithmetic scrambler.
Beneficially, first and second numerals are mapped to one group of binary sequence, and wherein each binary sequence all has a binary sequence numbering that is associated, and each binary sequence can both adopt one in first value or second value.
Preferably, each first and second numeral all is mapped in described one group of binary sequence, and it then is to be assigned to first value by the value with binary sequence to indicate that numeral is mapped to given in described one group of binary sequence one.
Preferably, first value is that 1 and second value is 0.
Preferably, each group binary sequence all is assigned to a context.
Very advantageously be, under the situation that the context of having assigned other digital centering first numerals is taken in, based on first numeral of another digital centering first numeral of a digital centering being assigned to a contextual step is to number by the binary sequence of checking the binary sequence that first right numerals of described other numerals are shone upon to carry out.
Beneficially, described method also comprises and keeps a probability estimate that is used to describe each contextual statistical property.
Preferably, concerning each context, what described probability estimate was represented is the statistical likelihood with the numeral that is assigned to contextual predetermined value.
Preferably, concerning each context, described probability estimate be by record be assigned to discuss first value in the contextual binary sequence and the appearance situation of second value keeps.
According to a second aspect of the invention, a kind of method for encoding images is provided, wherein image has been divided into a plurality of with a plurality of pixels, each pixel all has a pixel value, and described pixel value piece is carried out a transition coding operation, so that produce corresponding transform coefficient values piece.Scan conversion coefficient value piece in a kind of given scanning sequency, so that produce a coefficient value array through overscanning, and use a plurality of numerals to representing the coefficient value in the array of overscanning, wherein said numeral is to having one first numeral and one second numeral.First numeral and second numeral are assigned to one that represents in the right a plurality of contexts of described numeral.According to a second aspect of the invention, the numeral the second right numeral be based on digital centering first the numeral and be assigned to one contextual.
Preferably, based on first numeral of a digital centering first numeral of another digital centering being assigned to a contextual step takes in the context of having assigned other digital centering first numerals.
Beneficially, first numeral of digital centering is a zero coefficient values.Preferably, first numeral that numeral is right equates with the size of zero coefficient values.
Preferably, 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 based on the context of contextual binary arithmetic scrambler.
Beneficially, first and second numerals are mapped to one group of binary sequence, and wherein each binary sequence all has a binary sequence numbering that is associated, and each binary sequence can both adopt one in first value or second value.
Preferably, each first and second numeral all is mapped in described one group of binary sequence, and it then is to be assigned to first value by the value with binary sequence to indicate that numeral is mapped to given in described one group of binary sequence one.
Preferably, first value is that 1 and second value is 0.
Preferably, each group binary sequence all is assigned to a context.
Very advantageously be, under the situation that the context of having assigned the second right numeral of one of them numeral is taken in, based on digital centering first numeral digital centering second numeral being assigned to a contextual step is to number by the binary sequence of checking the binary sequence that second numeral is shone upon to carry out.
Beneficially, described method also comprises and keeps a probability estimate that is used to describe each contextual statistical property.
Preferably, concerning each context, what described probability estimate was represented is the statistical likelihood with the numeral that is assigned to contextual predetermined value.
Preferably, concerning each context, described probability estimate be by record be assigned to discuss first value in the contextual binary sequence and the appearance situation of second value keeps.
Preferably, the method for first and second aspects all is applicable to the transform coefficient values piece according to the present invention.
According to a third aspect of the present invention, a kind of scrambler is provided, comprise and be used for image is divided into a plurality of device with a plurality of pixels, wherein each pixel all has a pixel value, comprise in addition being used for the pixel value piece is carried out a transition coding operation, so that produce the device of a corresponding transform coefficient values piece.Described scrambler also comprises and is used for coming scan conversion coefficient value piece with a given scanning sequency, so that produce device through the coefficient value array of overscanning, be used for representing the device through the coefficient value of the array of overscanning of a plurality of numerals to representative, described numeral is to having one first numeral and one second numeral, and is used for first numeral and second numeral are assigned to the device of representing one of digital right a plurality of contexts.According to a third aspect of the present invention, described scrambler comprises and being used for according to the first right numeral of another numeral and first numeral that numeral is right is assigned to a contextual device.
According to a fourth aspect of the present invention, a kind of scrambler is provided, comprise and be used for image is divided into a plurality of device with a plurality of pixels, wherein each pixel all has a pixel value, comprise in addition the pixel value piece is carried out a transition coding operation, so that produce the device of corresponding transform coefficient values piece.Described scrambler also comprises and being used for a given scanning sequency scan conversion coefficient value piece, so that produce device through the coefficient value array of overscanning, be used for representing the device through the coefficient value of the array of overscanning of a plurality of numerals to representative, wherein said numeral is to having one first numeral and one second numeral, and is used for first numeral and second numeral are assigned to the device of representing one of digital right a plurality of contexts.According to a fourth aspect of the present invention, described scrambler comprises and being used for according to first numeral of digital centering and second numeral that numeral is right is assigned to a contextual device.
According to a fifth aspect of the present invention, a kind of method for encoding images is provided, wherein image has been divided into a plurality of with a plurality of pixels, each pixel all has a pixel value, and the pixel value piece is carried out a transition coding operation, so that produce corresponding transform coefficient values piece.According to a fifth aspect of the present invention, described method comprises the steps: to provide the numeral of zero coefficient values number in the expression transform coefficient values piece, and the context that this numeral is assigned to a described numeral of expression.
Very advantageously be, the numeral of non-zero transform coefficient value number in the expression transform coefficient values piece is assigned to a contextual step takes in having assigned another digital context, wherein said another numeral be zero coefficient values number in another transformation coefficient block.
Very advantageously be, the transformed value piece scans in given scanning sequency, produced a coefficient value array thus through overscanning, and described in the array of overscanning, to representing, wherein said numeral is to having one first numeral and one second numeral by a plurality of numerals for coefficient value.
Beneficially, first numeral of digital centering is a zero coefficient values.
Preferably, first numeral that numeral is right equates with the size of zero coefficient values.
More preferably, right first numeral of numeral and zero coefficient values subtract 1 size and equate.
Preferably, second numeral of digital centering is a plurality of continuous zero coefficient value before zero coefficient values.
Preferably, the block end indication that does not provide an indication to be in last zero coefficient values in the coefficient value array of overscanning here.
Preferably, according to the present invention the method for first, second and the 5th aspect each all be applicable to the transform coefficient values piece.
According to a sixth aspect of the invention, a kind of scrambler is provided, comprising being used for image is divided into a plurality of device with a plurality of pixels, wherein each pixel all has a pixel value, comprise in addition being used for the pixel value piece is carried out a transition coding operation, so that produce the device of corresponding transform coefficient values piece.The device that provides one to be used for indicating the numeral of transform coefficient values piece zero coefficient values number is provided described scrambler, and the contextual device that is used for described numeral is assigned to a described numeral of expression.
Very advantageously be, described scrambler also comprises and being used for to having assigned the device of assigning the numeral of described indication transform coefficient values piece non-zero transform coefficient value number under the situation that another digital context takes 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 being used for image is divided into a plurality of code with a plurality of pixel values, wherein each pixel value all has a pixel value, comprise in addition being used for the pixel value piece is carried out a transition coding operation, so that produce the code of corresponding transform coefficient values piece.Described computer program also comprises and being used for given scanning sequency scan conversion coefficient value piece, so that produce code through the coefficient value array of overscanning, be used for using a plurality of numerals to represent code through the coefficient value of the array of overscanning, wherein said numeral is to having one first numeral and one second numeral, and is used for first numeral and second numeral are assigned to the code of representing one of digital right a plurality of contexts.According to a seventh aspect of the present invention, described computer program also comprises and is used for according to first numeral of another digital centering first right numeral of one of them numeral being assigned to a contextual code.
Beneficially, first numeral of digital centering is a zero coefficient values.
Preferably, first numeral that numeral is right equates with the size of zero coefficient values.
Preferably, 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 being used for image is divided into a plurality of code with a plurality of pixel values, wherein each pixel value all has a pixel value, comprise in addition being used for the pixel value piece is carried out a transition coding operation, so that produce the code of corresponding transform coefficient values piece.Described computer program also comprises and is used for coming scan conversion coefficient value piece with given scanning sequency, so that produce code through the coefficient value array of overscanning, be used for using a plurality of numerals to represent code through the coefficient value of the array of overscanning, wherein said numeral is to having one first numeral and one second numeral, and is used for first numeral and second numeral are assigned to the code of representing one of a plurality of contexts that described numeral is right.According to an eighth aspect of the present invention, described computer program also comprises and is used for according to digital centering first numeral second right numeral of described numeral being assigned to a contextual code.
Beneficially, zero coefficient values of first numeral of digital centering.
Preferably, first numeral that numeral is right equates with the size of zero coefficient values.
Preferably, second numeral of digital centering is nonzero coefficient value 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 being used for image is divided into a plurality of code with a plurality of pixel values, wherein each pixel value all has a pixel value, comprise in addition being used for the pixel value piece is carried out a transition coding operation, so that produce the code of corresponding transform coefficient values piece.According to a ninth aspect of the present invention, described computer program also comprises being used for providing represents the certainly code of the numeral of zero coefficient values number of transform coefficient values, comprises the contextual code that is used for this numeral is assigned to a described numeral of expression in addition.
Very advantageously be, described computer program also comprises and being used for to having assigned under the situation that another digital context takes in, the numeral of non-zero transform coefficient value number in the indication transform coefficient values piece is assigned 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 the 9th aspect.
According to an eleventh aspect of the present invention, provide a kind of based on contextual arithmetic coding method, wherein the data symbol array is represented with a code word.Data symbol in the described array is comprised one first numeral and one second numeral digital right.First numeral of described digital centering is assigned to a context of selecting from a plurality of contexts of representing first numeral, second numeral of digital centering then is assigned to a context of selecting from a plurality of contexts of representing second numeral.According to an eleventh aspect of the present invention, the first right numeral of numeral is based on the first right numeral of another numeral of digital centering and is assigned to contextual.
According to a twelfth aspect of the present invention, provide a kind of based on contextual arithmetic decoding method, wherein the data symbol array is to decode from the code word of an expression array.Data symbol in the described array is comprised one first numeral and one second numeral digital right.First numeral that described numeral is right is assigned to a context of selecting from a plurality of contexts of representing first numeral, the second right numeral of numeral then is assigned to a context of selecting from a plurality of contexts of representing second numeral.According to a twelfth aspect of the present invention, the first right numeral of numeral is based on the first right numeral of another numeral of digital centering and is assigned to contextual.
According to the 13 aspect of the present invention, provide a kind of based on contextual arithmetic coding method, wherein the data symbol array is represented with a code word.Data symbol in the described array is comprise one first numeral and one second numeral digital right.First numeral that described numeral is right is assigned to a context of selecting from a plurality of contexts of representing first numeral, second numeral that described numeral is right then is assigned to a context of selecting from a plurality of contexts of representing second numeral.According to the 13 aspect of the present invention, the numeral the second right numeral be based on digital centering first the numeral and be assigned to one contextual.
According to the 14 aspect of the present invention, provide a kind of based on contextual arithmetic decoding method, wherein the data symbol array is to decode from the code word of an expression array.Data symbol in the described array is comprise one first numeral and one second numeral digital right.First numeral that described numeral is right is assigned to a context of selecting from a plurality of contexts of representing first numeral, second numeral that described numeral is right then is assigned to a context of selecting from a plurality of contexts of representing second numeral.According to the 14 aspect of the present invention, the numeral the second right numeral be based on the first digit of digital centering and be assigned to one contextual.
According to the 15 aspect of the present invention, provide a kind of based on contextual arithmetic coding method, wherein the data symbol array is represented with a code word, the numeral of non-zero number of symbols in the expression array is provided in addition and it is assigned to the context of a described numeral of expression.
According to the 16 aspect of the present invention, provide a kind of based on contextual arithmetic encoder, use code word to represent the device of a data character array comprising being used to.Data symbol in the described array is comprise first numeral and second numeral digital right, described scrambler comprises that also being used for first numeral that numeral is right is assigned to a contextual device of selecting from a plurality of contexts of representing first numeral, and second numeral that numeral is right is assigned to a contextual device of selecting from a plurality of contexts of representing second numeral.According to the 16 aspect of the present invention, described scrambler comprise according to numeral of described digital centering right first the numeral and with another the numeral first right numeral be assigned to a contextual device.
According to the 17 aspect of the present invention, provide a kind of, comprising the device that is used for decoding the data symbol array from the code word of expression data symbol array based on contextual arithmetic decoder.Data symbol in the described array is comprise first numeral and second numeral digital right, described demoder also comprises: be used for first numeral that numeral is right and be assigned to a contextual device of selecting from a plurality of contexts of representing first numeral, and second numeral that numeral is right is assigned to a contextual device of selecting from a plurality of contexts of representing second numeral.According to the 17 aspect of the present invention, described demoder comprise according to numeral of described digital centering right first the numeral and with another the numeral first right numeral be assigned to a contextual device.
According to the 18 aspect of the present invention, provide a kind of, comprising using code word to represent the device of a data character array based on contextual arithmetic encoder.Data symbol in the described array is comprise first numeral and second numeral digital right, described scrambler comprises that also being used for first numeral that numeral is right is assigned to a contextual device of selecting from a plurality of contexts of representing first numeral, and second numeral that numeral is right is assigned to a contextual device of selecting from a plurality of contexts of representing second numeral.According to the 18 aspect of the present invention, described scrambler comprises and being used for according to digital centering first numeral and second numeral that numeral is right is assigned to a contextual device.
According to nineteen of the present invention aspect, provide a kind of, comprising the device that is used for decoding described array from the code word of expression data symbol array based on contextual arithmetic decoder.Data symbol in the described array is comprise first numeral and second numeral digital right, described demoder comprises that also being used for first numeral that numeral is right is assigned to a contextual device of selecting from a plurality of contexts of representing first numeral, and second numeral that numeral is right is assigned to a contextual device of selecting from a plurality of contexts of representing second numeral.According to nineteen of the present invention aspect, described demoder comprises and being used for according to digital centering first numeral and second numeral that numeral is right is assigned to a contextual device.
According to the 20 aspect of the present invention, provide a kind of based on contextual scrambler, represent the device of a data character array comprising using a code word, comprise the device that the numeral of non-zero number of symbols in the expression array is provided in addition, and the contextual device that described numeral is assigned to a described numeral of expression.
By reading this instructions in conjunction with Fig. 7 a to 12, it is clear that the present invention will become.
Description of drawings
Fig. 1 is a block diagram that the exemplary video encoder structure of having used block-based transition coding and motion compensated prediction is described.
Fig. 2 is the block diagram with the corresponding exemplary Video Decoder of Fig. 1 scrambler.
Fig. 3 is a diagram that shows exemplary zigzag scanning.
Fig. 4 is the block diagram that shows in the prior art based on the scrambler of contextual arithmetic coding scheme.
Fig. 5 is the block diagram that shows in the prior art based on the demoder of contextual arithmetic coding scheme.
Fig. 6 a is the diagram that shows the exemplary two-dimensional array of the quantization DCT coefficient value that scans in the zigzag mode.
Fig. 6 b is one and shows that those are by the grade of the array derivation of Fig. 6 a and the form of distance of swimming value.
Fig. 6 c is the grade of the binarization scheme of indicator gauge 1 binarization that value caused that is applied to the grade of Fig. 6 b and the distance of swimming and the form of distance of swimming value.
Fig. 6 d is one and has shown in order to upgrade the form of the method for probability estimate from the distance of swimming and grade.
Fig. 7 a is one and has shown the form that context is assigned to the method for binary sequence according to grade point.
Fig. 7 b is one and has shown the form that context is assigned to the method for grade point according to first embodiment of the invention.
Fig. 8 a is one and has shown the form that context is assigned to the method for binary sequence based on distance of swimming value.
Fig. 8 b is one and has shown the form that context is assigned to the method for distance of swimming value according to second embodiment of the invention.
Fig. 9 is a block diagram of having described according to the scrambler based on contextual arithmetic coding scheme of the present invention.
Figure 10 is a block diagram according to demoder of the present invention.
Figure 11 is one and has described the process flow diagram of method for encoding images according to the preferred embodiment of the invention.
Figure 12 is one and has described the process flow diagram 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, can be improved code efficiency (data compression) based on contextual arithmetic encoder by this mechanism.This improvement is by using those that context model that context of having assigned other data symbols takes in is realized.
The 1.1st joint is described the first embodiment of the present invention in detail hereinafter, and this embodiment relates to a kind of based on contextual binary arithmetic coder, and described scrambler is suitable for using in the image encoding system that for example H.26L the ITU-T suggestion defines.In this embodiment, by the quantization encoding coefficient to the transition coding piece of image pixel carry out grade point that the distance of swimming-grade coding produces be under the situation of having considered another transform coefficient levels that belongs to same, be assigned to contextual.
Describe the second embodiment of the present invention in detail at the 1.2nd joint, this embodiment also relate to a kind of be used 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, by the dct transform coefficient to the quantification of the transition coding piece of image pixel carry out distance of swimming value that the distance of swimming-grade coding produces be under the situation of having considered the grade point that the distance of swimming-grade under the distance of swimming value is right, be assigned to contextual.
At the 1.3rd joint third embodiment of the invention described, this embodiment relate to equally a kind of be used for image encoding system based on contextual arithmetic encoder, wherein said system can be the image encoding system of definition in for example ITU-T suggestion H.26L.According to the 3rd embodiment, the number N c of the non-zero transform coefficient of transition coding image block is determined, and under the contextual situation that is assigned to the Nc value that is used at least one other transition coding image block it is assigned to a context considering.
The preferred embodiments of the present invention have made up the function of above-mentioned these three embodiment.
As described earlier in this article, ITU-T advise the high complexity class of TML 8 H.26L used a kind of with CABAC be celebrated based on contextual arithmetic coding form.In the video encoder that H.26L a basis is implemented, the CABAC method is used to the various different kinds of information that produced by scrambler are encoded, the conversion coefficient (intra-frame encoding mode) or the predicated error (interframe encoding mode) that are produced comprising image pixel transition coding piece.Thereby scan according to a kind of specific scan pattern by the two-dimensional array that block of image pixels is carried out the conversion coefficient that transition coding produces and to produce one-dimensional array.These two kinds of scan patterns define in H.26L.First kind of pattern is called " single sweep pattern ", and another kind of pattern then is called " two scan pattern ".No matter use any scan pattern, the scan conversion coefficient all can convert the two-dimensional array of coefficient value to one and come one-dimensional array that coefficient is sorted in a predefined manner.In described one-dimensional array, orderly transform coefficient values is converted into the distance of swimming and grade point.In one-dimensional array through ordering, last clauses and subclauses be one according to the block end symbol of TML 8 H.26L, these clauses and subclauses are taked is a form with the zero grade point that equates.Show thus: in oldered array, it is right that last zero coefficient values has converted a distance of swimming-grade to.
The distance of swimming and grade point are to be converted into binary digital (binarization) by it being mapped to a series of binary sequences, wherein can for each binary digit all 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 just 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, only depend on the numbering of the binary sequence of having assigned grade for the set of context of tier definition.More particularly, be that the grade coding has defined four contexts according to TML 8 H.26L.First context is used for first binary sequence, and second context is to be used for second binary sequence, the binary sequence of the expression rank amplitude that the 3rd context is used to be left.The residue context then is used for the symbol of grade.With regard to the distance of swimming, there are three contexts, wherein first context is used for first binary sequence, and second context is used for second binary sequence, and the 3rd context then is used for remaining all binary sequences.Because distance of swimming value always is equal to or greater than zero, therefore do not need to use an affix hereinafter to represent symbolic information.
1.1 be used for the context model of grade
According to the first embodiment of the present invention, when the grade point with 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 " previous 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 an example procedure that is used for context is assigned to the right grade point of the distance of swimming-grade, has wherein considered binary sequence that grade itself is mapped to and the grade point of the previous 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 right grade point of the previous distance of swimming-grade.At the beginning of each piece, prev_level can be initialized to zero.In two scan patterns, at each scanning beginning initialization prev_level, promptly every twice.Parameter MAX_BIN_LEVEL provides a kind of being used for that the binary sequence that is mapped to by grade point numbering influence the means that the mode of context appointment is controlled.More particularly, assign similar mode with a kind of to the current context that carries out according to TML 8 H.26L, MAX_BIN_LEVEL has effectively defined all context that is assigned to more than or equal to the binary sequence numbering of MAX_BIN_LEVEL.In a kind of similar mode, the means that the mode that parameter MAX_LEVEL provides a kind of grade point to the previous distance of swimming-grade centering to influence the context appointment is controlled.Fig. 7 a and Fig. 7 b have described the method that also by the false code of using expression formula (2) context is assigned to grade point according to first embodiment of the invention, wherein MAX_BIN_LEVEL=3 and MAX_LEVEL=5.Can use any combination of MAX_BIN_LEVEL and MAX_LEVEL to define one group of context that is suitable for the grade point statistical nature that to encode in principle.
1.2 be used for the context model of 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, be assigned to one contextual the time, except considering binary sequence that the distance of swimming itself is mapped to, also will the right grade of the distance of swimming-grade of distance of swimming value ownership be taken in distance of swimming value with a binarization.False code hereinafter provided an example procedure that is used for context is assigned to 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 are belonged 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 influence the context appointment is controlled.More particularly, with a kind of with assign similar modes according to 8 current contexts that carry out H.26LTML, MAX_BIN_RUN has effectively defined a context of having assigned more than or equal to all binary sequences numberings of MAX_BIN_RUN.In a kind of similar mode, the means that the mode that parameter MAX_RUNL provides a kind of grade point to the distance of swimming-grade centering to influence the context appointment is controlled.Fig. 8 a and Fig. 8 b have described the method that also by the false code of using expression formula (3) context is assigned to grade point according to second embodiment of the invention, wherein MAX_BIN_RUN=3 and MAX_RUNL=4.Can use any combination of MAX_BIN_RUN and MAX_RUNL to define one group of context that is suitable for the distance of swimming primary system meter feature that to encode in principle.
1.3 be used for the context of 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 and the corresponding distance of swimming of the array-grade logarithm purpose method that quantizes the variation factor 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 the 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 the array.Therefore, according to this embodiment of the present invention, no longer need one here such as the such EOB symbol of grade point that equates with zero.
Further be scanned through quantized transform coefficients, so that produce an orderly one-dimensional array according to predetermined scanning sequency.Replacedly, also can after being sorted, the quantization parameter value determine Nc again.Then, all to convert the distance of swimming-grade to right for each non-zero quantized coefficients in the oldered array.According to this embodiment of the invention, what the grade point that the distance of swimming-grade is right was represented is the size that subtracts 1 value that obtains through the coefficient that quantizes, and distance of swimming value is then corresponding with the number of argumentation coefficient continuous null value quantization parameter before.Because no longer the grade point that will equate with zero is as the block end designator, therefore be that described grade point has been given the size that quantization parameter subtracts 1 resulting value.Can save thus and be used to represent the needed data volume of class information (for example bit number).
Then, the same with the Nc value, used entropy coding to come grade and distance of swimming value are encoded here.Under the situation of having used such as the CABAC technology that in TML 8 H.26L, realizes, as mentioned above, can come the distance of swimming and grade point are encoded according to of the present invention first and/or second embodiment based on contextual arithmetic coding method.Replacedly, also can the context model that any other is suitable be used 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, the Nc value that at first will represent given middle non-zero quantization transform coefficient number is mapped to a series of binary sequence comes it is carried out binarization, and wherein each binary sequence all has a binary sequence corresponding numbering.Then then based on binary sequence that Nc was mapped to numbering and assigned at least one other image block of a Nc value or the Nc of macro block is identified for the context of described Nc.Following false code has provided the example procedure that is used for a context is assigned to 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 scrambler will send to a demoder through the grade of given quantification transformation coefficient block of coding and distance of swimming value, through the transmission before the distance of swimming and grade point are encoded of the Nc value of entropy coding.On demoder described Nc value is decoded, it is right then to follow thereafter with the corresponding distance of swimming-grade of quantization transform coefficient value of argumentation piece.When grade point was decoded, the corresponding subtraction of doing in order to compensate in scrambler will be added to numerical value+1 in each grade size.
Use method for encoding images and improvement on code efficiency in order to show, according to the present invention, the 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 number percent form of comparing with TML 8 reduces, wherein MAX_LEVEL=5 and MAX_RUN=4.All frames are all encoded as the I frame in the CABAC pattern.As shown in table 2, the minimizing scope of bit rate is from 0.95 to 4.74%.When the QP value was very little, described improvement will be more remarkable.
In table 2, the title that appears at form first row is 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 that uses.
QP Container Foreman News Silent Tempete Mobile Paris
5 3.19 3.92 3.11 4.74 4.01 3.63 3.34
10 3.10 3.39 2.85 4.32 3.88 3.73 3.04
16 2.64 2.67 2.26 3.17 3.37 3.37 2.55
20 2.20 2.14 1.76 2.38 2.79 2.90 2.20
24 1.30 1.51 1.35 2.28 1.89 2.01 1.54
28 1.16 0.95 0.99 1.76 1.55 1.57 1.18
Mean bit rate difference (%) 1.79 1.83 1.58 2.37 2.49 2.40 1.87
Table 2
With reference now to Fig. 9,, according to the present invention, the scrambler 10 of transmitting terminal comprises a unit 16 that is used to preserve the previous grade and the distance of swimming.As shown in Figure 9, the distance of swimming-grade that is used for given is provided to map unit 12 to 102, and to being mapped to a series of binary sequence, each binary sequence all has value 0 or 1 to described map unit 12 with described.In the right sequence of the expression distance of swimming-grade, the position of binary sequence is called the binary sequence numbering.The binary sequence numbering is by signal 104 expressions.The grade point 108 of the previous coding that provides based on signal 104 and unit 16, assignment unit 14 is assigned to a binary sequence numbering with a context.The context of signal 106 expressions is provided to an adaptive arithmetic code device 20.1 probability of occurrence and 0 probability of occurrence are then estimated by a probability estimate unit 22.Based on described probability estimate 120,24 pairs of binary sequences of arithmetic coding unit are encoded.124 of feedback signals are provided to probability estimate module 22 from scrambler 24, thereby upgrade probability estimate.Be transformed into a bit stream 122 through information encoded.So that be delivered to a demoder or be kept in the memory device for using after a while.
Preferably, scrambler 10 also comprise an energy with the distance of swimming-grade to before offering arithmetic encoder 20 with piece in nonzero coefficient number N c offer the unit 18 of arithmetic encoder 20, therefore also Nc is encoded and it is included in the bit stream 122.Described Nc is then represented by signal 110.Under the situation of using Nc, there is no need to send a block end (EOB) symbol to demoder.In the prior art, size is that 0 grade point will be used to the EOB symbol.More particularly, Nc is just found and be to use entropy coding to come it is encoded after transform and quantization.It is pointed out that under the known situation of nonzero coefficient number, no longer include necessary use 0 grade point and signal block end.Therefore, by the quantization parameter value is subtracted 1, can make amendment to grade point.
As shown in figure 10, the bit stream 122 that uses demoder 50 to come received code device 10 to provide at receiving end.What the bit stream that receives was represented is the data symbol of process arithmetic coding, and it is represented by reference number 202.At the beginning,, in context assignment unit 66, calculate a context, and in probability estimate unit 62, upgrade the probability estimate of binary sequence value according to the symbol of early decoding.The early decoding symbol that upgrades probability estimate institute foundation is shown by reference number 205.That carries out in probability estimate calculating that the context of carrying out in the context assignment blocks 66 is assigned and probability estimate piece 62 is carried out and the scrambler 10 is similar.Then, the bit 202 that receives is fed to the arithmetic decoding engine 64 of arithmetic encoder 60, uses the current probability estimate of the context calculate and binary sequence value 204 to convert thereof into binary sequence value 206 through decoding there.In piece 68, be mapped to the distance of swimming and grade point through the binary sequence 208 of decoding.If in scrambler 10 to piece in nonzero coefficient number N c encode and the bit stream 202 that receiving in described number is provided, then signal 214 is offered binary sequence-numerical value mapping block 68, thus by grade point being added 1 coefficient that recovers through quantizing.
Figure 11 describes the process flow diagram 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 scrambler receives an image.In step 520, the image that receives is divided into a plurality of.In step 530 each piece is scanned, and obtain the grade and the distance of swimming of passing through the coefficient that quantizes in the 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 of representing the 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 of representing quantization parameter distance of swimming value.The context of having assigned is sent to an arithmetic encoder, so that encode in step 560.In addition, as described in the 1.3rd joint, the number of Nc or non-zero quantized coefficients is to have scanned among the described process in step 530 or just obtain afterwards determining, and in step 560 Nc is encoded before Nc and context are provided to a demoder.
Replacedly, as shown in figure 11, when assigning context and reckon without the grade or the distance of swimming of previous coding, in this case, be delivered to receiving end, can improve described method for encoding images by the signal that will indicate Nc.As shown in figure 12, Nc obtains in step 542 and provides, rather than obtains the grade and the distance of swimming of previous coding in step 540 in order to assign context in step 550.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 the EOB symbol is sent to demoder.
Although here it is described at the preferred embodiments of the present invention, but it will be understood to those of skill in the art that, without departing from the present invention, can to its carry out form and details aspect aforementioned and multiple other changes, omit and deviate from.

Claims (28)

1. method for encoding images, wherein image is divided into a plurality of pieces with a plurality of pixels, each pixel all has a pixel value, and thereby the piece execution that transition coding is operated pixel value produces a corresponding transform coefficient values piece, described transform coefficient values piece is to scan with a kind of given scanning sequency, thereby produce a coefficient value array through overscanning, wherein the coefficient value in Sao Miao the array is shown by a plurality of distances of swimming-grade numeral his-and-hers watches, the described distance of swimming-grade numeral is to having first numeral and second numeral, described first numeral and second numeral are assigned to one of a plurality of contexts that the expression distance of swimming-the grade numeral is right
It is characterized in that: second numeral that the distance of swimming-grade numeral is right is assigned to a context according to the first right numeral of this distance of swimming-grade numeral.
2. according to the method for claim 1, it is characterized in that: described a plurality of contexts are based on the context of contextual arithmetic encoder.
3. according to the method for claim 1, it is characterized in that: described a plurality of contexts are based on the context of contextual binary arithmetic coder.
4. according to the method for claim 3, it is characterized in that: the described distance of swimming-first right numeral of grade numeral is mapped to one group of binary sequence, in the wherein said binary sequence each all has a relevant binary sequence numbering, and each can both get one of first value or second value.
5. according to the method for claim 3, it is characterized in that: the described distance of swimming-second right numeral of grade numeral is mapped to one group of binary sequence, in wherein said one group of binary sequence each all has a relevant binary sequence numbering, and can both get one of first value or second value.
6. according to the method for claim 4 or 5, it is characterized in that: it is to be assigned to first value by the value with binary sequence to indicate that numeral is mapped to given in described one group of binary sequence one.
7. according to the method for claim 4 or 5, it is characterized in that: first value is that 1 and second value is 0.
8. according to the method for claim 5, it is characterized in that: according to first numeral of the distance of swimming-grade numeral centering second numeral of the distance of swimming-grade numeral centering is assigned to a contextual processing and has considered the binary sequence numbering that the distance of swimming-the second right numeral of grade numeral is mapped to.
9. according to the method for claim 1, it is characterized in that:
The described first numeral indication zero coefficient values, and
The number of the continuous zero coefficient value of the described second numeral indication before described zero coefficient values.
10. scrambler, comprise and be used for image is divided into a plurality of devices with piece of a plurality of pixels, wherein each pixel all has a pixel value, comprises in addition being used for block of pixels is carried out the transition coding operation so that produce the device of a corresponding transform coefficient values piece; Be used for given scanning sequency scan conversion coefficient value piece so that produce the device of the coefficient value array of a scanning; Be used for using the device of a plurality of distances of swimming-grade numeral to the coefficient value of the array of representing described scanning, the described distance of swimming-grade numeral is to having first numeral and second numeral; And the device that is used for first and second numerals are assigned to one of right a plurality of contexts of the expression described distance of swimming-grade numeral, it is characterized in that: described scrambler comprises and is used for according to the first right numeral of the distance of swimming-grade numeral this distance of swimming-second right numeral of grade numeral being assigned to a contextual device.
11. the scrambler according to claim 10 is characterized in that: described a plurality of contexts are based on the context of contextual arithmetic encoder.
12. the scrambler according to claim 10 is characterized in that: described a plurality of contexts are based on the context of contextual binary arithmetic coder.
13. scrambler according to claim 12, it is characterized in that: it comprises also and is used for the described distance of swimming-first right numeral of grade numeral is mapped to the device of one group of binary sequence that each in the wherein said binary sequence all has a binary sequence numbering that is associated and can get one of first value or second value.
14. scrambler according to claim 12, it is characterized in that: it comprises also and is used for the described distance of swimming-second right numeral of grade numeral is mapped to the device of one group of binary sequence that each in the wherein said binary sequence all has a binary sequence numbering that is associated and can get one of first value or second value.
15. the scrambler according to claim 13 or 14 is characterized in that: thus it also comprises and being used for by described binary sequence being assigned to the device that first value is mapped to a numeral binary sequence of described one group of binary sequence appointment.
16. the scrambler according to claim 13 or 14 is characterized in that: first value is that 1 and second value is 0.
17. the scrambler according to claim 14 is characterized in that: described be used for and second numeral of this distance of swimming-grade numeral centering is assigned to a contextual device binary sequence numbering that this distance of swimming-second numeral of grade numeral centering is mapped to is taken in according to first numeral of the distance of swimming-grade numeral centering.
18. the scrambler according to claim 10 is characterized in that:
The described first numeral indication zero coefficient values, and
The number of the continuous zero coefficient value of the described second numeral indication before described zero coefficient values.
19. one kind based on contextual arithmetic coding method, comprises the following steps:
With the codeword table registration according to character array, data symbol in the described array is that to have comprised the distance of swimming-grade numeral of first numeral and second numeral right, first numeral of the distance of swimming-grade numeral centering is assigned to the context of selecting from a plurality of contexts of representing first numeral, second numeral of the distance of swimming-grade numeral centering then is assigned to the context of selecting from a plurality of contexts of representing second numeral, it is characterized in that: the distance of swimming-second right numeral of grade numeral be based on the first right numeral of this distance of swimming-grade numeral and be assigned to one contextual.
20. one kind based on contextual arithmetic decoding method, comprises the following steps:
Decoded data character array from the code word of expression data symbol array, data symbol in the described array is that to have comprised the distance of swimming-grade numeral of first numeral and second numeral right, the distance of swimming-first right numeral of grade numeral is assigned to the context of selecting from a plurality of contexts of representing first numeral, the distance of swimming-second right numeral of grade numeral then is assigned to the context of selecting, it is characterized in that from a plurality of contexts of representing second numeral: the distance of swimming-second right numeral of grade numeral is based on first numeral of this distance of swimming-grade numeral centering and is assigned to contextual.
21. the method according to claim 20 is characterized in that: described a plurality of contexts are based on the context of contextual binary arithmetic coder.
22. method according to claim 21, it is characterized in that: the described distance of swimming-first right numeral of grade numeral is mapped to one group of binary sequence, in the described binary sequence each all has a relevant binary sequence numbering, and each can both get one in first value or second value.
23. method according to claim 21, it is characterized in that: the described distance of swimming-second right numeral of grade numeral is mapped to one group of binary sequence, in described one group of binary sequence each all has a relevant binary sequence numbering, and can get in first value or second value one.
24. one kind based on contextual arithmetic encoder, comprises the device that uses code word to represent the data symbol array, the data symbol in the described array is to comprise that the distance of swimming-grade numeral of first numeral and second numeral is right; Be used for the distance of swimming-first right numeral of grade numeral is assigned to the contextual device of selecting from a plurality of contexts of representing first numeral; And be used for the second right numeral of the distance of swimming-grade numeral is assigned to the contextual device of selecting from a plurality of contexts of representing second numeral, it is characterized in that: described scrambler also comprises and is used for according to first numeral of the distance of swimming-grade numeral centering and second numeral of this distance of swimming-grade numeral centering is assigned to a contextual device.
25. one kind based on contextual arithmetic decoder, comprises the device that is used for decoding from the code word of expression data symbol array described array, the data symbol in the wherein said array is to comprise that the distance of swimming-grade numeral of first numeral and second numeral is right; Be used for the distance of swimming-first right numeral of grade numeral is assigned to the contextual device of selecting from a plurality of contexts of representing first numeral; And the second right numeral of the distance of swimming-grade numeral is assigned to the contextual device of selecting from a plurality of contexts of representing second numeral, it is characterized in that: described demoder comprises and is used for according to first numeral of the distance of swimming-grade numeral centering and second numeral of this distance of swimming-grade numeral centering is assigned to a contextual device.
26. the demoder according to claim 25 is characterized in that: described a plurality of contexts are based on the context of contextual binary arithmetic coder.
27. demoder according to claim 26, it is characterized in that: the described distance of swimming-first right numeral of grade numeral is mapped to one group of binary sequence, in the described binary sequence each all has a relevant binary sequence numbering, and each can both get one in first value or second value.
28. demoder according to claim 26, it is characterized in that: the described distance of swimming-second right numeral of grade numeral is mapped to one group of binary sequence, in described one group of binary sequence each all has a relevant binary sequence numbering, and can get in first value or second value one.
CNB2006100887097A 2001-09-14 2002-09-12 Method and system for context-based adaptive binary arithmetic coding Expired - Lifetime CN100454339C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US32211201P 2001-09-14 2001-09-14
US60/322112 2001-09-14
US09/995240 2001-11-27

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
CN1866297A CN1866297A (en) 2006-11-22
CN100454339C true CN100454339C (en) 2009-01-21

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 Before (1)

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

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
CN108777790B (en) * 2010-04-13 2021-02-09 Ge视频压缩有限责任公司 Apparatus for decoding saliency map and apparatus and method for encoding saliency map
EP3703373B1 (en) * 2010-10-08 2024-04-17 GE Video Compression, LLC Picture coding supporting block partitioning and block merging
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
JP2014523186A (en) * 2011-06-28 2014-09-08 サムスン エレクトロニクス カンパニー リミテッド Entropy encoding / decoding method and apparatus
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
EP2745512B1 (en) 2012-01-03 2019-10-23 HFI Innovation Inc. Method and apparatus for block-based significance map and significance group flag context selection
TWI549487B (en) 2012-04-15 2016-09-11 三星電子股份有限公司 Method of decoding video
CN107295338B (en) * 2016-04-12 2020-09-04 上海兆芯集成电路有限公司 Image compression and decompression method based on lossless joint image expert group format

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1162872A (en) * 1996-01-25 1997-10-22 三星电子株式会社 Method and apparatus for varied length coding and decoding
EP1037468A1 (en) * 1999-03-08 2000-09-20 Texas Instruments Incorporated Image coding using embedded zerotree patterns and bitplanes
CN1290067A (en) * 1996-01-25 2001-04-04 三星电子株式会社 Method for encoding and decoding to objects in images by field data
US6243496B1 (en) * 1993-01-07 2001-06-05 Sony United Kingdom Limited Data compression
US6263115B1 (en) * 1998-02-24 2001-07-17 Daewoo Electronics Co., Ltd. Method and apparatus for encoding a binary shape signal
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6243496B1 (en) * 1993-01-07 2001-06-05 Sony United Kingdom Limited Data compression
CN1162872A (en) * 1996-01-25 1997-10-22 三星电子株式会社 Method and apparatus for varied length coding and decoding
CN1290067A (en) * 1996-01-25 2001-04-04 三星电子株式会社 Method for encoding and decoding to objects in images by field data
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
US6263115B1 (en) * 1998-02-24 2001-07-17 Daewoo Electronics Co., Ltd. Method and apparatus for encoding a binary shape signal
EP1037468A1 (en) * 1999-03-08 2000-09-20 Texas Instruments Incorporated Image coding using embedded zerotree patterns and bitplanes

Also Published As

Publication number Publication date
CN1874509B (en) 2014-01-15
CN1866297A (en) 2006-11-22
CN1874509A (en) 2006-12-06

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
EP2894855B1 (en) Signal decoding method, signal decoding device and signal decoding program
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
US7957600B2 (en) Methods and systems for rate-distortion optimized quantization of transform blocks in block transform video coding
KR100953677B1 (en) Coding transform coefficients in image/video encoders and/or decoders
EP3270591B1 (en) Modified coding for a transform skipped block for cabac in hevc
CN100454339C (en) Method and system for context-based adaptive binary arithmetic coding
US20030185452A1 (en) Intra compression of pixel blocks using predicted mean
US8552890B2 (en) Lossless coding with different parameter selection technique for CABAC in HEVC
CN104067524A (en) Context adaptive entropy coding with a reduced initialization value set
CN107222743A (en) A kind of image processing method, device and system
AU2014202978B2 (en) Method and system for context-based adaptive binary arithmetic coding
AU2008202981B8 (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: 20160118

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: 20090121