H.264编解码器在C6416 DSP上的实现与优化

发布时间:2010-11-14 阅读量:1098 来源: 我爱方案网 作者:

      目前,随着数字信号处理器(DSP)的高速发展,为我们实现高效的多媒体处理提供了可能性。尤其是TI公司的TMS320C64系列产品,具有高主频,多流水线,高并行度以及专门的视频信号处理指令等优点,使其成为视频处理领域优选的DSP芯片之一。      

       其次,针对当前网络带宽还不够,无线通信信道误码率较高的情况,稳定的低码率视频信号的需求一直都是必须和必要的

 
。H.264/AVC是ITU-T视频编码专家组和ISO/IEC运动图像专家组联合提出的最新一代的视频编码标准。不论从编码的效率方面,还是从有效的适应各种网络和各种应用领域的灵活性方面,H.264/AVC都体现着视频编码技术的很多优势。这些新特性使H.264/AVC标准在实现和现有编码标准(H.263, MPEG-4 Simple Profile)相同视觉效果的同时节省大约50%比特率。      

       因此,将H.264的先进技术和稳定的媒体处理器相结合,实现高效的媒体通信平台有着一定的工程意义和市场价值。

 H.264简介

       H.264是ITU-T和ISO/IEC联合制定的最新编码标准,它最先由ITU-T于1997年提出,目标是提出一种更高性能(相对于当时的H.263)的视频编码标准。相对于其它标准,H.264具有以下特点:

       1.  低码率,高质量

       在相同质量的情况下,H.264相对于H.263的Baseline可以节约40%~50%的码率。

       2.  广阔的应用范围

       H.264的不同Profile既可以应用于有严格时延限制的实时通信中,也可以应用于对时延要求不高的其他应用中(视频存储、流媒体等等)。

       3.  鲁棒性

       H.264在设计时,针对分组交换网如Internet中的分组丢失和无线网络中比特误码都提出了相应的工具,使得H.264在这些网络中传播时具有更强的抗误码性能。

       4.  对各种网络的友好性。

       H.264中增加了NAL层,负责将编码器的输出码流适配到各种类型的网络中,从而提供了友好的网络接口。H.264之所以能够达到以上性能,是因为采用了以下一些先进的技术:

       首先是帧内预测编码,充分利用图像空域相关性,来降低码率。共有13种预测模式(4×4块大小9种预测模式,16×16块大小4种预测模式),这在以往标准中是没有的。

        其次采用新的运动估计方法。H.264有7种块匹配模式,编码时对其逐一计算,选择最优。例如较为精细的部分采用4×4块大小,不运动的背景可以采用16×16块大小等等。以往标准只有固定的一种或两种块大小模式。H.264采用多帧参考,最大限度利用实域相关性。参考帧可以从1帧到15帧,以往标准都是单帧参考。还有采用1/4或1/8精度的亚象素运动估计,以往标准至多采用1/2精度亚象素搜索,而且不是必选选项。为了消除视频编码中常出现的块效应,H.264使用了去块效应滤波器。

       它还采用整数DCT变换,以提高变换速度,采用CAVLC,CABAC等新的熵编码方法以提高编码效果。

NVDK开发平台介绍

       NVDK是TI的第三方ATEME公司推出的基于TI的C64系列DSP评估开发套件,是一套适用于图像、视频信号处理的高速DSP开发平台。该套件为诸如视频基础设施及网络化视频设备等高级视频应用制造商提供了方便,提高了数字视频应用项目的开发速度。

       NVDK的核心是一块C6416DSP,主频600Mhz,处理能力达到4800MIPS。它具有64个独立通用寄存器,1M字节的片上内存,具有64位和16位片外内存接口各一个。它还具有丰富的DMA通道,大大缓解了CPU的运算压力。此外,C6416支持8,16,32,40,64位数据读写及运算,具有丰富的媒体处理指令,如一条指令对4个字节的数据进行加、减、乘、求绝对值、点乘等运算,方便进行媒体处理开发。

       此外,NVDK板上还有丰富的音视频接口,并提供相关的视频捕获,格式转换,视频播放等函数,大大方便我们的工作。

H.264编解码器在DSP上的实现与优化

       将H.264在DSP上实现与优化,需要经过以下几个步骤:PC机端算法实现及优化,代码移植,DSP端代码优化。下面就着几个方面逐一进行介绍:

       1. PC机端算法实现与优化。

       我们选取ITU-T公布的JM6.1e参考软件作为我们的优化对象,目标是实现一个base-line profile的实时编解码算法。但是JM6.1e代码复杂,冗余度很大,需要在PC机端对其进行较大调整,涉及工作有:去除冗余代码、规范程序结构、全局和局部变量的调整和重新定义、结构体的调整等。

       2. 代码移植

       代码移植,就是将在PC端跑通的程序,移植到DSP端,使其能够初步运行。需要考虑的问题主要是一些内存分配,语法规则等问题。

       3. DSP端代码的优化

       通过把PC机H.264代码DSP化,可以在DSP上实现H.264的编解码算法,但是,这样实现的算法运行效率很低

 

,因为所有的代码都是由C语言编写,并没有完全利用DSP的各种性能。所以必须结合DSP本身的特点,对其进一步优化,才能实现H.264视频解码器算法对视频图像的实时处理。

       代码的优化分为三个层次:项目级优化,算法级优化,指令级优化。

       * 项目级优化       项目级优化,是对项目的整体优化,主要手段有以下几点:      

       首先是利用CCS编译器提供的优化功能,对优化选项进行选择和配置,如打开O-3选项等。      

       其次对程序结构进行调整,对不适合DSP执行的语句进行改写,以提高代码的并行性。      

       最后是对内存进行合理分配,因为DSP资源有限,我们把一些常用数据,如全局变量,程序等数据分配到访问速度高的片内内存,把占用空间较大的数据分配在片外,如帧存等。 

       * 算法级优化

       是利用H.264的自身特点,提出快速高效算法,从算法上挖掘潜力,提高运行速度,达到优化目的。这部分工作主要集中在编码器优化方面。

       视频编码中,运动估计部分是运算量最大的一块,研究显示,对于H.264,单帧参考,运动估计占总运算量的70%,5帧参考,这个比例能达到90%,因此,提出有效快速的运动估计算法非常有必要,我们通过研究提出了基于预测和早停止技术的运动估计算法,主要方法是利用周边邻块对当前块运动矢量进行预测,并设定自适应阈值,使搜索提前停止。我们提出的算法,在搜索窗32时,每块平均搜索点数3-4个左右,和全搜索算法的4225余个点相比,提高速度1000多倍。和一些经典快速算法相比,优势也很明显, H.264算法中,亚象素运动估计采用全搜索,1/4精度下,需要搜索16个点。我们提出了自己的亚象素快速搜索算法,平均搜索点数7个,节省运算量60%以上。我们提出的新算法提高编码速度很明显,而且质量也较好,PSNR损失不到0.06dB,码率增大2%左右。这对于运动估计算法基本可以忽略不计。

       此外,我们针对帧间编码7中块大小匹配模式,以及帧内预测13中模式太过复杂,运算量太大的问题,提出了我们自适应模式选择算法,不需要将所有模式全部计算,就能找到一种相对最优的模式。这些算法,都大大提高了代码的运行速度,在速度与质量上达到较好的折中。

       * 指令级优化

       如果上述优化方法无法达到实时要求,就需要进行指令级优化了,主要手段有。

       * 循环拆解,将C语言中的for循环打开,排流水线,提高并行性

       * 调用系统提供的丰富的内联函数

       * 调整数据结构,将需要大规模访问的数据,在内存中将它们放置在一起,方便DMA机制的访问,或并行指令的处理,如插值函数模块。

       * 将耗时函数抽取出来,用线性汇编改写,充分利用丰富的媒体处理指令【5】,最大限度的利用DSP的并行性。例如,运动估计中频繁调用的SAD计算,是对相应象素点做差,并对残差场求绝对值和的计算。原始算法是对每一对象素点分别求差,再对其绝对值累加。我们对其进行了线性汇编的改写,使用了SUBABS4(一次对两对4字节数据做差并求绝对值),DOTPU4(一次对两对4字节数据做内积),LDW\LDNW(一次读取4字节数据)等指令,使代码并行性有了很大提高。对16×16的块来说,优化前需要指令1000余条,优化后,200条就足够了。       我们充分利用系统并行性,对耗时函数进行汇编语言改写,涉及函数有DCT变换,反DCT变换,整象素运动估计,亚象素搜索,帧内编码函数,插值函数等,效果明显。

算法性能的评测及前景展望

       在NVDK C6416环境下,测试了编解码器算法,对QCIF测试序列,编码器40_50帧/秒的编码码速度,解码器达到50_60帧/秒的解码速度,远远达到了实时性解码的目的。

       因为代码的兼容性和可移植性,我们可以把在C6416上实现的编解码算法移植到TI公司推出的媒体处理专用芯片TMS320DM642上,利用其丰富的媒体处理接口和协处理器,实现更好的性能。

相关资讯
全闪存与软件定义双轮驱动——中国存储产业年度趋势报告

根据IDC最新发布的企业级存储市场追踪数据,2024年中国存储产业迎来结构性增长拐点。全年市场规模达69.2亿美元,在全球市场占比提升至22%,展现出强劲复苏态势。以浪潮信息为代表的国内厂商持续突破,在销售额(10.9%)和出货量(11.2%)两大核心指标上均跻身市场前两强,标志着本土存储生态的成熟度显著提升。

索尼启动半导体业务战略重组 图像传感器龙头或迎资本化新篇章

全球消费电子巨头索尼集团近期被曝正酝酿重大战略调整。据彭博社援引多位知情人士透露,该集团拟对旗下核心半导体资产——索尼半导体解决方案公司(SSS)实施部分分拆,计划于2023年内推动该子公司在东京证券交易所独立IPO。该决策标志着索尼在半导体产业布局进入新阶段,同时也预示着全球图像传感器市场格局或将发生重要变化。

革新智能驾驶通信:移远车载蜂窝天线补偿器如何破解行业痛点?

在2025上海国际车展上,移远通信推出的全新车载蜂窝天线补偿器引发行业关注。该产品通过双向动态补偿、微秒级频段切换及混频电路集成等核心技术,解决了车载通信中长期存在的射频链路损耗难题,为智能网联汽车提供稳定高效的通信支持。本文将从技术优势、竞争分析、应用场景及市场前景等多维度解读这一创新方案。

全球DRAM市场变局:三星技术迭代与SK海力士堆叠方案的对决

在全球DRAM市场格局加速重构的背景下,三星电子近期宣布将跳过第八代1e nm工艺节点,转而集中资源开发基于垂直通道晶体管(VCT)架构的下一代DRAM技术。据内部路线图显示,三星计划在2027年前实现VCT DRAM量产,较原定计划提前一个世代。该技术通过三维堆叠晶体管结构,将存储单元面积缩减30%,并利用双晶圆混合键合工艺解决信号干扰问题,被视为突破传统平面工艺物理极限的核心方案。

京东方2025年一季度净利润飙升64% 显示业务领跑全球推动业绩新高

2025年4月28日,京东方科技集团股份有限公司(以下简称“京东方”)发布2025年第一季度财报,以多项核心经营指标的历史性突破,彰显其作为全球半导体显示龙头企业的强劲发展动能。报告期内,公司实现营业收入505.99亿元,同比增长10.27%,创下一季度收入新高;归属于上市公司股东的净利润达16.14亿元,同比大幅增长64.06%,扣非净利润13.52亿元,同比飙升126.56%。这一业绩表现得益于其“屏之物联”战略的深化落地,以及“1+4+N+生态链”业务架构下各板块的协同创新。