APP下载

基于以太网的嵌入式高清视频编解码器的设计

2015-04-19郭翠娟马瑞铭武志刚

天津工业大学学报 2015年3期
关键词:解码高清嵌入式

郭翠娟,马瑞铭,武志刚

(天津工业大学电子与信息工程学院,天津 300387)

基于以太网的嵌入式高清视频编解码器的设计

郭翠娟,马瑞铭,武志刚

(天津工业大学电子与信息工程学院,天津 300387)

针对提高嵌入式视频设备图像清晰度的需求,结合H.264视频压缩技术和嵌入式技术研制了一种高清视频编解码器,提出了基于以太网的嵌入式高清视频编解码器的设计方案,以Hi3517和Hi3531为核心,设计了高清视频编解码器的硬件;在Linux开发环境下采用C语言编写了高清视频编解码器的软件;研究了H.264帧内预测算法,提出了一种针对本文中视频编解码器的H.264帧内预测优化算法.结果表明,该高清视频编解码器在没有明显降低图像质量的前提下,显著减少了帧内预测算法的复杂度,提高了视频编码的有效性和实时性.搭建了基于以太网的嵌入式高清视频编解码器的测试平台,并且进行了调试与实验.实验结果表明,该高清视频编解码器可以实时地完成对高清视频的采集、编码、传输、解码和播放.

嵌入式;高清;视频编解码器

随着计算机技术、视频技术和网络技术的蓬勃发展,视频编解码器在安防监控、医疗卫生、视频通信等领域应用的也越来越广泛,而高清视频编解码器逐渐成为未来应用和发展的重点[1-3].提高图像的分辨率和帧率的同时也带来了庞大的图像数据量,但是现在市场上的大部分嵌入式视频编解码器不具备高清视频数据处理能力[4-5].Hi3517和Hi3531是海思半导体公司推出的第二代高性能多媒体处理芯片,具有高集成、可编程、支持H.264和MJPEG等多协议的优点[2],可广泛应用于实时视频通信、数字图像监控、网络摄像机等领域.本文基于Hi3517和Hi3531芯片,结合H.264视频压缩技术、嵌入式技术和网络技术,提出了基于以太网的嵌入式高清视频编解码器的设计方案.

1 高清视频编解码器的设计

1.1 高清视频编解码器硬件设计

高清视频编解码器的硬件由视频采集模块、视频编码及传输模块、视频解码及传输模块、视频输出模块和电源模块组成.如图1所示为该高清视频编解码器的硬件组成框图.

图1 高清视频编解码器硬件组成框图Fig.1 Hardware block diagram of HD video codec

视频采集模块实现了对视频数据的接收和视频格式的转换;视频编码及传输模块实现了视频的H.264编码并将码流发送至以太网;视频解码及传输模块实现了从以太网上接收并解码视频码流;视频输出模块实现了视频格式的转换和视频的输出显示;电源模块实现了对各个功能模块的供电.

1.2 主控芯片简介

Hi3517和Hi3531是由华为海思公司推出的专门针对高性能音视频业务,并提供灵活丰富的应用业务的微处理器芯片.Hi3517和Hi3531在性能和功能的实现上差异不大,Hi3517在硬件架构上只有一个ARM核,而Hi3531则是采用双ARM核架构.本文将重点介绍Hi3531芯片特点.

Hi3531采用了高性能的ARM Cortex-A9双核作为处理器,用来完成系统任务和部分音视频处理功能,最高频率可达930 MHz,集成了MMC/SD/SDIO控制器,高性能DE3/3DES/AES加解密安全引擎,支持802.3标准的10/100 Mbit/s的以太网口(可同时支持半双工和双工模式),支持Nor Flash和Nand Flash,具备4个UART接口,2个USB2.0接口,GPIO接口和一个SPI控制器.ARM Cortex-A9处理器具有独立的32KB L1指令Cache,32 KB L1数据Cache,共享256 KB L2 Cache,内置MMU,支持Linux操作系统,

1.3 高清视频编码器应用程序

高清视频编码器的应用程序调用海思媒体处理函数库和Linux系统函数,完成对软件系统的初始化和图像的编码等相关功能的执行.该高清视频编码器应用程序软件流程图如图2所示.

图2 视频编码器软件流程图Fig.2 Flow chart of video encode software

在高清视频编码器的应用程序中,为了描述图像数据在接收、编码过程中不同阶段的状态,定义了输入设备、输入通道、编码通道、编码通道组等数据结构.编码程序启动后完成以上数据结构的初始化.一帧图像先由输入设备获取,传送至输入通道,最后进入编码通道,调用编码器并按照预先设置的编码参数完成图像编码.图像码流依据H.264的标准,采用网络抽象单元(network abstraction layer unit,NALU)为单位,视频编码应用程序中分析处理NALU码流数据包长度以适配网络最大传输单元的长度(MTU),针对NALU长度大于MTU的数据包的问题,本设计采用FU-A(Fragmentation Unit-A,分割分组)机制对其进行拆包处理.

1.4 高清视频解码器应用程序

高清视频解码器应用程序包括3个线程:1个主线程和2个次线程.主线程完成解码程序环境参数的配置;一个次线程负责从网络中接收图像数据包;另一个次线程则负责重组图像数据包并且完成图像解码工作.

本设计中将网络接收功能与视频解码功能独立分开为2个线程,避免了在单线程中由于视频数据流量的增大,解码器和网络接收模块工作不协调,导致解码后图像质量降低的情况.

1.4.1 多线程间链表通信机制

网络接收线程与视频解码线程之间利用链表队列机制作为媒介完成图像数据的交换.链队列机制使用2类链表:一类为data-list(数据队列),其链表中每个结点存放一帧或几帧图像数据,结点严格按照图像数据顺序的依次排列;另一类为manager-list(管理队列),其链表中每一个结点都是一个data-list,manager-list按照FIFO(First In First Out,先进先出)原则处理结点数据.线程间通信工作示意图如图3所示.

图3 链队列工作示意图Fig.3 Schematic diagram of chain queue

1.4.2 视频数据重组

视频解码器需要将接收到的FU-A数据包重组还原完整的NALU视频数据包,这样视频解码模块才能识别H.264视频数据,完成图像解码.

从网络中接收的图像数据包分为2种:一种是单个NALU;一种是分片FU-A.单个NALU无需重组数据包,直接将其放入视频码流Buffer即可.针对分片的FU-A,视频解码程序要将不同的FU-A头部信息置换为相应的NALU头部信息,并把转换后的视频数据按顺序存入码流Buffer中.数据重组的流程图如图4所示.

图4 数据重组流程图Fig.4 Flow chart of data reorganization

1.5 Web服务器

本设计采用Boa作为嵌入式Web服务器,提供基于Web页面的网络参数和视频参数设置界面[6-7].Web页面的功能是使用其内嵌的表单提交配置数据,浏览器收集到提交的数据后调用相关的CGI程序进行数据处理,并最终将处理后数据通过浏览器反馈在Web页面上.采用HTML语言编写Web页面及内建表单时,由ACTION属性来指定相关的CGI程序,如ACTION=cgi-bin/reboot,由METHOD属性来指定所提交表单数据的方式,即METHOD=GET(POST).

可配置的网络参数包括设备本机IP地址、目的IP地址、子网掩码、网关和设备MAC地址等;可配置的视频参数包括视频分辨率和帧率,如1024×768、1280 ×1024、1440 ×900、720P50、720P60、1080P50、1080P60.参数配置完成后,通过CGI程序将新的参数写入应用程序的配置文件,高清视频编解码器的应用程序将会在下一次启动的时候读取新的配置参数.此外在参数配置界面中,还可以远程控制设备的状态,当一个设备工作在不正常的状态时,可通过该设备的参数配置页面手动控制这个设备的状态,重启或关闭设备.Web软件流程图如图5所示.

图5 Web软件流程图Fig.5 Flow chart of Web software

2 H.264帧内预测算法优化

2.1 H.264帧内预测算法复杂度分析

在帧内预测中,H.264视频压缩标准采用拉格朗日率失真优化(Rate Distortion Optimization,RDO)策略进行最优编码模式的选择[8-9].为了达到最佳的编码性能,实现高质量和高压缩比,H.264会遍历所有可能的编码模式,选择率失真代价最小的模式作为最佳帧内预测模式[10-11].RDO方式的具体选择过程为先扫描16个4×4的亮度宏块,分别取得相应的最小率失真值,然后计算1个16×16宏块的最小率失真值,最后再扫描8×8的色度块并取得最小的率失真值.整个编码模式选择过程总共要进行M8×(16×M4+M16)=592次RDO计算(M4、M8、M16分别为4×4预测模式,8×8预测模式,16×16预测模式),其计算量很大.本文将会对占据计算量复杂度较高的4×4帧内预测模式选择算法进行优化.

2.2 H.264帧内预测算法优化

帧内预测是在空间域上进行的预测编码,可以除去相邻块之间的空间冗余度,取得更为有效的压缩.对于亮度块有4×4和16×16两种尺寸,4×4亮度块有9种可选的帧内预测模式,16×16亮度块有4种帧内预测模式.在4×4亮度块的9种帧内预测模式中,除了模式2为直流预测(DC)模式,其他8种帧内预测方向图如图6所示.

图6 亮度块帧内预测8个预测方向Fig.6 Eight predictionaldirection in luna block

利用相邻宏块预测模式之间具有很强的相关性的理论,根据当前4×4块的左边块和上边块的预测模式可以预测当前块最有可能的预测模式.如果模式0为次优模式的话,则最优模式往往就是临近模式0的模式5或者模式7,由于模式2(DC)的特殊性,因此将DC模式也加入到最优模式的预测范围内.如果最优模式在模式0和模式4之中的一个,则模式0的次优模式集合和模式4的次优模式集合的交集即模式5和DC模式是最优模式的候选模式.基于这个理论可首先进行粗略的模式选择,选取预测图中方向性比较强的几个模式,垂直预测模式0,水平预测模式1,以及下左对角线预测模式3,下右对角线预测模式4,然后使用简化的代价函数SATD(Sum of Absolute Transformed Difference,哈达玛变换后再绝对值求和)计算它们相应的RD(Rate Distirtion,率失真)性能,取其中值较小的两个和DC模式加入到预测范围中,然后根据这2个模式在预测图中的位置及相关性判断是否需要增加新的模式到预测范围中;再使用RDO对预测范围内的模式进行精确的模式选择,计算预测范围中各个模式的率失真代价,取率失真代价最小的为最优模式.

SATD的值通过对预测差值进行哈达玛变换,然后计算变换系数的绝对和得到的,即

式中:T代表哈达玛变换;s(x,y)和c(x,y)分别代表当前宏块和预测宏块的像素.

RDO由公式(2)计算:

式中:SSD表示原始块和重建块之间像素差的平方和;λ表示拉格朗日因子;R表示所需传输的比特数总和,这些比特流中包括残差块、预测模式和运动矢量信息等.

由于SATD与RDO性能有一定的相关性,因此可以使用SATD预先排除掉一些可能性较小的预测模式,从而降低计算复杂度,然后再采用RDO对筛选出的粗略的预测模式进行精确选择,以便确定最终的编码模式.

3 测试

为了测试视频编解码器的有效性、可靠性与实时性,首先搭建视频编解码器工作环境,使用浏览器分别登录视频编码器、视频解码器的设置界面,配置相应网络参数以及视频参数.在测试中,本设计选取了8 000帧分辨率分别为1024×768和1280×1024,帧率为30 fps的VGA格式的动态图像和分辨率分别为1280×720、1920×1080,帧率为60 fps的HDMI格式的动态图像作为测试视频序列.选取的测试视频序列具有较强的代表性,视频序列中具有多个运动物体,且背景复杂.测试视频序列的编码帧结构为IPPP,搜索半径为16像素,其余编码参数保持默认值.

利用Linux系统Proc调试信息和海思SDK调试接口,分别统计了测试图像序列中的接收帧率、画面延迟时间、传输带宽,如表1所示;在算法性能测试中,统计了分别在量化参数QP为28、32,分辨率为1280×720、1920×1080下编码先后图像PSNR的变化率、生成码率的变化率和编码时间的变化率测试结果如表2和表3所示所示.

表1 测试结果Tab.1 Test result

表2 QP=28时算法性能比较Tab.2 Algorithem performance comparison when QP is 28

表3 QP=32时算法性能比较Tab.3 Algorithem performance comparison when QP is 32

测试结果表明,该高清视频编解码器针对不同分辨率的输入图像,不仅数据带宽占用率较低,而且显示画面清晰流畅,实时性表现良好.算法优化测试中,QP越小,图像量化的精度也就越高,编码器工作负载也就越大.在QP为28时,经过算法优化的编码重构图像相较于未经过算法优化的编码图像,在PSNR上降低了0.428,码率增加了1.429%,但是编码时间减少了24.27%;在QP=32时,优化算法对编码器性能的提升更加明显,经过算法优化的编码重构图像相较于未经过算法优化的编码图像,在PSNR上降低了0.277,码率增加了1.201%,但是编码时间却减少了36.35%.

为了对比本设计中视频编解码器与其他视频编解码器平台的性能差异,选用了帧率、量化参数、图像内容相同但分辨率不同的图像作测试序列,分别输入DM6467、XC3S400和Hi3517&Hi3531平台,统计解码后重构图像的信噪比(PSNR),如图7所示.

图7 不同视频平台编解码性能对比Fig.7 Coding performance comparison of different video platform

由图7可见,随着图像分辨率的增加,DM6467和XC3S400在解码后图像的PSNR上具有较高水平,其中DM6467和XC3S400分别代表了DSP和FPGA视频编解码平台;以Hi3517和Hi3531为代表的ARM视频编解码平台在经过算法优化后取得了和DM6467相当的解码后重构图像的PSNR.但是Hi3517和Hi3531在开发成本上相较于DM6467和XC3S400却有较大的优势.

4 结论

本设计实现的基于以太网的嵌入式高清视频编解码器可以完成对1024×768、1280×1024、720 P、1080 P等高清分辨率视频的采集、编解码、传输和播放.其具有清晰度高、实时性好、成本低廉等优点,可被应用在安防监控领域,提升了实用价值,降低了经济成本,具有显著的经济效益和社会效益.但是不足之处在于用户无法控制视频的播放过程.希望能在以后的工作中找到合适的解决方法,进一步优化该高清视频编解码器的功能.

[1]蔡丽艳.基于H.264嵌入式网络视频监控系统的研究与实现[D].南京:南京邮电大学,2013.

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

[3]蒋勇,阳俊,付锡林,等.基于H.264的视频监控系统的研究和设计[J].湖南城市学院学报,2013,22(2):75-78.

[4]HONG Seongsoo.Embedded linux outlook in the PostPC industry[C]//Object-Oriented Real-Time Distributed Computing. 2003:37-40.

[5]张正华,胡方来,苏波,等.基于H.264的嵌入式视频解码研究[J].无线电工程,2013,43(1):46-49.

[6] 毛磊冰.基于H.264视频监控系统的设计与实现[D].武汉:武汉理工大学,2012.

[7]姜超.基于ARM-Linux的嵌入式Web视频监控系统研究与实现[D].西安:长安大学,2012.

[8]KIM Joo-won,BAE Kuk-ho,LEE Jae-cheno.Embedded linux implentation on a commercial digital TV system[J].IEEE TransctionsonConsumerElectronics,2003,49(4):1402-1407.

[9]STEHLER T,BERRIEL A.Arcitecture of an HDTV Intraframe Predictor for a H.264 Decoder[C]//2006 IFIP International Conference.2006:228-233.

[10]黄晃,沈燕飞,李锦涛.降低视频编解码复杂度的算法研究[C]//中国数字音视频编解码技术标准工作组(AVS)第四次会议文档AVS_M1056.2003.

[11]CHENG Chao-Chung,CHANG Tian-Sheuan.Fast three step intra prediction algorithm for 4×4 blocks in H.264[C]//International Symposium on Circuits and Systems.Washington,DC:IEEE Computer Society,2005:1509-1512.

Design of an ethernet-based embedded high-definition video codec

GUO Cui-juan,MA Rui-ming,WU Zhi-gang
(School of Electronics and Information Engineering,Tianjin Polytechnic University,Tianjin 300387,China)

According to the demand of improving image resolution in the embedded video equipment,combined with H.264 video compression technology and embedded technology,an embedded high-definition video codec based on ethernet was designed with Huawei Hisilicon multimedia processor as core chip in hardware platform;in the Linux development environment,C language is used to write the software of the high definition codec.Based on the H.264 intra-frame prediction algorithm,an optimization algorithm of H.264 intra-frame prediction is put forward.The result shows that this high-definition video codec can reduce the complexity of the intra-frame prediction without significantly reduced under the premise of image quality,and finally improve the effectiveness of video coding in real time.An embedded ethernet-based HD video codec test platform is built and debugging and the experiment are carried out,the results show that the video codec has a good way to implement of encoding and decoding with HD video and also transmission and broadcasting

embedded;high-definition;video codec

TP309

A

1671-024X(2015)03-0057-05

10.3969/j.issn.1671-024x.2015.03.013

2014-11-06

国家自然科学基金青年基金项目(61302062)

郭翠娟(1975—),女,副教授,硕士生导师,研究方向为通信系统.E-mail:guocuijuan@tjpu.edu.cn

猜你喜欢

解码高清嵌入式
《解码万吨站》
解码eUCP2.0
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
搭建基于Qt的嵌入式开发平台
4K高清监控需要两条腿走路
嵌入式软PLC在电镀生产流程控制系统中的应用
数码单反拍摄高清视频时同期声的收录探索
Altera加入嵌入式视觉联盟
倍福 CX8091嵌入式控制器