CN111886866B - 用于编码或解码视频序列的方法及电子装置 - Google Patents

用于编码或解码视频序列的方法及电子装置 Download PDF

Info

Publication number
CN111886866B
CN111886866B CN201980007634.0A CN201980007634A CN111886866B CN 111886866 B CN111886866 B CN 111886866B CN 201980007634 A CN201980007634 A CN 201980007634A CN 111886866 B CN111886866 B CN 111886866B
Authority
CN
China
Prior art keywords
motion vector
refinement
current
pixel block
current pixel
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
CN201980007634.0A
Other languages
English (en)
Other versions
CN111886866A (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.)
MediaTek Inc
Original Assignee
MediaTek Inc
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 MediaTek Inc filed Critical MediaTek Inc
Priority to CN202311672108.0A priority Critical patent/CN117750032A/zh
Publication of CN111886866A publication Critical patent/CN111886866A/zh
Application granted granted Critical
Publication of CN111886866B publication Critical patent/CN111886866B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/567Motion estimation based on rate distortion criteria
    • 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/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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
    • 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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction

Landscapes

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

Abstract

提供了一种使用解码器侧运动矢量细化修正对视频序列进行编码或解码的视频编解码器。视频编解码器识别第一运动矢量和第二运动矢量,用于编码视频序列中当前视频帧的当前像素块。视频编解码器基于当前像素块的线性维度与阈值之间的比较来确定是否对当前像素块执行运动向量细化修正。当执行运动向量细化修正时,视频编解码器细化修正第一和第二运动向量以最小化失真成本并通过使用细化修正的第一和第二运动向量对当前像素块进行编码。当不执行运动矢量细化修正时,视频编解码器通过使用所识别的第一和第二运动矢量来编码当前像素块。

Description

