图像编码/解码方法和使用其的装置与流程

文档序号:19347090发布日期:2019-12-06 20:58阅读:171来源:国知局
图像编码/解码方法和使用其的装置与流程

本申请是向中国国家知识产权局提交的申请日为2013年10月11日,申请号为“201380030775.7”,发明名称为“图像编码/解码方法和使用其的装置”的发明专利申请的分案申请。

本发明涉及视频编码和解码处理,并更具体地,涉及这样的视频编码和解码方法以及使用该方法的设备,其配置运动候选列表。



背景技术:

最近几年,随着具有高清晰度分辨率(1280x1024或1920或1080)的广播服务已在全世界和全国扩展,许多用户现在已熟悉高分辨率、高清晰度视频,并且许多组织已通过跟进它而刺激下一代视频设备的开发。此外,随着关于具有比hdtv高四倍的分辨率的超高清晰度(uhd)以及hdtv的顾虑的增加,活动画面标准化组已意识到更高分辨率、更高清晰度视频的压缩技术的必要性。另外,急需新标准,其能通过比当前hdtv、蜂窝电话、和蓝光播放器中使用的h.264/avc更高的压缩效率,获取在频带或存储方面的大量增益,同时保持相同清晰度。目前,运动画面专家组(mpeg)和视频编码专家组(vceg)的共同目标在于,对作为下一代视频编解码器的高效率视频编码(hevc)进行标准化,并利用比h.264/avc高两倍的压缩效率来编码包括uhd视频的视频。这能提供甚至比目前3d广播和移动通信网络中更低的频率的高清晰度视频、以及hd和uhd视频。

目前,2010年四月召开了第一次联合协作组视频编码(jct-vc)会议之后,hevc通过每一机构的贡献来设置称为hevc测试模型(hm)的编解码器。



技术实现要素:

技术问题

本发明的目的是提供在配置运动候选列表时、确定相邻块是否可使用的方法以及使用该方法的设备。

此外,本发明的另一目的是提供在配置运动候选列表时、提供编码单元内的预测单元之间的平行性的方法以及使用该方法的设备。

本发明的另一目的是改进视频编码和解码效率。

技术方案

根据本发明的一个方面,提供了一种视频解码方法,包括步骤:确定用于当前块的相邻块的可用性;基于可用性确定的结果来配置用于当前块的合并候选列表;和基于该合并候选列表来执行对于当前块的运动补偿,并且所述确定可用性的步骤包括,导出用于相邻块的块可用性信息的步骤;和导出用于相邻块的运动信息的可用性的步骤,以及在所述确定相邻块的可用性的步骤中,当相邻块为多个时,根据预定次序限制来确定用于相邻块的可用性。

当当前块的位置是(xp,yp)时,相邻块包含包括在(xp-1,yp+npsh)处存在的像素的第一块、包括在(xp-1,yp+npsh-1)处存在的像素的第二块、包括在(xp+npsw,yp-1)处存在的像素的第三块、包括在(xp+npsw-1,yp-1)处存在的像素的第四块、和包括在(xp-1,yp-1)处存在的像素的第五块。

在所述确定相邻块的可用性的步骤中,当相邻块为多个时,根据预定次序限制来确定用于相邻块的可用性,并且当禁止并行导出当前块和相邻块的合并候选列表时,该块可用性信息可被设置为假(0)。

将块可用性信息设置为假可意味着对应块不存在或在帧内模式中编码。

在所述确定用于相邻块的可用性的步骤中,当前块的分区形式是part_nx2n、part_nlx2n和part_nrx2n之一,并且编码单元中的当前块的索引partidx是“1”,用于第二块的块可用性信息可被设置为假(0)。

在所述确定相邻块的可用性的步骤中,当前块的分区形式是part_2nxn、part_2nxn和part_2nxnd之一,并且编码单元中的当前块的索引partidx是“1”,用于第四块的块可用性信息可被设置为假(0)。

在所述导出用于相邻块的运动信息的可用性的步骤中。

可以比第一、第三块、第四和第五块的运动信息的可用性更早地导出第二块的运动信息的可用性。

在所述导出用于相邻块的运动信息的可用性的步骤中,可以比第三和第五块的运动信息的可用性更早地导出第四块的运动信息的可用性。

在所述导出用于相邻块的运动信息的可用性的步骤中,可以比第一、第二、第三和第四块的运动信息的可用性更晚地导出第五块的运动信息的可用性。

所述导出用于相邻块的运动信息的可用性的步骤可按照第二块、第四块、第三块、第一块和第五块的次序来执行。

在所述导出块可用性信息的步骤中,当相邻块不存在或按照帧内模式编码时,块可用性信息可被设置为假(0),并且当块可用性信息被设置为假(0)时,用于运动信息的可用性可被设置为0。

在所述导出块可用性信息的步骤中,当第二块的块可用性信息为真(1)、并且第二块的运动信息和第四块的运动信息彼此相同时,第四块的运动信息的可用性可被设置为0。

在所述导出块可用性信息的步骤中,当第四块的块可用性信息为真(1)、并且第四块的运动信息和第三块的运动信息彼此相同时,第三块的运动信息的可用性可被设置为0。

在所述导出块可用性信息的步骤中,当第二块的块可用性信息为真(1)、并且第二块的运动信息和第一块的运动信息彼此相同时,第一块的运动信息的可用性可被设置为0。

在所述导出块可用性信息的步骤中,当第二块的块可用性信息为真(1)、并且第二块的运动信息和第五块的运动信息彼此相同时,第五块的运动信息的可用性可被设置为0。

在所述导出块可用性信息的步骤中,当第四块的块可用性信息为真(1)、并且第四块的运动信息和第五块的运动信息彼此相同时,第五块的运动信息的可用性可被设置为0。

在所述导出运动信息的可用性的步骤中,当第一、第二、第三和第四块的所有的运动信息的可用性为1时,第五块的运动信息的可用性可被设置为0。

根据本发明的另一方面,一种视频解码设备包括:熵编码模块,用于编码关于用来执行当前块的屏幕间预测的合并候选列表的信息;和预测模块,用于确定用于当前块的相邻块的可用性,基于可用性确定的结果来配置用于当前块的合并候选列表,并基于合并候选列表来执行用于当前块的运动补偿,该预测模块,为了确定可用性,导出用于相邻块的块可用性信息并导出用于相邻块的运动信息的可用性,并且当相邻块为多个时,根据预定次序限制来确定相邻块的可用性。

有益效果

根据本发明的实施例,提供了在配置运动候选列表时、确定相邻块是否可使用的方法以及使用该方法的设备。

此外,根据本发明,提供了用于提供编码单元内的预测单元之间的完美平行性的方法以及使用该方法的设备。

所以,提供了能改进视频编码和解码效率的用于视频编码/解码的方法和设备。

附图说明

图1是图示了根据本发明实施例的视频编码设备的配置的框图;

图2是图示了根据本发明实施例的视频解码设备的配置的框图;

图3是图示了用作合并运动候选列表的当前块的相邻块的一个示例的图;

图4是用于描述屏幕间编码中的运动补偿处理的控制流程图;

图5是图示了根据一个示例的当将一个cu划分为两个pu时设置合并运动候选列表的一个示例的图;

图6是图示了根据另一示例的当将一个cu划分为两个pu时设置合并运动候选列表的一个示例的图;

图7是图示了当前块的相邻块的一个示例的图;

图8是图示了用于限制判断运动信息可用性的次序的方法的各个示例的图;

图9是图示了当顺序确定块运动信息的可用性信息时的相邻块的图;

图10图示了其中将一个cu分区为多个pu的示例;

图11是用于描述根据本发明实施例的用于重置块可用性信息的方法的控制流程图;和

图12是图示了用于描述当前块的合并候选列表的创建的当前块和相邻块的图。

具体实施方式

其后,将参考附图来详细描述本发明的实施例。在描述本说明书的实施例时,当确定与本发明相关的已知技术的详细描述可使得本发明的要旨模糊时,将省略其详细描述。

将理解的是,当在当前描述中元件被简单称为“连接”或者“耦接”到另一元件而不是“直接连接”或“直接耦接”到另一元件时,其可以“直接连接”或“直接耦接”到另一元件、或者可在其间插入其他元件的情况下连接或者耦接到另一元件。此外,本发明中描述“包括”特定组件的内容不排除除了对应组件之外的组件,并意味着附加组件可以被包括在本发明的实施例中或本发明的技术精神的范围中。

可使用诸如第一或第二的术语来描述各种组件,但这些组件不受到以上术语的限制。以上术语仅用于区分一个组件与另一组件。例如,第一组件可以称作第二组件,以及类似地,第二组件可以称作第一组件,而不脱离本发明的范围。

此外,本发明的实施例中描述的组件被独立图示,以便示出不同特性功能,并且每一组件不由单独硬件或一个软件构成单元构成。即,每一组件被安排和包括为各个组件,并且各个组件之中的至少两个组件被合计以形成一个组件,或者一个组件被划分为多个组件以执行功能,并且每一组件的集成实施例和分离实施例也被包括在本发明的范围中,而不脱离本发明的精神。

此外,在本发明中,一些组件不是执行必然功能的必要组件,而是用于仅改进性能的选择性组件。本发明可利用除了用来仅改进性能的组件之外的用于实现本发明的精神的必要组件来实现,并且仅包括除了用来仅改进性能的选择性组件之外的必要组件的结构也被包括在本发明的范围中。

图1是图示了根据本发明实施例的视频编码设备的配置的框图。

参考图1,视频编码设备100包括运动预测模块111、运动补偿模块112、帧内预测模块120、开关115、减法器125、变换模块130、量化模块140、熵编码模块150、逆量化模块160、逆变换模块170、加法器175、滤波器模块180、和参考视频缓冲器190。

视频编码设备100可按照帧内模式或帧间模式来对输入视频进行编码,并输出比特流。帧内预测意味着屏幕内的预测,并且帧间预测意味着屏幕之间的预测。在帧内模式中,开关115切换到帧内,而在帧间模式中,开关115切换到帧间模式。视频编码设备100生成用于输入视频的输入块的预测块,并然后可编码输入块和预测块之间的差。

在帧内模式中,帧内预测模块120使用当前块周围的先前编码的块的像素值来执行空间预测,以生成预测块。

在帧间模式中,运动预测模块111可在运动预测处理期间在参考视频缓冲器190中存储的参考视频中找出与输入块最佳匹配的区域,以计算运动向量。运动补偿模块112使用该运动向量和参考视频缓冲器190中存储的参考视频来校正运动,以生成预测块。

减法器125可通过输入块和生成的预测块之间的差,来生成残差块。变换模块130对于残差块执行变换以输出变换系数。另外,量化模块140根据量化参数来对输入变换系数进行量化,以输出量化后的系数。

熵编码模块150基于从量化模块140计算的值或在编码处理中计算的编码参数值、根据概率分布对码元执行熵编码,以输出比特流。熵编码方法是其中在去除统计冗余度的同时、接收具有各个值的码元并通过可解码二进制串来表达的方法。

这里,码元意味着编码/解码目标语法元素、编码参数、残差信号的值等。作为编码和解码所需要的参数的编码参数可不仅包括诸如语法元素的要向解码设备传递的在编码设备中编码的信息,而且包括可从编码或解码处理推断的信息,并意味着当编码或解码视频时需要的信息。编码参数可包括诸如帧内/帧间预测模式、移动/运动向量、参考视频索引、编码块图案、残差信号的存在、变换系数、量化的变换系数、量化参数、块尺寸、块分段信息等的值或统计数据。此外,残差信号可意味着原始信号和预测信号之间的差,并且也可意味着具有原始信号和预测信号之间的差的变换形式的信号、或者具有原始信号和预测信号之间的差的变换和量化形式的信号。残差信号可被称为块单元中的残差块。

在其中应用熵编码的情况下,向具有高出现概率的码元分配很少比特并向具有低出现概率的码元分配很多比特以表达码元,并且结果,可降低编码目标码元的比特流的尺寸。因此,可通过熵编码来增强视频编码的压缩性能。

关于熵编码,可使用诸如指数哥伦布、上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)等的编码方法。例如,诸如可变长度编码/代码(vlc)表格的用于执行熵编码的表格可被存储在熵编码模块150中,并且熵编码模块150可使用存储的vlc表格来执行熵编码。此外,熵编码模块150导出目标码元的二值化方法以及目标码元/仓(bin)的概率模型,并然后可使用导出的二值化方法或概率模型来执行熵编码。

量化的系数可在逆量化模块160中逆量化,并且在逆变换模块170中逆变换。加法器155将逆量化和逆变换后的系数与预测块相加,以生成恢复块。

恢复块经过滤波器模块180,并且滤波器模块180可向恢复块或恢复画面应用解块滤波、样本自适应偏移(sao)、和自适应环路滤波(alf)中的至少一个。经过滤波器模块180的重构块可被存储在参考图像缓冲器190中。

图2是图示了根据本发明实施例的视频解码设备的配置的框图。参考图2,视频解码设备200包括熵解码模块210、逆量化模块220、逆变换模块230、帧内预测模块240、运动补偿模块250、滤波器模块260、和参考视频缓冲器270。

视频解码设备200接收从编码设备输出的比特流,以按照帧内模式或帧间模式来执行解码,并输出重构的视频(即,恢复的视频)。在帧内模式中,开关可被切换到帧内,而在帧间模式中,开关可被切换到帧间模式。视频解码设备200获得从输入的比特流恢复的残差块并生成预测块,并然后可通过将恢复的残差块添加到预测块来生成重新配置的块(即,恢复块)。

熵解码模块210根据概率分布对输入比特流进行熵解码,以生成包括具有量化后的系数形式的码元的码元。熵解码方法是接收二进制串以生成各个码元的方法。熵解码方法与前述熵编码方法类似。

量化后的系数在逆量化模块220中逆量化并在逆变换模块230中逆变换,并且结果,可生成恢复的残差块。

在帧内模式中,帧内预测模块240使用当前块周围的先前编码的块的像素值来执行空间预测,以生成预测块。在帧间模式中,运动补偿模块250使用运动向量和参考视频缓冲器270中存储的参考视频来校正运动,以生成预测块。

加法器280将恢复的残差块和预测块相加,并且相加的块经过滤波器模块260。滤波器模块260可向恢复块或恢复画面应用解块滤波、sao、和alf中的至少一个。滤波器模块260输出重新配置的视频,即,恢复视频。恢复视频可被存储在参考视频缓冲器270中并用于屏幕之间的预测。

在熵编码模块210之中,视频解码设备200中包括的逆量化模块220、逆变换模块230、帧内预测模块240、运动补偿模块250、滤波器模块260、和参考视频缓冲器270构成与视频解码直接相关的元件,例如熵编码模块210、逆量化模块220、逆变换模块230、帧内预测模块240、运动补偿模块250、滤波器模块260等与其他构成元件分离,以表示为解码模块。

此外,视频解码设备200可进一步包括解析单元(未图示),用于解析关于比特流中包括的编码视频的信息。解析模块可包括熵解码模块210,并且还可以被包括在熵解码模块210中。解析模块可进一步被实现为解码模块的一个构成元件。

一般,在屏幕之间的预测中,当前画面的前一画面或后一画面中的至少一个被称为参考画面,并且可基于参考画面来执行对于当前块的预测。用于当前块的预测所使用的视频被称为参考画面或参考帧。

可通过使用指示参考画面、运动画面等的参考画面索引refidx,来表示参考画面中的区域。

在屏幕之间的预测中,选择与参考画面和参考画面中的当前块对应的参考块以生成当前块的预测块。

在屏幕之间的预测中,编码设备和解码设备导出当前块的运动信息,并然后基于导出的运动信息执行屏幕之间的预测和/或运动补偿。在该情况下,编码设备和解码设备使用恢复的相邻块和/或预先恢复的并置画面中与当前块对应的并置块的运动信息,由此改进编码/解码效率。

这里,作为预先编码和/或解码的恢复的当前画面中的块的、恢复的相邻块可包括与当前块邻近的块和/或位于当前块的外角处的块。此外,编码设备和解码设备可基于并置画面中的与当前块空间对应的位置处存在的块,来确定相对预定位置,并基于确定的相对位置(在与当前块空间对应的位置处存在的块的内部和/或外部位置)来导出并置块。这里,作为示例,并置画面可对应于参考画面列表中包括的参考画面之中的一个画面。

在屏幕之间的预测中,可生成预测块,使得与当前块的残差信号被最小化,并且运动向量的尺寸被最小化。

其间,导出运动信息的方法可根据当前块的预测模式而变化。对于帧间预测应用的预测模式可包括先进运动向量预测器(amvp)、合并等。

例如,在应用先进运动向量预测器(amvp)的情况下,编码设备和解码设备可通过使用恢复的相邻块的运动向量和/或并置块的运动向量,来生成预测运动向量候选列表。即,恢复的相邻块的运动向量和/或并置块的运动向量可被用作预测运动向量候选。编码设备可向解码设备传送指示在列表中包括的预测运动向量候选之中选择的最佳预测运动向量的预测运动向量索引。在该情况下,解码设备可通过使用预测运动向量索引,来选择预测运动向量候选列表中包括的预测运动向量候选之中的当前块的预测运动向量。

编码设备可计算当前块的运动向量和预测运动向量之间的运动向量差(mvd),并可编码该运动向量差(mvd),以将编码的运动向量差(mvd)传送到解码设备。在该情况下,解码设备可解码接收的运动向量差,并可通过解码的运动向量差和预测运动向量之和,来导出当前块的运动向量。

编码设备可进一步向解码设备传送指示参考画面等的参考画面索引。

解码设备通过使用相邻块的运动信息来预测当前块的运动向量,并可通过使用从编码设备接收的残差来导出当前块的运动向量。解码设备可基于导出的运动向量和从编码设备接收的参考画面索引信息,来生成用于当前块的预测块。

在作为屏幕之间的预测中使用的其他模式之一的跳跃模式的情况下,可在当前块中原样使用相邻块的信息。因此,在跳跃模式的情况下,编码设备不传送除了指示任何块的运动信息是否用作当前块的运动信息的信息之外的、诸如残差的语法信息。

作为另一示例,在其中应用合并运动(即,合并)的情况下,编码设备和解码设备可通过使用恢复的相邻块的运动信息和/或并置块的运动信息,来生成合并运动候选列表(合并候选列表)。在该情况下,运动信息包括运动向量、用于参考视频的索引、和预测方向(单向、双向等)中的至少一个。

合并运动可以是编码单元(其后,称为“cu”)的合并运动和预测单元(其后,称为“pu”)的合并运动。在通过cu或pu(其后,为了方便,称为“块”)单元执行合并运动的情况下,存在以下需求,传送关于是否对于每一块分区执行合并运动的信息、以及关于是否利用与当前块邻近的相邻块(当前块的左相邻块、当前块的上相邻块、当前块的时间相邻块等)之中的任何块来执行合并运动的信息。

合并运动候选列表表示其中存储运动信息的列表,并且在执行合并运动之前生成。这里,合并运动候选列表中存储的运动信息可以是与当前块邻近的相邻块的运动信息、或参考视频中与当前块并置的块的运动信息。此外,合并运动候选列表中存储的运动信息可以是通过组合合并运动候选列表中预先存在的运动信息而作出的新运动信息。

图3是图示了用作合并运动候选列表的当前块的相邻块的一个示例的图。

合并运动候选列表确定是否可以使用对应块的运动信息用于相对于图3的相邻块a、b、c、d和e以及相同位置处的候选块h或m的、当前块的合并运动,并且在使用运动信息的情况下,可在合并运动候选列表中输入对应块的运动信息。

在其中包括具有位置(xp+npsw,yp+npsh)的像素的预测块不可使用的情况下,用作时间候选预测块的相同位置候选块可以是包括基于包括当前块的画面中的像素位置(xp,yp)、在当前块的并置画面中具有位置(xp+npsw,yp+npsh)的像素的预测块h、或者是包括具有位置(xp+(npsw>>1),yp+(npsh>>1))的像素的预测块m。

在其中每一相邻块检验是否具有相同运动信息、并具有相同运动信息的情况下,对应相邻块的运动信息不被包括在合并运动候选列表中。

作为实施例,在图3中,当生成用于块x的合并运动候选列表时,相邻块a不可使用并被包括在合并运动候选列表中,并且仅当相邻块b和相邻块a不具有相同运动信息时,相邻块b可以被包括在合并运动候选列表中。按照相同的方式,仅当相邻块c和相邻块b不具有相同运动信息时,相邻块c才可以被包括在合并运动候选列表中。按照相同的方式,这可应用到相邻块d和相邻块e。

这里,相同运动信息可意味着使用相同运动向量和相同参考画面、以及使用相同预测方向(单向(向前方向和向后方向)、和双向)。

最后,在图3中,可按照预定顺序(例如,a→b→c→d→e→h(或m)的块顺序)来添加用于块x的合并运动候选列表。

图4是用于描述屏幕间编码中的运动补偿处理的控制流程图。

如图4中所示,在运动补偿处理中,当输入关于当前块和相邻块的信息时,确定用于相邻块的可用性(s410),配置运动候选列表(s420),通过配置的运动候选列表输出用于当前块的运动信息,并最终输出其中校正运动的视频(s430)。

在图4中,用于配置当前块的运动候选列表所使用的相邻块可按照各种方式设置,并且例如可以是相邻块a、b、c、d和e以及相同位置处的候选块h或m。

如同图4的第一步骤,确定相邻块的可用性(s411)是这样的处理,即,当存在对应相邻块时,确定对应块可用,并且作为确定可用性的结果,输出块可用性信息。这里,相邻块的存在可意味着在解码处理中可访问的、当前块所属的相同视频(画面)、片段、和拼接块中存在相邻块。在本发明中,确定可被用作判断或设置的含义。在可用性的确定中,附加地,仅在其中不在屏幕中编码对应相邻块的情况下,可确定对应相邻块可用。

作为确定的结果,当块可用性信息是“1”时,对应块可使用(例如,在视频中存在),并且当块可用性信息是“0”时,对应块不可使用(例如,位于视频外部并且不存在),或者反之亦然。

接下来,基于块可用性信息来确定相邻块的运动信息的可用性(s413)。结果,输出表示在当前块的运动候选列表中是否包括对应相邻块的运动信息的、块运动信息的可用性信息。

这里,当块运动信息的可用性信息是“1”时,对应块可使用,并且当可用性信息是“0”时,对应块不可使用,或者反之亦然。

根据本发明,可按照随机顺序来执行用于相邻块的运动信息的可用性的确定,并且相邻块之间的预定次序限制需要如下。

当完成用于相邻块的运动信息的可用性的确定时,基于块运动信息的可用性信息来配置初始运动候选列表(s421),并且可按照a、b、c、d、e、h和m的次序向运动候选列表添加图3的相邻块。

其后,可重新配置运动候选列表,并且可通过重新配置处理来配置最终运动候选列表(s423)。

选择最终运动候选列表中包括的运动候选之中的、当前块的运动信息(s431),并且通过使用选择的运动信息来执行对于当前块的运动补偿(s423)。通过图4的处理来输出其中校正运动的视频。

编码设备可选择合并运动候选列表中包括的合并运动候选之中的、可提供最佳编码效率的合并运动候选,作为当前块的运动信息。在合并运动候选列表中,其中当前块执行合并运动的候选的索引被称为合并运动索引merge_idx(其后,称为“merge_idx”),并且选择的合并索引被包括在要向解码设备传送的比特流中。

在其中在合并运动候选列表中存在相同运动信息的情况下,在合并运动候选列表中仅留下相同运动信息之一。合并运动候选列表中的运动信息的数目可被设置为预定数目。例如,合并运动候选列表中的运动信息的数目可被设置为最大五(或预定数目)。

解码设备可通过使用传送的合并索引来选择合并运动候选列表中包括的合并候选之一,并且可将选择的合并候选确定为当前块的运动信息。因此,在其中应用合并运动模式的情况下,恢复的相邻块和/或并置块的运动信息可按照原样被用作当前块的运动信息。解码设备可通过将从编码设备传送的预测块和残差相加来恢复当前块。

当不指示合并运动索引值时,索引值可被称为“0”。

图5是图示了根据实施例的当将一个cu划分为两个pu时、设置合并运动候选列表的一个示例的图。如图5中所示,cu被分区为nx2n,并且第一左预测块pu0的partidx被标识为0,并且第二右预测块pu1的partidx被标识为1。

用于pu的相邻块的运动信息可以是与当前块邻近的相邻块a0、a1、b0、b1和b2的运动信息、或者参考视频中与当前块并置的块(未示出)的运动信息。图5a图示了用于配置pu0的合并运动候选列表所使用的相邻块,而图5b图示了用于配置pu1的合并运动候选列表所使用的相邻块。

当配置用于pu1的合并运动候选列表时,可与另一pu平行配置该合并运动候选列表,以便不参考相同cu中的另一pu的运动信息,并且为此,在

图5b中,pu0处的块a1可以不被包括在pu1的合并运动候选列表中。即,在图5b中,可以不使用pu0处的块a1用于pu1的合并运动候选列表的配置,并且当配置pu1的合并运动候选列表时,可以不访问块a1的运动信息(或者可以不存在运动信息,或者可以不存在块运动信息的可用性)。

图6是图示了根据另一实施例的当将一个cu划分为两个pu时、设置合并运动候选列表的一个示例的图。如图6中所示,cu被分区为2nxn,并且在第一上预测块pu0中,partidx被标识为0,并且在右下预测块pu1中,partidx被标识为1。

用于pu的相邻块的运动信息可以是与当前块邻近的相邻块a0、a1、b0、b1和b2的运动信息、或者参考视频中与当前块并置的块(未示出)的运动信息。图6a图示了用于配置pu0的合并运动候选列表所使用的相邻块,而图6b图示了用于配置pu1的合并运动候选列表所使用的相邻块。

当配置pu1的合并运动候选列表时,可与另一pu平行配置该合并运动候选列表,以便不参考相同cu中的另一pu的运动信息,并且为此,在图6b中,pu0处的块b1可以不被包括在pu1的合并运动候选列表中。即,在图6b中,可以不使用pu0处的块b1用于pu1的合并运动候选列表的配置,并且当配置pu1的合并运动候选列表时,可以不访问块a1的运动信息(或者可以不存在运动信息,或者可以不存在块运动信息的可用性)。

其间,本发明涉及当配置用于运动预测的运动候选列表时、导出在运动候选列表中配置的与目标块(称为当前块)邻近的相邻块的运动候选可用性的方法和设备。

图7是图示了当前块的相邻块的一个示例的图。

参考图7,与当前块x邻近的相邻块可被划分为左边块a0和a1、上边块b0和b1、以及边缘块c。本发明可通过限制相邻块是否可使用作为运动候选的、判断运动信息可用性的次序,来平行配置属于相同编码单元cu的预测单元pu的运动候选列表。

图8是图示了用于限制判断运动信息可用性的次序的方法的各个示例的图。

参考图8,用于限制判断运动信息可用性的次序的方法可包括(a)上优先级方法、(b)左优先级方法、和(c)上/左平行方法。

上优先级方法是用于比其他相邻块更早地判断上边块之一的运动信息可用性的方法,而左优先级方法是用于比其他相邻块更早地判断左边块之一的判断运动信息可用性的方法。

为了增加判断运动信息可用性的处理的平行性,可使用如同(c)的上/左平行判断方法,并且在该情况下,可平行执行用于左边块的运动信息可用性的判断、和用于上边块的运动信息可用性的判断。

确定运动信息的相同性的运动信息相似度确定处理可被包括在每一相邻块的运动信息可用性确定处理中,使得具有复制运动信息的相邻块不被包括在运动候选列表中。

例如,当确定图7的用于b0的运动信息可用性时,在其中b0的运动信息与b1的运动信息相同的情况下,确定b0的运动信息不可用。

根据本发明,即使在其中运动信息相同性确定处理被包括在运动信息可用性确定处理中的情况下,也需要如图8图示的那样限制确定运动信息可用性的次序。例如,仅在其中b1在确定相邻块的运动信息可用性的次序中在b0之前的情况下,可根据b0的运动信息是否与b1的运动信息相同,来确定b0的运动信息可用性。

另一方面,即,仅在其中b0在确定相邻块的运动信息可用性的次序中在b1之前的情况下,可以不根据b0的运动信息是否与b1的运动信息相同,来确定b0的运动信息可用性。

在本发明中,将作为示例来描述用于限制判断运动信息可用性的次序的三种方法之中的(b)左优先级方法。然而,包括相邻块的可用性确定处理的所描述的内容和下面要描述的内容可被应用到(a)上优先级判断方法和(c)上/左平行判断方法,并且这对于本领域技术人员来说可以是显而易见的。

根据本发明,当配置图5b的pu1的合并运动候选列表时,相邻块b1可预知相邻块a1不可使用。因此,当配置图5b的pu1的合并运动候选列表时,检验相邻块a1的可用性信息,并且结果,不需要检验相邻块b1和相邻块a1是否具有相同运动信息。

换言之,为了配置图5b的pu1的合并运动候选列表,由于合并运动候选列表不需要访问属于和pu1相同的cu中的相邻块a1的运动信息,所以可平行配置pu0和pu1的合并运动候选列表。

类似地,当配置图6b的pu1的合并运动候选列表时,相邻块b0可预知相邻块b1不可使用。因此,当配置图6b的pu1的合并运动候选列表时,检验相邻块b1的可用性信息,并且结果,不需要检验相邻块b1和相邻块b0是否具有相同运动信息。

换言之,为了配置图6b的pu1的合并运动候选列表,由于合并运动候选列表不需要访问属于和pu1相同的cu中的相邻块b1的运动信息,所以可平行配置pu0和pu1的合并运动候选列表。

在平行配置pu的合并运动候选列表的同时、限制用于相邻块的运动信息可用性判断次序的详细方法可包括用于顺序确定块运动信息的可用性信息的方法、和用于在确定相邻块的可用性之后重置块可用性信息的方法。

[方法1]在配置合并运动信息候选列表时顺序确定块运动信息的可用性信息的一个示例

图9是图示了当顺序确定块运动信息的可用性信息时的相邻块的图,并图示了当前块x的相邻块a、b、c、d和e。

在本发明中,“顺序”可意味着作为当前或随后次序的信息取决于作为先前次序的信息。

可按照预定次序来确定是否可以将对应块运动信息用作用于相邻块的运动信息(块运动信息的可用性信息)。在遵循用于其他相邻块的左边块之一的最优先判断运动信息可用性的左优先级判断方法的情况下,确定是否可以按照a、b、c、d和e块的次序在当前块的合并运动中使用对应块的运动信息,并且当对应块的运动信息可使用时,对应块的运动信息可被输入到合并运动候选列表中。

图10图示了其中将一个cu分区为多个pu的示例。

如图10中所示,cu不被分区,并且可以是2nx2npu,并且可以被分区为具有相同尺寸的2nxn、nx2n和nxn。此外,cu可以被不对称地分区,诸如2nxnu、2nxnd、nlx2n和nrx2n。

[方法2]在配置合并运动候选列表时重置块可用性信息的一个示例

图11是用于描述根据本发明实施例的用于重置块可用性信息的方法的控制流程图。图11图示了在图4的确定相邻块的可用性的步骤(s410)中重置块可用性信息的方法的结构图的一个示例。

参考图11,首先,确定指示是否存在相邻块的相邻块的块可用性(s1110)。作为确定结果,输出块可用性信息。

其后,重置相邻块的块可用性(s1120)。

作为示例,关于图5(b)的pu1,位于图5(b)的pu0处的a1块可以不被包括在pu1的合并运动候选列表中,以便与其他pu平行配置合并运动候选列表。

所以,将位于图5(b)的pu0处的a1块的块可用性信息设置为“0”,以防止使用对应块。

接下来,基于设置的块可用性信息来确定用于相邻块的运动信息的可用性(s1130)。通过步骤s1130,输出指示相邻块的运动信息是否可被包括在当前块的运动候选列表中的块运动信息的可用性信息。

基于块运动信息的可用性信息,来配置初始运动候选列表。

图11的重置块可用性信息的方法可被应用到这样的情况,其中一个cu被分区为多个pu(作为一个示例,图10中的2nxn、nx2n、nxn、2nxnu、2nxnd、nlx2n以及nrx2n),即,从一个cu分区的pu。

下面将描述使用前述方法1的解码处理的一个示例。

其后,下面将定义本发明中使用的术语。

predmode代表当前预测单元(pu)的编码模式,并且存在mode_skip、mode_intra、和mode_inter。

merge_flag代表是否按照合并模式来编码当前pu块。当按照合并模式来编码当前pu块时,merge_flag被设置为“1”,并且merge_flag可与此相反地设置。

merge_idx代表指示运动信息候选列表中用于当前pu块的运动信息的索引。

log2_parallel_merge_level_minus2定义平行合并跳跃的级别。根据本发明,合并跳跃可被分析为指示向屏幕间预测施加的模式之中的、合并模式以及跳跃模式的术语,并且平行合并跳跃可意味着,当施加合并模式和/或跳跃模式时,可在特定区域中的块之间平行配置合并运动候选列表。

例如,当log2_parallel_merge_level_minus2的值为“0”时,不执行平行合并跳跃。当log2_parallel_merge_level_minus2的值为“1”时,对于8x8块中的所有pu执行平行合并跳跃。当log2_parallel_merge_level_minus2的值为“2”时,对于16x16块中的所有pu执行平行合并跳跃,并且当log2_parallel_merge_level_minus2的值为“3”时,对于32x32块中的所有pu执行平行合并跳跃。当log2_parallel_merge_level_minus2的值为“4”时,对于64x64块中的所有pu执行平行合并跳跃。

z扫描可用性导出处理

[1]下面将描述z扫描可用性导出处理中的输入。

(xcurr,ycurr):与当前画面的左上位置的位置关联的当前块的左上位置;

(xn,yn):与当前画面的左上位置的位置关联的相邻块的左上位置。

下面将描述z扫描可用性导出处理中的输出。

availablen:位置(xn,yn)处的相邻块的可用性信息。

[2]minblockaddrcurr被设置为用于当前块的z扫描次序的最小亮度块的地址。在该情况下,minblockaddrcurr如下。

minblockaddrcurr=mintbaddrzs[xcurr>>log2mintrafosize][ycurr>>log2mintrafosize]

