RDCost值

有关cost代价函数


统计32x32CU的cost值:

rpcBestCU里记录的是RDcost的最小值

rpcTempCU中记录的是当前进行比较的RDcost值,它只有在xCheckRDCost函数之前的rpcTempCUCost时才会被赋值,然后进行和BestCUCost值在Check中进行比较,如果小于最优则进行替换,里面存放替换下来的次优Cost值。当比较结束跳出Check函数后立马执行rpcTempCU->initEstData(),初始化为Double最大值。

而当CU是32x32的时候的cost值应该在递归外层记录。


Rate Distortion Optimation (率失真优化)(转)

       在H.264编码过程中有许多的模式可以选择,有些模式的图像失真较小,但是码率却很大;有些模式的图像失真较大,但是码率却很小。人们就想了,有没有一种方法使得在不超过某最大码率的情况下,失真达到最小。即 min{D} s.t. R<=Rmax ,s.t.表示“在以下条件”。

实现过程可以描述为:

1.以特定的编码参数将视频编码,计算编码后的码率和失真。得到一个码率R和失真D组成的R-D

2.重复上述第一步,得到其他R-D

从图像上可以看出,对于给定的特定的RmaxD最小的点出现在曲线上。

现在的目标是找到一个编码参数,使得在这样的情况下R-D点能够尽可能的逼近这条曲线。

J是一个包含D和R的函数,lamda是Lagrange系数,对应到R-D图上那么lamda就是斜率

对于每个可能的系数lamda,上述式子应该有对应的解。这个解就是凸曲线的切线。

我们找到最小的J就是对应一定的码率情况下失真最小的模式,一次模式编码会达到我们一开始所要设想的结果。

缺点是:模式如果过多的话这个过程的计算式相当的耗时的,所以在H.264研究中在改善算法效率和提出一些替代方法就成了非常可行的方案。




猜你喜欢

转载自blog.csdn.net/zhuix7788/article/details/8981305