视频编/解码方法和视频编/解码装置
技术领域
本发明涉及视频编解码技术,尤其涉及视频编码方法、视频解码方法、视频编码装置、视频解码装置和视频编解码装置。
背景技术
视频编码技术是将数字视频信息压缩,以便实现更有效地被传送和存储;视频解码技术则是对已编码视频信息进行解析重建,得到视频图像。目前的视频编码标准中通常采用基于块的运动补偿和变换编码的编码架构,包括帧内预测、帧间预测、变换、量化和熵编码等。相应地,在解码时,包括熵解码、反量化、反变换以及预测补偿等一系列解码重建过程。
帧间预测处理主要包括运动估计和运动补偿,在解码时只有运动补偿,在编码时既有运动估计又有运动补偿。
所谓运动估计,是指对于当前帧中的每一块(宏块及其子宏块)到作为参考帧的前一帧或后一帧某给定搜索范围内根据一定的匹配准则找出与当前块最相似的块,即匹配块,由匹配块与当前块的相对位移计算出运动矢量(Motion Vector)。为了进行运动估计,需要读入该块对应搜索窗的参考帧数据(也称参考数据)。对于一个16×16的宏块,如果运动估计搜索窗为:水平[-64,+64)、垂直[-32,+32),则需要读入的参考数据为参考帧中对应于本宏块及其周围的位置图像区域,大小可为(64+16+64)×(32+16+32)=144×80。在多参考帧情况下,可能需要读入多个参考帧搜索窗数据。
所谓运动补偿,就是根据运动矢量获得对应区域参考块数据,即参考块图像,运动补偿输出的参考块图像用于块的重建。
在运动估计过程中,对于每帧图像的边界块,由于运动估计的搜索窗对应的区域会超出参考帧的边界,因此通常采用无限制运动矢量扩展搜索,即在参考帧中对应的边界块的外侧区域扩展一定量的图像区域。以16×16的边角宏块为例,若运动估计搜索窗仍为:水平[-64,+64)、垂直[-32,+32),则需要在参考帧中对应宏块的外侧区域水平方向扩展64个像素,垂直方向扩展32个像素,以达到搜索窗对应的图像区域大小。即对于每帧图像,得到如图1所示的参考图像区域,图1中的中间白色区域为图像本身的区域,外侧的灰色区域为扩展的区域。
目前,扩展区域的像素通常由边界点的像素复制得到,且所扩展的区域只是为了填充边界块对应的搜索窗,以方便边界块进行运动估计,并不会影响运动估计中的匹配块寻找,但由于区域的扩展需要进行大量的边界及复制运算,因此会增加图像编码过程中的运算量。
发明内容
有鉴于此,本发明中一方面提供一种视频编码方法、解码方法,另一方面提供一种视频编码装置、解码装置、编解码装置,以便降低图像编码过程中的运算量。
本发明所提供的视频编码方法,包括:
提取视频中当前欲编码的连续K帧图像;
将所述K帧图像拼接成M×N的组合帧图像,K=M×N,其中,K为大于1的整数,M、N为大于1或等于1的整数;
对所述组合帧图像进行编码,得到包括所述组合帧图像拼接信息的压缩码流。
其中,所述视频为单视频,所述连续K帧图像为视频内的连续K帧图像;
或者,所述视频为多视频,所述连续K帧图像为视频内和/或视频间的连续K帧图像。
较佳地,所述将K帧图像拼接成M×N的组合帧图像包括:
按照使各图像中具有相似像素的边界相邻的原则,将所述K帧图像中的部分图像进行镜像和/或旋转处理;
将所述K帧图像中处理后的图像与未处理的图像拼接成M×N的组合帧图像。
本发明所提供的视频解码方法,包括:
从压缩码流中解码出当前M×N的组合帧图像;
根据压缩码流中所述组合帧图像的拼接信息,将所述组合帧图像拆分为视频中连续的K帧图像,K=M×N;
其中,K为大于1的整数,M、N为大于1或等于1的整数。
其中,所述根据压缩码流中所述组合帧图像的拼接信息,将所述组合帧图像拆分为视频中连续的K帧图像包括:
根据所述拼接信息中的拼接位置信息,将M×N的组合帧从拼接处拆分为K帧图像;
根据所述拼接信息中的图像处理信息,将所述已拆分的K帧图像中存在镜像和/或旋转的图像进行反镜像和/或反旋转,得到K帧原始图像的重建图像;
根据所述拼接信息中的图像顺序信息,将所述K帧原始图像进行排序,形成视频中连续的K帧图像。
本发明所提供的视频编码装置,包括:
图像提取模块,用于从视频中提取当前欲编码的连续K帧图像;
图像拼接模块,用于将所述图像提取模块提取的K帧图像拼接成M×N的组合帧图像,K=M×N,其中,K为大于1的整数,M、N为大于1或等于1的整数;
图像编码模块,用于对所述图像拼接模块拼接的组合帧图像进行编码,得到包括所述组合帧图像拼接信息的压缩码流。
较佳地,所述图像拼接模块包括:
处理子模块,用于按照使各图像中具有相似像素的边界相邻的原则,将所述K帧图像中的部分图像进行镜像和/或旋转处理;
拼接子模块,用于将所述K帧图像中处理后的图像与未处理图像拼接为M×N的组合帧图像。
本发明所提供的视频解码装置,包括:
图像解码模块,用于从压缩码流中解码出当前M×N的组合帧图像;
图像拆分模块,用于根据压缩码流中所述组合帧图像的拼接信息,将所述图像解码模块解码出的组合帧图像拆分为连续的K帧图像,K=M×N;
其中,K为大于1的整数,M、N为大于1或等于1的整数。
其中,所述图像拆分模块包括:
拼缝拆分子模块,用于根据所述拼接信息中的拼接位置信息,将M×N的组合帧从拼接处拆分为K帧图像;
图像处理子模块,用于根据所述拼接信息中的图像处理信息,将所述已拆分的K帧图像中存在镜像和/或旋转的图像进行反镜像和/或反旋转,得到K帧原始图像的重建图像;
图像排序子模块,用于根据所述拼接信息中的图像顺序信息,将所述K帧原始图像进行排序,形成视频中连续的K帧图像。
本发明所提供的视频编解码装置,包括:
图像提取模块,用于从视频中提取当前欲编码的连续K帧图像;
图像拼接模块,用于将所述图像提取模块提取的K帧图像拼接成M×N的组合帧图像,K=M×N;
图像编码模块,用于对所述图像拼接模块拼接的组合帧图像进行编码,得到包括所述组合帧图像拼接信息的压缩码流;
图像解码模块,用于从压缩码流中解码出当前M×N的组合帧图像;
图像拆分模块,用于根据压缩码流中所述组合帧图像的拼接信息,将所述图像解码模块解码出的组合帧图像拆分为连续的K帧图像,K=M×N;
其中,K为大于1的整数,M、N为大于1或等于1的整数。
较佳地,所述图像拼接模块包括:
处理子模块,用于按照使各图像中具有相似像素的边界相邻的原则,将所述K帧图像中的部分图像进行镜像和/或旋转处理;
拼接子模块,用于将所述K帧图像中处理后的图像与未处理图像拼接为M×N的组合帧图像。
从上述方案可以看出,本发明中的编码方法首先将当前欲编码的连续K帧图像拼接成M×N的组合帧图像,再对所述组合帧图像进行编码,得到包括所述组合帧图像拼接信息的压缩码流,使得进行帧间编码时,对应的M×N的参考组合帧图像的扩展区域与原来相比得到缩减,从而降低图像编码过程中的运算量。
附图说明
图1为现有技术中帧间预测时每帧图像的参考图像区域示意图;
图2为本发明实施例中视频编码方法的示例性流程图;
图3为单视频中的连续4帧图像的示意图;
图4a至图4b为图3所示4帧图像的两种拼接图像;
图5为本发明实施例中对2×2的组合帧图像进行帧间预测时的参考图像区域示意图;
图6为本发明实施例中一种拼接算法的流程示意图;
图7为本发明实施例中视频解码方法的示例性流程图;
图8为本发明实施例中视频编码装置的示例性结构图;
图9为本发明实施例中视频解码装置的示例性结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
图2为本发明实施例中图像编码方法的示例性流程图。如图2所示,该流程包括如下步骤:
步骤201,提取视频中当前欲编码的连续K帧图像,其中,K为大于1的整数。
本步骤中,所述视频可以为单视频,也可以为多视频,即多个摄像机对同一个对象进行拍摄时得到的多个视频序列。在单视频时,所述连续的K帧图像为视频内的连续K帧图像;在多视频时,所述连续的K帧图像为视频内和/或视频间的连续K帧图像。
以单视频的情况为例,假设K为4,则前欲编码的连续K帧图像可如图3所示的4帧图像。
步骤202,将所述K帧图像拼接成M×N的组合帧图像,K=M×N,其中,M、N为大于1或等于1的整数。
本步骤中,可以将连续的K帧图像直接进行拼接,拼接为M×N的组合帧图像,对于图3所示的4帧图像,可得到如图4a所示的2×2的组合帧图像;也可以按照使各图像中具有相似像素的边界相邻的原则,将所述K帧图像中的部分图像进行镜像和/或旋转处理,之后,将所述K帧图像中处理后的图像与未处理的图像拼接成M×N的组合帧图像,对于图3所示的4帧图像,可得到如图4b所示的2×2的组合帧图像;此外,还可以将K帧图像按照其它方式进行拼接,此处不再一一列举。
步骤203,对所述组合帧图像进行编码,得到包括所述组合帧图像拼接信息的压缩码流。
本步骤中,对所述组合帧图像的编码方法同现有技术中对单帧图像的编码方法一致,只是压缩码流中用于解码的边信息中还包括组合帧图像的拼接信息,该拼接信息可包括拼接位置信息、图像处理信息及图像顺序信息。其中,在进行帧间预测时,参考图像为M×N的组合帧图像的重建图像,即M×N的参考组合帧图像,对于2×2的组合帧图像,进行帧间预测时每帧图像的参考图像区域如图5所示,可见,扩展区域与原来相比缩减了一半,降低了图像编码过程中的运算量。
下面对图2所示步骤202中的拼接过程举例说明:
对于连续K帧宽wd高ht图像组合成一帧宽M×wd,高N×ht的组合帧图像(其中K=M×N),假定设定偶数行进行垂直镜像,偶数列进行水平镜像,则将第n,1≤n≤K,帧图像位置放在I行J列上的具体拼接算法可如图6所示,包括如下步骤:
步骤601,判断第I行是否为偶数行,如果是,则执行步骤602;否则,执行步骤603。
步骤602,将所述图像进行垂直镜像。
步骤603,判断第J列是否为偶数列,如果是,则执行步骤604;否则,执行步骤605。
步骤604,将所述图像进行水平镜像。
步骤605,将图像复制到第I行I列上。
与图2所示视频编码方法相对应,图7为本发明实施例中视频解码方法的示例性流程图。如图7所示,该流程包括如下步骤:
步骤701,从压缩码流中解码出当前M×N的组合帧图像,其中,M、N为大于1或等于1的整数。
本步骤中,从压缩码流中解码当前M×N的组合帧图像的方法同现有技术中对单帧图像的解码方法一致。其中,在进行帧间运动补偿时,参考图像为M×N的组合帧图像的重建图像,即M×N的参考组合帧图像。
步骤702,根据压缩码流中所述组合帧图像的拼接信息,将所述组合帧图像拆分为视频中连续的K帧图像,K=M×N,其中,K为大于1的整数。
本步骤中的一种处理过程可以为:首先根据拼接信息中的拼接位置信息,将组合帧从拼接处拆分开,得到K帧图像;若根据拼接信息中的图像处理信息,得知其中存在镜像和/或旋转的图像,则将该图像进行反镜像和/或反旋转,得到原始图像的重建图像;最后,根据拼接信息中的图像顺序信息,将K帧原始图像进行排序,形成视频中连续的K帧图像。
实际应用中,图2所示视频编码方法和图7所示视频解码方法也可结合应用,得到本发明实施例中的视频编解码方法。例如,在编码侧,将视频中的图像按照图2所示视频编码方法进行编码后,将压缩码流存储或传输,之后在解码侧,对压缩码流按照图7所示视频解码方法进行解码后输出重建的视频图像。
以上对本发明实施例中的视频编码方法、视频解码方法和视频编解码方法进行了详细描述,下面再对本发明实施例中的视频编码装置、视频解码装置和视频编解码装置进行详细描述。
图8为本发明实施例中视频编码装置的示例性结构图。如图8所示,该装置可包括:图像提取模块、图像拼接模块和图像编码模块。
其中,图像提取模块用于从视频中提取当前欲编码的连续K帧图像。所述视频可以为单视频,也可以为多视频,即多个摄像机对同一个对象进行拍摄时得到的多个视频序列。在单视频时,所述连续的K帧图像为视频内的连续K帧图像;在多视频时,所述连续的K帧图像为视频内和/或视频间的连续K帧图像,其中,K为大于1的整数。
图像拼接模块用于将所述图像提取模块提取的K帧图像拼接成M×N的组合帧图像,K=M×N。其中,图像拼接模块可以将连续的K帧图像直接进行拼接,拼接为M×N的组合帧图像;也可以按照使各图像中具有相似像素的边界相邻的原则,将所述K帧图像中的部分图像进行镜像和/或旋转处理,之后,将所述K帧图像中处理后的图像与未处理的图像拼接成M×N的组合帧图像;此外,还可以将K帧图像按照其它方式进行拼接,此处不再一一列举。其中,M、N为大于1或等于1的整数。
图像编码模块用于对所述图像拼接模块拼接的组合帧图像进行编码,得到包括所述组合帧图像拼接信息的压缩码流。其中,对所述组合帧图像的编码方法同现有技术中对单帧图像的编码方法一致,只是压缩码流中用于解码的边信息中还包括组合帧图像的拼接信息。
具体实现时,若按照使各图像中具有相似像素的边界相邻的原则进行拼接,则所述图像拼接模块可包括:处理子模块和拼接子模块。
其中,处理子模块用于按照使各图像中具有相似像素的边界相邻的原则,将所述K帧图像中的部分图像进行镜像和/或旋转处理。
拼接子模块用于将所述K帧图像中处理后的图像与未处理的图像拼接为M×N的组合帧图像。
图9为本发明实施例中视频解码装置的示例性结构图。如图9所示,该装置可包括:图像解码模块和图像拆分模块。
其中,图像解码模块用于从压缩码流中解码出当前M×N的组合帧图像。其中,从压缩码流中解码当前M×N的组合帧图像的方法同现有技术中对单帧图像的解码方法一致。其中,M、N为大于1或等于1的整数
图像拆分模块用于根据压缩码流中所述组合帧图像的拼接信息,将所述图像解码模块解码出的组合帧图像拆分为连续的K帧图像,K=M×N。其中,图像拆分模块可首先将组合帧从拼接处拆分开,若存在镜像和旋转的图像,则将该图形反镜像和反旋转,得到原始图像的重建图像。其中,K为大于1的整数。
具体实现时,图像拆分模块的一种内部结构实现可如图9中所示,包括:拼缝拆分子模块、图像处理子模块和图像排序子模块。
其中,拼缝拆分子模块用于根据所述拼接信息中的拼接位置信息,将M×N的组合帧从拼接处拆分为K帧图像;
图像处理子模块用于根据所述拼接信息中的图像处理信息,将所述已拆分的K帧图像中存在镜像和/或旋转的图像进行反镜像和/或反旋转,得到K帧原始图像的重建图像。
图像排序子模块用于根据所述拼接信息中的图像顺序信息,将所述K帧原始图像进行排序,形成视频中连续的K帧图像。
实际应用中,图8所示视频编码装置和图9所示视频解码装置可位于同一个装置中,共同构成本实施例中的视频编解码装置。即本实施例中的视频编解码装置可包括:图像提取模块、图像拼接模块、图像编码模块、图像解码模块和图像拆分模块。本实施例中,视频编解码装置中各模块的具体操作可与图8和图9所示装置中相应模块的具体操作一致,同样,图像拼接模块在具体实现时,也可如图7所示包括处理子模块和拼接子模块,此处不再一一赘述。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。