(这里,mintbaddrzs意味着最小变换块的z扫描次序阵列,并且log2mintrafosize意味着最小变换块的尺寸。

[3]minblockaddrn被设置为用于具有位置(xn,yn)的相邻块的z扫描次序的最小亮度块的地址。

如果以下条件(1)到(4)中的甚至一个为真,则minblockaddrn被设置为“1”。

(1)xn小于“0”。

(2)yn小于“0”。

(3)xn大于pic_width_in_luma_sample(视频的宽度)。

(4)yn大于pic_height_in_luma_sample(视频的宽度)。

否则(即,如果位置(xn,yn)在画面边界),则应用下式。

minblockaddrn=mintbaddrzs[xn>>log2mintrafosize][yn>>log2mintrafosize]

[4]通过以下处理导出相邻块可用性信息availablen。

如果以下条件(1)到(4)中的甚至一个为“真”,则availablen被设置为“假”。

(1)minblockaddrn小于“0”。

(2)minblockaddr大于minblockaddrcurr。

(3)包括具有minblockaddrn的相邻块的片段的地址索引与包括具有minblockaddrcurr的当前块的片段的地址索引不同。

(4)具有minblockaddrn的相邻块位于与具有minblockaddrcurr的当前块不同的拼接块处。(这里,拼接块与将视频划分为片段具有相同概念,并且在拼接块之间不导出块的编码信息。)

否则,availablen被设置为“真”。

预测块的可用性导出处理

[1]下面将描述预测块的可用性导出处理中的输入。

(xc,yc):与当前画面的左上位置关联的当前亮度编码块的左上位置;

(ncs):指示当前cu的尺寸的变量;

(xp,yp):与当前画面的左上位置关联的当前亮度编码块的左上位置;

(npbw,npbh):指示当前cu块中的当前pu的宽度和高度的变量;

(partidx):当前cu块中的当前pu的索引;

(xn,yn):与当前画面的左上位置关联的相邻块的位置;

下面将描述预测块的可用性导出处理中的输出。

availablen:位置(xn,yn)处的相邻块的可用信息。

[2]变量samecb被定义为代表当前亮度预测块和相邻亮度预测块是否是相同亮度编码块。

如果以下条件(1)到(4)全部为“真”,则samecb被设置为“真”。

(1)xc等于或小于xn。

(2)yc等于或小于yn。

(3)(xc+ncbs)大于xn。

(4)(yc+ncbs)大于yn。

否则,samecb被设置为“假”。

这里,如果samecb为“真”,则其可意味着当前亮度预测块和相邻亮度预测块是否包括在相同亮度编码块中或者反之亦然。

[3]如下导出相邻预测块的可用性信息availablen。

如果samecb为“假”,则通过应用z扫描可用性导出处理来设置availablen。

或者,如果以下条件(1)到(5)全部为“真”,则将availablen设置为“假”。

(1)(npbw<<1)等于ncbs。

(2)(npbh<<1)等于ncbs。

(3)partidx为“1”。

(4)(yc+npbh)等于或小于yn。

(5)(xc+npbw)大于xn。

否则,availablen被设置为“真”。

当availablen为“真”并且predmode[xn][yn]为mode_intra时,availablen被设置为“假”。

导出运动向量和参考画面索引的处理

[1]下面将描述导出运动向量和参考画面索引的处理中的输入。

(xc,yc):当前编码单元(cu)块的左上位置;

(xb,yb):当前pu的左上位置;

(ncs):指示当前cu的尺寸的变量;

(npsw,npsh):指示当前pu的宽度和高度的变量;

(partidx):当前cu块中的当前pu的索引;

下面将描述导出运动向量和参考画面索引的处理中的输出。

(mvl0和mvl1):亮度样本的运动向量;

(mvcl0和mvcl1):色度样本的运动向量;

参考画面索引;refidxl0和refidxl1;

predflagl0和predflagl1:指示预测列表是否可使用(执行l0还是l1预测)的变量。

[2]当前pu块的位置被设置为xp=xc+xb,yp=yc+yb。

[3]通过以下处理导出mvl0、mvl1、refidxl0、refidxl1、predflagl0和predflagl1。

如果predmode是mode_skip,则执行导出用于合并模式的亮度运动向量的处理。这里,输入是(xc,yc)、(xp,yp)、ncs、npsw、npsh和partidx,而输出是mvl0、mvl1、refidxl0、refidxl1、predflagl0和predflagl1。

或者,如果predmode是mode_inter并且用于当前pu块的merge_flag是“1”,则执行导出用于合并模式的亮度运动向量的处理。这里,输入是(xc,yc)、(xp,yp)、ncs、npsw、npsh和partidx并且输出是mvl0、mvl1、refidxl0、refidxl1、predflagl0和predflagl1。

否则,mvlx、refidxlx和predflaglx通过语法元素ref_idx_lx和mvmvd_lx来设置。这里,x可被替换为“0”或“1”。

导出用于合并模式的亮度运动向量的处理

[1]下面将描述导出用于合并模式的亮度运动向量的处理中的输入。

(xc,yc):当前编码单元(cu)块的左上位置;

(xp,yp):当前pu的左上位置;

(ncs):指示当前cu的尺寸的变量;

(npsw,npsh):指示当前pu的宽度和高度的变量;

(partidx):当前cu块中的当前pu的索引;

下面将描述导出用于合并模式的亮度运动向量的处理中的输出。

(mvl0和mvl1):用于亮度样本的运动向量;

refidxl0和refidxl1:参考画面索引;

predflagl0和predflagl1:指示预测列表是否可使用(执行l0还是l1预测)的变量。

[2]如下导出变量singlemclflag(公共合并候选列表标记)。

如果log2_parallel_merge_level_minus2的值大于“0”并且ncs的值为“8”,则将singlemclflag设置为“1”。

否则,将singlemclflag设置为“0”。

[3]如下导出当前pu的左上位置(xp,yp)以及指示当前pu的宽度和高度的变量npsw和npsh。

如果singlemclflag为“1”,则将xc输入到xp中,将yc输入到yp中,并且将ncs输入到npsw和npsh中。

附加解释:当singlemclflag的值被设置为“1”时,一个cu中的所有pu块共享用于2nx2npu的合并候选列表,而不管分区形式。

[4]按照下面描述的次序来执行配置要在合并编码模式中使用的合并候选列表、并设置用于当前pu的运动信息mvl0、mvl1、refidxl0、refidxl1、predflagl0和predflagl1的步骤。

[4-1]执行从包括当前pu的当前cu的相邻pu设置合并运动候选的处理。

这里,输入是(xp,yp)、npsh、npsw、singlemclflag并且输出是availableflagn(指示相邻pu是否可使用的变量)、mvl0n、mvl1n、refidxl0n、refidxl1n、predflagl0n和predflagl1n。(这里,n可被替换为图12的a1、b1、b0、a0和b2,并且x可被替换为“0”或“1”。)

[4-2]用于时间合并运动候选的参考画面索引refidxlx被设置为“0”。这里,x可被替换为“0”或“1”。

[4-3]执行将时间上推断的运动信息设置为合并运动候选的处理。这里,输入是(xp,yp)、npsh、npsw、refidxlx并且输出是availableflaglxcol(指示时间上推断的运动信息是否可使用的变量)和mvlxcol(时间上推断的运动信息)。

availableflagcol(指示时间上推断的运动信息是否可使用的变量)和predflaglxcol(指示用于时间上推断的运动信息的预测列表是否可使用的变量(执行l0还是l1预测))被设置如下。

availableflagcol=availableflagl0col||availableflagl1col

predflaglxcol=availableflaglxcol

[4-4]接下来,如下配置合并候选列表。

图12是图示了用于描述当前块的合并候选列表的创建的、当前块和相邻块的图。

在当前块的左上处存在的像素的位置(即,预测目标块)被设置为(xp,yp),预测目标块的宽度被定义为npsw,并且预测目标块的高度被定义为变量npsh。

其后,在本发明的实施例中,空间相邻预测块可包括作为包括在(xp-1,yp+npsh-1)中存在的像素的块的左a1块、作为包括在(xp-1,yp+npsh)中存在的像素的块的a0块、作为包括位于(xp+npsw,yp-1)中的像素的块的b0块、作为包括位于(xp+npsw-minpusize,yp-1)中的像素的块的b1块、和作为包括位于(xp-minpusize,yp-1)中的像素的块的b2块。

当对应块的运动信息按照图12的a1、b1、b0、a0、b2和col的次序可使用时,对应块的运动信息被顺序输入到合并候选列表中。这里,col代表时间上推断的运动信息。

[4-5]当相同运动信息存在于合并候选列表中时,执行仅留下一个对应运动信息的步骤。

[4-6]执行将合并候选列表的运动信息的数目和合并候选列表的最大数目设置为“5”的步骤。

[4-7]当对应画面是b画面时,执行添加组合数量预测合并候选的步骤。

[4-8]执行添加零(0,0)运动信息作为合并候选的步骤。

[4-9]执行将合并候选列表中的merge_idx中存在的运动信息设置为当前pu的运动信息的步骤。

从当前pu的相邻pu(空间pu)设置合并运动候选的步骤

[1]下面将描述从当前pu的相邻pu(空间pu)设置合并运动候选的步骤中的输入。

(xc,yc):当前编码单元(cu)块的左上位置;

(xp,yp):当前pu的左上位置;

(ncs):指示当前cu的尺寸的变量;

(npsw,npsh):指示当前pu的宽度和高度的变量;

singlemclflag:指示用于当前cu的公共合并候选列表是否可使用的变量;

(partidx):当前cu块中的当前pu的索引;

下面将描述从当前pu的相邻pu(空间pu)设置合并运动候选的步骤中的输出(这里,n可被替换为图12的a1、b1、b0、a0和b2,并且x可被替换为“0”或“1”)。

availableflagn:指示相邻pun的运动信息是否可用的变量;

refidxlxn:相邻pun的参考索引;

predflaglxn:指示用于相邻pun的预测列表是否可使用的变量;

mvlxn:相邻pun的运动向量。

[2]应用根据下面的左优先级判断方法的导出次序(限制),以便通过下面[3]的处理来导出相邻pua0、a1、b0、b1或b2的availableflagn。

a1需要早于a0、b0、b1和b2导出availableflagn(这里,n=a1)。

b1需要早于b0和b2导出availableflagn(这里,n=b1)。

b2需要晚于a0、a1、b0和b1导出availableflagn(这里,n=b2)。

下面将描述与左优先级判断方法的次序限制相符的、导出相邻块的运动信息可用性的次序的示例。

a1→b1→a0→b0→b2,

a1→b1→b0→a0→b2

a1→b1→a0和b0(可能并行导出)→b2

a1→a0→b1→b0→b2

a1→a0和b1(可能并行导出)→b0→b2

[3]用于确定当前pu的相邻pu(空间pu)是否可用作合并运动候选的处理采用以下内容。(这里,相邻pu代表图12的a1、b1、b0、a0和b2,n可被替换为图12的a1、b1、b0、a0和b2,而(xn,yn)可被替换为(xc–1,yc+ncs)、(xc-1,yc+ncs-1)、(xc+ncs,yc–1)、(xc+ncs-1,yc–1)和(xc–1,yc–1)。

[3-1]执行确定相邻pu是否可用的处理,并且输入是(xc,yc)、(xp,yp)、npbw、npbh、(xn,yn)和partidx,以及输出是位于(xn,yn)处的pu的可用性信息availablen。

[3-3]如果以下条件(1)到(10)中的甚至一个是“真”,则将availableflagn设置为“0”并将mvlxn设置为“0,0”。

(1)(xp>>(log2_parallel_merge_level_minus2+2))与(xn>>(log2_parallel_merge_level_minus2+2))相同并且(yp>>(log2_parallel_merge_level_minus2+2))与(yn>>(log2_parallel_merge_level_minus2+2))相同。

(2)n是b2并且availableflaga0+availableflaga1+availableflagb0+availableflagb1是“4”。

(3)在位置[xn,yn]处的pu被禁止或者按照屏幕内模式编码。即,availablen是“0”。

(4)singlemclflag是“0”,当前pu的分区形式是part_2nxn、part_2nxnu或part_2nxnd,partidx是“1”,并且n是“b1”。

(5)singlemclflag是“0”,当前pu的分区形式是part_nx2n、part_nlx2n或part_nrx2n,partidx是“1”,并且n是“a1”。

(6)作为确定运动信息的相似度的处理,n是b1,并且位于(xa1,ya1)的pu的运动信息和位于(xn,yn)的运动信息彼此相同。

(7)作为确定运动信息的相似度的处理,n是b0,并且位于(xb1,yb1)的pu的运动信息和位于(xn,yn)的运动信息彼此相同。

(8)作为确定运动信息的相似度的处理,n是a0,并且位于(xa1,ya1)的pu的运动信息和位于(xn,yn)的运动信息彼此相同。

(9)作为确定运动信息的相似度的处理,n是b2,并且位于(xa1,ya1)的pu的运动信息和位于(xn,yn)的运动信息彼此相同。

(10)作为确定运动信息的相似度的处理,n是b2,并且位于(xb1,yb1)的pu的运动信息和位于(xn,yn)的运动信息彼此相同。

否则,availableflagn被设置为“1”,并且mvlxn、refidxlxn和predflaglxn被分别设置为mvlx[xn,yn]、refidxlx[xn,yn]和predflaglx[xn,yn]。

可根据本发明的一个示例如下修改方法1的从当前pu的相邻pu(空间pu)设置合并运动候选的步骤。

[1]下面将描述从当前pu的相邻pu(空间pu)设置合并运动候选的步骤中的输入。

(xc,yc):当前编码单元(cu)块的左上位置;

(xp,yp):当前pu的左上位置;

(ncs):指示当前cu的尺寸的变量;

(npsw,npsh):指示当前pu的宽度和高度的变量;

singlemclflag:指示用于当前cu的公共合并候选列表是否可使用的变量;

(partidx):当前cu块内的当前pu的索引;

下面将描述该步骤中的输出(这里,n可被替换为图12的a1、b1、b0、a0和b2并且x可被替换为“0”或“1”)。

availableflagn:指示相邻pun的运动信息是否可用的变量;

refidxlxn:相邻pun的参考索引;

predflaglxn:指示相邻pun的预测列表是否可使用的变量;

mvlxn:用于相邻pun的运动向量。

应用以下导出次序(限制),以便通过以下[3]的处理来导出相邻pua0、a1、b0、b1或b2的availableflagn。

b2需要晚于a0、a1、b0和b1导出availableflagn(这里,n=b2)。

[3]下面将描述用于确定当前pu的相邻pu(空间pu)是否可用作合并运动候选的处理。(这里,相邻pu表示图12的a1、b1、b0、a0和b2,n可被替换为图12的a1、b1、b0、a0和b2,并且(xn,yn)可被替换为(xc–1,yc+ncs)、(xc-1,yc+ncs-1)、(xc+ncs,yc–1)、(xc+ncs-1,yc–1)和(xc–1,yc–1)。

[3-1]确定相邻pu是否可用,并且输入是(xc,yc)、(xp,yp)、npbw、npbh、(xn,yn)和partidx,以及输出是位于(xn,yn)处的pu的可用性信息availablen。

[3-2]如果以下条件(1)到(3)中的甚至一个是“真”,则availableflagn被设置为“0”。

(1)(xp>>(log2_parallel_merge_level_minus2+2))与(xn>>(log2_parallel_merge_level_minus2+2))相同并且(yp>>(log2_parallel_merge_level_minus2+2))与(yn>>(log2_parallel_merge_level_minus2+2))相同。

(2)singlemclflag是“0”,当前pu的分区形式是part_2nxn、part_2nxnu或part_2nxnd,partidx是“1”,并且n是“b1”。

(3)singlemclflag是“0”,当前pu的分区形式是part_nx2n、part_nlx2n或part_nrx2n,partidx是“1”,并且n是“a1”。

[3-2]如果以下条件中的甚至一个是“真”,则availableflagn被设置为“0”,并且mvlxn被设置为“0.0”。

(1)n是b1,并且availableflaga0+availableflaga1+availableflagb0+availableflagb1是“4”。

(2)位于[xn,yn]处的pu被禁止或帧内编码。即,availablen为“0”。

(3)作为确定运动信息的相似度的处理,n是b1,并且位于(xa1,ya1)中的pu的运动信息和位于(xn,yn)中的运动信息彼此相同。

(4)作为确定运动信息的相似度的处理,n是b0,并且位于(xb1,yb1)中的pu的运动信息和位于(xn,yn)中的运动信息彼此相同。

(5)作为确定运动信息的相似度的处理,n是a0,并且位于(xa1,ya1)中的pu的运动信息和位于(xn,yn)中的运动信息彼此相同。

(6)作为确定运动信息的相似度的处理,n是b2,并且位于(xa1,ya1)中的pu的运动信息和位于(xn,yn)中的运动信息彼此相同。

(7)作为确定运动信息的相似度的处理,n与b2相同,并且位于(xb1,yb1)中的pu的运动信息和位于(xn,yn)中的运动信息彼此相同。

[3-3]否则,availableflagn被设置为“1”,并且mvlx[xn,yn]、refidxlx[xn,yn]和predflaglx[xn,yn]被分别设置为mvlxn、refidxlxn和predflaglxn。

可根据本发明的另一示例如下修改方法1的从当前pu的相邻pu(空间pu)设置合并运动候选的步骤。

[1]下面将描述从当前pu的相邻pu(空间pu)设置合并运动候选的步骤中的输入。

(xc,yc):当前编码单元(cu)块的左上位置;

(xp,yp):当前pu的左上位置;

(ncs):指示当前cu的尺寸的变量;

(npsw,npsh):指示当前pu的宽度和高度的变量;

singlemclflag:指示用于当前cu的公共合并候选列表是否可使用的变量;

(partidx):当前cu块内的当前pu的索引;

下面将描述该步骤中的输出(这里,n可被替换为图12的a1、b1、b0、a0和b2,并且x可被替换为“0”或“1”)。

availableflagn:指示相邻pun的运动信息是否可用的变量;

refidxlxn:相邻pun的参考索引;

predflaglxn:指示相邻pun的预测列表是否可使用的变量;

mvlxn:相邻pun的运动向量。

[2]用于确定当前pu的相邻pu(空间pu)是否可用作合并运动候选的处理采用以下内容。这里,相邻pu表示图12的a1、b1、b0和a0,n可被替换为图12的a1、b1、b0和a0,并且(xn,yn)可被替换为(xc–1,yc+ncs)、(xc-1,yc+ncs-1)、(xc+ncs,yc–1)和(xc+ncs-1,yc–1)。

[2-1]执行用于确定相邻pu是否可用的处理,并且这里,输入是(xc,yc)、(xp,yp)、npbw、npbh、(xn,yn)和partidx,而输出是位于(xn,yn)中的pu的可用性信息availablen。

[2-2]如果以下条件(1)到(10)中的甚至一个是“真”,则availableflagn被设置为“0”。

(1)(xp>>(log2_parallel_merge_level_minus2+2))与(xn>>(log2_parallel_merge_level_minus2+2))相同并且(yp>>(log2_parallel_merge_level_minus2+2))与(yn>>(log2_parallel_merge_level_minus2+2))相同。

(2)singlemclflag为“0”,当前pu的分区形式为part_2nxn、part_2nxnu或part_2nxnd,partidx为“1”并且n为“b1”。

(3)singlemclflag为“0”,当前pu的分区形式为part_nx2n、part_nlx2n或part_nrx2n,partidx为“1”并且n为“a1”。

[4-2]如果以下条件中的甚至一个是“真”,则availableflagn被设置为“0”并且mvlxn被设置为“0.0”。

(5)位于[xn,yn]处的pu被禁止或帧内编码。(即,availablen为“0”。)

(6)作为用于确定运动信息的相似性的处理,n为b1,availablea1=1,并且位于(xa1,ya1)处的pu的运动信息和位于(xn,yn)中的运动信息彼此相同。

(7)作为用于确定运动信息的相似性的处理,n为b0,availableb1=1,并且位于(xb1,yb1)处的pu的运动信息和位于(xn,yn)中的运动信息彼此相同。

(8)作为用于确定运动信息的相似性的处理,n为a0,availablea1=1,并且位于(xa1,ya1)处的pu的运动信息和位于(xn,yn)中的运动信息彼此相同。

(9)作为用于确定运动信息的相似性的处理,n为b2,availablea1=1,并且位于(xa1,ya1)处的pu的运动信息和位于(xn,yn)中的运动信息彼此相同。

(10)作为用于确定运动信息的相似性的处理,n为b2,availableb1=1,并且位于(xb1,yb1)处的pu的运动信息和位于(xn,yn)中的运动信息彼此相同。

否则,availableflagn被设置为“1”,并且mvlx[xn,yn]、refidxlx[xn,yn]和predflaglx[xn,yn]被分别设置为mvlxn、refidxlxn、predflaglxn。

[3]晚于a0、a1、b0和b1导出b2的availableflagn(这里,n=b2)。用于确定当前pu的相邻pu(空间pu)是否可用作合并运动候选的处理采用以下内容。这里,(xb2,yb2)可被替换为(xc–1,yc–1)。

[3-1]执行用于确定相邻pu是否可用的处理,并且这里,输入是(xc,yc)、(xp,yp)、npbw、npbh、(xb2,yb2)和partidx,而输出是位于(xb2,yb2)中的pu的可用性信息availableb2。

[3-2]如果以下条件为“真”,则availableflagb2被设置为“0”,并且mvlxb2被设置为“0.0”。

availableflaga0+availableflaga1+availableflagb0+availableflagb1等于“4”。

否则,availableflagb2被设置为“1”,并且mvlx[xb2,yb2]、refidxlx[xb2,yb2]和predflaglx[xb2,yb2]被分别设置为mvlxb2、refidxlxb2和predflaglxb2。

可根据本发明的另一示例如下修改方法1的从当前pu的相邻pu(空间pu)设置合并运动候选的步骤。

[1]下面将描述从当前pu的相邻pu(空间pu)设置合并运动候选的步骤中的输入。

(xc,yc):当前编码单元(cu)块的左上位置;

(xp,yp):当前pu的左上位置;

(ncs):指示当前cu的尺寸的变量;

(npsw,npsh):指示当前cu的宽度和高度的变量;

singlemclflag:指示用于当前cu的公共合并候选列表是否可使用的变量;

当前cu块的当前pu的索引(partidx);

下面将描述该步骤中的输出(这里,n可被替换为图12的a1、b1、b0、a0和b2,而x可被替换为“0”或“1”)。

availableflagn:指示相邻pun的运动信息是否可用的变量;

refidxlxn:相邻pun的参考索引;

predflaglxn:指示用于相邻pun的预测列表是否可使用的变量;

mvlxn:用于相邻pun的运动向量。

[2]根据左优先级判断方法按照a1、b1、b0、a0和b2的次序来执行用于确定当前pu的相邻pu(空间pu)是否可用作合并运动候选的处理。这里,相邻pu代表图12的a1、b1、b0、a0和b2,n可以被替换为图12的a1、b1、b0、a0和b2,并且(xn,yn)可以被替换为(xc–1,yc+ncs)、(xc-1,yc+ncs-1)、(xc+ncs,yc–1)、(xc+ncs-1,yc–1)和(xc–1,yc–1)。

[2-1]执行用于确定相邻pu是否可用的处理,并且这里,输入是(xc,yc)、(xp,yp)、npbw、npbh、(xn,yn)和partidx,而输出是位于(xn,yn)中的pu的可用性信息availablen。

[2-2]如果以下条件(1)到(10)中的甚至一个是“真”,则availableflagn被设置为“0”并且mvlxn被设置为“0,0”。

(1)(xp>>(log2_parallel_merge_level_minus2+2))与(xn>>(log2_parallel_merge_level_minus2+2))相同并且(yp>>(log2_parallel_merge_level_minus2+2))与(yn>>(log2_parallel_merge_level_minus2+2))相同。

(2)n是b1,并且availableflaga0+availableflaga1+availableflagb0+availableflagb1是“4”。

(3)位于[xn,yn]处的pu被禁止或帧内编码。即,availablen是“0”。

(4)singlemclflag是“0”,当前pu的分区形式是part_2nxn、part_2nxnu或part_2nxnd,partidx是“1”,并且n是“b1”。

(5)singlemclflag是“0”,当前pu的分区形式是part_nx2n、part_nlx2n或part_nrx2n,partidx是“1”,并且n是“a1”。

(6)作为确定运动信息的相似性的处理,n等于b1,并且位于(xa1,ya1)中的pu的运动信息与位于(xn,yn)中的运动信息彼此相同。

(7)作为确定运动信息的相似性的处理,n等于b0,并且位于(xb1,yb1)中的pu的运动信息与位于(xn,yn)中的运动信息彼此相同。

(8)作为确定运动信息的相似性的处理,n等于a0,并且位于(xa1,ya1)中的pu的运动信息与位于(xn,yn)中的运动信息彼此相同。

(9)作为确定运动信息的相似性的处理,n等于b2,并且位于(xa1,ya1)中的pu的运动信息与位于(xn,yn)中的运动信息彼此相同。

(10)作为确定运动信息的相似性的处理,n等于b2,并且位于(xb1,yb1)中的pu的运动信息与位于(xn,yn)中的运动信息彼此相同。

否则,availableflagn被设置为“1”,并且mvlx[xn,yn]、refidxlx[xn,yn]和predflaglx[xn,yn]被分别设置为mvlxn、refidxlxn、predflaglxn。

所述前述方法的应用范围能取决于块的尺寸或cu的深度而改变。编码器或解码器可被设置为使用预定值作为用于判断应用范围的变量(即,尺寸或深度信息),根据分布或电平使用预定值,并且当编码器在比特流中写入变量值时,解码器从比特流中导出该变量值以使用。

当应用范围取决于cu的深度而改变时,可使用仅向预定深度或更多应用的方法(a)、仅向预定深度应用的方法(b)、和仅向预定深度应用的方法(c),如下表1中图示的那样。

<表1>

表1的“0”代表其中将确定运动信息是否可用的方法应用到对应深度的情况,而“x”代表其中不将确定运动信息是否可用的方法应用到对应深度的情况。

参考表1,所有前述方法可应用到其中cu深度为2的情况。表1图示了一个示例并且可修改。

在前述实施例中,已基于作为一连串步骤或块的流程图描述了方法,但是这些方法不限于本发明的步骤的次序,并且可以在与前述步骤或次序不同的或同时的步骤或次序中存在任何步骤。此外,本领域技术人员能理解流程图中示出的步骤不是排他的,并且可包括其他步骤,或者一个或多个步骤不影响本发明的范围并且可删除。

前述实施例包括各个方面的示例。不能描述用于表达各个方面的所有可用组合,但是本领域技术人员能认识到,能使用其他组合。所以,能进行属于所附权利要求的本发明的所有其他替换、修改和改变。

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