具有合并模式的译码方法、设备、系统与流程

文档序号:26013369发布日期:2021-07-23 21:34阅读:121来源:国知局
具有合并模式的译码方法、设备、系统与流程

本申请(发明)的实施例总体上涉及视频译码的领域,并且更具体地涉及合并模式的领域。



背景技术:

用于描绘甚至相对较短的视频所需的视频数据量也可能很大,这在以有限带宽容量跨通信网络流式传输或以其他方式传递数据时,可能会造成困难。因此,视频数据通常在经过现代电信网络通信之前被压缩。当视频存储在存储设备上时,视频的尺寸也可能是个问题,因为内存资源可能会收到限制。视频压缩设备通常在源处使用软件和/或硬件以在传输或存储之前对视频数据进行译码,从而减少了表示数字视频图像所需的数据量。然后,由视频解压缩设备在目的地侧接收经压缩的数据,该视频解压缩设备对视频数据进行解码。在网络资源受限和对更高视频质量的需求不断增长的情况下,需要在几乎不牺牲图像质量的情况下提高压缩率的改进型压缩和解压缩技术。高效视频译码是iso/iec运动图像专家组和itu-t视频译码专家组作为iso/iec23008-2mpeg-h第2部分或称为itu-th.265发布的最新视频压缩,它在相同视频质量水平下将数据压缩率提高了约一倍,或者在相同码率下显著提高视频质量。hevc开发并采用了几种译码工具,其中,一种是合并模式,它用于帧间预测,以从空间或时间候选块中估计当前预测块的适当运动矢量(mv)。具体地,hevc合并模式中的合并模式由2个部分组成:

第一部分:

合并列表构建,包括:

(1)插入空间候选的运动信息:通过按顺序检查a1、b1、b0、a0和b2来在合并列表中最多插入四个候选;

(2)从两个时间并置的块推导一个时间合并候选;

(3)附加的合并候选,包括合并的双预测候选;以及

(4)零运动矢量候选。

第二部分:

索引指示,选择合并列表中的一个条目作为当前块的运动信息,并向解码侧指示,以对应地推导当前预测块的mv。

在hevc中引入并行合并估计层级,该层级指示通过检查候选块是否位于该合并估计区域(mer)中可独立推导合并候选列表的区域。同一mer中的候选块不包括在合并候选列表中。因此,在列表构建时,不需要其运动数据。例如,当此级别为32时,由于没有将相同32×32mer中的所有合并候选插入列表中,因此32×32区域中的所有预测单元可并行地构建合并候选列表。如图6中所示,存在具有七个cu和十个pu的ctu划分。第一pu0的所有潜在合并候选都可用,因为它们在第一32×32mer之外。对于第二mer,当mer内部的合并估计应该独立时,pu2至6的合并候选列表不能包括来自这些pu的运动数据。因此,例如当查看pu5时,没有可用的合并候选并因此未插入合并候选列表中。在那种情况下,pu5的合并列表仅由时间候选(如果可用)和零mv候选组成。为了使编码器能够权衡并行性和译码效率,并行合并估计层级是自适应的,并在图像参数集中指示为log2_parallel_merge_level_minus2。

在hevc中使用四叉树(qt)分区,该分区总是产生满足以下条件之一(其中,n为4、8、16、32或64)的分区。译码块的所有样本都包含在n×n区域中。n×n区域的所有样本都包含在译码块中。然而,在最新的多功能视频译码开发中,并不总是满足合并模式所依赖的那些条件,因为使用了新的分区模式,例如,允许使用二叉树(bt)和三叉树(tt)分区,而不允许使用正方形分区,并且不再精确地检查候选块是否属于mer,并且译码性能下降,特别是并行处理合并估计将受到严重影响。选择了三种不同的情景以示出hevc中基于mer的合并估计如何影响vvc中合并估计的并行性。

情景1:

图7示出了基于vvc允许的分区模式的分区结果,如果blk1的左上样本(a)和blk2的左上样本(b)处于同一mer(n×n网格)中,则blk1的运动信息设置为不可用于blk2的预测,处理顺序为blk1→blk2。基于hevc中基于mer的估计,译码块a、b、c和d的四个预测依赖性为:

c可根据b进行预测。

d可根据c进行预测。

b可根据a进行预测。

c无法根据a进行预测。

然而,基于hevc,那些译码块对中的任何一个都不能以顺序a→b→c→d并行处理。

根据hevc规则,如果两个块的左上角坐标处于同一mer,则两个块被视为处于同一mer。块b可根据块a进行预测(因为它们处于不同mer中)。因此,块b需要等待块a可用,因此不能并行处理它们。块d可根据块c进行预测(因为它们处于不同mer中),因此无法并行处理它们。块c无法根据块a进行预测(因为它们处于同一mer),然而c和a仍不能并行处理,因为块c可根据块b进行预测,而块b可根据块a进行预测。因此,在情景1中,并行处理那些译码块是不可能的,这将花费更多的译码时间来为那些译码块中的每个进行合并估计。

情景2:

图8示出基于vvc中允许的分区模式的另一个分区结果,其中,仅译码块a和b可以顺序a→b→c→d→e→f并行处理。根据hevc规则,如果两个块的左上角坐标处于同一mer,则两个块被视为处于同一mer,因此,假设译码块c和e被并行处理。相比之下,在此情景2中,尽管译码块c和e处于同一mer,但是它们不能并行处理,因为译码块e可根据译码块d进行预测,而译码块d可根据译码块c进行预测,因此后面一个译码块等待,直到根据处理顺序的前一个mv可用为止。因此,在情景1中,那些译码块的并行处理受到限制,这仍然会花费更多的译码时间来进行那些译码块的合并估计。

情景3:

图9示出基于vvc中允许的分区模式的另一个分区结果,其中,没有一对译码块可被并行处理。基于hevc规则,译码块c无法根据译码块a进行预测,但译码块c和译码块a仍无法并行处理,因为译码块c可根据译码块b进行预测,而译码块b可根据译码块a进行预测。基于hevc规则,译码块d无法根据译码块b进行预测,但译码块b和译码块d仍无法并行处理,因为译码块c可根据译码块b进行预测,而译码块d可根据译码块b进行预测。因此,类似于情景1,在情景3中,不可能对那些译码块进行并行处理,这将花费更多的译码时间来为那些译码块中的每个进行合并估计。



技术实现要素:

本申请(或本发明)的实施例提供用于对图像进行编码和解码的帧间预测装置和方法,该装置和方法可减轻甚至消除上述问题。

本发明提供一种由编码/解码设备实现的用于标记潜在候选译码块的可用性的译码方法,该潜在候选译码块用于当前译码块的合并估计。该方法包括:基于潜在候选译码块和当前译码块内的两个相应点的接近度的预定义原理,来替代性地获得当前译码块的特定点的坐标(x,y),以及潜在候选译码块中特定点的坐标,其中,潜在候选译码块中特定点的坐标为(x1,y1),在floor(x1/mer_width)等于floor(x/mer_width)或floor(y1/height)等于floor(y/mer_height)的情况下,将潜在候选译码块标记为不可用,其中,mer_width和mer_height是合并估计区域(mer)的宽度和高度,并且该函数采用实数x作为输入并给出小于或等于x的最大整数作为输出。

具体地,该方法包括:获得该当前译码块的顶点的坐标(x,y)以及该潜在候选译码块中的特定点的坐标,其中,该潜在候选译码块中的该特定点的该坐标是(x+a,y+b),a∈(-1,0,1),b∈(-1,0,1),并且选择a和b取决于该潜在候选译码块与该当前译码块之间的相对位置的关系,并且对于一个潜在候选译码块,选择(-1,0,1)中的一个值作为a,并且选择(-1,0,1)中的一个值作为b;在floor((x+a)/mer_width)等于floor(x/mer_width)或floor((y+b)/mer_height)等于floor(y/mer_height)的情况下将该潜在候选译码块标记为不可用,其中,mer_width和mer_height是合并估计区域(mer)的宽度和高度,并且该函数采用实数x作为输入并给出小于或等于x的最大整数作为输出。

或者,本发明还提供一种由解码设备实现的用于标记潜在候选译码块的可用性的译码方法,该潜在候选译码块用于当前译码块的合并估计。该方法包括:获得该当前译码块的顶点的坐标(x,y)以及该潜在候选译码块中的特定点的坐标,其中,该潜在候选译码块中的该特定点的该坐标是该潜在候选译码块的右下顶点或该潜在候选译码块的左上顶点的坐标(x1,y1);在floor(x1/mer_width)等于floor(x/mer_width)或floor(y1/mer_height)等于floor(y/mer_height)的情况下将该潜在候选译码块标记为不可用,其中,mer_width和mer_height是合并估计区域(mer)的宽度和高度,并且该函数采用实数x作为输入并给出小于或等于x的最大整数作为输出。

或者,如果floor((x+a)/mer_width)等于floor(x/mer_width)并且floor((y+b)/mer_height)>=floor(y/mer_height)或floor((y+b)/mer_height)等于floor(y/mer_height)并且floor((x+a)/mer_width)>=floor(x/mer_width),则可扩展用于标记潜在候选译码块的不可用的条件。

或者,如果floor(x1/mer_width)等于floor(x/mer_width)并且floor(y1/mer_height)>=floor(y/mer_height)或floor(y1/mer_height)等于floor(y/mer_height)并且floor(x1/mer_width)>=floor(x/mer_width),则可扩展用于标记潜在候选译码块的不可用的条件。

或者,本发明还提供一种由编码/解码设备实现的用于标记潜在候选译码块的可用性的译码方法,该潜在候选译码块用于当前译码块的合并估计。该方法包括:获得当前译码块的顶点的坐标(x,y)以及潜在候选译码块中特定点的坐标,其中,潜在候选译码块中特定点的坐标是(x+a,y+b),a∈(-1,0,1),b∈(-1,0,1),并且选择a和b取决于潜在候选译码块与当前译码块之间的相对位置的关系,并且对于一个潜在候选译码块,选择(-1,0,1)中的一个值作为a,并且选择(-1,0,1)中的一个值作为b;当(x,y)和(x+a,y+b)位于一个合并估计区域(mer)中并且当前译码块的cqtdepth大于或等于阈值时,将潜在候选译码块标记为不可用,其中,cqtdepth是确定当前译码块所属的译码树块的四叉树分区深度的参数。或者,如果潜在候选译码块来自历史列表,则潜在候选译码块中特定点的坐标是潜在候选译码块的左上顶点或潜在候选译码块的右下顶点的坐标(x1,y1)。

本发明还提供一种用于执行上述方法的解码设备和编码设备。

通过上文提供的公开内容,可在合并估计期间并行处理更多译码块,因此提高了译码/解码技术尤其是vvc的性能。

为了清楚起见,在本发明的范围内,前述实施例中的任何一个可与其他前述实施例中的任何一个或多个组合以创建新的实施例。

通过结合附图和权利要求的以下详细描述,将更清楚地理解这些和其他特征。

附图说明

为了更完整地理解本发明,现在结合附图和详细描述参考以下简要描述,其中,相同附图标记表示相同部件。

图1a是示出可实现本发明的实施例的示例译码系统的框图。

图1b是示出可实现本发明的实施例的另一示例译码系统的框图。

图2是示出可实现本发明的实施例的示例视频编码器的框图。

图3是示出可实现本发明的实施例的视频解码器的示例的框图。

图4是网络设备的示意图。

图5是根据示例性实施例的可用作图1a的源设备12和目的地设备14中的任一个或两者的装置500的简化框图。

图6示出合并估计期间的基于mer的候选块可用性状态。

图7至图9是基于vvc中允许的分区模式得到的分区。

图10示出使用四叉树-二叉树(qtbt)结构的块划分的示例的图解。

图11示出对应于使用图10的qtbt结构的块划分的树结构的示例的图解。

图11a示出水平三叉树划分方式的示例的图解。

图11b示出垂直三叉树划分方式的示例的图解。

图12示出特殊域和时间域中的潜在合并估计译码块。

图13示出本发明的象限分区的示例的图解。

图14示出应用本发明的mer的块划分的示例的图解。

图15是示出根据本发明的对潜在合并估计译码块的可用性检查的工作流程。

图16示出应用图15的可用性检查的标记块划分的示例的图解。

图17是示出根据本发明的对潜在合并估计译码块的可用性检查的工作流程。

图18示出应用图17的可用性检查的标记块划分的示例的图解。

图19示出关于当前块及其空间相邻块的示例。

图20示出关于第六解决方案的示例。

图20a示出相邻块落入当前块周围的位置将被标记为不可用的示例。

图20b示出相邻块落入当前块周围的位置将被标记为不可用的另一示例。

图21示出进行合并估计以除去并行处理限制的示例。

图22示出确定相邻块的可用性的示例

图23示出解决方案12的流程图的示例。

图24示出解决方案12的流程图的示例。

图25示出解决方案14的流程图的示例。

图26示出解决方案16的流程图的示例。

图27示出解决方案15的流程图的示例。

图28示出mpmer的相邻块的示例。

图29示出一种解决方案的流程图的示例。

图30示出用于mpm列表构建的相邻的左侧块和上方块的示例。

图31示出mpm估计区域的示例。

图32示出本发明的象限分区的示例的图解。

图33示出应用本发明的共享列表区域的示例的图解。

具体实施方式

首先应当理解,尽管下文提供一个或多个实施例的说明性实现方式,但是所公开的系统和/或方法可使用任何数量的技术来实现,无论是当前已知的还是存在的。本发明绝不应该限于下文示出的示例性实现方式、附图和技术,包括本文中示出和描述的示例性设计和实现方式,而是可在所附权利要求的范围及其等同物的全部范围内进行修改。

图1a是示出可利用双向预测技术的示例译码系统10的框图。如图1a所示,译码系统10包括源设备12,该源设备12提供编码的视频数据以在稍后的时间由目的地设备14解码。具体地,源设备12可经由计算机可读介质16将视频数据提供给目的地设备14。源设备12和目的地设备14可包括多种设备中的任何一种,包括台式计算机、笔记本计算机(即,膝上型计算机)、平板计算机、机顶盒、电话听筒(例如所谓的“智能”电话、所谓的“智能”板、电视、相机、显示设备、数字介质播放器、视频游戏机、视频流设备等。在一些情况下,源设备12和目的地设备14可被配备用于无线通信。

目的地设备14可经由计算机可读介质16接收要解码的编码视频数据。计算机可读介质16可包括能够将编码的视频数据从源设备12移动到目的地设备14的任何类型的介质或设备。在一个示例中,计算机可读介质16可包括通信介质,以使源设备12能够将编码的视频数据直接实时地传输到目的地设备14。可根据例如无线通信协议等通信标准来对编码的视频数据进行调制,并且将其发送到目的地设备14。通信介质可包括任何无线或有线通信介质,例如射频(rf)频谱或一条或多条物理传输线。通信介质可形成例如局域网、广域网或例如因特网等全球网络的基于分组的网络的一部分。通信介质可包括路由器、交换机、基站或有助于从源设备12到目的地设备14的通信的任何其他设备。

在一些示例中,可将编码的数据从输出接口22输出到存储设备。类似地,可通过输入接口从存储设备访问编码数据。存储设备可包括多种分布式或本地访问的数据存储介质,例如硬盘驱动器、蓝光光盘、数字视频磁盘(dvd)、压缩光盘只读存储器(cd-rom)、闪存、易失性或非易失性存储器或用于存储编码视频数据的任何其他合适的数字存储介质。在另一示例中,存储设备可对应于文件服务器或可存储由源设备12生成的编码视频的另一中间存储设备。目的地设备14可经由流传输或下载访问来自存储设备的存储的视频数据。文件服务器可以是能够存储编码的视频数据并将编码的视频数据发送到目的地设备14的任何类型的服务器。示例文件服务器包括网络服务器(例如,用于网站)、文件传输协议(ftp)服务器、网络连接存储(nas)设备或本地磁盘驱动器。目的地设备14可通过包括互联网连接的任何标准数据连接访问编码的视频数据。这可能包括适合访问存储在文件服务器上的编码视频数据的无线信道(例如wi-fi连接)、有线连接(例如数字用户线(dsl)、电缆调制解调器等)或两者的组合。来自存储设备的编码视频数据的传输可以是流传输、下载传输或其组合。

本发明的技术不必限于无线应用或设置。该技术可应用于视频译码,以支持多种多介质应用中的任何一种,例如空中电视广播、有线电视传输、卫星电视传输、互联网流视频传输,例如基于http的动态自适应流传输(dash)、编码到数据存储介质上的数字视频、对存储在数据存储介质上的数字视频进行解码或其他应用。在一些示例中,译码系统10可被配置为支持单向或双向视频传输,以支持例如视频流、视频回放、视频广播和/或视频电话等应用。

在图1a的示例中,源设备12包括视频源18、视频编码器20和输出接口22。目的地设备14包括输入接口28、视频解码器30和显示设备32。根据本发明,源设备12的视频编码器200和/或目的设备14的视频解码器300可被配置为应用用于双向预测的技术。在其他示例中,源设备和目的地设备可包括其他部件或布置。例如,源设备12可从例如外部相机等外部视频源接收视频数据。同样,目的地设备14可与外部显示设备接口,而不是包括集成显示设备。

图1a所示的译码系统10仅仅是一个示例。双向预测的技术可由任何数字视频编码和/或解码设备执行。尽管本发明的技术通常由视频译码设备执行,但是这些技术也可由通常称为“codec”的视频编码器/解码器执行。此外,本发明的技术还可由视频预处理器执行。视频编码器和/或解码器可以是图形处理单元(gpu)或类似设备。

源设备12和目的地设备14仅仅是此类译码设备的示例,其中,源设备12生成译码视频数据以传输到目的地设备14。在一些示例中,源设备12和目的地设备14可以基本对称的方式操作,使得源设备和目的地设备12、14中的每个包括视频编码和解码部件。因此,译码系统10可支持视频设备12、14之间的单向或双向视频传输,例如用于视频流、视频回放、视频广播或视频电话。

源设备12的视频源18可包括视频捕获设备(例如相机)、包含先前捕获的视频的视频档案和/或视频馈送接口,以从视频内容提供商接收视频。作为另一替代方案,视频源18可生成基于计算机图形的数据作为源视频,或者是实时视频、存档视频和计算机生成的视频的组合。

在一些情况下,当视频源18是相机时,源设备12和目的地设备14可形成所谓的相机电话或视频电话。然而,如上所述,本发明中描述的技术通常可适用于视频译码,并且可适用于无线和/或有线应用。在每种情况下,捕获的、预捕获的或计算机生成的视频可由视频编码器20编码。然后可通过输出接口22将编码的视频信息输出到计算机可读介质16上。

计算机可读介质16可包括瞬态介质(例如无线广播或有线网络传输)或存储介质(即,非瞬态存储介质),例如硬盘、闪存驱动器、光盘、数字视频盘、蓝光光盘或其他计算机可读介质。在一些示例中,网络服务器(未示出)可例如经由网络传输从源设备12接收编码的视频数据并将编码的视频数据提供给目的地设备14。类似地,例如盘冲压设备等介质生产设施的计算设备可从源设备12接收编码的视频数据,并产生包含编码的视频数据的盘。因此,在各种示例中,计算机可读介质16可被理解为包括各种形式的一种或多种计算机可读介质。

目的地设备14的输入接口28从计算机可读介质16接收信息。计算机可读介质16的信息可包括由视频编码器20定义的语法信息,该信息也由视频解码器30使用,该语法信息包括描述块和其他译码帧间译码单元(例如,图像组(gop))的特征和/或处理的语法元素。显示设备32将解码的视频数据显示给用户,并可包括多种显示设备中的任何一种,例如阴极射线管(crt)、液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或其他类型的显示设备。

视频编码器200和视频解码器300可根据例如当前正在开发的高效视频译码(hevc)标准等视频译码标准来操作,并可符合hevc测试模型(hm)。或者,视频编码器200和视频解码器300可根据其他专有或行业标准进行操作,例如国际电信联盟电信标准化部门(itu-t)h.264标准,或者称为运动图像专家组(mpeg)4第10部分、高级视频译码(avc)h.265/hevc或此类标准的扩展。然而,本发明的技术不限于任何特定的译码标准。视频译码标准的其他示例包括mpeg-2和itu-th.263。尽管图1a未示出,但在一些方面中,视频编码器200和视频解码器300可分别与音频编码器和解码器集成在一起,并且可包括适当的多路复用器-多路分解器(mux-demux)单元或其他硬件和软件,以用于处理公共数据流或单独数据流中音频和视频的编码。如果适用,则mux-demux单元可符合ituh.223多路复用器协议或其他协议,例如用户数据报协议(udp)。

视频编码器200和视频解码器300都可实现为各种合适的编码器电路中的任何一种,例如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、软件、硬件、固件或其任何组合。当技术部分地以软件实现时,设备可将用于软件的指令存储在合适的非瞬时性计算机可读介质中,并使用一个或多个处理器以硬件方式执行指令以执行本发明的技术。视频编码器200和视频解码器300中的每个可被包括在一个或多个编码器或解码器中,它们中的任一个可被集成为相应设备中的组合编码器/解码器(codec)的一部分。包括视频编码器200和/或视频解码器300的设备可包括集成电路、微处理器和/或无线通信设备,例如蜂窝电话。

图1b是根据示例性实施例的包括图2的编码器200和/或图3的解码器300的示例视频译码系统40的说明性示图。系统40可实现本申请的技术,例如,帧间预测中的合并估计。在所示出的实现方式中,视频译码系统40可包括成像设备41、视频编码器20、视频解码器300(和/或经由处理单元46的逻辑电路47实现的视频译码器)、天线42、一个或多个处理器43、一个或多个存储器44、和/或显示设备45。

如图所示、成像设备41、天线42、处理单元46、逻辑电路47、视频编码器20、视频解码器30、处理器43、存储器44和/或显示设备45可能能够相互通信。如所讨论,尽管示出视频编码器200和视频解码器30,但是在各种实际情况下,视频译码系统40可仅包括视频编码器200或仅包括视频解码器300。

如图所示,在一些示例中,视频译码系统40可包括天线42。天线42可被配置为例如发送或接收视频数据的编码码流。此外,在一些示例中,视频译码系统40可包括显示设备45。显示设备45可被配置为呈现视频数据。如图所示,在一些示例中,逻辑电路54可经由处理单元46实现。处理单元46可包括专用集成电路(asic)逻辑、图形处理器、通用处理器等。视频译码系统40还可包括可选的处理器43,该处理器43可类似地包括专用集成电路(asic)逻辑、图形处理器、通用处理器等。在一些示例中,逻辑电路54可经由硬件、视频译码专用硬件等实现,并且处理器43可实现通用软件、操作系统等。另外,存储器存储器44可以是任何类型的存储器,例如易失性存储器(例如,静态随机访问存储器(sram)、动态随机访问存储器(dram)等)或非易失性存储器(例如,闪存)、存储器等)等。在非限制性示例中,一个或多个存储器存储装置44可由高速缓冲存储器实现。在一些示例中,逻辑电路54可访问存储器存储44(例如,用于实现图像缓冲区)。在其他示例中,逻辑电路47和/或一个或多个处理单元46可包括用于实现图像缓冲区等的存储器(例如,高速缓存等)。

