您的位置 首页 嵌入式

如何用JPEG2000中位平面编码规划存储优化计划?

1引言JPEG2000的两大核心模块(见图1),小波变换和EBCOT[2](基于优化截断点的嵌入式块编码)其运算开销很大,占据了整个编码器处理时间的一半以上。因此

1导言

JPEG2000的两大中心模块(见图1),小波改换和EBCOT[2](依据优化截断点的嵌入式块编码)其运算开支很大,占有了整个编码器处理时刻的一半以上。因而,有必要研讨合理的完结方法,一般来说采纳软件完结方法相对比较简单,比方JPEG2000的参阅代码jasper[3],但实时处理的才能较差,即便选用嵌入式体系的计划,如运用DSP或ARM等通用处理器,基本上也是经过软件的方法来完结,速度进步不大,有必要针对块编码自身的特色规划高效的硬件结构单元。只要这样,才能使JPEG2000在实时处理的使用中发挥其效果。


2.存储优化的完结计划

JPEG2000的嵌入式块编码是依据位平面的编码,其对象是小波改换后频域系数组成的相对较小的码块,巨细一般是32×32或64×64。码块中的系数包含符号信息和许多个不同权值的起伏信息。位平面编码的思维便是将最重要的信息先进行编码,也便是权值较大的起伏信息先编码,这样合作后续的码流安排 (见图1)即可使终究的码流取得渐进传输的特性。

依据规范[1],编码过程中除了用到符号和起伏信息外,还需求每个比特位的明显信息,细化信息和拜访信息。因而,关于一个32×32的码块,编码一个位平面时,一共需求存储5×1024位的信息。别的,因为编码是以一列中的4位为单位,所以通常将每块编码信息存储为256×4的方法(见表1)。

可是事实上这种存储结构是低效的,因为依据规范[1],编码一个比特位包含两个过程,即判别通道归属和编码原操作。在这两个过程中,需求拜访的信息包含当时位的明显、符号、起伏、细化和拜访信息,以及当时位的周围8个比特位的明显和符号信息。关于依据列的编码方法,假如依照上面的计划存储信息,行将符号和明显信息以字长为4存储,则实际上每次编码一列,需求读入前一编码带(通常将每4行称为一个编码带)、当时编码带和后一编码带的共12位明显和符号信息,可是事实上只要其间的6位是有用的,其他6位是冗余信息。因为编码是依据比特位的操作,因而会频频地拜访存储区域,每次编码一列有必要读出相应的各信息位,编码完结一列数据还要将相应的编码信息再次写回存储区域,以到达更新编码信息的意图。可见,采纳上述4位字长的计划是十分低效的。

所以,本文规划了一种相对合理的存储计划,即在码块的最上面一行和最下面一行各增加一行全0数据(这是对明显和符号平面而言),构成34×32的块,然后以两行为一组,并按交织存储的方法,即A,B,C,B,A,。。。,C,B,A,将信息分配至三块存储区域MEMA,MEMB和MEMC(见表2)。

别的,从明显和符号信息缓存写数据至相应的寄存器(6×3bit)时,也要依据相应的编码带进行切换,关于奇数编码带(假定第一个编码带记为零),次序为ABC,关于偶数的编码带,次序为CBA(见表3)。并且,从表三能够看出,用于拜访MEMA、MEMB、MEMC的地址信号的改变也不尽相同,其间拜访MEMB的地址次序增加,而MEMA的地址在从奇编码带过渡到偶编码带的过程中坚持不变,从偶编码带过渡到奇编码带的过程中增加,关于MEMC的状况正好和MEMA相反。

因而,有必要规划相应的操控电路和地址发生电路来合作这个存储计划。


3.硬件架构

依据上面的剖析,提出相应的位平面编码器的硬件架构,如图2所示,本架构针对32×32的码块。


图2。依据内存优化计划的位平面编码器的硬件架构

图2中的位平面编码器首要包含几个部分,即内部缓存,寄存器组,地址发生模块,判别通道归属模块,编码原操作模块,状况机模块,计数器模块。

地址发生模块包含两个,地址发生模块1担任发生读取外部DWT系数缓存的地址信号;地址发生模块2担任发生读取内部5块缓存区域的相应地址。

判别通道归属模块,依据当时寄存器组中相应的编码信息,判别比特位是否归于当时的编码通道,假如归于当时的编码通道,则进行相应的编码原操作,不然越过该比特位,持续编码下一个比特位。

编码原操作模块包含4部分,即零值编码、符号编码、细化编码和游程编码。一般的完结方法选用查找表来完结编码原操作,而本规划中均选用组合电路的方法来完结,这样能够进步发生CX(编码形式)和D(编码比特位)的速度。

状况机模块决议了整个编码器的编码流程,编码首要分为两个阶段,即预处理阶段和形式发生阶段。预处理阶段首要用于完结5块缓存区域内容的初始化,形式发生阶段则依照明显、细化和铲除通道的次序顺次进行编码,输出编码形式给后续的算术编码模块。状况机模块还接纳来自计数器的输出,决议当时处于什么状况,在每个位平面编码完结后有必要转到预处理阶段,更新下一位位平面的起伏信息,并清零拜访缓存的内容。

4.Verilog规划

本文主张的硬件架构选用VERILOG[4]言语描绘,主模块是bpc.v,包含 ram_block.v,addr_generator.v,fill_ram.v,pass_judge.v,coding_primitive.v和 state_machine.v共6 个子模块。编码流程的完结经过主状况机发生相应的使能信号,激活当时的模块操作,当操作完结后,由该模块发生操作间断信号给主状况机,从而使编码流程进入下一过程。下面列出了部分用于模块间握手的代码,代码中以省略号代表其它一些操控信号和其它一些状况。

case (cstate)

。。。

gene_layer:begin

。。。gene_layer_en = 1;fill_ram_en = 0;pass_judge_en = 0; 。。。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/146328.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部