一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

动态点云分区打包方法和装置与流程

2021-12-04 02:23:00 来源:中国专利 TAG:

动态点云分区打包方法和装置
1.相关申请的交叉引用
2.本技术要求于2019年1月9日在美国专利商标局提交的申请号为62/790,446的美国临时专利申请、于2019年5月30日在美国专利商标局提交的申请号为62/854,953的美国临时专利申请以及于2019年7月3日在美国专利商标局提交的申请号为62/870,319的美国临时专利申请的优先权,这些申请的公开内容通过引用整体并入本技术中。


背景技术:
1、技术领域
3.与实施例一致的方法和装置涉及点云压缩(pcc),特别是涉及动态点云分区打包方法和装置。
4.2、相关技术的描述
5.对这个世界的高级三维(3d)表示,使得更多沉浸式的互动和交流形式成为可能,并且也使机器可以理解、解读和导航这个世界。3d点云已经成为此类信息的一种表示。目前人们已经确定出与点云数据相关联的多个用例,并且已经开发出点云表示和压缩的相应要求。
6.点云是3d空间中的一组点,每个点都具有相关联的属性,例如,颜色、材质等等。点云可以用于将一个对象或一个场景重建为这种点的组合。点云可以用各种设置中的多个相机和深度传感器进行采集,并且可由数千个点甚至数十亿个点组成,以逼真地表示重建的场景。
7.减少用于表示一个点云的数据量,需要使用压缩技术。因此,需要有对实时通信和六自由度(6dof)虚拟现实中使用的点云的有损压缩的技术。另外,人们也在寻求在自主驾驶应用和文化遗产应用等的动态映射上下文中使用的无损点云压缩的技术。运动图片专家组(movingpicture experts group,mpeg)已经开始致力于开发标准,用于处理几何结构和属性(例如,颜色和反射率)的压缩、可缩放/渐进式编码、随时间采集的点云序列的编码、以及对点云子集的随机访问。
8.例如,mpeg已经开始在测试模型2(v

pcc)中进行基于视频的点云压缩。v

pcc背后的主要思想是,将动态点云的几何、运动和纹理信息压缩为三个单独的视频序列。解译这三个视频序列所需的额外元数据(即,占用地图(occupancy)和辅助面片(patch)信息)是分别压缩的。元数据表示整个码流的少量码流,可以使用软件实施方式,有效地编码/解码。大量的元数据由视频编解码器处理。
9.在v

pcc架构内使用高效视频编解码(hevc)图块的内容感知点云压缩中,面片生成过程旨在将点云分解为具有平滑边界的最小数目的面片,同时还使重建误差最小。编码器可以实施各种方法来生成此分解体。
10.打包过程(packingprocess)旨在将所提取的面片映射到二维(2d)网格上,同时使未使用空间最小化并确保网格的每个m
×
m(例如,16
×
16)的块与唯一面片相关联。m是在码
流中编码并发送到解码器的、编码器定义的参数。
11.v

pcc使用简单的打包策略,该打包策略迭代地尝试将面片插入到w
×
h的网格中。w和h是与待编码的几何/纹理/运动视频图像的分辨率对应的用户定义的参数。通过按光栅扫描顺序应用的穷举搜索,确定面片位置。选择能够保证一面片的无重叠插入的第一位置,将由该面片覆盖的网格单元标记为已用。如果当前分辨率图像中没有能够适合面片的空白空间,则将网格的高度h暂时加倍,再次应用搜索。在该过程结束时,将h修剪为适合用过的网格单元。对于一个视频序列,使用确定整个图片群组(gop)的w和h的过程。
12.v

pcc将输入云分割成若干面片,将这些面片打包为两个2d图像(几何形状和属性)中,然后最终使用hevc压缩这些图像。
13.详细地,面片打包之后是背景填充(又名图像填充),背景填充简单地通过冗余信息填充未使用的空间。良好的背景填充可以最低限度地增加比特率,同时不会在面片边界周围引入显著的编解码失真。
14.图像生成过程利用在打包过程期间计算出的3d到2d映射,将点云的几何形状和纹理存储为图像。为了更好地处理投影到相同样本上的多个点,将每个面片投影到两个称为层的图像上。几何图像由yuv4:2:08比特格式的w
×
h单色帧表示。占用图像由二进制地图组成,该二进制地图为网格中的每个单元指示该单元属于空白空间还是属于点云。为了生成纹理图像,纹理生成过程利用已重建的/平滑的几何形状来计算待与重采样点相关联的颜色。
15.平滑程序旨在减轻由于压缩失真(artifact)而可能在面片边界出现的潜在不连续性。
16.3d空间中的非相邻面片经常是彼此相邻地打包在2d视频中。这意味着非相邻面片的像素值可能会由基于块的视频编解码器混合。颜色平滑的ae目标是减少出现在面片边界的可见失真。
17.所生成的图像/层存储为视频帧,并且根据作为参数提供的hevc配置、使用hevc进行压缩。


技术实现要素:

18.根据实施例,一种动态点云分区打包方法由至少一个处理器执行,并且所述方法包括:从点云的感兴趣区域(roi)获得至少一个roi面片,尝试按图块扫描顺序,将所获得的至少一个roi面片中的一个roi面片,打包到图块地图的其中一个图块中。所述方法还包括识别所述至少一个roi面片中的所述一个roi面片,是否成功打包到所述其中一个图块中,以及在确定所述至少一个roi面片中的所述一个roi面片未成功打包到所述其中一个图块中的基础上,将所述至少一个roi面片中的所述一个roi面片,切分为多个roi面片。
19.根据实施例,一种动态点云分区打包装置包括至少一个存储器,被配置为存储计算机程序代码,以及至少一个处理器,被配置为访问所述至少一个存储器,并根据所述计算机程序代码进行操作。所述计算机程序代码包括获得代码,被配置为使所述至少一个处理器,从点云的感兴趣区域(roi)获得至少一个roi面片,打包代码,被配置为使所述至少一个处理器,尝试按图块扫描顺序,将所获得的至少一个roi面片中的一个roi面片,打包到图块地图的其中一个图块中。所述计算机程序代码还包括识别代码,被配置为使所述至少一个
处理器,识别所述至少一个roi面片中的所述一个roi面片,是否成功打包到所述其中一个图块中,以及切分代码,被配置为使所述至少一个处理器,在确定所述至少一个roi面片中的所述一个roi面片未成功打包到所述其中一个图块中的基础上,将所述至少一个roi面片中的所述一个roi面片,切分为多个roi面片。
20.根据实施例,一种存储指令的非易失性计算机可读存储介质,所述指令使至少一个处理器从点云的感兴趣区域(roi)获得至少一个roi面片,尝试按图块扫描顺序,将所获得的至少一个roi面片中的一个roi面片,打包到图块地图的其中一个图块中,识别所述至少一个roi面片中的所述一个roi面片,是否成功打包到所述其中一个图块中。所述指令还使所述至少一个处理器,在确定所述至少一个roi面片中的所述一个roi面片未成功打包到所述其中一个图块中的基础上,将所述至少一个roi面片中的所述一个roi面片,切分为多个roi面片。
附图说明
21.图1是根据实施例的通信系统的框图。
22.图2是根据实施例的在一环境中放置pcc压缩器和pcc解压缩器的示意图。
23.图3是根据实施例的pcc压缩器的功能框图。
24.图4是根据实施例的pcc解压缩器的功能框图。
25.图5a是根据实施例的图示面片打包顺序的示意图。
26.图5b是根据实施例的图示在内容感知点云压缩(ca

pcc)中对单个感兴趣区域(roi)进行面片打包和切分的方法的流程图。
27.图5c是根据实施例的图示在ca

pcc中对多个roi进行面片打包的方法的示意图。
28.图6a是根据实施例的图示点云分区打包的方法的示意图。
29.图6b是根据实施例的图示对运动约束图块集(mcts)进行点云分区打包的方法的示意图。
30.图6c是根据实施例的图示对图块组进行点云分区打包的方法的示意图。
31.图7a是根据实施例的图示动态点云分区打包的方法的流程图。
32.图7b是根据实施例的用于动态点云分区打包的装置的框图。
33.图8是适用于实现各实施例的计算机系统的示意图。
具体实施方式
34.本技术中描述的实施例提供了动态点云分区打包的方法和装置。给定3d边界框形式的roi规范,内容感知点云压缩系统需要实现以下特征中的全部特征或其中一些特征:
35.1)roi的编解码质量高于点云的其它部分;
36.2)roi的编解码独立于点云的其它部分,便于空间随机访问,而无需全解码;
37.3)roi的独立编解码需要与关于独立(并行)编码/解码的任何系统要求协调;以及
38.4)需要支持多个roi。
39.ca

pcc解决了所有上述需求。在ca

pcc中,执行roi切分,以更好地打包单个roi和多个roi。roi切分是完全自动的过程,从而为每个roi云自动导出多个块,而不是由用户设置。
40.图1是根据本技术实施例的通信系统100的框图。通信系统100可以包括经由网络150互连的至少两个终端110和120。对于数据的单向传输,第一终端110可在本地位置对点云数据进行编码,以便将其经由网络150传输到第二终端120。第二终端120可以从网络150接收第一终端110的已编码的点云数据,对已编码的点云数据进行解码并且显示已解码的点云数据。单向数据传输在媒体服务应用等之中可能是常见的。
41.图1还示出了第二对终端130和140,所述第二对终端130和140被提供来支持例如在视频会议期间可能出现的已编码的点云数据的双向传输。对于数据的双向传输,每个终端130或140可以对在本地位置采集的点云数据进行编码,以便将其经由网络150传输给另一个终端。每个终端130或140还可以接收由另一个终端传输的已编码的点云数据,可以对已编码的点云数据进行解码,并且可在本地显示设备上显示已解码的点云数据。
42.在图1中,终端110

140可能是图示为服务器、个人计算机和智能电话,但是本技术实施例的原理不限于此。本技术实施例适用于膝上型计算机、平板计算机、媒体播放器和/或专用视频会议装备。网络150表示在终端110

140之间传送已编码的点云数据的任意数量的网络,包括例如有线和/或无线通信网络。通信网络150可在电路交换信道和/或分组交换信道中交换数据。代表性网络包括电信网络、局域网、广域网和/或因特网。出于本技术讨论的目的,除非在下文中另有解释,否则网络150的架构和拓扑对于本技术实施例的操作而言,可能是不重要的。
43.图2是根据本技术实施例的在一环境中放置pcc压缩器203和pcc解压缩器210的示意图。本技术所公开的主题可以同等地适用于其他通过点云实现的应用,包括例如视频会议、数字电视、在数字介质(包括cd、dvd、记忆棒等)上存储压缩的点云数据等。
44.流系统200可以包括采集子系统213,所述采集子系统213可以包括点云源201,例如,数码相机,用于创建例如未压缩的点云数据202。具有较高数据量的点云数据202可由耦接到点云源201的pcc压缩器203处理。pcc压缩器203可以包括硬件、软件或其组合,以实施或实现本技术所公开主题的各方面,在下文详细描述。具有较低数据量的已编码的点云数据204可以存储在流服务器205上,以供将来使用。至少一个流客户端206和208可以访问流服务器205来检索已编码的点云数据204的副本207和209。客户端206可以包括pcc解压缩器210,所述pcc解压缩器210对已编码的点云数据的输入副本207进行解码,并且创建可在显示器212或其他呈现设备(未示出)上呈现的传出点云数据211。在一些流系统中,已编码的点云数据204、207和209可以是根据视频编码/压缩标准进行编码。这些标准的示例包括mpeg针对pcc开发的那些标准。
45.图3是根据实施例的pcc压缩器203的功能框图。
46.如图3所示,pcc压缩器203可以接收一个或多个点云帧350,并基于点云帧350,生成几何图像352、纹理图像356和占用地图334。pcc压缩器203可以将几何图像352压缩为压缩的几何图像362,将纹理图像356压缩为压缩的纹理图像364,以及将占用地图334压缩为压缩的占用地图372。pcc压缩器203的多路复用器328可以形成压缩的码流374,该压缩的码流374包括压缩的几何图像362、压缩的纹理图像364和压缩的占用地图372。
47.更具体地,在各实施例中,pcc压缩器203可以包括将点云帧350分割成面片的面片生成模块302。面片是pcc的有用实体。面片生成过程包括将点云帧350分解成具有平滑边界的最小数目的面片,同时还使重建误差最小化。本技术的编码器可以实施各种方法来生成
此分解体。
48.pcc压缩器203可以包括执行打包过程的面片打包模块304。打包过程包括将提取的面片映射到2d网格上,同时使未使用空间最小化并保证网格的每个m
×
m(例如,16
×
16)的块与唯一面片相关联。有效的面片打包通过使未使用空间最小化,或通过确保时间一致性来直接影响压缩效率。面片打包模块304可以生成占用地图334。
49.pcc压缩器203可以包括几何图像生成模块306和纹理图像生成模块308。为了更好地处理多个点投影到相同样本的情况,可以将每个面片投影到两个称为层的图像上。例如,几何图像生成模块306和纹理图像生成模块308可以利用在面片打包模块304的打包过程期间计算出的3d到2d映射,将点云的几何形状和纹理存储为图像(又名“层”)。所生成的图像/层可以存储为视频帧,并且可以根据提供为参数的配置,使用视频编解码器(例如,hm视频编解码器)进行压缩。
50.在各实施例中,基于输入点云帧350和占用地图334,几何图像生成模块306生成几何图像352,纹理图像生成模块308生成纹理图像356。在实施例中,几何图像352可以由yuv420

8比特格式的w
×
h的单色帧表示。在实施例中,占用地图334图像由二进制地图组成,该二进制地图为网格中的每个单元指示该单元属于空白空间还是属于点云。为了生成纹理图像356,纹理图像生成模块308可以利用已重建的/平滑的几何形状358来计算待与重采样的点相关联的颜色。
51.pcc压缩器203还可以包括图像填充模块314和图像填充模块316,用于分别填充几何图像352和纹理图像356,以形成填充的几何图像354和填充的纹理图像360。图像填充(又名背景填充)简单地用冗余信息填充图像中的未使用空间。良好的背景填充是一种最低限度地增加比特率,而不会在面片边界周围引入显著的编解码失真的填充。图像填充模块314和图像填充模块316可以使用占用地图334,分别形成填充的几何图像354和填充的纹理图像360。在实施例中,pcc压缩器203可以包括组扩张(dilation)模块320,以形成填充的纹理图像360。
52.pcc压缩器203可以包括视频压缩模块322和视频压缩模块324,用于将填充的几何图像354和填充的纹理图像360,分别压缩为压缩的几何图像362和压缩的纹理图像364。
53.pcc压缩器203可以包括用于对占用地图334进行无损编码366的熵压缩模块318,和用于对占用地图334进行有损编码368的视频压缩模块326。
54.在各实施例中,pcc压缩器203可以包括平滑模块310,用于通过使用由视频压缩模块322提供的重建的几何图像365以及面片信息332,生成平滑的几何形状358。平滑模块310的平滑程序,可以旨在减轻由于压缩失真,而在面片边界出现的潜在不连续性。平滑的几何形状358可以由纹理图像生成模块308使用,生成纹理图像356。
55.pcc压缩器203还可以包括辅助面片信息压缩模块312,用于形成由多路复用器328在压缩的码流374中提供的压缩的辅助面片信息370。
56.图4是根据实施例的pcc解压缩器210的功能框图。
57.如图4所示,pcc解压缩器210可以从pcc压缩器203接收已编码码流374,以获得压缩的几何图像362、压缩的纹理图像364、压缩的占用地图372和压缩的辅助面片信息370。pcc解压缩器210可以对压缩的几何图像362、压缩的纹理图像364、压缩的占用地图372和压缩的辅助面片信息370进行解码,以分别获得解压缩的纹理图像460、解压缩的几何图像
462、解压缩的占用地图464和解压缩的辅助面片信息466。接下来,pcc解压缩器210可以基于解压缩的纹理图像460、解压缩的几何图像462、解压缩的占用地图464和解压缩的辅助面片信息466,生成重建的点云474。
58.在各实施例中,pcc解压缩器210可以包括解复用器402,该解复用器402将所接收的压缩的码流374的压缩的几何图像362、压缩的纹理图像364、压缩的占用地图372和压缩的辅助面片信息370进行分离。
59.pcc解压缩器210可以包括视频解压缩模块404、视频解压缩模块406、占用地图解压缩模块408和辅助面片信息解压缩模块410,这些模块分别对压缩的几何图像362、压缩的纹理图像364、压缩的占用地图372和压缩的辅助面片信息370进行解码。
60.pcc解压缩器210可以包括几何形状重建模块412,该几何形状重建模块412基于解压缩的几何图像462、解压缩的占用地图464和解压缩的辅助面片信息466,获得重建的(三维)几何形状468。
61.pcc解压缩器210可以包括平滑模块414,该平滑模块414对重建的几何形状468进行平滑,以获得平滑的几何形状470。平滑程序可以旨在减轻由于压缩失真,而可能在面片边界出现的潜在不连续性。
62.pcc解压缩器210可以包括纹理重建模块416,用于基于解压缩的纹理图像460和平滑的几何形状470,获得重建的纹理472。
63.pcc解压缩器210可以包括颜色平滑模块418,该颜色平滑模块418对重建的纹理472的颜色进行平滑,以获得重建的点云474。3d空间中的非相邻面片经常是彼此相邻地打包在2d视频中。这意味着非相邻面片的像素值可能会由基于块的视频编解码器混合。颜色平滑模块418的颜色平滑可以旨在减少出现在面片边界的可见失真。
64.现在将详细描述动态点云分区打包方法和装置。这种方法和装置可以在上述pcc压缩器203中实现,即面片打包模块304。该方法和装置还可以在上述pcc解压缩器210中实现,即辅助面片信息解压缩模块410。
65.单个roi
66.首先考虑单个roi。ca

pcc将输入云划分成两个云:
67.1)包括非roi点的非roi云;以及
68.2)包括roi点的roi云。
69.ca

pcc改变面片生成过程,从而独立地生成roi云和非roi云的面片。这样做保证了任何单个面片完全属于roi云或完全属于非roi云。这隐含地产生:
70.1)roi面片集;以及
71.2)非roi面片集。
72.ca

pcc将所有的roi面片,打包到尽可能少的图块中,并且用户通常设置由roi云划分成的多个块,使得不会有roi面片跨过hevc图块边界。本文描述的实施例包括导出roi云被划分成的块的数目的全自动roi切分方法。
73.在ca

pcc之后,首先将所有的roi面片打包在画布上,约束条件是将每个roi面片打包在单个图块中。一旦将所有的roi面片打包,就将非roi面片打包在画布的剩余未占用区域上,其中多个图块可以覆盖一个非roi面片。
74.图5a是根据实施例的图示面片打包顺序的示意图。
75.任意图块地图可以具有w
×
h的大小,其中w是宽度,h是高度。在图5a中,图块地图505具有4
×
4的大小,包括16个图块510。
76.根据图5a中虚线描绘的图块扫描顺序,将当前roi面片完全打包在单个图块中。图块扫描顺序可以任意选择。
77.如果当前roi面片不完全适合第i个图块,则尝试将当前roi放入第(i 1)个图块中。如果当前roi面片不适合任何图块,直到最后一个图块,则将该roi面片切分为两个或更多个较小的roi子云。按照上述程序,对每个roi子云独立地打面片,并一个接一个地打包。递归地进行上述切分和面片生成过程,直到将任何roi面片完全打包在单个图块中。
78.图5b是根据实施例的图示在ca

pcc中对单个roi进行面片打包和切分的方法515的流程图。
79.在一些实施方式中,图5b的至少一个过程方框可以由pcc压缩器203执行。在一些实施方式中,图5b的至少一个过程方框可以由与pcc压缩器203分开的或包括pcc压缩器203的另一设备或一组设备来执行,例如解压缩器210。
80.参照图5b,在操作520中,方法515包括获得包括非roi云和由3d边界框指定的roi云的输入云。
81.在操作525中,方法515包括从非roi云获得n
non

roi
个非roi面片。
82.在操作530中,方法515包括从非roi云获得n
roi
个roi面片。
83.在操作535中,方法515包括将变量k设置为0。
84.在操作540中,方法515包括将变量k递增到k 1。
85.在操作545中,方法515包括尝试按图块扫描顺序,将roi面片中的第k个roi面片,打包到图块地图的其中一个图块中。尝试对任意图块进行打包,直到最后一个图块。
86.在操作550中,方法515包括确定是否成功将第k个roi面片打包到图块中。在确定成功将第k个roi面片打包的基础上,方法515在操作555中继续。否则,方法515在操作560中继续。
87.在操作555中,方法515包括确定变量k是否等于roi面片的数目n
roi
。在确定变量等于数目n
roi
的基础上,方法515在操作565中继续。否则,方法515返回到操作540。
88.在操作560中,方法515包括将第k个roi面片切分为两个或更多个roi子云或面片。方法515然后返回到操作530。
89.在操作565中,方法515包括将变量k设置为0。
90.在操作570中,方法515包括将变量k递增到k 1。
91.在操作575中,方法515包括将非roi面片中的第k个非roi面片,打包到图块地图的空白空间中。
92.在操作580中,方法515包括确定变量k是否等于非roi面片的数目n
non

roi
。在确定变量k等于数目n
non

roi
的基础上,方法515结束。否则,方法515返回到操作570。
93.尽管图5b示出了方法515的示例方框,但是在一些实施方式中,方法515可以包括相比图5b中描绘的那些方框之外的另外的方框、比其更少的方框、与其不同的方框或与其布置不同的方框。附加地或可选地,方法515的方框中的两个或多个可以被并行执行。
94.此外,本技术所提出的方法可由处理电路(例如,至少一个处理器或至少一个集成电路)来实现。在一个示例中,至少一个处理器执行存储在非易失性计算机可读介质中的程
序,以执行本技术所提出的方法中的至少一种方法。
95.为了支持随机存取(即,roi云的独立解码),用信号通知覆盖roi面片的图块的索引(roi_tile_indexes)。在具有这些索引的情况下,解码器(pcc解压缩器210)可以独立地对roi云进行解码。
96.多个roi
97.现在考虑多个roi。创建多个roi面片集(每个roi云一个roi面片集),而不是仅创建单个roi面片集。按照上面针对单个roi描述的算法,一个接一个地对这些roi面片集进行打包。
98.图5c是根据实施例的图示在ca

pcc中对多个roi进行面片打包的方法的示意图。
99.参照图5c,每个散列图案585表示一个roi云的一个面片集。用于表示多组面片集的多个散列图案585,按照上面针对单个roi描述的算法,一个接一个地打包。
100.为了支持随机存取(即,独立地对每个roi云进行解码),每个图块510覆盖至多一个roi云的roi面片。对于每个roi云,用信号通知覆盖该roi的面片的图块的索引(tile_indexes_per_roi)。在具有索引tile_indexes_per_roi[i]的情况下,解码器(pcc解压缩器210)可以对第i个roi云独立地解码。
[0101]
用于在ca

pcc中进行面片打包和切分的说明性语法在以下表1中示出,相关语义用粗体表示:
[0102]
表1
[0103][0104]
content_aware_pcc_metadata_present_flag指示是否存在任何roi(单个roi或多个roi)。
[0105]
tile_scan_order[t]确定在图块扫描的第t步所扫描的图块的索引,以打包当前面片。按从0到num_tiles_hor*num_tiles_ver图块

1的光栅扫描顺序,对图块进行索引。如果水平方向和垂直方向上的最大图块数目为32,则tile_scan_order[t]的值应在[0,1024]的范围内。
[0106]
tile_indexes_per_roi[r][t]指示完全覆盖第r个roi的图块列表。
[0107]
单个roi和多个roi的解码过程
[0108]
解码过程的输入为:
[0109]
1)图块扫描顺序(例如,图5a中的图块扫描顺序是0,4,8,12,1,5,13,9,2

);以及
[0110]
2)对于每个roi,完全覆盖该roi的图块索引的列表。
[0111]
如果解码器(pcc解压缩器210)想要对第r个roi进行解码,则解码器对覆盖第r个roi的图块索引的列表进行解码。解码器接着使用图块扫描顺序,导出这些roi图块的位置。然后对roi图块进行解码,并且从而重建roi云。
[0112]
上述实施例包括在v

pcc框架内或ca

pcc框架内打包多个分区或roi。将点云划分为几个分区,支持并行(独立)编码/解码。这样做时,将每个3d分区(子云)独立地打面片,以支持分区级的并行处理。然后将得到的面片在2d下打包。
[0113]
为了保持在视频压缩阶段的并行处理(同样是在分区级)的支持,以及为了实现视频层的独立解码,可以将每个分区的面片,打包到独占图块集中,使得每个图块不允许具有多于一个分区的面片。该设计支持分区级的并行编码/解码。
[0114]
然而,如果在视频压缩阶段使用mcts或图块组,则仍然存在问题。考虑将输入云划分为4个分区的示例。此处,分区的大小可以随时间改变,因此分区所占用的图块的数目可以随之改变。按照上述算法,每个分区是独立地打面片和打包,如图6a所示。
[0115]
图6a是根据实施例的图示点云分区打包的方法的示意图。
[0116]
参照图6a,帧605、帧610和帧615中的每一帧独立地打包。帧605、帧610和帧615中的每一帧中的每个方块表示一个图块。
[0117]
输入云被划分为分别由数字0、1、2和3指示的四个分区。每个分区0、1、2或3打包在不与其它分区共享的独占图块集中。如具有不同时间的帧605、帧610和帧615中所示,分区占用的图块的数目可以随时间改变。
[0118]
虽然这里保证了并行编码/解码,但是mcts或图块组不适用于这种场景,因为例如在帧605中,具有索引2的图块606由分区0占用,而在帧610和帧615中,由分区1占用。在另一示例中,在帧605和帧610中,具有索引4和索引5(按光栅扫描次序)的图块607和图块608包含分区1的面片,而在帧615中,包含分区2的面片。
[0119]
即,对于mcts或图块组,运动预测限制在一个图块或一个图块组,并且图块或图块组应当仅包含一个分区的面片。否则,可能会失去运动预测的益处。为了利用mcts或图块组,期望图块包含从帧到帧相同分区的面片。
[0120]
支持mcts的动态云的分区打包
[0121]
在实施例中,为了支持mcts,在帧群组(gof)级执行面片打包。如果编码器的延时不是问题,这也可以在序列级完成。假设p表示分区的数目,f是gof的帧的数目。此外,第f帧中的第p分区占用的图块的数目由nt(p,f)表示。打包第p分区的面片所需的最大图块数目(一帧中)由以下确定:
[0122][0123]
一旦确定了最大图块数目nt
gof
(p),0≤p≤p

1,从左上角图块开始,将具有索引0(遵循光栅扫描顺序)到索引nt
gof
(0)

1的图块,分配给分区0。然后,将具有索引nt
gof
(0)到索引nt
gof
(0) nt
gof
(1)

1的图块,分配给分区1。总体而言,将具有索引到索引的图块,分配给分区p。此过程确保相同的图块集均用于整个gof中的每个分区,无论分区的大小如何随时间而改变。图6b示出了图6a中描绘的场景的图块的重新排列。
[0124]
图6b是根据实施例的图示用于mcts的点云分区打包的方法的示意图。
[0125]
参照图6b,一个图块由包括例如帧620、帧625和帧630的整个gof中的相同分区占用。作为示例,考虑分区0。分区0占用的图块的最大数目是3,因此将帧620的前3个图块621、622和623分配给分区0。
[0126]
结果,可以在帧625和帧630中改变占用地图。再次考虑分区0,在帧625中将具有索引2的图块623设置为未占用或没有占用(no),并且在帧630中将分别具有索引1和索引2的图块622和图块623设置为未占用或没有占用。相应地,同一个图块集总是用于特定分区,该特定分区适合于mcts。
[0127]
在实施例中,空间一致性算法仅在由每个分区占用的图块内独立地应用于该分区。在v

pcc中部署空间一致性算法来在时间上对齐面片以改进视频编解码器的帧间预测。
[0128]
支持图块组的动态云的分区打包
[0129]
图块组是可以包含至少一个图块的矩形区域。每个图块组可以独立地进行解码。为了使上述算法与图块组兼容,编码器重新排列图块,使得对于gof中的所有帧,每个图块组仅包含一个分区的图块。该操作可以由编码器根据系统是否指定了图块组地图,以任何期望的方式完成。图6c示出了将图6b中所描绘的图块,重新排列成四个图块组。
[0130]
图6c是根据实施例的图示对图块组进行点云分区打包的方法的示意图。
[0131]
参照图6c,图块排列成由粗实线标记的四个图块组。每个图块组是仅包含一个分区的图块的矩形区域,并且对于所有的帧635、帧640和帧645保持相同。例如,如图6c所示,第一图块组仅包括分区0的四个图块,第二图块组仅包括分区1的四个图块,第三图块组仅包括分区2的三个图块,第四图块组仅包括分区3的一个图块。
[0132]
只要编码器确保每个图块组可以(按面积)适合一个分区的所有图块,图块组的形状和它们在帧内的位置是任意的,并且取决于编码器或系统要求。
[0133]
在各实施例中,用于每个分区的空间一致性算法仅在由该分区占用的图块组内独立地应用。
[0134]
超级边界框
[0135]
点云的边界框可能随时间急剧变化。这有两个结果:与分区相关联的边界框可能会在时间上显著变化,以及一个分区可能从帧到帧被打包到不同数目的图块中。如前文所讨论的,图块组可以用于打包单个分区的面片。即使使用图块组,无论分区有多大,其边界框也可能随时间急剧改变。可以在分区级执行独立解码,而将帧间预测约束在仅单个分区。
[0136]
单个超级边界框也与每个图块组相关联,每个图块组在时间上完全包含一个分区的所有边界框。在对该超边界框进行解码之后,解码器可以决定在已编码点云序列(cpcs)级对分区进行完全解码,或完全跳过对分区进行解码。同时还引入了次要语法,以帮助解码器跳过对图块组内的一些未占用图块进行解码。
[0137]
具体地,分区p可以被打包到由tg
p
表示的单个图块组中。假设均匀平铺,其中图块维度为t
w
和t
h
。对于每个帧,首先将分区p的面片打包到大小为t
w
×
t
h
的面片中,类似于图6a所示。
[0138]
打包帧i中的分区p的面片所需的图块的最小数目可以由n
i
表示。因为分区p的边界框随时间改变,所以最小数目n
i
可以随帧而改变。为了使图块组tg
p
仅包含分区p的面片,需要图块组tg
p
跨越至少最大数目的图块。只要图块组tg
p
跨越最大数目n
max
的图块,图块组的形状是任意的且可以由编码器确定,如图6c中所示。具有最大图块数目n
max
的大小的图块组tg
p
保证将分区p完全打包在图块组tg
p
中,最小大小的图块组可以在所有帧处适合分区p。因此,这实现了分区p的独立解码,并且实现了单个分区内的帧间预测。值得注意的是,图块组可以包含未被任何面片占用的多个图块。
[0139]
本文描述的实施例包括两个语法元素集。
[0140]
首先,在cpcs级,每个图块组的已占用图块的索引由编码器用信号通知给解码器。这可以告知解码器跳过对未占用的图块的解码。
[0141]
其次,在cpcs级,每个图块组tg
p
的超边界框bb
tg
由编码器用信号通知给解码器。该超边界框完全包含分区p在所有帧的所有边界框。更精确地,第i帧的边界框可以由bb
i
=[x
min
,x
max
,y
min
,y
max
,z
min
,z
max
]
i
表示。然后通过下式计算超级边界框bb
tg

[0142][0143]
在对超边界框bb
tg
进行解码的情况下,解码器可以决定在视频编解码器层对分区进行解码,或完全跳过该分区的解码。
[0144]
例如,参照图6c,分区0的图块组的超边界框636包括从左上图块开始的前3个图块,如针对帧635所示。在有超边界框636的情况下,解码器可以对帧635的分区0进行解码,但可以跳过对帧640和帧645的分区0进行解码。
[0145]
用于对组图块组进行分区打包的说明性语法在下表2中示出,相关语义用粗体表示:
[0146]
表2
[0147]
[0148][0149][0150]
partitions_present_flag指示点云是否已划分。
[0151]
tile_group_num_occupied_tiles_minus1[i]指示第i个图块组内的已占用图块
的数目。
[0152]
tile_group_occupied_tile_index[i][j]指示第i个图块组的第j个图块的索引(图块组中的位置)。
[0153]
tile_group_bounding_box_min_x[i]指示在cpcs级的分区i的边界框的x坐标的最小值。
[0154]
tile_group_bounding_box_max_x[i]指示在cpcs级的分区i的边界框的x坐标的最大值。
[0155]
tile_group_bounding_box_min_y[i]指示在cpcs级的分区i的边界框的y坐标的最小值。
[0156]
tile_group_bounding_box_max_y[i]指示在cpcs级的分区i的边界框的y坐标的最大值。
[0157]
tile_group_bounding_box_min_z[i]指示在cpcs级的分区i的边界框的z坐标的最小值。
[0158]
tile_group_bounding_box_max_z[i]指示在cpcs级的分区i的边界框的z坐标的最大值。
[0159]
图块组的解码过程
[0160]
用于图块组的解码过程的输入包括:1)指示是否存在分区的标志,2)每个图块组对应的超边界框,以及3)每个图块组的已占用图块的位置。
[0161]
如果存在云分区,则解码器知道每个图块组仅包含单个分区。解码器还知道每个图块组对应的超边界框,基于此,该解码器可以决定对分区进行解码或跳过该分区的解码。解码器还可以对可用于解码的已占用图块和未占用图块的位置进行解码。
[0162]
图7a是根据实施例的图示动态点云分区打包的方法700的流程图。
[0163]
在一些实施方式中,图7a的至少一个过程方框可以由pcc解压缩器210执行。在一些实施方式中,图7a的至少一个过程方框可以由与pcc解压缩器210分开或包括pcc解压缩器210的另一设备或一组设备来执行,例如pcc压缩器203。
[0164]
参照图7a,在操作710中,方法700包括从点云的感兴趣区域(roi)获得至少一个roi面片。
[0165]
在操作720中,方法700包括尝试按图块扫描顺序,将所获得的至少一个roi面片中的一个roi面片,打包到图块地图的其中一个图块中。
[0166]
在操作730中,方法700包括识别所述至少一个roi面片中的所述一个roi面片,是否成功打包到所述其中一个图块中。
[0167]
在操作740中,方法700包括:在确定所述至少一个roi面片中的所述一个roi面片未成功打包到所述其中一个图块中的基础上,将所述至少一个roi面片中的所述一个roi面片,切分为多个roi面片。
[0168]
方法700可以进一步包括:尝试按图块扫描顺序,将由所述至少一个roi面片中的所述一个roi面片切分的、所述多个roi面片中的一个roi面片,打包到所述其中一个图块中,识别所述多个roi面片中的所述一个roi面片,是否成功打包到所述其中一个图块中,以及在确定所述多个roi面片中的所述一个roi面片未成功打包到所述其中一个图块中的基础上,将所述多个roi面片中的所述一个roi面片,切分为多个roi面片。
[0169]
方法700可以进一步包括:将点云划分为多个分区,以及将由点云划分的、所述多个分区中的每一个分区,打包到不由所述多个分区中的任一个分区共享的图块集中。
[0170]
方法700可以进一步包括:将点云划分为多个分区,针对由所述点云划分的、所述多个分区中的每一个分区,从一组帧中获得待用于打包所述多个分区中的相应分区的帧中的、最大数目的图块,以及将多个分区中的每一个分区,打包到所述一组帧的每一帧中的、针对多个分区中的相应分区而获得的、最大数目的图块中。
[0171]
方法700可以进一步包括:将点云划分为多个分区,以及将由所述点云划分的、所述多个分区中的每一个分区,打包到一组图块中,该组图块不由所述多个分区中的任一个分区共享,并且对于一组帧中的所有帧保持相同。
[0172]
方法700可以进一步包括:传输所述多个分区中的相应分区打包到的、所述一组图块的超边界框的信息,该超边界框包括用于一组帧中的所有帧的、所述多个分区中的相应分区打包到的、所有图块。
[0173]
方法700可以进一步包括:在确定所述至少一个roi面片中的所述一个roi面片成功打包到所述其中一个图块中的基础上,传输所述其中一个图块的索引。
[0174]
尽管图7a示出了方法700的示例方框,但是在一些实施方式中,方法700可以包括相比图7a中描绘的那些方框之外的另外的方框、比其更少的方框、与其不同的方框或与其布置不同的方框。附加地或可选地,方法700的方框中的两个或更多个可以被并行执行。
[0175]
此外,本技术所提出的方法可由处理电路(例如,至少一个处理器或至少一个集成电路)来实现。在一个示例中,至少一个处理器执行存储在非易失性计算机可读介质中的程序,以执行本技术所提出的方法中的至少一种方法。
[0176]
图7b是根据实施例的用于动态点云分区打包的装置750的框图。
[0177]
参照图7b,装置750包括获得代码760、打包代码770、识别代码780和切分代码790。
[0178]
获得代码760被配置为使至少一个处理器,从点云的感兴趣区域(roi)获得至少一个roi面片。
[0179]
打包代码770被配置为使至少一个处理器,尝试按图块扫描顺序,将所获得的至少一个roi面片中的一个roi面片,打包到图块地图的其中一个图块中。
[0180]
识别代码780被配置为使至少一个处理器,识别至少一个roi面片中的所述一个roi面片,是否成功打包到所述其中一个图块中。
[0181]
切分代码790被配置为使至少一个处理器,在确定所述至少一个roi面片中的所述一个roi面片未成功打包到所述其中一个图块中的基础上,将所述至少一个roi面片中的所述一个roi面片,切分为多个roi面片。
[0182]
打包代码770可以还被配置为使至少一个处理器,尝试按图块扫描顺序,将由所述至少一个roi面片中的所述一个roi面片切分的、所述多个roi面片中的一个roi面片,打包到所述其中一个图块中。识别代码780可以还被配置为使至少一个处理器,识别所述多个roi面片中的所述一个roi面片,是否成功打包到所述其中一个图块中。切分代码790可以进一步被配置为使至少一个处理器,在确定所述多个roi面片的所述一个roi面片未成功打包到所述其中一个图块中的基础上,将所述多个roi面片中的所述一个roi面片,切分为多个roi面片。
[0183]
装置750可以还包括划分代码,该划分代码被配置为使至少一个处理器,将点云划
分为多个分区。打包代码770可以还被配置为使至少一个处理器,将由所述点云划分的、所述多个分区中的每一个分区,打包到不由多个分区中的任一个分区共享的图块集中。
[0184]
装置750可以还包括划分代码,该划分代码被配置为使至少一个处理器,将点云划分为多个分区。获得代码760可以还被配置为使至少一个处理器,针对由所述点云划分的、所述多个分区中的每一个分区,从一组帧中获得待用于打包所述多个分区中的相应分区的帧中的、最大数目的图块。打包代码770可以还被配置为使至少一个处理器,将所述多个分区中的每一个分区,打包到所述一组帧的每一帧中的、针对所述多个分区中的相应分区而获得的、所述最大数目的图块中。
[0185]
装置750可以还包括划分代码,该划分代码被配置为使至少一个处理器将点云划分为多个分区。打包代码770可以还被配置为使至少一个处理器,将由所述点云划分的、所述多个分区中的每一个分区,打包到一组图块中,所述一组图块不由所述多个分区中的任一个分区共享,并且对于一组帧中的所有帧保持相同。
[0186]
装置750可以还包括传输代码,该传输代码被配置为使至少一个处理器,传输所述多个分区中的相应分区打包到的、所述一组图块的超边界框的信息,所述超边界框包括用于所述一组帧中的所有帧的、所述多个分区中的所述相应分区打包到的、所有图块。
[0187]
装置750可以还包括传输代码,该传输代码被配置为使至少一个处理器,在确定所述至少一个roi面片中的所述一个roi面片成功打包到所述其中一个图块中的基础上,传输所述其中一个图块的索引。
[0188]
图8是适用于实施本技术实施例的计算机系统800的示意图。
[0189]
可使用任何合适的机器代码或计算机语言来编码所述计算机软件,所述机器代码或计算机语言可经受汇编、编译、链接或类似机制以创建包括指令的代码,所述指令可直接或通过解译、微码执行等而由计算机中央处理单元(central processing unit,cpu)、图形处理单元(graphics processingunit,gpu)等执行。
[0190]
可在各种类型的计算机或计算机组件上执行所述指令,所述计算机或计算机组件包括例如个人计算机、平板电脑、服务器、智能电话、游戏装置、物联网装置等。
[0191]
图8中所示的用于计算机系统800的组件在本质上是示范性的,并非旨在暗示关于实施本技术的实施例的计算机软件的使用或功能的范围的任何限制。也不应将组件的配置解释为对计算机系统800的示范性实施例中所示的组件中的任一个组件或组件组合有任何依赖或需求。
[0192]
计算机系统800可包括某些人机接口输入装置。此类人机接口输入装置可响应于至少一个人类用户通过例如触觉输入(例如:按键、滑动、数据手套移动)、音频输入(例如:语音、拍击)、视觉输入(例如:手势)、嗅觉输入(未描绘)进行的输入。人机接口装置还可用于捕获未必与人的有意识输入直接相关的某些媒体,例如音频(例如:话语、音乐、环境声)、图像(例如:扫描图像、从静态图像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
[0193]
输入人机接口装置可包括以下至少一个(每种仅描绘一个):键盘801、鼠标802、轨迹垫803、触摸屏810、操纵杆805、麦克风806、扫描仪807、相机808。
[0194]
计算机系统800还可包括某些人机接口输出装置。此类人机接口输出装置可通过例如触觉输出、声音、光和气味/味道刺激至少一个人类用户的感觉。此类人机接口输出装
置可包括触觉输出装置(例如触摸屏810或操纵杆805的触觉反馈,但还可存在不充当输入装置的触觉反馈装置)、音频输出装置(例如:扬声器809、头戴式耳机(未描绘))、视觉输出装置(例如屏幕810,包括阴极射线管(crt)屏幕、液晶显示器(lcd)屏幕、等离子体屏幕、有机发光二极管(oled)屏幕,各自具有或不具有触摸屏输入能力,各自具有或不具有触觉反馈能力
‑‑
其中的一些能够通过例如立体平画输出的方式输出二维视觉输出或大于三维的输出;虚拟现实眼镜(未描绘)、全息显示器和烟雾箱(未描绘)),以及打印机(未描绘)。图形适配器850生成图像并输出给触摸屏810。
[0195]
计算机系统800还可包括人类可访问的存储装置和存储装置的相关联介质,例如光学介质,包括具有cd/dvd等介质821的cd/dvd rom/rw820、拇指驱动器822、可移动硬盘驱动器或固态驱动器823、磁带和软盘(未描绘)等旧版磁性媒体、基于rom/asic/pld的专用装置,例如安全保护装置(未描绘),等等。
[0196]
所属领域的技术人员还应理解,结合当前公开的主题使用的术语“计算机可读介质”并未涵盖传输介质、载波或其它瞬时信号。
[0197]
计算机系统800还可包括到至少一个通信网络855的接口。所述通信网络855可例如是无线的、有线的、光学的。网络855还可以是本地的、广域的、城域的、车载和工业的、实时的、容忍延迟的等等。网络855的示例包括例如以太网、无线lan的局域网、包括gsm、3g、4g、5g、lte等的蜂窝网络、包括有线tv、卫星tv和地面广播tv的tv有线或无线广域数字网络、包括can总线的车载网络和工业网络等。网络855通常需要附接到某些通用数据端口或外围总线849(例如,计算机系统800的usb端口)的外部网络接口适配器;其它网络通常通过附接到如下文所描述的系统总线而集成到计算机系统800的核心中,例如,网络接口854包括到pc计算机系统的以太网接口,或到智能电话计算机系统的蜂窝网络接口。通过使用这些网络中的任一网络,计算机系统800可与其它实体通信。此类通信可以是仅单向接收(例如广播tv)、仅单向发送(例如连到某些can总线装置的can总线)或是双向的,例如使用局域数字网络或广域数字网络连接到其它计算机系统。可在如上文所描述的那些网络855和网络接口854中的每一个上使用某些协议和协议栈。
[0198]
上述人机接口装置、人类可访问存储装置和网络接口854可附接到计算机系统800的核心840。
[0199]
核心840可包括至少一个中央处理单元(central processing unit,cpu)841、图形处理单元(graphics processingunit,gpu)842、现场可编程门区域(fieldprogrammable gate areas,fpga)形式的专用可编程处理单元843、用于某些任务的硬件加速器844等等。这些装置连同只读存储器(read

only memory,rom)845、随机存取存储器846、例如内部非用户可访问的硬盘驱动器、固体驱动(solid

state drive,ssd)等内部大容量存储装置847可通过系统总线848连接。在一些计算机系统中,系统总线848可通过至少一个物理插头形式访问以实现通过额外cpu、gpu等来扩展。外围装置可直接或通过外围总线849附接到核心的系统总线848。用于外围总线的架构包括pci、usb等等。
[0200]
cpu841、gpu842、fpga843和硬件加速器844可执行某些指令,所述指令组合起来可构成上述计算机代码。计算机代码可存储在rom845或ram846中。过渡数据也可存储在ram846中,而永久性数据可例如存储在内部大容量存储装置847中。可通过使用高速缓冲存储器来实现对任一存储器装置的快速存储和检索,所述高速缓冲存储器可与至少一个
cpu841、gpu842、大容量存储装置847、rom845、ram846等紧密关联。
[0201]
计算机可读介质上可具有用于执行各种计算机实施的操作的计算机代码。所述介质和计算机代码可以是专为本技术实施例的目的设计和构建的介质和计算机代码,或可属于计算机软件领域中的技术人员众所周知且可用的种类。
[0202]
举例来说但不作为限制,具有架构且尤其是核心840的计算机系统800可提供因处理器(包括cpu、gpu、fpga、加速器等)执行以至少一个有形计算机可读介质体现的软件而产生的功能。此类计算机可读介质可以是与上文所介绍的用户可访问大容量存储装置以及核心840的非暂时性质的某些存储装置(例如核心内部大容量存储装置847或rom845)相关联的介质。实施本技术的各种实施例的软件可存储在此类装置中且由核心840执行。根据特定需求,计算机可读介质可包括至少一个存储器装置或芯片。软件可使核心840且具体地说使其中的处理器(包括cpu、gpu、fpga等等)执行本文中所描述的特定过程或特定过程的特定部分,包括限定存储在ram846中的数据结构以及根据由软件限定的过程修改此类数据结构。另外或作为替代方案,计算机系统可提供由硬连线的或以其它方式体现于电路(例如:硬件加速器844)中的逻辑所产生的功能,所述逻辑可代替或连同软件一起操作以执行本文描述的特定过程或特定过程的特定部分。适当时,对软件的引用可涵盖逻辑,且反之亦然。适当时,对计算机可读介质的引用可涵盖存储用于执行的软件的电路(例如集成电路(ic))、体现用于执行的逻辑的电路或这两种电路。本技术实施例涵盖硬件与软件的任何合适的组合。
[0203]
尽管本技术描述了若干实施例,但在本技术的范围内,可以有各种改动、排列组合方式以及各种替代等同物。因此,应该理解,在申请的精神和范围内,本领域技术人员能够设计出各种虽未在本文明确示出或描述、但可以体现本技术的原理的系统和方法。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献