EDN China > 技术文章 > 可编程器件 > FPGA > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) JPEG2000中嵌入式块编码的FPGA设计

来源:电子技术应用/作者: 汪 浩 罗伟栋?? 2007年04月18日 ?? 收藏0

?????? 显然,交错存储方案更有效,只是它需要在硬件电路上付出一些代价。首先,在预处理小波数据时,必须将符号位按照上述交错方式写入内部RAM,这比处理幅度位复杂一些。其次,在编码过程中,需要读取数据至内部6×4显著或符号寄存器,而对于奇、偶数编码带,其读入顺序也是交错的,对于前者是a、b、c,对于后者则是c、b、a;而且读取三块内存区域的地址信号也是不同步的,如表1所示,读取存储器b的地址信号始终增长,而读取存储器a和b的地址信号则符号以下规律:前者在从奇编码带过到偶编码带时地址增加,而在从偶编码带过渡到奇编码带时地址保持不变;手者正好相反。

  表1 32×32码块编码过程中,处于各个编码带下读取内部缓存abc的相应地址信号

  ?????????????????????????????????????????????????????????????????????????????? c

? a????????? b???????? c?
1? 0~31? 0~31? 0~31?
2? 32~63? 32~63? 0~31?
3? 32~63? 64~95? 32~63?
4? 64~95? 96~127? 32~63?
5? 64~95? 128~159? 64~95?
6? 96~127? 160~191? 64~95?
7? 96~127? 192~223? 96~127?
8? 128~159? 224~255? 96~127?

  因此,必须设计相应的控制电路满足上述要求,尽管这样做付出了额外的代价,但却大大提高了存储器的读写效率(提高了50%),这对于需要频繁访问存储器的位平面编码来说是很宝贵的;另外,采用了交错存储方式,可以对三块存储区域独立地产生地址信号,一次性读取6bit,而在常规的存储方式下,为了读取12bit信息,必须对同一块存储区域访问3次,可见采用交错存储的方案同时也提高了读写速度。

  在JPEG2000的的中,块编码器采用两种编码模式,即NORAML和VCAUSAL。在VCAUSAL模式下,考虑当前编码位的周围显著的信息时,将下一编码带的显著信息看作是不显著的,而在NORMAL模式下则看作是显著。采用VCAUSAL模式,尽管这样简化了对存储访问的逻辑控制,节省了一些存储空间,但却降低了块编码器的编码效率。因此,设计了图3所示的寄存器组来配合上面介绍的交错存储的方案,这些内部寄存器包括6×4bit的显著和符号信息寄存器,8bit的细化和访问信息寄存器,4bit的幅度寄存器,如图3所示。

  图3中表示出了各个寄存器读入数据和写回更新数据的位置、当前的编码位置和当前编码位。这些寄存器都能完成右移一位的功能特别值得注意的是:由于编码过程中必须用到18bit的显著和符号信息,因此在每个编码带开始处,必须对显著和符号信息寄存器做初始化右移一次,确保在编码第0列数据时已经有18bit的信息,见图4的示例。

嵌入式快编码器的硬件结构

  2 硬件设计

  根据本文设计的编码算法,可用如图5所示的硬件结构实现嵌入式块编码器。

  上述结构中,状态机用于控制总体的编码流程,外部信号START使状态机进入初始的预处理状态,表示此时外部RAM的数据已经准备好,然后在编码过程中根据计数器的数值进行状态切换。

  设计中用到的计数器共3个,即Countrow(位计数器)、Count(列计数器)、Countloop(编码带计数器)。图6中示出了块编码器的总体流程,从中可以看出编码器的状态随计数器的数值变化的情况。

  预处理单元预处理包括部分:码块预处理和位平面预处理。其中码块预处理包括计算需要编码的位平面数,撮各个系数的符号位填充相应的符号缓存,初始化显著信息缓存和细化缓存(全部清0);位平面预处理则提取当前位平面的幅度位填充相应的幅度缓存,初始化访问信息缓存(全部清0)。

  读写控制控制单元负责产生合适的控制信号与外部RAM和内部缓存接口;在预处理时负责外部RAM和内部缓存的读写控制,在编码过程中则负责内部缓存和寄存器组的读写控制。

  


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

基于最优截断的嵌入式编码? JPEG2000? 交错存储?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