基于TMS320C64xx的H.264编码器优化
电子元件,电子元器件深圳市创唯电子有限公司
您现在的位置: 首页 > 电子技术
基于TMS320C64xx的H.264编码器优化  2012/3/1
摘要:本文分析了H.264软件编码器的结构,提出了影响速度的瓶颈,并给出其中两方面的优化方案:改进的块匹配算法和1/4象素参考帧插值函数结构的优化。同时,针对高性能DSP芯片TMS320C64xx的特点提出了一系列的优化方案,最后讨论了C语言程序在DSP硬件上优化设计的一般性规则。关键词:H.264标准;块匹配准则;1/4象素插值引言与H.263协议相比,H.264协议的基本算法仍然是通过帧间预测和运动补偿消除时域的冗余,经过变换编码消除频域的冗余
  摘    要:本文分析了H.264软件编码器的结构,提出了影响速度的瓶颈,并给出其中两方面的优化方案:改进的块匹配算法和1/4象素参考帧插值函数结构的优化。同时,针对高性能DSP芯片TMS320C64xx的特点提出了一系列的优化方案,最后讨论了C语言程序在DSP硬件上优化设计的一般性规则。
关键词:H.264标准; 块匹配准则;1/4象素插值

引言
与H.263协议相比,H.264协议的基本算法仍然是通过帧间预测和运动补偿消除时域的冗余,经过变换编码消除频域的冗余。但是,在计算精度和其它一些具体细节上都有所改进,这既是H.264协议优于H.263协议的关键所在,同时也是提高H.264编码器运算速度的最大瓶颈。这些关键技术可以概括为:1/4象素精度的运动预测与补偿,基于4×4块的DCT变换,以及基于最小4×4块的多种运动预测与补偿模式。
H.264协议推出了一系列测试程序——JM系列,本文的优化方案就是针对JM61程序在TMS320C64xx系列DSP芯片上的移植而进行的。
通过对整个程序的分析可以看出,在编码端,encode_one_ macroblock()函数是实现整个协议的关键函数,也是对一个宏块编码的全部过程,因此,对这个函数优化的程度直接决定了编码器的编码速度。虽然JM系列程序随着H.264协议的发展而不断更新,但它始终是以测试为目的,内部结构还存在许多冗余,大量的判断以及循环语句也不适合DSP程序的执行。
基于DSP的优化方案
块匹配方案的优化
在H.264协议中,将每个宏块的inter预测模式分为7种,需要在参考帧中寻找每种模式的最佳匹配块。目前,判断两个子块匹配最常用的准则是求帧间亮度的最小绝对误差值(SAD值),JM61参考程序采用的也是这个准则,其公式为:

其中表示当前帧图像中的象素点,表示参考帧图像中的象素点,i、j分别表示当前搜索点pos的偏移量。
由于DSP片内空间有限,不可能将参与计算的两个因子(和)全部放在片内,而SAD值的计算又是进行整象素搜索的关键,在编码一个宏块时,这个公式被反复调用,因此,有必要在进行SAD计算之前引入参考窗代替原来的参考帧。参考窗是参考帧中的有效数据部分,包含了当前宏块的整象素运动搜索范围之内的所有参考点,并且对一个宏块进行编码时只需要引入一次,所占用的空间较小,因而可以将参考窗数据放在片内,利于存取与计算,编码下一个宏块时再对窗中的数据进行刷新。
填充参考窗的过程可以分为两种情况:第一种情况是所有的搜索点都在参考帧的内部,并没有超出参考帧图像的边界,在这种情况下,可以利用EDMA直接进行数据搬移,只需要配置几个寄存器启动EDMA,只占用很少的CPU资源,这样既没有增加数据搬移时间,又能在计算SAD时保证数据放在片内,从而提高运算速度。第二种情况是在搜索范围之内的参考点并不都在参考帧图像内部,有一部分超出了图像的边界,对于这些超出了边界的参考点,需要用与之最临近的边界点代替,根据出边界的情况需要进行不同处理。没有出边界的参考点仍然可以用EDMA或者QDMA进行搬移。
参考窗的大小是由搜索范围决定的, 参考程序中采用的搜索方法是搜索范围为16的全搜索算法(FS),这种算法的优点在于能够100%地搜索到最佳匹配块,保证图像的质量,然而带来的缺

与《基于TMS320C64xx的H.264编码器优化》相关列表
电话:400-900-3095
QQ:800152669
库存查询
Copyright(C) 2011-2021 Szcwdz.com 创唯电子 版权所有 备案号:粤ICP备11103613号
专注电子元件代理销售  QQ:800152669  电子邮件:sales@szcwdz.com  电话:400-900-3095