1 复杂的块划分结构和预测模式等面临的一个问题是如何选择最优块划分结构和预测模式等,换言之,就是在编码过程中如何评价块划分结构和预测模式等的优劣。造成这一问题的主要原因是,不同的块划分结构和预测模式等几乎对应着不同的失真和编码比特数,而失真和编码比特数属于不同的单位,无法直接比较大小,为了解决这个问题,Sullivan等将视频编码看作是凸优化,并利用拉格朗日优化将失真和编码比特数统一成码率失真代价。如下等式
J = (SSEy + Weight * SSEchrom) + lambda * bitrate
其中J是码率失真代价,SSE sum of squard Error,平方误差和表示失真。SSEy表示亮度分量的失真。SSEchroma 表示色度分量的失真,Weightchroma 代表色度失真所占的权重,lambda 是拉格朗日系数。 码率失真代价的表示编码某个图像块或语法元素所产生的编码代价,它将失真和编码比特数统一成可以直接比较大小的量纲,码率失真代价越小,表示压缩性能越好。
根据码率失真代价的含义,可以通过美剧的方式选择选择最优块划分结构和预测模式等,对于一个CU来说,根据公式可以计算出INTER模式,merge 模式和SKIP模式下的码率失真代价J。其中,码率失真代价最小的模式就是该CU的最佳帧间预测模式。
图2-14所示为CTU的划分过程,最优块划分结构也可以通过对比码率失真代价得到,假设CTU的大小为64x64,则CTU最优块划分结构的选择流程如下
步骤一 计算leveli层CU不划分的码率失真大家,记为Junsplit
步骤二 计算lveli是CU倍划分为4个leveli + 1层的子CU的码率失真代价之和,记做Jsplit
步骤三,若Jsplit < J unsplit,则将CU划分成4个子CU,否则,当前CU不划分。
步骤四 若i> 0, 则令 i = i - 1.并递归执行步骤一到步骤三
根据上述递归函数可以计算出,一个64x64大小的CTU需要计算2^0 + 2^2 + 2^4 + 2^6 次码率失真代价才能选择出最优块划分的结构。
2.2 低复杂度HEVC帧间预测算法优化
利用视频在时域上的相关性进行帧间预测,使用已编码的帧的信息来预测当前的被编码图像,由于视频内容随着时间变化的变化比较缓慢,经过帧间预测编码之后,很多预测残差都是0,所以相对于视频编码的其他环节,帧间预测能取得非常高的压缩率,帧间预测采用了许多先进的算法,复杂度非常高。