CN115104309A - 对merge模式的改进 - Google Patents
对merge模式的改进 Download PDFInfo
- Publication number
- CN115104309A CN115104309A CN202080089444.0A CN202080089444A CN115104309A CN 115104309 A CN115104309 A CN 115104309A CN 202080089444 A CN202080089444 A CN 202080089444A CN 115104309 A CN115104309 A CN 115104309A
- Authority
- CN
- China
- Prior art keywords
- candidate
- block
- derived
- video
- current block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
描述了对merge模式的改进。一种示例视频处理方法包括:针对视频的当前块和视频的比特流之间的转换,构建当前块的merge候选列表,其中与当前块相关联的非临近空域merge候选被插入到merge候选列表中;以及基于merge候选列表执行转换。
Description
相关申请的交叉引用
根据适用的专利法和/或依据《巴黎公约》的规则,本申请旨在及时要求于2019年12月23日提交的国际专利申请号PCT/CN2019/127388的优先权和利益。通过引用将国际专利申请号PCT/CN2019/127388的全部公开内容并入作为本申请公开内容的一部分。
技术领域
该专利文档涉及图像和视频编码和解码。
背景技术
数字视频占用了互联网和其他数字通信网络上的最大带宽使用。随着能够接收和显示视频的连接用户设备数量的增加,预计对数字视频使用的带宽需求将继续增长。
发明内容
本文档公开了可由视频编码器和解码器使用以在视频编码或解码期间执行交叉分量自适应环路滤波的技术。
在一个示例方面,公开了一种视频处理方法。该方法包括:针对视频的视频单元和视频的编解码表示之间的转换,基于视频单元的特性确定针对与具有运动矢量差的merge模式(MMVD)编解码工具一起使用的运动矢量差(MVD)的计算操作,以及基于确定执行转换。
在另一个示例方面,公开了一种视频处理方法。该方法包括执行视频的视频单元和视频的编解码表示之间的转换,其中该转换在操作期间使用取决于视频的分辨率的运动矢量缩放过程。
在另一个示例方面,公开了一种视频处理方法。该方法包括:针对视频的视频单元和视频的编解码表示之间的转换生成merge候选列表,其中视频单元的非邻近空域merge候选被插入到merge列表中,以及使用merge候选列表执行转换。
在另一个示例方面,公开了一种视频处理方法。该方法包括:针对视频的视频单元和视频的编解码表示之间的转换生成候选列表,该候选列表的候选是通过平均M个空域相邻候选和N个时域相邻候选而生成的,其中M和N是正整数;以及使用merge候选列表执行转换。
在另一个示例方面,公开了一种视频处理方法。该方法包括:针对视频的视频单元和视频的编解码表示之间的转换生成merge列表,其中用于生成merge列表的构建过程以定义的顺序检查多个候选,以及使用merge候选列表执行转换。
在另一个示例方面,公开了一种视频处理方法。该方法包括:在视频的视频单元和视频的编解码表示之间的转换期间使用两个长期参考图片和运动矢量缩放过程来执行转换。
在另一个示例方面,公开了一种视频处理方法。该方法包括:针对视频的视频单元和视频的比特流之间的转换,基于视频单元的特性导出在具有运动矢量差的merge模式(MMVD)编解码工具中使用的运动矢量差(MVD);以及基于导出的MVD执行转换。
在另一个示例方面,公开了一种视频处理方法。该方法包括:针对视频的视频单元和视频的比特流之间的转换,使用运动矢量(MV)缩放过程导出运动矢量差(MVD),其中MV缩放过程取决于视频的分辨率;以及基于导出的MVD执行转换。
在另一个示例方面,公开了一种视频处理方法。该方法包括:针对视频的视频单元和视频的比特流之间的转换,使用运动矢量(MV)缩放过程导出运动矢量差(MVD),其中MV缩放过程使用两个长期参考图片;以及基于导出的MVD执行转换。
在另一个示例方面,公开了一种用于存储视频的比特流的方法。该方法包括:针对视频的视频单元和视频的比特流之间的转换,基于视频单元的特性导出在具有运动矢量差的merge模式(MMVD)编解码工具中使用的运动矢量差(MVD);基于导出的MVD从视频单元生成比特流;以及将比特流存储在非暂时性计算机可读记录介质中。
在另一个示例方面,公开了一种视频处理方法。该方法包括:针对视频的当前块和视频的比特流表示之间的转换构建当前块的merge候选列表,其中与当前块相关联的非邻近空域merge候选被插入到merge候选列表中;以及基于merge候选列表执行转换。
在另一个示例方面,公开了一种视频处理方法。该方法包括:针对视频的当前块和视频的比特流表示之间的转换构建当前块的merge候选列表,其中merge候选列表的构建过程以定义的顺序检查多个不同种类的候选;以及基于merge候选列表执行转换。
在另一个示例方面,公开了一种用于存储视频的比特流的方法。该方法包括:针对视频的当前块和视频的比特流表示之间的转换构建当前块的merge候选列表,其中与当前块相关联的非邻近空域merge候选被插入到merge候选列表中;以及基于merge候选列表从视频单元生成比特流;以及将比特流存储在非暂时性计算机可读记录介质中。
在另一个示例方面,公开了一种视频处理方法。该方法包括:针对视频的当前块和视频的比特流表示之间的转换构建当前块的merge候选列表,其中与当前块相关联的空域-时域运动矢量预测(STMVP)候选被添加到merge候选列表中,并且导出STMVP候选作为M个空域相邻运动候选和/或N个时域相邻运动候选的平均候选,M和N为正整数;以及基于merge候选列表执行转换。
在另一个示例方面,公开了一种用于存储视频的比特流的方法。该方法包括:针对视频的当前块和视频的比特流表示之间的转换构建当前块的merge候选列表,其中与当前块相关联的空域-时域运动矢量预测(STMVP)候选被添加到merge候选列表中,并且导出STMVP候选作为M个空域相邻运动候选和/或N个时域相邻运动候选的平均候选,M和N为正整数;基于merge候选列表从视频单元生成比特流;以及将比特流存储在非暂时性计算机可读记录介质中。
在又一个示例方面,公开了一种视频编码器装置。视频编码器包括被配置为实现上述方法的处理器。
在又一个示例方面,公开了一种视频解码器装置。视频解码器包括被配置为实现上述方法的处理器。
在又一个示例方面,公开了一种其上存储有代码的计算机可读介质。该代码以处理器可执行代码的形式体现了本文所述的方法之一。
在又一个示例方面,一种计算机可读介质存储通过由视频处理装置执行的上述方法生成的视频的比特流。
这些和其他特征在整个本文档中都进行了描述。
附图说明
图1示出了添加到起始运动矢量(MV)的水平或垂直分量的偏移的示例。
图2示出了当前块的HEVC空域相邻块。
图3示出了虚拟块和当前块之间的关系。
图4是其中可以实施所公开的技术的示例视频处理系统的框图。
图5是用于视频处理的示例硬件平台的框图。
图6是视频处理的示例方法的流程图。
图7是示出根据本公开的一些实施例的视频编解码系统的框图。
图8是示出根据本公开的一些实施例的编码器的框图。
图9是示出根据本公开的一些实施例的解码器的框图。
图10是视频处理的示例方法的流程图。
图11是视频处理的示例方法的流程图。
图12是视频处理的示例方法的流程图。
图13是用于存储视频的比特流的示例方法的流程图。
图14是视频处理的示例方法的流程图。
图15是视频处理的示例方法的流程图。
图16是用于存储视频的比特流的示例方法的流程图。
图17是视频处理的示例方法的流程图。
图18是用于存储视频的比特流的示例方法的流程图。
具体实施方式
在本文档中使用章节标题是为了便于理解,而并非将在每个章节中所公开的技术和实施例的适用性仅限于该章节。此外,在一些描述中使用H.266术语只是为了便于理解而不是为了限制所公开技术的范围。因此,本文描述的技术也适用于其他视频编解码器协议和设计。
1.发明内容
本专利文档涉及视频编解码技术。具体地,其涉及视频编解码中的merge模式。其可以应用于现有的视频编解码标准,如HEVC,或将最终确定的标准(多功能视频编解码)。其也可以适用于未来的视频编解码标准或视频编解码器。
2.背景技术
视频编解码标准主要通过众所周知的ITU-T和ISO/IEC标准的发展而演进。ITU-T产生了H.261和H.263,ISO/IEC产生了MPEG-1和MPEG-4Visual,并且两个组织联合产生了H.262/MPEG-2Video和H.264/MPEG-4高级视频编解码(AVC)和H.265/HEVC标准。自H.262以来,视频编解码标准基于混合视频编解码结构,其中利用了时域预测加变换编解码。为了探索HEVC之外的未来视频编解码技术,VCEG和MPEG于2015年联合成立了联合视频探索组(JVET)。此后,JVET采用了许多新方法,并将其放入名为联合探索模型(JEM)的参考软件中。2018年4月,VCEG(Q6/16)和ISO/IEC JTC1SC29/WG11(MPEG)之间的联合视频专家组(JVET)被创建,旨在制定VVC标准,目标是与HEVC相比比特率降低50%。
2.1.具有MVD的merge模式(MMVD)
除了其中将隐式推导出的运动信息直接用于当前CU的预测样点生成的merge模式外,VVC中还引入了具有运动矢量差的merge模式(MMVD),也称为终极运动矢量表达。在发送跳过标志和merge标志之后立即信令通知MMVD标志,以指定MMVD模式是否用于CU。
在MMVD中,选择merge候选(称为基础merge候选),其通过信令通知的MVD信息被进一步细化。相关语法元素包括用来指定MVD距离的索引(由mmvd_distance_idx表示)和用于指示运动方向的索引(由mmvd_direction_idx表示)。在MMVD模式中,选择merge列表中前两个候选的一个作为MV基础(或基础merge候选)。信令通知merge候选标志以指定使用哪一个候选。
距离索引指定运动幅度信息并指示距离起始点的预定义偏移。如图1所示,偏移被添加到起始MV的水平分量或垂直分量。距离索引与预定义偏移的关系如表3中所指定。
表3:距离索引与预定义偏移的关系
方向索引表示MVD相对于起始点的方向。方向索引可以表示四个方向,如表4所示。需要注意的是,MVD符号的含义可以根据起始MV的信息而变化。当起始MV是单向预测MV或其中两个列表都指向当前图片的同一侧(即,两个参考的POC都大于当前图片,或者都小于当前图片的POC)的双向预测MV时,表4中的符号指定了被添加到起始MV的MV偏移的符号。当起始MV是其中两个MV指向当前图片的不同侧(即一个参考的POC大于当前图片的POC,而另一个参考的POC小于当前图片的POC)的双向预测MV时,表4中的符号指定了被添加到起始MV的列表0MV分量的MV偏移的符号,而列表1Mv的符号具有相反值。
表4:方向索引指定的MV偏移的符号
方向IDX | 00 | 01 | 10 | 11 |
x轴 | + | – | N/A | N/A |
y轴 | N/A | N/A | + | – |
2.2.1每个参考图片列表的MVD的导出
首先根据经解码的MVD距离的索引(由mmvd_distance_idx表示)和运动方向的索引(由mmvd_direction_idx表示)导出一个内部MVD(由MmvdOffset表示)。
之后,如果确定了内部MVD,则根据参考图片相对于当前图片的POC距离以及参考图片类型(长期或短期)来进一步导出将被添加到每个参考图片列表的基础merge候选的最终MVD。更具体地,按顺序执行以下步骤:
—如果基础merge候选是双向预测,则计算当前图片与列表0中的参考图片之间的POC距离,以及当前图片与列表1中的参考图片之间的POC距离,分别由POCDiffL0和POCDidffL1来表示。
—如果POCDiffL0等于POCDidffL1,则两个参考图片列表的最终MVD都被设置为内部MVD。
—否则,如果Abs(POCDiffL0)大于或等于Abs(POCDiffL1),则参考图片列表0的最终MVD被设置为内部MVD,而参考图片列表1的最终MVD使用两个参考图片的内部MVD参考图片类型(两者都不是长期参考图片)被设置为缩放MVD或根据POC距离被设置为内部MVD或(零MV减去内部MVD)。
—否则,如果Abs(POCDiffL0)小于Abs(POCDiffL1),则参考图片列表1的最终MVD被设置为内部MVD,而参考图片列表0的最终MVD使用两个参考图片的内部MVD参考图片类型(两者都不是长期参考图片)被设置为缩放MVD或根据POC距离被设置为内部MVD或(零MV减去内部MVD)。
—如果基础merge候选是来自参考图片列表X的单向预测,则参考图片列表X的最终MVD被设置为内部MVD,而参考图片列表Y(Y=1-X)的最终MVD被设置为0.
2.2.2 VVC中的MMVD规范
(JVET-P2001-vE中的)MMVD规范如下:
7.3.9.7 merge数据语法
mmvd_merge_flag[x0][y0]等于1指定使用具有运动矢量差的merge模式来生成当前编解码单元的帧间预测参数。mmvd_merge_flag[x0][y0]等于0指示不使用具有运动矢量差的merge模式来生成帧间预测参数。数组索引x0、y0指定所考虑编解码块的左上亮度样点相对于图片左上亮度样点的位置(x0,y0)。
当mmvd_merge_flag[x0][y0]不存在时,其被推断为等于0。
mmvd_cand_flag[x0][y0]指定merge候选列表中的第一个(0)还是第二个(1)候选与从mmvd_distance_idx[x0][y0]和mmvd_direction_idx[x0][y0]导出的运动矢量差一起使用。数组索引x0、y0指定所考虑编解码块的左上亮度样点相对于图片左上亮度样点的位置(x0,y0)。
当mmvd_cand_flag[x0][y0]不存在时,其被推断为等于0。
mmvd_distance_idx[x0][y0]指定用于导出MmvdDistance[x0][y0]的索引,如Table 17中所指定的。数组索引x0、y0指定所考虑编解码块的左上亮度样点相对于图片左上亮度样点的位置(x0,y0)。
表17–基于mmvd_distance_idx[x0][y0]的MmvdDistance[x0][y0]的规范。
mmvd_direction_idx[x0][y0]指定用于导出MmvdSign[x0][y0]的索引,如Table18中所指定的。数组索引x0、y0指定所考虑编解码块的左上亮度样点相对于图片左上亮度样点的位置(x0,y0)。
表18-基于mmvd_direction_idx[x0][y0]的MmvdSign[x0][y0]的规范
merge的两个分量加上MVD偏移MmvdOffset[x0][y0]如下导出:
MmvdOffset[x0][y0][0]=(MmvdDistance[x0][y0]<<2)*MmvdSig n[x0][y0][0] (181)
MmvdOffset[x0][y0][1]=(MmvdDistance[x0][y0]<<2)*MmvdSig n[x0][y0][1] (182)
8.5.2.7 merge运动矢量差的导出过程
该过程的输入为:
—当前亮度编解码块的左上样点相对于当前图片的左上亮度样点的亮度位置(xCb,yCb),
—参考索引refIdxL0和refIdxL1,
—预测列表利用标志predFlagL0和predFlagL1。
此过程的输出是1/16分数样点精度的亮度merge运动矢量差mMvdL0和mMvdL1。
变量currPic指定当前图片。
亮度merge运动矢量差mMvdL0和mMvdL1如下导出:
—如果predFlagL0和predFlagL1都等于1,则适用以下情况:
currPocDiffL0=DiffPicOrderCnt(currPic,RefPicList[0][refIdxL0])(564)
currPocDiffL1=DiffPicOrderCnt(currPic,RefPicList[1][refIdxL1])(565)
—如果currPocDiffL0等于currPocDiffL1,则适用以下情况:
mMvdL0[0]=MmvdOffset[xCb][yCb][0] (566)
mMvdL0[1]=MmvdOffset[xCb][yCb][1] (567)
mMvdL1[0]=MmvdOffset[xCb][yCb][0] (568)
mMvdL1[1]=MmvdOffset[xCb][yCb][1] (569)
—否则,如果Abs(currPocDiffL0)大于或等于Abs(currPocDiffL1),则适用以下情况:
mMvdL0[0]=MmvdOffset[xCb][yCb][0] (570)
mMvdL0[1]=MmvdOffset[xCb][yCb][1] (571)
—如果RefPicList[0][refIdxL0]不是长期参考图片且RefPicList[1][refIdxL1]不是长期参考图片,则适用以下情况:
td=Clip3(-128,127,currPocDiffL0) (572)
tb=Clip3(-128,127,currPocDiffL1) (573)
tx=(16384+(Abs(td)>>1))/td (574)
distScaleFactor=Clip3(-4096,4095,(tb*tx+32)>>6) (575)
mMvdL1[0]=Clip3(-217,217-1,(distScaleFactor*mMvdL0[0]+ (576)
128-(distScaleFactor*mMvdL0[0]>=0))>>8)
mMvdL1[1]=Clip3(-217,217-1,(distScaleFactor*mMvdL0[1]+ (577)
128-(distScaleFactor*mMvdL0[1]>=0))>>8)
—否则,适用以下情况:
mMvdL1[0]=Sign(currPocDiffL0)==Sign(currPocDiffL1)?
mMvdL0[0]:-mMvdL0[0] (578)
mMvdL1[1]=Sign(currPocDiffL0)==Sign(currPocDiffL1)?
mMvdL0[1]:-mMvdL0[1] (579)
—否则(Abs(currPocDiffL0)小于Abs(currPocDiffL1)),适用以下情况:
mMvdL1[0]=MmvdOffset[xCb][yCb][0] (580)
mMvdL1[1]=MmvdOffset[xCb][yCb][1] (581)
—如果RefPicList[0][refIdxL0]不是长期参考图片且RefPicList[1][refIdxL1]不是长期参考图片,则适用以下情况:
td=Clip3(-128,127,currPocDiffL1) (582)
tb=Clip3(-128,127,currPocDiffL0) (583)
tx=(16384+(Abs(td)>>1))/td (584)
distScaleFactor=Clip3(-4096,4095,(tb*tx+32)>>6) (585)
mMvdL0[0]=Clip3(-217,217-1,(distScaleFactor*mMvdL1[0]+ (586)
128-(distScaleFactor*mMvdL1[0]>=0))>>8)
mMvdL0[1]=Clip3(-217,217-1,,(distScaleFactor*mMvdL1[1]+ (587)
128-(distScaleFactor*mMvdL1[1]>=0))>>8))
—否则,适用以下情况:
mMvdL0[0]=Sign(currPocDiffL0)==Sign(currPocDiffL1)?
mMvdL1[0]:-mMvdL1[0] (588)
mMvdL0[1]=Sign(currPocDiffL0)==Sign(currPocDiffL1)?
mMvdL1[1]:-mMvdL1[1] (589)
—否则(predFlagL0或predFlagL1等于1),对于X等于0和1适用以下情况:
mMvdLX[0]=(predFlagLX==1)?MmvdOffset[xCb][yCb][0]:0 (590)
mMvdLX[1]=(predFlagLX==1)?MmvdOffset[xCb][yCb][1]:0 (591)
2.2.JVET-L0323:长距离merge候选
在HEVC中,图2中所示的五个空域相邻(spatially neighboring)块以及一个时域邻居用于导出merge候选。
图2示出了当前块的HEVC空域相邻块。
该贡献建议使用与HEVC中相同的模式从与当前块非邻近(non-adjacent)位置导出附加的merge候选。为此,对于每个搜索轮次i,基于当前块生成虚拟块,如下所述:
首先,虚拟块与当前块的相对位置由下式计算:
Offsetx=-i*gridX,Offsety=-i*gridY
其中Offsetx和Offsety表示虚拟块的左上角相对于当前块的左上角的偏移,gridX和gridY为搜索网格的宽度和高度。
其次,虚拟块的宽度和高度由下式计算:
newWidth=i*2*gridX+currWidth newHeight=i*2*gridY+currHeight.
其中currWidth和currHeight为当前块的宽度和高度。newWidth和newHeight为新块的宽度和高度。
gridX和gridY当前分别被设置为currWidth和currHeight。
图3示出了虚拟块和当前块之间的关系。
在生成虚拟块之后,块Ai、Bi、Ci、Di和Ei可以被视为虚拟块的HEVC空域相邻块,并且它们的位置以与HEVC中相同的模式获得。显然,如果搜索轮次i为0,则虚拟块就是当前块。在这种情况下,块Ai、Bi、Ci、Di和Ei是在HEVCmerge模式中使用的空域相邻块。
在构建merge候选列表时,执行修剪以保证merge候选列表中的每个元素都是唯一的。随着越来越多的块将被检查以导出附加的merge候选,修剪数也相应增加。为了在最坏的情况下限制修剪数,merge列表构造中允许的最大修剪数被约束为预定义的值MaxPruningNum。
在模拟中,最大搜索轮次被设置为2,并且MaxPruningNum被设置为30。
长距离merge候选也称为非邻近merge候选。
图3是第i个搜索轮次中的虚拟块的图示。
2.3.JVET-M0059:非缩放STMVP
所提出的方法使用两个空域merge候选和一个同位(collocated)merge候选导出平均候选作为STMVP候选。
STMVP被插入到左上空域merge候选之前。
对于空域候选,使用当前merge候选列表中的第一候选和第二候选。
对于时域候选,使用与VTM/HEVC同位位置相同的位置。
如果有参考等于0的三个候选可用,则适用以下情况。
mvLX[0]=(mvLX_A[0]*3+mvLX_B[0]*3+mvLX_C[0]*2)/8
mvLX[1]=(mvLX_A[1]*3+mvLX_B[1]*3+mvLX_C[1]*2)/8
如果有参考等于零的两个运动信息可用,则适用以下情况
mvLX[0]=(mvLX_A[0]+mvLX_C[0])/2
mvLX[1]=(mvLX_A[1]+mvLX_C[1])/2
或者
mvLX[0]=(mvLX_B[0]+mvLX_C[0])/2
mvLX[1]=(mvLX_B[1]+mvLX_C[1])/2
注意.如果时域候选不可用,则STMVP模式关闭。
MMVD也称为终极运动矢量表达(UMVE)。
3.本文技术方案和实施例解决的技术问题
可以进一步改进merge模式的当前设计。
1.在MMVD模式下,对于小块(例如,4x8/8x4),即使只允许单向预测,如果基础merge候选是双向预测,仍然可以导出两个MVD。更具体地,如果选择的MV基础(或基础merge候选)是双向MV,则来自一个参考列表X(X=0或1)的预测方向的MVD被直接设置为等于信令通知的MVD,而另一个参考列表Y(Y=1–X)的MVD是根据预测方向X的MVD和POC(图片顺序计数)距离导出的,因此在某些情况下需要缩放。然而,在VTM-7.0中,对于4x8/8x4块,双向预测是被禁止的。因此,无需导出L1的MVD。
2.此外,非邻近merge候选和/或STMVP可以用于提高merge模式的有效性。此外,可以提高编解码效率。
4.示例实施例和技术
以下项目应被视为解释一般概念的示例。这些项目不应狭隘地解释。此外,这些项目可以以任何方式组合。
在MMVD中,内部MVD是从比特流中的信令通知的语法元素(诸如MVD距离和方向信息)导出的。并且最终MVD是用于细化基础merge候选的MVD,即用于导出块的最终MV的MVD。
在下文中,currWidth和currHeight是当前块(例如亮度块)的宽度和高度。maxNumMergeCand表示merge列表大小。
如章节2.3所示,在生成虚拟块之后,块Ai、Bi、Ci、Di和Ei可以被视为虚拟块的HEVC空域相邻块,并且它们的位置以与HEVC相同的模式获得。显然,如果搜索轮次i为0,则虚拟块就是当前块。在这种情况下,块Ai、Bi、Ci、Di和Ei是在HEVCmerge模式中使用的空域相邻块。
对于空域候选,在STMVP之前插入的当前merge候选列表中的第一、第二和第三个候选分别表示为F、S和T。
对于与VTM/HEVC相同位置的时域候选,STMVP中使用的同位位置表示为Col。
MMVD的MVD导出
1.如何导出在MMVD方法中使用的MVD可以取决于块维度和/或允许预测方向(例如,针对视频单元(例如,CU/PU)是否仅允许单向预测)。
a.在一个示例中,如果针对视频单元仅允许单向预测,则仅从内部MVD导出一个MVD而不是两个MVD,而不管与MMVD中的基础merge候选相关联的预测方向如何。
i.在一个示例中,如果仅来自参考图片列表X的预测是预测方向,由ListX表示(例如,X为0),则ListX的最终MVD是从内部MVD导出的。
(i)替代地,此外,ListX的最终MVD被设置为等于内部MVD。
(ii)替代地,此外,ListX的最终MVD被设置为等于内部MVD的相反值。
(iii)替代地,此外,ListY的最终MVD被设置为默认值,例如,零MVD。
b.在一个示例中,如果满足取决于块维度的(一个或多个)特定条件,则仅从内部MVD导出一个MVD而不是两个MVD,而不管与MMVD中的基础merge候选相关联的预测方向如何。
i.在一个示例中,条件是currWidth+currHeight小于或等于N(N为正整数)。例如,N=12。
ii.在一个示例中,条件是currWidth*currHeight小于或等于N(N为正整数)。例如,N=32。
iii.在一个示例中,条件是currWidth<N1或/和currHeight<N2(N1,N2为正整数)。例如,N1=N2=8。
iv.在一个示例中,条件是currWidth<N3*currHeight和/或currHeight<N4*currWidth(N3、N4为正整数)。例如,N3=N4=8。
2.建议在MMVD中,当基础merge候选是双向MV时,如果块维度或块形状满足一个或多个条件,则内部MVD可以总是直接用于(例如,不进行缩放)预测方向X(X=0,1)。
a.在一个示例中,内部MVD总是直接用于预测方向0。
b.在一个示例中,条件是currWidth+currHeight小于或等于N(N为正整数)。例如,N=12。
c.在一个示例中,条件是currWidth*currHeight小于或等于N(N为正整数)。例如,N=32。
d.在一个示例中,条件是currWidth<N1或/和currHeight<N2(N1,N2为正整数)。例如,N1=N2=8。
e.在一个示例中,条件是currWidth<N3*currHeight和/或currHeight<N4*currWidth(N3、N4为正整数)。例如,N3=N4=8。
f.如果块维度或块形状满足一个或多个条件,则可以使用内部MVD的相反值(-MVD)来代替MVD预测方向X(X=0,1)。
3.MV缩放过程(例如,在MMVD、TMVP等中使用的那些)可以将图片分辨率作为考虑因素。
4.对于两个都是长期参考图片的参考图片,仍然可以应用MV缩放过程。
a.在一个示例中,MV缩放过程可以类似于其中两个参考图片是短期参考图片的情况,即,取决于POC距离。
非邻近merge候选
5.可以将非临近空域merge候选插入到merge列表中。
a.在一个示例中,在基于历史的merge候选之后将非临近空域merge候选插入到merge列表中。
b.在一个示例中,在成对平均merge候选之后将非临近空域merge候选插入到merge列表中。
c.在一个示例中,如果merge列表中的可用merge候选的数量在插入时域merge候选之后达到预定义值,则可以不插入非临近空域merge候选。
d.在一个示例中,如果在插入非临近空域merge候选时merge列表中可用merge候选的数量达到预定义值,则插入过程将被终止。
e.在一个示例中,预定义值等于maxNumMergeCand–N。
i.在一个示例中,N被设置为等于1、2、3或4。
f.在一个示例中,最大搜索轮次被设置为等于1或2,即,可以使用五个或十个非临近空域merge候选来构建merge列表。
g.在一个示例中,对于每个搜索轮次,插入顺序是Ai、Bi、Ci、Di和Ei。
i.替代地,对于每个搜索轮次,插入顺序为Bi、Ai、Ci、Di和Ei。
ii.替代地,对于每个搜索轮次,插入顺序为Bi、Ci、Ai、Di和Ei。
iii.替代地,对于每个搜索轮次,插入顺序为Ai、Di、Bi、Ci和Ei。
h.在一个示例中,所有空域和时域merge候选对merge列表中的所有先前merge候选执行完全修剪。基于历史的merge候选和成对平均候选的修剪过程没有改变。
i.替代地,所有空域、时域、基于历史和成对平均的merge候选对merge列表中的所有先前merge候选执行完全修剪。
j.替代地,对于非临近空域merge候选,Ai用Ai-1执行修剪,Bi用Ai执行修剪,Ci用Bi执行修剪,Di用Ai执行修剪,Ei用Ai和Bi执行修剪。时域、基于历史和成对平均候选的修剪过程没有改变。
k.在一个示例中,merge列表构建中允许的最大修剪次数MaxPruningNum可以取决于merge列表大小maxNumMergeCand。
i.例如,MaxPruningNum可以被设置为等于maxNumMergeCand–M(M为整数)。例如,M=2。
ii.例如,MaxPruningNum可以被设置为等于maxNumMergeCand*M(M为整数)。例如,M=2。
iii.替代地,MaxPruningNum与merge列表大小maxNumMergeCand无关。例如,MaxPruningNum可以被设置为等于30或35。
l.在一个示例中,非临近空域merge候选位置被约束在预定义区域内。
i.在一个示例中,该区域可以包含当前CTU行和当前CTU行上方的四个样点行。
ii.在一个示例中,该区域可以包含当前CTU列和当前CTU的四个左侧样点列。
iii.在一个示例中,该区域可以包含当前CTU列和当前CTU的左CTU列。
m.在一个示例中,非临近空域merge候选位置在水平方向上没有约束。
n.在一个示例中,非临近空域merge候选可以用作MMVD的基础merge候选。
i.替代地,不允许将非临近空域merge候选用作MMVD的基础merge候选。
o.在一个示例中,可以使用非临近空域merge候选来生成帧间-帧内预测。
i.替代地,不允许非临近空域merge候选生成帧间-帧内预测。
p.在一个示例中,可以使用非临近空域merge候选来生成几何(GEO)分割和/或三角形分割merge候选。
i.替代地,不允许非临近空域merge候选生成几何(GEO)分割和/或三角形分割merge候选。
q.在一个示例中,可以使用非临近空域merge候选来生成仿射merge候选。
r.在一个示例中,可以使用非临近空域merge候选来生成高级运动矢量预测(AMVP)候选。
空域-时域运动矢量预测(STMVP)
6.STMVP候选可以被导出作为M个空域相邻运动候选和/或N个时域相邻运动候选的平均候选。
a.在一个示例中,M>2。
b.在一个示例中,可以从与用于merge列表构建过程的那些相邻块不同或相同的其他相邻块导出空域相邻运动候选。
c.在一个示例中,可以从merge列表中包括的空域merge候选中选择空域相邻运动候选。
d.在一个示例中,可以在添加STMVP之前从merge列表中包括的前M个或最后M个空域merge候选中选择空域相邻运动候选。
e.在一个示例中,可以在添加STMVP之前从merge列表中包括的前M个或最后M个merge候选中选择空域相邻运动候选。
f.在一个示例中,可以从时域merge候选中选择时域相邻运动候选。
i.在一个示例中,如果时域merge候选不可用,则认为STMVP候选不可用。
g.在一个示例中,空域相邻运动候选和/或时域相邻运动候选是否被视为有效是基于参考图片信息。
i.在一个示例中,仅当其在至少一个参考图片列表中的参考索引等于或不大于K(例如,K=0)时。
ii.在一个示例中,仅当其在两个参考图片列表中的参考索引均等于或不大于K(例如,K=0)时。
iii.替代地,此外,当其被视为无效时,其不用于导出STMVP候选。
iv.替代地,此外,如果前M个空域merge候选中的至少一个候选和一个同位的merge候选有效,则STMVP候选有效。
h.在一个示例中,M被设置为等于3,并且N被设置为等于1。
i.在一个示例中,如果四个merge候选的参考索引都有效并且在预测方向X上都等于0(X=0或1),则如下导出STMVP候选在预测方向X上的运动矢量(表示为mvLX):
mvLX=(mvLX_F*a+mvLX_S*b+mvLX_T*c+mvLX_Col*d)>>e
(i)在一个示例中,a、b、c、d和e被设置为等于1、1、1、1和2。
ii.在一个示例中,如果四个merge候选中的三个的参考索引有效并且在预测方向X上等于0(X=0或1),则如下导出STMVP候选在预测方向X上的运动矢量(表示为mvLX):
mvLX=(mvLX_F*a+mvLX_S*b+mvLX_Col*c)>>d或者
mvLX=(mvLX_F*a+mvLX_T*b+mvLX_Col*c)>>d或者
mvLX=(mvLX_S*a+mvLX_T*b+mvLX_Col*c)>>d
(i)在一个示例中,a、b、c和d设置为等于3、3、2和3。
(ii)在一个示例中,a、b、c和d设置为等于2、2、4和3。
(iii)在一个示例中,a、b、c和d设置为等于1、1、6和3。
iii.在一个示例中,如果四个merge候选中的两个的参考索引有效并且在预测方向X上等于0(X=0或1),则如下导出STMVP候选在预测方向X上的运动矢量(表示为mvLX):
mvLX=(mvLX_F*a+mvLX_Col*b)>>c或者
mvLX=(mvLX_S*a+mvLX_Col*b)>>c或者
mvLX=(mvLX_T*a+mvLX_Col*b)>>c
(i)在一个示例中,a、b和c被设置为等于1、1和1
i.在一个示例中,可以用merge列表中的所有先前merge候选来修剪STMVP候选。
j.在一个示例中,STMVP候选可以不用其他merge候选进行修剪。
k.在一个示例中,STMVP候选可以仅用上方和左侧的merge候选进行修剪。
l.在一个示例中,STMVP候选参考一个或两个特定参考图片。
i.例如,特定参考图片是参考列表中参考索引等于0的参考图片。
ii.例如,特定参考图片是参考列表中具有最小参考索引的M个空域相邻运动候选和/或N个时域相邻运动候选的参考图片。
merge列表构建过程
7.merge列表构建过程可能包括按顺序检查的以下候选。
a.第一组空域merge候选(例如,从B、A、C、D导出)、STMVP、第二组空域merge候选(例如,从E导出)、TMVP、HMVP、成对平均merge候选、零运动矢量merge候选。
b.从邻近块导出的空域merge候选(例如,从B、A、C、D、E导出)、TMVP、从非临近块导出的第一组空域merge候选(例如,从B1、A1、C1、D1、E1导出)、HMVP、成对平均merge候选、零运动矢量merge候选。
c.从邻近块导出的空域merge候选(例如,从B、A、C、D、E导出)、TMVP、从非临近块导出的空域merge候选(例如,从B1、A1、C1、D1、E1、B2、A2、C2、D2、E2导出)、HMVP、成对平均merge候选、零运动矢量merge候选。
d.第一组空域merge候选(例如,从B、A、C、D导出)、STMVP、第二组空域merge候选(例如,从E导出)、TMVP、从非临近块导出的第一组空域merge候选(例如,从B1、A1、C1、D1、E1导出)、HMVP、成对平均merge候选、零运动矢量merge候选。
e.在上述示例中,如果对应候选不可用、或无效、或与现有(添加在对应候选之前)候选相同或相似,则不将对应候选包括在运动候选列表中。
8.上述方法可以应用于除merge候选列表之外的其他种类的运动候选列表。
a.替代地,上述方法可以应用于IBC编解码块的块矢量候选列表构建过程。在这种情况下,可以通过检查块是否以IBC模式编解码来代替检查参考图片索引是否等于K。
5.实施例
5.1.关于MMVD的实施例#1
如果在MMVD模式下选择的MV基础(或基础merge候选)是双向MV,并且块的宽度和高度之和小于或等于12,则预测方向0(L0)的MVD直接被设置成等于信令通知的MVD,且MMVDmerge候选被转换为L0单向预测候选。
8.5.2.7 merge运动矢量差的导出过程
该过程的输入为:
—当前亮度编解码块的左上样点相对于当前图片的左上亮度样点的亮度位置(xCb,yCb),
—参考索引refIdxL0和refIdxL1,
—预测列表利用标志predFlagL0和predFlagL1。
此过程的输出是1/16分数样点精度的亮度merge运动矢量差mMvdL0和mMvdL1。
变量currPic指定当前图片。
亮度merge运动矢量差mMvdL0和mMvdL1如下导出:
—如果predFlagL0和predFlagL1两者都等于1并且当前亮度编解码块的宽度和高度之和大于12,则适用以下情况:
currPocDiffL0=DiffPicOrderCnt(currPic,RefPicList[0][refIdxL0])(564)
currPocDiffL1=DiffPicOrderCnt(currPic,RefPicList[1][refIdxL1])(565)
—如果currPocDiffL0等于currPocDiffL1,则适用以下情况:
mMvdL0[0]=MmvdOffset[xCb][yCb][0] (566)
mMvdL0[1]=MmvdOffset[xCb][yCb][1] (567)
mMvdL1[0]=MmvdOffset[xCb][yCb][0] (568)
mMvdL1[1]=MmvdOffset[xCb][yCb][1] (569)
—否则,如果Abs(currPocDiffL0)大于或等于Abs(currPocDiffL1),则适用以下情况:
mMvdL0[0]=MmvdOffset[xCb][yCb][0] (570)
mMvdL0[1]=MmvdOffset[xCb][yCb][1] (571)
—如果RefPicList[0][refIdxL0]不是长期参考图片且RefPicList[1][refIdxL1]不是长期参考图片,则适用以下情况:
td=Clip3(-128,127,currPocDiffL0) (572)
tb=Clip3(-128,127,currPocDiffL1) (573)
tx=(16384+(Abs(td)>>1))/td (574)
distScaleFactor=Clip3(-4096,4095,(tb*tx+32)>>6) (575)
mMvdL1[0]=Clip3(-217,217-1,(distScaleFactor*mMvdL0[0]+ (576)
128-(distScaleFactor*mMvdL0[0]>=0))>>8)
mMvdL1[1]=Clip3(-217,217-1,(distScaleFactor*mMvdL0[1]+ (577)
128-(distScaleFactor*mMvdL0[1]>=0))>>8)
—否则,适用以下情况:
mMvdL1[0]=Sign(currPocDiffL0)==Sign(currPocDiffL1)?
mMvdL0[0]:-mMvdL0[0] (578)
mMvdL1[1]=Sign(currPocDiffL0)==Sign(currPocDiffL1)?
mMvdL0[1]:-mMvdL0[1] (579)
—否则(Abs(currPocDiffL0)小于Abs(currPocDiffL1)),适用以下情况:
mMvdL1[0]=MmvdOffset[xCb][yCb][0] (580)
mMvdL1[1]=MmvdOffset[xCb][yCb][1] (581)
—如果RefPicList[0][refIdxL0]不是长期参考图片且RefPicList[1][refIdxL1]不是长期参考图片,则适用以下情况:
td=Clip3(-128,127,currPocDiffL1) (582)
tb=Clip3(-128,127,currPocDiffL0) (583)
tx=(16384+(Abs(td)>>1))/td (584)
distScaleFactor=Clip3(-4096,4095,(tb*tx+32)>>6) (585)
mMvdL0[0]=Clip3(-217,217-1,(distScaleFactor*mMvdL1[0]+ (586)
128-(distScaleFactor*mMvdL1[0]>=0))>>8)
mMvdL0[1]=Clip3(-217,217-1,,(distScaleFactor*mMvdL1[1]+ (587)
128-(distScaleFactor*mMvdL1[1]>=0))>>8))
—否则,适用以下情况:
mMvdL0[0]=Sign(currPocDiffL0)==Sign(currPocDiffL1)?
mMvdL1[0]:-mMvdL1[0] (588)
mMvdL0[1]=Sign(currPocDiffL0)==Sign(currPocDiffL1)?
mMvdL1[1]:-mMvdL1[1] (589)
—否则(predFlagL0或predFlagL1等于1或当前亮度编解码块的宽度和高度之和小于或等于12),则对于X为0和1适用以下情况:
mMvdLX[0]=(predFlagLX==1)?MmvdOffset[xCb][yCb][0]:0 (590)
mMvdLX[1]=(predFlagLX==1)?MmvdOffset[xCb][yCb][1]:0 (591)
图4是示出其中可以实现本文公开的各种技术的示例视频处理系统1900的框图。各种具体实施可以包括系统1900的一些或全部组件。系统1900可以包括用于接收视频内容的输入1902。视频内容可以以原始或未压缩格式(例如,8比特或10比特多分量像素值)接收,或者可以以压缩或编码格式接收。输入1902可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(PON)之类的有线接口和诸如Wi-Fi或蜂窝接口之类的无线接口。
系统1900可以包括可以实现本文档中描述的各种编解码或编码方法的编解码组件1904。编解码组件1904可以降低从输入1902到编解码组件1904的输出的视频的平均比特率,以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件1904的输出可以被存储,或者经由连接的通信进行传输,如组件1906所表示的。在输入1902处接收到的所存储或传送的视频的比特流(或编解码)表示可以由组件1908用于生成像素值或发送到显示接口1910的可显示视频。从比特流表示生成用户可观看视频的过程有时称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但应当理解,编解码工具或操作在编码器处使用,而反转编解码结果的相应解码工具或操作将由解码器执行。
外围总线接口或显示接口的示例可以包括通用串行总线(USB)或高清晰度多媒体接口(HDMI)或显示端口等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能手机或能够执行数字数据处理和/或视频显示的其他设备。
图5是视频处理装置3600的框图。装置3600可以用于实现本文描述的一种或多种方法。装置3600可以体现在智能手机、平板电脑、计算机、物联网(IoT)接收器等中。装置3600可以包括一个或多个处理器3602、一个或多个存储器3604和视频处理硬件3606。(一个或多个)处理器3602可以被配置为实现本文档中描述的一种或多种方法。(一个或多个)存储器3604可以用于存储用于实现本文描述的方法和技术的数据和代码。视频处理硬件3606可以用于在硬件电路中实现本文档中描述的一些技术。
图7是示出可利用本发明的技术的示例视频编解码系统100的框图。
如图7所示,视频编解码系统100可以包括源设备110和目标设备120。源设备110生成编码的视频数据,其可以被称为视频编码设备。目标设备120可以对由源设备110生成的编码的视频数据进行解码,其可以被称为视频解码设备。
源设备110可以包括视频源112、视频编码器114和输入/输出(I/O)接口116。
视频源112可以包括诸如视频捕获设备之类、从视频内容提供者接收视频数据的接口、和/或用于生成视频数据的计算机图形系统的源、或此类源的组合。视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码以生成比特流。比特流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括编解码图片和相关联数据。编解码图片是图片的编解码表示。相关联数据可以包括序列参数集、图片参数集和其他语法结构。I/O接口116可以包括调制器/解调器(调制解调器)和/或发射器。编码的视频数据可以通过网络130a经由I/O接口116直接传输到目标设备120。编码的视频数据也可以存储在存储介质/服务器130b上以供目标设备120访问。
目标设备120可以包括I/O接口126、视频解码器124和显示设备122。
I/O接口126可以包括接收器和/或调制解调器。I/O接口126可以从源设备110或存储介质/服务器130b获取编码的视频数据。视频解码器124可对编码的视频数据进行解码。显示设备122可以向用户显示解码的视频数据。显示设备122可以与目标设备120集成,或者可以在被配置为与外部显示设备交接的目标设备120的外部。
视频编码器114和视频解码器124可以根据视频压缩标准操作,诸如高效视频编解码(HEVC)标准、多功能视频编解码(VVC)标准以及其他当前和/或另外的标准。
图8是示出视频编码器200的示例的框图,其可以是图7中所示的系统100中的视频编码器114。
视频编码器200可以被配置为执行本公开的任何或全部技术。在图8的示例中,视频编码器200包括多个功能组件。本公开中所描述的技术可在视频编码器200的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或全部技术。
视频编码器200的功能组件可以包括分割单元201、预测单元202、残差生成单元207、变换单元208、量化单元209、逆量化单元210、逆变换单元211、重构单元212、缓冲器213和熵编码单元214,预测单元可以包括模式选择单元203、运动估计单元204、运动补偿单元205和帧内预测单元206。
在其他示例中,视频编码器200可包括更多、更少或不同的功能组件。在一个示例中,预测单元202可以包括帧内块复制(IBC)单元。IBC单元可以在IBC模式下执行预测,在IBC模式中至少一个参考图片是当前视频块所在的图片。
此外,诸如运动估计单元204和运动补偿单元205之类的一些组件可以高度集成,但是为了解释的目的而在图8的示例中单独表示。
分割单元201可将一个图片分割成一个或多个视频块。视频编码器200和视频解码器300可以支持各种视频块大小。
模式选择单元203可以例如基于误差结果来选择编解码模式(帧内或帧间)中的一种,并且将得到的帧内或帧间编解码块提供给残差生成单元207以生成残差块数据并提供给重构单元212以重构编解码块以用作参考图片。在一些示例中,模式选择单元203可以选择组合帧内和帧间预测(CIIP)模式,在CIIP模式中预测基于帧间预测信号和帧内预测信号。在帧间预测的情况下,模式选择单元203还可以针对块选择运动矢量的分辨率(例如,子像素或整数像素精度)。
为了对当前视频块执行帧间预测,运动估计单元204可以通过将来自缓冲器213的一个或多个参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元205可以基于来自缓冲器213的除了与当前视频块相关联的图片之外的图片的运动信息和解码样点来确定当前视频块的预测视频块。
运动估计单元204和运动补偿单元205可以对当前视频块执行不同的操作,例如,取决于当前视频块是在I切片、P切片还是B切片中。
在一些示例中,运动估计单元204可以针对当前视频块执行单向预测,并且运动估计单元204可搜索列表0或列表1的参考图片以寻找当前视频块的参考视频块。然后运动估计单元204可以生成指示列表0或列表1中包含参考视频块的参考图片的参考索引和指示当前视频块与参考视频块之间的空域位移的运动矢量。运动估计单元204可以输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
在其他示例中,运动估计单元204可以针对当前视频块执行双向预测,运动估计单元204可以在列表0中的参考图片中搜索当前视频块的参考视频块并且还可以在列表1中的参考图片中搜索当前视频块的另一个参考视频块。然后,运动估计单元204可以生成指示列表0和列表1中包含参考视频块的参考图片的参考索引和指示参考视频块与当前视频块之间的空域位移的运动矢量。运动估计单元204可以输出当前视频块的参考索引和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。
在一些示例中,运动估计单元204可以输出完整的运动信息集以用于解码器的解码处理。
在一些示例中,运动估计单元204可以不输出当前视频的完整的运动信息集。相反,运动估计单元204可以参考另一视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元204可以确定当前视频块的运动信息与相邻视频块的运动信息足够相似。
在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中指示值,该值向视频解码器300指示当前视频块具有与另一视频块相同的运动信息。
在另一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中识别另一视频块和运动矢量差(MVD)。运动矢量差指示当前视频块的运动矢量与所指示的视频块的运动矢量之间的差。视频解码器300可以使用所指示的视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
如上文所讨论的,视频编码器200可以预测性地信令通知运动矢量。可以由视频编码器200实施的预测性信令技术的两个示例包括高级运动矢量预测(AMVP)和merge模式信令。
帧内预测单元206可以对当前视频块执行帧内预测。当帧内预测单元206对当前视频块执行帧内预测时,帧内预测单元206可以基于同一图片中的其他视频块的解码样点生成当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。
残差生成单元207可以通过从当前视频块减去(例如,由负号指示)当前视频块的(一个或多个)预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括对应于当前视频块中的样点的不同样点分量的残差视频块。
在其他示例中,针对当前视频块可能不存在当前视频块的残差数据,例如在跳过模式下,并且残差生成单元207可以不执行减法运算。
变换处理单元208可以通过对与当前视频块相关联的残差视频块应用一个或多个变换来生成当前视频块的一个或多个变换系数视频块。
在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或多个量化参数(QP)值来量化与当前视频块相关联的变换系数视频块。
逆量化单元210和逆变换单元211可以分别对变换系数视频块应用逆量化和逆变换,以从变换系数视频块重构残差视频块。重构单元212可以将重构的残差视频块添加到来自由预测单元202生成的一个或多个预测视频块的对应样点,以生成与当前块相关联的重构视频块以存储在缓冲器213中。
在重构单元212重构视频块之后,可以执行环路滤波操作以减少视频块中的视频块伪影。
熵编码单元214可以从视频编码器200的其他功能组件接收数据。当熵编码单元214接收数据时,熵编码单元214可以执行一个或多个熵编码操作以生成熵编码数据并输出包括熵编码数据的比特流。
图9是示出视频解码器300的示例的框图,其可以是图7中所示的系统100中的视频解码器114。
视频解码器300可以被配置为执行本公开的任何或全部技术。在图8的示例中,视频解码器300包括多个功能组件。本公开中所描述的技术可在视频解码器300的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或全部技术。
在图9的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305以及重构单元306和缓冲器307。在一些示例中,视频解码器300可以执行与关于视频编码器200(图8)所描述的编码遍大体上相反的解码遍。
熵解码单元301可以检索编码的比特流。编码的比特流可以包括熵编解码的视频数据(例如,编码的视频数据块)。熵解码单元301可以对熵编解码的视频数据进行解码,并且根据熵解码的视频数据,运动补偿单元302可以确定包括运动矢量、运动矢量精度、参考图片列表索引的运动信息以及其他运动信息。例如,运动补偿单元302可以通过执行AMVP和merge模式来确定这样的信息。
运动补偿单元302可以产生运动补偿块,可能基于插值滤波器执行插值。用于以子像素精度使用的插值滤波器的标识符可以包括在语法元素中。
运动补偿单元302可以使用由视频编码器200在对视频块进行编码期间使用的插值滤波器来计算参考块的子整数像素的插值。运动补偿单元302可以根据接收的语法信息来确定由视频编码器200使用的插值滤波器并且使用该插值滤波器来产生预测块。
运动补偿单元302可以使用一些语法信息来确定用于对编码的视频序列的(一个或多个)帧和/或(一个或多个)切片进行编码的块的大小、描述如何对编码的视频序列的图片的每个宏块进行分割的分割信息、指示如何对每个分割进行编码的模式、每个帧间编码的块的一个或多个参考帧(和参考帧列表),以及用于对编码的视频序列进行解码的其他信息。
帧内预测单元303可以使用例如在比特流中接收的帧内预测模式来从空域邻近块形成预测块。逆量化单元303对在比特流中提供并由熵解码单元301解码的量化视频块系数进行逆量化,即去量化。逆变换单元303应用逆变换。
重构单元306可以将残差块与由运动补偿单元202或帧内预测单元303生成的对应预测块相加以形成解码块。如果需要,还可以应用去方块滤波器来对解码块进行滤波,以便去除块效应伪影。然后将解码视频块存储在缓冲器307中,该缓冲器为随后的运动补偿/帧内预测提供参考块并且还产生解码的视频以用于在显示设备上呈现。
接下来提供一些实施例所优选的解决方案列表。
以下解决方案显示了上一章节中所讨论的技术的示例实施例(例如,第1项)。
1.一种视频处理方法(例如,图6中描绘的方法600),包括:针对视频的视频单元和视频的编解码表示之间的转换,基于视频单元的特性确定(602)针对与具有运动矢量差的merge模式(MMVD)编解码工具一起使用的运动矢量差(MVD)的计算操作,以及基于确定执行(604)转换。
2.根据解决方案1所述的方法,其中视频单元的特性包括视频单元的维度或允许预测方向。
3.根据解决方案1-2所述的方法,其中视频单元的特性是仅允许单向预测,并且基于该特性,计算操作确定单个MVD,而不管与MMVD编解码工具相关联的基础merge候选的预测方向如何。
4.根据解决方案2所述的方法,其中由于视频单元的维度满足条件,计算操作确定单个MVD,而不管与MMVD编解码工具相关联的基础merge候选的预测方向如何。
以下解决方案显示了上一章节中所讨论的技术的示例实施例(例如,第2项)。
5.根据解决方案1所述的方法,其中视频单元的特性是与MMVD编解码工具相关联的基础merge候选为双向运动矢量,并且转换包括在视频单元满足块大小条件的情况下将内部运动矢量差直接用于预测方向X,其中X=0或1。
6.根据解决方案5所述的方法,其中将内部运动矢量差直接用于预测方向0。
7.根据解决方案5所述的方法,其中块大小条件为视频单元的高度加宽度小于或等于N,其中N为小于总图片像素宽度的正整数。
以下解决方案显示了上一章节中所讨论的技术的示例实施例(例如,第3项)。
8.一种视频处理的方法,包括:
执行视频的视频单元和视频的编解码表示之间的转换,其中该转换使用在操作期间取决于视频的分辨率的运动矢量缩放过程。
9.根据解决方案8所述的方法,其中操作包括使用具有运动矢量差的merge工具进行编码或解码。
10.根据解决方案8所述的方法,其中操作包括使用时域运动矢量预测过程进行编码或解码。
以下解决方案显示了上一章节中所讨论的技术的示例实施例(例如,第4项)。
11.一种视频处理的方法,包括:
在视频的视频单元和视频的编解码表示之间的转换期间使用两个长期参考图片和运动矢量缩放过程来执行转换。
12.根据解决方案11所述的方法,其中运动矢量缩放过程基于两个长期参考图片的图片顺序计数。
以下解决方案显示了上一章节中所讨论的技术的示例实施例(例如,第5项)。
13.一种视频处理的方法,包括:
针对视频的视频单元和视频的编解码表示之间的转换生成merge候选列表,其中视频单元的非临近空域merge候选被插入到merge列表中;以及
使用merge候选列表执行转换。
14.根据解决方案13所述的方法,其中在基于历史的merge候选之后将非临近空域merge候选插入到merge列表中。
15.根据解决方案13所述的方法,其中在成对平均merge候选之后将非临近空域merge候选插入到merge列表中。
16.根据解决方案13所述的方法,其中在插入时域merge候选之后,在merge列表中的可用merge候选的数量达到预定义值之后,不插入非临近空域merge候选。
17.根据解决方案13所述的方法,其中以定义的顺序插入非临近空域merge候选。
以下解决方案显示了上一章节中所讨论的技术的示例实施例(例如,第6项)。
18.一种视频处理的方法,包括:
针对视频的视频单元和视频的编解码表示之间的转换生成候选列表,该候选列表中的候选是中通过平均M个空域相邻候选和N个时域相邻候选而生成的,其中M和N是正整数;以及
使用merge候选列表执行转换。
19.根据解决方案18所述的方法,其中M>2。
20.根据解决方案18-19所述的方法,其中M个空域相邻候选可以从包括在merge列表中的空域merge候选导出。
21.根据解决方案18-19所述的方法,其中N个时域相邻候选可以从包括在merge列表中的时域merge候选导出。
22.根据解决方案18所述的方法,其中M=3且N=1。
以下解决方案显示了上一章节中所讨论的技术的示例实施例(例如,第7项)。
23.一种视频处理的方法,包括:
针对视频的视频单元和视频的编解码表示之间的转换生成merge列表,其中用于生成merge列表的构建过程以定义的顺序检查多个候选;以及
使用merge候选列表执行转换。
24.根据解决方案23所述的方法,其中定义的顺序包括:第一组空域merge候选、空域-时域merge候选、第二组merge候选、时域运动矢量预测子、基于历史的运动矢量预测子、成对平均merge候选矢量和零运动矢量merge候选。
25.根据解决方案23所述的方法,其中定义的顺序包括:从邻近块导出(例如,从B、A、C、D、E导出)的空域merge候选、TMVP、从非临近块导出(例如,从B1、A1、C1、D1、E1导出)的第一组空域merge候选、HMVP、成对平均merge候选、零运动矢量merge候选。
26.根据解决方案1-25中任一项所述的方法,其中视频单元包括视频块或视频编解码树单元或视频变换单元或视频编解码单元。
27.根据解决方案1-26中任一项所述的方法,其中执行转换包括对视频进行编码以生成编解码表示。
28.根据解决方案1-26中任一项所述的方法,其中执行转换包括对编解码表示进行解析和解码以生成视频。
29.一种视频解码装置,包括被配置为实现根据解决方案1至28中的一项或多项中所述的方法的处理器。
30.一种视频编码装置,包括被配置为实现根据解决方案1至28中的一项或多项中所述的方法的处理器。
31.一种其上存储有计算机代码的计算机程序产品,所述代码在由处理器执行时使所述处理器实现根据解决方案1至28中任一项中所述的方法。
32.本文档中描述的方法、装置或系统。
图10示出了用于视频处理的示例方法的流程图。该方法包括:针对视频的视频单元和视频的比特流之间的转换,基于视频单元的特性导出(1002)在具有运动矢量差的模式(MMVD)编解码工具中使用的运动矢量差(MVD);以及基于导出的MVD执行(1004)转换。
在一些示例中,视频单元的特性包括视频单元的维度或形状和/或视频单元的允许预测方向,并且视频单元的维度包括分别指示视频单元的宽度和高度的currWidth和currHeight参数。
在一些示例中,当视频单元的特性指示针对视频单元仅允许单向预测时,从与MMVD编解码工具相关联的内部MVD导出单个MVD,而不管与MMVD编解码工具中的基础merge候选相关联的预测方向如何,其中内部MVD是从比特流中的信令通知的语法元素导出的。
在一些示例中,如果仅来自参考图片列表X的预测是允许预测方向,由ListX表示,则ListX的MVD是从内部MVD导出的,X为0或1。
在一些示例中,ListX的MVD被设置为等于内部MVD。
在一些示例中,ListX的MVD被设置为等于内部MVD的相反值。
在一些示例中,用于从由ListY表示的参考图片列表Y进行预测的MVD被设置为默认值,Y为1或0。
在一些示例中,当视频单元的特性指示视频单元的维度满足条件时,从与MMVD编解码工具相关联的内部MVD导出单个MVD,而不管与MMVD编解码工具中的基础merge候选相关联的预测方向如何,其中内部MVD是从比特流中的信令通知的语法元素导出的MVD。
在一些示例中,条件是currWidth+currHeight小于或等于N,其中N为正整数。
在一些示例中,N=12,或N=32。
在一些示例中,条件是currWidth<N1或/和currHeight<N2,其中N1、N2为正整数。
在一些示例中,N1=N2=8。
在一些示例中,条件是currWidth<N3*currHeight和/或currHeight<N4*currWidth,其中N3、N4为正整数。
在一些示例中,N3=N4=8。
在一些示例中,如果视频单元的特性指示视频单元的维度或形状满足一个或多个条件,则当基础merge候选为双向MV时,内部MVD总是直接用于预测方向X而不进行缩放,其中X=0或1。
在一些示例中,内部MVD总是直接用于预测方向0。
在一些示例中,条件是currWidth+currHeight小于或等于N,其中N为正整数。
在一些示例中,N=12或N=32。
在一些示例中,条件是currWidth<N3*currHeight和/或currHeight<N4*currWidth,其中N3、N4为正整数。
在一些示例中,N3=N4=8。
在一些示例中,内部MVD的相反值用于预测方向X而不进行缩放,其中X=0或1。
图11示出了用于视频处理的示例方法的流程图。该方法包括:针对视频的视频单元和视频的比特流之间的转换,使用运动矢量(MV)缩放过程导出(1102)运动矢量差(MVD),其中MV缩放过程取决于视频的分辨率;以及基于导出的MVD执行(1104)转换。
在一些示例中,具有运动矢量差的merge模式(MMVD)编解码工具或时域运动矢量预测(TMVP)编解码工具中使用MVD。
图12示出了用于视频处理的示例方法的流程图。该方法包括:针对视频的视频单元和视频的比特流之间的转换,使用运动矢量(MV)缩放过程导出(1202)运动矢量差(MVD),其中MV缩放过程使用两个长期参考图片;以及基于导出的MVD执行(1204)转换。
在一些示例中,视频单元包括视频的编解码单元(CU)、预测单元(PU)或块中的至少一个。
在一些示例中,转换包括将视频的视频单元编码到比特流中。
在一些示例中,转换包括从比特流中解码视频的视频单元。
图13示出了用于存储视频的比特流的示例方法的流程图。该方法包括:针对视频的视频单元和视频的比特流之间的转换,基于视频单元的特性导出(1302)在具有运动矢量差的merge模式(MMVD)编解码工具中使用的运动矢量差(MVD);基于导出的MVD从视频单元生成(1304)比特流;以及将比特流存储(1306)在非暂时性计算机可读记录介质中。
图14示出了用于视频处理的示例方法的流程图。该方法包括:针对视频的当前块和视频的比特流表示之间的转换,构建(1402)当前块的merge候选列表,其中与当前块相关联的非临近空域merge候选被插入到merge候选列表中;以及基于merge候选列表执行(1404)转换。
在一些示例中,在基于历史的merge候选之后将非临近空域merge候选插入到merge列表中。
在一些示例中,在成对平均merge候选之后将非临近空域merge候选插入到merge列表中。
在一些示例中,如果merge候选列表中的可用merge候选的数量在插入时域merge候选之后达到预定义值,则不插入非临近空域merge候选。
在一些示例中,当插入非临近空域merge候选时,如果merge候选列表中的可用merge候选的数量达到预定义值,则终止过程。
在一些示例中,预定义值等于maxNumMergeCand-N,其中maxNumMergeCand表示merge候选列表的大小,N为正整数。
在一些示例中,N被设置为等于2、3或4。
在一些示例中,在构建merge候选列表期间的最大搜索轮次被设置为等于1或2。
在一些示例中,对于每一轮搜索,以预定义的插入顺序插入非临近空域merge候选,并且非临近空域merge候选包括从当前块的非临近左侧块导出的候选Ai、从当前块的非临近上方块导出的候选Bi、从当前块的非临近右上块导出的候选Ci、从当前块的非临近左下块n导出的候选Di,以及从当前块左侧的非临近左上块导出的候选Ei,其中i为搜索轮次。
在一些示例中,插入顺序为Ai、Bi、Ci、Di和Ei,插入顺序为Bi、Ai、Ci、Di和Ei,插入顺序为Bi、Ci、Ai、Di和Ei,或插入顺序为Ai、Di、Bi、Ci和Ei。
在一些示例中,所有空域和时域merge候选用merge候选列表中的所有先前merge候选执行完全修剪过程,并且基于历史的merge候选和成对平均候选的修剪过程没有改变。
在一些示例中,所有空域、时域、基于历史和成对平均的merge候选用merge候选列表中的所有先前merge候选执行完全修剪过程。
在一些示例中,针对非临近空域merge候选,Ai用Ai-1执行修剪,Bi用Ai执行修剪过程,Ci用Bi执行修剪,Di用Ai执行修剪,Ei用Ai和Bi执行修剪,并且时域、基于历史和成对平均的候选的修剪过程没有改变。
在一些示例中,在merge候选列表的构建期间允许的最大修剪次数表示为MaxPruningNum,其取决于merge候选列表的大小,表示为maxNumMergeCand。
在一些示例中,MaxPruningNum被设置为等于maxNumMergeCand–M,其中M为整数。
在一些示例中,M=2。
在一些示例中,MaxPruningNum被设置为等于maxNumMergeCand*M,其中M为整数。
在一些示例中,M=2。
在一些示例中,在merge候选列表的构建期间允许的最大修剪次数表示为MaxPruningNum,其与merge候选列表的大小无关,表示为maxNumMergeCand。
在一些示例中,MaxPruningNum被设置为等于30或35。
在一些示例中,非临近空域merge候选的位置被约束在预定义区域内。
在一些示例中,预定义区域包含当前编解码树单元(CTU)行和当前CTU行上方的四个样点行。
在一些示例中,预定义区域包含当前CTU列和当前CTU列的四个左侧样点列。
在一些示例中,预定义区域包含当前CTU列和当前CTU列的左侧CTU列。
在一些示例中,非临近空域merge候选的位置在水平方向上没有约束。
在一些示例中,允许将非临近空域merge候选用作具有运动矢量差的merge模式(MMVD)编解码工具的基础merge候选。
在一些示例中,不允许将非临近空域merge候选用作具有运动矢量差的merge模式(MMVD)编解码工具的基础merge候选。
在一些示例中,允许使用非临近空域merge候选来生成帧间-帧内预测。
在一些示例中,不允许使用非临近空域merge候选来生成帧间-帧内预测。
在一些示例中,允许使用非临近空域merge候选来生成几何(GEO)分割和/或三角形分割merge候选。
在一些示例中,不允许使用非临近空域merge候选来生成几何(GEO)分割和/或三角形分割merge候选。
在一些示例中,允许使用非临近空域merge候选来生成仿射merge候选。
在一些示例中,允许使用非临近空域merge候选来生成高级运动矢量预测(AMVP)候选。
图15示出了用于视频处理的示例方法的流程图。该方法包括:针对视频的当前块和视频的比特流表示之间的转换,构建(1502)当前块的merge候选列表,其中merge候选列表的构建过程以定义的顺序检查多个不同种类的候选;以及基于merge候选列表执行(1504)转换。
在一些示例中,定义的顺序包括:第一组空域merge候选、空域时域运动矢量预测子(STMVP)候选、第二组空域merge候选、时域运动矢量预测子(TMVP)候选、基于历史的运动矢量预测子(HMVP)候选、成对平均merge候选和零运动矢量merge候选。
在一些示例中,第一组空域merge候选包括从当前块的上方块导出的候选B、从当前块的左侧块导出的候选A、从当前块的右上块导出的候选C和从当前块的左下块导出的第四候选D,并且第二组空域merge候选包括从当前块的左上块导出的候选E。
在一些示例中,定义的顺序包括:从当前块的邻近块导出的空域merge候选、TMVP候选、从当前块的非临近块导出的第一组空域merge候选、HMVP候选、成对平均merge候选和零运动矢量merge候选。
在一些示例中,从当前块的邻近块导出的空域merge候选包括从当前块的上方块导出的候选B、从当前块的左侧块导出的候选A、从当前块的右上块导出的候选C和从当前块的左下块导出的第四候选D以及从当前块的左上块导出的候选E,并且从当前块的非临近块导出的第一组空域merge候选包括从当前块的非临近上方块导出的候选B1、从当前块的非临近左侧块导出的候选A1、从当前块的非临近右上块导出的候选C1、从当前块的非临近左下块n导出的候选D1,以及从当前块左侧的非临近左上块导出的候选E1,它们是在第一搜索轮次中导出的。
在一些示例中,定义的顺序包括:从当前块的邻近块导出的空域merge候选、TMVP候选、从当前块的非临近块导出的空域merge候选、HMVP候选、成对平均merge候选和零运动矢量merge候选。
在一些示例中,从当前块的邻近块导出的空域merge候选包括从当前块的上方块导出的候选B、从当前块的左侧块导出的候选A、从当前块的右上块导出的候选C和从当前块的左下块导出的第四候选D以及从当前块的左上块导出的候选E,并且从当前块的非临近块导出的空域merge候选包括:从当前块的非临近上方块导出的候选B1、从当前块的非临近左侧块导出的候选A1、从当前块的非临近右上块导出的候选C1、从当前块的非临近左下块n导出的候选D1和从当前块左侧的非临近左上块导出的候选E1,它们是在第一搜索轮次中导出的;以及从当前块的非临近上方块导出的候选B2、从当前块的非临近左侧块导出的候选A2、从当前块的非临近右上块导出的候选C2、从当前块的非临近左下块n导出的候选D2和从当前块左侧的非临近左上块导出的候选E2,它们是在第二搜索轮次中导出的。
在一些示例中,定义的顺序包括:第一组空域merge候选、STMVP候选、第二组空域merge候选、时域运动矢量预测子(TMVP)候选、从当前块的非临近块导出的第一组空域merge候选、HMVP候选、成对平均merge候选和零运动矢量merge候选。
在一些示例中,第一组空域merge候选包括从当前块的上方块导出的候选B、从当前块的左侧块导出的候选A、从当前块的右上块导出的候选C和从当前块的左下块导出的第四候选D,并且从当前块的非临近块导出的第一组空域merge候选包括从当前块的非临近上方块导出的候选B1、从当前块的非临近左侧块导出的候选A1、从当前块的非临近右上块导出的候选C1、从当前块的非临近左下块n导出的候选D1,以及从当前块左侧的非临近左上块导出的候选E1,它们是在第一搜索轮次中导出的。
在一些示例中,如果相应的候选不可用、或无效、或与merge候选列表中的现有候选相同或相似,则不将相应的候选包括在merge候选列表中。
在一些示例中,转换包括将视频的视频单元编码到比特流中。
在一些示例中,转换包括从比特流中解码视频的视频单元。
图16示出了用于存储视频的比特流的示例方法的流程图。该方法包括:针对视频的当前块和视频的比特流表示之间的转换,构建(1602)当前块的merge候选列表,其中与当前块相关联的非临近空域merge候选被插入到merge候选列表中;以及基于merge候选列表从视频单元生成(1604)比特流;以及将比特流存储(1606)在非暂时性计算机可读记录介质中。
图17示出了用于视频处理的示例方法的流程图。该方法包括:针对视频的当前块和视频的比特流表示之间的转换,构建(1702)当前块的merge候选列表,其中与当前块相关联的空域-时域运动矢量预测(STMVP)候选被添加到merge候选列表中,并且导出STMVP候选作为M个空域相邻运动候选和/或N个时域相邻运动候选的平均候选,M和N为正整数;以及基于merge候选列表执行(1704)转换。
在一些示例中,M>2。
在一些示例中,空域相邻运动候选是从与在merge候选列表的构建过程期间使用的那些相邻块不同或相同的其他相邻块导出的。
在一些示例中,从merge候选列表中包括的空域merge候选中选择空域相邻运动候选。
在一些示例中,在添加STMVP候选之前,从merge候选列表中包括的前M个或最后M个空域merge候选中选择空域相邻运动候选。
在一些示例中,在添加STMVP候选之前,从merge候选列表中包括的前M个或最后M个merge候选中选择空域相邻运动候选。
在一些示例中,从merge候选列表中包括的时域merge候选中选择时域相邻运动候选。
在一些示例中,如果时域merge候选不可用,则认为STMVP候选不可用。
在一些示例中,空域相邻运动候选和/或时域相邻运动候选是否被视为有效是基于与当前块相关联的参考图片信息。
在一些示例中,仅当其在至少一个参考图片列表中的参考索引等于或不大于K时,其才被视为有效,其中K为整数。
在一些示例中,仅当其在两个参考图片列表中的参考索引均等于或不大于K时,其才被视为有效,其中K为整数。
在一些示例中,K=0。
在一些示例中,当其被视为无效时,其不用于导出STMVP候选。
在一些示例中,如果前M个空域merge候选中的至少一个候选和一个同位的merge候选有效,则STMVP候选有效。
在一些示例中,M=3且N=1,并且STMVP候选被导出作为四个merge候选的平均候选。
在一些示例中,如果四个merge候选的参考索引都有效并且在预测方向X上都等于0,X为0或1,则如下导出STMVP候选在预测方向X上的运动矢量,表示为mvLX:
mvLX=(mvLX_F*a+mvLX_S*b+mvLX_T*c+mvLX_Col*d)>>e,
其中a、b、c、d和e为整数。
在一些示例中,a、b、c、d和e被设置为等于1、1、1、1和2。
在一些示例中,如果四个merge候选中的三个的参考索引有效并且在预测方向X上等于0,X=0或1,则如下导出STMVP候选在预测方向X上的运动矢量,表示为mvLX:
mvLX=(mvLX_F*a+mvLX_S*b+mvLX_Col*c)>>d;或者
mvLX=(mvLX_F*a+mvLX_T*b+mvLX_Col*c)>>d;或者
mvLX=(mvLX_S*a+mvLX_T*b+mvLX_Col*c)>>d,
其中a、b、c和d为整数。
在一些示例中,a、b、c和d被设置为等于3、3、2和3,或者a、b、c和d被设置为等于2、2、4和3,或者a,b、c和d被设置为等于1、1、6和3。
在一些示例中,如果四个merge候选中的两个的参考索引有效并且在预测方向X上等于0,X=0或1,则如下导出STMVP候选在预测方向X上的运动矢量,表示为mvLX:
mvLX=(mvLX_F*a+mvLX_Col*b)>>c;或者
mvLX=(mvLX_S*a+mvLX_Col*b)>>c;或者
mvLX=(mvLX_T*a+mvLX_Col*b)>>c,
其中a、b和c为整数。
在一些示例中,a、b和c被设置为等于1、1和1。
在一些示例中,STMVP候选用merge候选列表中的所有先前merge候选进行修剪。
在一些示例中,STMVP候选不用其他merge候选进行修剪。
在一些示例中,STMVP候选只用上方和左侧的merge候选进行修剪。
在一些示例中,STMVP候选参考一个或两个特定参考图片。
在一些示例中,特定参考图片是参考列表中参考索引等于0的参考图片。
在一些示例中,特定参考图片是参考列表中具有最小参考索引的M个空域相邻运动候选和/或N个时域相邻运动候选的参考图片。
在一些示例中,转换包括将视频的视频单元编码到比特流中。
在一些示例中,转换包括从比特流中解码视频的视频单元。
图18示出了用于存储视频的比特流的示例方法的流程图。该方法包括:针对视频的当前块和视频的比特流表示之间的转换,构建(1802)当前块的merge候选列表,其中与当前块相关联的空域-时域运动矢量预测(STMVP)候选被添加到merge候选列表中,并且导出STMVP候选作为M个空域相邻运动候选和/或N个时域相邻运动候选的平均候选,M和N为正整数;基于merge候选列表从视频单元生成(1804)比特流;以及将比特流存储(1806)在非暂时性计算机可读记录介质中。
在本文档中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,视频压缩算法可以在从视频的像素表示转换为对应的比特流表示期间应用,反之亦然。当前视频块的比特流表示可以例如对应于在比特流内位于相同位置或分布在不同位置的比特,如语法所定义的。例如,宏块可以根据变换和编解码的误差残差值进行编码,并且还可以使用标头中的比特和比特流中的其他字段。
本文档中描述的所公开的解决方案、示例、实施例、模块和功能操作以及其他解决方案、示例、实施例、模块和功能操作可以在数字电子电路或计算机软件、固件或硬件中实现,包括本文档中公开的结构及其结构等效物,或它们中的一种或多种的组合。所公开的实施例以及其他实施例可以实现为一个或多个计算机程序产品,即,计算机程序指令的一个或多个模块,其被编码在计算机可读介质上以用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质组合物,或它们中的一种或多种的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所考虑的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中一种或多种的组合的代码。传播信号是人工生成的信号,例如机器生成的电、光或电磁信号,该信号被生成为对信息进行编码以传输到合适的接收器装置。
计算机程序(也称为程序、软件、软件应用程序、脚本或代码)可以采用任何形式的编程语言编写,包括编译或解释语言,并且其可以采用任何形式部署,包括部署为独立式程序或者模块、组件、子例程或者适合于在计算环境中使用的其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在包含其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于所考虑程序的单个文件或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)。计算机程序可以被部署为在一个计算机上或位于一个场所或分布在多个场所并通过通信网络互连的多个计算机上执行。
本文档中描述的过程和逻辑流程可以通过由一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能而执行。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
以举例的方式,适合于执行计算机程序的处理器同时包括通用和专用的微处理器以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。一般来说,计算机还可以包括或者可操作地耦合至用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘,或者光盘),从其接收数据或者向其传递数据,或者两者兼有。然而,计算机不需要有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如EPROM、EEPROM和闪存存储器设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或结合在专用逻辑电路中。
虽然本专利文档包含许多细节,但这些不应被解释为对任何主题的范围或可能要求保护的内容的限制,而是对特定技术的特定实施例可能特有的特征的描述。本专利文档中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以单独在多个实施中或以任何合适的子组合来实施。此外,尽管以上可能将特征描述为以某些组合起作用并且甚至最初如此宣称,但是在一些情况下,可以从组合中切除所要求保护的组合中的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求以所示的特定顺序或以连续的顺序执行这样的操作,或者为实现期望的结果要执行所有示出的操作。此外,本专利文档中描述的实施例中各种系统组件的分离不应理解为在所有实施例中都需要这种分离。
仅描述了几个具体实施和示例,并且可以基于本专利文档中描述和说明的内容进行其他具体实施、增强和变化。
Claims (49)
1.一种视频处理方法,包括:
针对视频的当前块和所述视频的比特流之间的转换,构建所述当前块的merge候选列表,其中与所述当前块相关联的非临近空域merge候选被插入到所述merge候选列表中;以及
基于所述merge候选列表执行所述转换。
2.根据权利要求1所述的方法,其中在基于历史的merge候选之后将所述非临近空域merge候选插入到所述merge列表中。
3.根据权利要求1所述的方法,其中在成对平均merge候选之后将所述非临近空域merge候选插入到所述merge列表中。
4.根据权利要求1所述的方法,其中如果在插入时域merge候选之后,所述merge候选列表中的可用merge候选的数量达到预定义值,则不插入所述非临近空域merge候选。
5.根据权利要求1所述的方法,其中当插入所述非临近空域merge候选时,如果所述merge候选列表中的可用merge候选的数量达到预定义值,则终止过程。
6.根据权利要求4或5所述的方法,其中所述预定义值等于maxNumMergeCand-N,其中maxNumMergeCand表示所述merge候选列表的大小,N为正整数。
7.根据权利要求6所述的方法,其中N被设置为等于2、3或4。
8.根据权利要求1所述的方法,其中在构建所述merge候选列表期间的最大搜索轮次被设置为等于1或2。
9.根据权利要求8所述的方法,对于每个搜索轮次,以预定义的插入顺序插入所述非临近空域merge候选,并且所述非临近空域merge候选包括从所述当前块的非临近左侧块导出的候选Ai、从所述当前块的非临近上方块导出的候选Bi、从所述当前块的非临近右上块导出的候选Ci、从所述当前块的非临近左下块n导出的候选Di,以及从所述当前块的非临近左上块导出的候选Ei,其中i为搜索轮次。
10.根据权利要求9所述的方法,其中所述插入顺序为Ai、Bi、Ci、Di和Ei,
所述插入顺序为Bi、Ai、Ci、Di和Ei,
所述插入顺序为Bi、Ci、Ai、Di和Ei,或者
所述插入顺序为Ai、Di、Bi、Ci和Ei。
11.根据权利要求1-10中任一项所述的方法,其中所有空域和时域merge候选利用所述merge候选列表中的所有先前merge候选执行完全修剪过程,并且基于历史的merge候选和成对平均候选的修剪过程没有改变。
12.根据权利要求1-10中任一项所述的方法,其中所有空域、时域、基于历史和成对平均的merge候选利用所述merge候选列表中的所有先前merge候选执行完全修剪过程。
13.根据权利要求9-10中任一项所述的方法,其中针对所述非临近空域merge候选,Ai利用Ai-1执行修剪,Bi利用Ai执行修剪过程,Ci利用Bi执行修剪,Di利用Ai执行修剪,Ei利用Ai和Bi执行修剪,并且时域、基于历史和成对平均的候选的修剪过程没有改变。
14.根据权利要求1所述的方法,其中在所述merge候选列表的构建期间允许的最大修剪次数表示为MaxPruningNum,其取决于所述merge候选列表的大小,表示为maxNumMergeCand。
15.根据权利要求14所述的方法,其中MaxPruningNum被设置为等于maxNumMergeCand-M,其中M为整数。
16.根据权利要求15所述的方法,其中M=2。
17.根据权利要求14所述的方法,其中MaxPruningNum被设置为等于maxNumMergeCand*M,其中M为整数。
18.根据权利要求17所述的方法,其中M=2。
19.根据权利要求1所述的方法,其中在所述merge候选列表的构建期间允许的最大修剪次数表示为MaxPruningNum,其与所述merge候选列表的大小无关,表示为maxNumMergeCand。
20.根据权利要求19所述的方法,其中MaxPruningNum被设置为等于30或35。
21.根据权利要求1所述的方法,其中所述非临近空域merge候选的位置被约束在预定义区域内。
22.根据权利要求21所述的方法,其中所述预定义区域包含当前编解码树单元(CTU)行和所述当前CTU行上方的四个样点行。
23.根据权利要求21所述的方法,其中所述预定义区域包含当前CTU列和所述当前CTU列的四个左侧样点列。
24.根据权利要求21所述的方法,其中所述预定义区域包含当前CTU列和当前CTU列的左侧CTU列。
25.根据权利要求1所述的方法,其中所述非临近空域merge候选的位置在水平方向上没有约束。
26.根据权利要求1-25中任一项所述的方法,其中允许将所述非临近空域merge候选用作具有运动矢量差的merge模式(MMVD)编解码工具的基础merge候选。
27.根据权利要求1-25中任一项所述的方法,其中不允许将所述非临近空域merge候选用作具有运动矢量差的merge模式(MMVD)编解码工具的基础merge候选。
28.根据权利要求1-25中任一项所述的方法,其中允许使用所述非临近空域merge候选来生成帧间-帧内预测。
29.根据权利要求1-25中任一项所述的方法,其中不允许使用所述非临近空域merge候选来生成帧间-帧内预测。
30.根据权利要求1-25中任一项所述的方法,其中允许使用所述非临近空域merge候选来生成几何(GEO)分割和/或三角形分割merge候选。
31.根据权利要求1-25中任一项所述的方法,其中不允许使用所述非临近空域merge候选来生成几何(GEO)分割和/或三角形分割merge候选。
32.根据权利要求1-25中任一项所述的方法,其中允许使用所述非临近空域merge候选来生成仿射merge候选。
33.根据权利要求1-25中任一项所述的方法,其中允许使用所述非临近空域merge候选来生成高级运动矢量预测(AMVP)候选。
34.一种视频处理方法,包括:
针对视频的当前块和所述视频的比特流之间的转换,构建所述当前块的merge候选列表,其中所述merge候选列表的构建过程以定义的顺序检查多个不同种类的候选;以及
基于所述merge候选列表执行所述转换。
35.根据权利要求34所述的方法,其中所述定义的顺序包括:第一组空域merge候选、空域时域运动矢量预测子(STMVP)候选、第二组空域merge候选、时域运动矢量预测子(TMVP)候选、基于历史的运动矢量预测子(HMVP)候选、成对平均merge候选和零运动矢量merge候选。
36.根据权利要求35所述的方法,其中所述第一组空域merge候选包括从所述当前块的上方块导出的候选B、从所述当前块的左侧块导出的候选A、从所述当前块的右上块导出的候选C和从所述当前块的左下块导出的第四候选D,并且所述第二组空域merge候选包括从所述当前块的左上块导出的候选E。
37.根据权利要求34所述的方法,其中所述定义的顺序包括:从所述当前块的邻近块导出的空域merge候选、TMVP候选、从所述当前块的非临近块导出的第一组空域merge候选、HMVP候选、成对平均merge候选和零运动矢量merge候选。
38.根据权利要求37所述的方法,其中从所述当前块的邻近块导出的所述空域merge候选包括从所述当前块的上方块导出的候选B、从所述当前块的左侧块导出的候选A、从所述当前块的右上块导出的候选C和从所述当前块的左下块导出的第四候选D,以及从所述当前块的左上块导出的候选E,并且
从所述当前块的非临近块导出的所述第一组空域merge候选包括从所述当前块的非临近上方块导出的候选B1、从所述当前块的非临近左侧块导出的候选A1、从所述当前块的非临近右上块导出的候选C1、从所述当前块的非临近的左下块n导出的候选D1,以及从所述当前块左侧的非临近左上块导出的候选E1,它们是在第一搜索轮次中导出的。
39.根据权利要求34所述的方法,其中所述定义的顺序包括:从所述当前块的邻近块导出的空域merge候选、TMVP候选、从所述当前块的非临近块导出的空域merge候选、HMVP候选、成对平均merge候选和零运动矢量merge候选。
40.根据权利要求39所述的方法,其中从所述当前块的邻近块导出的所述空域merge候选包括从所述当前块的上方块导出的候选B、从所述当前块的左侧块导出的候选A、从所述当前块的右上块导出的候选C和从所述当前块的左下块导出的第四候选D,以及从所述当前块的左上块导出的候选E,并且
从所述当前块的非临近块导出的所述空域merge候选包括:从所述当前块的非临近上方块导出的候选B1、从所述当前块的非临近左侧块导出的候选A1、从所述当前块的非临近右上块导出的候选C1、从所述当前块的非临近左下块n导出的候选D1和从所述当前块左侧的非临近左上块导出的候选E1,它们是在第一搜索轮次中导出的;以及从所述当前块的非临近上方块导出的候选B2、从所述当前块的非临近左侧块导出的候选A2、从所述当前块的非临近右上块导出的候选C2、从所述当前块的非临近左下块n导出的候选D2和从所述当前块左侧的非临近左上块导出的候选E2,它们是在第二搜索轮次中导出的。
41.根据权利要求34所述的方法,其中所述定义的顺序包括:第一组空域merge候选、STMVP候选、第二组空域merge候选、时域运动矢量预测子(TMVP)候选、从所述当前块的非临近块导出的第一组空域merge候选、HMVP候选、成对平均merge候选和零运动矢量merge候选。
42.根据权利要求41所述的方法,其中所述第一组空域merge候选包括从所述当前块的上方块导出的候选B、从所述当前块的左侧块导出的候选A、从所述当前块的右上块导出的候选C和从所述当前块的左下块导出的第四候选D,并且
从所述当前块的非临近块导出的所述第一组空域merge候选包括从所述当前块的非临近上方块导出的候选B1、从所述当前块的非临近左侧块导出的候选A1、从所述当前块的非临近右上块导出的候选C1、从所述当前块的非临近的左下块n导出的候选D1,以及从所述当前块左侧的非临近左上块导出的候选E1,它们是在第一搜索轮次中导出的。
43.根据权利要求34-42中任一项所述的方法,其中如果相应的候选不可用、或无效、或与所述merge候选列表中的现有候选相同或相似,则不将所述相应的候选包括在所述merge候选列表中。
44.根据权利要求1-43中任一项所述的方法,其中所述转换包括将视频的所述视频单元编码到所述比特流中。
45.根据权利要求1-43中任一项所述的方法,其中所述转换包括从所述比特流解码视频的所述视频单元。
46.一种用于处理视频数据的装置,包括处理器和其上带有指令的非暂时性存储器,其中所述指令在由所述处理器执行时使所述处理器:
针对视频的当前块和所述视频的比特流之间的转换,构建所述当前块的merge候选列表,其中与所述当前块相关联的非临近空域merge候选被插入到所述merge候选列表中;以及
基于所述merge候选列表执行所述转换。
47.一种存储指令的非暂时性计算机可读介质,所述指令使处理器:
针对视频的当前块和所述视频的比特流之间的转换,构建所述当前块的merge候选列表,其中与所述当前块相关联的非临近空域merge候选被插入到所述merge候选列表中;以及
基于所述merge候选列表执行所述转换。
48.一种存储通过由视频处理装置执行的方法生成的视频的比特流的非暂时性计算机可读介质,其中所述方法包括:
针对视频的当前块和所述视频的比特流之间的转换,构建所述当前块的merge候选列表,其中与所述当前块相关联的非临近空域merge候选被插入到所述merge候选列表中;以及
基于所述merge候选列表从所述视频单元生成所述比特流。
49.一种用于存储视频的比特流的方法,包括:
针对视频的当前块和所述视频的比特流之间的转换,构建所述当前块的merge候选列表,其中与所述当前块相关联的非临近空域merge候选被插入到所述merge候选列表中;以及
基于所述merge候选列表从所述视频单元生成所述比特流;以及
将所述比特流存储在非暂时性计算机可读记录介质中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2019127388 | 2019-12-23 | ||
CNPCT/CN2019/127388 | 2019-12-23 | ||
PCT/CN2020/138694 WO2021129682A1 (en) | 2019-12-23 | 2020-12-23 | Improvements on merge mode |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115104309A true CN115104309A (zh) | 2022-09-23 |
Family
ID=76575686
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080089538.8A Pending CN115136597A (zh) | 2019-12-23 | 2020-12-23 | 空域-时域运动矢量预测 |
CN202080089444.0A Pending CN115104309A (zh) | 2019-12-23 | 2020-12-23 | 对merge模式的改进 |
CN202080089537.3A Pending CN115868164A (zh) | 2019-12-23 | 2020-12-23 | 对具有运动矢量差的merge模式的改进 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080089538.8A Pending CN115136597A (zh) | 2019-12-23 | 2020-12-23 | 空域-时域运动矢量预测 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080089537.3A Pending CN115868164A (zh) | 2019-12-23 | 2020-12-23 | 对具有运动矢量差的merge模式的改进 |
Country Status (2)
Country | Link |
---|---|
CN (3) | CN115136597A (zh) |
WO (3) | WO2021129682A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023177695A1 (en) * | 2022-03-14 | 2023-09-21 | Beijing Dajia Internet Information Technology Co., Ltd. | Inter prediction in video coding |
WO2023197966A1 (en) * | 2022-04-12 | 2023-10-19 | Beijing Bytedance Network Technology Co., Ltd. | Method, apparatus, and medium for video processing |
WO2023246408A1 (en) * | 2022-06-23 | 2023-12-28 | Mediatek Inc. | Methods and apparatus for video coding using non-adjacent motion vector prediction |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9900625B2 (en) * | 2014-03-17 | 2018-02-20 | Mediatek Inc. | Method and apparatus for efficient information coding |
US10701391B2 (en) * | 2017-03-23 | 2020-06-30 | Qualcomm Incorporated | Motion vector difference (MVD) prediction |
WO2019089864A1 (en) * | 2017-11-01 | 2019-05-09 | Vid Scale, Inc. | Overlapped block motion compensation |
US11388398B2 (en) * | 2018-01-11 | 2022-07-12 | Qualcomm Incorporated | Video coding using local illumination compensation |
US10397603B1 (en) * | 2018-05-08 | 2019-08-27 | Tencent America LLC | Method and apparatus for video coding |
US10362330B1 (en) * | 2018-07-30 | 2019-07-23 | Tencent America LLC | Combining history-based motion vector prediction and non-adjacent merge prediction |
CN110572672B (zh) * | 2019-09-27 | 2024-03-15 | 腾讯科技(深圳)有限公司 | 视频编解码方法和装置、存储介质及电子装置 |
-
2020
- 2020-12-23 CN CN202080089538.8A patent/CN115136597A/zh active Pending
- 2020-12-23 WO PCT/CN2020/138694 patent/WO2021129682A1/en active Application Filing
- 2020-12-23 WO PCT/CN2020/138695 patent/WO2021129683A1/en active Application Filing
- 2020-12-23 WO PCT/CN2020/138701 patent/WO2021129685A1/en active Application Filing
- 2020-12-23 CN CN202080089444.0A patent/CN115104309A/zh active Pending
- 2020-12-23 CN CN202080089537.3A patent/CN115868164A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2021129682A1 (en) | 2021-07-01 |
WO2021129685A1 (en) | 2021-07-01 |
CN115868164A (zh) | 2023-03-28 |
WO2021129683A1 (en) | 2021-07-01 |
CN115136597A (zh) | 2022-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113424525B (zh) | 解码器侧细化工具的尺寸选择性应用 | |
CN113728642B (zh) | 编解码视频的量化残差差分脉冲编解码调制表示 | |
CN113261293B (zh) | 用于帧内块复制的基于历史的运动候选列表构建 | |
CN110839158A (zh) | 变换矩阵选择的系数相关的编码 | |
US11700378B2 (en) | High level syntax for inter prediction with geometric partitioning | |
US11936905B2 (en) | Overlapped block motion compensation with derived motion information from neighbors | |
CN115104309A (zh) | 对merge模式的改进 | |
JP7453374B2 (ja) | 幾何学的分割を用いた簡易インター予測 | |
WO2021204190A1 (en) | Motion vector difference for block with geometric partition | |
US20230097850A1 (en) | Intra block copy using non-adjacent neighboring blocks | |
US20220337867A1 (en) | Motion vector difference for block with geometric partition | |
CN116195253A (zh) | 帧内块复制编解码中的块矢量处理 | |
KR20230004797A (ko) | 파티션 신택스를 위한 엔트로피 코딩 | |
US20230262226A1 (en) | Sample string processing in intra coding | |
US20230276044A1 (en) | Constraints on intra block copy using non-adjacent neighboring blocks | |
WO2021185306A1 (en) | Intra block copy buffer and palette predictor update | |
CN114287129A (zh) | 初始化基于历史的运动矢量预测器表 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |