CN104469366A - Zero-order exponential Golomb code decoder and decoding method - Google Patents

Zero-order exponential Golomb code decoder and decoding method Download PDF

Info

Publication number
CN104469366A
CN104469366A CN201410799892.6A CN201410799892A CN104469366A CN 104469366 A CN104469366 A CN 104469366A CN 201410799892 A CN201410799892 A CN 201410799892A CN 104469366 A CN104469366 A CN 104469366A
Authority
CN
China
Prior art keywords
calculator
leading zero
bit stream
zero
golomb
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
CN201410799892.6A
Other languages
Chinese (zh)
Other versions
CN104469366B (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.)
Beijing Jilang Semiconductor Technology Co Ltd
Original Assignee
Institute of Automation of Chinese Academy of Science
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 Institute of Automation of Chinese Academy of Science filed Critical Institute of Automation of Chinese Academy of Science
Priority to CN201410799892.6A priority Critical patent/CN104469366B/en
Publication of CN104469366A publication Critical patent/CN104469366A/en
Application granted granted Critical
Publication of CN104469366B publication Critical patent/CN104469366B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

The invention discloses a zero-order exponential Golomb code decoder and a decoding method. The decoder comprises a bit stream shifter, a heading zero calculator, a decoding value calculator and an offset generator. According to the decoding method, processing is conducted through parallel bit operation instead of table look-up when the heading zero is calculated. By means of the zero-order exponential Golomb code decoder and the decoding method, the area expenses are reduced while the decoding speed is increased, and the decoder and the decoding method are suitable for hardware implementation. The decoder and the decoding method can be applied to high-definition or ultra-high-definition real-time video decoding chips and other fields with high requirements for the decoding speed.

Description

A kind of 0 rank Exp-Golomb decoder and coding/decoding method
Technical field
The present invention relates to multimedia video process field, particularly relate to a kind of 0 rank Exp-Golomb decoder and coding/decoding method.
Background technology
Adaptive variable length coding techniques is adopted in major video coding standards---Exp-Golomb.Exp-Golomb is a kind of special Huffman coding, and its essence is that the probability that to think by the signal of encoding be 0 is at least 1/2, is that the probability sum of 1 and 2 accounts at least 1/2 of its complementary probability again, by that analogy.Exp-Golomb is variable length code, and code length is dynamically determined by its code word content.Its Bit String is divided into prefix and suffix two parts, and prefix is LeadingZeroBits continuous print 0 and one 1 composition, and suffix is made up of LeadingZeroBits bit.The exponent number that Exp-Golomb is corresponding different, has different forms.H.264, the Exp-Golomb on 0 rank is all adopted to carry out binaryzation in the video encoding standard such as AVS, its code table (see ITU-T Rec.H.264 (01/2012) Advancedvideo coding for generic audiovisual services) as follows:
Bitstream codeNum
1 0
010 1
011 2
00100 3
00101 4
00110 5
00111 6
0001000 7
0001001 8
0001010 9
... ...
Compare common variable length code, the decode procedure of Exp-Golomb is more complicated, and operand is larger, and required decode time is longer, stores code table and causes area overhead also corresponding increase.Existing index Columbus decoder uses the mode of firmly tabling look-up to carry out the decoding of leading zero usually, and such mode can bring larger area overhead and longer time delay.
Summary of the invention
(1) technical problem that will solve
To be solved by this invention is the decoding of Exp-Golomb when separating leading zero owing to firmly tabling look-up, the problem that area overhead is comparatively large, time delay is longer.
(2) technical scheme
For solving the problems of the technologies described above, the present invention proposes a kind of 0 rank Exp-Golomb decoder, comprise bit stream shift unit, leading zero calculator, code value calculator and side-play amount maker: described bit stream shift unit is for receiving the bit stream of outside input, select this to export the original position of data according to current side-play amount, outputted to leading zero calculator and code value calculator; Described leading zero calculator, for receiving the bit stream of described bit stream shift unit input, detects zero bit number of prefix, and outputs it to described code value calculator and described side-play amount maker from wherein effective Exp-Golomb; Described code value calculator, for the bit stream of zero bit number that receives leading zero calculator and solve and the input of bit stream shift unit, calculates decode value and exports to subsequent decoding unit; Zero bit number that described side-play amount maker obtains for receiving leading zero calculator, calculates the figure place of data in the bit stream of this decoding use, and is transferred to bit stream shift unit.
According to a kind of embodiment of the present invention, described leading zero calculator adopts combinational logic to realize the calculating of leading zero.
According to a kind of embodiment of the present invention, described leading zero calculator is for performing following steps: step S1: calculate intermediate object program concurrently, each of intermediate object program be position corresponding in code stream and corresponding position before each non-get with, in its result, the position at 1 place is the number of leading zero; Correspondence position is 1 by step S2: the subscript of each in intermediate object program is pressed binary representation, the corresponding position of result gets or, its result is the number of leading zero.
According to a kind of embodiment of the present invention, described code value calculator is used for the number according to leading zero, tables look-up and obtains the index bound of effective information position in code word, information bit taken out and subtract 1, obtain the code value of Exp-Golomb.
According to a kind of embodiment of the present invention, the bit stream bit wide that code value calculator exported to by described bit stream shift unit is at every turn 31, and each outputs to leading zero calculator with by low 16 wherein.
According to a kind of embodiment of the present invention, described side-play amount maker, for just producing skew when inputting effective.
According to a kind of embodiment of the present invention, the side-play amount of described side-play amount maker is this data bits used of decoding, and the value that its value equals leading zero moves to left after one and adds 1.
The present invention also proposes a kind of 0 rank Exp-Golomb coding/decoding method, and comprise the steps: step T1: according to current offset, input bit stream information is to code value calculator and leading zero calculator; Step T2: leading zero calculator detects the number of prefix zero bit in code stream; Step T3: code value calculator, according to leading zero and incoming bit stream, solves code value and exports; Step T4: side-play amount maker calculates side-play amount according to the value of leading zero and outputs to bit stream shift unit.
(3) beneficial effect
During index Columbus is decoded by the present invention, originally the process of carrying out computation of table lookup leading zero is needed, change into and having been come by the mode of combinational logic, only need by simple contraposition get with and get or computing, just can solve index Columbus code value in the single cycle, effectively improve decoding performance.Further, the result after using Design Compiler comprehensive shows, compares the situation under use lookup table mode, and area and the time delay of optimizing rear decoder all improve.
Accompanying drawing explanation
Fig. 1 is the structure chart of 0 rank Exp-Golomb decoder provided by the invention;
Fig. 2 is the method schematic diagram that leading zero calculator calculates intermediate variable;
Fig. 3 is the method schematic diagram calculating leading zero according to intermediate variable.
Embodiment
The index Columbus decoder that the present invention proposes comprises bit stream shift unit, leading zero calculator, code value calculator and side-play amount maker.
Bit stream shift unit, for receiving the bit stream of outside input, is selected this to export the original position of data according to current side-play amount, is outputted to leading zero calculator and code value calculator.
Leading zero calculator, for receiving the bit stream of bit stream shift unit input, detects zero bit number of prefix, and outputs it to code value calculator and side-play amount maker from wherein effective Exp-Golomb.
Code value calculator, for the bit stream of zero bit number that receives leading zero calculator and solve and the input of bit stream shift unit, calculates decode value and exports to subsequent decoding unit.
Zero bit number that side-play amount maker obtains for receiving leading zero calculator, calculates the figure place of data in the bit stream of this decoding use, and is transferred to bit stream shift unit.
Normally used hard lookup table mode abandoned by described leading zero calculator, but adopts combinational logic to realize the calculating of leading zero.These computational methods comprise:
Step S1, calculate intermediate object program concurrently, each of intermediate object program be position corresponding in code stream and corresponding position before each non-get with, in its result, the position at 1 place is the number of leading zero.
Step S2, the subscript of each in intermediate object program being pressed binary representation, is 1 by correspondence position, the corresponding position of result is got or, its result is the number of leading zero.
Described code value calculator, according to the number of leading zero, tables look-up and obtains the index bound of effective information position in code word, information bit taken out and subtract 1, obtain the code value of Exp-Golomb.
Described bit stream shift unit, the bit stream bit wide at every turn exporting to code value calculator is 31.And due to the symmetry of 0 rank Exp-Golomb, each only with low 16 are wherein outputted to leading zero calculator, the calculating of leading zero can be carried out.
Described side-play amount maker, just produces skew when inputting effective.Side-play amount is this data bits of using of decoding, and according to the feature of 0 rank Exp-Golomb, the value that its value equals leading zero moves to left after one and adds 1.
Described comprises the step that Exp-Golomb is decoded:
Step T1: according to current offset, input bit stream information is to code value calculator and leading zero calculator;
Step T2: leading zero calculator detects the number of prefix zero bit in code stream;
Step T3: code value calculator, according to leading zero and incoming bit stream, solves code value and exports;
Step T4: side-play amount maker calculates side-play amount according to the value of leading zero and outputs to bit stream shift unit.
For making the object, technical solutions and advantages of the present invention clearly understand, below in conjunction with specific embodiment, and with reference to accompanying drawing, the present invention is described in more detail.
As shown in Figure 1, the Exp-Golomb decoder that the present invention proposes comprises bit stream shift unit, leading zero calculator, code value calculator and side-play amount maker.
Bit stream shift unit is for receiving the bit stream of outside input, this is selected to export the original position of data according to current side-play amount bitlen, each output 31 binary bit stream bitstream [30:0] to code value calculator, export wherein low 16 to leading zero calculator.
Leading zero calculator, for receiving the bit stream bitstream [15:0] of bit stream shift unit input, detects zero bit number zero_count of prefix, and outputs it to code value calculator and side-play amount maker from wherein effective Exp-Golomb.
Code value calculator, for the bit stream bitstream [30:0] of the zero bit number zero_count that receives leading zero calculator and solve and the input of bit stream shift unit, calculates decode value codenum [15:0], and exports to subsequent decoding unit.
Zero bit number that side-play amount maker obtains for receiving leading zero calculator, calculates the figure place bitlen [4:0] of data in the bit stream of this decoding use, and is transferred to bit stream shift unit.
The decoding of described index Columbus decoder complete parity bits's stream in one-period, export the bit number of code value and decoding, decoding step comprises:
Step T1: when data input signal datain is effective, bit stream shift unit is according to current offset offset, clap decoded data by upper one to shift out, this Columbus's code data bitstream [30:0] is passed to code value calculator, will wherein low 16 pass to leading zero calculator;
Step T2: leading zero calculator receives the bitstream data that bit stream shift unit exports, adopts the mode of combinational logic, calculates leading zero in two steps through bit arithmetic.
First concurrently intermediate object program mid [15:0] is calculated, each of mid be position corresponding in code stream and corresponding position before each non-get with, in its result, the position at 1 place is the number of leading zero, gives for the computational methods of mid [4] in Fig. 2.
The subscript of each in intermediate object program is pressed binary representation, is 1 by correspondence position, the corresponding position of result result [3:0] gets or, its result is the number of leading zero, and its process is as shown in Figure 3.Finally the value of result is assigned to the zero_count in code value calculator and side-play amount maker.
Step T3: code value calculator is tabled look-up according to the value of zero_count, obtains the index bound of effective information position in bitstream, information bit is taken out and its value is subtracted 1, obtaining the code value codenum of Exp-Golomb, export to subsequent decoding module
Step T4: the result that side-play amount maker transmits according to leading zero calculator, when enable signal valid signal is high level, zero_count is moved to left after one and add 1, calculate the bitstream length bitlen of this decoding, transmitted the offset variable be given in shift unit, as the side-play amount inputting data next time.
As above can find out, decoder of the present invention and coding/decoding method, when calculating leading zero, are not tabled look-up, but adopt the mode of parallel bit arithmetic to process.
Decrease area overhead while the present invention improves decoding speed, be suitable for hardware implementing.Can be applicable to high definition or ultra high-definition real-time video decoding chip etc. other to above-described specific embodiment in the higher field of decoding speed requirement; object of the present invention, technical scheme and beneficial effect are further described; be understood that; the foregoing is only specific embodiments of the invention; be not limited to the present invention; within the spirit and principles in the present invention all; any amendment of making, equivalent replacement, improvement etc., all should be included within protection scope of the present invention.

Claims (8)

1. a 0 rank Exp-Golomb decoder, comprises bit stream shift unit, leading zero calculator, code value calculator and side-play amount maker, it is characterized in that:
Described bit stream shift unit, for receiving the bit stream of outside input, is selected this to export the original position of data according to current side-play amount, is outputted to leading zero calculator and code value calculator;
Described leading zero calculator, for receiving the bit stream of described bit stream shift unit input, detects zero bit number of prefix, and outputs it to described code value calculator and described side-play amount maker from wherein effective Exp-Golomb;
Described code value calculator, for the bit stream of zero bit number that receives leading zero calculator and solve and the input of bit stream shift unit, calculates decode value and exports to subsequent decoding unit;
Zero bit number that described side-play amount maker obtains for receiving leading zero calculator, calculates the figure place of data in the bit stream of this decoding use, and is transferred to bit stream shift unit.
2. 0 rank Exp-Golomb decoder according to claim 1, is characterized in that, described leading zero calculator adopts combinational logic to realize the calculating of leading zero.
3. 0 rank Exp-Golomb decoder according to claim 2, it is characterized in that, described leading zero calculator is for performing following steps:
Step S1: calculate intermediate object program concurrently, each of intermediate object program be position corresponding in code stream and corresponding position before each non-get with, in its result, the position at 1 place is the number of leading zero;
Correspondence position is 1 by step S2: the subscript of each in intermediate object program is pressed binary representation, the corresponding position of result gets or, its result is the number of leading zero.
4. 0 rank Exp-Golomb decoder according to claim 1, it is characterized in that, described code value calculator is used for the number according to leading zero, tables look-up and obtains the index bound of effective information position in code word, information bit taken out and subtracts 1, obtaining the code value of Exp-Golomb.
5. 0 rank Exp-Golomb decoder according to claim 1, is characterized in that, the bit stream bit wide that code value calculator exported to by described bit stream shift unit is at every turn 31, and each outputs to leading zero calculator with by low 16 wherein.
6. 0 rank Exp-Golomb decoder according to claim 1, is characterized in that, described side-play amount maker, for just producing skew when inputting effective.
7. as the decoder of 0 rank Exp-Golomb according to claim 6, it is characterized in that, the side-play amount of described side-play amount maker is this data bits used of decoding, and the value that its value equals leading zero moves to left after one and adds 1.
8. a 0 rank Exp-Golomb coding/decoding method, is characterized in that, comprise the steps:
Step T1: according to current offset, input bit stream information is to code value calculator and leading zero calculator;
Step T2: leading zero calculator detects the number of prefix zero bit in code stream;
Step T3: code value calculator, according to leading zero and incoming bit stream, solves code value and exports;
Step T4: side-play amount maker calculates side-play amount according to the value of leading zero and outputs to bit stream shift unit.
CN201410799892.6A 2014-12-18 2014-12-18 A kind of 0 rank Exp- Golomb decoder and coding/decoding method Active CN104469366B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410799892.6A CN104469366B (en) 2014-12-18 2014-12-18 A kind of 0 rank Exp- Golomb decoder and coding/decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410799892.6A CN104469366B (en) 2014-12-18 2014-12-18 A kind of 0 rank Exp- Golomb decoder and coding/decoding method

