APP下载

基于i.MX6无人机视频码率受控的压缩系统设计*

2016-12-09王健辛向龙张修飞

火力与指挥控制 2016年11期
关键词:码率关键帧缓冲区

王健,辛向龙,张修飞

(1.西北工业大学第365所,西安710065;2.西北工业大学电子与信息学院,西安710129)

基于i.MX6无人机视频码率受控的压缩系统设计*

王健1,辛向龙2,张修飞2

(1.西北工业大学第365所,西安710065;2.西北工业大学电子与信息学院,西安710129)

针对无人机数据链视频数据信道带宽受限要求,采用飞思卡尔i.MX6的嵌入式视频处理硬件平台,设计无人机视频H.264压缩码率受控系统,解决压缩编码的运动估计搜索范围、最大关键帧间距问题,在数据传输中采用SPI接口缓冲区码率控制机制,控制系统SPI输出码率受限的设计。实验测试表明,设计的视频处理系统视频压缩数据受控,可根据无人机无线信道设计要求,完成无人机视频压缩编码码率可控视频传输。

i.MX6,H.264,无人机,压缩编码

0 引言

随着无人机在现代战争中应用越来越多,其在战场情报侦察、指挥与控制中也开始发挥重要作用。这些都需要无人机视频处理系统能够提供清晰可靠的视频图像。由于无人机机载视频处理系统的压缩数据要与系统任务设备和遥测等多种数据复接处理,通过无线信道传输到地面站进行处理[1-2]。因此,设计的无人机视频处理系统应能够尽可能恒定输出数据到数据链复接设备,便于与系统任务设备和遥测等多种数据的复接和处理。根据以上要求,设计无人机视频码率受控的压缩系统,完成编码控制机制和数据处理缓冲机制,解决视频压缩数据恒定可控问题,满足无线信道预留带宽的目的。

针对无人机机载视频码率受控压缩系统的要求,采用飞思卡尔公司最新的嵌入式视频编解码芯片i.MX6作为数据处理的核心,摄像头采集视频数据,经H.264压缩编码、码率控制和数据缓冲机制处理后,与系统任务设备和遥测数据复接,通过无线信道传送至地面站进行处理。

本文首先介绍码率受控无人机实时视频压缩处理系统的总体设计方案;其次,分析编码器输出码率的控制方案,实现稳定码率下的高质量的视频压缩和传输;最后,介绍H.264视频压缩编码流程和编码参数的设计和设置思想,并给出系统实验测试和结论。

1 系统总体设计方案

视频压缩系统采用飞思卡尔公司生产的基于Cortex-A9内核的i.MX6双核处理器,运行频率可达1.0 GHz,集成了2D和3D图形处理器、视频编解码模块。视频编解码模块支持H.263、H.264多种视频编解码标准,具有64位DDR3储存器接口。根据系统处理需要,采用5V@4A的电源供电,设计4 GB的NandFlash存储器并且该Flash存储器支持时钟速率52 MHz的高速DDR传输。为了满足视频压缩处理需要,还设计了4×256 MB的DDR3 SDRAM存储器,可满足无人机视频压缩系统的要求。系统总体设计结构图如图1所示。

图1 系统总体设计结构图

2 H.264视频编码系统参数及缓冲区的设计

2.1运动估计搜索范围的设计

无人机系统要求实时压缩传输视频数据,在能够保证分辨率情况下,采用低复杂度,高压缩比的算法。H.264/AVC是ITU-T和ISO/IEC联合推出的视频压缩编码标准,H.264标准注重于解决高效率视频压缩和高可靠性视频传输,H.264标准支持帧间编码和帧内编码;H.264算法还具有高精度运动估计的功能,运动估计的时间占整个视频编码时间的60%~80%[3]。因此,如何根据无人机视频采集的空间和时间特性,设置合适的参数是减少压缩编码时间,提高系统实时性的关键。

无人机在执行任务时,大部分情况下巡航高度都在3 000 m左右,空中采集的视频和地面场景视频图像有较大区别。无人机大部分拍摄时间飞行姿态较平稳,视频采集中独立的运动目标在整幅图像中占的比例很小。此外,无人机的飞行速度一般是180 km/h,视频帧率在25帧/s~30帧/s,两帧之间大约有80%以上的重叠度。因此,无人机视频相邻帧之间大多存在一致的全局运动。针对这个特点,通过不断测试和实验将运动估计的搜索范围参数(MESearchRange)设计为3,搜索范围为水平(-16~15),垂直(-16~15)。运动估计搜索范围低,既能提高估计速度,减少压缩编码的时间,又不会导致图像质量的降低和压缩码率的提高,也提高视频压缩系统的实时性。

2.2最大关键帧间距的设计

最大关键帧间距是视频压缩编码中一个重要参数,关键帧多了,系统同步时很快就能搜索到I帧,但会带来压缩数据的增加。因此,需要解决关键帧同步和压缩编码数据之间的矛盾问题。关键帧即I帧,I帧采用帧内编码的方式,其特点是视频编码时相关信息都被保留,在解码时只需要本帧信息就可以解码,并且还为P帧解码提供参考。P帧表示当前帧与之前一帧的残差信息,解码时需要前一帧的信息加上残差信息才能获得当前帧图像。I帧的数据量远大于P帧,所以可以通过合理设计最大关键帧参数值gop来改变压缩比。在一定范围内增大gop值,压缩编码过程中P帧的数量增加,压缩后的数据量减少,压缩比增加;反之,压缩编码过程中的P帧的数量减少,压缩后的数据量增加,压缩比减小[3]。

在无人机视频码率受控的压缩编码软件的设计中,设计控制参数cmd_line结构体决定最大关键帧间距参数值gop。当最大关键帧参数值gop值设计为0,1,5,10,15,20,25,50时,H.264压缩编码前和压缩编码后的数据量大小,测试压缩比的对比如表1所示。

表1 gop值和压缩编码前后参数对比表

无人机数据链信道受到干扰时,复接在信道中的视频数据传输的无线信道易受噪声干扰,干扰后需要对接收到的视频压缩数据重新进行同步。因此,需要尽快在重新接收到的视频压缩数据中找到I帧数据,建立新的同步机制。在编码软件设计中,对机载视频数据进行压缩时需要对最大关键帧参数gop值进行设计。如果设计gop为0或者较大时,视频序列中I帧较少,无线信道受到干扰数据丢失或数据出错后,接收端对数据帧的解码重建,地面接收时系统同步时间长,实时性降低,所以最大关键帧gop值不能太大。但无人机系统提供的无线信道的带宽有限,需要在有限带宽内尽可能提供清晰的视频效果,最大关键帧gop值又不能太小。从表1中可以得知当gop值超过15时,随着gop值的增大压缩比提高的不明显,所以gop值应该从5~15范围内选择,本系统通过实际测试选择gop值为10,此时在数据量和信道容错上都得到了理想的实验结果。

2.3缓冲区码率控制机制的设计

2.3.1缓冲区概述

在编码器设计中,缓冲区的设计是压缩编码数据稳定传输的又一关键之一,图2是利用Elecard StreamEye Tools软件测试没有经过任何缓冲区设计的H.264编码器输出的码流分析图(红色表示I帧,蓝色表示P帧,横坐标为帧编号,纵坐标为编码率bps)。

图2 未采用码率控制机制

从图2可以直观看出,经H.264压缩后码流的码率不稳定,波动较大,这种波动较大的输出码率不能满足无线信道的数据传输要求。因此,根据SPI接口特性以及网络流媒体数据服务端处理机制[4],本文设计SPI接口的缓冲区码率控制机制,以便解决编码器输出码率波动不满足信道复接数据传输要求的问题。具体分析和设计如下。

首先,缓冲区码率控制机制是一种应用级视频质量控制技术,其思想是在编码器的输出端和视频传输复接接口之间划分一块内存作为缓冲区,通过缓冲一定的数据量来恒定输出码率。如图3所示,Input_rate(t)表示t时刻已编码的视频流入SPI缓冲区的速度,实际上等于当前编码器的输出码率。Output_rate(t)表示t时刻视频流出SPI缓冲区的速度,实际上等于SPI接口的视频传输速度。Buffer(t)表示t时刻缓冲区缓存视频数据的总量。

图3 缓冲区表示

如果缓冲区处于正常工作的状态,SPI缓冲区的输入和输出之间应该满足式(1)。

式中,Input_rate(t)表示当前编码器的输出到SPI接口的码率,Output_rate(t)表示SPI接口输出给无线复接信道的视频传输速度,而视频编码码率和复接信道视频传输速率之间又没有必然联系,如果不在应用级加以控制,很难保证流入缓冲区的数据总量等于流出缓冲区的数据总量,即不满足式(1),造成缓冲区的溢出。如果不采用控制机制,则需要将缓冲区设置的足够大,但是缓冲区过大会消耗大量系统资源,也增加图像编码的时延,牺牲系统的实时性,因此,设计需要在应用级加以控制以防止缓冲区溢出。

2.3.2缓冲区码率控制算法的设计

缓冲区正常工作的情况下,t时刻缓冲区内已缓存的视频流大小等于0~t时间段内流入缓冲区的视频流总量减去0~t时间段内流出缓冲区的视频流的总量,满足式(2)。

为防止缓冲区溢出,应该确保Buffer(t)的值不能超过缓冲区的容量上限。式(2)中,Output_rate(t)是恒定的,则只能通过调节Input_rate(t)的大小确保缓冲区内t时刻的数据总量不超过缓冲区容量上限使缓冲区正常工作。

由上述分析可知,缓冲区码率控制算法需要根据缓冲区t时刻的占有率来不断调整Input_rate(t)。Input_rate(t)是视频编码器的输出码率,在视频编码器的内部,可以通过控制量化因子的大小和编码器输入帧率的大小来控制Input_rate(t)。量化因子越大,视频编码器的输出码率越低,但图像质量会变差,所以量化因子的调节要保证在视频质量不严重受损的情况下适当增大,降低编码器的耗时,提高压缩性能[5],一般选取量化因子的调节范围是0~35。编码器输入帧率降低,则编码器的输出码率也会降低,但如果编码器的输入帧率过低,也会导致解码端视频播放的帧率受到影响,影响显示效果,一般选取编码器输入帧率的调节范围是15~25。该算法需要为缓冲区设定两个占有率的门限,分别是65%、85%。当缓冲区的占有率达到65%时,说明此时缓冲区已经有了要溢出的苗头,一般调节编码器的量化因子为23,编码器输入帧率为20。当缓冲区的占有率达到85%时,说明此时缓冲区即将要发生溢出,需要采取措施大幅度降低编码器输出码率,一般调节编码器的量化因子为35,编码器输入帧率为15。正常情况下,量化因子为23,编码器输入帧率为30。码率控制算法bitrate_ctl()具体如下:

3 H.264视频编码系统的软件设计

飞思卡尔i.MX6的视频处理单元(VPU,Video Processing Unit)是一个高性能的多标准视频编解码器,支持同时进行多视频片段的多标准编解码[6]。VPU有两个总线接口:IP总线和AXI总线,IP总线负责寄存器访问控制,AXI总线负责数据吞吐。VPU内部有一个嵌入位处理器,其控制内部的视频处理子模块并且与主处理器通过主机接口进行通信。VPU只需要较少的ARM平台资源,主处理器通过访问VPU的寄存器去初始化VPU,在帧间隙去设置参数,在应用程序中,设计了针对压缩编码的API函数,通过主处理器调用API去完成视频处理任务,以完成各种编解码工作。本系统主要利用VPU完成视频的H.264压缩编码工作[7]。

由于运动估计搜索范围和最大关键帧这两个参数对H.264视频编码器的性能有决定性的作用,因此,在H.264视频编码软件的设计中,需要对这两个参数进行合理设计,使编码器表现出最优性能。

VPU编码工作的处理流程如下:

①初始化VPU。初始化VPU硬件、分配数据结构和资源,使用VPU之前必须要进行初始化。

②打开编码器实例,在打开编码器实例之前,需要获取物理地址连续的比特流缓冲区,再获取比特流缓冲区相应的虚拟地址,然后将比特流填充到用户空间的虚拟地址中。

③启动图像编码之前,需要获取编码器进行编码操作所需要的重要参数帧缓冲区的大小。

④分配大小合适的帧缓冲区,然后通知VPU。

⑤生成高层次语法头。

⑥逐帧图像进行图像编码操作。

⑦等待图片编码操作完成这个中断事件,去检查VPU是否忙碌,如果VPU不忙,则进行下一步,否则等待。

⑧当一帧编码操作完成后,检查编码操作的结果。

⑨如果还有更多帧图像需要编码,返回第4步运行,否则进行下一步。

⑩关闭编码器实例来终止一系列操作。

⑪释放分配到的内存和资源,结束编码。

VPU进行编码操作的流程图如图4所示。

图4 视频VPU压缩编码流程图

4 实验测试

系统采用缓冲区码率控制机制来控制输出视频数据的输出码率,为了验证缓冲区码率控制机制的实际效果,本文设计两组实验测试效果。

实验一:码率控制机制测试。将未采用和采用缓冲区码率控制机制压缩处理的视频保存到本地存储介质,分别利用Elecard StreamEye Tools软件对其测试分析,结果如图2和下页图5所示。从图中可知,未采用码率控制机制来控制的输出码率波动很大,这样很不利于视频数据在带宽受限的无线信道内传输。

图5 采用码率控制机制

实验二:缓冲区机制测试。对于码率受控的无人机实时视频压缩处理系统另一个比较重要的性能,就是地面站能够实时快速解压到无线信道传输的复接后压缩数据,解压效果应能够清晰、无丢帧,利于指挥控制人员及时作出正确的决策。实际测试中,在无线信道条件较好时,两个处理机制都能够完成解压清晰的视频,图6(a)、图6(b)是未采用缓冲区码率控制机制和采用缓冲区码率控制机制进行处理的视频播放中随机截一帧的效果图。从图中可知,未采用缓冲区码率控制机制和采用缓冲区码率控制机制进行处理的视频清晰度一致,达到了设计要求。但是,实际测试中,当未采用缓冲处理机制的压缩编码进行处理,需要增大系统缓冲区,资源占用加大,相应处理时延增加,甚至出现处理系统崩溃情况。

5 结论

根据无人机数据链信道要求,设计了一种无人机视频码率受控压缩处理系统,对视频采集数据进行H.264编码,在编码过程中采用编码参数优化设计。通过实时调整量化因子和编码器的输入帧率来控制输出码率,完成缓冲区码率控制机制控制输出码率。实验测试表明系统在满足视频压缩码率可控条件下,压缩效果好,视频显示清晰,输出的码率控制稳定,满足无人机无线信道带宽受控要求。

图6 采用缓冲区的码率控制机制实验测试比较

[1]王宏志,苏令华,王晓红.基于达芬奇平台的视频编解码器实现[J].计算机测量与控制,2011,19(5):1158-1160.

[2]代健美,刘作学,耿华芳.基于DaVinci技术的H.264解码系统[J].兵工自动化,2012,31(4):47-50.

[3]毕厚杰.新一代视频压缩编码标准-H.264/AVC[M].北京:人民邮电出版社,2009.

[4]杨格兰,曹理宇,张建明.基于MPEG-4的流媒体服务器端缓冲区管理[J].计算机工程,2007,33(5):208-210.

[5]WANG H L,KWONG S.Rate-distortion optimiazation of rate control for H.264 with adaptive initial quantization parameter determination[J].IEEE Trans.Circuits System Video Technology,2008,18(1):140-144.

[6]许哲,康永,黄莺,等.无人机测控系统Turbo-MAP译码方法[J].火力与指挥控制,2015,40(4):14-17.

[7]王鹏,崔琛,张鑫.杂波环境中认知雷达相位编码波形设计[J].火力与指挥控制,2013,38(12):180-182.

Design of the Embedded Video Compression System for Video Data Rate Controlled Based on i.MX6

WANG Jian1,XIN Xiang-long2,ZHANG Xiu-fei2
(1.No.365 Institute of Northwestern Polytechnical University,Xi’an 710065,China;
2.School of Electronic and Information Northwestern Polytechnical University,Xi’an 710129,China)

For the output bit rate of UAV airborne video compression system is unstable and the bandwidth of wireless channel is limited.This paper based on i.MX6 video processing hardware platform to compress video data that have been taken by H.264 standard.Basing on the motion estimation search range,the maximum spacing design of the key frames and using buffer rate control mechanisms to control the output bit rate,the problem of wireless channel’s limited bandwidth is solved.The experimental results show that compared with the system which is not used the rate control mechanism;the proposed approach can guarantee the stable output bit rate and small amount of data after processing.

i.MX6,H.264,unmanned aerial vehicle,compression encoding

TP368.1;V279

A

1002-0640(2016)11-0148-05

2015-10-05

2015-11-07

国家自然科学基金资助项目(61101188)

王健(1972-),男,陕西西安人,博士,副教授。研究方向:视频压缩技术,阵列信号处理,雷达信号处理,三维可视化技术。

猜你喜欢

码率关键帧缓冲区
基于缓存补偿的视频码率自适应算法
基于图像熵和局部帧差分的关键帧提取方法
移动视频源m3u8多码率节目源终端自动适配技术
一种基于HEVC 和AVC 改进的码率控制算法
自适应无监督聚类算法的运动图像关键帧跟踪
基于块分类的矿井视频图像DCVS重构算法
串行连续生产线的可用度与缓冲库存控制研究*
基于状态机的视频码率自适应算法
基于误差预测模型的半自动2D转3D关键帧提取算法
基于ARC的闪存数据库缓冲区算法①