[go: up one dir, main page]

CN118077203A - 具有明确信示的扩展旋转的经扭曲的运动补偿 - Google Patents

具有明确信示的扩展旋转的经扭曲的运动补偿 Download PDF

Info

Publication number
CN118077203A
CN118077203A CN202180100433.2A CN202180100433A CN118077203A CN 118077203 A CN118077203 A CN 118077203A CN 202180100433 A CN202180100433 A CN 202180100433A CN 118077203 A CN118077203 A CN 118077203A
Authority
CN
China
Prior art keywords
motion
current block
rotation angle
matrix
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180100433.2A
Other languages
English (en)
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 CN118077203A publication Critical patent/CN118077203A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/527Global motion vector estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation

Landscapes

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

Abstract

解码当前块包括:从压缩比特流中解码用于预测当前块的运动参数;从压缩比特流中解码旋转角度;使用运动参数和旋转角度来获得扭曲矩阵;以及通过将当前块投射到参考帧中的四边形来获得预测块。一种用于解码当前块的计算装置包括处理器,处理器被配置成确定当前块的预测模型;以及通过将当前块投射到参考帧中的四边形来获得预测块。确定预测模型包括:确定是使用运动矢量、局部扭曲模型还是全局运动模型来预测当前块;获得预测模型的运动参数;从压缩比特流中解码旋转角度;使用运动参数和旋转角度来获得扭曲矩阵。

Description

具有明确信示的扩展旋转的经扭曲的运动补偿
背景技术
数字视频流可以使用帧序列或静止图像来表示的视频。数字视频可以用于各种应用,包括例如视频会议、高清视频娱乐、视频广告或用户生成视频的共享。数字视频流可以包含大量数据并且消耗大量计算或通信资源以用于处理、传输或存储视频数据的计算装置。已经提出各种方法来减少视频流中的数据量,包括压缩和其它编码技术。
发明内容
本公开大体上涉及编码和解码视频数据,并且更具体地,涉及使用明确信示(explicitly signaled)的扩展旋转对视频帧的块进行编码和解码。
第一方面是一种用于解码当前块的方法。方法包括从压缩比特流中解码用于预测当前块的运动参数;从压缩比特流中解码旋转角度;使用运动参数和旋转角度来获得扭曲(warping)矩阵;以及通过将当前块投射到参考帧中的四边形来获得预测块。
第二方面是一种用于解码当前帧的当前块的计算装置。计算装置包括处理器,处理器被配置成确定当前块的预测模型;并且通过将当前块投射到参考帧中的四边形来获得预测块。处理器被配置成通过以下步骤来确定预测模型:确定是使用运动矢量、局部扭曲模型还是全局运动模型来预测当前块;获得预测模型的运动参数;从压缩比特流对旋转角度进行解码;使用运动参数和旋转角度来获得扭曲矩阵。
第三方面是一种对当前块进行代码化的方法。方法包括获得用于对当前块进行代码化的运动参数;获得旋转角度以应用于运动参数;使用运动参数和旋转角度来获得扭曲矩阵;以及使用扭曲矩阵来获得预测块。
在实施例的以下具体实施方式、所附权利要求书和附图中公开本公开的这些和其它方面。
附图说明
本文的描述参考以下描述的附图,其中,在多个附图中,相似的附图标记指代相似的部分。
图1是视频编码和解码系统的示意图。
图2是可以实施发送站或接收站的计算装置的示例的框图。
图3是待编码且随后解码的一般视频流的图。
图4是根据本公开的实施方案的编码器的框图。
图5是根据本公开的实施方案的解码器的框图。
图6是示出待编码或解码的视频帧的块的像素投射的示例的图。
图7是示出使用与参考帧相关联的模型扭曲视频帧的块的示例的图。
图8是用于生成预测块以使用经扭曲的运动补偿对帧进行编码或解码的过程的流程图。
图9是用于生成预测块以对当前帧的块进行编码或解码的过程900的流程图。
图10是用于对当前块进行解码的过程1000的流程图。
具体实施方式
视频压缩方案可以包括将相应图像或帧分解成诸如块的较小部分,以及使用限制输出中的相应块所包括的信息的技术生成输出比特流。可以对编码的比特流进行解码,以根据有限的信息重新创建源图像。
一般的视频压缩和解压缩方案使用假设块之间或块内的纯平移运动的运动补偿来预测待编码或解码的帧的块内的运动。运动矢量可以用于在参考帧中找到(例如,识别、定位、选择等)代码化块的预测。可以首先在参考帧中映射当前块的位置(例如,左上像素的位置(x0,y0)或中心像素的位置(xc,yc))。然后,参考帧中的位置可以通过运动矢量移位以识别目标参考块。运动矢量可以具有亚像素精度(例如,1/8像素精度)。
然而,并不是块内的所有运动都可以使用相对于参考帧的参考块的平移运动模型有效率地描述。例如,一些运动可以是经扭曲的运动,该经扭曲的运动可以包括扩缩(scaling)、错切(shearing)或旋转运动,无论是单独地还是与平移运动一起。经扭曲的运动可以是全局的,也可以是局部的。为了说明,块可以包括可以被建模为仿射变换的经扭曲的运动。仿射变换模型可以通过公式(1)将在当前块的(x,y)处的像素投射到在参考帧中的(x′,y′)处的预测像素。
在公式(1)中,元组(c,f)对应于可以在平移模型中使用的常规运动矢量;参数a和e可以用于控制垂直轴和水平轴中的扩缩因子,并与参数b和d一起决定(例如,确定、设置等)旋转角度。虽然仿射变换模型用作本文的说明性示例,但是扭曲模型通常可以是单应模型。
在一些情况下,例如,经扭曲的运动可以归因于相机抖动、平移或缩放(zooming),并且可适用于当前帧的所有或至少大多数块。因此,该运动对于帧来说是“全局的”。全局运动本身可以是平移运动。相应全局模型(在本文中称为“全局运动模型”)可以与可用于对当前帧进行代码化的参考帧中的至少一些参考帧相关联。全局运动模型可以捕获帧级别扩缩和旋转。因此,全局运动模型可以用于主要关注整个帧上的刚体运动的设置。全局运动模型可以使用用于获得全局运动模型的任何已知技术获得。
可以在正在编码的当前帧与参考帧之间计算一组全局运动参数。就扭曲误差(通过将整个参考帧扭曲到当前帧并计算误差而获得)而言确知为“好”的参数可以在该参考的比特流中进行传送。如果没有找到好的全局参数,则可用于用对应参考代码化的该帧中的块的唯一全局运动选择将是零运动。
在一些情况下,帧中的对象可能具有独立的运动,或者可能分布在不同的深度。在此类情况下,全局运动模型可能不适当地描述包括这些对象或其部分的块中的运动。如下文进一步描述,可以通过根据局部适配的扭曲模型(在本文中称为局部扭曲模型)对参考帧进行扭曲来获得当前块的预测块。局部适配的扭曲模型是指局部运动模型,其单应性参数可以根据当前块的一个或多个重构相邻块的运动来估计。
局部扭曲模型可以使用用于获得局部扭曲模型的任何已知技术获得。在示例中,并且如下文进一步描述,经扭曲的运动补偿可以用于生成用于对视频帧的各个块进行编码或解码的预测块。可以基于视频帧内与当前块相邻的邻居块的扭曲模型来确定可用于预测待编码的当前块的经扭曲的运动的投射样本。可以基于投射样本来确定要用于生成预测块的投射模型的参数。然后,可以通过使用投射模型的参数将当前块的像素投射到参考帧内的经扭曲的片块来生成预测块,使得可以使用预测块对当前块进行编码或解码。在一些实施方案中,经扭曲的片块可以是在参考帧中具有由投射模型的参数指示的形状和位置的非矩形片块。
总而言之,可以根据(例如,使用等)包括运动参数或可以使用运动参数描述的预测模型来预测当前块。预测模型可以是运动矢量,并且运动参数可以是或可以包括运动矢量的水平偏移和竖直偏移。预测模型可以是全局扭曲模型,并且运动参数可以是或可以包括全局扭曲模型的全局运动参数。预测模型可以是局部扭曲模型,并且运动参数可以是或可以包括局部扭曲模型的局部运动参数。其它预测模型也是可能的。运动参数可以包括2、4、6、9或其它数量的参数,这取决于预测或扭曲模型的类型。众所周知,可以使用2个参数描述运动矢量或平移模型;可以使用4个参数描述相似性投射;可以使用6个参数描述仿射投射;并且可以使用9个参数描述单应投射。
然而,上述运动参数可能缺乏精确地表示特定块的真实世界经扭曲的运动模型的粒度。例如,运动参数(例如,预测模型)可能不够灵活或粒度不足以针对特定代码化块的局部上下文进行定制(例如,拟合,精确建模等)。例如,并且如下文进一步描述,用于对当前块进行编码的局部运动参数是根据当前块的局部上下文(例如,重构的相邻块)来估计。因此,由于当前块的局部扭曲模型是拟合当前块的相邻块中的运动的导出模型,所以关于局部扭曲模型能够如何准确地拟合(例如,匹配、近似等)块的实际运动模型可能存在限制。类似地,使用运动模型或全局运动模型获得的预测块可能不能充分准确地拟合当前块的实际运动模型。
根据本公开的实施方案将旋转角度应用于当前块的运动参数,以获得更好地匹配(例如,描述等)当前块的预测块。通过获得与当前块更好地匹配的预测块,可以减少当前块与预测块之间的残余误差。为了对当前块进行编码,编码器可以识别运动参数和旋转角度。编码器可以将运动参数和旋转角度编码在压缩比特流中。为了对当前块进行解码,解码器可以解码来自压缩比特流的运动参数和旋转角度。解码器可以将旋转角度应用于运动参数以获得当前块的预测块。
本文描述具有明确信示的扩展旋转的经扭曲的运动补偿的进一步细节,首先参考可以实施所述经扭曲的运动补偿的系统。
图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例如相机,或可以感测图像(诸如操作计算装置200的用户的图像的现有或以后开发的任何其它图像感测装置220。图像感测装置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,该块可以包含对应于例如帧306中的16x16像素的数据。块310还可以被布置成包括来自像素数据的一个或多个片段308的数据。块310也可以具有任何其它合适的大小,诸如4×4像素、8×8像素、16×8像素、8×16像素、16×16像素,或更大。除非另有说明,否则术语块和宏块在本文中可互换使用。
图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,可以使用帧内预测(intra-frame prediction)(也称为内预测(intra-prediction))或帧间(inter-frame prediction)预测(也称为间预测(inter-prediction))对相应块进行编码。在任何情况下,都可以形成预测块。在内预测的情况下,预测块可以由先前已经编码和重构的当前帧中的样本形成。在间预测的情况下,预测块可以由一个或多个先前构建的参考帧中的样本形成。下面关于图6、7和8讨论用于形成预测块的实施方案,例如,使用经扭曲的运动补偿将当前块的像素投射到参考帧的经扭曲的片块。
接下来,仍然参考图4,可以在内/间预测级402从当前块中减去预测块以产生残差块(也称为残差)。变换级404使用基于块的变换将残差变换为例如频域中的变换系数。量化级406使用量化器值或量化级别将变换系数转换为称为量化变换系数的离散量子值。例如,变换系数可以除以量化器值并被截断。量化的变换系数然后由熵编码级408进行熵编码。然后将经熵编码的系数与用于解码块的其它信息一起输出到压缩比特流420,这些信息可以包括例如所使用的预测类型、变换类型、运动矢量和量化器值。压缩比特流420可以使用诸如可变长度代码化(VLC)或算术代码化的各种技术格式化。压缩比特流420还可以称为编码视频流或编码视频比特流,并且术语将在本文中互换使用。
图4中的重构路径(由虚连接线示出)可以用于确保编码器400和解码器500(下文描述)使用相同的参考帧来解码压缩比特流420。重构路径执行与下文更详细地讨论的解码过程期间发生的功能类似的功能,包括在去量化级410处对量化的变换系数进行去量化,以及在逆变换级412处对去量化的变换系数组进行逆变换以产生派生残差块(也称为派生残差)。在重构级414,可以将在内/间预测级402预测的预测块与派生残差相加以创建重构块。环路过滤级416可以应用于重构块以减少例如块伪影(blocking artifact)的失真。
编码器400的其它变体可以用于对压缩比特流420进行编码。例如,对于某些块或帧,基于非变换的编码器可以在没有变换级404的情况下直接量化残差信号。在另一实施方案中,编码器可以具有组合在公共级中的量化级406和去量化级410。
图5是根据本公开的实施方案的解码器500的框图。解码器500可以例如通过提供存储在存储器204中的计算机软件程序而在接收站106中实施。计算机软件程序可以包括机器指令,该机器指令在由诸如CPU 202的处理器执行时使接收站106以图5中描述的方式对视频数据进行解码。解码器500还可以用包括在例如发送站102或接收站106中的硬件实施。
类似于上面讨论的编码器400的重构路径,解码器500在一个示例中包括以下级以执行各种功能,以从压缩比特流420产生输出视频流516:熵解码级502、去量化级504、逆变换级506、内/间预测级508、重构级510、环路过滤级512和去块(deblocking)过滤级514。解码器500的其它结构变化可以用于对压缩比特流420进行解码。
当呈现压缩比特流420以用于解码时,压缩比特流420内的数据元素可以由熵解码级502解码以产生一组量化的变换系数。去量化级504对量化的变换系数进行去量化(例如,通过将量化的变换系数乘以量化器值),并且逆变换级506对去量化的变换系数进行逆变换以产生派生残差,该派生残差可以与由编码器400中的逆变换级412创建的派生残差相同。使用从压缩比特流420解码的头信息,解码器500可以使用内/间预测级508来创建与例如在内/间预测级402在编码器400处创建的预测块相同的预测块。下面关于图6、7和8讨论用于形成与在编码器400中创建的预测块相同的预测块的实施方案,例如,使用经扭曲的运动补偿将当前块的像素投射到参考帧的经扭曲的片块。在重构级510处,可以将预测块与派生残差相加以创建重构块。环路过滤级512可以应用于重构块以减少块伪影。
其它过滤可以应用于重构块。在此示例中,去块过滤级514应用于重构块以减少块失真,并且输出结果作为输出视频流516。输出视频流516也可以被称为解码视频流,并且术语将在本文中互换使用。解码器500的其它变体可以用于对压缩比特流420进行解码。例如,解码器500可以在没有去块过滤级514的情况下产生输出视频流516。
图6是示出待编码或解码的视频帧的块的像素投射的示例的图。视频帧内的块可以包括经扭曲的运动,该经扭曲的运动可能无法使用经由普通运动补偿(例如,一般的平移间预测)确定的运动矢量准确地预测。例如,块内的运动可能以不完全线性的方式在任意数量的不同方向上扩缩、旋转或以其它方式移动。普通运动补偿可能会遗漏落在矩形几何形状之外的运动的某些部分,或者使用不必要数量的比特来预测运动。因此,可以基于块的扭曲模型形成或生成用于对块进行编码或解码的预测块。
经扭曲的运动补偿可以用于基于块的像素到参考帧的投射对块进行编码或解码。经扭曲的运动补偿在本文中可以被称为局部自适应经扭曲的运动补偿,因为它在比整个帧更小的区域上执行,诸如如本文的示例中所描述基于块执行。像素的投射示出块的像素如何扩缩、旋转或以其它方式移动,当描述确定块的经扭曲的运动时像素的投射也称为投射样本。在一些实施方案中,可以使用邻居块中的一个或多个邻居块的先前编码或解码的投射样本来估计投射样本。然而,一个或多个邻居块的先前编码或解码的投射样本可能没有清楚地指示待编码或解码的块内的运动。因此,在一些实施方案中,可以与一个或多个邻居块的先前编码或解码的投射样本协同地使用附加数据来确定用于估计待编码或解码的块的经扭曲的运动的投射样本,该附加数据诸如待编码或解码的块的一个或多个运动矢量。
在一些实施方案中,包括在比特流中的数据可以指示用于对待编码或解码的块的邻居块进行编码或解码的扭曲模型。指示邻居块的扭曲模型的数据可以进一步指示用于对邻居块进行编码或解码的参考帧。由于相邻块更可能在编码和解码过程中使用公共参考帧进行预测,因此即使不太可能,也有可能使用与当前块相同的参考块对在当前块之前编码或解码的邻居块进行编码或解码。因此,在一些实施方案中,用于对邻居块进行编码或解码的投射样本也可以用于对块进行编码或解码,其中该块使用与邻居块相同的参考帧。
例如,如图6所示,当前帧600包括块602A、602B、602C、602D、602E和602F。块602F是待编码的当前块并且包括一些经扭曲的运动。块602D是包括在604处的像素运动的先前编码的邻居块。块602E是包括在606处的像素运动的另一先前编码的邻居块。块602A是包括在608处的像素运动的另一先前编码的邻居块。在一些实施方案中,在604、606、608处示出的像素运动或任何组合表示投射样本,该投射样本示出相应块的像素如何响应于经扭曲的运动补偿而移动。例如,关于块602A,在箭头起始的位置处示出像素的预测前位置,并且在箭头终止的位置处示出像素的预测后位置。
包括与当前帧600相对应的数据的比特流包括关于用于对块602A、602D和602E进行编码的扭曲模型的信息。在这些块的预测使用公共参考帧作为块602F的条件下,块602A、602D和602E的扭曲模型,以及因此由运动604、606和608表示的投射样本可以用于确定块602F的扭曲模型。在一些实施方案中,将当前帧600内的投射样本的像素位置坐标投射到公共参考帧,以识别将用于生成用于对块602F进行编码的预测块的非矩形经扭曲的片块。关于图8论述用于使用此类投射样本生成预测块的方法。
在一些实施方案中,可能未使用经扭曲的运动补偿对待编码或解码的块的邻居块进行编码或解码。在这些情况下,经由普通运动补偿确定的那些邻居块的运动矢量可以用作用于确定待编码或解码的块的扭曲模型的投射样本。例如,运动604、606和608可以分别表示块602D、602E和602A相对于参考帧的运动矢量。这些运动矢量可以用于通过如上所述到参考帧的类似投射来预测块602F的经扭曲的运动。
图7是示出使用与参考帧相关联的模型扭曲视频帧的块的示例的图。在700处示出将待编码或解码的当前块704的像素投射到的参考帧,并且在702处示出包括当前块的当前帧。参考帧700包括经扭曲的片块706,其表示如何基于扭曲模型将当前块704的像素投射到参考帧700,该扭曲模型的参数是根据来自例如当前块704的邻居块的投射样本来估计的。
当前帧702内的像素708表示图6的当前帧600的块中所示的像素的预测前位置,而参考帧700内的像素710表示这些像素的对应预测后位置。因此,可以基于像素708和710来确定投射样本。基于使用当前块704的邻居块(图7中未示出)确定的投射样本,将当前块704的像素投射到经扭曲的片块706。
经扭曲的片块706可以用于生成用于对当前块704进行编码或解码的预测块。使用投射模型将当前块704的像素投射到经扭曲的片块706,该投射模型指示当投射到参考帧700中时如何扩缩、旋转或以其它方式移动像素。在一些实施方案中,可以通过与编码比特流内的邻居块相关联的数据指示要使用的投射模型。使用当前块704的邻居块确定的投射样本可以用于确定投射模型的参数。参数的数量和功能取决于要使用的特定投射模型。例如,在投射模型是单应投射模型的情况下,可以使用八个参数示出当前块704内的像素位置如何在x轴或y轴之中扩缩或平移。所使用的特定投射模型进一步确定经扭曲的片块706的可能形状。例如,由于八个参数与单应投射模型一起用于表示当前块704的四个像素的x和y坐标,因此与当前块704相对应的经扭曲的片块706可以是任何非矩形四边形。然而,在使用包括六个参数的仿射投射模型的情况下,保持像素投射的线性,使得所得到的经扭曲的片块706可以是任何非矩形平行四边形,但不是任何非矩形四边形。经扭曲的片块在本文中也可以称为经扭曲的预测块。
图8是用于生成预测块以使用经扭曲的运动补偿对帧进行编码或解码的过程800的流程图。过程800可以例如实施为可以由诸如发送站102或接收站106的计算装置执行的软件程序。例如,软件程序可以包括机器可读指令,该机器可读指令可以存储在诸如存储器204或辅助存储装置214的存储器中,并且当由诸如CPU 202的处理器执行时可以使计算装置执行过程800。过程800可以使用专用硬件或固件实施。如上所述,一些计算装置可以具有多个存储器或处理器,并且过程800中描述的操作可以使用多个处理器、存储器或两者分布。
在802处,确定用于预测待编码或解码的当前块的经扭曲的运动的投射样本。基于与在当前块之前编码或解码的与当前块相邻的邻居块相关联的数据来确定投射样本。投射样本用于预测用于当前块的扭曲模型,其中,扭曲模型指示参考帧内的向其投射当前块的特定位置,例如通过指示如何拉伸、缩放、旋转或以其它方式操纵当前块的像素。与邻居块相关联并用于确定投射样本的数据可以包括扭曲模型,该扭曲模型指示邻居块的像素被扭曲而生成用于对邻居块进行编码或解码的预测块的方式。在一些实施方案中,在包括邻居块的编码视频数据的比特流内识别指示与邻居块相关联的扭曲模型的数据。指示扭曲模型的数据可以存储在编码器或解码器可访问的缓冲器中,而不是包括在比特流中。
在一些实施方案中,使用与用于对当前块进行编码或解码的参考帧相同的参考帧来对邻居块进行编码或解码。因此,用于邻居块的扭曲模型可以指示公共参考帧。在这种情况下,可以从参考帧中选择与邻居块的像素相对应的一个或多个像素。因此,可以基于与参考帧的选定像素相对应的运动矢量来确定要用于预测当前块的经扭曲的运动的投射样本。在一些实施方案中,基于参考帧的选定像素和邻居块的对应像素的位置来确定与参考帧的选定像素相对应的运动矢量。还可以基于对应于参考帧像素的运动矢量来确定将用于预测当前块的经扭曲的运动的投射样本,该参考帧像素对应于多个邻居块的像素。
在一些实施方案中,基于邻居块的大小和用于对邻居块进行编码或解码的扭曲模型的效率来确定用于预测当前块的经扭曲的运动的投射样本。例如,可以使用来自一个或多个邻居块的投射样本的加权平均值来预测当前块的经扭曲的运动。邻居块的大小可以与邻居块的投射样本影响平均值的程度相关,因为更大数量的投射样本可以指示更精确的扭曲模型。也就是说,因为更大邻居块通常比更小邻居块包括更大数量的投射样本,所以与来自更小邻居块的投射样本相比,在计算加权平均值时,可以给予来自更大邻居块的投射样本更大的权重。单独地,邻居块的量化残差可以指示邻居块的扭曲模型的效率。例如,量化残差的更小值可以指示对应扭曲模型的更高精度,因此可以选择具有更小值的量化残差的邻居块的部分,以提高用于确定当前块的投射样本的邻居块的效率。
如上文简要地提及,一个或多个邻居块可能没有使用经扭曲的运动补偿进行编码或解码,使得使用普通运动补偿来执行这些邻居块的预测。因此,邻居块的扭曲模型可以指示邻居块的运动矢量。然后可以使用邻居块的运动矢量来确定用于预测当前块的经扭曲的运动的投射样本。在一些实施方案中,基于来自使用普通运动补偿编码或解码的多个邻居块的运动矢量来确定将用于预测当前块的经扭曲的运动的投射样本。
在一些实施方案中,基于来自使用普通运动补偿编码或解码的邻居块的运动矢量和与使用经扭曲的运动补偿编码和解码的邻居块的像素相对应的选定参考帧像素的组合来确定将用于预测当前块的经扭曲的运动的投射样本,例如其中相应邻居块的扭曲模型没有将当前块的像素准确地投射到参考帧(例如,因为由那些邻居块确定的投射样本没有给出当前块的运动的全景)。在从使用经扭曲的运动补偿编码或解码的邻居块中确定的投射样本太昂贵的情况下,可以使用运动矢量数据来确定用于预测当前块的扭曲模型的投射样本,以降低总成本。例如,如果基于经扭曲的运动补偿确定的投射样本使用超过阈值量的存储器来编码到比特流或以其它方式传送给其它块使用,则可以使用运动矢量以通过对投射样本的部分进行估计来降低总成本。
在804处,基于在802处确定的投射样本来确定投射模型的参数。投射模型是用于基于使用所确定的投射样本预测的经扭曲的运动来将当前块的像素投射到参考帧的一部分的参数模型。在一些实施方案中,投射模型是仿射投射模型、单应投射模型、旋转缩放投射模型、插值投射模型等。
不同投射模型可以使用不同数量的参数来促进投射。例如,仿射投射模型可以使用六个参数来根据使用所确定的投射样本预测的经扭曲的运动将当前块的像素投射到参考帧。一般来说,仿射投射是由六个参数定义的两个空间的坐标之间的线性变换。两个空间之间的仿射投射定义如下:
x=a*X+b*Y+c;以及
y=d*X+e*Y+f。
在这些等式中,(x,y)和(X,Y)分别是两个空间的坐标,即参考帧内的像素的位置和包括当前块的帧内的像素的位置。而且,a、b、c、d、e和f是仿射参数,并且是表示参考帧内的相应像素的位置与包括当前块的帧之间的关系的实数。其中,a和d表示沿着x轴的旋转因子或扩缩因子,b和e表示沿着y轴的旋转因子或扩缩因子,并且c和f分别表示沿着x轴和y轴的平移。在仿射投射模型遵循线性变换的情况下,使用仿射投射模型将当前块的像素投射到的经扭曲的片块可以是平行四边形。
在另一示例,单应投射模型可以使用八个参数来根据使用所确定的投射样本预测的经扭曲的运动将当前块的像素投射到参考帧。单应投射模型不受两个空间的坐标之间的线性变换的约束,使得定义单应投射的八个参数可以用于将当前块的像素投射到参考帧内的任何四边形片块。两个空间之间的单应投射定义如下:
以及
在这些等式中,(x,y)和(X,Y)分别是两个空间的坐标,即参考帧内的像素的位置和包括当前块的帧内的像素的位置。此外,a、b、c、d、e、f、g和h是单应参数,并且是表示参考帧与包括当前块的帧内的相应像素的位置之间的关系的实数。在这些参数中,a表示沿着x轴的固定扩缩因子,其中y轴的比例保持不变,b表示沿着x轴的扩缩因子,其与到块的中心点的y距离成比例,c表示沿着x轴的平移,d表示沿着y轴的扩缩因子,其与到块的中心点的x距离成比例,e表示沿着y轴的固定扩缩因子,其中x轴的比例保持不变,f表示沿着y轴的平移,g表示根据x轴的函数的x轴和y轴的因子的比例度,并且h表示根据y轴的函数的x轴和y轴的因子的比例度。
基于在802处确定的投射样本来确定投射模型的参数的值。在一些实施方案中,通过将当前块的运动矢量的对应值与使用邻居块确定的投射样本相加来确定参数的值。
在802处,可以基于用于确定投射样本的一个或多个邻居块所使用的投射模型来选择用于将当前块的像素投射到参考帧的投射模型。例如,在使用公共投射模型对大多数或所有邻居块进行编码或解码的情况下,可以选择公共投射模型作为用于对当前块进行编码或解码的投射模型。在一些实施方案中,在编码比特流内指示用于对相应邻居块进行编码或解码的投射模型。替选地,投射模型可以存储在编码器或解码器可访问的缓冲器中,而不是包括在比特流中。在此示例中,可以使用与当前块的邻居块相关联的多个扭曲模型或投射参数来估计投射模型。该估计可以指示可用于生成相应像素的实际投射位置与估计的投射模型的投射之间的最小均方误差的参数。例如,可以对根据与用于进行该估计的邻居块相关联的投射参数取平均来获得参数。因此,模型参数不一定在比特流中传输,因为编码器和解码器可以进行该估计。
在806处,使用在804处确定的投射模型的参数生成预测块。使用投射模型的参数将待编码或解码的当前块的像素投射到参考帧中的经扭曲的片块。在投射之前,当前块的相应像素被布置成大致矩形的几何形状。响应于投射,扭曲当前块的相应像素以对应于参考帧中的经扭曲的片块的几何形状。
在一些实施方案中,根据在804处讨论的投射模型,将当前块的像素投射到经扭曲的片块。基于在802处确定的投射样本来确定投射模型的参数,使得可以确定将参考帧内的当前块的像素投射到的坐标。参考帧的经扭曲的片块可以是平行四边形或其它非矩形四边形,这取决于所使用的投射模型和对应参数值。
然后可以对经扭曲的片块进行去扭曲,以将当前块返回到适合于预测当前块的矩形几何形状。例如,在将相应像素投射到参考帧的经扭曲的片块之后对经扭曲的片块的投射像素进行去扭曲可以包括将经扭曲的片块投射到矩形块。可以基于到矩形块的相应坐标平移,将参考帧的经扭曲的片块的像素位置坐标投射到矩形块。所得矩形块然后可以用作对当前块进行编码或解码的预测块。
在另一示例中,可以将经扭曲的片块的位置处的像素值复制到可用于预测当前块的矩形块内的对应位置。可以使用中间缓冲器将经扭曲的片块的像素值从参考帧复制到矩形块中。在未使用整数表示经扭曲的片块的复制像素值的情况下,可以使用像素插值来确定复制像素值(例如,通过近似子像素位置处的像素值)的整数值。
在实施方案中,过程800另外可以包括用于生成替选预测块和执行率失真分析以选择预测块或替选预测块中的一个作为用于对当前块进行编码或解码的最终预测块的操作。例如,可以基于非经扭曲的运动补偿来生成替选预测块。在这种情况下,可以基于当前块的相应像素的运动矢量使用普通运动补偿来生成替选预测块。替选地,可以使用与用于确定用于预测当前块的经扭曲的运动的投射样本的扭曲模型不同的扭曲模型来生成替选预测块。在另一替选方案中,可以使用与基于所确定的投射样本使用的投射模型不同的替选投射模型来生成替选预测块。根据本文的教导,可以生成多个候选替选预测块,使得从预测块和多个候选替选预测块中选择用于对当前块进行编码或解码的最终预测块。在一些情况下,可以基于不同的参考帧来生成不同的候选替选预测块。可以通过比较相应候选预测块的率失真值来执行选择最终预测块的率失真分析,使得选择最终预测块作为具有最低率失真值的候选预测块。
在另一示例中,过程800另外包括用于使用预测块对当前块进行编码或解码的一个或多个操作。在一些实施方案中,使用预测块对当前块进行编码包括:变换预测块的像素的值、量化变换的像素值、对量化的像素值进行熵编码以及对熵编码的像素值进行编码以生成编码比特流。使用预测块对当前块进行解码可以包括对从编码比特流接收的编码当前块的像素值进行熵解码、对熵解码的像素值进行去量化、对去量化的像素值进行逆变换以及使用预测块重构当前块。
图9是用于生成预测块以对当前帧的当前块进行编码或解码的过程900的流程图。过程900可以例如实施为可以由计算装置执行的软件程序,该计算装置例如图1的发送站102或接收站106。例如,软件程序可以包括机器可读指令,该机器可读指令可以存储在例如图2的存储器204或辅助存储装置214的存储器中,并且当由例如图2的CPU 202的处理器执行时可以使计算装置执行过程900。过程900可以使用专用硬件或固件实施。如上所述,一些计算装置可以具有多个存储器或处理器,并且过程900中描述的操作可以使用多个处理器、存储器或两者分配。过程900可以使用专用硬件或固件实施。可以使用多个处理器、存储器或两者。
过程900可以全部或部分地在图4的编码器400的内/间预测级402和/或图5的解码器500的内/间预测级508中实施。当在编码器中实施时,“代码化”意味着“编码”;当由解码器实施时,“代码化”意味着“解码”。
在902处,过程900获得用于对当前块进行代码化的运动参数。运动参数可以包括运动矢量的水平偏移和竖直偏移。运动参数可以包括参考帧的全局运动模型的参数。运动参数可以包括局部扭曲模型的参数。局部扭曲模型的运动参数被称为局部扭曲参数。如本文所述,可以使用当前块的重构相邻块来获得局部扭曲参数。全局扭曲模型或局部扭曲模型的运动参数被称为扭曲参数。在示例中,过程900确定是使用运动矢量、局部扭曲模型还是全局运动模型来预测当前块。
当在编码器中实施时,过程900可以通过确定用于对当前块进行编码的最佳预测模型来获得运动参数。预测模型包括特定的运动参数(即,运动参数的值)。编码器中可以有若干工具或技术可用来确定最佳预测模型。最佳预测模型可以是导致最低率失真值、最低预测误差等的若干预测模型之中的一个预测模型。确定最佳(例如,最优)预测模型的其它方式也是可能的。
过程900可以将运动参数编码在压缩比特流,诸如图4的压缩比特流420中。例如,在运动矢量的情况下,过程900可以将数据编码在压缩比特流中,解码器可以对该数据进行解码以获得运动矢量。例如,在全局运动模型的情况下,过程900可以对运动模型的参考帧级参数进行编码。例如,在仿射运动模型的情况下,编码器可以对参数(a,b,c,d,e,f)进行编码,这可以如上关于公式(1)所描述。取决于经扭曲的运动模型的类型,可以对更多或更少的参数进行编码。例如,在局部扭曲模型的情况下,过程900可以如上所述对运动参数进行编码。
当在解码器中实施时,过程900可以通过从编码比特流(诸如图5的压缩比特流420)解码或推断运动参数的至少子集来获得运动参数。在示例中,运动参数可以包括将使用当前块的重构相邻块导出局部扭曲模型的指示。例如,压缩比特流可以包括一个或多个语法元素,过程900可以使用这些语法元素来确定根据局部扭曲模型执行扭曲操作。
例如,关于运动矢量,过程900可以对来自压缩比特流的运动矢量偏移进行解码;可以对运动矢量的偏移的差分值进行解码,该差分值可以与另一运动矢量的偏移相加以获得运动矢量偏移;可以对运动矢量候选列表中的运动矢量候选者的索引进行解码;可以对指示另一块的运动矢量将用于当前块的语法元素进行解码;或可以以某种其它方式获得运动矢量偏移。关于全局运动模型,过程900可以对由编码器编码的运动参数进行解码。关于局部扭曲模型,过程900可以如本文所述对运动参数进行解码。因此,过程900可以对可以用于获得运动参数的一个或多个值进行解码,如本文所述。
在904处,过程900获得(例如,选择、计算、确定、选取等)旋转角度以应用于运动参数。也就是说,过程900使用旋转角度将额外的旋转应用于预测模型(例如,在预测模型之上等)。旋转角度是关于轴线测量的,该轴线可以是水平轴、垂直轴或某一其它轴。
当由编码器实施时,过程900可以在旋转角度的一范围内搜索最佳旋转角度。也就是说,过程900可以获得与旋转角度的该范围中的至少一些旋转角度相对应的相应预测块,并且选择与最佳率失真值、最小预测误差或某一其它度量相对应的旋转角度。在示例中,旋转角度的范围可以包括范围[-8°,+8°]。在示例中,旋转角度的范围可以包括角度[0°,360°]。然而,其它范围是可能的并且范围可以是范围[0°,360°]的子集。可以根据步长从范围中选择旋转角度范围中的至少一些角度。步长可以是0.25°、0.5°、1°、5°、10°或某一其它步长值。为了说明,假设步长为2,则旋转角度-8°、-6°、-4°、-2°等可以是范围[-8°,+8°]中的至少一些角度。
过程900可以将所获得的旋转角度编码在压缩比特流中。在示例中,过程900可以对旋转角度本身进行编码。在示例中,过程900可以对范围中的角度的索引进行编码。为了说明,在范围[-8°,+8°]中,假设步长为1,则-8°可以对应于索引0;-7°可以对应于索引1等。在示例中,在对旋转角度进行编码之前,过程900还可以对指示压缩比特流是否包括旋转角度的语法元素(例如,标志)进行编码。如果标志具有第一值(例如,1),则解码器可以从压缩比特流对旋转角度进行解码。如果标志具有第二值(例如,0),则压缩比特流不包括旋转角度。在示例中,过程900可以不对等于0的旋转角度进行编码。在示例中,可以对旋转角度进行熵编码。然而,将旋转角度写入(例如,编码到)压缩比特流的其它方式也是可用的。
当由解码器实施时,过程900可以通过从压缩比特流对旋转角度进行解码来获得旋转角度。在示例中,过程900可以对旋转角度本身的值进行解码。在示例中,过程900可以对旋转角度的索引进行解码。过程900可以从索引获得旋转角度。解码器可以首先对指示过程900是否将从压缩比特流获得旋转角度的语法元素进行解码。在示例中,可以对旋转角度进行熵解码。然而,从压缩比特流读取(例如,解码)旋转角度的其它方式也是可用的。
在906处,过程900使用运动参数和旋转角度来获得扭曲矩阵。
在预测模型是扭曲模型(例如,全局运动模型或局部扭曲模型)的情况下,可以使用公式(2)获得扭曲矩阵。
通过将运动参数(MP)的矩阵(也称为“原始扭曲矩阵”)乘以变换和旋转矩阵(TR)(也简称为“旋转矩阵”),可以获得扭曲矩阵(WM)。公式(2)假设仿射扭曲模型(即,运动参数a,b,...,f)。然而,如上文所提及,运动参数可以包括更多或更少的参数。θ是旋转角度;并且(xc,yc)是当前块的中心点的坐标。将运动参数(MP)的矩阵乘以变换和旋转矩阵(TR)得到公式(3)的扭曲矩阵(WM)。同样,可以通过将原始扭曲矩阵与旋转矩阵相乘来获得扭曲矩阵。
在预测模型是运动矢量的情况下,可以使用公式(4)获得扭曲矩阵,该公式将运动矢量转换成平移矩阵(TM),并且将平移矩阵(TM)乘以与上述旋转矩阵(TM)类似的旋转矩阵(TR)。
在平移矩阵(TM)中,Tx和Ty分别对应于水平偏移和竖直偏移。在示例中,Tx可以是运动矢量的水平偏移WVx,并且Ty可以是运动矢量的竖直偏移MVy。在示例中,运动矢量可以在分数像素运动矢量精度q中指定,或者具有分数像素运动矢量精度q。在此情况下,运动矢量分量可以被转换成整数像素值。也就是说,可以将运动矢量的精度改变为整数精度以用于平移矩阵。因此,Tx=q*MVx和Ty=q*MVy。例如,如果q=1/8,则Tx=MVx/8和Ty=MVy/8。
在908处,过程900使用扭曲矩阵来获得预测块。过程900根据扭曲矩阵对参考帧进行扭曲。使用扭曲矩阵将当前块投射到参考系中的四边形。也就是说,可以将当前块的像素预测为在四边形片块中的投射位置处的像素的相应值。例如,给定当前块的位置(xi,yi)处的像素,预测块的投射像素(x′i,y′i)可以使用等式(5)。在等式(5)中,(xi,yi)和(x′i,y′i)可以是使用任何点作为中心(即原点)的坐标系中的坐标。在一个示例中,原点可以是当前块的中心,也可以是旋转和/或缩放的中心。
如关于图4所描述,当过程900在编码器中实施时,可以通过从当前块减去预测块来获得残差块。可以在压缩比特流中对残差块进行编码。如关于图5所描述,当过程900在解码器中实施时,可以从压缩比特流中解码残差块,并将残差块与预测块相加以获得当前块。
图10是用于对当前块进行解码的过程1000的流程图。过程1000可以例如实施为可以由计算装置执行的软件程序,该计算装置诸如图1的发送站102或接收站106。例如,软件程序可以包括机器可读指令,该机器可读指令可以存储在诸如图2的存储器204或辅助存储装置214的存储器中,并且当由诸如图2的CPU 202的处理器执行时可以使计算装置执行过程1000。过程1000可以使用专用硬件或固件实施。如上所述,一些计算装置可以具有多个存储器或处理器,并且过程1000中描述的操作可以使用多个处理器、存储器或两者分布。过程1000可以使用专用硬件或固件实施。可以使用多个处理器、存储器或两者。过程1000可以在图5的解码器500的内/间预测级508中全部地或部分地实施。
在1002处,过程1000从压缩比特流中解码用于预测当前块的运动参数。在过程900由解码器实施的情况下,解码运动参数可以如关于图9的902所描述。运动参数可以包括运动矢量。运动参数可以包括与参考帧相关联的全局运动参数。运动参数可以包括将使用当前块的重构相邻块导出局部扭曲模型的指示(例如,指示将使用当前块的重构相邻块导出局部扭曲模型的一个或多个语法元素)。
在1004处,过程1000从压缩比特流解码旋转角度。在过程900在解码器中实施的情况下,解码旋转角度可以如关于图9的904所描述。在示例中,可以从作为角度范围[0°,360°]的子集的范围中选择旋转角度。例如,旋转角度可以在-8度到+8度的范围内。
在1006处,过程1000使用旋转角度获得扭曲矩阵。获得扭曲矩阵可以如关于图9所描述。
在示例中,如上所述,使用运动参数和旋转角度获得扭曲矩阵可以包括将运动矢量转换成平移矩阵;使用旋转角度获得旋转矩阵;以及将旋转矩阵和平移矩阵相乘以获得扭曲矩阵。在示例中,将运动矢量转换成平移矩阵可以包括将运动矢量的精度改变为用于平移矩阵的整数精度。
在示例中,如上所述,使用运动参数和旋转角度获得扭曲矩阵可以包括获得扭曲参数;使用扭曲参数获得原始扭曲矩阵;使用旋转角度获得旋转矩阵;以及将原始扭曲矩阵和旋转矩阵相乘以获得扭曲矩阵。
在1008处,如上所述,过程1000通过将当前块投射到参考帧中的四边形来获得预测块。
为了简化解释,图8、9和10的过程800、900和1000分别被描绘和描述为一系列步骤或操作。然而,根据本公开的步骤或操作可以按各种顺序和/或同时发生。另外,可以使用本文未提出和描述的其它步骤或操作。此外,可能不需要所有说明的步骤或操作来实施根据所公开的主题的方法。
上述编码和解码的方面说明编码和解码技术的一些示例。然而,应理解,如权利要求中所使用的那些术语,编码和解码可以意味着压缩、解压缩、变换或数据的任何其它处理或改变。
词语“示例”在本文中用于表示充当示例、例子或说明。本文描述为“示例”的任何方面或设计未必解释为比其它方面或设计优选或有利。相反,使用词语“示例”旨在以具体方式呈现概念。如本申请中使用的,术语“或”旨在表示包括性“或”,而不是排他性“或”。也就是说,除非另外指定或从上下文中清楚可知,否则“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 (21)

1.一种用于解码当前块的方法,所述方法包括:
从压缩比特流中解码用于预测所述当前块的运动参数;
从所述压缩比特流中解码旋转角度;
使用所述运动参数和所述旋转角度来获得扭曲矩阵;以及
通过将所述当前块投射到参考帧中的四边形来获得预测块。
2.根据权利要求1所述的方法,其中,所述运动参数包括运动矢量。
3.根据权利要求2所述的方法,其中,使用所述运动参数和所述旋转角度来获得所述扭曲矩阵包括:
将所述运动矢量转换成平移矩阵;
使用所述旋转角度获得旋转矩阵;以及
将所述旋转矩阵和所述平移矩阵相乘以获得所述扭曲矩阵。
4.根据权利要求3所述的方法,其中,将所述运动矢量转换成所述平移矩阵包括:
将所述运动矢量的精度改变为整数精度以用于所述平移矩阵。
5.根据权利要求1所述的方法,其中,所述运动参数包括与所述参考帧相关联的全局运动参数。
6.根据权利要求1所述的方法,其中,所述运动参数包括将使用所述当前块的重构相邻块来导出局部扭曲模型的指示。
7.根据权利要求6所述的方法,其中,使用所述运动参数和所述旋转角度来获得所述扭曲矩阵包括:
获得扭曲参数;
使用所述扭曲参数获得原始扭曲矩阵;
使用所述旋转角度获得旋转矩阵;以及
将所述原始扭曲矩阵和所述旋转矩阵相乘以获得所述扭曲矩阵。
8.根据权利要求1所述的方法,其中,所述旋转角度是从作为[0°,360°]的子集的范围中选择的。
9.一种用于解码当前帧的当前块的计算装置,所述计算装置包括:
处理器,所述处理器被配置成:
确定所述当前块的预测模型,其中,所述处理器被配置成通过以下步骤来确定所述预测模型:
确定是使用运动矢量、局部扭曲模型还是全局运动模型来预测所述当前块;
获得所述预测模型的运动参数;
从压缩比特流中解码旋转角度;
使用所述运动参数和所述旋转角度来获得扭曲矩阵;以及
通过将所述当前块投射到参考帧中的四边形来获得预测块。
10.根据权利要求9所述的计算装置,其中,获得所述预测模型的所述运动参数包括:
使用所述当前帧的重构相邻块来获得所述局部扭曲模型的局部扭曲参数。
11.根据权利要求9所述的计算装置,
其中,获得所述预测模型的所述运动参数包括:
响应于确定使用所述运动矢量来预测所述当前块,从所述压缩比特流中解码所述运动矢量;以及
其中,使用所述运动参数和所述旋转角度获得所述扭曲矩阵包括:
将所述运动矢量转换成平移矩阵;
使用所述旋转角度获得旋转矩阵;以及
将所述旋转矩阵和所述平移矩阵相乘以获得所述扭曲矩阵。
12.根据权利要求10所述的计算装置,其中,将所述运动矢量转换成所述平移矩阵包括:
将所述平移矩阵中的所述运动矢量的精度改变为整数精度。
13.根据权利要求9所述的计算装置,其中,从所述压缩比特流中解码所述旋转角度包括:
从所述压缩比特流中解码指示所述旋转角度的索引。
14.一种对当前块进行代码化的方法,所述方法包括:
获得用于对所述当前块进行代码化的运动参数;
获得旋转角度以应用于所述运动参数;
使用所述运动参数和所述旋转角度来获得扭曲矩阵;以及
使用所述扭曲矩阵来获得预测块。
15.根据权利要求13所述的方法,其中,所述运动参数包括运动矢量的偏移。
16.根据权利要求13所述的方法,其中,所述运动参数包括参考帧的全局运动模型的参数。
17.根据权利要求13所述的方法,其中,所述运动参数包括使用所述当前块的重构相邻块获得的扭曲模型的参数。
18.根据权利要求13所述的方法,其中,获得所述旋转角度以应用于所述运动参数包括:
从压缩比特流中解码所述旋转角度。
19.根据权利要求13所述的方法,其中,获得所述旋转角度以应用于所述运动参数包括:
从旋转角度范围中选择所述旋转角度。
20.根据权利要求18所述的方法,其中,所述旋转角度范围包括作为[0°,360°]的子集的范围中的角度。
21.根据权利要求18所述的方法,还包括:
对压缩比特流中的所述旋转角度的索引进行编码。
CN202180100433.2A 2021-07-15 2021-07-15 具有明确信示的扩展旋转的经扭曲的运动补偿 Pending CN118077203A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2021/041824 WO2023287417A1 (en) 2021-07-15 2021-07-15 Warped motion compensation with explicitly signaled extended rotations

Publications (1)

Publication Number Publication Date
CN118077203A true CN118077203A (zh) 2024-05-24

Family

ID=77265263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180100433.2A Pending CN118077203A (zh) 2021-07-15 2021-07-15 具有明确信示的扩展旋转的经扭曲的运动补偿

Country Status (4)

Country Link
US (1) US20240388690A1 (zh)
EP (1) EP4371301A1 (zh)
CN (1) CN118077203A (zh)
WO (1) WO2023287417A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN120730075A (zh) * 2024-03-30 2025-09-30 华为技术有限公司 帧间预测的方法、装置和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108293128A (zh) * 2015-11-20 2018-07-17 联发科技股份有限公司 视频编解码系统中全局运动补偿的方法及装置
JP6379186B2 (ja) * 2016-02-17 2018-08-22 テレフオンアクチーボラゲット エルエム エリクソン(パブル) ビデオピクチャを符号化および復号する方法および装置

Also Published As

Publication number Publication date
WO2023287417A1 (en) 2023-01-19
EP4371301A1 (en) 2024-05-22
US20240388690A1 (en) 2024-11-21

Similar Documents

Publication Publication Date Title
Han et al. A technical overview of AV1
US12425636B2 (en) Segmentation-based parameterized motion models
CN110741640B (zh) 用于视频代码化中的运动补偿预测的光流估计
KR101131756B1 (ko) 도메인 변환을 이용한 메시 기반 비디오 압축
JP6605726B2 (ja) 直前のフレームの動きベクトルパーティショニング
JP7739517B2 (ja) 画像およびビデオ圧縮のイントラ予測
CN110692246B (zh) 用于运动补偿预测的方法和装置
CN110741641B (zh) 用于视频压缩的方法和装置
CN110692241B (zh) 使用多种全局运动模型的多样化运动
CN110268716B (zh) 由球面投影处理等量矩形对象数据以补偿畸变
US10225573B1 (en) Video coding using parameterized motion models
WO2017124298A1 (zh) 视频编码、解码方法及其帧间预测方法、装置和系统
CN112997499A (zh) 基于经全局运动补偿的运动矢量预测值的视频编码
US10110914B1 (en) Locally adaptive warped motion compensation in video coding
WO2019036080A1 (en) ESTIMATION OF CONSTRAINED MOTION FIELD FOR INTERPRETING
CN118077203A (zh) 具有明确信示的扩展旋转的经扭曲的运动补偿
US20260039856A1 (en) Segmentation-based parameterized motion models
CN118975230A (zh) 共位参考帧的运动细化
WO2025128480A1 (en) Warp intra block copy
CN119968841A (zh) 带滤波的帧间预测
CN119096548A (zh) 视频编解码中的局部运动扩展
WO2024253771A1 (en) Adaptive motion field generation for video coding
CN120153653A (zh) 用于变换系数码处理的联合设计的上下文模型和扫描顺序

Legal Events

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