当前位置:首页 > 消费电子 > 消费电子
[导读]分析了JPEG标准的压缩/解压缩算法,以VLSI方式实现了基于JPEG标准的解码流程,在关键模块——Huffman解码、IDCT上进行了算法级、结构级和电路级等层次的综合考虑,使其有更好的功耗代价,使其能够在图像传感器上得到应用。通过测试平台对其VLSI进行了RTL级和门级的仿真。结果表明,功能符合需求。

目前,我国正在筹备物联网的建设,这对于传感器技术的发展以及数字图像传感器瞬时产生的海量数据为实时通信系统的存储容量、传输带宽和功耗提出了挑战。在医疗、遥感图像通信等对恢复图像质量要求高的领域,对低功耗、具有良好压缩/解压缩性能及实时处理能力的图像编/解码器的需求也变得日益迫切。JPEG静态图像压缩/解压缩标准,具有优良的压缩/解压缩性能,而且要求低存储量和相对较低的复杂度使其很适合于硬件实现。
    为了实现数据的实时处理和低功耗应用,本文提出了一种带有时钟管理机制的并行、全流水结构的JPEG解码器实现方案。
1 JPEG解码算法
    JPEG(Joint Photographic Experts Group)是一种适用范围很广的静态图像数据压缩标准。JPEG压缩是一种有损压缩,它利用了人的视觉系统特性,使用量化和无损压缩编码相结合的方式去掉视觉的冗余信息和数据本身的冗余信息。JPEG解码器包括:霍夫曼(Huffman)解码、反量化(IQ)IDCT变换。在JPEG中,对于图像的解码是分块进行的。整个图像被划分为若干个8×8的数据块(MCU),每1个块对应于原图像的1个8×8的像素阵列。各行的编解码顺序从上到下,行内的编解码顺序从左到右[1]。
2 并行Huffman解码器
    Huffman编码后代码的长度不一致,如果解码器用串行技术实现,由于其代码长度不一致,解1个码字所需的周期数也不一样。对于实时系统,串行技术的效率比较低。另外,如果数据在传播过程中被噪声中断,整组数据就变得没有价值了。针对这两方面的问题,本文提出如下的解决方案。如图1所示为Huffman解码的主要元件和算法流程。


    算法流程:从输入端获取32位的压缩图像数据,分析输入的数据流,判断出码长,把输入的数据移位,同时从输入端补充新的数据。输入的数据通过Huffman表翻译成原始数据,提取出数据流中嵌入的符号位,经过一系列的除法、减法运算后得到编码前的频率数据,与之前得到的符号位合并后输送到输出缓存。
    本文采用的算法灵活地利用了Huffman表的特点,消除了算法中的乘法运算,完成码长的判断只需要1个周期。把码表的数据按照码长分类从小到大排列,再把码长相同的数据按照码字的大小从小到大排列。每张表按照排列后的顺序把码字对应的解码结果DR(Decoding Results)存入到ROM中。这样既有利于查表,需要的ROM也是最小的,符合低功耗要求。查表的地址发生器由“长度匹配”模块传递到的码长得到1个基地址,码长从输入数据中截取连续的几个与码长相同位数的bit作为偏移地址,2个地址相加就是DR保存的地址[2]。
    因关键bit出现的位置都是在码字的最后几位,因此根据码长将输入数据进行移位,使关键bit的最后1位出现在第n位,移位的结果只输出第n位以前的几个bit,这样的电路只需要1个只受码长控制的桶形移位寄存器。另外,再为每张表产生1个1串0加上1串1的地址修正串,有几个关键bit就有几个1,这部分电路逻辑简单且占用的电路不多。用这个地址修正串和桶形移位寄存器的输出做一个“与”逻辑运算,得到的就是正确的偏移地址。由于Huffman表需要的最长bit是9位,码长最大为19位,所以本文设计了1个19位输入、9位输出的桶形移位寄存器。改进后的电路面积缩小到改进前的50%左右。
3 IDCT处理器
    逆向离散余弦变换IDCT(Inverse Discrete Cosine Transform)电路的总体实现框图和其中的2D IDCT框图如图2所示。DCT系数经过反量化和反扫描电路处理后输入到IDCT的缓存器,由全局控制电路控制输入到2D IDCT单元及将最终变换好的数据送到输出缓存器中,发送Ready信号到运动补偿单元,通知该单元可以读出IDCT数据。2D IDCT单元进行2次1D IDCT运算,首先进行基于行的1D IDCT,然后将第1次IDCT的中间结果经转置存储器进行转置处理和缓存,再进行基于列的1D IDCT变换,得到最终的IDCT变换结果[3]。


    IDCT设计中使用了零值判断逻辑电路、门控时钟、并行流水线等技术,使得整个电路在满足处理速度和精度要求的基础上大大降低了功耗。
3.1 零值判断逻辑电路
    在整个图像解码过程中,每8×8个数据块中有约90%的数据的DCT系数为零,对这些零值进行IDCT变换并无意义。因此,本设计添加了零值判断逻辑来消除不必要的乘法运算。零值判断逻辑电路由8×8累加器阵列、零值判断逻辑模块和复选器MUX构成。通过零值逻辑模块判断,当操作数不全为零时,使能信号变成高电平,将操作数取到寄存器中,然后再进行乘法运算。如果操作数全为零,则封锁累加阵列,直接通过MUX输出0。零值判断逻辑能有效地降低功耗,且电路简单,面积与延迟时间几乎可以忽略不计。
3.2 基于锁存器的门控时钟
    通过控制电路的输入时钟可以使得一部分电路降低工作频率或者停止工作,从而降低整个电路的功耗。2D DCT/IDCT的电路主要由3部分组成:1D DCT/IDCT单元、转置存储器、输入输出处理单元。
    转置存储器部分只有在每次1D DCT/IDCT处理的最后才进行更新,而输入输出处理单元只有在数据输入输出的时候才工作。因此,控制这几部分电路的输入时钟,使其在大多数时间停止工作即可以有效地降低功耗。设计结果表明,在面积仅增加2%的情况下系统功耗可降低13%。
    基于锁存器的门控时钟可以实现上述功能,它具有不需要数据选择器、面积较小、可以减小时钟网络上电容、减少门控寄存器的内部功耗等优点。锁存器门控时钟电路及时序如图3所示。


3.3 并行流水线
    本设计使用加法和移位运算代替IDCT快速算法中的浮点乘法运算单元,用高度并行流水线VLSI结构加快数据处理速度,其处理数据的时间不到串行结构的1/5。因此,时钟频率可以相应地降低到串行结构的1/5左右,从而降低系统的功耗。例如,使用2个16×8的乘法器同时并行计算高位部分和低位部分,分别得到高位部分积和低位部分积,然后进行移位相加。实现电路运算时实现时间重叠、资源重复使用和资源共享,提高了系统的并行性,以此提高了乘法电路的运行速度和效率。
4 仿真和综合结果
    本文选用1幅1 920×1 080大小的JPEG图像,Modelsim进行RTL级仿真后的波形如图4所示。图中JPEG_DATA是码流数据,OutR、OutG、OutB是解码仿真结果[4]。在100 MHz的频率下对解码核心模块进行综合[5],结果如表1所示。


    本文有别于以往用软件实现JPEG解码,而是在用硬件实现JPEG解码的同时,改进硬件结构,通过多种易于操作的方法来降低硬件解码能耗。通过EDA工具验证,完全可以满足JPEG图像硬件解码的要求。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

郑州2024年4月22日 /美通社/ -- 为助力国家乡村振兴战略,日前,中国平安组织开展"走进佛坪,网络兴农——乡村振兴佛坪行"公益活动。为助力解决农产品滞销问题,中国平安承诺2024年将消费帮扶采购佛坪县特色农产品金...

关键字: 网络 直播带货 硬件

为增进大家对电脑硬件的认识,本文将介绍如何维护电脑硬件。

关键字: 硬件 指数 电脑硬件

为增进大家对电脑硬件的认识,本文将对电脑硬件故障的检修方法以及排除步骤予以介绍。

关键字: 硬件 指数 电脑硬件

为增进大家对电脑硬件的认识,本文将对电脑硬件予以介绍。

关键字: 硬件 指数 电脑硬件

近日,国内高端存储品牌——佰维存储正式官宣与TES英雄联盟战队达成深度合作,成为TES官方唯一指定存储品牌。佰维存储与TES战队将携手共同助力中国电竞产业蓬勃发展,为电竞行业注入更多硬核科技元素,让更多的玩家感受专业电竞...

关键字: 硬件 存储

全新的卡片式设计:整个控制中心以卡片形式展现第三方连接状态,对应设备的相关功能以及其它硬件的终端设置,可在控制中心中进行统一管理。

关键字: 硬件 设备 终端

华为开发者大会是华为公司举办的年度盛会,旨在汇聚全球的开发者、合作伙伴和业界专家,共同探讨和分享最新的技术趋势、开发工具和实践经验。华为开发者大会不仅是华为对外展示技术实力和创新成果的重要平台,也是推动全球开发者生态发展...

关键字: 开发工具 华为 硬件

鸿蒙系统开发者需要学习哪些编程语言以及有哪些推荐,是一个复杂而多元的问题。鸿蒙系统,作为华为推出的面向物联网时代的操作系统,其开发者需要具备跨平台的开发能力、对硬件和软件的深入理解以及创新思维。

关键字: 鸿蒙系统 华为 硬件

随着物联网、可穿戴设备等应用的普及,低功耗设计已经成为了电子产品设计的重要目标。微控制器(MCU)作为电子产品的核心处理器,其功耗直接影响到整个系统的性能和续航时间。因此,如何实现MCU的低功耗设计成为了电子工程师关注的...

关键字: MCU 低功耗设计

嵌入式软件测试是针对嵌入式系统中的软件进行验证和验证的过程。嵌入式系统是集成在其他设备或系统中的计算机系统,例如汽车、医疗设备、家电等。为确保嵌入式软件的质量和可靠性,进行适当的测试是至关重要的。嵌入式软件测试是确保嵌入...

关键字: 嵌入式软件 计算机 硬件
关闭
关闭