概分法帧间编码快速判定

本帖最后由 kevinwxh 于 2009-11-9 08:54 PM 编辑

曾经有在读研究生问我有关帧间编码快速判定算法,因为他(她)目前的任务主要是为帧间编码或者帧内编码提出一种实用实时的快速算法。对于实时编码软件(或者硬件)而言包括X264,T264在内为了达快速的效果,以达到实时传送图像信息的效果,都会采用快速判定帧间或者帧内预测,有的会去掉一些复杂的算法。主要的想法就是,既然要得到最优的编码模式,要用很高的复杂计算和大量的计算时间,倒不如不再要求得到最优的编码模式,只要能得到80%的次优的编码模式,甚至得到一部分中优的编码模式,只要编码后再解码的图像质量下降不多,能适用,码率增加不多,编码时间能大幅下降,那这样的目的也就达到了。所以目前就有很多人提出了很多帧间或帧内快速判定法,先去除一些认为出现概率不大的预测模式,比如或先删P16的P16x16模式,或先删P16的P16x8,P8x16模式,或先删P8的P8x8模式,或先删P8的P8x4,P4x8模式,或先删P8的P4x4模式,如此林林种种,各种算法五花八门。
对于帧间预测模式而言,大体上分了如下几类。
第一种分法:
P16全模式:包括P16x16, P16x8, P8x16
P16大模式:p16x16
P16小模式:包括P16x8, P8x16
P8全模式:包括P8 x8, P8x4, P4x8, P4x4
P8大模式:p8x8
P8小模式:包括P8x4, P4x8, P4x4
第二种分法:
A类模式:包括P16x16,PSKIP/BSKIP_DIRECT
B类模式:包括P16x8, P8x16
C类模式:包括P8 x8
D类模式:包括P8x4, P4x8
E类模式:包括P4x4。

帧间快速判定模式,很多是或者根据边缘强度,或者根据纹理特征,或者根据原图像点和参考图像点的SAD值,去除掉其中一类或者多类帧间预测模式,用少量的帧间预测模式进行预测,进行代价(开销)比较,取最小的代价(开销或者成本)为最佳模式进行编码。这样得到的基本是:大部分次优(次佳)模式+少量的最优模式+少量的中优模式。
这样图像质量有所下降,码率有所增加,但大幅度降低了编码时间,更适用了实时的编码场合。

这儿提的“概分法快速判定帧间预测模式”指的是:用概率分布的方法来判定某一块最有可能的帧间预测模式。
具体方法是:把待编码图像按4x4分为若干不重叠的块即我们通常所说的4x4块,将该块与一帧参考帧或者多帧参考相对应的位置(相同的位置)进行4x4块内SAD累加和计算。然后用该块的SAD累加和与五个动态的SAD阀值比较,根据比较结果将该块按本文所说的第二种帧间模式分类的类别,根本进行该模式类别相应帧间预测进行帧间预测计算。

本文对该算法进行过测试。图像质量下降不明显,码率有所提高,编码时间有大幅下降为原编码时间的40%~60%不等。
该法虽然去掉了不少的帧间预测计算的时间,但SAD累加和的计算和五个动态的SAD阀值计算仍占了不少的时间。

你可能感兴趣的:(c,算法,测试,任务)