率失真优化量化方法技术

技术编号:39570585 阅读:6 留言:0更新日期:2023-12-03 19:21
本申请涉及一种率失真优化量化方法

【技术实现步骤摘要】
率失真优化量化方法、装置、电子设备及存储介质


[0001]本专利技术涉及视频压缩
,具体涉及一种率失真优化量化方法

装置

电子设备及存储介质


技术介绍

[0002]相关技术中,标量量化因为死区固定,因此不能达到性能最优,率失真优化量化
(RDOQ)
由于在量化的过程中考虑了率失真代价,所以可以最大限度优化压缩性能
。RDOQ
技术会从多种量化方案中比较率失真代价,最后选取率失真代价最小的那个方案以达到最优性能

量化方案可以由不同的量化参数
(QP)
确定,也可由不同的量化偏移确定

其中,
RDOQ
技术始于
H.264/AVC
视频编码标准

[0003]相关技术中,提出了一个早期的
RDOQ
方法,此方法为每个编码块选取最优的
QP
以达到优化的目的

相关技术中,还提出一个进一步改进的方法,通过一些快速算法去掉一些不必要的候选
QP
从而减少遍历的数量

但是,这些方法不适用于开启码率控制的应用,因为码率控制会进一步改变每个块的
QP
以达到平衡码率的作用

其中,
RDOQ
的关键是计算每个量化方案的率失真代价,率失真代价可以定义为:
[0004]C

D+ λ
×
R
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0005]其中,
C
是率失真代价,
D
是原始信号和解码信号之间的失真,
R
是编码码率,
λ
是率失真参数
。D
可以通过计算原始信号和解码信号之间的差值得到

但是,因为熵编码器的顺序执行特点和上下文模型的高复杂度,准确的码率
R
通常比较难以获得

相关技术中提出了一种将量化系数直接输入熵编码器得到码率
R
的方法,但是还是需要经过熵编码器的大量运算所以并不适合低延迟的场景

[0006]为了减少
RDOQ
对熵编码器的依赖,
RDOQ
采用了许多技术快速估计失真
D
和码率
R。
首先,跳过反变换步骤直接计算失真
D。
然后,通过查询经过大量训练的熵编码表估计码率
R
从而无需依赖熵编码器

相关技术中,提出了一种简单有效的应用于
H.265/HEVC
中的
RDOQ
方法

此方法试图改变非零系数的空间分布和减小非零系数的绝对值达到最小化率失真代价的目的

对量化残差系数而言,非零系数的位置和非零系数的绝对值占据了编码码率的大部分,
RDOQ
试图对这些位置和绝对值进行微调,从而使熵编码其能够以更高的效率压缩信息

一般来说,
RDOQ
可以减少编码码率
R
,但是会增加编码失真
D
,但是通过最小化率失真代价
C
达到改善最终编码质量的目的

[0007]相关技术中,还进一步提出了快速算法

通过检查量化系数和
QP
的乘积判定是否需要
RDOQ。
如果乘积小于某个阈值,
RDOQ
激活

否则,
RDOQ
关闭

[0008]然而,相关技术中,
RDOQ
方法要求量化系数以预定义的顺序到达并按顺序处理它们,这对于软件实现来说可行,但对于硬件实现来说并不是最优的

具体来说,当
RDOQ
模块处理一个特定的量化系数时,需要完成对先前量化系数的处理

这种依赖性使得对多个量化系数的并行处理很困难,从而无法充分发挥硬件的并行能力


技术实现思路

[0009]本申请的目的在于提供一种率失真优化量化方法

装置

电子设备及存储介质,可以并行处理量化系数,降低硬件的处理延迟

[0010]根据本申请实施例的第一方面,提供一种率失真优化量化方法,应用于编码器,所述方法,包括:
[0011]对变换系数矩阵进行量化,得到第一量化系数矩阵;其中,所述变换系数矩阵包括至少一个变换系数,所述第一量化系数矩阵包括至少一个第一量化系数;
[0012]将所述第一量化系数矩阵划分为至少两个不重叠的第一量化系数子矩阵;
[0013]对至少两个所述第一量化系数子矩阵进行数据统计,获取量化统计数据;所述量化统计数据用于消除至少两个所述第一量化系数子矩阵之间的依赖关系;
[0014]针对每个所述第一量化系数子矩阵,对非零的所述第一量化系数进行系数调整,得到第二量化系数子矩阵;所述第二量化系数子矩阵包括至少一个第二量化系数;至少两个所述第一量化系数子矩阵的系数调整并行执行;
[0015]根据所述第二量化系数子矩阵以及所述第一量化系数子矩阵与所述第一量化系数矩阵的关系,获取第二量化系数矩阵,所述第二量化系数矩阵包括至少一个所述第二量化系数

[0016]在一种实施方式中,所述对变换系数矩阵进行量化,得到第一量化系数矩阵,包括:
[0017]针对所述变换系数矩阵中的每个所述变换系数,采用量化偏移参数对所述变换系数进行量化,得到所述第一量化系数

[0018]在一种实施方式中,所述第一量化系数采用如下计算式计算得到:
[0019]QCoeff[cIdx][x][y]=
sign[cIdx][x][y]×
((|TCoeff[cIdx][x][y]|
×
quantizationScaler[cIdx][x][y]+(1
<<
(quantizationShift[cIdx][x][y]‑
1)))
>>
quantizationShift[cIdx][x][y])

[0020]其中,
QCoeff[cIdx][x][y]为所述第一量化系数,
sign[cIdx][x][y]为所述变换系数的符号,
TCoeff[cIdx][x][y]为所述变换系数,
quantizationScaler[cIdx][x][y]为量化缩放参数,
quantizationShift[cIdx][x][y]为所述量化偏移参数,
cIdx
为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种率失真优化量化方法,其特征在于,应用于编码器,所述方法,包括:对变换系数矩阵进行量化,得到第一量化系数矩阵;其中,所述变换系数矩阵包括至少一个变换系数,所述第一量化系数矩阵包括至少一个第一量化系数;将所述第一量化系数矩阵划分为至少两个不重叠的第一量化系数子矩阵;对至少两个所述第一量化系数子矩阵进行数据统计,获取量化统计数据;所述量化统计数据用于消除至少两个所述第一量化系数子矩阵之间的依赖关系;针对每个所述第一量化系数子矩阵,对非零的所述第一量化系数进行系数调整,得到第二量化系数子矩阵;所述第二量化系数子矩阵包括至少一个第二量化系数;至少两个所述第一量化系数子矩阵的系数调整并行执行;根据所述第二量化系数子矩阵以及所述第一量化系数子矩阵与所述第一量化系数矩阵的关系,获取第二量化系数矩阵,所述第二量化系数矩阵包括至少一个所述第二量化系数
。2.
如权利要求1所述的率失真优化量化方法,其特征在于,所述对变换系数矩阵进行量化,得到第一量化系数矩阵,包括:针对所述变换系数矩阵中的每个所述变换系数,采用量化偏移参数对所述变换系数进行量化,得到所述第一量化系数
。3.
如权利要求2所述的率失真优化量化方法,其特征在于,所述第一量化系数采用如下计算式计算得到:
QCoeff[cIdx][x][y]

sign[cIdx][x][y]
×
((|TCoeff[cIdx][x][y]|
×
quantizationScaler[cIdx][x][y]+(1
<<
(quantizationShift[cIdx][x][y]

1)))
>>
quantizationShift[cIdx][x][y])
;其中,
QCoeff[cIdx][x][y]
为所述第一量化系数,
sign[cIdx][x][y]
为所述变换系数的符号,
TCoeff[cIdx][x][y]
为所述变换系数,
quantizationScaler[cIdx][x][y]
为量化缩放参数,
quantizationShift[cIdx][x][y]
为所述量化偏移参数,
cIdx

Y、U、V
分量索引,
x、y
为所述变换系数在所述变换系数矩阵中的坐标
。4.
如权利要求1所述的率失真优化量化方法,其特征在于,对所述第一量化系数矩阵进行统计,获取量化统计数据之前,还包括:为至少一个上下文模型创建对应的数组,并初始化所述上下文模型为预定义值;所述数组用于存储对应的上下文模型的状态;所述数组的每个元素为8位整数;其中,所述至少一个上下文模型包括第一上下文模型

第二上下文模型

第三上下文模型与第四上下文模型;至少一个上下文模型对应的数组包括第一数组

第二数组

第三数组与第四数组;所述第一数组为
significantCoeffGroupCtx[2]
,用于存储第一语法元素的条件概率状态,所述第一语法元素为
significantCoeffCroup
,用于指出当前的第一量化系数子矩阵是否有非零的所述第一量化系数;所述第一语法元素为所述第一上下文模型;所述第二数组为
sigCoeffCtx[44]
,用于存储第二语法元素的条件概率状态,所述第二语法元素为
sigCoeffFlag
,用于指出当前的第一量化系数是否为零;所述第二语法元素为所述第二上下文模型;所述第三数组为
greaterOneCoeffCtx[24]
,用于存储第三语法元素的条件概率状态,
所述第三语法元素为
absCoeffGreaterThanOneFlag
,用于指出当前的第一量化系数的绝对值是否大于1;所述第三语法元素为所述第三上下文模型;所述第四数组为
levelAbsCoeffCtx[6]
,用于存储第四语法元素的条件概率状态,所述第四语法元素为
levelAbsCoeff
,是当前的第一量化系数的绝对值;所述第四语法元素为所述第四上下文模型
。5.
如权利要求1所述的率失真优化量化方法,其特征在于,对至少两个所述第一量化系数子矩阵进行数据统计,获取量化统计数据,包括:对所述第一量化系数矩阵的所述第一量化系数子矩阵,按照指定的第一扫描顺序对至少两个所述第一量化系数子矩阵分别进行扫描;针对每个所述第一量化系数子矩阵,按照指定的第二扫描顺序对所述第一量化系数进行扫描,获取所述量化统计数据;所述第一扫描顺序与所述第二扫描顺序相同
。6.
如权利要求5所述的率失真优化量化方法,其特征在于,所述量化统计数据包括:所述第一量化系数子矩阵中绝对值为1的第一量化系数的数量

所述第一量化系数子矩阵中绝对值大于1的第一量化系数的数量

所述第一量化系数子矩阵中绝对值大于2的第一量化系数的数量

所述第一量化系数矩阵中按照所述第一扫描顺序排列的第一个非零的第一量化系数的位置

所述第一量化系数子矩阵中按照所述第二扫描顺序排列的第一个绝对值为4的第一量化系数的位置

所述第一量化系数子矩阵中按照所述第二扫描顺序排列的第一个绝对值为7的第一量化系数的位置

所述第一量化系数子矩阵中按照所述第二扫描顺序排列的第一个绝对值为
13
的第一量化系数的位置以及所述第一量化系数子矩阵中按照所述第二扫描顺序排列的第一个绝对值为
25
的第一量化系数的位置
。7.
如权利要求6所述的率失真优化量化方法,其特征在于,所述第一量化系数子矩阵中绝对值为1的第一量化系数的数量存储于名为
cgOneCnt[64]
的第五数组中,所述第五数组在数据统计前初始化为全零数组,在数据统计过程中,如果当前第一量化系数的绝对值为1,对应的所述第一量化系数子矩阵的
cgOneCnt
自增
1。8.
如权利要求7所述的率失真优化量化方法,其特征在于,所述第一量化系数子矩阵中绝对值为1的第一量化系数的数量采用如下计算式计算得到:其中,
QCoeff[cIdx][x][y]
为所述第一量化系数,
cIdx

Y、U、V
分量索引,
x、y
为所述第一量化系数在所述第一量化系数矩阵中的坐标,
tuSize
为所述变换系数矩阵的大小
。9.
如权利要求6所述的率失真优化量化方法,其特征在于,所述第一量化系数子矩阵中绝对值大于1的第一量化系数的数量存储于名为
cgGreatherThanOneCnt[64]
的第六数组中,所述第六数组在数据统计前初始化为全零数组,在数据统计过程中,如果当前第一量化系数的绝对值大于1,对应的所述第一量化系数子矩阵的
cgGreaterThanOneCnt
自增
1。10.
如权利要求9所述的率失真优化量化方法,其特征在于,所述第一量化系数子矩阵中绝对值大于1的第一量化系数的数量采用如下计算式计算得到:其中,
QCoeff[cIdx][x][y]
为所述第一量化系数,
cIdx

Y、U、V
分量索引,
x、y
为所述第
一量化系数在所述第一量化系数矩阵中的坐标,
tuSize
为所述变换系数矩阵的大小
。11.
如权利要求6所述的率失真优化量化方法,其特征在于,所述第一量化系数子矩阵中绝对值大于2的第一量化系数的数量存储于名为
cgGreaterThanTwoCnt[64]
的第七数组中,所述第七数组在数据统计前初始化为全零数组,在数据统计过程中,如果当前第一量化系数的绝对值大于2,对应的所述第一量化系数子矩阵的
cgGreaterThanTwoCnt
自增
1。12.
如权利要求
11
所述的率失真优化量化方法,其特征在于,所述第一量化系数子矩阵中绝对值大于2的第一量化系数的数量采用如下计算式计算得到:其中,
QCoeff[cIdx][x][y]
为所述第一量化系数,
cIdx

