APP下载

基于H.264的视频传输系统的设计与实现

2011-06-13郑庆红

无线电工程 2011年8期
关键词:码流编码器编码

郑庆红

(河北远东哈里斯通信有限公司,河北石家庄050200)

0 引言

H.264作为新一代的视频编解码标准,与以前的标准(如MPEG-4、H.263等)相比,采用了很多先进的编码技术,如帧内预测、多模式运动估计和整数变换及量化等,使得H.264编码器的压缩效率、图像的主观质量和带宽需求方面都有了显著提高,成为数字视频领域中首选的压缩标准。

随着对H.264标准的研究不断深入,高级视频压缩技术(AVC)也带动了相关领域的发展,例如高清视频会议、流媒体图像分析和数字水印等[1]。

在软交换多媒体调度系统中,视频传输系统主要完成媒体流的交换控制和视频编解码,实现实时、高分辨率的视频编解码是其主要技术难点。

1 功能模块划分

视频传输系统可以划分为发送端和接收端2个部分。发送端完成视频源的采集、编码和码流发送;接收端完成码流接收、解码和视频显示。系统框图如图1所示。

图1 H.264视频传输流程

1.1 前端视频采集模块

前端视频模块支持数字视频源文件中保存的YUV码流和摄像头采集的实时图像。

对于实时视频的采集部分,通过Windows支持的VFW(Video For Windows)接口对摄像头输入的视频进行实时捕获[2],并将其中的视频原始数据提取出来,通过图像从RGB到YCbCr色彩空间的转换矩阵,进行亮色分离后得到直接可以输入到H.264编码器的YUV原始视频流。

1.2 H.264编码和RTP传输模块

H.264编码模块作为发送端的核心,主要是根据H.264压缩协议将输入的视频信息进行实时压缩,编码模块借鉴了开源x264编码器,并在其基础上做了大量的优化工作以满足较高分辨率下视频处理的实时性和流畅性。编码模块由于其算法复杂度较高,是整个视频传输平台的关键技术难点。

RTP发送部分负责将编码器输出的H.264码流封装为RTP包,以UDP为承载,将其在网络上进行传输,RTP接收部分负责从侦听端口上接收UDP流,并解包提取其中的有效载荷,同时,RTP协议栈还提供RTP包间的同步和排序等功能。

1.3 解码及显示模块

接收端的核心为H.264视频解码模块,该模块参考FFmpeg进行设计,RTP模块将接收到的网络UDP流按照对应的网络协议进行解包,提取出相应的媒体信息,供视频解码器的输入端解码。由于H.264解码算法的复杂度相对较低,经实际测试表明,视频解码能力比较容易满足系统的实时性要求。

由于在大画面下采用普通的图形界面GUI方式将像素点逐一绘制到屏幕上的方法,将严重影响程序的执行效率,因此,显示模块采用Windows下的DirectX工具显示视频图像。

2 编解码器优化策略

为了满足视频处理中的全实时要求,编码器的编码速度必须要达到25 fps左右,这样才能较为流畅地显示实时图像,特别是在高分辨率(如640×480、704×576)的情况下,编码算法的运算量大大增加。对编码器的性能提出了更高的要求。

由于编码器采用了Intel推出的SSE2多媒体指令集,因此,指令级的优化已经达到了一定的瓶颈,将工作重点放在算法级和代码级优化上[3,4],根据H.264算法中对视频压缩质量影响不大的高级特性[5,6],进行了算法的删减和优化。

2.1 H.264编码器的算法级优化

算法级优化主要包括

①在编码帧的类型选择上,去除了B帧部分,因为编码B帧需要较大的输入缓存,并且预测算法的复杂度较高;

②在RTP协议栈的传输控制下,在编码之前不通过相关运算来重新排序输入的视频帧;

③在图像的后期处理上,为了简化计算量,去除率失真优化(RDO),因为其对稳定信道下传输的图像质量校正作用较小;

④在码率控制方面,采用一级编码方式来代替专门针对降低码率提出的二次编码方式;

⑤在运动估计方面,运动搜索矢量只选择比较常见的钻石形和六边形,关闭非对称交叉多六边形网格(UMH)和穷尽搜索(ESA)等低效方式,同时用于辅助运动估计方式的多视角视频编码(MVC)也从算法框架中去除;

⑥在图像输入量化方面,禁止使用用户自定义量化矩阵,牺牲灵活性的前提下,减少循环跳转和矩阵求逆运算的复杂度。

2.2 编码器的代码级优化

代码级优化主要包括:

①在计算DCT系数抽取分数中,用查表来代替循环计算非零DCT系数间距;

②用静态大矩阵代替从数组每次计算生成的量化/反量化矩阵,降低每次迭代运算的开销;

③将固定量化系数(QP)的流程分支从码率控制函数中提取出来,使得在VBR模式下不必额外加载码率控制函数;

④将整数变换的函数指针直接用其指向的函数代替,减少多重寻址。

2.3 H.264算法图像分片的优化控制

编码器输出的H.264码流将根据 RTP(Realtime Transport Protocol)协议封装为RTP包,然后经过网络传输到远端。网络传输是基于IP协议,所以最大传输单元(MTU)最大为1 500 byte,这其中包括至少20 byte的 IP头,8 byte的 UDP头,以及12 byte的RTP头。这样,头信息至少要占用40 byte,那么RTP有效载荷的最大尺寸为1 460 byte,为了防止RTP包在IP层被切割,因此,需要控制输出的H.264码流中图像片的大小。

根据RFC3984标准的建议,图像片输出大小的控制逻辑可以放在视频编码层VCL(Video Coding Layer)实现,也可以在网络抽象层NAL(NetworkAbstractLayer)实现。

为了提高编码器输出码流的兼容性,采用通过VCL来控制H.264码流中图像片的大小,控制流程如图2所示。

图2 VCL控制图像片大小的流程

对于RTP/UDP/IP系统,可以直接将编码器输出的NAL单元作为RTP的有效载荷,同时作为RFC3984所支持的基础封包格式,在与第三方视频设备进行互联时,具有良好的兼容性(已经与GrandStream公司的视频设备实现互通)。

3 系统性能测试及分析

3.1 测试序列

测试采用H.264标准测试模型(JM),标准模型选用不同分辨率、不同纹理、不同运动程度和附带场景切换的测试序列,能够反映常见的视频场景,从而可以较为全面地衡量系统的编码性能。测试序列的特征如表1所示。

表1 测试序列的特征表

3.2 编码性能指标

H.264编码器在不同测试序列下的测试结果表2如示。

表2 不同测试序列对资源的占用关系表

在循环测试系统编码能力的过程中,由于受测试条件的限制,CPU占用率已达极限,占据了双核中的一个核的全部处理能力。由表2可以看出,H.264编码器对于内存占用,跟图像分辨率有直接关系,图像分辨率越高内存占用量越大。

编码速度和传输带宽的需求则是衡量系统编码器的重要指标,表2数据显示,优化后的算法对视频序列的运动特征比较敏感,编码复杂运动序列所需的时间明显高于简单运动序列,平均帧率可以满足实时性的要求,同时,随着原始视频序列的运动场景复杂度的增加,码率会有明显上升。

3.3 图像质量分析

为了衡量H.264编码器在压缩过程中对图像质量的影响,与H.264标准化测试模型输出的图像文件进行峰值信噪比(PSNR)比较,限于篇幅,这里只列举部分测试序列的PSNR对比图。H.264编码器与测试模型输出的图像平均PSNR对比结果如表3所示。

表3 优化算法与测试模型PSNR对比表

由于测试模型侧重于算法的验证,编码效率较低,不做任何优化基本不具备实用价值,但是它能较为真实地反映H.264算法对图像压缩过程中的熵损失,以此为标准,可以衡量编码过程中对图像质量的影响。

由表3可以看出,经过算法优化后,编码器在提高编码速度和效率的同时,会造成图像压缩质量在一定程度上的下降。

在分辨率为4CIF(704×576)的不同视频场景下,与标准测试模型相比较,PSNR平均下降约为0.5 dB,尤其在背景纹理比较复杂的图像压缩过程中,图像质量的下降相对较为严重,达到0.6 dB,这部分质量的下降主要集中在后景中的细节,而对于图像中的前景,视频质量从主观视觉来看,相差无几。

4 结束语

通过对编解码器的算法和代码级优化,在保证图像压缩质量的前提下,显著提高了视频压缩速度,满足了视频处理的全实时要求。通过性能比较测试可以看出,该优化算法在可视电话、视频会议等视频等系统中具有重要的实用价值。

目前,该优化算法已经应用于某视频监控项目中,取得了良好的实际效果,对今后跨平台(如DSP、PPC)的视频处理以及多媒体业务方向具有积极的参考意义。

[1]章毓晋.图像处理与分析[M].北京:清华大学出版社,2001.

[2]王仁龙.基于VxWorks和DM642视频采集压缩系统的技术研究[J].计算机工程与应用,2007,43(11):216-218.

[3]ITU-T Recommendation.H.264 Advanced Video Coding for Genetic Audiovisual Services[S],2005.

[4]HUANG Yu-wen,CHEN Tung-chen.Analysis Fast Algorithm and VLSI Architecture Design for H.264/AVC Intra Frame Coder[J].IEEE Transactions on Circuits and Systems for Video Technology,2005,15(3),378-401.

[5]王 篙,薛 全,张 颖,等.H.264视频编码新标准及性能分析[J].数字电视与数字视频,2003,6(2):78-81.

[6]周 怡,吴 昊,方向忠.针对硬件实现的H.264视频编码算法改进[J].电子技术应用,2004,7(12):110-112.

猜你喜欢

码流编码器编码
融合CNN和Transformer编码器的变声语音鉴别与还原
数字电视TS码流协议简要分析
基于SAR-SIFT和快速稀疏编码的合成孔径雷达图像配准
《全元诗》未编码疑难字考辨十五则
子带编码在图像压缩编码中的应用
高清网络摄像机图像延迟分析及解决方案
Genome and healthcare
基于FPGA的同步机轴角编码器
应用旋转磁场编码器实现角度测量
基于数字信号处理的脉冲编码器