首页 >> 滚筒支架

基于TMS320DM6446的H264编码器实现与优化输送泵


2022年06月25日

基于TMS320DM6446的H.264编码器实现与优化

基于TMS320DM6446的H.264编码器实现与优化 2011年12月09日 来源: 1 引言 H.264是ITU-T的视频编码专家组(VCEG)和ISO/IEC的活动图像专家组(MPEG)联合制定的视频压缩标准。它在H.263/H.263++的基础上发展,在继承所有编码压缩技术优点的同时引入许多全新的编码技术和网络适配层NAL的概念,从而拥有更高的编码效率和更好的网络适配性。为从低码率的实时通信系统或无线环境到高码率的HDTV和数字存储系统提供一个优良的视频压缩编码通用工具。但H.264标准优异的性能表现是以编码运算复杂度和运算量大为代价,在通用的PC机平台实现会占用较大的CPU和内存资源。随着数字信号处理器(DSP)技术的高速发展,DSP的处理速度和能力飞速提高。DSP已满足H.264标准的编解码运算速度要求。因此,在稳定的媒体处理器平台上实现H.264标准有着较好的工程意义和应用前景。 详细介绍了以TMS320DM6446DSP为核心的视频编码系统的硬件设计,并重点研究了H.264编码器在以TMS320DM 6446为目标的CCS平台上的移植和优化工作。

2 视频编码系统硬件设计2.1 DSP的选型 DSP选用TI公司的Davinci媒体处理专用器件TMS320DM6446(简称DM6446)。它采用ARM+DSP双核架构,包含一个TMS320C64x+核心和一个ARM926EJ-S核心。C64x+核心采用改进的超长指令字VLIW体系结构,内部拥有8个并行的运算单元,时钟频率600 MHz,峰值处理能力高达4 752 MI/s。DM6446片内为两级高速缓存(Cache)结构,设计有独立的32位DDR2 SDRAM接口和16位异步EMIF接口。此外,DM6446还集成有多种适用于视音频多媒体处理的片内资源和接口,如用于和外部解码器连接的视频处理前端模块VPFE、和视频显示设备连接的视频处理后端模块VPBE、多通道音频串口等。 DM6446不仅在处理性能上完全满足H.264标准要求。而且在内部结构、片内资源和外部接口上对视频处理应用专门优化,大大降低视频应用的开发难度和成本。2.2 系统结构框图 视频编码系统硬件结构原理框图如图1所示。主机通过PCIE总线对DSP进行初始化加载程序。摄像头输出的模拟视频信号经视频解码模块转换为数字信号,经FPGA转换电平。通过DM6446的VPFE模块接口送人DSP,进行压缩编码处理。编码后的视频数据从DM6446的EMIF接口输出通过PCIE总线送回主机进行下一步处理。DM6446的VPBE模块可将采集的数字视频信号再转换为模拟信号输出至电视进行监控。DDR2 SDRAM存储编码过程中的原始图像、参考帧、编码参数等数据。DM6446通过I2C总线配置A/D转换器。FPGA与PCIE桥PEX8311之间加入双端口RAM,以提高数据的传输效率。

2.3 视频解码模块设计 模拟视频信号的传输格式种类很多,而且国际上对数字视频信号的传输格式有明确的标准规定,因此一般通用的A/D转换器并不适合视频领域应用。这里选用专用的视频解码器ADV7189B,它支持12路模拟视频通道,包含3个具有防噪性能的12位54 MHz的A/D转换器。支持CVBS、S-端子、YprPb 3种格式的模拟视频信号输入,能够自动侦测NTSL/PAL/SECAM制式,输出ITU-R BT.656标准的数字视频信号。选用12路模拟通道中的3路,复用的支持3种模拟视频格式。ADV7189B输出10位数字视频信号、独立的垂直同步信号VD、水平同步信号HD和像素同步时钟LLC1,电压均为3.3 V电平,经过FPGA转换为DM6446要求的1.8 V,然后从DM6446的VPFE模块专用数字视频信号接口送入DSP。压缩编码前,VPFE模块将ITU-R BT.656标准的视频数据转换为H.264兼容的YUV4:2:O格式,存入DDR2 SDRAM中。VPFE模块还支持对视频数据进行白平衡、缩放等预处理操作。ADG3301实现I2C总线的电平转换。2.4 视频编码模块设计 DM6446片内的VPBE模块包含4个54 MHz的D/A转换器,可在DM6446内部将数字视频信号直接转化为模拟视频信号,4路输出,并且支持CVBS、S-端子、YprPb 3种模拟视频格式。因此,视频编码模块设计较为简单,只需对4路模拟输出信号放大,就可直接与监视设备连接。选用TI公司的电压反馈CMOS运算放大器OPA357进行运算放大。2.5 控制电路设计 DM6446的视频信号接口、EMIF接口为1.8 V电平,ADV7189B接口、PCIE桥接口为3.3 V电平。系统需要大量的电平转换工作,同时还需要实现大量的逻辑控制、PCIE桥与DM6446的通信协议。FPGA器件是最适合的选择。选用Altera公司的逻辑器件EP2C35,它可在片内实现1.8 V、2.5 V、3.3 V电平的转换,并且能够满足系统对逻辑控制功能的要求。EP2C35内部集成有片内存储器,可在ADV7189B与DM6446之间建立一个缓存区,提高数据传输效率。FPGA与DM6446、ADV7189B和PCIE桥接口电路如图2所示。

3 H.264编码器的DSP移植与优化 目前,H.264编码器的实现版本主要有:JM、T264、X264。其中JM是H.264官方源码,实现H.264所有特征,但其程序结构冗长,只考虑引入各种新特性以提高编码性能,忽略编码复杂度,其复杂度极高,不宜实用;T264编码器编码输出标准的264码流,解码器只能解T264编码器生成的码流;X264是编码器注重实用,在不明显降低编码性能的前提下,努力降低编码的计算复杂度。这里,用X264编码器对DSP平台移植、优化。X264程序在DSP平台上实现及优化主要有:程序简化、代码移植、代码优化。3.1 程序简化 X264编码器除支持H.264的基本档次外,还包含主要档次的某些功能选项以及其他功能模块,代码尺寸较大,因此需要将不必要的功能模块删除,以减小代码尺寸。主要做以下删减:删除X264程序中的解码部分,以及基本档次功能之外的CABAC、B slice部分;X264程序是基于X86的PC平台,包含了SSE、MMX等。PC平台使用的优化技术,在DSP平台下无效:针对DSP平台特点,调整删减后的代码文件结构。3.2 代码移植 TI公司的DSP开发工具CCS具有自己的ANSI C编译器和优化器,并有自己的语法规则和定义,经过上一步简化后得到纯C版本的X264编码器需要经过修改才能够在CCS下应用于具体的DSP。主要包括:①Visual c++、CCS对于变量和结构体的“重复定义”问题的不同处理,需更改头文件中变量和结构体定义的位置;②用功能相同的库函数代替CCS中没有的库函数,如strncasecmp();③数据格式的不同,用long代替CCS中没有的_int64格式;④按照CCS下C语言的规则定义数组;⑤修改系统配置参数的读取方式;⑥编写针对TMS320DM6446存储结构的CMD文件。如此,X264便可以在CCS下编译通过并运行。3.3 代码优化 纯C版本的X264程序并没有利用DM6446的资源和并行机制,代码运行速度极低。因此必须对代码进行优化,提高处理性能。X264代码优化有以下3个层次:项目级优化、算法级优化和指令级优化: (1)项目级优化 项目级优化主要是对CCS提供的各种编译参数进行选择、搭配、调整,如本文使用的选项-o3、-pm等;利用CCS编译器提供的优化功能,改善循环及多重循环体性能,进行软件流水,提高软件的并行性;改写不适合编译器优化的语句,使CCS能够对程序进行更好的优化。 (2)算法级优化进行算法级优化时。应使VC环境下的纯C版本与CCS下的版本同步更新,VC版本运行正确,既可以保证算法理论上的正确,又可以加快工作速度并减少问题的产生。该算法优化工作主要有以下几点:①运动估算法的选择:X264编码器提供3种可选的整像素运动估算法:X264_ME_ESA(全搜索法)、X264_ME_HEX(六边形搜索法)、X264_ME_DIA(小菱形搜索法)。在VC环境下使用纯C版本代码对同一视频序列使用3种不同的搜索方法进行编码。对比3种搜索方法在编码速度、峰值信噪比(PSNR)、码率方面的性能。对比之下X264_ME_ESA算法的峰值信噪比最高,X264_ME_HEX次之,X264_ME_DIA最低,但相互之间的质量差别并不大,码率差别也很小,但编码速度却有明显差距,X264_ME_DIA较前两者在编码速度上有明显的优势。经比较,选择使用X264_ME_DIA运动估计算法。②帧内预测模式的改进:在X264的帧内预测流程中加入提前终止模式选择的条件,改进算法的流程。进行16×16宏块帧内模式搜索时,在当前模式的开销小于已搜索过的模式的最小开销的一半时,终止16×16帧内预测模式选择,以当前模式为最佳16×16帧内预测模式。对4×4块也加入相同的条件,并且若当前4×4块帧内预测模式的预测开销比相应的最佳16×16块帧内预测模式的开销的1/16还要小,则终止4×4块的帧内预测模式选择,以当前预测模式作为最佳4×4块的帧内预测模式。改进后的帧内预测主体流程如图3所示,灰色部分为加入的判定条件。

帧间预测模式的改进:将当前的16×16宏块划分为4个8×8宏块,分别预测其运动矢量,然后以左右相邻、上下相邻的2个8×8块的运动矢量的差值和阈值相比较为依据,判定是否进行16×8、8×16等分块模式的预测,最后选择开销最小的划分模式为最佳帧间划分模式。 (3)指令级优化 DM6446一个时钟周期内可并行运行8条指令,一次可存取64位数据,内部拥有64个32位通用寄存器,并且支持对寄存器中的4个8位字节或2个16位字节分别进行运算处理,这些使得DM6446具有很强的并行运算能力。视频图像的像素尺寸一般是4的倍数,X264中像素的值是用8位或16位数据按矩阵形式有规律的存储,这种数据存储结构与DM6446的并行处理方式很契合。因此对X264程序进行指令优化充分发挥DM6446的并行运算能力,是提高编码器速度的关键。主要分为以下两部分:①使用内联函数优化;C6000编译器提供了许多内联函数intrinsics,它们是汇编指令映射的在线函数,不宜用C语言实现其功能的汇编指令都有对应的intrinsics函数。这样就可在C语言结构中直接使用内联函数实现对多个数据的并行运算操作。如:未使用内联函数优化前X264程序调用一次双线性内插函数只能计算一个亚像素点的值,而使用内联函数_mem4()、_avgu4()等进行优化后,一次可以计算4个亚像素点的值,大大提高了运算速度。②使用线性汇编语言优化:由于线性汇编不需要考虑寄存器分配、指令延迟、并行指令安排等因素。因此可以利用CCS提供的profile分析工具将使用频率高、耗时多的函数抽取出来,根据事先已知的数据间的相关性等信息,在程序中直接改写函数汇编,人工优化。涉及的算法有:SAD、SSD的计算;DCT变换;反DCT变换、亚像素搜索等。

4 实验结果 选取具有代表性的视频序列carphone(人物运动幅度较大)、news(背景变化,人物运动幅度不大)、container(背景简单,景物运动缓慢)进行编码。视频为YUV 4:2:0格式.QCIF,量化步长定为26,共50帧,采用IPPP…编码模式。DM6446的时钟频率为600 MHz。表1为优化后峰值信噪比、消耗时钟周期、码率等实验结果。表2为优化前后编码时钟周期对比,I帧编码速度平均提高了9倍,P帧编码速度平均提高了11倍。

以视频Miss-America为例,研究、对比移植优化后的编码器在不同的量化步长值(QP)下,图像的压缩质量,如图4所示。

5 结论 移植优化后的X264编码器在CCS环境下可正确编码,在量化步长值26下编码图像质量较高,优化后编码速度较优化前有明显提升。介绍的H.264视频编码系统的硬件设计,和X264编码器针对DM6446平台移植、优化的思路和方法,对构建高效的视频应用平台具有一定的参考价值。

淄博哪里看前列腺炎好的医院

东莞东方医院专家

武汉白癜风专科医院

郑州治疗输卵管堵塞医院排名

鸡西男科医院

北京呼吸内科医院怎么样

相关阅读
最好18日1434宝鸡市场工角槽钢价格行情薄膜面板分切刀片紧急供电青铜峡线夹TRp

18日(14:34)宝鸡市场工角槽钢价格行情您当前位置:首页 价格无噪音;更没有...

2024-04-02
最好长安关键电子厂在变革中求发展袋灌装机贵溪潞西水辊原平TRp

长安关键电子厂——在变革中求发展 2012年自动化业界是几家欢乐几家愁,但...

2024-04-02
最好河南神火集团公司发力供给侧改革纪实板栗机防震垫金属化薄膜切边机洗车设备TRp

河南神火集团公司发力供给侧改革纪实【铝道】一向以神奇而著称的河南神火...

2024-04-02
最好2016年09月22日今日氧化镨价格薄膜封口机分切刀紧固件青铜管件线槽TRp

(2016年09月22日)今日氧化镨价格您当前位置:首页 价格行情(2016年09月22日...

2024-04-02
最好25日乌鲁木齐市场氧化铝价格行情扁顶针封边机酒精测试燃气阀小型电动机TRp

25日乌鲁木齐市场氧化铝价格行情非标螺钉您当前位置:首页 价格行情25日乌...

2024-04-02
最好青海省将实施电解铝等重大技改项目凹线防腐设备介质天线钳子吸塑包装机TRp

青海省将实施电解铝等重大技改项目【铝道】梳理中国经济 十二五 发展走向...

2024-04-02
友情链接
EPS应急电源厂家 户外登山鞋哪个牌子好 光伏网带多少钱 穗宝天然乳胶床垫 上海床垫定制品牌 爱依瑞斯 万能拉力试验机WDS-10M 贴膏药过敏怎么办 同仁大活络丸什么时候服用 为什么熬夜会掉头发 慢性心衰的护理问题及措施 为什么骨质疏松从调理肾入手 心肌缺血心绞痛长期吃什么药 窦性心动过缓心律失常怎么办 京万红 体股癣应该如何治疗 女性更年期吃什么食物好 肾阳虚会导致失眠吗 上了年纪起夜多精神差怎么办 补肾养肾不能吃什么 万能试验机 制作工装 痤疮的护理常识有什么 带状疱疹后遗神经痛如何护理好 用完亮甲之后需要用达克宁吗 宝宝拉肚子很臭怎么办 一岁儿童挑食不爱吃饭怎么办 总是腰腿疼痛如何止痛 酒精肝怎么治 孩子咳嗽有痰吃什么好的快 小孩感冒流鼻涕该怎么办 武汉妇产医院 家庭常备药 网链厂家 深圳遗产继承顺序 上海婚姻律师 找工作 脑梗恢复期左腿麻木怎么办 新冠咽痛的情况有什么方法缓解 依兰琳卡 治灰指甲期间脚可以沾水吗 灰指甲长年治不好对身体的危害 达克宁和亮甲有什么不同 用亮甲治脚气多久能好 幽门螺杆菌会引起灰指甲吗 寻医问药 贵州贵阳治疗男科专科医院哪家好 深圳离婚程序 韶关牛皮癣专科医院哪家好 深圳咨询离婚律师 汉中妇科医院哪家好 北京转移遗产继承律师 聊城治疗不孕不育专科医院 鹤岗肿瘤 芪斛楂颗粒改善小孩挑食吗 杭州萧山萧然医院 违建拆除 Vehicle Repair Equipment Tools 笔记网 长沙定做工作服 Barcol Hardness Outdoor Lighting 寻医问药 广州治银屑病哪家医院好 长春哪家医院看牛皮癣好 辽宁好的皮肤病医院 哈尔滨男科医院哪里好 夏青网 Suppliers 两岁孩子拉肚子拉水怎么办 小儿肺热咳喘颗粒哪个牌子好 小葵花小儿柴桂退热颗粒的用法用量 葵花美沙拉嗪肠溶片治肠炎腹痛吗