用于编码或解码视频序列的方法及电子装置
【交叉引用】
本申请是要求分别于2018.1.26、2018.8.27和2018.10.3提交的美国临时申请号为62/622,234、62/723,014和62/740,470的美国临时申请案的优先权的非临时申请的一部分。上述申请的全部内容也一并引用于此。
【技术领域】
本公开一般来说涉及视频处理。特别地,本公开涉及用于通过解码器侧运动向量细化修正(motion vector refinement,简写为DMVR)对像素块进行编码或解码的方法。
【背景技术】
除非本文另有说明,否则本部分中描述的方法不是后面列出的权利要求的现有技术,并且不包括在本部分中作为现有技术。
高效视频编解码(HEVC)是由视频编码解码联合协作组(JCT-VC)开发的国际视频编解码标准。HEVC基于基于混合块(hybrid block-based)的运动补偿离散余弦变换(DCT)类变换编解码架构。用于压缩的基本单元(称为编解码单元(CU))是2N×2N的正方形像素块,并且每个CU可以递归地分成四个较小的CU,直到达到预定义的最小尺寸。每个CU包含一个或多个预测单元(PU)。每个PU对应于CU中的像素块。
为了实现混合编码解码架构的最佳编解码效率,HEVC针对每个PU采用帧内预测和/或帧间预测模式。对于帧间预测模式,运动信息用于重构时间参考帧,其用于生成运动补偿预测。运动信息可包括运动向量、运动向量预测值、运动向量差、用于选择参考帧的参考索引等。
存在三种类型的帧间预测模式:跳过模式(skip mode)、合并模式(merge mode)和高级运动向量预测(AMVP)模式。当在AMVP模式中编码PU时,根据MV=MVP+MVD,从运动向量预测值(MVP)和运动向量差(MVD或残差运动数据)导出用于PU的运动补偿预测的运动向量(MV)。标识MVP选择的索引被编码并与相应的MVD一起作为运动信息发送。当PU以跳过模式或合并模式编码时,除了所选候选的合并索引之外,不发送运动信息。跳过模式和合并模式利用运动推断方法(MV=MVP+MVD,其中MVD为零)以从空间相邻块(空间候选)或从参考帧列表List0或List1(在切片标头(slice header)中指示)中选择的时间相邻图片(时间候选)中的共位块(collocated block)获得运动信息。在跳过PU的情况下,也省略了正被编解码的块的残差信号。为了通过使用AMVP、合并模式或跳过模式来中继HEVC下的像素块的运动信息,使用索引从候选运动预测值列表中选择MVP(或运动预测值)。在合并/跳过模式中,合并索引用于从包括四个空间候选和一个时间候选的候选运动预测值列表中选择MVP。传输合并索引,但不传输运动预测值。
【发明内容】
以下概述仅是说明性的,并不旨在以任何方式进行限制。也就是说,提供以下概述以介绍本文描述的新颖和非显而易见的技术的概念、要点、益处和优点。在下面的详细描述中进一步描述选择的实现方式,而非所有的实现方式。因此,以下发明内容并非旨在标识所要求保护的主题的必要特征,也不旨在用于确定所要求保护的主题的范围。
本发明的一些实施例提供一种视频编解码器,其使用解码器侧运动向量细化修正来对视频序列进行编码或解码。视频编解码器识别第一运动向量和第二运动向量,用于编解码视频序列中当前视频帧的当前像素块。视频编解码器基于当前像素块的大小与阈值之间的比较来确定是否对当前像素块执行运动向量细化修正。当执行运动向量细化修正时,视频编解码器细化修正第一和第二运动向量以最小化失真成本并通过使用细化修正的第一和第二运动向量对当前像素块进行编解码。当不执行运动向量细化修正时,视频编解码器通过使用所识别的第一和第二运动向量来编解码当前像素块。在一些实施例中,基于由第一和第二运动向量指向的子采样像素数据来计算失真成本。当前块的大小可以被指定为当前块的线性维度(例如,高度或宽度)或者指定为当前块的区域。
在一些实施例中,当当前像素块的大小大于阈值时,视频编解码器(i)将当前像素块划分为多个分区单元,(ii)细化修正分别用于多个分区单元的第一和第二运动向量,以及(iii)通过使用细化修正的运动向量分别对多个子块进行编解码。
【附图说明】
包括附图以提供对本公开的进一步理解,并且附图被并入并构成本公开的一部分。附图示出了本公开的实施方式,并且与说明书一起用于解释本公开的原理。可以理解的是,附图不一定按比例绘制,因为为了清楚地说明本公开的概念,一些部件可能被示出为与实际实施中的尺寸不成比例。
图1示出了根据本公开实施例的使用PMVD和DMVR用于视频编解码的电子***的图。
图2a-2b概念性地示出了与本公开的示例性实施例一致的,使用双向预测PMVD和DMVR来编码或解码像素块。
图3概念性地示出了与本公开的示例性实施例一致的,使用模板匹配和DMVR来编码或解码像素块。
图4概念性地示出了用于编码或解码像素块的备选双边匹配和DMVR过程。
图5示出了可以使用PMVD和DMVR来编码像素块的示例视频编码器。
图6示出了实现PMVD和DMVR的视频编码器的部分。
图7示出了可以使用PMVD和DMVR来解码和重构像素块的示例视频解码器。
图8示出了实现PMVD和DMVR的视频解码器的部分。
图9a-9b概念性地示出了视频编解码器(编码器或解码器)在编码或解码视频帧的像素块时用于实现PMVD和DMVR的过程。
图10概念性地示出了用于实现本公开的一些实施例的电子***。
【具体实施方式】
在以下详细描述中,通过示例阐述了许多具体细节,以便提供对相关教导的透彻理解。基于本文描述的教导的任何变化,衍生物和/或扩展都在本公开的保护范围内。在一些实例中,可以在没有细节的情况下以相对较高的级别描述与本文公开的一个或多个示例实现有关的公知方法、过程、组件和/或电路,以避免不必要地模糊本公开的教导的各方面。
I.PMVD和DMVR
基于模式的运动向量推导(Pattern-based Motion Vector Derivation,简写为PMVD)是从参考帧的现有运动向量(MV)导出时间运动向量预测值(MVP)的方法。类似于以跳过和合并模式编解码的块,由PMVD编解码的块不需要将运动信息从视频编码器发送到视频解码器。相反,解码器在可用参考帧中搜索可用于重构块的合适运动向量。PMVD是帧速率上转换(frame rate up-conversion,简写为FRUC)的一种形式,其允许在解码器处导出块的运动信息而无需来自编码器的信令。
解码器可以通过检查一组候选运动向量来执行PMVD以选择初始运动向量,然后通过在初始运动向量所指向的区域周围搜索参考像素集合来执行解码器侧运动向量细化修正(DMVR),其中参考像素集合具有最小的匹配成本或失真成本。搜索的结果是精细的运动向量,其随后用于解码块。解码器可以通过针对块的每个子块进一步细化修正运动向量来执行第二阶段DMVR。
DMVR是在视频编解码(编码/解码)中使用的技术,以细化修正当前像素块的运动向量而不传输附加信息(例如,语法元素)。但是,DMVR可以增加计算工作量并增加处理时间。在一些实施例中,为了确保通过增加处理时间来证明DMVR的视频品质改善是合理的,基于当前块的某些属性或特性来跳过或部分地执行DMVR。
在一些实施例中,PMVD和DMVR用于导出和细化修正用于当前块的双向帧间预测(bidirectional inter-prediction)(或双向预测(bi-prediction))的两个运动向量。当前帧中的当前块由指向第一参考帧中的第一参考像素集合的第一运动向量和指向第二参考帧中的第二参考像素集合的第二运动向量编解码。通过第一参考像素集合和第二参考像素集合的组合来预测当前块。PMVD和DMVR技术用于识别和细化修正第一和第二运动向量,使得使用第一和第二参考像素集合的组合来重构当前块的失真成本是最小的。
图1示出了根据本公开实施例的使用PMVD和DMVR用于视频编解码的电子***#0100的图。电子***#0100包括多个电子设备,其使用各种编解码(编码/解码)技术,例如帧间预测编码解码技术、帧内预测编码解码技术等,以在多个电子设备之间有效地传送视频。在图1的示例中,电子***#0100包括第一设备#0110和第二设备#0160。视频在第一设备#0110处被编码,并且编码视频在比特流#0150中从第一设备#0110发送到第二设备#0160以进行解码。第一设备#0110和/或第二设备#0160可以应用PMVD和DMVR作为用于帧间双向预测的合并模式的一部分。DMVR可以在第一设备#0110和/或第二设备#0160处提前终止、完全跳过或部分执行。
电子***#0100中的电子设备可以是任何合适的设备。在一个示例中,第一设备#0110是多媒体捕获设备,诸如视频记录器、相机、智能电话、平板计算机、膝上型计算机、台式计算机等,被配置为生成视频帧和将视频帧编码为编码视频;第二设备#0160是多媒体播放设备,例如电视、投影仪、智能手机、平板电脑、笔记本电脑、台式电脑等,用于解码已编码视频以构建解码视频帧并显示解码的视频帧。
在一些实施例中,第一设备#0110耦合到生成视频帧的多媒体捕获设备(未示出),并且第一设备#0110从多媒体捕获设备接收视频帧并对视频帧进行编码。在另一示例中,第二设备#0160耦合到多媒体播放设备(未示出),第二设备#0160对编码的视频进行解码以构建解码视频帧并将解码视频帧提供给多媒体播放设备。
在图1的示例中,第一设备#0110根据一个或多个通信标准,通过任何合适的通信信道(例如电缆、局域网(LAN)、无线LAN(WLAN)、蜂窝网络、光网络、因特网或上述的任何组合)将比特流中的编码视频发送到第二设备#0160。在一个示例中,比特流被携带在电信号中并通过电缆传输。在另一示例中,比特流以分组(packet)携带,并且分组通过LAN中的电信号发送。在另一示例中,分组可以由射频信号携带,例如,在WLAN或蜂窝网络中。
根据本公开的一个方面,第一设备#0110包括编码器电路#0120。编码器电路#0120被配置为根据视频编解码标准(例如,HEVC)对视频进行编码,并生成编码视频的比特流#0150。比特流由第一设备#0110和/或其他设备(未示出)以任何合适的格式发送。第二设备#0160包括解码器电路#0170。解码器电路#0170被配置为接收编码视频的比特流并解码比特流#0150以根据视频编解码标准生成解码视频帧。由编码器电路#0120实现的示例视频编码器将在下面的部分II中描述。由解码器电路#0170实现的示例视频解码器将在下面的部分III中描述。
此外,编码器电路#0120在合并模式下使用PMVD和DMVR用于编码期间的帧间双向预测,并且解码器电路#0170在合并模式中使用PMVD DMVR用于解码期间的帧间双向预测。对于不满足特定条件的块,例如大于或小于阈值大小,可以提前选择性地提前终止DMVR或禁用DMVR。对于***#0100,编码器电路#0120包括帧间编码器#0130,其被配置为在合并模式中应用PMVD和DMVR以用于帧间双向预测。帧间编码器#0130是帧间预测模块,其包括模式匹配引擎#0140和细化修正控制器#0145。模式匹配引擎#0140被配置为基于PMVD和DMVR的失真成本来识别或搜索运动向量。细化修正控制器#0145被配置为在DMVR被完全执行之前选择性地终止或旁路DMVR,或者被配置为针对不满足特定条件的块禁用DMVR。
类似地,解码器电路#0170包括帧间解码器#0180,其被配置为在合并模式中应用DMVR以用于帧间双向预测。帧间解码器#0180是帧间预测模块,其包括模式匹配引擎#0190和细化修正控制器#0195。模式匹配引擎#0190被配置为基于PMVD和DMVR的失真成本来搜索或识别运动向量。细化修正控制器#0195被配置为在DMVR被完全执行之前选择性地终止DMVR,或者被配置为针对不满足特定条件的块禁用DMVR。这些不同的条件将在下面的第IV部分中进一步描述。
注意,编码器电路#0120和解码器电路#0170可以使用任何合适的技术来实现。在一个实施例中,编码器电路#0120和解码器电路#0170使用集成电路(IC)实现。在另一示例中,使用执行软件指令的一个或多个处理器来实现编码器电路#0120和解码器电路#0170。还应注意,第一设备#0110和第二设备#0160可包括其他合适的组件。例如,第一设备#0110可以包括视频解码器(未示出),第二设备#0160可以包括编码器(未示出)。
第2a-2b图概念性地示出了使用双向预测PMVD和DMVR来编码或解码像素块,与本公开的示例性实施例一致。该图示出了用于编码/解码的当前帧#0210(或现下帧),在视频序列中的当前帧#0210之前的第一参考帧#0220(ref0),以及在视频序列中的当前帧#0210之后的第二参考帧#0230(ref1)。注意,第一参考帧#0220和当前帧#0210之间的帧数可以与当前帧#0210和第二参考帧#0230之间的帧数不同。
当前帧#0210包括使用双边匹配当前正被编码的块#0211(当前块),双边匹配是双向预测PMVD的形式。当前块#0211可以是HEVC的CU。帧间预测模块(例如,帧间编码器#0130或帧间解码器#0180)通过细化修正两个运动向量MV1和MV0来对块#0211执行PMVD。如图02a中所示,第一运动向量MV0指向第一参考帧#0220中的第一参考像素集合#0221,第二运动向量MV1指向第二参考帧#0230中的第二参考像素集合#0231。MV0是时间导出的List0 MVP,MV1是时间导出的List1 MVP。细化修正的MV0(表示为MV0')指向第一重新定位的参考像素集合#0225。细化修正的MV1(表示为MV1')指向第二重新定位的参考像素集合#0235。
为了导出List0时间导出的MVP,将List0参考帧中的List0MV缩放到当前帧作为MV0。List0 MV被进一步缩放以指向其在List0中的refIdx为0的参考图片作为MV0镜像。类似过程用于导出包括MV1和MV1镜像的List1时间导出的MVP。从List0或List1中的一个参考帧(与当前帧交叉)到另一个参考帧的MV的缩放沿着相同的运动轨迹。MV0和MV0镜像处于与当前块#0211相交的相同运动轨迹中。MV1和MV1镜像也处于与当前块#0211相交的相同运动轨迹中。
当前块可以具有多个候选的时间导出的MVP。候选的时间导出的MVP可以从预定义的一组候选运动向量导出,例如,来自CU#0211的合并列表的候选运动向量,从当前帧#0210中的CU#0211的空间相邻继承的运动向量,所有参考帧的所有运动向量等。在一些实施例中,帧间预测模块在候选时间导出的MVP中选择具有最小失真成本的MVP。与时间导出的List0MVP相关联的失真成本可以被计算为由List0时间导出的MVP(例如,MV0和MV0镜像)的两个MV指向的参考像素集合之间的差。与时间导出的List1 MVP相关联的失真成本可以被计算为由List1时间导出的MVP(例如,MV1和MV1镜像)的两个MV指向的参考像素集合之间的差。可以通过绝对差之和(sum of absolute differences,简写为SAD)或像素级的平方差之和(sum of squared differences,简写为SSD)来测量差异。
如图2b中所示,搜索产生细化修正的的MV0(表示为MV0')和细化修正的MV1(表示为MV1'),其最小化MV0和MV1的失真成本。在细化修正之前,MV0的失真成本被计算为由MV0指示的第一参考像素集合#0221与由MV0镜像所指示的参考像素集合#0222之间的差,并且MV1的失真成本被计算为由MV1表示的第二参考像素集合#0231和由MV1镜像指示的参考像素集合#0232之间的差。在细化修正之后,MV0'的失真成本被计算为由MV0'指示的第一重定位参考像素集合#0225与由MV0'镜像指示的参考像素集合#0226之间的差。MV1'的失真成本被计算为由MV1'指示的第二重定位参考像素集合#0235与由MV1'镜像指示的参考像素集合#0236之间的差。
在一些实施例中,帧间预测模块以两个阶段(in two stages)执行双边匹配。第一阶段是块级(block-level)(例如,PU级或CU级)匹配,第二阶段是子块级(例如,子PU级)匹配。
对于第一阶段PU级(块级)匹配,分别选择来自List0和List1时间导出的MVP的若干起始MV对。帧间预测模块计算每个MV对的失真成本(例如,MV对指向的参考像素集合之间的SAD或SSD)。为块选择具有最小失真成本的MV对(例如,作为MV0和MV1)。然后执行菱形搜索(diamond search)以细化修正所选择的MV对。在一些实施例中,细化修正精度是1/8像素,并且细化修正搜索范围被限制在±1像素内。最终细化修正的MV对被识别为块级导出的MV对。
对于第二阶段子PU级(或子块级)搜索,将当前PU划分为子PU。在SPS中信令子PU的深度(例如3)。最小子PU尺寸为4x4像素。对于每个子PU,从List0和List1中选择几个起始MV,其可以包括PU级导出的MV、零MV、当前子PU和右下块的HEVC并置TMVP、当前子的时间导出的MVP、以及左侧和上方PU/子PU的MV。通过在PU级搜索中使用类似机制,选择每个子PU的最佳MV对。执行菱形搜索以细化修正每个子PU的MV对。执行每个子PU的运动补偿以生成子PU的预测值。
在一些实施例中,代替执行双向匹配(bilateral matching)以沿着运动轨迹搜索合适的参考像素集合,帧间预测模块(帧间编码器#0130或帧间解码器#0180)执行模板匹配以基于模板的比较搜索合适的参考像素集合。在该解码器MV推导方法中,模板匹配用于生成用于帧间模式编码的MVP。当选择参考图片时,执行模板匹配以识别所选参考图片中的最佳模板。对应于所识别的模板的MV是导出的MVP。该MVP被***AMVP的第一个位置。
图3概念性地示出了使用模板匹配和DMVR来编码或解码像素块,与本公开的示例性实施例一致。该图示出了用于编码/解码的当前帧#0310(或现下帧)、在视频序列中在当前帧#0310之前的第一参考帧#0320,以及在视频序列中在当前帧#0310之后的第二参考帧#0330。注意,第一参考帧#0320和当前帧#0310之间的帧数可以与当前帧#0310和第二参考帧#0330之间的帧数不同。
对于模板匹配合并模式,使用上方4行(row)和左侧4列(column)的重构像素来形成模板。执行模板匹配以找到具有其对应MV的最佳匹配模板。在图3的示例中,当前块#0311的模板#0317包括当前块#0311的上方和左侧的像素集合。参考像素集合#0321和#0331分别对应于MV0和MV1。模板#0327和模板#0337是参考像素集合#0321和#0331的上方和左侧的像素集合,并且用于与模板#0317匹配。
两阶段匹配也适用于模板匹配。对于第一阶段PU级匹配,分别选择来自List0和List1的几个起始MV。这些MV包括来自合并候选的MV和来自时间导出的MVP的MV。为两个列表生成两个不同的起始MV集合。对于一个列表中的每个MV,计算具有MV的模板的SAD成本。成本最低的MV为最佳MV。然后,执行菱形搜索以细化修正MV。细化修正精度为1/8像素。细化修正搜索范围限制在±1像素内。最终的MV是PU级导出的MV。List0和List1中的MV是独立生成的。在图3的示例中,MV0'和MV1'是基于搜索具有最低SAD成本的模板的MV0和MV1的细化修正版本。
对于第二阶段子PU级搜索,将当前PU划分为子PU。在SPS中信令子PU的深度(例如3)。最小子PU尺寸为4x4块。对于左侧或顶部PU边界处的每个子PU,选择List0和List1中的若干起始MV,其包括PU级导出MV的MV、零MV、当前子PU和右下块的HEVC并置TMVP、当前子的时间导出的MVP、以及左侧和上方PU/子PU的MV。通过在PU级搜索中使用类似机制,选择每个子PU的最佳MV对。执行菱形搜索以细化修正MV对。执行该子PU的运动补偿以生成该子PU的预测值。对于那些不在左边或顶部PU边界的PU,不应用第二阶段,子PU级搜索,并且将对应的MV设置为等于第一阶段中的MV。
图4概念性地示出了与本公开的示例性实施例一致的用于编码或解码像素块的替代双边匹配和DMVR过程。失真成本基于在时间上位于当前图像的相对侧的两个参考图像(ref0和ref1)的预测之间的平均去除的绝对差之和(mean removed sum of absolutedifferences,简写为MRSAD)的计算。在该示例中,基于由第一运动向量MV0指示的第一参考像素集合和由第二运动向量MV1指示的第二参考像素集合来计算差异。
在整数精度搜索期间,检查6个点,其根据自适应搜索模式方法选择。完成整数搜索过程后,如果启用半像素搜索,则将进行半样本精度搜索(half sample precisionsearch)。在半样本搜索中,仅检查4个点(以加号形状(plus sign shape))。在一些实施例中,如果满足以下条件,则在合并和跳过模式中应用搜索模式:
(POC-POC0)*(POC-POC1)<0,
其中POC是当前要编码的图片的图片顺序计数(picture order count),POC0和POC1是当前图片的参考图片(ref0和ref1)的图片顺序计数。信令的合并候选对被用作DMVR过程的输入,并且被表示为初始运动向量(MV0,MV1)。由DMVR搜索的搜索点遵循运动向量差镜像条件。换句话说,由候选运动向量对(MV0',MV1')表示的由DMVR检查的任何点遵循以下两个等式:
MV0’=MV0+MVdiff
MV1’=MV1-MVdiff
其中,MVdiff表示参考图片之一中的搜索空间中的点。在构建搜索空间之后,使用常规的8抽头(tap)DCTIF插值滤波器构建单边预测(unilateral prediction)。通过在两个预测之间使用MRSAD来计算双边匹配成本函数,并且选择导致最小成本的搜索点作为细化修正的MV对(MV0'和MV1')。基于由细化修正的第一运动向量(MV0')指示的第一参考帧中的第一参考像素集合与由细化修正的第二运动向量(MV1')指示的第二参考帧中的第二参考像素集合之间的差来计算失真成本,细化修正的第一运动向量(MV0')和细化修正的第二运动向量(MV1')基于相对于中心搜索位置的相对搜索位置。
对于MRSAD计算,使用16比特精度样本来匹配插值滤波的输出。在一些实施例中,在MRSAD计算之前不应用限幅和舍入操作以便减少内部缓冲器要求。通过自适应模式方法选择整数精度搜索点。如图4中所示,首先计算对应于ref0和ref1(由初始运动向量MV0和MV1指向)的中心点(P0)的初始成本。额外的4个成本对应于加号形状(P1-P4)中的像素位置,通过位于中心点的相对侧的预测来计算。基于先前计算的成本的梯度来选择最后一点(P5)。DMVR过程的输出是对应于最小成本的细化修正运动向量对。
如果在一次迭代之后在搜索空间的中心点处实现最小成本,即不改变运动向量,则终止细化修正处理。否则,只要不超过搜索范围,具有最小成本的点就被视为进一步搜索过程的中心。
仅当半像素搜索的应用不超过搜索范围时才应用半样本精度搜索。在这些情况下,仅执行4次MRSAD计算,对应于围绕中心点的加号形状点(plus shape point),其基于整数精度搜索期间的最小成本来选择。DMVR过程输出细化修正的运动向量对,其对应于搜索结束时的最小成本点。
II.范例的视频编码器
图5示出了可以使用PMVD和DMVR来编码像素块的示例视频编码器#0500。如图所示,视频编码器#0500从视频源#0505接收输入视频信号,并将该信号编码为比特流#0595。视频编码器#0500具有用于编码来自视频源#0505的信号的若干组件或模块,包括变换模块#0510、量化模块#0511、逆量化模块#0514、逆变换模块#0515、帧内图像估计模块#0520、帧内预测模块#0525、运动补偿模块#0530、运动估计模块#0535、环路滤波器#0545、重构图像缓冲器#0550、MV缓冲器#0565、MV预测模块#0575和熵编码器#0590。运动补偿模块#0530和运动估计模块#0535是帧间预测模块#0540的一部分。
在一些实施例中,模块#0510-#0590是由计算设备或电子装置的一个或多个处理单元(例如,处理器)执行的软件指令的模块。在一些实施例中,模块#0510-#0590是由电子装置的一个或多个集成电路(IC)实现的硬件电路的模块。虽然模块#0510-#0590被示为单独的模块,但是一些模块可以组合成单个模块。
视频源#0505提供原始视频信号,其呈现每个视频帧的像素数据而无需压缩。减法器#0508计算视频源#0505的原始视频像素数据与来自运动补偿模块#0530或帧内预测模块#0525的预测像素数据#0513之间的差。变换#0510将差值(或残差像素数据或残差信号#0509)转换为变换系数(例如,通过执行离散余弦变换或DCT)。量化模块#0511将变换系数量化为量化数据(或量化系数)#0512,其由熵编码器#0590编码到比特流#0595中。
逆量化模块#0514对量化数据(或量化系数)#0512进行去量化以获得变换系数,并且逆变换模块#0515对变换系数执行逆变换以产生重构残差#0519。将重构的残差#0519与预测的像素数据#0513相加以产生重构的像素数据#0517。在一些实施例中,重构的像素数据#0517被临时存储在行(line)缓冲器(未示出)中,用于图片内预测和空间MV预测。重构的像素由环路滤波器#0545滤波并存储在重构的图像缓冲器#0550中。在一些实施例中,重构的图片缓冲器#0550是视频编码器#0500外部的存储器。在一些实施例中,重构图片缓冲器#0550是视频编码器#0500内部的存储器。
图片内估计模块#0520基于重构的像素数据#0517执行帧内预测,以产生帧内预测数据。帧内预测数据被提供给熵编码器#0590以被编码到比特流#0595中。帧内预测模块#0525还使用帧内预测数据来产生预测像素数据#0513。
运动估计模块#0535通过产生MV来对存储在重构图片缓冲器#0550中的先前解码的帧的参考像素数据执行帧间预测。将这些MV提供给运动补偿模块#0530以产生预测的像素数据。
代替在比特流中对完整的实际MV进行编码,视频编码器#0500使用MV预测来生成预测的MV,并且用于运动补偿的MV与预测的MV之间的差被编码为残差运动数据并存储在比特流#0595。
MV预测模块#0575基于为先前视频帧编码而生成的参考MV(即,用于执行运动补偿的运动补偿MV)来生成预测的MV。MV预测模块#0575从MV缓冲器#0565中撷取来自先前视频帧的参考MV。视频编码器#0500将针对当前视频帧生成的MV存储在MV缓冲器#0565中作为用于生成预测MV的参考MV。
MV预测模块#0575使用参考MV来创建预测的MV。可以通过空间MV预测或时间MV预测来计算预测的MV。预测的MV与当前帧的运动补偿MV(MC MV)之间的差异(残差运动数据)由熵编码器#0590编码到比特流#0595中。
熵编码器#0590通过使用诸如上下文自适应二进制算术编解码(CABAC)或霍夫曼编码的熵编码技术将各种参数和数据编码到比特流#0595中。熵编码器#0590将诸如量化变换数据和残差运动数据的参数编码到比特流#0595中。比特流#0595存储在存储设备中或通过诸如网络的通信介质发送到解码器。
环路滤波器#0545对重构的像素数据#0517执行滤波或平滑操作,以减少编解码的伪像,特别是在像素块的边界处。在一些实施例中,执行的滤波操作包括样本自适应偏移(SAO)。在一些实施例中,滤波操作包括自适应环路滤波器(ALF)。
图6示出了实现PMVD和DMVR的视频编码器#0500的部分。具体地,该图示出了视频编码器#0500的帧间预测模块#0540的组件。对于一些实施例,视频编码器#0500的帧间预测模块#0540实现帧间编码器#0130。如图所示,帧间预测模块#0540从MV缓冲器#0565中撷取候选运动向量,并搜索重构图像缓冲器#0550的内容以生成用于当前块的双向预测的MV对。
帧间预测模块#0540包括运动补偿模块#0530、运动估计模块#0535、MV选择器#0605、细化修正控制器#0610、模式匹配引擎#0620、搜索缓冲器#0630,和失真成本计算器#0640。MV选择器#0605从MV缓冲器#0565中撷取候选运动向量,并将候选提供给模式匹配引擎#0620。模式匹配引擎#0620依次根据双边匹配或模板匹配生成当前块的MV对(MV0和MV1)。模式匹配引擎#0620还可以在子块MV细化修正期间为当前块的每个子块生成MV对。MV对用于从搜索缓冲器#0630撷取像素数据,其存储从重构图片缓冲器#0550中选择性地撷取的临时内容。在一些实施例中,搜索缓冲器#0630由视频编码器#0500的内部存储器设备实现,而重构的图片缓冲器#0550可以是视频编码器#0500外部的外部存储器设备。内部存储器设备可具有比外部存储器设备明显更少的容量。
从搜索缓冲器#0630撷取的像素数据用于通过失真成本计算器#0640计算与MV对相关联的失真成本。撷取的像素数据可以对应于沿着与当前块相同的运动轨迹的参考像素集合,或者俱有匹配的模板作为当前块。计算的失真成本(例如,SSD或SAD)可以由模式匹配引擎#0620使用以识别具有最低失真成本的MV对。将识别的MV对提供给运动补偿模块#0530以重构当前块。
在一些实施例中,帧间预测模块#0540在计算失真成本时对像素数据进行子采样(#0650),例如,仅考虑像素数据的预定义子集合,例如奇数或偶数行。在一些实施例中,对存储在搜索缓冲器中的数据进行子采样,以便可以减小实现搜索缓冲器#0630的内部存储器的大小。在一些实施例中,搜索缓冲器#0630的输出被子采样,因此可以减少失真成本计算器#0640处的SSD或SAD的计算次数。
细化修正控制器#0610基于某些条件确定是启用还是禁用DMVR的MV细化修正的特定阶段,例如CU的大小、高度或宽度是否大于阈值。这些条件将在下面的第IV节中进一步描述。可以基于诸如速率-失真折衷(rate-distortion trade off)的因素在运动估计模块#0535处确定这些条件。
III.范例的视频解码器
图7示出了可以使用PMVD和DMVR来解码和重构像素块的示例视频解码器#0700。如图所示,视频解码器#0700是图像解码或视频解码电路,其接收比特流#0795并将比特流的内容解码为视频帧的像素数据以供显示。视频解码器#0700具有用于解码比特流#0795的若干组件或模块,包括逆量化模块#0705、逆变换模块#0715、帧内预测模块#0725、运动补偿模块#0730、环路滤波器#0745、解码图像缓冲器#0750、MV缓冲器#0765、MV预测模块#0775和解析器#0790。运动补偿模块#0730是帧间预测模块#0740的一部分。
在一些实施例中,模块#0710-#0790是由计算设备的一个或多个处理单元(例如,处理器)执行的软件指令的模块。在一些实施例中,模块#0710-#0790是由电子装置的一个或多个IC实现的硬件电路的模块。虽然模块#0710-#0790被示为单独的模块,但是一些模块可以组合成单个模块。
解析器#0790(或熵解码器)接收比特流#0795并根据视频编解码或图像编解码标准定义的语法执行初始解析。经解析的语法元素包括各种标头元素、标志以及量化数据(或量化系数)#0712。解析器#0790通过使用诸如上下文自适应二进制算术编解码(CABAC)或霍夫曼编码的熵编码技术来解析各种语法元素。
逆量化模块#0705对量化数据(或量化系数)#0712进行去量化以获得变换系数,并且逆变换模块#0715对变换系数#0716执行逆变换以产生重构残差信号#0719。重构的残差信号#0719与来自帧内预测模块#0725或运动补偿模块#0730的预测像素数据#0713相加,以产生解码像素数据#0717。解码的像素数据由环路滤波器#0745滤波并存储在解码的图像缓冲器#0750中。在一些实施例中,解码图片缓冲器#0750是视频解码器#0700外部的存储器。在一些实施例中,解码图片缓冲器#0750是视频解码器#0700内部的存储器。
帧内预测模块#0725从比特流#0795接收帧内预测数据,并根据该帧内预测数据从存储在解码图像缓冲器#0750中的解码像素数据#0717产生预测像素数据#0713。在一些实施例中,解码的像素数据#0717还存储在行缓冲器(未示出)中,用于图片内预测和空间MV预测。
在一些实施例中,解码图片缓冲器#0750的内容用于显示。显示设备#0755或者直接撷取解码图像缓冲器#0750的内容,或者将解码图像缓冲器的内容撷取到显示缓冲器。在一些实施例中,显示设备通过像素传输从解码图片缓冲器#0750接收像素值。
运动补偿模块#0730根据运动补偿MV(MC MV)从存储在解码图片缓冲器#0750中的解码像素数据#0717产生预测像素数据#0713。通过将从比特流#0795接收的残差运动数据与从MV预测模块#0775接收的预测MV相加来解码这些运动补偿MV。
MV预测模块#0775基于为解码先前视频帧而生成的参考MV(例如,用于执行运动补偿的运动补偿MV)来生成预测的MV。MV预测模块#0775从MV缓冲器#0765中撷取先前视频帧的参考MV。视频解码器#0700将用于解码当前视频帧而生成的运动补偿MV在MV缓冲器#0765中存储为用于产生预测MV的参考MV。
环路滤波器#0745对解码的像素数据#0717执行滤波或平滑操作,以减少编解码的伪像,特别是在像素块的边界处。在一些实施例中,执行的滤波操作包括样本自适应偏移(SAO)。在一些实施例中,滤波操作包括自适应环路滤波器(ALF)。
图8示出了实现PMVD和DMVR的视频解码器#0700的部分。具体地,该图示出了视频解码器#0700的帧间预测模块#0740的组件。对于一些实施例,视频解码器#0700的帧间预测模块#0740实现帧间解码器#0180。如图所示,帧间预测模块#0740从MV缓冲器#0765中撷取候选运动向量,并搜索解码图像缓冲器#0750的内容以生成用于当前块的双向预测的MV对。
帧间预测模块#0740包括运动补偿模块#0730、MV选择器#0805、细化修正控制器#0810、模式匹配引擎#0820、搜索缓冲器#0830和失真成本计算器#0840。MV选择器#0805从MV缓冲器#0765中撷取候选运动向量,并将候选提供给模式匹配引擎#0820。模式匹配引擎#0820依次根据双边匹配或模板匹配生成当前块的MV对(MV0和MV1)。模式匹配引擎#0820还可以在子块MV细化修正期间为每个子块生成MV对。MV对用于从搜索缓冲器#0830撷取像素数据,其存储从解码图像缓冲器#0750中选择性地撷取的临时内容。在一些实施例中,搜索缓冲器#0830由视频解码器#0700的内部存储器设备实现,而解码图片缓冲器#0750可以是视频解码器#0700外部的外部存储器设备。内部存储器设备可具有比外部存储器设备明显更少的容量。
从搜索缓冲器#0830撷取的像素数据用于通过失真成本计算器#0840计算与MV对相关联的失真成本。撷取的像素数据可以对应于沿着与当前块相同的运动轨迹的参考像素集合,或者俱有匹配的模板作为当前块。计算的失真成本(例如,SSD或SAD)可以由模式匹配引擎#0820用于识别具有最低失真成本的MV对。识别的MV对被提供给运动补偿模块#0730以重构当前块。
在一些实施例中,帧间预测模块#0740在计算失真成本时对像素数据进行子采样(#0850),例如,仅考虑像素数据的预定义子集合,例如奇数或偶数行。在一些实施例中,对存储在搜索缓冲器中的数据进行子采样,以便可以减小实现搜索缓冲器#0830的内部存储器的大小。在一些实施例中,搜索缓冲器#0830的输出被子采样,因此可以减少失真成本计算器#0840处的SSD或SAD的计算次数。
细化修正控制器#0810基于某些条件(例如,CU的大小、高度或宽度是否大于阈值)来确定是启用还是禁用DMVR的MV细化修正的特定阶段。这些条件将在下面的第IV节中进一步描述。视频解码器的细化修正控制器#0810可以基于解析器#0790提供的比特流#0795的内容来确定这些条件。
IV.有条件的MV细化修正
在一些实施例中,当CU大于阈值大小时,不允许对当前CU进行MV细化修正。如果允许MV细化修正,则帧间预测模块执行搜索(例如,通过参考图4描述的菱形搜索或搜索)以在MV搜索阶段中细化修正MV对。在一些实施例中,如果当前CU大于阈值大小,则帧间预测模块禁用CU的MV水平细化修正(尽管仍可启用MV垂直细化修正)。在一些实施例中,如果当前CU大于阈值大小,则帧间预测模块禁用CU的MV垂直细化修正(尽管仍可启用MV水平细化修正)。
在一些实施例中,帧间预测模块(#0540或#0740)可以将当前CU划分为用于MV搜索阶段的多个较小的分区单元,以简化SSD或SAD计算。例如,如果当前CU的大小大于阈值大小,则帧间预测模块将CU划分为多个分区单元,并对每个分区单元执行MV搜索处理。相反,如果当前CU的大小小于阈值大小,则帧间预测模块不对CU进行分区并且作为整体对CU执行MV搜索处理。例如,如果阈值大小被定义为128x128并且当前CU大小是256x256,则帧间预测模块将CU分成大小为128x128的4个分区单元(partitioned unit),并且对每个分区单元执行MV搜索处理。
在一些实施例中,如果CU跨越视频图片中的网格单元边界,则帧间预测模块将当前CU划分为分区单元并且针对每个分区单元独立地执行MV细化修正。网格单元被定义为CTU中的grid_width x grid_height矩形区域。一个CTU可以划分为多个网格单元。如果CU未完全包含在网格单元内,则帧间预测模块将当前CU划分为若干分区单元,并且对于分区单元独立地执行MV细化修正,前提是每个分区单元落入一个网格单元内。
当前CU可包括若干子块。可以在子块MV细化修正阶段期间独立地对每个子块应用MV细化修正过程。当搜索目标区域以细化修正子块的MV时,子块MV细化修正阶段需要大量的存储器带宽。为了减少存储器访问,在一些实施例中,视频编解码器有条件地跳过子块MV细化修正阶段。也就是说,并不总是执行子块MV细化修正。在一些实施例中,如果当前CU大小小于阈值大小,则跳过子块MV细化修正过程。MxN可以是任何整数,例如4,8,16等。
在一些实施例中,基于运动资讯来确定执行子块MV细化修正的条件,运动资讯包括参考帧选择、预测方向或运动向量的大小。例如,在一些实施例中,当参考帧选择等于0时或者当运动向量的大小大于阈值时,执行子块MV细化修正阶段。
在一些实施例中,基于当前CU大小与相邻CU大小之间的比率来确定执行子块MV细化修正的条件。如果当前CU大小远大于相邻CU大小,则允许子块MV细化修正。否则,禁用当前CU的子块MV细化修正。有条件的子块MV细化修正可以由编码器和/或解码器(例如,视频编码器#0500的帧间预测模块#0540,和/或视频解码器#0700的帧间预测模块#0740)实现。)。
如上所述,在确定是否执行MV细化修正,是否执行子块MV细化修正,或者是否在MV搜索阶段期间对CU进行划分时,将CU的大小与阈值大小进行比较。在一些实施例中,如果CU的线性尺寸(linear dimension)(例如,CU的宽度或高度)大于阈值,则认为CU大于阈值大小。相反,如果CU的线性尺寸小于阈值,则认为CU小于阈值尺寸。在一些实施例中,如果CU的面积大于阈值面积,则认为CU大于阈值大小,并且如果CU的面积小于阈值面积,则认为CU小于阈值大小。
在一些实施例中,将CU与阈值大小M x N进行比较,阈值大小M x N由阈值高度(M)和阈值宽度(N)指定。可以在序列级别、图片级别或切片级别预定义或信令M和N的值。还可以基于视频解析度或标准简档(standard profile)导出M和N的值。如果(i)CU的面积大于M×N,(ii)如果CU的高度大于M,(iii)如果CU的宽度大于N,(iv)如果CU的宽度大于N并且CU的高度大于M,或者(v)如果CU的宽度大于N或者高度大于CU大于M,则可以认为CU大于阈值大小。
对于大CU,DMVR过程可能需要比较小CU更多的解码器侧操作和更多数据比特深度。为了降低用于大CU的DMVR的计算复杂度,帧间预测模块(#0540或#0740)可以在计算失真成本时通过对像素数据进行子采样(sub-sample)来执行MV细化修正处理。举例来说,帧间预测模块可仅使用奇数行或偶数行中的差异来选择当前CU的最佳MV。
在一些实施例中,视频编码器被约束为不通过MV细化修正来编码两个连续CU。例如,如果由于速率-失真判定而通过MV细化修正对当前CU的先前CU进行编码,则防止当前CU通过MV细化修正被编码。在一些实施例中,每当通过MV细化修正对先前CU进行编码时,对于当前CU,不存在用于MV细化修正的比特流语法。
编码器可以使用比特流中的MV细化修正语法来通知解码器是否开启了MV细化修正。在一些实施例中,视频编码器关闭MV细化修正操作,并且MV细化修正语法被信令为0,从编码器发送至解码器。在一些实施例中,对于大CU(大小≥预定义阈值),从比特流中消除MV细化修正语法,并且解码器基于CU的大小自动关闭MV细化修正,从而在比特流中节省至少一个比特。
图9a-9b概念性地示出了视频编解码器(编码器或解码器)在编码或解码视频帧的像素块时用于实现PMVD和DMVR的过程。在一些实施例中,实现视频编码器#0500或视频解码器#0700的计算设备的一个或多个处理单元(例如,处理器)通过执行存储在计算机可读介质中的指令来执行过程#0900。在一些实施例中,实现视频编码器#0500或视频解码器#0700的电子装置执行过程#0900。
如图9a中所示,视频编解码器接收(在步骤#0902)视频帧的像素块作为要编码的当前块。像素块可以来自原始视频以被编码为比特流作为PU或CU。像素块也可以来自作为PU或比特流的比特流,以被解码成像素数据。
视频编解码器确定(在步骤#0904)是否使用PMVD和DMVR对当前块进行编解码。在视频编码器处,运动估计过程或模块可基于速率-失真考虑来决定是否将PMVD和DMVR用于当前块。可以在编码视频帧的比特流中指示当前块是以PMVD编码还是DMVR编码。在一些实施例中,比特流可以包括指示块是否在PMVD和DMVR中编码的标志。在一些实施例中,比特流可以包括指示是否使用FRUC模式的标志。接收比特流的解码器可以使用该标志来决定是否执行PMVD和DMVR。在一些实施例中,当比特流包括指示跳过模式或合并模式为真的标志时,存在这样的标志。如果当前块在PMVD和DMVR中编码,则过程进行到#0908。否则,过程进行到#0906。
在步骤#0906,视频编解码器使用PMVD之外的模式来编码或解码当前块,编解码模式,例如合并模式,帧内模式,AMVP模式等。然后,过程#0900结束并且视频编解码器可以继续编码或解码另一个块。
在步骤#0908,视频编解码器识别用于编解码当前视频图片的当前像素块的MV对。MV对包括指示第一参考帧中的第一参考像素集合的第一运动向量,和指示第二参考帧中的第二参考像素集合的第二运动向量。视频编解码器可以基于预定义的一组候选运动向量来识别MV对,例如,来自当前块的合并列表的候选运动向量、从当前块的空间邻居继承的运动向量、所有参考帧的所有运动向量(List0和List1)等。然后,处理进入#0910。
视频编解码器确定(在步骤#0910)是关闭还是允许当前块的MV细化修正。在一些实施例中,MV细化修正语法元素存在于比特流中,并且解码器可基于MV细化修正语法元素关闭或允许MV细化修正。在一些实施例中,如果CU的大小大于阈值大小,则视频编解码器关闭MV细化修正操作而不检查MV细化修正语法元素,并且可以在比特流中不存在MV细化修正语法元素。在一些实施例中,编码器不执行MV细化修正,并且MV细化修正语法不存在或设置为0,并且解码器基于CU的大小确定是关闭还是允许MV细化修正。在一些实施例中,如果使用MV细化修正对当前CU的先前CU进行编解码,则防止当前CU被MV细化修正编解码。如果关闭当前块的MV细化修正,则过程进行到#0912。如果允许MV细化修正,则处理进行到步骤#0914。
在步骤#0912,视频编解码器使用所识别的MV对对当前块进行编解码,而不执行MV细化修正。然后,过程#0900结束,并且视频编解码器可以继解续编码其他块。
在步骤#0914,视频编解码器对当前块执行块级MV搜索和细化修正。在一些实施例中,视频编解码器通过执行菱形搜索来细化修正MV对,以最小化与MV对(或由MV对指示的参考像素集合)相关联的失真成本。
在一些实施例中,基于由MV对指示的参考像素集合之间的差异来计算失真成本(如参考图4所描述的)。在一些实施例中,基于当前块的相邻像素和由MV对指示的参考像素集合的相邻像素来计算失真成本(如参考图3所述)。在一些实施例中,基于由MV对指示的参考像素集合与由MV对的镜像指示的参考像素集合之间的差异来计算失真成本(如参考第2图所描述的)。
在一些实施例中,通过对MV对指向的像素数据进行子采样来计算失真成本。在一些实施例中,如果当前CU大于阈值大小,则视频编解码器禁用CU的MV水平细化修正。在一些实施例中,如果当前CU大于阈值大小,则视频编解码器禁用CU的MV垂直细化修正。然后该过程进行到#0916。
在步骤#0916,视频编解码器确定是否跳过子块级别MV细化修正。换句话说,视频编解码器确定当前块是否满足用于执行当前块的子块MV细化修正阶段的条件。在一些实施例中,如果当前CU大小小于阈值大小,则跳过子块MV细化修正阶段。在一些实施例中,基于运动资讯来确定执行子块MV细化修正的条件,运动资讯包括参考帧选择、预测方向和运动向量的大小。在一些实施例中,基于当前CU大小与相邻CU大小之间的比率来确定执行子块MV细化修正的条件。如果当前CU大小远大于相邻CU大小,则允许子块MV细化修正。否则,禁用当前CU的子块MV细化修正。如果满足跳过子块级别MV细化修正的条件,则处理进行到#0920。如果不满足跳过子块级别MV细化修正的条件,则处理进行到#0918。
在步骤#0918,视频编解码器对每个子块执行子块级别MV细化修正,以为每个子块产生一对细化修正的MV。对于每个子块,视频编解码器通过执行菱形搜索来细化修正MV对,以最小化与MV对(或由MV对指示的参考像素集合)相关联的失真成本。在一些实施例中,通过对MV对指向的像素数据进行子采样来计算失真成本。然后,过程#0900进行到#0920。
在步骤#0920,视频编解码器通过使用用于块的细化修正的MV对或用于子块或分区单元的细化修正的MV对来执行帧间预测来对当前块进行编码或解码。然后,过程#0900结束,并且视频编解码器可以继续编码或解码另一个像素块。
在一些实施例中,不是使用当前CU的大小来确定是否完全执行MV细化修正,而是视频编解码器使用当前CU的大小来确定是否将当前CU划分以用于MV细化修正。
如图9b中所示,在步骤#0908识别用于编解码的当前块的MV对之后,视频编解码器确定(在步骤#0922)是否将当前块划分为分区单元以进行细化修正。如果当前CU大小的大小大于阈值大小,则视频编解码器将CU划分为多个分区单元并对每个分区单元执行MV搜索过程。相反,如果CU大小小于阈值大小,则视频编解码器将CU视为一个分区单元,并且作为整体对CU执行MV搜索处理。在一些实施例中,当CU的线性尺寸(例如,CU的高度或宽度)大于阈值时,将当前CU视为大于阈值大小。在一些实施例中,当CU的面积(例如,CU的宽度x高度)大于阈值时,将当前CU视为大于阈值大小。在一些实施例中,如果CU未完全包含在预定义的网格单元内,则认为CU大于阈值大小。在一些实施例中,如果CU未完全包含在网格单元内,则视频编解码器将当前CU划分为若干分区单元并且对于每个分区单元独立地执行MV细化修正,条件是每个分区单元落入一个网格单元内。
如果要对块进行分区以进行MV细化修正,则过程进行到#0924。如果不对块进行分区以进行MV细化修正,则过程进行到#0914,以通过在步骤#0908中细化修正为当前块识别的MV对来整体地对当前块执行MV搜索和细化修正。
在步骤#0924,视频编解码器将当前块划分为分区单元,并单独地为每个分区单元执行MV搜索和细化修正。对于每个分区单元,视频编解码器通过执行菱形搜索来细化修正MV对,以最小化与MV对(或由MV对指示的参考像素集合)相关联的失真成本。在一些实施例中,通过对MV对指向的像素数据进行子采样来计算失真成本。然后,过程#0900进行到#0920。
在一些实施例中,如果视频编解码器已经允许针对CU的MV细化修正,则视频编解码器可以确定是否对CU进行分区以用于MV细化修正。在这些实例中,在视频编解码器已经在步骤#0908识别出用于编解码当前块的MV对之后,过程#0900可以前进到步骤#0910以用于视频编解码器以确定是关闭还是允许当前块的MV细化修正。该过渡在图9b中以虚线示出。如果视频编解码器允许MV细化修正,则过程#0900进行到步骤#0922以确定是否对块进行分区以进行MV细化修正。
V.范例的电子***
许多上述特征和应用被实现为被指定为记录在计算机可读存储介质(也称为计算机可读介质)上的一组指令的软件过程。当这些指令由一个或多个计算或处理单元(例如,一个或多个处理器、处理器核或其他处理单元)执行时,它们使处理单元执行指令中指示的动作。计算机可读介质的示例包括但不限于CD-ROM、闪存驱动器、随机存取存储器(RAM)芯片、硬盘驱动器、可擦除可程序化只读存储器(EPROM)、电可擦除可程序化只读存储器(EEPROM)。计算机可读介质不包括通过无线或有线连接传递的载波和电子信号。
在本说明书中,术语“软件”旨在包括驻留在只读存储器中的固件或存储在磁存储器中的应用程序,其可被读入存储器以供处理器处理。而且,在一些实施例中,多个软件发明可以实现为较大程序的子部分,同时保持不同的软件发明。在一些实施例中,多个软件发明也可以实现为单独的程序。最后,一起实现这里描述的软件发明的单独程序的任何组合都在本公开的范围内。在一些实施例中,当安装以在一个或多个电子***上操作时,软件程序定义施行和执行软件程序的操作的一个或多个特定机器实现。
图10概念性地示出了电子***#1000,利用该电子***#1000实现了本公开的一些实施例。电子***#1000可以是计算机(例如,台式计算机、个人计算机、平板计算机等)、电话、PDA或任何其他种类的电子设备。这种电子***包括各种类型的计算机可读介质和用于各种其他类型的计算机可读界面的接口。电子***#1000包括总线#1005、处理单元#1010、图形处理单元(GPU)#101、***存储器#1020、网络#1025、只读存储器#1030、永久存储设备#1035、输入设备#1040和输出设备#1045。
总线#1005共同表示通信地连接电子***#1000的众多内部设备的所有***、***设备和芯片组总线。例如,总线#1005将处理单元#1010与GPU#1015、只读存储器#1030,***存储器#1020和永久存储设备#1035通信连接。
从这些各种存储器单元、处理单元#1010撷取要执行的指令和要处理的数据,以便执行本公开的过程。在不同实施例中,处理单元可以是单个处理器或多核处理器。一些指令被传递到GPU#1015并由GPU#1015执行。GPU#1015可以卸载各种计算或补充由处理单元#1010提供的图像处理。
只读存储器(ROM)#1030存储处理单元#1010和电子***的其他模块所需的静态数据和指令。另一方面,永久存储设备#1035是读写存储设备。该设备是非易失性存储器单元,即使在电子***#1000关闭时也存储指令和数据。本公开的一些实施例使用大容量存储设备(诸如磁盘或光盘及其相应的磁盘驱动器)作为永久存储设备#1035。
其他实施例使用可移动存储设备(诸如软盘、闪存设备等,以及其对应的磁盘驱动器)作为永久存储设备。与永久存储设备#1035类似,***存储器#1020是读写存储器设备。然而,与存储设备#1035不同,***存储器#1020是易失性读写存储器,例如随机存取存储器。***存储器#1020存储处理器在运行时需要的一些指令和数据。在一些实施例中,根据本公开的过程存储在***存储器#1020、永久存储设备#1035和/或只读存储器#1030中。例如,根据一些实施例,各种存储器单元包括用于处理多媒体剪辑的指令。从这些各种存储器单元,处理单元#1010撷取要执行的指令和要处理的数据,以便执行一些实施例的处理。
总线#1005还连接到输入和输出设备#1040和#1045。输入设备#1040使用户能够向电子***传送信息和选择命令。输入设备#1040包括字母数字键盘和指示设备(也称为“游标控制设备”)、相机(例如,网络摄像头)、麦克风或用于接收语音命令的类似设备等。输出设备#1045显示由电子***或其他输出数据产生的图像。输出设备#1045包括打印机和显示设备,例如阴极射线管(CRT)或液晶显示器(LCD),以及扬声器或类似的音频输出设备。一些实施例包括诸如触摸屏的设备,其用作输入和输出设备。
最后,如图10所示,总线#1005还通过网络转接器(未示出)将电子***#1000耦合到网络#1025。以这种方式,计算机可以是计算机网络的一部分(例如区域网络(“LAN”)、广域网络(“WAN”)或内部网络,或网络组成的网络(network of networks),例如互联网。电子***#1000的任何或所有组件可以与本公开结合使用。
一些实施例包括电子组件,例如微处理器、存储设备和存储器(其将计算机程序指令存储在机器可读或计算机可读介质中(或者称为计算机可读存储介质、机器可读介质或机器可读存储介质))。这种计算机可读介质的一些示例包括RAM、ROM、只读光盘(CD-ROM)、可记录光盘(CD-R)、可重写光盘(CD-RW)、只读数字通用光盘(例如,DVD-ROM、双层DVD-ROM)、各种可记录/可重写DVD(例如DVD-RAM、DVD-RW、DVD+RW等)、闪存(例如SD卡、mini-SD、micro-SD卡等)卡,)、磁性和/或固态硬盘驱动器、只读和可记录Blu-光盘、超高密度光盘,任何其他光学或磁性介质以及软盘。计算机可读介质可以存储可由至少一个处理单元执行的计算机程序,并且包括用于执行各种操作的指令集合。计算机程序或计算机代码的示例包括诸如由编译器产生的机器代码,以及包括由计算机、电子组件或使用解译器的微处理器执行的更高级代码的文件。
虽然上述讨论主要涉及执行软件的微处理器或多核处理器,但许多上述特征和应用由一个或多个集成电路执行,例如专用集成电路(ASIC)或现场可程序化门阵列(FPGA)。在一些实施例中,这种集成电路执行存储在电路自身上的指令。另外,一些实施例执行存储在可程序化逻辑器件(PLD)、ROM或RAM器件中的软件。
如在本说明书和本申请的任何权利要求中所使用的术语“计算机”、“服务器”、“处理器”和“存储器”均指电子或其他技术设备。这些术语不包括人或人群。出于说明的目的,术语显示或显示装置指显示在电子设备上。如在本说明书和本申请的任何权利要求中所使用的,术语“计算机可读介质”、“计算机可读媒体”和“机器可读介质”完全限于以计算机可读形式存储信息的有形实体对象。这些术语不包括任何无线信号、有线下载信号和任何其他短暂信号(ephemeral signals)。
尽管已经参考许多具体细节描述了本公开,但是本领域具有通常知识者将认识到,在不脱离本公开的精神的情况下,本公开可以以其他具体形式实施。此外,许多图(包括图9)概念性地说明了过程。这些过程的具体操作可能不按照所示和描述的确切顺序执行。可以不在一个连续的一系列操作中执行特定操作,并且可以在不同的实施例中执行不同的特定操作。此外,该过程可以使用多个子过程来实现,或者作为更大的宏过程的一部分来实现。因此,本领域具有通常知识者将理解,本公开不受前述说明性细节的限制,而是由所附权利要求限定。
文中描述的主题有时示出了包含在其它不同部件内的或与其它不同部件连接的不同部件。应当理解:这样描绘的架构仅仅是示例性的,并且,实际上可以实施实现相同功能的许多其它架构。在概念意义上,实现相同功能的部件的任何布置是有效地“相关联的”,以使得实现期望的功能。因此,文中被组合以获得特定功能的任意两个部件可以被视为彼此“相关联的”,以实现期望的功能,而不管架构或中间部件如何。类似地,这样相关联的任意两个部件还可以被视为彼此“可操作地连接的”或“可操作地耦接的”,以实现期望的功能,并且,能够这样相关联的任意两个部件还可以被视为彼此“操作上可耦接的”,以实现期望的功能。“操作上可耦接的”的具体示例包含但不限于:实体地可联结和/或实体地相互、作用的部件、和/或无线地可相互作用和/或无线地相互作用的部件、和/或逻辑地相互作用的和/或逻辑地可相互作用的部件。
此外,关于文中基本上任何复数和/或单数术语的使用,只要对于上下文和/或应用是合适的,本领域技术人员可以将复数变换成单数,和/或将单数变换成复数。
本领域技术人员将会理解,通常,文中所使用的术语,特别是在所附权利要求(例如,所附权利要求中的主体)中所使用的术语通常意在作为“开放性”术语(例如,术语“包含”应当被解释为“包含但不限干”,术语“具有”应当被解释为“至少具有”,术语“包含”应当被解释为“包含但不限干”等)。本领域技术人员还将理解,如果意在所介绍的权利要求陈述对象的具体数目,则这样的意图将会明确地陈述在权利要求中,在缺乏这样的陈述的情况下,不存在这样的意图。例如,为了帮助理解,所附权利要求可以包含使用介绍性短语“至少一个”和“一个或更多个”来介绍权利要求陈述对象。然而,这样的短语的使用不应当被解释为:用不定冠词“一个(a或an)”的权利要求陈述对象的介绍将包含这样介绍的权利要求陈述对象的任何权利要求限制为只包含一个这样的陈述对象的发明,即使在同一权利要求包含介绍性短语“一个或更多个”或“至少一个”以及诸如“一个(a)”或“一个(an)”之类的不定冠词的情况下(例如,“一个(a)”和/或“一个(an)”应当通常被解释为意味着“至少一个”或“一个或更多个”)也如此;上述对以定冠词来介绍权利要求陈述对象的情况同样适用。另外,即使明确地陈述了介绍的权利要求陈述对象的具体数目,但本领域技术人员也会认识到:这样的陈述通常应当被解释为意味着至少所陈述的数目(例如,仅有“两个陈述对象”而没有其他修饰语的陈述通常意味着至少两个陈述对象,或两个或更多个陈述对象)。此外,在使用类似于“A、B和C中的至少一个等”的惯用语的情况下,通常这样的结构意在本领域技术人员所理解的该惯用语的含义(例如,“具有A、B和C中的至少一个的***”将包含但不限于具有单独的A、单独的B、单独的C、A和B—起、A和C一起、B和C一起和/或A、B和C一起的***等)。在使用类似于“A、B或C中的至少一个等”的惯用语的情况下,通常这样的结构意在本领域技术人员所理解的该惯用语的含义(例如,“具有A、B或C中的至少一个的***”将包含但不限于具有单独的A、单独的B、单独的C、A和B—起、A和C一起、B和C一起和/或A、B和C一起的***等)。本领域技术人员将进一歩理解,不管在说明书、权利要求中还是在附图中,表示两个或更多个可替换的术语的几乎任意析取词和/或短语应当理解成考虑包含术语中的一个、术语中的任一个或所有两个术语的可能性。例如,短语“A或B”应当被理解成包含“A”、“B”、或“A和B”的可能性。
尽管已经在文中使用不同的方法、设备以及***来描述和示出了一些示例性的技术,但是本领域技术人员应当理解的是:可以在不脱离所要求保护的主题的情况下进行各种其它修改以及进行等同物替换。此外,在不脱离文中描述的中心构思的情况下,可以进行许多修改以使特定的情况适应于所要求保护的主题的教导。因此,意在所要求保护的主题不限制于所公开的特定示例,而且这样的要求保护的主题还可以包含落在所附权利要求的范围内的所有实施及它们的等同物。

Claims (7)

1.一种用于编码或解码视频序列的方法,该方法包括:
识别第一运动向量和第二运动向量,用于编解码该视频序列中当前视频帧的当前像素块;
基于该当前像素块是否满足特定条件以及基于该当前像素块的大小与阈值之间的比较,确定是否划分该当前像素块以进行运动向量细化修正;
当该当前像素块被划分以进行运动向量细化修正时:
将该当前像素块划分为多个分区单元;
分别细化修正该第一运动向量和该第二运动向量用于该多个分区单元,
以最小化该第一运动向量和该第二运动向量的失真成本,其中该失真成本基于第一参考帧中的第一参考像素集和第二参考帧中的第二参考像素集之间的差计算,其中该第一参考帧由细化修正的该第一运动向量指示,该第二参考帧由细化修正的该第二运动向量指示,其中当仅考虑像素数据的奇数行或偶数行中的预定义像素数据子集计算该失真成本时,子采样该像素数据,使得基于该第一运动向量和该第二运动向量指向的子采样的像素数据计算该
失真成本;
其中,当计算多个失真成本用于该分区单元时,基于该多个失真导出最小失真成本,并基于该最小失真成本获取对应地细化修正的第一运动向量和第二运动向量;以及
通过使用对应地细化修正的第一运动向量和第二运动向量分别编码多
个分区单元;
当该当前像素块未被划分以进行运动向量细化修正时:
识别一对运动向量用于编码该当前像素块;以及
通过使用所识别的该对运动向量来编解码该当前像素块,而不细化修正该对运动向量;
其中该特定条件指示该当前像素块的线性维度大于第一阈值或该当前像素块的区域大于第二阈值。
2.根据权利要求1所述的方法,其特征在于,当该当前像素块包含在该当前帧的预定矩形区域中时,不对该当前像素块进行划分用于运动向量细化修正。
3.根据权利要求1所述的方法,其特征在于:
该第一运动向量指示第一参考帧中的第一参考像素集合,该第二运动向量指示第二参考帧中的第二参考像素集合,以及
基于该当前像素块的一组相邻像素、该第一参考像素集合的一组相邻像素和该第二参考像素集合的一组相邻像素来计算该失真成本。
4.根据权利要求1所述的方法,其特征在于,该细化修正的第一运动向量和该细化修正的第二运动向量基于相对于该参考帧和该第二参考帧的中心点的相对搜索点。
5.根据权利要求1所述的方法,其特征在于,还包括:
当执行运动向量细化修正时:
细化修正该第一运动向量和该第二运动向量以最小化失真成本;以及
通过使用细化修正的第一运动向量和第二运动向量对该当前像素块进
行编解码;以及
当不执行运动向量细化修正时:
通过使用所识别的该第一运动向量和该第二运动向量来编解码该当前像素块。
6.根据权利要求1所述的方法,其特征在于,还包括:
计算由该第一运动向量和该第二运动向量所指向的中心点对应的初始成本,使得该第一运动向量和该第二运动向量各有其初始成本;
通过位于该中心点的相对侧的预测来计算对应于加号形状中的像素位置的额外的成本;
基于先前计算的成本的梯度来选择最终点;以及
输出对应于最小成本的该第一和该第二细化的运动向量。
7.一种电子装置,包含:
电路,配置为:
识别第一运动向量和第二运动向量,用于编解码视频序列中当前视频帧的当前像素块;
基于该当前像素块是否满足特定条件以及基于该当前像素块的大小与阈值之间的比较,确定是否划分该当前像素块以进行运动向量细化修正;
当该当前像素块被划分以进行运动向量细化修正时:
将该当前像素块划分为多个分区单元;
分别细化修正该第一运动向量和该第二运动向量用于该多个分区单元,
以最小化该第一运动向量和该第二运动向量的失真成本,
该电路还被配置为,基于第一参考帧中的第一参考像素集和第二参考帧中的第二参考像素集之间的差计算该失真成本,其中该第一参考帧由细化修正的该第一运动向量指示,该第二参考帧由细化修正的该第二运动向量指示,其中当仅考虑像素数据的奇数行或偶数行中的预定义像素数据子集计算该
失真成本时,子采样该像素数据,使得基于该第一运动向量和该第二运动向量指向的子采样的像素数据计算该失真成本;
其中,当计算多个失真成本用于该分区单元时,基于该多个失真导出最小失真成本,并基于该最小失真成本获取对应地细化修正的第一运动向量和第二运动向量;以及
通过使用对应地细化修正的第一运动向量和第二运动向量分别编码多
个分区单元;
当该当前像素块未被划分以进行运动向量细化修正时,该电路还被配置为:
识别一对运动向量用于编码该当前像素块;以及
通过使用所识别的该对运动向量来编解码该当前像素块,而不细化修正该对运动向量;
其中该特定条件指示该当前像素块的线性维度大于第一阈值或该当前像素块的区域大于第二阈值。
CN201980007634.0A 2018-01-26 2019-01-25 用于编码或解码视频序列的方法及电子装置 Active CN111886866B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311672108.0A CN117750032A (zh) 2018-01-26 2019-01-25 用于编码或解码视频序列的方法及电子装置

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201862622234P 2018-01-26 2018-01-26
US62/622,234 2018-01-26
US201862723014P 2018-08-27 2018-08-27
US62/723,014 2018-08-27
US201862740470P 2018-10-03 2018-10-03
US62/740,470 2018-10-03
US16/248,452 US11310526B2 (en) 2018-01-26 2019-01-15 Hardware friendly constrained motion vector refinement
US16/248,452 2019-01-15
PCT/CN2019/073179 WO2019144930A1 (en) 2018-01-26 2019-01-25 Hardware friendly constrained motion vector refinement

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311672108.0A Division CN117750032A (zh) 2018-01-26 2019-01-25 用于编码或解码视频序列的方法及电子装置

Publications (2)

Publication Number Publication Date
CN111886866A CN111886866A (zh) 2020-11-03
CN111886866B true CN111886866B (zh) 2023-12-26

Family

ID=67392580

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201980007634.0A Active CN111886866B (zh) 2018-01-26 2019-01-25 用于编码或解码视频序列的方法及电子装置
CN202311672108.0A Pending CN117750032A (zh) 2018-01-26 2019-01-25 用于编码或解码视频序列的方法及电子装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202311672108.0A Pending CN117750032A (zh) 2018-01-26 2019-01-25 用于编码或解码视频序列的方法及电子装置

Country Status (7)

Country Link
US (1) US11310526B2 (zh)
EP (1) EP3744098A4 (zh)
KR (1) KR102448218B1 (zh)
CN (2) CN111886866B (zh)
BR (1) BR112020015246A8 (zh)
TW (1) TWI690195B (zh)
WO (1) WO2019144930A1 (zh)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019190199A1 (ko) * 2018-03-27 2019-10-03 주식회사 케이티 비디오 신호 처리 방법 및 장치
US11516490B2 (en) * 2018-07-16 2022-11-29 Lg Electronics Inc. Method and device for inter predicting on basis of DMVR
KR102627844B1 (ko) * 2018-09-19 2024-01-23 후아웨이 테크놀러지 컴퍼니 리미티드 이중선형 보간 기반 디코더-측 움직임 벡터 정밀화에서 패치 유사성에 기반하여 정밀화를 건너뛰기 위한 방법
WO2020084474A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Gradient computation in bi-directional optical flow
CN112913240A (zh) * 2018-10-22 2021-06-04 北京字节跳动网络技术有限公司 解码器侧运动矢量推导和其他编解码工具之间的并置
WO2020084461A1 (en) * 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Restrictions on decoder side motion vector derivation based on coding information
WO2020084476A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Sub-block based prediction
WO2020098647A1 (en) 2018-11-12 2020-05-22 Beijing Bytedance Network Technology Co., Ltd. Bandwidth control methods for affine prediction
CN113056914B (zh) 2018-11-20 2024-03-01 北京字节跳动网络技术有限公司 基于部分位置的差计算
CN113170097B (zh) 2018-11-20 2024-04-09 北京字节跳动网络技术有限公司 视频编解码模式的编解码和解码
US11146810B2 (en) 2018-11-27 2021-10-12 Qualcomm Incorporated Decoder-side motion vector refinement
JP7005480B2 (ja) * 2018-12-27 2022-01-21 Kddi株式会社 画像復号装置、画像符号化装置、プログラム及び画像処理システム
CN111385575A (zh) * 2018-12-29 2020-07-07 华为技术有限公司 帧间预测方法、装置以及相应的编码器和解码器
CN113613019B (zh) * 2019-01-06 2022-06-07 北京达佳互联信息技术有限公司 视频解码方法、计算设备和介质
JP2022521554A (ja) 2019-03-06 2022-04-08 北京字節跳動網絡技術有限公司 変換された片予測候補の利用
WO2020185506A1 (en) * 2019-03-08 2020-09-17 Beijing Dajia Internet Information Technology Co., Ltd. Bi-directional optical flow and decoder-side motion vector refinement for video coding
WO2020184847A1 (ko) * 2019-03-12 2020-09-17 엘지전자 주식회사 Dmvr 및 bdof 기반의 인터 예측 방법 및 장치
JP7307192B2 (ja) 2019-04-02 2023-07-11 北京字節跳動網絡技術有限公司 デコーダ側の動きベクトルの導出
JP6835337B2 (ja) * 2019-06-20 2021-02-24 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
US11223840B2 (en) * 2019-08-19 2022-01-11 Tencent America LLC Method and apparatus for video coding
US11647215B2 (en) 2019-09-12 2023-05-09 Alibaba Group Holding Limited Method and apparatus for signaling video coding information
US11641475B2 (en) 2019-09-12 2023-05-02 Alibaba Group Holding Limited Method and apparatus for encoding or decoding video
CN110719489B (zh) * 2019-09-18 2022-02-18 浙江大华技术股份有限公司 运动矢量修正、预测、编码方法、编码器及存储装置
CN110740317B (zh) * 2019-09-18 2021-10-15 浙江大华技术股份有限公司 子块运动预测、编码方法、编码器及存储装置
CN110740322A (zh) * 2019-10-23 2020-01-31 李思恒 视频编码方法及装置、存储介质、视频编码设备
US11683517B2 (en) * 2020-11-23 2023-06-20 Qualcomm Incorporated Block-adaptive search range and cost factors for decoder-side motion vector (MV) derivation techniques
KR20230123946A (ko) * 2020-12-22 2023-08-24 퀄컴 인코포레이티드 다중 패스 디코더측 모션 벡터 정제
US20220394309A1 (en) * 2021-05-20 2022-12-08 Lemon Inc. On Padding Methods For Neural Network-Based In-Loop Filter
WO2023143173A1 (en) * 2022-01-28 2023-08-03 Mediatek Inc. Multi-pass decoder-side motion vector refinement
WO2023193769A1 (en) * 2022-04-06 2023-10-12 Mediatek Inc. Implicit multi-pass decoder-side motion vector refinement
WO2024072162A1 (ko) * 2022-09-28 2024-04-04 엘지전자 주식회사 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체
WO2024080747A1 (ko) * 2022-10-11 2024-04-18 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102131091A (zh) * 2010-01-15 2011-07-20 联发科技股份有限公司 解码端运动向量导出方法
CN102685504A (zh) * 2011-03-10 2012-09-19 华为技术有限公司 视频图像的编解码方法、编码装置、解码装置及其***
CN107113424A (zh) * 2014-11-18 2017-08-29 联发科技股份有限公司 基于来自单向预测的运动矢量和合并候选的双向预测视频编码方法
WO2017164645A2 (ko) * 2016-03-24 2017-09-28 인텔렉추얼디스커버리 주식회사 비디오 신호 부호화/복호화 방법 및 장치
WO2018002024A1 (en) * 2016-06-30 2018-01-04 Thomson Licensing Method and apparatus for video coding with automatic motion information refinement

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7145950B2 (en) * 2003-07-14 2006-12-05 Primax Electronics Ltd. Method of motion vector determination in digital video compression
US8218636B2 (en) 2006-11-21 2012-07-10 Vixs Systems, Inc. Motion refinement engine with a plurality of cost calculation methods for use in video encoding and methods for use therewith
US20090167775A1 (en) * 2007-12-30 2009-07-02 Ning Lu Motion estimation compatible with multiple standards
JP2011515060A (ja) * 2008-03-09 2011-05-12 エルジー エレクトロニクス インコーポレイティド ビデオ信号のエンコーディングまたはデコーディング方法及び装置
US9544592B2 (en) * 2012-02-10 2017-01-10 Texas Instruments Incorporated Methods and systems for encoding pictures associated with video data
US10958927B2 (en) 2015-03-27 2021-03-23 Qualcomm Incorporated Motion information derivation mode determination in video coding
US10602180B2 (en) * 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
US10904565B2 (en) * 2017-06-23 2021-01-26 Qualcomm Incorporated Memory-bandwidth-efficient design for bi-directional optical flow (BIO)

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102131091A (zh) * 2010-01-15 2011-07-20 联发科技股份有限公司 解码端运动向量导出方法
CN102685504A (zh) * 2011-03-10 2012-09-19 华为技术有限公司 视频图像的编解码方法、编码装置、解码装置及其***
CN107113424A (zh) * 2014-11-18 2017-08-29 联发科技股份有限公司 基于来自单向预测的运动矢量和合并候选的双向预测视频编码方法
WO2017164645A2 (ko) * 2016-03-24 2017-09-28 인텔렉추얼디스커버리 주식회사 비디오 신호 부호화/복호화 방법 및 장치
WO2018002024A1 (en) * 2016-06-30 2018-01-04 Thomson Licensing Method and apparatus for video coding with automatic motion information refinement

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于矢量加权中值滤波的快速分层运动估计算法;陈涛,王维东,谢磊,张明,王匡;浙江大学学报(工学版)(第07期);全文 *

Also Published As

Publication number Publication date
WO2019144930A1 (en) 2019-08-01
BR112020015246A8 (pt) 2023-02-07
CN117750032A (zh) 2024-03-22
TWI690195B (zh) 2020-04-01
KR20200113259A (ko) 2020-10-06
KR102448218B1 (ko) 2022-09-28
CN111886866A (zh) 2020-11-03
US11310526B2 (en) 2022-04-19
US20190238883A1 (en) 2019-08-01
EP3744098A1 (en) 2020-12-02
EP3744098A4 (en) 2021-10-20
TW201935928A (zh) 2019-09-01
BR112020015246A2 (pt) 2021-01-26

Similar Documents

Publication Publication Date Title
CN111886866B (zh) 用于编码或解码视频序列的方法及电子装置
CN110169061B (zh) 编解码电子装置与方法
CN112400319B (zh) 一种视频编码/解码方法及装置
CN110313180B (zh) 用于编码和解码运动信息的方法和装置
CN113455003B (zh) 视频编解码方法及电子设备
CN112042189B (zh) 照度补偿方法及相应的电子装置
US11924413B2 (en) Intra prediction for multi-hypothesis
CN111034194A (zh) 画面内合并预测
CN110326296B (zh) 用于对运动信息进行编码和解码的方法和装置
CN112840645A (zh) 视频编码***中组合多个预测子用于块预测的方法及装置
WO2019161798A1 (en) Intelligent mode assignment in video coding
WO2024007789A1 (en) Prediction generation with out-of-boundary check in video coding
WO2024027700A1 (en) Joint indexing of geometric partitioning mode in video coding
WO2024017224A1 (en) Affine candidate refinement
WO2023202569A1 (en) Extended template matching for video coding
WO2023131298A1 (en) Boundary matching for video coding
EP4352960A1 (en) Geometric partition mode with motion vector refinement
CN117597922A (zh) 用于利用运动矢量细化的几何分区模式的方法和设备
CN117643054A (zh) 具有运动矢量细化的几何分区模式

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
TA01 Transfer of patent application right

Effective date of registration: 20220426

Address after: Hsinchu County, Taiwan, China

Applicant after: MEDIATEK Inc.

Address before: 1 Duxing 1st Road, Hsinchu Science Park, Hsinchu, Taiwan, China

Applicant before: MEDIATEK Inc.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant