CN112534820B - 信令通知子预测单元运动矢量预测器 - Google Patents
信令通知子预测单元运动矢量预测器 Download PDFInfo
- Publication number
- CN112534820B CN112534820B CN201980040250.9A CN201980040250A CN112534820B CN 112534820 B CN112534820 B CN 112534820B CN 201980040250 A CN201980040250 A CN 201980040250A CN 112534820 B CN112534820 B CN 112534820B
- Authority
- CN
- China
- Prior art keywords
- prediction
- block
- motion
- sub
- prediction unit
- 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
- 239000013598 vector Substances 0.000 title claims abstract description 238
- 230000011664 signaling Effects 0.000 title description 11
- 238000000034 method Methods 0.000 claims abstract description 86
- 230000015654 memory Effects 0.000 claims description 49
- 230000002123 temporal effect Effects 0.000 claims description 46
- 238000009795 derivation Methods 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 20
- 238000003860 storage Methods 0.000 claims description 18
- 238000004891 communication Methods 0.000 claims description 17
- 238000005192 partition Methods 0.000 description 36
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 34
- 238000012545 processing Methods 0.000 description 34
- 238000013139 quantization Methods 0.000 description 27
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 20
- 241000023320 Luma <angiosperm> Species 0.000 description 20
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 20
- 238000000638 solvent extraction Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 11
- 230000002146 bilateral effect Effects 0.000 description 6
- 239000000872 buffer Substances 0.000 description 6
- 238000013500 data storage Methods 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000003780 insertion Methods 0.000 description 5
- 230000037431 insertion Effects 0.000 description 5
- 230000011218 segmentation Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 239000004744 fabric Substances 0.000 description 4
- 238000013138 pruning Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 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 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 125000001997 phenyl group Chemical group [H]C1=C([H])C([H])=C(*)C([H])=C1[H] 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Abstract
一种解码视频数据的方法,包括:从接收的编码的视频数据解析子预测单元运动标志,如果所述子预测单元运动标志是有效的,则推导子预测单元级运动预测候选的列表,如果所述子预测单元运动标志是非有效的,则推导预测单元级运动预测候选的列表,以及使用选择的运动矢量预测器对所述编码的视频数据进行解码。
Description
相关申请的交叉引用
本申请要求于2019年6月17日提交的序列号为16/443,113的美国非临时申请和于2018年6月19日提交的序列号为62/687,052的美国临时申请的权益,其全部内容通过引用并入本文。
技术领域
本公开涉及视频编码和视频解码。
背景技术
数字视频能力可以被合并到广泛的设备中,包括数字电视、数字直接广播***、无线广播***、个人数字助理(PDA)、膝上型或台式计算机、平板计算机、电子书阅读器、数码相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电电话、所谓的“智能电话”、视频电话会议设备、视频流设备等等。数字视频设备实现视频编译码(codin g)技术,诸如由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分、高级视频编译码(AVC)、高效视频编译码(HEVC)标准、ITU-T H.265/高效视频编译码(HEVC)以及这些的标准的扩展定义的标准中描述的那些技术。通过实现这样的视频编译码技术,视频设备可以更有效地发送、接收、编码、解码和/或存储数字视频信息。
视频编译码技术包括空间(图像内)预测和/或时间(图像间)预测,以减少或移除视频序列中固有的冗余。对于基于块的视频编解码,视频条带(即,视频图像或视频图像的一部分)可以被分割成视频块,其也可以被称为编译码树单元(CTU)、编译码单元(CU)和/或编译码节点。使用针对同一图像中的相邻块中的参考样点的空间预测来编码图像的帧内编译码的(I)条带中的视频块。图像的帧间编译码的(P或B)条带中的视频块可以使用针对同一图像中的相邻块中的参考样点的空间预测,或针对其它参考图像中的参考样点的时间预测。图像可被称为帧,并且参考图像可被称为参考帧。
发明内容
通常,本公开涉及视频编解码器中的运动矢量预测。例如,从推导的运动矢量预测候选的两个列表中自适应地选择运动矢量预测器。第一列表包括PU级运动矢量预测候选,第二列表包括子PU级运动矢量预测候选。
在一个示例实施例中,论述了对视频数据进行解码的方法。所述方法包括:接收编码的视频数据;从所述编码的视频数据解析子预测单元运动标志;响应于确定所述子预测单元运动标志是有效的,推导子预测单元级运动预测候选的列表;响应于确定所述子预测单元运动标志是非有效的,推导预测单元级运动预测候选的列表;从所述子预测单元级运动预测候选的列表或所述预测单元级运动预测候选的列表中选择运动矢量预测器;以及使用所选择的运动矢量预测器对所述编码的视频数据进行解码。所述编码的视频数据包括当前块,并且其中,所述子预测单元级运动预测候选的列表和所述预测单元级运动预测候选的列表从所述当前块的相邻块被推导。所述相邻块是当前图像中的所述当前块的空间相邻者或先前编译码的图像中的所述当前块的时间相邻者。所述子预测单元级运动预测候选的列表或所述预测单元级运动预测候选的列表至少部分地基于所述相邻块中的运动预测发生而被排序。预测单元中的像素共享第一运动矢量信息并且子预测单元中的像素共享第二运动矢量信息,并且其中,所述第一运动矢量信息或所述第二矢量信息从所选择的运动矢量预测器被确定。所述预测单元级运动矢量候选列表包括以下各项中的至少一项:空间相邻候选和时间相邻候选。所述子预测单元级运动预测候选的列表包括以下各项中的至少一项:仿射运动矢量预测、可选时间运动矢量预测(alternative temporal motion vectorprediction,ATMVP)、空间-时间运动矢量预测(spatial-temporal motion vectorprediction,STMVP)、平面运动矢量预测和模式匹配运动矢量推导(planar motion vectorprediction,PMVD)。所述方法还包括:响应于确定所述子预测单元运动标志是有效的,推导合并候选索引,其中,所述合并候选索引指定要被选择的所述运动矢量预测器。
在另一示例实施例中,论述了用于对视频数据进行解码的装置。所述装置包括用于存储接收的编码的视频数据的存储器和处理器。所述处理器被配置为:从所述编码的视频数据解析子预测单元运动标志;响应于确定所述子预测单元运动标志是有效的,推导子预测单元级运动预测候选的列表;响应于确定所述子预测单元运动标志是非有效的,推导预测单元级运动预测候选的列表;从所述子预测单元级运动预测候选的列表或所述预测单元级运动预测候选的列表中选择运动矢量预测器;以及使用所选择的运动矢量预测器对所述编码的视频数据进行解码。所述编码的视频数据包括当前块,并且其中,所述子预测单元级运动预测候选的列表和所述预测单元级运动预测候选的列表从所述当前块的相邻块被推导。所述相邻块是当前图像中的所述当前块的空间相邻者或先前编译码的图像中的所述当前块的时间相邻者。所述子预测单元级运动预测候选的列表或所述预测单元级运动预测候选的列表至少部分地基于所述相邻块中的运动预测发生而被排序。预测单元中的像素共享第一运动矢量信息并且子预测单元中的像素共享第二运动矢量信息,并且其中,所述第一运动矢量信息或所述第二矢量信息从所选择的运动矢量预测器被确定。所述预测单元级运动矢量候选列表包括以下各项中的至少一项:空间相邻候选和时间相邻候选。所述子预测单元级运动预测候选的列表包括以下各项中的至少一项:仿射运动矢量预测、可选时间运动矢量预测(ATMVP)、空间-时间运动矢量预测(STMVP)、平面运动矢量预测和模式匹配运动矢量推导(PMVD)。所述处理器还被配置为响应于确定所述子预测单元运动标志是有效的,推导合并候选索引,其中,所述合并候选索引指定要被选择的所述运动矢量预测器。
在另一示例实施例中,论述了一种用于对视频数据进行解码的装置,所述装置包括用于存储接收的编码的视频数据的存储器部件和处理器部件。所述处理器部件被配置为:从所述编码的视频数据解析子预测单元运动标志;响应于确定所述子预测单元运动标志是有效的,推导子预测单元级运动预测候选的列表;响应于确定所述子预测单元运动标志是非有效的,推导预测单元级运动预测候选的列表;从所述子预测单元级运动预测候选的列表或所述预测单元级运动预测候选的列表中选择运动矢量预测器;以及使用所选择的运动矢量预测器对所述编码的视频数据进行解码。所述编码的视频数据包括当前块,并且其中,所述子预测单元级运动预测候选的列表和所述预测单元级运动预测候选的列表从所述当前块的相邻块被推导。所述相邻块是当前图像中的所述当前块的空间相邻者或先前编译码的图像中的所述当前块的时间相邻者。所述子预测单元级运动预测候选的列表或所述预测单元级运动预测候选的列表至少部分地基于所述相邻块中的运动预测发生而被排序。预测单元中的像素共享第一运动矢量信息并且子预测单元中的像素共享第二运动矢量信息,并且其中,所述第一运动矢量信息或所述第二矢量信息从所选择的运动矢量预测器被确定。所述预测单元级运动矢量候选列表包括以下各项中的至少一项:空间相邻候选和时间相邻候选。所述子预测单元级运动预测候选的列表包括以下各项中的至少一项:仿射运动矢量预测、可选时间运动矢量预测(ATMVP)、空间-时间运动矢量预测(STMVP)、平面运动矢量预测和模式匹配运动矢量推导(PMVD)。所述处理器部件还被配置为响应于确定所述子预测单元运动标志是有效的,推导合并候选索引,其中,所述合并候选索引指定要被选择的所述运动矢量预测器。
在另一示例实施例中,一种其上存储有指令的非暂时性计算机可读存储介质,所述指令在被执行时使得一个或多个处理器执行方法。所述方法包括:接收编码的视频数据;从所述编码的视频数据解析子预测单元运动标志;响应于确定所述子预测单元运动标志是有效的,推导子预测单元级运动预测候选的列表;响应于确定所述子预测单元运动标志是非有效的,推导预测单元级运动预测候选的列表;从所述子预测单元级运动预测候选的列表或所述预测单元级运动预测候选的列表中选择运动矢量预测器;以及使用所选择的运动矢量预测器对所述编码的视频数据进行解码。所述编码的视频数据包括当前块,并且其中,所述子预测单元级运动预测候选的列表和所述预测单元级运动预测候选的列表从所述当前块的相邻块被推导。所述相邻块是当前图像中的所述当前块的空间相邻者或先前编译码的图像中的所述当前块的时间相邻者。所述子预测单元级运动预测候选的列表或所述预测单元级运动预测候选的列表至少部分地基于所述相邻块中的运动预测发生而被排序。预测单元中的像素共享第一运动矢量信息并且子预测单元中的像素共享第二运动矢量信息,并且其中,所述第一运动矢量信息或所述第二矢量信息从所选择的运动矢量预测器被确定。所述预测单元级运动矢量候选列表包括以下各项中的至少一项:空间相邻候选和时间相邻候选。所述子预测单元级运动预测候选的列表包括以下各项中的至少一项:仿射运动矢量预测、可选时间运动矢量预测(ATMVP)、空间-时间运动矢量预测(STMVP)、平面运动矢量预测和模式匹配运动矢量推导(PMVD)。所述方法还包括响应于确定所述子预测单元运动标志是有效的,推导合并候选索引,其中,所述合并候选索引指定要被选择的所述运动矢量预测器。
在以下附图和描述中阐述了一个或多个示例的细节。其它特征、目的和优点将从说明书、附图和权利要求书中显而易见。
附图说明
图1为示出可执行本公开的技术的示例视频编码和解码***的框图。
图2A和2B是示出示例四叉树二叉树(quadtree binary tree,QTBT)结构和相应的编译码树单元(coding tree unit,CTU)的概念图。
图3是示出运动矢量预测器推导的流程图。
图4是示出针对合并模式的空间相邻运动矢量候选的概念图。
图5是示出时间运动矢量候选的概念图。
图6示出候选运动矢量块选择技术。
图7是示出空间-时间运动矢量预测(Spatial-Temporal Motion VectorPrediction,STMVP)的概念图。
图8是示出双边匹配技术的概念图。
图9是示出模板匹配技术的概念图。
图10是示出平面运动矢量预测的概念图。
图11是示出可执行本公开的技术的示例视频编码器的框图。
图12是示出可执行本公开的技术的示例视频解码器的框图。
具体实施方式
本公开涉及解码器侧运动矢量推导(decoder-side motion vector derivation,DMVD)。在本公开中描述的解码器侧运动矢量推导技术可与现有视频编解码器中的任一个(诸如HEVC(高效视频编译码))结合使用,或可以被用作用于任何未来视频编译码标准(诸如H.266通用视频编译码(VVC)和基础视频编译码(EVC))的编译码技术。
图1是示出可执行本公开的技术的示例视频编码和解码***100的框图。本公开的技术总体上涉及编译码(编码和/或解码)视频数据,并且更具体地,涉及本文中所论述的技术。通常,视频数据包含用于处理视频的任何数据。因此,视频数据可包含原始、未编译码的视频、编码的视频、解码的(例如,重构的)视频以及视频元数据,诸如信令数据。
如图1中所示,在该示例中,***100包含源设备102,其中,所述源设备提供待由目的地设备116解码和显示的编码的视频数据。具体而言,源设备102经由计算机可读介质110将视频数据提供给目的地设备116。源设备102和目的地设备116可包括广泛的设备中的任一个,包括:台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、电话手持设备(诸如智能电话)、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备等。在一些情况下,源设备102和目的地设备116可以被配置用于无线通信,并且因此可被称为无线通信设备。
在图1的示例中,源设备102包含视频源104、存储器106、视频编码器200和输出接口108。目的地设备116包括输入接口122、视频解码器300、存储器120和显示设备118。根据本公开,源设备102的视频编码器200和目的地设备116的视频解码器300可被配置为应用用于解码器侧运动矢量推导的技术。因此,源设备102表示视频编码设备的示例,而目的地设备116表示视频解码设备的示例。在其它示例中,源设备和目的地设备可包含其它组件或布置。例如,源设备102可从外部视频源(诸如外部相机)接收视频数据。同样地,目的地设备116可以与外部显示设备相连接,而非包括集成的显示设备。
如图1中所示的***100仅仅是一个示例。通常,任何数字视频编码和/或解码设备可执行用于解码器侧运动矢量推导的技术。源设备102和目的地设备116仅为源设备102产生编译码的视频数据以发送到目的地设备116的这样的编译码设备的示例。本公开将“编译码”设备称为执行数据的编译码(编码和/或解码)的设备。因此,视频编码器200和视频解码器300各自表示编译码设备(具体而言,视频编码器和视频解码器)的示例。在一些示例中,设备102、116可以以大致对称的方式操作,使得设备102、116中的每一个包括视频编码和解码组件。因此,***100可以支持视频设备102、116之间的单向或双向视频传输,例如用于视频流式传输、视频回放、视频广播或视频电话。
通常,视频源104表示视频数据(即,原始的、未编译码的视频数据)的源,并且向视频编码器200提供视频数据的连续一系列图像(也称为“帧”),其中,视频编码器200对图像的数据进行编码。源设备102的视频源104可以包括视频捕获设备,诸如摄像机、包含先前捕获的原始视频的视频存档和/或用于从视频内容提供商接收视频的视频馈送接口。作为另一替代方案,视频源104可产生基于计算机图形的数据作为源视频,或实时视频、存档视频和计算机产生的视频的组合。在每种情况下,视频编码器200对捕获的、预捕获的或计算机产生的视频数据进行编码。视频编码器200可以将来自接收的顺序(有时被称为“显示顺序”)的图像重新布置成用于编译码的编译码顺序。视频编码器200可产生包括编码的视频数据的比特流。然后,源设备102可以经由输出接口108将编码的视频数据输出到计算机可读介质110上以用于由例如目的地设备116的输入接口122接收和/或检索。
源设备102的存储器106和目的地设备116的存储器120表示通用存储器。在一些示例中,存储器106、120可以存储原始视频数据,例如,来自视频源104的原始视频和来自视频解码器300的原始解码的视频数据。附加地或替代地,存储器106、120可以各自存储可由例如视频编码器200和视频解码器300执行的软件指令。尽管在该示例中与视频编码器200和视频解码器300分开示出,但是应当理解,视频编码器200和视频解码器300还可以包括用于功能类似或等同目的的内部存储器。此外,存储器106、120可以存储例如从视频编码器200输出的和输入到视频解码器300的编码的视频数据。在一些示例中,存储器106、120的部分可被分配为一或多个视频缓冲器,例如用于存储原始的、解码的和/或编码的视频数据。
计算机可读介质110可表示能够将编码的视频数据从源设备102传输到目的地设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示使得源设备102能够例如经由射频网络或基于计算机的网络将编码的视频数据实时地直接发送到目的地设备116的通信介质。根据诸如无线通信协议的通信标准,输出接口108可调制包含编码的视频数据的发送信号,并且输入接口122可调制接收的发送信号。通信介质可以包括任何无线或有线通信介质,诸如射频(RF)频谱或者一条或多条物理发送线。通信介质可以形成诸如局域网、广域网或诸如互联网的全球网络的基于分组的网络的一部分。通信介质可以包含路由器、交换机、基站或可以有助于促进从源设备102到目的地设备116的通信的任何其它装备。
在一些示例中,源设备102可以将编码的数据从输出接口108输出到存储设备112。类似地,目的地设备116可以经由输入接口122从存储设备112访问编码的数据。存储设备112可以包括各种分布式或本地访问的数据存储介质中的任何一个,诸如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪速存储器、易失性或非易失性存储器,或用于存储编码的视频数据的任何其它合适的数字存储介质。
在一些示例中,源设备102可以将编码的视频数据输出到文件服务器114或可以存储由源设备102产生的编码的视频的另一中间存储设备。目的地设备116可以经由流式传输或下载从文件服务器114访问存储的视频数据。文件服务器114可以是能够存储编码的视频数据并将所述编码的视频数据发送到目的地设备116的任何类型的服务器设备。文件服务器114可以表示web服务器(例如,用于网站)、文件传输协议(FTP)服务器、内容递送网络设备或网络附加存储(NAS)设备。目的地设备116可以通过任何标准数据连接(包括互联网连接)从文件服务器114访问编码的视频数据。这可以包括适合于访问存储在文件服务器114上的编码的视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合。文件服务器114和输入接口122可以被配置为根据流式传输协议、下载传输协议或它们的组合来操作。
输出接口108和输入接口122可以表示无线发送器/接收器、调制解调器、有线联网组件(例如,以太网卡)、根据各种IEEE 802.11标准中的任一个进行操作的无线通信组件或其它物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据蜂窝通信标准(诸如,4G、4G-LTE(长期演进)、LTE高级、5G等)传输数据(诸如,编码的视频数据)。在输出接口108包括无线发送器的一些示例中,输出接口108和输入接口122可以被配置为根据其它无线标准(诸如,IEEE 802.11规范、IEEE 802.15规范(例如,ZigBeeTM)、蓝牙TM标准等)传输数据(例如,编码的视频数据)。在一些示例中,源设备102和/或目的地设备116可以包括各自的芯片上***(SoC)设备。例如,源设备102可以包括用于执行归因于视频编码器200和/或输出接口108的功能的SoC设备,并且目的地设备116可以包括用于执行归因于视频解码器300和/或输入接口122的功能的SoC设备。
本公开的技术可以应用于视频编译码以支持各种多媒体应用中的任何一个,诸如空中电视广播、有线电视传输、***传输、互联网流视频传输(诸如HTTP上的动态自适应流(DASH))、编码到数据存储介质上的数字视频、对存储在数据存储介质上的数字视频的解码,或其它应用。
目的地设备116的输入接口122从计算机可读介质110(例如,非暂时性存储设备112、文件服务器114等)接收编码的视频比特流。编码的视频比特流计算机可读介质110可以包括由视频编码器200定义的也由视频解码器300使用的信令信息,诸如具有描述视频块或其它编译码的单元(例如,条带、图像、图像组、序列或等)的特征及/或处理的值的语法元素。显示设备118向用户显示解码的视频数据的解码的图像。显示设备118可以表示各种显示设备中的任何一个,诸如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示设备。
尽管在图1中未示出,但是在一些示例中,视频编码器200和视频解码器300可以各自与音频编码器和/或音频解码器集成,并且可以包括适当的MUX-DEMUX单元或其它硬件和/或软件,以处理在公共数据流中包括音频和视频两者的多路复用流。如果适用的话,MUX-DEMUX单元可以符合ITUH.223多路复用器协议或诸如用户数据报协议(UDP)的其它协议。
视频编码器200和视频解码器300各自可以被实现为各种合适的编码器和/或解码器电路中的任何一种,诸如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或它们的任何组合。当所述技术部分地以软件实现时,设备可以将用于软件的指令存储在合适的、非暂时性计算机可读介质中,并且使用一或多个处理器在硬件中执行所述指令以执行本公开的技术。视频编码器200和视频解码器300中的每一个可以包括在一个或多个编码器或解码器中,编码器或解码器中的任一个可以被集成为相应设备中的组合的编码器/解码器(CODEC)的一部分。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器和/或无线通信设备,诸如蜂窝电话。
视频编译码标准包含ITU-T H.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IEC MPEG-2Visual、ITU-T H.263、ISO/IECMPEG-4Visual和ITU-T H.264(也称为ISO/IECMPEG-4AVC),其中,这些视频编译码标准包括其可缩放视频编译码(SVC)和多视图视频编译码(MVC)扩展。
视频编译码标准,即包括其范围扩展的高效视频编译码(HEVC)或ITU-TH.265、多视图扩展(MV-HEVC)和可缩放扩展(SHVC)已由ITU-T视频编译码专家组(VCEG)和ISO/IEC运动图像专家组(MPEG)的视频编译码联合协作小组(JCT-VC)以及3D视频编译码扩展开发联合协作小组(JCT-3V)开发。
ITU-T VCEG(Q6/16)和ISO/IEC MPEG(JTC 1/SC 29/WG 11)现在正在研究对具有超过当前HEVC标准(包括其当前扩展和用于屏幕内容编译码和高动态范围编译码的近期扩展)的压缩能力的压缩能力的未来视频编译码技术的标准化的潜在需要。这些小组正在被称为联合视频探索小组(JVET)的联合协作努力中共同致力于该探索有效,以评估由他们在该领域的专家提出的压缩技术设计。JVET在2015年10月19日到21日期间首次会议。并且可以从以下下载最新版本的参考软件,即联合探索模型7(JEM 7):https:// jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/tags/HM-16.6-JEM-57.0/联合探索测试模型7(JEM 7)的算法描述可以参考JVET-G1001。
视频编码器200和视频解码器300可以根据视频编译码标准(诸如ITU-TH.265,也被称为高效视频编译码(HEVC)或其扩展,诸如多视图和/或可缩放视频编译码扩展)进行操作。可替代地,视频编码器200和视频解码器300可以根据其它专有或行业标准进行操作,诸如联合探索测试模型(JEM)或ITU-TH.266,也被称为通用视频编译码(VVC)。在Bross等人的“Versatile Video Coding(草案3)”,ITU-T SG 16WP 3和ISO/IEC JTC 1/SC29/WG 11的联合视频专家组(JVET),第13次会议:马拉喀什,MA,20190年1月9-18日,JVET-M1001-v3(以下称为“VVC草案4”)中描述了VVC标准的最近草案。然而,本公开的技术不限于任何特定编译码标准。
如将讨论的,视频解码器300可以被配置为执行本公开的一种或多种技术。例如,视频解码器300可以从接收的编码的视频数据解析子预测单元运动标志,如果子预测单元运动标志是有效的,那么推导子预测单元级运动预测候选的列表,如果子预测单元运动标志是非有效的,那么推导预测单元级运动预测候选的列表,并且使用选择的运动矢量预测器来对编码的视频数据进行解码。
通常,视频编码器200和视频解码器300可以执行图像的基于块的编译码。术语“块”通常指包括要处理的(例如,编码的、解码的或以其它方式在编码和/或解码处理中使用的)数据的结构。例如,块可以包括亮度和/或色度数据的样点的二维矩阵。通常,视频编码器200和视频解码器300可以对以YUV(例如,Y、Cb、Cr)格式表示的视频数据进行编译码。也就是说,视频编码器200和视频解码器300可以对亮度和色度分量进行编译码,而不是对图像的样点的红色、绿色和蓝色(RGB)数据进行编译码,其中,色度分量可以包括红色色调和蓝色色调色度分量。在一些示例中,视频编码器200在编码之前将接收的RGB格式化数据转换为YUV表示,并且视频解码器300将YUV表示转换为RGB格式。或者,预处理和后处理单元(未示出)可以执行这些转换。
本公开可以通常指图像的编译码(例如,编码和解码)以包括对图像的数据进行编码或解码的处理。类似地,本公开可以指图像的块的编译码以包括对块的数据进行编码或解码的处理,例如预测和/或残差编译码。编码的视频比特流通常包括表示编译码决策(例如,编译码模式)和将图像分割成块的语法元素的一系列值。因此,对图像或块进行编译码的参考通常应理解为对形成图像或块的语法元素的值进行编译码。
HEVC定义各种块,包括:编译码单元(CU)、预测单元(PU)和变换单元(TU)。根据HEVC,视频编译码器(诸如视频编码器200)根据四叉树结构将编译码树单元(CTU)分割成CU。即,视频编译码器将CTU和CU分割成四个相等、非重叠正方形,并且四叉树的每一个节点具有零或四个子节点。没有子节点的节点可被称为“叶节点”,并且这样的叶节点的CU可以包括一个或多个PU和/或者一个或多个TU。视频编译码器可以进一步分割PU和TU。例如,在HEVC中,残差四叉树(RQT)表示TU的分割。在HEVC中,PU表示帧间预测数据,而TU表示残差数据。帧内预测的CU包括帧内预测信息,诸如帧内模式指示。
作为另一示例,视频编码器200和视频解码器300可以被配置为根据JEM或VVC进行操作。根据JEM或VVC,视频编译码器(诸如视频编码器200)将图像分割成多个编译码树单元(CTU)。视频编码器200可以根据树结构(诸如四叉树-二叉树(QTBT)结构)分割CTU。QTBT结构去除多个分割类型的概念,诸如HEVC的CU、PU及TU之间的分离。JEM的QTBT结构包括两个级:根据四叉树分割而分割的第一级,和根据二叉树分割而分割的第二级。QTBT结构的根节点相应于CTU。二叉树的叶节点相应于编译码单元(CU)。
在MTT分割结构中,可以使用四叉树(QT)分割、二叉树(BT)分割和一种或多种类型的三叉树(TT)分割来分割块。三叉树分割是块被分成三个子块的分割。在一些示例中,三元树分割在不通过中心划分原始块的情况下将块划分成三个子块。MTT中的分割类型(例如,QT、BT和TT)可以是对称的或不对称的。
在一些示例中,视频编码器200和视频解码器300可以使用单个QTBT或MTT结构来表示亮度分量和色度分量中的每一个,而在其它示例中,视频编码器200和视频解码器300可以使用两个或更多个QTBT或MTT结构,诸如用于亮度分量的一个QTBT/MTT结构和用于两个色度分量的另一个QTBT或MTT结构(或者用于各自的色度分量的两个QTBT/MTT结构)。
视频编码器200和视频解码器300可以被配置为使用每个HEVC的四叉树分割、QTBT分割或MTT分割或其它分割结构。出于解释的目的,本公开的技术的描述是针对QTBT分割来呈现的。然而,应当理解,本公开的技术还可以应用于配置为使用四叉树分割或其它类型的分割的视频编译码器。
本公开可以互换地使用“N×N”及“N乘N”来指块(诸如CU或其它视频块)在垂直和水平维度方面的样点维度,例如,16×16样点或16乘16样点。通常,16×16CU将在垂直方向上具有16个样点(y=16)并且在水平方向上具有16个样点(x=16)。同样地,N×N CU通常在垂直方向上具有N个样点并且在水平方向上具有N个样点,其中,N表示非负整数值。CU中的样点可以按行和列布置。此外,CU不一定需要在水平方向上具有与在垂直方向上相同数量的样点。例如,CU可以包括N×M个样点,其中M不一定等于N。
视频编码器200对表示预测和/或残差信息以及其它信息的CU的视频数据进行编码。预测信息指示将如何预测CU以便为CU形成预测块。残差信息通常表示编码之前的CU的样点与预测块之间的逐样点差。
为了预测CU,视频编码器200通常可以通过帧间预测或帧内预测来为CU形成预测块。帧间预测通常指从先前编译码的图像的数据对CU进行预测,而帧内预测通常指从相同的图像的先前编译码的数据对CU进行预测。为了执行帧间预测,视频编码器200可以使用一个或多个运动矢量来产生预测块。视频编码器200通常可执行运动搜索以例如在CU与参考块之间的差异方面识别紧密匹配CU的参考块。视频编码器200可以使用绝对差和(SAD)、平方差和(SSD)、平均绝对差(MAD)、均方差(MSD)或其它这样的差计算来计算差度量,以确定参考块是否紧密匹配当前CU。在一些示例中,视频编码器200可以使用单向预测或双向预测来预测当前CU。
JEM和VVC的一些示例还提供可被视为帧间预测模式的仿射运动补偿模式。在仿射运动补偿模式中,视频编码器200可以确定表示非平移运动(诸如放大或缩小、旋转、透视运动或其它不规则运动类型)的两个或更多个运动矢量。
为了执行帧内预测,视频编码器200可以选择帧内预测模式来产生预测块。JEM和VVC的一些示例提供67个帧内预测模式,包括各种方向模式以及平面模式和DC模式。通常,视频编码器200选择帧内预测模式,其中,该模式描述当前块的相邻样点,其中,从该相邻样点预测当前块(例如,CU的块)的样点。假设视频编码器200按光栅扫描顺序(从左到右、从上到下)对CTU和CU进行编译码,那么这样的样点通常可以在与当前块的图像相同的图像中的当前块的上方、左上方或者左侧。
视频编码器200对表示当前块的预测模式的数据进行编码。例如,对于帧间预测模式,视频编码器200可以对表示各种可用帧间预测模式中的哪一种模块被使用的数据以及相应模式的运动信息进行编码。例如,对于单向或双向帧间预测,视频编码器200可以使用高级运动矢量预测(advanced motion vector prediction,AMVP)或合并模式对运动矢量进行编码。视频编码器200可以使用类似模式对仿射运动补偿模式的运动矢量进行编码。
在预测(诸如块的帧内预测或帧间预测)之后,视频编码器200可以计算块的残差数据。残差数据(诸如残差块)表示块与使用相应预测模式形成的块的预测块之间的逐样点差。视频编码器200可以将一个或多个变换应用于残差块,以在变换域而非样点域中产生变换的数据。例如,视频编码器200可以将离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换应用于残差视频数据。此外,视频编码器200可以在第一次变换之后应用二次变换,诸如模式相关的不可分二次变换(mode-dependent non-separable secondarytransform,MDNSST)、信号相关变换、Karhunen-Loeve变换(Karhunen-Loeve transform,KLT)等。视频编码器200在应用一个或多个变换之后产生变换系数。
如上所述,在用于产生变换系数的任何变换之后,视频编码器200可以执行变换系数的量化。量化通常指对变换系数进行量化以可能减少用于表示系数的数据量,从而提供进一步压缩的过程。通过执行量化过程,视频编码器200可以减少与一些或所有系数相关联的比特深度。例如,视频编码器200可以在量化期间将n比特值向下舍入到m比特值,其中,n大于m。在一些示例中,为了执行量化,视频编码器200可以执行要被量化的值的逐位右移。
在量化之后,视频编码器200可以扫描变换系数,从而从包括量化的变换系数的二维矩阵产生一维矢量。该扫描可以被设计为将较高能量(并且因此较低频率)的系数放置在矢量的前面,并且将较低能量(并且因此较高频率)的变换系数放置在矢量的后面。在一些示例中,视频编码器200可以利用预定义扫描顺序来扫描量化的变换系数以产生序列化矢量,并且然后对矢量的量化的变换系数进行熵编码。在其它示例中,视频编码器200可以执行自适应扫描。在扫描量化的变换系数以形成一维矢量之后,视频编码器200可以例如根据上下文自适应二进制算术编译码(context-adaptive binary arithmetic coding,CABAC)对一维矢量进行熵编码。视频编码器200还可以对描述与编码的视频数据相关联的元数据的语法元素的值进行熵编码,以由视频解码器300在对视频数据进行解码时使用。
为了执行CABAC,视频编码器200可以将上下文模型内的上下文分配给要发送的符号。上下文可以涉及例如符号的相邻值是否为零值。概率确定可以基于分配给符号的上下文。
视频编码器200还可以例如在图像头、块头、条带头中向视频解码器300产生诸如基于块的语法数据、基于图像的语法数据和基于序列的语法数据的语法数据,或者诸如序列参数集(sequence parameter set,SPS)、图像参数集(picture parameter set,PPS)或视频参数集(video parameter set,VPS)的其它语法数据。视频解码器300同样可以解码这样的语法数据以确定如何解码相应的视频数据。
以这种方式,视频编码器200可以产生包括编码的视频数据的比特流,例如,描述将图像分割成块(例如,CU)的语法元素以及所述块的预测和/或残差信息。最终,视频解码器300可以接收比特流并对编码的视频数据进行解码。
通常,视频解码器300执行与由视频编码器200执行的处理互逆的处理,以对比特流的编码的视频数据进行解码。例如,视频解码器300可以以基本上类似于视频编码器200的CABAC编码处理但与其互逆的方式使用CABAC来对比特流的语法元素的值进行解码。语法元素可以定义将图像分割成CTU的分割信息,和根据相应分割结构(诸如QTBT结构)对每个CTU进行分割,以定义CTU的CU。语法元素可以进一步定义视频数据的块(例如,CU)的预测和残差信息。
残差信息可以由例如量化的变换系数表示。视频解码器300可以对块的量化的变换系数进行逆量化和逆变换,以再现该块的残差块。视频解码器300使用信令通知的预测模式(帧内或帧间预测)和相关预测信息(例如,用于帧间预测的运动信息)来形成块的预测块。然后,视频解码器300可以组合预测块和残差块(在逐样点的基础上)以再现原始块。视频解码器300可以执行附加处理,诸如执行去块处理以减少沿着块的边界的视觉伪影。
本公开可以通常指“信令通知”某些信息,诸如语法元素。术语“信令通知”可以通常指用以对编码的视频数据进行解码的值语法元素和/或其它数据的通信。也就是说,视频编码器200可以在比特流中信令通知语法元素的值。通常,信令通知指在比特流中产生值。如上所述,源设备102可以基本上实时或非实时地(诸如可在将语法元素存储到存储设备112以供稍后由目的地设备116检索时发生)将比特流传输到目的地设备116,。
图2A和2B是示出示例四叉树二叉树(QTBT)结构130和相应的编译码树单元(CTU)132的概念图。实线表示四叉树划分,并且虚线指示二叉树划分。在二叉树的每一个划分(即,非叶)节点中,信令通知一个标志以指示使用哪种划分类型(即,水平或垂直),其中,在该示例中,0指示水平划分并且1指示垂直划分。对于四叉树划分,不需要指示划分类型,因为四叉树节点将块水平和垂直划分成具有相等大小的4个子块。因此,视频编码器200可以编码并且视频解码器300可以解码用于QTBT结构130的区域树级(即,实线)的语法元素(诸如划分信息)和用于QTBT结构130的预测树级(即,虚线)的语法元素(诸如划分信息)。视频编码器200可以对由QTBT结构130的终端叶节点表示的CU的视频数据(诸如预测和变换数据)进行编码,并且视频解码器300可对由QTBT结构130的终端叶节点表示的CU的视频数据(诸如预测和变换数据)进行解码。
通常,图2B的CTU 132可以与定义块的大小的参数相关联,其中,所述块相应于在第一和第二级的QTBT结构130的节点。这些参数可以包括CTU大小(表示样点中CTU 132的大小)、最小四叉树大小(MinQTSize,表示最小允许的四叉树叶节点大小)、最大二叉树大小(MaxBTSize,表示最大允许的二叉树根节点大小)、最大二叉树深度(MaxBTDepth,表示最大允许的二叉树深度)及最小二叉树大小(MinBTSize,表示最小允许的二叉树叶节点大小)。
相应于CTU的QTBT结构的根节点可以在QTBT结构的第一级具有四个子节点,其中,所述四个子节点中的每一个可以根据四叉树分割来被分割。也就是说,第一级的节点是叶节点(没有子节点)或具有四个子节点。QTBT结构130的示例将这样的节点表示为包括具有用于分支的实线的父节点和子节点。如果第一级的节点不大于最大允许的二叉树根节点大小(MaxBTSize),那么它们可以通过各自的二叉树被进一步分割。可以迭代一个节点的二叉树划分,直到由划分产生的节点达到最小允许的二叉树叶节点大小(MinBTSize)或最大允许的二叉树深度(MaxBTDepth)。QTBT结构130的示例将这样的节点表示为具有用于分支的虚线。二叉树叶节点被称为编译码单元(CU),其中,所述编译码单元用于预测(例如,图像内或图像间预测)和变换,而无需任何进一步分割。如上所论述的,CU也可被称为“视频块”或“块”。
在QTBT分割结构的一个示例中,CTU大小被设置为128×128(亮度样点和两个相应的64×64色度样点),MinQTSize被设置为16×16,MaxBTSize被设置为64×64,MinBTSize(针对宽度和高度两者)被设置为4,并且MaxBTDepth被设置为4。首先将四叉树分割应用于CTU以产生四叉树叶节点。四叉树叶节点可以具有从16×16(即,MinQTSize)到128×128(即,CTU大小)的大小。如果叶四叉树节点为128×128,那么其将不被二叉树进一步划分,因为大小超过MaxBTSize(即,在该示例中为64×64)。否则,叶四叉树节点将由二叉树进一步分割。因此,四叉树叶节点也是二叉树的根节点,并且具有二叉树深度为0。当二叉树深度达到MaxBTDepth(在该示例中为4)时,不允许进一步划分。当二叉树节点具有等于MinBTSize(在该示例中为4)的宽度时,其意味着不允许进一步水平划分。类似地,具有等于MinBTSize的高度的二叉树节点意味着针对所述二叉树节点不允许进一步垂直划分。如上所述,二叉树的叶节点被称为CU,并且在没有进一步分割的情况下根据预测和变换来进一步处理。
在这部分中,论述了视频编译码标准,尤其是先前标准的运动矢量预测相关的技术。
视频编译码标准包括ITU-T H.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IEC MPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual和ITU-T H.264(也称为ISO/IECMPEG-4AVC),其中,这些视频编译码标准包括其可缩放视频编译码(SVC)和多视图视频编译码(MVC)扩展。MVC的最新联合草案描述在2010年3月的ITU-T推荐H.264的“Advanced videocoding for generic audiovisual services”中。
另外,存在由ITU-T视频编译码专家组(VCEG)和ISO/IEC运动图像专家组(MPEG)的视频编译码联合合作小组(JCT-VC)开发的新开发的视频编译码标准,即高效视频编译码(HEVC)。HEVC的最近草案可以从http://phenix.int-evry.fr/jct/doc_end_user/ documents/12_Geneva/wg11/JCTVC-L1003-v34.zip获得。
运动信息
对于每个块,运动信息的集合可以是可用的。运动信息的集合包含用于前向和后向预测方向的运动信息。这里,前向和后向预测方向是相应于当前图像或条带的参考图像列表0(RefPicList0)和参考图像列表1(RefPicList1)的两个预测方向。术语“前向”和“后向”不一定具有几何含义。作为替代,它们被用于区分运动矢量是基于哪个参考图像列表。前向预测指基于参考列表0形成的预测,而后向预测指基于参考列表1形成的预测。在参考列表0和参考列表1两者被用于形成给定块的预测的情况下,其被称为双向预测。
对于给定图像或条带,如果仅使用一个参考图像列表,那么图像或条带内的每个块被前向预测。如果两个参考图像列表用于给定图像或条带,那么图像或条带内部的块可以被前向预测、或后向预测、或双向预测。
对于每个预测方向,运动信息包含参考索引和运动矢量。参考索引用于识别相应参考图像列表(例如,RefPicList0或RefPicList1)中的参考图像。运动矢量具有水平分量及垂直分量两者,其中,每一个分量各自指示沿着水平方向和垂直方向的偏移值。在一些描述中,为简单起见,词语“运动矢量”可以与运动信息互换使用,以指示运动矢量及其相关联的参考索引两者。
POC
图像顺序计数(Picture order count,POC)在视频编译码标准中使用以识别图像的显示顺序。尽管存在一个编译码的视频序列内的两个图像可以具有相同POC值的情况,但其通常不会在编译码的视频序列内发生。当在比特流中存在多个编译码的视频序列时,具有相同POC值的图像可以在解码顺序方面彼此更接近。
图像的POC值通常用于参考图像列表构造、参考图像集的推导(如在HEVC中)及运动矢量缩放。
预测单元
预测单元(PU)指共享相同预测信息的样点的基本单元。在帧间预测PU中,预测信息可以是相同运动信息的集合或用以推导PU的运动信息的相同方法。在一个示例中,PU可以与HEVC块结构中的PU相同,并且还可以是其它块分割结构、四叉树加二叉树分割、多类型树分割等中的基本块。
子PU是PU中的子块,其中,在子块中样点共享相同运动信息的集合。在子PU级运动中,PU中的样点共享用于运动信息推导的相同方法/模型,但子PU可以具有其自身的运动信息的集合并且可以不同于在相同PU中的其它子PU。
图3示出如本文所论述的运动矢量预测器推导的示例流程图。从三维域中的相邻块的信息推导运动矢量预测器候选的两个列表。解码器根据来自比特流的解码的语法元素is_sub_pu_motion_flag自适应地选择列表。
在一个示例中,如果当前块大于预定义值,那么可仅存在sub_pu列表。在另一示例中,块可仅包含子PU,例如4×4的块,然后标志指示运动信息产生是否基于子PU方法。两个列表可以包括可以在SPS、PPS或条带头中预定义或信令通知的不同数量的运动预测候选。相邻块可以是当前图像中的空间相邻者或先前编译码的图像中的时间相邻者。
如图3中所示,将讨论两个列表的推导处理。在300,解码器确定标志是否是有效的。如果解码器确定标志是非有效的,则解码器进行至302。如果标志是有效的,则解码器进行至306。
在302,推导PU级运动预测候选的第一列表。在306,推导子PU级运动预测候选的第二列表。PU级运动预测候选指相同PU中的所有像素共享相同运动信息的集合。子PU级运动预测候选指相同子PU中的所有像素共享相同运动信息的集合,但PU中的不同子PU可以具有不同的运动信息的集合。运动信息的集合可以包括帧间预测方向、在使用多个参考的情况下参考图像(多个)索引、或在使用多个参考的情况下的(多个)运动矢量。
PU级运动矢量候选列表的矢量是HEVC合并候选列表。子PU级运动预测的示例包括但不限于仿射运动矢量预测(仿射)、可选时间运动矢量预测(Alternative TemporalMotion Vector Prediction,ATMVP)、空间-时间运动矢量预测(Spatial-Temporal MotionVector Prediction,STMVP)、平面运动矢量预测及模式匹配运动矢量推导(PatternMatched Motion Vector Derivation,PMVD)等。在下面的表1中示出了示例性语法表。语法元素sub_pu_motion_idx可以被用于指示子PU级运动预测候选列表中的选择的候选,并且语法元素pu_motion_idx被用于指示PU级运动预测候选列表中的选择的候选。
表1
在另一方法中,PU级运动矢量候选可以被划分成两组。当解码器接收指示选择的候选不在PU级运动信息候选的第一组中的语法时,信令通知is_sub_pu_motion_flag。is_sub_pu_motion_flag可以在PU级合并索引中作为索引中的一个隐式地被信令通知。接着,如果is_sub_pu_motion_flag为真,那么将进一步信令通知子PU级合并索引。在一个示例中,PU级运动预测候选列表***顺序是A→B→S→C→D→E。A、B、C、D、E表示PU级运动预测候选,并且S是sub_pu_motion_flag的指示符。如果选择S,那么推断sub_pu_motion_flag为真。A的一个示例可以是左下空间合并候选,并且B的一个示例可以是右上空间合并候选。注意,也可以应用其它***顺序。
注意,子PU级运动预测候选在上面所描述的所有方法中被分组。
用于运动矢量预测候选选择的信令通知
语法元素is_sub_pu_motion_flag首先被用于指示运动预测候选是否是子PU级。is_sub_pu_motion_flag可以使用一个二进制(0/1)被二进制化并且通过基于上下文的二进制算术编译码器进行编译码。上下文可以取决于块分割树中的PU大小/面积或PU深度。较大PU可以倾向于比较小PU更频繁地选择子PU级运动矢量预测。上下文还可以取决于来自空间/时间相邻块的sub_pu_motion_flag。如果相邻块具有子PU运动,那么当前PU使用子PU运动的机会更高。
如果is_sub_pu_motion_flag为真(“1”),则语法元素sub_pu_motion_idx被用于指示推导子PU运动预测候选的方法。方法的总数(即子PU级运动预测候选的总数)num_sub_pu_motion可以以高级语法被信令通知。sub_pu_motion_idx可以根据num_sub_pu_motion而使用截断一元码来被二进制化。然而,也可以应用其它二值化方法。
如果is_sub_pu_motion_flag为假(“0”),则语法元素nor_pu_motion_idx被用于指示推导PU级运动预测候选的方法。PU级运动矢量预测候选的总数num_nor_pu_motion可以以高级语法被信令通知。nor_pu_motion_idx可以根据num_nor_pu_motion而使用截断一元码来被二进制化。然而,也可以应用其它二值化方法。
PU级运动预测候选的推导
类似地,在HEVC中可以从空间或时间相邻编译码的块推导PU级运动预测候选。在HEVC合并模式中,
在HEVC中,MV候选列表包含用于合并模式的多达5个候选和用于AMVP模式的只有两个候选。合并候选可以包含运动信息的集合,例如与两个参考图像列表(列表0和列表1)相应的运动矢量和参考索引。如果通过合并索引识别合并候选,那么确定用于当前块的预测的参考图像以及相关联运动矢量。
基于上文所述,基于解码的候选索引选择一个或多个运动矢量预测器。
在HEVC合并模式中,可以用图4中所示的顺序推导块400的多达四个空间MV候选402、404、406和408。顺序如下:左(0,A1)、上(1,B1)、右上(2,B0)、左下(3,A0)和左上(4,B2)。
现将论述HEVC中的时间相邻候选。时间运动矢量预测器(Temporal motionvector predictor,TMVP)候选(如果启用且可用)在空间运动矢量候选之后被添加到MV候选列表中。用于TMVP候选推导的主要块位置是位于并置PU(collocated PU)外部的右下块,如图5中所示为块“T”500,以补偿对用于产生空间相邻候选的左上方块的偏差。然而,如果块502位于当前CTB行外部或运动信息不可用,那么用PU的中心块504来代替所述块。TMVP候选的运动矢量是从在条带级中指示的同位co-located图像的同位PU推导的。同位PU的运动矢量被称为共置MV。
子PU级运动预测候选的推导
子PU级运动预测候选可以包括但不限于仿射运动预测、可选时间运动矢量预测(ATMVP)、空间-时间运动矢量预测(STMVP)、平面运动矢量预测、模式匹配运动矢量推导(PMVD)等。在下面,我们将示出这些子PU级运动预测的示例。然而,还可以添加一些变化或其它子PU级运动预测。
仿射运动预测
在4参数仿射运动预测方法中,块的运动矢量场由方程式(1)描述:
其中,(w,h)是块的大小,并且(x,y)是坐标。(v0x,v0y)是左上角控制点的运动矢量,并且(v1x,v1y)是右上角控制点的运动矢量。
在6参数仿射运动预测方法中,块的运动场由方程式(2)描述:
其中另外,(v2x,v2y)是左下角控制点的运动矢量。
在基于子PU的仿射运动预测中,可以通过计算在子PU的中心的MV来推导子PU的MV。替代地,我们可以根据子PU的大小按比例缩小(w,h)和(x,y)。
在一种方法中,考虑到当前块与先前编译码的相邻块共享相同仿射运动模型,可从先前通过仿射运动编译码的相邻块推导(vix,viy)。
在另一方法中,可以通过在相邻编译码的块的运动矢量推导(vix,viy)。例如,如图6中所示,可以从在块A 600、B 602或C 604的运动矢量推导(v0x,v0y),可以从在块C 606或D608的运动矢量推导(v1x,v1y),可以从块E 610或F 612推导(v2x,v2y)。
可选时间运动矢量预测
在可选时间运动矢量预测(ATMVP)方法(或有时称为高级时间运动矢量预测)中,通过从当前PU的子PU提取多个运动信息的集合(包括运动矢量和参考索引)来修改时间运动矢量预测(TMVP)。
空间-时间运动矢量预测
在空间-时间运动矢量预测方法中,遵循光栅扫描顺序递归地推导子PU的运动矢量。图7示出了STMVP的概念。考虑包含四个4×4子PU A、B、C和D的8×8PU。当前帧中的相邻4×4块被标记为a、b、c和d。子CU A的运动推导通过识别其两个空间相邻者开始。第一相邻者是子CU A上方的N×N块(块c)。如果该块c不可用或被帧内编译码,那么检查子CU A上方的其它N×N块(从左到右,从块c开始)。第二相邻者是子CU A左侧的块(块b)。如果块b不可用或被帧内编译码,那么检查子CU A左侧的其它块(从上到下,从块b开始)。从每个列表的相邻块获得的运动信息被缩放到给定列表的第一参考帧。接下来,通过遵循与HEVC中指定的时间运动矢量预测器(TMVP)推导的过程相同的TMVP推导的过程来推导子块A的TMVP。在位置D的并置块的运动信息被提取出并被相应地缩放。最后,在检索和缩放运动信息之后,针对每个参考列表单独地平均所有可用运动矢量(多达3个)。平均运动矢量被分配为当前子CU的运动矢量。
模式匹配运动矢量推导
模式匹配运动矢量推导(PMMVD)方法基于帧速率上转换技术。运动推导处理有两个步骤。首先执行PU级运动搜索,接着执行子PU级运动细化。在PU级,基于双边匹配或模板匹配推导整个PU的初始运动矢量。首先,产生MV候选的列表,并且选择导致最小匹配成本的候选作为进一步PU级细化的起始点。然后,执行基于围绕起始点的双边匹配或模板匹配的局部搜索,并且将导致最小匹配成本的MV视为整个CU的MV。随后,以推导的CU运动矢量作为起始点,在子PU级进一步细化运动信息。
在图8中示出双边匹配的概念。双边匹配被用于通过沿着两个不同参考图像中的当前块的运动轨迹找到两个块之间的最紧密的匹配来推导运动信息。在连续运动轨迹的假设下,指向两个参考块的运动矢量MV0和MV1应该与当前图像与两个参考图像之间的时间距离(即,TD0和TD1)成比例。作为特殊情况,当当前图像在时间上介于两个参考图像之间并且从当前图像到两个参考图像的时间距离相同时,双边匹配变为基于镜像的双向MV。
如图9中所示的模板匹配被用于通过找到当前图像中的模板(当前块的顶部和/或左侧相邻块)与参考图像中的块(与模板大小相同)之间的最紧密的匹配来推导运动信息。
平面运动矢量预测
通过如下在4×4块基础上平均水平和垂直线性插值来实现平面运动矢量预测。
P(x,y)=(H×Ph(x,y)+W×Pv(x,y)+H×W)/(2×H×W)
W和H表示块的宽度和高度。(x,y)是当前子块相对于左上角子块的坐标。所有距离由像素距离除以4表示。P(x,y)是当前子块的运动矢量。
其中,位置(x,y)的水平预测Ph(x,y)和垂直预测Pv(x,y)计算如下:
Ph(x,y)=(W-1-x)×L(-1,y)+(x+1)×R(W,y)
Pv(x,y)=(H-1-y)×A(x,-1)+(y+1)×B(x,H)
其中,L(-1,y)和R(W,y)是当前块左侧和右侧的4×4块的运动矢量。如图9所示,A(x,-1)和B(x,H)是当前块的上方和底部的4×4块的运动矢量。
左列和上行相邻块的参考运动信息是从当前块的空间相邻块推导的。
右列和底行相邻块的参考运动信息推导如下。
1)推导右下时间相邻4×4块的运动信息
2)使用右下相邻4×4块的推导的运动信息以及右上相邻4×4块的运动信息,将右列相邻4×4块的运动矢量计算为R(W,y)=((H-y-1)×AR+(y+1)×BR)/H。
3)使用右下相邻4×4块的推导的运动信息以及左下相邻4×4块的运动信息,将底行相邻4×4块的运动矢量计算为B(x,H)=((W-x-1)×BL+(x+1)×BR)/W。
其中,如图10中所示,AR是右上空间相邻4×4块的运动矢量,BR是右下时间相邻4×4块的运动矢量,并且BL是左下空间相邻4×4块的运动矢量。
从每个列表的相邻块获得的运动信息被缩放到给定列表的第一参考图像。
候选列表***
如果可用,那么以以下默认顺序将子PU级运动预测候选***列表中:仿射→ATMVP→STMVP→PMMVD→平面。可以基于条带类型、时间层、仿射运动模型和/或时间运动预测器的可用性来预定义或信令通知默认顺序。默认顺序也可以基于块类型、块形状或块大小而不同。通过预定义的数量和/或如由高级语法指示的可用子PU级运动预测候选的总数量来确定子PU级运动预测候选的最大数量。在一个示例中,如果预定义的数量为3,并且所有仿射、ATMVP、STMVP、PMMVD及平面候选是可用的,那么最大数量为3。但如果只有仿射和ATMVP是可用的,那么最大数量为2。如果最大数量为0,那么推断is_sub_pu_motion_flag为假(‘0’)并且不在比特流中信令通知。
也可以使用其它默认候选顺序。
在一个示例中,仿射→PMMVD→ATMVP→STMVP→平面。
在另一示例中,PMMVD→Affine→ATMVP→STMVP→平面。
在另一示例中,可用使用两个或两个以上仿射候选。
仿射1→仿射2→PMMVD→ATMVP→STMVP→平面
或者仿射1→ATMVP→Affine 2→平面
优先候选重排序
默认子PU级运动预测候选列表可用基于它们在相邻编译码的块中的出现而被重排序。在一个示例中,将在相邻编译码的块中出现次数较多的候选放置于列表中的较低索引位置。
部分优先候选重排序
为了降低候选重排序的复杂性,优先候选重排序仅应用于一个或多个子列表。例如,以默认顺序的候选1-2、3-4基于它们在相邻编译码的块中的出现而被单独地重排序。
修剪
为了降低复杂度,在子PU候选列表中可以不应用修剪或部分修剪。在一个示例中,可以在ATMVP、STMVP与平面之间应用修剪,但在仿射与其余子PU候选之间不应用修剪。
在另一示例中,修剪仅应用于子PU的数量小于或等于预定义值的情况。
子PU运动预测候选的替代信令通知方法
可以通过根据候选***顺序而非索引以启用标志来信令通知子PU运动预测候选的选择。在一个示例中,如果***顺序是仿射→PMMVD→ATMVP→STMVP→平面,那么信令通知如表2中所示。
在另一替代方法中,子PU运动预测候选可以被分组为若干子组。例如,仿射、平面被分组为子组1,ATMVP及STMVP被分组为子组2,并且PMMVD是又一子组3。在表3中示出了示例性信令通知。首先信令通知语法pmmvd_flag以指示其是否为PMMVD候选。接着,如果其不是PMMVD候选,那么信令通知另一语法元素sub_group1_flag以指示其是否是子组1候选。如果sub_group1_flag为真(指示其为子组1候选),那么affine_flag被信令通知以指示其是否为仿射候选。如果它不是仿射候选,则planar_mv_flag被设置为真以指示它是平面候选。如果sub_group1_flag为假,那么信令通知atmvp_flag以指示其是否为ATMVP候选。如果其不是ATMVP候选,那么将stmvp_flag设置为真以指示其是STMVP候选。
表2
表3
注意,在表2和表3中,为了便于示例性,忽略了可用性检查。如果相应候选不可用,那么推断标志为假(‘0’)。还要注意,也可以应用分组的其它变化。
图11是示出可执行本公开的技术的示例视频编码器200的框图。图11是出于解释的目的而提供的,并且不应被认为是对本公开中广泛例示和描述的技术的限制。出于解释的目的,本公开在诸如HEVC视频编译码标准和开发中的H.266视频编译码标准的视频编译码标准的上下文中描述视频编码器200。然而,本公开的技术不限于这些视频编译码标准,并且通常适用于视频编码和解码。
在图11的示例中,视频编码器200包括视频数据存储器230、模式选择单元202、残差产生单元204、变换处理单元206、量化单元208、逆量化单元202、逆变换处理单元212、重构单元214、滤波器单元216、解码图像缓冲器(decoded picture buffer,DPB)218及熵编码单元220。
视频数据存储器230可以存储要由视频编码器200的组件编码的视频数据。视频编码器200可以从例如视频源104(图1)接收存储在视频数据存储器230中的视频数据。DPB218可以充当存储参考视频数据以在视频编码器200预测后续视频数据中使用的参考图像存储器。视频数据存储器230和DPB 218可以由各种存储器设备中的任一种形成,诸如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM)或其它类型的存储器设备。视频数据存储器230和DPB 218可以由相同的存储器设备或单独的存储器设备提供。如图所示,在各种示例中,视频数据存储器230可以与视频编码器200的其它组件一起在芯片上,或者相对于那些组件在芯片外。
在本公开中,对视频数据存储器230的参考不应被解释为限于视频编码器200内部的存储器(除非明确地如此描述)或视频编码器200外部的存储器(除非明确地如此描述)。相反,对视频数据存储器230的参考应理解为存储视频编码器200接收用于编码的视频数据(例如,要被编码的当前块的视频数据)的参考存储器。图1的存储器106还可以提供来自视频编码器200的各种单元的输出的临时存储。
示出图11的各种单元以帮助理解由视频编码器200执行的操作。所述单元可以实现为固定功能电路、可编程电路或它们的组合。固定功能电路指提供特定功能并且在可以执行的操作上预设的电路。可编程电路指可以被编程以执行各种任务并且在可以执行的操作中提供灵活功能的电路。例如,可编程电路可以执行使得可编程电路以由软件或固件的指令定义的方式进行操作的软件或固件。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但固定功能电路执行的操作的类型通常是不可变的。在一些示例中,所述单元中的一个或多个可以是不同的电路块(固定功能或可编程),并且在一些示例中,所述一个或多个单元可以是集成电路。
视频编码器200可以包括算术逻辑单元(ALU)、基本功能单元(EFU)、数字电路、模拟电路和/或由可编程电路形成的可编程核心。在使用由可编程电路执行的软件来执行视频编码器200的操作的示例中,存储器106(图1)可以存储视频编码器200接收和执行的软件的目标代码,或者视频编码器200内的另一存储器(未示出)可以存储这样的指令。
视频数据存储器230被配置为存储接收的视频数据。视频编码器200可以从视频数据存储器230检索视频数据的图像,并且将视频数据提供到残差产生单元204和模式选择单元202。视频数据存储器230中的视频数据可以是要被编码的原始视频数据。
模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可以包括附加的功能单元以根据其它预测模式执行视频预测。作为示例,模式选择单元202可以包括调色板单元、块内复制单元(其可以是运动估计单元222和/或运动补偿单元224的一部分)、仿射单元、线性模型(linear model,LM)单元等。
模式选择单元202通常协调多个编码遍次以测试编码参数的组合以及针对这样的组合得到的率失真值。编码参数可以包括将CTU分割成CU、CU的预测模式、CU的残差数据的变换类型、CU的残差数据的量化参数等。模式选择单元202可以最终选择具有比其它测试组合更好的率失真值的编码参数的组合。
视频编码器200可以将从视频数据存储器230检索的图像分割成一系列CTU,并且将一或多个CTU封装在条带内。模式选择单元210可以根据树结构(诸如上面描述的HEVC的QTBT结构或四叉树结构)分割图像的CTU。如上所述,视频编码器200可以通过根据树结构分割CTU来形成一个或多个CU。这样的CU也可以通常被称为“视频块”或“块”。
通常,模式选择单元202还控制其组件(例如,运动估计单元222、运动补偿单元224和帧内预测单元226)以产生当前块(例如,当前CU,或在HEVC中,PU和TU的重叠部分)的预测块。对于当前块的帧间预测,运动估计单元222可以执行运动搜索以识别一个或多个参考图像(例如,存储在DPB 218中的一个或多个先前编译码的图像)中的一个或多个紧密匹配的参考块。具体而言,运动估计单元222可以例如根据绝对差和(SAD)、平方差和(SSD)、平均绝对差(MAD)、均方差(MSD)等来计算表示潜在参考块与当前块有多相似的值。运动估计单元222通常可以使用当前块与所考虑的参考块之间的逐样点差来执行这些计算。运动估计单元222可以识别具有从这些计算得到的最低值的参考块,从而指示最紧密匹配当前块的参考块。
运动估计单元222可以形成定义参考图像中的参考块相对于当前图像中的当前块的位置的位置的一个或多个运动矢量(MV)。然后,运动估计单元222可以将运动矢量提供给运动补偿单元224。例如,对于单向帧间预测,运动估计单元222可以提供单个运动矢量,而对于双向帧间预测,运动估计单元222可以提供两个运动矢量。然后,运动补偿单元224可以使用运动矢量产生预测块。例如,运动补偿单元224可以使用运动矢量检索参考块的数据。作为另一示例,如果运动矢量具有分数样点精度,那么运动补偿单元224可以根据一个或多个插值滤波器对预测块的值进行插值。此外,对于双向帧间预测,运动补偿单元224可以检索由各自运动矢量识别的两个参考块的数据,并且例如通过逐样点平均或加权平均来组合检索的数据。
作为另一示例,对于帧内预测或帧内预测编译码,帧内预测单元226可以从与当前块相邻的样点产生预测块。例如,对于方向模式,帧内预测单元226通常可以数学地组合相邻样点的值并且在当前块的定义方向上填充这些计算值以产生预测块。作为另一示例,对于DC模式,帧内预测单元226可以计算当前块的相邻样点的平均值,并且产生预测块以对于预测块的每个样点包括该得到的平均值。
模式选择单元202将预测块提供给残差产生单元204。残差产生单元204从视频数据存储器230接收当前块的原始、未编译码的版本并且从模式选择单元202接收预测块。残差产生单元204计算当前块与预测块之间的逐样点差。所得到的逐样点差定义当前块的残差块。在一些示例中,残差产生单元204还可以确定残差块中的样点值之间的差以使用残差差分脉冲编译码调制(residual differential pulse code modulation,RDPCM)来产生残差块。在一些示例中,可以使用执行二进制减法的一个或多个减法器电路来形成残差产生单元204。
在模式选择单元202将CU分割成PU的示例中,每个PU可以与亮度预测单元和相应的色度预测单元相关联。视频编码器200和视频解码器300可以支持具有各种大小的PU。如上所示,CU的大小可以指CU的亮度编译码块的大小,并且PU的大小可以指PU的亮度预测单元的大小。假设特定CU的大小为2N×2N,那么视频编码器200可以支持针对帧内预测的2N×2N或N×N的PU大小,以及用于帧间预测的2N×2N、2N×N、N×2N、N×N或类似大小的对称PU大小。视频编码器200和视频解码器300还可以支持针对帧间预测的2N×nU、2N×nD、nL×2N和nR×2N的PU大小的不对称分割。
在模式选择单元202没有进一步将CU分割成PU的示例中,每个CU可以与亮度编译码块和相应色度编译码块相关联。如上文,CU的大小可以指CU的亮度编译码块的大小。视频编码器200和视频解码器300可以支持2N×2N、2N×N或N×2N的CU大小。
对于诸如帧内块复制模式编译码、仿射模式编译码和线性模型(LM)模式编译码的其它视频编译码技术,作为少数示例,模式选择单元202经由与编译码技术相关联的相应单元来产生正被编码的当前块的预测块。在一些示例中,诸如调色板模式编译码,模式选择单元202可以不产生预测块,而是产生指示基于选择的调色板重构块的方式的语法元素。在这样的模式中,模式选择单元202可以将这些语法元素提供给熵编码单元220以进行编码。
如上所述,残差产生单元204接收当前块和相应预测块的视频数据。然后,残差产生单元204产生当前块的残差块。为了产生残差块,残差产生单元204计算预测块与当前块之间的逐样点差。因此,
变换处理单元206将一或多个变换应用于残差块以产生变换系数的块(在本文中被称为“变换系数块”)。变换处理单元206可以将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可以将离散余弦变换(DCT)、方向变换、Karhunen-Loeve变换(KLT)或概念上类似的变换应用于残差块。在一些示例中,变换处理单元206可以对残差块执行多次变换,例如一次变换和二次变换,诸如旋转变换。在一些示例中,变换处理单元206不将变换应用于残差块。
量化单元208可以量化变换系数块中的变换系数,以产生量化的变换系数块。量化单元208可以根据与当前块相关联的量化参数(QP)值来量化变换系数块的变换系数。视频编码器200(例如,经由模式选择单元202)可以通过调整与CU相关联的QP值来调整应用于与当前块相关联的系数块的量化程度。量化可以引入信息损失,并且因此,量化的变换系数可以具有比由变换处理单元206产生的原始变换系数的精度低的精度。
逆量化单元210和逆变换处理单元212可以分别将逆量化和逆变换应用于量化的变换系数块,以从变换系数块重构残差块。重构单元214可以基于重构的残差块和由模式选择单元202产生的预测块来产生相应于当前块的重构的块(尽管可能具有一定程度的失真)。例如,重构单元214可以将重构的残差块的样点添加到来自由模式选择单元202产生的预测块的相应样点以产生重构的块。
滤波器单元216可以对重构的块执行一个或多个滤波器操作。例如,滤波器单元216可以执行去块操作以减少沿着CU的边缘的块效应伪像。在一些示例中,可以跳过滤波器单元216的操作。
视频编码器200将重构的块存储在DPB 218中。例如,在不需要滤波器单元216的操作的示例中,重构单元216可以将重构的块存储到DPB 218。在需要滤波器单元224的操作的示例中,滤波器单元216可以将滤波的重构的块存储到DPB 218。运动估计单元222和运动补偿单元224可以从DPB 218检索由重构的(并且可能滤波的)块形成的参考图像,以对后续编码的图像的块进行帧间预测。另外,帧内预测单元226可以使用当前图像的DPB 218中的重构的块来对当前图像中的其它块进行帧内预测。
通常,熵编码单元220可以对从视频编码器200的其它功能组件接收的语法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的量化的变换系数块进行熵编码。作为另一示例,熵编码单元220可以对来自模式选择单元202的预测语法元素(例如,用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。熵编码单元220可以对作为视频数据的另一示例的语法元素执行一个或多个熵编码操作以产生熵编码的数据。例如,熵编码单元220可以对数据执行上下文自适应可变长度编译码(CAVLC)操作、CABAC操作、可变到可变(V2V)长度编译码操作、基于语法的上下文自适应二进制算术编译码(SBAC)操作、概率区间分割熵(PIPE)编译码操作、指数哥伦布编码操作或另一类型的熵编码操作。在一些示例中,熵编码单元220可以在旁路模式下操作,其中,在所述旁路模式中不对语法元素进行熵编码。
视频编码器200可以输出包括重构条带或图像的块所需的熵编码的语法元素的比特流。具体而言,熵编码单元220可以输出比特流。
以上所描述的操作是针对块来描述的。这样的描述应当被理解为用于亮度编译码块和/或色度编译码块的操作。如上所述,在一些示例中,亮度编译码块和色度编译码块是CU的亮度和色度分量。在一些示例中,亮度编译码块和色度编译码块是PU的亮度和色度分量。
在一些示例中,不需要针对色度编译码块重复针对亮度编译码块执行的操作。作为一个示例,识别亮度编译码块的运动矢量(MV)和参考图像的操作不需为了识别色度块的MV和参考图像而重复。相反,亮度编译码块的MV可以被缩放以确定色度块的MV,并且参考图像可以是相同的。作为另一示例,对于亮度编译码块和色度编译码块,帧内预测处理可以是相同的。
视频编码器200表示被配置为对视频数据进行编码的设备的示例,其中,所述设备包括被配置为存储视频数据的存储器,和以电路实现并且被配置为使用预测像素值推导帧速率上转换(FRUC)模板以及使用推导的模板执行解码器侧运动矢量推导技术的一个或多个处理单元。在另一示例中,视频解码器300可以被配置为从视频数据的一个或多个相邻块确定各自的运动矢量,并且使用来自视频数据的一个或多个相邻块的各自的运动矢量推导视频数据的当前块的运动矢量。在另一示例中,视频解码器300可以被配置为从视频数据的一个或多个并置块确定各自的运动矢量,并且使用来自视频数据的一个或多个并置块的各自的运动矢量来推导视频数据的当前块的运动矢量。
图12是示出可执行本公开的技术的示例视频解码器300的框图。图12是出于解释的目的而提供的,并且不是对本公开中广泛例示和描述的技术的限制。出于解释的目的,本公开描述了根据JEM、H.266/VVC和HEVC的技术描述的视频解码器300。然而,本公共的技术可以由被配置为其它视频编译码标准的视频编译码设备来执行。
在图12的示例中,视频解码器300包括编译码图像缓冲器(coded picturebuffer,CPB)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和解码图像缓冲器(DPB)314。预测处理单元304包括运动补偿单元316和帧内预测单元318。预测处理单元304可以包括附加单元以根据其它预测模式执行预测。作为示例,预测处理单元304可以包括调色板单元、块内复制单元(其可以形成运动补偿单元316的一部分)、仿射单元、线性模型(LM)单元等。在其它示例中,视频解码器300可以包括更多、更少或不同的功能组件。
CPB存储器320可以存储要由视频解码器300的组件解码的视频数据,诸如编码的视频比特流。可以例如从计算机可读介质110(图1)获得存储在CPB存储器320中的视频数据。CPB存储器320可以包括存储来自编码的视频比特流的编码的视频数据(例如,语法元素)的CPB。此外,CPB存储器320可以存储除编译码的图像的语法元素之外的视频数据,诸如表示来自视频解码器300的各种单元的输出的临时数据。DPB 314通常存储解码的图像,其中,视频解码器300可以在对编码的视频比特流的后续数据或图像进行解码时输出所述解码的图像和/或将所述解码的图像用作参考视频数据。CPB存储器320和DPB 314可以由各种存储器设备中的任一种形成,诸如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM)或其它类型的存储器设备。CPB存储器320和DPB 314可以由相同的存储器设备或单独的存储器设备提供。在各种示例中,CPB存储器320可以与视频解码器300的其它组件一起在芯片上,或相对于那些组件在芯片外。
附加地或替代地,在一些示例中,视频解码器300可以从存储器120(图1)检索编译码的视频数据。即,存储器120可以存储如上面关于CPB存储器320所论述的数据。同样地,当以软件实现视频解码器300的一些或全部功能以由视频解码器300的处理电路执行时,存储器120可以存储要由视频解码器300执行的指令。
示出了图12中所示的各种单元以帮助理解由视频解码器300执行的操作。所述单元可以被实现为固定功能电路、可编程电路或它们的组合。类似于图11,固定功能电路指提供特定功能并且在可以执行的操作上预设的电路。可编程电路指可以被编程以执行各种任务并且在可以执行的操作中提供灵活功能的电路。例如,可编程电路可以执行使得可编程电路以由软件或固件的指令定义的方式进行操作的软件或固件。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但固定功能电路执行的操作的类型通常是不可变的。在一些示例中,所述单元中的一个或多个可以是不同的电路块(固定功能或可编程),并且在一些示例中,所述一个或多个单元可以是集成电路。
视频解码器300可以包括ALU、EFU、数字电路、模拟电路和/或由可编程电路形成的可编程核心。在视频解码器300的操作由在可编程电路上执行的软件执行的示例中,芯片上或芯片外存储器可以存储视频解码器300接收和执行的软件的指令(例如,目标代码)。
熵解码单元302可以从CPB接收编码的视频数据并且对视频数据进行熵解码以再现语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310和滤波器单元312可以基于从比特流提取的语法元素来产生解码的视频数据。
通常,视频解码器300在逐块的基础上重构图像。视频解码器300可以单独地对每个块执行重构操作(其中,当前正被重构(即,被解码)的块可以被称为“当前块”)。
熵解码单元302可以对定义量化的变换系数块的量化的变换系数的语法元素以及变换信息(诸如,量化参数(QP)和/或(多个)变换模式指示)进行熵解码。逆量化单元306可以使用与量化的变换系数块相关联的QP来确定量化程度,并且同样地,确定逆量化单元306要应用的逆量化程度。逆量化单元306可以例如执行逐位左移操作来对量化的变换系数进行逆量化。由此,逆量化单元306可以形成包括变换系数的变换系数块。
在逆量化单元306形成变换系数块之后,逆变换处理单元308可以将一或多个逆变换应用于变换系数块以产生与当前块相关联的残差块。例如,逆变换处理单元308可以将逆DCT、逆整数变换、逆Karhunen-Loeve变换(KLT)、逆旋转变换、逆方向变换或另一逆变换应用于系数块。
此外,预测处理单元304根据由熵解码单元302熵解码的预测信息语法元素来产生预测块。例如,如果预测信息语法元素指示当前块是帧间预测的,那么运动补偿单元316可以产生预测块。在这种情况下,预测信息语法元素可以指示从其检索参考块的DPB 314中的参考图像,以及识别参考图像中的参考块相对于当前图像中的当前块的位置的位置的运动矢量。运动补偿单元316可以通常以基本上类似于针对运动补偿单元224(图11)所描述的方式的方式执行帧间预测处理。
作为另一实例,如果预测信息语法元素指示当前块是帧内预测的,那么帧内预测单元318可以根据由预测信息语法元素指示的帧内预测模式来产生预测块。同样,帧内预测单元318可以以基本上类似于针对帧内预测单元226(图11)所描述的方式的方式执行帧内预测处理。帧内预测单元318可以从DPB 314检索当前块的相邻样点的数据。
重构单元310可以使用预测块和残差块来重构当前块。例如,重构单元310可以将残差块的样点添加到预测块的相应样点以重构当前块。
滤波器单元312可以对重构的块执行一个或多个滤波器操作。例如,滤波器单元312可以执行去块操作以减少沿着重构的块的边缘的块效应伪像。未必在所有示例中执行滤波器单元312的操作。
视频解码器300可以将重构的块存储在DPB 314中。如上所述,DPB 314可以将参考信息(诸如用于帧内预测的当前图像的样点和用于后续运动补偿的先前解码的图像的样点)提供给预测处理单元304。此外,视频解码器300可以输出来自DPB的解码的图像,用于后续在显示设备(例如,图1的显示设备118)上呈现。
以这种方式,视频解码器300表示视频解码设备的示例,其中,所述视频解码设备包括被配置为存储视频数据的存储器,以及以电路实现并且被配置以为实现本文中所论述的方法及处理的一个或多个处理单元。
例如,编码的视频数据可以包括以下语法:
表4.合并数据语法
merge_subblock_flag[x0][y0]指定是否从相邻块推断当前编译码单元的基于子块的帧间预测参数。阵列索引x0,y0指定考虑的编译码块的左上亮度样点相对于图像的左上亮度样点的位置(x0,y0)。当merge_subblock_flag[x0][y0]不存在时,推断其等于0。
merge_subblock_idx[x0][y0]指定基于子块的合并候选列表的合并候选索引,其中,在合并候选索引中,x0,y0指定考虑的编译码块的左上亮度样点相对于图像的左上亮度样点的位置(x0,y0)。
当merge_subblock_idx[x0][y0]不存在时,推断其等于0。
如果merge_subblock_flag[xCb][yCb]等于1,则调用在8.4.4.2中指定的子块合并模式中的运动矢量和参考索引的推导处理,其中,亮度编译码块位置(xCb,yCb)、亮度编译码块宽度cbWidth和亮度编译码块高度cbHeight作为输入、水平方向上的亮度编译码子块的数量numSbX和垂直方向上的亮度编译码子块的数量numSbY、参考索引refIdxL0、refIdxL1、预测列表利用标志阵列predFlagL0[xSbIdx][ySbIdx]和predFlagL1[xSbIdx][ySbIdx]、亮度子块运动矢量阵列mvL0[xSbIdx][ySbIdx]和mvL0[xSbIdx][ySbIdx]以及色度子块运动矢量阵列mvCL0[xSbIdx][ySbIdx]和mvCL1[xSbIdx][ySbIdx],其中xSbIdx=0..NumSbX-1,ySbIdx=0..numSbY-1并且双向预测权重索引gbiIdx作为输出。
应认识到,根据示例,本文中所描述的任何技术中的某些动作或事件可以以不同的顺序执行,可以被添加、合并或完全省略(例如,并非所有描述的动作或事件对于技术的实践都是必须的)。此外,在某些示例中,可以例如通过多线程处理、中断处理或多个处理器而不是顺序地并发执行动作或事件。
在一个或多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合来实现。如果以软件实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或在计算机可读介质上发送,并且由基于硬件的处理单元来执行。计算机可读介质可以包括计算机可读存储介质,其相应于诸如数据存储介质的有形介质,或者包括例如根据通信协议来促进将计算机程序从一个地方转移到另一个地方的任何介质的通信介质。以这种方式,计算机可读介质通常可相应于(1)非暂时性的有形计算机可读存储介质,或者(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以检索用于实现本公开中所描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这样的计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储设备、闪速存储器或者可用于存储以指令或数据结构形式的并且可以由计算机访问的期望的程序代码的任何其它介质。此外,任何连接都被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或者诸如红外、无线电和微波的无线技术从网站、服务器或其它远程源发送指令,那么介质的定义包括同轴电缆、光纤电缆、双绞线、DSL或者诸如红外、无线电和微波的无线技术。然而,应该理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它暂时性介质,而是针对非暂时性的有形存储介质。如本文中所使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能盘(DVD)、软盘和蓝光盘,其中,磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述各项的组合也应包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA),或其它等效的集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可以指任何前述结构或适合于实现本文中所描述的技术的任何其它结构。另外,在一些方面,本文中所描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块内提供,或者可以结合在组合编解码器中。另外,该技术可以在一个或多个电路或逻辑元件中完全实现。
本公开的技术可以在各种设备或装置中实现,包括无线手持设备、集成电路(IC)或IC的集合(例如,芯片集合)。在本公开中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但不一定需要由不同的硬件单元来实现。相反,如上所述,各种单元可以组合在编解码器硬件单元中,或者由包括如上所述的一个或多个处理器的互操作硬件单元的合集结合适当的软件和/或固件来提供。
已经描述了各种示例。这些和其它示例在所附权利要求的范围内。
Claims (26)
1.一种对视频数据进行解码的方法,所述方法包括:
接收编码的视频数据;
基于第一块大于预定义值,从所述编码的视频数据解析第一子预测单元运动标志;
响应于确定所述第一子预测单元运动标志是有效的,第一子预测单元运动标志指示运动信息是否是基于子预测单元运动生成的,
推导子预测单元级运动预测候选的第一列表,其中所述子预测单元级运动预测候选适用于所述第一块的至少一个子块内的子预测单元级运动估计;以及
解码指示来自子预测单元级运动预测候选的第一列表的第一运动矢量预测器的子块合并索引;
使用第一运动矢量预测器解码所述第一块的至少一个子块;
基于第二块大于所述预定义值,从所述编码的视频数据解析第二子预测单元运动标志;
响应于确定所述第二子预测单元运动标志是非有效的,
推导预测单元级运动预测候选的第二列表,其中所述预测单元级运动预测候选适用于所述第二块的预测单元,以及
解码预测单元合并索引,所述预测单元合并索引指示来自预测单元级运动预测候选的第二列表中的第二运动矢量预测器,其中所述预测单元合并索引是与所述子块合并索引不同的语法元素;以及
使用所述第二运动矢量预测器对所述第二块的预测单元进行解码。
2.根据权利要求1所述的方法,其中,所述编码的视频数据包括所述第一块和所述第二块,其中所述子预测单元级运动预测候选的第一列表从所述第一块的第一相邻块被推导,并且所述预测单元级运动预测候选的第二列表从所述第二块的第二相邻块被推导。
3.根据权利要求2所述的方法,其中,所述第一相邻块是当前图像中的所述第一块的空间相邻者或先前编译码的图像中的所述第一块的时间相邻者。
4.根据权利要求2所述的方法,其中,所述子预测单元级运动预测候选的第一列表或所述预测单元级运动预测候选的第二列表至少部分地基于所述第一相邻块或所述第二相邻块中的运动预测发生而被排序。
5.根据权利要求1所述的方法,其中,预测单元中的像素共享第一运动矢量信息并且子预测单元中的像素共享第二运动矢量信息,并且其中,所述第一运动矢量信息或所述第二运动矢量信息从所选择的运动矢量预测器被确定。
6.根据权利要求1所述的方法,其中,所述预测单元级运动矢量候选的第二列表包括以下各项中的至少一项:空间相邻候选和时间相邻候选。
7.根据权利要求1所述的方法,其中,所述子预测单元级运动预测候选的第一列表包括以下各项中的至少一项:可选时间运动矢量预测ATMVP、空间-时间运动矢量预测STMVP、平面运动矢量预测和模式匹配运动矢量推导PMVD。
8.一种用于对视频数据进行解码的装置,所述装置包括:
存储器,用于存储编码的视频数据;以及
与所述存储器通信的处理器,所述处理器被配置为,
接收编码的视频数据;
基于第一块大于预定义值,从所述编码的视频数据解析第一子预测单元运动标志;
响应于确定所述第一子预测单元运动标志是有效的,第一子预测单元运动标志指示运动信息是否是基于子预测单元运动生成的,
推导子预测单元级运动预测候选的第一列表,其中所述子预测单元级运动预测候选适用于所述第一块的至少一个子块内的子预测单元级运动估计;以及
解码指示来自子预测单元级运动预测候选的第一列表的第一运动矢量预测器的子块合并索引;
使用第一运动矢量预测器解码所述第一块的至少一个子块;
基于第二块大于所述预定义值,从所述编码的视频数据解析第二子预测单元运动标志;
响应于确定所述第二子预测单元运动标志是非有效的,
推导预测单元级运动预测候选的第二列表,其中所述预测单元级运动预测候选适用于所述第二块的预测单元,以及
解码预测单元合并索引,所述预测单元合并索引指示来自预测单元级运动预测候选的第二列表中的第二运动矢量预测器,其中所述预测单元合并索引是与所述子块合并索引不同的语法元素;以及
使用所述第二运动矢量预测器对所述第二块的预测单元进行解码。
9.根据权利要求8所述的装置,其中,所述编码的视频数据包括所述第一块和所述第二块,其中所述子预测单元级运动预测候选的第一列表从所述第一块的第一相邻块被推导,并且所述预测单元级运动预测候选的第二列表从所述第二块的第二相邻块被推导。
10.根据权利要求9所述的装置,其中,所述第一相邻块是当前图像中的所述第一块的空间相邻者或先前编译码的图像中的所述第一块的时间相邻者。
11.根据权利要求9所述的装置,其中,所述子预测单元级运动预测候选的第一列表或所述预测单元级运动预测候选的第二列表至少部分地基于所述第一相邻块或所述第二相邻块中的运动预测发生而被排序。
12.根据权利要求8所述的装置,其中,预测单元中的像素共享第一运动矢量信息并且子预测单元中的像素共享第二运动矢量信息,并且其中,所述第一运动矢量信息或所述第二运动矢量信息从所选择的运动矢量预测器被确定。
13.根据权利要求8所述的装置,其中,所述预测单元级运动矢量候选的第二列表包括以下各项中的至少一项:空间相邻候选和时间相邻候选。
14.根据权利要求8所述的装置,其中,所述子预测单元级运动预测候选的第一列表包括以下各项中的至少一项:可选时间运动矢量预测ATMVP、空间-时间运动矢量预测STMVP、平面运动矢量预测和模式匹配运动矢量推导PMVD。
15.一种用于对视频数据进行解码的装置,所述装置包括:
存储器部件,用于存储编码的视频数据;以及
处理器部件,所述处理器部件被配置为,
接收编码的视频数据;
基于第一块大于预定义值,从所述编码的视频数据解析第一子预测单元运动标志;
响应于确定所述第一子预测单元运动标志是有效的,第一子预测单元运动标志指示运动信息是否是基于子预测单元运动生成的,
推导子预测单元级运动预测候选的第一列表,其中所述子预测单元级运动预测候选适用于所述第一块的至少一个子块内的子预测单元级运动估计;以及
解码指示来自子预测单元级运动预测候选的第一列表的第一运动矢量预测器的子块合并索引;
使用第一运动矢量预测器解码所述第一块的至少一个子块;
基于第二块大于所述预定义值,从所述编码的视频数据解析第二子预测单元运动标志;
响应于确定所述第二子预测单元运动标志是非有效的,
推导预测单元级运动预测候选的第二列表,其中所述预测单元级运动预测候选适用于所述第二块的预测单元,以及
解码预测单元合并索引,所述预测单元合并索引指示来自预测单元级运动预测候选的第二列表中的第二运动矢量预测器,其中所述预测单元合并索引是与所述子块合并索引不同的语法元素;以及
使用所述第二运动矢量预测器对所述第二块的预测单元进行解码。
16.根据权利要求15所述的装置,其中,所述编码的视频数据包括所述第一块和所述第二块,其中所述子预测单元级运动预测候选的第一列表从所述第一块的第一相邻块被推导,并且所述预测单元级运动预测候选的第二列表从所述第二块的第二相邻块被推导。
17.根据权利要求16所述的装置,其中,所述第一相邻块是当前图像中的所述第一块的空间相邻者或先前编译码的图像中的所述第一块的时间相邻者。
18.根据权利要求16所述的装置,其中,所述子预测单元级运动预测候选的第一列表或所述预测单元级运动预测候选的第二列表至少部分地基于所述第一相邻块或所述第二相邻块中的运动预测发生而被排序。
19.根据权利要求15所述的装置,其中,预测单元中的像素共享第一运动矢量信息并且子预测单元中的像素共享第二运动矢量信息,并且其中,所述第一运动矢量信息或所述第二运动矢量信息从所选择的运动矢量预测器被确定。
20.根据权利要求15所述的装置,其中,所述预测单元级运动矢量候选的第二列表包括以下各项中的至少一项:空间相邻候选和时间相邻候选。
21.根据权利要求15所述的装置,其中,所述子预测单元级运动预测候选的第一列表包括以下各项中的至少一项:可选时间运动矢量预测ATMVP、空间-时间运动矢量预测STMVP、平面运动矢量预测和模式匹配运动矢量推导PMVD。
22.一种其上存储有指令的非暂时性计算机可读存储介质,所述指令在被执行时使得一个或多个处理器执行方法,所述方法包括:
接收编码的视频数据;
基于第一块大于预定义值,从所述编码的视频数据解析第一子预测单元运动标志;
响应于确定所述第一子预测单元运动标志是有效的,第一子预测单元运动标志指示运动信息是否是基于子预测单元运动生成的,
推导子预测单元级运动预测候选的第一列表,其中所述子预测单元级运动预测候选适用于所述第一块的至少一个子块内的子预测单元级运动估计;以及
解码指示来自子预测单元级运动预测候选的第一列表的第一运动矢量预测器的子块合并索引;
使用第一运动矢量预测器解码所述第一块的至少一个子块;
基于第二块大于所述预定义值,从所述编码的视频数据解析第二子预测单元运动标志;
响应于确定所述第二子预测单元运动标志是非有效的,
推导预测单元级运动预测候选的第二列表,其中所述预测单元级运动预测候选适用于所述第二块的预测单元,以及
解码预测单元合并索引,所述预测单元合并索引指示来自预测单元级运动预测候选的第二列表中的第二运动矢量预测器,其中所述预测单元合并索引是与所述子块合并索引不同的语法元素;以及
使用所述第二运动矢量预测器对所述第二块的预测单元进行解码。
23.根据权利要求22所述的介质,其中,所述编码的视频数据包括所述第一块和所述第二块,其中所述子预测单元级运动预测候选的第一列表从所述第一块的第一相邻块被推导,并且所述预测单元级运动预测候选的第二列表从所述第二块的第二相邻块被推导。
24.根据权利要求23所述的介质,其中,所述第一相邻块是当前图像中的所述第一块的空间相邻者或先前编译码的图像中的所述第一块的时间相邻者。
25.根据权利要求23所述的介质,其中,所述子预测单元级运动预测候选的第一列表或所述预测单元级运动预测候选的第二列表至少部分地基于所述第一相邻块或所述第二相邻块中的运动预测发生而被排序。
26.根据权利要求22所述的介质,其中
预测单元中的像素共享第一运动矢量信息并且子预测单元中的像素共享第二运动矢量信息,并且其中,所述第一运动矢量信息或所述第二运动矢量信息从所选择的运动矢量预测器被确定,
其中,所述预测单元级运动矢量候选的第二列表包括以下各项中的至少一项:空间相邻候选和时间相邻候选,以及
其中,所述子预测单元级运动预测候选的第一列表包括以下各项中的至少一项:可选时间运动矢量预测ATMVP、空间-时间运动矢量预测STMVP、平面运动矢量预测和模式匹配运动矢量推导PMVD。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862687052P | 2018-06-19 | 2018-06-19 | |
US62/687,052 | 2018-06-19 | ||
US16/443,113 US20190387247A1 (en) | 2018-06-19 | 2019-06-17 | Signaling sub-prediction unit motion vector predictor |
US16/443,113 | 2019-06-17 | ||
PCT/US2019/037722 WO2019246092A1 (en) | 2018-06-19 | 2019-06-18 | Signaling sub-prediction unit motion vector predictor |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112534820A CN112534820A (zh) | 2021-03-19 |
CN112534820B true CN112534820B (zh) | 2024-06-28 |
Family
ID=
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008061522A2 (de) * | 2006-11-24 | 2008-05-29 | Gerold Achim Adamietz | Kondomverpackung |
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008061522A2 (de) * | 2006-11-24 | 2008-05-29 | Gerold Achim Adamietz | Kondomverpackung |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11184633B2 (en) | Simplification of history-based motion vector prediction | |
US20220295077A1 (en) | Combination of inter-prediction and intra-prediction in video coding | |
US11212550B2 (en) | History-based motion vector prediction for affine mode | |
US11350083B2 (en) | Intra block copy merging data syntax for video coding | |
CN113196749B (zh) | 用于译码视频数据的方法和设备 | |
US10893291B2 (en) | Ultimate motion vector expression with adaptive directional information set | |
CN112806012A (zh) | 用于帧间预测译码的基于历史的运动向量预测 | |
CN112534821B (zh) | 运动向量预测子列表生成 | |
JP2022533664A (ja) | ビデオコーディングのためのマージモードコーディング | |
JP7474774B2 (ja) | ビデオコーディングにおけるイントラブロックコピーモードのための動きベクトル予測子リスト生成 | |
JP7379391B2 (ja) | シグナリングサブ予測ユニット動きベクトル予測子 | |
US10958928B2 (en) | Decoder-side motion vector derivation for video coding | |
CN113508594A (zh) | 视频编解码中三角形合并模式索引的信令 | |
CN113170185B (zh) | 用于视频译码的空间-时间运动向量预测模式 | |
US11064192B2 (en) | Simplification of spatial-temporal motion vector prediction | |
CN113892264A (zh) | 使用非矩形预测模式来减少用于视频数据预测的运动场存储 | |
JP2022533061A (ja) | ビデオコーディングのための勾配ベースの予測改良 | |
US11051035B2 (en) | Processing of illegal motion vectors for intra block copy mode in video coding | |
JP2024501154A (ja) | ビデオコーディングのための複数仮説予測 | |
CN112534820B (zh) | 信令通知子预测单元运动矢量预测器 | |
JP2024514113A (ja) | ビデオコーディングのためのテンプレートマッチングベースのアフィン予測 | |
CN114342404A (zh) | 在用于视频编解码的较高语法级别处信令通知的常量条带标头参数 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |