《电子技术应用》

基于DM8168的机载高清视频编码系统的设计与实现

2017年微型机与应用第5期 作者:王博,王凯
2017/4/7 11:35:00

  王博,王凯

  (中国航空无线电电子研究所,上海 200232)

  摘要:为解决在航空机载环境下,需要同时压缩记录多路和多制式视频信号的问题,设计实现了一个以TMS320DM8168为核心的,能够对多路高清视频进行采集、处理和压缩的高清视频编码系统,采用H.264算法对高清视频进行实时压缩编码。整个系统充分利用ARM核和DSP核的强大处理能力,经过对H.264视频编码算法的优化,整个系统能够同时处理1路分辨率1 600×1 200、4路分辨率720×576的视频和1路音频,视频压缩帧率最大能够达到60帧/s,满足了实时处理的要求,整个系统设计简单,扩展性好,处理能力强。

  关键词:TMS320DM8168; H.264; DSP; 高清视频

  中图分类号:TP752文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.05.015

  引用格式:王博,王凯.基于DM8168的机载高清视频编码系统的设计与实现[J].微型机与应用,2017,36(5):46-49,53.

0引言

  在航空机载领域,视频压缩记录已被广泛应用,尤其在飞机试飞过程中,视频压缩记录为记录飞机飞行状态、飞行员操作和飞行事后分析等提供了重要手段。但随着飞机的换代升级,传统的机载视频压缩记录也面临着诸多挑战,首先机载视频信号种类越来越多,在同一架飞机上,可能同时存在着多种制式的视频信号,除了比较常见的PAL制视频,更有VGA、XGA等信号;其次视频图像分辨率也越来越大,如1 024×768、1 600×1 200等,这就要求机载视频压缩记录设备能够具备同时处理多路多制式视频信号的能力和较高的算法实时性。结合以上特点,本文搭建了一种嵌入式平台,以TI公司最新推出的数字多媒体处理器TMS320DM8168芯片为开发平台,实现了同时对1路分辨率1 600×1 200、4路分辨率720×576的视频和1路音频的实时采集及H.264压缩编码,能够满足机载环境下对多路高清视频压缩编码的实时性要求。

1DM8168结构

  TMS320DM8168是TI公司最新推出的数字多媒体处理器,采用了达芬奇技术架构。DM8168处理器内部集成了1个1.2 GHz ARM CortexA8核,1个1 GHz DSP C674x核和3个高清视频协处理器(HDVICP2)[1],能够快速高效地完成对高清视频的处理和压缩。通过将这些高清视频处理功能集成在单片系统中,在高速、高效、移植性强的Linux系统中实现,不仅能够满足系统性能的要求,而且降低了开发成本和设计复杂度。

2H.264视频编码标准介绍

Image 002.jpg

  H.264是国际电信联盟(ITU)发布的一个视频压缩标准,其目的是在比以往低的位速率下,提供高质量的视频压缩技术。该标准具有高度的灵活性,可以实现各种位速率,以及各种不同的分辨率。图1所示为H.264视频编码标准的编码框架,编码以宏块为单位进行[2]。

Image 003.jpg

  H.264具有如下特性:图1H.264编码框架(1)用户可以配置运动估计的设置,以便控制编码速度和压缩质量之间的平衡;

  (2)多种宏块划分方式,如16×16、16×8、8×16、8×8、8×4、4×8、4×4,可以更好地匹配运动信息,减少块效应;

  (3)运动估计最深支持1/4像素的内插运算;

  (4)H.264使用基于4×4像素的类DCT(离散余弦变换)变换,不存在反变换时因取舍而存在的误差问题,有利于向定点DSP进行移植;

  (5)可以在视频输入格式YUV平面与YUV422隔行扫描之间选择。

  正是由于采用了这些最新技术,使得H.264成为目前性能最好的视频压缩编码器,并在诸多领域得到了广泛应用。

Image 004.jpg

3系统的实现

  3.1系统组成

  该系统主要由两部分构成:视频压缩处理模块和视频压缩控制模块。前端视频源由视频信号发生器产生,可为整个系统提供符合要求的多种制式和分辨率的视频信号;视频压缩处理模块由前后端两个功能块组成,前端主要采集接收4路标清(分辨率720×576)视频信号,然后通过FPGA实现图像拼接,将4路标清视频拼接成1路高清(分辨率1 920×1 080)视频,后端采用了TI公司的TMS320DM8168达芬奇视频SoC(System on Chip),对上述1路合成高清视频和1路分辨率为1 600×1 200高清视频信号做H.264压缩编码,对1路音频信号做ACC压缩编码,然后将压缩后的音视频数据通过PCIE总线传输给视频压缩控制模块;视频压缩控制模块通过SATA接口将数据最终存储到电子盘并实现目录化的管理。整个系统组成框图如图2所示。

  3.2系统硬件设计

  (1) 视频压缩处理模块

  视频压缩处理模块的主要功能是对前端输入的4路标清模拟视频信号、1路高清视频信号和1路音频信号进行采集、处理、编码和传输。其组成框图如图3所示。

  A/D芯片采用TVP5158芯片,主要功能有两点:对采集到的4路PAL制式模拟视频做A/D转换;采用时

  分复用技术,将输入的4路视频数据流交织成1路,通过8位数据线输出YUV数据。而对于模块上的FPGA芯片,则主要对上述TVP5158处理后输出的4路标清视频流进行拼接,得到1路高清视频流,传输到DM8168。模块上还采用了SIL9135芯片,其可将另外1路输入的HDMI信号转变为YUV数据格式,输出到DM8168,同时音频信号采用TLV320AIC23芯片转换后也传输到DM8168。这样,DM8168最终收到了1路拼接的高清视频数据、1路原始的高清视频数据和1路音频信号。

  (2)视频压缩控制模块

  视频压缩控制模块的主要功能是通过PCI-E总线接收视频压缩处理模块发送过来的音视频编码数据,并通过同步方式控制视频压缩处理模块对数据的压缩,最后将接收到的音视频编码数据通过SATA接口存储到电子盘中。其组成框图如图4所示。

 

Image 005.jpg

  控制芯片选用了PowerPC,芯片型号为MPC8377,主频为400 MHz。

  3.3系统软件设计

  3.3.1DM8168平台软件实现

  在本系统开发初期,使用的是TI公司的官方软件开发包EZSDK[3],但经过验证,目前的EZSDK版本不能支持两路高清视频的同时采集和编码,无法满足设计要求,经过调查研究,TI公司第三方合作伙伴UDWorks公司研发出了另外一种架构的软件开发包—DVRRDK。其最新版本DVRRDK3.0可以满足设计要求。因此最终采用DVRRDK3.0来开发DM8168的平台软件。从音视频数据的采集到压缩编码再到输出均在DVRRDK的架构下完成,极大地减轻了研发的难度。DVRRDK开发包没有采用OpenMax架构,而是设计了一种新的软件结构,DM8168中有多个核,比如做主控制器的ARM CortexA8,控制VPSS(Video Processing SubSystem)的ARM CortexM3,控制Video的ARM CortexM3,还有一个高速DSP核[4]。DVRRDK软件架构不但把每个核上的软件分层处理,而且还设计了不同核之间的通信机制。整个软件架构如图5所示。

Image 006.jpg

  DM8168的核间通信通过Syslink/IPC进行,任意两个核之间都可以直接通信。Link是其中的基本单元模块[5],每个Link中包含了一个基于BIOS6/Linux[6]的任务、线程、消息盒(使用操作系统的信号量实现)。对于视频流数据、原始视频数据的传递Link采用专门的接口来实现,只传递指针,而不是数据。基于这种Link结构,视频处理的流程中,所有工作量都可以比较均衡地分配到每个处理器内核上去执行。

  3.3.2H.264编码算法在DM8168下的优化

Image 010.jpg

  DM8168内部集成了HDVICP2协处理器[7],针对H.264视频编码算法提供了硬件加速器。HDVICP2中的算法模块如表1所示。

  表中各模块完成的功能如下:

  (1)IPE模块完成H.264算法中的帧内预测模式;

  (2)CALC、ECD、BS、LPF各模块完成H.264算法中的离散余弦变换、量化、变长编码、滤波等功能;

  (3)ME、MC完成H.264算法中的运动预测和运动补偿功能,既支持精度较高的全搜索运动估计算法也支持各种快速运动估计算法。

  根据HDVICP2内部各运算模块的特点,整个H.264算法流程可以根据HDVICP2的模块特点进行分解,配合DSP核强大的运算能力,整个H.264编码过程可以由DSP与HDVICP2的算法子模块共同完成。在DM8168平台下优化了H.264基本档次(BaseLine)的视频编码器,在不影响算法实时性的前提下,采用全搜索运动估计算法,搜索范围限定于32×32像素范围内,整个编码过程如图6所示。

Image 007.jpg

  首先通过帧内预测(IPE)模块获得最佳帧内预测模式,再通过帧间运动估计(ME)模块获得最佳运动矢量。由于不规则宏块如16×8、8×16的分割以及较大的运动搜索范围会使ME的执行时间大大加长,影响算法的实时性,笔者在实际设计中采用了如下的特性:宏块仅支持16×16分割方式,运动估计的搜索范围被限制在正负32整像素以内,采用全搜索方式;1/2像素搜索围绕整像素最佳运动矢量进行,取全部取样点中SAD值的最小点。DSP核负责SAD(绝对差值和)值的计算,并根据SAD值进行帧内帧间的模式判决;预测帧与参考帧相减、正向离散余弦变换(DCT)、量化(Q)、反量化(IQ)、反向离散余弦变换(IDCT)等全部由计算模块(CALC)完成,最后由熵编码(ECD)模块对残差数据进行编码。

Image 008.jpg

  同时为进一步提高算法效率,设计每个算法模块一次只处理2个宏块数据量,这样可以保证各算法模块之间按流水线并行操作,一个典型的并行流水操作如图7所示。

  从上图可以看出,从第6个时钟节拍开始,所有算法子模块都已处在并行操作的模式下,大大提高了编码速度。

  3.3.3系统控制算法

  视频压缩处理模块与视频压缩控制模块之间采用同步位的方式进行交互控制。视频压缩处理模块在压缩好一帧视频数据后,将同步位置1,视频压缩控制模块周期查询同步位,当同步位为1时,从两个模块的共享内存中以DMA的方式将音视频编码数据取走,同时将同步位置0,视频压缩处理模块在检测到同步位为0时开始下一帧数据的压缩处理。整个系统控制算法流程如图8所示。

 

Image 009.jpg

4实验结果

  本编码系统对1路分辨率为1 600×1 200的高清视频和4路分辨率为720×576的标清视频进行了编码测试,其中4路标清视频被FPGA合成为1路分辨率为1 920×1 080的逐行信号,根据航空机载视频画面的特点,本文选择了相应的视频测试序列。H.264算法采用的主要参数为:编码量化步长25,I帧(关键帧)间隔50,前向单帧预测,不支持B帧。实验结果如表2所示。

Image 011.jpg

  实验结果表明,本系统已经达到了对多路高清视频实时编码的要求。

5结论

  本文在充分分析机载航空视频压缩记录特点的基础上,以TI达芬奇DM8168多核处理器为开发平台,实现了实时多路高清编码系统,同时结合DM8168的平台特点,对H.264编码算法进行了相应优化。实验结果证明,整个系统性能优异,较好地满足了机载航空视频压缩记录的发展需求。

  参考文献

  [1] Texas Instruments.TMS320DM816x DaVinci Digital Media Processors SPRS614F[Z]. Texas: Texas Instruments Incorporated, 2011.

  [2] 沈兰荪,卓立. 小波编码与网络视频传输[M]. 北京:科学出版社, 2005.

  [3] Texas Instruments.Using the C6EZRun DSP development tool for DSP+ARM SoCs.sprabg1a[Z].Texas: Texas Instruments Incorporated, 2011.

  [4] Texas Instruments.TMS320DM816x DaVinci Digital Media Processors Technical Reference Manual[Z].sprugx8c Texas: Texas Instruments Incorporated, 2015.

  [5] 王行行.基于TMS320DM8168的视频编码系统研究与实现[J]. 红外与激光工程,2014,43(S): 213 .


继续阅读>>