已编码点云数据的划分的制作方法

文档序号:27126886发布日期:2021-10-27 20:17阅读:95来源:国知局
已编码点云数据的划分的制作方法
已编码点云数据的划分
1.相关申请的交叉引用
2.本技术要求于2019年3月15日提交的申请号为62/819,504的美国临时申请以及于2020年3月10日提交的申请号为16/814,350的美国申请优先权,这两个申请的公开内容通过引用整体并入本技术中。
技术领域
3.本技术涉及一组高级视频编解码技术,更具体地涉及基于视频的点云压缩。


背景技术:

4.对这个世界的高级三维(3d)表示,使得更多沉浸式的互动和交流形式成为可能,并且也使机器可以理解、解读和导航我们这个世界。点云已经广泛用于这个世界的3d表示。目前已经确定出与点云数据相关联的多个用例,并且已经开发出点云表示和压缩的相应要求。


技术实现要素:

5.本技术一些实施例提供在已编码点云码流中发信号通知划分(partitioning)信息的技术。本技术的基于视频的点云压缩(v

pcc)方案可以利用通用的视频编解码器进行点云压缩。本技术一些实施例提供了实现已编码点云码流的局部编码、传送、解码的技术。
6.在一些实施例中,提供了一种使用至少一个处理器对视频码流进行解码的方法。所述方法包括:接收视频码流,所述视频码流包括:具有多个二维(2d)图片的帧,所述多个2d图片是所述帧的层,所述多个2d图片中的每个2d图片具有相同三维(3d)表示的相应属性,帧划分信息,指示所述帧是划分成多个子帧,所述多个子帧中的每个子帧是所述多个2d图片中的每个2d图片的子区域的相应组合,以及3d边界框信息,指定所述多个子帧中的子帧对应的3d位置。所述方法还包括:使用所述帧划分信息识别所述子帧;以及对识别出的所述子帧进行解码。
7.在一实施例中,所述接收的视频码流的帧划分信息包括2d边界框信息,所述2d边界框信息指定所述帧中所述子帧的位置和所述子帧的边界其中至少一个。
8.在一实施例中,所述3d边界框信息指定在所述2d边界框信息中指定的2d边界框的3d位置,并且所述方法还包括:在对识别出的所述子帧进行解码之后,通过使用所述3d边界框信息,从所述视频码流中获取点云。
9.在一实施例中,所述多个2d图片包括第一图片、第二图片和第三图片,所述第一图片是纹理图像,所述第二图片是几何图像,所述第三图片是占用地图。
10.在一实施例中,所述方法还包括:在对识别出的所述子帧进行解码之后,通过使用所述3d边界框信息,从所述视频码流中获取点云。
11.在一实施例中,所述方法还包括:确定所述子帧是否是独立地编码,其中对所述子帧进行解码包括:在确定所述子帧是独立地编码的情况下,以独立于所述多个子帧中的其
它子帧的方式,对所述子帧进行解码。
12.在一实施例中,所述接收的视频码流包括帧参数集,所述帧参数集包括所述帧划分信息和所述3d边界框信息。
13.在一实施例中,所述视频码流还包括具有多个2d图片的附加帧,所述多个2d图片为所述附加帧的层,所述附加帧的多个2d图片中的每个2d图片具有相同的附加3d表示的相应属性,并且所述方法还包括:使用用于标识所述帧的子帧的所述帧划分信息,识别所述附加帧的子帧,以及对识别出的附加帧的子帧进行解码。
14.在一些实施例中,提供了一种视频码流解码系统。所述系统包括:被配置为存储计算机程序代码的存储器;以及至少一个处理器,被配置为接收视频码流、访问所述计算机程序代码、以及按照所述计算机程序代码的指示进行操作,其中,所述视频码流包括:具有多个二维(2d)图片的帧,所述多个2d图片是所述帧的层,所述多个2d图片中的每个2d图片具有相同三维(3d)表示的相应属性,帧划分信息,指示所述帧是划分成多个子帧,所述多个子帧中的每个子帧是所述多个2d图片中的每个2d图片的子区域的相应组合,以及3d边界框信息,指定所述多个子帧中的子帧对应的3d位置,并且所述计算机程序代码包括:识别代码,被配置为使所述至少一个处理器,使用所述帧划分信息识别所述子帧;以及解码代码,被配置为使所述至少一个处理器,对识别出的所述子帧进行解码。
15.在一实施例中,所述视频码流的帧划分信息包括2d边界框信息,所述2d边界框信息指定所述帧中所述子帧的位置和所述子帧的边界其中至少一个。
16.在一实施例中,所述3d边界框信息指定在所述2d边界框信息中指定的2d边界框的3d位置,并且所述计算机程序代码进一步包括获取代码,所述获取代码被配置为使所述至少一个处理器,通过使用所述3d边界框信息,从所述视频码流中获取点云。
17.在一实施例中,所述多个2d图片包括第一图片、第二图片和第三图片,所述第一图片是纹理图像,所述第二图片是几何图像,所述第三图片是占用地图。
18.在一实施例中,所述计算机程序代码进一步包括获取代码,所述获取代码被配置为使所述至少一个处理器,在对识别出的所述子帧进行解码之后,通过使用所述3d边界框信息,从所述视频码流中获取点云。
19.在一实施例中,所述计算机程序代码进一步包括确定代码,所述确定代码被配置为使所述至少一个处理器,确定所述子帧是否是独立地编码,并且所述解码代码被配置为,在确定所述子帧是独立地编码的情况下,以独立于所述多个子帧中的其它子帧的方式,对所述子帧进行解码。
20.在一实施例中,所述视频码流包括帧参数集,所述帧参数集包括所述帧划分信息和所述3d边界框信息。
21.在一些实施例中,提供了一种存储计算机指令的非易失性计算机可读介质。所述计算机指令在由至少一个处理器执行时使所述至少一个处理器:使用帧划分信息从由所述至少一个处理器接收的视频码流中识别子帧;对识别出的所述子帧进行解码;并且在对识别出的所述子帧进行解码之后,通过使用三维(3d)边界框信息,从所述视频码流中获取点云,其中,所述视频码流包括:具有多个二维(2d)图片的帧,所述多个2d图片是所述帧的层,所述多个2d图片中的每个2d图片具有相同3d表示的相应属性,所述帧划分信息,所述帧划分信息指示所述帧是划分成包括所述子帧的多个子帧,所述多个子帧中的每个子帧是所述
多个2d图片中的每个2d图片的子区域的相应组合,以及所述3d边界框信息,所述3d边界框信息指定所述多个子帧中的所述子帧对应的3d位置。
附图说明
22.从以下详细描述和附图,所公开的主题的其它特征、性质及各种优点将更加明显,其中:
23.图1是根据实施例的通信系统的简化框图的示意图。
24.图2是根据实施例的流媒体系统的简化框图的示意图。
25.图3是根据实施例的视频编码器的简化框图的示意图。
26.图4是根据实施例的视频解码器的简化框图的示意图。
27.图5图示根据实施例的几何图像的示例。
28.图6图示根据实施例的纹理图像的示例。
29.图7是图示根据实施例的3d点云帧和对应于3d点云帧的帧的图。
30.图8是图示根据实施例的帧的组成的图。
31.图9是图示由实施例执行的过程的流程图。
32.图10是图示根据实施例的设备的图。
33.图11是适用于实施各实施例的计算机系统的图。
具体实施方式
34.点云是3d空间中的一组点,每个点具有相关联的属性,例如颜色、材料特性等。点云可以用于将对象或场景重建为这种点的组合。它们可以在各种设置中使用多个摄像机和深度传感器来捕获,并且可以由数千到数十亿个点组成,以便逼真地表示重建的场景。
35.需要压缩技术来减少表示点云所需的数据量。因此,可能需要对实时通信和六自由度(dof)虚拟现实中使用的点云进行有损压缩的技术。此外,也在寻求用于自主驾驶和文化遗产应用等的动态映射上下文中的无损点云压缩技术。mpeg已经开始研究一种标准来解决几何形状和属性(例如颜色和反射率)的压缩、可缩放/渐进编解码、随时间捕获的点云序列的编解码以及对点云的子集的随机访问。
36.基于视频的点云压缩(v

pcc)背后的主要原理是,利用现有视频编解码器,将动态点云的几何形状、占用情况和纹理,压缩为三个单独的视频序列。解释这三个视频序列所需的额外元数据,可以分别压缩。整个码流的一小部分是元数据,该元数据可以使用软件实现,有效地编码/解码。大量信息可以由视频编解码器处理。
37.参考图1至图4,描述了用于实现本技术的编码结构和解码结构的本技术实施例。本技术的编码结构和解码结构可以实现上文描述的v

