CN111818335A - Entropy coding method and device and electronic equipment - Google Patents
Entropy coding method and device and electronic equipment Download PDFInfo
- Publication number
- CN111818335A CN111818335A CN202010635715.XA CN202010635715A CN111818335A CN 111818335 A CN111818335 A CN 111818335A CN 202010635715 A CN202010635715 A CN 202010635715A CN 111818335 A CN111818335 A CN 111818335A
- Authority
- CN
- China
- Prior art keywords
- length
- interval
- value
- subinterval
- decoding
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 125000004122 cyclic group Chemical group 0.000 claims description 42
- 238000004364 calculation method Methods 0.000 abstract description 37
- 230000008569 process Effects 0.000 description 38
- 238000010586 diagram Methods 0.000 description 4
- 238000007906 compression Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
- H04N19/21—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with binary alpha-plane coding for video objects, e.g. context-based arithmetic encoding [CAE]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
The application discloses an entropy decoding method and device and electronic equipment. The method comprises the following steps: reading binary code stream data to obtain decoding parameters, and performing binary arithmetic decoding and renormalization on the binary code stream data in parallel according to the decoding parameters. According to the method and the device, partial variables and calculation modes are adjusted and added, so that the original serial calculation is changed into parallel calculation for decoding and renormalization, the time requirement after hardware is saved, and the hardware pipeline mode is convenient to realize.
Description
Technical Field
The present application relates to the field of video encoding and decoding technologies, and in particular, to an entropy encoding method and apparatus, and an electronic device.
Background
With the improvement of display resolution, the processing of data in the display industry becomes more and more important, and compression and decompression become important data processing means, but have certain disadvantages for the traditional decoding mode at present. H.264, also known as MPEG-4AVC (Advanced Video Coding), is a Video compression standard and is also a widely used format for recording, compressing, and distributing high-precision Video. The conventional h.264 has two entropy coding schemes, corresponding to two decoding modes: one is context-based adaptive variable length coding (CAVLC) developed from variable length coding schemes; another is Context-based adaptive Binary Arithmetic Coding (CABAC) developed from Arithmetic Coding, which can save about 7% of code stream and more effectively extract representation redundancy in syntax sequences, but increases 10% of computation time compared with CAVLC.
The CABAC arithmetic decoding mode can save code streams and correspondingly save data storage space, but the hardware realization process of the whole decoding flow of the traditional CABAC arithmetic decoding is complex, calculation is carried out according to binary bit sequence, the serialization requirement is high, and the calculation complexity is increased. Meanwhile, when the high-definition code stream is decoded, the task of real-time decoding cannot be completed.
Therefore, it is necessary to propose parallel arithmetic decoding hardware acceleration with respect to CABAC.
Disclosure of Invention
The application aims at providing an entropy coding method, an entropy coding device and electronic equipment, wherein data are stored in advance in a lookup table mode, so that the calculation time is saved; by adjusting and adding partial variables and a calculation mode, the original serial calculation is changed into parallel calculation, and the calculation of the next code stream is started after the decoding and renormalization simultaneous calculation is finished, so that the time requirement after hardware is saved, and the hardware pipeline mode is convenient to realize.
In a first aspect of the present application, there is provided an entropy decoding method, including: reading binary code stream data, and acquiring decoding parameters, wherein the decoding parameters comprise: a first interval length, an interval offset value, an accumulated value of the number of bits of arithmetic decoding, a first probability symbol, a subinterval length corresponding to a second probability symbol, a subinterval offset value corresponding to the second probability symbol, and a second interval length, wherein the second interval length is an interval length obtained by updating the first interval length according to the subinterval length; performing binary arithmetic decoding and renormalization on the binary code stream data in parallel, wherein the binary arithmetic decoding comprises obtaining a decoding result according to the interval offset value, the second interval length and the first probability symbol; and the renormalization comprises prejudging the length of the second interval or the number of cyclic shifts of which the length of the subinterval is greater than a preset length value, and performing renormalization operation according to the offset value of the subinterval.
In a second aspect of the present application, there is provided an entropy decoding apparatus, the apparatus comprising: a decoding parameter obtaining unit, configured to read in binary code stream data and obtain a decoding parameter, where the decoding parameter includes: a first interval length, an interval offset value, an accumulated value of the number of bits of arithmetic decoding, a first probability symbol, a subinterval length corresponding to a second probability symbol, a subinterval offset value corresponding to the second probability symbol, and a second interval length, wherein the second interval length is an interval length obtained by updating the first interval length according to the subinterval length; a binary arithmetic decoding unit, configured to obtain a decoding result according to the interval offset value, the second interval length, and the first probability symbol; the renormalization unit is used for prejudging the number of cyclic shifts of which the length of the second interval or the length of the subinterval is greater than a preset length value and carrying out renormalization operation according to the subinterval offset value; wherein the binary arithmetic decoding unit and the renormalization unit are called by the decoding parameter acquiring unit at the same time to perform binary arithmetic decoding and renormalization of the binary code stream data in parallel.
In a third aspect of the present application, there is provided an electronic device comprising a memory and a processor, the memory storing a computer-executable program which, when executed by the processor, causes the entropy decoding method described herein to be performed.
Drawings
The technical solution and other advantages of the present application will become apparent from the detailed description of the embodiments of the present application with reference to the accompanying drawings.
Fig. 1 is a flowchart of an entropy decoding method of the present application.
Fig. 2 is a detailed flowchart of an entropy decoding method according to an embodiment of the present application.
Fig. 3 is a decoding flowchart of conventional CABAC arithmetic decoding.
Fig. 4 is a block diagram of an entropy decoding apparatus according to the present application.
Fig. 5 is a schematic structural diagram of an electronic device according to the present application.
Detailed Description
The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application. It is to be understood that the embodiments described are only a few embodiments of the present application and not all embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
In the description of the present application, it is to be understood that the terms "first", "second" are used for descriptive purposes only and are not to be construed as indicating or implying relative importance or implying any number of technical features indicated. Thus, features defined as "first", "second", may explicitly or implicitly include one or more of the described features. In the description of the present application, "a plurality" means two or more unless specifically limited otherwise.
The following disclosure provides many different embodiments or examples for implementing different features of the application. In order to simplify the disclosure of the present application, specific example components and arrangements are described below. Of course, they are merely examples and are not intended to limit the present application.
Moreover, the present application may repeat reference numerals and/or letters in the various examples, such repetition is for the purpose of simplicity and clarity and does not in itself dictate a relationship between the various embodiments and/or configurations discussed. Like reference numerals or letters, throughout, represent like values or components. In addition, examples of various specific processes and materials are provided herein, but one of ordinary skill in the art may recognize applications of other processes and/or use of other materials.
Referring to fig. 1, a flowchart of an entropy decoding method of the present application is shown. As shown in fig. 1, the entropy decoding method of the present application includes the following steps: s1, reading binary code stream data and obtaining decoding parameters, wherein the decoding parameters comprise: first section length R1, section offset value L, arithmetic decodingThe sub-section length R corresponding to the bit number accumulated value de _ length, the first probability symbol MPS, and the second probability symbol LPSLPSAnd a subinterval offset value L corresponding to the second probability symbol LPSLPSAnd a second span length R2; s2, binary arithmetic decoding the binary code stream data, wherein the binary arithmetic decoding includes obtaining a decoding result according to the interval offset value L, the second interval length R2, and the first probability sign MPS; s3, renormalizing the binary code stream data, wherein the renormalizing includes prejudging the second interval length R2 or the subinterval length RLPSThe number of cyclic shifts is larger than the preset length value, and the cyclic shift is carried out according to the subinterval deviation value LLPSPerforming renormalization operation; wherein the step S2 is performed in parallel with the step S3, that is, the binary arithmetic decoding and renormalization are performed in parallel on the binary code stream data. A detailed explanation is given below.
With respect to step S1, reading in binary code stream data, obtaining decoding parameters, wherein the decoding parameters include: a first section length R1, a section offset value L, an accumulated value de _ length of the number of bits for arithmetic decoding, a subinterval length R corresponding to the first probability symbol MPS and the second probability symbol LPSLPSAnd a subinterval offset value L corresponding to the second probability symbol LPSLPSAnd a second interval length R2. Wherein the second interval length R2 is according to the sub-interval length RLPSAnd updating the section length obtained by the first section length R1.
Specifically, the step S1 further includes: 1) initializing the binary code stream data to obtain a first interval length R1, an interval offset value L, a first probability symbol MPS and a probability index value sigma; 2) obtaining an interval index value rho according to the first interval length R1, and obtaining the subinterval length R according to the probability index value sigma and the interval index value rhoLPSAccording to said subinterval RLPSLength updating the first span length R1 to obtain the second span length R2, and obtaining the sub-span offset value L from the span offset value L and the second span length R2LPS。
The CABAC encoding method generally uses binary arithmetic coding, which has only two symbols, i.e., "0" and "1", as input, i.e., the input is a binary string. Specifically, in an input code stream of an h.264 decoder, the basic unit of the code stream data is a Syntax Element (Syntax Element), also called Syntax Element. Each syntax element consists of a number of bits (bits) that represent a certain physical meaning. Syntax elements are organized into hierarchical structures describing the information of five levels, Sequence (Sequence), Picture (Picture), Slice (Slice or Slice), Macroblock (MB), sub-Macroblock (sub), respectively, CABAC is mainly responsible for decoding syntax elements below a Slice layer. In the process of h.264 encoding, the image of each frame is divided into one or more slices for encoding. Each slice contains a plurality of macroblocks.
The first probability symbol MPS is a value (i.e., a symbol with a larger probability) corresponding to a symbol with a larger current probability in a binary string (herein, this is specifically referred to as a bin _ complex of a file to be decoded), and a concept opposite to the first probability symbol MPS is a second probability symbol LPS (i.e., a symbol with a smaller probability), which needs to be adjusted according to an actual situation. For example, if there are many "0" s in the input binary string, MPS is 0, and LPS is 1; otherwise, MPS equals 1 and LPS equals 0.
The first interval length R1 refers to the current length of the probability interval; the interval deviation value L refers to the current starting position of the probability interval; the probability index value sigma divides the probability interval into 64 states of 0 to 63, the state 63 represents exit, the state 0 represents numerical inversion, namely, the values represented by the first probability symbol MPS and the second probability symbol LPS are exchanged.
In a further embodiment, the step 1) further comprises: acquiring a bit number count value cumula _ de of a file to be decoded in the binary code stream data, and pre-calculating and setting a two-dimensional lookup table; and the entry parameters of the two-dimensional lookup table are a probability index value sigma and an interval index value rho.
And the bit count value cumula _ de is the count value of the number of bits in the current to-be-decoded file bin _ file.
In a further embodiment, the step 2) further comprises: quantizing the first interval length R1 to obtain the interval index value p, wherein the quantization method adopts (R)>>6)&3; searching a preset two-dimensional lookup table rangeTab according to the probability index value and the interval index value rho, and acquiring the length of the subinterval, namely, the probability interval with a smaller probability value is subtracted from each file to be decoded, which is coded by 1 bit; obtaining the first interval length R1 and the subinterval length RLPSAs the second interval length R2(R2 ═ R1-R)LPS) (ii) a Obtaining a difference value between the interval offset value L and the second interval length R2 as the subinterval offset value LLPS(LLPS=L-R2)。
The two-dimensional lookup table rangeTab is a pre-established 64 × 4 two-dimensional table, the first index is a probability index value σ, and the second index is an interval index value ρ. The probability index value sigma divides the probability interval into 64 states of 0-63, the state 63 represents exit, the state 0 represents numerical inversion, namely, the values represented by the first probability symbol MPS and the lower probability value LPS are exchanged. In step S1, the probability index value σ is equal to a preset probability index initial value. Because the CABAC is complex in the calculation process of skipping according to the probability index value, the pre-calculated multiplication result is stored in the two-dimensional lookup table, and the CABAC can be obtained by quickly looking up the table only by using the subscript of the probability index value during actual use.
With regard to the step S2, binary arithmetic decoding is performed on the binary code stream data, wherein the binary arithmetic decoding includes obtaining a decoding result from the section offset value L, the second section length R2, and the first probability sign MPS.
Specifically, the step S2 further includes: judging whether the interval offset value L is greater than or equal to the second interval length R2; if the interval offset value L is greater than or equal to the second interval length R2, performing binary inversion on the first probability symbol MPS, obtaining and storing a decoding result bin _ output, and updating the first probability symbol MPS and the probability index value σ, i.e. obtaining a context model in a next decoding process; if the interval offset value L is smaller than the second interval length R2, acquiring and storing the first probability symbol MPS as a decoding result bin _ output, and updating the probability index value σ, that is, acquiring a context model in a next decoding process; and updating the bit number accumulated value de _ length, and executing the operation of judging whether the bit number accumulated value de _ length is smaller than the preset bit width. The preset bit width is a preset value, and for example, the preset bit width may be initialized in step 1).
Further, if the accumulated value de _ length of the number of bits is smaller than the preset bit width, assigning the second interval length R2 to the first interval length R1, and returning to step S12 to continue decoding; otherwise, decoding is finished, and a decoding result bin _ output is output. The output is output according to the specified h.264 standard, and if necessary, an inverse binary process needs to be performed, which may specifically refer to the prior art and is not described herein again.
Renormalizing the binary coded stream data with respect to step S3, wherein the renormalizing includes prejudging the second span length R2 or the subinterval length RLPSThe number of cyclic shifts is larger than the preset length value, and the cyclic shift is carried out according to the subinterval deviation value LLPSAnd performing renormalization operation. Wherein the binary code stream data is subjected to binary arithmetic decoding and renormalization in parallel.
Specifically, the step S3 further includes: and judging whether the interval deviation value L is smaller than the second interval length R2 or not, and executing corresponding renormalization operation according to the judgment result.
And the renormalization process is used for amplifying the interval length in proportion when the interval length is smaller than the preset length. According to the characteristics of the renormalization algorithm, the number of cycles can be determined by the second interval length R2, the interval offset value L and the subinterval length RLPSAnd (4) calculating in advance. And the calculation is carried out in one step, and multiple iterative shifts are avoided.
The renormalizing when the interval offset value L is less than the second interval length R2The quantization operation further comprises: acquiring a corresponding first cyclic shift number Rcnt1 according to the second interval length R2; judging whether the second interval length R2 is smaller than the preset length value; if the second interval length R2 is smaller than the preset length value, the second interval length R2 is updated according to the first cyclic shift number Rcnt1 to obtain a new first interval length R1, and the new first interval length R1 is obtained according to the first cyclic shift number Rcnt1 and the sub-interval offset value LLPSUpdating the interval offset value L; if the second interval length R2 is greater than or equal to the preset length value, an operation of determining whether the bit number accumulated value de _ length is smaller than a preset bit width is performed. Wherein the preset length is 256 (binary expression is 0x10000000) in general.
When the interval offset value L is greater than or equal to the second interval length R2, the renormalization operation further comprises: according to the subinterval length RLPSAcquiring a corresponding second cyclic shift number Rcnt 2; judging the subinterval length RLPSWhether the length is smaller than the preset length or not; if the subinterval length RLPSIf the length is less than the preset length, according to the second cyclic shift number Rcnt2 and the subinterval length RLPSUpdating the second interval length R2 to obtain a new first interval length R1, and shifting the number Rcnt2 according to the second cycle and the sub-interval offset value LLPSUpdating the interval offset value L; if the second sub-interval length R2 is greater than or equal to the preset length, according to the sub-interval length RLPSUpdating the second interval length R2 to obtain a new first interval length R1 according to the sub-interval offset value LLPSAnd updating the interval deviation value L, and further executing the operation of judging whether the bit number accumulated value de _ length is smaller than the preset bit width. Wherein the preset length is 256.
The specific operation of renormalization is similar to the conventional renormalization method except that the number of cyclic shifts is introduced for prejudgment, a subinterval offset value is added for updating the first interval length R1 and the interval offset value L, and the other operations such as updating the to-be-decoded file bin _ complex according to the bit count value cumula _ de and the code stream data length complex _ length are similar to the conventional renormalization method. For a general operation flow not described in detail, a person skilled in the art can fully understand the specific operation process of this step, and details are not described herein.
In the decoding process, a variable subinterval offset value L is addedLPSThe method is used for calculating the renormalization, and the calculation is carried out in the step of acquiring the decoding parameters, so that the time for decoding and renormalization is saved. The existing decoding process needs to be executed in sequence, namely, after decoding, renormalization is carried out. The optimization process of the method and the device performs parallel calculation on decoding and renormalization, saves decoding time realized by hardware, and realizes that 1-bit code stream decoding only uses 1 clock time.
The entropy decoding method adopts a lookup table form to store data in advance, so that the decoding calculation time is saved; the normalization operation time is saved by adjusting and increasing part of variables and calculating modes; meanwhile, the original serial calculation is changed into parallel calculation, the calculation of the next code stream is finished after the decoding and the renormalization are simultaneously performed, the time requirement after the hardware is saved, the 1-bit code stream decoding only uses 1 clock time, and the hardware pipeline mode is convenient to realize.
Referring to fig. 2, a detailed flowchart of an entropy decoding method according to an embodiment of the present application is shown. The process specifically comprises the following steps.
Step S1, reading binary code stream data, and obtaining decoding parameters, where the decoding parameters include: a first section length R1, a section offset value L, an accumulated value de _ length of the number of bits for arithmetic decoding, a subinterval length R corresponding to the first probability symbol MPS and the second probability symbol LPSLPSAnd a subinterval offset value L corresponding to the second probability symbol LPSLPSAnd a second interval length R2. Wherein the second interval length R2 is according to the sub-interval length RLPSAnd updating the section length obtained by the first section length R1.
Specifically, the step S1 further includes: s11, initializing the binary code stream data to obtain a first interval length R1, an interval offset value L and a first interval lengthA probability symbol MPS and a probability index value σ; s12, obtaining an interval index value rho according to the first interval length R1, and obtaining the subinterval length R according to the probability index value sigma and the interval index value rhoLPSAccording to said subinterval RLPSLength updating the first span length R1 to obtain the second span length R2, and obtaining the sub-span offset value L from the span offset value L and the second span length R2LPS。
Referring to fig. 2, according to the binary code stream data, a bin _ complex to be decoded, a preset bit width, a code stream data length complex _ length, and a two-dimensional lookup table rangeTab are input; meanwhile, the bit count value cumula _ de is 10; the accumulated value de _ length of the bit number is 0; the first probability symbol MPS is 1; a first span length R1 of 510; the probability index value sigma is 0; the interval offset value L is obtained by reading {1:9}9bit in the bin _ file to be decoded and converting the value into a decimal value.
For example, for the code stream "0110001110011101101011011111011", the first 0 is the first estimated value in encoding, and is deleted. L ═ read _ bits (9:1), the initial value is to read 9 bits consecutively, i.e., 110001110, in step S1, L ═ 299, R ═ 510, MPS ═ 1, σ ═ 0, cumula _ de ═ 10, and de _ length ═ 0.
Obtaining an interval index value rho by quantizing the first interval length R1, wherein the quantization method adopts (R > >6) & 3; according to the above example, where ρ ═ 6) &3, the binary representation of 510 is 0x111111110, shifted right by 6 bits to 0x000000111, and then operated with 3 (i.e. 0x000000111), ρ is 3.
Searching a preset two-dimensional lookup table rangeTab according to the probability index value sigma and the interval index value rho to obtain the subinterval length RLPS. According to the above example, then there is RLPS=rangeTab[σ][ρ]And is 240.
Obtaining the first interval length R1 and the subinterval length RLPSAs the second interval length R2. According to the above example, R2 ═ R1-RLPSThe second interval length R2 is 270, i.e. each 1bit of text to be decoded is encodedThe probability interval with the smaller probability value is subtracted.
Obtaining a difference value between the interval offset value L and the second interval length R2 as the subinterval offset value LLPS,LLPSL-R, the subinterval offset value L, according to the example aboveLPSIs 29.
The binary arithmetic decoding and normalization process of the rule decoding (decodedision) mainly comprises comparison, subtraction, table look-up and shift operations. In h.264, because the calculation process of CABAC jumping according to the probability index value is complicated, the pre-calculated multiplication result is stored in the two-dimensional lookup table, and when in actual use, the fast lookup table can be obtained only by using the subscript of the probability index value. To reduce the complexity of the calculation, a 64 × 4 two-dimensional table, i.e., the two-dimensional lookup table rangeTab [64] [4], is first built, as shown in table 1 below.
And storing a pre-calculated multiplication result by using the two-dimensional lookup table rangeTab, wherein the entry parameters of the table are a current probability index value sigma (expressed as pStateIdx in the table) and a current interval index value rho (expressed as qCodRangeIdx in the table).
The chip implementation process of the present application is implemented in Verilog HDL language, but it should be appreciated that the choice of hardware design language is not to be construed as a limitation to the present application.
TABLE 1 two-dimensional lookup table
S2, binary arithmetic decoding the binary code stream data, wherein the binary arithmetic decoding includes obtaining a decoding result according to the interval offset value L, the second interval length R2, and the first probability sign MPS; s3, renormalizing the binary code stream data, wherein the renormalizing includes prejudging the second interval length R2 or the subinterval length RLPSThe number of cyclic shifts is larger than the preset length value, and the cyclic shift is carried out according to the subinterval deviation value LLPSPerforming renormalization operation; wherein the combination of step S2 and step S3And (4) performing line-by-line binary arithmetic decoding and renormalization on the binary code stream data in parallel. From the drawing specifications of the flow chart, those skilled in the art will understand that two parallel lines in fig. 2 represent parallel operations, and diamond-shaped boxes in the drawing represent decision blocks.
Specifically, the step S2 further includes:
determining whether the interval offset value L is greater than or equal to the second interval length R2(L > -R2);
if the interval offset value L is greater than or equal to the second interval length R2, binary inversion (| MPS) is performed on the first probability symbol MPS, a decoding result bin _ output is obtained and stored, the first probability symbol MPS (MPS ═ 1-MPS) is updated when the probability index value σ is greater than zero, and the probability index value σ is updated with σ ═ transldxLPS [ σ ], otherwise the probability index value σ is directly updated with σ ═ transldxLPS [ σ ]. I.e. to obtain the context model in the next decoding process. The transitidxlps is a preset probability jump table, and those skilled in the art can easily obtain the relevant content of the probability jump table, which cannot be considered as a limitation to the present application, and is not described herein again.
If the interval offset value L is smaller than the second interval length R2, the first probability symbol MPS is obtained and stored as a decoding result bin _ output, and the probability index value σ is updated with σ ═ transldxLPS [ σ ], that is, a context model in the next decoding process is obtained.
Updating the bit number accumulated value de _ length, and performing a self-increment operation on the bit number accumulated value de _ length (de _ length + 1); and judging whether the accumulated value de _ length of the bit number is smaller than a preset bit width (de _ length < width).
Further, according to the prior art, if the accumulated value de _ length of the number of bits is less than the preset width of bits, the method returns to step S12 to continue decoding, wherein the value of the first interval length R1 uses the result updated in step S3; otherwise, decoding is finished, and a decoding result bin _ output is output. The output is output according to the specified H.264 standard, and if necessary, an inverse binary process is required.
In the above example, if the interval offset value L is 299, the second interval length R2 is 270, and L > R2 is satisfied, the decoding result bin _ output is the inverse of the first probability symbol MPS, and is zero. And if the current probability index value sigma is zero, negating the first probability symbol MPS, updating to 0, updating the probability index value sigma by inquiring the probability state table, wherein the updated probability index value sigma is 0, and increasing the bit number accumulated value de _ length.
Specifically, the step S3 further includes: and judging whether the interval deviation value L is smaller than the second interval length R2 or not, and executing corresponding renormalization operation according to the judgment result. The essence of the renormalization process is to update the interval offset value L and the second interval length R2.
When the interval offset value L is less than the second interval length R2, the renormalization operation further includes: acquiring a corresponding first cyclic shift number Rcnt1 according to the second interval length R2; determining whether the second interval length R2 is less than the preset length value 256 (R2)<256) (ii) a If the second interval length R2 is less than 256, according to the first cyclic shift number Rcnt1, after performing a left shift operation on the second interval length R2, a new first interval length R1 is obtained (R1 ═ R2)<<Rcnt1) and is based on the first cyclic shift number Rcnt1 and the subinterval offset value LLPSUpdating the interval offset value L (L ═ L)LPS<<Rcnt 1); judging whether the accumulated value de _ length of the bit number is smaller than a preset bit width; if the second interval length R2 is greater than or equal to 256, directly performing an operation of determining whether the bit number accumulated value de _ length is smaller than a preset bit width. Before introducing the first cyclic shift number, the renormalization process is to read 1bit in the bin _ profile of the file to be decoded, perform bitwise OR operation with the interval offset value L and update the interval offset value L; after the first cyclic shift number Rcnt1 is introduced, the updated result can be obtained at one time by performing a left shift operation on the interval offset value L. If the second interval length R2 is greater than or equal to the preset length 256, renormalization is not required.
When the interval offset value L is greater than or equal to a second of the interval lengths R2, the renormalization operation further comprises: according to the subinterval length RLPSAcquiring a corresponding second cyclic shift number Rcnt 2; judging the subinterval length RLPSWhether it is less than the preset length 256; if the subinterval length RLPSLess than 256, according to the second cyclic shift number Rcnt2 and the subinterval length RLPSObtaining a new first interval length R1 after updating the second interval length R2 (R1 ═ R)LPS<<Rcnt2) and is shifted by the number of Rcnt2 and the subinterval offset value L according to the second cyclic shiftLPSAnd updating the interval offset value L (L ═ L)LPS<<Rcnt 2); if the second sub-interval length R2 is greater than or equal to the preset length, according to the sub-interval length RLPSObtaining a new first interval length R1 after updating the second interval length R2 (R1 ═ R)LPS) According to the subinterval deviation value LLPSUpdating the interval offset value L (L ═ R)LPS) And further executing the operation of judging whether the bit number accumulated value de _ length is smaller than the preset bit width.
In the above example, the interval offset value L is 299, the second interval length R2 is 270, L > R2 is satisfied, and the second number of cyclic shifts Rcnt2 is calculated, wherein the second number of cyclic shifts Rcnt2 should be satisfied such that the current sub-interval length R is equal toLPSGreater than 256, Rcnt2 is calculated to be 1. Updating subinterval length R by left-shiftingLPSAnd is 480. By determining that the count value cumula _ de (value 10) of the number of bits and the sum (value 11) of the count value cumula _ de of the number of bits and the second cyclic shift number Rcnt2 in this example are both smaller than the code stream data length complex _ length (this data is initialized in step S11), the method determines according to the second cyclic shift number R2 and the subinterval offset value LLPSAnd updating the interval offset value L to 59 according to the bit number count value cumula _ de and the file to be decoded bin _ profile.
The concrete operation of renormalization is to introduce the number of cyclic shifts for prejudgment and add the subinterval offset value LLPSAnd, in general, the conventional renormalization methodSimilarly. For a general operation flow not described in detail, a person skilled in the art can fully understand the specific operation process of this step, and details are not described herein.
In the decoding process, a variable subinterval offset value L is addedLPSThe method is used for calculating the renormalization, and the calculation is carried out in the step of acquiring the decoding parameters, so that the time for decoding and renormalization is saved. The existing decoding process needs to be executed in sequence, namely, after decoding, renormalization is carried out. The optimization process of the method and the device performs parallel calculation on decoding and renormalization, saves decoding time realized by hardware, and realizes that 1-bit code stream decoding only uses 1 clock time.
The embodiment of the application is used for saving the storage space in the compression process, and meanwhile, the time requirement in the decoding process is also saved to some extent, so that the time sequence problem in the decoding process can meet the real-time decompression requirement. The optimized arithmetic decoding process can achieve the purpose that 1bit code stream data is decoded by one clock.
When the hardware is realized, the first step of the decoding process mainly adopts a lookup table and simple shift and subtraction calculation, the calculation time is saved to the maximum extent, and meanwhile, in the optimization of the decoding process, L is performed in advance in the traditional processLPSThe calculation of L-R is convenient for the parallel operation of decoding and renormalization, and is not the serial calculation in the traditional flow, so that the calculation time is saved to the maximum extent. To ensure that the renormalization and decoding calculation are completed simultaneously, in the renormalization calculation process, the calculation of the new increase of the cyclic shift number Rcnt1 or Rcnt2 will conventionally make R completeLPS>256-time shift iteration is needed for calculation, and one-step prejudgment operation is carried out, so that the calculation is completed simultaneously by renormalization and decoding, the pipeline operation is conveniently realized by hardware, and the time is further saved.
In contrast, fig. 3 illustrates a decoding flow of the conventional CABAC arithmetic decoding. As shown in fig. 3, the decoding process of CABAC can be generally divided into three parts: step S301 reads binary code stream data and performs initialization, step S302 binary arithmetic decoding, step S303 renormalization.
Specifically, in step S301, the read binary code stream data includes a bin _ complex to be decoded, a preset bit width, a code stream data length complex _ length, and a two-dimensional lookup table rangeTab (refer to table 1 above); the decoding parameters obtained after initialization comprise an accumulated value de _ length of the bit number of arithmetic decoding, a count value cumula _ de of the bit number of a to-be-decoded file bin _ comple read in binary code stream data, a first probability symbol MPS, an interval length R, an interval deviation value L, a probability index value sigma and an interval index value rho. Wherein the first probability symbol MPS is a symbol (i.e. a symbol with a higher probability of occurrence) in a binary string (i.e. the bin _ complex to be decoded); the interval deviation value L is the initial position of the probability interval, and is obtained by reading {1:9}9bit in the bin _ file to be decoded and converting the value into a decimal value; the probability interval is divided into 64 states of 0-63, the probability index value sigma indicates that the probability interval is in the state of the second place, and the probability index value sigma is an entry parameter of the two-dimensional lookup table rangeTab and the probability migration table transitidxLps; the interval index value p is another entry parameter of the two-dimensional lookup table rangeTab.
Step S302 shows a rule decoding (decodedision) process. Specifically, an interval index value ρ and a subinterval length R are obtainedLPSUpdating the interval length R; judging whether the interval deviation value L is larger than or equal to the updated interval length R (L)>R? ) (ii) a If L is>If the sub-interval length R is equal to R, the corresponding decoding result bin _ output is obtained and stored, the interval offset value L is updated, and the sub-interval length R is adjustedLPSAssigning to said interval length R, updating said first probability symbol MPS and said probability index value σ; if L is<R, acquiring and storing a corresponding decoding result bin _ output, and updating the probability index value sigma; and updating the accumulated value de _ length of the bit number.
Step S303 shows a renormalization process. Specifically, it is determined whether the assigned interval length R is smaller than 256(R < 256; if R <256, performing cyclic shift on the interval length R, otherwise, directly performing operation of judging whether the bit number accumulated value de _ length is smaller than a preset bit width; after the interval length R is circularly shifted, it is further determined whether the bit count value cumula _ de is less than or equal to the code stream data length complex _ length (cumula _ de? "; if the cumula _ de > compound _ length, the cyclic shift and update are performed only on the interval offset value L, and then the continuous determination "R < 256? ". In the operation of judging whether the accumulated value de _ length of the number of bits is smaller than the preset bit width (de _ length < width.
In the decoding process of the conventional CABAC arithmetic decoding shown in fig. 3, the hardware implementation process of the whole decoding process is complex, the calculation is performed according to the binary bit sequence, the serialization requirement is high, and the calculation complexity is increased. When the high-definition code stream is decoded, the task of real-time decoding cannot be completed.
Based on the same inventive concept, the application also provides an entropy decoding device, and the entropy decoding device can be regarded as a CABAC hardware accelerator.
Referring to fig. 4, a block diagram of an entropy decoding apparatus of the present application is shown. As shown in fig. 4, the entropy decoding apparatus 4 of the present application includes: a decoding parameter acquisition unit 41, a binary arithmetic decoding unit 42, and a renormalization unit 43.
The decoding parameter obtaining unit 41 is configured to read binary code stream data and obtain a decoding parameter. Wherein the decoding parameters include: a first section length R1, a section offset value L, an accumulated value de _ length of the number of bits for arithmetic decoding, a subinterval length R corresponding to the first probability symbol MPS and the second probability symbol LPSLPSAnd a subinterval offset value L corresponding to the second probability symbol LPSLPSAnd a second interval length R2, wherein the second interval length R2 is according to the sub-interval length RLPSAnd updating the section length obtained by the first section length R1.
The binary arithmetic decoding unit 42 is configured to obtain a decoding result according to the interval offset value L, the second interval length R2, and the first probability sign MPS.
The renormalization unit 43 is configured to predict the second interval length R2 or the subinterval length RLPSThe number of cyclic shifts is larger than the preset length value, and the cyclic shift is carried out according to the subinterval deviation value LLPSAnd performing renormalization operation.
Wherein the binary arithmetic decoding unit 42 and the renormalization unit 43 are called by the decoding parameter acquiring unit 41 at the same time to perform binary arithmetic decoding and renormalization of the binary code stream data in parallel.
The entropy decoding device can store data in advance in a lookup table mode, so that the decoding calculation time is saved; partial variable operation is added in the renormalization unit, and decoding is carried out in the first step, so that the time for renormalization is saved; meanwhile, the original serial implementation is changed into parallel implementation, the time requirement after hardware is saved, and the time that only 1 clock is used for decoding the 1-bit code stream is realized; and decoding and renormalization are simultaneously calculated to finish the calculation of entering the next code stream, so that the hardware pipeline mode is convenient to realize.
Based on the same inventive concept, the application also provides the electronic equipment.
Please refer to fig. 5, a schematic structural diagram of an electronic device according to the present application. As shown in fig. 5, the electronic device 5 of the present application includes: a memory 51 and a processor 52, said memory 51 storing computer executable instructions which, when executed by said processor 52, cause the entropy decoding method described herein to be performed.
In particular, the computer executable instructions, when executed by the processor 52, cause the processor 51 to perform the steps of the above method: s1, reading binary code stream data and obtaining decoding parameters, wherein the decoding parameters comprise: a first section length R1, a section offset value L, an accumulated value de _ length of the number of bits for arithmetic decoding, a subinterval length R corresponding to the first probability symbol MPS and the second probability symbol LPSLPSAnd a subinterval offset value L corresponding to the second probability symbol LPSLPSAnd a second span length R2; s2, binary arithmetic decoding is carried out on the binary code stream data, wherein the binary arithmetic is carried outDecoding comprises obtaining a decoding result from said interval offset value L, said second interval length R2, said first probability sign MPS; s3, renormalizing the binary code stream data, wherein the renormalizing includes prejudging the second interval length R2 or the subinterval length RLPSThe number of cyclic shifts is larger than the preset length value, and the cyclic shift is carried out according to the subinterval deviation value LLPSPerforming renormalization operation; wherein the step S2 is performed in parallel with the step S3, that is, the binary arithmetic decoding and renormalization are performed in parallel on the binary code stream data.
As shown in fig. 5, the processor 51 and the memory 52 in the display device may be connected by a bus or other means, and the bus connection is taken as an example in the figure.
The memory 52 is a computer-readable storage medium, and can be used for storing software programs, computer-executable programs, and modules, such as program instructions/modules (e.g., modules shown in fig. 4) corresponding to the entropy decoding method in the embodiment of the present application. The processor 51 executes various functional applications of the server and data processing, i.e., implements the entropy decoding method described above, by executing software programs, instructions, and modules stored in the memory 52.
The electronic device proposed by the present embodiment and the entropy decoding method proposed by the above embodiment belong to the same inventive concept, and the technical details that are not described in detail in the present embodiment can be referred to the above embodiment, and the present embodiment has the same beneficial effects as performing the entropy decoding method.
In the foregoing embodiments, the descriptions of the respective embodiments have respective emphasis, and for parts that are not described in detail in a certain embodiment, reference may be made to related descriptions of other embodiments.
The entropy decoding method and apparatus, and the electronic device provided by the embodiments of the present application are introduced in detail above, and specific examples are applied in the present application to explain the principles and embodiments of the present application, and the descriptions of the above embodiments are only used to help understand the technical solutions and core ideas of the present application; those of ordinary skill in the art will understand that: the technical solutions described in the foregoing embodiments may still be modified, or some technical features may be equivalently replaced; such modifications or substitutions do not depart from the spirit and scope of the present disclosure as defined by the appended claims.
Claims (10)
1. An entropy decoding method, characterized in that it comprises the steps of:
reading binary code stream data, and acquiring decoding parameters, wherein the decoding parameters comprise: a first interval length, an interval offset value, an accumulated value of the number of bits of arithmetic decoding, a first probability symbol, a subinterval length corresponding to a second probability symbol, a subinterval offset value corresponding to the second probability symbol, and a second interval length, wherein the second interval length is an interval length obtained by updating the first interval length according to the subinterval length;
performing binary arithmetic decoding and renormalization on the binary code stream data in parallel, wherein the binary arithmetic decoding comprises obtaining a decoding result according to the interval offset value, the second interval length and the first probability symbol; and the renormalization comprises prejudging the length of the second interval or the number of cyclic shifts of which the length of the subinterval is greater than a preset length value, and performing renormalization operation according to the offset value of the subinterval.
2. The method of claim 1, wherein said step of reading binary code stream data and obtaining decoding parameters further comprises:
initializing the binary code stream data to obtain a first interval length, an interval offset value, a first probability symbol and a probability index value;
obtaining an interval index value according to the first interval length, obtaining the subinterval length according to the probability index value and the interval index value, updating the first interval length according to the subinterval length to obtain the second interval length, and obtaining the subinterval offset value according to the interval offset value and the second interval length.
3. The method of claim 2, wherein the step of initializing the binary stream data to obtain a first interval length, an interval offset value, a first probability symbol, and a probability index value further comprises: acquiring a bit number counting value of a file to be decoded in the binary code stream data, and pre-calculating and setting a two-dimensional lookup table; and the entry parameters of the two-dimensional lookup table are a probability index value and an interval index value.
4. The method of claim 2, wherein the steps of obtaining an interval index value according to the first interval length, obtaining the sub-interval length according to the probability index value and the interval index value, obtaining the second interval length according to the first interval length updated according to the sub-interval length, and obtaining the sub-interval offset value according to the interval offset value and the second interval length further comprise:
quantizing the first interval length to obtain the interval index value;
searching a preset two-dimensional lookup table according to the probability index value and the interval index value to obtain the length of the subinterval;
acquiring the difference value between the first interval length and the subinterval length as the second interval length;
and acquiring a difference value between the interval deviation value and the second interval length as the subinterval deviation value.
5. The method of claim 1, wherein the renormalizing further comprises: and judging whether the interval deviation value is smaller than the second interval length or not, and executing corresponding renormalization operation according to a judgment result.
6. The method of claim 5, wherein when the interval offset value is less than the second interval length, the renormalization operation further comprises:
acquiring the corresponding first cyclic shift number according to the second interval length;
judging whether the length of the second interval is smaller than the preset length value or not;
if the second interval length is smaller than the preset length value, obtaining a new first interval length after updating the second interval length according to the first cyclic shift number, and updating the interval offset value according to the first cyclic shift number and the subinterval offset value;
and if the length of the second interval is greater than or equal to the preset length value, executing the operation of judging whether the accumulated value of the bit number is smaller than the preset bit width.
7. The method of claim 5, wherein when the interval offset value is greater than or equal to the second interval length, the renormalization operation further comprises:
acquiring a corresponding second cyclic shift number according to the subinterval length;
judging whether the length of the subinterval is smaller than the preset length or not;
if the subinterval length is smaller than the preset length, updating the second interval length according to the second cyclic shift number and the subinterval length to obtain a new first interval length, and updating the interval offset value according to the second cyclic shift number and the subinterval offset value;
if the second subinterval length is greater than or equal to the preset length, the new first interval length is obtained after the second interval length is updated according to the subinterval length, the interval offset value is updated according to the subinterval offset value, and the operation of judging whether the accumulated value of the bit number is smaller than the preset bit width is further executed.
8. The method of claim 1, wherein the decoding parameters further comprise: a probability index value, the binary arithmetic decoding further comprising:
judging whether the interval deviation value is larger than or equal to the second interval length;
if the interval deviation value is greater than or equal to the second interval length, performing binary negation on the first probability symbol, acquiring and storing a decoding result, and updating the first probability symbol and the probability index value;
if the interval deviation value is smaller than the second interval length, acquiring the first probability symbol as a decoding result and storing the decoding result, and updating the probability index value;
and updating the accumulated value of the bit number, and executing the operation of judging whether the accumulated value of the bit number is smaller than the preset bit width.
9. An entropy decoding apparatus, characterized in that the apparatus comprises:
a decoding parameter obtaining unit, configured to read in binary code stream data and obtain a decoding parameter, where the decoding parameter includes: a first interval length, an interval offset value, an accumulated value of the number of bits of arithmetic decoding, a first probability symbol, a subinterval length corresponding to a second probability symbol, a subinterval offset value corresponding to the second probability symbol, and a second interval length, wherein the second interval length is an interval length obtained by updating the first interval length according to the subinterval length;
a binary arithmetic decoding unit, configured to obtain a decoding result according to the interval offset value, the second interval length, and the first probability symbol;
the renormalization unit is used for prejudging the number of cyclic shifts of which the length of the second interval or the length of the subinterval is greater than a preset length value and carrying out renormalization operation according to the subinterval offset value;
wherein the binary arithmetic decoding unit and the renormalization unit are called by the decoding parameter acquiring unit at the same time to perform binary arithmetic decoding and renormalization of the binary code stream data in parallel.
10. An electronic device comprising a memory and a processor, wherein the memory stores computer-executable instructions that, when executed by the processor, cause the method of any of claims 1 to 8 to be performed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010635715.XA CN111818335B (en) | 2020-07-03 | 2020-07-03 | Entropy coding method and device and electronic equipment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010635715.XA CN111818335B (en) | 2020-07-03 | 2020-07-03 | Entropy coding method and device and electronic equipment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111818335A true CN111818335A (en) | 2020-10-23 |
CN111818335B CN111818335B (en) | 2022-04-26 |
Family
ID=72855365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010635715.XA Active CN111818335B (en) | 2020-07-03 | 2020-07-03 | Entropy coding method and device and electronic equipment |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111818335B (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113905233A (en) * | 2021-09-30 | 2022-01-07 | 安谋科技(中国)有限公司 | Entropy decoding method based on audio video coding standard, readable medium and electronic device thereof |
WO2023246514A1 (en) * | 2022-06-22 | 2023-12-28 | 广州市百果园信息技术有限公司 | Video decoding method and apparatus, and device and storage medium |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008118303A (en) * | 2006-11-01 | 2008-05-22 | Canon Inc | Decoding device and decoding method |
CN101198051A (en) * | 2006-12-07 | 2008-06-11 | 深圳艾科创新微电子有限公司 | Method and device for implementing entropy decoder based on H.264 |
CN101841707A (en) * | 2010-03-19 | 2010-09-22 | 西安电子科技大学 | High-speed real-time processing arithmetic coding method based on JPEG 2000 standard |
CN101848388A (en) * | 2010-03-19 | 2010-09-29 | 西安电子科技大学 | Method for normalizing arithmetic encoding value based on JPEG (Joint Photographic Experts Group) 2000 standard |
CN102231830A (en) * | 2010-11-23 | 2011-11-02 | 浙江大学 | Arithmetic unit used for context arithmetic encoding and decoding |
CN102438140A (en) * | 2011-06-02 | 2012-05-02 | 东南大学 | Arithmetic encoder sequence renormalization method used for image compression |
CN105791828A (en) * | 2015-12-31 | 2016-07-20 | 杭州士兰微电子股份有限公司 | Binary arithmetic encoder and encoding method thereof |
CN108401158A (en) * | 2017-02-07 | 2018-08-14 | 深圳市中兴微电子技术有限公司 | A kind of context-adaptive binary arithmetic coding renormalization implementation method and device |
KR20180095777A (en) * | 2011-02-21 | 2018-08-28 | 한국전자통신연구원 | Method and apparatus for parallel entropy encoding/decoding |
CN108965878A (en) * | 2017-05-27 | 2018-12-07 | 深圳市中兴微电子技术有限公司 | A kind of entropy decoding method and device |
-
2020
- 2020-07-03 CN CN202010635715.XA patent/CN111818335B/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008118303A (en) * | 2006-11-01 | 2008-05-22 | Canon Inc | Decoding device and decoding method |
CN101198051A (en) * | 2006-12-07 | 2008-06-11 | 深圳艾科创新微电子有限公司 | Method and device for implementing entropy decoder based on H.264 |
CN101841707A (en) * | 2010-03-19 | 2010-09-22 | 西安电子科技大学 | High-speed real-time processing arithmetic coding method based on JPEG 2000 standard |
CN101848388A (en) * | 2010-03-19 | 2010-09-29 | 西安电子科技大学 | Method for normalizing arithmetic encoding value based on JPEG (Joint Photographic Experts Group) 2000 standard |
CN102231830A (en) * | 2010-11-23 | 2011-11-02 | 浙江大学 | Arithmetic unit used for context arithmetic encoding and decoding |
KR20180095777A (en) * | 2011-02-21 | 2018-08-28 | 한국전자통신연구원 | Method and apparatus for parallel entropy encoding/decoding |
CN102438140A (en) * | 2011-06-02 | 2012-05-02 | 东南大学 | Arithmetic encoder sequence renormalization method used for image compression |
CN105791828A (en) * | 2015-12-31 | 2016-07-20 | 杭州士兰微电子股份有限公司 | Binary arithmetic encoder and encoding method thereof |
CN108401158A (en) * | 2017-02-07 | 2018-08-14 | 深圳市中兴微电子技术有限公司 | A kind of context-adaptive binary arithmetic coding renormalization implementation method and device |
CN108965878A (en) * | 2017-05-27 | 2018-12-07 | 深圳市中兴微电子技术有限公司 | A kind of entropy decoding method and device |
Non-Patent Citations (2)
Title |
---|
商世广等: "基于重归一化的CABAC算法改进", 《信息技术》 * |
王尧等: "基于HEVC的CABAC二进制算术编码器的FPGA实现", 《红外技术》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113905233A (en) * | 2021-09-30 | 2022-01-07 | 安谋科技(中国)有限公司 | Entropy decoding method based on audio video coding standard, readable medium and electronic device thereof |
CN113905233B (en) * | 2021-09-30 | 2024-04-30 | 安谋科技(中国)有限公司 | Entropy decoding method based on audio-video coding standard, readable medium and electronic device thereof |
WO2023246514A1 (en) * | 2022-06-22 | 2023-12-28 | 广州市百果园信息技术有限公司 | Video decoding method and apparatus, and device and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN111818335B (en) | 2022-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5045852A (en) | Dynamic model selection during data compression | |
KR100648258B1 (en) | Context-based adaptive binary arithmetic decoder of pipeline structure for high speed decoding operation | |
US7821430B2 (en) | Arithmetic decoding apparatus | |
US8711019B1 (en) | Context-based adaptive binary arithmetic coding engine | |
RU2595916C1 (en) | Encoder, decoder and method | |
KR102123620B1 (en) | Method and apparatus for entropy encoding or entropy decoding of video signals for large-scale parallel processing | |
CN111818335B (en) | Entropy coding method and device and electronic equipment | |
US7825835B2 (en) | Method and system for encoded video compression | |
Kim et al. | High speed decoding of context-based adaptive binary arithmetic codes using most probable symbol prediction | |
JP2009021775A (en) | Coder and coding method | |
CN112449191B (en) | Method for compressing multiple images, method and device for decompressing images | |
US8970405B2 (en) | Method and apparatus for entropy decoding | |
CN112449201B (en) | Decoding method, encoding method, corresponding devices, electronic equipment and storage medium | |
JP2000049621A (en) | Huffman decoding method and data processor | |
CN112449186A (en) | Encoding method, decoding method, corresponding devices, electronic equipment and storage medium | |
CN112073729B (en) | Model updating method, device, electronic equipment and computer readable storage medium | |
JP4936574B2 (en) | Encoding apparatus and control method thereof | |
CN116828196A (en) | Implementation method of JPEG-LS encoder based on FPGA | |
JP2934603B2 (en) | Method and apparatus for decoding variable length code | |
KR20180031944A (en) | Video decoder and electronic system including the same | |
CN102263960B (en) | Rapid context-adaptive variable-length coding (CAVLC) non-zero coefficient amplitude decoding method | |
JP2594767B2 (en) | How to decompress compressed data | |
CN113489979A (en) | Entropy coding method, entropy coding device, electronic equipment and storage medium | |
KR100672585B1 (en) | Method for decording a compressed video stream | |
JP2009175959A (en) | Divider, division method, and image encoding device using divider |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |