CN103248896A - Mq算术编码器 - Google Patents

Mq算术编码器 Download PDF

Info

Publication number
CN103248896A
CN103248896A CN 201310179101 CN201310179101A CN103248896A CN 103248896 A CN103248896 A CN 103248896A CN 201310179101 CN201310179101 CN 201310179101 CN 201310179101 A CN201310179101 A CN 201310179101A CN 103248896 A CN103248896 A CN 103248896A
Authority
CN
China
Prior art keywords
register
code stream
output
data
update module
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.)
Pending
Application number
CN 201310179101
Other languages
English (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.)
Institute of Optics and Electronics of CAS
Original Assignee
Institute of Optics and Electronics of CAS
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 Optics and Electronics of CAS filed Critical Institute of Optics and Electronics of CAS
Priority to CN 201310179101 priority Critical patent/CN103248896A/zh
Publication of CN103248896A publication Critical patent/CN103248896A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种MQ算术编码器,概率查找及更新模块,用于输出待编码数据的概率估计值、待编码数据与高概率符号相同标志、以及输出有效标志信号;寄存器更新模块,与概率查找及更新模块相连接,用于得到待编码数据的码流、码流长度以及有效标志信号,同时将编码状态区间寄存器的值反馈到概率查找及更新模块;码流拼合与输出模块与寄存器更新模块相连接,接收寄存器更新模块输出的待编码数据的码流、码流长度以及有效标志信号,使用码流拼合与输出模块中的首字节进位缓冲寄存器对输入的码流进行拼合,用于输出码流及输出码流有效标志信号。本发明减少了环路路径长度,减少了等待时间,有效的提升了编码的速度。

Description

MQ算术编码器
技术领域
本发明涉及数字图像及视频处理领域,涉及算术编码器结构,可用于超大规模集成电路VLSI设计。
背景技术
随着科技的发展,CCD相机的分辨率越来越高,采样速度越来越快,由此带来了海量的数据量,给信息的存储和传输造成了很大的困难,成为阻碍人们获取和使用有效信息的瓶颈之一。高效的图像视频编码技术无疑是解决这个问题的一个有效途径。在图像压缩方面,国际上出现了JPEG、JPEG_LS、JPEG2000等图像编码标准,其中JPEG2000是最新的图像压缩标准,可以得到高保真的图像质量,也具有很好的鲁棒性,能够支持感兴趣区域编码以及嵌入式编码,成为当今人们研究的一个热点之一;在视频编码方面,出现了MPEG-x和H.26x两大系列为主的视频编码标准,这些标准都能够在保持主观质量的条件下,对视频信息进行高效的压缩,从而极大的降低存储空间和带宽要求。
不管是图像编码还是视频编码,熵编码技术都是一个重要组成部分。它可以有效的去除压缩比特流中的统计冗余,进一步提高视频的压缩效率。传统的熵编码技术模块主要是基于霍夫曼(Huffman)理论,存在以下不足:1)码字只能用整数位比特表示;2)编码所使用的概率模型是固定的,而实际码流的概率统计特性并非固定不变的。算术编码器可以很好的解决这个问题,它突破了Huffman只能按整数比特逼近信源熵的限制,而且可以根据上下文信息对概率模型不断的更新,从而得到了比变长码更好的编码效果。据统计,基于上下文的算术编码比通用变长码的编码效率提高10%-20%,但计算复杂度要增加20%-30%。
近年来,自适应二进制算术编码有了新的发展,其改进主要集中在“自适应概率估计模型”和“定长区间归一化”的优化以及算法复杂度的降低等方面,MQ算术编码器是JPEG2000标准所采用的另一种改进的Q编码器,也被JPIG2标准所采用。MQ算术编码器采用了无乘法的近似和位缓冲的策略,增加了条件交换和概率估计状态机中的贝叶斯学习过程,效率上得到了进一步提升。MQ算术编码器是JPEG2000中所使用的一种自适应算术编码器,各种文献中都直接称“MQ算术编码器”
C.J.Lian等人在文章“Analysis and Architecture Design of BlockCoding Engine for EBCOT in JPEG2000”IEEE Trans on Circuits andSystems for Video Technology,2003,pp.219-230,提出了一种流水线结构来实现算术编码,但归一化过程可能需要花费几个时钟周期,导致流水线的延时。杨海东等人在2006年华中科技大学硕士论文“MQ算术编码器的IP软核设计”一文中设计了一种流水线的MQ算术编码器,但归一化过程以及码流输出过程结构不够合理,造成关键路径太长,编码速度不高。
发明内容
本发明的目的在于克服上述背景技术中存在的缺陷和不足,提供一种高性能MQ算术编码器,通过合理的结构划分和流水线技术提高编码速度。
本发明的高性能MQ算术编码器,至少包括:
概率查找及更新模块,输入待编码的二进制数据、待编码数据上下文信息、输入数据有效标志信号以及寄存器更新模块反馈的编码状态区间寄存器的值,用于输出待编码数据的概率估计值、待编码数据与高概率符号相同标志、以及输出有效标志信号;
寄存器更新模块,与概率查找及更新模块相连接,接收概率查找及更新模块输出的待编码数据的概率估计值、待编码数据与高概率符号相同标志、以及有效标志信号和编码结束信号,对寄存器更新模块中的编码状态下限寄存器和编码状态区间寄存器进行更新,用于得到待编码数据的码流、码流长度以及有效标志信号,同时将编码状态区间寄存器的值反馈到概率查找及更新模块;
码流拼合与输出模块与寄存器更新模块相连接,接收寄存器更新模块输出的待编码数据的码流、码流长度以及有效标志信号,使用码流拼合与输出模块中的首字节进位缓冲寄存器对输入的码流进行拼合,用于输出码流及输出码流有效标志信号。
本发明用以解决现有二进制算术编码器编码速度不高和结构复杂的问题。寄存器更新模块使用首1探测的方式一次完成编码状态区间寄存器的归一化,同时输出码流以其长度;码流拼合与输出模块采用了一种“首字节进位缓冲寄存器”实现了码流的“位填充”。本发明结构划分清晰,资源使用少,编码速度快,可广泛应用于JPEG2000图像编码及其它实时编码场合。
本发明与现有技术相比,具有以下优点:
第一、本发明通过采用两级流水线操作,可以稳定实现一个时钟周期编码一个比特数据,编码得到的码流按单个字节输出。
第二、本发明概率查找及更新模块采用概率预测和查找表两种方式,得到输入待编码数据上下文数据的索引值和高概率符号信息,减少了环路路径长度,减少了等待时间,有效的提升了编码的速度。
第三、本发明采用了长度为16位的编码状态区间寄存器,长度为20位的编码状态下限寄存器,并且由首1探测器得到编码状态区间寄存器需要移位的位数,一次完成归一化过程,消除了流水线的等待。
第四、本发明采用首字节进位缓冲寄存器实现了码流的拼合,位填充和输出,最多涉及到25位的加法操作,使得码流输出模块变得既简单又易于硬件实现。
附图说明
图1是本发明的MQ算术编码器总的结构框图;
图2是本发明的概率查找及更新模块的结构框图;
图3是本发明的概率查找及更新模块的更新逻辑实现流程;
图4是本发明的寄存器更新模块的结构框图;
图5是本发明的寄存器更新模块中的首1探测器内部结构示意图;
图6是本发明的码流拼合与输出模块的结构框图;
图7是本发明码流拼合与输出模块中首字节进位缓冲寄存器示意图;
图8是本发明码流拼合与输出模块中的码流输出单元流程图。
具体实施方式
以下结合附图和具体实例对本发明的各个功能模块以其工作流程作详细介绍。请参阅图1,本发明的MQ算术编码器包括:概率查找及更新模块、寄存器更新模块和码流拼合与输出模块。时钟信号和复位信号作用于图1中的所有模块,且在图2、图4、图6中均未标记出来。
概率查找及更新模块,输入待编码的二进制数据D、待编码数据上下文信息CX、输入数据有效标志信号V_D以及寄存器更新模块反馈的编码状态区间寄存器的值A,输出待编码数据的概率估计值Qe、待编码数据与高概率符号相同标志smb、以及有效标志信号V_Q;
寄存器更新模块,与概率查找及更新模块相连接,接收概率查找及更新模块输出的待编码数据的概率估计值Qe、待编码数据与高概率符号相同标志smb、以及有效标志信号V_Q和编码结束信号Flush,对寄存器更新模块中的编码状态下限寄存器和编码状态区间寄存器进行更新,输出待编码数据的码流B_c、码流长度B_l以及有效标志信号V_B,同时将编码状态区间寄存器的值A反馈到概率查找及更新模块;
码流拼合与输出模块与寄存器更新模块相连接,接收寄存器更新模块输出的待编码数据的码流B_c、码流长度B_l以及有效标志信号V_B,使用码流拼合与输出模块中的首字节进位缓冲寄存器对输入的码流进行拼合,用于输出码流C及输出码流有效标志信号V_C;
本发明的MQ算术编码器还包括:在所述寄存器更新模块和码流拼合与输出模块之间插入寄存器组,形成两级流水线结构。
进一步地,概率查找及更新模块中含有的第一查找表单元的宽度至少为7位、深度19的寄存器组,第一查找表中的数值随着编码进行不断更新;
进一步地,概率查找及更新模块中含有的第二查找表单元的宽度至少为28位、深度47的只读存取器;
进一步地,概率查找及更新模块采用预测加查找表的方式得到待编码数据上下文信息的索引值和高概率符号,减少了环路路径长度,提高了编码速度。“高概率符号”是一个通用词组。
进一步地,寄存器更新模块中的编码状态区间寄存器长度为16位,编码状态下限寄存器长度为20位;
进一步地,使用首1探测器来求得编码状态区间寄存器需要左移的位数,一次移位完成编码状态区间寄存器的归一化和编码状态下限寄存器的更新;同时,使用模板生成单元产生一个模板,与编码状态下限寄存器的值相与,得到待编码数据的码流,同时输出码流长度;码流长度在数值上等于首1探测器得到移位数。
进一步地,码流拼合与输出模块中的首字节进位缓冲寄存器由32位的码流寄存器和一位进位寄存器组成;32位的码流寄存器由弹出区,拼合区和缓冲区组成;弹出区用来实现码流的“位填充”操作,拼合区用来完成当时输入的码流和已有码流的拼合,缓冲区用来缓冲当前输入的码流超过拼合区的部分;使用了一个宽度为20位、深度可设定的先入先出缓冲器,对输入的码流进行缓冲,保证MQ算术编码器每次只输出单字节的码流。
下面结合附图对本发明的各个模块进行详细阐述。
图2给出了本发明MQ算术编码的概率查找及更新模块的结构(输入数据有效标志信号V_D和输出数据有效标志信号V_Q未在图中标出),包括:预测更新逻辑单元、第一查找表单元、第二查找表单元、延时单元、第一同或单元、第二同或单元、第一选择器和第二选择器组成,其中:
延时单元,接收当前输入的待编码数据上下文CX,输出当前输入待编码数据的前一时钟的上下文CXq
第一同或单元与延时单元连接,接收当前输入的待编码数据上下文CX和延时单元输出的待编码数据的前一时钟数据上下文CXq,用于生成并输出控制信号kz;
第一查找表单元分别连接第一同或单元和预测更新逻辑单元,接收待编码数据上下文CX、控制信号kz、下一索引值N_I、下一高概率符号N_M。如果控制信号kz为高电平,用下一索引值N_I和下一高概率符号N_M更新第一查找表;如果控制信号kz为低电平,根据输入的待编码数据上下文CX,由查找表得到并输出索引值I和高概率符号M。由MQ算术编码的标准规定,输入待编码数据上下文共有19种,得到的索引值的范围为0到46,高概率符号为0或者1。由于第一查找表的内容需要随着编码的进行不断的更新,所以,第一查找表至少需要由宽度为7位,深度为19的寄存器组成。
第一选择器分别连接第一同或单元,第一查找表单元和预测更新逻辑单元,接收第一同或单元输出的控制信号kz,第一查找表输出的索引值I和预测更新单元输出的下一索引值N_I。如果控制信号kz为高电平,将预测更新单元输出的下一索引值N_I输出并作为索引值Index;如果控制信号kz为低电平,将第一查找表输出的索引值I输出并作为索引值Index。
第二选择器分别连接第一同或单元,第一查找表单元和预测更新逻辑单元,接收第一同或单元输出的控制信号kz,第一查找表输出的高概率符号M和预测更新单元输出的下一高概率符号N_M。如果控制信号kz为高电平,将预测更新单元输出的下一高概率符号N_M输出作为高概率符号MPS;如果控制信号kz为低电平,将第一查找表输出的高概率符号M输出作为高概率符号MPS。
第二同或单元与第二选择器连接,接收待编码数据D和第二选择器输出的高概率符号MPS,用于输出待编码数据与高概率符号相同标志smb。
第二查找表单元与第一选择器连接,接收第一选择器输出的索引值Index,得到相应的概率估计Qe、执行高概率符号归一化的下一个索引值NMPS、执行低概率符号归一化时的下一个索引值NLPS以及第一查找表单元的高概率符号信息是否需要更新的信息switch。第二查找表单元的内容由MQ算术编码的标准给出,在整个编码过程中是固定不变的。本发明使用宽度28位,深度为47的只读存取器来实现的。
预测更新逻辑单元分别连接第二查找表单元、第一选择器、第二选择器、第二同或单元,接收反馈信号A、高概率符号相同标志smb、第一选择器输出的索引值Index、第二选择器输出的高概率符号MPS、概率估计Qe、执行高概率符号归一化的下一个索引值NMPS、执行低概率符号归一化时的下一个索引值NLPS以及第一查找表的高概率符号信息是否需要更新的信息switch,用于生成并输出下一索引值N_I和下一高概率符号N_M,用来更新第一查找表单元。预测更新逻辑单元的实现过程见图3所示的流程图,如果高概率符号相同标志smb为1,将第二查找表单元输出的执行低概率符号归一化时的下一个索引值NLPS赋给下一索引值N_I;并判断第二查找表单元输出的高概率符号信息是否需要更新的信息switch是否为1,若为1,将第二选择器输出的高概率符号MPS取反。如果高概率符号相同标志smb为0,判断反馈信号A与概率估计Qe做差后的数值是否小于0x8000:若小于0x8000,将第二查找表输出的执行高概率符号归一化的下一个索引值NMPS作为预测更新逻辑单元输出的下一索引值N_I;若不小于0x8000,将第一选择器输出的索引值Index作为预测更新逻辑单元输出的下一索引值N_I。
图4给出了本发明MQ算术编码的寄存器更新模块的结构框图,包括第一移位单元、第一比较器、第一加法器、第二加法器、第三同或单元、第三选择器、第四选择器、第五选择器、第六选择器、编码状态下限寄存器、编码状态区间寄存器、归一化单元、首1探测器、模板生成单元以及与单元。
第一移位单元接收概率查找及更新模块输出的概率估计值Qe,将其左移1位,并得到的移位结果;
第一比较器,接收移位结果和归一化单元输出的归一化结果A,如果归一化结果A大于移位结果,第一比较器输出高电平,如果归一化结果A小于移位结果,则第一比较器输出低电平;
第三同或单元,接收输入的待编码数据与高概率符号相同标志smb和第一比较器的输出高电平或高电平并将两者进行同或,得到并输出控制信号;
第一加法器,接收归一化单元输出的归一化结果C和概率查找及更新模块输出的概率估计值Qe,并将两者相加后的结果;
第三选择器,接收相加后的结果、归一化结果C和控制信号,如果控制信号为高电平,则第三选择器输出归一化结果C;如果控制信号为低电平,则第三选择器输出相加后的结果;
第二加法器,接收归一化结果A和概率估计值Qe,并将两者相减后获得相减后的结果;
第四选择器,接收相减后的结果、归一化结果A和控制信号,如果控制信号为高电平,则第三选择器输出归一化结果A;如果控制信号为低电平,则第四选择器输出相减后的结果;
编码状态下限寄存器与第三选择器连接,用相加后的结果对编码状态下限寄存器进行更新,编码状态下限寄存器输出数值CI;
编码状态区间寄存器与第四选择器连接,用相减后的结果对编码状态区间寄存器进行更新,编码状态区间寄存器输出数值AI;编码状态区间寄存器位宽为16,其初始值为0x8000,如果编码状态区间寄存器的数值小于0x8000,就需要对编码状态区间寄存器进行归一化;编码状态下限寄存器位宽为20,初始值为0,表示没有码流生成。16位的编码状态下限寄存器和20位编码状态区间寄存器,保留了MQ算术编码标准中必要位数,减少了加法器的位数,提高了编码速度。
首1探测器与编码状态区间寄存器连接,接收编码状态区间寄存器的数值AI,检测得到数值AI中第一个‘1’,距离最高位的距离,输出需要将第一个‘1’左移到最高位所需要的位数。图5显示了首1探测器的内容核心结构,将数值AI的16位分成四部分:AI[15:12]、AI[11:8]、AI[7:4]和AI[3:0],同时输入到第一或单元、第二或单元、第三或单元和第四或单元中,用第一或单元、第二或单元、第三或单元和第四或单元得到的结果控制优先选择器,获得包含‘1’的最高的一组数据,然后由长度产生逻辑产生所需要移位的移位数。
归一化单元,接收接收编码状态区间寄存器的数值CI、编码状态区间寄存器的数值AI以及首1探测器得到的移位数,对编码状态区间寄存器中的数值AI和编码状态下限寄存器中的数值CI左移首1探测器输出的移位数,输出归一化的数值A和更新后的数值C,输入到第一加法器、第二加法器和第三选择器、第四选择器中,此外,归一化的结果A还反馈到概率查找及更新模块中。
模板生成单元,接收编码状态区间寄存器的数值AI,用于产生并输出一个20位的模板。这个模板与编码状态区间寄存器的数值CI进行与操作后,可以使得要移出的数据非零,其他比特位都为零。模板生成单元输出的模板与编码状态区间寄存器的数值CI进行与操作的结果和编码状态区间寄存器的数值CI同时输入到第六选择器中;首1探测器产生的移位数和常数8输入到第五选择器中。
编码结束信号Flush控制第五选择器和第六选择器,分别得到码流长度B_l和码流B_c。
图6给出了本发明的MQ算术编码器的码流拼合与输出模块的结构框图,包括一个先入先出缓存器、第一延时单元、第二延时单元、第三延时单元、或非单元、第三加法器、第四加法器、第五加法器、第二比较器、第三比较器、第七选择器、第八选择器、第九选择器、首字节进位缓冲寄存器、右移单元和码流输出单元。
码流拼合与输出模块将接收到16位的码流信号和4位的码流长度信号合并成一个20位的信息输入到先入先出缓冲器中,它们的有效信息V_B充当先入先出缓冲器的写有效信号。当先入先出缓冲器的读有效信号有效时,数据从先入先出缓冲器中读出,分解成16位的码流信号和4位的码流长度信号;其中4位的码流长度信号输入到第八选择器中,16位的码流信号输入到第七选择器中。
或非单元接收先入先出缓冲器的空标志信号和第二比较器输出第二比较结果,对先入先出缓冲器的空标志信号和第二比较器输出的第二比较结果进行或非操作后,作为先入先出缓冲器的读有效信号,同时读有效信号也输入到第三延时单元中,第三延时单元输出第三延时信号作为第七选择器和第八选择器输出的选择控制信号。第七选择器和第八选择器分别得到并输出16位的码流数据和4位的码流长度数据。
第三加法器,接收第八选择器输出的4位的码流长度数据和第四加法器的输出结果,并对第八选择器输出的4位的码流长度数据和第四加法器的输出结果进行加法操作。
第二比较器,接收第三加法器输出的第三加结果和常数24并对两者进行比较,如果第三加结果大于等于24,则第二比较器输出高电平;如果第三加结果小于24,则第二比较器输出低电平。
第三比较器,接收第二延时数据和常数16,如果第二延时数据大于等于16,则第三比较器输出高电平;如果第二延时数据小于16,则第三比较器输出低电平,并将得到并输出高电平或低电平的结果作为控制信号,控制码流输出单元和第九选择器。其中,第二延时单元接收第三加法器输出的第三加结果,并将其延时一个时钟后输出。
第九选择器根据第三比较器输出的控制信号,如果输入的控制信号为高电平,则第九选择器输出常数8;如果输入的控制信号为低电平,则第九选择器输出常数0。第九选择器的输出常数输入到第四加法器中,和第二延时单元输出的第二延时数据相减后,输入到第三加法器中。
右移单元接收第一延时单元输出的第一延时单元输出的码流长度数据rl和第七选择器的输出16位的码流数据,对接收到的第七选择器输出16位的码流数据右移第一延时单元输出的码流长度数据rl位,使得第七选择器输出16位的码流数据的第一位与首字节进位缓冲寄存器中已有码流的最后一位相重叠,移位后得到的数据输入到第五加法器中;
第五加法器接收右移单元输出的右移结果和码流输出单元输出的25位的数据cb12;第五加法器完成25位加法后,和首字节进位缓冲寄存器的弹出区b0拼合后,存放到首字节进位缓冲寄存器中。请参照图7,首字节进位缓冲寄存器分为32位的码流寄存器和一位进位寄存器,其中32位的码流寄存器由弹出区,拼合区和缓冲区组成,进位寄存器用c来表示;弹出区用来实现码流的“位填充”操作,拼合区用来完成当时输入的码流和已有码流的拼合,缓冲区用来缓冲当前输入的码流超过拼合区的部分。
码流输出单元接收首字节进位缓冲寄存器的数据以及第三比较器的输出信号c16,输出8位的码流数据C及其有效信号V_C,并且将首字节进位缓冲寄存器的进位寄存器、拼合区以及缓冲区的值拼合成一个25位的数据cb12输入到第五加法器中。码流输出时,需要对弹出区的数据与0xFF以及0xFE进行比较,完成了输出码流的“位填充”操作,具体实现过程详见图8所示是本发明码流拼合与输出模块中的码流输出单元的流程图,如果第三比较器的输出信号c16为高电平,则对首字节进位缓冲寄存器的b0区数据进行判断,如果b0区的数据数值为0xFF,则输出码流C为0xFF,输出有效信号V_C为高电平,同时32位首字节进位缓冲寄存器左移7位,并将32位首字节进位缓冲寄存器的最高位置为进位寄存器c的值,然后将进位寄存器c的值清0;若b0区的数据数值为0xFE且进位寄存器c的值为1,则将输出码流C为0xFF,输出有效信号V_C为高电平,同时将32位首字节进位缓冲寄存器左移7位,且最高位置为0,然后将进位寄存器c的值清0;若b0区的数据数值不能满足上述两个条件,则将b0区的数据与进位寄存器c的数值相加后,作为码流的输出C,输出有效信号V_C位高电平,同时将32位首字节进位缓冲寄存器左移8位,然后将进位寄存器c的值清0。如果第三比较器的输出信号c16为低电平,则不输出,输出有效标志V_C为低电平。
为了验证本发明的有效性,本发明的MQ算术编码器在型号为XC5VFX70T的现场可编程门阵列(FPGA)编程实现,综合得到的最高频率为215.692MHz,使用了247个寄存器单元(Slice Registers)、445个查找表单元(Slice LUTs)以及1个Block RAM/FIFO资源,所耗资源不足该型号FPGA总资源的1%。本发明采用二级流水线结构,利用了硬件的并行性来提升编码速度;并采用了预测单元、首1探测器、首字节进位缓冲寄存器,使得MQ算术编码器结构更加合理,编码速度得到了提升。所以,本发明可以广泛使用于JPEG2000压缩芯片中,满足各种基于JPEG2000的图像压缩场合;亦可以用于视频编码芯片中,满足高清视频实时编码的要求;同时也可以用于一些对数据进行无损压缩的场合。
以上所述仅为本发明的较佳实施实例而已,并不用与限制本发明。凡在本发明的精神和原则之内,所作的任何修改、等同替换、功能模块的合并或展开以及改进等,均应包含在本发明的包含范围之内。

Claims (9)

1.一种MQ算术编码器,其特征在于,至少包括: 
概率查找及更新模块,输入待编码的二进制数据、待编码数据上下文信息、输入数据有效标志信号以及寄存器更新模块反馈的编码状态区间寄存器的值,用于输出待编码数据的概率估计值、待编码数据与高概率符号相同标志、以及输出有效标志信号; 
寄存器更新模块,与概率查找及更新模块相连接,接收概率查找及更新模块输出的待编码数据的概率估计值、待编码数据与高概率符号相同标志、以及有效标志信号和编码结束信号,对寄存器更新模块中的编码状态下限寄存器和编码状态区间寄存器进行更新,用于输出待编码数据的码流、码流长度以及有效标志信号,同时将编码状态区间寄存器的数值反馈到概率查找及更新模块; 
码流拼合与输出模块与寄存器更新模块相连接,接收寄存器更新模块输出的待编码数据的码流、码流长度以及有效标志信号,使用码流拼合与输出模块中的首字节进位缓冲寄存器对输入的码流进行拼合,用于输出码流及输出码流有效标志信号。 
2.如权利要求1所述的MQ算术编码器,其特征在于,还包括:在所述寄存器更新模块和码流拼合与输出模块之间插入寄存器组,形成两级流水线结构。 
3.如权利要求1所述的MQ算术编码器,其特征在于,所述概率查找及更新模块中含有的第一查找表单元是宽度至少为7位、深度19的寄存器组,第一查找表中的数值随着编码进行不断更新。 
4.如权利要求1所述的MQ算术编码器,其特征在于,所述概率查找及更新模块中含有的第二查找表单元是宽度至少为28位、深度47的只读存取器。 
5.如权利要求1所述的MQ算术编码器,其特征在于,概率查找及更新模块采用预测加查找表的方式得到待编码数据上下文信息的索引值和高概率符号。 
6.如权利要求1所述的MQ算术编码器,其特征在于,寄存器更新模块中的编码状态区间寄存器长度为16位和编码状态下限寄存器长度为20位。 
7.如权利要求6所述的MQ算术编码器,其特征在于,还包括:使用首1探测器来求得编码状态区间寄存器需要左移的位数,一次移位完成编码状态区间寄存器的归一化和编码状态下限寄存器的更新;同时,使用模板生成单元产生一个模板,与编码状态下限寄存器的值相与,得到待编码数据的码流,同时输出码流长度;码流长度在数值上等于首1探测器得到移位数。 
8.如权利要求1所述的MQ算术编码器,其特征在于,码流拼合与输出模块中含有一首字节进位缓冲寄存器,首字节进位缓冲寄存器由32位的码流寄存器和一位进位寄存器组成;32位的码流寄存器由弹出区,拼合区和缓冲区组成;弹出区用来实现码流的“位填充”操作,拼合区用来完成当时输入的码流和已有码流的拼合,缓冲区用来缓冲当前输入的码流超过拼合区的部分。 
9.如权利要求1所述的MQ算术编码器,其特征在于,码流拼合与输出模块含有一先入先出缓冲器,使用了一个宽度为20位、深度能设定的先入先出缓冲器,对输入的码流进行缓冲,保证MQ算术编码器每次只输出单字节的码流。 
CN 201310179101 2013-05-15 2013-05-15 Mq算术编码器 Pending CN103248896A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201310179101 CN103248896A (zh) 2013-05-15 2013-05-15 Mq算术编码器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201310179101 CN103248896A (zh) 2013-05-15 2013-05-15 Mq算术编码器

Publications (1)

Publication Number Publication Date
CN103248896A true CN103248896A (zh) 2013-08-14

Family

ID=48928085

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201310179101 Pending CN103248896A (zh) 2013-05-15 2013-05-15 Mq算术编码器

Country Status (1)

Country Link
CN (1) CN103248896A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104683806A (zh) * 2015-02-28 2015-06-03 中国科学院长春光学精密机械与物理研究所 基于深度流水的mq算术编码器高速fpga实现方法
CN106603081A (zh) * 2016-11-02 2017-04-26 深圳市大语科技有限公司 一种通用算术编码方法及其解码方法
CN108092670A (zh) * 2017-11-03 2018-05-29 西安万像电子科技有限公司 编码方法和装置
CN109525249A (zh) * 2018-09-30 2019-03-26 湖南瑞利德信息科技有限公司 编码解码方法、系统、可读存储介质及计算机设备
CN109587483A (zh) * 2015-12-31 2019-04-05 杭州士兰微电子股份有限公司 码流提取模块

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104683806A (zh) * 2015-02-28 2015-06-03 中国科学院长春光学精密机械与物理研究所 基于深度流水的mq算术编码器高速fpga实现方法
CN104683806B (zh) * 2015-02-28 2017-12-26 中国科学院长春光学精密机械与物理研究所 基于深度流水的mq算术编码器高速fpga实现方法
CN109587483A (zh) * 2015-12-31 2019-04-05 杭州士兰微电子股份有限公司 码流提取模块
CN106603081A (zh) * 2016-11-02 2017-04-26 深圳市大语科技有限公司 一种通用算术编码方法及其解码方法
CN106603081B (zh) * 2016-11-02 2020-02-18 深圳市大语科技有限公司 一种通用算术编码方法及其解码方法
CN108092670A (zh) * 2017-11-03 2018-05-29 西安万像电子科技有限公司 编码方法和装置
CN109525249A (zh) * 2018-09-30 2019-03-26 湖南瑞利德信息科技有限公司 编码解码方法、系统、可读存储介质及计算机设备
CN109525249B (zh) * 2018-09-30 2023-10-27 湖南瑞利德信息科技有限公司 编码解码方法、系统、可读存储介质及计算机设备

Similar Documents

Publication Publication Date Title
CN103248896A (zh) Mq算术编码器
CN101951516B (zh) 基于h.264/avc中cabac的并行编码实现电路及编码方法
CN102176750B (zh) 高性能自适应二进制算术编码器
CN102186075B (zh) 一种熵编码器及其实现方法
CN101841707A (zh) 基于jpeg2000标准的高速实时处理算术熵编码方法
Tsai et al. A 6.4 Gbit/s embedded compression codec for memory-efficient applications on advanced-HD specification
US7714753B2 (en) Scalable context adaptive binary arithmetic coding
CN111787325B (zh) 一种熵编码器及其编码方法
WO2008067111A2 (en) Single cycle context weight update leveraging context address look ahead
CN103200407B (zh) 一种自适应熵编码器
Li et al. A three-level parallel high-speed low-power architecture for EBCOT of JPEG 2000
Sarawadekar et al. VLSI design of memory-efficient, high-speed baseline MQ coder for JPEG 2000
CN102523455B (zh) 基于jpeg2000标准的多线程算术编码电路和方法
CN102088607B (zh) 基于jpeg2000标准的mq编码方法和电路
Zheng et al. Efficient pipelined CABAC encoding architecture
Ramesh Kumar et al. Two-symbol FPGA architecture for fast arithmetic encoding in JPEG 2000
Kuo et al. Design of a low power architecture for CABAC encoder in H. 264
CN102469307B (zh) 解码器及码流解析装置
CN1207917C (zh) 适用于jpeg2000标准的高速低功耗mq编码器
CN1541356A (zh) 有软/硬件环压缩的先进先出写/后进先出读跟踪缓冲器
Dang Image lossless compression algorithm optimization and FPGA implementation
JP3407588B2 (ja) 符号化復号化装置
Dong et al. Implementation of A Real-Time Lossless JPEG-LS Compression Algorithm Based on FPGA
Lei et al. Low-power context-based adaptive binary arithmetic encoder using an embedded cache
Wang et al. High-throughput and hardware-efficient architecture of MQ arithmetic coder

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130814