pcc的各方面。
38.图1图示了根据本技术公开的实施例的通信系统100的简化框图。系统100可以包括通过网络150互连的至少两个终端110和120。对于单向数据传输,第一终端110可对本地位置的视频数据进行编码,以通过网络150传输到另一终端120。第二终端120可从网络150接收另一终端的已编码视频数据,对已编码视频数据进行解码,并显示恢复的视频数据。单向数据传输可能在媒体服务等应用中比较常见。
39.图1图示了用于支持已编码视频数据的双向传输的第二对终端130和140,所述双
向传输可例如在视频会议期间发生。对于双向数据传输,终端130和终端140中的每个终端可对在本地位置采集的视频数据进行编码,以通过网络150传输到另一终端。终端130和终端140中的每个终端还可接收由另一终端传输的已编码视频数据,可对所述已编码视频数据进行解码,且可在本地显示装置上显示恢复的视频数据。
40.在图1中,终端110

140可以例如为服务器、个人计算机、智能电话和/或其它类型的终端。例如,终端(110

140)可以是膝上型计算机、平板电脑、媒体播放器和/或专用视频会议设备。网络150表示在终端110

140之间传送已编码视频数据的任何数目的网络,包括例如有线和/或无线通信网络。通信网络150可在电路交换和/或分组交换信道中交换数据。代表性的网络包括电信网络、局域网、广域网和/或互联网。出于本论述的目的,除非在下文中有所解释,否则网络150的架构和拓扑对于本技术公开的操作来说可能是无关紧要的。
41.作为本技术所公开主题应用的示例,图2示出了视频编码器和视频解码器在流式传输环境中的放置方式。本技术所公开主题可用于其它支持视频的应用,包括例如视频会议、数字tv、在包括cd、dvd、存储棒等的数字介质上存储压缩视频等等。
42.如图2所示,流式传输系统200可包括采集子系统213,所述采集子系统包括视频源201和编码器203。流式传输系统200可以还包括至少一个流式传输服务器205和/或至少一个流式传输客户端206。
43.视频源201可以创建例如包括与3d视频对应的3d点云的流202。视频源201可以包括例如3d传感器(例如,深度传感器)或3d成像技术(例如,数码相机)以及计算系统,该计算系统用于使用从3d传感器或3d成像技术接收的数据,生成3d点云。样本流202(与已编码视频码流相比,其可能具有较高的数据量)可由耦接到视频源201的编码器203处理。编码器203可包括硬件、软件或软硬件组合,以实现或实施如下文更详细地描述的所公开主题的各方面。编码器203还可生成已编码视频码流204。已编码视频码流204(与未压缩的视频样本流202相比,其具有较低的数据量)可存储在流式传输服务器205上以供将来使用。一个或多个流式传输客户端206可访问流式传输服务器205,以检索视频码流209,该视频码流209可以是已编码视频码流204的副本。
44.流式传输系统206可包括视频解码器210和显示器212。视频解码器210可例如对视频码流209(视频码流209是已编码视频码流204的传入副本)进行解码,且产生可在显示器212或另一呈现装置(未描绘)上呈现的输出视频样本流211。在一些流式传输系统中,可根据某些视频编码/压缩标准,对视频码流204、209进行编码。该些标准的实施例包括但不限于itu

