CN112806012A - 用于帧间预测译码的基于历史的运动向量预测 - Google Patents

用于帧间预测译码的基于历史的运动向量预测 Download PDF

Info

Publication number
CN112806012A
CN112806012A CN201980064147.8A CN201980064147A CN112806012A CN 112806012 A CN112806012 A CN 112806012A CN 201980064147 A CN201980064147 A CN 201980064147A CN 112806012 A CN112806012 A CN 112806012A
Authority
CN
China
Prior art keywords
motion vector
block
candidate
coding
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980064147.8A
Other languages
English (en)
Inventor
C-H.孔
C-C.陈
W-J.钱
M.卡尔切维茨
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN112806012A publication Critical patent/CN112806012A/zh
Pending legal-status Critical Current

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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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/507Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction using conditional replenishment
    • 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

Abstract

一种对视频数据进行译码(例如,编码或解码)的方法,该方法包括使用帧间预测译码模式对视频数据的第一块进行译码,其中使用帧间预测译码模式对第一块进行译码包括:构造用于使用帧间预测译码模式对第一块进行译码的候选运动向量的列表,从候选运动向量的列表之中标识至少一个运动向量预测器,以及基于至少一个运动向量预测器来生成经重构运动向量。译码的方法还包括将经重构MV添加到基于历史的运动向量预测(HMVP)候选列表并且将与候选运动向量的列表的构造相关联的至少第二运动向量添加到HMVP候选列表。

Description

用于帧间预测译码的基于历史的运动向量预测
依据34U.S.C.§119对优先权的要求
本专利申请要求于2019年10月2日提交的编号为16/591,417的非临时申请以及于2018年10月5日提交的编号为62/742,115的美国临时申请的优先权,其全部内容通过引用并入本文。
技术领域
本公开涉及视频编码和/或视频解码。
背景技术
数字视频能力可以被并入广泛的设备中,包括数字电视、数字直接广播系统、无线广播系统、个人数字助理(PDA)、膝上型或台式计算机、平板计算机、电子书阅读器、数码相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电电话、所谓的“智能电话”、视频电话会议设备、视频流式传输(streaming)设备等。数字视频设备实现视频译码(coding)技术,诸如在以下各项所定义的标准中描述的那些技术:MPEG-2;MPEG-4;ITU-T H.263;ITU-T H.264/MPEG-4第10部分,高级视频译码(AVC);高效视频译码(HEVC)标准;ITU-T H.265/高效视频译码(HEVC)以及此类标准的扩展。通过实现此类视频译码技术,视频设备可以更高效地发送、接收、编码、解码和/或存储数字视频信息。
视频译码技术包括空间(图片内)预测和/或时间(图片间)预测,以减少或移除视频序列中固有的冗余。对于基于块的视频译码,视频条带(slice)(例如,视频图片或视频图片的部分)可以被分割为视频块,这些视频块也可以被称为译码树单元(CTU)、译码单元(CU)和/或译码节点。图片的帧内译码(I)条带中的视频块通过使用相对于同一图片中相邻块中的参考样本的空间预测来编码。图片的经帧间译码的(P或B)条带中的视频块可以使用相对于同一图片中相邻块中的参考样本的空间预测,或相对于其他参考图片中的参考样本的时间预测。图片可以被称为帧,并且参考图片可以被称为参考帧。
发明内容
通常,本公开描述了用于视频译码中的帧间预测和运动向量重构的技术。更具体地,本公开描述了用于在特定帧间预测译码模式下根据基于历史的运动向量预测(HMVP)来构造用于(一个或多个)帧间预测运动向量的(一个或多个)候选列表的技术,该技术也被称为“帧间预测运动向量候选列表构造”。本公开的技术可以与诸如高效视频译码(HEVC)之类的现有视频编解码器中的任一者一起使用,或者作为诸如H.266/多功能视频译码(VVC)之类的任何未来视频译码标准中的高效译码工具。
在一个示例中,一种对视频数据进行译码的方法包括使用帧间预测译码模式对视频数据的第一块进行译码,其中使用帧间预测译码模式对第一块进行译码包括构造用于使用帧间预测译码模式对第一块进行译码的候选运动向量的列表,从候选运动向量的列表之中标识至少一个运动向量预测器(motion vector predictor),以及基于至少一个运动向量预测器来生成经重构运动向量。该方法还包括将经重构运动向量添加到基于历史的运动向量预测(HMVP)候选列表并且将与候选运动向量的列表的构造相关联的第二运动向量添加到HMVP候选列表。
在另一示例中,一种用于对视频数据进行编码或解码的译码设备包括被配置为存储视频数据的图片的缓冲存储器,以及以电路实现的至少一个处理器,这至少一个处理器与缓冲存储器通信并且被配置为构造用于使用帧间预测译码模式对第一块进行译码的候选运动向量的列表,从候选运动向量的列表之中标识至少一个运动向量预测器,基于至少一个运动向量预测器来生成经重构运动向量,将经重构运动向量添加到基于历史的运动向量预测(HMVP)候选列表,并且将与候选运动向量的列表的构造相关联的第二运动向量添加到HMVP候选列表。
在又一示例中,一种被配置为对视频数据进行编码或解码的装置包括用于构造用于使用帧间预测译码模式对第一块进行译码的候选运动向量的列表的部件;用于从候选运动向量的列表之中标识至少一个运动向量预测器的部件,用于基于至少一个运动向量预测器来生成经重构运动向量的部件,用于将经重构运动向量添加到基于历史的运动向量预测(HMVP)候选列表的部件,以及用于将与候选运动向量的列表的构造相关联的第二运动向量添加到HMVP候选列表的部件。
在又一实例中,一种计算机可读存储介质存储指令,该指令在被执行时使得被配置为对视频数据进行译码的至少一个处理器构造用于使用帧间预测译码模式对第一块进行译码的候选运动向量的列表,从候选运动向量的列表之中标识至少一个运动向量预测器,基于至少一个运动向量预测器来生成经重构运动向量,将经重构运动向量添加到基于历史的运动向量预测(HMVP)候选列表,并且将与候选运动向量的列表的构造相关联的第二运动向量添加到HMVP候选列表。
在下文的附图和描述中阐述了一个或多个示例的细节。其他的特征、目标和优点将根据描述和附图以及根据权利要求而变得显而易见。
附图说明
图1是图示了可以执行本公开的技术的示例视频编码和解码系统的框图。
图2A和2B是图示了示例四叉树二叉树(QTBT)结构以及对应译码树单元(CTU)的概念图。
图3是图示了可以执行本公开的技术的示例视频编码器的框图。
图4是图示了可以执行本公开的技术的示例视频解码器的框图。
图5A是示出用于合并模式的空间相邻候选的概念图。
图5B是示出用于高级运动向量预测(AMVP)模式的空间相邻候选的概念图。
图6A是示出时间运动向量预测器候选的概念图。
图6B是示出运动向量缩放的概念图。
图7是示出使用基于历史的运动向量预测器(HMVP)的解码流程图的流程图。
图8A是示出针对用于HMVP的先进先出(FIFO)缓冲器的表格更新过程的概念图。
图8B是示出针对用于HMVP的约束FIFO缓冲器的表格更新过程的概念图。
图9图示了用于用作MV候选的空间相邻运动向量(MV)与时间相邻MV之间的示例性选择优先级。
图10是图示了根据本公开的(一个或多个)机制和/或(一个或多个)技术来操作的视频编码器的示例操作的流程图。
图11是图示了根据本公开的(一个或多个)机制和/或(一个或多个)技术来操作的视频解码器的示例操作的流程图。
具体实施方式
通常,本公开描述用于视频译码中的帧间预测和运动向量重构的技术。更具体地,本公开描述用于基于诸如例如高级运动向量预测(AMVP)、合并模式、仿射帧间模式和/或仿射合并模式之类的各种帧间预测模式下的基于历史的运动向量预测(HMVP)来构造用于(一个或多个)帧间预测运动向量的(一个或多个)候选列表的技术,该技术也被称为“帧间预测运动向量候选列表构造”。本公开的技术可以与诸如高效视频译码(HEVC)之类的现有视频编解码器中的任一者一起使用,或者作为诸如H.266/多功能视频译码(VVC)或MPEG-5基本视频译码(EVC)之类的任何未来视频译码标准以及未来专有视频译码实现、技术或方案中的高效译码工具。
本公开中的各种技术可以参考视频译码器来描述,视频译码器旨在作为指代视频编码器或视频解码器的通用术语。除非另外明确说明,否则不应假定相对于视频编码器或视频解码器描述的技术不能由视频编码器或视频解码器中的另一者执行。例如,在许多实例中,视频解码器执行与视频编码器相同或有时相反的译码技术,以便解码经编码的视频数据。在许多实例中,视频编码器还可以包括视频解码回路,并且因此视频编码器执行视频解码作为对视频数据进行编码的部分。因此,除非另外说明,否则本公开中相对于视频解码器而描述的技术也可由视频编码器执行,并且反之亦然。
本公开还可以使用诸如当前层、当前块、当前图片、当前条带之类的术语。在本公开的上下文中,术语当前旨在标识当前正被译码(例如,编码或解码)的层、块、图片、条带等,例如与先前经译码的层、块、图片和条带或者待译码的块、图片和条带形成对照。
图1是图示了可以执行本公开的技术的示例视频编码和解码系统100的框图。本公开的技术通常涉及对视频数据进行译码(编码和/或解码)。通常来说,视频数据包括用于处理视频的任何数据。因此,数据可以包括原始未译码视频、经编码视频、经解码(例如,经重构)视频、以及视频元数据,诸如信令通知(signaling)数据。
在此示例中,图1图示了包括提供经编码视频数据以供目标设备116解码和显示的源设备102的系统100。具体地,源设备102经由计算机可读介质110向目标设备116提供视频数据。源设备102和目标设备116可以包括广泛的设备中的任何一种,包括台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、诸如智能电话之类的电话手持设备、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备等。在某些情况下,源设备102和目标设备116可以被配备用于无线通信,并且因此可以被称为无线通信设备。
在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200、以及输出接口108。目标设备116包括输入接口122、视频解码器300、存储器120和显示设备118。根据本公开,源设备102的视频编码器200和目标设备116的视频解码器300可以被配置为应用用于针对各种帧间预测译码模式的基于历史的运动向量预测的技术。因此,源设备102表示视频编码设备的示例,而目标设备116表示视频解码设备的示例。在其他示例中,源设备和目标设备可以包括其他组件或布置。例如,源设备102可以从诸如外部相机之类的外部视频源接收视频数据。同样,目标设备116可以与外部显示设备接口连接(interface),而不是包括集成的显示设备。
如图1所示的系统100仅仅是一个示例。通常来说,任何数字视频编码和/或解码设备可以执行用于针对诸如AMVP之类的帧间预测的基于历史的运动向量预测的技术。源设备102和目标设备116仅仅是此类译码设备的示例,其中源设备102生成经译码视频数据以用于传输至目标设备116。本公开将“译码”设备指代为执行数据的译码(编码和/或解码)的设备。因此,视频编码器200和视频解码器300表示译码设备的示例,具体地,分别表示视频编码器和视频解码器的示例。在某些示例中,设备102、116可以以基本对称的方式操作,使得设备102、116中的每一者包括视频编码和解码组件。因此,系统100可以支持视频设备102、116之间的单向或双向视频传输,例如,用于视频流式传输、视频回放、视频广播或视频电话。
通常来说,视频源104表示视频数据(即,原始、未译码的视频数据)的源且将视频数据的连续系列的图片(也被称为“帧”)提供至视频编码器200,视频编码器200对针对这些图片的数据进行编码。源设备102的视频源104可以包括诸如视频相机之类的视频捕捉设备、包含先前捕捉的原始视频的视频存档、和/或用于从视频内容提供者接收视频的视频馈送接口。作为进一步的替代,视频源104可以生成基于计算机图形的数据作为源视频,或者实时视频、存档视频和计算机生成视频的组合。在每一情况下,视频编码器200对所捕捉的、预捕捉的或计算机生成的视频数据进行编码。视频编码器200可以将图片从所接收次序(有时被称为“显示次序”)重新布置成用于译码的译码次序。视频编码器200可以生成包括经编码视频数据的比特流。源设备102随后可以经由输出接口108将经编码视频数据输出到计算机可读介质110上,以便通过例如目标设备116的输入接口122接收和/或检索。
源设备102的存储器106和目标设备116的存储器120表示通用存储器。在某些示例中,存储器106、120可以存储原始视频数据,例如,来自视频源104的原始视频以及来自视频解码器300的原始、经解码视频数据。附加地或可替代地,存储器106、120可以分别存储能由例如视频编码器200和视频解码器300执行的软件指令。尽管在此示例中与视频编码器200和视频解码器300分开地示出,但应理解,视频编码器200和视频解码器300还可以分别包括用于功能上类似或等同目的的位于视频编码器200和视频解码器300内部的存储器。此外,存储器106、120可以存储例如从视频编码器200输出且被输入到视频解码器300的经编码视频数据。在某些示例中,存储器106、120的部分可以被分配为一个或多个静态图像和/或视频缓冲器,例如以存储原始、经解码和/或经编码的视频数据。
计算机可读介质110可以表示能够将经编码视频数据从源设备102传送至目标设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示使源设备102能够例如经由射频网络或基于计算机的网络实时地将经编码视频数据直接发送到目标设备116的通信介质。根据诸如无线通信协议之类的通信标准,输出接口108可以调制包括经编码视频数据的传输信号,而输入接口122可调制所接收的传输信号。通信介质可以包括任何无线或有线通信介质,诸如射频(RF)频谱或一条或多条物理传输线。通信介质可以形成诸如以下各项的基于分组的网络的部分:局域网、广域网、或诸如因特网之类的全球网络。通信介质可以包括路由器、交换机、基站或者对促进从源设备102到目标设备116的通信可能有用的任何其它设备。
在某些示例中,源设备102可以将经编码数据从输出接口108输出至存储设备116。类似地,目标设备116可以经由输入接口122从存储设备116访问经编码数据。存储设备116可以包括各种分布式或本地访问的数据存储介质中的任何一种,诸如硬驱动器、蓝光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器、或者用于存储经编码视频数据的任何其它合适的数字存储介质。
在某些示例中,源设备102可以将经编码视频数据输出至文件服务器114或者可以存储由源设备102生成的经编码视频的另一中间存储设备。目标设备116可以经由流式传输或下载来从文件服务器114访问所存储视频数据。文件服务器114可以是能够存储经编码视频数据并将此经编码视频数据发送至目标设备116的任何类型的服务器设备。文件服务器114可以表示(例如,用于网站的)web服务器、文件传输协议(FTP)服务器、内容分发网络设备或网络附属存储(NAS)设备。目标设备116可以通过包括因特网连接的任何标准数据连接从文件服务器114访问经编码视频数据。这可以包括适合用于访问存储在文件服务器114上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合。文件服务器114和输入接口122可以被配置为根据流式传输传输协议、下载传输协议或其组合来操作。
输出接口108和输入接口122可以表示无线发送器/接收器、调制解调器、有线连网组件(例如,以太网卡)、根据各种IEEE 802.11标准中的任一者操作的无线通信组件、或其它物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据诸如4G、4G-LTE(长期演进)、高级LTE、5G之类的蜂窝通信标准来传递诸如经编码视频数据之类的数据。在输出接口108包括无线发送器的某些示例中,输出接口108和输入接口122可以被配置为根据诸如IEEE 802.11规范、IEEE802.15规范(例如,ZigBeeTM)、蓝牙TM标准之类的其他无线标准来传递诸如经编码视频数据之类的数据。在某些示例中,源设备102和/或目标设备116可以包括相应的片上系统(SoC)设备。例如,源设备102可以包括用于执行归因于视频编码器200和/或输出接口108的功能性的SoC设备,而目标设备116可以包括用于执行归因于视频解码器300和/或输入接口122的功能性的SoC设备。
本公开的技术可以被应用于支持诸如以下各项的各种多媒体应用中的任一者的视频译码:空中电视广播、电缆电视传输、卫星电视传输、诸如基于HTTP的动态自适应流式传输(DASH)之类的因特网流式传输视频传输、被编码到数据存储介质上的数字视频、对存储在数据存储介质上的数字视频的解码、或其它应用。
目标设备116的输入接口122从计算机可读介质110(例如,存储设备112、文件服务器114等)接收经编码视频比特流。计算机可读介质110中的经编码视频比特流可以包括由视频编码器200定义、还由视频解码器300使用的信令通知信息,诸如具有描述视频块或其它经译码单元(例如,条带、图片、图片组、序列等)的特性和/或处理的值的语法元素。显示设备118向用户显示经解码视频数据的经解码图片。显示设备118可以表示各种显示设备中的任何一种,诸如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示设备。
尽管图1中未示出,但在某些示例中,视频编码器200和视频解码器300可以各自与音频编码器和/或音频解码器集成,并且可以包括适当的MUX-DEMUX单元或者其它硬件和/或软件,以处理公共数据流中包括音频和视频两者的多路复用流。如果适用,MUX-DEMUX单元可以符合ITU H.223多路复用器协议或其它协议,诸如用户数据报协议(UDP)。
视频编码器200和视频解码器300各自可以被实现为被配置为用于编码器和/或解码器操作/功能性的各种合适的处理电路中的任一种。此类编码器和/或解码器配置的处理电路的示例包括但不限于一个或多个微处理器、(一个或多个)数字信号处理器(DSP)、(一个或多个)专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件和/或其任何组合。当该技术部分地以软件来实现时,设备可以将用于该软件的指令存储在合适的非暂态计算机可读介质中,并且使用一个或多个处理器(例如,处理电路)在硬件中执行这些指令以执行本公开的技术。视频编码器200和视频解码器300中的每一个可以被包括在一个或多个编码器或解码器中,这一个或多个编码器或解码器中的任一个可以被集成为相应设备中的组合编码器/解码器(CODEC)的部分。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器和/或无线通信设备,诸如蜂窝电话。
视频译码标准包括ITU-T H.261、ISO/IEC MPEG-1视觉、ITU-T H.262或ISO/IECMPEG-2视觉、ITU-T H.263、ISO/IEC MPEG-4视觉和ITU-T H.264(也被称为ISO/IEC MPEG-4AVC),包括其可缩放视频译码(SVC)和多视图视频译码(MVC)扩展。
此外,视频译码标准,即高效视频译码(HEVC)或ITU-T H.265(G.J.Sullivan,J.-R.Ohm,W.-J.Han,T.Wiegand“Overview of the High Efficiency Video Coding(HEVC)Standard(高效视频译码(HEVC)标准综述)”关于用于视频技术的电路和系统的IEEE学报,vol.22,no.12.pp.1649-1668,2012年12月),包括其范围扩展、多视图扩展(MV-HEVC)和可缩放扩展(SHVC),已经由ITU-T视频译码专家组(VCEG)和ISO/IEC运动图片专家组(MPEG)的视频译码联合协作团队(JCT-VC)以及3D视频译码扩展开发联合协作团队(JCT-3V)开发。
HEVC规范草案(并且在下文被称为HEVC WD)可以从http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zip获得。HEVC的国际标准最终草案(FDIS)的最新版本可以在http://phenix.it-sudparis.eu/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zip中找到。
ITU-T VCEG(Q6/16)和ISO/IEC MPEG(JTC 1/SC 29/WG 11)正研究对未来视频译码技术的标准化的潜在需求,未来视频译码技术具有显著超过当前HEVC标准(包括其用于屏幕内容译码和高动态范围译码的当前扩展和近期扩展)的压缩能力。各组在称为联合视频探索团队(JVET)的联合协作活动中一起研究这个探索活动,以评估其在此领域的专家提出的压缩技术设计。JVET于2015年10月19-21日期间首次会面。可以从https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/tags/HM-16.6-JEM-7.2/下载参考软件的最新版本,即,联合探索模型7(JEM 7)。联合探索测试模型7(JEM-7)的算法描述被描述于J.Chen,E.Alshina,G.J.Sullivan,J.-R.Ohm,J.Boyce的“Algorithm Description ofJoint Exploration Test Model 7(联合探索测试模型7的算法描述)”,JVET-G1001,2017年7月。
被称为H.266/多功能视频译码(VVC)标准的新视频译码标准的早期草案,可在由Benjamin Bross撰写的文档JVET-J1001“Versatile Video Coding(Draft 1)(多功能视频译码(草案1))中获得,并且其算法描述可在由Jianle Chen和Elena Alshina撰写的文档JVET-J1002“Algorithm description for Versatile Video Coding and Test Model 1(VTM 1)(用于多功能视频译码和测试模型1(VTM 1)的算法描述)”中获得。然而,本公开的技术不限于任何特定译码标准。
视频编码器200和视频解码器300可以根据视频译码标准来操作,视频译码标准诸如ITU-T H.265,也被称为高效视频译码(HEVC),或者其扩展,诸如多视图和/或可缩放视频译码扩展。可替代地,视频编码器200和视频解码器300可以根据诸如联合探索测试模型(JEM)和/或VVC之类的其他私有或工业实现和/或标准来操作。然而,本公开的技术不限于任何特定译码标准、实现和/或方案。
通常来说,视频编码器200和视频解码器300可以执行图片的基于块的译码。术语“块”通常是指包括将被处理(例如,编码、解码或在编码和/或解码过程中以其它方式使用)的数据的结构。例如,块可以包括亮度和/或色度数据的样本的二维矩阵。通常来说,视频编码器200和视频解码器300可以对以YUV(例如,Y、Cb、Cr)格式表示的视频数据进行译码。即,视频编码器200和视频解码器300可以对亮度和色度分量进行译码,而不是对针对图片的样本的红、绿和蓝(RGB)数据进行译码,其中色度分量可以包括红色调和蓝色调色度分量两者。在某些示例中,视频编码器200在编码之前将所接收的RGB格式化数据转换为YUV表示,而视频解码器300将YUV表示转换为RGB格式。可替代地,预处理单元和后处理单元(未示出)可以执行这些转换。
本公开通常可以涉及对图片的译码(例如,编码和/或解码),以包括对图片的数据进行编码和/或解码的过程。类似地,本公开可以涉及对图片的块的译码,以包括对针对块的数据进行编码或解码的过程,例如,预测和/或残差(residual)译码。经编码视频比特流通常包括针对语法元素的一系列值,这些语法元素表示译码决策(例如,译码模式)以及图片到块的分割。因此,对图片或块进行译码的引用通常应被理解为对针对形成图片或块的语法元素的值进行译码。
HEVC定义了各种块,包括译码单元(CU)、预测单元(PU)以及变换单元(TU)。根据HEVC,视频译码器(诸如视频编码器200)根据四叉树结构将译码树单元(CTU)分割成CU。即,视频译码器将CTU和CU分割成四个相等的非重叠方块,且四叉树的每个节点具有零个或四个子节点。没有子节点的节点可以被称为“叶节点”,并且此类叶节点的CU可以包括一个或多个PU和/或一个或多个TU。视频译码器可以进一步分割PU和TU。例如,在HEVC中,残差四叉树(RQT)表示对TU的分割。在HEVC中,PU表示帧间预测数据,而TU表示残差数据。经帧内预测的CU包括帧内预测信息,诸如帧内模式指示。
作为另一示例,视频编码器200和视频解码器300可以被配置为根据JEM和/或VVC的示例操作。根据JEM/VVC的示例,视频译码器(诸如视频编码器200)将图片分割成多个译码树单元(CTU)。视频编码器200可以根据诸如四叉树-二叉树(QTBT)结构之类的树结构来分割CTU。JEM/VVC的示例的QTBT结构移除了多种分割类型的概念,诸如HEVC的CU、PU和TU之间的区分。JEM/VVC的示例的QTBT结构包括两个层级:根据四叉树分割来分割的第一层级,以及根据二叉树分割来分割的第二层级。QTBT结构的根节点对应于CTU。二叉树的叶节点对应于译码单元(CU)。
在某些示例中,视频编码器200和视频解码器300可以使用单一QTBT结构来表示亮度分量和色度分量中的每一者,而在其它示例中,视频编码器200和视频解码器300可以使用两个或更多个QTBT结构,诸如一个QTBT结构用于亮度分量而另一QTBT结构用于两个色度分量(或者两个QTBT结构用于相应的色度分量)。
视频编码器200和视频解码器300可以被配置为按照HEVC使用四叉树分割,根据JEM/VVC的示例使用QTBT分割,和/或使用其它分割结构。出于解释的目的,相对于QTBT分割来呈现本公开的技术的描述。然而,应理解,本公开的技术还可以被应用于被配置为使用四叉树分割和/或其它类型的分割的视频译码器。
本公开可互换地使用“N×N”和“N乘N”来指代块(诸如CU或其他视频块)的就垂直和水平维度而言的样本维度,例如,16×16样本或者16乘16样本。通常来说,16×16的CU将在垂直方向上具有16个样本(y=16)且在水平方向上具有16个样本(x=16)。同样,N×N的CU通常在垂直方向上具有N个样本且在水平方向上具有N个样本,其中N表示非负整数值。CU中的样本可以按行和列来布置。此外,CU在水平方向上与垂直方向上不一定需要具有相同数目的样本。例如,CU可以包括N×M样本,其中M不一定等于N。
视频编码器200对针对CU的表示预测和/或残差信息以及其它信息的视频数据进行编码。预测信息指示将如何预测CU以便形成针对CU的预测块。残差信息通常表示编码之前的CU的样本与预测块之间的逐样本差。
为了预测CU,视频编码器200通常可以通过帧间预测或帧内预测来形成针对CU的预测块。帧间预测通常指从先前经译码图片的数据来预测CU,而帧内预测通常指从同一图片的先前经译码数据来预测CU。为了执行帧间预测,视频编码器200可以使用一个或多个运动向量来生成预测块。视频编码器200通常可以执行运动搜索以例如根据CU与参考块之间的差来标识紧密匹配CU的参考块。视频编码器200可以使用绝对差之和(SAD)、平方差之和(SSD)、平均绝对差(MAD)、均方差(MSD)或其它此类差计算来计算差度量以确定参考块是否紧密匹配当前CU。在某些示例中,视频编码器200可以使用单向预测或双向预测来预测当前CU。
为了执行帧内预测,视频编码器200可以选择帧内预测模式以生成预测块。JEM提供六十七种帧内预测模式,包括各种方向模式,以及平面模式和DC模式。通常来说,视频编码器200选择以下帧内预测模式:描述当前块(例如,CU的块)的、根据其来预测当前块的样本的相邻样本。假设视频编码器200以光栅扫描次序(从左到右,从上到下)对CTU和CU进行译码,此类样本通常可以位于与当前块相同的图片中的当前块的上方、左上方、或左方。
视频编码器200对表示用于当前块的预测模式的数据进行编码。例如,对于帧间预测模式,视频编码器200可以对表示使用各种可用帧间预测模式中的哪一个的数据以及用于对应模式的运动信息进行编码。例如,对于单向或双向帧间预测,视频编码器200可以使用AMVP模式、合并模式、仿射帧间模式和/或仿射合并模式对运动向量进行编码。
在使用例如上文所提及的帧间预测模式(例如,AMVP模式、合并模式、仿射帧间模式和/或仿射合并模式)中的一个来进行诸如块的帧内预测或者块的帧间预测之类的预测之后,视频编码器200可以计算用于块的残差数据。诸如残差块之类的残差数据表示块与使用对应预测模式形成的针对该块的预测块之间的逐样本差。视频编码器200可以将一个或多个变换应用于残差块,以在变换域而非样本域中产生经变换数据。例如,视频编码器200可以将离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换应用于残差视频数据。附加地,视频编码器200可以在初级变换之后应用次级变换,诸如模式相关不可分离的次级变换(MDNSST)、信号相关变换、卡南-洛伊夫变换(Karhunen-Loeve transform,KLT)等。视频编码器200在应用一个或多个变换之后产生变换系数。
如上所述,在用于产生变换系数的任何变换之后,视频编码器200可以执行对变换系数的量化。量化通常是指对变换系数进行量化以可能减少用于表示系数的数据量从而提供进一步压缩的过程。通过执行量化过程,视频编码器200可以减小与系数中的某些或全部系数相关联的比特深度。例如,视频编码器200可以在量化期间将n比特值向下舍入成m比特值,其中n大于m。在某些示例中,为了执行量化,视频编码器200可以执行对待量化的值的逐位右移。
在量化之后,视频编码器200可以扫描变换系数,从包括经量化变换系数的二维矩阵产生一维向量。扫描可以被设计成将较高能量(并且因此较低频率)系数置于向量的前方(例如,起点)而将较低能量(并且因此较高频率)变换系数置于向量的后方。在某些示例中,视频编码器200可以利用预定义扫描次序来扫描经量化变换系数以产生串行化(serialized)向量,且随后对向量的经量化变换系数进行熵编码。在其它示例中,视频编码器200可以执行自适应扫描。在扫描经量化变换系数以形成一维向量之后,视频编码器200可例如根据上下文自适应二进制算术译码(CABAC)来对一维向量进行熵编码。视频编码器200还可以对针对语法元素的值进行熵编码,这些语法元素描述与经编码视频数据相关联的、供视频解码器300在解码视频数据时使用的元数据。
为了执行CABAC,视频编码器200可以将上下文模型内的上下文指派给待发送的符号。上下文可以涉及例如符号的相邻值是否为零值。概率确定可以基于指派给符号的上下文。
视频编码器200可以进一步例如在图片头部,块头部,条带头部中向视频解码器300生成诸如基于块的语法数据、基于图片的语法数据和/或基于序列的语法数据之类的语法数据或诸如包括但不限于序列参数集(SPS)、图片参数集(PPS)或视频参数集(VPS)的参数集数据之类的其它语法数据。视频解码器300可以同样解码此类语法数据以确定如何解码对应视频数据。
以此方式,视频编码器200可以生成比特流,该比特流包括经编码视频数据,例如,描述图片到块(例如,CU)的分割的语法元素以及针对块的预测和/或残差信息。最终,视频解码器300可以接收比特流并对经编码视频数据进行解码。
通常来说,视频解码器300执行与视频编码器200所执行的过程相反的过程以解码比特流的经编码视频数据。例如,视频解码器300可以以虽然与视频编码器200的CABAC编码过程相反但基本上类似的方式使用CABAC来解码比特流中针对语法元素的值。语法元素可以定义图片到CTU的分割信息,以及根据诸如QTBT结构之类的对应分割结构进行的对每个CTU的分割,以定义CTU的CU。语法元素可以进一步定义针对视频数据的块(例如,CU)的预测和残差信息。
残差信息可以由例如经量化变换系数表示。视频解码器300可以对块的经量化变换系数进行逆量化和逆变换以再现针对块的残差块。视频解码器300使用信令通知的预测模式(帧内或帧间预测)和相关预测信息(例如,用于帧间预测的运动信息)来形成针对块的预测块。视频解码器300随后可以(在逐样本基础上)组合预测块和残差块以再现原始块。视频解码器300可以执行附加处理,诸如执行去块(deblocking)过程以减少沿块的边界的视觉伪影。
如下文将更详细解释的,视频编码器200和/或视频解码器300可以被配置为使用诸如例如帧间预测译码的AMVP模式之类的特定帧间预测模式对视频数据的第一块进行译码,其中使用AMVP模式对第一块进行译码包括视频编码器200和/或视频解码器300被配置为构造用于使用AMVP模式对第一块进行译码的候选运动向量的列表,从候选运动向量的列表之中标识至少一个MV预测器,以及基于至少一个MV预测器生成经重构MV。根据本公开,视频编码器200和/或视频解码器300进一步被配置为将经重构MV添加到基于历史的运动向量预测(HMVP)候选列表,并且将与构造候选运动向量的列表相关联(或与候选运动向量的列表的构造相关联)的至少第二运动向量添加到HMVP候选列表。尽管可以主要在利用AMVP模式作为帧间预测译码模式的上下文中讨论本公开的实施例,但应该显而易见的是,诸如合并模式、仿射帧间模式和/或仿射合并模式之类的其他译码模式也可以结合本公开的(一个或多个)技术、(一个或多个)方法和/或(一个或多个)机制而被利用。
本公开通常可以涉及“信令通知”某些信息,诸如语法元素。术语“信令通知”通常可以涉及语法元素的值和/或用于对经编码视频数据进行解码的其它数据的通信。即,视频编码器200可以在比特流中信令通知针对语法元素的值。通常来说,信令通知涉及在比特流中生成值。如上所述,源设备102可以基本上实时地或者非实时地将比特流传送到目标设备116,诸如可以在将语法元素存储到存储设备112以供目标设备116稍后检索时发生。图2A和2B是图示了示例四叉树二叉树(QTBT)结构130以及对应译码树单元(CTU)132的概念图。实线表示四叉树划分,而虚线指示二叉树划分。在二叉树的每个划分(例如,非叶)节点中,一个标志被信令通知以指示使用哪种划分类型(例如,水平或垂直),其中在此示例中,标志的0值指示水平划分,而标志的1值指示垂直划分。对于四叉树划分,不需要指示划分类型,因为四叉树节点将块水平地且垂直地划分成4个尺寸相等的子块。相应地,视频编码器200可以编码而视频解码器300可以解码针对QTBT结构130的区域树层级(即,实线)的语法元素(诸如划分信息)以及针对QTBT结构130的预测树层级(即,虚线)的语法元素(诸如划分信息)。视频编码器200可以编码而视频解码器300可以解码针对由QTBT结构130的终端叶节点表示的CU的诸如预测和变换数据之类的视频数据。
通常来说,图2B的CTU 132可以与定义同QTBT结构130中在第一和第二层级的节点相对应的块的尺寸的参数相关联。这些参数可以包括CTU尺寸(以样本来表示CTU 132的尺寸)、最小四叉树尺寸(MinQTSize,表示最小允许四叉树叶节点尺寸)、最大二叉树尺寸(MaxBTSize,表示最大允许二叉树根节点尺寸)、最大二叉树深度(MaxBTDepth,表示最大允许二叉树深度)、以及最小二叉树尺寸(MinBTSize,表示最小允许二叉树叶节点尺寸)。
对应于CTU的QTBT结构的根节点在QTBT结构的第一层级可以具有四个子节点,这些子节点中的每一个可以根据四叉树分割来进行分割。即,第一层级的节点是叶节点(没有子节点)或者具有四个子节点。QTBT结构130的示例将此类节点表示为包括父节点和具有用于分支的实线的子节点。如果第一层级的节点不大于最大允许二叉树根节点尺寸(MaxBTSize),则它们可以被相应的二叉树进一步分割。一个节点的二叉树划分可以被迭代,直到划分所得的节点达到最小允许二叉树叶节点尺寸(MinBTSize)或最大允许二叉树深度(MaxBTDepth)。QTBT结构130的示例将此类节点表示为具有用于分支的虚线。二叉树叶节点被称为译码单元(CU),其用于预测(例如,图片内或图片间预测)和变换,而无需任何进一步的分割。如上所述,CU也可以被称为“视频块”或“块”。
在QTBT分割结构的一个示例中,CTU尺寸被设置为128×128(亮度样本和两个对应的64×64色度样本),MinQTSize被设置为16×16,MaxBTSize被设置为64×64,MinBTSize(对于宽度和高度两者)被设置为4,而MaxBTDepth被设置为4。四叉树分割首先被应用于CTU以生成四叉树叶节点。四叉树叶节点可具有从16×16(即,MinQTSize)到128×128(即,CTU尺寸)的尺寸。如果叶四叉树节点是128×128,则它将不会被二叉树进一步划分,因为尺寸超过MaxBTSize(即,在此示例中,为64×64)。否则,叶四叉树节点将进一步被二叉树分割。因此,四叉树叶节点也是针对二叉树的根节点,并且具有为0的二叉树深度。当二叉树深度达到MaxBTDepth(在此示例中为4)时,不允许进一步划分。当二叉树节点具有等于MinBTSize(在本示例中为4)的宽度时,这意味着不允许进一步的水平划分。类似地,具有等于MinBTSize的高度的二叉树节点意味着对于该二叉树节点不允许进一步的垂直划分。如上所述,二叉树的叶节点被称为CU,并且根据预测和变换被进一步处理而无需进一步分割。
图3是图示了可以执行诸如对用于AMVP译码的附加的基于历史的运动向量预测(HMVP)候选的生成、选择和/或包括之类的本公开的技术的示例视频编码器200的框图。图3是出于解释的目的而被提供的,并且不应被视为对本公开中广泛例示和描述的技术的限制。出于解释的目的,本公开在诸如HEVC视频译码标准以及开发中的H.266/VVC视频译码标准之类的视频译码标准的上下文中描述视频编码器200。然而,本公开的技术不限于这些视频译码标准,而且通常可适用于包括各种编解码器实现的视频编码和解码。
在图3的示例中,视频编码器200包括视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、滤波器单元216、经解码图片缓冲器(DPB)218和熵编码单元220。
视频数据存储器230可以存储将由视频编码器200的组件编码的视频数据。视频编码器200可以从例如视频源104(图1)接收存储在视频数据存储器230中的视频数据。DPB218可以充当存储用于由视频编码器200进行的对后续视频数据的预测的参考视频数据的参考图片存储器。视频数据存储器230和DPB 218可以由各种存储器设备中的任何一种形成,诸如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM),或其它类型的存储器设备。视频数据存储器230和DPB218可以由相同存储器设备或分开的存储器设备提供。在各种示例中,视频数据存储器230可以与视频编码器200的其它组件一起位于片上,如图示的那样,或者相对于那些组件而位于片外。
在本公开中,对视频数据存储器230的引用不应被解释为限于视频编码器200内部的存储器,除非如此具体描述,或者视频编码器200外部的存储器,除非如此具体描述。反之,对视频数据存储器230的引用应被理解为存储视频编码器200接收以用于编码的视频数据(例如,用于将被编码的当前块的视频数据)的参考存储器。图1的存储器106还可以提供对来自视频编码器200的各种单元的输出的临时存储。
图3中描绘的视频编码器200的各种单元(或组件)被图示,以帮助理解由视频编码器200执行的操作。这些单元可以被实现为诸如固定功能电路、可编程电路或其组合之类的处理电路。固定功能电路指的是提供特定(例如,被配置为提供)功能性并且被预设在可被执行的操作上的电路。可编程电路指的是可以被编程以执行各种任务,并且在可以被执行的操作中提供灵活功能性的电路。例如,可编程电路可以执行使得可编程电路以由软件或固件的指令定义的方式操作的软件或固件。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作的类型通常是不可变的。在某些示例中,单元中的一个或多个可以是不同的电路块(固定功能的或可编程的),而在某些示例中,一个或多个单元可以是集成电路。
视频编码器200可以包括算术逻辑单元(ALU)、初等函数单元(EFU)、数字电路、模拟电路和/或由可编程电路形成的可编程核。在使用由可编程电路执行的软件来执行视频编码器200的操作的示例中,存储器106(图1)可以存储视频编码器200接收并执行的软件的目标代码,或者视频编码器200内的另一存储器(未示出)可以存储此类指令。
视频数据存储器230被配置为存储所接收的视频数据。视频编码器200可以从视频数据存储器230检索视频数据的图片并且将视频数据提供到残差生成单元204和模式选择单元202。视频数据存储器230中的视频数据可以是将被编码的原始视频数据。
模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可以包括用于根据其它预测模式执行视频预测的附加功能单元。作为示例,模式选择单元202可以包括调色板单元、块内复制单元(其可以是运动估计单元222和/或运动补偿单元224的部分)、仿射单元、线性模型(LM)单元等等。
模式选择单元202通常协调多个编码编次(passes)以测试编码参数的组合以及针对此类组合的所得速率-失真值。编码参数可以包括CTU到CU的分割、用于CU的预测模式、用于CU的残差数据的变换类型、用于CU的残差数据的量化参数等。模式选择单元202可最终选择具有比其它经测试组合好的速率-失真值的编码参数的组合。
视频编码器200可以将从视频数据存储器230检索的图片分割成一系列CTU,并将一个或多个CTU封装在条带内。模式选择单元210可以根据诸如上述QTBT结构或HEVC的四叉树结构之类的树结构来分割图片的CTU。如上所述,视频编码器200可以通过根据树结构分割CTU来形成一个或多个CU。此类CU通常还可以被称为“视频块”或“块”。
通常来说,模式选择单元202还控制其组件(例如,运动估计单元222、运动补偿单元224和帧内预测单元226)以生成针对当前块(例如,当前CU、或HEVC中的PU和TU的重叠部分)的预测块。对于当前块的帧间预测,运动估计单元222可以执行运动搜索以标识一个或多个参考图片(例如,被存储在DPB 218中的一个或多个先前经译码图片)中的一个或多个紧密匹配的参考块。具体地,运动估计单元222可以例如根据绝对差之和(SAD)、平方差之和(SSD)、平均绝对差(MAD)、均方差(MSD)等来计算表示潜在参考块与当前块有多类似的值。运动估计单元222通常可以使用当前块与所考虑的参考块之间的逐样本差来执行这些计算。运动估计单元222可以标识具有这些计算所得的最低值的参考块,来指示最紧密匹配当前块的参考块。
运动估计单元222可以形成一个或多个运动向量(MV),这一个或多个MV定义参考图片中的参考块相对于当前图片中的当前块的位置。运动估计单元222随后可以将运动向量提供到运动补偿单元224。例如,对于单向帧间预测,运动估计单元222可以提供单一运动向量,而对于双向帧间预测,运动估计单元222可以提供两个运动向量。运动补偿单元224随后可以使用运动向量来生成预测块。例如,运动补偿单元224可以使用运动向量来检索参考块的数据。作为另一示例,如果运动向量具有分数样本精度,则运动补偿单元224可以根据一个或多个插值滤波器来对针对预测块的值进行插值。此外,对于双向帧间预测,运动补偿单元224可以检索针对由相应运动向量标识的两个参考块的数据,并例如通过逐样本的平均或加权平均来组合所检索数据。
根据本公开的技术,运动估计单元222和运动补偿单元224可以在使用诸如AMVP模式之类的特定帧间预测模式对块进行译码(例如,编码)时执行帧间预测和运动向量预测技术。例如,如下文将更详细解释的,运动估计单元222和/或运动补偿单元224可以被配置为使用帧间预测译码的高级运动向量预测(AMVP)模式对视频数据的第一块进行译码,其中使用AMVP模式对第一块进行译码包括运动估计单元222和运动补偿单元224被配置为构造用于使用AMVP模式对第一块进行译码的候选运动向量的列表,从候选运动向量的列表之中标识至少一个MV预测器,以及基于至少一个MV预测器生成经重构MV。根据本公开,运动估计单元222和/或运动补偿单元224进一步被配置为将经重构MV添加到HMVP候选列表,并且将与构造候选运动向量的列表相关联(或与候选运动向量的列表的构造相关联)的至少第二运动向量添加到HMVP候选列表。
作为另一示例,对于帧内预测或帧内预测译码,帧内预测单元226可以从与当前块相邻的样本生成预测块。例如,对于方向模式,帧内预测单元226通常可以数学地组合相邻样本的值,并且在跨当前块的所定义方向上填充这些计算值,以产生预测块。作为另一示例,对于DC模式,帧内预测单元226可以计算针对当前块的相邻样本的平均,并且生成预测块以包括针对该预测块的每个样本的所得平均。
模式选择单元202将预测块提供到残差生成单元204。残差生成单元204从视频数据存储器230接收当前块的原始未译码版本,并从模式选择单元202接收预测块。残差生成单元204计算当前块与预测块之间的逐样本差。所得逐样本差定义针对当前块的残差块。在某些示例中,残差生成单元204还可以确定残差块中的样本值之间的差,以使用残差差分脉冲编码调制(RDPCM)来生成残差块。在某些示例中,可以使用执行二进制减法的一个或多个减法器电路来形成残差生成单元204。
在模式选择单元202将CU分割成PU的示例中,每个PU可以与亮度预测单元和对应色度预测单元相关联。视频编码器200和视频解码器300可以支持具有各种尺寸的PU。如上所述,CU的尺寸可以指CU的亮度译码块的尺寸,而PU的尺寸可以指PU的亮度预测单元的尺寸。假定特定CU的尺寸为2N×2N,视频编码器200可以支持尺寸为2N×2N或N×N的PU来用于帧内预测,以及尺寸为2N×2N、2N×N、N×2N、N×N或类似尺寸的对称PU来用于帧间预测。视频编码器20和视频解码器30还可以支持针对尺寸为2N×nU、2N×nD、nL×2N和nR×2N的PU的非对称分割来用于帧间预测。
在模式选择单元不进一步将CU分割成PU的示例中,每个CU可与亮度译码块和对应色度译码块相关联。如上所述,CU的尺寸可以指CU的亮度译码块的尺寸。视频编码器200和视频解码器120可以支持尺寸为2N×2N、2N×N或N×2N的CU。
对于诸如块内复制模式译码、仿射模式译码和线性模型(LM)模式译码之类的其它视频译码技术,作为若干示例,模式选择单元202经由与译码技术相关联的相应单元生成针对正被编码的当前块的预测块。在某些示例中,诸如调色板模式译码,模式选择单元202可以不生成预测块,而是生成指示用于基于所选调色板来重构块的方式的语法元素。在此类模式中,模式选择单元202可以将这些语法元素提供给熵编码单元220以进行编码。
如上所述,残差生成单元204接收针对当前块和对应预测块的视频数据。残差生成单元204随后生成针对当前块的残差块。为了生成残差块,残差生成单元204计算预测块与当前块之间的逐样本差。
变换处理单元206将一个或多个变换应用于残差块以生成变换系数的块(本文中被称为“变换系数块”)。变换处理单元206可以将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可以将离散余弦变换(DCT)、方向变换、卡南-洛伊夫变换(KLT)或概念上类似的变换应用于残差块。在某些示例中,变换处理单元206可以对残差块执行多个变换,例如,初级变换和次级变换,诸如旋转变换。在某些示例中,变换处理单元206不将变换应用于残差块。
量化单元208可以量化变换系数块中的变换系数,以产生经量化变换系数块。量化单元208可以根据与当前块相关联的量化参数(QP)值来量化变换系数块的变换系数。视频编码器200(例如,经由模式选择单元202)可以通过调整与CU相关联的QP值来调整应用于与当前块相关联的系数块的量化程度。量化可能引入信息损失,并且因此,经量化变换系数可能具有比由变换处理单元206产生的原始变换系数更低的精度。
逆量化单元210和逆变换处理单元212可以分别将逆量化和逆变换应用于经量化变换系数块,以从变换系数块重构残差块。重构单元214可以基于经重构残差块以及由模式选择单元202生成的预测块来产生对应于当前块的经重构块(尽管潜在地具有某种程度的失真)。例如,重构单元214可以将经重构残差块的样本与来自模式选择单元202生成的预测块的对应样本相加,以产生经重构块。
滤波器单元216可以对经重构块执行一个或多个滤波器操作。例如,滤波器单元216可以执行去块操作以减少沿CU边缘的块效应伪影(blockiness artifact)。在某些示例中,可以跳过滤波器单元216的操作。
视频编码器200将经重构块存储在DPB 218中。例如,在不需要滤波器单元224的操作的示例中,重构单元214可以将经重构块存储至DPB 218。在需要滤波器单元224的操作的示例中,滤波器单元216可以将经滤波重构块存储至DPB 218。运动估计单元222和运动补偿单元224可以从DPB 218检索由经重构(并且可能经滤波)的块形成的参考图片,以使用上文提及的帧间译码模式对后续经编码图片的块进行帧间预测。此外,帧内预测单元226可以使用当前图片的在DPB 218中的经重构块来对当前图片中的其它块进行帧内预测。
通常来说,熵编码单元220可以对从视频编码器200的其它功能组件接收的语法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的经量化变换系数块进行熵编码。作为另一示例,熵编码单元220可以对来自模式选择单元202的预测语法元素(例如,用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。熵编码单元220可以对作为视频数据的另一示例的语法元素执行一个或多个熵编码操作,以生成经熵编码数据。例如,熵编码单元220可以对数据执行上下文自适应可变长度译码(CAVLC)操作、CABAC操作、可变到可变(V2V)长度译码操作、基于语法的上下文自适应二进制算术译码(SBAC)操作、概率区间分割熵(PIPE)译码操作、指数-哥伦布译码操作、或另一类型的熵编码操作。在某些示例中,熵编码单元220可以在语法元素不被熵编码的旁路模式中操作。
视频编码器200可以输出包括所需用于重构条带或图片的块的经熵编码语法元素的比特流。具体地,熵编码单元220可以输出比特流。
以上描述的操作是相对于块而描述的。此类描述应当被理解为是用于亮度译码块和/或色度译码块的操作。如上所述,在某些示例中,亮度译码块和色度译码块是CU的亮度和色度分量。在某些实例中,亮度译码块和色度译码块是PU的亮度和色度分量。
在某些示例中,不需要对色度译码块重复相对于亮度译码块执行的操作。作为一个示例,用于标识针对亮度译码块的运动向量(MV)和参考图片的操作不需要被重复用于标识针对色度块的MV和参考图片。确切地说,针对亮度译码块的MV可以被缩放以确定针对色度块的MV,而参考图片可以相同。作为另一示例,对于亮度译码块和色度译码块,帧内预测处理可以是相同的。
视频编码器200表示被配置为对视频数据进行编码的设备的示例,包括被配置为存储视频数据的存储器,以及以电路实现并且被配置为使用帧间预测译码的高级运动向量预测(AMVP)模式对视频数据的第一块进行编码的一个或多个处理单元,其中使用AMVP模式对第一块进行编码包括视频编码器200被配置为构造用于使用AMVP模式对第一块进行编码的候选运动向量的列表,从候选运动向量的列表之中标识至少一个MV预测器,以及基于至少一个MV预测器生成经重构MV。根据本公开,视频编码器200进一步被配置为将经重构MV添加到基于历史的运动向量预测(HMVP)候选列表,并且将与构造候选运动向量的列表相关联(或与候选运动向量的列表的构造相关联)的至少第二运动向量添加到HMVP候选列表。
图4是图示了可以执行本公开的技术的示例视频解码器300的框图。图4是出于解释的目的而被提供的,且并非对本公开中广泛例示和描述的技术的限制。出于解释的目的,本公开描述了根据H.266/VVC、JEM和HEVC的技术来描述视频解码器300。然而,本公开的技术可由被配置为其它视频译码标准的视频译码设备执行。
在图4的示例中,视频解码器300包括经译码图片缓冲器(CPB)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和经解码图片缓冲器(DPB)314。预测处理单元304包括运动补偿单元316和帧内预测单元318。预测处理单元304可以包括用于根据其它预测模式执行预测的附加单元。作为示例,预测处理单元304可以包括调色板单元、块内复制单元(其可以是运动补偿单元318的部分)、仿射单元、线性模型(LM)单元等等。在其它示例中,视频解码器300可以包括更多、更少或不同的功能组件。
CPB存储器320可以存储将由视频解码器300的组件解码的视频数据,诸如经编码视频比特流。存储在CPB存储器320中的视频数据可以例如从计算机可读介质110(图1)获得。CPB存储器320可以包括存储来自经编码视频比特流的经编码视频数据(例如,语法元素)的CPB。同样,CPB存储器320可以存储除经译码图片的语法元素以外的视频数据,诸如表示来自视频解码器300的各种单元的输出的临时数据。DPB 314通常存储经解码图片,视频解码器300可以将该经解码图片输出和/或在解码经编码视频比特流的后续数据或图片时用作参考视频数据。CPB存储器320和DPB 314可以由各种存储器设备中的任何一种形成,诸如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM),或其它类型的存储器设备。CPB存储器320和DPB 314可以由相同的存储器设备或分开的存储器设备提供。在各种示例中,CPB存储器320可以与视频解码器300的其它组件一起位于片上,或者相对于那些组件而位于片外。
附加地或可替代地,在某些示例中,视频解码器300可以从存储器120(图1)检索经译码视频数据。即,存储器120可以存储如上文与CPB存储器320一起讨论的数据。同样地,当视频解码器300的功能性中的某些或全部以由视频解码器300的处理电路执行的软件来实现时,存储器120可以存储用于由视频解码器300执行的指令。
图4中示出的各种单元(或组件)被图示,以帮助理解由视频解码器300执行的操作。这些单元可以被实现为固定功能电路、可编程电路或其组合。与图3类似,固定功能电路指的是提供特定功能并且被预设在可被执行的操作上的电路。可编程电路指的是可以被编程以执行各种任务,并且在可以被执行的操作中提供灵活功能性的电路。例如,可编程电路可以执行使得可编程电路以由软件或固件的指令定义的方式操作的软件或固件。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作的类型通常是不可变的。在某些示例中,单元中的一个或多个可以是不同的电路块(固定功能的或可编程的),而在某些示例中,一个或多个单元可以是集成电路。
视频解码器300可以包括ALU、EFU、数字电路、模拟电路和/或由可编程电路形成的可编程核。在视频解码器300的操作由在可编程电路上执行的软件执行的示例中,片上或片外存储器可以存储视频解码器300接收和执行的软件的指令(例如,目标代码)。
熵解码单元302可以从CPB接收经编码视频数据并对视频数据进行熵解码以再现语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310和滤波器单元312可以基于从比特流提取的语法元素来生成经解码视频数据。
通常来说,视频解码器300在逐块的基础上重构图片。视频解码器300可以单独地对每个块执行重构操作(其中当前正被重构即被解码的块可以被称作“当前块”)。
熵解码单元302可以对定义经量化变换系数块的经量化变换系数的语法元素以及诸如量化参数(QP)和/或(一个或多个)变换模式指示之类的变换信息进行熵解码。逆量化单元306可以使用与经量化变换系数块相关联的QP来确定量化程度,并且同样地,确定供逆量化单元306应用的逆量化程度。逆量化单元306例如可以执行逐位左移操作以对经量化变换系数进行逆量化。逆量化单元306由此可以形成包括变换系数的变换系数块。
在逆量化单元306形成变换系数块之后,逆变换处理单元308可以将一个或多个逆变换应用于变换系数块以生成与当前块相关联的残差块。例如,逆变换处理单元308可以将逆DCT、逆整数变换、逆卡南-洛伊夫变换(KLT)、逆旋转变换、逆方向变换或另一逆变换应用于系数块。
此外,预测处理单元304根据由熵解码单元302熵解码的预测信息语法元素来生成预测块。例如,如果预测信息语法元素指示当前块是帧间预测的,则运动补偿单元316可以生成预测块。在这种情况下,预测信息语法元素可以指示DPB 314中的从其检索参考块的参考图片,以及标识参考块在参考图片中的位置相对于当前块在当前图片中的位置的运动向量。运动补偿单元316通常可以用与相对于运动补偿单元224(图3)而描述的方式基本类似的方式来执行帧间预测过程。
根据本公开的技术,运动补偿单元316可以在诸如使用如本文中所描述的AMVP模式之类的帧间译码模式对块进行译码时执行帧间预测和运动向量预测技术。例如,如下文将更详细解释的,运动补偿单元316可以被配置为使用帧间预测译码的高级运动向量预测(AMVP)模式对视频数据的第一块进行解码,其中使用AMVP模式对第一块进行译码包括运动补偿单元316被配置为构造用于使用AMVP模式对第一块进行解码的候选运动向量的列表,从候选运动向量的列表之中标识至少一个MV预测器,以及基于该至少一个MV预测器生成经重构MV。根据本公开,运动补偿单元316进一步被配置为将经重构MV添加到基于历史的运动向量预测(HMVP)候选列表,并且将与构造候选运动向量的列表相关联(或与候选运动向量的列表的构造相关联)的至少第二运动向量添加到HMVP候选列表。
作为另一示例,如果预测信息语法元素指示当前块是帧内预测的,则帧内预测单元318可以根据由预测信息语法元素指示的帧内预测模式来生成预测块。再次,帧内预测单元318通常可以用与相对于帧内预测单元226(图3)而描述的方式基本类似的方式来执行帧内预测过程。帧内预测单元318可以从DPB 314检索针对当前块的相邻样本的数据。
重构单元310可以使用预测块和残差块来重构当前块。例如,重构单元310可以将残差块的样本与预测块的对应样本相加以重构当前块。
滤波器单元312可以对经重构块执行一个或多个滤波器操作。例如,滤波器单元312可以执行去块操作以减少沿经重构块边缘的块效应伪影。滤波器单元312的操作不必在所有示例中执行。
视频解码器300可以将经重构块存储在DPB 314中。如上所述,DPB 314可以将参考信息,诸如用于帧内预测的当前图片和用于后续运动补偿的先前经解码图片的样本提供给预测处理单元304。此外,视频解码器300可以输出来自DPB的经解码图片以用于诸如图1的显示设备118之类的显示设备上的后续呈现。
以此方式,视频解码器300表示视频解码设备的示例,包括被配置为存储视频数据的存储器,以及以电路实现并且被配置为使用帧间预测译码的高级运动向量预测(AMVP)模式对视频数据的第一块进行解码的一个或多个处理单元,其中使用AMVP模式对第一块进行解码包括视频解码器300被配置为构造用于使用AMVP模式对第一块进行解码的候选运动向量的列表,从候选运动向量的列表之中标识至少一个MV预测器,以及基于该至少一个MV预测器生成经重构MV。根据本公开,视频解码器300进一步被配置为将经重构MV添加到基于历史的运动向量预测(HMVP)候选列表,并且将与构造候选运动向量的列表相关联的至少第二运动向量添加到HMVP候选列表。
现在将讨论HEVC中的CU结构和运动向量预测。在HEVC中,条带中的最大译码单元被称为译码树块(CTB)或译码树单元(CTU)。CTB包含四叉树,该四叉树的节点是译码单元。
在HEVC主配置文件(profile)中,CTB的尺寸的范围可以从16×16到64×64(尽管技术上可以支持8×8的CTB尺寸)。译码单元(CU)可以与CTB相同尺寸,也可以如8×8一样小。每个译码单元以一种模式来译码。当CU经帧间译码时,其可以被进一步分割为2个或4个预测单元(PU)或者在不应用进一步分割时变为仅一个PU。当一个CU中存在两个PU时,这两个PU可以是各占一半尺寸的矩形或者是尺寸为CU的1/4或3/4的两个矩形。
HEVC中的运动向量预测
在HEVC标准中,对于PU,存在分别被称为合并(跳过被认为是在无残差情况下的合并的特例)和AMVP模式的两个帧间预测模式。
在AMVP模式中,可以基于经译码参考索引来导出用于每个运动假设的运动向量预测器的候选列表。该列表包括例如与相同参考索引相关联的相邻块的运动向量以及基于时间参考图片中的同位块的相邻块的运动参数而被导出的时间运动向量预测器。所选取的运动向量通过将索引发送到候选列表中而被信令通知。此外,参考索引值和运动向量差也被信令通知。在本公开中,术语运动向量预测器通常被用于指代从中预测一个或多个运动向量的任何运动向量。在某些实例中,运动向量预测器和所预测的运动向量可以是完全相同的,而在其他实例中,运动向量预测器和所预测的运动向量可以是不同的。例如,在AMVP模式中,所预测的运动向量对应于运动向量预测器加上运动向量差值。本公开还涉及术语方向运动预测器,其通常指代与特定方向(即,特定参考图片列表)相关联的运动向量预测器。在双预测的情况下,运动向量预测器可以包括两个方向运动预测器。
在AMVP或合并模式中,视频编码器200及视频解码器300可以构造和保持用于多个运动向量预测器(也被称为MV预测器)的运动向量(MV)候选列表。当前PU的(一个或多个)运动向量以及在合并模式中的参考索引通过从MV候选列表获得一个候选来生成。
MV候选列表对于合并模式包含至多5个候选,而对于AMVP模式仅包含两个候选。合并候选可以包含运动信息集,例如,与两个参考图片列表(列表0和列表1)相对应的运动向量以及参考索引。如果合并候选被合并索引标识,则参考图片被用于当前块的预测,并且相关联的运动向量被确定。然而,在AMVP模式下,对于来自列表0或列表1的每个潜在预测方向,参考索引连同MV预测器(MVP)索引一起被显式地信令通知到MV候选列表内的特定MV候选,因为AMVP候选仅包含运动向量。在AMVP模式中,可以进一步细化所预测的运动向量。
如上可见,合并候选对应于运动信息的全集,而AMVP候选仅包含针对特定预测方向的一个运动向量和参考索引。针对两种模式的候选从相同的空间和时间相邻块而被类似地导出。
空间相邻候选
对于特定PU(PU0),空间MV候选从相邻块导出,如图5A和5B中所示的那样,虽然用于从块生成候选的技术对于合并和AMVP模式是不同的。
图5A是示出用于合并模式的空间相邻候选的概念图。图5B是示出用于AMVP模式的空间相邻候选的概念图。在合并模式中,至多四个空间MV候选可以按图5A中所示的次序而被导出。次序为:左(0,A1),上(1,B1),右上(2,B0),左下(3,A0)以及左上(4,B2)。
在AVMP模式中,相邻块被划分成两个组:包括块0和1的左方组,和包括块2、3和4的上方组,如图5B所示。对于每个组,涉及与信令通知的参考索引所指示的参考图片相同的参考图片的、相邻块中的潜在候选具有要被选取以形成该组的最终候选的最高优先级。所有相邻块都不包含指向相同参考图片的运动向量是可能的。因此,如果不能找到此类候选,则第一可用候选将被缩放以形成最终候选,从而时间距离差可以被补偿。
HEVC中的时间运动向量预测
如果被启用并且可用,时间运动向量预测器(TMVP)候选在空间运动向量候选之后被添加到MV候选列表中。对于合并模式和AMVP模式两者,用于TMVP候选的运动向量导出的过程是相同的。然而,用于合并模式中的TMVP候选的目标参考索引被设置为0。
用于TMVP候选导出的主块位置是同位PU外部的右下方块,如在图6A中以块“T”示出,以补偿对用于生成空间相邻候选的上方块和左方块的偏置。然而,如果此块位于当前CTB行之外或者运动信息不可用,则用PU的中心块替代该块。
用于TMVP候选的运动向量从在条带层级指示的同位图片的同位PU导出。用于同位PU的运动向量被称为同位MV。
类似于H.264/AVC中的时间直接模式(temporal direct mode),为了导出TMVP候选运动向量,同位MV可以被缩放以补偿时间距离差,如图6B所示。
下面描述示例性帧间译码模式(例如,合并模式和AMVP模式)的若干方面。
运动向量缩放:假定运动向量的值与呈现时间中的图片的距离成比例。运动向量使以下两个图片相关联:参考图片,以及包含运动向量的图片(称为包含图片)。当运动向量被用于预测另一运动向量时,基于相应图片的图片次序计数(POC)值来计算包含图片与参考图片的距离。
对于将被预测的运动向量,该运动向量的相关联的包含图片和相关联的参考图片两者可以是不同的。因此,(基于POC值的)新的距离被计算,并且运动向量基于这两个POC距离而被缩放。对于空间相邻候选,针对两个运动向量的包含图片是相同的,而参考图片是不同的。在HEVC中,运动向量缩放应用于针对空间和时间相邻候选的TMVP和AMVP两者。
人工运动向量候选生成:如果运动向量候选列表是不完整的(例如,小于预定数目),则人工运动向量候选被生成并且被插入到列表的末端(例如,在其它可用运动向量候选之后),直到列表具有规定数目的候选。
在合并模式中,存在两种类型的人工MV候选:仅针对B-条带导出的组合候选和仅用于AMVP的零候选(如果第一类型不提供足够的人工候选)。
对于已经在候选列表中且具有必要运动信息的每对候选,通过对涉及列表0中图片的第一候选的运动向量与涉及列表1中图片的第二候选的运动向量的组合来导出双向组合运动向量候选。
用于候选插入的修剪过程:来自不同块的候选可能恰好是相同的,这降低了合并/AMVP候选列表的效率。应用修剪过程来解决该问题。修剪过程将当前候选列表中的一个候选与其他候选进行比较,以避免插入完全相同的候选。为了降低复杂度,仅应用有限数目的修剪过程而不是将每个潜在候选与全部其它现有候选进行比较。
基于历史的运动预测
基于历史的运动向量预测(HMVP)(例如,如在以下文档中所描述的:L.Zhang,K.Zhang,H.Liu,Y.Wang,P.Zhao和D.Hong,“CE4-related:History-based Motion VectorPrediction(CE4相关:基于历史的运动向量预测)”,JVET-K0104,,2018年7月)涉及将用于先前经解码运动向量的表格保存(例如,在存储器中保持或存储)为HMVP候选。HMVP允许(例如,被配置为启用)每个块从过去解码的(例如,先前经解码的)MV(除了那些直接邻近的因果相邻运动场(immediately adjacent causal neighboring motion field)之外)的列表寻找相应块的MV预测器。具有多个HMVP候选的表格在编码/解码过程中被保持。
视频编码器200和/或视频解码器300在对经非仿射帧间译码的块进行译码时更新该表格。所检索的运动向量(例如,经重构运动向量)将作为新的HMVP候选由例如视频编码器200和/或视频解码器300添加(例如,插入或包括)到缓冲器(例如,存储表格的存储器)的最后条目。先进先出(FIFO)或约束FIFO规则被视频编码器200和/或视频解码器300应用于该表,以在表格中添加或移除候选。表格内的候选可以被用于针对各种帧间译码模式的候选列表。例如,表格内的候选可以被用于针对合并候选列表和/或AMVP候选列表的候选。包括组合的候选和零候选的人工运动向量可以被表格中的候选替换。
在某些示例中,表格在处理新条带时被清空。如果用合并(或跳过)或AMVP模式对块进行译码,则视频编码器200和/或视频解码器300构造用于该块的合并候选列表或AMVP候选列表。如果列表中的可用候选数目小于候选列表所允许的候选的预定义最大限制,则视频编码器200和/或视频解码器300使用表格中的候选来填充(例如,完全填充)候选列表。如果存在经非仿射、帧间译码的块,则其运动向量被添加到表格的最后条目。表格将在添加新候选后被更新。图7中描绘了整个译码流程。图7中描绘的译码流程仅仅是示例性的;整个译码流程可以适用于各种帧间译码模式,诸如可以利用基于历史的运动向量预测的合并模式、AMVP模式、仿射帧间模式和/或仿射合并模式。
假设表格具有S个HMVP候选的尺寸(例如,被配置为存储S个HMVP候选),图8A中的先进先出(FIFO)规则在向包含S数目的HMVP候选的表格添加新的候选时被应用。视频编码器200和/或视频解码器300将新候选添加到FIFO的最终条目并且移除第一条目中的候选。如此,表格总是包含S个最新的(例如,最近的)候选,使得相对较旧的(例如,不太近的)候选被移除。
FIFO可以致使表格保存冗余的候选。如图8B所示,视频编码器200和/或视频解码器300可使用约束FIFO来解决冗余候选的问题。在添加新候选之前,视频编码器200和/或视频解码器300可以移除表格中的完全相同的候选。换句话说,视频编码器200和/或视频解码器300可以在表格包括彼此重复(或完全相同)的候选时从表格移除该候选。(在移除重复候选之前)定位于表格中的重复候选之后的候选将被向前移动(例如,在表格内向前前进)以填充空条目。随后,新候选将被添加到继表格内的这些剩余候选之后的表格的最后条目。
HMVP候选可以被用于合并候选列表构造过程中。从表格中的最后条目到第一条目的全部HMVP候选可以在TMVP候选之后被插入。修剪可以被例如视频编码器200和/或视频解码器300应用于HMVP候选。HMVP候选将继续被插入到合并候选列表中,直到合并候选数目达到最大限制。
类似地,HMVP候选也可以被视频编码器200和/或视频解码器300用于AMVP候选列表构造过程中。最后K个HMVP候选可以在TMVP候选之后被插入到AMVP候选中。在一个示例中,所插入的HMVP候选必须具有与AMVP的参考图片相同的参考图片。修剪还可以被应用于HMVP候选。
在当前实现中,当根据HMVP操作时,视频编码器和/或视频解码器仅将例如经帧间译码的块(例如,AMVP模式块(即,使用AMVP来译码的块))的经重构MV作为MV候选添加到表格中所存储的HMVP候选中(例如,被配置为仅将例如经帧间译码的块的经重构MV作为MV候选包括在表格中所存储的HMVP候选中)。当使用例如AMVP对块进行译码时,视频编码器从AMVP候选列表内的全部可用MV候选之中仅选择一个(例如,单一)MV候选来充当用于预测经重构MV的MV预测器(MVP)。当前,视频编码器丢弃AMVP候选列表(即,帧间译码模式候选列表)的剩余MV候选(例如,除上文提及的所选择的MV候选之外的MV候选),并且不将这些剩余MV候选包括为被存储/更新到表格的HMVP候选。然而,这些被丢弃的剩余MV候选可以是有益的,并且出于充当用于对其它经帧间译码的块(例如,AMVP块)进行译码的MV候选的目的而提供增加的译码效率/性能。此外,这些最终丢弃的AMVP候选的导出过程(例如,TMVP的缩放等)需要显著的资源(例如,时间和/或计算),使得丢弃这些AMVP候选是浪费的并且因此是不理想的。
为了解决上述问题,提出了用于HMVP表格更新的以下技术,其中除了根据从关联于对AMVP模式块进行译码的AMVP候选列表选择的AMVP候选导出的经重构MV之外,视频译码器处理与帧间译码模式块(例如,经AMVP模式译码的块)相关联的至少一个附加MV以便作为HMVP候选来包括。以下技术的任何组合可以由视频译码器(例如,视频编码器200和/或视频解码器300独自地或者可替代地而彼此完全(或部分)组合地应用。
此外,如先前提及的,尽管可以主要在利用AMVP模式作为特定帧间预测译码模式的上下文中讨论本公开的实施例,但应该易于显而易见的是,诸如合并模式、仿射帧间模式和/或仿射合并模式之类的其他译码模式也可以结合本公开的(一个或多个)技术、(一个或多个)方法和/或(一个或多个)机制而被利用。
例如,在一个或多个实现中,对于经AMVP模式译码的块(即,使用AMVP模式,或者简单地,AMVP来译码的块),视频编码器200和/或视频解码器300可以被配置为在AMVP候选列表之中选择(例如,标识或确定)一个(例如,单一)AMVP候选(本文中也被称为“MV候选”)来用作用于重构用于对AMVP块进行译码的MV的MVP。视频编码器200和/或视频解码器300随后可以将经重构MV作为HMVP候选添加到存储在存储器(例如,缓冲器)中的HMVP候选的表格内。在各种示例中,除经重构MV之外,视频编码器200和/或视频解码器300可以将HMVP表格附加地更新为包括来自经AMVP译码的块的AMVP候选列表的一个或多个MV候选(例如,除被选择为MVP的AMVP候选之外的一个或多个AMVP候选)。例如,被视频编码器200和/或视频解码器300包括为(一个或多个)HMVP候选的附加的一个或多个AMVP候选可以从AMVP候选列表内的未被选择为MVP的(一个或多个)MV候选之中选择。在其它示例中,附加的一个或多个AMVP候选可以包括被选择作为用于对经AMVP译码的块进行译码的MVP的AMVP候选。
在本公开的其它示例中,对于经AMVP译码的块,视频编码器200和/或视频解码器300可以用视频编码器200和/或视频解码器300可能已用其来导出用于对经AMVP译码的块进行译码的空间AMVP候选的任何数目(例如,1到5)的空间相邻MV(如果可用的话)来更新HMVP表格(即,包括为附加的HMVP候选)。在各种实施例中,除了用于对经AMVP译码的块进行译码的经重构MV之外,还将添加这些(一个或多个)附加的HMVP候选。
图9图示了可由视频编码器200和/或视频解码器300在用除经重构MV之外的附加HMVP候选更新HMVP表格时实现的相对于当前PU/同位PU的空间相邻MV和时间相邻MV之中的示例性选择优先级。在某些示例中,视频编码器200和/或视频解码器300可以选择(或选取)一组固定的(例如,预定数目或优先序列的)空间相邻MV来用于更新HMVP候选。例如,参考图9,一个固定的空间相邻MV(例如,与块A1相关联的MV)可以被选择,随后被添加到HMVP候选中。在又一示例中,两个固定的空间相邻MV(例如,与块A1及B1相关联的MV)可以被选择,并且随后被添加到HMVP候选中。
在其它示例中,视频编码器200和/或视频解码器300可以被配置为评估/评定一个或多个标准、条件和/或规则,以及被配置为执行一个或多个确定,以便自适应地选择(确定或标识)例如用于被附加地添加到HMVP候选中的(一个或多个)空间相邻MV的集合。例如,则对于特定帧间模式块(例如,经AMVP译码的块),如果特定帧间模式块的宽度被确定为大于或等于特定帧间模式块的高度,则预配置数目的(一个或多个)MV或与特定块(例如,B2和B0)相关联的(一个或多个)MV可以被用于更新HMVP表格(例如,缓冲器)。否则,在此示例中,如果由视频编码器200和/或视频解码器300确定特定帧间模式块的宽度不大于或等于(即,小于)特定帧间模式块的高度,则可替代的MV(例如,与块B2和A0相关联的MV)可以被添加作为HMVP候选。
如图9中所示并且如先前结合图6A和6B所讨论的,视频编码器200和/或视频解码器300可以处理两个时间相邻MV以用于导出时间AMVP候选。如此,在本公开的某些示例中,对于经AMVP译码的块,视频编码器200和/或视频解码器300可以用视频编码器200和/或视频解码器300可能已用其来导出用于对经AMVP译码的块进行译码的TMVP候选的某一数目(例如,1或2)的时间相邻MV(如果可用的话)来更新HMVP表格(即,包括为存储在例如缓冲器的存储器中的附加的HMVP候选)。在各种实施例中,除了用于对经AMVP译码的块进行译码的经重构MV之外,还将添加这些(一个或多个)附加的HMVP候选。用于更新HMVP表格的时间相邻MV的数目可以由视频编码器200和/或视频解码器300预先确定和/或由视频编码器200和/或视频解码器300基于某些条件、标准和/或评估来选择。例如,参考图9,一个固定的时间相邻MV(例如,与块C0相关联的MV)可以被选择,随后被添加到HMVP候选中。在又一示例中,两个固定的时间相邻MV(例如,与块C0及C1相关联的MV)可以被选择,并且随后被添加到HMVP候选中。
在其它示例中,视频编码器200和/或视频解码器300可以被配置为评估/评定一个或多个标准、条件和/或规则,以及被配置为执行一个或多个确定,以便自适应地选择(确定或标识)例如用于被附加地添加到HMVP候选中的(一个或多个)时间相邻MV的集合。例如,对于特定的帧间模式块(例如,经AMVP译码的块),视频编码器200和/或视频解码器300可以确定与块C0相关联的MV(例如,TMVP)是否可用。如果可用,则视频编码器200和/或视频解码器300将添加与块C0相关联的MV作为附加的HMVP候选。如果与块C0相关联的MV不可用,则视频编码器200和/或视频解码器300可以选择添加与块C1相关联的MV(如果可用)作为附加的HMVP候选。
如上所述,如果运动向量候选列表(例如,AMVP候选列表)是不完整的,则人工运动向量候选被生成并且被插入在候选列表的末端,直到列表具有规定数目的候选。对于经AMVP译码的块,视频编码器200和/或视频解码器300可以构造包含用于填充AMVP候选列表中的空条目的一个或多个人工零候选的AMVP候选列表。相对于前述实施例/实现中的每一者,视频编码器200和/或视频解码器300可以自适应地确定是否添加任何人工零候选作为HMVP候选。
在讨论用于包括附加HMVP候选的不同机制的上述实施例的其它实现中,视频编码器200和/或视频解码器300可以被配置为不用任何人工零候选来更新HMVP表格。
如上所述,存储在HMVP表格内的HMVP候选可以由视频编码器200和/或视频解码器300在AMVP候选列表的构造(即,生成)期间使用。如此,结合提供用于包括基于对经AMVP译码的块进行译码而导出的附加HMVP候选的(一个或多个)机制的本公开中所论述的示例/实施例中的任一个(或每一个),包括附加HMVP候选的所得经更新HMVP表格可以由视频编码器200和/或视频解码器300在用于另一经帧间译码的块(例如,第二经AMVP译码的块)的AMVP候选列表的构造(即,生成)期间使用。
本公开的技术允许更多的HMVP表格更新。向HMVP表格添加基于对经AMVP译码的块的译码而导出的这些附加候选使表格保持更新。因此,表格仍然以较高的概率保存较新的运动向量以用于未来预测或合并操作。
图10是图示了根据本公开的(一个或多个)机制和/或(一个或多个)技术来操作的视频编码设备(例如,视频编码器200)的示例操作的流程图。出于解释的目的,以下将图10的流程图描述为由图1和图3中所讨论的视频编码器200及其组件执行。然而,应当理解,其它设备可以被配置为执行图10的流程图或类似方法。此外,结合图3描述的视频编码器200的操作仅仅是视频编码器20被配置为根据本公开执行的操作的子集。例如,视频编码器200被配置为确定、处理和/或信令通知经编码比特流内的附加数据(例如,语法元素)并且执行本公开内描述的其它操作(例如,当前图片的预测以及基于POC的运动向量缩放)。
根据本公开的一个或多个技术,视频编码器200(例如,模式选择单元202及其组件,诸如运动估计单元222和/或运动补偿单元224)可以使用特定帧间预测译码模式来对视频数据的第一块进行编码。例如,如上文详细讨论的,视频编码器200可以例如利用AMVP模式作为帧间预测译码模式,或者可以确定诸如合并模式、仿射帧间模式或仿射合并模式之类的另一帧间译码模式可能最适合于对第一块进行编码。
在帧间预测编码过程期间,视频编码器200(例如,模式选择单元202,并且在某些实现中,具体为运动估计单元222)可以构造用于使用所选择的帧间预测译码模式来对第一块进行编码的候选运动向量的列表(1002)。视频编码器200可以从候选运动向量的列表之中标识(或选择)至少一个运动向量候选以用作运动向量预测器(1004),以用于生成用于对第一块进行编码的经重构运动向量(1006)。视频编码器200随后可以将经重构运动向量作为HMVP候选添加到存储于存储器中的HMVP候选的表格内(1008)。除经重构运动向量之外,视频编码器200可以将HMVP表格进一步更新为包括来自根据本公开的一个或多个实施例的、用于使用所选择的帧间预测译码模式对第一块进行编码的候选运动向量的列表的至少第二运动向量候选(例如,除被选择为运动向量预测器的至少一个运动向量候选之外的运动向量候选)(1010)。
图11是图示了根据本公开的(一个或多个)机制和/或(一个或多个)技术来操作的视频编码设备(例如,视频解码器300)的示例操作的流程图。出于解释的目的,以下将图10的流程图描述为由图1和图4中所讨论的视频解码器300及其组件执行。然而,应当理解,其它设备可以被配置为执行图11的流程图或类似方法。此外,结合图4描述的视频解码器300的操作仅仅是视频解码器300被配置为根据本公开执行的操作的子集。例如,视频解码器30被配置为从比特流解析和处理附加数据(例如,语法元素)并且执行贯穿本公开而描述的其它操作(例如,当前图片的预测以及基于POC的运动向量缩放)。
根据本公开的一个或多个技术,视频解码器300(例如,预测处理单元304及其组件,诸如运动补偿单元316)可以使用特定帧间预测译码模式来对视频数据的第一块进行解码。例如,如上文详细讨论的,视频解码器300可以例如利用AMVP模式作为帧间预测译码模式,或者可以(例如,基于显式的信令通知或者在没有显式的信令通知的情况下基于确定)来确定诸如合并模式、仿射帧间模式或仿射合并模式之类的另一帧间译码模式可能最适合于对第一块进行解码。
在帧间预测解码过程期间,视频解码器300(例如,预测处理单元304,并且在某些实现中,具体为运动补偿单元316)可以构造用于使用所选择的帧间预测译码模式来对第一块进行解码的候选运动向量的列表(1102)。视频解码器300可以从候选运动向量的列表之中标识(或选择)至少一个运动向量候选以用作运动向量预测器(1104),以用于生成用于对第一块进行解码的经重构运动向量(1106)。视频解码器300随后可以将经重构运动向量作为HMVP候选添加到存储于存储器中的HMVP候选的表格内(1108)。除经重构运动向量之外,视频解码器300可以将HMVP表格进一步更新为包括来自根据本公开的一个或多个实施例的、用于使用所选择的帧间预测译码模式对第一块进行解码的候选运动向量的列表的至少第二运动向量候选(例如,除被选择为运动向量预测器的至少一个运动向量候选之外的运动向量候选)(1110)。
应认识到,取决于示例,本文中所描述的技术中的任一个的某些动作或事件可以以不同序列来执行,可以被添加、合并或完全省去(例如,并非所有所描述的动作或事件对于技术的实践是必要的)。此外,在某些示例中,动作或事件可以例如通过多线程处理、中断处理或多个处理器来并发执行,而不是顺序执行。
在一个或多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合来实现。如果以软件实现,那么这些功能可以作为一个或多个指令或代码在计算机可读介质上被存储或发送,并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其与诸如数据存储介质之类的有形介质相对应;或者通信介质,包括例如根据通信协议而促进计算机程序从一处到另一处的传递的任何介质。以此方式,计算机可读介质通常可对应于(1)非暂态的有形计算机可读存储介质或(2)诸如信号或载波之类的通信介质。数据存储介质可以是能由一个或多个计算机或一个或多个处理器访问以检索用于实现本公开中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,此类计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、闪存、或者可被用于以指令或数据结构的形式存储所需程序代码并可由计算机访问的任何其它介质。同样,任何连接适当地被称为计算机可读介质。例如,如果使用同轴电缆、光缆、双绞线、数字订户线(DSL)、或者诸如红外、无线电、微波之类的无线技术来从网站、服务器或其他远程源发送指令,则同轴电缆、光缆、双绞线、DSL或诸如红外、无线电和微波之类的无线技术被包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂态介质,而是针对非暂态的、有形的存储介质。本文使用的磁盘和光盘包括紧凑盘(CD)、激光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光盘,其中磁盘通常以磁性方式再生数据,而光盘则用激光以光学方式再生数据。上述项的组合也应被包括在计算机可读介质的范围内。
指令可以由诸如以下各项的一个或多个处理器执行:一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它等效的集成或离散逻辑电路。相应地,如本文中所使用的术语“处理器”可以指前述结构中的任一个或适于实现本文中所描述的技术的任何其它结构。另外,在某些方面,本文中所描述的功能性可以在被配置用于编码和解码的专用硬件和/或软件模块内被提供,或被并入组合编解码器中。同样,该技术可以以一个或多个电路或逻辑元件中来完全实现。
本公开的技术可以被实现于各种设备或装置中,包括无线手持设备、集成电路(IC)或IC集(例如,芯片集)。在本公开中描述各种组件、模块或单元以强调被配置为执行所公开技术的设备的功能方面,但不必需要由不同硬件单元实现。更确切地,如上所述,各种单元可以被组合在编解码器硬件单元中或者由包括如上所述的一个或多个处理器的互操作硬件单元的集合结合适当的软件和/或固件来提供。
各种示例已被描述。这些示例和其他示例在所附权利要求的范围之内。

Claims (30)

1.一种对视频数据进行译码的方法,所述方法包括:
使用帧间预测译码模式对视频数据的第一块进行译码,其中使用所述帧间预测译码模式对所述第一块进行译码包括:
构造用于使用所述帧间预测译码模式对所述第一块进行译码的候选运动向量的列表,
从所述候选运动向量的列表之中标识至少一个运动向量预测器,以及
基于所述至少一个运动向量预测器来生成经重构运动向量;
将所述经重构运动向量添加到基于历史的运动向量预测(HMVP)候选列表;以及
将与所述候选运动向量的列表的构造相关联的第二运动向量添加到所述HMVP候选列表。
2.如权利要求1所述的方法,还包括:
基于所述HMVP候选列表构造用于对第二块进行译码的候选运动向量的第二列表;以及
基于从所述候选运动向量的第二列表之中标识的运动向量来对所述第二块进行译码。
3.如权利要求2所述的方法,还包括使用高级运动向量预测(AMVP)模式、合并模式、仿射帧间模式或仿射合并模式中的至少一个来对所述第一块或所述第二块中的至少一个进行帧间预测译码。
4.如权利要求2所述的方法,其中基于从所述候选运动向量的第二列表之中标识的运动向量来对所述第二块进行译码包括基于从所述候选运动向量的第二列表之中标识的运动向量来导出运动向量预测器。
5.如权利要求1所述的方法,还包括导出所述第二运动向量,其中导出所述第二运动向量包括以下操作中的至少一个:
从所述候选运动向量的列表之中标识所述第二运动向量;或者
从与所述第一块的空间相邻块或者所述第一块的时间相邻块中的至少一个相关联的运动信息导出所述第二运动向量。
6.如权利要求5所述的方法,还包括不从在所述第一块的译码期间导出的人工候选或者零运动向量导出至少所述第二运动向量。
7.如权利要求1所述的方法,还包括将所述第二运动向量作为新HMVP候选添加为存储所述HMVP候选列表的缓冲器的最后条目。
8.如权利要求7所述的方法,其中所述缓冲器是先进先出(FIFO)缓冲器或约束FIFO缓冲器中的至少一个。
9.一种用于对视频数据进行编码或解码的译码设备,所述译码设备包括:
被配置为存储所述视频数据的图片的缓冲器存储器;以及
与所述缓冲器存储器通信的至少一个处理器,所述至少一个处理器以电路实现并且被配置为:
构造用于使用帧间预测译码模式对第一块进行译码的候选运动向量的列表;
从所述候选运动向量的列表之中标识至少一个运动向量预测器;
基于所述至少一个运动向量预测器来生成经重构运动向量;
将所述经重构运动向量添加到基于历史的运动向量预测(HMVP)候选列表;以及
将与所述候选运动向量的列表的构造相关联的第二运动向量添加到所述HMVP候选列表。
10.如权利要求9所述的译码设备,其中所述至少一个处理器还被配置为:
基于所述HMVP候选列表构造用于对第二块进行译码的候选运动向量的第二列表;以及
基于从所述候选运动向量的第二列表之中标识的运动向量来对所述第二块进行译码。
11.如权利要求10所述的译码设备,其中所述至少一个处理器还被配置为使用高级运动向量预测(AMVP)模式、合并模式、仿射帧间模式或仿射合并模式中的至少一个来对所述第一块或所述第二块中的至少一个进行帧间预测译码。
12.如权利要求10所述的译码设备,其中所述至少一个处理器还被配置为基于从所述候选运动向量的第二列表之中标识的运动向量来导出运动向量预测器。
13.如权利要求10所述的译码设备,其中所述至少一个处理器还被配置为:
从所述候选运动向量的列表之中标识所述第二运动向量;或者
从与所述第一块的空间相邻块或者所述第一块的时间相邻块中的至少一个相关联的运动信息导出所述第二运动向量。
14.如权利要求13所述的译码设备,其中所述至少一个处理器还被配置为不从在所述第一块的译码期间导出的人工候选或者零运动向量导出至少所述第二运动向量。
15.如权利要求13所述的译码设备,其中所述至少一个处理器还被配置为将所述第二运动向量作为新HMVP候选添加为存储所述HMVP候选列表的缓冲器的最后条目。
16.如权利要求15所述的译码设备,其中所述缓冲器是先进先出(FIFO)缓冲器或约束FIFO缓冲器中的至少一个。
17.一种存储指令的计算机可读存储介质,所述指令在被执行时,使得被配置为对视频数据进行译码的至少一个处理器:
构造用于使用帧间预测译码模式对第一块进行译码的候选运动向量的列表;
从所述候选运动向量的列表之中标识至少一个运动向量预测器;
基于所述至少一个运动向量预测器来生成经重构运动向量;
将所述经重构运动向量添加到基于历史的运动向量预测(HMVP)候选列表;以及
将与所述候选运动向量的列表的构造相关联的第二运动向量添加到所述HMVP候选列表。
18.如权利要求17所述的计算机可读存储介质,还存储指令,所述指令在被执行时,使得被配置为对所述视频数据进行译码的所述至少一个处理器:
基于所述HMVP候选列表构造用于对第二块进行译码的候选运动向量的第二列表;以及
基于从所述候选运动向量的第二列表之中标识的运动向量来对所述第二块进行译码。
19.如权利要求18所述的计算机可读存储介质,还存储指令,所述指令在被执行时,使得被配置为对所述视频数据进行译码的所述至少一个处理器:使用高级运动向量预测(AMVP)模式、合并模式、仿射帧间模式或仿射合并模式中的至少一个来对所述第一块或所述第二块中的至少一个进行帧间预测译码。
20.如权利要求18所述的计算机可读存储介质,还存储指令,所述指令在被执行时,使得被配置为对所述视频数据进行译码的所述至少一个处理器:基于从所述候选运动向量的第二列表之中标识的运动向量来导出运动向量预测器。
21.如权利要求17所述的计算机可读存储介质,还存储指令,所述指令在被执行时,使得被配置为对所述视频数据进行译码的所述至少一个处理器:
从所述候选运动向量的列表之中标识所述第二运动向量;或者
从与所述第一块的空间相邻块或者所述第一块的时间相邻块中的至少一个相关联的运动信息导出所述第二运动向量。
22.如权利要求21所述的计算机可读存储介质,还存储指令,所述指令在被执行时,使得被配置为对所述视频数据进行译码的所述至少一个处理器:不从在所述第一块的译码期间导出的人工候选或者零运动向量导出至少所述第二运动向量。
23.如权利要求17所述的计算机可读存储介质,还存储指令,所述指令在被执行时,使得被配置为对所述视频数据进行译码的所述至少一个处理器:将所述第二运动向量作为新HMVP候选添加为存储所述HMVP候选列表的缓冲器的最后条目。
24.一种被配置为对视频数据进行编码或解码的装置,所述装置包括:
用于构造用于使用帧间预测译码模式对第一块进行译码的候选运动向量的列表的部件;
用于从所述候选运动向量的列表之中标识至少一个运动向量预测器的部件;
用于基于所述至少一个运动向量预测器来生成经重构运动向量的部件;
用于将所述经重构运动向量添加到基于历史的运动向量预测(HMVP)候选列表的部件;以及
用于将与所述候选运动向量的列表的构造相关联的第二运动向量添加到所述HMVP候选列表的部件。
25.如权利要求24所述的装置,还包括:
用于基于所述HMVP候选列表构造用于对第二块进行译码的候选运动向量的第二列表的部件;以及
用于基于从所述候选运动向量的第二列表之中标识的运动向量来对所述第二块进行译码的部件。
26.如权利要求25所述的装置,还包括用于使用高级运动向量预测(AMVP)模式、合并模式、仿射帧间模式或仿射合并模式中的至少一个来对所述第一块或所述第二块中的至少一个进行帧间预测译码的部件。
27.如权利要求25所述的装置,还包括用于基于从所述候选运动向量的第二列表之中标识的运动向量来导出运动向量预测器的部件。
28.如权利要求24所述的装置,还包括:用于从所述候选运动向量的列表之中标识所述第二运动向量的部件,或者用于从与所述第一块的空间相邻块或者所述第一块的时间相邻块中的至少一个相关联的运动信息导出所述第二运动向量的部件。
29.如权利要求28所述的装置,还包括用于不从在所述第一块的译码期间导出的人工候选或者零运动向量导出至少所述第二运动向量的部件。
30.如权利要求24所述的装置,还包括用于将所述第二运动向量作为新HMVP候选添加为存储所述HMVP候选列表的缓冲器的最后条目的部件。
CN201980064147.8A 2018-10-05 2019-10-03 用于帧间预测译码的基于历史的运动向量预测 Pending CN112806012A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862742115P 2018-10-05 2018-10-05
US62/742,115 2018-10-05
US16/591,417 US20200112715A1 (en) 2018-10-05 2019-10-02 History-based motion vector prediction for inter prediction coding
US16/591,417 2019-10-02
PCT/US2019/054440 WO2020072743A1 (en) 2018-10-05 2019-10-03 History-based motion vector prediction for inter prediction coding

Publications (1)

Publication Number Publication Date
CN112806012A true CN112806012A (zh) 2021-05-14

Family

ID=70051789

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980064147.8A Pending CN112806012A (zh) 2018-10-05 2019-10-03 用于帧间预测译码的基于历史的运动向量预测

Country Status (4)

Country Link
US (1) US20200112715A1 (zh)
EP (1) EP3861745A1 (zh)
CN (1) CN112806012A (zh)
WO (1) WO2020072743A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023217140A1 (en) * 2022-05-09 2023-11-16 Mediatek Inc. Threshold of similarity for candidate list

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI719525B (zh) 2018-06-29 2021-02-21 大陸商北京字節跳動網絡技術有限公司 Lut與amvp之間的交互
TWI744662B (zh) * 2018-06-29 2021-11-01 大陸商北京字節跳動網絡技術有限公司 更新查閱資料表(lut)的條件
TWI719523B (zh) 2018-06-29 2021-02-21 大陸商北京字節跳動網絡技術有限公司 哪個查找表需要更新或不更新
EP3791588A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Checking order of motion candidates in lut
TWI752331B (zh) 2018-06-29 2022-01-11 大陸商北京字節跳動網絡技術有限公司 當向Merge/AMVP添加HMVP候選時的部分/完全修剪
WO2020003279A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
JP7256265B2 (ja) 2018-06-29 2023-04-11 北京字節跳動網絡技術有限公司 ルックアップテーブルの更新:fifo、制限されたfifo
TWI728390B (zh) 2018-06-29 2021-05-21 大陸商北京字節跳動網絡技術有限公司 查找表尺寸
KR20240008952A (ko) 2018-07-02 2024-01-19 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 인트라 예측 모드들을 갖는 lut들 및 비인접 블록들로부터의 인트라 모드 예측
CN111064961B (zh) 2018-09-12 2023-06-09 北京字节跳动网络技术有限公司 视频处理方法和装置
WO2020084556A1 (en) 2018-10-24 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Sub-block motion candidate list in video coding
CN113170182B (zh) 2018-12-03 2024-01-26 北京字节跳动网络技术有限公司 不同预测模式下的修剪方法
WO2020133518A1 (zh) 2018-12-29 2020-07-02 深圳市大疆创新科技有限公司 视频处理方法和设备
CN112042191B (zh) * 2019-01-01 2024-03-19 Lg电子株式会社 以基于历史的运动矢量为基础预测处理视频信号的方法和设备
KR20210093350A (ko) * 2019-01-05 2021-07-27 엘지전자 주식회사 비디오 데이터를 처리하기 위한 방법 및 장치
CN113273186A (zh) 2019-01-10 2021-08-17 北京字节跳动网络技术有限公司 Lut更新的调用
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
WO2020147773A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Inserting order of motion candidates in lut
US20220103854A1 (en) * 2019-01-31 2022-03-31 Mediatek Inc. Method and Apparatus of Combined Inter and Intra Prediction for Video Coding
CN112889290A (zh) * 2019-03-04 2021-06-01 华为技术有限公司 编码器、解码器和使用ibc合并列表的对应方法
KR20210132057A (ko) * 2019-03-11 2021-11-03 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법
US10979716B2 (en) * 2019-03-15 2021-04-13 Tencent America LLC Methods of accessing affine history-based motion vector predictor buffer
WO2020192611A1 (en) * 2019-03-22 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools
US20220166998A1 (en) * 2019-06-20 2022-05-26 Electronics And Telecommunications Research Institute Video encoding/decoding method and device, and bitstream storage medium
CN117528069A (zh) * 2020-05-22 2024-02-06 腾讯科技(深圳)有限公司 位移矢量预测方法、装置及设备
WO2024051725A1 (en) * 2022-09-06 2024-03-14 Mediatek Inc. Method and apparatus for video coding

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103430540A (zh) * 2011-03-08 2013-12-04 高通股份有限公司 在视频译码中用于双向预测帧间模式的运动向量预测符(mvp)
CN106797477A (zh) * 2014-10-14 2017-05-31 高通股份有限公司 用于帧内bc和帧间预测统一的amvp和合并候选者列表导出

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103430540A (zh) * 2011-03-08 2013-12-04 高通股份有限公司 在视频译码中用于双向预测帧间模式的运动向量预测符(mvp)
CN106797477A (zh) * 2014-10-14 2017-05-31 高通股份有限公司 用于帧内bc和帧间预测统一的amvp和合并候选者列表导出

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
XU, WEIWEI ET AL.: "CE4-related: CTU-level Initialization of History-based Motion Vector Prediction", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 12TH MEETING: MACAO, CN, 3–12 OCT. 2018, JVET-L0575, pages 1 - 6 *
ZHANG, LI ET AL.: "CE4-related: History-based Motion Vector Prediction", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 11TH MEETING: LJUBLJANA, SI, 10–18 JULY 2018,JVET-K0104, pages 1 - 5 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023217140A1 (en) * 2022-05-09 2023-11-16 Mediatek Inc. Threshold of similarity for candidate list

Also Published As

Publication number Publication date
WO2020072743A1 (en) 2020-04-09
US20200112715A1 (en) 2020-04-09
EP3861745A1 (en) 2021-08-11

Similar Documents

Publication Publication Date Title
US11616974B2 (en) Simplification of history-based motion vector prediction
US11212550B2 (en) History-based motion vector prediction for affine mode
US11350109B2 (en) Combination of inter-prediction and intra-prediction in video coding
CN112369031B (zh) 对于视频编译码的波前处理的基于多个历史的非毗邻mvp
US20200112715A1 (en) History-based motion vector prediction for inter prediction coding
CN113196749B (zh) 用于译码视频数据的方法和设备
JP7379391B2 (ja) シグナリングサブ予測ユニット動きベクトル予測子
CN112740672A (zh) 具有自适应方向信息集合的最终运动矢量表达
US11122288B2 (en) Spatio-temporal motion vector prediction patterns for video coding
US10958928B2 (en) Decoder-side motion vector derivation for video coding
US11064192B2 (en) Simplification of spatial-temporal motion vector prediction
CN113383552A (zh) 用于视频译码中的帧内块复制模式的运动向量预测值列表生成
US11051035B2 (en) Processing of illegal motion vectors for intra block copy mode in video coding
CN114009039A (zh) 视频译码中的时间运动矢量预测候选的推导
US11528504B2 (en) Motion vector prediction with motion information collecting buffer
JP7474774B2 (ja) ビデオコーディングにおけるイントラブロックコピーモードのための動きベクトル予測子リスト生成

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