一种任意阶数指数哥伦布编码器及其方法

文档序号:7552692阅读:190来源:国知局
专利名称:一种任意阶数指数哥伦布编码器及其方法
技术领域
本发明涉及数字视频处理领域,尤其涉及一种指数哥伦布编码器及其编码方法。
背景技术
随着音视频产业的不断发展,人们对音视频编码技术的要求也日益提高,出现了以MPEG-4、H.264/AVC等视频编码标准,我国也制定了中国的视频编码标准AVS。上述视频编码标准可以在保持视频主观质量的前提下,对视频信号进行高效的压缩,从而显著地降低存储空间和传输带宽要求。其中,熵编码技术是上述视频编码标准中不可或缺的组成部分,可以有效的去除压缩比特流中的统计冗余,进一步提高视频的压缩效率。常用的熵编码技术有霍夫曼(Huffman)编码、算术编码和指数哥伦布编码。霍夫曼(Huffman)编码需要事先存储码表,而且使用的概率模型是固定的,而实际码流的概率统计特性并非固定不变的。算术编码器本身计算复杂度较高,而且需要对每个数据需要进行多次位平面编码,难以达到高速的编码速度。指数哥伦布编码是一种可变长前缀码,码字很有规律,可以通过硬件计算得到码字,不仅无需事先建立和存储码表,而且还可以根据信源概率分布函数灵活调整阶数k,从而达到很高的编码效率。由于其具有以上优点,指数哥伦布编码已被国际视频编码标准
H.264/AVC以及中国的视频编码标准AVS所采用作为熵编码的组成部分。目前,熵编码技术一般是在数字信号处理器(DSP,Digital Signal Processor)平台上采用软件的方法实现。采用软件的方法实现的熵编码器,通常速度较低,很难满足实时编码的速度要求;近年来,许多基于算术编码的熵编码方法在硬件上得以实现,达到高清(1920X1080)或标清视频的实时编码速度要求,但仍然无法得到超高清(3840X2160)视频的实时编码速度。

发明内容
本发明的技术解决问题:克服现有技术的不足,提供一种任意阶数指数哥伦布编码器及其编码方法,用以解决视频图像编码中,由于熵编码运算复杂度高、计算量过大而引起的熵编码速度低下,难以满足超高清或高清视频实时压缩的问题。本发明是通过以下技术方案实现的:一种任意阶数指数哥伦布编码器,至少包括:编码值计算模块,利用输入的样本值和指数哥伦布编码阶数,计算出该样本的二进制编码值;所述二进制编码值是将输入样本值与I左移输入阶数位的结果相加得到的;编码值长度计算模块,利用编码值计算模块得到的二进制编码值,以及输入的指数哥伦布编码阶数,计算得到二进制编码值的长度;累加控制模块,对编码值长度计算模块得到的二进制编码值长度进行累加,产生移位控制信号和码流输出控制信号;码流产生模块,按照累加控制模块输出的移位控制信号和码流输出控制信号,使用“移位”和“或”操作完成码流的拼合和输出,而且至少需要使用两个寄存器分别存放得到的编码值和拼合后的编码值。进一步地,所述编码值长度计算模块使用查找表和加法器得到编码值的长度。进一步地,存放编码值和拼合后编码值的寄存器的深度要相等,且至少要达到输入样本最大值编码长度的2倍。本发明的另一个技术方案如下:一种任意阶数指数哥伦布编码方法,包括如下步骤:A)读入样本值和阶数K ;B)计算样本值的二进制编码值及其长度;C)将得到的二进制编码值缓冲在一个寄存器中,当寄存器中缓冲的码流长度达到指定输出长度时,输出指定长度的码流;D)如果读入结束命令,则结束编码;否则重复A-D。进一步地,通过将输入样本值与I左移K位的结果相加,得到二进制编码值;对该二进制编码值从高位向低位逐一搜索,得到第一个’ I’距最低位的距离L,计算2L-1+K的结果就是该二进制编码值的长度;进一步地,输入的二进制编码值紧接上一样本二进制编码值其后,存放在一个寄存器的高位端;当该寄存器中的码流长度达到指定输出长度后,从该寄存器的高位开始取出指定输出长度的编码值,作为码流输出;同时将寄存器内剩余的编码值移位到该寄存器最闻位处。本发明的有益效果在于:(I)本发明的各个模块只涉及了加法、或、移位和比较操作,计算复杂度低,适合硬件快速实现;(2)各个模块内部都采用了流水线结构,充分利用了硬件的并行性;(3)易于硬件实现,编码速度快,能够满足超高清视频实时编码乃至更高的编码要求;(4)所需的硬件资源少。


图1是本发明的一种任意阶数指数哥伦布编码器的外部接口 ;图2是本发明的一种任意阶数指数哥伦布编码器的结构图;图3是本发明的编码值计算模块的接口及其内部核心结构;图4是本发明的编码值长度计算模块的接口及其内部核心结构;图5是本发明的累加控制模块的接口及其内部核心结构;图6是本发明的码流产生模块的接口及其内部核心结构;图7是本发明的一种任意指数哥伦布编码在现场可编程逻辑器件(FPGA)实现得到的编码结果;图8是本发明的一种任意指数哥伦布编码方法流程图。
具体实施例方式以下结合附图和具体实例对本发明作详细介绍。指数哥伦布编码是一种可变长前缀码,其硬件实现简单,无需事先建立和存储码表,不但可以通过硬件计算快速产生码字,而且可以根据信源概率分布函数灵活调整阶数k,因而可以达到很高的编码效率。其码字由两部分组成:一元码+组内标号。表I列出了样本为0-9的k=0,I, 2,3的指数哥伦布编码结果。表I样本0-9的0-3级指数哥伦布编码
权利要求
1.一种任意阶数指数哥伦布编码器,其特征在于至少包括: 编码值计算模块,利用输入的样本值和指数哥伦布编码阶数,计算出该样本的二进制编码值;所述二进制编码值是将输入样本值与I左移输入阶数位的结果相加得到的; 编码值长度计算模块,利用编码值计算模块得到的二进制编码值,以及输入的指数哥伦布编码阶数,计算得到二进制编码值的长度; 累加控制模块,对编码值长度计算模块得到的二进制编码值长度进行累加,产生移位控制信号和码流输出控制信号; 码流产生模块,按照累加控制模块输出的移位控制信号和码流输出控制信号,使用“移位”和“或”操作完成码流的拼合和输出,而且至少需要使用两个寄存器分别存放得到的编码值和拼合后的编码值。
2.如权利要求1所述的任意阶数指数哥伦布编码器,其特征在于:所述编码值长度计算模块使用查找表和加法器得到编码值的长度。
3.如权利要求1所述的任意阶数指数哥伦布编码器,其特征在于:所述两个寄存器的深度相等,且深度至少要达到输入样本最大值编码长度的2倍。
4.一种任意阶数指数哥伦布编码方法,其特征在于包括如下步骤: A)读入样本值和阶数K; B)计算样本值的二进制编码值及其长度; C)将得到的二进制编码值缓冲在一个寄存器中,当寄存器中缓冲的码流长度达到指定输出长度时,输出指定长度的码流; D)如果读入结束命令,则结束编码;否则重复步骤A-D。
5.如权利要求4所述的一种任意阶数指数哥伦布编码方法,其特征在于:通过将输入样本值与I左移K位的结果相加,得到二进制编码值;对该二进制编码值从高位向低位逐一搜索,得到第一个“I”距最低位的距离L,计算2L-1+K的结果就是该二进制编码值的长度;
6.如权利要求4所述的一种任意阶数指数哥伦布编码方法,其特征在于:输入的二进制编码值紧接上一样本二进制编码值其后,存放在一个寄存器的高位端;当该寄存器中的码流长度达到指定输出长度后,从该寄存器的高位开始取出指定输出长度的编码值,作为码流输出;同时将寄存器内剩余的编码值移位到该寄存器最高位处。
全文摘要
本发明公开了一种任意阶数指数哥伦布编码器及其方法,编码器至少包括编码值计算模块、编码值长度计算模块、累加控制模块和码流生成模块,各个模块内部都可采用流水操作,充分利用硬件的并行性来提高编码速度。其编码方法,只需利用加法、或、移位和比较操作就可以快速的产生指数哥伦布编码码字,适合于硬件实现。本发明用以解决视频图像编码中,由于熵编码运算复杂度高、计算量过大而引起的熵编码速度低下,难以满足超高清或高清视频实时压缩的问题。本发明可应用于超高清或高清实时视频编码芯片等对编码速度要求较高的领域中,还可以满足更高速度的视频图像编码需求。
文档编号H04N7/26GK103152567SQ201310060100
公开日2013年6月12日 申请日期2013年2月26日 优先权日2013年2月26日
发明者孙健, 任国强, 徐永刚, 黄辉 申请人:中国科学院光电技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1