用于改进的渐进网格压缩的批次密度增加的制作方法

文档序号:22557311发布日期:2020-10-17 02:41阅读:144来源:国知局
用于改进的渐进网格压缩的批次密度增加的制作方法

相关申请的交叉引用

本申请是2018年4月12日提交的标题为“increaseddensityofbatchesforimprovedprogressivemeshcompression(用于改进的渐进网格压缩的批次密度增加)”的美国非临时专利申请no.15/951,963、2018年4月12日提交的标题为“encodingcostawareedgeselectionforimprovedprogressivemeshcompression(针对改进的渐进网格压缩的编码成本意识边缘选择)”的美国非临时专利申请no.15/951,944、以及2018年4月12日提交的标题为“vertexsplitconnectivitypredictionforimprovedprogressivemeshcompression(针对改进的渐进网格压缩的顶点分离连接性预测)”的美国非临时专利申请no.15/951,969的继续申请并要求其优先权,其公开内容通过引用整体并入本文。

本申请总体上涉及网格压缩,并且尤其涉及渐进网格压缩。



背景技术:

渐进网格压缩(或渐进压缩)是网格几何体的分级编码,其中每级生成与网格连接性、位置和其他属性有关的信息。每个后级都会导致模型的细节层次(lod)更粗糙,并且下一个lod的编码利用先前lod中已经包含的信息。这对于经由互联网传输高分辨率模型是相关的,因为接收端(例如,客户端、客户端设备或应用)上的用户不必等待直到从服务器接收到整个模型。在客户端设备处接收到与更高分辨率lod相关联的信息之前,客户端可以快速显示模型的较低分辨率lod。



技术实现要素:

在一方面,一种方法包括渐进网格压缩的计算机实现的方法。在一个示例实施方式中,该方法可以包括:确定与多个边缘中的每个边缘的坍塌相关联的优先级值,基于边缘的相关联的误差度量值来确定边缘的优先级值,以及从多个边缘中选择第一边缘,基于第一边缘具有多个边缘中的最高优先级值来从多个边缘中选择第一边缘。该方法可以进一步包括:确定所选择的第一边缘附近的边缘的经调整的优先级值;在选择第一边缘之后,从多个边缘的其余边缘中选择第二边缘,基于第二边缘具有最高的经调整的优先级值来选择第二边缘,以及坍塌所选择的边缘,使得生成基于所选择的边缘的坍塌的顶点分裂信息。在一些实施方式中,该方法可以进一步包括顶点分裂信息的熵编码。

附图说明

通过下面在此给出的详细描述和附图,示例实施方式将变得更加可充分地理解,其中,相似的元件由相似的附图标记表示,其仅以图示的方式给出,并且因此不限制示例实施方式,并且其中:

图1a图示根据至少一个示例实施方式的使用边缘坍塌操作而被压缩的几何模型的一部分(或几何模型的图像)。

图1b图示根据至少一个示例实施方式的使用另一边缘坍塌操作而被压缩的几何模型的一部分(或几何模型的图像)。

图2a图示根据至少一个示例实施方式的全边缘坍塌操作。

图2b图示根据至少一个示例实施方式的半边缘坍塌操作。

图3图示根据至少一个示例实施方式的边缘选择机制。

图4a图示根据至少一个示例实施方式的用于渐进压缩的抽取机制。

图4b图示根据至少一个示例实施方式的用于改进的渐进压缩的更密集的抽取机制。

图5a图示根据至少一个示例实施方式的改进批次密度用于改进的渐进网格压缩的方法的流程图。

图5b图示根据至少一个示例实施方式的改进批次密度用于改进的渐进网格压缩的方法的另一流程图。

图6图示根据至少一个示例实施方式的计算机设备和移动计算机设备的示例。

应该注意的是,这些附图旨在图示在某些示例实施方式中利用的方法、结构和/或材料的一般特性,并且旨在补充在下面提供的书面描述。然而,这些附图不是按比例的并且可能不精确地反映任何给定实施方式的精确结构或性能特性,并且不应该被解释为限定或者限制由示例实施方式所包含的值或属性的范围。在各个附图中使用类似或相同的附图标记旨在指示存在类似或相同的元件或特征。

具体实施方式

例如,在一种实施方式中,编码器可以确定与多个边缘中的每个边缘的坍塌相关联的优先级值。编码器可以基于边缘的相关联的误差度量值来确定边缘的优先级值。解码器选择具有最高优先级值的边缘(例如,第一边缘),并基于对优先级值的调整来确定其余边缘的经调整的优先级值。对其余边缘的优先级值的调整可以提供选择边缘的机会,其可以增加在一个回合(例如,lod)中坍塌的边缘的数量。编码器选择具有最高的经调整的优先级值的另一边缘(例如,第二边缘)。在一些实施方式中,编码器可以重复该过程,直到没有更多的边缘可用于选择(或坍塌)为止。所选择的边缘被称为独立边缘集,并且被用于坍塌。坍塌所选择的边缘,使得生成顶点分裂信息。在一些实施方式中,对所生成的顶点分裂信息进行熵编码以实现更好的压缩率。

图1a图示根据至少一个示例实施方式的使用边缘坍塌操作而被压缩的几何模型100的一部分。在图1a中,几何模型100的区域102表示可以使用改进的渐进网格压缩被压缩的区域。在一个示例实施方式中,可以使用下面参考图2a详细描述的全边缘坍塌操作(或使用全边缘坍塌操作符)来压缩区域102。在渐进网格压缩期间,编码器可以生成多个lod和相关联的顶点分裂记录。可以通过用连续批次(例如,一个或者多个批次)的边缘坍塌操作符来坍塌输入网格,直到生成非常粗糙的网格或不再有用于坍塌的边缘为止(例如,对于用于边缘坍塌的lod,误差度量值可能太高),来生成lod和相关联的顶点分裂记录。

图1b图示根据至少一个示例实施方式的使用另一边缘坍塌操作而被压缩的几何模型150的一部分。在图1b中,几何模型150的区域152表示可以使用改进的渐进网格压缩被压缩的区域。在一个示例性实施方式中,可以使用下面参考图2b详细描述的半边缘坍塌操作(或使用半边缘坍塌操作符)来压缩区域152。

图2a图示根据至少一个示例实施方式的全边缘坍塌操作200。

在图2a中,可以经由全边缘坍塌操作(例如,使用全边缘坍塌操作符)来坍塌连接顶点202、210的边缘206。在此类全边缘坍塌操作中,两个顶点202、210被合并为一个顶点(例如,合并的顶点、分裂的顶点等),并且生成新的顶点218。可以基于例如最小化与边缘206的坍塌相关联的误差(例如,最小化相关联的局部误差)来确定新顶点218的位置。

全边缘坍塌操作需要更高数量的比特(例如,当与下面参考图2b描述的半边缘坍塌操作相比时),以对合并的顶点218与其两个祖先(ancestor)202、210之间的两个残差进行编码,使得解码器可以在解码期间适当地反转全边缘坍塌操作。在全边缘坍塌操作期间,随着边缘206被坍塌,边缘204和208坍塌成新的边缘(例如,边缘216),并且边缘222和224坍塌成另一新的边缘(例如,边缘226)。顶点212和214图示在全边缘操作的过渡期间顶点202和204的合并。如上所述的边缘的坍塌(例如,使用全边缘坍塌操作)和顶点的合并可以生成lod(例如,较低的lod)和相关联的顶点分裂记录。解码器使用顶点分裂记录来解码(例如,重构)在全边缘坍塌操作期间被编码(例如,坍塌、合并等)的顶点和/或边缘。

图2b图示根据至少一个示例实施方式的半边缘坍塌操作250。

在图2b中,可以经由半边缘坍塌操作(例如,使用半边缘坍塌操作器)来坍塌连接顶点202、210的边缘206。在这种半边缘坍塌操作中,两个顶点之一(例如,顶点210)可以合并到另一个顶点(例如,顶点202),并且生成数据,使得解码器可以在解码期间重新生成顶点或边缘。

半边缘坍塌操作需要较少数量的比特(例如,当与上面参考图2a描述的全边缘坍塌操作相比时),因为仅一个与被合并的顶点(例如,顶点210)相关联的残差必须被编码以在解码期间反转半边缘坍塌操作。在半边缘坍塌操作期间,随着顶点210被合并到顶点202中,边缘208被坍塌到边缘204中,而边缘224被坍塌到边缘222中。顶点234图示在半边缘坍塌操作的过渡期间顶点210到顶点202中的合并。如上所述,使用半边缘坍塌操作对边缘进行坍塌或合并和/或对顶点进行合并可以生成lod(例如,较低的lod)和相关联的顶点分裂记录。解码器使用顶点分裂记录来解码(例如,重构)在半边缘坍塌操作期间被编码(例如,坍塌、合并等)的顶点和/或边缘。尽管半边缘坍塌操作可能需要较少的比特(例如,当与全边缘坍塌操作相比时)来表示解码所需的信息,但失真率可能更高(例如,更多失真的更低的lcd)。

图3图示根据至少一个示例实施方式的边缘选择机制300。

可以在渐进压缩期间通过抽取具有连续批次的边缘坍塌的输入网格(例如,使用边缘坍塌操作符)直到生成非常粗糙的网格(或没有更多的边缘可用于坍塌,因为针对边缘坍塌误差度量值对于lod可能太高)来创建(或生成)一系列细节层次(lod)。一批次边缘坍塌可以包括坍塌当前网格的边缘的子集。

在渐进网格压缩期间,当边缘被坍塌时每个边缘坍塌都可以与误差(例如,误差度量值)相关联。误差/误差度量值反映(例如,表示)边缘坍塌对网格质量的影响。换句话说,与边缘坍塌相关联的误差度量值指示网格的质量可以如何受到边缘坍塌的影响(例如,负面影响)。因此,为了避免坍塌过于昂贵的边缘(例如,对网格质量的主要影响等),可以在被选择用于坍塌之前(或在被添加到独立边缘集之前),基于边缘的相关联的误差度量值对边缘进行排序(例如,优先化)。在一些实施方式中,例如,误差度量值可以是初始误差度量值(例如,二次误差度量)并且/或者可以取决于使用网格的应用。例如,可以基于边缘的误差度量值对边缘进行排序,并且将具有最低的相关联的误差度量值的边缘排在首位。在一个示例实施方式中,当输入网格的边缘被选择时,未被阻挡的边缘被添加以形成(或创建)独立边缘集(例如,第一独立边缘集)并且在当前回合中不会考虑可能被阻挡的边缘附近的边缘用于坍塌。可以继续将边缘添加到独立边缘集,直到所有边缘被阻挡或误差度量值在相应阈值之上。

例如,在一些实施方式中,如图3中所示,边缘302可以在不受到其他边缘的干扰的情况下被坍塌。然而,在边缘302附近的边缘304可能被边缘302阻挡坍塌。被另一边缘(例如,边缘302)阻挡(例如,阻挡坍塌)的边缘304通常被称为被阻挡边缘,并且在当前回合中(例如,在生成当前lod时)不能被坍塌。即,边缘304不能在与边缘302相同的回合中被坍塌。然而,一个或多个边缘304可以在生成另一lod时的稍后回合的边缘坍塌期间被坍塌。

图4a图示根据至少一个示例实施方式的抽取机制400。

如图4a中所图示,除了边缘402(其可以类似于图3的边缘302)之外,边缘422可以在不受其他边缘(例如,边缘402、412、432)的干扰的情况下被坍塌。然而,边缘422附近的边缘432可以被边缘422阻挡坍塌。被另一边缘(例如,边缘422)阻挡坍塌的边缘432可以被称为被阻挡边缘并且不能在当前回合中被坍塌(例如,在生成当前lod时)。也就是说,边缘432不能在与边缘422相同的回合中被坍塌。然而,边缘432中的一个或多个边缘可以在稍后回合的边缘坍塌期间被坍塌以生成另一lod。

在一种实施方式中,例如,可以使用全边缘坍塌操作(例如,以上参考图2a详细描述的)或半边缘坍塌操作(例如,以上参考图2b详细描述的)来坍塌边缘402和422。在另一实施方式中,例如,可以使用中点坍塌操作来坍塌边缘402和422。在一些其他实施方式中,可以使用一种类型的边缘坍塌操作(例如,半边缘或全边缘坍塌操作)来生成一个lod并且/或者可以使用另一种类型的边缘坍塌操作(例如,全边缘或半边缘坍塌操作)来生成随后的lod以在质量(例如,失真)和成本(例如,比特率或每个顶点的比特)之间实现平衡。在一些实施方式中,中点坍塌可以被用于坍塌边缘。

随着一批次的边缘被坍塌,生成较低的lod(例如,较低的分辨率或较粗糙的lod)连同允许解码器恢复先前的lod(例如,较高分辨率的lod)的附加信息(例如,顶点分裂信息)。在一些实施方式中,在生成lod期间生成的信息可以包括例如具有用于解码器的初始信息的报头(例如,指示执行全边缘还是半边缘操作);有关如何在解码器处将编码的顶点分裂为边缘的信息;如何将顶点(例如,分裂顶点)连接到其周围的顶点(分裂顶点的邻居)的信息;恢复分裂顶点的位置所必需的信息;和/或纹理坐标或任何其他可选属性。然而,因为由误差度量值所提供的边缘顺序可能不提供边缘的良好(或有效)打包,所以可以在一个回合中被坍塌的边缘的数量(例如,边缘的密度)可能会变化。因此,期望具有更密集的边缘打包(或增加打包),使得每回合(例如,针对每个lod)可以坍塌更多的边缘,以实现更好的压缩率。

图4b图示根据至少一个示例实施方式的用于改进的渐进压缩的更密集的抽取机制450。

本公开公开一种增加批次密度的机制,例如,增加在一个回合中坍塌的边缘的数量(例如,添加到用于坍塌的独立边缘集的边缘的数量、边缘的密度等),这可能会影响与渐进网格压缩相关联的信息(例如,顶点分裂信息等)的编码。

例如,在一些实施方式中,可以实现与顶点(例如,在解码期间需要被分裂成边缘的顶点)的编码有关的信息的更好的压缩。信息的更好压缩是可能的,因为由于边缘的密集打包,熵编码可以改进。在一些其他实施方式中,在每一个回合中坍塌(或抽取)的边缘数量的增加可以允许在每一个回合中编码更多的符号,这可以导致更好的压缩率(例如,与顶点(例如,分裂顶点)如何连接到其周围的顶点(分裂顶点的邻居)相关的信息的编码)。在一些更多的实施方式中,恢复分裂顶点的位置和/或纹理坐标或任何其他可选属性所必需的信息可以被更好地压缩。因此,基于以上内容,整个渐进网格压缩过程可能需要更少的回合,因为每回合可以坍塌更多的边缘,因此需要更少的需要被编码的报头。

例如,如图4b中所示,可以通过使用经调整的优先级值来坍塌边缘402、452、454和456以确定用于坍塌的独立边缘集。相比之下,严格基于优先级值仅边缘402和422有资格进行坍塌。这是可能的,因为所提出的机制可以稍微改变边缘的顺序(例如,优先级值),使得更加靠近已经被挑选(例如,被选择)的其他边缘的边缘是有利的。但是,在当两个边缘具有相同的误差度量值时(例如,基于优先级队列中的比较)的场景中,阻挡更少的尚未被阻挡的其它边缘的边缘是有利的或者被选择用于坍塌。这种方法趋于将更近的边缘打包在一起,并且更有可能获得更密集的打包。

图5a图示增加批次密度用于改进的渐进网格压缩的方法的流程图500。例如,在一种实施方式中,该方法可以由编码器执行并且可以基于增加在一个回合中坍塌的边缘的数量以改进渐进网格压缩。

在框510处,编码器可以确定与多个边缘中的每个边缘的坍塌相关联的优先级值,该边缘的优先级值基于边缘的相关联的误差度量值来确定。例如,在一种实施方式中,编码器可以确定与多个边缘中的每个边缘(例如,图4b中所示的边缘)的坍塌相关联的优先级值。边缘的优先级值可以例如基于优先级队列从与边缘的坍塌相关联的误差度量值中确定。一旦编码器确定边缘的误差度量值,编码器就可以例如使用优先级队列对边缘进行排序,并且具有最低误差度量值的边缘排在首位。换句话说,编码器可以按照误差度量值增大的顺序对边缘进行排序,其中具有最低的误差度量值的边缘在该顺序中位于第一位置。在一些实施方式中,最低误差度量值可以对应于最高优先级值。

在框520处,编码器可以从多个边缘中选择第一边缘,基于第一边缘具有多个边缘中的最高优先级值,从多个边缘中选择第一边缘。例如,在一个实施方式中,编码器可以基于边缘402具有最高优先级值来选择第一边缘(例如,边缘402)。换句话说,可以选择边缘402,因为边缘402具有与边缘402的坍塌相关的最低误差度量值。

在框530处,编码器可以确定在所选择的第一边缘附近的边缘的经调整的优先级值。例如,在一个实施方式中,编码器在选择第一边缘(例如,边缘402)之后,可以确定边缘402附近的边缘的经调整的优先级值。在一些实施方式中,如果两个边缘共同具有被阻挡的一个或多个边缘或该两个边缘处于同一区域中,则可以认为该两个边缘在彼此的附近。在一些实施方式中,编码器可以确定在第一选择的边缘(例如,边缘402)附近的边缘(例如,边缘452、454和/或456)的经调整的优先级值。例如,可以基于与边缘相关联的优先级值的允许方差、被边缘阻挡的边缘的实际数量以及可能被边缘阻挡的最大边缘数量,来确定边缘的经调整的优先级值。

在一些实施方式中,可以通过改进与已经选择的边缘的附近(例如,邻居)的边缘相关联的优先级值来确定经调整的优先级值。对边缘的优先级值的调整可能高达x%。如果给定的边缘没有阻挡新的边缘,则可以实现最大的改进。例如,可以如下所示确定边缘e的经调整的优先级值(d’e),其中de是与边缘e相关联的优先级值(也可以被称为初始或原始优先级值),k是边缘e可以阻挡的最大边缘数,并且k是如果选择边缘e时将被阻挡的实际边缘数。例如,边缘e的经调整的优先级值可以如下确定:

d’e=de*(1-x%(1-k/k))

在一些实施方式中,经调整的优先级值提供确定是否存在任何其他可以被认为是用于坍塌以在当前回合中实现更密集的边缘打包的更好候选的边缘的机会。

在框540处,编码器可以在选择第一边缘之后从多个边缘的其余边缘中选择第二边缘,基于第二边缘具有最高的经调整的优先级值,选择第二边缘。例如,在一个实施方式中,编码器可以选择边缘452作为用于坍塌的下一个边缘。可以基于边缘452具有最高的经调整的优先级值来选择边缘452。在一些实施方案中,第二边缘452可以为独立边缘集的一部分(连同边缘402一起),因为第二边缘452不阻挡第一边缘(例如,边缘402)的坍塌。

在框550处,编码器可以重复其余边缘的经调整的优先级值的确定以及重复基于新确定的经调整的优先级值的用于确定用于坍塌的独立边缘集的边缘的选择。例如,在一种实施方式中,编码器可以重复确定经调整的优先级值(从在框510处确定的优先级值中确定的经调整的优先级值)以及基于所确定的经调整的优先级值来选择边缘的过程。即,在选择边缘452时,编码器可以确定边缘452附近的边缘的经调整的优先级值,并且基于边缘454具有最高的经调整的优先级值来选择边缘454。在选择边缘454之后,编码器可以确定边缘454附近的边缘的经调整的优先级值,并且基于边缘456具有最高的经调整的优先级值来选择边缘456等等。编码器可以继续此过程,直到没有更多的边缘可用为止。被选择的边缘创建或形成编码器可以用于坍塌的独立边缘集。

在框560处,编码器可以坍塌被确定用于坍塌的独立边缘集,并基于独立边缘集的坍塌来生成顶点分裂信息。在一个实施方式中,例如,包括在独立边缘集中的边缘402、452、454、456等可以被坍塌以生成顶点分裂信息(或者编码器可以坍塌被确定用于坍塌的独立边缘集,使得顶点分裂信息被生成)。在一些实施方式中,可以对顶点分裂信息进行熵编码以实现更好的压缩率。在一些其他实施方式中,可以响应于来自解码器的消息,将顶点分裂信息从编码器发送到解码器。解码器使用顶点分裂信息来解构网格。换句话说,响应于来自解码器的请求,顶点分裂信息可以被熵编码、存储并发送到解码器。

图5b图示增加批次密度用于改进的渐进网格压缩的方法的流程图570。例如,在一种实施方式中,该方法可以由编码器执行并且可以基于增加在一个回合中坍塌的边缘的数量以改进渐进网格压缩。

框572、574、576和578处的操作可以分别类似于(图5a的)框510、520、530和540处的操作。

在框580处,编码器可以坍塌所选择的边缘,使得基于所选择的边缘的坍塌来生成顶点分裂信息。在一种实施方式中,例如,可以坍塌被选择的边缘402和452(或402、452、454、456等)以生成顶点分裂信息。在一些实施方式中,可以对顶点分裂信息进行熵编码以实现更好的压缩率。在一些其他实施方式中,可以响应于来自解码器的消息,将顶点分裂信息从编码器发送到解码器。解码器使用顶点分裂信息来解构网格。换句话说,响应于来自解码器的请求,顶点分裂信息可以被熵编码、存储并发送到解码器。

在一个方面,一种方法包括渐进网格压缩的计算机实现的方法。在一个示例实施方式中,该方法可以包括:确定与多个边缘中的每个边缘的坍塌相关联的优先级值,基于边缘的相关联的误差度量值来确定边缘的优先级值,以及从多个边缘中选择第一边缘,基于第一边缘具有多个边缘中的最高优先级值来从多个边缘中选择第一边缘。该方法可以进一步包括:确定所选择的第一边缘附近的边缘的经调整的优先级值;在选择第一边缘之后,从多个边缘的其余边缘中选择第二边缘,基于第二边缘具有最高的经调整的优先级值来选择第二边缘;重复其余边缘的经调整的优先级值的确定以及重复基于新确定的经调整的优先级值的用于确定用于坍塌的独立边缘集的边缘的选择;以及坍塌被确定用于坍塌的独立边缘集并且基于独立边缘集的坍塌来生成顶点分裂信息。在一些实施方式中,该方法可以进一步包括对顶点分裂信息进行熵编码。

在另一方面,编码器包括处理器和存储器。存储器可以包括指令,该指令被配置成使处理器确定与多个边缘中的每个边缘的坍塌相关联的优先级值,基于边缘的相关联的误差度量值来确定边缘的优先级值;并且从多个边缘中选择第一边缘,基于第一边缘具有多个边缘中的最高优先级值来从多个边缘中选择第一边缘。存储器可以进一步包括以下指令,以确定所选择的第一边缘附近的边缘的经调整的优先级值;在选择第一边缘之后从多个边缘的其余边缘中选择第二边缘,基于第二边缘具有最高的经调整的优先级值来选择第二边缘;重复其余边缘的经调整的优先级值的确定以及重复基于新确定的经调整的优先级值的用于确定用于坍塌的独立边缘集的边缘的选择;并且坍塌被确定用于坍塌的独立边缘集并基于独立边缘集的坍塌来生成顶点分裂信息。在一些实施方式中,该方法可以进一步包括对顶点分裂信息进行熵编码。

在又一附加方面中,一种非暂时性计算机可读存储介质,在其上存储有计算机可执行程序代码,当在计算机系统上执行该计算机可执行程序代码时,该计算机可执行程序代码使计算机系统执行渐进网格压缩的方法。该方法可以包括:确定与多个边缘中的每个边缘的坍塌相关联的优先级值,基于边缘的相关联的误差度量值来确定边缘的优先级值;以及从多个边缘中选择第一边缘,基于第一边缘具有多个边缘中的最高优先级值来从多个边缘中选择第一边缘。该计算机可读存储介质可以进一步包括代码,用于确定所选择的第一边缘附近的边缘的经调整的优先级值;在选择第一边缘之后,从多个边缘的其余边缘中选择第二边缘,基于第二边缘具有最高的经调整的优先级值来选择第二边缘;重复其余边缘的经调整的优先级值的确定以及重复基于新确定的经调整的优先级值的用于确定用于坍塌的独立边缘集的边缘的选择;并且坍塌被确定用于坍塌的独立边缘集并且基于独立边缘集的坍塌来生成顶点分裂信息。在一些实施方式中,该方法可以进一步包括对顶点分裂信息进行熵编码。

因此,编码器增加批次密度以改进渐进网格压缩和/或实现更好的压缩率。

图6示出可以与这里描述的技术一起使用的计算机设备600和移动计算机设备650的示例。计算设备600旨在表示各种形式的数字计算机,诸如膝上型电脑、台式机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。计算设备650旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。这里示出的组件、其连接和关系及其功能仅意在为示例性的,而不意在限制本文档中描述和/或要求保护的发明的实施方式。

计算设备600包括处理器602、存储器604、存储设备606、连接到存储器604和高速扩展端口610的高速接口608、以及连接到低速总线614和存储设备606的低速接口612。组件602、604、606、608、610和612中的每一个均使用各种总线来互连,并且可以被安装在公共主板上或者酌情以其他方式安装。处理器602可处理用于在计算设备600内执行的指令,包括存储在存储器604中或者在存储设备606上以在诸如耦合到高速接口608的显示器616的外部输入或者输出设备上显示用于gui的图形信息的指令。在其他实施方式中,可以酌情连同多个存储器和多种类型的存储器一起使用多个处理器和/或多个总线。另外,可以连接多个计算设备600,其中每个设备提供必要操作的部分(例如,作为服务器阵列、一组刀片服务器或多处理器系统)。

存储器604存储计算设备600内的信息。在一个实施方式中,存储器604是一个或多个易失性存储器单元。在另一实施方式中,存储器604是一个或多个非易失性存储器单元。存储器604还可以是另一形式的计算机可读介质,诸如磁盘或光盘。

存储设备606能够为计算设备600提供大容量存储。在一个实施方式中,存储设备606可以是或者包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备、闪速存储器或其他类似的固态存储设备或设备的阵列,包括存储区域网络或其他配置中的设备。计算机程序产品可被有形地具体实现在信息载体中。计算机程序产品还可以包含指令,该指令当被执行时执行一个或多个方法,诸如上面描述的那些方法。信息载体是计算机可读介质或机器可读介质,诸如存储器604、存储设备606、或处理器602上的存储器。

高速控制器608管理计算设备600的带宽密集运算,而低速控制器612管理较低带宽密集运算。功能的这种分配仅是示例性的。在一个实施方式中,高速控制器608耦合到存储器604、显示器616(例如,通过图形处理器或加速器),并且耦合到高速扩展端口610,该高速扩展端口610可以接受各种扩展卡(未示出)。在该实施方式中,低速控制器612耦合到存储设备606和低速扩展端口614。可以包括各种通信端口(例如,usb、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器耦合到一个或多个输入或者输出设备,诸如键盘、指点设备、扫描仪、或诸如交换机或路由器的联网设备。

如图中所示,可以以许多不同的形式实现计算设备600。例如,它可以作为标准服务器620被实现,或者被多次实现在一组此类服务器中。它还可以作为机架服务器系统624的一部分被实现。此外,它可以被实现在诸如膝上型计算机622的个人计算机中。可替选地,来自计算设备600的组件可以与诸如设备650的移动设备(未示出)中的其他组件组合。此类设备中的每一个均可以包含计算设备600、650中的一个或多个,并且整个系统可以由彼此通信的多个计算设备600、650组成。

计算设备650包括处理器652、存储器664、诸如显示器654的输入或者输出设备、通信接口666、和收发器668以及其他组件。设备650还可以被提供有存储设备,诸如微驱动器或其他设备,以提供附加存储。组件650、652、564、654、666和668中的每一个均使用各种总线来互连,并且若干组件可以被安装在公共主板上或者酌情以其他方式安装。

处理器652可执行计算设备650内的指令,包括存储在存储器664中的指令。处理器可以作为芯片的芯片组被实现,该芯片包括单独的和多个模拟和数字处理器。处理器可以例如提供用于设备650的其他组件的协调,诸如对用户界面、由设备650运行的应用和由设备650进行的无线通信的控制。

处理器652可以通过耦合到显示器654的控制接口658和显示接口656来与用户进行通信。显示器654可以是例如tftlcd(薄膜晶体管液晶显示器)或oled(有机发光二极管)显示器或其他适当的显示技术。显示接口656可以包括用于驱动显示器654以向用户呈现图形和其他信息的适当的电路。控制接口658可以从用户接收命令并且对它们进行转换以便提交给处理器652。此外,可以提供与处理器652通信的外部接口662,以使得能实现设备650与其他设备的近区域通信。外部接口662可以在一些实施方式中例如提供用于有线通信,或者在其他实施方式中用于无线通信,并且还可以使用多个接口。

存储器664存储计算设备650内的信息。存储器664可作为一个或多个计算机可读介质、一个或多个易失性存储器单元、或者一个或多个非易失性存储器单元中的一种或多种而被实现。还可以提供扩展存储器674并且通过扩展接口672将它连接到设备650,扩展接口672可以包括例如simm(单列直插存储器模块)卡接口。这种扩展存储器674可以为设备650提供附加的存储空间,或者还可以为设备650存储应用或其他信息。具体地,扩展存储器674可以包括用于执行或者补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器674可以作为用于设备650的安全模块被提供,并且可以被编程有允许安全使用设备650的指令。此外,可以经由simm卡提供安全应用以及附加信息,诸如以不可破解的方式将识别信息放置在simm卡上。

存储器可以包括例如闪速存储器和/或nvram存储器,如在下面所讨论的。在一个实施方式中,计算机程序产品被有形地具体实现在信息载体中。计算机程序产品包含指令,该指令当被执行时执行一个或多个方法,诸如上述的那些方法。信息载体是可以例如通过收发器668或外部接口662接收的计算机或机器可读介质,诸如存储器664、扩展存储器674、或处理器652上的存储器。

设备650可以通过通信接口666以无线方式通信,该通信接口666必要时可以包括数字信号处理电路。通信接口666可以提供用于各种模式或协议下的通信,各种模式或协议诸如gsm语音呼叫、sms、ems或mms消息传送、cdma、tdma、pdc、wcdma、cdma2000或gprs等。这种通信可以例如通过射频收发器668而发生。此外,可以发生短距离通信,诸如使用蓝牙、wifi或其他这种收发器(未示出)。此外,gps(全球定位系统)接收器模块670可以向设备650提供附加的导航和位置相关无线数据,其可以酌情由在设备650上运行的应用使用。

设备650还可以使用音频编解码器660可听地通信,该音频编解码器660可以从用户接收口语信息并且将它转换为可用的数字信息。音频编解码器660可以同样地诸如通过扬声器为用户生成可听声音——例如,在设备650的头戴式耳机中。这种声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息、音乐文件等)并且还可以包括由在设备650上操作的应用所生成的声音。

如图中所示,可以以许多不同的形式实现计算设备650。例如,它可以作为蜂窝电话680被实现。它还可以作为智能电话682、个人数字助理或其他类似的移动设备的一部分被实现。

这里描述的系统和技术的各种实施方式可用数字电子电路、集成电路、专门地设计的asic(专用集成电路)、计算机硬件、固件、软件、和/或其组合加以实现。这些各种实施方式可包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器,其可以是专用的或通用的,耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并且以向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。这里描述的系统和技术的各种实施方式可作为可组合软件和硬件方面的电路、模块、块或系统被实现和/或一般地在本文中被称为可组合软件和硬件方面的电路、模块、块或系统。例如,模块可以包括在处理器(例如,形成在硅基底、gaas基底等上的处理器)或某个其他可编程数据处理装置上执行的功能、行为、或者计算机程序指令。

上述示例实施例中的一些被描述为作为流程图描绘的过程或方法。尽管流程图将操作描述为顺序过程,然而可以并行地、并发地或同时地执行许多操作。此外,可以重新布置操作的次序。这些过程可以在其操作完成时被终止,但是也可以具有未包括在图中的附加步骤。这些过程可以对应于方法、函数、程序、子例程、子程序等。

上面讨论的方法——其中的一些通过流程图来图示——可以通过硬件、软件、固件、中间件、微码、硬件描述语言或其任何组合来实现。当用软件、固件、中间件或微码加以实现时,用于执行必要的任务的程序代码或代码段可以被存储在诸如存储介质的机器或计算机可读介质中。处理器可以执行必要的任务。

本文中公开的具体结构和功能细节仅仅是表示性的以用于描述示例实施例的目的。然而,示例实施例被以许多替代形式具体实现,而不应该被解释为限于仅本文中阐述的实施例。

应理解的是,尽管可以在本文中使用术语第一、第二等来描述各种元件,然而这些元件不应该受这些术语限制。这些术语仅用于区分一个元件和另一元件。例如,第一元件能被称为第二元件,并且类似地,第二元件能被称为第一元件,而不脱离示例实施例的范围。如本文中所使用的,术语和/或包括相关列举项目中的一个或多个的任何和所有组合。

应理解的是,当一个元件被称为连接或者耦合到另一元件时,它可直接地连接或者耦合到另一元件或者可以存在中间元件。相比之下,当一个元件被称为直接地连接或者直接地耦合到另一元件时,不存在中间元件。应该以相似的方式解释用于描述元件之间的关系的其他单词(例如,在…之间对直接地在…之间、相邻对直接地相邻等)。

本文中使用的术语仅用于描述特定实施例的目的而不旨在限制示例实施例。如本文中所使用的,除非上下文另外清楚地指示,否则单数形式一(a)、一个(an)和该(the)也旨在包括复数形式。应进一步理解的是,术语含、含有、包括和/或包括有当在本文中使用时,指定存在陈述的特征、整数、步骤、操作、元件和/或组件,但是不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组。

还应该注意的是,在一些替代实施方式中,所指出的功能或者行为可以不按图中指出的次序发生。例如,取决于所涉及的功能性或者行为,相继示出的两个图实际上可以被并发地执行或者有时可以以相反的次序被执行。

除非另外定义,否则本文中使用的所有术语(包括技术和科学术语)具有与由示例实施例所属的领域的普通技术人员所通常理解的相同的含义。应进一步理解的是,除非在本文中明确地如此定义,否则术语(例如,在常用词典中定义的那些术语)应该被解释为具有与其在相关领域的上下文中的含义一致的含义,而不应在理想化或过于正式的意义上进行解释。

上述示例实施方式的各部分和对应的详细描述是按软件或算法以及对计算机存储器内的数据比特的操作的符号表示来呈现的。这些描述和表示是本领域的普通技术人员用来有效地将其工作的实质传达给本领域的其他普通技术人员的描述和表示。算法(当在这里使用该术语时,并且当一般地使用它时)被认为是导致期望结果的步骤的自相一致序列。这些步骤是要求对物理量的物理操纵的那些步骤。通常,尽管不一定,这些量采取能够被存储、转移、组合、比较和以其他方式操纵的光学信号、电信号或磁信号的形式。有时主要由于通用的原因,将这些信号称为比特、值、元素、符号、字符、术语、数字等已证明是方便的。

在上述说明性实施方式中,对可以作为程序模块或功能过程被实现的操作(例如,以流程图的形式)的行为和符号表示的引用包括执行特定任务或者实现特定抽象数据类型并且可以使用现有结构元件处的现有硬件来描述和/或实现的例程、程序、对象、组件、数据结构等。这种现有硬件可以包括一个或多个中央处理单元(cpu)、数字信号处理器(dsp)、专用集成电路、现场可编程门阵列(fpga)计算机等。

然而,应该记住的是,所有这些和类似的术语都将与适当的物理量相关联并且仅仅是应用于这些量的方便标签。除非另外具体地陈述,或者如从讨论中显而易见的,诸如处理或计算或演算或确定显示等的术语指代计算机系统或类似的电子计算设备的动作和过程,所述计算机系统或类似的电子计算设备将被表示为计算机系统的寄存器和存储器内的物理、电子量的数据操纵并变换成被类似地表示为计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备内的物理量的其他数据。

另外注意的是,示例实施方式的软件实现的方面通常被编码在某种形式的非暂时性程序存储介质上或者实现在某种类型的传输介质上。程序存储介质可以是磁的(例如,软盘或硬盘驱动器)或光学的(例如,紧致盘只读存储器或cdrom),并且可以是只读或随机存取的。类似地,传输介质可以是双绞线对、同轴电缆、光纤或为本领域所知的某个其他适合的传输介质。示例实施方式不受任何给定实施方式的这些方面限制。

最后,还应该注意的是,虽然所附权利要求书陈列本文中描述的特征的特定组合,但是本公开的范围不限于此后要求保护的特定组合,而是替代地扩展到包含本文中公开的特征或实施方式的任何组合,而不管此时是否已在所附权利要求中具体地枚举了该特定组合。

尽管示例实施方式可以包括各种修改和替代形式,但是其实施方式在附图中以示例的方式示出并且将在本文中详细描述。然而,应理解,无意将示例实施方式限制为所公开的特定形式,而是相反,示例实施方式将覆盖落入权利要求范围内的所有修改、等效物和替代形式。在整个附图的描述中,相同的标号指代相同的元件。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1