基于DSP的JPEG图像压缩设计
冷血の爱 2022-08-01

  一、引言   

  JPEG算法是一种数字图像压缩编码算法,具有压缩比例高、失真小的特点,并已被确定为国际标准。该标准被广泛应用于数码相机、监视系统、手机、可视电话等等诸多方面。它的应用与实现不仅限于PC机,更多的则是基于嵌入式系统。嵌入式系统有其体积小、成本低、可靠性高、速度快、环境适应性强等优点。嵌入式编码实现方式也比较多,有的采用专用集成芯片,有的基于FPGA,有的基于DSP,ARM。采用专用芯片的方式实现简单,技术成熟可靠,但灵活性以及可扩展性差。基于FPGA的方式,压缩算法纯硬件实现,并行处理速度高,可实现高速处理,但由于JPEG压缩算法比较复杂,开发难度大些,费时费力。基于通用DSP实现方式优点是:灵活性强,能满足特殊处理需求,具有很好的可扩展性、可升级性和易维护性。

  二、系统硬件设计

  考虑到系统的二次开发性本系统采用DSP开发方案,选用TMS320C6713芯片作为系统主处理器,该嵌入式系统能完成视频图像信号的采集、处理、压缩、编码、显示、存储等一系列功能。

  本图像处理系统由底板与子板两部分组成,底板主要由DSP处理器TMS320C6713、一片256K×16bit Flash,四片4M×16bitSDRAM、外部存储器接口F(External Memory InteRFace)和其他通用外设接口如RS-232,音频接口等组成。子板是在底板的EMIF上扩展出来的,主要由视频解码A/D芯片、采集和显示时序CPLD等。

  (一)CCD摄像头用来采集模拟视频图像数据。

  (二)视频解码A/D芯片Philips SAA7113将模拟视频电视信号(本系统PAL制)数字化。输出为符合CCIR.601标准的数字视频码流。

  (三)FIFOAL422B作为A/D与C6713DSP之间的数据缓冲,使A/D的转换速度与DSP读取A/D数据的速度匹配。

  (四)TMS320C6713DSP为主处理器,实现对视频数据的压缩编码处理。在存储FIFO,存储SDRAM和压缩码流输出SDRAM采用DMA方式进行数据传输,可以提高数据传输的速率。

  (五)SDRAM作为DSP的片外扩展存储器,用于存储A/D的图像数据,中间过程的部分数据以及压缩后的图像数据。选用了4片ISSI公司的4M×16bit SDRAM芯片IS42S16400,构成了一个8M×32bit的外部存储器。映射到DSP的CE0存储空间。

  (六)Flash 采用芯片256K×16bit的AM29LV400B,用于DSP上电或复位后的程序加载。

  (七)CPLD采用Laitiice公司的LC4821V,作为视频A/D对FIFO进行写操作,DSP对FIFO进行读操作的时序控制。
图像采集与存储关键问题与解决方法 #e#

  图像采集与存储关键问题与解决方法:

  本设计中解码CCD摄像头的模拟视频信号是采用专用的模拟视频信号解码器SAA71113, SAA71l13视频解码器是双通道模拟预处理电路、自动钳位和增益控制电路、时钟产生电路、数字多标准解码器、亮度/对比度/饱和度控制电路、彩色空间矩阵的组合,是一款功能完善的视频处理器。SAA711l3只需要单一的3.3V电源供电,与C6713的I/O电压一致。

  SAA7113A接收CVBS(复合视频)或S-video模拟视频输入,可以自动将PAL、SECAM、NTSC模式的彩色视频信号解码为CCIR-60l/656兼容的彩色数字分量值,器件功能通过I2C接口控制。图像采集过程可以全部在后台完成,基本上不需要CPU的干预,可以节约大量的CPU时间。但是这样设计有一个难点:由模拟视频信号解码得出的数字视频信号数据量非常大,而且由于是实时视频信号,所以数据输出速率也非常高;但是相反,DSP外部存储器接口的读出速率却比较慢。为了解决这个问题,本设计采取是高速FIFO,对数据进行暂存以缓解速度上的差异,即采用FIFO来暂存10行图像数据,视频解码器直接向FIF0中写入图像数据。当FIFO中写入了10行图像数据后,由CPLD向DSP发出中断INT4请求;同时,DSP接到中断请求后,启动DMA方式将10行图像数据从FIFO中读入到其外部RAM中存放。这样在采集的同时,DSP就可以读取已采集的10行数据,而不必等待一帧图像数据采集完成。这样提高DSP的处理效率。CPLD主要控制解码器向FIFO中写入数据以及DSP从FIFO中读出数据。

  系统可以采集到一帧图像的尺寸为320点/行*240行,从SA71113输出的是4:2:2的YcrCb数据格式,一个像素用2个字节表示,一个字节表示Y,另一个字节为Cb和Cr,那么总的数据量为320×240×2=150KB。对于亮度信号,每个像素Y占一个字节,一行共320个字节,用320个存储单元存储一行的Y数据,对于色度信号Cb,一行共320点,每两个像素共用一个色度信号Cb,占一个字节,共160个字节,用160个字节单元存放一行的数据,对于色度信号Cr,存储格式与Cb一样。这样一帧图像数据需要的缓冲区大小为:320×240+160×240×2=150KB。对此选用了8M×32bit的SDRAM,而且选取用了具有3Mbit缓冲的FIFO。

  三、JPEG压缩编码算法原理与实现

  JPEG压缩编码主要由预处理、DCT变换、量化、Huffman编码等流程构成。

  JPEG压缩编码时,需先将原始YcbCr空间的二维图像分成8×8的数据块,然后将各数据块按从左到右,从上到下的顺序分别进行DCT变换、量化、“之”字型(Zig-Zag)扫描和Huffman编码(量化和Huffman编码分别需要量化表和Huffman表的支持)。

  DCT优化的实现

  DCT变换的快慢决定了整个JPEG算法的速度。因此,采用了行列法来减少计算量。将8×8数据块的DCT转换为16次一维8点DCT变换,只要提高一维DCT的速度就可以提高二维DCT的速度。因此将DCT算法分成两级运算,即第一级蝶形运算,第二级乘法累加运算,减少了运算级数,这样利用DSP的专用指令乘累加运算大大优化了DCT算法。

  四、结束语

  本文以上述算法和流程为基础,设计以DSP的开发环境,实现JPEG的编码算法,并进行了优化。与基于ASIC的方法相比,具有通用性强、灵活高效的特点。图3为在dsp的CCS调试环境下,采用C和汇编混合编程,对采集的320*240*8位的灰度视频图像进行JPEG标准压缩后复原的图像。

  从上面的结果可以看出,整个压缩系统基本上可以实现对视频图像压缩编码。对本算法进行适当修改,可以应用到数码相机,手机等多种嵌入式系统中。同时,该压缩系统可以通过PCI总线控制,将压缩后的码流通过JPEG文件的形式传输给PC机。另外,该压缩系统可以成为一个通用的视频图像采集压缩平台,在该平台上可以实现JPEG2000,H.263,MPEG-2等多种多媒体压缩标准。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 报名中:IIC Shenzhen - 2022国际集成电路展览会暨研讨会


  • 相关技术文库
  • 处理器
  • DSP
  • CPU
  • GPU
  • 针对在高速系统中可靠性设计应注意的若干问题

    针对在高速DSP系统中PCB板可靠性设计应注意的若干问题。电源设计高速DSP系统PCB板设计首先需要考虑的是电源设计问题。在电源设计中,通常采用以下方法来解决信

    昨天
  • 基于高速DSP电路的PCB抗干扰设计

    高速系统中,噪声干扰的产生是第一影响因素,高频电路还会产生辐射和冲突,而较快的边缘速率则会产生振铃、反射和串扰。如果不考虑高速信号布局布线的特殊性,设计出的电路

    昨天
  • GPU峰值电流控制技术

      1.引言  超大规模高性能并行图像处理器常常集成了数十亿计的晶体管,工作频率达GHz以上。这样当处理复杂图像应用程序时,GPU将在微秒时间内急剧上升到数百瓦

    09-23
  • 基于LEON3开源软核处理器的动态图像边缘检测SoC设计

      边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。边缘检测是图像处理和计算机视觉中,尤其是特征提取中的一个研究领域

    09-22
  • DSP器件与通用处理器(GPP)的区别?

    DSP器件与通用处理器(GPP)的区别

    09-22
  • CPU使用率飙升至100%真正原因?

    嘿!小伙伴们,如果你们在使用电脑的时候,电脑突然变得异常卡顿、死机、加载很慢,那赶紧去看看电脑的cpu使用率! 谈到cpu,我们都知道它是电脑的运算核心,也是电脑的控制核心,是每台电脑中的最重要的一个硬件。 当它的使用率过高就会出现电脑运行不流畅,

    09-20
  • TMS320C 6678 DSP供电电路

      TMS320C6678DSP是TI最新发布的一款基于KeyStone架构的DSP,芯片内有8个内核,工作速度可达10GHz.随着这款产品各方面的性能指标增加

    09-16
  • 高速DSP系统PCB板的可靠性设计分析

      随着微电子技术的高速发展,新器件的应用导致现代EDA设计的电路布局密度大,而且信号的频率也很高,随着高速器件的使用,高速DSP(数字信号处理)系统设计会越来

    09-16
  • 基于多核DSP的并行软件开发

      弹载信息处理系统是一种实时嵌入式数字处理系统,用于对弹载导引系统接收信号进行分析处理,实现对目标信号的检测、截获和跟踪以及目标信息的提取,是弹载雷达导引系统

    09-14
  • 汉语语音识别系统的实现方式

      语音识别是机器通过识别和理解过程把语音信号转变为相应的文本文件或命令的高技术。作为专门的研究领域,语音识别又是一门交叉学科,它与声学、语音学、语言学、数字信

    09-13
  • PGA封装的特点

    09-09
  • 实时姿态数据采集系统设计

      1引言  数据采集是信息处理的重要环节。在野外试验系统中,试验平台的姿态及运动状态信息测量对试验结果具有较大影响,因此,对试验平台的姿态信息进行实时采集具有

    09-09
下载排行榜
更多
广告