t h.265建议书、多功能视频编码(versatile video coding,vvc)以及mpeg/v

pcc。
45.参考图3

图4,以下描述可以由本技术实施例执行的v

pcc的一些方面。
46.图3图示了根据本技术实施例的视频编码器203的示例功能性框图。
47.如图3所示,视频编码器203可以接收一个或多个点云帧350,并基于点云帧350,生成几何图像352、纹理图像356和占用地图334。视频编码器203可以将几何图像352压缩为压缩的几何图像362,将纹理图像356压缩为压缩的纹理图像364,以及将占用地图334压缩为压缩的占用地图372。视频编码器203的多路复用器328可以形成压缩的码流374,该压缩的码流374包括压缩的几何图像362、压缩的纹理图像364和压缩的占用地图372。
48.更具体地,在各实施例中,视频编码器203可以包括将点云帧350分割成面片的面片生成模块302。面片是pcc的有用实体。面片生成过程包括将点云帧350分解成具有平滑边
界的最小数目的面片,同时还使重建误差最小化。本技术的编码器可以实施各种方法来生成此分解体。
49.视频编码器203可以包括执行打包过程的面片打包模块304。打包过程包括将提取的面片映射到2d网格上,同时使未使用空间最小化并保证网格的每个m
×
m(例如,16
×
16)的块与唯一面片相关联。有效的面片打包通过使未使用空间最小化,或通过确保时间一致性来直接影响压缩效率。面片打包模块304可以生成占用地图334。
50.视频编码器203可以包括几何图像生成模块306和纹理图像生成模块308。为了更好地处理多个点投影到相同样本的情况,可以将每个面片投影到两个称为层的图像上。例如,几何图像生成模块306和纹理图像生成模块308可以利用在面片打包模块304的打包过程期间计算出的3d到2d映射,将点云的几何形状和纹理存储为图像(又名“层”)。所生成的图像/层可以存储为视频帧,并且可以根据提供为参数的配置,使用视频编解码器(例如,hm视频编解码器)进行压缩。
51.在各实施例中,基于输入点云帧350和占用地图334,几何图像生成模块306生成几何图像352,纹理图像生成模块308生成纹理图像356。示例的几何图像352在图5中图示,示例的文本图像356在图6中图示。在实施例中,几何图像352可以由yuv420

