HEVC 量化参数

1 integer-arithmetic hevc

HEVC 标准中的 HEVC 量化(统一情况)步骤需要在计算电平系数时右移 QP/6。

对于 QP 不能被 6 整除的情况,我不确定如何执行这种右移。任何帮助将不胜感激。

参考:高效视频编码 (HEVC) 标准中的核心转换设计:Madhukar Budagavi,IEEE 高级成员,Arild Fuldseth,Gisle Bjøntegaard,Vivienne Sze,IEEE 成员和 Mangesh Sadafale

dam*_*eux 5

在 HEVC 参考软件 (HM 16.5) 中,量化步q长计算如下:

Double q[MAX_QP + 1];
for (int v = 0; v <= MAX_QP; v++)
{
    q[v] = (Double)(g_invQuantScales[v % 6] * (1 << (v / 6))) / 64;
}
Run Code Online (Sandbox Code Playgroud)

其中g_invQuantScales定义如下:

const Int g_invQuantScales[SCALING_LIST_REM_NUM] =
{
  40,45,51,57,64,72
};
Run Code Online (Sandbox Code Playgroud)

也就是说,作为v一个整数,v/6是一个整数除法。例如,这里解释了 c中整数除法的行为什么是 C 中整数除法的行为?

基本上,v这里总是非负的,整数除法的结果将与精确商上的地板运算相同。

从这个意义上说,您引用的论文中的公式(8)有点误导,因为写作是“代码风格”。

如果你需要自己用另一种语言实现它,你应该确保你使用了地板操作。例如“<<地板(QP/6)”