全向视频切片段的制作方法

文档序号:21606043发布日期:2020-07-24 17:11阅读:328来源:国知局
全向视频切片段的制作方法

以下描述的方面一般地涉及视频压缩领域,并且具体地涉及全向视频领域。



背景技术:

近来,可用的大视场内容(高达360°)已经得到增长。用户在诸如头戴式显示器(hmd)、智能眼镜、pc屏幕、平板、智能电话等沉浸式显示设备上观看内容时,可能无法完全看到此类内容。这意味着在给定的时刻,用户可能只在观看内容的一部分。然而,用户通常可以通过多种手段(诸如头部移动、鼠标移动、触摸屏幕、语音等)在内容内导航。通常期望对该内容进行编码和解码。



技术实现要素:

通过至少一个所描述的实施例来解决现有技术的这些和其他缺点和弊端,所描述的实施例针对用于全向视频切片段的方法和装置,其在帧打包框架中提高了这种内容的兼容性,帧打包框架在相同编码帧中包含两个视点。

在至少一个所描述的实施例中,在帧打包的上下文中重新定义立体帧的排列和伴随语法,使得打包帧的部分可以使用其他部分作为参考,从而提高最终压缩效率。

在至少一个实施例中,提供了一种方法。该方法包括以下步骤:对参考样本的部分进行重采样,以使得能够预测表示场景在相应时间的至少两个视图的至少两个视频图像的部分;生成用于视频比特流的语法,该语法指示至少两个视频图像的部分打包成帧的打包结构;以及,对该帧进行编码,该帧包括该语法。

在至少一个其他实施例中,提供了一种方法。该方法包括以下步骤:从比特流中解码视频的帧,该帧包括表示场景在相应时间的至少两个视图的至少两个视频图像;从该比特流中提取语法,该语法指示至少两个视频图像的部分打包成帧的打包结构;对用于从所解码的帧中预测至少两个视频图像的参考样本的部分进行重采样;以及,将所解码的部分排列成至少两个视图的视频图像。

在另一个实施例中,提供了根据前述方法中的任一种的方法,其中,水平重采样用于表示两个视图的图像。

在另一个实施例中,提供了根据前述方法中的任一种的方法,其中,语法位于序列参数集或图片参数集中。

在另一个实施例中,提供了根据前述方法中的任何一种的方法,其中,语法传达关于参考样本的水平重采样的信息。

在另一个实施例中,提供了一种装置。该装置包括存储器和处理器。处理器被配置为执行前述方法实施例的任何变型,以用于编码或解码。

根据在此描述的另一个方面,提供了一种非暂时性计算机可读存储介质,其包含根据前述方法实施例中的任一种的方法或由前述装置实施例中的任一种的装置所生成的数据内容,用于使用处理器进行回放。

根据在此描述的另一个方面,提供了一种信号,其包括根据用于编码视频数据块的前述方法实施例中的任一种的方法或由用于编码视频数据块的前述装置实施例中的任一种的装置所生成的视频数据,用于使用处理器进行回放。

根据在此描述的另一个方面,提供了一种计算机程序产品,其包括指令,当该程序由计算机执行时,该指令使计算机执行前述方法实施例中的任一种的方法。

从下面将结合附图阅读的示例性实施例的详细描述中,本原理的这些和其他方面、特征和优点将变得明显。

附图说明

图1示出了根据特定且非限制性实施例的用于编码和解码全向视频的示例性系统,

图2-图6示出了根据多种实施例的被配置为解码、处理和呈现沉浸式视频的系统,

图7-图9表示了根据多种实施例的具有沉浸式墙的系统,该沉浸式墙被配置为解码、处理和呈现沉浸式视频,以及

图10-图12表示了根据多种实施例的沉浸式视频呈现设备。

图13a和图13b示出了从球面s投影到矩形图片f上的示例,

图14a和图14b示出了从立方面s投影到六张图片上的示例,以及投影到2d图片上的立方体的六个面的布局,

图15a和图15b示出了表示全向视频的3d表面的投影图片f中的运动对象,以及在投影图片的块分区中的相应运动矢量。

图16a和图16b示出了从帧坐标到呈现帧、以及从呈现帧到编码帧的映射。

图17示出了视频解码器的示例流程图实施例。

图18示出了可以应用所描述方面的编码器的示例。

图19示出了可以应用所描述方面的解码器的另一个示例。

图20示出了使用四叉树分割的经典块细分成正方形编码树单元(ctu)。

图21示出了等矩形映射,在顶部显示了描绘水平像素密度的强度变化,并且在底部显示了根据距赤道的垂直角度的水平密度。

图22显示了具有四个部分或图块(tile)的两个视图的示例。

图23显示了图像的图块或部分的分配,其水平尺寸取决于等矩形帧中像素的分辨率。

图24显示了左视图和右视图的打包分配的示例。

图25显示了hevc中的切片的示例。

图26显示了hevc中的图块、切片和切片段的示例。

图27显示了在图块边界处帧内预测的情况下参考样本的对应关系的示例。

图28显示了在需要下采样的情况下参考样本的对应关系的示例。

图29显示了在hevc中经典波前的情况下不可用的编码树单元(ctu)的示例。

图30显示了用于帧间预测的多参考的示例。

图31示出了根据所描述的方面的编码方法的一个实施例。

图32示出了根据所描述的方面的解码方法的一个实施例。

图33示出了根据所描述的方面的用于编码或解码的装置的一个实施例。

具体实施方式

通常将全向内容投影在给定的布局上,以便要编码/解码的最终内容适应于矩形帧,这便于现有编解码器进行处理。取决于映射,可能会引入几何失真,这可能损害压缩性能。尤其,在处理erp映射时,运动矢量预测可能不适用。下面的实施例也可以扩展到具有相似属性的其他映射。

所描述的实施例中的至少一个用于设计适用于全向视频映射的新的运动矢量预测。对现有技术进行了若干改进,特别是用于处理时间运动矢量预测器或重新缩放的运动矢量预测器的更好方式。

大视场内容可以是三维计算机图形影像场景(3dcgi场景)、点云或沉浸式视频,等等。可以使用许多术语来设计这样的沉浸式视频,诸如例如虚拟现实(vr)、360、全景、4π、立体、沉浸式、全向、大视场。

沉浸式视频通常是指在矩形帧上编码的视频,该矩形帧是如“常规”视频那样的二维像素阵列(即,颜色信息的元素)。在许多实现方式中,可以执行以下过程。为了进行呈现,首先,将帧映射在凸体积的内面上,也称为映射表面(例如,球体、立方体、棱锥体),其次,该体积的一部分被虚拟相机捕获。由虚拟相机捕获的图像被呈现在沉浸式显示设备的屏幕上。立体视频被编码在一个或两个矩形帧上,投影在两个映射表面上,这两个映射表面根据设备的特性被组合以由两个虚拟相机捕获。

可以根据帧中的映射功能对像素进行编码。映射功能可能取决于映射表面。对于相同的映射表面,几个映射功能是可能的。例如,立方体的面可以根据帧表面内的不同布局来构造。例如,可以根据等矩形投影或球心投影来映射球体。由所选投影功能产生的像素组织修改或破坏线的连续性、正交局部帧、像素密度,并引入时间和空间上的周期性。这些是用于编码和解码视频的典型功能。现有的编码和解码方法通常不考虑沉浸式视频的特殊性。实际上,由于沉浸式视频可以是360°视频,所以例如平移会引入运动和不连续性,这些运动和不连续性需要在不更改场景内容时对大量数据进行编码。在对视频帧进行编码和解码时考虑沉浸式视频的特殊性,将为编码或解码方法带来宝贵的优势。

图1示出了根据特定且非限制性实施例的编码和解码系统的一般概述。图1的系统是功能系统。预处理模块110可以准备由编码设备120进行编码的内容。预处理模块110可以执行多图像获取,将获取的多个图像合并在公共空间中(如果我们编码方向,则通常是3d球体),以及使用例如但不限于等矩形映射或立方体映射将3d球体映射到2d帧中。预处理模块110还可以接受特定格式(例如,等矩形)的全向视频作为输入,并对该视频进行预处理,以将映射改变为更适合编码的格式。取决于所获取的视频数据表示,预处理模块110可以执行映射空间改变。

将参考说明书的其他附图描述编码设备120和编码方法。在编码之后,将例如可以对沉浸式视频数据或3dcgi编码数据进行编码的数据发送到网络接口130,该网络接口通常可以实现在任何网络接口中,例如存在于网关中。然后,通过通信网络(诸如互联网,但可以预见的任何其他网络)传送该数据。然后,经由网络接口140接收该数据。网络接口140可以实现在网关、电视、机顶盒、头戴式显示设备、沉浸式(投影)墙或任何沉浸式视频呈现设备中。

在接收之后,将数据发送到解码设备150。解码功能是在以下图2至图12中描述的处理功能之一。然后,由播放器160处理解码后的数据。播放器160为呈现设备170准备数据,并且可能接收来自传感器的外部数据或用户输入数据。更准确地说,播放器160准备要由呈现设备170显示的视频内容的部分。解码设备150和播放器160可以集成在单个设备(例如,智能电话、游戏控制台、stb、平板、计算机等)中。在其他实施例中,播放器160可以集成在呈现设备170中。

可以设想几种类型的系统来执行沉浸式显示设备的解码、播放和呈现功能,例如在呈现沉浸式视频时。

在图2至图6中示出了用于处理增强现实、虚拟现实或增强虚拟内容的第一系统。这种系统包括处理功能、沉浸式视频呈现设备,该设备可以是例如头戴式显示器(hmd)、平板或智能电话,并且可以包括传感器。沉浸式视频呈现设备还可以在显示设备和处理功能之间包括附加接口模块。处理功能可以由一个或几个设备执行。它们可以集成到沉浸式视频呈现设备中,或者可以集成到一个或几个处理设备中。处理设备包括一个或几个处理器和与沉浸式视频呈现设备的通信接口,诸如无线或有线通信接口。

处理设备还可以包括与诸如互联网的广泛访问网络的第二通信接口,并直接访问或通过诸如家庭或本地网关之类的网络设备访问位于云上的内容。处理设备还可以通过诸如以太网类型的本地访问网络接口的第三接口访问本地存储。在实施例中,处理设备可以是具有一个或几个处理单元的计算机系统。在另一个实施例中,它可以是智能电话,其可以通过有线或无线链路连接到沉浸式视频呈现设备,或者可以插入沉浸式视频呈现设备的外壳中,并通过连接器或无线地与其通信。处理设备的通信接口是有线接口(例如总线接口、广域网接口、局域网接口)或无线接口(诸如ieee802.11接口或接口)。

当处理功能由沉浸式视频呈现设备执行时,沉浸式视频呈现设备可以被提供有直接或通过网关到网络的接口,以接收和/或发送内容。

在另一个实施例中,该系统包括与沉浸式视频呈现设备和处理设备通信的辅助设备。在这样的实施例中,该辅助设备可以包含处理功能中的至少一个。

沉浸式视频呈现设备可以包括一个或几个显示器。该设备可以在其每个显示器的前面采用诸如透镜之类的光学器件。显示器也可以是沉浸式显示设备的一部分,如智能电话或平板的情况。在另一个实施例中,显示器和光学器件可以被嵌入在头盔、眼镜或用户可以佩戴的面罩中。沉浸式视频呈现设备还可以集成几个传感器,如稍后所描述。沉浸式视频呈现设备还可以包括几个接口或连接器。它可以包括一个或几个无线模块,以便与传感器、处理功能、手持式或其他身体部位相关的设备或传感器进行通信。

沉浸式视频呈现设备还可以包括由一个或几个处理器执行并被配置为解码内容或处理内容的处理功能。通过在此处理内容,可以理解所有功能为了准备可以显示的内容。这可以包括例如解码内容、在显示内容之前合并内容和修改内容以适合显示设备。

沉浸式内容呈现设备的一个功能是控制虚拟相机,该虚拟相机捕获被结构化为虚拟体积的内容的至少一部分。该系统可以包括姿势跟踪传感器,其全部或部分地跟踪用户的姿势,例如,用户头部的姿势,以便处理虚拟相机的姿势。一些定位传感器可以跟踪用户的位移。该系统还可以包括涉及环境的其他传感器,例如用于测量照明、温度或声音条件。此类传感器还可以涉及用户的身体,例如,用于测量出汗或心率。通过这些传感器获取的信息可以用于处理内容。该系统还可以包括用户输入设备(例如,鼠标、键盘、遥控器、操纵杆)。来自用户输入设备的信息可以用于处理内容、管理用户界面或控制虚拟相机的姿势。传感器和用户输入设备通过有线或无线通信接口与处理设备和/或沉浸式呈现设备通信。

使用图2至图6,描述了用于显示增强现实、虚拟现实、增强虚拟或从增强现实到虚拟现实的任何内容的该第一类型系统的几个实施例。

图2示出了被配置为解码、处理和呈现沉浸式视频的系统的特定实施例。该系统包括沉浸式视频呈现设备10、传感器20、用户输入设备30、计算机40和网关50(可选的)。

图10中示出的沉浸式视频呈现设备10包括显示器101。该显示器例如是oled或lcd类型的。沉浸式视频呈现设备10例如是hmd、平板或智能电话。设备10可以包括触摸表面102(例如,触摸板或触觉屏)、相机103、与至少一个处理器104和至少一个通信接口106连接的存储器105。至少一个处理器104处理从传感器20接收的信号。

来自传感器的一些测量值用于计算设备的姿势并控制虚拟相机。用于姿势估计的传感器例如是陀螺仪、加速度计或指南针。也可以使用更复杂的系统,例如使用相机组。在这种情况下,至少一个处理器执行图像处理以估计设备10的姿势。根据环境条件或用户的反应,使用其他一些测量值来处理内容。用于观察环境和用户的传感器例如是麦克风、光传感器或接触传感器。也可以使用更复杂的系统,例如跟踪用户眼睛的摄像机。在这种情况下,至少一个处理器执行图像处理以操作预期的测量值。来自传感器20和用户输入设备30的数据也可以被传送到计算机40,该计算机40将根据这些传感器的输入来处理数据。

存储器105包括用于处理器104的参数和代码程序指令。存储器105还可以包括从传感器20和用户输入设备30接收的参数。通信接口106使沉浸式视频呈现设备能够与计算机40通信。处理设备的通信接口106可以是有线接口(例如总线接口、广域网接口、局域网接口)或无线接口(诸如ieee802.11接口或接口)。

计算机40将数据以及可选地将控制命令发送到沉浸式视频呈现设备10。计算机40负责处理数据,即准备它们用于沉浸式视频呈现设备10显示。处理可以专门由计算机40完成,或者部分处理可以由计算机完成且部分处理由沉浸式视频呈现设备10完成。计算机40直接或通过网关或网络接口50连接到互联网。计算机40从互联网接收代表沉浸式视频的数据,处理这些数据(例如,解码它们以及可能地准备将要由沉浸式视频呈现设备10显示的视频内容的部分),并将处理后的数据发送到沉浸式视频呈现设备10用于显示。在另一个实施例中,系统还可以包括其中存储代表沉浸式视频的数据的本地存储器(未表示),所述本地存储器可以在计算机40上或在例如可通过局域网访问的本地服务器上(未表示)。

图3表示第二实施例。在该实施例中,stb90直接(即,stb90包括网络接口)或经由网关50连接到诸如互联网的网络。stb90通过无线接口或通过有线接口连接到呈现设备,诸如电视机100或沉浸式视频呈现设备200。除了stb的经典功能外,stb90还包括处理功能,以处理用于在电视机100或任何沉浸式视频呈现设备200上呈现的视频内容。这些处理功能与针对计算机40所描述的处理功能相同,在此不再赘述。传感器20和用户输入设备30也与先前关于图2描述的类型相同。stb90从互联网获得代表沉浸式视频的数据。在另一个实施例中,stb90从存储代表沉浸式视频的数据的本地存储器(未表示)获得代表沉浸式视频的数据。

图4表示涉及图2中所示的实施例的第三实施例。游戏控制台60处理内容数据。游戏控制台60将数据以及可选地将控制命令发送到沉浸式视频呈现设备10。游戏控制台60被配置为处理代表沉浸式视频的数据,并将处理后的数据发送到沉浸式视频呈现设备10用于显示。处理可以专门由游戏控制台60完成,或者部分处理可以由沉浸式视频呈现设备10完成。

游戏控制台60直接或通过网关或网络接口50连接到互联网。游戏控制台60从互联网获得代表沉浸式视频的数据。在另一个实施例中,游戏控制台60从存储代表沉浸式视频的数据的本地存储器(未表示)获得代表沉浸式视频的数据,所述本地存储器可以在游戏控制台60上或在例如可通过局域网访问的本地服务器上(未表示)。

游戏控制台60从互联网接收代表沉浸式视频的数据,处理这些数据(例如,解码它们以及可能地准备将要显示的视频的部分),并将处理后的数据发送到沉浸式视频呈现设备10用于显示。游戏控制台60可以从传感器20和用户输入设备30接收数据,并且可以使用它们来处理从互联网或从本地存储器获得的代表沉浸式视频的数据。

图5表示所述第一类型系统的第四实施例,其中,沉浸式视频呈现设备70由插入外壳705中的智能电话701形成。智能电话701可以连接到互联网,并因此可以从互联网获得代表沉浸式视频的数据。在另一个实施例中,智能电话701从存储代表沉浸式视频的数据的本地存储器(未表示)获得代表沉浸式视频的数据,所述本地存储器可以在智能电话701上或在例如可通过局域网访问的本地服务器上(未表示)。

沉浸式视频呈现设备70参考图11来进行描述,图11给出了沉浸式视频呈现设备70的优选实施例。它可选地包括至少一个网络接口702和用于智能电话701的外壳705。智能电话701包括智能电话和显示器的所有功能。智能电话的显示器用作沉浸式视频呈现设备70的显示器。因此,除了智能电话701的显示器之外,不包括任何显示器。然而,包括光学器件704,诸如透镜,用于查看智能电话显示器上的数据。智能电话701被配置为可能地根据从传感器20和从用户输入设备30接收的数据来处理(例如,解码和准备显示)代表沉浸式视频的数据。来自传感器的一些测量值被用于计算设备的姿势和控制虚拟相机。用于姿势估计的传感器例如是陀螺仪、加速度计或指南针。也可以使用更复杂的系统,例如使用相机组。在这种情况下,至少一个处理器执行图像处理以估计设备10的姿势。根据环境条件或用户的反应,使用其他测量值来处理内容。用于观察环境和用户的传感器例如是麦克风、光传感器或接触传感器。也可以使用更复杂的系统,例如跟踪用户眼睛的摄像机。在这种情况下,至少一个处理器执行图像处理以操作预期的测量值。

图6表示所述第一类型系统的第五实施例,其中,沉浸式视频呈现设备80包括用于处理和显示数据内容的所有功能。该系统包括沉浸式视频呈现设备80、传感器20和用户输入设备30。沉浸式视频呈现设备80被配置为可能地根据从传感器20和从用户输入设备30接收的数据来处理(例如,解码和准备显示)代表沉浸式视频的数据。沉浸式视频呈现设备80可以连接到互联网,并因此可以从互联网获得代表沉浸式视频的数据。在另一个实施例中,沉浸式视频呈现设备80从存储代表沉浸式视频的数据的本地存储器(未表示)获得代表沉浸式视频的数据,所述本地存储器可以在呈现设备80上或在例如可通过局域网访问的本地服务器上(未表示)。

沉浸式视频呈现设备80在图12中示出。沉浸式视频呈现设备包括显示器801。该显示器可以是例如oled或lcd类型的。设备80可以包括触摸表面(可选的)802(例如,触摸板或触觉屏)、相机(可选的)803、与至少一个处理器804和至少一个通信接口806连接的存储器805。存储器805包括用于处理器804的参数和代码程序指令。存储器805还可以包括从传感器20和用户输入设备30接收的参数。存储器也可以足够大以存储代表沉浸式视频内容的数据。为此,可以存在几种类型的存储器,并且存储器805可以是单个存储器,或者可以是几种类型的存储器(sd卡、硬盘、易失性或非易失性存储器……)。通信接口806使沉浸式视频呈现设备能够与互联网网络通信。处理器804处理代表视频的数据以便在显示器801上显示它们。相机803捕获环境的图像用于图像处理步骤。从该步骤中提取数据,以便控制沉浸式视频呈现设备。

在图7至图9中示出了用于处理增强现实、虚拟现实或增强虚拟内容的第二系统。这种系统包括沉浸式墙。

图7表示第二类型的系统。它包括显示器1000,该显示器是从计算机4000接收数据的沉浸式(投影)墙。计算机4000可以从互联网接收沉浸式视频数据。计算机4000通常直接地、或者通过网关5000或网络接口连接到互联网。在另一个实施例中,沉浸式视频数据由计算机4000从存储代表沉浸式视频的数据的本地存储器(未表示)获得,所述本地存储器可以在计算机4000中或在例如可通过局域网(未表示)访问的本地服务器中。

该系统还可以包括传感器2000和用户输入设备3000。沉浸式墙1000可以是oled或lcd类型的。它可以配备有一个或几个相机。沉浸式墙1000可以处理从传感器2000(或多个传感器2000)接收的数据。从传感器2000接收的数据可以涉及照明条件、温度、用户的环境,例如对象的位置。

沉浸式墙1000还可以处理从用户输入设备3000接收的数据。用户输入设备3000发送诸如触感信号的数据,以便给出关于用户情绪的反馈。用户输入设备3000的示例是诸如智能电话、遥控器的手持设备,以及具有陀螺仪功能的设备。

传感器2000和用户输入设备3000的数据也可以被传送到计算机4000。计算机4000可以根据从这些传感器/用户输入设备接收的数据来处理视频数据(例如,解码它们和准备它们用于显示)。传感器信号可以通过沉浸式墙的通信接口接收。该通信接口可以是蓝牙类型、wifi类型或任何其他类型的连接,优选为无线,但也可以是有线连接。

计算机4000将处理后的数据以及可选地将控制命令发送到沉浸式墙1000。计算机4000被配置为处理要由沉浸式墙1000显示的数据,即,准备它们用于显示。处理可以专门由计算机4000完成,或者部分处理可以由计算机4000完成且部分处理由沉浸式墙1000完成。

图8表示第二类型的另一个系统。它包括沉浸式(投影)墙6000,其被配置为处理(例如,解码和准备数据用于显示)和显示视频内容。它还包括传感器2000、用户输入设备3000。

沉浸式墙6000通过网关5000或直接从互联网接收沉浸式视频数据。在另一个实施例中,沉浸式视频数据由沉浸式墙6000从存储代表沉浸式视频的数据的本地存储器(未表示)获得,所述本地存储器可以在沉浸式墙6000中或在例如可通过局域网(未表示)访问的本地服务器中。

该系统还可以包括传感器2000和用户输入设备3000。沉浸式墙6000可以是oled或lcd类型的。它可以配备有一个或几个相机。沉浸式墙6000可以处理从传感器2000(或多个传感器2000)接收的数据。从传感器2000接收的数据可以涉及照明条件、温度、用户的环境,例如对象的位置。

沉浸式墙6000还可以处理从用户输入设备3000接收的数据。用户输入设备3000发送诸如触感信号的数据,以便给出关于用户情绪的反馈。用户输入设备3000的示例是诸如智能电话、遥控器的手持设备,以及具有陀螺仪功能的设备。

沉浸式墙6000可以根据从这些传感器/用户输入设备接收的数据来处理视频数据(例如,解码它们和准备它们用于显示)。传感器信号可以通过沉浸式墙的通信接口接收。该通信接口可以是蓝牙类型、wifi类型或任何其他类型的连接,优选为无线,但也可以是有线连接。沉浸式墙6000可以包括至少一个通信接口以与传感器和互联网通信。

图9示出了沉浸式墙用于游戏的第三实施例。一个或几个游戏控制台7000优选地通过无线接口连接到沉浸式墙6000。沉浸式墙6000通过网关5000或直接从互联网接收沉浸式视频数据。在另一个实施例中,沉浸式视频数据由沉浸式墙6000从存储代表沉浸式视频的数据的本地存储器(未表示)获得,所述本地存储器可以在沉浸式墙6000中或在例如可通过局域网(未表示)访问的本地服务器中。

游戏控制台7000将指令和用户输入参数发送到沉浸式墙6000。沉浸式墙6000可能地根据从传感器2000和用户输入设备3000和游戏控制台7000接收的输入数据来处理沉浸式视频内容,以便准备内容用于显示。沉浸式墙6000还可以包括内部存储器以存储要显示的内容。

在一个实施例中,我们认为全向视频是以一种格式表示的,该格式能够将周围的三维(3d)表面s投影到以适合视频编解码器的格式表示的标准矩形帧f上。可以使用多种投影将3d表面投影到二维(2d)表面。例如,图13a显示了使用等矩形投影(erp)将示例性球体表面s映射至2d帧f,图13b显示了使用立方体映射将示例性立方体表面映射至2d帧。其他映射,诸如棱锥体、二十面体或八面体映射,可以用于将3d表面映射为2d帧。这样的图像需要视频编解码器内部的一些新工具来考虑图像的几何属性。这类工具的示例在待决申请“vr的运动变换”中给出。对于这些新工具,需要标志来激活或不激活这些工具。然后,语法可能变得太大,并降低工具的性能增益。

另一个问题是这些工具中的一些可能需要附加的处理,并且希望在可能的情况下降低复杂性。目前,用于视频的映射类型是在没有描述特定工具的使用的情况下发信号通知的。例如,可以在每个编码单元中使用标志来激活或停用工具。

2d帧f可以使用现有的视频编码器来编码,例如,符合google的vp9、aomedia的av1、mpeg-2(itu-th.222/h.262)、h.264/avc(mpeg-4部分10,高级视频编码)或h.265/hevc(mpeg-h第2部分,高效视频编码)的编码器。2d帧f还可以使用适合于全向视频的属性的编码器来编码,例如,使用适配的vp9、vp10、mpeg-2、h.264/avc或h.265/hevc编码器。在编码和解码之后,可以将解码后的2d帧映射回相应的3d表面,例如,用于等矩形映射的球体或用于立方体映射的立方体。然后可以将3d表面投影到与用户视点相对应的“虚拟屏幕”上,以便获得最终的呈现帧。解码2d帧并从3d表面投影到呈现帧的步骤可以合并为单个步骤,其中将解码帧的一部分映射到呈现帧上。

为了简化符号,我们可以将解码后的2d帧也称为“f”,并且将在呈现中使用的3d表面也称为s。应当理解,由于视频压缩,要编码的2d帧和要解码的2d帧可能不同,并且预处理中的3d表面和呈现中的3d表面也可能不同。术语“映射”和“投影”可以互换使用,术语“像素”和“样本”可以互换使用,术语“帧”和“图片”可以互换使用。

首先针对全向视频的典型布局、即等矩形布局来描述三维(3d)表面映射到矩形表面的问题,但是一般原理适用于从3d表面s到矩形帧f的任何映射。相同的原理可以应用于例如立方体映射布局。

在图15a和图15b中,我们显示了对象在场景中沿直线移动的示例,以及在帧中所得的明显运动,由虚线示出。任意预测单元(pu)分区的所得运动矢量显示在右侧。可以注意到,即使运动在呈现的图像中完全笔直,但是要编码的帧显示不均匀的运动矢量。

所描述的实施例的领域是360°全向内容的压缩,尤其是立体360°视频的打包。等矩形布局是用于存储、压缩和处理360°捕获的场景的当前最常用的映射之一。映射将场景的球形表示作为输入,并将其映射到矩形帧上,如图13a中所示。本发明的目的是提供适用于投影像素的密度在每个编码帧上变化的全向内容的工具和语法。在现有解决方案中,根据帧的垂直位置,将帧分割为具有不同空间分辨率的不同图块。该分块使得不同区域在预测和上下文编码方面是独立的,降低了压缩效率。

本发明包括提供语法和工具,用于使预测工具即使在具有不同分辨率的图块之间也保持可操作。这种语法是轻巧的,例如,预测工具可以易于适应图块的边界。例如,在hevc(高效视频编码,h.265)标准的后继标准的情况下,所提出的语法易于在切片段级别适应。新的分块内容具有适应全向视频分辨率特性的减小表面,并且由于未在图块边界处禁用预测工具,因此压缩效率并未显著降低。

立体360°意味着从两个不同的视点产生两个全向视图,从而得到两个不同的等矩形帧。表面可以是例如具有根据欧拉空间中的方向变化的中心的球体。这些描述的实施例的部分旨在改善这种立体内容在帧打包框架中的压缩,其包括在相同的编码帧中包含两个视点。

最近的视频压缩标准逐块处理视频的帧。块的尺寸由编码器根据诸如压缩效率和复杂度的标准进行选择。图20描绘了hevc标准中典型的示例性分解,其中,按照四叉树结构将每个64×64编码树块(ctb)分割为编码块(cb)。

在全向视频布局之中,等矩形是最受欢迎的布局之一,因为它方便地将球体映射到连续的矩形帧。在下文中,将等矩形帧称为f,并且将要显示的呈现帧称为g,如图16a中所示。将f中的给定点p映射在球体上的位置p’处,并且对应于呈现帧中的点p”。呈现帧是要显示的矩形图像,例如,在头戴式显示器中用于360°沉浸式体验。它的位置取决于用户正在看的地方。

然而,这种映射在视频压缩方面具有一些缺点,因为该矩形中像素的密度是固定的,尽管分辨率应沿垂直轴变化以在呈现帧中产生恒定的分辨率。图16a在左侧显示了与等矩形帧f的这种关系,以及根据垂直位置的“纬度”的相应密度。在纬度0处,密度最高,并沿垂直轴减小。换句话说,呈现帧中每个像素的宽度随着到“赤道”(或y=0)的距离而增加。

图21显示了等矩形映射。根据垂直位置来显示呈现帧投影g中每个像素的宽度。在顶部,强度描绘像素水平密度,较深的阴影为较低的密度。在底部,根据距赤道的垂直角度显示水平密度。

编解码器逐块处理视频的帧,如图20中所示。为了使解决方案保持与现有设计兼容,垂直地、逐块剪切视频看来是相关的。图23显示了一种可能的分配,其中图像不再是“矩形”,而是分割成“图块”,其水平尺寸取决于它们的垂直位置。应该注意的是,这里的“图块”一词表示共享相同采样的矩形区域,并且不应直接引用hevc中的图块定义,后者定义了用于编码的特定条件。在下文中,hevc中的图块将明确地称为hevc图块。

图22描绘了左帧和右帧,并且显示了将这些帧分区成每帧四个图块的过程,以及示例性的帧打包方法。

根据图块的位置,对图23中的原始等矩形内容进行水平子采样。该过程允许减少要压缩的信号的表面,而不会显著地丢失信息,这是因为呈现帧的质量(这是重要的)不会受到太大影响,因为由于映射本身,分辨率已经很低。

然后,该分配必须被组织以填充矩形帧,来进行有效压缩。在帧打包的情况下,必须分配两组图块。图24给出了示例性分配,其中左视图为白色,右视图用几种灰色的阴影表示。左视图的图块移动到与左侧水平对齐,并且右视图的图块打包在右侧,以创建矩形帧。图块的右侧分配在中间垂直分割,以与左视图一起创建整体矩形形状。

在文献中提出的相似分配中,图块被认为是独立的,这在编码此类帧时显著降低编解码器的潜在性能。在此所描述的实施例提出使用以下工具不完全分离不同的图块,从而允许图块间预测。

首先,如果我们希望工具适应它,必须将分配发信号通知。

在hevc中,将每个帧分区为64×64的不重叠ctu。用于编码的这种基本块的尺寸已从h.264中的16×16变化到用于下一代视频编码(h.266)的当前模型中的256×256。但是,这似乎不是适当的粒度。

图25描绘了hevc中的切片中的帧分区,切片本身可以分区成切片段。切片以及hevc图块在如预测和上下文编码之类的压缩工具方面是独立的。它们包含按光栅扫描顺序的连续ctu,而hevc图块是修改了帧中ctu扫描的矩形,然后其遵循每个图块的光栅扫描顺序,如图26中所示。

切片可以划分为多个切片段,如图25和图26中所示。独立切片段以光栅扫描顺序开始该切片,随后是相关切片段。虽然切片可以独立解码,但切片段边界处的空间预测相关性没有中断。然后,可以使用下面描述的所提出的适配方法,在切片段报头中提供有关采样的信息,并保持帧内预测的效率。

在第一实施例中,图24中的结构可以直接以高级语法标记,诸如序列参数集或图片参数集。然后,在知道其报头语法元素slice_segment_address所给出的地址的情况下,可以导出有关每个图块的信息。

在第二实施例中,将语法元素添加到切片段报头,其给出给定切片段的水平空间分辨率。它可以表示为总宽度的比例或ctu的数量。表1显示了在hevc中切片段报头语法的一部分。某些元素的存在取决于片段是相关的还是引导切片。独立切片段可以被独立地解码。相关切片段包含减小的报头,并且需要来自前导的独立切片段的语法元素。在这两种情况下,水平分辨率可以经由例如slice_segment_horizontal_resolution的元素来更新。该语法元素应该是相关切片段的一部分,以防我们要更新分辨率并在切片段的边界处启用帧内预测。

表1:示例性切片段报头语法

图24中描绘的分区还可以受益于hevc图块功能,该功能在帧结束之前水平地停止光栅扫描。实际上,右图块具有不同内容,这可能影响编码。如果它们遵循每个组成帧,上下文将更加一致。此外,在边界处,根据来自拍摄的不同部分的内容和具有不同分辨率的图像,几乎无法从其邻居预测每个右图块。

由于不希望每个图块都具有hevc图块且不希望具有非矩形的组成帧,因此将需要遵循每个组成帧的更灵活的分块。

对于帧内编码,可以适应帧内压缩工具,以免丢失图块之间的所有潜在冗余。“图块”一词在此描述像素的矩形形状,但并没有涉及hevc中的特定图块。

首先,可以使用专用的水平上采样阶段来至少获得适当的相应样本,以用于相邻图块之间的帧内预测。在块内复制预测或者需要与要预测的当前块具有相同分辨率的预测器区域的任何其他预测工具的情况下,需要重新采样。图27描绘了如何寻找当前预测块的参考样本,该当前预测块将需要从上部图块进行帧内预测。可以看到,该操作不仅需要对相邻像素进行上采样,而且整个上像素行都被拉伸了。在这种情况下,灰色参考样本的位置如图27的中部和底部图中所示。然后,需要对它们进行上采样以获得与当前预测块相同的分辨率的参考样本行。

在解码过程期间,可以为给定的当前预测块搜索给出参考样本在相邻图块中的新位置的查找表。然后,插值阶段将允许获取最终参考样本。例如,在hevc中,经常对参考样本进行平滑处理,以产生平滑的预测,从而防止其与源信号产生偏差,并允许随后的变换处理残差。在这种情况下,由于上采样要求所引起的插值是一个小问题。

对于参考样本必须进行下采样的另一种情况,如图28中所示,可以设置相同的机制。对于生成的参考样本的相关性,下采样的问题更少。

然而,这引发了上方ctu行的可用性的问题。如果使用诸如波前并行处理(wpp)之类的工具,则该配置将需要信息来修改启动下一ctu行的条件。图29显示了示例性分配,其中参考样本将属于上图块中的3个ctu。在不改变波前的情况下,阴影的ctu在解码当前块时不可用。实际上,当时已经解码了当前ctu水平之前的一个ctu。

在这种情况下,该方案可以被约束为在所需的ctu被解码时开始,在图29中所示的示例情况下,在水平轴上当前ctu之前的两个ctu。

默认波前需要解码上方图块中索引x+1(水平)处的ctu,以便开始解码x处的当前ctu。对于具有适当宽度的图块,如果上方图块的宽度为w1,并且当前图块的宽度为w2,则波前应要求解码ctuw1/w2*(x+1)。

对于帧间预测,在第一实施例中,可以以期望的分辨率重构存储在解码图片缓冲器中的图像,以使得能够进行交叉图块预测。注意,不仅yuv采样值,还有例如其他时间上预测的分量,如运动矢量,也需要被相应地上采样。

在帧间预测的第二实施例中,为了避免向上和向下采样或向下和向上采样,可以生成几个参考图像并将其存储在dpb中。如图12中所示,对于时间预测,取决于要编码/解码的当前编码单元(cu)的图块,使用适当的参考图片。例如,对于宽度为w1的第一图块中的块a,使用宽度为w1的参考图片r0。该参考图片是通过缩减宽度大于w1的图块来生成的。类似地,宽度为w2的图块的块b将使用宽度为w2的r1图片,其中图块已适当缩放。

经典方法中的去块滤波器也需要修改。

在另一个实施例中,可以至少在图块边界处禁用滤波器。在hevc中,可以分别经由图片参数集中包含的语法元素loop_filter_across_tiles_enabled_flag和loop_filter_across_slice_enabled_flag允许在hevc图块和切片边界处进行去块。在一个所描述的实施例中,提出添加元素loop_filter_across_slice_segment_enabled_flag:等于1的pps_loop_filter_across_slice_segments_enabled_flag指定可以在引用pps的切片段的左边界和上边界上执行环内滤波操作。当pps_loop_filter_across_slices_enabled_flag等于0时,它指定不在引用pps的切片段的左边界和上边界上执行环内滤波操作。环内滤波操作包括去块滤波器和样本自适应偏移滤波器操作。

在另一个实施例中,在应用去块滤波器之前,还可以对来自相邻图块的信号进行上/下采样,以使内容在边界处匹配。

在帧间预测或帧内预测情况下,上述视频比特流中的语法和指示视频图像的至少两个视图的部分的打包结构的语法可以用于重采样和/或预测。重采样是指更改信号的采样结构,这可能意味着上采样、下采样、插值或这些操作的某种组合。

图31显示了在所描述的方面下的方法3100的一个实施例。该方法开始于开始框3101,并且控制进行到框3110,用于对参考样本的部分进行重采样,以用于表示场景在相应时间的至少两个视图的视频图像。控制从框3110进行到框3120,用于生成用于比特流的语法,该语法指示至少两个视频图像的部分打包成帧的打包结构。然后,控制从框3120进行到框3130,用于对帧进行编码,该帧包括该语法。

图32显示了在所描述的方面下的方法3200的一个实施例。该方法开始于开始框3201,并且控制进行到框3210,用于对还包括语法元素的视频比特流进行解码。控制从框3210行进到框3220,用于从解码的比特流中提取语法。控制从框3220进行到框3230,用于对至少两个视图的参考样本的部分进行重采样。控制从框3230进行到框3240,用于排列至少两个视频图像的解码部分。

图33显示了用于对视频数据块进行编码或解码的装置3300的一个实施例。该装置包括处理器3310,其具有输入和输出端口并且与也具有输入和输出端口的存储器3320处于信号连接。该装置可以执行任何前述方法实施例或变型。

可以使用专用硬件以及与适当软件相关联的能够执行软件的硬件来提供附图中所示的各种元件的功能。当由处理器提供时,功能可以由单个专用处理器、由单个共享处理器或由多个单独的处理器(其中的一些可以共享)提供。此外,对术语“处理器”或“控制器”的显式使用不应解释为专门指代能够执行软件的硬件,而可以隐含地包括但不限于数字信号处理器(“dsp”)硬件、用于存储软件的只读存储器(“rom”)、随机存取存储器(“ram”)和非易失性存储器。

也可以包括常规和/或定制的其他硬件。类似地,图中显示的任何切换都只是概念性的。它们的功能可以通过程序逻辑的操作、通过专用逻辑、通过程序控制和专用逻辑的交互、或者甚至手动来实现,具体技术可由实现者选择,如从上下文中更具体地理解的那样。

本描述说明了本构思。因此将理解,本领域技术人员将能够设计出尽管未在此明确描述或显示,但体现本构思并包括在其范围内的各种布置。

在此叙述的所有示例和条件语言旨在用于教学目的,以帮助读者理解本原理和发明人为促进本领域而贡献的概念,并且应解释为不限于此类具体叙述的示例和条件。

此外,在此叙述本原理的原理、方面和实施例及其具体示例的所有陈述旨在涵盖其结构和功能上的等同物。此外,旨在这样的等同物包括当前已知的等同物以及将来开发的等同物,即,无论结构如何,所开发的执行相同功能的任何元件。

因此,例如,本领域技术人员将理解,在此展现的框图表示体现本原理的说明性电路的概念性视图。类似地,将理解的是,任何流程表、流程图、状态转变图、伪代码等表示可以基本上表示在计算机可读介质中并因此由计算机或处理器执行的多种过程,无论是否明确显示了这种计算机或处理器。

在权利要求中,被表达为用于执行特定功能的部件的任何元件旨在涵盖执行该功能的任何方式,包括例如,a)执行该功能的电路元件组合,或b)任何形式的软件,因此包括固件、微代码等,与用于执行该软件的适当电路相组合以执行该功能。由这样的权利要求所限定的本原理在于以下事实:由各种所述部件提供的功能以权利要求所要求的方式被组合和集合在一起。因此,认为可以提供这些功能的任何部件都等同于在此所示的部件。

说明书中对本原理的“一个实施例”或“实施例”及其其他变型的引用意味着结合实施例描述的特定特征、结构、特性等包括在本原理的至少一个实施例中。因此,在整个说明书的多个地方出现的短语“在一个实施例中”或“在实施例中”以及任何其他变型不一定都指的是相同的实施例。

总之,方法和装置实现涉及表示全向视频的打包帧的、用于视频编码的工具和操作。在实施例中,打包帧是立体全向视频图像。这些技术使打包帧的不同部分能够用于其他部分的预测,从而允许更大的编码效率。在一个实施例中,包括语法,该语法包括打包信息、重采样信息或其他信息。在另一个实施例中,语法指定水平重采样信息或涉及视频图像的部分的预测的其他信息。

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