|
?
随着微处理技术的发展,专用的图像压缩/解压缩ASIC芯片不断出现。以前,图像压缩技术主要是基于DCT分块变换编码,这种方法的弊病是无法得到高压缩率,如果提高了压缩率,图像质量就会大大降低。一种是基于微机平台的实现方式,图像数据通过微机软件或者利用基于微机总线的图像处理卡进行压缩编码,并且可以通过PC网络进行数据传输;另一种抛开了微机平台,应用DSP为主的微处理器算法对图像进行压缩/解压缩的编/解码处理。随着微处理技术的发展,专用图像压缩/解压缩芯片涌现出来,图像处理算法集成于ASIC之中,简化了脱机图像系统的设计和实现。
ADV611是AD公司推出的新一代基于小波理论的视频压缩解压缩芯片,是一种低价、单片、多功能、全数字的CMOS-VLSI器件,120个引脚,采用LQFP封装,如图1所示。ADV611支持对CCIR-611数字视频进行高画质实时压缩解压缩,压缩倍数从视觉无失真感到7500倍,并能获得比较好的主观评价效果。压缩的数据率是由输入的数据率和被选择的压缩率决定的,靠与之相连接的片外DSP或主机根据当前场统计特性计算量化步长值。ADV611能获得近乎稳定的压缩比特率,片内集成了数字视频接口、主机接口和在片SRAM等,主要应用于闭路电视等。
在本脱机视频图像编/解码系统中,DSP作为控制核心,一方面要管理ADV611、存储器、外围控制单片机和通信接口,另一方面要对ADV611的图像压缩效果进行调节,对数据速率实时控制。DSP如何能高效地完成这些控制任务,是本视频编/解码系统实现的关键。由于TMS320C542具有高速的运算能力和丰富的接口资源,是一种集数据处理和通信功能于一体的高速微处理器,所以本系统的DSP选择了TMS320C542.
1 系统总体结构
图1给出了系统总体结构框图。在图1中,原始PAL制式的视频信号经过图像采集端的视频A/D转化为CCIR656格式(8位27MHz)的数据流,再通过ADV611.A进行小波压缩编码。DSP.A从ADV611.A中读出图像数据并且在数据存储器中缓存,根据通信设备的速率,DSP.A通过通信串行接口将压缩编码的图像数据通过用户的通信设备发送到图像回放端。图像回放端的DSP.B从串行接口接收到数据后,先在存储器中缓存,然后依据ADV611.B的数据申请,将压缩视频数据发送给ADV611.B解压。ADV611.B恢复出的图像数据仍以CCIR656的标准格式发送给视频D/A转换为视频模拟信号,最终由监视器回放出来。
本脱机视频编/解码系统设计了在图像回放远端的用户对图像采集前端的远程控制功能。在图像回放端,用户通过控制器将控制命令发送给单片机B,然后这些命令经过DSP.B和通信设备发送到图像采集前端的DSP.A.DSP.A将控制命令分为两类。第一类是图像亮度、对比度、色饱和度的调节命令和摄像机焦距、云台运动的调节命令,DSP.A通知单片机A,最后由单片机A控制视频A/D芯片和摄像机完成命令。另一类命令是调节图像帧速率和小波图像处理效果的命令,DSP.A直接设置ADV611.A的相关寄存器实现命令。
2 DSP与视频小波编/解码芯片ADV611
TMS320C542是美国TI公司C54x系列DSP中的一款。它是16位定点运算的高速微处理芯片,运算速度为40MIPS,工作电压为5V,片内RAM有10K字,是该系列中片内RAM较大的。C542主要的外围硬件接口功能如下:并行IO接口,包括16位地址线和16位数据线。地址线是单向的输出引脚,数据线为双向引脚。协该接口工作的还有数据区选通信号DS、程序区选通信号PS、IO端口选通信号IS、存储访问的数据锁存信号MSTRB、IO端口访问的数据锁存信号IOSTRB和读写信号R/W.5条外部中断信号线,其中有一个是不可屏蔽中断,其余的4个是可屏蔽中断。1条程序条件跳转控制输入线和1条外部标志信号输出线XF.
在本系统的图像采集端和图像回放端中,ADV611都是作为TMS320C542的I/O端口设备连接在DSP芯片的地址数据总线上。通过这个接口,DSP既可以读写ADV611的内部控制寄存器,又可以向ADV611读写图像压缩数据。ADV611内部的控制寄存器包含三类。第一类用于设置ADV611的工作状态,这些状态包括图像编码状态、图像解码状态以及图像处理制式等等。第二类寄存器能提供每帧图像的统计信息,它们都是只读寄存器,提供的统计信息包括亮度的最大值、最小值、总和以及每帧图像的压缩数据量等等。最后一类寄存器是数据编码压缩的控制寄存器,ADV611内部的FIFO用于控制图像压缩数据的读写操作,并能给出FIFO全空、部分满和全满信号。
包括图像压缩数据访问申请、每帧统计数据准备好和数据流出错在内的所有ADV611的处理申请信号,共用一个中断请求发给DSP.图2给出了以图像采集端为例的DSP.A响应中断后的处理流程。DSP.A首先读取ADV611.A内部的中断标志寄存器,进一步分析中断产生原因,再加以处理。因为处理图像压缩数据的时间较长,为了防止在图像数据处理期间ADV611.A新的处理申请被错过,所以在读取编码数据并写入存储器之后,DSP.A又读取了一次ADV611中断标志寄存器。
DSP.A在主程序中计算采集端ADV611.A图像压缩编码效果的控制参数。ADV611通过控制寄存器提供给用户三种控制图像效果和数据流量手段。第一种是设置量化系数,即通过改变小波分解后各个不同频带数据的量化权重,达到数据压缩目的。第二种压缩手段是减帧,ADV611可以从50帧/秒减到2帧/秒。最后一种压缩手段是品质框控制,ADV611能够在720×288的一帧图像中再设置一个显示区,并将该区之外的图像衰减,从而利用这种减小有效画幅尺寸的方法压缩数据。这个显示区域大小的设定是通过调节ADV611内部品质框数据实现的。主程序中DSP.A将依据用户的调节命令,计算修改ADV611.A中的控制寄存器参数。
3 DSP与单片机
数字信号处理(DigitalSignalProcessing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。德州仪器、Freescale等半导体厂商在这一领域拥有很强的实力。
系统对视频A/D、D/A、摄像机和用户控制器的控制管理都是慢速的。DSP作为高速的微处理器,不适合浪费大量的指令周期去处理这些慢速控制。而且TMS320C542也不具有灵活的控制I/O端口。所以本系统选择了单片机来辅助TMS320C542完成低速控制。
TMS320C542提供了一个主控接口HPI[1],通过该接口简便地实现了DSP与单片机的数据通信。例如,在图像回放端,当单片机B有了用户控制命令时,它通过HPI将命令数据填入DSP.B的指定数据区,再发出HPI中断申请来请求DSP.B处理。这个过程不会影响DSP.B正在执行的程序任务。而当图像采集端的DSP.A有控制命令要传给单片机A时,它先将命令代码数据写入DSP内部的指定数据区,然后通过HPI接口的某一输出信号引发单片机A的中断,申请单片机A去处理。在单片机A的中断中,单片机A通过HPI读取DSP指定数据区中的命令数据,而后执行相应的命令操作。
4 DSP与存储器和通信接口
存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。计算机中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。有了存储器,计算机才有记忆功能,才能保证正常工作。按用途存储器可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。外存通常是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。
本系统的串行通信接口是利用TMS320C542的缓冲串口BSP[1]加上辅助的接口驱动电路实现的。DSP在设定发送缓冲区和接收缓冲区后,BSP可以自动发送和接收缓冲区中的数据,这样就提高了DSP的处理效率。由于本系统要适应用户所选择的通信设备的传输速率,基于BSP的系统串行通信接口工作在被动方式。
为了保证图像数据在传输中不会发生数据读空和数据阻塞,系统采用了乒乓缓冲和环形缓冲技术。以图像采集端的数据发送为例,图像压缩编码数据的发送缓冲采用了图3的结构。如图3所示,两个发送缓冲区1和2在选择机制C和D控制下构成了乒乓缓冲结构。当机制D选择了一个发送缓冲区,并通过BSP串行接口自动发送数据时,选择机制C就准备另一个发送缓冲区中的数据。在设计中,发送缓冲区的写入速度大于用户最高通信速度,也就是说大于缓冲区的读出速度,所以这个乒乓缓冲首先避免了通信接口中可能的数据发送读空问题。
帧图像缓冲区1、2和3实际构成的是环形存储结构,即在正常情况下选择机制A将来自ADV611的压缩图像数据以一帧为单位,按照1-2-3-1循环的顺序不断填入缓冲区中。同样,机制B按照1-2-3-1读取缓冲区中的数据。原则上,帧图像缓冲区中数据的读取指针要落后写入指针一个缓冲区,比如当一帧图像数据经过机制B发送出去时,如果机制A正在写入缓冲区3,则新一帧发送数据的读取将从缓冲区2开始。该策略进一步保证了发送不会读空。但是如果通信速率下降、读取指针处于缓冲区2而数据写入已经更新了缓冲区3和1两帧图像时,机制A将把新的一帧数据重新填入缓冲区1,而不是缓冲区2,从而避免数据阻塞冲突。第二次写入同一缓冲区和第二次读出同一缓冲区的事件分别标志着图像压缩数据流量大于通信速率和图像压缩数据流量小于通信速率,DSP将依据这个事实动态调节图像压缩比,平衡图像压缩数据流量和通信速率。
当然采用缓冲技术保证图像数据传输的可靠性是以牺牲图像的实时性为代价的。
5 系统中DSP的总体软件结构
本脱机视频编/解码系统DSP控制程序的设计关键是如何高效地协调完成各类控制任务,避免由于任务进程安排不当而引起的图像数据传输意外中断。以图像采集端为例,如图4所示,DSP程序将BSP数据发送和数据接收控制以及ADV611的服务请求作为中断处理,以提高这些任务的响应速度。特别地,为了避免通信串口的数据丢失,程序允许BSP发送中断和接收中断在ADV611的服务请求中断中发生并立即响应。在程序的主循环部分中,DSP通过一系列的状态判断完成发送缓冲区数据写入、接收缓冲区数据读取、图像压缩编码参数计算和对单片机的命令发送的任务。
本文阐述的DSP设计方法,作为脱机视频编/解码系统的核心,在实际的应用中实现了实时系统的有效控制,保证了图像数据的可靠传输,并完成了用户的远端调控功能。通过实测,本设计使DSP还具有很多空闲时间,而且清晰的软件结构很容易添加进新的功能算法,例如动目标检测报警和动目标跟踪算法,从而进一步丰富该系统的功能。
?
|
|