CN110892453B - 使用图像/视频编解码器的点云和网格压缩 - Google Patents
使用图像/视频编解码器的点云和网格压缩 Download PDFInfo
- Publication number
- CN110892453B CN110892453B CN201880046388.5A CN201880046388A CN110892453B CN 110892453 B CN110892453 B CN 110892453B CN 201880046388 A CN201880046388 A CN 201880046388A CN 110892453 B CN110892453 B CN 110892453B
- Authority
- CN
- China
- Prior art keywords
- point cloud
- frame
- dimensional
- point
- geometry
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000006835 compression Effects 0.000 title description 35
- 238000007906 compression Methods 0.000 title description 35
- 238000004891 communication Methods 0.000 claims description 30
- 238000013507 mapping Methods 0.000 claims description 28
- 238000002310 reflectometry Methods 0.000 claims description 5
- 238000000034 method Methods 0.000 abstract description 39
- 230000015654 memory Effects 0.000 description 29
- 238000012545 processing Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 20
- 230000005540 biological transmission Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 238000012856 packing Methods 0.000 description 11
- 239000000284 extract Substances 0.000 description 10
- 230000006837 decompression Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000002085 persistent effect Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004886 head movement Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 238000002567 electromyography Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
公开了解码设备、编码设备和用于点云编码的方法。所述方法包括从三维点云生成多个二维帧,所述二维帧至少包括表示三维点云中的点的几何形状的第一帧和表示三维点云中的点的纹理的第二帧。所述方法还包括生成占用图,所述占用图指示表示三维点云中的点的二维帧中的像素的位置。所述方法还包括对二维帧和占用图进行编码以生成压缩的比特流。所述方法还包括发送压缩的比特流。
Description
技术领域
本公开一般涉及图像处理。更具体地,本公开涉及用于压缩和解压缩点云(pointcloud)的装置和方法。
背景技术
由于功能强大的手持设备(诸如智能电话)已经可用,三百六十度(360°)视频作为体验沉浸式视频的新方法正在出现。360°视频通过捕捉世界的360°景象,使得消费者能够有沉浸式的“真实生活”、“身临其境”的体验。用户可以交互地改变其视点,并动态查看他们想要的捕获场景或对象的任何部分。显示器和导航传感器实时跟踪头部运动,以确定用户想要观看的360°视频区域。360°视频可提供三自由度(3DoF)的沉浸式体验。(6DoF)是沉浸式体验的下一个等级,在(6DoF)中用户可以在虚拟/增强环境中转头并四处走动。本质上为3维的多媒体数据(诸如点云)是提供6DoF体验所需要的。
点云和网格(mesh)是表示对象的表面或场景的模型的三维(3-D)点的集合。点云在各种应用中都很常见,所述各种应用诸如游戏、3-D地图、可视化、医疗应用、增强现实(AR)、虚拟现实(VR)、自动驾驶、多视图重播、6DoF沉浸式媒体等。如果不压缩,点云通常需要大量带宽来进行传输。因此,比特率要求更高,因此在点云的传输之前进行压缩是有必要的。点云的压缩硬件和过程不同于用于传统的二维(2-D)多媒体的传统的压缩硬件和过程。
发明内容
技术问题
本公开提供使用图像/视频编解码器的点云和网格压缩。
技术方案
在第一实施例中,提供了一种用于点云解码的解码设备。所述解码设备包括通信接口和可操作地耦合到通信接口的处理器。通信接口被配置为接收压缩的比特流。处理器被配置为将压缩的比特流解码为二维帧和占用图,其中二维帧至少包括表示三维点云中的点的几何形状(geometry)的第一帧和表示三维点云中的点的纹理的第二帧。处理器还被配置为识别占用图,所述占用图指示表示三维点云中的每个点的二维帧中的像素的位置。处理器还被配置为使用占用图从二维帧生成三维点云。
在另一实施例中,提供了一种用于点云编码的编码设备。所述编码设备包括处理器和可操作地耦合到处理器的通信接口。处理器被配置为从三维点云生成多个二维帧,二维帧至少包括表示三维点云中的点的几何形状的第一帧和表示三维点云中的点的纹理的第二帧。处理器还被配置为生成占用图,占用图指示表示三维点云中的点的二维帧中的像素的位置。处理器还被配置为对二维帧和占用图进行编码以生成压缩的比特流。通信接口被配置为发送压缩的比特流。
在又一实施例中,提供了一种用于编码的方法。所述方法包括从三维点云生成多个二维帧,二维帧至少包括表示三维点云中的点的几何形状的第一帧。所述方法还包括生成用于点云属性(诸如,颜色、纹理、法线、反射率)的其他二维帧。此外,所述方法包括生成占用图,占用图指示表示三维点云中的点的二维帧中的像素的位置。所述方法还包括对二维帧和占用图进行编码以生成压缩的比特流。所述方法还包括发送压缩的比特流。
根据以下附图、描述和权利要求书,其他技术特征对于本领域技术人员而言是显而易见的。
在进行下面的详细描述之前,阐述整个专利文件中使用的某些词语和短语的定义可能是有利的。术语“耦合”及其派生词是指两个或更多个元素之间的任何直接或间接通信,无论那些元素是否彼此物理接触。术语“发送”、“接收”和“通信”及其派生词涵盖直接通信和间接通信。术语“包括”和“包含”及其派生词意味着包括但不限于。术语“或”是包括性的,意味着和/或。短语“与...相关联”及其派生词意味着包括、包括在…内、与…互连、包含、包含在…内、连接到…或与…连接、耦合到或与…耦合、可与…通信、与…协作、交织、并置、与…接近、绑定到或与…绑定、具有、具有…的性质、具有与…的关系等等。术语“控制器”意味着控制至少一个操作的任何设备、***或其一部分。这样的控制器可以以硬件或硬件和软件和/或固件的组合来实施。与任何特定控制器相关联的功能可以是集中式或分布式的,无论是本地还是远程的。短语“…中的至少一个”当与项目的列表一起使用时,意味着可以使用所列项目的一个或多个的不同组合,并且可能只需要列表中的一个项目。例如,“A、B和C中的至少一个”包括以下组合中的任何一个:A、B、C、A和B、A和C、B和C以及A和B和C。
此外,以下描述的各种功能可以由一个或多个计算机程序实施或支持,每个计算机程序由计算机可读程序代码形成并体现在计算机可读介质中。术语“应用”和“程序”是指适配为实施在合适的计算机可读程序代码中一个或多个计算机程序、软件组件、指令集、过程、功能、对象、类、实例、相关数据或其一部分。短语“计算机可读程序代码”包括任何类型的计算机代码,包括源代码、目标代码和可执行代码。短语“计算机可读介质”包括能够由计算机访问的任何类型的介质,诸如只读存储器(ROM)、随机存取存储器(RAM)、硬盘驱动器、光盘(CD)、数字视频盘(DVD)或任何其他类型的存储器。“非暂时性”计算机可读介质不包括传输瞬时电信号或其他信号的有线链路、无线链路、光学链路或其他通信链路。非暂时性计算机可读介质包括可在其中永久存储数据的介质以及可在其中存储数据并随后覆盖所述数据的介质,诸如可重写光盘或可擦除存储器设备。
贯穿本专利文件提供了其他某些词语和短语的定义。本领域普通技术人员应该理解,在很多情况(即使不是大多数情况)下,这种定义也适用于这样定义的词语和短语的先前使用以及将来使用。
发明的有益效果
本公开的各种实施例提供了更有效的图像处理方案。
附图说明
为了更全面地理解本公开及其优点,现在参考以下结合附图进行的描述,其中相同的附图标记表示相同的部分:
图1示出了根据本公开的实施例的示例通信***;
图2示出了根据本公开的实施例的示例电子设备;
图3示出了根据本公开的实施例的示例电子设备;
图4示出了根据本公开的实施例的点云和示例网格;
图5A示出了根据本公开的实施例的编码器的示例框图;
图5B示出了根据本公开的实施例的解码器的示例框图;
图6A示出了根据本公开的实施例的编码器的示例框图;
图6B示出了根据本公开的实施例的解码器的示例框图;
图6C示出了根据本公开实施例的使用多个视频轨道的点云的2-D映射;
图7A示出了根据本公开的实施例的编码器的示例框图;
图7B示出了根据本公开的实施例的解码器的示例框图;
图8A示出了根据本公开的实施例的编码器的示例框图;
图8B示出了根据本公开的实施例的解码器的示例框图;
图9示出了根据本公开的实施例的二进制掩码(mask);
图10示出了根据本公开的实施例的示例光栅扫描;
图11A-图11C示出了根据本公开的实施例的按行展开的示例;
图12A-图12E示出了根据本公开的实施例的示例打包操作;
图13示出了根据本公开的实施例的用于对点云进行编码的示例流程图;和
图14示出了根据本公开的实施例的用于对点云进行解码的示例流程图。
具体实施方式
以下讨论的图1至图14以及用于描述本专利文件中的本公开的原理的各种实施例仅是说明性的,并且不应以任何方式解释为限制本公开的范围。本领域技术人员将理解,本公开的原理可以在任何适当布置的***或设备中实施。
虚拟现实(VR)是视觉和听觉场景的渲染版本。渲染被设计为在观察者或用户在由应用所定义的限制内移动时,尽可能自然地为观察者或用户模拟现实世界中的视觉和听觉感官刺激。例如,VR将用户置于与他们的头部运动互动的沉浸式世界中。在视频级别,VR是通过提供覆盖尽可能多的视场(FOV)的视频体验以及渲染的视频的观看角度与头部运动的同步来实施的。尽管许多不同类型的设备都能够提供这种体验,但是头戴式显示器是最受欢迎的。通常,头戴式显示器要么依赖于集成在设备中并与外部计算机一起运行的专用屏幕(需连线的),要么依赖于***HMD中的智能电话(无需连线的)。第一种方案利用轻巧的屏幕,并受益于高计算能力。相比之下,基于智能电话的***利用更高的移动性,并且生产成本不那么昂贵。在这两种情况下,视频体验相同地产生。
点云是类似于VR的对象的3-D表示。类似地,点网格是类似于VR的对象的3-D表示。通常,点云是由坐标系定义的数据点的集合。例如,在3-D笛卡尔坐标系中,点云的每个点都由三个坐标,X、Y和Z,标识。当每个点由三个坐标标识时,相对于X、Y和Z轴相交的原点,确定3-D空间中的精确位置。点云的点通常表示对象的外表面。点云的每个点由三个坐标和一些属性(诸如颜色、纹理坐标、强度、法线、反射率等)定义。
类似地,3D网格是与点云以及VR类似的对象的3-D表示。3-D网格示出由多边形构建的对象的外部结构。例如,3D网格是定义对象形状的顶点(vertice)、边(edge)和面(face)的集合。又例如,可以在球坐标系上或者在其中遍及整个球体来显示每个点的地方来渲染网格(或点云)。在某些实施例中,每个点可以位于球体内的X、Y,Z坐标,并且纹理坐标U和V指示图像的纹理的位置。当点云被渲染时,将网格的顶点、相应的纹理坐标和纹理图像输入到图形处理单元中,该图形处理单元将网格映射到3-D几何图形上。用户可以被放置在虚拟球体的中心,并观看360°场景的与视口(viewport)相对应的一部分。在某些实施例中,可以使用替代形状(诸如立方体、二十面体、八面体等)来代替球体。点云和3-D网格在下面参考图4被更详细地示出和讨论。
点云和网格通常用于各种应用,包括游戏、3-D映射、可视化、医学、增强现实、VR、自动驾驶、多视图重播、6自由度沉浸式媒体等。如在下文中使用的,术语“点云”也指“3-D点云”和“3-D网格”。
由于与单个点云相关联的数据的大小和复杂性,从一个电子设备向另一电子设备发送点云通常需要大量带宽。点云的传输通常需要特定的压缩技术以在传输之前减小数据的大小。例如,压缩点云可能需要专用硬件或特定压缩算法或其组合。用于点云的压缩算法不同于其他多媒体形式(诸如图像和视频、VR等)的压缩算法。
根据本公开的实施例,提供了用于使用视频编解码器执行点云压缩的架构。根据本公开的实施例,提供了用于使用图像编解码器执行点云压缩的架构。根据本公开的实施例,点云被解构(deconstructed),并且多个2-D帧被生成,其表示点云的每个点的几何形状,以及点云的各种属性。例如,点云可以被解构并被映射到2-D帧上。可以使用各种视频压缩或图像压缩或这两者来压缩2-D帧。
图1示出根据本公开的示例计算***100。图1所示的***100的实施例仅用于说明。在不脱离本公开的范围的情况下,可以使用***100的其他实施例。
***100包括网络102,其促进***100中的各个组件之间的通信。例如,网络102可以在网络地址之间通信传送因特网协议(IP)分组、帧中继帧、异步传输模式(ATM)信元或其他信息。网络102包括一个或多个局域网(LAN)、城域网(MAN)、广域网(WAN)、诸如因特网的全球网络的全部或一部分、或者一个或多个位置处的(多个)任何其他通信***。
网络102促进服务器104与各种客户端设备106-116之间的通信。客户端设备106-116可以是,例如,智能电话、平板计算机、膝上型计算机、个人计算机、可穿戴设备或头戴式显示器(HMD)。服务器104可以表示一个或多个服务器。每个服务器104包括可以为一个或多个客户端设备提供计算服务的任何合适的计算或处理设备。每个服务器104可以,例如,包括一个或多个处理设备、存储指令和数据的一个或多个存储器、以及促进通过网络102的通信的一个或多个网络接口。如下面更详细地描述的,服务器104向一个或多个用户发送点云。
每个客户端设备106-116表示通过网络102与至少一个服务器或(多个)其他计算设备进行交互的任何合适的计算或处理设备。在此示例中,客户端设备106-116包括桌上型计算机106、移动电话或移动设备108(诸如,智能电话)、个人数字助理(PDA)110、膝上型计算机112、平板计算机114和HMD 116。然而,可以在***100中使用任何其他客户端设备或附加客户端设备。
在此示例中,一些客户端设备108-116与网络102间接通信。例如,客户端设备108和110(分别为移动设备108和PDA 110)经由一个或多个基站118(诸如蜂窝基站或eNodeB(eNB))通信。移动设备108包括智能电话。而且,客户端设备112、114和116(分别是膝上型计算机、平板计算机和HMD)经由一个或多个无线接入点120(诸如IEEE 802.11无线接入点)进行通信。如下面更详细描述的,HMD 116可以显示点云的360°视图。注意,这些仅用于说明,并且每个客户端设备106-116可以与网络102直接通信,或者经由任何合适的(多个)中间设备或(多个)网络与网络102间接通信。在某些实施例中,服务器104或任何客户端设备106-114可用于压缩点云并将数据发送到另一客户端设备,诸如任何客户端设备106-116。
在某些实施例中,移动设备108(或任何其他客户端设备106-116)可以安全且高效地将信息发送到另一设备,诸如,例如,服务器104。移动设备108(或任何其他客户端设备106-116)在经由支架附接到头戴式设备(headset)时可以用作VR显示器,并且类似于HMD116地工作。移动设备108(或任何其他客户端设备106-116)可以触发其自身与服务器104之间的信息传输。
尽管图1示出了***100的一个示例,但是可以对图1进行各种改变。例如,***100可以以任何合适的布置包括任何数量的每个组件。通常,计算***和通信***具有各种各样的配置,并且图1不将本公开的范围限制为任何特定配置。虽然图1示出了其中可以使用在专利文件中公开的各种特征的一个操作环境,但是这些特征可以在任何其他合适的***中被使用。
本公开中提供的过程和***允许客户端设备106-116或服务器104压缩、发送、接收、渲染点云或其组合。例如,然后服务器104可以压缩点云数据并将其发送到客户端设备106-116。又例如,任何客户端设备106-116可以压缩点云数据并将其发送到任何客户端设备106-116。
图2和图3示出了根据本公开的实施例的计算***中的示例设备。具体地,图2示出了示例服务器200,并且图3示出了示例电子设备300。服务器200可以表示图1的服务器104,并且电子设备300可以表示图1的客户端设备106-116中的一个或多个。
服务器200可以表示一个或多个本地服务器、一个或多个压缩服务器或一个或多个编码服务器。如图2所示,服务器200包括总线***205,总线***205支持至少一个处理器210、至少一个存储设备215、至少一个通信接口220和至少一个输入/输出(I/O)单元225之间的通信。
处理器210执行可以存储在存储器230中的指令。存储在存储器230中的指令可以包括用于分解(decompose)点云、压缩点云的指令。存储在存储器230中的指令还可以包括用于对点云进行编码以便生成比特流的指令。存储在存储器230中的指令还可以包括用于在通过诸如图1的HMD 116的VR头戴式设备观看的全向360°场景上渲染点云的指令。处理器210可以包括任何合适的方式布置下的任何合适的(多个)数量和(多个)类型的处理器或其他设备。(多个)处理器210的示例类型包括微处理器、微控制器、数字信号处理器、现场可编程门阵列、专用集成电路和分立电路。
存储器230和永久储存器235是存储设备215的示例,存储设备215表示能够存储信息(诸如,临时或永久的数据、程序代码或其他合适信息)和促进信息的检索的任何(多个)结构。存储器230可以表示随机存取存储器或(多个)任何其他合适的易失性或非易失性存储设备。永久储存器235可以包括支持数据的长期存储的一个或多个组件或设备,诸如只读存储器、硬盘驱动器、闪存或光盘。
通信接口220支持与其他***或设备的通信。例如,通信接口220可以包括促进在图1的网络102上的通信的网络接口卡或无线收发器。通信接口220可以支持通过(多个)任何适当的物理或无线通信链路的通信。
I/O单元225允许数据的输入和输出。例如,I/O单元225可以提供用于通过键盘、鼠标、小键盘、触摸屏、运动传感器或任何其他合适的输入设备的用户输入的连接。I/O单元225还可以将输出传送到显示器、打印机或任何其他合适的输出设备。
在某些实施例中,服务器200实施点云的压缩,如将在下面更详细地讨论的。在某些实施例中,服务器200生成对应于点云的三个维度的多个2-D帧。在某些实施例中,服务器200将点云的三个维度映射到2-D。在某些实施例中,服务器200通过对表示点云的压缩的二维帧进行编码来生成压缩的比特流。
注意,尽管图2被描述为表示图1的服务器104,但是相同或相似的结构可以用于各种客户端设备106-116中的一个或多个中。例如,桌上型计算机106或膝上型计算机112可以具有与图2所示的结构相同或相似的结构。
图3示出了根据本公开的实施例的电子设备300。图3中所示的电子设备300的实施例仅用于说明,并且在不脱离本公开的范围的情况下可以使用其他实施例。电子设备300可以具有多种多样的配置,并且图3不将本公开的范围限制为电子设备的任何特定实施方式。在某些实施例中,图1的客户端设备106-116中的一个或多个可以包括与电子设备300相同或相似的配置。在某些实施例中,电子设备300可以是编码器和解码器。
在某些实施例中,电子设备300可用于数据传输、图像或视频压缩、图像或视频解压缩、编码、解码和媒体渲染应用。电子设备300可以是移动通信设备,诸如,例如,无线终端、桌上型计算机(类似于图1的桌上型计算机106)、移动设备(类似于图1的移动设备108)、PDA(类似于图1的PDA110)、膝上型计算机(类似于图1的膝上型计算机112)、平板计算机(类似于图1的平板计算机114)、头戴式显示器(类似于图1的HMD 116)等。
如图3所示,电子设备300包括天线305、射频(RF)收发器310、发送(TX)处理电路315、麦克风320和接收(RX)处理电路325。电子设备300还包括扬声器330、一个或多个处理器340、输入/输出(I/O)接口(IF)345、输入350、显示器355和存储器360。存储器360包括操作***(OS)361和一个或多个应用362。
RF收发器310从天线305接收由***上的另一组件发送的传入RF信号。例如,RF收发器310接收由蓝牙发送的RF信号或者从网络102(诸如,WI-FI、蓝牙、蜂窝、5G、LTE、LTE-A、WiMAX或任何其他类型的无线网络)的接入点(诸如,基站、Wi-Fi路由器、蓝牙设备)接收WI-FI信号。RF收发器310可以将传入RF信号下变频以生成中频或基带信号。中频或基带信号被传送到RX处理电路325,RX处理电路325通过对基带或中频信号进行滤波、解码或数字化或其组合来生成经处理的基带信号。RX处理电路325将经处理的基带信号发送到扬声器330(诸如,对于语音数据)或处理器340(诸如,对于网络浏览数据)以进行进一步处理。
TX处理电路315从麦克风320接收模拟或数字语音数据,或者从处理器340接收其他传出基带数据。传出基带数据可以包括网络数据、电子邮件或交互式视频游戏数据。TX处理电路315对传出基带数据进行编码、复用、数字化或其组合,以生成经处理的基带或中频信号。RF收发器310从TX处理电路315接收传出的经处理的基带或中频信号,并将所述基带或中频信号上变频为经由天线305发送的RF信号。
处理器340可以包括一个或多个处理器或其他处理设备,并执行存储在存储器360中的OS 361,以便控制电子设备300的总体操作。例如,处理器340可以根据公知原理来控制RF收发器310、RX处理电路325和TX处理电路315对前向信道信号的接收和后向信道信号的发送。处理器340还能够执行驻留在存储器360中的其他应用362,诸如解压缩并生成接收到的点云。
处理器340可以执行存储在存储器360中的指令。处理器340可以包括任何适当的布置下的任何适当的(多个)数量和(多个)类型的处理器或其他设备。例如,在一些实施例中,处理器340包括至少一个微处理器或微控制器。处理器340的示例类型包括微处理器、微控制器、数字信号处理器、现场可编程门阵列、专用集成电路和分立电路。
处理器340还能够执行驻留在存储器360中的其他过程和程序,诸如通过提供图像捕获和处理来接收、存储和及时指令的操作。处理器340可以根据执行过程的需要将数据移入或移出存储器360。在一些实施例中,处理器340被配置为基于OS 361或响应于从eNB或运营商接收到的信号来执行多个应用362。处理器340还耦合到I/O接口345,I/O接口345为电子设备300提供连接到其他设备(诸如客户端设备106-116)的能力。I/O接口345是这些附件与处理器340之间的通信路径。
处理器340还耦合到输入350。电子设备300的操作者可以使用输入350将数据或输入键入到电子设备300中。输入350可以是键盘、触摸屏、鼠标、轨道球、语音输入或能够充当用户界面以允许用户与电子设备300交互的任何其他设备。例如,输入350可以包括语音识别处理,从而允许用户经由麦克风320输入语音命令。又例如,输入350可以包括触摸面板、(数字)笔传感器、按键或超声输入设备。触摸面板可以例如以电容性方案、压敏方案、红外方案或超声方案中的至少一种方案来识别触摸输入。例如,在电容性方案中,输入350可以识别触摸或接近。输入350还可以包括控制电路。通过向处理器340提供附加输入,输入350可以与(多个)传感器365和/或相机相关联。如以下更详细地讨论的,传感器365包括惯性传感器(诸如,加速度计、陀螺仪和磁力计)、光学传感器、运动传感器、相机、压力传感器、心率传感器、高度计等。例如,输入350可以利用由与传感器365相关联的运动传感器检测到的运动作为输入。
处理器340也耦合到显示器355。显示器355可以是液晶显示器(LCD)、发光二极管(LED)显示器、有机LED(OLED)、有源矩阵OLED(AMOLED)或能够渲染(诸如来自网站、视频、游戏、图像等的)文本和/或图形的其他显示器。显示器355的尺寸可以设置成适合容纳在HMD内。显示器355可以是单个显示屏或能够创建立体显示器的多个显示屏。在某些实施例中,显示器355是平视显示器(HUD)。
存储器360耦合到处理器340。存储器360的一部分可以包括随机存取存储器(RAM),并且存储器360的另一部分可以包括闪存或其他只读存储器(ROM)。
存储器360可以包括永久储存器(未示出),所述永久储存器表示能够存储信息(诸如,临时或永久的数据、程序代码和/或其他合适信息)和促进信息的检索的任何(多个)结构。存储器360可以包含支持数据的长期存储的一个或多个组件或设备,诸如只读存储器、硬盘驱动器、闪存或光盘。
电子设备300可以进一步包括一个或多个传感器365,所述一个或多个传感器365对物理量进行计量或检测电子设备300的激活状态,并将所计量到的或检测到的信息转换为电信号。例如,(多个)传感器365可以包括用于触摸输入的一个或多个按钮(位于头戴式设备或电子设备300上)、一个或多个相机、手势传感器、眼睛跟踪传感器、陀螺仪或陀螺仪传感器、气压传感器、磁传感器或磁力计、加速度传感器或加速度计、握持传感器、接近传感器、颜色传感器(诸如,红绿蓝(RGB)传感器)、生物物理传感器、温度/湿度传感器、照明传感器、紫外线(UV)传感器、肌电图(EMG)传感器、脑电图(EEG)传感器、心电图(ECG)传感器、IR传感器、超声传感器、虹膜传感器、指纹传感器等等。(多个)传感器365可以进一步包括用于控制包括在其中的传感器中的至少一个的控制电路。如将在下面更详细地讨论的,这些(多个)传感器365中的一个或多个可以用于控制用户界面(UI),检测UI输入,确定用于三维内容显示识别的用户的朝向和面向方向等等。这些(多个)传感器365中的任何一个可以位于电子设备300内,可以位于可操作地连接到电子设备300的辅助设备内,可以位于被配置为保持电子设备300的头戴式设备内,或者位于其中电子设备300包括头戴式设备的单个设备内。
如下面将更详细地讨论的,在这个说明性实施例中,电子设备300接收被编码并且压缩的比特流。电子设备300将压缩的比特流解码成多个2-D帧。在某些实施例中,解码的比特流还包括占用图(occupancy map)。电子设备300解压缩多个2-D帧。多个2-D帧可以包括指示点云的每个点的坐标的帧。帧可以包括点云的每个几何点的位置。例如,帧可以包括以2D表示的点云的每个几何点的图形描绘。另一帧可以包括每个点的属性,诸如颜色。然后电子设备300可以在三维上生成点云。
如下面将更详细地讨论的,在这个说明性实施例中,电子设备300可以类似于服务器200并且对点云进行编码。电子设备300可以生成表示点云的几何形状和纹理、或颜色或两者的多个2-D帧。点云可以被映射到2-D帧。例如,一帧可以包括几何点。在另一示例中,另一帧可以包括点云的纹理或颜色或两者。电子设备300可以压缩2-D帧。电子设备300可以生成占用图以指示每个帧内的有效像素的位置。电子设备300可以对帧进行编码以生成压缩的比特流。
尽管图2和图3示出了计算***中的设备的示例,但是可以对图2和图3进行各种改变。例如,图2和图3中的各种组件可以被组合、进一步细分或省略,并且附加组件可以根据特定需要被添加。作为特定示例,处理器340可以被划分为多个处理器,诸如一个或多个中央处理单元(CPU)和一个或多个图形处理单元(GPU)。另外,与计算网络和通信网络一样,电子设备和服务器可以具有多种多样的配置,并且图2和图3不将本公开限制于任何特定的电子设备或服务器。
图4示出了根据本公开的实施例的点云和示例网格。点云405描绘了点云的图示。点云是可视地定义3-D空间中的对象的数字化的数据。如所描绘的点云405,每个点表示对象的外部坐标,类似于地形图(topographical map)。每个点的坐标都具有地理位置以及属性。属性可以是颜色、强度、纹理等。
类似地,网格410描绘了3-D网格的图示。网格是可视地定义3-D空间中的对象的数字化的数据。对象由许多多边形定义。每个多边形可以描绘各种信息,诸如拓扑、几何、属性(诸如,颜色、纹理等)等。例如,拓扑数据提供顶点之间的连接信息,诸如顶点、边和面的邻接。几何信息提供3-D空间中的每个顶点的几何位置。属性信息提供用于每个单独的顶点的法线信息、颜色信息和取决于应用的信息。每个多边形的顶点与点云405中的点相似。网格410的每个多边形表示对象的外表面。
类似于点云405和网格410,点云和网格需要大量带宽以便从一个计算设备传输到另一计算设备。压缩对于减少存储和带宽需求是有必要的。例如,有损压缩可以压缩点云和网格,同时将失真保持在可容忍的水平内,同时减小数据的大小。
图5A、图5B、图6A、图6B、图7A、图7B、图8A和图8B示出了根据本公开的实施例的编码器或解码器的示例框图。具体地、图5A、图6A、图7A和图8A示出了示例编码器,而图5B、图6B、图7B和图8B示出了示例解码器。图5A、图6A、图7A和图8A的编码器可以类似于图1的服务器、图1的客户端设备106-116中的任何一个、图2的服务器200和图3的电子设备300。图5B、图6B、图7B和图8B的解码器可以类似于图1的客户端设备106-116中的任何一个和图3的电子设备300。图5A、图6A、图7A和图8A的编码器可以经由网络102与图5B、图6B、图7B和图8B的任何解码器通信。如图5A、图6A、图7A和图8A所示的编码器和如图5B、图6B、图7B和图8B所示的解码器的实施例仅用于说明。在不脱离本公开的范围的情况下,可以使用其他实施例。
图5A、图6A、图7A和图8A的编码器可以压缩、编码和发送点云或网格或两者。在某些实施例中,图5A、图6A、图7A和图8A的编码器生成多个2-D帧,其中将点云或3-D网格映射或投影到所述多个2-D帧上。例如,点云被展开并映射到2-D帧上。例如,点云可以沿着一个轴(诸如,Y轴)展开,并且图像沿着其余轴(诸如,X轴和Z轴)被映射。在某些实施例中,图5A、图6A、图7A和图8A的编码器生成占用图,所述占用图指示当点云被映射到2-D帧上时点云的每个像素位于何处。在某些实施例中,图5A、图6A、图7A和图8A的编码器是网络服务器、服务器计算机(诸如,管理服务器)、或能够像图5A、图6A、图7A和图8A的编码器一样将点云的三个维度映射到两个维度、压缩2-D图像、以及对图像进行编码以用于传输的任何其他电子计算***。在某些实施例中,图5A、图6A、图7A和图8A的每个编码器是通过一个或多个网络互连的计算机的“云”,其中每一个编码器是在通过图1的网络102被访问时将集群计算机和组件用作无缝资源的单个池的计算***。
图5B、图6B、图7B和图8B的解码器可以解码、解压缩并生成接收到的点云或网格或两者。在某些实施例中,图5B、图6B、图7B和图8B的解码器从包括2-D帧的接收到的比特流中生成多个点云。例如,可以基于2-D帧中的、接收到的信息和接收到的占用图来映射点云的像素中的每一个。
图5A示出了编码器500。编码器500示出了本公开的实施例的对点云进行编码和压缩以用于传输的电子设备的高级概述。在某些实施例中,编码器500封装点云,以通过比特流发送到一个或多个解码器。编码器500包括分解点云504、压缩引擎510、占用图生成器512、辅助信息生成器514和复用器516。分解点云504生成几何形状帧506和属性帧508。
编码器500经由输入来接收点云502。点云502的输入可以经由信息存储库来访问或经由来自另一电子设备的传输来接收。
点云502的输入进入编码器500,并由分解点云504映射。在某些实施例中,分解点云类似于解复用器,因为它分离接收到的输入的各种特征。例如,分解点云504可以分离点云的几何形状以及点云的其他属性。所述属性可以包括颜色、纹理、强度、法线、反射等。分解点云504是将点云502映射到一个或多个2-D帧上的映射功能。例如,分解点云504生成两个帧,即几何形状帧506和属性帧508。在某些实施例中,由分解点云504生成附加帧(未示出)。在某些实施例中,分解点云504将点云映射到视频的帧。例如,点云的X坐标的每个像素可以被映射到视频帧的R分量上,其中视频帧的R分量是视频的红色部分。类似地,点云的Y坐标的每个像素可以被映射到视频帧的G分量上,其中视频帧的G分量是视频的绿色部分。类似地,点云的Z坐标的每个像素可以被映射到视频帧的B分量上,其中视频帧的B分量是视频的蓝色部分。即,R、G和B视频帧包括被映射到每个视频帧的2-D上的点云的几何形状。类似地,附加视频帧可以包括每个像素的各种属性,诸如颜色、强度、纹理等。例如,点云属性可以被映射到相同视频图片的不同区域上。在另一示例中,点云属性可以被映射到分开的视频帧上。
几何形状帧506是点云的每个像素的几何位置。例如,几何形状帧506是点云的点的3-D位置到视频帧的两个维度上的映射。在某些实施例中,几何形状帧506在二维投影上指示所有三个维度。在某些实施例中,并非点的所有三个XYZ坐标都被存储在几何形状帧506中。例如,几何形状帧506以可以确定丢失的(多个)坐标的方式存储三个XYZ坐标中的两个。例如,Y坐标不被存储在几何形状帧506上,而是X和Z坐标被存储,使得可以从2D帧内存储X和Z坐标的像素的行号确定Y坐标。属性帧508存储点云的每个像素的诸如RGB颜色的属性。在某些实施例中,属性帧508存储点云的每个像素的诸如颜色或纹理的属性。在某些实施例中,属性帧508可以包括多个帧。例如,每个单独的属性帧可以指示颜色、法线、纹理坐标、材料属性、强度等。
几何形状帧506和属性帧508由压缩引擎510压缩。压缩引擎510可以是视频压缩编解码器或图像压缩编解码器。在某些实施例中,压缩引擎510通过诸如HEVC、SHVC、AVC、SVC、VP9、VP8、JVET、AVC、JPEG等的编解码器来压缩接收到的帧。在某些实施例中,压缩引擎510逐个压缩每个帧(几何形状帧506和属性帧508),并将每个压缩帧传送到复用器516。在某些实施例中,压缩引擎510将所有接收到的帧(诸如,几何形状帧506和属性帧508)一起压缩,并将所述帧一起传送到复用器516。
占用图生成器512生成二进制掩码。占用图生成器512分析接收到的点云502、几何形状帧506和属性帧508,并识别每个帧的有效点和无效点。生成的二进制掩码指示每个帧(几何形状帧506和属性帧508)上的每个像素是有效像素还是空白。例如,二进制掩码被用于确定视频帧的包括有效点云属性信息的区域。所述区域以及因此生成的与所述区域相对应的二进制掩码对于所有投影的属性而言可以是相同的,或者对于属性的一部分而言可以不同。例如,占用图生成器512可以生成指示用于所有属性的有效像素的单个二进制掩码。在另一示例中,占用图生成器512可以生成指示用于每个属性的有效像素的多个二进制掩码。在某些实施例中,所生成的二进制掩码也被输入到压缩引擎510中。例如,所生成的二进制掩码可以被压缩为类似于几何形状帧506或属性帧508的另一2-D帧。在某些实施例中,所生成的二进制掩码可以与压缩的2D帧复用,并作为元数据与压缩的2D帧一起作为单个比特流被发送。在某些实施例中,所生成的二进制掩码可以作为元数据作为单独的比特流被发送。下面参考图9更详细地描述所生成的二进制掩码。
辅助信息生成器514生成与压缩的几何形状帧506和压缩的属性帧508一起发送的元数据。由辅助信息生成器514生成的辅助信息是可以由解码器使用以便从2-D帧生成并渲染点云的三个维度的生成的元数据。例如,辅助信息生成器514生成与点云中的每个点的几何形状帧506的信息和属性帧508的信息相关的数据。在某些实施例中,辅助信息生成器514生成查找表。在某些实施例中,由辅助信息生成器514生成的辅助信息可以由视频编码器添加到编码的比特流作为元数据。例如,可以使用SEI消息将元数据添加到编码的比特流。在某些实施例中,可以通过非基于视频的编码方法(诸如,八叉树)来对由辅助信息生成器514生成的辅助信息进行编码。在某些实施例中,由辅助信息生成器514生成的辅助信息可以由复用器516添加到编码的比特流518,而无需进行任何编码。
复用器516组合来自压缩引擎510、占用图生成器512和辅助信息生成器514的输入,并创建单个输出,诸如比特流518。
在某些实施例中,几何形状帧506的几何形状帧和属性帧508可以被调整到特定的视频帧,以便提高压缩引擎510的效率。几何形状帧506的几何形状帧和属性帧508可以与视频或视频的每个帧一起被发送。例如,发送的比特流518可以包括球形视频V2RFC的网格框方案。在另一实例中,所发送的比特流518可以包括可扩展的基于多边形的投影格式(EPPF)。球形视频V2 RFC和EPPF两者都将列表中的顶点和纹理坐标与相关的视频和音频数据结合在一起进行存储。
图5B示出了解码器550。解码器550示出了本公开的实施例的解码和生成点云的电子设备的高级概述。在某些实施例中,解码器从比特流中提取压缩的几何形状和属性。在某些实施例中,解码器550映射几何形状和属性以生成点云。解码器550包括解复用器552、解压缩引擎554和重构引擎560。
解复用器552是接收诸如比特流518的单个输入并将其路由到几条输出线之一的组件。具体地,解复用器552接收比特流518并提取帧(诸如,几何形状帧506和属性帧508)、占用图556和辅助信息558。
解压缩引擎554对几何形状帧506和属性帧508进行解压缩。在某些实施例中,解压缩引擎554产生原始的压缩前的帧的精确复制。在某些实施例中,解压缩引擎554产生原始的压缩前的帧的相似复制。即,解压缩引擎554逆向编码器的的压缩引擎510的效果。
占用图556是生成的二进制图。占用图556识别每个帧的有效像素和无效像素。二进制掩码指示每个帧的哪些像素包含关于从2-D帧生成点云的三个维度的信息。下面参考图9更详细地描述关于二进制图的附加细节。
辅助信息558是被重构引擎560用来生成和渲染点云的元数据。例如,辅助信息包括将几何形状帧506和属性帧508与点云中的每个点相关联的数据。在某些实施例中,辅助信息558是查找表。
重构引擎560基于解压缩的2-D帧、占用图556和辅助信息558来重构点云的三维形状。重构引擎560生成三维点云。然后所生成的点云可以经由输出被发送到显示器(类似于图1的显示器355)。
图6A示出了编码器600。编码器600示出了本公开的实施例的对电子设备进行编码和压缩以用于传输的电子设备的高级概述。编码器600类似于图5A的编码器500。编码器600包括映射604、编码608和610以及复用器(MUX)612。点云602是对编码器600的输入,而比特流614是输出。类似地,图6B示出了解码器650。解码器650类似于图5B的解码器550。解码器650示出了本公开的实施例的对编码器600的压缩点云进行解码的电子设备的高级概述。解码器650包括解复用器(DEMUX)652、解码654和656,帧拆包(frame unpacking)658和渲染器660。输入与来自编码器600的比特流614相同或相似,并且输出是生成的点云662。
映射604将点云602映射到两个维度。在某些实施例中,映射604分离点云602的几何形状值和属性值。例如,与每个像素的3-D坐标相对应的X、Y和Z几何形状分量被存储在与对应于每个相应像素的颜色属性的R、G和B颜色分量分离的帧中。包含几何形状信息的帧被传送到帧打包(frame packing)606,而包含颜色信息的帧被传送到编码610。
在某些实施例中,映射604将点云的几何形状分量和颜色分量映射到图像,所述图像然后使用图像或视频编解码器经由编码608或610被编码。例如,映射604可以将顶点和纹理坐标映射到图像。例如,在图像中,点的纬度可以对应于行号,而点的经度可以对应于列号。可以使用以下方程式将X、Y和Z的笛卡尔坐标转换为r、θ和φ的球坐标。
方程式:
上面的方程式将θ描绘为图像中的纬度或行号,而φ是图像中的经度或列号。上面的方程式可以产生两个分离的图像I和T。两个分离的图像I和T分别用于存储(X,Y,Z)和(U,V)坐标。在某些实施例中,X、Y和Z是在三个维度上描绘对象的顶点的顶点坐标,而U和V表示当3-D纹理被映射到2-D上时的纹理坐标。例如:
映射604最初将点云从3-D空间映射到2-D平面。在某些实施例中,映射604相同地处理几何形状分量和属性分量。这允许图6B的解码器650在没有附加信息的情况下识别与每个点相对应的值。在某些实施例中,映射604不同地处理几何形状分量和属性分量。如果映射604不同地处理几何形状值和属性值,则诸如元数据或查找表的附加数据被生成以识别需要分别经由编码608和610被编码的相关几何形状值和属性值。下面针对图11B更详细地描述了映射点云602的几何形状和属性。
帧打包606打包点云602的XYZ几何形状值,以支持诸如4:2:0的色度子采样方案而不是如先前描述中所假设的4:4:4。在某些实施例中,几何形状值X、Y和Z指示3-D空间中的点的位置,所述点被打包以支持预定的色度子采样。例如,当通过编码608对投影的几何形状值进行编码时,3-D空间中的点被打包以支持4:2:0的色度子采样。示例的帧打包在下面参考图12A-图12C进行讨论。
在某些实施例中,当映射604以4:4:4格式存储几何形状帧时,从编码器600中省略帧打包606。即,几何形状值X、Y和Z被从映射604传送到编码608。然后,使用视频编码器压缩几何形状值。例如,可以经由HEVC编码来压缩几何形状值。
编码器600将R、G和B颜色分量传送到编码610。在某些实施例中,RGB颜色值被编码610使用视频编码器来压缩。在某些实施例中,可以使用其他编码器。在某些实施例中,利用R、G和B的几何形状值,可以使用类似于帧打包606的帧打包步骤。
复用器612将X、Y和Z几何形状分量(坐标)以及R、G和B颜色分量组合为单个比特流614。在某些实施例中,被映射到2D的点云的XYZ分量和RGB分量与其他音频轨道和视频轨道复用。
编码器600可以指示被2-D映射的几何形状帧和属性帧内的存在点云数据的位置。2-D帧内的不包含有效点云数据的其他位置被填充零或另一默认值。
在某些实施例中,编码器600可以指示被2-D映射的帧中不存在点云数据。例如,在没有映射数据的任何位置处,几何形状视频的三个分量分别为0、0和0。在某些实施例中,编码器600可以生成语法(syntax)以指示在被2-D映射的帧中不存在点云数据。在某些实施例中,所述语法类似于图5B的辅助信息558。所述语法可以与比特流614一起被发送。所述语法可以包括像素值,所述像素值用于用信号通知在2-D帧中的任何像素位置处都不存在点云数据。
在某些实施例中,通过由映射604生成元数据,编码器600可以指示比特流中的视频轨道的类型,它是常规的2-D视频轨道、点云的几何形状视频轨道还是点云的属性视频轨道。例如,视频轨道的类型可以通过以下语法来标识:unsigned char pc_track_type。整数0可用于指示信息是常规的2D视频轨道,而不是点云轨道。整数1可用于指示点云几何形状视频轨道。整数2可用于指示点云属性视频轨道,诸如颜色。整数3可用于指示另一点云属性视频轨道,诸如法线。附加的整数可用于指示附加的属性。在上述语法的某些实施例中,指示几何形状视频轨道的整数小于指示属性视频轨道的任何整数。例如,指示几何形状轨道的整数比指示颜色属性轨道的整数小的数。因此,在这个示例中,当解码器650接收到比特流614时,接收到的具有除了0和指示几何形状的整数以外的语法整数的任何帧被识别为属性类型。
例如,图6C示出了根据本公开的实施例的使用多个视频轨道的点云的2-D映射。图6C的环境600C示出了具有多个轨道的MPEG视频。特别地,由编码器600的映射604生成的元数据可以指示比特流中的视频轨道的类型。例如,轨道670示出音频轨道,并且轨道672、674和676示出视频轨道。例如,轨道672是360°视频,轨道674是点云的XYZ几何形状,并且轨道676示出点云的颜色属性。可以为每个附加属性添加附加轨道。例如,轨道672可以包括整数0以指示信息是常规2-D视频轨道而不是点云轨道。类似地,轨道674可以包括整数1以指示点云几何形状视频轨道。类似地,轨道676可以包括整数2以指示诸如颜色的点云属性视频轨道。
在某些实施例中,通过由映射604生成元数据,编码器600可以指示不同点云的合成或(多个)点云和2-D视频的合成。2-D视频可以是前视图的常规2-D视频,或者是360度视图的视频。例如,场景是一个或多个(多个)前景点云与背景点云的合成。例如,语法unsigned short int pc_pos_offset_X可用于指示背景点云或2-D视频内的点云对象的X位置偏移。在另一示例中,语法unsigned short int pc_pos_offset_Y可用于指示背景视频内的点云对象的Y位置偏移。在另一示例中,语法unsigned short int pc_pos_offset_Z可用于指示背景视频内的点云对象的Z位置偏移。在另一示例中,语法unsigned shortintpc_rot_X可用于指示前景点云的初始俯仰角。在另一示例中,语法unsignedshort int pc_rot_Y可用于指示前景点云的初始偏航角。在另一示例中,语法unsigned short int pc_rot_Z可用于指示前景点云的初始滚动角。在另一示例中,语法unsigned short int pc_scale可用于指示前景点云的规模。在另一示例中,语法unsigned char pc_alpha可用于指示前景点云的透明度值。在另一示例中,语法unsigned int pc_time_offset可用于指示点云相对于背景视频的时间偏移。在另一示例中,每个点云的帧速率和背景视频的帧速率可以不同。例如,点云对象可以具有每秒10帧(FPS)的帧速率,而背景视频可以具有60FPS的帧速率。在某些实施例中,如果背景视频不包括深度信息,则点云轨道被合成在背景视频之上。
解码器650通过解复用器652从比特流614中提取几何形状比特流和属性比特流。通过解码654对几何形状比特流进行解码。类似地,通过解码656对属性比特流进行解码。在某些实施例中,解码654是10+位视频解码器。在某些实施例中,解码656是8位视频解码器。
在某些实施例中,解码654可以是无损的或有损的。类似地,在某些实施例中,解码656可以是无损的或有损的。例如,无损或有损解码取决于2-D映射方案和相应的2-D视频编码器(诸如来自编码器600的编码608和610)的量化参数。如果编码608或610是有损编码器,则两个生成的视频中的点的数量和位置可能不匹配。在一个实施例中,如果编码器是有损的,则编码器生成二进制掩码(也称为α掩码或占用图),并且不经压缩或使用无损压缩将其添加到输出比特流614。
帧拆包658拆开由编码器600的帧打包606打包的几何形状值。渲染器660通过基于几何形状值将属性值映射到3-D空间上来渲染点云662。例如,渲染器660提取几何形状值X、Y和Z以及属性值R,G和B以渲染点云662。如果二进制掩码在比特流614中可用,则渲染器660将其用于在解码的几何形状帧和属性帧中找到有效点的位置。在一个实施例中,如果编码器600使用无损压缩来编码几何形状或属性视频之一,并且如果几何形状和属性全部被存储在2-D视频中的相同位置,则编码器600可以不在比特流614中存储二进制掩码。在这种情况下,渲染器660可以使用无损2-D视频之一中的有效像素的位置来指示有损2-D视频中的有效像素。
图7A示出了编码器700。编码器700示出了本公开的实施例的对点云进行编码和压缩以用于传输的电子设备的高级概述。编码器700类似于图5A的编码器500和图6A的编码器600。编码器700包括解复用器(DEMUX)704、多个帧及各个视频编码器、和复用器(MUX)722。所述帧包括几何形状帧706、颜色帧708、法线纹理帧710和纹理坐标帧。每个帧与单独的视频编码器714-720相关联。点云702是对编码器700的输入,而比特流724是输出。类似地,图7B示出了解码器750。解码器750类似于图5B的解码器550和图6B的解码器650。解码器750示出了本公开的实施例的对编码器700的压缩点云进行解码的电子设备的高级概述。解码器750包括解复用器(DEMUX)752,视频解码器754A-D和复用器。输入与来自编码器700的比特流724相同或相似,并且输出是生成的点云758。
在某些实施例中,点云702、图6A的点云602和图5A的点云502是相同的。在某些实施例中,点云702的每个点可以由单个方程式表示,所述方程式指示点云内的点的每个属性和几何位置。例如,可以使用以下方程式:
方程式:
Pn=Xn,Yn,Zn,Rn,Bn,Gn,NXn,NYn,NZn,Un,Vn
在上面的方程式中,n是从1开始的整数。在上面的方程式中(Xn,Yn,Zn)是3-D空间中的单个点n的X、Y和Z坐标。在上面的方程式中,(Rn,Bn,Gn)是3-D空间中的点n的颜色。在上面的方程式中,(NXn,NYn,NZn)是3-D空间中的点n的法线。在上面的方程式中,(Un,Vn)中是点n的纹理坐标。在上面的方程式的某些实施例中,点n可以具有属性的子集。在上面的方程式的某些实施例中,点n可以具有附加属性,诸如材料特性、强度、质量、标记等。
解复用器704类似于图6A的映射604和图5A的分解点云504。在某些实施例中,解复用器704、图6A的映射604和图5A的分解点云504是相同的。解复用器704分析点云702并将点云分解成各种分量。基于上面的方程式,解复用器704可以针对点云702中的每个点n分离出各种变量。例如,解复用器704提取几何形状属性(Xn,Yn,Zn),并且几何形状属性被映射到几何形状帧706。类似地,解复用器704提取颜色属性(Rn,Bn,Gn),并且颜色属性被映射到颜色帧708。类似地,解复用器704提取法线属性(NXn,NYn,NZn),并且法线属性被映射到法线纹理帧710。类似地,解复用器704提取纹理坐标属性(Un,Vn),并且纹理坐标属性被映射到纹理坐标帧712中。
每个帧706-712将点云702的不同属性映射到视频帧中。例如,帧706-712示出了四个映射,其对应于在四个视频帧(几何形状帧706、颜色帧708、法线纹理帧710和纹理坐标帧712)中存储十一个不同的属性分量。在一些实施例中,每个帧706-712可以是相同的大小,每个帧706-712可以是不同的大小,或者帧706-712的一部分可以是相同的大小而其他帧是不同的大小。例如,几何形状帧706可具有宽度W和高度H。
几何形状帧706表示包含点云702的几何属性的2-D视频图片。视频编码器714接收包含几何属性的2-D视频图片并压缩几何属性的视频。类似地,颜色帧708表示包含点云702的颜色属性的2-D视频图片。视频编码器716接收包含颜色属性的2-D视频图片并压缩颜色属性的视频。类似地,法线纹理帧710表示包含点云702的法线属性的2-D视频图片。视频编码器718接收包含法线属性的2-D视频图片并压缩法线属性的视频。类似地,纹理坐标帧712表示包含点云702的纹理坐标的2-D视频图片。视频编码器720接收包含纹理坐标的2-D视频图片并压缩纹理坐标属性的视频。复用器722组合单独压缩的帧以生成比特流724。
解码器750通过解复用器752从比特流724提取几何形状值和属性值。解复用器752将比特流724划分为四个压缩帧。几何形状属性的压缩视频由视频解码器754A解码。颜色属性的压缩视频由视频解码器754B解码。法线属性的压缩视频由视频解码器754C解码。纹理坐标属性的压缩视频由视频解码器754D解码。
复用器(MUX)756组合来自视频解码器754A-D的解码的视频图片。视频解码器754A将几何形状属性(Xn,Yn,Zn)的视频图片传送到复用器756。视频解码器754B将颜色属性(Rn,Bn,Gn)的视频图片传送到复用器756。解码器754C将法线属性(NXn,NYn,NZn)的视频图片传送到复用器756。视频解码器754D将纹理坐标属性(Un,Vn)的视频图片传送到复用器756。此后,复用器756基于Pn=Xn,Yn,Zn,Rn,Bn,Gn,NXn,NYn,NZn,Un,Vn生成点云。
图8A示出了编码器800。编码器800示出了本公开的实施例的对电子设备进行编码和压缩以用于传输的电子设备的高级概述。编码器800类似于图5A的编码器500、图6A的编码器600和图7A的编码器700。编码器800包括映射804、视频编码806和808,二进制掩码压缩810和复用器(MUX)812。点云802是对编码器800的输入,而比特流814是输出。
类似地,图8B示出了解码器850。解码器850类似于图5B的解码器550、图6B的解码器650和图7B的解码器750。解码器850示出了本公开的实施例的对编码器800的压缩点云进行解码的电子设备的高级概述。解码器850包括解复用器(DEMUX)852、视频解码器854和860,有效点选择器856和862以及二进制掩码重构858。输入与来自编码器800的比特流814相同或相似,并且输出是生成的点云864。
在某些实施例中,点云802、图7A的点云702、图6A的点云602、图5A的点云502是相同的。映射804将点云802映射到多个帧。然后每个帧被单独编码。例如,视频编码器806对诸如X、Y和Z的几何形状属性进行编码。视频编码器808表示对诸如颜色、纹理、法线等的各种属性进行编码的多个视频编码器。在某些实施例中,在映射804之前对点云802进行子采样以减小数据大小。在某些实施例中,可以对由映射804生成的帧进行子采样以减小每个帧的数据大小。
在某些实施例中,如果点云802均匀稀疏,则按预定因子将几何形状值缩小以使每个点彼此靠得更近。通过缩小,可以增加点的密度。预定的缩小因子可以作为元数据被添加到比特流。
在某些实施例中,如果点云802是非均匀稀疏的,使得点云802的某些部分比其他部分更密集,则按不同的因子分区域将几何形状值缩小。通过按不同因子分区域将点云802缩小、以使点云在所有区域中均匀密集。缩小因子可以作为元数据被添加到比特流。
在某些实施例中,可以通过使用填充或复制用于存储点云属性的区域的边缘像素,将点云802的各种属性存储在视频帧中。
在某些实施例中,基于每个视频帧中的未填充空间的大小和形状来自适应地修改所述视频帧的大小。例如,每个视频帧可以具有当前的初始大小。一旦点云被投影到视频帧上,所述帧就可以被扩展或缩减以适合投影。在某些实施例中,每个帧的大小是八的倍数。
二进制掩码压缩810类似于图5A的占用图生成器512。二进制掩码压缩810压缩帧的二进制图像。在某些实施例中,由二进制掩码压缩810生成的掩码信息表示视频帧的每条线的开始像素位置号和结束像素位置号。
每个编码的视频帧和二进制掩码被复用器812组合。复用器812生成压缩的比特流814。
解码器850通过解复用器852从比特流814提取几何形状值和属性值。解复用器852将比特流814划分为各种压缩帧。几何形状比特流被视频解码器854解码。各种属性被视频解码器860解码。在某些实施例中,视频解码器860表示多个视频解码器,每个视频解码器用于解码诸如颜色、纹理、法线等的特定属性。
解复用器852还将比特流814划分为二进制掩码重构585。二进制掩码重构是指示每个帧上的有效点和无效点的二进制掩码。有效点选择器856分析二进制掩码并选择几何帧的有效点。类似地,有效点选择器862分析二进制掩码并选择每个属性帧的有效点。然后解码器850生成重构的点云864。
在某些实施例中,可以使用附加的映射和帧生成技术。例如,诸如编码器500、600、700或800的编码器使用投影来用单个点云属性连续填充单个视频帧。然后,编码器生成元数据并且将元数据与比特流一起传送,所述元数据指示存储在特定视频帧中的属性的类型。如果帧的大小大于点云中的点的数量,则编码器利用有效属性数据部分填充所述帧,并且让未填充的像素为空。空像素可以用零填充或保留为默认值。诸如解码器550、650、750或850的解码器从相应的编码器接收比特流。解码器可以使用生成的元数据来确定存储在解码帧中的属性的类型,以适当地输出属性。示例语法可以包括“unsigned char attr_type;”,其用于指示属性类型。示例语法“unsigned shortint attr_num_pts;”可用于指示特定属性的点的数量。示例语法“unsigned shortint unfil_val;”可用于指示特定帧内的未填充像素的默认值。
在另一示例中,诸如编码器500、600、700或800的编码器使用投影来利用点云数据填充视频帧,并将指示存储在特定帧中的属性的类型的元数据与有效点的数量一起传送。诸如解码器550、650、750或850的解码器从相应的编码器接收比特流。解码器使用元数据来确定存储在解码帧中的多个属性的类型,以便适当地输出属性。
在某些实施例中,特定点云中的点的数量可以超过可以存储在单个帧中的像素的最大数量。在这种情况下,点云属性可以分布在多个帧中,并且可以生成元数据来指示存储在每个帧中的属性或属性的一部分。
在某些实施例中,特定点云中的点的数量可以小于所生成的帧中的像素的总数。例如,在这种情况下,可以利用零或另一默认值填充未填充帧中的留空的像素。在另一示例中,在这种情况下,可以利用多个属性来填充帧。下面的图12A示出了存储在单个视频帧中的多个属性。可以生成元数据来指示空白像素的默认值,或者指示存储在帧中的多个属性。
图9示出了根据本公开的实施例的二进制掩码。图9的实施例仅用于说明,并且在不脱离本公开的范围的情况下可以使用其他实施例。图9示出了帧902、帧904和帧906。
帧902示出了点云的几何坐标Xn的视频帧。帧904表示包括掩码904A的二进制掩码,所述掩码904A指示帧902的包含有效几何坐标的一部分。无效区域904B指示不包含任何有效点云数据的像素。帧906指示与帧904重叠的帧902。包含点云坐标的区域是点云的有效几何坐标的位置。可以将掩码904A应用于其中将有效数据存储在2-D帧中的相同位置处的所有属性。
在某些实施例中,二进制掩码被压缩并与比特流一起被发送。例如,二进制掩码可以压缩为16位整数的数组,其中每个数字是每一行的长度。
图10示出了根据本公开的实施例的示例光栅扫描映射。根据图10的光栅扫描的实施例仅用于说明,并且在不脱离本公开的范围的情况下可以使用其他实施例。图10示出了点云1002、几何形状(XYZ)帧1004和颜色(RGB)帧1006。几何形状帧1004是输入的点云1002的每个X、Y和Z坐标的使用光栅扫描的从3-D空间到2-D平面的映射。颜色帧1006是输入的点云1002的每个R、G和B颜色坐标的使用光栅扫描的从3-D空间到2-D平面的映射。在光栅扫描方法中,以点在点云1002中存储的顺序从点云1002中读取所述点。然后,输入的点的每个属性被逐条线映射到相应的2-D帧。注意,点云1002类似于图5A的点云502、图6A的602、图7A的702和图8A的802。
例如,几何形状帧706可以被指定为f1,颜色帧708可以被指定为f2,法线纹理帧710可以被指定为f3,并且纹理坐标帧712可以被指定为f4。然后可以通过f1(i,j,k)、f2(i,j,k)、f3(i,j,k)和f4(i,j,k)识别这四个帧。每个映射的帧可以具有每个相应的视频编码器714-720中一个、两个或三个分量。例如,变量k可以表示f(i,j,k,)的不同分量。例如,如果存在三个分量,则帧为f(i,j,0)、f(i,j,1)和f(i,j,2)。如果存在两个分量,则帧为f(i,j,0)和f(i,j,1)。如果存在一个分量,则帧为f(i,j,0),或者简单地为f(i,j)。例如,如果由M1()、M2()、M3()和M4()指示四个映射,则以下方程式可以定义所述映射:
方程式:
M1(n)=M2(n)=M3(n)=M4(n)=(n/w,n%w)
基于上面的方程式,光栅扫描可以得出定义每个帧的以下方程式:
方程式:
f1(j,k,0)=xn,j=n/w,k=n%w
f1(j,k,1)=yn,j=n/w,k=n%w
f1(j,k,2)=zn,j=n/w,k=n%w
f2(j,k,0)=rn,j=n/w,k=n%w
f2(j,k,1)=gn,j=n/w,k=n%w
f2(j,k,2)=bn,j=n/w,k=n%w
f3(j,k,0)=nxn,j=n/w,k=n%w
f3(j,k,1)=nyn,j=n/w,k=n%w
f3(j,k,2)=nyn,j=n/w,k=n%w
f4(j,k,0)=un,j=n/w,k=n%w
f4(j,k,1)=vn,j=n/w,k=n%w
f4(j,k,2)=0
基于上面的方程式,对于点云的第n个点,可以将几何形状分量(Xn,Yn,Zn)和属性分量(诸如,颜色(Rn,Gn,Bn))映射到各个帧。例如,可以将几何形状分量映射到G帧上,而将颜色分量映射到C帧上。几何形状帧的第n个点的投影在帧1004中被示出为(i)G(n/w,n%w,0)=Xn;(ii)G(n/w,n%w,1)=Yn;和(iii)G(n/w,n%w,2)=Zn。类似地,颜色帧的第n个点的投影在帧1006中被示出为(i)C(n/w,n%w,0)=Rn;(ii)C(n/w,n%w,1)=Gn;和(iii)C(n/w,n%w,2)=Bn。
图11A、图11B和图11C示出了根据本公开的实施例的按行展开的示例。图11A示出了位于笛卡尔坐标系上的点云1102。图11B示出了映射在二维上的点云的横截面。特别地,图11B示出了针对特定Y值的XZ平面中的点云的横截面。图11C示出了点云到各个帧上的映射。根据图11A-图11C的按行展开的实施例仅用于说明,并且在不脱离本公开的范围的情况下可以使用其他实施例。
图11A示出了位于X轴1104、Y轴1106和Z轴1108的笛卡尔坐标系上的点云1102。点云1102类似于图5A的点云502、图6A的602、图7A的702、图8A的802和图10的1002。平面1110沿着单个轴扫描点云1102。如图所示,平面1110沿着Y轴1106扫描点云1102。在某些实施例中,平面1110可以沿着X轴1104或Z轴1108扫描点云1102。例如,点云1102沿着Y轴1106被扫描以分别沿着X轴1104和Z轴1108找到X点和Z点。在某些实施例中,点云1102沿着最长的轴被扫描。在某些实施例中,编码器500、600、700或800可以确定最长的轴并沿着该轴扫描。在某些实施例中,不管点云1102的大小或形状如何,编码器500、600、700或800沿着预定轴扫描点云1102。
图11B示出了图形1120,其描绘了针对特定Y平面的XZ平面中的点云1102的横截面。然后,横截面点的X值和Z值被存储在视频(或一个图像)的一帧的第一分量和第二分量的第y行中。类似地,横截面点的R、G和B颜色分量被写入另一视频的一帧的第一分量、第二分量和第三分量的第y行中。每个其他点云属性或附加的点云属性也可以被存储在分开的视频的一帧中,或被存储在相同视频的用于其他属性的不同行中。
在某些实施例中,横截面点可以被排序和重新排序。例如,可以利用诸如光栅扫描(如参照图10所讨论的)、之字形排序、深度优先搜索(DFS)、呼吸优先搜索(BFS)的排序技术来对横截面点进行排序和重新排序。当映射的点云被发送时,对横截面点(诸如,1122或1124)进行排序可以提高效率。在某些实施例中,排序被分开地应用于横截面图像的不同的连接的分量。
图11C示出了点云1102到诸如几何形状帧1130、颜色帧1140和二进制掩码帧1150的各个帧上的映射。几何形状帧1130示出了沿着Y轴1106被扫描的点云1102的整体。几何形状帧1130示出了沿着Y轴1106的整体的诸如1122和1124的横截面点的整体。例如,当平面1110沿着Y轴1106移动时,类似于图形1120的多个图形被生成,并且被逐条线映射到视频帧以创建几何形状帧1130。几何形状帧1130示出了沿着Y轴1106被映射的点云1102的X点和Z点。类似地,颜色帧1140表示对应于几何形状帧1130的每个点的颜色R、G、B。二进制掩码帧1150示出了点云的有效像素和无效像素。二进制掩码帧1150类似于图9的二进制掩码。二进制掩码帧1150指示每个无效像素以允许解码器正确地重构并生成点云。在某些实施例中,生成附加的帧以指示不同的属性,诸如纹理、法线、纹理坐标等。
下面提供示例语法以说明针对单个横截面位置的点云1102到图形1120的映射、以及沿着单个轴的整体的几何形状帧1130、颜色帧1140和二进制掩码帧1150。关于作为Y轴1106的点云1102的最长维度来描述以下示例语法。
语法:
在以上示例中,所述语法说明了沿着最长维度映射点云。Geo=memset(width,height)为几何形状帧分配存储器。类似地,Col=memset(width,height)为几何形状帧分配存储器。[X,Y,Z,R,G,B,…]=read_PC(file_name)从特定文件中读取特定点云,诸如点云1102。语法for(i=0to max(Y))提供了从一个点开始到最大点结束的沿着轴扫描点云的指令。[X0,Z0,R0,G0,B0,...]=get_Cross_Sec_Im(i)提供了获取针对Y=i的XZ平面中的横截面点的指令。[X1,Z1,R1,G1,B1,...]=sort(X0,Z0,R0,G0,B0,...)是可选步骤,其将排序算法应用于扫描的每一行。Geo(i,:,1)=X1;Geo(i,:,2)=Z1提供了将数据写入几何形状图像的一行的指令。Col(i,:,1)=R1;Col(i,:,2)=G1;Col(i,:,3)=B1提供了将数据写入颜色图像的第i行的指令。类似的语法被应用于每个附加的属性。
在以上语法中,几何形状分量仅存储两个分量,即X值和Z值,而每个点的Y值都被隐式编码为行索引。将每个横截面映射到一条视频线的这种方法可能会导致对于一些点云而言投影的视频帧具有大的宽度。在一个实施例中,通过将长行划分成多个行,可以将更小的宽度用于投影的视频。当长行被划分为多个行时,Y值可以被写入投影的视频的一个分量中。
图12A至图12E示出了根据本公开的实施例的示例打包操作。特别地,图12A示出了存储在各个帧分量中的多个属性。图12B和图12C示出了打包点云帧的XYZ几何形状分量的示例。图12D和图12E示出了具有存储在不规则区域中的属性的示例帧。根据图12A-图12E的各种帧打包的实施例仅用于说明,并且在不脱离本公开的范围的情况下可以使用其他实施例。
图12A示出了存储在各个帧分量中的多个属性分量。例如,单个视频帧的第一视频分量1202(即亮度Y)存储Xn几何形状分量和Yn几何形状分量。类似地,第二分量1204(即色度Cr)存储Zn分量和Rn分量。类似地,第三视频分量1206(即色度Cb)存储Gn分量和Bn分量。在某些实施例中,几何形状和其他点云属性的各种分量可以被存储在相同视频帧的三个分量中。
图12B和图12C示出了将点云帧的所有XYZ几何形状分量打包到2-D视频帧1210和1220的亮度分量中,并利用0、另一默认值或者另一属性的映射数据来填充两个色度分量帧1212、1214、1222和1224,以支持其中色度分量被子采样的4:2:0、4:1:1或其他色度子采样格式的示例。例如,色度分量帧1212、1214或色度分量帧1222、1224可以包括诸如零的属性或默认值。在图12B中,XYZ分量被水平地打包,而在图12C中,XYZ分量被垂直地打包。
图12D和图12E示出了存储在不规则区域中的属性,所述不规则区域对于所有视频帧可以是相同的,或者对于视频帧中的一些可以是不同的。图12D示出了被映射到诸如帧1230、1232和1234的各个2-D帧分量上的各个几何形状分量。在某些实施例中,帧1230、1232和1234示出了多个视频帧或相同视频帧的多个分量。图12E示出了被映射到单个2-D帧分量(诸如,1240)上的各个几何形状属性。在某些实施例中,二进制掩码用于指示有效点的位置。二进制掩码可以指示帧1240的灰色像素是有效像素,而帧1240的白色像素是无效像素。
在某些实施例中,可以在编码之前将颜色属性从RGB转换为YCbCr、YCoCg或其他视频格式。当诸如解码器550、650、750或850的解码器对包含颜色属性的帧进行解码时,解码器可以将各种颜色格式转换回RGB格式。
如上所述,图11A、图11B和图11C示出了如何在单个视频帧的三个分量中存储几何形状和属性。例如,几何形状帧1130示出了存储在单个帧中的两个分量,即X和Y。颜色帧1140示出了存储在单个帧中的三个分量,即R、G和B。类似地,可以将多个属性存储在单个帧(诸如图12A、图12B、图12C和图12E的帧)中。例如,可以将特定的帧指定为由边界框分隔的多个区域。边界框是由左上像素以及边界框的宽度和高度定义的框。左上像素指示第二区域在帧中开始的位置,并由边界框的高度和宽度测量。当多个属性被放置在单个帧中时,以下示例语法可用于指示边界框。语法“unsignedshort int attr_box_left;”可用于指示边界框的左上部分的顶部索引。语法“unsigned short int attr_box_top;”可用于指示边界框的左上点的顶部索引。语法“unsigned short int attr_box_width;”可用于指示属性的边界框的宽度。语法“unsigned short int attr_box_height;”可用于指示属性的边界框的高度。
图13示出了根据本公开的实施例的用于编码点云的示例流程图。图13描绘了用于点云编码的流程图1300。例如,图13中描绘的过程被描述为由图1的服务器104、图1的客户端设备106-114中的任何一个、图2的服务器20000、图3的电子设备300、图5A的编码器500、图6A的编码器600、图7A的编码器700或图8A的编码器800来实施。
过程开始于编码器,诸如编码器500、600、700或800,所述编码器从点云生成多个2-D帧(1302)。二维帧至少包括第一帧,所述第一帧表示三维点云中的点的几何形状。所述二维帧还包括第二帧,所述第二帧表示三维点云中的点的纹理,诸如颜色、纹理、法线、反射率等。在某些实施例中,三维点云中的每个点的位置被映射到第一帧上,以指示三维点云中的点的几何形状。在某些实施例中,三维点云中的每个点的纹理属性被映射到第二帧上,以指示三维点云中的点的纹理。
在某些实施例中,处理器还被配置为分析沿着第一轴的多个位置处的三维点云,以便沿着与沿着第一轴的每个位置相对应的第二轴和第三轴存储三维点云中的每个点。每个点被存储在与沿着第一轴的位置相对应的第一帧的行中。在某些实施例中,第一轴是三维点云的最长维度。
过程生成占用图,所述占用图指示2-D帧上的像素的位置(1304)。在某些实施例中,占用图类似于指示每个帧上的有效点的二进制掩码。例如,所生成的占用图可以覆盖每个帧以指示每个像素是否是点云的一部分。
过程还对2-D帧和占用图进行编码以生成压缩的比特流(1308)。过程将每个帧和占用图组合起来以压缩每个对象,以便生成比特流。在某些实施例中,使用视频或图像编解码器来压缩编码的帧。然后,过程发送压缩的比特流(1310)。
图14示出了根据本公开的实施例的用于解码点云的示例流程图。例如,图14中描绘的过程被描述为由图1的客户端设备106-114中的任何一个、图3的电子设备300、图5B的解码器550、图6B的解码器650、图7B的解码器750或图8B的解码器850实施。
过程开始于解码器,诸如解码器550、650、750或850,所述解码器接收压缩的比特流(1402)。接收到的比特流可以包括编码的点云,所述编码的点云被映射到被压缩以用于传输的2-D帧。
过程将压缩的比特流解码成2-D帧和占用图(1404)。在某些实施例中,占用图不包括在比特流中。二维帧至少包括第一帧,所述第一帧表示三维点云中的点的几何形状。所述二维帧还包括第二帧,所述第二帧表示三维点云中的点的纹理。在某些实施例中,第一系列的帧(每个帧表示点的几何形状)被解压缩以生成包括点的几何形状的第一帧。类似地,第二系列的帧(每个帧表示三维点云的点的纹理)被解压缩以生成包括点的纹理的第二帧。
然后,过程识别或解码包括在解码的比特流中的占用图(1406)。占用图指示表示三维点云中的每个点的二维帧中的像素的位置。在某些实施例中,占用图类似于指示每个帧上的有效点的二进制掩码。例如,占用图可以覆盖每个帧以指示每个像素是否是点云的一部分。
然后,过程基于多个帧使用占用图来生成三维点云(1408)。在某些实施例中,第一帧的每个点的位置被映射,以便重构三维点云中的点的几何形状。类似地,第二帧中的每个点的纹理属性被映射,以重构三维点云中的点的纹理。在某些实施例中,基于指示三维点云中的点的几何形状的每个点的映射位置来映射每个点的纹理属性。
在某些实施例中,过程分析第一帧的每一行以识别第一轴。所识别的每个点位于与三维点云的沿着第一轴的位置处的点相对应的每一行中。通过将每个点放置在与第一帧的每一行相对应的第二轴和第三轴处来生成三维点云。在某些实施例中,过程将最长维度识别为第一轴。
尽管附图示出了用户设备的不同示例,但是可以对附图进行各种改变。例如,用户设备可以包括任何适当的布置下的任意数量的每个组件。通常,附图不将本公开的范围限制为任何(多个)特定配置。此外,尽管附图示出了其中可以使用本专利文件中公开的各种用户设备特征的操作环境,但是这些特征可以用于任何其他合适的***中。
本申请中的描述均不应理解为暗示任何特定的元素、步骤或功能是必须包括在权利要求范围内的必要元素。被申请专利的主题的范围仅由权利要求书限定。
尽管已经利用示例性实施例描述了本公开,但是可以向本领域技术人员提出各种改变和修改。意图使本公开涵盖落入所附权利要求的范围内的改变和修改。
Claims (12)
1.一种用于点云解码的解码设备,所述解码设备包括:
通信接口,被配置为接收压缩的比特流;和
处理器,其可操作地耦合到通信接口,其中,所述处理器被配置为:
将压缩的比特流解码为二维帧和占用图,其中,二维帧至少包括表示三维点云中的点的几何形状的第一帧和表示三维点云中的点的属性的第二帧,其中属性包括颜色、纹理、法线或反射率中的至少一个;
识别指示表示三维点云中的每个点的每个二维帧中的有效和无效像素的位置的占用图,其中,有效和无效像素的位置是基于每个二维帧的被覆盖的帧来指示的;和
基于由占用图指示的每个二维帧中有效像素的位置,从二维帧生成三维点云。
2.根据权利要求1所述的解码设备,其中,为了从二维帧生成三维点云,所述处理器还被配置为:
映射第一帧中的每个点的位置,以重构三维点云中的点的几何形状;和
映射第二帧中的每个点的纹理属性,以重构三维点云中的点的纹理,
其中,基于指示三维点云中的点的几何形状的每个点的映射位置,来映射每个点的纹理属性。
3.根据权利要求1所述的解码设备,其中,为了解码压缩的比特流,所述处理器还被配置为:
解压缩第一系列的帧,每个帧表示点的几何形状,以生成包括点的几何形状的第一帧;和
解压缩第二系列的帧,每个帧表示三维点云的点的纹理,以生成包括点的纹理的第二帧。
4.根据权利要求1所述的解码设备,其中,占用图由指示每个二维帧的有效和无效像素的多个二进制掩码表示。
5.根据权利要求1所述的解码设备,其中,为了从二维帧生成三维点云,所述处理器还被配置为:
分析第一帧的每一行以识别第一轴,其中位于每一行中的每个点对应于三维点云的沿着第一轴的位置处的点;和
通过将每个点放置在与第一帧的每一行相对应的第二轴和第三轴,来生成三维点云。
6.根据权利要求5所述的解码设备,其中,所述处理器被配置为:
识别三维点云的最长维度是第一轴;和
通过将每个点放置在与沿着三维点云的最长维度的第一帧的每一行相对应的第二轴和第三轴,来生成三维点云。
7.一种用于点云编码的编码设备,所述编码设备包括:
处理器,被配置为:
从三维点云生成多个二维帧,所述二维帧至少包括表示三维点云中的点的几何形状的第一帧和表示三维点云中的点的属性的第二帧,其中
属性包括颜色、纹理、法线或反射率中的至少一个;
生成占用图,所述占用图指示表示三维点云中的点的每个二维帧中的有效和无效像素的位置,其中,有效和无效像素的位置是基于每个二维帧的被覆盖的帧来指示的;和
基于占用图指示的有效像素的位置,对二维帧和占用图进行编码以生成压缩的比特流;和
通信接口,其可操作地耦合到处理器,其中通信接口被配置为发送压缩的比特流。
8.根据权利要求7所述的编码设备,其中,为了生成二维帧,所述处理器还被配置为:
将三维点云中的每个点的位置映射到第一帧,以指示三维点云中的点的几何形状;和
将三维点云中的每个点的纹理属性映射到第二帧,以指示点的纹理,
其中,基于指示三维点云中的点的几何形状的每个点的映射位置,来映射每个点的纹理属性。
9.根据权利要求7所述的编码设备,其中,为了编码二维帧,所述处理器还被配置为:
压缩第一系列的帧,每个帧表示点的几何形状,以生成包括点的几何形状的第一压缩帧;和
压缩第二系列的帧,每个帧表示三维点云的点的纹理,以生成包括点的纹理的第二压缩帧。
10.根据权利要求7所述的编码设备,其中,占用图由指示每个二维帧的有效和无效像素的多个二进制掩码表示。
11.根据权利要求7所述的编码设备,其中,为了生成多个二维帧,所述处理器还被配置为:
在沿着第一轴的多个位置处分析三维点云;和
沿着与沿着第一轴的每个位置相对应的第二轴和第三轴存储三维点云中的每个点,
其中每个点被存储在与沿着第一轴的位置相对应的第一帧的行中。
12.根据权利要求11所述的编码设备,其中,所述处理器还被配置为:
确定三维点云的最长维度;
在沿着最长维度的多个位置处分析三维点云;和
沿着与沿着三维点云的最长维度的每个位置相对应的第二轴和第三轴存储三维点云中的每个点。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762530750P | 2017-07-10 | 2017-07-10 | |
US62/530,750 | 2017-07-10 | ||
US201762556579P | 2017-09-11 | 2017-09-11 | |
US62/556,579 | 2017-09-11 | ||
US201762580731P | 2017-11-02 | 2017-11-02 | |
US62/580,731 | 2017-11-02 | ||
US15/920,038 | 2018-03-13 | ||
US15/920,038 US11514613B2 (en) | 2017-03-16 | 2018-03-13 | Point cloud and mesh compression using image/video codecs |
PCT/KR2018/003804 WO2019013430A1 (en) | 2017-07-10 | 2018-03-30 | COMPRESSION OF MAILLAGES AND POINT CLOUDS USING IMAGE / VIDEO CODECS |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110892453A CN110892453A (zh) | 2020-03-17 |
CN110892453B true CN110892453B (zh) | 2024-02-13 |
Family
ID=65002575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880046388.5A Active CN110892453B (zh) | 2017-07-10 | 2018-03-30 | 使用图像/视频编解码器的点云和网格压缩 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3642800A4 (zh) |
CN (1) | CN110892453B (zh) |
WO (1) | WO2019013430A1 (zh) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10897269B2 (en) | 2017-09-14 | 2021-01-19 | Apple Inc. | Hierarchical point cloud compression |
US11818401B2 (en) | 2017-09-14 | 2023-11-14 | Apple Inc. | Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables |
US10861196B2 (en) | 2017-09-14 | 2020-12-08 | Apple Inc. | Point cloud compression |
US11113845B2 (en) | 2017-09-18 | 2021-09-07 | Apple Inc. | Point cloud compression using non-cubic projections and masks |
US10909725B2 (en) | 2017-09-18 | 2021-02-02 | Apple Inc. | Point cloud compression |
US10699444B2 (en) | 2017-11-22 | 2020-06-30 | Apple Inc | Point cloud occupancy map compression |
US10607373B2 (en) | 2017-11-22 | 2020-03-31 | Apple Inc. | Point cloud compression with closed-loop color conversion |
US10909727B2 (en) | 2018-04-10 | 2021-02-02 | Apple Inc. | Hierarchical point cloud compression with smoothing |
US11010928B2 (en) | 2018-04-10 | 2021-05-18 | Apple Inc. | Adaptive distance based point cloud compression |
US10939129B2 (en) | 2018-04-10 | 2021-03-02 | Apple Inc. | Point cloud compression |
US10909726B2 (en) | 2018-04-10 | 2021-02-02 | Apple Inc. | Point cloud compression |
US11310518B2 (en) * | 2018-04-11 | 2022-04-19 | Sony Corporation | Image processing apparatus and method |
US11017566B1 (en) | 2018-07-02 | 2021-05-25 | Apple Inc. | Point cloud compression with adaptive filtering |
US11202098B2 (en) | 2018-07-05 | 2021-12-14 | Apple Inc. | Point cloud compression with multi-resolution video encoding |
US11012713B2 (en) | 2018-07-12 | 2021-05-18 | Apple Inc. | Bit stream structure for compressed point cloud data |
US11386524B2 (en) | 2018-09-28 | 2022-07-12 | Apple Inc. | Point cloud compression image padding |
US11367224B2 (en) | 2018-10-02 | 2022-06-21 | Apple Inc. | Occupancy map block-to-patch information compression |
US11430155B2 (en) | 2018-10-05 | 2022-08-30 | Apple Inc. | Quantized depths for projection point cloud compression |
CN111327906B (zh) * | 2018-12-13 | 2022-08-09 | 华为技术有限公司 | 点云编解码方法和编解码器 |
JP2022036353A (ja) | 2018-12-28 | 2022-03-08 | ソニーグループ株式会社 | 画像処理装置および方法 |
US11423642B2 (en) * | 2019-03-01 | 2022-08-23 | Tencent America LLC | Method and apparatus for point cloud compression |
US11272158B2 (en) | 2019-03-01 | 2022-03-08 | Tencent America LLC | Method and apparatus for point cloud compression |
WO2020183900A1 (ja) * | 2019-03-11 | 2020-09-17 | ソニー株式会社 | 情報処理装置、再生処理装置、情報処理方法及び再生処理方法 |
US11159811B2 (en) | 2019-03-15 | 2021-10-26 | Tencent America LLC | Partitioning of coded point cloud data |
CN118042135A (zh) * | 2019-03-19 | 2024-05-14 | 华为技术有限公司 | 点云编码方法、点云解码方法、装置及存储介质 |
US11057564B2 (en) | 2019-03-28 | 2021-07-06 | Apple Inc. | Multiple layer flexure for supporting a moving image sensor |
CN113785590A (zh) * | 2019-05-10 | 2021-12-10 | 松下电器(美国)知识产权公司 | 三维数据编码方法、三维数据解码方法、三维数据编码装置及三维数据解码装置 |
EP3973713A1 (en) * | 2019-05-23 | 2022-03-30 | VID SCALE, Inc. | Video-based point cloud streams |
CN110533645A (zh) * | 2019-08-23 | 2019-12-03 | 上海交通大学 | 基于视觉任务的点云数据压缩质量评价方法及*** |
US11627314B2 (en) | 2019-09-27 | 2023-04-11 | Apple Inc. | Video-based point cloud compression with non-normative smoothing |
US11562507B2 (en) | 2019-09-27 | 2023-01-24 | Apple Inc. | Point cloud compression using video encoding with time consistent patches |
US11538196B2 (en) | 2019-10-02 | 2022-12-27 | Apple Inc. | Predictive coding for point cloud compression |
US11895307B2 (en) | 2019-10-04 | 2024-02-06 | Apple Inc. | Block-based predictive coding for point cloud compression |
CN112995758B (zh) * | 2019-12-13 | 2024-02-06 | 鹏城实验室 | 点云数据的编码方法、解码方法、存储介质及设备 |
US20230059516A1 (en) * | 2020-01-02 | 2023-02-23 | Nokia Technologies Oy | Apparatus, a method and a computer program for omnidirectional video |
US11798196B2 (en) | 2020-01-08 | 2023-10-24 | Apple Inc. | Video-based point cloud compression with predicted patches |
US11625866B2 (en) | 2020-01-09 | 2023-04-11 | Apple Inc. | Geometry encoding using octrees and predictive trees |
US11620768B2 (en) | 2020-06-24 | 2023-04-04 | Apple Inc. | Point cloud geometry compression using octrees with multiple scan orders |
US11615557B2 (en) | 2020-06-24 | 2023-03-28 | Apple Inc. | Point cloud compression using octrees with slicing |
CN112785672B (zh) * | 2021-01-19 | 2022-07-05 | 浙江商汤科技开发有限公司 | 图像处理方法及装置、电子设备和存储介质 |
US11948338B1 (en) | 2021-03-29 | 2024-04-02 | Apple Inc. | 3D volumetric content encoding using 2D videos and simplified 3D meshes |
CN115412721B (zh) * | 2021-05-26 | 2024-05-28 | 荣耀终端有限公司 | 一种点云二维规则化平面投影方法及装置 |
US11979606B2 (en) * | 2021-06-04 | 2024-05-07 | Tencent America LLC | Conditional recolor for video based point cloud coding |
TWI816268B (zh) * | 2021-07-05 | 2023-09-21 | 財團法人工業技術研究院 | 內容拼貼編碼方法及內容拼貼解碼方法 |
CN115102934B (zh) * | 2022-06-17 | 2023-09-19 | 腾讯科技(深圳)有限公司 | 点云数据的解码方法、编码方法、装置、设备及存储介质 |
CN115690332B (zh) * | 2022-12-30 | 2023-03-31 | 华东交通大学 | 点云数据处理方法、装置、可读存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001202527A (ja) * | 2000-01-19 | 2001-07-27 | Hitachi Ltd | 3次元図形表示方法および3次元描画装置 |
CN101223552A (zh) * | 2005-08-17 | 2008-07-16 | Nxp股份有限公司 | 用于深度提取的视频处理方法和装置 |
CN102301396A (zh) * | 2008-12-02 | 2011-12-28 | 森西欧技术公司 | 对于数字图像流的帧进行编码和解码的方法和*** |
CN102474604A (zh) * | 2009-06-30 | 2012-05-23 | 高通股份有限公司 | 用于高效2d-3d呈现的视频解码器中的纹理压缩 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2517842A1 (en) * | 2001-11-27 | 2003-05-27 | Samsung Electronics Co., Ltd. | Node structure for representing 3-dimensional objects using depth image |
EP1474777A2 (en) * | 2002-02-01 | 2004-11-10 | Koninklijke Philips Electronics N.V. | Stepless 3d texture mapping in computer graphics |
US7230616B2 (en) * | 2002-07-31 | 2007-06-12 | International Business Machines Corporation | Bi-level iso-surface compression |
US20110298891A1 (en) * | 2010-06-04 | 2011-12-08 | Iowa State University Research Foundation, Inc. | Composite phase-shifting algorithm for 3-d shape compression |
US9002126B2 (en) * | 2012-05-04 | 2015-04-07 | Environmental Systems Research Institute (ESRI) | Limited error raster compression |
US9819964B2 (en) * | 2012-05-04 | 2017-11-14 | Environmental Systems Research Institute, Inc. | Limited error raster compression |
US20130329808A1 (en) * | 2012-06-12 | 2013-12-12 | Jorg-Ulrich Mohnen | Streaming portions of a quilted image representation along with content control data |
US10674135B2 (en) * | 2012-10-17 | 2020-06-02 | DotProduct LLC | Handheld portable optical scanner and method of using |
KR101756301B1 (ko) * | 2013-07-19 | 2017-07-10 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 깊이 기반 블록 파티셔닝을 사용하여 텍스처 블록을 인코딩 및 디코딩하는 방법 및 장치 |
RU2013137742A (ru) * | 2013-08-12 | 2015-02-20 | ЭлЭсАй Корпорейшн | Сжатие и восстановление изображений с глубиной с использованием данных о глубине и амплитуде |
US9489765B2 (en) * | 2013-11-18 | 2016-11-08 | Nant Holdings Ip, Llc | Silhouette-based object and texture alignment, systems and methods |
US9734595B2 (en) * | 2014-09-24 | 2017-08-15 | University of Maribor | Method and apparatus for near-lossless compression and decompression of 3D meshes and point clouds |
US10909725B2 (en) * | 2017-09-18 | 2021-02-02 | Apple Inc. | Point cloud compression |
-
2018
- 2018-03-30 WO PCT/KR2018/003804 patent/WO2019013430A1/en unknown
- 2018-03-30 EP EP18832181.4A patent/EP3642800A4/en active Pending
- 2018-03-30 CN CN201880046388.5A patent/CN110892453B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001202527A (ja) * | 2000-01-19 | 2001-07-27 | Hitachi Ltd | 3次元図形表示方法および3次元描画装置 |
CN101223552A (zh) * | 2005-08-17 | 2008-07-16 | Nxp股份有限公司 | 用于深度提取的视频处理方法和装置 |
CN102301396A (zh) * | 2008-12-02 | 2011-12-28 | 森西欧技术公司 | 对于数字图像流的帧进行编码和解码的方法和*** |
CN102474604A (zh) * | 2009-06-30 | 2012-05-23 | 高通股份有限公司 | 用于高效2d-3d呈现的视频解码器中的纹理压缩 |
Non-Patent Citations (2)
Title |
---|
Golla T 等.Real-time point cloud compression.《2015 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)》.2015,第5087-5092页. * |
Schnabel R 等.Fast vector quantization for efficient rendering of compressed point-clouds.《Computers & Graphics》.2008,第246-259页. * |
Also Published As
Publication number | Publication date |
---|---|
EP3642800A1 (en) | 2020-04-29 |
EP3642800A4 (en) | 2020-05-20 |
WO2019013430A1 (en) | 2019-01-17 |
CN110892453A (zh) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110892453B (zh) | 使用图像/视频编解码器的点云和网格压缩 | |
US11514613B2 (en) | Point cloud and mesh compression using image/video codecs | |
US10853974B2 (en) | Point cloud compression using non-orthogonal projection | |
US10916041B2 (en) | Method for depth image di coding | |
US11348283B2 (en) | Point cloud compression via color smoothing of point cloud prior to texture video generation | |
US11393132B2 (en) | Mesh compression | |
EP3665658B1 (en) | Point cloud compression using hybrid transforms | |
US11665372B2 (en) | Fast projection method in video-based point cloud compression codecs | |
US11216984B2 (en) | Patch splitting for improving video-based point cloud compression performance | |
US11210812B2 (en) | Single-pass boundary detection in video-based point cloud compression | |
US11922663B2 (en) | Decision-making rules for attribute smoothing | |
US10964067B2 (en) | Visual quality enhancement of reconstructed point clouds via color smoothing | |
US11803987B2 (en) | Attribute transfer in V-PCC | |
US20230308684A1 (en) | Tiling for video based point cloud compression | |
US11039115B2 (en) | Low complexity color smoothing of reconstructed point clouds | |
US20220058833A1 (en) | Complexity reduction of video-based point cloud compression encoding using grid-based segmentation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |