CN101951516A - Parallel encoding realization circuit and encoding method based on CABAC (Context-based Adaptive Binary Arithmetic Coding) in H.264/AVC (Advanced Video Coding) - Google Patents

Parallel encoding realization circuit and encoding method based on CABAC (Context-based Adaptive Binary Arithmetic Coding) in H.264/AVC (Advanced Video Coding) Download PDF

Info

Publication number
CN101951516A
CN101951516A CN 201010291264 CN201010291264A CN101951516A CN 101951516 A CN101951516 A CN 101951516A CN 201010291264 CN201010291264 CN 201010291264 CN 201010291264 A CN201010291264 A CN 201010291264A CN 101951516 A CN101951516 A CN 101951516A
Authority
CN
China
Prior art keywords
engine
output
bit
write
input
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
Application number
CN 201010291264
Other languages
Chinese (zh)
Other versions
CN101951516B (en
Inventor
刘振宇
汪东升
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CERTUSNET CORP.
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN 201010291264 priority Critical patent/CN101951516B/en
Publication of CN101951516A publication Critical patent/CN101951516A/en
Application granted granted Critical
Publication of CN101951516B publication Critical patent/CN101951516B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

The invention discloses a parallel encoding realization circuit and an encoding method based on CABAC (Context-based Adaptive Binary Arithmetic Coding) in H.264/AVC (Advanced Video Coding). The parallel encoding realization circuit comprises a binary engine, a context model engine, a parallel normalization engine and an RBSP (Remote Batch Station Processor) code stream generation engine, wherein the binary engine is used for executing a parallel normalization operation; the context model engine is used for executing context read and updating operation of two bits per period; the parallel normalization engine is used for executing the normalization operation of two bits per period; and the RBSP is used for generating an RBSP output code stream. The binary engine and the context model engine are connected in a three-writing, two-reading and first-in, first-out queue; and the parallel normalization engine and the RBSP code stream generation engine are connected in a two-writing, one-reading and first-in, first-out queue. The invention ensures that processing speeds of the binary engine, the normalization engine and the RBSP code stream generation engine are matched, avoids production line stagnancy and solves the problems of unbalanced throughput rates among various levels of processing engines and calculation bottleneck initiated by correlation of a coding interval, coding lower limit normalization and a code stream production process.

Description

Based on H.264/AVC parallel encoding realization circuit and the coding method of middle CABAC
Technical field
The present invention relates to field of video encoding, relate in particular to a kind of based on H.264/AVC parallel encoding realization circuit and the coding method of middle CABAC.
Background technology
H.264/AVC Main Profile (main class) adopt based on contextual adaptive binary arithmetic coding (Context-based Adaptive Binary Arithmetic Coding, CABAC).Test shows, with (Context-Adaptive Variable-Length Coding CAVLC) relatively, under identical code check, adopts CABAC picture quality can be improved 0.3-0.6dB based on contextual Variable Length Code algorithm.Under the high definition application scenarios, the deficiency of CABAC encryption algorithm is that throughput is low.
The processing block diagram of CABAC as shown in Figure 1, the first step is carried out dualization to the semantic primitive that does not possess dual nature and is handled, and then directly outputs to coding processing unit for the semantic primitive that possesses the bigram statistics characteristic; In second step,, carry out adaptive binary arithmetic coding according to the probability distribution characteristics of each bit in the output bit flow of dualization processing.Specifically, adopt the mode standard coding, on the contrary, the bit with even probability distribution is adopted the bypass mode coding for the bit that has based on context probability distribution characteristics.Adopt the bit of mode standard coding, at first obtain contextual information in context model, this comprises its probability index value pStateIdx[5:0] and big probability value of symbol valMPS, corresponding context model upgraded according to the value of the current bit that is encoded afterwards.PStateIdx[5:0] and the value binVal of valMPS and the current bit that is encoded be imported into the mode standard coding engine, be used to upgrade R[8:0 between the code area] and coding lower limit L[9:0], R[8:0] the presentation code interval is 9 bit signals, highest order is numbered 8, lowest order is numbered 0, and other variable with same form adopts above-mentioned method for expressing definition.By to R[8:0 between the code area after upgrading] and coding lower limit L[9:0] carry out normalization operation, generation raw byte sequence payload code stream RBSP.The handling process of mode standard coding is referring to list of references 1 (T.Wiegand, G.Sullivan, and A.Luthra, " Draft itu-trecommendation and final draft international standard of joint videospecification (ITUT rec.H.264-ISO/IEC 14496-10AVC), " May 2003.JVT-G050r1) shown in middle Fig. 9-7.Different with the mode standard coding, the bypass mode coding adopts fixedly contextual information, does not need to search and upgrade context model.
Realize that H.264/AVC there is following difficulty in standard C ABAC algorithm:
1, computing granularity is little: H.264/AVC in the standard generation flow process of normalization operation and output code flow can referring to above-mentioned from list of references 1 Fig. 9-8,9-9 and 9-10, wherein normalization computing granularity is to be unit with a bit.
2, in the normalized process to each bit, to operate and export the generation close-coupled of bit between the code area with the normalization of coding lower limit.Initial value as between R ' expression normalization code area needs so Inferior circulation is finished its normalization operation and is produced corresponding output code flow, wherein
Figure BSA00000282503400022
For rounding operation downwards.Owing to will solve the carry propagation problem in the normalization process, H.264/AVC introduce Outstan dingBits variable (OB) in the agreement.If OB is not equal to 0, the output code flow generation unit needs a plurality of cycleoperations, and this situation can further reduce the efficient of CABAC coding engine.
3, the output that the semantic primitive dualization is handled is non-block code, part semantic primitive coding back is single-bit output, this characteristic has been brought difficulty for the coding engine of realizing having greater than 1 constant code speed, therefore need carry out the throughput equilibrium treatment to dualization engine and arithmetic coding engine.
Summary of the invention
(1) technical problem that will solve
At defective that exists in the prior art and deficiency, the CABAC coding that the purpose of this invention is to provide the constant throughput of a kind of phase that has 2 bits weekly that is used for video coding agreement is H.264/AVC realized circuit and coding method, one, the processing speed that makes dualization engine and normalization engine and RBSP code stream generate engine is complementary; Its two, solve the unbalanced problem of throughput between processing engine at different levels and avoid pipeline stall; Its three, solve in the CABAC algorithm between the code area and the calculating bottleneck problem that correlation caused of coding lower limit normalization and code stream production process.
(2) technical scheme
For solving the problems of the technologies described above, the invention provides a kind of parallel encoding and realize circuit based on CABAC in H.264/AVC, comprise first order streamline, for being used to carry out the dualization engine of parallel normalized computing; Second level streamline reads and upgrades the context model engine of operation for the context that is used to carry out weekly the phase dibit; Third level streamline is the parallel normalized engine of the normalization operation that is used to carry out weekly the phase dibit; And fourth stage streamline, for being used to produce the RBSP code stream generation engine of raw byte sequence payload RBSP output code flow; Wherein, described dualization engine and context model engine are intersegmental writes 2 with 3 and reads First Input First Output and be connected; Parallel normalized engine and RBSP code stream generate that engine is intersegmental to be write 1 with 2 and read First Input First Output and be connected.
Wherein, described dualization engine is the discrete cosine transform/quantification DCT/Q coefficient dualization engine based on the table tennis storage organization, is used for executed in parallel coefficient scanning and dualization coding.
Wherein, the input signal of described dualization engine comprises current processed semantic primitive value Cur.SE, relevant with the described semantic primitive value semantic primitive value NeighborSEs that closes on, 3 write the 2 number hole_num[2:0 that read idle memory cell in the First Input First Output], and relevant dualization engine control information Ctrl.Info; The output signal of described dualization engine comprises dualization output valve { the binVali|i ∈ { 0 of 3 bits, 1,2}}, the corresponding context index value of each output bit ctxIdxi[7:0] | i ∈ { 0,1,2}} and write 3 and write 2 and read dualization output bit in the First Input First Output and the total number w_num[1:0 of related context index value], as w_num[1:0] when being not equal to 0, described dualization engine is with { binVali, ctxIdxi[7:0] | i<w_num[1:0] write subordinate's First Input First Output, wherein i is 0 or 1 or 2, a[b:c] variable of form represents to be between the code area bit signal a of b+1, a is the title of signal, and b is the highest order numbering, is c lowest order numbering.
Wherein, the circuit structure of described dualization engine has following feature: 1) carry out in the process of described coefficient scanning, described circuit reads 4x4 piece DCT/Q coefficient, and this coefficient is write in the table tennis storage organization by the linear address incremental order; 2) in the process of carrying out described coefficient scanning, write down the indicating vector of 15 bits and the index value of last non-zero coefficient simultaneously; 3) index value of described indicating vector and last non-zero coefficient is used for the dualization coding of marking pattern significant_map, and described marking pattern is that the index value according to indicating vector register and last non-zero coefficient dynamically produces in cataloged procedure; 4) in the dualization cataloged procedure to 4x4 piece DCT/Q coefficient, by the index value of described indicating vector and last non-zero coefficient, described one step of circuit generates the address of reading of nonzero coefficient.
Wherein, the context of described context model engine reads and upgrades operation and adopt the register in the standard cell lib to realize, and adopt following design: the context model of described context model engine is classified according to the tablet mode under it, the context that belongs to same tablet mode is stored in 2 and reads in the memory cell of 2 write ports, and other context model information stores is on the sheet of single port in the internal memory, when tablet mode changes, 2 contents of reading in the memory cell of 2 write ports are upgraded, in renewal process, the phase is upgraded 2 contexts weekly.
Wherein, described parallel normalized engine is made up of the cascade of two monocycle normalization engines, phase is handled the normalized of dibit simultaneously weekly, and its input signal comprises: binVal0, valMPS0, pStateIdx0[5:0], valid0, mode0, binVal1, valMPS1, pStateIdx1[5:0], valid1 and mode1; Wherein, binVal0 and binVal1 represent the value of processed bit; ValMPS0 and valMPS1 represent big probability value of symbol; PStateIdx0[5:0] and pStateIdx1[5:0] expression probability index value; Valid0 and valid1 represent whether processed bit is effective; Mode0 and mode1 represent the coding mode of processed bit, and 0 is the standard code pattern, and 1 is the bypass coding mode, and the suffix 0 and 1 of input signal is used to distinguish the order of processed bit; The output signal of parallel normalized engine is OB0[7:0], β 0[2:0], L0[6:0], we0, OB1[7:0], β 1[2:0], L1[6:0] and we1; When wei|i ∈ 0,1}} is 1 o'clock, exports OBi[7:0 accordingly], β i[2:0] and Li[6:0] be written into subordinate 2 and write 1 and read First Input First Output, i=0 or 1 is used for subordinate's engine and generates the RBSP code stream.
Wherein, described parallel normalized engine comprises: OB[7:0] register, be used to store current variable OB value; R[8:0] the code area inter-register, be used to store present encoding interval variable value; L[9:0] the coding lower limit register, be used to store present encoding lower limit variate-value; Described 2 to write 1 degree of depth of reading First Input First Output be 10, and every is 18 bit bit wides; Under the mode standard, high 7 after position section [17:11] memory encoding lower limit upgrades; Under the bypass mode, the highest order after position section [17] memory encoding lower limit upgrades, position section [16:11] is meaningless; Position section [10:3] storage OB[7:0]; Position section [2:0] storage of variables β [2:0]; OB[7:0 wherein] with the content of β [2:0] storage be the output signal OBi[7:0 of parallel normalized engine] and β i[2:0], i=0 or 1; The output result of described parallel normalized engine of phase after rear of queue writes dibit normalization at most weekly, simultaneously, when formation when not being empty, the RBSP code stream generates engine playback head pointer Storage Item pointed; Its meta section [b:c] presentation code is interval to be the position section of c to b, and b, c are integer, and b is that highest order is numbered, and is c lowest order numbering.
Wherein, it be can be in that the phase produces the output code flow generation engine of multidigit output bit weekly that described RBSP code stream generates engine, described output code flow produces engine and comprises precedence bits output engine and suffix bits output engine, write 1 when reading the First Input First Output non-NULL when 2, output code flow generation engine is write 1 information of reading the First Input First Output head term according to 2 and is generated the RBSP code stream, described precedence bits output engine is used for writing 1 according to 2 and reads the value of First Input First Output head term highest order and the variable OB[7:0 that is stored] value, generate value and follow-up OB[7:0 by a bit highest order] a position bit value is the character string of highest order negate; Described suffix bits output engine is used for the Bit String that generation is made up of input position section [16:16-β [2:0]+1], and is input to the RBSP code stream, and wherein, the data that are written in the RBSP code stream are exported with the byte mode alignment.
In addition, the present invention also provides a kind of parallel encoding method based on CABAC in H.264/AVC of utilizing that foregoing circuit realizes, may further comprise the steps:
Described dualization engine is encoded to executed in parallel DCT/Q coefficient scanning with to the dualization of DCT/Q coefficient;
Described context model engine is write 2 output signals of reading First Input First Output according to described 3 and is carried out weekly the context of phase dibit and read and upgrade operation;
Described parallel normalized modeling engine respectively under operative norm coding and the bypass coding mode between the code area and the normalization operation of coding lower limit;
Described RBSP code stream generation engine is write 1 output signal of reading First Input First Output according to 2 and is produced the RBSP output code flow.
(3) beneficial effect
Compared with prior art, the present invention can produce following beneficial effect:
At first, the design of dualization accelerating engine has been proposed, phase can produce the dualization output code flow of 1 to 3 bit weekly, specifically, the dualization of 4x4 piece DCT/Q coefficient is handled based on the table tennis storage organization, coefficient scanning and the concurrent working of dualization coding, thereby satisfied the 2 bits constant process speed of phase weekly, and write 2 with 6 grade 3 between dualization engine and back level processing engine and read First Input First Output and be connected, this structure can be balanced before and after the processing speed of level, thereby the dualization engine can mate the processing speed that follow-up normalization engine and RBSP code stream generate engine;
Secondly, the normalization of any bit is all handled with combinational circuit, has avoided the pipeline stall that multicycle normalization operation is introduced in the prior art; Parallel normalized processing and RBSP code stream are produced operation be decomposed into two level production lines, write 1 with 10 grade 2 between parallel normalized engine and RBSP code stream generation engine and read First Input First Output and be connected, this structure can effectively be avoided pipeline stall;
At last, the throughput that the circuit that is proposed is realized is constant, it is per clock cycle of 2 bits, its throughput is irrelevant with handles in bit stream small probability symbol probability of happening, and this has solved in the CABAC algorithm between the code area calculating bottleneck that correlation caused with encode lower limit normalization and code stream production process.
Description of drawings
Fig. 1 is an existing CABAC system block diagram H.264/AVC;
Fig. 2 is the circuit overall architecture block diagram of the embodiment of the invention;
Fig. 3 is the circuit diagram of the parallel dualization engine of storing based on rattling of the embodiment of the invention;
Fig. 4 is the circuit diagram of the parallel normalized engine of the embodiment of the invention;
Fig. 5 is between the mode standard code area of the embodiment of the invention and the coding lower limit upgrades the circuit diagram of engine;
Fig. 6 follows bit for the mode standard of the embodiment of the invention and upgrades the circuit diagram that generates variable OB and variable β in the engine.
Embodiment
Below in conjunction with drawings and Examples, the specific embodiment of the present invention is described in further detail.Following examples are used to illustrate the present invention, but are not used for limiting the scope of the invention.
The design and the realization of CABAC coding engine in real time during H.264/AVC the present invention can be applicable to.
According to the circuit overall architecture block diagram of the embodiment of the invention as shown in Figure 2.The definition of the input/output variable of the top pipeline organization of CABAC encoder and each level production line at first is described:
The CABAC encoder adopts 4 stage pipeline structure, comprises from top to bottom: (1) dualization engine; (2) context model engine; (3) parallel normalized engine and (4) RBSP code stream generate engine.For keeping the balance of throughput between each streamline engine, adopt 3 of 6 memory cell to write 2 between dualization engine and the context model engine and read First Input First Output and is connected, 2 of employing 10 memory cell write 1 and read First Input First Output and be connected between parallel normalized engine and the RBSP code stream generation engine.Introduce each level production line below successively:
First order streamline is the dualization engine, and it comprises from the outside input signal of parallel encoding module (being the CABAC encoder):
1.Cur.SE: processed semantic primitive value;
2.NeighborSEs: the neighbours semantic primitive value relevant with processed semantic primitive;
3.Ctrl.Info: relevant dualization engine control information comprises module reset signal and coding enable signal.
The writing 2 input signals of reading First Input First Output from 3 and comprise of dualization engine:
1.hole_num[2:0]: represent that current 3 write the 2 dummy cell numbers of reading in the First Input First Output.Hole_num[2:0] the presentation code interval is 3 bit signals, and highest order is numbered 2, and lowest order is numbered 0, other variable with same form adopts the definition of above-mentioned method for expressing, for example, ctxIdx[7:0] the presentation code interval is 8 bit signals, highest order is numbered 7, and lowest order is numbered 0.
The dualization engine outputs to 3 and writes 2 signals of reading First Input First Output and comprise:
1.binVal0: the value of the 0th bit that this cycle generated;
2.ctxIdx0[7:0]: the context index value of the 0th bit that this cycle generated, wherein ctxIdx0[7:0] equal 255 and show that binVal0 adopts the bypass coding mode;
3.binVal1: the value of the 1st bit that this cycle generated;
4.ctxIdx1[7:0]: the context index value of the 1st bit that this cycle generated, ctxIdx1[7:0] equal 255 and show that binVal1 adopts the bypass coding mode;
5.binVal2: the value of the 2nd bit that this cycle generated;
6.ctxIdx2[7:0]: the context index value of the 2nd bit that this cycle generated, ctxIdx2[7:0] equal 255 and show that binVal2 adopts the bypass coding mode;
7.w_num[1:0]: since the 0th bit, be written to 3 and write 2 number of reading First Input First Output: w_num[1:0] be 0, expression does not write any data; W_num[1:0] be 1, expression binVal0 and ctxIdx0[7:0] write the memory cell of tail pointer indication; W_num[1:0] be 2, expression binVal0 and ctxIdx0[7:0] write the memory cell of tail pointer indication and binVal1 and ctxIdx1[7:0] write the memory cell that tail pointer adds an indication; W_num[1:0] be 3, expression binVal0 and ctxIdx0[7:0] write the memory cell of tail pointer indication, and binVal1 and ctxIdx1[7:0] write the memory cell that tail pointer adds an indication, and binVal2 and ctxIdx2[7:0] write the memory cell that tail pointer adds two indications.
Second level streamline is the context model engine, and it is write 2 input signals of reading First Input First Output from 3 and comprises:
1.item_num[2:0]: represent that current 3 write 2 and read significant bit number in the First Input First Output.
Read the bit value that the First Input First Output head pointer points to the unit 2.binVal0:3 write 2;
3.ctxIdx0[7:0]: 3 write 2 reads the context index value that the First Input First Output head pointer points to the unit;
Read the bit value that the First Input First Output head pointer adds a sensing unit 4.binVal1:3 write 2;
5.ctxIdx1[7:0]: 3 write 2 reads the context index value that the First Input First Output head pointer adds a sensing unit.
The context model engine outputs to 3 and writes 2 signals of reading First Input First Output and comprise:
1.r_num[1:0]: expression is write 2 unit number of reading the First Input First Output of reading from 3.
The signal suffix that the context model engine outputs to parallel normalized engine is 0, and this signal is produced by first bit value that reads in and relevant context index value, comprising:
1.valid0: effectively whether first bit of reading of expression (1: effectively, 0: invalid);
2.binVal0: first bit value;
3.mode0: work as mode0=0, represent that first bit adopts the standard code pattern to encode; Work as mode0=1, represent that first bit adopts the bypass coding mode to encode;
4.pStateIdx0[5:0]: first bit is the probability index value of big probability symbol;
5.valMPS0: the binary value of the big probability symbol of first bit correspondence.
The signal suffix that the context model engine outputs to parallel normalized engine is 1, and this signal is produced by second bit value that reads in and relevant context index value, comprises valid1, binVal1, mode1, pStateIdx1[5:0] and valMPS1, its implication is identical with above-mentioned signal.
Third level streamline is parallel normalized engine, and it outputs to 2 and writes 1 signal of reading First Input First Output and comprise:
1.we0: when we0 equals 1, represent that the first bit normalization meeting produces the RBSP code stream, output OB0[7:0], β 0[2:0] and L0[6:0] value need write 2 and write 1 and read First Input First Output; When we0 equals 0, expression does not produce the RBSP code stream, output OB0[7:0], β 0[2:0] and L0[6:0] value can not write 2 and write 1 and read First Input First Output;
2.L0[6:0]: be used to produce the RBSP code stream;
3.OB0[7:0]: be used to produce the RBSP code stream, show L0[6] (expression L0[6:0] highest order) heel with value be
Figure BSA00000282503400091
(
Figure BSA00000282503400092
Be L0[6] inverse) number of bits;
4. β 0[2:0]: be used to produce the RBSP code stream, its value non-zero then shows L0[5:6-β 0[2:0]] will output to the RBSP code stream;
5.we1: when we1 equals 1, show that the second bit normalization meeting produces the RBSP code stream, output OB1[7:0], β 1[2:0] and L1[6:0] value will write 2 and write 1 and read First Input First Output; When we1 equals 0, show not produce the RBSP code stream output OB1[7:0], β 1[2:0] and L1[6:0] value can not write 2 and write 1 and read First Input First Output;
6.L1[6:0]: be used to produce the RBSP code stream;
7.OB1[7:0]: be used to produce the RBSP code stream, indicate L1[6] heel with value be Number of bits;
8. β 1[2:0]: be used to produce the RBSP code stream, its value non-zero then shows L1[5:6-β 1[2:0]] also will output to the RBSP code stream;
Fourth stage streamline generates engine for the RBSP code stream, and it is write 1 input signal of reading First Input First Output from 2 and comprises:
1.valid: 1 data of reading in the First Input First Output head pointer memory cell pointed whether effectively (1: are effectively write in expression 2; 0: invalid);
2.L[6:0], OB[7:0] with β [2:0] be data in the head pointer memory cell pointed; The RBSP code stream generates engine and outputs to 2 and write 1 signal of reading First Input First Output and comprise:
1.re: read enable signal, re is 1 o'clock, and the data in the head pointer memory cell pointed are ejected from formation.
The signal that RBSP code stream generation engine outputs to the RBSP code stream is:
1.RBSP[7:0]: the RBSP code stream with byte-aligned of generation;
2.RBSP_we: output code flow is write enable signal, is to show current output port RBSP[7:0 at 1 o'clock] data are effective, otherwise, output port RBSP[7:0] data are invalid.
Operation principle below in conjunction with Fig. 3~6 explanations circuit of the present invention.
The dualization circuit structure of 4x4 piece DCT/Q coefficient as shown in Figure 3.The dualization of 4x4 piece DCT/Q coefficient is handled and is divided into two stages: sweep phase and dualization coding stage.At sweep phase, Zig-Zag (zigzag) scan address generation circuit generates outside 4x4 piece DCT/Q coefficient memory by the Zig-Zag order and reads the address, the coefficient read produces its absolute value subtract one (abs_minus1[14:0]) and symbol (sign) thereof, abs_minus1[14:0 through logical circuit] and sign write the table tennis memory cell (memory cell 0 or memory cell 1) of dualization engine internal.Because the absolute value of DCT/Q coefficient is less than 2 15So, subtract one carry value when giving up its absolute value, only keep under its situation of low 15, when coefficient is 0, abs_minus1[14:0] equal 2 15-1.The design judges with this whether former coefficient is 0, and the flag bit that generates writes 15 " indicating vector register ", and this flag bit also is the clock enable signal of " last non-zero coefficient index value " register simultaneously.
After a 4x4 piece DCT/Q coefficient scanning finished, enter dualization coding stage.In coding stage at first is marking pattern (significant_map) to be carried out dualization handle.In the present invention, the generation of significant_map dynamically produces (can with reference to figure 3) according to " indicating vector " register and " last non-zero coefficient index value " register in cataloged procedure.Indicating vector and last non-zero coefficient index value are sent into " significant_map dualization engine " as input signal, this engine is the phase dualization output that can produce 3 bits at most weekly, its operation principle is as follows: " significant_map dualization engine " use " current mark bit index " variable indicates this cycle dualization and operates the index address that begins in the pairing indicating vector, its corresponding flag bit is " flag bit 0 ", the flag bit that " current mark bit index " adds a correspondence is " flag bit 1 ", and the flag bit that " current mark bit index " adds two correspondences is " flag bit 2 ".In addition, in " significant_map dualization engine ", also there is a variable " preceding cycle last non-zero sign is left over ", when being 1, this variable shows: in last cycle dualization cataloged procedure, last bit flag coding be output as 1 and its " last non-zero sign " also do not write 3 and write 2 and read First Input First Output, therefore need be at current period with this sign output.According to " preceding cycle last non-zero sign is left over ", and the value of " flag bit 0 " and " flag bit 1 ", the result of output dualization bit divides five kinds of situations to handle:
1. " preceding cycle last non-zero sign is left over " equals 0, " flag bit 0 " equals 0, " flag bit 1 " equals 0: output binVal0 and ctxIdx0[7:0] determine by " flag bit 0 ", output binVal1 and ctxIdx1[7:0] by " flag bit 1 " decision, output binVal2 and ctxIdx2[7:0] determine by " flag bit 2 ";
2. " preceding cycle last non-zero sign is left over " equals 0, " flag bit 0 " equals 0, " flag bit 1 " equals 1: output binVal0 and ctxIdx0[7:0] determine by " flag bit 0 ", output binVal1 and ctxIdx1[7:0] determine by " flag bit 1 ", output binVal2 and ctxIdx2[7:0] be " the last non-zero sign " of " flag bit 1 ", equal " last non-zero coefficient index value " if " current mark bit index " adds one, binVal2 equals 1, otherwise binVal2 equals 0;
3. " preceding cycle last non-zero sign is left over " equals 0, " flag bit 0 " equals 1: output binVal0 and ctxIdx0[7:0] determine by " flag bit 0 ", output binVal1 and ctxIdx1[7:0] be " the last non-zero sign " of " flag bit 0 ", if " current mark bit index " equals " last non-zero coefficient index value ", binVal1 equals 1, otherwise binVal1 equals 0, output binVal2 and ctxIdx2[7:0] determine by " flag bit 1 ";
4. " preceding cycle last non-zero sign is left over " equals 1, " flag bit 0 " equals 0: output binVal0 and ctxIdx0[7:0] be " the last non-zero sign " of " flag bit 0 " last position, if subtracting one, " current mark bit index " equal " last non-zero coefficient index value ", binVal0 equals 1, otherwise binVal0 equals 0, output binVal1 and ctxIdx1[7:0] by " flag bit 0 " decision, output binVal2 and ctxIdx2[7:0] determine by " flag bit 1 ";
5. " preceding cycle last non-zero sign is left over " equals 1, " flag bit 0 " equals 1: output binVal0 and ctxIdx0[7:0] be " the last non-zero sign " of " flag bit 0 " last position, if subtracting one, " current mark bit index " equal " last non-zero coefficient index value ", binVal0 equals 1, otherwise binVal0 equals 0, output binVal1 and ctxIdx1[7:0] determine by " flag bit 0 ", output binVal2 and ctxIdx2[7:0] be " the last non-zero sign " of " flag bit 0 ", if " current mark bit index " equals " last non-zero coefficient index value ", binVal2 equals 1, otherwise binVal2 equals 0; It should be noted that: the output signal of being mentioned in the method that five kinds of situations of above-mentioned branch are handled not is all to be written to 3 to write 2 and read First Input First Output, specifically writes binVali and ctxIdxi[7:0] number by w_num[1:0] control.
At abs_minus1[14:0] and sign dualization processing procedure in, " indicating vector " register and " last non-zero coefficient index value " register be common to generate the address of reading of the nonzero coefficient that is stored in " coefficient formation ".The initial value of " address is read in the coefficient formation " is set to " last non-zero coefficient index value ", at this moment last last non-zero coefficient in " address is read in the coefficient formation " sensing " coefficient formation ".In the starting stage, " indicating vector register " the n position that moves to right, n equals 15 and deducts " last non-zero coefficient index value ".As the abs_minus1[14:0 that finishes a coefficient] and after the sign dualization handles, the coefficient formation is read the address and is deducted tz+1 (tz is the quantity of trailing zeros in current " indicating vector register ", the number of continuous 0 bit of promptly trailing), this spline coefficient formation is read the address and is just pointed to next nonzero coefficient in " coefficient formation ".Then, " indicating vector " register tz+1 position that moves to right.This process is sustained, and reads the value of address less than tz+1 up to current coefficient formation.
The context model phase context that can handle 2 bits weekly reads and upgrades operation, therefore realize that the memory circuit of context model has 2 read ports and 2 write ports, adopt the register in the standard cell lib to realize, therefore have power consumption and the bigger defective of chip area expense.For power consumption and the chip area that reduces the context model circuit, design proposed by the invention is divided into 3 classes: SI/I with 399 kinds of context models according to the tablet mode under it (slice mode), SP/P and B (being the tablet mode item name of H.264 stipulating in the agreement).The context model that belongs to same tablet mode is stored in 2 and reads in the memory cell of 2 write ports, and other context model information is stored on the single port sheet in the internal memory.When tablet mode changes, need upgrade 2 context models of reading in the memory cell of 2 write ports.This design is based on the change of tablet mode, generally only occur in the beginning of a frame/field coding, and the context bar number of sharing between different tablet mode is 237.In the renewal process, renewable 2 contexts of phase weekly, total process is no more than 69 cycles.The method can reduce reading of chip area expense and context model memory cell effectively and upgrade the power consumption cost.
Wherein there is following functional part: OB[7:0 in 2 bit parallel normalization circuit block diagrams as shown in Figure 4] register (being " OB " among the figure): store current variable OB value.R[8:0] code area inter-register (being " R " among the figure): storage present encoding interval variable value.L[9:0] coding lower limit register ((being " L " among the figure)): storage present encoding lower limit variate-value.
Renewal engine with the coding lower limit between the code area comprises " L﹠amp; R upgrades engine 0 " and " L﹠amp; R upgrades engine 1 "." L﹠amp; R upgrades engine 0 " be used between the code area of first bit (bit 0) and the renewal work of coding lower limit, be output as R ' after the renewal 0[8:0] and L ' 0[10:0].This upgrades engine and works in standard (mode 0≡ 0, and " ≡ " expression " is constantly equal to ") and bypass (mode 0≡ 1) two kinds of patterns.When working in mode standard, it exports R ' 0[8:0] and L ' 0[10:0] is defined as:
Figure BSA00000282503400141
Wherein, R LPSFor according to R[8:0] and pStateIdx[5:0] value according to the gained of tabling look-up of the definition in the list of references 1, R MPS=R-R LPS
When working in bypass mode, R ' 0[8:0] equals its input R[8:0], L ' 0[10:0] is defined as:
" L﹠amp; R upgrades engine 1 " be used to carry out between the code area of second bit (bit 1) and the renewal work of coding lower limit, between the code area of its input and the coding lower limit be R ' 0[8:0] and L ' 0Result after [10:0] normalization comes from the output R of " normalization engine 0 " " 0[8:0] and L " 0[10:0], other input comprises the signal relevant with bit 1, comprises binVal1, mode1, pStateIdx1[5:0] and valMPS1." L﹠amp; R upgrades engine 1 " update algorithm and " L﹠amp; R upgrades engine 0 " identical.
Normalization engine with the coding lower limit between the code area comprises " normalization engine 0 " and " engine 1 is upgraded in normalization ".The normalization engine has two kinds of mode of operations: mode standard and bypass operating mode.When the normalization engine is operated in mode standard, its circuit block diagram as shown in Figure 5.When the normalization engine is operated in bypass mode, if L ' [10] ≡ 1 defines L " [9:0] ≡ L ' [9:0], otherwise, definition L " [9]=0 and L " [8:0] ≡ L ' [8:0].
OB upgrades engine and comprises " OB upgrades engine 0 " and " OB upgrades engine 1 ".OB[7:0] upgrade engine and have two kinds of mode of operations equally: mode standard and bypass operating mode.When it is operated in mode standard, variable OB[7:0] and the refresh circuit block diagram of β [2:0] is as shown in Figure 6, variable n[2:0 wherein] be the output of Fig. 5, variable σ is the output of leading 1 counter; When it is operated in bypass mode, β [2:0] is constantly equal to 0, for variable OB[7:0] renewal in two kinds of situation: as input L ' [10:9] ≡ 01, it exports OB ' [7:0]=OB[7:0]+1; Otherwise, OB ' [7:0]=0.The input L ' [10:0] of " OB upgrades engine 0 " is from L ' 0[10:0], input n[2:0] from n 0[2:0], input OB[7:0] from OB[7:0] output of register, it is output as OB ' 0[7:0] and β 0[2:0].The input L ' [10:0] of " OB upgrades engine 1 " is from L ' 1[10:0], input n[2:0] from n 1[2:0], input OB[7:0] from OB ' 0[7:0], it is output as OB ' 1[7:0] and β 1[2:0].
Output is write enable signal we0 and equal 0:(1 in following situation) respective input signals valid0 ≡ 0, promptly input bit 0 is invalid; (2) when input bit adopts the mode standard coding, L ' 0[9] ≡ 0, and L ' 0[8:9-n 0[2:0]] in be not 0 bit; (3) when input bit adopts the bypass mode coding, L ' 0[10:9] ≡ 01.Except that above-mentioned situation, we0 equals 1.When we0 equals 1, output β 0[2:0], OB0[7:0] and L0[6:0] write subordinate 2 and write 1 memory cell of reading the tail pointer indication of First Input First Output.
Output is write enable signal we1 and equal 0:(1 in following situation) respective input signals valid1 ≡ 0, promptly input bit 1 is invalid; (2) when input bit adopts the mode standard coding, L ' 1[9] ≡ 0, and L ' 1[8:9-n 1[2:0]] in be not 0 bit; (3) when input bit adopts the bypass mode coding, L ' 1[10:9] ≡ 01.Except that above-mentioned three kinds of situations, we1 equals 1.When we1 equals 1, output β 1[2:0], OB1[7:0] and L1[6:0] will write 2 of subordinate and write 1 and read First Input First Output, the position of the memory cell that is write is relevant with the value of we0: if we0 equals 0, write the memory cell of tail pointer indication, otherwise write the memory cell that tail pointer adds an indication.
Output signal L0[6:0] relevant with the coding mode of bit 0, for standard code pattern, L0[6:0] equal L ' 0[9:3]; Otherwise, L0[6:0] and equal L ' 0[10].Output signal L1[6:0] relevant with the coding mode of bit 1, for standard code pattern, L1[6:0] equal L ' 1[9:3]; Otherwise, L1[6:0] and equal L ' 1[10].
Valid0 or valid1 equal at 1 o'clock, register OB[7:0], R[8:0] and L[9:0] in value need to upgrade, when valid1 equals 1, OB ' 1[7:0], R " 1[8:0] and L " 1The value of [9:0] is used to upgrade above-mentioned register; Otherwise, OB ' 0[7:0], R " 0[8:0] and L " 0The value of [9:0] is used to upgrade above-mentioned register.
2 to write 1 degree of depth of reading First Input First Output be 10, and every is 18 bit bit wides: position section [17:11] is a variables L [6:0], under the mode standard, high 7 after the memory encoding lower limit upgrades, under the bypass mode, the highest order after position section [17] memory encoding lower limit upgrades, position section [16:11] is meaningless; Position section [10:3] is variable OB[7:0]; Position section [2:0] is variable β [2:0].
RBSP code stream generation engine is write 1 memory cell of reading the head pointer indication of First Input First Output from 2 and is taken out variables L [6:0], β [2:0] and OB[7:0], produce the RBSP code stream by the byte-aligned mode.The data-path circuit that bit generates engine is mainly by the buffer storage buf[7:0 of 8 bits], precedence bits output engine and suffix bits output engine form.The input signal of precedence bits output engine is L[6] and OB[7:0], its function is to generate bit stream L[6] and follow-up OB[7:0] individual
Figure BSA00000282503400161
Produce the output of 8 bits in the precedence bits output engine monocycle at most, these output bits and buffer storage buf[7:0] in after the bit of buffer memory splices, preceding 8 bits are write the RBSP code stream, remaining bit deposits buf[7:0 again in]; The input signal of suffix bits output engine is L[5:0] and β [2:0], when the value of β [2:0] is not equal to 0, the suffix bits output engine produces code stream L[5:6-β [2:0]], after the bit of buffer memory splices in this output and the buffer storage, if total amount of bits is not less than 8, preceding 8 bits are write the RBSP code stream, remaining bit deposits buffer storage again in, otherwise spliced bit stream directly deposits buffer storage in.
The above only is embodiments of the present invention; should be pointed out that for those skilled in the art, under the prerequisite that does not break away from the technology of the present invention principle; can also make some improvement and modification, these improve and modification also should be considered as protection scope of the present invention.

Claims (9)

1. the parallel encoding based on CABAC in is H.264/AVC realized circuit, it is characterized in that, comprises first order streamline, for being used to carry out the dualization engine of parallel normalized computing; Second level streamline reads and upgrades the context model engine of operation for the context that is used to carry out weekly the phase dibit; Third level streamline is the parallel normalized engine of the normalization operation that is used to carry out weekly the phase dibit; And fourth stage streamline, for being used to produce the RBSP code stream generation engine of raw byte sequence payload RBSP output code flow; Wherein, described dualization engine and context model engine are intersegmental writes 2 with 3 and reads First Input First Output and be connected; Parallel normalized engine and RBSP code stream generate that engine is intersegmental to be write 1 with 2 and read First Input First Output and be connected.
2. the parallel encoding based on CABAC in H.264/AVC as claimed in claim 1 is realized circuit, it is characterized in that, described dualization engine is the discrete cosine transform/quantification DCT/Q coefficient dualization engine based on the table tennis storage organization, is used for executed in parallel coefficient scanning and dualization coding.
3. as claimed in claim 1ly realize circuit based on CABAC parallel encoding in H.264/AVC, it is characterized in that, the input signal of described dualization engine comprises current processed semantic primitive value Cur.SE, relevant with the described semantic primitive value semantic primitive value Neighbor SEs that closes on, 3 write the 2 number hole_num[2:0 that read idle memory cell in the First Input First Output], and relevant dualization engine control information Ctrl.Info; The output signal of described dualization engine comprises dualization output valve { the binVali|i ∈ { 0 of 3 bits, 1,2}}, the corresponding context index value of each output bit ctxIdxi[7:0] | i ∈ { 0,1,2}} and write 3 and write 2 and read dualization output bit in the First Input First Output and the total number w_num[1:0 of related context index value], as w_num[1:0] when being not equal to 0, described dualization engine is with { binVali, ctxIdxi[7:0] | i<w_num[1:0] write subordinate's First Input First Output, wherein i is 0 or 1 or 2, a[b:c] variable of form represents to be between the code area bit signal a of b+1, a is the title of signal, and b is the highest order numbering, is c lowest order numbering.
4. the parallel encoding based on CABAC in H.264/AVC as claimed in claim 2 is realized circuit, it is characterized in that, the circuit structure of described dualization engine has following feature: 1) carry out in the process of described coefficient scanning, described circuit reads 4x4 piece DCT/Q coefficient, and this coefficient is write in the table tennis storage organization by the linear address incremental order; 2) in the process of carrying out described coefficient scanning, write down the indicating vector of 15 bits and the index value of last non-zero coefficient simultaneously; 3) index value of described indicating vector and last non-zero coefficient is used for the dualization coding of marking pattern significant_map, and described marking pattern is that the index value according to indicating vector register and last non-zero coefficient dynamically produces in cataloged procedure; 4) in the dualization cataloged procedure to 4x4 piece DCT/Q coefficient, by the index value of described indicating vector and last non-zero coefficient, described one step of circuit generates the address of reading of nonzero coefficient.
5. the parallel encoding based on CABAC in H.264/AVC as claimed in claim 1 is realized circuit, it is characterized in that, the context of described context model engine reads and upgrades operation and adopt the register in the standard cell lib to realize, and adopt following design: the context model of described context model engine is classified according to the tablet mode under it, the context that belongs to same tablet mode is stored in 2 and reads in the memory cell of 2 write ports, and other context model information stores is on the sheet of single port in the internal memory, when tablet mode changes, 2 contents of reading in the memory cell of 2 write ports are upgraded, in renewal process, the phase is upgraded 2 contexts weekly.
6. the parallel encoding based on CABAC in H.264/AVC as claimed in claim 1 is realized circuit, it is characterized in that, described parallel normalized engine is made up of the cascade of two monocycle normalization engines, phase is handled the normalized of dibit simultaneously weekly, and its input signal comprises: binVal0, valMPS0, pStateIdx0[5:0], valid0, mode0, binVal1, valMPS1, pStateIdx1[5:0], valid1 and mode1; Wherein, binVal0 and binVal1 represent the value of processed bit; ValMPS0 and valMPS1 represent big probability value of symbol; PStateIdx0[5:0] and pStateIdx1[5:0] expression probability index value; Valid0 and valid1 represent whether processed bit is effective; Mode0 and mode1 represent the coding mode of processed bit, and 0 is the standard code pattern, and 1 is the bypass coding mode, and the suffix 0 and 1 of input signal is used to distinguish the order of processed bit; The output signal of parallel normalized engine is OB0[7:0], β 0[2:0], L0[6:0], we0, OB1[7:0], β 1[2:0], L1[6:0] and we1; When wei|i ∈ 0,1}} is 1 o'clock, exports OBi[7:0 accordingly], β i[2:0] and Li[6:0] be written into subordinate 2 and write 1 and read First Input First Output, i=0 or 1 is used for subordinate's engine and generates the RBSP code stream.
7. the parallel encoding based on CABAC in H.264/AVC as claimed in claim 6 is realized circuit, it is characterized in that described parallel normalized engine comprises: OB[7:0] register, be used to store current variable OB value; R[8:0] the code area inter-register, be used to store present encoding interval variable value; L[9:0] the coding lower limit register, be used to store present encoding lower limit variate-value; Described 2 to write 1 degree of depth of reading First Input First Output be 10, and every is 18 bit bit wides; Under the mode standard, high 7 after position section [17:11] memory encoding lower limit upgrades; Under the bypass mode, the highest order after position section [17] memory encoding lower limit upgrades, position section [16:11] is meaningless; Position section [10:3] storage OB[7:0]; Position section [2:0] storage of variables β [2:0]; OB[7:0 wherein] with the content of β [2:0] storage be the output signal OBi[7:0 of described parallel normalized engine] and β i[2:0], i=0 or 1; The output result of described parallel normalized engine of phase after rear of queue writes dibit normalization at most weekly, simultaneously, when formation when not being empty, the RBSP code stream generates engine playback head pointer Storage Item pointed; Its meta section [b:c] presentation code is interval to be the position section of c to b, and b, c are integer, and b is that highest order is numbered, and is c lowest order numbering.
8. the parallel encoding based on CABAC in H.264/AVC as claimed in claim 7 is realized circuit, it is characterized in that, it be can be in that the phase produces the output code flow generation engine of multidigit output bit weekly that described RBSP code stream generates engine, described output code flow produces engine and comprises precedence bits output engine and suffix bits output engine, write 1 when reading the First Input First Output non-NULL when 2, output code flow generation engine is write 1 information of reading the First Input First Output head term according to 2 and is generated the RBSP code stream, described precedence bits output engine is used for writing 1 according to 2 and reads the value of First Input First Output head term highest order and the variable OB[7:0 that is stored] value, generate value and follow-up OB[7:0 by a bit highest order] bit value is the character string of highest order negate; Described suffix bits output engine is used for the Bit String that generation is made up of input position section [16:16-β [2:0]+1], and is input to the RBSP code stream, and wherein, the data that are written in the RBSP code stream are exported with the byte mode alignment.
9. the parallel encoding method based on CABAC in H.264/AVC of utilizing that the described circuit of each of claim 1~8 realizes is characterized in that, may further comprise the steps:
Described dualization engine is encoded to executed in parallel DCT/Q coefficient scanning with to the dualization of DCT/Q coefficient;
Described context model engine is write 2 output signals of reading First Input First Output according to described 3 and is carried out weekly the context of phase dibit and read and upgrade operation;
Described parallel normalized modeling engine respectively under operative norm coding and the bypass coding mode between the code area and the normalization operation of coding lower limit;
Described RBSP code stream generation engine is write 1 output signal of reading First Input First Output according to 2 and is produced the RBSP output code flow.
CN 201010291264 2010-09-25 2010-09-25 Parallel encoding realization circuit and encoding method based on CABAC (Context-based Adaptive Binary Arithmetic Coding) in H.264/AVC (Advanced Video Coding) Active CN101951516B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010291264 CN101951516B (en) 2010-09-25 2010-09-25 Parallel encoding realization circuit and encoding method based on CABAC (Context-based Adaptive Binary Arithmetic Coding) in H.264/AVC (Advanced Video Coding)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010291264 CN101951516B (en) 2010-09-25 2010-09-25 Parallel encoding realization circuit and encoding method based on CABAC (Context-based Adaptive Binary Arithmetic Coding) in H.264/AVC (Advanced Video Coding)

Publications (2)

Publication Number Publication Date
CN101951516A true CN101951516A (en) 2011-01-19
CN101951516B CN101951516B (en) 2013-06-05

Family

ID=43454854

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010291264 Active CN101951516B (en) 2010-09-25 2010-09-25 Parallel encoding realization circuit and encoding method based on CABAC (Context-based Adaptive Binary Arithmetic Coding) in H.264/AVC (Advanced Video Coding)

Country Status (1)

Country Link
CN (1) CN101951516B (en)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102638680A (en) * 2011-02-14 2012-08-15 珠海全志科技股份有限公司 Hardware-based CABAC (Context-Based Adaptive Binary Arithmetic Coding) coding method and system
CN102801974A (en) * 2012-07-19 2012-11-28 西安电子科技大学 Image compression and entropy coder based on CABAC (Context-Based Adaptive Binary Arithmetic Coding)
WO2013107230A1 (en) * 2012-01-16 2013-07-25 Mediatek Singapore Pte., Ltd. Method and apparatus for context-adaptive binary arithmetic coding of syntax elements
CN103597829A (en) * 2011-06-28 2014-02-19 日本电气株式会社 Method for coding video quantization parameter and method for decoding video quantization parameter
CN103636206A (en) * 2011-03-31 2014-03-12 汤姆逊许可公司 Techniques for context-adaptive binary data arithmetic coding (CABAC) decoding
CN103974066A (en) * 2014-05-14 2014-08-06 华为技术有限公司 Video coding method and device
CN104025603A (en) * 2011-11-08 2014-09-03 高通股份有限公司 Progressive coding of position of last significant coefficient
CN104025457A (en) * 2011-11-08 2014-09-03 高通股份有限公司 Context optimization for last significant coefficient position coding
CN105791828A (en) * 2015-12-31 2016-07-20 杭州士兰微电子股份有限公司 Binary arithmetic encoder and encoding method thereof
CN103891280B (en) * 2011-02-16 2017-07-11 谷歌技术控股有限责任公司 Method and system for determining the context model of video data
CN107343201A (en) * 2017-06-21 2017-11-10 珠海市杰理科技股份有限公司 CABAC coding methods and system
CN107465927A (en) * 2011-06-16 2017-12-12 Ge视频压缩有限责任公司 Context initialization in entropy code
CN107734344A (en) * 2012-06-22 2018-02-23 威勒斯媒体国际有限公司 Method for encoding images and image encoding apparatus
CN108235013A (en) * 2018-01-22 2018-06-29 合肥工业大学 A kind of low period CABAC decoders and its coding/decoding method based on HEVC
US10645388B2 (en) 2011-06-16 2020-05-05 Ge Video Compression, Llc Context initialization in entropy coding

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101212676A (en) * 2006-12-29 2008-07-02 北京展讯高科通信技术有限公司 Efficient and parallel CABAC decoding method and device
US20080240233A1 (en) * 2007-03-29 2008-10-02 James Au Entropy coding for video processing applications
CN101599768A (en) * 2008-06-02 2009-12-09 联发科技股份有限公司 CABAC encoder and coding method
CN101771879A (en) * 2010-01-28 2010-07-07 清华大学 Parallel normalized coding realization circuit based on CABAC and coding method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101212676A (en) * 2006-12-29 2008-07-02 北京展讯高科通信技术有限公司 Efficient and parallel CABAC decoding method and device
US20080240233A1 (en) * 2007-03-29 2008-10-02 James Au Entropy coding for video processing applications
CN101599768A (en) * 2008-06-02 2009-12-09 联发科技股份有限公司 CABAC encoder and coding method
CN101771879A (en) * 2010-01-28 2010-07-07 清华大学 Parallel normalized coding realization circuit based on CABAC and coding method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《计算机工程与科学》 20091231 孙书为等 高效的CABAC熵编码器体系结构 61-65 1-9 第31卷, 第3期 *

Cited By (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102638680B (en) * 2011-02-14 2014-08-20 珠海全志科技股份有限公司 Hardware-based CABAC (Context-Based Adaptive Binary Arithmetic Coding) coding method and system
CN102638680A (en) * 2011-02-14 2012-08-15 珠海全志科技股份有限公司 Hardware-based CABAC (Context-Based Adaptive Binary Arithmetic Coding) coding method and system
CN103891280B (en) * 2011-02-16 2017-07-11 谷歌技术控股有限责任公司 Method and system for determining the context model of video data
CN103636206B (en) * 2011-03-31 2017-07-14 汤姆逊许可公司 Context adaptive binary data arithmetic is encoded(CABAC)Decoding technique
CN103636206A (en) * 2011-03-31 2014-03-12 汤姆逊许可公司 Techniques for context-adaptive binary data arithmetic coding (CABAC) decoding
US10645388B2 (en) 2011-06-16 2020-05-05 Ge Video Compression, Llc Context initialization in entropy coding
US11533485B2 (en) 2011-06-16 2022-12-20 Ge Video Compression, Llc Entropy coding of motion vector differences
US11277614B2 (en) 2011-06-16 2022-03-15 Ge Video Compression, Llc Entropy coding supporting mode switching
US11012695B2 (en) 2011-06-16 2021-05-18 Ge Video Compression, Llc Context initialization in entropy coding
CN107465928B (en) * 2011-06-16 2020-10-30 Ge视频压缩有限责任公司 Encoder for encoding video into data stream, decoder for decoding video from data stream, and encoding and decoding methods thereof
US10819982B2 (en) 2011-06-16 2020-10-27 Ge Video Compression, Llc Entropy coding supporting mode switching
CN107465927B (en) * 2011-06-16 2020-05-12 Ge视频压缩有限责任公司 Decoder and decoding method for decoding video from data stream, and encoder and encoding method for encoding video into data stream
US10425644B2 (en) 2011-06-16 2019-09-24 Ge Video Compression, Llc Entropy coding of motion vector differences
US11838511B2 (en) 2011-06-16 2023-12-05 Ge Video Compression, Llc Entropy coding supporting mode switching
US10630988B2 (en) 2011-06-16 2020-04-21 Ge Video Compression, Llc Entropy coding of motion vector differences
US10432940B2 (en) 2011-06-16 2019-10-01 Ge Video Compression, Llc Entropy coding of motion vector differences
US11516474B2 (en) 2011-06-16 2022-11-29 Ge Video Compression, Llc Context initialization in entropy coding
US10432939B2 (en) 2011-06-16 2019-10-01 Ge Video Compression, Llc Entropy coding supporting mode switching
US10630987B2 (en) 2011-06-16 2020-04-21 Ge Video Compression, Llc Entropy coding supporting mode switching
CN107465927A (en) * 2011-06-16 2017-12-12 Ge视频压缩有限责任公司 Context initialization in entropy code
CN107465928A (en) * 2011-06-16 2017-12-12 Ge视频压缩有限责任公司 Context initialization in entropy code
US10440364B2 (en) 2011-06-16 2019-10-08 Ge Video Compression, Llc Context initialization in entropy coding
CN107071452A (en) * 2011-06-28 2017-08-18 日本电气株式会社 The method decoded to video quantizing parameter
CN103597829A (en) * 2011-06-28 2014-02-19 日本电气株式会社 Method for coding video quantization parameter and method for decoding video quantization parameter
CN103597829B (en) * 2011-06-28 2017-03-22 日本电气株式会社 Method for coding video quantization parameter and method for decoding video quantization parameter
CN107071452B (en) * 2011-06-28 2019-03-05 日本电气株式会社 To the decoded method of video quantizing parameter
CN108307195A (en) * 2011-11-08 2018-07-20 维洛媒体国际有限公司 The gradual decoding of the position of last coefficient of efficiency
CN104025457B (en) * 2011-11-08 2017-06-30 高通股份有限公司 Context for the decoding of last coefficient of efficiency position is optimized
CN104025603A (en) * 2011-11-08 2014-09-03 高通股份有限公司 Progressive coding of position of last significant coefficient
CN104025457A (en) * 2011-11-08 2014-09-03 高通股份有限公司 Context optimization for last significant coefficient position coding
CN108307195B (en) * 2011-11-08 2020-09-29 维洛媒体国际有限公司 Progressive decoding of the position of the last significant coefficient
CN104025603B (en) * 2011-11-08 2018-06-01 维洛媒体国际有限公司 The gradual decoding of the position of last coefficient of efficiency
US10187661B2 (en) 2012-01-16 2019-01-22 Hfi Innovation Inc. Method and apparatus for context adaptive binary arithmetic coding of syntax elements
WO2013107230A1 (en) * 2012-01-16 2013-07-25 Mediatek Singapore Pte., Ltd. Method and apparatus for context-adaptive binary arithmetic coding of syntax elements
GB2512231B (en) * 2012-01-16 2019-05-08 Hfi Innovation Inc Method and apparatus for context-adaptive binary arithmetic coding of syntax elements
GB2512231A (en) * 2012-01-16 2014-09-24 Mediatek Singapore Pte Ltd Method and apparatus for context-adaptive binary arithmetic coding of syntax elements
CN107734344B (en) * 2012-06-22 2021-06-29 威勒斯媒体国际有限公司 Image encoding method and image encoding apparatus
CN107734344A (en) * 2012-06-22 2018-02-23 威勒斯媒体国际有限公司 Method for encoding images and image encoding apparatus
CN102801974B (en) * 2012-07-19 2014-08-20 西安电子科技大学 Image compression and entropy coder based on CABAC (Context-Based Adaptive Binary Arithmetic Coding)
CN102801974A (en) * 2012-07-19 2012-11-28 西安电子科技大学 Image compression and entropy coder based on CABAC (Context-Based Adaptive Binary Arithmetic Coding)
CN103974066B (en) * 2014-05-14 2017-02-01 华为技术有限公司 Video coding method and device
CN103974066A (en) * 2014-05-14 2014-08-06 华为技术有限公司 Video coding method and device
CN109587483A (en) * 2015-12-31 2019-04-05 杭州士兰微电子股份有限公司 Code stream extraction module
CN105791828A (en) * 2015-12-31 2016-07-20 杭州士兰微电子股份有限公司 Binary arithmetic encoder and encoding method thereof
CN105791828B (en) * 2015-12-31 2019-05-31 杭州士兰微电子股份有限公司 Binary arithmetic coder and its coding method
CN107343201A (en) * 2017-06-21 2017-11-10 珠海市杰理科技股份有限公司 CABAC coding methods and system
CN107343201B (en) * 2017-06-21 2019-11-26 珠海市杰理科技股份有限公司 CABAC coding method and system
CN108235013B (en) * 2018-01-22 2020-03-17 合肥工业大学 HEVC-based low-period CABAC decoder and decoding method thereof
CN108235013A (en) * 2018-01-22 2018-06-29 合肥工业大学 A kind of low period CABAC decoders and its coding/decoding method based on HEVC

Also Published As

Publication number Publication date
CN101951516B (en) 2013-06-05

Similar Documents

Publication Publication Date Title
CN101951516B (en) Parallel encoding realization circuit and encoding method based on CABAC (Context-based Adaptive Binary Arithmetic Coding) in H.264/AVC (Advanced Video Coding)
CN101771879B (en) Parallel normalized coding realization circuit based on CABAC and coding method
CN100466739C (en) CABAC decoding system and method
US6885319B2 (en) System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms
CN105207678A (en) Hardware realizing system for improved LZ4 compression algorithm
CN100563111C (en) Data coding device, data-encoding scheme
CN104838653A (en) Lossless image compression using differential transfer
CN101087411A (en) Decoding method
CN101076114A (en) Self-adaptive context binary arithmetic encoder and encoding method
US11791838B2 (en) Near-storage acceleration of dictionary decoding
GB2507838A (en) Compressing/decompressing vertex parameter data
US7689047B2 (en) Reduced buffer size for JPEG encoding
CN111507465B (en) Configurable convolutional neural network processor circuit
US11947979B2 (en) Systems and devices for accessing a state machine
CN103929642A (en) Method for rapidly calculating deviation value of entropy coding context model of HEVC transformation coefficients
CN111491169B (en) Digital image compression method, device, equipment and medium
CN101848311A (en) JPEG2000 EBCOT encoder based on Avalon bus
US9154157B2 (en) Search unit to accelerate variable length compression/decompression
CN103248896A (en) MQ (memory quotient) arithmetic coder
US7924179B2 (en) Variable-length code determining device and variable-length code decoding method
CN100395669C (en) Image coding/ decoding device of laser printing system and method
CN101458679B (en) Unification inverse discrete cosine transform (IDCT) microcode processor engine
CN102238381B (en) Image coding method and device for accelerating runlength coding
US7903741B2 (en) Context-adaptive variable length coder with simultaneous storage of incoming data and generation of syntax elements
CN103002275B (en) For two coefficient scanning methods of CAVLC coding

Legal Events

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

Effective date of registration: 20171227

Address after: 210042 Xuanwu District, Xuanwu District, Jiangsu, Nanjing, No. 699-22, building 18

Patentee after: CERTUSNET CORP.

Address before: 100084 Beijing Haidian District Tsinghua Yuan 100084-82 mailbox

Patentee before: Tsinghua University

TR01 Transfer of patent right