刘森
(西安美术学院影视动画系,陕西西安 710065)
随着多媒体影视资源的日益丰富与通信技术的日趋成熟,视频传输技术得以应用于更加广泛的日常生活中,视频内容的质量、信息量也攀升至新的高峰。尤其是随着近几年CCD 设备工艺的提升,产生大量的原始视频素材数据,且数据终端的人们对高清视频的需求也越来越大。因此,开发多功能、低成本、性能稳定的视频压缩传输系统有着很大的应用前景[1-3]。
视频信号具有数据量大、运算复杂的特征,因此通常采用软硬件结合的方式来设计实现视频压缩系统。DSP 与FPGA 具有实时和并行的处理方式,是实现视频信号处理的合适器件[4-6]。大量的视频数据需要几秒来读出、传输与显示,对网络传输速度提出了较高的要求,而改善压缩数据的技术方案是解决这一问题的有效途径。
摄像头采集环境光信号后,输出CVBS 格式的模拟视频信号。经过视频解码器芯片后,解码成RGB信号。此信号是图像真实的色彩数据,但数据量较大。在进入DM365芯片后,进行信息预处理。将RGB信号转换成更适合压缩的亮度色度信号YCbCr,转换公式为:
由于人眼对亮度信息比色度信息更敏感,所以还可以进一步舍弃转换得到的YCbCr 信号中的部分色度信号,从而降低信息量,转换为4∶2∶2 格式的YUV 信号,如图1 所示。
图1 YUV4∶2∶2格式
视频信号的压缩过程即为视频信号的编码过程[7-8],如图2 所示。
图2 视频信号编码流程
原始视频信号数据量较大,但同一帧图像数据内,相邻像素点仅含有较小的差异,像素值变化平缓,称为空间冗余。在相邻帧内,图像的内容大体相似,称为时间冗余。人眼对于不同信息的敏感程度差异较大,如亮度变化时,人眼能够轻易觉察到。但对于色度变化却相对迟钝,且人眼对边缘的变化关注高于对内部细节的变化。利用这种差异,可以删除人眼不敏感的信息,从而达到数据压缩的目的,这称为视觉冗余。
视频压缩即利用这几种冗余,在信号编码时舍弃一部分相对次要的信息,由此实现降低传输数据量的目的。
1.2.1 预 测
将图像帧分组,每组7 帧,以IPBBPBB的次序划分。对每组图像帧序列的第一帧,即I帧做帧内预测。通过计算像素点的预测值与取样值之差,来消除空间冗余。假设P点为当前采样像素点,在P点之前的相邻像素,如图3 所示。
图3 像素点预测
由A~G点来预测P点,得到预测值的算法如下:
求实际值与预测值之间的差值:
相较于P,传输的数据d下降了两个数量级。解码端将根据式(6)还原实际的像素值:
对一组图像帧序列剩下的帧(前向预测帧P帧与双向预测帧B帧)做帧间预测,以消除其时间冗余。帧间预测包括宏块分割、运动估计、运动补偿。先将每帧图像分割为若干N×N像素的宏块,把时域上一帧(P帧或I帧)作为参考帧,此参考帧是由反量化与反DCT 变换重建得到的。当前帧中的每一块均在参考帧中寻找一个最佳匹配块,并计算两块之间的位移(运动矢量MV)[9-11]。
寻找匹配块以最小绝对误差和ɛ为评判标准,使用全局搜索法将当前块与参考帧中所有块的像素值逐一计算绝对误差,最终求和并取其最小值,算法如下:
其中,xP为当前块中的像素值,为参考块中的像素值。
如图4 所示,求得最佳匹配后,计算当前块与匹配块间像素的相对位移平均值,即得到该块的运动矢量MV。
图4 最佳匹配与MV
在寻找最佳匹配的过程中,使用菱形搜索法以提高匹配效率,算法的过程如下:
1)从参考帧的宏块中心按照如图5 所示的大菱形模板进行搜索。判断最佳匹配点是否在中心:若是,则跳转步骤2);若否,则重复该步骤。
图5 大菱形模板
2)采用小菱形模板搜索,小菱形模板如图6 所示。判断最佳匹配点是否在中心:若是,则算法结束;若否,则跳转步骤3)。
图6 小菱形模板
3)以当前的最佳匹配点为中心,取大菱形模板判断最佳匹配点是否在中心:若是,则转步骤2);若否,则重复该步骤。
在求出的MV 与参考帧的基础上,可以得到待解码块的预测。最终,用待预测宏块的实际值减去预测值,即可求得预测残差,公式如下:
预测残差用于编码传输,而分割方式MV 则被送入接收端。
1.2.2 变 换
对原始图像的亮度宏块与色度宏块预测后,得到的信号仍为空域信号。进行两维4×4 或8×8 像素的DCT 变换,将信号转换为频域信号[12-14]。相同内容的时域信号只用一个频域信号表示,从而去除了空间冗余。每个信号均有准确的数值,x与y坐标的三维信号变换公式如下:
1.2.3 量 化
DCT 变换后,对频域的DCT 变换系数、帧间预测的预测插值和帧内预测的插值做量化,对其中的低频信息细量化、高频信息粗量化。量化过程可以用下式描述:
FQ(u,v)为量化得到的DCT 系数,Q(u,v)为量化矩阵,q为量化步长,round(·)为取整函数。
视频压缩传输系统由摄像头采集环境信息,产生的模拟视频信号首先经过OPA361 滤波放大器进行信号放大。然后送入ADV7180 解码芯片转换为ITU.656 格式的8 位色差亮度信号YCbCr,并分离出行场同步信号。视频解码信号通过CCDC 进入TMS320DM365 芯片的视频处理子系统VPSS,在这里完成视频信号的压缩编码。并经过乒乓存储后,从子系统的视频后端输出接口发送到网络接口,进入局域网中继续传输。信息传输流程如图7所示。
图7 系统信息流程图
该系统的硬件主要由TMS320DM365 开发板和外置摄像头组成,可分为六大模块:电源管理模块、摄像头模块、DDR 储存模块、DSP 视频处理模块、ARM控制模块与网络控制模块。各模块相互配合,完成信号的转换和流通。硬件配置如图8 所示。
图8 硬件组织结构
TMS320DM365 芯片内部集成了ARM926EJ-S精简指令集CPU,包括16 kB 指令缓存、8 kB 数据缓存。其用来控制开发板、管理DDR 内存数据、配置各模块初始化参数等[15-16]。
该系统采用1 GB 容量的DDR3 SDRAM 存储器,确保视频信号有足够的缓存空间。正常工作后,在DDR 芯片中进行YUV 信号的乒乓存储,将存储器分出两个块区A 与B:写入块A 时,读取块B;写入块B时,读取块A。上述两种操作循环执行。
DSP 视频处理包括DM365 前端的视频解码器和DM365 中的VPSS 部分。将视频信号CVBS的解码——IUT656 格式的YCbCr 信号转换为YUV 信号,以及将关键的视频信号压缩编码并生成码流。同时,压缩好的图像码流也暂存在这里。
该系统采用型号为DM9000A的网卡控制器,由外部20 MHz 晶振提供时钟信号。PHY 可以通过自动协商来配置网卡控制器的寄存器值,并根据实际情况发挥最优性能。DM90000A 连接到DM365 中的MII 接口,将压缩编码后的码流进行转换,然后传递到以太网中。
该系统采用实时传输协议RTP,通过以太网传输系统生成的视频流数据,该协议实际包含RTP 与RTCP 两部分。前者为实时传输协议,为终端提供连续的多媒体实时传输服务;后者为实时传输控制协议,用来监控传输质量,并负责拥塞控制与流控制。
传输中的视频信号码流除了像素码流外,还有两个重要参数集:序列参数集与图像参数集。在DM9000A的协商阶段将参数集发送给网络节点上的接收端,DM9000A 使用的端口号为8080。
在与接收端的连接建立后,首先发送参数集信息,然后发送视频码流。在得到接收端的服务质量信息后,根据实时信道状况调整压缩率等编码信息,并重新发送参数集。
基于TI 公司的TMS320DM365 音视频处理芯片与DaVinci 软件,在Linux 系统中搭建DaVinci 技术开发平台。编辑压缩应用程序后,使用命令来调试各功能模块,工作正常后连接摄像头。主机作为网络传输的终端最后收到了编码后的视频信号,对其进行信道解码与解压缩后,正常播放摄像头拍摄到的图像显示效果,如图9 所示。
图9 显示效果图
试验采集到的帧率与网络传输速度如图10所示。经过抓包测试,DM9000A的传输速度达到了40 Mbps,视频压缩后的信号帧率为5 帧/s,平均码率约为41 kbit/s。截取视频信号传输时的网络所占带宽和利用率,如表1 所示。从表2 可看出,该系统的压缩率与H.264 相比差异较小,但由于压缩效率的提升,有效降低了传输时的平均时延,较H.264 系统下降了30 ms。
表1 网络传输抓包数据统计
表2 该系统与H.264系统性能对比
图10 帧率与网络传输速度
该文基于DaVinci 技术和H.264 框架,使用优化的帧间预测匹配算法提高视频压缩效率,通过搭建硬件实现平台编写了Linux 系统下的实现程序,并将其固化于开发板中,最终实现了视频压缩传输的设计目的。仿真显示该系统工作稳定,能够有效地解决视频数据量大、不便于网络传输的问题,可以用于视频素材的直接采集与迅速传输。且具有所需携带设备少、操作简单的特点,适用于高清晰度源文件的高速实时传输。在高清素材采集、整理、智能化的编辑加工等应用场景中,具有较强的实用价值。