首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HEVC量化参数

HEVC量化参数
EN

Stack Overflow用户
提问于 2015-04-28 15:23:08
回答 1查看 1.3K关注 0票数 1

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

我不确定如何在QP不能被6除的情况下执行这种右移位。任何帮助都将不胜感激。

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

EN

回答 1

Stack Overflow用户

发布于 2015-05-04 20:32:23

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

代码语言:javascript
复制
Double q[MAX_QP + 1];
for (int v = 0; v <= MAX_QP; v++)
{
    q[v] = (Double)(g_invQuantScales[v % 6] * (1 << (v / 6))) / 64;
}

其中g_invQuantScales的定义如下:

代码语言:javascript
复制
const Int g_invQuantScales[SCALING_LIST_REM_NUM] =
{
  40,45,51,57,64,72
};

也就是说,由于v是整数,所以v/6是整数除法。下面举例说明了c中整数除法的行为:What is the behavior of integer division in C?

基本上,因为v在这里总是非负的,所以整数除法的结果将与对精确商的求底操作相同。

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

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29912872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档