介绍了基于Zynq平台实现的JPEG图像压缩系统。该系统利用Zynq片上AXI总线实现了ARM与FPGA核间高吞吐率的数据交互 *** 作,并结合了ARM和FPGA在嵌入式系统开发中各自的优势,对软硬件功能的实现进行了明确的划分。通过具体的实验测试,本系统的通用性及高效性得到了验证,并且该系统可方便地移植到不同的实际应用中。
引言
随着多媒体技术以及通信技术的迅猛发展,高质量数字图像的应用越来越广泛,然而未经压缩的数字图像的数据量非常大,势必会给图像的存储和传输都带来很大的困难,因此对数字图像的有效压缩是不可或缺的。在现有图像压缩编码技术中,静态图像压缩编码标准JPEG以其显著的压缩效率、较低的图像质量损失以及较低的实现复杂度得到了广泛应用,是常用的国际标准。
JPEG静态图像压缩标准于1991年由联合图像专家组JPEG(Joint Picture Expert Group)制定[1]。发展至今,JPEG图像压缩系统在各大通用处理器平台上的软件实现早已成熟,但由于这些算法的实现需要大量系统资源(内存、浮点运算)的消耗,很难直接移植到资源有限的嵌入式平台中。为了实现JPEG图像压缩在嵌入式平台中的应用,不少学者对JPEG编码算法进行了优化,并在ARM微控制器、高性能DSP中进行了实现[24]。由于图像质量及其对处理实时性要求的不断提高,一些学者提出了采用FPGA并行硬件来实现JPEG图像压缩算法的解决方案[5],且取得了不错的效果。
若使用ARM微控制器进行开发,软件方法的实现受限于指令的串行执行,处理速度不会太快,且存在计算性能不足等问题。而使用高性能DSP进行实现时,虽然DSP内部有专门的结构加速实现数字信号处理,但存在开发复杂、可移植性不强等问题,而且由于是串行指令执行系统,仍存在处理速度上的局限。针对单纯使用FPGA进行开发时,虽然硬件并行计算的优势能满足图像编码算法处理性能上的需求,但在图像数据的采集(如USB摄像头)以及数据传输通信(如网络传输)方面,相较嵌入式CPU而言,存在开发难度大、复杂度高、资源消耗多等问题,不利于系统通用平台化实现。要实现完整通用的图像压缩系统,可以采用ARM和FPGA软硬件协同设计的方式来实现整个系统平台,ARM处理器完成数字图像的采集以及压缩后数据的传输,FPGA作为协处理器,通过高速并行计算完成JPEG编码算法的硬件实现。
针对ARM和FPGA这种异构多核的协同开发,核间通信速率通常是系统设计的限制所在,但目前单芯片上集成ARM和FPGA的技术已经很成熟,如Xilinx公司2011年推出的Zynq7000系列芯片[6],片内高性能通信总线很好地解决了核间通信速率这一瓶颈。本文采用搭载有XC7Z020CLG484芯片的ZedBoard平台完整地实现了JPEG图像压缩系统,在利用FPGA并行处理优势加速实现JPEG编码算法的同时,ARM部分便捷地实现了图像数据的采集、简单的预处理,以及压缩后数据的传输等功能。
1系统整体实现结构
系统平台按照处理流程主要分为3个部分:图像数据获取、图像编码处理以及压缩后的数据传输。本系统的整体实现结构如图1所示。
图1 系统实现结构图
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)