基于经全局运动补偿的运动矢量预测值的视频编码的制作方法

文档序号:25543566发布日期:2021-06-18 20:40
基于经全局运动补偿的运动矢量预测值的视频编码的制作方法

本发明涉及基于经全局运动补偿的运动矢量预测值的视频编码,并且具体地但非排他地涉及基于经全局运动补偿的运动矢量预测值的视频编码的方法和系统、使用这种方法的视频解码器装置和视频编码器装置、以及用于执行这种方法的计算机程序产品。



背景技术:

最先进的视频编码标准使用基于混合块的视频编码方案,其中,将视频帧分割为视频块,随后使用基于预测块的压缩技术对视频块进行编码。在此,视频块(或简称为块)是指视频标准的基本处理单元,例如,hevc中定义的编码树单元(ctu)、avc中定义的宏块、以及vp9和avc1中定义的超级块。在诸如hevc等某些视频编码标准中,可以将块分割成较小的子块,例如,编码单元(cu)和预测单元(pu)。可以使用不同的预测模式来对每个块或子块进行编码。例如,可以基于同一帧内的预测数据使用不同的帧内预测模式对块进行编码,以便利用视频帧内的空间冗余。另外,可以基于来自另一帧的预测数据使用帧间预测模式来对块进行编码,使得可以利用视频帧序列上的时间冗余。

帧间预测使用运动估计技术来确定运动矢量(mv),其中,运动矢量标识已编码的参考视频帧(过去或将来的视频帧)中适合于预测需要编码的视频帧中的块,其中,需要编码的块及其相关联的mv通常分别称为当前块和当前mv。预测块与当前块之差可以定义残差块,该残差块可以与诸如mv等元数据一起被编码,并被传输到视频播放设备,该视频播放设备包括用于使用元数据对编码信息进行解码的视频解码器。进而,可以通过利用已编码块的运动矢量与当前块的运动矢量之间的相关性来压缩mv。视频图像中的平移移动的对象通常包含在方向和长度上具有相似运动矢量的多个块。视频编码标准通常利用这种相关性。

例如,诸如由hevc使用的所谓的高级运动矢量预测(amvp)算法或由av1使用的动态参考运动矢量预测(refmv)等运动矢量压缩方案旨在通过使用已经计算出的运动矢量作为用于预测当前mv的参考来将有关运动矢量的信息压缩在比特流中。这样的运动矢量可以被称为运动矢量预测值(mvp)。在该方案中,可以通过以下方式来生成当前块的mv的mvp:确定当前视频帧的已编码块的候选mv或经编码参考视频帧的同一位置的块的候选mv,并基于诸如众所周知的率失真优化(rdo)方案等优化方案来选择一个候选mv作为当前块的最佳预测值,即mvp。mvp与mv之差以及有关所选运动矢量预测值的信息被熵编码到比特流中。解码器使用所选mvp与mv的差的信息来重建需要解码的当前块的运动矢量。视频标准的运动矢量压缩方案均基于以下事实:由于连续帧的块中像素的空间相关性,靠近当前块的块(例如,同一视频帧中的相邻块或参考帧中的同一位置的块)通常将具有相同或相似的运动矢量值。

与大多数编码标准所使用的帧间预测算法相关联的问题是,这些算法假设运动与视频中对象的平移移动有关。图像中物体的这种移动有时称为局部运动。然而,由运动估计技术确定的运动矢量提供了对视频帧的视频块中的所有运动的估计,即,与移动对象相关联的局部运动以及与移动相机引起的移动背景相关联的全局运动。常规的帧间预测方案针对局部运动进行了优化,但并未设计用于处理全局运动的影响。

已知可以同时处理局部运动和全局运动的视频编码方案。例如,mpeg-4标准的高级简单类(asp)包括一种帧间预测方案,该方案包括针对视频帧中各个块的局部运动估计(lme)和全局运动估计(gme)。编码器可以为每个块选择最佳预测,即,基于lme模式的预测或基于gme模式的预测。如果为视频帧中的一个或多个块选择了gme模式,则对视频帧的一组全局运动参数进行编码并在比特流中将其发送至解码器装置。确定为其选择了lme模式的块的运动矢量。由于编码器侧和解码器侧增加了复杂性和计算负荷,所提出的高级简单类方案不太适合硬件实施方式。此外,在以常规方式产生的(2d)视频中,由于相机运动(例如,变焦或摇摄)引起的全局运动影响相对较短且不易预测,因此gme过程能够实现的增益相对较少。

目前,越来越多的专业和消费级相机能够产生360度视频内容。这种视频内容(也称为全向内容)可以被认为是布置在球面上的像素(有时也被称为像素球体或像素的球体),在下文简称为术语球面内容。相比于常规视频,球面内容的递送通常需要更高的带宽。球面内容表示比常规视频(其可以基于直线或曲线投影)更宽的视场,并且因此比常规(2d)视频包含更多的信息。此外,为了提供“沉浸式”的视频体验,球面视频内容通常包含相对较长的场景,这些场景是使用平移移动的相机捕获的(例如,安装在无人机、汽车、自行车上的相机或由在特定方向上以特定速度移动的摄影师携带的相机)。

球面视频的典型视频处理流水线可以包括:使用全景或360度图像捕获系统捕获全景图像,在图像拼接操作中将图像拼接在一起以形成球面视频数据,然后使用合适的投影模型将球面视频数据投影到视频帧的2d矩形表面上。所产生的视频帧可以被称为投影视频帧。可以使用不同的投影模型(如等距柱状投影(erp)、立方体或棱锥体投影模型)来生成投影视频帧,可以使用现有的视频编码标准(如h.264/avc、h.265/hevc、vp9和av1)对这些投影视频帧进行编码。经编码的球面视频数据可以被存储在存储介质上或者被提供给(例如,传输到)媒体回放设备。解码器装置可以对经编码的视频帧进行解码,并且渲染引擎可以在合适的显示设备(例如,头戴式设备(hmd)等)上渲染球面内容。在球面视频中,全局运动的影响尤为明显,其中,视频帧中的视频数据是3d世界场景在物理移动的360相机的成像平面上的投影结果。在这种情况下,由于相机移动引起的投影视频帧中的全局运动场不能通过已知的帧间预测方案高效地处理,从而大大降低了编码效率。

在vishwanath等人的文章“rotationalmotionmodelfortemporalpredictionin360videocoding[用于360视频编码中的时间预测的旋转运动模型]”中解释了将360视频投影到相机的2d成像平面上会产生视频帧中的非线性运动,这种非线性运动需要通过最先进的视频编码系统进行处理。非线性运动降低了压缩效率,并且作者提出通过使用球面模型来解决该问题,其中,视频图像中的运动被描述为像素球体上的角运动。该模型用于hevc编码器的运动估计过程中。尽管以球坐标来描述360视频中的运动可以导致更准确地确定视频帧中视频块的运动矢量,但是它不能解决由于相机运动引起的视频帧中的全局运动场的问题以及压缩包括全局运动的运动矢量的困难。最先进的帧间预测方案不能高效地处理包括投影在2d视频帧上的全局运动分量的运动矢量,因为在这种情况下运动矢量的相关性违反了先前描述的假设,即,违反了运动矢量方向和幅度的强空间相关性,这可能导致严重的压缩效率低下。

因此,从上面可以得出,在本领域中需要一种用于对包括由运动、特别是相机运动引起的全局运动场的视频数据进行编码的改进的方法和系统。



技术实现要素:

如本领域技术人员将认识到的,本发明的各方面可以实施为系统、方法或计算机程序产品。因此,本发明的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或者在本文中通常可以被称为“电路”、“模块”或者“系统”的组合软件和硬件方面的实施例的形式。本披露内容中描述的功能可以实施为由计算机的微处理器执行的算法。此外,本发明的各方面可以采取在具有在其上实施的、例如存储的计算机可读程序代码的一种或多种计算机可读介质中实施的计算机程序产品的形式。

可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于电子、磁、光、电磁、红外、或半导体系统、装置或设备,或上述的任何合适的组合。计算机可读存储介质的更具体的示例(非穷举列表)将包括以下各项:具有一个或多个导线的电连接装置、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪速存储器)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储设备、磁存储设备、或者上述的任何合适的组合。在本文献的上下文中,计算机可读存储介质可以是可包含或存储用于由指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的程序的任何有形介质。

计算机可读信号介质可以包括具有在其中(例如,在基带中或作为载波的一部分)实施的计算机可读程序代码的传播数据信号。这种传播信号可以采取各种形式中的任何一种,包括但不限于,电磁的、光的或其任何合适的组合。计算机可读信号介质可以是不是计算机可读存储介质并且可以通信、传播、或传输程序(以用于由指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用)的任何计算机可读介质。

可以使用任何适当的介质传输在计算机可读介质上实施的程序代码,这种介质包括但不限于无线、有线、光纤、电缆、rf等,或上述的任何合适的组合。用于执行本发明的各方面的操作的计算机程序代码可以以一种或多种编程语言的任何组合编写,该一种或多种编程语言包括诸如java(tm)、smalltalk、c++等面向对象的编程语言和诸如“c”编程语言或相似的编程语言等常规过程编程语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为独立软件包执行、部分地在用户计算机上执行并部分地在远程计算机上执行、或完全地在远程计算机或服务器上执行。在后一种场景中,远程计算机可以通过包括局域网(lan)或广域网(wan)的任何类型网络连接到用户计算机,或可以进行与外部计算机的连接(例如,使用互联网服务提供商、通过互联网)。

下面将参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解的是流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机程序指令实施。可以将这些计算机程序指令提供给通用计算机、专用计算机、或其他可编程数据处理装置的处理器,具体是微处理器或中央处理单元(cpu)以产生机器,使得经由计算机或其他可编程数据处理装置或其他设备的处理器执行的指令创建用于实施流程图和/或框图的一个或多个框中指定的功能/动作的装置。

这些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质可以指导计算机、其他可编程数据处理装置、或其他设备以用特殊的方式发挥功能,从而使得存储在该计算机可读介质中的指令产生制造的包括指令的物品,这些指令实施流程图和/或框图的一个或多个框中指定的功能/动作。

计算机程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以引起在计算机、其他可编程装置或其他设备上执行一系列操作步骤以产生计算机实施的过程,从而使得在计算机或其他可编程装置上执行的指令提供用于实施在流程图和/或框图的一个或多个框中指定的功能/动作的过程。另外,指令可以由任何类型的处理器执行,包括但不限于一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)、或其他等效的集成或分立的逻辑电路系统。

附图中的流程图和框图展示了根据本发明的各实施例的系统、方法和计算机程序产品的可能实施方式的体系架构、功能和操作。关于此,流程图或框图中的每个框可以表示包括用于实施(多个)特定逻辑功能的一个或多个可执行指令的代码的模块、片段或部分。还应当指出的是,在一些替代实施方式中,框中标明的功能可以不按图中标记的顺序发生。例如,根据涉及的功能,连续示出的两个框实际上可被大体同时执行,或者这些框可能有时以相反的顺序被执行。还将指出的是,可以通过执行特定功能或动作的基于专用硬件的系统或专用硬件和计算机指令的组合来实施框图和/或流程图的每个框及框图和/或流程图中框的组合。

本申请中的实施例旨在提高视频的编码效率,特别是360视频以及由于捕获视频的相机(其可以是虚拟(计算机生成的世界)相机或真实相机)的相机位置的移动而具有全局运动的任何其他类型的视频。在此,该移动可以与相机的物理移动(例如,由于平移或倾斜操作)相关联,或者与相机的虚拟移动(例如,由于变焦动作)相关联。改进包括在视频编码过程期间补偿视频中的全局运动,以便消除与全局运动相关联的抑制编码效率的影响。

发明人认识到,由于相机的平移移动而引起的视频帧中的全局运动场具有独特的模式,这可能取决于视频帧中的视频数据的类型。在球面视频的情况下,全局运动尤为明显,其中,全局运动的特征模式可能取决于用于将球面视频投影到视频帧的矩形2d平面上的投影。例如,在等距柱状(erp)投影视频帧中,相机运动可能会导致视频中的特征模式包括视频帧中的扩张点和压缩点。扩张点周围区域中的像素可能具有起点位于同一点(扩张点)并指向相反方向的运动矢量,并且压缩点周围区域中的像素可能具有指向同一点(压缩点)的运动矢量,从而导致这两种类型的区域中复杂但可准确预测的运动模式。可以使用简单的参数化算法来预测这种模式,该算法对3d场景中相机的移动(从而引起所捕获的视频中的全局运动)进行建模。应当注意的是,在相机位置移动的情况下捕获的常规(例如,非球面)视频中也可能存在全局运动,该全局运动可能随移动速度和视图的角度而变得更加明显。同样在常规视频中,作为全局运动结果的全局运动模式(例如,运动矢量的分量)可以适合于基于参数化算法(参数化函数)进行建模,或者简单地通过使用合适的图像处理算法分析视频来确定,并用于生成包括运动补偿矢量的运动补偿图。

在一方面,本发明可以涉及一种提供包括由编码器装置编码的视频数据的比特流的方法。在实施例中,该方法可以包括:优选地由该编码器装置的处理器确定包括由至少一个视频捕获设备捕获的视频数据的视频帧序列中的当前视频帧的当前块的运动矢量,该运动矢量定义当前块相对于存储在该编码器装置的存储器中的已编码的第一参考视频帧的预测块的偏移,其中,由该运动矢量定义的偏移的至少一部分与该视频捕获设备正在相对于场景移动时该视频数据中的全局运动相关联;该当前块与该预测块之差定义了残差块。在此,当运动矢量使用子像素精度时,可以从参考帧的样本插值预测块。另外,比平移更复杂的运动模型(例如,具有旋转和/或缩放)还可能需要基于参考帧的样本来插值预测块的值。优选地,使用一个视频捕获设备来捕获视频数据,但是从技术上讲,其可以是两个或更多个单独的捕获设备,每个捕获设备捕获视频数据的一部分。视频数据优选地是由一个或多个捕获设备捕获的球面视频数据,该球面视频数据已经基于投影模型而被投影到矩形视频帧上。

另外,预测块可以从参考帧定义任何样本集合,包括矩形的样本集合,这些样本集合可以用于计算视频帧的块的样本预测。

该方法还可以包括优选地由该处理器确定用于预测该运动矢量的运动矢量预测值候选,该运动矢量预测值候选是由该处理器基于该当前视频帧的一个或多个已编码块的一个或多个运动矢量确定的,和/或基于存储在该编码器装置的存储器中的一个或多个参考视频帧、优选地该第一参考视频帧的一个或多个已编码块的一个或多个运动矢量确定的。

进一步地,该方法可以包括:优选地由该处理器确定或接收用于每个运动矢量预测值候选的运动补偿矢量,该运动补偿矢量提供对运动矢量预测值候选中与全局运动相关联的部分的估计;优选地由该处理器确定经全局运动补偿的运动矢量预测值候选,每个经补偿的运动矢量预测值候选是基于运动矢量预测值候选与相关联的运动补偿矢量之差来确定的;优选地由该处理器从这些经全局运动补偿的运动矢量预测值候选中选择经补偿的运动矢量预测值;以及优选地由该处理器基于该经补偿的运动矢量预测值和该运动矢量来确定运动矢量差。

另外,该方法可以包括:优选地由该处理器使用熵编码算法将以下信息编码到比特流中:该残差块;该运动矢量差;该运动矢量差基于该运动矢量与经补偿的运动矢量预测值之差的指示、优选地二进制标志;所选择的经补偿的运动矢量预测值的指示;以及用于将运动矢量预测值转换为经补偿的运动矢量预测值的转换信息。

因此,使用运动补偿矢量针对全局运动来补偿视频帧的块的运动矢量预测值,其中,每个运动补偿矢量提供块的像素的全局运动的估计。如果在需要编码的视频数据中存在全局运动,则在视频编码过程期间对全局运动进行补偿就能够基于运动矢量预测值对运动矢量进行高效压缩。

在实施例中,该候选列表可以是索引列表,并且其中,由该编码器装置选择的经补偿的运动矢量预测值的指示包括该运动矢量预测值在该候选列表中的索引。通过使用索引列表,仅需要在比特流中传输所选运动矢量的索引。

在实施例中,该转换信息可以包括编码器装置用于确定运动补偿矢量的算法的指示和/或存储在解码器中用于确定运动补偿矢量的算法的一个或多个参数。该信息可以向解码器装置发信号通知编码器装置使用了哪种算法来确定运动补偿矢量。

在实施例中,该一个或多个参数中的至少一部分可以与视频捕获设备相对于场景的移动相关联。

在实施例中,该一个或多个参数中的至少一部分可以包括:该视频捕获设备相对于该场景的速度、该视频捕获设备相对于参考点的高度、或该视频捕获设备相对于该场景移动的方向。解码器装置可以使用这些参数基于存储在解码器装置的存储器中的参数化算法来计算运动补偿矢量。

在实施例中,该运动补偿矢量可以是运动补偿图的一部分,该运动补偿图包括用于该当前视频帧和/或该参考视频帧的块的运动补偿矢量。

在实施例中,该转换信息可以包括该运动补偿矢量或运动补偿图,该运动补偿图包括用于该当前视频帧的块的运动补偿矢量、用于该视频帧序列的一个或多个视频帧的块的运动补偿矢量。

在实施例中,确定运动矢量差可以包括以下至少一个步骤:基于该经补偿的运动矢量预测值和该运动矢量确定第一运动矢量差候选;以及基于该运动矢量预测值和该运动矢量确定第二运动矢量差候选;以及,基于优化过程,优选地率失真优化rdo过程,从该第一运动矢量差候选和该第二运动矢量差候选中选择该运动矢量差。因此,可以使用诸如rdo方案等优化方法来确定使用经全局运动补偿的运动矢量预测值是否会导致压缩效率的提高。如果与经补偿的运动矢量预测值有关的rdo成本高于与未经补偿的运动矢量预测值有关的rdo成本,则编码器装置可以确定使用常规运动矢量预测值对块进行编码。

在实施例中,可以基于参数化算法来确定运动补偿矢量,其中,该算法可以被配置为生成视频帧的当前块的全局运动的估计。在实施例中,该算法可以表示参数化世界模型,例如,包括顶平面和底平面的(双平面)世界模型。因此,可以使用编码器和解码器已知的表示由于相机的移动引起的视频帧序列中的全局运动的简单模型的参数化算法来确定运动补偿矢量。

在实施例中,参数化算法取决于用于将视频数据投影到帧上的投影模型。在另一实施例中,参数化算法取决于一个或多个相机参数。例如,相机的平移(或旋转)速度、相机高度、变焦速度等。

在本发明的实施例中,参数化算法取决于投影模型以及一个或多个相机参数两者。

在实施例中,可以基于图像处理算法来确定运动补偿矢量。在实施例中,该算法可以被配置为确定当前视频帧中的运动场,即,包括与当前视频帧的像素或像素块相关联的运动矢量的运动场。在实施例中,该算法可以被配置为将运动场的运动矢量分类为表示当前视频帧中的局部运动的运动矢量和表示当前视频帧中的全局运动的运动矢量。因此,如果在比特流中传输运动补偿矢量,则可以使用任何算法来确定提供视频帧中的全局运动估计的运动补偿矢量。

在实施例中,视频捕获设备可以适于捕获球面视频数据,并且其中,视频帧序列中的视频帧包括球面视频数据,该球面视频数据优选地已经基于投影模型被投影到矩形视频帧上。在实施例中,投影模型可以是等距柱状或立方体投影模型或任何其他合适的投影模型。本发明特别适用于由于相机移动(特别是平移相机移动)引起的全局运动的影响特别明显的球面视频。

在实施例中,该转换信息的至少一部分可以被包括在该比特流中。在实施例中,该转换信息的至少一部分可以包含在一个或多个sei消息中;和/或一个或多个网络抽象层nal中。在实施例中,一个或多个nal单元中的至少一个可以是非vclnal单元,诸如图像参数集pps。

在实施例中,运动矢量和运动矢量预测值的确定以及编码可以基于编码标准。在实施例中,编码标准包括avc、hevc、vp9、av1编码标准、或基于avc、hevc、vp9、av1编码标准的编码标准中的至少一个。

在一方面,本发明还可以涉及一种用于从由编码器装置编码的比特流重建视频帧的块的方法。在实施例中,该方法可以包括以下一个或多个步骤:优选地由解码器装置的处理器接收比特流,该比特流包括当前视频帧的当前块,该当前块将由该解码器装置基于存储在该解码器装置的存储器中的第一参考视频帧的已解码预测块并且基于表示该当前块相对于预测块的偏移的运动矢量而重建,该预测块与该当前块之差定义了残差块;优选地由该处理器使用熵编码过程将该比特流解码为:残差块;运动矢量差;该运动矢量差基于运动矢量与经补偿的运动矢量预测值之差的指示、优选地二进制标志;所选择的经补偿的运动矢量预测值的指示;以及用于将运动矢量预测值转换为经补偿的运动矢量预测值的转换信息;优选地由该处理器确定用于预测该当前块的运动矢量的运动矢量预测值候选,运动矢量预测值候选定义该当前视频帧的已解码块的运动矢量或存储在该解码器装置的存储器中的参考视频帧、优选地第一参考视频帧的已解码块的运动矢量;该处理器使用该转换信息来确定用于每个运动矢量预测值候选的运动补偿矢量,运动补偿矢量提供对运动矢量预测值候选中与全局运动相关联的部分的估计,该全局运动是由视频捕获设备相对于场景的移动引起的;优选地由该处理器确定经全局运动补偿的运动矢量预测值候选,每个经补偿的运动矢量预测值候选是基于运动矢量预测值候选与相关联的运动补偿矢量之差来确定的;基于所选择的经补偿的运动矢量预测值的指示,从这些经补偿的运动矢量预测值候选中选择经补偿的运动矢量预测值;以及,优选地由该处理器基于该经补偿的运动矢量预测值和该运动矢量差来确定该当前块的运动矢量;以及,优选地由该处理器基于该预测块和该残差块重建当前块,该重建包括使用该运动矢量来识别存储在该解码器装置的存储器中的参考视频帧的预测块。

在另一方面中,本发明可以涉及一种编码装置,该编码装置包括:计算机可读存储介质,该计算机可读存储介质具有用其体现的程序的至少一部分;以及计算机可读存储介质,该计算机可读存储介质具有用其体现的计算机可读程序代码;以及处理器,优选地微处理器,该处理器耦合至该计算机可读存储介质,其中,响应于执行该计算机可读程序代码,该处理器被配置成执行可执行操作。在实施例中,这些可执行操作可以包括以下一个或多个步骤,包括:确定包括由视频捕获设备捕获的视频数据的视频帧序列中的当前视频帧的当前块的运动矢量,该运动矢量定义当前块相对于存储在该编码器装置的存储器中的已编码的第一参考视频帧的预测块的偏移,其中,该偏移的至少一部分与该视频捕获设备正在相对于场景移动时该视频数据中的全局运动相关联;该当前块与该预测块之差定义了残差块;确定或接收用于每个运动矢量预测值候选的运动补偿矢量,该运动补偿矢量提供对运动矢量预测值候选中与全局运动相关联的部分的估计;确定或接收用于每个运动矢量预测值候选的运动补偿矢量,运动补偿矢量表示对该当前视频帧的已编码块或一个或多个参考视频帧之一的已编码块的像素的全局运动的估计,该全局运动是由于该视频捕获设备相对于该场景的移动引起的;确定经全局运动补偿的运动矢量预测值候选,每个经补偿的运动矢量预测值候选是基于运动矢量预测值候选与相关联的运动补偿矢量之差来确定的;从这些经全局运动补偿的运动矢量预测值候选中选择经补偿的运动矢量预测值;以及,基于该经补偿的运动矢量预测值和该运动矢量来确定运动矢量差;使用熵编码算法将以下信息编码到比特流中:该残差块;该运动矢量差;该运动矢量差基于该运动矢量与经补偿的运动矢量预测值之差的指示、优选地二进制标志;所选择的经补偿的运动矢量预测值的指示;以及用于将运动矢量预测值转换为经补偿的运动矢量预测值的转换信息。

在另一实施例中,本发明可以涉及一种编码装置,该编码装置被配置为执行在本申请中定义的任何编码过程。

在一方面,本发明还可以涉及一种解码装置,该解码装置包括:计算机可读存储介质,该计算机可读存储介质具有用其体现的程序的至少一部分;以及计算机可读存储介质,该计算机可读存储介质具有用其体现的计算机可读程序代码;以及处理器,优选地微处理器,该处理器耦合至该计算机可读存储介质,其中,响应于执行该计算机可读程序代码,该处理器被配置成执行包括以下各项的可执行操作。在实施例中,这些可执行操作可以包括以下一个或多个步骤:解接收比特流,该比特流包括当前视频帧的当前块,该当前块将由该解码器装置基于存储在该解码器装置的存储器中的第一参考视频帧的已解码预测块并且基于表示该当前块相对于预测块的偏移的运动矢量而重建,该预测块与该当前块之差定义了残差块;使用熵编码过程将该比特流解码为:残差块;运动矢量差;该运动矢量差基于运动矢量与经补偿的运动矢量预测值之差的指示、优选地二进制标志;所选择的经补偿的运动矢量预测值的指示;以及用于将运动矢量预测值转换为经补偿的运动矢量预测值的转换信息;确定用于预测该当前块的运动矢量的运动矢量预测值候选,运动矢量预测值候选定义该当前视频帧的已解码块的运动矢量或存储在该解码器装置的存储器中的参考视频帧、优选地第一参考视频帧的已解码块的运动矢量;使用该转换信息来确定用于每个运动矢量预测值候选的运动补偿矢量,运动补偿矢量提供对运动矢量预测值候选中与全局运动相关联的部分的估计,该全局运动是由视频捕获设备相对于场景的移动引起的;确定经全局运动补偿的运动矢量预测值候选,每个经补偿的运动矢量预测值候选是基于运动矢量预测值候选与相关联的运动补偿矢量之差来确定的;基于所选择的经补偿的运动矢量预测值的指示,从这些经补偿的运动矢量预测值候选中选择经补偿的运动矢量预测值;以及,基于该经补偿的运动矢量预测值和该运动矢量差来确定该当前块的运动矢量;以及,基于该预测块和该残差块重建当前块,该重建包括使用该运动矢量来识别存储在该解码器装置的存储器中的参考视频帧的预测块。

在另一实施例中,本发明可以涉及一种解码装置,该解码装置被配置为执行在本申请中定义的任何解码过程。

本发明还可以涉及一种计算机程序产品,该计算机程序产品包括软件代码部分,这些软件代码部分被配置成当在计算机的存储器中运行时执行根据上述过程步骤中任一项所述的方法步骤。在本申请中,使用以下缩写词和术语:

amvp高级运动矢量预测

erp等距柱状投影

rdo率失真优化

360视频从3d空间中的单个位置表示场景的视频,其中包含场景的完整或部分球面视图的视觉内容

mv用于帧间预测的二维矢量,其定义当前块相对于存储在编码器或解码器的存储器中的已编码参考视频帧(过去或将来)的预测块的偏移(dx,dy)。运动矢量表示对当前块的像素的运动(大小和方向)的估计

mv场受帧大小限制的2d空间,运动矢量位于其中。运动矢量的位置由与该运动矢量相关联的编码块的位置给出

运动补偿图用于视频帧中的块的一组运动补偿矢量,其中,每个运动补偿矢量提供了全局运动对由运动矢量mv定义的块的像素运动的估计贡献。可以根据被称为运动补偿矢量的二维矢量(dx,dy)来定义估计贡献,该二维矢量在视频帧的x,y平面中具有x分量dx和y分量dy

mvp运动矢量预测值是属于另一个(当前帧或参考帧的)已编码或解码的块的mv,其可以用作当前mv的预测值,以减少对mv(就其x和y分量而言)进行编码的成本。

将参考附图进一步说明本发明,附图将示意性地示出根据本发明的实施例。将理解的是,本发明不以任何方式局限于这些具体实施例。

附图说明

图1描绘了处理球面视频数据的流程图。

图2描绘了球面视频数据的等距柱状投影的示例。

图3a至图3b描绘了球面视频数据的不同投影和映射。

图4a至图4f展示了投影球面视频数据中的运动场的概念。

图5a和图5b描绘了360视频帧的时间平均运动矢量场的示例。

图6a和图6b描绘了2d视频帧的时间平均运动矢量场的示例。

图7a和图7b展示了根据本发明实施例的用于视频编码的运动补偿过程。

图8展示了根据本发明实施例的使用运动矢量补偿函数的运动补偿过程。

图9展示了根据本发明实施例的包括运动补偿模块的编码器装置。

图10展示了根据本发明实施例的包括运动补偿模块的解码器装置。

图11示出了根据本发明实施例的用于视频编码的运动补偿过程。

图12展示了根据本发明实施例的运动补偿矢量在视频编码过程中的使用。

图13展示了根据本发明另一实施例的运动补偿矢量在视频编码过程中的使用。

图14描绘了展示可以与本披露内容中描述的实施例一起使用的示例性数据处理系统的框图。

具体实施方式

图1描绘了用于处理球面内容的方法的高级流程图。该过程可以包括使用全景或360度图像捕获系统捕获多个图像(步骤102),该图像捕获系统通常包括多个(即,两个或更多个)图像传感器。由不同图像传感器生成的重叠视场的图像可以被一起拼接(步骤104)成一个全景或高分辨率图像。将多个图像拼接成一个图像是众所周知的图像处理技术,该技术通常包括对准和全景合成。在对准过程中,可以从图像中提取特征描述符,以便在形成全景合成的不同图像中找到相应的图像特征。对准用于估计每个不同图像的图像相机姿态或取向。全景合成过程随后使用该信息将不同的图像组合成一个全景图像。图像混合可以用于将组合的图像无缝地拼接在一起。图像的拼接可以在2d或3d空间中进行。例如,图像可以彼此拼接到球面上,从而形成球面视频数据。应当强调的是,尽管所要求保护的发明特别适合于360视频(例如,全向),但是它同样适用于任何类型的视频,包括常规视频,其中,存在可以建模的全局运动。

此后,全景合成的球面视频数据可以通过投影和映射操作(步骤106)变换并格式化成2d矩形视频帧,这些视频帧由最先进的视频编码器编码(步骤108)。经编码视频数据可以被封装在运输容器中,使得视频数据可以被传输至包括视频解码器的播放设备,该视频解码器被配置成将视频数据解码(步骤110)成2d矩形帧。为了向用户呈现内容,播放设备渲染3d(多面体)对象,并用解码视频帧的视频数据对其进行纹理化(步骤114)。取决于所使用的投影,通过反转打包、映射和投影操作,将解码视频帧变换回全向视频数据(步骤112)。编码过程108可以在视频编码器装置中实施,并且步骤110至114可以在连接至或集成在例如头戴式显示设备(hmd)中的媒体回放设备中实施。

参考图2至图4更详细地描述通过投影和映射操作将球面视频数据转换成2d矩形视频帧。图2描绘了球面视频数据202到矩形2d视频帧206上的等距柱状投影操作204的示例,该球面视频数据表示为球面(例如,球体或压扁的球体)上的像素。该投影操作可以用于将与球面坐标相关联的像素直接变换成与具有笛卡尔坐标(x,y)的平面2d像素相关联的像素。以这种方式,球面视频数据可以被变换成可以由常规视频编码系统处理的常规视频帧。

图3a和图3b描绘了用于生成投影视频帧的投影模型。图3a描绘了使用立方投影模型将球面视频数据302投影到矩形视频帧上,其中,球面视频数据被投影到立方体的面304上。这些面可以被称为投影面。球体和立方体的取向可以使用3d坐标系来描述,使得可以限定球体、立方体、以及球体相对于立方体的不同取向。例如,在这种坐标系中,投影面可以被标记为前面(f)、上面(u)、下面(d)、左面(l)、右面(r)和背面(b)。在将像素投影到投影面上之后,可以展开立方体的面,从而形成平面的2d矩形视频帧306,其中,包括投影像素的面布置在2d平面中。在此,属于投影面的像素可以被称为像素区域或简称为区域。例如,与立方体的前投影面l308相关联的像素在矩形视频帧306中形成像素区域l。投影到立方体的面上以及立方体的展开过程可以被称为映射,并且映射的结果可以被称为投影视频帧。投影视频帧包括像素区域的布置,其中,像素区域的边缘可以形成区域边界。人为区域边界是映射操作的直接结果,并且像素区域的形状是所使用的投影模型(在这种情况下,立方体投影模型)的直接结果。

取决于投影模型,在映射之后,投影视频帧可以包括不包括任何视频数据的一些区域307。为了提高压缩效率,可以重新布置投影视频帧中的像素区域并调整其大小,从而去除不包括任何视频数据的区域。该过程可以被称为打包(packing)。打包过程产生打包的投影视频帧310,其包括重新布置的像素区域312以及水平和竖直布置的区域边界314、316。类似地,图3b描绘了金字塔投影模型314,其产生包括像素区域304、310、318、320和相关联的区域边界306、312、313、322的投影视频帧318。取决于投影类型,区域边界在视频帧中可以具有不同的取向。可以使用许多不同的投影类型,包括但不限于圆柱体、多面体(例如,八面体或二十面体)、截棱锥体、分段的球体等。将球面视频数据映射投影视频帧中以及可选地进行打包将产生包括多个像素区域的视频帧。

在360视频的情况下,很有可能视频内容不是使用绕其一个轴旋转的相机捕获或计算机生成的。这是因为由旋转的相机位移引起的视频运动可能会引起观看者的晕动病。然而,平移运动,特别是缓慢的平移运动,对于大多数用户来说是可以接受的。因此,360视频中的相机运动主要是相机的平移运动。如果相机平移是可能的,则视频内容中的场景通常会允许相机在给定方向上移动足够长的时间,例如,由移动的无人机捕获的场景。以这种方式,可以向观看者提供“沉浸式”的视频体验。这意味着随时间而变的场景世界不是像立方体那样的小型封闭3d几何体(当使用静态360相机时可能就是这种情况)。相反,场景世界可以在平行于相机运动的左侧和右侧包括至少两个竖直平面(“墙”),以及在顶部和底部包括两个水平平面,分别为“天空”和“地面”。在一些情况下,比如大型室内仓库,世界场景可能会进一步简化,并且可以仅通过顶部和底部两个平面来表征。在又一种情况下,例如室外镜头,可以将顶平面(天空)视为距离相机无限远,并且因此可以省去。

众所周知,在相机的平移运动的情况下,由相机捕获的图像会有相应的变化。如果相机以一定速度移动,则可以为在相机的图像平面上成像的3d场景世界的点指派一个矢量,该矢量指示由于相机移动引起的图像平面上的点的移动的大小和方向。视频帧中的每个点的运动矢量的集合(例如,像素或像素集合,比如视频块)可以形成与视频帧相关联的运动矢量场。因此,运动矢量场在被投影到相机图像上时形成3d运动的表示,其中,3d运动导致真实世界场景(的各部分)与相机之间的(相对)移动。运动矢量场可以表示为将图像坐标映射到2维矢量的函数。由于360摄像机的平移移动引起的投影球面视频中的运动场将表现出具有独特模式的运动场,具体取决于用于将球面视频投影到矩形2d平面上的投影类型。图4a至图4f更详细地展示了投影球面视频数据中的运动场的概念。

图4a描绘了线性移动360摄像机(即,具有假想的球面捕获表面的相机)的平面世界场景模型的侧视图。图4b描绘了平面世界场景模型的俯视图。如图4a所示,捕获场景的360相机的球面402被示意性地描绘为半径为r的球体。相机的平移移动通常是由相机支撑物(例如汽车、人、无人机等)的位移引起的。在这种情况下,场景可以建模为两个平面,即,地平面404(“地面”)和顶平面406(“天空”)。在这里,术语“天空”和“地面”决定了顶平面和底平面(但不一定表示真实世界的“天空”或真实世界的“地面”)。例如,天空可能表示室内360视频中的天花板。该场景可以进一步以一个或多个距离来表征,例如,地面距离和天空距离,它们分别定义了相机中心o与地平面(底平面)之间的距离以及相机中心与天空平面(顶平面)之间的距离。如果点表示顶平面的点,则该点的速度由下式给出:

另外,三角形中的三角关系得出:

以及

在此,根据定义,对于顶平面内的所有点,因为,所以角度都在]的范围内。球面上可见的运动由球体与线段相交的点的角速度给出。在相机的参考系内,点,即,点与非零运动矢量相关联。为了确定当点移动了时点在圆上的位移,可以评估切线方程(其提供了点的位置与角度之间的关系):

通过导出关于时间的方程,可以导出平面世界场景的运动场的以下表达式(相对于时间保持不变):

这些方程在位于同一平面oxz中(即,p位于平面oxz中)时有效。当p不位于该平面中时,可以通过()在球坐标系中定义点p,其中,是方位角,并且是球坐标系中的极角,并且o是其原点。图4b描绘了角度。进一步地,可以在笛卡尔坐标系中定义为:

在p不位于平面oxz中的情况下,先前的方程可以通过将到线(hp)的投影(因此在对准的情况下会回落)代入来一般化,为:

该表达式提供了由于相机运动而导致的epr投影的运动场的水平分量(x分量)(还参见图4d):

以类似的方式,可以确定运动场的竖直y分量。这些表达式表明,由平面世界模型中的平移运动产生的运动场由一组特定的特性表征,可以使用如上所述的简单参数化函数进行分析建模。出于描述本发明的目的,在整个申请中,术语“参数化函数”和“参数化算法”可互换使用。如将在图中所示,运动场在全局方面为零,或者以分开180度的扩张焦点(扩张点)和收缩焦点(收缩点)为特征。此外,存在的任何流都与将扩张焦点与收缩焦点相连的测地线平行。

图4c表示与包括球面视频数据(球体上的像素)的视频帧的尺寸相匹配的矩形帧408,所述球面视频数据使用等距柱状(erp)投影被投影到矩形帧上。投影会在两极(即,视频帧的上边缘和下边缘处的像素)周围引入失真(翘曲),这是由于在两极发生拉伸以将投影球体的表面拟合到矩形帧而引起的。因此,在投影(在这种情况下为erp投影)中,球体上靠近球体极点的点比球体赤道区域上的点分配的像素更多。当通过生成erp投影视频帧的360相机捕获场景时,由投影引入的模式可能会引入在视频中的两极周围具有独特运动模式的运动场。

例如,如图4c所示的视频帧中描绘的运动场可以与朝向矩形视频帧的中心中的对象移动的相机相关联。运动场是由360视频捕获和后来执行的投影(这种情况下为erp投影)的性质引起的。如果360视频是在室外捕获的,则视频的顶部部分通常会包含天空。在这种情况下,运动场主要在视频的底部部分可见。在赤道上,由于相机平行于天空和地面的线性平移,运动场为零。图像中的中心点410表示扩张点,即,运动场4141,2指向相反方向的点。扩张点是相机朝向其移动的点。赤道上位于帧边缘的点4121,2称为压缩点,即,运动场4161,2会聚在单个点上的点。在相机向前移动的示例中,该部分在相机后面。

图4d提供了由于相机运动引起的epr投影运动场的x分量的图形表示。这些值是基于上述针对的数学表达式计算得出的。运动场的概念与视频帧的运动矢量的概念密切相关,这些运动矢量如由在视频编码系统的帧间预测方案中使用的运动估计过程确定。如将在下文中更详细地描述的,在帧间预测方案中,运动矢量基于另一视频帧(参考视频帧)中的相同或相似视频块的位置来表示视频帧中的视频块的位置。视频中的运动将导致视频帧中视频块的像素从第一(投影)视频帧中的第一位置移位到另一个第二(投影)视频帧中的第二位置。因此,当将已知的运动估计方案应用于epr投影视频帧时,投影视频帧的视频块的运动矢量(如由运动估计方案确定)将在运动场较强的区域中表现出(大小和/或角度的)显著变化。例如,白色区域4191和黑色区域4192表示运动场的x分量相对较大的区域。

与视频帧中某个视频块相关联的运动矢量表示由于视频中的运动(包括由相机运动引起的运动)引起的像素(块)移位。因此,在视频块位置的投影视频帧中的运动场(其可以被准确地建模)提供了相机运动对运动矢量的贡献的有效度量。如图4c所示,可以将运动场对运动矢量的贡献划分为对第一运动矢量分量的贡献(运动矢量的x分量4201)和对第二运动矢量分量的贡献(运动矢量的y分量4202)。

因此,在图4d的白色和黑色区域中,相机运动对视频块的运动矢量的贡献将是巨大的。相反,图4d的灰色区域标识视频帧中的运动场较小的区域,从而可以预期相机运动对运动矢量的贡献很小或可忽略不计。以这种方式,使用投影视频帧中的运动场来确定相机运动会影响视频块的哪些运动矢量以及它们会影响到什么程度。由于运动场对于特定投影类型具有可预测的特征模式,因此可以使用运动场来改善视频压缩。

尽管上面参考erp投影解释了相机的平移移动的效果,但是所描述的影响(即,运动场的独特模式)也将出现在其他投影(例如,立方体图)中。这是因为这些投影中的每一个都会在视频中引入特征模式。图4e和图4f描绘了投影视频帧422和相关联的打包的投影视频帧430。箭头示出不同像素区域(包括与(虚拟)立方体的正面和背面相关联的像素区域4281,2)中的运动场的方向。与正面相关联的像素区域可以包括扩张点,即,运动场指向相反方向的点,而与背面相关联的像素区域可以包括压缩点,即,运动场会聚在单个点上的点。像素区域可以进一步包括与(虚拟)立方体的左面和右面相关联的像素区域4261,2以及与(虚拟)立方体的上面和下面相关联的像素区域4241,2。当打包投影视频帧时,可以如图4d所描绘的重新布置像素区域,包括与用作投影模型的(虚拟)立方体的上面和下面相关联的像素区域4321,2、与左面和右面相关联的像素区域4341,2、以及与正面和背面相关联的像素区域4361,2。如图4e和图4f所示,运动可以在视频帧中引起复杂但独特的运动场,这取决于像素区域在视频帧中的布置方式。因此,投影视频帧中像素区域的特定布置与视频中特定的独特(复杂)运动场相关联。

包括由于移动的相机引起的运动场的投影视频帧需要通过最先进的视频编码系统(例如,hevc、av1、vp10等)进行编码。这些视频编码系统依赖于帧间预测技术来提高编码效率。这些技术依赖于不同视频帧中的视频块之间的时间相关性,其中,这些块之间的相关性可以基于运动矢量来表示。这样的运动矢量提供了经解码图像中的视频块相对于参考图像中的相同视频块(较早的视频帧或未来的视频帧)的偏移。对于视频帧中的每个视频块,可以确定运动矢量。视频帧的所有视频块的运动矢量可以形成运动矢量场。当检查投影视频帧(例如,包括erp或立方体投影视频的视频帧)的运动矢量场时,某个视频块位置的运动场提供了该块的像素运动的度量,其中,该运动包括如参考图4a至图4f所描述的由于相机的平移移动引起的全局运动。

图5a和图5b中描绘了解码视频帧的运动矢量场的实验数据。具体地,图5a描绘了使用360摄像机捕获的视频的视频帧的运动矢量场的x分量的统计分析,并且图5b描绘了视频帧的运动矢量场的y分量的统计分析。对包括erp投影球面视频的具有运动矢量的视频帧序列进行了分析。图5a描绘了平均运动矢量值的水平分量(x方向),该平均运动矢量值是针对60×120个块中的每一个通过对180帧求平均而计算的。分析的目的是验证类似的360视频帧(位于中心位置的相机向前移动)是否表现出相同的典型特征,这些特征可以用来提高一组视频的编码效率。

如图5a所示,x方向上的平均mv值主要在图表的底部部分显示出线性对称性。当位于中心的360相机向前移动时,图5b中的运动矢量506从图像的中心(扩张点)向下指向底部边缘。图5a示出了图像的底部部分处的运动矢量背离中心对称地指向左右边缘,而图5b示出了在左右边缘处的运动矢量从底部边缘向上指向压缩点。x分量的左下半部分和右下半部分的区域502和504中相对较高的平均mv值表明,这些区域中的mv值与图4b的运动场的水平(x轴)分量高度相关。在x分量502的左下半部分上,平均值为正,因为运动矢量主要朝左侧,而在右下半部分504上,运动矢量主要指向右侧,从而导致mv的平均值为负。

图5b中示出了针对60×120个块中的每一个通过对视频帧的运动矢量求平均而获取的竖直y方向的平均mv值。该图表示出了mv值与图4b的运动场的竖直(y轴)分量高度相关,包括在图的中心指向底部的竖直mv分量506和在底部的角上向上指向的竖直mv分量508和510。

导致视频中独特模式的运动矢量场并影响视频编码系统的运动估计模块确定的运动矢量的方向和/或大小的相机运动影响不仅会在球面视频中发生,而且还会在(常规)的2d视频中发生。例如,图6a和图6b描绘了对包括变焦动作(其可以被视为相机运动的类型)的2d视频帧的运动矢量场的x分量和运动矢量场的y分量的统计分析。如图6a所示,在图表的左侧的水平mv值(指向左侧的水平mv值)中的运动场的主导影响是可见的,并且图表的右侧的水平mv值(指向右侧的水平mv值)中的运动场的主导影响是可见的。当相机移动(例如,汽车向前移动)时,也可能存在独特的mv模式。

因此,从如图5a、图5b、图6a和图6b所描绘的运动矢量场的统计分析可以得出,相机运动会影响视频帧中视频块的运动矢量的大小和/或方向,并引入特有的全局运动模式,该全局运动模式可以使用如以上所解释的参数化函数进行准确建模和预测。由于相机的移动而在运动矢量场中引入的特有的全局运动模式将取决于视频的类型(2d(常规视频)或球面(如全向视频)),并且在球面视频的情况下,还取决于用于将球面视频数据投影到矩形视频帧的投影类型以及世界场景视图(例如,房间、仓库、室外等)。

诸如hevc、vp9和av1等最先进的视频编码系统使用帧间预测技术来减少视频图像序列中的时间冗余,以便实现高效的数据压缩。帧间预测使用运动估计技术来确定运动矢量(mv),其中,运动矢量标识参考视频帧中的视频块,该视频块适合于预测需要编码的当前视频帧中的视频块。预测视频块与当前视频块之差可以定义残差视频块,该残差视频块可以与诸如mv等元数据一起被编码,并被传输到视频播放设备,该视频播放设备包括用于使用元数据对编码信息进行解码的视频解码器。可以通过利用运动矢量之间的相关性来进一步压缩mv。视频图像中的平移移动的对象通常包含在方向和长度上具有相似运动矢量的多个块。视频编码标准通常利用这种冗余。

例如,hevc使用所谓的高级运动矢量预测(amvp)算法,该算法旨在通过使用已经计算出的运动矢量作为用于预测当前运动矢量的参考来改善压缩。在该方案中,可以通过以下方式来生成块的运动矢量预测值(mvp):确定当前视频帧的已编码块的候选运动矢量或经解码参考视频帧的同一位置的块的候选运动矢量,并基于诸如众所周知的率失真优化(rdo)方案等优化方案来选择一个候选运动矢量作为当前块的最佳预测值。运动矢量预测值与运动矢量之间的运动矢量差mvd以及有关所选运动矢量预测值的信息被熵编码到比特流中。解码器使用所选运动矢量预测值与运动矢量的差的信息来重建需要解码的块的运动矢量。

与大多数编码标准所使用的帧间预测算法相关联的问题是这些帧间预测算法基于以下假设:运动与视频中对象的平移移动有关,这有时称为局部运动补偿。然而,运动矢量提供了对视频帧的视频块中的所有运动(包括与移动对象相关联的局部运动以及与移动相机引起的移动背景相关联的全局运动)的估计。当运动矢量之间的空间相关性为恒等函数(即,相邻的运动矢量往往具有相同的幅度和方向)时,常规的帧间预测方案对局部运动进行了优化,但这些方案不是为处理非均匀运动场的全局运动影响而设计的,特别是在全局运动影响占主导地位的情况下,如360视频由移动相机捕获的情况。本申请中的实施例旨在通过在编码过程期间补偿全局运动的影响来解决该问题。本发明依赖于以下事实:由于相机移动而引起的全局运动影响在视频帧中引入了独特的模式,该独特的模式可以使用参数化函数(参数化算法)进行准确建模。

图7a和图7b中示意性地描绘了本发明的总体概念。图7a和图7b的第一图表702和710分别描绘了(如参考图5所讨论的)视频帧序列的平均运动矢量场的各自的x分量和y分量的平均值。运动矢量分量显示出独特的模式,这些模式源自球面视频数据在(视频帧的)矩形区域上的等距柱状投影,其中,球面视频数据是由移动相机捕获的。如参考图4a和图4b所描述的,这些独特模式与简单平面世界模型的运动场强烈相关。因此,这些图表明,通过实验确定的特定视频类型(例如,2d或360视频)的运动矢量场和投影类型(例如,erp或立方体投影)在mv场中表现出独特的模式,这些独特模式无法由常规的帧间预测方案进行高效处理,常规帧间预测方案基于以下假设:包括运动的视频帧中的空间相邻视频块具有近似相同的大小和方向的运动矢量。当将全局运动引入视频时,该假设不再有效,从而导致已知视频编码标准的压缩效率大大降低。

为了解决全局运动的问题,使用了简单的参数化函数(参数化算法),该参数化函数提供了对视频帧中的视频块的全局运动的准确估计。参数化函数可以取决于投影模型和相机参数,例如,相机的平移速度、相机高度等,并产生运动补偿信息,该运动补偿信息可以用于从由帧间预测方案用来压缩视频的运动矢量或运动矢量预测值中去除全局运动。对于每个块,参数化函数可以确定运动补偿矢量,其中,x分量提供x方向上的全局运动的估计,并且y分量提供y方向上的全局运动的估计。运动补偿矢量(视频帧中的每个视频块或视频块组对应一个)可以组织成矩形网格,该矩形网格可以称为运动补偿图。使用参考图4a和图4b描述的类型的参数化函数,可以容易地近似运动补偿矢量。运动补偿图可以包括两个子图,这两个子图例如包括空间分量之一(例如,x分量或y分量)。例如,如图7a所示,第一运动补偿子图704(图7a的第二图表)可以包括用于补偿在第一方向(例如,在x方向)上的视频帧的块中的全局运动的值,并且第二运动补偿子图712(图7b的第二图表)可以包括用于补偿在第二方向(例如,在y方向)上的全局运动场的值。

因此,当将第一运动补偿子图的x分量应用于(例如,相加和/或减去)mv的x分量时(图7a的第一图表),可以实现x方向上的mv场706的补偿值(图7a的第三图表706)。如图7a所示,x方向上的mv场的值包括受全局运动强烈影响的两个区域,即,x分量具有相对较大负值的视频块的第一区域7071(由指向左侧的大箭头来象征性地示出)以及x分量具有相对较大正值的视频块的第二区域7072(由指向右侧的大箭头来象征性地示出)。为了抵消全局运动的影响,对于视频帧的每个块,可以通过对由移动相机捕获的视频中的全局运动进行建模的参数化函数来计算全局运动的估计(就x分量和y分量而言)。所计算的包括全局运动的x分量的运动补偿图包括两个区域7081,2,这两个区域与测得的mv场的x分量的第一区域和第二区域7071,2重合。所计算的全局运动场的x分量可以用于在mv的x分量中去除全局运动的x分量,从而产生从中去除了全局运动的mv的x分量706。以类似的方式,可以补偿mv的y分量。经补偿的mv场不再包括全局运动,从而可以通过普通视频编码方案的运动补偿技术来高效地处理经补偿的mv。

图8示出了根据本发明实施例的全局运动补偿过程的示意图。与视频帧的视频块相关联的mv的场802可以包括区域8041,2、8061,2,其中,mv受由例如移动相机引起的球面视频中的运动场影响。常规的帧间预测方案将不能高效地处理这样的运动矢量相关性,从而导致大大降低运动矢量编码效率。基于相机参数,参数化函数提供了用于确定全局运动场的相对准确的估计的简单模型,例如参考图4a和图4b描述的平面世界模型。可以用于估计全局运动的相机参数可以包括:相机高度、天空高度、相机方向和相机速度。

基于平面世界模型,可以构建包括运动补偿矢量8101,2、8121,2的运动补偿图808,这些运动补偿矢量当应用于mv场的运动矢量时,产生经补偿的mv场814,其中,在区域8161,2、8181,2中的全局运动被去除或至少显著减少。

可以通过实验证明,经补偿的mv场的熵低于原始未经补偿的mv场的熵。熵的减小将导致改进的运动矢量压缩。mv场的熵估计可以基于运动矢量分量的方差,该方差可以通过以下方式计算:

其中,是视频帧中视频块的运动矢量分量的平均值。在此,xij表示视频块i,j的x方向上的运动矢量值,而pi表示与视频块i,j的运动值相关联的权重。在这种情况下,视频帧中视频块的权重简单地为1/n,其中,n是视频帧中视频块的数量。方差可以使用、xij和pi来计算。因此,在应用mv补偿图之后,mv场的mv分量的方差值的减小可以指示可以更高效地压缩视频帧。

图7a、图7b和图8中描绘的解决方案的主要见解在于,与包括全局运动(例如,因为其是通过移动相机捕获的)的视频(例如,2d视频或360视频)的视频帧相关联的运动矢量在mv场中引起独特的特征模式。这种模式(空间相关性)可能取决于视频的类型(2d或球面)、用于将球面视频数据投影到矩形2d视频帧上的投影模型、以及相机参数。例如,在erp投影视频的情况下,mv(特别是mv的x和/或y分量)往往大得多并且在视频帧中的压缩和扩张点处具有相反的方向。使用最先进的视频编码系统无法高效地压缩这些区域中这些非均匀mv之间的空间相关性。本申请中的实施例使用针对每个块的运动补偿矢量来补偿全局运动场的影响。可以使用参数化函数来生成这些运动补偿矢量。以这种方式,运动补偿矢量的x分量可以用于补偿运动矢量的x分量中的全局运动,并且运动矢量补偿矢量的y分量可以用于补偿运动矢量的y分量中的全局运动。运动补偿值被配置为消除由全局运动引起的mv场中的异质性。如此生成的经补偿的mv场包括与局部运动相关联的运动矢量,该运动矢量表现出可以由最先进的视频编码标准处理的相关性。以这种方式,需要较少的比特来编码mv,从而对于包括全局运动的视频帧产生更高的压缩效率。

图9是展示了根据本发明的实施例的包括运动补偿单元的视频编码器900的框图。视频编码器900可以对视频帧或其部分(例如,视频切片)内的视频块执行帧内编码和帧间编码。帧内编码依赖于空间预测来减少或去除给定图像内视频中的空间冗余。帧间编码依赖于时间预测来减少或去除相邻图像或视频序列的图像内视频中的时间冗余。帧内模式(i模式)可以指几种基于空间的压缩模式中的任何一种。帧间模式(诸如单向预测(p模式)或双向预测(b模式))可以指几种基于时间的压缩模式中的任何一种。

视频编码器接收要被编码的视频数据902。在图9的示例中,视频编码器900可以包括分割单元903、模式选择单元904、求和器906、变换单元908、量化单元910、熵编码单元912和参考图像存储器914。模式选择单元904进而可以包括运动估计单元916、帧间预测单元920和帧内预测单元920。帧间预测单元可以包括运动矢量预测单元922和运动补偿单元924。对于视频块重建,视频编码器900还包括逆量化和变换单元915以及求和器928。还可以包括诸如去块滤波器918等滤波器以从重建视频帧中滤除伪像。除了去块滤波器之外,还可以使用附加的环路滤波器(环路内的或环路后的)。

模式选择单元904可以选择一种编码模式(例如,基于诸如率失真优化函数等优化函数的误差结果选择帧内预测模式或帧间预测模式),并且将得到的帧内编码块或帧间编码块提供给求和器906以生成残差视频数据的块(残差块),并且将得到的帧内编码块或帧间编码块提供给求和器928以重建经编码块以用作参考图像。在编码过程期间,视频编码器900接收要编码的图像或切片。图像或切片可以被分割为多个视频块。模式选择单元904中的帧间预测单元920可以相对于一个或多个参考图像中的一个或多个块来对接收到的视频块执行帧间预测编码,以提供时间压缩。可替代地,模式选择单元中的帧内预测单元918可以相对于与要编码的块在同一图像或切片中的一个或多个相邻块来对接收到的视频块执行帧内预测编码,以提供空间压缩。视频编码器可以执行多次编码过程,例如,以便为视频数据的每个块选择适当的编码模式。

分割单元903可以基于对先前编码过程中的先前分割方案的评估,将视频块进一步分割为子块。例如,分割单元可以基于率失真分析(例如,率失真优化)初始地将图像或切片分割为lcu,并且将lcu中的每一个分割为子cu。分割单元可以进一步产生指示将lcu分割为子cu的四叉树数据结构。四叉树的叶节点cu可以包括一个或多个pu和一个或多个tu。

运动矢量估计单元916执行确定视频块的运动矢量的过程。运动矢量例如可以指示参考图像(或其他编码单元)内的视频块的预测块(预测单元或pu)相对于在当前图像(或其他编码单元)内被编码的当前块的位移dx,dy。运动估计单元通过将视频块的位置与近似于该视频块的像素值的参考图像的预测块的位置进行比较来计算运动矢量。因此,一般而言,运动矢量的数据可以包括参考图像列表(即,存储在编码器装置的存储器中的已解码图像(帧)的列表)、到参考图像列表的索引、运动矢量的水平(x)矢量和竖直(y)分量。可以从一个或多个参考图像列表(例如,第一参考图像列表、第二参考图像列表或组合参考图像列表)中选择参考图像,这些参考图像列表中的每一个都标识存储在参考图像存储器914中的一个或多个参考图像。

mv运动估计单元916可以生成标识参考图像的预测块的运动矢量并将该运动矢量发送到熵编码单元912和帧间预测单元920。即,运动估计单元916可以生成并发送运动矢量数据,该运动矢量数据标识:包含预测块的参考图像列表、到参考图像列表的标识该预测块的图像的索引、以及用于在标识的图像内定位预测块的水平分量和竖直分量。

代替发送实际运动矢量,运动矢量预测单元922可以预测运动矢量以进一步减少传送运动矢量所需的数据量。在这种情况下,不是对运动矢量本身进行编码和传送,而是运动矢量预测单元922可以生成相对于已知(或可知)运动矢量的运动矢量差(mvd)。可以与mvd一起使用以定义当前运动矢量的已知运动矢量可以由所谓的运动矢量预测值(mvp)定义。一般而言,作为有效的mvp,用于预测的运动矢量指向与当前正被编码的运动矢量相同的参考图像。否则,需要对运动矢量进行进一步处理(分量限幅、插值等)才能使其成为有效的mvp。

运动矢量预测单元922可以建立mvp候选列表,该候选列表包括在空间方向和/或时间方向上的几个相邻块作为mvp的候选。当多个mvp候选可用(来自多个候选块)时,mv预测单元922可以根据预定选择标准来确定当前块的mvp。例如,mv预测单元922可以基于对编码速率和失真的分析(例如,使用率失真成本分析或其他编码效率分析),从候选列表中选择最准确的预测值。选择运动矢量预测值的其他方法也是可能的。在选择了mvp之后,mv预测单元可以确定mvp索引,该索引可以用于通知解码器装置将mvp定位在包括mvp候选块的参考图像列表中的什么位置。mv预测单元922还可以确定当前块与所选mvp之间的mvd。可以使用mvp索引和mvd来重建当前块的运动矢量。通常,分割单元和模式选择单元(包括帧内预测单元和帧间预测单元)、运动矢量估计单元、以及运动补偿单元可以高度集成。这些单元出于概念性的目的而在图中单独示出。

帧间预测单元920可以包括全局运动补偿单元924,该全局运动补偿单元包括被配置为生成运动补偿信息的全局运动补偿函数f,该运动补偿信息用于从运动矢量预测值的x和y分量中去除全局运动。例如,与视频帧中的块相关联的运动矢量预测值mvp=(d'x,d'y)的x和y分量描述了与该块中的像素相关联的运动。该运动可以包括局部运动、全局运动、或局部和全局运动两者。该函数可以被配置为确定视频帧的块中的全局运动的准确估计。在实施例中,这样的估计可以采用运动补偿矢量mcv=(dx,dy)的形式,其可以用于在编码器基于优化方案(例如,以下更详细描述的率失真优化(rdo)方案)确定最佳运动矢量差mvd之前从运动矢量或运动矢量预测值中去除全局运动分量。

在实施例中,可以通过从运动矢量预测值的x和y分量减去全局运动矢量的x和y分量来去除全局运动。所产生的运动矢量预测值可以被称为经补偿的运动矢量预测值,分别为cmvp=(d'x-dx,d'y-dy)。然后,编码器可以使用cmvp来确定最佳运动矢量差。以这种方式,可以显著减少由全局运动引起的对运动矢量的压缩的负面影响。

在实施例中,可以基于运动补偿矢量来补偿运动矢量预测值mvp,并且可以使用所产生的经全局运动补偿的运动矢量预测值cmvp来确定运动矢量差mvd。为此,编码器可以使用由全局运动补偿函数f生成的运动补偿矢量来补偿如由mv预测单元922生成的候选列表mvp[i]中所定义的运动矢量预测值候选。以这种方式,可以确定经补偿的运动矢量预测值候选的候选列表cmvp[i],f:mvp[i]->cmvp[i]。率失真优化过程可以用于从经补偿的运动矢量预测值候选的候选列表cmvp[i]中选择最佳候选。该选择可以作为候选列表的索引用信号发送,例如,如果rdo过程选择了cmvp[0],则i=0。mv预测单元此后将mvd确定为cmvp[0]-mv,并且随后将mvd和索引编码到比特流中。在实施例中,在rdo过程期间,还可以考虑来自(未经补偿的)运动矢量预测值的候选列表mpv[i]中的一个或多个未经补偿的运动矢量预测值。以这种方式,仅在全局运动的补偿可以改善rd成本的情况下才使用全局运动的补偿。

下文将参考图11至图13更详细地描述由编码器的运动补偿单元执行的过程。

可以通过加法器906从正被编码的原始视频块中减去从模式选择单元904接收到的预测视频块(由运动矢量标识)来形成残差视频块。变换处理单元909可以用于将诸如离散余弦变换(dct)或概念上类似的变换等变换应用于残差视频块,以便形成具有残差变换系数值的块。在概念上类似于dct的变换可以包括例如小波变换、整数变换、子带变换等。变换处理单元909可以将变换应用于残差块,从而产生具有残差变换系数的块。变换可以将残差信息从像素值域转换到变换域(诸如频域)。变换处理单元909可以将所产生的变换系数发送到量化单元910,该量化单元对变换系数进行量化以进一步降低比特率。

控制器910可以将诸如帧间模式指示符、帧内模式指示符、分割信息和语法信息等语法元素(元数据)提供给熵编码单元914。

在此,语法元素可以包括用于用信号发送如本申请的实施例中所述的(所选)运动矢量预测值、运动矢量差、以及与运动补偿过程相关联的元数据的信息。该元数据可以包括运动矢量差基于运动矢量与经全局运动补偿的运动矢量预测值之差的指示。这样的指示可以被实施为(二进制)标志等。该元数据可以进一步包括用于将运动矢量预测值转换为经补偿的运动矢量预测值的信息,例如,用于视频解码器中的参数化算法(参数化函数)的参数、运动补偿矢量或用于建立运动补偿图的信息,该运动补偿图包括用于补偿视频帧的视频块的运动补偿矢量。

然后,熵编码单元912对经量化变换系数和语法元素进行熵编码编码。例如,熵编码单元可以执行上下文自适应可变长度编码(cavlc)、上下文自适应二元算术编码(cabac)、基于语法的上下文自适应二元算术编码(sbac)、概率区间分割熵(pipe)编码或另一种熵编码技术。在基于上下文的熵编码的情况下,上下文可以基于相邻块。在通过熵编码单元进行熵编码之后,可以将经编码比特流传输到另一设备(例如,视频解码器),或者将经编码比特流进行存储以用于稍后的传输或检索。

逆量化和逆变换单元915分别应用逆量化和逆变换,以在像素域中重建残差块,例如,以供稍后用作参考块。帧间预测单元920可以通过将残差块添加到参考图像存储器914中的图像之一的预测块来计算参考块。帧间预测单元920还可以将一个或多个插值滤波器应用于重建残差块,以计算用于运动估计的分段整数像素值。重建残差块被添加到由帧间预测单元920产生的运动预测块,以产生重建视频块以存储在参考图像存储器914中。运动矢量估计单元916和帧间预测单元920可以将重建视频块用作参考块,以对后续图像中的块进行帧间编码。

编码器可以执行已知的率失真优化(rdo)过程,以便为图像中的编码块找到最佳编码参数。在此,最佳编码参数(包括模式决策(帧内预测;不带运动补偿的帧间预测或带运动补偿的帧间预测);帧内预测模式估计;运动估计;以及量化)是指提供用于对块进行编码的比特数与通过使用这些比特数进行编码所引入的失真之间的最佳折衷的参数集。

术语率失真优化有时也被称为rd优化或简称为“rdo”。适用于avc和hevc型编码标准的rdo方案本身是已知的,参见例如,sze等人的“highefficiencyvideocoding[高效视频编码](hevc)”integratedcircuitandsystems,algorithmsandarchitectures[集成电路和系统、算法以及架构],施普林格出版社(2014):1-375;章节:9.2.7rd优化。rdo可以采用许多方式实施。在一个众所周知的实施方式中,rdo问题可以表示为关于拉格朗日乘数最小化拉格朗日成本函数j:

::

在此,参数r表示率(即,编码所需的比特数),并且参数d表示与某一率r相关联的视频信号的失真。失真d可以被视为对视频质量的度量。用于客观地确定质量的已知度量(客观地,从该度量与内容无关的意义上来说)包括均方误差(mse)、峰值信噪比(psnr)和绝对差值之和(sad)。

在hevc的情况下,率失真成本可能要求视频编码器使用可用预测模式(即,一个或多个帧内预测模式和/或一个或多个帧间预测模式)中的每一个或至少一部分来计算预测视频块。然后,视频编码器确定每个预测块与当前块之间的差视频信号(此处,差信号可以包括残差视频块),并将所确定的残差视频块中的每个残差视频块从空间域变换为频域,以获得经变换的残差块。接下来,视频编码器可以量化每个经变换的残差块,以生成相应的经编码视频块。视频编码器可以对经编码视频块进行解码,并将每个经解码视频块与当前块进行比较,以确定失真度量d。此外,率失真分析涉及针对与预测模式之一相关联的每个经编码视频块来计算率r,其中,率r包括用于用信号发送经编码视频块的比特量。针对每个预测模式如此确定的编码块的rd成本、失真d和率r随后用于选择提供用于对块进行编码的比特数与通过使用这些比特数进行编码所引入的失真之间的最佳折衷的编码视频块。

在实施例中,本发明提供了一种基于rd优化方案的用于视频数据的编码优化方案。该优化方案考虑到:

1.视频帧中视频块中的运动可能包括由相机运动引起的全局运动分量(例如,由于360相机的平移移动引起的球面视频数据中的全局运动场,即,使用预定的投影模型(例如,等距柱状或立方体投影模型)投影到2d平面上的视频数据);

2.由视频帧中视频块的mv表示的运动场包括可以通过函数或算法以及与移动相机相关联的一个或多个参数(例如,相机速度、相机方向、相机高度等)近似(建模)的全局运动分量。

该函数可以使用初始全局运动参数集来确定视频帧的视频块的初始运动矢量补偿值。视频帧的所有视频块的运动矢量补偿值可以被称为运动矢量补偿图。初始全局运动参数集可以用于针对视频帧中的至少一部分视频块中的每一个提供运动补偿值的第一近似(第一候选图)。然后,可以通过在初始全局运动参数集的全局运动参数中引入一个或多个小偏差来生成多个导出的全局运动参数集。这些不同的全局运动参数集可以用于确定不同的运动补偿图(一个或多个另外的候选运动补偿图)。这些候选运动补偿图中的每一个可以用于补偿(最小化)全局运动场对需要编码的视频帧的运动矢量分量的贡献。

提供视频帧序列中的运动场的最准确模型的候选运动补偿图可以用于从运动矢量或运动矢量预测值中去除或至少显著减少全局运动场。以这种方式,当与原始视频帧的rd成本相比时,可以实现改进的rd成本,在原始视频帧中,没有针对全局运动场对运动矢量进行补偿。以这种方式,rd优化方案可以用于确定包括提供最佳编码效率的运动矢量补偿的全局运动参数集。

因此,根据本发明的编码优化方案包括生成几个候选运动补偿图。每个候选图可以用于确定与视频帧的视频块相关联的经补偿的运动矢量或经补偿的运动矢量预测值。在此,经补偿的运动矢量(预测值)表示其中全局运动场的贡献被消除或至少显著减少的运动矢量(预测值)。可以在rd优化过程(例如,已知的rd优化过程)中使用每个候选图,在该过程中使用成本函数的最小化针对每个编码块来优化常规编码参数(帧内预测、帧间预测和运动补偿)。表现出最低rd成本的经编码候选视频帧用于形成由编码器装置生成的输出比特流。

图10是展示了根据本发明的实施例的包括运动补偿单元的示例视频解码器1000的框图。在图10的示例中,视频解码器1000包括熵解码单元1004、解析器1006、预测单元1018、逆量化和逆变换单元1008、求和器1009和参考图像存储器1016。在此,预测单元1018可以包括帧间预测单元1022和帧内预测单元1020。进一步地,帧间预测单元可以包括运动矢量预测单元1024和包括运动补偿函数的全局运动补偿单元1026。运动补偿函数可以是用于基于移动相机的模型和与该模型相关联的一个或多个参数来生成运动补偿信息(例如,运动补偿矢量)的参数化算法(参数化函数)。可替代地,运动补偿函数可以是(或依赖于)图像处理函数,该图像处理函数被配置为根据视频帧序列的块来确定全局运动的估计。

在解码过程期间,视频解码器1000从视频编码器接收包括经编码视频块和相关联语法元素的经编码视频比特流1002。熵解码单元1004对比特流进行解码,以生成与残差块相关联的量化系数、运动矢量差以及用于使视频解码器能够对比特流进行解码的语法元素(元数据)。解析器单元1006将运动矢量差和相关联语法元素转发到预测单元1018。

可以在视频切片级和/或视频块级接收到语法元素。例如,作为背景,视频解码器1000可以接收经压缩视频数据,该经压缩视频数据已被压缩以经由网络传输到所谓的网络抽象层(nal)单元中。每个nal单元可以包括头,该头标识存储到nal单元的数据的类型。有两种类型的数据共同存储到nal单元。存储到nal单元的第一种类型数据是视频编码层(vcl)数据,该数据包括经压缩视频数据。存储到nal单元的第二种类型数据被称为非vcl数据,该数据包括其他信息,诸如限定了大量nal单元共有的头数据的参数集以及补充增强信息(sei)。

当视频帧的视频块被帧内编码(i)时,预测单元1018的帧内预测单元1022可以基于用信号发送的帧内预测模式以及来自当前图像的先前解码块的数据来生成当前视频切片的视频块的预测数据。当视频帧的视频块被帧间编码(例如,b或p)时,预测单元1018的帧间预测单元1020基于运动矢量差和从熵解码单元1004接收的其他语法元素来产生当前视频切片的视频块的预测块。可以根据存储在视频解码器的存储器中的一个或多个参考图像列表内的一个或多个参考图像来产生预测块。视频解码器可以基于存储在参考图像存储器1016中的参考图像,使用默认的构建技术来构建参考图像列表。

帧间预测单元1020可以通过解析运动矢量差和其他语法元素来确定针对当前视频切片的视频块的预测信息,并使用该预测信息来产生正被解码的当前视频块的预测块。例如,帧间预测单元1020使用接收到的语法元素中的一些来确定用于对视频切片的视频块进行编码的预测模式(例如,帧内预测或帧间预测)、帧间预测切片类型(例如,b切片或p切片)、该切片的参考图像列表中的一个或多个参考图像列表的构建信息、该切片的每个帧间编码视频块的运动矢量预测值、该切片的每个帧间编码视频块的帧间预测状态以及用于对当前视频切片中的视频块进行解码的其他信息。在一些示例中,帧间预测单元1020可以从运动矢量预测单元1022接收某些运动信息。

帧间预测单元1020可以包括全局运动补偿单元1024,该全局运动补偿单元包括用于将经补偿的运动矢量转换为运动矢量的运动补偿函数。在实施例中,运动转换函数可以是用于使用比特流中的一个或多个参数来确定运动补偿矢量的参数化算法(参数化函数)。

解码器可以检索需要解码的当前块的运动矢量差mvd。解码器可以进一步确定与当前块相关联的运动矢量预测值候选的候选列表mvp[i]。视频解码器能够基于当前块的位置来建立该列表,其中,运动矢量预测值候选与相对于当前块的位置具有预定位置(通常为相邻)的块相关联。这些相对位置对于编码器装置和解码器装置是已知的。

解码器然后可以使用运动补偿函数来生成运动补偿信息,以将运动矢量预测值转换为经补偿的运动矢量预测值。例如,在一个实施例中,运动补偿函数可以是被配置为基于比特流中的一个或多个参数来生成运动补偿信息的参数化算法。运动补偿信息可以包括由编码器用来补偿运动矢量预测值的运动补偿矢量。在另一实施例中,在将运动补偿矢量或运动补偿图(的一部分)编码到比特流中的情况下,运动补偿函数可以使用比特流中的运动补偿矢量将mvp转换为cmvp。

解码器可以进一步使用运动补偿矢量来确定经补偿的运动矢量预测值的候选列表cmvp[i]。解码器可以使用与运动矢量差mvd相关联的解码索引(即,i=0)来选择由编码器选择并用来确定mvd的经补偿的运动矢量预测值cmvp[0]。然后,解码器基于cmvp[0]和mvd计算mv:mv=cmvp[0]-mvd。如此重建的mv随后用于确定存储在视频解码器的参考图像存储器中的参考帧中的预测块。

下文将参考图11至图13更详细地描述由解码器的运动补偿单元执行的过程。

因此,在确定当前块的运动信息之后,运动矢量预测单元1022可以生成当前块的预测块。

逆量化和逆变换单元1008对比特流中提供的并由熵解码单元解码的经量化变换系数进行逆量化,即,去量化。逆量化过程可以包括使用由视频编码器针对视频切片中的每个视频块计算的量化参数来确定量化程度,并且同样地确定应当应用的逆量化程度。该逆量化和逆变换单元可以进一步将逆变换(例如逆dct、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中产生残差块。

在帧间预测单元1020生成当前视频块的预测块之后,视频解码器通过对由逆变换过程确定的残差块与由帧间预测单元1020生成的相应预测块进行求和而形成经解码视频块。加法器1009表示执行此求和操作的一个或多个部件。如果需要,还可以应用去块滤波器来对经解码块进行滤波,以去除成块(blocking)伪像。还可以使用其他环路滤波器(在编码环路中或在编码环路之后)来平滑像素过渡,或以其他方式提高视频质量。然后,将给定图像中的经解码视频块存储在参考图像存储器1016中,该参考图像存储器存储用于后续运动补偿的参考图像。参考图像存储器1016还存储经解码视频,以供稍后在显示设备上呈现。

图11描绘了根据本发明另一实施例的视频编码过程的流程图。该过程可以被实施为由编码器装置(例如,参考图9描述的编码器装置)执行的编码过程1100,以及由解码器装置(例如,参考图10描述的解码器装置)执行的解码过程1102。

在第一步骤1104中,编码器可以确定需要编码的当前视频块的运动矢量(mv)。可以使用众所周知的运动矢量估计过程来确定运动矢量,其中,每个运动矢量可以指示当前图像内的视频块相对于存储在编码器装置的存储器中的经解码参考图像内的视频块(例如,当前视频帧之前或之后的解码视频帧)的位移(偏移)。参考帧中的运动矢量所指向的视频块可以被称为预测块。然后,可以基于当前块与预测块之差来确定残差视频块(步骤1106)。可以基于当前帧中的视频块中的视频样本(例如,像素值)与由运动矢量标识的参考帧中的视频块之间的视频样本之差来确定残差块。在实施例中,视频帧可以是投影视频帧,即,通过使用例如结合图2和图3描述的投影模型将球面视频映射到矩形2d帧而生成的视频帧。投影视频帧可以包括像素区域的布置,这是所使用的投影模型的直接结果,其中,在投影期间,图像可能由于投影而失真(翘曲)。

在另一步骤1110中,可以由编码器装置确定运动矢量预测值候选的至少一个列表。mvp列表可以是mvp候选的索引列表。候选列表可以使用任何合适的mv预测过程来生成,例如,从hevc标准已知的amvp方案、或由av1使用的动态参考运动矢量预测(refmv)。产生候选列表的过程对于编码器装置和解码器装置都是已知的。通常,运动矢量预测值候选包括参考帧中的已解码块(通常与当前块位于同一位置的块)的运动矢量或当前帧中的已解码块(通常与当前块相邻的块)的运动矢量。可以使用优化过程(例如,率失真优化过程)从候选列表中选择最佳运动矢量预测值。

在步骤1110中,编码器可以使用函数来确定全局运动场对视频帧的运动矢量的贡献的估计。这些运动贡献与相机运动相关(例如,参考图4a至图4c描述的),并且如果将球面视频数据投影在2d平面上,则会由于投影而出现翘曲影响。该函数可以生成补偿信息,该补偿信息可以具有运动补偿矢量的形式,其中,运动补偿矢量的x分量可以用于去除来自运动矢量预测值的x分量的全局运动,并且运动补偿矢量的y分量可以用于去除来自运动矢量预测值的y分量的全局运动。运动补偿矢量可以提供视频帧中的全局运动的准确估计。可以通过将运动补偿矢量添加到运动矢量预测值(从运动矢量预测值减去运动补偿矢量)来生成经补偿的运动矢量预测值。可以通过添加和/或减去运动矢量预测值的分量(例如,运动矢量的x和y分量)和运动补偿矢量来简单地执行这种矢量计算(步骤1108)。

在实施例中,该函数可以是解码器装置也已知的一个或多个参数化函数。对于特定的视频帧序列,编码器装置可以基于多个参数来选择参数化函数,例如:视频类型(例如,球面视频)和投影模型(例如,erp或立方体)。进一步地,诸如相机速度、相机高度、相机方向等一个或多个参数可以用于允许参数化函数确定提供对视频帧序列中的全局运动的准确估计的运动补偿矢量。在这种情况下,函数类型和参数被传输到解码器装置,该解码器装置可以使用这些参数来再现运动补偿矢量。

在另一实施例中,该函数可以是图像处理函数,其被配置为确定视频帧序列的视频帧中的块的运动矢量,并将运动矢量分类为与局部运动(即,移动对象)和全局运动(即,由移动相机引起的场景运动)相关联的运动矢量。表示全局运动的运动矢量可以用作运动补偿矢量,其可以在比特流中被传输到解码器装置。因此,在这种情况下,解码器装置可以直接使用运动补偿矢量,并且不需要参数化函数。

由该函数生成的运动补偿信息可以包括mvp候选列表的mvp的运动补偿矢量。这些运动补偿矢量可以应用于mvp候选列表的mvp,以形成经补偿的mvp候选的列表,优选地索引列表。可以使用诸如率失真优化过程等优化过程来从经补偿的mvp候选的索引列表中选择最佳的经补偿的mvp(步骤1110的结束)。

所选择的经补偿的mvp的索引可以被称为经补偿的mvp索引。在步骤1112中,可以基于所选择的经补偿的mvp和当前块的mv来确定mvd。使用熵编码将残差块、mvd(基于经补偿的mvp)和经补偿的mvp索引、以及解码器装置重建该块所需的所有其他信息(元数据)编码在比特流中(步骤1114)。

接收比特流的解码器装置可以执行过程以对比特流进行解码,并基于比特流中的经解码信息和存储在解码器装置的参考图像存储器中的经解码参考视频帧来构建视频帧。为此,解码器装置可以首先使用熵编码过程将比特流解码为残差视频块、mvd和包括经补偿的mvp索引的元数据(步骤1116)。进一步地,解码器装置可以确定mvp候选列表和mvp候选的运动补偿矢量(步骤1118)。

在实施例中,解码器装置可以基于也由编码器装置使用的参数化函数来确定运动补偿矢量。在这种情况下,元数据可以包括参数化函数的一个或多个参数,其中,这些参数允许该函数提供对包括当前视频帧的视频帧序列的全局运动的准确估计。可替代地,编码器装置可以将运动补偿矢量作为元数据在比特流中传输到解码器装置。在这种情况下,解码器装置不需要计算运动补偿矢量,而是可以直接使用比特流中的运动补偿矢量。

运动补偿矢量可以用于确定经补偿的mvp候选的列表,并且经补偿的mvp索引可以用于从候选列表中选择经补偿的mvp(步骤1120)。在实施例中,代替针对候选列表中的所有候选确定经补偿的mvp,可以使用经补偿的运动矢量索引来确定如由经补偿的mvp索引标识的mvp候选的运动补偿矢量,并将运动补偿矢量应用于mvp候选以形成经补偿的mvp。

可以基于经补偿的mvp和经解码的mvd来确定当前块的mv(步骤1122)。进一步地,解码器装置可以使用mv来确定存储在解码器装置的存储器中的参考帧中的预测块(步骤1124),并且基于预测块和解码的残差块来重建当前块(步骤1126)。

因此,如图11的过程所示,运动补偿信息用于从运动矢量预测值中消除或至少显著减少全局运动。从运动矢量预测值中去除全局运动之后,可以使用最先进的运动矢量预测方案来高效地生成运动矢量差,该运动矢量差的熵比原始未经补偿的运动矢量差低。以这种方式,可以实现包括全局运动的高分辨率视频的高效压缩。

图12展示了根据本发明实施例的运动补偿矢量在视频编码过程中的使用。图12描绘了包括需要编码的当前视频块1210的视频帧1202的一部分。如该图所示,由于例如相机的移动引起的全局运动可能导致当前视频块1210的mv和相邻视频块12121,2的mv的大小和/或取向存在显著差异。例如,如图12所示,视频帧的块中的全局运动可能会导致当前视频块的运动矢量1210与其已解码的相邻块12121,2的mv相比相对较小和/或处于不同的取向。可以基于参数化编码器函数来生成用于补偿运动矢量预测值12121,2中的全局运动的运动补偿矢量12081,2。当将运动补偿矢量12081,2应用(例如,添加到)运动矢量12121,2时,与当前视频块1214相邻的视频块(参见视频帧1206)的所产生的经补偿的运动矢量12161,2的大小和取向可以类似于当前视频块1214的运动矢量。以这种方式,与当前块相邻的块的运动矢量成为当前块的运动矢量的合适的运动矢量预测值候选。编码器装置可以使用优化过程以从mvp候选中选择最佳mvp。可以针对视频帧中的所有视频块或至少视频帧中受全局运动影响的视频块重复该过程。经补偿的运动矢量预测值可以用于获得小的运动矢量差,从而最小化或至少减小需要熵编码到比特流中的信号中的熵。

图13展示了根据另一实施例的运动补偿矢量在视频编码过程中的使用。图13中描绘的过程类似于图12中描述的过程,不同之处在于,在该过程中,与当前块1310相邻的块13121,2的经补偿的运动矢量和未经补偿的运动矢量(如13062所描绘的)两者都可以被编码器装置视为运动矢量预测值候选。编码器装置可以使用优化过程以从mvp候选中选择最佳mvp。尽管图12和图13展示了基于当前视频帧中已编码块的运动矢量(即,空间运动矢量预测值的补偿)使用运动补偿矢量来补偿当前块的运动矢量的运动矢量预测值,但是可以基于参考帧的已编码块的运动矢量(即,时间运动矢量预测值的补偿)使用该运动补偿矢量来补偿当前块的运动矢量的运动矢量预测值,

因此,如在本申请中描述的实施例中所示,运动矢量补偿函数可以用于提高受用于捕获视频的相机的移动引起的全局运动影响的视频(特别是球面视频)的压缩效率。

参数化函数可用于对视频帧中的全局运动进行建模(估计)。具体地,参数化函数可以用于提供视频帧中的块的全局运动的估计。为此,参数化函数可以被配置为确定视频帧中的块的运动补偿信息。运动补偿信息可以是运动补偿矢量的形式,其中,运动补偿矢量的x分量提供了在x方向上块的全局运动的估计,并且运动补偿矢量的y分量提供了在y方向上块的全局运动的估计。可以由该函数基于诸如3d空间中的相机方向、相机高度等参数来确定运动矢量补偿值。因此,当使用预定运动矢量补偿函数对视频帧进行编码时,可以将元数据插入比特流中,以使解码器装置能够反转编码器装置所使用的运动补偿过程。下面的表2提供了可以在本申请的实施例中使用的参数化函数可以使用的示例性模型参数:

表2:运动补偿函数的模型参数。

如参考图4a至图4d所描述的,参数化函数可以使用包括顶平面和底平面的(简单)模型,其中,相机平行于这些平面移动以确定运动矢量补偿值。例如,使用表2中定义的参数语法,可以使用以下示例性模型参数来表示用于特定视频帧序列的模型:

由于在编码器侧和解码器侧都使用该模型,因此希望作为比特流有效载荷的一部分用信号发送该数据。在实施例中,编码器和解码器都可以被提供参数化函数(例如,预编程在它们的存储器中),并且由编码器的参数化函数用来确定一个或多个视频帧的运动补偿信息的参数可以通过简单地将这些参数或确定这些参数的信息在比特流中传输到解码器来用信号发送到解码器。在另一实施例中,运动补偿矢量或可以在比特流中被发送到解码器。在这种情况下,解码器装置不需要具有用于计算运动补偿矢量的参数化函数。如果运动补偿矢量可以用于相对大量的后续视频帧,例如使用移动的360视频捕获的相对较长的场景,则这种方法可能是有利的。在这种情况下,当包括全局运动的长场景开始时,可以在比特流中将运动补偿图传输到解码器装置,并且可以通过仅将运动补偿矢量差传输到解码器装置来更新由于例如相机速度和/或相机方向的改变而引起的运动补偿图的微小改变。

在实施例中,与本申请中描述的运动补偿方案相关联的元数据可以传输到解码器装置的例如从avc和hevc标准已知的vclnal单元中。当该信息不可用时,例如由于传输错误或转码后的数据丢失,在一些元数据包中用信号发送这些参数可能会带来解码失败的风险。

为此,在一个实施例中,可以将包括模型参数的元数据插入vclnal单元中,优选地如从avc和hevc标准中已知的pps(图像参数集)。表3提供了包括用于解码器装置中的参数化函数的模型参数的pps的示例性实施例:

表3:包括模型参数的pps示例。

pps的语法可以根据hevc标准进行适配,其中,描述符ue(v)指定“无符号整数0阶指数哥伦布编码的语法元素,左比特在先”。以这种方式,每个值不限于某个固定比特数范围内,例如,4、8等。然而,实施方式可以将值限制在这种范围内。

在另一实施例中,可以在sei消息中用信号发送包括用于解码器装置的参数化函数的模型参数的元数据。如从avc或hevc标准已知的,该实施例为新的sei消息提供了可能的语法。需要这种sei消息来进行解码,使得引入这种消息将创建新的hevc版本。表4示出了sei有效载荷的语法,其包括用于sei消息的新编号payloadtype:

表4:包括模型参数的sei有效载荷的语法。

在另一实施例中,运动补偿图可以与比特流一起发送。在这种情况下,该图可以不从场景的物理模型中得到,而是通过任何其他方式获得,只要使用该图的结果是更高效地压缩视频序列即可。不使用参数化函数(参数化算法)而是直接从图像处理算法生成图的合适用例可以是这样的视频:其中存在由于大量对象在场景中移动引起的大量局部运动,或者视频场景的某个区域未遵循全局运动模式(例如,将相机安装在移动的车辆上时,视频底部的静态区域)。在实施例中,图像处理算法可以被配置为确定当前视频帧中的运动场,即,包括与当前视频帧的像素或像素块相关联的运动矢量的运动矢量场。在计算机视觉领域,该运动矢量场称为光流,如由jamesgibson在1940年左右定义的。存在几种图像处理算法来估计光流,例如,相位相关、基于块的匹配(编码器为基于块的运动补偿而进行的操作)、差分方法或离散优化方法等。一旦估计了光流,则运动补偿图就可以基于该估计的光流并在比特流中传输。另外,因此,常规图像处理算法可以用于分析视频帧、确定与视频帧的视频数据相关联的运动场并将运动矢量分类为位置运动矢量和全局运动矢量。分类的全局运动矢量可以用作运动补偿矢量,以用于在视频编码期间补偿运动矢量中的全局运动贡献。在实施例中,编码器对运动补偿图的确定可以经由率失真环来执行,使得所获得的运动补偿图能够确保压缩效率的增益。当在比特流中显式传输图时,重要的是语法允许对图进行充分压缩,否则通过使用图获得的压缩增益可能会被传输图所需的比特抵消。为了高效地传输运动补偿图,可以观察到该图相对于竖直轴和/或水平轴对称。如果同时存在这两种对称性,则仅需要传输图的四分之一,而其余部分可以基于对称特性从这些值中导出。因此,在实施例中,如果运动补偿图表现出对称特性,例如,相对于定义矢量的坐标系的一个或多个对称性,则可以仅将运动补偿图的一部分传输到解码器装置,其中,解码器装置中的算法可以基于图的对称特性来扩展该图。另外,运动补偿图可以包含可以利用诸如游程长度编码等已知编码算法来高效地编码的相似值。下表5中提供了用于在比特流中传输图的示例语法:

表5:比特流中运动补偿图的语法。

其中,ue(v)是如在hevc标准中定义的无符号整数0阶指数哥伦布编码的语法元素,左比特在先,并且se(v)是如在hevc标准中定义的有符号整数0阶指数哥伦布编码的语法元素。如上所述,可以通过仅传输图的一部分(例如,图的一个或两个象限)来进一步压缩图,其余部分通过对称性导出。下表6中提供了仅在比特流中传输图的一个象限的示例语法:

表6:比特流中对称运动补偿图的一个象限的语法。

实际上,这意味着:

−始终传输左上象限

−如果存在竖直对称,则不传输右上象限

−如果存在水平对称,则不传输左下象限

−如果存在竖直或水平,则不传输右下象限

在实施例中,运动补偿图或其一部分可以作为sei消息在hevc或相关视频编码标准的非vclnal单元(如图像参数集)或其他视频编码标准中的类似数据单元中传输。

当使用最先进的视频编解码器(例如hevc或其他编码系统)时,可能会出现与本申请中讨论的与全局运动相关联的问题,其中,由于全局运动,已编码的运动矢量无法高效地对视频帧的当前块。因此,本申请中的实施例可以以类似的方式用于诸如vp9或av1等其他视频编码标准,因为这些视频编码标准依赖于基于与已编码的块相关联的运动矢量预测值对运动矢量进行压缩。因此,在实施例中,可以在具有符合vp9编码标准的语法的消息中用信号发送用于解码器装置中的参数化算法(参数化函数)的模型参数。表7提供了这种消息语法的示例:

表7:包括模型参数的vp9消息的语法。

根据av1规范,av1编码系统使用众所周知的运动补偿技术,其中,用信号发送运动矢量,以减少从一帧移动到另一帧的像素块之间的冗余度。另外,av1还可以通过预测运动矢量来使用运动矢量信号发送的减少,然后仅用信号发送与实际运动矢量相比的δ(差)。草案规范进一步教导了该预测依赖于与同需要针对其预测运动矢量的块接近的块相关联的运动矢量。因此,在本申请中描述的实施例也可以用于av1标准或使用运动矢量和运动矢量预测值的公知概念的任何其他编解码器标准中。

在另一实施例,可以通过与每个帧相关的元数据中的标志来禁用用信号发送的模型参数或显式mv补偿图及其对每个帧的适用性。例如,hevc比特流的切片报头中的标志可以用信号表示针对给定帧用信号发送的mv补偿图是显式的还是隐式的。以这种方式,编码器可以选择在几帧中使用该技术,并且然后在几帧中不使用该技术,而不需要从比特流中去除用信号发送的模型参数或显式mv补偿图。表8中提供了切片标头中标志的语法:

表8:切片标头中的标志的语法。

图14描绘了可以使用本申请中描述的技术的视频编码和解码系统1400的示意图。如图14所示,系统1400可以包括第一视频处理设备1402(例如,视频捕获设备等),该第一视频处理设备被配置成生成可以由第二视频处理设备1404(例如,视频播放设备)解码的经编码视频数据。第一视频处理设备和第二视频处理设备可以包括多种设备中的任何一种,包括台式计算机、笔记本计算机(即,膝上型计算机)、平板计算机、机顶盒、电话手机(诸如所谓的“智能”电话)、所谓的“智能”pad、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备等。在一些情况下,视频处理设备可能配备用于无线通信。

第二视频处理设备可以通过传输信道1406或能够将经编码视频数据从第一视频处理设备移动到第二视频处理设备的任何类型的介质或设备来接收要被解码的经编码视频数据。在一个示例中,传输信道可以包括通信介质,该通信介质用于使第一视频处理设备能够将经编码视频数据直接实时地传输到第二视频处理设备。可以基于诸如无线通信协议等通信标准将经编码视频数据传输到第二视频处理设备。通信介质可以包括任何无线或有线通信介质,诸如射频(rf)频谱或一条或多条物理传输线路。通信介质可以形成诸如局域网、广域网或全球网络(诸如互联网)等基于分组的网络的一部分。通信介质可以包括路由器、交换机、基站、服务器或可以有助于促进第一视频处理设备与第二视频处理设备之间的通信的任何其他设备。

可替代地,可以经由第一视频处理设备的i/o接口1408将经编码数据发送到存储设备1410。可以通过输入第二视频处理设备的i/o接口1412来访问经编码数据。存储设备1410可以包括各种分布式或本地访问的数据存储介质中的任何一种,诸如硬盘驱动器、蓝光光盘、dvd、cd-rom、闪速存储器、易失性或非易失性存储器或用于存储经编码视频数据的任何其他合适的数字存储介质。在又一示例中,存储设备可以对应于可以保存由第一视频处理设备生成的经编码视频的文件服务器或另一中间存储设备。第二视频处理设备可以经由流式传输或下载来从存储设备访问所存储的视频数据。文件服务器可以是能够存储经编码视频数据并将该经编码视频数据传输到第二视频处理设备的任何类型的服务器。示例文件服务器包括web服务器(例如,用于网站)、ftp服务器、网络附加存储(nas)设备或本地磁盘驱动器。第二视频处理设备可以通过任何标准数据连接(包括互联网连接)访问经编码视频数据。这种连接可以包括适合于访问存储在文件服务器上的经编码视频数据的无线信道(例如,wi-fi连接)、有线连接(例如,dsl、电缆调制解调器等)或这两者的组合。来自存储设备36的经编码视频数据的传输可以是流式传输、下载传输或这两者的组合。

本披露内容的技术不必限于无线应用或设置。这些技术可以应用于视频编码,以支持各种多媒体应用中的任何一种,诸如空中电视广播、有线电视传输、卫星电视传输、流式视频传输(例如,经由互联网)、对用于存储在数据存储介质上的数字视频的编码、对存储在数据存储介质上的数字视频的解码或其他应用。在一些示例中,系统1400可以被配置成支持单向或双向视频传输,以支持诸如视频流式传输、视频回放、视频广播和/或视频电话等应用。

在图1的示例中,第一视频处理设备可以进一步包括视频源1414和视频编码器1416。在一些情况下,i/o接口1408可以包括调制器/解调器(调制解调器)和/或发射器。视频源可以包括任何类型的源,诸如视频捕获设备(例如,摄像机)、包含先前捕获的视频的视频档案库、用于从视频内容提供者接收视频的视频馈送接口和/或用于生成计算机图形数据作为源视频的计算机图形系统或这样的源的组合。如果视频源1414是摄像机,则第一视频处理设备和第二视频处理设备可以形成所谓的相机电话或视频电话。然而,本披露内容中描述的技术通常可以应用于视频编码,并且可以应用于无线应用和/或有线应用。

捕获的、预捕获的或计算机生成的视频可以由视频编码器1416进行编码。经编码视频数据可以经由i/o接口1408直接传输到第二视频处理设备。经编码视频数据还可以(或可替代地)存储到存储设备1410上,以供第二视频处理设备或其他设备稍后访问,以进行解码和/或回放。

第二视频处理设备可以进一步包括视频解码器1418和显示设备1420。在一些情况下,i/o接口1412可以包括接收器和/或调制解调器。第二视频处理设备的i/o接口1412可以接收经编码视频数据。通过通信信道传送的或存储设备1410上提供的经编码视频数据可以包括由视频编码器1416生成的各种语法元素,以供视频解码器(诸如视频解码器1418)在解码视频数据时使用。这种语法元素可以被包括在在通信介质上传输、存储在存储介质上或存储在文件服务器上的经编码视频数据中。

显示设备1420可以与第二视频处理设备集成在一起或在第二视频处理设备外部。在一些示例中,第二视频处理设备可以包括集成显示设备,并且还被配置成与外部显示设备接口连接。在其他示例中,第二视频处理设备可以是显示设备。一般而言,显示设备将经解码视频数据显示给用户,并且可以包括各种显示设备中的任何一种,诸如液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或另一种类型的显示设备。

视频编码器1416和视频解码器1418可以根据诸如高效视频编码(hevc)、vp9或av1等视频压缩标准来操作。可替代地,视频编码器1416和视频解码器1418可以根据其他专有标准或行业标准(诸如itu-th.264标准(可替代地称为mpeg-4部分10高级视频编码(avc)),或这种标准的扩展)来操作。然而,本披露内容的技术不限于任何特定的编码标准。

尽管未在图1中示出,但在一些方面,视频编码器1416和视频解码器1418可以各自与音频编码器和音频解码器集成在一起,并且可以包括适当的mux-demux单元或其他硬件和软件,以处理对共同数据流或单独数据流中的音频和视频两者的编码。如果适用,在一些示例中,mux-demux单元可以符合ituh.223多路复用器协议或其他协议,诸如用户数据报协议(udp)。

视频编码器1416和视频解码器1418可以各自实施为各种合适的编码器电路系统中的任何一种,诸如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、软件、硬件、固件或其任何组合。当这些技术部分地以软件实施时,设备可以将针对软件的指令存储在合适的非暂态计算机可读介质中,并使用一个或多个处理器以硬件方式执行指令以执行本披露内容的技术。视频编码器1416和视频解码器1418中的每一者可以被包括在一个或多个编码器或解码器中,该编码器或解码器中的任一个可以作为组合编码器/解码器(codec)的一部分被集成在对应设备中。

本披露内容通常可以涉及视频编码器将某些信息“发信号通知”给另一设备(诸如视频解码器)。术语“发信号通知”通常可以是指对用于解码经压缩视频数据的语法元素和/或其他数据(元数据)的传送。这种传送可以实时或近实时地发生。可替代地,这种传送可以在一定时间跨度内发生,诸如可能在编码时将语法元素以经编码比特流的形式存储到计算机可读存储介质中时发生,然后,这些语法元素可以在被存储到此介质之后的任何时间由解码设备检索。

本披露内容的技术可以在包括无线手持机、集成电路(ic)或一组ic(例如,芯片组)的各种设备或装置中实施。在本披露内容中描述了各种部件、模块或单元以强调被配置成执行所披露技术的设备的功能方面,但不一定需要由不同硬件单元来实现。而是,如上所述,各种单元可以组合在编解码器硬件单元中,或者由互操作硬件单元(包括如上所述的一个或多个处理器)的集合结合合适的软件和/或固件来提供。

本文所使用的术语仅用于描述特定实施例,并且不旨在限制本发明。如本文所使用的,单数形式“一个(a)”、“一种(an)”和“该(the)”旨在同样包括复数形式,除非上下文以其他方式清晰表明之外。将进一步理解的是,当在本说明书中使用术语“包括(comprises)”和/或“包括(comprising)”时,其指定陈述的特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、部件和/或它们的组的存在或添加。

权利要求中所有装置或步骤加上功能元件的对应结构、材料、动作和等同物旨在包括用于与如具体要求保护的其他要求保护的元件结合执行功能的任何结构、材料或动作。已经出于说明和描述的目的而呈现本发明的描述,但是该描述并不旨在穷举本发明或将本发明限于所披露的形式。在不脱离本发明的范围和精神的情况下,很多修改和变化对本领域普通技术人员都将是明显的。实施例的选择和描述是为了最佳地解释本发明的原理和实际应用,并且当适合于所构想的特定用途时,使得本领域的其他普通技术人员能够针对具有各种修改的各个实施例理解本发明。

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