Publications (2)

Publication Number Publication Date
CN104469366A true CN104469366A (en) 2015-03-25
CN104469366B CN104469366B (en) 2017-10-03

Family

ID=52914635

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410799892.6A Active CN104469366B (en) 2014-12-18 2014-12-18 A kind of 0 rank Exp- Golomb decoder and coding/decoding method

Country Status (1)

Country Link
CN (1) CN104469366B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110290391A (en) * 2019-07-19 2019-09-27 苏州浪潮智能科技有限公司 A kind of Exp- Golomb coding/decoding method, system and electronic equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101114833A (en) * 2007-08-06 2008-01-30 北京航空航天大学 Encoding device and method for index Golomb coding
CN101277444A (en) * 2007-03-28 2008-10-01 中国科学院微电子研究所 Device and method for decoding Columbus code
CN101707484A (en) * 2009-06-18 2010-05-12 杭州高特信息技术有限公司 Fast exp-Golomb decoding method suitable to be implemented by hardware
CN102664637A (en) * 2012-04-12 2012-09-12 北京中科晶上科技有限公司 Method and device for confirming leading zero number of binary data
WO2013152401A1 (en) * 2012-04-13 2013-10-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a subset of transform units of encoded video data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101277444A (en) * 2007-03-28 2008-10-01 中国科学院微电子研究所 Device and method for decoding Columbus code
CN101114833A (en) * 2007-08-06 2008-01-30 北京航空航天大学 Encoding device and method for index Golomb coding
CN101707484A (en) * 2009-06-18 2010-05-12 杭州高特信息技术有限公司 Fast exp-Golomb decoding method suitable to be implemented by hardware
CN102664637A (en) * 2012-04-12 2012-09-12 北京中科晶上科技有限公司 Method and device for confirming leading zero number of binary data
WO2013152401A1 (en) * 2012-04-13 2013-10-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a subset of transform units of encoded video data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110290391A (en) * 2019-07-19 2019-09-27 苏州浪潮智能科技有限公司 A kind of Exp- Golomb coding/decoding method, system and electronic equipment and storage medium
CN110290391B (en) * 2019-07-19 2021-09-17 苏州浪潮智能科技有限公司 Exponential Golomb code decoding method, system, electronic equipment and storage medium

Also Published As

Publication number Publication date
CN104469366B (en) 2017-10-03

Similar Documents

Publication Publication Date Title
CN101771879B (en) Parallel normalized coding realization circuit based on CABAC and coding method
US9184906B1 (en) Configurable pulse amplitude modulation clock data recovery
CN103650037B (en) The lossless audio coding that sampling rate is gradable
KR101583139B1 (en) High-Throughput Low-Complexity Successive-Cancellation Polar Decoder Architecture and Method
CN105791828B (en) Binary arithmetic coder and its coding method
CN106940638B (en) Hardware architecture of binary original code addition and subtraction arithmetic unit
CN102438145A (en) Image lossless compression method on basis of Huffman code
CN105183425B (en) A kind of fixation bit wide multiplier with high-precision low complex degree characteristic
CN105356891B (en) A kind of polarity decoding batch processing method of high resource utilization
GB2523347A (en) Encoder, decoder and method
CN105721102B (en) Memory efficient method for transmitting error correction codes in symbol encoded transport streams
CN105281871B (en) Method for transmitting forward error correction codes in symbol-encoded transport streams
CN103227924A (en) Arithmetic coder and coding method
US8566683B2 (en) Power-reduced preliminary decoded bits in viterbi decoders
CN101754020A (en) Method and system for encoded video compression
CN104469366A (en) Zero-order exponential Golomb code decoder and decoding method
CN102184086A (en) Booth encoder and multiplier
CN111787325B (en) Entropy encoder and encoding method thereof
CN105760329A (en) Coding and decoding device capable of reducing bus coupling overturn
CN101267559A (en) Universal entropy decoding method and device for video decoder
US8391402B2 (en) Process and device for encoding, and associated electronic system and storage medium
CN109922341A (en) The advanced entropy coder implementation method of AVS2 and device
CN103475378A (en) High-throughput-rate LDPC decoder suitable for optical communication
JP2013009167A (en) Entropy encoding apparatus, entropy decoding apparatus, entropy encoding method and entropy decoding method
CN104486624A (en) CAVLC entropy decoder and entropy decoding method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20171129

Address after: 102412 Beijing City, Fangshan District Yan Village Yan Fu Road No. 1 No. 11 building 4 layer 402

Patentee after: Beijing Si Lang science and Technology Co.,Ltd.

Address before: 100190 Zhongguancun East Road, Beijing, No. 95, No.

Patentee before: Institute of Automation, Chinese Academy of Sciences

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220121

Address after: 519031 room 532, building 18, No. 1889, Huandao East Road, Hengqin District, Zhuhai City, Guangdong Province

Patentee after: Zhuhai Jilang Semiconductor Technology Co.,Ltd.

Address before: 102412 room 402, 4th floor, building 11, No. 1, Yanfu Road, Yancun Town, Fangshan District, Beijing

Patentee before: Beijing Si Lang science and Technology Co.,Ltd.

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Room 701, 7th Floor, Building 56, No. 2, Jingyuan North Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing 100176 (Beijing Pilot Free Trade Zone High-end Industry Zone Yizhuang Group)

Patentee after: Beijing Jilang Semiconductor Technology Co., Ltd.

Address before: 519031 room 532, building 18, No. 1889, Huandao East Road, Hengqin District, Zhuhai City, Guangdong Province

Patentee before: Zhuhai Jilang Semiconductor Technology Co.,Ltd.