CN118451702A - 用于翘曲样本选择和分组的方法和装置 - Google Patents

用于翘曲样本选择和分组的方法和装置 Download PDF

Info

Publication number
CN118451702A
CN118451702A CN202280085678.7A CN202280085678A CN118451702A CN 118451702 A CN118451702 A CN 118451702A CN 202280085678 A CN202280085678 A CN 202280085678A CN 118451702 A CN118451702 A CN 118451702A
Authority
CN
China
Prior art keywords
motion vector
motion
block
warp
temporal
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
Application number
CN202280085678.7A
Other languages
English (en)
Inventor
高晗
赵欣
赵亮
刘杉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent America LLC
Original Assignee
Tencent America LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent America LLC filed Critical Tencent America LLC
Publication of CN118451702A publication Critical patent/CN118451702A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

提供了用于使用翘曲运动模式进行编码和解码的系统和方法。一种方法,包括:接收包括已编码图片的码流;获得指向相邻块中的位置的多个运动矢量,所述相邻块邻近于所述已编码图片中的当前块,该多个运动矢量包括至少一个时间运动矢量;基于该多个运动矢量,获得用于翘曲模型的运动样本;以及通过使用该翘曲模型和包括用于预测的至少一个时间运动矢量的运动样本来对当前块进行解码。一些实施例可以包括使用时间运动信息来导出翘曲模型的方法,并且可以进一步提供翘曲样本选择和分组。一些实施例可以提供对局部翘曲运动模式的改进。

Description

