编码器、解码器及对应帧间预测方法与流程

文档序号:26013149发布日期:2021-07-23 21:34阅读:48来源:国知局
编码器、解码器及对应帧间预测方法与流程
本发明要求于2018年11月22日提交的申请号为62/770,826的美国临时专利申请、于2019年1月2日提交的申请号为62/787,678的美国临时专利申请、于2019年3月11日提交的申请号为62/816,897的美国临时专利申请、以及于2019年9月24日提交的申请号为62/905,367的美国临时专利申请的优先权,其全部内容通过引用结合在本申请中。本申请实施例涉及图像处理领域,更具体地涉及帧间预测。
背景技术
:视频译码(视频编码和解码)广泛用于数字视频应用,例如广播数字tv、通过互联网和移动网络传输视频、实时会话应用(如视频聊天)、视频会议、dvd和蓝光光盘、视频内容采集和编辑系统,以及安全应用的摄像机。即使在视频较短的情况下,也需要对大量的视频数据进行描述,当数据要在带宽容量受限的通信网络中流式发送或以其它方式发送时,这样可能会造成困难。因此,视频数据通常要先压缩然后在现代电信网络中发送。由于内存资源可能有限,当在存储设备中存储视频时,视频的尺寸也可能成为问题。视频压缩设备通常在源端使用软件和/或硬件,以在发送或存储视频数据之前对该视频数据进行译码,从而减少用于表示数字视频图像所需的数据量。然后,压缩数据在目的地端通过对视频数据进行解码的视频解压缩设备接收。在网络资源有限而对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,以便能够在几乎不影响图像质量的情况下提高压缩比。技术实现要素:本申请实施例提供了根据独立权利要求所述的编码和解码装置和方法。本申请的第一方面,提供了一种用于图像块的预测方法,其中,当前块包括第一预测子块和第二预测子块,所述预测方法包括:从码流中解析第一索引,所述第一索引用于获得所述第一预测子块的预测信息;从所述码流中解析第二索引;比较所述第一索引与所述第二索引;当所述第二索引大于或等于所述第一索引时,调整所述第二索引;根据调整后的第二索引获得所述第二预测子块的预测信息。在一种可行的实现方式中,所述调整所述第二索引包括:将所述第二索引增加m,其中,m为正整数。在一种可行的实现方式中,m为1。在一种可行的实现方式中,所述从码流中解析第一索引之前,所述预测方法还包括:解析至少一个指示符,以确定所述当前块的预测模式,所述预测模式为三角预测模式或几何预测模式。所述预测模式可以是其它基于子块的预测模式,包括矩形或非矩形(梯形)模式。所述三角预测模式和所述几何预测模式可以统一为一种单一的预测模式,在可行的实现方式中可能会涉及到。在一种可行的实现方式中,所述预测方法还包括:获得所述当前块的候选列表。在一种可行的实现方式中,所述第一预测子块的预测信息是根据所述第一索引从所述候选列表中获得的。在一种可行的实现方式中,所述第二预测子块的预测信息是根据所述调整后的第二索引从所述候选列表中获得的。在一种可行的实现方式中,所述候选列表为融合模式候选列表。在一种可行的实现方式中,所述预测方法还包括:解析第一数值,以确定所述候选列表中的最大允许候选索引;根据所述最大允许候选索引获得最大索引,其中,所述第一索引不大于所述最大索引。在一种可行的实现方式中,所述根据所述最大允许候选索引获得最大索引包括:通过所述最大允许候选索引与预定数值之间的计算获得所述最大索引。在一种可行的实现方式中,所述根据所述最大允许候选索引获得最大索引包括:解析第二数值,以推导所述最大允许候选索引与所述最大索引之间的差值;通过所述最大允许候选索引与所述差值之间的计算获得所述最大索引。在一种可行的实现方式中,所述预测方法还包括:解析第三数值,以确定所述最大索引。在一种可行的实现方式中,所述最大允许候选索引不小于所述最大索引。在一种可行的实现方式中,所述根据调整后的第二索引获得所述第二预测子块的预测信息之后,所述预测方法还包括:根据所述第一预测子块的预测信息和所述第二预测子块的预测信息获得所述当前块的预测值。在一种可行的实现方式中,所述第一索引或所述第二索引是根据截断一元码二值化的。在一种可行的实现方式中,所述二值化的第一索引或第二索引的第一位元是采用cabac中的常规译码模式进行译码的。在一种可行的实现方式中,所述二值化的第一索引或第二索引的非第一位元是采用cabac中的旁路译码模式进行译码的。在一种可行的实现方式中,所述预测方法还包括:从所述码流中解析方向指示符,所述方向指示符用于表示所述当前块的划分方向。本申请的第二方面,提供了一种用于图像中的块的帧间预测方法,包括:获取预测指示符;判断所述预测指示符是否表示对所述块执行子块预测;当所述预测指示符表示对所述块执行子块预测时,获得两个不同指示符,所述两个不同指示符分别表示所述块中两个子块在运动信息候选列表中的两个不同条目;根据所述两个不同指示符对所述块进行帧间预测。在一种可行的实现方式中,所述获得两个不同指示符的步骤还包括:获得包括第一初始指示符和第二初始指示符的两个初始指示符;比较所述第二初始指示符与所述第一初始指示符;当所述第二初始指示符大于或等于所述第一初始指示符时,调整所述第二初始指示符,以获得更新后的第二指示符,所述更新后的第二指示符与所述第一初始指示符不同;将所述第一初始指示符和所述更新后的第二指示符确定为所述两个不同指示符。在一种可行的实现方式中,所述调整所述第二初始指示符,以获得更新后的第二指示符的步骤还包括:将所述第二初始指示符增加m,其中,m为预定义的数值,优选设置为1。在一种可行的实现方式中,所述方法还包括:将所述第一初始指示符的最大值设置为m,将所述第二初始指示符的最大值设置为m–m,其中,m不大于n,n为所述运动信息候选列表的尺寸。在一种可行的实现方式中,n为正整数,是根据接收到的码流中指示(signal)的指示符确定的。在一种可行的实现方式中,所述方法还包括:比较所述块的尺寸与设定阈值,若所述块的尺寸不大于所述设定阈值,则将所述第一初始指示符的最大值设置为m,将所述第二初始指示符的最大值设置为m–m,其中,m不大于n,n为所述运动信息候选列表的尺寸;若所述块的尺寸大于所述设定阈值,则将所述第一初始指示符的最大值设置为p,将所述第二初始指示符的最大值设置为p–m,其中,p大于m、且不大于n,n为所述运动信息候选列表的尺寸。在一种可行的实现方式中,m和p均为预定义的正整数。在一种可行的实现方式中,若确定p大于n,则更新p等于n;若确定m大于n,则更新m等于n。在一种可行的实现方式中,所述方法还包括:当所述预测指示符表示不对所述块执行子块预测时,获得单个指示符,所述单个指示符用于表示所述块的融合候选列表中的条目;根据所述单个指示符对所述块进行帧间预测。在一种可行的实现方式中,所述方法还包括:将所述第一初始指示符的最大值设置为m,其中,n为所述融合候选列表的尺寸,所述融合候选列表与所述运动信息候选列表不同。在一种可行的实现方式中,所述方法还包括:确定划分方向指示符,所述划分方向指示符表示所述块的划分方向。在一种可行的实现方式中,所述获得两个不同指示符的步骤还包括:当所述划分方向指示符表示第一划分方向时,调整所述第二初始指示符,以获得更新后的第二指示符,所述更新后的第二指示符与所述第一初始指示符不同;并将所述第一初始指示符和所述更新后的第二指示符确定为所述两个不同指示符;或者,当所述划分方向指示符表示第二划分方向时,调整所述第一初始指示符,以获得更新后的第一指示符,所述更新后的第一指示符与所述第二初始指示符不同;并将更新后的第一指示符和所述第二初始指示符确定为所述两个不同指示符。在一种可行的实现方式中,所述方法还包括:根据所述两个不同指示符,从所述运动信息候选列表中选择运动信息;根据所述选定的运动信息对所述当前块进行子块预测。在一种可行的实现方式中,所述方法还包括:根据所述两个不同指示符,从所述运动信息候选列表中选择第一运动信息和第二运动信息;根据所述第一运动信息对第一子块进行子块预测;根据所述第二运动信息对第二子块进行子块预测。在一种可行的实现方式中,所述第一子块被分配给几何中心更靠近所述当前块的左边界的部分。在一种可行的实现方式中,所述方法还包括:根据截断一元码对所述两个不同指示符进行二值化。在一种可行的实现方式中,所述方法还包括:采用上下文自适应二进制算术译码(contextadaptivebinaryarithmeticcoding,cabac)中的译码模式对所述两个不同指示符中的一个指示符的第一位元进行译码;并采用cabac中的旁路译码模式对所述两个不同指示符中的所述指示符的另一位元进行译码。本申请的第三方面,提供了一种用于块的解码方法,其中,当前块包括第一子单元和第二子单元,所述方法包括:解析第一指示符,所述第一指示符用于确定所述当前块的分割方式;解析第二指示符和第三指示符;根据所述第二指示符的值确定所述第一子单元的预测信息;确定所述第三指示符的值,当所述第三指示符的值大于或等于所述第二指示符的值时,将所述第三指示符的值与目标值相加;根据所述确定的第三指示符的值,确定所述第二子单元的预测信息。在一种可行的实现方式中,所述第二指示符的最大允许值为m,所述第三指示符的最大允许值为m–m,其中,m为正整数,m为预设的正整数。在一种可行的实现方式中,预测信息候选列表中的条目数量为n。在一种可行的实现方式中,m小于或等于n。在一种可行的实现方式中,m大于或等于n。在一种可行的实现方式中,所述方法还包括:解析第四指示符,所述第四指示符用于表示n的取值。在一种可行的实现方式中,n为预定值。在一种可行的实现方式中,所述方法还包括:解析第五指示符,所述第五指示符用于表示m的取值。在一种可行的实现方式中,m的取值由n的取值确定。本申请的第四方面,提供了一种帧间预测装置,其中,当前块包括第一预测子块和第二预测子块,所述装置包括:解析模块,用于:从码流中解析第一索引,所述第一索引用于获得所述第一预测子块的预测信息;以及从所述码流中解析第二索引;定位模块,用于:比较所述第一索引与所述第二索引;且当所述第二索引大于或等于所述第一索引时,调整所述第二索引;获得模块,用于根据调整后的第二索引获得所述第二预测子块的预测信息。在一种可行的实现方式中,所述定位模块用于将所述第二索引增加m,其中,m为正整数。在一种可行的实现方式中,m为1。在一种可行的实现方式中,从码流中解析第一索引之前,所述解析模块还用于解析至少一个指示符,以确定所述当前块的预测模式,所述预测模式为三角预测模式或几何预测模式。所述预测模式可以是其它基于子块的预测模式,包括矩形或非矩形(梯形)模式。所述三角预测模式和所述几何预测模式可以统一为一种单一的预测模式,其在该可行的实现方式中可能会涉及到。在一种可行的实现方式中,所述定位模块还用于获得所述当前块的候选列表。在一种可行的实现方式中,所述第一预测子块的预测信息是根据所述第一索引从所述候选列表中获得的。在一种可行的实现方式中,所述第二预测子块的预测信息是根据所述调整后的第二索引从所述候选列表中获得的。在一种可行的实现方式中,所述候选列表为融合模式候选列表。在一种可行的实现方式中,所述解析模块还用于:解析第一数值,以确定所述候选列表中的最大允许候选索引;根据所述最大允许候选索引获得最大索引,其中,所述第一索引不大于所述最大索引。在一种可行的实现方式中,所述解析模块用于:通过所述最大允许候选索引与预定数值之间的计算获得所述最大索引。在一种可行的实现方式中,所述解析模块用于:解析第二数值,以推导所述最大允许候选索引与所述最大索引之间的差值;通过所述最大允许候选索引与所述差值之间的计算获得所述最大索引。在一种可行的实现方式中,所述解析模块用于解析第三数值,以确定所述最大索引。在一种可行的实现方式中,所述最大允许候选索引不小于所述最大索引。在一种可行的实现方式中,根据调整后的第二索引获得所述第二预测子块的预测信息之后,所述获得模块还用于:根据所述第一预测子块的预测信息和所述第二预测子块的预测信息获得所述当前块的预测值。在一种可行的实现方式中,所述第一索引或所述第二索引是根据截断一元码进行二值化的。在一种可行的实现方式中,所述二值化的第一索引或第二索引的第一位元是采用cabac中的常规译码模式译码的。在一种可行的实现方式中,对所述二值化的第一索引或第二索引的非第一位元是采用cabac中的旁路译码模式译码的。在一种可行的实现方式中,所述解析模块用于从所述码流中解析方向指示符,所述方向指示符用于表示所述当前块的划分方向。本申请的第五方面,提供了一种计算机程序产品,包括程序代码。当所述程序代码在计算机或处理器上执行时,用于执行第一方面至第四方面中的任一项所述的方法。本申请的第六方面,提供了一种解码器,包括:一个或多个处理器;以及非瞬时性计算机可读存储介质,耦合到所述处理器,并存储由所述处理器执行的程序。当所述处理器执行所述程序时,配置所述解码器执行第一方面至第四方面中的任一项所述的方法。本申请的第七方面,提供了一种编码器,包括:一个或多个处理器;以及非瞬时性计算机可读存储介质,耦合到所述处理器,并存储由所述处理器执行的程序。当所述处理器执行所述程序时,配置所述编码器执行第一方面至第四方面中的任一项所述的方法。本申请的第八方面,提供了一种携带程序代码的非瞬时性计算机可读介质。当所述程序代码在计算机设备上执行时,使得所述计算机设备执行第一方面至第四方面中的任一项所述的方法。上述和其它目的通过独立权利要求请求保护的主题实现。其它实现方式在从属权利要求、说明书以及附图中是显而易见的。具体实施例在所附独立权利要求中概述,其它实施例在从属权利要求中概述。附图及以下说明中将详细描述一个或多个实施例。其它特征、目标和优点在说明书、附图以及权利要求中显而易见。需要说明的是,在本申请中,与整个块具有统一预测信息的预测模式相比,三角预测模式下,所述块的两个预测子块具有相同的预测信息这一情况是冗余的。本申请设计了一种预测索引译码方法,用于避免这种冗余情况,节省了指示预测索引的比特,提高了译码效率。此外,所述三角预测模式下的候选预测信息的最大数量是根据融合模式下的候选预测信息的最大数量推导的。与单独指示所述三角预测模式下的候选预测信息的最大数量相比,还节省了译码比特。附图说明下面结合附图对本发明实施例进行详细描述。图1a为用于实现本发明实施例的示例性视频译码系统的框图;图1b为用于实现本发明实施例的另一示例性视频译码系统的框图;图2为用于实现本发明实施例的示例性视频编码器的框图;图3为用于实现本发明实施例的视频解码器的示例性结构的框图;图4为示例性编码装置或解码装置的框图;图5为另一示例性编码装置或解码装置的框图;图6为空间融合候选的示例性位置图;图7为空间融合候选中被考虑用于进行冗余检查的候选对的示例图;图8为用于对时域融合候选的运动矢量进行缩放的示例图;图9为时域候选的示例性位置图;图10a为将一个块划分成两个三角形预测单元一种图示;图10b为将一个块划分成两个三角形预测单元的另一种图示;图11示出了其它子块分割方案的示例;图12为从融合候选列表推导单向预测运动矢量的一种图示;图13示出了将混合滤波器应用于块的示例;图14为cabac过程的示意性框图;图15为一种示例性预测方法的框图;图16为另一种示例性预测方法的框图;图17为用于实现本申请实施例的示例性预测装置的框图;图18为示例性编码装置或解码装置的框图;图19为实现内容分发服务的内容供应系统3100的示例性结构的框图;图20为终端设备的示例性结构的框图。除非另外明确说明,以下相同的附图标记是指相同或至少在功能上等效的特征。具体实施方式以下描述中,参考组成本公开一部分的附图,所述附图以说明的方式示出本发明实施例的具体方面或者可使用本发明实施例的具体方面。应理解,本发明实施例可在其它方面中使用,且可包括附图中未描述的结构变化或逻辑变化。因此,以下详细描述不应以限制性的意义来理解,且本发明的范围由所附权利要求书界定。例如,应理解,结合所描述的方法的揭示内容可以对用于执行所述方法的对应设备或系统也同样适用,且反之亦然。例如,如果描述一个或多个具体方法步骤,则对应的设备可以包括例如功能单元等一个或多个单元,来执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元中的每一个都执行多个步骤中的一个或多个),即使附图中未明确描述或说明此一个或多个单元。另一方面,例如,如果基于如功能单元等一个或多个单元来描述具体装置,则对应的方法可以包括一个步骤以执行一个或多个单元的功能(例如,一个步骤执行一个或多个单元的功能,或多个步骤中的每一个执行多个单元中的一个或多个单元的功能),即使附图中未明确描述或说明此一个或多个步骤。进一步,应理解的是,除非另外明确说明,本文中所描述的各种示例性实施例和/或方面的特征可以相互组合。视频译码通常是指处理形成视频或视频序列的图像序列。在视频译码领域,术语“帧(frame)”与“图像(picture/image)”可以用作同义词。视频译码(或通常称为译码)包括视频编码和视频解码两部分。视频编码在源端执行,通常包括处理(例如,压缩)原始视频图像,以减少表示该视频图像所需的数据量(以便更高效地进行存储和/或传输)视频解码在目的地端执行,通常包括相对于编码器的逆处理过程,用于重建该视频图像。实施例涉及的视频图像(或通常称为图像)的“译码”应理解为视频图像或各自视频序列的“编码”或“解码”。编码部分和解码部分也合称为编解码器(编码和解码,codec)。在无损视频译码的情况下,可以对原始视频图像进行重建,即重建的视频图像与原始视频图像具有相同的质量(假设存储或传输期间没有传输损耗或其它数据损失)。在有损视频译码的情况下,通过量化等进行进一步压缩,来减少表示视频图像所需的数据量。此时解码器侧无法完全重建视频图像,即重建的视频图像的质量低于或劣于原始视频图像的质量。若个视频译码标准属于“有损混合视频编解码器”组(即,将像素点域中的空间和时域预测与2d变换译码相结合,以在变换域中进行量化)。视频序列中的每个图像通常分割成不重叠块的集合,通常在块级别上进行译码。换句话说,编码器侧通常在块(视频块)级别上处理即编码视频,例如,通过空间(帧内)预测和时域(帧间)预测来产生预测块;从当前块(当前正在处理/待处理的块)中减去预测块,得到残差块;在变换域中变换并量化所述残差块,以减少待传输(压缩)的数据量,而解码器侧将相对于编码器的逆处理过程应用于编码或压缩后的块,以重建用于表示的当前块。此外,编码器和解码器的处理步骤相同,使得编码器和解码器生成相同的预测(例如,帧内预测和帧间预测)和/或重建,用于进行处理,即对后续块进行译码。在以下视频译码系统10的实施例中,视频编码器20和视频解码器30结合图1至图3进行描述。图1a为示例性译码系统10的示意性框图,例如可以利用本申请技术的视频译码系统10(或简称为译码系统10)。视频译码系统10中的视频编码器20(或简称为编码器20)和视频解码器30(或简称为解码器30)代表可用于根据本申请中描述的各种示例执行各技术的设备的示例。如图1a所示,译码系统10包括源设备12,源设备12用于将经编码的图像数据21,例如,提供给目的地设备14;目的地设备对所述经编码的图像数据13进行解码。源设备12包括编码器20,另外即可选地,包括图像源16、预处理器(或预处理单元)18如图像预处理器18、通信接口或通信单元22。图像源16可以包括或可以为任何类型的图像捕获设备、和/或任何类型的图像生成设备或任何类型的其它设备,其中,所述图像捕获设备例如为用于捕获现实世界图像的相机,所述图像生成设备例如为用于生成计算机动画图像的计算机图形处理器,所述其它设备用于获取和/或提供现实世界图像、计算机生成图像(例如,屏幕内容、虚拟现实(virtualreality,vr)图像)和/或其任意组合(例如,增强现实(augmentedreality,ar)图像)。所述图像源可以为存储上述图像中的任意图像的任何类型的存储器(memory/storage)。为了区分预处理器18和预处理单元18执行的处理,图像或图像数据17也可以称为原始图像或原始图像数据17。预处理器18用于接收(原始)图像数据17,并对图像数据17进行预处理,以获得经预处理的图像19或经预处理的图像数据19。预处理器18执行的预处理可包括例如修剪(trimming)、颜色格式转换(例如从rgb转换为ycbcr)、颜色校正或去噪。可以理解的是,预处理单元18可以为可选组件。视频编码器20用于接收经预处理的图像数据19并提供经编码的图像数据21(下文将根据图2等进行详细描述)。源设备12中的通信接口22可用于:接收经编码的图像数据21并通过通信信道13向目的地设备14等另一设备或任何其它设备发送经编码的图像数据21(或其它任意处理后的版本),以供存储或直接重建。目的地设备14包括解码器30(例如视频解码器30),另外即可选地,可包括通信接口或通信单元28、后处理器32(或后处理单元32)以及显示设备34。目的地设备14中的通信接口28用于直接从源设备12或从存储设备等任意其它源设备接收经编码的图像数据21(或其它任意处理后的版本),例如,存储设备为存储经编码的图像数据的存储设备,并将经编码的图像数据21提供给解码器30。通信接口22和通信接口28可用于通过源设备12与目的地设备14之间的直接通信链路,例如直接有线或无线连接等,或者通过任何类型的网络,例如有线网络、无线网络或其任意组合、任何类型的私网和公网或其任意类型的组合,发送或接收经编码的图像数据21或经编码的数据13。例如,通信接口22可用于将经编码的图像数据21封装为报文等合适的格式,和/或使用任意类型的传输编码或处理来处理所述经编码的图像数据,以便在通信链路或通信网络上进行传输。通信接口28与通信接口22对应,例如,可用于接收传输数据,并使用任意类型的对应传输解码或处理和/或解封装过程对传输数据进行处理,以获得经编码的图像数据21。通信接口22和通信接口28均可配置为如图1a中从源设备12指向目的地设备14的对应通信信道13的箭头所指示的单向通信接口,或配置为双向通信接口,并且可用于发送和接收消息等,以建立连接,确认并交换与通信链路和/或例如编码后的图像数据传输等数据传输相关的任何其它信息,等等。解码器30用于接收经编码的图像数据21并提供经解码的图像数据31或经解码的图像31(下文将根据图3或图5进行详细描述)。目的地设备14中的后处理器32用于对经解码的图像数据31(也称为经重建的图像数据),例如,经解码的图像31进行后处理,以获得经后处理的图像数据33,例如,经后处理的图像33。后处理单元32执行的后处理可以包括例如颜色格式转换(例如从ycbcr转换为rgb)、调色、修剪或重采样,或者用于产生供显示设备34等显示的经解码的图像数据31等任何其它处理。目的地设备14中的显示设备34用于接收经后处理的图像数据33,以向用户或观看者等显示图像。显示设备34可以为或包括任意类型的用于表示经重建的图像的显示器,例如,集成或外部显示屏或显示器。例如,显示器可以包括液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclightemittingdiode,oled)显示器、等离子显示器、投影仪、微型led显示器、硅基液晶显示器(liquidcrystalonsilicon,lcos)、数字光处理器(digitallightprocessor,dlp)或任意类型的其它显示器。尽管图1a示出了将源设备12和目的地设备14作为独立的设备,但设备实施例也可以同时包括源设备12和目的地设备14或同时包括源设备12和目的地设备14的功能,即同时包括源设备12或对应功能和目的地设备14或对应功能。在这些实施例中,源设备12或对应功能和目的地设备14或对应功能可以使用相同硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。根据描述,图1a所示的源设备12和/或目的地设备14中的不同单元或功能的存在和(准确)划分可能根据实际设备和应用而有所不同,这对技术人员来说是显而易见的。编码器20(例如视频编码器20)或解码器30(例如视频解码器30)或两者都可通过如图1b所示的处理电路如一个或多个微处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(application-specificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)、离散逻辑、硬件、视频译码专用处理器或其任意组合来实现。编码器20可以通过处理电路46实现,以包含参照图2所示的编码器20和/或本文描述的任何其它编码器系统或子系统所讨论的各种模块。解码器30可以通过处理电路46实现,以包含参照图3所示的解码器30和/或本文描述的任何其它解码器系统或子系统所讨论的各种模块。所述处理电路可用于执行下文描述的各种操作。如图5所示,如果部分技术在软件中实施,则设备可以将该软件的指令存储在合适的非瞬时性计算机可读存储介质中,通过一个或多个处理器在硬件中执行所述指令,从而执行本发明的技术。视频编码器20和视频解码器30中的任意一个可作为组合编解码器(encoder/decoder,codec)的一部分集成在单个设备中,如图1b所示。源设备12和目的地设备14可以包括多种设备中的任一种,包括任意类型的手持设备或固定设备,例如,笔记本电脑或膝上型电脑、手机、智能手机、平板或平板电脑、相机、台式计算机、机顶盒、电视机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备(如内容业务服务器或内容分发服务器)、广播接收设备、广播发射设备等,且可以使用或不使用任意类型的操作系统。在一些情况下,源设备12和目的地设备14可配备用于无线通信的组件。因此,源设备12和目的地设备14可以是无线通信设备。在一些情况下,图1a所示的视频译码系统10仅是示例性的,并且本申请的技术可适用于视频译码设置(例如,视频编码或视频解码),这些设置未必包括编码设备与解码设备之间的任何数据通信。在其它示例中,数据从本地存储器检索,在网络上流式传输等等。视频编码设备可以对数据进行编码并将数据存储到存储器中,和/或视频解码设备可以从存储器中检索数据并对数据进行解码。在一些示例中,由互不通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的设备来执行编码和解码。为便于描述,例如,参考由itu-t视频译码专家组(videocodingexpertsgroup,vceg)和iso/iec运动图像专家组(motionpictureexpertsgroup,mpeg)的视频译码联合工作组(jointcollaborationteamonvideocoding,jct-vc)开发的高效视频译码(high-efficiencyvideocoding,hevc)、通用视频译码(versatilevideocoding,vvc)参考软件、下一代视频译码标准来描述本发明实施例。本领域普通技术人员应理解本发明实施例不限于hevc或vvc标准。编码器和编码方法图2为用于实现本申请技术的示例性视频编码器20的示意性框图。在图2的示例中,视频编码器20包括输入单元201(或输入接口201)、残差计算单元204、变换处理单元206、量化单元208、反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲器(decodedpicturebuffer,dpb)230、模式选择单元260、熵编码单元270和输出单元272(或输出接口272)。所述模式选择单元260可包括帧间预测单元244、帧内预测单元254和分割单元262。帧间预测单元244可包括运动估计单元和运动补偿单元(未示出)。图2所示的视频编码器20也可以称为混合型视频编码器或基于混合型视频编解码器的视频编码器。残差计算单元204、变换处理单元206、量化单元208和模式选择单元260组成编码器20的前向信号路径;反量化单元210、逆变换处理单元212、重建单元214、缓冲器216、环路滤波器220、解码图像缓冲器(decodedpicturebuffer,dpb)230、帧间预测单元244和帧内预测单元254组成视频编码器20的后向信号路径。其中,视频编码器20的后向信号路径对应于解码器(参见图3所示的解码器30)的信号路径。反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲器230、帧间预测单元244和帧内预测单元254还组成视频编码器20的“内置解码器”。图像和图像分割(图像和块)编码器20可用于通过输入单元201等接收图像17(或图像数据17),例如,形成视频或视频序列的图像序列中的图像。接收到的图像或图像数据还可以是经预处理的图像19(或经预处理的图像数据19)。为简单起见,以下描述中称为图像17。图像17还可以称为当前图像或待译码图像(尤其在视频译码中,为区分当前图像和其它图像,其它图像例如为同一视频序列中,即同时包括当前图像的视频序列中,的先前经编码的图像和/或先前经解码的图像)。(数字)图像是或可以认为是具有强度值的像素点组成的二维阵列或矩阵。该阵列中的像素点也可以称为像素(pixel/pel)(图像元素的简称)。阵列或图像在水平方向和垂直方向(或轴线)上的像素点数量决定了该图像的尺寸和/或分辨率。为了表示颜色,通常采用三个颜色分量,即该图像可以表示为或包括三个像素点阵列。在rbg格式或颜色空间中,图像包括对应的红色、绿色和蓝色像素点阵列。然而,在视频译码中,每个像素通常以亮度和色度格式或颜色空间表示,例如,ycbcr,其包括y表示的亮度分量(有时也用l表示)和cb和cr表示的两个色度分量。亮度(或简称luma)分量y表示亮度或灰度级强度(例如,在灰度级图像中),而两个色度(或简称chroma)分量cb和cr表示色度或颜色信息分量。相应地,ycbcr格式的图像包括亮度像素点值(y)的亮度像素点阵列和色度值(cb和cr)的两个色度像素点阵列。rgb格式的图像可以转换或变换为ycbcr格式,反之亦然。该过程也称为颜色变换或转换过程。如果图像是单色的,则该图像可以只包括亮度像素点阵列。相应地,图像可以为例如单色格式的亮度像素点阵列或4:2:0、4:2:2和4:4:4彩色格式的亮度像素点阵列和两个对应的色度像素点阵列。在视频编码器20的实施例中,视频编码器20可以包括图像分割单元(图2中未示出),用于将所述图像17分割成多个(通常不重叠)图像块203。这些块也可以称为根块或宏块(h.264/avc标准)或称为译码树块(codingtreeblock,ctb)或译码树单元(codingtreeunit,ctu)(h.265/hevc和vvc标准)。所述图像分割单元可用于:对视频序列中的所有图像使用相同的块尺寸,并使用对应网格定义块尺寸,或者在图像或图像子集或图像组之间改变块尺寸,并将每个图像分割成对应的块。在其它实施例中,视频编码器可用于直接接收所述图像17的图像块203,例如,组成所述图像17的一个、若干个或所有图像块。图像块203也可以称为当前图像块或待译码图像块。与图像17一样,图像块203同样是或可以认为是具有强度值(像素点值)的像素点组成的二维阵列或矩阵,但是图像块203的尺寸要比图像17的尺寸小。换句话说,图像块203可包括一个像素点阵列(例如,图像17是单色图像时,图像块203包括一个亮度阵列;图像17是彩色图像时,图像块203包括一个亮度阵列或一个色度阵列),或者包括三个像素点阵列(例如,图像17是彩色图像时,图像块203包括一个亮度阵列和两个色度阵列),或者包括由所使用的颜色格式决定的任何其它数量和/或类型的阵列。所述图像块203在水平方向和垂直方向(或轴线)上的像素点的数量限定了图像块203的尺寸。相应地,某图像块可以为m×n(m列×n行)个像素点阵列,或m×n个变换系数阵列等。在图2所示的视频编码器20的实施例中,视频编码器20可用于对图像17进行逐块编码,例如,对每个图像块203进行编码和预测。在图2所示的视频编码器20的实施例中,视频编码器20还可以用于采用条带(slice)(也称为视频条带)对图像进行分割和/或编码。其中,某图像可以采用一个或多个条带(通常为不重叠的条带)进行分割或编码。每一条带可以包括一个或多个块(如ctu)或一个或多个块组(例如h.265/hevc和vvc标准中的分块(tile)或vvc标准中的砖形区(brick))。在图2所示的视频编码器20的实施例中,视频编码器20还可以用于采用条带/分块组(也称为视频分块组)和/或分块(也称为视频分块)对图像进行分割和/或编码。其中,某图像可以采用一个或多个条带/分块组(通常为不重叠的条带/分块组)进行分割或编码。每一条带/分块组可以包括,例如,一个或多个块(如ctu)或一个或多个分块,每一分块可以为,例如,矩形,并包括一个或多个完整块或部分块(如ctu)。残差计算残差计算单元204可用于根据图像块203和预测块265(下文将详细描述预测块265)通过如下方式计算残差块205(也称为残差205),例如,逐像素点(逐像素)从图像块203的像素点值中减去预测块265的像素点值,得到像素点域中的残差块205。变换变换处理单元206可用于对残差块205的像素点值执行离散余弦变换(discretecosinetransform,dct)或离散正弦变换(discretesinetransform,dst)等变换,以获得变换域中的变换系数207。变换系数207也可以称为变换残差系数,表示变换域中的残差块205。变换处理单元206可以用于执行dct/dst的整数近似,例如,针对h.265/hevc指定的变换。与正交dct变换相比,该整数化近似通常基于某一因子进行缩放。使用其它缩放因子作为变换过程的一部分,以维持经前向变换和逆变换处理的残差块的范数。缩放因子通常是基于某些约束条件来选择的,例如缩放因子是用于移位运算的2的幂、变换系数的位深度、准确性与实施成本之间的折衷等。例如,在编码器20侧通过逆变换处理单元212等为逆变换(在视频解码器30侧通过逆变换处理单元312等为对应的逆变换)指定具体的缩放因子,并且相应地,可以在编码器20侧通过变换处理单元206等为前向变换指定对应的缩放因子。在视频编码器20的实施例中,视频编码器20(对应地,变换处理单元206)可用于,例如,直接输出或经熵编码单元270进行编码或压缩后输出一种或多种变换类型的变换参数,使得视频解码器30可以接收并使用变换参数进行解码。量化量化单元208用于通过执行标量量化或矢量量化等对变换系数207进行量化,以获得量化系数209量化系数209也可以称为经量化的变换系数209或经量化的残差系数209。量化过程可以减小与部分或全部变换系数207相关的位深度。例如,可以在量化期间将n位变换系数向下舍入到m位变换系数,其中n大于m,可以通过调整量化参数(quantizationparameter,qp)修改量化程度。例如,对于标量量化,可以执行不同的缩放来实现更精细或更粗略的量化。量化步长越小,量化越精细;量化步长越大,量化越粗略。量化参数(quantizationparameter,qp)可用于表示合适的量化步长。例如,量化参数可以为合适的量化步长的预定义集合的索引。例如,小的量化参数可表示精细的量化(小的量化步长),大的量化参数可表示粗略的量化(大的量化步长),反之亦然。量化操作可以包括除以量化步长,而反量化单元210等执行的相应解量化或逆解量化操作可以包括乘以量化步长。在一些实施例中,根据hevc等一些标准,可以使用量化参数来确定量化步长。通常,可以根据量化参数使用包括除法运算的等式的定点近似来计算量化步长。可以引入其它缩放因子进行量化和解量化,用于恢复残差块的范数。由于在用于量化步长和量化参数的等式的定点近似中使用了缩放,所以可能修改了该残差块的范数。在一种示例性实现方式中,可以合并逆变换和解量化中的缩放。或者,可以使用自定义的量化表并在码流中等将自定义的量化表从编码器指示(signal)到解码器。量化是有损操作,其中量化步长越大,损耗越大。在视频编码器20的实施例中,视频编码器20(对应地,量化单元208)可用于,例如,直接输出或经熵编码单元270进行编码后输出量化参数(quantizationparameter,qp),使得视频解码器30可以接收并使用量化参数进行解码。反量化反量化单元210用于对量化系数执行量化单元208所执行的量化的反量化,以获得解量化系数211,例如,根据或通过与量化单元208相同的量化步长执行与量化单元208所执行的量化方案的反量化方案。解量化系数211也可以称为解量化残差系数211,其对应于变换系数207,但是由于量化造成损耗,反量化系数211通常与变换系数不完全相同。逆变换逆变换处理单元212用于执行变换处理单元206所执行的变换的逆变换,例如,逆离散余弦变换(discretecosinetransform,dct)或逆离散正弦变换(discretesinetransform,dst),以获得像素点域中的重建残差块213(或对应的解量化系数213)。重建残差块213也可以称为变换块213。重建重建单元214(例如,加法器或求和器214)用于将变换块213(即重建残差块213)与预测块265相加,例如,将重建残差块213的像素点值和预测块265的像素点值逐像素点进行相加,得到像素点域中的重建块215。滤波环路滤波器单元220(或简称为“环路滤波器”220)用于对重建块215进行滤波,得到滤波块221,或通常用于对重建像素点进行滤波,得到滤波像素点值。例如,环路滤波单元用于平滑像素的突变或者提高视频质量。环路滤波器单元220可以包括一个或多个环路滤波器,如去块滤波器、样本自适应偏移(sample-adaptiveoffset,sao)滤波器或一个或多个其它滤波器,例如,自适应环路滤波器(adaptiveloopfilter,alf)、噪声抑制滤波器(noisesuppressionfilter,nsf)或其任意组合。例如,环路滤波器单元220可以包括去块滤波器、sao滤波器和alf滤波器滤波过程的顺序可以是去块滤波、sao滤波和alf滤波。再例如,添加一种称为亮度映射与色度缩放(lumamappingwithchromascaling,lmcs)(即自适应环内整形器)的过程。该过程在去块滤波之前执行。再例如,去块滤波过程也可以应用于内部子块边缘,例如仿射子块边缘、atmvp子块边缘、子块变换(sub-blocktransform,sbt)边缘和帧内子分割(intrasub-partition,isp)边缘。尽管环路滤波器单元220在图2中示为环路内滤波器,但在其它配置中,环路滤波器单元220可以实现为环路后滤波器。滤波块221也可以称为滤波重建块221。在视频编码器20的实施例中,视频编码器20(对应地,环路滤波器单元220)可用于,例如,直接输出或经熵编码单元270进行编码后输出环路滤波参数(例如sao滤波参数、alf滤波参数或lmcs参数),使得解码器30可以接收并使用相同或不同的环路滤波参数进行解码。解码图像缓冲器解码图像缓冲器(decodedpicturebuffer,dpb)230可以是存储参考图像或通常存储参考图像数据的存储器,以在视频编码器20对视频数据进行编码时使用。dpb230可由多种存储器设备中的任一者形成,例如包含同步dram(synchronousdram,sdram)的动态随机存取存储器(dynamicrandomaccessmemory,dram)、磁阻式ram(magnetoresistiveram,mram)、电阻式ram(resistiveram,rram)或其它类型的存储器设备。解码图像缓冲器(decodedpicturebuffer,dpb)230可用于存储一个或多个滤波块221。解码图像缓冲器230还可以用于存储同一当前图像的或如先前重建图像等的不同图像的其它先前滤波块如先前重建和滤波的块221,且可提供完整的先前重建图像即经解码的图像(以及对应的参考块和像素点)和/或部分重建的当前图像(以及对应的参考块和像素点),例如,以进行帧间预测。解码图像缓冲器230还可以用于存储一个或多个未经滤波的重建块215,或通常存储未经滤波的重建像素点,例如,未经环路滤波单元220滤波的重建块215,或未进行任何其它处理的重建块或重建像素点。模式选择(分割和预测)模式选择单元260包括分割单元262、帧间预测单元244和帧内预测单元254,其用于从解码图像缓冲器230或其它缓冲器(例如,列缓冲器,图中未显示)接收或获得原始图像数据如原始块203(当前图像17的当前块203),以及重建图像数据如同一(当前)图像和/或一个或多个先前解码的图像的经滤波和/或未经滤波的重建像素点或重建块。重建图像数据用作帧间预测或帧内预测等预测所需的参考图像数据,用于获得预测块265或预测值265。模式选择单元260可用于为当前块预测模式(包括不分割模式)和预测模式(例如帧内或帧间预测模式)确定或选择分割模式,并生成对应的预测块265,所述预测块用于残差块205的计算以及重建块215的重建。在模式选择单元260的实施例中,模式选择单元260可用于选择分割和预测模式(例如,从模式选择单元260支持或可用的模式中选择)。所述分割和预测模式提供最佳匹配,即最小残差(最小残差意味着更好的压缩性能,以用于发送或存储),或提供最小指示开销(最小指示开销意味着更好的压缩性能,以用于发送或存储),或者同时考虑以上两者或在以上两者中取得平衡。模式选择单元260可用于基于率失真优化(ratedistortionoptimization,rdo)确定分割和预测模式,即选择提供最小率失真的预测模式。本文中“最佳”、“最小”、“最优”等术语不一定指总体上“最佳”、“最小”、“最优”等,也可以指满足终止或选择标准的情况,例如,某个值超过或低于阈值或其它限制,可能导致“次优选择”,但会降低复杂度和处理时间。换言之,分割单元262可用于将视频序列中的图像分割为译码树单元(codingtreeunit,ctu)序列,ctu203可进一步被分割成较小的块部分或子块(再次形成块),例如,通过迭代使用四叉树(quad-treepartitioning,qt)分割、二叉树(binary-treepartitioning,bt)分割或三叉树(triple-treepartitioning,tt)分割或其任意组合,并且用于例如对块部分或子块中的每一个进行预测,其中,模式选择包括选择分割块203的树结构和选择应用于块部分或子块中的每一个的预测模式。下文将详细地描述由视频编码器20执行的分割(例如,由分割单元260执行)处理和预测处理(例如,由帧间预测单元244和帧内预测单元254执行)。分割分割单元262可用于将视频序列中的图像分割为译码树单元(codingtreeunit,ctu)序列,分割单元262可将一个译码树单元(codingtreeunit,ctu)203分割(或划分)为较小的部分,例如正方形或矩形小块。对于具有三个像素点阵列的图像,一个ctu由n×n个亮度像素点块和两个对应的色度像素点块组成。ctu中亮度块的最大允许尺寸在正在开发的通用视频译码(versatilevideocoding,vvc)标准中被指定为128×128,但是将来可能被指定为不同于128×128的值,例如256×256。图像的ctu可以集中/分组为条带/分块组、分块或砖形区。一个分块涵盖一个图像的矩形区域,而且一个分块可以分成一个或多个砖形区。一个砖形区由一个分块内的多个ctu行组成。没有分割为多个砖形区的分块可以称为砖形区。但是,砖形区是分块的真子集,因此不可以称为分块。vvc支持两种分块组模式,分别为光栅扫描条带/分块组模式和矩形条带模式。在光栅扫描分块组模式中,一个条带/分块组包含对图像进行分块光栅扫描时的分块序列。在矩形条带模式中,条带包含一个图像中的多个砖形区,这些砖形区共同组成图像的矩形区域。矩形条带内的砖形区按照条带中的砖形区光栅扫描顺序进行排列。这些较小块(也可以称为子块)可进一步分割为更小的部分。这也称为树分割或分层树分割,其中,在根树层级0(层级0、深度0)等的根块可以递归地分割为至少两个下一较低树层级的块,例如树层级1(层次级别1、深度1)的节点。这些块又可以分割为至少两个下一较低层级的块,例如树层级2(层级2、深度2)等,直到由于满足结束标准而结束分割,例如达到最大树深度或最小块尺寸。未进一步分割的块也称为树的叶块或叶节点。分割为两个部分的树称为二叉树(binary-tree,bt),分割为三个部分的树称为三叉树(ternary-tree,tt),分割为四个部分的树称为四叉树(quad-tree,qt)。例如,译码树单元(codingtreeunit,ctu)可以为或包括亮度像素点的ctb、具有三个像素点阵列的图像的色度像素点的两个对应ctb、或单色图像的像素点的ctb或采用三个独立颜色平面和语法结构(用于译码像素点)译码的图像的像素点的ctb。相应地,译码树块(codingtreeblock,ctb)可以为n×n个像素点块,其中,n可以设为某个值以根据此n的值将分量划分为ctb,这就是分割。译码单元(codingunit,cu)可以为或包括亮度像素点的译码块、具有三个像素点阵列的图像的色度像素点的两个对应译码块、或单色图像的像素点的译码块或采用三个独立颜色平面和语法结构(用于译码像素点)译码的图像的像素点的译码块。相应地,译码块(codingblock,cb)可以为m×n个像素点块,其中,m、n可以设为某值以根据此m、n的值将ctb划分为译码块,这就是分割。在一些实施例中,例如根据hevc,可以通过记作译码树的四叉树结构将译码树单元(codingtreeunit,ctu)划分为多个cu。在叶cu级作出是否使用帧间(时域)预测或帧内(空间)预测对图像区域进行译码的决定。每个叶cu可以根据pu划分类型进一步划分为一个、两个或四个pu。一个pu内执行相同的预测过程,并以pu为单位向解码器传输相关信息。根据pu划分类型执行预测过程得到残差块之后,可以根据类似于用于cu的译码树的其它四叉树结构将叶cu分割为变换单元(transformunit,tu)。在一些实施例中,例如根据当前正在开发的最新视频译码标准(称为通用视频译码(versatilevideocoding,vvc)),使用嵌套多类型树(例如二叉树和三叉树)的组合四叉树来划分用于分割编码树单元的分段结构。在译码树单元内的译码树结构中,cu可以为正方形或矩形。例如,译码树单元(codingtreeunit,ctu)首先根据四叉树结构进行分割。然后,四叉树叶节点进一步根据多类型树结构进行分割。多类型树形结构有四种划分类型:垂直二叉树划分(split_bt_ver)、水平二叉树划分(split_bt_hor)、垂直三叉树划分(split_tt_ver)以及水平三叉树划分(split_tt_hor)。多类型树叶节点称为译码单元(codingunit,cu),除非cu对于最大变换长度而言太大,否则,这样的分段将用于进行预测和变换处理,而无需进行其它任何分割。在大多数情况下,这表示cu、pu和tu在四叉树嵌套多类型树的译码块结构中具有相同的块尺寸。当最大支持变换长度小于cu的彩色分量的宽度或高度时,就会出现该异常情况。因此,vvc制定了在四叉树嵌套多类型树的译码结构中用于分割划分信息的唯一指示机制。在该指示机制中,译码树单元(codingtreeunit,ctu)作为四叉树的根首先根据四叉树结构进行分割。然后,每个四叉树叶节点(当足够大而允许)被进一步分割为一个多类型树结构。在该多类型树结构中,指示第一标志(mtt_split_cu_flag),以表示是否对节点进行进一步分割。当对节点进行进一步分割时,指示第二标志(mtt_split_cu_vertical_flag),以表示划分方向,再指示第三标志(mtt_split_cu_binary_flag),以表示该划分是二叉树划分或三叉树划分。根据mtt_split_cu_vertical_flag和mtt_split_cu_binary_flag的值,解码器可以根据某预定义的规则或某一表格推导用于cu的多类型树划分模式(mttsplitmode)。需要说明的是,对于某种设计,例如vvc硬件解码器中的64×64的亮度块和32×32的色度流水线设计,当亮度译码块的宽度或高度中的一者大于64时,不允许对tt进行划分,如图6所示。当色度译码块的宽度或高度中的一者大于32时,也不允许对tt进行划分。流水线设计将图像分为多个虚拟流水线数据单元(virtualpipelinedataunit,vpdu),所述虚拟流水线数据单元在图像中定义为互不重叠的单元。在硬件解码器中,连续的vpdu同时在多个流水线阶段进行处理。在大多数流水线阶段,vpdu的尺寸与缓冲器的尺寸大体上成正比,因此需要保持较小的vpdu。在大多数硬件解码器中,vpdu的尺寸可以设置为最大变换块(transformblock,tb)的尺寸。但是,在vvc中,三叉树(tt)和二叉树(bt)的分割可能会增加vpdu的尺寸。另外,需要说明的是,当树节点块的一部分超出图像的底部边界或右边界时,强制对该树节点块进行划分,直到每个经译码的cu的所有像素点都位于图像边界内。例如,所述帧内子分割(intrasub-partitions,isp)工具可以根据块尺寸将亮度的帧内预测块垂直或水平地划分为两个或四个子部分。在一个示例中,视频编码器20中的模式选择单元260可用于执行上文描述的分割技术的任意组合。如上所述,视频编码器20用于从(如预定的)预测模式集合中确定或选择最好或最优的预测模式。该预测模式集合可以包括如帧内预测模式和/或帧间预测模式。帧内预测帧内预测模式集合可以包括35种不同的帧内预测模式,例如,dc(或均值)模式和平面模式等非方向性模式或如hevc定义的方向性模式,或者可以包括67种不同的帧内预测模式,例如,dc(或均值)模式和平面模式等非方向性模式或如vvc中定义的方向性模式。例如,若干传统的角度帧内预测模式被自适应地替换为如vvc中定义的用于非正方形块的广角帧内预测模式。又例如,为了避免dc预测的除法运算,仅使用更长的边来计算非正方形块的平均值。而且,平面模式的帧内预测结果还可以通过位置决定的帧内预测组合(positiondependentintrapredictioncombination,pdpc)方法进行修改。帧内预测单元254用于根据帧内预测模式集合中的帧内预测模式使用同一当前图像的相邻块的重建像素点来生成帧内预测块265。帧内预测单元254(或通常为模式选择单元260)还用于以语法元素266的形式向熵编码单元270输出帧内预测参数(或通常为表示块的选定帧内预测模式的信息),以将该帧内预测参数包含到经编码的图像数据21中,从而视频解码器30可以,例如,接收并使用该预测参数进行解码。帧间预测帧间预测模式(或可能的帧间预测模式)集合取决于可用参考图像(即,例如前述存储在dpb230中的至少部分先前解码的图像)和其它帧间预测参数,例如取决于是否使用整个参考图像或仅使用参考图像的一部分如当前块的区域附近的搜索窗口区域,来搜索最佳匹配参考块,和/或例如取决于是否执行半像素、四分之一像素和/或16分之一像素的像素内插。除了上述预测模式之外,还可以使用跳过(skip)模式、直接模式和/或其它帧间预测模式。例如,扩展融合预测,这种模式下的融合候选列表由以下五种候选类型按顺序组成:来自空间相邻cu的空间运动向量预测(mvp)、来自并置cu的时域mvp、来自fifo表的历史mvp、成对的平均mvp和零运动向量(mv)。可以使用基于双边匹配的解码器端运动矢量修正(decodersidemotionvectorrefinement,dmvr)方法来增加融合模式下的mv的准确性。带有mvd的融合模式(mergemodewithmvd,mmvd)即为带运动矢量差的融合模式。在发送跳过标志和融合标志之后立即指示mmvd标志,用于表示是否对cu使用mmvd模式。可以使用cu级自适应运动矢量分辨率(adaptivemotionvectorresolution,amvr)方案。amvr方案支持对cu的mvd以不同的精度进行译码。根据当前cu的预测模式,自适应地选择当前cu的mvd。当cu以融合模式进行译码时,可以将合并的帧间/帧内预测(combinedinter/intraprediction,ciip)模式应用于当前cu。对帧间预测信号和帧内预测信号进行加权平均,得到ciip预测。仿射运动补偿预测中,通过2个控制点(4参数)或3个控制点(6参数)运动矢量的运动信息来描述块的仿射运动场。基于子块的时域运动矢量预测(subblock-basedtemporalmotionvectorprediction,sbtmvp),与hevc中的时域运动矢量预测(temporalmotionvectorprediction,tmvp)类似,但预测的是当前cu中的子cu的运动矢量。双向光流(bi-directionalopticalflow,bdof)以前称为bio,是一种大大减少计算量的简化版本,特别是减少了乘法运算的次数以及降低了乘数的尺寸。在三角形分割模式中,cu以对角线划分和反对角线划分两种划分方式被均匀划分为两个三角形部分。此外,双向预测模式在简单的平均方式基础上进行了扩展,允许对两个预测信号进行加权平均。帧间预测单元244可包括运动估计(motionestimation,me)单元和运动补偿(motioncompensation,mc)单元(两者均未在图2中示出)。运动估计单元可用于接收或获取图像块203(当前图像17的当前图像块203)和经解码的图像231,或至少一个或多个先前重建的块,例如,一个或多个其它/不同的先前解码的图像231的重建块,来进行运动估计。例如,一个视频序列可以包括当前图像和先前解码的图像231,或者,换句话说,当前图像和先前解码的图像231可以为组成视频序列的图像序列的一部分或形成该图像序列。例如,编码器20可用于从多个其它图像中相同或不同图像的多个参考块中选择参考块,并将参考图像(或参考图像索引)和/或所述参考块的位置(x、y坐标)与当前块的位置之间的偏移(空间偏移)作为帧间预测参数提供给运动估计单元。该偏移也称为运动矢量(motionvector,mv)。运动补偿单元用于获取如接收帧间预测参数,并根据或使用该帧间预测参数进行帧间预测,以获得帧间预测块265。由运动补偿单元执行的运动补偿可包括基于通过运动估计确定的运动矢量/块矢量提取或生成预测块,还可包括以子像素精度进行内插。进行内插滤波时,可以从已知像素的像素点产生其它像素的像素点,从而潜在地增加可用于对图像块进行译码的候选预测块的数量。接收到当前图像块的pu对应的运动矢量后,运动补偿单元可在其中一个参考图像列表中定位该运动矢量所指向的预测块。运动补偿单元还可以生成与块和视频条带相关的语法元素,以供视频解码器30在解码该视频条带的图像块时使用。此外,可选的,作为条带和相应语法元素的替代,可以生成或使用分块组和/或分块以及相应的语法元素。熵译码例如,熵编码单元270用于将熵编码算法或方案(例如,可变长度译码(variablelengthcoding,vlc)方案、上下文自适应vlc方案(contextadaptivevlc,calvc)、算术译码方案、二值化算法、上下文自适应二进制算术译码(contextadaptivebinaryarithmeticcoding,cabac)、基于语法的上下文自适应二进制算术译码(syntax-basedcontext-adaptivebinaryarithmeticcoding,sbac)、概率区间分割熵(probabilityintervalpartitioningentropy,pipe)译码或其它熵编码方法或技术)或旁路(无压缩)方案应用于量化系数209、帧间预测参数、帧内预测参数、环路滤波参数和/或其它语法元素,得到可以通过输出单元272以经编码的码流21等形式输出的经编码的图像数据21,使得视频解码器30可以接收并使用这些参数进行解码。可将经编码的码流21传输到视频解码器30,或将其存储在存储器中以供视频解码器30进行后续传输或检索。视频编码器20的其它结构变体可用于对视频流进行编码。例如,基于非变换的编码器20能够在没有变换处理单元206的情况下直接量化某些块或帧的残差信号。在另一种实现方式中,编码器20可以具有组合成单个单元的量化单元208和反量化单元210。解码器和解码方法图3示出了用于实现本申请技术的示例性视频解码器30。视频解码器30用于接收例如由编码器20编码的经编码的图像数据21(例如,经编码的码流21),得到经解码的图像331。经编码的图像数据或经编码的码流包括用于解码所述经编码的图像数据的信息,例如,表示经编码的视频条带(和/或分块组或分块)的图像块的数据以及相关的语法元素。在图3的示例中,解码器30包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(如求和器314)、环路滤波器320、解码图像缓冲器(decodedpicturebuffer,dpb)330、模式应用单元360、帧间预测单元344和帧内预测单元354。帧间预测单元344可以为或包括运动补偿单元。在一些示例中,视频解码器30可执行大体上与图2所示视频编码器100所执行的编码过程相反的解码过程。如编码器20所述,反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲器(decodedpicturebuffer,dpb)230、帧间预测单元344和帧内预测单元354还组成视频编码器20的“内置解码器”。相应地,反量化单元310的功能可以与反量化单元110相同;逆变换处理单元312的功能可以与逆变换处理单元212相同;重建单元314的功能可以与重建单元214相同;环路滤波器320的功能可以与环路滤波器220相同;解码图像缓冲器330的功能可以与解码图像缓冲器230相同。因此,针对视频编码器20的相应单元和功能的解释相应地适用于解释视频解码器30的相应单元和功能。熵解码熵解码单元304用于解析码流21(或一般为经编码的图像数据21),并熵解码经编码的图像数据21,以获得量化系数309和/或经解码的译码参数(图3中未示出)等,例如帧间预测参数(如参考图像索引和运动矢量)、帧内预测参数(如帧内预测模式或索引)、变换参数、量化参数、环路滤波参数和/或其它语法元素等中的任一者或全部。熵解码单元304可使用与编码器20中的熵编码单元270所采用的编码方案相对应的解码算法或方案。熵解码单元304还可用于向模式应用单元360提供帧间预测参数、帧内预测参数和/或其它语法元素,并向解码器30的其它单元提供其它参数。视频解码器30可以接收视频条带级和/或视频块级的语法元素。此外,可选的,作为条带和相应语法元素的替代,可以接收或使用分块组和/或分块以及相应的语法元素。反量化反量化单元310可用于从经编码的图像数据21(例如,通过熵解码单元304等解析和/或解码)接收量化参数(quantizationparameter,qp)(或通常为与反量化相关的信息)和量化系数,并基于所述量化参数对经解码的量化系数309执行反量化,以获得解量化系数311,所述解量化系数311也可以称为变换系数311。反量化过程可以包括使用视频编码器20为视频条带(或分块或分块组)中的每一视频块计算的量化参数来确定量化程度,同样也确定需要执行的反量化的程度。逆变换逆变换处理单元312可用于接收解量化系数311,并对解量化系数311执行变换以获得像素点域中的重建残差块213。其中,所述解量化系数311也称为变换系数311,所述重建残差块213也可以称为变换块313。所述变换可以为逆变换,例如逆dct、逆dst、逆整数变换或概念上类似的逆变换过程。逆变换处理单元312还可以用于从经编码的图像数据21(例如通过熵解码单元304解析和/或解码)接收变换参数或相应信息,以确定将对解量化系数311执行的变换。重建重建单元314(例如,加法器或求和器314)可用于将重建残差块313与预测块365相加,例如,将重建残差块313的像素点值与预测块365的像素点值相加,得到像素点域中的重建块315。滤波环路滤波器单元320(在译码环路中或在译码环路之后)用于对重建块315进行滤波,得到滤波块321,从而平滑像素的突变或提高视频质量等。环路滤波器单元320可以包括一个或多个环路滤波器,如去块滤波器、样本自适应偏移(sample-adaptiveoffset,sao)滤波器或一个或多个其它滤波器,例如,自适应环路滤波器(adaptiveloopfilter,alf)、噪声抑制滤波器(noisesuppressionfilter,nsf)或其任意组合。例如,环路滤波器单元220可以包括去块滤波器、sao滤波器和alf滤波器滤波过程的顺序可以是去块滤波、sao滤波和alf滤波。再例如,添加一种称为亮度映射与色度缩放(lumamappingwithchromascaling,lmcs)(即自适应环内整形器)的过程。该过程在去块滤波之前执行。再例如,去块滤波过程也可以应用于内部子块边缘,例如仿射子块边缘、atmvp子块边缘、子块变换(sub-blocktransform,sbt)边缘和帧内子分割(intrasub-partition,isp)边缘。尽管环路滤波器单元320在图3中示为环路内滤波器,但在其它配置中,环路滤波器单元320可以实现为环路后滤波器。解码图像缓冲器之后,将一个图像的解码视频块321存储在解码图像缓冲器330中。经解码的图像331作为参考图像存储在所述解码图像缓冲器330中,用于后续对其它图像进行运动补偿和/或后续相应输出以进行显示。解码器30用于通过输出单元312等输出经解码的图像311,以向用户呈现或供用户查看。预测帧间预测单元344的功能可以与帧间预测单元244(特别是运动补偿单元)相同;帧内预测单元354的功能可以与帧间预测单元254相同,并根据从经编码的图像数据21接收到的分割和/或预测参数或相应信息(例如,通过熵解码单元304等解析和/或解码)决定划分或分割模式并执行预测。模式应用单元360可用于根据重建图像、重建块或相应的像素点(已滤波的或未滤波的)按块进行预测(帧内预测或帧间预测),得到预测块365。将视频条带译码为帧内译码(i)条带时,模式应用单元360中的帧内预测单元354用于根据指示的帧内预测模式和来自当前图像的先前解码块的数据为当前视频条带的图像块生成预测块365。将视频图像译码为帧间译码(即b或p)条带时,模式应用单元360中的帧间预测单元344(例如运动补偿单元)用于根据运动矢量和从熵解码单元304接收到的其它语法元素为当前视频条带的视频块生成预测块365。对于帧间预测,可以从其中一个参考图像列表的其中一个参考图像产生这些预测块。视频解码器30可以基于存储在dpb330中的参考图像采用默认构建技术来构建参考帧列表:列表0和列表1。除了条带(如视频条带)或作为条带的替代,可以将相同或类似过程应用于或体现于分块组(如视频分块组)和/或分块(如视频分块)上,例如,可以采用i、p或b分块组和/或分块对视频进行译码。模式应用单元360用于通过解析运动矢量或相关信息以及其它语法元素,确定当前视频条带的视频块的预测信息,并使用该预测信息为正在解码的当前视频块产生预测块。例如,模式应用单元360使用接收到的部分语法元素确定译码视频条带的视频块的预测模式(例如帧内预测或帧间预测)、帧间预测条带类型(例如b条带、p条带或gpb条带)、条带的一个或多个参考图像列表的构建信息、条带的每一帧间编码视频块的运动矢量、条带的每一帧间译码视频块的帧间预测状态、以及其它信息,以供解码当前视频条带的视频块。除了条带(如视频条带)或作为条带的替代,可以将相同或类似过程应用于或体现于分块组(如视频分块组)和/或分块(如视频分块)上,例如,可以采用i、p或b分块组和/或分块对视频进行译码。在图3所示的视频编码器30的实施例中,视频编码器30还可以用于采用条带(也称为视频条带)对图像进行分割和/或解码。其中,某图像可以采用一个或多个条带(通常为不重叠的条带)进行分割或解码。每一条带可以包括一个或多个块(如ctu)或一个或多个块组(例如h.265/hevc和vvc标准中的分块(tile)或vvc标准中的砖形区(brick))。在图3所示的视频解码器30实施例中,视频解码器30还可以用于采用条带/分块组(也称为视频分块组)和/或分块(也称为视频分块)对图像进行分割和/或解码。其中,某图像可以采用一个或多个条带/分块组(通常为不重叠的条带/分块组)进行分割或解码。每一条带/分块组可以包括,例如,一个或多个块(如ctu)或一个或多个分块,每一分块可以为,例如,矩形,并包括一个或多个完整块或部分块(如ctu)。视频解码器30的其它变体可用于对经编码的图像数据21进行解码。例如,解码器30能够在没有环路滤波器单元320的情况下产生输出视频流。例如,基于非变换的解码器30能够在没有逆变换处理单元312的情况下直接反量化某些块或帧的残差信号。在另一种实现方式中,视频解码器30可以具有组合成单个单元的反量化单元310和逆变换处理单元312。应当理解的是,在编码器20和解码器30中,可以针对当前环节的处理结果进行进一步处理,然后输出到下一环节。例如,在插值滤波、运动矢量推导或环路滤波等之后,可以对插值滤波、运动矢量推导或环路滤波的处理结果进一步进行修正(clip)或移位(shift)等操作。需要说明的是,可以对当前块的推导运动矢量(包括但不限于仿射模式下的控制点运动矢量、仿射、平面、atmvp模式下的子块运动矢量、时域运动矢量等)执行进一步的操作。例如,根据运动矢量的表示位将该运动矢量的值限制在预定义范围。如果运动矢量的表示位为bitdepth,则运动矢量的取值范围为–2^(bitdepth–1)~2^(bitdepth–1)–1,其中“^”符号表示幂次方。例如,如果bitdepth设置为16,则该取值范围为–32768~32767;如果bitdepth设置为18,则该取值范围为–131072~131071。例如,推导到的运动矢量的值(例如一个8×8块中的4个4×4子块的mv)被限制,使得所述4个4×4子块mv的整数部分之间的最大差值不超过n个像素,例如不超过1个像素。这里提供了两种根据bitdepth限制运动矢量的方法。图4是本发明实施例提供的视频译码设备400的示意图。视频译码设备400适用于实现本文描述的公开实施例。在一个实施例中,视频译码设备400可以是解码器,例如图1a中的视频解码器30,也可以是编码器,例如图1a中的视频编码器20。视频译码设备400包括:入端口410(或输入端口410)和接收单元(receiverunit,rx)420,用于接收数据;处理器、逻辑单元或中央处理单元(centralprocessingunit,cpu)430,用于处理数据;发送单元(transmitterunit,tx)440和出端口450(或输出端口450),用于发送数据;存储器460,用于存储数据。视频译码设备400还可以包括耦合到入端口410、接收单元420、发送单元440和出端口450的光电(optical-to-electrical,oe)组件和电光(electrical-to-optical,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可以是易失性和/或非易失性的,可以是只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、三态内容寻址存储器(ternarycontent-addressablememory,tcam)和/或静态随机存取存储器(staticrandom-accessmemory,sram)。图5为示例性实施例提供的装置500的简化框图,其中,装置500可用作图1中的源设备12和目的地设备14中的任一者或两者。装置500中的处理器502可以是中央处理单元。或者,处理器502可以是现有的或今后将研发出的能够操控或处理信息的任何其它类型的设备或多个设备。虽然可以使用如图所示的处理器502等单个处理器来实施所公开的实现方式,但使用一个以上的处理器可以提高速度和效率。在一种实现方式中,装置500中的存储器504可以是只读存储器(readonlymemory,rom)设备或随机存取存储器(randomaccessmemory,ram)设备。任何其它合适类型的存储设备都可以用作存储器504。存储器504可以包括处理器502通过总线512访问的代码和数据506。存储器504还可以包括操作系统508和应用程序510,应用程序510包括允许处理器502执行本文所述方法的至少一个程序。例如,应用程序510可以包括应用1至n,所述应用1至n包括执行本文所述方法的视频译码应用。装置500还可以包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是将显示器与可用于感测触摸输入的触敏元件进行组合的触敏显示器。显示器518可以通过总线512耦合到处理器502。虽然装置500的总线512在本文中描述为单个总线,但是总线512可以包括多个总线。此外,辅助储存器514可以直接耦合到装置500的其它组件,或者可以通过网络进行访问,且可以包括存储卡等单个集成单元或多个存储卡等多个单元。因此,装置500可以通过多种配置实现。下面介绍通过本申请提供的当前方案可以实现的一些技术:融合候选列表itu-th.265标准中引入了融合运动候选列表的构建过程。在另一实施例中,通用视频译码(versatilevideocoding,vvc)标准的扩展融合预测中采用了融合运动候选列表。块融合操作是用于运动数据译码的一种特殊模式(也称为“融合模式”)。块融合操作允许当前块使用相邻块的相同运动信息。该运动信息包括运动数据,而运动数据包括表示使用一个或两个参考图像列表的信息、以及每个参考图像列表的参考索引和运动矢量。块融合操作在两个相邻块对应于图像帧的同一不可变形对象的情况下特别适用。在这种情况下,可以通过相同的运动矢量和相同的参考图像对该两个块进行预测。因此,对于该两个块来说,整个运动信息都是相同的。在一种实现方式中,检查相邻块是否可用并包含运动信息之后,在将该相邻块的所有运动数据作为运动信息候选之前执行一些额外的冗余检查。在一种实现方式中,融合候选列表由以下五种候选按顺序组成:(1)来自空间相邻cu的空间mvp,(2)来自并置cu的时域mvp,(3)来自fifo表的历史mvp,(4)成对的平均mvp,(5)零运动矢量(mv)。融合列表的尺寸在条带头中指示,例如,融合列表的最大允许尺寸为6。为融合模式下的每个cu码编码最佳融合候选的索引。下文描述各类融合候选的生成过程。空间候选推导在一种实现方式中,从位于图6所示位置的候选中选择最多四个融合候选。推导顺序为b1、a1、b0、a0、b2。仅当位置a0、b0、b1和a1中任一位置的cu不可用时(例如,由于cu属于其它条带或分块),才考虑位置b2或对位置b2进行帧内译码。在添加了位置b1处的候选之后,对剩余候选进行冗余检查,确保具有相同运动信息的候选已从列表中排除,从而提高译码效率。为了降低计算复杂度,在上述冗余检查中,并不考虑所有可能的候选对。相反,只考虑与图7中的箭头相连接的候选对,而且仅当用于冗余检查的对应候选不具有相同的运动信息时,该候选才被添加到列表中。在实现过程中,顺序、位置以及空间相邻者的数量等考虑因素是可变的,因此,上述示例不能被视为是一种限制。时域候选推导在一种实现方式中,只有一个候选被添加到列表。尤其在推导该时域融合候选时,缩放运动矢量是根据属于并置参考图像的并置cu推导的。用于推导并置cu的参考图像列表将在条带头中显式地指示。获得如图8中的虚线所示的时域融合候选的缩放运动矢量,其中,缩放运动矢量是根据poc距离tb和td对所述并置cu的运动矢量进行缩放得到的,tb指当前图像的参考图像与当前图像之间的poc差值,td指并置图像的参考图像与并置图像之间的poc差值。所述时域融合候选的参考图像索引被设置为等于0。所述时域候选的位置从候选c0和c1之间选择,如图9所示。如果位置c0处的cu不可用、已进行帧内译码、或位于当前行ctu之外,则使用位置c1。否则,使用位置c0推导所述时域融合候选。历史融合候选推导历史mvp(history-basedmvp,hmvp)融合候选被添加到融合列表中,且位于空间mvp和tmvp之后。在一种实现方式中,先前译码的块的运动信息被存储在表中,作为当前cu的mvp。该包含多个hmvp候选的表在编码/解码过程中进行维护。当存在新的ctu行时,重置(清空)该表。每当存在非子块帧间译码cu时,就将相关的运动信息添加到该表的最后一个条目中,作为新的hmvp候选。例如,将hmvp表的尺寸s设置为5,表示最多可以向该表中添加5个历史mvp(history-basedmvp,hmvp)候选。在该表中插入新的运动候选时,使用约束的先进先出(first-in-first-out,fifo)规则,其中,首先执行冗余检查以查找该表中是否存在相同的hmvp。如果发现该表中存在相同的hmvp,则从表中删除该相同的hmvp,然后将所有hmvp候选前移。hmvp候选可在融合候选列表的构建过程中使用。按顺序对该表中最新的几个hmvp候选进行检查,并将其插入到所述候选列表中。最新的几个hmvp候选位于tmvp候选之后。其中,冗余检查是针对hmvp候选中的空间融合候选或时域融合候选执行的。为了减少冗余检查操作次数,引入了不同的简化方式。通常情况下,一旦可用融合候选总数量比最大允许融合候选数量少1,则终止从hmvp构建融合候选列表的过程。成对平均融合候选推导通过对现有融合候选列表中的预定义的候选对进行平均,来生成成对平均候选。例如,所述预定义对被定义为(0,1),该数字表示融合候选列表的融合索引。分别计算每个参考列表的平均运动矢量。在一个列表中,如果有两个运动矢量都可用,即使这两个运动矢量指向不同的参考图像,也对这两个运动矢量进行平均;如果只有一个运动矢量可用,则直接使用该运动矢量;如果没有运动矢量可用,则此列表无效。在融合候选列表构建过程中输出运动信息候选列表。术语“运动信息”是指执行帧间预测过程所需的收集信息。运动信息通常指以下信息:(1)对块执行单向预测还是双向预测(预测方向);(2)运动矢量(对块执行双向预测时,有两个运动矢量);(3)预测中使用的参考图像索引。(对块执行双向预测时,有两个索引,每个索引对应一个参考图像列表,即第一参考图像列表(l0)或第二参考图像列表(l1))。在一些可行的实现方式中,运动信息还可以指可变插值滤波器索引,用于表示帧间预测单元的运动补偿的具体插值滤波器。在本申请中,运动信息可以是上述一项或多项,或者是不同实施例中执行帧间预测过程所需的任何其它信息。参考图像索引用于表示在译码块的预测过程中所使用的参考图像列表中的条目。例如,第一运动矢量可以指向l0中的第一图像,第二运动矢量可以指向l1中的第一图像。可以维护两个参考图像列表,从l0中选择第一运动矢量指向的图像,并从l1中选择第二运动矢量指向的图像。参考图像列表l0和l1中的每一个可以包括一个或多个参考图像,每个参考图像通过图像顺序编号(pictureordercount,poc)标识。每个相关的参考索引和poc值可以在码流中指示。作为示例,l0和l1参考图像列表可以包括以下参考图像:参考图像列表参考索引pocl0012l0113l1013l1114在上述示例中,参考图像列表l1中的第一个条目(通过参考索引0表示)为poc值为13的参考图像。poc是与每个图像相关的变量,其唯一标识译码视频序列(codedvideosequence,cvs)中的所有图像中的关联图像。当从解码图像缓冲器输出所述相关图像时,poc表示所述相关图像相对于解码图像缓冲器输出的同一cvs的其它图像的输出顺序位置而言的输出顺序位置。三角预测模式在三角预测模式(triangularpredictionmode,tpm)中,cu以对角线或反对角线划分方式被均匀地划分为两个三角形部分,如图10a或图10b所示。需要说明的是,图10a或图10b仅是示例。本申请对pu1和pu2的位置不做限制。根据cu的每个三角形部分的运动对每个三角形部分进行帧间预测,每个部分只允许进行单向预测,即每个部分具有一个运动矢量和一个参考索引。应用这种单向预测运动约束,确保与传统双向预测一样,且只需要对每个cu进行两种运动补偿预测。每个部分的单向预测运动可以直接从为上述扩展融合预测而构建的融合候选列表中进行推导。若对当前cu使用三角形分割模式,还会指示用于表示三角形分割方向(对角线方向或反对角线方向)的标志以及两个融合索引(每个部分对应一个索引)。对每个三角形部分进行预测之后,通过具有自适应权值的混合处理来调整沿对角线或反对角线的像素点值。这是针对整个cu的预测信号,而且变换和量化过程也将像其它预测模式一样应用于整个cu。最后,通过三角形分割模式预测的cu的运动场以4x4为单位进行存储。tpm是子块分割的一种特殊情况,其中,一个块被划分为两个块。上述示例中描述了两个块的划分方向(45度分割和135度分割)。然而,需要说明的是,还可能存在其它分割角度和分割比例,如图11所示。作为示例,根据分割角度,子块的形状可以是矩形(例如,如图11的中间和右图所示)或非矩形(梯形,例如,如图11的左图所示)。在一些示例中,当前块由两个预测单元组成,两个预测单元经虚拟划分线划分得到。此时,也称为使用几何预测模式预测当前块。例如,虚拟划分线可以是直线,即第一子块和第二子块之间的边界。更具体地,所述使用tpm进行预测的流程包括以下内容:构建单向预测候选列表给定融合候选的索引时,单向预测运动矢量从为扩展融合预测而构建的融合候选列表推导,如图12所示。对于列表中的候选,其lx运动矢量作为三角形分割模式下的单向预测运动矢量,其中,x值的奇偶数值与融合候选索引值的奇偶数值相同。这些运动矢量在图12中用x标记。如果不存在对应的lx运动矢量,则将扩展融合预测候选列表中同一候选的l(1-x)运动矢量作为三角形分割模式下的单向预测运动矢量。需要说明的是,在一种可行的实现方式中,可以直接从用于常规融合模式(mergemode)下的融合候选列表中推导所述单向预测运动矢量,无需显式地构建单独的专用单向预测候选列表。沿三角形分割边缘混合根据每个三角形部分的运动对每个三角形部分进行预测之后,混合两个预测信号,以推导对角线或反对角线周围的像素点。在混合过程中使用以下权重:{7/8、6/8、5/8、4/8、3/8、2/8、1/8}用于亮度,{6/8、4/8、2/8}用于色度,如图13所示。与常规预测模式相比,需要针对块指示不同子块的运动信息。因此,在子块预测模式下,用于表示运动信息的边信息具有更大开销。为了提高子块预测模式下译码边信息的效率,本申请中引入了不同的实施例。实施例1如果确定对块执行子块预测:1、初始第一索引包含在码流中(在编码器端),初始第一索引的最大值可以为m(m为整数,m≤n,且n为运动信息候选列表中候选的数量)。2、初始第二索引包含在码流中(在编码器端),初始第二索引的最大值可以为m–m(m为整数,m<m,且m为预定义的值)。3、如果初始第二索引的值大于或等于初始第一索引的值,初始第二索引的值将增加预定义的数值,以得到更新后的第二索引(例如,该预定义的数值可以为1)。4、所述块的第一子块部分是通过应用根据初始第一索引确定的运动信息候选来预测的。5、所述块的第二子块部分是通过应用根据更新后的第二索引确定的运动信息候选来预测的。在一种可行的实现方式中,初始第一索引和初始第二索引可以由编码器包含在码流中,并由解码器解析。在一种可行的实现方式中,可以在编码器端和解码器端都进行对初始第二索引增加m的操作,该操作的目的是使编码器端和解码器端保持一致。在一种可行的实现方式中,所述初始第一索引和所述更新后的第二索引用于选择运动信息候选列表中的条目(基于所述初始第一索引和所述更新后的第二索引作为条目,相应的运动信息候选可以被选择),并且选定的运动信息候选可用于针对块的第一子块部分(如图10a或图10b中的pu1)和第二子块部分(如图10a或图10b中的pu2)进行预测。在一种可行的实现方式中,运动信息候选列表可以只包括单向预测运动信息候选。需要说明的是,融合候选列表(例如,itu-th.265中的融合候选列表)可以包括单向预测运动信息候选和双向预测运动信息候选。因此,本实施例中使用的运动信息候选列表可能与itu-th.265中的融合候选列表不同。运动信息候选列表可以不同于融合候选列表,因为融合候选列表可能包括双向预测候选。当确定对块执行子块(如三角)预测时,则禁止使用双向预测候选。此时,每个子块必须应用单向预测运动信息。因此,所述初始第一索引和所述更新后的第二索引指向仅包括单向预测候选的运动信息候选列表中的条目。可以通过用于构建融合候选列表的相同空间和时域相邻块来构建运动信息候选列表。在另一示例中,可以通过将融合候选列表中的双向预测候选转换为单向预测候选,并基于该融合候选列表构建运动信息候选列表。需要说明的是,初始第一索引和初始第二索引在码流结构中不需要遵循特定顺序。需要说明的是,编码器和解码器中均执行初始第一索引和初始第二索引之间的比较操作。在编码器端将指示符(如初始第一索引和初始第二索引等)包含在所述码流中。在解码器端将指示符(如初始第一索引和初始第二索引等)从所述码流中解析。如果初始第二索引的值大于或等于初始第一索引的值,则将初始第二索引的值增加预定义的数值(例如,1)。通常相同的运动信息候选列表(其由运动信息候选组成)被采用,若两个索引指向该运动信息候选列表中的相同运动信息,就相当于具有整个块的单一运动信息。因此,将初始第二索引增加1,避免得到相同的索引。如果没有对初始第二索引进行加操作,则第一索引和第二索引可能会指向该运动信息候选列表中的同一运动候选(因为是从相同的列表中选择两个子块部分的运动信息)。此时,将应用相同的运动信息对每个子块部分进行预测,即,不存在将块划分成两个子块的点。如果初始第二索引的值大于或等于初始第一索引的值,通过增加初始第二索引避免冗余表示。相应地,需要说明的是,该运动信息候选列表包括至少两组运动信息。本发明中,由于消除了子块的冗余运动信息表示,从而提高了压缩效率。需要说明的是,如果加法运算的结果不超过该运动信息候选列表中候选的数量,可以将初始第二索引增加预定义的数值(例如,1、2、3等)。在第一实施例的一种具体实现方式中,假设运动信息候选列表中包括6个条目的运动信息候选。进一步,假设使用运动信息候选列表中的第一运动候选对所述块的第一子块部分进行预测,使用运动信息候选列表中的第五运动候选对所述块的第二子块部分进行预测。在编码器端:1、码流中包括(或指示)值0,用于表示初始第一索引的值。(索引值0对应所述运动信息候选列表中的第一条目,值1对应第二条目,以此类推)2、码流中包括(或指示)值3,用于表示初始第二索引的值。3、将初始第二索引的值增加,例如,1,计算更新后的第二索引的值,因此得到值4。4、确定初始第一索引指向运动信息候选列表中的第一运动候选,使用所述第一运动候选对所述块的第一子块部分进行预测。5、确定更新后的第二索引指向运动信息候选列表中的第五运动候选,使用所述第五运动候选对所述块的第二子块部分进行预测。在解码器端:1、从码流中解析值0,用于表示初始第一索引的值。2、从码流中解析值3,用于表示初始第二索引的值。3、将初始第二索引的值增加,例如,1(由于3>0),计算更新后的第二索引的值,因此得到值4。4、确定初始第一索引指向运动信息候选列表中的第一运动候选,使用所述第一运动候选对所述块的第一子块部分进行预测。5、确定更新后的第二索引指向运动信息候选列表中的第五运动候选,使用所述第五运动候选对所述块的第二子块部分进行预测。从该实现方式来看,在编码器端,初始第二索引也通过增加1的方式进行更新,该操作的目的是为了与解码器端的类似操作保持一致。可以理解的是,虽然增加操作的结果不超过所述运动信息候选列表中候选的数量,但是增加的数值可以是预定义的数值,例如1、2、3等。在第一实施例的另一种具体实现方式中,假设所述运动信息候选列表包括3个条目,分别为:(1)第一运动信息候选(第一候选);(2)第二运动信息候选(第二候选);(3)第三运动信息候选(第三候选)。第一索引和第二索引的值如下所示:从上表可以看出,第一索引的最大值为3,第二索引的最大值为2。从上表可以看出,如果初始第二索引大于初始第一索引,仍然将初始第二索引增加1。这样,可以在初始第二索引大于或等于初始第一索引的场景中保持进行统一操作(例如增加1)。以上表的第1行至第3行为例,第一行和第3行中的初始第一索引均与初始第二索引相等,为了使初始第一索引不同于初始第二索引,将初始第二索引增加1。第二行中的初始第二索引大于初始第一索引,如果不进行增加操作,则为例外情况,因此会增加复杂度。为简单起见,当确定初始第二索引大于初始第一索引时,仍然将初始第二索引增加1。实施例2如果确定对块执行子块预测:1、码流中包含表示划分方向的指示符。2、初始第一索引包含在码流中,初始第一索引的最大值可以为m(m为整数,m≤n,且n为运动信息候选列表中候选的数量)。3、初始第二索引包含在码流中,初始第二索引的最大值可以为m–m(m为整数,m<m,且m为预定义的值)。4、如果初始第二索引的值大于或等于初始第一索引的值,则将初始第二索引的值增加预定义的数值,得到更新后的第二索引(例如,该预定义的数值可以为1)。5、通过应用根据初始第一索引确定的运动信息候选来预测所述块的第一子块部分。6、通过应用根据更新后的第二索引确定的运动信息候选来预测所述块的第二子块部分。需要说明的是,划分方向指示符、初始第一索引以及初始第二索引在码流结构中不需要遵循特定顺序。在一种可行的实现方式中,可能存在两个划分方向,分别为:(1)沿着左上角到右下角的方向划分所述块(如图10a或图10b中的左图所示);(2)沿着右上角到左下角的方向划分所述块(如图10a或图10b中的右图所示)。在一种可行的实现方式中,可能存在四个划分方向,分别为:(1)沿着左上角到右下角的方向划分所述块;(2)沿着右上角到左下角的方向划分所述块;(3)沿着上边缘的中心点到下边缘的中心点的方向划分所述块;(4)沿着左边缘的中心点到右边缘的中心点的方向划分所述块。实施例3如果确定对块执行子块预测:1、码流中包含表示划分方向的指示符。2、如果指示符表示某一特定的划分方向(例如,沿着左上角到右下角的方向划分所述块,如图10a或图10b中的左图所示):2.1、初始第一索引包含在码流中,初始第一索引的最大值可以为m(m为整数,m≤n,且n为运动信息候选列表中候选的数量)。2.2、初始第二索引包含在码流中,初始第二索引的最大值可以为m–m(m为整数,m<m,且m为预定义的值)。2.3、如果初始第二索引的值大于或等于初始第一索引的值,则将初始第二索引的值增加预定义的数值,得到更新后的第二索引(例如,该预定义的数值可以为1)。3、否则,如果指示符表示某一不同的划分方向,例如,沿着右上角到左下角的方向划分所述块(如图10a或图10b中的右图所示):3.1、初始第一索引包含在码流中,初始第一索引的最大值可以为m–m(m为整数,m<m,且m为预定义的值)。3.2、初始第二索引包含在码流中,初始第二索引的最大值可以为m(m为整数,m≤n,且n为运动信息候选列表中候选的数量)。3.3、如果初始第二索引的值大于或等于初始第一索引的值,则将初始第二索引的值增加预定义的数值,得到更新后的第二索引(例如,该预定义的数值可以为1)。4、通过应用根据第一索引确定的运动信息候选来预测所述块的第一子块部分。5、通过应用根据第二索引确定的运动信息候选来预测所述块的第二子块部分。在一种可行的实现方式中,可能存在两个划分方向,分别为:(1)沿着左上角到右下角的方向划分所述块;(2)沿着右上角到左下角的方向划分所述块;在一种可行的实现方式中,可能存在四个划分方向,分别为:(1)沿着左上角到右下角的方向划分所述块;(2)沿着右上角到左下角的方向划分所述块;(3)沿着上边缘的中心点到下边缘的中心点的方向划分所述块;(4)沿着左边缘的中心点到右边缘的中心点的方向划分所述块。实施例4如果确定对块执行子块预测:1、码流中包含表示划分方向的指示符。2、初始第一索引包含在码流中,初始第一索引的最大值可以为m(m为整数,m≤n,且n为运动信息候选列表中候选的数量)。3、初始第二索引包含在码流中,初始第二索引的最大值可以为m–m(m为整数,m<m,且m为预定义的值)。4、如果初始第二索引的值大于或等于初始第一索引的值,则将初始第二索引的值增加预定义的数值,得到更新后的第二索引(例如,该预定义的数值可以为1)。5、通过应用根据初始第一索引确定的运动信息候选来预测所述块的第一子块部分。6、通过应用根据更新后的第二索引确定的运动信息候选来预测所述块的第二子块部分。其中,第一子块部分被分配给几何中心更靠近所述块的左边界的部分。以图10a或图10b为例,第一子块部分记为pu1,第二子块部分记为pu2。在实施例四中,首先将几何中心更靠近所述块的左边界的子块部分对应的索引包含在码流中。构建运动信息候选列表时,通常按照以下顺序考虑相邻块的运动信息:左相邻块的运动信息、上相邻块的运动信息、右上相邻块的运动信息等等。上述hevc中定义的空间相邻块的顺序作为示例。由于首先考虑的是左相邻块的运动信息,因此表示左相邻块的运动信息的索引通常具有较少的比特数。由于首先译码的是离左相邻块更近(几何平均)的子块部分,且第二索引不能指向相同的运动信息(即融合列表中的同一条目),用于表示第一索引和第二索引的比特总数通常较少。在另一种可行的实施方式中,首先将几何中心更靠近所述块的上边界的子块部分对应的索引包含在码流中。所述顺序在本申请不做限制。在一具体的实施例中,假设运动信息候选列表的尺寸为3,其包括以下运动信息候选:左相邻块的运动信息(第一条目)、上相邻块的运动信息(第二条目)、并置块的运动信息(第三条目,时域相邻块)。进一步,假设给定划分方向以及第一子块(pu1)和第二子块(pu2)如图10a或图10b中的左图所示。通常,更有可能的是,由于空间临近性,根据运动信息候选列表中的第一条目(对应于左相邻块的运动信息)预测pu1,且根据运动信息候选列表中的第二条目(对应于上相邻块的运动信息)。本发明中,值0包含(在解码器中解析)在码流中表示第一索引,而值0包含(在解码器中解析)在码流中表示第二索引(这是可以为索引分配的最小值),由于第二索引等于第一索引,因此从运动信息候选列表中选择运动候选之前,将第二索引增加1。在一种情况下,本发明中,第一索引和第二索引具有最小的可能值,可以用最少的总比特数来表示码流中的第一索引和第二索引。需要说明的是,划分方向指示符、第一索引以及第二索引在码流结构中不需要遵循特定顺序。在一种具体的实现方式中,所述子块预测模式为三角预测模式。第一索引(例如,所述初始第一索引)和第二索引(例如,所述更新后的第二索引)用于选择待应用于第一子块和第二子块的运动信息。所述运动信息是从同一个运动信息候选列表中选取的。为了避免为两个子块部分选择相同的运动信息(这等同于没有进行子块分割),如果第二索引大于或等于第一索引,则将第二索引增加预定义的数值(例如,1)。实施例1至4提供了不同有效的方法,用于为执行子块预测的块的每个子块指示运动信息。实施例5第一索引和第二索引(实施例1至4中记为m)的最大值小于或等于运动信息候选列表的尺寸n。需要说明的是,第一索引和第二索引的最大值也描述了运动信息候选列表中的条目的数量。例如,若第一索引的最大值为6(假设从1开始计数,则可以假设索引的值为1、2、3、4、5、6),则运动信息候选列表的尺寸为6。融合候选列表可以按照itu-th.265和vvc中的方法进行构建,具体参考上文中关于hevc和vvc中融合列表构建过程的示例和公开内容。第一索引和第二索引的最大值(记为m,相当于运动信息候选列表的尺寸)小于或等于融合候选列表n的尺寸。需要说明的是,如果确定不对块使用子块预测模式,可以根据融合候选列表中的一个条目来预测所述块。但是,如果对所述块采用子块预测模式进行预测,则使用运动信息候选列表中的条目对所述块进行预测。例如,当从码流中解析的预测指示符表示对块执行子块预测时,得到两个不同的指示符,这两个不同的指示符分别表示所述块的两个子块在运动信息候选列表中的两个不同条目,并根据这两个不同的指示符对所述块进行帧间预测。当从码流中解析的预测指示符表示不对块执行子块预测时,获得单个指示符,该单个指示符表示所述块在融合候选列表中的一个条目(例如,该融合候选列表可以按照itu-th.265和vvc中的方法进行构建),并根据该单个指示符对所述块进行帧间预测(例如,非子块预测)。若m小于或等于n,则第一索引的最大值设置成等于m,n为融合候选列表的尺寸(候选的数量)。否则,(如果n小于m),将第一融合索引的最大值设置成等于n。在一种可行的实现方式中,n可以从码流包含的指示符推导,m可以是预定义的数值。例如,m的值(用于描述第一索引的最大值)可以预定为5。而n的值(表示融合候选列表的尺寸)可以在序列参数集(sps)中指示。由于n大于m,如果n的值指示为6,则第一索引的最大值等于5(如果从0开始计数,则为4)。在另一种情况下,如果在sps中指示n的值为3,则第一索引的最大值等于3(如果从0开始计数,则为2)。需要说明的是,n为融合候选列表的尺寸,融合候选列表可以根据itu-th.265和vvc中的方法进行构建。本实施例中使用的第一索引和第二索引指向不同的列表,即仅由单向预测候选组成的运动信息候选列表。运动信息候选列表可以不同于融合候选列表,因为融合候选列表可能包括双向预测候选。当确定对块执行子块(或三角)预测时,则禁止使用双向预测候选。此时,每个子块必须应用单向预测运动信息。因此,第一索引和第二索引指向仅包括单向预测候选的运动信息候选列表中的条目。可以通过用于构建融合候选列表的相同空间和时域相邻块来构建运动信息候选列表。或者,可以根据融合候选列表中的条目构建运动信息候选列表。在一种可行的实现方式中,可以不显式地构建运动信息候选列表,例如,可以直接从融合候选列表推导单向预测候选。对于基于块的预测,仅指示一组运动信息(在一种实现方式中以融合索引的形式表示)。由于在子块预测的情况下,需要使用两组运动信息(从而增加了指示开销),所以索引的值预期不会大于融合索引的最大值(融合索引的最大值相当于是融合候选列表的尺寸)。由于期望根据用于构建融合候选列表的候选或者根据融合候选列表中的条目构建运动信息候选列表,因此运动信息候选列表的尺寸不会大于融合候选列表的尺寸。因此,将运动信息候选列表的尺寸(以及第一索引和第二索引的最大值)设置为小于或等于融合候选列表。在另一种可行的实现方式中,n可以从码流中包括的指示符推导,m也可以从码流中包括的指示符推导。此时,用于推导m的值的指示符不能表示大于n的m值。在hevc中,运动信息候选列表的尺寸为n,n可以根据码流中包含的语法元素进行修改。n的值可以是正整数(通常在2到5之间),并在sps中指示。融合列表的尺寸对于整个视频序列而言是固定的。第一索引和第二索引的最大值不可大于运动信息候选列表的尺寸。虽然第一索引和第二索引用于从某一不同的列表(不同于融合候选列表的运动信息候选列表)中选择运动信息,但通常可以通过相同的空间和时域相邻块来构建运动信息候选列表(但应用不同于运动信息候选列表的构建规则)。在一种特定的实现方式中,可以通过将融合候选列表中的双向预测候选转换为单向预测候选来构建运动信息候选列表。因此,将第一索引和第二索引的最大值设置为小于融合候选列表的尺寸,从而保证根据融合候选列表构建的运动信息候选列表可用于选择当前块的每个子块的运动信息。实施例6根据截断一元码以及索引的最大值对第一索引和第二索引进行二值化(从十进制表示转换为二进制表示)。在将索引的十进制值映射到二进制表示的过程中使用索引的最大值。针对用于截断一元码(截断一元码具有最大的十进制值为4)的值码字进行赋值如下表所示:十进制值二进制表示替代值1二进制表示替代值2001110012110001311100001411110000在上表中,每个十进制值需要使用比前一个十进制值多1位的比特位进行二进制表示(但十进制中相差1),但对应索引的最大值的最后一个十进制值除外。在这种情况下(当索引的值为4,即索引的最大值为4),该十进制值采用与前一个十进制值(即3)相同的比特数进行二进制表示。如果第一索引的最大值为4(等于m),第二索引的最大值为3(等于m–1),则使用以下二进制表示:十进制值第一索引的二进制表示第二索引的二进制表示0001101021101103111011141111实施例7采用基于上下文的自适应二进制算术译码(context-basedadaptivebinaryarithmeticcoding,cabac)中的常规译码模式(使用概率估计,该概率估计在对每次出现的第一索引进行译码后得到更新)对第一索引的第一位元进行译码,并采用cabac中的旁路译码模式(使用相等的概率,该概率不会被更新)对其它位元进行译码。cabac中的常规译码模式如图14中的“常规算术编码器”分支所示。旁路译码模式如图14中“旁路算术编码器”分支所示。在一示例中,采用cabac中的常规译码模式(使用概率估计,该概率估计在对每次出现的第二索引进行译码后得到更新)对第二索引的第一位元进行译码,采用cabac中的旁路译码模式(使用相等的概率,该概率不会被更新)对其它位元进行译码。在这种情况下,cabac中第一索引包含在码流中(或由解码器从码流中解析来),其中,cabac中可以使用第一概率估计模型并采用cabac中的常规译码模式对所述二值化的第一索引的第一位元进行译码。采用cabac中的旁路译码模式对所述二值化的第一索引的剩余位元进行译码。cabac中第二索引包含在码流中(或由解码器从码流中解析来),其中,cabac中可以使用第二概率估计模型并采用cabac中的常规译码模式对所述二值化的第二索引的第一位元进行译码。采用cabac中的旁路译码模式对所述二值化的第二索引的剩余位元进行译码。在另一示例中,采用cabac中的常规译码模式对第一索引的第一位元和第二索引的第一位元进行译码,并使用相同的概率估计模型。该概率估计模型可以在对第一索引和第二索引进行译码之后得到更新。在这种情况下,cabac中第一索引包含在码流中(或由解码器从码流中解析来),其中,cabac中可以使用第一概率估计模型并采用cabac中的常规译码模式对所述二值化的第一索引的第一位元进行译码。采用cabac中的旁路译码模式对所述二值化的第一索引的剩余位元进行译码。cabac中第二索引包含在码流中(或由解码器从码流中解析来),其中,cabac中可以使用第一概率估计模型并采用cabac中的常规译码模式对所述二值化的第二索引的第一位元进行译码。采用cabac中的旁路译码模式对所述二值化的第二索引的剩余位元进行译码。该概率估计模型描述了值为1而不为0的位元的概率。对概率估计模型进行更新以适应统计。例如,如果观察到1的概率为0.8(即,0的概率为0.2),则cabac中可以使用少于0所需的实际比特数对值为1的位元进行译码。第一位元是通过二进制表示的第一符号,例如,如下表所示:十进制值第一索引的二进制表示第一索引的第一位元000110121101311101411111实施例8如果确定对块执行子块预测:1、码流中包含表示划分方向的指示符。2、如果所述块的尺寸小于或等于指定阈值:2.1、初始第一索引包含在码流中,初始第一索引的最大值可以为m(m为正整数,m≤n,且n为融合候选列表中候选的数量)。2.2、初始第二索引包含在码流中,初始第二索引的最大值可以为m–m(m为正整数,m<m,且m为预定义的值)。3、否则(如果所述块的尺寸大于指定阈值):3.1、第一索引包含在码流中,第一索引的最大值可以为p(p为ghd整数,m<p≤n,且n为运动信息候选列表中候选的数量)。3.2、第二索引包含在码流中,第二索引的最大值可以为p–m(m为正整数,m<p,且m为预定义的值)。4、如果初始第二索引的值大于或等于初始第一索引的值,则将初始第二索引的值增加一个预定义的数值,得到更新后的第二索引(例如,该预定义的数值可以为1)。5、通过应用根据初始第一索引确定的运动信息候选来预测所述块的第一子块部分。6、通过应用根据所述更新后的第二索引确定的运动信息候选来预测所述块的第二子块部分。p和m均为正整数值,且m<p≤n。初始第一索引和初始第二索引可以按如下方式进行二值化:如果所述块的尺寸小于或等于指定阈值:(1)根据最大值m并通过应用截断二进制码将第一索引从十进制表示转换为二进制表示;(2)根据最大值m–1并通过应用截断二进制码将第二索引从十进制表示转换为二进制表示。如果所述块的尺寸大于指定阈值:(1)根据最大值p并通过应用截断二进制码将第一索引从十进制表示转换为二进制表示;(2)根据最大值p–1并通过应用截断二进制码将第二索引从十进制表示转换为二进制表示。所述阈值可以是在码流中指示的正整数,也可以是预定义的数值。为确定某一个块是否大于某一阈值,可以比较所述块的宽度和高度的乘积与所述阈值(宽度x高度>阈值)。在另一示例中,可以比较所述块的宽度和高度两者与所述阈值,如果两者都大于阈值(宽度>阈值和高度>阈值),则可以认为所述块大于所述阈值。在另一示例中,如果所述块的宽度和高度中的任意一者大于所述阈值(宽度>阈值或高度>阈值),则可以认为所述块大于所述阈值。需要说明的是,划分方向指示符、第一索引以及第二索引在码流结构中不需要遵循特定顺序。在一种可行的实现方式中,可能存在两个划分方向,分别为:(1)沿着左上角到右下角的方向划分所述块;(2)沿着右上角到左下角的方向划分所述块;在另一种可行的实现方式中,可能存在四个划分方向,分别为:(1)沿着左上角到右下角的方向划分所述块;(2)沿着右上角到左下角的方向划分所述块;(3)沿着上边缘的中心点到下边缘的中心点的方向划分所述块;(4)沿着左边缘的中心点到右边缘的中心点的方向划分所述块。需要说明的是,在一种可行的实现方式中,所述划分方向指示符不包含在码流中(或不从码流中解析来)。实施例9如果确定对块执行子块预测:1、初始第一索引包含在码流中,初始第一索引的最大值可以为m(m为整数,m≤n,且n为运动信息候选列表中候选的数量)。2、初始第二索引包含码流中,初始第二索引的最大值可以为m。3、如果初始第二索引的值大于或等于初始第一索引的值,则将初始第二索引的值增加一个预定义的数值,得到更新后的第二索引(例如,该预定义的数值可以为1)。4、通过应用根据初始第一索引确定的运动信息候选来预测所述块的第一子块部分。5、通过应用根据更新后的第二索引确定的运动信息候选来预测所述块的第二子块部分。若m小于或等于n–1,则初始第一索引和初始第二索引的最大值设置成等于m,其中,n为运动信息候选列表的尺寸(运动候选的数量)。否则,将第一索引和第二索引的最大值设置成等于n–1。需要说明的是,n为融合候选列表的尺寸,其可以根据itu-th.265和vvc中的方法进行构建。本实施例中使用的第一索引和第二索引指向不同的运动信息候选列表,该运动信息候选列表仅由单向预测候选组成。运动信息候选列表不同于融合候选列表,因为融合候选列表可能包括双向预测候选。当确定对块执行子块(或三角)预测时,则禁止使用双向预测候选。此时,每个子块必须应用单向预测运动信息。因此,第一索引和第二索引指向仅包括单向预测候选的运动信息候选列表中的条目。可以通过用于构建融合候选列表的相同空间和时域相邻块来构建运动信息候选列表。在另一示例中,可以通过将融合候选列表中的双向预测候选转换为单向预测候选,并基于该融合候选列表构建运动信息候选列表。在一种可行的实现方式中,n可以从码流包含的指示符推导,m可以是预定义的数值。在另一种可行的实现方式中,n可以从码流中包括的指示符推导,m也可以从码流中包括的指示符推导。此时,用于推导m的值的指示符不能表示大于n–1的m值。在一具体示例中,假设运动信息候选列表包括3个条目,分别为第一运动信息候选(第一候选)、第二运动信息候选(第二候选)和第三运动信息候选(第三候选)。第一索引和第二索引的值的举例如下表所示:需要说明的是,不能选择将第3运动信息候选应用于所述块的第一子块。这一特征的优点是,码流中包括的第一索引和第二索引的最大值相同,如为上述示例中的1。相应地,可以使用相同的二值化方案(根据最大值1并通过截断二进制码)对第一索引和第二索引两者都进行二值化。将第一索引和第二索引的最大值设置为相同。当使用截断二进制码时,若对第一和第二融合索引使用相同的二值化方案,此特征还具有其它优点。实施例10如果确定对块执行子块预测:1、初始第一索引包含在码流中,初始第一索引的最大值可以为m(m为整数,m≤n,且n为运动信息候选列表中候选的数量)。2、初始第二索引包含码流中,初始第二索引的最大值可以为m。3、通过应用根据初始第一索引确定的运动信息候选来预测所述块的第一子块部分。4、通过应用根据初始第二索引确定的运动信息候选来预测所述块的第二子块部分。在一种可行的实现方式中,第一索引和第二索引用于选择运动信息候选列表中的条目(根据第一索引和第二索引从同一列表中选择运动信息),并将所述选定的运动信息候选应用于第一子块和第二子块以对所述块进行预测。在一种可行的实现方式中,运动信息候选列表可以只包括单向预测运动信息候选。需要说明的是,融合候选列表(例如,itu-th.265中的融合候选列表)可以包括单向预测运动信息候选和双向预测运动信息候选。因此,本实施例中使用的运动信息候选列表可能与itu-th.265中的融合候选列表不同。运动信息候选列表不同于融合候选列表,因为融合候选列表可能包括双向预测候选。当确定对块执行子块(或三角)预测时,则禁止使用双向预测候选。此时,每个子块必须应用单向预测运动信息。因此,第一索引和第二索引指向仅包括单向预测候选的运动信息候选列表中的条目。可以通过用于构建融合候选列表的相同空间和时域相邻块来构建运动信息候选列表。在另一示例中,可以通过将融合候选列表中的双向预测候选转换为单向预测候选,并基于该融合候选列表构建运动信息候选列表。需要说明的是,第一索引和第二索引在码流结构中不需要遵循特定顺序。需要说明的是,除了将指示符(索引)包含在码流中这一操作,编码器和解码器执行的是相同的操作。解码器将指示符从码流中解析来,而编码器则该指示符包含在所述码流中。在一具体示例中,假设运动信息候选列表包括6个条目的运动信息候选。进一步,假设使用运动信息候选列表中的第一运动候选对第一子块进行预测,使用运动信息候选列表中的第五运动候选对第二子块进行预测。在编码器端:1、码流中包含值0,用于表示第一索引的值。(索引值0对应所述运动信息候选列表中的第一条目,值1对应第二条目,以此类推。)2、码流中包含值3,用于表示第二索引的值。3、确定第一索引指向运动信息候选列表中的第一运动候选,使用所述第一运动候选对所述块的第一子部分进行预测。4、确定第二索引指向运动信息候选列表中的第四运动候选,使用所述第四运动候选对所述块的第二子部分进行预测。在解码器端:1、从码流中解析值0,用于表示第一索引的值。2、从码流中解析值3,用于表示第二索引的值。3、确定第一索引指向运动信息候选列表中的第一运动候选,使用所述第一运动候选对所述块的第一子部分进行预测。4、确定第二索引指向运动信息候选列表中的第四运动候选,使用所述第四运动候选对所述块的第二子部分进行预测。在另一具体示例中,假设运动信息候选列表包括3个条目,分别为第一运动信息候选(第一候选)、第二运动信息候选(第二候选)和第三运动信息候选(第三候选)。第一索引和第二索引的值如下所示:实施例11如果确定对块执行子块预测:1、码流中包含表示划分方向的指示符。2、初始第一索引包含在码流中,初始第一索引的最大值可以为m(m为整数,m≤n,且n为运动信息候选列表中候选的数量)。3、初始第二索引包含在码流中,初始第二索引的最大值可以为m–m(m为整数,m<m,且m为预定义的值)。4、如果初始第二索引的值大于或等于初始第一索引的值,则将初始第二索引的值增加一个预定义的数值,得到更新后的第二索引(例如,该预定义的数值可以为1)。5、通过应用根据初始第一索引确定的运动信息候选来预测所述块的第一子块部分。6、通过应用根据更新后的第二索引确定的运动信息候选来预测所述块的第二子块部分。需要说明的是,n为融合候选列表的尺寸,其可以根据itu-th.265和vvc中的方法进行构建。本实施例中使用的第一索引和第二索引指向不同的运动信息候选列表,该运动信息候选列表仅由单向预测候选组成。运动信息候选列表不同于融合候选列表,因为融合候选列表可能包括双向预测候选。当确定对块执行子块(或三角)预测时,则禁止使用双向预测候选。此时,每个子块必须应用单向预测运动信息。因此,第一索引和第二索引指向仅包括单向预测候选的运动信息候选列表中的条目。可以通过用于构建融合候选列表的相同空间和时域相邻块来构建运动信息候选列表。在另一示例中,可以通过将融合候选列表中的双向预测候选转换为单向预测候选,并基于该融合候选列表构建运动信息候选列表。将初始第一索引的最大值设置成等于m。在一种可行的实现方式中,n可以从码流包含的指示符推导,m可以是预定义的数值。在另一种可行的实现方式中,n可以从码流中包括的指示符推导,m也可以从码流中包括的指示符推导。此时,用于推导m的值的指示符不能表示大于n–1的m值。在另一种可行的实现方式中,n可以从码流中包含的指示符推导,m可以从n推导。例如,m可以通过如下方式从n推导:如果n等于1,则m等于零(不使用子块预测,且不指示与子块预测对应的语法元素)。如果n≥2,则m等于n。例如,m可以从n推导,如下表所示:nm10(不使用子块预测)2233445566在另一种可行的实现方式中,n可以从码流中包含的指示符推导,m可以从n推导。例如,m可以通过如下方式从n推导:如果n等于1,则m等于零(不使用子块预测,且不指示与子块预测对应的语法元素)。如果n≥2且n≤k,则m等于n,k为预定义的整数值(例如,k可以等于5)。如果n>k,则m等于k。例如,m可以从n推导,如下表所示(k等于5):nm10(不使用子块预测)2233445565实施例12如果确定对块执行子块预测:1、码流中包含表示划分方向的指示符。2、初始第一索引包含在码流中,初始第一索引的最大值可以为m(m为整数)。3、初始第二索引包含在码流中,初始第二索引的最大值可以为m–m(m为整数,m<m,且m为预定义的值)。4、如果初始第二索引的值大于或等于初始第一索引的值,则将初始第二索引的值增加一个预定义的数值,得到更新后的第二索引(例如,该预定义的数值可以为1)。5、通过应用根据初始第一索引确定的运动信息候选来预测所述块的第一子块部分。6、通过应用根据更新后的第二索引确定的运动信息候选来预测所述块的第二子块部分。本实施例中使用的第一索引和第二索引指向不同的运动信息候选列表,该运动信息候选列表仅由单向预测候选组成。运动信息候选列表不同于融合候选列表,因为融合候选列表可能包括双向预测候选。当确定对块执行子块(或三角)预测时,则禁止使用双向预测候选。此时,每个子块必须应用单向预测运动信息。因此,第一索引和第二索引指向仅包括单向预测候选的运动信息候选列表中的条目。可以通过用于构建融合候选列表的相同空间和时域相邻块来构建运动信息候选列表。在另一示例中,可以通过将融合候选列表中的双向预测候选转换为单向预测候选,并基于该融合候选列表构建运动信息候选列表。初始第一索引的最大值为m。在一种可行的实现方式中,m可以从码流中包含的指示符推导。m取决于整数值n,其中,n为融合候选列表的尺寸,而融合候选列表可以按照itu-th.265和vvc中的方法进行构建。在另一种可行的实现方式中,n可以从码流中包含的指示符推导,m可以是预定义的数值。在另一种可行的实现方式中,n可以从码流中包含的指示符推导,m可以从n推导。例如,m可以通过如下方式从n推导:如果n等于1,则m等于2(在一些示例中,子块模式中可以要求初始第一索引不等于更新后的第二索引)。如果n≥2,则m等于n。例如,m可以n推导,如下表所示:nm122233445566在另一种可行的实现方式中,n可以从码流中包含的指示符推导,m可以从n推导。例如,m可以通过如下方式从n推导:如果n等于1,则m等于2(在一些示例中,子块模式中可以要求初始第一索引不等于更新后的第二索引)。如果n≥2且n≤k,则m等于n,k为预定义的整数值(例如,k可以等于5)。如果n>k,则m等于k。例如,m可以n推导,如下表所示(k等于5):nm122233445565需要说明的是,n的值(即融合候选列表的尺寸)可以小于m的值(即初始第一索引的最大值)。图15示出了本申请提供的帧间预测方法。所述帧间预测方法是针对基于子块的预测方法例如三角预测模式中的图像块执行的。在三角预测模式下,当前块包括第一预测子块和第二预测子块,例如,图10a或图10b中的pu1和pu2。需要说明的是,本申请也可以根据不同的基于子块的预测方法,例如,图11所示的预测模式来实现。s1501:解析至少一个指示符,以确定当前块的预测模式。通常,帧间预测包括几种帧间预测模式。在编码器端通过不同的准则,例如,rdo过程,选择目标帧间预测模式,并将其编码进码流中作为一个或多个指示符。解码器端解析所述码流,得到一个或多个指示符的值,并根据所述一个或多个指示符的值确定所述目标帧间预测模式。在一种可行的实现方式中,所述指示符可以是预测模式索引。在另一种可行的实现方式中,组合若干个指示符来确定预测模式。当确定的当前块的预测模式为三角预测模式时,继续进行本方法的流程。s1502:获得所述当前块的候选列表。候选列表从融合模式候选列表获得。作为示例,关于融合模式候选列表的构建以及用于当前块的三角预测的单向预测候选列表的构建,可以参考上文所述的内容。需要说明的是,由于三角预测的候选列表是从融合模式候选列表推导的。在一种可行的实现方式中,候选列表可能不是独立的列表。候选列表中的候选可以通过指示符指向的融合模式候选列表中的候选进行表示。需要说明的是,步骤s1502可以在解析第一预测子块和/或第二预测子块的预测信息索引之后执行。本申请对此不做限制。s1503:从码流中解析第一索引。第一索引用于获得第一预测子块的预测信息。作为示例,从码流中解析表示第一索引的语法元素;根据第一索引定位候选列表中的项;并获得该项作为第一预测子块的预测信息。s1504:从所述码流中解析第二索引。第二索引用于获得第二预测子块的预测信息。作为示例,从码流中解析表示第二索引的另一语法元素。s1505:比较所述第一索引与所述第二索引。s1506a:当所述第二索引小于所述第一索引时,根据所述第二索引定位所述候选列表中的项,并获得所述项作为所述第二预测子块的预测信息。s1506b:当所述第二索引大于或等于所述第一索引时,调整所述第二索引,然后根据调整后的第二索引获得所述第二预测子块的预测信息。与步骤s1506a类似,所述根据调整后的第二索引获得所述第二预测子块的预测信息,包括:根据所述调整后的第二索引定位所述候选列表中的项,并获得所述项作为所述第二预测子块的预测信息。在一种可行的实现方式中,所述调整所述第二索引可以为:将第二索引增加m,其中,m为正整数。在一种可行的实现方式中,m可以为1。在另一种可行的实现方式中,调整所述第二索引可以是基于解析的第二索引的值的其它计算,所述调整后的第二索引的值与所述解析的值不同。在一种具体的实现方式中,步骤s1505、s1506a以及s1506b可以描述为:假设变量idxm和idxn分别为用于第一预测子块和第二预测子块的第一索引和(调整后的)第二索引,所述变量根据解析的第一索引的值(merge_triangle_idx0)和解析的第二索引的值(merge_triangle_idx1)推导如下:idxm=merge_triangle_idx0,idxn=merge_triangle_idx1+(merge_triangle_idx1≥idxm)?1:0需要说明的是,在另一种实现方式中,idxn也可以推导为merge_triangle_idx1+(merge_triangle_idx1>idxm)?1:0。同理,当第二索引等于第一索引时,s1506a或s1506b中的操作也可以在不同的实施例中执行,本申请对此不做限制。在一种可行的实现方式中,根据截断一元码对第一索引进行二值化,并根据该截断一元码对第二索引进行二值化。在一种可行的实现方式中,采用cabac中的常规译码模式对所述二值化的第一索引的第一位元进行译码,采用cabac中的常规译码模式对所述二值化的第二索引的第一位元进行译码。在一种可行的实现方式中,采用cabac中的旁路译码模式对所述二值化的第一索引的非第一位元进行译码,采用cabac中的旁路译码模式对所述二值化的第二索引的非第一位元进行译码。非第一位元是指所述二值化的第一索引(或所述二值化的第二索引)中的除第一位元之外的任何其它位元。s1507:根据所述第一预测子块的预测信息和所述第二预测子块的预测信息获得所述当前块的预测值。在获得第一预测子块的预测信息和第二预测子块的预测信息之后,可以根据前文描述的三角预测方法中的构建方法获得当前块的预测值。在一种可行的实现方式中,所述预测方法还包括:从码流中解析方向指示符,所述方向指示符用于表示当前块的划分方向。例如,当方向指示符为0时,pu1和pu2按照图10a或图10b中的左图所示的划分方向进行划分得到。当方向指示符为1时,pu1和pu2按照图10a或图10b中的右图所示的划分方向进行划分得到。需要说明的是,在一种可行的实现方式中,在从码流中解析第一索引之前,从码流中解析方向指示符;在另一种可行的实现方式中,在推导到调整后的第二索引之后,从码流中解析方向指示符。本申请对执行顺序不做限制,即方向指示符可以携带在码流中的不并置置。图16示出了本申请提供的另一种帧间预测方法。需要说明的是,根据第一索引和/或第二索引的最大允许值为第一索引和/或第二索引进行码字设计。没有获得第一索引和/或第二索引的最大允许值时,解码器端无法成功解析第一索引和/或第二索引。在一种可行的实现方式中,编码器端和解码器端均根据预设协议,例如标准中的预设值,获得第一索引和/或第二索引的最大允许值。此时,不指示用于表示最大允许值的指示符。在另一种可行的实现方式中,在码流中指示用于表示最大允许值的一个或多个指示符。因此,解码器端通过解析码流能够获得与编码器端相同的值。需要说明的是,作为示例,第一预测子块和第二预测子块共享同一个候选列表,因此可以将第一索引和/或第二索引的最大允许值视为是该候选列表的长度。需要说明的是,候选列表的长度可以作为高级语法编码在码流中。例如,候选列表的长度可以包含在序列参数集、图像参数集、图像头或条带头中等。此时,候选列表的长度可以在步骤s1501之前确定。候选列表的长度也可以进行块级或pu级的编码。此时,候选列表的长度可以在步骤s1502和步骤s1501之间确定。候选列表的长度确定如下:s1508:解析第一数值,以确定所述候选列表的第一长度。在一种可行的实现方式中,直接从码流中解析第一数值。在另一种可行的实现方式中,从码流中解析若干语法,并组合解析的语法以确定第一数值。作为示例,第一长度为候选列表中融合模式下的候选预测信息的最大数量。如上所述,三角预测模式下的候选列表是从融合模式下的候选列表推导的。融合模式索引也可以用作第一索引和/或第二索引。此时,三角预测模式下的候选列表可以被视为是融合模式下的候选列表的一部分。例如,如图12所示,三角预测模式下的候选列表中的每个候选与融合模式下的候选列表中的单向预测运动信息相对应。融合模式下的候选预测信息的最大数量与三角预测模式下的候选预测信息的最大数量可以不同。s1509:根据所述第一数值推导所述候选列表的第二长度。第二长度为候选列表中基于子块预测模式下的候选预测信息的最大数量。基于子块的预测模式为三角预测模式或几何预测模式。预测模式可以是其它基于子块的预测模式,包括矩形或非矩形(梯形)模式。三角预测模式和几何预测模式可以统一为一种单一的预测模式,在可行的实现方式中可能会涉及到。由于三角预测模式的候选列表是从融合模式候选列表推导的,因此第一长度大于或等于第二长度。在一种可行的实现方式中,第二长度可以通过第一数值减去预设的增量值(deltavalue)得到。在另一种可行的实现方式中,第二长度可以通过第一数值减去增量值得到,而增量值通过解析码流得到。需要说明的是,如图12所示,在三角预测模式下构建的是单向预测候选列表,而在融合模式下构建的是双向预测候选列表。本申请中,索引表示的单向预测候选列表中的每一运动信息均为tpm下的候选,索引表示的双向预测候选列表中的每一运动信息集合(列表0(list0)中的运动信息和列表1(list1)中的运动信息)均为融合模式下的候选。本实施例也可以描述为:假设候选列表为融合模式下的候选列表,则相应地,融合模式索引用于表示候选列表中的候选。s1508':解析第一数值,以确定候选列表中的最大允许候选索引。最大允许候选索引可能是融合模式下的最大索引。换句话说,最大允许候选索引是融合模式索引的最大允许值。s1509':根据最大允许候选索引获得最大值索引。最大值索引用于表示第一索引和第二索引(第一索引和第二索引与图15的实施例中描述的索引相同)的最大限制值。需要说明的是,本申请中,如果第一索引和第二索引相同,则在基于子块的预测模式下是存在冗余的。因此,如果第一索引具有最大限制值max,则当从码流中解析第二索引时,第二索引具有最大限制值max–m,其中,m为正整数。例如,本实施例中,m可以为1。还需要说明的是,本实施例中,调整后的第二索引可以与最大限制值相同。在一种可行的实施方式中,通过最大允许候选索引与预定数值之间的计算获得最大索引。例如,最大索引=最大允许候选索引–预定数值。另一示例中,最大索引=预定数值–最大允许候选索引+偏移值。在另一种可行的实现方式中,解析第二数值,以推导最大允许候选索引与最大索引之间的差值;通过最大允许候选索引与差值之间的计算获得最大索引。例如,最大索引=最大允许候选索引–差值。另一示例中,最大索引=差值-最大允许候选索引+偏移值。在另一实施例中,最大索引和最大允许候选索引单独指示。例如,与步骤s1508或s1508'类似,解析第三数值,以确定最大索引。此外,无论最大索引和最大允许候选索引是单独指示还是不单独指示,在一种可行的实现方式中,最大允许候选索引,即融合模式下的最大索引,不小于最大索引。在一种具体的实现方式中,max_num_merge_cand_minus_max_num_triangle_cand表示从maxnummergecand中减去条带(或图像,根据实例例的不同)中支持的三角融合模式候选的最大数量;six_minus_max_num_merge_cand表示从6中减去条带中支持的融合运动矢量预测(motionvectorprediction,mvp)候选的最大数量。融合mvp候选的最大数量maxnummergecand推导为:maxnummergecand=6–six_minus_max_num_merge_cand。三角融合模式候选的最大数量maxnumtrianglemergecand推导为:maxnumtrianglemergecand=maxnummergecand–max_num_merge_cand_minus_max_num_triangle_candmax_num_merge_cand_minus_max_num_triangle_cand可以携带(呈现)在码流中,因此可以解析得到max_num_merge_cand_minus_max_num_triangle_cand的值。需要说明的是,maxnumtrianglemergecand的取值范围应为2~maxnummergecand。根据条件的不同,max_num_merge_cand_minus_max_num_triangle_cand可以不携带(呈现)在码流中。此时,当sps_triangle_enabled_flag等于0或maxnummergecand小于2时,maxnumtrianglemergecand设置成等于0,表示当前条带(或当前图像,根据实施例的不同)不允许使用三角融合模式。当sps_triangle_enabled_flag等于1且maxnummergecand大于或等于2时,推断出max_num_merge_cand_minus_max_num_triangle_cand=pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1–1,其中,sps_triangle_enabled_flag为序列参数集合中包含的语法元素,用于表示是否允许使用tpm,pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1为图像参数集合中包含的语法元素,且pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1=0表示max_num_merge_cand_minus_max_num_triangle_cand在与图像参数集关联的条带的条带头(或图像的图像头,根据实施例的不同)中呈现,pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1>0表示max_num_merge_cand_minus_max_num_triangle_cand不在与图像参数集关联的条带的条带头(或图像的图像头,根据实施例的不同)中呈现。pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1的取值范围应为0~maxnummergecand–1。或者,第一长度和第二长度可以单独指示,这意味着步骤s1509可以为:解析第二数值,以确定候选列表的第二长度。类似的,在一种可行的实现方式中,直接从码流中解析第二数值。在另一种可行的实现方式中,从码流中解析若干语法,并组合解析的语法以确定第二数值。需要说明的是,直接或间接从码流中解析的、表示第一长度和/或第二长度(例如,两长度之间的差值)的任何信息都可以携带在码流中的序列参数集合、图像参数集合、图像头或条带头中等。图17示出了本申请提供的帧间预测装置1700。当前块包括第一预测子块和第二预测子块,所述装置1700包括:解析模块1701,用于从码流中解析第一索引,所述第一索引用于获得所述第一预测子块的预测信息;从所述码流中解析第二索引;定位模块1702,用于比较所述第一索引与所述第二索引;当所述第二索引大于或等于所述第一索引时,调整所述第二索引;获得模块1703,用于根据调整后的第二索引获得所述第二预测子块的预测信息。在一种可行的实现方式中,所述定位模块1702用于将所述第二索引增加m,其中,m为正整数。在一种可行的实现方式中,m为1。在一种可行的实现方式中,从码流中解析第一索引之前,所述解析模块1701还用于:解析至少一个指示符,以确定所述当前块的预测模式,所述预测模式为三角预测模式或几何预测模式。所述预测模式可以是其它基于子块的预测模式,包括矩形或非矩形(梯形)模式。所述三角预测模式和所述几何预测模式可以统一为一种单一的预测模式,其在该可行的实现方式中可能会涉及到。在一种可行的实现方式中,所述定位模块1702还用于获得所述当前块的候选列表。在一种可行的实现方式中,根据所述第一索引从所述候选列表中获得所述第一预测子块的预测信息。在一种可行的实现方式中,根据所述调整后的第二索引从所述候选列表中获得所述第二预测子块的预测信息。在一种可行的实现方式中,所述候选列表为融合模式候选列表。在一种可行的实现方式中,所述解析模块1701还用于:解析第一数值,以确定所述候选列表中的最大允许候选索引;根据所述最大允许候选索引获得最大索引,其中,所述第一索引不大于所述最大索引。在一种可行的实现方式中,所述解析模块1701用于:通过所述最大允许候选索引与预定数值之间的计算获得所述最大索引。在一种可行的实现方式中,所述解析模块1701用于:解析第二数值,以推导所述最大允许候选索引与所述最大索引之间的差值;通过所述最大允许候选索引与所述差值之间的计算获得所述最大索引。在一种可行的实现方式中,所述解析模块1701用于解析第三数值,以确定所述最大索引。在一种可行的实现方式中,所述最大允许候选索引不小于所述最大索引。在一种可行的实现方式中,根据调整后的第二索引获得所述第二预测子块的预测信息之后,所述获得模块1703还用于:根据所述第一预测子块的预测信息和所述第二预测子块的预测信息获得所述当前块的预测值。在一种可行的实现方式中,根据截断一元码对所述第一索引或所述第二索引进行二值化。在一种可行的实现方式中,采用cabac中的常规译码模式对所述二值化的第一索引或第二索引的第一位元进行译码。在一种可行的实现方式中,采用cabac中的旁路译码模式对所述二值化的第一索引或第二索引的非第一位元进行译码。在一种可行的实现方式中,所述解析模块1701用于从所述码流中解析方向指示符,所述方向指示符用于表示所述当前块的划分方向。图18示出了本申请提供的帧间预测装置1800。装置1800可以是解码器或编码器。装置1800包括:一个或多个处理器1801;以及非瞬时性计算机可读存储介质1802,其耦合到所述处理器并存储由所述处理器执行的程序。当所述程序由所述处理器执行时,配置所述解码器执行图15或图16所示的方法。在另一实施例中,提供了一种计算机程序产品,包括程序代码,当所述程序代码在计算机或处理器上执行时,用于执行图15或图16所示的方法。在另一实施例中,提供了一种携带程序代码的非瞬时性计算机可读介质,当所述程序代码由计算机设备执行时,使得计算机设备执行图15或图16所示的方法。下文对上述实施例中所示的编码方法和解码方法的应用以及使用这些方法的系统进行说明。图19为实现内容分发服务的内容供应系统3100的框图。该内容供应系统3100包括捕获设备3102、终端设备3106,并且可选地包括显示器3126。所述捕获设备3102与所述终端设备3106通过通信链路3104进行通信。所述通信链路可以包括上述通信信道13。所述通信链路3104包括但不限于wi-fi、以太网、电缆线、无线(3g/4g/5g)、usb或其任意类型的组合等。所述捕获设备3102生成数据,且可以通过如上述实施例所示的编码方法对数据进行编码。或者,所述捕获设备3102可以将数据分发到流媒体服务器(图中未示出),由该服务器对数据进行编码,并将经编码的数据传输到所述终端设备3106。所述捕获设备3102包括但不限于相机、智能手机或平板电脑、计算机或膝上型电脑、视频会议系统、pda、车载设备或其任意组合等。例如,所述捕获设备3102可以包括上述源设备12。当所述数据包括视频时,所述捕获设备3102中的视频编码器20实际上可以执行视频编码处理。当所述数据包括音频(即声音)时,所述捕获设备3102中包括的音频编码器实际上可以执行音频编码处理。在一些实际场景中,所述捕获设备3102通过将经编码的视频和音频数据复用在一起来分发所述经编码的视频和音频数据。在其它实际场景中,例如在视频会议系统中,不对经编码的音频数据和经编码的视频数据进行复用。所述捕获设备3102分别将经编码的音频数据和经编码的视频数据分发到所述终端设备3106。在所述内容供应系统3100中,所述终端设备310接收并再现经编码的数据。所述终端设备3106可以是具有数据接收和恢复能力的设备,例如智能手机或平板电脑3108、计算机或笔记本电脑3110、网络视频录像机(networkvideorecorder,nvr)/数字视频录像机(digitalvideorecorder,dvr)3112、tv3114、机顶盒(settopbox,stb)3116、视频会议系统3118、视频监控系统3120、个人数字助理(personaldigitalassistant,pda)3122、车载设备3124或其任意组合等,其能够解码上述经编码的数据。例如,所述终端设备3106可以包括上述目的地设备14。当经编码的数据包括视频时,所述终端设备中包括的视频解码器30优先进行视频解码。当经编码的数据包括音频时,所述终端设备中包括的音频解码器优先进行音频解码处理。对于带有显示器的终端设备,例如智能手机或平板电脑3108、计算机或膝上型电脑3110、网络视频录像机(networkvideorecorder,nvr)/数字视频录像机(digitalvideorecorder,dvr)3112、tv3114、个人数字助理(personaldigitalassistant,pda)3122或车载设备3124,该终端设备可以将经解码的数据馈送到该终端设备的显示器。对于不带显示器的终端设备,例如,stb3116、视频会议系统3118或视频监控系统3120,该终端设备与外接显示器3126连接,用于接收并显示经解码的数据。该系统中的每个设备在进行编码或解码时,可以使用如上述实施例中所示的图像编码设备或图像解码设备。图20为终端设备3106的示例性结构的图。所述终端设备3106从捕获设备3102接收到码流之后,协议处理单元3202分析该码流的传输协议。所述协议包括但不限于实时流协议(realtimestreamingprotocol,rtsp)、超文本传输协议(hypertexttransferprotocol,http)、http直播流协议(httplivestreamingprotocol,hls)、mpeg-dash协议、实时传输协议(real-timetransportprotocol,rtp)、实时消息协议(realtimemessagingprotocol,rtmp)或其任意类型的组合等。所述协议处理单元3202对该码流进行处理之后,生成码流文件。将所述文件输出到解复用单元3204。所述解复用单元3204可以将经复用的数据分离为经编码的音频数据和经编码的视频数据。如上文所述,在一些实际场景中,例如在视频会议系统中,不对经编码的音频数据和经编码的视频数据进行复用。在这种情况下,经编码的数据不通过所述解复用单元3204传输到视频解码器3206和音频解码器3208。通过解复用处理,生成视频基本码流(elementarystream,es)、音频es,且可选地生成字幕。所述视频解码器3206包括如上述实施例描述的视频解码器30。所述视频解码器3206通过如上述实施例所示的解码方法解码所述视频es以生成视频帧,并将该数据馈送到同步单元3212。所述音频解码器3208解码所述音频es以生成音频帧,并将该数据馈送至同步单元3212。或者,将所述视频帧馈送至所述同步单元3212之前,所述视频解码器3206可以将所述视频帧存储在缓冲器(图20中未示出)中。类似地,将所述音频帧馈送至所述同步单元3212之前,所述音频解码器3208可以将所述音频帧存储在缓冲器(图20中未示出)中。所述同步单元3212同步所述视频帧和所述音频帧,并将视频/音频提供给视频/音频显示器3214。例如,所述同步单元3212同步视频信息和音频信息的呈现。可以使用与经译码的音频和可视数据的呈现相关的时间戳和与数据流的分发相关的时间戳将信息译码到语法中。如果码流中包括字幕,则字幕解码器3210对所述字幕进行解码,使所述字幕与所述视频帧和所述音频帧同步,并将视频/音频/字幕提供给视频/音频/字幕显示器3216。本发明并不限于上述系统,上述实施例中的图像编码设备或图像解码设备中的任一者都可以并入汽车系统等其它系统中使用。数学运算符本申请中使用的数学运算符与c编程语言中使用的数学运算符类似。但是,这里准确定义了整除运算和算术移位运算的结果,并且还定义了其它运算,如幂运算和实值除法运算。编号和计数规范通常约定从零开始,例如,“第一个”相当于第0个,“第二个”相当于第1个,等等。算术运算符算术运算符定义如下:逻辑运算符逻辑运算符定义如下:关系运算符关系运算符定义如下:当将一个关系运算符应用于一个已被赋值“na”(notapplicable,不适用)的语法元素或变量时,值“na”被视为该语法元素或变量的不同值。值“na”被视为不等于任何其它值。按位运算符按位运算符定义如下:赋值运算符算术运算符定义如下:范围符号以下符号用于说明值的范围:x=y..zx取y到z的范围内的整数值(包含首尾数字),这里x,y和z都是整数,且z大于y。数学函数数学函数定义如下:asin(x)三角反正弦函数,对参数x进行运算,x在–1.0至1.0的范围内(包含首尾数字),输出值在–π÷2至π÷2的范围内(包含首尾数字),单位为弧度。atan(x)三角反正切函数,对参数x进行运算,输出值在–π÷2至π÷2的范围内(包含首尾数字),单位为弧度。ceil(x)表示大于或等于x的最小整数值。clip1y(x)=clip3(0,(1<<bitdepthy)–1,x)clip1c(x)=clip3(0,(1<<bitdepthc)–1,x)cos(x)三角余弦函数,对参数x进行运算,单位为弧度。floor(x)表示小于或等于x的最大整数值。ln(x)返回自然对数中x的值(以e为底的对数,其中,e为自然对数中的底数常数2.718281828……)。log2(x)返回以2为底的对数中x的值。log10(x)返回以10为底的对数中x的值。round(x)=sign(x)*floor(abs(x)+0.5)sin(x)三角正弦函数,对参数x进行运算,单位为弧度。swap(x,y)=(y,x)tan(x)三角正切函数,对参数x进行运算,单位为弧度。运算优先级顺序当没有使用括号来显式的表示优先顺序时,则遵循如下规则:–高优先级的运算在低优先级的运算之前进行。–相同优先级的运算从左到右依次进行。下表从最高到最低的顺序说明运算的优先级,在表中的位置越高,优先级也越高。如果在c编程语言中也使用这些运算符,则本文中采用的优先级顺序与c编程语言中采用的优先级顺序相同。表:运算优先级从最高(表格顶部)到最低(表格底部)进行排序逻辑运算的文字描述文本中,逻辑运算中的语句以数学形式描述如下:if(condition0)statement0elseif(condition1)statement1...else/*informativeremarkonremainingcondition*/statementn可以通过如下方式进行描述:……如下/……以下为准:–如果条件0,则语句0–否则,如果条件1,则语句1-……–否则(剩余条件的提示性说明),则语句n每个“如果……否则,如果……否则,……”语句中,“如果……”后面紧跟着“……如下”或“……以下为准”用来介绍文本中的语句。最后一个条件“如果……否则,如果……否则,……”总有一个“否则,……”。中间有“如果……否则,如果……否则,……”语句,则“……如下”或“……以下为准”之后用“否则”结尾来识别该语句。文本中,逻辑运算中的语句以数学形式描述如下:if(condition0a&&condition0b)statement0elseif(condition1a||condition1b)statement1...elsestatementn可以通过如下方式进行描述:……如下/……以下为准:–如果以下所有条件都为真(true),则语句0:–条件0a–条件0b–否则,如果以下一个或多个条件为真,则语句1:–条件1a–条件1b-……–否则,语句n文本中,逻辑运算中的语句以数学形式描述如下:if(condition0)statement0if(condition1)statement1可以通过如下方式进行描述:如果条件0,则语句0如果条件1,则语句1编码器20和解码器30等的实施例,以及本文描述的与编码器20和解码器30等有关的功能可以以硬件、软件、固件或其任意组合来实现。如果以软件来实现,那么各种功能可作为一或多个指令或代码存储在计算机可读介质上或通过通信介质进行传输,且通过基于硬件的处理单元来执行。计算机可读介质可包括计算机可读存储介质或通信介质,其中,计算机可读存储介质对应于例如数据存储介质的有形介质,通信介质包括促进计算机程序,例如根据通信协议,从一处传输到另一处的任何介质。以这个方式,计算机可读介质大体上可对应于(1)非瞬时性的有形计算机可读存储介质,或(2)例如信号或载波的通信介质。数据存储介质可以为一个或多个计算机或一个或多个处理器可以存取以检索用于实现本公开所描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。作为示例而非限制,此类计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储设备、磁盘存储设备或其它磁性存储设备、快闪存储器或可用于存储所需的呈指令或数据结构形式的程序代码且可由计算机存取的任何其它介质。同样,任何连接可适当地称为计算机可读介质。例如,如果通过同轴电缆、光纤电缆、双绞线、数字用户线(digitalsubscriberline,dsl)、或例如红外线、无线电及微波的无线技术从网站、服务器或其它远端源传输指令,那么同轴电缆、光纤电缆、双绞线、dsl、或例如红外线、无线电及微波等无线技术包含在介质的定义中。然而,应理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它瞬时性介质,而替代地针对非瞬时性的有形存储介质。如本文中所使用,磁盘及光盘包括压缩光盘(compactdisc,cd)、激光光盘、光盘、数字多功能光盘(digitalversatiledisc,dvd)、软盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘通过激光以光学方式再现数据。以上各项的组合也应包括在计算机可读介质的范围内。可通过例如一个或多个数字信号处理器(digitalsignalprocessor,dsp)、通用微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程逻辑阵列(fieldprogrammablelogicarray,fpga)或其它等效集成或离散逻辑电路等的一个或多个处理器来执行指令。因此,如本文中所使用,术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,可将本文所描述的各种功能提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或者并入到组合式编解码器中。同样,所述技术可以完全在一个或多个电路或逻辑元件中实施。本公开的技术可以在广泛的多种设备或装置中实施。这些设备或装置包括无线手机、集成电路(integratedcircuit,ic)或ic组(例如芯片组)。本公开中描述各种组件、模块或单元以强调经配置以执行所揭示的技术的装置的功能方面,但未必需要通过不同硬件单元实现。更确切地说,如上所述,各种单元可组合于编解码器硬件单元中或者通过互操作的硬件单元(包括如上所述的一个或多个处理器)结合合适软件和/或固件的集合来提供。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1