基于Avalon总线JPEG2000的EBCOT编码器的制作方法

文档序号:7741969阅读:135来源:国知局
专利名称:基于Avalon总线JPEG2000的EBCOT编码器的制作方法
技术领域
本发明涉及一种JPEG2000的^COT编码器。
技术背景 JPEG2000标准为了实现比JPEG标准更高的性能,其编解码的复杂度是JPEG的 2 3倍,特别是在EBCOTTier-I编码算法中。JPEG2000编码系统中的预处理,离散小波变 换,量化和EBCOTTier-2等都是以样本为基本运算单位,并且基本以数据为驱动的算法。而 EBCOTTier-I编码算法中的位平面编码和基于内容的自适应二进制算术编码两个主要算 法,各自都包含了相当的比特级运算和复杂的控制,因而是整个JPEG2000编码系统中最主 要的处理瓶颈。EBCOTTier-I编码器通常要占去整个JPEG2000编码器中50%以上的运行时 间。由此可见,高性能的EBCOTTier-I编码器设计是JPEG2000编码器实现中的关键。同时由 于EBCOTTier-I编码算法包含有相当的比特级运算和复杂的控制,使其无法在通用RISC, DSP体系上完成高性能的实现。因此,高速、低功耗、面积合理的专用硬件实现EBCOTTier-I 编码器对JPEG2000标准的应用推广有重要的意义。在JPEG2000众多实现方法中,通常要求其进行实时处理,而软件实现,如DSP (数 字信号处理器),因为其的串行执行导致编码速度受到了制约;而ASIC设计方法,如AD公 司的ADV2x2系列芯片,每秒可处理25幅720X576的彩色图片,即可以实时压缩PAL制视 频,但是此类芯片通常需要较多外设,并且灵活性较差,能够实现的压缩模式比较有限,不 利于进行二次开发。EBCOTTier-I编码器包括位平面编码和算术编码两部分。常规的位平面编码器,需 要对来自原始图像经小波变化并量化后得到的系数编码块进行编码,将编码块系数按位平 面展开后,按从高到低的顺序对每一层位平面进行扫描编码,这样的串行扫描编码制约了 整个编码器的编码速度。对于算术编码器,JPEG2000标准中的算术编码算法需要上下文信 息输入、概率估计、区间归一化及交换和码字输出这一系列过程,并涉及复杂的判断操作, 硬件实现时组合逻辑的延时比较大,致使编码器工作的时钟频率较低。

发明内容
本发明为了解决现有技术的JPEG2000的EBCOT编码器存在速度慢、灵活性差、过 程复杂的问题,提出一种基于Avalon总线JPEG2000的EBCOT编码器。基于Avalon总线JPEG2000的EBCOT编码器,它包括NI0SIICPU处理器、Avalon 总线接口和EBCOTTier-I编码器,所述EBCOTTier-I编码器内部固化有最高位平面检测 模块、编码控制模块、多个位平面编码器、多个算术编码器、多个输出字节存储器RAM,所述 NIOSIICPU处理器通过Avalon总线接口与^COTTier-I编码器连接,
NIOSIICPU处理器通过Avalon总线接口发送开始信号start至编码控制模块,编码控 制模块接收开始信号start后开始编码,NIOSIICPU处理器通过编码块写信号blkram_Wr、 编码块数据信号blkram_data和编码块地址信号blkram_address向EBCOTTier-I编码器中写系数数据,最高位平面检测模块检测编码控制模块的最高位平面,所述最高平面以下 有msb个平面,编码控制模块调用msb个位平面编码器进行并行编码,每一个编码控制模 块将其图像信息经小波变换和量化后的数据发送至一个位平面编码器,所述位平面编码器 根据所述编码信息生成编码信息的上下文矢量CX和判决信息D,并将编码信息的上下文矢 量CX和判决信息D发送至一个算术编码器,所述算术编码器对上下文矢量CX和判决信息 D进行编码,并将经过编码的字节数据存储在一个输出字节存储器RAM中,NIOSIICPU处理 器通过Avalon总线接口从msb个输出字节存储器RAM中读取地址信号Bram_address和数 据信号Bram_data,编码控制模块通过Avalon总线接口将编码完成信号ebc0t_d0ne发送中 NIOSIICPU 处理器。本发明的位平面编码器采用了系数读取与扫描编码并行执行处理,并且通过消 除位平面状态位之间的相关性使各位平面编码并行执行,整个编码器通过“双并行”优化 相比于常规的位平面编码器,编码速度得到了很大的提高,并且在编码之前查找幅值不 为0的最高位平面MSB,使编码只在最高位平面及以下几个位平面进行,节省了编码器资 源耗用。本发明的算术编码器采用四级流水线模块结构,将整个算法分割成四段,并且在 各流水线模块级中采用寄存器、ROM存储信息、索引Index更新问题处理、前导零预测等 一系列优化处理,使编码器的编码能在时钟频率IlOMhz下达到lbit/cycle。本发明为了 使EBCOTTier-I编码器应用于整个JPEG2000编码系统,采用了 Avalon总线接口,其中定 义了两个功能寄存器编码开始寄存器和编码结束寄存器,两个数据存储器编码块系数 存储器和输出字节存储器,有利于编码器的控制和数据通信,使编码器更好的应用于整个 JPEG2000编码器中。


图1为基于Avalon总线JPEG2000的EBCOT编码器结构示意图。图2为位平面 编码器的结构示意图。图3算术编码器结构示意图。图4为平面编码器扫描方式示意图。
具体实施例方式具体实施方式
一、结合图1说明本实施方式,基于Avalon总线JPEG2000的 EBCOT编码器,它包括NI0SIICPU处理器0、Avalon总线接口 1和^COTTier-I编码器2, 所述EBCOTTier-I编码器2内部固化有最高位平面检测模块40、编码控制模块3、多个位平 面编码器4、多个算术编码器5、多个输出字节存储器RAM6,所述NI0SIICPU处理器0通过 Avalon总线接口 1与^COTTier-I编码器2连接,
NI0SIICPU处理器O通过Avalon总线接口 1发送开始信号start至编码控制模块 3,编码控制模块3接收开始信号start后开始编码,NIOSIICPU处理器O通过编码块写 信号b 1 kram_wr、编码块数据信号b 1 kram_data和编码块地址信号b 1 kram_address向 EBCOTTier-I编码器2中写系数数据,最高位平面检测模块40检测编码控制模块3的最高 位平面,所述最高平面以下有msb个平面,编码控制模块3调用msb个位平面编码器4进行 并行编码,每一个编码控制模块3将其图像信息经小波变换和量化后的数据发送至一个位 平面编码器4,所述位平面编码器4根据所述编码信息生成编码信息的上下文矢量CX和判 决信息D,并将编码信息的上下文矢量CX和判决 信息D发送至一个算术编码器5,所述算术编码器5对上下文矢量CX和判决信息D进行编码,并将经过编码的字节数据存储在一个输 出字节存储器RAM6中,NIOSIICPU处理器0通过Avalon总线接口 1从msb个输出字节存储 器RAM6中读取地址信号Bram_address和数据信号Bram_data,编码控制模块3通过Avalon 总线接口 1将编码完成信号ebCot_done发送中NIOSIICPU处理器O。为了使EBCOTTier-I编码器2应用于整个JPEG2000编码系统,必须使 EBCOTTier-I编码器2与整个JPEG2000编码系统的小波变换、量化等部分进行数据通信。 本发明采用了 Avalon总线接口 1,有利于EBCO TTier-I编码器2的控制和数据通信,使 EBCOTTier-I编码器2更好的应用于整个JPEG2000编码器中。在Avalon总线接口 1主要用于连接^COTTier-I编码器2和NI0SIICPU,实现与 JPEG2000编码器其它编码部分数据通信。Avalon总线接口 1与NIOSIICPU相连的接口有时 钟信号elk、复位信号rst_n、读信号read、写信号write、片选信号cs、地址信号address、 读数据信号readdata和写数据信号writedata ;Avalon总线接口 1与EBCOTTier-Ι编码 器2相连的接口有时钟信号elk、复位信号rst_n、开始信号start、编码完成信号ebcot_ done、编码块写信号blkram_wr、编码块数据信号blkram_data、编码块地址信号blkram_ address、输出字节存储器地址信号Bran^address和输出字节存储器数据信号Bram_data。在EBCOTTier-I编码器2中由编码控制模块3控制整个编码流程,首先编码控 制模块3接收开始信号start开始编码,由编码块写信号blkram_wr、编码块数据信号 blkram_data和编码块地址信号blkram_address往^COTTier-I编码器2中写系数数据, 在写系数数据过程中最高位平面检测模块40检测编码控制模块3的最高位平面msb,找到 最高的平面msb,这个平面以上的都无需编码,以下的需要编码,即总共需要对msb个位平 面进行编码,通过编码控制模块3调用位平面编码器4进行位平面编码,总共调用msb个 位平面编码器4实现并行编码。在位平面编码过程中,会输出编码信息的上下文矢量CX 和判决信息D,算术编码器5以lbit/cycle的编码速度处理这些数据,算术编码器5编码 完生成输出字节数据存储在输出字节存储器RAM6中,通过编码控制模块3地址信号Bram_ address、编码控制模块3数据信号Bran^data从输出字节存储器RAM6中读取输出字节数 据。整个EBCOTTier-I编码器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 将符号位Z写入符号位存储器8,编码控制模块3输出的系数数据通过RAM地址生成模块7 将幅值位r写入幅值位存储器9,状态位预测模块13对有效性位σ、量级细化位δ和访 问位Π预测,状态位预测模块13将有效性位σ的预测结果存入有效性位存储器10,状态 位预测模块13将量级细化位δ的预测结果存入量级细化位存储器11,状态位预测模块13将访问位η的预测结果存入访问位存储器12,
位平面编码控制模块15分别输出控制信息给三寄存器生成模块14和三扫描编码模块 43,位平面编码控制模块15控制三寄存器生成模块14接收符号位X、幅值位κ、有效性位 σ、量级细化位δ和访问位/7,三寄存器生成模块14生成三寄存器数据,并将三寄存器数 据发送至有效性传播扫描模块16,有效性传播扫描模块16以三寄存器为单位对系数数据 按从上到下顺序进行编码,并将编码结果发送至量级细化扫描模块17,量级细化扫描模块 17对接受的系数数据进行编码,并将编码结果发送至清理扫描模块18,有效性传播扫描模 块16、量级细化扫描模块17和清理扫描模块18将当前编码信息的上下文矢量CX和判决信 息D发送至算术编码器5。 本发明的位平面编码器4采用了系数读取与扫描编码并行执行处理,并且通过消 除位平面状态位之间的相关性使各位平面编码并行执行,整个编码器通过“双并行”优化 相比于常规的位平面编码器,编码速度得到了很大的提高,并且在编码之前查找幅值不为 0的最高位平面MSB,使编码只在最高位平面及以下几个位平面进行,节省了编码器资源耗用。位平面编码主要负责生成当前编码信息的上下文矢量CX和判决信息D,并与比特 流一起送到算术编码器进行熵编码。由小波变换经量化得到的系数,可以将其分割成固定 大小的代码块,大小一般可取32X32或64X64。各代码块可按每个系数样本比特位做位 平面展开,最高层是符号位平面,下几层是幅值位平面。编码以位平面方式进行,从最高幅 值位平面(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,所以有效性位σ可用公式
预测,其中%表示当前位平面的系数有效性

表亍第i层系数幅值位,即当前位平面的系数有效性位值是上几层系数幅值位值模2
加和,将预测值写入有效性位存储器10中;对于量级细化位δ只有在量级细化扫描编码中
会更新,可以由公式4 预测,其中今第P平面的系数量级细化位,表示Ρ+1层位
平面的系数有效性位,即当前位平面的系数量级细化位值是上一层位平面的系数有效性位 值,将量级细化位δ预测值写入量级细化存储器11中;对于访问位/7,因为位平面编码算 法中,在每个位平面编码开始时就重设所有系数的访问位为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表示行数,η表示列数。首先判断 在当前系数有效性位σ [m, η] =0且当前系数领域系数是有效时,则进行零编码原语(ZC), 并设置访问位Π [m, n]=l ;反之,如果不满足有效性传播扫描过程(SPP)的条件,则直接跳 转到下一个系数进行编码。然后判断当前系数幅值位「[m,n]=l时,则进行符号编码原语 (SC),并设置有效性位σ [m,n]=l,跳转到下一系数进行编码。对三寄存器结构中间一列四 个系数编码完后转入下一三寄存器结构进行编码;在量级细化扫描模块17中,首先判断当 前系数满足有效性位σ [m, n]=l且访问位η [m,η] =0,则进行量级细化编码原语(MRC),并 且设置量级细化位δ [m,n]=l,然后跳转到下一系数;如果不满足MRP条件,则直接跳转到 下一个系数进行编码;在清理扫描模块18中,在最高位平面只进行清理扫面过程(CUP),其 它位平面上CUP是最后执行的扫描过程。执行CUP时,首先应该满足有效性位σ[π!,η]=0 且访问位Π [m,η] =0,然后再检测是否满足执行游程长度编码(RLC)和零编码原语(ZC)的 条件。执行游程长度编码原语(RLC)必须满足以下三个条件
1当前系数在位平面上位置为[m,η],m是4的倍数,或者m=0 ; 2当前系数所在的一列条带四个连续系数的σ都等于0 ; 3当前系数所在条带领域的σ都等于0。其中条件2 和 3 两条可归纳为 σ [i, j]=0, i=m_l,m,m+1, m+2, m+3, m+4 ; j=n_l, n, n+1。如果不满足以上条件则执行零编码原语。游程长度编码原语(RLC)或零编码原语 (ZC)执行完后,判断当前系数如果K[m,n]=l,则执行符号编码。以上规程结束后,跳转到 下个系数进行编码,直到位平面所有系数都编码完,因为CUP是一层位平面编码最后的一 个扫描过程,结束时首先重设所有系数的访问位7=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前导零的数目prezer0S_Cnt,并更新概率区间寄存器 A25,所述前导零的数目prezer0S_Cnt输出给第三级流水线模块5_3,所述前导零的数目 prezeros_cnt为概率区间寄存器A25以二进制表示时高位O的个数;
第三级流水线模块5-3包括移位计数器CT30、第四比较模块31、生成码字寄存器C32 和移位模块33,第四比较模块31将移位计数器CT30输出的计数值与接收到的前导零检测 值prezer0S_Cnt进行比较,并将比较结果C发送至移位模块33,所述移位模块33将所述比 较结果C进行移位,当移位计数器CT30减为O时输出信号给移位模块33,移位模块33在接 收到所述信号时根据比较结果C移位响应个数输出字节数据至生成码字寄存器C32,生成 码字寄存器C32根据输入的字节数据生成字数据至移位模块33,所述移位模块33对输入的 字数据进行移位后更新输出字节Bl和B2 ;
第四级流水线模块5-4包括Flush模块35和移位寄存器34,编码清理flush模块35 再一次算术编码结束时输出flush信号给移位寄存器34,移位寄存器34接收第三级流水线 模块5-3中移位模块33发送的更新输出字节Bl和B2,并在接收到flush信号时将编码结 果发送至输出字节存储器RAM6。由于JPEG2000标准中算术编码算法需要上下文信息输入、概率估计、区间归一化 及交换和码字输出这一系列过程,并涉及复杂的判断,不利于硬件逻辑的设计,使组合逻辑 的延时比较大,本发明的算术编码器5采用四级流水线模块结构,将整个算法分割成四段, 并且在各流水线模块级中采用寄存器、ROM存储信息、索引Index更新问题处理、前导零预 测等一系列优化处理,使编码器的编码能在时钟频率IlOMhz下达到lbit/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对其移位相应数目个位,并且将前导零 检测值prezer0S_Cnt输出给第三级流水线模块5_3。第三级流水线模块5-3实现生成码字寄存器C32的更新及输出字节的计算。当需 要区间归一化时,根据第二级流水线模块5-2计算得到的前导零检测值prezerosjnt于移 位计数器CT30通过第四比较模块31比较,根据比较值C移位相应的个数,而当移位计数器 CT30减为0时就要进行一次字节输出,输出字节由生成码字寄存器C32通过移位模块33得 到,而生成码字寄存器C32移位后更新。第四级流水线模块5-4实现输出字节的输出及编码清理flush操作。当需要输出 两个字节时,通过移位寄存器34缓存输出字节数据,两个字节数据按顺序输出,每个时钟 周期输出一个字节数据。当判断算术编码结束时,进行编码清理flush模块35操作,其中 也需要输出字节,将这些输出字节也输入移位寄存器34缓存输出。
权利要求
基于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)。
2.根据权利要求1所述的基于Avalon总线JPEG2000的EBCOT编码器,其特征在于位 平面编码器(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)将符号位i写入符号位存储器(8),编码控制模块(3)输出的系数数据通过RAM地址生 成模块(7)将幅值位κ写入幅值位存储器(9),状态位预测模块(13)对有效性位σ、量级 细化位δ和访问位η预测,状态位预测模块(13)将有效性位σ的预测结果存入有效性 位存储器(10),状态位预测模块(13)将量级细化位δ的预测结果存入量级细化位存储器 (11),状态位预测模块(13)将访问位η的预测结果存入访问位存储器(12),位平面编码控制模块(15)分别输出控制信息给三寄存器生成模块(14)和三扫描编 码模块(43),位平面编码控制模块(15)控制三寄存器生成模块(14)接收符号位I、幅值 位^、有效性位σ、量级细化位δ和访问位/7,三寄存器生成模块(14)生成三寄存器数 据,并将三寄存器数据发送至有效性传播扫描模块(16),有效性传播扫描模块(16)以三寄 存器为单位对系数数据按从上到下顺序进行编码,并将编码结果发送至量级细化扫描模块 (17),量级细化扫描模块(17)对接受的系数数据进行编码,并将编码结果发送至清理扫描 模块(18),有效性传播扫描模块(16)、量级细化扫描模块(17)和清理扫描模块(18)将当 前编码信息的上下文矢量CX和判决信息D发送至算术编码器(5)。
3.根据权利要求1所述的基于Avalon总线JPEG2000的EBCOT编码器,其特征在于算 术编码器(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)前导零的数目 prezer0S_Cnt,并更新概率区间寄存器A(25),所述前导零的数目prezeros^nt输出给第 三级流水线模块(5-3),所述前导零的数目prezer0S_Cnt为概率区间寄存器A(25)以二进 制表示时高位O的个数;第三级流水线模块(5-3)包括移位计数器CT(30)、第四比较模块(31)、生成码字寄存 器C(32)和移位模块(33),第四比较模块(31)将移位计数器CT(30)输出的计数值与接收 到的前导零检测值prezer0S_Cnt进行比较,并将比较结果C发送至移位模块(33),所述移 位模块(33)将所述比较结果C进行移位,当移位计数器CT (30)减为O时输出信号给移位 模块(33),移位模块(33)在接收到所述信号时根据比较结果C移位响应个数输出字节数 据至生成码字寄存器C(32),生成码字寄存器C(32)根据输入的字节数据生成字数据至移 位模块(33),所述移位模块(33)对输入的字数据进行移位后更新输出字节Bl和B2 ;第四级流水线模块(5-4)包括Flush模块(35)和移位寄存器(34),编码清理Flush模 块(35)再一次算术编码结束时输出flush信号给移位寄存器(34),移位寄存器(34)接收 第三级流水线模块(5-3)中移位模块(33)发送的更新输出字节Bl和B2,并在接收到flush 信号时将编码结果发送至输出字节存储器RAM(6)。
全文摘要
基于Avalon总线JPEG2000的EBCOT编码器,涉及一种JPEG2000的EBCOT编码器,解决了现有技术的JPEG2000的EBCOT编码器存在速度慢、灵活性差、过程复杂的问题。它包括Avalon总线接口和EBCOTTier-1编码器,所述Avalon总线接口的时钟信号、复位信号、开始信号、编码完成信号、编码块写信号、编码块数据信号、编码块地址信号、输出字节存储器地址信号和输出字节存储器数据信号输入端与编码控制模块相连,编码控制模块与msb个位平面编码器相连,位平面编码器与算术编码器相连,算术编码器与输出字节存储器RAM相连,msb为最高位平面检测模块检测编码控制模块的最高位平面的数值。本发明的编码器可以更好的应用于整个JPEG2000编码器中。
文档编号H04N7/26GK101848311SQ20101011073
公开日2010年9月29日 申请日期2010年2月21日 优先权日2010年2月21日
发明者任广辉, 王刚毅, 胡小开 申请人:哈尔滨工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1