CN104469366B - 一种0阶指数哥伦布码解码器及解码方法 - Google Patents

一种0阶指数哥伦布码解码器及解码方法 Download PDF

Info

Publication number
CN104469366B
CN104469366B CN201410799892.6A CN201410799892A CN104469366B CN 104469366 B CN104469366 B CN 104469366B CN 201410799892 A CN201410799892 A CN 201410799892A CN 104469366 B CN104469366 B CN 104469366B
Authority
CN
China
Prior art keywords
leading zero
calculator
bit stream
bit
zero
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.)
Active
Application number
CN201410799892.6A
Other languages
English (en)
Other versions
CN104469366A (zh
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/zh
Publication of CN104469366A publication Critical patent/CN104469366A/zh
Application granted granted Critical
Publication of CN104469366B publication Critical patent/CN104469366B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种0阶指数哥伦布码解码器及解码方法。解码器包括比特流移位器、前导零计算器、解码值计算器和偏移量生成器。解码方法在计算前导零时,不进行查表,而是采用并行的位运算的方式进行处理。本发明提高解码速度的同时减少了面积开销,适合于硬件实现。本发明可应用于高清或超高清实时视频解码芯片等其他对解码速度要求较高的领域中。

Description

一种0阶指数哥伦布码解码器及解码方法
技术领域
本发明涉及多媒体视频处理领域,尤其涉及一种0阶指数哥伦布码解码器及解码方法。
背景技术
主流视频编码标准中采用自适应变长编码技术——指数哥伦布码。指数哥伦布码是一种特殊的哈弗曼编码,其本质是认为被编码的信号为0的概率至少为1/2,为1和2的概率之和又占其余概率的至少1/2,以此类推。指数哥伦布码为变长码,码长是由其码字内容动态决定的。其比特串分为前缀和后缀两个部分,前缀为LeadingZeroBits个连续的0和一个1组成,后缀由LeadingZeroBits个比特构成。指数哥伦布码对应不同的阶数,具有不同的形式。H.264、AVS等视频编码标准中都采用0阶的指数哥伦布码进行二值化,其码表如下所示(参见ITU-T Rec.H.264(01/2012)Advanced video coding for generic audiovisualservices):
Bitstream codeNum
1 0
010 1
011 2
00100 3
00101 4
00110 5
00111 6
0001000 7
0001001 8
0001010 9
... ...
相比普通的变长码,指数哥伦布码的解码过程更为复杂,运算量更大,所需的解码时间更长,储存码表导致面积开销也相应增大。现有的指数哥伦布解码器通常使用硬查表的方式进行前导零的解码,这样的方式会带来较大的面积开销和较长的的延时。
发明内容
(一)要解决的技术问题
本发明所要解决的是指数哥伦布码的解码由于硬查表解前导零时,面积开销较大、时延较长的问题。
(二)技术方案
为解决上述技术问题,本发明提出一种0阶指数哥伦布码解码器,包括比特流移位器、前导零计算器、码值计算器和偏移量生成器:所述比特流移位器用于接收外部输入的比特流,根据当前的偏移量选择本次输出数据的起始位置,将其输出到前导零计算器和码值计算器;所述前导零计算器用于接收所述比特流移位器输入的比特流,从其中有效的指数哥伦布码中检测出前缀的零比特数,并将其输出给所述码值计算器和所述偏移量生成器;所述码值计算器用于接收前导零计算器解出的零比特数和比特流移位器输入的比特流,计算出解码值并输出给后续解码单元;所述偏移量生成器用于接收前导零计算器得到的零比特数,计算得到本次解码使用的比特流中数据的位数,并传输给比特流移位器。
根据本发明的一种具体实施方式,所述前导零计算器采用组合逻辑实现前导零的计算。
根据本发明的一种具体实施方式,所述前导零计算器用于执行如下步骤:步骤S1:并行地计算中间结果,中间结果的每一位是码流中对应的位和对应位之前每一位的非取与,其结果中1所在的位置即为前导零的个数;步骤S2:将中间结果中每一位的下标按二进制表示,将对应位置为1的,在结果的对应位上取或,其结果即为前导零的个数。
根据本发明的一种具体实施方式,所述码值计算器用于根据前导零的个数,查表得到码字中有效信息位的下标范围,将信息位取出并减1,求出指数哥伦布码的码值。
根据本发明的一种具体实施方式,所述比特流移位器每次输出给码值计算器的比特流位宽为31位,而每次只用将其中的低16位输出到前导零计算器。
根据本发明的一种具体实施方式,所述偏移量生成器,用于在输入有效时才产生偏移。
根据本发明的一种具体实施方式,所述偏移量生成器的偏移量为本次解码所使用的数据位数,其值等于前导零的值左移一位后加1。
本发明还提出一种0阶指数哥伦布码解码方法,包括如下步骤:步骤T1:根据当前偏移量,输入比特流信息到码值计算器和前导零计算器;步骤T2:前导零计算器检测出码流中前缀零比特的个数;步骤T3:码值计算器根据前导零和输入比特流,解出码值并输出;步骤T4:偏移量生成器根据前导零的值计算偏移量并输出到比特流移位器。
(三)有益效果
本发明将指数哥伦布解码中,原本需要进行查表计算前导零的过程,改为了通过组合逻辑的方式来完成,只需通过简单的对位取与以及取或的运算,在单个周期就能解出指数哥伦布码值,有效地提高了解码性能。并且,使用Design Compiler综合后的结果表明,相比使用查表方式下的情况,优化后解码器的面积和延时均得到改善。
附图说明
图1为本发明提供的0阶指数哥伦布码解码器的结构图;
图2为前导零计算器计算中间变量的方法示意图;
图3为根据中间变量计算前导零的方法示意图。
具体实施方式
本发明提出的指数哥伦布解码器包括比特流移位器、前导零计算器、码值计算器和偏移量生成器。
比特流移位器用于接收外部输入的比特流,根据当前的偏移量选择本次输出数据的起始位置,将其输出到前导零计算器和码值计算器。
前导零计算器用于接收比特流移位器输入的比特流,从其中有效的指数哥伦布码中检测出前缀的零比特数,并将其输出给码值计算器和偏移量生成器。
码值计算器用于接收前导零计算器解出的零比特数和比特流移位器输入的比特流,计算出解码值并输出给后续解码单元。
偏移量生成器用于接收前导零计算器得到的零比特数,计算得到本次解码使用的比特流中数据的位数,并传输给比特流移位器。
所述前导零计算器放弃通常使用的硬查表方式,而是采用组合逻辑实现前导零的计算。该计算方法包括:
步骤S1、并行地计算中间结果,中间结果的每一位是码流中对应的位和对应位之前每一位的非取与,其结果中1所在的位置即为前导零的个数。
步骤S2、将中间结果中每一位的下标按二进制表示,将对应位置为1的,在结果的对应位上取或,其结果即为前导零的个数。
所述的码值计算器,根据前导零的个数,查表得到码字中有效信息位的下标范围,将信息位取出并减1,求出指数哥伦布码的码值。
所述的比特流移位器,每次输出给码值计算器的比特流位宽为31位。而由于0阶指数哥伦布码的对称性,每次只用将其中的低16位输出到前导零计算器,即可进行前导零的计算。
所述的偏移量生成器,在输入有效时才产生偏移。偏移量为本次解码所使用的数据位数,根据0阶指数哥伦布码的特点,其值等于前导零的值左移一位后加1。
所述的对指数哥伦布码进行解码的步骤包括:
步骤T1:根据当前偏移量,输入比特流信息到码值计算器和前导零计算器;
步骤T2:前导零计算器检测出码流中前缀零比特的个数;
步骤T3:码值计算器根据前导零和输入比特流,解出码值并输出;
步骤T4:偏移量生成器根据前导零的值计算偏移量并输出到比特流移位器。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
如图1所示,本发明提出的指数哥伦布码解码器包括比特流移位器、前导零计算器、码值计算器和偏移量生成器。
比特流移位器用于接收外部输入的比特流,根据当前的偏移量bitlen选择本次输出数据的起始位置,每次输出31位二进制比特流bitstream[30:0]到码值计算器,输出其中低16位到前导零计算器。
前导零计算器用于接收比特流移位器输入的比特流bitstream[15:0],从其中有效的指数哥伦布码中检测出前缀的零比特数zero_count,并将其输出给码值计算器和偏移量生成器。
码值计算器用于接收前导零计算器解出的零比特数zero_count和比特流移位器输入的比特流bitstream[30:0],计算出解码值codenum[15:0],并输出给后续解码单元。
偏移量生成器用于接收前导零计算器得到的零比特数,计算得到本次解码使用的比特流中数据的位数bitlen[4:0],并传输给比特流移位器。
所述的指数哥伦布解码器在一个周期内完成对比特流的解码,输出码值和解码的比特数,解码步骤包括:
步骤T1:当数据输入信号datain有效时,比特流移位器根据当前偏移量offset,将上一拍已解码的数据移出,将本次的哥伦布码数据bitstream[30:0]传递给码值计算器,将其中低16位传递给前导零计算器;
步骤T2:前导零计算器接收比特流移位器输出的比特流数据,采用组合逻辑的方式,经位运算分两步计算前导零。
首先并行地计算中间结果mid[15:0],mid的每一位是码流中对应的位和对应位之前每一位的非取与,其结果中1所在的位置即为前导零的个数,图2中给出了以mid[4]为例的计算方法。
将中间结果中每一位的下标按二进制表示,将对应位置为1的,在结果result[3:0]的对应位上取或,其结果即为前导零的个数,其过程如图3所示。最后将result的值赋给码值计算器和偏移量生成器中的zero_count。
步骤T3:码值计算器根据zero_count的值进行查表,得到bitstream中有效信息位的下标范围,将信息位取出并将其值减1,求出指数哥伦布码的码值codenum,输出给后续解码模块
步骤T4:偏移量生成器根据前导零计算器传递的结果,当使能信号valid信号为高电平时,将zero_count左移一位后加1,计算得出本次解码的比特流长度bitlen,将其传递给到移位器中的offset变量,作为下一次输入数据的偏移量。
如上可看出,本发明的解码器和解码方法在计算前导零时,不进行查表,而是采用并行的位运算的方式进行处理。
本发明提高解码速度的同时减少了面积开销,适合于硬件实现。可应用于高清或超高清实时视频解码芯片等其他对解码速度要求较高的领域中以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种0阶指数哥伦布码解码器,包括比特流移位器、前导零计算器、码值计算器和偏移量生成器,其特征在于:
所述比特流移位器用于接收外部输入的比特流,根据当前的偏移量选择本次输出数据的起始位置,将其输出到前导零计算器和码值计算器;
所述前导零计算器用于接收所述比特流移位器输入的比特流,从其中有效的指数哥伦布码中检测出前缀的零比特数,并将其输出给所述码值计算器和所述偏移量生成器;
所述码值计算器用于接收前导零计算器解出的零比特数和比特流移位器输入的比特流,计算出解码值并输出给后续解码单元;
所述偏移量生成器用于接收前导零计算器得到的零比特数,计算得到本次解码使用的比特流中数据的位数,并传输给比特流移位器;
所述前导零计算器用于执行如下步骤:
步骤S1:并行地计算中间结果,中间结果的每一位是码流中对应的位和对应位之前每一位的非取与,其结果中1所在的位置即为前导零的个数;
步骤S2:将中间结果中每一位的下标按二进制表示,将对应位置为1的,在结果的对应位上取或,其结果即为前导零的个数。
2.根据权利要求1所述的0阶指数哥伦布码解码器,其特征在于,所述前导零计算器采用组合逻辑实现前导零的计算。
3.根据权利要求1所述的0阶指数哥伦布码解码器,其特征在于,所述码值计算器用于根据前导零的个数,查表得到码字中有效信息位的下标范围,将信息位取出并减1,求出指数哥伦布码的码值。
4.根据权利要求1所述的0阶指数哥伦布码解码器,其特征在于,所述比特流移位器每次输出给码值计算器的比特流位宽为31位,而每次只用将其中的低16位输出到前导零计算器。
5.根据权利要求1所述的0阶指数哥伦布码解码器,其特征在于,所述偏移量生成器,用于在输入有效时才产生偏移。
6.根据权利要求5所述的0阶指数哥伦布码解码器,其特征在于,所述偏移量生成器的偏移量为本次解码所使用的数据位数,其值等于前导零的值左移一位后加1。
7.一种0阶指数哥伦布码解码方法,其特征在于,包括如下步骤:
步骤T1:根据当前偏移量,输入比特流信息到码值计算器和前导零计算器;
步骤T2:前导零计算器检测出码流中前缀零比特的个数;
步骤T3:码值计算器根据前导零和输入比特流,解出码值并输出;
步骤T4:偏移量生成器根据前导零的值计算偏移量并输出到比特流移位器;
其中,步骤T2中所述前导零计算器用于执行如下步骤:
步骤S1:并行地计算中间结果,中间结果的每一位是码流中对应的位和对应位之前每一位的非取与,其结果中1所在的位置即为前导零的个数;
步骤S2:将中间结果中每一位的下标按二进制表示,将对应位置为1的,在结果的对应位上取或,其结果即为前导零的个数。
CN201410799892.6A 2014-12-18 2014-12-18 一种0阶指数哥伦布码解码器及解码方法 Active CN104469366B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410799892.6A CN104469366B (zh) 2014-12-18 2014-12-18 一种0阶指数哥伦布码解码器及解码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410799892.6A CN104469366B (zh) 2014-12-18 2014-12-18 一种0阶指数哥伦布码解码器及解码方法

Publications (2)

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

Family

ID=52914635

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410799892.6A Active CN104469366B (zh) 2014-12-18 2014-12-18 一种0阶指数哥伦布码解码器及解码方法

Country Status (1)

Country Link
CN (1) CN104469366B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110290391B (zh) * 2019-07-19 2021-09-17 苏州浪潮智能科技有限公司 一种指数哥伦布码解码方法、***及电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101114833A (zh) * 2007-08-06 2008-01-30 北京航空航天大学 一种指数Golomb编码的编码方法和装置
CN101277444A (zh) * 2007-03-28 2008-10-01 中国科学院微电子研究所 一种对哥伦布码进行解码的装置及方法
CN101707484A (zh) * 2009-06-18 2010-05-12 杭州高特信息技术有限公司 一种适合硬件实现的快速指数哥伦布码解码方法
CN102664637A (zh) * 2012-04-12 2012-09-12 北京中科晶上科技有限公司 确定二进制数据前导零个数的方法及装置
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 (zh) * 2007-03-28 2008-10-01 中国科学院微电子研究所 一种对哥伦布码进行解码的装置及方法
CN101114833A (zh) * 2007-08-06 2008-01-30 北京航空航天大学 一种指数Golomb编码的编码方法和装置
CN101707484A (zh) * 2009-06-18 2010-05-12 杭州高特信息技术有限公司 一种适合硬件实现的快速指数哥伦布码解码方法
CN102664637A (zh) * 2012-04-12 2012-09-12 北京中科晶上科技有限公司 确定二进制数据前导零个数的方法及装置
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

Also Published As

Publication number Publication date
CN104469366A (zh) 2015-03-25

Similar Documents

Publication Publication Date Title
CN101847997B (zh) 一种9b/10b编解码器及其实现方法
CN102088603B (zh) 用于视频编码器的熵编码器及其实现方法
CN105356891B (zh) 一种高资源利用率的极性译码批处理方法
CN105183425B (zh) 一种具有高精度低复杂度特性的固定位宽乘法器
KR101583139B1 (ko) 높은 처리량과 낮은 복잡성을 갖는 연속 제거 극 부호 복호 장치 및 그 방법
CN101702639A (zh) 循环冗余校验的校验值计算方法及装置
CN105721102B (zh) 传输符号编码的传送流中的纠错码的存储器高效的方法
CN104158624A (zh) 一种用于btm***的冗余二取二解码控制装置及解码方法
CN104469366B (zh) 一种0阶指数哥伦布码解码器及解码方法
CN103974066A (zh) 视频编码方法和设备
CN101754020A (zh) 用于编码的视频压缩的方法和***
CN102184086A (zh) 一种Booth编码器及乘法器
CN105760329B (zh) 一种减少总线耦合翻转的编解码装置
CN103746702A (zh) 数据的无损压缩方法与装置
CN103929209A (zh) 基于fpga的高性能组合rs处理器
CN100356793C (zh) 多变长码并行解码器
CN105049057B (zh) 一种面向128位并行输入的crc‑32校验电路
CN102270110A (zh) 一种改进的基16Booth编码器
Gomes et al. Area and power efficient 8K real-time design for AV1 arithmetic decoding
CN102594358A (zh) Bcd码转李氏制约竞争计数编码的码制转换电路
CN104486624B (zh) 一种cavlc熵解码器
CN103684655A (zh) 译码校验装置和方法、译码装置和方法以及接收端
CN102270992B (zh) Turbo译码器中前向递推概率获取方法
US20110019766A1 (en) Process and Device for Encoding, and Associated Electronic System and Storage Medium
CN205959185U (zh) 运算电路

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

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.

TR01 Transfer of patent right
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.

CP03 Change of name, title or address