用于改进的视频编码的参考帧重投影的制作方法

文档序号:16979181发布日期:2019-02-26 19:20阅读:159来源:国知局
用于改进的视频编码的参考帧重投影的制作方法

现有的视频编解码器(例如,h.264或mpeg-4part10、高级视频编码(avc)编解码器、h.265高效视频编码(hevc)编解码器等)使用在分区大小可变的块上执行的运动补偿预测的原理进行操作。该运动估计和补偿对于当前帧的块可以使用基于块的搜索,以在一个或多个参考帧中寻找最佳匹配块。最佳匹配块是使用参考帧的参考索引以及指示当前帧块与参考帧中的最佳匹配块之间的运动的运动矢量来引用的。在编码器处经由运动估计找到的参考索引和运动矢量被编码到比特流中并且被发送到解码器。编码器和解码器二者在运动补偿中使用参考索引和运动矢量,以(在解码器侧处)重构用于进一步用作参考帧并且用于最终呈现的帧。当被编码的视频内容是基于单个相机模型(其可以摇摄(pan)但具有最小旋转、变焦、失真等)生成的时,这些技术可以是最高效的。然而,包括更高等级的旋转、变焦放大或缩小、失真等的内容可能提供了难度。

因此,可能有利的是,增加编解码器系统的压缩效率、视频质量和计算效率以便处理具有旋转、变焦和其它影响的视频内容。正是针对这些考虑和其它考虑,需要本改进。

附图说明

在附图中通过示例的方式而非通过限制的方式示出本文所描述的材料。为了说明的简明性和清楚性,附图所示的要素不一定按比例绘制。例如,为了清楚,一些要素的尺寸可以相对于其它要素被夸大。此外,在认为适当的情况下,在附图之间重复了标号,以指示对应或类似要素。在附图中:

图1是用于使用重投影后的重构参考帧进行视频编码(coding)的示例上下文的说明性示图;

图2是用于使用重投影后的重构参考帧进行视频编码(encoding)的示例编码器的说明性示图;

图3示出用于使用重投影后的重构参考帧进行视频解码的示例解码器的框图;

图4是示出用于使用重投影后的重构参考帧对视频进行编码的示例处理的流程图;

图5是示出用于基于评估场景姿态差数据而有条件地应用帧重投影的示例处理的流程图;

图6示出视频编码中使用的多个重投影后的重构参考帧的示例;

图7示出在变焦放大操作之后重投影后的重构参考帧的示例后处理;

图8示出在变焦缩小操作之后重投影后的重构参考帧的示例后处理;

图9示出仅应用于感兴趣区域的示例投影变换;

图10是示出用于使用重投影后的重构参考帧进行视频编码的示例处理的流程图;

图11是用于使用重投影后的重构参考帧进行视频编码的示例系统的说明性示图;

图12是示例系统的说明性示图;以及

图13示出均根据本公开的至少一些实现方式所布置的示例小形数(formfactor)设备。

具体实施方式

现在参照附图描述一个或多个实施例或实现方式。虽然讨论了特定的配置和布置,但应理解,这仅是为了说明的目的而进行的。本领域技术人员将认识到,在不脱离说明书的精神和范围的情况下,可以采用其它配置和布置。对于本领域技术人员显而易见的是,也可以在除了本文所描述的之外的各种其它系统和应用中采用本文所描述的技术和/或布置。

虽然以下描述阐述了可以例如在架构(例如,片上系统(soc)架构)中显现的各种实现方式,但本文所描述的技术和/或布置的实现方式不限于特定架构和/或计算系统,并且可以通过用于类似目的的任何架构和/或计算系统来实现。例如,采用例如多个集成电路(ic)芯片和/或封装的各种架构,和/或各种计算设备和/或消费者电子(ce)设备(例如,机顶盒、智能电话等)可以实现本文所描述的技术和/或布置。此外,虽然以下描述可能阐述了大量具体细节(例如,系统组件的逻辑实现方式、类型和相互关系、逻辑分区/集成选取等),但可以在没有这些具体细节的情况下实践所要求的主题。在其它实例中,为了不掩盖本文所公开的材料,可能没有详细地示出一些材料(例如,控制结构和完整软件指令序列)。

可以在硬件、固件、软件或其任何组合中实现本文所公开的材料。本文所公开的材料也可以实现为机器可读介质上所存储的指令,指令可以由一个或多个处理器读取并且执行。机器可读介质可以包括用于以机器(例如,计算设备)可读的形式存储或发送信息的任何介质和/或机构。例如,机器可读介质可以包括:只读存储器(rom);随机存取存储器(ram);磁盘存储介质;光存储介质;闪存设备;电、光、声或其它形式的传播信号(例如,载波、红外信号、数字信号等)以及其它介质。

说明书中对“一个实现方式”、“实现方式”、“示例实现方式”等的引用指示,所描述的实现方式可以包括特定特征、结构或特性,但每一实施例可以不一定包括该特定特征、结构或特性。此外,这些短语不一定指代同一实现方式。此外,当结合一实施例描述特定特征、结构或特性时,认为:在本领域技术人员的知识内,它实现与其它实现方式有关的这类特征、结构或特征,而无论是否在本文中明确地描述。

本文描述与视频编码(并且具体地说,与对重构的视频帧进行重投影以提供用于运动估计和运动补偿的重投影后的重构的参考帧)有关的方法、设备、装置、计算平台和物品。

如所讨论的那样,当前的运动估计和运动补偿技术使用参考帧来搜索当前帧的块,以便进行最佳匹配。为了提升编码效率,这种运动估计和运动补偿压缩在时间上冗余的信息。然而,当所编码的视频内容包括更高等级的旋转、变焦放大或缩小、失真等时,这些技术的使用可能有限。例如,在虚拟现实设备、增强现实设备、便携式设备等的上下文中,设备可以在各种方向上(例如,以6个自由度:上/下、前/后、左/右、翻滚、偏航、俯仰)频繁地移动。在这些上下文中,视频捕获和/或视频生成可以提供在各帧之间具有复杂运动(例如,摇摄、旋转、变焦、失真等)的帧序列。

在本文所讨论的一些实施例中,可以基于指示从第一场景姿态到第一场景姿态之后的第二场景姿态的场景姿态变化的场景姿态差数据,通过投影变换来变换与第一场景姿态对应的重构参考帧(例如,场景在捕获/生成参考帧的时间处或其左右的视图)。第二场景姿态与场景在捕获当前帧的时间处或其左右或者在生成或渲染(render)当前帧的时间处或其左右的视图对应。该场景姿态差数据提供指示参考帧与所编码的当前帧之间的场景姿态的变化的所编码的帧之外的数据(例如,元数据)。如本文所使用的那样,术语场景姿态用于指示与捕获场景的视点或视口有关的场景的姿态。在虚拟现实的上下文中,场景姿态指示与虚拟现实(vr)设备的用户(例如,穿戴vr头部配件的用户)的视点有关的所生成的场景的姿态或视图。在图像捕获设备(例如,手持设备的相机、头戴式设备等)的上下文中,场景姿态指示图像捕获设备捕获的场景的姿态或视图。在增强现实(ar)的上下文中,场景姿态指示(例如,由图像捕获设备)分析的场景的姿态或视图以及关于场景所生成的任何信息(例如,覆盖信息、图像等)的姿态。

可以通过将投影变换应用于重构参考帧以生成重投影后的重构参考帧来利用(leverage)场景姿态差数据。如本文所使用的那样,术语投影变换指示不一定在输入帧与输出帧之间保持平行度、长度和角度的变换。这些投影变换可以与保持平行度、长度和角度的仿射变换对比,并且因此在捕获复杂场景姿态变化方面更加受限。场景姿态差数据可以是指示场景姿态变化的任何合适的数据或信息(例如,6自由度(6-dof)差分或增量信息、变换或变换矩阵、运动矢量字段等)。此外,取决于场景姿态差数据的格式,可以使用任何一种或多种合适的技术执行投影变换。如本文进一步讨论的那样,在应用投影变换之后,可以使用其它技术将得到的帧适配于重构参考帧的大小和形状,以用于运动估计和/或运动补偿。

然后在运动估计(编码器处)和/或运动补偿(编码器或解码器处)中使用重投影后的重构参考帧,以生成与所编码的当前帧对应的运动信息(例如,编码器处所生成的运动矢量)和/或重构的当前帧。例如,在编码器处的环路中(例如,在编码器处的本地解码环路中)生成重构的当前帧,以用于对随后帧的运动估计/补偿。还在解码器处生成重构的当前帧,以用于对随后帧的运动补偿和/或用于向用户的最终呈现。这些技术提供所编码的当前帧与用于运动估计/补偿的参考帧(例如,重投影后的重构参考帧)之间的更紧密的匹配,这提升了编码效率。这些优点和其它优点基于本文的讨论对于本领域技术人员将是显而易见。此外,在任何合适的编码上下文中(例如,在基于h.264/mpeg-4高级视频编码(avc)标准的编解码器、基于高效率视频编码(h.265/hevc)标准的编解码器、所提出的视频编码(h.266)编解码器、基于开放媒体联盟(aom)标准的编解码器(例如,av1标准)、基于mpeg标准的编解码器(例如,mpeg-4标准)、基于vp9标准的编解码器或任何其它合适的编解码器或其扩展或简档中)可以使用所讨论的技术。

图1是根据本公开的至少一些实现方式所布置的用于使用重投影后的重构参考帧进行视频编码的示例上下文130的说明性示图。如图1所示,上下文130可以包括系统100和系统110,它们通过通信链路131以通信方式耦合。在实施例中,上下文130是虚拟现实上下文,其包括系统100作为主系统,主系统生成(例如,游戏内容、娱乐内容等的)虚拟现实帧,这些帧被编码并且发送到系统110。在该上下文中,系统110可以表征为信宿等,并且系统110可以是包括当观看经由显示器115呈现的帧时为用户提供3维(3d)效果的光器件(未示出)的头戴式显示器(hmd)。

应理解,在这些上下文中,随着用户移动以观看虚拟场景的不同部分,与虚拟内容进行交互等时,系统110可能常常正在3维(3d)空间中移动。因此,系统110可以按表征为6-dof运动135的运动移动通过3d空间,这表明系统110可以按以下方式移动:平移:前/后(例如,在x方向上)、上/下(例如,在y方向上)、左/右((例如,在z方向上));和旋转:通过偏航(例如,绕着z轴的角度α)、翻滚(例如,绕着y轴的角度β)和俯仰(例如,绕着y轴的角度γ)而旋转。应理解,可以基于系统110的用户的(例如,沿着x轴的前向方向的)假想视线生成3d内容(例如,vr帧)。

虽然关于vr视频帧和内容进行讨论,但本文所讨论的上下文130、系统100、系统110和其它系统可以对包括任何合适的内容的帧或图片进行操作。在一些实施例中,所讨论的技术可以使用外内或内外6-dof数据或信息而应用于无线虚拟现实(vr)、增强现实(ar)、混合现实(mr)等。在一些实施例中,所讨论的技术可以应用于相机、具有相机的智能电话等,使得相机或智能电话包括提供3-dof数据或信息的集成式惯性测量单元(imu)。在一些实施例中,所讨论的技术可以应用于具有提供摇摄-倾斜-变焦(ptz)控制数据或信息的能力的安防相机。在一些实施例中,所讨论的技术可以应用于带有虚拟相机定向(其具有提供平移数据或信息、6-dof数据或信息等的能力)的云游戏或娱乐服务。

如所示,系统110可以包括场景姿态跟踪模块111、收发机112、解码器113、渲染模块114以及显示器115。此外,系统100可以包括应用模块101、渲染模块102、编码器103以及收发机104。继续讨论,而不限于vr上下文,用户穿戴系统110作为头戴式显示器。随着用户移动,用户的场景视角(例如,视图姿态)随着用户移动而改变。此外,系统110和系统100通过通信链路131以通信方式耦合,通信链路131可以是无线链路(例如,wifi、wigig等)或有线连接(例如,通用串行总线耦合、传输不可知(transportagnostic)显示耦合等)。随着用户移动,场景姿态跟踪模块111跟踪系统110的位置和定向。如所示,这种位置和定向数据121(经由收发机104、112之间的通信链路131)提供给系统100。可以用任何合适的格式(例如,6-dof数据(例如,相对于初始化的零位置的x、y、z、α、β和γ值)、相对于先前已知的6-dof位置的6-dof差数据(例如,δx、δy、δz、δα、δβ和δγ值)、3-dof数据(例如,相对于初始化的零位置的x、y、z值)、相对于先前已知的6-dof位置的3-dof差数据(例如,δx、δy、δz值)等)提供这种位置和定向数据121。此外,虽然关于6-dof和3-dof位置和定向信息进行了讨论,但可以实现任何组合方式的任何数量的自由度。

如图所示,(可以正在系统100的中央处理单元上运行的)应用模块101接收位置和定向数据121作为元数据。应用模块101使用指示当前场景姿态的最新元数据(例如,pcurr)来生成渲染数据123,其将被用于渲染当前帧。例如,应用模块101在生成渲染数据123时可能正运行响应于位置和定向数据121的游戏应用、娱乐应用等。例如,随着系统110的用户移动和/或与虚拟场景进行交互,位置和定向数据121和/或其它输入数据被用于生成用户的虚拟场景的下一视图。如图所示,渲染模块102使用渲染数据123生成渲染帧124。例如,渲染模块102可以经由图形处理单元等实现渲染管线,以基于渲染数据123生成渲染帧124。

此外,如图所示,系统100经由应用模块101或另一模块或其组件生成姿态差数据122。如所讨论的那样,在一些示例中,可以经由位置和定向数据121提供姿态差数据122。在任何情况下,姿态差数据122指示对应于先前已经编码的重构参考帧(例如,在渲染帧124之前的帧)的场景姿态与对应于渲染帧124(例如,当前帧)的场景姿态之间的场景姿态差。如所讨论的那样,姿态差数据122可以包括指示各帧、时间实例等之间的场景姿态变化的任何合适的数据或信息。在实施例中,姿态差数据122被指示为场景姿态差元数据。例如,对于与渲染帧124(例如,当前帧)对应的场景姿态pcurr以及与编码器103中(例如,编码器103的帧缓冲器中)的重构参考帧对应的场景姿态pref,姿态差数据122提供各场景姿态之间的差:δp=pref–pcurr。例如,δp可以提供关于先前已知的6-dof位置的6-dof差数据(例如,δx、δy、δz、δα、δβ和δγ值)。

如本文进一步讨论的那样,基于姿态差数据122(根据需要,连同其它技术一起)将变换(例如,投影变换)应用于(如本文进一步讨论的那样,由编码器103生成的)重构参考帧,以生成重投影后的重构参考帧。如本文使用的那样,在重投影后的帧的上下文中的术语重投影指示已经使用姿态差数据122将(例如,具有第一场景姿态或投影的)帧变换为另一场景姿态或投影。然后,将重投影后的重构参考帧用作运动估计和运动补偿参考帧,以用于对渲染帧124进行编码,以生成至少一部分比特流125。例如,编码器103所执行的运动估计可以包括:通过搜索重投影后的重构参考帧来基于块搜索渲染帧124的块。然后,该运动估计所生成的运动矢量(例如,运动矢量字段)用于对渲染帧124进行重构,以便由编码器103用作参考帧。此外,运动矢量以及变换后的且量化后的预测残差(例如,渲染帧124的原始块与重投影后的重构参考帧的参考块之间的残差)被编码到比特流125中,其经由通信链路131发送到系统110。

在一些实施例中,渲染来自渲染数据123的渲染帧124以及基于姿态差数据122而变换重构参考帧的相对定时提供:至少部分地同时对渲染帧124进行渲染并且变换重构参考帧,使得同时执行至少部分的操作。这些同时的渲染和变换可以在系统100的处理管线中提供降低的延迟。

如图所示,在系统110处,将姿态差数据122提供给解码器113。如图所示,在一些实施例中,经由通信链路131从系统100接收姿态差数据122。在一些实施例中,从场景姿态跟踪模块111通过位置和定向数据121提供姿态差数据122。在一些实施例中,与来自系统110的场景姿态跟踪模块111或另一模块或组件的位置和定向数据121分开地提供姿态差数据122。在实施例中,可以经由比特流125提供姿态差数据122。例如,该姿态差数据122可以被标准化为描述重构参考帧的重投影的元数据并且包括于比特流125中。姿态差数据122(例如,元数据)可以具有任何合适的格式,并且可以进一步进行压缩,以便包括在比特流125中。在一些实施例中,在将姿态差数据122提供给系统110之前,系统100可以修改姿态差数据122。在任何情况下,提供给编码器103和解码器113的姿态差数据122必须是相同的(或至少提供相同的重构参考帧重投影的实现方式),并且它必须以相同方式应用于相同的重构参考帧,使得编码器103和解码器113生成相同的重投影后的重构参考帧。否则,在运动补偿期间,编码器103和解码器113将参考不同的帧,并且编码将被破坏。

解码器113将姿态差数据122应用于重构参考帧,以生成重投影后的重构参考帧(例如,以上关于编码器103所讨论的重投影后的重构参考帧)。系统110经由通信链路131接收比特流125,并且解码器113对比特流125进行解码,以确定与渲染帧124对应的运动矢量以及变换后的且量化后的预测残差,如上所述。然后,解码器113对变换后的且量化后的预测残差进行逆量化和逆变换,并且使用运动矢量以确定重投影后的重构参考帧的参考块。然后,重构的(例如,逆量化的且变换后的)预测残差和对应参考块相加,以形成重构块,重构块可以与其它重构块以及可选的帧内预测重构块组合,以提供重构帧,重构帧可以可选地进行解块滤波,以生成重构帧126,重构帧126是渲染帧124的重构。重构帧126连同姿态差(pd)数据132一起提供给可以由系统110的图形处理单元实现的渲染模块114,这样提供甚至更多的最新的场景姿态信息,使得渲染模块114基于姿态差数据132而重投影或扭曲重构帧,以提供最终帧127,以便经由显示器115显示和向用户呈现。

由此,上下文130提供经由通信链路131以通信方式耦合到主机(例如,系统100)的头戴式显示器(例如,系统110)。系统110从场景姿态跟踪模块111(例如,6-dof系统)发送跟踪信息(例如,位置和定向数据121),其中,位置和定向数据121可以包括系统110的位置和定向数据。系统100的应用模块101上运行的应用(例如,游戏、娱乐应用等)接收跟踪信息作为元数据。最新的元数据(场景姿态信息,pcurr)用于(例如,通过将渲染数据123提供给渲染模块102以生成渲染帧124的应用)对渲染帧进行渲染,并且重投影具有先前场景姿态信息pref的重构参考帧。例如,场景姿态差或场景姿态差数据(例如,δp=pref–pcurr)用于由编码器103(或系统100的另一模块或组件)重投影重构参考帧。

(从系统100接收到的或在系统110处生成的)这些姿态差数据122还由解码器113用于对重构参考帧进行重投影。编码器103使用重投影后的重构参考帧对渲染帧124进行编码,以生成发送到系统110的比特流125。解码器113处的重投影后的重构参考帧以及来自比特流125的信息用于对(与渲染帧124对应的)重构帧126进行解码。重构帧126连同姿态差数据132一起提供给渲染模块114,并且执行基于最新的头部姿态的最终重投影、透镜失真和校正(如果应用的话),并发送得到的帧127,以用于显示。

如所讨论的那样,在一些实施例中,所跟踪的位置和定向数据121用于生成姿态差数据122。在实施例中,场景姿态预测可以用于生成(例如,用于帧渲染的)随后场景姿态数据和/或姿态差数据122。例如,测量位置和定向数据121、对渲染帧124进行渲染与显示帧127之间的时延可能提供不期望的用户界面(例如,赝像、滞后时间等),该问题可以使用场景姿态预测而得以至少部分地解决。可以使用任何一种或多种合适的技术执行该场景姿态预测。例如,可以基于使用先前已知的场景姿态差从先前场景姿态进行外推而生成最新或随后场景姿态数据(或场景姿态差数据)。在实施例中,与重构参考帧对应的场景姿态数据以及(例如,来自场景姿态跟踪模块111的)随后场景姿态数据可以用于外推还在测得的场景姿态数据之后的场景姿态数据。例如,可以确定处理时间,该处理时间包括用于生成渲染数据123的时间、用于对渲染帧124进行渲染的渲染时间(例如,渲染复杂度)、用于生成比特流125的编码时间、用于传递比特流125的通信链路131上的数据传输时间和/或用于生成重构帧126的解码时间之和。可以通过在系统100和/或系统110的操作期间测量这些时间来近似或确定处理时间。

使用在第一时间实例的已知第一场景姿态与在第一时间实例之后的第二时间实例的已知第二场景姿态之间的姿态差,可以使用外推技术确定在第二时间实例加上处理时间的时间实例(例如,在第三时间实例)的姿态实例。例如,第一时间实例与第二时间实例之间的场景姿态差可以线性地外推到在第三时间实例的场景姿态差。例如,所外推的场景姿态可以提供为:p3=p2+(p2–p1)*(t3–t2)/(t2–t1),其中,p3是在时间t3的所外推的场景姿态,p2是在时间t2的场景姿态,p1是在时间t1的场景姿态。在实施例中,为了减少当从第二时间实例到第三时间实例进行外推时的姿态差的过冲的可能性,外推可以乘以预定因子(例如,2/3或1/2等),以减少线性外推(例如,p3=p2+k*(p2–p1)*(t3–t2)/(t2–t1),其中,k是预定因子)。然后,该所预测的或所外推的场景姿态(例如,p3)和/或场景姿态差数据(例如,p3–p1)可以用于整个所讨论的处理管线(例如,在应用模块101、渲染模块102、编码器103和解码器113处),如以上所讨论的那样。

此外,如关于渲染模块114所讨论的那样,可以在经由显示器115呈现前一刻,在最终帧缓冲器(未示出)处执行对重构帧126的重投影。该重投影可以基于用于渲染的所预测的或所外推的场景姿态头部姿态与来自场景姿态跟踪模块111的在显示之时的最新可用场景姿态之间的差,并且这种重投影可以进一步减缓所讨论的不期望的用户界面影响。

图2是根据本公开的至少一些实现方式所布置的用于使用重投影后的重构参考帧进行视频编码的示例编码器200的说明性示图。例如,编码器200可以实现为系统100中的编码器103。如图2所示,编码器200可以包括投影变换模块213、求差器212、帧内预测模块201、运动估计模块202、求差器203、变换模块204、量化模块205、熵编码器214、逆量化模块206、逆变换模块207、加法器208、运动补偿模块209、帧内解码模块210、切换器215、216以及解块滤波模块211。编码器200可以包括为了清楚呈现而未示出的附加模块和/或互连。

如图所示,编码器200接收具有与输入帧224对应的当前场景姿态221的输入帧224,并且编码器200先前已经生成与参考场景姿态223对应的重构参考帧225,使得当前场景姿态221相对于参考场景姿态223在时间上处于后面。如所讨论的那样,当前场景姿态221可以是(例如,由场景姿态跟踪模块111)测得的场景姿态或(例如,使用外推等预测的)预测场景姿态。应理解,虽然当前场景姿态221对应于输入帧224并且参考场景姿态223对应于重构参考帧225,但这些场景姿态的定时或时间实例(例如,测量时间)以及帧的定时或时间实例(例如,呈现它们的时间)可以是相同的或不同的。输入帧224(或多个输入帧)可以包括任何合适的格式的视频序列的帧或图片。例如,输入帧224可以是任何数量的视频帧的视频序列中的帧。这些帧可以是任何的合适的格式,并且可以包括任何合适的内容(例如,vr帧或内容、ar帧或内容、mr帧或内容、(例如,经由移动相机设备、安防相机等)捕获的图像帧等)。帧可以被划分为或包括允许并行处理视频数据和/或将其分离为不同色彩分量的分段或平面。例如,彩色视频数据的帧可以包括一个亮度平面或分量以及相对于亮度平面处于相同或不同分辨率的两个色度平面或分量。输入帧224可以被划分为任何大小的块,它包含与例如mxn个像素块对应的数据。这些块可以包括来自像素数据的一个或多个平面或色彩通道的数据。如本文所使用的那样,术语块可以包括任何合适大小的宏块、编码单元等。应理解,这些块也可以被划分为子块,以用于预测、变换等。

如图所示,可以通过求差器212确定当前场景姿态221与参考场景姿态223之间的差,以生成场景姿态差数据,这在编码器200的上下文中是由变换矩阵222提供的。例如,可以使用已知的技术将6-dof场景姿态差数据(例如,δx、δy、δz、δα、δβ和δγ值)转换为变换矩阵222,使得变换矩阵222当被应用于重构参考帧225时,提供从当前场景姿态221到参考场景姿态223的投影变换。如图所示,变换矩阵222可以由投影变换模块213应用于重构参考帧225,以生成重投影后的重构参考帧226。重投影后的重构参考帧226被提供给运动估计模块202和运动补偿模块209。在所示示例中,求差器212生成场景姿态差数据。在其它示例中,编码器200可以接收作为变换矩阵222的或处于任何其它合适的格式的这种场景姿态差数据。

如所讨论的那样,提供输入帧224,以用于由编码器200进行编码。在系统100的上下文中,输入帧224可以是渲染帧124。然而,如本文所讨论的那样,输入帧224可以是用于编码的任何合适的帧(例如,输入图像或图像捕获设备所捕获的帧、渲染帧、增强现实帧等)。如图所示,可以部分地基于重投影后的重构参考帧226对输入帧224进行编码,以生成比特流235。例如,在编码器100的上下文中,比特流235可以对应于比特流125。比特流235可以具有任何合适的格式(例如,顺应于标准(例如,avc、hevc等)的格式)。

例如,编码器200可以将输入帧224划分为不同大小的块,其可以要么经由运动估计模块202和运动补偿模块209在时间上(帧间)预测,要么经由帧内预测模块201在空间上(帧内)预测。可以在编码控制器(未示出)的控制下经由选择切换器215实现这种编码决定。如图所示,运动估计模块202可以使用重投影后的重构参考帧226作为运动补偿参考帧。也就是说,运动估计模块202可以使用输入帧224的块对重投影后的重构参考帧226(以及其它运动补偿参考帧,若使用的话)搜索最佳匹配块,并且可以使用对重投影后的重构参考帧226的参考索引以及运动矢量来引用最佳匹配块。当多于一个运动补偿参考帧用于运动搜索时,可以使用参考索引,以指示用于块的运动补偿参考帧。当仅使用一个运动补偿参考帧(例如,重投影后的重构参考帧226)时,可以省略参考索引。用于这些块的运动矢量以及参考索引(如果需要)被提供为来自运动估计模块202的运动矢量和参考索引227,以用于经由熵编码器214编码到比特流235中。

如所讨论的那样,重投影后的重构参考帧226经由运动估计模块202和运动补偿模块209(并且经由以下本文所讨论的解码器300的运动补偿模块309)用作运动补偿参考帧。在实施例中,仅重投影后的重构参考帧226用作运动补偿参考帧。在其它实施例中,重投影后的重构参考帧226和其它帧用作运动补偿参考帧。在实施例中,可以替代基于标准的重构参考帧而使用重投影后的重构参考帧226,使得重投影后的重构参考帧226取代重构参考帧,并且所有其它编码可以是顺应于标准的。在另一实施例中,重投影后的重构参考帧226可以与可用的帧相加,并且可能需要扩展标准,使得可以经由比特流235提供重投影后的重构参考帧226的指示符等。

在实施例中,重投影后的重构参考帧226和重构参考帧225都用作运动补偿参考帧。例如,运动估计模块202可以使用重构参考帧225和重投影后的重构参考帧226二者作为运动估计参考帧,按逐块的方式对输入帧224执行运动估计,使得输入帧224的第一块参考重构参考帧225(例如,经由参考索引和运动矢量)进行运动补偿,输入帧224的第二块参考重投影后的重构参考帧226(例如,经由不同的参考索引和另一运动矢量)进行运动补偿。

此外,虽然关于生成一个重投影后的重构参考帧226进行了讨论,但可以基于将不同变换矩阵应用于重构参考帧225来生成一个或多个附加的重投影后的重构参考帧。例如,可以应用多个投影变换(假设各自具有不同的场景姿态差数据),以生成多个重投影后的重构参考帧,其可以全部提供给运动估计模块202和运动补偿模块209(以及运动补偿模块309),以用于运动补偿。当块参考重投影后的重构参考帧中的特定的重投影后的重构参考帧时,可以通过运动矢量的参考索引和参考索引227指示该参考。例如,通过(例如,使用重构参考帧225与输入帧224之间的场景姿态差数据)将第一投影变换应用于重构参考帧225而生成的第一重投影后的重构参考帧以及通过(例如,使用重构参考帧225与输入帧224之前的帧之间的场景姿态差数据)将第二投影变换应用于重构参考帧225而生成的第二重投影后的重构参考帧可以都用作运动补偿参考帧。替代地或附加地,可以将一个或多个投影变换应用于其它重构参考帧(例如,其它过去的重构参考帧),以生成一个或多个重投影后的重构参考帧,如本文关于图6进一步讨论的那样。

继续参照图2,基于使用帧内或帧间编码,可以经由求差器203得出输入帧224的每个块的源像素与用于每个块的预测像素之间的差(例如,当重投影后的重构参考帧226用作所示的运动补偿参考帧或正使用其它运动补偿参考帧的像素时,输入帧224与重投影后的重构参考帧226的像素之间的差),以生成用于块的预测残差。差或预测残差经由变换模块204(例如,基于离散余弦变换等)转换到频域,并且经由量化模块205转换为量化系数。这些量化系数、运动矢量和参考索引227以及各种控制信号可以经由熵编码器214进行熵编码,以生成编码的比特流235,其可以被发送或传送(等)到解码器。

此外,作为本地解码环路的一部分,量化后的预测残差系数可以经由逆量化模块206进行逆量化,并且经由逆变换模块207进行逆变换,以生成重构差或残差。重构差或残差可以经由加法器208与来自运动补偿模块209(当重投影后的重构参考帧226用作所示的运动补偿参考帧或正使用其它运动补偿参考帧的像素时,其可以使用来自重投影后的重构参考帧226的像素)或帧内解码模块210的参考块组合,以生成重构块,重构块如图所示可以被提供给解块滤波模块211以用于解块滤波,以提供重构参考帧,以便由另一输入帧使用。例如,重构参考帧(例如,重构参考帧225)可以存储在帧缓冲器中。

由此,相对于仅使用重构参考帧225,编码器200可以使用重投影后的重构参考帧226对输入帧224更高效地进行编码。本文关于表1进一步讨论这些编码系数的示例结果。然后,比特流235可以被存储,发送到远程设备等,以用于随后解码,以生成与输入帧224对应的重构帧,以便向用户呈现。

图3示出根据本公开的至少一些实现方式所布置的用于使用重投影后的重构参考帧进行视频解码的示例解码器300的框图。例如,解码器300可以实现为系统110中的解码器113。如图所示,解码器300可以包括投影变换模块313、求差器312、熵解码器305、逆量化模块306、逆变换模块307、加法器308、运动补偿模块309、帧内解码模块310、切换器314以及解块滤波模块311。解码器300可以包括为了清楚呈现而未示出的附加模块和/或互连。

如图所示,解码器300可以接收当前场景姿态221、参考场景姿态223以及输入比特流235(例如,对应于或表示使用一个或多个重投影后的重构参考帧所编码的视频帧的输入比特流),并且解码器300可以生成用于呈现的帧230。例如,解码器300可以接收可以具有任何合适的格式(例如,顺应于标准(例如,avc、hevc等)的格式)的输入比特流235。如关于编码器200所讨论的那样,可以通过求差器312确定当前场景姿态221与参考场景姿态223之间的差,以生成场景姿态差数据,这在编码器200和解码器300的上下文中是由变换矩阵222提供的。如所讨论的那样,6-dof场景姿态差数据可以使用已知技术转换为变换矩阵222,使得当被应用于重构参考帧225时,变换矩阵222提供从当前场景姿态221到参考场景姿态223的投影变换。变换矩阵222可以由投影变换模块313应用于重构参考帧225,以生成重投影后的重构参考帧226。如图所示,重投影后的重构参考帧226被提供给运动补偿模块309。在所示示例中,求差器312生成场景姿态差数据。在其它示例中,解码器300可以接收作为变换矩阵222的或处于任何其它合适的格式的这种场景姿态差数据。在实施例中,解码器300通过对比特流235的一部分进行解码来接收这种场景姿态差数据。

例如,解码器300可以经由熵解码器305接收比特流235,熵解码器305可以从比特流235对运动矢量和参考索引227以及基于块的量化后的预测残差系数进行解码。如图所示,运动矢量和参考索引227被提供给运动补偿模块309。量化后的预测残差系数经由逆量化模块306进行逆量化,并且经由逆变换模块307进行逆变换,以生成重构的基于块的差或残差(例如,预测残差块)。重构差或残差经由加法器308与来自运动补偿模块309(其可以使用来自重投影后的重构参考帧226的像素,或使用其它运动补偿参考帧的像素)或帧内解码模块310的参考块组合,以生成重构块。例如,对于每个块,运动补偿模块309或帧内解码模块310之一可以提供参考块,以用于在切换器314的控制下与用于该块的对应的重构差或残差相加,切换器314由从比特流235解码的控制信号来控制。如图所示,重构块被提供给解块滤波模块311,以用于解块滤波,以提供重构参考帧,以便由另一输入帧使用和向用户呈现(如果期望)。例如,重构参考帧(例如,重构参考帧225)可以存储在帧缓冲器中,以用于对其它帧进行解码,并且用于向用户最终呈现。例如,用于呈现的帧230可以被直接发送到显示器,或者它可以被发送以用于附加重投影,如关于渲染模块114所讨论的那样。

如所讨论的那样,重投影后的重构参考帧226经由运动补偿模块309用作运动补偿参考帧。在实施例中,仅重投影后的重构参考帧226用作运动补偿参考帧。在其它实施例中,重投影后的重构参考帧226和其它帧用作运动补偿参考帧。如所讨论的那样,可以替代基于标准的重构参考帧而使用重投影后的重构参考帧226,使得重投影后的重构参考帧226取代重构参考帧,并且所有其它编码可以是顺应于标准的。在另一实施例中,重投影后的重构参考帧226可以与可用的帧相加,并且可能需要扩展标准,使得可以经由比特流235提供重投影后的重构参考帧226的指示符等。

在实施例中,重投影后的重构参考帧226和重构参考帧225用作运动补偿参考帧。例如,运动补偿模块309可以通过在运动矢量和参考索引227的控制下从重投影后的重构参考帧226和/或重构参考帧225获取像素数据来执行运动补偿。此外,虽然关于生成一个重投影后的重构参考帧226进行了讨论,但可以基于将不同变换矩阵应用于重构参考帧225而生成一个或多个附加的重投影后的重构参考帧。例如,可以应用多个投影变换(假设各自具有不同的场景姿态差数据),以生成多个重投影后的重构参考帧,其可以全部提供给运动补偿模块309,以用于运动补偿。当块参考重投影后的重构参考帧中的特定的重投影后的重构参考帧时,运动补偿模块309可以通过从任何可用的重投影后的重构参考帧获取像素数据来执行运动补偿。例如,通过(例如,使用重构参考帧225与输入帧224之间的场景姿态差数据)将第一投影变换应用于重构参考帧225来生成第一重投影后的重构参考帧,通过(例如,使用重构参考帧225与输入帧224之前的帧之间的场景姿态差数据)将第二投影变换应用于重构参考帧225来生成第二重投影后的重构参考帧,并且两者都用作运动补偿参考帧。替代地或附加地,可以将一个或多个投影变换应用于其它重构参考帧(例如,其它过去的重构参考帧),以生成一个或多个重投影后的重构参考帧。

图4是示出根据本公开的至少一些实现方式所布置的用于使用重投影后的重构参考帧对视频进行编码的示例处理400的流程图。处理400可以包括如图4所示的一个或多个操作401-409。处理400可以形成视频编码处理的至少一部分。作为非限制性示例,处理400可以形成至少部分的视频编码处理或视频解码处理。

处理400开始于操作401,其中,生成与第一场景姿态对应的重构参考帧。可以使用任何一种或多种合适的技术来对重构参考帧进行重构。例如,可以使用帧内解码和/或运动补偿技术确定用于帧的参考块,并且可以将每个参考块与预测残差(若存在)组合,以形成重构参考块。重构参考块可以组合或融合成帧,并且该帧可以被解块滤波,以生成重构参考帧。例如,重构参考帧可以对应于关于编码器200和解码器300所讨论的重构参考帧225。

处理可以继续于操作402,其中,接收或生成用于从(与重构参考帧对应的)第一场景姿态到(与场景的较近评估对应的)在第一场景姿态之后的第二场景姿态的场景姿态变化的场景姿态差数据。如所讨论的那样,场景姿态差数据指示随时间的场景变化姿态。场景姿态差数据可以是任何合适的格式,并且可以应用于帧,如关于操作404所讨论的那样。在实施例中,场景姿态差数据是变换矩阵。例如,帧(例如,重构参考帧)的每个像素坐标或一些像素坐标可以与变换矩阵进行矩阵相乘,以提供用于像素的新的或重投影的像素坐标,使得生成重投影后的帧(例如,重投影后的重构参考帧)。在实施例中,场景姿态差数据是6自由度差分数据(例如,δx、δy、δz、δα、δβ和δγ值),其可以被转换为变换矩阵和/或应用于帧(例如,重构参考帧),以生成重投影后的帧(例如,重投影后的重构参考帧)。在实施例中,场景姿态差数据是运动矢量字段,其可以被应用于帧(例如,重构参考帧),以生成重投影后的帧(例如,重投影后的重构参考帧)。

处理可以继续于操作403,其中,可以可选地评估场景姿态差数据,使得将场景姿态差数据应用于重构参考帧是以评估为条件的。可以评估场景姿态差数据,例如,以确定场景姿态的差是否大得足以保证执行重投影的代价。例如,如果场景姿态的差或者与场景姿态差数据对应的一个或多个或所有幅度值小于阈值,则可以跳过重投影。在一些实施例中,在可以响应于比特流(例如,比特流235)中的跳过重投影指示符而执行在解码器(例如,解码器300)处的跳过重投影的同时,可以在编码器(例如,编码器200)处执行操作403。

图5是示出根据本公开的至少一些实现方式所布置的用于基于评估场景姿态差数据而有条件地应用帧重投影的示例处理500的流程图。处理500可以包括如图5所示的一个或多个操作501-504。

处理500开始于操作501,其中,生成一个或多个场景变化差幅度值(scdmv)。场景变化差幅度值可以包括指示场景姿态差数据的幅度(例如,场景姿态的变化的幅度)的任何一个或多个值。例如,在6自由度差分数据或任何自由度差分数据的上下文中,场景变化差幅度值可以包括每个自由度差或增量的平方和(例如,δx2+δy2+δz2+δα2+δβ2+δγ2)、平移分量的平方之和(例如,δx2+δy2+δz2)等。在平移矩阵的上下文中,场景变化差幅度值可以包括矩阵系数的平方和等。在运动矢量字段的上下文中,场景变化差幅度值可以包括用于运动矢量字段的平均绝对运动矢量值、运动矢量字段中的运动矢量的x分量和y分量的平方和的平均值等。

处理可以继续于操作502,其中,将场景变化差幅度值与阈值进行比较。如图所示,如果与场景姿态差数据对应的场景变化差幅度值超过阈值,则处理继续于操作503,其中,将投影变换应用于对应的重构参考帧。如果未超过,则处理继续于操作504,其中,跳过投影变换,并且丢弃场景姿态差数据。

在所示实施例中,将单个场景变化差幅度值与单个阈值进行比较,并且当场景变化差幅度值超过阈值时,应用投影变换。在另一实施例中,当场景变化差幅度值满足或超过阈值时,应用投影变换。在实施例中,多个场景变化差幅度值必须均满足或超过它们各自的阈值。在实施例中,对于待应用的投影变换,要求所采用的每个自由度超过阈值。在实施例中,对于待应用的投影变换,场景变化差幅度值(例如,一个或多个场景变化差幅度值)必须满足或超过第一阈值但不超过第二阈值,其中,第一阈值小于第二阈值。

返回图4的讨论,处理可以继续于操作404,其中,应用投影变换。例如,当采用在操作403所提供的评估时,或在不使用该评估的所有实例中,可以基于该评估而有条件地应用投影变换。可以使用任何一种或多种合适的技术应用投影变换。例如,投影变换的应用可以取决于场景姿态差数据的格式。在场景姿态差数据转换或已经转换为变换矩阵的上下文中,重构参考帧的每个像素坐标或一些像素坐标可以与变换矩阵进行矩阵相乘,以提供用于像素的新的或重投影的像素坐标,使得生成重投影后的帧(例如,重投影后的重构参考帧)。当场景姿态差数据是6自由度差分数据(例如,δx、δy、δz、δα、δβ和δγ值)或用于更少自由度的差分数据等时,6自由度差分数据可以被转换为变换矩阵和/或应用于重构参考帧,以生成重投影后的帧。在场景姿态差数据是运动矢量字段的实施例中,运动矢量字段可以(例如,按逐块的方式)被应用于重构参考帧,以基于用于每个块的对应运动矢量来将与该块对应的像素重新定位到新的位置。如所讨论的那样,在操作404所应用的投影变换可以基于场景姿态差,其中,场景姿态差随时间而变化。

图6示出根据本公开的至少一些实现方式所布置的用于视频编码中的多个重投影后的重构参考帧的示例。如图6所示,场景姿态变化上下文600包括具有与重构参考帧225对应的参考场景姿态223(pref)的重构参考帧225,如本文所讨论的那样。参考场景姿态223可以是在向用户呈现与重构参考帧225对应的帧的时间、渲染与重构参考帧225对应的帧的时间等处的场景姿态。此外,如图6所示,参考场景姿态223与当前场景姿态221(pcurr)之间的差提供场景姿态差数据601(δp=pcurr-pref),其可以是本文所讨论的任何格式。场景姿态差数据601应用于重构参考帧225,以生成重投影后的重构参考帧226。如所讨论的那样,当前场景姿态221可以基于较近的场景姿态测量,或者当前场景姿态221可以基于所投影的场景姿态(使用外推或类似技术)。此外,场景姿态差数据601(和/或当前场景姿态221)可以用于渲染输入帧224,如本文所讨论的那样。如图所示,重投影后的重构参考帧226然后用于(由编码器200进行)运动估计和运动补偿602,或仅用于(由解码器300进行)运动补偿,以便对输入帧224进行编码。也就是说,重投影后的重构参考帧226用作用于对输入帧224进行编码的运动补偿参考帧,如本文所讨论的那样。

此外,如场景姿态变化上下文600所示,可以生成一个或多个附加的重投影后的重构参考帧,并且用于运动估计和运动补偿602。例如,该运动估计和运动补偿602可以搜索一组运动补偿参考帧607,包括一个或多个重投影后的重构参考帧以及没有重投影的一个或多个重构参考帧(例如,重构参考帧225)。在(例如,在编码器200处的)运动估计搜索期间,对于输入帧224的块,从任何运动补偿参考帧607寻找最佳匹配块,并且使用帧参考和运动矢量来引用最佳匹配块。在(例如,在编码器200或解码器300处的)运动补偿期间,帧参考和运动矢量用于访问运动补偿参考帧607当中的最佳匹配块(例如,参考块),并且最佳匹配块与重构预测残差相加,以形成重构块,其与其它块组合以对帧进行重构,如本文所讨论的那样。

在实施例中,重构参考帧605具有与之对应的参考场景姿态604(pref2),其中,参考场景姿态604在参考场景姿态223之前。参考场景姿态604可以是在向用户呈现与重构参考帧605对应的帧的时间、渲染与重构参考帧605对应的帧的时间等处的场景姿态。参考场景姿态604与当前场景姿态221(pcurr)之间的差提供场景姿态差数据610(δp2=pcurr-pref2),其可以是本文所讨论的任何格式。场景姿态差数据610应用于重构参考帧605,以生成重投影后的重构参考帧606。如图所示,作为运动补偿参考帧607的一部分,重投影后的重构参考帧606然后用于(由编码器200进行)运动估计和运动补偿602,或者仅用于(由解码器300进行)运动补偿,以便对输入帧224进行编码。例如,使用多个重投影后的重构参考帧可以提升对输入帧224的编码效率。

本文所讨论的投影变换可以通过任何合适的方式(例如,提供帧中的对象的平移、用于帧的变焦放大或变焦缩小效果、帧的旋转、帧的失真等)重投影或扭曲重构参考帧(或其一部分)。重构参考帧可以被表征为参考帧、重构帧等,并且重投影后的重构参考帧可以被表征为经扭曲的重构参考帧、经扭曲的参考帧、重投影后的参考帧等。

在一些实施例中,在投影变换之后,重投影后的或经扭曲的参考帧可以进一步受处理,然后提供作为运动估计/补偿参考帧。例如,变焦放大、变焦缩小和旋转操作可能提供被移动到重构参考帧的占地区域(footprint)(例如,重构参考帧的原始大小和形状)外部的像素。在这些上下文中,可以更改、消除在投影变换之后的得到的帧的像素,或者可以添加附加像素值以填充间隙,使得用于运动估计/补偿参考的重投影后的重构参考帧具有与重构参考帧相同的大小和形状(以及与要使用重投影后的重构参考帧作为参考帧进行编码的帧相同的大小和形状)。

图7示出根据本公开的至少一些实现方式所布置的在变焦放大操作之后的重投影后的重构参考帧的示例后处理700。如图7所示,在应用投影变换之后,得到的重投影后的重构参考帧701具有比用于(经由所讨论的投影变换)生成得到的重投影后的重构参考帧701的对应重构参考帧702的原始大小(例如,h1xw1)大的大小(例如h2xw2)。得到的重投影后的重构参考帧701可以被表征为经扭曲的重构参考帧、得到的重构参考帧等。

如图所示,在得到的重投影后的重构参考帧701具有比重构参考帧的原始大小大的大小或者重投影后的重构参考帧701的一部分处于重构参考帧的原始大小外部的实施例中,将具有与重构参考帧的原始大小相同的大小和形状(以及待编码的输入帧的大小和形状)的边界框703应用于得到的重投影后的重构参考帧701,并且将缩放(704)应用于边界框703内的得到的重投影后的重构参考帧701的像素值,以生成具有与重构参考帧相同的大小、形状和像素密度(以及待编码的输入帧的大小和形状)的重投影后的重构参考帧706。在所示实施例中,边界框703具有与重构参考帧的原始大小相同的大小和形状(以及待编码的输入帧的大小和形状)。在其它实施例中,如果所实现的编码/解码架构支持,则可以生成更大的重投影后的重构参考帧706。例如,如果支持更大的大小,则边界框703可以比重构参考帧的原始大小大。在这些示例中,边界框703具有比重构参考帧的原始大小大的上至最大所支持的参考帧大小的大小。

例如,变焦放大(例如,移动得更靠近用户视角)投影变换使得,得到的重投影后的重构参考帧701被缩放为比原始重构参考帧702的分辨率大。在该上下文中,编码器200和解码器300可能仍然需要完全分辨率参考帧。然而,变焦放大操作如所讨论的那样分配更大的表面。通过使用重构参考帧的俯仰和初始x、y坐标,将边界框703应用于得到的重投影后的重构参考帧701,并且经由缩放(704),将具有完全分辨率的重投影后的重构参考帧706提供给(例如,帧缓冲器等内的)编码器200和解码器300,使得重投影后的重构参考帧706(其可以对应于重投影后的重构参考帧227)将由此对应于参考帧原生分辨率。这些技术允许编码器200和解码器300的其余部分关于运动估计/补偿等操作为正常的。应理解,使用这些技术,关于边界像素705的像素信息会丢失。然而,由于类似的场景姿态将用于生成要使用重投影后的重构参考帧706作为参考帧进行编码的帧(例如,输入帧224/用于呈现的帧230),因此预期在运动估计/补偿期间无需该像素信息。

虽然关于用于生成得到的重投影后的重构参考帧701的变焦放大操作进行了说明,但提供比重构参考帧的原始大小的外部的原始分辨率或像素大的帧的任何变换或扭曲可以经受所讨论的边界框和缩放技术,以生成具有与原始重构参考帧相同的分辨率的重投影后的重构参考帧。例如,帧旋转变换可能提供原始重构参考帧外部的像素,其可以在编码/解码处理之前被消除。在其它实施例中,在所讨论的投影变换产生变焦放大或类似效果之后,如果编码/解码架构支持,则边界像素705或其部分可以用于运动估计/补偿。

图8示出根据本公开的至少一些实现方式所布置的在变焦缩小操作之后的重投影后的重构参考帧的示例后处理800。如图8所示,在应用投影变换之后,得到的重投影后的重构参考帧801具有比用于(经由所讨论的投影变换)生成得到的重投影后的重构参考帧801的对应重构参考帧802的原始大小(例如,h1xw1)大的大小(例如,h2xw2)。得到的重投影后的重构参考帧801可以表征为经扭曲的重构参考帧、得到的重构参考帧等。

如图所示,在得到的重投影后的重构参考帧801具有比重构参考帧802的原始大小小的大小或者重投影后的重构参考帧801的一部分处于重构参考帧802的边缘内并且不延伸至该边缘的实施例中,边缘像素生成操作805应用于得到的重投影后的重构参考帧801,以生成具有与重构参考帧802相同的大小、形状和像素密度(以及要编码的输入帧的大小和形状)的重投影后的重构参考帧804。在所示实施例中,用重投影后的重构参考帧804的对应构造的像素值填充重投影后的重构参考帧801的外边缘(例如,一个或多个边缘)与重构参考帧802的对应边缘之间的间隙803。可以使用任何一种或多种合适的技术(例如,像素复制技术等)生成所构造的像素值。

例如,变焦缩小投影变换使得,得到的重投影后的重构参考帧801被缩放成小于原始的重构参考帧802的分辨率。如以上关于变焦放大操作所讨论的那样,编码器200和解码器300可能仍然需要完全分辨率参考帧。对于图8所示的变焦缩小,可以如所讨论的那样复制边缘像素(例如,用于填充间隙803的像素),以填充丢失的像素。可以通过像素拷贝、像素值外推等执行这种像素复制。如图所示,具有完全分辨率的重投影后的重构参考帧804被提供给(例如,帧缓冲器等内的)编码器200和解码器300,使得重投影后的重构参考帧804(其可以对应于重投影后的重构参考帧226)将由此对应于参考帧原生分辨率。这些技术允许编码器200和解码器300的其余部分关于运动估计/补偿等操作为正常的。

虽然关于用于生成得到的重投影后的重构参考帧601的变焦缩小操作进行了说明,但提供比原始分辨率小的帧的任何变换或扭曲可以经受所讨论的像素构造技术,以生成具有与原始重构参考帧相同的分辨率的重投影后的重构参考帧。例如,帧旋转变换可能提供相对于原始重构参考帧(其可以是在编码/解码处理之前构造的)的像素间隙。

此外,在一些实施例中,参照图1,如果系统100生成具有桶形失真的渲染帧,则可以通过以下操作来生成重构参考帧:移除桶形失真;应用重投影(例如,投影变换);以及重新应用桶形失真。这些技术从与当前视图相同的视角生成重投影后的重构参考帧。此外,来自桶形失真的扭曲可能将对象的大小和形状改变达显著量,该问题可以通过移除桶形失真以便进行重投影来缓解。如本文所讨论的那样,与使用没有重投影的重构参考帧相比,重投影在输入帧与重投影后的重构参考帧之间产生更相似的视图。

返回图4的操作404的讨论,如所讨论的那样,在一些实施例中,投影变换应用于整个重构参考帧,以生成得到的重投影后的重构参考帧。这种完全帧投影变换应用可以提供实现方式的简单性。在其它实施例中,投影变换仅应用于重构参考帧的一个或多个部分,以生成得到的重投影后的重构参考帧。例如,可以在重投影后的重构参考帧内确定一个或多个对象或感兴趣区域,使得一个或多个感兴趣区域不包括重投影后的重构参考帧的背景,并且投影变换可以仅应用于一个或多个感兴趣区域或背景。

图9示出根据本公开的至少一些实现方式所布置的仅应用于感兴趣区域的示例投影变换。如图9所示,可以在重构参考帧901内提供感兴趣区域902,使得重构参考帧901包括感兴趣区域902以及排除了感兴趣区域902的背景903。可以使用任何一种或多种合适的技术在重构参考帧901内确定或提供感兴趣区域902。在实施例中,感兴趣区域902(例如,感兴趣区域902的坐标)由应用模块101经由通信链路131(例如,在比特流125内,或相对于比特流125的旁边)提供给编码器103和解码器113。在一些实施例中,应用模块101可以确定感兴趣区域902,使得感兴趣区域902是所渲染的实体(例如,游戏的一部分等)。在其它实施例中,可以使用对象检测、对象跟踪等确定感兴趣区域902。

如图所示,在实施例中,投影变换904仅应用于感兴趣区域902,以生成重投影后的重构参考帧905的经扭曲的或重投影的感兴趣区域906,而不应用于背景903。在其它实施例中,投影变换904仅应用于背景903,以生成重投影后的重构参考帧905的经扭曲的或重投影后的背景,而不应用于感兴趣区域902。这些技术可以不提供例如对已知相对于正更改的背景是固定的对象的扭曲或重投影。例如,如果如本文所讨论的那样,在对象周围的背景以6-dof等移动的同时对象随着观看者移动(例如,在观看者前面的球),则可能有利的是,在将投影变换应用于背景903的同时不将投影变换应用于(例如,在感兴趣区域902内无运动的)球。类似地,当仅感兴趣区域902正相对于观看者更改(例如,使得背景903未改变或仅正摇摄)时,可能有利的是,在保持背景903不改变的同时将投影变换仅应用于感兴趣对象902。在所示实施例中,提供单个矩形感兴趣区域。然而,可以实现任何数量和形状的感兴趣区域。

返回图4,如关于完全帧投影变换所讨论的那样,当投影变换仅应用于感兴趣区域902或背景903时,可以应用操作405。例如,当感兴趣区域因投影变换而扩展时,它可以被缩放到感兴趣区域902的原始大小内。当感兴趣区域因投影变换而小于感兴趣区域902的大小时,可以使用来自背景903的像素或可以使用像素重构(例如,复制),来填充间隙。

处理可以从可选操作405沿着编码路径或解码路径继续,如处理400所示。例如,编码器200和解码器300以相同方式执行操作401-405,使得二者具有相同的重投影后的重构参考帧,以用于(例如,由运动补偿模块209和运动补偿模块309分别执行的)运动补偿。应理解,编码器200和解码器300所使用的运动补偿帧之间的任何失配将在编码处理中引起破坏。

对于编码处理路径,处理可以继续于操作406,其中,使用在操作404和/或操作405处生成的重投影后的重构参考帧执行运动估计和运动补偿。例如,如关于编码器200所讨论的那样,使用重投影后的重构参考帧作为运动补偿帧(例如,通过搜索一些或所有重投影后的重构参考帧的部分)对输入帧224的块按逐块的方式(例如,由运动估计模块202)执行运动估计搜索。通过(例如,指示参考帧(如果使用多于一个的话)的)参考索引和运动矢量指示最佳匹配块。此外,(例如,由运动补偿模块209)执行运动补偿,以通过获取最佳匹配块并且加上对应的重构预测残差来重构块,如本文所讨论的那样。

处理可以继续于操作407,其中,参考索引和运动矢量以及变换后的且量化后的预测残差(例如,输入帧224的块与对应最佳匹配块之间的差在该差被变换和量化之后)被编码到比特流中。比特流可以顺应于标准(例如,avc、hevc等)或是非标准顺应的,如本文所讨论的那样。

对于解码处理路径,处理可以继续于操作408,其中,(例如,由运动补偿模块209)执行运动补偿。例如,可以对比特流(例如,在操作407处生成的比特流)进行解码,以提供用于运动补偿的参考索引和运动矢量以及重构预测残差(例如,在逆量化和逆变换之后的所解码的残差)。执行运动补偿,以通过获取(用于参考帧(如果使用多于一个的话,包括本文所讨论的重投影后的重构参考帧)的)参考索引以及运动矢量所指示的最佳匹配块并且将对应的重构预测残差与所获取的最佳匹配块相加来对块进行重构。

处理可以继续于操作409,其中,通过使用在操作408处生成的重构块以及任何帧内解码的重构块来对帧进行重构,以生成重构帧,从而生成用于呈现的帧。重构帧可以可选地进行解块滤波,以生成用于呈现(以及用于对随后解码的帧的参考)的重构帧。重构帧可以存储在帧缓冲器中,例如,以用作参考帧并且用于经由显示设备进行显示。

所讨论的技术可以提升压缩效率,特别是在具有复杂场景姿态变化的上下文中。例如,对于基于用户玩游戏,在用户移动靠近游戏中的对象的情况下(其中不可避免地有头部运动)生成的视频序列的用例而言,已经观测到以下改善。视频序列以恒定质量被编码(例如,psnr结果非常相似,如以下表1所示)。表1中的第一行(标记为“正常”)对应于在不使用所讨论的重投影技术的情况下对视频序列的编码。标记为“参考帧重投影”的第二行对应于在基于场景姿态差数据或信息(例如,基于hmd的移动)对参考帧进行重投影的情况下对同一视频序列进行编码,如本文所讨论的那样。如表1所示,用于测试序列的压缩被改善超过50%。编码改善之处在于,更多运动矢量找到更好的匹配(例如,对于块间或编码单元(cu)间为93%,与79%形成对比),并且耗费于运动矢量的比特更少,表明块因重投影而找到更靠近的匹配。

图10是示出根据本公开的至少一些实现方式所布置的用于使用重投影后的重构参考帧进行视频编码的示例处理1000的流程图。处理1000可以包括如图10所示的一个或多个操作1001-1004。处理1000可以形成视频编码处理的至少一部分。作为非限制性示例,处理1000可以形成本文所讨论的系统100所承担的用于视频的视频编码处理、视频解码处理、视频预处理或视频后处理的至少一部分。此外,本文将参照图11的系统1100描述处理1000。

图11是根据本公开的至少一些实现方式所布置的用于使用重投影后的重构参考帧进行视频编码的示例系统1100的说明性示图。如图11所示,系统1100可以包括图形处理器1101、中央处理器1102以及存储器1103。系统1100可以还包括场景姿态跟踪模块111和/或显示器115。此外,如图所示,图形处理器1101可以包括或实现渲染模块102和/或渲染模块114。此外,中央处理器1102可以包括或实现应用模块101、编码器103、200和/或解码器113、300。例如,作为实现为从所渲染的或所捕获的帧生成压缩的比特流的系统(例如,主机系统等),系统1100可以包括渲染模块102以及编码器103、200(例如,编码器103和/或编码器200或其中一者或二者的组件)。作为实现为解压比特流以生成用于呈现的帧的系统(例如,信宿、显示系统等),系统1100可以包括渲染模块114、应用模块101、解码器113、300(例如,解码器113和/或解码器300或其中一者或二者的组件)、场景姿态跟踪模块111和/或显示器115。例如,系统1100可以实现系统100和/或系统110。在系统1100的示例中,存储器1103可以存储视频内容(例如,视频帧、重投影后的重构参考帧、比特流数据、场景姿态数据、场景姿态差数据或本文所讨论的任何其它数据或参数)。

图形处理器1101可以包括可以提供本文所讨论的操作的任何数量和类型的图形处理器或处理单元。可以经由软件或硬件或其组合来实现这些操作。在实施例中,可以经由电路等实现图形处理器1101的所示模块。例如,图形处理器1101可以包括专用于渲染帧、操控视频数据以生成压缩比特流的电路,和/或专用于操控压缩比特流以生成视频数据以提供本文所讨论的操作的电路。例如,图形处理器1101可以包括用于操控和更改存储器以加速在帧缓冲器中创建视频帧和/或用于操控和更改存储器以加速基于视频的图像或帧来创建比特流的电子电路。

中央处理器1102可以包括可以提供用于系统1100的控制和其它高层次功能和/或提供本文所讨论的操作的任何数量和类型的处理单元或模块。例如,中央处理器1102可以包括用于通过执行计算机程序的指令所指定的基本算术、逻辑、控制、输入/输出操作等来执行指令的电子电路。

存储器1103可以是任何类型的存储器,例如易失性存储器(例如,静态随机存取存储器(sram)、动态随机存取存储器(dram)等)或非易失性存储器(例如,闪存等)等。在实施例中,存储器1103可以被配置为存储视频数据(例如,像素值、控制参数、比特流数据或任何其它视频数据、帧数据或本文所讨论的任何其它数据)。在非限制性示例中,可以通过缓存存储器实现存储器1103。在实施例中,可以经由图形处理器1101的执行单元(eu)来实现渲染模块102和/或渲染模块114的一个或多个部分。执行单元可以包括例如可编程逻辑或电路(例如,可以提供大量可编程逻辑功能的一个或多个逻辑核)。在实施例中,可以经由专用硬件(例如,固定功能电路等)来实现渲染模块102和/或渲染模块114。固定功能电路可以包括专用逻辑或电路,并且可以提供可以出于固定目的或功能而映射到专用逻辑的一组固定功能入口点。

在所示实施例中,由图形处理器1101实现渲染模块102和/或渲染模块114。在其它实施例中,由中央处理器1102实现渲染模块102和/或渲染模块114中的一者或二者或其组件。类似地,在所示实施例中,由中央处理器1102实现应用模块101、编码器103、200以及解码器113、300。在其它实施例中,由图形处理器1101实现应用模块101、编码器103、200和解码器113、300中的一个、一些、全部或其组件。在一些实施例中,由专用图像或视频处理器实现应用模块101、编码器103、200以及解码器113、300中的一个、一些、全部或其组件。

返回图10的讨论,处理1000可以开始于操作1001,其中,生成与第一场景姿态对应的重构参考帧。可以使用任何一种或多种合适的技术来生成重构参考帧。例如,可以通过(在编码器或解码器处)使用帧内解码和/或运动补偿技术确定用于帧的参考块来生成重构参考帧,并且每个参考块可以与预测残差(若存在)组合,以形成重构参考块。重构参考块可以组合或融合成帧,并且该帧可以被解块滤波,以生成重构参考帧。例如,重构参考帧可以对应于关于编码器200和/或解码器300所讨论的重构参考帧225。

处理可以继续于操作1002,其中,接收或生成指示从第一场景姿态到在第一场景姿态之后的第二场景姿态的场景姿态变化的场景姿态差数据。场景姿态差数据可以包括任何合适的数据格式,并且可以使用任何一种或多种合适的技术来接收或生成。在实施例中,场景姿态差数据包括变换矩阵、6自由度差分数据、运动矢量字段等,如本文所讨论的那样。

在实施例中,基于第一场景姿态与在对应于第一场景姿态的时间之后的时间处测得的测量第二场景姿态之间的差来生成场景姿态差数据。此外,第二场景姿态可以用于渲染帧,如本文所讨论的那样。在实施例中,使用外推技术等预测场景姿态差数据。在实施例中,通过外推指示从第三场景姿态到第一场景姿态的第二场景姿态变化的第二场景姿态差数据来预测场景姿态差数据,其中,第一场景姿态在第三场景姿态之后。

处理可以继续于操作1003,其中,基于场景姿态差数据将投影变换应用于重构参考帧的至少一部分,以生成重投影后的重构参考帧。可以使用任何一种或多种合适的技术应用投影变换。在实施例中,投影变换包括仿射投影(例如,仿射投影分量)和非仿射投影(例如,非仿射投影分量)二者,非仿射投影包括变焦投影、桶形失真投影和球面旋转投影中的至少一个。

如本文所讨论的那样,投影变换可以应用于整个重构参考帧或重构参考帧的仅一部分。在实施例中,投影变换应用于整个重构参考帧。在实施例中,处理1000还包括:确定重构参考帧的感兴趣区域以及重构参考帧的排除了感兴趣区域的背景区域,并且应用投影变换包括:将投影变换仅应用于感兴趣区域,或仅应用于重构参考帧的背景。

此外,可以(在应用投影变换之后)提供后处理,以生成重投影后的重构参考帧(例如,要用作运动补偿参考帧的某格式的最终帧)。在实施例中,应用投影变换包括:将变焦放大变换应用于重构参考帧,以生成大小比重构参考帧的大小大的第一重投影后的重构参考帧,并且处理1000还包括:将具有与重构参考帧相同的大小的边界框应用于第一重投影后的重构参考帧,并且将第一重投影后的重构参考帧在边界框内的部分缩放为重构参考帧的大小和分辨率,以生成重投影后的重构参考帧。在实施例中,应用投影变换包括:将变焦缩小变换应用于重构参考帧,以生成大小比重构参考帧的大小小的第一重投影后的重构参考帧,并且处理1000还包括:生成与第一重投影后的重构参考帧的至少一个边缘相邻的边缘像素,以提供具有与重构参考帧相同的大小和分辨率的重投影后的重构参考帧。在实施例中,应用投影变换包括:将球面旋转应用于重构参考帧,以生成第一重投影后的重构参考帧,并且处理1000还包括:生成与第一重投影后的重构参考帧的至少一个边缘相邻的边缘像素,以提供具有与重构参考帧相同的大小和分辨率的重投影后的重构参考帧。

在一些实施例中,以估计场景姿态差数据为条件,可以应用投影变换。在实施例中,将与场景姿态差数据对应的至少一个场景变化差幅度值与阈值进行比较,并且将投影变换应用于重构参考帧的至少一部分是以场景变化差幅度值满足或超过阈值为条件的。在实施例中,将与场景姿态差数据对应的至少一个场景变化差幅度值与第一阈值和大于第一阈值的第二阈值进行比较,并且将投影变换应用于重构参考帧的至少一部分是以场景变化差幅度值满足或超过第一阈值但不超过第二阈值为条件的。

在一些实施例中,可以与其它操作同时执行所讨论的将投影变换应用于重构参考帧,以减少处理中的滞后时间或延迟。在实施例中,处理1000还包括以下中的至少一个:与所述应用投影变换至少部分同时地渲染第二帧;和与所述应用投影变换至少部分同时地接收比特流。

处理可以继续于操作1004,其中,执行运动补偿,以使用重投影后的重构参考帧作为运动补偿参考帧来生成当前的重构帧。可以在编码器处(例如,作为本地环路的一部分)或在解码器处执行该运动补偿。例如,运动矢量和帧参考索引信息可以用于从重投影后的重构参考帧中获取块,以用于重构当前的重构帧。

在一些实施例中,仅重投影后的重构参考帧用作运动补偿参考帧。在其它实施例中,使用附加的运动补偿参考帧。在实施例中,执行运动补偿还包括:使用重构参考帧(例如,在不应用投影变换的情况下)和重投影后的重构参考帧二者作为运动补偿参考帧,按逐块的方式执行运动补偿,使得当前的重构帧的第一块参考重构参考帧进行运动补偿,并且当前的重构帧的第二块参考重投影后的重构参考帧进行运动补偿。在实施例中,处理1000还包括:生成与第三场景姿态对应的第二重构参考帧,其中,第三场景姿态在第一场景姿态之前;接收指示从第三场景姿态到第二场景姿态的场景姿态变化的第二场景姿态差数据;基于第二场景姿态差数据,将第二投影变换应用于第二重构参考帧的至少一部分,以生成第二重投影后的重构参考帧,使得对当前帧执行运动补偿使用重投影后的重构参考帧和第二重投影后的重构参考帧二者作为运动补偿参考帧。

可以在软件、固件和/或硬件和/或其任何组合中实现本文所描述系统的各种组件。例如,可以至少部分地通过例如可以在计算系统(例如,智能电话)中找到的计算片上系统(soc)的硬件提供系统100、110、1100的各种组件。本领域技术人员可以理解,本文所描述的系统可以包括对应附图中尚未描述的附加组件。例如,本文所讨论的系统可以包括为了清楚而尚未描述的附加组件(例如,比特流复用器或解复用器模块等)。

虽然本文所讨论的示例处理的实现方式可以包括承担按所示的顺序示出的所有操作,但本公开不限于此,并且在各个示例中,本文的示例处理的实现方式可以包括仅所示操作的子集、按与所示的不同顺序执行的操作或附加操作。

此外,可以响应于一个或多个计算机程序产品所提供的指令而承担本文所讨论的一个或多个操作。这些程序产品可以包括信号承载介质,其提供指令,所述指令当由例如处理器执行时可以提供本文所描述的功能。可以通过任何形式的一个或多个机器可读介质来提供计算机程序产品。因此,例如,包括一个或多个图形处理单元或处理器核的处理器可以响应于由一个或多个机器可读介质传送到处理器的程序代码和/或指令或指令集而承担本文的示例处理的一个或多个方框。通常,机器可读介质可以以程序代码和/或指令或指令集的形式来传送软件,程序代码和/或指令或指令集可以使本文所描述的任何设备和/或系统实现本文所讨论的技术、模块、组件等。

如本文所描述的任何实现方式中所使用的那样,术语“模块”指代被配置为提供本文所描述的功能的软件逻辑、固件逻辑、硬件逻辑和/或电路的任何组合。软件可以体现为软件封装、代码和/或指令集或指令,并且本文所描述的任何实现方式中所使用的“硬件”可以单独地或以任何组合包括例如硬布线电路、可编程电路、状态机电路、固定功能电路、执行单元电路和/或存储可编程电路所执行的指令的固件。模块可以共同地或单独地体现为形成更大系统(例如,集成电路(ic)、片上系统(soc)等)的一部分的电路。

图12是根据本公开的至少一些实现方式所布置的示例系统1200的说明性示图。在各个实现方式中,系统1200可以是移动系统,但系统1200不限于该上下文。例如,系统1200可以合并到个人计算机(pc)、膝上型计算机、超级膝上型计算机、平板、触摸板、便携式计算机、手持计算机、掌上型计算机、个人数字助理(pda)、蜂窝电话、组合蜂窝电话/pda、电视机、智能设备(例如,智能电话、智能平板或智能电视)、移动互联网设备(mid)、传信设备、数据通信设备、相机(例如,傻瓜相机、超级变焦相机、数字单透镜反射(dslr)相机)、虚拟现实设备、增强现实设备等中。

在各个实现方式中,系统1200包括平台1202,其耦合到显示器1220。平台1202可以从内容设备(例如,内容服务设备1230或内容传送设备1240或其它类似内容源)接收内容。包括一个或多个导航特征的导航控制器1250可以用于与例如平台1202和/或显示器1220进行交互。以下更详细地描述这些组件中的每一个。

在各个实现方式中,平台1202可以包括芯片组1205、处理器1210、存储器1212、天线1213、存储1214、图形子系统1215、应用1216和/或无线电装置1218的任何组合。芯片组1205可以提供处理器1210、存储器1212、存储1214、图形子系统1215、应用1216和/或无线电装置1218之间的相互通信。例如,芯片组1205可以包括能够提供与存储1214的相互通信的存储适配器(未描绘)。

处理器1210可以实现为复杂指令集计算机(cisc)或精简指令集计算机(risc)处理器、x86指令集兼容处理器、多核或任何其它微处理器或中央处理单元(cpu)。在各个实现方式中,处理器1210可以是双核处理器、双核移动处理器等。

存储器1212可以实现为易失性存储器设备(例如但不限于随机存取存储器(ram)、动态随机存取存储器(dram)或静态ram(sram))。

存储1214可以实现为非易失性存储设备(例如但不限于磁盘驱动器、光盘驱动器、带驱动器、内部存储设备、附连存储设备、闪存、电池备份sdram(同步dram)和/或网络可访问存储设备)。在各个实现方式中,存储1214可以包括用于例如当包括多个硬驱动器时对有价值的数字媒体增加存储性能增强保护的技术。

图形子系统1215可以执行对图像(例如,静止图像或视频)的处理,以便进行显示。图形子系统1215可以是例如图形处理单元(gpu)或视觉处理单元(vpu)。模拟或数字接口可以用于以通信方式耦合图形子系统1215和显示器1220。例如,接口可以是高清晰度多媒体接口、显示端口、无线hdmi和/或无线hd顺应技术中的任一种。图形子系统1215可以集成到处理器1210或芯片组1205中。在一些实现方式中,图形子系统1215可以是以通信方式耦合到芯片组1205的独立设备。

本文所描述的图形和/或视频处理技术可以实现于各种硬件架构中。例如,图形和/或视频功能可以集成在芯片组内。替代地,可以使用分立式图形和/或视频处理器。作为又一实现方式,可以通过包括多核处理器在内的通用处理器提供图形和/或视频功能。在其它实施例中,可以在消费者电子设备中实现这些功能。

无线电装置1218可以包括能够使用各种合适的无线通信技术来发送和接收信号的一个或多个无线电装置。这些技术可以涉及跨一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(wlan)、无线个域网(wpan)、无线城域网(wman)、蜂窝网络以及卫星网络。在跨这些网络进行通信时,无线电装置1218可以根据任何版本的一个或多个适用标准进行操作。

在各个实现方式中,显示器1220可以包括任何电视机类型的监视器或显示器。显示器1220可以包括例如计算机显示屏幕、触摸屏显示器、视频监视器、类似电视机的设备和/或电视机。显示器1220可以是数字和/或模拟的。在各个实现方式中,显示器1220可以是全息显示器。此外,显示器1220可以是可以接收视觉投影的透明表面。这些投影可以传送各种形式的信息、图像和/或对象。例如,这些投影可以是用于移动增强现实(mar)应用的视觉叠加。在一个或多个软件应用1216的控制下,平台1202可以在显示器1220上显示用户界面1222。

在各个实现方式中,内容服务设备1230可以由任何国家服务、国际服务和/或独立服务掌管,并且因此例如可经由互联网接入平台1202。内容服务设备1230可以耦合到平台1202和/或显示器1220。平台1202和/或内容服务设备1230可以耦合到网络1260,以将媒体信息传递(例如,发送和/或接收)出入网络1260。内容传送设备1240也可以耦合到平台1202和/或显示器1220。

在各个实现方式中,内容服务设备1230可以包括有线电视盒、个人计算机、网络、电话、互联网启用的设备或能够传送数字信息和/或内容的电器以及能够经由网络1260或以直接方式在内容提供商与平台1202和/显示器1220之间单向地或双向地传递内容的任何其它类似设备。应理解,内容可以经由网络1260单向地和/或双向地传递出入系统1200中的任何一个组件以及内容提供商。内容的示例可以包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等。

内容服务设备1230可以接收内容(例如,包括媒体信息、数字信息和/或其它内容的有线电视节目传送)。内容提供商的示例可以包括任何有线或卫星电视或无线电或互联网内容提供商。所提供的示例并非意图以任何方式来限制根据本公开的实现方式。

在各个实现方式中,平台1202可以从具有一个或多个导航特征的导航控制器1250接收控制信号。例如,导航特征可以用于与用户接口1222进行交互。在各个实施例中,导航可以是定点设备,其可以是允许用户将空间(例如,连续和多维)数据输入到计算机中的计算机硬件组件(具体地说,人机接口设备)。很多系统(例如,图形用户接口(gui)以及电视机和监视器)允许用户使用物理手势控制数据并且将其提供给计算机或电视机。

导航特征的移动可以通过显示器上所显示的指针、光标、聚焦环或其它视觉指示符的移动在显示器(例如,显示器1220)上得以复制。例如,在软件应用1216的控制下,位于导航上的导航特征可以映射到用户界面1222上所显示的虚拟导航特征。在各个实施例中,可以不是单独的组件,而是可以集成到平台1202和/或显示器1220中。然而,本公开不限于本文所示或所描述的要素或上下文。

在各个实现方式中,驱动器(未示出)可以包括例如当启用时,用于使得用户能够在初始引导之后通过触摸按钮即刻打开和关闭平台1202(比如电视机)的技术。即使当平台“关闭”时,程序逻辑也可以允许平台1202将内容流送到媒体适配器或其它内容服务设备1230或内容传送设备1240。此外,例如,芯片组1205可以包括对5.1环绕声音音频和/或高清晰度7.1环绕声音音频的硬件和/或软件支持。驱动器可以包括用于集成图形平台的图形驱动器。在各个实施例中,图形驱动器可以包括外设组件互连(pci)高速图形卡。

在各个实现方式中,系统1200中所示的组件中的任何一个或多个可以是集成的。例如,平台1202和内容服务设备1230可以是集成的,或者平台1202和内容传送设备1240可以是集成的,或者平台1202、内容服务设备1230和内容传送设备1240可以是集成的。在各个实施例中,平台1202和显示器1220可以是集成单元。例如,显示器1220和内容服务设备1230可以是集成的,或者显示器1220和内容传送设备1240可以是集成的。这些示例并非意味着限制本公开。

在各个实施例中,系统1200可以实现为无线系统、有线系统或二者的组合。当实现为无线系统时,系统1200可以包括适合于通过无线共享介质进行通信的组件和接口(例如,一个或多个天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑等)。无线共享介质的示例可以包括无线频谱(例如,rf谱等)的部分。当实现为有线系统时,系统1200可以包括适合于通过有线通信介质进行通信的组件和接口(例如,输入/输出(i/o)适配器、用于将i/o适配器与对应有线通信介质连接的物理连接器、网络接口卡(nic)、盘控制器、视频控制器、音频控制器等)。有线通信介质的示例可以包括导线、线缆、金属引线、印制电路板(pcb)、背板、开关构造、半导体材料、双绞线导线、同轴线缆、光纤等。

平台1202可以建立一个或多个逻辑信道或物理信道,以传递信息。信息可以包括媒体信息和控制信息。媒体信息可以指代表示意图用于用户的内容的任何数据。内容的示例可以包括例如来自语音对话、视频会议、流送视频、电子邮件(“email”)消息、语音邮件消息、文字数字符号、图形、图像、视频、文本等的数据。来自语音对话的数据可以是例如话音信息、静默时段、背景噪声、舒适噪声、音调等。控制信息可以指代表示意图用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用于将媒体信息路由通过系统,或命令节点以预定方式处理媒体信息。然而,实施例不限于图12中所示或所描述的要素或上下文。

如上所述,可以通过变化的物理风格或形数体现系统1200。图13示出根据本公开的至少一些实现方式所布置的示例小形数设备1300。在一些示例中,可以经由设备1300实现系统1200。在其它示例中,可以经由设备1300实现系统1100或其部分。在各个实施例中,例如,设备1300可以实现为具有无线能力的移动计算设备。移动计算设备可以指代具有处理系统和移动功率源或电源(例如,一个或多个电池)的任何设备。

如上所述,移动计算设备的示例可以包括个人计算机(pc)、膝上型计算机、超级膝上型计算机、平板、触摸板、便携式计算机、手持计算机、掌上型计算机、个人数字助理(pda)、蜂窝电话、组合蜂窝电话/pda、智能设备(例如,智能电话、智能平板或智能移动电视机)、移动互联网设备(mid)、传信设备、数据通信设备、相机等。

移动计算设备的示例还可以包括被布置为人所穿戴的计算机(例如,腕部计算机、手指计算机、耳环计算机、眼镜计算机、带夹计算机、臂带计算机、鞋计算机、衣物计算机以及其它可穿戴计算机)。在各个实施例中,例如,移动计算设备可以实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。虽然可以通过示例的方式以实现为智能电话的移动计算设备描述一些实施例,但可以理解,也可以使用其它无线移动计算设备实现其它实施例。实施例不限于该上下文中。

如图13所示,设备1300可以包括具有前部1301和后部1302的外壳。设备1300包括显示器1304、输入/输出(i/o)设备1306以及集成式天线1308。设备1300也可以包括导航特征1312。i/o设备1306可以包括任何合适的i/o设备,以用于将信息输入移动计算设备中。用于i/o设备1306的示例可以包括字母数字键盘、数字键区、触摸板、输入键、按钮、开关、麦克风、扬声器、语音识别设备和软件等。信息也可以通过麦克风(未示出)的方式输入到设备1300中,或者可以由语音识别设备进行数字化。如图所示,设备1300可以包括集成到设备1300的后部1302(或其它地方)的(例如,包括透镜、光圈和成像传感器的)相机1305以及闪光灯1310。在其它示例中,相机1305和闪光灯1310可以集成到设备1300的前部1301中,或者可以提供前部相机和后部相机二者。例如,相机1305和闪光灯1310可以是相机模块的组件,用于产生图像数据,图像数据被处理为流送视频,流送视频被输出到显示器1304和/或经由天线1308从设备1300远程传递。

可以使用硬件元件、软件元件或二者的组合实现各个实施例。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(asic)、可编程逻辑器件(pld)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(api)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定是否使用硬件元件和/或软件元件实现实施例可以根据任何数量的因素而变化,例如期望的计算速率、功率等级、热容限、处理周期预算、输入数据率、输出数据率、存储器资源、数据总线速度以及其它设计或性能约束。

可以通过机器可读介质上所存储的表示处理器内的各个逻辑的代表性指令实现至少一个实施例的一个或多个方面,指令当由机器读取时使机器制造逻辑以执行本文所描述的技术。称为“ip核”的这种表示可以存储在有形机器可读介质上并且提供给各个消费者或制造场所,以加载到实际上生成逻辑或处理器的制造机器中。

虽然已经参照各个实现方式描述了本文所阐述的特定特征,但该描述并非意图以限制性的意义去理解。因此,本文所描述的实现方式的各种修改以及对于本公开所属领域的技术人员显而易见的其它实现方式看作处于本公开的精神和范围内。

以下示例属于其它实施例。

在一个或多个第一实施例中,一种计算机实现的用于视频编码的方法,包括:生成与第一场景姿态对应的重构参考帧;接收指示从所述第一场景姿态到在所述第一场景姿态之后的第二场景姿态的场景姿态变化的场景姿态差数据;基于所述场景姿态差数据,将投影变换应用于所述重构参考帧的至少一部分,以生成重投影后的重构参考帧;以及使用所述重投影后的重构参考帧作为运动补偿参考帧来执行运动补偿,以生成当前的重构帧。

在一个或多个第二实施例中,对于第一实施例中的任一项,所述投影变换包括仿射投影和非仿射投影二者,所述非仿射投影包括变焦投影、桶形失真投影和球面旋转投影中的至少一个,并且所述场景姿态差数据包括变换矩阵、6自由度差分数据和运动矢量字段之一。

在一个或多个第三实施例中,对于第一实施例和第二实施例中的任一项,所述投影变换应用于整个所述重构参考帧,并且所述方法还包括以下中的至少一个:与所述应用投影变换至少部分同时地渲染第二帧;以及,与所述应用投影变换至少部分同时地接收比特流。

在一个或多个第四实施例中,对于第一实施例至第三实施例中的任一项,所述执行运动补偿包括:使用所述重构参考帧和所述重投影后的重构参考帧二者作为运动补偿参考帧,按逐块的方式执行运动补偿,使得当前的重构帧的第一块参考所述重构参考帧进行运动补偿,并且当前的重构帧的第二块参考所述重投影后的重构参考帧进行运动补偿。

在一个或多个第五实施例中,对于第一实施例至第四实施例中的任一项,所述方法还包括:确定所述重构参考帧的感兴趣区域以及所述重构参考帧的排除了所述感兴趣区域的背景区域,其中,应用所述投影变换包括:将所述投影变换仅应用于所述重构参考帧的感兴趣区域和背景之一。

在一个或多个第六实施例中,对于第一实施例至第五实施例中的任一项,应用所述投影变换包括:将变焦放大变换应用于所述重构参考帧,以生成大小比所述重构参考帧的大小大的第一重投影后的重构参考帧,并且所述方法还包括:将具有与所述重构参考帧相同的大小的边界框应用于所述第一重投影后的重构参考帧,并且将所述第一重投影后的重构参考帧在所述边界框内的部分缩放为所述重构参考帧的大小和分辨率,以生成重投影后的重构参考帧。

在一个或多个第七实施例中,对于第一实施例至第六实施例中的任一项,应用所述投影变换包括:将变焦缩小变换应用于所述重构参考帧,以生成大小比所述重构参考帧的大小小的第一重投影后的重构参考帧,并且所述方法还包括:生成与所述第一重投影后的重构参考帧的至少一个边缘相邻的边缘像素,以提供具有与所述重构参考帧相同的大小和分辨率的重投影后的重构参考帧。

在一个或多个第八实施例中,对于第一实施例至第七实施例中的任一项,应用所述投影变换包括:将球面旋转应用于所述重构参考帧,以生成第一重投影后的重构参考帧,并且所述方法还包括:生成与所述第一重投影后的重构参考帧的至少一个边缘相邻的边缘像素,以提供具有与所述重构参考帧相同的大小和分辨率的重投影后的重构参考帧。

在一个或多个第九实施例中,对于第一实施例至第八实施例中的任一项,通过外推指示从第三场景姿态到所述第一场景姿态的第二场景姿态变化的第二场景姿态差数据来预测场景姿态差数据,其中,所述第一场景姿态在所述第三场景姿态之后。

在一个或多个第十实施例中,对于第一实施例至第九实施例中的任一项,所述方法还包括:将与所述场景姿态差数据对应的至少一个场景变化差幅度值与阈值进行比较,其中,将所述投影变换应用于所述重构参考帧的至少一部分是以所述场景变化差幅度值满足或超过所述阈值为条件的。

在一个或多个第十一实施例中,对于第一实施例至第十实施例中的任一项,所述方法还包括:生成与第三场景姿态对应的第二重构参考帧,其中,所述第三场景姿态在所述第一场景姿态之前;接收指示从所述第三场景姿态到所述第二场景姿态的场景姿态变化的第二场景姿态差数据;以及基于所述第二场景姿态差数据,将第二投影变换应用于所述第二重构参考帧的至少一部分,以生成第二重投影后的重构参考帧,其中,对当前帧执行运动补偿使用所述重投影后的重构参考帧和所述第二重投影后的重构参考帧二者作为运动补偿参考帧。

在一个或多个第十二实施例中,一种用于视频编码的系统,包括:存储器,用于存储与第一场景姿态对应的重构参考帧;和处理器,耦合到所述存储器,所述处理器用于:基于场景姿态差数据,将投影变换应用于所述重构参考帧的至少一部分,以生成重投影后的重构参考帧,其中,所述场景姿态差数据指示从所述第一场景姿态到在所述第一场景姿态之后的第二场景姿态的场景姿态变化;以及使用所述重投影后的重构参考帧作为运动补偿参考帧来执行运动补偿,以生成当前的重构帧。

在一个或多个第十三实施例中,对于第十二实施例中的任一项,所述投影变换包括仿射投影和非仿射投影二者,所述非仿射投影包括变焦投影、桶形失真投影和球面旋转投影中的至少一个,并且所述场景姿态差数据包括变换矩阵、6自由度差分数据和运动矢量字段之一。

在一个或多个第十四实施例中,对于第十二实施例和第十三实施例中的任一项,所述处理器执行运动补偿包括:所述处理器使用所述重构参考帧和所述重投影后的重构参考帧二者作为运动补偿参考帧,按逐块的方式执行运动补偿,使得当前的重构帧的第一块参考所述重构参考帧进行运动补偿,并且当前的重构帧的第二块参考所述重投影后的重构参考帧进行运动补偿。

在一个或多个第十五实施例中,对于第十二实施例至第十四实施例中的任一项,所述处理器进一步用于:确定所述重构参考帧的感兴趣区域以及所述重构参考帧的排除了所述感兴趣区域的背景区域,其中,所述处理器应用所述投影变换包括:所述处理器将所述投影变换仅应用于所述重构参考帧的感兴趣区域和背景之一。

在一个或多个第十六实施例中,对于第十二实施例至第十五实施例中的任一项,所述处理器进一步用于:基于外推指示从第三场景姿态到所述第一场景姿态的第二场景姿态变化的第二场景姿态差数据来预测场景姿态差数据,其中,所述第一场景姿态在所述第三场景姿态之后。

在一个或多个第十七实施例中,对于第十二实施例至第十六实施例中的任一项,所述处理器进一步用于:将与所述场景姿态差数据对应的至少一个场景变化差幅度值与阈值进行比较,其中,所述处理器将所述投影变换应用于所述重构参考帧的至少一部分是以所述场景变化差幅度值满足或超过所述阈值为条件的。

在一个或多个第十八实施例中,对于第十二实施例至第十七实施例中的任一项,所述处理器进一步用于:生成与所述第三场景姿态对应的第二重构参考帧,其中,所述第三场景姿态在所述第一场景姿态之前;接收指示从所述第三场景姿态到所述第二场景姿态的场景姿态变化的第二场景姿态差数据;以及基于所述第二场景姿态差数据,将第二投影变换应用于所述第二重构参考帧的至少一部分,以生成第二重投影后的重构参考帧,其中,所述处理器对当前帧执行运动补偿包括:所述处理器使用所述重投影后的重构参考帧和所述第二重投影后的重构参考帧二者作为运动补偿参考帧。

在一个或多个第十九实施例中,一种用于视频编码的系统,包括:用于生成与第一场景姿态对应的重构参考帧的模块;用于接收指示从所述第一场景姿态到在所述第一场景姿态之后的第二场景姿态的场景姿态变化的场景姿态差数据的模块;用于基于所述场景姿态差数据,将投影变换应用于所述重构参考帧的至少一部分以生成重投影后的重构参考帧的模块;以及用于使用所述重投影后的重构参考帧作为运动补偿参考帧来执行运动补偿以生成当前的重构帧的模块。

在一个或多个第二十实施例中,对于第十九实施例中的任一项,所述投影变换包括仿射投影和非仿射投影二者,所述非仿射投影包括变焦投影、桶形失真投影和球面旋转投影中的至少一个,并且所述场景姿态差数据包括变换矩阵、6自由度差分数据和运动矢量字段之一。

在一个或多个第二十一实施例中,对于第十九实施例和第二十实施例中的任一项,所述投影变换应用于整个所述重构参考帧,并且所述系统还包括以下中的至少一个:用于与所述应用投影变换至少部分同时地渲染第二帧的模块;和用于与所述应用投影变换至少部分同时地接收比特流的模块。

在一个或多个第二十二实施例中,对于第十九实施例至第二十一实施例中的任一项,用于执行运动补偿的模块包括:用于使用所述重构参考帧和所述重投影后的重构参考帧二者作为运动补偿参考帧,按逐块的方式执行运动补偿,使得当前的重构帧的第一块参考所述重构参考帧进行运动补偿,并且当前的重构帧的第二块参考所述重投影后的重构参考帧进行运动补偿的模块。

在一个或多个第二十三实施例中,至少一种机器可读介质,包括多个指令,所述指令响应于在计算设备上执行而使所述计算设备通过以下步骤来执行视频编码:生成与第一场景姿态对应的重构参考帧;接收指示从所述第一场景姿态到在所述第一场景姿态之后的第二场景姿态的场景姿态变化的场景姿态差数据;基于所述场景姿态差数据,将投影变换应用于所述重构参考帧的至少一部分,以生成重投影后的重构参考帧;以及使用所述重投影后的重构参考帧作为运动补偿参考帧来执行运动补偿,以生成当前的重构帧。

在一个或多个第二十四实施例中,对于第二十三实施例中的任一项,所述投影变换包括仿射投影和非仿射投影二者,所述非仿射投影包括变焦投影、桶形失真投影和球面旋转投影中的至少一个,并且所述场景姿态差数据包括变换矩阵、6自由度差分数据和运动矢量字段之一。

在一个或多个第二十五实施例中,对于第二十三实施例和第二十四实施例中的任一项,所述执行运动补偿包括:使用所述重构参考帧和所述重投影后的重构参考帧二者作为运动补偿参考帧,按逐块的方式执行运动补偿,使得当前的重构帧的第一块参考所述重构参考帧进行运动补偿,并且当前的重构帧的第二块参考所述重投影后的重构参考帧进行运动补偿。

在一个或多个第二十六实施例中,对于第二十三实施例至第二十五实施例中的任一项,所述机器可读介质还包括多个指令,所述指令响应于在所述计算设备上执行而使所述计算设备通过以下步骤来执行视频编码:确定所述重构参考帧的感兴趣区域以及所述重构参考帧的排除了所述感兴趣区域的背景区域,其中,应用所述投影变换包括:将所述投影变换仅应用于所述重构参考帧的感兴趣区域和背景之一。

在一个或多个第二十七实施例中,对于第二十三实施例至第二十六实施例中的任一项,所述机器可读介质还包括多个指令,所述指令响应于在所述计算设备上执行而使所述计算设备通过以下步骤来执行视频编码:通过外推指示从第三场景姿态到所述第一场景姿态的第二场景姿态变化的第二场景姿态差数据来预测场景姿态差数据,其中,所述第一场景姿态在所述第三场景姿态之后。

在一个或多个第二十八实施例中,对于第二十三实施例至第二十七实施例中的任一项,所述机器可读介质还包括多个指令,所述指令响应于在所述计算设备上执行而使所述计算设备通过以下步骤来执行视频编码:将与所述场景姿态差数据对应的至少一个场景变化差幅度值与阈值进行比较,其中,将所述投影变换应用于所述重构参考帧的至少一部分是以所述场景变化差幅度值满足或超过所述阈值为条件的。

在一个或多个第二十九实施例中,对于第二十三实施例至第二十八实施例中的任一项,所述机器可读介质还包括多个指令,所述指令响应于在所述计算设备上执行而使所述计算设备通过以下步骤来执行视频编码:生成与第三场景姿态对应的第二重构参考帧,其中,所述第三场景姿态在所述第一场景姿态之前;接收指示从所述第三场景姿态到所述第二场景姿态的场景姿态变化的第二场景姿态差数据;以及基于所述第二场景姿态差数据,将第二投影变换应用于所述第二重构参考帧的至少一部分,以生成第二重投影后的重构参考帧,其中,对当前帧执行运动补偿使用所述重投影后的重构参考帧和所述第二重投影后的重构参考帧二者作为运动补偿参考帧。

在一个或多个第三十实施例中,至少一种机器可读介质可以包括多个指令,所述指令响应于在计算设备上执行而使所述计算设备执行如以上实施例中任一项所述的方法。

在一个或多个第三十一实施例中,一种装置或系统可以包括用于执行如以上实施例中任一项所述的方法的模块。

应理解,实施例不限于如此描述的实施例,而是可以在不脱离所附权利要求的范围的情况下通过修改和改动来实践。例如,以上示例可以包括特征的特定组合。然而,以上实施例不限于此,并且在各个实现方式中,以上实施例可以包括仅承担这些特征的子集,承担这些特征的不同顺序,承担这些特征的不同组合,和/或承担除了明确列出的这些特征之外的附加特征。因此,应参照附图连同这些权利要求所属的等同物的全部范围一起确定实施例的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1