李光 马梦奇
(中国电子科技集团公司第五十四研究所河北石家庄050081)
随着多媒体技术的高速发展,数字视频技术在通信领域获得了广泛的应用,为了在有限带宽内传输高质量的图像,必须选择一种高效的视频编码算法。H.264/AVC自从ITU-T视频编码与ISO/IEC运动图像专家组(MPEG)共同推出以来[1],以其高效的压缩性能和友好的网络特性受到了业界的广泛推崇。传统的H.264标准视频压缩平台主要有基于DSP的,包括纯软件和软硬结合,压缩效率高,但外围电路多,功耗高,无法满足功耗和体积有严格限制的场合应用。MB86H46是富士通公司最新推出的一款专用芯片,单片可完成符合H.264标准的视频编码或解码,具有体积小,功耗低和压缩视频质量高的特点。
MB86H46是富士通公司最新推出的一款专用芯片,单片可完成符合H.264标准的视频编码或解码。芯片采取间距0.5 mm的bga封装,共有650个管脚,面积15*15,内部集成大规模编解码模块和一个512 M大小的fcram单元。MB86H46支持以下特性[2]:①符合H.264/AVC High Profile Level 4.0的视频编解码;②符合杜比数字(AC-3)、模拟PCM、MPEG-2 AAC、MPEG-4 AAC等格式的音频编解码;③输入或输出符合MPEG-2 TS格式的系统码流;④视频裁剪;⑤视频输入输出接口支持外同步(行/帧/场)或内嵌式同步;⑥最高工作于1920x1080x60逐行模式。
芯片内部结构及数据流程如图1所示。做视频压缩时,视频由视频接口输入,经过裁剪模块处理后进入H.264编码器压缩,压缩后的视频数据与音频数据复合并封装为MPEG-2 TS格式的数据流输出[3]。MB86H46通过配置可实现标准格式图像(如 576i、720P、1080i、1080P)压缩,支持 CBR(带宽恒定)或VBR(质量恒定)模式,压缩速率可调,当进行1080P60格式视频的压缩,典型功耗700 mW。
图1 芯片结构及数据流程图
本系统是基于MB86H46的高清视频压缩系统,系统的硬件设计结构图如图2所示。视频源选用sony摄像机HDR-XR260E,其可输出符合HDMI 1.3标准的最高1080P50的多种格式图像。HDMI接口芯片为ADI公司的ADV7611,用来接收HDMI数据并解析输出8/16/24 bit的并行数据至MB86H46压缩,压缩后的TS流由FPGA二次封装后并串转换发送出去。单片机通过异步串行总线完成MB86H46的加载与控制,FPGA通过I2C总线完成ADV7611初始化与控制同时与单片机通信。SPI-ROM用来存储MB86H46的固件,上电后自动加载。
图2 系统硬件结构图
MB86H46上电复位后,需要通过加载固件程序完成启动。MB86H46支持通过异步总线、码流接口、SPI-ROM和PCI总线4种固件加载方式,通过CHIPMODE[1:0]与HIFMODE[7:6]管脚选择,本文中选择了SPI-ROM的加载方式。SPI-ROM加载时,芯片内部CPU启动同时FCRAM初始化完成,CPU访问SPI-ROM并将固件加载到FCRAM中,自动完成启动。启动后,主机需要正确配置MB86H46的寄存器,可通过异步总线或串行总线,具体配置方式取决于固件内容,文中选择了串行总线与MB86H46完成信息交互。
本文采用串行通信协议,需要在原始固件后添加相应的串行通信参数和实现压缩功能所需的默认参数。组合后的固件如表1所示,Firmware为原始的固件程序。Serial communication Parameter为串行通信参数,长度为16 Bytes,定义了校验、波特率等信息[4]。Default parameter为默认工作参数,可以包含最多10种编码或解码初始模式,每一种模式长度为2 kBytes,内容如表2所示。其中,初始系统参数长度512 Bytes,定义了系统相关内容,包括编解码模式,系统速率等;初始视频参数长度512 Bytes,定义了视频相关内容,包括输入视频格式、视频速率、GOP结构等;音频初始参数长度512 Bytes,定义了音频相关内容。
表1 组合参数固件结构
表2 默认工作参数结构
采用串行启动方式与串行控制方式的工作流程如图3所示,整个流程由单片机控制完成[5]。当默认参数无法满足要求时,更新对应寄存器的参数实现新的模式。
图3 串行启动控制流程
本文使用ADV7611低功耗和高清多媒体接口 (HDMI)接收器,可接收高达165 MHz的视频流[6]。最高工作分辨率为1 600×1 200(60 Hz),支持1080P60的图像传输。电路使用扩展显示识别数据(EDID)内容,确保来自HDMI的视频流可达到HDMI源所支持的最高分辨率。ADV7611具有5 V电缆检测、热插拔检测线路置位和用于EDID的DDC线路,集成了一个内部EDID RAM,可显示HDMI源[7]。同时,内置色彩空间转换器(CSC)可转换任何HDMI色彩空间至8位RGB444格式,YCrCb(601和709)、以及HDMI规范中的其他色彩空间,满足MB86H46的图像输入需求。ADV7611的由FPGA通过I2C总线进行控制[8]。
MB86H46通过码流输入输出接口(Stream I/O)输出压缩码流,信号包括时钟、数据、同步、有效和等待。Stream I/O支持串行或8位并行模式,数据速率可调,当时钟配置为输入信号,最高可达54 Mhz,当时钟配置为输出时,最高可达27 Mhz。压缩码流协议可设置为符合MPEG-2 TS数据流格式。FPGA接收MB86H46输出的TS流,添加帧头并封装为帧长固定的数据帧,然后进行并串转换,输出包括时钟和数据的同步串行数据,经同步数据接收卡接收后进计算机软解压显示。
根据系统总体设计硬件结构图,将所设计的系统连接高清摄像机,完成实际高清图像的接收、压缩和传输,最终通过计算机软解压显示。图像解压分析软件采用Elecard streamEye。实验分别选取了1080P50(高清摄像机最高输出1080P50的图像)、1080i50、720P50和576i4种常见的标准图像进行压缩性能验证,设置的的码流带宽分别为10 Mbps、5 Mbps、4 Mbps和1 Mbps,对应的压缩比均在120倍左右,经测试,压缩码流均能通过解压软件解压并显示,且恢复图像清晰流畅,其中1080P解压后的图像如图4所示。可以看到,MB86H46能够实现包括高清1 080p在内的多种格式图像的实时压缩,同时在压缩比达到120倍时依然能取得很好的恢复图像质量。
图4 解压恢复图像1080P压缩比124
本文针对高清视频压缩技术的需求,设计了一种基于MB86H46的视频压缩硬件平台,利用单片机与FPGA完成MB86H46和ADV7611的初始化与控制,实现了高清视频的压缩,并通过计算机接收压缩后的码流进行解压和显示。实验结果表明,该系统能适应多种标准视频格式,支持最高1080P60的视频实时编码,相比于传统的基于DSP的解决方案,具有体积小、功耗低和视频恢复质量高等特点,在高清视频压缩领域有着很好的应用前景。
[1]毕厚杰,王 建.新一代视频压缩编码标准—H.264/AVC[M].北京:人民邮电出版社,2009:1-100.
[2]H.264,Codec LSI MB86H46 Product Specifications[S].
[3]MB86H46,Application Notes[S].
[4]MB86H46,Serial Protocol Manual[S].
[5]MB86H46,Control Command Specifications[S].
[6]ADV7611,Hardware User Guide[S].
[7]CEA-861-E,A DTV Profile for Uncompressed High Speed Digital Interfaces[S]
[8]ADV7611,SOFTWARE MANUAL Documentation of the Register Maps SOFTWARE MANUAL[S].