一种压缩编码量化方法转让专利

申请号 : CN201811261720.8

文献号 : CN109510984B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 田林海岳庆冬李雯

申请人 : 和宇健康科技股份有限公司

摘要 :

本发明涉及一种压缩编码量化方法,包括以下步骤:(a)设置量化宏块;(b)获取所述宏块中各像素的预测残差和第一量化参数;(c)根据所述预测残差和所述第一量化参数分别计算SAD1和SAD2;(d)比较所述SAD1对应的第一量化方法和所述SAD2的大小,若所述SAD1≤SAD2,则根据所述SAD1完成所述编码压缩量化,反之则根据所述SAD2对应的第二量化方法完成所述编码压缩量化。本发明实施例,在两种量化方法中选择最合适的量化方法,减少带宽压缩量化过程中的图像损失,减少传输数据量。

权利要求 :

1.一种压缩编码量化方法,其特征在于,包括以下步骤:(a)设置量化宏块;

(b)获取所述宏块中各像素的预测残差和第一量化参数;

(c)根据所述预测残差和所述第一量化参数分别计算SAD1和SAD2;

(d)比较所述SAD1和所述SAD2的大小,若所述SAD1≤SAD2,则根据所述SAD1对应的第一量化方法完成所述编码压缩量化,反之则根据所述SAD2对应的第二量化方法完成所述编码压缩量化;其中,(c1)采用所述第一量化方法,根据所述预测残差和所述第一量化参数计算所述SAD1的步骤包括:(c11)根据所述预测残差和所述第一量化参数获得第一量化残差;

(c12)根据所述第一量化残差和所述第一量化参数获得第一反量化残差;

(c13)根据所述第一反量化残差和所述预测残差获得残差损失;

(c14)根据所述残差损失获取预设模板;

(c15)根据所述预设模板以及所述残差损失获得补偿模板、第二反量化残差以及所述SAD1;其中,根据所述预设模板以及所述残差损失获得补偿模板、第二反量化残差以及所述SAD1的步骤包括:(x1)根据所述预设模板以及所述残差损失获得所述补偿模板;

(x2)根据所述补偿模板、所述第一量化参数、所述第一量化残差获得所述第二反量化残差;

(x3)根据所述第二反量化残差和所述预测残差计算所述SAD1;

(c2)采用所述第二量化方法,根据所述预测残差和所述第一量化参数计算所述SAD2的步骤包括:(c21)根据所述预测残差获得残差分布类型;

(c22)根据所述第一量化参数确定所述第一量化参数的最大值、最小值以及差异值;

(c23)根据所述残差分布类型、所述最大值、所述最小值以及所述差异值构建量化矩阵并计算所述宏块的各像素的第二量化参数;

(c24)根据所述量化矩阵对所述预测残差进行量化,得到所述宏块中各像素的第二量化残差和第三反量化残差;

(c25)根据所述第三反量化残差以及所述预测残差计算SAD2;

设置十六组所述预设模板计算所述补偿模板;

所述残差分布类型包括:递弱型、递强型、强弱强型、弱弱弱型、普通型;其中,设置量化单元为宏块MB,即一个所述宏块MB采用统一的第一量化参数QP,所述第一量化参数QP由码率控制给出,设置所述宏块MB的大小为8*1;

波动系数k的公式为:

式中,Lossresi为所述残差损失;pixnumnone0为所述宏块MB内非0的预测残差数量;abs表示求绝对值,round表示四舍五入;

将16组所述预设模板的所述波动状态用表格来表达,如下表所示:将16组所述预设模板分别带入SAD公式中,比较SAD的大小,最小值对应的所述预设模板作为所述补偿模板;

式中,所述Lossresi为残差损失;ci为所述波动状态0≤i≤7;k为所述波动系数,pixnum为所述宏块MB内像素点的数量;

所述第二反量化残差的公式为:

invResqp2i=(Resqp1i<

其中,Resi为所述宏块MB中第i位像素的所述预测残差,invResqp2i为所述宏块MB中第i位像素的所述第二反量化残差,m×n表示所述量化矩阵的大小,ABS表示取绝对值;

所述残差分布类型由残差分布系数来决定;将所述残差分布系数记为Gradj,其中,j为1到4的整数,所述残差分布系数Gradj满足:其中,ri为所述宏块MB中第i位的像素的所述预测残差的绝对值,i为0到n-1的整数,n为所述宏块MB内像素点的数量;

分别判断Gradj是否满足如下条件:

若Grad1>a1,则所述残差分布类型属于递弱型;

若Grad2>a2,则所述残差分布类型属于递强型;

若Grad3>a3,则所述残差分布类型属于弱强弱型;

若Grad4>a4,则所述残差分布类型属于强弱强型;

如果以上条件都不满足,则所述残差分布类型属于普通型;

若根据上述公式计算出来的所述残差分布类型出现多种类型同时存在的情况,则取Gradj最大的值所对应的类型为所述残差分布类型;aj为设定阈值,j为1到4的整数;

所述最大值MAXQP、所述最小值MINQP、所述差异值DIFQP分别满足:式中,bitdepth为原始像素的比特深度;

计算所述宏块MB中按从左到右顺序的每个像素的所述第二量化参数QPi,i为像素序号,i为0到n-1的整数;

当n=8时,

若所述残差分布类型为递弱型,则QPi满足:若所述残差分布类型为递强型,则QPi满足:若所述残差分布类型为弱强弱型,则QPi满足:若残差分布类型为强弱强型,则QPi满足:若残差分布类型为普通型则QPi满足:

QPi=QP,0≤i≤7

最终求得量化矩阵为:QPmatrix=QPi,0≤i≤7。

2.根据权利要求1所述的压缩编码量化方法,其特征在于,步骤(c21)包括:(y1)根据所述预测残差获得残差分布系数;

(y2)根据所述残差分布系数获得所述残差分布类型。

说明书 :

一种压缩编码量化方法

技术领域

[0001] 本发明属于压缩编码领域,具体涉及一种压缩编码量化方法。

背景技术

[0002] 带宽压缩属于低复杂度低倍率压缩,因此空域量化在其中较为常用。为了节省传输量化参数的bit,往往对于1个MB中所有像素采用相同量化参数。这样存在以下缺点:1.对跨纹理边界的MB,由于人眼主观特性,对不同纹理采用相同QP,不但会造成主观损失,而且不能节约编码比特数;2.MB中,预测残差大小不一,对所有像素点采用相同QP,会扩大的原始像素和重建像素之间的差异损失。若采用像素级量化,虽然可以避免以上问题,但是由于每个像素都要传输一个量化参数,会导致大量的附加bit,起不到压缩的效果。若对预测残差直接量化,则对量化产生的损失,没有根据损失的位置和损失的大小分布,进行进一步处理,最终不能进一步降低量化损失。

发明内容

[0003] 为了解决现有技术中存在的上述问题,本发明提供了一种压缩编码量化方法。本发明要解决的技术问题通过以下技术方案实现:
[0004] 本发明实施例提供了一种带宽压缩量化方法,包括以下步骤:
[0005] (a)设置量化宏块;
[0006] (b)获取所述宏块中各像素的预测残差和第一量化参数;
[0007] (c)根据所述预测残差和所述第一量化参数分别计算SAD1和SAD2;
[0008] (d)比较所述SAD1和所述SAD2的大小,若所述SAD1≤SAD2,则根据所述SAD1对应的第一量化方法完成所述编码压缩量化,反之则根据所述SAD2对应的第二量化方法完成所述编码压缩量化。
[0009] 在本发明的一个实施例中,步骤(c)包括:
[0010] (c1)采用所述第一量化方法,根据所述预测残差和所述第一量化参数计算所述SAD1;
[0011] (c2)采用所述第二量化方法,根据所述预测残差和所述第一量化参数计算所述SAD2。在本发明的一个实施例中,步骤(c1)包括:
[0012] (c11)根据所述预测残差和所述第一量化参数获得第一量化残差;
[0013] (c12)根据所述第一量化残差和所述第一量化参数获得第一反量化残差;
[0014] (c13)根据所述第一反量化残差和所述预测残差获得残差损失;
[0015] (c14)根据所述残差损失获取所述预设模板;
[0016] (c15)根据所述预设模板以及所述残差损失获得补偿模板、第二反量化残差以及所述SAD1。
[0017] 在本发明的一个实施例中,所述预设模板由波动系数和波动状态确定。
[0018] 在本发明的一个实施例中,步骤(c15)包括:
[0019] (x1)根据所述预设模板以及所述残差损失获得所述补偿模板;
[0020] (x2)根据所述补偿模板、所述第一量化参数、所述第一量化残差获得所述第二反量化残差;
[0021] (x3)根据所述第二反量化残差和所述预测残差计算所述SAD1。
[0022] 在本发明的一个实施例中,设置十六组所述预设模板计算所述补偿模板。
[0023] 在本发明的一个实施例中,步骤(c2)包括:
[0024] (c21)根据所述预测残差获得残差分布类型;
[0025] (c22)根据所述第一量化参数确定所述第一量化参数的最大值、最小值以及差异值;
[0026] (c23)根据所述残差分布类型、所述最大值、所述最小值以及所述差异值构建量化矩阵并计算所述宏块的各像素的第二量化参数;
[0027] (c24)根据所述量化矩阵对所述预测残差进行量化,得到所述宏块中各像素的第二量化残差和第三反量化残差;
[0028] (c25)根据所述第三反量化残差以及所述预测残差计算SAD2。
[0029] 在本发明的一个实施例中,步骤(c21)包括:
[0030] (y1)根据所述预测残差获得残差分布系数;
[0031] (y2)根据所述残差分布系数获得所述残差分布类型。
[0032] 在本发明的一个实施例中,所述残差分布类型包括:递弱型、递强型、强弱强型、弱弱弱型、波浪1型、波浪2型以及普通型。
[0033] 与现有技术相比,本发明的有益效果:
[0034] 1.本发明通过对两种不同的量化方法进行比较,选择合适的量化模式,压缩编码量化带来的损失。
[0035] 2.本发明通过将选择的量化模式以及对应的附加标志位固定存储在压缩端和解码端,写入码流时,只需要将量化模式以及对应的附加标志位写入码流,这样可以方便传递,减少传输比特数。

附图说明

[0036] 图1为本发明实施例提供的一种压缩编码量化方法的流程示意图。

具体实施方式

[0037] 下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
[0038] 实施例一
[0039] 请参见图1,图1为本发明实施例提供的一种压缩编码量化方法的流程示意图。
[0040] 一种压缩编码量化方法,包括以下步骤:
[0041] (a)设置量化宏块;
[0042] (b)获取所述宏块中各像素的预测残差和第一量化参数;
[0043] (c)根据所述预测残差和所述第一量化参数分别计算SAD1和SAD2;
[0044] (d)比较所述SAD1和所述SAD2的大小,若所述SAD1≤SAD2,则根据所述SAD1对应的第一量化方法完成所述编码压缩量化,反之则根据所述SAD2对应的第二量化方法完成所述编码压缩量化。
[0045] 在一个具体实施例中,采用所述第一量化方法计算所述SAD1;采用所述第二量化方法计算所述SAD2,比较所述SAD1和所述SAD2的大小,将最小的值所对应的量化方法作为最终的量化模式完成压缩编码量化。
[0046] 本发明实施例,通过两种量化方法分别计算SAD1和SAD2的大小,选择合适的量化模式,提高了压缩编码量化过程中的图像损失、减少了传输数据量。
[0047] 实施例二
[0048] 请再次参见图1。本实施例在上述实施例的基础上,重点对一种压缩编码量化方法进行详细描述。
[0049] (S100)设置量化宏块。
[0050] 设置量化单元为宏块MB,即一个所述宏块MB采用统一的第一量化参数QP,所述第一量化参数QP由码率控制给出。
[0051] 在一个具体实施例中,取QP为2。
[0052] 设置所述宏块MB的大小为8*1。
[0053] (S101)获取所述宏块MB中各像素点的预测残差。
[0054] 在一个具体实施例中,所述宏块MB中所有像素点的预测残差Res为{12,13,15,18,20,23,15,10}。
[0055] (S102)根据所述预测残差和所述第一量化参数获得第一量化残差。
[0056] 所述第一量化残差的计算公式为:
[0057] Resqp1i=Resi>>QP
[0058] 式中,Resqp1i为所述第一量化残差;Resi为各像素的所述预测残差,0≤i≤7;QP为所述第一量化参数,>>QP表示除以2QP。
[0059] 计算可得,所述第一量化残差为{3,3,3,4,5,5,3,2}
[0060] (S103)根据所述第一量化残差和所述第一量化参数获得第一反量化残差。
[0061] 所述第一反量化残差的计算公式为:
[0062] invResqp1i=(Resqp1i<<QP)+(1<<QP)/2
[0063] 式中,invResqp1i为所述第一反量化残差;Resqp1i为所述第一量化残差,0≤i≤7;QP为所述第一量化参数,>>QP表示除以2QP,<
[0064] 计算可得,所述第一反量化残差为{14,14,14,18,22,22,14,10}。
[0065] (S104)根据所述第一反量化残差和所述预测残差获得残差损失。
[0066] 所述残差损失的计算公式为:
[0067] Lossresi=invResqp1i-Resi
[0068] 式中,Lossresi为所述残差损失;invResqp1i为所述第一反量化残差;Resi为各像素的预测残差,0≤i≤7。
[0069] 计算可得,所述残差损失为{2,1,-1,0,2,-1,-1,0}。
[0070] (S105)根据所述残差损失设置预设模板。
[0071] 为了进一步降低量化引起的差异,通过设置所述预设模板对所述残差损失Lossresi进行处理。所述预设模板由波动系数k和波动状态(c1、c2……cn-1)来确定。
[0072] 在一个具体实施例中,所述波动系数k的公式为:
[0073]
[0074] 式中,Lossresi为所述残差损失;pixnumnone0为所述宏块MB内非0的预测残差数量;abs表示求绝对值,round表示四舍五入。
[0075] 计算可得,k=1。
[0076] 在一个具体实施例中,所述波动状态用公式进行表达,所述波动状态满足:
[0077] ci=(Lossresi>0)?1:((Lossresi<0)?-1:0)
[0078] 式中,若Lossresi﹥0,则取ci为1;若Lossresi﹤0,则取ci为1;若Lossresi=0,则取ci为0。
[0079] 在一个具体实施例中,将16组所述预设模板的所述波动状态用表格来表达。如表1所示。
[0080]
[0081] 表1 16组预设模板的波动状态
[0082] (S106)根据所述预设模板以及所述残差损失获得补偿模板、第二反量化残差以及所述SAD1。
[0083] 在一个具体实施例中,设置16组所述预设模板计算所述补偿模板。
[0084] 将16组所述预设模板分别带入SAD公式中,比较SAD的大小,最小值对应的所述预设模板作为所述补偿模板。
[0085]
[0086] 式中,所述Lossresi为残差损失;ci为所述波动状态0≤i≤7;k为所述波动系数。
[0087] 其中,所述第二反量化残差的公式为:
[0088] invResqp2i=(Resqp1i<
[0089] 所述SAD1的计算公式为:
[0090]
[0091] 其中,Resi为所述宏块MB中第i位像素的所述预测残差,invResqp2i为所述宏块MB中第i位像素的所述第二反量化残差,m×n表示所述量化矩阵的大小,ABS表示取绝对值。
[0092] (S200)根据所述量化宏块的大小获取量化矩阵的大小。
[0093] 将所述待量化的宏块MB平铺到一维进行计算。
[0094] 在一个具体实施例中,若所述宏块MB为8*4,则将所述宏块MB从2维平铺到1维后为32*1,且平铺顺序可设定。
[0095] 设平铺后所述宏块MB中像素的数量为n,此处,n为4的倍数,可设置所述量化矩阵的大小和所述宏块MB的大小相同,也可设置所述量化矩阵的大小和所述宏块MB的大小不同。
[0096] (S201)根据所述宏块中所有像素的预测残差获得残差分布类型。
[0097] 在一个具体实施例中,所述残差分布类型包括:递弱型、递强型、强弱强型、弱弱弱型、普通型。
[0098] 所述残差分布类型由残差分布系数来决定。
[0099] 在一个具体实施例中,将所述残差分布系数记为Gradj,其中,j为1到4的整数,所述残差分布系数Gradj满足:
[0100]
[0101] 其中,ri为所述宏块MB中第i位的像素的所述预测残差的绝对值,i为0到n-1的整数。
[0102] 分别判断Gradj是否满足如下条件:
[0103] 若Grad1>a1,则所述残差分布类型属于递弱型;
[0104] 若Grad2>a2,则所述残差分布类型属于递强型;
[0105] 若Grad3>a3,则所述残差分布类型属于弱强弱型;
[0106] 若Grad4>a4,则所述残差分布类型属于强弱强型;
[0107] 如果以上条件都不满足,则所述残差分布类型属于普通型。
[0108] 若根据上述公式计算出来的所述残差分布类型出现多种类型同时存在的情况,则取Gradj最大的值所对应的类型为所述残差分布类型。
[0109] 在一个具体实施例中,aj为设定阈值,j为1到4的整数;
[0110] 在一个具体实施例中,a1=a2=a3=a4=1.5;aj也可根据实际情况设置为其它值。
[0111] 在一个具体实施例中,当n=8时,
[0112]
[0113] 若Grad1>a1,则所述残差分布类型属于递弱型。
[0114]
[0115] 若Grad2>a2,则所述残差分布类型属于递强型。
[0116]
[0117] 若Grad3>a3,则所述残差分布类型属于弱强弱型。
[0118]
[0119] 若Grad4>a4,则所述残差分布类型属于强弱强型。
[0120] 若上述四种情况均不满足,则所述残差分布类型为普通型;若上述四种情况同时满足两种或者两种以上,则取Gradj最大的值所对应的类型为所述残差分布类型。
[0121] (S202)获取所述宏块的第一量化参数,根据所述第一量化参数确定所述第一量化参数的最大值、最小值以及差异值。
[0122] 所述最大值MAXQP、所述最小值MINQP、所述差异值DIFQP分别满足:
[0123]
[0124] 式中,bitdepth为原始像素的比特深度。
[0125] (S203)根据所述残差分布类型、所述最大值、所述最小值以及所述差异值构建量化矩阵并计算所述宏块的每个像素的第二量化参数。
[0126] 计算所述宏块MB中按从左到右顺序的每个像素的所述第二量化参数QPi,i为像素序号,i为0到n-1的整数。
[0127] 在一个具体实施例中,当n=8时,
[0128] 若所述残差分布类型为递弱型,则QPi满足:
[0129]
[0130] 若所述残差分布类型为递强型,则QPi满足:
[0131]
[0132] 若所述残差分布类型为弱强弱型,则QPi满足:
[0133]
[0134] 若残差分布类型为强弱强型,则QPi满足:
[0135]
[0136] 若残差分布类型为普通型则QPi满足:
[0137] QPi=QP,0≤i≤7
[0138] 最终求得量化矩阵为:QPmatrix=QPi,0≤i≤7。
[0139] 在一个具体实施例中,当n=16时,
[0140] 若所述残差分布类型为递弱型,则QPi满足:
[0141]
[0142] 若所述残差分布类型为递强型,则QPi满足:
[0143]
[0144] 若所述残差分布类型为弱强弱型,则QPi满足:
[0145]
[0146] 若残差分布类型为强弱强型,则QPi满足:
[0147]
[0148] 若残差分布类型为波浪1型,则QPi满足:
[0149]
[0150] 若残差分布类型为波浪1型,则QPi满足:
[0151]
[0152] 需要说明的是,当n=16时,上述六组公式中的weighti针对不同的类型,可人工设定不同的数值。
[0153] 若所述残差分布类型为普通型,则QPi满足:
[0154] QPi=QP,0≤i≤15
[0155] 最终求得量化矩阵为:QPmatrix=QPi,0≤i≤15。
[0156] (S204)根据所述量化矩阵对所述宏块中各像素的所述预测残差进行量化,得到所述各像素的第二量化残差和第三反量化残差。
[0157] 对于各像素的所述预测残差,采用先补偿后量化的办法,所述第二量化残差的公式为:
[0158] Resqp2i=(Resi+(1<<QPi)/2)>>QPi
[0159] 其中,Resqp2i为所述宏块MB中第i个像素的第二量化残差;Resi为所述宏块MB中第QPi QPii个像素的预测残差;<<QPi表示乘以2 ,>>QPi表示除以2 。
[0160] 所述第三反量化残差公式为:
[0161] invResqp3i=(Resqp2i<<QPi)-(1<<QPi)/2)
[0162] (S205)根据所述第三反量化残差以及所述预测残差计算SAD2。所述SAD2的计算公式为:
[0163]
[0164] 其中,Resi为所述宏块MB中第i位像素的所述预测残差,invResqp3i为所述宏块MB中第i位像素的所述第三反量化残差,m×n表示所述量化矩阵的大小,ABS表示取绝对值。
[0165] (S300)比较所述SAD1和所述SAD2的大小,若所述SAD1≤SAD2,则取所述SAD1对应的量化方法为最终的量化模式,完成所述编码压缩量化,反之则取所述SAD2对应的量化方法为最终的量化模式,完成所述编码压缩量化。
[0166] (S400)将最终采用的所述量化模式以及其余附加标识写入码流,使解码端能够正确识别所要进行的量化模式,从而完成带宽压缩的矩阵量化。
[0167] 若最后选用的是SAD1所对应的量化方法,则将所述SAD1对应的量化方法标识为0,所述补偿模板标识为1,将所述第一量化残差、所述SAD1对应的量化方法的标识号、所述补偿模板的标识号写入码流,使解码端能够正确识别所要进行的量化模式,完成所述带宽压缩的矩阵量化。
[0168] 若最后选用的是SAD2所对应的量化方法,则将所述SAD2对应的量化方法标识为1,将所述残差分布类型分别进行标识,将递弱型标识为0、递强型标识为1、弱强弱型标识为2、强弱强型标识为3、波浪1型标识为4、波浪2型标识为5、普通型标识为6,将所述第二量化残差、所述SAD1对应的量化方法的标识号、相应的残差分布类型的标识号写入码流,使解码端能够正确识别所要进行的量化模式以及对应的残差分布类型,完成所述带宽压缩的矩阵量化。
[0169] 本发明实施例,通过这种方法,可以达到以下有益效果:
[0170] 1.本发明通过采用量化矩阵对宏块MB进行量化,能够对宏块MB的不同纹理区域的量化进行区别处理,这种矩阵量化方法不但可以实现像素级量化,而且仅需要传送量化矩阵的序号,节省了大量的比特数。
[0171] 2.本发明通过对两种不同的量化方法进行比较,选择合适的量化模式,使编码压缩量化图像损失最少。
[0172] 以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。