CN103200407A - 一种自适应熵编码器 - Google Patents
一种自适应熵编码器 Download PDFInfo
- Publication number
- CN103200407A CN103200407A CN201310130873XA CN201310130873A CN103200407A CN 103200407 A CN103200407 A CN 103200407A CN 201310130873X A CN201310130873X A CN 201310130873XA CN 201310130873 A CN201310130873 A CN 201310130873A CN 103200407 A CN103200407 A CN 103200407A
- Authority
- CN
- China
- Prior art keywords
- length
- coding
- module
- data
- effective
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种自适应熵编码器,包括零游程编码模块对输入有效标志信号有效时的待编码数据进行自适应零游程编码,得到零游程编码后的游程数据及游程有效标志信号;非负映射模块将游程有效标志信号有效时的零游程编码后的游程数据从整数范围映射到非负空间,输出映射后的非负数据及非负有效标志信号;指数哥伦布编码器阶数更新模块接收输入样本连零指数和映射后的非负数据及非负有效标志信号,对非负有效标志信号有效时的非负数据进行上下文建模,并计算出非负数据合理的指数哥伦布编码阶数;指数哥伦布编码模块接收并对非负有效标志信号有效时的非负数据进行指数哥伦布编码阶数的指数哥伦布编码,得到并输出熵编码码流及码流有效标志信息。
Description
技术领域
本发明涉及数字视频处理领域,尤其涉及一种自适应熵编码器及其硬件实现方法。
背景技术
随着音视频产业的不断发展,视频图像的分辨率日益提高,由此带来的数据量越来越大。如何将这些视频图像数据有效地存储以及实时传输已经成为人们日益关注的焦点。高效的视频图像编码技术无疑是解决这个问题的一个有效途径。国际上出现了MPEG-4、H.264/AVC等视频编码标准,我国也制定了中国的视频编码标准AVS。上述视频编码标准可以在保持视频主观质量的前提下,对视频信号进行高效的压缩,从而显著地降低存储空间和传输带宽要求。
其中,熵编码技术是上述视频编码标准中的重要组成部分,可以有效的去除压缩比特流中的统计冗余,进一步提高视频的压缩效率。常用的熵编码技术有霍夫曼(Huffman)编码、算术编码和指数哥伦布编码。霍夫曼(Huffman)编码需要事先存储码表,内存需求大,而且Huffman码字必定是整数比特长,而且使用的概率模型是固定不变的,编码效果不是最佳的。而算术编码器可以很好的解决这个问题,它突破了Huffman只能按整数比特逼近信源熵的限制,得到了比变长码更好的编码效果,然而,算术编码计算复杂度较高,硬件实现复杂,不容易达到高速的编码速度。
指数哥伦布编码是一种可变长前缀码,码字很有规律,可以通过硬件计算得到码字,不仅无需事先建立和存储码表,而且还可以根据信源概率分布函数灵活调整编码阶数,能够达到很高的编码效率。由于其具有以上优点,指数哥伦布编码已被国际视频编码标准H.264/AVC以及中国的视频编码标准AVS所采用作为熵编码的组成部分。
目前,熵编码技术一般是在数字信号处理器(DSP,Digital SignalProcessor)平台上采用软件的方法实现。采用软件的方法实现的熵编码器,通常速度较低,很难满足实时编码的速度要求;近年来,许多基于算术编码的熵编码方法在硬件上得以实现,达到高清(1920×1080)或标清视频的实时编码速度要求,但仍然无法满足超高清(3840×2160)视频的实时编码的速度要求。此外,低功耗设计也逐渐成为了衡量一个编码器性能优劣的一个指标。
发明内容
有鉴于此,本发明的目的在于提供一种自适应熵编码器,用以解决视频图像编码中,由于熵编码运算复杂度高、计算量过大而引起的熵编码速度低下,难以满足超高清或高清视频实时压缩的问题。
本发明一种高速自适应熵编码器是通过以下技术方案实现的:所述自适应熵编码器,至少包括:
零游程编码模块,对输入有效标志信号有效时的待编码数据进行自适应零游程编码,得到零游程编码后的游程数据及游程有效标志信号;
非负映射模块与零游程编码模块连接,将游程有效标志信号有效时的零游程编码后的游程数据从整数范围映射到非负空间,输出映射后的非负数据及非负有效标志信号;
指数哥伦布编码器阶数更新模块与非负映射模块连接,接收输入样本连零指数和映射后的非负数据及非负有效标志信号,对非负有效标志信号有效时的非负数据进行上下文建模,并计算出非负数据合理的指数哥伦布编码阶数;
指数哥伦布编码模块分别与非负映射模块、指数哥伦布编码器阶数更新模块相连,接收并对非负有效标志信号有效时的非负数据进行指数哥伦布编码阶数的指数哥伦布编码,得到并输出熵编码码流及码流有效标志信息。
本发明的有益效果在于:
(1)本发明的各个模块均无需乘法操作,计算复杂度低,适合硬件快速实现;
(2)各个模块形成了流水线结构,内部还可以再进行流水线分割,充分利用了硬件的并行性;
(3)结构简单,所需硬件资源少,编码速度快,能够广泛应用于超高清视频实时编码领域;
(4)功耗低,能够广泛应用于移动设备的实时编码。
本发明的自适应熵编码器,该熵编码器由零游程编码模块、非负映射模块、指数哥伦布编码器阶数更新模块和指数哥伦布编码模块组成。各个模块内部均无需乘法操作,适合于硬件实现;采用了多级流水操作方式,充分利用硬件的并行性来提高编码速度,降低功耗。可应用于超高清或高清实时视频编码芯片等对编码速度要求较高的领域中,也可应用于无线设备对图像视频编码的场合。
附图说明
图1是本发明的自适应熵编码器的结构框图;
图2是本发明的零游程编码模块的主要结构图;
图3是本发明的非负映射模块的主要结构图;
图4是本发明的指数哥伦布编码器阶数更新模块的主要结构图;
图5是本发明的指数哥伦布编码模块的结构框图;
图6是本发明的指数哥伦布编码模块内部各模块的主要结构图;
图7是本发明的自适应熵编码器在现场可编程门阵列(FPGA)上实现后得到的实现结果。
具体实施方式
以下结合附图和具体实例对本发明的各个功能模块以其工作流程作详细介绍。
请参阅图1示出的本发明的自适应熵编码器,来自外部的输入信号包括:待编码数据D(16位参考位宽),输入有效标志信号VD(位宽1位),输入样本连零指数Q(5位参考位宽),时钟信号和复位信号。时钟信号和复位信号是全局信号,作用于内部所有模块,为了简明,在本发明所有图中都没有标出时钟和复位信号。当复位信号有效时,所有模块复位到初始状态。自适应熵编码器的输出信号包括:熵编码码流C(64位参考位宽)及码流有效标志信息VC(位宽1位)。整个自适应熵编码器化分为4级流水结构,如图中的虚线所示。图中信号线上标记的数据为该信号的参考位宽。
所述自适应熵编码器包括:
零游程编码模块,接收待编码数据有效标志信号VD和待编码数据D,其中,输入信号也是自适应熵编码器的外部输入信号。零游程编码模块的作用是对输入有效标志信号VD有效时的有效待编码数据D进行自适应零游程编码,输出零游程编码后的游程数据R及游程有效标志信号VR。
输入的零游程有效标志信号VD为高电平时有效,则输入的待编码数据D是有效的,输入的零游程有效标志信号VD为低电平,则表示待编码数据D无效。
当游程有效标志信号VR为高电平时,则表示输出的零游程编码后的游程数据R是有效的,当输出游程有效标志信号VR为低电平时,则表示输出的零游程编码后的游程数据R无效;
非负映射模块与零游程编码模块连接,将游程有效标志信号VR有效时的零游程编码后的游程数据R从整数范围映射到非负空间,输出映射后的非负数据M及非负有效标志信号VM。当非负有效标志信号VM为高电平时,则表示输出的映射后的非负数据M是有效的,当非负有效标志信号VM为低电平时,则输出的映射后的非负数据M无效;
指数哥伦布编码器阶数更新模块与非负映射模块连接,接收输入样本连零指数Q、非负数据M和非负有效标志信号VM,对非负有效标志信号有效时的非负数据M进行上下文建模,计算出非负数据M合理的指数哥伦布编码阶数K;
指数哥伦布编码模块分别与非负映射模块、指数哥伦布编码器阶数更新模块相连,接收并对非负有效标志信号VM有效时的非负数据M进行指数哥伦布编码阶数K的指数哥伦布编码,得到并输出熵编码码流C及码流有效标志信息VC。其中熵编码码流C及其码流有效标志信息VC是自适应熵编码器的输出信号。
输出的熵编码码流有效标志信号VC为高电平时,则表示输出的熵编码码流C为有效,输出的熵编码码流有效标志信号VC为低电平时,则表示输出的熵编码码流C为无效。
下面结合附图,对各个模块及其工作流程进行详细介绍。
(1)、零游程编码模块
本发明中的零游程编码模块实现了一种只对0系数进行游程编码的零游程编码。这种零游程编码包含两种工作模式:普通模式和零游程模式,并在两种工作模式之间不断切换完成编码。该零游程编编码的初始模式为普通模式时,在普通模式下直接将输入的待编码数据输出,若连续输入待编码数据D为0的个数达到2个时,便进入零游程模式;在零游程模式下,没有数据输出,只对输入待编码数据D中的0的个数进行计数,不进行输出,直到输入待编码数据D为非0数据时退出零游程模式,并输出待编码数据D连续0的个数和该非0数据。所以,该方法就是对顺序样本在两个模式之间不断的转换而实现编码的。例如:该零游程编码输入数据为:-5 0 0 4 2 0 4 0 0 0 0 0 0 0 0 9 2,则输出为:-5 0 0 0 42 0 4 0 0 6 9 2。可见,当样本中有大量连续为0的时候,可以有效的压缩样本的长度。
请参阅图2为本发明的零游程编码模块的主要结构图,主要由一个先入先出数据缓存器FIFO、比较器、计数器、多个延时单元Z-1、控制器、第一选择器、第二选择器、第一加法器,以及一些其他逻辑单元组成,所述逻辑单元如图2中的非门、与门和与非门。该零游程编码模块的输入零游程有效标志信号VD为有效时,将待编码数据D写入一个先入先出数据缓存器FIFO,这里将零游程有效标志信号VD当作先入先出数据缓存器FIFO的写使能信号WE,待编码数据写入到先入先出数据缓存器FIFO内部需要一个时钟。然后,将从先入先出数据缓冲器FIFO中读出的数据DT与比较器的0端进行比较:如果数据DT等于0,计数器加1,清零信号m为0;如果数据DT不为0,清零信号m为1,计数器的计数值清0。计数器的输出信息同时也输入到第一加法器中,与常数2做差。第一加法器的输出信息接入到第二选择器中;从先入先出数据缓存器FIFO的读出的数据DT和将数据DT延时了一个时钟周期后的数据DT2输入到第一选择器中,第一选择器的输出信息接入到第二选择器中。我们将计数器的计数值用cnt表示,当计数值cnt大于等于2时,令一中间信号n为1,否则n为0。清零信号m和一中间信号n相与得到另一中间信号mn,延时单元Z-1将另一中间信号mn延时一个时钟后得到暂存信号mn_t,再将暂存信号mn_t延时一个时钟得到暂存信号mn_t2;当中间信号mn为1或者先入先出数据缓存器FIFO的空指示信号EMPTY为1时,先入先出数据缓存器FIFO的读使能信号RE为‘0’,否则读使能信号RE为‘1’;由于先入先出数据缓存器FIFO的读出需要一个时钟,故将读使能信号RE信号延时一个时钟后得到读出数据D的有效标志信号VDT。将信号中间信号n,另一中间信号mn,暂存信号mn_t,暂存信号mn_t2以及读出待编码数据D的有效标志信号VDT输入到控制器中,控制器输出选择信号MA、MB给入第一选择器和第二选择器以得到零游程编码后的游程数据R,控制器还输出游程有效标志信号VR。为了使零游程编码模块的性能得到进一步的提升,我们在关键路径中插入寄存器,减少关键路径的长度,提高编码模块的主频。图中的点划线部分表示需要用一个时钟(可看作插入了寄存器):如先入先出数据缓存器FIFO的写操作和读操作;计数器的计数和清零操作以及中间信号n和另一中间信号m信号进行与非操作。此外,在虚线位置插入寄存器,形成流水线操作。表1描述了控制器的输入输出行为模型(“--”表示不关心)。
表1控制器的输入输出行为模型
(2)、非负映射模块
由于指数哥伦布编码器只能对非负样本进行编码,而零游程编码模块输出的游程数据可能为负数。所以,必须将零游程编码输出的游程数据从整数范围变换到非负空间,才能作为指数哥伦布编码器的输入数据。本发明的非负映射模块采用如下的映射公式:
请参阅图3,为本发明的非负映射模块的主要结构图,非负映射模块使用了取反、移位、加法和二选一操作,包括取反单元、第一移位单元、第二移位单元、第二加法器和第三选择器。当游程有效标志信号VR有效时的零游程编码后的游程数据R为正数时,即游程数据R的符号位R(23)为1,控制第三选择器将输入的零游程编码后的游程数据R由第二移位单元左移1位的结果MP作为非负映射模块的输出映射后的非负数据M;当输入零游程编码后的游程数据R为负数时,将输入的零游程编码后的数据R由取反单元取反后,然后由第一移位单元左移1位,再由第二加法器与常数1相加的结果MN作为非负映射模块的输出结果为非负数据M。
(3)、指数哥伦布编码器阶数更新模块
指数哥伦布编码器阶数更新模块需要对输入非负映射模块输出的非负有效标志信号VM有效时的非负数据M及其三个上文进行分析,得到该输入非负数据合理的指数哥伦布编码阶数K。指数哥伦布编码器阶数更新模块中采用首1探测的方式计算一个数的以2为底的对数值。请参阅图4,为本发明指数哥伦布编码器阶数更新模块的主要结构图,由第一锁存单元D1、第二锁存单元D2、第三锁存单元D3、第四锁存单元D4和第五锁存单元D5,第一首1探测器、第三加法器、决策单元和第四选择器组成。如果非负映射后得到的非负数据M的非负有效信号VM有效,则将非负映射后得到的非负数据M缓存到第一锁存单元D1中,同时将非负有效信号VM则第四锁存到D4中;如果从第四锁存器D4中读出的有效信号VMD1有效,则将从第一锁存器D1读出的非负数据MD1存到第二锁存单元D2中,同时将非负有效信号VM则第四锁存到D5中;如果从第五锁存器D5中读出的有效信号VMD2有效,则将从第二锁存器D2中读出的非负数据MD2存到第三锁存单元D3中。这样从第一锁存器D1中读出的非负数据MD1、从第二锁存器D2中读出的非负数据MD2和从第三锁存器D3中读出的非负数据MD3便为非负映射后得到的非负数据M的三个上文,将非负数据M的三个上文输入到决策单元,产生控制信号控制第四选择器。决策单元是按下面公式(2)控制第四选择器进行输出指数哥伦布编码阶数K:
式子中log2(MD1)为第一锁存单元D1的非负数据MD1的对数值;表示对第一锁存单元D1的非负数据MD1的对数值向下取整符号。
指数哥伦布编码器阶数更新模块使用上一输入非负数据MD1得到的指数哥伦布编码阶数来预测当前接收到的非负数据M的指数哥伦布编码阶数。上一输入非负数据MD1的指数哥伦布编码阶数是通过第一首1探测器,得到非负数据MD1以2为底的对数值,然后输入到第三加法器中与常数2相减,并将得到的结果输入到第四选择器。第一首1探测器是对输入到首1探测器中的数据从高到低位进行索引,用查找表的方式得到输入到首1探测器中的数据中的第一个‘1’距离最低位的距离,也就是得到了首1探测器接收到的数据以2为底的对数。输入样本连零指数Q用来表征输入本发明的自适应熵编码器的待编码数据D中连续0可能出现的长度:如果待编码数据D中连续0可能出现的长度越长,用户可以将输入样本连零指数Q的值设定的大一些;如果待编码数据D中连续0可能出现的长度越短,用户可以将输入样本连零指数Q的值设定的小一些。
(4)、指数哥伦布编码器模块
指数哥伦布编码是一种可变长前缀码,其硬件实现简单,无需事先建立和存储码表,不但可以通过硬件计算快速产生码字,而且可以根据信源概率分布函数灵活调整指数哥伦布编码阶数K,因而可以达到很高的编码效率。其码字由两部分组成:一元码+组内标号。表2列出了样本为0-9的K=0,1,2,3的Exp-golomb编码结果。
表2样本0-9的0-3级指数哥伦布编码
样本n | K=0 | K=1 | K=2 | K=3 |
0 | 1 | 10 | 100 | 1000 |
1 | 010 | 11 | 101 | 1001 |
2 | 011 | 0100 | 110 | 1010 |
3 | 00100 | 0101 | 111 | 1011 |
4 | 00101 | 0110 | 01000 | 1100 |
5 | 00110 | 0111 | 01001 | 1101 |
6 | 00111 | 001000 | 01010 | 1110 |
7 | 0001000 | 001001 | 01011 | 1111 |
8 | 0001001 | 001010 | 01100 | 010000 |
9 | 0001010 | 001011 | 01101 | 010001 |
请参阅图5,本发明指数哥伦布编码模块的结构框图,包括编码值计算模块、编码值长度计算模块、累加控制模块和码流产生模块。该模块可划分为4级流水线结构,如图中的虚线所示。
在编码值计算模块中,输入非负映射后得到的非负数据M及其非负有效标志信号VM,以及指数哥伦布编码器阶数更新模块输出的指数哥伦布编码阶数K;输出非负数据M的二进制编码值CC及其编码值有效信号VCC。参阅图6(1)为指数哥伦布编码模块中的编码值计算模块主要结构,左移单元将常数1左移K位得到的结果输入到第四加法单元,与输入的指数哥伦布编码阶数K相加,得到的结果作为二进制编码值CC。
编码值长度计算模块与编码值计算模块连接,接收编码值计算模块输出的二进制编码值CC和二进制编码值有效信号VCC,以及指数哥伦布编码器阶数更新模块输出的指数哥伦布编码阶数K;输出二进制编码值的有效比特位长度LC及其二进制编码值长度有效信号VL。请参阅图6(2)为指数哥伦布编码模块中的编码值长度计算模块主要结构,首先将二进制编码值编码值CC输入到第二首1探测器中,找到二进制编码值CC从高位到低位的第一个’1’距离最低位的距离L,再计算得到2L-1的值,最后与输入的指数哥伦布编码器阶数更新模块输出的指数哥伦布编码阶数K使用第五加法器进行减法操作,得到2L-1-K的值作为二进制编码值CC的有效比特位长度LC。
累加控制模块与编码值长度计算模块连接,对编码值长度计算模块输出的有效比特位长度LC及其二进制编码值长度有效信号VL进行累加,输出码流的累加长度SL、累加二进制编码值长度有效信号VSL和码流输出控制信号G64。参阅图6(3)为指数哥伦布编码模块中的累加控制模块主要结构,累加控制模块对编码值长度计算模块得到的二进制编码值的有效比特位长度LC使用第六加法器进行累加,得到累加长度SL,然后用上一迭代周期得到的码流的累加长度SL与64进行比较,如果码流的累加长度SL大于64位参考位宽,则控制第五选择器选通码流的累加长度SL-64位参考位宽,否则,选通码流的累加长度SL。同时,将比较结果作为码流输出控制信号G64。
在码流产生模块中,与编码值计算模块和累加控制模块连接,接收并按照二进制编码值CC、二进制编码值有效信号VCC、累加长度SL、累加二进制编码值长度有效信号VSL、以及码流输出控制信号G64,对编码值计算模块产生的二进制编码值CC进行合并,并输出合并后的熵编码码流C数据及输出码流有效标志信息VC。参阅图6(4)为指数哥伦布编码模块中的码流产生模块主要结构,二进制编码值CC存入128-bit寄存器D1中,然后循环右移SL位,存入128-bit寄存器D2中。码流输出控制信号G64控制一个第六选择器,如果码流输出控制信号G64为1,则将128-bit寄存器C2的值左移64位,存入128-bit寄存器C1中;如果码流输出控制信号G64为0,则将128-bit寄存器C2的值左移0位,存入128-bit寄存器C1中。然后,128-bit寄存器D2的值和128-bit寄存器C1的值进行或操作,实现码流的合并。如果码流输出控制信号G64为1,则将128-bit寄存器C2的高64位作为熵编码码流C输出,同时标记码流有效标志信号VC。
为了验证本发明的有效性,本发明的自适应熵编码编码器在型号为XC5VFX70T的现场可编程门阵列(FPGA)编程实现,综合得到的最高频率为354.365MHz,理论峰值处理速度可达每秒354.365兆像素点;使用了748个寄存器单元(Slice Registers)和677个查找表单元(SliceLUTs),所耗资源不足该型号FPGA总资源的2%;后综合仿真显示,本发明工作在30MHz(数据吞吐量大约为每秒30兆像素点)的动态功耗仅有31.68mW,这说明本发明可以应用于移动设备进行图像的实时编码;将本发明的高速自适应熵编码编码器的程序编译后生成二进制比特流下载到上述型号的FPGA上,运行后得到的编码结果,如图7中(a)和(b)所示。验证时,循环输入0、-1、1、-2、2、-3、3、-4、4、-5、5、-6、6、-7、7、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0三十二个值作为输入数据A,4次为一组。输入数据A的位宽为16位,熵编码编码值C的位宽为64位。从图7中(a)可以看出:连续输入了32×4个16位的数据,一共输出了4个64位的编码值C,说明该熵编码器具有很好的压缩性能;图7中(b)为图6中(a)的局部放大图,从图中可以明显看到各个模块的输出结果,以及最后得到的编码值的正确性。
本发明各个模块之间构成了4级流水线操作,模块内部也进行的相应的流水线操作,确保一个时钟可以对一个输入像素进行编码。本发明在型号为XC5VFX70T的FPGA实现后,理论峰值处理速度可达每秒354.365兆像素点。这个处理速度远远大于当前熵编码的最高速度,足以满足超高清视频实时编码的要求。同时,本发明的熵编码结构简单,编码速度快;使用资源少;功耗很低;而且,采用了上下文的方式自适应的更新指数哥伦布的编码阶数,达到了很好的编码效果。所以,本发明也可广泛用于视频编码芯片中,满足超高清、高清视频实时编码的需求。
以上所述仅为本发明的较佳实施实例而已,并不用与限制本发明。凡在本发明的精神和原则之内,所作的任何修改、等同替换、功能模块的合并或展开以及改进等,均应包含在本发明的包含范围之内。
Claims (6)
1.一种自适应熵编码器,其特征在于,至少包括:
零游程编码模块,对输入有效标志信号有效时的待编码数据进行自适应零游程编码,得到零游程编码后的游程数据及游程有效标志信号;
非负映射模块与零游程编码模块连接,将游程有效标志信号有效时的零游程编码后的游程数据从整数范围映射到非负空间,输出映射后的非负数据及非负有效标志信号;
指数哥伦布编码器阶数更新模块与非负映射模块连接,接收输入样本连零指数和映射后的非负数据及非负有效标志信号,对非负有效标志信号有效时的非负数据进行上下文建模,并计算出非负数据合理的指数哥伦布编码阶数;
指数哥伦布编码模块分别与非负映射模块、指数哥伦布编码器阶数更新模块相连,接收并对非负有效标志信号有效时的非负数据进行指数哥伦布编码阶数的指数哥伦布编码,得到并输出熵编码码流及码流有效标志信息。
2.如权利要求1所述的自适应熵编码器,其特征在于,所述零游程编码模块实现的零游程编码包括普通模式和零游程模式两种工作模式,并在两种工作模式之间不断切换完成编码;在普通模式下,直接将输入待编码的数据输出,当连续输入待编码数据为0达到2个时,进入零游程模式;在零游程模式下,只对输入待编码数据中的0的个数进行计数,不进行输出,当输入待编码数据非0数据时退出零游程模式,并输出待编码数据中连续0的个数和该非0数据。
3.如权利要求1所述的自适应熵编码器,其特征在于,非负映射模块使用了取反、移位、加法和二选一操作。
4.如权利要求1所述的自适应熵编码器,其特征在于,指数哥伦布编码器阶数更新模块需要对输入非负映射模块输出的非负有效标志信号有效时的非负数据及其三个上文进行分析,得到该输入非负数据合理的指数哥伦布编码阶数。
5.如权利要求1所述的自适应熵编码器,其特征在于,指数哥伦布编码器阶数更新模块中采用首1探测的方式计算一个数的以2为底的对数值。
6.如权利要求1所述的自适应熵编码器,其特征在于,指数哥伦布编码模块包括:编码值计算模块、编码值长度计算模块、累加控制模块和码流产生模块,其中:
编码值计算模块,利用非负有效标志信号有效时的非负数据和指数哥伦布编码阶数,计算出非负数据的二进制编码值及编码值有效信号;
编码值长度计算模块与编码值计算模块连接,对编码值计算模块得到的二进制编码值、二进制编码值有效信号以及指数哥伦布编码阶数,计算得到二进制编码值的有效比特位长度及二进制编码值长度有效信号;
累加控制模块与编码值长度计算模块连接,对编码值长度计算模块得到二进制编码值的有效比特位长度及二进制编码值长度有效信号进行累加,输出码流的累加长度、累加二进制编码值长度有效信号和码流输出控制信号;
码流产生模块与编码值计算模块和累加控制模块连接,接收并按照二进制编码值、二进制编码值有效信号、累加长度、累加二进制编码值长度有效信号、以及码流输出控制信号,对编码值计算模块产生的二进制编码值进行合并,并输出合并后的熵编码码流数据及输出码流有效标志信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310130873.XA CN103200407B (zh) | 2013-04-16 | 2013-04-16 | 一种自适应熵编码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310130873.XA CN103200407B (zh) | 2013-04-16 | 2013-04-16 | 一种自适应熵编码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103200407A true CN103200407A (zh) | 2013-07-10 |
CN103200407B CN103200407B (zh) | 2016-05-18 |
Family
ID=48722748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310130873.XA Active CN103200407B (zh) | 2013-04-16 | 2013-04-16 | 一种自适应熵编码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103200407B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718402A (zh) * | 2016-01-13 | 2016-06-29 | 福州瑞芯微电子股份有限公司 | 可编程时序发生器 |
CN108989825A (zh) * | 2018-07-18 | 2018-12-11 | 北京奇艺世纪科技有限公司 | 一种算术编码方法、装置及电子设备 |
CN112399181A (zh) * | 2019-08-19 | 2021-02-23 | 华为技术有限公司 | 图像编解码的方法、装置和芯片 |
CN114697655A (zh) * | 2020-12-30 | 2022-07-01 | 中国科学院计算技术研究所 | 均衡流间压缩速度的神经网络量化压缩方法及系统 |
CN116612338A (zh) * | 2023-07-21 | 2023-08-18 | 华中科技大学 | 基于网络状态索引卷积神经网络集的图像识别方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764357A (en) * | 1996-04-12 | 1998-06-09 | Vlsi Technology, Inc. | Zero-run-length encoder with shift register |
CN101277444A (zh) * | 2007-03-28 | 2008-10-01 | 中国科学院微电子研究所 | 一种对哥伦布码进行解码的装置及方法 |
US20080260275A1 (en) * | 2004-05-17 | 2008-10-23 | Ikuro Ueno | Image Coding Apparatus |
CN101404772A (zh) * | 2008-11-19 | 2009-04-08 | 中国科学院光电技术研究所 | 基于小波变换的vlsi图像压缩编码器 |
CN101917622A (zh) * | 2010-08-24 | 2010-12-15 | 中国科学院光电技术研究所 | 14bit位宽图像压缩硬件编码器 |
-
2013
- 2013-04-16 CN CN201310130873.XA patent/CN103200407B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764357A (en) * | 1996-04-12 | 1998-06-09 | Vlsi Technology, Inc. | Zero-run-length encoder with shift register |
US20080260275A1 (en) * | 2004-05-17 | 2008-10-23 | Ikuro Ueno | Image Coding Apparatus |
CN101277444A (zh) * | 2007-03-28 | 2008-10-01 | 中国科学院微电子研究所 | 一种对哥伦布码进行解码的装置及方法 |
CN101404772A (zh) * | 2008-11-19 | 2009-04-08 | 中国科学院光电技术研究所 | 基于小波变换的vlsi图像压缩编码器 |
CN101917622A (zh) * | 2010-08-24 | 2010-12-15 | 中国科学院光电技术研究所 | 14bit位宽图像压缩硬件编码器 |
Non-Patent Citations (3)
Title |
---|
孙健,任国强,李其虎: "高速指数哥伦布编解码器的VLSI设计与实现", 《半导体光电》 * |
徐勇,徐智勇,张启衡: "基于游程和扩展指数哥伦布编码的任意形状感兴趣区域图像编码", 《光学精密工程》 * |
徐勇,徐智勇等: "适于硬件实现的低复杂度图像压缩", 《光学精密工程》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718402A (zh) * | 2016-01-13 | 2016-06-29 | 福州瑞芯微电子股份有限公司 | 可编程时序发生器 |
CN108989825A (zh) * | 2018-07-18 | 2018-12-11 | 北京奇艺世纪科技有限公司 | 一种算术编码方法、装置及电子设备 |
CN108989825B (zh) * | 2018-07-18 | 2021-05-07 | 北京奇艺世纪科技有限公司 | 一种算术编码方法、装置及电子设备 |
CN112399181A (zh) * | 2019-08-19 | 2021-02-23 | 华为技术有限公司 | 图像编解码的方法、装置和芯片 |
CN112399181B (zh) * | 2019-08-19 | 2022-08-26 | 华为技术有限公司 | 图像编解码的方法、装置和存储介质 |
US11863799B2 (en) | 2019-08-19 | 2024-01-02 | Huawei Technologies Co., Ltd. | Image encoding method and apparatus, image decoding method and apparatus, and chip |
CN114697655A (zh) * | 2020-12-30 | 2022-07-01 | 中国科学院计算技术研究所 | 均衡流间压缩速度的神经网络量化压缩方法及系统 |
CN114697655B (zh) * | 2020-12-30 | 2023-04-11 | 中国科学院计算技术研究所 | 均衡流间压缩速度的神经网络量化压缩方法及系统 |
CN116612338A (zh) * | 2023-07-21 | 2023-08-18 | 华中科技大学 | 基于网络状态索引卷积神经网络集的图像识别方法及系统 |
CN116612338B (zh) * | 2023-07-21 | 2023-09-29 | 华中科技大学 | 基于网络状态索引卷积神经网络集的图像识别方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103200407B (zh) | 2016-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103200407B (zh) | 一种自适应熵编码器 | |
TWI514779B (zh) | 熵編碼技術 | |
CN103858433B (zh) | 分层熵编码及解码 | |
CN101951516B (zh) | 基于h.264/avc中cabac的并行编码实现电路及编码方法 | |
CN105120293A (zh) | 基于cpu和gpu的图像协同解码方法及装置 | |
TW201624928A (zh) | 熵編碼及解碼方案 | |
CN101917622B (zh) | 14bit位宽图像压缩硬件编码器 | |
CN104837019B (zh) | 基于支持向量机的avs到hevc优化视频转码方法 | |
CN101252694A (zh) | 基于块的视频解码的帧存储压缩和地址映射系统 | |
CN103227924B (zh) | 一种算术编码器及编码方法 | |
CN107801044B (zh) | 后向适应装置与相关方法 | |
Mei et al. | VLSI design of a high-speed and area-efficient JPEG2000 encoder | |
CN103248896A (zh) | Mq算术编码器 | |
CN103152567A (zh) | 一种任意阶数指数哥伦布编码器及其方法 | |
WO2020114283A1 (zh) | 数据处理方法及装置 | |
CN112290953A (zh) | 多道数据流的阵列编码装置和方法、阵列解码装置和方法 | |
CN103428502B (zh) | 一种解码方法及解码系统 | |
CN104349165B (zh) | 高性能变长编解码方法及装置 | |
CN102298782B (zh) | 用于无损视频压缩的参数估计的系统、方法 | |
CN103596013B (zh) | 新型解码器及解码方法 | |
CN113141508B (zh) | 算术编码器及实现算术编码的方法和图像编码方法 | |
Wang et al. | Hardware architecture design of HEVC entropy decoding | |
Zhang et al. | Design and Implementation of Lossless Compression System for CCSDS Hyperspectral Images | |
WO2023213074A1 (zh) | 点云处理方法、装置、设备、存储介质及产品 | |
CN113766238B (zh) | Jpeg-ls无损压缩标准下基于fpga的图像高速压缩方法及系统 |
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 |