一种全高清视频采集编码传输系统设计

2020-05-11 08:11刘瑞泽郭江宇郝志超张利军
火力与指挥控制 2020年4期
关键词:全高清编码传输

刘瑞泽,郭江宇,郝志超,鹿 超,张利军

(北方自动控制技术研究所,太原 030006)

0 引言

随着信息技术的发展,现代武器装备的信息化、集成化、智能化程度越来越高,对测试性、维修性的要求也不断提高。视频图像数据作为一项重要的数据源,有着其他参数不可替代的优势,能够直观反映出装备使用过程中的状态,可为后续的过程重演、故障分析、效能评估等工作提供数据支撑。武器装备系统的视频记录对时间长度和视频清晰度都有很高的要求,这就需要较大的存储空间和网络带宽。存储空间不足的解决途径有两种,一是提高现有采集装置的容量,二是降低视频信号的数据量。前者将会提高设备的生产成本,后者则意味着视频质量的下降。在网络带宽有限的情况下,实时传输未经压缩的全高清视频将占用很大的带宽资源,会对其他数据业务造成不利影响。综上所述,研究如何利用有限带宽网络传输全高清视频信号有很大的实际应用价值。

现阶段视频传输系统的应用常见于视频监控领域,其设计方法基于摄像头+通用ARM处理器架构,在Linux 环境下对V4L2 接口视频进行编码,最终在LCD 显示终端显示[1-2],这类设计由于输入视频的分辨率有限,码率较低,所以直接将视频信号接入处理器中。对于较大的视频信号,则采用FPGA 来实现视频的采集和编码[3-4]。有些文献对高清视频采用先存储后提取的传输方式,先将视频压缩放入FLASH 中,然后通过USB 等存储介质提取出来[5-6],这种方式硬件成本高且无法满足实时性要求。已有的设计视频实时压缩与传输系统多采用德州仪器的数字媒体处理器[7-9],不能满足国产化要求,仅具有参考意义。本文采用专用芯片对全高清视频进行接口转换,国产视频处理芯片Hi3516A作为主处理器对视频进行编码和传输,这种方式具有图像质量好,压缩率高,网络带宽占用低等优点。

1 系统概述

本文设计的全高清视频采集编码传输系统由各硬件模块和应用软件组成。其中硬件部分主要由接口转换模块外接HDMI 接口的全高清显卡输出,完成HDMI 接口到BT.1120 接口的转换;压缩编码模块接收BT.1120 视频完成视频的H.264 算法编码;网络传输模块通过百兆以太网口将H.264 码流输出到后续网络中。软件部分主要完成视频采集、视频处理、压缩编码等功能。

该系统主要用来采集压缩存储计算机系统输出到显示器上的视频图像信息。计算机GPU 的输出为1 920×1 080P@60 fps 的HDMI 全高清视频信号,如果直接进行传输采集的话,按最小8 bit 数据传输,就需1 920×1 080×3×10×60≈4 Gb/s 的带宽,而且需要系统极大的存储空间,为视频的传输采集存储带来了难题。因此,本系统需要高压缩比、低损失率且适合传输的压缩编码算法。

H.264 是当前主流的高清网络视频码流编码标准,具有压缩比高、图像质量好、适合网络传输等特点[10]。H.264 是针对网络传输的亲和性设计的,采用特殊的编码机制,同等图像质量下相比上一代H.263 标准码率仅为其一半。H.264 标准可以实现高清视频的压缩编码,并且支持视频流媒体技术,可使用标准解码器(如VLC)直接播放。

本文采用的Hi3516A 是华为海思推出的一款集成了H.264 协议编码器的高性能通信媒体处理芯片。Hi3516A 基于ARM Cortex-A7 处理器内核,主频最高可以达到600 MHz,其内部集成了H.264/H.265/MJPEG/JPEG 的多协议编解码器,支持1 080p@30fps、1 600×1 200@60fps,而且支持5M@15fps 等多码流实时编码;视频输入接口支持BT.601、BT.656、BT.1120;支持RGMII 和RMII 接口网络输出;可广泛应用于实时视频传输、视频采集、网络图像监控等领域。Hi3516A 的芯片逻辑框图如图1 所示。

图1 Hi3516A 芯片逻辑框图

2 硬件设计

2.1 硬件方案

在硬件上,视频压缩编码传输系统主要由接口转换模块、压缩编码模块、网络传输模块、电源模块和外围电路等构成。接口转换模块采集到外部视频源输出的HDMI_1080P 高清视频信号,通过IT6801芯片将其转换为BT.1120 接口的YCbCr4∶2∶2 原始视频码流,并送入压缩编码模块的DDR 中;压缩编码模块主要负责将输入的BT.1120 信号依照H.264进行编解码并发送给网络传输模块;网络传输电路采用RTL8201F 芯片,将H.264 视频码流通过网络传输到后续系统中。系统硬件设计框图如图2 所示。

图2 系统硬件设计框图

2.2 接口转换模块

接口转换模块的功能是在对视频进行压缩编码之前进行格式转换,主要包括HDMI(High-Definition Multimedia Interface,高清多媒体接口)接收电路和转换电路。HDMI 是一种采用最小化传输差分信号技术和高带宽数字内容保护机制的传送方式,接口分为3 个数据通道和一个时钟通道,无需进行A/D或D/A 转换就可传送无压缩的音频信号及高分辨率视频信号。转换电路是将接收电路输入HDMI 高清视频信号转换为BT.1120 接口YUV422 格式的16 bit 视频码流并送入压缩编码模块中。其功能依靠台湾ITE 公司的IT6801 接口芯片完成。IT6801芯片是一款单通道HDMI 接收器,支持多种刷新率1080 P 分辨率,支持不同数据深度的YUV 4∶2∶2或4∶4∶4 格式输出,内置完整的图像处理功能,如上/下采样、色彩空间转换等。

2.3 压缩编码模块

压缩编码模块负责将输入的BT.1120 接口信号依照H.264 标准协议进行压缩编码,RTSP 封包并发送给网络传输模块,包括Hi3516A 芯片、存储模块等。Hi3516A 存储模块主要由SPI FLASH 和DDR3组成。SPI FLASH 模块采用Winbond 公司的16 MB的W25Q128BV 芯片实现,该芯片的SPI 总线与Hi3516A 的SPI FLASH 接口对接。Hi3516A 的DDR控制器支持32 bit 和16 bit 的DDR3。本系统采用32 bit 模式,以达到系统最佳性能,选用南亚科技的NT5CC256M16CP 实现,它具有4 GB 存储空间,是一款常用的大容量缓存。2 片内存芯片共用地址总线和控制总线,独立使用各自数据总线。

2.4 网络传输模块

网络传输模块负责物理层的收发,将压缩编码模块Hi3516A 传来的H.264 码流通过百兆网口传输到网络中。模块之间采用RMII 接口通信,实现数据从链路层到物理层的传输。该模块主要由RTL8201F 芯片组成,它是一个单端口的物理层收发器,它有一个MII/RMII 接口。它实现了全部的10/100 M 以太网物理层功能,包括物理层编码子层,物理层介质连接设备,双绞线物理媒介相关子层和双绞线媒介访问单元等。

2.5 电源模块及外围电路

图3 系统板卡

电源模块是系统运行的关键,本系统的电源模块需提供5 V,3.3 V,1.8 V,1.5 V 和1.1 V 几种电源。通过12 V 供电,其中,MP1470 从12 V 转5 V,为USB 模块供电;1 块RT8059GJ5 从5 V 转3.3 V,提供接口转换模块电源;1 块RT9013-18 从5 V 转1.8 V,提供VI_Sensor 电源;1 块RT8059GJ5 从3.3 V转1.5 V,提供DDR 模块电源;2 块MP2122 从5 V转1.1 V,提供4 路CORE 电源。

外围电路由时钟、UART 通信和对外接口等电路组成。板卡实物图如图3 所示。

3 软件设计

3.1 软件方案

系统应用程序的开发依据海思公司提供的MPP(Media Process Platform,媒体处理软件平台)来进行开发。该平台对应用软件屏蔽了芯片相关复杂的底层处理,并对应用软件直接提供MPI(MPP Program Interface)接口完成相应功能。系统软件方案如下:系统监视HDMI 视频的输入,并将转换得到的BT.1120 接口视频流输入到MPP 应用中,完成视频的采集、压缩编码,按照RTSP 协议对数据进行封包,通过H.264 码流输出。软件设计框图如图4 所示。

图4 软件设计框图

3.2 应用层软件设计

系统控制单元Sys 实现硬件初始化、计算缓存池大小、缓存池初始化和MPP 系统初始化。物理内存的管理依靠缓存池来实现,分为大小相同地址连续的缓存块,由VB_CONF_S 定义并设置;通过HI_MPI_VB_SetConf 和HI_MPI_VB_Init 配 置 并 初始 化 缓 存 池; 通 过 HI_MPI_Sys_SetConf 和HI_MPI_Sys_Init 配置并初始化MPP 系统;系统和缓存池退出。

视频采集单元Vin 负责将输入的1080P 分辨率BT.1120 接口视频数据流采集到系统中。:在MipiInit 函数中,定义结构体COMBO_DEV_ATTR_T为MIPI_BT1120_ATTR ,将输入模式配置为BT1120;DevAttrGet 定义视频采集单元的属性VI_DEV_ATTR_S,本文定义接口模式为标准BT.1120 接口,单通道传输,掩码为0XFF0000,视频分辨率为1 920x1 080,数据类型为YUV;DevOpen 设置并使能视频输入设备;ChnOpen 设置并使能视频物理通道;Open 和Close 开始和结束视频采集;FpsGet 获取视频帧率。

视频处理单元Vpss 负责创建GROUP 和通道来接受VI 采集到的视频流并传递给下一单元。GrpOpen 根据输入图像定义VPSS GROUP 工作组属性VPSS_Grp_ATTR_S,创建并启用VPSSGROUP,通过HI_MPI_VPSS_SetGrp 设置其属性;GrpChnOpen设置VPSS 通道属性和工作模式并使能;VinBindVpss将VPSS GROUP 与Vin 单元绑定;VpssBindVenc 将VPSS GROUP 和通道与Venc 单元绑定。

视频编码单元Venc 负责视频流的H.264 编码。程序流程如下:EncH264QualityInit 和EncH264Rc AttrInit 设置码率控制器RC 的属性和工作模式,本文选择VBR 可变比特率模式;SetLowDelay 设置Venc_chn 和Vpss_chn 的优先级,使其为低延时模式;EncOpen 通过HI_MPI_VENC_CreateChn 和HI_MPI_VENC_StartRecPic 实现编码通道的创建和启动。

码流获取单元SW 负责H.264 码流的读写。EncThr 当通道中有码流到来时,通过HI_MPI_VENC_Query 查询其状态,利用HI_MPI_VENC_GetStream将数据写入到结构体VENC_PACK_S 中;EncStart和EncClose 实现编码的开始和结束。SW 单元的数据流向网络传输模块,通过RTSP 协议进行封包并传输到网络中。

4 系统验证

系统验证环境包括本文设计的视频板卡,国产化指控计算机,客户端(PC),PuTTY 软件,播放器软件VLC 和测试线缆等。实验测试硬件连接为:1)将视频板USB-Serial 连接线、网络线与PC 连接;2)将指控计算机连接板卡HDMI 接口。

利用PuTTY 软件进入Hi3516A 的控制台,实时监控Hi3516A 的启动状态和应用程序的运行情况。硬件启动完成后,在控制台上输入运行指令./xstrive,启动采集压缩编码流程。

利用PC 上的VLC 软件对系统输出的RTSP 视频流进行解码,可以实时查看视频源的显示画面。测试结果如图5 所示,下游VLC 播放器可以实时显示指控计算机GPU 输出的图像,系统工作正常,压缩编码传输效果达到预期。

5 结论

图5 测试结果

本文设计了一种全高清视频压缩编码传输系统,完成了对视频信号的处理和传输,主要工作可以概括为:1)分析系统使用需求,介绍H.264 编码算法,设计系统总体方案;2)以海思Hi3516A 芯片为核心进行系统硬件电路设计,对关键模块的设计进行详细分析;3)搭建软件开发环境,利用海思MPP 软件平台进行软件代码的编写,完成系统功能实现。系统设计已成功运用在某型直升机的指挥控制系统中,具有重要的实际应用价值。

猜你喜欢
全高清编码传输
HEVC对偶编码单元划分优化算法
住院病案首页ICD编码质量在DRG付费中的应用
生活中的编码
特斯拉的接班人:电力可以通过空气传输
广播电视信号传输的技术分析
浅谈垂直极化天线在地面数字电视传输中的应用
4K传输
一种全高清CMOS相机的设计与实现
全高清摄像头神器诞生
论纪录片影像中的组合编码运用