DC/AC系数解码:计数器用于计算解析系数在块数据中的位置。若计数器值为零,表示解析出来的是DC系数的差值DIFF,要根据亮度色度选择信号选择相应DCk-1,根据DCk=DIFF+DCk-1计算出DC值,并且更新DCk-1。若计数器值不为零,表示解析出来的是AC值,接下来对应的有4个分支:1)若(RRRR,SSSS)=(0,0),表示此图像块解码结束,输出块解码结束标志DecOneBLOCk,并清零计数器;2)若(RRRR,SSSS)=(15,0),表示连续16个零系数,计数器加16,不输出;3)若SSSS不为零,且计数器值+RRRR=62,表示解析出来的是图像块的最后一个系数,计数器清零,并输出块解码结束标志DecOneBlock和DCT系数值;4)普通AC系数,计数器加1,输出计数器的值和DCT系数值。
1.4 反量化模块设计
本设计在Huffman解码后没有采用JPEG标准的先反Z字形重排再反量化的流程,而是先进行反量化操作。如此只要Huffman解码有DCT系数输出时才需要进行反量化运算,能减少无效操作,降低功耗。
反量化运算时先将相应的量化系数保存在寄存器阵列中,在Huffman解码模块有DCT系数输入时,按其地址取出相应的量化系数,相乘后输出到后级反Z字形重排模块。
1.5 反Z字形重排模块设计
根据模块输入数据的特点,提出了一种优化的硬件实现结构。因为一个8×8图像块经DCT变换后非零系数个数一般不超过总数据量的10%,所以设计中为寄存器阵列的每个寄存器都设定一个一位的使能标志,在初始化时先将寄存器阵列中寄存器和相应标志位都赋零值,在输入值为非零值时才写入相应地址,并置位对应的使能标志,这样在写入数据时不需要进行零数据的存储,而在输出数据时只要根据使能标志就能判断是要读寄存器阵列还是直接输出零,所以可以减少对存储器的读写操作,加快数据处理速度。
反Z字形重排模块不仅要接收反量化后的系数,对其进行反Z字形重排,同时要对图像块数据进行一次行列转置,这样可以节省2个寄存器阵列,降低硬件成本。为了提高运算并行度,提高解码速率,满足后级模块数据要求,反Z字形重排模块中采用了两个64×14位双端口寄存器阵列,进行乒乓操作。
www.55dianzi.com
1.6 IDCT模块设计
2D-IDCT的实现选用行列分解法,所以主要功能模块包括1D-IDCT模块和行列转置模块。因为全流水线实现系统解码硬件成本很高,所以设计中主要通过提高运算并行度和在功能模块内部实现流水线运算来提高解码速度。IDCT模块设计中采用了两个1D-IDCT处理单元,并通过流水线技术实现高运算速率。
1.6.1 1D-IDCT模块设计
本设计采用了一种运算量少、数据流简单且适于流水线实现的IDCT算法。通过对1D-IDCT数据流程的合理划分,将其分4级,在每级中间插入寄存器,对每级流水线内部运算的时序进行合理安排,在每级流水线内共享算术单元,降低硬件成本。1D-IDCT快速算法的数据流程如图6所示。

通过对1D-IDCT数据流程的合理安排和资源共享,本设计共需4个加法器,4个减法器和4个乘法器,所用硬件资源比较少。而且本设计的处理速度快,每个时钟周期输入两个像素,完成1D-IDCT的延迟时间是6个时钟周期。在流水运算时计算一个8点1D-IDCT只需要4个时钟周期。
1.6.2 行列转置模块设计
行列转置矩阵的实现大部分设计采用双RAM进行乒乓操作完成,本设计采用一个8×8寄存器阵列和方向控制信号完成,可节省一半硬件资源,且控制简单。当有信号输入时,方向控制信号值初始设为0,这时寄存器阵列的输入输出方向是从左到右,64个时钟周期后方向控制信号反向变为1,这时寄存器阵列的输入输出方向是从下到上。如此循环,即可实现行列转置,如图7所示。

2 综合、仿真与性能分析
设计时先用Matlab进行算法级仿真与验证,在RLT级设计时采用Verilog语言实现,在Modelsim6.1中进行功能仿真,选择VIRTEX2系列xc2v250器件进行FPGA验证,从软硬件方面都验证了设计的正确性。
使用Synopsys公司的Design Compiler工具在0.18μm的SMIC CMOS工艺条件下,对RTL代码进行综合优化。通过设置不同的面积、时序及功耗约束条件,缩短关键路径的延时,时钟频率可达100 MHz的最优设计,综合出面积为721 695μm2,不包括存储单元需要34.6 kB标准门。本设计能每秒能够解码1 920×1 080图形25帧以上,所以也能用于一些有低成本需求的监控、录像系统。
3 结束语
介绍了基于静止图像压缩标准JPEG的解码器IP核的设计,描述了硬件设计过程,提出了一种高效、低成本的JPEG解码器架构。设计通过VIRTEX2平台进行了FPGA验证,并使用Synopsys公司的DC工具在SMIC 0.18 μmCMOS工艺条件下,对设计进行面积和时间的优化,在100 MHz时钟频率下工作时电路面积为721 695μm2,每秒能够解码1 920×1 080图形25帧以上。本设计还支持多种图像质量和图像格式,有较宽的压缩比范围,设计具有独立性和完整性,也适用于数码相机、手机和扫描仪等各种应用。
上一页 [1] [2]
本文关键字:解码器 仪器仪表读写器,电子知识资料 - 仪器仪表读写器