一种视频编解码的方法及装置与流程

文档序号:17117581发布日期:2019-03-15 23:28阅读:158来源:国知局
一种视频编解码的方法及装置与流程

本申请要求如下申请的优先权:在2016年07月15日提出的名称为“methodsandapparatusfor360degreevideocoding”的第62/362,613号的美国临时专利申请,在2016年10月04日提出名称为“methodsandapparatusforomni-directionalvideoandimagecoding”的第62/403,734号的美国临时专利申请,以及在2017年7月13日提出的名称为“methodandapparatusforvideocoding”的第15/649,089号的美国专利申请。在此合并参考这些申请案的申请标的。

本发明有关于视频编解码方法及装置,且更具体而言,关于全向(omni-directional)视频编解码技术。



背景技术:

此处提供的背景技术描述用作一般展现本发明的内容的目的。目前署名发明人的工作内容,既包含在本背景技术部分中所描述的工作的内容,也包含在申请时未被认为是现有技术的说明书的各方面,这些既不明确也不暗示地被承认是本发明的现有技术。

可渲染三维环境以提供特殊的用户体验。例如,在虚拟现实(virtualreality,vr)应用中,计算机技术创建复制现实环境的现实图像、声音以及其他感觉,或者创建想象的环境,这样用户可以具有在三维环境中实际存在的模拟体验。



技术实现要素:

本发明的方面提供一种具有处理电路的装置。所述处理电路用于接收矩形平面内的多个图像,所述矩形平面内的所述多个图像是根据从球面到所述矩形平面的投影,来从所述球面的多个图像投影得到的,并且,基于与所述投影相关的所述矩形平面的多个图像特征对所述矩形平面内的所述多个图像进行编码/解码。

根据本发明的一方面,所述处理电路用于接收矩形平面内的多个图像,所述矩形平面内的所述多个图像是根据球面投影来从所述球面的多个图像投影得到的,并且调节一个或者多个编码/解码参数,以作为所述矩形平面的多个纬度的函数。在一个实施例中,所述处理电路用于调节用于所述矩形平面内多个区域的比特分配,以作为所述多个区域的所述多个纬度的函数。在另一个实施例中,所述处理电路用于调节用于所述矩形平面内多个区域的分割尺寸,以作为所述多个区域的所述多个纬度的函数。在另一个实施例中,所述处理电路用于调节用于所述矩形平面内多个区域的采样率,以作为所述多个区域的所述多个纬度的函数。在另一个实施例中,所述处理电路用于调节用于所述矩形平面内多个区域的量化参数,以作为所述多个区域的所述多个纬度的函数。在另一个实施例中,所述处理电路用于基于编码单元的纬度和运动向量在帧间预测过程中计算用于所述编码单元的参考。

根据本发明的另一方面,所述处理电路用于接收矩形平面内的多个图像,所述矩形平面内的多个图像是根据从所述球面到重新排列在所述矩形平面内的多个非空置面的正多面体投影,来从所述球面的多个图像投影得到的,并且基于所述矩形平面内多个面的多个图像特征对所述矩形平面内的多个图像进行编码/解码。在一个实施例中,所述处理电路用于在编码过程中逐面扫描块。在另一个示例中,所述处理电路用于根据多个面的空间关系给所述多个面进行排序。在另一个示例中,所述处理电路用于在编码/解码过程中跳过空置面。

根据本发明的另一方面,所述处理电路用于接收矩形平面内的多个图像,所述矩形平面内的所述多个图像是根据使得变形作为多个位置的函数的投影,来从所述球面的多个图像投影得到的,并且在帧间预测过程中执行变形运动补偿。在一个实施例中,所述处理电路用于基于合并模式内的合并索引,选择性地执行不具有变形的运动补偿和所述变形运动补偿。在另一个实施例中,所述处理电路用于基于标志在序列级、图像级、切片级和块级中的一个处执行所述变形运动补偿。

本发明的方面提供了一种图像处理的方法。所述方法包括处理电路接收矩形平面内的多个图像,所述矩形平面内的所述多个图像是根据从球面到所述矩形平面的投影,来从所述球面的多个图像投影得到的,以及基于与所述投影相关的所述矩形平面的多个图像特征对所述矩形平面内的所述多个图像进行编码/解码。

附图说明

将结合下面的附图对被提供作为示例的本发明的各种实施例进行详细描述,其中相同的符号表示相同的元件,以及其中:

图1是根据本发明实施例的媒体系统100的方框图;

图2是描述根据本发明实施例的球面投影(equirectangularprojection,erp)的绘图200;

图3是描述根据本发明实施例的正多面体投影(platonicsolidprojection)示例的绘图300;

图4是根据本发明实施例的编码器430的方框图;

图5是描述根据本发明实施例的方法(process)示例500的流程图;

图6是描述根据本发明实施例的方法示例600的流程图;

图7是根据本发明实施例的分割示例;

图8是描述根据本发明实施例的用于erp投影的参考计算的绘图800;

图9是描述根据本发明实施例的方法示例900的流程图;

图10是描述根据本发明实施例的块扫描(blockscan)示例的绘图1000;以及

图11是描述根据本发明实施例的面扫描(facescan)示例的绘图1100。

具体实施方式

图1示出了根据本发明实施例的媒体系统100的方框图。所述媒体系统包括耦接在一起的源系统110、传输系统150和渲染系统160。所述源系统110用于获取用于三维环境的媒体数据,并适当地封装(encapsulate)所述媒体数据。所述传输系统150用于将来自于所述源系统110的已封装的媒体数据传输到所述渲染系统160。所述渲染系统160用于根据所述媒体数据渲染模拟的三维环境。根据本发明的一方面,所述媒体系统100用于获取球面(spheresurface)的视觉数据,将所述球面的视觉数据投影到二维(two-dimension,2d)矩形平面上,以作为2d图像,然后基于与投影相关的图像特征编码/解码所述2d图像。

可以使用任何合适的技术来实现所述源系统110。在一个示例中,将所述源系统100的元件整合在一个设备封装中。在另一个示例中,所述源系统110是一个分布式系统,所述源系统110的多个元件可以被设置在不同位置,并适当耦接在一起,例如,通过有线连接和/或无线连接。

在图1的示例中,所述源系统110包括耦接在一起的获取设备112、处理电路120、记忆体115以及接口电路111。

所述获取设备112用于获取各种媒体数据,如三维环境的图像、声音等。所述获取设备112可以具有任何适当的配置。在一个示例中,所述获取设备112包括具有多个摄像机的摄像设备(未示出),如具有两个鱼眼(fisheye)摄像机的成像系统、具有四个摄像机的四面体成像系统(tetrahedralimagingsystem)、具有六个摄像机的立方体成像系统、具有八个摄像机的八面成像系统、具有二十个摄像机的二十面成像系统等,其用于拍摄环绕空间内的各个方向的图像。

在一个实施例中,由所述多个摄像机拍摄的图像是重叠的且可以被缝合,以提供比单个摄像机所能提供的更大覆盖的环绕空间。在一个示例中,由所述多个摄像机拍摄的图像可以提供全向覆盖(例如,整个环绕空间的360°的球面覆盖)。应注意,由所述多个摄像机拍摄的图像可以提供环绕空间的小于360°的球面覆盖。

可以适当地将获取设备112所获取的媒体数据进行存储或者缓存,例如,在记忆体115内。处理电路120可以存取记忆体115、处理所述媒体数据以及以合适的格式封装所述媒体数据。然后,将已封装的媒体数据进行适当地存储或者缓存,例如,在记忆体115内。

在一个实施例中,处理电路120包括音频处理路径,其用于处理音频数据,并且包括图像/视频处理路径,其用于处理图像/视频数据。所述处理电路120然后根据合适的格式使用元数据(metadata)对所述音频、图像和视频数据进行封装。

在一个示例中,在图像/视频处理路径上,处理电路120可以将由不同摄像机拍摄的多个图像缝合在一起,以形成一个已缝合的图像,例如全向图像(球面图像)等。然后,处理电路120可以将所述全向图像(用于所述球面)投影到合适的2d平面(例如,矩形平面),以将所述全向图像转换成可以使用2d编解码技术来编解码的2d图像。然后处理电路120可以适当地编解码所述图像和/或图像流。

根据本发明的一方面,处理电路120可以根据不同的投影技术将所述球面的全向图像投影成所述矩形平面上的2d图像,并且不同的投影技术使得所述矩形平面上的2d图像具有与这些投影技术相关的不同的图像特征。这些图像特征可以改善编解码效率。

在一个实施例中,处理电路120可以使用球面投影(equirectangularprojection)将全向图像投影成2d图像。所述球面投影以一种与将地球表面投影到地图上的方式相似的方式,将球面(例如全向图像)投影到矩形平面,例如2d图像。在一个示例中,所述球面(例如地球表面)使用偏航(yaw)(例如经度)和俯仰(pitch)(例如纬度)的球面坐标系统以定位在所述球面上的位置。在投影过程中,将偏航圆(yawcircle)转换为垂直线,将俯仰圆(pitchcircle)转换为水平线,所述偏航圆和俯仰圆在球面坐标系统中是正交的,所述垂直线和水平线在矩形平面中是正交的。如图2所示,是球面投影的示例,将结合图2来进行说明。

在球面投影的实施例中,在球面投影过程中,图案在水平方向(沿着纬度方向)上进行变形(deform)(例如,拉伸),并基于纬度进行不同程度的变形。例如,当图案位于垂直中心附近(例如,对应于赤道(equator))时,使用较小比例将所述图案进行拉伸,当图案远离垂直中心(例如,靠近两极)时,使用较大比例将所述图案进行拉伸。这样,在一个示例中,所述球面投影的2d图像具有随着纬度变化而变化的图像特征。例如,所述球面投影的2d图像在靠近垂直中心附近的区域处(例如,在赤道处)包括较多的图像信息(例如,空间频谱较高,信息密度也较高),并且,在远离垂直中心的区域处(例如,在两极处)包括较少视觉信息(例如,空间频谱较低,信息密度也较低)。

在另一个实施例中,处理电路120可以将所述球面的全向图像投影到正多面体(platonicsolid)的多个面上,例如,四面体、立方体、八面体、二十面体等。可以分别重新排列已投影的面,例如旋转、重新定位(relocated),以在矩形平面内形成2d图像。然后编码所述2d图像。在将所述球面的所述全向图像投影到正多面体的面的投影实施例中,在这个投影过程中,也可以将位于不同位置处的图案进行变形(例如,拉伸),并且基于对应于这些位置的参数进行不同程度的变形。如图3所示,是正多面体投影的示例,将结合图3进行说明。

在正多面体投影的实施例中,在一个示例中,添加空置面(dummyface),并且这些空置面不具有图像信息或者具有很少的图像信息。进一步地,在一个示例中,由于投影过程中面的重新排列,相邻面之间可以存在或者不存在空间关系。这样,在一个示例中,所述正多面体投影的2d图像具有与所述正多面体投影相关的图像特征。

应注意,在一个实施例中,可由除了处理电路120之外的元件来执行所述投影操作。在一个示例中,可以将不同摄像机所拍摄的图像排列在矩形平面内,以形成2d图像。

根据本发明的一方面,例如,与投影技术相关的图像特征可以用于提高图像编解码效率,从而编码/解码图像使用时间更少,媒体系统100存储的已编解码的图像数据的内存更小,并且在媒体系统100内传输时间更小且占用更少传输资源。

在图1的示例中,处理电路120包括编码器130,其用于基于与投影相关的图像特征编码2d图像,所述投影将球面的图像投影到矩形平面,以形成所述2d图像。

在一个实施例中,例如,根据例如球面投影将球面的图像投影到矩形平面,并且,这个投影可以使得形状改变(即变形)作为位置的函数。因此,一些图像参数,例如图像信息、频谱等,随着所述矩形平面的位置参数(例如,纬度)的改变而改变。编码器130调节一个或者多个编码/解码参数,作为所述矩形平面的位置参数(例如,纬度)的函数,进而提高编解码效率。

在一个示例中,编码器130用于将所述2d图像分割成多个子图像(sub-image),例如用于各自处理的编码单元(codingunit,cu),编码树单元(codingtreeunit,ctu)等,并且编码器130用于调节所述矩形平面内区域的分割尺寸,以作为所述区域的纬度的函数。例如,编码器130用于在垂直中心附近的区域处使用较小的水平分割尺寸,并在远离垂直中心的区域处使用较大的水平分割尺寸。在另一示例中,编码器130用于调节分割过程中的采样率。例如,在分割过程中,编码器130用于在垂直中心附近的区域处使用较小的下采样(down-sampling)率(或者不使用下采样),并在远离垂直中心的区域处使用较大的下采样率。

在另一个示例中,编码器130用于调节矩形平面内区域的比特分配(bitallocation),以作为这些区域的纬度的函数。在一个示例中,编码器130用于将较多比特分配到垂直中心附近区域处,并将较少比特分配到远离垂直中心区域处。

在另一个示例中,编码器130用于调节矩形平面内区域的量化参数(quantizationparameter),以作为这些区域的纬度的函数。在一个示例中,编码器130用于在垂直中心附近区域处使用相对较小的量化参数,并在远离垂直中心区域处使用相对较大的量化参数。

在另一个示例中,编码器130用于基于像素的纬度和运动向量,在帧间预测过程中执行所述像素的参考计算(referencecalculation)。

在另一个示例中,根据正多面体投影将球面的图像投影到矩形平面。因此,一些图像参数,例如空间关系、空置面、对应于不同位置的变形等,与所述正多面体投影相关。编码器130基于与所述正多面体投影相关的这些图像特征执行编码。

在一个示例中,编码器130基于这些图像特征确定扫描顺序(scanorder)。例如,编码器130在编码过程中逐面(facebyface)扫描块,从而在一个示例中,对一面内的块进行扫描之后,扫描另一面内的块。在一个示例中,可以使用较高编码效率扫描并编码空置面。

进一步地,编码器130根据面的空间关系确定面的扫描顺序。因此,在一个示例中,顺序扫描具有较近的空间关系(例如,在球面内相邻)的面,以提高编解码效率。

在另一个示例中,当源系统110和渲染系统160均已知空置面的位置时,编码器130可以跳过这些空置面。

在一个实施例中,使用一个或者多个处理器来实现处理电路120,并且所述一个或者多个处理器用于执行软件指令以执行媒体数据处理。在另一实施例中,使用集成电路来实现处理电路120。

在图1的示例中,通过接口电路111将已编码的媒体数据提供给传输系统150。传输系统150用于适当地提供媒体数据给客户设备,例如渲染系统160。在一个实施例中,传输系统150包括服务器、存储设备、网络设备等。传输系统150的元件通过有线和/或无线连接适当地耦接在一起。传输系统150通过有线和/或无线连接适当地与源系统110和渲染系统160耦接,或者适当地用于通过任何其他合适的载体或者媒体传输源系统110和渲染系统160之间的数据。

可以使用任何合适的技术来实现渲染系统160。在一个示例中,将渲染系统160的元件整合在一个设备封装中。在另一个示例中,渲染系统160是一种分布式系统,与源系统110的元件可以位于不同位置,并通过有线连接和/或无线连接适当地耦接在一起。

在图1的示例中,渲染系统160包括耦接在一起的接口电路161、处理电路170和显示设备165。接口电路161用于通过任何合适的通信协议适当地接收对应于已封装的媒体数据的数据流。

处理电路170用于处理所述媒体数据并生成图像,以让显示设备165展现给一个或者多个用户。显示设备165可以是任何合适的显示器,例如电视机、智能手机、穿戴设备、头戴式(head-mounted)设备等。

在图1的示例中,处理电路170包括解码器180,其用于接收已编码的视觉数据,并基于与投影技术相关的图像特征解码视觉数据。在一个实施例中,接收的已编码的视觉数据指示投影技术,或者与所述投影技术相关的图像特征,从而解码器180相应地解码所述视觉数据。在另一示例中,解码器180(例如,通过协议、预先设置)已知源系统110所使用的所述投影技术,然后根据与所述投影技术相关的图像特征解码所述视觉数据。

在一个实施例中,处理电路170包括图像生成模块190,其用于基于媒体数据生成感兴趣区域的一个或者多个图像。在一个实施例中,处理电路170用于通过接口电路161请求/接收合适的来自于传输系统150的媒体数据,例如,特定的轨迹、矩形平面的一部分的媒体数据、来自于特定的摄像机的媒体数据等。基于已编码的媒体数据,处理电路170生成图像,以展现给一个或者多个用户。

处理电路170包括解码器180和图像生成模块190。所述图像生成模块190用于生成感兴趣区域的图像。解码器180和图像生成模块190可以被实现为执行软件指令的处理器,并可以被实现为集成电路。

在一个实施例中,使用一个或者多个处理器来实现处理电路170,并且所述一个或者多个处理器用于执行软件指令以执行媒体数据处理。在另一实施例中,使用集成电路来实现处理电路170。

图2示出了描述根据本发明实施例的球面投影的绘图200。绘图200示出了具有球面210的球体211。球面210(例如,地球表面)使用偏航(例如经度方向)和俯仰(例如纬度方向)的球面坐标系统。在图2的示例中,球面210上的区域205的分界线是由偏航圆220(例如经度线)和俯仰圆230(例如纬度线)来形成的。

进一步地,图2示出了从球面240到矩形平面270的球面投影。在本示例中,球面240使用偏航和俯仰的球面坐标系统。在本示例中,使用偏航圆(例如,偏航圆251、偏航圆252)和俯仰圆(例如,俯仰圆261、俯仰圆262)来参考球面240。矩形平面270使用xy坐标系统,并使用垂直线和水平线来参考。在图2的示例中,x轴对应于经度,y轴对应于纬度。

以与将地球表面投影到地图的方式相似的方式,球面投影将球面投影到矩形平面。在投影过程中,偏航圆被转换成垂直线,俯仰圆被转换成水平线,偏航圆和俯仰圆在球面坐标系统中是正交的,并且,垂直线和水平线在xy坐标系统中是正交的。

在图2的示例中,球面240上的感兴趣区域245被投影到矩形平面270上的感兴趣区域275。在图2的示例中,球面240上的感兴趣区域245的分界线为偏航圆251-252和俯仰圆261-262。偏航圆251-252被投影到矩形平面270,作为垂直线281-282,俯仰圆261-262被投影到矩形平面270,作为水平线291-292。

图3示出了描述根据本发明实施例的正多面体投影示例的绘图300。在图3的示例中,如图3所示,球面340被投影到立方体的面(例如,面a-e)。这些立方体的面被排列在矩形平面内,并且,在所述矩形平面内添加空置面1-6。

图4示出了根据本发明实施例的编码器430的示意图。编码器430用于接收输入视频(例如图像帧序列),编码所述视频,以及输出已编码的视频。在一个实施例中,使用编码器430,替代图1的示例中的编码器130,以编码根据球面投影从球面投影到矩形平面的2d图像,并且,编码器430内的元件用于基于纬度调节用于操作的参数。

在图4的示例中,编码器430包括分割模块431、控制模块432和块编码器440,且如图4所示,所述块编码器440进一步包括耦接在一起的帧间预测模块445、帧内预测模块444、残差(residue)计算器447、开关448、转换模块441、量化模块442和熵编码模块443。

在图4的示例中,分割模块431用于接收图像帧,并将每个图像帧分割成块,例如编码块、编码树块等,并将这些块提供给块编码器440以进行编码。在一个实施例中,所述分割模块431基于纬度调节分割块尺寸(例如,水平分割尺寸)。在一个示例中,控制模块432确定所述分割块尺寸,并控制分割模块431使用基于纬度来调节的分割块尺寸来分割图像帧。

帧间预测模块445用于接收当前块(例如,处理块),比较所述块与参考(例如,先前帧内的块),生成帧间预测信息(例如,根据帧间编码技术的冗余信息(redundantinformation)的描述),以及基于所述帧间预测信息使用任何合适的技术计算帧间预测结果。在图4的示例中,帧间预测模块445包括参考生成模块446,其用于确定用于当前帧内的像素的先前帧内的参考。在一个实施例中,参考生成模块446用于基于所述像素的纬度以及所述先前帧与所述当前帧之间的运动向量来计算所述参考。

帧内预测模块444用于接收当前块(例如,处理块),比较所述块与同一图像帧内的块,生成帧内预测信息(例如,根据帧内编码技术的冗余信息的描述,例如使用35种预测模式中的一种),以及基于帧内预测信息计算预测结果。

控制模块432用于确定控制数据和基于所述控制数据控制编码器430的其他元件。在一个实施例中,控制模块432包括比特率分配控制器433,其用于将比特动态分配给多个块。例如,在一个示例中,比特率分配控制器433接收所述已编码的视频的比特计数信息,基于所述比特计数信息调节比特预算(bitbudget),以及将比特分配给输入视频的多个块,以满足传输或者显示视频的比特率。控制模块432可以确定其他合适的控制数据,在一个示例中,例如,分割尺寸、预测模式、量化参数等。

残差计算器447用于计算已接收的块与从帧内预测模块444或者帧间预测模式445中选择的预测结果之间的差值(即残差数据)。转换模块441用于基于所述残差数据进行操作,以生成转换系数(transformcoefficient)。在一个示例中,所述残差数据在高频处具有相对较大的级别(level)(能量),并且转换模块441用于在频域内转换所述残差数据,并提取用于编码的高频部分以生成所述转换系数。

量化模块442用于量化所述转换系数。在一个示例中,量化模块442用于基于纬度调节量化参数。在一个示例中,量化模块442用于基于块的纬度确定用于所述块的所述量化参数,并使用所确定的量化参数来量化所述块的转换系数。

熵编码模块443用于格式化(format)所述比特流以包含所述已编码的块。在一个示例中,熵编码模块443用于包含其他信息,例如所述已编码的视频内的块尺寸、量化参数信息、参考计算模式等。

图5示出了描述根据本发明实施例的方法示例500的流程图。在一个示例中,方法500由编码器来执行,例如编码器130、编码器430等。所述方法始于步骤s501,并继续到步骤s510。

在步骤s510中,接收矩形平面内的2d图像帧序列。所述2d图像对应于球面的图像,且根据球面投影将所述球面的图像投影到所述矩形平面,以生成所述2d图像。

在步骤s520中,基于多个区域的纬度将多个比特分配给所述多个区域。在一个示例中,比特率分配控制器433确定用于每个图像帧的预算比特(budgetbit),以满足比特率来传输并播放所述图像帧序列。进一步地,对于待编码的当前图像帧,比特率分配控制器433基于多个区域的纬度将预算比特分配给所述多个区域,例如,编码块、编码树块等。例如,比特率分配控制器433将较多比特分配给位于所述矩形平面的垂直中心附近的编码块(例如,纬度的绝对值相对较小的编码块),并将较少比特分配给远离所述矩形平面的垂直中心的编码块(例如,纬度的绝对值相对较大的编码块)。

在步骤s530中,基于所述已分配的比特编码一个或者多个编码单元。在一个实施例中,块编码器440可以使用合适的编码参数、编码技术来基于所述已分配的比特编码一个或者多个编码块。例如,当将相对较大数量的比特分配给块时,块编码器440可以使用能提供相对较高的图像质量的编码参数和编码技术;并且,当将相对较小数量的比特分配给块时,块编码器440可以使用能提供相对较高的压缩比的编码参数和编码技术。

在步骤s540中,接收反馈信息。在一个示例中,计数已编码的视频内的比特,并将计数值提供给比特率分配控制器433。

在步骤s550中,基于纬度重新分配比特。在一个示例中,比特率分配控制器433接收已编码的视频的比特计数(bitcount),然后将预算比特更新到用于编码的剩余块和/或图像。然后所述方法返回到步骤s530以基于已更新的比特分配进行编码。

图6示出了描述根据本发明实施例的方法示例600的流程图。在一个示例中,所述方法600由量化模块442来执行。所述方法始于步骤s601,并继续到步骤s610。

在步骤s610中,接收块的转换系数。在一个示例中,量化模块442接收来自于转换模块441的块的转换系数。

在步骤s620中,接收所述块的纬度信息。在一个示例中,例如,量化模块442接收来自于控制模块432的所述块的中心的纬度。

在步骤s630中,基于所述纬度调节量化参数。在一个示例中,量化模块442用于基于所述纬度调节量化参数。在一个示例中,量化模块442用于将相对较小的量化参数分配给位于矩形平面的垂直中心附近的编码块(例如,纬度的绝对值相对较小的编码块),并将相对较大的量化参数分配给远离矩形平面的垂直中心的编码块(例如,纬度的绝对值相对较大的编码块)。

在步骤s640中,基于已调节的量化参数执行量化。在一个示例中,量化模块442使用所述量化参数来确定量化矩阵,并使用所述量化矩阵来量化所述块的转换系数。

在步骤s650中,生成输出比特流(即已编码的视频)。在一个示例中,熵编码模块443用于格式化所述比特流以包含已编码的块。在一个示例中,熵编码模块443用于将量化参数信息包含到所述输出比特流中。随后,所述方法继续到步骤s699,并结束。

图7示出了根据本发明实施例的分割示例的绘图700。绘图700包括第一分割示例710和第二分割示例720。

在第一分割示例710中,水平分割尺寸随着纬度而变化。例如,编码块711-713具有不同的纬度,并使用不同的水平分割尺寸而被分割。

在第二分割示例720中,基于纬度通过不同的下采样率下采样所述帧。例如,通过不同的下采样率下采样列721、列722和列723。在一个示例中,然后使用同一水平分割尺寸将已下采样的列721、列722和列723进行分割。

图8示出了根据本发明实施例的参考计算示例的绘图800。在一些实施例中,投影使得形状改变(即变形)作为位置的函数。在帧间预测过程中,在一个示例中,使用基于与投影相关的图像特征而计算的变形参考(deformedreference)来执行运动补偿,并被称为变形运动补偿(deformedmotioncompensation)。图8显示了用于球面投影的变形运动补偿的示例。

在图8的示例中,绘图800示出了用于获取全向图像(或者视频)的球面810。可以根据球面投影将所述全向图像投影到矩形平面840。

在一个实施例中,使用帧间预测来用于编码/解码。在帧间预测的过程中,对于当前图像帧内的当前块而言,确定前面的图像帧内的参考块以预测所述当前块。

根据本发明的一方面,由于球面投影,块的形状因纬度差异而变形。在图8的示例中,在球面810上,确定用于当前块820的参考块830,并且,当前块820和参考块830具有不同的纬度。在本示例中,当前块820和参考块830在球面810上具有相同的形状。

在本示例中,当前块820被投影到矩形平面840,作为具有a、b、c、d拐点(cornerpoint)的已投影的当前块850,参考块830被投影到矩形平面840,作为具有a’、b’、c’、d’拐点的已投影的参考块860。由于纬度差异,已投影的当前块850和已投影的参考块860具有不同的形状。在一个示例中,拐点a的坐标为(x0,y0),拐点b的坐标为(x1,y1),拐点c的坐标为(x2,y2),拐点d的坐标为(x3,y3),拐点a’的坐标为(x0’,y0’),拐点b’的坐标为(x1’,y1’),拐点c’的坐标为(x2’,y2’),拐点d’的坐标为(x3’,y3’)。进一步地,在本示例中,m为拐点a和拐点b之间的中点,且其坐标为(xm,ym),n为拐点c和拐点d之间的中点,且其坐标为(xn,yn’);m’为拐点a’和拐点b’之间的中点,且其坐标为(xm’,ym’),n’为拐点c’和拐点d’之间的中点,且其坐标为(xn’,yn’);o是块abcd的中点,且其坐标为(xo,yo);以及o’为块a’b’c’d’的中点,且其坐标为(xo’,yo’)。

可以使用各种方法来基于已投影的当前块的地理位置和运动向量mv(mvx,mvy)来确定所述已投影的参考块。

在第一方法中,运动向量mv用于表示拐点a到拐点a’的位移。这样,拐点a’、b’、c’、d’的坐标可以根据等式1-等式8来表示。

x0’=mvx+x0等式1

y0’=mvy+y0等式2

x1’=x0’+f(y0,y0’,x1-x0)等式3

y1’=y0’等式4

x2’=(x0’+x1’)/2-f(y2,y2’,x3-x2)/2等式5

y2’=mvy+y2等式6

x3’=x2’+f(y2,y2’,x3-x2)等式7

y3’=y2’等式8

其中,f(yo,yr,l)是一个函数,其指定长度为l的水平线从其原始纬度(yo)到参考纬度(yr)被拉伸的长度,并且根据等式9计算:

其中,img_height为矩形平面840的高度。应注意,可以适当地改变等式1到等式8,以计算已投影的参考块内的参考像素的坐标,所述参考像素用于已投影的当前块内的任一像素。

在第二方法中,运动向量mv用于表示点m到点m’的位移。这样,点m’、a’、b’、c’、d’的坐标可以根据等式10到等式19来表示。

xm’=mvx+xm等式10

ym’=mvy+ym等式11

x0’=xm’-f(y0,y0’,x1-x0)/2等式12

y0’=ym’等式13

x1’=xm’+f(y0,y0’,x1-x0)/2等式14

y1’=ym’等式15

x2’=xm’-f(y2,y2’,x3-x2)/2等式16

y2’=mvy+y2等式17

x3’=xm’+f(y2,y2’,x3-x2)/2等式18

y3’=y2’等式19

应注意,可以适当地改变等式10到等式19,以计算已投影的参考块内的参考像素的坐标,所述参考像素用于已投影的当前块内的任一像素。

在第三方法中,运动向量mv用于表示点o到点o’的位移。这样,点o’、a’、b’、c’、d’的坐标可以根据等式20到等式29来表示。

xo’=mvx+xo等式20

yo’=mvy+yo等式21

x0’=xo’-f(y0,y0’,x1-x0)/2等式22

y0’=yo’-(y1-y0)/2等式23

x1’=xo’+f(y0,y0’,x1-x0)/2等式24

y1’=y0’等式25

x2’=xo’-f(y2,y2’,x3-x2)/2等式26

y2’=yo’+(y1-y0)/2等式27

x3’=xo’+f(y2,y2’,x3-x2)/2等式28

y3’=y2’等式29

应注意,可以适当地改变等式20到等式29,以计算已投影的参考块内的参考像素的坐标,所述参考像素用于已投影的当前块内的任一像素。

进一步地,根据本发明的一方面,考量到变形的因素,可使用合适的技术(例如,内插(interpolation)技术、下采样技术等)来生成用于当前像素或者当前块的参考像素或参考块。

进一步地,根据本发明的一方面,当计算的坐标不对应于像素的整数位置时,选择所述计算的坐标的相邻像素。在图8的示例中,对于已投影的当前块850内的点851,计算已投影的参考块860内的参考点861的坐标。参考点861的坐标不对应于像素的整数位置。随后选择与参考点861相邻的相邻像素880。

进一步地,根据本发明的一方面,可以运用内插滤波器到用于帧间预测的这些相邻像素上。应注意,可以使用任一合适的内插滤波器,例如根据高效视频编码(highefficiencyvideocoding,hevc)标准的内插滤波器、6-抽头(6-taps)的lanczos滤波器、双线性内插滤波器等。

根据本发明的一方面,在合并模式(mergemode)内可以使用变形运动补偿。通常,合并模式使用分别表示用于运动数据的候选的合并索引。在一个实施例中,合并模式使用额外的合并索引来表示与变形运动补偿相同的候选。例如,合并模式使用0-4来指示具有相应的候选的常规运动补偿(regularmotioncompensation)(没有变形),并且,使用5-9来指示具有相应的候选的变形运动补偿。这样,在一个示例中,合并索引0和合并索引5指示同一候选但具有不同的运动补偿。

在一个实施例中,在不同的级发信并执行变形运动补偿,例如,序列级、图像级、切片级(licelevel)等。在一个示例中,例如,编码器(例如,编码器130、编码器430)将用于变形运动补偿的标志包含在用于图像序列的序列参数集(sequenceparameterset,sps)中。当所述标志指示使能时,则在所述图像序列的处理(即编码/解码)过程中的块级运动补偿(blocklevelmotioncompensation)即是所述变形运动补偿技术。

在另一个示例中,例如,编码器(例如,编码器130、编码器430)将用于变形运动补偿的标志包含在用于图像的图像参数集(pictureparameterset,pps)中。当所述标志指示使能时,则在所述图像的处理(即编码/解码)过程中的块级运动补偿即是所述变形运动补偿技术。

在另一个示例中,例如,编码器(例如,编码器130、编码器430)将用于变形运动补偿的标志包含在图像的多个切片中的一个切片的切片头中。当所述标志指示使能时,则在所述切片的处理(即编码/解码)过程中的块级运动补偿即是所述变形运动补偿技术。

在另一个示例中,在块级处选择性使用变形运动补偿。在一个示例中,编码器,例如编码器130、编码器430等,例如,基于预测质量,为每个块选择常规运动补偿(没有变形)和所述变形运动补偿中的一个,并且在已编码的块内使用一个标志来指示所述选择。随后,解码器,例如解码器180等,提取每个块内的标志,所述标志指示运动补偿的所述选择,然后相应地解码所述块。

图9示出了描述根据本发明实施例的方法示例900的流程图。在一个示例中,所述方法900由用于帧间预测的编解码器执行,例如,编码器130、编码器430、解码器180等。在本示例中,根据球面投影将球面的图像投影到矩形平面,以生成2d图像。由于球面投影,图像变形了,所述方法900基于纬度和运动向量计算参考像素。所述方法始于步骤901,并继续到步骤910。

在步骤910中,接收运动向量。在一个示例中,所述运动向量表示当前帧和先前帧之间的物体的移动。

在步骤920中,对于当前帧内的像素,基于所述像素的纬度和所述运动向量确定一个或者多个参考像素。在一个示例中,根据图8中公开的方法确定所述一个或者多个像素。

在步骤s930中,基于所述一个或者多个像素预测当前帧内的所述像素的值。在一个示例中,将内插滤波器使用到用于帧间预测的这些像素上。

在步骤s940中,当存在较多用于帧间预测的像素时,所述方法返回到步骤s920;否则所述方法继续到步骤s999并结束。

图10示出了根据本发明实施例的块扫描示例的绘图1000。绘图1000示出了用于矩形平面内的图像帧的第一扫描示例1010和第二扫描示例1020。根据立方体投影通过将球面的图像进行投影来生成所述图像帧。所述立方体投影的六个面被排列为面a-e,空置面1-6被添加以形成所述矩形平面内的图像帧。

在第一扫描示例1010中,使用穿过图像的整个水平宽度的大z图案来扫描块,例如,编码块、编码树块等。

在第二扫描示例1020中,使用穿过每个面的水平宽度的小z图案来扫描块,例如,编码块、编码树块等。在一个示例中,编码器130使用所述第二扫描示例1020。

图11示出了根据本发明实施例的面扫描示例的绘图1100。绘图1100示出了用于矩形平面内的图像帧的第一扫描示例1110、第二扫描示例1120和第三扫描示例1130。根据立方体投影通过将球面的图像进行投影来生成所述图像帧。所述立方体投影的六个面被排列为面a-e,空置面1-6被添加以形成所述矩形平面内的图像帧。

在第一扫描示例1110中,使用如图所示的特定的顺序:1-c-2-3-f-b-e-a-4-d-5-6,逐行扫描包含已投影的面a-e以及空置面1-6的面。

在第二扫描示例1120中,使用如图所示的特定的顺序:1-f-c-2-b-4-d-e-3-a-5-6,扫描包含已投影的面a-e以及空置面1-6的面。

在第三扫描示例1130中,使用如图所示的特定的顺序:1-f-c-4-b-2-d-e-3-5-a-6,扫描包含已投影的面a-e以及空置面1-6的面。

应注意,在另一个示例中,当空置面1-6的位置已知时,在扫描过程中跳过扫描空置面1-6。例如,以f-c-b-d-e-a为顺序,扫描面a-e。

应注意,本发明中的各种模块和元件可以使用任一合适的技术来实现。在一个示例中,模块可以使用集成电路(integratedcircuit,ic)来实现。在另一示例中,模块可以作为执行软件指令的处理器来实现。

当一个或者多个模块在由处理执行的软件中实现时,可以将所述软件通过作为一个或者多个指令来进行传输,或者将所述软件存储在计算机可读媒体上。所述计算机可读媒体包括非暂时性计算机存储媒体和通信媒体,所述通信媒体包括能方便将计算机程序从一个位置传输到另一个位置的任一媒体。非暂时性计算机可读媒体可以包括ram、rom、eeprom、cd-rom、压缩盘(compactdisc,cd)、激光盘、光盘、数字多功能盘(digitalversatiledisc,dvd)、软盘以及蓝光光盘(blu-raydisc)或者其他光盘存储、磁盘存储或者其他磁存储设备,或者可以用于以指令或者数据结构的形式存储特定程序代码的且由通用或者专用计算机或者通用或者专用处理器访问的任何其他媒体。在一个示例中,通信连接也适当地被作为计算机可读媒体。例如,当使用同轴电缆、光纤光缆、双绞线(twistedpair)、数字用户线(digitalsubscriberline,dsl)或者诸如红外、无线电、微波等无线技术,将所述软件从网站、服务器或者远程源进行传输时,则同轴电缆、光纤光缆、双绞线、dsl或者诸如红外线、无线电和微波等无线技术被包含在媒体的定义中。

当在硬件中实现时,所述硬件可以包括一个或者多个离散元件、集成电路、特定应用的集成电路(application-specificintegratedcircuit,asic)等。

虽然本发明已经结合用于说明目的某些具体的实施例进行了描述,但本发明不限于此。因此,各种修改、改编以及所描述的实施例的各种特征的组合可以在不脱离本发明的范围如权利要求书中阐述的情况下实施。

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