CN111586419B - 视频解码方法、视频编码方法及装置 - Google Patents
视频解码方法、视频编码方法及装置 Download PDFInfo
- Publication number
- CN111586419B CN111586419B CN202010403777.8A CN202010403777A CN111586419B CN 111586419 B CN111586419 B CN 111586419B CN 202010403777 A CN202010403777 A CN 202010403777A CN 111586419 B CN111586419 B CN 111586419B
- Authority
- CN
- China
- Prior art keywords
- mvd
- target
- decoding information
- smvd
- video frame
- 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.)
- Active
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
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开关于视频解码方法、视频编码方法及装置,属于视频编码和压缩处理技术领域,包括:接收待处理视频帧的目标切片中各CU与第一参考视频帧列表相关的MVD为零的指示信息,接收目标切片中各CU的第一目标解码信息,每个CU的第一目标解码信息为SMVD标识或与第二参考视频帧列表相关的MVD,若任一CU的第一目标解码信息符合确定第二目标解码信息的预设条件,则根据符合预设条件的CU的第二目标解码信息的推断规则确定该任一CU的第二目标解码信息,每个CU的第二目标解码信息为SMVD标识和与第二参考视频帧列表相关的MVD中除第一目标解码信息之外的解码信息,根据各CU与第一参考视频帧列表相关的MVD为零的信息、每个CU的第一目标解码信息和第二目标解码信息解码CU。
Description
本申请要求在2019年05月13日提交美国专利局、申请号为62/847,316、申请名称为“Methods and Apparatus on Signaling Symmetrical Motion Vector DifferenceMode”的美国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本公开涉及视频编码和压缩处理技术领域,尤其涉及视频解码方法、视频编码方法及装置。
背景技术
在视频编码和压缩技术领域中,可以使用多种视频编码技术来压缩视频数据,并且,可以根据一种或多种视频编码标准来执行视频编码,其中,视频编码标准包括多功能视频编解码(Versatile Video Coding,VVC)、联合探索测试模型(Joint ExplorationModel,JEM)、高效率视频编码(High-Efficiency Video Coding,HEVC)(H.265/HEVC)、高级视频编解码(Advanced Video Coding,AVC)(H.264/AVC)、运动图像专家组(MovingPicture Expert Group,MPEG)编码等。视频编码技术的一个重要目标是在尽可能降低视频压缩率的同时最小化对视频质量的损伤。
第一版HEVC标准已于2013年10月完成,该版HEVC标准与上一代视频编码标准H.264/MPEG AVC相比,在提供等效的感知质量(Perceptual Quality)的前提下约节省50%的比特率,但有证据表明,利用附加的编码工具可以实现更高的编码效率。为了视频编码的标准化,视频编码专家组(Video Coding Experts Group,VCEG)和MPEG均开始新编码技术的探索工作。ITU-T VECG和ISO/IEC MPEG于2015年10月成立了一个联合视频探索组(JointVideo Exploration Team,JVET),开始对可大幅提高编码效率的先进技术进行重大研究。JVET通过在HEVC测试模型(HM)之上集成多个附加编码工具,维护了一个叫做联合探索模型(Joint Exploration Model,JEM)的参考软件。
ITU-T和ISO/IEC于2017年10月发布了有关视频压缩效率超出HEVC的联合提案(Call For Proposal,CfP)。2018年4月,在第十届JVET会议上评估了23个CfP,结果表明压缩效率比HEVC高40%左右,基于此,JVET启动了对VVC新一代视频编码标准的新项目,并在同月建立了称为VVC测试模型(VTM)的一个参考软件代码库,用于演示VVC标准的参考实现方式。
VVC同HEVC一样建立在基于块的混合视频编码框架之上,图1给出了一种通用的视频编码器的框图,该视频编码器逐编码块(也叫编码单元(Coding Units,CU))处理输入的视频数据。在VTM-1.0中,一个CU可以多达128×128个像素,然而,与仅使用四叉树对块进行划分的HEVC不同,为了适应视频帧的局部特征,VVC使用四叉树/二叉树/三叉树来将编码树单元(Coding Tree Unit CTU)划分成CU。另外,VVC消除了HEVC中分区单元类型的概念,即,在VVC中不再存在CU、预测单元(Prediction Unit,PU)和变换单元(Transform Unit,TU)的分离,而是每个CU始终用作预测和变换的基本单位,无需再进一步划分。在多类型树结构中,先基于四叉树结构对CTU进行划分,然后,再基于二叉树结构和三叉树结构进一步划分每个四叉树叶子节点,如图2所示,存在五种分区类型:四元分区、水平二元分区、竖直二元分区、水平三元分区和竖直三元分区,其中,W表示CUT的宽,H表示CUT的高。在图1中,可以执行空域预测和/或时域预测,其中,空域预测(即帧内预测)是使用来自同一视频帧/切片中编码后的相邻块的采样(称为参考采样)的像素来预测当前视频块,以减少了视频帧中固有的空域冗余;时域预测(即帧间预测或运动补偿预测)是使用来自编码后的视频帧中的重构像素来预测当前视频块,以减少视频帧中固有的时域冗余。具体实施时,一个CU的时域预测信号通常需要发送一个或多个运动矢量(Motion Vector,MV)信号,其中,运动矢量用于指示当前CU与其时域参考块之间的运动增量和方向,并且,如果有多个参考视频帧,则额外发送一个参考视频帧的索引,该索引用于标识时域预测信号来自参考视频帧存储器中的哪个参考视频帧。在空域预测和/或时域预测之后,编码端中的模式判定模块可根据速率失真优化方法来选择最佳预测模式,然后,从当前CU中减去利用最佳预测模式得到的预测块,得到预测残差,再利用变换单元和量化单元去除预测残差之间的相关性,对量化的残差系数进行逆量化和逆变换以形成重构残差,然后,将重构残差添加回预测块从而形成当前CU的重构信号。在将重构后的CU放入参考视频帧存储器之前,还可以在重构后的CU上应用如去块滤波器、采样自适应偏移(Sample Adaptive Offset,SAO)滤波器和自适应环路滤波器(Adaptive In-Loop Filter,ALF)等环路滤波器。最后,将编码模式(帧间或帧内)、预测模式信息、运动信息和量化后的残差系数发送给熵编码单元做进一步压缩和打包,得到最终的视频比特流。
图3给出了一种通用的视频解码器的框图。该视频解码器在熵解码单元中对视频比特流进行熵解码,若编码模式是帧内编码,则预测信息被发送至空域预测单元以形成预测块,若编码模式是帧间编码,则预测信息被发送至时域预测单元以形成预测块,残余变换系数被发送至逆量化单元和逆变换单元以重构残余块,将预测块和残差块相加即可得到重构后的块。在将重构后的块存储在参考视频帧存储器中之前,还可以对其进行环路滤波。参考视频帧存储器中的重构视频即可用于驱动显示设备,也可用于预测视频块。
相关技术中,为了减少运动参数的信令开销,VVC标准中启用了两个用于指示解码端是否可以绕过与第一参考视频帧列表(简称列表L1)相关的MVD的语法元素的控制标志:mvd_l1_zero_flag和sym_mvd_flag,其中,mvd_l1_zero_flag用于指示待处理视频帧的切片中各CU与列表L1相关的运动矢量差MVD是否为零;sym_mvd_flag用于指示CU是否启用对称运动矢量差SMVD模式。
具体实施时,若当前切片的mvd_l1_zero_flag等于1,则将该切片中各CU与列表L1相关的MVD推断为零,而不需要再发信令通知各CU与列表L1相关的MVD。若切片级控制标志BiDirPredFlag=1,则对切片中的每个CU额外发送一个sym_mvd_flag,且对切片中的每个CU发送该CU与第二参考视频帧列表(列表L0)相关的MVD,这样,编码效率会比较低。
发明内容
本公开提供视频解码方法、视频编码方法及装置,以至少解决相关技术中编码效率比较低的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种视频解码方法,包括:
接收用于指示待处理视频帧的目标切片中各编码单元CU与第一参考视频帧列表相关的运动矢量差MVD为零的指示信息;
接收所述目标切片中各CU的第一目标解码信息,每个CU的第一目标解码信息为所述CU的SMVD标识或所述CU与第二参考视频帧列表相关的MVD,所述SMVD标识用于指示所述CU是否启用对称运动矢量差SMVD模式;
若确定任一CU的第一目标解码信息符合用于确定第二目标解码信息的预设条件,则根据用于推断符合所述预设条件的CU的第二目标解码信息的推断规则确定所述任一CU的第二目标解码信息,每个CU的第二目标解码信息为所述CU的SMVD标识和所述CU与第二参考视频帧列表相关的MVD中除第一目标解码信息之外的解码信息;
根据所述目标切片中各CU与第一参考视频帧列表相关的MVD为零的信息、每个CU的第一目标解码信息和第二目标解码信息,解码所述CU。
在一种可能的实施方式中,若每个CU的第一目标解码信息为所述CU的SMVD标识,则所述预设条件为SMVD标识表示启用SMVD模式;以及
根据用于推断符合所述预设条件的CU的第二目标解码信息的推断规则确定所述任一CU的第二目标解码信息,包括:
根据符合所述预设条件的CU与第二参考视频帧列表相关的MVD为零的推断规则,确定所述任一CU与第二参考视频帧列表相关的MVD为零,并确定不接收所述任一CU与第二参考视频帧列表相关的MVD。
在一种可能的实施方式中,若每个CU的第一目标解码信息为所述CU与第二参考视频帧列表相关的MVD,则所述预设条件为与第二参考视频帧列表相关的MVD不为零;以及
根据用于推断符合所述预设条件的CU的第二目标解码信息的推断规则确定所述任一CU的第二目标解码信息,包括:
根据符合所述预设条件的CU的SMVD标识表示不启用SMVD模式的推断规则,确定所述任一CU的SMVD标识表示所述任一CU不启用SMVD模式,并确定不接收所述任一CU的SMVD标识。
在一种可能的实施方式中,若所述目标切片中存在第一目标解码信息不符合所述预设条件的CU,则还包括:
在接收所述目标切片中各CU的第一目标解码信息之后,接收所述目标切片中第一目标解码信息不符合所述预设条件的每个CU的第二目标解码信息。
根据本公开实施例的第二方面,提供一种视频编码方法,包括:
获取待处理视频帧;
若确定所述待处理视频帧的目标切片中各编码单元CU与第一参考视频帧列表相关的运动矢量差MVD为零,则发送用于指示所述目标切片中各CU与第一参考视频帧列表相关的MVD为零的指示信息;
若确定所述目标切片中各CU满足启用对称运动矢量差SMVD模式的条件,则发送所述目标切片中各CU的第一目标解码信息,每个CU的第一目标解码信息为所述CU的SMVD标识或所述CU与第二参考视频帧列表相关的MVD,所述SMVD标识用于指示所述CU是否启用对称运动矢量差SMVD模式;
若确定任一CU的第一目标解码信息符合用于确定第二目标解码信息的预设条件,则根据用于推断符合所述预设条件的CU的第二目标解码信息的推断规则确定所述任一CU的第二目标解码信息,每个CU的第二目标解码信息为所述CU的SMVD标识和所述CU与第二参考视频帧列表相关的MVD中除第一目标解码信息之外的解码信息;
根据所述目标切片中是否存在第一目标解码信息不符合所述预设条件的CU的信息,确定是否发送所述目标切片中不符合所述预设条件的每个CU的第二目标解码信。
在一种可能的实施方式中,若每个CU的第一目标解码信息为所述CU的SMVD标识,则所述预设条件为SMVD标识表示启用SMVD模式;以及
根据用于推断符合所述预设条件的CU的第二目标解码信息的推断规则确定所述任一CU的第二目标解码信息,包括:
根据符合所述预设条件的CU与第二参考视频帧列表相关的MVD为零的推断规则,确定所述任一CU与第二参考视频帧列表相关的MVD为零,并确定不发送所述任一CU与第二参考视频帧列表相关的MVD。
在一种可能的实施方式中,若每个CU的第一目标解码信息为所述CU与第二参考视频帧列表相关的MVD,则所述预设条件为与第二参考视频帧列表相关的MVD不为零,以及
根据用于推断符合所述预设条件的CU的第二目标解码信息的推断规则确定所述任一CU的第二目标解码信息,包括:
根据符合所述预设条件的CU的SMVD标识表示不启用SMVD模式的推断规则,确定所述任一CU的SMVD标识表示所述任一CU不启用SMVD模式,并确定不发送所述任一CU的SMVD标识。
在一种可能的实施方式中,若确定所述目标切片中存在第一目标解码信息不符合所述预设条件的CU,则还包括:
在发送所述目标切片中各CU的第一目标解码信息之后,发送所述目标切片中第一目标解码信息不符合所述预设条件的每个CU的第二目标解码信息。
根据本公开实施例的第三方面,提供一种视频解码方法,包括:
若确定待处理视频帧的目标切片中各编码单元CU满足第一条件和第二条件中优先级高的条件,则确定所述目标切片中的各CU不满足所述第一条件和所述第二条件中优先级低的条件,所述第一条件是指所述目标切片中各CU满足启用对称运动矢量差SMVD模式的条件,所述第二条件是指所述目标切片中各CU满足与第一参考视频帧列表相关的运动矢量差MVD为零的条件;
接收所述目标切片中各CU的解码信息,每个CU的解码信息至少包括所述CU与第二参考视频帧列表相关的MVD;
根据所述目标切片中各CU满足所述第一条件和所述第二条件中优先级高的条件、不满足所述第一条件和所述第二条件中优先级低的条件的信息、以及每个CU的解码信息,解码所述CU。
根据本公开实施例的第四方面,提供一种视频编码方法,包括:
获取待处理视频帧;
若确定所述待处理视频帧的目标切片中各编码单元CU满足第一条件和第二条件中优先级高的条件,则确定所述目标切片中的各CU不满足所述第一条件和所述第二条件中优先级低的条件,所述第一条件是指所述目标切片中的各CU满足启用对称运动矢量差SMVD模式的条件,所述第二条件是指所述目标切片中各CU满足与第一参考视频帧列表相关的MVD为零的条件;
根据所述目标切片中各CU满足所述第一条件和所述第二条件中优先级高的条件、不满足所述第一条件和所述第二条件中优先级低的条件的信息,对所述目标切片中的每个CU进行编码;
发送所述目标切片中各CU的解码信息,每个CU的解码信息至少包括所述CU与第二参考视频帧列表相关的MVD。
根据本公开实施例的第五方面,提供一种视频解码装置,包括:
第一接收模块,被配置为执行接收用于指示待处理视频帧的目标切片中各编码单元CU与第一参考视频帧列表相关的运动矢量差MVD为零的指示信息;
第二接收模块,被配置为执行接收所述目标切片中各CU的第一目标解码信息,每个CU的第一目标解码信息为所述CU的SMVD标识或所述CU与第二参考视频帧列表相关的MVD,所述SMVD标识用于指示所述CU是否启用对称运动矢量差SMVD模式;
确定模块,被配置为执行若确定任一CU的第一目标解码信息符合用于确定第二目标解码信息的预设条件,则根据用于推断符合所述预设条件的CU的第二目标解码信息的推断规则确定所述任一CU的第二目标解码信息,每个CU的第二目标解码信息为所述CU的SMVD标识和所述CU与第二参考视频帧列表相关的MVD中除第一目标解码信息之外的解码信息;
解码模块,被配置为执行根据所述目标切片中各CU与第一参考视频帧列表相关的MVD为零的信息、每个CU的第一目标解码信息和第二目标解码信息,解码所述CU。
在一种可能的实施方式中,若每个CU的第一目标解码信息为所述CU的SMVD标识,则所述预设条件为SMVD标识表示启用SMVD模式;以及
所述确定模块,被具体配置为执行所述确定模块,被具体配置为执行根据符合所述预设条件的CU与第二参考视频帧列表相关的MVD为零的推断规则,确定所述任一CU与第二参考视频帧列表相关的MVD为零,并确定不接收所述任一CU与第二参考视频帧列表相关的MVD。
在一种可能的实施方式中,若每个CU的第一目标解码信息为所述CU与第二参考视频帧列表相关的MVD,则所述预设条件为与第二参考视频帧列表相关的MVD不为零,以及
所述确定模块,被具体配置为执行根据符合所述预设条件的CU的SMVD标识表示不启用SMVD模式的推断规则,确定所述任一CU的SMVD标识表示所述任一CU不启用SMVD模式,并确定不接收所述任一CU的SMVD标识。
在一种可能的实施方式中,若所述目标切片中存在第一目标解码信息不符合所述预设条件的CU,则还包括:
第三接收模块,被配置为执行在接收所述目标切片中各CU的第一目标解码信息之后,接收所述目标切片中第一目标解码信息不符合所述预设条件的每个CU的第二目标解码信息。
根据本公开实施例的第六方面,提供一种视频编码装置,包括:
获取模块,被配置为执行获取待处理视频帧;
第一发送模块,被配置为执行若确定所述待处理视频帧的目标切片中各编码单元CU与第一参考视频帧列表相关的运动矢量差MVD为零,则发送用于指示所述目标切片中各CU与第一参考视频帧列表相关的MVD为零的指示信息;
第二发送模块,被配置为执行若确定所述目标切片中各CU满足启用对称运动矢量差SMVD模式的条件,则发送所述目标切片中各CU的第一目标解码信息,每个CU的第一目标解码信息为所述CU的SMVD标识或所述CU与第二参考视频帧列表相关的MVD,所述SMVD标识用于指示所述CU是否启用对称运动矢量差SMVD模式;
确定模块,被配置为执行若确定任一CU的第一目标解码信息符合用于确定第二目标解码信息的预设条件,则根据用于推断符合所述预设条件的CU的第二目标解码信息的推断规则确定所述任一CU的第二目标解码信息,每个CU的第二目标解码信息为所述CU的SMVD标识和所述CU与第二参考视频帧列表相关的MVD中除第一目标解码信息之外的解码信息;
处理模块,被配置为执行根据所述目标切片中是否存在第一目标解码信息不符合所述预设条件的CU的信息,确定是否发送所述目标切片中不符合所述预设条件的每个CU的第二目标解码信息。
在一种可能的实施方式中,若每个CU的第一目标解码信息为所述CU的SMVD标识,则所述预设条件为SMVD标识表示启用SMVD模式,以及
所述确定模块,被具体配置为执行根据符合所述预设条件的CU与第二参考视频帧列表相关的MVD为零的推断规则,确定所述任一CU与第二参考视频帧列表相关的MVD为零,并确定不发送所述任一CU与第二参考视频帧列表相关的MVD。
在一种可能的实施方式中,若每个CU的第一目标解码信息为所述CU与第二参考视频帧列表相关的MVD,则所述预设条件为与第二参考视频帧列表相关的MVD不为零,以及
所述确定模块,被具体配置为执行根据符合所述预设条件的CU的SMVD标识表示不启用SMVD模式的推断规则,确定所述任一CU的SMVD标识表示所述任一CU不启用SMVD模式,并确定不发送所述任一CU的SMVD标识。
在一种可能的实施方式中,还包括:
第三发送模块,被配置为执行若确定所述目标切片中存在第一目标解码信息不符合所述预设条件的CU,则在发送所述目标切片中各CU的第一目标解码信息之后,发送所述目标切片中第一目标解码信息不符合所述预设条件的每个CU的第二目标解码信息。
根据本公开实施例的第七方面,提供一种视频解码装置,包括:
确定模块,被配置为执行若确定待处理视频帧的目标切片中各编码单元CU满足第一条件和第二条件中优先级高的条件,则确定所述目标切片中的各CU不满足所述第一条件和所述第二条件中优先级低的条件,所述第一条件是指所述目标切片中各CU满足启用对称运动矢量差SMVD模式的条件,所述第二条件是指所述目标切片中各CU满足与第一参考视频帧列表相关的运动矢量差MVD为零的条件;
接收模块,被配置为执行接收所述目标切片中各CU的解码信息,每个CU的解码信息至少包括所述CU与第二参考视频帧列表相关的MVD;
解码模块,被配置为执行根据所述目标切片中各CU满足所述第一条件和所述第二条件中优先级高的条件、不满足所述第一条件和所述第二条件中优先级低的条件的信息、以及每个CU的解码信息,解码所述CU。
根据本公开实施例的第八方面,提供一种视频编码装置,包括:
获取模块,被配置为执行获取待处理视频帧;
确定模块,被配置为执行若确定所述待处理视频帧的目标切片中各编码单元CU满足第一条件和第二条件中优先级高的条件,则确定所述目标切片中的各CU不满足所述第一条件和所述第二条件中优先级低的条件,所述第一条件是指所述目标切片中的各CU满足启用对称运动矢量差SMVD模式的条件,所述第二条件是指所述目标切片中各CU满足与第一参考视频帧列表相关的运动矢量差MVD为零的条件;
编码模块,被配置为执行根据所述目标切片中各CU满足所述第一条件和所述第二条件中优先级高的条件、不满足所述第一条件和所述第二条件中优先级低的条件的信息,对所述目标切片中的每个CU进行编码;
发送模块,被配置为执行发送所述目标切片中各CU的解码信息,每个CU的解码信息至少包括所述CU与第二参考视频帧列表相关的MVD。
根据本公开实施例的第九方面,提供一种电子设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中:
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任一视频解码或编码方法。
根据本公开实施例的第十方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,所述电子设备能够执行上述任一视频解码或编码方法。
根据本公开实施例的第十一方面,提供一种计算机程序产品,该程序产品在被计算机调用执行时,可以使得计算机执行上述任一视频解码或视频编码方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
接收用于指示待处理视频帧的目标切片中各CU与第一参考视频帧列表相关的MVD为零的指示信息,接收目标切片中各CU的第一目标解码信息,每个CU的第一目标解码信息为该CU的SMVD标识或该CU与第二参考视频帧列表相关的MVD,若确定任一CU的第一目标解码信息符合用于确定第二目标解码信息的预设条件,则根据用于推断符合预设条件的CU的第二目标解码信息的推断规则确定该任一CU的第二目标解码信息,每个CU的第二目标解码信息为SMVD标识和与第二参考视频帧列表相关的MVD中除第一目标解码信息之外的解码信息,进而根据目标切片中各CU与第一参考视频帧列表相关的MVD为零的信息、每个CU的第一目标解码信息和第二目标解码信息,解码该CU。本公开实施例中,解码端接收到用于指示待处理视频帧的目标切片中各CU与第一参考视频帧列表相关的MVD为零的指示信之后,先接收目标切片中各CU的第一目标解码信息,若确定任一CU的第一目标解码信息符合用于确定第二目标解码信息的预设条件,则根据用于推断符合预设条件的CU的第二目标解码信息的推断规则确定该任一CU的第二目标解码信息,这样,后续不必再传送该任一CU的第二目标解码信息也可正确解码该任一CU,不必传送该任一CU的第二目标解码信息也就不必对该任一CU的第二目标解码信息进行编码和解码,因此,可提高编码效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种视频编码器的框图。
图2是根据一示例性实施例示出的五种分割类型的示意图。
图3是根据一示例性实施例示出的一种视频解码器的框图。
图4是根据一示例性实施例示出的一种SMVD模式的示意图。
图5是根据一示例性实施例示出的一种视频解码方法的流程图。
图6是根据一示例性实施例示出的又一种视频解码方法的流程图。
图7是根据一示例性实施例示出的一种视频编码方法的流程图。
图8是根据一示例性实施例示出的又一种视频编码方法的流程图。
图9是根据一示例性实施例示出的再一种视频解码方法的流程图。
图10是根据一示例性实施例示出的再一种视频编码方法的流程图。
图11是根据一示例性实施例示出的一种视频解码装置的框图。
图12是根据一示例性实施例示出的一种视频编码装置的框图。
图13是根据一示例性实施例示出的又一种视频解码装置的框图。
图14是根据一示例性实施例示出的又一种视频编码装置的框图。
图15是根据一示例性实施例示出的一种用于实现视频解码或视频编码方法的电子设备的结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开实施例中,第一参考视频帧列表简称为列表L1,第二参考视频帧列表简称为列表L0;CU与第一参考视频帧列表相关的MVD是指根据第一参考视频帧列表中的第一参考视频帧确定的CU的MVD,CU与第二参考视频帧列表相关的MVD是指根据第二参考视频帧列表中的第二参考视频帧确定的CU的MVD。
本公开实施例的重点在于改进VVC中SMVD工具的信令传递方式。下面先简要回顾与本公开中实施例所提出的方法紧密相关的帧间编码技术。
高级运动矢量预测(Advanced Motion Vector Predictor,AMVP)模式的运动信令。
通常,VVC中的运动信息信令与HEVC中的运动信息信令保持一致。具体地,先发送用于指示预测信号是来自列表L0、列表L1,还是来自列表L0和列表L1的帧间预测语法(即inter_pred_idc),然后,发送使用的每个列表中参考视频帧的索引ref_idx_lx(x=0,1)和运动矢量预测(Motion Vector Predictor,MVP)索引mvp_lx_flag(x=0,1),最后,发送MV与所选MVP之间的运动矢量差(Motion Vector Difference,MVD)。
此外,可在切片级发送控制标志mvd_l1_zero_flag。当mvd_l1_zero_flag=0时,在比特流中发送列表L1相关的MVD;当mvd_l1_zero_flag=1时,不在比特流中发送列表L1相关的MVD,编码端和解码端均终将列表L1相关的MVD推断为零。
对称运动矢量差(Symmetrical Motion Vector Difference,SMVD)模式。
对于HEVC中的常规帧间预测模式,当对一个编码块进行双向帧间预测时,编码块的预测信号为两个预测块的平均,这两个预测块是根据与列表L0和列表L1相关联的一对运动参数(包括MV和参考索引)生成的,这些运动参数以比特流的形式从编码端发送到解码端。然而,取决于帧间预测的特定预测结构(如用于随机接入配置的分层B结构),一个采用双向帧间预测的编码块,其列表L0和列表L1的相关运动参数可能高度相关。此时,就编码效率而言,分别发送两组不同的运动参数(每个预测方向一组运动参数)可能并不是最佳的。
为了进一步提高编码效率,在VVC标准中引入了SMVD模式,以减少双向预测的信令开销。
具体实施时,若要启用SMVD模式,需要执行以下操作:
1)首先,在切片级别,使用以下方式推导变量BiDirPredFlag、RefIdxSymL0和RefIdxSymL1:
按照显示顺序搜索列表L0中距离当前视频帧最近的前向参考视频帧,若搜索到,则将RefIdxSymL0设置为搜索到的前向参考视频帧的参考索引。
按照显示顺序搜索列表L1中距离当前视频帧最近的后向参考视频帧,若搜索到,则将RefIdxSymL1设置为搜索到的后向参考视频帧的参考索引。
若既搜索到前向参考视频帧又搜索到后向参考视频帧,则将BiDirPredFlag设置为1;否则(既没有在列表L0中搜索到最接近当前视频帧的前向参考视频帧,也没有在列表L1中搜索到最接近当前视频帧的后向参考视频帧),按照以下方式推导BiDirPredFlag、RefIdxSymL0和RefIdxSymL1:
按照显示顺序搜索列表L0中距离当前视频帧最近的后向参考视频帧,若搜索到,则将RefIdxSymL0设置为搜索到的后向参考视频帧的参考索引。
按照显示顺序搜索列表L1中距离当前视频帧最近的前向参考视频帧,若搜索到,则将RefIdxSymL1设置为搜索到的向参考视频帧的参考索引。
若既搜索到后向参考视频帧又搜索到前向参考视频帧,则将BiDirPredFlag设置为1;否则,将BiDirPredFlag设置为0。
2)其次,在CU级别,用SMVD控制标志(即sym_mvd_flag)指示当前CU是否启用SMVD模式。
具体实施时,当CU采用双向预测模式且BiDirPredFlag=1时,编码端才发送sym_mvd_flag,并且,当sym_mvd_flag为真时,仅列表L0相关的MVP索引(mvp_l0_flag)、列表L1相关的MVP索引(mvp_l1_flag)和列表L0相关的MVD从编码端发送到解码端。而列表L0中参考视频帧的索引和列表L1中参考视频帧的索引分别设置为RefIdxSymL0和RefIdxSymL1。
此外,当列表L1相关的MVD(MVD1)与列表L0相关的MVD(MVD0)对称即MVD1的值等于-MVD0时,采用双向帧间预测的编码块的MV可以表示为:
其中,(mvpx0,mvpy0)为列表L0相关的MVP;(mvpx1,mvpy1)为列表L1相关的MVP;(mvdx0,mvdy0)为列表L0相关的MVD。图4示出了SMVD模式的示意图。
为了减少运动参数的信令开销,VVC标准中启用了两个用于指示解码端是否可以绕过列表L1相关的MVD的语法元素的控制标志:mvd_l1_zero_flag和sym_mvd_flag。具体实施时,若当前切片中的mvd_l1_zero_flag等于1,则将该切片中所有采用双向帧间预测的编码块与列表L1相关的MVD始终推断为零,而不需要再发信令通知编码块与列表L1相关的MVD。若切片级控制标志BiDirPredFlag=1,则对切片中每个采用双向帧间预测的编码块额外发送一个sym_mvd_flag,并且,对切片中每个采用双向帧间预测的编码块发送编码块与列表L0相关的MVD,这样,编码效率比较低。
另外,上述过程中,当sym_mvd_flag为真时,仅在比特流中发送列表L0相关的MVD,而将列表L1相关的MVD推断为与列表L0相关的MVD相反的值。
在上述两种方案中列表L1相关的MVD的推理规则不同,因此mvd_l1_zero_flag和sym_mvd_flag不能同时启用。为了解决这种冲突,相关技术中提出了如下的SMVD信令设计。表1示出了相关技术中的编码单元语法,其中,与SMVD相关的语法元素以灰色突出显示。
表1相关技术中的编码单元语法
相关技术中,当BiDirPredFlag为真(通过将RefIdxSymL0和RefIdxSymL1的值设置为大于-1来控制)时,对当前切片中的每个采用双向帧间预测的编码块发送sym_mvd_flag,以指示该编码块是否启用SMVD模式。也就是说,mvd_l1_zero_flag用于控制sym_mvd_flag在与列表L1相关的MVD的推导上的应用。具体地,仅当mvd_l1_zero_flag=0时,sym_mvd_flag才被用来确定列表L1相关的MVD。在这种情况下,若sym_mvd_flag的值为1,则推断列表L1相关的MVD与列表L0相关的MVD相反;若sym_mvd_flag的值为0,则在比特流中明确发送列表L1相关的MVD。而当mvd_l1_zero_flag=1时,始终将列表L1相关的MVD推断为零,而无需考虑sym_mvd_flag的取值。
这样,若一个采用双向帧间预测的编码块的sym_mvd_flag和mvd_l1_zero_flag都为真,则可能会导致非零L0 MVD(如在比特流中用信号通知的)和零L1 MVD(如由mvd_l1_zero_flag所指示的),这种情况与SMVD模式的物理含义不符,即列表L0相关的MVD和列表L1相关的MVD是对称的。
本公开实施例提供了可以更好地处理SMVD模式和mvd_l1_zero_flag之间交互的方案。在第一类解决方案中,允许sym_mvd_flag和mvd_l1_zero_flag共存,同时,进行一些修改以节省编码效率,并确保sym_mvd_flag和mvd_l1_zero_flag的物理含义都可以得到满足。在第二类解决方案中,排他地启用SMVD模式和mvd_l1_zero_flag,以节省编码效率,并避免出现当启用SMVD模式时列表L0相关的MVD和列表L1相关的MVD不对称的情况。
下面分别对这两类解决方案进行介绍。
第一类解决方案:同时启用sym_mvd_flag和mvd_l1_zero_flag。
方案一。
当mvd_l1_zero_flag为真时,根据sym_mvd_flag的值确定列表L0相关的MVD的存在条件。具体地,当sym_mvd_flag处于开启状态(即sym_mvd_flag为真)时,不在比特流中发送列表L0相关的MVD,而是始终将列表L0相关的MVD推断为零;当sym_mvd_flag处于关闭状态(即sym_mvd_flag为假)时,在比特流中明确发送列表L0相关的MVD。表2示出了基于方案一所修改的编码单元语法,其中,新修改的语法元素以灰色突出显示。
表2应用方案一之后的编码单元语法
上述方案一中,当同时启用sym_mvd_flag和mvd_l1_zero_flag时,包括如下编码场景:
当mvd_l1_zero_flag处于关闭状态且sym_mvd_flag处于开启状态时,sym_mvd_flag用于绕过对L0参考索引(ref_l0_idx)、L1参考索引(ref_l1_idx)、和列表L1相关的MVD的语法元素的解析,同时,列表L1相关的MVD始终被推断为列表L0相关的MVD的相反值,其中,列表L0相关的MVD在比特流中明确发送。
当mvd_l1_zero_flag处于开启状态且sym_mvd_flag处于关闭状态时,在比特流中只不发送列表L1相关的MVD,而是始终将列表L1相关的MVD推断为零。
当mvd_l1_zero_flag和sym_mvd_flag都处于开启状态时,sym_mvd_flag用于绕过对L0参考索引(ref_l0_idx)和L1参考索引(ref_l1_idx)的语法元素的解析,即这些参考索引均被推导出,此时,在比特流中不发送列表L0相关的MVD和列表L1相关的MVD,而是将列表L0相关的MVD和列表L1相关的MVD均推断为零。
当mvd_l1_zero_flag和sym_mvd_flag都处于关闭状态时,需将L0参考索引(ref_l0_idx)、L1参考索引(ref_l1_idx)、列表L0相关的MVP索引(mvp_l0_idx)、列表L1相关的MVP索引(mvp_l1_idx)、列表L0相关的MVD和列表L1相关的MVD都从编码端发送到解码端。
方案二。
该方案中,将列表L0中MVD语法的信令放置在sym_mvd_flag的前面,使得当mvd_l1_zero_flag为真时,仅当相应CU与列表L0相关的MVD等于0时,才用信号通知sym_mvd_flag。表3示出了基于方案二修改的编码单元语法,其中,新修改的语法元素以灰色突出显示,而删除的语法元素以删除线突出显示。
表3应用方案二之后的编码单元语法
上述方案一和方案二中,当同时启用sym_mvd_flag和mvd_l1_zero_flag时,列表L0相关的MVD被强制为零、且列表L1相关的MVD也为零,因此,这两种解决方案都可以解决相关技术中当视频帧的切片中各CU与列表L1相关的MVD为零时对切片中的CU启用SMVD模式时可能出现的SMVD模式的定义冲突的问题。
方案三。
该方案中,当确定列表L1相关的MVD时,提出在检查mvd_l1_zero_flag之前检查sym_mvd_flag。表4示出了基于方案三修改的编码单元语法,其中,新修改的语法元素以灰色突出显示,而删除的语法元素以删除线标记。
表4应用方案三之后的编码单元语法
与相关技术中在sym_mvd_flag之前检查mvd_l1_zero_flag的方法不同,方案三在确定列表L1相关的MVD时,sym_mvd_flag具有比mvd_l1_zero_flag更高的优先级。
具体地,当编码块的sym_mvd_flag处于关闭状态时,mvd_l1_zero_flag仅用于确定列表L1相关的MVD,即将列表L1相关的MVD推断为零。而当编码块的sym_mvd_flag处于开启状态时,无论mvd_l1_zero_flag是处于开启状态还是处于关闭状态,列表L1相关的MVD都将被推断为列表L0相关的MVD的相反值。
第二类解决方案:排他地启用SMVD模式和mvd_l1_zero_flag。
方案一。
该方案中,在确定是否在切片级启用/禁用SMVD模式时,若mvd_l1_zero_flag为真,则将BiDirPredFlag设置为零即跳过sym_mvd_flag的信令,并将sym_mvd_flag推断为零,此时,对当前切片内的所有编码块禁用SMVD模式。
方案二。
该方案中,保持变量BiDirPredFlag的推导不变,然而,BiDirPredFlag的值用于判断切片头中mvd_l1_zero_flag的存在条件。具体地,当BiDirPredFlag=0时,发送mvd_l1_zero_flag;当BiDirPredFlag=1时,不发送mvd_l1_zero_flag,而将mvd_l1_zero_flag推断为零,即,当BiDirPredFlag=1时,对列表L1相关的MVD始终禁用零MVD推断规则。表5示出了基于方案二修改后的切片头语法,其中,新修改的语法元素以灰色突出显示。
表5基于方案二修改后的切片头语法
SMVD模式中的MVD缩放。
当前的SMVD方案中,列表L1相关的MVD与列表L0相关的MVD对称是在POC1等于POC2的前提下才成立的,其中,POC1表示当前视频帧和L0中参考视频帧之间的POC图像顺序计数(Picture Order Count,POC)距离;POC2表示L1中参考视频帧和当前视频帧之间的POC距离。本公开实施例中,当POC1不等于POC2时,对SMVD模式启用MVD缩放以为SMVD模式提供更精确的MVD推导。
在一种可能的实施方式中,当编码块启用SMVD模式时,仅在比特流中发送列表L0相关的MVD,而按照HEVC中的MVP缩放方式,根据POC1和POC2缩放列表L1相关的MVD。
在另一种可能的实施方式中,将任一列表中的MVD发送到指定列表(如列表L0或列表L1)中,而按照HEVC中的MVP缩放方式,根据POC1和POC2缩放其它列表相关的MVD。
具体实施时,可以在切片级、切块级、切块组级、视频帧级(例如视频帧参数集)或序列级(如序列参数集)将列表相关的MVD发送到指定列表,也可以基于切片级、切块级、切块组级、视频帧级或序列级的一些设定规则来确定指定列表。比如,若POC1的绝对值大于POC2的绝对值,则将列表L1确定为指定列表;否则,将列表L0确定为指定列表。
图5是根据一示例性实施例示出的一种视频解码方法的流程图,该方法的流程图包括以下步骤。
S501:接收用于指示待处理视频帧的目标切片中各CU与列表L1相关的MVD为零的指示信息。
具体实施时,接收用于指示待处理视频帧的目标切片中各CU与列表L1相关的MVD为零的指示信息,即接收mvd_l1_zero_flag=1的信息。
S502:接收目标切片中各CU的第一目标解码信息,其中,每个CU的第一目标解码信息为该CU的SMVD标识或该CU与列表L0相关的MVD。
其中,该CU的SMVD标识用于指示该CU是否启用SMVD模式。
S503:若确定任一CU的第一目标解码信息符合用于确定第二目标解码信息的预设条件,则根据用于推断符合预设条件的CU的第二目标解码信息的推断规则确定该任一CU的第二目标解码信息,每个CU的第二目标解码信息为该CU的SMVD标识和该CU与第二参考视频帧列表相关的MVD中除第一目标解码信息之外的解码信息。
当每个CU的第一目标解码信息为该CU的SMVD标识时,预设条件为SMVD标识表示启用SMVD模式,此时,若确定任一CU的第一目标解码信息符合该预设条件,则可根据符合该预设条件的CU与第二参考视频帧列表相关的MVD为零的推断规则,确定该任一CU与列表L0相关的MVD为零,并确定不接收该任一CU与列表L0相关的MVD。
当每个CU的第一目标解码信息为该CU与列表L0相关的MVD时,预设条件为与列表L0相关的MVD不为零,此时,若确定任一CU的第一目标解码信息符合该预设条件,则可根据符合该预设条件的CU的SMVD标识表示不启用SMVD模式的推断规则,确定该任一CU的SMVD标识表示该任一CU不启用SMVD模式,并确定不接收该任一CU的SMVD标识。
S504:根据目标切片中各CU与列表L1相关的MVD为零的信息、每个CU的第一目标解码信息和第二目标解码信息,解码该CU。
即,根据与列表L1相关的MVD为零的信息、每个CU的SMVD标识和该CU与列表L0相关的MVD,解码该CU。
下面结合具体实施例对上述解码过程进行介绍。
第一种情况:每个CU的第一目标解码信息为该CU的SMVD标识。
具体实施时,对采用双向帧间预测模式进行预测的待处理视频帧,编码从编码端接收到用于指示待处理视频帧的目标切片中各CU与列表L1相关的MVD是否为零的指示信息即mvd_l1_zero_flag。并且,解码端可以推断用于控制目标切片中各CU是否启用SMVD模式的控制标识即BiDirPredFlag,若BiDirPredFlag表示目标切片中各CU不可启用SMVD模式如BiDirPredFlag=0,则说明解码端后续不会从编码端接收到目标切片中任一CU的SMVD标识;若BiDirPredFlag表示目标切片中各CU可启用SMVD模式如BiDirPredFlag=1,则说明解码端后续会从编码端接收到目标切片中每个CU的SMVD标识。
当BiDirPredFlag=1时,解码端会从编码端接收到目标切片中每个CU的SMVD标识如sym_mvd_flag。假设sym_mvd_flag=1表示CU启用SMVD模式,sym_mvd_flag=0表示CU不启用SMVD模式。
此时,在列表L0方向上:
1)解码端根据每个CU的sym_mvd_flag确定是否会从编码端接收到该CU在列表L0中的参考视频帧的索引信息即ref_idx_l0。
具体地,若该CU的sym_mvd_flag=0,则解码端确定会从编码端接收到该CU的ref_idx_l0;若该CU的sym_mvd_flag=1,则解码端确定不会从编码端接收到该CU的ref_idx_l0,直接确定该CU的ref_idx_l0=RefIdxSymL0。
2)解码端从编码端接收每个CU与列表L0相关的MVP的索引信息即mvp_idx_l0。
3)解码端根据mvd_l1_zero_flag和每个CU的sym_mvd_flag确定是否会从编码端接收到该CU的mvd_l0。
当mvd_l1_zero_flag=0时,解码端确定会从编码端接收该CU的mvd_l0;
当mvd_l1_zero_flag=1时,若sym_mvd_flag=0,则解码端确定会从编码端接收该CU的mvd_l0;若sym_mvd_flag=1,则解码端确定不会从编码端接收该CU的mvd_l0,直接确定该CU的mvd_l0=0。
在列表L1方向上:
1)解码端根据每个CU的sym_mvd_flag确定是否会从编码端接收到该CU在列表L1中的参考视频帧的索引信息即ref_idx_l1。
具体地,若该CU的sym_mvd_flag=0,则解码端确定会从编码端接收到该CU的ref_idx_l1;若该CU的sym_mvd_flag=1,则解码端确定不会从编码端接收到该CU的ref_idx_l1,直接确定该CU的ref_idx_l1=RefIdxSymL1。
2)解码端从编码端接收每个CU与列表L1相关的MVP的索引信息即mvp_idx_l1。
3)解码端根据mvd_l1_zero_flag和每个CU的sym_mvd_flag确定是否会从编码端接收到该CU的mvd_l1。
当sym_mvd_flag=0且mvd_l1_zero_flag=0时,解码端确定会从编码端接收该CU的mvd_l1;
当mvd_l1_zero_flag=1,sym_mvd_flag=0时,解码端确定不会从编码端接收该CU的mvd_l1,直接确定该CU的mvd_l1=0;
当mvd_l1_zero_flag=0,sym_mvd_flag=1时,解码端确定不会从编码端接收该CU的mvd_l1,直接确定该CU的mvd_l1=–mvd_l0;
当mvd_l1_zero_flag=1,sym_mvd_flag=1时,解码端确定不会从编码端接收该CU的mvd_l1,直接确定该CU的mvd_l1=0。
第二种情况:每个CU的第一目标解码信息为该CU与列表L0相关的MVD。
具体实施时,对采用双向帧间预测模式进行预测的待处理视频帧,解码端会从编码端接收到用于指示待处理视频帧的目标切片中各CU与列表L1相关的MVD是否为零的指示信息即mvd_l1_zero_flag。并且,解码端可以推断用于控制目标切片中各CU是否启用SMVD模式的控制标识即BiDirPredFlag,若BiDirPredFlag表示目标切片中各CU不可启用SMVD模式如BiDirPredFlag=0,则说明解码端后续不会从编码端接收到目标切片中任一CU的SMVD标识;若BiDirPredFlag表示目标切片中各CU可启用SMVD模式如BiDirPredFlag=1,则说明解码端后续会从编码端接收到目标切片中每个CU的SMVD标识。
当BiDirPredFlag=1时,解码端会从编码端接收到目标切片中每个CU的SMVD标识如sym_mvd_flag。假设sym_mvd_flag=1表示CU启用SMVD模式,sym_mvd_flag=0表示CU不启用SMVD模式。
此时,在列表L0方向上:
1)解码端从编码端接收每个CU的mvd_l0。
2)解码端根据mvd_l1_zero_flag和每个CU的mvd_l0,确定是否会从编码端接收到该CU的sym_mvd_flag。
当mvd_l1_zero_flag=0时,解码端确定会从编码端接收该CU的sym_mvd_flag;
当mvd_l1_zero_flag=1时,若mvd_l0=0,则解码端确定会从编码端接收该CU的sym_mvd_flag;若mvd_l0!=0,则解码端确定不会从编码端接收该CU的sym_mvd_flag,直接确定该CU的sym_mvd_flag=0。
3)解码端根据每个CU的SMVD标识确定是否会从编码端接收到该CU在列表L0中的参考视频帧的索引信息即ref_idx_l0。
具体地,若该CU的sym_mvd_flag=0,则解码端确定会从编码端接收到该CU的ref_idx_l0;若该CU的sym_mvd_flag=1,则解码端确定不会从编码端接收到该CU的ref_idx_l0,直接确定该CU的ref_idx_l0=RefIdxSymL0。
4)解码端从编码端接收每个CU与列表L0相关的MVP的索引信息即mvp_idx_l0。
在列表L1方向上:
1)解码端根据每个CU的SMVD标识确定是否会从编码端接收到该CU与列表L1相关的参考视频帧的索引信息即ref_idx_l1。
具体地,若该CU的sym_mvd_flag=0,则解码端确定会从编码端接收到该CU的ref_idx_l1;若该CU的sym_mvd_flag=1,则解码端确定不会从编码端接收到该CU的ref_idx_l1,直接确定该CU的ref_idx_l1=RefIdxSymL1。
2)解码端从编码端接收每个CU与列表L1相关的MVP的索引信息即mvp_idx_l1。
3)解码端根据mvd_l1_zero_flag和每个CU的sym_mvd_flag确定是否会从编码端接收到该CU的mvd_l1。
当sym_mvd_flag=0、且mvd_l1_zero_flag=0时,解码端确定会从编码端接收该CU的mvd_l1;
当mvd_l1_zero_flag=1,sym_mvd_flag=0时,解码端确定不会从编码端接收该CU的mvd_l1,直接确定该CU的mvd_l1=0;
当mvd_l1_zero_flag=0,sym_mvd_flag=1时,解码端确定不会从编码端接收该CU的mvd_l1,直接确定该CU的mvd_l1=–mvd_l0;
当mvd_l1_zero_flag=1,sym_mvd_flag=1时,解码端确定不会从编码端接收该CU的mvd_l1,直接确定该CU的mvd_l1=0。
具体实施时,若目标切片中所有CU的第一目标解码信息都符合预设条件,则解码端可确定出目标切片中所有CU的第二目标解码信息;若目标切片中只有部分CU的第一目标解码信息符合预设条件,则解码端仅可确定出目标切片中部分CU的第二目标解码信息,而目标切片中剩余部分CU的第二目标解码信息则需要解码端从编码端获取。也就是说,上述流程中,解码端还可能会从编码端接收到目标切片中第一目标解码信息不符合预设条件的每个CU的第二目标解码信息。
图6是根据一示例性实施例示出的又一种视频解码方法的流程图,该方法的流程图包括以下步骤。
S601:接收用于指示待处理视频帧的目标切片中各CU与列表L1相关的MVD为零的指示信息。
比如,接收到mvd_l1_zero_flag=1的指示信息。
S602:接收目标切片中各CU的第一目标解码信息,其中,每个CU的第一目标解码信息为该CU的SMVD标识或该CU与列表L0相关的MVD。
S603:若确定任一CU的第一目标解码信息符合用于确定第二目标解码信息的预设条件,则根据用于推断符合预设条件的CU的第二目标解码信息的推断规则确定该任一CU的第二目标解码信息,每个CU的第二目标解码信息为该CU的SMVD标识和该CU与第二参考视频帧列表相关的MVD中除第一目标解码信息之外的解码信息。
当每个CU的第一目标解码信息为该CU的SMVD标识时,预设条件为SMVD标识表示启用SMVD模式,此时,若确定任一CU的第一目标解码信息符合该预设条件,则可根据符合该预设条件的CU与第二参考视频帧列表相关的MVD为零的推断规则,确定该任一CU与列表L0相关的MVD为零,并确定不接收该任一CU与列表L0相关的MVD。
当每个CU的第一目标解码信息为该CU与列表L0相关的MVD时,预设条件为与列表L0相关的MVD不为零,此时,若确定任一CU的第一目标解码信息符合该预设条件,则可根据符合该预设条件的CU的SMVD标识表示不启用SMVD模式的推断规则,确定该任一CU的SMVD标识表示该任一CU不启用SMVD模式,并确定不接收该任一CU的SMVD标识。
S604:接收目标切片中第一目标解码信息不符合预设条件的每个CU的第二目标解码信息。
具体实施时,当第一目标解码信息为CU的SMVD标识时,解码端接收到的是目标切片中SMVD标识表示不启用SMVD模式的CU与列表L0相关的MVD;当第一目标解码信息为CU与列表L0相关的MVD时,解码端接收到的是目标切片中与列表L0相关的MVD为零的CU的SMVD标识。
也就是说,在CU级,上述第一种情况中,解码端先接收目标切片中每个CU的SMVD标识,再接收目标切片中SMVD标识表示不启用SMVD模式的CU与列表L0相关的MVD;而在第二种情况中,解码端先接收目标切片中每个CU与列表L0相关的MVD,再接收目标切片中与列表L0相关的MVD为零的CU的SMVD标识。具体选用哪种方案由技术人员根据实际情况进行选择。
S605:根据目标切片中各CU与列表L1相关的MVD为零的信息、每个CU的第一目标解码信息和第二目标解码信息,解码该CU。
图7是根据一示例性实施例示出的一种视频编码方法的流程图,该方法的流程图包括以下步骤。
S701:获取待处理视频帧。
S702:若确定待处理视频帧的目标切片中各CU与列表L1相关的MVD为零,则发送用于指示目标切片中各CU与列表L1相关的MVD为零的指示信息。
具体实施时,可以预设用于判定目标切片中各CU与列表L1相关的MVD为零的判定规则,若确定目标切片中的各CU符合该判定规则,则确定目标切片中各CU与列表L1相关的MVD为零;否则,确定目标切片中各CU与列表L1相关的MVD不为零。
比如,当目标切片中各CU在列表L0和列表L1中的参考视频帧均为前向视频帧时,判定目标切片中各CU与列表L1相关的MVD为零;否则,确定目标切片中各CU与列表L1相关的MVD不为零。
这里,发送用于指示目标切片中各CU与列表L1相关的MVD为零的指示信息,即发送mvd_l1_zero_flag=1的信息。
S703:若确定目标切片中各CU满足启用SMVD模式的条件,则发送目标切片中各CU的第一目标解码信息,每个CU的第一目标解码信息为该CU的SMVD标识或该CU与列表L0相关的MVD。
其中,该CU的SMVD标识用于指示该CU是否启用SMVD模式。
S704:若确定任一CU的第一目标解码信息符合用于确定第二目标解码信息的预设条件,则根据用于推断符合预设条件的CU的第二目标解码信息的推断规则确定该任一CU的第二目标解码信息,每个CU的第二目标解码信息为该CU的SMVD标识和该CU与第二参考视频帧列表相关的MVD中除第一目标解码信息之外的解码信息。
当每个CU的第一目标解码信息为该CU的SMVD标识时,预设条件为SMVD标识表示启用SMVD模式,此时,若确定任一CU的第一目标解码信息符合该预设条件,则可根据符合该预设条件的CU与第二参考视频帧列表相关的MVD为零的推断规则,确定该任一CU与列表L0相关的MVD为零,并确定不发送该任一CU与列表L0相关的MVD。
当每个CU的第一目标解码信息为该CU与列表L0相关的MVD时,预设条件为与列表L0相关的MVD不为零,此时,若确定任一CU的第一目标解码信息符合该预设条件,则可根据符合该预设条件的CU的SMVD标识表示不启用SMVD模式的推断规则,确定该任一CU的SMVD标识表示该任一CU不启用SMVD模式,并确定不发送该任一CU的SMVD标识。
S705:根据目标切片中是否存在第一目标解码信息不符合预设条件的CU的信息,确定是否发送目标切片中不符合预设条件的每个CU的第二目标解码信息。
下面结合具体实施例对上述流程进行介绍。
第一种情况:每个CU的第一目标解码信息为该CU的SMVD标识。
具体实施时,对采用双向帧间预测模式进行预测的待处理视频帧,编码端会向解码端发送用于指示待处理视频帧的目标切片中各CU与列表L1相关的MVD是否为零的指示信息即mvd_l1_zero_flag。并且,编码端可以推断用于控制目标切片中各CU是否启用SMVD模式的控制标识即BiDirPredFlag,若BiDirPredFlag表示目标切片中各CU不可启用SMVD模式如BiDirPredFlag=0,则说明编码端不需向解码端发送目标切片中任一CU的SMVD标识;若BiDirPredFlag表示目标切片中各CU可启用SMVD模式如BiDirPredFlag=1,则说明编码端需向解码端发送目标切片中每个CU的SMVD标识。
当BiDirPredFlag=1时,编码端向解码端发送目标切片中每个CU的SMVD标识如sym_mvd_flag。假设sym_mvd_flag=1表示CU启用SMVD模式,sym_mvd_flag=0表示CU不启用SMVD模式。
此时,在列表L0方向上:
1)编码端根据每个CU的sym_mvd_flag确定是否向解码端发送该CU在列表L0中的参考视频帧的索引信息即ref_idx_l0。
具体地,若该CU的sym_mvd_flag=0,则编码端向解码端发送该CU的ref_idx_l0;若该CU的sym_mvd_flag=1,则编码端确定该CU的ref_idx_l0=RefIdxSymL0,不向解码端发送该CU的ref_idx_l0。
2)编码端向解码端发送每个CU与列表L0相关的MVP的索引信息即mvp_idx_l0。
3)编码端根据mvd_l1_zero_flag和每个CU的sym_mvd_flag确定是否向解码端发送该CU的mvd_l0。
当mvd_l1_zero_flag=0时,编码端确定向解码端发送该CU的mvd_l0;
当mvd_l1_zero_flag=1时,若sym_mvd_flag=0,则编码端确定向解码端发送该CU的mvd_l0;若sym_mvd_flag=1,则编码端确定该CU的mvd_l0=0,不向解码端发送该CU的mvd_l0。
在列表L1方向上:
1)编码端根据每个CU的sym_mvd_flag确定是否向解码端发送该CU与列表L1相关的参考视频帧的索引信息即ref_idx_l1。
具体地,若该CU的sym_mvd_flag=0,则编码端向解码端发送该CU的ref_idx_l1;若该CU的sym_mvd_flag=1,则编码端确定该CU的ref_idx_l1=RefIdxSymL1,不向解码端发送该CU的ref_idx_l1。
2)编码端发送每个CU与列表L1相关的MVP的索引信息如mvp_idx_l1。
3)编码端根据mvd_l1_zero_flag和每个CU的sym_mvd_flag确定是否向解码端发送该CU的mvd_l1。
当sym_mvd_flag=0且mvd_l1_zero_flag=0时,编码端向解码端发送该CU的mvd_l1;
当mvd_l1_zero_flag=1,sym_mvd_flag=0时,编码端确定该CU的mvd_l1=0,不向解码端发送该CU的mvd_l1;
当mvd_l1_zero_flag=0,sym_mvd_flag=1时,编码端确定该CU的mvd_l1=–mvd_l0,不向解码端发送该CU的mvd_l1;
当mvd_l1_zero_flag=1,sym_mvd_flag=1时,编码端确定该CU的mvd_l1=0,不向解码端发送该CU的mvd_l1。
第二种情况:每个CU的第一目标解码信息为该CU与列表L0相关的MVD。
具体实施时,对采用双向帧间预测模式进行预测的待处理视频帧,编码端会向解码端发送用于指示待处理视频帧的目标切片中各CU与列表L1相关的MVD是否为零的指示信息即mvd_l1_zero_flag。并且,编码端可以推断用于控制目标切片中各CU是否启用SMVD模式的控制标识即BiDirPredFlag,若BiDirPredFlag表示目标切片中各CU不可启用SMVD模式如BiDirPredFlag=0,则说明编码端不需向解码端发送目标切片中任一CU的SMVD标识;若BiDirPredFlag表示目标切片中各CU可启用SMVD模式如BiDirPredFlag=1,则说明编码端需向解码端发送目标切片中每个CU的SMVD标识。
当BiDirPredFlag=1时,编码端向解码端发送目标切片中每个CU的SMVD标识如sym_mvd_flag。假设sym_mvd_flag=1表示CU启用SMVD模式,sym_mvd_flag=0表示CU不启用SMVD模式。
此时,在列表L0方向上:
1)编码端向解码端发送每个CU的mvd_l0。
2)编码端根据mvd_l1_zero_flag和每个CU的mvd_l0,确定是否向解码端发送该CU的sym_mvd_flag。
当mvd_l1_zero_flag=0时,编码端向编码端发送该CU的sym_mvd_flag;
当mvd_l1_zero_flag=1时,若mvd_l0=0,则编码端确定向解码端发送该CU的sym_mvd_flag;若mvd_l0!=0,编码端确定该CU的sym_mvd_flag=0,不向解码端发送该CU的sym_mvd_flag。
3)编码端根据每个CU的SMVD标识确定是否向解码端发送该CU在列表L0中参考视频帧的索引信息即ref_idx_l0。
具体地,若该CU的sym_mvd_flag=0,则编码端确定向解码端发送该CU的ref_idx_l0;若该CU的sym_mvd_flag=1,则编码端确定该CU的ref_idx_l0=RefIdxSymL0,不向解码端发送该CU的ref_idx_l0。
4)编码端向解码端发送每个CU与列表L0相关的MVP的索引信息如mvp_l0_idx。
在列表L1方向上:
1)编码端根据每个CU的sym_mvd_flag确定是否向解码端发送该CU与列表L1相关的参考视频帧的索引信息即ref_idx_l1。
具体地,若该CU的sym_mvd_flag=0,则编码端确定向解码端发送该CU的ref_idx_l1;若该CU的sym_mvd_flag=1,则编码端确定该CU的ref_idx_l1=RefIdxSymL1,不向解码端发送该CU的ref_idx_l1。
2)编码端发送每个CU与列表L1相关的MVP的索引信息如mvp_idx_l1。
3)编码端根据mvd_l1_zero_flag和每个CU的sym_mvd_flag确定是否向解码端发送该CU的mvd_l1。
当sym_mvd_flag=0且mvd_l1_zero_flag=0时,编码端确定向解码端发送该CU的mvd_l1;
当mvd_l1_zero_flag=1,sym_mvd_flag=0时,编码端确定该CU的mvd_l1=0,不向解码端发送该CU的mvd_l1;
当mvd_l1_zero_flag=0,sym_mvd_flag=1时,编码端确定该CU的mvd_l1=–mvd_l0,不向解码端发送该CU的mvd_l1;
当mvd_l1_zero_flag=1,sym_mvd_flag=1时,编码端确定该CU的mvd_l1=0,不向解码端发送该CU的mvd_l1。
具体实施时,若目标切片中所有CU的第一目标解码信息都符合用于确定第二目标解码信息的预设条件,则解码端可确定出目标切片中所有CU的第二目标解码信息;若目标切片中只有部分CU的第一目标解码信息符合用于确定第二目标解码信息的预设条件,则解码端仅可确定出目标切片中部分CU的第二目标解码信息,而目标切片中剩余部分CU的第二目标解码信息则需要编码端发送给解码端。也就是说,上述流程中,在根据目标切片中是否存在第一目标解码信息不符合预设条件的CU的信息,确定是否发送目标切片中不符合预设条件的每个CU的第二目标解码信息之后,编码端可能还会向解码端发送目标切片中第一目标解码信息不符合预设条件的每个CU的第二目标解码信息。
图8是根据一示例性实施例示出的又一种视频编码方法的流程图,该方法的流程图包括以下步骤。
S801:获取待处理视频帧。
S802:若确定待处理视频帧的目标切片中各CU与列表L1相关的MVD为零,则发送用于指示目标切片中各CU与列表L1相关的MVD为零的指示信息。
S803:若确定目标切片中各CU满足启用SMVD模式的条件,则发送目标切片中各CU的第一目标解码信息,每个CU的第一目标解码信息为该CU的SMVD标识或该CU与列表L0相关的MVD。
其中,CU的SMVD标识用于指示CU是否启用SMVD模式。
S804:若确定任一CU的第一目标解码信息符合用于确定第二目标解码信息的预设条件,则根据用于推断符合预设条件的CU的第二目标解码信息的推断规则确定该任一CU的第二目标解码信息,每个CU的第二目标解码信息为该CU的SMVD标识和该CU与第二参考视频帧列表相关的MVD中除第一目标解码信息之外的解码信息。
当每个CU的第一目标解码信息为该CU的SMVD标识时,预设条件为SMVD标识表示启用SMVD模式,此时,若确定任一CU的第一目标解码信息符合该预设条件,则可根据符合该预设条件的CU与第二参考视频帧列表相关的MVD为零的推断规则,确定该任一CU与列表L0相关的MVD为零,并确定不发送该任一CU与列表L0相关的MVD。
当每个CU的第一目标解码信息为该CU与列表L0相关的MVD时,预设条件为与列表L0相关的MVD不为零,此时,若确定任一CU的第一目标解码信息符合该预设条件,则可根据符合该预设条件的CU的SMVD标识表示不启用SMVD模式的推断规则,确定该任一CU的SMVD标识表示该任一CU不启用SMVD模式,并确定不发送该任一CU的SMVD标识。
S805:根据目标切片中是否存在第一目标解码信息不符合预设条件的CU的信息,确定是否发送目标切片中不符合预设条件的每个CU的第二目标解码信息。
S806:若确定目标切片中存在第一目标解码信息不符合预设条件的CU,则发送目标切片中第一目标解码信息不符合预设条件的每个CU的第二目标解码信息。
具体实施时,当第一目标解码信息为CU的SMVD标识时,编码端向解码端发送的是目标切片中SMVD标识表示不启用SMVD模式的每个CU与列表L0相关的MVD;当第一目标解码信息为CU与列表L0相关的MVD时,编码端向解码端发送的是目标切片中与列表L0相关的MVD为零的每个CU的SMVD标识。
也就是说,在CU级,上述第一种情况中,编码端先发送目标切片中每个CU的SMVD标识,再发送目标切片中SMVD标识表示不启用SMVD模式的CU与列表L0相关的MVD;而在第二种情况中,编码端先发送目标切片中每个CU与列表L0相关的MVD,再发送目标切片中与列表L0相关的MVD为零的CU的SMVD标识。具体选用哪种方案由技术人员根据实际情况进行选择。
图9是根据一示例性实施例示出的再一种视频解码方法的流程图,该方法的流程图包括以下步骤。
S901:若确定待处理视频帧的目标切片中各CU满足第一条件和第二条件中优先级高的条件,则确定目标切片中的各CU不满足第一条件和第二条件中优先级低的条件。
其中,第一条件是指目标切片中各CU满足启用SMVD模式的条件,第二条件是指目标切片中各CU满足与列表L1相关的MVD为零的条件。
S902:接收目标切片中各CU的解码信息,其中,每个CU的解码信息至少包括该CU与列表L0相关的MVD。
具体实施时,当待处理视频帧的目标切片中各CU满足启用SMVD模式的条件时,每个CU的解码信息还包括SMVD标识。
S903:根据目标切片中各CU满足第一条件和第二条件中优先级高的条件、不满足第一条件和第二条件中优先级低的条件的信息、以及每个CU的解码信息,解码该CU。
下面结合具体实施对上述过程进行介绍。
第一种方案:优先级低的为第一条件(目标切片中各CU满足启用SMVD模式的条件),优先级高的为第二条件(目标切片中各CU满足与列表L1相关的MVD为零的条件)。
具体实施时,对采用双向帧间预测模式进行预测的待处理视频帧,解码端会从编码端接收到用于指示待处理视频帧的目标切片中各CU与列表L1相关的MVD是否为零的指示信息如mvd_l1_zero_flag,进一步地,解码端可根据mvd_l1_zero_flag,确定目标切片中各CU是否满足启用SMVD模式的条件。
具体地,当mvd_l1_zero_flag=1时,解码端确定目标切片中的各CU不满足启用SMVD模式的条件,即确定BiDirPredFlag=0;当mvd_l1_zero_flag=0时,推断用于控制目标切片中各CU是否满足启用SMVD模式的控制标识即BiDirPredFlag的取值。
后续,当BiDirPredFlag=1时,解码端会从编码端接收到每个CU的SMVD标识如sym_mvd_flag。假设sym_mvd_flag=1表示CU启用SMVD模式,sym_mvd_flag=0表示CU不启用SMVD模式。
此时,在列表L0方向上:
1)解码端根据每个CU的sym_mvd_flag确定是否会从编码端接收到该CU在列表L0中的参考视频帧的索引信息即ref_idx_l0。
具体地,若该CU的sym_mvd_flag=0,则解码端确定会从编码端接收到该CU的ref_idx_l0;若该CU的sym_mvd_flag=1,则解码端确定不会从编码端接收到该CU的ref_idx_l0,直接确定该CU的ref_idx_l0=RefIdxSymL0。
2)解码端从编码端接收每个CU与列表L0相关的MVP的索引信息即mvp_idx_l0。
3)解码端从编码端接收每个CU与列表L0相关的MVD即mvd_l0。
在列表L1方向上:
1)解码端根据每个CU的sym_mvd_flag确定是否会从编码端接收到该CU与列表L1相关的参考视频帧的索引信息即ref_idx_l1。
具体地,若该CU的sym_mvd_flag=0,则解码端确定会从编码端接收到该CU的ref_idx_l1;若该CU的sym_mvd_flag=1,则解码端确定不会从编码端接收到该CU的ref_idx_l1,直接确定该CU的ref_idx_l1=RefIdxSymL1。
2)解码端从编码端接收每个CU与列表L1相关的MVP的索引信息即mvp_idx_l1。
3)解码端根据mvd_l1_zero_flag和每个CU的sym_mvd_flag确定是否会从编码端接收到该CU的mvd_l1。
当sym_mvd_flag=0且mvd_l1_zero_flag=0时,解码端确定会从编码端接收该CU的mvd_l1;
当mvd_l1_zero_flag=1,sym_mvd_flag=0时,解码端确定不会从编码端接收该CU的mvd_l1,直接确定该CU的mvd_l1=0;
当mvd_l1_zero_flag=0,sym_mvd_flag=1时,解码端确定不会从编码端接收该CU的mvd_l1,直接确定该CU的mvd_l1=–mvd_l0;
当mvd_l1_zero_flag=1,sym_mvd_flag=1时,解码端确定不会从编码端接收该CU的mvd_l1,直接确定该CU的mvd_l1=0。
第二种方案:优先级高的为第一条件(目标切片中各CU满足启用SMVD模式的条件),优先级低的为第二条件(目标切片中各CU满足与列表L1相关的MVD为零的条件)。
具体实施时,对采用双向帧间预测模式进行预测的待处理视频帧,解码端可推断待处理视频帧的目标切片中各CU是否满足启用SMVD模式的条件即推断BiDirPredFlag的取值,进一步地,若目标切片中各CU不满足启用SMVD模式的条件即BiDirPredFlag=0,则解码端会从编码端接收到用于指示待处理视频帧的目标切片中各CU与列表L1相关的MVD是否为零的指示信息即mvd_l1_zero_flag;若目标切片中各CU满足启用SMVD模式的条件即BiDirPredFlag=1,则直接确定目标切片中各CU与列表L1相关的MVD不为零即mvd_l1_zero_flag=0。
当BiDirPredFlag=1时,解码端确定会从编码端接收到每个CU的SMVD标识即sym_mvd_flag。
此时,在列表L0方向上:
1)解码端根据每个CU的sym_mvd_flag确定是否会从编码端接收到该CU在列表L0中的参考视频帧的索引信息即ref_idx_l0。
具体地,若该CU的sym_mvd_flag=0,则解码端确定会从编码端接收到该CU的ref_idx_l0;若该CU的sym_mvd_flag=1,则解码端确定不会从编码端接收到该CU的ref_idx_l0,直接确定该CU的ref_idx_l0=RefIdxSymL0。
2)解码端从编码端接收每个CU与列表L0相关的MVP的索引信息即mvp_idx_l0。
3)解码端从编码端接收每个CU与列表L0相关的MVD即mvd_l0。
在列表L1方向上:
1)解码端根据每个CU的sym_mvd_flag确定是否会从编码端接收到该CU与列表L1相关的参考视频帧的索引信息即ref_idx_l1。
具体地,若该CU的sym_mvd_flag=0,则解码端确定会从编码端接收到该CU的ref_idx_l1;若该CU的sym_mvd_flag=1,则解码端确定不会从编码端接收到该CU的ref_idx_l1,直接确定该CU的ref_idx_l1=RefIdxSymL1。
2)解码端从编码端接收每个CU与列表L1相关的MVP的索引信息即mvp_idx_l1。
3)解码端根据mvd_l1_zero_flag和每个CU的sym_mvd_flag确定是否会从编码端接收到该CU的mvd_l1。
当sym_mvd_flag=0且mvd_l1_zero_flag=0时,解码端确定会从编码端接收该CU的mvd_l1;
当mvd_l1_zero_flag=1,sym_mvd_flag=0时,解码端确定不会从编码端接收该CU的mvd_l1,直接确定该CU的mvd_l1=0;
当mvd_l1_zero_flag=0,sym_mvd_flag=1时,解码端确定不会从编码端接收该CU的mvd_l1,直接确定该CU的mvd_l1=–mvd_l0;
当mvd_l1_zero_flag=1,sym_mvd_flag=1时,解码端确定不会从编码端接收该CU的mvd_l1,直接确定该CU的mvd_l1=0。
图10是根据一示例性实施例示出的再一种视频编码方法的流程图,该方法的流程图包括以下步骤。
S1001:获取待处理视频帧。
S1002:若确定待处理视频帧的目标切片中各CU满足第一条件和第二条件中优先级高的条件,则确定目标切片中的各CU不满足第一条件和第二条件中优先级低的条件。
其中,第一条件是指目标切片中的各CU满足启用SMVD模式的条件,第二条件是指目标切片中各CU满足与列表L1相关的MVD为零的条件。
S1003:根据目标切片中各CU满足第一条件和所述第二条件中优先级高的条件、不满足第一条件和所述第二条件中优先级低的条件的信息,对目标切片中的每个CU进行编码。
S1004:发送目标切片中各CU的解码信息,每个CU的解码信息至少包括CU与列表L0相关的MVD。
具体实施时,当待处理视频帧的目标切片中各CU满足启用SMVD模式的条件时,每个CU的解码信息还包括SMVD标识。
下面结合具体实施对上述过程进行介绍。
第一种方案:优先级低的为第一条件(目标切片中各CU满足启用SMVD模式的条件),优先级高的为第二条件(目标切片中各CU满足与列表L1相关的MVD为零的条件)。
具体实施时,对采用双向帧间预测模式进行预测的待处理视频帧,编码端会从解码端接收到用于指示待处理视频帧的目标切片中各CU与列表L1相关的MVD是否为零的指示信息即mvd_l1_zero_flag,进一步地,编码端可根据mvd_l1_zero_flag的取值,确定目标切片中各CU是否满足启用SMVD模式的条件。
具体地,当mvd_l1_zero_flag=1时,编码端确定目标切片中的各CU不满足启用SMVD模式的条件即BiDirPredFlag=0;当mvd_l1_zero_flag=0时,编码端推断用于控制目标切片中各CU是否满足启用SMVD模式的控制标识即BiDirPredFlag的取值。
后续,当BiDirPredFlag=1时,编码端会向解码端发送每个CU的SMVD标识即sym_mvd_flag。假设sym_mvd_flag=1表示CU启用SMVD模式,sym_mvd_flag=0表示CU不启用SMVD模式。
此时,在列表L0方向上:
1)编码端根据每个CU的sym_mvd_flag确定是否向解码端发送该CU在列表L0中的参考视频帧的索引信息即ref_idx_l0。
具体地,若该CU的sym_mvd_flag=0,则编码端确定向解码端发送该CU的ref_idx_l0;若该CU的sym_mvd_flag=1,则编码端确定该CU的ref_idx_l0=RefIdxSymL0,不向解码端发送该CU的ref_idx_l0。
2)编码端向解码端发送每个CU与列表L0相关的MVP的索引信息即mvp_idx_l0。
3)编码端向解码端发送每个CU与列表L0相关的MVD即mvd_l0。
在列表L1方向上:
1)编码端根据每个CU的sym_mvd_flag确定是否向解码端发送到该CU与列表L1相关的参考视频帧的索引信息即ref_idx_l1。
具体地,若该CU的sym_mvd_flag=0,则编码端确定向解码端发送该CU的ref_idx_l1;若该CU的sym_mvd_flag=1,则编码端确定该CU的ref_idx_l1=RefIdxSymL1,不向解码端发送该CU的ref_idx_l1。
2)编码端向解码端发送每个CU与列表L1相关的MVP的索引信息即mvp_idx_l1。
3)编码端根据mvd_l1_zero_flag和每个CU的sym_mvd_flag确定是否向解码端发送该CU的mvd_l1。
当sym_mvd_flag=0且mvd_l1_zero_flag=0时,编码端确定向解码端发送该CU的mvd_l1;
当mvd_l1_zero_flag=1,sym_mvd_flag=0时,编码端直接确定mvd_l1=0,不向解码端发送该CU的mvd_l1;
当mvd_l1_zero_flag=0,sym_mvd_flag=1时,编码端直接确定mvd_l1=–mvd_l0,不向解码端发送该CU的mvd_l1;
当mvd_l1_zero_flag=1,sym_mvd_flag=1时,编码端直接确定mvd_l1=0,不向解码端发送该CU的mvd_l1。
第二种方案:优先级高的为第一条件(目标切片中各CU满足启用SMVD模式的条件),优先级低的为第二条件(目标切片中各CU满足与列表L1相关的MVD为零的条件)。
具体实施时,对采用双向帧间预测模式进行预测的待处理视频帧,编码端可推断待处理视频帧的目标切片中各CU是否满足启用SMVD模式的条件即推断BiDirPredFlag的取值,进一步地,编码端若确定目标切片中各CU不满足启用SMVD模式的条件即BiDirPredFlag=0,则会向编码端发送用于指示待处理视频帧的目标切片中各CU与列表L1相关的MVD是否为零的指示信息即mvd_l1_zero_flag;若目标切片中各CU满足启用SMVD模式的条件即BiDirPredFlag=1,则编码端确定目标切片中各CU与列表L1相关的MVD不为零即mvd_l1_zero_flag=0,而不向编码端发送mvd_l1_zero_flag。
后续,当BiDirPredFlag=1时,编码端会向编码端发送每个CU的SMVD标识即sym_mvd_flag。假设sym_mvd_flag=1表示CU启用SMVD模式,sym_mvd_flag=0表示CU不启用SMVD模式。
此时,在列表L0方向上:
1)编码端根据每个CU的sym_mvd_flag确定是否向解码端发送该CU在列表L0中的参考视频帧的索引信息即ref_idx_l0。
具体地,若该CU的sym_mvd_flag=0,则编码端向解码端发送该CU的ref_idx_l0;若该CU的sym_mvd_flag=1,则编码端确定该CU的ref_idx_l0=RefIdxSymL0,不向解码端发送该CU的ref_idx_l0。
2)编码端会向编码端发送每个CU与列表L0相关的MVP的索引信息如mvp_idx_l0。
3)编码端会向编码端发送每个CU与列表L0相关的MVD即mvd_l0。
在列表L1方向上:
1)编码端根据每个CU的sym_mvd_flag确定是否向解码端发送到该CU与列表L1相关的参考视频帧的索引信息即ref_idx_l1。
具体地,若该CU的sym_mvd_flag=0,则编码端向解码端发送该CU的ref_idx_l1;若该CU的sym_mvd_flag=1,则编码端确定该CU的ref_idx_l1=RefIdxSymL1,不向解码端发送该CU的ref_idx_l1。
2)编码端会向编码端发送每个CU与列表L1相关的MVP的索引信息即mvp_idx_l1。
3)编码端根据mvd_l1_zero_flag和每个CU的sym_mvd_flag确定是否向编码端发送该CU的mvd_l1。
当sym_mvd_flag=0且mvd_l1_zero_flag=0时,编码端确定会向编码端发送该CU的mvd_l1;
当mvd_l1_zero_flag=1,sym_mvd_flag=0时,编码端直接确定mvd_l1=0,不向编码端发送该CU的mvd_l1;
当mvd_l1_zero_flag=0,sym_mvd_flag=1时,编码端直接确定mvd_l1=–mvd_l0,不向编码端发送该CU的mvd_l1;
当mvd_l1_zero_flag=1,sym_mvd_flag=1时,编码端直接确定mvd_l1=0,不向编码端发送该CU的mvd_l1。
当本公开实施例中提供的方法以软件或硬件或软硬件结合实现的时候,电子设备中可以包括多个功能模块,每个功能模块可以包括软件、硬件或其结合。
图11是根据一示例性实施例示出的一种视频解码装置的框图,该装置包括第一接收模块1101、第二接收模块1102、确定模块1103和解码模块1104,其中:
第一接收模块1101,被配置为执行接收用于指示待处理视频帧的目标切片中各编码单元CU与第一参考视频帧列表相关的运动矢量差MVD为零的指示信息;
第二接收模块1102,被配置为执行接收所述目标切片中各CU的第一目标解码信息,每个CU的第一目标解码信息为所述CU的SMVD标识或所述CU与第二参考视频帧列表相关的MVD,所述SMVD标识用于指示所述CU是否启用对称运动矢量差SMVD模式;
确定模块1103,被配置为执行若确定任一CU的第一目标解码信息符合用于确定第二目标解码信息的预设条件,则根据用于推断符合所述预设条件的CU的第二目标解码信息的推断规则确定所述任一CU的第二目标解码信息,每个CU的第二目标解码信息为所述CU的SMVD标识和所述CU与第二参考视频帧列表相关的MVD中除第一目标解码信息之外的解码信息;
解码模块1104,被配置为执行根据所述目标切片中各CU与第一参考视频帧列表相关的MVD为零的信息、每个CU的第一目标解码信息和第二目标解码信息,解码所述CU。
在一种可能的实施方式中,若每个CU的第一目标解码信息为所述CU的SMVD标识,则所述预设条件为SMVD标识表示启用SMVD模式,以及
所述确定模块1103,被具体配置为执行根据符合所述预设条件的CU与第二参考视频帧列表相关的MVD为零的推断规则,确定所述任一CU与第二参考视频帧列表相关的MVD为零,并确定不接收所述任一CU与第二参考视频帧列表相关的MVD。
在一种可能的实施方式中,若每个CU的第一目标解码信息为所述CU与第二参考视频帧列表相关的MVD,则所述预设条件为与第二参考视频帧列表相关的MVD不为零,以及
所述确定模块1103,被具体配置为执行根据符合所述预设条件的CU的SMVD标识表示不启用SMVD模式的推断规则,确定所述任一CU的SMVD标识表示所述任一CU不启用SMVD模式,并确定不接收所述任一CU的SMVD标识。
在一种可能的实施方式中,若所述目标切片中存在第一目标解码信息不符合所述预设条件的CU,则还包括:
第三接收模块1105,被配置为执行在接收所述目标切片中各CU的第一目标解码信息之后,接收所述目标切片中第一目标解码信息不符合所述预设条件的每个CU的第二目标解码信息。
图12是根据一示例性实施例示出的一种视频编码装置的框图,该装置包括获取模块1201、第一发送模块1202、第二发送模块1203、确定模块1204和处理模块1205,其中:
获取模块1201,被配置为执行获取待处理视频帧;
第一发送模块1202,被配置为执行若确定所述待处理视频帧的目标切片中各编码单元CU与第一参考视频帧列表相关的运动矢量差MVD为零,则发送用于指示所述目标切片中各CU与第一参考视频帧列表相关的MVD为零的指示信息;
第二发送模块1203,被配置为执行若确定所述目标切片中各CU满足启用对称运动矢量差SMVD模式的条件,则发送所述目标切片中各CU的第一目标解码信息,每个CU的第一目标解码信息为所述CU的SMVD标识或所述CU与第二参考视频帧列表相关的MVD,所述SMVD标识用于指示所述CU是否启用对称运动矢量差SMVD模式;
确定模块1204,被配置为执行若确定任一CU的第一目标解码信息符合用于确定第二目标解码信息的预设条件,则根据用于推断符合所述预设条件的CU的第二目标解码信息的推断规则确定所述任一CU的第二目标解码信息,每个CU的第二目标解码信息为所述CU的SMVD标识和所述CU与第二参考视频帧列表相关的MVD中除第一目标解码信息之外的解码信息;
处理模块1205,被配置为执行根据所述目标切片中是否存在第一目标解码信息不符合所述预设条件的CU的信息,确定是否发送所述目标切片中不符合所述预设条件的每个CU的第二目标解码信息。
在一种可能的实施方式中,若每个CU的第一目标解码信息为所述CU的SMVD标识,则所述预设条件为SMVD标识表示启用SMVD模式,以及
所述确定模块1204,被具体配置为执行根据符合所述预设条件的CU与第二参考视频帧列表相关的MVD为零的推断规则,确定所述任一CU与第二参考视频帧列表相关的MVD为零,并确定不发送所述任一CU与第二参考视频帧列表相关的MVD。
在一种可能的实施方式中,若每个CU的第一目标解码信息为所述CU与第二参考视频帧列表相关的MVD,则所述预设条件为与第二参考视频帧列表相关的MVD不为零,以及
所述确定模块1204,被具体配置为执行根据符合所述预设条件的CU的SMVD标识表示不启用SMVD模式的推断规则,确定所述任一CU的SMVD标识表示所述任一CU不启用SMVD模式,并确定不发送所述任一CU的SMVD标识。
在一种可能的实施方式中,还包括:
第三发送模块1206,被配置为执行若确定所述目标切片中存在第一目标解码信息不符合所述预设条件的CU,则在发送所述目标切片中各CU的第一目标解码信息之后,发送所述目标切片中第一目标解码信息不符合所述预设条件的每个CU的第二目标解码信息。
图13是根据一示例性实施例示出的一种视频解码装置的框图,该装置包括确定模块1301、接收模块1302和解码模块1303,其中:
确定模块1301,被配置为执行若确定待处理视频帧的目标切片中各编码单元CU满足第一条件和第二条件中优先级高的条件,则确定所述目标切片中的各CU不满足所述第一条件和所述第二条件中优先级低的条件,所述第一条件是指所述目标切片中各CU满足启用对称运动矢量差SMVD模式的条件,所述第二条件是指所述目标切片中各CU满足与第一参考视频帧列表相关的运动矢量差MVD为零的条件;
接收模块1302,被配置为执行接收所述目标切片中各CU的解码信息,每个CU的解码信息至少包括所述CU与第二参考视频帧列表相关的MVD;
解码模块1303,被配置为执行根据所述目标切片中各CU满足所述第一条件和所述第二条件中优先级高的条件、不满足所述第一条件和所述第二条件中优先级低的条件的信息、以及每个CU的解码信息,解码所述CU。
图14是根据一示例性实施例示出的一种视频编码装置的框图,该装置包括获取模块1401、确定模块1402、编码模块1403和发送模块1404,其中:
获取模块1401,被配置为执行获取待处理视频帧;
确定模块1402,被配置为执行若确定所述待处理视频帧的目标切片中各编码单元CU满足第一条件和第二条件中优先级高的条件,则确定所述目标切片中的各CU不满足所述第一条件和所述第二条件中优先级低的条件,所述第一条件是指所述目标切片中的各CU满足启用对称运动矢量差SMVD模式的条件,所述第二条件是指所述目标切片中各CU满足与第一参考视频帧列表相关的运动矢量差MVD为零的条件;
编码模块1403,被配置为执行根据所述目标切片中各CU满足所述第一条件和所述第二条件中优先级高的条件、不满足所述第一条件和所述第二条件中优先级低的条件的信息,对所述目标切片中的每个CU进行编码;
发送模块1404,被配置为执行发送所述目标切片中各CU的解码信息,每个CU的解码信息至少包括所述CU与第二参考视频帧列表相关的MVD。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本公开各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。各个模块相互之间的耦合可以是通过一些接口实现,这些接口通常是电性通信接口,但是也不排除可能是机械接口或其它的形式接口。因此,作为分离部件说明的模块可以是或者也可以不是物理上分开的,既可以位于一个地方,也可以分布到同一个或不同设备的不同位置上。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
图15是根据一示例性实施例示出的一种电子设备的结构示意图,该电子设备包括收发器1501以及处理器1502等物理器件,其中,处理器1502可以是一个中央处理单元(central processing unit,CPU)、微处理器、专用集成电路、可编程逻辑电路、大规模集成电路、或者为数字处理单元等等。收发器1501用于电子设备和其他设备进行数据收发。
该电子设备还可以包括存储器1503用于存储处理器1502执行的软件指令,当然还可以存储电子设备需要的一些其他数据,如电子设备的标识信息、电子设备的加密信息、用户数据等。存储器1503可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1503也可以是非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器1503是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1503可以是上述存储器的组合。
本公开实施例中不限定上述处理器1502、存储器1503以及收发器1501之间的具体连接介质。本公开实施例在图15中仅以存储器1503、处理器1502以及收发器1501之间通过总线1504连接为例进行说明,总线在图15中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图15中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器1502可以是专用硬件或运行软件的处理器,当处理器1502可以运行软件时,处理器1502读取存储器1503存储的软件指令,并在所述软件指令的驱动下,执行前述实施例中涉及的视频解码或编码方法。
本公开实施例还提供了一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,所述电子设备能够执行前述实施例中涉及的视频解码或编码方法。
在一些可能的实施方式中,本公开提供的视频解码或编码方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行前述实施例中涉及的视频解码或编码方法。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本公开实施例中用于视频解码或编码的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言诸如Java、C++等,还包括常规的过程式程序设计语言诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本公开的实施例可提供为方法、***、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、装置(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (18)
1.一种视频解码方法,其特征在于,包括:
接收用于指示待处理视频帧的目标切片中各编码单元CU与第一参考视频帧列表相关的运动矢量差MVD为零的指示信息;
接收所述目标切片中各CU的第一目标解码信息,每个CU的第一目标解码信息为所述CU的SMVD标识或所述CU与第二参考视频帧列表相关的MVD,所述SMVD标识用于指示所述CU是否启用对称运动矢量差SMVD模式;
若确定任一CU的第一目标解码信息符合用于确定第二目标解码信息的预设条件,则根据用于推断符合所述预设条件的CU的第二目标解码信息的推断规则确定所述任一CU的第二目标解码信息,每个CU的第二目标解码信息为所述CU的SMVD标识和所述CU与第二参考视频帧列表相关的MVD中除第一目标解码信息之外的解码信息;
根据所述目标切片中各CU与第一参考视频帧列表相关的MVD为零的信息、每个CU的第一目标解码信息和第二目标解码信息,解码所述CU。
2.根据权利要求1所述的方法,其特征在于,若每个CU的第一目标解码信息为所述CU的SMVD标识,则所述预设条件为SMVD标识表示启用SMVD模式;以及
根据用于推断符合所述预设条件的CU的第二目标解码信息的推断规则确定所述任一CU的第二目标解码信息,包括:
根据符合所述预设条件的CU与第二参考视频帧列表相关的MVD为零的推断规则,确定所述任一CU与第二参考视频帧列表相关的MVD为零,并确定不接收所述任一CU与第二参考视频帧列表相关的MVD。
3.根据权利要求1所述的方法,其特征在于,若每个CU的第一目标解码信息为所述CU与第二参考视频帧列表相关的MVD,则所述预设条件为与第二参考视频帧列表相关的MVD不为零;以及
根据用于推断符合所述预设条件的CU的第二目标解码信息的推断规则确定所述任一CU的第二目标解码信息,包括:
根据符合所述预设条件的CU的SMVD标识表示不启用SMVD模式的推断规则,确定所述任一CU的SMVD标识表示所述任一CU不启用SMVD模式,并确定不接收所述任一CU的SMVD标识。
4.根据权利要求1-3任一所述的方法,其特征在于,若确定所述目标切片中存在第一目标解码信息不符合所述预设条件的CU,则还包括:
在接收所述目标切片中各CU的第一目标解码信息之后,接收所述目标切片中第一目标解码信息不符合所述预设条件的每个CU的第二目标解码信息。
5.一种视频编码方法,其特征在于,包括:
获取待处理视频帧;
若确定所述待处理视频帧的目标切片中各编码单元CU与第一参考视频帧列表相关的运动矢量差MVD为零,则发送用于指示所述目标切片中各CU与第一参考视频帧列表相关的MVD为零的指示信息;
若确定所述目标切片中各CU满足启用对称运动矢量差SMVD模式的条件,则发送所述目标切片中各CU的第一目标解码信息,每个CU的第一目标解码信息为所述CU的SMVD标识或所述CU与第二参考视频帧列表相关的MVD,所述SMVD标识用于指示所述CU是否启用对称运动矢量差SMVD模式;
若确定任一CU的第一目标解码信息符合用于确定第二目标解码信息的预设条件,则根据用于推断符合所述预设条件的CU的第二目标解码信息的推断规则确定所述任一CU的第二目标解码信息,每个CU的第二目标解码信息为所述CU的SMVD标识和所述CU与第二参考视频帧列表相关的MVD中除第一目标解码信息之外的解码信息;
根据所述目标切片中是否存在第一目标解码信息不符合所述预设条件的CU的信息,确定是否发送所述目标切片中不符合所述预设条件的每个CU的第二目标解码信息。
6.根据权利要求5所述的方法,其特征在于,若每个CU的第一目标解码信息为所述CU的SMVD标识,则所述预设条件为SMVD标识表示启用SMVD模式;以及
根据用于推断符合所述预设条件的CU的第二目标解码信息的推断规则确定所述任一CU的第二目标解码信息,包括:
根据符合所述预设条件的CU与第二参考视频帧列表相关的MVD为零的推断规则,确定所述任一CU与第二参考视频帧列表相关的MVD为零,并确定不发送所述任一CU与第二参考视频帧列表相关的MVD。
7.根据权利要求5所述的方法,其特征在于,若每个CU的第一目标解码信息为所述CU与第二参考视频帧列表相关的MVD,则所述预设条件为与第二参考视频帧列表相关的MVD不为零,以及
根据用于推断符合所述预设条件的CU的第二目标解码信息的推断规则确定所述任一CU的第二目标解码信息,包括:
根据符合所述预设条件的CU的SMVD标识表示不启用SMVD模式的推断规则,确定所述任一CU的SMVD标识表示所述任一CU不启用SMVD模式,并确定不发送所述任一CU的SMVD标识。
8.根据权利要求5-7任一所述的方法,其特征在于,若确定所述目标切片中存在第一目标解码信息不符合所述预设条件的CU,则还包括:
在发送所述目标切片中各CU的第一目标解码信息之后,发送所述目标切片中第一目标解码信息不符合所述预设条件的每个CU的第二目标解码信息。
9.一种视频解码装置,其特征在于,包括:
第一接收模块,被配置为执行接收用于指示待处理视频帧的目标切片中各编码单元CU与第一参考视频帧列表相关的运动矢量差MVD为零的指示信息;
第二接收模块,被配置为执行接收所述目标切片中各CU的第一目标解码信息,每个CU的第一目标解码信息为所述CU的SMVD标识或所述CU与第二参考视频帧列表相关的MVD,所述SMVD标识用于指示所述CU是否启用对称运动矢量差SMVD模式;
确定模块,被配置为执行若确定任一CU的第一目标解码信息符合用于确定第二目标解码信息的预设条件,则根据用于推断符合所述预设条件的CU的第二目标解码信息的推断规则确定所述任一CU的第二目标解码信息,每个CU的第二目标解码信息为所述CU的SMVD标识和所述CU与第二参考视频帧列表相关的MVD中除第一目标解码信息之外的解码信息;
解码模块,被配置为执行根据所述目标切片中各CU与第一参考视频帧列表相关的MVD为零的信息、每个CU的第一目标解码信息和第二目标解码信息,解码所述CU。
10.根据权利要求9所述的装置,其特征在于,若每个CU的第一目标解码信息为所述CU的SMVD标识,则所述预设条件为SMVD标识表示启用SMVD模式;以及
所述确定模块,被具体配置为执行根据符合所述预设条件的CU与第二参考视频帧列表相关的MVD为零的推断规则,确定所述任一CU与第二参考视频帧列表相关的MVD为零,并确定不接收所述任一CU与第二参考视频帧列表相关的MVD。
11.根据权利要求9所述的装置,其特征在于,若每个CU的第一目标解码信息为所述CU与第二参考视频帧列表相关的MVD,则所述预设条件为与第二参考视频帧列表相关的MVD不为零,以及
所述确定模块,被具体配置为执行根据符合所述预设条件的CU的SMVD标识表示不启用SMVD模式的推断规则,确定所述任一CU的SMVD标识表示所述任一CU不启用SMVD模式,并确定不接收所述任一CU的SMVD标识。
12.根据权利要求9-11任一所述的装置,其特征在于,若所述目标切片中存在第一目标解码信息不符合所述预设条件的CU,则还包括:
第三接收模块,被配置为执行在接收所述目标切片中各CU的第一目标解码信息之后,接收所述目标切片中第一目标解码信息不符合所述预设条件的每个CU的第二目标解码信息。
13.一种视频编码装置,其特征在于,包括:
获取模块,被配置为执行获取待处理视频帧;
第一发送模块,被配置为执行若确定所述待处理视频帧的目标切片中各编码单元CU与第一参考视频帧列表相关的运动矢量差MVD为零,则发送用于指示所述目标切片中各CU与第一参考视频帧列表相关的MVD为零的指示信息;
第二发送模块,被配置为执行若确定所述目标切片中各CU满足启用对称运动矢量差SMVD模式的条件,则发送所述目标切片中各CU的第一目标解码信息,每个CU的第一目标解码信息为所述CU的SMVD标识或所述CU与第二参考视频帧列表相关的MVD,所述SMVD标识用于指示所述CU是否启用对称运动矢量差SMVD模式;
确定模块,被配置为执行若确定任一CU的第一目标解码信息符合用于确定第二目标解码信息的预设条件,则根据用于推断符合所述预设条件的CU的第二目标解码信息的推断规则确定所述任一CU的第二目标解码信息,每个CU的第二目标解码信息为所述CU的SMVD标识和所述CU与第二参考视频帧列表相关的MVD中除第一目标解码信息之外的解码信息;
处理模块,被配置为执行根据所述目标切片中是否存在第一目标解码信息不符合所述预设条件的CU的信息,确定是否发送所述目标切片中不符合所述预设条件的每个CU的第二目标解码信息。
14.根据权利要求13所述的装置,其特征在于,若每个CU的第一目标解码信息为所述CU的SMVD标识,则所述预设条件为SMVD标识表示启用SMVD模式,以及
所述确定模块,被具体配置为执行根据符合所述预设条件的CU与第二参考视频帧列表相关的MVD为零的推断规则,确定所述任一CU与第二参考视频帧列表相关的MVD为零,并确定不发送所述任一CU与第二参考视频帧列表相关的MVD。
15.根据权利要求13所述的装置,其特征在于,若每个CU的第一目标解码信息为所述CU与第二参考视频帧列表相关的MVD,则所述预设条件为与第二参考视频帧列表相关的MVD不为零,以及
所述确定模块,被具体配置为执行根据符合所述预设条件的CU的SMVD标识表示不启用SMVD模式的推断规则,确定所述任一CU的SMVD标识表示所述任一CU不启用SMVD模式,并确定不发送所述任一CU的SMVD标识。
16.根据权利要求13-15任一所述的装置,其特征在于,还包括:
第三发送模块,被配置为执行若确定所述目标切片中存在第一目标解码信息不符合所述预设条件的CU,则在发送所述目标切片中各CU的第一目标解码信息之后,发送所述目标切片中第一目标解码信息不符合所述预设条件的每个CU的第二目标解码信息。
17.一种电子设备,其特征在于,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中:
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行时,所述至少一个处理器能够执行如权利要求1-8中任一所述的方法。
18.一种存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,所述电子设备能够执行如权利要求1-8中任一所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962847316P | 2019-05-13 | 2019-05-13 | |
US62/847,316 | 2019-05-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111586419A CN111586419A (zh) | 2020-08-25 |
CN111586419B true CN111586419B (zh) | 2022-03-25 |
Family
ID=72126664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010403777.8A Active CN111586419B (zh) | 2019-05-13 | 2020-05-13 | 视频解码方法、视频编码方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111586419B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022188186A1 (zh) * | 2021-03-12 | 2022-09-15 | Oppo广东移动通信有限公司 | 系数编解码方法、编解码设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018212111A1 (ja) * | 2017-05-19 | 2018-11-22 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
WO2019009546A1 (ko) * | 2017-07-04 | 2019-01-10 | 엘지전자 주식회사 | 인터 예측 기반의 영상 처리 방법 및 이를 위한 장치 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10595035B2 (en) * | 2017-03-22 | 2020-03-17 | Qualcomm Incorporated | Constraining motion vector information derived by decoder-side motion vector derivation |
-
2020
- 2020-05-13 CN CN202010403777.8A patent/CN111586419B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018212111A1 (ja) * | 2017-05-19 | 2018-11-22 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
WO2019009546A1 (ko) * | 2017-07-04 | 2019-01-10 | 엘지전자 주식회사 | 인터 예측 기반의 영상 처리 방법 및 이를 위한 장치 |
Non-Patent Citations (1)
Title |
---|
Versatile Video Coding (Draft 4),JVET-M1001-v7;Benjamin Bross 等;《Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 13th Meeting: Marrakech》;20190317;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111586419A (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112823518B (zh) | 用于译码块的几何划分块的帧间预测的装置及方法 | |
KR101606661B1 (ko) | 고효율 비디오 코딩(hevc)을 위한 병치된 화상을 시그널링하기 위한 명시적 방법 | |
US8929450B2 (en) | Temporal block merge mode | |
KR101350597B1 (ko) | 멀티 뷰 비디오 코딩을 위한 방법 및 장치 | |
JP7395580B2 (ja) | ビデオデコーダおよび方法 | |
US9066104B2 (en) | Spatial block merge mode | |
JP2023104947A (ja) | 変換行列選択の係数依存コーディング | |
KR20230169407A (ko) | 인트라 예측 방법 및 디바이스 | |
WO2013078248A1 (en) | Implicit determination and combined implicit and explicit determination of collocated picture for temporal prediction | |
EP2810439A1 (en) | Explicit way for signaling a collocated reference picture for video coding | |
CN113796071A (zh) | 编码器、解码器及用于ibc融合列表的相应方法 | |
CN110868587B (zh) | 一种视频图像预测方法及装置 | |
JP2024083360A (ja) | マージモードのためのエンコーダ、デコーダ、および対応する方法 | |
US20210105481A1 (en) | Method and apparatus for processing video signal by using affine prediction | |
CN113660497B (zh) | 编码器、解码器和使用ibc合并列表的对应方法 | |
CN110868589A (zh) | 帧间预测方法、装置及其应用的编/解方法及装置 | |
CN112740663B (zh) | 图像预测方法、装置以及相应的编码器和解码器 | |
CN111586419B (zh) | 视频解码方法、视频编码方法及装置 | |
CN114946181A (zh) | 用于视频译码的参考图像管理方法 | |
CN110753222B (zh) | 视频编码方法和确定采用帧间编码方式的方法及设备 | |
CN110944184B (zh) | 视频解码方法及视频解码器 | |
KR20080055685A (ko) | 비디오 신호의 디코딩 방법 및 장치 | |
KR20230003061A (ko) | 모션 정밀 신택스을 위한 엔트로피 코딩 | |
CN111010565A (zh) | 帧间预测方法、装置及其应用的编/解方法及装置 | |
KR20080050349A (ko) | 비디오 신호 디코딩 방법 및 장치 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |