CN101848311B - 基于Avalon总线JPEG2000的EBCOT编码器 - Google Patents
基于Avalon总线JPEG2000的EBCOT编码器 Download PDFInfo
- Publication number
- CN101848311B CN101848311B CN 201010110731 CN201010110731A CN101848311B CN 101848311 B CN101848311 B CN 101848311B CN 201010110731 CN201010110731 CN 201010110731 CN 201010110731 A CN201010110731 A CN 201010110731A CN 101848311 B CN101848311 B CN 101848311B
- Authority
- CN
- China
- Prior art keywords
- module
- bit
- encoding
- encoder
- data
- 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.)
- Expired - Fee Related
Links
- 238000001514 detection method Methods 0.000 claims abstract description 24
- 238000004140 cleaning Methods 0.000 claims description 15
- 238000010606 normalization Methods 0.000 claims description 8
- 238000013139 quantization Methods 0.000 claims description 6
- 229940075591 dalay Drugs 0.000 claims description 4
- 230000001934 delay Effects 0.000 claims description 2
- 230000001902 propagating effect Effects 0.000 claims description 2
- 230000001568 sexual effect Effects 0.000 claims 1
- 238000000034 method Methods 0.000 abstract description 27
- 238000012545 processing Methods 0.000 description 6
- 101000666379 Homo sapiens Transcription factor Dp family member 3 Proteins 0.000 description 5
- 102100038129 Transcription factor Dp family member 3 Human genes 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
基于Avalon总线JPEG2000的EBCOT编码器,涉及一种JPEG2000的EBCOT编码器,解决了现有技术的JPEG2000的EBCOT编码器存在速度慢、灵活性差、过程复杂的问题。它包括Avalon总线接口和EBCOT Tier-1编码器,所述Avalon总线接口的时钟信号、复位信号、开始信号、编码完成信号、编码块写信号、编码块数据信号、编码块地址信号、输出字节存储器地址信号和输出字节存储器数据信号输入端与编码控制模块相连,编码控制模块与msb个位平面编码器相连,位平面编码器与算术编码器相连,算术编码器与输出字节存储器RAM相连,msb为最高位平面检测模块检测编码控制模块的最高位平面的数值。本发明的编码器可以更好的应用于整个JPEG2000编码器中。
Description
技术领域
本发明涉及一种JPEG2000的EBCOT编码器。
背景技术
JPEG2000标准为了实现比JPEG标准更高的性能,其编解码的复杂度是JPEG的2~3倍,特别是在EBCOT Tier-1编码算法中。JPEG2000编码系统中的预处理,离散小波变换,量化和EBCOT Tier-2等都是以样本为基本运算单位,并且基本以数据为驱动的算法。而EBCOT Tier-1编码算法中的位平面编码和基于内容的自适应二进制算术编码两个主要算法,各自都包含了相当的比特级运算和复杂的控制,因而是整个JPEG2000编码系统中最主要的处理瓶颈。EBCOT Tier-1编码器通常要占去整个JPEG2000编码器中50%以上的运行时间。由此可见,高性能的EBCOT Tier-1编码器设计是JPEG2000编码器实现中的关键。同时由于EBCOT Tier-1编码算法包含有相当的比特级运算和复杂的控制,使其无法在通用RISC,DSP体系上完成高性能的实现。因此,高速、低功耗、面积合理的专用硬件实现EBCOT Tier-1编码器对JPEG2000标准的应用推广有重要的意义。
在JPEG2000众多实现方法中,通常要求其进行实时处理,而软件实现,如DSP(数字信号处理器),因为其的串行执行导致编码速度受到了制约;而ASIC设计方法,如AD公司的ADV2x2系列芯片,每秒可处理25幅720×576的彩色图片,即可以实时压缩PAL制视频,但是此类芯片通常需要较多外设,并且灵活性较差,能够实现的压缩模式比较有限,不利于进行二次开发。
EBCOT Tier-1编码器包括位平面编码和算术编码两部分。常规的位平面编码器,需要对来自原始图像经小波变化并量化后得到的系数编码块进行编码,将编码块系数按位平面展开后,按从高到低的顺序对每一层位平面进行扫描编码,这样的串行扫描编码制约了整个编码器的编码速度。对于算术编码器,JPEG2000标准中的算术编码算法需要上下文信息输入、概率估计、区间归一化及交换和码字输出这一系列过程,并涉及复杂的判断操作,硬件实现时组合逻辑的延时比较大,致使编码器工作的时钟频率较低。
发明内容
本发明为了解决现有技术的JPEG2000的EBCOT编码器存在速度慢、灵活性差、过程复杂的问题,提出一种基于Avalon总线JPEG2000的EBCOT编码器。
基于Avalon总线JPEG2000的EBCOT编码器,它包括NIOSH CPU处理器、Avalon总线接口和EBCOT Tier-1编码器,所述EBCOT Tier-1编码器内部固化有最高位平面检测模块、编码控制模块、多个位平面编码器、多个算术编码器、多个输出字节存储器RAM,所述NIOSII CPU处理器通过Avalon总线接口与EBCOT Tier-1编码器连接,
NIOSII CPU处理器通过Avalon总线接口发送开始信号start至编码控制模块,编码控制模块接收开始信号start后开始编码,NIOSII CPU处理器通过编码块写信号blkram_wr、编码块数据信号blkram_data和编码块地址信号blkram_address向EBCOT Tier-1编码器中写系数数据,最高位平面检测模块检测编码控制模块的最高位平面,所述最高平面以下有msb个平面,编码控制模块调用msb个位平面编码器进行并行编码,每一个编码控制模块将其图像信息经小波变换和量化后的数据发送至一个位平面编码器,所述位平面编码器根据所述编码信息生成编码信息的上下文矢量CX和判决信息D,并将编码信息的上下文矢量CX和判决信息D发送至一个算术编码器,所述算术编码器对上下文矢量CX和判决信息D进行编码,并将经过编码的字节数据存储在一个输出字节存储器RAM中,NIOSII CPU处理器通过Avalon总线接口从msb个输出字节存储器RAM中读取地址信号Bram_address和数据信号Bram_data,编码控制模块通过Avalon总线接口将编码完成信号ebcot_done发送至NIOSII CPU处理器;
位平面编码器包括RAM地址生成模块、小波系数随机存储器RAM、状态位随机存储器RAM、状态位预测模块、三寄存器生成模块、位平面编码控制模块、三扫描编码模块,所述小波系数随机存储器RAM由符号位存储器和幅值位存储器组成,所述状态位随机存储器RAM由有效性位存储器、量级细化位存储器和访问位存储器组成,所述三扫描编码模块由有效性传播扫描模块、量级细化扫描模块和清理扫描模块组成,
编码控制模块输出的图像信息经小波变换和量化后的数据通过RAM地址生成模块将符号位χ写入符号位存储器,编码控制模块输出的系数数据通过RAM地址生成模块将幅值位v写入幅值位存储器,状态位预测模块对有效性位σ、量级细化位δ和访问位η预测,状态位预测模块将有效性位σ的预测结果存入有效性位存储器,状态位预测模块将量级细化位δ的预测结果存入量级细化位存储器,状态位预测模块将访问位η的预测结果存入访问位存储器,位平面编码控制模块分别输出控制信息给三寄存器生成模块和三扫描编码模块,位平面编码控制模块控制三寄存器生成模块接收符号位χ、幅值位v、有效性位σ、量级细化位δ和访问位η,三寄存器生成模块生成三寄存器数据,并将三寄存器数据发送至有效性传播扫描模块,有效性传播扫描模块以三寄存器为单位对系数数据按从上到下顺序进行编码,并将编码结果发送至量级细化扫描模块,量级细化扫描模块对接受的系数数据进行编码,并将编码结果发送至清理扫描模块,有效性传播扫描模块、量级细化扫描模块和清理扫描模块将当前编码信息的上下文矢量CX和判决信息D发送至算术编码器;
算术编码器包括四级流水线模块:第一级流水线模块、第二级流水线模块、第三级流水线模块和第四级流水线模块,
第一级流水线模块包括延时模块、第一比较模块、索引Index模块、第一选择模块、高概率符号MPS模块和概率估计Qe表,所述延时模块、第一比较模块、索引Index模块和高概率符号MPS模块同时接收位平面编码器发出的编码信息的上下文矢量CX和判决信息D,延时模块将接收到的编码信息的上下文矢量CX和判决信息D进行延时获得CX_delay数据和D_delay数据,并发送至第一比较模块,第一比较模块将CX_delay数据与编码信息的上下文矢量CX比较,并将比较的结果发送至第一选择模块,第一选择模块根据所述比较的结果选择地址,根据所述地址从概率估计Qe表中查找到对应的大概率编码CodeMPS中下一索引NMPS、小概率编码CodeLPS中下一索引NLPS以及概率估计Qe,并将查找到的大概率编码CodeMPS中下一索引NMPS、小概率编码CodeLPS中下一索引NLPS以及概率估计Qe发送给第二级流水线模块,高概率符号MPS模块根据输入的编码信息的上下文矢量CX和判决信息D输出高概率符号MPS;
第二级流水线模块包括概率区间寄存器A、第二比较模块、前导零检测模块、第三比较模块和第二选择模块,第三比较模块将输入的判决延时信息D_dalay与高概率符号MPS进行比较,将比较结果发送第二选择模块,第二选择模块根据所述比较结果和获得的大概率编码CodeMPS中下一索引NMPS、小概率编码CodeLPS中下一索引NLPS发送更新信息给索引Index模块,第二比较模块将接收到的概率估计Qe和概率区间寄存器A中存储的概率值进行比较,并将比较结果发送至前导零检测模块,第二比较模块将归一化信号renor_valid输出给第三级流水线模块,前导零检测模块检测概率区间寄存器A前导零的数目prezeros_cnt,并更新概率区间寄存器A,所述前导零的数目prezeros_cnt输出给第三级流水线模块,所述前导零的数目prezeros_cnt为概率区间寄存器A以二进制表示时高位0的个数;
第三级流水线模块包括移位计数器CT、第四比较模块、生成码字寄存器C和移位模块,第四比较模块将移位计数器CT输出的计数值与接收到的前导零检测值prezeros_cnt进行比较,并将比较结果C发送至移位模块,所述移位模块所述比较结果C进行移位,当移位计数器CT减为0时输出信号给移位模块,移位模块在接收到所述信号时根据比较结果C移位响应个数输出字节数据至生成码字寄存器C,生成码字寄存器C根据输入的字节数据生成字数据至移位模块,所述移位模块对输入的字数据进行移位后更新输出字节B1和B2;
第四级流水线模块包括Flush模块和移位寄存器,Flush模块在一次算术编码结束时输出flush信号给移位寄存器,移位寄存器接收第三级流水线模块中移位模块发送的更新输出字节B1和B2,并在接收到flush信号时将编码结果发送至输出字节存储器RAM。
本发明的位平面编码器采用了系数读取与扫描编码并行执行处理,并且通过消除位平面状态位之间的相关性使各位平面编码并行执行,整个编码器通过“双并行”优化相比于常规的位平面编码器,编码速度得到了很大的提高,并且在编码之前查找幅值不为0的最高位平面MSB,使编码只在最高位平面及以下几个位平面进行,节省了编码器资源耗用。本发明的算术编码器采用四级流水线模块结构,将整个算法分割成四段,并且在各流水线模块级中采用寄存器、ROM存储信息、索引Index更新问题处理、前导零预测等一系列优化处理,使编码器的编码能在时钟频率110Mhz下达到1bit/cycle。本发明为了使EBCOT Tier-1编码器应用于整个JPEG2000编码系统,采用了Avalon总线接口,其中定义了两个功能寄存器:编码开始寄存器和编码结束寄存器,两个数据存储器:编码块系数存储器和输出字节存储器,有利于编码器的控制和数据通信,使编码器更好的应用于整个JPEG2000编码器中。
附图说明
图1为基于Avalon总线JPEG2000的EBCOT编码器结构示意图。图2为位平面编码器的结构示意图。图3算术编码器结构示意图。图4为平面编码器扫描方式示意图。
具体实施方式
具体实施方式一、结合图1说明本实施方式,基于Avalon总线JPEG2000的EBCOT编码器,它包括NIOSII CPU处理器0、Avalon总线接口1和EBCOT Tier-1编码器2,所述EBCOT Tier-1编码器2内部固化有最高位平面检测模块40、编码控制模块3、多个位平面编码器4、多个算术编码器5、多个输出字节存储器RAM6,所述NIOSII CPU处理器0通过Avalon总线接口1与EBCOT Tier-1编码器2连接,
NIOSII CPU处理器0通过Avalon总线接口1发送开始信号start至编码控制模块3,编码控制模块3接收开始信号start后开始编码,NIOSII CPU处理器0通过编码块写信号blkram_wr、编码块数据信号blkram_data和编码块地址信号blkram_address向EBCOT Tier-1编码器2中写系数数据,最高位平面检测模块40检测编码控制模块3的最高位平面,所述最高平面以下有msb个平面,编码控制模块3调用msb个位平面编码器4进行并行编码,每一个编码控制模块3将其图像信息经小波变换和量化后的数据发送至一个位平面编码器4,所述位平面编码器4根据所述编码信息生成编码信息的上下文矢量CX和判决信息D,并将编码信息的上下文矢量CX和判决信息D发送至一个算术编码器5,所述算术编码器5对上下文矢量CX和判决信息D进行编码,并将经过编码的字节数据存储在一个输出字节存储器RAM6中,NIOSII CPU处理器0通过Avalon总线接口1从msb个输出字节存储器RAM6中读取地址信号Bram_address和数据信号Bram_data,编码控制模块3通过Avalon总线接口1将编码完成信号ebcot_done发送至NIOSII CPU处理器0。
为了使EBCOT Tier-1编码器2应用于整个JPEG2000编码系统,必须使EBCOT Tier-1编码器2与整个JPEG2000编码系统的小波变换、量化等部分进行数据通信。本发明采用了Avalon总线接口1,有利于EBCOT Tier-1编码器2的控制和数据通信,使EBCOT Tier-1编码器2更好的应用于整个JPEG2000编码器中。
在Avalon总线接口1主要用于连接EBCOT Tier-1编码器2和NIOSII CPU,实现与JPEG2000编码器其它编码部分数据通信。Avalon总线接口1与NIOSII CPU相连的接口有时钟信号clk、复位信号rst_n、读信号read、写信号write、片选信号cs、地址信号address、读数据信号readdata和写数据信号writedata;Avalon总线接口1与EBCOT Tier-1编码器2相连的接口有时钟信号clk、复位信号rst_n、开始信号start、编码完成信号ebcot_done、编码块写信号blkram_wr、编码块数据信号blkram_data、编码块地址信号blkram_address、输出字节存储器地址信号Bram_address和输出字节存储器数据信号Bram_data。
在EBCOT Tier-1编码器2中由编码控制模块3控制整个编码流程,首先编码控制模块3接收开始信号start开始编码,由编码块写信号blkram_wr、编码块数据信号blkram_data和编码块地址信号blkram_address往EBCOT Tier-1编码器2中写系数数据,在写系数数据过程中最高位平面检测模块40检测编码控制模块3的最高位平面msb,找到最高的平面msb,这个平面以上的都无需编码,以下的需要编码,即总共需要对msb个位平面进行编码,通过编码控制模块3调用位平面编码器4进行位平面编码,总共调用msb个位平面编码器4实现并行编码。在位平面编码过程中,会输出编码信息的上下文矢量CX和判决信息D,算术编码器5以1bit/cycle的编码速度处理这些数据,算术编码器5编码完生成输出字节数据存储在输出字节存储器RAM6中,通过编码控制模块3地址信号Bram_address、编码控制模块3数据信号Bram_data从输出字节存储器RAM6中读取输出字节数据。整个EBCOT Tier-1编码器2编码完成后,通过编码完成信号ebcot_done发送编码完成标志。
具体实施方式二、结合图2说明本实施方式,本实施方式是对具体实施方式一中的位平面编码器4的进一步说明,位平面编码器4包括RAM地址生成模块7、小波系数随机存储器RAM41、状态位随机存储器RAM42、状态位预测模块13、三寄存器生成模块14、位平面编码控制模块15、三扫描编码模块43,所述小波系数随机存储器RAM41由符号位存储器8和幅值位存储器9组成,所述状态位随机存储器RAM42由有效性位存储器10、量级细化位存储器11和访问位存储器12组成,所述三扫描编码模块43由有效性传播扫描模块16、量级细化扫描模块17和清理扫描模块18组成,
编码控制模块3输出的图像信息经小波变换和量化后的数据通过RAM地址生成模块7将符号位χ写入符号位存储器8,编码控制模块3输出的系数数据通过RAM地址生成模块7将幅值位v写入幅值位存储器9,状态位预测模块13对有效性位σ、量级细化位δ和访问位η预测,状态位预测模块13将有效性位σ的预测结果存入有效性位存储器10,状态位预测模块13将量级细化位δ的预测结果存入量级细化位存储器11,状态位预测模块13将访问位η的预测结果存入访问位存储器12,
位平面编码控制模块15分别输出控制信息给三寄存器生成模块14和三扫描编码模块43,位平面编码控制模块15控制三寄存器生成模块14接收符号位χ、幅值位v、有效性位σ、量级细化位δ和访问位η,三寄存器生成模块14生成三寄存器数据,并将三寄存器数据发送至有效性传播扫描模块16,有效性传播扫描模块16以三寄存器为单位对系数数据按从上到下顺序进行编码,并将编码结果发送至量级细化扫描模块17,量级细化扫描模块17对接受的系数数据进行编码,并将编码结果发送至清理扫描模块18,有效性传播扫描模块16、量级细化扫描模块17和清理扫描模块18将当前编码信息的上下文矢量CX和判决信息D发送至算术编码器5。
本发明的位平面编码器4采用了系数读取与扫描编码并行执行处理,并且通过消除位平面状态位之间的相关性使各位平面编码并行执行,整个编码器通过“双并行”优化相比于常规的位平面编码器,编码速度得到了很大的提高,并且在编码之前查找幅值不为0的最高位平面MSB,使编码只在最高位平面及以下几个位平面进行,节省了编码器资源耗用。
位平面编码主要负责生成当前编码信息的上下文矢量CX和判决信息D,并与比特流一起送到算术编码器进行熵编码。由小波变换经量化得到的系数,可以将其分割成固定大小的代码块,大小一般可取32×32或64×64。各代码块可按每个系数样本比特位做位平面展开,最高层是符号位平面,下几层是幅值位平面。编码以位平面方式进行,从最高幅值位平面(MSB)开始,自上而下到最低幅值位平面(LSB)结束。在每个位平面上,除了最高幅值位平面只进行清理扫描(CUP),其它位平面按顺序进行有效性传播扫描过程(SPP)、量级细化扫描过程(MRP)和清理扫描过程(CUP),扫描方式如图4所示,以每4行组成一个条带,每个条带内按列从左到右,列内从上到下进行扫描。连续扫描第一列的第一组4个系数后,然后转向扫描第二列的第一组4个系数,如此一直扫描到最后一列的第一组4个系数,然后转向扫描第一列的第二组4个系数,一直到最后一列的第二组4个系数;按照这样的顺序一次扫描整个位平面。在对一组4个数据进行扫描编码时,还需要使用4个系数的领域14个系数,与4个编码系数共同组成三寄存器结构。而对单独一个系数编码时,需要四周8个领域系数。
位平面编码器4结构如图2所示,图1编码控制模块3输出的系数数据写入符号位存储器8和幅值位存储器9后,的编码控制模块3控制位平面编码器4开始编码,由于位平面编码器4采用位平面并行的编码方式,首先要对各状态位通过状态位预测模块13预测,对于有效性位σ,在符号编码原语中,只要幅值位为1,就执行符号编码原语,置有效性位为1,所以有效性位σ可用公式预测,其中σp表示当前位平面的系数有效性位,vi表示第i层系数幅值位,即当前位平面的系数有效性位值是上几层系数幅值位值模2加和,将预测值写入有效性位存储器10中;对于量级细化位δ只有在量级细化扫描编码中会更新,可以由公式δp=σp+1预测,其中δp第p平面的系数量级细化位,σp+1表示p+1层位平面的系数有效性位,即当前位平面的系数量级细化位值是上一层位平面的系数有效性位值,将量级细化位δ预测值写入量级细化存储器11中;对于访问位η,因为位平面编码算法中,在每个位平面编码开始时就重设所有系数的访问位为0,所以在此处就不需要提前预测更新了,初始值都是0,所以访问位存储器12初值全为0。
由于状态位随机存储器RAM42在三扫描编码时还需要更新,对于状态位随机存储器RAM42既要从中读取数据又要写入,所以有效性位存储器10、量级细化位存储器11和访问位存储器12采用双口RAM;而符号位和幅值位只需要读取,所以符号位存储器8和幅值位存储器9采用单口RAM。系数和状态位存储完后,通过三寄存器生成模块14生成三寄存器数据,由于三扫描编码按照列的扫描顺序进行编码,共有三列数据需要生成,左边一列数据可以从前一个三寄存器数据的中间一列读取,中间一列数据可以从前一个三寄存器数据的右边一列读取,而右边一列需要从存储器中读取,通过RAM地址生成模块7生成一列数据的地址,然后读取系数数据。在生成三寄存器结构数据时会遇到边界问题:当扫描数据处于编码块上边界时,三寄存器结构顶端三个数据值取0;当扫描数据处于编码块左边界时,三寄存器结构左边一列数据值取0;当扫描数据处于编码块右边界时,三寄存器结构右边一列数据值取0;当扫描数据处于编码块下边界时,三寄存器结构底端三个数据值取0。生成三寄存器数据后,位平面编码按照有效性传播扫描编码、量级细化扫描编码、清理扫描编码的顺序进行三扫描编码。
在有效性传播扫描模块16中,以三寄存器为单位,对中间4个系数按从上到下顺序进行编码。当前系数在位平面上的位置表示为[m,n],m表示行数,n表示列数。首先判断在当前系数有效性位σ[m,n]=0且当前系数领域系数是有效时,则进行零编码原语(ZC),并设置访问位η[m,n]=1;反之,如果不满足有效性传播扫描过程(SPP)的条件,则直接跳转到下一个系数进行编码。然后判断当前系数幅值位ν[m,n]=1时,则进行符号编码原语(SC),并设置有效性位σ[m,n]=1,跳转到下一系数进行编码。对三寄存器结构中间一列四个系数编码完后转入下一三寄存器结构进行编码;在量级细化扫描模块17中,首先判断当前系数满足有效性位σ[m,n]=1且访问位η[m,n]=0,则进行量级细化编码原语(MRC),并且设置量级细化位δ[m,n]=1,然后跳转到下一系数;如果不满足MRP条件,则直接跳转到下一个系数进行编码;在清理扫描模块18中,在最高位平面只进行清理扫面过程(CUP),其它位平面上CUP是最后执行的扫描过程。执行CUP时,首先应该满足有效性位σ[m,n]=0且访问位η[m,n]=0,然后再检测是否满足执行游程长度编码(RLC)和零编码原语(ZC)的条件。
执行游程长度编码原语(RLC)必须满足以下三个条件:
1当前系数在位平面上位置为[m,n],m是4的倍数,或者m=0;
2当前系数所在的一列条带四个连续系数的σ都等于0;
3当前系数所在条带领域的σ都等于0。
其中条件2和3两条可归纳为σ[i,j]=0,i=m-1,m,m+1,m+2,m+3,m+4;j=n-1,n,n+1。如果不满足以上条件则执行零编码原语。游程长度编码原语(RLC)或零编码原语(ZC)执行完后,判断当前系数如果ν[m,n]=1,则执行符号编码。以上规程结束后,跳转到下个系数进行编码,直到位平面所有系数都编码完,因为CUP是一层位平面编码最后的一个扫描过程,结束时首先重设所有系数的访问位η=0。在扫描编码过程中,通过编码控制模块15,使读取系数和状态位并生成三寄存器结构这一过程能与扫描编码过程并行执行。
具体实施方式三、结合图3说明本实施方式,本实施方式是对具体实施方式一中的算术编码器5的进一步说明,算术编码器5包括四级流水线模块:第一级流水线模块5-1、第二级流水线模块5-2、第三级流水线模块5-3和第四级流水线模块5-4,
第一级流水线模块5-1包括延时模块19、第一比较模块20、索引Inder模块21、第一选择模块22、高概率符号MPS模块23和概率估计Qe表24,所述延时模块19、第一比较模块20、索引Inder模块21和高概率符号MPS模块23同时接收位平面编码器4发出的编码信息的上下文矢量CX和判决信息D,延时模块19将接收到的编码信息的上下文矢量CX和判决信息D进行延时获得CX_delay数据和D_delay数据,并发送至第一比较模块20,第一比较模块20将CX_delay数据与编码信息的上下文矢量CX比较,并将比较的结果发送至第一选择模块22,第一选择模块22根据所述比较的结果选择地址,根据所述地址从概率估计Qe表24中查找到对应的大概率编码CodeMPS中下一索引NMPS、小概率编码CodeLPS中下一索引NLPS以及概率估计Qe,并将查找到的大概率编码CodeMPS中下一索引NMPS、小概率编码CodeLPS中下一索引NLPS以及概率估计Qe发送给第二级流水线模块5-2,高概率符号MPS模块23根据输入的编码信息的上下文矢量CX和判决信息D输出高概率符号MPS;
第二级流水线模块5-2包括概率区间寄存器A25、第二比较模块26、前导零检测模块27、第三比较模块28和第二选择模块29,第三比较模块28将输入的判决延时信息D_dalay与高概率符号MPS进行比较,将比较结果发送第二选择模块29,第二选择模块29根据所述比较结果和获得的大概率编码CodeMPS中下一索引NMPS、小概率编码CodeLPS中下一索引NLPS发送更新信息给索引Index模块21,第二比较模块26将接收到的概率估计Qe和概率区间寄存器A25中存储的概率值进行比较,并将比较结果发送至前导零检测模块27,第二比较模块26将归一化信号renor_valid输出给第三级流水线模块5-3,前导零检测模块27检测概率区间寄存器A25前导零的数目prezeros_cnt,并更新概率区间寄存器A25,所述前导零的数目prezeros_cnt输出给第三级流水线模块5-3,所述前导零的数目prezeros_cnt为概率区间寄存器A25以二进制表示时高位0的个数;
第三级流水线模块5-3包括移位计数器CT30、第四比较模块31、生成码字寄存器C32和移位模块33,第四比较模块31将移位计数器CT30输出的计数值与接收到的前导零检测值prezeros_cnt进行比较,并将比较结果C发送至移位模块33,所述移位模块33将所述比较结果C进行移位,当移位计数器CT30减为0时输出信号给移位模块33,移位模块33在接收到所述信号时根据比较结果C移位响应个数输出字节数据至生成码字寄存器C32,生成码字寄存器C32根据输入的字节数据生成字数据至移位模块33,所述移位模块33对输入的字数据进行移位后更新输出字节B1和B2;
第四级流水线模块5-4包括Flush模块35和移位寄存器34,flush模块35在一次算术编码结束时输出flush信号给移位寄存器34,移位寄存器34接收第三级流水线模块5-3中移位模块33发送的更新输出字节B1和B2,并在接收到flush信号时将编码结果发送至输出字节存储器RAM6。
由于JPEG2000标准中算术编码算法需要上下文信息输入、概率估计、区间归一化及交换和码字输出这一系列过程,并涉及复杂的判断,不利于硬件逻辑的设计,使组合逻辑的延时比较大,本发明的算术编码器5采用四级流水线模块结构,将整个算法分割成四段,并且在各流水线模块级中采用寄存器、ROM存储信息、索引Index更新问题处理、前导零预测等一系列优化处理,使编码器的编码能在时钟频率110Mhz下达到1bit/cycle。
算术编码器5结构如图3所示,第一级流水线模块5-1实现上下文判决信息CX/D输入和概率估计Qe表各信息的读取。首先处理上下文判决信息CX/D输入,然后以上下文信息CX为地址查找索引Index模块21和高概率符号MPS模块23。根据第一比较模块20判断当前上下文信息CX与前一个上下文信息CX_delay是否相同,前一个上下文信息CX_delay由延时模块19生成,第一比较模块20的结果作为数据第一选择模块22的选择信号选择查找概率估计Qe表24的地址,若CX=CX_delay,地址选择NLPS或者NMPS;反之,地址选择索引Index。根据选择得到的地址从概率估计Qe表24中查找到对应的大概率编码CodeMPS中下一索引NMPS、小概率编码CodeLPS中下一索引NLPS。
第二级流水线模块5-2实现概率区间寄存器A25的更新和区间归一化判断。首先根据判决延时信息D_dalay与高概率符号MPS输入第三比较模块28进行比较,判决是进行大概率编码CodeMPS还是小概率编码CodeLPS,并更新索引Index模块21。根据概率估计Qe第一次更新概率区间寄存器A25,通过第二比较模块26概率区间寄存器A25的值和概率估计Qe,判断是否需要进行区间归一化,将归一化信号renor_valid输出给第三级流水线模块5-3。如果需要执行区间归一化,通过前导零检测模块27检测概率区间寄存器A25前导零的数目,第二次更新概率区间寄存器A25对其移位相应数目个位,并且将前导零检测值prezeros_cnt输出给第三级流水线模块5-3。
第三级流水线模块5-3实现生成码字寄存器C32的更新及输出字节的计算。当需要区间归一化时,根据第二级流水线模块5-2计算得到的前导零检测值prezeros_cnt于移位计数器CT30通过第四比较模块31比较,根据比较值C移位相应的个数,而当移位计数器CT30减为0时就要进行一次字节输出,输出字节由生成码字寄存器C32通过移位模块33得到,而生成码字寄存器C32移位后更新。
第四级流水线模块5-4实现输出字节的输出及编码清理flush操作。当需要输出两个字节时,通过移位寄存器34缓存输出字节数据,两个字节数据按顺序输出,每个时钟周期输出一个字节数据。当判断算术编码结束时,进行flush模块35操作,其中也需要输出字节,将这些输出字节也输入移位寄存器34缓存输出。
Claims (1)
1.基于Avalon总线JPEG2000的EBCOT编码器,它包括NIOSII CPU处理器(0)、Avalon总线接口(1)和EBCOT Tier-1编码器(2),所述EBCOT Tier-1编码器(2)内部固化有最高位平面检测模块(40)、编码控制模块(3)、多个位平面编码器(4)、多个算术编码器(5)、多个输出字节存储器RAM(6),所述NIOSII CPU处理器(0)通过Avalon总线接口(1)与EBCOT Tier-1编码器(2)连接,
NIOSII CPU处理器(0)通过Avalon总线接口(1)发送开始信号start至编码控制模块(3),编码控制模块(3)接收开始信号start后开始编码,NIOSII CPU处理器(0)通过编码块写信号blkram_wr、编码块数据信号blkram_data和编码块地址信号blkram_address向EBCOT Tier-1编码器(2)中写系数数据,最高位平面检测模块(40)检测编码控制模块(3)的最高位平面,最高平面以下有msb个平面,编码控制模块(3)调用msb个位平面编码器(4)进行并行编码,编码控制模块(3)将输出的图像信息经小波变换和量化后的数据发送至一个位平面编码器(4),所述位平面编码器(4)根据编码信息生成编码信息的上下文矢量CX和判决信息D,并将编码信息的上下文矢量CX和判决信息D发送至一个算术编码器(5),所述算术编码器(5)对上下文矢量CX和判决信息D进行编码,并将经过编码的字节数据存储在一个输出字节存储器RAM(6)中,NIOSII CPU处理器(0)通过Avalon总线接口(1)从msb个输出字节存储器RAM(6)中读取地址信号Bram_address和数据信号Bram_data,编码控制模块(3)通过Avalon总线接口(1)将编码完成信号ebcot_done发送至NIOSII CPU处理器(0);
位平面编码器(4)包括RAM地址生成模块(7)、小波系数随机存储器RAM(41)、状态位随机存储器RAM(42)、状态位预测模块(13)、三寄存器生成模块(14)、位平面编码控制模块(15)、三扫描编码模块(43),所述小波系数随机存储器RAM(41)由符号位存储器(8)和幅值位存储器(9)组成,所述状态位随机存储器RAM(42)由有效性位存储器(10)、量级细化位存储器(11)和访问位存储器(12)组成,所述三扫描编码模块(43)由有效性传播扫描模块(16)、量级细化扫描模块(17)和清理扫描模块(18)组成,
编码控制模块(3)输出的图像信息经小波变换和量化后的数据通过RAM地址生成模块(7)将符号位χ写入符号位存储器(8),编码控制模块(3)输出的系数数据通过RAM地址生成模块(7)将幅值位v写入幅值位存储器(9),状态位预测模块(13)对有效性位σ、量级细化位δ和访问位η预测,状态位预测模块(13)将有效性位σ的预测结果存入有效性位存储器(10),状态位预测模块(13)将量级细化位δ的预测结果存入量级细化位存储器(11),状态位预测模块(13)将访问位η的预测结果存入访问位存储器(12),
位平面编码控制模块(15)分别输出控制信息给三寄存器生成模块(14)和三扫描编码模块(43),位平面编码控制模块(15)控制三寄存器生成模块(14)接收符号位χ、幅值位v、有效性位σ、量级细化位δ和访问位η,三寄存器生成模块(14)生成三寄存器数据,并将三寄存器数据发送至有效性传播扫描模块(16),有效性传播扫描模块(16)以三寄存器为单位对系数数据按从上到下顺序进行编码,并将编码结果发送至量级细化扫描模块(17),量级细化扫描模块(17)对接受的系数数据进行编码,并将编码结果发送至清理扫描模块(18),有效性传播扫描模块(16)、量级细化扫描模块(17)和清理扫描模块(18)将当前编码信息的上下文矢量CX和判决信息D发送至算术编码器(5);
其特征是:算术编码器(5)包括四级流水线模块:第一级流水线模块(5-1)、第二级流水线模块(5-2)、第三级流水线模块(5-3)和第四级流水线模块(5-4),
第一级流水线模块(5-1)包括延时模块(19)、第一比较模块(20)、索引Index模块(21)、第一选择模块(22)、高概率符号MPS模块(23)和概率估计Qe表(24),所述延时模块(19)、第一比较模块(20)、索引Index模块(21)和高概率符号MPS模块(23)同时接收位平面编码器(4)发出的编码信息的上下文矢量CX和判决信息D,延时模块(19)将接收到的编码信息的上下文矢量CX和判决信息D进行延时获得CX_delay数据和D_delay数据,并发送至第一比较模块(20),第一比较模块(20)将CX_delay数据与编码信息的上下文矢量CX比较,并将比较的结果发送至第一选择模块(22),第一选择模块(22)根据所述比较的结果选择地址,根据所述地址从概率估计Qe表(24)中查找到对应的大概率编码CodeMPS中下一索引NMPS、小概率编码CodeLPS中下一索引NLPS以及概率估计Qe,并将查找到的大概率编码CodeMPS中下一索引NMPS、小概率编码CodeLPS中下一索引NLPS以及概率估计Qe发送给第二级流水线模块(5-2),高概率符号MPS模块(23)根据输入的编码信息的上下文矢量CX和判决信息D输出高概率符号MPS;
第二级流水线模块(5-2)包括概率区间寄存器A(25)、第二比较模块(26)、前导零检测模块(27)、第三比较模块(28)和第二选择模块(29),第三比较模块(28)将输入的判决延时信息D_dalay与高概率符号MPS进行比较,将比较结果发送第二选择模块(29),第二选择模块(29)根据所述比较结果和获得的大概率编码CodeMPS中下一索引NMPS、小概率编码CodeLPS中下一索引NLPS发送更新信息给索引Index模块(21),第二比较模块(26)将接收到的概率估计Qe和概率区间寄存器A(25)中存储的概率值进行比较,并将比较结果发送至前导零检测模块(27),第二比较模块(26)将归一化信号renor_valid输出给第三级流水线模块(5-3),如果需要执行区间归一化,通过前导零检测模块(27)检测概率区间寄存器A(25)前导零的数目,第二次更新概率区间寄存器A(25)对其移位相应数目个位,并且将前导零检测值prezeros_cnt输出给第三级流水线模块(5-3),所述前导零的数目prezeros_cnt为概率区间寄存器A(25)以二进制表示时高位0的个数;
第三级流水线模块(5-3)包括移位计数器CT(30)、第四比较模块(31)、生成码字寄存器C(32)和移位模块(33),第四比较模块(31)将移位计数器CT(30)输出的计数值与接收到的前导零检测值prezeros_cnt进行比较,并将比较结果C发送至移位模块(33),所述移位模块(33)将比较结果C进行移位,当移位计数器CT(30)减为0时输出信号给移位模块(33),移位模块(33)在接收到所述信号时根据比较结果C移位响应个数输出字节数据至生成码字寄存器C(32),生成码字寄存器C(32)根据输入的字节数据生成字数据至移位模块(33),所述移位模块(33)对输入的字数据进行移位后更新输出字节B1和B2;
第四级流水线模块(5-4)包括Flush模块(35)和移位寄存器(34),Flush模块(35)在一次算术编码结束时输出flush信号给移位寄存器(34),移位寄存器(34)接收第三级流水线模块(5-3)中移位模块(33)发送的更新输出字节B1和B2,并在接收到flush信号时将编码结果发送至输出字节存储器RAM(6)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010110731 CN101848311B (zh) | 2010-02-21 | 2010-02-21 | 基于Avalon总线JPEG2000的EBCOT编码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010110731 CN101848311B (zh) | 2010-02-21 | 2010-02-21 | 基于Avalon总线JPEG2000的EBCOT编码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101848311A CN101848311A (zh) | 2010-09-29 |
CN101848311B true CN101848311B (zh) | 2011-09-28 |
Family
ID=42772756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010110731 Expired - Fee Related CN101848311B (zh) | 2010-02-21 | 2010-02-21 | 基于Avalon总线JPEG2000的EBCOT编码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101848311B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105281786A (zh) * | 2015-11-02 | 2016-01-27 | 浪潮集团有限公司 | 一种应用于嵌入式系统的bch编码装置及其控制方法 |
US10750175B2 (en) | 2017-05-04 | 2020-08-18 | Sony Corporation | Quantization partitioning for enhanced image compression |
CN107241602B (zh) * | 2017-05-24 | 2020-05-12 | 天津大学 | 一种应用于JPEG2000的Tier1接口设计方法 |
EP3884662A4 (en) * | 2018-12-25 | 2021-12-08 | Zhejiang Dahua Technology Co., Ltd. | IMAGE PROCESSING SYSTEMS AND METHODS |
CN111316645A (zh) * | 2019-04-23 | 2020-06-19 | 深圳市大疆创新科技有限公司 | 编码器、编码系统和编码方法 |
CN113099236A (zh) * | 2019-12-23 | 2021-07-09 | 阿里巴巴集团控股有限公司 | 编码电路、位平面编码器、编码方法、设备及介质 |
CN111787325B (zh) * | 2020-07-03 | 2022-03-08 | 北京博雅慧视智能技术研究院有限公司 | 一种熵编码器及其编码方法 |
CN112712168B (zh) * | 2020-12-31 | 2024-07-12 | 北京清微智能科技有限公司 | 一种实现神经网络高效计算的方法及系统 |
CN115175368B (zh) * | 2022-07-11 | 2024-08-06 | 西安邮电大学 | 低信噪比下的随机接入前导检测方法、系统、设备及终端 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564196A (zh) * | 2004-04-07 | 2005-01-12 | 西安交通大学 | 同步流水算术编码器的vlsi实现方法 |
CN101489128A (zh) * | 2009-01-19 | 2009-07-22 | 山东大学 | 一种jpeg2000流水线算术编码方法和电路 |
-
2010
- 2010-02-21 CN CN 201010110731 patent/CN101848311B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564196A (zh) * | 2004-04-07 | 2005-01-12 | 西安交通大学 | 同步流水算术编码器的vlsi实现方法 |
CN101489128A (zh) * | 2009-01-19 | 2009-07-22 | 山东大学 | 一种jpeg2000流水线算术编码方法和电路 |
Non-Patent Citations (2)
Title |
---|
朱文文等.JPEG2000中EBCOT算法的优化.《计算机应用》.2008,第28卷第210页-第212页. * |
胡小开等.基于SoPC的JPEG2000编码器设计.《电子技术应用》.2009,(第9期),第16页-第19页. * |
Also Published As
Publication number | Publication date |
---|---|
CN101848311A (zh) | 2010-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101848311B (zh) | 基于Avalon总线JPEG2000的EBCOT编码器 | |
CN101951516A (zh) | 基于h.264/avc中cabac的并行编码实现电路及编码方法 | |
CN101820549B (zh) | 基于jpeg2000标准的高速实时处理算术熵编码系统 | |
CN102833546B (zh) | 基于小波子带交织最优量化的高速图像压缩方法及装置 | |
CN101316364A (zh) | 图像压缩系统 | |
CN102724499B (zh) | 基于fpga的变压缩比图像压缩系统及方法 | |
CN101867809A (zh) | 基于脉动阵列的高速图像压缩vlsi编码方法及编码器 | |
CN102801974B (zh) | 基于cabac的图像压缩熵编码器 | |
CN114970810B (zh) | 适用于稀疏神经网络计算阵列的数据处理方法和加速器 | |
CN110021368B (zh) | 比对型基因测序数据压缩方法、系统及计算机可读介质 | |
CN103248896A (zh) | Mq算术编码器 | |
CN102724505B (zh) | Jpeg_ls游程编码fpga实现方法 | |
CN102223534B (zh) | 用于图像压缩的全并行位平面编码方法 | |
CN113902097A (zh) | 针对稀疏化cnn神经网络模型的游程编码加速器及方法 | |
CN101488225B (zh) | 一种位平面编码器的vlsi系统 | |
CN201111042Y (zh) | 一种二维小波变换集成电路结构 | |
CN114640354A (zh) | 数据压缩方法、装置、电子设备及计算机可读存储介质 | |
CN104053011B (zh) | 应用于jpeg2000解码器中的二维离散小波逆变换器 | |
CN1448871A (zh) | 内在并行的二维离散小波变换的vlsi结构设计方法 | |
CN1207917C (zh) | 适用于jpeg2000标准的高速低功耗mq编码器 | |
Kuo et al. | Design of a low power architecture for CABAC encoder in H. 264 | |
CN104536719B (zh) | 一种用于变系数乘法器的并行伪csd编码器 | |
Saini et al. | A new bus coding technique to minimize crosstalk in VLSI bus | |
CN115079996A (zh) | 基于全并行硬件逻辑的超高速流水线式五点中值滤波方法 | |
CN104539973B (zh) | 应用于jpeg2000的基于二维离散小波逆变换的硬件设计方法 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110928 Termination date: 20140221 |