积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> SOPC >> 相关文章
  相关分类: 相关文章 | 应用论文 | 新产品 | 下载 |
JPEG2000中位平面编码的存储优化方案设计和实现
 
作者:未知   来源:51    点击数:468   更新时间:2007-10-26
您可以添加到网摘 让更多人关注此文章:

    

摘要:JPEG2000的位平面编码运算开销很大,是编码器提高速度的瓶颈。为了使JPEG2000能用于实时图像处理,本文设计了存储优化的硬件实现方案,设计以verilog语言描述,通过了功能仿真和逻辑综合,最终实现的IP核能在0.1s完成512×512的灰度图像的编码。

关键词:位平面编码;JPEG2000;verilog语言

1.引言

JPEG2000[1]具有许多不同于JPEG的新特性,如按图像质量或分辨率渐进传输、感兴趣区域的提取,因此能够被应用于许多场合,如图像监控,数码相机,网络图书馆等。但是对于这些实时系统,要求编码器的处理速度相当高,而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)。

显著信息

符号信息

幅度信息

细化信息

访问信息

256×4bit

256×4bit

256×4bit

256×4bit

256×4bit

表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相反。

因此,必须设计相应的控制电路和地址产生电路来配合这个存储方案。

 

MEMA

MEMB

MEMC

符号缓存

160×2位

256×2位

128×2位

显著缓存

160×2位

256×2位

128×2位

表2。对于32×32的码块,采取本文的存储方案,相应的符号和显著缓存的分配情况

编码带

MEMA

MEMB

MEMC

读入顺序

0

0~31

0~31

0~31

ABC

1

32~63

32~63

0~31

CBA

2

32~63

64~95

32~63

ABC

3

64~95

96~127

32~63

CBA

4

64~95

128~159

64~95

ABC

5

96~127

160~191

64~95

CBA

6

96~127

192~223

96~127

ABC

7

128~159

224~255

96~127

CBA

表3。对于不同的编码带,相应的MEMA,MEMB,MEMC

的地址范围以及读入寄存器的顺序

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; 。。。

if (gene_layer_fin) nstate = fill_ram;else nstate = gene_layer;end

fill_ram:begin

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

if (fill_ram_fin) nstate = pass_judge;else nstate = fill_ram;end

。。。

endcase

5.实验结果

本设计采用modelsim工具进行了功能仿真,使用quartus[6]工具进行了逻辑综合,得到的综合结果如表3所示。

器件名称

EP1C12Q240C8

Total logic elements

1926/12060 (2%)

Total pins

36/173 (20%)

Total memory bits

5248/239616 (<1%)

Fmax

64MHz

表3。使用quartus对设计进行逻辑综合的结果

下面是使用jasper软件和本硬件实现对几幅标准图像(大小512×512的灰度图像)编码的时间比较。

图像大小

Jasper执行时间/ms

本硬件实现的执行时间/ms

Baboon

371

120

Lena

301

107

Pepper

340

116

表4。Jasper实现方案和本文硬件实现方案的图像编码执行时间比较

6.结论

本文通过对JPEG2000中的位平面编码器的存储方案进行了分析,设计了一个高效的存储结构以及相应的控制电路,设计采用verilog[4]语言描述,通过quartus[6]软件逻辑综合后,能够在0.1s内完成一幅512×512灰度图像的编码,编码时间仅为jasper[3]软件实现方案的30%左右。由于块编码器的特点,每个码块的编码本身是独立的,可以并行进行,而且根据综合结果,使用EP1C12Q240C8完全可以在一块芯片内集成多个位平面编码器的IP核,每个块编码器核可以并行执行,因此,可以进一步提高编码器的速度,从而使实时处理图像成为可能。另外,还可以将设计定制为ASIC,将最终产品应用到数码相机、图像监控中,其市场前景是十分广阔的。

参考文献

[1] M. Boliek, C. Christopoulos, and E. Majani (Editors), “JPEG 2000 Part 1 Final Publication Draft”, ISO/IEC JTC1/SC29/WG1 N2678, July 2002.

[2] D. Taubman, “High Performance Scalable Image Compression with EBCOT”, IEEE Transactions on Image Processing, Vol. 9, No. 7, July 2000, pp. 1158-1170.

[3] M. D. Adams, “Jasper project home page”, http://www.ece.uvic.ca/~mdadams/jasper, 2002.

[4] 硬件描述语言verilog第四版, Thomas & Moorby’s, 2001

[5] Cyclone Device Handbook, http://www.altera.com/literature/lit-cyc.jsp

[6] Quartus II Development Software Handbook, http://www.altera.com/literature/lit-qts.jsp

 



相关文章
没有相关文章
热门评论排行
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·VHDL设计中电路简化问题的
·基于实时操作系统μC/OS-
·ARM处理器应用开发4步骤

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
“科技奥运与计算机技术的应用”研讨会
性能差异化功率器件制造面临多重挑战
探索中国特色IC业发展新模式
研祥专家做客嵌入式技术网,谈科技奥运
搭建多方交流平台 中国嵌入
Compuware Cha
中华嵌入式人才库正式运营新闻发布会
“科技奥运与计算机技术的应用”研讨会
意法半导体(ST)2007年企业责任
Diodes Incorp
 
热门下载 [更多]
 
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
[ ] 实用电源电路集锦
 
论坛新帖 [更多]
 
[原创]NRF2401 NRF...
需要LM324中文资料...
[求助]大家用过lm331的可...
单片机培训班于7月12日在华北...
重磅资料-------65K色...
价格不到3元!国产“双核”51...
[转帖]关于DSP该怎么学的讨...
[转帖]在2407上实现SPW...
以常用集成块制作的声控灯光控制...
触摸式电子开关电路...

 
赞助商 [更多]
 


 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网