CN110741641B - 用于视频压缩的方法和装置 - Google Patents

用于视频压缩的方法和装置 Download PDF

Info

Publication number
CN110741641B
CN110741641B CN201880036784.XA CN201880036784A CN110741641B CN 110741641 B CN110741641 B CN 110741641B CN 201880036784 A CN201880036784 A CN 201880036784A CN 110741641 B CN110741641 B CN 110741641B
Authority
CN
China
Prior art keywords
block
motion vector
motion
current block
warped
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
CN201880036784.XA
Other languages
English (en)
Other versions
CN110741641A (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.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN110741641A publication Critical patent/CN110741641A/zh
Application granted granted Critical
Publication of CN110741641B publication Critical patent/CN110741641B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/543Motion estimation other than block-based using regions
    • 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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/182Methods 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 a pixel

Abstract

生成可以用于对用于预测当前块的运动矢量进行编码或解码的运动矢量候选列表。确定源块的运动模式和运动信息。响应于确定源块的运动模式是平移运动模式并且源块的参考帧与当前块的参考帧相匹配,将用于预测源块的运动矢量添加到列表。响应于确定源块的运动模式是翘曲运动模式并且源块的参考帧与当前块的参考帧相匹配,代替地将翘曲参考运动矢量添加到列表。从列表选择参考运动矢量以对当前块运动矢量进行编码或解码。

Description

用于视频压缩的方法和装置
技术领域
本申请大体涉及用于视频压缩的方法和装置。
背景技术
数字视频流可以使用一系列帧或静止图像来表示视频。数字视频可以用于各种应用,包括例如视频会议、高清视频娱乐、视频广告或用户生成的视频的共享。数字视频流可以包含大量数据并且消耗计算设备的大量计算或通信资源以用于视频数据的处理、传送或存储。已经提出了各种方法来减少视频流中的数据量,包括压缩和其他编码技术。
一种用于压缩的技术使用参考帧来生成与要被编码的当前块相对应的预测块。可以对预测块与当前块之间的差而不是对当前块本身的值进行编码,以减少所编码的数据量。
发明内容
本公开总体上涉及对视频数据进行编码和解码,并且更具体地涉及生成用于视频压缩的翘曲参考运动矢量。
本公开描述了编码和解码方法和装置。根据本公开的实施方式的方法包括:确定当前块的参考帧;以及针对每个源块,确定源块的运动模式和参考帧;响应于确定源块的运动模式是平移运动模式并且源块的参考帧与当前块的参考帧相匹配,将用于预测源块的运动矢量添加到参考运动矢量候选列表;以及响应于确定源块的运动模式是翘曲运动模式并且源块的参考帧与当前块的参考帧相匹配,为当前块生成翘曲参考运动矢量;以及将翘曲参考运动矢量添加到参考运动矢量候选列表。该方法还包括:使用来自参考运动矢量候选列表的参考运动矢量来对用于预测当前块的运动矢量进行编码或解码。
根据本公开的实施方式的装置包括非暂时性存储介质或存储器和处理器。该介质包括可由处理器执行的指令以执行方法,该方法包括:确定当前块的参考帧;以及针对当前块的一个或多个源块,确定源块的运动模式和参考帧;响应于确定源块的运动模式是平移运动模式并且源块的参考帧与当前块的参考帧相匹配,将用于预测源块的运动矢量添加到参考运动矢量候选列表;以及响应于确定源块的运动模式是翘曲运动模式并且源块的参考帧与当前块的参考帧相匹配,为当前块生成翘曲参考运动矢量;以及将翘曲参考运动矢量添加到参考运动矢量候选列表。该方法还包括:使用参考运动矢量候选列表中的参考运动矢量来对用于预测当前块的运动矢量进行编码或解码。
根据本公开的实施方式的另一装置也包括非暂时性存储介质或存储器和处理器。该介质包括可由处理器执行的指令以执行方法,该方法包括确定参考帧以用于对当前块进行编码。该方法还包括:针对与当前块相邻的先前代码化块,确定先前代码化块的运动模式,运动模式包括平移运动模式和翘曲运动模式中的一个;确定用于对先前代码化块进行编码的参考帧;将先前代码化块的运动模式与翘曲运动模式进行比较以获得第一比较结果;将用于对当前块进行编码的参考帧与用于对先前代码化块进行编码的参考帧进行比较以获得第二比较结果;以及响应于第一比较结果指示先前代码化块的运动模式是翘曲运动模式并且第二比较结果指示用于对当前块进行编码的参考帧是用于对先前代码化块进行编码的参考帧,通过将用于预测先前代码化块的翘曲运动模型应用于当前块的像素来计算当前帧的翘曲参考运动矢量;以及将翘曲参考运动矢量添加到参考运动矢量候选列表。该方法还包括:使用来自参考运动矢量候选列表的参考运动矢量来对用于预测当前块的运动矢量进行编码或解码。
在以下对实施例、所附权利要求和附图的详细描述中公开了本公开的这些和其他方面。
附图说明
本文的描述参照了下面描述的附图,其中,除非另有说明,否则贯穿若干视图,相同的附图标记指代相同的部分。
图1是视频编码和解码系统的示意图。
图2是可以实现发送站或接收站的计算设备的示例的框图。
图3是要被编码并随后被解码的典型视频流的图。
图4是根据本公开的实施方式的编码器的框图。
图5是根据本公开的实施方式的解码器的框图。
图6是用于生成翘曲参考运动矢量的过程的流程图。
图7是图示了图6的过程的图。
具体实施方式
可以通过多种技术来压缩视频流以减少传送或存储视频流所需的带宽。可以将视频流编码为涉及压缩的然后被传送到解码器的比特流,该解码器可以对视频流进行解码或解压缩以使视频流为查看或进一步处理做准备。视频流的压缩通常通过空间和/或运动补偿预测来利用视频信号的空间和时间相关性。运动补偿预测也可以称为帧间预测。帧间预测使用一个或多个运动矢量来生成类似于要使用先前编码和解码的像素进行编码的当前块的块(也称为预测块)。通过对运动矢量和两个块之间的差进行编码,接收编码信号的解码器可以重新创建当前块。
在帧间预测过程中用于生成预测块的每个运动矢量指的是除了当前帧之外的帧,即参考帧。参考帧在视频流序列中可以位于当前帧之前或之后并且可以是在被用作参考帧之前重构的帧。如本文所使用的,前向参考帧是用于相对于序列的前向预测的帧,而后向参考帧是用于相对于序列的后向预测的帧。一个或多个前向和/或后向参考帧可以用于对块进行编码或解码。当用于对当前帧内的块进行编码或解码时,可以基于所得的信噪比或对率失真的其他测量来测量参考帧的效能。
可以将运动补偿预测中的块的运动矢量写入占总比特率的很大一部分的编码比特流中。为了降低对运动矢量进行代码化的率成本,可以差分地对运动矢量进行代码化。即,选择运动矢量作为参考运动矢量,并且仅将运动矢量与参考运动矢量之间的差(在本文中也称为运动矢量差)代码化到比特流中。例如,参考运动矢量可以是邻近块中的一个的运动矢量。块的准确的参考运动矢量提高了代码化效率。
可能存在多于一种帧间预测模式。例如,一种可用的帧间预测模式表示块的运动矢量为0。因此,不存在对运动矢量进行编码的率成本。这在本文中被称为ZEROMV模式。另一帧间预测模式可以表示块的运动矢量是参考运动矢量。在这种情况下,也不存在对运动矢量进行编码的率成本。这在本文中被称为REFMV模式。当块的运动矢量不为零并且不同于参考运动矢量时,可以使用参考运动矢量来对运动矢量进行编码。在这种模式下,对运动矢量差进行编码会生成率成本。在本文中将此模式称为NEWMV模式。
一种用于查找当前帧中的当前块的参考运动矢量的过程包括:从当前块的邻近或相邻块(例如,以扫描顺序)以及在前一帧中当前块的并置块(collocated block)中收集运动矢量,并且将它们存储在运动矢量候选列表中。邻近或相邻块以及并置块在本文中可以称为源块或参考块。可以将任何数量的排名算法应用于列表以对运动矢量候选进行排名,并且可以基于所得排名为当前块选择参考运动矢量。例如,可以选择具有最高排名分数的运动矢量候选作为当前块的参考运动矢量。在一些情况下,如果运动矢量候选是当前块的周围区域中的主导运动矢量,这意指运动矢量候选可以更好地表示局部运动场,则该运动矢量候选可以被排名更高。主导运动矢量可以是与其他运动矢量相比被更多的源块或源块的更多像素使用的一个运动矢量。源块的大小可以用于对运动矢量进行加权以进行排名。源块越大,其运动矢量越主导。
如果参考运动矢量接近当前块的运动矢量(例如,从运动搜索确定的运动矢量),则可以选择REFMV模式,使得直接使用参考运动矢量而不生成任何运动矢量率成本。可以通过计算诸如率失真误差的误差来确定参考运动矢量是否与当前块的运动矢量足够接近以代替所确定的运动矢量被使用。在一些实施方式中,如果所计算的使用参考运动矢量对当前块进行编码的率失真误差不大于所计算的使用当前块的运动矢量对当前块进行编码的率失真误差,则认为参考运动矢量与当前块的运动矢量足够接近。例如,如果REFMV模式导致比任何其他模式小的率失真误差,则选择REFMV模式,使得不产生运动矢量率成本。
如果相反,参考运动矢量没有为当前块生成良好的预测(即,参考运动矢量不接近当前块的运动矢量),那么NEWMV模式可能具有较低的率失真误差并且被选择。可以通过使用参考运动矢量计算运动矢量差来对新的运动矢量进行编码。然后,在编码比特流中将运动矢量差传送到解码器。即使在参考运动矢量与当前块的运动矢量不足够接近以代替当前块被使用的情况下,相对准确的参考运动矢量也可以降低传送运动矢量差所需的比特率。
并非所有跨图像(因此在视频帧之间)的运动都是平移的。因此,平移运动模式不能够精确描述更复杂的运动,诸如旋转、缩放、剪切等。为了克服该缺陷,已经开发了各种翘曲运动模型以实现翘曲运动模式。翘曲运动模型的一个示例是描述块间运动的仿射变换。在美国专利No.9,438,910中存在一种产生仿射变换的技术,并且其他技术也是可能的。美国专利No.9,438,910通过引用全部并入本文。
针对块,可以基于哪种模式导致最低的率失真误差来决定是使用平移运动模式还是翘曲运动模式,其中,每种模式的率失真误差表示以与运动矢量代码化模式如何被比较类似的方式,与从使用该模式的压缩所得的失真成本相比较的使用该模式对块进行编码的率成本。例如,如果使用翘曲运动模式对块进行编码,那么由翘曲运动模式定义的参数用于生成翘曲预测块。当翘曲运动模式是仿射变换时,那么仿射参数集被计算并且被用于生成翘曲预测块。针对具有翘曲运动模式的块,在一些实施方式中,可以假定该块的运动矢量是其中心点的运动矢量。
当块的运动为非平移运动时,即,使用翘曲参考模式对块进行预测时,块的运动矢量可能与块的源运动矢量的那些运动矢量不同。由于参考运动矢量是这些运动矢量中的一个,所以参考运动矢量也可能与块的运动矢量不同。差往往相对较大,所以在这种情况下,编码器通常选择NEWMV模式来对块的运动矢量进行编码。如上所述,NEWMV模式是对运动矢量进行编码的最昂贵的技术。
因此,期望为块生成更准确的参考运动矢量。这降低了对运动矢量进行编码的比特率成本。首先参照在其中可以实现本文的教导的系统来描述生成根据翘曲运动源块的参考运动矢量——在本文中也称为翘曲参考运动矢量——的细节。
图1是视频编码和解码系统100的示意图。例如,发送站102可以是具有诸如图2所描述的硬件的内部配置的计算机。然而,发发送站102的其他合适的实施方式是可能的。例如,发送站102的处理可以分布在多个设备之间。
网络104可以连接发送站102和接收站106,以对视频流进行编码和解码。具体地,可以在发送站102中对视频流进行编码,并且可以在接收站106中对编码的视频流进行解码。网络104可以是例如互联网。在该示例中,网络104还可以是局域网(LAN)、广域网(WAN)、虚拟专用网(VPN)、蜂窝电话网络或将视频流从发送站102传输到接收站106的任何其他方式。
在一个示例中,接收站106可以是具有诸如图2所描述的硬件的内部配置的计算机。然而,接收站106的其他合适的实施方式是可能的。例如,接收站106的处理可以分布在多个设备之间。
视频编码和解码系统100的其他实施方式是可能的。例如,一个实施方式可以省略网络104。在另一实施方式中,视频流可以被编码然后被存储以在以后的时间传送到接收站106或具有非暂时性存储介质或存储器的任何其他设备。在一个实施方式中,接收站106(例如,经由网络104、计算机总线和/或某种通信路径)接收编码的视频流,并且存储该视频流以用于以后的解码。在示例实施方式中,实时传输协议(RTP)用于通过网络104传送编码视频。在另一实施方式中,可以使用除了RTP之外的传输协议,例如基于超文本传输协议(HTTP)的视频流协议。
例如,当在视频会议系统中使用时,发送站102和/或接收站106可以包括如下所述的对视频流进行编码和解码的能力。例如,接收站106可以是视频会议参与者,其从视频会议服务器(例如,发送站102)接收编码的视频比特流以解码和查看并且进一步编码并将其自身的视频比特流传送给视频会议服务器以供其他参与者解码和查看。
图2是可以实现发送站或接收站的计算设备200的示例的框图。例如,计算设备200可以实现图1的发送站102和接收站106中的一个或两个。计算设备200可以是包括多个计算设备的计算系统的形式或者是一个计算设备的形式,例如移动电话、平板计算机、膝上型计算机、笔记本计算机、台式计算机等。
计算设备200中的CPU 202可以是中央处理单元。替代地,CPU 202可以是能够操纵或处理现有的或此后开发的信息的任何其他类型的设备或多个设备。尽管所公开的实施方式可以用例如是CPU 202的所示的一个处理器来实践,但是可以使用多于一个处理器来实现速度和效率上的优势。
在实施方式中,计算设备200中的存储器204可以是只读存储器(ROM)设备或随机存取存储器(RAM)设备。任何其他合适类型的存储设备或非暂时性存储介质可以用作存储器204。存储器204可以包括由CPU 202使用总线212访问的代码和数据206。存储器204可以进一步包括操作系统208和应用程序210,应用程序210包括至少一个程序,该程序允许CPU202执行此处描述的方法。例如,应用程序210可以包括应用1至N,应用程序210进一步包括执行此处描述的方法的视频代码化应用。计算设备200还可以包括辅存储214,辅存储214可以是例如与移动计算设备一起使用的存储卡。由于视频通信会话可能包含大量信息,所以它们可以全部或部分地存储在辅存储214中并且根据需要加载到存储器204中以用于处理。
计算设备200还可以包括一个或多个输出设备,诸如显示器218。在一个示例中,显示器218可以是将显示器与可操作以感测触摸输入的触敏元件组合的触敏显示器。显示器218可以经由总线212耦合至CPU 202。除了显示器218之外或作为显示器218的替代,可以提供允许用户编程或以其他方式使用计算设备200的其他输出设备。当输出设备是显示器或包括显示器时,可以以各种方式实现显示器,包括通过液晶显示器(LCD)、阴极射线管(CRT)显示器或发光二极管(LED)显示器,诸如有机LED(OLED)显示器。
计算设备200还可以包括图像感测设备220或者与图像感测设备220通信,图像感测设备220例如是相机或现有的或此后开发的可以感测诸如操作计算设备200的用户的图像的图像的任何其他图像感测设备220。图像感测设备220可以被定位为使得其朝向操作计算设备200的用户。在示例中,图像感测设备220的位置和光轴可以被配置为使得视场包括与显示器218直接相邻的并且显示器218从其中可见的区域。
计算设备200还可以包括声音感测设备222或与声音感测设备222通信,声音感测设备222例如是麦克风或现有的或此后开发的可以感测计算设备200附近的声音的任何其他声音感测设备。声音感测设备222可以被定位为使得其朝向操作计算设备200的用户并且可以被配置为接收用户在用户操作计算设备200时发出的声音,例如语音或其他话语。
尽管图2将计算设备200的CPU 202和存储器204描绘为被集成到一个单元中,但是可以使用其他配置。CPU 202的操作可以跨可以直接耦合或跨局域或其他网络耦合的多个机器(其中,单个机器可以具有处理器中的一个或多个)分布。存储器204可以跨多个机器分布,存储器204诸如基于网络的存储器或执行计算设备200的操作的多个机器中的存储器。尽管此处被描述为一个总线,但是计算设备200的总线212可以由多个总线组成。进一步地,辅存储214可以直接耦合至计算设备200的其他组件或者可以经由网络访问,并且可以包括诸如存储卡的集成单元或诸如多个存储卡的多个单元。因此,可以以多种配置来实现计算设备200。
图3是要被编码和随后被解码的视频流300的示例的图。视频流300包括视频序列302。在下一级别,视频序列302包括多个相邻帧304。尽管三个帧被描绘为相邻帧304,但是视频序列302可以包括任何数量的相邻帧304。然后可以将相邻帧304进一步细分为单独的帧,例如,帧306。在下一级别,帧306可以被分割为一系列平面或段308。例如,段308可以是允许并行处理的帧的子集。段308也可以是可以将视频数据分离成单独颜色的帧的子集。例如,彩色视频数据的帧306可以包括亮度平面和两个色度平面。可以以不同的分辨率对段308进行采样。
不管帧306是否被分割为段308,帧306都可以进一步细分为块310,块310可以包含对应于例如帧306中的16x16像素的数据。块310也可以被布置为包括来自像素数据的一个或多个段308的数据。块310还可以具有任何其他合适的大小,诸如4x4像素、8x8像素、16x8像素、8x16像素、16x16像素或更大。除非另有说明,否则术语块和宏块在本文中可互换使用。
图4是根据本公开的实施方式的编码器400的框图。如上所述,编码器400可以诸如通过提供存储在例如是存储器204的存储器中的计算机软件程序被实现在发送站102中。计算机软件程序可以包括机器指令,该机器指令在由诸如CPU 202的处理器执行时使发送站102以图4所描述的方式对视频数据进行编码。编码器400也可以被实现为例如包括在发送站102中的专用硬件。编码器400可以是硬件编码器。
编码器400具有以下阶段以执行在(由实线连接线示出的)正向路径中的各种功能来使用视频流300作为输入产生编码或压缩的比特流420:帧内/帧间预测阶段402、变换阶段404、量化阶段406和熵编码阶段408。编码器400还可以包括(由虚线连接线示出的)重构路径以重构帧以对未来的块进行编码。在图4中,编码器400具有以下阶段以在重构路径中执行各种功能:去量化阶段410、逆变换阶段412、重构阶段414和环路滤波阶段416。编码器400的其他结构变型可以用于对视频流300进行编码。
当呈现视频流300以进行编码时,可以以块为单位处理相应帧304,诸如帧306。在帧内/帧间预测阶段402中,可以使用帧内预测(也称为帧内预测)或帧间预测(也称为帧间预测)来对相应块进行编码。在任何情况下,可以形成预测块。在帧内预测的情况下,可以从当前帧中先前已被编码和重构的样本形成预测块。在帧间预测的情况下,可以从一个或多个先前构造的参考帧中的样本形成预测块。
接下来,仍然参照图4,可以在帧内/帧间预测阶段402从当前块中减去预测块以产生残差块(也称为残差)。变换阶段404使用基于块的变换在例如频域中将残差变换为变换系数。量化阶段406使用量化器值或量化级别将变换系数转换为离散的量值,其被称为量化的变换系数。例如,变换系数可以除以量化器值并且被截断。然后,量化的变换系数由熵编码阶段408进行熵编码。然后将熵编码的系数以及用于对块进行解码的其他信息一起输出到压缩比特流420,该其他信息例如可以包括所使用的预测类型、变换类型、运动矢量和量化器值。压缩比特流420可以使用各种技术来格式化,诸如,可变长度代码化(VLC)或算术代码化。压缩比特流420也可以被称为编码视频流或编码视频比特流,并且这些术语在本文中将可互换地使用。
图4中的(由虚线连接线示出的)重构路径可以用于确保编码器400和(下面描述的)解码器500使用相同的参考帧来解码压缩比特流420。重构路径执行与在解码过程期间发生的将在下面更详细讨论的功能类似的功能,包括在去量化阶段410处对量化的变换系数进行去量化以及在逆变换阶段412处对去量化的变换系数进行逆变换以产生导数残差块(也称为导数残差)。在重构阶段414中,可以将在帧内/帧间预测阶段402处预测的预测块添加到导数残差以创建重构块。可以将环路滤波阶段416应用于重构块以减少诸如块效应的失真。
编码器400的其他变型可以用于对压缩比特流420进行编码。例如,基于非变换的编码器可以直接量化残差信号,而无需针对某些块或帧的变换阶段404。在另一实施方式中,编码器可以具有在共同阶段中组合的量化阶段406和去量化阶段410。
图5是根据本公开的实施方式的解码器500的框图。例如,通过提供存储在存储器204中的计算机软件程序,解码器500可以在接收站106中被实现。计算机软件程序可以包括机器指令,该机器指令在由诸如CPU 202的处理器执行时使接收站106以本文描述的方式解码视频数据。解码器500也可以在例如包括在发送站102或接收站106中的硬件中实现。解码器500可以是硬件解码器。
类似于上面讨论的编码器400的重构路径,在一个示例中,解码器500包括以下阶段以执行各种功能以从压缩比特流420中产生输出视频流516:熵解码阶段502、去量化阶段504、逆变换阶段506、帧内/帧间预测阶段508、重构阶段510、环路滤波阶段512和后滤波阶段514。解码器500的其他结构变型可以用于解码压缩比特流420。
当呈现压缩比特流420以进行解码时,压缩比特流420内的数据元素可以由熵解码阶段502解码以产生量化的变换系数集。去量化阶段504对量化的变换系数进行去量化(例如,通过将量化的变换系数乘以量化器值),并且逆变换阶段506对去量化的变换系数进行逆变换以产生可以与由编码器400中的逆变换阶段412创建的导数残差相同的导数残差。使用从压缩比特流420解码的头信息,解码器500可以使用帧内/帧间预测阶段508来创建与在编码器400——例如在帧内/帧间预测阶段402——中创建的相同的预测块。在重构阶段510中,可以将预测块添加到导数残差以创建重构块。可以将环路滤波阶段512应用于重构块以减少块效应。
可以将其他滤波应用于重构块。在该示例中,后滤波阶段514可以是去块滤波器,该去块滤波器被应用于重构块以减少块失真,并且将结果作为输出视频流516输出。输出视频流516也可以称为解码视频流,并且这些术语在本文中将可互换地使用。解码器500的其他变型可以用于解码压缩比特流420。例如,解码器500可以在没有后滤波阶段514的情况下产生输出视频流516。
图6是用于为视频帧的块生成参考运动矢量的方法或过程600的流程图。过程600可以例如被实现为可以由诸如发送站102或接收站106的计算设备执行的软件程序。软件程序可以包括机器可读指令,该机器可读指令可以存储在诸如存储器204或辅存储214的存储器中,并且该机器可读指令在由诸如CPU 202的处理器执行时可以使计算设备执行过程600。过程600可以全部或部分地在编码器400的帧内/帧间预测阶段402和/或解码器500的帧内/帧间预测阶段508中实现。可以使用专用硬件或固件来实现过程600。可以使用多个处理器、存储器或两者。
在操作602中,过程600确定在本文中也称为当前块的块的参考帧。确定当前块的参考帧可以包括选择多个可用参考帧中的一个参考帧以预测当前块。在一些实施方式中,参考帧缓冲器可以存储多达限定数量的可用参考帧,诸如四个或八个参考帧。作为一个示例,参考帧缓冲器可以存储与视频序列中的当前帧之前的最后一帧相对应的LAST参考帧、与位于视频序列中的当前帧之前的帧内预测帧相对应的GOLDEN参考帧以及被指定为ALTREF_FRAME的替选或替代参考帧。替代参考帧可以是视频序列的帧,该帧按显示顺序远离当前帧但是早于其显示之前被编码或解码。例如,替代参考帧可以是按视频序列的显示顺序在当前帧之后十个、十二个或更多个(或更少个)帧的帧。另外的替代参考帧可以是按显示顺序位于更靠近当前帧处的帧。
替代参考帧可能不直接对应于序列中的帧。相反,可以使用应用了滤波、被组合在一起或者被组合在一起并且被滤波的一个或多个帧来生成替代参考帧。替代参考帧可能不被显示。相反,它可以是为仅用于预测而生成和传送的帧或帧的一部分(即,在显示解码序列时,它被省略)。
参考帧缓冲器可能能够存储附加的或更少的参考帧。例如,可用空间可以存储倒数第二帧(即,最后一帧之前的第一帧)和/或倒数第三帧(即,最后一帧之前二个帧的帧)作为附加的前向预测参考帧(例如,除了LAST和GOLDEN参考帧之外)。在一些示例中,后向帧可以被存储为附加的后向预测参考帧(例如,除了ALTREF_FRAME参考帧之外)。术语LAST、GOLDEN、ALTREF_FRAME等在本文中可以称为参考帧标识符。
在操作604中,选择源块以确定候选参考运动矢量。源块可以是当前块的先前编码的邻近块。当以光栅扫描顺序进行编码时,源块可以是当前块上方、左侧、上方并且左侧或者上方并且右侧的相邻块。当前块上方并且左侧的块也可以称为左上块,同时当前块上方并且右侧的块也可以称为右上块。例如,在图7中,示出了用于确定当前块A的候选参考运动矢量的源块B。
在操作606中,为所选择的源块确定运动模式和运动信息。运动模式可以是平移运动模式或翘曲运动模式。在本文的示例中,描述了实现仿射变换运动模型的翘曲运动模式。然而,本文的教导可以与任何翘曲运动模型一起使用。如果源块是帧内预测的,则过程600结束。源块的运动信息可以包括一个或多个运动矢量和相关联的一个或多个参考帧。即,如果所选择的源块是帧间预测的,则它具有一个或多个运动矢量,其中每个运动矢量指向相应的参考帧。针对该讨论,假定每个源块仅使用一个运动矢量以进行帧间预测,但这不是必需的。源块的每个运动矢量以及因此每个参考帧可以如本文所描述的进行处理。
在操作608中,进行关于在操作606中确定的源块的参考帧是否与在操作602中确定的当前块的参考帧相同的查询。
可以通过比较参考帧标识符来执行操作608中的参考帧的比较。例如,如果源块参考帧被指定为LAST参考帧,并且当前块参考帧被指定为LAST参考帧,那么参考帧可以被认为是匹配的。另一方面,针对每个帧更新参考帧缓冲器。出于这个原因,当考虑作为共置的块的源块时,对于前一帧,LAST、GOLDEN或ALTREF_FRAME参考帧中的至少一个可能不对应于与当前帧相同的帧。在这种情况下,标识符LAST、GOLDEN、ALTREF_FRAME可以以其他方式被比较。替代地,在操作608中,可以比较针对当前块和源块中的每一个被标识为LAST、GOLDEN、ALTREF_FRAME或其他参考帧的帧,以确定它们是否匹配。
如果响应于操作608中的查询参考帧不匹配,则过程600前进到操作616以确定是否需要考虑附加源块。相反,如果参考帧匹配,则过程600前进到操作610。
在操作610中,进行关于源块的运动模式是否是翘曲运动模式的查询。如果源块运动模式是平移运动模式,则过程600前进到操作612。在操作612中,在过程600前进到操作616之前,将源块的运动矢量添加到候选列表。
相反,如果操作610中对查询的响应指示源块运动模式是翘曲运动模式,则过程600前进到操作614,其中,计算翘曲参考运动矢量并且将其添加到候选列表。可以参照图7描述翘曲参考运动矢量的计算。
在计算翘曲参考运动矢量时,假定块的运动矢量等于块的中心点的运动矢量是有用的。在图7中,针对当前块A的中心点704计算翘曲参考运动矢量。中心点704可以或可以不对应于像素位置(例如,它可以是整个像素或子像素位置)。在该示例中,使用翘曲运动模式来预测源块B。翘曲运动模式的翘曲运动模型可以用于计算当前块A的中心点704的运动矢量。在该示例中,翘曲运动模型是仿射变换。因此,源块B的仿射参数可以用于计算中心点704的运动矢量。
可取地,可以选择中心点704附近的几个像素,并且计算它们的运动。表述“在中心点704附近”可以指的是在远离中心点704的阈值数量的像素(例如,1个像素、2个像素、3个像素等)内的像素。像素从中心点704均匀地被间隔开是有用的,但不是必需的。像素可以在中心点704的相对侧被间隔开。一旦计算了它们的运动,就可以通过插值来确定中心点运动矢量,从而确定翘曲参考运动矢量。
在图7中,选择两个像素706和708。像素706具有(x0,y0)的像素定位或位置,并且像素708具有(x1,y1)的像素定位或位置。它们相对于帧原点(0,0)的坐标为
x0=block_offset_x+w/2-1:
y0=block_offset_y+h/2-1;
x1=block_offset_x+w/2;以及
y1=block_offset_y+h/2。
在该确定中,(block_offset_x,block_offset_y)是分别由箭头700和702所示的当前块A的左上像素的坐标,w是当前块A的宽度,并且h是当前块A的高度。例如,在当前块大小为8x8并且忽略(block_offset_x,block_offset_y)的情况下,中心点位于(3.5,3.5),这不是完整像素位置。上述公式选择了到中心点具有相等距离的两个像素,使得可以通过简单地对这两个像素求平均来执行稍后阶段中的运动矢量插值(如下所述)。此处,例如,(x0,y0)=(8/2-1,8/2-1)并且(x1,y1)=(8/2,8/2),即(3,3)和(4,4)。这是简化的示例。通常,可以使用不同的点,并且可以在插值阶段期间相应地进行调整。
可以根据以下计算两个像素706和708中的每个的仿射投影:
x’i=a*xi+b*yi+c;以及
y’i=d*xi+e*yi+f
此处,(针对相应像素706和708)i=0和1,并且a、b、c、d、e和f是源块B的仿射参数。
然后,根据以下计算像素706和708中的每个的对应运动矢量:
{MV_xi,MV_yi}={x’i-xi,y’i-yi} (1)
其中,(针对相应像素706和708)i=0和1。
最后,可以根据以下通过双线性插值获得翘曲参考运动矢量:
warped_reference-MV={(MV_x0+MV_x1)/2,(MV_y0+MV_y1)/2}。
在操作614中,将warped_reference_MV添加到当前块A的候选运动矢量列表。
在中心点不对应于像素位置的情况下,这些操作是有用的。如果中心点确实对应于像素位置,则不需要插值。即,除了仅使用中心位置处的像素来执行等式之外,在中心点处对应的像素位置处的运动矢量使用上述等式,并且从等式(1)得到的运动矢量为被直接添加到候选运动矢量列表的warped_reference_MV。
再次参照图6,无论是在操作612中将源块的运动矢量直接添加到候选列表还是在操作614中将源块的翘曲参考运动矢量添加到候选列表,该过程都前进到操作616以查询是否存在更多要考虑的源块。如果存在更多要考虑的源块,则过程600返回到操作604,使得针对下一源块重复过程600。如果在操作616中响应于查询,不存在更多要考虑的源块,则过程600结束。针对在操作602中确定的参考帧,候选列表是完成的。
在过程600中考虑了所有源块之后,可以执行在操作602中确定的参考帧(在本文中也可以称为当前参考帧)中的当前块的运动搜索。可以针对可用参考帧中的一些或所有重复过程600,使得在操作602中确定的参考帧中的每个具有相应的参考运动矢量的候选列表。例如,过程600可以被执行为率失真环路的一部分以针对当前帧的块选择最佳预测模式。作为率失真环路的一部分,还可以考虑不同的帧内预测模式以及使用不同参考帧的预测。
在过程600针对当前块结束之后,无论是否处理了多个参考帧,参考帧的候选列表都可以如先前所讨论的那样被排名并且被用于将运动矢量代码化模式(例如,ZEROMV模式、NEWMV模式或REFMV模式)选择为导致最低的(例如,率失真)误差的运动矢量代码化模式中的无论哪个以用于对运动矢量进行代码化。
本文的教导可以用于具有参考相应参考帧的两个或多个运动矢量的复合预测模式以及上面详细描述的单个预测器。例如,在使用两个运动矢量对当前块进行编码的情况下,可以在从相应参考帧候选列表确定运动矢量代码化模式时使用不同的参考运动矢量。
解码器可以使用与编码器相同的过程来完成候选列表并且找到用于对当前块的运动矢量进行代码化的参考运动矢量。在解码器中,在操作602中确定块的参考帧可以包括:从块头、切片头、帧头或识别当前块的参考帧的这些头的任何组合中读取头信息。如先前针对用于对当前块进行编码的一个或多个参考帧所描述的那样执行过程600的其余操作。一旦候选列表完成,就可以将其用于如从头中读取的运动矢量代码化模式所指示的那样对运动矢量进行解码,该头诸如块头、切片头、帧头或这些头的任何组合。
在当前块的编码中,可以通过针对该块重复使用翘曲运动模型信息(例如,仿射参数)来实现计算资源和复杂性的减少。例如,当前块的仿射参数可以通过参数搜索获得或者基于附近块的运动矢量来估计。如果帧中的一个区域遵循仿射变换,则该区域内的两个块可以使用相同的仿射参数集。因此,如果源块(诸如,邻近块B)使用与当前块A相同的参考帧,则当前块A和源块B都使用翘曲运动模式,并且当前块A使用REFMV模式,可以将源块B的仿射参数指派给当前块A。这不会损害代码化效率,但是这种步骤可以通过不搜索或估计当前块A的仿射参数来使编码器和解码器加速。
当源块表现出翘曲运动时,与直接使用源块运动矢量相比,所提出的翘曲参考运动矢量策略可以为当前块提供更准确的参考运动矢量。如上面所提到的,在没有本教导的情况下,块很可能在这种情况下选择NEWMV模式。使用本文的教导,编码器表现出增加的对REFMV模式的使用。这表明本文的教导提供了更准确的参考运动矢量并且降低了比特率成本。针对具有相机运动的视频集,已证明了0.5%~1+%的比特率降低。
为了简化解释,将过程600描绘和描述为一系列步骤或操作。然而,根据本公开的步骤或操作可以以各种顺序和/或同时发生。另外,可以使用本文未提出和描述的其他步骤或操作。此外,可能不需要所有图示的步骤或操作来实现根据所公开的主题的方法。
上述的编码和解码的方面说明了编码和解码技术的一些示例。然而,要理解的是,如在权利要求中使用的那些术语,编码和解码可以意指对数据的压缩、解压缩、变换或任何其他处理或改变。
词语“示例”在本文中用来意指充当示例、实例或说明。本文作为“示例”描述的任何方面或设计不必解释为比其他方面或设计更优选或有利。相反,词语“示例”的使用旨在以具体方式呈现构思。如本申请中所使用的,术语“或”旨在意指包含性的“或”而不是排他性的“或”。即,除非另有说明或从上下文中显而易见,否则“X包括A或B”旨在意指自然的包含性排列中的任一个。即,如果X包括A;X包括B;或X包括A和B,那么在任何前述情况下均满足“X包括A或B”。另外,在本申请和所附权利要求中使用的冠词“一”和“一个”通常应被解释为意指“一个或多个”,除非另有说明或从上下文中显而易见地指向单数形式。而且,贯穿全文,除非如此描述,否则术语“实施方式”或者“一个实施方式”的使用并不旨在意指相同的实施例或实施方式。
发送站102和/或接收站106的实施方式(以及存储在其上和/或包括由编码器400和解码器500执行的由其执行的算法、方法、指令等)可以用硬件、软件或其任何组合来实现。硬件可以包括:例如,计算机、知识产权(IP)内核、专用集成电路(ASIC)、可编程逻辑阵列、光学处理器、可编程逻辑控制器、微代码、微控制器、服务器、微处理器、数字信号处理器或任何其他合适的电路。在权利要求中,术语“处理器”应被理解为单独地或组合地包含任何前述硬件中的任一个。术语“信号”和“数据”可互换使用。进一步地,发送站102和接收站106的部分不必一定要以相同的方式实现。
进一步地,在一个方面中,例如,可以使用具有计算机程序的通用计算机或通用处理器来实现发送站102或接收站106,该计算机程序在被执行时执行本文描述的相应方法、算法和/或指令中的任一个。另外或替代地,例如,可以使用包含用于执行本文描述的方法、算法或指令中的任一个的其他硬件的专用计算机/处理器。
发送站102和接收站106可以例如在视频会议系统中的计算机上实现。替代地,发送站102可以在服务器上实现,并且接收站106可以在与服务器分离的诸如手持通信设备的设备上实现。在这种情况下,发送站102可以使用编码器400将内容编码为编码视频信号,并且将编码视频信号传送到通信设备。继而,通信设备然后可以使用解码器500对编码视频信号进行解码。替代地,通信设备可以对本地存储在通信设备上的内容进行解码,该内容例如不是由发送站102传送的内容。其他合适的传送和接收实施方式方案是可用的。例如,接收站106可以是大体上固定的个人计算机而不是便携式通信设备,和/或包括编码器400的设备也可以包括解码器500。
进一步地,本公开的实施方式的全部或部分可以采取可从例如计算机可用或计算机可读介质访问的计算机程序产品的形式。计算机可用或计算机可读介质可以是例如可以有形地包含、存储、传递或传输程序以供任何处理器使用或与任何处理器结合使用的任何设备。介质可以是例如电子、磁性、光学、电磁或半导体设备。其他合适的介质也是可用的。
已经描述了上述实施例、实施方式和方面,以便允许容易地理解本公开并且不限制本公开。相反,本公开旨在覆盖包括在所附权利要求的范围内的各种修改和等效布置,该范围应被赋予最广泛的解释,以涵盖法律允许的所有这种修改和等效结构。

Claims (17)

1.一种用于视频压缩的方法,包括:
确定当前块的参考帧;
针对所述当前块的每个源块,其中所述源块包括以下中的一个或多个:与所述当前块相邻的先前编码块或者在前一帧中与所述当前块共置的并置块:
确定所述源块的运动模式和运动信息;
响应于确定所述源块的所述运动模式是平移运动模式并且所述源块的参考帧与所述当前块的所述参考帧相匹配:
识别用于预测所述源块的第一运动矢量;以及
将所述第一运动矢量添加到参考运动矢量候选列表;以及
响应于确定所述源块的所述运动模式是翘曲运动模式并且所述源块的所述参考帧与所述当前块的所述参考帧相匹配:
使用用于对所述源块进行编码的所述翘曲运动模式的参数,为所述当前块生成翘曲参考运动矢量;以及
将所述翘曲参考运动矢量添加到所述参考运动矢量候选列表;以及
使用来自所述参考运动矢量候选列表的参考运动矢量来对用于预测所述当前块的运动矢量进行编码或解码。
2.根据权利要求1所述的方法,其中,生成所述翘曲参考运动矢量包括:
选择从所述当前块的中心间隔开的像素;
使用用于对所述源块进行编码的所述翘曲运动模式的参数来确定所述像素中的每一个像素的运动矢量;以及
组合所述像素的所述运动矢量以生成所述翘曲参考运动矢量。
3.根据权利要求2所述的方法,其中,组合所述运动矢量包括:使用所述像素的所述运动矢量作为输入来执行插值。
4.根据权利要求3所述的方法,其中,所述插值是双线性插值。
5.根据权利要求2所述的方法,其中,所述翘曲运动模式实现非平移变换,并且所述翘曲运动模式的所述参数包括所述源块的非平移参数。
6.根据权利要求2所述的方法,其中,所述翘曲运动模式实现仿射变换,并且所述翘曲运动模式的所述参数包括所述源块的仿射参数。
7.根据权利要求2所述的方法,其中,所述像素包括距所述当前块的所述中心的阈值数量的像素内一个或多个像素。
8.根据权利要求2所述的方法,其中,所述像素包括与所述当前块的所述中心等距间隔开的两个像素。
9.根据权利要求1所述的方法,其中,所述翘曲运动模式实现非平移变换。
10.根据权利要求9所述的方法,其中,所述非平移变换是仿射变换。
11.一种用于视频压缩的装置,包括:
处理器;以及
存储计算机程序指令的非暂时性存储介质,所述计算机程序指令能够由所述处理器执行以执行方法,所述方法包括:
确定当前块的参考帧;
针对所述当前块的每个源块,其中所述当前块的源块包括以下中的一个或多个:与所述当前块相邻的先前编码块或者在前一帧中与所述当前块共置的并置块:
确定所述源块的运动模式和运动信息;
响应于确定所述源块的所述运动模式是平移运动模式并且所述源块的参考帧与所述当前块的所述参考帧相匹配:
识别用于预测所述源块的第一运动矢量;以及
将所述第一运动矢量添加到参考运动矢量候选列表;
响应于确定所述源块的所述运动模式是翘曲运动模式并且所述源块的所述参考帧与所述当前块的所述参考帧相匹配:
使用用于对所述源块进行编码的所述翘曲运动模式的参数,为所述当前块生成翘曲参考运动矢量;以及
将所述翘曲参考运动矢量添加到所述参考运动矢量候选列表;以及
使用来自所述参考运动矢量候选列表的参考运动矢量来对用于预测所述当前块的运动矢量进行编码或解码。
12.根据权利要求11所述的装置,其中:
确定所述当前块的所述参考帧包括:从编码比特流中读取所述参考帧的标识符。
13.根据权利要求11所述的装置,其中,所述翘曲运动模式实现仿射变换;以及为所述当前块生成所述翘曲参考运动矢量包括:
选择与所述当前块的中心等距间隔开的两个像素;
使用用于对所述源块进行编码的仿射参数来确定所述像素中的每一个像素的运动矢量;以及
使用双线性插值来组合所述运动矢量以生成所述翘曲参考运动矢量。
14.一种用于视频压缩的装置,包括:
处理器;以及
存储计算机程序指令的非暂时性存储介质,所述计算机程序指令能够由所述处理器执行以执行方法,所述方法包括:
确定用于对当前块进行代码化的参考帧;
针对与所述当前块相邻的先前代码化块:
确定所述先前代码化块的运动模式,运动模式包括平移运动模式和翘曲运动模式中的一个;
确定用于对所述先前代码化块进行编码的参考帧;
将所述先前代码化块的运动模式与所述翘曲运动模式进行比较以获得第一比较结果;
将用于对所述当前块进行代码化的参考帧与用于对所述先前代码化块进行编码的参考帧进行比较以获得第二比较结果;以及
响应于所述第一比较结果指示所述先前代码化块的运动模式是所述翘曲运动模式并且所述第二比较结果指示用于对所述当前块进行代码化的参考帧是用于对所述先前代码化块进行编码的参考帧:
通过将用于预测所述先前代码化块的翘曲运动模型应用于所述当前块的像素来计算所述当前帧的翘曲参考运动矢量;以及
将所述翘曲参考运动矢量添加到参考运动矢量候选列表
响应于所述第一比较结果指示所述先前代码化块的运动模式不同于所述翘曲运动模式并且所述第二比较结果指示用于对所述当前块进行编码的参考帧是用于对所述先前代码化块进行编码的参考帧,将用于预测所述先前代码化块的运动矢量添加到所述参考运动矢量候选列表;以及
使用来自所述参考运动矢量候选列表的参考运动矢量来对用于预测所述当前块的运动矢量进行编码或解码。
15.根据权利要求14所述的装置,其中,所述方法进一步包括:
响应于所述第二比较结果指示用于对所述当前块进行编码的参考帧不同于用于对所述先前代码化块进行编码的参考帧,从所述参考运动矢量候选列表省略用于预测所述先前代码化块的运动矢量。
16.根据权利要求14所述的装置,其中,所述翘曲运动模式包括仿射变换,所述第一比较结果指示所述先前代码化块的运动模式是所述翘曲运动模式,所述当前块的运动模式是所述翘曲运动模式,使用所述参考运动矢量包括:将所述参考运动矢量添加到从编码比特流中解码的运动矢量残差以生成所述运动矢量来预测所述当前块,并且所述先前代码化块的仿射参数被重复使用以预测所述当前块。
17.根据权利要求14所述的装置,其中,所述当前块是使用所述翘曲运动模式被编码的。
CN201880036784.XA 2017-10-07 2018-07-06 用于视频压缩的方法和装置 Active CN110741641B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762569530P 2017-10-07 2017-10-07
US62/569,530 2017-10-07
US15/846,295 2017-12-19
US15/846,295 US10582212B2 (en) 2017-10-07 2017-12-19 Warped reference motion vectors for video compression
PCT/US2018/041073 WO2019070322A1 (en) 2017-10-07 2018-07-06 DEFORMED REFERENCE MOTION VECTORS FOR VIDEO COMPRESSION

Publications (2)

Publication Number Publication Date
CN110741641A CN110741641A (zh) 2020-01-31
CN110741641B true CN110741641B (zh) 2021-09-21

Family

ID=65993618

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880036784.XA Active CN110741641B (zh) 2017-10-07 2018-07-06 用于视频压缩的方法和装置

Country Status (4)

Country Link
US (1) US10582212B2 (zh)
EP (1) EP3622712A1 (zh)
CN (1) CN110741641B (zh)
WO (1) WO2019070322A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10582212B2 (en) * 2017-10-07 2020-03-03 Google Llc Warped reference motion vectors for video compression
CN110891179B (zh) 2018-09-08 2023-11-14 北京字节跳动网络技术有限公司 计算运动矢量预测值
US20230090440A1 (en) * 2021-09-21 2023-03-23 Qualcomm Incorporated Lossy Compressed Feedback For Multiple Incremental Redundancy Scheme (MIRS)
US20230126830A1 (en) * 2021-10-21 2023-04-27 Tencent America LLC Adaptive Resolution for Motion Vector Difference
WO2023219616A1 (en) * 2022-05-11 2023-11-16 Google Llc Local motion extension in video coding

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104272743A (zh) * 2012-05-09 2015-01-07 松下电器(美国)知识产权公司 执行运动矢量预测的方法、编码和解码方法及其装置
WO2017118411A1 (en) * 2016-01-07 2017-07-13 Mediatek Inc. Method and apparatus for affine inter prediction for video coding system
CN107046645A (zh) * 2016-02-06 2017-08-15 华为技术有限公司 图像编解码方法及装置
WO2017148345A1 (en) * 2016-03-01 2017-09-08 Mediatek Inc. Method and apparatus of video coding with affine motion compensation

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100359115B1 (ko) * 2000-05-24 2002-11-04 삼성전자 주식회사 영상 코딩 방법
WO2013059504A1 (en) * 2011-10-21 2013-04-25 Dolby Laboratories Licensing Corporation Hierarchical motion estimation for video compression and motion analysis
CN104704827B (zh) * 2012-11-13 2019-04-12 英特尔公司 用于下一代视频的内容自适应变换译码
US9438910B1 (en) * 2014-03-11 2016-09-06 Google Inc. Affine motion prediction in video coding
JP2017083582A (ja) * 2015-10-26 2017-05-18 Hoya株式会社 撮像装置
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
US10631002B2 (en) * 2016-09-30 2020-04-21 Qualcomm Incorporated Frame rate up-conversion coding mode
US10979732B2 (en) * 2016-10-04 2021-04-13 Qualcomm Incorporated Adaptive motion vector precision for video coding
US10341659B2 (en) * 2016-10-05 2019-07-02 Qualcomm Incorporated Systems and methods of switching interpolation filters
US10582212B2 (en) * 2017-10-07 2020-03-03 Google Llc Warped reference motion vectors for video compression

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104272743A (zh) * 2012-05-09 2015-01-07 松下电器(美国)知识产权公司 执行运动矢量预测的方法、编码和解码方法及其装置
WO2017118411A1 (en) * 2016-01-07 2017-07-13 Mediatek Inc. Method and apparatus for affine inter prediction for video coding system
CN107046645A (zh) * 2016-02-06 2017-08-15 华为技术有限公司 图像编解码方法及装置
WO2017148345A1 (en) * 2016-03-01 2017-09-08 Mediatek Inc. Method and apparatus of video coding with affine motion compensation

Also Published As

Publication number Publication date
EP3622712A1 (en) 2020-03-18
CN110741641A (zh) 2020-01-31
US20190110063A1 (en) 2019-04-11
US10582212B2 (en) 2020-03-03
WO2019070322A1 (en) 2019-04-11

Similar Documents

Publication Publication Date Title
US10555000B2 (en) Multi-level compound prediction
CN110741640B (zh) 用于视频代码化中的运动补偿预测的光流估计
CN110741641B (zh) 用于视频压缩的方法和装置
JP6605726B2 (ja) 直前のフレームの動きベクトルパーティショニング
CN110692246B (zh) 用于运动补偿预测的方法和装置
CN107205156B (zh) 通过缩放的运动矢量预测
CN110169068B (zh) Dc系数符号代码化方案
JP2018536339A (ja) 前フレーム残差を用いた動きベクトル予測
US11343528B2 (en) Compound prediction for video coding
WO2018169571A1 (en) Segmentation-based parameterized motion models
US8908767B1 (en) Temporal motion vector prediction
WO2019036080A1 (en) ESTIMATION OF CONSTRAINED MOTION FIELD FOR INTERPRETING
CN110741636B (zh) 用于视频编码的变换块级扫描顺序选择
CN110679151A (zh) 使用参数化运动模型的视频代码化
JP2022069546A (ja) 複合動き補償予測
CN111886868B (zh) 用于替代参考帧渲染的自适应时间滤波的方法和装置
CN110731082A (zh) 使用反向排序来压缩视频帧组
WO2023205371A1 (en) Motion refinement for a co-located reference frame

Legal Events

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