CN115842917A - 视频的块划分方法、装置、电子设备及存储介质 - Google Patents
视频的块划分方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115842917A CN115842917A CN202211509829.5A CN202211509829A CN115842917A CN 115842917 A CN115842917 A CN 115842917A CN 202211509829 A CN202211509829 A CN 202211509829A CN 115842917 A CN115842917 A CN 115842917A
- Authority
- CN
- China
- Prior art keywords
- image block
- dividing
- division
- gradient
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开关于一种视频的块划分方法、装置、电子设备及存储介质,所述方法包括:确定当前视频帧内当前待划分的图像块的像素梯度,在像素梯度的梯度差异满足预设差异度的情况下,确定图像块的第一预划分方向;对图像块进行编码,根据编码结果得到第二预划分方向;在第一预划分方向和第二预划分方向不一致的情况下,获取图像块的关联图像块的划分方向;根据图像块的关联图像块的划分方向,确定对图像块进行划分的方向。根据本公开的技术方案,通过充分利用图像块的像素梯度的预分析功能,结合不划分编码的编码结果获取可用的划分信息以及关联图像块的划分方向,能够较快地得到当前图像块的划分方向,从而提高图像块的划分方向的判断效率。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种视频的块划分方法、装置、电子设备、计算机可读存储介质、计算机程序产品。
背景技术
H.266/VVC(Versatile Video Coding,通用视频编码)编码标准在提出之后,其压缩性能得到大幅的提升。但其中新增加的众多提升压缩性能的工具带来了巨大的复杂度提升。在众多新增的工具中,MTT(Multi-Type Tree,多类型树结构)划分方式的增加带来了约8%性能增益的同时,却增加了一倍的编码复杂度。
相关技术中,在使用MTT划分方式的情况下,对视频帧的当前块(即当前图像块)进行编码之前,可以统计得到当前块的横向梯度、纵向梯度。若当年块的横向梯度远大于纵向梯度,则倾向于对当前块进行纵向划分,即跳过BT(Binary Tree,二叉树)和TT(TernaryTree,三叉树)划分中的横向划分。反之,若当前块的纵向梯度远大于横向梯度,则倾向于对当前块进行横向划分。但是,上述技术方案主要依赖梯度的计算,梯度虽然能够在一定程度上表征当前块的划分趋势,但是不能完全判定当前块的划分方向:若判定过程中采用的阈值增大,则会导致速度增幅不明显;若判定过程中采用的阈值降低,则会大幅降低压缩性能,从而影响横纵划分方向的判断效率。
因此,亟需对MTT划分方式进行优化,以提供一种更为高效的块划分方法。
发明内容
本公开提供一种视频的块划分方法、装置、电子设备、计算机可读存储介质、计算机程序产品,以至少解决相关技术中横纵划分方向的判断效率易受影响的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种视频的块划分方法,包括:
确定当前视频帧内当前待划分的图像块的像素梯度,在所述像素梯度的梯度差异满足预设差异度的情况下,确定所述图像块的第一预划分方向;
对所述图像块进行编码,根据编码结果得到第二预划分方向;
在所述第一预划分方向和所述第二预划分方向不一致的情况下,获取所述图像块的关联图像块的划分方向;
根据所述图像块的关联图像块的划分方向,确定对所述图像块进行划分的方向。
在其中一个实施例中,所述对所述图像块进行编码,根据编码结果得到第二预划分方向,包括:
按照多种编码模式对所述图像块进行编码,得到与每种所述编码模式对应的编码代价和划分方向,所述编码代价用于评价编码后的所述图像块的失真情况;
根据每种所述编码模式的编码代价,从多种所述编码模式中确定出目标编码模式;
在所述目标编码模式与预设编码模式一致的情况下,将所述目标编码模式对应的划分方向作为所述第二预划分方向。
在其中一个实施例中,所述方法还包括:
在所述目标编码模式与所述预设编码模式不一致的情况下,获取所述图像块的关联图像块的划分方向;
根据所述图像块的关联图像块的划分方向,确定对所述图像块进行划分的方向。
在其中一个实施例中,所述图像块的关联图像块包括对所述图像块进行四叉树划分得到的多个子块;
所述获取所述图像块的关联图像块的划分方向,包括:
对所述图像块进行四叉树划分,得到多个子块;
针对每个所述子块,执行以下处理:
确定每个所述子块的子块像素梯度,在所述子块像素梯度的梯度差异满足所述预设差异度的情况下,确定每个所述子块的第三预划分方向;对每个所述子块进行编码,根据编码结果得到第四预划分方向;在所述第三预划分方向和所述第四预划分方向不一致的情况下,获取每个所述子块的关联图像块的划分方向;根据每个所述子块的关联图像块的划分方向,确定对每个所述子块进行划分的方向;
所述根据所述图像块的关联图像块的划分方向,确定对所述图像块进行划分的方向,包括:
根据多个所述子块的划分方向,确定对所述图像块进行划分的方向。
在其中一个实施例中,所述对所述图像块进行四叉树划分,得到多个子块,包括:
对所述图像块进行至少一次的四叉树划分,直至划分至预设的最小尺寸,得到多个所述子块。
在其中一个实施例中,所述根据所述图像块的关联图像块的划分方向,确定对所述图像块进行划分的方向,包括:
在多个所述子块的划分方向的一致性满足第一预设条件的情况下,根据多个所述子块的划分方向,确定对所述图像块进行划分的方向;
在多个所述子块的划分方向的一致性不满足所述第一预设条件的情况下,采用多种划分方式对所述图像块进行全搜索,得到与每种所述划分方式对应的编码代价;根据与每种所述划分方式对应的编码代价确定对所述图像块进行划分的方向。
在其中一个实施例中,所述图像块的关联图像块还包括所述图像块的同位块;所述同位块与所述图像块位于同一位置且具有相同尺寸,所述图像块与所述同位块产生自不同的编码条件;
所述对所述图像块进行四叉树划分,得到多个子块,包括:
在满足划分条件时,对所述图像块进行四叉树划分,得到多个子块;
其中,所述划分条件包括:确定不存在与所述图像块对应的同位块;
或者,确定存在与所述图像块对应的同位块,且所述同位块的数量为多个,但是多个所述同位块的划分方向的一致性不满足第二预设条件,所述同位块的划分方向是在对所述同位块的上层节点进行编码的过程中得到的。
在其中一个实施例中,在确定存在与所述图像块对应的同位块的情况下,所述根据所述图像块的关联图像块的划分方向,确定对所述图像块进行划分的方向,包括:
在所述同位块的数量为一个的情况下,将所述同位块的划分方向作为对所述图像块进行划分的方向;
在所述同位块的数量为多个,且多个所述同位块的划分方向的一致性满足所述第二预设条件的情况下,根据多个所述同位块的划分方向,确定对所述图像块进行划分的方向。
在其中一个实施例中,所述像素梯度包括横向梯度、纵向梯度和十字梯度;
所述在所述像素梯度的梯度差异满足预设差异度的情况下,确定所述图像块的第一预划分方向,包括:
在所述横向梯度相对所述纵向梯度的梯度差异小于或等于所述预设差异度,且所述横向梯度相对所述十字梯度的梯度差异小于或等于所述预设差异度的情况下,将所述横向梯度和所述纵向梯度中较大的梯度对应的方向,作为所述第一预划分方向。
在其中一个实施例中,所述方法还包括:
在所述横向梯度相对所述纵向梯度的梯度差异大于所述预设差异度,且所述横向梯度相对所述十字梯度的梯度差异大于所述预设差异度的情况下,将所述横向梯度和所述纵向梯度中较小的梯度对应的方向,作为对所述图像块进行划分的方向。
在其中一个实施例中,所述方法还包括:
在所述第一预划分方向和所述第二预划分方向一致的情况下,将所述第一预划分方向或所述第二预划分方向作为对所述图像块进行划分的方向。
根据本公开实施例的第二方面,提供一种视频的块划分装置,包括:
第一方向预确定模块,被配置为执行确定当前视频帧内当前待划分的图像块的像素梯度,在所述像素梯度的梯度差异满足预设差异度的情况下,确定所述图像块的第一预划分方向;
第二方向预确定模块,被配置为执行对所述图像块进行编码,根据编码结果得到第二预划分方向;
关联方向确定模块,被配置为执行在所述第一预划分方向和所述第二预划分方向不一致的情况下,获取所述图像块的关联图像块的划分方向;
划分方向确定模块,被配置为执行根据所述图像块的关联图像块的划分方向,确定对所述图像块进行划分的方向。
在其中一个实施例中,所述第二方向预确定模块,包括:
编码单元,被配置为执行按照多种编码模式对所述图像块进行编码,得到与每种所述编码模式对应的编码代价和划分方向,所述编码代价用于评价编码后的所述图像块的失真情况;
编码模式确定单元,被配置为执行根据每种所述编码模式的编码代价,从多种所述编码模式中确定出目标编码模式;
方向预确定单元,被配置为执行在所述目标编码模式与预设编码模式一致的情况下,将所述目标编码模式对应的划分方向作为所述第二预划分方向。
在其中一个实施例中,所述关联方向确定模块,还被配置为执行在所述目标编码模式与所述预设编码模式不一致的情况下,获取所述图像块的关联图像块的划分方向;
所述划分方向确定模块,还被配置为执行根据所述图像块的关联图像块的划分方向,确定对所述图像块进行划分的方向。
在其中一个实施例中,所述图像块的关联图像块包括对所述图像块进行四叉树划分得到的多个子块;所述关联方向确定模块,包括:
划分单元,被配置为执行对所述图像块进行四叉树划分,得到多个子块;
子块方向确定单元,被配置为执行针对每个所述子块,执行以下处理:
确定每个所述子块的子块像素梯度,在所述子块像素梯度的梯度差异满足所述预设差异度的情况下,确定每个所述子块的第三预划分方向;对每个所述子块进行编码,根据编码结果得到第四预划分方向;在所述第三预划分方向和所述第四预划分方向不一致的情况下,获取每个所述子块的关联图像块的划分方向;根据每个所述子块的关联图像块的划分方向,确定对每个所述子块进行划分的方向;
所述划分方向确定模块,被配置为执行根据多个所述子块的划分方向,确定对所述图像块进行划分的方向。
在其中一个实施例中,所述划分单元,被配置为执行对所述图像块进行至少一次的四叉树划分,直至划分至预设的最小尺寸,得到多个所述子块。
在其中一个实施例中,所述划分方向确定模块,被配置为执行在多个所述子块的划分方向的一致性满足第一预设条件的情况下,根据多个所述子块的划分方向,确定对所述图像块进行划分的方向;在多个所述子块的划分方向的一致性不满足所述第一预设条件的情况下,采用多种划分方式对所述图像块进行全搜索,得到与每种所述划分方式对应的编码代价;根据与每种所述划分方式对应的编码代价确定对所述图像块进行划分的方向。
在其中一个实施例中,所述图像块的关联图像块还包括所述图像块的同位块;所述同位块与所述图像块位于同一位置且具有相同尺寸,所述图像块与所述同位块产生自不同的编码条件;所述划分单元,被配置为执行在满足划分条件时,对所述图像块进行四叉树划分,得到多个子块;其中,所述划分条件包括:确定不存在与所述图像块对应的同位块;或者,确定存在与所述图像块对应的同位块,且所述同位块的数量为多个,但是多个所述同位块的划分方向的一致性不满足第二预设条件,所述同位块的划分方向是在对所述同位块的上层节点进行编码的过程中得到的。
在其中一个实施例中,在确定存在与所述图像块对应的同位块的情况下,所述划分方向确定模块,被配置为执行在所述同位块的数量为一个的情况下,将所述同位块的划分方向作为对所述图像块进行划分的方向;在所述同位块的数量为多个,且多个所述同位块的划分方向的一致性满足所述第二预设条件的情况下,根据多个所述同位块的划分方向,确定对所述图像块进行划分的方向。
在其中一个实施例中,所述像素梯度包括横向梯度、纵向梯度和十字梯度;
所述第一方向预确定模块,被配置为执行在所述横向梯度相对所述纵向梯度的梯度差异小于或等于所述预设差异度,且所述横向梯度相对所述十字梯度的梯度差异小于或等于所述预设差异度的情况下,将所述横向梯度和所述纵向梯度中较大的梯度对应的方向,作为所述第一预划分方向。
在其中一个实施例中,所述划分方向确定模块,还被配置为执行在所述横向梯度相对所述纵向梯度的梯度差异大于所述预设差异度,且所述横向梯度相对所述十字梯度的梯度差异大于所述预设差异度的情况下,将所述横向梯度和所述纵向梯度中较小的梯度对应的方向,作为对所述图像块进行划分的方向。
在其中一个实施例中,所述划分方向确定模块,还被配置为执行在所述第一预划分方向和所述第二预划分方向一致的情况下,将所述第一预划分方向或所述第二预划分方向作为对所述图像块进行划分的方向。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述第一方面任一项实施例所述的视频的块划分方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如上述第一方面任一项实施例所述的视频的块划分方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品中包括指令,所述指令被电子设备的处理器执行时,使得所述电子设备能够执行如上述第一方面任一项实施例所述的视频的块划分方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
首先,确定当前视频帧内当前待划分的图像块的像素梯度,在像素梯度的梯度差异满足预设差异度的情况下,确定该图像块的第一预划分方向,从而可以充分利用图像块的像素梯度的预分析功能。接着,对图像块进行不划分编码,根据编码结果得到第二预划分方向,从而可以在像素梯度不满足预设差异度的情况下,利用不划分编码的编码结果获取可用的划分信息,基于获取到的划分信息跳过横纵方向的倾向预测模式,进一步提升块划分的判断性能。最后,在第一预划分方向和第二预划分方向不一致的情况下,再通过获取图像块的关联图像块的划分方向,确定对图像块进行划分的方向,基于图像块与其关联图像块之间的关系确定图像块的划分方向,能够最终准确预测得到图像块的划分方向。因此,基于本公开实施例的技术方案,可以提升图像块的划分方向的判断效率和准确率,进而提升块划分的整体性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种视频的块划分方法的应用环境图。
图2是根据一示例性实施例示出的一种视频的块划分方法的流程图。
图3是根据一示例性实施例示出的一种确定第二预划分方向步骤的流程图。
图4是根据一示例性实施例示出的另一种视频的块划分方法的流程图。
图5是根据一示例性实施例示出的一种视频的块划分装置的框图。
图6是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
还需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
在视频编码算法中,块划分任务是将图像分成一系列的树形编码单元(CodingTree Units,CTU)。CTU可以进一步被划分成编码单元(Coding Units,CTU,CU)。H.266/VVC编码标准在四叉树(Quad Tree,QT)划分的基础上增加了两种二叉树划分(包括二叉树横向划分和纵向划分)和两种三叉树划分(包括三叉树横向划分和纵向划分)。二叉树划分和三叉树划分统称为MTT(Multi-Type Tree,多类型树)。CTU首先使用四叉树进行划分,若叶子结点(即编码单元)的长或宽超过最大变换长度,则可以对叶子节点进一步采用MTT进行划分。若叶子节点的长或宽未超过最大变换长度,则可以直接进行预测和变换。
以下是SPS(Sequence Paramater Set,序列参数集)中有关内嵌MTT的四叉树划分相关的语法元素:
CTU size:四叉树根节点的尺寸;
MinQTSize:四叉树子节点所允许的最小尺寸;
MaxBtSize:二叉树根节点所允许的最大尺寸;
MaxTtSize:三叉树根节点所允许的最大尺寸;
MaxMttDepth:从一个四叉树子节点所能进行MTT划分的最大深度;
MinBtSize:二叉树子节点所允许的最小尺寸;
MinTtSize:三叉树子节点所允许的最小尺寸。
上述参数的参数值可以依实际需求设置。一个示例中,可以将上述参数的参数值设置为:CTU size:128*128;MinQTSize:8*8;MaxBtSize:64*64;MaxTtSize:64*64;MaxMttDepth:3;MinBtSize:4*4;MinTtSize:4*4。
举例说明,若当前待划分的图像块的尺寸为128*128,由于MaxBtSize和MaxTtSize的值为64*64,因此,将不会对该图像块执行二叉树和三叉树划分,而对该图像块执行四叉树划分,将该图像块作为多类型树的根节点,其深度为0。若图像块的尺寸小于或等于64*64,且大于4*4,则可以从MTT的四种划分方式中,选择一种方式对该图像块进行划分。当多类型树的深度达到3时,停止划分。
针对当前的图像块,通常需要先确定MTT划分的划分方向是纵向还是横向。相关技术的一种方式中,针对当前的图像块,可以统计得到图像块的横向梯度和纵向梯度。若横向梯度远大于纵向梯度,则表明该图像块更倾向于纵向划分,即跳过二叉树和三叉树划分中的横向划分,对该图像块执行二叉树和三叉树划分中的纵向划分。若纵向梯度远大于横向梯度,则表明该图像块更倾向于横向划分,即跳过二叉树和三叉树划分中的纵向划分,对该图像块执行二叉树和三叉树划分中的横向划分。该技术方案主要依赖梯度的计算,梯度只能在一定程度上表征图像块的划分趋势。因此采用该技术方案,若判断过程中采用的阈值增大,则会导致判断速度增幅不明显;若阈值降低,则会带来大幅的压缩性能降低,从而不能够准确且快速地进行划分方向的判断。
相关技术的另一种方式中,可以根据图像块的周围图像块中,已编码完成的周围图像块的划分方向,确定该图像块的划分方向。若已编码完成的周围图像块都是横向划分,则该图像块也更倾向于横向划分。若已编码完成的周围图像块都是纵向划分,则该图像块也更倾向于纵向划分。该技术方案主要是依赖于周围图像块和当前图像块的相关性,若存在当前图像块处于图像的边界处或与周围图像块的关联性不大等情况,则很容易产生误判,从而导致造成编码压缩效率的大幅降低,不能够准确且快速地进行划分方向的判断。
针对上述技术问题,本公开提供一种视频的块划分方法,可以应用于如图1所示的应用环境中。其中,终端110通过网络与服务器120进行通信。数据存储系统可以存储服务器120需要处理的数据。数据存储系统可以集成在服务器120上,也可以放在云上或其他网络服务器上。终端110中部署有能够播放视频的客户端,该客户端可以但不限于是视频类、社交类、即时通信类、电商类等。服务器120中部署有用于对视频进行编码的编码方式。服务器120可以采用该编码方式对视频进行编码,以便于存储和传输视频。在对视频编码过程中,针对当前视频帧内当前待划分的图像块,服务器120先确定该图像块的像素梯度,在像素梯度的梯度差异满足预设差异度的情况下,确定图像块的第一预划分方向。服务器120对图像块进行不划分编码,根据编码结果得到第二预划分方向。在第一预划分方向和第二预划分方向不一致的情况下,服务器120获取图像块的关联图像块的划分方向;根据图像块的关联图像块的划分方向,确定对图像块进行划分的方向,进而对该图像块进行划分并编码。
其中,终端110可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
图2是根据一示例性实施例示出的一种视频的块划分方法的流程图,如图2所示,视频的块划分方法用于服务器中,包括步骤S210~S240。
在步骤S210中,确定当前视频帧内当前待划分的图像块的像素梯度,在像素梯度的梯度差异满足预设差异度的情况下,确定图像块的第一预划分方向。
其中,像素梯度是指视频帧在某个方向上的像素的变化情况,可以包括横向(即X轴方向)梯度、纵向(即Y轴方向)梯度、十字梯度中的任意两种以上。
一个实施例中,针对横向梯度,可以计算X轴方向上的当前像素与当前像素的相邻像素的差值绝对值,根据该差值绝对值计算得到横向梯度。一个示例中,可以将差值绝对值的平均值作为横向梯度;或者,将差值绝对值的方差作为横向梯度,在此不做具体限定。同理,针对纵向梯度,可以计算Y轴方向上的当前像素与当前像素的相邻像素的差值绝对值,进而基于该差值绝对值计算得到纵向梯度。十字梯度表示视频帧斜角方向上像素的变化情况,可以计算斜角方向上的当前像素与当前像素的相邻像素的差值绝对值,进而基于该差值绝对值计算得到十字梯度。
一个实施例中,像素梯度的梯度差异可以使用横向梯度和纵向梯度之间的差异度表示,例如,横向梯度和纵向梯度的差值、比值等。另一个实施例中,像素梯度可以使用横向梯度分别与纵向梯度和十字梯度之间的差异度表示,例如,横向梯度和纵向梯度的差值,以及横向梯度和十字梯度之间的差值。
预设差异度可以使用阈值表示。像素梯度满足预设差异度可以是指像素梯度不超过阈值。一个示例中,在梯度差异使用横向梯度和纵向梯度之间的比值表示的情况下,满足预设差异度可以指横向梯度和纵向梯度的比值小于预设阈值。
在本公开实施例中,针对当前视频帧内当前待划分的图像块,服务器先基于图像块的像素梯度得到梯度差异。若梯度差异满足预设差异度,则进一步根据像素梯度确定该图像块的第一预划分方向,进而继续执行步骤S220。
一个实施例中,可以将像素梯度中梯度值较大的方向作为第一预划分方向。一个示例中,像素梯度包括横向梯度和纵向梯度,若横向梯度大于纵向梯度,则将第一预划分方向确定为横向;若横向梯度小于纵向梯度,则将第一预划分方向确定为纵向。
一个实施例中,若梯度差异不满足预设差异度,则可以将像素梯度中梯度值较小的方向作为对该图像块进行划分方向,结束对该图像块的划分方向的判断。一个示例中,像素梯度包括横向梯度和纵向梯度。若梯度差异不满足预设差异度,且横向梯度大于纵向梯度,则跳过二叉树和三叉树的横向划分,对该图像块进行二叉树纵向划分或者三叉树纵向划分;若梯度差异不满足预设差异度,且横向梯度小于纵向梯度,则跳过二叉树和三叉树的纵向划分,对该图像块进行二叉树横向划分或者三叉树横向划分。
在步骤S220中,对图像块进行编码,根据编码结果得到第二预划分方向。
其中,编码结果可以但限于包括与编码模式对应的编码代价、划分方向等。编码代价用于评价编码后的图像块的失真情况,可以使用RDCost(Rate Distortion Optimation,率失真优化)表示。
第二预划分方向可以为纵向划分、横向划分、无明确划分方向中的任一种。第二预划分方向可以采用编码模式对应的预测方向表征。一个示例中,编码模式为帧内编码,帧内编码定义了多种(通常有9种)不同的预测方向。在采用帧内编码模式对图像块进行不划分编码后,可以从该多种预测方向中得到一种作为该图像块的预测方向,进而将该预测方向作为第二预划分方向。
具体地,在像素梯度的梯度差异满足预设差异度的情况下,服务器可以采用预先配置的编码模式对该图像块进行不划分编码,得到与编码模式对应的编码结果。预先配置的编码模式可以为帧内编码、帧间编码中的一种或者多种。
在步骤S230中,在第一预划分方向和第二预划分方向不一致的情况下,获取图像块的关联图像块的划分方向。
在步骤S240中,根据图像块的关联图像块的划分方向,确定对图像块进行划分的方向。
其中,图像块的关联图像块为与该图像块具有关联关系的图像块,例如,可以为该图像块的周围图像块、与该图像块同属于一个父节点的图像块、该图像块的子块等,在本实施例中不对关联图像块作具体限定。
具体地,服务器比较第一预划分方向和第二预划分方向。若第一预划分方向和第二预划分方向不一致,则继续获取该图像块的关联图像块的划分方向。根据关联图像块的划分方向确定对该图像块进行划分的方向。一个实施例中,若关联图像块为周围图像块,则可以获取周围图像块中已经编码好的周围图像块的划分方向,根据已经编码好的周围图像块的划分方向,得到该图像块的划分方向。另一个实施例中,图像块的划分可以基于递归的方式进行。可以按照预设划分方式对该图像块进行划分,得到该图像块的多个子块,采用步骤S210~步骤S240的方式确定子块的划分方向,并基于多个子块的划分方向得到该图像块的划分方向。
一个实施例中,在第一预划分方向和第二预划分方向一致的情况下,将第一预划分方向或第二预划分方向作为对图像块进行划分的方向。例如,第一预划分方向和第二预划分方向都为横向,则对该图像块进行二叉树横向划分或者三叉树横向划分。第一预划分方向和第二预划分方向都为纵向,则对该图像块进行二叉树纵向划分或者三叉树纵向划分。
一个实施例中,在确定图像块的划分方向之后,可以分别在该划分方向上尝试二叉树划分和三叉树划分。从二叉树划分和三叉树划分中,选择编码代价较低的方式作为最终的划分方式。
上述视频的块划分方法中,首先,确定当前视频帧内当前待划分的图像块的像素梯度,在像素梯度的梯度差异满足预设差异度的情况下,确定该图像块的第一预划分方向,从而可以充分利用图像块的像素梯度的预分析功能。接着,对图像块进行不划分编码,根据编码结果得到第二预划分方向,从而可以在像素梯度不满足预设差异度的情况下,利用不划分编码的编码结果获取可用的划分信息,基于获取到的划分信息跳过横纵方向的倾向预测模式,进一步提升块划分的判断性能。最后,在第一预划分方向和第二预划分方向不一致的情况下,再通过获取图像块的关联图像块的划分方向,确定对图像块进行划分的方向,基于图像块与其关联图像块之间的关系确定图像块的划分方向,能够最终准确预测得到图像块的划分方向。因此,基于本公开实施例的技术方案,可以提升图像块的划分方向的判断效率和准确率,进而提升块划分的整体性能。
在一示例性实施例中,如图3所示,步骤S220,对图像块进行编码,根据编码结果得到第二预划分方向,具体可以通过以下步骤S310~步骤S330实现:
在步骤S310中,按照多种编码模式对图像块进行编码,得到与每种编码模式对应的编码代价和划分方向。
在步骤S320中,根据每种编码模式的编码代价,从多种编码模式中确定出目标编码模式。
在步骤S330中,在目标编码模式与预设编码模式一致的情况下,将目标编码模式对应的划分方向作为第二预划分方向。
其中,多种编码模式可以但不限于包括帧内编码和帧间编码。预设编码模式可以为帧内编码或帧间编码。一个实施例中,由于帧间编码会受到参考帧的影响,因此,预设编码模式优选为帧内编码,从而可以提升编码模式的选择精度。
具体地,服务器采用每种编码模式对该图像块进行不划分编码,得到与每种编码模式对应的编码代价和划分方向(即预测方向)。服务器比较多种编码模式的编码代价,基于比较结果从多种编码模式中确定出目标编码模式。一个示例中,可以选择编码代价最小的编码模式,作为目标编码模式。另一个示例中,可以选择编码代价小于代价阈值的编码模式,作为目标编码模式。服务器将目标编码模式与预设编码模式进行比较,若目标编码模式与预设编码模式一致,则将目标编码模式对应的划分方向作为第二预划分方向,继续执行步骤S230~S250。若目标编码模式与预设编码模式不一致,则可以跳过步骤S230,执行步骤S240。
本实施例中,在像素梯度的梯度差异满足预设差异度的情况下,按照多种编码模式对当前图像块进行不划分编码,利用多种编码模式的编码代价预测当前图像块的划分方向,并结合编码模式对应的划分方向和像素梯度对应的划分方向,确定对图像块的划分方向,能够快速且准确的得到图像块的划分方向,且降低后续编码的失真情况。
在一示例性实施例中,图像块的划分方向的确定过程可以是递归进行的。图像块的关联图像块包括对图像块进行四叉树划分得到的多个子块。在第一预划分方向和第二预划分方向不一致的情况下,服务器可以对图像块进行四叉树划分,得到多个子块。针对每个子块,可以参照步骤S210~步骤S240所述的过程得到每个子块的划分方向。即,确定每个子块的子块像素梯度。若子块像素梯度的梯度差异满足预设差异度,则根据子块像素梯度确定每个子块的第三预划分方向;若子块像素梯度的梯度差异不满足预设差异度,则可以将像素梯度中梯度值较小的方向作为对该子块进行划分的方向。
在子块像素梯度的梯度差异不满足预设差异度的情况下,对该子块进行编码,并根据编码结果得到第四预划分方向。比较第三预划分方向和第四预划分方向,若第三预划分方向和第四预划分方向不一致,则继续获取每个子块的关联图像块的划分方向,根据每个子块的关联图像块的划分方向,确定对每个子块进行划分的方向。若第三预划分方向和第四预划分方向一致,则将第三预划分方向或第四预划分方向作为对该子块进行划分的方向。
一个实施例中,除了对当前的图像块进行四叉树划分,还可以依实际需求对当前图像块进行二叉树划分或三叉树划分,或者,分别对当前图像块进行二叉树划分和三叉树划分,在本实施例不做具体限定。
本实施例中,在编码模式对应的划分方向和像素梯度对应的划分方向不一致的情况下,通过对图像块继续进行划分,基于划分得到的子块的划分方向递归回溯得到当前图像块的划分方向,从子块的整体划分情况确定当前图像块的划分方向,能够准确地跳过横纵划分的趋势预测模式,提升划分方向的决策准确性。
在一示例性实施例中,若第一预划分方向和第二预划分方向不一致,且图像块的关联图像块包括对图像块进行四叉树划分得到的多个子块,则根据多个子块的划分方向,确定对图像块进行划分的方向。
一个实施例中,可以计算得到多个子块的划分方向的一致性。划分方向的一致性可以采用每个划分方向在多个子块中的占比表示。例如,存在N(N为大于或等于4的正整数)个子块,其中A(A为自然数)个子块的划分方向为纵向,B(B为自然数)个子块的划分方向为横向,则划分方向的一致性可以采用A/N,或者B/N,或者A/B等表示。第一预设条件为第一阈值。若上述A/N大于第一阈值,则将纵向划分确定为对图像块进行划分的方向;上述B/N大于第一阈值,则将横向划分确定为对图像块进行划分的方向。若多个子块的划分方向的一致性不满足第一预设条件,则可以采用多种划分方式对图像块进行全搜索,得到与每种划分方式对应的编码代价;根据得到与每种划分方式对应的编码代价确定对图像块进行划分的方向。
一个实施例中,全搜索可以是指尝试MTT划分中的所有划分方式,选择编码代价最优的划分方式对当前图像块进行划分。
一个实施例中,为了更快的得到当前图像块的划分方向,可以设置若全部子块的划分方向都相同,则将全部子块的划分方向作为对图像块进行划分的方向。若全部子块的划分方向中存在至少一个子块的划分方向与其他子块的划分方向不同,则可以采用多种划分方式对图像块进行全搜索,根据全搜索结果确定对图像块进行划分的方向。
本实施例中,在编码模式对应的划分方向和像素梯度对应的划分方向不一致的情况下,通过对图像块继续进行划分,基于划分得到的子块的划分方向递归回溯得到当前图像块的划分方向,从子块的整体划分情况确定当前图像块的划分方向,能够准确地跳过横纵划分的趋势预测模式,提升划分方向的决策准确性。
在一示例性实施例中,在第一预划分方向和第二预划分方向不一致,且图像块的关联图像块包括对图像块进行四叉树划分得到的多个子块的情况下,可以对图像块进行至少一次的四叉树划分,直至划分至预设的最小尺寸,得到多个子块。一个示例中,预先配置最小尺寸为4*4。若当前子块的尺寸大于4*4,则可以对该子块继续进行四叉树划分;若当前子块的尺寸小于等于4*4,则停止划分,得到多个子块。
在一示例性实施例中,图像块的关联图像块还包括图像块的同位块;同位块为与图像块位于同一位置且具有相同尺寸,但是图像块与同位块产生自不同的编码条件。其中,编码条件包括划分方向、编码模式、编码代价等信息。
针对当前图像块的上层图像块(即至少一层上层节点),都可以按照步骤S210~S240得到每个上层图像块的划分方向。因此,在对每个上层图像块进行划分的过程中,可能会按照不同的划分方式对上层图像块进行划分,得到不同的树形划分路径,并存储得到的树形划分路径。
在本实施例中,可以在满足划分条件的情况下,对图像块进行四叉树划分,得到多个子块。其中,划分条件包括以下两种情况中的任一种。
(1)确定不存在与图像块对应的同位块。
具体地,服务器在得到第一预划分方向和第二预划分方向不一致的情况下,可以先从已存储的树形划分路径中查找是否存在当前图像块的同位块。若不存在,则执行对图像块进行四叉树划分,得到多个子块的步骤;若存在,则基于同位块确定图像块的划分方向。
(2)确定存在与图像块对应的同位块,且同位块的数量为多个,但是多个同位块的划分方向的一致性不满足第二预设条件,同位块的划分方向是在对同位块的上层节点进行编码的过程中得到的。
其中,划分方向的一致性可以采用每个划分方向在多个同位块中的占比表示。例如,存在M(M为大于1的正整数)个同位块,其中C(C为任意自然数)个同位块的划分方向为纵向,D(D为任意自然数)个同位块的划分方向为横向,则划分方向的一致性可以采用C/N,或者D/N,或者C/D等表示。
具体地,若服务器从已存储的树形划分路径中查找存在当前图像块的同位块,且同位块的数量为多个。若多个同位块的划分方向的一致性不满足第二预设条件,则执行对图像块进行四叉树划分,得到多个子块的步骤;若满足第二预设条件,则基于多个同位块的划分方向确定图像块的划分方向。
可以理解的是,还可以在对图像块进行四叉树划分得到多个子块之后,再进行同位块的判定。具体实现中,若多个子块的划分方向的一致性不满足第一预设条件,则执行获取同位块的划分方向的步骤。
一个实施例中,在确定存在与图像块对应的同位块的情况下,步骤S240,根据图像块的关联图像块的划分方向,确定对图像块进行划分的方向,可以通过以下两种方式中的任一种实现。
(1)在同位块的数量为一个的情况下,将同位块的划分方向作为对图像块进行划分的方向。
(2)在同位块的数量为多个,且多个同位块的划分方向的一致性满足第二预设条件的情况下,根据多个同位块的划分方向,确定对图像块进行划分的方向。一个示例中,第二预设条件为第二阈值。上述C/N大于第二阈值,则将纵向划分确定为对图像块进行划分的方向;上述D/N大于第二阈值,则将横向划分确定为对图像块进行划分的方向。
一个实施例中,为了更快地得到图像块的划分方向,可以设置若全部同位块的划分方向都相同,则将全部同位块的划分方向作为对图像块进行划分的方向。若全部同位块的划分方向中存在至少一个同位块的划分方向与其他同位块的划分方向不同,则执行对图像块进行四叉树划分,得到多个子块的步骤。
本实施例中,在基于像素梯度、编码模式等都无法得到当前图像块的划分方向的情况下,从已存储的树形划分路径中寻找当前图像块的同位块,基于同位块的划分方向确定当前图像块的划分方向,充分利用已得到的编码信息,可以提升划分方向的判断效率和判断准确性。
在一示例性实施例中,像素梯度包括横向梯度、纵向梯度和十字梯度。服务器计算横向梯度和纵向梯度之间的梯度差异,以及横向梯度和十字梯度之间的梯度差异。若计算得到的两个梯度差异小于或等于预设差异度,则说明横向梯度和纵向梯度的差距不是很大,基于像素梯度预测图像块的划分趋势的准确性不高,可以将横向梯度和纵向梯度中较大的梯度对应的方向,作为第一预划分方向,并继续执行步骤S220。
若服务器获取横向梯度相对纵向梯度的梯度差异大于预设差异度,且横向梯度相对十字梯度的梯度差异大于预设差异度,则说明横向梯度和纵向梯度的差距很大,则将横向梯度和纵向梯度中较小的梯度对应的方向,作为对图像块进行划分的方向。一个示例中,若横向梯度相对纵向梯度的梯度差异大于预设差异度,且横向梯度大于纵向梯度,则可以对图像块采用二叉树纵向划分或三叉树纵向划分。若横向梯度相对纵向梯度的梯度差异大于预设差异度,且横向梯度小于纵向梯度,则可以对图像块采用二叉树横向划分或三叉树横向划分。
本实施例中,基于横向梯度与纵向梯度和十字梯度之间的差异情况确定对图像块进行划分的方向,从多个方向综合比对,能够提升划分方向的准确率。
图4是根据一示例性实施例示出的一种视频的块划分方法的流程图,如图4所示,视频的块划分方法用于服务器中,包括步骤S402~步骤S420。
在步骤S402中,确定当前视频帧内当前待划分的图像块的像素梯度,像素梯度包括横向梯度、纵向梯度和十字梯度。
在步骤S404中,计算得到横向梯度相对纵向梯度的梯度差异,以及横向梯度相对十字梯度的梯度差异。若得到的两个梯度差异都大于预设差异度,且横向梯度大于纵向梯度(横向梯度远大于纵向梯度),则执行步骤S420,将对图像块进行纵向划分;若得到的两个梯度差异都大于预设差异度,且横向梯度小于纵向梯度(纵向梯度远大于横向梯度),则执行步骤S422,对图像块进行横向划分;若得到的两个梯度差异都小于或等于预设差异度,则确定图像块的第一预划分方向,并执行步骤S406。
在步骤S406中,对图像块进行帧间编码和帧内编码,得到与帧间编码对应的率失真代价和划分方向,以及与帧内编码对应的率失真代价和划分方向。
在步骤S408中,若帧间编码对应的率失真代价大于帧内编码对应的率失真代价,则将帧内编码对应的划分方向作为第二预划分方向,并执行步骤S410;若帧内编码对应的率失真代价大于或等于帧间编码对应的率失真代价,则执行步骤S412。
在步骤S410中,比较第一预划分方向和第二预划分方向。若第一预划分方向和第二预划分方向不一致,则执行步骤S412。若第一预划分方向和第二预划分方向都为纵向,则执行步骤S420,将对图像块进行纵向划分;若第一预划分方向和第二预划分方向都为横向,则执行步骤S422,将对图像块进行横向划分。
在步骤S412中,确定是否存在与图像块对应的同位块。若存在同位块,且同位块的划分方向都为纵向、当前深度满足预设深度,则执行步骤S420,将对图像块进行纵向划分;若存在同位块,且同位块的划分方向都为横向、当前深度满足预设深度,则执行步骤S422,将对图像块进行横向划分;若不存在同位块,或者存在至少一个同位块的划分方向与其他同位块不同,则执行步骤S414。
在步骤S414中,对图像块进行四叉树划分,直至划分至最小尺寸,得到多个子块。分别对多个子块执行步骤S402~S422,得到每个子块的划分方向。
在步骤S416中,若多个子块的划分方向都为纵向,则执行步骤S420,将对图像块进行纵向划分;若多个子块的划分方向都为横向,则执行步骤S422,将对图像块进行横向划分;若存在至少一个子块的划分方向与其他子块不同,则执行步骤S418。
在步骤S418中,采用多种划分方式对图像块进行全搜索,根据全搜索结果确定对图像块进行划分的方向。
在步骤S420中,对图像块进行二叉树纵向划分或者三叉树纵向划分。
在步骤S422中,对图像块进行二叉树横向划分或者三叉树横向划分。
本实施例中,充分利用图像块的像素梯度的预分析功能,结合帧内编码的编码结果获取可用的划分信息,能够提升划分方向的确定性能。在第一预划分方向和第二预划分方向不一致的情况下,再基于图像块与其关联图像块之间的关系确定图像块的划分方向,能够跳过横纵划分的趋势预测模式,准确预测得到图像块的划分方向。本公开实施例能大幅提升编码器的划分方向的判断速度,并且对压缩性能的影响较小。经试验,本公开实施例能够带来0.65%BD-PSNR(BD-PSNR表示在同等速率情况下,优化后算法与原始算法相比视频客观质量的提高量)的损失,35%左右的决策速度提升。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
可以理解的是,本说明书中上述方法的各个实施例之间相同/相似的部分可互相参见,每个实施例重点说明的是与其他实施例的不同之处,相关之处参见其他方法实施例的说明即可。
图5是根据一示例性实施例示出的一种视频的块划分装置500框图。参照图5,该装置包括第一方向预确定模块502、第二方向预确定模块504、关联方向确定模块506、划分方向确定模块508。
第一方向预确定模块502,被配置为执行确定当前视频帧内当前待划分的图像块的像素梯度,在像素梯度的梯度差异满足预设差异度的情况下,确定图像块的第一预划分方向;第二方向预确定模块504,被配置为执行对图像块进行编码,根据编码结果得到第二预划分方向;关联方向确定模块506,被配置为执行在第一预划分方向和第二预划分方向不一致的情况下,获取图像块的关联图像块的划分方向;划分方向确定模块508,被配置为执行根据图像块的关联图像块的划分方向,确定对图像块进行划分的方向。
在一示例性实施例中,第二方向预确定模块504,包括:编码单元,被配置为执行按照多种编码模式对图像块进行编码,得到与每种编码模式对应的编码代价和划分方向,编码代价用于评价编码后的图像块的失真情况;编码模式确定单元,被配置为执行根据每种编码模式的编码代价,从多种编码模式中确定出目标编码模式;方向预确定单元,被配置为执行在目标编码模式与预设编码模式一致的情况下,将目标编码模式对应的划分方向作为第二预划分方向。
在一示例性实施例中,关联方向确定模块506,还被配置为执行在目标编码模式与预设编码模式不一致的情况下,获取图像块的关联图像块的划分方向;划分方向确定模块508,还被配置为执行根据图像块的关联图像块的划分方向,确定对图像块进行划分的方向。
在一示例性实施例中,图像块的关联图像块包括对图像块进行四叉树划分得到的多个子块;关联方向确定模块506,包括:划分单元,被配置为执行对图像块进行四叉树划分,得到多个子块;子块方向确定单元,被配置为执行针对每个子块,执行以下处理:确定每个子块的子块像素梯度,在子块像素梯度的梯度差异满足预设差异度的情况下,确定每个子块的第三预划分方向;对每个子块进行编码,根据编码结果得到第四预划分方向;在第三预划分方向和第四预划分方向不一致的情况下,获取每个子块的关联图像块的划分方向;根据每个子块的关联图像块的划分方向,确定对每个子块进行划分的方向。在本实施例中,划分方向确定模块508,被配置为执行根据多个子块的划分方向,确定对图像块进行划分的方向。
在一示例性实施例中,划分单元,被配置为执行对图像块进行至少一次的四叉树划分,直至划分至预设的最小尺寸,得到多个子块。
在一示例性实施例中,划分方向确定模块508,被配置为执行在多个子块的划分方向的一致性满足第一预设条件的情况下,根据多个子块的划分方向,确定对图像块进行划分的方向;在多个子块的划分方向的一致性不满足第一预设条件的情况下,采用多种划分方式对图像块进行全搜索,得到与每种划分方式对应的编码代价;根据与每种划分方式对应的编码代价确定对图像块进行划分的方向。
在一示例性实施例中,图像块的关联图像块还包括图像块的同位块;同位块与图像块位于同一位置且具有相同尺寸,图像块与同位块产生自不同的编码条件;划分单元,被配置为执行在满足划分条件时,对图像块进行四叉树划分,得到多个子块;其中,划分条件包括:确定不存在与图像块对应的同位块;或者,确定存在与图像块对应的同位块,且同位块的数量为多个,但是多个同位块的划分方向的一致性不满足第二预设条件,同位块的划分方向是在对同位块的上层节点进行编码的过程中得到的。
在一示例性实施例中,在确定存在与图像块对应的同位块的情况下,划分方向确定模块508,被配置为执行在同位块的数量为一个的情况下,将同位块的划分方向作为对图像块进行划分的方向;在同位块的数量为多个,且多个同位块的划分方向的一致性满足第二预设条件的情况下,根据多个同位块的划分方向,确定对图像块进行划分的方向。
在一示例性实施例中,像素梯度包括横向梯度、纵向梯度和十字梯度;第一方向预确定模块502,被配置为执行在横向梯度相对纵向梯度的梯度差异小于或等于预设差异度,且横向梯度相对十字梯度的梯度差异小于或等于预设差异度的情况下,将横向梯度和纵向梯度中较大的梯度对应的方向,作为第一预划分方向。
在一示例性实施例中,划分方向确定模块508,还被配置为执行在横向梯度相对纵向梯度的梯度差异大于预设差异度,且横向梯度相对十字梯度的梯度差异大于预设差异度的情况下,将横向梯度和纵向梯度中较小的梯度对应的方向,作为对图像块进行划分的方向。
在一示例性实施例中,划分方向确定模块508,还被配置为执行在第一预划分方向和第二预划分方向一致的情况下,将第一预划分方向或第二预划分方向作为对图像块进行划分的方向。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种用于对视频进行块划分的电子设备S00的框图。例如,电子设备S00可以为服务器。参照图6,电子设备S00包括处理组件S20,其进一步包括一个或多个处理器,以及由存储器S22所代表的存储器资源,用于存储可由处理组件S20的执行的指令,例如应用程序。存储器S22中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件S20被配置为执行指令,以执行上述方法。
电子设备S00还可以包括:电源组件S24被配置为执行电子设备S00的电源管理,有线或无线网络接口S26被配置为将电子设备S00连接到网络,和输入输出(I/O)接口S28。电子设备S00可以操作基于存储在存储器S22的操作系统,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD或类似。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器S22,上述指令可由电子设备S00的处理器执行以完成上述方法。存储介质可以是计算机可读存储介质,例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供一种计算机程序产品,所述计算机程序产品中包括指令,上述指令可由电子设备S00的处理器执行以完成上述方法。
需要说明的,上述的装置、电子设备、计算机可读存储介质、计算机程序产品等根据方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (15)
1.一种视频的块划分方法,其特征在于,包括:
确定当前视频帧内当前待划分的图像块的像素梯度,在所述像素梯度的梯度差异满足预设差异度的情况下,确定所述图像块的第一预划分方向;
对所述图像块进行编码,根据编码结果得到第二预划分方向;
在所述第一预划分方向和所述第二预划分方向不一致的情况下,获取所述图像块的关联图像块的划分方向;
根据所述图像块的关联图像块的划分方向,确定对所述图像块进行划分的方向。
2.根据权利要求1所述的视频的块划分方法,其特征在于,所述对所述图像块进行编码,根据编码结果得到第二预划分方向,包括:
按照多种编码模式对所述图像块进行编码,得到与每种所述编码模式对应的编码代价和划分方向,所述编码代价用于评价编码后的所述图像块的失真情况;
根据每种所述编码模式的编码代价,从多种所述编码模式中确定出目标编码模式;
在所述目标编码模式与预设编码模式一致的情况下,将所述目标编码模式对应的划分方向作为所述第二预划分方向。
3.根据权利要求2所述的视频的块划分方法,其特征在于,所述方法还包括:
在所述目标编码模式与所述预设编码模式不一致的情况下,获取所述图像块的关联图像块的划分方向;
根据所述图像块的关联图像块的划分方向,确定对所述图像块进行划分的方向。
4.根据权利要求1所述的视频的块划分方法,其特征在于,所述图像块的关联图像块包括对所述图像块进行四叉树划分得到的多个子块;
所述获取所述图像块的关联图像块的划分方向,包括:
对所述图像块进行四叉树划分,得到多个子块;
针对每个所述子块,执行以下处理:
确定每个所述子块的子块像素梯度,在所述子块像素梯度的梯度差异满足所述预设差异度的情况下,确定每个所述子块的第三预划分方向;对每个所述子块进行编码,根据编码结果得到第四预划分方向;在所述第三预划分方向和所述第四预划分方向不一致的情况下,获取每个所述子块的关联图像块的划分方向;根据每个所述子块的关联图像块的划分方向,确定对每个所述子块进行划分的方向;
所述根据所述图像块的关联图像块的划分方向,确定对所述图像块进行划分的方向,包括:
根据多个所述子块的划分方向,确定对所述图像块进行划分的方向。
5.根据权利要求4所述的视频的块划分方法,其特征在于,所述对所述图像块进行四叉树划分,得到多个子块,包括:
对所述图像块进行至少一次的四叉树划分,直至划分至预设的最小尺寸,得到多个所述子块。
6.根据权利要求4所述的视频的块划分方法,其特征在于,所述根据所述图像块的关联图像块的划分方向,确定对所述图像块进行划分的方向,包括:
在多个所述子块的划分方向的一致性满足第一预设条件的情况下,根据多个所述子块的划分方向,确定对所述图像块进行划分的方向;
在多个所述子块的划分方向的一致性不满足所述第一预设条件的情况下,采用多种划分方式对所述图像块进行全搜索,得到与每种所述划分方式对应的编码代价;
根据与每种所述划分方式对应的编码代价确定对所述图像块进行划分的方向。
7.根据权利要求4所述的视频的块划分方法,其特征在于,所述图像块的关联图像块还包括所述图像块的同位块;所述同位块与所述图像块位于同一位置且具有相同尺寸,所述图像块与所述同位块产生自不同的编码条件;
所述对所述图像块进行四叉树划分,得到多个子块,包括:
在满足划分条件时,对所述图像块进行四叉树划分,得到多个子块;
其中,所述划分条件包括:确定不存在与所述图像块对应的同位块;或者,确定存在与所述图像块对应的同位块,且所述同位块的数量为多个,但是多个所述同位块的划分方向的一致性不满足第二预设条件,所述同位块的划分方向是在对所述同位块的上层节点进行编码的过程中得到的。
8.根据权利要求7所述的视频的块划分方法,其特征在于,在确定存在与所述图像块对应的同位块的情况下,所述根据所述图像块的关联图像块的划分方向,确定对所述图像块进行划分的方向,包括:
在所述同位块的数量为一个的情况下,将所述同位块的划分方向作为对所述图像块进行划分的方向;
在所述同位块的数量为多个,且多个所述同位块的划分方向的一致性满足所述第二预设条件的情况下,根据多个所述同位块的划分方向,确定对所述图像块进行划分的方向。
9.根据权利要求1~8任一项所述的视频的块划分方法,其特征在于,所述像素梯度包括横向梯度、纵向梯度和十字梯度;
所述在所述像素梯度的梯度差异满足预设差异度的情况下,确定所述图像块的第一预划分方向,包括:
在所述横向梯度相对所述纵向梯度的梯度差异小于或等于所述预设差异度,且所述横向梯度相对所述十字梯度的梯度差异小于或等于所述预设差异度的情况下,将所述横向梯度和所述纵向梯度中较大的梯度对应的方向,作为所述第一预划分方向。
10.根据权利要求9所述的视频的块划分方法,其特征在于,所述方法还包括:
在所述横向梯度相对所述纵向梯度的梯度差异大于所述预设差异度,且所述横向梯度相对所述十字梯度的梯度差异大于所述预设差异度的情况下,将所述横向梯度和所述纵向梯度中较小的梯度对应的方向,作为对所述图像块进行划分的方向。
11.根据权利要求1~8任一项所述的视频的块划分方法,其特征在于,所述方法还包括:
在所述第一预划分方向和所述第二预划分方向一致的情况下,将所述第一预划分方向或所述第二预划分方向作为对所述图像块进行划分的方向。
12.一种视频的块划分装置,其特征在于,包括:
第一方向预确定模块,被配置为执行确定当前视频帧内当前待划分的图像块的像素梯度,在所述像素梯度的梯度差异满足预设差异度的情况下,确定所述图像块的第一预划分方向;
第二方向预确定模块,被配置为执行对所述图像块进行编码,根据编码结果得到第二预划分方向;
关联方向确定模块,被配置为执行在所述第一预划分方向和所述第二预划分方向不一致的情况下,获取所述图像块的关联图像块的划分方向;
划分方向确定模块,被配置为执行根据所述图像块的关联图像块的划分方向,确定对所述图像块进行划分的方向。
13.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至11中任一项所述的视频的块划分方法。
14.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至11中任一项所述的视频的块划分方法。
15.一种计算机程序产品,所述计算机程序产品中包括指令,其特征在于,所述指令被电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至11任一项所述的视频的块划分方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211509829.5A CN115842917A (zh) | 2022-11-29 | 2022-11-29 | 视频的块划分方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211509829.5A CN115842917A (zh) | 2022-11-29 | 2022-11-29 | 视频的块划分方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115842917A true CN115842917A (zh) | 2023-03-24 |
Family
ID=85576192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211509829.5A Pending CN115842917A (zh) | 2022-11-29 | 2022-11-29 | 视频的块划分方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115842917A (zh) |
-
2022
- 2022-11-29 CN CN202211509829.5A patent/CN115842917A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11451772B2 (en) | Intra-frame prediction coding method and apparatus, electronic device, and computer storage medium | |
US20110222601A1 (en) | Moving image encoding and decoding system | |
US11785216B2 (en) | Point cloud coding methods, encoder, and decoder | |
JP2006014343A (ja) | 画像の符号化および復号化 | |
CN111316642B (zh) | 信令图像编码和解码划分信息的方法和装置 | |
CN104904220A (zh) | 用于深度图像的编码设备和解码设备以及编码方法和解码方法 | |
CN111669593B (zh) | 视频编码方法、装置、电子设备和存储介质 | |
US11704840B2 (en) | Attribute information prediction method, encoder, decoder and storage medium | |
CN110213581B (zh) | 一种基于块划分模式跳过的编码方法、装置及存储介质 | |
CN114710667A (zh) | 针对h.266/vvc屏幕内容帧内cu划分的快速预测方法及装置 | |
US20140133575A1 (en) | Electronic device and method for splitting image | |
CN111654696B (zh) | 一种帧内的多参考行预测方法、装置、存储介质及终端 | |
CN115842917A (zh) | 视频的块划分方法、装置、电子设备及存储介质 | |
CN109089115B (zh) | 在hevc用于对360度视频进行编码的方法 | |
CN114520916B (zh) | 视频编码方法、装置、终端设备以及存储介质 | |
JP7411785B2 (ja) | イントラ予測のための補間フィルタリング方法と装置、コンピュータプログラム及び電子装置 | |
US20060155701A1 (en) | Fast implementation of recursive diamond search | |
CN114071138A (zh) | 帧内预测编码方法、帧内预测编码装置和计算机可读介质 | |
CN111988612A (zh) | 一种视频编码处理方法、装置及电子设备 | |
US20130136374A1 (en) | Method and apparatus for encoding that intra prediction based on mode of variable size partition is applied in macro block | |
CN116156174B (zh) | 数据编码处理方法、装置、计算机设备和存储介质 | |
CN114449273B (zh) | 基于hevc增强型块划分搜索方法和装置 | |
CN116233420B (zh) | 一种基于vvc的帧内快速编码方法 | |
CN113612992B (zh) | 一种针对avs3硬件编码器的快速帧内编码单元的编码方法 | |
US9866844B2 (en) | Method, system and device for image and video coding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |