HM种的Hierachical-B的GOP结构简介:
1.HM中的多参考帧配置
参考软件HM在Random Access配置中采用了 Hierachical-B的GOP结构,参考帧数目为4 (或者3),如下图所示,但在编码配置中,活动的参考帧数目为2,即只对最近的两个参考帧进行运动估计和运动补偿。与此类似,在LowDelay配置下,参考帧数目为4,活动的参考帧数目为4。
2.HM多参考帧优化选择
从前文的分析中,HEVC及其参考软件HM都支持多参考帧技术,HM中可以配置4或者2个活动参考帧,这使得每个PU的运动估计的复杂度成倍增加。HEVC参考软件中仍然采用传统的块匹配技术进行运动矢量的搜索,并选择最佳的预测方向和参考帧索引。其过程可以简单总结为以下流程:
(1) 从ListX=0开始(即前向预测),将参考索引iReflndex设置为0;
(2) 在当前iReflndex下,生成高级运动矢量预测(AMVP: Advanced MotionVector Prediction)候选列表,并进行AMVP索引的选择;
(3) 以(2)中选中的AMVP为起始点,在当前iReflndex帧内,以SA(T)D+λpred*Bits为代价进行运动估计,得到最佳的运动矢量和最小代价;
(4)设置 iRefIndex=iRefIndex+l,重复步骤(2)和(3),得到当前 iReflndex下的最佳运动矢量和最小代价;直到参考帧队列ListX中的所有标记为“Used for Reference“的参考帧都完成最佳运动矢量和最小代价的计算,并从中挑选代价最小的iReflndex作为当前预测方向下,最佳的参考索引;
(5) 将ListX=1 (即后向预测),重复(2)到(4)步骤,并挑选代价最小的iReflndex作为当前预测方向下的最佳的参考索引;
(6) 固定以List0 (或者List1)中最佳的参考索引和运动矢量为双向预测中的其中之一,对List1(或者list0)中所有参考索引进行(2)到(4)步骤,并找到最佳的双向预测参考索引和运动矢量。
(7) 比较前向预测、后向预测以及双向预测的最小代价,选择出最佳的预测方向。
下面用原文中的图来解释:
这里呢,按照解码顺序来讲首先是POC为4的图片,它参考POC序数为零的图,因此,它的参考帧列表为-4,这里我的理解,-4就是指POC的差值。
而解码顺序第二帧,它参考POC序数为0和4的帧,其参考帧列表为-2 2 ,同样的解码顺序中第三帧,它很特殊,虽然它的参考帧为POC 0 2,但是它还需要包含POC 4的图片,POC 的图片必须保留以便将来用作参考图片(这里可以看到解码顺序第四帧的图像马上就要用到POC4)。其参考帧列表为-1 1 3,解码顺序第四帧参考帧列表为-1 1。
那么在x265中怎么设置呢:
1.首先编写qpfile文件:
注意:如果B帧可以作为参考帧则设置为B,否则设置为b;
如果I帧是关键帧则设置为I,否则设置为i;
如果为closed_gop则 I 应设置为 K,否则设置为i。