CN118556399A - 参考运动矢量候选库改进 - Google Patents
参考运动矢量候选库改进 Download PDFInfo
- Publication number
- CN118556399A CN118556399A CN202280085649.0A CN202280085649A CN118556399A CN 118556399 A CN118556399 A CN 118556399A CN 202280085649 A CN202280085649 A CN 202280085649A CN 118556399 A CN118556399 A CN 118556399A
- Authority
- CN
- China
- Prior art keywords
- motion vector
- current block
- candidate library
- vector candidate
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000033001 locomotion Effects 0.000 title claims abstract description 233
- 239000013598 vector Substances 0.000 title claims abstract description 209
- 230000006872 improvement Effects 0.000 title description 5
- 238000000034 method Methods 0.000 claims abstract description 74
- 238000003780 insertion Methods 0.000 claims 2
- 230000037431 insertion Effects 0.000 claims 2
- 230000008569 process Effects 0.000 description 27
- 230000002123 temporal effect Effects 0.000 description 25
- 238000000638 solvent extraction Methods 0.000 description 21
- 239000000872 buffer Substances 0.000 description 19
- 230000011218 segmentation Effects 0.000 description 15
- 230000006835 compression Effects 0.000 description 14
- 238000007906 compression Methods 0.000 description 14
- 238000005192 partition Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 239000002131 composite material Substances 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 241000023320 Luma <angiosperm> Species 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 6
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 101150023404 mvd gene Proteins 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- VBRBNWWNRIMAII-WYMLVPIESA-N 3-[(e)-5-(4-ethylphenoxy)-3-methylpent-3-enyl]-2,2-dimethyloxirane Chemical compound C1=CC(CC)=CC=C1OC\C=C(/C)CCC1C(C)(C)O1 VBRBNWWNRIMAII-WYMLVPIESA-N 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 101100025317 Candida albicans (strain SC5314 / ATCC MYA-2876) MVD gene Proteins 0.000 description 1
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 1
- 240000002989 Euphorbia neriifolia Species 0.000 description 1
- 101150079299 MVD1 gene Proteins 0.000 description 1
- 101500019086 Ustilago maydis P6 virus KP6 killer toxin subunit alpha Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001012 protector Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035807 sensation Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- 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/176—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 block, e.g. a macroblock
-
- 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开提供用于对视频进行解码的方法、设备和非易失性存储介质。可以从参考运动矢量候选库中检索与当前块相关联的一个或多个矢量预测值,该一个或多个检索到的运动矢量预测值包括与一个或多个已解码块相关联的至少一个或多个运动矢量,并且该一个或多个已解码块属于与当前块相同的超级块。基于检索到的一个或多个运动矢量预测值来确定与当前块相关联的运动矢量,并且基于确定的运动矢量来对当前块进行解码。可以通过将与当前块相关联的运动矢量插入到参考运动矢量候选库中来更新参考运动矢量候选库。
Description
相关申请的交叉引用
本公开要求于2022年5月17日提交美国专利商标局、申请号为63/342,744的美国临时专利申请的优先权,其全部公开内容通过引用结合在本申请中。
技术领域
本公开的实施例涉及图像和视频编码技术。更具体地,本公开的实施例涉及在生成和解析参考运动矢量候选库中的改进。
背景技术
AOMedia Video 1(AV1)是为互联网上的视频传输而设计的开放视频编码格式。是由开放媒体联盟(AOMedia)作为VP9的后继者开发的,该联盟成立于2015年,包括半导体公司、视频点播提供商、视频内容制作商、软件开发公司和web浏览器供应商。AV1项目的许多组成部分来源于联盟成员先前的研究工作。个体贡献者早在几年前就开始了实验技术平台:Xiph/Mozilla的Daala已经在2010年发布了代码,谷歌(Google)的实验性VP9进化项目VP10于2014年9月12日宣布,并且思科(Cisco)的Thor于2015年8月11日发布。在VP9的代码基础上,AV1结合了其他技术,其中一些技术是以这些实验形式开发的。AV1参考编解码器的第一个版本(版本0.1.0)于2016年4月7日发布。该联盟于2018年3月28日宣布发布AV1码流规范,以及参考的基于软件的编码器和解码器。2018年6月25日,发布了规范的确认版本1.0.0。2019年1月8日发布了包含勘误表1的规范的确认版本1.0.0。AV1码流规范包括参考视频编解码器。
ITU-T VCEG(Q6/16)和ISO/IEC MPEG(JTC 1/SC 29/WG 11)在2013年(版本1)、2014年(版本2)、2015年(版本3)和2016年(版本4)发布了H.265/HEVC(高效视频编码)标准。从那时起,他们一直在研究对未来视频编码技术标准化的潜在需要,该技术在压缩能力方面明显优于HEVC。2017年10月,他们发布了《关于具有超越HEVC的能力的视频压缩的联合提案》(CfP)。截至2018年2月15日,总共提交了22份关于标准动态范围(SDR)的CfP反馈、12份关于高动态范围(HDR)的CfP反馈,和12份关于360个视频类别的CfP反馈。2018年4月,在122MPEG/第十次JVET(联合视频探索小组-联合视频专家小组)会议上对收到的所有CfP反馈进行了评估。通过认真评估,JVET正式启动了超越HEVC的下一代视频编码标准化,即所谓的通用视频编码(VVC)的标准化。
建议CWG-B023在AVM参考软件中采用参考运动矢量MV候选库。参考MV候选库可以用作收集参考MV候选的缓冲器。根据上述标准,利用编码块使用的MV来更新参考MV候选库。然而,参考MV候选库更新过程不考虑来自同一超级块的MV候选,导致次优结果,因为参考过程未能考虑其它可能的方向和块。
因此,需要一种方法、系统、设备和/或非易失性存储介质来改进参考MV候选库生成和更新,以改进视频编码。
发明内容
根据实施例,可以提供一种用于解码视频的方法。所述方法可由至少一个处理器执行,该方法可包括:从参考运动矢量候选库中检索与当前块相关联的多个运动矢量预测值,检索到的所述多个运动矢量预测值与多个已解码块相关联,并且所述多个已解码块与所述当前块属于相同的超级块;基于检索到的所述多个运动矢量预测值确定与所述当前块相关联的运动矢量;通过将与所述当前块相关联的所述运动矢量插入到所述参考运动矢量候选库中来更新所述参考运动矢量候选库;以及基于确定的与所述当前块相关联的运动矢量对所述当前块进行解码。
根据实施例,可以提供一种用于解码视频数据的设备。所述设备可包括:至少一个存储器,所述至少一个存储器被配置为存储程序代码;以及至少一个处理器,所述至少一个处理器被配置为读取所述程序代码并且如所述程序代码所指示地操作,所述程序代码包括:检索代码,所述检索代码被配置为致使所述至少一个处理器从参考运动矢量候选库中检索与当前块相关联的多个运动矢量预测值,检索到的所述多个运动矢量预测值与多个已解码块相关联,并且所述多个已解码块与所述当前块属于相同的超级块;确定代码,所述确定代码被配置为致使所述至少一个处理器基于检索到的所述多个运动矢量预测值来确定与所述当前块相关联的运动矢量;第一更新代码,所述第一更新代码被配置为致使所述至少一个处理器通过将与所述当前块相关联的所述运动矢量插入到所述参考运动矢量候选库中来更新所述参考运动矢量候选库;以及第一解码代码,所述第一解码代码被配置为致使所述至少一个处理器基于确定的与所述当前块相关联的运动矢量来对所述当前块进行解码。
根据实施例,可以提供一种存储指令的非易失性计算机可读介质。所述指令包括一个或多个指令,所述一个或多个指令在由设备的一个或多个处理器执行时从参考运动矢量候选库中检索与当前块相关联的多个运动矢量预测值,检索到的所述多个运动矢量预测值与多个已解码块相关联,并且所述多个已解码块与所述当前块属于相同的超级块;基于检索到的所述多个运动矢量预测值确定与所述当前块相关联的运动矢量;通过将与所述当前块相关联的所述运动矢量插入到所述参考运动矢量候选库中来更新所述参考运动矢量候选库;以及基于确定的与所述当前块相关联的运动矢量对所述当前块进行解码。
附图说明
图1A图示了根据本公开的实施例的AV1和VPN框架下的分割树的示例。
图1B图示了根据本公开的实施例的使用四叉树加二叉树块分割的块分割和树结构的示例。
图1C图示了根据本公开的实施例的垂直中心侧三叉树分割和水平中心侧三叉树分割的示例。
图1D图示了根据本公开的实施例的用于具有运动矢量差的合并模式的搜索点的示例。
图1E图示了根据本公开的实施例的空间运动矢量邻居的示例。
图1F图示了根据本公开的实施例的通过线性投影的运动场估计的示例。
图1G图示了根据本公开的实施例的用于导出时间运动矢量预测值的块位置的示例。
图1H图示了根据本公开的实施例的具有单个参考的块的附加运动矢量候选生成的示例。
图1I图示了根据本公开的实施例的具有复合参考的块的附加运动矢量候选生成的示例。
图2图示了根据本公开的实施例的现有技术中的参考运动矢量候选更新过程。
图3图示了根据本公开的实施例的用于构建运动矢量候选列表的流程图。
图4是根据本公开的实施例的通信系统的简化框图。
图5是视频编码器和解码器在流式传输环境中的布置图。
图6是根据本公开的实施例的视频解码器的功能框图。
图7是根据本公开的实施例的视频编码器的功能框图。
图8是根据本公开的实施例的用于视频编码和解码的示例过程的流程图。
图9是根据本公开的实施例的计算机系统的图。
具体实施方式
所提出的方法、设备和过程中的特征可以单独使用或组合使用。本公开的实施例涉及在生成、维护以及更新参考运动矢量(MV)候选库中的改进。
根据本公开的实施例,候选运动矢量预测值(MVP)可以在编码块级别更新,而不是在超级块候选MVP级别更新,或者除了在超级块候选MVP级别更新之外,还可以在编码块级别更新,在超级块候选MVP中,候选MVP可以在超级块级别处更新。编码块级候选MVP的优点在于,与使用来自左侧、上方或甚至更远的超级块的较远候选MVP相比,来自同一超级块的更多候选MVP可以用于更有效地预测当前块的MV。此外,除了在编码块级别更新候选MVP之外,还可以在某个特定级别更新候选MVP。
根据一实施例,可以在解析编码块的MV之后直接将该编码块的MV更新到参考MV候选库中。编码块的MV然后可以用作任何后续编码块的MVP候选。在现有技术中,仅在解析了整个超级块之后才将块的MV更新或插入到参考MV候选库中,这是对参考MV候选库的低效使用。
根据本公开的一实施例,可以在预定义区域中的块被解析之后或者处于某个级别时更新参考MV候选库。例如,可以在64×64非重叠区域中的所有块被解析或者处于四叉树(QT)的超级块级别之后的1个级别时更新参考MV候选库。在编码或解码期间,在此区域内部的所有编码块被解析之后,可以将预定义区域或QT内部的所有MV更新为参考MV候选库,并且可以使其可用于参考。
以上实施例的优点在于,参考MV库不需要非常频繁地更新。在某些硬件设计中,参考MV库没有存储在高速缓存中,这种设计将减少时延。另外,上述实施例避免了更新过于靠近当前编码块的MV。这些MV可能与当前块的空间运动矢量预测值(SMVP)重叠。
上述实施例可以进行组合。作为示例,维护两个或多个参考MV库。第一参考MV候选库可以在编码块级别更新,并且第二参考MV候选库可以在预定义级别更新。在参考期间,可以隐式地选择或显式地发信号通知要使用第一库或第二库作为参考。作为非限制性示例,维护两个参考MV库。可以在编码块级别更新一个库,即,在块MV被解析之后,立即将被解析的块的MV插入到该一个库(例如,第一库)中。可以在超级块级别更新另一个库,即,在当前块的超级块的所有编码块被解析之后,可以将这些编码块的MV插入到另一个库中。在参考期间,在一个示例中,如果块大于某个块大小(例如,16×16),则可以使用在超级块级别更新的库;否则,如果块大小小于或等于某个块大小(例如,16×16),则可以使用在块级别更新的库。应该理解,多个库的组合或若干不同的特定级(例如,32×32和64×64)之间的库也是可能的。
本公开的实施例还涉及参考MV候选库的恢复的参考顺序。在相关技术中,参考MV候选库的参考始终是从库的末尾开始到库的前面。根据本公开中的实施例,参考MV候选库的参考顺序可以通过设计从库的前面到库的末尾。恢复顺序的优点在于越远的MV候选可能越相关,这可能有益于某些内容类型,例如屏幕内容或不具有平移运动的内容。应该理解,恢复的参考和从库的末尾开始到前面的参考的组合也是可能的。作为示例,可以使用标志或条件(例如,块大小、QP值、屏幕内容的哈希命中率)来确定可以使用哪个参考顺序。
根据一实施例,参考MV候选库的级别、标志、条件或索引可以用高级语法发信号通知,所述高级语法包括但不限于序列参数集、视频参数集、图片参数集、条带头、帧头、APS、图块头。
在一个实施例中,编码块的MV可以在解析该编码块的MV之后直接将该编码块的MV有条件地更新到参考MV候选库,使得能够将该MV用作任何后续编码块的MVP候选。也可以单独或组合地使用其它条件,包括但不限于被解析的MV是否与以特定编码模式编码的块相关联,被解析的MV是否与大于、小于或等于某个预定义块大小的块相关联等。与在解析整个超级块之后必须将块的MV更新到参考MV候选库的相关技术相比,本文中的实施例可以更有效地使用参考MV候选库,因为不是每个被解析的MV都可以用于更新参考MV候选库,一些MV可以被解析但不用于更新参考MV候选库,从而减少了时延并且提高了参考MV候选库的效率。
VP9和AV1中的块分割
图1A是在VP9和AV1下分割树的示例图1100。如图1A的上半部分所示,VP9可以使用从64×64级别开始向下到4×4级别的4路分割树,以及对块8×8有一些附加限制。可以理解,被指定为“R”的分割指的是递归的——相同分割树可以以较低的比例被重复,直到达到最低的4×4级别。
AV1不仅可以将分割树扩展为如图1A的下半部分所示的10路结构,AV1还将最大大小(在VP9/AV1语法中被称为超级块)从128×128开始增加。可以理解,该10路结构可以包括不存在于VP9中的4:1/1:4矩形分割。矩形分割可以不被进一步细分。另外,因为在2×2色度帧间预测现在在某些情况下变得可能,AV1为使用低于8×8级别的分割增加了更多的灵活性。
HEVC中的块分割
在HEVC中,通过使用表示为编码树的四叉树(QT)结构将编码树单元(CTU)分割成编码单元(CU)以适应各种局部特性。关于是使用图片间(时间)预测还是图片内(空间)预测来编码图片区域的决定是在CU级做出的。可以根据PU分割类型将每个CU进一步划分为一个、两个或四个预测单元(PU)。在一个PU内部,应用相同的预测过程,并且在PU的基础上将相关信息发送到解码器。在通过应用基于PU分割类型的预测过程获得残差块之后,可以根据另一四叉树结构(如CU的编码树)将CU划分为变换单元(TU)。HEVC结构的一个特点是其具有包括CU、PU和TU的多个分割概念。在HEVC中,CU或TU的形状只能为正方形,而对于帧间预测块,PU的形状可以为正方形或矩形。在HEVC中,一个编码块可以进一步划分为四个正方形子块,并且对每个子块即TU执行变换。每个TU可以进一步递归地划分(使用四叉树划分)成更小的TU,这被称为残差四叉树(RQT)。在图片边界处,HEVC采用隐式四叉树分割,使得块将保持四叉树分割直到大小适合图片边界。HEVC结构的一个关键特征是其具有包括CU、PU和TU的多个分割概念。
通用视频编码(VVC)中的块分割
使用四叉树(QT)加二叉树(BT)的块分割结构
QTBT结构可以包含多个分割类型的概念,即它可以去除CU、PU和TU概念的分离,并且支持CU分割形状的更大灵活性。在QTBT块结构中,CU可以具有正方形或矩形形状。如图1B中所示,使用树1205,编码树单元(CTU)首先通过四叉树结构分割。四叉树叶节点进一步通过二叉树结构分割。在二叉树分割中存在两种分割类型,即,对称水平分割和对称垂直分割。二叉树叶节点被称为编码单元(CU),并且该分割被用于预测和变换处理而无需任何进一步的分割。因此,CU、PU和TU在QTBT编码块结构中具有相同的块大小。在JEM中,CU可以由不同颜色分量的编码块(CB)组成,例如,在4:2:0色度格式的P条带和B条带的情况下,一个CU包含一个亮度CB和两个色度CB,并且CU有时可以由单个分量的CB组成,例如,在I条带的情况下,一个CU仅包含一个亮度CB或仅包含两个色度CB。可以为QTBT分割方案定义以下参数——CTU大小:四叉树的根节点大小;与HEVC中的概念相同;MinQTSize:最小允许四叉树叶节点大小;MaxBTSize:最大允许二叉树根节点大小;MaxBTDepth:最大允许二叉树深度;以及MinBTSize:最小允许二叉树叶节点大小。
在QTBT分割结构的一个示例中,CTU大小可以设置为128×128亮度样本,这些亮度样本具有两个对应的64×64色度样本块,MinQTSize可以设置为16×16,MaxBTSize可以设置为64×64,MinBTSize(对于宽度和高度两者)可以设置为4×4,并且MaxBTDepth设置为4。四叉树分割可以首先应用于CTU以生成四叉树叶节点。四叉树叶节点可以具有从16×16(即MinQTSize)到128×128(即CTU大小)的大小。如果四叉树叶节点的大小为128×128,则该四叉树叶节点将不会被二叉树进一步分割,因为大小超过了MaxBTSize(即64×64)。否则,四叉树叶节点可以由二叉树进一步分割。因此,四叉树叶节点也是二叉树的根节点,并且二叉树深度为0。当二叉树深度达到MaxBTDepth(即4)时,不考虑进一步分割。当二叉树节点具有等于MinBTSize(即4)的宽度时,不考虑进一步的水平分割。类似地,当二叉树节点的高度等于MinBTSize的高度时,不考虑进一步的垂直分割。通过预测和变换处理来进一步处理二叉树的叶节点,而无需任何进一步的分割。在JEM中,最大CTU大小是256×256亮度样本。
如图1B中所示,块1205示出了通过使用QTBT进行块分割的示例,并且图1B的二叉树1210示出了对应的树表示。实线指示四叉树分割,虚线表示二叉树分割。在二叉树的每个分割(即非叶)节点中,可以发信号通知一个标志以指示使用哪种分割类型(即,水平或垂直)。其中,0可以指示水平分割,1可以指示垂直分割。对于四叉树分割,不需要指示分割类型,因为四叉树分割始终水平地和垂直地分割块以产生具有相等大小的4个子块。
另外,QTBT方案支持亮度和色度具有单独的QTBT结构的灵活性。当前在现有技术中,对于P条带和B条带,一个CTU中的亮度CTB和色度CTB共享相同的QTBT结构。然而,对于I条带,亮度CTB通过QTBT结构被划分成CU,并且色度CTB通过另一QTBT结构被划分成色度CU。这意味着I条带中的CU可以由亮度分量的编码块或两个色度分量的编码块组成,而P条带或B条带中的CU由所有三个颜色分量的编码块组成。
在HEVC中,可以限制用于小块的帧间预测以减少运动补偿的存储器存取,使得对于4×8块和8×4块可以不支持双向预测,并且帧间预测不用于4×4块。在JEM-7.0中实现的QTBT中,这些限制被去除。
使用三叉树(TT)的块分割结构
在VVC中,可以包括多类型树(MTT)结构,其在QTBT的顶部上添加水平中心侧三叉树和垂直中心侧三叉树,如图1C中所示分别在块1305和块1310处。TT分割的优点是它是四叉树分割和二叉树分割的补充;TT分割还能够捕获位于块中心的对象,而四叉树和二叉树始终沿着块中心分割。进一步地,由于所提出的TT分割的分割的宽度和高度始终是2的幂,因此不需要附加的变换。二级树的设计主要受复杂度降低的推动。理论上,遍历树的复杂度是TD,其中,T表示分割类型的数量,并且D是树的深度。
具有运动矢量差的合并模式(MMVD)
除了合并模式(其中隐式地导出的运动信息被直接用于当前CU的预测样本生成)之外,还在VVC中引入具有运动矢量差的合并模式(MMVD)。可以在发送跳过标志和合并标志之后立即发信号通知MMVD标志以指定MMVD模式是否用于CU。
在MMVD中,在选择合并候选之后,可以通过发信号通知的MVD信息来进一步修正该合并候选。进一步的信息可以包括合并候选标志、指定运动幅度的索引以及用于指示运动方向的索引。在MMVD模式中,选择合并列表中的前两个候选中的一个候选用作MV基础。可以发信号通知合并候选标志以指定使用哪一个。
距离索引指定运动幅度信息,并且指示从起始点的预定义偏移。如图1D中所示,可以将偏移添加到起始MV的水平分量或垂直分量。距离索引和预定义偏移的关系可以在表1中指定。
表1——距离索引和预定义偏移的关系
方向索引表示MVD相对于起始点的方向。方向索引可以表示如表2中所示的四个方向。
表2——方向索引指定的MV偏移的符号
方向IDX | 00 | 01 | 10 | 11 |
x轴 | + | - | 不适用 | 不适用 |
y轴 | 不适用 | 不适用 | + | - |
应该指出的是,MVD符号的含义可以根据起始MV的信息而变化。当起始MV是单预测MV或双预测MV,其中两个列表指向当前图片的相同侧时,表2中的符号指定添加到起始MV的MV偏移的符号。作为示例,当两个参考的POC都大于当前图片的POC,或者都小于当前图片的POC时。当起始MV是双向预测MV并且两个MV指向当前图片的不同侧并且列表0中的POC差大于列表1中的POC差时,表2中的符号指定添加到起始MV的列表0MV分量的MV偏移的符号,并且列表1MV的符号具有相反值。作为示例,一个参考的POC大于当前图片的POC,并且另一个参考的POC小于当前图片的POC,则添加到起始MV的列表0MV分量的MV偏移的符号和列表1MV的符号具有相反值。否则,如果列表1中的POC差大于列表0,则表2中的符号指定添加到起始MV的列表1MV分量的MV偏移的符号,并且列表0MV的符号具有相反值。
MVD可以根据每个方向上的POC的差来缩放。如果两个列表中的POC的差相同,则不进行缩放。否则,如果列表0中的POC差大于列表1中的POC差,则可以缩放列表1的MVD。如果L1的POC差大于L0,则可以以相同的方式缩放列表0的MVD。如果起始MV是单预测的,则可以将MVD添加到可用MV。
对称MVD编码
在VVC中,除了正常的单向预测和双向预测模式MVD信令之外,还可以应用用于双向MVD信令的对称MVD模式。在对称MVD模式中,包括列表0和列表1两者的参考图片索引以及列表1的MVD的运动信息可以不被发信号通知,而是可以被导出。
条带级别的对称MVD模式的解码过程可以如下。在条带级别,导出变量BiDirPredFlag、RefIdxSymL0和RefIdxSymL1。如果mvd_l1_zero_flag为1,则BiDirPredFlag可以被设置为等于0。否则,如果列表0中的最近参考图片和列表1中的最近参考图片形成前向和后向参考图片对或后向和前向参考图片对,则BiDirPredFlag可以被设置为1,并且列表0和列表1参考图片都可以是短期参考图片。否则,BiDirPredFlag被设置为0。
CU级别的对称MVD模式的解码过程可以如下。在CU级别,如果CU是双预测编码的并且BiDirPredFlag等于1,则对称模式标志指示是否可以使用对称模式或是否不可以显式地发信号通知。当对称模式标志为真时,仅显式地发信号通知mvp_l0_flag、mvp_l1_flag和MVD0。列表0和列表1的参考索引分别被设置为等于参考图片对。MVD1被设置为等于(-MVD0)。
CWG-B018中的帧间模式编码
在AV1中,对于帧间帧中的每个已编码块,如果当前块的模式不是跳过模式而是帧间编码模式,则另一标志可以被发信号通知以指示单个参考模式或复合参考模式是否被用于当前块。
单一模式可以包括由单个参考模式中的一个运动矢量生成的预测块。以下模式可以在单个参考情况下发信号通知:(1)NEARMV——使用由动态参考列表(DRL)索引指示的列表中的运动矢量预测值(MVP)之一;(2)NEWMV——使用由DRL索引发信号通知的列表中的运动矢量预测值(MVP)之一作为参考,并且将增量应用于MVP;以及(3)GLOBALMV——使用基于帧级全局运动参数的运动矢量。
通过对两个预测块进行加权平均而生成的预测块可以从复合参考模式中的两个运动矢量导出。以下模式可以在复合参考情况下发信号通知:(1)NEAR_NEARMV——使用由DRL索引发信号通知的列表中的运动矢量预测值(MVP)之一;(2)NEAR_NEWMV——使用由DRL索引发信号通知的列表中的运动矢量预测值(MVP)之一作为参考,并且发送用于第二MV的增量MV;(3)NEW_NEARMV——使用由DRL索引发信号通知的列表中的运动矢量预测值(MVP)之一作为参考,并且发送第一MV的增量MV;(4)NEW_NEWMV——使用由DRL索引发信号通知的列表中的运动矢量预测值(MVP)之一作为参考,并且为两个MV发送增量MV;和(5)GLOBAL_GLOBALMV——基于它们的帧级全局运动参数使用来自每个参考的MV。
AV1中的运动矢量差编码
AV1允许1/8像素运动矢量精度(或准确度),并且以下语法可以用于发信号通知参考帧列表0或列表1中的运动矢量差:(1)mv_joint指定运动矢量差的哪些分量是非零的——0指示沿着水平方向或垂直方向不存在非零MVD,1指示仅沿着水平方向存在非零MVD,2指示仅沿着垂直方向存在非零MVD,3表示沿水平方向和垂直方向都存在非零MVD;(2)mv_sign指定运动矢量差是正的还是负的;(3)mv_class指定运动矢量差的类别。如表3中所示,类别越高意味着运动矢量差的幅度越大;(4)mv_bit指定每个MV类别的运动矢量差与起始幅度之间的偏移的整数部分;(5)mv_fr指定运动矢量差的前2个分数位;以及(6)mv_hp指定运动矢量差的第三分数位。
表3:运动矢量差的幅度类别
CWG-B092中的自适应MVD分辨率
对于NEW_NEARMV和NEAR_NEWMV模式,MVD的精度可以取决于MVD的相关联类别和幅度。首先,仅当MVD幅度等于或小于一个像素时,允许分数MVD。其次,当相关联MV类别的值等于或大于MV_CLASS_1时,仅允许一个MVD值。对于MV类别1(MV_CLASS_1)、2(MV_CLASS_2)、3(MV_CLASS_3)、4(MV_CLASS_4)或5(MV_CLASS_5),每个MV类别中的MVD值被导出为4、8、16、32、64。另外,如果当前块被编码为NEW_NEARMV或NEAR_NEWMV模式,则一个上下文可以用于发信号通知mv_joint或mv_class。否则,另一上下文可以用于发信号通知mv_joint或mv_class。
表4:每个MV幅度类别中的自适应MVD
25.MV类别 | 26.MVD幅度 |
27.MV_CLASS_0 | 28.(0,1],{2} |
29.MV_CLASS_1 | 30.{4} |
31.MV_CLASS_2 | 32.{8} |
33.MV_CLASS_3 | 34.{16} |
35.MV_CLASS_4 | 36.{32} |
37.MV_CLASS_5 | 38.{64} |
39.MV_CLASS_6 | 40.{128} |
41.MV_CLASS_7 | 42.{256} |
43.MV_CLASS_8 | 44.{512} |
45.MV_CLASS_9 | 46.{1024} |
47.MV_CLASS_10 | 48.{2048} |
CWG-B092中的联合MVD编码(JMVD)
可以应用命名为JOINT_NEWMV的新的帧间编码模式来指示是否联合地发信号通知两个参考列表的MVD。如果帧间预测模式等于JOINT_NEWMV模式,则联合地发信号通知参考列表0和参考列表1的MVD。因此,仅一个MVD(命名为joint_mvd)被发信号通知并且发送到解码器,并且用于参考列表0和参考列表1的增量MV从joint_mvd导出。
JOINT_NEWMV模式与NEAR_NEARMV、NEAR_NEWMV、NEW_NEARMV、NEW_NEWMV和GLOBAL_GLOBALMV模式一起发信号通知。不添加附加的上下文。
当JOINT_NEWMV模式被发信号通知并且两个参考帧与当前帧之间的POC距离不同时,基于POC距离针对参考列表0或参考列表1缩放MVD。具体而言,参考帧列表0与当前帧之间的距离可以是td0,并且参考帧列表1与当前帧之间的距离被标记为td1。如果td0等于或大于td1,则joint_mvd直接用于参考列表0,并且基于等式(1)从joint_mvd导出用于参考列表1的mvd。
否则,如果td1等于或大于td0,则joint_mvd直接用于参考列表1,并且基于等式(2)从joint_mvd导出用于参考列表0的mvd。
CWG-C011中自适应MVD分辨率的改进
可以将命名为AMVDMV的新的帧间编码模式添加到单个参考情况。当选择AMVDMV模式时,它指示AMVD被应用于发信号通知MVD。在JOINT_NEWMV模式下添加命名为amvd_flag的一个标志,以指示AMVD是否被应用于联合MVD编码模式。当自适应MVD分辨率被应用于命名为联合AMVD编码的联合MVD编码模式时,两个参考帧的MVD可以被联合地发信号通知,并且MVD的精度由MVD幅度隐式地确定。否则,用于两个(或多于两个)参考帧的MVD被联合地发信号通知,并且应用常规的MVD编码。
CWG-C012和CWG-C020中的自适应运动矢量分辨率(AMVR)
AMVR最初在CWG-C012中提出,其中总共支持7种MV精度(8、4、2、1、1/2、1/4、1/8)。对于每个预测块,AVM编码器可以搜索所有所支持的精度值并且将最佳精度发信号通知给解码器。
为了减少编码器运行时间,支持两个精度集。每个精度集包含4种预定义精度。可以基于帧的最大精度值在帧级自适应地选择精度集。与AV1相同,可以在帧头中发信号通知最大精度。表5总结了基于帧级最大精度的支持精度值。
表5:两个集中支持的MV精度
在当前的AVM软件(类似于AV1)中,存在帧级标志以指示帧的MV是否包含子像素精度。仅在cur_frame_force_integer_mv标志的值为0时启用AMVR。在AMVR中,如果块的精度小于最大精度,则可以不发信号通知运动模型和插值滤波器。如果块的精度小于最大精度,则运动模式被推断为平移运动,并且插值滤波器可以推断为常规插值滤波器。类似地,如果块的精度是4像素或8像素,则不发信号通知帧间-帧内模式并且将其推断为0。
AV1和AVM中的运动矢量预测值列表
在AVM设计中额外添加空间运动矢量预测值(SMVP)(相邻SMVP和非相邻SMVP)、时间运动矢量预测值、AV1中的额外MV候选和附加地导出的MVP以及参考库MVP。将在编码器和解码器端都生成具有固定大小的堆栈以存储MVP,其被称为运动矢量预测值列表。
空间运动矢量预测值(SMVP)
空间运动矢量(MV)预测值是从空间邻居块导出的,这些空间邻居块包括相邻空间邻居块(其是当前块的上方和左侧的直接邻居)以及非相邻空间邻居块(其靠近但不直接相邻于当前块)。图1E图示了亮度块的一组空间邻居块的示例,其中每个空间邻居块是8×8块。检查空间邻居块以找到与当前块相同的参考帧索引相关联的一个或多个MV。对于当前块,空间邻居8×8亮度块的搜索顺序如图5中数字1-8所示:(1)从左到右检查上方相邻行;(2)从上到下检查左侧相邻列;(3)检查右上邻居块;(4)检查左上块邻居块;(5)从左向右检查第一上方非相邻行;(6)从上到下检查第一左侧非相邻列;(7)从左向右检查第二上方非相邻行;以及(8)从上到下检查第二左侧非相邻列。
在TMVP之前将相邻候选(图1E中的1-3)放入MV预测值列表中,在TMVP之后将非相邻候选(也称为外部候选,即图1E中的候选4-8)放入MV预测值列表中。所有SMVP候选应该具有与当前块相同的参考图片。也就是说,如果当前块具有单个参考图片,MVP候选具有单个参考图片并且该参考图片与当前块的参考图片相同,或者MVP候选有复合参考图片(2个参考图片)并且这两个参考图片中的一个与当前块的参考图片相同,则将该MVP候选放入MV预测值列表中。如果当前块具有两个参考图片,则仅当具有两个参考图片并且这两个参考图片的MVP候选与当前块的参考图片相同时,才将该MVP候选放入预测值列表中。
时间运动矢量预测值(TMVP)
除了空间邻居块之外,还可以使用参考帧中的同位块来导出被称为时间MV预测值的MV预测值。为了生成时间MV预测值,首先将参考帧的MV与跟各个参考帧相关联的参考索引一起存储。此后,对于当前帧的每个8×8块,识别其轨迹穿过8×8块的参考帧的MV,并且将其与参考帧索引一起存储在时间MV缓冲器中。对于使用单个参考帧的帧间预测,不管参考帧是前向参考帧还是后向参考帧,MV都以8×8单位存储,用于执行未来帧的时间运动矢量预测。对于复合帧间预测,仅前向MV以8×8单位存储,用于执行未来帧的时间运动矢量预测。
参考图1G,参考帧1(R1)1620的MV(即,MVref 1650)从帧1(R1)1620指向。这样做时,MVref 1650通过当前帧的8×8块(当前帧1615中的块和参考帧0 1610中的块)。MVref存储在与该8×8块相关联的时间MV缓冲器中。在用于导出时间MV预测值的运动投影过程期间,可以以预定义顺序扫描参考帧:LAST_FRAME、BWDREF_FRAME、ALTREF_FRAME、ALTREF2_FRAME和LAST2_FRAME。来自较高索引的参考帧(按扫描顺序)的MV不替换由较低索引的参考帧(按扫描顺序)分配的先前识别的MV。
给定预定义块坐标,存储在时间MV缓冲器中的相关联MV被识别并且被投影到当前块上,以导出从当前块指向其参考帧的时间MV预测值,例如图1F中的MV0。
参考图1G,示出了用于导出16×16块的时间MV预测值的预定义块位置。检查多达七个块的有效时间MV预测值。在相邻空间MV预测值之后但在非相邻空间MV预测值之前检查时间MV预测值。
对于MV预测值的导出,可以汇集所有空间MV候选和时间MV候选,并且可以向每个预测值指配在空间邻居块和时间邻居块的扫描期间确定的权重。基于相关联的权重,可以对候选进行分类和排序,并且识别多达四个候选并且将其添加到MV预测值列表。该MV预测值列表也被称为动态参考列表(DRL),其进一步用于动态MV预测模式中,如在下一节中描述的。
用于额外MVP候选的额外搜索MVP
如果MVP列表仍然未满,则将执行额外的搜索,并且将使用额外的MVP候选来填充MVP列表。额外的MVP候选包括例如全局MV、零MV、没有缩放的组合复合MV等。
MVP候选重新排序过程
添加到MVP列表中的邻近SMVP候选、TMVP候选和非邻近SMVP候选将被重新排序。基于AV1和AVM中的当前设计,重新排序过程基于每个候选的权重。取决于当前块和候选块的重叠区域预定义候选的权重。
导出的MVP候选
提议CWG-B049在AVM参考软件中采用导出的MVP候选,其包含用于单个参考图片和复合模式的导出MVP。
单个帧间预测
如果邻居块的参考帧与当前块的参考帧不同,但是它们处于相同方向,则可以利用时间缩放算法来将其MV缩放为该参考帧,以便形成当前块的运动矢量的MVP。如图1H中所示,来自邻居块(阴影块)的mv1 1855可以用于以时间缩放导出当前块的运动矢量mv0 1850的MVP。
复合帧间预测
利用来自不同邻居块的合成MV来导出当前块的MVP,但是合成MV的参考帧需要与当前块相同。如图1I中所示,合成MV(mv2 1960,mv3 1965)具有与当前块相同的参考帧,但是它们来自不同的邻居块。
参考运动矢量候选库
每个缓冲器与唯一的参考帧类型相对应,该参考帧类型与单个或一对参考帧相对应,分别覆盖单个帧间模式和复合帧间模式。所有缓冲器的大小相同。当新的MV被添加到满的缓冲器时,可以驱逐现有的MV以为新的MV腾出空间。
除了利用常规AV1参考MV列表生成获得的参考MV候选之外,编码块还可以参考用于收集参考MV候选的MV候选库。在对超级块进行编码之后,可以利用超级块的编码块所使用的MV来更新MV库。
每个图块可以具有可以由该图块内的所有超级块利用的独立MV参考库。在对每个图块进行编码的开始处,可以清空对应的库。此后,当对该图块内的每个超级块进行编码时,来自库的MV可以用作MV参考候选。在对超级块进行编码的结束处,可以更新库。
库更新
如图2中的图200所示,库更新过程可以基于超级块。也就是说,在对超级块进行编码之后,将超级块内部的每个编码块所使用的第一(多达64个)候选MV添加到库。在更新期间,也可以在更新期间涉及修剪过程。
库参考
在完成常规AV1或新AV2参考MV候选扫描之后,如果候选列表中存在空闲槽位,则编解码器可以参考MV候选库(在具有匹配参考帧类型的缓冲器中)以获得附加的MV候选。从缓冲器的末尾向后到缓冲器的开始,如果列表中不存在MV,则可以将库缓冲器中的MV附加到候选列表。
最先进的设计中的MVP列表构建过程
在现有技术中,如图3中的流程图300所示,MVP列表可以利用完全修剪来构建。示例可以包括:操作305,其包括添加邻近SMVP;操作310,其包括添加TMVP;操作315,其包括添加非邻近SMVP;操作320,其包括添加现有候选的重新排序过程;操作325,其包括添加导出候选;操作330,其包括添加额外MVP候选;以及最后地,操作355,其包括添加来自参考MV候选库的候选。
图4示出了根据本公开实施例的通信系统400的示例性框图。通信系统400可包括至少两个终端410、420,所述终端410、420可通过网络450彼此通信。对于单向数据传输,第一终端410可在本地位置对视频数据进行编码以通过网络450传输到另一终端420。第二终端(220)可从网络450接收其他终端的已编码视频数据,对已编码视频数据进行解码,并显示恢复的视频数据。单向数据传输在媒体服务等应用中是较常见的。
图4示出了提供的支持已编码视频数据的双向传输的第二对终端430和440,所述双向传输可例如在视频会议期间发生。对于双向数据传输,在一个示例中,每个终端430、440可对本地位置采集的视频数据进行编码,以通过网络450传输另一终端装置。每个终端430、440还可接收由另一终端传输的已编码视频数据,且可对所述已编码视频数据进行解码,且可在一本地显示设备上显示恢复的视频数据。
在图4的实施例中,终端410、420、430和440可为服务器、个人计算机和智能电话,但本公开的原理可不限于此。本公开的实施例适用于膝上型计算机、平板电脑、媒体播放器和/或专用视频会议设备。网络450表示在终端410、420、430和440之间传送已编码视频数据的任何数目的网络,包括例如有线和/或无线通信网络。通信网络450可在电路交换和/或分组交换信道中交换数据。该网络可包括电信网络、局域网、广域网和/或互联网。出于本公开的目的,除非在下文中有所解释,否则网络450的架构和拓扑对于本公开的操作来说可能是无关紧要的。
作为所公开的主题的实施例,图5示出了视频编码器和视频解码器在流式传输环境例如流式传输系统500中的放置方式。所公开主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字TV、在包括CD、DVD、存储棒等的数字介质上存储压缩视频等等。
流式传输系统可包括采集子系统513,所述采集子系统513可包括数码相机等视频源501,所述视频源501创建例如未压缩的视频采样流502。所述视频采样流502被描绘为粗线以在与编码视频码流相比时强调高数据量,视频采样流502可由耦合到相机501的编码器503处理,所述编码器503可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。已编码的视频码流504被描绘为细线以在与采样流相比时强调较低数据量,其可存储在流式传输服务器505上以供将来使用。一个或多个流式传输客户端506、508可访问流式传输服务器505以检索已编码的视频码流504的副本507、509。客户端506可包括视频解码器510。视频解码器510对已编码的视频码流的传入副本进行解码,且产生可在显示器512或未示出的其他呈现设备上呈现的输出视频采样流511。在一些流式传输系统中,可根据某些视频编码/压缩标准对已编码的视频码流504、507、509进行编码。该些标准的实施例包括ITU-T H.265。在实施例中,正在开发的视频编解码标准非正式地称为通用视频编解码(Versatile Video Coding,VVC),所公开的主题可用于VVC标准的上下文中。
图6可以是根据本发明实施例的视频解码器510的功能框图。
接收器610可接收将由解码器510解码的一个或多个已编码视频序列;在同一实施例或另一实施例中,一次接收一个已编码视频序列,其中每个已编码视频序列的解码独立于其它已编码视频序列。可从信道612接收已编码视频序列,所述信道612可以是通向存储已编码的视频数据的存储装置的硬件/软件链路。接收器610可接收已编码的视频数据以及其它数据,例如,可转发到它们各自未示出的使用实体的已编码音频数据和/或辅助数据流。接收器610可将已编码视频序列与其它数据分开。为了防止网络抖动,缓冲存储器615可耦接在接收器610与熵解码器/解析器620(此后称为“解析器620”)之间。当接收器610从具有足够带宽和可控性的存储/转发装置或从等时同步网络接收数据时,也可能不需要配置缓冲存储器615,或可以将所述缓冲存储器做得较小。当然,为了在互联网等业务分组网络上使用,也可能需要缓冲存储器615,所述缓冲存储器可相对较大且可具有自适应性大小。
视频解码器510可包括解析器620以根据已熵编码视频序列重建符号(421)。这些符号的类别包括用于管理视频解码器510的操作的信息,以及用以控制诸如显示器512之类的显示装置的潜在信息,所述显示装置不是解码器的组成部分,但可耦接到解码器,如图6中所示。用于显示装置的控制信息可以是未示出的辅助增强信息(SupplementalEnhancement Information,SEI消息)或视频可用性信息(Video Usability Information,VUI)的参数集片段。解析器620可对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可根据视频编码技术或标准进行,且可遵循本领域技术人员熟知的各种原理,包括可变长度编码、霍夫曼编码(Huffman coding)、具有或不具有上下文灵敏度的算术编码等等。解析器620可基于对应于群组的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可包括图片群组(Group ofPictures,GOP)、图片、图块、切片、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等等。熵解码器/解析器还可从已编码视频序列提取信息,例如变换系数、量化器参数QP值、运动矢量等等。
解析器620可对从缓冲存储器615接收的视频序列执行熵解码/解析操作,从而创建符号621。解析器620可以接收已编码数据,并选择性地解码特定符号621。此外,解析器620可以确定是否将特定符号621提供给运动补偿预测单元653、缩放器/逆变换单元651、帧内预测单元652或环路滤波器656。
取决于已编码视频图片或一部分已编码视频图片例如帧间图片和帧内图片、帧间块和帧内块的类型以及其它因素,符号621的重建可涉及多个不同单元。涉及哪些单元以及涉及方式可由解析器620从已编码视频序列解析的子群控制信息控制。为了简洁起见,未描述解析器620与下文的多个单元之间的此类子群控制信息流。
除已经提及的功能块以外,解码器510可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施例中,这些单元中的许多单元彼此紧密交互并且可以彼此集成。然而,出于描述所公开主题的目的,概念上细分成下文的功能单元是适当的。
第一单元是缩放器/逆变换单元651。缩放器/逆变换单元651从解析器620接收作为符号621的量化变换系数以及控制信息,包括使用哪种变换方式、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元651可输出包括样本值的块,所述样本值可输入到聚合器655中。
在一些情况下,缩放器/逆变换单元651的输出样本可属于帧内编码块;即:不使用来自先前重建的图片的预测性信息,但可使用来自当前图片的先前重建部分的预测性信息的块。此类预测性信息可由帧内图片预测单元652提供。在一些情况下,帧内图片预测单元652采用从当前部分重建的图片658提取的周围已重建的信息生成大小和形状与正在重建的块相同的块。在一些情况下,聚合器655基于每个样本,将帧内预测单元652生成的预测信息添加到由缩放器/逆变换单元651提供的输出样本信息中。
在其它情况下,缩放器/逆变换单元651的输出样本可属于帧间编码和潜在运动补偿块。在此情况下,运动补偿预测单元653可访问参考图片存储器657以提取用于预测的样本。在根据符号对提取的样本进行运动补偿之后,这些样本可由聚合器655添加到缩放器/逆变换单元651的输出,在这种情况下这些样本可被称作残差样本或残差信号,从而生成输出样本信息。运动补偿单元从参考图片存储器内的地址获取预测样本可受到运动矢量控制,且所述运动矢量以所述符号621的形式而供运动补偿单元使用,所述符号621可以具有例如X、Y和参考图片分量。运动补偿还可包括在使用子样本精确运动矢量时,从参考图片存储器获取的样本值的内插、运动矢量预测机制等等。
聚合器655的输出样本可在环路滤波器单元656中被各种环路滤波技术采用。视频压缩技术可包括环路内滤波器技术,所述环路内滤波器技术受控于包括在已编码视频码流中的参数,且所述参数作为来自解析器620的符号621可用于环路滤波器单元656。然而,在其他实施例中,视频压缩技术还可响应于在解码已编码图片或已编码视频序列的先前按解码次序的部分期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。
环路滤波器单元656的输出可以是样本流,所述样本流可输出到显示装置512以及存储在参考图片存储器658中以用于后续的帧间图片预测。
一旦完全重建,某些已编码图片就可用作参考图片以用于将来预测。举例来说,一旦已编码图片被完全重建,且已编码图片已经被例如解析器620被识别为参考图片,则当前参考图片658可变为参考图片存储器657的一部分,且可在开始重建后续已编码图片之前重新分配新的当前图片存储器。
视频解码器510可根据例如ITU-T Rec.H.265标准中的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。对于合规性,还要求已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建取样率例如以每秒兆(mega)个样本为单位进行测量的最大重建取样率、最大参考图片大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(Hypothetical Reference Decoder,HRD)规范和在已编码视频序列中用信号表示的HRD缓冲器管理的元数据来进一步限定。
在实施例中,接收器610可连同已编码视频一起接收附加冗余数据。所述附加数据可以是已编码视频序列的一部分。所述附加数据可由视频解码器510用以对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可呈例如时间、空间或信噪比(signalnoise ratio,SNR)增强层、冗余切片、冗余图片、前向纠错码等形式。
图7示出了根据本公开实施例的视频编码器503的功能框图。
视频编码器503可从视频源501接收视频样本,所述视频源501不是可采集将由视频编码器503编码的视频图像的编码器的一部分。
视频源501可提供将由编码器503编码的呈数字视频样本流形式的源视频序列,所述数字视频样本流可具有任何合适位深度例如:8位、10位、12位……、任何色彩空间例如BT.601Y CrCB、RGB……和任何合适取样结构例如Y CrCb 4:2:0、Y CrCb4:4:4。在媒体服务系统中,视频源501可以是存储先前已准备的视频的存储装置。在视频会议系统中,视频源501可以是采集本地图像信息作为视频序列的相机。可将视频数据提供为多个单独的图片,当按顺序观看时,这些图片被赋予运动。图片自身可构建为空间像素阵列,其中取决于所用的取样结构、色彩空间等,每个像素可包括一个或多个样本。所属领域的技术人员可以很容易理解像素与样本之间的关系。下文侧重于描述样本。
根据实施例,编码器503可实时或在由应用所要求的任何其它时间约束下,将源视频序列的图片编码且压缩成已编码视频序列743。施行适当的编码速度是控制器750的一个功能。控制器750控制如下文所描述的其它功能单元且在功能上耦接到这些单元。为了简洁起见,图中未标示耦接。由控制器设置的参数可包括速率控制相关参数:图片跳过、量化器、率失真优化技术的λ值等、图片大小、图片群组(group of pictures,GOP)布局,最大运动矢量搜索范围等。本领域技术人员可以容易地识别控制器750的其它功能,因为这些功能可能涉及针对某一系统设计优化的编码器503。
一些视频编码器在本领域技术人员容易识别的“编码环路”中进行操作。作为简单的描述,编码环路可由编码器730的编码部分“源编码器”和嵌入于编码器503中的本地解码器733组成。所述源编码器此后负责基于待编码的输入图片创建符号。所述本地解码器733重建符号以创建样本数据,远程解码器也创建该样本数据,因为在公开的主题中所考虑的视频压缩技术中,符号与已编码视频码流之间的任何压缩是无损的。将重建的样本流输入到参考图片存储器734。由于符号流的解码产生与解码器位置本地或远程无关的位精确结果,因此参考图片缓冲区中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性基本原理以及在例如因信道误差而无法维持同步性的情况下产生的漂移对本领域内技术人员来说是众所周知的。
本地”解码器733的操作可与例如已在上文结合图6详细描述的“远程”解码器相同。然而,另外简要参考图7,当符号可用且熵编码器745和解析器620能够无损地将符号编码/解码为已编码视频序列时,包括信道612、接收器610、缓冲器615和解析器620在内的解码器510的熵解码部分,可能无法完全在本地解码器733中实施。
此时可以观察到,除存在于解码器中的解析/熵解码之外的任何解码器技术,也必定以基本上相同的功能形式存在于对应的编码器中。可简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术互逆。仅在某些区域中需要更详细的描述,并且在下文提供。
作为其操作的一部分,源编码器730可执行运动补偿预测编码。参考来自视频序列中被指定为“参考图片”的一个或多个先前已编码帧,所述运动补偿预测编码对输入帧进行预测性编码。以此方式,编码引擎732对输入帧的像素块与参考帧的像素块之间的差异进行编码,所述参考帧可被选作所述输入帧的预测参考。
本地视频解码器733可基于源编码器730创建的符号,对可指定为参考帧的已编码视频数据进行解码。编码引擎732的操作可为有损过程。当已编码视频数据可在图7中未示的视频解码器处被解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器7337复制解码过程,所述解码过程可由视频解码器对参考帧执行,且可使重建的参考帧存储在参考帧高速缓存734中。以此方式,编码器503可在本地存储重建的参考帧的副本,所述副本与将由远端视频解码器在不存在传输误差的情况下获得的重建参考帧具有共同内容。
预测器735可针对编码引擎732执行预测搜索。即,对于将要编码的新帧,预测器735可在参考图片存储器734中搜索可作为所述新帧的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考帧运动矢量、块形状等。预测器735可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,根据预测器735获得的搜索结果,可确定输入帧可具有从参考帧存储器734中存储的多个参考帧取得的预测参考。
控制器750可管理视频编码器730的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
可在熵编码器745中对所有上述功能单元的输出进行熵编码。熵编码器通过根据本领域技术人员已知的技术诸如霍夫曼编码、可变长度编码、算术编码等技术对各种功能单元生成的符号进行无损压缩,从而将所述符号转换成已编码视频序列。
传输器740可缓冲由熵编码器745创建的已编码视频序列,从而为通过通信信道760进行传输做准备,所述通信信道可以是通向将存储已编码的视频数据的存储装置的硬件/软件链路。传输器740可将来自编码器503的已编码视频数据与要传输的其它数据合并,所述其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。
控制器750可管理编码器503的操作。在编码期间,控制器750可以为每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配为以下任一种帧类型:
帧内图片(I图片),其可以是不将序列中的任何其它帧用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新图片。所属领域的技术人员了解I图片的变体及其相应的应用和特征。
预测性图片(P图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
双向预测性图片(B图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联元数据以用于重建单个块。
源图片通常可在空间上细分成多个样本块例如,4×4、8×8、4×8或16×16个样本的块,且逐块进行编码。这些块可参考其它已编码块进行预测编码,根据应用于块的相应图片的编码分配来确定所述其它块。举例来说,I图片的块可进行非预测编码,或所述块可参考同一图片空间预测或帧内预测的已经编码的块来进行预测编码。P图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时域预测进行非预测编码。B图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时域预测进行非预测编码。
编码器503可根据例如ITU-T H.265建议书的预定视频编码技术或标准执行编码操作。在操作中,编码器503可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所用视频编码技术或标准指定的语法。
在实施例中,传输器740可在传输已编码的视频时传输附加数据。视频编码器730可将此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/SNR增强层、诸如冗余图片和切片等其它形式的冗余数据、补充增强信息(SEI)消息、视觉可用性信息(VUI)参数集片段等。
图8图示了用从第一参考运动矢量候选库中检索运动矢量预测器于对参考运动矢量候选的库进行更新的示例性过程800。
在操作805处,可以从参考运动矢量候选库中检索与当前块相关联的一个或多个运动矢量预测值。从参考运动矢量候选库中检索到的与当前块相关联的一个或多个运动矢量预测值可以包括与一个或多个已解码块相关联的至少一个或多个运动矢量,并且该一个或多个已解码块可以与当前块属于相同的超级块。在一些实施例中,基于恢复的参考顺序从参考运动矢量候选库中检索与当前块相关联的所述一个或多个检索到的运动矢量预测值。该参考顺序的指示可以基于满足的条件。这些条件可以基于以下之一:当前块的大小;一个或多个量化参数值;或屏幕内容的散列命中率。
在操作810处,可以基于检索到的一个或多个运动矢量预测值来确定与当前块相关联的运动矢量。在操作815处,可以基于确定的运动矢量来对当前块进行解码。在一些实施例中,可以在基于插入到参考运动矢量候选库中的与当前块相关联的运动矢量对当前块进行解码之后,对同一超级块中的另一块进行解码。在操作820处,可以通过将与当前块相关联的运动矢量插入到参考运动矢量候选库中来更新参考运动矢量候选库。
在一些实施例中,在操作825处,更新参考运动矢量候选库可以包括在对相同超级块中的所有块进行解码之后,将与当前块相关联的运动矢量插入到参考运动矢量候选库中。
在操作830处,在一些实施例中,更新参考运动矢量候选库可以包括在对与当前块相关联的四叉树的预定义级别中的所有块进行解码之后,将与当前块相关联的运动矢量插入到参考运动矢量候选库中。四叉树的预定义级别可以是四叉树在超级块级别之后的第一级。可以以高级语法发信号通知四叉树的预定义级。
根据实施例,在操作835处,更新参考运动矢量候选库可以包括在对当前块周围的预定义区域中的所有块进行解码之后,将与当前块相关联的运动矢量插入到参考运动矢量候选库中。当前块周围的预定义区域可以包括块大小或诸如64×64、32×64等的固定区域。
在一些实施例中,操作805-835可以包括作为第一参考运动矢量候选库的所述参考运动矢量候选库,以及作为第二参考运动矢量候选库的另一参考运动矢量候选库。更新参考运动矢量可以包括:通过在对与当前块相关联的四叉树的预定义级别中的所有块进行解码之后,将与当前块相关联的运动矢量插入到第二参考运动矢量候选库中来更新第二参考运动矢量候选库。
在一些实施例中,基于作为第一参考运动矢量候选库的所述参考运动矢量候选库和作为第二参考运动矢量候选库的另一参考运动矢量候选库,当正被解码的当前块的大小可能大于阈值时,可以在操作815中基于第一参考运动矢量候选库中的一个或多个第一运动矢量来对当前块进行解码。在相同或另一实施例中,当当前块的大小可能小于或等于阈值时,可以在操作815中基于第二参考运动矢量候选库中的一个或多个第二运动矢量来对当前块进行解码。
根据实施例,执行操作825-835中的操作,可以使用可以与当前块相关联的标志,该标志指示将使用来自第一参考运动矢量候选库或来自第二参考运动矢量候选库的运动矢量。
虽然图8示出了过程800的示例框,但是在一些实现中,过程800可以包括与图8中描绘的那些框相比附加的框、更少的框、不同的框或不同排列的框。附加地或可替代地,可以并行地执行过程800的两个或更多个框。
进一步地,所提出的方法可以通过处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一个示例中,一个或多个处理器执行存储在非易失性计算机可读介质中的程序以执行所提出的方法中的一种或多种。
上述技术可以实现为使用计算机可读指令的计算机软件,并物理存储在一个或多个计算机可读介质中。例如,图9示出了计算机系统900,其适用于实现所公开主题的某些实施例的技术方案。
所述计算机软件可通过任何合适的机器代码或计算机语言进行编码,通过汇编、编译、链接等机制创建包括指令的代码,所述指令可由计算机中央处理单元(CPU),图形处理单元(GPU)等直接执行或通过译码、微代码等方式执行。
所述指令可以在各种类型的计算机或其组件上执行,包括例如个人计算机、平板电脑、服务器、智能手机、游戏设备、物联网设备等。
图9所示的用于计算机系统900的组件本质上是示例性的,并不用于对实现本公开实施例的计算机软件的使用范围或功能进行任何限制。也不应将组件的配置解释为与计算机系统900的示例性实施例中所示的任一组件或其组合具有任何依赖性或要求。
计算机系统900可以包括某些人机界面输入设备。这种人机界面输入设备可以通过触觉输入(如:键盘输入、滑动、数据手套移动)、音频输入(如:声音、掌声)、视觉输入(如:手势)、嗅觉输入(未示出),对一个或多个人类用户的输入做出响应。所述人机界面设备还可用于捕获某些媒体,气与人类有意识的输入不必直接相关,如音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止影像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
人机界面输入设备可以包括键盘901、鼠标902、触控板903、触摸屏910、数据手套1204、操纵杆905、麦克风906、扫描仪907、照相机908中的一个或多个(每种仅示出了其中的一个)。
计算机系统900还可以包括某些人机界面输出设备。这种人机界面输出设备可以通过例如触觉输出、声音、光和嗅觉/味觉来刺激一个或多个人类用户的感觉。这样的人机界面输出设备可包括触觉输出设备(例如通过触摸屏910、数据手套1204或操纵杆905的触觉反馈,但也可以有不用作输入设备的触觉反馈设备)、音频输出设备(例如,扬声器909、耳机(未示出))、视觉输出设备(例如屏幕910,包括阴极射线管(CRT)屏幕、液晶显示器(LCD)屏幕、等离子屏幕、有机发光二极管(OLED)屏幕,其中每一个都具有或没有触摸屏输入功能、每一个都具有或没有触觉反馈功能——其中一些可通过诸如立体画面输出的手段输出二维视觉输出或三维以上的输出;虚拟现实眼镜(未示出)、全息显示器和放烟箱(未示出))以及打印机(未示出)。
计算机系统900还可以包括人类可访问的存储设备及其相关介质,如包括具有CD/DVD的高密度只读/可重写式光盘(CD/DVD ROM/RW)920或类似介质921的光学介质、拇指驱动器922、可移动硬盘驱动器或固体状态驱动器923,诸如磁带和软盘(未示出)的传统磁介质,诸如安全软件保护器(未示出)等的基于ROM/ASIC/PLD的专用设备,等等。
本领域技术人员还应当理解,结合所公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其它瞬时信号。
计算机系统900还可以包括通往一个或多个通信网络955的接口。例如,网络955可以是无线的、有线的、光学的。网络955还可为局域网、广域网、城域网、车载网络和工业网络、实时网络、延迟容忍网络等等。网络955还包括以太网、无线局域网、蜂窝网络(GSM、3G、4G、5G、LTE等)等局域网、电视有线或无线广域数字网络(包括有线电视、卫星电视、和地面广播电视)、车载和工业网络(包括CANBus)等等。某些网络955通常需要外部网络接口适配器954,用于连接到某些通用数据端口或外围总线949(例如,计算机系统900的USB端口);其它系统通常通过连接到如下所述的系统总线集成到计算机系统900的核心(例如,以太网接口集成到PC计算机系统或蜂窝网络接口集成到智能电话计算机系统)。通过使用这些网络955中的任何一个,计算机系统900可以与其它实体进行通信。所述通信可以是单向的,仅用于接收(例如,无线电视),单向的仅用于发送(例如CAN总线到某些CAN总线设备),或双向的,例如通过局域或广域数字网络到其它计算机系统。上述的每个网络955和网络接口954可使用某些协议和协议栈。
上述的人机界面设备、人可访问的存储设备以及网络接口可以连接到计算机系统900的核心940。
核心940可包括一个或多个中央处理单元(CPU)941、图形处理单元(GPU)942、以现场可编程门阵列(FPGA)943形式的专用可编程处理单元、用于特定任务的硬件加速器944等。这些设备以及只读存储器(ROM)945、随机存取存储器(RAM)946、内部大容量存储器(例如内部非用户可存取硬盘驱动器、固态硬盘(SSD)等)947等可通过系统总线1248进行连接。在某些计算机系统中,可以以一个或多个物理插头的形式访问系统总线1248,以便可通过额外的中央处理单元、图形处理单元等进行扩展。外围装置可直接附接到核心的系统总线1248,或通过外围总线949进行连接。外围总线的体系结构包括外部外围组件互联PCI、通用串行总线USB等。
CPU 941、GPU 942、FPGA943和加速器944可以执行某些指令,这些指令组合起来可以构成上述计算机代码。该计算机代码可以存储在ROM 945或RAM 946中。过渡数据也可以存储在RAM 946中,而永久数据可以存储在例如内部大容量存储器947中。通过使用高速缓冲存储器可实现对任何存储器设备的快速存储和检索,高速缓冲存储器可与一个或多个CPU 941、GPU 942、大容量存储器947、ROM 945、RAM 946等紧密关联。
所述计算机可读介质上可具有计算机代码,用于执行各种计算机实现的操作。介质和计算机代码可以是为本公开的目的而特别设计和构造的,也可以是计算机软件领域的技术人员所熟知和可用的介质和代码。
作为实施例而非限制,具有体系结构900的计算机系统,特别是核心940,可以作为处理器(包括CPU、GPU、FPGA、加速器等)提供执行包含在一个或多个有形的计算机可读介质中的软件的功能。这种计算机可读介质可以是与上述的用户可访问的大容量存储器相关联的介质,以及具有非易失性的核心940的特定存储器,例如核心内部大容量存储器947或ROM945。实现本公开的各种实施例的软件可以存储在这种设备中并且由核心940执行。根据特定需要,计算机可读介质可包括一个或一个以上存储设备或芯片。该软件可以使得核心940特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所述的特定过程或特定过程的特定部分,包括定义存储在RAM946中的数据结构以及根据软件定义的过程来修改这种数据结构。另外或作为替代,计算机系统可以提供逻辑硬连线或以其它方式包含在电路(例如,加速器944)中的功能,该电路可以代替软件或与软件一起运行以执行本文所述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包括逻辑,反之亦然。在适当的情况下,对计算机可读介质的引用可包括存储执行软件的电路(如集成电路(IC)),包含执行逻辑的电路,或两者兼备。本公开包括任何合适的硬件和软件组合。
]虽然本公开描述了几个示例性实施例,但任何变化、排列和各种替代等效方案,均落在本公开的范围内。可以理解,根据本申请本领域技术人员将能够设计出许多系统和方法,这些系统和方法虽然未在本文中明确示出或描述,但只要体现了本公开的原理,便在本公开的精神和范围内。
Claims (20)
1.一种用于对视频数据进行解码的方法,所述方法由至少一个处理器执行,其特征在于,所述方法包括:
从参考运动矢量候选库中检索与当前块相关联的多个运动矢量预测值,检索到的所述多个运动矢量预测值与多个已解码块相关联,并且所述多个已解码块与所述当前块属于相同的超级块;
基于检索到的所述多个运动矢量预测值确定与所述当前块相关联的运动矢量;
通过将与所述当前块相关联的所述运动矢量插入到所述参考运动矢量候选库中来更新所述参考运动矢量候选库;以及
基于确定的与所述当前块相关联的运动矢量对所述当前块进行解码。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
基于插入到所述参考运动矢量候选库中的与所述当前块相关联的所述运动矢量来对所述相同超级块中的另一块进行解码。
3.根据权利要求1所述的方法,其特征在于,更新所述参考运动矢量候选库包括:
在对所述相同超级块中的所有块进行解码之后,将与所述当前块相关联的所述运动矢量插入到所述参考运动矢量候选库中。
4.根据权利要求1所述的方法,其特征在于,更新所述参考运动矢量候选库包括:
在对与所述当前块相关联的四叉树的预定义级别中的所有块进行解码之后,将与所述当前块相关联的所述运动矢量插入到所述参考运动矢量候选库中。
5.根据权利要求4所述的方法,其特征在于,所述四叉树的所述预定义级别是所述四叉树在超级块级别之后的第一级,并且其中所述四叉树的所述预定义级别以高级语法被发信号通知。
6.根据权利要求1所述的方法,其特征在于,更新所述参考运动矢量候选库包括:
在对所述当前块周围的预定义区域中的所有块进行解码之后,将与所述当前块相关联的所述运动矢量插入到所述参考运动矢量候选库中。
7.根据权利要求1所述的方法,其特征在于,所述参考运动矢量候选库是第一参考运动矢量候选库,并且所述方法进一步包括:
在对与所述当前块相关联的四叉树的预定义级别中的所有块进行解码之后,将与所述当前块相关联的所述运动矢量插入到所述第二参考运动矢量候选库中来更新第二参考运动矢量候选库。
8.根据权利要求7所述的方法,其特征在于,所述四叉树的预定义级别是所述四叉树在超级块级别之后的第一级。
9.根据权利要求7所述的方法,其特征在于,进一步包括:
基于被解码的当前块的大小大于阈值而基于所述第一参考运动矢量候选库中的多个第一运动矢量来对所述当前块进行解码;或
基于当前块的大小小于或等于所述阈值而基于所述第二参考运动矢量候选库中的多个第二运动矢量来对所述当前块进行解码。
10.根据权利要求7所述的方法,其特征在于,进一步包括:对与所述当前块相关联的标志进行解码,所述标志指示将使用来自所述第一参考运动矢量候选库或来自所述第二参考运动矢量候选库的运动矢量。
11.根据权利要求1所述的方法,其特征在于,检索到的所述多个运动矢量预测值是基于恢复的参考顺序来检索的。
12.根据权利要求11所述的方法,其特征在于,所述恢复的参考顺序用于基于被满足的条件从所述参考运动矢量候选库中检索与所述当前块相关联的所述多个检索到的运动矢量预测值。
13.根据权利要求12所述的方法,其特征在于,所述条件基于以下之一:
所述当前块的大小;
量化参数值;或
屏幕内容的散列命中率。
14.一种用于对视频数据进行解码的设备,其特征在于,所述设备包括:
至少一个存储器,所述至少一个存储器被配置为存储程序代码;以及
至少一个处理器,所述至少一个处理器被配置为读取所述程序代码并且如所述程序代码所指示地操作,所述程序代码包括:
检索代码,所述检索代码被配置为致使所述至少一个处理器从参考运动矢量候选库中检索与当前块相关联的多个运动矢量预测值,检索到的所述多个运动矢量预测值与多个已解码块相关联,并且所述多个已解码块属于与所述当前块相同的超级块;
确定代码,所述确定代码被配置为致使所述至少一个处理器基于检索到的所述多个运动矢量预测值来确定与所述当前块相关联的运动矢量;
第一更新代码,所述第一更新代码被配置为致使所述至少一个处理器通过将与所述当前块相关联的所述运动矢量插入到所述参考运动矢量候选库中来更新所述参考运动矢量候选库;以及
第一解码代码,所述第一解码代码被配置为致使所述至少一个处理器基于确定的与所述当前块相关联的运动矢量来对所述当前块进行解码。
15.根据权利要求14所述的设备,其特征在于,所述程序代码包括:
第一插入代码,所述第一插入代码被配置为致使所述至少一个处理器在对相同超级块中的所有块进行解码之后,将与所述当前块相关联的所述运动矢量插入到所述参考运动矢量候选库中。
16.根据权利要求14所述的设备,其特征在于,所述程序代码包括:
第二插入代码,所述第二插入代码被配置为致使所述至少一个处理器在对与所述当前块相关联的四叉树的预定义级别中的所有块进行解码之后,将与所述当前块相关联的所述运动矢量插入到所述参考运动矢量候选库中。
17.根据权利要求14所述的设备,其特征在于,所述程序代码包括:
第三插入代码,所述第三插入代码被配置为致使所述至少一个处理器在对所述当前块周围的预定义区域中的所有块进行解码之后,将与所述当前块相关联的所述运动矢量插入到所述参考运动矢量候选库中。
18.根据权利要求14所述的设备,其特征在于,所述参考运动矢量候选库是第一参考运动矢量候选库,并且所述程序代码进一步包括:
第二更新代码,所述第二更新代码被配置为致使所述至少一个处理器在对与所述当前块相关联的四叉树的预定义级别中的所有块进行解码之后,将与所述当前块相关联的所述运动矢量插入到所述第二参考运动矢量候选库中来更新第二参考运动矢量候选库。
19.根据权利要求18所述的设备,其特征在于,所述程序代码进一步包括:
第二解码代码,所述第二解码代码被配置为致使所述至少一个处理器基于被解码的当前块的大小大于阈值而基于所述第一参考运动矢量候选库中的多个第一运动矢量对所述当前块进行解码;或
第三解码代码,所述第三解码代码被配置为致使所述至少一个处理器基于当前块的大小小于或等于所述阈值而基于所述第二参考运动矢量候选库中的多个第二运动矢量来对所述当前块进行解码。
20.一种存储指令的非易失性计算机可读介质,其特征在于,所述指令包括一个或多个指令,所述一个或多个指令在由设备的一个或多个处理器执行时对视频数据进行解码,致使所述一个或多个处理器:从参考运动矢量候选库中检索与当前块相关联的多个运动矢量预测值,多个检索到的运动矢量预测值与多个已解码块相关联,并且所述多个已解码块属于与所述当前块相同的超级块;
基于所述多个检索到的运动矢量预测值来确定与所述当前块相关联的运动矢量;
通过将与所述当前块相关联的所述运动矢量插入到所述参考运动矢量候选库中来更新所述参考运动矢量候选库;以及
基于与所述当前块相关联的确定的运动矢量来对所述当前块进行解码。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263342744P | 2022-05-17 | 2022-05-17 | |
US63/342,744 | 2022-05-17 | ||
US17/941,175 | 2022-09-09 | ||
US17/941,175 US20230379451A1 (en) | 2022-05-17 | 2022-09-09 | Reference motion vector candidates bank improvements |
PCT/US2022/043309 WO2023224650A1 (en) | 2022-05-17 | 2022-09-13 | Reference motion vector candidates bank improvements |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118556399A true CN118556399A (zh) | 2024-08-27 |
Family
ID=88791177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280085649.0A Pending CN118556399A (zh) | 2022-05-17 | 2022-09-13 | 参考运动矢量候选库改进 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230379451A1 (zh) |
KR (1) | KR20240132481A (zh) |
CN (1) | CN118556399A (zh) |
WO (1) | WO2023224650A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11095909B2 (en) * | 2018-06-25 | 2021-08-17 | Panasonic Intellectual Property Corporation Of America | Encoder, decoder, encoding method, and decoding method |
WO2020053329A1 (en) * | 2018-09-14 | 2020-03-19 | Koninklijke Kpn N.V. | Video coding based on global motion compensated motion vectors |
US11917174B2 (en) * | 2020-06-08 | 2024-02-27 | Qualcomm Incorporated | Decoded picture buffer (DPB) operations and access unit delimiter (AUD) |
-
2022
- 2022-09-09 US US17/941,175 patent/US20230379451A1/en active Pending
- 2022-09-13 CN CN202280085649.0A patent/CN118556399A/zh active Pending
- 2022-09-13 KR KR1020247026178A patent/KR20240132481A/ko active Search and Examination
- 2022-09-13 WO PCT/US2022/043309 patent/WO2023224650A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
KR20240132481A (ko) | 2024-09-03 |
US20230379451A1 (en) | 2023-11-23 |
WO2023224650A1 (en) | 2023-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110944202B (zh) | 视频编解码方法、装置、计算机设备和存储介质 | |
CN113261298A (zh) | 用于视频编码的方法和装置 | |
CN113545042A (zh) | 三角预测中的合并列表构建 | |
JP7372327B2 (ja) | ビデオ復号の方法及び機器、及びコンピュータプログラム | |
CN113615192B (zh) | 视频解码的方法、装置及存储介质 | |
CN115002483A (zh) | 视频编解码方法及装置 | |
CN113170095B (zh) | 用于视频编解码的方法和装置 | |
JP7233539B2 (ja) | ビデオ・コーディングのための方法、装置及びコンピュータ・プログラム | |
CN113228649B (zh) | 视频解码方法、装置以及存储介质 | |
CN113661702A (zh) | 视频编解码的方法和装置 | |
CN116584092B (zh) | 视频块解码方法、装置和存储介质 | |
CN115428445A (zh) | 用于视频编码的方法和装置 | |
CN116671107A (zh) | 基于分组的合并候选的自适应重新排序 | |
CN116686289A (zh) | 用于单参考运动矢量差的自适应精度 | |
CN116830581A (zh) | 用于运动矢量差的经改进的信令方法和装置 | |
CN116941243A (zh) | 自适应运动矢量差分辨率的联合编码 | |
CN111726622A (zh) | 视频解码的方法和装置 | |
CN116601955A (zh) | 运动矢量差的自适应分辨率 | |
CN117256146A (zh) | 用于jmvd的基于双边匹配的缩放因子推导 | |
KR20240134942A (ko) | 공동 mvd 코딩을 위한 유연한 스케일링 인자 | |
CN116491119A (zh) | 使用模板匹配的具有运动矢量差的可选合并模式 | |
CN116830582A (zh) | 运动矢量差的自适应分辨率与运动矢量相关参数的写入/导出之间的依赖关系 | |
CN112399186B (zh) | 视频解码方法、装置及存储介质 | |
CN115176461A (zh) | 视频编解码的方法和装置 | |
US12081792B2 (en) | Adjacent spatial motion vector predictor candidates improvement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |