【技术实现步骤摘要】
基于小波变换的图像编解码方法及装置
本专利技术涉及图像编解码领域,尤其涉及一种基于小波变换的图像编解码方法及装置。
技术介绍
数字图像是以数字信号方式记录的图像信息。数字图像(以下简称图像)可看作一个M行N列的二维阵列,包含M×N个采样,每个采样的位置称为采样位置,每个采样的数值称为采样值。在图像存储、传输等应用中,通常需要对图像做编码操作,以减少存储容量和传输带宽。一个典型的图像编码流程一般包括变换、量化和熵编码三个步骤。针对一幅待编码图像,第一步通过变换对待编码图像进行去相关,得到能量分布更加集中的变换系数;第二步对变换系数进行量化,得到量化系数;第三步对量化系数进行熵编码得到压缩码流。图像编码中常用的变换方式有离散余弦变换,小波变换等。小波变换是一种局部变换方法,能对图像进行局部化、多尺度分析,聚焦到信号的变化细节,非常适合于图像编码任务。不同的小波变换指的是滤波器系数的不同。传统的小波变换的滤波器系数一般从信号处理角度出发,是在理想假设之下设计的,这样得到的小波变换无法适应自然图像的复杂性和多样性。同时,二维小波变换通过行和列方向的一维小波变换组合而成,适合处理具有行和列方向的特征,对于其他方向的特征以及非方向特征,处理能力较弱。针对以上缺点,现有技术提出了一些解决方法。比如在信号处理领域,有很多针对性设计的方向小波被提出,例如:Curvelet,Ridgelet,Contourlet,Bandelet,Shearlet等。在编码时,首先通过方向小波对图像进行小波变换,得到小波 ...
【技术保护点】
1.一种基于小波变换的图像编码方法,其特征在于,包括:/n根据小波变换模型对待编码图像进行N次小波变换,以得到小波系数,所述小波变换模型是基于卷积神经网路CNN实现的,所述N为大于0的整数;/n对所述小波系数进行量化,以得到量化后的小波系数;/n对所述量化后的小波系数进行熵编码,得到压缩码流。/n
【技术特征摘要】
1.一种基于小波变换的图像编码方法,其特征在于,包括:
根据小波变换模型对待编码图像进行N次小波变换,以得到小波系数,所述小波变换模型是基于卷积神经网路CNN实现的,所述N为大于0的整数;
对所述小波系数进行量化,以得到量化后的小波系数;
对所述量化后的小波系数进行熵编码,得到压缩码流。
2.根据权利要求1所述的方法,其特征在于,所述根据小波变换模型对待编码图像进行N次小波变换,以得到小波系数,包括:
在进行第i次小波变换时,对子带X进行分解,以得到奇数采样分量和偶数采样分量,其中,所述奇数采样分量由所述子带X中奇数行系数或奇数列系数构成,所述偶数采样分量由所述子带X中偶数行系数或偶数列系数构成,
对所述偶数采样分量和奇数采样分量进行更新操作和预测操作,以得到中间近似分量和中间细节分量;
对所述中间近似分量进行分解,以得到第一采样分量和第二采样分量;其中,所述第一采样分量由所述中间近似分量的奇数列的系数或奇数行的系数,所述第二采样分量由所述中间近似分量的偶数列的系数或偶数行的系数构成;
对所述中间细节分量进行分解,以得到第三采样分量和第四采样分量;其中,所述第三采样分量由所述中间细节分量的奇数行的系数或奇数行的系数构成,第四采样分量由所述中间细节分量的偶数列的系数或偶数行的系数构成;
对所述第一采样分量和第二采样分量进行所述更新操作和所述预测操作,以得到近似子带Pi和细节子带Ii1;
对所述第三采样分量和第四采样分量进行所述更新操作和所述预测操作,以得到细节子带Ii2和细节子带Ii3;
其中,所述小波系数包括近似子带Pi、细节子带Ii1、细节子带Ii2和细节子带Ii3;当所述第i次小波变换为第一次小波变换时,所述子带X为所述待编码图像;当所述第i次小波变换不是第一次小波变换时,子带X为近似子带Pi-1,所述近似子带Pi-1为进行i-1次小波变换后得到的近似子带。
3.根据权利要求2所述的方法,其特征在于,所述预测操作是基于CNN实现的;
或者所述更新操作是基于CNN实现的;
或者所述预测操作和所述更新操作均是基于CNN实现的。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述对所述量化后的小波系数进行熵编码,得到压缩码流,包括:
根据熵编码模型对所述量化后的小波系数进行编码,以得到所述压缩码流,所述熵编码模型是基于深度神经网络得到实现的。
5.根据权利要求4所述的方法,其特征在于,所述小波系数包括3N+1个子带,所述根据熵编码模型对所述量化后的小波系数进行编码,以得到所述压缩码流,包括:
将第s个子带输入所述熵编码模型中计算得到待编码系数的累积概率分布函数的参数,所述待编码系数为所述第s个子带中任一个系数,所述第s个子带为所述3N+1个子带中的任意一个子带;
根据所述待编码系数的累积概率分布函数的参数得到所述累积概率分布函数;
根据所述待编码系数及其累积概率分布函数获取所述待编码系数的概率分布;
根据所述待编码系数的概率分布,采用算术编码器对所述待编码系数进行熵编码,以得到所述待编码系数对应的码流,所述压缩码流包括所述待编码系数对应的码流。
6.根据权利要求5所述的方法,其特征在于,当所述第s个子带为所述3N+1个子带中的第一个子带时,所述熵编码模型是基于逐像素卷积神经网络pixelCNN实现的,所述熵编码模型包括M个卷积层,所述M为大于0的整数,所述将所述s个子带输入所述熵编码模型中计算得到待编码系数的累积概率分布函数的参数,包括:
当M=1时,根据第1个卷积层对应的窗函数对所述第1个卷积层对应的卷积核进行加窗操作,得到第一加窗后的卷积核;
根据所述第一加窗后的卷积核对所述第s个子带进行卷积操作,得到所述待编码系数的累积概率分布函数的参数;
当M大于1时,在进行第j个卷积层的运算时,根据第j个卷积层对应的窗函数对第j个卷积层对应的卷积核进行加窗操作,得到第二加窗后的卷积核;
根据所述第二加窗后的卷积核对所述第j个卷积层的输入数据进行卷积操作,得到第j个输出数据;
其中,当j=1时,所述第j个卷积层的输入数据为所述第一个子带;当j大于1且不大于M时,所述第j个卷积层的输入数据为第j-1个卷积层的输出数据;当j=M时,所述第j个输出数据包括所述待编码系数的累积概率分布函数的参数。
7.根据权利要求5所述的方法,其特征在于,当所述第s个子带不为所述3N+1个子带中的第一个子带时,所述熵编码模型包括第一熵编码模型、第二熵编码模型和第三熵编码模型,所述第一熵编码模型和第二熵编码模型均是基于逐像素卷积神经网络实现的,所述第三熵编码模型是基于循环神经网络RNN实现的,所述第一熵编码模型包括T1个卷积层,所述第二熵编码模型包括T2个卷积层,所述T1和T2均为大于0的整数,所述将所述s个子带输入所述熵编码模型中计算得到待编码系数的累积概率分布函数的参数,包括:
将第s-1个子带输入到所述第三熵编码模型中进行计算,以得到第一输出结果;所述第一输出结果为所述第二熵编码模型的输入数据;所述第s个子带为所述第一熵编码模型的输入数据;
当所述T1和T2均等于1时,根据卷积层C1和卷积层C2对所述第一输出结果和所述第s个子带进行融合操作,得到第二输出结果,所述第二输出结果为所述待编码系数的累积概率分布函数的参数,所述卷积层C1和所述卷积层C2分别为所述第一熵编码模型和第二熵编码模型中的卷积层;或者
当所述T1大于1且所述T2等于1时,根据卷积层C1和卷积层C2对所述第一输出结果和所述第s个子带进行融合操作,得到所述第二输出结果,所述卷积层C1为所述第一熵编码模型中的第q个卷积层,所述卷积层C2为所述第二熵编码模型中的卷积层;若所述q=T1,则所述第二输出结果为所述待编码系数的累积概率分布函数的参数;若q大于0且小于T1,则所述第二输出结果为所述第一熵编码模型中的第q+1个卷积层的输入数据;或者,
当所述T1和T2均大于1时,根据卷积层C1和卷积层C2对所述第一输出结果和所述第s个子带进行融合操作,得到所述第二输出结果;所述卷积层C1为所述第一熵编码模型中的第q1个卷积层,所述卷积层C2为第二熵编码模型中的第q2个卷积层;若所述q1=T1且q2=T2,则所述第二输出结果为所述待编码系数的累积概率分布函数的参数,若所述q1大于0且小于T1,所述q2大于0且小于T2,则所述第二输出结果为所述第一熵编码模型中的第q1+1个卷积层的输入数据,所述卷积层C2的输出结果为所述第二熵编码模型中的第q2+1个卷积层的输入数据。
8.根据权利要7所述的方法,其特征在于,当所述第s-1个子带的分辨率与第s个子带的分辨率不相同时,所述将第s-1个子带输入到所述第三熵编码模型中进行计算,以得到第一输出结果,包括:
根据所述第三熵编码模型及第三熵编码模型的状态变量对所述第s-1个子带进行卷积运算,以得到卷积结果;
对所述卷积结果进行上采样,以得到所述第一输出结果,所述第一输出结果的分辨率与所述第s个子带的分辨率相同;
所述对所述卷积结果进行上采样,以得到所述第一输出结果之后,所述方法还包括:
对卷积之后的状态变量进行上采样,以得到采样后的状态变量,所述采样后的状态变量与所述第s个子带的分辨率相同。
9.根据权利要求7或8所述的方法,其特征在于,所述根据卷积层C1和卷积层C2对所述第一输出结果和所述第s个子带进行融合操作,包括:
根据第一窗函数对第一卷积核进行加窗操作,以得到加窗后的第一卷积核,所述第一卷积核为所述卷积层C1对应的卷积核;
根据所述加窗后的第一卷积核对第一输入数据进行卷积操作,以得到第一卷积结果;当所述卷积层C1为所述第一熵编码模型中的第1个卷积层时,所述第一输入数据为所述第s个子带,当所述卷积层C1为所述第一熵编码模型中的非第1个卷积层时,所述第一输入数据是对所述第s个子带进行卷积操作得到的,
将第二输入数据输入到所述第二子卷积层进行卷积操作,以得到第二卷积结果;当所述卷积层C2为所述第二熵编码模型中的第1个卷积层时,所述第二输入数据为所述第一输出结果,当所述卷积层C2为所述第二熵编码模型中的非第1个卷积层时,所述第二输入数据是对所述第一输出结果进行卷积操作得到的;
对所述第一卷积结果和第二卷积结果进行相加或堆叠操作,以得到所述第二输出结果。
10.根据权利要求7或8所述的方法,其特征在于,所述根据卷积层C1和卷积层C2对所述第一输出结果和所述第s个子带进行融合操作,以得到第二输出结果,包括:
根据第一窗函数对第一卷积核进行加窗操作,以得到加窗后的第一卷积核,所述第一卷积核为所述卷积层C1对应的卷积核;
根据第二窗函数对第二卷积核进行加窗操作,以得到加窗后的第二卷积核,所述第二卷积核为所述卷积层C2对应的卷积核,所述第一窗函数和第二窗函数互补;
根据所述加窗后的第一卷积核对第s个子带进行卷积操作,以得到第一卷积结果;当所述卷积层C1为所述第一熵编码模型中的第1个卷积层时,所述第一输入数据为所述第s个子带,当所述卷积层C1为所述第一熵编码模型中的非第1个卷积层时,所述第一输入数据是对所述第s个子带进行卷积操作得到的;
根据所述加窗后的第二卷积核对第一输出结果进行卷积操作,以得到第二卷积结果;当所述卷积层C2为所述第二熵编码模型中的第1个卷积层时,所述第二输入数据为所述第一输出结果,当所述卷积层C2为所述第二熵编码模型中的非第1个卷积层时,所述第二输入数据是对所述第一输出结果进行卷积操作得到的;
对所述第一卷积结果和第二卷积结果进行相加或堆叠操作,以得到所述第二输出结果。
11.一种基于小波变换的图像解码方法,其特征在于,包括:
对压缩码流进行熵解码,以得到重构的小波系数;
对所述重构的小波系数进行反量化,以得到反量化后的小波系数;
根据小波变换模型对所述反量化后的小波系数进行N次小波反变换,以得到重建图像,其中,所述小波变换模型是基于卷积神经网络CNN实现的,所述N为大于0的整数。
12.根据权利要求11所述的方法,其特征在于,所述对压缩码流进行熵解码,以得到重构的小波系数,包括:
根据熵解码模型对所述压缩码流进行熵解码,得到所述重构的小波系数,所述熵解码模型是基于深度神经网络实现的。
13.权利要求12所述的方法,其特征在于,所述压缩码流包括3N+1个子带的码流,所述重构的小波系数包括3N+1个重构子带,所述根据熵解码模型对所述压缩码流进行熵解码,得到所述重构的小波系数,包括:
将所述第s个子带对应的重构子带输入到所述熵解码模型中计算得到待解码系数的累积概率分布函数的参数,所述待解码系数的码流为所述第s个子带的码流的一部分,所述第s个子带对应的重构子带为所述3N+1个重构子带中的任一个;
根据待解码系数的累积概率分布函数的参数获取所述待解码系数的累积概率分布函数;
根据待解码系数及其累积概率分布函数获取待解码系数的概率分布;
根据所述待解码系数的概率分布,采用算术解码器对所述待解码系数的码流进行熵解码,以得到所述待解码系数,所述3N+1个重构子带包括所述待解码系数。
14.根据权利要求13所述的方法,其特征在于,当所述第s个子带为所述3N+1个子带中的第一个子带时,所述熵解码模型是基于逐像素卷积神经网络pixelCNN实现的,所述熵解码模型包括M个卷积层,所述M为大于0的整数,所述将所述第s个子带对应的重构子带输入到熵解码模型中计算得到待解码系数的累积概率分布函数的参数,包括:
当M=1时,根据第1个卷积层对应的窗函数对所述第1个卷积层对应的卷积核进行加窗操作,得到第一加窗后的卷积核;
根据所述第一加窗后的卷积核对所述第s个子带对应的重构子带进行卷积操作,得到所述待解码系数的累积概率分布函数的参数;
当M大于1时,在进行第j个卷积层的运算时,根据第j个卷积层对应的窗函数对第j个卷积层对应的卷积核进行加窗操作,得到第二加窗后的卷积核;
根据所述第二加窗后的卷积核对所述第j个卷积层的输入数据进行卷积操作,得到第j个输出数据;
其中,当j=1时,所述第j个卷积层的输入数据为所述第1个子带对应的重构子带;当j不大于M且大于1时,所述第j个卷积层的输入数据为第j-1个卷积层的输出数据;当j=M时,所述第j个输出数据包括所述待解码系数的累积概率分布函数的参数。
15.根据权利要求13所述的方法,其特征在于,当所述第s个子带不为所述3N+1个子带中的第一个子带时,所述熵解码模型是包括第一熵解码模型、第二熵解码模型和第三熵解码模型,所述第一熵解码模型和第三熵解码模型均是基于逐像素卷积神经网络实现的,所述第三熵解码模型是基于循环神经网络RNN实现的,所述第一熵解码模型包括T1个卷积层,所述第二熵解码模型包括T2卷积层,所述T1和T2均为大于0的整数,所述将所述第s个子带对应的重构子带输入到熵解码模型中计算得到待解码系数的累积概率分布函数的参数,包括:
将第s-1个子带对应的重构子带输入到第三熵解码模型中进行计算,以得到第一输出结果,所述s-1个子带对应的重构子带是对第s-1个子带的码流进行熵解码得到的,所述第一输出结果为所述第二熵解码模型的输入数据;所述第s个子带对应的重构子带为所述第一熵解码模型的输入数据;
当所述T1和T2均等于1时,根据卷积层C1和卷积层C2对所述第一输出结果和所述第s个子带对应的重构子带进行融合操作,得到第二输出结果,所述第二输出结果为所述待解码系数的累积概率分布函数的参数,所述卷积层C1和所述卷积层C2分别为所述第一熵解码模型和第二熵解码模型中的卷积层;或者
当所述T1大于1且所述T2等于1时,根据卷积层C1和卷积层C2对所述第一输出结果和所述第s个子带对应的重构子带进行融合操作,得到所述第二输出结果,所述卷积层C1为所述第一熵解码模型中的第q个卷积层,所述卷积层C2为所述第二熵解码模型中的卷积层;若所述q=T1,则所述第二输出结果为所述待解码系数的累积概率分布函数的参数;若q大于0且小于T1,则所述第二输出结果为所述第一熵解码模型中的第q+1个卷积层的输入数据;或者
当所述T1和T2均大于1时,根据卷积层C1和卷积层C2对所述第一输出结果和所述第s个子带对应的重构子带进行融合操作,得到所述第二输出结果;所述卷积层C1为所述第一熵解码模型中的第q1个卷积层,所述卷积层C2为第二熵解码模型中的第q2个卷积层;若所述q1=T1且q2=T2,则所述第二输出结果为所述待解码系数的累积概率分布函数的参数,若所述q1大于0且小于T1,所述q2大于0且小于T2,则所述第二输出结果为所述第一熵解码模型中的第q1+1个卷积层的输入数据,所述卷积层C2的输出结果为所述第二熵解码模型中的第q2+1个卷积层的输入数据。
16.根据权利要求15所述的方法,其特征在于,当所述第s-1个子带对应的重构子带的分辨率与所述第s个子带对应的重构子带的分辨率不相同时,所述将第s-1个子带对应的重构子带输入到所述第三熵解码模型中进行计算,以得到第一输出结果,包括:
根据所述第三熵解码模型及第三熵编码模型的状态变量对第s-1个子带对应的重构子带进行卷积运算,得到卷积结果;
对所述卷积结果进行上采样,以得到所述第一输出结果,所述第一输出结果的分辨率与所述第s个子带对应的重构子带的分辨率相同;
所述对所述卷积结果进行上采样,以得到所述第一输出结果,所述方法还包括:
对卷积之后的状态变量进行上采样,以得到采样后的状态变量,所述采样后的状态变量与ss第s个子带的分辨率相同。
17.根据权利要求15或16所述的方法,其特征在于,所述根据卷积层C1和卷积层C2对所述第一输出结果和所述第s个子带对应的重构子带进行融合操作,以得到第二输出结果,包括:
根据第一窗函数对第一卷积核进行加窗操作,以得到加窗后的第一卷积核,所述第一卷积核为所述卷积层C1对应的卷积核;
根据所述加窗后的第一卷积核对第一输入数据进行卷积操作,以得到第一卷积结果;当所述卷积层C1为所述第一熵解码模型中的第1个卷积层时,所述第一输入数据为所述第s个子带对应的重构子带,当所述卷积层C1为所述第一熵解码模型中的非第1个卷积层时,所述第一输入数据是对所述第s个子带对应的重构子带进行卷积操作得到的;
将所述第二输入数据输入到所述第二子卷积层进行卷积操作,以得到第二卷积结果;当所述卷积层C2为所述第二解编码模型中的第1个卷积层时,所述第二输入数据为所述第一输出结果,当所述卷积层C2为所述第二熵解码模型中的非第1个卷积层时,所述第二输入数据是对所述第一输出结果进行卷积操作得到的;
对所述第一卷积结果和第二卷积结果进行相加或堆叠操作,以得到所述第二输出结果。
18.根据权利要求15或16所述的方法,其特征在于,所述根据卷积层C1和卷积层C2对所述第一输出结果和所述第s个子带对应的重构子带进行融合操作,以得到第二输出结果,包括:
根据第一窗函数对第一卷积核进行加窗操作,以得到加窗后的第一卷积核,所述第一卷积核为所述卷积层C1对应的卷积核;
根据第二窗函数对第二卷积核进行加窗操作,以得到加窗后的第二卷积核,所述第二卷积核为所述卷积层C2对应的卷积核,所述第一窗函数和第二窗函数互补;
根据所述加窗后的第一卷积核对第一输入数据进行卷积操作,以得到第一卷积结果;当所述卷积层C1为所述第一熵解码模型中的第1个卷积层时,所述第一输入数据为所述第s个子带对应的重构子带,当所述卷积层C1为所述第一熵解码模型中的非第1个卷积层时,所述第一输入数据是对所述第s个子带对应的重构子带进行卷积操作得到的
根据所述加窗后的第二卷积核对第二输入数据进行卷积操作,以得到第二卷积结果;当所述卷积层C2为所述第二解编码模型中的第1个卷积层时,所述第二输入数据为所述第一输出结果,当所述卷积层C2为所述第二熵解码模型中的非第1个卷积层时,所述第二输入数据是对所述第一输出结果进行卷积操作得到的;
对所述第一卷积结果和第二卷积结果进行相加或堆叠操作,以得到所述第二输出结果。
19.根据权利要求11-18任一项所述的方法,其特征在于,所述根据小波变换模型对所述反量化后的小波系数进行N次小波反变换,以得到重建图像,包括:
在进行第t次小波反变换时,对近似子带PN+1-t和细节子带I(N+1-t)1进行更新操作和预测操作,得到第一处理子带和第二处理子带,根据所述第一处理子带和第二处理子带获取中间近似分量,所述中间近似分量的奇数列的系数或奇数行的系数来自所述第一处理子带,所述中间近似分量的偶数列的系数或偶数行的系数来自所述第二处理子带;
对细节子带I(N+1-t)2和细节子带I(N+1-t)3进行所述更新操作和所述预测操作,得到第三处理子带和第四处理子带,根据所述第三处理子带和第四处理子带获取中间细节分量,所述中间细节分量的奇数列的系数或偶数行的系数来自所述第三处理子带,所述中间细节分量的偶数列的系数或偶数行的系数来自所述第四处理子带;
对所述中间细节分量和中间近似分量进行所述更新操作和所述预测操作,第五处理子带和第六处理子带,根据所述第五处理子带和第六处理子带获取近似子带Pt-1,所述近似子带Pt-1的奇数行的系数或奇数列的系数来自所述第五处理子带,所述近似子带Pt-1的偶数行的系数或偶数列的系数来自所述第六处理子带;
其中,所述细节子带I(N+1-t)1、细节子带I(N+1-t)2和细节子带I(N+1-t)3的分辨率与所述近似子带PN+1-t的分辨率相同;当第t次小波反变换为最后一次小波变换时,所述近似子带Pt-1为所述重建图像。
20.根据权利要求19所述的方法,其特征在于,所述预测操作是基于CNN实现的;
或者所述更新操作是基于CNN实现的;
或者所述更新操作和预测操作均是基于CNN实现的。
21.根据权利要求11、19或20任一项所述的方法,其特征在于,所述根据小波变换模型对所述反量化后的小波系数进行N次小波反变换,以得到重建图像之后,所述方法还包括:
根据后处理模型对所述重建图像进行后处理,以得到处理后的重建图像,其中,所述后处理模型是基于深度神经网络实现的。
22.一种图像编码装置,其特征在于,包括:
变换模块,用于...
【专利技术属性】
技术研发人员:吴枫,马海川,刘东,杨海涛,
申请(专利权)人:华为技术有限公司,中国科学技术大学,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。