现在的位置: 首页 > 综合 > 正文

H.264的权重量化机制(转载)

2019年11月22日 ⁄ 综合 ⁄ 共 2041字 ⁄ 字号 评论关闭
本篇旨在讲解H.264的权重量化机制,至于H.264的量化本篇只简略带过,量化的详细内容可以参考h.264 white paper或毕厚杰的H.264书籍。本篇以4x4 ac系数为例进行讲解,8x8ac, dc, chroma dc, ac等系数的权重量化机制亦雷同。
 
一、关于量化表
H.264标准早期是没有权重量化的概念,权重量化是在制定high profile(即FRExt)的时候引入的。所谓权重量化,就是对各个位置的变换系数采用不同的量化步长。引入权重量化是基于这样一个前提,不同位置的变换系数对于主观感知的重要程度是不相同的,因此对不同位置的变换系数采取的量化程度应该不同。
H.264之前的编码标准,如MPEG2和H.263等,都有权重量化的机制,它们采用了基于感知的量化因子矩阵。由于H.264编码标准中的变换和量化是有结合的,所以,其权重量化的设计同早期标准的量化因子矩阵不同,本文后面篇幅会具体讲述H.264的权重量化机制。
 
二、H.264的量化机制
量化:
反量化:
 
三、引入权重量化之后的量化机制
量化:
cij = ( dij * LevelScale( qP % 6, i, j) ) >> ( 15 + floor(qP / 6))
其中LevelScale( qP % 6, i, j) = MF * 16 / SCALEij;
反量化:
dij = ( cij * DeLevelScale( qP % 6, i, j) ) << ( qP / 6 – 4)
其中DeLevelScale( qP % 6, i, j) = Vij * SCALEij;
 
【对比】
根据前面给出的两套量化公式,可以看出,引入量化表之后,量化和反量化即对各点MF和Vij通过SCALEij进行缩放。因此,只要给定SCALEij表,就达到了权重量化的目的
 
四、SCALE表的类型
H.264中规定了八种SCALE表,依次是:帧内亮度4x4、帧内色度U4x4、帧内色度V4x4、帧间亮度4x4、帧间色度U4x4、帧间色度V4x4、帧内亮度8x8、帧间亮度8x8。
五、SCALE表的编码传输
SCALE表是放在图像参数集中传输的,其编码方式采用的是简单的差分编码。
 
六、如何兼容早期的量化机制
引入权重量化之后的量化和反量化公式,如果要实现之前的无权重量化方式,或称FLAT模式,只需将SCALE表中每个元素值置为16即可。
 
附:JVT默认的SCALE
# This is the configuration file for initialising the Q matrix.
# Altogether 6 matrix for 4x4 block and 2 matrix for 8x8 block
# The values range from 1 to 255
# If first value of matrix is equal to 0, default values will be used for that matrix
###############################################################################
 
INTRA4X4_LUMA =
 0,12,19,26,
12,19,26,31,
19,26,31,35,
26,31,35,39   
 
INTRA4X4_CHROMAU =
 0,12,19,26,
12,19,26,31,
19,26,31,35,
26,31,35,39   
 
INTRA4X4_CHROMAV =
 0,12,19,26,
12,19,26,31,
19,26,31,35,
26,31,35,39   
 
INTER4X4_LUMA =
 0,13,18,21,
13,18,21,24,
18,21,24,27,
21,24,27,30   
 
INTER4X4_CHROMAU =
 0,13,18,21,
13,18,21,24,
18,21,24,27,
21,24,27,30   
 
INTER4X4_CHROMAV =
 0,13,18,21,
13,18,21,24,
18,21,24,27,
21,24,27,30   
 
INTRA8X8_LUMA =
 0,10,13,16,19,24,26,28
10,12,16,19,24,26,28,31
13,16,19,24,26,28,31,33
16,19,24,26,28,31,33,35
19,24,26,28,31,33,35,37
24,26,28,31,33,35,37,39
26,28,31,33,35,37,39,42
28,31,33,35,37,39,42,44
 
INTER8X8_LUMA =
 0,12,14,16,18,19,21,22,
12,13,16,18,19,21,22,24,
14,16,18,19,21,22,24,25,
16,18,19,21,22,24,25,27,
18,19,21,22,24,25,27,28,
19,21,22,24,25,27,28,30,
21,22,24,25,27,28,30,31,
22,24,25,27,28,30,31,33   
【上篇】
【下篇】

抱歉!评论已关闭.