【发明内容】
本发明所要解决的技术问题就是克服现有技术的上述缺陷,提供一种基于频谱的图像分层编解码方法及系统,能够有效避免编解码参考图像的不一致所造成的误差累积。
为实现上述目的,本发明提供一种基于频谱的图像分层编解码方法,包括编码步骤和解码步骤,其特征在于,编码步骤包括:
A1、将当前图像帧划分为多个分块,并将各分块与相应的编码参考块进行比较,获得分块残差;
B1、将各分块残差从空间域转换至频率域,得到各分块残差在频率域的残差频率系数阵列,并进行量化;
C1、将量化后的各残差频率系数阵列统一划分为频率由低至高的N个频段并按频段进行编码;
解码步骤包括:
D1、将解码参考块从空间域转换至频率域,得到所述解码参考块在频率域的频率系数阵列,并划分为频率由低至高的N个频段;
E1、如果编码端只向解码端传输前n个频段,接收各残差频率系数阵列前n个频段的编码数据,将所述解码参考块在频率域的频率系数阵列大于n的频段置零,生成解码参考频率系数阵列,其中n小于N;
F1、根据接收到的低频段编码数据解码出各残差频率系数阵列,并分别与所述解码参考频率系数阵列叠加;
G1、将各自叠加的结果从频率域转换至空间域,生成解码图像帧;
所述编码参考块和解码参考块分别为编码参考图像帧和解码参考图像帧中根据运动矢量确定的分块。
优选的,所述步骤B1和D1中,所述空间域至频率域的转换通过离散余弦变换实现,所述步骤G1中,所述频率域至空间域的转换通过反离散余弦变换实现。
为实现上述目的,本发明还提供一种基于频谱的图像分层编解码系统,包括编码器和解码器,其特征在于,所述编码器包括:
图像划分模块,用于将当前图像帧划分为多个分块;
分块残差获取模块,用于获取各分块与编码参考块的分块残差,所述编码参考块为编码参考图像帧中根据运动矢量确定的分块;
第一变换模块,用于将各分块残差从空间域转换至频率域,得到各分块残差在频率域的残差频率系数阵列;
第一频段划分模块,用于将各残差频率系数阵列统一划分为频率由低至高的N个频段,其中N为自然数;
编码处理模块,用于对各频率系数阵列的各频段进行编码;
所述解码器包括:
第二变换模块,用于将解码参考块从空间域转换至频率域,得到所述解码参考块在频率域的频率系数阵列,所述解码参考块为解码参考图像帧中根据运动矢量确定的分块;;
第二频段划分模块,用于将所述解码参考块在频率域的频率系数阵列划分为频率由低至高的N个频段;
解码参考频率系数阵列生成模块,用于当解码器只接收前n个频段时,将所述解码参考块在频率域的频率系数阵列中大于n的频段置零以得到解码参考频率系数阵列,其中n为所述解码器接收到的各残差频率系数阵列的频段数,且n小于N;
解码处理模块,用于解码所接收到的各残差频率系数阵列的低频段编码数据;
复原处理模块,用于将所述解码处理模块对各频率系数阵列的解码结果分别与所述解码参考频率系数阵列叠加;
第三变换模块,用于将所述复原处理模块的叠加结果从频率域转换至空间域以生成解码图像帧。
优选的,所述第一、二变换模块为实现离散余弦变换的模块,所述第三变换模块为实现反离散余弦变换的模块。
本发明的有益效果是:
本发明突破了以往以空间域的像素图像作为参考图像的传统做法,巧妙地将解码参考图像放在变换域里,即将解码参考图像在频率域的频率系数阵列作为解码参考,由于在频率域中设置参考阵列等价于在空间域中设置参考图像,故可以用来解决编、解码参考图像选取不一致的问题。解码过程中,先将解码参考块变换到频率域以获得解码参考频率系数阵列,其中解码参考块由解码参考图像帧根据运动矢量确定;对于编码端各残差频率系数阵列存在着N个频段数据但只传输前面n个的低频段数据的情况,将解码参考频率系数阵列大于n的频段置零,即只保留其前n个频段的系数,再分别与各解码出的残差频率系数阵列叠加,这样,解码端每次只取用解码参考块在频率域中相应n个的频段内容作为图像复原的参考,从而保持编、解码端参考图像选取的一致性,消除了漂移现象,避免了误差的累积。
另一方面,在频率域中设置解码参考块还大大方便运动补偿搜索过程,使本发明中的编码器较以往的编码器几乎未增加复杂度且保持同样的编码效率。
【具体实施方式】
本发明的特征及优点将通过实施例结合附图进行详细说明。
请参考图1,编码流程包括:
步骤S11、将当前图像帧划分为多个分块;
步骤S12、通过运动补偿搜索,根据运动矢量在编码参考图像帧中选取编码参考块;
步骤S13、将当前图像帧的各分块与相应的编码参考块进行比较,获得分块残差;
步骤S14、将各分块残差从空间域转换至频率域,得到各分块残差在频率域的残差频率系数阵列,并进行量化;
步骤S15、将量化后的各残差频率系数阵列统一划分为频率由低至高的N个频段;
步骤S16、将各残差频率系数阵列的所有频段进行编码。
解码流程包括:
步骤S21、通过运动补偿搜索,根据运动矢量在解码参考图像帧中选取解码参考块;
步骤S22、将解码参考块从空间域转换至频率域,得到解码参考块在频率域的频率系数阵列;
步骤S23、将解码参考块在频率域的频率系数阵列划分为频率由低至高的N个频段;
步骤S24、如果编码端只向解码端传输前n个频段,接收来自编码端的各残差频率系数阵列的前n个频段的编码数据,其中n小于N;
步骤S25、将解码参考块在频率域的频率系数阵列大于n的频段置零,生成解码参考频率系数阵列;
步骤S26、根据接收到的低频段编码数据解码出各残差频率系数阵列,并分别与解码参考频率系数阵列叠加;
步骤S27、将各自叠加的结果从频率域转换至空间域,生成解码图像帧;
编码参考块和解码参考块分别为编码参考图像帧和解码参考图像帧中的分块。显然,步骤S21、步骤S22和步骤S23也可以放在步骤S24之后,而步骤S26中的解码也可以放在步骤S24之后、解码数据与解码参考频率系数阵列叠加之前的任意位置。
在编码端,图2a至图2e展示了图像帧分块以及从空间域转换至频率域的过程。首先,对当前图像帧进行横向和纵向切割,形成若干个分块,每个分块包含8×8=64个像素。接着,以8×8像素的分块作基本操作单元,例如图2a中的分块A,依次处理其中每个像素(即取样点)的取样数值,如可对各个像素的亮度值(或色度值)取样。接着,将分块A与编码参考块进行比较,获取其与编码参考块的残差,如图2c所示。由图2c到图2d,对分块残差进行空间域至频率域的域变换。本实施例对空间域至频率域采用常用的离散余弦变换(Discrete Cosine Transform,简称为DCT),利用DCT变换可将亮度值转变为频率域的频率系数值,从而获得与分块残差的像素亮度值阵列对应的残差频率系数阵列。接下来完成量化处理。对于上述8×8=64阵列来说,转换后得到如图2d所示的包含64个频率系数的矩形阵列。此时,64个像素点的亮度值组成的阵列变为了一个直流平均值和63个不同频率的余弦波幅值(频率系数值)组成的64个点阵列。阵列中左上角的频率系数值较大,而右下角的频率系数值较小,且趋近于零值。左上角代表了图像信息的直流成分和低频分量,它是图像信息的主体部分,也是分块内信息的主要部分;而右下角代表了图像信息的高频分量,其幅值原本就比较小,它主要反映图像的细节部分。人眼对图像信息的低频分量具有较高的视觉灵敏度,如图2e所示,按Z字形(Zigzag)扫描后所形成的频率数据系列,恰好与人眼睛对图像信息的敏感程度形成良好的对应关系。
请参考图3,将各残差频率系数阵列相应地划分为由低至高的8个频段。如图3中所示的Z字形扫描,第1至第7频段(参见数字标号1~7)分别对应于图中从左上角往右下角各条带箭头的斜线依次覆盖的区域,第8频段(参见数字标号8)对应于图中右下部分箭头首尾相接的各条连线所覆盖的区域。从低频至高频,各残差频率系数阵列共有8个供分层编码的频段。
接着,对各残差频率系数阵列的所有频段进行编码处理(如游程编码、熵编码)。编码处理后,可按照解码端的要求传输各残差频率系数阵列的前n个频段(即从第1至第n个频段,n小于8)的编码数据。本实施例选取了前3个频段。
在解码端,从解码参考图像帧中选取解码参考块后,将解码参考块从空间域转换至频率域,得到解码参考块在频率域的频率系数阵列,将解码参考块在频率域的频率系数阵列划分为频率由低至高的8个频段,该过程与前述的当前图像帧各分块的处理是相同的。
请参考图4,解码端接收到的来自编码端各残差频率系数阵列的前3个频段的编码数据时,将解码参考块在频率域的频率系数阵列后5个频段的内容置零,生成解码参考频率系数阵列。
然后,根据接收到的低频段编码数据解码出各残差频率系数阵列,将解码出的内容分别与解码参考频率系数阵列叠加。
最后,利用反离散余弦变换,将各自叠加的结果从频率域转换至空间域,生成解码图像帧。
本实施例中,编码端共有8个编码层次可选。n的具体取值可根据解码端的需求、网络的带宽等因素灵活确定。
作为本发明的另一方面,还公开了一种基于频谱的图像分层编码系统,它包括编码器和解码器。
编码器包括如下部分:
图像划分模块,用于将当前图像帧划分为多个分块;
分块残差获取模块,用于获取各分块与编码参考块的分块残差,编码参考块为编码参考图像帧中根据运动矢量确定的分块;
第一变换模块,用于将各分块残差从空间域转换至频率域,得到各分块残差在频率域的残差频率系数阵列;
第一频段划分模块,用于将各残差频率系数阵列统一划分为频率由低至高的N个频段,其中N为自然数;
编码处理模块,用于对各频率系数阵列的各频段进行编码。
解码器包括如下部分:
第二变换模块,用于将解码参考块从空间域转换至频率域,得到解码参考块在频率域的频率系数阵列,解码参考块为解码参考图像帧中根据运动矢量确定的分块;
第二频段划分模块,用于将解码参考块在频率域的频率系数阵列划分为频率由低至高的N个频段;
解码参考频率系数阵列生成模块,用于当解码器只接收前n个频段时,将解码参考块在频率域的频率系数阵列中大于n的频段置零以得到解码参考频率系数阵列,其中n为解码器接收到的各残差频率系数阵列的低频段频段数,且n小于N;
解码处理模块,用于解码所接收到的各残差频率系数阵列的低频段编码数据;
复原处理模块,用于将解码处理模块对各频率系数阵列的解码结果分别与解码参考频率系数阵列叠加;
第三变换模块,用于将复原处理模块的叠加结果从频率域转换至空间域以生成解码图像帧。
优选的,第一、二变换模块为实现离散余弦变换的模块,第三变换模块为实现反离散余弦变换的模块。
本发明使用频率域(如DCT、或类似DCT)的参考图像或参考块。
本发明突破了以往以空间域的像素图像作为参考图像的传统做法,巧妙地将解码参考图像放在变换域里,以解码参考图像在频率域的频率系数阵列作为解码端的参考,解码过程中,先将解码参考图像帧的解码参考块变换到频率域以获得解码参考频率系数阵列,对于编码端各残差频率系数阵列存在着N个频段数据但只传输前面n个的低频段数据的情况,将解码参考频率系数阵列大于n的频段置零,只保留其前n个频段的系数,再分别与各解码出的残差频率系数阵列叠加,这样,解码端每次只取用解码参考块在频率域中相应的频段内容作为图像复原的参考,从而保持编、解码端参考图像选取的一致性,消除了漂移现象,避免了误差的累积。同时,与以往编码方法的计算复杂度相比较,本发明基于频谱的分层编码方法几乎没有增加计算复杂度,因此更是一种高效的分层编码方法。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明,例如,本发明不限于划分8个频段,只要是在变换域进行的分段并利用变换域参考图像的方案,均在本专利的保护范围。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,所做的若干简单推演或替换,都应当视为属于本发明的保护范围。