CN113826394A - 帧内块复制模式下自适应运动矢量差分辨率的改进 - Google Patents
帧内块复制模式下自适应运动矢量差分辨率的改进 Download PDFInfo
- Publication number
- CN113826394A CN113826394A CN202080016871.6A CN202080016871A CN113826394A CN 113826394 A CN113826394 A CN 113826394A CN 202080016871 A CN202080016871 A CN 202080016871A CN 113826394 A CN113826394 A CN 113826394A
- Authority
- CN
- China
- Prior art keywords
- motion
- motion vector
- mode
- precision
- flag
- 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
- 230000033001 locomotion Effects 0.000 title claims abstract description 280
- 239000013598 vector Substances 0.000 title claims abstract description 166
- 230000003044 adaptive effect Effects 0.000 title abstract description 12
- 230000006872 improvement Effects 0.000 title abstract description 3
- 238000000034 method Methods 0.000 claims abstract description 163
- 238000012545 processing Methods 0.000 claims abstract description 29
- 238000006243 chemical reaction Methods 0.000 claims abstract description 10
- 230000007704 transition Effects 0.000 claims abstract description 6
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 127
- 238000003672 processing method Methods 0.000 claims description 3
- 241000023320 Luma <angiosperm> Species 0.000 description 31
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical group COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 31
- 230000004044 response Effects 0.000 description 16
- 238000004590 computer program Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000015654 memory Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000009795 derivation Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 239000000872 buffer Substances 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 230000011664 signaling Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012812 general test Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 239000011541 reaction mixture Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000009469 supplementation Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- 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/523—Motion estimation or motion compensation with sub-pixel accuracy
-
- 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/537—Motion estimation other than block-based
- H04N19/54—Motion estimation other than block-based using feature points or meshes
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开涉及帧内块复制模式下的自适应运动矢量差分辨率的改进。一种用于视频处理的方法,包括:在当前视频块和所述当前视频块的比特流表示之间的转换期间,为运动信息确定允许的运动精度集合,其中,所述当前视频块以帧内块复制(IBC)模式进行编码,其中,所述运动信息包括运动矢量、运动矢量预测和运动矢量差中的至少一个;基于所确定的运动精度集合执行所述转换。
Description
相关申请的交叉引用
根据适用专利法和/或适用于巴黎公约的规则,本申请及时要求2019年 2月27日提交的国际专利申请No.PCT/CN2019/076297号的优先权和权益。上述申请的全部公开作为本申请公开的一部分通过引用并入。
技术领域
本专利文档涉及视频编解码技术、设备和系统。
背景技术
尽管视频压缩有所进步,数字视频在互联网和其他数字通信网络上仍占最大的带宽使用量。随着能够接收和显示视频的连接用户设备的数量增加,预计数字视频使用所需的带宽将继续增长。
发明内容
描述了与数字视频编码有关的、特别是与用于屏幕上内容编码矢量的运动矢量编码有关的设备、系统和方法。所描述的方法可以应用于现有的视频编码标准(例如,通用视频编码)或将要最终确定的标准(通用视频编码)。它也可能适用于未来的视频编码标准或视频编解码器。
在一个代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括确定包括以下各项的组的成员与屏幕上显示的内容相关联: (i)当前片,(ii)当前片组,(iii)当前条带,或(iv)当前图片;以及响应于确定,启用或禁用一个或多个子像素运动矢量参数。
在一个代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括基于当前视频块的比特流表示中的第一指示,确定当前视频块是否允许运动信息的子像素运动精度,其中运动信息包括运动矢量(MV)、运动矢量预测(MVP)和运动矢量差(MVD)中的至少一个;在确定不允许子像素运动精度之后,使用运动信息的非子像素运动精度来执行当前视频块和当前视频块的比特流表示之间的转换。
在一个代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括在当前视频块和当前视频块的比特流表示之间的转换期间,为运动信息确定允许的运动精度集合,其中,当前视频块以帧内块复制(IBC) 模式进行编码,其中,运动信息包括运动矢量、运动矢量预测和运动矢量差中的至少一个;基于所确定的运动精度集合执行转换。
在另一个代表性方面,上述方法以处理器可执行代码的形式体现并存储在计算机可读程序介质中。
在又一个代表性方面,公开了一种视频系统中的装置,其包括处理器和其上具有指令的非暂时性存储器。由处理器执行的指令使处理器实现所公开的方法中的任何一个或多个。
此外,在代表性的方面,所公开的方法中的任何一个或多个是编码器侧的实现。
此外,在代表性的方面,所公开的方法中的任何一个或多个是解码器侧的实现。
在附图、说明书和权利要求书中更详细地描述了所公开技术的上述和其他方面以及特征。
附图说明
图1示出了仿射运动模型的示例。
图2示出了每个子块的仿射运动矢量场的示例。
图3A和3B分别示出了4参数仿射模型和6参数仿射模型。
图4示出了仿射帧间模式的示例运动矢量预测(MVP)。
图5A-5B示出了仿射Merge模式的示例候选。
图6示出了仿射Merge模式的示例候选位置。
图7示出了距离偏移和距离映射之间的映射的示例。
图8示出了最终向量表达(UMVE)搜索过程的示例。
图9示出了UMVE搜索点的示例。
图10示出帧内块复制的示例。
图11示出空域候选的位置的示例。
图12示出经受空域Merge候选的冗余检查的候选对的示例。
图13示出了当前编码树单元(CTU)处理的示例。
图14示出了CTU处理的另一示例。
图15是用于实现本文档中描述的视觉媒体解码或视觉媒体编解码技术的硬件平台的示例的框图。
图16示出了用于视频编码的示例方法的流程图。
图17示出了用于视频处理的示例方法的流程图。
图18示出了用于视频处理的示例方法的流程图。
具体实施方式
1.HEVC中的视频编码
视频编码标准主要通过公知的ITU-T和ISO/IEC标准的发展而发展。 ITU-T制作了H.261和H.263,ISO/IEC制作了MPEG-1和MPEG-4Visual,这两个组织共同制作了H.262/MPEG-2视频和H.264/MPEG-4增强视频编码(AVC)和H.265/HEVC标准。从H.262开始,视频编码标准基于混合视频编码结构,其中利用了时域预测和变换编码。为了探索HEVC之外的未来视频编解码技术,VCEG和MPEG于2015年联合成立了联合视频探索小组 (JVET)。此后,JVET采纳了许多新方法并将其引入到名为“联合探索模型” (JEM)的参考软件中。2018年4月,VCEG(Q6/16)和ISO/IEC JTC1 SC29/WG11(MPEG)之间的联合视频专家团队(JVET)成立,以致力于目标是与HEVC相比其降低50%比特率的多功能视频编码(VVC)标准。可以在以下位置找到最新版本的VVC草案,即多功能视频编码(草案4): http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET- L1001-v2.zip。可以在以下位置找到名为VTM的VVC的最新参考软件: https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-3.0rc1。
2.1HEVC中的帧间模式编码
7.3.6.1常规条带段标头语法
上表表示常规条带段标头语法。在此表中,斜体加粗文本表示用于比特流描述的新语法元素的示例。语法元素在本文中也称为高级语法,其指示是否允许(启用)或不允许(禁用)子像素精度。
motion_vector_resolution_control_idc控制use_integer_mv_flag的存在和推断,use_integer_mv_flag指定用于帧间预测的运动矢量的分辨率。在符合本说明书的版本的比特流中,motion_vector_resolution_control_idc的值不等于3。 motion_vector_resolution_control_idc的值3保留给ITU-T|ISO/IEC将来使用。如果不存在,则将motion_vector_resolution_control_idc的值推断为等于0。
use_integer_mv_flag等于1指定当前条带中用于帧间预测的运动矢量的分辨率为整数。use_integer_mv_flag等于0指定参考当前图片以外的图片的当前条带中用于帧间预测的运动矢量的分辨率是以亮度样点为单位具有四分之一样点精度的分数。如果不存在,则将use_integer_mv_flag的值推断为等于motion_vector_resolution_control_idc。
2.2仿射运动补偿预测
在HEVC中,仅将平移运动模型应用于运动补偿预测(Motion CompensationPrediction,MCP)。在现实世界中,存在多种运动,例如放大/ 缩小、旋转、透视运动和其他不规则运动。在JEM中,应用简化的仿射变换运动补偿预测。如图1所示,块的仿射运动场由两个控制点运动矢量描述。
块的运动矢量场(Motion Vector Field,MVF)由以下等式描述:
其中(v0x,v0y)是左上角控制点的运动矢量,(v1x,v1y)是右上角控制点的运动矢量。
为了进一步简化运动补偿预测,应用基于子块的仿射变换预测。子块尺寸M×N如等式1中推导,其中MvPre是运动矢量分数准确度(在JEM中是 1/16),(v2x,v2y)是根据等式1计算的左下控制点的运动矢量。
在通过等式2推导之后,如果需要,应该向下调整M和N,以使其分别为w和h的除数。
为了推导每个M×N子块的运动矢量,根据等式1计算每个子块的中心样点的运动矢量,如图2所示,并取整到1/16分数准确度。
在MCP之后,对每个子块的高准确度运动矢量进行取整,并将其以与正常运动矢量相同的准确度保存。
2.2.1AF_INTER模式
在JEM中,存在两种仿射运动模式:AF_INTER模式和AF_MERGE模式。对于宽度和高度都大于8的CU,可以应用AF_INTER模式。在比特流中用信号通知CU级的仿射标志以指示是否使用AF_INTER模式。在该模式中,使用相邻块构造具有运动矢量对{(v0,v1)|v0={vA,vB,vc},v1={vD,vE}}的候选列表。如图4所示,从块A、B或C的运动矢量中选择v0。根据参考列表以及用于相邻块的参考的图片顺序计数(POC)、用于当前CU的参考的 POC和当前CU的POC之间的关系来缩放来自相邻块的运动矢量。从相邻块 D和E中选择v1的方法是类似的。如果候选列表的数量小于2,则由通过复制每个AMVP候选而组成的运动矢量对来填充列表。当候选列表大于2时,首先根据相邻运动矢量的一致性(候选对中的两个运动矢量的相似性)对候选进行排序,并且仅保留前两个候选。用RD成本校验来确定将哪个运动矢量对候选选择为当前CU的控制点运动矢量预测(Control Point Motion Vector Prediction,CPMVP)。并且在比特流中用信号通知指示候选列表中的CPMVP 的位置的索引。在确定当前仿射CU的CPMVP之后,应用仿射运动估计并找到控制点运动矢量(Control Point Motion Vector,CPMV)。然后在比特流中用信号通知CPMV和CPMVP的差。
在AF_INTER模式下,当使用4/6参数仿射模式时,可以使用2/3个控制点,因此,需要为这些控制点编码2/3MVD,如图3A所示。在JVET-K0337 中,提出推导MV,如下所示,即,从mvd0预测mvd1和mvd2。
其中mvdi和mvi分别是左上像素(i=0)、右上像素(i=1)或左下像素(i=2)的预测运动矢量、运动矢量差和运动矢量,如图3B所示。两个运动矢量(例如mvA(xA,yA)和mvB(xB,yB))的加法分别等于两个分量的总和,即newMV=mvA+mvB,且newMV的两个分量分别被设置为 (xA +xB)和(yA+yB)。
2.2.2.AF_INTER模式下的快速仿射ME算法
在仿射模式下,需要共同确定2个或3个控制点的MV。联合直接搜索多个MV在计算上很复杂。提出了快速仿射ME算法,并将其应用于VTM/ BMS中。
针对4参数仿射模型描述了快速仿射ME算法,该思想可以扩展到6参数仿射模型。
将(a–1)替换为a’,然后可以将运动矢量重写为:
假设两个控制点(0,0)和(0,w)的运动矢量是已知的,则从等式(5) 可以得出仿射参数如下:
运动向量可以向量形式重写为:
其中
P=(x,y)是像素位置。
在编码器上,AF_INTER的MVD迭代得出。将MVi(P)表示为在第i次迭代中针对位置P导出的MV,dMVC i表示为在第i次迭代中为MVC更新的增量。然后在第(i+1)次迭代中,
将Picref表示为参考图片,将Piccur表示为当前图片,并表示Q=P+ MVi(P)。假设将MSE用作匹配标准,则可以编写以下表达式:
假设将MVD导出过程进行了n次迭代,则最终MVD的计算如下:
2.2.3.AF_MERGE模式
当以仿射Merge(AF_MERGE)模式应用CU时,它从有效的邻居重构块中获得以仿射模式编码的第一块。并且候选块的选择顺序是从左、上、右上、左下到左上,如图5A所示。如果邻居左下块A以仿射模式被编码,如图5B所示,则导出包含块A的CU的左上角、右上角和左下角的运动矢量 v2、v3和v4。根据v2、v3和v4计算当前CU左上角的运动矢量v0。其次,计算当前CU右上方的运动矢量v1。
在推导当前CU的CPMV v0和v1之后,根据简化的仿射运动模型等式 (1),生成当前CU的MVF。为了识别当前CU是否以AF_MERGE模式编码,当至少一个邻近块以仿射模式编码时,在比特流中用信令通知仿射标志。
在一些实施例中,仿射Merge候选列表通过以下步骤构建:
1)插入继承的仿射候选
继承的仿射候选是指从其有效的邻居仿射编码块的仿射运动模型中导出的候选。如图6所示,在共同的基础上,候选位置的扫描顺序是:A1,B1, B0,A0和B2。
2)插入构建的仿射候选
如果仿射Merge候选列表中的候选数量小于MaxNumAffineCand(在此贡献中设置为5),则将构建的仿射候选插入到候选列表中。构建仿射候选是指通过组合每个控制点的邻居运动信息来构建的候选。
首先,从图6所示的指定的空域邻居和时域邻居导出控制点的运动信息。 CPk(k=1,2,3,4)表示第k个控制点。A0,A1,A2,B0,B1,B2和B3是用于预测CPk(k=1、2、3)的空域位置;T是用于预测CP4的时域位置。
CP1,CP2,CP3和CP4的坐标分别是(0,0)、(W,0)、(H,0)和(W, H),其中W和H是当前块的宽度和高度。
根据以下优先级顺序获得每个控制点的运动信息:
对于CP1,检查优先级为B2→B3→A2。如果B2可用,则使用B2。否则,如果B2不可用,则使用B3。如果B2和B3都不可用,则使用A2。如果这三个候选都不可用,则无法获得CP1的运动信息。
对于CP2,检查优先级为B1→B0;
对于CP3,检查优先级为A1→A0;
对于CP4,使用T。
其次,使用控制点的组合来构建仿射Merge候选。
需要三个控制点的运动信息来构建6参数仿射候选。可以从以下四个组合({CP1,CP2,CP4},{CP1,CP2,CP3},{CP2,CP3,CP4},{CP1,CP3, CP4})中的一个中选择三个控制点。组合{CP1,CP2,CP3},{CP2,CP3, CP4},{CP1,CP3,CP4}将转换为由左上、右上和左下控制点表示的6参数运动模型。
需要两个控制点的运动信息来构建4参数仿射候选。可以从以下六个组合({CP1,CP4},{CP2,CP3},{CP1,CP2},{CP2,CP4},{CP1,CP3},{CP3, CP4})中的一个中选择两个控制点。组合{CP1,CP4},{CP2,CP3},{CP2, CP4},{CP1,CP3},{CP3,CP4}将转换为由左上和右上控制点表示的4参数运动模型点。
按照以下顺序将构建的仿射候选的组合插入到候选列表中:
{CP1,CP2,CP3},{CP1,CP2,CP4},{CP1,CP3,CP4},{CP2,CP3, CP4},{CP1,CP2},{CP1,CP3},{CP2,CP3},{CP1,CP4},{CP2,CP4}, {CP3,CP4}
对于组合的参考列表X(X为0或1),选择控制点中使用率最高的参考索引作为列表X的参考索引,并且将缩放指向差异参考图片的运动矢量。
在导出候选之后,执行完整修剪过程以检查是否已将相同候选插入到列表中。如果存在相同的候选,则丢弃导出的候选。
3)具有零运动矢量的填充
如果仿射Merge候选列表中的候选数量小于5,则将具有零参考索引的零运动矢量插入候选列表中,直到列表已满。
2.3具有预测偏移的仿射Merge模式
在一些实施例中,UMVE被扩展到仿射Merge模式。在本文档中,术语“UMVE”和“仿射模式”可互换使用。所提出的方法选择第一可用的仿射Merge 候选作为基础预测器。然后,它将运动矢量偏移从基础预测器应用于每个控制点的运动矢量值。如果没有可用的仿射Merge候选,则不会使用所提出的方法。
所选择的基础预测器的帧间预测方向以及每个方向的参考索引均保持不变。
在当前实现中,假设当前块的仿射模型是4参数模型,仅需要导出2个控制点。因此,仅基础预测器的前两个控制点将用作控制点预测器。
对于每个控制点,zero_MVD标志用于指示当前块的控制点是否具有与对应的控制点预测器相同的MV值。如果zero_MVD标志为真,则该控制点不需要其他信令。否则,为控制点用信令通知距离索引和偏移方向索引。
使用尺寸为5的距离偏移表,如下表所示。用信令通知距离索引以指示使用哪个距离偏移。距离索引和距离偏移值的映射在图7中示出。
表1.距离偏移表
方向索引可以表示四个方向,如下所示,其中只有x或y方向可能具有MV差,但在两个方向上却没有MV差。
如果帧间预测是单向的,则将信令通知的距离偏移应用于每个控制点预测器的偏移方向。结果将是每个控制点的MV值。
例如,当基础预测器是单向时,控制点的运动矢量值为MVP(vpx,vpy)时。当用信令通知距离偏移和方向索引后,将按以下方式计算当前块对应控制点的运动矢量。
MV(vx,vy)=MVP(vpx,vpy)+MV(x-dir-factor*distance-offset,y-dir-factor*distance-offset)
如果帧间预测是双向的,则对控制点预测器的L0运动矢量在用信令通知的偏移方向上应用用信令通知的距离偏移;并且将相反方向的相同距离偏移应用于控制点预测器的L1运动矢量。结果将是每个帧间预测方向上每个控制点的MV值。
例如,当基础预测器是单向时,L0上的控制点的运动矢量值为MVPL0 (v0px,v0py),而L1上的控制点的运动矢量为MVPL1(v1px,v1py)。用信令通知距离偏移和方向索引后,将按以下方式计算当前块对应控制点的运动矢量。
MVL0(v0x,v0y)=MVPL0(v0px,v0py)+MV(x-dir-factor*distance-offset,y-dir-factor*distance-offset)
MVL1(v0x,v0y)=MVPL1(v0px,v0py)+MV(x-dir-factor*distance-offset,y-dir-factor*distance-offset)
2.4最终运动矢量表达
在一些实施例中,提出了最终运动矢量表达(UMVE)。UMVE可通过提出的运动矢量表达方法用于跳过或Merge模式。
UMVE重复使用Merge候选,与在VVC中的常规Merge候选列表中包含的那些相同。在Merge候选中,可以选择基础候选,并通过提出的运动矢量表达方法进一步扩展候选。
UMVE提供新运动矢量差(MVD)表示方法,其中使用起点、运动幅度和运动方向来表示MVD。
所提出的技术按原样使用Merge候选列表。但是,只有默认合并类型 (MRG_TYPE_DEFAULT_N)的候选才会考虑UMVE的扩展。
基本候选索引(IDX)定义起点。基本候选索引表示列表中候选的最佳候选,如下所示。
表2.基础候选IDX
如果基本候选的数量等于1,则不用信令通知基本候选索引的信号。
距离索引是运动幅度信息。距离索引表示距起点信息的预定义距离。预定义的距离如下:
表3.距离IDX
方向索引表示MVD相对于起点的方向。方向索引可以代表四个方向,如下所示:
表4.方向IDX
方向索引 | 00 | 01 | 10 | 11 |
X轴 | + | - | N/A | N/A |
Y轴 | N/A | N/A | + | - |
在发送跳过标志或Merge标志之后立即用信令通知UMVE标志。如果跳过或Merge标志为真(true),则解析UMVE标志。如果UMVE标志等于 1,则解析UMVE语法。但是,如果不是1,则分析AFFINE标志。如果AFFINE 标志等于1,则为AFFINE模式;但是,如果不等于1,则为VTM的跳过 /Merge模式解析跳过/Merge索引。
由于UMVE候选,不需要额外的行缓冲器。因为软件的跳过/Merge候选直接用作基本候选。使用输入的UMVE索引,在运动补偿之前立即确定MV 的补充。无需为此保留长行缓冲区。在当前的通用测试条件下,可以将Merge 候选列表中的第一或第二Merge候选选作基础候选。
UMVE也被称为Merge MVD(MMVD)。
图8示出了最终向量表达(UMVE)搜索过程的示例。
图9示出了UMVE搜索点的示例。
2.5帧内块复制
HEVC屏幕内容编码扩展(HEVC-SCC)和当前VVC测试模型(VTM- 3.0)已采用了帧内块复制(IBC),又称当前图片参考。IBC将运动补偿的概念从帧间编码扩展到了帧内编码。如图10所示,当应用IBC时,当前块由同一图片中的参考块预测。在对当前块进行编码或解码之前,已经重构了参考块中的样点。尽管IBC对于大多数相机捕获的序列而言效率不高,但它显示了屏幕内容的显着编码增益。原因是屏幕内容图片中有很多重复的模式,诸如图标和文本字符。IBC可以有效地消除这些重复模式之间的冗余。在HEVC- SCC中,如果选择当前图片作为其参考图片,则帧间编码的编码单元(CU) 可以应用IBC。在这种情况下,MV被重命名为块向量(BV),并且BV始终具有整数像素精度。为了与主配置文件HEVC兼容,当前图片在解码图片缓冲区(Decoded Picture Buffer,DPB)中被标记为“长期”参考图片。应当注意,类似地,在多视图/3D视频编码标准中,视图间参考图片也被标记为“长期”参考图片。
在BV找到其参考块之后,可以通过复制参考块来生成预测。可以通过从原始信号中减去参考像素来获得残差。然后可以像在其他编码模式中一样应用变换和量化。
然而,当参考块在图片之外、或与当前块重叠、或在重构区域之外、或在受某些约束限制的有效区域之外时,未定义部分或全部像素值。基本上,有两种解决此问题的解决方案。一种是禁止这种情况,例如符合比特流。另一种是对那些未定义的像素值应用填充。以下子节详细描述了解决方案。
2.6HEVC屏幕内容编码扩展中的IBC
在HEVC的屏幕内容编码扩展中,当块使用当前图片作为参考时,应确保整个参考块在可用的重构区域内,如说明书中的以下文本所示:
变量offsetX和offsetY的推导如下:
offsetX=(ChromaArrayType==0)?0:(mvCLX[0]&0x7?2:0) (8-104)
offsetY=(ChromaArrayType==0)?0:(mvCLX[1]&0x7?2:0) (8-105)
这是比特流一致性的要求,即当参考图片是当前图片时,亮度运动矢量 mvLX应当遵循以下限制:
-当第6.4.1节中规定的z扫描顺序块可用性的推导过程为将设置为(xCb, yCb)的(xCuee,yCurr)、将设置为等于 (xPb+(mvLX[0]>>2)-offsetX,yPb+(mvLX[1]>>2)-offsetY)的相邻亮度位置 (xNbY,yNbY)作为输入时,输出应当为真(TRUE)。
-当第6.4.1节中规定的z扫描顺序块可用性的推导过程为将设置为(xCb, yCb)的(xCuee,yCurr)、将设置为等于 (xPb+(mvLX[0]>>2)+nPbW-1+offsetX,yPb+(mvLX[1]>>2)+nPbH-1+offsetY) 的相邻亮度位置(xNbY,yNbY)作为输入时,输出应当为真(TRUE)
-以下条件中的一个或两者应当为真:
-(mvLX[0]>>2)+nPbW+xB1+offsetX的值小于或等于0。
-(mvLX[1]>>2)+nPbH+yB1+offsetY的值小于或等于0。
-以下条件应当为真:
(xPb+(mvLX[0]>>2)+nPbSw-1+offsetX)CtbSizeY-xCb/CtbSizeY<=yCb/CtbSizeY-(yPb+(mvLX[1]>>2)+nPbSh-1+offsetY)CtbSizeY (8-106)
因此,将不会发生参考块与当前块重叠或参考块在图片之外的情况。无需填充参考或预测块。
2.7.VVC测试模型中的IBC
2.7.1.IBC Merge模式
在IBC Merge模式中,从比特流中解析指向IBC Merge候选列表中的条目的索引。IBC Merge列表的构造可以根据以下步骤顺序进行总结:
·步骤1:推导空域候选
·步骤2:插入HMVP候选
·步骤3.插入成对平均候选
在空域Merge候选的推导中,在位于图11描绘的位置的候选当中选择最多四个Merge候选。推导的顺序是A1、B1、B0、A0和B2。仅当位置A1、 B1、B0、A0的任何PU不可用(例如,因为它属于另一条带或区块)或者没有用IBC模式进被编码时,才考虑位置B2。在添加位置A1处的候选之后,对剩余候选的插入进行冗余校验,其确保具有相同运动信息的候选被排除在列表之外,使得编码效率提高。为了降低计算复杂度,在所提到的冗余校验中并未考虑所有可能的候选对。相反,仅考虑图12中用箭头连接的对,并且仅在用于冗余校验的对应候选具有不一样的运动信息时,才将候选添加到列表。
在插入空域候选之后,如果IBC Merge列表尺寸仍小于最大IBC Merge 列表尺寸,则可以插入来自HMVP表的IBC候选。插入HMVP候选时执行冗余检查。
最后,将成对平均候选插入IBC Merge列表。
当由Merge候选标识的参考块在图片之外、或者与当前块重叠、或者在重构区域之外、或者在受某些约束限制的有效区域之外时,Merge候选被称为无效Merge候选。
注意,可以将无效的Merge候选插入到IBC Merge列表中。
2.7.2IBC AMVP模式
在IBC AMVP模式下,指向IBC AMVP列表中条目的AMVP索引是从比特流中解析出来的。IBC AMVP列表的构造可以根据以下步骤顺序进行总结:
·步骤1:推导空域候选
o检查A0、A1,直到找到可用的候选。
o检查B0、B1、B2,直到找到可用的候选。
·步骤2:插入HMVP候选
·步骤3:插入零候选
在插入空域候选之后,如果IBC AMVP列表尺寸仍然小于最大IBC AMVP列表尺寸,则可以插入来自HMVP表的IBC候选。
最后,将零候选插入到IBC AMVP列表中。
2.7.3IBC中允许的参考区域
CPR块尺寸被限制为不大于64x64亮度样点。
参考存储器缓冲器中的每个64x64块被视为整体,当已经用来自当前 CTU的重构样点更新了64x64块的某些部分时,不能使用整个64x64块中来自左CTU的参考样点,如图13和14所示。更具体,根据当前编码块相对于当前CTU的位置,适用以下规定:
·如果当前块落在当前CTU的左上64x64块中,则除了当前CTU中已经重构的样点外,它还可以使用CPR模式引用左CTU的右下64x64块中的参考样点。当前块还可以使用CPR模式引用左CTU的左下64x64块中的参考样点和左CTU的右上64x64块中的参考样点。
·如果当前块落在当前CTU的右上64x64块中,则除了当前CTU中已重构的样点外,如果尚未重构相对于当前CTU的亮度位置(0,64),则当前块还可以使用CPR模式引用左CTU的左下64x64块和右下64x64块中的参考样点;否则,当前块也可以引用左CTU的右下64x64块中的参考样点。
·如果当前块落在当前CTU的左下64x64块中,则除了当前CTU中已经重构的样点外,如果尚未重构相对于当前CTU的亮度位置(64,0),则当前块还可以使用CPR模式引用左CTU的右上64x64块和右下64x64块中的参考样点。否则,当前块也可以使用CPR模式引用左CTU的右下64x64块中的参考样点。
·如果当前块落在当前CTU的右下64x64块中,则只能引用CPR模式引用当前CTU中已经重构的样点。
2.8自适应运动矢量差分辨率
在HEVC中,当条带标头中的use_integer_mv_flag等于0时,以四分之一的亮度样点为单位用信号通知(在PU的运动矢量与预测运动矢量之间的) 运动矢量差(MVD)。在VVC测试模型(VTM)中,引入了局部自适应运动矢量分辨率(AMVR),其中运动矢量和运动矢量差具有相同的精度,并且每个帧间编码的编码单元可以选择利用一组允许的精度中的哪个分辨率。
2.8.1用于平移帧间模式的AMVR
在VTM中,可以以四分之一亮度样点、整数亮度样点或四个亮度样点为单位对MVD进行编码。MVD分辨率被控制在编码单位(CU)级别,并且对具有至少一个非零MVD分量的每个CU有条件地用信号通知MVD分辨率标志。
对于具有至少一个非零MVD分量的CU,用信号通知第一标志以指示在 CU中是否使用四分之一亮度样点MV精度。当第一标志(等于1)指示未使用四分之一亮度样点MV精度时,会用信号通知另一标志,以指示是使用整数亮度样点MV精度还是使用四个亮度样点MV精度。
当CU的第一MVD分辨率标志为零或未为CU编码时(意味着CU中的所有MVD均为零),将四分之一亮度样点MV分辨率用于CU。当CU使用整数亮度样点MV精度或四个亮度样点MV精度时,将CU的AMVP候选列表中的MVP舍入到相应的精度。
在IBC帧间模式下,禁用1/4像素精度,并且仅允许1像素和4像素精度。
2.8.2用于仿射帧间模式的AMVR
AMVR被扩展到仿射帧间模式,并且使用了MV精度设置{1/16,1/4,1} 像素。如果为仿射编码的块选择了一个MV精度,则像AMVR一样,将MVP 候选和MVD都舍入为所选的MV精度。
在编码器侧,可以为仿射编码的帧间块选择三个MV精度之一。在VTM 中,将在一个循环中一起检查AMVP模式和仿射帧间模式。对于1/4像素MV 精度,将同时检查AMVP模式和仿射帧间模式。但是,对于1像素MV精度和4像素MV精度,仅检查AMVP模式。将AMVR扩展到仿射帧间模式后,将使用1/16像素MV精度的仿射帧间模式与使用1像素MV精度的AMVP 模式一起进行检查,并且将使用1像素MV精度的仿射帧间模式与使用4像素MV精度的AMVP模式一起进行检查。
以仿射帧间模式测试所有三个MV/MVD精度将显着增加编码复杂度。为了解决此问题,使用了以下快速算法:
1.如果在检查了仿射Merge/跳过模式、Merge/跳过模式、1/4像素MV精度AMVP模式和仿射帧间模式的速率失真成本之后,未选择仿射帧间模式,则不检查1/16像素MV精度和1像素MV精度仿射帧间模式。
2.在1/4像素MV精度仿射帧间模式下获得的仿射参数被重新用作1/16 像素和1像素MV精度仿射帧间模式的起始搜索点。
2.8.3语法和语义
7.3.2.1序列参数集RBST语法
7.3.4.5编码单位语法
sps_amvr_enabled_flag等于1指定在运动矢量编码中使用自适应运动矢量差分辨率。amvr_enabled_flag等于0指定在运动矢量编码中未使用自适应运动矢量差分辨率。
sps_affine_amvr_enabled_flag等于1指定在仿射帧间模式的运动矢量编码中使用自适应运动矢量差分辨率。sps_affine_amvr_enabled_flag等于0指定在仿射帧间模式的运动矢量编码中不使用自适应运动矢量差分辨率。
amvr_flag[x0][y0]指定运动矢量差的分辨率。数组索引x0、y0指定所考虑的编码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。 amvr_flag[x0][y0]等于0指定运动矢量差的分辨率为亮度样点的1/4。 amvr_flag[x0][y0]等于1指定运动矢量差的分辨率进一步由 amvr_precision_flag[x0][y0]指定。
当amvr_flag[x0][y0]不存在时,其推断如下:
–如果sps_cpr_enabled_flag等于1,则推断amvr_flag[x0][y0]等于1。
–否则(sps_cpr_enabled_flag等于0),推断amvr_flag[x0][y0]等于0。
amvr_precision_flag[x0][y0]等于0指定如果inter_affine_flag[x0][y0] 等于0,则运动矢量差的分辨率为一个整数亮度样点,否则为亮度样点的1/16。 amvr_precision_flag[x0][y0]等于1指定如果inter_affine_flag[x0][y0]等于0,则运动矢量差的分辨率为四个亮度样点,否则为一个整数亮度样点。数组索引x0,y0指定所考虑的编码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
当amvr_precision_flag[x0][y0]不存在时,将其推断为等于0。
运动矢量差被修改如下:
–如果inter_affine_flag[x0][y0]等于0,则得出变量MvShift,并且变量MvdL0[x0][y0][0]、MvdL0[x0][y0][1]、MvdL1[x0][y0][0]、MvdL1[x0] [y0][1]修改如下:
–否则(inter_affine_flag[x0][y0]等于1),得出变量MvShift,并且变量MvdCpL0[x0][y0][0][0]、MvdCpL0[x0][y0][0][1]、 MvdCpL0[x0][y0][1][0]、MvdCpL0[x0][y0][1][1]、 MvdCpL0[x0][y0][2][0]和MvdCpL0[x0][y0][2][1]修改如下:
3.现有AMVR实施方式的缺点
当前的AMVR设计中用于编码屏幕内容存在一些潜在的问题:
1)尽管选择子像素的机会相对较低,但在正常帧间模式下仍允许子像素运动矢量。
2)对于帧间模式,允许3MV/MVD分辨率,而对于帧内块复制/当前图片引用模式,仅允许2MV/MVD分辨率,这可能不是最佳的。
4.改进的AMVR方法的示例实施例
为了解决上述问题,在本文中描述了几种方法来介绍用于屏幕内容编码的修改的自适应运动矢量分辨率(AMVR)设计。在下文中,仅可以将当前图片用作参考图片的帧间图片被称为唯CPR帧间图片。
以下描述的详细实施例应被视为示例以解释一般概念。这些实施例不应以狭义的方式解释。此外,这些实施例可以以任何方式组合。
1.当当前片/片组/条带/图片属于屏幕内容时,可以禁用子像素运动矢量(MV)和/或运动矢量预测器(MVP)和/或运动矢量差(MVD)。
a.可替代地,此外,可以在片/片组/条带/图片/序列/视频参数集或标头中用信号通知其是否为屏幕内容。
b.可替代地,此外,是否禁用或启用子像素MV和/或MVP和/ 或MVD可以取决于在MMVD/UMVE模式中用于指示启用/禁用分数 MVD精度的语法。
c.可替代地,此外,可以在片/片组/条带/图片/序列/视频参数集或标头中用信号通知是否禁用或启用子像素MV和/或MVP和/或 MVD。
d.当当前片/片组/条带/图片属于屏幕内容时,可以将仿射模式中每个子块/块的运动矢量舍入为整数像素精度。
2.在非仿射帧间模式中,当前视频/序列/图片/片组/条带所允许的 MV和/或MVP和/或MVD精度的集合可以取决于在VPS/SPS/PPS/片组标头/条带标头中用信号通知的一个标志。
a.在一个示例中,可以在VPS/SPS/PPS/片组标头/条带标头中用信号通知标志,以指示当前视频/序列/图片/片组/条带是否是屏幕内容。
b.在一个示例中,可以使用指示当前视频/序列/图片/片组/条带在MMVD中是允许或不允许分数距离(或分数MVD)的标志(例如,如P1809117501H的条目5中所述的标志)。
c.在一个示例中,如果标志为真(或假),则可以使用{1/4,1, 4}像素MV和/或MVP和/或MVD精度。
d.在一个示例中,如果标志为假(或真),则可以使用{1,2, 4}像素MV和/或MVP和/或MVD精度。
i.在一个示例中,可以使用{1,2,8}像素MV和/或MVP 和/或MVD精度
ii.在一个示例中,可以使用{1,2,16}像素MV和/或 MVP和/或MVD精度
iii.在一个示例中,可以使用{1,4,8}像素MV和/或 MVP和/或MVD精度。
iv.在一个示例中,可以使用{1,4,16}像素MV和/或 MVP和/或MVD精度。
v.在一个示例中,可以使用{1,8,16}像素MV和/或MVP 和/或MVD精度。
vi.在一个示例中,可以使用{1,2}像素MV和/或MVP和/ 或MVD精度。
vii.在一个示例中,可以使用{1,4}像素MV和/或MVP和 /或MVD精度。
viii.在一个示例中,可以使用{1,8}像素MV和/或MVP 和/或MVD精度。
ix.在一个示例中,可以使用{1,16}像素MV和/或MVP和 /或MVD精度。
3.在仿射帧间模式中,当前视频/序列/图片/片组/条带标头所允许的 MV和/或MVP和/或MVD精度的集合可以取决于在VPS/SPS/PPS/片组标头/条带中用信号通知的一个标志。
a.在一个示例中,可以在VPS/SPS/PPS/序列标头/图片标头/ 片组标头/条带标头中用信号通知标志,以指示当前视频/序列/图片/片组/条带是否为屏幕内容。
b.在一个示例中,可以使用指示对于当前视频/序列/图片/片/条带在MMVD中允许或不允许分数距离(或分数MVD)的标志(如 P1809117501H的项目符号5中所述)。
c.在一个示例中,如果标志为真(或假),则可以使用{1/4, 1,1/16}像素MV和/或MVP和/或MVD精度。
d。在一个示例中,如果标志为假(或真),则可以使用{1,4,1 /4}像素MV和/或MVP和/或MVD精度。
i.在一个示例中,可以使用{1/2,2,1/8}像素MV和/或MVP和/或MVD精度。
ii.在一个示例中,可以使用{2,8,1/2}像素MV和/或 MVP和/或MVD精度。
iii.在一个示例中,可以使用{1,2,4}像素MV和/或MVP 和/或MVD精度。
iv.在一个示例中,可以使用{1,2,8}像素MV和/或MVP 和/或MVD精度。
v.在一个示例中,可以使用{1,2,16}像素MV和/或MVP 和/或MVD精度。
vi.在一个示例中,可以使用{1,4,8}像素MV和/或MVP 和/或MVD精度。
vii.在一个示例中,可以使用{1,4,16}像素MV和/或 MVP和/或MVD精度。
viii.在一个示例中,可以使用{1,8,16}像素MV和/或 MVP和/或MVD精度。
ix.在一个示例中,可以使用{1,1/4}像素MV和/或MVP 和/或MVD精度。
x.在一个示例中,可以使用{1,1/2}像素MV和/或MVP 和/或MVD精度。
xi.在一个示例中,可以使用{1,1/8}像素MV和/或MVP 和/或MVD精度。
xii.在一个示例中,可以使用{1,1/16}像素MV和/或MVP 和/或MVD精度。
xiii.在一个示例中,可以使用{1,2}像素MV和/或MVP 和/或MVD精度。
xiv.在一个示例中,可以使用{1,4}像素MV和/或MVP和 /或MVD精度。
xv.在一个示例中,可以使用{1,8}像素MV和/或MVP和/ 或MVD精度。
xvi.在一个示例中,可以使用{1,16}像素MV和/或MVP 和/或MVD精度。
4.对于IBC模式,建议使用使用其他两种允许的MVD精度,而不是使用{1,4}像素MV和MVD精度。
a.在一个示例中,可以在IBC模式中使用{1,2}像素MV和/或 MVP和/或MVD精度。
b.在一个示例中,可以在IBC模式中使用{1,8}像素MV和/或 MVP和/或MVD精度。
c.在一个示例中,可以在IBC模式中使用{1,16}像素MV和/ 或MVP和/或MVD精度。
5.对于IBC模式,可以使用与正常帧间模式相同数量的允许的MV 和/或MVP和/或MVD分辨率。
a.如在正常帧间模式的当前AMVR中一样,可以使用三个MV 和/或MVP和/或MVD精度。
i.在一个示例中,可以在IBC模式中使用{1,2,4}像素 MV和/或MVP和/或MVD精度。
ii.在一个示例中,可以在IBC模式中使用{1,2,8}像素 MV和/或MVP和/或MVD精度。
iii.在一个示例中,可以在IBC模式中使用{1,2,16}像素 MV和/或MVP和/或MVD精度。
iv.在一个示例中,可以在IBC模式中使用{1,4,8}像素 MV和/或MVP和/或MVD精度。
v.在一个示例中,可以在IBC模式中使用{1,4,16}像素 MV和/或MVP和/或MVD精度。
vi.在一个示例中,可以在IBC模式中使用{1,8,16}像素 MV和/或MVP和/或MVD精度。
b.可替代地,此外,对于IBC模式,可以使用与诸如上述普通帧间模式相同的允许的MV和/或MVP和/或MVD分辨率集合。
6.建议规范中的amvr_flag的语义取决于某些高级语法,诸如如上所述的高级语法。
a.在一个示例中,amvr_flag等于0指定当高级语法指示允许子像素或分数精度时,运动矢量差的分辨率为亮度样点的1/4;而 amvr_flag等于0指定当高级语法指示不允许子像素或分数精度时,运动矢量差的分辨率为M亮度样点。M是整数值。
i.在一个示例中,可以将M可以设置为1、2或4或8或 16。
ii.在一个示例中,可以在VPS/SPS/PPS/序列标头/图片标头/片组标头/条带标头中预定义或用信号通知M。
iii.在一个示例中,可以诸如基于6.a中提到的高级语法有条件地用信号通知M。
iv.在一个示例中,M可以取决于编码模式,诸如正常帧间模式和/或仿射帧间模式和/或IBC模式。
7.建议规范中的amvr_precision_flag的语义取决于某些高级语法,诸如如上所述的高级语法。
a.在一个示例中,当高级语法指示允许子像素或分数精度时,当前语义保持不变。然而,当高级语法指示不允许子像素或分数精度时,可以应用以下内容:
i.amvr_precision_flag等于0指定如果inter_affine_flag等于 0,则运动矢量差的分辨率为L0亮度样点,否则为L1亮度样点。amvr_precision_flag等于1指定如果inter_affine_flag等于 0,则运动矢量差的分辨率为L2亮度样点,否则为L3亮度样点。
b.在一个示例中,可以将L0、L1、L2、L3中的任何一个设置为1或2或4或8或16或1/16、1/4、1/2。
c.在一个示例中,可以在VPS/SPS/PPS/序列标头/图片标头/ 片组标头/条带标头中预定义或用信号通知L0、L1、L2、L3中的任何一个。
d.在一个示例中,可以诸如基于7.a中提到的高级语法有条件地发用信号通知L0、L1、L2、L3中的任何一个。
e.在一个示例中,L0、L1、L2、L3中的任何一个都可以取决于编码模式,诸如正常帧间模式和/或仿射帧间模式和/或IBC模式。
8.在一个示例中,对于屏幕内容和非屏幕内容,在非仿射或/和仿射交互模式中允许的MV和/或MVP和/或MVD精度集合可以是相同的,然而,amvr_flag或/和amvr_precision_flag的语义可以取决于在VPS/ SPS/PPS/片组标头/条带标头中用信号通知的一个标志,诸如项目符号 1中所述的标志。
a.在一个示例中,如果这样的标志指示当前视频/序列/图片/片组 /条带不是屏幕内容,则amvr_flag或/和amvr_precision_flag的语义保持不变(即,与VVC相同)。
b.在一个示例中,如果这样的标志指示当前视频/序列/图片/片组/条带是屏幕内容,则amvr_flag等于0指定运动矢量差的分辨率为 M亮度样点。
i.在一个示例中,可以将M设置为等于1。
ii.在一个示例中,可以将M设置为等于2或4或8或16 或1/16或1/4或1/2。
iii.在一个示例中,可以在VPS/SPS/PPS/序列标头/图片标头/片组标头/条带标头中预定义或用信号通知M。
iv.在一个示例中,M可以取决于编码模式,诸如正常帧间模式和/或仿射帧间模式和/或IBC模式。
1.例如,对于普通帧间模式和IBC模式,可以将M设置为等于1,对于仿射帧间模式,可以将M设置为等于1/4。
2.例如,对于普通帧间模式、IBC模式和仿射帧间模式,可以将M设置为等于1。
c.在一个示例中,如果这样的标志指示当前视频/序列/图片/片组 /条带是屏幕内容,则amvr_precision_flag等于0指定如果 inter_affine_flag等于0,则运动矢量差的分辨率为L0亮度样点,否则为L1亮度样点。amvr_precision_flag等于1指定如果 inter_affine_flag等于0,则运动矢量差的分辨率为L2亮度样点,否则为L3亮度样点。
i.在一个示例中,可以将L0设置为等于1/4,可以将L1设置为等于1/4,可以将L2设置为等于4,并且可以将L3设置为等于1/16。
ii.在一个示例中,可以将L0、L1、L2、L3中的任何一个设置为1或2或4或8或16或1/16、1/4、1/2。
iii.在一个示例中,可以在VPS/SPS/PPS/序列标头/图片标头/片组标头/条带标头中预定义或用信号通知L0、L1、L2、 L3中的任何一个。
iv.在一个示例中,L0、L1、L2、L3中的任何一个都可以取决于编码模式,诸如正常帧间模式和/或仿射帧间模式和/或
IBC模式。
5.所公开技术的示例实施方式
图15是视频处理装置1500的框图。设备1500可以用于实现本文描述的一种或多种方法。装置1500可以体现在智能手机,平板电脑,计算机,物联网(IoT)接收器等中。装置1500可以包括一个或多个处理器1502、一个或多个存储器1504和视频处理硬件1506。(一个或多个)处理器1502可以被配置为实现在本文档中描述的一种或多种方法。(一个或多个)存储器1504可以用于存储用于实现本文描述的方法和技术的数据和代码。视频处理硬件1506可以用于在硬件电路中实现本文档中描述的一些技术,并且可以部分或完全是处理器1502(例如图形处理器核心GPU或其他信号处理电路)的一部分。
在本文档中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,可以在从视频的像素表示到相应的比特流表示的转换期间应用视频压缩算法,反之亦然。如语法所定义,当前视频块的比特流表示可以例如对应于位在比特流内的不同位置中并置或散布的比特。例如,可以根据变换和编码的误差残差值并且还使用标头中的比特和比特流中的其他字段来对宏块进行编码。
应当理解,已经公开了几种技术,通过允许使用本文档中公开的技术,几种技术将有益于结合在诸如智能手机、膝上型计算机、台式机和类似设备之类的视频处理设备内的视频编码器和解码器实施例。
图16是用于视频处理的示例方法1600的流程图。方法1600包括,在 1610处,确定包括以下各项的组的成员与屏幕上显示的内容相关联:(i)当前片,(ii)当前片组,(iii)当前条带,或(iv)当前图片。方法1600还包括,在1620处,响应于确定,启用或禁用一个或多个子像素运动矢量参数。
图17是用于视频处理的示例方法1600的流程图。方法1700包括,在 1710处,基于当前视频块的比特流表示中的第一指示,确定当前视频块是否允许运动信息的子像素运动精度,其中运动信息包括运动矢量(MV)、运动矢量预测(MVP)和运动矢量差(MVD)中的至少一个。方法1700还包括在1720处,在确定不允许子像素运动精度之后,使用运动信息的非子像素运动精度来执行当前视频块和当前视频块的比特流表示之间的转换。
图18是用于视频处理的示例方法1600的流程图。方法1800包括,在 1810处,在当前视频块和当前视频块的比特流表示之间的转换期间,为运动信息确定允许的运动精度集合,其中,当前视频块以帧内块复制(IBC)模式进行编码,其中,运动信息包括运动矢量、运动矢量预测和运动矢量差中的至少一个。方法1800还包括,在1820处,基于所确定的运动精度集合执行转换。
可以使用以下基于条款的格式来描述一些实施例。
1.一种用于视频处理的方法,包括:
确定包括以下各项的组的成员与屏幕上显示的内容相关联:(i)当前片,(ii)当前片组,(iii)当前条带,或(iv)当前图片;以及
响应于确定,启用或禁用一个或多个子像素运动矢量参数。
2.根据条款1的方法,其中,子像素运动矢量参数包括以下各项中的任一个:运动矢量、运动矢量预测器或运动矢量差。
3.根据条款1的方法,其中,在片、片组、条带、图片、序列或视频参数集中用信号通知在屏幕上所显示的内容的指示。
4.根据条款1的方法,其中,在片、片组、条带、图片、序列或视频参数标头中用信号通知在屏幕上所显示的内容的指示。
5.根据条款1的方法,其中,启用或禁用一个或多个子像素运动矢量参数与分数运动矢量差精度的语法相关联。
6.根据条款1的方法,其中,在片、片组、条带、图片、序列或视频参数集中用信号通知启用或禁用一个或多个子像素运动矢量参数。
7.根据条款1的方法,其中,在片、片组、条带、图片、序列或视频参数标头中用信号通知启用或禁用一个或多个子像素运动矢量参数。
8.根据条款1的方法,还包括:
响应于确定组的成员与在屏幕上所显示的内容相关联,将一个或多个子像素运动矢量参数舍入为一个或多个整数像素运动矢量参数。
9.根据条款8的方法,其中一个或多个子像素运动矢量参数是针对每个块或子块的,并且其中设置了仿射模式。
10.根据条款1的方法,其中设置了非仿射帧间模式,并且其中所允许的运动矢量参数取决于包括在视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、片组标头、片标头或条带标头中的标志的值。
11.根据条款10的方法,其中包括在VPS、SPS、PPS、片组标头、片标头或条带标头中的标志的值指示以下各项是否与在屏幕上所显示的内容相关联:(i)当前片,(ii)当前片组,(iii)当前条带,或(iv)当前图片。
12.根据条款10的方法,其中,标志指示是允许还是不允许分数距离或分数运动矢量差。
13.根据条款10的方法,其中,取决于标志的值,运动矢量参数具有根据以下集合中的一个的像素精度:{1/4,1,4},{1,2,4},{1,2,8}, {1,2,16},{1,4,8},{1,4,16},{1,8,16},{1,2},{1,4}, {1,8}或{1,16}。
14.根据条款1的方法,其中,设置了仿射帧间模式,并且其中,所允许的运动矢量参数取决于包括在视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、片组标头、片标头或条带标头中的标志的值。
15.根据条款14的方法,其中,包括在VPS、SPS、PPS、片组标头、片标头或条带标头中的标志的值指示以下各项是否与在屏幕上所显示的内容相关联:(i)当前片,(ii)当前片组,(iii)当前条带,或(iv)当前图片。
16.根据条款15的方法,其中,标志指示是允许还是不允许分数距离或分数运动矢量差。
17.根据条款16的方法,其中,取决于标志的值,运动矢量参数具有根据以下集合中的一个的像素精度:{1/4,1,1/16},{1,4,1/4},{1/2, 2,1/8},{2,8,1/2},{1,2,4},{1,2,8},{1,2,16},{1,4, 8},{1,4,16},{1,8,16},{1,1/4},{1,1/2},{1,1/8},{1, 1/16},{1,2},{1,4},{1,8}或{1,16}。
18.根据条款1的方法,其中,设置了IBC模式,并且其中,所允许的运动矢量参数取决于包括在视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、片组标头、片标头或条带标头中的标志的值。
19.根据条款18的方法,其中包括在VPS、SPS、PPS、片组标头、片标头或条带标头中的标志的值指示以下各项是否与在屏幕上所显示的内容相关联:(i)当前片,(ii)当前片组,(iii)当前条带,或(iv)当前图片。
20.根据条款19的方法,其中,标志指示是允许还是不允许分数距离或分数运动矢量差。
21.根据条款16的方法,其中,取决于标志的值,所述运动矢量参数具有根据以下集合中的一个的像素精度:{1,2},{1,8}或{1,16}。
22.根据条款1的方法,其中,对于正常帧间模式和IBC模式,所允许的运动矢量参数的分辨率的数量相同。
23.根据条款22的方法,其中,设置了IBC模式,并且其中,运动矢量参数具有根据以下集合中的一个的像素精度:{1,2,4},{1,2,8}, {1,2,16},{1,4,8},{1,4,16}或{1,8,16}。
24.根据条款1的方法,其中,当高级语法指示启用一个或多个子像素运动矢量参数时,amvr_flag的值等于0指定运动矢量参数的分辨率为亮度样点的1/4。
25.根据条款1的方法,其中,当高级语法指示禁用一个或多个子像素运动矢量参数时,amvr_flag的值等于1指定运动矢量参数的分辨率为M亮度样点。
26.根据条款25的方法,其中,M是1、2、4、8或16。
27.根据条款25的方法,其中,M在视频参数集(VPS)、序列参数集 (SPS)、图片参数集(PPS)、片组标头、片标头或条带标头中指定。
28.根据条款25的方法,其中,M取决于是否设置了正常帧间模式、仿射帧间模式或IBC模式。
29.根据条款1的方法,其中,当确定指示禁用一个或多个子像素运动矢量参数时,如果inter_affine_flag等于0,则amvr_precision_flag的值等于 0指定运动矢量参数的分辨率为L0亮度样点,否则为L1亮度样点。
30.根据条款1的方法,其中,当确定指示禁用一个或多个子像素运动矢量参数时,如果inter_affine_flag等于0,则amvr_precision_flag的值等于 1指定运动矢量参数的分辨率为L2亮度样点,否则为L3亮度样点。
31.根据条款29至30的方法,其中,L0、L1、L2、L3取自集合{1, 2,4,8,16,1/16,1/4,1/2}中的值。
32.根据条款29至30的方法,其中,L0、L1、L2、L3具有预定值。
33.根据条款29至30的方法,其中,L0、L1、L2、L3取在视频参数集 (VPS)、序列参数集(SPS)、图片参数集(PPS)、片组标头、片标头或条带标头中指定的值。
34.根据条款29到30的方法,其中,L0、L1、L2、L3的值取决于是否设置了正常帧间模式、仿射帧间模式或IBC模式。
35.根据条款1的方法,其中,对于仿射帧间模式和非仿射模式,所允许的运动矢量参数的分辨率的数量相同,与确定无关。
36.根据条款35的方法,其中,将amvr_flag的值和amvr_precsion_flag 的值指定为视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、片组标头、片标头或条带标头中的第三标记。
37.根据条款36的方法,其中,如果所述第三标志指示组的成员不与在屏幕上所显示的内容相关联,则amvr_flag和amvr_precsion_flag的值不变。
38.根据条款35的方法,其中,如果第三标志指示组的成员与在屏幕上所显示的内容相关联,则将amvr_flag设置为0,以指定运动矢量参数的分辨率为M亮度样点。
39.根据条款38的方法,其中,M等于1。
40.根据条款38的方法,其中,M等于2、4、8、16、1/16、1/4或 1/2。
41.根据条款38的方法,其中,M在视频参数集(VPS)、序列参数集 (SPS)、图片参数集(PPS)、片组标头、片标头或条带标头中指定。
42根据条款38的方法,其中,M取决于是否设置了正常帧间模式、仿射帧间模式或IBC模式。
43.根据条款38的方法,其中,如果第三标志指示组的成员与在屏幕上所显示的内容相关联,则将amvr_precision_flag设置为0,如果inter_affine_flag等于0,则指定运动矢量参数的分辨率为L0亮度样点,否则为L1亮度样点。
44.根据条款38的方法,其中,如果第三标志指示组的成员与在屏幕上所显示的内容相关联,则将amvr_precision_flag设置为1,如果 inter_affine_flag等于0,则指定运动矢量参数的分辨率为L2亮度样点,否则L3亮度样点。
45.根据条款43至44的方法,其中,L0、L1、L2、L3取集合{1,2, 4,8,16,1/16,1/4,1/2}中的值。
46.根据条款43至44的方法,其中,L0、L1、L2、L3具有预定值。
47.根据条款43至44的方法,其中,L0、L1、L2、L3取在视频参数集 (VPS)、序列参数集(SPS)、图片参数集(PPS)、片组标头、片标头或条带标头中指定的值。
48.根据条款43至44的方法,其中L0、L1、L2、L3的值取决于是否设置了正常帧间模式、仿射帧间模式或IBC模式。
49.根据条款43至44的方法,其中将L0设置为1/4,将L1设置为1/4,将L2设置为4,并且将L3设置为1/16。
50.根据条款1到49中任一项或多项的方法,其中,视频处理是编码器侧的实现。
51.根据条款1到49中任一项或多项的方法,其中,视频处理是解码器侧的实现。
52.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器执行时使处理器实现条款1至50中的任何一个或多个中的方法。。
53.一种存储在非暂时性计算机可读介质上的计算机程序产品,计算机程序产品包括用于执行条款1至50中的任何一个或多个中的方法的程序代码。
可以使用以下基于条款的格式来描述一些实施例。
1.一种视频处理方法,包括:
基于当前视频块的比特流表示中的第一指示,确定当前视频块是否允许运动信息的子像素运动精度,其中运动信息包括运动矢量(MV)、运动矢量预测(MVP)和运动矢量差(MVD)中的至少一个;
在确定不允许子像素运动精度之后,使用运动信息的非子像素运动精度来执行当前视频块和当前视频块的比特流表示之间的转换。
2.根据条款1的方法,其中,第一指示包括在片、片组、条带、图片,序列、视频参数集和视频参数标头中的至少一个中用信号通知的第一语法。
3.根据条款2的方法,其中,第一语法指示片、片组、条带、图片、序列或视频是否属于屏幕内容。
4.根据条款1-3中任一项的方法,其中,响应于当前处理单元属于屏幕内容,当前处理单元不允许子像素运动精度,其中当前处理单元包括片、片组、条带、图片、序列或视频。
5.根据条款1-4中任一项的方法,其中,第一指示包括第二语法,第二语法指示在具有运动矢量差(MMVD)模式的Merge模式中是否允许子像素运动精度。
6.根据条款5的方法,其中响应于在MMVD模式中不允许子像素运动精度,当前视频块不允许子像素运动精度。
7.根据条款1-6中的任一项的方法,其中,第一指示包括在片、片组、条带、图片、序列、视频参数集和视频参数标头中的至少一个中用信号通知的第三语法,以指示片、片组、条带、图片、序列或视频是否不允许子像素运动精度。
8.根据条款1至7中任一项的方法,其中,响应于当前视频块不允许子像素运动精度,将当前视频块的运动信息舍入为整数像素精度。
9.根据条款1至8中任一项的方法,还包括:
基于当前视频块的比特流表示中的第二指示,确定当前视频块允许的运动信息的运动精度集;
基于所确定的运动精度集,执行当前视频块和当前视频块的比特流表示之间的转换。
10.根据条款9的方法,其中,第二指示和第一指示由相同的标志实现。
11.根据条款9或10的方法,其中,响应于第二指示为真,用于非仿射帧间模式的运动精度集包括{1/4,1,4},{1,2,4},{1,2,8},{1,2, 16},{1,4,8},{1,4,16},{1,8,16},{1,2},{1,4},{1,8},或{1, 16}样点精度。
12.根据条款9-11中的任一项的方法,其中,响应于第二指示为假,用于非仿射帧间模式的运动精度集包括{1/4,1,4},{1,2,4},{1,2,8},{1, 2,16},{1,4,8},{1,4,16},{1,8,16},{1,2},{1,4},{1,8}或 {1,16}样点精度。
13.根据条款9至12中的任一项的方法,其中,响应于第二指示为真,仿射帧间模式的运动精度集包括{1/4,1,1/1/16},{1,4,1/4},{1/2, 2,1/8},{2,8,1/2},{1,2,4},{1,2,8},{1,2,16},{1,4,8}, {1,4,16},{1,8,16},{1,1/4},{1,1/2},{1,1/8},{1,1/16},{1,2},{1,4},{1,8}或{1,16}样点精度。
14.根据条款9至13中的任一项的方法,其中,响应于第二指示为假,仿射帧间模式的运动精度集包括{1/4,1,1/1/16},{1,4,1/4},{1/2, 2、1/8},{2,8,1/2},{1,2,4},{1,2,8},{1,2,16},{1,4,8}, {1,4,16},{1,8,16},{1,1/4},{1,1/2},{1,1/8},{1,1/16},{1,2},{1,4},{1,8}或{1,16}样点精度。
15.根据条款1至14中任一项的方法,还包括:
基于当前视频块的比特流表示中的第三指示,对当前视频块确定运动信息的默认运动精度;以及
基于当前视频块的比特流表示中的第四指示,确定是否对当前视频块启用自适应运动矢量分辨率(AMVR);以及
响应于对当前视频块禁用AMVR,基于默认运动精度,执行当前视频块与当前视频块的比特流表示之间的转换。
16.根据条款15的方法,其中,第三指示和第一指示由相同的标志实现。
17.根据条款15或16的方法,其中,第四指示包括第四语法,第四语法指示是否对当前视频块启用AMVR。
18.根据条款15至17中的任一项的方法,其中,第四指示是amvr_flag,并且值为0的amvr_flag指示对当前视频块禁用AMVR,而值为1的amvr_flag 指示对当前视频块启用AMVR。
19.根据条款15至18中的任一项的方法,其中,当第三指示指示允许子像素运动精度时,将默认运动精度设置为等于1/4亮度样点精度。
20.根据条款15至19中的任一项的方法,其中,当第三指示指示不允许子像素运动精度时,将默认运动精度设置为等于M1亮度样点精度。
21.根据条款15至20中任一项的方法,其中,当第三指示指示当前视频块是屏幕内容时,将默认运动精度设置为等于M2亮度样点精度。
22.根据条款20的方法,其中,M1的值取自1、2、4、8和16。
23.根据条款21的方法,其中,M2的值为1、2、4、8、16、1/16、1/ 4或1/2。
24.根据条款21至23中任一项的方法,其中,在视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、片组标头、片标头或条带标头中的至少一个中用信号通知M1和M2。
25.根据条款21至24中任一项的方法,其中,基于第三指示来用信号通知M1和M2。
26.根据条款21至24中任一项的方法,其中,M1和M2基于编码模式,编码模式是非仿射帧间模式、仿射帧间模式和IBC模式中的一个。
27.根据条款1-26中任一项的方法,还包括:
基于视频的比特流表示中的第五指示和第六指示,确定当前视频块的运动信息的非默认运动精度,其中对当前视频块启用自适应运动矢量分辨率 (AMVR);以及
基于所确定的运动精度,执行当前视频块与当前视频块的比特流表示之间的转换。
28.根据条款27的方法,其中,第五指示与第一指示相同。
29.根据条款27或28的方法,其中,第六指示是amvr_precision_flag。
30.根据条款29的方法,其中,响应于第五指示指示不允许子像素运动精度,对于非仿射帧间模式,值为0的amvr_precision_flag指示运动精度为 L0亮度样点,而对于仿射帧间模式,值为0的amvr_precision_flag指示运动精度为L1亮度样点。
31.根据条款29的方法,其中,响应于第五指示指示允许子像素运动精度,对于非仿射帧间模式,值为1的amvr_precision_flag指示运动精度为L2 亮度样点,而对于仿射帧间模式,值为1的amvr_precision_flag指示运动精度为L3亮度样点。
32.根据条款29的方法,其中,响应于第五指示指示当前视频块不是屏幕内容,对于非仿射帧间模式,值为0的amvr_precision_flag指示运动精度为L0亮度样点,而对于仿射帧间模式,值为0的amvr_precision_flag指示运动精度为L1亮度样点。
33.根据条款29的方法,其中,响应于第五指示指示当前视频块是屏幕内容,对于非仿射帧间模式,值为1的amvr_precision_flag指示运动精度为 L2亮度样点,而对于仿射帧间模式,值为1的amvr_precision_flag指示运动精度为L3亮度样点。
34.根据条款33的方法,其中,L0、L1、L2、L3中的任何一个的值取自 1、2、4、8、16、1/16、1/4、1/2。
35.根据条款33的方法,其中,在视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、片组标头、片标头或条带标头的至少一个中用信号通知 L0、L1、L2、L3中的任何一个。
36.根据条款33的方法,其中,基于第五指示来用信号通知L0、L1、L2、 L3中的任何一个。
37.根据条款33的方法,其中,L0、L1、L2、L3中的任何一个基于编码模式,编码模式是非仿射帧间模式、仿射帧间模式和IBC模式中的一个。
38.根据条款1-37中的任一项的方法,其中,屏幕内容的非仿射帧间模式的允许的运动精度的第一集合与非屏幕内容的非仿射帧间模式的允许的运动精度的第二集合相同。
39.根据条款1-37中任一项的方法,其中,屏幕内容的仿射帧间模式的允许的运动精度的第一集合与非屏幕内容的仿射帧间模式的允许的运动精度的第二集合相同。
40.一种视频处理装置,包括处理器,处理器被配置为实现条款1至39中任一项的方法。
41.根据条款40的装置,其中,装置是视频编码器。
42.根据条款40的装置,其中,装置是视频解码器。
43.一种其上记录有包括代码的程序的计算机可读记录介质,程序用于处理器执行条款1至39中任一项的方法。
可以使用以下基于条款的格式来描述一些实施例。
1.一种视频处理方法,包括:
在当前视频块和当前视频块的比特流表示之间的转换期间,为运动信息确定允许的运动精度集合,其中,当前视频块以帧内块复制(IBC)模式进行编码,其中,运动信息包括运动矢量、运动矢量预测和运动矢量差中的至少一个;
基于所确定的运动精度集合执行转换。
2.根据条款1的方法,其中,所确定的允许的运动精度集合包括{1,2} 样点精度。
3.根据条款1的方法,其中,所确定的允许的运动精度集合包括{1,8} 样点精度。
4.根据条款1的方法,其中,所确定的允许的运动精度集合包括{1, 16}样点精度。
5.根据条款1至4中任一项的方法,其中,IBC模式所允许的运动精度的第一数量与正常帧间模式所允许的运动精度的第二数量相同。
6.根据条款5的方法,其中,正常帧间模式包括非仿射高级运动矢量预测(AMVP)模式。
7.根据条款5的方法,其中,第二数量是3。
8.根据条款1至7中任一项的方法,IBC模式所允许的MV/MVP/ MVD精度集合包括{1,2,4}、{1,2,8}、{1,2,16}、{1,4,8}、{1, 4,16}或{1,8,16}样点精度。
9.根据条款1至8中任一项的方法,其中,IBC模式所允许的运动精度集合与正常帧间模式所允许的运动精度集合相同。
10.一种视频处理装置,包括处理器,处理器被配置为实现条款1至9 中任何一项的方法。
11.根据条款10的装置,其中,装置是视频编码器。
12.根据条款10的装置,其中,装置是视频解码器。
13.一种其上记录有包括代码的程序的计算机可读记录介质,程序用于处理器执行条款1至9中任一项的方法。
本文档中描述的公开的和其他解决方案、示例、实施例、模块和功能操作可以在、数字电子电路中实施,或者在计算机软件、固件或硬件中实施,包括本文档中公开的结构及其结构等同物,或者以他们的一个或多个的组合实施。所公开的和其他实施例可以被实施为一个或多个计算机程序产品,即,在计算机可读介质上编码的一个或多个计算机程序指令模块,用于由数据处理装置运行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的合成、或者它们中的一个或多个的组合。术语“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或者多个处理器或计算机。除了硬件之外,装置可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统及其一个或多个的组合的代码。传播的信号是人工产生的信号,例如机器产生的电、光或电磁信号,其被产生以对信息进行编码以传输到合适的接收器装置。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件相对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于所讨论的程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点或分布在多个站点并通过通信网络互连。
本文档中描述的处理和逻辑流可以由一个或多个可编程处理器执行,该一个或多个处理器运行一个或多个计算机程序,通过对输入数据进行操作并生成输出来执行功能。处理和逻辑流也可以由专用逻辑电路来执行,并且装置也可以实施为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC (专用集成电路)。
例如,适用于运行计算机程序的处理器包括通用和专用微处理器、以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或可操作地耦合到一个或多个大容量存储设备,以从其接收数据或向其传送数据,或两者兼有。然而,计算机不一定需要具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。
虽然本专利文档包含许多细节,但不应将其解释为对任何主题或要求保护的范围的限制,而应解释为特定于特定发明的特定实施例的特征的描述。本专利文档在分离的实施例的上下文描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独地实施,或在任何合适的子组合中实施。此外,虽然特征可以被描述为在某些组合中起作用,甚至最初这样要求保护,但在某些情况下,可以从要求保护的组合中移除组合中的一个或多个特征,并且要求保护的组合可以指向子组合或子组合的变体。
同样,尽管在附图中以特定顺序描述了操作,但这不应理解为要获得期望的结果必须按照所示的特定顺序或次序顺序来执行这些操作,或执行所有示出的操作。此外,本专利文档所述实施例中的各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。
仅描述了一些实施方式和示例,其他实施方式、增强和变体可以基于本专利文档中描述和说明的内容做出。
Claims (13)
1.一种视频处理方法,包括:
在当前视频块和所述当前视频块的比特流表示之间的转换期间,为运动信息确定允许的运动精度集合,其中,所述当前视频块以帧内块复制(IBC)模式进行编码,其中,所述运动信息包括运动矢量、运动矢量预测和运动矢量差中的至少一个;
基于所述确定的运动精度集合执行所述转换。
2.根据权利要求1所述的方法,其中,所述确定的允许的运动精度集合包括{1,2}样点精度。
3.根据权利要求1所述的方法,其中,所述确定的允许的运动精度集合包括{1,8}样点精度。
4.根据权利要求1所述的方法,其中,所述确定的允许的运动精度集合包括{1,16}样点精度。
5.根据权利要求1至4中任一项所述的方法,其中,IBC模式所允许的运动精度的第一数量与正常帧间模式所允许的运动精度的第二数量相同。
6.根据权利要求5所述的方法,其中,所述正常帧间模式包括非仿射高级运动矢量预测(AMVP)模式。
7.根据权利要求5所述的方法,其中,所述第二数量是3。
8.根据权利要求1至7中任一项所述的方法,IBC模式所允许的MV/MVP/MVD精度集合包括{1,2,4}、{1,2,8}、{1,2,16}、{1,4,8}、{1,4,16}或{1,8,16}样点精度。
9.根据权利要求1至8中任一项所述的方法,其中,IBC模式所允许的运动精度集合与正常帧间模式所允许的运动精度集合相同。
10.一种视频处理装置,包括处理器,所述处理器被配置为实现权利要求1至9中任何一项所述的方法。
11.根据权利要求10所述的装置,其中,所述装置是视频编码器。
12.根据权利要求10所述的装置,其中,所述装置是视频解码器。
13.一种其上记录有包括代码的程序的计算机可读记录介质,所述程序用于处理器执行权利要求1至9中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2019076297 | 2019-02-27 | ||
CNPCT/CN2019/076297 | 2019-02-27 | ||
PCT/CN2020/076983 WO2020173483A1 (en) | 2019-02-27 | 2020-02-27 | Improvement on adaptive motion vector difference resolution in intra block copy mode |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113826394A true CN113826394A (zh) | 2021-12-21 |
Family
ID=72239142
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080016852.3A Pending CN113491127A (zh) | 2019-02-27 | 2020-02-27 | 用于屏幕内容编码的运动矢量编码 |
CN202080016871.6A Pending CN113826394A (zh) | 2019-02-27 | 2020-02-27 | 帧内块复制模式下自适应运动矢量差分辨率的改进 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080016852.3A Pending CN113491127A (zh) | 2019-02-27 | 2020-02-27 | 用于屏幕内容编码的运动矢量编码 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN113491127A (zh) |
WO (2) | WO2020173483A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112261413B (zh) * | 2020-10-22 | 2023-10-31 | 北京奇艺世纪科技有限公司 | 视频编码方法、编码装置、电子设备和存储介质 |
WO2024008021A1 (en) * | 2022-07-04 | 2024-01-11 | Beijing Bytedance Network Technology Co., Ltd. | Method, apparatus, and medium for video processing |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103299630B (zh) * | 2011-01-19 | 2016-10-19 | 寰发股份有限公司 | 获取运动矢量预测子的方法和装置 |
US9319681B2 (en) * | 2012-07-18 | 2016-04-19 | Google Technology Holdings LLC | Signaling of temporal motion vector predictor (MVP) enable flag |
CN104704835B (zh) * | 2012-10-03 | 2017-11-24 | 联发科技股份有限公司 | 视频编码中运动信息管理的装置与方法 |
AU2014202682A1 (en) * | 2014-05-16 | 2015-12-03 | Canon Kabushiki Kaisha | Method, apparatus and system for copying a block of video samples |
WO2016034058A1 (en) * | 2014-09-01 | 2016-03-10 | Mediatek Inc. | Method of intra picture block copy for screen content and video coding |
KR102128216B1 (ko) * | 2014-11-20 | 2020-06-30 | 에이치에프아이 이노베이션 인크. | 모션 벡터 및 블록 벡터 해상도 제어의 방법 |
TWI816224B (zh) * | 2015-06-08 | 2023-09-21 | 美商Vid衡器股份有限公司 | 視訊解碼或編碼方法及裝置 |
US10979732B2 (en) * | 2016-10-04 | 2021-04-13 | Qualcomm Incorporated | Adaptive motion vector precision for video coding |
US10448010B2 (en) * | 2016-10-05 | 2019-10-15 | Qualcomm Incorporated | Motion vector prediction for affine motion models in video coding |
US10542280B2 (en) * | 2017-01-09 | 2020-01-21 | QUALCOMM Incorpated | Encoding optimization with illumination compensation and integer motion vector restriction |
US11012715B2 (en) * | 2018-02-08 | 2021-05-18 | Qualcomm Incorporated | Intra block copy for video coding |
TWI746994B (zh) * | 2018-06-19 | 2021-11-21 | 大陸商北京字節跳動網絡技術有限公司 | 用於不同參考列表的不同精確度 |
-
2020
- 2020-02-27 WO PCT/CN2020/076983 patent/WO2020173483A1/en active Application Filing
- 2020-02-27 CN CN202080016852.3A patent/CN113491127A/zh active Pending
- 2020-02-27 WO PCT/CN2020/076981 patent/WO2020173482A1/en active Application Filing
- 2020-02-27 CN CN202080016871.6A patent/CN113826394A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN113491127A (zh) | 2021-10-08 |
WO2020173483A1 (en) | 2020-09-03 |
WO2020173482A1 (en) | 2020-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113039790B (zh) | 视频处理的方法、装置和非暂时性计算机可读介质 | |
JP7556090B2 (ja) | デコーダ側精緻化ツールのサイズ選択アプリケーション | |
CN113196747B (zh) | 当前图片参考模式下的信息信令通知 | |
US11991382B2 (en) | Motion vector management for decoder side motion vector refinement | |
CN113287317A (zh) | 并置的局部照明补偿和修改的帧间编解码工具 | |
CN112868240A (zh) | 并置的局部照明补偿和修改的帧间预测编解码 | |
US11895320B2 (en) | History-based motion vector prediction | |
CN113316935A (zh) | 使用局部照明补偿的运动候选列表 | |
CN113273207A (zh) | 基于几何分区的具有运动矢量差(MVD)的Merge | |
CN115633169A (zh) | 视频编解码中的运动矢量细化 | |
CN113302936A (zh) | 用于具有MVD的Merge的控制方法 | |
CN113826394A (zh) | 帧内块复制模式下自适应运动矢量差分辨率的改进 | |
CN114287129A (zh) | 初始化基于历史的运动矢量预测器表 | |
CN113273189A (zh) | 具有MVD的Merge和AMVR之间的交互 | |
CN113557720B (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 |