CN113615194B - 使用抽取预测块的dmvr - Google Patents

使用抽取预测块的dmvr Download PDF

Info

Publication number
CN113615194B
CN113615194B CN202080017741.4A CN202080017741A CN113615194B CN 113615194 B CN113615194 B CN 113615194B CN 202080017741 A CN202080017741 A CN 202080017741A CN 113615194 B CN113615194 B CN 113615194B
Authority
CN
China
Prior art keywords
motion vector
candidate
sample
prediction
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202080017741.4A
Other languages
English (en)
Other versions
CN113615194A (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN113615194A publication Critical patent/CN113615194A/zh
Application granted granted Critical
Publication of CN113615194B publication Critical patent/CN113615194B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/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
    • 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
    • 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/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • 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/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/46Embedding additional information in the video signal during the compression process
    • 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/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/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Abstract

本公开提供了一种帧间预测方法,包括以下步骤:获取用于双向预测的初始运动矢量和参考图像;根据初始运动矢量和候选运动矢量获取参考图像中的候选样本位置集合,其中每个候选运动矢量由初始运动矢量和各自的运动矢量偏移导出,并且其中每个候选样本位置集合对应于每个候选运动矢量;从每个候选样本位置集合中获取各自的样本位置集合;在每个样本位置集合内计算每个候选运动矢量的匹配代价;基于计算出的每个候选运动矢量的匹配代价获取细化的运动矢量;以及基于细化的运动矢量获取当前块的预测值。

Description

使用抽取预测块的DMVR
本专利申请要求于2019年3月5日在印度提交的申请号为IN201931008547的专利申请的优先权。上述专利申请的公开内容通过引用全部并入本文。
技术领域
本申请(公开)的实施例一般涉及图像处理领域,更具体地,涉及在解码器侧运动细化方法中的搜索期间使用的预测样本集合。
背景技术
视频编码(视频编码和解码)用于广泛的数字视频应用中,例如广播数字TV、互联网和移动网络上的视频传输、实时会话应用(如视频聊天、视频会议、DVD和蓝光光盘)、视频内容采集和编辑系统、以及安全应用中的摄像机。
即使是描绘相对较短的视频也可能需要大量的视频数据,这可能导致当数据要在带宽容量有限的通信网络上进行流式传输或以其他方式进行传送时出现困难。因此,视频数据通常在通过现代电信网络传输之前被压缩。当视频存储在存储设备上时,因为存储器资源可能有限,视频的大小也可能是一个问题。视频压缩设备通常在传输或存储之前在源处使用软件和/或硬件对视频数据进行编码,从而减少了表示数字视频图像所需的数据量。然后,压缩的数据在目的地处由解码视频数据的视频解压缩设备接收。随着有限的网络资源和不断增长的对更高视频质量的需求,期望改进的压缩和解压缩技术在几乎不牺牲图像质量的情况下提高压缩比。
发明内容
本公开的实施例提供了用于编码和解码的装置和方法。
前述和其他目的通过独立权利要求的主题来实现。进一步的实现形式根据从属权利要求、说明书和附图是明显的。
根据第一方面,本公开提供了一种帧间预测方法,包括以下步骤:获取用于双向预测的初始运动矢量和参考图像;根据候选运动矢量获取参考图像中的候选样本位置集合,其中每个候选运动矢量由初始运动矢量和各自的运动矢量偏移导出,并且其中每个候选样本位置集合对应于每个候选运动矢量;从每个候选样本位置集合中获取各自的样本位置集合;在每个样本位置集合内计算每个候选运动矢量的匹配代价;基于计算出的每个候选运动矢量的匹配代价获取细化的运动矢量;以及基于细化的运动矢量获取当前块(block)的预测值。
根据第一方面所述的方法降低了与生成用于计算匹配代价值的预测样本相关联的预测过程的复杂性。
在根据第一方面所述的方法的可能实现形式中,初始运动矢量和/或参考图像是基于比特流中用信号通知的指示信息获得的。因为初始运动矢量是在比特流中用信号通知的,所以不可能以非常高的准确性表示初始运动矢量,因为这将增加比特率,因此即使当初始运动矢量的准确性不是很高时,也利用运动矢量细化过程来改善初始运动矢量。
在根据前述任何实现或第一方面所述的方法的可能实现形式中,初始运动矢量是根据比特流中用信号通知的运动矢量预测值和运动矢量差值获得的。因此,可以基于比特流中定义初始运动矢量的指示信息和用信号通知的差值来确定运动矢量。
在根据前述实现所述的方法的可能实现形式中,运动矢量预测值由比特流中用信号通知的索引来指示,其中索引用于指示候选矢量列表中的位置。这是将初始运动矢量包括在比特流中的关于比特数的有效方式。
可以基于比特流中的指示信息来确定初始运动矢量。例如,可以在比特流中用信号通知索引,其中索引指示候选运动矢量列表中的位置。在另一个示例中,可以在比特流中用信号通知运动矢量预测值索引和运动矢量差值。
在根据前述任何实现或第一方面所述的方法的可能实现形式中,匹配代价是使用相似性度量、不相似性度量、绝对差值和(sum of absolute differences,SAD)、均值移除绝对差和(mean removed sum of absolute differences,MRSAD)或误差平方和(sum ofsquared errors,SSE)来计算的。这些是计算匹配代价的有用的函数。
在根据前述任何实现或第一方面所述的方法的可能实现形式中,候选样本位置集合在边界矩形区域内,并且边界矩形区域是使用初始运动矢量、当前块的左上角位置、以及水平方向和垂直方向上的运动矢量细化范围计算的。
在根据前述任何实现或第一方面所述的方法的可能实现形式中,通过候选样本位置集合的规则抽取(decimation)来获取样本位置集合。与不使用任何抽取的方法相比,该方法提高了压缩效率。
在根据前述任何实现或第一方面所述的方法的可能实现形式中,候选样本位置集合中交替行上的样本位置被选择作为样本位置集合。这提高了方法的速度并降低了存储要求。
在根据前述任何实现或第一方面所述的方法的可能实现形式中,候选样本位置集合中的插值样本的位置的拉链图案(Zipper pattern)被选择作为样本位置集合。例如,偶数奇偶行可以在左(或右)对齐的预定数量的连续样本位置产生第一预测样本,奇数奇偶行可以在右(或左)对齐的预定数量的连续样本位置产生预测样本。
在根据前述任何实现或第一方面所述的方法的可能实现形式中,初始运动矢量是第一运动矢量或第二运动矢量,并且第一运动矢量和第二运动矢量对应于不同的参考图像列表。
根据第二方面,本公开提供了一种编码器,包括用于执行根据第一方面或前述任何实现所述的方法的处理电路。
根据第三方面,本公开提供了一种解码器,包括用于执行根据第一方面或前述任何实现所述的方法的处理电路。
根据第四方面,本公开提供了一种计算机程序产品,包括用于执行根据第一方面或前述任何实现所述的方法的程序代码。
根据第五方面,本发明提供了一种解码器,包括:一个或多个处理器;以及非暂时性计算机可读存储介质,其耦合到处理器并存储由处理器执行的编程,其中当该编程由处理器执行时,配置解码器执行根据第一方面或前述任何实现所述的方法。
根据第六方面,本公开提供了一种编码器,包括:一个或多个处理器;以及非暂时性计算机可读存储介质,其耦合到处理器并存储由处理器执行的编程,其中当该编程由处理器执行时,配置编码器执行根据第一方面或前述任何实现所述的方法。
根据第七方面,本公开提供了一种设备,包括:运动矢量细化装置,用于:获取用于双向预测的初始运动矢量和参考图像;根据初始运动矢量和候选运动矢量获取参考图像中的候选样本位置集合,其中每个候选运动矢量由初始运动矢量和每个预设运动矢量偏移导出,并且其中每个候选样本位置集合对应于每个候选运动矢量;从每个候选样本位置集合中获取每个样本位置集合;在每个样本位置集合内计算每个候选运动矢量的匹配代价;基于计算出的每个候选运动矢量的匹配代价获取细化的运动矢量;以及基于细化的运动矢量获取当前块的预测值。因此,该设备(特别是运动矢量细化装置)被配置为执行根据第一方面所述的方法的方法步骤。
在附图和以下说明中阐述一个或多个实施例的细节。其他特征、目的和优点根据说明书、附图和权利要求将变得明显。
附图说明
下面,参照附图更详细地描述本发明的实施例,其中:
图1A是示出用于实现本发明实施例的视频编码系统的示例的框图。
图1B是示出用于实现本发明实施例的视频编码系统的另一示例的框图。
图2是示出用于实现本发明实施例的视频编码器的示例的框图。
图3是示出用于实现本发明实施例的视频解码器的示例结构的框图。
图4是示出编码装置或解码装置的示例的框图。
图5是示出编码装置或解码装置的另一示例的框图。
图6是关于使用示例垂直抽取进行细化的插值样本的示例。
图7A是关于用于计算匹配代价的样本的示例。
图7B是关于用于计算匹配代价的样本的另一示例。
图8A是关于使用示例垂直抽取进行细化的插值样本的另一示例。
图8B是关于用于计算匹配代价的样本的示例。
图8C是关于用于计算匹配代价的样本的另一示例。
图9是关于获取最终预测样本的一个实施例的流程图。
图10A是关于拉链式(Zipped)插值样本的示例。
图10B是用于计算重叠匹配代价的样本的示例。
图10C是用于计算重叠匹配代价的样本的示例。
图11是关于根据本公开第一方面的实施例的流程图。
图12示出了包括运动矢量细化装置的帧间预测单元的实施例。
在下文中,如果没有另外明确说明,相同的附图标记表示相同或至少功能等同的特征。
具体实施方式
在下面的描述中参考了附图,这些附图形成了本公开的一部分,并且通过图示的方式示出了本发明实施例的特定方面或者可以使用本发明实施例的特定方面。应当理解,本发明的实施例可以用于其他方面,并且包括图中未示出的结构或逻辑变化。因此,下面的详细描述不是限制性的,本发明的范围由所附权利要求限定。
例如,应当理解,结合所描述的方法的公开对于用于执行该方法的相应设备或系统也是成立的,反之亦然。例如,如果描述了一个或多个特定的方法步骤,相应的设备可以包括一个或多个单元,例如功能单元,以执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或者多个单元中的每个执行多个步骤中的一个或多个),即使这一个或多个单元没有在图中明确描述或示出。另一方面,例如,如果基于一个或多个单元(例如功能单元)描述了特定装置,相应的方法可以包括执行一个或多个单元的功能的一个或多个步骤(例如,一个步骤执行一个或多个单元的功能,或者多个步骤中的每个执行多个单元中的一个或多个的功能),即使这一个或多个步骤没有在图中明确描述或示出。进一步地,应当理解,除非另外特别指出,否则本文描述的各种示例性实施例和/或方面的特征可以彼此组合。
视频编码通常是指形成视频或视频序列的图像序列的处理。代替术语“图像”,术语“帧”或“图片”可以在视频编码领域中用作同义词。视频编码(或一般的编码)包括视频编码和视频解码两部分。视频编码在源侧执行,通常包括处理(例如通过压缩)原始视频图像,以减少表示视频图像所需的数据量(用于更有效的存储和/或传输)。视频解码在目的地侧执行,并且通常包括与编码器相比的逆处理,以重构视频图像。涉及视频图像(或一般图像)的“编码”的实施例应理解为涉及视频图像或各个视频序列的“编码”或“解码”。编码部分和解码部分的组合也被称为编解码(Coding and Decoding,编码和解码)。
在无损视频编码的情况下,可以重构原始视频图像,即经重构的视频图像具有与原始视频图像相同的质量(假设在存储或传输期间没有传输损失或其他数据损失)。在有损视频编码的情况下,例如通过量化来执行进一步的压缩,以减少表示视频图像的数据量,其不能在解码器处完全重构,即经重构的视频图像的质量比原始视频图像的质量低或差。
几个视频编码标准属于“有损混合视频编解码”组(即,将样本域中的空间和时间预测与变换域中用于应用量化的2D变换编码相结合)。视频序列的每个图像通常被分区成非重叠块的集合,并且编码通常在块级别上执行。换句话说,在编码器处,通常在块(视频块)级别上处理(即编码)视频,例如通过使用空间(帧内图像)预测和/或时间(帧间图像)预测来生成预测块,从当前块(当前处理/待处理的块)中减去预测块以获得残差块,变换残差块并在变换域中量化残差块以减少待传输的数据量(压缩),而在解码器处,将与编码器相比的逆处理应用于经编码或压缩的块,以重构当前块用于表示。此外,编码器复制解码器处理环路,使得两者将生成相同的预测(例如,帧内和帧间预测)和/或重构,用于处理(即,编码)后续块。
在视频编码系统10的以下实施例中,基于图1至图3描述视频编码器20和视频解码器30。
图1A是示出示例编码系统10的示意框图,编码系统10例如是可以利用本申请技术的视频编码系统10(或简称为编码系统10)。视频编码系统10的视频编码器20(或简称为编码器20)和视频解码器30(或简称为解码器30)表示可以用于执行根据本申请中描述的各种示例的技术的设备示例。
如图1A所示,编码系统10包括源设备12,用于(例如向用于解码经编码的图像数据21的目的地设备14)提供经编码的图像数据21。
源设备12包括编码器20,并且可以附加地,即可选地,包括图像源16、预处理器(或预处理单元)18(例如图像预处理器18)、以及通信接口或通信单元22。
图像源16可以包括或可以是任何类型的图像捕获设备,例如用于捕获真实世界图像的照相机,和/或任何类型的图像生成设备,例如用于生成计算机动画图像的计算机图形处理器,或任何类型的用于获取和/或提供真实世界图像、计算机生成的图像(例如屏幕内容、虚拟现实(virtual reality,VR)图像)和/或其任意组合(例如增强现实(augmentedreality,AR)图像)的其他设备。图像源可以是任何类型的存储任何前述图像的存储器或储存器。
与预处理器18和由预处理单元18执行的处理不同,图像或图像数据17也可以被称为原始图像或原始图像数据17。
预处理器18用于接收(原始)图像数据17,并对图像数据17执行预处理,以获得经预处理的图像19或经预处理的图像数据19。由预处理器18执行的预处理可以例如包括修整、颜色格式转换(例如从RGB到YCbCr)、颜色校正或去噪。可以理解,预处理单元18可以是可选组件。
视频编码器20用于接收经预处理的图像数据19并提供经编码的图像数据21(进一步的细节将在下面描述,例如基于图2)。
源设备12的通信接口22可以用于接收经编码的图像数据21,并通过通信信道13将经编码的图像数据21(或其任何进一步处理的版本)发送到另一设备,例如目的地设备14或任何用于存储或直接重构的其他设备。
目的地设备14包括解码器30(例如视频解码器30),并且可以附加地,即可选地,包括通信接口或通信单元28、后处理器32(或后处理单元32)和显示设备34。
目的地设备14的通信接口28用于(例如直接从源设备12或从任何其他源(例如存储设备,比如经编码的图像数据存储设备))接收经编码的图像数据21(或其任何进一步处理的版本),并将经编码的图像数据21提供给解码器30。
通信接口22和通信接口28可以用于经由源设备12和目的地设备14之间的直接通信链路(例如直接的有线或无线连接,或者经由任何类型的网络,比如有线或无线网络或其任意组合,或者任何类型的私有和公共网络,或其任意组合)来发送或接收经编码的图像数据21或经编码的数据。
通信接口22可以例如用于将经编码的图像数据21封装成适当的格式,例如分组,和/或使用任何类型的传输编码或处理来处理经编码的图像数据,以便在通信链路或通信网络上传输。
形成通信接口22的对应物的通信接口28可以例如用于接收传输的数据,并使用任何类型的相应的传输解码或处理和/或解封装来处理传输数据,以获得经编码的图像数据21。
通信接口22和通信接口28都可以被配置为单向通信接口(如图1A中从源设备12指向目的地设备14的通信信道13的箭头所示)或者双向通信接口,并且可以用于例如发送和接收消息,以便例如建立连接,确认和交换与通信链路和/或数据传输(例如经编码的图像数据传输)相关的任何其他信息。
解码器30用于接收经编码的图像数据21并提供经解码的图像数据31或经解码的图像31(进一步的细节将在下面描述,例如基于图3或图5)。
目的地设备14的后处理器32用于对经解码的图像数据31(也称为经重构的图像数据),例如经解码的图像31进行后处理,以获得经后处理的图像数据33,例如经后处理的图像33。由后处理单元32执行的后处理可以包括例如颜色格式转换(例如从YCbCr到RGB)、颜色校正、修整或重新采样,或者任何其他处理,例如用于准备经解码的图像数据31以供显示,例如由显示设备34显示。
目的地设备14的显示设备34用于接收经后处理的图像数据33,以便(例如向用户或观看者)显示图像。显示设备34可以是或可以包括任何类型的用于表示经重构的图像的显示器,例如集成的或外部的显示器或监视器。显示器可以例如包括液晶显示器(liquidcrystal display,LCD)、有机发光二极管(organic light emitting diode,OLED)显示器、等离子显示器、投影仪、微型LED显示器、硅基液晶(liquid crystal on silicon,LCoS)、数字光处理器(digital light processor,DLP)或任何其他类型的显示器。
尽管图1A将源设备12和目的地设备14描绘为分离的设备,但是设备的实施例也可以包括两者或两个功能,源设备12或相应的功能以及目的地设备14或相应的功能。在这样的实施例中,源设备12或相应的功能和目的地设备14或相应的功能可以使用相同的硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。
基于该描述,对于本领域技术人员来说显而易见的是,如图1A所示,源设备12和/或目的地设备14内的不同单元或功能的存在和(准确的)功能分割可以根据实际设备和应用而变化。
编码器20(例如视频编码器20)或解码器30(例如视频解码器30)或编码器20和解码器30两者可以通过如图1B所示的处理电路来实现,例如一个或多个微处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specificintegrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件、专用视频编码或其任意组合。编码器20可以经由处理电路46来实现,以体现如关于图2的编码器20和/或本文描述的任何其他编码器系统或子系统所讨论的各种模块。解码器30可以经由处理电路46来实现,以体现如关于图3的解码器30和/或本文描述的任何其他解码器系统或子系统所讨论的各种模块。处理电路可以用于执行稍后讨论的各种操作。如图5所示,如果这些技术部分地以软件实现,则设备可以将软件的指令存储在合适的非暂时性计算机可读存储介质中,并且可以使用一个或多个处理器在硬件中执行指令以执行本公开的技术。视频编码器20和视频解码器30中的任一个都可以集成为单个设备中的组合编解码器(encoder/decoder,CODEC)的一部分,例如,如图1B所示。
源设备12和目的地设备14可以包括多种设备中的任何一种,包括任何类型的手持或固定设备,例如笔记本或膝上型计算机、移动电话、智能电话、平板或平板计算机、照相机、台式计算机、机顶盒、电视、显示设备、数字媒体播放器、视频游戏控制台、视频流设备(比如内容服务服务器或内容传送服务器)、广播接收器设备、广播发射器设备等,并且可以不使用或使用任何类型的操作系统。在一些情况下,源设备12和目的地设备14可以被配备用于无线通信。因此,源设备12和目的地设备14可以是无线通信设备。
在一些情况下,图1A所示的视频编码系统10仅仅是一个示例,本申请的技术可以应用于视频编码设置(例如,视频编码或视频解码),其不一定包括编码设备和解码设备之间的任何数据通信。在其他示例中,从本地存储器中检索数据,通过网络流式传输数据等。视频编码设备可以将数据编码和存储到存储器中,和/或视频解码设备可以从存储器中检索和解码数据。在一些示例中,编码和解码由彼此不通信的设备执行,而是简单地将数据编码到存储器和/或从存储器检索和解码数据。
为了描述方便,本文描述了本发明的实施例,例如,参考高效率视频编码(High-Efficiency Video Coding,HEVC)或通用视频编码(Versatile Video coding,VVC)的参考软件,由ITU-T视频编码专家组(Video Coding Experts Group,VCEG)和ISO/IEC运动图像专家组(Motion Picture Experts Group,MPEG)的视频编码联合协作组(JointCollaboration Team on Video Coding,JCT-VC)开发的下一代视频编码标准。本领域普通技术人员将理解,本发明的实施例不限于HEVC或VVC。
编码器和编码方法
图2示出了用于实现本申请技术的示例视频编码器20的示意性框图。在图2的示例中,视频编码器20包括输入201(或输入接口201)、残差计算单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、环路滤波器单元220、解码图像缓冲器(decoded picture buffer,DPB)230、模式选择单元260、熵译码单元270和输出272(或输出接口272)。模式选择单元260可以包括帧间预测单元244、帧内预测单元254和分区单元262。帧间预测单元244可以包括运动估计单元和运动补偿单元(未示出)。如图2所示的视频编码器20也可以被称为混合视频编码器或根据混合视频编解码器的视频编码器。
残差计算单元204、变换处理单元206、量化单元208、模式选择单元260可以被称为形成编码器20的前向信号路径,而逆量化单元210、逆变换处理单元212、重构单元214、缓冲器216、环路滤波器220、解码图像缓冲器(DPB)230、帧间预测单元244和帧内预测单元254可以被称为形成视频编码器20的后向信号路径,其中视频编码器20的后向信号路径对应于解码器的信号路径(参见图3中的视频解码器30)。逆量化单元210、逆变换处理单元212、重构单元214、环路滤波器220、解码图像缓冲器(DPB)230、帧间预测单元244和帧内预测单元254也被称为形成视频编码器20的“内置解码器”。
图像&图像分区(图像&块)
编码器20可以用于例如经由输入201接收图像17(或图像数据17),例如形成视频或视频序列的图像序列中的图像。接收的图像或图像数据也可以是经预处理的图像19(或经预处理的图像数据19)。为了简单起见,下面的描述涉及图像17。图像17也可以被称为当前图像或待编码的图像(特别是在视频编码中,以将当前图像与其他图像(例如同一视频序列,即也包括当前图像的视频序列中的先前编码和/或解码的图像)区分开来)。
(数字)图像是或可以被视为具有强度值的样本的二维阵列或矩阵。阵列中的样本也可以称为像素(图像元素的简称)或像元(pel)。阵列或图像的水平和垂直方向(或轴)上的样本数量定义了图像的大小和/或分辨率。对于颜色的表示,通常使用三种颜色分量,即图像可以被表示或包括三个样本阵列。在RBG格式或颜色空间中,图像包括相应的红色、绿色和蓝色样本阵列。然而,在视频编码中,每个像素通常以亮度和色度格式或颜色空间表示,例如YCbCr,其包括由Y指示的亮度分量(有时也使用L)和由Cb和Cr指示的两个色度分量。亮度(或简称为luma)分量Y表示亮度或灰度级强度(例如像在灰度级图像中),而两个色度(或简称为chroma)分量Cb和Cr表示色度或颜色信息分量。因此,YCbCr格式的图像包括亮度样本值(Y)的亮度样本阵列和色度值(Cb和Cr)的两个色度样本阵列。RGB格式的图像可以转换或变换成YCbCr格式,反之亦然,这个过程也称为颜色变换或转换。如果图像是单色的,则图像可以仅包括亮度样本阵列。因此,图像可以是例如单色格式的亮度样本阵列或者4:2:0、4:2:2和4:4:4彩色格式的亮度样本阵列和两个相应的色度样本阵列。
视频编码器20的实施例可以包括图像分区单元(图2中未示出),用于将图像17分区成多个(通常是非重叠的)图像块203。这些块也可以被称为根块、宏块(H.264/AVC)或译码树块(coding tree block,CTB)或译码树单元(coding tree unit,CTU)(H.265/HEVC和VVC)。图像分区单元可以用于对视频序列的所有图像使用相同的块大小和定义块大小的相应网格,或者在图像或图像子集或图像组之间改变块大小,并且将每个图像分区成相应的块。
在另外的实施例中,视频编码器可以用于直接接收图像17的块203,例如形成图像17的一个、几个或所有块。图像块203也可以称为当前图像块或待编码的图像块。
像图像17一样,图像块203也是或可以被视为具有强度值(样本值)的样本的二维阵列或矩阵,但其尺寸小于图像17。换句话说,块203可以包括例如一个样本阵列(例如,在单色图像17的情况下是亮度阵列,或者在彩色图像的情况下是亮度或色度阵列)或者三个样本阵列(例如,在彩色图像17的情况下是亮度阵列和两个色度阵列)或者任何其他数量和/或类型的阵列,这取决于所应用的颜色格式。块203的水平和垂直方向(或轴)上的样本数量定义了块203的大小。因此,块可以是例如MxN(M列乘N行)样本阵列,或者MxN变换系数阵列。
如图2所示的视频编码器20的实施例可以用于逐块编码图像17,例如,编码和预测是按块203执行的。
如图2所示的视频编码器20的实施例可以进一步用于通过使用切片(也称为视频切片)来分区和/或编码图像,其中图像可以被分区成一个或多个切片(通常是非重叠的)或使用一个或多个切片(通常是非重叠的)编码,并且每个切片可以包括一个或多个块(例如,CTU)。
如图2所示的视频编码器20的实施例可以进一步用于通过使用瓦片组(也称为视频瓦片组)和/或瓦片(也称为视频瓦片)来分区和/或编码图像,其中图像可以被分区成一个或多个瓦片组(通常是非重叠的)或使用一个或多个瓦片组(通常是非重叠的)编码,并且每个瓦片组可以包括例如一个或多个块(例如CTU)或一个或多个瓦片,其中每个瓦片例如可以是矩形形状并且可以包括一个或多个块(例如CTU),例如完整的或部分的块。
残差计算
残差计算单元204可以用于基于图像块203和预测块265(稍后提供关于预测块265的进一步细节)来计算残差块205(也称为残差205),例如通过从图像块203的样本值中减去预测块265的样本值,逐个样本(逐个像素)地获得样本域中的残差块205。
变换
变换处理单元206可以用于对残差块205的样本值应用变换,例如离散余弦变换(discrete cosine transform,DCT)或离散正弦变换(discrete sine transform,DST),以获得变换域中的变换系数207。变换系数207也可以被称为变换残差系数,并且表示变换域中的残差块205。
变换处理单元206可以用于应用DCT/DST的整数近似,例如为H.265/HEVC规定的变换。与正交DCT变换相比,这种整数近似通常按一定的因子进行缩放。为了保持由正变换和逆变换所处理的残差块的范数,应用附加的缩放因子作为变换过程的一部分。缩放因子通常基于某些约束来选择,例如缩放因子对于移位操作是2的幂、缩放因子是变换系数的比特深度、精度和实现代价之间的折衷等。具体的缩放因子例如由逆变换处理单元212(以及相应的逆变换,例如由视频解码器30处的逆变换处理单元312执行的)为逆变换指定,并且可以相应地指定编码器20处的正变换的相应缩放因子,例如由变换处理单元206指定。
视频编码器20(分别为变换处理单元206)的实施例可以用于输出变换参数,例如一个或多个变换的类型,例如直接输出或者经由熵译码单元270编码或压缩,使得例如视频解码器30可以接收并使用变换参数进行解码。
量化
量化单元208可以用于(例如通过应用标量量化或矢量量化)量化变换系数207以获得量化的系数209。量化的系数209也可以被称为量化的变换系数209或量化的残差系数209。
量化过程可以减少与一些或所有变换系数207相关联的比特深度。例如,在量化期间,n比特变换系数可以向下舍入到m比特变换系数,其中n大于m。量化的程度可以通过调整量化参数(quantization parameter,QP)来修改。例如,对于标量量化,可以应用不同的缩放来实现更精细或更粗略的量化。较小的量化步长对应于较精细的量化,而较大的量化步长对应于较粗略的量化。适用的量化步长可以由量化参数(QP)来指示。量化参数例如可以是适用的量化步长的预定义集合的索引。例如,小量化参数可以对应于精细量化(小量化步长),大量化参数可以对应于粗略量化(大量化步长),反之亦然。量化可以包括除以量化步长,相应的和/或逆去量化(例如由逆量化单元210执行的)可以包括乘以量化步长。根据一些标准的实施例,例如HEVC,可以用于使用量化参数来确定量化步长。通常,可以使用包括除法的方程的定点近似,基于量化参数来计算量化步长。可以为量化和去量化引入额外的缩放因子,以恢复残差块的范数,这是由于在量化步长和量化参数的方程的定点近似中使用的缩放,残差块的范数可能被修改。在一个示例实现中,逆变换的缩放和去量化可以被组合。可替代地,可以使用定制的量化表,定制的量化表从编码器用信号通知(例如在比特流中)给解码器。量化是有损操作,其中损失随着量化步长的增加而增加。
视频编码器20(分别为量化单元208)的实施例可以用于输出量化参数(QP),例如直接输出或者经由熵译码单元270编码,使得例如视频解码器30可以接收并应用量化参数进行解码。
逆量化
逆量化单元210用于对量化的系数应用量化单元208的逆量化,以获得去量化的系数211,例如通过基于或使用与量化单元208相同的量化步长,应用由量化单元208应用的量化方案的逆。去量化的系数211也可以被称为去量化的残差系数211,并且对应于变换系数207,尽管由于量化的损失,其通常与变换系数不相同。
逆变换
逆变换处理单元212用于应用由变换处理单元206应用的变换的逆变换,例如逆离散余弦变换(DCT)或逆离散正弦变换(DST)或其他逆变换,以获得样本域中的经重构的残差块213(或对应的去量化的系数213)。经重构的残差块213也可以被称为变换块213。
重构
重构单元214(例如加算器或加法器214)用于将变换块213(即经重构的残差块213)加到预测块265,以获得样本域中的经重构的块215,例如通过逐个样本地将经重构的残差块213中的样本值和预测块265中的样本值相加。
滤波
环路滤波器单元220(或简称为“环路滤波器”220)用于对经重构的块215进行滤波以获得经滤波的块221,或者通常地,对经重构的样本进行滤波以获得经滤波的样本。环路滤波单元例如用于平滑像素过渡,或者以其他方式提高视频质量。环路滤波器单元220可以包括一个或多个环路滤波器,例如去块滤波器、样本自适应偏移(sample-adaptiveoffset,SAO)滤波器或一个或多个其他滤波器,比如双边滤波器、自适应环路滤波器(adaptive loop filter,ALF)、锐化滤波器、平滑滤波器或协作滤波器,或其任意组合。尽管环路滤波器单元220在图2中被示为环路中(in loop)滤波器,但是在其他配置中,环路滤波器单元220可以被实现为环路后(post loop)滤波器。经滤波的块221也可以被称为经滤波的重构块221。
视频编码器20(分别为环路滤波器单元220)的实施例可以用于输出环路滤波器参数(例如样本自适应偏移信息),例如直接输出或者经由熵译码单元270编码,使得例如解码器30可以接收并应用相同的环路滤波器参数或各自的环路滤波器进行解码。
解码图像缓冲器
解码图像缓冲器(DPB)230可以是存储参考图像,或通常地,存储参考图像数据的存储器,用于由视频编码器20编码视频数据。DPB 230可以由各种存储器设备中的任何一种形成,例如动态随机存取存储器(dynamic random access memory,DRAM)(包括同步DRAM(synchronous DRAM,SDRAM))、磁阻RAM(magnetoresistive RAM,MRAM)、电阻RAM(resistive RAM,RRAM)或其他类型的存储器设备。解码图像缓冲器(DPB)230可以用于存储一个或多个经滤波的块221。解码图像缓冲器230还可以用于存储同一当前图像或不同图像(例如,先前重构的图像)的其他先前滤波的块,例如,先前重构和滤波的块221,并且可以提供完整的先前重构的(即解码的)图像(以及相应的参考块和样本)和/或部分重构的当前图像(以及相应的参考块和样本),例如用于帧间预测。解码图像缓冲器(DPB)230还可以用于存储一个或多个未滤波的经重构的块215,或者通常地,未滤波的经重构的样本,例如,如果经重构的块215没有被环路滤波器单元220滤波,或者经重构的块或样本的任何其他进一步处理的版本。
模式选择(分区&预测)
模式选择单元260包括分区单元262、帧间预测单元244和帧内预测单元254,并且模式选择单元260用于接收或获得原始图像数据,例如原始块203(当前图像17的当前块203),以及经重构的图像数据,例如同一(当前)图像的经滤波的和/或未滤波的经重构样本或块和/或来自一个或多个先前解码的图像,例如来自解码图像缓冲器230或其他缓冲器(例如行缓冲区,未示出)。经重构的图像数据被用作用于预测(例如帧间预测或帧内预测)的参考图像数据,以获得预测块265或预测值265。
模式选择单元260可用于确定或选择用于当前块预测模式的分区(包括无分区)和预测模式(例如,帧内或帧间预测模式),并生成相应的预测块265,其用于残差块205的计算和经重构的块215的重构。
模式选择单元260的实施例可以用于(例如从模式选择单元260支持的或可用的那些中)选择分区和预测模式,其提供最佳匹配或者换言之最小残差(最小残差意味着传输或存储的更好压缩),或者最小信令开销(最小信令开销意味着传输或存储的更好压缩),或者其考虑或平衡两者。模式选择单元260可以用于基于率失真优化(rate distortionoptimization,RDO)来确定分区和预测模式,即选择提供最小率失真的预测模式。诸如“最佳”、“最小”、“最优”等术语在本文中不一定指总体上的“最佳”、“最小”、“最优”等,而是也可以指终止或选择标准的满足,例如超过或低于阈值的值或其他可能导致“次优选择”但减少复杂性和处理时间的约束。
换句话说,分区单元262可以用于将块203分区成更小的块分区或子块(其再次形成块),例如迭代地使用四叉树分区(quad-tree-partitioning,QT)、二叉树分区(binarypartitioning,BT)或三叉树分区(triple-tree-partitioning,TT)或其任意组合,并且执行例如对每个块分区或子块的预测,其中模式选择包括对经分区的块203的树结构的选择,并且预测模式被应用于每个块分区或子块。
在下文中,将更详细地解释由示例视频编码器20执行的分区(例如,由分区单元262执行)和预测处理(由帧间预测单元244和帧内预测单元254执行)。
分区
分区单元262可以将当前块203分区(或分割)成更小的分区,例如正方形或矩形尺寸的更小块。这些较小的块(也可以称为子块)可以进一步分区成甚至更小的分区。这也称为树分区或分层树分区,其中例如在根树级0(层级0,深度0)处的根块可以被递进地分区,例如被分区成下一个较低树级的两个或多个块,例如在树级1(层级1,深度1)处的节点,其中这些块可以再次被分区成下一个较低级别的两个或多个块,例如树级2(层级2,深度2)等,直到终止分区,例如因为满足了终止标准,例如达到最大树深度或最小块大小。没有进一步分区的块也被称为叶块或树的叶节点。使用分区分为两个分区的树称为二叉树(binary-tree,BT),使用分区分为三个分区的树称为三叉树(ternary-tree,TT),使用分区分为四个分区的树称为四叉树(quad-tree,QT)。
如前所述,本文使用的术语“块”可以是图像的一部分,特别是正方形或矩形部分。例如,参考HEVC和VVC,块可以是或对应于译码树单元(CTU)、译码单元(coding unit,CU)、预测单元(prediction unit,PU)和变换单元(transform unit,TU)和/或对应的块,例如译码树块(CTB)、译码块(coding block,CB)、变换块(transform block,TB)或预测块(prediction block,PB)。
例如,译码树单元(CTU)可以是或包括亮度样本的CTB、具有三个样本阵列的图像的色度样本的两个对应的CTB、或者单色图像或使用三个单独的颜色平面和用于编码样本的语法结构来编码的图像的样本的CTB。相应地,对于N的一些值,译码树块(CTB)可以是NxN样本块,使得将分量划分为CTB是一种分区。译码单元(CU)可以是或包括亮度样本的译码块、具有三个样本阵列的图像的色度样本的两个对应译码块、或者单色图像或使用三个单独的颜色平面和用于编码样本的语法结构来编码的图像的样本的译码块。相应地,对于M和N的一些值,译码块(CB)可以是MxN样本块,使得将CTB划分为译码块是一种分区。
在实施例中,例如根据HEVC,译码树单元(CTU)可以通过使用被表示为译码树的四叉树结构被分成多个CU。使用图像间(时间的)预测还是图像内(空间的)预测对图像区域进行编码的决策是在CU级别做出的。根据PU分割类型,每个CU可以进一步分割为一个、两个或四个PU。在一个PU内,应用相同的预测过程,并且在PU的基础上将相关信息传输到解码器。在通过应用基于PU分割类型的预测过程获得残差块之后,可以根据与用于CU的译码树相似的另一个四叉树结构将CU划分成变换单元(TU)。
在实施例中,例如根据当前发展中的最新视频编码标准(其被称为通用视频编码(VVC)),组合的四叉树和二叉树(Quad-tree and binary tree,QTBT)分区例如被用于j将译码块进行分区。在QTBT块结构中,CU可以是正方形或矩形。例如,译码树单元(CTU)首先被四叉树结构分区。四叉树叶节点由二叉树或三叉(或三元)树结构进一步分区。分区的树叶节点被称为译码单元(CU),该分割的部分用于预测和变换处理,而不需要任何进一步的分区。这意味着CU、PU和TU在QTBT译码块结构中具有相同的块大小。并行地,多个分区(例如三叉树分区)可以与QTBT块结构一起使用。
在一些实施例中,例如在VVC标准草案中,为了促进与CTU相比内部存储器有限的硬件中的处理流水线,定义了虚拟流水线数据单元(virtual pipeline data unit,VPDU)。VPDU是将CTU虚拟分区为亮度样本和相应色度样本的均匀子块,在CTU内的分区之间具有特定的处理顺序,使得给定VPDU的处理不依赖于处理顺序中任何其他未来VPDU的处理。然而,某些语法元素仍然可以在CTU级在比特流中用信号通知,并且将适用于该CTU的所有VPDU。可以对分区施加某些约束,以确保译码单元完全跨越一个或多个VPDU,而不能部分覆盖VPDU。
在一个示例中,视频编码器20的模式选择单元260可以用于执行本文描述的分区技术的任何组合。
如上所述,视频编码器20用于从(例如,预定的)预测模式集合中确定或选择最佳或最优预测模式。该预测模式集合可以包括例如帧内预测模式和/或帧间预测模式。
帧内预测
帧内预测模式集合可以包括35种不同的帧内预测模式,例如像DC(或均值)模式和平面模式这样的非定向模式,或者(例如HEVC定义的)定向模式,或者可以包括67种不同的帧内预测模式,例如像DC(或均值)模式和平面模式这样的非定向模式,或者(例如VVC定义的)定向模式。
帧内预测单元254用于根据帧内预测模式集合中的帧内预测模式,使用同一当前图像的相邻块的经重构的样本来生成帧内预测块265。
帧内预测单元254(或通常地,模式选择单元260)还用于以语法元素266的形式向熵译码单元270输出帧内预测参数(或通常地,指示为块所选的帧内预测模式的信息),以包括在经编码的图像数据21中,使得例如视频解码器30可以接收并使用预测参数进行解码。
帧间预测
该(或可能的)帧间预测模式集合取决于可用的参考图像(即,先前至少部分解码的图像,例如,存储在DBP 230中)和其他帧间预测参数,例如,是参考图像的整个参考图像还是仅一部分(例如,当前块区域周围的搜索窗口区域)用于搜索最佳匹配的参考块,和/或例如,是否应用像素插值,例如一半/半像素(half/semi-pel)和/或四分之一像素插值。
除了上述预测模式之外,还可以应用跳过模式和/或直接模式。
帧间预测单元244可以包括运动估计(motion estimation,ME)单元和运动补偿(motion compensation,MC)单元(图2中均未示出)。运动估计单元可以用于接收或获取图像块203(当前图像17的当前图像块203)和经解码的图像231,或者至少一个或多个先前重构的块,例如一个或多个其他/不同的先前解码的图像231的经重构的块,用于运动估计。例如,视频序列可以包括当前图像和先前解码的图像231,或者换句话说,当前图像和先前解码的图像231可以是形成视频序列的图像序列的一部分或者可以形成该图像序列。
编码器20可以例如用于从多个其他图像的相同或不同图像的多个参考块中选择参考块,并且向运动估计单元提供参考图像(或参考图像索引)和/或参考块的位置(x,y坐标)和当前块的位置之间的偏移(空间偏移)作为帧间预测参数。这种偏移也称为运动矢量(motion vector,MV)。
运动补偿单元用于获取(例如接收)帧间预测参数,并且基于或使用帧间预测参数来执行帧间预测,以获得帧间预测块265。由运动补偿单元执行的运动补偿可以包括基于运动估计确定的运动/块矢量来取得或生成预测块,可能执行到子像素精度的插值。插值滤波可以从已知的像素样本生成额外的像素样本,因此潜在地增加了可以用于编码图像块的候选预测块的数量。当接收到当前图像块的PU的运动矢量时,运动补偿单元可以在参考图像列表之一中定位运动矢量指向的预测块。
运动补偿单元还可以生成与块和视频切片相关联的语法元素,供视频解码器30在解码视频切片的图像块时使用。除了切片和相应语法元素之外或作为切片和相应语法元素的替代,可以生成或使用瓦片组和/或瓦片和各自的语法元素。
熵编码
熵译码单元270用于对量化的系数209、帧间预测参数、帧内预测参数,环路滤波器参数和/或其他语法元素应用例如熵编码算法或方案(例如,可变长度编码(variablelength coding,VLC)方案、上下文自适应VLC(context adaptive VLC,CAVLC)方案、算术编码方案、二值化、上下文自适应二进制算术编码(context adaptive binary arithmeticcoding,CABAC)、基于语法的上下文自适应二进制算术编码(syntax-based context-adaptive binary arithmetic coding,SBAC)、概率区间分区熵(probability intervalpartitioning entropy,PIPE)编码或另一种熵编码方法或技术)或旁路(无压缩)以获得经编码的图像数据21,经编码的图像数据21可以经由输出272输出,例如以经编码的比特流21的形式,使得例如视频解码器30可以接收并使用这些参数进行解码。经编码的比特流21可以被传输到视频解码器30,或者存储在存储器中,以供视频解码器30稍后传输或检索。
视频编码器20的其他结构变型可以用于编码视频流。例如,对于某些块或帧,基于非变换的编码器20可以直接量化残差信号,而无需变换处理单元206。在另一实现方式中,编码器20可以将量化单元208和逆量化单元210组合成单个单元。
解码器和解码方法
图3示出了用于实现本申请技术的视频解码器30的示例。视频解码器30用于接收例如由编码器20编码的经编码的图像数据21(例如经编码的比特流21),以获得经解码的图像331。经编码的图像数据或比特流包括用于解码经编码的图像数据的信息,例如表示经编码的视频切片(和/或瓦片组或瓦片)的图像块和相关语法元素的数据。
在图3的示例中,解码器30包括熵解码单元304、逆量化单元310、逆变换处理单元312、重构单元314(例如加法器314)、环路滤波器320、解码图像缓冲器(DBP)330、模式应用单元360、帧间预测单元344和帧内预测单元354。帧间预测单元344可以是或可以包括运动补偿单元。在一些示例中,视频解码器30可以执行解码过程,该解码过程通常与关于图2的视频编码器20描述的编码过程相反。
如关于编码器20所解释的,逆量化单元210、逆变换处理单元212、重构单元214、环路滤波器220、解码图像缓冲器(DPB)230、帧间预测单元344和帧内预测单元354也被称为形成视频编码器20的“内置解码器”。相应地,逆量化单元310在功能上可以与逆量化单元110相同,逆变换处理单元312在功能上可以与逆变换处理单元212相同,重构单元314在功能上可以与重构单元214相同,环路滤波器320在功能上可以与环路滤波器220相同,并且解码图像缓冲器330在功能上可以与解码图像缓冲器230相同。因此,为视频编码器20的各个单元和功能提供的解释相应地适用于视频解码器30的各个单元和功能。
熵解码
熵解码单元304用于解析比特流21(或者通常地,经编码的图像数据21),并且对经编码的图像数据21执行例如熵解码,以获得例如量化的系数309和/或经解码的编码参数(图3中未示出),例如帧间预测参数(比如参考图像索引和运动矢量)、帧内预测参数(比如帧内预测模式或索引)、变换参数、量化参数、环路滤波器参数和/或其他语法元素中的任一或全部。熵解码单元304可以用于应用与关于编码器20的熵译码单元270描述的编码方案相对应的解码算法或方案。熵解码单元304还可以用于向模式应用单元360提供帧间预测参数、帧内预测参数和/或其他语法元素,并向解码器30的其他单元提供其他参数。视频解码器30可以在视频切片级别和/或视频块级别接收语法元素。除了切片和各自的语法元素之外或作为切片和各自的语法元素的替代,可以接收和/或使用瓦片组和/或瓦片和各自的语法元素。
逆量化
逆量化单元310可以用于(例如,通过(比如由熵解码单元304执行的)解析和/或解码)从经编码的图像数据21中接收量化参数(QP)(或通常地,与逆量化相关的信息)和量化的系数,并且基于量化参数对经解码的量化的系数309应用逆量化,以获得去量化的系数311,其也可以被称为变换系数311。逆量化过程可以包括使用由视频编码器20为视频切片(或瓦片或瓦片组)中的每个视频块确定的量化参数来确定量化程度,并且同样地,确定应该应用的逆量化程度。
逆变换
逆变换处理单元312可以用于接收去量化的系数311,也称为变换系数311,并且对去量化的系数311应用变换,以便获得样本域中的经重构的残差块213。经重构的残差块213也可以被称为变换块313。该变换可以是逆变换,例如逆DCT、逆DST、逆整数变换或概念上类似的逆变换过程。逆变换处理单元312还可以用于(例如,通过(比如由熵解码单元304执行的)解析和/或解码)从经编码的图像数据21中接收变换参数或相应的信息,以确定待应用于去量化的系数311的变换。
重构
重构单元314(例如加算器或加法器314)可以用于将经重构的残差块313加到预测块365,以获得样本域中的经重构的块315,例如通过将经重构的残差块313中的样本值和预测块365中的样本值相加。
滤波
环路滤波器单元320(在编码环路中或在编码环路之后)用于对经重构的块315进行滤波,以获得经滤波的块321,以便例如平滑像素过渡,或以其他方式提高视频质量。环路滤波器单元320可以包括一个或多个环路滤波器,例如去块滤波器、样本自适应偏移(SAO)滤波器或一个或多个其他滤波器,比如双边滤波器、自适应环路滤波器(ALF)、锐化滤波器、平滑滤波器或协作滤波器,或其任意组合。尽管环路滤波器单元320在图3中被示为环路中滤波器,但是在其他配置中,环路滤波器单元320可以被实现为环路后滤波器。
解码图像缓冲器
然后,图像的经解码的视频块被存储在解码图像缓冲器330中,该缓冲器存储经解码的图像331作为参考图像,用于其他图像的后续运动补偿和/或用于分别输出显示。
解码器30用于(例如经由输出312)输出经解码的图像311,用于向用户呈现或用户观看。
预测
帧间预测单元344可以在功能上与帧间预测单元244(尤其是运动补偿单元)相同,并且帧内预测单元354可以在功能上与帧内预测单元254相同,并且基于从经编码的图像数据21中接收(例如,通过(比如由熵解码单元304执行的)解析和/或解码而接收)的分区和/或预测参数或各自的信息来执行分割或分区决策和预测。模式应用单元360可以用于基于经重构的图像、块或各自的样本(经滤波的或未经滤波的)来按块执行预测(帧内或帧间预测),以获得预测块365。
当视频切片被编码为帧内编码(I)切片时,模式应用单元360的帧内预测单元354用于基于用信号通知的帧内预测模式和来自当前图像的先前解码的块的数据,来生成当前视频切片的图像块的预测块365。当视频图像被编码为帧间编码(即,B或P)切片时,模式应用单元360的帧间预测单元344(例如,运动补偿单元)用于基于从熵解码单元304接收的运动矢量和其他语法元素来产生当前视频切片的视频块的预测块365。对于帧间预测,预测块可以从参考图像列表之一内的参考图像之一产生。视频解码器30可以使用基于存储在DPB330中的参考图像的默认构建技术来构建参考帧列表,列表0和列表1。除了切片(例如视频切片)之外或作为切片(例如视频切片)的替代,相同或相似的内容可以应用于使用瓦片组(例如视频瓦片组)和/或瓦片(例如视频瓦片)的实施例,例如可以使用I、P或B瓦片组和/或瓦片对视频进行编码。
模式应用单元360用于通过解析运动矢量或相关信息以及其他语法元素来确定当前视频切片的视频块的预测信息,并且使用预测信息来产生正在被解码的当前视频块的预测块。例如,模式应用单元360使用一些接收的语法元素来确定用于编码视频切片的视频块的预测模式(例如,帧内或帧间预测)、帧间预测切片类型(例如,B切片、P切片或GPB切片)、切片的一个或多个参考图像列表的构造信息、切片的每个帧间编码视频块的运动矢量、切片的每个帧间编码视频块的帧间预测状态、以及解码当前视频切片中的视频块的其他信息。除了切片(例如视频切片)之外或作为切片(例如视频切片)的替代,相同或相似的内容可以应用于使用瓦片组(例如视频瓦片组)和/或瓦片(例如视频瓦片)的实施例,例如可以使用I、P或B瓦片组和/或瓦片对视频进行编码。
如图3所示的视频解码器30的实施例可以用于通过使用切片(也称为视频切片)来对图像进行分区和/或解码,其中图像可以被分区成一个或多个切片(通常是非重叠的)或使用一个或多个切片(通常是非重叠的)解码,并且每个切片可以包括一个或多个块(例如,CTU)。
如图3所示的视频解码器30的实施例可以用于通过使用瓦片组(也称为视频瓦片组)和/或瓦片(也称为视频瓦片)来对图像进行分区和/或解码,其中图像可以被分区成一个或多个瓦片组(通常不重叠)或使用一个或多个瓦片组(通常是非重叠的)解码,并且每个瓦片组可以包括例如一个或多个块(例如CTU)或一个或多个瓦片,其中每个瓦片例如可以是矩形形状并且可以包括一个或多个块(例如CTU),例如完整的或部分的块。
视频解码器30的其他变型可以用于解码经编码的图像数据21。例如,解码器30可以在没有环路滤波单元320的情况下产生输出视频流。例如,对于某些块或帧,基于非变换的解码器30可以直接对残差信号进行逆量化,而无需逆变换处理单元312。在另一实现方式中,视频解码器30可以将逆量化单元310和逆变换处理单元312组合成单个单元。
应当理解,在编码器20和解码器30中,当前步骤的处理结果可以被进一步处理,然后输出到下一步骤。例如,在插值滤波、运动矢量导出或环路滤波之后,可以对插值滤波、运动矢量导出或环路滤波的处理结果执行进一步的操作,例如削波(Clip)或移位。
应当注意,进一步的操作可以应用于当前块的导出的运动矢量(包括但不限于仿射模式的控制点运动矢量,仿射、平面、ATMVP模式的子块运动矢量,时间运动矢量等)。例如,运动矢量的值根据其表示比特而被约束在预定义范围。如果运动矢量的表示比特是bitDepth(比特深度),则范围是-2^(bitDepth-1)~2^(bitDepth-1)-1,其中“^”表示求幂。例如,如果bitDepth设置为等于16,则范围为-32768~32767;如果bitDepth设置为等于18,则范围为-131072~131071。例如,导出的运动矢量(例如,一个8×8块内的四个4×4子块的MV)的值被约束使得四个4×4子块MV的整数部分之间的最大差值不超过N个像素,例如不超过1个像素。这里提供了两种根据bitDepth约束运动矢量的方法。
方法1:通过流动操作移除溢出MSB(most significant bit,最高有效位)
ux=(mvx+2bitDepth)%2bitDepth (1)
mvx=(ux>=2bitDepth-1)?(ux-2bitDepth):ux (2)
uy=(mvy+2bitDepth)%2bitDepth (3)
mvy=(uy>=2bitDepth-1)?(uy-2bitDepth):uy (4)
其中mvx是图像块或子块的运动矢量的水平分量,mvy是图像块或子块的运动矢量的垂直分量,ux和uy指示中间值。
例如,如果mvx的值为-32769,则在应用公式(1)和(2)后,结果值为32767。在计算机系统中,十进制数存储为二进制补码。-32769的二进制补码是1,0111,1111,1111,1111(17比特),然后丢弃MSB,因此得到的二进制补码是0111,1111,1111,1111(十进制数是32767),这与应用公式(1)和(2)的输出相同。
ux=(mvpx+mvdx+2bitDepth)%2bitDepth (5)
mvx=(ux>=2bitDepth-1)?(ux-2bitDepth):ux (6)
uy=(mvpy+mvdy+2bitDepth)%2bitDepth (7)
mvy=(uy>=2bitDepth-1)?(uy-2bitDepth):uy (8)
如公式(5)至(8)所示,这些操作可以在mvp和mvd的求和期间应用。
方法2:通过裁剪值来移除溢出MSB
vx=Clip3(-2bitDepth-1,2bitDepth-1-1,vx)
vy=Clip3(-2bitDepth-1,2bitDepth-1-1,vy)
其中vx是图像块或子块的运动矢量的水平分量,vy是图像块或子块的运动矢量的垂直分量;x、y、z分别对应MV裁剪过程的三个输入值,函数Clip3的定义如下:
Figure GDA0003237116270000181
图4是根据本公开实施例的视频编码设备400的示意图。视频编码设备400适合于实现本文描述的所公开的实施例。在一个实施例中,视频编码设备400可以是解码器,例如图1A的视频解码器30,或者是编码器,例如图1A的视频编码器20。
视频编码设备400包括:进入端口410(或输入端口410)和接收器单元(Rx)420,用于接收数据;处理器、逻辑单元或中央处理单元(central processing unit,CPU)430,用于处理数据;发射器单元(Tx)440和外出端口450(或输出端口450),用于发送数据;以及存储器460,用于存储数据。视频编码设备400还可以包括耦合到进入端口410、接收器单元420、发射器单元440和外出端口450的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件,用于光信号或电信号的外出或进入。
处理器430由硬件和软件实现。处理器430可以实现为一个或多个CPU芯片、核(例如,多核处理器)、FPGA、ASIC和DSP。处理器430与进入端口410、接收器单元420、发射器单元440、外出端口450和存储器460通信。处理器430包括编码模块470。编码模块470实现上述所公开的实施例。例如,编码模块470实现、处理、准备或提供各种编码操作。因此,包含编码模块470对视频编码设备400的功能性提供了实质性的改进,并且实现了视频编码设备400到不同状态的变换。可替代地,编码模块470被实现为存储在存储器460中并由处理器430执行的指令。
存储器460可以包括一个或多个磁盘、磁带驱动器和固态驱动器,并且可以用作溢出数据存储设备,以在选择执行程序时存储这些程序,并且存储在程序执行期间读取的指令和数据。存储器460可以是例如易失性和/或非易失性的,并且可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternary content-addressable memory,TCAM)和/或静态随机存取存储器(staticrandom-access memory,SRAM)。
图5是根据示例性实施例的装置500的简化框图,该装置可以用作图1的源设备12和目的地设备14中的任一个或两者。
装置500中的处理器502可以是中央处理单元。可替代地,处理器502可以是能够操纵或处理现在存在的或以后开发的信息的任何其他类型的设备或多个设备。尽管所公开的实现可以用所示的单个处理器,例如处理器502来实现,但是速度和效率方面的优势可以使用不止一个处理器来达到。
在一个实现方式中,装置500中的存储器504可以是只读存储器(ROM)设备或随机存取存储器(RAM)设备。任何其他合适类型的存储设备都可以用作存储器504。存储器504可以包括由处理器502使用总线512访问的代码和数据506。存储器504可以进一步包括操作系统508和应用程序510,应用程序510包括允许处理器502执行本文描述的方法的至少一个程序。例如,应用程序510可以包括应用1至应用N,应用1至应用N还包括执行本文描述的方法的视频编码应用。
装置500还可以包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是触敏显示器,其将显示器与可操作用于感测触摸输入的触敏元件相结合。显示器518可以通过总线512耦合到处理器502。
尽管这里被描绘为单个总线,但是装置500的总线512可以由多个总线组成。进一步地,辅助存储器514可以直接耦合到装置500的其他组件,或者可以经由网络被访问,并且可以包括诸如存储卡的单个集成单元或者诸如多个存储卡的多个单元。因此,装置500可以以各种各样的配置来实现。
运动矢量细化(motion vector refinement,MVR)
运动矢量通常至少部分地在编码器侧确定,并在编码比特流内用信号通知解码器。然而,也可以在解码器处(以及也在编码器处)从比特流中指示的初始运动矢量开始细化运动矢量。在这种情况下,例如,由初始运动矢量指向的已经解码的像素片(patch)之间的相似性可以用于提高初始运动矢量的精度。这种运动细化提供了减少信令开销的优点:在编码器和解码器处,初始运动的精度以相同的方式得到提高,因此,不需要用于细化的额外信令。
注意,细化之前的初始运动矢量可能不是产生最佳预测的最佳运动矢量。由于初始运动矢量是在比特流中用信号通知的,因此不可能以非常高的精度表示初始运动矢量(这将增加比特率),因此利用运动矢量细化过程来改善初始运动矢量。例如,初始运动矢量可以是用于预测当前块的相邻块的运动矢量。在这种情况下,在比特流中用信号通知如下指示就足够了:指示当前块使用哪个相邻块的运动矢量。这种预测机制在减少表示初始运动矢量的比特数方面非常有效。然而,初始运动矢量的精度可能较低,因为通常两个相邻块的运动矢量不预期是相同的。
为了在不进一步增加信令开销的情况下进一步提高运动矢量的精度,进一步细化在编码器侧导出并在比特流中提供(用信号通知)的运动矢量可能是有益的。运动矢量细化可以在解码器处执行,而无需编码器的帮助。其解码器环路中的编码器可以采用与将在解码器处可用的细化相同的细化来获得相应的细化的运动矢量。通过确定经重构的样本的模板、确定当前块的初始运动信息周围的搜索空间、并在搜索空间中找到与模板最佳匹配的参考图像部分,来执行对当前图像中正在重构的当前块的细化。最佳匹配部分确定当前块的细化的运动矢量,其然后用于获得当前块(即正在重构的当前块)的帧间预测样本。
运动矢量细化是图2中的帧间预测单元(244)和图3中的344的一部分。
运动矢量细化可以根据以下步骤来执行:
典型地,可以基于比特流中的指示来确定初始运动矢量。例如,可以在比特流中用信号通知索引,该索引指示候选运动矢量列表中的位置。在另一个示例中,运动矢量预测值指数和运动矢量差值可以在比特流中用信号通知。基于比特流中的指示确定的运动矢量被定义为初始运动矢量。在双向预测的情况下,其中当前块的帧间预测作为根据两个运动矢量确定的样本的预测块的加权组合而获得,令列表L0中的第一参考图像中的初始运动矢量记为MV0,列表L1中的第二参考图像中的初始运动矢量记为MV1。
使用初始运动矢量,确定细化候选运动矢量对。至少需要确定两个细化候选对。典型地,基于初始运动矢量对(MV0,MV1)来确定细化候选运动矢量对。此外,通过向MV0和MV1增加小的运动矢量差来确定候选MV对。例如,候选MV对可包括以下内容:
·(MV0,MV1)
·(MV0+(0,1),MV1+(0,-1))
·(MV0+(1,0),MV1+(-1,0))
·(MV0+(0,-1),MV1+(0,1))
·(MV0+(-1,0),MV1+(1,0))
·…
其中(1,-1)表示在水平(或x)方向位移为1、在垂直(或y)方向位移为-1的矢量。
注意,以上候选对的列表只是用于解释的示例,本发明不限于特定的候选列表。
细化候选运动矢量(MV)对形成运动矢量细化过程的搜索空间。
在当前块的双向预测中,使用列表L0的相应第一运动矢量和列表L1的第二运动矢量获得的两个预测块被组合成单个预测信号,这相比于单预测可以提供对原始信号的更好适应,带来更少的残留信息和可能更有效的压缩。
在运动矢量细化中,针对每个细化候选MV对,基于相似性度量比较分别使用候选MV对的第一运动矢量和第二运动矢量获得的两个预测块。通常选择得到最高相似性的候选MV对作为细化的运动矢量。列表L0中的第一参考图像中的细化的运动矢量和列表L1中的第二参考图像中的细化的运动矢量分别记为MV0’和MV1’。换句话说,获得对应于候选运动矢量对中的列表L0运动矢量和列表L1运动矢量的预测,然后基于相似性度量进行比较。具有最高关联相似性的候选运动矢量对被选择作为细化的MV对。
典型地,细化过程的输出是细化的MV。细化的MV可能与初始MV相同,也可能与初始MV不同,取决于哪个候选MV对达到最高相似性,由初始MV形成的候选MV对也在MV对候选中。换句话说,如果实现最高相似性的最高候选MV对是由初始MV形成的,则细化的MV和初始MV彼此相等。
代替选择使相似性度量最大化的位置,另一种方法是选择使不相似性度量最小化的位置。不相似性比较测量可以是SAD(绝对差值和)、MRSAD(均值移除绝对差值)、SSE(误差平方和)等。可以使用候选MV对(CMV0,CMV1)获得两个预测块之间的SAD,SAD可以如下计算:
Figure GDA0003237116270000201
其中nCbH和nCbW是预测块的高度和宽度,函数abs(a)指定自变量a的绝对值,predSAmplesL0和predSAmplesL1是根据记为(CMV0,CMV1)的候选MV对获得的预测块样本。
可替代地,不相似性比较测量可以通过仅评估预测块中的样本子集来获得,以便减少计算量。下面是一个示例,其中样本行交替地包括在SAD计算中(每隔一行进行评估)。
Figure GDA0003237116270000202
Figure GDA0003237116270000211
运动矢量细化的一个示例在(ITU-T SG 16 WP 3和ISO/IEC JTC 1/SC 29/WG 11的)JVET的文件JVET-M1001-v3,《通用视频编码(草案4)》中进行了解释,该文件在http://phenix.it-sudparis.eu/jvet/公开发行。文件中的“8.4.3解码器侧运动矢量细化过程”一节举例说明了运动矢量细化。
为了减少细化的内部存储器需求,在一些实施例中,可以对亮度样本块独立地执行运动矢量细化过程,这些亮度样本块是通过将亮度样本中超过某个预定宽度或预定高度的经编码样本块分区为亮度小于或等于预定宽度和预定高度的子样本块而获得的。经分区编码的块内的每个子块的细化的MV对可以不同。然后,使用每个子块的细化的MV对,对该子块执行亮度和色度的帧间预测。
给定分别指示最大允许子块宽度和高度的max_sb_width和max_sb_height,适格于应用MVR的大小为cbwidth×cbheight的当前译码单元典型地被分区为许多子块numSbs,每个子块大小为sbwidth×sbheight(子块宽度×子块高度),如下所示:
numSbs=numSbX*numSbY,
numSbX=(cbWidth>max_sb_width)?(cbWidth/max_sb_width):1
numSbY=(cbHeight>max_sb_height)?(cbHeight/max_sb_height):1
sbWidth=(cbWidth>max_sb_width)?max_sb_width:cbWidth
sbHeight=(cbHeight>max_sb_height)?max_sb_height:cbHeight。
初始MV对中的每个MV可以具有分数像素精度。换句话说,MV指示当前样本块和重新采样的参考区域之间的位移,并且该位移可以从经重构的参考样本的整数网格指向水平和垂直方向上的分数位置。典型地,执行经重构的参考整数样本网格值的二维插值,以获得分数样本偏移位置处的样本值。使用候选MV对从经重构的参考图像获得预测样本的过程可以通过以下方法之一:
·将初始MV对的分数部分舍入到最近的整数位置,并获得经重构的参考图像的整数网格值。
·执行2抽头(例如双线性)可分离双线性插值,以初始MV对指示的分数像素精度获得预测样本值。
·执行更高抽头(例如8抽头或6抽头)可分离插值,以初始MV对指示的分数像素精度获得预测样本值。
虽然候选MV对可以相对于初始MV对具有任意的子像素偏移,但是在一些实施例中,为了搜索的简单性,候选MV对是相对于初始MV对以整数像素距离选择的。在这种情况下,可以通过对初始MV对周围的样本块执行预测以覆盖初始MV对周围的所有细化位置来获得所有候选MV对上的预测样本。
在一些实施例中,一旦已经评估了距初始MV对整数距离处的所有候选MV对的不相似性代价值,就添加距最佳代价值位置子像素距离偏移处的附加候选MV对。使用前面描述的方法之一为这些位置中的每一个获得预测样本,并且评估和比较不相似性代价以获得最低不相似性位置。在某些其他实施例中,为了避免针对最佳代价整数距离位置周围的每个子像素距离位置进行这种计算上昂贵的预测过程,记住所评估的整数距离代价值,并且在最佳整数距离位置附近拟合参数误差面。然后分析计算该误差面的最小值,并用作具有最小不相似性的位置。在这种情况下,不相似性代价值被称为是从计算的整数距离代价值中导出的。
对于给定的经编码的样本块,运动矢量细化的应用可以以经编码的样本块的某些编码属性为条件。这种编码属性的一些示例可以是:
·从当前图像到用于经编码样本块的双向预测的两个参考图像之间的图像数量上的距离(以统一帧速率采样时)相等,并且位于当前图像的相对两侧。
·使用初始MV对获得的两个预测块之间的初始不相似性小于预定的每样本的阈值。
双向预测光流细化
双向预测光流细化是一种提高块的双向预测准确性的过程,除了用于双向预测的通常发信号通知的那些以外,不需要在比特流中明确发信号通知任何东西。它是图2中的帧间预测单元(244)和图3中的344的一部分。
在双向预测中,根据两个运动矢量获得两个帧间预测,之后通过应用加权平均来组合预测。当两个参考片中的量化噪声被抵消时,组合预测可以使得残余能量减少,从而与单预测相比提供了更高的编码效率。双向预测中的加权组合可以通过以下等式进行:
双向预测=预测1*W1+预测2*W2+K,
其中W1和W2是可能被发信号通知或可能被预定义的加权因子。K是加性因子,其也可以用信号通知或预先定义。例如,双向预测可以通过以下方式获得
双向预测=(预测1+预测2)/2,
其中W1和W2被设置为1/2,K被设置为0。
光流细化的目标是提高双向预测的准确性。光流是由物体或照相机的运动引起的图像物体在两个连续帧之间的视运动的图案。光流细化过程通过应用光流方程(光流方程的求解)来提高双向预测的准确性。
考虑第一帧中的像素I(x,y,t)(x和y对应于空间坐标,t对应于时间维度)。它在dt时间之后的下一帧中移动距离(dx,dy)。因为这些像素是相同的,并且强度不变,所以光流方程由下式给出:
I(x,y,t)=I(x+vx,y+vy,t+dt)
I(x,y,t)指定(x,y,t)坐标处的像素的强度(采样值)。假设小位移并且泰勒级数展开中的高阶项可以忽略,光流方程也可以写成:
Figure GDA0003237116270000221
其中
Figure GDA0003237116270000222
和/>
Figure GDA0003237116270000223
是位置(x,y)处的水平和垂直空间样本梯度,/>
Figure GDA0003237116270000224
是位置(x,y)处的时间偏导数。
光流细化利用上述原理来提高双向预测的质量。
光流细化的实现典型地包括以下步骤:
1.计算样本梯度。
2.计算第一预测和第二预测之间的差值。
3.计算使得采用光流方程获得的两个参考片之间的误差最小的像素或像素组的位移。
Figure GDA0003237116270000231
其中I(0)对应于第一预测中的样本值,I(1)是第二预测中的样本值,vx和vy是在–x和–y方向上计算的位移,
Figure GDA0003237116270000232
和/>
Figure GDA0003237116270000233
是在–x和–y方向上的梯度。τ1和τ0表示到参考图像的距离,其中第一预测和第二预测是获得的。一些方法最小化平方误差和,而一些方法最小化绝对误差和。利用给定位置(x,y)周围的样本片来解决最小化问题。
4.采用光流方程的具体实现,例如如下所示:
Figure GDA0003237116270000234
其中,predBIO指定修改后的预测,修改后的预测是光流细化过程的输出。
样本梯度可通过以下公式获得
·
Figure GDA0003237116270000235
·
Figure GDA0003237116270000236
在一些实施例中,为了简化估计每个像素的位移的复杂性,为一组像素估计位移。在一些示例中,为了计算4×4亮度样本块的改进双向预测,使用8×8亮度样本块的样本值来估计位移,其中4×4样本块位于其中心。
光流细化过程的输入是来自两个参考图像的预测样本,光流细化的输出是根据光流方程计算的组合预测(predBIO)。
运动矢量细化的一个示例在JVET-M1001文件《通用视频编码(草案4)》的8.4.7.4“双向光流预测过程”一节中进行了解释。
一些方法在运动矢量细化过程中使用预测样本的抽取集合来计算匹配代价,这些方法执行第一预测以获得搜索或细化区域中所有位置的预测样本。然后,对于对应于候选MV对的候选块,使用候选块内的样本的抽取集合来评估匹配代价。虽然抽取匹配代价评估降低了匹配代价计算的复杂性,但是与使用M抽头滤波器生成预测样本值相关联的复杂性没有降低。DMVR的复杂性受到获得用于细化的预测样本值的预测过程和匹配代价评估两者的影响。对于Sy的单侧垂直细化范围,至少需要保持预测样本值的(2*Sy+1)个行缓冲区,以执行所有搜索位置的代价计算。每个行缓冲区的宽度为(sbWidth+2*Sx)个样本,其中Sx是单侧水平细化范围。
一些方法尝试通过在垂直方向抽取候选搜索位置来在垂直方向抽取预测样本位置,使得所有候选搜索位置落在均匀的垂直偏移上。这个过程对MVR实现的压缩效率有不利影响。尽管使用参数误差面来获得这些均匀垂直偏移位置之间的垂直方向上的最小匹配代价位置,但是与使用所有候选搜索位置相比,压缩效率损失仍然很高。
因此,需要一种能够降低预测过程的复杂性并且还能够降低行缓冲区需求的方法。与不使用任何抽取的方法相比,该方法对压缩效率增益的影响也应该最小。本发明通过仅在抽取的位置集合产生预测样本值,降低了与预测过程相关的复杂性,并且还降低了行缓冲存储区需求。
本发明的实施例在运动矢量细化过程期间在细化/搜索区域内的抽取的位置集合处产生第一预测样本值集合,其中运动矢量细化过程用于获得用于当前图像中的当前译码单元内的当前子块的帧间双向预测的细化的运动矢量。然后,使用搜索区域内抽取的位置集合处的预测样本值,执行对应于不同候选MV对、初始MV对周围的偏移的匹配代价评估。
在本发明的一个示例性实施例中,搜索区域内的抽取的位置集合对应于搜索区域内样本位置的交替行。当计算具有偶数垂直MV偏移值的候选MV对的匹配代价时,识别每个参考中预测样本的对应候选块。抽取的位置集合(在这些位置处计算预测样本值)将落在候选块内的给定奇偶行(奇数或偶数)上。当计算具有奇数垂直MV偏移值的候选MV对的匹配代价时,将使用候选块内相反的奇偶行。利用这种用于匹配代价评估的布置,独立于垂直MV偏移值,匹配代价评估需要搜索区域中一半行数的预测样本值。该方法利用了一个参考中的偏移反映在另一个参考中(即大小相等,但符号相反)的事实。因此,即使奇数垂直MV偏移的抽取候选块可能在一个参考中与偶数垂直MV偏移相同,但另一个参考中的对应块也不会相同。因此,针对偶数和奇数垂直MV偏移评估的抽取匹配代价对于执行细化是有用的,同时避免了在搜索区域中一半行数处的预测样本值的计算。
在某些实施例中,在所选搜索区域周围生成预测样本的扩展集合。这些预测样本的扩展集合用于匹配代价评估。该扩展搜索区域内的样本也是被产生用于抽取的位置集合的,并且匹配代价评估使用扩展块(即,具有比当前译码块内的当前子块中的样本数量更多的样本的块)。
本发明的实施例可以降低与生成用于计算匹配代价值的预测样本相关联的复杂性。一些实施例可以降低匹配代价复杂性,同时对编码效率的影响最小。
令当前图像中当前译码单元中适格于解码器侧运动矢量细化的当前子块的亮度宽度为sbWidth,亮度高度为sbHeight。根据本发明的第一示例性实施例,用于当前译码块的帧间双向预测的步骤包括以下步骤:
步骤0:获取相对于一对参考图像的初始MV对(MV0,MV1)作为细化的起点。
步骤1:获取每个参考图像中的第一候选样本位置集合,其中该第一候选样本位置集合落在使用初始MV对(MV0,MV1)、当前图像中当前子块的左上角位置(x,y)、水平方向上的单侧运动矢量细化范围Sx和垂直方向上的单侧运动矢量细化范围Sy计算的边界矩形区域内。
步骤2:使用初始MV对(MV0,MV1)和参考图像对的经重构的参考亮度样本执行第一预测,以获得第一候选样本位置集合内的位置子集处的预测样本值,其中样本位置子集通过第一候选样本位置集合的规则抽取而获得。
步骤3:对于MV细化范围内的每个候选MV对(CMV0,CMV1),
-基于每个参考中的候选MV和初始MV之间的MV偏移,确定每个参考中的第一候选样本位置集合内的矩形区域;
-使用每个参考中所获得的预测样本值的子集来计算匹配代价值,该子集落在针对该参考所确定的矩形区域内。
步骤4:基于计算出的匹配代价值,确定子块的细化的MV对(MV0’,MV1’)。
步骤5:基于细化的MV对(MV0’,MV1’)执行第二帧间预测,以从每个经重构的参考图像中获得第二预测样本,并使用这些第二预测样本执行双向预测。
在一个实施例中,步骤的解释如下:
在步骤0中,获取两个初始运动矢量作为输入。可以基于比特流中的指示信息来确定初始运动矢量。例如,可以在比特流中用信号通知索引,该索引指示候选运动矢量列表中的位置。在另一个示例中,可以在比特流中用信号通知运动矢量预测值索引和运动矢量差值。基于比特流中的指示信息确定的运动矢量被定义为初始运动矢量。
在另一个示例中,可以从比特流获得参考图像指示,基于参考图像指示获得初始运动矢量。参考图像指示用于确定由初始运动矢量指向的参考图像。
步骤1至步骤4对应于如以上示例中所解释的运动矢量细化过程。根据运动矢量细化来细化初始运动矢量。在一个示例中,匹配代价是在运动矢量细化过程中使用的不相似性测量。
在步骤1中,给定水平方向的单侧细化范围Sx和垂直方向的单侧细化范围Sy、当前图像内当前子块的左上角亮度位置、以及在步骤0中获得的初始MV对,在参考图像中确定矩形块。该矩形块内的样本位置集合形成第一候选位置集合,需要在第一候选位置集合生成第一预测样本集合。
根据步骤2,对应于第一预测样本集合内的位置子集处的初始运动矢量执行第一预测。在一个示例中,在运动矢量细化过程中至少有2对候选运动矢量,其中一对典型地是由初始运动矢量(MV0,MV1)形成的。换句话说,该候选运动矢量集合典型地包括多于一对,其中一对通常是(MV0,MV1)。另一对候选运动矢量是基于(MV0,MV1)并通过向运动矢量添加小扰动来确定的(如以上示例中所解释的)。
在步骤2中,基于M抽头插值滤波器执行对应于每对候选运动矢量的第一预测。作为一个示例,可以针对参考图像(已经在编码器中编码或在解码器中解码的图像)中的第一候选样本位置集合的子集获得对应于MV0的一个预测样本,其中块由MV0指向。然后,插值滤波器被应用于MV0所指向的块内的样本。为了提供更精确的运动估计,可以通过在像素之间插值样本来提高参考图像的分辨率。可以通过对最接近的像素进行加权平均来执行分数像素插值。这里,M抽头滤波器典型地可以是2、4、6或8抽头滤波器(不限于这些选项),这意味着滤波器具有M个乘法系数。对应于MV1的预测可以类似地使用另一参考图像中经重构的参考样本来获得。在一个示例中,第一候选样本位置集合内的位置子集被选择为交替行上的样本位置。这在图6和8A中示出。在图7中,没有使用扩展样本。填充的圆对应于获得预测值的样本位置。未填充的圆对应于不需要计算预测值的样本位置。在该示例中,矩形块710的尺寸是(sbWidth+2*Sx)x(sbHeight+2*Sy),其中子块720具有尺寸sbWidth x sbHeight。产生的预测样本数量是这个值的一半。图8A示出了使用扩展样本的情况,水平单侧扩展是Ox,垂直单侧扩展是Oy。本例中矩形块的尺寸为(sbWidth+2*Sx+2*Ox)x(sbHeight+2*Sy+2*Oy)。同样,需要产生填充位置处的第一预测样本值,而不需要产生另一半第一预测样本值。
在一个示例中,利用因子为2的规则垂直抽取(具有或不具有扩展样本)以及使用M=2抽头的插值滤波器来获得分数位置处的预测样本值,插值滤波过程以以下方式执行。
从初始MV对(MV0,MV1)获得整数MV部分(IMV0,IMV1)和分数MV部分(FMV0,FMV1)。为了从参考图像中细化范围内的重构参考亮度样本值的整数网格中获得分数位置处的预测样本值,应用以下步骤:
-如果分数位置在两个维度上都为零,则使用整数样本值获得搜索区域的预测样本值。
-如果分数位置具有非零水平值fracx和零垂直值,则搜索区域中每个分数样本位置的预测样本值如下获得:
((FILTSUMH–fracx)*a+fracx*b+r)>>(FILT_QH),
其中a和b是到当前分数样本位置左侧和右侧的整数网格样本值,FILTSUMH对应于所有滤波器抽头的总和,其通常选择为2的幂并基于与fracx相关联的分数像素精度,r代表舍入偏移,FILT_QH对应于log2(FILT_SUMH)。
-如果分数位置对应于零水平值和非零垂直值fracy,则搜索区域中每个分数样本位置的预测样本值如下获得:
((FILTSUMV–fracx)*a+fracx*b+r)>>(FILT_QV),
其中a和b是当前分数样本位置上方和下方的整数网格样本值,FILTSUMV对应于所有滤波器抽头之和,其通常选择为2的幂并基于与fracy相关联的分数像素精度,r代表舍入偏移,FILT_QV对应于log2(FILT_SUMV)。
-如果分数位置在水平和垂直方向上分别对应于非零值fracx和fracy,则搜索区域中每个分数样本位置的预测样本值如下获得:
((FILTSUMH–fracx)*(FILTSUMV–fracy)*a+fracx*(FILTSUMV–fracy)*b+(FILTSUMH–fracx)*fracy*c+fracx*fracy*d+r)>>(FILT_QHV),
其中a、b、c、d分别是到当前分数样本位置的左上、右上、左下、右下的整数网格样本值,FILTSUMH对应于水平滤波器抽头之和,其通常被选择为2的幂并基于与fracx相关联的分数像素精度,FILTSUMH对应于垂直滤波器抽头之和,其通常被选择为2的幂并基于与fracy相关联的分数像素精度,r是舍入偏移,并且FILT_QHV=log2(FILT_SUMH)+log2(FILT_SUMV)。
具体地,在上述示例中,在水平和垂直方向上执行2-D可分离插值,而在水平插值之后没有任何中间舍入和右移。在一个示例中,当整数样本比特深度为10比特,并且分数MV精度在像素位置的1/16时,在执行插值之前,分数MV精度被降低到像素位置的1/8,以便中间值在右移之前保持在无符号16比特范围内。
在另一个示例中,第一候选样本位置集合内的位置子集以下列方式选择。偶数奇偶行(即,具有偶数索引的行)在左(或右)对齐的预定数量的连续样本位置产生第一预测样本。奇数奇偶行在预定数量的右对齐(或左对齐)的连续样本位置产生预测样本。连续样本位置的预定数量通常被选择为小于矩形块宽度的偶数。在某些实施例中,连续样本位置的预定数量被选择为单指令多数据友好的(例如4、8、16的倍数)。这个示例如图10A所示。这种抽取的样本位置在下文中被称为拉链式图案抽取。
在步骤3中,根据第一预测确定与每对候选运动矢量相关联的匹配代价。
图7A、7B、8B、8C和10B、10C提供了来自步骤2中预测样本块的样本位置的示例,其用于评估给定候选MV对的匹配代价。
在对应于没有扩展和因子为2的垂直抽取的图7A、7B的示例中,代价块730、740的匹配代价块尺寸是sbWidth×sbHeight,其中样本位置的交替行不参与匹配代价评估,因为预测样本值在这些位置不可用。样本代价值可用的样本位置用于评估匹配代价。因此,在样本位置子集对应于因子为2的垂直抽取的情况下,匹配代价评估使用一半样本。这在图7A和7B中示出。
对于具有扩展样本的搜索区域的情况,图8B和8C示出了对给定候选MV对的匹配代价评估有贡献的样本位置集合,并示出了矩形块810和子块820。图10B和10C示出了使用拉链式图案抽取的情况,并描述了带有块扩展的附加用例。
根据本发明,在图8A、8B、8C所示的实施例中,需要考虑行0、1、2、3、4、5、6……作为插值参考样本的行。例如,取每隔一行的结果是如图8A中填充的像素所示的0、2、4、6。图8A示出了用于细化的插值样本,示例抽取因子为2,其中计算填充样本而不需要计算未填充样本。在垂直搜索位置由偶数行组成的情况下,例如{2,4,6},需要考虑图8B,其示出了用于计算具有偶数垂直位移的候选MV对的匹配代价的样本。因此,本例中的2个集合需要是{2,4,6}和{6,4,2}。在垂直搜索位置由奇数行组成的情况下,例如{3,5},需要考虑图8C,其示出了用于计算具有奇数垂直位移的候选MV对的匹配代价的样本。因此,本示例中的2个集合是{3,5}和{5,3}。
根据步骤3,获得对应于细化候选运动矢量(MV)对之一的至少一个匹配代价(例如,相似性测量)。两个预测块之间的相似性越高,匹配代价越小。
匹配代价可以是诸如绝对差值和、均值去除绝对差值和以及差值平方和等测量。
所述匹配代价值用于步骤4中初始运动矢量的细化。在一个示例中,细化的MV对(MV0’,MV1’)被选择为具有最高相似性(即,最小匹配代价)的候选MV对。在另一个示例中,匹配代价值用于将参数方程拟合到真实子像素位置准确细化运动矢量对的空间附近的代价值。通过使用位置和评估的匹配代价值求解参数方程的未知数,确定子像素精确的细化的MV对。
在步骤5中,根据细化的运动矢量和K抽头插值滤波器获得第二预测。在两个细化的运动矢量(MV0’和MV1’)的情况下(其为双向预测的情况),获得两个第二预测。
通过应用第二插值滤波器(K抽头滤波器)获得第二预测,该第二插值滤波器可能与第一插值滤波器(M抽头滤波器)相同,也可能不同。类似于第一预测,通过应用第二插值滤波器并根据参考图像中由MV0’和MV1’指向的块来获得第二预测。
图9中的流程图示出了该实施例。块910对应于步骤0,其中针对当前译码单元中的当前子块获得关于一对参考图像的初始MV对。块920对应于步骤1,其中使用初始MV对、当前图像中当前子块的左上角亮度样本位置、水平和垂直单侧细化范围值Sx和Sy、以及分别在水平和垂直方向上期望的块扩展量Ox和Oy,获得第一候选样本位置集合。块930对应于步骤2,其中从两个参考图像中的经重构的参考亮度样本生成第一预测样本集合,这两个参考图像对应于第一候选样本位置集合内的样本位置子集处的初始MV对。样本位置子集是通过第一候选样本位置集合的抽取而获得的。块940对应于步骤3,其中相对于当前子块尺寸的预测样本用于使用第一候选样本位置集合内的样本位置子集处的样本值来计算MVR使用的每个候选MV对的匹配代价值。块950对应于步骤4,其中在块840中,基于为每个候选MV对计算的匹配代价值来确定细化的MV对。块860对应于步骤5,其中细化的MV对用于生成第二预测样本集合,并且这些样本通过双向预测过程被组合。
本发明的实施例降低了产生用于插值的预测样本的过程的复杂性。所提出的发明需要产生减少的预测样本集合。这些实施例还降低了行缓冲区要求。对于垂直单侧细化范围Sy和因子为2的垂直抽取,(Sy+1)个行缓冲区就足够了,而不是之前需要的(2*Sy+1)个行缓冲区。当不使用水平扩展时,每个行缓冲区都有(sbWidth+2*Sx)个样本。如果使用Ox个样本的单侧水平扩展,则每个行缓冲区将有(sbWidth+2*Sx+2*Ox)个样本。同时,通过将候选块内的抽取图案修改为针对偶数垂直位移的偶数奇偶行和针对奇数位移的奇数奇偶行,对编码增益的影响最小(例如,下降0.02%BDRATE)。
根据本公开的实施例,如图11所示,根据第一方面的方法包括以下步骤:(1110)获取用于双向预测的初始运动矢量和参考图像;(1120)根据初始运动矢量和候选运动矢量获取参考图像中的候选样本位置集合,其中每个候选运动矢量由初始运动矢量和每个预设运动矢量偏移导出,并且其中每个候选样本位置集合对应于每个候选运动矢量;(1130)从每个候选样本位置集合中获取每个样本位置集合;(1140)在每个样本位置集合内计算每个候选运动矢量的匹配代价;(1150)基于计算出的每个候选运动矢量的匹配代价获取细化的运动矢量;以及(1160)基于细化的运动矢量获取当前块的预测值。
图12示出了根据本公开的帧间预测单元1200的实施例。帧间预测单元1200可以是图2中的帧间预测单元244和/或图3中的帧间预测单元344。帧间预测单元1200包括运动矢量细化装置1210。运动矢量细化装置1210用于:获取用于双向预测的初始运动矢量和参考图像;根据初始运动矢量和候选运动矢量获取参考图像中的候选样本位置集合,其中每个候选运动矢量由初始运动矢量和每个预设运动矢量偏移量导出,并且其中每个候选样本位置集合对应于每个候选运动矢量;从每个候选样本位置集合中获取每个样本位置集合;在每个样本位置集合内计算每个候选运动矢量的匹配代价;基于计算的每个候选运动矢量的匹配代价获取细化的运动矢量;以及基于细化的运动矢量获取当前块的预测值。
本发明提供了以下进一步的实施例:
一种用于获取待在视频图像(或帧)的当前块的帧间预测中使用的预测样本的方法,包括:获取初始运动矢量;根据所述初始运动矢量和多个候选运动矢量获取参考图像(或帧)中的第一候选样本位置集合,该多个候选运动矢量是到初始运动矢量(定义搜索区域)的MV偏移;根据初始运动矢量和参考图像(或帧)的经重构的亮度样本,在第一候选样本位置集合中的位置子集处获取第一预测样本值;根据获取的预测样本值和候选运动矢量与初始运动矢量之间的运动矢量偏移,计算每个候选运动矢量的匹配代价值;基于计算出的每个候选运动矢量的匹配代价值,获取细化的运动矢量;基于细化的运动矢量获取当前块的第二预测样本。
在上述方法中,初始运动矢量(在一个示例中,获取两个初始运动矢量作为输入)是基于比特流中的指示信息获得的(例如,可以在比特流中用信号通知索引,该索引指示候选运动矢量列表中的位置。在另一个示例中,可以在比特流中用信号通知运动矢量预测值索引和运动矢量差值。基于比特流中的指示信息确定的运动矢量被定义为初始运动矢量。在另一个示例中,可以从比特流获得参考图像指示,基于参考图像指示获得初始运动矢量。参考图像指示用于确定由初始运动矢量指向的参考图像)。
在上述方法中,第一候选样本位置集合落在边界矩形区域内,该边界矩形区域是使用初始MV对、当前图像中当前子块的左上角位置、以及水平方向上的单侧运动矢量细化范围和垂直方向上的单侧运动矢量细化范围来计算的。
在上述方法中,样本位置子集是通过第一候选样本位置集合的规则抽取获得的。
在上述方法中,第一候选样本位置集合中的样本位置子集被选择为交替行上的样本位置。
一种编码器(20),包括用于执行上述方法的处理电路。
一种解码器(30),包括用于执行上述方法的处理电路。
一种计算机程序产品,包括用于执行上述方法的程序代码。
一种解码器,包括:一个或多个处理器;以及非暂时性计算机可读存储介质,其耦合到处理器并存储由处理器执行的编程,其中当由处理器执行编程时,配置解码器以执行上述方法。
一种编码器,包括:一个或多个处理器;以及非暂时性计算机可读存储介质,其耦合到处理器并存储由处理器执行的编程,其中当由处理器执行编程时,配置编码器以执行上述方法。
此外,本发明提供了一种用于获取待在视频图像的当前块的帧间双向预测中使用的预测样本的方法,包括:获取初始运动矢量对,所述初始运动矢量对用于关于参考图像对的双向预测;根据初始运动矢量和具有相对于初始运动矢量的运动矢量偏移的多个候选运动矢量,获取参考图像对中每个的第一候选样本位置集合;根据初始运动矢量和参考图像的经重构亮度样本,在第一候选样本位置集合中的每一个中的位置子集处获取第一预测样本值;根据所获取的预测样本值和候选运动矢量与相应初始运动矢量之间的运动矢量偏移,计算每个候选运动矢量的匹配代价值;基于计算出的每个候选运动矢量和每个初始运动矢量的匹配代价值获取细化的运动矢量;基于细化的运动矢量获取当前块的第二预测样本。
数学运算符
本申请中使用的数学运算符类似于C编程语言中使用的运算符。然而,整数除法和算术移位运算的结果被更精确地定义,并且定义了附加的运算,例如幂运算和实值除法。编号和计数惯例通常从0开始,例如,“第一”相当于第0个,“第二”相当于第1个,等等。
算术运算符
以下算术运算符定义如下:
+ 加法
- 减法(作为双参数运算符)或否定(作为一元前缀运算符)
* 乘法,包括矩阵乘法
xy 幂运算。指定x的y次幂。在其他上下文中,这种符号用于表示上标,不旨在解释为幂运算。
/ 整数除法,结果向零截断。例如,7/4和-7/-4被截断为1,-7/4和7/-4被截断为-1。
÷ 用于表示数学方程中不需要截断或舍入的除法。
Figure GDA0003237116270000291
用于表示数学方程中不需要截断或舍入的除法。
Figure GDA0003237116270000301
f(i)的和,i取x到y(包括y)的所有整数值。/>
x%y 求模。x除以y的余数,仅针对x>=0且y>0的整数x和y定义。
逻辑运算符
以下逻辑运算符定义如下:
x&&y x和y的布尔逻辑“与”
x||y x和y的布尔逻辑“或”
! 布尔逻辑“非”
x?y:z 如果x为真或不等于0,则结果为y的值;否则,结果为z值。
关系运算符
以下关系运算符定义如下:
> 大于
>= 大于或等于
< 小于
<= 小于或等于
== 等于
!= 不等于
当关系运算符应用于已赋值为“na”(不适用)的语法元素或变量时,值“na”被视为语法元素或变量的独特值。值“na”被认为不等于任何其他值。
位运算符
以下位运算符定义如下:
& 按位“与”。当对整数参数进行运算时,对整数值的二进制补码表示进行运算。当对包含的位比另一个参数少的二进制参数进行运算时,通过添加等于0的更高有效位来扩展较短的参数。
| 按位“或”。当对整数参数进行运算时,对整数值的二进制补码表示进行运算。当对包含的位比另一个参数少的二进制参数进行运算时,通过添加等于0的更高有效位来扩展较短的参数。
^ 按位“异或”。当对整数参数进行运算时,对整数值的二进制补码表示进行运算。当对包含的位比另一个参数少的二进制参数进行操作时,通过添加等于0的更高有效位来扩展较短的参数。
x>>y x的二进制补码整数表示的算术右移y二进制数位。该函数仅针对y的非负整数值定义。由于右移而移入最高有效位(MSB)的位的值等于移位操作之前x的MSB。
x<<y x的二进制补码整数表示的算术左移y二进制数位。该函数仅针对y的非负整数值定义。由于左移而移入最低有效位(least significant bit,LSB)的位的值等于0。
赋值运算符
以下赋值运算符定义如下:
= 赋值运算符
++ 增量,即x++相当于x=x+1;在阵列索引中使用时,等于增量运算之前的变量值。
-- 减量,即x--等于x=x-1;在阵列索引中使用时,等于减量运算之前的变量值。
+= 按规定量递增,即x+=3相当于x=x+3,并且x+=(-3)相当于x=x+(-3)。
-= 按规定量递减,即x-=3相当于x=x-3,并且x-=(-3)相当于x=x-(-3)。
范围符号
以下符号用于指定值的范围:
x=y..z x采用从y到z(包括y和z)的整数值,x、y和z是整数,z大于y。
数学函数
定义了以下数学函数:
Figure GDA0003237116270000311
Asin(x)三角反正弦函数,作用于参数x,即
在-1.0至1.0(含)的范围,输出值范围为
-π÷2至π÷2(含),以弧度为单位
Atan(x)三角反正切函数,对参数x进行运算,输出值范围为
-π÷2到π÷2(含),以弧度为单位
Figure GDA0003237116270000312
Ceil(x) 大于或等于x的最小整数。
Clip1Y(x)=Clip3(0,(1<<BitDepthY)-1,x)
Clip1C(x)=Clip3(0,(1<<BitDepthC)-1,x)
Figure GDA0003237116270000313
Cos(x) 以弧度为单位对参数x进行运算的三角余弦函数。
Floor(x) 小于或等于x的最大整数。
Figure GDA0003237116270000321
Ln(x)x的自然对数(以e为底的对数,其中e是自然对数的底常数2.718 281828...)。
Log2(x) x的以2为底的对数。
Log10(x) x以10为底的对数。
Figure GDA0003237116270000322
Figure GDA0003237116270000323
Round(x)=Sign(x)*Floor(Abs(x)+0.5)
Figure GDA0003237116270000324
Sin(x)以弧度为单位对参数x进行运算的三角正弦函数。
Figure GDA0003237116270000325
Swap(x,y)=(y,x)
Tan(x)以弧度为单位对参数x进行运算的三角正切函数。
运算优先顺序
当表达式中的优先顺序没有用括号明确表示时,适用下列规则:
–优先级较高的运算在优先级较低的运算之前进行计算。
–从左到右依次计算具有相同优先级的运算。
下表指定了从最高到最低的运算优先级;表格中较高的位置指示较高的优先级。
对于那些也在C编程语言中使用的运算符,本说明书中使用的优先顺序与C编程语言中使用的顺序相同。
表格:从最高(表格顶部)到最低(表格底部)的运算优先级
Figure GDA0003237116270000331
逻辑运算的文本描述
在文本中,对于将用数学方法描述如下的逻辑运算:
Figure GDA0003237116270000332
其语句可以用以下方式描述:
...如下/...以下内容适用:
–如果是条件0,则语句0
–否则,如果是条件1,则语句1
-…
–否则(剩余条件的信息性注释),语句n
文本中的每个“如果...否则,如果...否则,...”语句是用“...如下”或“...以下内容适用”引入的,其后紧接着“如果...”。“如果...否则,如果...否则,...”的最后一个条件总是“否则,...”。交错的“如果...否则,如果...否则,...”语句可以通过匹配“...如下”或“...以下内容适用”与结尾的“否则,...”来识别。
在文本中,对于将用数学方法描述如下的逻辑运算:
Figure GDA0003237116270000341
其语句可以用以下方式描述:
...如下/...以下内容适用:
–如果下面所有的条件为真,则语句0:
–条件0a
–条件0b
–否则,如果一个或多个以下条件为真,则语句1:
–条件1a
–条件1b
–...
–否则,语句n
在文本中,对于将用数学方法描述如下的逻辑运算:
if(条件0)
语句0
if(条件1)
语句1
其语句可以用以下方式描述:
当条件0时,语句0
当条件1时,语句1。
尽管已经主要基于视频编码描述了本发明的实施例,但是应当注意,编码系统10、编码器20和解码器30(以及相应的系统10)的实施例和本文描述的其他实施例也可以被配置用于静止图像处理或编码,即独立于如视频编码中的任何先前或连续图像的单独图像的处理或编码。一般来说,在图像处理编码限于单个图像17的情况下,只有帧间预测单元244(编码器)和344(解码器)可能不可用。视频编码器20和视频解码器30的所有其他功能(也称为工具或技术)同样可以用于静止图像处理,例如残差计算204/304、变换206、量化208、逆量化210/310、(逆)变换212/312、分区262/362、帧内预测254/354和/或环路滤波220、320以及熵编码270和熵解码304。
例如编码器20和解码器30的实施例和本文例如参考编码器20和解码器30描述的功能可以用硬件、软件、固件或其任意组合来实现。如果以软件实现,这些功能可以存储在计算机可读介质上,或者作为一个或多个指令或代码通过通信介质传输,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于诸如数据存储介质之类的有形介质,或者通信介质,其包括便于(例如根据通信协议)将计算机程序从一个地方传送到另一个地方的任何介质。以这种方式,计算机可读介质通常可以对应于:(1)非暂时性的有形计算机可读存储介质,或者(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以检索指令、代码和/或数据结构来实现本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储设备、磁盘存储设备或其他磁存储设备、闪存或任何其他可以用于以指令或数据结构的形式存储期望的程序代码并且可以由计算机访问的介质。此外,任何连接都被恰当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线路(digital subscriber line,DSL)或无线技术(如红外线、无线电和微波)从网站、服务器或其他远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或无线技术(如红外线、无线电和微波)包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂时性介质,而是指向非暂时性的有形存储介质。本文使用的磁盘和光盘包括光盘(compact disc,CD)、激光盘、光盘、数字多功能盘(digital versatiledisc,DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。以上的组合也应该包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,例如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成或分立逻辑电路。因此,本文使用的术语“处理器”可以指前述结构中的任何一种或者适于实现本文描述的技术的任何其他结构。此外,在一些方面,本文描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块中提供,或者结合在组合编解码器中。同样,这些技术可以完全在一个或多个电路或逻辑元件中实现。
本公开的技术可以在多种设备或装置中实现,包括无线手机、集成电路(integrated circuit,IC)或IC集(例如,芯片集)。在本公开中描述了各种组件、模块或单元,以强调用于执行所公开的技术的设备的功能方面,但是不一定需要通过不同的硬件单元来实现。相反,如上所述,各种单元可以组合在编解码器硬件单元中,或者由包括如上所述的一个或多个处理器的互操作硬件单元的集合结合合适的软件和/或固件来提供。

Claims (12)

1.一种帧间预测方法,包括:
获取用于双向预测的初始运动矢量和参考图像;
根据候选运动矢量获取所述参考图像中的候选样本位置集合,其中每个候选运动矢量由所述初始运动矢量和每个预设运动矢量偏移导出,并且其中每个候选样本位置集合对应于每个候选运动矢量;
从每个候选样本位置集合中获取每个样本位置集合;
在每个样本位置集合内计算每个候选运动矢量的匹配代价,其中计算所述匹配代价包括计算候选运动矢量对中的两个候选运动矢量分别对应的两个预测样本块之间的绝对差值和SAD,所述两个预测样本块分别基于所述两个候选运动矢量对应的样本位置集合获得;
基于计算出的每个候选运动矢量的匹配代价获取细化的运动矢量;以及
基于所述细化的运动矢量获取当前块的预测值;
其中,所述候选样本位置集合中的插值样本的位置的拉链图案被选择作为所述样本位置集合,所述候选样本位置集合中的插值样本的位置的拉链图案包括:
所述候选样本位置集合中的奇数行左对齐的预定数量的连续样本位置,和/或所述候选样本位置集合中的偶数行右对齐的预定数量的连续样本位置,其中所述预定数量小于对应的奇数行或者偶数行的样本位置的总数。
2.根据权利要求1所述的方法,其中所述初始运动矢量和/或所述参考图像是基于比特流中用信号通知的指示信息获得的。
3.根据权利要求1所述的方法,其中所述初始运动矢量是根据比特流中用信号通知的运动矢量预测值和运动矢量差值获得的。
4.根据权利要求3所述的方法,其中所述运动矢量预测值由所述比特流中用信号通知的索引来指示,其中所述索引用于指示候选矢量列表中的位置。
5.根据权利要求1至4中任一项所述的方法,其中所述候选样本位置集合在边界矩形区域内,并且其中所述边界矩形区域是使用所述初始运动矢量、所述当前块的左上角位置、水平方向和垂直方向上的运动矢量细化范围计算的。
6.根据权利要求1至4中任一项所述的方法,其中所述初始运动矢量是第一运动矢量或第二运动矢量,并且所述第一运动矢量和所述第二运动矢量对应于不同的参考图像列表。
7.一种编码器(20),包括用于执行根据权利要求1至6中任一项所述的方法的处理电路。
8.一种解码器(30),包括用于执行根据权利要求1至6中任一项所述的方法的处理电路。
9.一种非暂时性计算机可读存储介质,用于存储程序代码,其中当所述程序代码被处理器执行时,实现根据权利要求1至6中任一项所述的方法。
10.一种解码器,包括:
一个或多个处理器;以及
非暂时性计算机可读存储介质,其耦合到所述处理器,并存储由所述处理器执行的编程,其中当所述编程被所述处理器执行时,配置所述解码器执行根据权利要求1至6中任一项所述的方法。
11.一种编码器,包括:
一个或多个处理器;以及
非暂时性计算机可读存储介质,其耦合到所述处理器,并存储由所述处理器执行的编程,其中当所述编程被所述处理器执行时,配置所述编码器执行根据权利要求1至6中任一项所述的方法。
12.一种帧间预测设备,包括运动矢量细化装置,用于:获取用于双向预测的初始运动矢量和参考图像;根据所述初始运动矢量和候选运动矢量获取所述参考图像中的候选样本位置集合,其中每个候选运动矢量由所述初始运动矢量和每个预设运动矢量偏移导出,并且其中每个候选样本位置集合对应于每个候选运动矢量;从每个候选样本位置集合中获取每个样本位置集合;在每个样本位置集合内计算每个候选运动矢量的匹配代价,其中计算所述匹配代价包括计算候选运动矢量对中的两个候选运动矢量分别对应的两个预测样本块之间的绝对差值和SAD,所述两个预测样本块分别基于所述两个候选运动矢量对应的样本位置集合获得;基于计算出的每个候选运动矢量的匹配代价获取细化的运动矢量;以及基于所述细化的运动矢量获取当前块的预测值;
其中,所述候选样本位置集合中的插值样本的位置的拉链图案被选择作为所述样本位置集合,所述候选样本位置集合中的插值样本的位置的拉链图案包括:
所述候选样本位置集合中的奇数行左对齐的预定数量的连续样本位置,和/或所述候选样本位置集合中的偶数行右对齐的预定数量的连续样本位置,其中所述预定数量小于对应的奇数行或者偶数行的样本位置的总数。
CN202080017741.4A 2019-03-05 2020-03-05 使用抽取预测块的dmvr Active CN113615194B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN201931008547 2019-03-05
IN201931008547 2019-03-05
PCT/CN2020/077870 WO2020177727A1 (en) 2019-03-05 2020-03-05 Dmvr using decimated prediction block

Publications (2)

Publication Number Publication Date
CN113615194A CN113615194A (zh) 2021-11-05
CN113615194B true CN113615194B (zh) 2023-06-06

Family

ID=72337610

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080017741.4A Active CN113615194B (zh) 2019-03-05 2020-03-05 使用抽取预测块的dmvr

Country Status (4)

Country Link
US (1) US20220368888A9 (zh)
EP (1) EP3912355A4 (zh)
CN (1) CN113615194B (zh)
WO (1) WO2020177727A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4364419A1 (en) * 2021-06-30 2024-05-08 Telefonaktiebolaget LM Ericsson (publ) Selective subblock-based motion refinement
EP4364420A1 (en) * 2021-06-30 2024-05-08 Telefonaktiebolaget LM Ericsson (publ) Overlapped decoder side motion refinement
US11968356B2 (en) * 2022-03-16 2024-04-23 Qualcomm Incorporated Decoder-side motion vector refinement (DMVR) inter prediction using shared interpolation filters and reference pixels
WO2024017004A1 (en) * 2022-07-22 2024-01-25 Mediatek Inc. Reference list reordering in video coding

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6091460A (en) * 1994-03-31 2000-07-18 Mitsubishi Denki Kabushiki Kaisha Video signal encoding method and system
TWI344792B (en) * 2006-07-12 2011-07-01 Lg Electronics Inc A method and apparatus for processing a signal
CN102823251B (zh) * 2010-03-31 2015-08-12 Jvc建伍株式会社 动图像编码装置、动图像编码方法及动图像编码程序、以及动图像解码装置、动图像解码方法及动图像解码程序
US9609347B2 (en) * 2013-04-04 2017-03-28 Qualcomm Incorporated Advanced merge mode for three-dimensional (3D) video coding
US10750203B2 (en) * 2016-12-22 2020-08-18 Mediatek Inc. Method and apparatus of adaptive bi-prediction for video coding
US20180199057A1 (en) * 2017-01-12 2018-07-12 Mediatek Inc. Method and Apparatus of Candidate Skipping for Predictor Refinement in Video Coding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JVET-K0105-v1,CE9-related: Simplification of Decoder Side Motion Vector Derivation;Hongbin Liu;《 JVET-K0105-v1》;20180713;1-2节 *
VET-K0359-v2,CE9.2.5/9.2.6: DMVR with Template-free Bilateral Matching;Chun-Chi;《JVET-K0359》;20180711;第2节 *

Also Published As

Publication number Publication date
EP3912355A1 (en) 2021-11-24
US20220368888A9 (en) 2022-11-17
WO2020177727A1 (en) 2020-09-10
US20210400259A1 (en) 2021-12-23
EP3912355A4 (en) 2022-08-17
CN113615194A (zh) 2021-11-05
WO2020177727A8 (en) 2021-02-25

Similar Documents

Publication Publication Date Title
CN113545073B (zh) 在解码侧运动修正搜索期间使用扩展样本
CN113615194B (zh) 使用抽取预测块的dmvr
CN114845102B (zh) 光流修正的提前终止
US11889109B2 (en) Optical flow based video inter prediction
US20220116624A1 (en) Device and method for computing position of integer grid reference sample for block level boundary sample gradient computation
CN114450958B (zh) 用于减小增强插值滤波器的内存带宽的仿射运动模型限制
CN116208777A (zh) 编码器、解码器及相应的帧间预测方法
WO2020253853A1 (en) Early termination for optical flow refinment
RU2808608C2 (ru) Раннее прекращение уточнения оптического потока

Legal Events

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