1 为啥优化?
对计算量的需求增加了4倍以上,过高的计算和存储对H.265
TMS320c66是一款多核高性能的处理器8个内核和一个网络协处理.
优化处理:
对每一帧采取片级编码且用7个核实现并行处理,不采用CU或者帧级编码。其原因是:
(1)片是介于CU与帧之间的。因为CU(编码单元)会参考同一片中的其他CU。因此采用CU级编码会极大地增加核间通讯压力。
(2)各片之间没数据关联性,各片完全独立,待编码单元无需参考其他片即可完成编码。
(3)帧级编码对DDR和Cache有极高的要求,但DSP平台硬件资源有限,帧级编码无法实现。
进行结构化处理。
方法:
通过Intel VtuneAmplifer 工具统计热点函数及其所占用时间,可以得出编码过程耗时最多的是运动估计(Motion Estimation ME)
和模块决策(Mode decision MD).
帧内帧间预测都是运动估计,运动估计分整像素运动和分像素运动。
整像素运动估计(IME):将图像的的每一帧分成许多不重叠的宏块,先假设宏块内所有像素的位移量都相同,
然后对每个宏块到参考帧中某一给定的搜索范围内,根据一定的匹配准则,找出与当前最相似的块,即匹配块;匹配块与当前块的相对位移即运动矢量。
分像素运动估计(FME):由于自然物体运动的连续性,相邻两帧之间的块的运动矢量不一定是以整像素为基本单位的。IME完成粗精度的帧间匹配搜索,FME完成二分之一或四分之一像素精度的匹配。
模块决策就是寻找最佳匹配的过程。
IME与MD算法中,大部分操作都是SAD(运算都是矩阵运算)和SSD运算,考虑到SAD运算的特性,使用DSP平台的SIMD加速指令来实现优化。
SAD操作需要进行大量重复性的数学运算,指令级流水线可充分利用DSP提供的并行处理能力,实现处理速度的成倍提高。具体将块大小分类,根据矩阵行数据数量来进行分类组织。4xN,8xN,12xN,16xN,32