CN117501694A - 用于视频编解码中的仿射运动补偿的具有双向匹配的运动细化 - Google Patents

用于视频编解码中的仿射运动补偿的具有双向匹配的运动细化 Download PDF

Info

Publication number
CN117501694A
CN117501694A CN202280043036.0A CN202280043036A CN117501694A CN 117501694 A CN117501694 A CN 117501694A CN 202280043036 A CN202280043036 A CN 202280043036A CN 117501694 A CN117501694 A CN 117501694A
Authority
CN
China
Prior art keywords
video
motion vector
block
motion
refinement
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
CN202280043036.0A
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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
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 Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Publication of CN117501694A publication Critical patent/CN117501694A/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
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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/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/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • 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/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/557Motion estimation characterised by stopping computation or iteration based on certain criteria, e.g. error magnitude being too large or early exit
    • 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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

Landscapes

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

Abstract

本公开的实施方式提供了用于视频中的运动细化的***和方法。该方法可包括从视频中确定视频帧的视频块的初始运动向量。该方法可包括基于来自该视频中的第一参考帧的第一参考块和来自该视频中第二参考帧的第二参考块的加权组合来确定匹配目标。该方法可包括以块级别执行基于双向匹配的运动细化过程,以基于该匹配目标迭代地更新该初始运动向量,直到获得细化运动向量。该方法可包括使用该视频块的细化运动向量来细化该视频块中的每个子块的运动向量。以子块级别细化该运动向量应用该视频块的仿射运动模型。

Description

用于视频编解码中的仿射运动补偿的具有双向匹配的运动 细化
相关申请的交叉引用
本申请基于并且要求于2021年6月17日提交的临时申请No.63/211,682的优先权,该临时申请的全部内容通过引用完整地并入本文。
技术领域
本申请涉及视频编解码和压缩。更具体地,本申请涉及用于视频中的运动细化的视频处理***和方法。
背景技术
各种电子设备(例如数字电视、膝上型计算机或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏机、智能电话、视频电话会议设备、视频流传输设备等)支持数字视频。电子设备通过通信网络来发送和接收或以其它方式传送数字视频数据,和/或将数字视频数据存储在存储设备上。由于通信网络的带宽容量有限并且存储设备的存储资源有限,因此在视频数据被传送或存储之前,可以根据一种或多种视频编解码标准使用视频编解码来压缩视频数据。例如,视频编解码标准包括通用视频编解码(VVC)、联合探索测试模型(JEM)、高效视频编解码(HEVC/H.265)、高级视频编解码(AVC/H.264)、移动图像专家组(MPEG)编解码等。视频编解码通常采用利用视频数据中固有的冗余的预测方法(例如,帧间预测、帧内预测等)。视频编解码旨在将视频数据压缩成使用较低比特率的形式,同时避免或最小化视频质量的下降。
发明内容
本公开的实施例提供了用于视频中的运动细化的视频编解码方法。该视频编解码方法可包括从视频中确定视频帧的视频块的初始运动向量。该视频编解码方法还可包括至少一个处理器基于来自该视频中的第一参考帧的第一参考块和来自该视频中的第二参考帧的第二参考块的加权组合来确定匹配目标。该视频编解码方法还可包括至少一个处理器以块级别执行基于双向匹配的运动细化过程,以基于该匹配目标迭代地更新该初始运动向量,直到获得细化运动向量。该视频编解码方法还可包括至少一个处理器使用该视频块的细化运动向量作为子块的运动向量的起点来细化该视频块中的每个子块的运动向量。以子块级别对该运动向量的细化应用该视频块的仿射运动模型。
本公开的实施例还提供了一种用于视频中的运动细化的视频编解码装置。该视频编解码装置可包括存储器和至少一个处理器。该存储器可被配置为存储视频的至少一个视频帧。该视频帧包括至少一个视频块。所述至少一个处理器可被配置为确定该视频块的初始运动向量。所述至少一个处理器可被配置为基于来自该视频中的第一参考帧的第一参考块和来自该视频中第二参考帧的第二参考块的加权组合来确定匹配目标。所述至少一个处理器还可被配置为以块级别执行基于双向匹配的运动细化过程,以基于该匹配目标迭代地更新该初始运动向量,直到获得该视频块的细化运动向量。所述至少一个处理器还可被配置为使用该视频块的细化运动向量作为子块的运动向量的起点来细化该视频中的每个子块的运动向量。所述至少一个处理器可应用所述视频块的仿射运动模型来以子块级别细化所述运动向量。
本公开的实施例还提供了一种非暂时性计算机可读存储介质,其中存储有指令,这些指令在由至少一个处理器执行时使所述至少一个处理器执行用于视频中的运动细化的视频编解码方法。该视频编解码方法可包括基于该视频块的合并列表从视频中确定视频帧的视频块的初始运动向量。该视频编解码方法还可包括基于来自该视频中的第一参考帧的第一参考块和来自该视频中第二参考帧的第二参考块的加权组合来确定匹配目标。该视频编解码方法还可包括以块级别执行基于双向匹配的运动细化过程,以基于该匹配目标迭代地更新该初始运动向量,直到获得该视频块的细化运动向量。该视频编解码方法还可包括使用该视频块的细化运动向量作为子块的运动向量的起点来细化该视频块中的每个子块的运动向量。以子块级别对该运动向量的细化应用该视频块的仿射运动模型。该视频编解码方法还可包括生成比特流,该比特流包括用于从该合并列表识别所述初始运动向量的合并索引、用于识别该第一参考帧的第一参考索引和用于识别该第参考帧的第二参考索引。该比特流存储在该非暂时性计算机可读存储介质中。
将理解的是,以上一般描述和以下详细描述二者仅仅是示例,而不限制本公开。
附图说明
被并入说明书中并且构成说明书的一部分的附图示出了根据本公开的示例,并且与本描述一起用于解释本公开的原理。
图1是示出了根据本公开的一些实施方式的用于对视频块进行编码和解码的示例性***的框图。
图2是示出了根据本公开的一些实施方式的示例性视频编码器的框图。
图3是示出了根据本公开的一些实施方式的示例性视频解码器的框图。
图4A至图4E是示出了根据本公开的一些实施方式的如何将帧递归地分割为不同尺寸和形状的多个视频块的框图。
图5A示出了根据本公开的一些实施方式的示例性4参数仿射运动模型。
图5B示出了根据本公开的一些实施方式的示例性6参数仿射运动模型。
图6是示出了根据本公开的一些实施方式的示例性双向匹配的图形表示。
图7是示出了根据本公开的一些实施方式的用于仿射运动补偿的具有双向匹配的运动细化的示例性过程的框图。
图8是示出了根据本公开的一些实施方式的匹配目标的示例性计算的图形表示。
图9是根据本公开的一些实施方式的用于视频中的运动细化的示例性方法的流程图。
图10是根据本公开的一些实施方式的用于视频中的运动细化的另一示例性方法的流程图。
图11是示出了根据本公开的一些实施方式的与用户接口耦合的计算环境的框图。
具体实施方式
现在将详细参照具体实施方式,在附图中示出了具体实施方式的示例。在以下详细描述中,阐述了大量非限制性具体细节以便帮助理解本文呈现的主题。但是对于本领域普通技术人员将显而易见的是,在不脱离权利要求的范围的情况下,可以使用各种替代方案,并且可以在没有这些具体细节的情况下实践主题。例如,对于本领域普通技术人员将显而易见的是,本文呈现的主题可以在具有数字视频能力的许多类型的电子设备上实现。
应当说明的是,本公开的说明书和权利要求书以及附图中的术语“第一”、“第二”等用于区分对象,而不用于描述任何具体的顺序或先后次序。应当理解的是,这样使用的数据在适当情况下可以互换,以便本文描述的本公开的实施例能够以除了在附图中所示的或本公开中描述的那些顺序以外的顺序实施。
在当前VVC标准和第三代音频视频编码标准(AVS3)中,视频解码器处的当前编解码块的运动信息要么以合并模式候选索引的形式从空间或时间相邻块继承,要么基于从视频编码器发送的估计运动信息的显式信令导出。然而,估计的运动信息的显式信令可能导致信令开销。另一方面,合并模式运动向量(merge mode motion vector,MV)的应用可节省信令开销,但合并模式MV的精度可能较低,因为它们仅从相邻块复制。
与本公开一致,本文公开了一种视频处理***和方法,以提高VVC和AVS3标准中使用的仿射运动预测模式的运动向量估计精度。由于双向匹配是不需要额外信令的运动细化方法,因此本文公开的***和方法可以应用双向匹配来提高仿射合并模式的运动信息的准确性,并实现更高的编解码效率。例如,可以将各种视频编解码技术(包括合并模式、仿射模式、双向匹配等)结合起来并应用于本文公开的***和方法中,从而以块级别和子块级别增强运动信息。
与本公开一致,本文公开的***和方法可以通过应用双向匹配对视频块的运动信息进行细化来改进仿射合并模式。具体地,本文公开的***和方法可以使用合并模式导出视频块的初始运动向量,确定视频块的匹配目标,并以视频块级别执行基于双向匹配的运动细化过程,以迭代地更新初始运动向量,直到获得视频块的细化运动向量。例如,当应用双向匹配时,首先为视频块导出初始运动向量作为起点(例如,起始运动向量),然后围绕起始运动向量执行迭代更新,以获得具有最低匹配成本的细化运动向量。具有最低匹配成本的细化运动向量可以被选择为视频块级别的视频块的运动向量。随后,视频块级别的细化运动向量可被用作新的起点,以在仿射模式下以子块级别进一步细化子块的运动信息。
与本公开一致,本文所描述的仿射合并模式可称为合并模式和仿射模式的组合。合并模式可以是视频压缩中使用的帧间编解码模式。利用合并模式,为正在被编码或解码的当前视频块继承相邻视频块的运动向量。例如,合并模式使当前视频块继承预定相邻视频块的运动向量。在另一示例中,索引值可用于识别当前视频块从其继承其运动向量的特定相邻视频块。相邻视频块可以是来自同一视频帧的空间上相邻的视频块(例如,上、右上、左或左下视频块),或者是来自时间上相邻的视频帧的同位视频块。与本公开一致,合并模式可用于确定当前视频块的初始运动向量(例如,作为运动细化的起点)。关于仿射模式,可以将仿射运动模式应用于帧间预测。下面参照图5A-5B更详细地描述仿射模式。
与本公开一致,VVC标准中的仿射模式设计可用作仿射运动预测模式的示例性实现,以便于本公开的描述。设想本文公开的***和方法还可以应用仿射运动预测模式的不同设计或具有相同或类似设计精神的其它编解码工具。
图1是示出了根据本公开的一些实施方式的用于并行地对视频块进行编码和解码的示例性***10的框图。如图1中所示,***10包括源设备12,源设备12生成并编码稍后将由目标设备14进行解码的视频数据。源设备12和目标设备14可以包括各种各样的电子设备中的任何电子设备,包括台式计算机或膝上型计算机、平板计算机、智能电话、机顶盒、数字电视、相机、显示器设备、数字媒体播放器、视频游戏机、视频流传输设备等。在一些实施方式中,源设备12和目标设备14配备有无线通信能力。
在一些实施方式中,目标设备14可以经由链路16接收待解码的编码视频数据。链路16可以包括能够将编码视频数据从源设备12移动到目标设备14的任何类型的通信介质或设备。在一个示例中,链路16可以包括使源设备12能够实时地将编码视频数据直接发送到目标设备14的通信介质。编码视频数据可以根据通信标准(例如无线通信协议)被调制,并且被发送到目标设备14。通信介质可以包括任何无线或有线通信介质,例如射频(RF)频谱或一个或更多个物理传输线。通信介质可以形成基于分组的网络(例如局域网、广域网或诸如互联网的全球网)的一部分。通信介质可以包括路由器、交换机、基站或可以有利于促进从源设备12到目标设备14的通信的任何其它装置。
在其它一些实施方式中,可以将编码视频数据从输出接口22发送到存储设备32。随后,可以由目标设备14经由输入接口28访问存储设备32中的编码视频数据。存储设备32可以包括各种分布式或本地访问的数据存储介质中的任何数据存储介质,例如硬盘驱动器、蓝光光盘、数字通用盘(DVD)、压缩盘只读存储器(CD-ROM)、闪存存储器、易失性或非易失性存储器、或者用于存储编码视频数据的任何其它合适的数字存储介质。在另一示例中,存储设备32可以对应于文件服务器或可以保持由源设备12生成的编码视频数据的另一中间存储设备。目标设备14可以经由流传输或下载从存储设备32访问存储的视频数据。文件服务器可以是能够存储编码视频数据并且将编码视频数据发送到目标设备14的任何类型的计算机。示例性文件服务器包括网络服务器(例如,用于网站)、文件传输协议(FTP)服务器、网络附属存储(NAS)设备或本地磁盘驱动器。目标设备14可以通过适合于访问存储在文件服务器上的编码视频数据的任何标准数据连接来访问编码视频数据,标准数据连接包括无线信道(例如,无线保真(Wi-Fi)连接)、有线连接(例如,数字用户线(DSL)、电缆调制解调器等)或无线信道和有线连接两者的组合。编码视频数据从存储设备32的传输可以是流传输、下载传输或流传输和下载传输两者的组合。
如图1中所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可以包括诸如以下项的源或此类源的组合:视频捕获设备(例如,摄像机)、包含先前捕获的视频的视频存档、用于从视频内容提供者接收视频的视频馈入接口、和/或用于生成作为源视频的计算机图形数据的计算机图形***。作为一个示例,如果视频源18是安全监控***的摄像机,则源设备12和目标设备14可以形成相机电话或视频电话。然而,本申请中所描述的实施方式通常可以适用于视频编解码,并且可以应用于无线和/或有线应用。
可以由视频编码器20对捕获、预先捕获或计算机生成的视频进行编码。可以经由源设备12的输出接口22将编码视频数据直接发送到目标设备14。还可以(或可替代地)将编码视频数据存储到存储设备32上以便稍后被目标设备14或其它设备访问,以用于解码和/或回放。输出接口22可以进一步包括调制解调器和/或发送器。
目标设备14包括输入接口28、视频解码器30和显示器设备34。输入接口28可以包括接收器和/或调制解调器,并且通过链路16接收编码视频数据。通过链路16传送或在存储设备32上提供的编码视频数据可以包括由视频编码器20生成的各种语法元素以供视频解码器30在对视频数据进行解码时使用。此类语法元素可以被包括在通信介质上发送的、存储在存储介质上的或存储在文件服务器上的编码视频数据内。
在一些实施方式中,目标设备14可以包括显示器设备34,显示器设备34可以是集成显示器设备和被配置为与目标设备14通信的外部显示器设备。显示器设备34向用户显示解码视频数据,并且可以包括各种显示器设备中的任何显示器设备,诸如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示器设备。
视频编码器20和视频解码器30可以根据专有标准或行业标准(例如,VVC、HEVC、MPEG-4的第10部分、AVC)或此类标准的扩展进行操作。应当理解,本申请不限于特定的视频编码/解码标准,并且可以适用于其它视频编码/解码标准。通常认为源设备12的视频编码器20可以被配置为根据这些当前标准或未来标准中的任何标准对视频数据进行编码。类似地,还通常认为目标设备14的视频解码器30可以被配置为根据这些当前标准或未来标准中的任何标准对视频数据进行解码。
视频编码器20和视频解码器30可以分别被实现为各种合适的编码器和/或解码器电路中的任何电路,例如一个或更多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑器件、软件、硬件、固件或其任何组合。当部分地以软件实现时,电子设备可以将用于软件的指令存储于合适的非暂态计算机可读介质中,并且使用一个或更多个处理器执行硬件中的指令以执行本公开中所公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个可以被包括在一个或更多个编码器或解码器中,编码器或解码器中的任一者可以被集成为相应设备中的组合式编码器/解码器(CODEC)的一部分。
图2是示出了根据本申请中描述的一些实施方式的示例性视频编码器20的框图。视频编码器20可以对视频帧内的视频块执行帧内预测编码和帧间预测编码。帧内预测编码依赖于空间预测以减少或移除给定视频帧或图片内的视频数据中的空间冗余。帧间预测编码依赖于时间预测以减少或移除视频序列的邻近视频帧或图片内的视频数据中的时间冗余。应当注意的是,在视频编解码领域中,术语“帧”可以用作术语“图像”或“图片”的同义词。
如图2中所示,视频编码器20包括视频数据存储器40、预测处理单元41、解码图片缓冲器(DPB)64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41进一步包括运动估计单元42、运动补偿单元44、分割单元45、帧内预测处理单元46和帧内块复制(BC)单元48。在一些实施方式中,视频编码器20还包括用于视频块重建的反量化单元58、逆变换处理单元60和加法器62。诸如去块滤波器的环路滤波器63可以位于加法器62与DPB 64之间以对块边界进行滤波以从重建视频去除块效应。除了去块滤波器之外,还可以使用另一环路滤波器(例如样本自适应偏移(SAO)滤波器和/或自适应环路滤波器(ALF))来对加法器62的输出进行滤波。在一些示例中,可以省略环路滤波器,并且解码视频块可以直接由加法器62提供给DPB 64。视频编码器20可以采取固定或可编程硬件单元的形式,或者可以分散在所说明的固定或可编程硬件单元中的一个或更多个中。
视频数据存储器40可以存储将由视频编码器20的组件编码的视频数据。例如可从图1所示的视频源18获得视频数据存储器40中的视频数据。DPB 64是存储供视频编码器20(例如,以帧内或帧间预测编码模式)在对视频数据进行编码时使用的参考视频数据(例如,参考帧或图片)的缓冲器。视频数据存储器40和DPB 64可以由各种存储器设备中的任何存储器设备形成。在各种示例中,视频数据存储器40可以与视频编码器20的其它组件一起在芯片上,或相对于那些组件在芯片外。
如图2中所示,在接收到视频数据之后,预测处理单元41内的分割单元45将视频数据分割为视频块。此分割还可以包括根据与视频数据关联的预定义的拆分结构(例如四叉树(QT)结构)将视频帧分割为条带、瓦片(tile)(例如,视频块的集合)或其它更大的编码单元(CU)。视频帧是或可以被视为具有样本值的二维样本阵列或矩阵。阵列中的样本也可以被称为像素或图像元素(pel)。阵列或图片的水平和垂直方向(或轴)上的样本的数量定义了视频帧的尺寸和/或分辨率。例如,可以通过使用QT分割将视频帧划分为多个视频块。视频块再次是或可以被视为具有样本值的二维样本阵列或矩阵,但是其维度小于视频帧的维度。视频块的水平和垂直方向(或轴)上的样本的数量定义了视频块的尺寸。通过例如迭代地使用QT分割、二叉树(BT)分割或三叉树(TT)分割或其任意组合,可以将视频块进一步分割为一个或更多个块分区或子块(其可以再次形成块)。应注意,本文所使用的术语“块”或“视频块”可以是帧或图片的一部分,尤其是矩形(正方形或非正方形)部分。参考例如HEVC和VVC,块或视频块可以是或对应于编码树单元(CTU)、CU、预测单元(PU)或变换单元(TU)和/或可以是或对应于相应的块(例如编码树块(CTB)、编码块(CB)、预测块(PB)或变换块(TB))。可替代地或进一步地,块或视频块可以是或对应于CTB、CB、PB、TB等的子块。
预测处理单元41可以基于误差结果(例如,编码速率和失真等级)为当前视频块选择多个可行预测编码模式中的一个,例如多个帧内预测编码模式中的至少一个帧间预测编码模式中的一个。预测处理单元41可以将所得的帧内预测编码块或帧间预测编码块(如预测块)提供给加法器50以生成残差块,并且提供给加法器62以重建编码块以用于随后作为参考帧的一部分使用。预测处理单元41还将语法元素(例如运动向量、帧内模式指示符、分割信息和其它此类语法信息)提供给熵编码单元56。
为了选择用于当前视频块的合适的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可以与和待编码的当前块在同一帧中的一个或更多个邻近块相关地执行当前视频块的帧内预测编码以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44与一个或更多个参考帧中的一个或更多个预测块相关地执行当前视频块的帧间预测编码以提供时间预测。视频编码器20可以执行多个编码遍次,例如,以为视频数据的每个块选择合适的编码模式。
在一些实施方式中,运动估计单元42通过根据视频帧序列内的预定模式生成运动向量来确定用于当前视频帧的帧间预测模式,运动向量指示当前视频帧内的视频块相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成运动向量的过程,该运动向量估计针对视频块的运动。例如,运动向量可以指示当前视频帧或图片内的视频块相对于与当前帧内正被编码的当前块相关的参考帧内的预测块的位移。预定模式可以将序列中的视频帧指定为P帧或B帧。帧内BC单元48可以以与由运动估计单元42确定用于帧间预测的运动向量类似的方式确定用于帧内BC编码的向量(例如,块向量),或可以利用运动估计单元42确定块向量。
在像素差方面,针对视频块的预测块可以是或可以对应于被认为与待编码视频块紧密匹配的参考帧的块或参考块,像素差可以由绝对差总和(SAD)、平方差总和(SSD)或其它差度量确定。在一些实施方式中,视频编码器20可以计算用于DPB 64中存储的参考帧的子整数像素位置的值。例如,视频编码器20可以对参考帧的四分之一像素位置、八分之一像素位置或其它分数像素位置的值进行内插。因此,运动估计单元42可以相对于全像素位置和分数像素位置执行运动搜索并且输出具有分数像素精度的运动向量。
运动估计单元42通过以下方式来计算针对帧间预测编码帧中的视频块的运动向量:将视频块的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)选择的参考帧的预测块的位置进行比较,第一参考帧列表和第二参考帧列表中的每一个参考帧列表标识DPB 64中存储的一个或更多个参考帧。运动估计单元42将计算出的运动向量发送到运动补偿单元44,然后发送到熵编码单元56。
由运动补偿单元44执行的运动补偿可以涉及基于由运动估计单元42确定的运动向量获取或生成预测块。在接收到针对当前视频块的运动向量之后,运动补偿单元44可以在参考帧列表中的一个参考帧列表中定位运动向量所指向的预测块,从DPB 64取回预测块,并且将预测块转发到加法器50。然后,加法器50通过从正被编码的当前视频块的像素值减去由运动补偿单元44提供的预测块的像素值来形成像素差值的残差视频块。形成残差视频块的像素差值可以包括亮度差分量或色度差分量或两者。运动补偿单元44还可以生成与视频帧的视频块关联的语法元素以供视频解码器30在对视频帧的视频块进行解码时使用。语法元素可以包括例如定义用于识别预测块的运动向量的语法元素、指示预测模式的任何标志、或本文描述的任何其它语法信息。应注意,运动估计单元42和运动补偿单元44可以高度集成,但出于概念目的而在图2中单独示出。
在一些实施方式中,帧内BC单元48可以以与上文结合运动估计单元42和运动补偿单元44所描述的方式类似的方式生成向量并获取预测块,但是这些预测块在与正被编码的当前块相同的帧中,并且这些向量被称为块向量而非运动向量。具体地,帧内BC单元48可以确定将用于对当前块进行编码的帧内预测模式。在一些示例中,帧内BC单元48可以例如在单独的编码过程中使用各种帧内预测模式来对当前块进行编码,并且通过率失真分析来测试它们的性能。接下来,帧内BC单元48可以在各种测试的帧内预测模式中选择合适的帧内预测模式来使用并相应地生成帧内模式指示符。例如,帧内BC单元48可以使用率失真分析针对各种测试的帧内预测模式计算率失真值,并且在测试的模式中选择具有最佳率失真特性的帧内预测模式作为合适的帧内预测模式来使用。率失真分析大体上确定编码块与被编码以产生编码块的原始未编码块之间的失真(或误差)量、以及用于产生编码块的比特率(即,比特数量)。帧内BC单元48可以根据针对各种编码块的失真和速率计算比率,以确定哪个帧内预测模式展现针对块的最佳率失真值。
在其它示例中,帧内BC单元48可以全部或部分地使用运动估计单元42和运动补偿单元44来执行根据本文描述的实施方式的用于帧内BC预测的此类功能。在任一情况下,对于帧内块复制,在像素差方面,预测块可以是被认为与待编码的块紧密匹配的块,像素差可以由SAD、SSD或其它差度量确定,并且识别预测块可以包括计算针对子整数像素位置的值。
无论预测块是来自根据帧内预测的同一帧还是来自根据帧间预测的不同帧,视频编码器20可以通过从正被编码的当前视频块的像素值减去预测块的像素值来形成像素差值,从而形成残差视频块。形成残差视频块的像素差值可以包括亮度分量差和色度分量差两者。
作为如上文所描述的由运动估计单元42和运动补偿单元44执行的帧间预测或由帧内BC单元48执行的帧内块复制预测的替代方案,帧内预测处理单元46可以对当前视频块进行帧内预测。具体地,帧内预测处理单元46可以确定帧内预测模式以用于对当前块进行编码。为此,帧内预测处理单元46可以例如在单独的编码遍次期间使用各种帧内预测模式来对当前块进行编码,并且帧内预测处理单元46(或在一些示例中,模式选择单元)可以从测试的帧内预测模式中选择合适的帧内预测模式来使用。帧内预测处理单元46可以将指示针对块选择的帧内预测模式的信息提供给熵编码单元56。熵编码单元56可以将指示选择的帧内预测模式的信息编码到比特流中。
在预测处理单元41经由帧间预测或帧内预测确定针对当前视频块的预测块之后,加法器50通过从当前视频块减去预测块来形成残差视频块。残差块中的残差视频数据可以被包括在一个或更多个TU中并且提供给变换处理单元52。变换处理单元52使用变换(例如离散余弦变换(DCT)或概念上类似的变换)将残差视频数据变换为残差变换系数。
变换处理单元52可以将所得变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步减小比特率。量化过程还可以减小与系数中的一些或全部关联的比特深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54可以随后对包括量化的变换系数的矩阵执行扫描。可替代地,熵编码单元56可以执行扫描。
在量化之后,熵编码单元56使用例如上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)、基于语法的上下文自适应二进制算术编码(SBAC)、概率区间分割熵(PIPE)编码或另一熵编码方法或技术,将量化的变换系数熵编码成视频比特流。然后,可以将编码的比特流发送到如图1所示的视频解码器30,或存档于如图1所示的存储设备32中以供稍后发送到视频解码器30或由视频解码器30取回。熵编码单元56还可以使用熵编码技术对用于正被编码的当前视频帧的运动向量和其它语法元素进行编码。
反量化单元58和逆变换处理单元60分别应用反量化和逆变换以在像素域中重建残差视频块以用于生成用于预测其它视频块的参考块。如上文指出的,运动补偿单元44可以从存储在DPB 64中的帧的一个或更多个参考块生成运动补偿预测块。运动补偿单元44还可以将一个或更多个内插滤波器应用于预测块以计算子整数像素值以用于在运动估计时使用。
加法器62将重建的残差块与由运动补偿单元44产生的运动补偿预测块相加来产生参考块以存储在DPB 64中。然后,参考块可以由帧内BC单元48、运动估计单元42和运动补偿单元44用作预测块以对后续视频帧中的另一视频块进行帧间预测。
图3是示出了根据本申请的一些实施方式的示例性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、反量化单元86、逆变换处理单元88、加法器90和DPB 92。预测处理单元81进一步包括运动补偿单元82、帧内预测单元84和帧内BC单元85。视频解码器30可以执行与上文结合图2关于视频编码器20所描述的编码过程基本互逆的解码过程。例如,运动补偿单元82可以基于从熵解码单元80接收的运动向量生成预测数据,而帧内预测单元84可以基于从熵解码单元80接收的帧内预测模式指示符生成预测数据。
在一些示例中,视频解码器30的单元可以被分派任务以执行本申请的实施方式。此外,在一些示例中,本公开的实施方式可以分散在视频解码器30的单元中的一个或更多个单元中。例如,帧内BC单元85可以单独地或与视频解码器30的其它单元(例如运动补偿单元82、帧内预测单元84和熵解码单元80)组合地执行本申请的实施方式。在一些示例中,视频解码器30可以不包括帧内BC单元85,并且帧内BC单元85的功能可以由预测处理单元81的其它组件(例如运动补偿单元82)执行。
视频数据存储器79可以存储将由视频解码器30的其它组件进行解码的视频数据,例如编码视频比特流。可以例如从存储设备32、从本地视频源(例如相机)、经由视频数据的有线或无线网络通信、或通过访问物理数据存储介质(例如,闪存驱动器或硬盘)获得存储在视频数据存储器79中的视频数据。视频数据存储器79可以包括存储来自编码视频比特流的编码视频数据的编码图片缓冲器(CPB)。视频解码器30的DPB 92存储参考视频数据以供视频解码器30(例如,以帧内或帧间预测编码模式)在对视频数据进行解码时使用。视频数据存储器79和DPB 92可以由各种存储器设备中的任何存储器设备形成,例如动态随机存取存储器(DRAM)(包括同步DRAM(SDRAM))、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其它类型的存储器设备。出于说明性目的,视频数据存储器79和DPB 92在图3中被描绘为视频解码器30的两个不同组件。但是对于本领域的技术人员将显而易见的是,视频数据存储器79和DPB92可以由同一存储器设备或单独存储器设备提供。在一些示例中,视频数据存储器79可以与视频解码器30的其它组件一起在芯片上,或相对于那些组件在芯片外。
在解码过程期间,视频解码器30接收表示编码视频帧的视频块和关联的语法元素的编码视频比特流。视频解码器30可以在视频帧级和/或视频块级别接收语法元素。视频解码器30的熵解码单元80对比特流进行熵解码以生成量化系数、运动向量或帧内预测模式指示符、以及其它语法元素。然后,熵解码单元80将运动向量或帧内预测模式指示符、以及其它语法元素转发到预测处理单元81。
当视频帧被编码为帧内预测编码(例如I)帧或用于其它类型的帧中的帧内编码预测块时,预测处理单元81的帧内预测单元84可以基于用信号传送的帧内预测模式和来自当前帧的先前解码块的参考数据来生成用于当前视频帧的视频块的预测数据。
当视频帧被编码为帧间预测编码(即,B或P)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动向量和其它语法元素产生针对当前视频帧的视频块的一个或更多个预测块。预测块中的每一个可以从参考帧列表中的一个参考帧列表内的参考帧产生。视频解码器30可以基于存储在DPB 92中的参考帧使用默认构建技术来构建参考帧列表,即,列表0和列表1。
在一些示例中,当根据本文描述的帧内BC模式对视频块进行编码时,预测处理单元81的帧内BC单元85基于从熵解码单元80接收的块向量和其它语法元素产生针对当前视频块的预测块。预测块可以在由视频编码器20定义的与当前视频块相同的图片的重建区域内。
运动补偿单元82和/或帧内BC单元85通过解析运动向量和其它语法元素来确定针对当前视频帧的视频块的预测信息,然后使用该预测信息产生针对正被解码的当前视频块的预测块。例如,运动补偿单元82使用接收到的语法元素中的一些语法元素来确定用于对视频帧的视频块进行编码的预测模式(例如,帧内预测或帧间预测)、帧间预测帧类型(例如,B或P)、用于针对帧的参考帧列表中的一个或更多个的构建信息、用于帧的每个帧间预测编码视频块的运动向量、用于帧的每个帧间预测编码视频块的帧间预测状态、以及用于对当前视频帧中的视频块进行解码的其它信息。
类似地,帧内BC单元85可以使用接收到的语法元素中的一些语法元素,例如标志,以确定当前视频块是使用帧内BC模式预测的、帧的哪些视频块在重建区域内且应被存储在DPB 92中的构建信息、用于帧的每个帧内BC预测视频块的块向量、用于帧的每个帧内BC预测视频块的帧内BC预测状态、以及用于对当前视频帧中的视频块进行解码的其它信息。
运动补偿单元82还可以使用如由视频编码器20在对视频块进行编码期间使用的内插滤波器执行内插,以计算针对参考块的子整数像素的内插值。在这种情况下,运动补偿单元82可以根据接收到的语法元素确定由视频编码器20使用的内插滤波器,并且使用这些内插滤波器来产生预测块。
反量化单元86使用由视频编码器20针对视频帧中的每个视频块计算出的用于确定量化程度的相同量化参数,对在比特流中提供且由熵解码单元80熵解码的量化的变换系数进行反量化。逆变换处理单元88将逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中重建残差块。
在运动补偿单元82或帧内BC单元85基于向量和其它语法元素生成针对当前视频块的预测块之后,加法器90通过将来自逆变换处理单元88的残差块与由运动补偿单元82和帧内BC单元85生成的对应预测块相加,来重建针对当前视频块的解码视频块。环路滤波器91(例如去块滤波器、SAO滤波器和/或ALF)可以位于加法器90与DPB 92之间以进一步处理解码视频块。在一些示例中,可以省略环路滤波器91,并且解码视频块可以直接由加法器90提供给DPB 92。然后,将给定帧中的解码视频块存储在DPB 92中,DPB 92存储用于接下来的视频块的后续运动补偿的参考帧。DPB 92或与DPB 92分离的存储器设备还可以存储解码视频以用于稍后呈现在显示器设备(例如,图1的显示器设备34)上。
在典型的视频编解码过程(例如,包括视频编码过程和视频解码过程)中,视频序列通常包括帧或图片的有序集合。每一帧可以包括三个样本阵列,表示为SL、SCb和SCr。SL是亮度样本的二维阵列。SCb是Cb色度样本的二维阵列。SCr是Cr色度样本的二维阵列。在其它实例中,帧可以是单色的,因此仅包括亮度样本的一个二维阵列。
如图4A中所示,视频编码器20(或更具体地,分割单元45)通过首先将帧分割为CTU的集合来生成帧的编码表示。视频帧可以包括以光栅扫描顺序从左到右和从上到下连续排序的整数个CTU。每个CTU是最大的逻辑编码单元,并且由视频编码器20在序列参数集中用信号传送CTU的宽度和高度,使得视频序列中的所有CTU具有128×128、64×64、32×32和16×16之一的相同尺寸。但是应当注意,本申请不必限于特定尺寸。如图4B中所示,每个CTU可以包括亮度样本的一个CTB、色度样本的两个对应编码树块、以及用于对编码树块的样本进行编码的语法元素。语法元素描述编码像素块的不同类型的单元的性质以及可以如何在视频解码器30处重建视频序列,包括帧间预测或帧内预测、帧内预测模式、运动向量和其它参数。在单色图片或具有三个单独颜色平面的图片中,CTU可以包括单个编码树块和用于对该编码树块的样本进行编码的语法元素。编码树块可以是N×N的样本块。
为了实现更好的性能,视频编码器20可以对CTU的编码树块递归地执行树分割,例如二叉树分割、三叉树分割、四叉树分割或其组合,并且将CTU划分为较小的CU。如图4C中所描绘的,首先将64×64的CTU 400划分为四个较小的CU,每个CU具有32×32的块尺寸。在四个较小的CU中,将CU 410和CU 420分别划分为块尺寸为16×16的四个CU。将两个16×16的CU 430和CU 440分别进一步划分为块尺寸为8×8的四个CU。图4D描绘了示出如图4C中所描绘的CTU 400的分割过程的最终结果的四叉树数据结构,四叉树的每个叶节点与范围从32×32到8×8的相应尺寸的一个CU对应。类似于图4B中描绘的CTU,每个CU可以包括相同尺寸的帧的亮度样本的CB和色度样本的两个对应编码块、以及用于对编码块的样本进行编码的语法元素。在单色图片或具有三个单独颜色平面的图片中,CU可以包括单个编码块和用于对编码块的样本进行编码的语法结构。应注意,图4C和图4D中所描绘的四叉树分割仅用于说明性目的,并且一个CTU可以基于四叉树分割/三叉树分割/二叉树分割而被拆分为多个CU以适应于变化的局部特性。在多类型树结构中,一个CTU按照四叉树结构被分割,并且每个四叉树叶CU可以按照二叉和三叉树结构被进一步分割。如图4E所示,具有宽度W和高度H的编码块有多种可能的分割类型,即四元分割、垂直二元分割、水平二元分割、垂直三元分割、垂直延伸三元分割、水平三元分割和水平延伸三元分割。
在一些实施方式中,视频编码器20可以进一步将CU的编码块分割为一个或更多个(M×N个)PB。PB是被应用相同预测(帧间或帧内)的矩形(正方形或非正方形)样本块。CU的PU可以包括亮度样本的PB、色度样本的两个对应PB和用于对PB进行预测的语法元素。在单色图片或具有三个单独颜色平面的图片中,PU可以包括单个PB和用于对PB进行预测的语法结构。视频编码器20可以生成针对亮度的预测亮度、Cb和Cr块,该CU的每个PU的Cb和Cr PB。
视频编码器20可以使用帧内预测或帧间预测来生成针对PU的预测块。如果视频编码器20使用帧内预测来生成PU的预测块,则视频编码器20可以基于与PU关联的帧的解码样本来生成PU的预测块。如果视频编码器20使用帧间预测来生成PU的预测块,则视频编码器20可以基于除与PU关联的帧之外的一个或更多个帧的解码样本来生成PU的预测块。
在视频编码器20生成针对CU的一个或更多个PU的预测亮度块、预测Cb块和预测Cr块之后,视频编码器20可以通过从CU的原始亮度编码块减去CU的预测亮度块来生成针对CU的亮度残差块,使得CU的亮度残差块中的每个样本指示CU的预测亮度块之一中的亮度样本与CU的原始亮度编码块中的对应样本之差。类似地,视频编码器20可以分别生成针对CU的Cb残差块和Cr残差块,使得CU的Cb残差块中的每个样本指示CU的预测Cb块之一中的Cb样本与CU的原始Cb编码块中的对应样本之差,并且CU的Cr残差块中的每个样本可以指示CU的预测Cr块之一中的Cr样本与CU的原始Cr编码块中的对应样本之差。
此外,如图4C中所示,视频编码器20可以使用四叉树分割将CU的亮度残差块、Cb残差块和Cr残差块分别分解成一个或更多个亮度变换块、Cb变换块和Cr变换块。变换块是被应用相同变换的矩形(正方形或非正方形)样本块。CU的TU可以包括亮度样本的变换块、色度样本的两个对应变换块和用于对变换块样本进行变换的语法元素。因此,CU的每个TU可以与亮度变换块、Cb变换块和Cr变换块关联。在一些示例中,与TU关联的亮度变换块可以是CU的亮度残差块的子块。Cb变换块可以是CU的Cb残差块的子块。Cr变换块可以是CU的Cr残差块的子块。在单色图片或具有三个单独颜色平面的图片中,TU可以包括单个变换块和用于对该变换块的样本进行变换的语法结构。
视频编码器20可以将一个或更多个变换应用于TU的亮度变换块以生成针对TU的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可以将一个或更多个变换应用于TU的Cb变换块以生成针对TU的Cb系数块。视频编码器20可以将一个或更多个变换应用于TU的Cr变换块以生成针对TU的Cr系数块。
在生成系数块(例如,亮度系数块、Cb系数块或Cr系数块)之后,视频编码器20可以对系数块进行量化。量化通常是指变换系数被量化以可能减少用于表示变换系数的数据量从而提供进一步压缩的过程。在视频编码器20对系数块进行量化之后,视频编码器20可以对指示量化的变换系数的语法元素进行熵编码。例如,视频编码器20可以对指示量化的变换系数的语法元素执行CABAC。最后,视频编码器20可以输出包括比特序列的比特流,比特序列形成编码帧和关联数据的表示,比特流被保存于存储设备32中或被发送到目标设备14。
在接收到由视频编码器20生成的比特流之后,视频解码器30可以解析比特流以从比特流获得语法元素。视频解码器30可以至少部分地基于从比特流获得的语法元素来对视频数据的帧进行重建。对视频数据进行重建的过程通常与由视频编码器20执行的编码过程互逆。例如,视频解码器30可以对与当前CU的TU关联的系数块执行逆变换以重建与当前CU的TU关联的残差块。视频解码器30还通过将针对当前CU的PU的预测块的样本与当前CU的TU的变换块的对应样本相加,来重建当前CU的编码块。在重建针对帧的每个CU的编码块之后,视频解码器30可以重建帧。
如上所述,视频编码主要使用两种模式(即,帧内部预测(或帧内预测)和帧之间预测(或帧间预测))来实现视频压缩。应注意,IBC可以被视为帧内预测或第三模式。在两种模式之间,由于使用运动向量来根据参考视频块预测当前视频块,所以帧间预测比帧内预测对编码效率的贡献更大。
但是随着不断改进的视频数据捕获技术和用于保留视频数据中的细节的更精细的视频块尺寸,表示用于当前帧的运动向量所需的数据量也大幅增加。克服此挑战的一种方式受益于以下事实:不仅空间域和时间域两者中的一组邻近CU具有用于预测目的的相似视频数据,而且这些邻近CU之间的运动向量也是相似的。因此,可以通过以下方式而使用空间邻近CU和/或时间同位CU的运动信息作为当前CU的运动信息(例如,运动向量)的近似(其也被称为当前CU的“运动向量预测因子”(Motion Vector Predictor,MVP)):探索它们的空间和时间相关性。
代替将当前CU的实际运动向量编码到视频比特流中(例如,如上文结合图2所描述的由运动估计单元42确定该实际运动向量),从当前CU的实际运动向量减去当前CU的运动向量预测因子以产生针对当前CU的运动向量差(Motion Vector Difference,MVD)。通过这样做,不需要将由运动估计单元42针对帧的每个CU确定的运动向量编码到视频比特流中,并且可以显著减少用于表示视频比特流中的运动信息的数据量。
类似于在编码块的帧间预测期间选择参考帧中的预测块的过程,视频编码器20和视频解码器30两者需要采用一组规则,以用于使用与当前CU的空间邻近CU和/或时间同位CU关联的那些潜在候选运动向量来构建针对当前CU的运动向量候选列表(也称为“合并列表”),然后从运动向量候选列表中选择一个成员作为针对当前CU的运动向量预测因子。通过这样做,不需要从视频编码器20向视频解码器30发送运动向量候选列表本身,并且运动向量候选列表内的所选运动向量预测因子的索引足以使视频编码器20和视频解码器30使用运动向量候选列表内的相同运动向量预测因子来对当前CU进行编码和解码。因此,仅需要将所选运动向量预测因子的索引从视频编码器20发送到视频解码器30。
本文参考图5A-5B提供关于仿射模式的简要讨论。在HEVC中,仅将平移运动模型应用于运动补偿预测。虽然在现实中可以存在各种运动,例如,放大、缩小、旋转、透视运动和其它不规则运动,但在VVC和AVS3标准中,可以通过信号发送每个帧间编码块的标志来应用仿射运动补偿预测,以指示平移运动模型还是仿射运动模型被应用于帧间预测。在一些实施方式中,可以选择两个仿射模型中的一个(例如,如图5A所示的4参数仿射运动模型或如图5B所示的6参数仿射运动模型),并将其应用于仿射编码的视频块。
图5A中所示的4参数仿射运动模型包括以下仿射参数:分别用于水平和垂直方向上的平移运动的两个参数,用于缩放运动的一个参数,以及用于水平和竖直方向上的旋转运动的一个参数。在该模型中,水平缩放参数可以等于垂直缩放参数,水平旋转参数可以等于垂直旋转参数。为了更好地适应运动向量和仿射参数,可以用位于当前视频块的两个控制点(例如,左上角和右上角)的两个运动向量(称为控制点运动向量(control pointmotion vectors,CPMV))来编码该模型的仿射参数。如图5A所示,视频块的仿射运动场(例如视频块的运动向量)可以由两个CPMV V0和V1来描述。基于该控制点运动,可以使用以下表达式(1)导出在视频块内具有位置(x,y)的仿射编码子块的运动场:
在上述表达式(1)中,vx和vy分别表示位置(x,y)处的仿射编码子块的运动向量的x分量和y分量。w表示视频块的宽度。v0x和v0y分别表示CPMV V0的x分量和y分量。v1x和v1y分别表示CPMV V1的x分量和y分量。
如图5B所示的6参数仿射运动模型包括以下仿射参数:分别用于水平和垂直方向上的平移运动的两个参数,分别用于水平方向上的缩放运动和旋转运动的两个参数,以及分别用于垂直方向上缩放运动和旋转运动的另两个参数。可在三个控制点用三个CPMV对该6参数仿射运动模型进行编解码。如图5B所示,该6参数仿射视频块的三个控制点位于视频块的左上角、右上角和左下角,并分别与CPMV V0、V1和V2相关联。左上控制点处的运动与平移运动有关,右上控制点的运动与水平方向上的旋转和缩放运动有关,而左下控制点处运动与垂直方向上的移动和缩放运动相关。与4参数仿射运动模型相比,6参数仿射运动模型的水平方向上的旋转和缩放运动可能与垂直方向上的转动和缩放运动不同。位于视频块的位置(x,y)处的每个子块的运动向量(vx,vy)可以通过以下方式使用三个控制点处的三个CPMV导出:
在上述表达式(2)中,vx和vy分别表示位置(x,y)处的仿射编码子块的运动向量的x分量和y分量。w和h分别表示视频块的宽度和高度。v0x和v0y分别表示CPMV V0的x分量和y分量。v1x和v1y分别表示CPMV V1的x分量和y分量。v2x和v2y分别表示CPMV V2的x分量和y分量。
图6是示出了根据本公开的一些实施方式的示例性双向匹配的图形表示。在视频编解码领域中,双向匹配是一种技术,利用该技术,当前编码的视频块的运动信息不被通过信号发送到解码器侧,而是在解码器侧导出。当双向匹配用于运动推导过程时,可以首先推导整个视频块的初始运动向量。具体地,可以检查视频块的合并列表,并且可以从合并列表中选择在合并列表中的所有候选运动向量中导致最小匹配成本的候选运动向量作为起点。然后,可以执行搜索范围内起点周围的局部搜索,并且可以将在搜索范围内导致最小匹配成本的运动向量作为整个视频块的运动向量。随后,可以使用整个视频块的运动向量作为新的起点,以子块级别进一步细化运动信息。例如,可以针对整个视频块导出几个CPMV,然后,可以通过基于上述表达式(1)或(2)以视频块级别应用CPMV来导出子块级别的运动向量。
如图6所示,通过从两个不同的参考帧中沿着视频块的运动轨迹找到两个最佳匹配的参考块604、606,可以使用双向匹配来导出视频帧中视频块602的运动信息。在连续运动轨迹的假设下,指向两个参考块604、606的运动向量MV0和MV1可以分别与参考帧相对于视频帧(例如,TD0和TD1)的时间距离成比例。作为一种特殊情况,当视频帧在时间上位于两个参考帧之间并且从视频帧到这两个参考帧的时间距离相同(例如,TD0=TD1)时,从双向匹配导出的运动向量变为基于镜像的双向运动向量。
图7是示出了根据本公开的一些实施方式的用于仿射运动补偿的具有双向匹配的运动细化的示例性过程的框图。在一些实施方式中,过程700可以由视频编码器20的预测处理单元41(例如,包括运动估计单元42、运动补偿单元44等)或视频解码器30的预测处理模块81(例如,包括运动补偿单元82)来执行。在一些实施方式中,过程700可以由编码器侧或解码器侧的视频处理器(例如,图11中示出的处理器1120)执行。仅出于说明目的,针对视频处理器提供过程700的以下描述。
为了从视频的视频帧中编码或解码视频块,视频处理器可以执行初始运动向量估计702,以生成视频块的初始运动向量704。例如,视频处理器可基于视频块的合并列表来确定视频块的初始运动向量704。具体地,可以检查视频块的合并列表,并且可以从合并列表中选择在合并列表中的所有候选运动向量中导致最小匹配成本的候选运动向量作为初始运动向量704。
视频处理器可以以视频块级别执行基于双向匹配的运动细化过程706,以迭代地更新初始运动向量704,直到获得用于该视频块的细化运动向量714。初始运动向量704可以用作基于双向匹配的运动细化过程706的起点(例如,起始运动向量)。在执行围绕该起始运动向量的迭代更新时,可以迭代地计算该视频块的当前预测与匹配目标之间的匹配成本(例如,双向匹配成本),以引导该视频块的起始运动向量的渐进更新。在一些实施方式中,可基于匹配成本函数来计算该视频块的当前预测与匹配目标之间的匹配成本。该匹配成本函数可以是绝对差和(Sum of Absolute Difference,SAD)、平均去除SAD(mean removedSAD,MRSAD)、平方差和(Sum of Square Difference,SSD)或该视频块的当前预测与该匹配目标之间的其它任何适当的差度量。
如果该视频块以仿射模式编码,则初始运动向量704可包括该视频块的至少一个控制点处的一个或者多个初始CPMV。细化运动向量714可包括在至少一个控制点处的至少一个细化CPMV。
为了以基于双向匹配的运动细化过程706开始,视频处理器可执行匹配目标确定操作708,以确定运动信息的迭代更新的匹配目标。例如,参考图8,视频处理器可基于初始运动向量704分别从该视频的第一参考帧802和第二参考帧804确定第一参考块Ref0和第二参考块Ref1。视频处理器可基于第一参考块Ref0和第二参考块Ref1的加权组合来确定匹配目标。例如,该匹配目标可以等于Ref0和Ref1的加权和(例如,匹配目标=w0*Ref0+w1*Ref1,其中,w0和w1分别表示Ref0和Ref1的权重)。
在一些实施方式中,本文公开的帧间编码模式(例如,合并模式)可以是双向预测的,指示使用两个不同的参考帧列表(例如,列表0和列表1)来标识视频块的两个预测。例如,列表0可以包括在视频块之前的参考帧的列表,列表1可以包括在该视频块之后的参考帧列表。Ref0可以是基于初始运动向量704的来自第一参考帧802的列表0预测。Ref1可以是基于初始运动向量704的来自第二参考帧804的列表1预测。该匹配目标可以是基于初始运动向量704导出的列表0和列表1预测的加权和。
可替代地,该匹配目标可以是列表0和列表1预测的加权组合加上与列表0和列表1预测相关的相应预测残差。在这种情况下,该匹配目标可以是列表0重建和列表1重建的加权组合。例如,列表0重建=列表0预测+列表0预测残差,列表1重建=列表1预测+列表1预测残差,匹配目标=w0*列表0重建+w1*列表1重建。
在一些实施方式中,权重w0和w1可以将在编码器侧导出的相同值用于正常加权双向预测(例如,具有CU级别权重的双向预测)。可替代地,权重w0和w1可以具有预定值。例如,w0=w1=1/2。在另一示例中,w0=1,w1=0,或者,w0=0,w1=1。当权重w0和w1之一为0时,该双向匹配变为单向运动向量细化,而不是双向运动向量细化。
在一些实施方式中,权重w0和w1可具有不同符号的值。例如,w0=1,w1=-1。在这种情况下,可以使用双向预测差来计算匹配成本。具体地,计算在更新开始运动向量之前和更新开始运动向量之后生成的双向预测差,以确定匹配成本。
再次参考图7的基于双向匹配的运动细化过程706,该视频处理器可迭代地执行运动细化操作710和运动向量更新操作712,直到为该视频块生成细化运动向量714。例如,该视频处理器可使用初始运动向量704来初始化该视频块的中间运动向量,并且可基于该匹配目标来确定该中间运动向量的运动细化。该视频处理器可基于该运动细化来更新该中间运动向量。该中间运动向量可表示该视频块的运动向量,同时执行基于双向匹配的运动细化过程706。然后,视频处理器可确定是否满足预定迭代停止条件。如果满足预定迭代停止条件,则视频处理器可确定中间运动向量为细化运动向量714。另一方面,如果不满足预定迭代停止条件,则视频处理器可继续迭代地确定中间运动向量的运动细化,并基于运动细化来更新中间运动向量,直到满足预定迭代终止条件。
在一些实施方式中,如果中间运动向量收敛,则可以满足预定迭代停止条件。可替代地,如果总迭代次数满足预定阈值(例如,总迭代次数达到预定上限),则可以满足预定迭代停止条件。
在一些实施方式中,可通过基于计算的推导、基于搜索的推导或基于计算的推导和基于搜索的推导的组合来确定中间运动向量的运动细化。下面提供基于计算的推导被用于确定运动细化的第一示例性过程、基于搜索的推导被用于确定运动细化的第二示例性过程以及基于计算的推导和基于搜索的推导的组合被用于确定运动细化的第三示例性过程。
在应用基于计算的推导的第一示例性过程中,视频处理器可基于中间运动向量来确定视频块的当前预测。例如,视频处理器可基于中间运动向量分别从第一参考帧802和第二参考帧804确定第三参考块(Ref2)和第四参考块(Ref3)。视频处理器可基于第三参考块Ref2和第四参考块Ref3的加权组合来确定视频块的当前预测(例如,当前预测=w2*Ref2+w3*Ref3,其中,w2和w3分别表示Ref2和Ref3的权重)。在一些示例中,第三参考块Ref2和第四参考块Ref3可以分别是视频块的中间列表0预测和中间列表1预测。中间列表0预测和中间列表1预测可以分别是基于中间运动向量的视频块的列表0预测以及列表1预测。在一些实施方式中,w2和w3可分别等于w0和w1。可替代地,w2和w3可以分别具有不同于w0和w1的值。
该视频处理器可确定视频块的当前预测与匹配目标之间的假设运动模型,并基于假设运动模型导出中间运动向量的运动细化。例如,假设的运动模型可用于如下所述的运动细化计算。在一些实施方式中,在执行基于双向匹配的运动细化过程706之前,视频块的仿射运动模型可以是4参数仿射运动模型(具有2个CPMV)或6参数仿射运动模型(具有3个CPMV)。当使用双向匹配时,当前预测与匹配目标之间的假设运动模型可以是线性的或非线性的,其可以由2参数(线性)、4参数(非线性)或6参数(非线性)运动模型表示。
在一些实施方式中,假设的运动模型可具有与视频块的仿射运动模型相同数量的参数。例如,假设的运动模型是6参数运动模型,并且仿射运动模型也是6参数仿射运动模型。在另一示例中,假设的运动模型是4参数运动模型,并且仿射运动模型也是4参数仿射运动模型。可替代地,假设的运动模型可具有与视频块的仿射运动模型不同数量的参数。例如,视频块的仿射运动模型是6参数仿射运动模型,而假设的运动模型是2参数运动模型或4参数运动模型。在另一示例中,视频块的仿射运动模型是4参数仿射运动模型,而假设的运动模型是2参数运动模型或6参数运动模型。
例如,仿射运动模型可以是具有在3个控制点{(v0x,v0y),(v1x,v1y),(v2x,v2y)}处的3个CPMV的6参数仿射运动模型。中间运动向量的运动细化(例如,3个CPMV的运动细化)可以表示为{(dv0x,dv0y),(dv1x,dv1y),(dv2x,dv2y)}。匹配目标亮度信号可以表示为与该匹配目标关联的I(i,j)。预测亮度信号可以表示为与视频块的当前预测关联的I′k(i,j)。可以用分别在水平和垂直方向上应用于预测信号I′k(i,j)上的Sobel滤波器来导出空间梯度gx(i,j)和gy(i,j)。6参数假设运动模型可用于将每个CPMV的运动细化推导如下:
dvx(x,y)=c*x+d*y+a
dvy(x,y)=e*x+f*y+b
(3)。
在上述表达式(3)中,(dvx(x,y),dvy(x,y))表示该CPMV的delta运动细化,a和b表示delta平移参数,c和d表示水平方向的delta缩放和旋转参数,e和f表示垂直方向的delta缩放和旋转参数。
左上、右上和左下控制点{(v0x,v0y),(v1x,v1y),(v2x,v2y)}的坐标分别为(0,0)、(w,0)和(0,h),其中,w和h分别表示视频块的宽度和高度。基于上述表达式(3),可以用它们各自的坐标将在这三个控制点处的3个CPMV的运动细化分别推导为以下表达式(4)-(6):
基于光流方程,亮度变化与空间梯度和时间移动之间的关系可以公式化为以下表达式(7):
I′k(i,j)-I(i,j)=gx(i,j)*dvx(i,j)+gy(i,j)*ddy(i,j)
(7)。
通过用表达式(3)替换表达式(7)中的dvx(i,j)和dvy(i,j),可获得参数集(a,b,c,d,e,f)的表达式(8),如下所示:
I′k(i,j)-I(i,j)=(gx(i,j)*i)*c+(gx(i,j)*j)*d+(gy(i,j)*i)*e+(gy(i,j)*j)*f+gx(i,j)*a+gy(i,j)*b
(8)。
由于视频块中的所有样本都满足表达式(8),所以可使用最小二乘误差法来求解(8)中的参数集(a,b,c,d,e,f)。然后,可用表达式(4)-(6)求解这三个控制点{(v0x,v0y),(v1x,v1y),(v2x,v2y)}处的运动细化,并可将其舍入到特定精度(如1/16像素)。使用上述计算过程作为迭代,可以细化这三个控制点处的CPMV,直到它们在参数集(a,b,c,d,e,f))全部为零或迭代次数的总数满足预定迭代上限时收敛。
在另一示例中,假设的运动模型可以是4参数运动模型。对于每个CPMV的运动细化,可使用以下表达式(9)表示4参数运动模型:
dvx(x,y)=c*x-d*y+a
dvy(x,y)=d*x+c*y+b
(9)。
左上和右上控制点{(v0x,v0y),(v1x,v1y)}的坐标可分别为(0,0)和(w,0)。基于上述表达式(9),可以用它们各自的坐标导出这两个控制点处的CPMV的delta运动细化,如以下的表达式(10)-(11)所示:
通过用表达式(9)替换表达式(7)中的dvx(i,j)和dvy(i,j),可获得参数集(a,b,c,d)的表达式(12),如下所示:
I′k(i,j)-I(i,j)=(gx(i,j)*i+gy(i,j)*j)*c+(-gx(i,j)*j+gy(i,j)*i)*d+gx(i,j)*a+gy(i,j)*b
(12)。
类似于上述表达式(8),通过考虑视频块内的所有样本,可以使用最小二乘法来求解(12)中的参数集(a,b,c,d)。
在又一示例中,假设的运动模型可以是2参数运动模型。对于每个CPMV的运动细化,c=d=e=f=0(例如,根据上述表达式(3))。然后,2参数假设运动模型可以表示为:
如上述表达式(13)所示,任何CPMV的运动细化(例如,任何控制点处的delta运动细化)是相同的。通过用表达式(13)替换表达式(7)中的dvx(i,j)和dvy(i,j),可以获得参数集(a,b)的表达式(14),如下所示:
I′k(i,j)-I(i,j)=gx(i,j)*a+gy(i,j)*b (14)。
类似于上述表达式(8),通过考虑视频块内的所有样本,可以使用最小二乘法来求解(14)中的参数集(a,b)。
在通过上述表达式(3)、(9)或(13)获得运动细化之后,视频处理器可以使用导出的运动细化来更新中间运动向量,以基于视频块的仿射运动模型获得细化运动向量714。例如,可以使用以下表达式更新每个CPMV:
在上述表达式(15)中,和/>分别表示在水平方向上的细化之前和之后的CPMV的x分量,/>和/>分别表示在垂直方向上的细化之前和以后的CPMV的y分量。根据视频块的仿射运动模型的类型,可能需要细化不同数量的CPMV。例如,对于4参数仿射运动向量,可能需要更新两个CPMV;对于6参数仿射运动模型,可能需要更新三个CPMV。对于要细化的每个CPMV,可以使用CPMV的相应坐标(x,y)根据上述表达式(3)、(9)或(13)来导出相应的运动细化。
例如,如果当前预测与匹配目标之间的假设运动模型是2参数运动模型,则可以使用上面的表达式(13)来导出运动细化。即,对于每个CPMV,dvx(x,y)=a,并且dvy(x,y)=b。此外,根据上述表达式(15),若视频块的仿射运动模型是6参数仿射运动模型,则可将用于6参数仿射模型的这三个控制点处的坐标为(0,0)、(w,0)和(0,h)的三个细化的CPMV推导为:
/>
在另一示例中,如果当前预测与匹配目标之间的假设运动模型是4参数运动模型,则可以使用上面的表达式(9)来导出运动细化。即,对于每个CPMV,dvx(x,y)=c*x-d*y+a,并且dvy(x,y)=d*x+c*y+b。此外,根据上述表达式(15),如果视频块的仿射运动模型是6参数仿射运动模型,则可将用于6参数仿射模型的这三个控制点处的坐标为(0,0)、(w,0)和(0,h)的三个细化的CPMV推导为:
在又一示例中,如果当前预测与匹配目标之间的假设运动模型是6参数运动模型,则可以使用上面的表达式(3)来导出运动细化。即,对于每个CPMV,dvx(x,y)=c*x+d*y+a,并且dvy(x,y)=e*x+f*y+b。此外,根据上述表达式(15),如果视频块的仿射运动模型是6参数仿射运动模型,则可将用于6参数仿射模型的这三个控制点处的坐标为(0,0)、(w,0)和(0,h)的三个细化的CPMV推导为:
/>
在应用基于搜索的推导来推导运动细化的第二示例性过程中,视频处理器可迭代地将增量变化(例如+1或-1)应用于水平和/或垂直方向上每个控制点的中间运动向量。可以保持导致较小匹配成本的中间运动向量的相应变化,并将其设置为下一轮搜索的新起点,直到获得用于每个控制点的细化运动向量。
例如,中间运动向量可以是双向的,并且包括列表0的第一运动向量(例如,称为L0运动向量)和列表1的第二运动向量(如,称为L1运动向量)。可以通过将匹配目标固定来分别执行L0和L1运动向量的渐进细化,并通过使用更新的L0和/或L1运动向量来迭代地更新视频块的当前预测。为了降低处理复杂度,可以通过对L0和L1运动向量使用相同量但方向相反的细化,对L0运动向量和L1运动向量两者联合执行细化。例如,以下表达式(25)可用于确定更新的L0和L1运动向量:
v0’=v0+Δ,v1’=v1-k*Δ (25)。
在上述表达式(25)中,v0和v1分别表示L0和L1运动向量;v0’和v1’分别表示更新的L0和L1运动向量;Δ和-Δ分别表示应用于列表0和列表1的方向相反的运动细化;k表示可用于考虑时间距离的缩放因子。例如,可以基于视频帧与第一参考帧之间的第一时间距离与视频帧与第二参考帧之间第二时间距离之间的比率来确定k。
在一些实施方式中,为了迭代地更新每个控制点的中间运动向量,视频处理器可以首先基于中间运动向量和预定搜索范围内的第一运动向量变化来生成第一修改运动向量。例如,第一修改运动向量可以等于中间运动向量与第一运动向量变化之和,其中,第一运动向量变化可以是中间运动向量的增量变化。视频处理器可以基于(a)与中间运动向量关联的匹配成本和(b)与第一修改运动向量关联的当前匹配成本来确定是否将第一运动向量变化分配为中间运动向量的运动细化。
例如,视频处理器可以基于中间运动向量来确定视频块的预测,并基于匹配目标和视频块的预测来确定与中间运动向量关联的匹配成本。视频块的预测可以是基于中间运动向量的视频块的列表0预测和列表1预测的加权组合。可以基于本文公开的任何匹配成本函数来确定匹配成本。类似地,视频处理器还可以基于第一修改运动向量来确定视频块的当前预测,并且基于匹配目标和视频块的当前预测来确定与第一修改运动向量关联的当前匹配成本。视频块的当前预测可以是基于第一修改运动向量的视频块的列表0预测和列表1预测的加权组合。
如果与第一修改运动向量关联的当前匹配成本小于与中间运动向量关联的匹配成本,则视频处理器可以将运动细化导出为第一运动向量变化。因此,可以将中间运动向量更新为第一修改运动向量(例如,中间运动向量=中间运动向量+第一运动向量变化)。
如果与第一修改运动向量关联的当前匹配成本大于或等于与中间运动向量关联的匹配成本,则视频处理器可确定不将第一运动向量变化分配为运动细化。相反,视频处理器可以基于中间运动向量和预定搜索范围内的第二运动向量变化来生成第二修改运动向量(例如,第二修改运动向量=中间运动向量+第二运动矢量变化)。视频处理器可基于与中间运动向量关联的匹配成本和与第二修改运动向量关联的另一当前匹配成本来确定是否将第二运动向量变化分配为运动细化。如果与第二修改运动向量关联的另一当前匹配成本小于与中间运动向量关联的匹配成本,则视频处理器可以将运动细化推导为第二运动向量变化。然后,可将中间运动向量更新为第二修改运动向量。如果与第二修改运动向量关联的另一当前匹配成本大于或等于与中间运动向量关联的匹配成本,则视频处理器可以确定不将第二运动向量变化分配为运动细化。
通过执行类似操作,视频处理器可以迭代地更新中间运动向量,直到满足预定迭代停止条件。例如,如果检测和处理了预定搜索范围内的有效运动向量变化,或者迭代总数满足预定上限,则可以满足该预定迭代停止条件。当满足预定迭代停止条件时,视频处理器可将视频块的细化运动向量714确定为中间运动向量。
在基于计算的推导和基于搜索的推导的组合被用于确定运动细化的第三示例性过程中,在开始时使用基于计算的推导来快速地细化中间运动向量,然后可以按照基于搜索的推导来提供进一步的细化以获得细化运动向量714。具体地,视频处理器可通过基于计算的推导来确定中间运动向量的运动细化,并基于通过基于计算的推导确定的运动细化来更新中间运动向量。然后,视频处理器可通过基于搜索的推导再次确定中间运动向量的运动细化,并基于通过基于搜索的推导确定的运动细化再次更新中间运动向量。这样,就可以获得视频块的细化运动向量714。
在获得视频块的细化运动向量714之后,视频处理器可执行子块运动向量细化过程716,以生成视频块内每个子块的运动向量718。具体地,视频处理器可以通过将视频块的细化运动向量714用作子块的运动向量的起点来细化视频块中每个子块的运动向量。视频处理器可以应用视频块的仿射运动模型来以子块级别细化运动向量。例如,视频处理器可以通过上述基于双向匹配的运动细化过程706获得视频块的多个细化的CPMV,然后根据仿射运动模型是4参数还是6参数仿射运动模型来应用上述表达式(1)或(2)以使用这些细化的CPMV来导出每个子块的运动向量。
与本公开一致,本文提供了基于双向匹配的运动细化过程706的示例性应用条件。具体地,对于双向匹配,对运动轨迹做了假设。然而,当运动轨迹不是线性时,可以不使用双向匹配来导出可靠的运动向量。例如,在旋转、缩放和扭曲等复杂运动中,双向匹配可能无法很好地工作。为了导出更可靠的运动细化,可以确定某些应用条件以限制过度使用双向匹配。
在一些实施方式中,仅当两个参考帧位于当前视频帧的两个不同侧时(例如,一个参考帧在当前视频帧之前,另一个参考框在当前视频框之后),才应用基于双向匹配的运动细化过程706。在一些实施方式中,当两个参考帧位于当前视频帧的同一侧(例如,这两个参考帧位于当前视频帧之前,或者这两个参考帧位于当前视频帧之后),并且这两个参考帧之间的时间距离满足预定阈值(例如,该时间距离小于(或大于)预定义值)时,可以应用基于双向匹配的运动细化过程706。在一些实施方式中,当这两个参考帧位于当前视频帧的两个不同侧上并且这两个参考帧中的一个与当前视频帧之间的第一时间距离与这两个参考帧中的另一个与当前视频帧之间的第二时间距离相同时,可以应用基于双向匹配的运动细化过程706。
与本公开一致,基于双向匹配的运动细化过程706可以以块级别应用于仿射运动,而子块运动向量细化716可以以子块级别应用于规则运动。这是因为在子块级别仅包括规则运动,而在块级别也可以包括仿射运动(例如,放大/缩小、旋转或透视运动等)。例如,规则运动可包括没有放大/缩小、旋转、透视运动或其它不规则运动的平移运动。在一些实施方式中,规则运动可以等效于2像素仿射运动模型。
图9是根据本公开的一些实施方式的用于视频中的运动细化的示例性方法900的流程图。方法900可以由与视频编码器20或视频解码器30关联的视频处理器实现,并且可包括如下所述的步骤902-906。一些步骤可以是可选的,以执行本文提供的公开的内容。此外,一些步骤可以同时执行,或者以与图9所示的顺序不同的顺序执行。
在步骤902中,视频处理器可从视频中确定视频帧的视频块的初始运动向量。
在步骤903中,视频处理器可基于来自该视频中的第一参考帧的第一参考块和来自该视频中第二参考帧的第二参考块的加权组合来确定匹配目标。例如,视频处理器可基于初始运动向量分别从视频的第一参考帧和第二参考帧确定第一参考块和第二参考块。视频处理器可以分别确定第一参考块的第一权重和第二参考块的第二权重。视频处理器可以使用第一和第二权重来确定第一参考块和第二参考块的加权组合。视频处理器可以基于第一和第二参考块的加权组合来确定匹配目标。
在一些实施方式中,第一和第二权重可与在编码器侧为正常加权双向预测导出的相应权重相同。例如,这些正常加权双向预测可以具有列表0预测的权重和列表1预测的权重。第一和第二权重可以分别等于列表0预测的权重和列表1预测的权重。可替代地,第一权重和第二权重可以具有预定值。例如,第一和第二权重中的每一个可以是0.5。在另一示例中,第一权重可以是0,第二权重可以是1。或者,第一权重可以是1,第二权重可以是0。
在步骤904中,视频处理器可以以视频块级别执行基于双向匹配的运动细化过程,以基于匹配目标迭代地更新初始运动向量,直到获得视频块的细化运动向量。例如,视频处理器可以使用初始运动向量来初始化中间运动向量,基于匹配目标来确定中间运动向量的运动细化,并基于运动细化来更新中间运动向量。视频处理器可以确定是否满足预定迭代停止条件。
响应于满足预定迭代停止条件,视频处理器可将中间运动向量确定为细化运动向量。响应于未满足预定迭代停止条件,视频处理器可继续迭代地确定中间运动向量的运动细化,并基于运动细化来更新中间运动向量,直到满足预定迭代终止条件。
在一些实施方式中,可以通过基于计算的推导、基于搜索的推导或基于计算的推导和基于搜索的推导的组合来确定运动细化。
在步骤906中,视频处理器可通过将视频块的细化运动向量用作该子块的运动向量的起点来细化视频块中每个子块的运动向量。视频处理器可以应用视频块的仿射运动模型以在子块级别细化运动向量。
图10是根据本公开的一些实施方式的用于视频中的运动细化的另一示例性方法1000的流程图。方法1000可以由与视频编码器20或视频解码器30关联的视频处理器实现,并且可以包括如下所述的步骤1002-1016。一些步骤可以是可选的,以执行本文提供的公开的内容。此外,一些步骤可以同时执行,或者以与图10所示的顺序不同的顺序执行。
在步骤1002中,视频处理器可基于视频块的合并列表从视频中确定视频帧的视频块的初始运动向量。
在步骤1004中,视频处理器可基于初始运动向量从视频的第一参考帧和第二参考帧确定匹配目标。
在步骤1006中,视频处理器可使用初始运动向量来初始化视频块的中间运动向量。
在步骤1008中,视频处理器可基于匹配目标确定中间运动向量的运动细化。
在步骤1010中,视频处理器可以基于运动细化来更新中间运动向量。
在步骤1012中,视频处理器可确定是否满足预定迭代停止条件。响应于满足预定的迭代停止条件满足,方法1000可以进行到步骤1014。否则,方法1000可以返回到步骤1008。
在步骤1014中,视频处理器可将中间运动向量确定为视频块的细化运动向量。
在步骤1016中,视频处理器可以生成比特流,该比特流包括用于从合并列表中识别初始运动向量的合并索引、用于识别第一参考帧的第一参考索引和用于识别第二参考帧的第二参考索引。
图11示出了根据本公开的一些实施方式的与用户界面1150耦合的计算环境1110。计算环境1110可以是数据处理服务器的一部分。计算环境1110包括处理器1120、存储器1130和输入/输出(I/O)接口1140。
处理器1120通常控制计算环境1110的整体操作,例如与显示、数据采集、数据通信和图像处理相关的操作。处理器1120可包括至少一个处理器以执行指令以执行上述方法中的所有或一些步骤。此外,处理器1120可以包括促进处理器1120与其它组件之间的交互的至少一个模块。处理器可以是中央处理器(CPU)、微处理器、单片机、图形处理单元(GPU)等。
存储器1130被配置为存储各种类型的数据以支持计算环境1110的操作。存储器1130可以包括预定软件1132。这种数据的示例包括用于在计算环境1110上操作的任何应用程序或方法的指令、视频数据集、图像数据等。存储器1130可以通过使用任何类型的易失性或非易失性存储设备或其组合来实现,例如静态随机存取存储器(SRAM)、电可擦可编程只读存储器存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、闪存、磁盘或光盘。
I/O接口1140提供处理器1120与***接口模块之间的接口,如键盘、点击轮、按键等。按键可以包括但不限于主页按键、开始扫描按键和停止扫描按键。I/O接口1140可以与编码器和解码器耦合。
在一些实施方式中,还提供了一种非暂时性计算机可读存储介质,其包括多个程序,如包括在存储器1130中的程序,并且可由计算环境1110中的处理器1120执行,以执行上述方法。可替代地,该非暂时性计算机可读存储介质可以在其中存储包括由编码器(例如图2中的视频编码器20)使用如解码器(例如图3中的视频解码器30)在解码视频数据时使用的上述编码方法生成的编码视频信息的比特流或数据流。例如,非暂态计算机可读存储介质可以是ROM、随机访问存储器(RAM)、CD-ROM、磁带、软盘、光数据存储设备等。
在一些实施方式中,还提供了包括至少一个处理器(例如处理器1120)的计算设备,以及其中存储有可由至少一个处理器执行的多个程序的非暂时性计算机可读存储介质或存储器1130,其中,在执行多个程序时,至少一个处理器被配置为执行上述方法。
在一些实施方式中,还提供了一种计算机程序产品,包括多个程序,例如,这些程序在存储器1130中,并且可由计算环境1110中的处理器1120执行,以执行上述方法。例如,该计算机程序产品可以包括该非暂时性计算机可读存储介质。
在一些实施方式中,计算环境1110可由至少一个ASIC、DSP、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)、FPGA、GPU、控制器、微控制器、微处理器或其它电子组件来实现,以执行上述方法。
本申请的描述是为了说明的目的而呈现的,并不旨在穷举或限制于本公开。受益于前述描述和相关附图中呈现的教导,本领域普通技术人员将明白许多修改、变化和替代实施方式。
除非另有特别说明,根据本公开的方法的步骤顺序仅用于说明,并且根据本公开方法的步骤不限于上述特别描述的顺序,而是可以根据实际情况进行改变。此外,根据本公开的方法的至少一个步骤可以根据实际要求进行调整、组合或删除。
选择和描述这些示例是为了解释本发明的原理,并使本领域的其他技术人员能够理解本发明的各种实施方式,并最佳地利用基础原理和具有各种修改的各种实施方案,以适合预期的特定用途。因此,应当理解,本公开的范围不限于所公开的实现的具体示例,并且修改和其他实施方式旨在包括在本公开的范畴内。

