用于深度编码和解码的方法和装置与流程

文档序号:27931936发布日期:2021-12-11 12:19阅读:204来源:国知局
用于深度编码和解码的方法和装置与流程

1.本原理一般而言涉及三维(3d)场景和立体视频内容的领域。本文档还可以在代表3d场景的几何形状的数据的编码、格式化和解码的上下文中理解,例如,用于在最终用户设备(诸如移动设备或头戴式显示器(hmd))上渲染立体内容。


背景技术:

2.本部分旨在向读者介绍本领域的各个方面,这些方面可以与以下描述和/或要求保护的本原理的各个方面相关。相信该讨论有助于向读者提供背景信息,以促进更好地理解本原理的各个方面。因而,应当理解的是,应从这种角度来阅读这些陈述,而不是作为对现有技术的承认。
3.最近,可用的大视场内容(高达360
°
)有所增长。用户在诸如头戴式显示器、智能眼镜、pc屏幕、平板电脑、智能电话等沉浸式显示设备上观看内容时,可能无法完全看到此类内容。这意味着在给定时刻,用户可能只能查看内容的一部分。但是,用户通常可以通过各种手段在内容内导航,诸如头部移动、鼠标移动、触摸屏、语音等。通常期望编码和解码这种内容。
4.沉浸式视频,也称为360
°
平面视频,允许用户通过其头部围绕静止视点的旋转来观看其自己周围的一切。旋转仅允许3自由度(3dof)体验。即使3dof视频足以满足第一全向视频体验,例如使用头戴式显示设备(hmd),但对于预期获得更多自由的查看者来说,3dof视频可能很快变得令人沮丧,例如由于体验视差。此外,3dof还会诱发头晕,因为用户从来不会仅旋转头部,而是还会在三个方向上平移头部,而这种平移在3dof视频体验中是无法再现的。
5.除其它以外,大视场内容尤其可以是三维计算机图形影像场景(3d cgi场景)、点云或沉浸式视频等。许多术语可以被用于设计此类沉浸式视频:例如,虚拟现实(vr)、360、全景、4π立体、沉浸式、全向或大视场。
6.体积视频(也称为6自由度(6dof)视频)是3dof视频的替代方案。在观看6dof视频时,除了旋转之外,用户还可以在观看的内容中平移其头部甚至其身体,并体验视差甚至体积。此类视频通过在头部平移期间提供一致的视觉反馈而大大增加了沉浸感和对场景深度的感知,并防止头晕。内容是借助于专用传感器创建的,从而允许同时记录感兴趣场景的颜色和深度。使用与摄影测量技术相结合的彩色相机的装备(rig)是执行这种记录的一种方式,即使仍然存在技术困难。
7.虽然3dof视频包括由纹理图像(例如,根据纬度/经度投影映射或等距柱状投影映射编码的球形图像)的未映射产生的图像序列,但6dof视频帧嵌入了来自几个视点的信息。它们可以被视为由三维捕获产生的点云的时间系列。根据观看条件,可以考虑两种体积视频。第一种(即,完整的6dof)允许在视频内容中完全自由导航,而第二种(又称3dof+)将用户查看空间限制到称为查看边界框的有限体积内,从而允许有限的头部平移和视差体验。这第二个上下文是自由导航和就座观众的被动查看条件之间的宝贵权衡。
8.除了体积视频的特定情况外,3d场景或体积内容的深度信息的编码和解码可能是个问题,尤其是当要编码的深度值的范围大并且可用于编码的位深度不提供有足够量的编码值时。


技术实现要素:

9.以下给出了本原理的简化发明内容,以提供对本原理某些方面的基本理解。本发明内容不是本原理的广泛概述。它并不旨在识别本原理的关键或重要元素。以下发明内容仅以简化形式给出了本原理的一些方面,作为下面提供的更详细描述的序言。
10.本原理涉及一种用于对代表点云的点与位于点云内的第一点之间的距离的数据进行编码的方法。该方法包括通过使用由第三点、给定角度和误差值定义的量化函数来量化代表第一和第二点之间的距离的值。量化函数可以被定义成使得被量化值和误差值之和的去量化生成第四点;第四、第三、第二点的角度小于或等于给定角度。当值被量化时,该方法在与代表量化函数的元数据相关联的数据流中对这个被量化值进行编码。在实施例中,量化函数是编码器和解码器都已知的参数化函数,因此,元数据包括给定角度和/或误差值和/或第三点的坐标,或者在变体中,第一点与第三点之间的距离。在另一个实施例中,元数据包括响应于量化函数的逆的查找表。
11.本原理还涉及由实现这种方法的设备生成的数据流。数据流包括代表被量化值的数据,被量化值代表点云的点与位于点云内的第一点之间的距离;该距离已经通过使用由第三点、给定角度和误差值定义的量化函数被量化。
12.本原理还涉及一种用于对代表点云的点与点云内的第一点之间的距离的数据进行解码的方法。该方法包括从数据流解码被量化值和相关联的元数据。元数据包括代表由第三点、给定角度和误差值定义的量化函数的数据。该方法通过使用这个量化函数的逆来进一步去量化所提取的被量化值。在实施例中,逆量化函数是编码器和解码器都已知的参数化函数,因此,元数据包括给定角度和/或坐标和/或第三点的误差值,或者在变体中,第一点与第三点之间的距离。在这个实施例中,在解码侧,逆量化函数由这些参数初始化。在变体中,如果为这些参数之一确定了默认值,那么这些参数中的一些是可选的。在另一个实施例中,元数据包括响应于量化函数的逆的查找表。距离实际值是通过在表中查找被量化值来获得的。
13.本原理还涉及包括被配置用于实现此类方法的处理器的设备。
附图说明
14.通过阅读以下描述,将更好地理解本公开,并且将出现其它具体特征和优点,本描述参考附图,其中:
15.‑
图1示出了根据本原理的非限制性实施例的对象的三维(3d)模型和与该3d模型对应的点云的点;
16.‑
图2示出了根据本原理的非限制性实施例的代表3d场景序列的数据的编码、传输和解码的非限制性示例;
17.‑
图3示出了根据本原理的非限制性实施例的设备的示例体系架构,该设备可以被配置为实现关于图8和9描述的方法;
18.‑
图4示出了根据本发明的非限制性实施例的当数据通过基于分组的传输协议被传输时流的语法的实施例的示例;
19.‑
图5图示了根据本原理的非限制性实施例的从中心视点看的球面投影;
20.‑
图6示出了根据本原理的非限制性实施例的投影映射的示例,该投影映射包括从投影中心(又称为第一点)可见的3d场景的点的深度信息;
21.‑
图7图示了根据本原理的非限制性实施例的如何根据3d场景中的第二视点感知量化误差;
22.‑
图8图示了根据本原理的非限制性实施例的对代表3d场景的点的深度的数据进行编码的方法;
23.‑
图9图示了根据本原理的非限制性实施例的对代表3d场景的点与3d场景内的第一点之间的距离的数据进行解码的方法;
具体实施方式
24.在下文中将参考附图更全面地描述本原理,在附图中示出了本原理的示例。但是,本原理可以以许多替代形式来实施,并且不应当被解释为限于本文阐述的示例。因而,虽然本原理易于有各种修改和替代形式,但是其具体示例通过附图中的示例示出,并且将在本文中进行详细描述。但是,应当理解的是,无意将本发明原理限于所公开的特定形式,相反,本发明将覆盖落入如权利要求定义的本发明原理的精神和范围内的所有修改、等同形式和替代形式。
25.本文使用的术语仅出于描述特定示例的目的,而无意于限制本原理。如本文所使用的,单数形式“一”、“一个”和“该”也意图包括复数形式,除非上下文另外明确指出。将进一步理解的是,当在本说明书中使用时,术语“包括”和/或“包含”指定所述特征、整数、步骤、操作、元素和/或组件的存在。但不排除一个或多个其它特征、整数、步骤、操作、元素、组件和/或其组的存在或添加。而且,当元件被称为“响应于”或“连接到”另一个元件时,它可以直接响应于或连接到另一个元件,或者可以存在中间元件。相反,当元件被称为“直接响应于”或“直接连接到”其它元件时,不存在中间元件。如本文所使用的,术语“和/或”包括相关联的所列项目中的一个或多个的任何和所有组合,并且可以缩写为“/”。
26.将理解的是,虽然本文可以使用术语第一、第二等来描述各种元素,但是这些元素不应受到这些术语的限制。这些术语仅用于区分一个元素与另一个元素。例如,在不脱离本原理的教导的情况下,第一元素可以被称为第二元素,并且类似地,第二元素可以被称为第一元素。
27.虽然一些图在通信路径上包括箭头以示出通信的主要方向,但是应该理解的是,通信可以在与所描绘的箭头相反的方向上发生。
28.关于框图和操作流程图描述了一些示例,其中每个方框表示电路元件、模块或代码的部分,其包括用于实现(一个或多个)指定的逻辑功能的一个或多个可执行指令。还应当注意的是,在其它实施方式中,在方框中指出的(一个或多个)功能可以不按指出的次序发生。例如,取决于所涉及的功能,连续示出的两个方框实际上可以基本上并发地执行,或者有时可以以相反的次序执行。
29.本文中对“根据示例”或“在示例中”的引用是指结合示例描述的特定特征、结构或
特点可以包括在本原理的至少一个实施方式中。在说明书中各个地方出现的短语“根据示例”或“示例”不一定全部是指同一个示例,也不是必须与其它示例相互排斥的单独或替代示例。
30.出现在权利要求中的附图标记仅仅是说明性的,并且对权利要求的范围没有限制作用。虽然没有明确描述,但是可以以任何组合或子组合来采用本示例和变型。
31.根据本公开的非限制性实施例,本文提出了对代表3d场景的点的深度的数据进行编码和解码的方法和设备。根据本原理,3d场景中的点的深度是这个点与给定点(本文称为第一点或投影中心)之间的距离(例如,笛卡尔参考系中的欧几里得距离)。将要编码的3d场景的一部分投影到相对于投影中心的图像平面上。中心投影操作与映射操作结合使用,例如球体映射投影(例如,等距柱状投影(erp)或cassini投影或正弦投影)或立方体映射投影(根据立方体的刻面的不同布局)或金字塔映射投影。在本公开的上下文中,深度数据被量化并存储为图像数据,即,作为2d矩阵、像素的阵列。此类图像被压缩,传输到解码器,解码器对它们进行解压缩。
32.点p0被投影到图像平面上并且其深度被存储为实数(即,由浮点值表示)。量化是将输入从连续的或以其它方式大的值(诸如实数)集合限制到离散集合(诸如整数的区间,通常介于0和n之间)的过程。因此,当要量化的值的数量大于n时,量化引入精度的损失。在编码时,距离d0根据量化函数被量化为值v0,而在解码时,值v0根据逆量化函数被解量化为距离d1。然后在距投影中心的距离d1处对点p1进行去投影。
33.压缩

解压操作在被量化值中引入一些误差。例如,在压缩

解压缩之后,被量化值v0可以在v0

δ和v0+δ之间存储(vault)值v2,其中δ=1或2或10。根据逆量化函数,这个值v2在距离d2中被去量化。因此,代替点p1,点p2在距投影中心的距离为d2处在经过投影中心的同一条线上进行去投影。误差(dl

d2)取决于量化函数。此外,p1与p2之间的位置的误差根据观察它们的视点a的位置而被不同地感知。实际上,角度确定从a处查看到的p1与p2之间的位置的差异。例如,已知在称为人类视敏度的角度γ=0.5'(半弧分)下,人眼无法区分3d空间中的两个不同点。
34.根据本原理的非限制性实施例,代表3d场景的点与3d场景内的第一点之间的距离的数据被编码在数据流中。这些深度数据通过使用根据第二点、给定角度和误差值定义的量化函数进行量化,使得两个被量化值之间的误差值的差异导致所述第二点处的误差角度低于所述给定角度。深度数据表示点p1与投影中心之间的距离。压缩之前用于点p的深度数据的被量化值与解压之后同一数据的被量化值之间的误差值的差异(例如,1、3或7的差异)导致这个数据在不同距离处的去投影,并将点p2设置为更远离或更接近投影中心。给定点a处的误差角度是由于被量化值的误差值而在这个给定点处形成的角度根据本原理,量化函数被确定为保证:对于3d场景中给定的第二点,当被量化值的误差是称为误差值的给定级别时误差角度将不超过(根据预期精度选择的)给定角度。
35.图1示出了对象的三维(3d)模型10和与该3d模型10对应的点云11的点。3d模型10和点云11可以例如与包括其它对象的3d场景的对象的可能的3d表示对应。模型10可以是3d网表示,并且点云11的点可以是网的顶点。点云11的点也可以是散布在网的面的表面上的点。模型10也可以表示为点云11的拼贴版本,模型10的表面是通过拼贴点云11的点创建的。
模型10可以用许多不同的表示(诸如体素或样条)来表示。图1图示了一个事实,即,可以用3d对象的表面表示定义点云,并且可以从云的点生成3d对象的表面表示。如本文所使用的,将3d对象的点(通过3d场景的扩展点)投影到图像上等同于投影这个3d对象的任何表示,例如点云、网、样条模型或体素模型。
36.点云可以在存储器中表示,例如,作为基于向量的结构,其中每个点在视点的参考系(例如,三维坐标xyz)中具有其自己的坐标,或立体角和与视点的距离(也称为深度)和一个或多个属性,也称为分量。分量的示例是可以在各种颜色空间中表达的颜色分量,例如rgb(红、绿和蓝)或yuv(y是亮度分量,uv是两个色度分量)。点云是包括对象的3d场景的表示。可以从给定的视点或视点范围看到3d场景。点云可以通过许多方式获得,例如:
37.·
从由一组相机拍摄的真实对象的捕获,可选地辅以深度有源感测设备;
38.·
从由建模工具中的一组虚拟相机拍摄的虚拟/合成对象的捕获;
39.·
从真实和虚拟对象的混合。
40.图2示出了代表3d场景序列的数据的编码、传输和解码的非限制性示例。例如并且同时编码格式可以对于3dof、3dof+和6dof解码兼容。
41.获得3d场景序列20。由于图片序列是2d视频,因此3d场景序列是3d(也称为体积)视频。可以向体积视频渲染设备提供3d场景序列以进行3dof、3dof+或6dof渲染和显示。
42.3d场景序列20被提供给编码器21。编码器21将一个3d场景或3d场景序列作为输入并提供代表该输入的位流。位流可以存储在存储器22中和/或电子数据介质上并且可以通过网络22传输。代表3d场景序列的位流可以由解码器23从存储器22读取和/或从网络22接收。解码器23由所述位流输入并提供3d场景序列,例如以点云格式。
43.编码器21可以包括实现若干步骤的若干电路。在第一步中,编码器21将每个3d场景投影到至少一个2d图片上。3d投影是将三维点映射到二维平面的任何方法。由于用于显示图形数据的大多数当前方法基于平面(来自若干位平面的像素信息)二维媒体,因此这种类型的投影的使用非常广泛,尤其是在计算机图形学、工程设计和绘图中。投影电路211为序列20的3d场景提供至少一个二维帧2111。帧2111包括代表投影到帧2111上的3d场景的深度信息。在变体中,代表3d场景的点的颜色信息的颜色信息也被投影并存储在帧2111的像素中。在另一个变体中,颜色和深度信息被编码在两个分离的帧2111和2112中。例如,图1的3d场景10的点仅包括深度信息。没有纹理附加到模型,3d场景的点没有颜色分量。在任何情况下,都要求深度信息在3d场景的表示中进行编码。
44.元数据212由投影电路211使用和更新。元数据212包括关于投影操作的信息(例如,投影参数)以及关于颜色和深度信息在帧2111和2112内被组织的方式的信息,如关于图5至7所描述的。根据本原理,元数据包括代表用于对深度信息进行编码的逆量化函数的信息。
45.视频编码电路213将帧2111和2112的序列编码为视频。3d场景的图片2111和2112(或3d场景的图片序列)由视频编码器213编码在流中。然后视频数据和元数据212被数据封装电路214封装在数据流中。
46.编码器213例如符合诸如以下的编码器:
47.‑
jpeg,规范iso/cei 10918

1uit

t建议t.81,https://www.itu.int/rec/t

rec

t.81/en;
48.‑
avc,也称为mpeg

4avc或h264。在uit

t h.264和iso/cei mpeg

4第10部分(iso/cei 14496

10)中指定,http://www.itu.int/rec/t

rec

h.264/en、hevc(其规范可在itu网站上找到,t建议,h系列,h265,http://www.itu.int/rec/t

rec

h.265

201612

een);
49.‑
3d

hevc(hevc的扩展,其规范在itu网站、t推荐、h系列、h265、http://www.itu.int/rec/t

rec

h.265

201612

i/en附录g和i中找到);
50.‑
谷歌开发的vp9;或者
51.‑
由开放媒体联盟开发的av1(aomedia video 1)。
52.数据流存储在可由解码器23例如通过网络22访问的存储器中。解码器23包括实现不同解码步骤的不同电路。解码器23采用由编码器21生成的数据流作为输入并提供要由体积视频显示设备(如头戴式设备(hmd))渲染和显示的3d场景序列24。解码器23从源22获得流。例如,源22属于集合,包括:
53.‑
本地存储器,例如视频存储器或ram(或随机存取存储器)、闪存、rom(或只读存储器)、硬盘;
54.‑
存储接口,例如与大容量存储装置、ram、闪存、rom、光碟或磁性载体的接口;
55.‑
通信接口,例如有线接口(例如总线接口、广域网接口、局域网接口)或无线接口(诸如ieee 802.11接口或接口);以及
56.‑
用户接口,诸如使用户能够输入数据的图形用户界面。
57.解码器23包括用于提取在数据流中编码的数据的电路234。电路234将数据流作为输入并提供与编码在流中的元数据212和二维视频对应的元数据232。根据本原理,元数据232包括代表逆量化函数的信息以用于检索3d场景的点的深度。在本公开的上下文中,点的深度与要去投影的点与投影中心之间的距离对应。投影中心的坐标包括在元数据232中或被默认定义,例如在3d场景的3d空间的参考系的原点处。视频由提供帧序列的视频解码器233解码。解码的帧包括深度信息。由于压缩

解压缩过程,解码之后深度的被量化值可以与编码时的深度的被量化值不同。在变体中,解码的帧包括深度信息和颜色信息。在另一个变体中,视频解码器233提供两个帧序列,一个包括颜色信息,另一个包括深度信息。电路231使用元数据232来检索逆量化函数和去投影深度信息以及最终来自解码的帧的颜色信息以提供3d场景序列24。3d场景序列24与3d场景序列20对应,可能损失与编码为2d视频和视频压缩相关的精度。通过将3d场景投影到视口的图像平面上,从当前视点渲染被解码序列24的3d场景。
58.图3示出了设备30的示例体系架构,其可以被配置为实现关于图8和9描述的方法。图2的编码器21和/或解码器23可以实现这个体系架构。可替代地,编码器21和/或解码器23的每个电路可以是根据图3的体系架构的设备,例如经由它们的总线31和/或经由i/o接口36链接在一起。
59.设备30包括以下元件,这些元件通过数据和地址总线31链接在一起:
60.‑
微处理器32(或cpu),例如,dsp(或数字信号处理器);
61.‑
rom(或只读存储器)33;
62.‑
ram(或随机存取存储器)34;
63.‑
存储接口35;
64.‑
i/o接口36,用于接收来自应用的要传输的数据;以及
65.‑
电源,例如电池。
66.根据示例,电源在设备外部。在每个提到的存储器中,说明书中使用的词“寄存器”可以与容量小的区域(几位)或者与非常大的区域(例如整个程序或大量接收或解码的数据)对应。rom 33包括至少程序和参数。rom 33可以存储算法和指令以执行根据本原理的技术。在接通电源后,cpu 32将程序上传到ram中并执行对应的指令。
67.ram 34在寄存器中包括由cpu 32执行并在设备30接通电源后上传的程序、寄存器中的输入数据、寄存器中处于方法的不同状态的中间数据以及寄存器中其它用于执行方法的变量。
68.本文描述的实施方式可以例如以方法或处理、装置、计算机程序产品、数据流或信号来实现。即使仅在单一形式的实施方式的上下文中进行讨论(例如,仅作为方法或设备进行讨论),所讨论的特征的实施方式也可以以其它形式(例如程序)实现。装置可以例如以适当的硬件、软件和固件来实现。该方法可以在例如装置中实现,诸如例如处理器,其是指处理设备,一般而言包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备,诸如例如计算机、蜂窝电话、便携式/个人数字助理(“pda”)和其它促进最终用户之间的信息通信的设备。
69.根据示例,设备30被配置为实现关于图8和9描述的方法,并且属于包括以下的集合:
70.‑
移动设备;
71.‑
通信设备;
72.‑
游戏设备;
73.‑
平板电脑(或平板计算机);
74.‑
膝上型计算机;
75.‑
静止图片相机;
76.‑
摄像机;
77.‑
编码芯片;
78.‑
服务器(例如,广播服务器、视频点播服务器或web服务器)。
79.图4示出了当通过基于分组的传输协议传输数据时流的语法的实施例的示例。图4示出了体积视频流的示例结构4。该结构包含在容器中,该容器以独立的语法元素组织流。该结构可以包括头部部分41,其是流的每个语法元素共有的数据的集合。例如,头部部分包括关于语法元素的元数据中的一些,描述每个元素的性质和作用。头部部分还可以包括图2的元数据212的一部分,例如用于将3d场景的点投影到帧2111和2112上的中心视点的坐标。该结构包括有效载荷,其包括语法元素42和语法的至少一个语法元素43。语法元素42包括代表颜色和深度帧的数据。图像可以已根据视频压缩方法进行了压缩。
80.语法元素43是数据流的有效载荷的一部分并且可以包括关于如何对语法元素42的帧进行编码的元数据,例如用于将3d场景的点投影和打包到帧上的参数。此类元数据可以与视频的每一帧或帧的组(在视频压缩标准中也称为图片组(gop))相关联。
81.图5图示了从中心视点50的球面投影。在图5的示例中,3d场景包括三个对象52、53和54。根据视点50,对象52的点形成具有前侧和后侧的表面。对象42的后侧点从视点50是不可见的。根据视点50,对象53和54的点形成具有前侧的表面。对象53的点从视点50是可见
的,但是由于对象53的表面的遮挡,从该视点仅对象54的点的一部分是可见的。因此,球面投影(例如,等距柱状投影erp)不将3d场景的每个点都投影到帧上。可以使用许多其它类型的投影,如透视投影或正交投影。例如,从视点50可见的点云的点根据投影方法投影在投影映射51上。关于图5的示例,投影方法是球面投影,例如纬度/经度投影或等距柱状投影(又称为erp),因此投影映射在图5上表示为球体51。在变体中,投影方法是立方体投影方法、金字塔投影方法或任何以视点50为中心的投影方法。对象52的前侧的点被投影在投影映射的区域55中。对象52的后侧点不投影,因为它们从视点50不可见。对象53的每个点从视点50都是可见的。它们根据投影方法投影在投影映射51的区域56上。在实施例中,从视点50只能看到对象54的点的一部分。对象54的可见点被投影在投影映射51的区域57上。存储在投影映射51的像素中的信息与3d场景中的被投影点与投影中心50之间的距离对应。在变体中,被投影点的颜色分量也存储在投影映射51的像素中。
82.图6示出了根据本原理的非限制性实施例的包括从投影中心(又称为第一点)可见的3d场景的点的深度信息的投影映射60的示例。在图6的示例中,距3d场景的点的投影中心越远,图像60中的像素越亮。要存储在图像60的像素中的距离以灰度级(即,以属于0和n=2
n

1之间的间隔的整数;n是编码位深度(即,用于编码该整数值的位数,对于hevc编解码器通常是8、10或12))量化。在图6的示例中,深度被编码为10位,因此,像素存储介于0和1023之间的值。例如,在图6的示例中,深度信息从z
min
=0.5米到z
max
=28米。有多于1024个不同的距离,并且必须使用量化函数将实数值转换成离散值。仿射变换eq1或逆函数eq2是量化深度实数值z的可能量化函数:
[0083][0084][0085]
但是,这种量化在感知上不一致,而是场景驱动的,因为本质上取决于z
min
和z
max

[0086]
图7图示了如何根据3d场景中的第二视点感知量化误差。在图7的示例中,点71被投影到投影映射的图像平面上。球体72表示视区,也称为查看边界框,在3dof+场景的上下文中,用户可以从该视区看到3d场景。球体72也可以表示投影映射。点71和第一点73(即,投影中心)之间的距离74,我们称为z,由量化函数f量化,并且量化值v存储在投影映射的像素中。投影映射由图像编解码器压缩并在解码侧被解压缩,如图2所示。值v可以已通过这个压缩

解压缩过程移位成值v',例如加或减1、5或8。第一点73与去投影点76之间的距离是通过将逆量化函数应用于值v'来确定的。距离74与点76与73之间的距离之间的差量75是由于压缩误差引起的。差量75取决于逆量化函数,因此也取决于量化函数。从第一点73观察,差量75仅在点76与其包围去投影点的邻居之间的关系中是可感知的。但是,从视区的另一个点(例如,点77)观察,差量75被自身感知,因为点71与76的位置之间的这个差量形成指向点77的角度78。角度78越大,由压缩误差生成的视觉伪影越大。角度78被称为点77处的误差角。
[0087]
根据本原理,量化函数被选择和参数化以便保持角度78低于3d空间中第二点的预定角度γ。例如,在为3d场景的给定3dof+渲染定义的视区中选择第二点77或79。例如,角度γ被设置为与大约半弧分的已知人类视敏度对应的值。根据量化在预期压缩误差级别上的
预期稳健性,可以将角度γ设置为任何角度值。在这个上下文中,根据用户在视区中的位置,相关联的误差角78,本文中称为φ(z),在用户站在投影中心时可以为零,而当他站在点a时可以明显更大。在图7的示例中,视区是球体,并且可以证明φ(z)的最大值是在界定球体的前边界处的点处获得的。在区受限的视点(即,3dof+渲染)的情况下,这个特性是重要的,以设计防止用户在视区内体验视觉伪影的专用的深度量化定律(即,函数)。如果我们称φ
max
(z)是φ(z)在视区上的最大值,那么量化定律应当确保相关联的量化误差强制φ
max
(z)=γ,其中γ是为量化函数在压缩误差级别(例如,上文介绍的人类视敏度)上的预期稳健性的预定的角度。这样做确保不会从视区感知到由于压缩

解压缩过程引起的量化误差,因为任何相关联的误差角都保持低于可感知阈值。结果产生的量化定律仅取决于预定角度γ和第二点的坐标(例如位于视区中)。在变体中,代替第二点的坐标,量化函数可以取决于距第一点的距离。这等同于根据以第一点为中心的球体上的任何点(例如图7的点79)定义量化函数。
[0088]
这种量化定律在最优位置(其中φ(z)=φ
max
(z))不可通过分析易控制,但量化离散表可以通过数值获得。例如,对于距投影73的中心距离为r的点79,对于强制点79处的误差角度低于值误差为1的预定角度γ的量化函数(即,值v的解压缩值是v+1或v

1),可以通过eq3获得良好的近似。
[0089][0090]
其中k是常数,它被设置为使对于最大的预定深度值,q
p
(z)=0。遵循这些准则的量化函数的定义取决于上下文。为第二点寻找良好的候选取决于视区的形状和尺寸。所选择的函数并不总是像图7的示例那样易控制。换句话说,编码器和解码器必须知道可参数化的函数,并且编码器处的选择的参数必须编码在与格式化流中的3d场景相关联的元数据中,以便在解码侧被检索。在另一个实施例中,响应于逆量化函数的查找表(lut)在编码器处被构建并且被编码在与代表3d场景的图像相关联的元数据中。查找表是将被量化值区间的每个值与距离实际值相关联的信息。这个实施例的优点在于解码器不需要预先知道逆量化函数。解码器从流中提取lut,并通过使用这个lut从量化的深度中检索实际深度。由于量化函数已被确定为强制第二点处的误差角(如上定义)低于针对值误差e的预定角度γ,因此编码为lut的逆量化函数也强制执行相同的准则。
[0091]
在用于3dof+渲染场景的3d场景或3d场景序列的编码和解码的上下文中,本原理的优点是,对于场景的视区内的任何视点,保证低于预定级别(例如低于人类视敏度)的感知到的量化误差。
[0092]
图8图示了根据本原理的非限制性实施例的对代表3d场景的点的深度的数据进行编码的方法。在步骤81处,从源获得深度数据,并通过使用根据第二点、给定角度和误差值确定的量化函数进行量化,使得两个量化值之间的所述误差值的差异导致第二点处的误差角低于给定角度。深度数据被量化并存储在用图像或视频编解码器压缩的图像的像素中。在步骤82处,压缩图像与代表量化函数的逆的元数据相关联地编码在数据流中。在实施例中,逆量化函数是编码器和解码器都已知的参数化函数。在这个实施例中,元数据包括第二点的角度和/或误差值和/或坐标或第一点与第二点之间的距离。如果这些元数据是由解码器预先确定和先验已知的,那么这些元数据是可选的。在另一个实施例中,将每个可能的量
化的值与由量化函数确定的距离相关联的查找表被生成并与压缩图像相关联地编码在数据流中。
[0093]
图9图示了对代表3d场景的点与3d场景内的第一点之间的距离的数据进行解码的方法。在步骤91处,从流中获得代表3d场景的几何形状的编码数据的数据流。从数据流中提取代表逆量化函数的压缩图像和元数据。图像被解压缩。在步骤92处,通过将量化的值应用于逆量化函数来检索包括在解压缩的图像的像素中的深度信息的真实值。3d场景的点被去投影,即,在根据图像中像素的坐标和用于生成图像的投影操作确定的方向上,在距第一点的去量化距离处设置。在实施例中,逆量化函数是编码器和解码器都已知的参数化函数。元数据包括初始化函数所需的参数:角度和/或误差值和/或第二点的坐标或第一点与第二点之间的距离。如果这些元数据是由解码器预先确定和先验已知的,那么这些元数据是可选的。在另一个实施例中,逆量化函数被编码为元数据中的查找表。根据存储在像素中的量化的值,直接从这个查找表中检索距离实际值。
[0094]
本文描述的实施方式可以在例如方法或过程、装置、计算机程序产品、数据流或信号中实现。即使仅在单一实现形式的上下文中进行讨论(例如,仅作为方法或设备进行讨论),所讨论的特征的实施方式也可以以其它形式(例如,程序)来实现。装置可以在例如适当的硬件、软件和固件中实现。方法可以在例如诸如处理器之类的装置中实现,处理器泛指处理设备,包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备,诸如例如智能电话、平板电脑、计算机、移动电话、便携式/个人数字助理(“pda”)以及促进最终用户之间信息通信的其它设备。
[0095]
本文描述的各种过程和特征的实施方式可以实施在各种不同的装备或应用中,特别是例如与数据编码、数据解码、视图生成、纹理处理以及图像和相关纹理信息和/或深度信息的其它处理相关联的装备或应用。此类装备的示例包括编码器、解码器、处理来自解码器的输出的后处理器、向编码器提供输入的预处理器、视频编码器、视频解码器、视频编解码器、web服务器、机顶盒、膝上型计算机、个人计算机、电话、pda和其它通信设备。如应当清楚的,装备可以是移动的,并且甚至可以安装在移动车辆中。
[0096]
此外,方法可以通过由处理器执行的指令来实现,并且此类指令(和/或由实施方式产生的数据值)可以存储在处理器可读介质上,例如,集成电路、软件载体或其它存储设备(诸如例如硬盘、压缩盘(“cd”)、光碟(诸如例如dvd,常常称为数字多功能碟或数字视频碟)、随机存取存储器(“ram”)或只读存储器(“rom”)。指令可以形成有形地实施在处理器可读介质上的应用程序。指令可以是例如硬件、固件、软件或其组合。指令可以在例如操作系统、单独的应用或两者的组合中找到。因此,处理器的特征可以在于例如被配置为执行处理的设备和包括具有用于执行处理的指令的处理器可读介质(诸如存储设备)的设备。另外,除了或替换指令,处理器可读介质还可以存储由实施方式产生的数据值。
[0097]
对于本领域技术人员将显而易见的是,实施方式可以产生各种信号,这些信号被格式化以携带例如可以被存储或传输的信息。信息可以包括例如用于执行方法的指令或由所描述的实施方式之一产生的数据。例如,信号可以被格式化为携带用于写入或读取所述实施例的语法的规则作为数据,或者携带由所述实施例写入的实际语法值作为数据。这种信号可以被格式化为例如电磁波(例如,使用频谱的射频部分)或基带信号。格式化可以包括例如对数据流进行编码并且利用编码的数据流来调制载波。信号携带的信息可以是例如
模拟或数字信息。如已知的,信号可以通过各种不同的有线或无线链路传输。信号可以存储在处理器可读介质上。
[0098]
已经描述了许多实施方式。不过,将理解的是,可以进行各种修改。例如,不同实施方式的元素可以被组合、补充、修改或移除以产生其它实施方式。此外,本领域普通技术人员将理解的是,可以用其它结构和处理替换所公开的结构和处理,并且结果产生的实施方式将以至少基本上相同的(一种或多种)方式执行至少基本上相同的(一个或多个)功能,以实现至少与所公开的实施方式基本上相同的(一个或多个)结果。因而,本技术考虑这些和其它实施方式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1