[0086] 其中bitdepth为宏块任一像素的像素位宽。
[0087] 则第一梯度中梯度的取值范围为[0,H),第二梯度的梯度取值范围(H,2H]。
[0088] 其中,计算原始图像的梯度满足如下公式:
[0089]
[0090] 其中,m为所述原始图像像素矩阵的行数,n为所述原始图像像素矩阵的列数,Pi,j为原始图像像素矩阵第i行第j列像素的像素值,Num为Pi-1,j、Pi+1,j、Pi,j-1、Pi,j-1这四个像素有效的个数,其中,Pi-1,j、Pi+1,j、Pi,j-1、Pi,j-1任一像素所在的行数或者所在的列数小于0则表示该像素没有真实存在,即为无效,否则,为有效。
[0091] 若Grad∈[0,H),则原始图像为第一梯度,否则Grad∈(H,2H],原始图像为第二梯度。
[0092] (S21)若所述梯度分级为第一梯度则采用基于搜索窗口的预测方法获得第一预测残差作为最终预测残差;包括如下步骤:
[0093] (x1)确定预测搜索窗口和待预测像素;
[0094] 参见图2,图2为本发明实施例提供的一种自适应图像压缩编码方法的预测搜索窗口的像素索引示意图;在编码图像块的像素区域内,用Cij代表待预测像素,Pij代表已编码的重建像素。其中,ij为待预测像素或重建像素的位置索引。设定一个滑动窗口作为预测搜索窗口,预测搜索窗口的形状可以为水平条形、垂直条形、L形、十字形、丁字形、矩形等。预测搜索窗口的大小根据视频图像的纹理特征及预测
精度的需求进行确定,对于纹理比较细或对预测精度需求较低的视频图像,可设置较小的预测搜索窗口,对于纹理比较粗或对预测精度需求较高的视频图像,可设置较大的预测搜索窗口。
[0095] 本发明实施例中,预测搜索窗口的形状为十字形,大小为包含K个像素。该十字形预测搜索窗口的上部、下部、左边和右边包含的像素数目可以相等,也可以不相等。待预测像素Cij可设定位于该十字形预测搜索窗口内,也可以设定位于该十字形预测搜索窗口外。待预测像素Cij可设定位于该十字形预测搜索窗口水平方向的右端,也可以设定位于该十字形预测搜索窗口垂直方向的下端。优选地,待预测像素Cij位于该十字形预测搜索窗口内的最下端位置。预测搜索窗口内的其他位置为已编码的K-1个重建像素Pi,j-1、Pi,j-2、Pi,j-3、...Pi-1,j-3、Pi-2,j-3、...Pi+1,j-3、Pi+2,j-3、...。在对待预测像素Cij进行编码时,根据K-1个重建像素的重建值NewData(P)来预测待预测像素Cij的重建值NewData(Cij)。
[0096] 其中,已编码像素的重建像素值表示原始像素值根据预测参考像素进行预测后得到的预测像素值,再通过量化、码控等压缩编码流程后得到的最终压缩编码像素值再经过逆过程进行反解压还原后的像素值。本发明实施例已编码像素的重建像素值为例进行说明。
[0097] 参见图3,图3为本发明实施例提供的一种自适应图像压缩编码方法的预测搜索窗口的重建像素搜索编号示意图。本发明实施例中,根据K-1个重建像素的重建值来预测待预测像素Cij的重建值时,对十字形窗口内的K-1个重建像素进行顺序编号为0、1、2、...k...、K-2,按照编号对重建像素P0、P1、P2、...Pk...、PK-2进行顺序搜索,先从左至右搜索水平方向的所有重建像素,再从上至下搜索竖直方向的所有重建像素。或者先搜索竖直方向的,再搜索水平方向的。例如,本发明实施例的十字形预测搜索窗口内包含12个重建像素,水平方向从左至右、竖直方向从上至下,对12个重建像素进行编号,从0编号至11,对该12个重建像素P0、P1、P2、...、P11从编号为0的重建像素P0开始搜索,直至搜索到编号为11的重建像素P11,寻找待预测像素Cij的参考像素,计算预测残差。待预测像素Cij的预测残差计算方法如下述步骤描述。
[0098] (x2)在所述预测搜索窗口内确定所述待预测像素的参考像素;
[0099] (x21)获得所述待预测像素的预测像素分量;
[0100] 设定待预测像素Cij包括N个像素分量分别为 其中N为大于1的自然数, 表示待预测像素Cij的第n个像素分量。例如,待预测像素Cij可包括3个像素分量R G B,或包括4个像素分量R G B W,或包括3个像素分量L a b,或包括4个像素分量C M Y K。
[0101] (x22)在预测搜索窗口内计算待预测像素Cij的权重Wij。
[0102] 对应K-1个已编码的重建像素P0、P1、P2、...Pk...、PK-2,权重Wij包括K-1个子权重,即
[0103] Wij={Wij、0,Wij、1,Wij、2,...Wij、k...,Wij、K-2}
[0104] 其中,Wij、k为待预测像素Cij对应已编码的重建像素Pk的子权重。子权重Wij、k为待预测像素Cij的N个像素分量 相对重建像素Pk的N个像素分量的N个分量子权重 加权求和的结果,则
[0105]
[0106] 其中, 为待预测像素Cij的第n个像素分量 相对重建像素Pk的第n个像素分量的分量权重, 为分量加权值,且满足 在本发明的一个实施例中, 的取值为 在本发明的
另一个实施例中,根据像素分量 分别与N个像素分量 的距离大小来确定,距离越近,则对应的 越大;在本发明的又一个实施例中,根据经验确定 的取值。
[0107] 本发明实施例中,待预测像素Cij的权重Wij由待预测像素Cij的差异度权重DIFij确定。对应K-1个已编码的重建像素P0、P1、P2、...Pk...、PK-2,差异度权重DIFij有K-1个差异度子权重DIFij、k,即
[0108] DIFij={DIFij、0,DIFij、1,DIFij、2,...DIFij、k...,DIFij、K-2}
[0109] 权重的确定方法包括如下步骤:
[0110] (x221)计算待预测像素Cij的像素分量 相对重建像素的像素分量的分量差异度权重 每个像素分量 的分量差异度权重 有K-1个分量差异度子权重 即
[0111]
[0112] 其中,分量差异度子权重 根据待预测像素Cij的像素分量 与重建像素Pk的像素分量 的差异度来确定。
[0113] 优选地,本发明实施例中,分量差异度子权重 为像素分量 的原始值与重建像素分量 的重建值 的差值的绝对值,即
[0114]
[0115] (x222)计算待预测像素Cij相对每一个重建像素的子权重Wij、k。待预测像素Cij相对重建像素Pk的子权重Wij、k为待预测像素Cij的N个像素分量 相对重建像素Pk的N个像素分量 的N个分量差异度子权重
加权求和,即
[0116]
[0117] 其中, 为待预测像素Cij的第n个像素分量 相对重建像素Pk的第n个像素分量的分量差异度子权重, 为分量加权值,且满足在本发明的一个实施例中, 的取值为 在本发明
的另一个实施例中,根据像素分量 分别与N个像素分量 的距离大小来确定,距离越近,则对应的 越大;在本发明的又一个实施例中,根据经验确定 的取值。
[0118] (x223)计算待预测像素Cij的权重Wij。则权重为
[0119]
[0120] 其中,步骤(x22)中的权重也可以通过下面的步骤进行计算:
[0121] 在预测搜索窗口内计算待预测像素Cij的权重Wij时,权重Wij由待预测像素的差异度权重DIFij和位置权重POSij共同确定。对应K-1个已编码的重建像素P0、P1、P2、...Pk...、PK-2,差异度权重DIFij有K-1个差异度子权重DIFij、k,位置权重POSij有K-1个位置子权重POSij、k,即
[0122] DIFij={DIFij、0,DIFij、1,DIFij、2,...DIFij、k...,DIFij、K-2}
[0123] POSij={POSij、0,POSij、1,POSij、2,...POSij、k...,POSij、K-2}
[0124] 计算待预测像素的像素分量 相对重建像素的像素分量的分量差异度权重每个像素分量 的分量差异度权重 有K-1个分量差异度子权重 即
[0125]
[0126] 其中,分量差异度子权重 根据待预测像素Cij的像素分量 与重建像素Pk的像素分量 的差异度来确定。
[0127] 优选地,本发明实施例中,分量差异度子权重 为像素分量 的原始值与重建像素分量 的重建值 的差值的绝对值,即
[0128]
[0129] 计算待预测像素的像素分量 相对重建像素的像素分量的分量位置权重每个像素分量 的分量位置权重 有K-1个分量位置子权重 即
[0130]
[0131] 其中,分量位置子权重 根据待预测像素Cij与重建像素Pk的位置关系来确定。
[0132] 参见图4,图4为本发明实施例提供的一种自适应图像压缩编码方法的预测搜索窗口中位置子权重的示意图。本发明实施例中,以待预测像素Cij与重建像素Pk相间隔的像素数作为分量位置子权重 对应预测搜索窗口中的K-1个重建像素P0、P1、P2、...Pk...、PK-2,例如与待预测像素Cij相邻的重建像素P11与Cij间隔像素数为0,则确定对应分量位置子权重为 重建像素P10与Cij间隔像素数为1,则确定对应分量位置子权重为同理,对应共12个重建像素P0、P1、P2、...Pk...、PK-2的12个分量位置子权重为:
[0133]
[0134]
[0135]
[0136]
[0137]
[0138]
[0139] 计算待预测像素的像素分量 相对重建像素的像素分量的分量权重 每个像素分量 的分量权重 有K-1个分量子权重 即
[0140]
[0141] 其中,分量子权重为 其中, 和 分别为差异度加权值和位置加权值,且满足 在本发明的一个实施例中,取 在本发
明的另一个实施例中,根据 的大小确定对应 的值, 越大,则 越小;根据
的大小确定 的值, 越大,则 越小。在本发明的又一个实施例中, 和 的
值根据经验值确定。
[0142] 计算待预测像素Cij相对每一个重建像素Pk的子权重Wij、k。待预测像素Cij相对重建像素Pk的子权重Wij、k为待预测像素Cij的N个像素分量 相对重建像素Pk的N个像素分量 的N个分量子权重 加权
求和,即
[0143]
[0144] 其中, 为分量加权值,且满足 在本发明的一个实施例中, 的取值为 在本发明的另
一个实施例中,根据像素分量 分别与N个像素分量 的距离大小来确定,距离越近,则对应的 越大;在本发明的又一个实施例中,根据经验确定 的取值。
[0145] 计算待预测像素Cij的权重,则权重为
[0146]
[0147] (x23)、根据权重Wij确定待预测像素Cij的参考像素;
[0148] 根据权重Wij确定待预测像素Cij的参考像素Ps。具体地,根据最优值算法从权重Wij的K-1个子权重Wij、k中,选择出最优值,将最优值对应的重建像素Ps作为待预测像素Cij的参考像素。最优值确定算法比如是最小权重确定算法,即从权重Wij={Wij、0,Wij、1,Wij、2,...Wij、k...,Wij、K-2}的K-1个子权重中,选择出子权重最小值如Wij、s对应的重建像素Ps,将重建像素Ps作为待预测像素Cij的参考像素。
[0149] (x24)计算待预测像素Cij的预测残差RESij。具体地,根据参考像素即Ps的重建值NewData(Ps)与当前像素编码像素Cij的原始值OldData(Cij)计算待预测像素Cij相对参考像素Ps的预测残差RESij,为
[0150]
[0151] 其中, 为待预测像素Cij的第n个像素分量 相对参考像素Ps的第n个像素分量 的预测残差。
[0152] 采用上述步骤可以获得编码图像块中所有像素分量的预测残差,将所有像素分量的预测残差按照像素顺序依次写入码流即可获得原始图像的第一预测残差作为最终预测残差。
[0153] (S22)若所述梯度分级为第二梯度,则采用基于宏块分割的预测方法获得第二预测残差作为最终预测残差;请参见图5(a)~图5(c),图5(a)为本发明实施例提供的一种自适应图像压缩编码方法的水平分割方式的原理示意图;图5(b)为本发明实施例提供的一种自适应图像压缩编码方法的垂直分割方式的原理示意图;图5(c)为本发明实施例提供的一种自适应图像压缩编码方法的不分割方式的原理示意图。
[0154] (y1)将所述原始图像分成若干带预测宏块;
[0155] 将原始图像的像素矩阵划分为若干第一宏块,其中,第一宏块的大小为p×q个像素分量,其中m≥p≥1,n≥q≥1;
[0156] 优选的,可以定义第一宏块的大小为8×1个像素,16×1个像素,32×1个像素,64×1个像素;本实施例以第一宏块的大小为16×1个像素为例说明,其它不同大小的第一宏块同理。第一宏块中的像素按照从0到15的序号从左至右依次排列,每一个序号位置对应一个像素。
[0157] (y2)将所述待预测宏块按照不同分割方式进行分割;
[0158] 如图5a~图5c所示,将第一宏块按照不同分割方式进行分割,具体地,将所述待预测宏块按照水平分割方式进行分割,分割为上宏块(第一宏块)以及下宏块(第二宏块);将所述待预测宏块按照垂直分割方式进行分割,分割为左宏块(第三宏块)以及右宏块(第四宏块);将所述待预测宏块按照不分割方式进行分割。
[0159] (y3)分别计算所述不同分割方式下所述待预测宏块的预测残差和比特数;
[0160] 分别计算不同分割方式下所述待预测宏块对应的不同预测残差。具体地,对于水平分割方式,将上宏块中所有的像素分量,减去上宏块像素分量的最小值,得到上宏块的所有像素分量的预测残差;下宏块同理计算,将下宏块中所有的像素分量,减去下宏块像素分量的最小值,得到下宏块的所有像素分量的预测残差,最终得到该待预测宏块的所有像素分量的第一预测残差;对于垂直分割方式,将左宏块中所有的像素分量,减去左宏块像素分量的最小值,得到左宏块的所有像素分量的预测残差;右宏块同理计算,将右宏块中所有的像素分量,减去右宏块像素分量的最小值,得到右宏块的所有像素分量的预测残差,最终得到该待预测宏块的所有像素分量的第二预测残差;对于不分割方式,将该待预测宏块中的像素分量,减去该待预测宏块中的像素分量的最小值,最终得到该待预测宏块的所有像素分量的预测残差。
[0161] 分别计算不同分割方式下所述待预测宏块对应的不同比特数。具体地,对于水平分割方式,计算所述上宏块中像素分量最大值与所述上宏块中像素分量最小值的第一差值,得到表示所述第一差值的第一最少比特数,计算所述下宏块中像素分量最大值与所述下宏块中像素分量最小值的第二差值,得到表示所述第二差值的第二最少比特数,根据所述第一最少比特数、所述第二最少比特数以及所述待预测宏块的原始数据比特深度得到所述第一比特数,所述第一比特数满足如下公式:
[0162] MBIT1=N1*BIT_MIN1+N2*BIT_MIN2+2*BITDEPTH
[0163] 其中,MBIT1为所述第一比特数,BIT_MIN1为所述第一最少比特数,N*BIT_MIN2为所述第二最少比特数,BITDEPTH为所述待预测宏块的原始数据比特深度,N1为所述上宏块中像素分量数量,N2为所述下宏块中像素分量数量。
[0164] 对于垂直分割方式,计算所述左宏块中像素分量最大值与所述左宏块中像素分量最小值的第三差值,得到表示所述第三差值的第三最少比特数,计算所述右宏块中像素分量最大值与所述右宏块中像素分量最小值的第四差值,得到表示所述第四差值的第四最少比特数,根据所述第三最少比特数、第四最少比特数以及所述待预测宏块的原始数据比特深度得到所述第二比特数,所述第二比特数满足:
[0165] MBIT2=N3*BIT_MIN3+N4*BIT_MIN4+2*BITDETH
[0166] 其中,MBIT2为所述第二比特数,BIT_MIN3为所述第三最少比特数,BIT_MIN4为所述第四最少比特数,BITDEPTH为所述待预测宏块的原始数据比特深度,N3为所述左宏块中像素分量数量,N4为所述右宏块中像素分量数量。
[0167] 对于不分割方式,计算所述待预测宏块中像素分量最大值与所述待预测宏块中像素分量最小值之间的第五差值,得到表示所述第五差值的第五最少比特数,根据所述第五最少比特数以及所述待预测宏块的原始数据比特深度得到所述第三比特数,所述第三比特数满足:
[0168] MBIT3=M*BIT_MIN5+2*BITDETH
[0169] 其中,MBIT3为所述第三比特数,BIT_MIN5为所述第五最少比特数,BITDEPTH为所述待预测宏块的原始数据比特深度,M为所述待预测宏块中像素分量数量。
[0170] (y4)根据所述待预测宏块的预测残差和所述比特数计算分割加权值;
[0171] 根据所述不同预测残差以及所述不同比特数选取分割方式,具体地,对于水平分割方式,根据所述第一分割预测残差得到所述待预测宏块的第一重建值,将所述第一重建值与所述待预测宏块原始值求差的绝对值得到第一重建差值,将所述第一重建差值以及所述第一比特数进行加权得到水平分割方式下待预测宏块的第一加权值,其中,所述第一加权值满足如下公式:
[0172] RDO1=a*MBIT1+b*RES1
[0173] 其中,RDO1为所述第一加权值,MBIT1为所述第一比特数,RES1为所述第一重建差值,a和b为加权系数。
[0174] a和b的取值可以是预先设定的固定值,进一步地,a+b=1,优选地,a可以选取为0.5,b可以选取为0.5,a和b也可以灵活调整大小。
[0175] 对于垂直分割方式,根据所述第二分割预测残差得到所述待预测宏块的第二重建值,将所述第二重建值与所述待预测宏块原始值求差的绝对值得到第二重建差值,将所述第二重建差值以及所述第二比特数进行加权得到垂直分割方式下待预测宏块的第二加权值,其中,所述第二加权值满足如下公式:
[0176] RDO2=a*MBIT2+b*RES2
[0177] 其中,RDO2为所述第二加权值,MBIT2为所述第二比特数,RES2为所述第二重建差值,a和b为加权系数。
[0178] a和b的取值可以是预先设定的固定值,进一步地,a+b=1,优选地,a可以选取为0.5,b可以选取为0.5,a和b也可以灵活调整大小。
[0179] 对于不分割方式,根据所述第三分割预测残差得到所述待预测宏块的第三重建值,将所述第三重建值与所述待预测宏块原始值求差的绝对值得到第三重建差值,将所述第三重建差值以及所述第三比特数进行加权得到不分割方式下待预测宏块的第三加权值,其中,所述第三加权值满足如下公式;
[0180] RDO3=a*MBIT3+b*RES3
[0181] 其中,RDO3为所述第三加权值,MBIT3为所述第三比特数,RES3为所述第三重建差值,a和b为加权系数。
[0182] a和b的取值可以是预先设定的固定值,进一步地,a+b=1,优选地,a可以选取为0.5,b可以选取为0.5,a和b也可以灵活调整大小。
[0183] (y5)根据所述分割加权值获得所述待预测宏块的预测残差以获得所述原始图像的第二预测残差。
[0184] 选取所述第一加权值、第二加权值以及第三加权值中的最小值对应的分割方式为最终的分割方式。
[0185] 输出所述待预测宏块的分割方式、该分割方式下所有的预测残差以及该分割方式下所有像素分量最小值对应的原始像素值。
[0186] 根据所述待预测宏块的预测残差按照宏块顺序依次写入码流获得原始图像的第二预测残差作为最终预测残差。
[0187] (S03)根据所述最终预测残差获得最终量化残差以形成压缩码流。
[0188] 将最终预测残差码流划分为若干量化单元;
[0189] 其中,获取量化参数和补偿参数,所述若干量化单元取相同的量化参数和补偿参数;并且补偿参数和量化参数具有如下关系:
[0190] CP=(1<<QP)/2,
[0191] 其中,QP表示量化参数,CP表示补偿参数,“<<”算式表示,若有表达式a<<m则表示将整型数a按二进制位向左移动m位,高位移出后,低位补0。
[0192] 按照预测残差码流的顺序获取第一个量化单元;
[0193] (S031)采用对所述最终预测残差进行第一量化编码获得第一RDO和第一量化残差;第一量化编码为对量化单元依次进行量化处理;
[0194] 其中,量化处理获得第一量化残差,满足公式:
[0195] QPRES_1i=PRESi>>QP
[0196] 其中,QPRES_1i为量化单元第i位的第一量化残差,PRESi为量化单元第i位的预测残差,i的取值为[0,M-1],M为量化单元像素个数N;
[0197] 其中,“>>”算式表示,若有表达式a>>m则表示将整型数a按二进制位向右移动m位,低位移出后,高位补0。
[0198] 再对第一量化残差进行反量化处理和补偿处理得到第一反量化残差,满足公式:
[0199] IQPRES_1i=QPRES_1i<<QP+CP
[0200] 计算第一量化损失,满足公式:
[0201] LOSS_1i=IQPRES_1i-PRESi
[0202] 计算第一率失真率:
[0203]
[0204] 其中,RDO_1为第一率失真率,pixnum为量化单元的像素个数;a1和a2为权重参数,优选地取a1=a2=1。
[0205] (S032)采用对所述最终预测残差进行第二量化编码获得第二RDO和第二量化残差;第二量化编码为对所述量化单元依次进行补偿处理、量化处理。
[0206] 首先对量化单元依次进行补偿处理、量化处理,得到第二量化残差:
[0207] QPRES_2i=(PRESi+CP)>>QP
[0208] 其中,QPRES_2i为量化单元第i位的第二量化残差;
[0209] 然后,对量化单元的第二量化残差进行反量化处理得到第二反量化残差。
[0210] 计算第二量化损失,满足公式:
[0211] LOSS_2i=IQPRES_2i-PRESi
[0212] 计算第二率失真率:
[0213]
[0214] 其中,RDO_2为第二率失真率,pixnum为量化单元的像素个数;a1和a2为权重参数,优选地取a1=a2=1。
[0215] (S033)比较所述第一RDO和所述第二RDO获得所述最终量化残差。
[0216] 比较所述第一率失真率和所述第二率失真率,若所述第一率失真率小于所述第二率失真率,则将所述第一量化残差作为所述最优量化残差;否则将所述第二量化残差作为所述最优量化残差。
[0217] 将该量化单元对应的最优量化残差和量化模式标识写入量化残差码流。
[0218] 量化模式标识可设置每个最优量化残差之后一位,例如,将量化补偿模式设置为1,补偿量化模式设置为0。
[0219] 获取所有量化单元对应的量化残差码流,按照量化单元的顺序写入传输码流获得最终的压缩码流。
[0220] 本发明实施例主要通过对视频图像压缩编码过程中的预测和量化模块进行优化,本方法的有益效果为:
[0221] 1、本发明通对原始图像的复杂度梯度进行分级,设计不同复杂度对应的压缩编码方案,提高图像压缩编码的适应性和压缩性能;
[0222] 2、本发明采用的用基于搜索窗口的预测方法在通过在十字型搜索窗口内定位参考像素,利用符合纹理特征的十字形预测搜索窗口寻找参考像素,预测效果更优,降低了理论极限熵。此外十字形窗口内像素数少,节约了传输的比特数。
[0223] 3、本发明采用的基于基于宏块分割的预测方法通过不同分割方式进行预测比较获得预测残差,使原始宏块和预测宏块之间的差异度降到最小提高压缩效率。
[0224] 4、本发明采用不同量化模式进行量化并比较量化损失进而使量化损失达到最小。
[0225] 实施例三
[0226] 本实施例在上述实施例的基础上,重点对一种存储介质进行详细描述,该存储介质用于执行如实施一或者实施例二的自适应图像压缩编码方法。
[0227] 以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。