8比特格式的w
×
h的单色帧表示。在实施例中,占用地图334图像由二进制地图组成,该二进制地图为网格中的每个单元指示该单元属于空白空间还是属于点云。为了生成纹理图像356,纹理图像生成模块308可以利用已重建的/平滑的几何形状358来计算待与重采样的点相关联的颜色。
52.视频编码器203还可以包括图像填充模块314和图像填充模块316,用于分别填充几何图像352和纹理图像356,以形成填充的几何图像354和填充的纹理图像360。图像填充(又名背景填充)简单地用冗余信息填充图像中的未使用空间。良好的背景填充是一种最低限度地增加比特率,而不会在面片边界周围引入显著的编解码失真的填充。图像填充模块314和图像填充模块316可以使用占用地图334,分别形成填充的几何图像354和填充的纹理图像360。在实施例中,视频编码器203可以包括组扩张(dilation)模块320,以形成填充的纹理图像360。
53.视频编码器203可以包括视频压缩模块322和视频压缩模块324,用于将填充的几何图像354和填充的纹理图像360,分别压缩为压缩的几何图像362和压缩的纹理图像364。
54.视频编码器203可以包括用于对占用地图334进行无损编码366的熵压缩模块318,和用于对占用地图334进行有损编码368的视频压缩模块326。
55.在各实施例中,视频编码器203可以包括平滑模块310,用于通过使用由视频压缩模块322提供的重建的几何图像365以及面片信息332,生成平滑的几何形状358。平滑模块310的平滑程序,可以旨在减轻由于压缩失真,而在面片边界出现的潜在不连续性。平滑的几何形状358可以由纹理图像生成模块308使用,生成纹理图像356。
56.视频编码器203还可以包括辅助面片信息压缩模块312,用于形成由多路复用器328在压缩的码流374中提供的压缩的辅助面片信息370。
57.图4图示了根据本技术实施例的视频解码器210的功能性框图示例。
58.如图4所示,视频解码器210可以从视频编码器203接收已编码码流374,以获得压缩的纹理图像362、压缩的几何图像364、压缩的占用地图372和压缩的辅助面片信息370。视频解码器210可以对压缩的纹理图像362、压缩的几何图像364、压缩的占用地图372和压缩
的辅助面片信息370进行解码,以分别获得解压缩的纹理图像460、解压缩的几何图像462、解压缩的占用地图464和解压缩的辅助面片信息466。接下来,视频解码器210可以基于解压缩的纹理图像460、解压缩的几何图像462、解压缩的占用地图464和解压缩的辅助面片信息466,生成重建的点云474。
59.在各实施例中,视频解码器210可以包括解复用器402,该解复用器402将所接收的压缩的码流374的压缩的纹理图像362、压缩的几何图像364、压缩的占用地图372和压缩的辅助面片信息370进行分离。
60.视频解码器210可以包括视频解压缩模块404、视频解压缩模块406、占用地图解压缩模块408和辅助面片信息解压缩模块410,这些模块分别对压缩的纹理图像362、压缩的几何图像364、压缩的占用地图372和压缩的辅助面片信息370进行解码。
61.视频解码器210可以包括几何形状重建模块412,该几何形状重建模块412基于解压缩的几何图像462、解压缩的占用地图464和解压缩的辅助面片信息466,获得重建的(三维)几何形状468。
62.视频解码器210可以包括平滑模块414,该平滑模块414对重建的几何形状468进行平滑,以获得平滑的几何形状470。平滑程序可以旨在减轻由于压缩失真,而可能在面片边界出现的潜在不连续性。
63.视频解码器210可以包括纹理重建模块416,用于基于解压缩的纹理图像460和平滑的几何形状470,获得重建的纹理472。
64.视频解码器210可以包括颜色平滑模块418,该颜色平滑模块418对重建的纹理472的颜色进行平滑,以获得重建的点云474。3d空间中的非相邻面片经常是彼此相邻地打包在2d视频中。这意味着非相邻面片的像素值可能会由基于块的视频编解码器混合。颜色平滑模块418的颜色平滑可以旨在减少出现在面片边界的可见失真。
65.如上所述,输入云可以被分割成几个面片,并且被打包成三个2d图像,诸如占用地图、几何图像和纹理图像。这些图像然后由例如hevc的编解码标准压缩。
66.点云压缩系统使用3d边界框形式的感兴趣区域(roi)是有利的。因此,对于内容感知点云压缩系统来说,实现所有(或一些)以下特征是有利的:(1)roi的编解码质量高于点云的其它部分;(2)roi的编解码独立于点云的其它部分,便于空间随机访问而无需全解码;(3)roi的独立编解码与独立(并行)编码/解码相关的任何系统要求一致;以及(4)支持多个roi。
67.本技术一些实施例可以包括上述特征中的至少一个。本技术中的实施例可以单独使用或以任何顺序组合。进一步地,本技术实施例(包括方法、编码器和解码器)中的每一个可以由处理电路(例如,至少一个处理器或至少一个集成电路)实现。在各实施例中,至少一个处理器可以执行存储在非易失性计算机可读介质中的程序,以执行本技术的方法、编码器和解码器的功能。
68.本技术实施例可以实现例如以下点云压缩特征:(1)并行编码和解码。本技术实施例可以提供在比特率开销方面具有低成本的并行处理实现方式。(2)空间随机访问。本技术实施例可以对与区域对应的点云进行解码,而不必对视频码流的整个码流进行解码。
69.根据一些实施例,上述特征中的至少一个可以用如下所述的子帧设计来实现。
70.参考图7,视频码流可以包括多个帧520的已编码版本,其中帧520中的每个帧对应
于相应的3d点云帧510,该相应的3d点云帧510例如可以由视频源201获取,并且例如可以由显示器212观看。帧520中的每个帧可以包括多个二维图片,该多个二维图片为所述帧的层,其中,所述帧的每个图片指示对应的3d点云帧510的特定属性。例如,参考示出了单个帧520的图8,多个二维图片可以包括三个图片,例如几何图像522、纹理图像524和占用地图526。这样的图片可以与上述几何图像352、纹理图像356和占用地图334相同或共享相似性。
71.每个帧520可以被划分成子帧,其中每个子帧包括多个二维图片中每个二维图片的一部分(例如,几何图像的一部分、纹理图像的一部分,以及占用地图的一部分)。至少一个子帧可以对应于一个roi。例如,参考图8,帧520可以包括子帧a、子帧b、子帧c、子帧d和子帧e。子帧a至子帧e中的每一个子帧包括几何图像522、纹理图像524和占用地图526的一部分。子帧a至子帧e中的至少一个子帧可以对应于一个roi。
72.在一些实施例中,子帧(例如子帧a至子帧e中的任一个)可以是矩形区域或图块群组。在子帧包括多个图块的情况下,子帧可以具有矩形或非矩形形状。在实施例中,子帧可以划分成多个图块,或者可以不划分。在子帧划分成多个图块的情况下,子帧的每个分量(例如,yuv、xyz、占用地图)可以具有相同的图块分区。
73.在一些实施例中,子帧中的图块可以组合成矩形或非矩形图块组,但属于不同子帧的图块不能分成一组。在实施例中,图块组可以使用vvc的图块组设计。
74.在一些实施例中,可以发信号通知或不发信号通知子帧对应的3d边界框信息。3d边界框信息例如可以指定子帧在点云中的3d位置。例如,参考图7至图8,3d点云帧510的区域512中的任何一个,可以对应于帧520的子帧a

子帧e其中一个子帧在3d点云帧510中的3d边界框以及对应位置。
75.在一些实施例中,可以不允许或允许任何跨子图片边界的解码过程或渲染过程(例如,环路内滤波、运动补偿)。子图片可以指图片的子部分(例如,图8所图示的图片522、525或526的区域a、b、c、d或e)。在一些实施例中,可以扩展和填充子帧的边界,以用于运动补偿。在一些实施例中,在视频码流的序列参数集(sps)中,发信号通知指示边界是否被扩展的标志。
76.在一些实施例中,可以对已解码子帧进行重采样或不重采样,以输出。在一些实施例中,已解码子帧大小和输出子帧大小之间的空间比,可以在sps中发信号通知,并且可以用于计算重采样比。在一些实施例中,可以应用重采样操作(例如,自适应分辨率改变)或不应用。
77.在一些实施例中,在视频码流的帧参数集中发信号通知划分信息,这可以由帧激活。划分信息例如可以指示一个帧是否划分成多个子帧以及如何划分。在一些实施例中,可以在已编码视频序列内更新划分信息。在一些实施例中,相同的划分信息可以由具有不同成分的多个帧、图片、条带、图块组和vcl nal单元共享和使用。
78.以下提供了例如可以在v

pcc中实现的本技术实施例的示例代码。如下所示,该代码可以在帧参数集中提供。在实施例中,帧参数集可以在已编码视频码流中由编码器提供给解码器。
79.80.[0081][0082]
下面描述上述代码的语义。
[0083]“frame_partitioning_enabled_flag”等于1,指定帧被划分成多个子区域(例如,子帧)。与每个子区域对应的子码流可以从整个码流中得到和提取。每个区域应能够独立地解码。“frame_partitioning_enabled_flag”等于0,指定帧可以划分成多个子区域(例如,子帧)或者可以不划分。
[0084]“tile_info_present_flag”等于1,指定每一分量码流含有图块信息,该图块信息与边界框信息对准,以用于空间随机访问和并行处理。“tile_info_present_flag”等于0,指定每个2维边界框是在像素级显式地发信号通知。
[0085]“num_tile_columns_minus1”加1,指定对帧进行划分的图块列的数目。
[0086]“num_tile_rows_minus1”加1,指定对帧进行划分的图块行的数目。
[0087]“uniform_spacing_flag”等于1,指定图块列边界和类似的图块行边界是均匀地分布在帧中。“uniform_spacing_flag”等于0,指定图块列边界和类似的图块行边界是不均匀地分布在帧中,而是通过使用语法元素“column_width_minus1[i]”和“row_height_minus1[i]”显式地发信号通知。
[0088]“column_width_minus1[i]”加1,指定以ctb为单位的第i个图块列的宽度。
[0089]“row_height_minus1[i]”加1,指定以ctb为单位的第i个图块列的高度。
[0090]“single_tile_per_sub_frame_flag”等于1,指定帧参数集中指示的每个2d边界框包括一个图块。“single_tile_per_sub_frame_flag”等于0,指定帧参数集中指示的每个2d边界框可以包括一个以上图块。
[0091]“num_sub_frame_in_frame_minus1”加1,指定参考帧参数集的每个帧中的二维边界框的数目。
[0092]“3d_bounding_box_info_present_flag”等于1,指定存在三维边界框信息。“3d_bounding_box_info_present_flag”等于0,指定不存在三维边界框信息。
[0093]“rect_sub_frame_flag”等于0,指定每个子帧内的图块是按光栅扫描次序。“rect_tile_group_flag”等于1,指定每个子帧内的图块覆盖帧的矩形区域。
[0094]“num_tiles_in_sub_frame_minus1”加1(当存在时),指定非矩形子图片中的图块的数目。
[0095]“top_left_tile_idx[i]”指定位于第i个2d边界框的左上角的图块的图块索引。
[0096]“bottom_right_tile_idx[i]”指定位于第i个2d边界框的右下角的图块的图块索引。
[0097]“3d_bounding_box_x[i]”、“3d_bounding_box_y[i]”和“3d_bounding_box_z[i]”指定与第i个二维边界框对应的第i个三维边界框的三维位置,用于点云数据的体积表示。
[0098]“3d_bounding_box_dx[i]”、“3d_bounding_box_dy[i]”和“3d_bounding_box_dz[i]”分别指定x域、y域、z域中每个域的特定3d边界框的长度。
[0099]“sub_frame_x[i]”和“sub_frame_y[i]”指定第i个二维边界框的二维位置。
[0100]“sub_frame_dx[i]”和“sub_frame_dy[i]”分别指定特定2d边界框的宽度和高度。
[0101]“signalled_bounding_box_id_flag”等于1,指定发信号通知每个边界框的边界框id。“signalled_bounding_box_index_flag”等于0,指定不发信号通知边界框id。
[0102]“signalled_bounding_box_id_length_minus1”加1,指定用于表示语法元素bounding_box_id[i]的比特数目。“signalled_bounding_box_id_length_minus1”的值应该在0到15的范围内(含端值)。
[0103]“bounding_box_id[i]”指定第i个边界框的边界框id。“bounding_box_id[i]”语法元素的长度是“bounding_box_id_length_minus1”+1比特。
[0104]“independent_decoding_sub_frame_enabled_flag”等于1,指定每个sub_frame在没有子帧间操作的情况下可以或不可以独立地解码。“independent_decoding_sub_frame_enabled_flag”等于0,指定每个sub_frame在没有子帧间操作的情况下不能独立地解码。子帧间操作包括跨子帧边界的运动补偿和环路内滤波。若“independent_decoding_sub_frame_enabled_flag”不存在,则推断其值等于0。
[0105]“post_processing_across_bounding_box_enabled_flag”等于1,指定跨sub_frames的边界启用在对视频码流进行解码之后的任何后处理。“post_processing_across_bounding_box_enabled_flag”等于0,指定跨sub_frames的边界禁用在对视频码流进行解码之后的任何后处理。后处理可以包括从已解码视频序列中生成点云数据的任何操作。
[0106]
参考图9,本技术实施例可以执行具有子帧划分的已编码点云数据的解码过程。
[0107]
在接收到视频码流的至少一部分之后,解析帧参数(601)。接下来,识别各个子帧分区。对于子帧中的至少一个子帧,可以确定该子帧是否是独立地编码(603)。在确定一个子帧是独立地编码的情况下,可以独立地对该个子帧进行解码(604)。在没有独立地编码的子帧的情况下,可以对整个帧进行解码(605)。在各实施例中,子帧的解码或帧的解码可以由图4所图示的解码器210执行。
[0108]
在各实施例中,设备700可以包括存储计算机程序代码的存储器,该计算机程序代码在由至少一个处理器执行时,可以使得至少一个处理器执行上述解码器和编码器的功能。
[0109]
例如,参考图10,设备700的计算机程序代码可以包括识别代码710、解码代码730、获取代码740和显示代码750。
[0110]
识别代码710可以被配置为使至少一个处理器,使用提供给设备700的帧划分信息来识别至少一个子帧。帧划分信息例如可以是上述指示帧内的子帧的特性(例如,数目、大小、形状和编解码依赖性)的任何信息。
[0111]
解码代码730可以被配置为使至少一个处理器对识别出的子帧进行解码。在各实施例中,解码代码730可以被配置为执行图4所图示的解码器210的解压缩模块的功能,以对子帧进行解码。
[0112]
获取代码740可以被配置为使至少一个处理器,在对识别出的子帧进行解码之后,通过使用与识别出的子帧对应的3d边界框信息,获取点云。在各实施例中,获取代码740可以被配置为执行图4所图示的解码器210的几何形状重建模块412、平滑模块414、纹理重建模块416和颜色平滑模块418的功能,以获取点云。
[0113]
显示代码750可以被配置为使至少一个处理器在显示器上显示与点云对应的3d图像。
[0114]
在一些实施例中,计算机程序代码还可以包括确定代码720。确定代码720可以被配置为使至少一个处理器确定子帧是否是独立地编码,并且解码代码730可以被配置为使至少一个处理器在确定子帧是独立地编码的情况下,以独立于多个子帧中的其它子帧的方式,对该子帧进行解码。
[0115]
上文描述的技术可以使用计算机可读指令实施为计算机软件,并以物理的方式存储在至少一个计算机可读介质上。例如,图11示出了适于实施本技术某些实施例的计算机系统900。
[0116]
可使用任何合适的机器代码或计算机语言来编码所述计算机软件,所述机器代码或计算机语言可经受汇编、编译、链接或类似机制以创建包括指令的代码,所述指令可直接或通过解译、微码执行等而由计算机中央处理单元(central processing unit,cpu)、图形处理单元(graphics processing unit,gpu)等执行。
[0117]
可在各种类型的计算机或计算机组件上执行所述指令,所述计算机或计算机组件包括例如个人计算机、平板电脑、服务器、智能电话、游戏装置、物联网装置等。
[0118]
图11中所示的用于计算机系统900的组件是示范性的,并非旨在暗示关于实施本技术的实施例的计算机软件的使用或功能的范围的任何限制。也不应将组件的配置解释为对计算机系统900的非限制性实施例中所示的组件中的任一个组件或组件组合有任何依赖或需求。
[0119]
计算机系统900可包括某些人机接口输入装置。此类人机接口输入装置可响应于至少一个人类用户通过例如触觉输入(例如:按键、滑动、数据手套移动)、音频输入(例如:语音、拍击)、视觉输入(例如:手势)、嗅觉输入(未描绘)进行的输入。人机接口装置还可用于捕获未必与人的有意识输入直接相关的某些媒体,例如音频(例如:话语、音乐、环境声)、图像(例如:扫描图像、从静态图像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
[0120]
输入人机接口装置可包括以下至少一个(每种仅描绘一个):键盘901、鼠标902、轨迹垫903、触摸屏910、数据手套、操纵杆905、麦克风906、扫描仪907、相机908。
[0121]
计算机系统900还可包括某些人机接口输出装置。此类人机接口输出装置可通过例如触觉输出、声音、光和气味/味道刺激至少一个人类用户的感觉。此类人机接口输出装置可包括触觉输出装置(例如触摸屏910、数据手套或操纵杆905的触觉反馈,但还可存在不充当输入装置的触觉反馈装置)、音频输出装置(例如:扬声器909、头戴式耳机(未描绘))、视觉输出装置(例如屏幕910,包括阴极射线管(crt)屏幕、液晶显示器(lcd)屏幕、等离子体屏幕、有机发光二极管(oled)屏幕,各自具有或不具有触摸屏输入能力,各自具有或不具有触觉反馈能力
‑‑
其中的一些能够通过例如立体平画输出的方式输出二维视觉输出或大于三维的输出;虚拟现实眼镜(未描绘)、全息显示器和烟雾箱(未描绘)),以及打印机(未描
绘)。
[0122]
计算机系统900还可包括人类可访问的存储装置和存储装置的相关联介质,例如光学介质,包括具有cd/dvd等介质921的cd/dvd rom/rw920、拇指驱动器922、可移动硬盘驱动器或固态驱动器923、磁带和软盘(未描绘)等旧版磁性媒体、基于rom/asic/pld的专用装置,例如安全保护装置(未描绘),等等。
[0123]
所属领域的技术人员还应理解,结合当前公开的主题使用的术语“计算机可读介质”并未涵盖传输介质、载波或其它瞬时信号。
[0124]
计算机系统900还可包括到至少一个通信网络的接口。所述网络可例如是无线的、有线的、光学的。所述网络还可以是本地的、广域的、城域的、车载和工业的、实时的、容忍延迟的等等。网络的示例包括例如以太网、无线lan的局域网、包括gsm、3g、4g、5g、lte等的蜂窝网络、包括有线tv、卫星tv和地面广播tv的tv有线或无线广域数字网络、包括can总线的车载网络和工业网络等。某些网络通常需要附接到某些通用数据端口或外围总线949(例如,计算机系统900的usb端口)的外部网络接口适配器;其它网络通常通过附接到如下文所描述的系统总线而集成到计算机系统900的核心中(例如,到pc计算机系统的以太网接口,或到智能电话计算机系统的蜂窝网络接口)。通过使用这些网络中的任一网络,计算机系统900可与其它实体通信。此类通信可以是仅单向接收(例如广播tv)、仅单向发送(例如连到某些can总线装置的can总线)或是双向的,例如使用局域数字网络或广域数字网络连接到其它计算机系统。此类通信可以包括到云计算环境955的通信。可在如上文所描述的那些网络和网络接口中的每一个上使用某些协议和协议栈。
[0125]
上述人机接口装置、人类可访问存储装置和网络接口954可附接到计算机系统900的核心940。
[0126]
核心940可包括至少一个中央处理单元(central processing unit,cpu)941、图形处理单元(graphics processing unit,gpu)942、现场可编程门区域(field programmable gate areas,fpga)形式的专用可编程处理单元943、用于某些任务的硬件加速器944等等。这些装置连同只读存储器(read

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

state drive,ssd)等内部大容量存储装置947可通过系统总线948连接。在一些计算机系统中,系统总线948可通过至少一个物理插头形式访问以实现通过额外cpu、gpu等来扩展。外围装置可直接或通过外围总线949附接到核心的系统总线948。用于外围总线的架构包括pci、usb等等。图形适配器950可以包括在核心940中。
[0127]
cpu941、gpu942、fpga943和加速器944可执行某些指令,所述指令组合起来可构成上述计算机代码。计算机代码可存储在rom945或ram946中。过渡数据也可存储在ram946中,而永久性数据可例如存储在内部大容量存储装置947中。可通过使用高速缓冲存储器来实现对任一存储器装置的快速存储和检索,所述高速缓冲存储器可与至少一个cpu941、gpu942、大容量存储装置947、rom945、ram946等紧密关联。
[0128]
计算机可读介质上可具有用于执行各种计算机实施的操作的计算机代码。所述介质和计算机代码可以是专为本技术的目的设计和构建的介质和计算机代码,或可属于计算机软件领域中的技术人员众所周知且可用的种类。
[0129]
举例来说但不作为限制,具有架构且尤其是核心940的计算机系统900可提供因处
理器(包括cpu、gpu、fpga、加速器等)执行以至少一个有形计算机可读介质体现的软件而产生的功能。此类计算机可读介质可以是与上文所介绍的用户可访问大容量存储装置以及核心940的非暂时性质的某些存储装置(例如核心内部大容量存储装置947或rom945)相关联的介质。实施本技术的各种实施例的软件可存储在此类装置中且由核心940执行。根据特定需求,计算机可读介质可包括至少一个存储器装置或芯片。软件可使核心940且具体地说使其中的处理器(包括cpu、gpu、fpga等等)执行本文中所描述的特定过程或特定过程的特定部分,包括限定存储在ram946中的数据结构以及根据由软件限定的过程修改此类数据结构。另外或作为替代方案,计算机系统可提供由硬连线的或以其它方式体现于电路(例如:加速器944)中的逻辑所产生的功能,所述逻辑可代替或连同软件一起操作以执行本文描述的特定过程或特定过程的特定部分。适当时,对软件的引用可涵盖逻辑,且反之亦然。适当时,对计算机可读介质的引用可涵盖存储用于执行的软件的电路(例如集成电路(ic))、体现用于执行的逻辑的电路或这两种电路。本技术涵盖硬件与软件的任何合适的组合。
[0130]
尽管本技术描述了若干非限制性实施例,但在本技术的范围内,可以有各种改动、排列组合方式以及各种替代等同物。因此,应该理解,在申请的精神和范围内,本领域技术人员能够设计出各种虽未在本文明确示出或描述、但可以体现本技术的原理的系统和方法。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1