Y、U、V
分量索引,
x、y
为所述第一量化系数在所述第一量化系数矩阵中的坐标,
tuSize
为所述变换系数矩阵的大小
。13.
如权利要求6所述的率失真优化量化方法,其特征在于,所述第一个绝对值为4的第一量化系数的位置存储于名为
cgFirst4Loc[64][2]
的第八数组中,所述第八数组在数据统计前所有元素初始化为
‑1,所述第一个绝对值为4的第一量化系数的位置的纵坐标存储于
cgFirst4Loc[64][0]
,横坐标存储于
cgFirst4Loc[64][1]。14.
如权利要求
13
所述的率失真优化量化方法,其特征在于,如果
Coeff[cIdx][x][y]
是所述第一量化系数子矩阵中第一个绝对值为4的系数,则
cgFirst4Loc
更新为:更新为:其中,
cIdx

Y、U、V
分量索引,
x、y
为所述第一个绝对值为4的系数在所述第一量化系数矩阵中的坐标,
tuSize
为所述变换系数矩阵的大小,
y1
为所述第一个绝对值为4的第一量化系数在所述第一量化系数子矩阵中的纵坐标,
x1
为所述第一个绝对值为4的第一量化系数在所述第一量化系数子矩阵中的横坐标
。15.
如权利要求6所述的率失真优化量化方法,其特征在于,所述第一个绝对值为7的第一量化系数的位置存储于名为
cgFirst7Loc[64][2]
的第九数组中,所述第九数组在数据统计前所有元素初始化为
‑1,所述第一个绝对值为7的第一量化系数的位置的纵坐标存储于
cgFirst7Loc[64][0]
,横坐标存储于
cgFirst7Loc[64][1]。16.
如权利要求
15
所述的率失真优化量化方法,其特征在于,如果
Coeff[cIdx][x][y]
是所述第一量化系数子矩阵中第一个绝对值为7的系数,则
cgFirst7Loc
更新为:更新为:其中,
cIdx

Y、U、V
分量索引,
x、y
为所述第一个绝对值为7的系数在所述第一量化系数矩阵中的坐标,
tuSize
为所述变换系数矩阵的大小,
y2
为所述第一个绝对值为7的第一量化系数在所述第一量化系数子矩阵中的纵坐标,
x2
为所述第一个绝对值为7的第一量化系数在所述第一量化系数子矩阵中的横坐标
。17.
如权利要求6所述的率失真优化量化方法,其特征在于,所述第一个绝对值为
13
的第一量化系数的位置存储于名为
cgFirst13Loc[64][2]
的第十数组中,所述第十数组在数
据统计前所有元素初始化为
‑1,所述第一个绝对值为
13
的第一量化系数的位置的纵坐标存储于
cgFirst13Loc[64][0]
,横坐标存储于
cgFirst13Loc[64][1]。18.
如权利要求
17
所述的率失真优化量化方法,其特征在于,如果
Coeff[cIdx][x][y]
是所述第一量化系数子矩阵中第一个绝对值为
13
的系数,则
cgFirst13Loc
更新为:更新为:其中,
cIdx

Y、U、V
分量索引,
x、y
为所述第一个绝对值为
13
的系数在所述第一量化系数矩阵中的坐标,
tuSize
为所述变换系数矩阵的大小,
y3
为所述第一个绝对值为
13
的第一量化系数在所述第一量化系数子矩阵中的纵坐标,
x3
为所述第一个绝对值为
13
的第一量化系数在所述第一量化系数子矩阵中的横坐标
。19.
如权利要求6所述的率失真优化量化方法,其特征在于,所述第一个绝对值为
25
的第一量化系数的位置存储于名为
cgFirst25Loc[64][2]
的第十一数组中,所述第十一数组在数据统计前所有元素初始化为
‑1,所述第一个绝对值为
25
的第一量化系数的位置的纵坐标存储于
cgFirst25Loc[64][0]
,横坐标存储于
cgFirst25Loc[64][1]。20.
如权利要求
19
所述的率失真优化量化方法,其特征在于,如果
Coeff[cIdx][x][y]
是所述第一量化系数子矩阵中第一个绝对值为
25
的系数,则
cgFirst25Loc
更新为:更新为:其中,
cIdx

Y、U、V
分量索引,
x、y
为所述第一个绝对值为
25
的系数在所述第一量化系数矩阵中的坐标,
tuSize
为所述变换系数矩阵的大小,
y4
为所述...

【专利技术属性】
技术研发人员:徐士麟张世佳埃内斯托
申请(专利权)人:镕铭微电子济南有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1