背景技术
图像编码技术是将数字视频等原始图像信息压缩,以便实现更有效地被传送和存储;图像解码技术则是对已编码的视频等图像信息进行解析重建,得到重建的图像。
在现有编码标准中,通常采用基于运动补偿和变换编码的混合编码架构,编码时,先进行帧内、帧间的预测,得到预测值,以消除时间域的相关性;然后根据预测值与原始图像实际值的差值,得到残差图像,对残差图像进行变换,以消除空间域的相关性;最后对变换后的数据进行熵编码,以消除统计上的冗余度,将熵编码后的数据与解码所需的边信息组成压缩后的码流,供后续传输和存储用,达到压缩图像的目的。相应地,在解码时,按照熵解码、反变换以及预测补偿等一系列解码过程重建出图像。
通常情况下,在编解码时,先将整帧图像划分成各个带状的区域,即通常所称的条带(SLICE),然后再将条带分成各个块,即通常所称的宏块,之后以宏块为编解码的基本处理单元进行编解码,即帧内、帧间预测和变换常常是对宏块进行。一个宏块通常包括一个16×16的亮度样值块和对应的色度样值块,16×16的宏块又可以进一步细分为小的宏块,如16×8、8×16、8×8、8×4、4×8、4×4等。
帧内预测和帧间预测处理主要包括运动估计和运动补偿,在解码时只有运动补偿,在编码时既有运动估计又有运动补偿。
帧间预测的运动估计,是指对于当前帧中的每一宏块到作为参考帧的前一帧或后一帧某给定搜索范围内根据一定的匹配准则找出与当前块最相似的块,即匹配块,由匹配块与当前块的相对位移计算出运动矢量(MotionVector)。帧内预测的运动估计,是指对于当前帧中的每一宏块到相邻区域某给定搜索范围内根据一定的匹配准则找出当前块的匹配块,由匹配块与当前块的相对位移计算出运动矢量。例如,对于一个16×16宏块,如果运动估计搜索位置范围为:水平[-32,+32)、垂直[-32,+32),则该宏块对应的搜索范围为参考帧中对应于本宏块及其周围的位置图像区域,即大小为(32+16+32)×(32+16+32)=80×80的区域。所谓运动补偿,就是根据运动矢量获得对应区域匹配块数据,运动补偿输出的参考宏块图像用于宏块的重建。
其中,运动估计的越准确,运动向量的误差越小,预测补偿时的残差就越小,编码出来的图像质量也就越好。
由于图像编码时的压缩处理会带来一定量的信息损失,当信息损失量较大时,人眼视力可以明显察觉到原始图像和重建图像间细节的不同,为此,出现了高分辨率的编码标准,如新一代高清分辨率1080P(P指逐行扫描采样),分辨率为1920×1080。应用这种高分辨率的编码标准,人眼视力基本无法区分原始图像和重建图像间的差别,但这种高分辨率技术要求编码处理芯片,如数字信号处理器(DIGITAL SIGNAL PROCESS,DSP)拥有超强的处理能力,但目前有些编码处理芯片还无法单独完成整帧图像的高分辨率编码,所以,现有技术中,通常使用多个编码处理芯片(如多个DSP)共同完成整帧图像的的高分辨率编码。编码过程包括:首先将图像分割为多个条带区域,一个条带区域可包括多个条带,条带区域的划分可根据实际需要而定,例如可根据编码处理芯片的处理能力而定,然后对每个条带区域进行单独编码,即每个条带区域分别由一个编码处理芯片进行编码。相应地,解码时,在解码端对每个条带区域进行单独解码,然后再将解码的多个条带区域直接拼合显示。
上述方案中,各个条带区域是独立的,在对每个条带区域单独编码时,对于条带区域边缘位置的宏块,由于其在边缘向外伸展的方向上的搜索范围为0,即该方向上没有相邻块的信息,因此该宏块对应的搜索范围会缩小。例如,对于前述大小为16×16的宏块,若该宏块位于条带区域垂直方向的上边缘,水平方向的中间位置,则如果运动估计搜索范围为:水平[-32,+32)、垂直[-32,+32),该宏块所对应的搜索范围只能是(32+16+32)×(16+32)=80×48的区域,而非前述80×80的区域。可见,由于条带区域的边缘位置宏块缺少进行预测的相邻块信息,因此边缘位置块的搜索范围较小,运动向量误差较大,即通常所称的边缘效应,边缘效应的存在,使得边缘位置的编码质量较差。
发明内容
有鉴于此,本发明中一方面提供一种图像编码方法和图像解码方法,另一方面提供一种图像编码装置、图像解码装置及图像编解码装置,以便提高条带区域边缘位置的编码质量。
本发明所提供的图像编码方法,包括:
将欲编码的当前图像按照预设方向划分为N个条带区域,所述N个条带区域中的相邻条带区域具有重叠区域,其中,N为大于或等于2的整数;
对每个条带区域分别进行编码,得到当前图像各条带区域的压缩码流。
本发明所提供的图像解码方法,包括:
对欲解码的当前图像N个条带区域的压缩码流分别进行解码,得到各条带区域的重建条带区域,其中,N为大于或等于2的整数;
将相邻重建条带区域中的非重叠区域作为当前图像相应位置的重建区域,得到非重叠区域的重建图像;
将相邻重建条带区域中的重叠区域进行插值计算,将得到的所述重叠区域的插值计算区域作为当前图像相应位置的重建区域,得到重叠区域的重建图像;
利用所述非重叠区域的重建图像和所述重叠区域的重建图像,构成当前图像的重建图像。
本发明所提供的图像编码装置,包括:
区域划分模块,用于将欲编码的当前图像按照预设方向划分为N个条带区域,所述N个条带区域中的相邻条带区域具有重叠区域,其中,N为大于或等于2的整数;
编码模块,用于对每个条带区域分别进行编码,得到当前图像各条带区域的压缩码流。
本发明所提供的图像解码装置,包括:
解码模块,用于对欲解码的当前图像N个条带区域的压缩码流分别进行解码,得到各条带区域的重建条带区域,其中,N为大于或等于2的整数;
图像重建模块,用于将相邻重建条带区域中的非重叠区域作为当前图像相应位置的重建区域,得到非重叠区域的重建图像;将相邻重建条带区域中的重叠区域进行插值计算,将得到的所述重叠区域的插值计算区域作为当前图像相应位置的重建区域,得到重叠区域的重建图像;利用所述非重叠区域的重建图像和所述重叠区域的重建图像,构成当前图像的重建图像。
本发明所提供的图像编解码装置,包括:
区域划分模块,用于将欲编码的当前图像按照预设方向划分为N个条带区域,所述N个条带区域中的相邻条带区域具有重叠区域,其中,N为大于或等于2的整数;
编码模块,用于对每个条带区域分别进行编码,得到当前图像各条带区域的压缩码流;
解码模块,用于对欲解码的当前图像各个条带区域的压缩码流分别进行解码,得到各条带区域的重建条带区域;
图像重建模块,用于将相邻重建条带区域中的非重叠区域作为当前图像相应位置的重建区域,得到非重叠区域的重建图像;将相邻重建条带区域中的重叠区域进行插值计算,将得到的所述重叠区域的插值计算区域作为当前图像相应位置的重建区域,得到重叠区域的重建图像;利用所述非重叠区域的重建图像和所述重叠区域的重建图像,构成当前图像的重建图像。
从上述方案可以看出,本发明中在编码时,通过将欲编码图像按照预设方向划分为多个与相邻条带区域具有重叠区域的条带区域,并对所划分的每个条带区域分别进行编码,使得相邻条带区域间的重叠区域可为相邻条带区域中各自的非重叠区域提供预测时的相邻块信息,增大了该非重叠区域边缘位置块的搜索范围,减小了编码时的预测向量误差,从而提高了编码质量;此外,由于编码信息中存在对相邻条带区域间重叠区域的冗余编码,因此可进一步减小编码时的预测向量误差,进一步提高了编码质量。
相应地,在解码时,将欲解码图像各个条带区域编码后的压缩码流分别进行解码,之后,将解码后相邻重建条带区域中的非重叠区域作为当前图像相应位置的重建区域,得到非重叠区域的重建图像;将相邻重建条带区域中的重叠区域进行插值计算后得到的插值计算区域作为当前图像相应位置的重建区域,得到重叠区域的重建图像;利用所述非重叠区域的重建图像和所述重叠区域的重建图像,构成当前图像的重建图像,从而得到质量较高的解码重建图像。
具体实施方式
本发明中,为了降低边缘效应对编码质量的影响,可不再只对图像作简单区域划分,而是作重叠划分,将欲编码图像按照预设方向划分为多个与相邻条带区域具有重叠区域的条带区域,其中,重叠区域可以覆盖一个或多个条带,然后对每个条带区域进行单独编码。之后,在解码侧对重叠区域进行图像插值处理。
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
图1为本发明实施例中图像编码方法的示例性流程图。如图1所示,该流程包括如下步骤:
步骤101,将欲编码的当前图像按照预设方向划分为N个条带区域,且N个条带区域中的两两相邻条带区域具有重叠区域,其中,N为大于或等于2的整数。
其中,条带区域的个数及大小可按照现有技术中的方法确定,即根据编码处理芯片的处理能力确定。预设方向可以是任何方向,如图像数据载入的方向,一般为从上到下的方向;此外,也可以为其它方向。
本实施例中,以N=3,预设方向为从上到下的方向的情况为例,假设当前图像的总区域大小用S表示,划分的三个条带区域用A1、A2和A3表示,其中,A1和A2之间的重叠区域用B1表示,A2和A3之间的重叠区域用B2表示,则可得到如图2所示的图像区域划分示意图,如图2所示,S=(A1+A2+A3)-(B1+B2)。
其中,B1和B2的大小可以相同,也可以不同,且B1和B2可分别覆盖一个或多个条带,但不能超过所属条带区域的宽度。
步骤102,对每个条带区域分别进行编码,得到当前图像各条带区域的压缩码流。
本步骤中,对每个条带区域可分别利用一个编码处理芯片进行编码,得到各条带区域的压缩码流。以图2所示图像为例,对A1、A2和A3三个条带区域分别进行编码后,可得到如图3所示对应各条带区域的压缩码流,其中,对A1编码后得到压缩码流P1,对A2编码后得到压缩码流P2,对A3编码后得到压缩码流P3。
最后,各条带区域的压缩码流及其解码所需的包括重叠区域位置信息在内的边信息共同构成当前图像的压缩码流,用于存储或传输。
与图1所示图像编码方法相对应,图4为本发明实施例中图像解码方法的示例性流程图。如图4所示,该流程包括如下步骤:
步骤401,对欲解码的当前图像N个条带区域的压缩码流分别进行解码,得到各条带区域的重建条带区域,其中,N为大于或等于2的整数。
本实施例中,在对所接收的压缩码流进行解码时,可首先从欲解码的当前图像中获取各个条带区域的压缩码流及解码所需的包括重叠区域位置信息在内的边信息,然后对各个条带区域分别进行解码,以图2所示图像为例,对图3所示得到的三个压缩码流P1、P2和P3分别进行解码后,可得到如图5所示的对应编码前图像的三个条带区域A1、A2和A3得到的重建条带区域A1′、A2′和A3′。其中,A1′中包括重叠区域B1的重建区域B1′,A2′中包括重叠区域B1的重建区域B1″和B2的重建区域B2′,A3′中包括重叠区域B2的重建区域B2″。
步骤402,将相邻重建条带区域中的非重叠区域作为当前图像相应位置的重建区域,得到非重叠区域的重建图像;将相邻重建条带区域中的重叠区域进行插值计算,将得到的所述重叠区域的插值计算区域作为当前图像相应位置的重建区域,得到重叠区域的重建图像;利用非重叠区域的重建图像和重叠区域的重建图像,构成当前图像的重建图像。
本步骤中,将相邻重建条带区域中的重叠区域进行插值计算时,可包括:对两两相邻重建条带区域,将各自重叠区域中各对应位置的像素点根据预设的插值系数进行插值计算,得到所述重叠区域的插值计算区域。
例如,若预设的插值系数用λ表示,两两相邻重建条带区域中各自重叠区域中对应位置像素点的量度分量和/或色度分量分别用b′和b″表示,则重叠区域中各对应位置的像素点可按照式λb′+(1-λ)b″进行插值计算,其中,λ的值可根据经验或特定算法预先设定,且0≤λ≤1。
以如图5所示得到的重建条带区域A1′、A2′和A3′为例,若将重建条带区域A1′、A2′和A3′中的非重叠区域分别标记为C1′、C2′和C3′,则可直接将C1′、C2′和C3′作为当前图像相应位置的重建区域。具体实现时,可将C1′、C2′和C3′中各像素点的量度分量和/或色度分量c1′、c2′和c3′直接作为当前图像相应位置重建像素点的量度分量和/或色度分量。
对A1′中重叠区域B1的重建区域B1′和A2′中重叠区域B1的重建区域B1″,若将B1′中像素点的量度分量和/或色度分量记为b1′,将B1″中像素点的量度分量和/或色度分量记为b1″,则可对B1′和B1″可按照式λb1′+(1-λ)b1″进行插值计算,得到编码前重叠区域B1的插值计算区域,将得到的插值计算区域作为当前图像相应位置的重建区域。
同样,对A2′中重叠区域B2的重建区域B2′和A3′中重叠区域B2的重建区域B2″,若将B2′中像素点的量度分量和/或色度分量记为b2′,将B2″中像素点的量度分量和/或色度分量记为b2″,则可对B2′和B2″可按照式λb2′+(1-λ)b2″进行插值计算,得到编码前重叠区域B2的插值计算区域,将得到的插值计算区域作为当前图像相应位置的重建区域。最后,得到如图6所示当前图像的重建图像S′。
实际应用中,图2所示编码方法和图4所示解码方法也可结合应用,得到本发明实施例中的图像编解码方法。例如,采集图像后,对每帧图像按照图2所示编码方法进行编码后存储或传输,之后在解码侧,对每帧图像按照图4所示解码方法进行解码后输出重建后的图像。
以上对本发明实施例中的图像编码方法、图像解码方法和图像编解码方法进行了详细描述,下面再对本发明实施例中的图像编码装置、图像解码装置和图像编解码装置进行详细描述。
图7为本发明实施例中图像编码装置的示例性结构图。如图7所示,该装置包括:区域划分模块和编码模块。
其中,区域划分模块,用于将欲编码的当前图像按照预设方向划分为N个条带区域,所述N个条带区域中的相邻条带区域具有重叠区域,其中,N为大于或等于2的整数。具体实现时,区域划分模块的具体操作可与步骤201中描述的具体操作一致。
编码模块,用于对每个条带区域分别进行编码,得到当前图像各条带区域的压缩码流。
具体实现时,如图7中编码模块的内部结构图所示,编码模块可包括N个编码子模块,每个编码子模块用于对所述N个条带区域中的一个条带区域进行编码,得到所述条带区域的压缩码流。其中,每个编码子模块可以是一个编码处理芯片。同样,编码模块的具体操作可与步骤202中描述的具体操作一致。
图8为本发明实施例中图像解码装置的示例性结构图。如图8所示,该装置包括:解码模块和图像重建模块。
其中,解码模块,用于对欲解码的当前图像N个条带区域的压缩码流分别进行解码,得到各条带区域的重建条带区域,其中,N为大于或等于2的整数。
具体实现时,如图8中解码模块的内部结构图所示,解码模块可包括N个解码子模块,每个解码子模块用于对所述N个条带区域的压缩码流中的一个条带区域的压缩码流进行解码,得到所述条带区域的重建条带区域。其中,每个解码子模块可以是一个解码处理芯片。本实施例中,解码模块的具体操作可与步骤401中描述的具体操作一致。
图像重建模块,用于将相邻重建条带区域中的非重叠区域作为当前图像相应位置的重建区域,得到非重叠区域的重建图像;将相邻重建条带区域中的重叠区域进行插值计算,将得到的所述重叠区域的插值计算区域作为当前图像相应位置的重建区域,得到重叠区域的重建图像;利用所述非重叠区域的重建图像和所述重叠区域的重建图像,构成当前图像的重建图像。
具体实现时,如图8中图像重建模块的内部结构图所示,图像重建模块可包括:非重叠区域重建子块和重叠区域重建子块。其中,非重叠区域重建子块用于将相邻重建条带区域中的非重叠区域作为当前图像相应位置的重建区域,得到非重叠区域的重建图像;重叠区域重建子块用于将相邻重建条带区域中的重叠区域进行插值计算,将得到的所述重叠区域的插值计算区域作为当前图像相应位置的重建区域,得到重叠区域的重建图像。
同样,本实施例中的图像重建模块的具体操作可与步骤402中描述的具体操作一致。
实际应用中,图7所示编码装置和图8所示解码装置可位于同一个装置中,共同构成本实施例中的编解码装置。即本实施例中的编解码装置可包括:区域划分模块、编码模块、解码模块和图像重建模块。
其中,区域划分模块用于将欲编码的当前图像按照预设方向划分为N个条带区域,所述N个条带区域中的相邻条带区域具有重叠区域,其中,N为大于或等于2的整数。
编码模块用于对每个条带区域分别进行编码,得到当前图像各条带区域的压缩码流。
解码模块用于对欲解码的当前图像各个条带区域的压缩码流分别进行解码,得到各条带区域的重建条带区域。
图像重建模块用于将相邻重建条带区域中的非重叠区域作为当前图像相应位置的重建区域,得到非重叠区域的重建图像;将相邻重建条带区域中的重叠区域进行插值计算,将得到的所述重叠区域的插值计算区域作为当前图像相应位置的重建区域,得到重叠区域的重建图像;利用所述非重叠区域的重建图像和所述重叠区域的重建图像,构成当前图像的重建图像。
本实施例中,编解码装置中各模块的具体操作可与图7和图8所示装置中相应模块的具体操作一致,此处不再一一赘述。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。