用于翘曲样本选择和分组的方法和装置
交叉引用
本申请要求于2022年7月26日提交的美国临时申请第63/392,381号和于2022年11月3日提交的美国申请第17/980,331号的优先权,这两个申请的公开内容通过引用整体结合在本文中。
技术领域
本公开的实施例涉及先进的图像和视频编解码技术,并且尤其涉及对局部翘曲(warp)运动模式的改进。
背景技术
AOMedia Video 1(AV1)是为因特网上的视频传输而设计的开放视频编码格式。它是由开放媒体联盟(AOMedia)作为VP9的后继者开发的,该联盟是在2015年创立的包括半导体公司、视频点播提供商、视频内容制作商、软件开发公司和web浏览器供应商的联合企业。AV1项目的许多组成部分来源于联盟成员先前的研究工作。个体贡献者在几年前开始实验技术平台:Xiph/Mozilla的Daala已于2010年公布代码,谷歌(Google)的实验VP9演进项目VP10于2014年9月12日宣布,并且思科(Cisco)的Thor于2015年8月11日公布。建立在VP9的代码库上,AV1结合了附加的技术,其中的几种是以这些实验形式开发的。AV1参考编解码器的第一个版本0.1.0于2016年4月7日公布。该联盟于2018年3月28日宣布了AV1码流规范的发行以及参考的基于软件的编码器和解码器。2018年6月25日,发行了规范的确认版本1.0.0。2019年1月8日,发行了规范的具有勘误表1的确认版本1.0.0。AV1码流规范包括参考视频编解码器。
ITU-T VCEG(Q6/16)和ISO/IEC MPEG(JTC 1/SC 29/WG 11)在2013年(版本1)、2014年(版本2)、2015年(版本3)和2016年(版本4)中公布了H.265/高效率视频编码(HEVC,High Efficiency Video Coding)标准。他们还探索了对未来视频编码技术标准化的潜在需要,该技术在压缩能力方面明显优于HEVC。2017年10月,他们发布了关于视频压缩能力超越HEVC的视频压缩的联合征集提案(CfP,Joint Call for Proposal)。截至2018年2月15日,分别提交了总共22份标准动态范围(SDR)的CfP响应、12份高动态范围(HDR)的CfP响应和12份360个视频类别的CfP响应。2018年4月,在第122次MPEG/第10届联合视频探索小组或联合视频专家小组(JVET,Joint Video Exploration Team or Joint Video ExpertTeam)会议中评估了所有接收到的CfP响应。这次会议的结果是,JVET正式启动了超越HEVC的下一代视频编码的标准化。新标准被称为通用视频编码(VVC,Versatile VideoCoding)。
发明内容
根据本公开的实施例,提供了一种由解码器执行的方法。该方法包括:接收包括已编码图片的码流;获得指向相邻块中的位置的多个运动矢量,所述相邻块邻近于所述已编码图片中的当前块,该多个运动矢量包括至少一个时间运动矢量;基于该多个运动矢量获得用于翘曲模型的运动样本;以及通过使用该翘曲模型和包括用于预测的至少一个时间运动矢量的运动样本来对当前块进行解码。
根据本公开的一个或多个实施例,该至少一个时间运动矢量包括当前块的尚未由解码器构建的空间相邻块的位置处的时间运动矢量。
根据本公开的一个或多个实施例,该至少一个时间运动矢量包括当前块的由解码器先前构建的空间相邻块的位置处的时间运动矢量。
根据本公开的一个或多个实施例,该方法进一步包括将运动偏移应用于至少一个时间运动矢量。
根据本公开的一个或多个实施例,该方法进一步包括使用关于多个运动矢量的回归/最小二乘误差方法,来获得翘曲模型,所述多个运动矢量包括所述至少一个时间运动矢量。
根据本公开的一个或多个实施例,该多个运动矢量包括至少一个时间运动矢量和至少一个空间运动矢量。
根据本公开的一个或多个实施例,该多个运动矢量包括至少一个时间运动矢量并且不包括空间运动矢量。
根据本公开的一个或多个实施例,该解码进一步包括:构建多个相邻块组的列表;以及从该列表中选择多个相邻块组中的一组,其中,获得多个运动矢量包括从所选择的相邻块组中获得多个运动矢量。
根据本公开的一个或多个实施例,该选择包括基于在码流中发信号通知的索引,从列表中选择组,其中,该索引指示列表中的哪组将用于获得翘曲模型。
根据本公开的一个或多个实施例,该解码包括通过执行翘曲运动补偿来对当前块进行解码。
根据本公开的实施例,提供了一种系统。该系统包括:至少一个存储器,该至少一个存储器被配置为存储计算机程序代码;以及至少一个处理器,该至少一个处理器被配置为接收包括已编码图片的码流、访问该计算机程序代码,并且按照该计算机程序代码的指示进行操作,该计算机程序代码包括:运动矢量获得代码,该运动矢量获得代码被配置为使至少一个处理器获得指向相邻块中的位置的多个运动矢量,所述相邻块邻近于所述已编码图片中的当前块,该多个运动矢量包括至少一个时间运动矢量;运动样本获得代码,该运动样本获得代码被配置为使至少一个处理器基于多个运动矢量,获得用于翘曲模型的运动样本;以及解码代码,该解码代码被配置为使至少一个处理器通过使用该翘曲模型和包括用于预测的至少一个时间运动矢量的运动样本来对当前块进行解码。
根据本公开的一个或多个实施例,该至少一个时间运动矢量包括当前块的尚未由至少一个处理器构建的空间相邻块的位置处的时间运动矢量。
根据本公开的一个或多个实施例,该至少一个时间运动矢量包括当前块的由至少一个处理器先前构建的空间相邻块的位置处的时间运动矢量。
根据本公开的一个或多个实施例,该计算机程序代码进一步包括运动偏移代码,该运动偏移代码被配置为使至少一个处理器将运动偏移应用于至少一个时间运动矢量。
根据本公开的一个或多个实施例,该计算机程序代码进一步包括翘曲模型获得代码,该翘曲模型获得代码被配置为使至少一个处理器通过使用关于多个运动矢量的回归/最小二乘误差方法来获得翘曲模型,所述多个运动矢量包括所述至少一个时间运动矢量。
根据本公开的一个或多个实施例,该多个运动矢量包括至少一个时间运动矢量和至少一个空间运动矢量。
根据本公开的一个或多个实施例,该多个运动矢量包括至少一个时间运动矢量并且不包括空间运动矢量。
根据本公开的一个或多个实施例,该计算机程序代码进一步包括:列表构建代码,该列表构建代码被配置成使至少一个处理器构建多个相邻块组的列表;以及选择代码,该选择代码被配置为使至少一个处理器从列表中选择该多个相邻块组中的一组,其中该运动矢量获得代码被配置为使至少一个处理器从所选择的相邻块组中获得多个运动矢量。
根据本公开的一个或多个实施例,该选择代码被配置为使至少一个处理器基于在码流中发信号通知的索引从列表中选择组,其中,该索引指示列表中的哪组将用于获得翘曲模型。
根据本公开的实施例,提供了一种存储计算机代码的非易失性计算机可读介质。该计算机代码被配置为在由至少一个处理器执行时使至少一个处理器实施解码器:接收包括已编码图片的码流;获得指向相邻块中的位置的多个运动矢量,所述相邻块邻近于所述已编码图片中的当前块,该多个运动矢量包括至少一个时间运动矢量;基于该多个运动矢量,获得用于翘曲模型的运动样本;以及使用该翘曲模型和包括用于预测的至少一个时间运动矢量的运动样本来对当前块进行解码。
附图说明
从以下详细描述和附图中,所公开的主题的其它特征、性质以及各种优点将更加明显,其中:
图1是根据实施例的通信系统的简化框图的示意图。
图2是根据实施例的通信系统的简化框图的示意图。
图3是根据实施例的解码器的简化框图的示意图。
图4是根据实施例的编码器的简化框图的示意图。
图5A是根据实施例的VP9中的分区树的示意图。
图5B是根据实施例的AV1中的分区树的示意图。
图6A是根据实施例的四叉树加二叉树(QTBT,quad-tree plus binary tree)结构的块分区的示意图。
图6B是图6A中所示的块分区的QTBT结构的对应树表示的示意图。
图7A是根据实施例的垂直中心侧三叉树分区的示意图。
图7B是根据实施例的水平中心侧三叉树分区的示意图。
图8是根据实施例的两个参考帧的具有运动矢量差的合并模式(MMVD,merge modewith motion vector difference)搜索点的示意图。
图9是根据实施例的用于使用局部翘曲运动预测来导出块的模型参数的示例运动样本的示意图。
图10是根据实施例的翘曲样本收集扫描顺序的示例的示意图。
图11是根据实施例的使用翘曲扩展模式的块中的运动矢量的示意图。
图12是根据实施例的使用两个参考帧的当前帧的MMVD搜索过程的示意图。
图13是根据实施例的用于开发翘曲模型的当前块和相邻块的示意图。
图14是根据实施例的用于开发翘曲模型的当前块和相邻块的示意图。
图15是根据实施例的用于开发翘曲模型的当前块和相邻块的示意图。
图16是根据实施例的用于开发翘曲模型的当前块和相邻块的示意图。
图17是根据实施例的计算机代码的框图。
图18是适于实施本公开的实施例的计算机系统的示意图。
具体实施方式
示例实施例的以下详细描述参考附图。不同附图中相同的附图标记可以标识相同或类似的元件。
上述公开提供了说明和描述,但并不旨在穷举或将实施限制为所公开的精确形式。根据本公开,修改和变化是可能的,或者可以从实施的实践中获得修改和变化。此外,一个实施例的一个或多个特征或部件可以并入另一实施例(或另一实施例的一个或多个特征)中或与另一实施例(或另一实施例的一个或多个特征)组合。附加地,在以下提供的流程图和操作描述中,应当理解,可以省略一个或多个操作,可以添加一个或多个操作,可以同时(至少部分地)执行一个或多个操作,并且可以切换一个或多个操作的顺序。
显然,本文描述的系统和/或方法可以以不同形式的硬件、软件或硬件和软件的组合来实施。用于实施这些系统和/或方法的实际专用控制硬件或软件代码并不限制实施。应当理解,软件和硬件可以被设计为基于本文的描述来实施系统和/或方法。
下面描述的特征可以单独使用或以任何顺序组合使用。此外,可以通过处理电路(例如,一个或多个处理器或一个或多个集成电路)来实施这些实施例。在一个示例中,一个或多个处理器执行存储在非易失性计算机可读介质中的程序。
本文使用的元件、动作或指令不应被解释为关键的或必要的,除非明确地这样描述。此外,如本文所使用的,冠词“一个(a)”和“一个(an)”旨在包括一个或多个项目,并且可以与“一个或多个”互换使用。当仅旨在指一个项目时,使用术语“一个”或类似语言。此外,如本文所使用的,术语“具有(has)”、“具有(have)”、“具有(having)”、“包括(include)”、“包括(including)”等旨在是开放式术语。此外,短语“基于”旨在意指“至少部分地基于”,除非另有明确地说明。此外,诸如“A和B中的至少一种”或“A或B中的至少一种”的表达应理解为仅包括A、仅包括B,或包括A和B两者。
图1图示了根据本公开的实施例的通信系统100的简化框图。通信系统100可以包括经由网络150互连的至少两个终端110、120。对于数据的单向传输,第一终端110可以在本地位置对视频数据进行编码以经由网络150传输到另一终端120。第二终端120可以从网络150接收另一终端的已编码视频数据、对已编码数据进行解码,并且显示已恢复的视频数据。单向数据传输在媒体服务应用等中可能是常见的。
图1图示了第二对终端130、140,提供该第二对终端130、140以支持例如在视频会议期间可能发生的已编码视频的双向传输。对于数据的双向传输,每个终端130、140可以对在本地位置捕获的视频数据进行编码,以经由网络150传输到另一终端。每个终端130、140还可以接收由另一终端传输的已编码视频数据,可以对已编码数据进行解码,并且可以在本地显示设备上显示已恢复的视频数据。
在图1中,终端110至140可以被示为服务器、个人计算机和智能电话,和/或任何其它类型的终端。例如,终端110至140可以是膝上型计算机、平板计算机、媒体播放器和/或专用视频会议装备。网络150表示在终端110至140之间传送已编码视频数据的任何数量的网络,包括例如有线和/或无线通信网络。通信网络150可以在电路交换和/或分组交换信道中交换数据。代表性网络包括电信网、局域网、广域网和/或因特网。为了本讨论的目的,网络150的体系结构和拓扑结构对于本公开的操作可以是不重要的,除非下面给出解释。
图2作为所公开主体的应用的示例图示了视频编码器和解码器在流传输环境中的布置。所公开的主题可以等同地应用于其它视频使能应用,包括例如视频会议、数字TV、在包括CD、DVD、记忆棒等的数字媒体上存储压缩视频等。
如图2所图示的,流传输系统200可以包括捕获子系统213,该捕获子系统213可以包括视频源201和编码器203。视频源201可以是例如数码相机,并且可以被配置为创建未压缩的视频样本流202。当与已编码视频码流相比时,未压缩的视频样本流202可以提供高数据量,并且可以由耦合到视频源201的编码器203来处理。编码器203可以包括硬件、软件或其组合,以实现或实施以下更详细描述的所公开的主题的各方面。与样本流相比,已编码视频码流204可以包括较低的数据量,并且可以存储在流传输服务器205上以供将来使用。一个或多个流传输客户端206可以访问流传输服务器205以检索可以是已编码视频码流204的副本的视频码流209。
在实施例中,流传输服务器205还可以用作媒体感知网络元件(MANE)。例如,流传输服务器205可以被配置为修剪已编码视频码流204,以为一个或多个流传输客户端206裁剪可能不同的码流。在实施例中,MANE可以与流传输系统200中的流传输服务器205分开提供。
流传输客户端206可以包括视频解码器210和显示器212。视频解码器210可以例如对作为已编码视频码流204的输入副本的视频码流209进行解码,并且创建可以在显示器212或另一渲染设备(未描绘)上渲染的输出视频样本流211。在一些流传输系统中,可以根据某些视频编码/压缩标准对视频码流204、209进行编码。这种标准的示例包括但不限于ITU-T建议H.265。正在开发的视频编码标准被非正式地称为通用视频编码(VVC)。本公开的实施例可以用于VVC的上下文中。
图3图示了根据本公开实施例的附接到显示器212的视频解码器210的示例功能框图。
视频解码器210可以包括信道312、接收器310、缓冲存储器315、熵解码器/解析器320、定标器/逆变换单元351、帧内预测单元352、运动补偿预测单元353、聚合器355、环路滤波器单元356、参考图片存储器357和当前图片存储器。在至少一个实施例中,视频解码器210可以包括集成电路、一系列集成电路和/或其它电子电路。视频解码器210还可以部分地或全部地体现为在具有相关联的存储器的一个或多个CPU上运行的软件。
在该实施例和其它实施例中,接收器310可以接收要由解码器210解码的一个或多个已编码视频序列,该解码器210一次解码一个已编码视频序列,其中每个已编码视频序列的解码独立于其它已编码视频序列。可从信道312接收已编码视频序列,该信道312可以为到存储已编码视频数据的存储设备的硬件/软件链路。接收器310可以接收具有其它数据的已编码视频数据,例如已编码音频数据和/或辅助数据流,这些可以使用实体(未描绘)转发到它们各自。接收器310可以将已编码视频序列与其它数据分离。为了对抗网络抖动,缓冲存储器315可以耦合在接收器310和熵解码器/解析器320(此后称为“解析器”)之间。当接收器310从具有足够带宽和可控性的存储/转发设备或从等同步网络接收数据时,可以不使用缓冲存储器315,或者该缓冲存储器315可以很小。为了在诸如因特网的尽力而为分组网络上使用,可能需要缓冲存储器315,该缓冲存储器315可以相对较大,并且可以具有自适应的尺寸。
视频解码器210可以包括从已熵编码的视频序列重建符号321的解析器320。这些符号的类别包括例如用于管理解码器210的操作的信息,以及潜在地用于控制诸如显示器212的渲染设备的信息,该显示器212可以耦合到如图2所图示的解码器。用于一个或多个渲染设备的控制信息可以是例如补充增强信息(SEI)消息或视频可用性信息(VUI)参数集片段(未描绘)的形式。解析器320可以对所接收的已编码视频序列进行解析/熵解码。已编码视频序列的编码可以根据视频编码技术或标准,并且可以遵循所属领域的技术人员众所周知的原理,包括可变长度编码、霍夫曼编码、具有或不具有上下文敏感性的算术编码等。解析器320可以基于对应于该组的至少一个参数,从已编码视频序列中提取用于视频解码器中的像素的至少一个子组的一组子组参数。子组可以包括图片群组(GOP)、图片、图块、条带、宏块、编码单元(CU)、块、变换单元(TU)、预测单元(PU)等。解析器320还可以从已编码视频序列中提取诸如变换系数、量化器参数值、运动矢量等的信息。
解析器320可以对从缓冲存储器315接收的视频序列执行熵解码/解析操作,以便创建符号321。
符号321的重建可以涉及多个不同的单元,这取决于已编码视频图片或其部分的类型(诸如:帧间和帧内图片、帧间和帧内块)以及其它因素。哪些单元被涉及以及它们如何被涉及可以由子组控制信息来控制,该子组控制信息由解析器320从已编码视频序列解析。为了清楚起见,下面没有描绘解析器320和多个单元之间的这种子组控制信息流。
除已经提及的功能块以外,解码器210可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施例中,这些单元中的许多单元彼此紧密交互并且可以彼此集成。然而,出于描述所公开主题的目的,概念上细分成下文的功能单元是适当的。
一个单元可以是定标器/逆变换单元351。定标器/逆变换单元351可以从解析器320接收量化的变换系数以及控制信息,包括要使用的变换、块尺寸、量化因子、量化缩放矩阵等作为一个或多个符号321。定标器/逆变换单元351可以输出包括可以输入到聚合器355中的样本值的块。
在一些情况下,定标器/逆变换单元351的输出样本可以属于帧内编码块;也就是说:不使用来自先前重建的图片的预测信息,但是可以使用来自当前图片的先前重建部分的预测信息的块。这种预测信息可以由帧内预测单元352提供。在一些情况下,帧内预测单元352使用从来自当前图片存储器358的当前(部分重建的)图片获取的周围已经重建的信息来生成与重建下的块尺寸和形状相同的块。在一些情况下,聚合器355在每个样本的基础上将帧内预测单元352已经生成的预测信息添加到由定标器/逆变换单元351提供的输出样本信息。
在其它情况下,定标器/逆变换单元351的输出样本可以属于帧间编码且可能经运动补偿的块。在这种情况下,运动补偿预测单元353可以访问参考图片存储器357以获取用于预测的样本。在根据属于该块的符号321对获取的样本进行运动补偿之后,这些样本可以由聚合器355添加到定标器/逆变换单元351的输出(在这种情况下称为残差样本或残差信号),以便生成输出样本信息。运动补偿预测单元353从参考图片存储器357内获取预测样本的地址可以由运动矢量控制。运动矢量可以以符号321的形式用于运动补偿预测单元353,该符号321可以具有例如X、Y和参考图片分量。运动补偿还可以包括当使用子样本精确运动矢量时从参考图片存储器357获取的样本值的插值、运动矢量预测机制等。
聚合器355的输出样本可以在环路滤波器单元356中经受各种环路滤波技术。视频压缩技术可以包括环路内滤波器技术,该环路内滤波器技术由包括在已编码视频码流中的参数控制,并且作为来自解析器320的符号321可用于环路滤波器单元356,但是也可以响应于在已编码图片或已编码视频序列的先前(按解码顺序)部分的解码期间获得的元信息,以及响应于先前重建和环路滤波的样本值。
环路滤波器单元356的输出可以是样本流,该样本流可以被输出到诸如显示器212的渲染设备,以及被存储在参考图片存储器357中以供未来帧间预测使用。
某些已编码图片一旦被完全重建,就可以用作未来预测的参考图片。一旦已编码图片被完全重建并且已编码图片已经被识别为参考图片(例如,由解析器320识别),则当前参考图片可以成为参考图片存储器357的一部分,并且可以在开始重建随后的已编码图片之前重新分配新的当前图片存储器。
视频解码器210可以根据可以记录在标准(诸如ITU-T Rec.H.265)中的预定视频压缩技术来执行解码操作。已编码视频序列可以符合由所使用的视频压缩技术或标准规定的语法,在这种意义上,其遵守视频压缩技术或标准的语法,如在视频压缩技术文档或标准中以及特别在其中的简档文档中规定的。而且,为了符合某些视频压缩技术或标准,已编码视频序列的复杂度可以在由视频压缩技术或标准的级别所定义的范围内。在某些情况下,级别限制了最大图片尺寸、最大帧速率、最大重建采样速率(例如以每秒兆采样来测量)、最大参考图片尺寸等。在一些情况下,通过在已编码视频序列中发信号通知的HRD缓冲器管理的假设参考解码器(HRD)规范和元数据,可以进一步限制由级别设置的限制。
在实施例中,接收器310可连同已编码视频一起接收附加(冗余)数据。所述附加数据可以是已编码视频序列的一部分。所述附加数据可由解码器210用以对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可呈例如时间、空间或信噪比(signalnoise ratio,SNR)增强层、冗余切片、冗余图片、前向纠错码等形式。
图4图示了根据本公开实施例的与视频源201相关联的视频编码器203的示例功能框图。
视频编码器203可以包括例如作为源编码器430的编码器、编码引擎432、(本地)解码器433、参考图片存储器43、预测器435、发射器440、熵编码器445、控制器450和信道460。
编码器203可以从视频源201(不是编码器的一部分)接收视频样本,该视频源201可以捕获要由编码器203编码的一个或多个视频图像。
视频源201可提供将由编码器203编码的呈数字视频样本流形式的源视频序列,所述数字视频样本流可具有任何合适位深度(例如:8位、10位、12位……)、任何色彩空间(例如BT.601Y CrCB、RGB……)和任何合适取样结构(例如Y CrCb4:2:0、Y CrCb 4:4:4)。在媒体服务系统中,视频源201可以是存储先前已准备的视频的存储装置。在视频会议系统中,视频源201可以是采集本地图像信息作为视频序列的相机。可将视频数据提供为多个单独的图片,当按顺序观看时,这些图片被赋予运动。图片自身可构建为空间像素阵列,其中取决于所用的取样结构、色彩空间等,每个像素可包括一个或多个样本。所属领域的技术人员可以很容易理解像素与样本之间的关系。下文侧重于描述样本。
根据实施例,编码器203可以实时地或在应用所需的任何其它时间约束下对源视频序列的图片进行编码并且将该源视频序列的图片压缩为已编码视频序列443。施行适当的编码速度是控制器450的一个功能。控制器450还可以控制如下所描述的其它功能单元,并且可以在功能上耦合到这些单元。为了清楚起见,没有描绘耦合。由控制器450设置的参数可以包括与速率控制相关的参数(图片跳跃、量化器、速率失真优化技术的λ值……)、图片尺寸、图片群组(GOP)布局、最大运动矢量搜索范围等。本领域技术人员可以容易地识别控制器450的其它功能,因为它们可能涉及针对特定系统设计而优化的视频编码器203。
一些视频编码器以本领域技术人员容易认识到的“编码环路”来操作。作为过于简单化的描述,编码环路可以由源编码器430的编码部分(负责基于要编码的输入图片和一个或多个参考图片创建符号),以及嵌入在编码器203中的(本地)解码器433组成,该(本地)解码器433重建符号以创建样本数据,当符号和已编码视频码流之间的压缩在某些视频压缩技术中是无损的时,(远程)解码器也将创建该样本数据。该重建样本流可以被输入到参考图片存储器434。由于符号流的解码导致与解码器位置(本地或远程)无关的比特精确结果,所以参考图片存储器内容在本地编码器和远程编码器之间也是比特精确的。换句话说,当在解码期间使用预测时,编码器的预测部分将与解码器将“看到”的样本值完全相同的样本值“看到”为参考图片样本。参考图片同步性(以及如果不能维持同步性,例如由于信道错误而导致的漂移)的基本原则是本领域技术人员已知的。
“本地”解码器433的操作可以与上面已经结合图3详细描述的“远程”解码器210的操作相同。然而,由于符号是可用的并且熵编码器445和解析器320将符号编码/解码为已编码视频序列可以是无损的,所以解码器210的熵解码部分,包括信道312、接收器310、缓冲存储器315和解析器320可以不完全在本地解码器433中实施。
在这一点上可以观察到,除了存在于解码器中的解析/熵解码之外,任何解码器技术可能需要以基本上相同的功能形式存在于对应的编码器中。为此,所公开的主题集中于解码器操作。编码器技术的描述可以缩写为它们可以是全面描述的解码器技术的逆。下面仅在某些区域中需要和提供更详细的描述。
作为其操作的一部分,源编码器430可以执行运动补偿预测编码,该运动补偿预测编码参考来自视频序列的被指定为“参考帧”的一个或多个先前编码帧来预测性地对输入帧进行编码。以此方式,编码引擎432对输入帧的像素块和可被选择作为对输入帧的一个或多个预测参考的一个或多个参考帧的像素块之间的差进行编码。
本地解码器433可以基于由源编码器430创建的符号来对可以被指定为参考帧的帧的已编码视频数据进行解码。编码引擎432的操作可以有利地是有损过程。当可以在视频解码器(图4中未示出)处对已编码视频数据进行解码时,重建的视频序列通常可以是具有一些错误的源视频序列的复制品。本地解码器433复制可以由视频解码器对参考帧执行的解码过程,并且可以使重建参考帧存储在参考图片存储器434中。以此方式,编码器203可以本地存储重建参考帧的副本,该副本具有与将由远端视频解码器获得的重建参考帧相同的内容(不存在传输错误)。
预测器435可针对编码引擎432执行预测搜索。即,对于将要编码的新帧,预测器435可在参考图片存储器434中搜索可作为所述新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器435可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,根据预测器435获得的搜索结果,可确定输入图片可具有从参考图片存储器434中存储的多个参考图片取得的预测参考。
控制器450可管理源编码器430的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
所有上述功能单元的输出可以在熵编码器445中进行熵编码。熵编码器根据本领域技术人员已知的技术,例如霍夫曼编码、可变长度编码、算术编码等,通过无损压缩符号,将由各种功能单元生成的符号转换成已编码视频序列。
发射器440可以缓冲由熵编码器445创建的一个或多个已编码视频序列,以使其准备经由通信信道460传输,该通信信道460可以是到将存储已编码视频数据的存储设备的硬件/软件链路。发射器440可以将来自源编码器430的已编码视频数据与要传输的其它数据,例如已编码音频数据和/或辅助数据流(源未示出)合并。
控制器450可以管理编码器203的操作。在编码期间,控制器450可以向每个已编码图片分配特定的已编码图片类型,这可能影响可以应用于相应图片的编码技术。例如,通常可以将图片分配为帧内图片(I图片)、预测图片(P图片)或双向预测图片(B图片)。
帧内图片(I图片),其可以是不将序列中的任何其它帧用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(Independent Decoder Refresh,“IDR”)图片。所属领域的技术人员了解I图片的变体及其相应的应用和特征。
预测性图片(P图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
双向预测性图片(B图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联元数据以用于重建单个块。
源图片通常可在空间上细分成多个样本块(例如,4×4、8×8、4×8或16×16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测编码,根据应用于块的相应图片的编码分配来确定所述其它块。举例来说,I图片的块可进行非预测编码,或所述块可参考同一图片的已经编码的块来进行预测编码(空间预测或帧内预测)。P图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时域预测进行非预测编码。B图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时域预测进行非预测编码。
视频编码器203可根据例如ITU-T H.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器203可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所用视频编码技术或标准指定的语法。
在实施例中,传输器440可在传输已编码的视频时传输附加数据。源编码器430可将此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/SNR增强层、冗余图片和切片等其它形式的冗余数据、SEI(Supplementary Enhancement Information)消息、VUI(Visual Usability Information)参数集片段等。
[在VP9和AV1中的块分区]
如前所述,AV1是为因特网上的视频传输设计的开放视频编码格式,该开放视频编码格式是作为VP9的后继者开发的。参考图5A,VP9使用从64×64级开始向下到4×4级的4路分区树,对于8×8及以下的块(如图5A的上半部分所示)具有一些附加限制。被指定为R的分区可以被称为递归的,因为相同的分区树可以以较低的比例重复,直到分区达到最低的4×4级。
参考图5B,AV1不仅将分区树扩展为10路结构,而且将最大尺寸(在VP9/AV1用语中称为超级块)增加到从128×128开始。这可以包括VP9中不存在的4:1/1:4矩形分区。没有一个矩形分区可以被进一步细分。另外,在2×2色度帧间预测现在在某些情况下变得可能的意义上,AV1为使用8×8级以下的分区增加了更多的灵活性。
[在HEVC中的块分区]
在HEVC中,可以通过使用表示为编码树的四叉树(QT,quad-tree)结构将编码树单元(CTU,coding tree unit)分割成编码单元(CU,coding unit)以适应各种局部特性。可以在CU级作出是否使用帧间(时间)或帧内(空间)预测来编码图片区的决策。可以根据PU分割类型将每个CU进一步分割成一个、两个或四个预测单元(PU,prediction unit)。在一个PU内,可以应用相同的预测过程,并且在PU的基础上可以将相关信息传输到解码器。在通过应用基于PU分割类型的预测过程来获得残差块之后,可以根据另一QT结构(如用于CU的编码树)将CU分区成变换单元(TU,transform unit)。HEVC结构的关键特征中的一个是其具有包括CU、PU和TU的多个分区概念。在HEVC中,CU或TU可仅为正方形形状,而PU可为用于帧间预测块的正方形或矩形形状。在HEVC中,可以将一个编码块进一步分割成四个正方形子块,并且对每个子块(即TU)执行变换。每个TU可以被进一步递归地分割(使用QT分割)成更小的TU,这被称为残差四叉树(RQT,Residual Quad-Tree)。
在图片边界处,HEVC采用隐式四叉树分割,使得块将保持四叉树分割直到尺寸适合该图片边界。
[在VVC中的块分区]
1.使用四叉树(QT)加二叉树(BT)的块分区结构
QTBT块结构去除多个分区类型的概念。也就是说,QTBT块结构去除了CU、PU和TU概念的分离,并且支持CU分区形状的更多灵活性。在QTBT块结构中,CU可以具有正方形或矩形形状。参考图6A至图6B,编码树单元(CTU,coding tree unit)首先被四叉树结构分区。四叉树叶节点进一步由二叉树结构分区。在BT分割中存在两种分割类型(对称水平分割和对称垂直分割)。BT叶节点可以被称为CU,并且该片段被用于预测和变换处理而无需任何进一步的分区。这意味着CU、PU和TU在QTBT编码块结构中具有相同的块尺寸。在联合探索模型(JEM,joint exploration model)中,CU可以由不同颜色分量的编码块(CB,coding block)组成。例如,在4:2:0色度格式的预测(P)和二进制(B)条带的情况下,一个CU可以含有一个亮度CB和两个色度CB。CU还可以包括单个分量的CB或由单个分量的CB组成。例如,在I条带的情况下,一个CU可以仅含有一个亮度CB或恰好两个色度CB。
可以为QTBT分区方案定义以下参数:
-(a)CTU尺寸:四叉树的根节点尺寸,其可以是与HEVC中相同的概念。
-(b)MinQTSize:允许的最小四叉树叶节点尺寸。
-(c)MaxBTSize:允许的最大二叉树根节点尺寸。
-(d)MaxBTDepth:允许的最大二叉树深度。
-(e)MinBTSize:允许的最小二叉树叶节点尺寸。
在QTBT分区结构的一个示例中,可以将CTU尺寸设置为具有两个对应的64×64色度样本块的128×128亮度样本,可以将MinQTSize设置为16×16,可以将MaxBTSize设置为64×64,可以将MinBTSize(针对宽度和高度两者)设置为4×4,并且可以将MaxBTDepth设置为4。首先可以将四叉树分区应用于CTU以生成QT叶节点。QT叶节点可以具有从16×16(即,MinQTSize)到128×128(即,CTU尺寸)的尺寸。如果叶QT节点128×128,则该节点不会被二叉树进一步分割,因为该尺寸超过MaxBTSize(即,64×64)。否则,叶QT节点可能不被二叉树进一步分区。因此,QT叶节点也是BT的根节点,并且它具有BT深度为0。当BT深度达到MaxBTDepth(即,4)时,可以不考虑进一步的分割。当BT节点具有等于MinBTSize(即,4)的宽度时,可以不考虑进一步的水平分割。类似地,当BT节点具有等于MinBTSize的高度时,可以不考虑进一步的垂直分割。可以通过预测和变换处理来进一步处理BT的叶节点,而无需任何进一步的分区。例如,在JEM中,最大CTU尺寸可以是256×256亮度样本。
图6A图示了通过使用QTBT的块分区的示例,并且图6B图示了对应的树表示。实线指示QT分割,并且虚线指示BT分割。在BT的每个分割(例如,非叶)节点中,可以发信号通知一个标志以指示使用哪种分割类型(例如,水平或垂直),其中,0指示水平分割并且1指示垂直分割。对于QT分割,可能不需要指示分割类型,因为QT分割可能总是水平地和垂直地分割块以产生具有相等尺寸的4个子块。
QTBT方案可以支持亮度和色度的灵活性,以具有单独的QTBT结构。目前,对于P和B条带,一个CTU中的亮度和色度CTB共享相同的QTBT结构。然而,对于I条带,通过QTBT结构将亮度CTB分区成CU,并且通过另一QTBT结构将色度CTB分区成色度CU。这意味着,I条带中的CU由亮度分量的编码块或两个色度分量的编码块组成,并且P或B条带中的CU由所有三个颜色分量的编码块组成。
在HEVC中,用于小块的帧间预测被限制以减少运动补偿的存储器访问,使得对于4×8和8×4块不支持双向预测,并且对于4×4块不支持帧间预测。在JEM-7.0中实施的QTBT中,这些限制被去除。
2.使用三叉树(TT,ternary tree)的块分区结构
在VVC中,包括多类型树(MTT,multi-type-tree)结构,该结构进一步在QTBT的顶部添加水平和垂直中心侧三叉树,如图7A至7B所示。图7A图示了垂直中心侧三叉树分区,并且图7B图示了水平中心侧三叉树分区。
三叉树分区的关键益处包括但不限于:(a)提供四叉树和二叉树分区的补码,也就是说,三叉树分区能够捕获位于块中心的对象,而四叉树和二叉树总是沿块中心分割;以及(b)所提出的三叉树的分区的宽度和高度可以总是2的幂,因此不需要附加变换。
二级树的设计主要是为了降低复杂度。理论上,遍历树的复杂度为TD,其中,T表示分割类型的数量,并且D为树的深度。
[具有运动矢量差的合并模式(MMVD,Merge mode with motion vectordifference)]
在合并模式中,将隐式地导出的运动信息,直接用于当前CU的预测样本生成。在VVC中引入了具有运动矢量差的合并模式(MMVD)。在发送跳过标志和合并标志之后立即发信号通知MMVD标志以指定MMVD模式是否用于CU。
在MMVD中,在选择合并候选之后,可以通过发信号通知的运动矢量差(MVD,motionvector difference)信息来进一步修正该合并候选。MVD信息可以包括合并候选标志、指定运动幅度的索引,以及用于指示运动方向的索引。在MMVD模式中,选择合并列表中的前两个候选中的一个用作运动矢量(MV,motion vector)基础。可以发信号通知合并候选标志以指定使用前两个候选中的哪一个。
可以使用距离索引,并且该距离索引可以指定运动幅度信息并且指示从起始点开始的预定义偏移。图8图示了根据一些实施例的两个参考帧的MMVD搜索点。如图8所示,可以将偏移添加到起始MV的水平分量或垂直分量。距离索引和预定义偏移之间的关系在下表1中指定。
表1:距离索引和预定义偏移的关系
可以使用方向索引,并且方向索引可以表示MVD相对于起始点的方向。方向索引可以表示四个方向中的一个,如下表2所示。MVD符号的含义可以根据起始MV的信息而变化。当起始MV是单向预测MV或双向预测MV,其中两个列表均指向当前图片的相同侧(例如,两个参考的图片顺序计数(POC,picture order counts)均大于当前图片的POC,或者均小于当前图片的POC)时,表2中的符号指定添加到起始MV的MV偏移的符号。当起始MV是双向预测MV时,其中两个MV指向当前图片的不同侧(例如,一个参考的POC大于当前图片的POC,并且另一参考的POC小于当前图片的POC),并且列表0(L0)中的POC的差大于列表1(L1)中的POC的差,表2中的符号指定添加到起始MV的L0 MV分量的MV偏移的符号,并且L1 MV的符号具有相反的值。否则,如果L1中的POC的差大于L0,则表2中的符号指定添加到起始MV的L1 MV分量的MV偏移的符号,并且L0 MV的符号具有相反的值。
可以根据每个方向上的POC的差来缩放MVD。如果两个列表中的POC的差相同,则不需要缩放。否则,如果L0中的POC的差大于L1中的POC的差,则缩放L1的MVD。如果L1的POC的差大于L0,则以相同的方式缩放L0的MVD。如果起始MV是单向预测的,则可以将MVD添加到可用MV。
表2:由方向索引指定的MV偏移的符号
方向IDX 00 01 10 11
x轴 + - 不适用 不适用
y轴 不适用 不适用 + -
[对称MVD编码]
在VVC中,除了正常的单向预测和双向预测模式MVD信令之外,还可以应用用于双向MVD信令的对称MVD模式。在对称MVD模式中,可以导出包括L0和L1的参考图片索引以及L1的MVD的运动信息,而不明确地发信号通知。
对称MVD模式的解码过程可以如下:
在条带级中,变量BiDirPredFlag、RefIdxSymL0和RefIdxSymL1可以如下导出:如果mvd_l1_zero_flag为1,则BiDirPredFlag被设置为等于0。否则,如果L0中的最近参考图片和L1中的最近参考图片形成前后参考图片对(forward and backward pair ofreference pictures)或后前参考图片对(backward and forward pair of referencepictures),则BiDirPredFlag被设置为1,并且L0和L1参考图片都是短期参考图片。否则,BiDirPredFlag被设置为0。
在CU级处,如果CU经双向预测编码并且BiDirPredFlag等于1,则可以明确地发信号通知指示是否使用对称模式的对称模式标志。当对称模式标志为真时,可以仅明确地发信号通知mvp_l0_flag、mvp_l1_flag和MVD0。L0和L1的参考索引可以分别被设置为等于参考图片对。MVD1可以被设置为等于(-MVD0)。
[在CWG-B018中的帧间模式编码]
在AV1中,对于帧间帧中的每个已编码块,如果当前块的模式不是跳过模式而是帧间编码模式,则可以发信号通知另一标志以指示将单个参考模式还是复合参考模式用于当前块。预测块可以由单个参考模式中的一个运动矢量生成。在复合参考模式中,可以通过对从两个运动矢量导出的两个预测块进行加权平均来生成预测块。
对于单个参考情况,可以发信号通知以下模式:
(a)NEARMV–使用由动态参考列表(DRL)索引指示的列表中的运动矢量预测值(MVP,motion vector predictor)中的一个。
(b)NEWMV–使用由DRL索引发信号通知的列表中的MVP中的一个作为参考,并且将增量应用于MVP。
(c)GLOBALMV–使用基于帧级全局运动参数的运动矢量。
对于复合参考情况,可以发信号通知以下模式:
(a)NEAR_NEARMV–使用由DRL索引发信号通知的列表中的MVP中的一个。
(b)NEAR_NEWMV–使用由DRL索引发信号通知的列表中的MVP中的一个作为参考,并且发送第二MV的增量MV。
(c)NEW_NEARMV–使用由DRL索引发信号通知的列表中的MVP中的一个作为参考,并且发送第一MV的增量MV。
(d)NEW_NEWMV–使用由DRL索引发信号通知的列表中的MVP中的一个作为参考,并且发送两个MV的增量MV。
(e)GLOBAL_GLOBALMV–基于其帧级全局运动参数,使用来自每个参考的MV。
[在AV1中的运动矢量差编码]
AV1允许1/8像素运动矢量精度(或准确度),并且以下语法可以用于发信号通知参考帧列表L0或L1中的运动矢量差。
根据实施例,语法元素mv_joint指示运动矢量差的哪些分量是非零的。0值可以指示沿水平或垂直方向没有非零MVD。1值可以指示仅沿水平方向存在非零MVD。值2可以指示仅沿垂直方向存在非零MVD。值3可以指示沿水平和垂直方向都存在非零MVD。
根据实施例,语法元素mv_sign指定运动矢量差是正还是负。
根据实施例,语法元素mv_class指定运动矢量差的类。如下表3所示,较高的类意味着运动矢量差具有较大的幅度。
表3:运动矢量差的幅度类
根据实施例,语法元素mv_bit指示每个MV类的运动矢量差和起始幅度之间的偏移的整数部分。
根据实施例,语法元素mv_fr指示运动矢量差的前两个分数位。
根据实施例,语法元素mv_hp指示运动矢量差的第三分数位。
[在CWG-B092中的自适应MVD分辨率]
对于NEW_NEARMV和NEAR_NEWMV模式,MVD的精度可以取决于MVD的相关联的类和幅度。
首先,仅当MVD幅度等于或小于一个像素时,可以允许分数MVD。
其次,当相关联的MV类的值等于或大于MV_CLASS_1时,可以仅允许一个MVD值,并且对于MV类1(MV_CLASS_1)、MV类2(MV_CLASS_2)、MV类3(MV_CLASS_3)、MV类4(MV_CLASS_4)或MV类5(MV_CLASS_5),每个MV类中的MVD值可以被导出为4、8、16、32、64。
每个MV类中允许的MVD值如下表4所示。
表4:每个MV幅度类中的自适应MVD
MV类 MVD的幅度
MV_CLASS_0 (0,1],{2}
MV_CLASS_1 {4}
MV_CLASS_2 {8}
MV_CLASS_3 {16}
MV_CLASS_4 {32}
MV_CLASS_5 {64}
MV_CLASS_6 {128}
MV_CLASS_7 {256}
MV_CLASS_8 {512}
MV_CLASS_9 {1024}
MV_CLASS_10 {2048}
在一些实施例中,如果使用NEW_NEARMV或NEAR_NEWMV模式对当前块进行编码,则可以使用一个上下文来发信号通知mv_joint或mv_class。如果未使用NEW_NEARMV或NEAR_NEWMV模式对当前块进行编码,则可以使用另一上下文来发信号通知mv_joint或mv_class。
[在CWG-B092中的联合MVD编码(JMVD,Joint MVD)]
可以应用命名为JOINT_NEWMV的新的帧间编码模式,来指示是否联合发信号通知两个参考列表的MVD。如果帧间预测模式等于JOINT_NEWMV模式,则联合发信号通知参考列表L0和L1的MVD。这样,仅一个MVD(命名为joint_mvd)可以被发信号通知并且传输到解码器,并且可以从joint_mvd导出参考列表L0和L1的增量MV。
NEAR_NEARMV、NEAR_NEWMV、NEW_NEARMV、NEW_NEWMV和GLOBAL_GLOBALMV模式可以与JOINT_NEWMV模式一起被发信号通知。可以不添加附加上下文。
当发信号通知JOINT_NEWMV模式并且两个参考帧和当前帧之间的POC距离不同时,可以基于该POC距离针对参考列表L0或参考列表L1来缩放MVD。具体而言,参考帧列表L0和当前帧之间的距离被标注为td0,并且参考帧列表L1和当前帧之间的距离被标注为td1。如果td0等于或大于td1,则可以将joint_mvd直接用于参考列表L0,并且可以基于以下等式1从joint_mvd导出用于参考列表L1的mvd。
否则,如果td1等于或大于td0,则joint_mvd可以直接用于参考列表L1,并且可以基于以下等式2从joint_mvd导出用于参考列表L0的mvd。
[用于CWG-C011中的自适应MVD分辨率的改进]
可以将称为AMVDMV的新的帧间编码模式添加到单个参考情况。当选择AMVDMV模式时,它可以指示AMVD被应用到信号MVD。
可以在JOINT_NEWMV模式下添加被命名为amvd_flag的一个标志,以指示AMVD是否应用于联合MVD编码模式。当将自适应MVD分辨率应用于联合MVD编码模式(称为联合AMVD编码)时,可以联合发信号通知两个参考帧的MVD,并且MVD的精度可以由MVD幅度隐式地确定。否则,联合发信号通知两个(或多于两个)参考帧的MVD,并且应用传统的MVD编码。
[在CWG-C012和CWG-C020中的自适应运动矢量分辨率(AMVR,Adaptive motionvector resolution)]
AMVR最初在CWG-C012中提出,其中总共支持七个MV精度(即,8、4、2、1、1/2、1/4、1/8)。对于每个预测块,AVM编码器搜索所有所支持的精度值并将最佳精度发信号通知给解码器。
为了减少编码器运行时间,可以支持两个精度集合。每个精度集合可以含有四个预定义的精度。可以基于帧的最大精度值,在帧级自适应地选择精度集合。类似于AV1,可以在帧头中发信号通知最大精度。下表5总结了基于帧级最大精度的所支持的精度值。
表5:两个集合中所支持的MV精度
帧级最大精度 所支持的MV精度
1/8 1/8、1/2、1、4
1/4 1/4、1、4、8
在AVM软件(类似于AV1)中,可以有帧级标志来指示帧的MV是否含有子像素精度。仅当cur_frame_force_integer_mv标志的值为0时,才可以启用AMVR。在AMVR中,如果块的精度低于最大精度,则可以不发信号通知运动模型和插值滤波器。如果块的精度低于最大精度,则运动模式可以被推断为平移运动,并且插值滤波器可以被推断为REGULAR插值滤波器。类似地,如果块的精度为4像素或8像素,则可以不发信号通知帧间-帧内模式,并且可以将其推断为0。
[在AV1中的翘曲运动模式]
运动补偿通常假定参考块和目标块之间的平移运动模型。然而,翘曲运动利用仿射模型。
仿射运动模型可以由以下等式3表示:
其中,[x,y]为原始像素的坐标,并且[x',y']为参考块的翘曲坐标。从等式3可以看出,可以使用多达六个参数来指定翘曲运动:a3和b3指示平移MV;a1和b2指示沿该MV的缩放;并且a2和b1指示旋转。
1.全局翘曲运动补偿
在全局翘曲运动补偿中,可以为每个帧间参考帧发信号通知全局运动信息,该全局运动信息包括全局运动类型和若干运动参数。全局运动类型和相关联的参数数量列于下表6中。
表6:具有相关联的参数数量的全局运动类型
全局运动类型 参数数量
识别(零运动) 0
平移 2
旋转 4
放大 4
一般仿射 6
在发信号通知参考帧索引之后,如果选择全局运动,则全局运动类型和与给定参考帧相关联的参数可以用于当前编码块。
2.局部翘曲运动补偿
对于帧间编码块,当满足以下条件时,可以允许局部翘曲运动:(1)当前块使用单个参考预测,(2)编码块的宽度或高度大于或等于8,以及(3)邻近的相邻块中的至少一个使用与当前块相同的参考帧。
如果局部翘曲运动被用于当前块,则仿射模型参数可以基于当前块及其邻近的相邻块的MV并通过参考投影和建模投影之间的差的均方最小化来估计。为了估计局部翘曲运动的参数,如果相邻块使用与当前块相同的参考帧,则可以获得相邻块中的中心样本及其参考帧中的对应样本的投影样本对。随后,可以通过在一个或两个维度上将中心位置移动四分之一样本,来创建三个额外的样本。这些额外的样本也可以被认为是投影样本对,以确保模型参数估计过程的稳定性。
用于导出运动参数的相邻块的MV可以被称为运动样本。可以从使用与当前块相同的参考帧的相邻块中选择运动样本。翘曲运动预测模式可以仅针对使用单个参考帧的块而启用。例如,参考图9,相邻块B0、B1和B2的MV分别被称为MV0、MV1和MV2。图9图示了根据一些实施例的用于使用局部翘曲运动预测来导出块的模型参数的示例运动样本。可以使用具有参考帧Ref0的单向预测来预测当前块600。可以使用具有参考帧Ref0和Ref1的复合预测来预测相邻块B0。可以使用具有参考帧Ref0的单向预测来预测相邻块B1。可以使用具有参考帧Ref0和Ref2的复合预测来预测相邻块B2。相邻块B0的运动矢量MV0Ref0、相邻块B1的运动矢量MV1Ref0和相邻块B2的运动矢量MV2Ref0可以用作用于导出当前块600的仿射运动参数的运动样本。
3.在AV1和AVM中的局部翘曲运动的样本收集过程
在局部翘曲运动中,为了使用回归/最小二乘误差方法来计算翘曲模型,可以将相邻块的样本和运动矢量收集到堆栈中。在AV1和AVM中,可以收集参考图片中一组样本位置及由其MV指向的其参考位置。多达8对位置可以存储在堆栈中用于回归/最小二乘误差翘曲模型计算。
图10是翘曲样本收集扫描顺序的示例的示意图。如图10所示,可以仅扫描空间相邻块。当相邻块具有与当前块610相同的参考图片时(例如,如果相邻块是复合的,则参考图片中的一个和当前块的参考图片相同),可以收集相邻块的中心位置和由相邻块的MV所指向的相邻块的参考块的中心位置。参考图10,扫描顺序可以如下定义:(1)扫描一个或多个顶行相邻块611;(2)扫描一个或多个左列相邻块612;(3)扫描左上相邻块613;(4)扫描右上相邻块614。
[来自CWG-C050的局部翘曲扩展模式和局部翘曲增量模式]
除了平移运动之外,AVM还支持翘曲运动补偿。支持两种类型的翘曲运动模型:全局翘曲模型和局部翘曲模型。全局翘曲模型与每个参考帧相关联,其中四个非平移参数中的每一个具有12位精度并且平移运动矢量以15位精度编码。编码块可以选择直接使用它(假设参考帧索引)。全局翘曲模型捕获帧级缩放和旋转,并且因此主要集中在整个帧上的刚体运动(rigid motion)。
另外,还支持编码块级的局部翘曲模型。在局部翘曲模式(也称为WARPED_CAUSAL)中,当前块的翘曲参数可以通过使用最小二乘法将模型拟合到附近的运动矢量来导出。
1.翘曲扩展模式
一种新的翘曲运动模式被称为WARP_EXTEND。在WARP_EXTEND模式中,相邻块的运动平滑地扩展到当前块中,但具有修改翘曲参数的某些能力。这允许表示复杂的翘曲运动,散布在多个块上,同时最小化块伪像。
为了实现这一点,应用于NEWMV块的WARP_EXTEND模式基于两个约束构建新的翘曲模型:(1)由新的翘曲模型生成的每像素运动矢量应与相邻块中的每像素运动矢量连续,以及(2)当前块中心的像素应具有与整个块的发信号通知的运动矢量相匹配的每像素运动矢量。
例如,参考图11,如果当前块620左边的相邻块622被翘曲,则可以使用适合运动矢量的翘曲模型。图11示出了根据一些实施例的使用翘曲扩展模式的块中的运动矢量。
用于构建新的翘曲模型的上述两个约束可以暗指涉及相邻块和当前块的翘曲参数的某些等式。然后可以求解这些等式以计算当前块的翘曲模型。
例如,如果(A,...,F)表示邻居的翘曲模型并且(A',...,F')表示新的翘曲模型,则在沿公共边缘的每个点处,第一约束如下等式4所示:
沿边缘的点具有不同的y值,但它们都具有相同的x值。这意味着y的系数在两侧必须相同(即,B'=B并且D'=D)。同时,x系数提供了与其它系数相关的等式,如下面的等式5至等式8所示:
B′=B (等式5)
D′=D (等式6)
A′x+E′=Ax+E (等式7)
C′x+F′=Cx+F (等式8)
其中,在等式7和等式8中,x是像素的垂直列的水平位置,因此实际上是常数。
第二约束指定块中心的运动矢量必须等于使用NEWMV机制发信号通知的运动矢量。这提供了另外两个等式,得到具有唯一解的六个变量的六个等式组。
可以在软件和硬件中有效地求解这些等式。可以使用基本加法、减法、乘法和2的幂除法来求解该解。这样,该模式比基于最小二乘的局部翘曲模式复杂得多。
根据实施例,可以存在可以从其扩展的多个相邻块。在这种情况下,有用的是具有某种方式来选择从哪个块扩展。这个问题类似于在运动矢量预测中遇到的问题。具体地,可能存在来自附近块的几个可能的运动矢量,并且应选择一个用作NEWMV编码的基础。
针对上述问题的一种解决方案可以包括扩展处理WARP_EXTEND的需要。这可以通过跟踪每个运动矢量预测的源来完成。然后,WARP_EXTEND可以仅在所选择的运动矢量预测取自直接相邻块的情况下被启用。然后,该块可以在算法的其余部分中用作单个“相邻块”。
有时邻居的翘曲模型将照原样非常好,而不需要任何进一步的修改。为了使这种情况的编码更便宜,WARP_EXTEND可以用于NEARMV块。邻居选择可能与NEWMV相同,除了NEWMV中的选择要求邻居是翘曲的,而不仅仅是平移的。但是如果这为真,并且选择WARP_EXTEND,则可以将邻居的翘曲模型参数复制到当前块。
2.翘曲增量模式
在一些实施例中,可以提供称为WARP_DELTA的运动模式。在此模式中,块的翘曲模型被编码为来自预测翘曲模型的增量,类似于运动矢量如何被编码为来自预测运动矢量的增量。预测可以源自全局运动模型(如果有的话)或相邻块。
为了避免有多种方式对相同的预测翘曲模型进行编码,可以应用以下限制:如果模式是NEARMV或NEWMV,则可以使用与针对WARP_EXTEND所描述的相同的邻居选择逻辑。如果这导致相邻块翘曲,则该块的模型(不应用WARP_EXTEND逻辑的其余部分)可以用作预测。否则,全局翘曲模型可以用作基础。
然后,可以编码非平移参数中的每一个的增量。最后,可以调整模型的平移部分,使得块中心处的每像素运动矢量与块的总运动矢量相匹配。
由于该工具(即,WARP_DELTA)涉及对每翘曲参数的增量进行显式编码,因此该工具使用比其它翘曲模式更多的比特来进行编码。这样,对于小于16×16的块,可以禁用WARP_DELTA。然而,解码逻辑极其简单,并且它可以表示其它翘曲模式不能表示的更复杂的运动。
[具有运动矢量差的合并(MMVD,Merge with Motion Vector Difference)]
具有运动矢量差的合并(MMVD)可以用于跳过或具有运动矢量表达方法的合并模式。图12图示了使用两个参考帧634和636(例如,在图8中所示的两个参考帧)的包括当前块632的当前帧630的MMVD搜索过程。MMVD在VVC中重新使用合并候选。在合并候选中,可以选择候选,并且通过运动矢量表达方法进一步扩展。MMVD提供了具有简化信令的新的运动矢量表达。该表达方法可以包括起始点、运动幅度和运动方向。MMVD技术可以使用VVC的合并候选列表。但是MMVD的扩展可以仅考虑默认合并类型(MRG_TYPE_DEFAULT_N)的候选。基础候选索引(IDX,base candidate index)可以定义起始点。基础候选IDX可以指示列表中的候选中的最佳候选,例如如下表7所示:
表7:基础候选IDX
如果基本候选的数量等于1,则可以不发信号通知基础候选IDX。
可以使用表示运动幅度信息的距离索引。距离索引可以指示距起始点信息的预定义距离。预定义距离可以如下表8所示:
表8:距离IDX
可以使用表示MVD相对于起始点的方向的方向索引。方向索引可以表示如下表9所示的四个方向。
表9:方向IDX
方向IDX 00 01 10 11
x轴 + - 不适用 不适用
y轴 不适用 不适用 + -
在发送跳过标志和合并标志之后可以立即发信号通知MMVD标志。如果跳过标志和合并标志为真,则可以解析MMVD标志。如果MMVD标志等于1,则可以解析MMVD语法。但是,如果不是1,则可以解析AFFINE标志。如果AFFINE标志等于1,则可以使用AFFINE模式。但是,如果不是1,则可以为VTM的跳过/合并模式解析跳过/合并索引。
[相关技术的问题]
在现有技术中,仅使用一组样本来计算翘曲模型,并且仅考虑空间相邻块。这是次优的,因为从不同组收集的样本可以产生比现有技术的组更好的不同翘曲模型。
[示例实施例]
本公开的实施例可以单独使用或以任何顺序组合使用。此外,本公开的实施例中的每一个(例如,方法、编码器和解码器)可以由处理电路(例如,一个或多个处理器或一个或多个集成电路)来实施。在一个示例中,一个或多个处理器执行存储在非易失性计算机可读介质中的程序。在下文中,术语“块”可以被理解为预测块、编码块或编码单元(CU)。
根据实施例,时间运动信息可以用于导出更好的翘曲模型。
根据实施例,时间运动矢量(MV)可以在翘曲运动样本收集期间用作空间MV的添加或替换。
根据一个或多个实施例,可以在当前块的空间相邻块的位置处使用时间MV,该空间相邻块尚未被构建。在这种情况下,本公开的实施例可以假设相邻块尺寸是时间MV存储网格(例如,8×8),以确定相邻块的中心位置及其由时间MV指向的参考位置。图13所示为可以使用时间MV的示例时间块位置T1至T5。参考图13,图示了当前块610、一个或多个顶行相邻块611、一个或多个左列相邻块612、左上相邻块613、右上相邻块614、左下相邻块615以及时间块位置T1至T5。根据实施例,时间块位置T1可以对应于右下相邻块,时间块位置T2可以对应于一个相邻块,该相邻块直接在右下相邻块上方并且在当前块610的右边,时间块位置T3可以对应一个相邻块,该相邻块直接在右下相邻块的左边并且在当前块610的底部,时间块位置T4可以对应于一个相邻块,该相邻块直接在右上相邻块614下方并且在当前块610的右边,并且时间块位置T5可以对应于一个相邻块,该相邻块直接在左下相邻块615的右边并且在当前块610的底部。根据实施例,时间相邻块的扫描顺序不是固定的。
根据一个或多个实施例,可以在已经重建空间相邻块的位置处,使用时间MV,但是该空间相邻块可能不具有有效MV(例如,使用帧内模式对该块进行编码)。参考图13,此类示例位置可以对应于一个或多个空间相邻块,诸如一个或多个顶行相邻块611、左列相邻块612、左上相邻块613、右上相邻块614和左下相邻块615中的一个或多个。在这种情况下,本公开的实施例可以使用空间相邻块的实际块尺寸,或时间MV存储网格的尺寸(例如,8×8)来计算当前图片中的当前块610的相邻块中的中心位置,以及由时间MV所指向的其参考位置。根据实施例,时间相邻块的扫描顺序可以不是固定的。
根据一个或多个实施例,在与当前块的预定义相对位置加上运动偏移(或位移)处使用时间MV,所述运动偏移(或位移)是发信号通知的或从由相邻块所使用的MV导出的。
根据实施例,在回归/最小二乘误差方法中使用可用相邻块的子集来计算翘曲模型。
根据一个或多个实施例,参考图14,在翘曲模型计算中仅使用当前块610的一个或多个顶行相邻块611中的位置。例如,可以在回归/最小二乘误差方法中使用位置(或此类位置的运动矢量)来计算翘曲模型。
根据一个或多个实施例,参考图14,在翘曲模型计算中仅使用当前块610的一个或多个顶行相邻块611中的位置和右上相邻块614的位置。例如,可以在回归/最小二乘误差方法中使用位置(或此类位置的运动矢量)来计算翘曲模型。
根据一个或多个实施例,参考图14,在翘曲模型计算中仅使用当前块610的一个或多个顶行相邻块611中的位置、右上相邻块614的位置和左上相邻块613的位置。例如,可以在回归/最小二乘误差方法中使用位置(或此类位置的运动矢量)来计算翘曲模型。
根据实施例,围绕当前块的一个或多个角的空间/时间相邻块用于收集翘曲模型计算中所使用的样本和MV。
根据一个或多个实施例,参考图15,使用围绕当前块610的角P1、P2、P3和P4的空间相邻块S和时间相邻块T来计算翘曲模型。例如,此类块的样本/MV可以被收集并且用于翘曲模型计算。
根据一个或多个实施例,参考图16,使用围绕多个样本(例如,角P1、P2和P4的样本,或角P1、P3和P4的样本)的空间相邻块S和时间相邻块T来计算翘曲模型。例如,此类块的样本/MV可以被收集并且用于翘曲模型计算。
根据实施例,参考图16,空间相邻块S的中间块或时间相邻块T的中间块或这些块的子集用于翘曲模型计算。例如,此类块的样本/MV可以被收集并且用于翘曲模型计算。
根据实施例,在组列表中收集多组空间/时间相邻块。该组列表可以在编码器和解码器侧(例如,由编码器和解码器)构建,并且可以用于计算翘曲模型。列表容量(例如,组的最大数量)可以是预定义的,或者在高级语法中发信号通知。列表中的每个组可以用于单独计算不同的翘曲模型。可以在码流中发信号通知指示哪组用于计算最终用于构建(例如,当前块的编码或解码)的翘曲模型的索引。可以使用时间相邻块、围绕一个或多个角的空间/时间相邻块以及中间位置空间/时间相邻块来构建这些组。
根据一个或多个实施例,组列表可以是固定组列表。用于组列表的构建规则可以在编码器和解码器侧预定义。例如,组列表的第一组可以包括如图10所图示的AV1设计中的相邻块或由该AV1设计中的相邻块组成;组列表的第二组可以包括图15所图示的围绕角P1、P3、P4的空间相邻块S和时间相邻块T或由围绕角P1、P3、P4的空间相邻块S和时间相邻块T组成;组列表的第三组可以包括围绕角P2、P3、P4的空间相邻块S和时间相邻块T或由围绕角P2、P3、P4的空间相邻块S和时间相邻块T组成;组列表的第四组可以包括当前块的顶部相邻块(例如,图14中的一个或多个顶行相邻块611和右上相邻块614),可以在码流中发信号通知提供最佳翘曲模型的组的索引。如果所有组都不含任何用于计算翘曲模型的有效样本。可以不发信号通知索引以及翘曲运动模式指示器。例如,编码器可以基于确定这些组中没有一个组包含将用于计算翘曲模型的任何有效样本,而在码流中的不发信号通知索引和翘曲运动模式指示器,并且解码器可以基于未接收码流中的索引和翘曲运动模式指示器,而确定这些组中没有一个组含有将用于计算翘曲模型的任何有效样本。
根据一个或多个实施例,组列表可以是动态组列表。也就是说,在组列表的构建期间,如果这些组中的一个组不含用于计算翘曲模型的任何有效样本,则该组将不被插入到列表中。如果已经检查了所有预定义的组并且列表仍然短于组列表的组的最大数量,则可以将零填充到列表中。如果在检查所有预定义的组之前列表是满的(例如,列表尺寸等于组的最大数量),则终止列表构建。
根据一个或多个实施例,在组列表的构建期间,不插入与已经在组列表中的组相同或类似的所检查的组。例如,编码器和/或解码器可以将所检查的组与已经在组列表中的组的一个或多个进行相似性比较,并且基于满足预定相似性标准的比较结果,编码器和/或解码器可以不将所检查的组插入到组列表中。
根据一个或多个实施例,在组列表的构建期间,不插入具有与已经在组列表中的组中的元素相同或类似的元素的所检查的组。例如,组列表中的第一组具有两个当前图片位置(-1,-1)和(-1,-2),并且如果当前检查的组是用当前图片位置(-1,-2)和(-1,-1)构建的,则将不插入该组。例如,编码器和/或解码器可以将所检查的组的一个或多个元素(例如,图片位置)与已经在组列表中的组的一个或多个元素(例如,图片位置)进行相似性比较,并且基于比较结果满足预定相似性标准,编码器和/或解码器可以不将所检查的组插入到组列表中。
根据一个或多个实施例,除了上述组列表构建方法之外,还可以将来自相邻块(不限于MVP索引指向块)的扩展翘曲模型用作组列表中的候选。如果使用来自相邻块的扩展翘曲模型,则编码器和/或解码器可以确定跳过回归/最小二乘计算。相反,使用豁免投影(exemption projection)或简单地从相邻块复制翘曲模型。根据实施例,相邻块不限于邻近空间相邻块,并且也可以使用来自时间相邻块或非邻近空间块的翘曲模型。
根据实施例,在计算翘曲模型之前,可以细化所收集的相邻块(即,运动样本)的MV。在一个示例中,MV平滑滤波器可以应用于所收集的MV的水平和垂直分量。在一个示例中,可以发信号通知运动矢量差(例如,MMVD)以校正所收集的MV。也就是说,例如,解码器可以基于运动矢量差来校正所收集的MV,这可以由编码器在码流中发信号通知。
根据实施例,当多个运动样本的组(或集合)可用并且(例如,由编码器)发信号通知组索引的选择时,可以在编码器处发信号通知组索引之前,由解码器对运动样本的组进行重新排序,或在解码器处解析组索引之后由编码器重新排序。
根据一个或多个实施例,当在运动样本上应用所导出的翘曲模型时,基于回归误差来对组进行重新排序。
根据一个或多个实施例,基于从局部翘曲编码块导出多少个运动样本或基于使用发信号通知的MVD编码的相邻块导出多少个运动样本来对组进行重新排序。
根据实施例,可以提供至少一个处理器和存储计算机程序指令(即,计算机代码)的存储器。计算机程序指令在由至少一个处理器执行时可以实现编码器或解码器并且可执行本公开中所描述的任何数目的功能,包括由编码器或解码器执行的功能。
例如,参考图17,至少一个处理器可以实施编码器702或解码器704。计算机程序指令可以包括例如编码(或解码)代码710,该编码(或解码)代码710被配置为使至少一个处理器对根据本公开的实施例接收的至少一个图片进行编码(或解码)。编码(或解码)代码710可以包括例如运动矢量获得代码720、运动样本/翘曲模型获得代码730、翘曲运动补偿代码740、运动偏移代码750;列表构建代码760;选择代码770,以及修正代码780。虽然本文描述了使某些功能被执行的示例代码,但是应当理解,本公开的实施例可以包括用于执行本公开中描述的任何其它功能的其它代码。
根据本公开的实施例,运动矢量获得代码720可以被配置为使至少一个处理器获得指向邻近于当前块的邻近块(例如,空间和/或时间邻近块)中的位置的运动矢量。运动矢量可以包括至少一个时间运动矢量。
根据本公开的实施例,运动样本/翘曲模型获得代码730可以被配置为使至少一个处理器基于相邻块的运动矢量和/或翘曲模型来获得运动样本和/或翘曲模型。
根据本公开的实施例,翘曲运动补偿代码740可以被配置为使至少一个处理器例如通过使用翘曲模型和运动样本执行翘曲运动补偿,来对当前块进行解码。
根据本公开的实施例,运动偏移代码750可以被配置为使至少一个处理器将运动偏移应用于至少一个时间运动矢量。
根据本公开的实施例,列表构建代码760可以被配置为使至少一个处理器构建一个或多个列表(例如,候选列表)。该列表可以包括例如多个相邻块的组、相邻块的翘曲模型,和/或相邻块的多个运动矢量组(也称为运动样本)。
选择代码770可以被配置为使至少一个处理器根据本公开的实施例从列表中选择条目以用于(例如)当前块的预测。
根据本公开的实施例,修正代码780可以被配置为使至少一个处理器在基于经修正的运动矢量计算翘曲模型之前对所获得的运动矢量进行修正。
根据本公开的实施例,当提供编码器702时,计算机程序指令可以进一步包括(例如)发送代码790,该发送代码790可以被配置为使至少一个处理器将包括已编码的一个或多个图片的码流发送到解码器(例如,解码器704)。根据本公开的实施例,编码器702可以在码流中提供语法元素中的一个或多个,诸如本公开中所描述的语法元素。
本申请实施例的技术可以通过计算机可读指令实现为计算机软件,并且物理地存储在一个或多个计算机可读介质中。例如,图18示出了计算机系统900,其适于实现所公开主题的实施例。
所述计算机软件可通过任何合适的机器代码或计算机语言进行编码,通过汇编、编译、链接等机制创建包括指令的代码,所述指令可由计算机中央处理单元(CPU),图形处理单元(GPU)等直接执行或通过译码、微代码等方式执行。
所述指令可以在各种类型的计算机或其组件上执行,包括例如个人计算机、平板电脑、服务器、智能手机、游戏设备、物联网设备等。
图18所示的用于计算机系统900的组件本质上是示例性的,并不用于对实现本申请实施例的计算机软件的使用范围或功能进行任何限制。也不应将组件的配置解释为与计算机系统900的示例性实施例中所示的任一组件或其组合具有任何依赖性或要求。
计算机系统900可以包括某些人机界面输入设备。这种人机界面输入设备可以通过触觉输入(如:键盘输入、滑动、数据手套移动)、音频输入(如:声音、掌声)、视觉输入(如:手势)、嗅觉输入(未示出),对一个或多个人类用户的输入做出响应。所述人机界面设备还可用于捕获某些媒体,气与人类有意识的输入不必直接相关,如音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止影像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
人机界面输入设备可包括以下中的一个或多个(仅绘出其中一个):键盘901、鼠标902、触控板903、触摸屏910、数据手套、操纵杆905、麦克风906、扫描仪907和照相机908。
计算机系统900还可以包括某些人机界面输出设备。这种人机界面输出设备可以通过例如触觉输出、声音、光和嗅觉/味觉来刺激一个或多个人类用户的感觉。这样的人机界面输出设备可包括触觉输出设备(例如通过触摸屏910、数据手套或操纵杆905的触觉反馈,但也可以有不用作输入设备的触觉反馈设备)。例如这种设备可以是音频输出设备(例如,扬声器909、耳机(未示出))、视觉输出设备(例如,包括阴极射线管屏幕、液晶屏幕、等离子屏幕、有机发光二极管屏的屏幕910,其中每一个都具有或没有触摸屏输入功能、每一个都具有或没有触觉反馈功能——其中一些可通过诸如立体画面输出的手段输出二维视觉输出或三维以上的输出;虚拟现实眼镜(未示出)、全息显示器和放烟箱(未示出))以及打印机(未示出)。
计算机系统900还可以包括人可访问的存储设备及其相关介质,如包括具有CD/DVD的高密度只读/可重写式光盘(CD/DVD ROM/RW)920或类似介质921的光学介质、拇指驱动器922、可移动硬盘驱动器或固体状态驱动器923,诸如磁带和软盘(未示出)的传统磁介质,诸如安全软件保护器(未示出)等的基于ROM/ASIC/PLD的专用设备,等等。
本领域技术人员还应当理解,结合所公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其它瞬时信号。
计算机系统900还可以包括通往一个或多个通信网络的接口。所述网络可以是无线的、有线的、光学的。网络还可为局域网、广域网、城域网、车载网络和工业网络、实时网络、延迟容忍网络等等。网络的示例可以包括以太网、无线局域网、蜂窝网络(GSM、3G、4G、5G、LTE等)等局域网、电视有线或无线广域数字网络(包括有线电视、卫星电视、和地面广播电视)、车载和工业网络(包括CANBus)等等。某些网络通常需要外部网络接口适配器,用于连接到某些通用数据端口或外围总线949(例如,计算机系统900的USB端口);其它系统通常通过连接到如下所述的系统总线集成到计算机系统900的核心(例如,以太网接口集成到PC计算机系统或蜂窝网络接口集成到智能电话计算机系统)。通过使用这些网络中的任何一个,计算机系统900可以与其它实体进行通信。所述通信可以是单向的,仅用于接收(例如,无线电视),单向的仅用于发送(例如CAN总线到某些CAN总线设备),或双向的,例如通过局域或广域数字网络到其它计算机系统。这些通信可以包括与云计算环境955的通信。上述的每个网络和网络接口可使用某些协议和协议栈。
上述的人机界面设备、人可访问的存储设备以及网络接口954可以连接到计算机系统900的核心940。
核心940可包括一个或多个中央处理单元(CPU)941、图形处理单元(GPU)942、以现场可编程门阵列(FPGA)943形式的专用可编程处理单元、用于特定任务的硬件加速器944等。这些设备以及只读存储器(ROM)945、随机存取存储器946、内部大容量存储器(例如内部非用户可存取硬盘驱动器、固态硬盘等)947等可通过系统总线948进行连接。在某些计算机系统中,可以以一个或多个物理插头的形式访问系统总线948,以便可通过额外的中央处理单元、图形处理单元等进行扩展。外围装置可直接附接到核心的系统总线948,或通过外围总线949进行连接。外围总线的体系结构包括外部控制器接口PCI、通用串行总线USB等。图形适配器950可以包括在核心940内。
CPU 941、GPU 942、FPGA 943和加速器944可以执行某些指令,这些指令组合起来可以构成上述计算机代码。该计算机代码可以存储在ROM 945或RAM 946中。过渡数据也可以存储在RAM 946中,而永久数据可以存储在例如内部大容量存储器947中。通过使用高速缓冲存储器可实现对任何存储器设备的快速存储和检索,高速缓冲存储器可与一个或多个CPU 941、GPU 942、大容量存储器947、ROM 945、RAM 946等紧密关联。
所述计算机可读介质上可具有计算机代码,用于执行各种计算机实现的操作。介质和计算机代码可以是为本申请的目的而特别设计和构造的,也可以是计算机软件领域的技术人员所熟知和可用的介质和代码。
作为实施例而非限制,具有体系结构900的计算机系统,特别是核心940,可以作为处理器(包括CPU、GPU、FPGA、加速器等)提供执行包含在一个或多个有形的计算机可读介质中的软件的功能。这种计算机可读介质可以是与上述的用户可访问的大容量存储器相关联的介质,以及具有非易失性的核心940的特定存储器,例如核心内部大容量存储器947或ROM945。实现本申请的各种实施例的软件可以存储在这种设备中并且由核心940执行。根据特定需要,计算机可读介质可包括一个或一个以上存储设备或芯片。该软件可以使得核心940特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所述的特定过程或特定过程的特定部分,包括定义存储在RAM 946中的数据结构以及根据软件定义的过程来修改这种数据结构。另外或作为替代,计算机系统可以提供逻辑硬连线或以其它方式包含在电路(例如,加速器944)中的功能,该电路可以代替软件或与软件一起运行以执行本文所述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包括逻辑,反之亦然。在适当的情况下,对计算机可读介质的引用可包括存储执行软件的电路(如集成电路(IC)),包含执行逻辑的电路,或两者兼备。本申请包括任何合适的硬件和软件组合。
虽然本申请已对多个示例性实施例进行了描述,但实施例的各种变更、排列和各种等同替换均属于本申请的范围内。因此应理解,本领域技术人员能够设计多种系统和方法,所述系统和方法虽然未在本文中明确示出或描述,但其体现了本申请的原则,因此属于本申请的精神和范围之内。

Claims (20)

1.一种由解码器执行的方法,其特征在于,所述方法包括:
接收包括已编码图片的码流;
获得指向相邻块中的位置的多个运动矢量,所述相邻块邻近于所述已编码图片中的当前块,所述多个运动矢量包括至少一个时间运动矢量;
基于所述多个运动矢量,获得用于翘曲模型的运动样本;以及
通过使用所述翘曲模型和包括用于预测的所述至少一个时间运动矢量的所述运动样本来对所述当前块进行解码。
2.根据权利要求1所述的方法,其特征在于,所述至少一个时间运动矢量包括所述当前块的尚未由所述解码器构建的空间相邻块的位置处的时间运动矢量。
3.根据权利要求1所述的方法,其特征在于,所述至少一个时间运动矢量包括所述当前块的由所述解码器先前构建的空间相邻块的位置处的时间运动矢量。
4.根据权利要求1所述的方法,其特征在于,所述方法进一步包括将运动偏移应用于所述至少一个时间运动矢量。
5.根据权利要求1所述的方法,其特征在于,进一步包括使用关于所述多个运动矢量的回归/最小二乘误差方法,来获得所述翘曲模型,所述多个运动矢量包括所述至少一个时间运动矢量。
6.根据权利要求1所述的方法,其特征在于,所述多个运动矢量包括所述至少一个时间运动矢量和至少一个空间运动矢量。
7.根据权利要求1所述的方法,其特征在于,所述多个运动矢量包括所述至少一个时间运动矢量并且不包括空间运动矢量。
8.根据权利要求1所述的方法,其特征在于,所述解码进一步包括:
构建多个相邻块组的列表;以及
从所述列表中选择所述多个相邻块组中的一组,
其中,获得所述多个运动矢量包括从所选择的所述相邻块组中获得所述多个运动矢量。
9.根据权利要求8所述的方法,其特征在于,所述选择包括基于在所述码流中发信号通知的索引,从所述列表中选择所述组,其中,所述索引指示所述列表中的哪组将用于获得所述翘曲模型。
10.根据权利要求1所述的方法,其特征在于,所述解码包括通过执行翘曲运动补偿来对所述当前块进行解码。
11.一种系统,其特征在于,包括:
至少一个存储器,所述至少一个存储器被配置为存储计算机程序代码;以及
至少一个处理器,所述至少一个处理器被配置为接收包括已编码图片的码流、访问所述计算机程序代码并且按照所述计算机程序代码的指示进行操作,所述计算机程序代码包括:
运动矢量获得代码,所述运动矢量获得代码被配置为使所述至少一个处理器获得指向当前块的相邻块中的位置的多个运动矢量,所述相邻块邻近于所述已编码图片中的当前块,所述多个运动矢量包括至少一个时间运动矢量;
运动样本获得代码,所述运动样本获得代码被配置为使所述至少一个处理器基于所述多个运动矢量,获得用于翘曲模型的运动样本;以及
解码代码,所述解码代码被配置为使所述至少一个处理器通过使用所述翘曲模型和包括用于预测的所述至少一个时间运动矢量的所述运动样本来对所述当前块进行解码。
12.根据权利要求11所述的系统,其特征在于,所述至少一个时间运动矢量包括所述当前块的尚未由所述至少一个处理器构建的空间相邻块的位置处的时间运动矢量。
13.根据权利要求11所述的系统,其特征在于,所述至少一个时间运动矢量包括所述当前块的由所述至少一个处理器先前构建的空间相邻块的位置处的时间运动矢量。
14.根据权利要求11所述的系统,其特征在于,所述计算机程序代码进一步包括运动偏移代码,所述运动偏移代码被配置为使所述至少一个处理器将运动偏移应用于所述至少一个时间运动矢量。
15.根据权利要求11所述的系统,其特征在于,所述计算机程序代码进一步包括翘曲模型获得代码,所述翘曲模型获得代码被配置为使所述至少一个处理器通过使用关于所述多个运动矢量的回归/最小二乘误差方法来获得所述翘曲模型,所述多个运动矢量包括所述至少一个时间运动矢量。
16.根据权利要求11所述的系统,其特征在于,所述多个运动矢量包括所述至少一个时间运动矢量和至少一个空间运动矢量。
17.根据权利要求11所述的系统,其特征在于,所述多个运动矢量包括所述至少一个时间运动矢量并且不包括空间运动矢量。
18.根据权利要求11所述的系统,其特征在于,所述计算机程序代码进一步包括:
列表构建代码,所述列表构建代码被配置为使所述至少一个处理器构建多个相邻块组的列表;以及
选择代码,所述选择代码被配置为使所述至少一个处理器从所述列表中选择来自所述多个相邻块组中的一组,
其中,所述运动矢量获得代码被配置为使所述至少一个处理器从所选择的所述相邻块组中获得所述多个运动矢量。
19.根据权利要求18所述的系统,其特征在于,所述选择代码被配置为使所述至少一个处理器基于在所述码流中发信号通知的索引,从所述列表中选择所述组,其中,所述索引指示所述列表中的哪组将用于获得所述翘曲模型。
20.一种存储计算机代码的非易失性计算机可读介质,其特征在于,所述计算机代码被配置为当由至少一个处理器执行时使所述至少一个处理器实施解码器,所述解码器:
接收包括已编码图片的码流;
获得指向相邻块中的位置的多个运动矢量,所述相邻块邻近于所述已编码图片中的当前块,所述多个运动矢量包括至少一个时间运动矢量;
基于所述多个运动矢量,获得用于翘曲模型的运动样本;以及
使用所述翘曲模型和包括用于预测的所述至少一个时间运动矢量的所述运动样本来对所述当前块进行解码。
CN202280085678.7A 2022-07-26 2022-11-04 用于翘曲样本选择和分组的方法和装置 Pending CN118451702A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202263392381P 2022-07-26 2022-07-26
US63/392,381 2022-07-26
US17/980,331 2022-11-03
US17/980,331 US20240040142A1 (en) 2022-07-26 2022-11-03 Method and apparatus for warp sample selection and grouping
PCT/US2022/048916 WO2024025574A1 (en) 2022-07-26 2022-11-04 Method and apparatus for warp sample selection and grouping

Publications (1)

Publication Number Publication Date
CN118451702A true CN118451702A (zh) 2024-08-06

Family

ID=89664053

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280085678.7A Pending CN118451702A (zh) 2022-07-26 2022-11-04 用于翘曲样本选择和分组的方法和装置

Country Status (4)

Country Link
US (1) US20240040142A1 (zh)
KR (1) KR20240093508A (zh)
CN (1) CN118451702A (zh)
WO (1) WO2024025574A1 (zh)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013072484A1 (en) * 2011-11-18 2013-05-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Multi-view coding with efficient residual handling
KR20200064989A (ko) * 2017-09-20 2020-06-08 브이아이디 스케일, 인크. 360도 비디오 코딩에서의 면 불연속 처리

Also Published As

Publication number Publication date
KR20240093508A (ko) 2024-06-24
WO2024025574A1 (en) 2024-02-01
US20240040142A1 (en) 2024-02-01

Similar Documents

Publication Publication Date Title
KR102442454B1 (ko) 병합 모드에서 비디오 코딩을 위한 방법 및 장치
CN110944202B (zh) 视频编解码方法、装置、计算机设备和存储介质
CN113287308B (zh) 视频编解码方法及装置
JP7372327B2 (ja) ビデオ復号の方法及び機器、及びコンピュータプログラム
CN113383545B (zh) 视频编解码的方法和装置
CN113615192B (zh) 视频解码的方法、装置及存储介质
CN113491118B (zh) 视频编解码方法及装置
KR20220158054A (ko) 비디오 코딩을 위한 방법 및 장치
KR20230135641A (ko) 적응형 모션 벡터 차이 해상도를 위한 공동 코딩
CN112135135A (zh) 视频解码方法、装置、计算机设备及存储介质
KR20210069720A (ko) 작은 코딩 블록들에 대한 단순화된 병합 리스트 구성
CN116762340B (zh) 用于视频编码、解码的方法、装置和存储介质
KR20240090347A (ko) Jmvd를 위한 쌍방 정합 기반 스케일링 인자 도출
KR20240050431A (ko) 시간적 모션 벡터 예측자 후보들 탐색
CN117256144A (zh) 具有运动矢量偏移的基于子块的时间运动矢量预测器
CN118235404A (zh) 分量相关的帧内和帧间预测信令
KR20230060535A (ko) 인터 및 인트라 예측을 갖는 기하학적 파티션 모드에 대한 인트라 모드의 제약
KR20230133351A (ko) 모션 벡터 차이의 적응형 해상도와 모션 벡터-관련파라미터들의 시그널링/도출 사이의 상호의존
CN118451702A (zh) 用于翘曲样本选择和分组的方法和装置
US12088828B2 (en) Method and apparatus for improved warp delta signaling
CN118216143A (zh) 改进扭曲增量写入的方法和装置
CN118235409A (zh) 相邻候选空间预测运动矢量的改进
KR20240051174A (ko) 인접한 공간 모션 벡터 예측기 후보 개선
CN118556399A (zh) 参考运动矢量候选库改进
KR20240093604A (ko) 인터 예측 모드들에서 신택스 요소들을 코딩 및 디코딩하기 위한 컨텍스트 설계

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication