WO2007041911A1 - Cabac decoding system and method thereof - Google Patents

Cabac decoding system and method thereof Download PDF

Info

Publication number
WO2007041911A1
WO2007041911A1 PCT/CN2006/001358 CN2006001358W WO2007041911A1 WO 2007041911 A1 WO2007041911 A1 WO 2007041911A1 CN 2006001358 W CN2006001358 W CN 2006001358W WO 2007041911 A1 WO2007041911 A1 WO 2007041911A1
Authority
WO
WIPO (PCT)
Prior art keywords
decoding
bin
unit
value
cabac
Prior art date
Application number
PCT/CN2006/001358
Other languages
English (en)
French (fr)
Inventor
Kai Yang
Lin Wang
Yi Lin
Wei Yu
Original Assignee
Huawei Technologies Co., Ltd.
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 Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Priority to CN200680013155.2A priority Critical patent/CN101164340B/zh
Publication of WO2007041911A1 publication Critical patent/WO2007041911A1/zh

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • the present invention relates to the field of video coding technologies, and in particular, to a CABAC decoding system and method. Background technique
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • CAVLC Context -based Adaptive Variable Length Coding, which has better compression efficiency than context-based adaptive variable length coder.
  • the function of the entropy coder is to sequentially encode the values of all syntax elements in each macroblock into the code stream in a fixed order in accordance with the macroblock scanning order.
  • the macroblock is a basic unit block of video image coding. Each image to be encoded needs to be divided into several macroblocks before being encoded.
  • Video Encoding Standards Two basic macroblock scanning sequences are supported in H.264.
  • CABAC encoding process consists of three main parts: binarization, selection and update of context (probabilistic) models, and binary arithmetic coding.
  • the binarization process is a pre-processing process before encoding the syntax elements.
  • the value of each syntax element is mapped to a string of binary values consisting of 0 and 1 according to certain rules.
  • the mapping rules differ depending on the syntax elements.
  • PLPS probability estimation value of a bin (CABAC codec basic bit) to be encoded, wherein the context probability model is set for calculating the PLPS.
  • MPS large probability symbol
  • LPS small probability symbol
  • PLPS is the probability that the value of bin is LPS, and its value ranges from [0, 0.5].
  • CABAC encoding process the corresponding context probability model needs to be set for each bin.
  • Each context probability model includes a state value, an MPS value, and a state indicated by the PLPS.
  • the information of the adjacent left macroblock and the upper macroblock that have been encoded is used to calculate the context probability model required to encode the bin of the current macroblock, and the calculation rule is in the H.264 standard document JVT-G050.
  • JVT-G050 "Draft ITU-T Recommendation H.264 and Draft ISO IEC 14496-10 WC” in JVT of ISO/IEC doc, T.Wig, Ed., There are detailed regulations in Pattaya, Thailand, Mar.2003. After selecting the context probability model, you can start binary arithmetic coding on the bin.
  • the basic idea of the binary arithmetic coding process is to encode the source with the real number in [0, 1].
  • the length of the real number is related to the probability of the source character sequence.
  • Two basic parameters are used in the arithmetic coding process, which are: Probability estimates of each symbol and the current interval.
  • the specific method of encoding is: First, define the current interval as [0, 1], and then encode or decode each bin. Repeat the following process for each bin's codec - a. Split the current interval into several subintervals. The length of each subinterval is proportional to the probability estimate of each possible input symbol;
  • the renormalization process is performed to ensure that the next symbol is currently encoded.
  • the length of the interval is always not less than 0.5.
  • R PS Rangei - R LPS ;
  • Rang is the decoding interval value
  • Offset i+1 Offsetj + R LPS ;
  • Offseti refers to the offset value during decoding
  • the CABAC implementation process is a full integer precision operation.
  • the lower bound of the current subinterval is the Offset ⁇ subzone
  • the length is Range; both retain 9-bit integer precision.
  • the renormalization process guarantees that the 8th bit of the highest bit of Range; is always 1.
  • the value to be used in the binary arithmetic coder is angei * P.
  • CABAC in order to reduce the implementation complexity, the product of the probability values PLPS and Rang of the small probability symbol is not directly calculated. Instead, store the calculated values directly in a two-dimensional table directly by looking up the table.
  • the index of the table includes a 6-bit state value and a 2-bit qCodlRangeldx value, the 6-bit value is derived from the context probability model corresponding to ⁇ , and the 2-bit value is derived from the 7th bit and the 6th bit of Rang, that is, except for the highest 8th bit The highest two bits outside the bit.
  • 6-bit state value range 0-63, 2 bits
  • the value of qCodlRangeldx is 0 ⁇ 3.
  • the context probability model needs to be updated according to the value of the currently encoded bin.
  • the value of MPS is only inverted before the encoding state value is 0 and the current bin is LPS. That is, if it is 0, it becomes 0, and if it is 1, it becomes 0, otherwise it remains unchanged.
  • CABAC decoder is mainly a combination of pure software decoding and software decoding and hardware decoding.
  • the current one is a pure software CABAC decoder. Pure software decoding is performed on a PC in accordance with the algorithm flow. Therefore, the pure software decoder is actually the CPU to undertake all CABAC decoding tasks, the decoding speed is very slow, can not meet the needs of real-time applications.
  • Another scheme currently used includes a decoder structure combining software and hardware, wherein the hardware portion includes a single bin decoding hardware structure, in which one cycle one bin is used for decoding each bin (one cycle one bin) ) Hardware decoding structure.
  • the one cycle one bin hardware acceleration method in this scheme is greatly improved in decoding efficiency compared with the pure software decoding scheme provided in the first implementation manner, however, the corresponding coding efficiency still has room for further improvement.
  • the object of the present invention is to provide a CABAC decoding system and method, which can greatly improve the CABAC decoding efficiency and effectively improve the coding and decoding performance of CABAC.
  • the present invention provides a CABAC decoding system, including:
  • At least one decoding unit group includes N interconnected decoding units;
  • the M decoding unit receives the parameter information required for decoding the bin and the bit stream to be decoded, decodes the bin in the bit stream to be decoded, obtains the decoding result of the current decoding unit bin, and sends the updated parameter information to the M+1 decoding units;
  • the N is an integer greater than or equal to 2
  • the M is an integer greater than or equal to 1, and the maximum value is N-1.
  • the decoding unit group further includes an output unit, and the decoding result of the Mth decoding unit bin and the updated parameter information are further sent to the output unit, where:
  • an output unit configured to receive a control signal, a decoding result sent by each decoding unit, and updated parameter information, select between updated parameter information output by each decoding unit, and select, by using the control signal, the updated parameter information.
  • the output value of the decoding unit group configured to receive a control signal, a decoding result sent by each decoding unit, and updated parameter information, select between updated parameter information output by each decoding unit, and select, by using the control signal, the updated parameter information.
  • the decoding unit group includes a unit group that decodes the normal encoding mode bin and/or a unit group that decodes the bypass encoding mode bin.
  • the parameter information is an interval value, an offset value, and a probability model value of each bin unit.
  • the decoding unit includes a unit that decodes the normal encoding mode bin
  • the unit of the Mth decoding normal encoding mode bin outputs the updated interval value and the offset value, and sends the updated interval value and the offset value to the M+1th decoding normal encoding mode bin.
  • the unit is used as input interval value and offset value information.
  • the system further includes a renormalization processing module, configured to renormalize the interval value and the offset value of the output of the Mth decoding normal coding mode bin unit, and send the same to the M+1th decoding normal coding.
  • the unit of the mode bin or the unit of the decoding bypass coding mode bin is used as the input interval value and the offset value.
  • the system further includes a multiplexer, and the input of the multiplexer is an updated probability model and a new probability model outputted by the Mth unit decoding the normal coding mode bin, and the output is a probability of two inputs.
  • the input of the multiplexer is an updated probability model and a new probability model outputted by the Mth unit decoding the normal coding mode bin, and the output is a probability of two inputs.
  • the decoding unit includes a unit that decodes the bypass coding mode bin
  • the unit of the Mth decoding bypass coding mode bin or the updated interval value and offset value of the unit output of the normal coding mode bin are sent to
  • the unit of the M+1th decoding bypass coding mode bin is used as its input interval value and offset value.
  • the present invention further provides a CAB AC decoding method, which is implemented based on at least one decoding unit group, where the one decoding unit group includes N mutually connected decoding units, and the method includes:
  • the Mth decoding unit receives the parameter information and the control signal of the decoding bin, decodes the input bit stream to be decoded according to the parameter information, outputs a decoding result of the bin, and sends the updated parameter information to the M+1 Decoding unit;
  • the N is an integer greater than or equal to 2
  • the M is an integer greater than or equal to 1, and the maximum value is N-1.
  • the CABAC decoding method further includes the following steps:
  • the decoding result of the Mth decoding unit bin and the updated parameter information are sent to the output unit, and the output unit selects between the updated parameter information output by each decoding unit according to the control signal and the decoding result of the bin, and controls The information and the value of the decoding bin are used to select an output value of the decoding unit group from the updated parameter information.
  • the decoding includes: decoding the normal encoding mode bin and/or decoding the bypass encoding mode bin.
  • the parameter information is an interval value, an offset value, and a probability model value of each bin unit.
  • the CABAC decoding method may further include the following steps:
  • the decoding unit determines whether the current decoding process uses the normal encoding mode bin decoding process or the bypass encoding mode bin decoding process according to the input first control signal.
  • the CABAC decoding method when determining that the decoding unit decodes the normal encoding mode bin, may further include the step of: determining, according to the introduced second control signal, a decoding unit that currently performs decoding processing.
  • the CABAC decoding method may further include the following steps when determining that the decoding unit decodes the normal encoding mode bin:
  • the unit determines, according to the introduced third control signal, a probability model that selects the updated unit of the Mth bin decoding or a new probability model to perform decoding processing as a probability model required for the M+1th bin.
  • the CABAC decoding method may include the following steps:
  • the CABAC decoding method may further include the following steps when determining that the decoding unit decodes the normal encoding mode bin:
  • the unit determines whether it is necessary to decode the sign information during the current decoding period based on the introduced fourth control signal.
  • the CABAC decoding method when determining that the decoding unit decodes the bypass coding mode bin, may further include the following steps: determining, according to the value of the first control signal, decoding the prefix or suffix of the exponential Columbus code, And when the prefix is decoded, the decoding ends when the decoding to bypass coding mode bin value is 0; when decoding the suffix, the fifth used to determine the number of bypass coding modes bin that needs to be decoded in the current decoding beat is introduced.
  • the control signal determines the number of bypass coding modes bins that need to be decoded.
  • the CABAC decoding method may further include the following steps - in decoding the bin decoding process, if the decoding has a sign bit, the decoding result further includes sign bit information.
  • the CABAC decoding method may further include the following steps:
  • the updated interval value and the offset value information are renormalized by the renormalization processing module, and the interval value and the offset value after the renormalization process are obtained as the last updated value of the decoding unit, for the same
  • the interval value and offset value of the other decoding unit input or the final output in the shot.
  • the interconnections are binary tree connections or serial connections.
  • the present invention has higher decoding efficiency than the decoding structure of one bin of the prior art.
  • the present invention not only achieves high speed decoding, but also maintains the consumption of hardware resources in the decoding process within a reasonable range. Therefore, the present invention provides an efficient and reasonable decoding system.
  • FIG. 1 is a schematic diagram showing a decoding structure of a secondary tree decoding a normal encoding mode bin
  • FIG. 2 is a schematic diagram showing a decoding structure of a multi-stage tree circuit of a decoding bypass mode bin
  • FIG. 3 is a schematic diagram of a secondary tree structure for cascading two decoding single normal coding mode bins;
  • FIG. 4 is a schematic diagram of a secondary tree structure for cascading two decoding single bypass coding modes bin;
  • FIG. 5 is a control signal for controlling two decodings. a schematic diagram of a unit of a normal coding mode bin and two units of a decoding bypass coding mode bin;
  • Figure 6 is a tree diagram of the decoding process. Detailed ways
  • the core of the invention is to utilize the characteristics of CABAC decoding to provide a multi-level bin CABAC decoding hardware structure, so that the hardware can decode two or more bins in one cycle (clock cycle), and realize the arithmetic decoding unit. Parallelism. Further, the present invention can fully utilize the advantage of high hardware decoding efficiency.
  • a multi-level tree decoding structure for decoding a plurality of bins in one beat i.e., one clock cycle
  • multiple (at least two) units needed to decode one bin are used, and units that originally decode a bin are cascaded in a multi-stage decoding tree structure, so that multiple bins can be decoded in one shot, and now In the prior art, there is only one of the units in the decoding structure for decoding a bin.
  • CABAC decoding two syntax elements (ie, parameter information) that need to be frequently decoded are mvd (motion vector) and level (residual coefficient) and map_last (position information), so decoding for these syntax elements is used.
  • mvd motion vector
  • level residual coefficient
  • map_last position information
  • the bin string consists of a prefix and a suffix of Columbus code.
  • the prefix is a one-dimensional code, and the mapping rule is 0 to map to 0, 1 to 10, 2 to 110, and 3 to 1110.
  • Suffix The Columbus code includes its own prefix and suffix parts.
  • the prefix of the Columbus code is a unary code;
  • the suffix is a binarized bin string whose length is determined by the prefix of the Columbus code, for example, the suffix of the mvd is the third-order exponential Columbus code, and the length of the suffix of the Columbus code is the prefix length plus 2;
  • the suffix is the first-order exponential Columbus code, and the suffix length of the Columbus code is the prefix length minus one.
  • For non-zero mvd its absolute value is followed by a bin indicating its symbol information; for all levels (actually the absolute value of the non-zero residual coefficient minus 1), its absolute value binarized bin string has 1 Bin indicates its symbol information.
  • map_last The binarization of map_last is as follows: map, last appears in pairs. They are all one bin. If map is 0, there is no last information; otherwise, map has a last information of bin.
  • the present invention provides two basic multi-level bin decoding structures, which will be separately described below.
  • the first structure is shown in FIG. 1.
  • the structure is only one example of decoding two bins in one shot.
  • the structure is provided with units for decoding two normal encoding modes bin, and each unit is followed by decoding.
  • the unit of the road coding mode bin A simpler diagram is shown in Figure 6 tree. This structure can be used to speed up the decoding of mvd, the prefix of level and the map_last pair:
  • the entry information of the structure includes a decoding interval value Rang and an offset value Offset for arithmetic codec. And the code stream information bits to be decoded, and stateO and statel for indicating the context information, respectively, are used to mark the context information that may be used in the decoding process of the two bins.
  • the output signal of the structure has updated Rang and Offset, that is, Rang_up and Offset_up, and updated context information, that is, state_upO and state_upl information, and two bins obtained by decoding the code stream information.
  • Rang and Offset that is, Rang_up and Offset_up
  • context information that is, state_upO and state_upl information
  • the second structure is provided with a unit for decoding two bypass coding modes bin, which can quickly decode the suffix part of mvd, level.
  • Its structure is shown in Figure 2, and a simpler diagram is shown in Figure 6 Tree 13.
  • the structure can be done by decoding the coefficients using the Golomb method, which is characterized by the fact that no context maintenance information is required, which is the implementation of the prefix or suffix of the Golomb decoding.
  • the circuit includes n bypass (bypass coding mode) decoding circuits, wherein n is greater than or equal to 2, that is, the value of n can be freely set as needed, for example, can be set to 2, 3, 4 or 5, and the like.
  • the string obtained after mvd and level binarization includes the prefix and suffix.
  • the syntax elements level and mvd take a small value, only the prefix, the prefix is a number of normal encoding mode bin, and finally with a bypass mode encoding bin (positive and negative) form encoding, as shown in Figure 1 circuit structure It is possible to implement the decoding function.
  • the syntax elements level and mvd will have larger values, so the decoding process will be followed by a suffix.
  • the suffix is a number of bypass encoding modes bin, and finally a bin mode (plus sign).
  • the form is encoded.
  • the suffix is decoded, the circuit structure shown in FIG. 2 can be employed.
  • the Map-last pair can be directly used to implement the bin unit without decoding bypass mode.
  • the structure shown in Figure 1 is used. This only needs to output the output of the normal encoding mode encoding bin unit as the final output. The output can be.
  • a string of normal encoding mode bins which occupy a small amount of components in a macroblock, therefore, it can be processed without special acceleration.
  • the decoding process uses a beat to decode a bin. This case can be directly used to decode the normal coding mode bin unit in Fig. 1.
  • the coding interval rLPS corresponding to the small probability symbol LPS is not directly obtained by looking up the two-dimensional table 2
  • a set of four values in the two-dimensional table is obtained by indexing the value of the state of 6 bits (where the state takes 64 cases, and the range of 2 bits takes 4 cases, so that state and range are used).
  • the two bits are jointly indexed and have a total of 256 rLPS values.
  • only the state is used for the first index, and a set of 4 rLPS is obtained, corresponding to the 2 bits of the range and the 4 rLPSs when the second index is used.
  • These 4 values need to be prepared in the previous shot, and are recorded as rlpsg, which is called probabilistic model index information.
  • the value of rLPS is selected by the multiplexer MU in rlpsg using 2 bits of range.
  • the decoding unit includes a unit for decoding a normal encoding mode bin, that is, a unit for decoding a first normal encoding mode bin and a unit for decoding a second normal encoding mode bin, and a renormalization processing module and a multiplexer.
  • MUX a unit for decoding a normal encoding mode bin
  • the input information rlpsg of the unit for decoding the normal coding mode bin includes information for decoding the context of the corresponding bin, specifically obtained by looking up the table by the value index of the state of 6 bits, and the value can be prepared in the previous shot. it is good. It can be seen that after the first bin decoding is completed, the updated mnge_new and offsetjiew need to be renormalized, and the value obtained after the range and offset update renormalization will be used as the input for decoding the second bin.
  • decoding the second bin may use the same probability model as the first bin, it is also possible to use another probability model. Therefore, in Figure 3, the probability model used in the first bin is updated with a multiplexer MUX and The rlpsg prepared for the second bin decoding and the state_2-rlpsg corresponding to the other probability model are selected to decode the rlpsg that the second bin decoding really needs. Which one is selected rlpsg is determined by the control signal rb2_state_l_ns, which will be described later.
  • the probability model used by the first bin is updated and the process of preparing rlpsg for the second bin decoding and the decoding of the first bin synchronization are completed. It is not necessary to completely decode the first bin and then update its context probability model.
  • One is the update value stateljns_iiMPS of statel when the first bin appears MPS, and the four rLPS values statel_ns_iflVDPS-rlpsg obtained from the index of this update value, as a set of probability models The index information; the other is the first bin when the LPS occurs, the statel update value statel_ns_ifLPS, and the four rLPS values statel_ns_ifLPS_rlpsg obtained from the updated value index, as another set of probability model index information .
  • This calculation process is simultaneous with the process of decoding the first bin, so critical path delays can be saved.
  • the updated rlpsg is selected as the entry information of the next-level decoding unit in the two groups of statel-ns-ifMPS-rlpsg and statel-nsfLPS-rlpsg (ie, the first bin) Decoding unit The updated probabilistic model index information). If the second bin is decoded and the probability model used to decode the first bin is the same, the multiplexer selects the rlpsg obtained by the first bin decoding update as the ripsg-2 required for the second bin decoding. Otherwise, multiplexing The controller selects another state- 2 rlpsg prepared by the probability model as the rlpsg-2 required for the second bin decoding.
  • the decoding process of the bypass coding mode bin in FIG. 2 will be described below by taking the decoding of the two bypass coding modes bin as an example.
  • the corresponding cascaded two decoding single bypass coding mode bypass bin secondary tree structure is shown in Figure 4, the structure includes two decoding units, that is, decoding the first bypass bin unit and decoding the second bypass The unit of bin.
  • the decoding of the bypass mode is very simple compared to the normal coding mode. It does not involve the probability model information.
  • decoding units two units of the decoding normal encoding mode bin shown in FIG. 1 and the unit shown in FIG. 2 are exemplified.
  • Two units of decoding bypass mode bin may be more units), and a set of control signals are designed to coordinate the work between these decoding units, and the decoding output bin obtained by the decoding unit determines the final output result. Includes interval value and offset value information for the final output.
  • decoding of all syntax elements can be done by multiplexing the four units.
  • the four decoding units are included, which specifically includes: decoding a unit of the first normal coding mode bin, and decoding the second The unit of the normal encoding mode bin. Decode the first bypass encoding mode bin unit and decode the second bypass encoding mode bin unit.
  • the signal range, offset is the range of the decoding shot entry
  • offset value, range_up, offset_up is the range and offset value of the decoded beat exit.
  • Ctxl, Ctx2 correspond to two probability models that may be used by bins of two normal coding modes; wherein, when two bins share a probability model, Ctx2 is idle;
  • the signals Rangejiew and offset_new are the updated values of range and offset after decoding a bin, respectively.
  • the signals Regular—binl, Regular—bin2, Bypass—binl, Bypass and bin2 are the decoded outputs of each decoding single bin module.
  • All control signals include dec-mode, regbinnum, rb2-state-1st-ns, sign 1-exist, Sign2_exist, dec_bp_num.
  • dec-mode (decoding mode) control signal called the first control signal: This control signal is 2 bits, which takes the value 00 or 01 or 10:
  • the suffix EG Exponential Columbus code
  • the suffix EG is decoded corresponding to the current decoding beat, that is, the decoding of the bypass encoding mode bin is performed, and the EG further includes its own prefix and The suffix, dec-mode values 01 and 10 respectively correspond to the decoding of these two cases.
  • the prefix of the EG is a unary code, that is, a number of codewords of 1 plus 0, and the decoding ends when the solution bin is 0.
  • the total number of bins in the suffix of the EG is determined by the number of 1s in the prefix of the EG. .
  • dec_mode 10
  • dec_bp_rmm a signal (ie, dec_bp_rmm) is needed to determine the bins that need to decode several bypass coding modes in the current decoding, and the current value in the dec mode is 01.
  • the end of the bin value of the bypass encoding mode in the decoding shot is 0.
  • regbinnum decoding the number of normal encoding mode bins
  • the control signal is 1 bit, valid when dec_mode takes the value 00, and regbinnum takes 1 to indicate that the current decoding is fixed decoding a normal encoding.
  • the mode of the bin, the first branch of the secondary tree structure of the two normal coding mode bins is called within one beat, and the regbinnum takes 0 to call the second branch of the secondary tree structure of the two normal coding modes bin. , that is, determining the currently decoded unit according to the control signal;
  • regbinnum takes 1 because the decoding is a shot of one bin.
  • the solution is automatically terminated by 0. They all call the secondary tree structure of decoding the two normal encoding modes bin in the whole beat, and regbinnum takes 0.
  • the control signal called the third control signal: This control signal is 1 bit, and the secondary tree of the two normal coding modes bin is decoded within the entire call.
  • the structure ie, dec mode is 00, regbinnum is 0, indicating whether the context probability model used to decode the second normal coding mode bin and the context probability model used to decode the first normal coding mode bin are the same. A value of 1 indicates that it is the same context probability model.
  • signl_exist, sign2—exist (the first unit that decodes the normal bin is cascading positive or negative No., the second decoding unit of the normal bin is cascading positive and negative) control signal, called the fourth control signal:
  • These two control signals are 1 bit, decoding two normal encoding modes bin within one call
  • the secondary tree structure indicates whether a sign information needs to be decoded in this shot: When decoding the mvd and level prefixes, it is necessary to decode the sign, signl_exist, sign2__exist are set to 1, when decoding map_last Signl__exist, sign2—exist are set to 0 without decoding the sign.
  • dec_bp_num (number of decoding bypass mode bins) control signal called the fifth control signal:
  • the control signal has a total of 1 bit, when the dec mode is 10, that is, when the suffix of the EG is decoded, it is valid, and the current decoding is determined. There are several bins that need to decode several bypass coding modes.
  • decoding of all syntax elements can be accomplished with two units that decode the normal coding mode bin and two units that decode the coding mode bin.
  • the decoding situation within each beat can be determined, and multiple bins can be simultaneously implemented in one shot.
  • the first case is to decode the prefix part of level or mvd:
  • dec_mode is 00, indicating that the normal encoding mode bin is decoded within the current shooting.
  • Regbinnum is 0, indicating that the current call calls the two branches of tree a in Figure 6. If the first branch decoding result is 0, then the second branch is not used; otherwise the output of the first branch range_new, offset_new is sent to the input of the second branch.
  • both mvd and level decoding need to be followed by symbolic information.
  • signl_exist and sign2_exist are both 1, indicating that the decoding absolute value ends with the need to decode a bypass bin, that is, the symbol information.
  • the first branch of tree a indicates that the mvd decoding value is 0, without symbol information, and entering the second branch indicates that the decoded value is greater than 0, so the control signal of this beat is signl-exist Is 0, sign2—exist is 1.
  • Rb2 - state - l_ns is determined by the current decoding is the first few shots (that is, the first bin that decodes mvd or level). Dec-bp-num has no effect at this time. And in this case the output of the first branch of tree 6 of Figure 6 is taken as the input to the first branch of tree b; the output of the second branch of tree a is the input of the second branch of tree b.
  • the processing of the output unit is: If the first branch of the tree a decodes the bin to 0, the final output of the range one new, offset_new is the output of the first branch of the tree a, otherwise The second branch of tree a decodes the bin to 0, and then needs to decode a symbol, and finally output Range—new,offset—new is the output of the second branch of tree b. Otherwise, if the second branch of tree a decodes bin to 1, the next beat continues to decode its absolute value, and finally the range-new, offset one is output. New is the output of the second branch of tree a.
  • the processing of the output unit is: If the first branch of the tree a decodes the bin to 0, then a symbol is decoded, and the final output mnge_neW , 0 ffset_new is the first of the tree b. The output of the branch, otherwise if the second branch of tree a decodes the bin to 0, then a symbol needs to be decoded, and the final output of range-new, offset-new is the output of the second branch of tree b. Otherwise, if tree a The second branch decodes the bin to 1, and the next beat continues to decode its absolute value. The final output of range one new, offset_new is the output of the second branch of tree a.
  • the second case is to decode the prefix portion of the level or mvd suffix Columbus code:
  • dec_mode is 01, indicating the current intra-code decoding bypass coding mode bin.
  • regbinnum, signl_exist, sign2_exist, rb2—state—l—ns, dec—bp—num have no effect.
  • the output of the first branch of tree 6 of Figure 6 is taken as the input to the second branch of tree b.
  • the processing of the output unit is: if the first branch of the tree b decodes the bin to 0, then the final output range is new, offset_new is the output of the first branch of the tree b, otherwise the final output is range-new, offset-new Is the output of the second branch of tree b.
  • the third case is the suffix part of the suffix Columbus code that decodes level or mvd:
  • dec_mode is 10, indicating the current intra-code decoding bypass coding mode bin.
  • regbinnum sign 1 _exist, sign2_exist, rb2—state—l-ns have no effect.
  • Dec_ bp — num is determined by the current number of beats (that is, the number of bins that decode the suffix of the Columbus code). The processing of the output unit is: If de C _bp - nU m is 0, indicating that the current beat decodes 1 bypass bin, the final output range_new, offset_new is the output of the first branch of tree b, otherwise the final output is Range one new, offset one new is the output of the second branch of tree b.
  • the fourth case is decoding map_last pairs:
  • the dec_mode is 00, indicating that the normal encoding mode bin is decoded within the current shooting.
  • Regbinnum is 0, indicating that the current call calls the two branches of tree A of Figure 6. If the first branch decoding result is 0, then the second branch is not used; otherwise the output of the first branch, rangejiew, offset, new is sent to the input of the second branch. This situation is very similar to case 1, except that there is no symbolic information. So signl-exist, sign2-exist is 0. In this case rb2—state—1—ns is always 0 because the probability models used by last and map are always different. Dec-bp-num has no effect.
  • the processing of the output unit is: If the first branch of tree a decodes bin to 0, the final output range-new, offset_new is the output of the first branch of tree a, otherwise the final output is range new, offset one new is the output of the second branch of tree a. .
  • the fifth case is to decode each bin of other syntax elements
  • the bins of the other syntax elements are normal encoding mode bins, and one bin is decoded by one beat.
  • dec_mode is 00, indicating that the normal encoding mode bin is decoded within the current shooting.
  • Regbinnum is 1, indicating that the current shot only calls the first branch of tree A of Figure 6. Processing the output unit is: the final output range- new, offset-new is the output of a first branch of the tree 0
  • the structure using the secondary tree is mainly taken as an example.
  • the present invention can also adopt a three-level tree or a higher-level circuit design structure.
  • the higher the level of the circuit design structure the depth of the combined circuit. The higher, the longer the critical path.
  • the present invention can greatly speed up the decoding speed of CABAC compared with the existing CABAC core decoding implementation. At the same time, hardware resource consumption is also reasonable.

Description

CABAC解码系统及方法 技术领域
本发明涉及视频编码技术领域,尤其涉及一种 CABAC解码系统及方法。 背景技术
CABAC (Context-based Adaptive Binary Arithmetic Coding, 基于上下文 的自适应算术编码) 是最新国际视频编码标准 H.264中所采用的两套熵编码 方案之一,其与另外一套熵编码方案 CAVLC ( Context-based Adaptive Variable Length Coding, 基于上下文的自适应变长编码器) 相比, 具有更好的压缩效 率。
熵编码器其功能在于依照宏块扫描顺序将每个宏块中所有的语法元素的 值按固定次序依次编码到码流中。所述的宏块是视频图像编码的基本单元块。 待编码的每幅图像均需要被划分成为若干宏块后再进行编码处理。 视频编码 标准 H.264中支持两种基本的宏块扫描顺序。
CABAC编码过程包括三个主要部分: 二值化, context (上下文)概率模 型的选择和更新以及二值算术编码。
其中, 所述的二值化过程是对语法元素进行编码前的预处理过程。 每个 语法元素的值根据一定的规则映射成为一串 0和 1组成的二值字符串。 所述 映射规则因语法元素的不同而不同。
在二值算术编码器中还需要采用待编码 bin ( CABAC编解码基本的比特 位)的概率估计值 PLPS进行编码,其中,所述 context概率模型即是为计算 PLPS 而设。 具体为: 在编码每一个 bin之前, 都要估计其为 0和为 1的概率, 如果其 为 0的概率大一些, 那么 MPS (大概率符号标志) 就是 0, LPS (小概率符号 标志)就是 1 ; 否则, MPS就是 1, LPS就是 0。 PLPS就是 bin的值为 LPS的概率 估计值, 它的取值范围在 [0,0.5]之间。 CABAC编码过程中需要为每个 bin都设 置了相对应的 context概率模型。 每个 context概率模型包括一个 state (状态) 值, 一个 MPS值, state指示的即 PLPS。 在编码过程中, 会用到已编码完毕的 相邻左宏块和上宏块的信息计算编码当前宏块的 bin所需要的 context概率模 型, 其计算规则在 H.264标准文档 JVT-G050, "Draft ITU-T Recommendation H.264 and Draft ISO IEC 14496-10 WC" in JVT of ISO/IEC doc, T.Wig,Ed., Pattaya, Thailand, Mar.2003中有详细的规定。 选择好 context概率模型后, 即 可开始对 bin进行二值算术编码。
所述的二值算术编码过程的基本思想是用 [0,1] 中的实数来编码信源。 实数的长度和信源字符序列的概率有关。 算术编码过程中要用到两个基本的 参数, 具体为: 各符号的概率估计值和当前区间。 编码的具体方法是: 首先 定义当前区间为 [0,1], 然后对每个 bin做编码或解码, 对每个 bin的编解码不断 重复如下过程- a、将当前区间分割成若干子区间, 各个子区间的长度正比于各个可能输 入的符号的概率估计值;
b、 将对应实际出现的符号的子区间定义为新的当前区间;
上述编码过程中, 由于反复分割当前区间越来越小, 为了保持计算精度, 在步骤 b所述过程结束后如果当前区间长度小于 0.5时会进行重正化过程, 以 保证编码下一个符号时候当前区间长度总是不小于 0.5。
下面将对重正化的处理过程迸行说明:
1、 计算小概率符号的概率值 F\PS; .
2、计算小概率符号 LPS和大概率符号 MPS对应的编码区间 Ru ^和 RMPS具 体如下:
RLPS = angej * PLPS;
R PS = Rangei - RLPS;
其中, Rang 是指解码区间值;
3、 计算新的区间:
如果当前输入 bin对应的是 LPS 的值, 则:
angei+1 = RLPS;
Offseti+1 = Offsetj + RLPS;
其中, Offseti是指解码过程中的偏移值;
如果当前输入 bin对应的是 MPS的值, 则:
Rangei+i = RLPS;
4、 更新小概率符号的概率值 l PS
5、 输出解码结果, 并重正化编码区间 Rangei+1
CABAC实现过程是全整数精度的运算。 当前子区间下界为 Offset^ 子区 间长度为 Range;都保留 9比特整数精度。重正化过程保证 Range;的最高比特第 8 比特始终是 1。
从上面的式子中可以看出, 在二值算术编码器中需要用到的数值是 angei * P 在 CABAC中为了降低实现复杂度, 并不直接计算小概率符号 的概率值 PLPS和 Rang 的乘积, 而是直接把计算好的值存储在一张二维表中 直接通过查表得到。 表的索引包括 6比特 state值和 2比特 qCodlRangeldx值, 所 述 6比特值来源于 context概率模型对应 Ρ^,所述 2比特值来源于 Rang 的第 7 比特和第 6比特, 即除最高第 8比特外的最高两比特。 6比特 state值取值范围 0-63, 2比特 qCodlRangeldx值取值 0〜3。
编码完毕后, 需要根据当前编码的 bin的值对 context概率模型进行更新。 而 MPS的值仅在编码前 state值为 0且当前 bin是 LPS是才翻转, 即原来是 0则变 成 1, 原来是 1则变成 0, 否则保持不变。
CABAC算法是 2003年 JVT(ITU-T国际视频组织 ISO的 MPEG的联合小组) 会议上正式成形推出的。迄今为止, 相应的 CABAC的解码器主要是纯软件解 码和软件解码与硬件解码相结合的结构。
目前的一种是纯软件 CABAC解码器, 纯软件解码是按照算法流程在 PC 机上执行解码过程。 因而, 纯软件解码器实际就是 CPU担负起全部的 CABAC 解码任务, 解码速度极慢, 无法满足实时应用场合的需要。
目前釆用的另一种方案中含有软硬件结合的解码器结构, 其中, 硬件部 分包括单 bin的解码硬件结构,该结构中,对于每个 bin的解码采用 one cycle one bin (一个周期一个 bin)硬件解码结构。
可以看出, 在该方案中采用 one cycle one bin硬件加速方法比之第一种实 现方式中提供的纯软件的解码方案, 解码效率大大提高, 然而, 相应的编码 效率仍然有继续提高的空间。
发明内容
本发明的目的是提供一种 CABAC解码系统及方法, 从而可以大大提高 CABAC解码效率, 有效改善 CABAC的编解码性能。
本发明的目的是通过以下技术方案实现的:
本发明提供了一种 CABAC解码系统, 包括:
至少一个解码单元组; 所述的解码单元组包括 N个相互连接的解码单元; 第 M个解码单元接收解码 bin需要的参数信息以及待解码的比特流, 对待 解码的比特流中的 bin进行解码,得到当前解码单元 bin的解码结果, 并把得到 更新后的参数信息发送给第 M+1个解码单元;
其中, 所述 N为大于等于 2的整数,所述 M为大于等于 1的整数, 且最大值 为 N— 1。
所述的解码单元组还包括输出单元, 所述第 M个解码单元 bin解码结果和 更新后的参数信息还发送给所述输出单元, 其中:
输出单元, 用于接收控制信号、 各个解码单元发送的解码结果以及更新 后参数信息, 在各个解码单元输出的更新后的参数信息之间进行选择, 通过 控制信号从更新后的参数信息中选择所述解码单元组的输出值。
所述的解码单元组包括- 解码正常编码模式 bin的单元组和 /或解码旁路编码模式 bin的单元组。 所述参数信息为区间值、 偏移值以及各个 bin单元的概率模型值。
当所述的解码单元包括解码正常编码模式 bin的单元时, 第 M个解码正常 编码模式 bin的单元输出更新后的区间值和偏移值,发送给第 M+1个解码正常 编码模式 bin的单元作为输入区间值和偏移值信息。
所述的系统还包括重正化处理模块, 用于对第 M个解码正常编码模式 bin 的单元的输出的区间值和偏移值进行重正化处理,发送给第 M+1个解码正常 编码模式 bin的单元或解码旁路编码模式 bin的单元作为输入区间值和偏移值 息。
所述的系统还包括多路选择器, 所述的多路选择器的输入为第 M个解码 正常编码模式 bin的单元输出的更新后的概率模型和新的概率模型, 输出为两 输入的概率模型中选择的一种。
当所述的解码单元包括解码旁路编码模式 bin的单元时, 第 M个解码旁路 编码模式 bin的单元或解码正常编码模式 bin的单元输出的更新后的区间值和 偏移值,发送给第 M+1个解码旁路编码模式 bin的单元作为其输入区间值和偏 移值。
为实现本发明目的, 本发明还提供一种 CAB AC解码方法,该方法基于至 少一个解码单元组实现, 所述的一个解码单元组包括 N个相互连接的解码单 元, 所述方法包括: 第 M个解码单元接收解码 bin的参数信息和控制信号, 根据所述参数信息 对输入的待解码的比特流进行解码, 输出 bin的解码结果, 并把得到更新后的 参数信息发送给第 M+ 1个解码单元;
其中,所述 N为大于等于 2的整数,所述 M为大于等于 1的整数,且最大值 为 N— 1。
所述的 CABAC解码方法, 还包括下列步骤:
第 M个解码单元 bin解码结果和更新后的参数信息发送给输出单元, 输出 单元根据控制信号以及所述 bin的解码结果, 在各个解码单元输出的更新后的 参数信息之间进行选择, 通过控制信息和解码 bin的值来从更新后的参数信息 中选择所述解码单元组的输出值。
所述进行解码包括: 对正常编码模式 bin进行解码和 /或对旁路编码模式 bin进行解码。
所述参数信息为区间值、 偏移值以及各个 bin单元的概率模型值。
所述的 CABAC解码方法, 还可以包括下列步骤:
所述的解码单元根据输入的第一控制信号确定当前的解码处理为采用正 常编码模式 bin解码处理还是采用旁路编码模式 bin解码处理。
所述的 CABAC解码方法, 当确定所述解码单元解码正常编码模式 bin时, 还可以包括下列步骤- 根据引入的第二控制信号确定当前进行解码处理的解码单元。
所述的 CABAC解码方法, 当确定所述解码单元解码正常编码模式 bin时, 还可以包括下列步骤:
所述单元根据引入的第三控制信号确定选择第 M个 bin解码的单元更新 后的概率模型或者新的概率模型作为第 M+1个 bin所需的概率模型进行解码 处理。
所述的 CABAC解码方法, 可以包括下列步骤:
在第 M个解码单元解码的同时并行计算出第 M个解码单元更新后的概率 模型, 并根据所述的更新后的概率模型导出概率模型索引信息, 在第] VI个解 码单元解码完毕后准备好更新的概率模型索引信息和外部输入的概率模型索 引信息中选择其中之一作为第 M+1个解码单元所需要的更新后的概率模型索 引信息。 所述的 CABAC解码方法, 当确定所述解码单元解码正常编码模式 bin时, 还可以包括下列步骤:
所述单元根据引入的第四控制信号确定在当前解码周期内是否需要解码 正负号信息。
所述的 CABAC解码方法, 当确定所述解码单元解码旁路编码模式 bin时, 还可以包括下列步骤- 根据所述第一控制信号的取值确定对指数哥伦布码的前缀或后缀进行解 码处理, 且当解码前缀时, 解码到旁路编码模式 bin值为 0时解码结束; 当解 码后缀时, ^艮据引入的用于确定当前解码拍内需要解码的旁路编码模式 bin的 数量的第五控制信号, 确定需要解码的旁路编码模式 bin的数量。
所述的 CABAC解码方法, 还可以包括下列步骤- 在对 bin解码处理过程中, 如果解码带有符号位, 解码结果还包括符号位 信息。
所述的 CABAC解码方法, 还可以包括下列步骤:
通过重正化处理模块对更新后的区间值和偏移值信息进行重正化处理, 并获得重正化处理后的区间值和偏移值, 作为该解码单元的最后更新值, 用 于同一拍内其它解码单元输入或者该拍内最终输出的区间值和偏移值。
所述相互连接为二叉树型连接或串行连接。
由上述本发明提供的技术方案可以看出, 本发明与现有技术的一个周期 一个 bin的解码结构相比具有更高的解码效率。 同时, 本发明不仅实现了高速 解码, 而且, 本发明还使得解码过程中的硬件资源的消耗保持在一个合理的 范围内。 因此, 本发明提供了一种高效、 合理的解码系统。
附图说明
图 1为解码正常编码模式 bin的二级树解码结构示意简图;
图 2为解码旁路模式 bin的多级树电路解码结构示意简图;
图 3为级联两个解码单个正常编码模式 bin的二级树结构示意图; 图 4为级联两个解码单个旁路编码模式 bin的二级树结构示意图; 图 5为控制信号控制两个解码正常编码模式 bin的单元以及两个解码旁路 编码模式 bin的单元的结构示意图;
图 6为解码过程树状示意图。 具体实施方式
本发明的核心是利用 CABAC解码的特点, 提供一种多级 bin的 CABAC解 码硬件结构,使得硬件在一个 cycle (时钟周期)中可以完成 2个甚至更多的 bin 的解码, 实现算术解码单元的并行性。 进而使得本发明可以充分发挥硬件解 码效率高的优势。
本发明中, 为了加快解码速度, 设计了一拍 (即一个时钟周期) 内解码 多个 bin的多级树解码结构。也就是采用多个(至少两个)解码一个 bin需要的 单元, 并在多级解码树结构中将原来解码一个 bin的单元级联起来, 从而实现 一拍内可以解码多个 bin,而在现有技术中一拍内解码一个 bin的解码结构中仅 有一个所述单元。
在 CABAC解码中, 需要频繁解码的两种语法元素 (即参数信息)是 mvd (运动矢量)和 level (残差系数) 以及 map— last (位置信息), 所以针对这些 语法元素的解码是要用硬件加速的重点。
mvd, level的绝对值二值化 bin串包括前缀和后缀哥伦布码。 前缀是一元 码, 映射规则是 0映射到 0, 1映射到 10, 2映射到 110, 3映射到 1110...。 后缀 哥伦布码包括自己的前缀和后缀部分。 哥伦布码的前缀是一元码; 其后缀是 一个二值化 bin串, 其长度由哥伦布码的前缀决定, 例如 mvd的后缀是三阶指 数哥伦布码, 哥伦布码的后缀长度是前缀长度加 2; level的后缀是一阶指数哥 伦布码, 哥伦布码的后缀长度是前缀长度减 1。 对非零 mvd, 其绝对值之后都 带有 1个 bin指示其符号信息; 对于所有 level (实际上是非零残差系数绝对值 减 1 ), 其绝对值二值化 bin串后都带有 1个 bin指示其符号信息。
map— last的二值化如下: map,last成对出现。它们都是 1个 bin。 map如果是 0, 则没有 last信息; 否则, map后带有 1个 bin的 last信息。
为了实现对 mvd, level还有 mapjast的快速解码, 本发明提供了两种基 本的多级 bin解码结构, 下面将分别进行说明。
其中, 第一种结构如图 1所示, 该结构仅以一拍内解码两个 bin为例, 结 构中设置有解码两个正常编码模式 bin的单元, 且每个单元后面都带有解码旁 路编码模式 bin的单元。 更简单的示意图见图 6树 。 该结构可以用于加速解码 mvd, level的前缀和 map— last对部分:
该结构的入口信息包括用于算术编解码的解码区间值 Rang、偏移值 Offset 以及待解码的码流信息 bits, 还有用来表示 context信息的 stateO和 statel , 分别 用来标志两个 bin解码过程中可能会用到的上下文信息。
该结构的输出信号有更新的 Rang和 Offset, 即 Rang— up和 Offset—up, 以及 更新的 context信息, 即 state—upO和 state—upl信息,还有解码所述码流信息得到 的两个 bin的值 bin0、 binl, 如果解码符号位, 那么输出的还有符号位的信息 标志 flag 0
第二种结构中设置有解码两个旁路编码模式 bin的单元, 可对 mvd, level 的后缀部分快速解码。其结构如图 2所示, 更简单的示意图见图 6树13。该结构 可以完成功能是采用 Golomb (哥伦布码) 的方法解码系数, 这种解码电路的 特点是不需要上下文的维护信息, 这是 Golomb解码的前缀或后缀的实现电 路。 电路中包含 n个 bypass (旁路编码模式)解码电路, 所述的 n大于等于 2, 即 n的值可以根据需要自由设定, 例如可以设定为 2、 3、 4或 5等等。
mvd和 level二值化后得到的字符串包括前缀和后缀。 通常语法元素 level 和 mvd的取值较小, 只有前缀, 前缀是若干个正常编码模式 bin, 最后带一个 旁路模式编码的 bin (正负号) 形式编码的, 如图 1所示的电路结构就能够实 现解码功能。
有些情况语法元素 level和 mvd会有较大的取值, 这样解码过程便会带有 后缀, 所述后缀是若干个旁路编码模式 bin, 最后也带一个旁路模式的 bin (正 负号)的形式来编码的, 此时, 如果解码后缀, 则可以采用图 2所示的电路结 构。
Map— last对可直接用不带解码旁路模式编码 bin单元的实现, 如采用图 1 所示的结构实现, 这只需要输出时选择解码正常编码模式编码 bin单元的输出 作为这一拍最终的输出即可。
对于除了 mvd, level和 map— last之外的其他语法元素二值化后都是一串正 常编码模式 bin, 其在一个宏块内所占的分量很少, 因此, 其可以无需特别加 速, 相应的解码过程釆用一拍解码一个 bin即可。 这种情况直接用图 1中一个 解码正常编码模式 bin单元即可。
其中, 对于图 1所示的结构, 如果是同时解码 2个 bin, 而且其中涉及到概 率模型的更新, 下面详细的说明这部分电路的具体实现及工作原理。
本发明中,小概率符号 LPS对应的编码区间 rLPS不是直接查二维表 2得到 的, 而是先由 6比特的 state的值索引得到二维表中一组 4个 的值(其中, state取值 64种情况, range的 2个比特取值 4种情况,这样用 state和 range的 2个比 特作联合索引一共有 256个 rLPS值, 这里仅用 state作第一次索引, 得到一组 4 个 rLPS, 对应再用 range的 2个比特作第二次索引时的 4个 rLPS), 这 4个值需要 在前一拍内需要准备好, 记作 rlpsg, 称为概率模型索引信息。 在当前解码拍 直接用 range的 2个比特在 rlpsg中通过多路选择器 MU 选出 rLPS的值。
相应的级联两个解码单个正常编码模式 bin的二级树结构如图 3所示。 其 中, 所述的解码单元包括解码正常编码模式 bin的单元, 即解码第一个正常编 码模式 bin的单元和解码第二个正常编码模式 bin的单元,以及重正化处理模块 和多路选择器 MUX。
所述的解码正常编码模式 bin的单元的输入信息 rlpsg包含了解码对应 bin 的 context的信息, 具体为由 6比特的 state的值索引通过查表得到的, 这个值在 前一拍内就可以准备好。 可以看到, 第一个 bin解码完成后, 需要对更新的 mnge—new、 offsetjiew进行重正化处理, range、 offset更新重正化后获得的值 将作为解码第二个 bin的输入。
由于解码第二个 bin可能用和第一个 bin相同的概率模型,也可能用另外的 概率模型, 因此, 在图 3中, 用一个多路选择器 MUX在第一个 bin所用概率模 型更新并且为第二个 bin解码准备的 rlpsg和另外的概率模型对应的 state— 2—rlpsg中选择解码第二个 bin解码真正需要的 rlpsg。具体选择哪一个 rlpsg 由控制信号 rb2—state—l— ns决定, 后面将对该控制信号进行说明。
为了减小延迟, 第一个 bin所用概率模型更新并且为第二个 bin解码准备 rlpsg的过程和解码第一个 bin同步完成。并不需要第一个 bin完全解码完成再对 其上下文概率模型更新。 预先计算好两组可能的结果: 一个是第一个 bin出现 MPS时, statel的更新值 stateljns— iiMPS,以及由此更新值索引得到的 4个 rLPS 值 statel一 ns_iflVDPS一 rlpsg, 作为一组概率模型索引信息; 另一个是第一个 bin 出现 LPS时, statel的更新值 statel— ns—ifLPS, 以及由此更新值索引得到的 4个 rLPS值 statel— ns—ifLPS_rlpsg, 作为另一组概率模型索引信息。 这个计算过程 和解码第一个 bin的过程是同时的, 所以可以节省关键路径延迟。 根据解码出 的第一个 bin的值直接在 statel— ns一 ifMPS— rlpsg和 statel— ns fLPS一 rlpsg这两组 中选择更新后的 rlpsg作为下一级解码单元的入口信息(即第一个 bin解码单元 的更新后的概率模型索引信息) 即可。 如果解码第二个 bin和解码第一个 bin 所用概率模型相同, 多路选择器则选择第一个 bin解码更新得到的 rlpsg作为第 二个 bin解码所需的 ripsg一 2, 否则, 多路选择器则选择另外一个概率模型准备 的 state— 2—rlpsg作为第二个 bin解码所需的 rlpsg— 2。
下面再以针对两个旁路编码模式 bin的解码为例对图 2中的旁路编码模式 bin的解码处理过程进行说明。 相应的级联的两个解码单个旁路编码模式 bypass bin的二级树结构如图 4所示, 该结构中包括两个解码单元, 即解码第 一个 bypass bin的单元和解码第二个 bypass bin的单元。旁路模式的解码相对正 常编码模式非常简单, 其不涉及到概率模型信息, 解码时直接比较 range和 2*offset, 如果 2*offset>=range, 解码得 1, 否则解码得 0。 而且, 在解码完成 后, offset左移一位即完成重正化步骤, range保持原值不变。
本发明中,为了使得所有语法元素的解码可以复用尽可能少的硬件资源, 例化了 4个解码单元(图 1所示的两个解码正常编码模式 bin的单元, 和图 2所 示的两个解码旁路模式 bin的单元, 当然, 也可能为更多个单元), 并且设计 了一组控制信号协调这些解码单元之间的工作, 并结合解码单元所得解码 bin 决定最后的输出结果, 包括一拍最终输出的区间值和偏移值信息。 这样所有 语法元素的解码都可以复用这 4个单元而完成。
控制信号控制 4个解码单元解码的示意图参见图 5所示,在所述图 5中,包 括四个所述的解码单元, 具体包括: 解码第一个正常编码模式 bin的单元, 解 码第二个正常编码模式 bin的单元。解码第一个旁路编码模式 bin的单元和解码 第二个旁路编码模式 bin的单元。 在图 5中:
信号 range, offset是解码拍入口的 range, offset值, range— up, offset— up 是解码拍出口的 range, offset值。 Ctxl, Ctx2分别对应两个正常编码模式的 bin 可能用到的两个概率模型; 其中, 在两个 bin共用一个概率模型的情况 Ctx2是 闲置不用的;
信号 Rangejiew和 offset— new分别是解码某个 bin之后 range和 offset的更新 值。
信号 Regular— binl, Regular— bin2, Bypass— binl, Bypass一 bin2分别是各个解 码单 bin模块的解码输出。
所有控制信号包括 dec— mode, regbinnum, rb2— state— 1—ns, sign 1— exist, sign2_exist,dec_bp_num。
下面将分别对所述控制信号的功能和工作方式进行说明:
( 1 ) dec— mode (解码模式)控制信号, 称为第一控制信号: 这个控制信 号 2比特, 取值 00或 01或 10:
取值 00时, 对应当前解码拍需要解码正常编码模式 bin;
取值 01或者 10时, 对应当前解码拍需要解码 mvd和 level二值化后得到的 后缀 EG (指数哥伦布码), 即进行旁路编码模式 bin的解码, 所述的 EG还包括 自己的前缀和后缀, dec一 mode取值 01和 10分别对应这两种情况的解码。 EG的 前缀是一元码, 也就是若干个 1加一个 0的码字, 解码碰到解出 bin为 0时结束; EG的后缀中 bin的总数目是由 EG的前缀中 1的个数确定的。
所以在 dec— mode取值 10时还需要一个信号(即后面的 dec— bp— rmm)来决 定当前解码拍内需要解码几个旁路编码模式的 bin,而在 dec一 mode取值 01时当 前解码拍内解出旁路编码模式的 bin的值为 0时结束。
(2) regbinnum (解码正常编码模式 bin数目)控制信号, 称为第二控制 信号: 该控制信号 1比特, 在 dec— mode取值 00时有效, regbinnum取 1指示当前 解码是固定解码一个正常编码模式的 bin, 调用一拍内解码两个正常编码模式 bin的二级树结构的第一分支, regbinnum取 0调用整个一拍内解码两个正常编 码模式 bin的二级树结构的第二个分支, 即根据该控制信号确定当前解码的单 元;
对除了 mvd和 level以及 map— last之外的语法元素, 由于解码是一拍一个 bin, 所以 regbinnum取 1。对于 mvd和 level以及 map— last, 都是解到 0自动结束, 它们都调用整个一拍内解码两个正常编码模式 bin的二级树结构, regbinnum 取 0。
(3 ) rb2_state_l_ns (解码第二个正常 bin的概率模型选择控制) 控制信 号, 称为第三控制信号: 这个控制信号 1比特, 在调用整个一拍内解码两个正 常编码模式 bin的二级树结构(即 dec一 mode取值 00, regbinnum取值 0)时有效, 指示解码第二个正常编码模式 bin所用的上下文概率模型和解码第一个正常 编码模式 bin所用的上下文概率模型是否是同一个, 取值为 1则表示是同一个 上下文概率模型。
(4) signl_exist, sign2— exist (第一个解码正常 bin的单元是否级联正负 号, 第二个解码正常 bin的单元是否级联正负号)控制信号, 称为第四控制信 号: 这两个控制信号都是 1比特, 在调用一拍内解码两个正常编码模式 bin的 二级树结构时指示是否这一拍内还需要解码一个正负号信息: 在解码 mvd和 level的前缀时是需要解码正负号的, signl— exist, sign2__exist都置 1, 解码 map— last时无需解码正负号的, signl__exist, sign2— exist都置 0。
(5) dec_bp_num (解码旁路模式 bin数目)控制信号, 称为第五控制信 号: 该控制信号共 1比特, 在 dec一 mode取值 10时, 即解码 EG的后缀时有效, 决定当前解码拍内需要解码几个旁路编码模式的 bin。
有了以上的一组控制信号, 用两个解码正常编码模式 bin的单元和两个解 码旁路编码模式 bin的单元就可以完成所有语法元素的解码。 每拍内的解码情 况都可以被确定, 可以实现在一拍内同时多个 bin。
为对本发明有进一步理解,下面对图 5中各控制信号和解码单元电路结合 可能出现的所有情况作详细说明。
第一种情况为解码 level或者 mvd的前缀部分:
这时 dec— mode为 00,指示当前拍内解码正常编码模式 bin。 regbinnum为 0, 指示当前拍调用图 6中树 a的两个分支。如果第一个分支解码结果出来是 0, 则 不用第二个分支; 否则第一个分支的输出 range— new, offset— new送入第二个 分支的输入口。
如果不是解码 mvd的第一拍或者是解码 level,那么 mvd和 level解码完成后 都需要带符号信息。这时 signl— exist和 sign2— exist都是 1,指示解码绝对值结束 后需要再附带解码一个 bypass bin, 即符号信息。
如果是解码 mvd的第一拍,那么树 a的第一个分支表明 mvd解码值为 0,不 带符号信息, 进入第二个分支表明解码值大于 0, 所以这一拍的控制信号 signl一 exist为 0, sign2—exist为 1。 rb2一 state— l_ns由当前解码是第几拍 (也就是 在解码 mvd或者 level的第几个 bin)决定。 dec— bp一 num这时没有作用。 并且这 种情况下图 6树 a的第一个分支的输出作为树 b的第一个分支的输入; 树 a的第 二个分支的输出作为树 b的第二个分支的输入。
如果是解码 mvd的第一拍, 输出单元的处理为: 如果树 a第一个分支解码 出 bin为 0, 则最终输出的 range一 new, offset— new是树 a第一分支的输出, 否则 如果树 a第二个分支解码出 bin为 0, 则需附带解码一个符号, 最终输出的 range— new,offset—new是树 b第二分支的输出, 否则如果如果树 a第二个分支解 码出 bin为 1, 则下一拍继续解码其绝对值, 最终输出的 range— new, offset一 new 是树 a第二分支的输出。
如果是解码 invd的其它拍或者解码 level, 输出单元的处理为: 如果树 a第 一个分支解码出 bin为 0, 则需附带解码一个符号, 最终输出的 mnge_neW0ffset_new是树 b第一分支的输出, 否则如果树 a第二个分支解码出 bin为 0, 则 需附带解码一个符号, 最终输出的 range— new, offset一 new是树 b第二分支的输 出, 否则, 如果如果树 a第二个分支解码出 bin为 1, 则下一拍继续解码其绝对 值, 最终输出的 range一 new,offset—new是树 a第二分支的输出。
第二种情况为解码 level或者 mvd的后缀哥伦布码的前缀部分:
这时 dec_mode为 01, 指示当前拍内解码旁路编码模式 bin。 这时 regbinnum, signl— exist,sign2— exist, rb2— state—l— ns, dec— bp— num都没有作用。 并且这种情况下图 6树 b的第一个分支的输出作为树 b的第二个分支的输入。输 出单元的处理为:如果树 b第一个分支解码出 bin为 0,则最终输出的 range一 new, offset— new是树 b第一分支的输出, 否则最终输出的 range— new, offset一 new是 树 b第二分支的输出。
第三种情况为解码 level或者 mvd的后缀哥伦布码的后缀部分:
这时 dec— mode为 10, 指示当前拍内解码旁路编码模式 bin。 这时 regbinnum, sign 1 _exist,sign2_exist, rb2— state— l—ns都没有作用。 dec— bp— num 由当前解码是第几拍 (也就是在解码哥伦布码的后缀的第几个 bin)决定。 输出 单元的处理为: 如果 deC_bp—nUm是 0, 指示当前拍解码 1个旁路 bin, 则最终输 出的 range—new,offset—new是树 b第一分支的输出, 否则最终输出的 range一 new,offset一 new是树 b第二分支的输出。
第四种情况为解码 map— last对:
这时 dec— mode为 00,指示当前拍内解码正常编码模式 bin。 regbinnum为 0, 指示当前拍调用图 6树 a的两个分支。如果第一个分支解码结果出来是 0, 则不 用第二个分支; 否则第一个分支的输出 rangejiew,offset一 new送入第二个分支 的输入口。 这种情况和情况 1很类似, 只是不带符号信息。 所以 signl一 exist,sign2— exist都是 0。这种情况 rb2—state— 1— ns始终是 0, 因为 last和 map 所用的概率模型总是不一样的。 dec一 bp一 num没有作用。 输出单元的处理为: 如果树 a第一个分支解码出 bin为 0, 则最终输出的 range— new, offset_new是树 a 第一分支的输出, 否则最终输出的 range一 new, offset一 new是树 a第二分支的输 出。
第五种情况为解码其它语法元素的各个 bin;
所述的其它语法元素的 bin都是正常编码模式 bin,采用一拍解码一个 bin。 这时 dec一 mode为 00, 指示当前拍内解码正常编码模式 bin。 regbinnum为 1, 指 示当前拍仅调用图 6树 a的第一个分支。 输出单元的处理为: 最终输出的 range— new,offset—new是树 a第一分支的输出 0
上述本发明中主要以采用二级树的结构为例进行说明, 同样, 本发明还 可以采用三级树或更高级别的电路设计结构, 当然, 电路设计结构的级别越 高, 组合电路的深度也越高, 关键路径也就越长。
综上所述, 本发明与已有 CABAC核心解码实现方案相比可以大大加快 CABAC的解码速度。 同时, 硬件资源消耗也较为合理。
以上所述, 仅为本发明较佳的具体实施方式, 但本发明的保护范围并不 局限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可 轻易想到的变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明 的保护范围应该以权利要求的保护范围为准。

Claims

权利 要 求 书
1.一种 CABAC解码系统, 其特征在于, 包括:
至少一个解码单元组; 所述的解码单元组包括 N个相互连接的解码单元; 第 M个解码单元接收解码 bin需要的参数信息以及待解码的比特流, 对待 解码的比特流中的 bin进行解码,得到当前解码单元 bin的解码结果,并把得到 更新后的参数信息发送给第 M+1个解码单元;
其中,所述 N为大于等于 2的整数,所述 M为大于等于 1的整数, 且最大值 为 N— 1。
2. 根据权利要求 1所述的 CABAC解码系统, 其特征在于, 所述的解码单 元组还包括输出单元, 所述第 M个解码单元 bin解码结果和更新后的参数信息 还发送给所述输出单元, 其中- 输出单元, 用于接收控制信号、 各个解码单元发送的解码结果以及更新 后参数信息, 在各个解码单元输出的更新后的参数信息之间进行选择, 通过 控制信号从更新后的参数信息中选择所述解码单元组的输出值。
3. 根据权利要求 1或 2所述的 CABAC解码系统, 其特征在于, 所述的解 码单元组包括:
解码正常编码模式 bin的单元组和 /或解码旁路编码模式 bin的单元组。
4.根据权利要求 3所述的 CABAC解码方法, 其特征在于, 所述参数信息 为区间值、 偏移值以及各个 bin单元的概率模型值。
5.根据权利要求 4所述的 CABAC解码系统, 其特征在于, 当所述的解码 单元包括解码正常编码模式 bin的单元时,第 M个解码正常编码模式 bin的单元 输出更新后的区间值和偏移值,发送给第 M+1个解码正常编码模式 bin的单元 作为输入区间值和偏移值信息。
6.根据权利要求 5所述的 CABAC解码系统, 其特征在于, 所述的系统还 包括重正化处理模块, 用于对第 M个解码正常编码模式 bin的单元的输出的区 间值和偏移值进行重正化处理,发送给第 M+ 1个解码正常编码模式 bin的单元 或解码旁路编码模式 bin的单元作为输入区间值和偏移值信息。
7.根据权利要求 5所述的 CABAC解码系统, 其特征在于, 所述的系统还 包括多路选择器, 所述的多路选择器的输入为第 M个解码正常编码模式 bin的 单元输出的更新后的概率模型和新的概率模型, 输出为两输入的概率模型中 选择的一种。
8.根据权利要求 4所述的 CABAC解码系统, 其特征在于, 当所述的解码 单元包括解码旁路编码模式 bin的单元时,第 M个解码旁路编码模式 bin的单元 或解码正常编码模式 bin的单元输出的更新后的区间值和偏移值, 发送给第 M + 1个解码旁路编码模式 bin的单元作为其输入区间值和偏移值。
9.根据权利要求 1或 2所述的 CABAC解码系统, 其特征在于, 所述相互 连接为二叉树型连接或串行连接。
10.—种 CABAC解码方法, 其特征在于, 该方法基于至少一个解码单元 组实现, 所述的一个解码单元组包括 N个相互连接的解码单元, 所述方法包 括:
第 M个解码单元接收解码 bin的参数信息和控制信号, 根据所述参数信息 对输入的待解码的比特流进行解码, 输出 bin的解码结果, 并把得到更新后的 参数信息发送给第 M+ 1个解码单元;
其中,所述 N为大于等于 2的整数,所述 M为大于等于 1的整数,且最大值 为 N— 1。
11.根据权利要求 10所述的 CABAC解码方法, 其特征在于, 还包括下列 步骤:
第 M个解码单元 bin解码结果和更新后的参数信息发送给输出单元, 输出 单元根据控制信号以及所述 bin的解码结果, 在各个解码单元输出的更新后的 参数信息之间进行选择, 通过控制信息和解码 bin的值来从更新后的参数信息 中选择所述解码单元组的输出值。
12.根据权利要求 11所述的 CABAC解码方法, 其特征在于, 所述进行解 码包括: 对正常编码模式 bin进行解码和 /或对旁路编码模式 bin进行解码。
13.根据权利要求 12所述的 CABAC解码方法, 其特征在于, 所述参数信 息为区间值、 偏移值以及各个 bin单元的概率模型值。
14.根据权利要求 13所述的 CABAC解码方法, 其特征在于, 还包括下列
' ^所述的解码单元根据输入的第一控制信号确定当前的解码处理为采用正 常编码模式 bin解码处理还是采用旁路编码模式 bin解码处理。
15.根据权利要求 14所述的 CABAC解码方法, 其特征在于, 当确定所述 解码单元解码正常编码模式 bin时, 还包括下列步骤- 根据引入的第二控制信号确定当前进行解码处理的解码单元。
16. 根据权利要求 15所述的 CABAC解码方法, 其特征在于, 当确定所述 解码单元解码正常编码模式 bin时, 还包括下列步骤- 所述单元根据引入的第三控制信号确定选择第 M个 bin解码的单元更新 后的概率模型或者新的概率模型作为第 M+1个 bin所需的概率模型进行解码 处理。
17.根据权利要求 11所述的 CABAC解码方法, 其特征在于, 包括下列步 骤- 在第 M个解码单元解码的同时并行计算出第 M个解码单元更新后的概率 模型, 并根据所述的更新后的概率模型导出概率模型索引信息, 在第 M个解 码单元解码完毕后准备好更新的概率模型索引信息和外部输入的概率模型索 引信息中选择其中之一作为第 M+1个解码单元所需要的更新后的概率模型索 引信息。
18.根据权利要求 16所述的 CABAC解码方法, 其特征在于, 当确定所述 解码单元解码正常编码模式 bin时, 还包括下列步骤- 所述单元根据引入的第四控制信号确定在当前解码周期内是否需要解码 正负号信息。
19.根据权利要求 14所述的 CABAC解码方法, 其特征在于, 当确定所述 解码单元解码旁路编码模式 bin时, 还包括下列步骤:
根据所述第一控制信号的取值确定对指数哥伦布码的前缀或后缀进行解 码处理, 且当解码前缀时, 解码到旁路编码模式 bin值为 0时解码结束; 当解 码后缀时, 根据引入的用于确定当前解码拍内需要解码的旁路编码模式 bin的 数量的第五控制信号, 确定需要解码的旁路编码模式 bin的数量。
20.根据权利要求 10至 19任一项所述的 CABAC解码方法, 其特征在于, 还包括下列步骤:
在对 bin解码处理过程中, 如果解码带有符号位, 解码结果还包括符号位 信息。
21.根据权利要求 13至 19任一项所述的 CABAC解码方法, 其特征在于, 还包括下列步骤:
通过重正化处理模块对更新后的区间值和偏移值信息进行重正化处理, 并获得重正化处理后的区间值和偏移值, 作为该解码单元的最后更新值, 用 于同一拍内其它解码单元输入或者该拍内最终输出的区间值和偏移值。
22.根据权利要求 10或 11所述的 CABAC解码方法, 其特征在于, 所述相 互连接为二叉树型连接或串行连接。
PCT/CN2006/001358 2005-10-12 2006-06-16 Cabac decoding system and method thereof WO2007041911A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200680013155.2A CN101164340B (zh) 2005-10-12 2006-06-16 Cabac解码系统及方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200510112735.4 2005-10-12
CNB2005101127354A CN100466739C (zh) 2005-10-12 2005-10-12 Cabac解码系统及方法

Publications (1)

Publication Number Publication Date
WO2007041911A1 true WO2007041911A1 (en) 2007-04-19

Family

ID=37910627

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2006/001358 WO2007041911A1 (en) 2005-10-12 2006-06-16 Cabac decoding system and method thereof

Country Status (3)

Country Link
US (1) US7385535B2 (zh)
CN (2) CN100466739C (zh)
WO (1) WO2007041911A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107396118A (zh) * 2011-07-18 2017-11-24 太阳专利托管公司 编码方法和编码装置
US10791328B2 (en) 2011-06-15 2020-09-29 Sony Corporation Binarization of DQP using separate absolute value and sign (SAVS) in CABAC
US11245902B2 (en) 2011-06-30 2022-02-08 Sony Corporation Binarization of DQP using separate absolute value and sign (SAVS) in CABAC

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100717055B1 (ko) * 2005-11-18 2007-05-10 삼성전자주식회사 Cabac 복호기에서 복수의 이진 값들을 파이프라인방식에 의하여 복호화하는 방법 및 이를 위한 복호화 장치
US8325819B2 (en) * 2006-10-12 2012-12-04 Qualcomm Incorporated Variable length coding table selection based on video block type for refinement coefficient coding
US9319700B2 (en) * 2006-10-12 2016-04-19 Qualcomm Incorporated Refinement coefficient coding based on history of corresponding transform coefficient values
US8565314B2 (en) * 2006-10-12 2013-10-22 Qualcomm Incorporated Variable length coding table selection based on block type statistics for refinement coefficient coding
US8599926B2 (en) * 2006-10-12 2013-12-03 Qualcomm Incorporated Combined run-length coding of refinement and significant coefficients in scalable video coding enhancement layers
KR20080086766A (ko) * 2007-03-23 2008-09-26 삼성전자주식회사 픽셀 단위의 컨텍스트 모델을 이용한 영상의 부호화,복호화 방법 및 장치
EP2130173B1 (en) * 2007-03-23 2019-01-02 ContentArmor Modifying a coded bitstream
TWI341657B (en) * 2007-04-03 2011-05-01 Nat Univ Tsing Hua Cabac decoding method
BRPI0811626B1 (pt) * 2007-06-14 2019-08-20 Contentarmor Método e dispositivo imprimir marca d'água em dados codificados de extensão variável, fluxo contínuo de dados codificados de extensão variável e mídia legível por processador
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8782379B2 (en) 2007-09-27 2014-07-15 Qualcomm Incorporated H.264 video decoder CABAC core optimization techniques
US7777654B2 (en) * 2007-10-16 2010-08-17 Industrial Technology Research Institute System and method for context-based adaptive binary arithematic encoding and decoding
US7714753B2 (en) * 2007-12-11 2010-05-11 Intel Corporation Scalable context adaptive binary arithmetic coding
US8542727B2 (en) * 2007-12-31 2013-09-24 Intel Corporation Systems and apparatuses for performing CABAC parallel encoding and decoding
US7557740B1 (en) * 2008-04-18 2009-07-07 Realtek Semiconductor Corp. Context-based adaptive binary arithmetic coding (CABAC) decoding apparatus and decoding method thereof
US8138956B2 (en) * 2008-06-02 2012-03-20 Mediatek Inc. CABAC encoder and CABAC encoding method
US7592937B1 (en) * 2008-06-02 2009-09-22 Mediatek Inc. CABAC decoding unit and method
US7773004B2 (en) * 2008-07-08 2010-08-10 Qualcomm Incorporated CAVLC run-before decoding scheme
US7961122B1 (en) * 2010-02-03 2011-06-14 Himax Media Solutions, Inc. Multi-bin CABAC bypass bin decoder
TWI458268B (zh) * 2010-03-16 2014-10-21 Himax Media Solutions Inc 並聯的五旁路位元全文自適應二進制算術編碼解碼器
CN102201816B (zh) * 2010-03-25 2014-01-01 承景科技股份有限公司 并联的五旁路位全文自适应二进制算术编码解码器
TWI403170B (zh) * 2010-05-21 2013-07-21 Univ Nat Chiao Tung 背景調適性二進制算術解碼裝置及其解碼方法
ITVI20100175A1 (it) 2010-06-21 2011-12-22 St Microelectronics Pvt Ltd Sistema per la codifica entropica di video h.264 per applicazioni hdtv in tempo reale
RU2565877C2 (ru) * 2010-07-06 2015-10-20 Нокиа Корпорейшн Способ и устройство для определения соответствия между синтаксическим элементом и кодовым словом для кодирования переменной длины
US8520740B2 (en) 2010-09-02 2013-08-27 International Business Machines Corporation Arithmetic decoding acceleration
US8604951B2 (en) 2010-10-05 2013-12-10 Massachusetts Institute Of Technology System and method for optimizing context-adaptive binary arithmetic coding
WO2012134246A2 (ko) * 2011-04-01 2012-10-04 엘지전자 주식회사 엔트로피 디코딩 방법 및 이를 이용하는 디코딩 장치
TWI487295B (zh) * 2011-05-17 2015-06-01 Univ Nat Cheng Kung 高產出平行化avc/h.264前後文適應性二位元算數解碼器之方法
US10123053B2 (en) * 2011-05-23 2018-11-06 Texas Instruments Incorporated Acceleration of bypass binary symbol processing in video coding
RS64604B1 (sr) 2011-06-16 2023-10-31 Ge Video Compression Llc Entropijsko kodiranje razlika vektora kretanja
CN105554510B (zh) * 2011-06-28 2019-06-28 三星电子株式会社 对视频进行解码的方法和设备
UA114674C2 (uk) 2011-07-15 2017-07-10 ДЖ.І. ВІДІЕУ КЕМПРЕШН, ЛЛСі Ініціалізація контексту в ентропійному кодуванні
EP2988511A1 (en) * 2011-08-04 2016-02-24 MediaTek Inc. Method and apparatus for reordered binarization of syntax elements in cabac
US9088796B2 (en) 2011-11-07 2015-07-21 Sharp Kabushiki Kaisha Video decoder with enhanced CABAC decoding
FR2982447A1 (fr) * 2011-11-07 2013-05-10 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
FR2982446A1 (fr) 2011-11-07 2013-05-10 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
WO2013069991A1 (ko) * 2011-11-08 2013-05-16 삼성전자 주식회사 비디오의 산술 부호화 방법 및 그 장치, 비디오의 산술 복호화 방법 및 그 장치
US20130114667A1 (en) * 2011-11-08 2013-05-09 Sony Corporation Binarisation of last position for higher throughput
EP2600531A1 (en) * 2011-12-01 2013-06-05 Thomson Licensing Method for determining a modifiable element in a coded bit-stream and associated device
TW201334565A (zh) * 2011-12-28 2013-08-16 Jvc Kenwood Corp 動態影像編碼裝置、動態影像編碼方法及動態影像編碼程式、以及動態影像解碼裝置、動態影像解碼方法及動態影像解碼程式
US10616581B2 (en) 2012-01-19 2020-04-07 Huawei Technologies Co., Ltd. Modified coding for a transform skipped block for CABAC in HEVC
US9743116B2 (en) 2012-01-19 2017-08-22 Huawei Technologies Co., Ltd. High throughput coding for CABAC in HEVC
US9860527B2 (en) * 2012-01-19 2018-01-02 Huawei Technologies Co., Ltd. High throughput residual coding for a transform skipped block for CABAC in HEVC
US20130188736A1 (en) 2012-01-19 2013-07-25 Sharp Laboratories Of America, Inc. High throughput significance map processing for cabac in hevc
US9654139B2 (en) 2012-01-19 2017-05-16 Huawei Technologies Co., Ltd. High throughput binarization (HTB) method for CABAC in HEVC
US9681133B2 (en) * 2012-03-29 2017-06-13 Intel Corporation Two bins per clock CABAC decoding
EP2858354B1 (en) 2012-05-25 2022-12-21 Sun Patent Trust Video image coding method, video image decoding method, video image coding device, video image decoding device, and video image coding-decoding device
WO2013175698A1 (ja) 2012-05-25 2013-11-28 パナソニック株式会社 画像符号化方法、画像符号化装置、画像復号方法、画像復号装置および画像符号化復号装置
WO2013175736A1 (ja) 2012-05-25 2013-11-28 パナソニック株式会社 動画像符号化方法、動画像符号化装置、動画像復号方法、動画像復号装置、および、動画像符号化復号装置
JP6288423B2 (ja) 2012-06-04 2018-03-07 サン パテント トラスト 動画像符号化方法、動画像符号化装置、動画像復号方法、および、動画像復号装置
EP2860973B1 (en) 2012-06-08 2020-03-04 Sun Patent Trust Image encoding method, image decoding method, image encoding device, image decoding device, and image encoding and decoding device
EP2869554B1 (en) 2012-06-27 2020-10-07 Sun Patent Trust Image coding method, image decoding method, image coding device, image decoding device, and image coding and decoding apparatus
US10009606B2 (en) * 2012-10-11 2018-06-26 Nvidia Corporation Low power context adaptive binary arithmetic decoder engine
CN104104949B (zh) * 2013-04-12 2018-01-09 浙江大学 一种方向信息语法元素的熵编解码方法和装置
CN103974066B (zh) * 2014-05-14 2017-02-01 华为技术有限公司 视频编码方法和设备
US9455743B2 (en) * 2014-05-27 2016-09-27 Qualcomm Incorporated Dedicated arithmetic encoding instruction
US9854253B2 (en) * 2014-06-30 2017-12-26 Qualcomm Incorporated Method for motion vector difference (MVD) and intra block copy vector difference (BVD) coding of screen content video data
US9425822B2 (en) * 2014-08-05 2016-08-23 Broadcom Corporation Simplified range and context update for multimedia context-adaptive binary arithmetic coding design
US9942551B2 (en) * 2015-01-30 2018-04-10 Qualcomm Incorporated Palette index grouping for video coding
CN104918049A (zh) * 2015-06-03 2015-09-16 复旦大学 适用于hevc标准的二进制算术编码模块
CN105120275B (zh) * 2015-07-23 2019-01-18 北京大学 帧内模式决策中并行cabac-r算法的实现方法
CN109155863B (zh) * 2016-05-20 2022-09-20 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法及解码方法
US10462462B2 (en) * 2016-09-29 2019-10-29 Qualcomm Incorporated Motion vector difference coding technique for video coding
US11356693B2 (en) 2016-09-29 2022-06-07 Qualcomm Incorporated Motion vector coding for video coding
JP6707045B2 (ja) * 2017-03-15 2020-06-10 Nttエレクトロニクス株式会社 二値算術復号器および二値算術復号装置
CN108965878B (zh) * 2017-05-27 2019-11-15 深圳市中兴微电子技术有限公司 一种熵解码方法及装置
CN107277518B (zh) * 2017-07-07 2019-07-16 珠海市杰理科技股份有限公司 Cabac解码方法
CN107277553B (zh) * 2017-07-10 2020-10-27 中国科学技术大学 一种二元算术编码器
CN109428603A (zh) * 2017-08-30 2019-03-05 前海中科芯片控股(深圳)有限公司 一种数据编码方法、装置以及存储介质
CN112422987B (zh) * 2020-10-26 2022-02-22 眸芯科技(上海)有限公司 适用于avc的熵解码硬件并行计算方法及应用
US20220086445A1 (en) * 2020-12-03 2022-03-17 Intel Corporation Methods, apparatus, and articles of manufacture for multi-symbol equiprobable mode entropy coding

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050001746A1 (en) * 2003-05-30 2005-01-06 Jagadeesh Sankaran Method of context based adaptive binary arithmetic decoding with two part symbol decoding
CN1650636A (zh) * 2002-04-26 2005-08-03 索尼株式会社 编码设备和编码方法、解码设备和解码方法、记录介质以及程序
JP2005237004A (ja) * 2002-05-02 2005-09-02 Fraunhofer-Ges Zur Foerderung Der Angewandten Forschung Ev 変換係数を算術符号化、復号化するための方法と装置および対応するコンピュータプログラムと対応するコンピュータによる読み出し可能な記憶媒体

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2274224B (en) * 1993-01-07 1997-02-26 Sony Broadcast & Communication Data compression
US5717394A (en) * 1993-02-10 1998-02-10 Ricoh Company Ltd. Method and apparatus for encoding and decoding data
US5381145A (en) * 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data
US5583500A (en) * 1993-02-10 1996-12-10 Ricoh Corporation Method and apparatus for parallel encoding and decoding of 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
US6850883B1 (en) * 1998-02-09 2005-02-01 Nokia Networks Oy Decoding method, speech coding processing unit and a network element
CN1310434C (zh) * 2001-04-06 2007-04-11 华为技术有限公司 特博码阵列解码器
US7630440B2 (en) * 2003-05-28 2009-12-08 Broadcom Corporation Context adaptive binary arithmetic code decoding engine
US20040258162A1 (en) * 2003-06-20 2004-12-23 Stephen Gordon Systems and methods for encoding and decoding video data in parallel
US7418146B2 (en) * 2004-02-10 2008-08-26 Sanyo Electric Co., Ltd. Image decoding apparatus
KR100648258B1 (ko) * 2004-08-02 2006-11-23 삼성전자주식회사 고속의 디코딩을 수행하는 파이프라인 구조의 내용 기반적응적 이진 산술 디코더

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1650636A (zh) * 2002-04-26 2005-08-03 索尼株式会社 编码设备和编码方法、解码设备和解码方法、记录介质以及程序
JP2005237004A (ja) * 2002-05-02 2005-09-02 Fraunhofer-Ges Zur Foerderung Der Angewandten Forschung Ev 変換係数を算術符号化、復号化するための方法と装置および対応するコンピュータプログラムと対応するコンピュータによる読み出し可能な記憶媒体
US20050001746A1 (en) * 2003-05-30 2005-01-06 Jagadeesh Sankaran Method of context based adaptive binary arithmetic decoding with two part symbol decoding

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10791328B2 (en) 2011-06-15 2020-09-29 Sony Corporation Binarization of DQP using separate absolute value and sign (SAVS) in CABAC
US11665348B2 (en) 2011-06-15 2023-05-30 Sony Group Corporation Binarization of dQP using separate absolute value and sign (SAVS) in CABAC
US11245902B2 (en) 2011-06-30 2022-02-08 Sony Corporation Binarization of DQP using separate absolute value and sign (SAVS) in CABAC
CN107396118A (zh) * 2011-07-18 2017-11-24 太阳专利托管公司 编码方法和编码装置
CN107396118B (zh) * 2011-07-18 2020-02-21 太阳专利托管公司 编码方法和编码装置

Also Published As

Publication number Publication date
CN1949873A (zh) 2007-04-18
US7385535B2 (en) 2008-06-10
CN101164340A (zh) 2008-04-16
US20070080832A1 (en) 2007-04-12
CN101164340B (zh) 2010-10-06
CN100466739C (zh) 2009-03-04

Similar Documents

Publication Publication Date Title
WO2007041911A1 (en) Cabac decoding system and method thereof
US11652997B2 (en) Reducing context coded and bypass coded bins to improve context adaptive binary arithmetic coding (CABAC) throughput
JP4057595B2 (ja) 変換係数を算術符号化、復号化するための方法と装置および対応するコンピュータプログラムと対応するコンピュータによる読み出し可能な記憶媒体
JP4886755B2 (ja) コンテキスト適応バイナリ算術符号化と復号化のシステム及び方法
US7821430B2 (en) Arithmetic decoding apparatus
Di et al. A VLSI architecture design of CAVLC decoder
US8604951B2 (en) System and method for optimizing context-adaptive binary arithmetic coding
WO2013017092A1 (en) Method and apparatus for reordered binarization of syntax elements in cabac
JP2016129384A (ja) CABACにおける絶対値と正負記号の分離(SAVS)を使用したdQPの2値化
WO2011101443A1 (en) Adaptive entropy encoding
Kim et al. Parallel decoding of context-based adaptive binary arithmetic codes based on most probable symbol prediction
CN110431748B (zh) 二进制算术解码器和二进制算术解码装置
JP2007295157A (ja) データ符号化装置、データ符号化方法、データ符号化プログラム及びデータ符号化プログラムを記録した情報記録媒体
JP5230375B2 (ja) 画像符号化装置及び画像符号化方法
JPH06177775A (ja) 可変長符号化データの復号化回路装置及び復号化方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 200680013155.2

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 06752971

Country of ref document: EP

Kind code of ref document: A1