CN110692246B - 用于运动补偿预测的方法和装置 - Google Patents
用于运动补偿预测的方法和装置 Download PDFInfo
- Publication number
- CN110692246B CN110692246B CN201880036760.4A CN201880036760A CN110692246B CN 110692246 B CN110692246 B CN 110692246B CN 201880036760 A CN201880036760 A CN 201880036760A CN 110692246 B CN110692246 B CN 110692246B
- Authority
- CN
- China
- Prior art keywords
- frame
- block
- reference frame
- motion field
- motion
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/182—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/567—Motion estimation based on rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
渲染基于运动场的参考帧,该参考帧可被用于对要预测的视频序列的第一帧执行预测过程。确定来自视频序列的、用于第一帧的前向帧间预测的第一参考帧,以及来自视频序列的、用于第一帧的后向帧间预测的第二参考帧。使用对第一帧的块确定的相应的运动场来确定形成仿射单应模型的参数。通过将仿射单应模型应用于当前块,在基于运动场的参考帧内的共位位置处渲染重构参考帧的当前块。对每个重构参考帧块确定仿射单应模型以渲染基于运动场的参考帧。
Description
背景技术
数字视频流可以使用帧或静止图像的序列来表示视频。数字视频可以用于各种应用,包括例如视频会议、高清视频娱乐、视频广告或用户生成的视频的共享。数字视频流可以包含大量数据并且消耗计算设备的大量计算或通信资源以用于视频数据的处理、传输或存储。已经提出了用于降低视频流中的数据量的各种方法,包括压缩和其他编码技术。
一种用于压缩的技术使用参考帧来生成对应于待编码的当前块的预测块。可以编码预测块和当前块之间的差异,而不是当前块本身的值,以减少编码的数据量。
发明内容
本公开总体上涉及编码和解码视频数据,并且更具体地,涉及渲染用于视频压缩中的运动补偿预测的基于运动场的参考帧。
本公开描述了编码和解码方法和装置。根据本公开的实施方式的一种方法包括确定要预测的第一帧,所述第一帧在视频序列中;从所述视频序列确定第一参考帧以用于所述第一帧的前向帧间预测;从所述视频序列确定第二参考帧以用于所述第一帧的后向帧间预测;使用所述第一参考帧或所述第二参考帧中的至少一个来确定用于所述第一帧的块的相应运动场;使用所述运动场,确定形成所述第一帧的块的仿射单应模型(affinehomographic model)的参数;生成基于运动场的参考帧,其中,生成基于运动场的参考帧包括使用所述仿射单应模型和重构的参考帧,渲染与第一帧的块共位的所述基于运动场的参考帧的当前块;以及使用所述基于运动场的参考帧对所述第一帧执行预测过程。
根据本公开的实施方式的装置包括非暂时性存储介质或存储器和处理器。介质包括可由处理器执行以执行包括下述步骤的方法的指令:确定要预测的第一帧,所述第一帧在视频序列中;使用来自所述视频序列、用于所述第一帧的前向帧间预测的第一参考帧或来自所述视频序列、用于所述第一帧的后向帧间预测的第二参考帧中的至少一个,确定用于所述第一帧的块的相应运动场;使用所述运动场,确定形成所述第一帧的块的仿射单应模型的参数;生成基于运动场的参考帧,其中,生成基于运动场的参考帧包括使用用于所述块的所述仿射单应模型和重构参考帧,渲染与第一帧的块共位的所述基于运动场的参考帧的当前块;以及使用所述基于运动场的参考帧对所述第一帧执行预测过程。
根据本公开的实施方式的另一装置包括非暂时性存储介质或存储器和处理器。介质包括可由处理器执行以执行包括下述步骤的方法的指令:由视频序列确定第一帧;从所述视频序列确定第一参考帧以用于所述第一帧的前向帧间预测;从所述视频序列确定第二参考帧以用于所述第一帧的后向帧间预测;使用所述第一参考帧或所述第二参考帧中的至少一个来确定用于所述第一帧的至少一些块的运动场;使用所述运动场,生成至少一个仿射单应模型;生成与所述第一帧共位的基于运动场的参考帧,其中,生成基于运动场的参考帧包括使用至少一个所述仿射单应模型和重构参考帧,渲染所述基于运动场的参考帧的块;以及使用所述基于运动场的参考帧对所述第一帧执行预测过程。
根据本公开的实施方式的另一种方法包括从视频序列中确定第一帧;使用来自所述视频序列、用于所述第一帧的前向帧间预测的第一参考帧和来自所述视频序列、用于所述第一帧的后向帧间预测的第二参考帧中的至少一个,确定用于所述第一帧的至少一些块的运动场;使用所述运动场,生成至少一个仿射单应模型;生成与所述第一帧共位的基于运动场的参考帧,其中,生成基于运动场的参考帧包括使用至少一个所述仿射单应模型和重构参考帧,渲染所述基于运动场的参考帧的块;以及使用所述基于运动场的参考帧对所述第一帧执行预测过程。
在实施例的下述详细描述、所附权利要求和附图中公开了本公开的这些和其他方面。
附图说明
本文的描述参考了下述的附图,其中,在几个视图中相同的附图标记表示相同的部件,除非另有说明。
图1是视频编码和解码***的示意图。
图2是可以实现发送站或接收站的计算设备的示例的框图。
图3是待编码并随后解码的常见视频流的图。
图4是根据本公开的实施方式的编码器的框图。
图5是根据本公开的实施方式的解码器的框图。
图6是视频序列的显示顺序中的一组帧的图。
图7是图6的该组帧的代码化顺序的示例的图。
图8是用于使用基于运动场生成的参考帧的视频序列的帧的运动补偿预测的过程的流程图。
图9是用来解释根据本文的教导的运动矢量的线性投影的图。
图10是用来解释根据本文的教导的仿射单应模型的图。
图11是示出用于优化解码器的技术的图。
具体实施方式
可以通过多种技术来压缩视频流,以减少传输或存储视频流所需的带宽。可以将视频流编码为比特流,这涉及压缩,然后将其传输到解码器,该解码器可以解码或解压缩视频流,以为查看或进一步处理做准备。视频流的压缩通常通过空间和/或运动补偿预测来利用视频信号的空间和时间相关性。运动补偿预测例如使用一个或多个运动矢量来生成类似于要使用先前编码和解码的像素进行编码的当前块的块(也称为预测块)。通过编码运动矢量以及两个块之间的差,接收编码信号的解码器可以重新创建当前块。运动补偿预测也可以被称为帧间预测。
在帧间预测过程中用于生成预测块的每个运动矢量是指当前帧以外的帧,即参考帧。参考帧可以位于视频流序列中当前帧之前或之后,并且可以是在被用作参考帧之前被重构的帧。在一些情况下,存在被用来编码或解码视频序列的当前帧的块的三个或以上参考帧。一个可以是被称为黄金帧的帧。另一个可以是最近编码或解码的帧。另一个可以是替代参考帧,其在序列中在一个或多个帧之前被编码或解码,但是以输出显示顺序,在那些帧之后被显示。以这种方式,替代参考帧是可用于后向预测的参考帧。一个或多个前向和/或后向参考帧可以被用来编码或解码块。可以基于所得的信噪比或速率失真的其他度量来测量当被用来编码或解码当前帧内的块时的参考帧的效力。
在该技术中,直接从一个或多个可用参考帧中获得形成预测块的像素。参考像素块或其线性组合被用于预测当前帧中的给定编码块。该直接、基于块的预测可能无法捕获可从参考帧获得的真实运动活动。即,不能有效地捕获除平移运动以外的运动,例如物体的一般仿射运动。为此,运动补偿预测精度会受到影响。
为了更充分地利用来自可用的双向参考帧(例如,一个或多个前向参考帧和一个或多个后向参考帧)的运动信息,本文教导的实施方式描述了使用运动场估计,生成或渲染在时间上与当前代码化帧共位(co-locate)的参考帧。该参考帧在本文中被称为基于运动场的参考帧。
渲染基于运动场的参考帧涉及经由来自双向参考帧的运动矢量的线性投影,初始建立当前帧的运动场估计。对于当前帧中的任何给定块,分配给它及其周围的邻近块的估计运动矢量都是可用的。这种闭合边界运动信息允许对将当前块映射到参考帧中的像素的仿射单应模型的相对精确的估计。所得的基于运动场的参考帧能够处理非平移运动模型。
本文首先参考可以实现本文的教导的***来描述渲染基于运动场的参考帧以用于视频压缩和重构的更多细节。
图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包括允许CPU 202执行在此所述的方法的至少一个程序。例如,应用程序210可以包括应用1到N,其进一步包括执行在此所述的方法的视频代码化应用。计算设备200还可以包括辅助存储器214,其可以例如是与移动计算设备一起使用的存储卡。因为视频通信会话可能包含大量信息,所以它们可以被全部或部分地存储在辅助存储器214中并且根据需要被加载到存储器204中以用于处理。
计算设备200还可以包括一个或多个输出设备,诸如显示器218。在一个示例中,显示器218可以是触敏显示器,其将显示器与可操作以感测触摸输入的触敏元件组合。显示器218可以经由总线212耦合到CPU 202。除了显示器218之外或者作为显示器218的替代,可以提供允许用户编程或以其他方式使用计算设备200的其他输出设备。当输出设备是显示器或包括显示器时,可以以各种方式实现显示器,包括通过液晶显示器(LCD)、阴极射线管(CRT)显示器或发光二极管(LED)显示器,诸如有机LED(OLED)显示器。
计算设备200还可以包括图像感测设备220,或者与图像感测设备220进行通信,图像感测设备220例如是相机或现在存在或以后开发的任何其他图像感测设备220,该任何其他图像感测设备220可以感测图像,诸如操作计算设备200的用户的图像。可以定位图像感测设备220,使得其指向操作计算设备200的用户。在示例中,图像感测设备220的位置和光轴可以被配置,使得视野包括与显示器218直接相邻并且从其可以看到显示器218的区域。
计算设备200还可以包括声音感测设备222或者与声音感测设备222通信,声音感测设备222例如是麦克风或者现在存在或以后开发的可以感测计算设备200附近的声音的任何其他声音感测设备。声音感测设备222可以被定位,使得其指向操作计算设备200的用户,并且可以被配置为接收在用户操作计算设备200时由用户发出的声音,例如,语音或其他话语。
虽然图2将计算设备200的CPU 202和存储器204图示为集成到一个单元中,但是可以使用其他配置。CPU 202的操作可以分布在多个机器(每个机器具有一个或多个处理器)上,这些机器可以直接耦合或跨局域网或其他网络耦合。存储器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中的例如16×16像素的数据。块310还可以被布置为包括来自像素数据的一个或多个片段308的数据。块310还可以是任何其他合适的大小,例如4×4像素、8×8像素、16×8像素、8×16像素、16×16像素或更大。除非另有说明,否则在本文中可以互换地使用术语“块”和“宏块”。
图4是根据本公开的实施方式的编码器400的框图。如上所述,可以诸如通过提供存储在例如存储器204的存储器中的计算机软件程序,在发送站102中实现编码器400。计算机软件程序可以包括机器指令,当其由诸如CPU 202的处理器执行时,使发送站102以图4所述的方式编码视频数据。编码器400还可以被实现为包括在例如发送站102中的专用硬件。在一个特别期望的实施方式中,编码器400是硬件编码器。
编码器400具有用于在(由实线连接线示出的)前向路径中执行各种功能以将视频流300用作输入来生成编码或压缩比特流420的下述级:帧内/帧间预测级402、变换级404、量化级406和熵编码级408。编码器400还可以包括(由虚线连接线示出的)重构路径以重构用于编码未来块的帧。在图4中,编码器400具有用于在重构路径中执行各种功能的下述级:去量化级410、逆变换级412、重构级414和环路滤波级416。编码器400的其他结构变型可以被用于编码视频流300。
当呈现视频流300以编码时,可以以块为单位处理诸如帧306的各个帧304。在帧内/帧间预测级402,可以使用帧内预测或帧间预测来编码各个块。在任何情况下,都可以形成预测块。在帧内预测的情况下,可以由当前帧中、先前已经被编码和重构的样本形成预测块。在帧间预测的情况下,可以由一个或多个先前构建的参考帧中的样本形成预测块。在下文中,进一步详细讨论块组的参考帧的指定。
接下来,仍然参考图4,可以在帧内/帧间预测级402处,从当前块中减去预测块以生成残差块(也称为残差)。变换级404使用基于块的变换,将残差变换为例如频域中的变换系数。量化级406使用量化器值或量化级,将变换系数转换为离散量子值,其被称为量化变换系数。例如,变换系数可以除以量化器值并被舍位。然后,由熵编码级408熵编码量化的变换系数。然后,将熵编码的系数与被用于解码块的其他信息(其可以包括例如所使用的预测的类型、变换类型、运动矢量和量化器值)一起输出到压缩比特流420。可以使用诸如可变长度编码(VLC)或算术编码的各种技术来格式化压缩比特流420。压缩比特流420也可以被称为编码视频流或编码视频比特流,在本文中,可以互换地使用这些术语。
图4中的(由虚线连接线示出的)重构路径可以被用于确保编码器400和(下文所述)解码器500使用相同的参考帧来解码压缩比特流420。重构路径执行类似于在下文更详细地讨论的解码过程期间发生的功能的功能,包括在去量化级410对量化的变换系数进行去量化,并且在逆变换级412对去量化的变换系数进行逆变换以生成衍生残差块(也称为衍生残差)。在重构级414,可以将在帧内/帧间预测级402预测的预测块添加到衍生残差以创建重构块。环路滤波级416可以被应用于重构块以减少诸如块效应的失真。
编码器400的其他变型可以被用于编码压缩比特流420。例如,基于非变换的编码器可以对于某些块或帧在没有变换级404的情况下直接量化残差信号。在另一实施方式中,编码器可以具有组合在公共级的量化级406和去量化级410。
图5是根据本公开的实施方式的解码器500的框图。可以例如通过提供存储在存储器204中的计算机软件程序,在接收站106中实现解码器500。计算机软件程序可以包括机器指令,当其由诸如CPU 202的处理器执行时,使得接收站106以图5中所述的方式解码视频数据。还可以以包括在例如发送站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。
参考帧缓冲区可以存储被用于编码或解码视频序列的帧的块的参考帧。例如,参考帧可以被标识为最后一帧LAST_FRAME、黄金帧GOLDEN_FRAME或备选参考帧ALTREF_FRAME。参考帧的帧报头可以包括对存储参考帧的、参考帧缓冲区内的位置的虚拟索引。参考帧映射可以将参考帧的虚拟索引映射到存储参考帧的存储器的物理索引。在两个参考帧是同一帧的情况下,即使它们具有不同的虚拟索引,这些参考帧也将具有相同的物理索引。在参考帧缓冲区中存储的参考帧的数量和类型可以不同。
存储在参考帧缓冲区中的参考帧可以被用来识别运动矢量,以预测要编码或解码的帧的块。根据被用于预测当前帧的当前块的预测类型,可以使用不同的参考帧。例如,在双向预测中,可以使用存储为LAST_FRAME或GOLDEN_FRAME的任一帧来前向预测当前帧的块,并且可以使用存储为ALTREF_FRAME的帧来进行后向预测。
图6是按视频序列的显示顺序的一组帧的图。在该示例中,在该组帧之前是帧600,在一些情况下,该组帧可以被称为关键帧或覆盖帧,并且包括八个帧602-616。使用该组帧的参考帧,不对帧600内的块进行帧间预测。在该示例中,帧600是关键帧(也称为帧内预测帧),其是指使用帧内预测,仅预测帧内的预测块的状态。然而,帧600可以是覆盖帧,其是帧间预测帧,可以是前一组帧的重构帧。在帧间预测帧中,使用帧间预测来预测至少一些预测块。形成每组帧的帧数可以根据视频空间/时间特性和其他编码配置(诸如为随机访问或错误恢复选择的关键帧间隔)而改变。
每组帧的代码化顺序可以不同于显示顺序。这允许将视频序列中,位于当前帧之后的帧用作编码当前帧的参考帧。解码器(诸如解码器500)可以与编码器(诸如编码器400)共享公共的组代码化结构。组代码化结构分配该组内的各个帧在参考缓冲区中扮演的不同的角色(例如,最后一个帧、备选参考帧等),并且定义或指示组内这些帧的代码化顺序。
图7是用于图6的该组帧的代码化顺序的示例的图。图7的代码化顺序与第一组代码化结构相关联,由此单个后向参考帧可用于该组的每个帧。因为编码和解码顺序相同,所以图7所示的顺序在本文中通常被称为代码化顺序。关键或覆盖帧600被指定为参考帧缓冲区中的黄金帧,诸如参考帧缓冲区中的GOLDEN_FRAME。在该示例中,帧600是帧内预测的,因此它不需要参考帧,但是作为由前一组重构的帧600的覆盖帧也不使用当前该组帧的参考帧。该组中的最后一个帧616被指定为参考帧缓冲区中的备选参考帧,诸如ALTREF_FRAME。以该代码化顺序,在帧600之后不按显示顺序代码化帧616,以便为其余每个帧602–614提供后向参考帧。在帧616的代码化块中,帧600用作帧616的块的可用参考帧。图7仅是用于一组帧的代码化顺序的一个示例。其他组代码化结构可以指定用于前向和/或后向预测的一个或多个不同或附加帧。
如上简单所述,可用参考帧可以是由运动场渲染的基于运动场的参考帧部分。由于基于运动场的参考帧的尺寸与当前帧相同,因此在本文中可以被称为共位参考帧。
图8是使用基于运动场渲染的参考帧,用于视频序列的帧的运动补偿预测的方法或过程800的流程图。过程800可以被实现为例如可以由诸如发送站102或接收站106的计算设备执行的软件程序。例如,该软件程序可以包括可以存储在存储器(诸如存储器204或辅助存储器214)中并且当由处理器(诸如CPU202)执行时,使计算设备执行过程800的机器可读指令。可以使用专用硬件或固件来实现过程800。一些计算设备可以具有多个存储器或处理器,并且可以使用多个处理器、存储器或两者来分配过程800中所述的操作。
在802,确定要预测的当前帧。可以以任何顺序(诸如图7所示的代码化顺序)代码化帧,然后进行预测。要预测的帧也可以被称为第一、第二、第三等帧。第一、第二等的标签不一定指示帧的顺序。相反,除非另有说明,否则标签在本文中被用于将一个当前帧与另一个帧区分开。在编码器处,可以按块代码化顺序(诸如栅格扫描顺序),以块为单位处理该帧。在解码器处,还可以根据在编码比特流内它们的编码残差的接收,以块为单位处理该帧。
在804处,可以确定前向参考帧和后向参考帧。在本文所述的示例中,前向参考帧和后向参考帧是当前帧(诸如下文所述的帧索引X处的当前帧)之前和之后(例如,按显示顺序)的最近重构帧。尽管在图8中未明确示出,但是如果前向或后向参考帧不存在,则对当前帧,可以不执行过程800。相反,可以根据任何已知技术(诸如使用线性运动矢量的帧内预测或帧间预测)来预测当前帧。
假设在804使用前向和后向参考帧,则过程800可以前进到806以确定当前帧的运动场。确定运动场可以包括执行来自参考帧的运动矢量的线性投影,这将参照图9更详细地描述。
图9是用于根据本文的教导,解释运动矢量的线性投影的图。可以使用在当前帧前后的最近可用重构(参考)帧、附加参考帧或不同参考帧来估计当前帧的运动场。在图9中,当前帧具有帧索引X。当前帧的运动场包括从当前帧朝向在该示例中的参考帧Ref0、Ref1和Ref1_Ref0或者如果可用的话更多参考帧的运动矢量。可以根据当前帧的各个8×8块来存储运动矢量,但是可以考虑不同大小的块或当前帧的其他部分,例如以帧扫描顺序。换句话说,本文的描述使用8×8块来描述806处的处理,但这仅是示例。该教导可以应用于由块以外形成的帧部分以及不同大小的块。
参考帧Ref0是可以用于当前帧的前向预测的参考帧,而参考帧Ref1是可以用于当前帧的后向预测的参考帧。将图6和7的示例用于说明,如果当前帧是帧606,则紧接在前或最后的帧604(例如,在参考帧缓冲区中存储为LAST_FRAME的重构帧)可以被用作参考帧Ref0,而帧616(例如,在参考帧缓冲区中存储为ALTREF_FRAME的重构帧)可以被用作参考帧Ref1。
知道当前帧和参考帧的显示索引,假设运动场在时间上是线性的,则可以将运动矢量投影在参考帧Ref0和Ref1中的像素与当前帧中的像素之间。在根据图6和7所述的示例中,当前帧的帧索引X为3,参考帧Ref0的帧索引A为2,参考帧Ref1的帧索引C为8。参考帧Ref1_Ref0的帧索引C_R0可以例如为1。
可以示出从具有帧索引C的参考帧Ref1开始的线性投影。从参考帧Ref1,运动矢量MV_ref1从参考帧Ref1到参考帧Ref1的参考帧,即Ref1_Ref0,其帧索引为C_R0。运动矢量包含行和列两个分量,以表示空间偏移。因此,在该示例中,使用运动矢量MV_ref1和参考帧Ref1_Ref0来预测位于参考帧Ref1内的(ref_row,ref_col)处的块。
该运动矢量MV_ref1被投影到当前帧上以确定运动轨迹在当前帧中适合的位置。根据下述公式,计算块位置偏移:
Block_row=ref_row+MV_ref1.row*(C-X)/(C-C_R0);以及
Block_col=ref_col+MV_ref1.col*(C-X)/(C-C_R0),其中,MV_ref1.row是运动矢量MV_ref1的第一(例如,垂直)分量,而MV_ref1.col是运动矢量MV_ref1的第二(例如,水平)分量。当前帧内的投影块位置为(Block_row,Block_col)。
接下来,对于当前帧中的块位置(Block_row,Block_col),根据下述公式,朝参考帧Ref0估计其运动矢量MV_0:
MV_0.row=MV_ref1.row*(X-A)/(C-C_R0);以及
MV_0.col=MV_ref1.col*(X-A)/(C-C_R0),其中,MV_0.row是运动矢量MV_0的第一(例如,垂直)分量,而MV_0.col是运动矢量MV_0的第二(例如,水平)分量。
类似地,对当前帧中的相同块位置(Block_row,Block_col),根据下述公式,朝着参考帧Ref1估计运动矢量MV_1:
MV_1.row=MV_ref1.row*(X-C)/(C-C_R0);以及
MV_1.col=MV_ref1.col*(X-C)/(C-C_R0),其中,MV_1.row是运动矢量MV_1的第一(例如,垂直)分量,而MV_1.col是运动矢量MV_1的第二(例如,水平)分量。
当前帧的块的运动矢量MV_0和MV_1的集合形成当前帧的运动场。
尽管在上述示例中,线性投影使用了参考帧Ref1的运动矢量,但这仅是示例。可以使用任何其他参考帧(诸如参考帧Ref0)的运动矢量。
选择最近可用的重构前向和后向参考帧并且假设线性运动允许要在编码器和解码器(例如,在帧内/帧间预测级402和帧内/帧间预测级508)处估计的运动场,无需传输额外信息。代替最近可用的重构参考帧,也可以将不同的帧用作编码器和解码器之间的先验指定。在一些实施方式中,可以发送用于当前帧部分的帧的标识。
返回参考图8,在806处确定当前帧的运动场之后,过程800前进到808。在808处,生成或渲染基于运动场的参考帧。可以使用运动场来生成基于运动场的参考帧。可以通过使用运动场(例如,使用运动场确定的一个或多个仿射单应模型)来渲染基于运动场的参考帧的块,生成基于运动场的参考帧。
渲染可以包括确定形成用于当前帧的各个块的仿射单应模型的参数,以及求解仿射单应模型。图10是用于解释根据本文的教导的仿射单应模型的图。
图10的图示出与被表示为当前块Cur_Blk的正被预测的帧的8×8块相关联的运动场的示例。当前块Cur_Blk的运动场由MV0表示,并且MV0被示为从当前帧中被标识为(x0,y0)的中心位置延伸。在该示例中,当前块Cur_Blk的空间相邻块被标记为Ref_blk_1、Ref_blk_2、Ref_blk_3和Ref_blk_4。空间相邻块Ref_blk_1、Ref_blk_2、Ref_blk_3和Ref_blk_4的运动场分别由MV1、MV2、MV3和MV4表示。在用于空间相邻块Ref_blk_1的帧中的中心位置被标记为(x1,y1),在用于空间相邻块Ref_blk_2的帧中的中心位置被标记为(x2,y2),在用于空间相邻块Ref_blk_3的帧中的中心位置被标记为(x3,y3),以及在用于空间相邻块Ref_blk_1的帧中的中心位置被标记为(x4,y4)。
仿射单应模型可以由6参数矩阵定义:
参数a、b、c和d表示旋转和缩放,参数e和f表示垂直和水平方向的平移偏移。为了估计当前块Cur_Blk的这些仿射参数,可以使用空间相邻块的运动信息。该问题用公式表示为:
P是空间相邻块的中心位置的数组,如下所示:
P'是参考帧中的位置(x',y')的数组,如下所示:
其中,mv0_row是运动矢量MV0的第一分量,mv0_col是运动矢量MV0的第二分量,mv1_row是运动矢量MV1的第一分量,mv1_col是运动矢量MV1的第二分量,mv2_row是运动矢量MV2的第一分量,mv2_col是运动矢量MV2的第二分量,mv3_row是运动矢量MV3的第一分量,mv3_col是运动矢量MV3的第二分量,mv4_row是运动矢量MV4的第一分量,mv4_col是运动矢量MV4的第二分量。每个第一分量可以是垂直分量,以及每个第二分量可以是水平分量。
Γ是其所有项均为1的1×5矢量,如下所示:
Γ=(1,1,1,1,1)。
等式(1)中的下标F是指两个矢量的一般距离度量(也称为范数)。范数的示例包括F=1,每个元素之间的绝对距离之和;F=2,每个元素之间的平方距离之和;以及F=无限,即任一元素对之间的最大距离。在本文所述的实施方式中,F=2。
可以颠倒这些步骤的顺序。
从上述公式可以明显看出,求解仿射单应模型所需的投影对的数量可以变化。当(例如8x8)块周围所有运动场运动矢量都不可用时,该属性很有用。例如,块可以沿着帧的边缘定位。在这种情况下,在上述等式中可以减小P和P'的秩。
等式(4)和(5)的解是形成用于正被预测的帧的当前块Cur_Blk的仿射单应模型的参数a至f。然后,可以使用该仿射单应模型,连同重构参考帧一起来在基于运动场的参考系内渲染块。
可以将以自然顺序(诸如图6所示的显示顺序)最接近当前帧的参考帧选择为重构参考帧。以这种方式,重构参考帧可以是被用来生成运动场的用于前向帧间预测的第一参考帧、被用来生成运动场的用于后向帧间预测的第二参考帧,或者来自视频序列中的一些其他参考帧。在当前帧是帧606的上述示例中,可以将帧604(第一参考帧)用作最接近的重构参考帧。例如,可以以8×8块为单位处理渲染。
在基于运动场的参考帧内渲染块可以包括将仿射单应模型应用于块,以填充用于块的像素位置的像素值。渲染块可以包括通过根据下述公式,将仿射单应模型应用于块,将块的像素位置(x,y)上的像素映射到重构参考帧中的像素位置(x',y'):
其中B是矢量,其元素是块的像素位置。该块可以与正被编码、用来生成应用的仿射单应模型的帧的块(例如,当前块Cur_Blk)共位。
渲染基于运动场的参考帧内的块可以包括对于该块中的每个像素位置,使用仿射单应模型来将该块中的像素位置映射到重构参考帧内的像素位置,并且通过将重构参考帧内的像素位置的像素值分配给当前块中的像素位置,生成用于基于运动场的参考帧的块。
可以使用针对所预测的帧的空间上共位的块生成的相应仿射单应模型,对基于运动场的参考帧的每个块重复808处的处理。即,在806,可以处理包括要预测的帧的非重叠部分的每个块,以生成用于每个块的各自的仿射单应模型。然后,在808,可以通过对基于运动场的参考帧的每个块,将用于该帧的每个块的各自的仿射单应模型应用于基于运动场的参考帧的共位块,以使用来自重构参考帧的像素值填充共位块内的像素位置,生成基于运动场的参考帧。
在810处,使用在808处生成的基于运动场的参考帧来执行预测过程。在编码器处执行预测过程可以包括从用于该帧的当前块的基于运动场的参考帧生成预测块。基于运动场的参考帧可以被存储在存储器内的参考帧缓冲区中。
在编码器处生成预测块可以包括在基于运动场的参考帧内执行运动搜索,以为当前块选择最佳匹配的预测块。然而,在编码器处生成预测块,可以诸如使用参考图4的编码器400所述的有损编码过程,进一步处理所得到的残差。
在编码器处,过程800可以形成使用各种预测模式(包括一个或多个帧内预测模式以及使用用于当前帧的可用预测帧的单个和复合帧间预测模式)的当前块的速率失真环路的一部分。单个帧间预测模式仅将单个前向或后向参考帧用于帧间预测。复合帧间预测模式将前向参考帧和后向参考帧均用于帧间预测。在速率失真环路中,用于使用各个预测模式编码当前块的速率(例如,比特数)与由编码生成的失真进行比较。可以将失真计算为编码之前和解码之后的块的像素值之间的差。该差可以是绝对差的总和,或者可以是捕获用于该帧的块的累积误差的一些其他度量。
在一些实施方式中,可能希望限制将基于运动场的参考帧用于单个帧间预测模式。即,在任何复合参考模式下,可以排除基于运动场的参考帧作为参考帧。这可以简化速率失真环路,并且由于基于运动场的参考帧已经考虑了前向参考帧和后向参考帧,因此预期对块的编码几乎没有其他影响。根据本文所述的实施方式,可以将标志编码到比特流中以指示基于运动场的参考帧是否可用在编码当前帧中。在该示例中,当使用基于运动场的参考帧块编码当前帧内的任何单个块时,可以编码标志。在基于运动场的参考帧可用于当前帧的情况下,可以包括附加标志或其他指示符(例如,在块级),其指示是否通过使用基于运动场的参考帧的帧间预测来编码当前块。
可以对当前帧的所有块重复810处的预测过程,直到编码当前帧为止。
在解码器中,在810处使用基于运动场的参考帧执行预测过程可以由基于运动场的参考帧可用于解码当前帧的确定所致。在一些实施方式中,通过检查指示使用基于运动场的参考帧编码当前帧的至少一个块的标志来进行确定。可以解码对应于要重构的当前块的残差。在810中,在解码器中执行预测过程可以包括生成用于残差的预测块。生成预测块可以包括使用从编码比特流(例如,从块头)解码的帧间预测模式。可以解码标志或指示符以确定帧间预测模式。当帧间预测模式是基于运动场的参考帧模式时(即,使用基于运动场的参考帧帧间预测块),使用基于运动场的参考帧的像素和运动矢量模式和/或运动矢量,生成用于要解码的当前块的预测块。即,例如,可以使用从编码的比特流确定的预测块的运动矢量来确定预测块的像素位置,并且可以由基于运动场的参考帧来确定用于预测块的像素位置的值。
与在编码器处执行的处理一样,可以在诸如解码器500的解码器处执行产生用在预测过程中的基于运动场的参考帧的相同处理,作为解码的一部分。例如,当标志指示使用基于运动场的参考帧编码指示当前帧的至少一个块时,可以生成并存储整个基于运动场的参考帧,以供预测过程中使用。然而,通过修改过程800以将其中识别代码化块的过程800限制为使用基于运动场的参考帧作为帧间预测参考帧的性能,可以发生在解码器处计算能力的额外节省。这可以通过参考图11来描述,图11是示出用于优化解码器的一种技术的图。
在图11中,沿着网格1100示出像素,其中,网格1100具有w和y,其中,w表示沿着网格1100的第一轴的像素位置,而y表示沿着网格1100的第二轴的像素位置。网格1100表示当前帧的一部分的像素位置。为了在810,在解码器处执行预测过程,可以将806和808处的处理执行为810处的处理的一部分。例如,在执行806处开始的过程之前,810处的预测过程可以包括(例如,从报头信息,诸如运动矢量)找到用于代码化当前块的参考块的像素位置。在图11中,当前代码化块1102的运动矢量指向由内虚线1104表示的参考块。在该示例中,当前代码化块1102包括4×4像素。因为参考块位于参考帧中,而不是在当前帧中,所以由虚线1104示出了参考块位置,但是在预测过程中使用当前帧中的其空间上共位的像素位置。
更具体地,一旦定位了参考块,就识别出被参考块的像素位置所横跨(即,重叠)的所有块。这可以包括在每个边界,参考块大小延长滤波器长度的一半,以考虑子像素内插滤波器。在图11中,子像素内插滤波器长度L被用来将参考块延长到由外虚线1106表示的边界。相对常见的是,运动矢量导致不能与全像素位置完全对齐的参考块。图11中的变暗区域表示全像素位置。识别出与全像素位置重叠的所有参考块。假设块大小与当前代码化块1102相同,则识别出与当前块共位的第一参考块、第一参考块上方的第二参考块、从第一参考块的左侧延伸的两个参考块,以及从第二参考块的左侧延伸的两个参考块。
一旦识别出参考块,就可以在806和808处,仅对当前帧内的一些块执行过程800,以生成共位的、基于运动场的参考块。这可以包括当前帧内、与所识别出的参考块共位的块,以及当前帧内、与尚未被识别的用于形成用于块的仿射单应模型的空间相邻块共位的任何块。
根据该修改的过程,确保了编码器和解码器具有相同的预测器,但解码器不需要计算整个共位参考帧。值得注意的是,包括任何扩展边界的后续块的参考块可以与在当前块的解码过程中识别的一个或多个参考块重叠。在这种情况下,仅需要对所识别的任何块执行一次运动场估计,以进一步减少解码器处的计算需求。换句话说,可以存储在808处生成的参考块以用在解码当前帧的其他块中。因此,基于运动场的参考帧可以仅包括具有像素值的一些块。
然而,可以在解码器处生成预测块,可以将用于编码比特流的当前块的解码残差与预测块组合以形成重构块,如参考图5的解码器500的示例所述。
可以对使用基于运动场的参考帧编码的当前帧的所有块重复810处的预测过程,无论是在806和808处的处理之后还是与之结合,直到解码当前帧为止。当以解码顺序处理块时,可以根据对来自编码比特流的块解码的预测模式,以常规方式解码未使用基于运动场的参考帧编码的块。
本文的教导为视频压缩性能提供了各种优点。例如,运动场有效地为感兴趣的任何块提供了闭合边界信息,使得可以更精确地估计仿射单应模型。运动场渲染的参考帧允许编码器运行有效的运动搜索,从而获得良好的预测质量。可以使用该共位参考帧来消除对渲染帧的使用,该渲染帧可能与当前帧偏移1或2个像素。
为了简化说明,将过程800图示和描述为一系列步骤或操作。然而,根据本公开的步骤或操作可以以各种顺序和/或同时发生。另外,可以使用本文未提出和描述的其他步骤或操作。此外,可能不需要所有示出的步骤或操作来实现根据所公开主题的方法。
上述编码和解码的方面示出了编码和解码技术的一些示例。然而,应当理解,编码和解码(就像在权利要求中使用的那些术语)可以表示对数据的压缩、解压缩、变换或任何其他处理或改变。
本文使用词语“示例”来表示用作示例、实例或说明。本文描述为“示例”的任何方面或设计不必被解释为比其他方面或设计更优选或更具优势。相反,使用词语“示例”旨在以具体方式呈现概念。如在本申请中所使用的,术语“或”旨在表示包含性的“或”而不是排他性的“或”。也就是说,除非另有说明或从上下文中清楚得出,否则“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 (20)
1.一种用于运动补偿预测的方法,包括:
确定要预测的第一帧,所述第一帧在视频序列中;
从所述视频序列确定第一参考帧以用于所述第一帧的前向帧间预测;
从所述视频序列确定第二参考帧以用于所述第一帧的后向帧间预测;
使用所述第一参考帧和所述第二参考帧中的至少一个来确定用于所述第一帧的至少一些块中的每个块的相应的运动场;
使用所述第一帧的块的所述运动场,确定形成用于所述第一帧的所述块的仿射单应模型的参数;
生成基于运动场的参考帧,其中,生成基于运动场的参考帧包括使用重构参考帧生成与所述第一帧的所述块共位的所述基于运动场的参考帧的当前块,其中,生成所述当前块包括,对于所述当前块中的每个像素位置:使用所述仿射单应模型将所述当前块中的该像素位置映射到重构参考帧内的像素位置,以及通过将所述重构参考帧内的像素位置的像素值分配给所述当前块中的像素位置,为所述基于运动场的参考帧生成所述当前块;以及
使用所述基于运动场的参考帧对所述第一帧执行预测过程。
2.根据权利要求1所述的方法,其中,确定所述运动场包括:
使用所述第一参考帧或所述第二参考帧中的一个的运动矢量执行线性投影;以及
使用所述线性投影来确定从所述第一帧的块延伸到所述第一参考帧或所述第二参考帧中的至少一个的运动矢量。
3.根据权利要求1所述的方法,其中,确定所述运动场包括:
将用于预测所述第二参考帧的块的运动矢量投影到所述第一帧,以定义所述第一帧内的投影块位置;
使用用于预测所述第二参考帧的块的运动矢量,估计从所述投影块位置到所述第一参考帧的运动矢量;以及
使用用于预测所述第二参考帧的块的运动矢量,估计从所述投影块位置到所述第二参考帧的运动矢量。
4.根据权利要求3所述的方法,其中:
用于预测所述第二参考帧的块的运动矢量与具有参考帧索引的、用于预测所述第二参考帧的参考帧相关联,
所述第一帧具有当前帧索引,
所述第一参考帧具有第一帧索引,
所述第二参考帧具有第二帧索引,
估计从所述投影块位置到所述第一参考帧的运动矢量包括使用所述参考帧索引、所述当前帧索引、所述第一帧索引和所述第二帧索引,修改用于预测所述第二参考帧的块的运动矢量;以及
估计从所述投影块位置到所述第二参考帧的运动矢量包括使用所述参考帧索引、所述当前帧索引、所述第一帧索引和所述第二帧索引,修改用于预测所述第二参考帧的块的运动矢量。
5.根据权利要求1至4中任一项所述的方法,其中,确定用于所述第一帧的至少一些块中的每个块的相应运动场包括假设用于块的每个运动场在时间上是线性的。
6.根据权利要求1至4中任一项所述的方法,其中,所述重构参考帧是所述第一参考帧或所述第二参考帧中的一个。
7.根据权利要求1至4中任一项所述的方法,其中,使用所述基于运动场的参考帧对所述第一帧执行所述预测过程包括,针对所述第一帧内待预测的第一块,在所述基于运动场的参考帧内执行运动搜索。
8.根据权利要求1至4中任一项所述的方法,进一步包括:
确定用于编码所述第一帧的第一块的第一运动矢量,其中:
确定用于所述第一帧的块的相应的运动场包括对与由所述第一运动矢量标识的像素位置重叠的所述第一帧的每个块确定相应的运动场。
9.根据权利要求1至4中任一项所述的方法,其中,使用所述运动场确定形成所述仿射单应模型的参数包括,针对所述第一帧的块,使用所述块和至少两个相邻块的中心位置以及使用所述块和所述至少两个相邻块的运动场,确定形成用于所述块的仿射单应模型的参数。
10.一种用于运动补偿预测的装置,包括:
处理器;以及
非暂时性存储介质,所述非暂时性存储介质包括指令,所述指令可由所述处理器执行以执行包括下述步骤的方法:
确定要预测的第一帧,所述第一帧在视频序列中;
使用来自所述视频序列的、用于所述第一帧的前向帧间预测的第一参考帧和来自所述视频序列的、用于所述第一帧的后向帧间预测的第二参考帧中的至少一个,确定用于所述第一帧的至少一些块中的每个块的相应的运动场;
使用所述第一帧的块的所述运动场,确定形成用于所述第一帧的所述块的仿射单应模型的参数;
生成基于运动场的参考帧,其中,生成基于运动场的参考帧包括使用重构参考帧生成与所述第一帧的所述块共位的所述基于运动场的参考帧的块,其中,生成所述块包括,对于所述块中的每个像素位置:使用所述仿射单应模型将所述块中的该像素位置映射到重构参考帧内的像素位置,以及通过将所述重构参考帧内的像素位置的像素值分配给所述块中的像素位置,为所述基于运动场的参考帧生成所述块;以及
使用所述基于运动场的参考帧对所述第一帧执行预测过程。
12.根据权利要求10或11所述的装置,其中,所述仿射单应模型包括6参数矩阵。
13.一种用于运动补偿预测的装置,包括:
处理器,所述处理器被配置用于执行包括下述步骤的方法:
从视频序列确定第一帧;
从所述视频序列确定第一参考帧以用于所述第一帧的前向帧间预测;
从所述视频序列确定第二参考帧以用于所述第一帧的后向帧间预测;
使用所述第一参考帧和所述第二参考帧中的至少一个来确定用于所述第一帧的至少一些块的运动场;
使用所述运动场,生成至少一个仿射单应模型;
生成基于运动场的参考帧,其中,生成基于运动场的参考帧包括使用重构参考帧生成与所述第一帧的所述块共位的所述基于运动场的参考帧的块,其中,生成所述基于运动场的参考帧的所述块包括,对于所述基于运动场的参考帧的每个块:将用于所述第一帧的每个块的相应的仿射单应模型应用于所述基于运动场的参考帧的共位块,以使用来自重构参考帧的像素值填充所述共位块内的像素位置;以及
使用所述基于运动场的参考帧对所述第一帧执行预测过程。
14.根据权利要求13所述的装置,其中:
所述第一帧的至少一些块是所述第一帧的所有块,每个块包括所述第一帧的非重叠部分;以及
用于生成至少一个仿射单应模型的指令包括用于为所述第一帧的每个块生成相应的仿射单应模型的指令。
15.根据权利要求13所述的装置,其中,所述处理器被配置用于:
解码对应于待重构的第一块的残差,其中,
使用所述基于运动场的参考帧对所述第一帧执行预测过程包括:
使用所述第一块的运动矢量确定所述第一块的预测块的像素位置;以及
从所述基于运动场的参考帧确定所述预测块的像素位置的值。
16.根据权利要求13所述的装置,其中,所述处理器被配置用于通过以下操作来使用所述运动场生成所述至少一个仿射单应模型:使用所述运动场来确定所述至少一个仿射单应模型的参数。
17.根据权利要求16所述的装置,其中,所述处理器被配置用于通过以下操作来使用所述运动场来确定所述至少一个仿射单应模型的参数:针对所述第一帧的块,使用所述块的中心像素位置和运动场、位于所述块的上方的第一相邻块的中心像素位置和运动场、位于所述块的下方的第二相邻块的中心像素位置和运动场、位于所述块的左侧的第三相邻块的中心像素位置和运动场以及位于所述块的右侧的第四相邻块的中心像素位置和运动场,确定形成用于所述块的仿射单应模型的参数。
18.根据权利要求13至17中任一项所述的装置,其中,所述重构参考帧是所述视频序列中的、与所述第一帧最接近的重构帧。
19.根据权利要求13所述的装置,其中,所述处理器被配置用于通过以下操作来使用所述基于运动场的参考帧对所述第一帧执行预测过程:针对待预测的所述第一帧内的块,在所述基于运动场的参考帧内执行运动搜索。
20.一种用于运动补偿预测的方法,包括:
从视频序列确定第一帧;
使用来自所述视频序列的、用于所述第一帧的前向帧间预测的第一参考帧和来自所述视频序列的、用于所述第一帧的后向帧间预测的第二参考帧中的至少一个,确定用于所述第一帧的至少一些块的运动场;
使用所述运动场,生成至少一个仿射单应模型;
生成基于运动场的参考帧,其中,生成基于运动场的参考帧包括使用重构参考帧生成与所述第一帧的所述块共位的所述基于运动场的参考帧的块,其中,生成所述基于运动场的参考帧的所述块包括,对于所述基于运动场的参考帧的每个块:将用于所述第一帧的每个块的相应的仿射单应模型应用于所述基于运动场的参考帧的共位块,以使用来自重构参考帧的像素值填充所述共位块内的像素位置;以及
使用所述基于运动场的参考帧对所述第一帧执行预测过程。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762588505P | 2017-11-20 | 2017-11-20 | |
US62/588,505 | 2017-11-20 | ||
US15/893,978 US11025950B2 (en) | 2017-11-20 | 2018-02-12 | Motion field-based reference frame rendering for motion compensated prediction in video coding |
US15/893,978 | 2018-02-12 | ||
PCT/US2018/047223 WO2019099084A1 (en) | 2017-11-20 | 2018-08-21 | Motion field-based reference frame rendering for motion compensated prediction in video coding |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110692246A CN110692246A (zh) | 2020-01-14 |
CN110692246B true CN110692246B (zh) | 2023-01-03 |
Family
ID=66533557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880036760.4A Active CN110692246B (zh) | 2017-11-20 | 2018-08-21 | 用于运动补偿预测的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11025950B2 (zh) |
EP (1) | EP3714601A1 (zh) |
CN (1) | CN110692246B (zh) |
WO (1) | WO2019099084A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11070813B2 (en) * | 2018-06-29 | 2021-07-20 | Intel Corporation | Global motion estimation and modeling for accurate global motion compensation for efficient video processing or coding |
US11665365B2 (en) * | 2018-09-14 | 2023-05-30 | Google Llc | Motion prediction coding with coframe motion vectors |
CN113596462B (zh) * | 2019-09-23 | 2022-07-01 | 杭州海康威视数字技术股份有限公司 | 编解码方法、装置及设备 |
CN113556567B (zh) * | 2020-04-24 | 2022-11-25 | 华为技术有限公司 | 帧间预测的方法和装置 |
CN113068041B (zh) * | 2021-03-12 | 2022-02-08 | 天津大学 | 一种智能仿射运动补偿编码方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6285711B1 (en) * | 1998-05-20 | 2001-09-04 | Sharp Laboratories Of America, Inc. | Block matching-based method for estimating motion fields and global affine motion parameters in digital video sequences |
CN107240147A (zh) * | 2017-05-26 | 2017-10-10 | 清华大学 | 图像渲染方法及*** |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012012582A1 (en) * | 2010-07-21 | 2012-01-26 | Dolby Laboratories Licensing Corporation | Reference processing using advanced motion models for video coding |
EP2823467B1 (en) * | 2012-03-05 | 2017-02-15 | Thomson Licensing | Filtering a displacement field between video frames |
WO2014122131A1 (en) * | 2013-02-05 | 2014-08-14 | Thomson Licensing | Method for generating a motion field for a video sequence |
US9230303B2 (en) * | 2013-04-16 | 2016-01-05 | The United States Of America, As Represented By The Secretary Of The Navy | Multi-frame super-resolution of image sequence with arbitrary motion patterns |
US10511852B1 (en) * | 2018-07-13 | 2019-12-17 | Tencent America LLC | Method and apparatus for video coding |
-
2018
- 2018-02-12 US US15/893,978 patent/US11025950B2/en active Active
- 2018-08-21 EP EP18769923.6A patent/EP3714601A1/en active Pending
- 2018-08-21 CN CN201880036760.4A patent/CN110692246B/zh active Active
- 2018-08-21 WO PCT/US2018/047223 patent/WO2019099084A1/en unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6285711B1 (en) * | 1998-05-20 | 2001-09-04 | Sharp Laboratories Of America, Inc. | Block matching-based method for estimating motion fields and global affine motion parameters in digital video sequences |
CN107240147A (zh) * | 2017-05-26 | 2017-10-10 | 清华大学 | 图像渲染方法及*** |
Non-Patent Citations (1)
Title |
---|
Algorithm Description of Joint Exploration Test Model 7 (JEM 7);Jianle Chen et al;《Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11》;20170819;1-21 * |
Also Published As
Publication number | Publication date |
---|---|
EP3714601A1 (en) | 2020-09-30 |
US11025950B2 (en) | 2021-06-01 |
WO2019099084A1 (en) | 2019-05-23 |
CN110692246A (zh) | 2020-01-14 |
US20190158873A1 (en) | 2019-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110741640B (zh) | 用于视频代码化中的运动补偿预测的光流估计 | |
US10555000B2 (en) | Multi-level compound prediction | |
US11284107B2 (en) | Co-located reference frame interpolation using optical flow estimation | |
CN110692246B (zh) | 用于运动补偿预测的方法和装置 | |
US20240098298A1 (en) | Segmentation-based parameterized motion models | |
CN110741641B (zh) | 用于视频压缩的方法和装置 | |
US11876974B2 (en) | Block-based optical flow estimation for motion compensated prediction in video coding | |
CN107205156B (zh) | 通过缩放的运动矢量预测 | |
US8908767B1 (en) | Temporal motion vector prediction | |
US20240171733A1 (en) | Motion field estimation based on motion trajectory derivation | |
CN111886868B (zh) | 用于替代参考帧渲染的自适应时间滤波的方法和装置 | |
WO2023205371A1 (en) | Motion refinement for a co-located reference frame | |
WO2023219616A1 (en) | Local motion extension in video coding |
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 |