在一些示例中,经由逻辑电路实现的视频编码器200可包括图像缓冲区(例如,经由处理单元46或存储器存储44)和图形处理单元(例如,经由处理单元46)。图形处理单元可通信耦合至图像缓冲区。图形处理单元可包括经由逻辑电路47实现的视频编码器200,以体现如关于图2讨论的各种模块和/或本文描述的任何其他编码器系统或子系统。逻辑电路可被配置为执行本文所讨论的各种操作。

视频解码器300可与经由逻辑电路47实现的方式相似的方式实现,以体现如关于图3的解码器300和/或本文描述的任何其他解码器系统或子系统所讨论的各种模块。在一些示例中,可经由逻辑电路实现的视频解码器300可包括图像缓冲区(例如,经由处理单元46或存储器存储44)和图形处理单元(例如,经由处理单元46)。图形处理单元可通信耦合至图像缓冲区。图形处理单元可包括经由逻辑电路47实现的视频解码器300,以体现如关于图3讨论的各种模块和/或本文描述的任何其他解码器系统或子系统。

在一些示例中,视频译码系统40的天线42可被配置为接收视频数据的经编码的码流。如所讨论,编码码流可包括与如本文所讨论的对视频帧进行编码相关联的数据、指示符、索引值、模式选择数据等,例如与译码分区相关联的数据(例如,变换系数或量化的变换系数、可选指示符(如所讨论)和/或定义译码分区的数据)。视频译码系统40还可包括耦合至天线42并被配置为对编码的码流进行解码的视频解码器300。显示设备45被配置为呈现视频帧。

图2是示出可实现本发明的技术的视频编码器200的示例的框图。视频编码器200可执行视频条带内的视频块的帧内和帧间译码。帧内译码依赖于空间预测来减少或消除给定视频帧或图像内视频中的空间冗余。帧间译码依赖于时间预测来减少或消除视频序列的相邻帧或图像内视频中的时间冗余。帧内模式(i模式)可指若干种基于空间的译码中的任一种。例如单向预测(p模式)或双向预测(b模式)等帧间模式可指若干种基于时间的译码中的任一种。

图2示出被配置为实现本发明的技术的示例视频编码器200的示意性/概念性框图。在图2的示例中,视频编码器200包括残差计算单元204、变换处理单元206、量化单元208、反量化单元210和逆变换处理单元212、重建单元214、缓冲区216、环路滤波器单元220、解码图像缓冲区(dpb)230、预测处理单元260和熵编码单元270。预测处理单元260可包括帧间估计242、帧间预测单元244、帧内估计252,帧内预测单元254和模式选择单元262。帧间预测单元244可还包括运动补偿单元(未示出)。根据混合视频译码器,如图2所示的视频编码器200也可称为混合视频编码器或视频编码器。

例如,残差计算单元204、变换处理单元206、量化单元208、预测处理单元260和熵编码单元270形成编码器200的前向信号路径,而例如,反量化单元210、逆变换处理单元212、重建单元214、缓冲区216、环路滤波器220、解码图像缓冲区(dpb)230、预测处理单元260形成编码器的后向信号路径,其中,后向信号路径编码器的“信号路径”对应于解码器的信号路径(见图3中的解码器300)。

编码器200被配置为例如通过输入202接收图像201或图像201的块203,例如组成视频或视频序列的图像序列的图像。图像块203也可称为当前图像块或要译码的图像块,并且图像201也可称为当前图像或要译码的图像(特别是在视频译码中,用于将当前图像与其他图像(例如相同视频序列(即,也包括当前图像的视频序列)的先前编码和/或解码的图像)区分开)。

划分

编码器200的实施例可包括被配置为将图像201分成多个块(例如,块203)的划分单元(图2未描绘),通常分成多个不重叠的块。划分单元可被配置为对视频序列的所有图像和定义该块尺寸的相应网格使用同一块尺寸,或者改变图像或图像的子集或图像组之间的块尺寸,并将每个图像分成对应的块。

在hevc和其他视频译码规范中,为了生成图像的编码表示,可生成译码树单元(ctu)集合。每个ctu可包括亮度样本的译码树块、色度样本的两个对应的译码树块以及用于对译码树块的样本进行译码的语法结构。在单色图像或具有三个单独的色彩平面的图像中,ctu可包括单个译码树块和用于对译码树块的样本进行译码的语法结构。译码树块可以是样本的n×n块。ctu也可称为“树块”或“最大帧间译码单元”(lcu)。hevc的ctu可能大致类似于其他标准的宏块,例如h.264/avc。然而,ctu不必限于特定尺寸,并且可包括一个或多个帧间译码单元(cu)。条带可包括以光栅扫描顺序连续排序的整数个ctu。

在hevc中,通过使用表示为译码树的四叉树结构来将ctu分割成cu,以适应各种本地特性。在cu级别上决定是否使用图像间(时间)或图像内(空间)预测来对图像区域进行译码。cu可包括具有亮度样本阵列、cb样本阵列和cr样本阵列的图像的亮度样本的译码块和色度样本的两个对应译码块,以及用于对译码块的样本进行译码的语法结构。在单色图像或具有三个单独色彩平面的图像中,cu可包括单个译码块和用于对译码块的样本进行译码的语法结构。译码块是样本的n×n块。在一些示例中,cu可与ctu的尺寸相同。每个cu以一种译码模式,该译码模式可以是例如帧内译码或帧间译码。其他译码也是可能的。编码器200接收视频数据。编码器200可在视频数据的图像的条带中对每个ctu进行编码。作为对ctu进行编码的一部分,编码器200的预测处理单元260或另一个处理单元(包括但不限于图2所示的编码器200的单元)可执行划分,以将ctu的ctb分成逐个较小的块203。较小的块可以是cu的译码块。

码流中的语法数据也可定义ctu的尺寸。按译码顺序,条带包括多个连续的ctu。视频帧或图像或图像可分成一个或多个条带。如上所述,每个树块可根据四叉树分割成帧间译码单元(cu)。通常,四叉树数据结构包括每个cu一个节点,并且根节点对应于树块(例如,ctu)。如果cu被分割成四个子cu,则对应于该cu的节点包括四个子节点,每个子节点对应于一个子cu。四叉树结构中的多个节点包括叶节点和非叶节点。叶节点在树结构中没有子节点(即,叶节点不再进一步分割)。非叶节点包括树结构的根节点。对于多个节点中的每个相应非根节点,相应非根节点对应于与相应非根节点的树结构中的父节点相对应的cu的子cu。每个相应非叶节点在树结构中具有一个或多个子节点。

四叉树数据结构的每个节点可提供用于对应cu的语法数据。例如,四叉树中的节点可包括分割标志,其该分割标志指示对应于节点的cu是否分割成子cu。cu的语法元素可递归地定义,并且可取决于cu是否分割成子cu。如果未进一步分割cu,则该cu称为叶cu。如果cu的块被进一步分割,则该cu通常可称为非叶cu。如图2所示,每个划分级别都是分割成四个子cu的四叉树。黑色cu是叶节点(即,未进一步分割的块)的示例。

cu具有与h.264标准的宏块相似的目的,不同之处在于cu没有尺寸区分。例如,树块可被分割成四个子节点(也称为子cu),并且每个子节点可依次是父节点并且被分割成另外四个子节点。称为四叉树的叶节点的最终未分割子节点包括也称为叶cu的译码节点。与译码的码流相关联的语法数据可定义树块可被分割的最大次数(称为最大cu深度),并且还可定义译码节点的最小尺寸。因此,码流还可定义最小帧间译码单元(scu)。术语“块”用于在hevc的上下文中指代cu、pu或tu中的任一个,或在其他标准的上下文中指代类似的数据结构(例如,h.264/avc)。

在hevc中,每个cu可根据pu分割类型进一步分割成一个、两个或四个pu。在一个pu内部,将应用相同的预测过程,并将相关信息以pu为基础传输到解码器。在通过应用基于pu分割类型的预测过程而获得残差块之后,可根据类似于用于cu的译码树的另一四叉树结构将cu分成变换单元(tu)。hevc结构的关键特征之一是它具有多个分区概念,包括cu、pu和tu。pu可分成非正方形形状。与cu相关联的语法数据还可描述例如将cu分成一个或多个pu。tu的形状可以是正方形或非正方形(例如矩形),与cu相关联的语法数据可描述例如根据四叉树来将cu分成一个或多个tu。在cu是跳过模式还是直接模式编码、帧内预测模式编码或帧间预测模式编码之间,分区模式可不同。

vvc(通用视频译码)消除了pu与tu概念的分离,并为cu分区形状提供更大的灵活性。cu的尺寸对应于译码节点的尺寸,并且形状可以是正方形或非正方形(例如,矩形)。cu的尺寸范围可介于4×4像素(或8×8像素)直至最大128×128像素或更大(例如256×256像素)的树块的尺寸。

在编码器200生成用于cu的预测块(例如,亮度、cb和cr预测块)之后,编码器200可生成用于cu的残差块。例如,编码器100可产生用于cu的亮度残差块。cu的亮度残差块中的每个样本指示cu的预测亮度块中的亮度样本与cu的原始亮度译码块中的对应样本之间的差。另外,编码器200可产生用于cu的cb残差块。cu的cb残差块中的每个样本可指示cu的预测cb块中的cb样本与cu的原始cb译码块中的对应样本之间的差。编码器100还可为cu产生cr残差块。cu的cr残差块中的每个样本可指示cu的预测cr块中的cr样本与cu的原始cr译码块中的对应样本之间的差。

在一些示例中,编码器100跳过将变换应用于变换块。在此类示例中,编码器200可以与变换系数相同的方式处理残差样本值。因此,在编码器100跳过应用变换的示例中,对变换系数和系数块的以下讨论可适用于残差样本的变换块。

在产生系数块(例如,亮度系数块、cb系数块或cr系数块)之后,编码器200可量化系数块以可能减少用于表示系数块的数据量,从而潜在地提供进一步的压缩。量化通常是指将一系列值压缩为单个值的过程。在编码器200量化系数块之后,编码器200可熵编码指示量化的变换系数的语法元素。例如,编码器200可对指示量化的变换系数的语法元素执行上下文自适应二进制算术译码(cabac)或其他熵译码技术。

编码器200可输出编码图像数据271的码流,该码流包括形成译码的图像和相关联的数据的表示的位序列。因此,码流包括视频数据的编码表示。

在j.an等人的“下一代视频译码的块划分结构”中,国际电信联盟,com16-c966,2015年9月(以下称为”vceg提案com16-c966”),四叉树-二叉树(qtbt))提出了针对hevc以外的未来视频译码标准的分区技术。仿真表明,在使用的hevc中,所提议的qtbt结构比四叉树结构更高效。在hevc中,限制用于小块的帧间预测以减少运动补偿的存储器访问,使得对于4×8和8×4块不支持双向预测,并且对于4×4块不支持帧间预测。在jem的qtbt中,这些限制已删除。

在qtbt中,cu可具有正方形或矩形形状。如图10所示,首先通过四叉树结构划分译码树单元(ctu)。可通过二叉树结构进一步划分四叉树叶节点。在二叉树分割中,存在两种分割类型:对称水平分割和对称垂直分割。在每种情况下,通过在水平或垂直方向上划分节点来分割节点。二叉树叶节点称为帧间译码单元(cu),该分段用于预测和变换处理,而无需任何进一步的划分。这意味着cu、pu和tu在qtbt译码块结构中具有相同块尺寸。cu有时由不同颜色分量的译码块(cb)组成,例如对于4:2:0色度格式的p和b条带,一个cu包含一个亮度cb和两个色度cb,有时包含单个分量的cb,例如,一个cu仅包含一个亮度cb或仅包含两个i条带时的色度cb。

为qtbt划分方案定义了以下参数。

–ctu尺寸:四叉树的根节点尺寸,与hevc中的概念相同

–minqtsize:所允许的最小四叉树叶节点尺寸

–maxbtsize:所允许的最大二叉树根节点尺寸

–maxbtdepth:所允许的最大二叉树深度

–minbtsize:所允许的最小二叉树叶节点尺寸

在qtbt划分结构的一个示例中,ctu尺寸设置为128×128亮度样本,并具有两个对应的64×64色度样本块,minqtsize设置为16×16,maxbtsize设置为64×64,minbtsize(对于宽度和高度)都设置为4×4,而maxbtdepth设置为4。首先将四叉树划分应用于ctu,以生成四叉树叶节点。四叉树叶节点的尺寸可介于16×16(即,minqtsize)至128×128(即,ctu尺寸)。当四叉树节点的尺寸等于minqtsize时,将不考虑其他四叉树。如果四叉树叶节点为128×128,则由于尺寸超过maxbtsize(即,64×64),因此不会被二叉树进一步分割。否则,四叉树叶节点可由二叉树进一步划分。因此,四叉树叶节点也是二叉树的根节点,其二叉树深度为0。当二叉树深度达到maxbtdepth(即,4)时,不考虑进一步的分割。当二叉树节点的宽度等于minbtsize(即,4)时,不考虑进一步的水平分割。类似地,当二叉树节点的高度等于minbtsize时,不考虑进一步的垂直分割。通过预测和变换处理进一步处理二叉树的叶节点,而无需任何进一步的划分。在jem中,最大ctu尺寸为256×256亮度样本。可在不进行任何进一步划分的情况下进一步处理(例如,通过执行预测过程和变换过程)二叉树(cu)的叶节点。

图10示出使用qtbt划分技术划分的块30(例如,ctb)的示例。如图10所示,使用qtbt划分技术,通过每个块的中心对称分割每个块。图11示出对应于图11的块划分的树结构。图11中的实线表示四叉树分割,而虚线表示二叉树分割。在一个示例中,在二叉树的每个分割(即,非叶)节点中,指示语法元素(例如,标志)以表示所执行的分割的类型(例如,水平或垂直),其中,0指示水平分割,而1表示垂直分割。对于四叉树分割,无需指示分割类型,因为四叉树分割始终将一个块水平和垂直地分割成尺寸相等的4个子块。

如图11所示,在节点50处,使用qt划分来将块30分割成图10所示的四个块31、32、33和34。块4未进一步分割,并因此是叶节点。在节点52,使用bt划分来将块31进一步分割成两个块。如图4所示,节点52被标记为1,从而指示垂直分割。如此,节点52处的分割产生块37并使其包括块35和36。块35和36是通过在节点54处进行进一步的垂直分割而创建的。在节点56处,使用bt划分来将块32进一步分割成两个块38和39。

在节点58处,使用qt划分将块33分割成4个相等尺寸的块。块43和44是从此qt划分创建的,并不进一步分割。在节点60处,首先使用垂直二叉树分割来分割左上块,从而得到块40和右垂直块。然后使用水平二叉树分割将右侧垂直块分割成块41和42。从节点58处的四叉树分割创建的右下块使用水平二叉树分割成节点45和46在节点62处分割。如图11所示,节点62被标记为0,从而指示垂直分割。

另外,qtbt方案支持亮度和色度具有单独的qtbt结构的能力。当前,对于p和b条带,一个ctu中的亮度和色度ctb可能共享相同qtbt结构。然而,对于i条带,亮度ctb通过qtbt结构分成cu,并且色度ctb可通过另一qtbt结构分成色度cu。这意味着,i条带中的cu由亮度分量的译码块或两个色度分量的译码块组成,而p或b条带中的cu由所有三种颜色分量的译码块组成。

编码器200对qtbt结构应用速率失真优化(rdo)处理以确定块划分。

另外,在美国专利申请公开号20170208336中提议一种称为多类型树(mtt)的块划分结构,以代替基于qt、bt和/或qtbt的cu结构。mtt划分结构仍然是递归树结构。在mtt中,使用多个(例如,三个或更多个)不同的分区结构。例如,根据mtt技术,可在树结构的每个深度处将三个或更多个不同的分区结构用于树结构的每个相应的非叶节点。树结构中的节点的深度可以指从节点到树结构的根的路径的长度(例如,分割数)。分区结构通常可指一个块可分成多少个不同的块。分区结构可以是:四叉树分区结构,可将一个块分成四个块;二叉树划分结构,可将一个块分成两个块;三叉树划分结构,可将一个块分成三个块;此外,三叉树划分结构可不通过中心划分块。分区结构可具有多种不同的划分方式。划分方式可另外定义如何划分块,包括对称或非对称分区、均匀或不均匀分区和/或水平或垂直分区。

在mtt中,在树结构的每个深度下,编码器200可被配置为使用三个或更多个划分结构之一中的特定划分方式来进一步分割子树。例如,编码器100可被配置为根据qt、bt、三叉树(tt)和其他划分结构来确定特定划分方式。在一个示例中,qt划分结构可包括正方形四叉树或矩形四叉树划分类型。通过将正方形块在水平和垂直方向上沿中心向下分成四个相等尺寸的正方形块,编码器200可使用正方形四叉树划分来划分正方形块。同样,通过将矩形块在水平和垂直方向上沿中心向下分成四个相等尺寸的矩形块,编码器200可使用矩形四叉树划分来划分矩形(例如,非正方形)块。

bt划分结构可包括水平对称二叉树、垂直对称二叉树、水平非对称二叉树或垂直非对称二叉树划分方式中的至少一种。对于水平对称二叉树划分方式,编码器200可被配置为将一个块沿该块的中心向下水平地分割成相同尺寸的两个对称块。对于垂直对称二叉树划分方式,编码器200可被配置为将一个块沿该块的中心向下垂直地分割成相同尺寸的两个对称块。对于水平非对称二叉树划分方式,编码器100可被配置为将一个块水平地分割成两个尺寸不同的块。例如,类似于part_2n×nu或part_2n×nd划分方式,一个块的尺寸可以是父块的1/4,而另一个块的尺寸可以是父块的3/4。对于垂直非对称二叉树划分方式,编码器100可被配置为将一个块垂直地分割成两个尺寸不同的块。例如,类似于part_nl×2n或part_nr×2n划分方式,一个块的尺寸可能是父块的1/4,另一个块的尺寸是父块的3/4。在其他示例中,非对称二叉树划分方式可将父块分成不同的尺寸部分。例如,一个子块可以是父块的3/8,而另一个子块可以是父块的5/8。当然,这种划分方式可以是垂直的也可以是水平的。

tt分区结构与qt或bt结构的区别在于tt分区结构不会在中心向下分割块。块的中心区域在同一子块中保持在一起。与产生四个块的qt或产生两个块的二叉树不同,根据tt分区结构分割产生三个块。根据tt分区结构的示例划分方式包括对称划分方式(水平和垂直)以及非对称划分方式(水平和垂直)。此外,根据tt分隔结构的对称划分方式可以是不均匀/不均一或均匀/均一的。根据tt分隔结构的非对称划分方式是不均匀/不均一的。在一个示例中,tt分区结构可包括以下划分方式中的至少一种:水平均匀/均一对称三叉树、垂直均匀/均一对称三叉树、水平不均匀/不均一对称三叉树、垂直不均匀/不均一对称三叉树、水平不均匀/不均一非对称三叉树或垂直不均匀/不均一非对称三叉树划分方式。

通常,不均匀/不均一对称三叉树划分方式是相对于块的中心线对称的划分方式,但是所得三个块中的至少一个与其他两个块的尺寸不同。一个优选的示例是,侧块为块的尺寸的1/4,而中心块为块的尺寸的1/2。均匀/均一对称三叉树划分方式是相对于块的中心线对称的划分方式,并且所得块的尺寸都相同。如果块的高度或宽度(取决于垂直或水平分割)为3的倍数,则可进行这种分区。不均匀/不均一的非对称三叉树划分方式是相对于块的中心线非对称的划分方式,并且其中,所得至少一个块与其他两个块的尺寸不同。

图11a是示出示例水平三叉树划分方式的概念图。图11b是示出示例垂直三叉树划分方式的概念图。在图11a和图11b中,h表示亮度或色度样本中的块的高度,而w表示亮度或色度样本中的块的宽度。注意,块的相应中心线不代表块的边界(即,三叉树划分不通过中心线吐出块)。实际上,中心线用于描述特定划分方式相对于原始块的中心线是对称还是非对称。中心线也沿着分割方向。

如图11a所示,块71以水平均匀/均一对称划分方式划分。水平均匀/均一对称划分方式相对于块71的中心线产生对称的上半部分和下半部分。水平均匀/均一对称划分方式产生三个尺寸相等的子块,每个子块的高度为h/3,宽度为w。当块71的高度可被3整除时,可使用水平均匀/均一对称划分方式。

块73以水平不均匀/不均一对称划分方式划分。水平不均匀/不均一对称划分方式相对于块73的中心线产生对称的上半部分和下半部分。水平不均匀/不均一对称划分方式生成两个尺寸相等的块(例如,高度为h/4的顶部和底块)和尺寸不同的中心块(例如,高度为h/2的中心块)。在一个示例中,根据水平不均匀/不均一对称划分方式,中心块的面积等于顶块和底块的组合面积。在一些示例中,对于具有2的幂(例如,2、4、8、16、32等)的高度的块,水平不均匀/不均一对称划分方式可能是优选的。

块75以水平不均匀/不均一的非对称划分方式划分。水平不均匀/不均一非对称划分方式相对于块75的中心线不会产生对称的上半部分和下半部分(即,上半部分和下半部分是非对称的)。在图7的示例中,水平不均匀/不均一非对称划分方式生成高度为h/4的顶块、高度为3h/8的中心块和高度为3h/8的底块。当然,可使用其他非对称布置。

如图11b所示,块81以垂直均匀/均一对称划分方式划分。垂直均匀/均一对称划分方式相对于块81的中心线产生对称的左右两半。垂直均匀/均一对称划分方式产生三个尺寸相等的子块,每个子块的宽度为w/3,高度为h。当块81的宽度可被3整除时,垂直均匀/均一对称划分方式是可能的。

块83以垂直不均匀/不均一的对称划分方式划分。垂直不均匀/不均一对称划分方式相对于块83的中心线产生对称的左右两半。垂直不均匀/不均一对称划分方式相对于83的中心线产生左右对称的一半。垂直不均匀/不均一对称划分方式将产生两个尺寸相等的块(例如,宽度为w/4的左右块)和尺寸不同的中心块(例如,宽度为w/2的中心块)。在一个示例中,根据垂直不均匀/不均一对称划分方式,中心块的面积等于左块和右块的组合面积。在一些示例中,对于具有2的幂(例如,2、4、8、16、32等)的宽度的块,垂直不均匀/不均一对称划分方式可能是优选的。

块85以成垂直不均匀/不均一的非对称划分方式划分。垂直不均匀/不均一的非对称划分方式相对于块85的中心线不产生左右对称的一半(即,左右两半是非对称的)。在图8的示例中,垂直不均匀/不均一非对称划分方式产生宽度为w/4的左块、宽度为3w/8的中心块和宽度为3w/8的底块。当然,可使用其他非对称布置。

在将块(例如,在子树节点处)分割成非对称三叉树划分方式的示例中,编码器200和/或解码器300可施加限制,使得三个分区中的两个具有相同的尺寸。这种限制可对应于编码器200在对视频数据进行编码时必须遵守的限制。此外,在一些示例中,编码器200和解码器300可施加限制,从而当根据非对称三叉树划分方式分割时,两个分区的面积之和等于剩余分区的面积。在一些示例中,编码器200可被配置为针对qt、bt和tt分区结构中的每个从所有前述划分方式中进行选择。在其他示例中,编码器200可被配置为仅从上述划分方式的子集中确定划分方式。例如,上面讨论的划分方式(或其他划分方式)的子集可用于某些块尺寸或用于四叉树结构的某些深度。所支持的划分方式的子集可在码流中指示以供解码器200使用,或者可被预定义,以使编码器200和解码器300可确定这些子集而无需任何指示。

在其他示例中,可为所有ctu中的所有深度固定支持的划分方式的数量。即,编码器200和解码器300可被预先配置为针对ctu的任何深度使用相同数量的划分方式。在其他示例中,所支持的划分方式的数量可变化,并且可取决于深度、条带类型或其他先前译码的信息。在一个示例中,在树结构的深度0或深度1处,仅使用qt分区结构。在大于1的深度处,可使用qt、bt和tt分区结构中的一个。

在一些示例中,编码器200和/或解码器300可在所支持的划分方式上应用预配置的约束,以便避免针对视频图像的特定区域或ctu的区域的重复分区。在一个示例中,当用非对称划分方式分割块时,编码器200和/或解码器300可被配置为不进一步分割从当前块划分的最大子块。例如,当根据非对称划分方式(类似于part_2n×nu划分方式)分割正方形块时,所有子块中最大的子块(类似于part_2n×nu的最大子块)划分方式)是该叶节点,并无法进一步分割。然而,可进一步分割较小的子块(类似于part_2n×nu划分方式的较小的子块)。

作为可应用对所支持的划分方式的约束来避免针对特定区域的重复分区的另一示例,当以非对称划分方式分割块时,不能在相同方向上进一步分割当前块中分割出的最大子块。例如,当正方形块分割成非对称划分方式(类似于part_2n×nu划分方式)时,编码器200和/或解码器300可被配置为不在所有子块中分割大子块(类似于part_2n×nu划分方式的最大子块)。

作为可应用对所支持的划分方式的约束以避免进一步分割困难的另一示例,编码器200和/或解码器300可被配置为当块的宽度/高度不为2的幂(例如,当宽度高度不是2、4、8、16等时)不水平或垂直分割块。

以上示例描述如何将编码器200配置为执行mtt划分。解码器300然后还可应用与编码器200所执行相同的mtt划分。在一些示例中,可通过在解码器300处应用相同的预定义规则集合来确定视频数据的图像如何由编码器200划分。然而,在许多情况下,编码器200可基于用于正译码的视频数据的特定图像的速率失真标准来确定要使用的特定分区结构和划分方式。如此,为了使解码器300确定针对特定图像的划分,编码器200可在编码码流中指示语法元素,该语法元素指示如何划分图像以及图像的ctu。解码器200可解析此类语法元素,并相应地划分图像和ctu。

在一个示例中,视频编码器200的预测处理单元260可被配置为执行上述划分技术的任意组合,尤其是对于运动估计,并且稍后将描述细节。

与图像201相似,块203还是可被视为具有强度值(样本值)的样本的二维数组或矩阵,尽管其维数小于图像201。换句话说,块203可包括例如一个样本阵列(例如,在单色图像201的情况下的亮度阵列)或三个样本阵列(例如,在彩色图像201的情况下的亮度和两个色度阵列)或任何其他数量和/或种类的阵列,这具体取决于所应用的颜色格式。块203的水平和垂直方向(或轴)上的样本数量定义了块203的尺寸。

如图2所示的编码器200被配置为对图像201进行逐块编码,例如,块203执行编码和预测。

残差计算

残差计算单元204被配置为基于图像块203和预测块265(稍后提供关于预测块265的更多细节)来计算残差块205,例如通过逐样本(逐像素)从图像块203的样本值减去预测块265的样本值以获得样本域中的残差块205。

变换

变换处理单元206被配置为在残差块205的样本值上应用变换,例如离散余弦变换(dct)或离散正弦变换(dst),以获得变换域中的变换系数207。变换系数207也可称为变换残差系数,并表示变换域中的残差块205。

变换处理单元206可被配置为应用dct/dst的整数近似,例如为hevc/h.265指定的变换。与正交dct变换相比,此类整数近似通常按一定因子缩放。为了保留由正向和逆向变换处理的残差块的范数,将附加的缩放因子用作变换过程的一部分。通常基于某些约束条件来选择缩放因子,例如缩放因子是移位运算的2的幂、变换系数的位深度、精度与实现成本之间的折衷等。具体缩放因子例如是为逆变换指定的,例如由逆变换处理单元212在解码器300处指定(并且是为对应逆变换指定的,例如由逆变换处理单元212在编码器20处指定),并且可相应地指定由变换处理单元206在编码器200处指定进行的正向变换的对应缩放因子。

量化

量化单元208被配置为对变换系数207进行量化以获得量化的变换系数209,例如通过应用标量量化或矢量量化。量化的变换系数209也可称为量化残差系数209。量化过程可减小与一些或所有变换系数207相关联的位深度。例如,在量化过程中,n位变换系数可舍入为m位变换系数,其中,n大于m。可通过调整量化参数(qp)来修改量化程度。例如,对于标量量化,可应用不同的标度以实现更精细或更粗糙的量化。较小的量化步长对应于更精细的量化,而较大的量化步长对应于更粗糙的量化。适用的量化步长可由量化参数(qp)指示。量化参数可例如是可应用的量化步长的预定义集合的索引。例如,小量化参数可对应于精细量化(小量化步长),并且大量化参数可对应于粗糙的量化(大量化步长),反之亦然。量化可包括除以量化步长,并且例如由反量化210进行的对应的去量化或反量化可包括乘以量化步长。根据一些标准(例如hevc)的实施例可被配置为使用量化参数来确定量化步长。通常,可使用包括除法的等式的定点近似基于量化参数来计算量化步长。可引入附加的缩放因子以进行量化和去量化,以恢复残差块的范数,这是由于在量化步长和量化参数的等式的定点近似中使用了缩放,因此可能会对该范数进行了修改。在一个示例实现方式中,逆变换和去量化的缩放可被组合。或者,可使用定制的量化表,并且例如以码流从编码器向解码器指示该定制的量化表。量化是有损操作,其中,损失随着量化步长的增加而增加。

反量化单元210被配置为对量化系数应用量化单元208的反量化,以获得去量化系数211,例如基于或使用与量化单元208相同的量化步长,应用量化单元208所应用的量化方案的逆变换。去量化系数211也可称为去量化残差系数211,并且对应于变换系数207,尽管通常由于量化损失而与变换系数不同。

逆变换处理单元212被配置为应用由变换处理单元206所应用的变换的逆变换,例如离散余弦逆变换(dct)或离散正弦逆变换(dst),以获得样本域中的逆变换块213。逆变换块213也可称为逆变换去量化块213或逆变换残差块213。

重建单元214(例如,求和器214)被配置为将逆变换块213(即,重建的残差块213)添加到预测块265,以获得样本域中的重建的块215,例如通过将重建残差块213的样本值与预测块265的样本值相加。

可选地,缓冲区单元216(或简称为“缓冲区”216),例如行缓冲区216,被配置为例如为帧内预测而缓冲或存储重建块215和相应样本值。在其他实施例中,编码器可被配置为将未滤波的重建块和/或存储在缓冲区单元216中的相应样本值用于任何种类的估计和/或预测(例如,帧内预测)。

编码器200的实施例可被配置为使得例如缓冲区单元216不仅用于存储用于帧内预测254的重建块215,而且还用于环路滤波器单元220(图2中示出),和/或使得缓冲区单元216和解码图像缓冲区单元230形成一个缓冲区。其他实施例可被配置为使用滤波的块221和/或来自解码图像缓冲区230(均未在图2中示出)的块或样本作为帧内预测254的输入或基础。

环路滤波器单元220(或简称为“环路滤波器”220)被配置为对重建块215进行滤波以获得滤波的块221,例如以平滑像素过渡,或以其他方式提高视频质量。环路滤波器单元220旨在表示一个或多个环路滤波器,例如去块效应滤波器、样本自适应偏移(sao)滤波器或其他滤波器,例如双边滤波器或自适应环路滤波器(alf)或锐化或平滑滤波器或协作滤波器。尽管环路滤波器单元220在图2中被示出为环路滤波器,但是在其他配置中,环路滤波器单元220可被实现为后环路滤波器。滤波的块221也可称为滤波的重建块221。在环路滤波器单元220对重建的译码块执行滤波操作之后,解码图像缓冲区230可存储重建的译码块。

编码器200的实施例(分别是环路滤波器单元220)可被配置为输出环路滤波器参数(例如样本自适应偏移信息),例如,直接或通过熵编码单元270或任何其他熵帧间译码单元熵编码,以使得例如解码器300可接收并应用相同的环路滤波器参数以进行解码。

解码图像缓冲区(dpb)230可以是参考图像存储器,该参考图像存储器存储参考图像数据,以用于由视频编码器20对视频数据进行编码。dpb230可由多种存储设备中的任何一种形成,这些存储设备例如动态随机存取存储器(dram),包括同步dram(sdram)、磁阻ram(mram)、电阻ram(rram)或其他类型的存储设备。dpb230和缓冲区216可由相同的存储设备或单独的存储设备提供。在一些示例中,解码图像缓冲区(dpb)230被配置为存储滤波的块221。解码图像缓冲区230可进一步被配置为存储其他先前滤波的块,例如,相同当前图像或不同图像(例如,先前重建图像)的先前重建块或滤波块221,并且可提供完整的先前重建(即解码)图像(和对应的参考块和参考样本)和/或部分重建的当前图像(和对应的参考块和参考样本),以例如进行帧间预测。在一些示例中,如果重建了重建块215但未进行环路滤波,则解码图像缓冲区(dpb)230被配置为存储重建块215。

也称为块预测处理单元260的预测处理单元260被配置为接收或获得块203(当前图像201的当前块203)和重建的图像数据,例如来自缓冲区216的相同(当前)图像的参考样本和/或来自解码图像缓冲区230的一个或多个先前解码图像的参考图像数据231,并处理此类数据以进行预测,即提供预测块265,该预测块265可以是帧间预测块245或帧内预测块255。

模式选择单元262可被配置为选择预测模式(例如,帧内或帧间预测模式)和/或对应的预测块245或255,以用作预测块265以用于计算残差块205的和重建重建的块215。

模式选择单元262的实施例可被配置为选择预测模式(例如,从由预测处理单元260支持的模式),该预测模式提供最佳匹配或换句话说提供最小残差(最小残差意味着用于传输或存储的更好的压缩),或最小指示开销(最小指示开销意味着对传输或存储进行更好的压缩),或考虑或平衡两者。模式选择单元262可被配置为基于速率失真优化(rdo)来确定预测模式,即,选择提供最小速率失真优化或者相关联的速率失真至少满足预测模式选择标准的预测模式。

在下文,将更详细地解释由示例编码器200执行的预测处理(例如,预测处理单元260和模式选择(例如,通过模式选择单元262))。

如上所述,编码器200被配置为从(预定)预测模式集合确定或选择最佳或最优预测模式。该预测模式集合可包括例如帧内预测模式和/或帧间预测模式。

该组帧内预测模式可包括35个不同的帧内预测模式,例如非定向模式(例比如dc(或均值)模式和平面模式)或定向模式(例如,如h.265中定义),或可包括67个不同的帧内预测模式,例如非定向模式(例比如dc(或均值)模式和平面模式)或定向模式(例如,如h.266中在开发下定义)。

对于帧内模式的指示,最可能模式(mpm)列表用于提高译码效率。由于大量的帧内模式(例如,hevc中的35和vvc中的67),不直接指示当前块的帧内模式。替代地,根据其相邻块的帧内预测模式构建当前块的“最可能模式”列表。由于当前块的帧内模式与其邻居有关,因此mpm列表通常会提供良好的预测,正如其名称(“最有可能模式”列表所示)一样,因此当前块的帧内模式很有可能落入其mpm列表中。以这种方式,为了推导当前块的帧内模式,仅指示mpm列表的索引。与总帧内模式的数量相比,mpm列表的长度要小得多(例如,hevc使用3-mpm列表,并且vvc使用6-mpm列表),因此对帧内模式进行译码所需的位数更少。

标志(mpm_flag)用于指示当前块的帧内模式是否属于其mpm列表。如果为真,则可使用mpm列表为当前块的帧内模式建立索引。否则,将使用二进制代码直接指示内部模式信号。在vvc和hevc中,mpm列表都是基于其邻居的左上方块而构建的。在图30中提出了用于vvc中的mpm列表构建的相邻左上方块的示例。

当当前块的左邻块和上相邻块是非角度模式(即,它们是平面模式或直流模式)或不可用(例如,超出图像边界或相邻模式未被帧内预测)时,默认使用模式列表。

当在左侧或上方块中找到角度模式时,除了在左侧和上方块中使用的帧内模式外,还将使用找到的角度模式的相邻角度模式填充当前块的mpm列表。

(可能的)帧间预测模式集合取决于可用的参考图像(即,先前至少部分解码的图像,例如,存储在dbp230中)和其他帧间预测参数,例如,是整个参考图像还是仅一部分,例如参考图像的当前块区域周围的搜索窗口区域用于搜索最佳匹配的参考块,和/或例如是否应用像素插值,例如半像素/二分之一像素和/或四分之一像素插值。

除了上述预测模式之外,可应用跳过模式和/或直接模式。

预测处理单元260可进一步被配置为将块203分成较小的块划分或子块,例如,迭代地使用四叉树划分(qt)、二叉划分(bt)或三叉树划分(tt)或它们的任意组合,并执行例如针对每个块划分或子块的预测,其中,模式选择包括选择分块203的树结构和应用于每个块划分或子块的预测模式。

帧间预测单元244可包括运动估计(me)单元和运动补偿(mc)单元(图2均未示出)。运动估计单元被配置为接收或获得图像块203(当前图像201的当前图像块203)和解码图像331,或至少一个或多个先前重建的块,例如用于运动估计的一个或多个其他/不同的先前解码图像331的重建块。例如,视频序列可包括当前图像和先前解码的图像331,或换句话说,当前图像和先前解码的图像331可以是形成视频序列的图像的一部分或形成图像序列。编码器200可例如被配置为从多个其他图像的相同或不同图像的多个参考块选择参考块,并提供参考图像(或参考图像索引)和/或参考块的位置(x,y坐标)与当前块的位置之间的偏移(空间偏移)作为对运动估计单元(图2中示出)的帧间预测参数。此偏移也称为运动矢量(mv)。合并是hevc中使用并继承到vvc的重要运动估计工具。为了执行合并估计,首先要做的是构建合并候选列表,其中,每个候选包含所有运动数据,包括是否使用一个或两个参考图像列表的信息以及用于的参考索引和运动矢量每个列表。合并候选列表是基于以下候选构建的:a.从五个空间相邻块推导的最多四个空间合并候选;b.从两个时间并置的块推导一个时间合并候选;c.附加的合并候选,包括组合的双向预测候选和零运动矢量候选。

合并候选列表中的第一个候选是空间邻居。根据图12的右侧,通过依次检查a1、b1、b0、a0和b2,最多可将四个候选插入到合并列表中。

不仅是检查译码块是否可用并包含运动信息,还需要在将译码块的所有运动数据作为合并候选之前执行一些附加的冗余检查。出于两个不同的目的,这些冗余检查可分成两类:a.避免在列表中有冗余运动数据的候选;b.防止合并可用其他方法表示的两个分区,这将创建冗余语法。

当n是空间合并候选的数量时,完整的冗余检查将由(n·(n-1))/2运动数据比较组成。在五个潜在空间合并候选的情况下,将需要十次运动数据比较以确保合并列表中的所有候选具有不同的运动数据。在hevc的开发过程中,对冗余运动数据的检查已减少为子集,从而可在保持译码效率的同时显著降低比较逻辑。在最终设计中,每个候选进行的比较不超过两个,因此总共进行了五次比较。鉴于{a1,b1,b0,a0,b2}的顺序,b0仅检查b1、a0仅检查a1,并且b2仅检查a1和b1。在划分冗余检查的实施例中,通过选择候选b1,将2n×n划分的底部pu与顶部pu合并。这将导致具有两个具有相同运动数据的pu的一个cu,该两个pu可等效地指示为2n×2ncu。总体上,此检查适用于矩形和非对称分区2n×n、2n×nu、2n×nd、n×2n、nr×2n和nl×2n的所有第二pu。注意,对于空间合并候选,仅执行冗余检查,并且原样从候选块复制运动数据。因此,此处不需要运动矢量缩放。

时间合并候选的运动矢量的推导与tmvp的推导相同。由于合并候选包括所有运动数据,并且tmvp仅是一个运动矢量,所以整个运动数据的推导仅取决于条带类型。对于双预测条带,针对每个参考图像列表推导一个tmvp。根据每个列表的tmvp可用性,将预测类型设置为双向预测或tmvp可用的列表。所有相关联参考图像索引均设置为零。因此,对于单预测条带,仅列表0的tmvp与参考图像索引等于0一起推导。

当至少一个tmvp可用并且将时间合并候选添加到列表时,不执行冗余检查。这使得合并列表构建独立于并置图像,从而提高了错误恢复能力。考虑以下情况:临时合并候选将是冗余的,并因此不包括在合并候选列表中。在丢失并置图像的情况下,解码器无法推导时间候选,因此无法检查其是否冗余。所有后续候选的索引编制都会如此受影响。

出于分析鲁棒性的原因,合并候选列表的长度是固定的。在添加空间和时间合并候选之后,可能会发生列表尚未达到固定长度的情况。为了补偿与非长度自适应列表索引指示一起出现的译码效率损失,生成了附加的候选。根据条带类型,最多使用两种候选来完全填充列表:a.合并的双向预测候选人;b.零运动矢量候选。

在双预测条带中,可通过将一个候选的参考图像列表0运动数据与另一候选的列表1运动数据相结合,基于现有候选而生成附加候选。这是通过从一个候选(例如,第一候选)复制δx0、δy0、δt0来完成的并从另一个候选(例如,第二候选)复制δx1、δy1、δt1来实现的。不同的组合是预定义的,并在表1.1中给出。

表1.1

当添加组合的双向预测候选后列表仍然不完整时,或者对于单预测条带,将计算零个运动矢量候选以完成列表。所有零运动矢量候选对于单预测条带有一个零位移运动矢量,而对于双预测条带有两个。将参考索引设置为零,并为每个附加候选项递增一个,直到达到参考索引的最大数量。如果如此并且仍然缺少附加的候选,则使用等于零的参考索引来创建这些候选。对于所有附加的候选,将不执行冗余检查,因为事实证明,省略这些检查不会导致译码效率下降。

对于在图像间预测模式下译码的每个pu,所谓的merge_flag指示使用块合并来推导运动数据。merge_idx进一步确定合并列表中的候选,该候选列表提供mcp所需的所有运动数据。除此pu级别指示外,合并列表中的候选数量还在条带头中指示。由于默认值为5,因此它表示为与5的差(five_minus_max_num_merge_cand)。如此,5用0的短代码字指示,而仅使用一个候选,5用4的较长代码字指示。关于对合并候选列表构建过程的影响,尽管整个过程在列表包含最大数量的合并候选之后终止,但是整个过程保持不变。在初始设计中,合并索引译码的最大值由列表中可用的空间和时间候选数给出。当例如只有两个候选项可用时,索引可有效地译码为标志。然而,为了解析合并索引,必须构建整个合并候选列表以知道实际候选数量。假设由于传输错误而导致不可用的相邻块,则不再可能解析合并索引。

hevc中块合并概念的关键应用是它与跳过模式的结合。在先前视频译码标准中,使用跳过模式来针对块指示推断出运动数据而不是显式地指示,并且预测残差为零,即,不传输变换系数。在hevc中,在图像间预测条带中的每个cu的开始处,指示暗示以下内容的skip_flag:a.cu仅包含一个pu(2n×2n划分方式);b.合并模式用于推导运动数据(merge_flag等于1);c.码流中没有残差数据。

hevc中引入的另一种重要运动估计工具是vvc固有的,称为高级运动矢量预测(amvp)。在amvp模式下,运动矢量根据水平(x)和垂直(y)分量进行译码,以区别于所谓的运动预测器(mvp)。两个运动矢量差(mvd)分量的计算示出为mvdx=mvx–mvpx,mvdy=mvy–mvpy。

当前块的运动矢量通常与当前图像或较早的译码图像中的相邻块的运动矢量相关。这是因为相邻块可能以相同的运动对应于相同的运动对象,并且该对象的运动不太可能随时间突然改变。因此,将相邻块中的运动矢量用作预测变量减小了指示的运动矢量差的尺寸。mvp通常是从并置的图像1中的空间相邻块或时间上相邻块的已经解码的运动矢量中推导。在hevc中,隐式推导mvp的方法已被称为运动矢量竞争的技术所取代,该技术显式地从mvp列表中发信号通知哪个mvp用于运动矢量推导。hevc中的可变译码四叉树块结构可导致一个块具有若干相邻块,其中,运动矢量作为潜在mvp候选。以左邻居为例,在最坏的情况下,当不进一步分割64×64亮度译码树块并将左像素分割成最大深度时,64×64亮度预测块可能在左边有16个8×4亮度预测块。引入了高级运动矢量预测(amvp)来修改运动矢量竞争以考虑到这种灵活的块结构。在hevc的开发过程中,最初的amvp设计得到了显著简化,以在译码效率和易于实现的设计之间取得良好的平衡。

amvp的初始设计包括来自三个不同类别的预测器的五个mvp:来自空间邻居的三个运动矢量,三个空间预测器的中值以及来自并置的时间上相邻的块的缩放运动矢量。此外,通过重新排序将最可能的运动预测变量放在第一位置,并通过删除冗余的候选变量以确保最小的指示开销,来修改预测变量的列表。在整个标准化过程中进行的详尽实验研究了如何在不牺牲过多译码效率的情况下降低这种运动矢量预测和指示方案的复杂性。这导致了amvp设计的显著简化,例如删除中位数预测变量,将列表中的候选项数量从五个减少到了两个,固定列表中的候选项顺序,并减少冗余检查的数量。amvp候选列表构建的最终设计包括以下两个mvp候选:

·从五个空间相邻块推到的最多两个空间候选mvp;

·在两个空间候选mvp均不可用或相同时从两个时间并置的块推导的一个时间候选mvp;

·当空间、时间或两个候选都不可用时的零运动矢量。

在空间候选描述中,两个空间候选a和b的推导处理流程如图32所示。对于候选a,在两回合方法中考虑位于左下顶点的两个块a0和a1的运动数据。在第一回合中,检查是否有任何候选块包含的参考索引等于当前块的参考索引。发现的第一个运动矢量将作为候选a。当来自a0和a1的所有参考索引指向的参考图像与当前块的参考索引不同时,相关联运动矢量将无法按原样使用。因此,在第二回合中,需要根据候选参考图像与当前参考图像之间的时间距离来缩放运动矢量。时间距离以定义图像的显示顺序的图像顺序计数(poc)值之间的差表示。

对于候选b,以与在第一回合中检查a0和a1相同的方式顺序地检查候选b0至b2。然而,仅当块a0和a1不包含任何运动信息时(例如,a0和a1不可用或无法使用图像内预测进行译码),才执行第二回合。然后,将候选a设置为等于未缩放的候选b(如果找到),并且将候选b设置为等于候选b的第二未缩放或缩放的变型。由于该过程可能会在第二回合中结束,此时仍然可能存在潜在未缩放候选,因此第二回合搜索未缩放以及从候选b0到b2得出的缩放mv。总体上,此设计允许独立于b0、b1和b2处理a0和a1。b的推导请注意a0和a1的可用性,以便搜索从b0到b2推导的缩放或附加的非缩放mv。这种依赖性是可接受的,因为它显著减少了候选b的复杂运动矢量缩放操作。减少运动矢量缩放的数量表示运动矢量预测变量推导过程的复杂性显著降低。

在时间候选选择过程中。从图12可看出,将来自当前块左侧和上方的空间相邻块的运动矢量视为空间mvp候选。这可通过以下事实来解释:当前块右边和下面的块尚未解码,因此它们的运动数据不可用。由于并置的图像是已经解码的参考图像,因此也可考虑来自同一位置的块,位于并置的块右侧的块或下方的块的运动数据。在hevc中,当前块右下角和中心的块已被确定为最适合提供良好的时间运动矢量预测器(tmvp)的块。这些候选在图12中示出,其中,c0代表右下邻居,并且c1代表中心块。首先考虑c0的运动数据。如果c0的运动数据不可用,则使用来自位于中心的并置候选块的运动数据来推导时间mvp候选c。当相关联pu属于超出当前ctu行的ctu时,c0的运动数据也被视为不可用。这将存储并置的运动数据的存储器带宽要求降至最低。与运动矢量可参考相同参考图像的空间mvp候选相比,运动矢量缩放对于tmvp是强制性的。

对于合并列表构建或amvp列表构建,基于历史的运动矢量预测值(hmvp)用于合并或amvp列表。在空间mvp和tmvp之后,将基于历史记录的mvp(hmvp)合并候选添加到合并/amvp列表。在该方法中,先前译码的块的运动信息被存储在表中,并且用作当前cu的mvp。在编码/解码过程中维护具有多个hmvp候选的表。当遇到新的ctu行时,将重置(清空)表。每当存在非子块间译码的cu时,相关联的运动信息作为新的hmvp候选添加到表的最后一个条目中。

在vtm4中,hmvp表尺寸s设置为6,这表示最多可将6个基于历史记录的mvp(hmvp)候选添加到表中。当将新的运动候选插入到表中时,使用约束的先进先出(fifo)规则,其中,首先应用冗余检查以发现表中是否存在相同的hmvp。从表中删除相同的hmvp,之后所有hmvp候选都向前移动。

hmvp候选可在合并候选列表/amvp列表构建过程中使用。按顺序检查表中最新的若干hmvp候选,并将其插入到tmvp候选的候选列表中。将冗余检查应用于hmvp候选到空间或时间合并候选。

为了减少冗余检查操作的数量,引入以下简化:

用于合并列表生成的hmpv候选数设置为(n<=4)?m:(8–n),其中,n表示合并列表中现有候选的数量,m表示表中可用的hmvp候选的数量。

一旦可用合并候选的总数达到最大允许的合并候选减去1,来自hmvp的合并候选列表构建过程就会终止。

在vvc草案中,与帧间模式并行,引入ibc模式。

块内复制(ibc)是scc的hevc扩展中采用的工具。ibc模式实现为块级译码,在编码器处执行块匹配(bm),以找到每个cu的最佳块矢量(或运动矢量)。此处,运动矢量用于指示从当前块到参考块的位移,该位移已在当前图像内部进行重建。ibc译码的cu的亮度运动矢量具有整数精度。色度运动矢量也被限幅为整数精度。与amvr结合使用时,ibc模式可在1像素与4像素运动矢量精度之间切换。除帧内或帧间预测模式之外,ibc译码的cu被视为第三预测模式。

为了减少存储器消耗和解码器复杂性,vtm4中的ibc仅允许使用包括当前ctu的预定义区域的重建部分。此限制允许使用硬件上的本地片上存储器来实现ibc模式。

在编码器侧,针对ibc执行基于散列的运动估计。编码器对宽度或高度不大于16个亮度样本的块执行rd检查。对于非合并模式,首先使用基于哈希的搜索来执行块矢量搜索。如果哈希搜索未返回有效的候选,则将执行基于块匹配的本地搜索。

在基于散列的搜索中,当前块与参考块之间的散列密钥匹配(32位crc)被扩展为所有允许的块尺寸。当前图像中每个位置的哈希键计算均基于4×4子块。对于较大尺寸的当前块,当所有4×4子块的所有哈希键与对应参考位置中的哈希键匹配时,确定哈希键与参考块的哈希键匹配。如果发现多个参考块的哈希键与当前块的哈希键匹配,则计算每个匹配参考的块矢量成本,并选择成本最小的那个。

在块匹配搜索中,将搜索范围设置为当前ctu中当前块左侧和顶部的n个样本。在ctu的开始处,如果不存在时间参考图像,则将n的值初始化为128,如果存在至少一个时间参考图像,则将n的值初始化为64。哈希命中率定义为ctu中使用基于哈希的搜索找到匹配项的样本的百分比。在对当前ctu进行编码时,如果哈希命中率低于5%,则n将减少一半。

在cu级别上,ibc模式用标志指示,并可指示为ibcamvp模式或ibc跳过/合并模式,如下所示:

ibc跳过/合并模式:合并候选索引用于指示来自相邻候选ibc译码块的列表中的哪个块矢量用于预测当前块。合并列表由空间、hmvp和成对候选组成。

ibcamvp模式:以与运动矢量差相同的方式对块矢量差进行译码。块矢量预测方法使用两个候选变量作为预测变量,一个来自左邻居,另一个来自上邻居(如果ibc译码)。当任何一个邻居都不可用时,默认块矢量将用作预测变量。指示码流信号以指示块矢量预测器索引。

由于ibc引入ibc合并/跳过模式和ibcamvp模式,因此在vvc草案4.0中将构建附加的ibc合并列表和amvp列表。

在vvc草案4.0或美国临时申请us62/777740中,引入共享合并列表方法。

在解码的解析阶段,将为ctu内的每个cu决定合并共享节点;此外,合并共享节点是叶cu的祖先节点,必须满足以下2个条件:

(1)合并共享节点的尺寸等于或大于尺寸阈值;

(2)在合并共享节点中,子cu尺寸之一小于尺寸阈值。

此外,不必保证合并共享节点的样本不在图像边界之内。在解析阶段期间,如果祖先节点满足条件(1)和(2),但在图像边界之外具有一些样本,则此祖先节点将不是合并共享节点,并将继续为其子cu查找合并共享节点。

此外,基于以下步骤确定共享列表区域:

根据以下步骤,两个叶节点块(块1和块2)被视为处于同一共享合并列表区域:

步骤1:将块1(或块2)的ctu定义为块1的父块。

步骤2:如果父块不包含块2(或块1),则两个叶节点块不被视为处于同一合并估计区域。不执行以下步骤,并且检查过程终止;

否则(如果父块同时包含块1和块2),如果父块包含块2(或块1),则检查父块的当前分割模式,并按以下方式检查父块尺寸。

步骤3:

·如果父块的当前分割模式是二叉树分割并且父块尺寸等于阈值,则两个叶节点块被视为处于同一合并估计区域,并且将父块定义为共享合并列表地区;

·否则,如果父块的当前分割模式是三叉树分割,并且父块尺寸等于该阈值乘以2,则两个叶节点块被视为处于同一合并估计区域,并且将父块定义为共享合并列表区域;

·否则,如果父块的当前分割模式是四叉树分割,并且父块尺寸等于该阈值乘以2,并且两个叶节点块都位于父块中,则两个叶节点块被视为处于同一合并估计区域,并且将父块定义为共享合并列表区域。

步骤4:如果在步骤3中未满足任何条件(列为项目符号项),则根据父块的当前分割模式分割父块并将包含块1(或块2)的所得子块更新为父块,转到步骤2,以递归方式检查更新后的父块。

针对硬件实现的共享合并列表方法,即4×4块合并列表构建的瓶颈。然而,最新的vvc草案4.0(jvet-m1001)中的方法未将共享合并列表方法应用于ibc模式。

此外,amvp列表构建瓶颈(4×4块)也可能难以实现硬件。

另外,常规解决方案未针对用于ibc和帧间模式的合并/amvp列表构建的通用联合共享列表。

在hevc中引入并行合并估计层级,该级别指示通过检查候选块是否位于该合并估计区域(mer)中可独立推导合并候选列表的区域。同一mer中的候选块不包括在合并候选列表中。因此,在列表构建时,不需要其运动数据。例如,当此级别为例如32时,由于没有将相同32×32mer中的所有合并候选插入列表中,因此32×32区域的所有预测单元可并行地构建合并候选列表。如图6所示,存在具有七个cu和十个pu的ctu划分。第一pu0的所有潜在合并候选都可用,因为它们在第一个32×32mer之外。对于第二mer,当mer内部的合并估计应该独立时,pu2至6的合并候选列表不能包括来自这些pu的运动数据。因此,以pu5为例,没有可用的合并候选并因此未插入合并候选列表中。在那种情况下,pu5的合并列表由时间候选(如果可用)和零mv候选组成。为了使编码器能够权衡并行性和译码效率,并行合并估计层级是自适应的,并在图像参数集中指示为log2_parallel_merge_level_minus2。

然而,如背景技术所述,hevc中使用的并行合并估计层级并不高效,因为vvc引入更多分区模式,这会产生不规则(无平方)译码块,这些块将阻碍译码块的合并估计的并行处理。本发明提供解决上述问题的几种解决方案。

此外,在本发明中引入了mpm估计区域。在mpm估计区域,可通过检查候选块是否位于该mpm估计区域来独立地推导mpm候选列表。处于同一mpm估计区域的候选块不包括在mpm候选列表中。因此,在列表构建时该候选块的帧内模式不需要是可用的。例如,当此级别为32时,由于在相同的32×32mpm估计区域的所有最可能的帧内模式候选都没有被插入到列表中,因此32×32区域的所有预测单元可并行地构建mpm列表。

如图31所示,虚线表示的是32×32mpm估计区域,对于cu2,左侧和上方的mpm候

选都是潜在可用的。对于cu3,左边的mpm候选不可用,因为cu2和cu3处于同一

mpm估计区域。对于cu4,顶部mpm候选估计区域不可用,因为cu4和cu2处于同

一mpm估计区域。对于cu4,顶部和左侧mpm候选均不可用,因为cu2、cu4和cu5处于同一mpm估计区域。

以下解决方案还解决了mpm估计区域确定方法。

可理解,如果确定两个叶块不处于同一mer或同一mpm估计区域,则意味着两个叶块被确定为不处于同一mer,或者两个叶块被确定为不处于同一mpm估算区域。当叶块的预测模式是帧间预测时,确定叶块是否被视为处于同一合并估计区域;当叶块的预测模式为帧内预测时,确定叶块是否被视为处于同一mpm估计区域。

解决方案1

根据解决方案1,将共享合并列表方法应用于ibc模式。

在ibc模式下,合并列表由空间候选、ibchvmp列表和现有候选成对构成。选择的ibc空间候选与常规合并模式空间候选相同。如果相邻块也使用ibc模式,则将通过修剪将空间候选插入到ibc合并候选列表中。ibchmvp列表是基于常规hmvp列表的规则构建的。当历史记录块的模式为ibc模式时,将hmvp候选插入到hmvp列表中。

在解决方案1中,如果两个块属于一个共享列表区域。则基于共享列表区域而构建一个ibc合并列表。空间候选由共享列表区域区域确定。使用在共享列表区域之前构建的hmvp列表。在示例中,共享列表区域被确定为与jvet-m1001或美国临时申请us62/777740相同。

例如,如果一个4×8ibc共享列表区域包含两个4×4ibc模式块(标记为块1和块2)。则为块1和块2构建一个ibc合并列表,候选空间为4×8区域的a0、a1、b0、b1和b2。在重建块1之前,从列表选择hmvp候选。注意,块1的运动信息已更新为备用hmvp列表,备用hmvp列表用于随后在4×8共享列表区域之后重建的块,但备用hmvp列表不用于ibc块2。

解决方案2

根据解决方案2,公开了共享的amvp列表/共享的ibcamvp列表。

基于jvet-m1001或美国临时申请us62/777740中的方法,确定用于块的共享列表区域。

当使用amvp模式处理共享列表区域的多个帧间块时,则基于共享列表区域构建一个amvp列表,该区域将被视为共享amvp列表区域。

在共享的amvp列表模式下。根据共享的amvp列表区域来确定空间候选。使用在共享amvp列表区域之前构建的hmvp列表。

例如,如果一个4×8共享amvp列表区域包含两个4×4帧间模式块(标记为块1和块2)。则针对帧间块1和帧间块2构建一个amvp,空间候选是4×8区域的a0、a1、b0、b1和b2。在重建帧间块1之前,从列表选择hmvp候选。注意,块1的运动信息已更新为备用hmvp列表,备用hmvp列表用于随后在4×8共享列表区域之后重建的块,但备用hmvp列表不用于ibc块2。

当共享列表区域的多个ibc块正在使用ibcamvp模式时,则将基于共享列表区域构建一个ibcamvp列表,该区域将被视为共享ibcamvp列表区域。

在共享ibcamvp列表模式下,空间候选由共享ibcamvp列表区域确定。在使用共享ibcamvp列表区域之前构建的ibchmvp列表。

例如,如果4×8共享的ibcamvp列表区域包含两个4×4ibc模式块(标记为块1和块2)。则为块1和块2构建一个ibcamvp,候选空间为4×8区域的a0、a1、b0、b1和b2。在重建ibc块1之前,从列表选择ibchmvp候选。注意,块1的运动信息已更新为备用hmvp列表,备用hmvp列表用于随后在4×8共享列表区域之后重建的块,但备用hmvp列表不用于ibc块2。

解决方案3

如果同时应用分片ibc合并列表(解决方案1)和共享ibcamvp列表(解决方案2),则在ibc合并/amvp列表交互的一种情况下,将应用共享列表区域。

在示例中,阈值为32(例如,32个亮度采样)。在图33的(a)中,根据二叉树分割模式将8×4块分割成2×4×4块。这两个块是ibc块,左块(标记为块1)使用ibc合并模式,右块(标记为块2)使用ibcamvp模式。在这种情况下,将基于块1的8×4共享列表区域构建一个4×4ibc合并列表。基于块2的8×4共享列表区域构建一个4×4ibcamvp列表。

在解决方案3中,可在用于ibc块的共享列表区域使用一种ibc运动估计模式。

·如果ibc块属于共享列表区域,并且通过使用ibc合并模式来处理上一个块中的任何一个,则不允许使用当前块的ibcamvp模式;

·如果ibc块属于共享列表区域,并且通过使用ibcamvp模式来处理上一个块中的任何一个,则不允许使用当前块的ibc合并模式。

在一个示例中,在图33的(a)中,块1和块2处于共享列表区域(例如,块1和块2构建共享列表区域,该区域没有其他块),通过使用ibc合并模式来处理块1。当使用ibc模式来处理块2时,块2无法使用ibcamvp模式。当块2不是ibc模式时,允许所有模式。

在一个示例中,在图33的(b)中,块1、块2和块3处于共享列表区域(例如,块1、块2和块3构建共享列表区域,在该区域没有其他块),如果使用ibc合并模式来处理块1,则当使用ibc模式处理块2时,块2无法使用ibcamvp模式。当不使用ibc模式来处理块2时,允许所有模式。如果使用ibc合并模式来处理块1和块2中的任何一个,则当块3为ibc模式时,块3将无法使用ibcamvp模式。当块3不是ibc模式时,允许所有模式。

在一个示例中,在图33的(c)中,块1、块2、块3和块4处于共享列表区域(例如,块1、块2、块3和块4构建共享列表区域,此区域没有其他块),如果使用ibc合并模式来处理块1,则当使用ibc模式来处理块2时,块2无法使用ibcamvp模式。当不使用ibc模式来处理块2时,允许所有模式。如果使用ibc合并模式来处理块1和块2中的任何一个,则当使用ibc模式来处理块3时,无法使用ibcamvp模式来处理块3。当不使用ibc模式来处理块3时,允许所有模式。如果使用ibc合并模式来处理块1、块2或块3中的任何一个,则当块4为ibc模式时,块4无法使用ibcamvp模式。当不使用ibc模式来处理块4时,允许所有模式。

解决方案4

对于帧间块,应用共享合并列表(例如,jvet-m1001或美国临时申请us62/777740中公开的共享合并列表)和共享amvp列表(解决方案2)。然后,在共享列表区域应用合并/amvp列表交互的一个情况。

为了避免这种情况,在解决方案4中,可在帧间块的共享列表区域使用一种运动估计模式。

·如果帧间块属于共享列表区域,并且使用合并模式来处理先前块中的任何一个,则不允许使用当前块的amvp模式;

·如果帧间块属于共享列表区域,并且使用amvp模式来处理先前块中的任何一个,则不允许使用当前块的合并模式。

在一个示例中,在图33的(a)中,块1和块2处于共享列表区域(例如,块1和块2构建共享列表区域,在该区域没有其他块),如果使用合并模式来处理块1,则当块2是帧间模式时,块2无法使用amvp模式。当不使用帧间模式来处理块2时,允许所有模式。

在一个示例中,在图33的(b)中,块1、块2和块3处于共享列表区域(例如,块1、块2和块3构建共享列表区域,在该区域没有其他块),如果使用合并模式来处理块1,则当块2为帧间模式时,块2无法使用amvp模式。当不使用帧间模式来处理块2时,允许所有模式。如果使用合并模式来处理块1和块2中的任何一个,则当使用帧间模式来处理块3时,块3无法使用amvp模式。当不使用帧间模式来处理块3时,允许所有模式。

在一个示例中,在图33的(c)中,块1、块2、块3和块4处于共享列表区域(例如,块1、块2、块3和块4构建共享列表区域,在该区域没有其他块),如果使用合并模式来处理块1,则当块2为帧间模式时,块2无法使用amvp模式。当不使用帧间模式来处理块2时,允许所有模式。如果使用合并模式来处理块1和块2中的任何一个,则当块3为帧间模式时,块3无法使用amvp模式。当不使用帧间模式来处理块3时,允许所有模式。如果使用合并模式来处理块1、块2或块3中的任何一个,则当块4为帧间模式时,块4无法使用amvp模式。当不使用帧间模式来处理块4时,允许所有模式。

解决方案5

根据解决方案5,解决方案3和解决方案4可在不交互的情况下一起应用在同一共享列表区域内。即

如果ibc块属于共享列表区域,并且通过使用ibc合并模式来处理上一个块中的任何一个,则不允许使用当前块的ibcamvp模式;

如果ibc块属于共享列表区域,并且通过使用ibcamvp模式来处理上一个块中的任何一个,则不允许使用当前块的ibc合并模式。

如果帧间块属于共享列表区域,并且使用合并模式来处理先前块中的任何一个,则不允许使用当前块的amvp模式;

如果帧间块属于共享列表区域,并且使用amvp模式来处理先前块中的任何一个,则不允许使用当前块的合并模式。

解决方案6

根据解决方案6,解决方案3和解决方案4可在交互的情况下一起应用在同一共享列表区域内。即

如果ibc块属于共享列表区域,并且使用ibc合并模式来处理先前块中的任何一个,则不允许当前块的ibcamvp模式、帧内amvp模式或帧间合并模式。

如果ibc块属于共享列表区域,并且使用ibcamvp模式处理先前块中的任何一个,则不允许使用当前块的ibc合并模式、amvp间模式或帧间合并模式。

如果帧间块属于共享列表区域,并且使用合并模式来处理先前块中的任何一个,则不允许当前块使用amvp模式、ibcamvp模式或ibc合并模式。

如果帧间块属于共享列表区域,并且使用amvp模式来处理先前块中的任何一个,则不允许当前块的合并模式、ibcamvp模式或ibc合并模式。

解决方案7

根据解决方案7,解决方案3和解决方案4可在交互的情况下一起应用在同一共享列表区域内。即

如果ibc块属于共享列表区域,并且使用ibc合并模式来处理先前块中的任何一个,则不允许使用当前块的ibcamvp模式或帧间amvp模式。

如果ibc块属于共享列表区域,并且使用ibcamvp模式处理先前块中的任何一个,则不允许使用当前块的ibc合并模式或帧间合并模式。

如果帧间块属于共享列表区域,并且使用合并模式来处理先前块中的任何一个,则不允许使用当前块的amvp模式或ibcamvp模式。

如果帧间块属于共享列表区域,并且使用amvp模式来处理先前块中的任何一个,则不允许当前块的合并模式或ibc合并模式。

解决方案8

根据解决方案8,可将共享ibc合并列表和常规共享合并列表(例如,jvet-m1001或美国临时申请us62/777740中公开的共享合并列表)的解决方案1一起应用于同一共享列表区域。

该解决方案避免了在一个共享列表区域一个块被构建为ibc合并列表,而另一块被构建为常规合并列表的情况。

为了避免这种最坏的情况,在解决方案8中,

·如果ibc块属于共享列表区域,并且使用帧间合并模式来处理先前块中的任何一个,则不允许当前块的ibc合并模式。

·如果帧间块属于共享列表区域,并且使用ibc合并模式来处理先前块中的任何一个,则不允许当前块的帧间合并模式。

在一个示例中,在图33的(a)中,块1和块2处于共享列表区域(例如,块1和块2构建共享列表区域,在该区域没有其他块),如果使用合并模式来处理块1,则当块2是帧间模式时,块2无法使用帧间模式。当不使用帧间模式来处理块2时,允许所有模式。

在一个示例中,在图33的(b)中,块1、块2和块3处于共享列表区域(例如,块1、块2和块3构建共享列表区域,在该区域没有其他块),如果使用ibc合并模式来处理块1,则当块2为帧间模式时,块2无法使用帧间合并模式。当不使用帧间模式来处理块2时,允许所有模式。如果使用ibc合并模式来处理块1和块2中的任何一个,则当块3是帧间模式时,块3无法使用帧间合并模式。当不使用帧间模式来处理块3时,允许所有模式。

在一个示例中,在图33的(c)中,块1、块2、块3和块4处于共享列表区域(例如,块1、块2、块3和块4构建共享列表区域,在该区域没有其他块),如果使用ibc合并模式来处理块1,则当块2为帧间模式时,块2无法使用帧间合并模式。当不使用帧间模式来处理块2时,允许所有模式。如果使用ibc合并模式来处理块1和块2中的任何一个,则当块3是帧间模式时,块3无法使用帧间合并模式。当不使用帧间模式来处理块3时,允许所有模式。如果使用ibc合并模式来处理块1、块2或块3中的任何一个,则当块4是帧间模式时,块4无法使用帧间合并模式。当不使用帧间模式来处理块4时,允许所有模式。

解决方案9

根据解决方案9,可将共享ibcamvp列表的解决方案2和常规共享amvp列表的解决方案2一起应用在同一共享列表区域。

该解决方案避免了在一个共享列表区域一个块被构建为ibcamvp列表而另一块被构建为常规amvp列表的情况。

为了避免这种最坏的情况,在解决方案9中,

·如果ibc块属于共享列表区域,并且通过使用帧间amvp模式来处理上一个块中的任何一个,则不允许使用当前块的ibcamvp模式;

·如果帧间块属于共享列表区域,并且使用ibcamvp模式来处理先前块中的任何一个,则不允许当前块的帧间amvp模式。

在一个示例中,在图33的(a)中,块1和块2处于共享列表区域(例如,块1和块2构建共享列表区域,在该区域没有其他块),如果使用ibcamvp模式来处理块1,则当块2是帧间模式时,块2无法使用amvp模式。当不使用帧间模式来处理块2时,允许所有模式。

在一个示例中,在图33的(b)中,块1、块2和块3处于共享列表区域(例如,块1、块2和块3构建共享列表区域,在该区域没有其他块),如果使用ibcamvp模式来处理块1,则当块2为帧间模式时,块2无法使用帧间amvp模式。当不使用帧间模式来处理块2时,允许所有模式。如果使用ibcamvp模式来处理块1和块2中的任何一个,则当块3是帧间模式时,块3无法使用帧间amvp模式。当不使用帧间模式来处理块3时,允许所有模式。

在一个示例中,在图33的(c)中,块1、块2、块3和块4处于共享列表区域(例如,块1、块2、块3和块4构建共享列表区域,在该区域没有其他块),如果使用ibcamvp模式来处理块1,则当块2为帧间模式时,块2无法使用帧间amvp模式。当不使用帧间模式来处理块2时,允许所有模式。如果使用ibcamvp模式来处理块1和块2中的任何一个,则当块3是帧间模式时,块3无法使用帧间amvp模式。当不使用帧间模式来处理块3时,允许所有模式。如果使用ibcamvp模式来处理块1、块2或块3中的任何一个,则当块4是帧间模式时,块4无法使用帧间amvp模式。当不使用帧间模式来处理块4时,允许所有模式。

解决方案10:

根据解决方案10,如果同时满足以下两个条件,则两个叶块被视为处于同一合并估计区域或同一mpm估计区域:

两个叶块属于同一父块(或父块的父块、或父块的父块的父块等),并且

同一父块的尺寸小于阈值。

如果叶块的预测模式是帧间预测并且满足上述条件,则两个叶块被视为处于同一合并估计区域;否则,两个叶块被视为处于同一合并估计区域。如果叶块的预测模式是帧内预测并且满足上述条件,则两个叶块被视为处于同一mpm估计区域。

如果两个叶块被视为处于同一合并估计区域,则设置第一叶块的译码顺序的运动信息不可用于第二块的预测。否则,将第一叶块的运动信息设置为可用于第一块的预测。

如果两个叶块被视为处于同一mpm估计区域,则按照译码顺序将第一叶块的帧内预测模式设置为不可用于第二块进行预测。否则,将第一叶块的帧内预测模式设置为可用于第一块的预测。

注意,由于递归分割过程,叶块可能在不同的层次结构级别(直接父级、父级的父级等)上具有多个父块。根据解决方案10,如果存在包含两个叶块的至少一个父块(在任何层次结构级别上),则它们(两个叶块)被视为属于同一父块。此外,两个叶块的层次结构级别可能不同,这意味着从父块开始以获得叶块的分割操作的数量对于两个叶块可能会有所不同。

根据一个实现方式,阈值被计算为父译码块内的像素样本的数量,该数量被计算为宽度乘以该译码块的高度。根据解决方案10的另一实现方式,阈值是正整数,并且基于块的宽度来计算块的尺寸。根据解决方案10的第三实现方式,阈值是正整数,并且基于块的高度来计算块的尺寸。通常,基于块的宽度和高度而计算块的尺寸,并同时考虑到这两个因素。

解决方案11:

根据解决方案11,如果同时满足以下两个条件,则两个叶块被视为处于同一合并估计区域或同一mpm估计区域:

它们属于同一父块(或父块的递归父级、或父块的父级的父级等),并且

为了获得父块而执行的分割操作的数量大于阈值。

如果两个叶块被视为处于同一合并估计区域,则设置第一块的译码顺序的运动信息不可用于第二块的预测。否则,将第一块的运动信息设置为可用于第二块的预测。

如果两个叶块被视为处于同一mpm估计区域,则按照译码顺序将第一块的帧内预测模式设置为不可用于第二块进行预测。否则,将第一块的运动信息设置为可用于第二块的预测。

