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

基于哈尔的点云编码方法和装置与流程

2022-11-12 22:58:58 来源:中国专利 TAG:

基于哈尔的点云编码方法和装置
1.引用并入
2.本技术要求于2021年8月27日提交的名称为“基于哈尔的点云编码方法和装置(method and apparatus for haar-based point cloud coding)”的美国专利申请第17/446,263号的优先权,该美国专利申请要求于2021年3月10日提交的名称为“基于哈尔的点云属性编码(on haar-based attribute coding for point clouds)”的美国临时申请第63/159,409号的优先权。在先申请的全部公开内容通过引用整体并入本文。
技术领域
3.本公开描述了通常与点云编码相关的实施例,包括对点云的基于哈尔(haar)的属性编码的改进。


背景技术:

4.本文所提供的背景描述旨在整体呈现本技术的背景。在背景技术部分以及本说明书的各个方面中所描述的目前已署名的发明人的工作所进行的程度,并不表明其在本技术提交时作为现有技术,且从未明示或暗示其被承认为本技术的现有技术。
5.开发了各种技术在三维(3d)空间中拍摄和表示世界,比如,世界中的对象,世界中的环境等。世界的3d表示可以实现更沉浸式的交互和通信。点云可以用作世界的3d表示。点云是3d空间中的点的集合,每个点具有相关联的属性,例如颜色、材料特性、纹理信息、强度属性、反射率属性、运动相关属性、模态属性(modality attributes)和/或各种其它属性。这样的点云可以包括大量的数据,并且存储和传输可能既昂贵又耗时。


技术实现要素:

6.本公开的方面提供了用于点云压缩和解压缩的方法和装置。根据本公开的一个方面,提供了一种在点云解码器中进行点云属性解码的方法。在该方法中,可以确定点云的点集合的排序方法。基于所述点云的已编码比特流中的第一信令信息,可以确定用于对所述点云的基于哈尔的属性编码的变换系数进行量化的量化参数。所述基于哈尔的属性编码可以被配置为基于哈尔变换,对所述点云的所述点集合执行点云压缩。根据基于所述第一信令信息确定的所述量化参数,可以确定用于对所述量化的变换系数进行解码的熵解码方法。基于所述熵解码方法,可以进一步确定所述量化的变换系数。基于确定的排序方法和确定的量化的变换系数,可以重建所述点云的属性。
7.在一个示例中,基于所述点云的所述已编码比特流中的第二信令信息,可以确定所述排序方法。其中,当所述第二信令信息等于第一值时,所述排序方法是莫顿排序。在另一个示例中,当所述第二信令信息等于第二值时,所述排序方法是希尔伯特排序。
8.在一些实施例中,所述第一信令信息可以基于所述量化参数、所述点云的应用和所述点云的特性之一设置。
9.在该方法中,当所述熵解码方法是指数哥伦布编码时,基于所述已编码比特流中
的第三信令信息,可以确定所述指数哥伦布编码的阶次k,其中,所述第三信令信息指示所述指数哥伦布编码的所述阶次k。
10.在该方法中,当所述熵解码方法是指数哥伦布编码时,可以基于所述量化参数确定所述指数哥伦布编码的阶次k。因此,所述阶次所述max_k是用于对所述量化的变换系数进行解码的所述指数哥伦布编码的最大阶次,所述trans_coeff_qp是所述量化参数的值,并且,所述s是等于六或八的正整数。
11.在一些实施例中,为了基于熵解码方法确定所述量化的变换系数,基于所述指数哥伦布编码和所述指数哥伦布编码的确定的阶次k,对所述量化的变换系数减去阈值的绝对值进行解码。所述阈值等于1、2和3之一。
12.在一些实施例中,为了基于熵解码方法确定所述量化的变换系数,可以对所述量化的变换系数中的第一量化的变换系数x进行解码。所述第一量化的变换系数x可以由所述指数哥伦布编码进行编码,使得使用所述阶次k等于零的所述指数哥伦布编码对第一部分进行编码,并且以二进制形式对第二部分(x与2k的模运算)进行编码。
13.在该方法中,可以基于所述确定的排序方法,对所述点云的所述点集合进行排序。基于由所述已编码比特流中的分区信令信息指示的分区大小,可以将所述点云的排序的点集合分区成多个片段。基于所述确定的量化的变换系数,可以分别重建所述点云中多个片段中的每一个片段。
14.在一些实施例中,所述多个片段的数目可以等于所述n可以是所述点云中的点集合的数目,所述m可以是正整数。可以是大于或等于n/m的整数。
15.在该方法中,为了重建点云,可以确定与所述基于哈尔的属性编码相关联的哈尔变换矩阵的缩放因子1/2。根据所述基于哈尔的属性编码,对所述量化的变换系数执行逆量化操作以获得变换系数。基于所述哈尔变换矩阵和所述变换系数,可以对所述点云执行逆变换操作以获得属性残差。根据通过所述基于哈尔的属性编码获得的所述点云的属性残差和预测属性,可以进一步重建所述点云的属性。
16.用于处理点云数据的装置被配置为执行上述方法。例如,用于处理点云数据的装置包括处理电路,并且,处理电路被配置为执行以上描述的一个或多个方法。例如,该装置可以包括处理电路,用于基于点云的已编码比特流中的第一信令信息,确定所述点云中的点集合的排序方法。所述处理电路还可以用于,基于所述点云的已编码比特流中的第二信令信息,确定用于对所述点云的基于哈尔的属性编码的变换系数进行量化的量化参数。所述处理电路还用于,根据基于所述第二信令信息确定的量化参数,确定用于对量化的变换系数进行解码的熵解码方法。所述处理电路还进一步用于,基于所述熵解码方法,确定所述量化的变换系数。所述处理电路还用于,基于确定的排序方法和确定的量化的变换系数,重建所述点云的属性。
17.在一些实施例中,所述处理电路还用于,基于所述确定的排序方法,对所述点云的所述点集合进行排序。然后,所述处理电路可用于,基于由所述已编码比特流中的分区信令信息指示的分区大小,将所述点云的排序的点集合分区成多个片段。随后,所述处理电路可以用于,基于所述确定的量化的变换系数,重建所述点云中多个片段中的每一个片段。在一
些实施例中,所述多个片段的数目等于所述n可以是所述点云中的点集合的数目,并且,所述m可以是正整数。可以是大于或等于n/m的整数。
18.根据本公开的一个方面,提供了一种非易失性计算机可读存储介质。所述非易失性计算机可读存储介质存储指令,当所述指令由至少一个处理器执行时,使得所述至少一个处理器执行一个或多个以上描述的方法。例如,在该方法中,基于点云的已编码比特流中的第一信令信息,可以确定所述点云中点集合的排序方法。根据所述点云的已编码比特流中的第二信令信息,可以确定用于对所述点云中的基于哈尔的属性编码的变换系数进行量化的量化参数。可以根据基于所述第二信令信息确定的量化参数,确定用于对量化的变换系数进行解码的熵解码方法。基于所述熵解码方法,可以进一步确定所述量化的变换系数。根据所述确定的排序方法和所述确定的量化的变换系数,可以重建所述点云的属性。
附图说明
19.根据以下详细描述和附图,所公开的主题的其他特征、性质和各种优点将进一步明确,其中:
20.图1是根据一实施例的通信系统的简化框图的示意图;
21.图2是根据另一实施例的流式传输系统的简化框图的示意图;
22.图3示出了根据一些实施例的用于对点云帧进行编码的编码器的框图;
23.图4示出了根据一些实施例的用于对与点云帧相对应的压缩比特流进行解码的解码器的框图;
24.图5示出了根据一些实施例的用于对点云帧进行编码的编码器的框图;
25.图6示出了根据一些实施例的用于对与点云帧相对应的压缩比特流进行解码的解码器的框图;
26.图7示出了根据一些实施例的基于提升的属性编码中的正向变换的框图;
27.图8示出了根据一些实施例的基于提升的属性编码中的逆变换的框图;
28.图9a示出了根据本公开的一些实施例的基于区域自适应分层变换(region adaptive hierarchical transform,raht)的属性编码中的正向变换的示图;
29.图9b示出了根据本公开的一些实施例的基于区域自适应分层变换(raht)的属性编码中的逆变换的示图;
30.图10示出了根据本公开的一些实施例的将点云分区成片段的框图;
31.图11示出了根据一些实施例的概述示例性解码过程的流程图;
32.图12是根据实施例的计算机系统的示意图。
具体实施方式
33.近年来,点云的应用越来越广泛。例如,点云可以在自动驾驶车辆中用于对象检测和定位。点云还可以用在地理信息系统(geographic information systems,gis)中用于映射,以及用在文化遗产中,以使文化遗产对象和集合等可视化并将其存档。
34.点云可以包含高维点(通常为三维(3d))的集合。多个高维点(high dimensional points)中的每个高维点可以包括3d位置信息以及其他属性,例如,颜色、反射率。可以使用多个摄像头和深度传感器、或激光雷达在各种设置中捕获高维点,并且可以由数千或数十
亿个点组成,以真实地表示原始场景。
35.因此,需要压缩技术来减少表示点云所需的数据量,以便更快传输或减少存储。iso/iec mpeg(jtc 1/sc 29/wg 11)已经创建了特设组(mpeg-pcc),以使静态或动态点云的压缩技术标准化。另外,中国的音频视频编码标准工作组还创建了特设组(avs-pcc),以使点云的压缩标准化。
36.图1示出了根据本公开实施例的通信系统(100)的简化框图。通信系统(100)包括能够经由例如网络(150)彼此通信的多个终端设备。例如,通信系统(100)包括一对经由网络(150)互连的终端设备(110)和(120)。在图1的示例中,第一对终端设备(110)和(120)可以执行点云数据的单向传输。例如,终端设备(110)可以压缩由与终端设备(110)连接的传感器(105)捕获的点云(例如,表示结构的多个点)。可以经由网络(150)将已压缩点云(例如,以比特流的形式)传输到另一终端设备(120)。终端设备(120)可以从网络(150)接收已压缩点云,对比特流进行解压缩以重建点云,并且适当地显示重建的点云。单向数据传输在媒体服务应用等中可能很常见。
37.在图1的示例中,终端设备(110)和(120)可以被图示为服务器和个人计算机,但是本公开的原理可以不限于此。本公开的实施例可用于膝上型计算机、平板计算机、智能电话、游戏终端、媒体播放器和/或专用三维(3d)设备。网络(150)表示在终端设备(110)与(120)之间传输已压缩点云的任意数量的网络。网络(150)可以包括例如电缆式(有线)和/或无线通信网络。网络(150)可以在电路交换信道和/或分组交换信道中交换数据。代表性网络包括电信网络、局域网、广域网和/或因特网。为了本讨论的目的,除非在下文中解释,网络(150)的架构和拓扑对于本公开的操作可能是不重要的。
38.图2示出了根据实施例的流式传输系统(200)的简化框图。图2的示例是点云的公开主题的应用。所公开的主题可以同样适用于其他支持点云的应用,例如,3d远程呈现应用(3d telepresence application)、虚拟现实应用等。
39.流式传输系统(200)可以包括捕获子系统(213)。捕获子系统(213)可以包括点云源(201),例如,光检测和测距(激光雷达)系统、3d相机、3d扫描仪、在软件中生成未压缩点云的图形生成部件,以及生成例如未压缩点云(202)的部件等。在示例中,点云(202)包括由3d相机捕获的点。点云(202)被描绘为粗线,以强调与已压缩点云(204)(已压缩点云的比特流)相比的高数据量。已压缩点云(204)可以由电子设备(220)生成,该电子设备(220)包括被耦合到点云源(201)的编码器(203)。编码器(203)可以包括硬件、软件或其组合,以启用或实现如以下更详细描述的所公开主题的各方面。已压缩点云(204)(或已压缩点云(204)的比特流)(被描绘为细线,以强调当与点云流(202)相比时较低的数据量)可以被存储在流式传输服务器(205)上以供将来使用。一个或多个流式传输客户端子系统(比如,图2中的客户端子系统(206)和(208))可以访问流式传输服务器(205),以检索已压缩点云(204)的副本(207)和(209)。客户端子系统(206)可以包括例如电子设备(230)中的解码器(210)。解码器(210)对已压缩点云的输入副本(207)进行解码,并且创建可以在呈现设备(212)上呈现的已重建点云(211)的输出流。
40.应注意,电子设备(220)和(230)可以包括其它部件(未示出)。例如,电子设备(220)可以包括解码器(未示出),并且电子设备(230)也可以包括编码器(未示出)。
41.在一些流式传输系统中,可以根据某些标准对已压缩点云(204)、(207)和(209)
(例如,已压缩点云的比特流)进行压缩。在一些示例中,在点云的压缩中使用视频编码标准。这些标准的示例包括高效视频编码(high efficiency video coding,hevc)、多功能视频编码(versatile video coding,vvc)等。
42.图3示出了根据一些实施例的用于对点云帧进行编码的v-pcc编码器(300)的框图。在一些实施例中,v-pcc编码器(300)可以用在通信系统(100)和流式传输系统(200)中。例如,编码器(203)可以与v-pcc编码器(300)类似的方式来配置和操作。
43.v-pcc编码器(300)接收点云帧作为未压缩输入,并且生成与已压缩点云帧相对应的比特流。在一些实施例中,v-pcc编码器(300)可以从比如点云源(201)等的点云源接收点云帧。
44.在图3的示例中,v-pcc编码器(300)包括面片生成模块(306)、面片打包模块(308)、几何图像生成模块(310)、纹理图像生成模块(312)、面片信息模块(304)、占用图模块(314)、平滑模块(336)、图像填充模块(316)和(318)、组扩张模块(320)、视频压缩模块(322)、(323)和(332)、辅助面片信息压缩模块(338)、熵压缩模块(334)和多路复用器(324)。
45.根据本公开的一个方面,v-pcc编码器(300)将3d点云帧转换为基于图像的表示,以及用于将已压缩的点云转换回经解压缩的点云的一些元数据(例如,占用图和面片信息)。在一些示例中,v-pcc编码器(300)可以将3d点云帧转换为几何图像、纹理图像和占用图,然后使用视频编码技术将几何图像、纹理图像和占用图编码为比特流。一般来说,几何图像是一个2d图像,该2d图像的像素填充有与投影到像素的点相关的几何值,并且填充了几何值的像素可以称为几何样本。纹理图像是一个2d图像,该2d图像的像素填充有与投影到像素的点相关联的纹理值,并且,填充了纹理值的像素可以称为纹理样本。占用图是一个2d图像,该2d图像的像素填充有指示面片占用或未占用的值。
46.面片通常可以指点云描述的表面的邻接子集。在一个示例中,面片包括曲面法向量(surface normal vectors)彼此偏离小于阈值量的点。面片生成模块(306)将点云分割成面片的集合。所述面片的集合可以重叠或不重叠,使得可以由相对于2d空间中的平面的深度场描述每个面片。在一些实施例中,面片生成模块(306)旨在将点云分解为具有平滑边界的最小数量的面片,同时还最小化重建误差。
47.面片信息模块(304)可以收集指示面片的大小和形状的面片信息。在一些示例中,可以将面片信息打包到图像帧中,然后由辅助面片信息压缩模块(338)编码以生成压缩的辅助面片信息。
48.面片打包模块(308)用于将所提取的面片映射到二维(2d)网格上,同时最小化未使用的空间,并确保网格中的每个m
×
m(例如,16
×
16)块都与唯一面片相关联。有效的面片打包可以通过最小化未使用的空间或确保时间一致性直接影响压缩效率。
49.几何图像生成模块(310)可以在给定的面片位置处生成与点云的几何形状相关联的2d几何图像。纹理图像生成模块(312)可以在给定的面片位置处生成与点云的纹理相关联的2d纹理图像。几何图像生成模块(310)和纹理图像生成模块(312)使用在打包过程中计算的3d到2d映射,将点云的几何形状和纹理存储为图像。为了更好地处理多个点被投影到相同样本的情况,将每个面片投影到称为层的两个图像上。在一个示例中,由yuv420-8bit格式中的wxh的单色帧表示几何图像。为了生成纹理图像,纹理生成过程使用重建的/平滑
的几何形状,以计算与重新采样的点相关联的颜色。
50.占用图模块(314)可以生成描述每个单元的填充信息的占用图。例如,占用图包括二进制图,所述二进制图指示网格中的每个单元是属于空白空间还是属于点云。在一个示例中,占用图使用二进制信息描述每个像素是否被填充。在另一个示例中,占用图使用二进制信息描述每个像素块是否被填充。
51.可以使用无损编码或有损编码压缩由占用图模块(314)生成的占用图。当使用无损编码时,熵压缩模块(334)用于压缩占用图;当使用有损编码时,视频压缩模块(332)用于压缩占用图。
52.需要注意的是,面片打包模块(308)可以在图像帧中打包的2d面片之间留下一些空白空间。图像填充模块(316)和(318)可以填充空白空间(称为填充),以生成适合于2d视频和图像编解码器的图像帧。图像填充也称为背景填充,可以使用冗余信息填充未使用的空间。在一些示例中,好的背景填充最小限度地增加比特率,并且不会在面片边界周围引入显著的编码失真。
53.视频压缩模块(322)、(323)和(332)可以基于例如hevc、vvc等合适的视频编码标准对例如填充的几何图像、填充的纹理图像和占据图的2d图像进行编码。在一个示例中,视频压缩模块(322)、(323)和(332)是单独操作的独立组件。需要注意的是,在另一个示例中,视频压缩模块(322)、(323)和(332)可以实现为单个组件。
54.在一些示例中,平滑模块(336)用于生成重建的几何图像的平滑图像。可以将平滑图像提供给纹理图像生成模块(312)。然后,纹理图像生成模块(312)可以基于重建的几何图像调整纹理图像的生成。例如,当面片形状(例如,几何形状)在编码和解码期间稍微失真时,在生成纹理图像时,可以考虑所述失真以校正面片形状中的失真。
55.在一些实施例中,组扩张模块(320)用于将像素添加到对象的边界,以减少压缩伪像并增加编码增益。
56.多路复用器(324)可以将已压缩的几何图像、已压缩的纹理图像、已压缩的占用图、和/或,已压缩的辅助面片信息复用到压缩的比特流中。
57.图4示出了根据一些实施例的v-pcc解码器(400)的框图,其中所述v-pcc解码器(400)用于解码与点云帧对应的已压缩的比特流。在一些实施例中,v-pcc解码器(400)可以用于通信系统(100)和流式传输系统(200)中。例如,解码器(210)可以用与v-pcc解码器(400)类似的方式配置和操作。v-pcc解码器(400)接收压缩的比特流,并基于压缩的比特流生成重建的点云。
58.在图4的示例中,v-pcc解码器(400)包括解多路复用器(432)、视频解压缩模块(434)和(436)、占用图解压缩模块(438)、辅助面片信息解压缩模块(442)、几何重建模块(444)、平滑模块(446)、纹理重建模块(448)和颜色平滑模块(452)。
59.解多路复用器(432)可以接收已压缩的比特流,并分离成已压缩的纹理图像、已压缩的几何图像、已压缩的占用图和已压缩的辅助面片信息。
60.视频解压缩模块(434)和(436)可以根据适当的标准(例如,hevc、vvc等)解码已压缩的图像,并输出解压缩的图像。例如,视频解压缩模块(434)解码已压缩的纹理图像,并输出解压缩的纹理图像;视频解压缩模块(436)解码已压缩的几何图像,并输出解压缩的几何图像。
61.占用图解压缩模块(438)可以根据适当的标准(例如,hevc、vvc等)解码已压缩的占用图,并输出解压缩的占用图。
62.辅助面片信息解压缩模块(442)可以根据适当的标准(例如,hevc、vvc等)解码已压缩的辅助面片信息,并输出解压缩的辅助面片信息。
63.几何重建模块(444)可以接收解压缩的几何图像,并基于解压缩的占有图和解压缩的辅助面片信息生成重建的点云几何形状。
64.平滑模块(446)可以平滑面片边缘处的不一致。平滑过程旨在减轻可能由于压缩伪像而在面片边界处出现的潜在不连续性。在一些实施例中,可以对位于面片边界的像素应用平滑滤波器,以减轻可能由压缩/解压缩引起的失真。
65.纹理重建模块(448)可以基于解压缩的纹理图像和平滑几何形状,确定点云中的点的纹理信息。
66.颜色平滑模块(452)可以平滑着色的不一致。3d空间中的非邻近面片通常在2d视频中彼此相邻打包。在一些示例中,基于块的视频编解码器可能混合非邻近面片的像素值。颜色平滑的目标是减少在面片边界处出现的可见伪像。
67.图5示出了根据一些实施例的g-ppc编码器(500)的框图。编码器(500)可以被配置为接收点云数据,并且压缩该点云数据,以生成携带压缩点云数据的比特流。在实施例中,编码器(500)可以包括位置量化模块(510)、重复点去除模块(512)、八叉树编码模块(530)、属性传递模块(520)、细节层次(level of detail,lod)生成模块(540)、属性预测模块(550)、残差量化模块(560)、算术编码模块(570)、逆残差量化模块(580)、加法模块(581)以及用于存储重建属性值的存储器(590)。
68.如图所示,可以在编码器(500)处接收输入点云(501)。点云(501)的位置(例如,3d坐标)被提供给量化模块(510)。量化模块(510)被配置为量化坐标以生成量化位置。重复点去除模块(512)被配置为接收量化的位置,并且执行滤波过程,以识别和去除重复点。八叉树编码模块(530)被配置为从重复点去除模块(512)接收滤波的位置,并且执行基于八叉树的编码过程,以生成描述3d体素网格(3d grid of voxels)的占用码的序列。占用码被提供给算术编码模块(570)。
69.属性传递模块(520)被配置为接收输入点云的属性,并且当多个属性值与各个体素相关联时,执行属性传递过程以确定每个体素的属性值。可以对从八叉树编码模块(530)输出的重新排序的点执行属性传递过程。传递操作之后的属性被提供给属性预测模块(550)。lod生成模块(540)被配置为对从八叉树编码模块(530)输出的重新排序的点进行操作,并且将这些点重新组织成不同的lod。将lod信息提供给属性预测模块(550)。
70.属性预测模块(550)根据lod生成模块(540)的lod信息所指示的基于lod的阶次(lod-based order)来处理这些点。属性预测模块(550)基于存储在存储器(590)中的当前点的相邻点集合的重建属性,生成当前点的属性预测。随后可以基于从属性传递模块(520)接收的原始属性值和本地生成的属性预测来获得预测残差。当在各个属性预测过程中使用候选索引时,可以将与所选择的预测候选相对应的索引提供给算术编码模块(570)。
71.残差量化模块(560)被配置为从属性预测模块(550)接收预测残差,并且执行量化以生成量化残差。量化残差被提供给算术编码模块(570)。
72.逆残差量化模块(580)被配置为从残差量化模块(560)接收量化残差,并且通过执
行在残差量化模块(560)处执行的量化操作的逆操作来生成重建的预测残差。加法模块(581)被配置为从逆残差量化模块(580)接收重建的预测残差,并且从属性预测模块(550)接收相应的属性预测。通过组合重建的预测残差和属性预测,生成重建的属性值并且将其存储到存储器(590)。
73.算术编码模块(570)被配置为接收占用码、候选索引(如果使用的话)、量化残差(如果生成的话)和其它信息,并且执行熵编码以进一步压缩接收的值或信息。因此,可以生成携带压缩信息的压缩比特流(502)。比特流(502)可以被传输或以其它方式提供给对压缩比特流进行解码的解码器,或者可以被存储在存储设备中。
74.图6示出了根据实施例的g-pcc解码器(600)的框图。解码器(600)可以被配置为接收压缩比特流,并且执行点云数据解压缩,以解压缩该比特流来生成解码的点云数据。在实施例中,解码器(600)可以包括算术解码模块(610)、逆残差量化模块(620)、八叉树解码模块(630)、细节层次(lod)生成模块(640)、属性预测模块(650)和用于存储重建的属性值的存储器(660)。
75.如图所示,可以在算术解码模块(610)处接收压缩比特流(601)。算术解码模块(610)被配置为对压缩比特流(601)进行解码,以获得点云的量化残差(如果生成的话)和占用码。八叉树解码模块(630)被配置为根据占用码确定点云中的多个点的重建位置。lod生成模块(640)被配置为基于重建位置,将所述多个点重新组织成不同的lod,并且确定基于lod的阶次(lod-based order)。逆残差量化模块(620)被配置为基于从算术解码模块(610)接收的量化残差来生成重建残差。
76.属性预测模块(650)被配置为执行属性预测过程,以根据基于lod的阶次确定多个点的属性预测。例如,可以基于存储在存储器(660)中的当前点的多个相邻点的重建属性值,确定当前点的属性预测。在一些示例中,属性预测可以与各个重建残差组合,以生成当前点的重建属性。
77.在一个示例中,从属性预测模块(650)生成的重建属性的序列与从八叉树解码模块(630)生成的重建位置一起对应于从解码器(600)输出的已解码点云(602)。另外,重建的属性也被存储到存储器(660)中,并且随后可以用于导出后续点的属性预测。
78.在各种实施例中,编码器(300)、解码器(400)、编码器(500)和/或解码器(600)可以用硬件、软件或其组合来实现。例如,编码器(300)、解码器(400)、编码器(500)和/或解码器(600)可以用处理电路来实现,处理电路例如一个或多个在有或没有软件的情况下操作的集成电路(integrated circuits,ics),比如,专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)等。在另一示例中,编码器(300)、解码器(400)、编码器(500)和/或解码器(600)可以被实现为软件或固件,其中,所述软件或固件包括的指令存储在非暂时性(non-volatile)(或非易失性)计算机可读存储介质中。这些指令在由例如一个或多个处理器的处理电路执行时,使处理电路执行编码器(300)、解码器(400)、编码器(500)和/或解码器(600)的功能。
79.应注意,被配置为实现本文中所公开的属性预测技术的属性预测模块(550)和属性预测模块(650)可以被包括在其它解码器或编码器中,其中,其它的解码器或编码器可以具有与图5和图6所示的结构类似或不同的结构。另外,在各种示例中,编码器(500)和解码器(600)可以被包括在同一设备中或单独的设备中。
80.在测试模型(test model,tmc)13中,几何信息和点云的相关联属性(比如,颜色或反射率)可以被单独压缩。几何信息(点云的3d坐标)可以通过具有点云的占用信息的八叉树分区来编码。然后可以使用预测、提升(lifting)和区域自适应分层变换(region adaptive hierarchical transform,raht)技术,基于重建的几何形状(reconstructed geometry)压缩属性。
81.点云的基于预测的属性编码可以描述如下。为了简单起见,在基于预测的属性编码中可以假定一个细节层次(level of detail,lod)。
82.令(pi)
i=1...n
为与点云中的多个点相关联的位置的集合,并且令(mi)
i=1...n
为与(pi)
i=1...n
相关联的莫顿(morton)码。首先,可以根据多个点相关联的莫顿码,以升序对所述多个点进行排序。令i为根据升序排序的点索引阵列。编码器/解码器可以根据由i所定义的阶次(order),分别对多个点进行压缩/解压缩。在每次迭代i处,可以选择点pi。可以分析pi到s(例如,s=64)个先前点的距离,并且可以选择pi的k个(例如,k=3)最近邻居用于预测。更准确地,可以通过使用基于点i的最近邻居的距离的线性内插过程(linear interpolation process)来预测属性值(ai)
i∈1...n
。令为当前点i的k个最近邻居的集合,令为k个最近邻居的集合的已解码/已重建属性值,并且令为k个最近邻居的集合到当前点i的距离。可以根据如下等式(1),基于邻居的属性值和邻居集合到当前点的距离计算预测属性值
[0083][0084]
avs-pcc中基于预测的属性编码可以不同于mpeg中的属性编码。一个区别是排序顺序。希尔伯特(hilbert)排序顺序可以用于avs-pcc中基于预测的属性编码。avs-pcc中基于预测的属性编码的编码过程可以如下所示:首先,可以使用查找表来确定点云中的点的希尔伯特码。然后可以使用点的希尔伯特码值,对点云中的所有点进行排序。具有较小希尔伯特码的点可以出现在具有较大希尔伯特码的点之前。
[0085]
基于提升的属性编码可以建立在基于预测的属性编码之上。与基于预测的属性编码相比,基于提升的属性编码引入两个附加步骤:(a)引入更新操作符(update operator);以及(b)使用自适应量化策略(adaptive quantization strategy)。
[0086]
为了说明,可以在图7和图8中示出基于提升的属性编码的操作。图7示出了基于提升的属性编码中的正向变换(forward transform)700的框图,并且图8示出了基于提升的属性编码中的逆变换(inverse transform)800的框图。
[0087]
如图7中所示,级别n处的属性信号可以被分割成高通信号h(n)和低通信号l(n)。l(n)可以基于预测过程702生成预测信号p(n)。可以基于h(n)与l(n)之间的差异来生成差异信号d(n)。可以进一步更新差异信号d(n),以生成更新的信号u(n)。u(n)和l(n)的总和可以生成更新的低通信号l’(n)。在随后的级别(n-1)处,l’(n)可以进一步被分割成高通信号h(n-1)和低通信号l(n-1)。l(n-1)可以在级别n-1处生成预测信号p(n-1)。级别n-1处的差异信号d(n-1)可以基于h(n-1)与l(n-1)之间的差异来生成。可以进一步更新差异信号d(n-1),以在级别n-1处生成更新的信号u(n-1)。u(n-1)和l(n-1)的总和可以在级别n-1处生成更新的低通信号l’(n-1)。
[0088]
差异信号d(n-1)和更新的低通信号l’(n-1)可以进一步被分解成d(n-2)和l’(n-2)。可以重复地应用分割步骤,直到获得基本层(base layer)的更新的低通信号l’(0)。
[0089]
在图8中,提供了基于提升的属性编码的逆变换800。如图8中所示,可以基于更新的低通信号l’(0)与更新的信号u(0)的差,在级别零处生成低通信号l(0)。通过更新差异信号d(0),获得更新的信号u(0)。l(0)可以进一步基于预测过程802生成预测信号p(0)。p(0)进一步与d(0)相加,以生成高通信号h(0)。合并h(0)和l(0),以在级别一处生成更新的低通l’(1)。可以重复地应用合并步骤,直到在级别n处生成高通信号h(n)和低通信号l(n)。h(n)和l(n)可以进一步合并,以形成重建的属性信号。
[0090]
图9a示出了基于raht的属性编码的正向变换900a,并且图9b示出了基于raht的属性编码的逆变换900b。在图9a和图9b中,并且并且w0是输入系数f
l 1,2n
的权重的符号,而w1是输入系数f
l 1,2n 1
的权重的符号。
[0091]
还可以在avs-pcc中引入基于哈尔(haar)的属性编码。基于哈尔的属性编码技术可以描述如下。基于哈尔的属性编码可以被配置为基于哈尔变换,对点云的多个点执行点云压缩。
[0092]
在基于哈尔的属性编码的第一步骤中,可以在属性编码之前,使用莫顿阶次(morton order)对点云中的多个点进行排序,其中,具有较小莫顿码的点可以出现在具有较大莫顿码的点之前。点云中第k个点的坐标可以表示为(xk,yk,zk),k=0,

,n-1,其中,xk、yk和zk可以表示为等式(2)-(4)中的三个l比特数(l-bit numbers):
[0093][0094][0095][0096]
第k个点的莫顿码可以表示为3l比特数,可以在如下等式(5)中示出:
[0097][0098]
莫顿阶次中的点的对应属性可以表示为ak,k=0,1,

,n-1。
[0099]
在基于哈尔的属性编码的第二步骤中,可以如下将哈尔变换应用于等式(6)中莫顿阶次的一对连续点的属性:
[0100][0101]
其中,表示小于或等于x(x>0)的最大整数,并且哈尔变换矩阵t可以在如下等式(7)中表示:
[0102][0103]
其中,是哈尔变换系数。是缩放因子(scaling factor)。如果n是奇数,则最后一个点a
n1
没有点与之配对。最后一个点a
n1
的对应哈尔变换系数可以在如下等式(8)中表示:
[0104]
[0105]
高频分量可以被分组,以形成最终哈尔变换系数的一部分。对于低频分量h
2n
(其中)和h
n1
,如果n是奇数,可以将另一轮哈尔变换应用于连续分量对,直到仅剩下一个分量。进一步地,所有的高频分量和最后的分量可以被分组,以形成最终的哈尔变换系数,可以被表示为其中n=0,1,

,n-1。
[0106]
在基于哈尔的属性编码的第三步骤中,可以使变换系数量化,并且可以进一步对量化的变换系数进行编码。
[0107]
在基于哈尔的属性编码的第四步骤中,可以对量化的变换系数应用逆哈尔变换,以获得重建的属性。可以通过从原始属性中减去重建的属性来计算残差。
[0108]
在基于哈尔的属性编码的最后步骤中,可以使属性残差量化,并且可以进一步对量化的属性残差进行编码。
[0109]
应当注意,给定属性残差的量化步长为q
集合
,变换系数的量化步长大小q
变换
可以在如下等式(9)中给出:
[0110][0111]
另外,属性残差和量化变换系数的编码方法可以是一样的。例如,给定值x,编码方法可以在步骤(a)-(e)中描述如下:
[0112]
(a)对指示x是否等于0的标志进行编码(当x等于0时,标志=1;
[0113]
当x不等于0时,标志=0);
[0114]
(b)如果x不等于0,则编码x的符号(当x小于或等于0时,符号=0;
[0115]
当x大于0时,符号=1);
[0116]
(c)对指示x的绝对值是否等于1的标志进行编码(当|x|等于1时,标志=1;
[0117]
当|x|》1时,标志=0,其中|x|表示x的绝对值);
[0118]
(d)如果|x|》1,则对指示x的绝对值是否等于2的标志进行编码(当|x|等于2时,标志=1;当|x|》2时标志=0);以及,
[0119]
(e)如果|x|》2,则使用0阶指数哥伦布码(0-th order exponential golomb code)来编码|x|-3。
[0120]
avs-pcc中采用的基于哈尔的属性编码可能存在一些问题。例如,在基于哈尔的属性编码中,使用整个点云的属性来构造哈尔变换的多个层。对于具有n个点的点云,必须应用哈尔变换的层以获得所有最终变换系数,其中是不小于l=n2(n)的最小整数。相应地,如果n很大,则会导致很大的时延。另外,还可以改进点的排序、量化方案、对量化的变换系数的编码以及量化的属性残差。
[0121]
本公开包括改进基于哈尔的属性编码的方法。
[0122]
为了改进点的排序,在实施例中,不使用莫顿阶次排序(morton order sorting)(也被称为莫顿排序或莫顿阶次),可以使用比如希尔伯特排序(或希尔伯特阶次)的不同排
序阶次,在基于哈尔的属性编码之前,对点云的多个点进行排序。由于通过希尔伯特阶次排序的点通常可以与相邻点具有较高相关性,因此可以实现属性编码性能增益。
[0123]
在实施例中,比如sort_method的排序方法标志可以用于指示在基于哈尔的属性编码中使用哪个排序方法。排序方法标志可以在高级语法中被携带,比如,在序列参数集(sequence parameter set,sps)、属性参数集(attribute parameter set,aps)、切片头(slice header)等中。作为示例,排序方法标志可以在aps中被携带,这可以在表1中示出。
[0124]
表1:属性参数集(aps)中携带的排序方法标志
[0125][0126]
如表1中所示,排序方法标志(例如,aps_sort_method)可以指定在基于哈尔的属性编码之前的排序方法。当排序方法标志(例如,aps_sort_method)等于第一值(例如,0)时,指示使用莫顿排序。当排序方法标志(例如,aps_sort_method)等于第二值(例如,1)时,指示使用例如希尔伯特排序的另一排序方法。注意,通常使用递增的排序顺序(increasing sorting order)。然而,也可以使用递减的排序(decreasing order)。另外,排序方法不限于莫顿阶次和希尔伯特阶次,并且在其它实施例中,可以使用一种或多种不同的排序方法。在另一实施例中,始终使用希尔伯特排序阶次,不需要在属性参数集中添加aps_sort_method标志。
[0127]
在实施例中,不基于属性残差的量化参数确定变换系数的量化参数,可以在高级语法(例如,sps、aps、切片头等)中指定量化参数。相应地,可以基于点云的不同应用(例如,对象检测和定位,映射,以及可视化和存档文化遗产对象)或不同特性(例如,几何形状信息、颜色和反射率)来设置变换系数的不同量化参数。作为示例,量化参数可以在aps中携带,这可以在表2中示出。
[0128]
表2:示出aps中携带的量化参数的语法
[0129][0130]
如表2中所示,量化参数标志(例如,aps_tran_coeff_qp)可以指定用于量化变换系数的量化参数。在编码器端,可以基于属性残差的量化参数或基于其它准则(例如,点云的应用(例如,对象检测和定位、映射和/或可视化和存档文化遗产对象)或特性(例如,几何
形状信息、颜色和/或反射率)等)来设置量化参数。进一步地,可以通过量化参数标志(例如,aps_tran_coeff_qp)将确定的量化参数用信号通知到解码器端。在另一实施例中,不在比特流中直接发送aps_trans_coeff_qp,aps_trans_coeff_qp与用于对属性残差进行编码的qp之间的差(表示为aps_trans_qp_delta)可以在比特流中携带。
[0131]
可以观察到,量化的变换系数的特性不仅取决于原始(未量化的)变换系数的特性,而且还取决于量化参数。当量化参数较大时,量化的变换系数可以更多地集中在零值周围,并且量化的变换系数的范围可以较小。然而,使用较小的量化参数,量化的变换系数倾向于在较大的范围内扩展得更多。因此,当量化参数不同时,可以使用不同的编码方法。
[0132]
在应用中,可以应用指数哥伦布码,以便对量化的变换系数进行熵编码。在一个实施例中,指数哥伦布码的阶次可以连同变换系数的量化参数一起在例如sps、aps、切片头等高级语法中指定。作为示例,指数哥伦布码的阶次可以在aps中指定,可以在表3中示出。
[0133]
表3:示出aps中指数哥伦布码的阶次的语法
[0134][0135]
在表3中,如上所述,量化参数标志aps_tran_coeff_qp可以指定用于量化变换系数的量化参数。当对量化的变换系数减去阈值的绝对值进行编码时,编码标志(例如,aps_trans_coeff_eg_order)可以指定指数哥伦布码的阶次(order)。阈值可以是2或其它值(例如1或3),这取决于整个量化变换编码方案。
[0136]
一旦指数哥伦布码的阶次k由编码标志(例如,aps_trans_coeff_eg_order)确定,则使用k阶指数哥伦布码编码非负整数x的熵编码过程可以如下执行:(a)首先,采用0阶指数哥伦布码对进行编码;并且然后(b)以二进制形式编码(x与2k的模运算),其中x可以是量化的变换系数。
[0137]
在另一实施例中,指数哥伦布码的阶次k可以通过较小的量化参数需要相对较大的阶次的原理,基于变换系数的量化参数隐含地确定。在一个实施例中,可以在如下等式(10)中指定阶次k:
[0138]
其中,max_k是用于对量化的变换系数进行编码的指数哥伦布码的最大阶次,trans_coeff_qp是在变换系数的量化中使用的量化参数的值,s是正标量(positive scalar)并且通常被设置为6或8等。在一些实施例中,当量化参数的值等于零时,可以指示无损编码。当量化参数的值增加时,量化步长相应地增加。在一些实施例中,max_k的值可以被设置为2或3。
[0139]
在avs-pcc中,如上所述,对于具有n个点的点云,需要应用哈尔变换(或基于哈尔
的变换)的层以获得所有最终变换系数,如果n大,这可能导致大的时延。
[0140]
在一个实施例中,可以首先对具有n个点的点云选择性地排序。例如,点云可以使用如前描述的莫顿阶次、或希尔伯特阶次选择性地排序。排序阶次不限于莫顿阶次和希尔伯特阶次,并且在其它实施例中可以使用一个或多个不同的排序阶次。排序后的n个点可以进一步被分区成多个片段。除了最后一个片段可以包含少于m个点之外,多个片段中的每个片段可以包含m个点。片段的数量可以表示为该分区例如可以在图10中示出。
[0141]
对于每个片段,可以应用多层哈尔变换。由于多个片段彼此不相关,因此可以并行地对多个片段进行编码/解码。并行编码/解码可以帮助减少编码/解码时延。另外,如果以串行方式对每个片段进行编码/解码,则可以极大地降低存储器要求。
[0142]
在avs-pcc中,由于缩放因子或在等式(7)中示出的变换矩阵t中,在正向基于哈尔的变换和逆向基于哈尔的变换中都使用定点运算(fixed point operations)。
[0143]
在实施例中,正向基于哈尔的变换和逆向基于哈尔的变换可以是相同的,如等式(1)中所示。在另一实施例中,正向基于哈尔的变换的变换矩阵中的缩放因子可以是一,这可以在等式(11)中示出。逆向基于哈尔的变换的变换矩阵中的缩放因子可以是1/2,这可以在等式(12)中示出。
[0144][0145][0146]
如果n是奇数,则最后一个点a
n-1
没有点与之配对。最后一个点a
n-1
的对应变换系数可以在如下等式(13)中表示:
[0147]hn-1
=2
×an-1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
等式(13)
[0148]
因此,在逆向基于哈尔的变换期间,如果n是奇数,则最后一个点的变换系数可以除以2。因此,仅需要整数操作。可以降低变换和逆变换的复杂度。
[0149]
应当注意,本公开不限于tmc13软件、mpeg-pcc或avs-pcc标准。本公开提供了一种用于大多数pcc系统的通用解决方案。另外,本公开中的方法和实施例可以单独使用或以任何顺序组合使用。进一步地,方法(或实施例)中的每一个可以由处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一个示例中,一个或多个处理器可以执行存储在非易失性计算机可读介质中的程序。
[0150]
图11示出概述根据本公开实施例的过程(1100)的流程图。过程(1100)可以在点云的解码过程中使用。在各种实施例中,过程(1100)可以由处理电路来执行,例如,终端设备(110)中的处理电路、执行编码器(203)和/或解码器(201)的功能的处理电路、执行编码器(300)、解码器(400)、编码器(500)和/或解码器(600)的功能的处理电路等。在一些实施例中,过程(1100)可以用软件指令来实现,因此当处理电路执行软件指令时,处理电路执行过程(1100)。
[0151]
如图11中所示,过程(1100)开始于(s1101)并进行到(s1110)。
[0152]
在(s1110)处,可以基于点云的已编码比特流中的第一信令信息,确定点云中点集合的排序方法。
[0153]
在(s1120)处,可以基于点云的已编码比特流中的第二信令信息,确定用于对点云的基于哈尔的属性编码的变换系数进行量化的量化参数。
[0154]
在(s1130)处,可以根据基于第二信令信息确定的量化参数,确定用于对量化的变换系数进行解码的熵解码方法。
[0155]
在(s1140)处,可以基于熵解码方法进一步确定量化的变换系数。
[0156]
在(s1150)处,可以基于确定的排序方法和确定的量化的变换系数,重建点云的属性。
[0157]
在示例中,可以基于第一信令信息等于第一值,将排序方法确定为莫顿排序。在另一示例中,可以基于第一信令信息等于第二值,将排序方法确定为希尔伯特排序。
[0158]
在一些实施例中,可以基于量化参数、点云的应用和点云的特性之一来设置第二信令信息。
[0159]
在过程(1100)中,当熵解码方法是指数哥伦布编码时,可以基于已编码比特流中的第三信令信息确定指数哥伦布编码的阶次(order)k,其中第三信令信息指示指数哥伦布编码的阶次k。
[0160]
在过程(1100)中,当熵解码方法是指数哥伦布编码时,可以基于量化参数确定指数哥伦布编码的阶次k。因此,阶次max_k是用于对量化的变换系数进行解码的指数哥伦布编码的最大阶次,trans_coeff_qp是量化参数的值,并且s是等于六或八的正整数。
[0161]
在一些实施例中,为了基于熵解码方法来确定量化的变换系数,可以基于指数哥伦布编码和确定的指数哥伦布编码的阶次k,对量化的变换系数减去阈值的绝对值进行解码。阈值可以等于1、2和3之一。
[0162]
在一些实施例中,为了基于熵解码方法确定量化的变换系数,可以对量化的变换系数中的第一量化的变换系数x进行解码。可以通过指数哥伦布编码对第一量化的变换系数x进行编码,使得使用阶次k等于零的指数哥伦布编码对第一部分进行编码,并且以二进制形式对第二部分(x与2k的模运算)进行编码。
[0163]
在过程(1100)中,可以基于确定的排序方法对点云中的点集合进行排序。基于已编码比特流中的分区信令信息指示的分区大小,可以进一步将点云的排序的点集合分区成多个片段。可以基于确定的量化的变换系数,重建点云的多个片段中的每一个片段。
[0164]
在一些实施例中,多个片段的数目可以等于其中,n可以是点云中的点集合的数目,并且m可以是正整数。
[0165]
在过程(1100)中,为了重建点云,可以确定与基于哈尔的属性编码相关联的哈尔变换矩阵的缩放因子1/2。可以对量化的变换系数执行逆量化操作,从而根据基于哈尔的属性编码获得变换系数。可以基于哈尔变换矩阵和变换系数,对点云执行逆变换操作以获得属性残差。通过基于哈尔的属性编码获得的点云的属性残差和预测属性,可以进一步重建点云的属性。
[0166]
如上所述,上述技术可以通过计算机可读指令实现为计算机软件,并且物理地存储在一个或多个计算机可读介质中。例如,图12示出了计算机系统(1800),其适于实现所公开主题的某些实施例。
[0167]
所述计算机软件可通过任何合适的机器代码或计算机语言进行编码,通过汇编、编译、链接等机制创建包括指令的代码,所述指令可由一个或多个计算机中央处理单元(cpu),图形处理单元(gpu)等直接执行或通过译码、微代码等方式执行。
[0168]
所述指令可以在各种类型的计算机或其组件上执行,包括例如个人计算机、平板电脑、服务器、智能手机、游戏设备、物联网设备等。
[0169]
图12所示的用于计算机系统(1800)的组件本质上是示例性的,并不用于对实现本技术实施例的计算机软件的使用范围或功能进行任何限制。也不应将组件的配置解释为与计算机系统(1800)的示例性实施例中所示的任一组件或其组合具有任何依赖性或要求。
[0170]
计算机系统(1800)可以包括某些人机界面输入设备。这种人机界面输入设备可以通过触觉输入(如:键盘输入、滑动、数据手套移动)、音频输入(如:声音、掌声)、视觉输入(如:手势)、嗅觉输入(未示出),对一个或多个人类用户的输入做出响应。所述人机界面设备还可用于捕获某些媒体,气与人类有意识的输入不必直接相关,如音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止影像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
[0171]
人机界面输入设备可包括以下中的一个或多个(仅绘出其中一个):键盘(1801)、鼠标(1802)、触控板(1803)、触摸屏(1810)、数据手套(未示出)、操纵杆(1805)、麦克风(1806)、扫描仪(1807)、照相机(1808)。
[0172]
计算机系统(1800)还可以包括某些人机界面输出设备。这种人机界面输出设备可以通过例如触觉输出、声音、光和嗅觉/味觉来刺激一个或多个人类用户的感觉。这样的人机界面输出设备可包括触觉输出设备(例如通过触摸屏(1810)、数据手套(未示出)或操纵杆(1805)的触觉反馈,但也可以有不用作输入设备的触觉反馈设备)、音频输出设备(例如,扬声器(1809)、耳机(未示出))、视觉输出设备(例如,包括阴极射线管屏幕、液晶屏幕、等离子屏幕、有机发光二极管屏的屏幕(1810),其中每一个都具有或没有触摸屏输入功能、每一个都具有或没有触觉反馈功能——其中一些可通过诸如立体画面输出的手段输出二维视觉输出或三维以上的输出;虚拟现实眼镜(未示出)、全息显示器和放烟箱(未示出))以及打印机(未示出)。
[0173]
计算机系统(1800)还可以包括人可访问的存储设备及其相关介质,如包括具有cd/dvd的高密度只读/可重写式光盘(cd/dvd rom/rw)(1820)或类似介质(1821)的光学介质、拇指驱动器(1822)、可移动硬盘驱动器或固体状态驱动器(1823),诸如磁带和软盘(未示出)的传统磁介质,诸如安全软件保护器(未示出)等的基于rom/asic/pld的专用设备,等等。
[0174]
本领域技术人员还应当理解,结合所公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其它瞬时信号。
[0175]
计算机系统(1800)还可以包括通往一个或多个通信网络的接口。例如,网络可以是无线的、有线的、光学的。网络还可为局域网、广域网、城域网、车载网络和工业网络、实时网络、延迟容忍网络等等。网络还包括以太网、无线局域网、蜂窝网络(gsm、3g、4g、5g、lte等)等局域网、电视有线或无线广域数字网络(包括有线电视、卫星电视、和地面广播电视)、车载和工业网络(包括canbus)等等。某些网络通常需要外部网络接口适配器,用于连接到某些通用数据端口或外围总线(1849)(例如,计算机系统(1800)的usb端口);其它系统通常
通过连接到如下所述的系统总线集成到计算机系统(1800)的核心(例如,以太网接口集成到pc计算机系统或蜂窝网络接口集成到智能电话计算机系统)。通过使用这些网络中的任何一个,计算机系统(1800)可以与其它实体进行通信。所述通信可以是单向的,仅用于接收(例如,无线电视),单向的仅用于发送(例如can总线到某些can总线设备),或双向的,例如通过局域或广域数字网络到其它计算机系统。上述的每个网络和网络接口可使用某些协议和协议栈。
[0176]
上述的人机界面设备、人可访问的存储设备以及网络接口可以连接到计算机系统(1800)的核心(1840)。
[0177]
核心(1840)可包括一个或多个中央处理单元(cpu)(1841)、图形处理单元(gpu)(1842)、以现场可编程门阵列(fpga)(1843)形式的专用可编程处理单元、用于特定任务的硬件加速器(1844)等。这些设备以及只读存储器(rom)(1845)、随机存取存储器(1846)、内部大容量存储器(例如内部非用户可存取硬盘驱动器、固态硬盘等)(1847)等可通过系统总线(1848)进行连接。在某些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(1848),以便可通过额外的中央处理单元、图形处理单元等进行扩展。外围装置可直接附接到核心的系统总线(1848),或通过外围总线(1849)进行连接。外围总线的体系结构包括外部控制器接口pci、通用串行总线usb等。
[0178]
cpu(1841)、gpu(1842)、fpga(1843)和加速器(1244)可以执行某些指令,这些指令组合起来可以构成上述计算机代码。该计算机代码可以存储在rom(1845)或ram(1846)中。过渡数据也可以存储在ram(1846)中,而永久数据可以存储在例如内部大容量存储器(1847)中。通过使用高速缓冲存储器可实现对任何存储器设备的快速存储和检索,高速缓冲存储器可与一个或多个cpu(1841)、gpu(1842)、大容量存储器(1847)、rom(1845)、ram(1846)等紧密关联。
[0179]
所述计算机可读介质上可具有计算机代码,用于执行各种计算机实现的操作。介质和计算机代码可以是为本技术的目的而特别设计和构造的,也可以是计算机软件领域的技术人员所熟知和可用的介质和代码。
[0180]
作为实施例而非限制,具有体系结构(1800)的计算机系统,特别是核心(1840),可以作为处理器(包括cpu、gpu、fpga、加速器等)提供执行包含在一个或多个有形的计算机可读介质中的软件的功能。这种计算机可读介质可以是与上述的用户可访问的大容量存储器相关联的介质,以及具有非易失性的核心(1840)的特定存储器,例如核心内部大容量存储器(1847)或rom(1845)。实现本技术的各种实施例的软件可以存储在这种设备中并且由核心(1840)执行。根据特定需要,计算机可读介质可包括一个或一个以上存储设备或芯片。该软件可以使得核心(1840)特别是其中的处理器(包括cpu、gpu、fpga等)执行本文所述的特定过程或特定过程的特定部分,包括定义存储在ram(1846)中的数据结构以及根据软件定义的过程来修改这种数据结构。另外或作为替代,计算机系统可以提供逻辑硬连线或以其它方式包含在电路(例如,加速器(1844))中的功能,该电路可以代替软件或与软件一起运行以执行本文所述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包括逻辑,反之亦然。在适当的情况下,对计算机可读介质的引用可包括存储执行软件的电路(如集成电路(ic)),包含执行逻辑的电路,或两者兼备。本技术包括任何合适的硬件和软件组合。
[0181]
虽然本技术已对多个示例性实施例进行了描述,但实施例的各种变更、排列和各种等同替换均属于本技术的范围内。因此应理解,本领域技术人员能够设计多种系统和方法,所述系统和方法虽然未在本文中明确示出或描述,但其体现了本技术的原则,因此属于本技术的精神和范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献