由于H265是以CU为单元进行解码的,因此QP的解析也是以CU为单元的,考虑到色度分量QP的计算需要使用亮度分量的QP,因此下面主要分析CU层亮度分量QP的解析过程。
前文提到H265/HEVC对QP进行了预测编码,因此QP的解析需要QP的预测值predQP 和预测误差deltaQP.下面分别介绍这两部分的解析过程。
(1)预测QP pred的获取
前面介绍了QG层QP的预测方法,由于CU和QG没有固定的大小关系,因此CU层预测QP的获取需要分两种情况进行。
(1)当一个QG包含一个或者多个CU时,该QG内所有CU都使用一个预测QP,即当前QG的预测QP。
(2)当一个CU包含多个QG时,将该CU内第一个QG的预测QP作为当前CU的预测QP。
二 QP预测误差 delta QP的解析。
delta QP表示QG层QP与其预测QP的差值,但是它可以时CU为单元进行传递的。考虑到二者之间没有固定的大小关系,并且并非所有CU都含有delta QP信息(含非零系数的CU才会携带deltaQP信息),因此deltaQP的解析也需要分为两种情况进行。
(1) 当一个QG包含一个或者多个CU的时候,deltaQP会在解码顺序上的第一个含有非零系数的CU中传递,当前QG内资啊此之前所有CU的deltaQP都为0,对于这些CU,直接使用predQP作为实际QP,再次之后的所有CU都使用同一个deltaQP,如图6.6所示,粗线表示一个QG,细线表示CU划分方式,其中H为第一个包含非零系数的CU,而H中回奖传递当前QG的deltaQP信息。此时,A~G的deltaQP都为0,而H~M都使用所携带的deltaQP。
(2)当一个CU包含多个QG时,该CU只对应一个deltaQP,即该CU中第一个含有非零系数的QG所携带的deltaQP。若所有QG都不含非零系数,则令该CU的deltaQP为0。
(3) QP的计算方法
Slice层QP的计算需要用到PPS中给定的初始QP以及Slice层QP的偏移值dQPslice 计算如下。
sliceQP = QPpps + dQPslice
CU层QP的计算需要CU层的预测QP(predQP)以及预测误差deltaQP,具体来说,亮度分量的QP计算如下
QPy = predQP + deltaQP
两个色度分量Cb和Cr的QP分别计算如下
QPcb = QPy + pps_qp_offset Cb + slice_qp_offsetCb
QPCr = QPy + pps_qp_offsetCr + slice_qp_sliceCr
其中,pps_qp_offset和slice_qp_offset分别表示两个色度分量在PPS层和Slice层QP的偏移值。
A | B | E | |||||
C | D | ||||||
F | G | H | M | ||||
I | J | ||||||
K | L |