Claims (20)

1.一种用于视频中的运动细化的视频编解码方法,包括:
至少一个处理器从视频中确定视频帧的视频块的初始运动向量;
所述至少一个处理器基于来自所述视频中的第一参考帧的第一参考块和来自所述视频中的第二参考帧的第二参考块的加权组合来确定匹配目标;
所述至少一个处理器以块级别执行基于双向匹配的运动细化过程,以基于所述匹配目标迭代地更新所述初始运动向量,直到获得所述视频块的细化运动向量;以及
所述至少一个处理器使用所述视频块的所述细化运动向量作为子块的运动向量的起点来细化所述视频块中的每个所述子块的运动向量,其中,以子块级别对所述运动向量的细化应用所述视频块的仿射运动模型。
2.根据权利要求1所述的方法,其中确定所述匹配目标,包括:
分别确定所述第一参考块的第一权重和所述第二参考块的第二权重;以及
使用所述第一权重和所述第二权重确定所述第一参考块和所述第二参考块的所述加权组合。
3.根据权利要求2所述的方法,其中,
所述第一权重和所述第二权重与在编码器侧导出的用于加权双向预测的对应权重相同;或
所述第一权重和所述第二权重具有预定值。
4.根据权利要求1所述的方法,其中,执行所述基于双向匹配的运动细化的过程,包括:
使用所述初始运动向量来初始化中间运动向量;
基于所述匹配目标确定所述中间运动向量的运动细化;以及
基于所述运动细化来更新所述中间运动向量。
5.根据权利要求4所述的方法,其中,执行所述基于双向匹配的运动细化过程,还包括:
确定是否满足预定的迭代停止条件;
响应于满足所述预定迭代停止条件,将所述中间运动向量确定为所述细化运动向量;或
响应于未满足所述预定迭代停止条件,继续迭代地确定所述中间运动向量的运动细化,并基于所述运动细化来更新所述中间运动向量,直到满足所述预定迭代停止条件。
6.根据权利要求5所述的方法,其中,通过基于计算的推导、基于搜索的推导或基于计算的推导和基于搜索的推导的组合来确定所述运动细化。
7.根据权利要求6所述的方法,其中,通过基于计算的推导来确定所述运动细化,其中,确定所述中间运动向量的所述运动细化,包括:
基于所述中间运动向量确定所述视频块的当前预测;
确定所述当前预测与所述匹配目标之间的假设运动模型,其中,所述假设运动模型用于运动细化计算;以及
基于所述假设的运动模型计算所述中间运动向量的所述运动细化。
8.根据权利要求7所述的方法,其中,如果所述中间运动向量收敛,或者迭代总数满足预定阈值,则满足所述预定迭代停止条件。
9.根据权利要求7所述的方法,其中所述假设运动模型的参数总数等于所述仿射运动模型的参数总数。
10.根据权利要求7所述的方法,其中,所述假设运动模型的参数总数不同于所述仿射运动模型的参数总数。
11.根据权利要求6所述的方法,其中,通过基于搜索的推导来确定所述运动细化,其中,确定所述中间运动向量的所述运动细化,包括:
基于所述中间运动向量和预定搜索范围内的第一运动向量变化来生成第一修改运动向量;以及
基于与所述中间运动向量关联的匹配成本和与所述第一修改运动向量关联的当前匹配成本确定是否将所述第一运动向量变化分配为所述运动细化。
12.根据权利要求11所述的方法,其中,与所述第一修改运动向量关联的所述当前匹配成本通过以下方式确定:
基于所述第一修改运动向量确定所述视频块的当前预测;以及
基于所述匹配目标和所述视频块的所述当前预测,确定与所述第一修改运动向量关联的所述当前匹配成本。
13.根据权利要求11所述的方法,还包括:
响应于与所述第一修改运动向量关联的所述当前匹配成本小于与所述中间运动向量关联的所述匹配成本,将所述运动细化导出为所述第一运动向量变化,以使所述中间运动向量被更新为所述第一修改运动向量。
14.根据权利要求11所述的方法,还包括:
响应于与所述第一修改运动向量关联的所述当前匹配成本大于或等于与所述中间运动向量关联的所述匹配成本,
不将所述第一运动向量变化分配为所述运动细化;
基于所述中间运动向量和所述预定搜索范围内的第二运动向量变化来生成第二修改运动向量;以及
基于与所述中间运动向量关联的所述匹配成本和与所述第二修改运动向量关联的另一当前匹配成本,确定是否将所述第二运动向量变化分配为所述运动细化。
15.根据权利要求11所述的方法,其中,如果检测和处理了所述预定搜索范围内的有效运动向量变化,或者迭代总数满足预定阈值,则满足所述预定迭代停止条件。
16.根据权利要求6所述的方法,其中,所述运动细化是通过所述基于计算的推导和所述基于搜索的推导的组合来确定的,其中,执行所述基于双向匹配的运动细化过程包括:
基于所述匹配目标,通过所述基于计算的推导来确定所述中间运动向量的所述运动细化;
基于通过所述基于计算的推导确定的所述运动细化来更新所述中间运动向量;
基于所述匹配目标,通过所述基于搜索的推导再次确定所述中间运动向量的所述运动细化;以及
基于通过所述基于搜索的推导确定的所述运动细化,再次更新所述中间运动向量。
17.根据权利要求1所述的方法,其中,当满足以下条件之一时,执行所述基于双向匹配的运动细化过程以获得所述细化运动向量:
所述第一参考帧和所述第二参考帧中的一个在所述视频帧之前,并且所述第一参考帧和所述第二参考帧中的另一个在所述视频帧之后;或
所述第一参考帧和所述第二参考帧都在所述视频帧之前或之后,并且所述第一参考帧与所述第二参考帧之间的时间距离满足预定阈值。
18.一种用于视频中的运动细化的视频编解码装置,包括:
存储器,所述存储器被配置为存储视频的至少一个视频帧,所述视频帧包括至少一个视频块;以及
至少一个处理器,所述至少一个处理器被配置为:
确定所述视频块的初始运动向量;
基于来自所述视频中的第一参考帧的第一参考块和来自所述视频中的第二参考帧的第二参考块的加权组合来确定匹配目标;
以块级别执行基于双向匹配的运动细化过程,以基于所述匹配目标迭代地更新所述初始运动向量,直到获得所述视频块的细化运动向量;以及
使用所述视频块的所述细化运动向量作为子块的运动向量的起点来细化所述视频中的每个所述子块的运动向量,其中,所述视频处理器应用所述视频块的仿射运动模型来以子块级别细化所述运动向量。
19.根据权利要求18所述的视频编解码装置,其中,为了确定所述匹配目标,所述至少一个处理器还被配置为:
分别确定所述第一参考块的第一权重和所述第二参考块的第二权重;以及
使用所述第一权重和所述第二权重确定所述第一参考块和所述第二参考块的所述加权组合。
20.一种非暂时性计算机可读存储介质,其中存储有指令,至少一个所述指令在由至少一个处理器执行时使所述至少一个处理器执行用于视频中的运动细化的视频编解码方法,所述方法包括:
基于视频块的合并列表从视频中确定视频帧的所述视频块的初始运动向量;
基于来自所述视频中的第一参考帧的第一参考块和来自所述视频中的第二参考帧的第二参考块的加权组合来确定匹配目标;
以块级别执行基于双向匹配的运动细化过程,以基于所述匹配目标迭代地更新所述初始运动向量,直到获得所述视频块的细化运动向量;
使用所述视频块的所述细化运动向量作为子块的运动向量的起点来细化所述视频块中的每个所述子块的运动向量,其中,以子块级别对所述运动向量的细化应用所述视频块的仿射运动模型;以及
生成比特流,所述比特流包括用于从所述合并列表识别所述初始运动向量的合并索引、用于识别所述第一参考帧的第一参考索引和用于识别所述第二参考帧的第二参考索引,
其中,所述比特流存储在所述非暂时性计算机可读存储介质中。
CN202280043036.0A 2021-06-17 2022-06-16 用于视频编解码中的仿射运动补偿的具有双向匹配的运动细化 Pending CN117501694A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163211682P 2021-06-17 2021-06-17
US63/211,682 2021-06-17
PCT/US2022/033803 WO2022266328A1 (en) 2021-06-17 2022-06-16 Motion refinement with bilateral matching for affine motion compensation in video coding

Publications (1)

Publication Number Publication Date
CN117501694A true CN117501694A (zh) 2024-02-02

Family

ID=84525856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280043036.0A Pending CN117501694A (zh) 2021-06-17 2022-06-16 用于视频编解码中的仿射运动补偿的具有双向匹配的运动细化

Country Status (6)

Country Link
US (1) US20240129519A1 (zh)
EP (1) EP4356610A1 (zh)
JP (1) JP2024522761A (zh)
KR (1) KR20240015722A (zh)
CN (1) CN117501694A (zh)
WO (1) WO2022266328A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11895302B2 (en) * 2021-06-29 2024-02-06 Qualcomm Incorporated Adaptive bilateral matching for decoder side motion vector refinement

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102883160B (zh) * 2009-06-26 2016-06-29 华为技术有限公司 视频图像运动信息获取方法、装置及设备、模板构造方法
US10805630B2 (en) * 2017-04-28 2020-10-13 Qualcomm Incorporated Gradient based matching for motion search and derivation
AU2018271194B2 (en) * 2017-05-17 2021-04-08 Kt Corporation Method and device for video signal processing
CN116684586A (zh) * 2018-10-05 2023-09-01 Lg电子株式会社 解码设备、编码设备及发送针对图像的数据的设备

Also Published As

Publication number Publication date
JP2024522761A (ja) 2024-06-21
US20240129519A1 (en) 2024-04-18
KR20240015722A (ko) 2024-02-05
WO2022266328A1 (en) 2022-12-22
EP4356610A1 (en) 2024-04-24

Similar Documents

Publication Publication Date Title
RU2705428C2 (ru) Вывод информации движения для подблоков при видеокодировании
CN116170586B (zh) 对视频信号进行解码或编码的方法、计算装置和存储介质
TW201711463A (zh) 判定用於視訊寫碼之照明補償狀態之系統及方法
TW201703531A (zh) 判定用於視訊寫碼之照明補償狀態之系統及方法
CN110876282B (zh) 运动矢量预测方法以及相关装置
CN114175658A (zh) 用于改进视频编解码中的运动估计的方法和装置
CN114270860A (zh) 针对仿射模式的自适应运动矢量分辨率
CN112997494B (zh) 用于视频编码的运动矢量存储
US20240129519A1 (en) Motion refinement with bilateral matching for affine motion compensation in video coding
CN116868571A (zh) 对于帧间预测的改进的局部光照补偿
CN115278256B (zh) 对视频数据进行解码的方法、装置和介质
CN114363611B (zh) 用于视频编码的方法和计算设备
CN113940081A (zh) 使用利用光流的预测细化的视频编解码的方法和装置
CN116980591B (zh) 视频编码的方法、计算设备和存储介质
US20230011286A1 (en) Spatial neighbor based affine motion derivation
US20240146906A1 (en) On temporal motion vector prediction
CN117730535A (zh) 视频编解码中用于仿射运动补偿预测的几何分割
CN118339832A (zh) 解码器侧运动信息推导
CN116636218A (zh) 利用多方向帧内预测的视频编解码
WO2024044404A1 (en) Methods and devices using intra block copy for video coding
WO2023205185A1 (en) Methods and devices for candidate derivation for affine merge mode in video coding
WO2023137234A1 (en) Methods and devices for candidate derivation for affine merge mode in video coding
WO2023192335A1 (en) Methods and devices for candidate derivation for affine merge mode in video coding
CN117981318A (zh) 用于在视频编解码中进行帧内预测的自适应编解码顺序
CN118235401A (zh) 帧内预测模式信令

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination