CN118056400A - 用于视频译码的运动矢量差符号预测 - Google Patents
用于视频译码的运动矢量差符号预测 Download PDFInfo
- Publication number
- CN118056400A CN118056400A CN202280063934.2A CN202280063934A CN118056400A CN 118056400 A CN118056400 A CN 118056400A CN 202280063934 A CN202280063934 A CN 202280063934A CN 118056400 A CN118056400 A CN 118056400A
- Authority
- CN
- China
- Prior art keywords
- motion vector
- block
- vector difference
- video data
- video
- 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 576
- 239000013598 vector Substances 0.000 title claims abstract description 501
- 238000000034 method Methods 0.000 claims description 152
- 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 61
- 230000015654 memory Effects 0.000 claims description 55
- 238000005192 partition Methods 0.000 claims description 51
- 238000004891 communication Methods 0.000 claims description 21
- 238000012545 processing Methods 0.000 description 41
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 31
- 238000013139 quantization Methods 0.000 description 31
- 241000023320 Luma <angiosperm> Species 0.000 description 26
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 26
- 230000006870 function Effects 0.000 description 22
- 230000008569 process Effects 0.000 description 21
- 238000003860 storage Methods 0.000 description 18
- 238000000638 solvent extraction Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 230000011664 signaling Effects 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 8
- 230000003044 adaptive effect Effects 0.000 description 7
- 238000013500 data storage Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 101150114515 CTBS gene Proteins 0.000 description 4
- 239000000872 buffer Substances 0.000 description 4
- 238000009795 derivation Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 229910003460 diamond Inorganic materials 0.000 description 2
- 239000010432 diamond Substances 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000013519 translation Methods 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
- 229930091051 Arenine Natural products 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 239000011449 brick Substances 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
视频解码器可以被配置为使用可能的符号值、运动矢量差分量的相应幅度和用于视频数据块的运动矢量预测器来构造运动矢量候选,其中,可能的符号值包括正符号值和负符号值,基于每个运动矢量候选的成本对运动矢量候选进行排序以创建排序列表,基于运动矢量符号预测器索引和排序列表来确定每个运动矢量差坐标的相应运动矢量差符号,并且使用运动矢量差坐标的相应幅度和每个运动矢量差分量的相应运动矢量差符号来解码视频数据块。
Description
本申请要求于2021年9月28日提交的美国临时专利申请第63/249,421号的权益,其全部内容通过引用并入本文。
技术领域
本公开涉及视频编码和视频解码。
背景技术
数字视频功能可以集成到各种设备中,各种设备包括数字电视、数字直接广播系统、无线广播系统、个人数字助理(PDA)、笔记本电脑或台式电脑、平板电脑、电子书阅读器、数字相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电电话、所谓的“智能电话”、视频电话会议设备、视频流设备等。数字视频设备实施视频译码技术,例如在以下各项中所定义的标准中所描述的那些:由MPEG-2、MPEG-4、ITU-TH.263、ITU-T H.264/MPEG-4第10部分、高级视频译码(AVC)、ITU-T H.265/高效视频译码(HEVC)、ITU-T H.266/多功能视频译码(VVC)以及此类标准的扩展,以及专有视频编解码器/格式,例如由开放媒体联盟(Alliance for Open Media)开发的AOMedia Video 1(AV1)。视频设备可以通过实施这样的视频译码技术更高效地发送、接收、编码、解码和/或存储数字视频信息。
视频译码技术包括空间(图片内)预测和/或时间(图片间)预测,用于减少或消除视频序列中固有的冗余。对于基于块的视频译码,视频切片(例如,视频图片或视频图片的一部分)可以被分割成视频块,视频块也可以称为译码树单元(CTU)、译码单元(CU)和/或译码节点。使用关于同一图片中的相邻块中的参考样本的空间预测对图片的帧内编码(I)切片中的视频块进行编码。图片的帧间编码(P或B)切片中的视频块可以使用关于同一图片中的相邻块中的参考样本的空间预测或关于其他参考图片中的参考样本的时间预测。图片可以称为帧,并且参考图片可称为参考帧。
发明内容
一般而言,本公开描述了帧间预测和帧间相关信息译码的技术。更具体地,描述了用于预测MVD(运动矢量差)的符号的设备和技术。MVD是针对特定译码模式确定的运动矢量与使用特定运动矢量预测方法预测的运动矢量之间的差。MVD可以由确定的运动矢量和预测的运动矢量在X和Y两个方向上的差(例如,称为运动矢量差坐标)来表示。
MVD可以包括差值的绝对值(例如,幅度)以及差值的极性或符号(例如,正或负)。指示MVD坐标符号的信令信息(signaling information)可能会消耗开销信令中的大量带宽。本公开描述了用于预测使用MVD的一种或多种译码模式的MVD坐标的符号的技术。例如,本公开的技术可以用于在以下模式中生成的MVD:具有MVD的合并模式(MMVD)译码模式、仿射MMVD、具有MMVD的几何分割模式(GPM)、多假设预测(MHP)模式、或其中预测MVD或其他运动矢量的符号可能是有益的其他译码模式。本公开的技术可以提高此类译码模式的译码效率。
在一个示例中,本公开描述了一种对视频数据进行解码的方法,该方法包括:使用可能的符号值、运动矢量差分量的相应幅度和用于视频数据块的运动矢量预测器来构造运动矢量候选,其中,所述可能的符号值包括正符号值和负符号值;基于每个运动矢量候选的成本对运动矢量候选进行排序,以创建排序列表;基于所述运动矢量符号预测器索引和排序列表针对每个运动矢量差坐标确定相应的运动矢量差符号;以及使用运动矢量差坐标的相应幅度和每个运动矢量差分量的相应运动矢量差符号,来解码所述视频数据块。
在另一示例中,本公开描述了一种被配置为对视频数据进行解码的装置,该装置包括:被配置为存储视频数据块的存储器,以及与该存储器通信的一个或多个处理器,该一个或多个处理器被配置为:使用可能的符号值、运动矢量差分量的相应大小和用于视频数据块的运动矢量预测器来构造运动矢量候选,其中,可能的符号值包括正符号值和负符号值;基于每个运动矢量候选的成本对运动矢量候选进行排序来创建排序列表;基于运动矢量符号预测器索引和排序列表来确定每个运动矢量差坐标的相应运动矢量差符号;以及使用运动矢量差坐标的相应幅度和每个运动矢量差分量的相应的运动矢量差符号,来解码视频数据块。
在另一示例中,本公开描述了一种被配置为对视频数据进行解码的装置,该装置包括:用于使用可能的符号值、运动矢量差分量的相应幅度和用于视频数据块的运动矢量预测器来构造运动矢量候选的单元,其中,可能的符号值包括正符号值和负符号值;用于基于每个运动矢量候选的成本对运动矢量候选进行排序以创建排序列表的单元;用于基于运动矢量符号预测器索引和排序列表来确定每个运动矢量差坐标的相应运动矢量差符号的单元;以及用于使用运动矢量差坐标的相应幅度和每个运动矢量差分量的相应运动矢量差符号来解码视频数据块的单元。
在另一示例中,本公开描述了一种存储指令的非暂时性计算机可读存储介质,该指令当被执行时,使被配置为解码视频数据的一个或多个处理器:使用可能的符号值、运动矢量差分量的相应幅度和用于视频数据块的运动矢量预测器来构造运动矢量候选,其中,可能的符号值包括正符号值和负符号值;基于每个运动矢量候选的成本对运动矢量候选进行排序以创建排序列表;基于运动矢量符号预测器索引和排序列表来确定每个运动矢量差坐标的相应运动矢量差符号;以及使用运动矢量差坐标的相应幅度和每个运动矢量差分量的相应运动矢量差符号来解码视频数据块。
在附图和以下描述中阐述一个或多个示例的细节。从描述、附图和权利要求中,其他特征、目的和优点将是显而易见的。
附图说明
图1是说明可以执行本公开的技术的示例视频编码和解码系统的框图。
图2是说明示例简化仿射运动模型的概念图。
图3是说明示例的具有运动矢量差合并模式(MMVD)搜索点的概念图。
图4是说明按相同角度分组的几何分割模式(GPM)拆分的示例的概念图。
图5说明了两个插值滤波器的示例频率响应。
图6是说明对初始运动矢量周围的搜索区域执行的模板匹配的示例的概念图。
图7是说明使用模板匹配对平移帧间块进行运动矢量符号预测的示例的概念图。
图8是说明可以执行本公开的技术的示例视频编码器的框图。
图9是说明可以执行本公开的技术的示例视频解码器的框图。
图10是说明根据本公开的技术用于编码当前块的示例方法的流程图。
图11是说明根据本公开的技术用于解码当前块的示例方法的流程图。
图12是说明根据本公开的技术用于解码当前块的另一示例方法的流程图。
具体实施方式
各种译码模式(例如,帧间预测)使用运动矢量来确定预测块。在一些示例中,视频编码器可以用信号发送(signal)MVD(运动矢量差),而不是用信号发送运动矢量的坐标。MVD是针对特定译码模式确定的运动矢量与使用特定运动矢量预测方法预测的运动矢量之间的差。MVD可以由确定的运动矢量和预测的运动矢量在X和Y两个方向上的差值(例如,称为运动矢量差坐标)来表示。
MVD可以包括差的绝对值(例如,幅度)以及差的极性或符号(例如,正或负)。指示MVD坐标符号的信令信息可能会消耗开销信令中的大量带宽。本公开描述了用于预测使用MVD的一种或多种译码模式的MVD坐标的符号的技术。例如,本公开的技术可以用于在以下模式中生成的MVD:具有MVD的合并模式(MMVD)译码模式、仿射MMVD、具有MMVD的几何分割模式(GPM)、多假设预测(MHP)模式或其中预测MVD或其他运动矢量的符号可能是有益的其他译码模式。本公开的技术可以提高此类译码模式的译码效率。
在本公开的一个示例中,视频解码器可以被配置为:使用可能的符号值、运动矢量差分量的相应幅度和用于视频数据块的运动矢量预测器来构造运动矢量候选,其中,可能的符号值包括正符号值和负符号值;基于每个运动矢量候选的成本对运动矢量候选进行排序以创建排序列表;基于运动矢量符号预测器索引和排序列表来确定每个运动矢量差坐标的相应运动矢量差符号;以及使用运动矢量差坐标的相应幅度和每个运动矢量差分量的相应运动矢量差符号,来解码视频数据块。
图1是说明可以执行本公开的技术的示例视频编码和解码系统100的框图。本公开的技术总体上针对译码(coding)(编码(encoding)和/或解码)视频数据。通常,视频数据包括用于处理视频的任何数据。因此,视频数据可以包括原始的、未编码的视频、编码的视频、解码的(例如,重构的)视频和视频元数据,例如信令数据。
如图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执行的软件指令。尽管在该示例中存储器106和存储器120与视频编码器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)或单向传输文件传输(FLUTE)协议)的服务器、内容交付网络(CDN)设备、超文本传输协议(HTTP)服务器、多媒体广播多播服务(MBMS)或增强型MBMS(eMBMS)服务器、和/或网络附加存储(NAS)设备。文件服务器114可以附加地或替代地实现一个或多个HTTP流式传输协议,例如HTTP上动态自适应流式传输(DASH)、HTTP实时流式传输(HLS)、实时流式传输协议(RTSP)、HTTP动态流式传输等。
目的地设备116可以通过任何标准数据连接(包括互联网连接),访问来自文件服务器114的编码的视频数据。这可以包括无线信道(例如,Wi-Fi连接)、有线连接(例如,数字订户线(DSL)、电缆调制解调器等)或适合访问存储在文件服务器114上的编码的视频数据的两者组合。输入接口122可以被配置为根据用于从文件服务器114取回或接收媒体数据的上面讨论的各种协议或用于取回媒体数据的其他此类协议中的任何一种或多种进行操作。
输出接口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等)接收编码的视频比特流。编码的视频比特流可以包括由视频编码器200定义的信令信息,其也由视频解码器300使用,例如具有如下值的语法元素:所述值描述视频块或其他经译码的单元(例如,切片、图片、图片组、序列等)的特性和/或处理。显示设备118向用户显示经解码的视频数据的经解码的图片。显示设备118可以表示多种显示设备中的任何一种,例如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示设备。
虽然图1中未显示,但在一些示例中,视频编码器200和视频解码器300可以均与音频编码器和/或音频解码器集成,并且可以包括适当的MUX-DEMUX单元或其他硬件和/或软件,以处理在公共数据流中包括音频和视频两者的复用流。
视频编码器200和视频解码器300均可以实现为各种合适的编码器和/或解码器电路中的任何一种,例如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑、软件、硬件、固件或其任意组合。当这些技术部分地以软件实现时,设备可以将用于软件的指令存储在合适的非暂时性计算机可读介质中并且使用一个或多个处理器在硬件中执行指令以实施本公开的技术。视频编码器200和视频解码器300中的每一者可以被包括在一个或多个编码器或解码器中,其中的任一者可以被集成为相应设备中的组合编码器/解码器(CODEC)的一部分。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器和/或无线通信设备,例如蜂窝电话。
视频编码器200和视频解码器300可以根据视频译码标准操作,视频译码标准例如为ITU-TH.265,也称为高效视频译码(HEVC)或其扩展,例如多视图和/或可缩放的视频译码扩展。可替代地,视频编码器200和视频解码器300可以根据其他专有或行业标准操作,例如ITU-T H.266,也称为通用视频译码(VVC)。在其他示例中,视频编码器200和视频解码器300可以根据专有视频编解码器/格式操作,例如AOMedia Video 1(AV1)、AV1的扩展和/或AV1的后续版本(例如,AV2)。在其他示例中,视频编码器200和视频解码器300可以根据其他专有格式或行业标准来操作。然而,本公开的技术不限于任何特定译码标准或格式。一般而言,视频编码器200和视频解码器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可以被配置为根据VVC操作。根据VVC,视频译码器(例如视频编码器200)将图片分割成多个译码树单元(CTU)。视频编码器200可以根据诸如四叉树-二叉树(quadtree-binary tree,QTBT)结构或多类型树(MTT)结构的树结构来分割CTU。QTBT结构去除了多种分割类型的概念,例如HEVC的CU、PU和TU之间的分离。QTBT结构包括两层:第一层根据四叉树分割进行分割,并且第二层根据二叉树分割进行分割。QTBT结构的根节点对应于CTU。二叉树的叶节点对应于译码单元(CU)。
在MTT分割结构中,可以使用四叉树(QT)分割、二叉树(BT)分割以及一种或多种类型的三元组树(TT)(也称为三叉树(TT))分割来对块进行分割。三元组树或三叉树分割是其中一个块被分成三个子块的分割。在一些示例中,三元组或三叉树分割将块划分为三个子块,而不通过中心划分原始块。MTT中的分割类型(例如QT、BT和TT)可能是对称的或不对称的。
当根据AV1编解码器进行操作时,视频编码器200和视频解码器300可以被配置为以块为单位对视频数据进行译码。在AV1中,可以被处理的最大译码块称为超级块。在AV1中,超级块可以是128x128亮度样本或64x64亮度样本。然而,在后续视频译码格式(例如,AV2)中,超级块可以由不同的(例如,更大的)亮度样本大小来定义。在一些示例中,超级块是块四叉树的顶层。视频编码器200可以进一步将超级块分割成更小的译码块。视频编码器200可以使用正方形或非正方形分割将超级块和其他译码块分割成更小的块。非正方形块可以包括N/2xN、NxN/2、N/4xN和NxN/4块。视频编码器200和视频解码器300可以对每个译码块执行单独的预测和变换过程。
AV1还定义了视频数据的瓦片(tile)。瓦片是可以独立于其他瓦片进行译码的超级块的矩形阵列。即,视频编码器200和视频解码器300可以分别编码和解码瓦片内的译码块而不使用来自其他瓦片的视频数据。然而,视频编码器200和视频解码器300可以跨瓦片边界执行滤波。瓦片的大小可以是统一的或不统一的。基于瓦片的译码可以实现用于编码器和解码器实现方式的并行处理和/或多线程。
在一些示例中,视频编码器200和视频解码器300可以使用单个QTBT或MTT结构来表示亮度分量和色度分量中的每一个,而在其他示例中,视频编码器200和视频解码器300可以使用两个或更多个QTBT或MTT结构,例如用于亮度分量的一个QTBT/MTT结构和用于两个色度分量的另一个QTBT/MTT结构(或用于相应色度分量的两个QTBT/MTT结构)。
视频编码器200和视频解码器300可以被配置为使用四叉树分割、QTBT分割、MTT分割、超级块分割或其他分割结构。
在一些示例中,CTU包括亮度样本的译码树块(CTB)、具有三个样本阵列的图片的色度样本的两个对应CTB、或单色图片或使用以下各项来译码的图片的样本的CTB:三个单独的颜色平面和用于对样本进行译码的语法结构。对于某个N值,CTB可以是NxN样本块,使得将分量划分为CTB是一个分割。分量是组成采用4:2:0、4:2:2或4:4:4颜色格式的图片的三个阵列(亮度和两个色度)之一的阵列或单个样本,或者组成采用单色格式图片的阵列或阵列的单个样本。在一些示例中,译码块是针对M和N的一些值的MxN样本块,使得将CTB划分为译码块是一个分割。
块(例如,CTU或CU)可以在图片中以各种方式分组。作为一个示例,砖(brick)可以指图片中特定瓦片内的CTU行的矩形区域。瓦片可以是图片中特定瓦片列和特定瓦片行内的CTU的矩形区域。瓦片列是指CTU的矩形区域,其高度等于图片的高度,并且宽度由语法元素(例如,在图片参数集中)指定。瓦片行是指CTU的矩形区域,其高度由语法元素(例如,在图片参数集中)指定,并且宽度等于图片的宽度。
在一些示例中,瓦片可以被分割为多个砖,每个砖可以包括瓦片内的一个或多个CTU行。未分割为多个砖的瓦片也可以称为砖。然而,作为瓦片的真正子集的砖可以不被称为瓦片。图片中的砖也可以按切片排列。切片可以是图片的整数个砖,其可以排他地被包含在单个网络抽象层(NAL)单元中。在一些示例中,切片包括多个完整瓦片或仅一个瓦片的完整砖的连续序列。
本公开可以互换地使用“NxN”和“N乘N”以在垂直维度和水平维度方面指代块(例如CU或其他视频块)的样本维度,例如,16x16个样本或16乘16个样本。一般来说,16x16的CU将在垂直方向有16个样本(y=16),并且在水平方向有16个样本(x=16)。同样,NxN CU通常在垂直方向有N个样本,并且在水平方向有N个样本,其中,N代表非负整数值。CU中的样本可以按行和列排列。此外,CU不需要一定在水平方向上具有与在垂直方向上相同数量的样本。例如,CU可以包括NxM个样本,其中,M不一定等于N。
视频编码器200对表示预测和/或残差信息的CU的视频数据以及其他信息进行编码。预测信息指示将如何预测CU以便形成CU的预测块。残差信息通常表示编码之前的CU的样本与预测块之间的逐样本的差。
为了预测CU,视频编码器200通常可以通过帧间预测或帧内预测形成CU的预测块。帧间预测通常是指从先前译码的图片的数据中预测CU,而帧内预测通常是指从同一图片的先前译码的数据中预测CU。为了执行帧间预测,视频编码器200可以使用一个或多个运动矢量来生成预测块。视频编码器200通常可以执行运动搜索以识别与CU紧密匹配的参考块,例如,就CU与参考块之间的差而言。视频编码器200可以使用绝对差和(SAD)、平方差和(SSD)、平均绝对差(MAD)、均方差(MSD)或其他此类差计算来计算差度量,以确定是否参考块与当前CU紧密匹配。在一些实例中,视频编码器200可以使用单向预测或双向预测来预测当前CU。
VVC的一些示例还提供仿射运动补偿模式,可以将其视为帧间预测模式。在仿射运动补偿模式中,视频编码器200可以确定表示非平移运动的两个或更多个运动矢量,例如放大或缩小、旋转、透视运动或其他不规则运动类型。
为了执行帧内预测,视频编码器200可以选择帧内预测模式来生成预测块。VVC的一些示例提供了67种帧内预测模式,包括各种方向模式,以及平面模式和DC模式。一般而言,视频编码器200选择描述当前块(例如,CU的块)的相邻样本的帧内预测模式,根据所述相邻样本预测当前块的样本。假设视频编码器200以光栅扫描顺序(从左到右、从上到下)对CTU和CU进行译码,这样的样本通常可以在与当前块相同的图片中位于当前块的上方、左上方和左侧。
视频编码器200对表示用于当前块的预测模式的数据进行编码。例如,对于帧间预测模式,视频编码器200可以对表示使用各种可用帧间预测模式中的哪一个模式的数据以及用于对应模式的运动信息进行编码。对于单向或双向帧间预测,例如,视频编码器200可以使用高级运动矢量预测(AMVP)或合并模式来对运动矢量进行编码。视频编码器200可以使用类似模式来编码运动矢量以用于仿射运动补偿模式。
AV1包括用于对视频数据的译码块进行编码和解码的两种通用技术。两种通用技术是帧内预测(例如,帧内的预测或空间预测)和帧间预测(例如,帧间的预测或时间预测)。在AV1的上下文中,当使用帧内预测模式预测视频数据的当前帧的块时,视频编码器200和视频解码器300不使用来自视频数据的其他帧的视频数据。对于大多数帧内预测模式,视频编码器200基于当前块中的样本值与从同一帧中的参考样本生成的预测值之间的差来对当前帧的块进行编码。视频编码器200基于帧内预测模式来确定从参考样本生成的预测值。
在诸如块的帧内预测或帧间预测之类的预测之后,视频编码器200可以计算块的残差数据。诸如残差块之类的残差数据表示块与使用对应预测模式形成的该块的预测块之间的逐样本的差。视频编码器200可以将一个或多个变换应用于残差块,以在变换域而非样本域中产生经变换的数据。例如,视频编码器200可以将离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换应用于残差视频数据。此外,视频编码器200可以在第一变换之后应用二次变换,例如模式相关不可分二次变换(MDNSST)、信号相关变换、Karhunen-Loeve变换(KLT)等。视频编码器200在应用一个或多个变换之后产生变换系数。
如上所述,在用于产生变换系数的任何变换之后,视频编码器200可以执行变换系数的量化。量化通常是指如下过程:其中,对变换系数进行量化以可能减少用于表示变换系数的数据量从而提供进一步压缩。通过执行量化过程,视频编码器200可以减少与一些或所有变换系数相关联的比特深度。例如,视频编码器200可以在量化期间将n位值向下舍入为m位值,其中,n大于m。在一些实例中,为了执行量化,视频编码器200可以执行待量化的值的按位右移。
在量化之后,视频编码器200可以扫描变换系数,以从包括量化变换系数(quantized transformcoefficient)的二维矩阵产生一维矢量。可以设计扫描以将较高能量(以及因此较低频率)的变换系数放置在矢量的前面,并将较低能量(以及因此较高频率)的变换系数放置在矢量的后面。在一些示例中,视频编码器200可以利用预定义的扫描顺序来扫描量化变换系数以产生串行化的矢量,然后对矢量的量化变换系数进行熵编码。在其他实例中,视频编码器200可以执行自适应扫描。在扫描量化变换系数以形成一维矢量之后,视频编码器200可以例如根据上下文自适应二进制算术译码(CABAC)对一维矢量进行熵编码。视频编码器200还可以对描述与经编码的视频数据相关联的元数据的语法元素的值进行熵编码,以供视频解码器300在解码视频数据时使用。
为了执行CABAC,视频编码器200可以将上下文模型内的上下文指派给要发送的符号。例如,上下文可以涉及符号的相邻值是否为零值。概率确定可以基于指派给符号的上下文。
视频编码器200可以进一步在例如图片标头(header)、块标头、切片标头或其他语法数据(例如序列参数集(SPS)、图片参数集(PPS)或视频参数集(VPS))中向视频解码器300生成语法数据,例如基于块的语法数据、基于图片的语法数据和基于序列的语法数据。视频解码器300可以类似地解码这样的语法数据以确定如何解码对应的视频数据。
以此方式,视频编码器200可以生成包括经编码的视频数据的比特流,例如,描述将图片分割成块(例如,CU)的语法元素以及块的预测和/或残差信息。最终,视频解码器300可以接收比特流并对编码的视频数据进行解码。
一般而言,视频解码器300执行与由视频编码器200执行的过程相反的过程以解码比特流的编码的视频数据。举例来说,视频解码器300可以使用CABAC以与视频编码器200的CABAC编码过程基本相似(但相反)的方式解码比特流的语法元素的值。语法元素可以定义用于将图片分割成CTU的分割信息,并根据对应的分割结构(例如QTBT结构)对每个CTU进行分割,以定义CTU的CU。语法元素可以进一步定义视频数据的块(例如,CU)的预测和残差信息。
残差信息例如可以由量化变换系数来表示。视频解码器300可以对块的量化变换系数进行逆量化和逆变换以再现该块的残差块。视频解码器300使用信令预测模式(signaled prediction mode)(帧内或帧间预测)和相关预测信息(例如,用于帧间预测的运动信息)来形成块的预测块。视频解码器300可以接着组合预测块和残差块(在逐样本的基础上)以再现原始块。视频解码器300可以执行附加处理,例如执行去块过程以减少沿块边界的视觉伪影。本公开通常可以提及“用信号发送”某些信息,例如语法元素。术语“用信号发送”通常可以指用于对经编码的视频数据进行解码的语法元素和/或其他数据的值的通信。即,视频编码器200可以用信号发送比特流中的语法元素的值。通常,用信号发送是指在比特流中生成值。如上所述,源设备102可以基本实时或非实时地将比特流传输到目的地设备116,例如在将语法元素存储到存储设备112以供目的地设备116稍后取回时可能发生的情况。
本公开的技术涉及帧间预测和帧间相关信息译码。更具体地,本公开描述了用于预测MVD(运动矢量差)的符号(例如,极性)的方法和设备。本公开的技术可以应用于任何现有视频编解码器的扩展,例如HEVC(高效视频译码)和/或VVC(多功能视频译码)、基本视频译码(EVC)、或者是未来视频译码标准中的高效译码工具。
如将在下文更详细解释的,根据本公开的技术,视频解码器300可以被配置为:使用可能的符号值、运动矢量差坐标的相应幅度、和用于视频数据块的运动矢量预测器来构造运动矢量候选,其中,可能的符号值包括正符号值和负符号值;基于每个运动矢量候选的成本对运动矢量候选进行排序以创建排序列表;基于运动矢量符号预测器索引和排序列表来确定运动矢量差符号;以及使用运动矢量差坐标的幅度和运动矢量差符号对视频数据块进行解码。
在以下部分中,将回顾HEVC、JEM技术以及与本公开的技术相关的VVC中的工作。
VVC中的MVD符号译码
在VVC和当前开发的增强型压缩模型(ECM)软件中,视频编码器(例如,视频编码器200)可以被配置为将比特流中的运动矢量差(MVD)用信号发送给视频解码器(例如,视频解码器300)。MVD是用于导出帧间预测器的运动矢量(MV)与其运动矢量预测器(MVP)之间的差。MV、MVP和MVD是矢量,并且具有两个分量:水平分量(x)和垂直分量(y)。当MVDx或MVDy不等于0时,视频编码器200可以用信号发送分量的符号(例如,指示正极性或负极性的语法元素)。在一些示例中,符号是使用CABAC旁路模式(例如,不是上下文译码,而是使用固定概率模型译码)来用信号发送的。
VVC中的仿射运动预测
在HEVC中,仅平移运动模型用于运动补偿预测(MCP)。在一些示例中,平移运动模型与所谓的“常规帧间预测”一起使用。而在现实世界中,运动有很多种,而不仅仅是直线平移运动。其他类型的运动可以包括放大/缩小、旋转、透视运动和其他不规则运动。在VVC中,可以使用简化的仿射变换运动补偿预测来提高译码效率。图2是说明示例简化仿射运动模型的概念图。如图2所示,当前块400的仿射运动场由控制点运动矢量402(vo)和404(v1)描述。在其他示例中,可以使用三个控制点运动矢量来定义运动。
以具有两个控制点运动矢量的仿射运动模型为例,块的运动矢量场(MVF)由以下等式描述:
其中(v0x,v0y)是左上角控制点的运动矢量,并且(v1x,v1y)是右上角控制点的运动矢量。
具有MVD的合并模式(MMVD)
在VVC和ECM中,除了合并模式(其中隐式导出的运动信息直接用于当前CU的预测样本的生成)之外,还可以使用具有运动矢量差的合并模式(MMVD)。视频编码器200可以在发送常规合并标志之后用信号发送MMVD标志以指定MMVD模式是否用于CU。
在MMVD中,在选择合并候选后,合并候选通过用信号发送的MVD信息进一步细化。合并候选包括当前译码块的相邻块的运动信息。视频解码器可以被配置为构建合并候选的列表并且可以选择与由视频编码器指示的合并候选相关的运动信息(例如,通过候选列表的合并索引)。运动信息可以包括运动矢量、参考图片列表和预测方向。
用信号发送的MVD信息包括MMVD候选标志、用于指定运动幅度的索引和指示运动方向的索引。在MMVD模式中,选择合并列表中的前两个候选之一作为起始MV。用信号发送MMVD候选标志以指定在第一合并候选和第二合并候选之间使用哪个合并候选。
图3是说明示例MMVD搜索点的概念图。在图3中,位置410是起始运动矢量所指向的位置。对于参考列表L0和L1中的每一个,位置412和414通过分别将正偏移或负偏移添加到起始运动矢量的x坐标来确定。位置416和418分别通过将正偏移或负偏移添加到起始运动矢量的y坐标来确定。以类似的方式确定如图3所示的其他位置,但使用更大的偏移。
距离索引(Distance IDX)指定运动幅度信息并指示距起点的预定义偏移(例如,起始MV)。如图3所示,偏移量被添加到起始MV的水平分量或垂直分量。表1中指定了距离索引和预定义偏移之间关系的一个示例。
表1–距离指数和预定义偏移的关系
方向索引(Direction IDX)表示MVD相对于起点的方向(例如,幅度的正号或负号)。方向索引可以代表下表2中所示的四个方向之一。值得注意的是,MVD符号的含义可以根据起始MV的信息而可变。当起始MV是单预测MV或双预测MV时(其中,两个列表都指向当前图片的同一侧(例如,两个参考的图片顺序计数(POC)都大于当前图片的POC,或者都小于当前图片的POC),那么表2中的符号指定了添加到起始MV的MV偏移的符号。
当起始MV为双预测MV时(其中,两个MV指向当前图片的不同侧(例如,一个参考的POC大于当前图片的POC,并且另一参考的POC小于当前图片的POC),并且列表0中的POC的差大于列表1中的POC),表2中的符号指定了添加到起始MV的列表0MV分量的MV偏移的符号和列表1MV的符号具有相反的值。否则,如果列表1中的POC差大于列表0,则表2中的符号指定添加到起始MV的列表1MV分量的MV偏移的符号,并且列表0MV的符号具有相反的值。
MVD是根据每个方向上POC的差进行缩放的。如果两个列表中POC的差相同,则不需要缩放。否则,如果列表0中的POC的差大于列表1的POC,则通过将L0的POC差定义为变量td并将L1的POC差定义为变量tb来缩放列表1的MVD。如果L1的POC差大于L0,则列表0的MVD以相同的方式缩放。如果起始MV是单向预测的,则将MVD添加到可用MV。
表2–方向索引所指定的MV偏移的符号
方向IDX | 00 | 01 | 10 | 11 |
x轴 | + | - | N/A | N/A |
y轴 | N/A | N/A | + | - |
仿射MMVD
在ECM中,MMVD可以进一步扩展以与仿射帧间预测模式一起应用。在仿射MMVD中,和常规的帧间MMVD中所做的一样,使用四个方向来确定MVD的每个分量的MVD符号,并且对应的MVD符号和方向索引表与上表2相同。然而,由于仿射帧间预测使用两个或三个控制点运动矢量来确定单个预测方向的运动模型,因此将相同的MVD添加到所有控制点运动矢量(CPMV)以便降低复杂度。在双预测的情况下,如果两个参考图片在时间上都位于要译码的当前图片之前或之后,则用于两个参考列表的MVD将相同。如果两个参考图片相对于当前图片在时间上位于不同侧,则具有相反值的MVD将被添加到来自参考列表1的CPMV。
使用MMVD的几何分割模式(GPM)
在VVC中,支持几何分割模式进行帧间预测。几何分割模式使用CU级标志作为一种合并模式来用信号发送,而其他合并模式包括常规合并模式、MMVD模式、组合的帧间/帧内预测(CIIP)模式和子块合并模式。对于每个可能的CU大小,GPM总共支持64个分区:w×h=2m×2n,其中m,n∈{3…6},不包括8x64和64x8。
图4是说明按相同角度分组的GPM拆分430的示例的概念图。当使用GPM时,CU由几何定位的直线拆分成两部分(见图4)。拆分线的位置在数学上是从特定分区的角度和偏移参数导出的。CU中几何分区的每个部分都使用其自己的运动信息进行帧间预测。在一个示例中,针对每个分区只允许单预测。例如,每个分区具有一个运动矢量和一个参考索引。应用单预测运动约束以确保:与传统的双预测一样,针对每个CU只需要两个运动补偿预测。
如果针对当前CU使用几何分割模式,则进一步用信号发送指示几何分区的分割模式的几何分区索引(角度和偏移)和两个合并索引(每个分区一个)。最大GPM候选大小在SPS中显式地用信号发送,并指定GPM合并索引的语法二值化。在预测几何分区的每个部分之后,使用具有自适应权重的混合处理来调整沿几何分区边缘的样本值。这是整个CU的预测信号,并且变换和量化过程将应用于整个CU,就像在其他预测模式中一样。
在ECM的一个示例中,通过在现有GPM单向MV之上应用运动矢量细化来进一步扩展GPM。首先针对GPM CU用信号发送一个标志,以指定是否使用该运动矢量细化模式。如果使用运动矢量细化模式,则视频编码器200可以针对GPM CU的每个几何分区确定是否用信号发送MVD。如果针对几何分区用信号发送MVD,则在选择GPM合并候选之后,分区的运动通过用信号发送的MVD信息进一步细化。所有其他程序都与GPM中的保持相同。
MVD用信号发送作为一对距离和方向,类似于MMVD中的一对。存在带有MMVD的GPM(GPM-MMVD)中涉及的九个候选距离(1/4-pel、1/2-pel、1-pel、2-pel、3-pel、4-pel、6-pel、8-pel、16-pel)和八个候选方向(四个水平/垂直方向和四个对角线方向)。
多假设预测(MHP)
在多假设帧间预测模式中(例如,参见M.Winken等人“CE 10:多假设帧间预测(测试10.1.2)”,ITU-T SG 16WP 3的联合视频专家组(JVET)和ISO/IECJTC1/SC29/WG 11,第13次会议,马萨诸塞州马拉喀什,2019年1月9-18日,JVET-M0425(M.Winken,et.al.“CE10:Multi-hypothesis inter prediction(Test 10.1.2),”Joint Video Experts Team(JVET)of ITU-T SG 16WP 3and ISO/IEC JTC 1/SC 29/WG 11,13th Meeting,:Marrakech,MA,9-18January 2019,JVET-M0425)),除了传统的双预测信号,还用信号发送一个或多个附加的运动补偿预测信号。所得的整体预测信号是通过逐样本加权叠加获得的。使用双预测信号pbi和第一附加帧间预测信号/假设h3,所得的预测信号p3如下获得:
p3=(1-α)pbi+αh3
加权因子α根据以下映射由语法元素add_hyp_weight_idx指定:
add_hyp_weight_idx | α |
0 | 1/4 |
1 | -1/8 |
与上述技术类似,可以使用一个以上的附加预测信号。所得的整体预测信号与每个附加预测信号迭代地累加。
pn+1=(1-αn+1)pn+αn+1hn+1
所得的整体预测信号被获得作为最后一个pn(例如,具有最大索引n的pn)。在一个示例中,可以使用多达两个附加的预测信号(例如,n限制为2)。
每个附加预测假设的运动参数可以通过指定参考索引、运动矢量预测器索引和运动矢量差来显式地用信号发送,或通过指定合并索引来隐式地用信号发送。可以使用单独的多假设合并标志来在这两种信令模式之间区分。
在一个示例中,对于帧间AMVP模式,仅当在双预测模式中选择具有CU级权重(BCW)模式的双预测中的非相等权重时,才应用MHP。
MHP和双向光流(BDOF)译码的组合是可能的。然而,在一个示例中,BDOF仅应用于预测信号的双预测信号部分(例如,普通的前两个假设)。
12抽头插值滤波器(12-tap Interpolation Filter)
在此示例中,VVC中使用的8抽头插值滤波器被替换为12抽头滤波器。12抽头插值滤波器从sinc函数导出,其频率响应在奈奎斯特频率处被截断,并通过余弦窗口函数进行裁剪。表3给出了所有16个相位的滤波器系数。图5示出了将12抽头插值滤波器(滤波器响应A)与VVC插值滤波器(滤波器响应B)的频率响应进行比较的曲线图440,均处于半pel相位。
表3. 12抽头插值滤波器的滤波器系数
模板匹配预测(TMP)
模板匹配(TM)预测是一种基于帧率上转换(FRUC)技术的特殊合并模式。在一个示例TM模式中,块的运动信息不是用信号发送的,而是在视频解码器300处导出的。TM可以应用于AMVP模式和常规合并模式两者。在AMVP模式下,MVP候选选择是基于模板匹配来确定的,以选择达到当前块模板与参考块模板之间的最小差的候选。在常规合并模式中,用信号发送TM模式标志以指示使用TM,并且然后将TM应用于由合并索引指示的合并候选以进行MV细化。
图6是说明对初始运动矢量周围的搜索区域执行的模板匹配的示例的概念图。如图6所示,模板匹配用于通过找到当前图片460中的上方模板452和左侧模板454(当前CU450的上方和/或左侧相邻块)与参考图片462中的块(与模板相同大小)之间的最接近匹配,来导出当前CU 450的运动信息。利用基于初始匹配误差选择的AMVP候选,其MVP通过模板匹配进行细化。利用由用信号发送的合并索引指示的合并候选,其与L0和L1对应的合并MV通过模板匹配独立地进行细化,并且然后将不那么准确的候选用更好的候选作为先验(prior)再次进一步细化。
成本函数:当运动矢量指向分数样本位置时,使用运动补偿插值。为了降低复杂度,可以使用双线性插值代替8抽头DCT-IF插值来进行模板匹配,以在参考图片上生成模板。模板匹配的匹配成本C计算如下:
/>
其中,w是权重因子,其根据经验设置为4,MV和MVs分别表示当前测试的MV和初始MV(例如,AMVP模式下的MVP候选或合并模式下的合并运动)。绝对差之和(SAD)用作模板匹配的匹配成本。在一个示例中,当使用TM时,仅使用亮度样本来细化运动。导出的运动将用于运动补偿帧间预测的亮度和色度二者。在确定MV之后,使用8抽头插值滤波器用于亮度和4抽头插值滤波器用于色度来执行最终运动补偿。
搜索方法:MV细化是一种基于图案的MV搜索,以模板匹配成本和层次结构为准则。支持两种搜索图案——菱形搜索和交叉搜索以用于MV细化。层次结构指定了迭代过程来细化MV,以粗略的MVD精度(例如,四分之一pel)开始,并且以精细的精度(例如,1/8pel)结束。使用菱形图案以四分之一亮度样本MVD精度直接搜索MV,之后是使用十字图案的四分之一亮度样本MVD精度进行搜索。之后是使用十字图案进行八分之一的亮度样本MVD细化。MV细化的搜索范围设置为等于初始MV周围的(-8,+8)亮度样本。当使用双预测对当前块进行译码时,两个MV都被独立地细化,并且然后将其中最好的(在匹配成本方面)设置为先验,以进一步使用BCW权重值细化另一个MV。
MVD符号预测
MVD符号预测可以用于在给定假设MVD的情况下导出特定成本,并通过将真正MVD与按成本排序的MVD候选列表进行比较来输出正确的MVD符号预测器索引。以此方式,不是以等概率(EP)译码模式(例如,旁路模式)直接用信号发送MVD符号,而是代表正确MVD符号的MVD符号预测器索引(例如,MVD的x和/或y分量的符号)是用上下文模型译码的。从EP译码到基于上下文的译码的转换是增益的一个来源。给定基于当前模板和参考模板导出成本的一个示例,通过应用以下步骤导出解码器端MVD符号:
1)基于MVD分量的绝对值生成MVD候选的列表(如果MVD的X和Y分量二者均非零,则为四个候选,并且如果一个分量为零,则为两个候选);
2)使用模板匹配计算每个MVD候选的成本;
3)通过基于计算出的成本对MVD候选进行排序,来对MVD候选进行排名;
4)根据从比特流获得的MVD索引(例如,到排序MVD候选列表中的MVD索引,其中,MVD索引由视频编码器用信号发送),确定排序列表中的MVD和相关联符号。
模板匹配成本是使用当前CU的模板与其对应的参考模板之间的某个度量来衡量的。在图7中描述了使用模板匹配的MVD符号预测过程的图示。MVD符号预测不仅可以应用于平移块,还可以应用于仿射块。
在图7中,块470的运动矢量预测器(MVP)472指向参考图片中的特定位置。可能的MVD候选包括MVD候选A、B、C和D。MVD候选包括MVD幅度和符号。四个MVD候选从MVP 472所指向的位置偏移。使用上方和左侧的模板474、476、478和480为四个MVD候选中的每一个确定成本。
本公开描述了如下技术:其中,MVD符号预测不仅被应用于常规帧间和仿射帧间模式,其中,MVD被显式地用信号发送,而且还应用于MMVD模式和其中根据指示MVD幅度的步长以及根据方向索引来确定MVD的其他模式。如上所述,方向索引指定MVD的方向,其等同于指定非零MVD分量的符号。本公开描述了其中不需要对方向索引加符号(sign)的技术,而是可以使用下文描述的MVD符号预测技术来预测MVD符号。随着在ECM中引入新的译码工具,本公开的MVD符号预测技术可以进一步扩展到若干新的译码工具,如仿射MMVD、GPM MMVD和MHP,如下所述。
用于MMVD的MMVD方向/符号预测
视频解码器300可以解码MMVD步长索引(例如,指示MVD幅度信息),并且随后视频解码器300可以使用已解码的MVD幅度信息来执行本公开的MMVD方向(例如,符号)预测。如上所述,视频解码器300可以被配置为根据MMVD步长索引(例如,表1的距离IDX)确定MVD幅度信息。
取决于当前图片和两个参考图片之间的POC距离,视频解码器300可以在使用步长索引导出MVD幅度之后将MVD缩放应用于MVD幅度。注意,虽然可以导出单个MVD幅度,但可以将导出的MVD幅度应用于MVD的每个相应分量(例如,x分量和y分量)。这样,本文描述的MVD幅度信息可以被称为运动矢量差分量的相应幅度。
导出MVD符号等同于导出用信号发送的MMVD方向索引的方向索引。与其中x或yMVD分量是否为非零是已知的常规帧间模式和仿射帧间模式不同,MMVD模式中的MMVD方向索引指定一个零分量和一个非零分量。例如,MVD的x分量为非零,并且y分量为零,反之亦然。因此,在执行MMVD方向预测时,哪个MVD分量是非零以及相关联的符号仍然未知。因此,MMVD方向预测可以联合应用于两个MVD分量上,并且MMVD符号预测器索引不仅代表符号信息,而且确定MVD中哪个分量是非零分量。
视频解码器300通过生成模板并使用MV导出模板匹配成本来确定MMVD符号预测,该MV是通过将MVP与包含不同符号和非零位置的所有可能MVD相加而导出的。在MMVD中,MVP可以由合并索引指示。使用当前示例MMVD设计,可以使用总数为四个的不同的MVD,因此可以在运动矢量候选列表中生成四个不同的最终MV。作为一个示例,根据解码的MMVD步长索引,视频解码器300确定MVD幅度为16。视频解码器使用所有可能的符号值(例如,如上表2中的每个MVD分量的正或负)来构造运动矢量候选。在这个示例中,运动矢量候选是(16,0)、(-16,0)、(0,16)、(0,-16)。
在一个示例中,用于成本确定的当前块的模板的大小在给定的块坐标下是固定的。然而,由于存在多个可能的最终MV(例如,运动矢量候选的列表),参考模板位置会有所不同。利用列表中的每个MV候选,可以导出对应的参考模板。然后,视频解码器300可以在比较当前模板和参考模板时使用某个度量或指标来导出成本。在一个实例中,视频解码器300可以将成本计算为绝对差之和(SAD)。也可以使用其他度量,如平方误差和(SSE)或任何其他乘方。
在导出每个可能的候选运动矢量的成本之后,候选运动矢量基于导出的模板匹配成本进行排序。视频解码器300解码来自编码视频比特流的MMVD方向预测器索引,该索引指示排序列表内的哪个位置是真正的MVD所在的位置。在一个示例中,MMVD方向预测器索引是用上下文译码的二进制数(bin)用信号发送的。因此可以导出具有正确符号和非零位置的真正MVD以重构真正的最终MV。视频解码器300通过将MVD幅度和确定的符号添加到先前确定的MVP来确定最终的MV。
因此,鉴于上文,在本公开的一个示例中,视频解码器300可以使用以下技术来确定用于MMVD模式的MVD的分量的符号。视频解码器300可以使用可能的符号值、运动矢量差分量的相应幅度和用于视频数据块的运动矢量预测器来构造运动矢量候选。可能的符号值包括MVD的每个可能分量(x分量和y分量)的正符号值和负符号值,例如,如上表2中所示。
在一个示例中,视频解码器300可以对指示来自合并候选列表的运动矢量预测器的合并索引进行解码。视频解码器300可以通过解码以上指示运动矢量差分量的相应幅度的步长索引(例如,表1中的距离IDX)来确定运动矢量差分量的相应幅度。
视频解码器300还可以被配置为基于每个运动矢量候选的成本对运动矢量候选进行排序以创建排序列表。视频解码器300可以通过成本升序或降序对列表进行排序。如上所述,视频解码器300可以基于模板匹配使用SAD度量来确定候选中的每一者的成本。视频解码器300可以接着基于运动矢量符号预测器索引和排序列表来确定每个运动矢量差坐标的相应运动矢量差符号。例如,视频解码器300可以从经编码视频比特流中解码运动矢量符号预测器索引。运动矢量符号预测器索引指示排序候选列表中的特定运动矢量候选。视频解码器300可以确定MVD幅度的符号值以用于根据与运动矢量符号预测器索引相对应的排序列表中的运动矢量候选的符号值来确定最终运动矢量。
视频解码器300然后可以使用运动矢量差坐标的相应幅度和每个运动矢量差分量的相应运动矢量差符号来解码视频数据块。例如,视频解码器300可以:将每个运动矢量差分量的相应运动矢量差符号应用于运动矢量差分量的相应幅度以确定运动矢量差,将运动矢量差加到运动矢量预测值以确定最终运动矢量,以及使用最终运动矢量来解码视频数据块。以这种方式,可以用较少的信令开销来确定MVD分量的幅度的符号,从而提高译码效率。
用于仿射MMVD的MMVD方向/符号预测
与上述MMVD符号/方向预测过程类似,也可以以类似方式导出用于仿射MMVD的MMVD符号预测器索引。然而,由于仿射帧间预测模式的特性,因此存在一些差。
首先,不同CPMV的MVD保持相同,因此将相同的MVD添加到每个CPMV以导出最终的CPMV。
其次,CPMV不直接用于生成参考模板。基于仿射运动模型针对每个4x4子块生成运动矢量场。
最后,基于每个子块的运动矢量生成当前块和参考块二者的模板,并在每个子块上聚合模板匹配成本以获得最终的模板匹配成本。
利用导出的模板匹配成本,再次以与MMVD中相同的方式使用MMVD方向预测器索引来导出真正的MVD。
用于GPM MMVD的MMVD符号/方向预测
MMVD符号/方向预测也可以扩展到GPM MMVD。由于GPM MMVD的特性,与上述MMVD中使用的MVD符号预测设计相比,可以实现一些变化。
与MMVD和仿射MMVD(其中,在双预测的情况下,一个MVD等于另一个MVD、与另一个MVD相反或是另一个MVD的缩放版本)不同,对于GPM MMVD模式中的两个GPM分区,两个MVD之间没有相关性。由于这个事实,可能需要用信号发送多达两个MMVD符号预测器索引,并且MMVD符号预测器的推导是针对每个GPM分区单独完成的。
更重要的是,由于额外引入了对角线和反对角线方向,可能的MVD符号组合的数量也从4个增加到8个。
用于MHP的MVD符号预测
MHP的最终预测器包括一个基础和多达两个附加假设。对于MHP,基础可以是帧间模式、仿射模式、合并模式、仿射合并模式、帧间MMVD模式和仿射MMVD模式中的任何一种模式。附加假设可以是单向帧间模式或单向合并模式中的任一者。
因此,MVD符号预测适用于MHP基础和附加假设上的MHP。当基础是帧间模式、仿射模式、帧间MMVD模式或仿射MMVD模式时,可以在MHP基础上应用MVD符号预测。当附加假设被选择为帧间预测模式时,也可以应用MVD符号预测。用于MHP基础和假设的MVD符号预测器索引是单独生成的。
尽管MVD符号预测可以应用于MHP基础和假设二者,但在某些示例中,MVD符号预测仅允许用于MHP基础。在另一个示例中,MVD符号预测仅应用于附加假设。
MVD符号预测模板生成
在MVD符号预测中,可以以不同的方式选择模板。首先,模板形状可以有不同的变型。在一个示例中,上方模板和左侧模板二者都被使用,并且模板是L形的。在另一个示例中,仅使用上方模板。在第三示例中,仅使用左侧模板。
其次,可以使用不同的插值滤波器生成模板。在模板匹配(TM)合并模式中,模板是使用双线性插值滤波器生成的。对于MVD符号预测中的模板,可以在模板生成中使用相同的双线性滤波器。在另一个示例中,可以使用12抽头插值滤波器来生成模板。
第三,可以以不同的方式选择模板大小。通常,帧间模式的模板大小被选择为4行和4列;并且仿射模式的模板大小被选择为1行和1列。然而,可以更改模板大小。例如,仿射模式的模板大小可以增加到与帧间模式相同。在另一示例中,可以使用给定因子对模板进行二次采样以降低计算复杂度。
MVD符号预测成本推导
在MVD符号预测中,除了模板匹配成本,还可以使用其他成本。在一个示例中,不是使用模板,而是可以通过将可以以量化变换系数的形式用信号发送的重构残差信号添加到预测器来生成重构块。视频解码器300可以接着导出当前重构块与参考块之间的成本。在另一个示例中,当前块边界周围的梯度值可以用于导出MVD符号预测中的成本。
在导出成本时,可以使用不同的范数。通常,可以使用作为L1范数的绝对差之和(SAD)或作为L2范数的平方误差之和(SSD)。然而,原则上,可以使用其他Ln范数和任何其他已知范数。
对于平移帧间SMVD(对称MVD)模式、帧间MMVD和仿射MMVD模式,可以选择双向预测。最重要的是,只需要用信号发送一个参考列表的MVD,而另一个列表的MVD可以从第一列表导出。在这种情况下,当导出MVD符号预测成本时,来自单个列表或来自两个参考列表的参考块/模板可以用于MVD符号预测过程。
在一个示例中,仅使用来自参考列表0的参考块/模板来导出成本。在第二示例中,仅使用来自参考列表1的参考块/模板来导出成本。在第三示例中,来自参考列表0和列表1二者的参考块/模板用于导出成本。在另一个示例中,一个参考列表可以基于当前块的模板和参考模板来导出模板匹配成本,而成本的第二部分是从来自参考列表0和列表1的参考块之间的双边匹配成本导出的。
MVD符号预测阈值
当满足某个阈值时,可能有条件地将MVD符号预测应用于某些块上。为了使MVD符号预测稳定,块大小足够大以包含足够数量的样本用于成本推导可能是有益的。此外,优选的是,MVD幅度足够大,使得所有可能的最终MV可以稀疏分布,以在成本推导中包括不同的图像区域。因此,在一个示例中,应用基于块大小的阈值(通常由块内的样本数量定义),并且只有块大小大于(或等于)阈值的块才能使用MVD符号预测。在另一示例中,MVD幅度阈值用于决定是否可以将MVD符号预测应用于块上。在另一个示例中,可以应用两个阈值的组合。
可替代地,可以取决于MVD幅度针对上下文译码的MVD符号二进制数或MMVD方向预测索引应用单独的上下文。这里假设在解析MVD符号二进制数或MMVD方向预测索引之前已知MVD幅度。
一般示例
MVD符号预测过程可以描述如下:
1.解析MVD分量的幅度。
2.解析上下文译码的MVD符号预测器索引。
3.通过在可能的符号和绝对MVD值之间创建组合来构建MV候选,并将其添加到MV预测器。
4.基于一些度量和排序,针对每个导出的MV导出MVD符号预测成本。
5.使用对应的MVD符号预测器索引来挑选真正的MVD符号
6.将真正的MVD添加到用于最终MV的MV预测器。
上述章节中提到的所有示例都可以应用于其中适用MVD符号预测的所有帧间预测模式。这些模式包括本文档中详述的模式:帧间MMVD、仿射MMVD、GPM MMVD和MHP。此外,MVD符号预测还可以应用于平移帧间模式、SMVD模式和仿射帧间模式。
因此,在本发明的一个示例中,视频解码器300可以被配置为:解码视频数据块的运动矢量差坐标的幅度;解码运动矢量符号预测器索引;使用可能的符号值构造运动矢量候选以及运动矢量差坐标的幅度;导出每个运动矢量候选的运动矢量差符号预测成本;基于每个运动矢量候选的成本对运动矢量候选进行排序以创建排序列表;基于运动矢量符号预测器索引和排序列表来确定运动矢量差符号;以及使用运动矢量差坐标的幅度和运动矢量差符号,对视频数据块进行解码。
图8是说明可以执行本公开的技术的示例视频编码器200的框图。图8是出于解释的目的而提供的,并且不应被认为是对本公开中广泛例示和描述的技术的限制。出于解释的目的,本公开描述了根据VVC(ITU-T H.266,正在开发)和HEVC(ITU-TH.265)的技术的视频编码器200。然而,本公开的技术可以由视频编码设备来执行,所述视频编码设备是针对其他视频译码标准和视频译码格式(例如,AV1和AV1视频译码格式的后继者)被配置的。
在图8的示例中,视频编码器200包括视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、滤波器单元216、解码图片缓冲器(DPB)218和熵编码单元220。视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、滤波器单元216、DPB 218和熵编码单元220中的任何一者或全部可以在一个或多个处理器或处理电路中实现。例如,视频编码器200的单元可以实现为一个或多个电路或逻辑元件,作为硬件电路的一部分,或作为处理器、ASIC或FPGA的一部分。此外,视频编码器200可以包括附加的或替代的处理器或处理电路以执行这些和其他功能。
视频数据存储器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的各个单元的输出的临时存储。
图8的各种单元被说明以帮助理解由视频编码器200执行的操作。这些单元可以实现为固定功能电路、可编程电路或其组合。固定功能电路是指提供特定功能的电路,并且在可以执行的操作上被预设。可编程电路是指可以被编程以执行各种任务并在可以被执行的操作中提供灵活功能的电路。例如,可编程电路可以执行使可编程电路以由软件或固件的指令定义的方式操作的软件或固件。固定功能电路可以执行软件指令(例如,用于接收参数或输出参数),但固定功能电路执行的操作类型通常是不可变的。在一些示例中,一个或多个单元可以是不同的电路块(固定功能或可编程的),并且在一些示例中,一个或多个单元可以是集成电路。
视频编码器200可以包括算术逻辑单元(ALU)、基本功能单元(EFU)、数字电路、模拟电路和/或可编程核心,其是从可编程电路形成的。在其中使用由可编程电路执行的软件来执行视频编码器200的操作的示例中,存储器106(图1)可以存储视频编码器200接收和执行的软件的指令(例如,目标代码),或者视频编码器200内的另一个存储器(未示出)可以存储这样的指令。
视频数据存储器230被配置为存储接收到的视频数据。视频编码器200可以从视频数据存储器230取回视频数据的图片并且将视频数据提供给残差生成单元204和模式选择单元202。视频数据存储器230中的视频数据可以是要被编码的原始视频数据。
模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可以包括附加功能单元以根据其他预测模式执行视频预测。作为示例,模式选择单元202可以包括调色板单元、块内复制单元(其可以是运动估计单元222和/或运动补偿单元224的一部分)、仿射单元、线性模型(LM)单元等等。
模式选择单元202通常协调多个编码通道(pass)以测试编码参数的组合以及这种组合所得的率失真值。编码参数可以包括CTU分割为CU、CU的预测模式、CU的残差数据的变换类型、CU的残差数据的量化参数等。模式选择单元202可以最终选择具有比其他测试组合更好的率失真值的编码参数的组合。
视频编码器200可以将从视频数据存储器230取回的图片分割成一系列CTU,并且将一个或多个CTU封装在切片内。模式选择单元202可以根据树结构(例如MTT结构、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可以取回由相应运动矢量识别的两个参考块的数据,并组合取回的数据,例如,通过逐样本平均或加权平均。
当根据AV1视频译码格式进行操作时,运动估计单元222和运动补偿单元224可以被配置为使用平移运动补偿、仿射运动补偿、重叠块运动补偿(OBMC)和/或复合帧间帧内预测对视频数据的译码块(例如,亮度译码块和色度译码块二者)进行编码。
作为另一示例,对于帧内预测或帧内预测译码,帧内预测单元226可以从与当前块相邻的样本生成预测块。例如,对于方向模式,帧内预测单元226通常可以在数学上组合相邻样本的值并且跨当前块沿定义的方向填充这些计算的值以产生预测块。作为另一示例,对于DC模式,帧内预测单元226可以计算与当前块相邻的样本的平均值并生成预测块以针对预测块的每个样本包括该所得平均值。
当根据AV1视频编码格式进行操作时,帧内预测单元226可以被配置为使用定向帧内预测、非定向帧内预测、递归滤波器帧内预测、从亮度到色度(CFL)预测、块内复制(IBC)和/或调色板模式来编码视频数据的译码块(例如,亮度译码块和色度译码块二者)。模式选择单元202可以包括附加功能单元以根据其他预测模式来执行视频预测。
模式选择单元202将预测块提供给残差生成单元204。残差生成单元204从视频数据存储器230接收当前块的原始未编码版本并从模式选择单元202接收预测块。残差生成单元204计算当前块和预测块之间的逐样本差。所得的逐样本差定义了当前块的残差块。在一些示例中,残差生成单元204还可以确定残差块中的样本值之间的差以使用残差差分脉冲译码调制(RDPCM)来生成残差块。在一些示例中,可以使用一个或多个执行二进制减法的减法器电路来形成残差生成单元204。
在其中模式选择单元202将CU分割为PU的示例中,每个PU可以与亮度预测单元和对应的色度预测单元相关联。视频编码器200和视频解码器300可以支持具有各种尺寸的PU。如上所述,CU的大小可以指CU的亮度译码块的大小,而PU的大小可以指PU的亮度预测单元的大小。假设特定CU的大小是2Nx2N,则视频编码器200可以支持2Nx2N或NxN的PU大小以用于帧内预测,并且支持2Nx2N、2NxN、Nx2N、NxN或类似的对称PU大小以用于帧间预测。视频编码器200和视频解码器300还可以支持用于2NxnU、2NxnD、nLx2N和nRx2N的PU大小的非对称分割以用于帧间预测。
在其中模式选择单元202不进一步将CU分割为PU的示例中,每个CU可以与亮度译码块和对应的色度译码块相关联。如上所述,CU的大小可以指CU的亮度译码块的大小。视频编码器200和视频解码器300可以支持2Nx2N、2NxN或Nx2N的CU大小。
对于其他视频译码技术(例如块内复制模式译码、仿射模式译码和线性模型(LM)模式译码,作为一些示例),模式选择单元202经由与译码技术相关联的相应单元为正在编码的当前块生成预测块。在一些实例中,例如调色板模式译码,模式选择单元202可以不生成预测块,而是生成指示基于所选调色板重构块的方式的语法元素。在此类模式中,模式选择单元202可以将这些语法元素提供给要进行编码的熵编码单元220。
如上所述,残差生成单元204接收当前块和对应预测块的视频数据。残差生成单元204然后为当前块生成残差块。为了生成残差块,残差生成单元204逐样本地计算预测块和当前块之间的差。
变换处理单元206将一个或多个变换应用于残差块以生成变换系数块(在本文中称为“变换系数块”)。变换处理单元206可以对残差块应用各种变换以形成变换系数块。例如,变换处理单元206可以将离散余弦变换(DCT)、定向变换、Karhunen-Loeve变换(KLT)或概念上类似的变换应用于残差块。在一些示例中,变换处理单元206可以对残差块执行多个变换,例如初级变换和次级变换,例如旋转变换。在一些实例中,变换处理单元206不对残差块应用变换。
当根据AV1进行操作时,变换处理单元206可以将一个或多个变换应用于残差块以生成变换系数块(本文称为“变换系数块”)。变换处理单元206可以对残差块应用各种变换以形成变换系数块。例如,变换处理单元206可以应用水平/垂直变换组合,该组合可以包括离散余弦变换(DCT)、非对称离散正弦变换(ADST)、翻转ADST(例如,逆序的ADST)和恒等变换(IDTX)。当使用恒等变换时,在垂直方向或水平方向之一上跳过变换。在一些示例中,可以跳过变换处理。
量化单元208可以量化变换系数块中的变换系数,以产生量化变换系数块。量化单元208可以根据与当前块相关联的量化参数(QP)值来量化变换系数块的变换系数。视频编码器200(例如,经由模式选择单元202)可以通过调整与CU相关联的QP值来调整应用于与当前块相关联的变换系数块的量化程度。量化可能引入信息损失,并且因此量化变换系数可能具有比由变换处理单元206产生的原始变换系数更低的精度。
逆量化单元210和逆变换处理单元212可以分别对量化变换系数块应用逆量化和逆变换,以从变换系数块重构残差块。重构单元214可以基于重构的残差块和由模式选择单元202生成的预测块来产生与当前块相对应的重构块(尽管可能具有某种程度的失真)。例如,重构单元214可以将重构的残差块的样本添加到来自由模式选择单元202生成的预测块的对应样本,以产生重构块。
滤波器单元216可以对重构块执行一个或多个滤波器操作。例如,滤波器单元216可以执行解块操作以减少沿CU边缘的块状伪影(blockiness artifact)。在一些示例中,可以跳过滤波器单元216的操作。
当根据AV1操作时,滤波器单元216可以对重构块执行一个或多个滤波器操作。例如,滤波器单元216可以执行解块操作以减少沿CU边缘的块状伪影。在其他示例中,滤波器单元216可以应用约束方向增强滤波器(constrained directional enhancement filter,CDEF),其可以在去块之后被应用,并且可以包括基于估计的边缘方向应用不可分离的非线性低通方向滤波器。滤波器单元216还可以包括在CDEF之后被应用的环路恢复滤波器,并且可以包括可分离的对称归一化维纳滤波器或双自导滤波器。
视频编码器200将重构块存储在DPB 218中。例如,在其中不执行滤波器单元216的操作的示例中,重构单元214可以将重构块存储到DPB 218。在其中执行滤波器单元216的操作的示例中,滤波器单元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可以输出比特流。
根据AV1,熵编码单元220可以被配置为符号到符号自适应多符号算术译码器。AV1中的语法元素包括N个元素的字母表,而上下文(例如概率模型)包括一组N个概率。熵编码单元220可以将概率存储为n位(例如,15位)累积分布函数(CDF)。熵编码单元22可以使用基于字母大小的更新因子执行递归缩放以更新上下文。
上述操作是针对块描述的。这种描述应该被理解为是针对亮度译码块和/或色度译码块的操作。如上所述,在一些示例中,亮度译码块和色度译码块是CU的亮度和色度分量。在一些示例中,亮度译码块和色度译码块是PU的亮度和色度分量。
在一些示例中,不需要针对色度译码块重复针对亮度译码块执行的操作。作为一个示例,识别亮度译码块的运动矢量(MV)和参考图片的操作不需要被重复以用于识别色度块的MV和参考图片。相反,亮度译码块的MV可以被缩放以确定色度块的MV,并且参考图片可以是相同的。作为另一示例,帧内预测过程对于亮度译码块和色度译码块可以是相同的。
视频编码器200表示被配置为对视频数据进行编码的设备的示例,该设备包括被配置为存储视频数据的存储器,以及在电路中实施且被配置为执行上文针对MVD符号预测描述的本公开的一种或多种技术的一个或多个处理单元。
图9是说明可以执行本公开的技术的示例视频解码器300的框图。图9是出于解释的目的而提供的,并且不限制本公开中广泛例示和描述的技术。出于解释的目的,本公开描述了根据VVC(ITU-TH.266,正在开发)和HEVC(ITU-T H.265)的技术的视频解码器300。然而,本公开的技术可以由针对其他视频译码标准被配置的视频译码设备来执行。
在图9的示例中,视频解码器300包括译码图片缓冲器(CPB)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和解码图片缓冲器(DPB)314。CPB存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和DPB 314中的任何一者或全部可以在一个或多个处理器或处理电路中实现。例如,视频解码器300的单元可以实现为一个或多个电路或逻辑元件,作为硬件电路的一部分,或作为处理器、ASIC或FPGA的一部分。此外,视频解码器300可以包括附加的或替代的处理器或处理电路以执行这些功能和其他功能。
预测处理单元304包括运动补偿单元316和帧内预测单元318。预测处理单元304可以包括附加单元以根据其他预测模式执行预测。作为示例,预测处理单元304可以包括调色板单元、块内复制单元(其可以形成运动补偿单元316的一部分)、仿射单元、线性模型(LM)单元等。在其他示例中,视频解码器300可以包括更多、更少或不同的功能组件。
当根据AV1操作时,补偿单元316可以被配置为使用平移运动补偿、仿射运动补偿、OBMC和/或复合帧间帧内预测来解码视频数据的译码块(例如,亮度译码块和色度译码块二者),如上所述。帧内预测单元318可以被配置为使用定向帧内预测、非定向帧内预测、递归滤波器帧内预测、CFL、块内复制(IBC)和/或调色板模式来解码视频数据的译码块(例如,亮度译码块和色度译码块二者),如上所述。
CPB存储器320可以存储要由视频解码器300的组件解码的视频数据,例如编码的视频比特流。存储在CPB存储器320中的视频数据可以例如从计算机可读介质110(图1)获得。CPB存储器320可以包括存储来自编码视频比特流的编码视频数据(例如,语法元素)的CPB。此外,CPB存储器320可以存储译码图片的语法元素以外的视频数据,例如表示来自视频解码器300的各个单元的输出的临时数据。DPB 314通常存储视频解码器300可以输出和/或在对编码视频比特流的后续数据或图片进行解码时用作为参考视频数据的解码图片。CPB存储器320和DPB 314可以由各种存储器设备中的任何一者形成,各种存储器设备例如DRAM,包括SDRAM、MRAM、RRAM,或其他类型的存储器设备。CPB存储器320和DPB 314可以由相同的存储器设备或不同的存储器设备提供。在各种示例中,CPB存储器320可以与视频解码器300的其他组件一起在芯片上,或者相对于那些组件在芯片外。
另外或替代地,在一些示例中,视频解码器300可以从存储器120(图1)中取回译码的视频数据。即,存储器120可以存储如上文针对CPB存储器320所讨论的的数据。同样,当视频解码器300的一些或全部功能在软件中实现以由视频解码器300的处理电路执行时,存储器120可以存储将由视频解码器300执行的指令。
图9所示的各种单元被说明以帮助理解由视频解码器300执行的操作。这些单元可以实现为固定功能电路、可编程电路或其组合。类似于图8,固定功能电路是指提供特定功能的电路,并且预设在可以被执行的操作上。可编程电路是指可以被编程以执行各种任务并在可以被执行的操作中提供灵活功能的电路。例如,可编程电路可以执行使可编程电路以由软件或固件的指令定义的方式操作的软件或固件。固定功能电路可以执行软件指令(例如,用于接收参数或输出参数),但固定功能电路执行的操作类型通常是不可变的。在一些示例中,一个或多个单元可以是不同的电路块(固定功能或可编程的),并且在一些示例中,一个或多个单元可以是集成电路。
视频解码器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(图8)所描述的方式来执行帧间预测过程。
作为另一示例,如果预测信息语法元素指示当前块是帧内预测的,则帧内预测单元318可以根据由预测信息语法元素指示的帧内预测模式来生成预测块。再次,帧内预测单元318通常可以以基本上类似于关于帧内预测单元226(图8)所描述的方式来执行帧内预测过程。帧内预测单元318可以从DPB 314取回当前块的相邻样本的数据。
重构单元310可以使用预测块和残差块来重构当前块。例如,重构单元310可以将残差块的样本添加到预测块的对应样本以重构当前块。
滤波器单元312可以对重构块执行一个或多个滤波器操作。例如,滤波器单元312可以执行去块操作以减少沿重构块的边缘的块状伪影。不一定在所有示例中都执行滤波器单元312的操作。
视频解码器300可以将重构块存储在DPB 314中。例如,在其中不执行滤波器单元312的操作的示例中,重构单元310可以将重构块存储到DPB 314。在其中执行滤波器单元312的操作的示例中,滤波器单元312可以将经滤波的重构块存储到DPB 314。如上所述,DPB314可以向预测处理单元304提供参考信息,例如用于帧内预测的当前图片的样本和用于后续运动补偿的先前解码的图片的样本。此外,视频解码器300可以从DPB 314输出经解码的图片(例如,经解码的视频)以用于随后呈现在诸如图1的显示设备118之类的显示设备上。
以这种方式,视频解码器300表示视频解码设备的示例,该视频解码设备包括被配置为存储视频数据的存储器,以及一个或多个处理单元,其在电路中实现并被配置为:使用可能的符号值、运动矢量差分量的相应的幅度以及用于视频数据块的运动矢量预测器来构造运动矢量候选,其中,可能的符号值包括正符号值和负符号值;基于每个运动矢量候选的成本对运动矢量候选进行排序以创建排序列表;基于运动矢量符号预测器索引和排序列表来确定每个运动矢量差坐标的相应运动矢量差符号;以及使用运动矢量差坐标的相应幅度和每个运动矢量差分量的相应运动矢量差符号对视频数据块进行解码。
图10是说明根据本公开的技术用于编码当前块的示例方法的流程图。当前块可以包括当前CU。尽管针对视频编码器200(图1和图8)进行了描述,但应当理解,其他设备可以被配置为执行类似于图10的方法的方法。
在该示例中,视频编码器200最初预测当前块(350)。例如,视频编码器200可以形成当前块的预测块。视频编码器200可以接着计算当前块的残差块(352)。为了计算残差块,视频编码器200可以计算原始未编码块与当前块的预测块之间的差。视频编码器200可以接着变换残差块并量化残差块的变换系数(354)。接下来,视频编码器200可以扫描残差块的量化变换系数(356)。在扫描期间或扫描之后,视频编码器200可以对变换系数进行熵编码(358)。例如,视频编码器200可以使用CAVLC或CABAC对变换系数进行编码。视频编码器200然后可以输出块的经熵编码的数据(360)。
图11是说明根据本公开的技术用于解码视频数据的当前块的示例方法的流程图。当前块可以包括当前CU。尽管关于视频解码器300(图1和图9)进行了描述,但是应当理解,其他设备可以被配置为执行类似于图11的方法的方法。
视频解码器300可以接收当前块的经熵编码的数据,例如经熵编码的预测信息和与当前块相对应的残差块的变换系数的经熵编码数据(370)。视频解码器300可以对经熵编码的数据进行熵解码以确定当前块的预测信息并再现残差块的变换系数(372)。视频解码器300可以预测当前块(374),例如,使用如由当前块的预测信息指示的帧内或帧间预测模式,以计算当前块的预测块。视频解码器300然后可以对再现的变换系数进行逆扫描(376),以创建量化变换系数块。视频解码器300可以接着对变换系数进行逆量化并对变换系数应用逆变换以产生残差块(378)。视频解码器300可以通过组合预测块和残差块来最终解码当前块(380)。
图12是说明根据本公开的技术用于解码当前块的另一示例方法的流程图。图12的技术可以由视频解码器300的一个或多个结构组件执行,包括运动补偿单元316。
在本公开的一个示例中,视频解码器300可以被配置为使用可能的符号值、运动矢量差分量的相应幅度和用于视频数据块的运动矢量预测器来构造运动矢量候选,其中,可能的符号值包括正号值和负号值(1200)。视频解码器300可以进一步被配置为基于每个运动矢量候选的成本对运动矢量候选进行排序以创建排序列表(1202)。视频解码器300可以进一步基于运动矢量符号预测器索引和排序列表来确定每个运动矢量差坐标的相应运动矢量差符号(1204),使用运动矢量差坐标的相应幅度和每个运动矢量差分量的相应运动矢量差符号对视频数据块进行解码(1206)。
在上面的示例中,可以使用具有运动矢量差的帧间合并(MMVD)模式、仿射MMVD、具有MMVD的几何分割模式(GPM)或多假设预测(MHP)模式之一对视频数据块进行译码。
在特定示例中,视频数据块使用帧间MMVD模式进行译码。在该示例中,视频解码器300还可以被配置为:对指示运动矢量预测器的合并索引进行解码,对指示运动矢量差坐标的相应幅度的步长索引进行解码,以及对运动矢量符号预测器索引进行解码。视频解码器300可以进一步被配置为:将每个运动矢量差分量的相应运动矢量差符号应用于运动矢量差分量的相应幅度以确定运动矢量差,将运动矢量差加到运动矢量预测器以确定最终运动矢量,以及使用最终运动矢量来解码视频数据块。
在另一具体示例中,使用仿射MMVD模式对视频数据块进行译码,并且运动矢量预测器包括两个或三个控制点运动矢量。在该示例中,视频解码器300可以被配置为:确定控制点运动矢量,对指示运动矢量差坐标的相应幅度的步长索引进行解码,以及对运动矢量符号预测器索引进行解码。视频解码器300还可以被配置为:将每个运动矢量差分量的相应运动矢量差符号应用于运动矢量差分量的相应幅度以确定运动矢量差,将运动矢量差加到每个控制点运动矢量以确定最终控制点运动矢量,以及使用最终控制点运动矢量对视频数据块进行解码。
在任何上述示例中,视频解码器300可以进一步被配置为使用模板匹配来确定成本。作为一个示例,当使用具有运动矢量差的仿射MMVD合并(MMVD)模式来对视频数据块译码时,视频解码器300可以被配置为使用基于子块的模板匹配来确定成本。此外,在任何以上实例中,视频解码器300可以进一步被配置为基于图片顺序计数(POC)差来缩放运动矢量差分量的相应幅度。
下面描述了本公开的附加方面。
方面1A-一种对视频数据进行译码的方法,该方法包括:解码视频数据块的运动矢量差坐标的幅度;解码运动矢量符号预测器索引;使用可能的符号值和运动矢量差坐标的幅度来构造运动矢量候选;为每个运动矢量候选导出运动矢量差符号预测成本;基于每个运动矢量候选的成本对运动矢量候选进行排序,以创建排序列表;基于运动矢量符号预测器索引和排序列表来确定运动矢量差符号;以及使用运动矢量差坐标的幅度和运动矢量差符号对视频数据块进行解码。
方面2A-方面1A的方法,其中,视频数据块是使用具有运动矢量差的帧间合并(MMVD)模式、仿射MMVD、具有MMVD的几何分割模式(GPM)和多假设预测(MHP)模式中的一种来译码的。
方面3A-一种用于对视频数据进行译码的设备,该设备包括用于执行方面1A-2A中任一个的方法的一个或多个单元。
方面4A-方面3A的设备,其中,所述一个或多个单元包括在电路中实现的一个或多个处理器。
方面5A-方面3A和4A中任一项的设备,还包括用于存储视频数据的存储器。
方面6A-方面3A-5A中任一项的设备,还包括被配置为显示解码的视频数据的显示器。
方面7A-方面3A-6A中任一项的设备,其中,所述设备包括相机、计算机、移动设备、广播接收器设备或机顶盒中的一个或多个。
方面8A-方面3A-7A中任一项的设备,其中,该设备包括视频解码器。
方面9A-方面3A-8A中任一项的设备,其中,所述设备包括视频编码器。
方面10A-一种计算机可读存储介质,其上存储有指令,这些指令当被执行时,使一个或多个处理器执行方面1A-2A中任一个的方法。
方面11A-一种用于对视频数据进行解码的设备,该设备包括:用于对视频数据块的运动矢量差坐标的幅度进行解码的单元;用于解码运动矢量符号预测器索引的单元;用于使用可能的符号值和运动矢量差坐标的幅度来构造运动矢量候选的单元;用于为每个运动矢量候选导出运动矢量差符号预测成本的单元;用于基于每个运动矢量候选的成本对运动矢量候选进行排序以创建排序列表的单元;用于基于运动矢量符号预测器索引和排序列表来确定运动矢量差符号的单元;以及用于使用运动矢量差坐标的幅度和运动矢量差符号来解码视频数据块的单元。
方面1B-一种对视频数据进行解码的方法,该方法包括:使用可能的符号值、运动矢量差分量的相应幅度和用于视频数据块的运动矢量预测器来构造运动矢量候选,其中,所述可能的符号值包括正符号值和负符号值;基于每个所述运动矢量候选的成本对所述运动矢量候选进行排序,以创建排序列表;基于所述运动矢量符号预测器索引和排序列表为每个运动矢量差坐标来确定相应的运动矢量差符号;以及使用运动矢量差坐标的相应幅度和每个运动矢量差分量的相应运动矢量差符号来解码所述视频数据块。
方面2B-方面1B的方法,其中,所述视频数据块是使用具有运动矢量差的帧间合并(MMVD)模式、仿射MMVD、具有MMVD的几何分割模式(GPM)或多假设预测(MHP)模式中的一种来译码的。
方面3B-方面2B的方法,其中,所述视频数据块是使用帧间MMVD模式来译码的,所述方法还包括:解码指示所述运动矢量预测器的合并索引;解码指示运动矢量差坐标的相应幅度的步长索引;以及解码所述运动矢量符号预测器索引。
方面4B-方面3B的方法,还包括:将每个运动矢量差分量的相应运动矢量差符号应用于所述运动矢量差分量的相应幅度以确定运动矢量差;将所述运动矢量差与所述运动矢量预测器相加以确定最终运动矢量;以及使用所述最终运动矢量来解码所述视频数据块。
方面5B-方面2B的方法,其中,所述视频数据块是使用仿射MMVD模式来译码的,并且所述运动矢量预测器包括两个或三个控制点运动矢量,所述方法还包括:确定所述控制点运动矢量;解码指示运动矢量差坐标的相应幅度的步长索引;以及解码所述运动矢量符号预测器索引。
方面6B-方面5B的方法,该方法还包括:将每个运动矢量差分量的相应运动矢量差符号应用于所述运动矢量差分量的相应幅度以确定运动矢量差;将所述运动矢量差与每个所述控制点运动矢量相加,以确定最终控制点运动矢量;以及使用所述最终控制点运动矢量来解码所述视频数据块。
方面7B-方面1B的方法,还包括:使用模板匹配来确定所述成本。
方面8B-方面7B的方法,其中,所述视频数据块是使用具有运动矢量差的仿射MMVD合并(MMVD)模式来译码的,并且其中,使用模板匹配来确定所述成本包括:使用基于子块的模板匹配来确定所述成本。
方面9B-方面1B的方法,还包括:基于图片顺序计数(POC)差来缩放运动矢量差分量的相应幅度。
方面10B-方面1B的方法,还包括:显示包括解码的视频数据块的图片。
方面11B-一种被配置为对视频数据进行解码的装置,该装置包括:存储器,其被配置为存储视频数据块;以及与所述存储器通信的一个或多个处理器,所述一个或多个处理器被配置为:使用可能的符号值、运动矢量差分量的相应幅度和用于视频数据块的运动矢量预测器来构造运动矢量候选,其中,所述可能的符号值包括正符号值和负符号值;基于每个所述运动矢量候选的成本对所述运动矢量候选进行排序,以创建排序列表;基于所述运动矢量符号预测器索引和所述排序列表,确定每个运动矢量差坐标的相应运动矢量差符号;以及使用运动矢量差坐标的相应幅度和每个运动矢量差分量的相应运动矢量差符号来解码所述视频数据块。
方面12B-方面11B的装置,其中,所述视频数据块是使用具有运动矢量差的帧间合并(MMVD)模式、仿射MMVD、具有MMVD的几何分割模式(GPM)或多假设预测(MHP)模式中的一种来译码的。
方面13B-根据方面12B所述的装置,其中,所述视频数据块是使用帧间MMVD模式来译码的,并且其中,所述一个或多个处理器还被配置为:解码指示所述运动矢量预测器的合并索引;解码指示运动矢量差坐标的相应幅度的步长索引;以及解码所述运动矢量符号预测器索引。
方面14B-方面13B的装置,其中,所述一个或多个处理器还被配置为:将每个运动矢量差分量的相应运动矢量差符号应用于所述运动矢量差分量的相应幅度以确定运动矢量差;将所述运动矢量差与运动矢量预测器相加以确定最终运动矢量;以及使用所述最终运动矢量来解码所述视频数据块。
方面15B-方面12B的装置,其中,所述视频数据块是使用仿射MMVD模式来译码的,所述运动矢量预测器包括两个或三个控制点运动矢量,并且其中,所述一个或多个处理器还被配置为:确定所述控制点运动矢量;解码指示运动矢量差坐标的相应幅度的步长索引;以及解码所述运动矢量符号预测器索引。
方面16B-方面15B的装置,其中,所述一个或多个处理器还被配置为:将每个运动矢量差分量的相应运动矢量差符号应用于所述运动矢量差分量的相应幅度以确定运动矢量差;将所述运动矢量差与每个所述控制点运动矢量相加,以确定最终控制点运动矢量;以及使用所述最终控制点运动矢量来解码所述视频数据块。
方面17B-方面11B的装置,其中,所述一个或多个处理器还被配置为:使用模板匹配来确定所述成本。
方面18B-方面17B的装置,其中,所述视频数据块是使用具有运动矢量差的仿射MMVD合并(MMVD)模式来译码的,并且其中,为了使用模板匹配来确定所述成本,所述一个或多个处理器还被配置为:使用基于子块的模板匹配来确定所述成本。
方面19B-根据方面11B所述的装置,其中,所述一个或多个处理器还被配置为:基于图片顺序计数(POC)差来缩放运动矢量差分量的相应幅度。
方面20B-方面11B的装置,还包括:显示器,其被配置为显示包括解码的视频数据块的图片。
方面1C-一种对视频数据进行解码的方法,该方法包括:使用可能的符号值、运动矢量差分量的相应幅度和用于视频数据块的运动矢量预测器来构造运动矢量候选,其中,所述可能的符号值包括正符号值和负符号值;基于每个所述运动矢量候选的成本对所述运动矢量候选进行排序,以创建排序列表;基于运动矢量符号预测器索引和排序列表,针对每个运动矢量差坐标确定相应的运动矢量差符号;以及使用运动矢量差坐标的相应幅度和每个运动矢量差分量的相应运动矢量差符号来解码所述视频数据块。
方面2C-方面1C的方法,其中,所述视频数据块是使用具有运动矢量差的帧间合并(MMVD)模式、仿射MMVD、具有MMVD的几何分割模式(GPM)或多假设预测(MHP)模式中的一种来译码的。
方面3C-方面2C的方法,其中,所述视频数据块是使用帧间MMVD模式来译码的,所述方法还包括:解码指示所述运动矢量预测器的合并索引;解码指示运动矢量差坐标的相应幅度的步长索引;以及解码所述运动矢量符号预测器索引。
方面4C-方面3C的方法,还包括:将每个运动矢量差分量的相应运动矢量差符号应用于所述运动矢量差分量的相应幅度以确定运动矢量差;将所述运动矢量差与所述运动矢量预测器相加以确定最终运动矢量;以及使用所述最终运动矢量来解码所述视频数据块。
方面5C-方面2C的方法,其中,所述视频数据块是使用仿射MMVD模式来译码的,并且所述运动矢量预测器包括两个或三个控制点运动矢量,所述方法还包括:确定所述控制点运动矢量;解码指示运动矢量差坐标的相应幅度的步长索引;以及解码所述运动矢量符号预测器索引。
方面6C-方面5C的方法,该方法还包括:将每个运动矢量差分量的相应运动矢量差符号应用于所述运动矢量差分量的相应幅度以确定运动矢量差;将所述运动矢量差与每个所述控制点运动矢量相加,以确定最终控制点运动矢量;以及使用所述最终控制点运动矢量来解码所述视频数据块。
方面7C-方面1C-6C中任一项的方法,还包括:使用模板匹配来确定成本。
方面8C-方面7C的方法,其中,所述视频数据块是使用具有运动矢量差的仿射MMVD合并(MMVD)模式来译码的,并且其中,使用模板匹配来确定所述成本包括:使用基于子块的模板匹配来确定所述成本。
方面9C-方面1C-8C中任一项的方法,还包括:基于图片顺序计数(POC)差来缩放运动矢量差分量的相应幅度。
方面10C-方面1C-9C中任一项的方法,还包括:显示包括解码的视频数据块的图片。
方面11C-一种被配置为对视频数据进行解码的装置,该装置包括:存储器,其被配置为存储视频数据块;以及与所述存储器通信的一个或多个处理器,所述一个或多个处理器被配置为:使用可能的符号值、运动矢量差分量的相应幅度和用于视频数据块的运动矢量预测器来构造运动矢量候选,其中,所述可能的符号值包括正符号值和负符号值;基于每个所述运动矢量候选的成本对所述运动矢量候选进行排序,以创建排序列表;基于所述运动矢量符号预测器索引和所述排序列表,确定每个运动矢量差坐标的相应运动矢量差符号;以及使用运动矢量差坐标的相应幅度和每个运动矢量差分量的相应运动矢量差符号来解码所述视频数据块。
方面12C-方面11C的装置,其中,所述视频数据块是使用具有运动矢量差的帧间合并(MMVD)模式、仿射MMVD、具有MMVD的几何分割模式(GPM)或多假设预测(MHP)模式中的一种来译码的。
方面13C-根据方面12C所述的装置,其中,所述视频数据块是使用帧间MMVD模式来译码的,并且其中,所述一个或多个处理器还被配置为:解码指示所述运动矢量预测器的合并索引;解码指示运动矢量差坐标的相应幅度的步长索引;以及解码所述运动矢量符号预测器索引。
方面14C-方面13C的装置,其中,所述一个或多个处理器还被配置为:将每个运动矢量差分量的相应运动矢量差符号应用于所述运动矢量差分量的相应幅度以确定运动矢量差;将所述运动矢量差与运动矢量预测器相加以确定最终运动矢量;以及使用所述最终运动矢量来解码所述视频数据块。
方面15C-方面12C的装置,其中,所述视频数据块是使用仿射MMVD模式来译码的,所述运动矢量预测器包括两个或三个控制点运动矢量,并且其中,所述一个或多个处理器还被配置为:确定所述控制点运动矢量;解码指示运动矢量差坐标的相应幅度的步长索引;以及解码所述运动矢量符号预测器索引。
方面16C-方面15C的装置,其中,所述一个或多个处理器还被配置为:将每个运动矢量差分量的相应运动矢量差符号应用于所述运动矢量差分量的相应幅度以确定运动矢量差;将所述运动矢量差与每个所述控制点运动矢量相加,以确定最终控制点运动矢量;以及使用所述最终控制点运动矢量来解码所述视频数据块。
方面17C-方面11C-16C中任一项的装置,其中,所述一个或多个处理器还被配置为:使用模板匹配来确定成本。
方面18C-方面17C的装置,其中,所述视频数据块是使用具有运动矢量差的仿射MMVD合并(MMVD)模式来译码的,并且其中,为了使用模板匹配来确定所述成本,所述一个或多个处理器还被配置为:使用基于子块的模板匹配来确定成本。
方面19C-根据方面11C-18C中任一项所述的装置,其中,所述一个或多个处理器还被配置为:基于图片顺序计数(POC)差来缩放运动矢量差分量的相应幅度。
方面20C-根据方面11C-19C中任一项所述的装置,还包括:显示器,其被配置为显示包括解码的视频数据块的图片。
应认识到,取决于示例,本文描述的任何技术的某些动作或事件可以以不同的顺序执行,可以添加、合并或完全省略(例如,并非所有描述的动作或事件对于技术的实践是必要的)。此外,在某些示例中,动作或事件可以同时执行,例如通过多线程处理、中断处理或多个处理器,而不是顺序执行。
在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任何组合中实现。如果在软件中实现,则这些功能可以作为一个或多个指令或代码在计算机可读介质上存储或传输,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于诸如数据存储介质之类的有形介质,或通信介质,包括促进例如根据通信协议将计算机程序从一个地方传输到另一个地方的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时的有形计算机可读存储介质或(2)诸如信号或载波之类的通信介质。数据存储介质可以是可以由一台或多台计算机或一个或多个处理器访问以取回指令、代码和/或数据结构以实现本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,此类计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、闪存或可以用于以指令或数据结构的形式存储期望的程序代码并可以由计算机访问的任何其他介质。此外,任何连接都被恰当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或诸如红外线、无线电和微波之类的无线技术从网站、服务器或其他远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或诸如红外线、无线电和微波之类的无线技术都被包含在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂时性介质,而是针对非暂时性的有形存储介质。如本文所用,磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘和蓝光光盘,其中,磁盘通常以磁性方式再现数据,而光盘则通过激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,例如一个或多个DSP、通用微处理器、ASIC、FPGA或其他等同的集成或分立逻辑电路。因此,如本文所用的术语“处理器”和“处理电路”可以指任何前述结构或适用于实施本文描述的技术的任何其他结构。此外,在一些方面,本文描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块内提供,或者并入组合的编解码器中。此外,这些技术可以在一个或多个电路或逻辑元件中完全实现。
本公开的技术可以在多种设备或装置中实现,包括无线手持机、集成电路(IC)或一组IC(例如,芯片组)。在本公开中描述了各种组件、模块或单元以强调被配置为执行所公开的技术的设备的功能方面,但不一定需要由不同的硬件单元来实现。相反,如上所述,各种单元可以组合在编解码器硬件单元中或由包括如上所述的一个或多个处理器的互操作硬件单元的集合连同合适的软件和/或固件提供。
已经描述了各种示例。这些示例和其他示例在所附权利要求的范围内。
Claims (20)
1.一种对视频数据进行解码的方法,所述方法包括:
使用可能的符号值、运动矢量差分量的相应幅度、以及用于视频数据块的运动矢量预测器来构造运动矢量候选,其中,所述可能的符号值包括正符号值和负符号值;
基于所述运动矢量候选中的每一个的成本对所述运动矢量候选进行排序,以创建排序列表;
基于运动矢量符号预测器索引和所述排序列表,针对每个运动矢量差坐标确定相应的运动矢量差符号;以及
使用运动矢量差坐标的相应幅度和每个运动矢量差分量的相应运动矢量差符号,来解码所述视频数据块。
2.如权利要求1所述的方法,其中,所述视频数据块是使用以下各项之一来译码的:帧间的具有运动矢量差的合并(MMVD)模式、仿射MMVD、具有MMVD的几何分割模式(GPM)、或多假设预测(MHP)模式。
3.如权利要求2所述的方法,其中,所述视频数据块是使用帧间MMVD模式来译码的,所述方法还包括:
解码指示所述运动矢量预测器的合并索引;
解码指示所述运动矢量差坐标的相应幅度的步长索引;以及
解码所述运动矢量符号预测器索引。
4.如权利要求3所述的方法,还包括:
将所述每个运动矢量差分量的相应运动矢量差符号应用于所述运动矢量差分量的相应幅度,以确定运动矢量差;
将所述运动矢量差与所述运动矢量预测器相加,以确定最终运动矢量;以及
使用所述最终运动矢量来解码所述视频数据块。
5.如权利要求2所述的方法,其中,所述视频数据块是使用仿射MMVD模式来译码的,并且所述运动矢量预测器包括两个或三个控制点运动矢量,所述方法还包括:
确定所述控制点运动矢量;
解码指示所述运动矢量差坐标的相应幅度的步长索引;以及
解码所述运动矢量符号预测器索引。
6.如权利要求5所述的方法,所述方法还包括:
将所述每个运动矢量差分量的相应运动矢量差符号应用于所述运动矢量差分量的相应幅度,以确定运动矢量差;
将所述运动矢量差与所述控制点运动矢量中的每一个相加,以确定最终控制点运动矢量;以及
使用所述最终控制点运动矢量来解码所述视频数据块。
7.如权利要求1所述的方法,还包括:
使用模板匹配来确定所述成本。
8.如权利要求7所述的方法,其中,所述视频数据块是使用仿射MMVD具有运动矢量差的合并(MMVD)模式来译码的,并且其中,使用模板匹配来确定所述成本包括:
使用基于子块的模板匹配来确定所述成本。
9.如权利要求1所述的方法,还包括:
基于图片顺序计数(POC)差来缩放所述运动矢量差分量的相应幅度。
10.如权利要求1所述的方法,还包括:
显示包括所解码的视频数据块的图片。
11.一种被配置为对视频数据进行解码的装置,所述装置包括:
存储器,其被配置为存储视频数据块;以及
与所述存储器通信的一个或多个处理器,所述一个或多个处理器被配置为:
使用可能的符号值、运动矢量差分量的相应幅度、以及用于视频数据块的运动矢量预测器来构造运动矢量候选,其中,所述可能的符号值包括正符号值和负符号值;
基于所述运动矢量候选中的每一个的成本对所述运动矢量候选进行排序,以创建排序列表;
基于运动矢量符号预测器索引和所述排序列表,针对每个运动矢量差坐标确定相应运动矢量差符号;以及
使用运动矢量差坐标的相应幅度和每个运动矢量差分量的相应运动矢量差符号,来解码所述视频数据块。
12.如权利要求11所述的装置,其中,所述视频数据块是使用以下各项之一来译码的:帧间的具有运动矢量差的合并(MMVD)模式、仿射MMVD、具有MMVD的几何分割模式(GPM)、或多假设预测(MHP)模式。
13.如权利要求12所述的装置,其中,所述视频数据块是使用帧间MMVD模式来译码的,并且其中,所述一个或多个处理器还被配置为:
解码指示所述运动矢量预测器的合并索引;
解码指示所述运动矢量差坐标的相应幅度的步长索引;以及
解码所述运动矢量符号预测器索引。
14.如权利要求13所述的装置,其中,所述一个或多个处理器还被配置为:
将所述每个运动矢量差分量的相应运动矢量差符号应用于所述运动矢量差分量的相应幅度,以确定运动矢量差;
将所述运动矢量差与所述运动矢量预测器相加,以确定最终运动矢量;以及
使用所述最终运动矢量来解码所述视频数据块。
15.如权利要求12所述的装置,其中,所述视频数据块是使用仿射MMVD模式来译码的,所述运动矢量预测器包括两个或三个控制点运动矢量,并且其中,所述一个或多个处理器还被配置为:
确定所述控制点运动矢量;
解码指示所述运动矢量差坐标的相应幅度的步长索引;以及
解码所述运动矢量符号预测器索引。
16.如权利要求15所述的装置,其中,所述一个或多个处理器还被配置为:
将所述每个运动矢量差分量的相应运动矢量差符号应用于所述运动矢量差分量的相应幅度,以确定运动矢量差;
将所述运动矢量差与所述控制点运动矢量中的每一个相加,以确定最终控制点运动矢量;以及
使用所述最终控制点运动矢量来解码所述视频数据块。
17.如权利要求11所述的装置,其中,所述一个或多个处理器还被配置为:
使用模板匹配来确定所述成本。
18.如权利要求17所述的装置,其中,所述视频数据块是使用仿射MMVD具有运动矢量差的合并(MMVD)模式来译码的,并且其中,为了使用模板匹配来确定所述成本,所述一个或多个处理器还被配置为:
使用基于子块的模板匹配来确定所述成本。
19.如权利要求11所述的装置,其中,所述一个或多个处理器还被配置为:
基于图片顺序计数(POC)差来缩放所述运动矢量差分量的相应幅度。
20.如权利要求11所述的装置,还包括:
显示器,其被配置为显示包括所解码的视频数据块的图片。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/249,421 | 2021-09-28 | ||
US17/929,122 US20230094825A1 (en) | 2021-09-28 | 2022-09-01 | Motion vector difference sign prediction for video coding |
US17/929,122 | 2022-09-01 | ||
PCT/US2022/075911 WO2023056158A1 (en) | 2021-09-28 | 2022-09-02 | Motion vector difference sign prediction for video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118056400A true CN118056400A (zh) | 2024-05-17 |
Family
ID=91048717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280063934.2A Pending CN118056400A (zh) | 2021-09-28 | 2022-09-02 | 用于视频译码的运动矢量差符号预测 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118056400A (zh) |
-
2022
- 2022-09-02 CN CN202280063934.2A patent/CN118056400A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112703740B (zh) | 用于仿射模式的基于历史的运动矢量预测 | |
CN113748679A (zh) | 用于视频编解码的帧内块复制合并数据语法 | |
CN112673636B (zh) | 将运动向量取整以自适应运动向量差分辨率及提高视频译码中的运动向量存储精度 | |
CN114868387B (zh) | 在进行视频译码时对块的色度变换跳过和联合色度译码启用 | |
CN114080805A (zh) | 用于视频译码的自适应环路滤波的非线性扩展 | |
CN113892264A (zh) | 使用非矩形预测模式来减少用于视频数据预测的运动场存储 | |
CN113330744A (zh) | 视频编解码中用于并行处理的处理区域的推导 | |
CN116941240A (zh) | 在帧间预测模式下的模板匹配细化 | |
WO2023055583A1 (en) | Decoder side motion derivation using spatial correlation | |
US20230094825A1 (en) | Motion vector difference sign prediction for video coding | |
TW202315410A (zh) | 用於視訊譯碼的運動向量差符號預測 | |
CN117546465A (zh) | 视频译码中的合并候选重新排序 | |
CN117529921A (zh) | 视频译码中的混合帧间双预测 | |
CN116636213A (zh) | 视频译码中的模板匹配 | |
CN118056400A (zh) | 用于视频译码的运动矢量差符号预测 | |
US20240121399A1 (en) | Decoder-side control point motion vector refinement for affine inter-prediction in video coding | |
US20230199211A1 (en) | Interaction between reference picture resampling and template-based inter prediction techniques in video coding | |
KR20240087718A (ko) | 비디오 코딩을 위한 모션 벡터 차이 부호 예측 | |
CN117157975A (zh) | 对用于视频译码的多假设预测的运动信息进行自适应译码 | |
CN117203966A (zh) | 用于视频译码的基于模板匹配的仿射预测 | |
TW202332272A (zh) | 用於視訊譯碼的區塊級別參考圖片自我調整 | |
CN117981313A (zh) | 具有用于视频译码的解码器侧运动向量推导的多个帧间预测符 | |
CN117981312A (zh) | 用于视频译码的解码器侧运动向量细化的自适应双边匹配 | |
CN117546467A (zh) | 使用未经细化的运动向量来执行解码器侧运动向量推导 | |
WO2024148066A1 (en) | Template matching for flipped intra block copy |
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 |