视频数据的编码方法、装置、计算机设备及存储介质与流程

文档序号:23552283发布日期:2021-01-05 21:11阅读:99来源:国知局
视频数据的编码方法、装置、计算机设备及存储介质与流程
引用并入本申请要求于2019年7月5日提交的、申请号为62/871,079、发明名称为"点云属性编解码中可扩展提升的技术及装置"的美国临时申请的优先权以及于2020年7月2日提交的美国申请第16/919,996号、发明名称为“点云属性编解码中可扩展提升的方法及装置”的优先权,其全部内容通过引用并入本申请中。本申请实施例涉及视频编解码技术,尤其涉及一种视频数据的编码方法、装置、计算机设备及存储介质。
背景技术
:世界的高级三维(3d)表示能够实现更加沉浸式的交互和通信。它们还允许机器理解、解释和导航我们的世界。3d点云已经成为这类信息的启用表示。已经识别出与点云数据相关联的多个用例,并且已经开发了对点云表示和压缩的相应要求。点云是指在3d空间中的一组点,每个点具有相关联的属性,例如颜色、材料特性等。点云可以用于重建对象或场景作为此类点的组合。可以在各种设置中使用多个相机和深度传感器捕获所述点,并且所述点可以由数千到数十亿个点组成,以便真实地表示重建的场景。需要压缩技术来减少表示点云所需的数据量。因此,在实时通信和六自由度(6dof)虚拟现实中,需要使用点云的有损压缩技术。另外,在自动驾驶和文化遗产应用等的动态映射的环境中,寻求无损点云压缩技术。运动图像专家组(mpeg)开始研究解决几何形状和属性的压缩的标准,例如颜色和反射率、可缩放/渐进编码、随时间捕获的点云序列的编码以及对点云子集的随机访问。针对点云数据,一些场景中要求从有损失到无损失地或者接近无损失保真地对数据进行可扩展重建。而在对点云的属性进行编解码时,目前使用的预测变换,编解码的效率较低,需要找到有效的技术方案进行改善。技术实现要素:本申请实施例和点云编解码技术有关,提供了一种视频数据的编码方法、装置、计算机设备及存储介质。本申请实施例提供了一种视频数据的编码方法,包括:获取所述视频数据对应的点云以及所述点云的属性所对应的变换系数;对所述变换系数进行编码,包括:在所述变换系数的多个位平面上进行迭代。本申请实施例还提供了一种视频数据的编码装置,包括:获取模块,用于获取所述视频数据对应的点云以及所述点云的属性所对应的变换系数;编码模块,用于对所述变换系数进行编码;其中,所述编码模块包括:位平面迭代模块,用于在所述变换系数的多个位平面上进行迭代。本申请实施例还提供一种计算机设备,包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现如上所述的视频数据的编码方法。本申请实施例还提供一种非暂时性计算机可读介质,其上存储有指令,当所述指令由计算机执行时,使得所述计算机执行如上所述的视频数据的编码方法。由上述技术方案可见,本发明实施例提供的方法,通过在变换系数的多个位平面上进行迭代,可以在当前g-pcc提升设计下,对属性进行可扩展无损地或者接近无损地进行编解码,实现了提升系数的可扩展编解码,从而提升了视频编解码的增益。附图说明根据以下详细说明和附图,所公开的主题的进一步的特征、性质和各种优点将更加显而易见,其中:图1a是根据本申请一实施例的在g-pcc中生成lod的方法示意图。图1b是根据本申请一实施例的在g-pcc中用于p/u-提升的结构示意图。图2是根据本申请一实施例的通信系统的结构示意图;图3是根据本申请一实施例的在环境中放置g-pcc压缩器和g-pcc解缩器的示意图;图4是根据本申请一实施例的g-pcc压缩器的功能性结构示意图;图5是根据本申请一实施例的g-pcc解缩器的功能性结构示意图;图6a是根据本申请一实施例的视频数据的编码方法的流程示意图;图6b是根据本申请一实施例的视频数据的编码装置的结构示意图;图7是根据本申请一实施例的视频数据的解码装置的结构示意图;以及图8示出了根据本申请实施例的计算机设备的示意图。具体实施方式图1a是示出在基于图的点云压缩(g-pcc,graph-basedpointcloudcompression)中生成细节层次(lod)的方法示意图。参考图1a,在当前g-pcc属性编解码中,基于每个3d点的距离生成每个3d点(例如,p0-p9)的lod(即,组),然后基于lod的顺序110进行预测,对每个lod中3d点的属性值进行编码,而不是以3d点的原始顺序105来进行预测。例如,通过计算3d点p0、p5和p4(它们在3d点p2之前编码或解码)的基于距离的加权平均值,来预测3d点p2的属性值。g-pcc中的当前锚定方法,如下所述。首先,计算3d点的邻域的可变性,可以检查相邻的值是如何不同的,并且如果可变性低于阈值,则通过预测属性值(ai)i∈0…k-1,使用基于当前点i的最近邻点的距离进行的线性插值过程,来计算基于距离的加权平均预测。令是当前点i的k个最近邻点的集合,令是它们的已解码/已重建的属性值,并且令是它们到当前点i的距离。然后由下式给出预测的属性值注意,当对属性进行编码时,所有点云的几何位置都已经是可用的。另外,相邻点以及它们已重建的属性值,在编码器和解码器中都可用作k维树结构,所述k维树结构便于以相同的方式,针对每个点执行最近相邻搜索。其次,如果可变性高于阈值,则执行率失真优化(rdo,rate-distortionoptimized)预测器选择。基于在生成lod时进行邻点搜索的结果,创建多个预测器候选或多个候选预测值。例如,当通过使用预测器来对3d点p2的属性值进行编码时,从3d点p2分别到3d点p0、p5和p4的距离进行加权平均后的值,可以被设置为预测器索引等于0。然后,从3d点p2到最近邻点p4的距离被设置为预测器索引等于1。而且,如以下表1中示出的,将从3d点p2到下一个最近邻点p5和p0的距离,分别被设置为预测器索引等于2和3。表1用于属性编解码的预测器候选的样本预测器索引预测值0平均1p4(第一最近邻点)2p5(第二最近邻点)3p0(第三最近邻点)在创建预测器候选之后,通过应用率失真优化程序来选择最佳预测器,然后,将选定的预测器索引映射到截断的一元(tu)编码,其中,截断的一元编码的二进制数将进行算术编码。注意,在表1中,较短的tu编码将分配给较小的预测器索引。定义预测器候选的最大数量maxnumcand,并且进行编码,写到属性头中。在当前实现方式中,预测器候选的最大数量maxnumcand被设置为等于numberofnearestneighborsinprediction+1,并且用于对截断的一元二进制化的预测器索引进行编码和解码。g-pcc中用于属性编解码的提升变换,建立在上述预测变换之上。预测方案和提升方案之间的主要区别,在于引入了更新运算符。图1b是在g-pcc中用于预测/更新(p/u)—提升的结构图。为了便于在提升中进行预测和更新,须在分解的每个阶段,将信号拆分成两组高相关性信号。在g-pcc的提升方案中,可以利用lod结构来执行拆分,在所述lod结构中,认为在各个层次之间具备高相关性,并且每个层次通过最近相邻搜索来构成,以将非均匀点云组织成结构化数据。在层次n处的p/u分解,可以得到细节信号d(n-1)和近似信号a(n-1),所述细节信号d(n-1)和近似信号a(n-1)进一步分解为d(n-2)和a(n-2)。重复应用所述步骤,直到获得基础层次近似信号a(1)。因此,在提升方案中,对d(n-1)、d(n-2)、…、d(1)、a(1)进行编解码,而不是对由lod(n)、…、lod(1)组成的输入属性信号本身进行编解码。注意的是,使用有效的p/u步骤,通常会导致d(n-1)、…、d(1)中子带“系数”稀疏,从而获得在变换编解码增益上的优势。当前,仅使用上述用于预测变换的基于距离的加权平均预测,作为g-pcc中的锚定方法,在提升中用于预测步骤。本申请下述实施例提供了针对点云属性编解码的方法和装置。这些方法和装置适合于如图1a-b所述的当前g-pcc提升设计。这些方法和装置可以应用于针对点云设计的类似的编解码器。图2示出了根据本申请一个实施例的通信系统200的简化框图。系统200可以包括经由网络250互连的至少两个终端210、220。对于数据的单向传输,第一终端210可以对本地位置处的点云数据进行编码,以经由网络250传输到另一终端220。第二终端220可以从网络250接收另一终端的已编码点云数据,对已编码数据进行解码,并且显示已恢复的点云数据。单向数据传输在媒介服务应用等中可能是常见的。图2示出了第二对终端230、240,用于支持例如在视频会议期间可能发生的已编码点云数据的双向传输。对于数据的双向传输,每个终端230、240可以对在本地位置处捕获到的点云数据进行编码,以经由网络250传输到另一终端。每个终端230、240还可以接收由另一终端传输的已编码点云数据,可以对已编码数据进行解码,并且可以在本地显示设备处显示已恢复的点云数据。在图2中,终端210-240可以是例如服务器、个人计算机和智能电话和/或任何其它类型的终端。例如,终端210-240可以是膝上型计算机、平板计算机、媒体播放器和/或专用视频会议设备。网络250表示在终端210-240之间传送已编码点云数据的任意数量的网络,包括例如有线和/或无线通信网络。通信网络250可以在线路交换和/或分组交换信道中交换数据。代表性网络包括电信网络、局域网、广域网和/或因特网。出于当前讨论的目的,网络250的架构和拓扑结构对于本申请操作可能是无关紧要的,除非在下文中解释。图3是根据本申请一实施例的在环境中放置g-pcc压缩器303和g-pcc解压缩器310的示意图。所公开的主题可以同样适用于其他使用点云的应用,包括例如视频会议、数字电视、存储压缩的点云数据的数字媒体,包括光盘、数字视频光盘、记忆棒等。流系统300可以包括捕捉子系统313,捕捉子系统313可以包括点云源301,例如数码相机,创建例如未压缩的点云数据302。具有较高数据量的点云数据302可由联接到点云源301的g-pcc压缩器303进行处理。g-pcc压缩器303可以包括硬件、软件或它们的组合,以启用或实现所公开主题的各方面,在下面进行更详细的描述。具有较低数据量的已编码的点云数据304可以存储在流服务器305上以供将来使用。一个或多个流客户端306和308可以访问流服务器305,以取回已编码的点云数据304的副本307和309。客户端306可以包括g-pcc解压缩器310,所述g-pcc解压缩器310对已编码的点云数据的传入副本307进行解码,并且创建可在显示器312或其他呈现设备(未示出)上呈现的传出点云数据311。在一些流系统中,可以根据视频编解码/压缩标准对已编码的点云数据304、307和309进行编解码。这些标准的示例包括由mpeg针对g-pcc开发的那些标准。图4是根据实施例的g-pcc压缩器303的功能框图。如图4中示出的,g-pcc压缩器303包括量化器405、点移除模块410、八叉树编码器415、属性传送模块420、lod生成器425、预测模块430、量化器435和算术编码器440。量化器405接收输入点云中的点的位置。位置可以是(x,y,z)坐标。量化器405还使用例如缩放算法和/或移位算法来量化接收到的位置。点移除模块410从量化器405接收量化后的位置,并且从接收到的量化后的位置移除重复的位置或者滤波掉重复的位置。八叉树编码器415从点移除模块410接收滤波后的位置,并且使用八叉树编码算法,将接收到的滤波后的位置编码成表示输入点云的八叉树的占用符号。对应于八叉树的输入点云的边界框,可以是任何3d形状,例如,立方体。八叉树编码器415还基于对滤波后的位置的编码,来对接收到的滤波后的位置进行重新排序。属性传送模块420接收输入点云中的点的属性。属性可以包括例如,每个点的颜色,或rgb值,和/或反射率。属性传送模块420还从八叉树编码器415接收重新排序的位置。属性传送模块420基于接收到的重新排序的位置,进一步更新已接收属性。例如,属性传送模块420可以对已接收属性执行一个或多个预处理算法,预处理算法包括,例如,对已接收属性进行加权和平均,以及从已接收属性中对更多的属性进行插值。属性传送模块420还将更新的属性传送到预测模块430。lod生成器425从八叉树编码器415接收重新排序的位置,并且获得重新排序的位置对应的每个点的lod。每个lod可以被认为是一组点,并且可以基于每个点的距离来获得。例如,如图1a中示出的,点p0、p5、p4和p2可在lodlod0中,点p0、p5、p4、p2、p1、p6和p3可在lodlod1中,点p0、p5、p4、p2、p1、p6、p3、p9、p8和p7可在lodlod2中。预测模块430从属性传送模块420接收所传送的属性,并且从lod生成器425接收所获得的每个点的lod。预测模块430基于接收到的每个点的lod的顺序对已接收属性应用预测算法,分别获得所接收属性的预测残差(值)。预测算法可以包括各种预测算法中的任一种,诸如,插值、加权平均计算、最近相邻算法和rdo。例如,如图1a中示出的,在获得lod1和lod2中分别包括的点p1、p6、p3、p9、p8和p7的已接收属性的预测残差之前,可以首先获得lod0中包括的点p0、p5、p4和p2的已接收属性的预测残差。可以通过基于点p0、p5和p4的加权平均计算距离来获得点p2的已接收属性的预测残差。量化器435从预测模块430接收所获得的预测残差,并且使用例如缩放算法和/或移位算法来量化接收到的预测残差。算术编码器440从八叉树编码器415接收占用符号,并且从量化器435接收量化的预测残差。算术编码器440对接收到的占用符号和量化的预测残差执行算术编码,以获得已压缩位流。算术编码可以包括各种熵编解码算法中的任一种,诸如,例如上下文自适应二进制算术编码。图5是根据实施例的g-pcc解压缩器310的功能框图。如图5中示出的,g-pcc解压缩器310包括算术解码器505、八叉树解码器510、逆量化器515、lod生成器520、逆量化器525和逆预测模块530。算术解码器505从g-pcc压缩器303接收已压缩位流,并且对接收到的已压缩位流执行算术解码,以获得占用符号和量化的预测残差。算术解码可以包括各种熵解码算法中的任一种,诸如,例如上下文自适应二进制算术解码。八叉树解码器510从算术解码器505接收所获得的占用符号,并且使用八叉树解码算法将接收到的占用符号解码成量化后的位置。逆量化器515从八叉树解码器510接收量化后的位置,并且使用例如缩放算法和/或移位算法对接收到的量化后的位置进行逆量化,以获得输入点云中点的重建的位置。lod生成器520从八叉树解码器510接收量化后的位置,并且获得接收到的量化后的位置所对应的每个点的lod。逆量化器525接收所获得的量化的预测残差,并且使用例如缩放算法和/或移位算法对接收到的量化的预测残差进行逆量化,以获得重建的预测残差。逆预测模块530从逆量化器525接收所获得的重建的预测残差,并且从lod生成器520接收所获得的每个点的lod。逆预测模块530基于接收到的每个点的lod的顺序,将预测算法应用于接收到的重建的预测残差,分别获得与接收到的重建的预测残差相对应的重建的属性。预测算法可以包括各种预测算法中的任一种,诸如,插值、加权平均计算、最近相邻算法和rdo。重建的属性是指输入点云中的点的属性。现在将详细描述用于点云属性编码和解码的方法和装置。这种方法和装置可在上述的g-pcc压缩器303中实现。所述方法和装置也可在g-pcc解压缩器310中实现。本申请实施例,包括方法和装置,可以属于关于图1a至图1b描述的当前的g-pcc提升设计。所述实施例可以扩展或修改当前的g-pcc提升设计以实现提升系数的可缩放编解码。实施例的方法可以应用于针对点云设计的类似编解码器。(1)用于提升系数编解码的g-pcc锚定方案(单信道信号)下面的表2和表3中的伪代码,示出了g-pcc中的当前提升系数编解码算法,该算法是基于行程长度编解码。锚定方案是指非嵌入编解码。(a)编码器下面的表2示出了可由编码器执行的伪代码。“qs”是指量化步骤。表2(b)解码器下面的表3示出了可由解码器执行的伪代码。表3(2)本申请用于嵌入系数编解码的方案(单信道信号)不同于以上描述的不生成嵌入位流的锚定方案,本申请一个或多个实施例提供一种方案,在多个位平面上从每个提升变换系数的msb(最高有效位)向下迭代到lsb(最低有效位)。在每次迭代中,所述方案可以从最低(最稀疏)lod到最高(最密集)lod来处理云中的所有点。下面的表4和表5示出了根据一个或多个实施例的伪代码。(a)编码器下面的表4示出了可由本申请编码器执行的伪代码。语法元素“reflectance_embed”和“reflectance”在开始时分别初始化为reflectance*quantweight和零。“numlevel”是reflectance*quantweight的最大值的最高有效位,在一实施例中,可以在开始时将其发送到解码器。“lastlevel”是对应于最后量化层次的语法元素“reflectance_embed”的最低有效位。表4(b)解码器下面的表5示出了可由本申请编码器执行的伪代码。表5(3)用于提升系数编解码的g-pcc锚定方案(颜色信号)下面的表6和表7中的伪代码,示出了g-pcc中三信道情况下的当前提升系数编解码算法,该算法是基于游程编解码。(a)编码器下面的表6示出了可由编码器执行的伪代码。表6(b)解码器下面的表7示出了可由解码器执行的伪代码。表7(4)本申请用于嵌入系数编解码的方案(颜色信号)本申请一个或多个实施例中,下面的表8和表9中的伪代码,示出了针对g-pcc中三信道情况下的提升系数编解码算法。不同于以上描述的不生成嵌入位流的锚定方案,本申请一个或多个实施例提供一种方案,所述方案在多个位平面上从每个提升变换系数的msb向下迭代到lsb。在每次迭代中,所述方案可以从最低(最稀疏)lod到最高(最密集)lod来处理云中的所有点。(a)编码器下面的表8示出了可由本申请编码器执行的伪代码。表8(b)解码器下面的表9示出了可由本申请解码器执行的伪代码。表9根据一个或多个实施例,上述标题(4)下将三个颜色信道作为矢量信号来处理(参见例如表8和表9),然而上述标题(2)下所述的方案(参见例如表4和表5)可以用于每个信道,在这种情况下,可以利用信道间相似性来对熵编解码进行上下文建模。根据一个或多个实施例,可以利用lod间依赖性来对熵编解码进行上下文建模。更具体地说,由于点云中的每个点的邻点属于较低(即,较稀疏)层次,这些较低(即,较稀疏)层次已经针对位平面编解码的每个层次进行了编解码,因此它们的重要性、符号和修正信息可以被用于对当前点的对应信息使用不同的上下文模型。对于典型的2d子带分解来说,也是一种类似的情况,其中,可以期望子带之间存在所谓的“父子”关系。图6a是根据本申请一实施例的视频数据的编码方法的流程示意图,由计算机设备执行。如图6a所示,包括如下步骤:步骤601,获取视频数据对应的点云以及点云的属性所对应的变换系数。步骤602,对变换系数进行编码。步骤602具体包括步骤603,在变换系数的多个位平面上进行迭代。图6b是根据实施例的视频数据的编码装置600的框图。装置600可以包括至少一个处理器和存储器,并且可以被配置为编码器。存储器可以存储计算机指令,所述计算机指令被配置为使得至少一个处理器执行上述编解码方案中的一个或多个。例如,存储器可以存储计算机指令以执行关于上面的标题(2)和(4)所描述的方案。参考图6b,装置600的存储器可以包括获取模块610和编码模块620。获取模块610可以被配置为使得至少一个处理器,获取视频数据对应的点云以及点云的属性所对应的变换系数。在本申请实施例中,点云是指3d空间中的一组点,每个点具备自己的属性,例如,颜色。变换是指对点云进行提升变换,变换系数为提升变换系数。如图1b所示,在预测的基础上进行更新,相当于在预测变换之上引入更新运算符,即进行了提升变换。其中,d(n-1)、d(n-2)、…、d(1)、a(1)即为提升变换系数。编码模块620可以被配置为使得至少一个处理器,对提升变换系数进行编码。编码模块620可以包括多个嵌套的迭代模块,从而以不同的编码层次对提升变换系数进行编码。例如,编码模块620可以包括位平面迭代模块630、lod迭代模块640和预测器索引迭代模块650中的一个或多个。位平面迭代模块630可以被配置为使得至少一个处理器,在提升变换系数的位平面上迭代以对提升变换系数进行编码。例如,位平面可以从提升变换系数的最高有效位(msb)迭代到最低有效位(lsb)。lod迭代模块640可以被配置为使得至少一个处理器,在与点云中各点对应的lod上进行迭代,以对提升变换系数进行编码。例如,如上图1a所述,将点云中的多个点划分为多个lod,从lod的最低(最稀疏)lod迭代到最高(最密集)lod。预测器索引迭代模块650可以被配置为使得至少一个处理器,在预测器索引上进行迭代,以对提升变换系数进行编码。例如,预测器索引可以从预测器索引的最低预测器索引迭代到最高预测器索引。如上表1所示,每个预测器索引对应一个预测值。根据实施例,并且如图6所示,预测器索引迭代模块650可以嵌套在lod迭代模块640中,并且lod迭代模块640可以嵌套在位平面迭代模块630中。根据实施例,提升变换系数所对应的属性可以包括一个或多个信道。在属性包括多个信道(例如3个信道)的情况下,编码模块620还可以包括信道迭代模块660。信道迭代模块660可以被配置为使得至少一个处理器,在每个位平面上进行迭代时,在所述多个信道上进行迭代,以对提升变换系数进行编码。根据实施例,并且如图6所示,信道迭代模块660可以嵌套在例如预测器索引迭代模块650中。作为信道迭代模块660的替代,编码模块620可以被配置为使得至少一个处理器多次执行位平面迭代模块630(以及其中的嵌套代码),使得在每个位平面上多次迭代时,对多个信道中每个信道对应的提升变换系数进行编码。图7是根据实施例的视频数据的解码装置700的框图。装置700可以包括至少一个处理器和存储器,并且可以被配置为解码器。存储器可以存储计算机指令,所述计算机指令被配置为使得至少一个处理器执行上述解码方案中的一个或多个。例如,存储器可以存储计算机指令以执行关于上面的标题(2)和(4)所描述的方案。参考图7,装置700可以包括获得获取模块710和解码模块720。解码模块720可以被配置为使得至少一个处理器对点云的属性所对应的已编码变换系数进行解码。获取模块710可以被配置为使得至少一个处理器基于解码后的提升变换系数来获取(例如,重建)属性。解码模块720可以包括多个嵌套的迭代代码,以不同的解码层次对提升变换系数进行解码。例如,解码模块720可以包括位平面迭代代码730、lod迭代代码740和预测器索引迭代代码750中的一者或多者。位平面迭代代码730可以被配置为使得至少一个处理器在提升变换系数的位平面上迭代,以对已编码的提升变换系数进行解码。例如,位平面可以从提升变换系数的最高有效位(msb)迭代到最低有效位(lsb)上。lod迭代代码740可以被配置为使得至少一个处理器在对应于点云中的点的lod上迭代,以对已编码的提升变换系数进行解码。例如,lod可以从lod的最低(最稀疏)lod迭代到最高(最密集)lod。预测器索引迭代代码750可以被配置为使得至少一个处理器在预测器索引上迭代以对已编码的提升变换系数进行解码。例如,预测器索引可以从预测器索引的最低预测器索引迭代到最高预测器索引上。根据实施例,并且如图7所示,预测器索引迭代代码750可以嵌套在lod迭代代码740中,并且lod迭代代码740可以嵌套在位平面迭代代码730中。根据实施例,提升变换系数所对应的属性可以包括一个或多个信道。在属性包括多个信道(例如3个信道)的情况下,解码模块720还可以包括信道迭代代码760。信道迭代代码760可以被配置为使得至少一个处理器在信道上迭代。根据实施例,并且如图7所示,信道迭代代码760可以嵌套在例如预测器索引迭代代码750中。作为信道迭代代码760的替代,解码模块720可以被配置为使得至少一个处理器多次执行位平面迭代代码730(以及其中的嵌套代码),使得在多次中的每一次中,对应于多个信道的相应信道的已编码的提升变换系数被解码。上述技术可以被用于视频编码器和/或解码器中,适配于点云压缩/解压缩。视频编码器和/或解码器可以在硬件、软件或者及其组合中实现。如果是软件,可以存储于一个或多个非易失性计算机可读介质中。例如,每个方法、编码器、解码器可以通过处理电路(例如,一个或多个处理器,或者,一个或多个集成电路)来实现。在一示例中,上述一个或多个处理器执行一个或多个非易失性计算机可读介质中存储的程序。上述技术可以通过计算机可读指令实现为计算机软件,并且物理地存储在一个或多个计算机可读介质中。例如,图8示出了计算机设备(900),其适于实现所公开主题的某些实施例。所述计算机软件可通过任何合适的机器代码或计算机语言进行编码,通过汇编、编译、链接等机制创建包括指令的代码,所述指令可由一个或多个计算机中央处理单元(cpu),图形处理单元(gpu)等直接执行或通过译码、微代码等方式执行。所述指令可以在各种类型的计算机或其组件上执行,包括例如个人计算机、平板电脑、服务器、智能手机、游戏设备、物联网设备等。图8所示的用于计算机设备(900)的组件本质上是示例性的,并不用于对实现本申请实施例的计算机软件的使用范围或功能进行任何限制。也不应将组件的配置解释为与计算机设备(900)的示例性实施例中所示的任一组件或其组合具有任何依赖性或要求。计算机设备(900)可以包括某些人机界面输入设备。这种人机界面输入设备可以通过触觉输入(如:键盘输入、滑动、数据手套移动)、音频输入(如:声音、掌声)、视觉输入(如:手势)、嗅觉输入(未示出),对一个或多个人类用户的输入做出响应。所述人机界面设备还可用于捕获某些媒体,气与人类有意识的输入不必直接相关,如音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止影像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。人机界面输入设备可包括以下中的一个或多个(仅绘出其中一个):键盘(901)、鼠标(902)、触控板(903)、触摸屏(910)、数据手套(未示出)、操纵杆(905)、麦克风(906)、扫描仪(907)、照相机(908)。计算机设备(900)还可以包括某些人机界面输出设备。这种人机界面输出设备可以通过例如触觉输出、声音、光和嗅觉/味觉来刺激一个或多个人类用户的感觉。这样的人机界面输出设备可包括触觉输出设备(例如通过触摸屏(910)、数据手套(未示出)或操纵杆(905)的触觉反馈,但也可以有不用作输入设备的触觉反馈设备)、音频输出设备(例如,扬声器(909)、耳机(未示出))、视觉输出设备(例如,包括阴极射线管屏幕、液晶屏幕、等离子屏幕、有机发光二极管屏的屏幕(910),其中每一个都具有或没有触摸屏输入功能、每一个都具有或没有触觉反馈功能——其中一些可通过诸如立体画面输出的手段输出二维视觉输出或三维以上的输出;虚拟现实眼镜(未示出)、全息显示器和放烟箱(未示出))以及打印机(未示出)。计算机设备(900)还可以包括人可访问的存储设备及其相关介质,如包括具有cd/dvd的高密度只读/可重写式光盘(cd/dvdrom/rw)(920)或类似介质(921)的光学介质、拇指驱动器(922)、可移动硬盘驱动器或固体状态驱动器(923),诸如磁带和软盘(未示出)的传统磁介质,诸如安全软件保护器(未示出)等的基于rom/asic/pld的专用设备,等等。本领域技术人员还应当理解,结合所公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其它瞬时信号。计算机设备(900)还可以包括通往一个或多个通信网络的接口。例如,网络可以是无线的、有线的、光学的。网络还可为局域网、广域网、城域网、车载网络和工业网络、实时网络、延迟容忍网络等等。网络还包括以太网、无线局域网、蜂窝网络(gsm、3g、4g、5g、lte等)等局域网、电视有线或无线广域数字网络(包括有线电视、卫星电视、和地面广播电视)、车载和工业网络(包括canbus)等等。某些网络通常需要外部网络接口适配器,用于连接到某些通用数据端口或外围总线(949)(例如,计算机设备(900)的usb端口);其它系统通常通过连接到如下所述的系统总线集成到计算机设备(900)的核心(例如,以太网接口集成到pc计算机设备或蜂窝网络接口集成到智能电话计算机设备)。通过使用这些网络中的任何一个,计算机设备(900)可以与其它实体进行通信。所述通信可以是单向的,仅用于接收(例如,无线电视),单向的仅用于发送(例如can总线到某些can总线设备),或双向的,例如通过局域或广域数字网络到其它计算机设备。上述的每个网络和网络接口可使用某些协议和协议栈。上述的人机界面设备、人可访问的存储设备以及网络接口可以连接到计算机设备(900)的核心(940)。核心(940)可包括一个或多个中央处理单元(cpu)(941)、图形处理单元(gpu)(942)、以现场可编程门阵列(fpga)(943)形式的专用可编程处理单元、用于特定任务的硬件加速器(944)等。这些设备以及只读存储器(rom)(945)、随机存取存储器(946)、内部大容量存储器(例如内部非用户可存取硬盘驱动器、固态硬盘等)(947)等可通过系统总线(948)进行连接。在某些计算机设备中,可以以一个或多个物理插头的形式访问系统总线(948),以便可通过额外的中央处理单元、图形处理单元等进行扩展。外围装置可直接附接到核心的系统总线(948),或通过外围总线(949)进行连接。外围总线的体系结构包括外部控制器接口pci、通用串行总线usb等。cpu(941)、gpu(942)、fpga(943)和加速器(944)可以执行某些指令,这些指令组合起来可以构成上述计算机代码。该计算机代码可以存储在rom(945)或ram(946)中。过渡数据也可以存储在ram(946)中,而永久数据可以存储在例如内部大容量存储器(947)中。通过使用高速缓冲存储器可实现对任何存储器设备的快速存储和检索,高速缓冲存储器可与一个或多个cpu(941)、gpu(942)、大容量存储器(947)、rom(945)、ram(946)等紧密关联。所述计算机可读介质上可具有计算机代码,用于执行各种计算机实现的操作。介质和计算机代码可以是为本申请的目的而特别设计和构造的,也可以是计算机软件领域的技术人员所熟知和可用的介质和代码。作为实施例而非限制,具有体系结构(900)的计算机设备,特别是核心(940),可以作为处理器(包括cpu、gpu、fpga、加速器等)提供执行包含在一个或多个有形的计算机可读介质中的软件的功能。这种计算机可读介质可以是与上述的用户可访问的大容量存储器相关联的介质,以及具有非易失性的核心(940)的特定存储器,例如核心内部大容量存储器(947)或rom(945)。实现本申请的各种实施例的软件可以存储在这种设备中并且由核心(940)执行。根据特定需要,计算机可读介质可包括一个或一个以上存储设备或芯片。该软件可以使得核心(940)特别是其中的处理器(包括cpu、gpu、fpga等)执行本文所述的特定过程或特定过程的特定部分,包括定义存储在ram(946)中的数据结构以及根据软件定义的过程来修改这种数据结构。另外或作为替代,计算机设备可以提供逻辑硬连线或以其它方式包含在电路(例如,加速器(944))中的功能,该电路可以代替软件或与软件一起运行以执行本文所述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包括逻辑,反之亦然。在适当的情况下,对计算机可读介质的引用可包括存储执行软件的电路(如集成电路(ic)),包含执行逻辑的电路,或两者兼备。本申请包括任何合适的硬件和软件组合。虽然本申请已对多个示例性实施例进行了描述,但实施例的各种变更、排列和各种等同替换均属于本申请的范围内。因此应理解,本领域技术人员能够设计多种系统和方法,所述系统和方法虽然未在本文中明确示出或描述,但其体现了本申请的原则,因此属于本申请的精神和范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1