基于FPGA的雷达视频压缩技术研究*高分辨率/视频压缩/FPGA/实时性1引言在现代雷达系统中,随着雷达组网、无人值守雷达、雷达视频记录分析等应用的需要,雷达视频实时压缩有着广阔的应用前景,同时随着雷达视频分辨率的提高、目标复杂度及分析准确性的提高,雷达视频压缩面临着巨大的挑战。文献[1]提出的大容量雷达视频数据硬件预压缩方法一定程度上缓解了压缩运算量大而导致数据丢失的现象,但压缩率较低,运算速度较慢,不能满足目前高分辨率雷达视频压缩的需求。文献[2]提出了一种FPGA+DSP的雷达视频压缩设计方案,这种方案硬件设计复杂,且并未给出压缩结果。文献[3]提出了一种小波多分辨率分解的雷达视频压缩方案,取得了较好的压缩效果,但是并未给出具体的硬件实现,且运用小波进行雷达视频压缩硬件实现时会有较高的运算复杂度,实现较为复杂。由于雷达视频数据量较大,需要采用快速的硬件实现方法,目前常用的硬件芯片中,FPGA具有较高的并行处理能力,适合于大数据量及对实时性要求较高的场合。但由于视频信号处理算法较为复杂,且有大量浮点、矩阵等高复杂度计算,基于FPGA的视频压缩方法面临着大量实时处理改进的问题。本文将针对雷达视频实时压缩问题提出一种基于FPGA的高分辨率雷达视频压缩方法。2系统结构基于人眼对色度信号分辨率较低,视频源数据为了降低数据量,色度分量通常采用相对较低的采样率,在有效降低图像数据量且对人眼感觉影响不大的前提下,4:2:0采样[4]格式视频被广泛使用,本设计中数据源也采用YUV4:2:0的采样方式。本设计实现的结构框图如图1所示,雷达视频源数据进行数据分块、DCT变换[4-8]、量化以及熵编码操作完成压缩过程。进行数据分块的主要目的是便于FPGA处理,并减少DCT变换的数据量;DCT变换用于减少数据之间的相关性,量化用于减少编码数据范围,熵编码进一步去除数据相关性,最终组合生成编码码流。数据的解压缩流程与压缩相反,即熵编码、反量化、IDCT及数据块组合。3视频压缩系统设计3.1视频数据分块本系统中雷达视频的分辨率为1600×1200,数据量较大,FPGA内部存储空间无法实现帧缓冲,另外也为减小后续的DCT变换的运算量,本设计将视频源数据进行了分块处理。将视频分成16×16大小的数据块,也称之为宏块(MB),一个宏块包含4个8×8亮度Y块,1个8×8色差U块,1个8×8色差V块,一个MB是一个压缩计算单元,分块后结果如图2所示,视频中一帧可分解为100×75个宏块,图中阴影部分构成一个宏块。分块的视频数据采用pingpong缓冲方式存放于FPGA内部,每个缓冲区存储16行,共需要存储空间为16×1600×1.5×2=75kB存储空间。3.2DCT变换离散余弦变换(DCT:DiscreteCosineTransform)可以实现由空间域到频率域的转换,可以有效降低空间像素间的相关性,还可以将信号按不同频率排列。DCT变换在视频压缩中有着广泛的应用,如MPEG-1[9],MPEG-2[10],JPEG,H.261等标准都采用了DCT变换。本文采用的也将通过DCT变换对视频图像进行频域分析,去除各像素点空间上的相关性。另外,理论上对所有像素点都进行DCT变换可以最大限度的降低各像素点间的相关性,但由于运算量较大,通常将图像分块分别计算。对压缩计算的宏块进一步分解为对4个Y块和1个U块及1个V块分别进行8×8DCT变换。8×8DCT变换及反变换如式(1)(2)所示:式中。其中为原始数据,为变换后数据。DCT变换有大量乘法和累加处理,具有较高的复杂度,对于变换后固定的某个点即对某个特定的值,变换公式等价于下面对此式的各项分别进行分析:(1)、该部分是DCT变换最复杂的部分,对于变换后的固定输出位置,即固定,该部分结果随变化有64种可能性,可预先计算出结果,并存储为表。由于FPGA适合进行定点处理,因此将上述余弦乘法结果扩展为32位整数,即预先计算并存储为表,这样计算过程中只需要根据输入值查表即可以得到余弦乘积结果。(2)、和余弦项乘累加:在[0255]之间变化,范围较大,无法采用查表方法,必须采用乘法计算,再累加实现。(3)、DCT变换结果输出:由于DCT变换过程中,各点计算并行处理,即同时计算出64个点的值,但后续编码还需要按顺序方式编码,因此在对DCT变换后数据进行Z扫描过程中,按扫描顺序串行输出。根据以上分析,DCT变换实现方法如图3所示。3.3量化量化通常是对变换后的离散系数进行多对一映射操作,绝大多数的量化都会带来图像的损失,但是由于利用了人眼对不同频率区域图像敏感性不同的特点,选择适当的量化参数可以做到人眼无法觉察。量化是通过降低DCT系数精度的方法,去除掉相对不重要的表示图像细节的AC系数,从而减少图像数据量,达到压缩目的。量化过程就是每个DCT系数除以各自的量化步长并按四舍五入取整得到量化系数。由于雷达视频中大量小目标的存在,导致DCT变换后高频分量较多,如果进行常规的高频分量处理方法,采用较大的量化系数将导致高频数据丢失,从而恢复后视频可能会丢失目标。基于以上考虑,低频分量和高频分量采用同样的较小的量化系数16,即对DCT变换后数据统一除以16进行量化,FPGA实现时采用右移4位实现。3.4熵编码为进一步压缩数据,还需要对量化后的数据进行编码。熵编码的基本思想是用较少的码表示概率较大的信源符号,用较多的码表示出现概率较小的信源符号。本设计采用游程编码方法,其框图如图4所示。数据顺序输入编码模块单元,首先检测当前数据是否为直流系数,直流系数值通常较大,且和交流系数有较大的区别,如果是直流系数则直接进行霍夫曼编码[4,11];如是交流系数,检测当前值是否为零,若为零则游程加一,若不为零则对当前游程及数值进行编码;编码采用霍夫曼编码方式,码表采用和JPEG编码相同的码表。编码后数据输出按照JPEG编码的方法把各标记和编码后的图像数据组成一帧数据,以便于传输、存储和译码器进行译码。4实验结果及分析本文采用的FPGA芯片是ALTERA公司的StratixⅣGXEP4SGX230KF40C4,该芯片是一款高性能超大规模可编程逻辑器件,借助40nm的优势以及成熟的收发器和存储器接口技术,StratixIVFPGA的系统带宽达到了前所未有的水平,并具有优异的信号完整性。其内部包含182400个CombinationalALUTs,13.9MbitsRAM以及1288个嵌入式乘法器。硬件资源丰富,适合复杂算法及高速信号处理等对器件性能要求较高的场合。输入视频和解码后视频直观对比如图5所示,可以看出雷达视频中的目标点保留完好,压缩比经计算在10倍左右。程序编译后硬件资源占用如表1所示,可以看出资源占用较少。TimeQuest时序仿真结果显示最高流水处理速度可达150MHZ以上,即对于高分辨率视频1600x1200处理速度可达50帧/秒以上。另外,本文采用峰值信噪比(PSNR)对解压前后的视频效果进行客观评价,PSNR定义如下:其中为图像中可能最大信号值的平方,n为每个像素的比特数,MSE为原始图像和编码后图像之间的均方误差,定义为其中的分别为原始图像和压缩后的图像在处的灰度值,M、N为整幅图像的像素数。PSNR在一定程度上反映了压缩后图像质量,根据以上进行计算,压缩后视频相对原视频的PSNR33.07dB,说明采用本文方法,压缩后图像在客观上也具有较好的效果。5结束语本文针对雷达视频压缩处理过程中数据量大、目标信息较为重要的特点,设计并实现了基于FPGA的高分辨率雷达视频实时压缩方案,对其中关键模块的实现进行了详细的介绍,并从主观和客观两个方面对压缩前后的图像质量进行评价,结果表明压缩后图像质量较好,且高分辨率视频处理速度达到了50帧/秒,可以较好的满足高分辨率雷达视频实时处理的要求。张艳艳,陈苏婷