根据解决方案11,基于为了获得父块而执行的四叉树、二叉树和三叉树分割操作的数量来执行阈值比较。例如,假设执行获得父块的四叉树分割操作的次数由qtdepththr表示,执行的二叉树和三叉树分割操作的次数由mttdepth共同表示(术语qtdepth和mttdepth是根据可从网站http://phenix.it-sudparis.eu/jvet获得的jvet-l1001-v1通用视频译码(草案3)使用的。qtdepth表示四叉树分区深度,它等于执行以获得块的四叉树分割操作的数量。mttdepth表示多类型树分区深度,它等于执行以获得块的二叉树和三叉树分割操作的数量。)然后根据解决方案11,如果qtdepth加k乘以mttdepth的值大于指定的阈值(k×qtdepth+mttdepth>thr),则属于同一父块的任何两个叶块都被视为处于同一mer。k和thr可以是整数0、1、2、……、k,并且阈值可以是预定的或在码流中指示。在一个实现方式中,k具有预定值2。

可使用图10和图11来解释四叉树、二叉树和三叉树分割操作的数量计数。作为示例,通过块50的一个四叉树分割获得块34。根据图11,块34是叶块,该叶块通过一个四叉树分割操作以及零个三叉树和零个二叉树分割操作获得。

根据图11,通过两次四叉树分割操作和一次二叉树分割操作获得块45。首先使用四叉树分割来分割块50(即,ctb)以获得块58,使用四叉树分割来分割块58以获得块62,最后使用二叉树分割来分割块62以获得块45。

注意,相对于被视为是分割操作的起点的译码树块(ctb)来计数分割操作的数量。

解决方案10的解释:伴随图23呈现解决方案10的流程图。注意,假设块1按照译码顺序在块2之前。根据解决方案10,首先以递归方式确定小于块1和块2的指定阈值“thr”的父块。parent1.1表示块1的父块,parent1.2表示parent1.1的父块,依此类推。同样,parent2.1表示块2的父块。

如果块1的父块与块2的父块的块相同,并且如果父块的尺寸小于thr,则块2的运动信息或帧内预测模式设置为块1无法进行预测。

类似地,图23也可用于解释解决方案13,其中尺寸比较被基于为获得父块而执行的四叉树、二叉树和三叉树分割操作的数量的比较所代替。

确定合并估计区域(mer)或mpm估计区域后,如果确定两个块(块1和块2)属于同一mer或同一mpm估计区域,则可应用三种不同的方法来处理2个并行块。

方法1:如果确定两个叶块处于同一合并估计区域,则设置第一叶块的译码信息的运动信息,该第二叶块的运动信息不可用于第二块的预测;或如果确定两个叶块处于同一mpm估计区域,则设置第一叶块的译码顺序的帧内预测模式不可用于第二块进行预测。否则(如果确定两个叶块不处于同一mer),将第一个叶块的运动信息设置为可用于第二个块的预测;或如果确定两个叶块不处于同一mpm估计区域,则将第一叶块的帧内预测模式设置为可用于第二块进行预测。根据相同方法,如果确定第一块和第二块属于同一mer,则第二块不使用第一块的运动信息,或,如果确定第一块的帧内预测模式属于同一mpm估计区域,则第二块不使用第一块的帧内预测模式;因此,第二块可与第一块并行处理。

方法2:如果确定两个叶块处于同一mpm估计区域,则基于mpm估计区域的相邻块而构建块1的mpm列表和块2的mpm列表。图28示例了方法2,其中,块1和块2是被确定为属于同一mpm估计区域(mpmer)的两个叶节点。在此示例中,mpmer的空间相邻块被表示为块a至块g。mpmer的空间相邻块是在mpmer外部并且与mpmer相邻的块。根据方法2,可基于块a至g构建块1的mpm列表。此外,可基于块a至g构建块2的mpm列表。另一方面,块2的mpm列表无法使用块1的帧内预测模式进行构建。

方法3:如果确定两个叶块处于同一mpm估计区域,则基于mpmer的空间相邻块构建一个mpm列表(mpm_list_mpmer)。构建的mpm列表由框1和框2用于帧内预测。换句话说,块1和块2对帧内预测过程使用同一mpm列表mpm_list_mpmer。与方法2(其中,块1和块2可具有两个不同mpm列表)相比,在方法3中,仅构建一个mpm列表,并且构建的mpm列表被mpmer密封的所有叶块使用。

根据所有方法1至3,在块的帧内预测中使用构建的mpm列表。

解决方案12:

根据解决方案12,基于以下条件,两个叶块被视为处于同一合并估计区域或同一mpm估计区域:

在一个示例中,如果满足以下所有条件,则两个叶块被视为处于同一合并估计区域或同一mpm估计区域。

两个叶块属于同一父块(或父块的父块、或父块的父块的父块等);

同一父块的尺寸等于阈值的两倍;

父块的当前分割模式是三叉树分割(水平或垂直)。

在一个示例中,如果满足以下所有条件,则两个叶块被视为处于同一合并估计区域或同一mpm估计区域。

两个叶块属于同一父块(或父块的父块、或父块的父块的父块等);

同一父块等于阈值的两倍;

同一父块的当前分割模式为四叉树;并且

两个叶块的左上样本的两个垂直坐标都小于同一父块的左上样本的垂直坐标加上同一父块的高度的一半。

在一个示例中,如果满足以下所有条件,则两个叶块被视为处于同一合并估计区域或同一mpm估计区域。

两个叶块属于同一父块(或父块的父块、或父块的父块的父块等);

同一父块等于阈值的两倍;

同一父块的当前分割模式为四叉树;并且

两个叶块的左上样本的两个垂直坐标都大于同一父块的左上样本的垂直坐标加上同一父块的高度的一半。

在一个示例中,如果满足以下所有条件,则两个叶块被视为处于同一合并估计区域或同一mpm估计区域。

两个叶块属于同一父块(或父块的父块、或父块的父块的父块等);并且

同一父块小于或等于阈值。

在另一个示例中,如果不满足上述条件之一,则两个叶块被视为不处于同一合并估计区域或不处于同一mpm估计区域。

在一个实施例中,如果确定两个叶块处于同一mpm估计区域,则将第二叶块的译码顺序中的第一叶块的帧内预测模式设置为不可用于第二块预测,否则,将第一叶块的帧内预测模式设置为可用于第二块进行预测。

在一个实施例中,如果两个叶块(块1和块2)被确定为处于同一mpm估计区域,则基于mpmer的空间相邻块来构建块1和块2的mpm列表,并且块2不使用块1的帧内预测模式。mpmer的空间相邻块是在空间上与mpmer相邻并且在mpmer外部的块。因此,在块1和块2的mpm列表构建过程中使用mpmer的空间相邻块的帧内预测模式,但是在块2的mpm列表构建中不使用块1的帧内预测模式(假设译码顺序为块1,然后是块2)。

在一个实施例中,如果两个叶块(块1和块2)被确定为处于同一mpm估计区域,则基于mpmer的空间相邻块来构建单个mpm列表,并且两个块使用该mpm列表。在此示例中,块1和块2使用同一mpm列表,基于mpmer的空间相邻块来构建mpm列表。

注意,由于递归分割过程,叶块可能在不同的层次结构级别(直接父级、父级的父级等)上具有多个父块。根据解决方案12,如果存在包含两个叶块的至少一个父块(在任何层次结构级别上),则它们(两个叶块)被视为属于同一父块。此外,两个叶块的层次结构级别可能不同,这意味着从父块开始以获得叶块的分割操作的数量对于两个叶块可能会有所不同。

根据一个实现方式,以上示例中提到的阈值被计算为父译码块内的像素样本的数量,该数量被计算为宽度乘以该译码块的高度。根据另一实现方式,阈值是正整数,并且基于块的宽度来计算块的尺寸。根据另一实现方式,阈值是正整数,并且基于块的的宽度或高度来计算块的尺寸。通常,基于块的宽度和高度而计算块的尺寸,并同时考虑到这两个因素。

在一个实施例中,阈值为正整数,其中,阈值等于(2n)的2幂或(2n+1)的2幂,n为正整数,n的下限为log2(mincbsize)。log2()是二进制对数缩放运算。mincbsize表示译码器的最小允许译码块尺寸,该尺寸在码流中已预定义或指示。在vvc标准草案文档jvet-l1001-v1,通用视频译码(草案3)中,定义并使用了mincbsize。

解决方案13:

根据解决方案13,基于以下步骤,两个叶节点块(块1和块2)被视为处于同一合并估计区域或同一mpm估计区域:

步骤1:将块1(或块2)的ctu定义为块1的父块。

步骤2:如果父块不包含块2(或块1),则两个叶节点块不被视为处于同一合并估计区域或同一mpm估计区域。不执行以下步骤,并且检查过程终止;

否则(如果父块同时包含块1和块2),如果父块包含块2(或块1),则检查父块的当前分割模式,并按以下方式检查父块尺寸。

步骤3:

·如果父块的当前分割模式是二叉树分割并且父块尺寸等于阈值,则两个叶节点块被视为处于同一合并估计区域或同一mpm估计区域,将父块定义为mpmer;

·否则,如果父块的当前分割模式是三叉树分割,并且父块尺寸等于该阈值乘以2,则两个叶节点块被视为处于同一合并估计区域或同一mpm中在估计区域,将父块定义为mer或mpmer;

·否则,如果父块的当前分割模式是四叉树分割,并且父块尺寸等于该阈值乘以2,并且两个叶节点块都位于父块的上半部分,则两个叶节点块被视为处于同一合并估计区域或同一mpm估计区域,将父块的上半部分定义为mer或mpmer;

·否则,如果父块的当前分割模式是四叉树分割,并且父块尺寸等于该阈值乘以2,并且两个叶节点块都位于父块的下半部中,则两个叶节点块被视为处于同一合并估计区域或同一mpm估计区域,将父块的下半部分定义为mer或mpmer。

步骤4:如果在步骤3中未满足任何条件(列为项目符号项),则根据父块的当前分割模式分割父块并将包含块1(或块2)的所得子块更新为父块,转到步骤2,以递归方式检查更新后的父块。

可通过使用左上方样本的坐标来确定两个叶节点块的位置。例如,如果两个叶块的左上样本的两个垂直坐标都小于父块的左上样本的垂直坐标加上父块的高度的一半,则两个叶块被视为包括在父块的上半部分中。两个叶节点块位于父块的左半部分,如果两个叶块的左上样本的两个垂直坐标都大于父块的左上样本的垂直坐标加上父块的高度的一半,则两个叶块被视为包括在父块的下半部分中。

在另一个示例中,如果不满足上述条件,则两个叶块被视为不处于同一合并估计区域;或处于同一mpm估计区域;或如果不满足上述条件,则两个叶块被视为不处于同一mpm估计区域。

在一个实施例中,如果确定两个叶块处于同一mpm估计区域,则将第二叶块的译码顺序中的第一叶块的帧内预测模式设置为不可用于第二块预测,否则,将第一叶的帧内预测模式设置为可用于第二块进行预测。

在一个实施例中,如果两个叶块(块1和块2)被确定为处于同一mpm估计区域,则基于mpmer的空间相邻块来构建块1和块2的mpm列表,并且块2不使用块1的帧内预测模式。mpmer的空间相邻块是在空间上与mpmer相邻并且在mpmer外部的块。因此,在块1和块2的mpm列表构建过程中使用mpmer的空间相邻块的帧内预测模式,但是在块2的mpm列表构建中不使用块1的帧内预测模式(假设译码顺序为块1,然后是块2)。

在一个实施例中,如果两个叶块(块1和块2)被确定为处于同一mpm估计区域,则基于mpmer的空间相邻块来构建单个mpm列表,并且两个块使用该mpm列表。在此示例中,块1和块2使用同一mpm列表,基于mpmer的空间相邻块来构建mpm列表。

注意,由于递归分割过程,叶块可能在不同的层次结构级别(直接父级、父级的父级等)上具有多个父块。根据解决方案13,如果存在包含两个叶块的至少一个父块(在任何层次结构级别上),则它们(两个叶块)被视为属于同一父块。此外,两个叶块的层次结构级别可能不同,这意味着从父块开始以获得叶块的分割操作的数量对于两个叶块可能会有所不同。

根据一个实现方式,以上示例中提到的阈值被计算为父译码块内的像素样本的数量,该数量被计算为宽度乘以该译码块的高度。根据另一实现方式,阈值是正整数,并且基于块的宽度来计算块的尺寸。根据另一实现方式,阈值是正整数,并且基于块的的宽度或高度来计算块的尺寸。通常,基于块的宽度和高度而计算块的尺寸,并同时考虑到这两个因素。

在一个实施例中,阈值为正整数,其中,阈值等于(2n)的2幂或(2n+1)的2幂,n为正整数,n的下限为log2(mincbsize)。log2()是二进制对数缩放运算。mincbsize表示译码器的最小允许译码块尺寸,该尺寸在码流中已预定义或指示。在vvc标准草案文档jvet-l1001-v1,通用视频译码(草案3)中,定义并使用了mincbsize。

解决方案14:

根据解决方案14,基于以下步骤,两个叶节点块(块1和块2)被视为处于同一合并估计区域或同一mpm估计区域:

步骤1:将块1(或块2)定义为块1(或块2)的当前父块。

步骤2:如果当前父块小于阈值,则将当前父块的父块定义为块1(或块2)的更新后的当前父块;

否则,确定块2(或块1)是否包含在块1(或块2)的当前父块中。

步骤3:如果当前父块不包含块2,则两个叶节点块不被视为处于同一合并估计区域或同一mpm估计区域;

否则,将检查当前父块的尺寸和当前父块的当前分割模式。

步骤4:如果当前父块的尺寸等于阈值,则两个叶节点块被视为处于同一合并估计区域或同一mpm估计区域,将当前父块设置为mer或mpmer;

否则,如果当前父节点的尺寸等于阈值乘以2,并且当前分割模式是三叉树,则两个叶节点块被视为处于同一合并估计区域或同一mpm估计区域,将当前父块设置为mer或mpmer;

否则,如果当前父级的尺寸等于阈值乘以2,并且当前分割模式为四叉树,则检查当前父块中两个叶节点块的位置。

步骤5:如果两个叶节点块均位于当前父块的上半部中,则两个叶节点块被视为处于同一合并估计区域或同一mpm估计区域,将当前父块设置为mer或mpmer;

否则,如果两个叶节点块均位于当前父块的下半部分,则两个叶节点块被视为处于同一合并估计区域或同一mpm估计区域,将当前父块的下半部分设置为mer或mpmer;

否则,两个叶节点块不被视为处于同一合并估计区域或同一mpm估计区域。

可通过使用左上方样本的坐标来确定两个叶节点块的位置。例如,如果两个叶块的左上样本的两个垂直坐标都小于父块的左上样本的垂直坐标加上父块的高度的一半,则两个叶块为被视为包括在父块的上半部分中。两个叶节点块位于父块的左半部分,如果两个叶块的左上样本的两个垂直坐标都大于父块的左上样本的垂直坐标加上父块的高度的一半,则两个叶块被视为包括在父块的下半部分中。

在另一个示例中,如果不满足上述条件,则两个叶块被视为不处于同一合并估计区域;或者,如果不满足上述条件,则两个叶块被视为不处于同一mpm估计区域。

在一个实施例中,如果确定两个叶块处于同一mpm估计区域,则将第二叶块的译码顺序中的第一叶块的帧内预测模式设置为不可用于第二块预测,否则,将第一叶的帧内预测模式设置为可用于第二块进行预测。

在一个实施例中,如果两个叶块(块1和块2)被确定为处于同一mpm估计区域,则基于mpmer的空间相邻块来构建块1和块2的mpm列表,并且块2不使用块1的帧内预测模式。mpmer的空间相邻块是在空间上与mpmer相邻并且在mpmer外部的块。因此,在块1和块2的mpm列表构建过程中使用mpmer的空间相邻块的帧内预测模式,但是在块2的mpm列表构建中不使用块1的帧内预测模式(假设译码顺序为块1,然后是块2)。

在一个实施例中,如果两个叶块(块1和块2)被确定为处于同一mpm估计区域,则基于mpmer的空间相邻块来构建单个mpm列表,并且两个块使用该mpm列表。在此示例中,块1和块2使用同一mpm列表,基于mpmer的空间相邻块来构建mpm列表。

注意,由于递归分割过程,叶块可能在不同的层次结构级别(直接父级、父级的父级等)上具有多个父块。根据解决方案14,如果存在包含两个叶块的至少一个父块(在任何层次结构级别上),则它们(两个叶块)被视为属于同一父块。此外,两个叶块的层次结构级别可能不同,这意味着从父块开始以获得叶块的分割操作的数量对于两个叶块可能会有所不同。

根据一个实现方式,以上示例中提到的阈值被计算为父译码块内的像素样本的数量,该数量被计算为宽度乘以该译码块的高度。根据另一实现方式,阈值是正整数,并且基于块的宽度来计算块的尺寸。根据另一实现方式,阈值是正整数,并且基于块的的宽度或高度来计算块的尺寸。通常,基于块的宽度和高度而计算块的尺寸,并同时考虑到这两个因素。

在一个实施例中,阈值为正整数,其中,阈值等于(2n)的2幂或(2n+1)的2幂,n为正整数,n的下限为log2(mincbsize)。log2()是二进制对数缩放运算。mincbsize表示译码器的最小允许译码块尺寸,该尺寸在码流中已预定义或指示。在vvc标准草案文档jvet-l1001-v1,通用视频译码(草案3)中,定义并使用了mincbsize。

解决方案15:

根据解决方案15,基于以下条件,两个叶块被视为处于同一合并估计区域或同一mpm估计区域。

在一个示例中,如果满足以下所有条件,则两个叶块被视为处于同一合并估计区域或同一mpm估计区域:

两个叶块属于同一父块(或递归父块的父块、或父块的父块的父块等);

为了获得父块而执行的分割操作的数量等于阈值减1;

同一父块的当前分割模式是三叉树分割(水平或垂直)。

在一个示例中,如果满足以下所有条件,则两个叶块被视为处于同一合并估计区域或同一mpm估计区域:

两个叶块属于同一父块(或父块的父块、或父块的父块的父块等);

为了获得父块而执行的分割操作的数量等于阈值减1;

同一父块的当前分割模式为四叉树;

两个叶块的左上样本的两个垂直坐标都小于同一父块的左上样本的垂直坐标加上同一父块的高度的一半。

在一个示例中,如果满足以下所有条件,则两个叶块被视为处于同一合并估计区域或同一mpm估计区域:

两个叶块属于同一父块(或父块的父块、或父块的父块的父块等);

为了获得父块而执行的分割操作的数量等于阈值减1;

同一父块的当前分割模式为四叉树;

两个叶块的左上样本的两个垂直坐标都大于同一父块的左上样本的垂直坐标加上同一父块的高度的一半。

在一个示例中,如果满足以下所有条件,则两个叶块被视为处于同一合并估计区域或同一mpm估计区域:

两个叶块属于同一父块(或父块的父块、或父块的父块的父块等);

为了获得父块而执行的分割操作的数量等于或大于阈值。

在另一个示例中,如果不满足上述条件之一,则两个叶块被视为不处于同一合并估计区域或同一mpm估计区域。

如果两个叶块被视为处于同一mpm估计区域,则按照译码顺序将第一块的帧内预测模式设置为不可用于第二块进行预测。如果两个叶块不被视为处于同一mpm估计区域,则将第一块的帧内预测模式设置为可用于第二块进行预测。

在一个实施例中,如果两个叶块(块1和块2)被确定为处于同一mpm估计区域,则基于mpmer的空间相邻块来构建块1和块2的mpm列表,并且块2不使用块1的帧内预测模式。mpmer的空间相邻块是在空间上与mpmer相邻并且在mpmer外部的块。因此,在块1和块2的mpm列表构建过程中使用mpmer的空间相邻块的帧内预测模式,但是在块2的mpm列表构建中不使用块1的帧内预测模式(假设译码顺序为块1,然后是块2)。

在一个实施例中,如果两个叶块(块1和块2)被确定为处于同一mpm估计区域,则基于mpmer的空间相邻块来构建单个mpm列表,并且两个块使用该mpm列表。在此实施例中,块1和块2使用基于mpmer的空间相邻块来构建的的同一mpm列表。

根据解决方案15,基于为了获得父块而执行的四叉树、二叉树和三叉树分割操作的数量来执行阈值比较。例如,假设执行获得父块的四叉树分割操作的次数由qtdepththr表示,执行的二叉树和三叉树分割操作的次数由mttdepth共同表示(术语qtdepth和mttdepth是根据可从网站http://phenix.it-sudparis.eu/jvet获得的jvet-l1001-v1通用视频译码(草案3)使用的。qtdepth表示四叉树分区深度,它等于执行以获得块的四叉树分割操作的数量。mttdepth表示多类型树分区深度,它等于执行以获得块的二叉树和三叉树分割操作的数量。)例如,在jvet-l1001-v1中,对于由二叉树分割产生的子块,mttdepth增加1。对于三叉树分割产生的中间(大)子块,mttdetph增加1。对于由三叉树分割导致的机器人侧(小的)子块,mttdepth增加2。然后根据解决方案15,如果qtdepth加k乘以mttdepth的值大于指定的阈值(k×qtdepth+mttdepth>thr),则属于同一父块的任何两个叶块都被视为处于同一mer。k和thr可以是整数0、1、2、……、k,并且阈值可以是预定的或在码流中指示。在一个优选实现方式中,k具有预定值2。

可使用图10和图11来解释四叉树、二叉树和三叉树分割操作的数量计数。作为示例,通过块50的一个四叉树分割获得块34。根据图11,块34是叶块,该叶块通过一个四叉树分割操作以及零个三叉树和零个二叉树分割操作获得。

根据图11,通过两次四叉树分割操作和一次二叉树分割操作获得块45。首先使用四叉树分割来分割块50(即,ctb)以获得块58,使用四叉树分割来分割块58以获得块62,最后使用二叉树分割来分割块62以获得块45。

注意,相对于被视为是分割操作的起点的译码树块(ctb)来计数分割操作的数量。

解决方案15的解释:伴随图25呈现解决方案15的流程图。注意,假设块1按照译码顺序在块2之前。根据解决方案15,首先以递归方式确定小于块1和块2的指定阈值“thr”的父块。parent1.1表示块1的父块,parent1.2表示parent1.1的父块,依此类推。同样,parent2.1表示块2的父块。

如果块1的父块与块2的父块的块相同,并且如果父块的尺寸小于thr,则块2的运动信息设置为块1无法进行预测。

类似地,图25也可用于解释解决方案15,其中,将尺寸比较替换为基于为了获得父块而执行的四叉树、二叉树和三叉树分割操作的数量的比较。

解决方案16:

根据解决方案16,基于以下步骤,两个叶块被视为处于同一合并估计区域,或者基于以下步骤,两个叶块被视为处于同一mpm估计区域:

步骤1:将块1(或块2)的ctu定义为块1的父块。

步骤2:如果父块不包含块2(或块1)则两个叶节点块不被视为处于同一合并估计区域或同一mpm估计区域。不执行以下步骤,并且检查过程终止。

否则(如果父块同时包含块1和块2),如果父块包含块2(或块1),则检查父块的当前分割模式,并按以下方式检查父块尺寸。

步骤3:

·如果父块的当前分割模式是二叉树分割,并且为了获得父块而执行的分割操作的数量等于阈值,则两个叶节点块被视为处于同一合并估计区域或同一mpm估计区域,则将父块定义为mer或mpmer;

·否则,如果父块的当前分割模式是三叉树分割,并且为了获得父块而执行的分割操作的数量等于该阈值减1,则两个叶节点块被视为处于同一合并估计区域或同一mpm中在估计区域,将父块定义为mer或mpmer;

·否则,如果父块的当前分割模式是四叉树分割,并且为了获得父块而执行的分割操作的数量等于该阈值减1,并且两个叶节点块都位于父块的上半部分,则两个叶节点块被视为处于同一合并估计区域或同一mpm估计区域,将父块的上半部分定义为mer或mpmer;

·否则,如果父块的当前分割模式是四叉树分割,并且为了获得父块而执行的分割操作的数量等于该阈值减1,并且两个叶节点块都位于父块的下半部中,则两个叶节点块被视为处于同一合并估计区域或同一mpm估计区域,将父块的下半部分定义为mer或mpmer。

步骤4:如果在步骤3中未满足任何条件(列为项目符号项),则根据父块的当前分割模式分割父块并将包含块1(或块2)的所得子块更新为父块,转到步骤2,以递归方式检查更新后的父块。

步骤1:将块1(或块2)的ctu定义为块1的父块。

步骤2:如果父块不包含块2(或块1),则两个叶节点块不被视为处于同一合并估计区域;如果父块不包含块2(或块1),则两个叶节点块不被视为处于同一mpm估计区域;

否则,如果父块包含块2(或块1),则检查父块的当前分割模式,并检查父块尺寸。

步骤3:如果父块的当前分割模式是二叉树分割,并且为了获得父块而执行的分割操作的数量等于阈值,则两个叶节点块被视为处于同一合并估计区域或同一mpm估计区域,则将父块定义为mer或mpmer;

否则,如果父块的当前分割模式是三叉树分割,并且为了获得父块而执行的分割操作的数量等于阈值减1,则两个叶节点块被视为处于同一合并估计区域或同一mpm中在估计区域,将父块定义为mer或mpmer;

否则,如果父块的当前分割模式是四叉树分割,并且为了获得父块而执行的分割操作的数量等于阈值减1,并且两个叶节点块都位于父块的上半部分,则两个叶节点块被视为处于同一合并估计区域或同一mpm估计区域,将父块的上半部分定义为mer或mpmer;

否则,如果父块的当前分割模式是四叉树分割,并且为了获得父块而执行的分割操作的数量等于阈值减1,并且两个叶节点块都位于父块的下半部中,则两个叶节点块被视为处于同一合并估计区域或同一mpm估计区域,将父块的下半部分定义为mer或mpmer;

否则,以父块的当前分割模式分割父块,并将包含块1(或块2)的结果子块设置为更新的父块,并在步骤2中递归检查更新的父块。

可通过使用左上方样本的坐标来确定两个叶节点块的位置。例如,如果两个叶块的左上样本的两个垂直坐标都小于父块的左上样本的垂直坐标加上父块的高度的一半,则两个叶块被视为包括在父块的上半部分中。两个叶节点块位于父块的左半部分,如果两个叶块的左上样本的两个垂直坐标都大于父块的左上样本的垂直坐标加上父块的高度的一半,则两个叶块被视为包括在父块的下半部分中。

在另一个示例中,如果不满足上述条件,则两个叶块被视为不处于同一合并估计区域或同一mpm估计区域。

如果两个叶块被视为处于同一mpm估计区域,则按照译码顺序将第一块的帧内预测模式设置为不可用于第二块进行预测。如果两个叶块不被视为处于同一mpm估计区域,则将第一块的帧内预测模式设置为可用于第二块进行预测。

在一个实施例中,如果两个叶块(块1和块2)被确定为处于同一mpm估计区域,则基于mpmer的空间相邻块来构建块1和块2的mpm列表,并且块2不使用块1的帧内预测模式。mpmer的空间相邻块是在空间上与mpmer相邻并且在mpmer外部的块。因此,在块1和块2的mpm列表构建过程中使用mpmer的空间相邻块的帧内预测模式,但是在块2的mpm列表构建中不使用块1的帧内预测模式(假设译码顺序为块1,然后是块2)。

在一个实施例中,如果两个叶块(块1和块2)被确定为处于同一mpm估计区域,则基于mpmer的空间相邻块来构建单个mpm列表,并且两个块使用该mpm列表。在此实施例中,块1和块2使用基于mpmer的空间相邻块来构建的的同一mpm列表。

根据解决方案16,基于为了获得父块而执行的四叉树、二叉树和三叉树分割操作的数量来执行阈值比较。例如,假设执行获得父块的四叉树分割操作的次数由qtdepththr表示,执行的二叉树和三叉树分割操作的次数由mttdepth共同表示(术语qtdepth和mttdepth是根据可从网站http://phenix.it-sudparis.eu/jvet获得的jvet-l1001-v1通用视频译码(草案3)使用的。qtdepth表示四叉树分区深度,它等于执行以获得块的四叉树分割操作的数量。mttdepth表示多类型树分区深度,它等于执行以获得块的二叉树和三叉树分割操作的数量。)例如,在jvet-l1001-v1中,对于由二叉树分割产生的子块,mttdepth增加1。对于三叉树分割产生的中间(大)子块,mttdetph增加1。对于由三叉树分割导致的机器人侧(小的)子块,mttdepth增加2。然后根据解决方案16,如果qtdepth加k乘以mttdepth的值大于指定的阈值(k×qtdepth+mttdepth>thr),则属于同一父块的任何两个叶块都被视为处于同一mer。k和thr可以是整数0、1、2、……、k,并且阈值可以是预定的或在码流中指示。在一个优选实现方式中,k具有预定值2。

可使用图10和图11来解释四叉树、二叉树和三叉树分割操作的数量计数。作为示例,通过块50的一个四叉树分割获得块34。根据图11,块34是叶块,该叶块通过一个四叉树分割操作以及零个三叉树和零个二叉树分割操作获得。

根据图11,通过两次四叉树分割操作和一次二叉树分割操作获得块45。首先使用四叉树分割来分割块50(即,ctb)以获得块58,使用四叉树分割来分割块58以获得块62,最后使用二叉树分割来分割块62以获得块45。

注意,相对于被视为是分割操作的起点的译码树块(ctb)来计数分割操作的数量。

解决方案16的解释:伴随图27呈现解决方案16的流程图。注意,假设块1按照译码顺序在块2之前。根据解决方案16,首先以递归方式确定小于块1和块2的指定阈值“thr”的父块。parent1.1表示块1的父块,parent1.2表示parent1.1的父块,依此类推。同样,parent2.1表示块2的父块。

如果块1的父块与块2的父块的块相同,并且如果父块的尺寸小于thr,则块2的运动信息设置为块1无法进行预测。

类似地,图27也可用于解释解决方案16,其中,将尺寸比较替换为基于为了获得父块而执行的四叉树、二叉树和三叉树分割操作的数量的比较。

解决方案17:

根据解决方案17,基于以下步骤,两个叶块被视为处于同一合并估计区域,或者基于以下步骤,两个叶块被视为处于同一mpm估计区域:

步骤1:将块1(或块2)定义为块1(或块2)的当前父块。

步骤2:如果为了获得父块而执行的分割操作的数量大于阈值,则将当前父块的父块定义为块1(或块2)的更新后的当前父块;

否则,确定块2(或块1)是否包含在块1(或块2)的当前父块中。

步骤3:如果当前父块不包含块2,则两个叶节点块不被视为处于同一合并估计区域或同一mpm估计区域;

否则,检查为了获得父块而执行的分割操作的数量以及当前父对象的当前分割模式。

步骤4:为了获得父块而执行的分割操作的数量大于阈值,则两个叶节点块被视为处于同一合并估计区域或同一mpm中在估计区域,将当前父块设置为mer或mpmer;

否则,如果为了获得父块而执行的分割操作的数量大于阈值减1,并且当前分割模式为三叉树,则两个叶节点块被视为处于同一合并估计区域或同一mpm估计区域,将当前父块设置为mer或mpmer;

否则,如果为了获得父块而执行的分割操作的数量大于阈值减1,并且当前分割模式为四叉树,则检查当前父块中两个叶节点块的位置。

步骤5:如果两个叶节点块均位于当前父块的上半部分中,则两个叶节点块被视为处于同一合并估计区域或同一mpm估计区域,将当前父块设置为mer或mpmer;

否则,如果两个叶节点块均位于当前父块的下半部分,则两个叶节点块被视为处于同一合并估计区域或同一mpm估计区域,将当前父块的下半部分设置为mer或mpmer;

否则,两个叶节点块不被视为处于同一合并估计区域或同一mpm估计区域。

可通过使用左上方样本的坐标来确定两个叶节点块的位置。例如,如果两个叶块的左上样本的两个垂直坐标都小于父块的左上样本的垂直坐标加上父块的高度的一半,则两个叶块被视为包括在父块的上半部分中。两个叶节点块位于父块的左半部分,如果两个叶块的左上样本的两个垂直坐标都大于父块的左上样本的垂直坐标加上父块的高度的一半,则两个叶块被视为包括在父块的下半部分中。

在另一个示例中,如果不满足上述条件,则两个叶块被视为不处于同一合并估计区域或同一mpm估计区域。

如果两个叶块被视为处于同一mpm估计区域,则设置第一块的译码顺序的运动信息不可用于第二块的预测。如果两个叶块不被视为处于同一mpm估计区域,则将第一块的帧内预测模式设置为可用于第二块进行预测。

在一个实施例中,如果两个叶块(块1和块2)被确定为处于同一mpm估计区域,则基于mpmer的空间相邻块来构建块1和块2的mpm列表,并且块2不使用块1的帧内预测模式。mpmer的空间相邻块是在空间上与mpmer相邻并且在mpmer外部的块。因此,在块1和块2的mpm列表构建过程中使用mpmer的空间相邻块的帧内预测模式,但是在块2的mpm列表构建中不使用块1的帧内预测模式(假设译码顺序为块1,然后是块2)。

在一个实施例中,如果两个叶块(块1和块2)被确定为处于同一mpm估计区域,则基于mpmer的空间相邻块来构建单个mpm列表,并且两个块使用该mpm列表。在此实施例中,块1和块2使用基于mpmer的空间相邻块来构建的的同一mpm列表。

根据解决方案17,基于为了获得父块而执行的四叉树、二叉树和三叉树分割操作的数量来执行阈值比较。例如,假设执行获得父块的四叉树分割操作的次数由qtdepththr表示,执行的二叉树和三叉树分割操作的次数由mttdepth共同表示(术语qtdepth和mttdepth是根据可从网站http://phenix.it-sudparis.eu/jvet获得的jvet-l1001-v1通用视频译码(草案3)使用的。qtdepth表示四叉树分区深度,它等于执行以获得块的四叉树分割操作的数量。mttdepth表示多类型树分区深度,它等于执行以获得块的二叉树和三叉树分割操作的数量。)例如,在jvet-l1001-v1中,对于由二叉树分割产生的子块,mttdepth增加1。对于三叉树分割产生的中间(大)子块,mttdetph增加1。对于由三叉树分割导致的机器人侧(小的)子块,mttdepth增加2。然后根据解决方案13,如果qtdepth加k乘以mttdepth的值大于指定的阈值(k×qtdepth+mttdepth>thr),则属于同一父块的任何两个叶块都被视为处于同一mpmer中。k和thr可以是整数0、1、2、……、k,并且阈值可以是预定的或在码流中指示。在一个实现方式中,k具有预定值2。

可使用图10和图11来解释四叉树、二叉树和三叉树分割操作的数量计数。作为示例,通过块50的一个四叉树分割获得块34。根据图11,块34是叶块,该叶块通过一个四叉树分割操作以及零个三叉树和零个二叉树分割操作获得。

根据图11,通过两次四叉树分割操作和一次二叉树分割操作获得块45。首先使用四叉树分割来分割块50(即,ctb)以获得块58,使用四叉树分割来分割块58以获得块62,最后使用二叉树分割来分割块62以获得块45。

注意,相对于被视为是分割操作的起点的译码树块(ctb)来计数分割操作的数量。

解决方案17的解释:伴随图26呈现解决方案17的流程图。注意,假设块1按照译码顺序在块2之前。根据解决方案17,首先以递归方式确定小于块1和块2的指定阈值“thr”的父块。parent1.1表示块1的父块,parent1.2表示parent1.1的父块,依此类推。同样,parent2.1表示块2的父块。

如果块1的父块与块2的父块的块相同,并且如果父块的尺寸小于thr,则块2的运动信息设置为块1无法进行预测。

类似地,图23也可用于解释解决方案17,其中,将尺寸比较替换为基于为了获得父块而执行的四叉树、二叉树和三叉树分割操作的数量的比较,比较。

解决方案18:

根据解决方案18,基于以下步骤,两个叶节点块(块1和块2)被视为处于同一mpm估计区域:

步骤1:将块1(或块2)的ctu定义为块1的父块。

步骤2:如果父块不包含块2(或块1),则两个叶节点块不被视为处于同一mpm估计区域。不执行以下步骤,并且检查过程终止;

否则(如果父块同时包含块1和块2),如果父块包含块2(或块1),则按以下方式检查父块尺寸。

步骤3:

·如果父块的尺寸等于阈值,则确定两个叶节点块(块1和块2)处于同一mpm估计区域,将父块定义为mpmer。检查过程终止。

步骤4:

如果在步骤3中确定父块的尺寸不等于该阈值:

·如果父块的当前分割模式是二叉树分割,则根据父块的当前分割模式分割父块(二叉树分割),并更新包含块1(或块2)的子块作为父块,转到步骤2,以递归方式检查更新后的父块。

·如果父块的当前分割模式是三叉树分割,并且父块尺寸等于该阈值乘以2,则确定两个叶节点块处于同一mpm估计区域,将父块定义为mpmer。

·如果父块的当前分割模式是四叉树分割,并且父块尺寸等于该阈值乘以2,并且两个叶节点块都位于父块的上半部分,则两个叶节点块被确定为处于同一mpm估计区域,将父块的上半部分定义为mpmer。

·如果父块的当前分割模式是四叉树分割,并且父块尺寸等于该阈值乘以2,并且两个叶节点块都位于父块的下半部分,则两个叶节点块被确定为处于同一mpm估计区域,将父块的下半部分定义为mpmer。

步骤5:如果在步骤3和步骤4中都不满足任何条件(列为项目符号项),则根据父块的当前分割模式分割父块(二叉树分割),并更新包含块1(或块2)的子块作为父块,转到步骤2,以递归方式检查更新后的父块。根据父块的分割方式将父块分割成子块后,如果两个块(块1和块2)不处于同一子块中,则块1和块2被确定为不属于同一mpmer,并且检查过程终止。

可通过使用左上方样本的坐标来确定两个叶节点块的位置。例如,如果两个叶块的左上样本的两个垂直坐标都小于父块的左上样本的垂直坐标加上父块的高度的一半,则两个叶块为被视为包括在父块的上半部分中。两个叶节点块位于父块的左半部分,如果两个叶块的左上样本的两个垂直坐标都大于父块的左上样本的垂直坐标加上父块的高度的一半,则两个叶块被视为包括在父块的下半部分中。

在另一个示例中,如果不满足上述条件,则两个叶块被视为不处于同一mpm估计区域。

在一个实施例中,如果确定两个叶块处于同一mpm估计区域,则将第二叶块的译码顺序中的第一叶块的帧内预测模式设置为不可用于第二块预测,否则,将第一叶的帧内预测模式设置为可用于第二块进行预测。

在一个实施例中,如果两个叶块(块1和块2)被确定为处于同一mpm估计区域,则基于mpmer的空间相邻块来构建块1和块2的mpm列表,并且块2不使用块1的帧内预测模式。mpmer的空间相邻块是在空间上与mpmer相邻并且在mpmer外部的块。因此,在块1和块2的mpm列表构建过程中使用mpmer的空间相邻块的帧内预测模式,但是在块2的mpm列表构建中不使用块1的帧内预测模式(假设译码顺序为块1,然后是块2)。

在一个实施例中,如果两个叶块(块1和块2)被确定为处于同一mpm估计区域,则基于mpmer的空间相邻块来构建单个mpm列表,并且两个块使用该mpm列表。在此示例中,块1和块2使用同一mpm列表,基于mpmer的空间相邻块来构建mpm列表。

注意,由于递归分割过程,叶块可能在不同的层次结构级别(直接父级、父级的父级等)上具有多个父块。根据解决方案18,如果存在包含两个叶块的至少一个父块(在任何层次结构级别上),则它们(两个叶块)被视为属于同一父块。此外,两个叶块的层次结构级别可能不同,这意味着从父块开始以获得叶块的分割操作的数量对于两个叶块可能会有所不同。

根据一个实现方式,以上示例中提到的阈值被计算为父译码块内的像素样本的数量,该数量被计算为宽度乘以该译码块的高度。根据另一实现方式,阈值是正整数,并且基于块的宽度来计算块的尺寸。根据另一实现方式,阈值是正整数,并且基于块的的宽度或高度来计算块的尺寸。通常,基于块的宽度和高度而计算块的尺寸,并同时考虑到这两个因素。

在一个实施例中,阈值为正整数,其中,阈值等于(2n)的2幂或(2n+1)的2幂,n为正整数,n的下限为log2(mincbsize)。log2()是二进制对数缩放运算。mincbsize表示译码器的最小允许译码块尺寸,该尺寸在码流中已预定义或指示。在vvc标准草案文档jvet-l1001-v1,通用视频译码(草案3)中,定义并使用了mincbsize。

解决方案19:

根据解决方案19,基于以下步骤,两个叶块被视为处于同一mpm估计区域:

步骤1:将块1(或块2)的ctu定义为块1的父块。

步骤2:如果父块不包含块2(或块1),则两个叶节点块不被视为处于同一mpm估计区域。不执行以下步骤,并且检查过程终止;

否则(如果父块同时包含块1和块2),如果父块包含块2(或块1),则按以下方式检查父块尺寸。

步骤3:

·如果为了获得父块而执行的分割操作的数量等于阈值,则两个叶节点块(块1和块2)确定为处于同一mpm估计区域,并且将父块定义为mpmer。检查过程终止。

步骤4:

如果为了获得父块而执行的分割操作的数量不等于步骤3中的该阈值:

·如果父块的当前分割模式是二叉树分割,则根据父块的当前分割模式分割父块(二叉树分割),并更新包含块1(或块2)的子块作为父块,转到步骤2,以递归方式检查更新后的父块。

·如果父块的当前分割模式是三叉树分割,并且为了获得父块而执行的分割操作的数量等于阈值减1,则两个叶节点块被确定为处于同一mpm估计区域,将父块定义为mpmer。

·如果父块的当前分割模式是四叉树分割,并且为了获得父块而执行的分割操作的数量等于该阈值减1,并且两个叶节点块都位于父块的上半部分,则两个叶节点块被确定为处于同一mpm估计区域,将父块的上半部分定义为mpmer。

·如果父块的当前分割模式是四叉树分割,并且为了获得父块而执行的分割操作的数量等于该阈值减1,并且两个叶节点块都位于父块的下半部分,则两个叶节点块被确定为处于同一mpm估计区域,将父块的上半部分定义为mpmer。

步骤5:如果在步骤3和步骤4中都不满足任何条件(列为项目符号项),则根据父块的当前分割模式分割父块(二叉树分割),并更新包含块1(或块2)的子块作为父块,转到步骤2,以递归方式检查更新后的父块。根据父块的分割方式将父块分割成子块后,如果两个块(块1和块2)不处于同一子块中,则块1和块2被确定为不属于同一mpmer,并且检查过程终止。

可通过使用左上方样本的坐标来确定两个叶节点块的位置。例如,如果两个叶块的左上样本的两个垂直坐标都小于父块的左上样本的垂直坐标加上父块的高度的一半,则两个叶块被视为包括在父块的上半部分中。两个叶节点块位于父块的左半部分,如果两个叶块的左上样本的两个垂直坐标都大于父块的左上样本的垂直坐标加上父块的高度的一半,则两个叶块被视为包括在父块的下半部分中。

在另一个示例中,如果不满足上述条件,则两个叶块被视为不处于同一mpm估计区域。

如果两个叶块被视为处于同一mpm估计区域,则按照译码顺序将第一块的帧内预测模式设置为不可用于第二块进行预测。如果两个叶块不被视为处于同一mpm估计区域,则将第一块的帧内预测模式设置为可用于第二块进行预测。

在一个实施例中,如果两个叶块(块1和块2)被确定为处于同一mpm估计区域,则基于mpmer的空间相邻块来构建块1和块2的mpm列表,并且块2不使用块1的帧内预测模式。mpmer的空间相邻块是在空间上与mpmer相邻并且在mpmer外部的块。因此,在块1和块2的mpm列表构建过程中使用mpmer的空间相邻块的帧内预测模式,但是在块2的mpm列表构建中不使用块1的帧内预测模式(假设译码顺序为块1,然后是块2)。

在一个实施例中,如果两个叶块(块1和块2)被确定为处于同一mpm估计区域,则基于mpmer的空间相邻块来构建单个mpm列表,并且两个块使用该mpm列表。在此实施例中,块1和块2使用基于mpmer的空间相邻块来构建的的同一mpm列表。

根据解决方案19,基于为了获得父块而执行的四叉树、二叉树和三叉树分割操作的数量来执行阈值比较。例如,假设执行获得父块的四叉树分割操作的次数由qtdepththr表示,执行的二叉树和三叉树分割操作的次数由mttdepth共同表示(术语qtdepth和mttdepth是根据可从网站http://phenix.it-sudparis.eu/jvet获得的jvet-l1001-v1通用视频译码(草案3)使用的。qtdepth表示四叉树分区深度,它等于执行以获得块的四叉树分割操作的数量。mttdepth表示多类型树分区深度,它等于执行以获得块的二叉树和三叉树分割操作的数量。)例如,在jvet-l1001-v1中,对于由二叉树分割产生的子块,mttdepth增加1。对于三叉树分割产生的中间(大)子块,mttdetph增加1。对于由三叉树分割导致的机器人侧(小的)子块,mttdepth增加2。然后根据解决方案19,如果qtdepth加k乘以mttdepth的值大于指定的阈值(k×qtdepth+mttdepth>thr),则属于同一父块的任何两个叶块都被视为处于同一mer。k和thr可以是整数0、1、2、……、k,并且阈值可以是预定的或在码流中指示。在一个实现方式中,k具有预定值2。

可使用图10和图11来解释四叉树、二叉树和三叉树分割操作的数量计数。作为示例,通过块50的一个四叉树分割获得块34。根据图11,块34是叶块,该叶块通过一个四叉树分割操作以及零个三叉树和零个二叉树分割操作获得。

根据图11,通过两次四叉树分割操作和一次二叉树分割操作获得块45。首先使用四叉树分割来分割块50(即,ctb)以获得块58,使用四叉树分割来分割块58以获得块62,最后使用二叉树分割来分割块62以获得块45。

注意,相对于被视为是分割操作的起点的译码树块(ctb)来计数分割操作的数量。

解决方案18和19的解释:

图29示出解决方案18和19的流程图。为了确定两个块是否属于同一mpmer(以及两个块都属于的mpmer),执行以下有序步骤:

根据2901,将包含块1的ctu设置为parentblock。

根据2902,检查parentblock是否包括块2。如果不包括,则确定块1和2不属于同一mpmer(2914)。如果包括,则检查parentblock的尺寸。

如果parentblock的尺寸(或为获得parentblock而执行的分割操作的数量)等于阈值(根据2903),则将parentblock设置为mpmer(根据2905)并且确定块1和块2处于同一mpmer(2912)中。否则(如果检查步骤2903的结果为否),则检查parentblock的分割模式。

如果在步骤2904中parentblock的分割模式是二叉树分割(=bt分支),则分割parentblock并将包含块1的子块设置为parentblock(根据2916)。以步骤2902开始,针对新的parentblock重复检查过程。

如果在步骤2904中parentblock的分割模式是三叉树分割(=tt分支),并且如果parentblock的尺寸等于thr乘以2(根据步骤2924),则将parentblock设置为mer(根据2905)并且确定块1和块2处于同一mpmer中(2912)。否则(如果检查步骤2924的结果是否),则根据三叉树分割对parentblock进行分割,并且将包含块1的子块设置为parentblock(根据2916)。以步骤2902开始,针对新的parentblock重复检查过程。

如果在步骤2904中parentblock的分割模式是四叉树分割(=qt分支),并且如果parentblock的尺寸等于thr乘以2(根据步骤2906),则执行下一个检查步骤(2907)。否则(如果检查步骤2906的结果是否),则根据四叉树分割来分割parentblock,并且将包含块1的子块设置为parentblock(根据2916)。以步骤2902开始,针对新的parentblock重复检查过程。

步骤2907检查块1和2是否都位于父块的上半部分。如果确定为是,则将parentblock的上半部分设置为mpmer(2910),并确定块1和块2处于同一mpmer(2912)中。

如果2907中的检查步骤的结果是否,则执行2908。

步骤2908检查块1和2是否都位于父块的下半部分。如果确定为是,则将parentblock的下半部分设置为mpmer(2911),并确定块1和块2处于同一mpmer(2912)中。如果在2908中的检查步骤的结果是否,则根据四叉树分割来分割parentblock,并且将包含块1的子块设置为parentblock(根据2916)。

解决方案20:

根据解决方案12至19,如果确定的当前父块的当前分割模式是四叉树,并且如果两个叶节点块都位于父块的左半部分,则将父块的左半部分定义为mpmer。

根据解决方案12至19,如果确定的当前父块的当前分割模式是四叉树,并且如果两个叶节点块都位于父块的右半部分,则定义父块的右半部分作为mpmer。

可通过使用左上方样本的坐标来确定两个叶节点块的位置。例如,如果两个叶块的左上样本的两个水平坐标都小于父块的左上样本的水平坐标加上父块的宽度的一半,则两个叶块确定在父块的左半部分。如果两个叶块的左上样本的两个水平坐标都大于或等于父块的左上样本的水平坐标加上父块宽度的一半,则两个叶节点确定块位于父块的右半部分。

解决方案21

根据解决方案12至19,如果确定的当前父块的当前分割模式是四叉树,则叶节点块之一位于当前父块的左上四分之一,叶节点块的另一个位于当前父块的右下四分之一,将左上四分之一加上右下四分之一区域定义为mpmer。

可通过使用左上方样本的坐标来确定两个叶节点块的位置。例如,如果两个叶块的左上样本的水平坐标小于父块的左上样本的水平坐标加上父块宽度的一半,则顶部的垂直坐标两个叶块的左样本小于父块左上样本的垂直坐标加上父块高度的一半,此块位于父块的左上四分之一。

如果两个叶块的左上样本的水平坐标大于父块的左上样本的水平坐标加上父块宽度的一半,则顶部的垂直坐标两个叶块的左样本大于父块左上样本的垂直坐标加上父块高度的一半,此块位于父块的右下四分之一处。

解决方案22

根据解决方案12至19,如果确定的当前父块的当前分割模式是四叉树,则叶节点块之一位于当前父块的左下四分之一,叶节点块的另一个位于当前父块的右上四分之一,将左下四分之一加上右上四分之一区域定义为mpmer。

可通过使用左上方样本的坐标来确定两个叶节点块的位置。例如,如果两个叶块的左上样本的水平坐标小于父块的左上样本的水平坐标加上父块宽度的一半,则顶部的垂直坐标两个叶块的左样本大于父块左上样本的垂直坐标加上父块高度的一半,此块位于父块的左下四分之一。

如果两个叶块的左上样本的水平坐标大于父块的左上样本的水平坐标加上父块宽度的一半,则顶部的垂直坐标两个叶块的左样本小于父块左上样本的垂直坐标加上父块高度的一半,此块位于父块的右上四分之一处。

解决方案23:

根据解决方案12至19,如果确定的当前父块的当前分割模式是四叉树,则将整个父块定义为mpmer。换句话说,当前分割模式等于四叉树分割的父块的对应检查操作将交替更改如下:

“否则,如果父块的当前分割模式是四叉树分割,并且父块尺寸等于该阈值乘以2,并且两个叶节点块都位于父块中,则两个叶节点块被视为处于同一合并估计区域,并且将父块定义为mpmer。”

其他步骤相同,并为简洁起见在此不再重复。

解决方案24:

根据解决方案12至19,如果确定的当前父块的当前分割模式是三叉树,则父块尺寸等于该阈值乘以2,并且如果两个叶节点块都位于父块的左1/4部分,则将父块的左1/4部分定义为mpmer,并确定两个块(块1和2)处于同一mpmer中。

根据解决方案12至19,如果确定的当前父块的当前分割模式是三叉树,则父块尺寸等于该阈值乘以2,并且如果两个叶节点块都位于父块的右3/4部分,则将父块的右3/4部分定义为mpmer,并确定两个块(块1和2)处于同一mpmer中。

可通过使用左上方样本的坐标来确定两个叶节点块的位置。例如,如果两个叶块的左上样本的两个水平坐标都小于父块的左上样本的水平坐标加上父块的宽度的1/4,则两个叶块确定在父块的左1/4。如果两个叶块的左上样本的两个水平坐标都大于或等于父块的左上样本的水平坐标加上父块宽度的1/4,则两个叶节点确定块位于父块的右3/4。

解决方案25:

根据解决方案12至19,如果确定的当前父块的当前分割模式是三叉树,并且如果两个叶节点块都位于父块的上1/4部分,则定义父块的上1/4部分作为mpmer。

根据解决方案12至19,如果确定的当前父块的当前分割模式是三叉树,并且如果两个叶节点块都位于父块的下3/4部分,则定义父块的下3/4部分作为mpmer。

解决方案26:根据解决方案24和25,可将左(上)1/4到右(下)3/4分区规则更改为左(上)3/4和右(下)1/4。

解决方案27:

根据上述解决方案,如果确定两个叶块(块1和块2)处于同一合并估计区域,则基于所确定的mpmer(包括块1和块2)的两个空间相邻块而构建块1和块2的合并列表,并且块1的运动信息未被块2使用。mer的空间相邻块是在空间上与mer相邻并且在mer外部的块。因此,在块1和块2的合并列表构建过程中使用了mpmer的空间相邻块的运动信息,但是在块2的合并列表构建中未使用块1的运动信息(假设译码顺序是块1,然后是块2)。

或者,如果确定两个叶块(块1和块2)处于同一mpm估计区域,则基于所确定的mpmer(包括块1和块2)的空间相邻块而构建单个mpm列表,并且两个块使用该mpm列表(根据该mpm列表来执行帧间预测过程)。该mpm列表可称为共享mpm列表,因为mpm列表由两个块共享。在此替代方案中,相比于先前替代方案,块1和块2使用基于mpmer的空间相邻块来构建的同一mpm列表。

解决方案10至27描述如何确定两个块属于同一mer。根据解决方案10至27中的任何一个:

如果确定两个叶块处于同一合并估计区域,则将第一叶块的译码顺序的运动信息设置为不可用于第二块的预测。否则,将第一叶块的运动信息设置为可用于第一块的预测。

或者,如果确定两个叶块(块1和块2)处于同一合并估计区域,则构建一个合并列表(表示为“共享合并列表”),并且使用共享合并列表来预测两个块。换句话说,如果确定两个块包括在同一mer中,则在块1和块2的预测中使用单个合并列表,而共享合并列表不包括块1和块2的运动信息。否则(如果确定块1和块2不包括在同一mer中),则为块1和块2构建两个合并列表,而块2的合并列表可能包括块1的运动信息(假设译码顺序是块1,然后是块2)。

解决方案10至27还可用于mpm估计区域确定。换句话说,根据解决方案10至27中的任何一个,mpm估计区域描述如何确定两个块属于同一mpm区域。

如果确定两个叶块处于同一mpm估计区域,则按译码顺序设置第一叶块的帧内模式不可用于第二块进行预测。否则,将第一叶块的帧内模式设置为可用于第一块的预测。

或者,如果两个叶块(块1和块2)都在帧内预测模式中使用,或者在帧内帧中都使用,并且它们处于同一mpm估计区域。代替为块1和块2都构建2个单独的mpm列表,在该实施例中,仅基于mpm估计区域构建一个mpm列表,构建的mpm列表用于预测两个块的帧内模式。换句话说,如果确定两个块包括在同一mpm估计区域中,则在块1和块2的帧内模式预测中使用单个mpm列表,而共享的mpm列表不包括块1和块2的帧内模式。否则(如果确定块1和块2不包括在同一mpm估计区域中),则为块1和块2构建两个mpm列表,而块2的mpm列表可能包括块1的帧内模式(假设译码顺序为块1,然后是块2)。

通常,如果确定两个块处于同一mer,则一个块的运动信息不能用于第二块的预测。否则(如果确定两个块不包括在同一mer中),则该块之一的运动信息可能会用于第二块的预测。

与解决方案10和11相比,在解决方案12-27中,在一种情况下,对于给定的mer尺寸(取决于样本数),仅需要一个顺序的合并列表构建过程。这意味着,在方法1和方法2的情况下(其中,块1被设置为无法由块2进行预测,该等块被确定为处于同一mer),尽管需要构建2个合并列表,但要使用一个合并列表块1和块2要使用的另一个合并列表,可并行(同时)构建2个合并列表。在方法3的情况下(其中,为整个mer构建单个合并列表,该列表由mer中包含的所有块使用),每个mer的最坏情况下的合并列表构建过程数等于1。以下示例比较解决方案10与12。注意,在下面的示例中,mer尺寸为32个样本。

例如,如果将阈值定义为32,则在一种情况下,需要每32个样本执行1个顺序合并列表构建过程。注意,在方法1和方法2的情况下,可能需要执行多于1个合并列表构建过程,因此,由于所有合并列表构建过程都可并行执行的事实,消除了合并列表的构建过程。在这种情况下,根据解决方案10中公开的方法,假设同一父块具有64个样本,其宽度等于16,高度等于4,并且三叉树是该块的当前分割模式。此同一父块将分成尺寸分别为4×4、8×4和4×4的3个块。基于解决方案10中的合并估计区域定义,这三个子块不位于尺寸为32个样本的同一合并估计区域。因此,这3个子块未被确定为处于同一mer。结果,需要每64个样本执行3个合并列表构建过程(每32个样本1.5个合并列表构建过程),这比每32个样本1个或1个合并列表差。

根据解决方案10,假设同一父块具有64个样本,其宽度等于8,高度等于8并且四叉树是该块的当前分割模式。此同一父块将分成四个块(块尺寸为4×4)。基于解决方案10中的合并估计区域定义,这四个子块不处于同一合并估计区域(因为64大于mer尺寸32)。因此,这4个子块需要按顺序(而非并行)构建4个合并列表。即,每64个样本4个合并列表(每32个样本2个合并列表构建过程),这比每32个样本1个合并列表构建过程差。

另一方面,根据解决方案12,假设同一父块具有64个样本,宽度为16,高度为4,并且三叉树是此块的当前分割模式。此同一父块将分成尺寸分别为4×4、8×4和4×4的3个块。基于解决方案12中的合并估计区域定义,这三个子块被确定为处于同一合并估计区域。因此,这3个子块可并行构建其合并列表(这意味着需要顺序执行一个合并列表的构建过程)。即,每64个样本1个顺序合并列表构建过程(每32个样本0.5个合并列表),这低于每32个样本1个顺序合并列表构建过程的情况。

根据解决方案12,假设同一父块具有64个样本,其宽度为8,高度为8,并且四叉树是该块的当前分割模式。此同一父块将分成四个块(块尺寸为4×4)。基于解决方案12中的合并估计区域定义,上两个子块处于同一合并估计区域,下两个子块位于另一相同的合并估计区域。因此,由于在这种情况下创建了2个mer,因此需要执行2个顺序的合并列表构建过程。即,每64个样本2个合并列表构建过程(每32个样本1个合并列表),等于每32个样本1个合并列表构建过程的情况。

运动补偿单元被配置为获得(例如,接收)帧间预测参数,并基于或使用帧间预测参数执行帧间预测以获得帧间预测块245。由运动补偿单元(图2未示出)执行的运动补偿可涉及基于通过运动估计确定的运动/块矢量来获得或生成预测块,可能执行插值至子像素精度。插值滤波可从已知像素样本生成附加的像素样本,从而潜在地增加可用于对图像块进行译码的候选预测块的数量。在接收到当前图像块的pu的运动矢量时,运动补偿单元246可在参考图像列表中的一个中定位运动矢量指向的预测块。运动补偿单元246还可产生与块和视频条带相关联的语法元素,以供视频解码器300在对视频条带的图像块进行解码中使用。

帧内预测单元254被配置为获得(例如,接收)图像块203(当前图像块)和用于帧内估计的同一图像的一个或多个先前重建的块(例如,重建的相邻块)。编码器200可例如被配置为从多个(预定义)帧内预测模式选择帧内预测模式。

示例1.一种由编码/解码设备实现的用于标记潜在候选译码块的可用性的译码方法,该潜在候选译码块用于当前译码块的帧内预测模式估计,该方法包括:

获得该当前译码块的父块(表示为parentcurr)以及候选译码块的父块(表示为parentcand),其中,通过分割该parentcurr(在示例中,可例如根据递归过程来执行分割过程)来获得该当前译码块,通过分割该parentcand(在示例中,可例如根据递归过程来执行分割过程)来获得该候选译码块;并且

当parentcand和parentcurr是同一块,并且该parentcand的尺寸(在示例中,根据该parentcand的宽乘高来获得该parentcand的该尺寸)等于阈值的两倍,并且该当前块的该父块的分割模式是三叉树分割时,该当前块无法使用该潜在候选译码块的该帧内预测模式。

示例2.一种由编码/解码设备实现的用于标记潜在候选译码块的可用性的译码方法,该潜在候选译码块用于当前译码块的帧内预测模式估计,该方法包括:

获得该当前译码块的父块(表示为parentcurr)以及候选译码块的父块(表示为parentcand),其中,通过分割该parentcurr(在示例中,可例如根据递归过程来执行分割过程)来获得该当前译码块,通过分割该parentcand(在示例中,可例如根据递归过程来执行分割过程)来获得该候选译码块;并且

当parentcand与parentcurr是同一块,该parentcand的尺寸(在示例中,根据该parentcand的宽乘高来获得该parentcand的该尺寸)等于阈值的两倍,该当前译码块的该父块的分割模式是四叉树分割时,该当前译码块和该候选译码块的左上样本的垂直坐标都小于同一父块的左上样本的垂直坐标加上该当前译码块的该父块的高度的一半(或该当前译码块和该候选译码块的左上样本的垂直坐标都小于同一父块的左上样本的水平坐标加上该当前译码块的该父块的宽度的一半)时,该当前块无法使用该潜在候选译码块的该帧内预测模式。

示例3.一种由编码/解码设备实现的用于标记潜在候选译码块的可用性的译码方法,该潜在候选译码块用于当前译码块的合并帧内预测模式,包括:

获得该当前译码块的父块(表示为parentcurr)以及候选译码块的父块(表示为parentcand),其中,通过分割该parentcurr(在示例中,可例如根据递归过程来执行分割过程)来获得该当前译码块,通过分割该parentcand(在示例中,可例如根据递归过程来执行分割过程)来获得该候选译码块;并且

当parentcand与parentcurr是同一块,该parentcand的尺寸(在示例中,根据该parentcand的宽乘高来获得该parentcand的该尺寸)等于阈值的两倍,该当前译码块的该父块的分割模式是四叉树分割,该当前译码块和该候选译码块的左上样本的垂直坐标都大于同一父块的左上样本的垂直坐标加上该当前译码块的该父块的高度的一半(或该当前译码块和该候选译码块的左上样本的垂直坐标都大于同一父块的左上样本的水平坐标加上该当前译码块的该父块的宽度的一半)时,该当前块无法使用该潜在候选译码块的该帧内预测模式。

示例4.一种由编码/解码设备实现的用于标记潜在候选译码块的可用性的译码方法,该潜在候选译码块用于当前译码块的帧内预测模式估计,该方法包括:

获得该当前译码块的父块(表示为parentcurr)以及候选译码块的父块(表示为parentcand),其中,通过分割该parentcurr(在示例中,可例如根据递归过程来执行分割过程)来获得该当前译码块,通过分割该parentcand(在示例中,可例如根据递归过程来执行分割过程)来获得该候选译码块;并且当parentcand和parentcurr是同一块,为获得parentcand块而执行的四叉树、三叉树和二叉树分割操作的数量的函数大于阈值减1,并且该当前块的该父块的分割模式是三叉树分割时,该当前块无法使用该潜在候选译码块的该帧内预测模式

(在示例中,通过k×qtdepth+mttdepth>thr实现获得大于阈值的parentcand块的分割操作的功能,qtdepth表示为获得该parentcand而执行的四叉树分割操作的数量,mttdepth表示为获得该parentcand而执行的二叉树分割和三叉树分割操作的数量,thr是该阈值。

在第二示例中,通过获得“k×四叉树分割数量+二叉树分割数量+m×三叉树分割数量>thr”的数量来实现用于获得大于阈值的parentcand块的分割操作的功能,thr是该阈值)。

示例5.一种由编码/解码设备实现的用于标记潜在候选译码块的可用性的译码方法,该潜在候选译码块用于当前译码块的帧内预测模式估计,该方法包括:

获得该当前译码块的父块(表示为parentcurr)以及候选译码块的父块(表示为parentcand),其中,通过分割该parentcurr(在示例中,可例如根据递归过程来执行分割过程)来获得该当前译码块,通过分割该parentcand(在示例中,可例如根据递归过程来执行分割过程)来获得该候选译码块;并且当parentcand和parentcurr是同一块,为获得parentcand块而执行的四叉树、三叉树和二叉树分割操作的数量的函数大于阈值减1,并且该当前块的该父块的分割模式是四叉树分割,并且该当前译码块和该候选译码块的左上样本的垂直坐标都小于同一父块的左上样本的垂直坐标加上该当前译码块的该父块的高度的一半(或该当前译码块和该候选译码块的左上样本的垂直坐标都小于同一父块的左上样本的水平坐标加上该当前译码块的该父块的宽度的一半)时,该当前块无法使用该潜在候选译码块的该帧内预测模式

(在示例中,通过k×qtdepth+mttdepth>thr实现获得大于阈值的parentcand块的分割操作的功能,qtdepth表示为获得该parentcand而执行的四叉树分割操作的数量,mttdepth表示为获得该parentcand而执行的二叉树分割和三叉树分割操作的数量,thr是该阈值。

在第二示例中,通过“四叉树分割+k×二叉树分割的数量+m×三叉树分割的数量>thr”的数量来实现用于获得大于阈值的parentcand块的分割操作的功能,thr是该阈值)。

示例6.一种由编码/解码设备实现的用于标记潜在候选译码块的可用性的译码方法,该潜在候选译码块用于当前译码块的帧内预测模式估计,该方法包括:

获得该当前译码块的父块(表示为parentcurr)以及候选译码块的父块(表示为parentcand),其中,通过分割该parentcurr(在示例中,可例如根据递归过程来执行分割过程)来获得该当前译码块,通过分割该parentcand(在示例中,可例如根据递归过程来执行分割过程)来获得该候选译码块;并且当parentcand和parentcurr是同一块,为获得parentcand块而执行的四叉树、三叉树和二叉树分割操作的数量的函数大于阈值减1,并且该当前块的该父块的分割模式是四叉树分割,并且该当前译码块和该候选译码块的左上样本的垂直坐标都大于同一父块的左上样本的垂直坐标加上该当前译码块的该父块的高度的一半(或该当前译码块和该候选译码块的左上样本的垂直坐标都大于同一父块的左上样本的水平坐标加上该当前译码块的该父块的宽度的一半)时,该当前块无法使用该潜在候选译码块的该帧内预测模式

(在示例中,通过k×qtdepth+mttdepth>thr实现获得大于阈值的parentcand块的分割操作的功能,qtdepth表示为获得该parentcand而执行的四叉树分割操作的数量,mttdepth表示为获得该parentcand而执行的二叉树分割和三叉树分割操作的数量,thr是该阈值。

在第二示例中,通过“四叉树分割+k×二叉树分割的数量+m×三叉树分割的数量>thr”的数量来实现用于获得大于阈值的parentcand块的分割操作的功能,thr是该阈值)。

示例7.一种由编码/解码设备实现的用于标记潜在候选译码块的可用性的译码方法,该潜在候选译码块用于当前译码块的帧内预测模式估计,该方法包括:

获得该当前译码块的父块(表示为parentcurr)以及候选译码块的父块(表示为parentcand),其中,通过分割该parentcurr(在示例中,可例如根据递归过程来执行分割过程)来获得该当前译码块,通过分割该parentcand(在示例中,可例如根据递归过程来执行分割过程)来获得该候选译码块;并且

当parentcand和parentcurr是同一块并且当parentcand的尺寸(在示例中,根据该parentcand的宽乘高来获得该parentcand的该尺寸)小于或等于阈值时,该当前块无法使用该潜在候选译码块的该帧内预测模式。

示例8.一种由编码/解码设备实现的用于标记潜在候选译码块的可用性的译码方法,该潜在候选译码块用于当前译码块的帧内预测模式估计,该方法包括:

获得该当前译码块的父块(表示为parentcurr)以及候选译码块的父块(表示为parentcand),其中,通过分割该parentcurr(在示例中,可例如根据递归过程来执行分割过程)来获得该当前译码块,通过分割该parentcand(在示例中,可例如根据递归过程来执行分割过程)来获得该候选译码块;

当parentcand和parentcurr是同一块,并且为获得parentcand块而执行的四叉树、三叉树和二叉树分割操作的数量的函数大于阈值时,该当前块无法使用该潜在候选译码块的该帧内预测模式

(在示例中,通过k×qtdepth+mttdepth>thr实现获得大于阈值的parentcand块的分割操作的功能,qtdepth表示为获得该parentcand而执行的四叉树分割操作的数量,mttdepth表示为获得该parentcand而执行的二叉树分割和三叉树分割操作的数量,thr是该阈值。

在第二示例中,通过“四叉树分割+k×二叉树分割的数量+m×三叉树分割的数量>thr”的数量来实现用于获得大于阈值的parentcand块的分割操作的功能,thr是该阈值)。

示例9.一种由编码/解码设备实现的用于标记潜在候选译码块的可用性的译码方法,该潜在候选译码块用于当前译码块的帧内预测模式估计,该方法包括:

获得该当前译码块的父块(表示为parentcurr)以及候选译码块的父块(表示为parentcand),其中,通过分割该parentcurr(在示例中,可例如根据递归过程来执行分割过程)来获得该当前译码块,通过分割该parentcand(在示例中,可例如根据递归过程来执行分割过程)来获得该候选译码块;并且

当parentcand和parentcurr是同一块,该parentcand的尺寸(在示例中,根据该parentcand的宽乘高来获得该parentcand的该尺寸)等于阈值的两倍,并且该当前块的该父块的分割模式是四叉树分割时,该当前块无法使用该潜在候选译码块的该帧内预测模式。

示例10.根据示例1至9中任一项该的方法,其中,当该潜在候选译码块被标记为不可用时,在该当前块的预测中不使用该候选译码块的该帧内预测模式。

示例11.根据示例1至10中任一项该的方法,其中,当使用帧内预测模式来预测该当前块并且该潜在候选译码块被标记为不可用时,在该当前块的预测中不使用该候选译码块的该帧内预测模式。

示例12.根据示例4至11中任一项该的方法,k等于2。

示例13.根据示例12该的方法,k是正整数或零。

示例14.根据示例4至13中任一项该的方法,thr包括在该码流中并具有正整数值或零。

示例15.一种编码器/解码器,包括处理电路,用于执行根据示例1至14中任一项该的方法。

示例16.一种计算机程序产品,包括程序代码,用于执行根据示例1至14中任一项该的方法。

示例17.一种编码器/解码器,包括:

一个或多个处理器;以及

非瞬时性计算机可读存储介质,其与该处理器耦合并存储由该处理器执行的程序,其中,在由该处理器执行时,该程序将该解码器配置为执行根据示例1至14中任一项该的方法。

算术右移位运算定义如下:

x>>y将x以二进制补码整数表示的形式向右移y二进制位。仅当y取非负整数值时定义此函数。由于右移而移位到最高有效位(msb)的位的值等于移位操作之前的x的msb。

可将二进制对数定义为:

二进制对数log2(n)是必须将数字2求幂才能获得值n的幂。

如果x=log2(n),则2x=n

根据以上定义,以下等式成立:

floor(x/mer_width)=x>log2_mer_width,其中,log2_mer_width是mer_width的二进制对数。

编码器200的实施例可被配置为基于优化标准,例如最小残差(例如,提供最类似于当前图像块203的预测块255的帧内预测模式)或最小速率失真,而选择帧内预测模式。

帧内预测单元254还被配置为基于帧内预测参数而为帧内预测块255确定例如所选择的帧内预测模式。在任何情况下,在为块选择帧内预测模式之后,帧内预测单元254还被配置为向熵编码单元270提供帧内预测参数,即,指示用于该块的所选择的帧内预测模式的信息。在一个示例中,帧内预测单元254可被配置为执行稍后描述的帧内预测技术的任何组合。

熵编码单元270被配置为应用熵编码算法或方案(例如,可变长度译码(vlc)方案、上下文自适应vlc方案(calvc)、算术译码方案、上下文自适应二进制算术译码(cabac)、量化残差系数209、帧间预测参数、帧内预测参数和/或环路滤波器参数的基于语法的上下文自适应二进制算术译码(sbac)、概率区间划分熵(pipe)译码或其他熵译码方法或技术)单独地或联合地(或根本不)获得编码图像数据21,该编码图像数据21可由输出272例如以编码码流21的形式输出。编码的码流21可传输到视频解码器30,或被存档以供以后由视频解码器30传输或检索。熵编码单元270可进一步被配置为对正被译码的当前视频条带的其他语法元素进行熵编码。

视频编码器200的其他结构变型可用于编码视频流。例如,基于非变换的编码器200可直接量化残差信号,而无需针对某些块或帧的变换处理单元206。在另一实现方式中,编码器200可具有组合成单个单元的量化单元208和反量化单元210。

图3示出被配置为实现本申请的技术的示例性视频解码器300。视频解码器300被配置为接收由编码器200编码的编码图像数据(例如,编码码流)271,以获得解码图像331。在解码过程期间,视频解码器300从视频编码器200接收视频数据,例如,表示编码视频条带和相关联语法元素的图像块的编码视频码流。

在图3的示例中,解码器300包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(例如,求和器314)、缓冲区316、环路滤波器320、解码图像缓冲区330和预测处理单元360。预测处理单元360可包括帧间预测单元344、帧内预测单元354和模式选择单元362。在一些示例中,视频解码器300可执行解码过程,通常是与结合图2的视频编码器200所描述的编码过程的逆过程。

熵解码单元304被配置为对编码图像数据271执行熵解码,以获得例如量化系数309和/或解码的译码参数(图3示出),例如帧间预测参数、帧内预测参数、环路滤波器参数和/或其他语法元素中的(解码的)任何或全部。熵解码单元304还被配置为将帧间预测参数、帧内预测参数和/或其他语法元素转发给预测处理单元360。视频解码器300可在视频条带级别和/或视频块级别接收语法元素。

反量化单元310可在功能上与反量化单元110相同,逆变换处理单元312可在功能上与逆变换处理单元112相同,重建单元314可在功能上与功能重建单元114相同,缓冲区316可在功能上与缓冲区116相同,环路滤波器320可在功能上与环路滤波器120相同,并且解码图像缓冲区330可在功能上与解码图像缓冲区130相同。

预测处理单元360可包括帧间预测单元344和帧内预测单元354,其中,帧间预测单元344可在功能上类似于帧间预测单元144,并且帧内预测单元354可在功能上类似于帧内预测单元154。预测处理单元360通常被配置为执行块预测和/或从编码数据21获得预测块365,并且例如从熵解码单元304(显式或隐式地)接收或获得预测相关的参数和/或关于所选择的预测模式的信息。

当视频条带被译码为帧内译码的(i)条带时,预测处理单元360的帧内预测单元354被配置为基于指示的帧内预测模式和来自当前帧或图像的先前解码的块的数据而生成针对当前视频条带的图像块的预测块365。当视频帧被译码为帧间译码(即,b或p)条带时,预测处理单元360的帧间预测单元344(例如,运动补偿单元)被配置为基于从熵解码单元304接收的运动矢量和其他语法元素而产生用于当前视频条带的视频块的预测块365。对于帧间预测,可从一个参考图像列表中的一个参考图像产生预测块。视频解码器300可基于存储在dpb330中的参考图像使用默认构建技术来构建参考帧列表,列表0和列表1。

预测处理单元360被配置为通过解析运动矢量和其他语法元素来确定针对当前视频条带的视频块的预测信息,并使用该预测信息来生成针对正被解码的当前视频块的预测块。例如,预测处理单元360使用一些接收到的语法元素来确定用于对视频条带的视频块进行译码的预测模式(例如帧内或帧间预测)、帧间预测条带类型(例如b条带、p条带或gpb条带)、条带的一个或多个参考图像列表的构建信息、条带的每个帧间编码视频块的运动矢量、条带的每个帧间译码视频块的帧间预测状态以及其他信息以对当前视频片段中的视频块进行解码。

反量化单元310被配置为反量化(即,去量化)在码流中提供并由熵解码单元304解码的量化的变换系数。反量化过程可包括使用由视频编码器100为视频条带中的每个视频块计算的量化参数来确定量化程度,并且同样地确定应采用的反量化程度。

逆变换处理单元312被配置为对变换系数应用逆变换(例如,逆dct)、逆整数变换或概念上类似的逆变换处理,以产生像素域中的残差块。

重建单元314(例如,求和器314)被配置为将逆变换块313(即,重建的残差块313)添加到预测块365,以获得样本域中的重建的块315,例如通过将重建残差块313的样本值与预测块365的样本值相加。

环路滤波器单元320(在译码环路中或在译码环路之后)被配置为对重建块315进行滤波以获得例如滤波块321,以平滑像素过渡,或以其他方式提高视频质量。在一个示例中,环路滤波器单元320可被配置为执行稍后描述的滤波技术的任何组合。环路滤波器单元320旨在表示一个或多个环路滤波器,例如去块效应滤波器、样本自适应偏移(sao)滤波器或其他滤波器,例如双边滤波器或自适应环路滤波器(alf)或锐化或平滑滤波器或协作滤波器。尽管环路滤波器单元320在图3中被示出为环路滤波器,但是在其他配置中,环路滤波器单元320可被实现为后环路滤波器。

然后,将给定帧或图像中的已解码视频块321存储在已解码图像缓冲区330中,该缓冲区存储用于后续运动补偿的参考图像。

解码器300被配置为例如通过输出312输出解码图像311,用于向用户呈现或供用户观看。

视频解码器300的其他变型可用于对压缩的码流进行解码。例如,解码器300可在没有环路滤波单元320的情况下产生输出视频流。例如,对某些块或帧,基于非变换的解码器300可直接对残差信号进行反量化,而无需逆变换处理单元312。在另一实现方式中,视频解码器300可具有组合成单个单元的反量化单元310和逆变换处理单元312。

图4是根据本发明的实施例的网络设备400(例如,译码设备)的示意图。网络设备400适合于实现本文描述的公开的实施例。在一个实施例中,网络设备400可以是解码器(例如,图1a的视频解码器300)或编码器(例如,图1a的视频编码器200)。在实施例中,如上所述,网络设备400可以是图1a的视频解码器300或图1a的视频编码器200的一个或多个部件。

网络设备400包括用于接收数据的入端口410和接收器单元(rx)420;用以处理数据的处理器、逻辑单元或中央处理单元(cpu)430;用于传输数据的传输器单元(tx)440和出端口450;以及用于存储数据的存储器460。网络设备400还可包括耦合至入端口410、接收器单元420、传输器单元440和出端口450的用于光或电信号的进出的光电(oe)部件和电光(eo)部件。

处理器430由硬件和软件实现。处理器430可被实现为一个或多个cpu芯片、核(例如,作为多核处理器)、fpga、asic和dsp。处理器430与入端口410、接收器单元420、传输器单元440、出端口450和存储器460通信。处理器430包括译码模块470。译码模块470实现上述的所公开的实施例。例如,译码模块470实现、处理、准备或提供各种译码操作。因此,包括译码模块470为网络设备400的功能性提供实质性的改进,并且实现将网络设备400转换为不同状态。或者,译码模块470被实现为存储在存储器460中并且由处理器430执行的指令。

存储器460包括一个或多个磁盘、磁带驱动器和固态驱动器,并且可用作溢出数据存储设备,以在选择要执行的程序时存储程序,并存储在程序执行期间读取的指令和数据。存储器460可以是易失性的和/或非易失性的,并且可以是只读存储器(rom)、随机访问存储器(ram)、三态内容可寻址存储器(tcam)和/或静态随机访问存储器(sram)。

图5是根据示例性实施例的可用作图1a的源设备12和目的地设备14中的任一个或两者的装置500的简化框图。装置500可实现本申请的技术。装置500可以呈包括多个计算设备的计算系统的形式,也可以呈单个计算设备的形式,例如,移动电话、平板计算机、膝上型计算机、笔记本计算机、台式计算机等等。

装置500中的处理器502可以是中央处理单元。或者,处理器502可以是任何其他类型的设备或多个设备,该设备能够操纵或处理现在存在或以后发展的信息。尽管所公开的实现方式可用所示的单个处理器(例如,处理器502)来实践,但是可使用多于一个处理器来实现速度和效率上的优势。

在实现方式中,装置500中的存储器504可以是只读存储器(rom)设备或随机访问存储器(ram)设备。任何其他合适类型的存储设备都可用作存储器504。存储器504可包括由处理器502使用总线512访问的代码和数据506。存储器504可还包括操作系统508和应用程序510,应用程序510包括至少一个程序,该程序允许处理器502执行此处描述的方法。例如,应用程序510可包括应用程序1至n,该等应用程序还包括执行此处描述的方法的视频译码应用程序。装置500还可包括呈辅助存储器514形式的附加存储器,它可以是例如与移动计算设备一起使用的存储卡。由于视频通信会话可能包含大量信息,因此可将它们全部或部分存储在辅助存储设备514中,并根据处理需要将其加载到存储器504中。

装置500还可包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是触敏显示器,它将显示器与可操作以感测触摸输入的触敏元件组合。显示器518可通过总线512耦合至处理器502。作为显示器518的补充或替代,可提供允许用户编程或以其他方式使用装置500的其他输出设备。当输出设备是显示器或包括显示器时,可以各种方式实现显示器,包括液晶显示器(lcd)、阴极射线管(crt)显示器、等离子显示器或发光二极管(led)显示器,例如有机led(oled)显示器。

装置500还可包括图像感测设备520(例如,相机)或现在存在或以后开发的可感测图像(例如操作装置500的用户的图像)的任何其他图像感测设备520或与之通信。图像感测设备520可定位成使得其朝向操作装置500的用户。在示例中,图像感测设备520的位置和光轴可被配置为使得视野包括与显示器518直接相邻的区域,并且从该区域可见显示器518。

装置500还可包括声音感测设备522(例如麦克风)或现在存在或以后开发的可感测装置500附近的声音的任何其他声音感测设备,或与之通信。声音感测设备522可被定位成使其指向操作装置500的用户,并且可被配置为接收用户在用户操作装置500时发出的声音,例如语音或其他言语。

尽管图5将装置500的处理器502和存储器504描绘为集成到单个单元中,但是可利用其他配置。处理器502的操作可分布在可直接耦合或跨局域网或其他网络耦合的多个机器(每个机器具有一个或多个处理器)上。存储器504可跨多个机器分布,例如基于网络的存储器或执行装置500的操作的多个机器中的存储器。尽管在此处被描述为单个总线,但装置500的总线512可由多个总线组成。此外,辅助存储设备514可直接耦合至装置500的其他组件,或者可通过网络访问,并且可包括单个集成单元(例如,存储卡)或多个单元(例如,多个存储卡)。装置500因此可以多种配置来实现。

在一个或多个示例中,可以硬件、软件、固件或其任何组合实现所描述的功能。如果以软件实现,则功能可作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质传输,并由基于硬件的处理单元执行。计算机可读介质可包括计算机可读存储介质,其对应于有形介质,例如数据存储介质,或通信介质,包括例如根据通信协议来促进将计算机程序从一个地方转移到另一个地方的任何介质。以这种方式,计算机可读介质通常可对应于(1)非瞬时性的有形计算机可读存储介质,或者(2)通信介质,例如信号或载波。数据存储介质可以是任何可用介质,这些介质可由一个或多个计算机或一个或多个处理器访问,以检索指令、代码和/或数据结构,从而实现本发明中描述的技术。计算机程序产品可包括计算机可读介质。

作为示例而非限制,这种计算机可读存储介质可包括ram、rom、eeprom、cd-rom或其他光盘存储、磁盘存储、或可用来以指令或数据结构的形式存储期望程序代码并可由计算机访问的其他磁性存储设备、闪存或任何其他可存储介质。同样,任何连接都可适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(dsl)或无线技术(例如红外线、无线电和微波)从网站、服务器或其他远程源发送指令,则同轴电缆、光纤电缆、双绞线、dsl或无线技术(例如红外线、无线电和微波)都包括在介质的定义中。然而,应理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他瞬时介质,而是涉及非瞬时的有形存储介质。本文使用的磁盘和光盘包括压缩光盘(cd)、激光光盘、光学光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中,磁盘通常以磁性方式复制数据,而光盘则通过激光以光学方式复制数据。以上的组合也应包括在计算机可读介质的范围内。

指令可由一个或多个处理器执行,例如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)或其他等效的集成或离散逻辑电路。因此,如本文所使用,术语“处理器”可指任何前述结构或适合于实现本文所描述的技术的任何其他结构。另外,在一些方面中,本文描述的功能性可在被配置用于编码和解码的专用硬件和/或软件模块中提供,或结合在组合的译码器中。同样,该技术可在一个或多个电路或逻辑元件中完全实现。

本发明的技术可在包括无线手持机、集成电路(ic)或ic集(例如,芯片集)的多种设备或装置中实现。各种部件、模块或单元在本发明中被描述以强调被配置为执行所公开技术的设备的功能方面,但不一定需要由不同硬件单元来实现。实际上,如上所述,各种单元可组合在译码器硬件单元中,或者由互操作的硬件单元的集合来提供,包括如上所述的一个或多个处理器,以及适当的软件和/或固件。

尽管在本发明中已经提供若干实施例,但应当理解,在不脱离本发明的精神或范围的情况下,可以许多其他特定形式来体现所公开的系统和方法。本示例被视为是说明性的而非限制性的,并且本发明的意图不限于在此给出的细节。例如,各种元件或部件可被组合或集成在另一个系统中,或者某些特征可被省略或不被实现。

另外,在不脱离本发明的范围的情况下,在各种实施例中描述和示出为离散或分离的技术、系统、子系统和方法可与其他系统、模块、技术或方法组合或集成。被示出或讨论为彼此耦合或直接耦合或通信的其他项可通过某种接口、设备或中间元件以电气、机械或其他方式间接耦合或通信。改变、替换和变更的其他示例可由本领域技术人员确定,并且可在不脱离本文公开的精神和范围的情况下进行。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1