CN110663062A - 三角网格压缩中的引导遍历 - Google Patents
三角网格压缩中的引导遍历 Download PDFInfo
- Publication number
- CN110663062A CN110663062A CN201880034683.9A CN201880034683A CN110663062A CN 110663062 A CN110663062 A CN 110663062A CN 201880034683 A CN201880034683 A CN 201880034683A CN 110663062 A CN110663062 A CN 110663062A
- Authority
- CN
- China
- Prior art keywords
- vertices
- bitstream
- generating
- vertex
- faces
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
压缩三角网格数据的技术涉及对针对三角网格中的顶点定义遍历次序的比特流进行编码。定义遍历次序的编码比特流除了是预测误差的编码比特流以外还是显式遍历而不是隐式遍历。定义遍历次序的比特流的一个示例是数组,其中比特表示步骤是否是诸如深度优先遍历的隐式确定性方案。在解码时,除非通过遍历比特流指定,否则使用通常的确定性步骤来查找三角网格的顶点。这样的编码比特流当占用比从在定义比特流中定义的遍历次序时获得的压缩效率节省的更少的存储器时提供简单高效的压缩,而不用要求三角网格被连接。
Description
相关申请的交叉引用
本申请要求于2017年6月2日提交的标题为“GUIDED TRAVERSAL IN COMPRESSIONOF TANGGULAR MESHES(三角网格压缩中的引导遍历)”的美国非临时专利申请No.15/612,736的优先权,并且是该专利申请的继续申请,其通过引用整体地并入本文。
技术领域
本说明书涉及三维对象数据的压缩。
背景技术
诸如视频游戏的一些应用涉及向用户表示三维对象。在一个示例中,由用户在虚拟现实环境中玩的冒险游戏可能要求虚拟树木、岩石和人的生成。在另一示例中,绘图应用可能要求建筑物的表示。在一些应用中,每个这样的对象包括具有多个顶点——即,空间中形成三角形的点——的三角网格(triangular mesh)。这样的三角网格涉及可以被存储在磁盘上并发送到用户的大量数据。存储并发送表示虚拟对象的三角网格数据的实际实现方式包括压缩三角网格数据。
发明内容
在一个一般方面中,一种方法可包括:通过被配置成表示与三维对象有关的信息的计算机的处理电路来接收表示所述三维对象的三角网格的多个顶点,所述三角网格包括多个面,所述多个面中的每一个均包括所述多个顶点中的三个顶点。所述方法还可包括:通过所述处理电路来生成表示针对所述多个顶点的遍历次序的第一比特流。所述方法可进一步包括:通过所述处理电路来生成表示预测顶点与所述多个顶点中的顶点之间的误差的数组的第二比特流。所述方法可进一步包括:通过所述处理电路来对所述第一比特流执行第一压缩操作以产生第一压缩比特流。所述方法可进一步包括:通过所述处理电路来对所述第二比特流执行第二压缩操作以产生第二压缩比特流,所述第一压缩比特流和所述第二压缩比特流响应于解压缩操作而产生所述三角网格的所述多个顶点。
在下面的所附附图和描述中阐述一个或多个实施方式的细节。其他特征将从说明书和附图中并从权利要求书中显而易见。
附图说明
图1是图示用于实现本文描述的改进的技术的示例电子环境的图。
图2是图示在图1所示的电子环境内执行改进的技术的示例方法的图。
图3是图示在图1所示的电子环境内的三角网格中的预测误差的示例生成的图。
图4是图示图1所示的电子环境内的引导遍历的示例编码的图。
图5A是图示在图1所示的电子环境内使用最小生成树的引导遍历的示例生成的图。
图5B是图示深度优先遍历的示例生成的图。
图6是图示在图1所示的电子环境内使用贪婪算法的引导遍历的示例生成的图。
图7是图示使用图5A和图6所图示的引导遍历来对各种对象进行编码的示例结果的表。
图8图示可与这里描述的电路一起使用的计算机设备和移动计算机设备的示例。
具体实施方式
压缩三角网格数据的常规方法涉及根据确定性公式来为三角网格的顶点生成遍历次序。例如,通过Edgebreaker算法所生成的遍历次序从三角网格的指定面开始并且在可能的情况下继续进行到右侧的相邻面。
在上述的压缩三角网格数据的常规方法中,用于为三角网格的顶点生成遍历次序的确定性公式是任意的并且相对于由遍历产生的预测误差不是最优的。可以相对于平行四边形预测看到这样的预测误差;在这种情况下,当对若干三角面中的任一个的遍历是可能的时,没有用于确定性公式作为下一个面产生会使平行四边形预测误差最小化的机制。较大的预测误差产生要压缩的三角网格数据的较大熵,这进而产生不太高效的压缩方案。因此为了实现低熵并因此实现高压缩率,期望按照如下次序遍历网格中的顶点:当从第一顶点开始时,通过平行四边形预测所获得的虚构顶点与按照遍历次序紧跟第一顶点的实际第二顶点之间的差异是最小的。
依照本文描述的实施方式,压缩三角网格数据的改进的技术涉及对针对三角网格中的顶点定义遍历次序的比特流进行编码。定义遍历次序的编码比特流除了是预测误差的编码比特流以外还是显式遍历而不是隐式遍历。定义遍历次序的比特流的一个示例是数组,其中比特表示步骤是否是诸如深度优先遍历的隐式确定性方案。在解码时,除非通过遍历比特流指定,否则使用通常的确定性步骤来查找三角网格的顶点。这样的编码比特流当占用比从定义在比特流中定义的遍历次序时获得的压缩效率节省的更少的存储器时提供简单高效的压缩。
图1是图示可以在其中实现上述改进的技术的示例电子环境100的图。如所示,在图1中,示例电子环境100包括压缩计算机120。
压缩计算机120被配置成压缩与表示三维对象的三角网格相关联的数据。压缩计算机120包括网络接口122、一个或多个处理单元124和存储器126。网络接口122包括例如以太网适配器、令牌环适配器等,以用于将从网络170接收到的电子和/或光信号转换为用于由点云压缩计算机120使用的电子形式。处理单元124的集合包括一个或多个处理芯片和/或部件。存储器126包括易失性存储器(例如,RAM)和诸如一个或多个ROM、磁盘驱动器、固态驱动器等的非易失性存储器两者。处理单元124的集合和存储器126一起形成控制电路,其被配置和布置成执行如本文所描述的各种方法和功能。
在一些实施例中,压缩计算机120的部件中的一个或多个可以是或者可包括被配置成处理存储在存储器126中的指令的处理器(例如,处理单元124)。如图1中所描绘的此类指令的示例包括网格管理器130、初始化管理器140、遍历管理器150、差异管理器160、编码管理器170和解码管理器180。另外,如图1中所图示的,存储器126被配置成存储各种数据,相对于使用此类数据的各个管理器对此进行描述。
网格管理器130被配置成接收、存储和/或发送三角网格数据,包括面数据132和顶点数据134。顶点数据134的顶点中的每一个均包括表示空间中的点的有序三元组。在一些实施方式中,顶点数据134包括指向空间中的点的索引作为有序三元组。在一些实施方式中,有序三元组的每个分量被量化,即,通过指定长度的比特串来表示。在一些实施方式中,顶点数据134还包括用于每个顶点的顶点标识符。在一些实施方式中,面数据132包括三角面的面标识符和组成三角面的三个顶点的顶点标识符。在一些实施方式中,网格管理器130被配置成通过网络(未示出)从外部源接收三角网格数据。
初始化管理器140被配置成生成初始遍历次序142,从该初始遍历次序142可以导出与该次序的偏差。在一些实施方式中,初始遍历次序142是诸如深度优先遍历次序的隐式确定性次序。在一些实施方式中,初始遍历次序142是诸如广度优先遍历次序的隐式确定性次序。
遍历管理器150被配置成生成遍历次序152,其中顶点134为了压缩顶点与从对其相邻点的考虑中预测的顶点之间的预测误差而布置的。沿着这些线,遍历管理器150被配置成当遍历管理器150确定与当前三角面的预测误差大于与另一三角面的预测误差时生成与初始遍历次序142的偏差作为遍历次序152。遍历次序152而不是初始遍历次序142由编码管理器170编码。
差异管理器160被配置成生成在通过三角网格的三角面132的顶点所预测的点与作为根据遍历次序152的下一个的相邻顶点之间的差异数据162。在一些实施方式中,差异数据162包括通过量化过程所指定的某个长度的比特串的三元组。
编码管理器170被配置成对差异数据162进行编码以产生编码差异数据172。在一些布置中,编码管理器170使用诸如例如算术编译或霍夫曼编译的熵编码器来执行对差异数据162的编码。理想地,在差异数据162中有尽可能小的变化,使得编码差异数据172具有较小的熵。
解码管理器180被配置成对编码差异数据172进行解码以产生解码差异数据182。给定解码差异数据182和通过三角网格中的每个相应的三角面132所做出的预测,可以推导出三角网格的顶点134中的每一个。
在一些实施方式中,存储器126可以是任何类型的存储器,诸如随机存取存储器、磁盘驱动器存储器、闪速存储器等等。在一些实施方式中,可将存储器126实现为与压缩计算机120的部件相关联的多于一个存储器部件(例如,多于一个RAM部件或磁盘驱动器存储器)。在一些实施方式中,存储器126可以是数据库存储器。在一些实施方式中,存储器126可以是或者可包括非本地存储器。例如,存储器126可以是或者可包括由多个设备(未示出)共享的存储器。在一些实施方式中,存储器126可与网络内的服务器设备(未示出)相关联并且被配置成为压缩计算机120的部件服务。
压缩计算机120的部件(例如,模块、处理单元124)可被配置成基于一个或多个平台(例如,一个或多个类似或不同的平台)操作,所述平台可包括一种或多种类型的硬件、软件、固件、操作系统、运行时库等等。在一些实施方式中,压缩计算机120的部件可被配置成在设备的集群(例如,服务器场)内操作。在这样的实施方式中,压缩计算机120的部件的功能性和处理可分布到设备的集群的若干设备。
压缩计算机120的部件可以是或者可包括被配置成处理属性的任何类型的硬件和/或软件。在一些实施方式中,图1中的压缩计算机120的部件中示出的部件的一个或多个部分可以是或者可包括基于硬件的模块(例如,数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器)、固件模块和/或基于软件的模块(例如,计算机代码的模块、可在计算机处执行的计算机可读指令的集合)。例如,在一些实施方式中,压缩计算机120的部件的一个或多个部分可以是或者可包括被配置用于由至少一个处理器(未示出)执行的软件模块。在一些实施方式中,部件的功能性可被包括在与图1所示的那些不同的模块和/或不同的部件中。
尽管未示出,但是在一些实施方式中,压缩计算机120的部件(或其各部分)可被配置成在例如数据中心(例如,云计算环境)、计算机系统、和/或一个或多个服务器/主机设备等等内操作。在一些实施方式中,压缩计算机120的部件(或其各部分)可被配置成在网络内操作。因此,压缩计算机120的部件(或其各部分)可被配置成在可包括一个或多个设备和/或一个或多个服务器设备的各种类型的网络环境内操作。例如,网络可以是或者可包括局域网(LAN)、和/或广域网(WAN)等等。网络可以是或者可包括无线网络和/或使用例如网关设备、桥接器、部件交换机等等来实现的无线网络。网络可包括一个或多个区段并且/或者可具有基于诸如网际协议(IP)和/或专有协议的各种协议的部分。网络可包括因特网的至少一部分。
在一些实施例中,压缩计算机120的部件中的一个或多个可以是或者可包括被配置成处理存储在存储器中的指令的处理器。例如,网格管理器130(和/或其一部分)、初始化管理器140(和/或其一部分)、遍历管理器150(和/或其一部分)、差异管理器160(和/或一部分)、编码管理器170(和/或其一部分)和解码管理器180(和/或其一部分)可以是被配置成执行与实现一个或多个功能的过程有关的指令的处理器和存储器的组合。
图2是描绘压缩三角网格数据的示例方法200的流程图。可以通过关于图1所描述的软件构造来执行方法200,所述软件构造驻留在用户设备计算机120的存储器126中并由处理单元124的集合运行。
在202处,压缩计算机120(图1)接收表示三维对象的三角网格的多个顶点。三角网格包括多个面,所述多个面中的每一个均包括所述多个顶点中的三个顶点。
在204处,压缩计算机120生成表示用于多个顶点的遍历次序的第一比特流。在一些实施方式中,遍历次序被表达为与隐式确定性遍历次序的偏差。
在206处,压缩计算机120生成表示预测顶点与多个顶点中的顶点之间的误差的数组的第二比特流。
在208处,压缩计算机120对第一比特流执行第一压缩(即,编码)操作以产生第一压缩比特流。
在210处,压缩计算机120对第二比特流执行第二压缩操作以产生第二压缩比特流。第一压缩比特流和第二压缩比特流响应于解压缩操作而产生三角网格的多个顶点。
在一些实施方式中,在执行第一压缩操作和第二压缩操作之后,将第一压缩比特流和第二压缩比特流的大小与阈值相比较。在一些实施方式中,响应于第一压缩比特流和第二压缩比特流的大小大于阈值,根据初始遍历次序布置第二比特流以形成第三比特流,并且对第三压缩比特流执行第三压缩操作以产生第三压缩比特流。第三压缩比特流可响应于解压缩操作而产生三角网格的多个顶点。
图3是图示示例三角网格300和预测误差的示例生成的图。在此示例中,为了生成遍历次序标记为“T”的三角形被视为当前三角面。三角形的点中的一个是前一三角面的前一相邻顶点。
在生成遍历次序时,希望使与在这种情况下标记为“V1”和“V2”的相邻顶点的预测误差最小化。在一些实施方式中,使用如图3中所图示的平行四边形预测方法来生成预测顶点位置。在平行四边形预测方法中,平行四边形由三角形T形成。离三角形T最远的顶点然后将是用于三角网格的相邻顶点的预测点。
如图3中所示,存在两个相邻顶点,因此存在可以被选择为下一遍历步骤的两个可能的遍历步骤。在一个示例中,平行四边形由与顶点330相对的预测顶点V1’形成。V1’是要与顶点V1相比较的预测顶点。误差矢量310是V1与V1’之间的差异。在另一示例中,平行四边形由与顶点340相对的预测顶点V2’形成。V2’是要与顶点V2相比较的预测顶点。误差矢量320是V2与V2’之间的差异。
在一些实施方式中,可以使用替代方法来导出预测顶点。例如,可以通过跨与顶点330相对的边对顶点330进行镜像来导出预测顶点V1’。
本文采取的方法涉及定义网格的显式或引导遍历。此方法被公开在图4-6中。
图4是图示在每个顶点处具有顶点标识符的示例三角网格的图。网格包括内部顶点(例如,具有索引3、6、7、10的顶点)和角顶点(例如,具有索引0、1、2、4、5、8、9、11、12、13的顶点)。
在本文中根据上述改进的技术定义的方法通过选择初始三角面而开始。在图4中,该面通过具有索引3、6和7的顶点来定义并被加粗。下一遍历步骤是相邻顶点(即,具有索引2、4、10的顶点)中的一个。然而,当遍历管理器150确定与当前三角形面(例如,基于图3中所示的平行四边形预测)的预测误差大于与另一三角形面的预测误差时,如在这种情况下一样,遍历管理器150指示遍历次序将偏离初始遍历142——在这种情况下为深度优先确定性遍历次序。在该示例中,深度优先遍历为:如果尚未遇到,则右侧的三角形被选取为遍历中的下一三角形。
这样的指示在图4中通过箭头的尖端处的大“X”来图示,所述箭头表示初始遍历142中的第一步骤。另外,遍历管理器150在遍历次序数据410中利用“0”指示此偏差。
另外的步骤与初始遍历次序142一致,并且遍历管理器150在遍历次序数据410中利用“1”指示每个一致。在这种情况下,当遍历步骤在右侧时,遍历次序具有“1”。以这种形式,遍历次序410在存在大多数“1”时具有非常低的熵,这是遍历次序410的情况。
当由于压缩遍历次序数据410产生的附加编码数据的开销大于由在差异数据162中引入较小的预测误差产生的节省时,然后遍历管理器可以使压缩管理器170不对遍历次序数据410进行编码,而是相反替代地回复为隐式公式化。这是因为引导遍历所需要的附加比特的成本即使在压缩之后也可能不重于第二比特流的收益。
图5A是图示使用例如最小生成树(minimum spanning tree)来导出遍历次序数据152的三角网格500的图。原则上,能想象通过使差异数据162加上遍历次序数据152的压缩比最大化来导出遍历次序。尽管如此,假定这样的优化是NP困难问题使得如最小生成树的近似解决方案是实际的替代方案是合理的。
在图5A中图示的最小生成树中,网格500的每个三角面是图的节点并且所有相邻面通过图边缘连接。遍历管理器150通过在边缘的末端处——即,在边缘终止于此处的面中——的预测误差来对每条边进行加权。由在选取生成树的分支时选取最小预测误差产生的最小生成树在不产生最优总体预测误差的同时提供可接近最优值的较小的预测误差。生成这样的生成树的运行时复杂度是O(Flog F),其中F是三角网格中的面的数目。
图5B是图示三角网格510的深度优先隐式遍历的图。因此,遍历管理器150可以生成作为图5A中图示的最小生成树与图5B中图示的遍历的偏差的遍历次序数据。
图6是图示使用贪婪算法作为对图5A所示的最小生成树的替代方案来生成遍历次序的三角网格600的图。在贪婪算法中,遍历管理器150总是采取给定移动,即,通过深度优先隐式遍历所提供的移动,除非由此移动产生的预测误差比可用于给定顶点的最小预测误差的预测误差大得多。遍历管理器150可以通过为给定顶点指定实际和最小预测误差之间的最大允许差异来控制结果遍历次序152与初始遍历次序142的偏差。
这种遍历策略被示出在图6中。在那里,初始预测误差显著地大于来自三角网格的不同面的预测误差。因此,不采取由初始遍历142指定的步骤,并且所使用的结果差异将稍后出现在由遍历次序152指定的序列中。
图7是图示由上述遍历策略的应用产生的一些示例压缩增益的表。通常,如本文所描述的遍历编码在所示的示例中提供至少大约1-6%压缩增益。
图8图示可以与这里描述的技术一起使用的通用计算机设备P00和通用移动计算机设备P50的示例。
计算设备P00旨在表示各种形式的数字计算机,诸如笔记本电脑、台式机、平板、工作站、个人数字助理、电视、服务器、刀片服务器、大型机和其他适当的计算设备。计算设备P50旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。这里示出的部件、其连接和关系以及其功能仅意在为示例性的,而不意在限制本文件中描述和/或要求保护的发明的实施方式。
计算设备P00包括处理器P02、存储器P04、存储设备P06、连接到存储器P04和高速扩展端口P10的高速接口P08以及连接到低速总线P14和存储设备P06的低速接口P12。处理器P02可以是基于半导体的处理器。存储器P04可以是基于半导体的存储器。部件P02、P04、P06、P08、P10和P12中的每一个均使用各种总线来互连,并且可以被酌情安装在公共母板上或者以其他方式安装。处理器P02可处理在计算设备P00内执行的指令,包括存储在存储器P04中或者在存储设备P06上以诸如耦合到高速接口P08的显示器P16的在外部输入/输出设备上显示用于GUI的图形信息的指令。在其他实施方式中,可以酌情使用多个处理器和/或多条总线以及多个存储器和多种类型的存储器。另外,可以连接多个计算设备P00,其中每个设备提供必要的操作的各部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。
存储器P04存储计算设备P00内的信息。在一个实施方式中,存储器P04是一个或多个易失性存储器单元。在另一实施方式中,存储器P04是一个或多个非易失性存储器单元。存储器P04也可以是另一形式的计算机可读介质,诸如磁盘或光盘。
存储设备P06能够为计算设备P00提供大容量存储。在一个实施方式中,存储设备P06可以是或者包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备、闪速存储器或其他类似的固态存储器设备或设备的阵列,包括存储区域网络或其他配置中的设备。可在信息载体中有形地具体实现计算机程序产品。计算机程序产品还可以包含指令,所述指令当被执行时,执行一种或多种方法,诸如上述那些方法。信息载体是计算机或机器可读介质,诸如存储器P04、存储设备P06或处理器P02上的存储器。
高速控制器P08管理计算设备P00的带宽密集操作,而低速控制器P12管理较低带宽密集操作。功能的这种分配仅是示例性的。在一个实施方式中,高速控制器P08(例如,通过图形处理器或加速器)耦合到存储器P04、显示器P16,并且耦合到高速扩展端口P10,其可以接受各种扩展卡(未示出)。在该实施方式中,低速控制器P12耦合到存储设备P06和低速扩展端口P14。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、指点设备、扫描仪或诸如交换机或路由器的联网设备。
如图中所示,可以以许多不同的形式实现计算设备P00。例如,它可以作为标准服务器P20被实现,或者多次被实现在一组此类服务器中。它也可以作为机架服务器系统P24的一部分被实现。此外,它可以被实现在诸如膝上型计算机P22的个人计算机中。替换地,来自计算设备P00的部件可以与移动设备(未示出)(诸如设备P50)中的其他部件组合。此类设备中的每一个均可以包含计算设备P00、P50中的一个或多个,并且整个系统可以由彼此通信的多个计算设备P00、P50组成。
计算设备P50包括处理器P52、存储器P64、诸如显示器P54的输入/输出设备、通信接口P66和收发器P68及其他部件。设备P50还可以被提供有存储设备,诸如微驱动器或其他设备,以提供附加存储。部件P50、P52、P64、P54、P66和P68中的每一个均使用各种总线来互连,并且这些部件中的若干个可以被酌情安装在公共主板上或者以其他方式安装。
处理器P52可执行计算设备P50内的指令,包括存储在存储器P64中的指令。处理器可以作为包括单独的及多个模拟和数字处理器的芯片的芯片组而被实现。处理器可以提供例如用于设备P50的其他部件的协调,诸如对用户接口、由设备P50运行的应用以及由设备P50进行的无线通信的控制。
处理器P52可以通过耦合到显示器P54的控制接口P58和显示接口P56来与用户进行通信。显示器P54可以是例如TFT LCD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器或其他适当的显示技术。显示接口P56可以包括用于驱动显示器P54以向用户呈现图形和其他信息的适当电路。控制接口P58可以从用户接收命令并对该命令进行转换以用于提交给处理器P52。此外,可以提供与处理器P52通信的外部接口P62,以便使得能实现设备P50与其他设备的近区域通信。外部接口P62可以例如在一些实施方式中提供用于有线通信,或者在其他实施方式中提供用于无线通信,并且还可以使用多个接口。
存储器P64存储计算设备P50内的信息。存储器P64可作为一个或多个计算机可读介质、一个或多个易失性存储器单元或一个或多个非易失性存储器单元中的一个或多个而被实现。还可以提供扩展存储器P74并且通过扩展接口P72将其连接到设备P50,扩展接口P72可以包括例如SIMM(单列直插存储器模块)卡接口。这样的扩展存储器P74可以为设备P50提供附加的存储空间,或者还可以为设备P50存储应用或其他信息。具体地,扩展存储器P74可以包括用于执行或者补充上述过程的指令,并且同样可以包括安全信息。因此,例如,扩展存储器P74可以作为用于设备P50的安全模块而被提供,并且可以被编程有允许安全使用设备P50的指令。此外,可以经由SIMM卡提供安全应用以及附加信息,诸如以不可破解的方式将标识信息放置在SIMM卡上。
如下所述,存储器可以包括例如闪速存储器和/或NVRAM存储器。在一个实施方式中,计算机程序产品被有形地具体实现在信息载体中。计算机程序产品包含指令,该指令当被执行时执行一种或多种方法,诸如上述那些方法。信息载体是计算机或机器可读介质,诸如可以通过收发器P68或外部接口P62接收的存储器P64、扩展存储器P74或处理器P52上的存储器。
设备P50可以通过通信接口P66以无线方式通信,该通信接口P66必要时可以包括数字信号处理电路。通信接口P66可以提供用于在各种模式或协议下通信,各种模式或协议诸如GSM语音呼叫、SMS、EMS或MMS消息传送、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等。这种通信可以例如通过射频收发器P68而发生。此外,短距离通信可以诸如使用蓝牙、Wi-Fi或其他这种收发器(未示出)来发生。此外,GPS(全球定位系统)接收器模块P70可以向设备P50提供附加的导航和位置相关无线数据,其可以由在设备P50上运行的应用酌情使用。
设备P50还可以使用音频编解码器P60听觉地通信,音频编解码器P60可以从用户接收口语信息并将其转换为可用的数字信息。音频编解码器P60可以同样地例如通过例如在设备P50的头戴式耳机中的扬声器为用户生成可听声音。这样的声音可以包括来自语音电话呼叫的声音,可以包括录制的声音(例如,语音消息、音乐文件等)并且还可以包括由在设备P50上运行的应用生成的声音。
如图中所示,可以以许多不同的形式实现计算设备P50。例如,它可以作为蜂窝电话P80被实现。它还可以作为智能电话P82、个人数字助理或其他类似移动设备的一部分被实现。
这里描述的系统和技术的各种实施方式可用数字电子电路、集成电路、专门地设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合加以实现。这些各种实现方式可包括一个或多个计算机程序中的实施方式,计算机程序在包括至少一个可编程处理器的可编程系统上可执行和/或可解释,该至少一个可编程处理器可以是专用的或通用的,被耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并且向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可用高级过程和/或面向对象编程语言和/或用汇编/机器语言加以实现。如本文所使用的,术语“机器可读介质”、“计算机可读介质”指代用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”指代用于向可编程处理器提供机器指令和/或数据的任何信号。
为了提供与用户的交互,可在计算机上实现这里描述的系统和技术,该计算机具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可用来向该计算机提供输入的键盘和指向设备(例如,鼠标或轨迹球)。其他种类的设备也可用于提供与用户的交互。例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以任何形式接收来自用户的输入,包括声学、语音或触觉输入。
可在计算系统中实现这里描述的系统和技术,计算系统包括后端部件(例如,作为数据服务器),或者包括中间件部件(例如,应用服务器),或者包括前端部件(例如,具有用户可用来与这里描述的系统和技术的实施方式交互的图形用户界面或Web浏览器的客户端计算机),或者包括此类后端、中间件或前端部件的任意组合。系统的部件可通过任何形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和因特网。
计算系统可包括客户端和服务器。客户端和服务器一般地彼此远离并通常通过通信网络来交互。客户端和服务器的关系借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。
在本说明书和所附权利要求中,除非上下文另外清楚地规定,否则单数形式“一”、“一个”和“该”不排除复数引用。另外,除非上下文另外清楚地规定,否则诸如“和”、“或”和“和/或”这样的连词是包括性的。例如,“A和/或B”包括仅仅A、仅仅B和A连同B。另外,在呈现的各个图中示出的连接线或连接器旨在表示各种元素之间的示例性功能关系和/或物理或逻辑耦合。在实际设备中可以存在许多替代或附加功能关系、物理连接或逻辑连接。此外,除非元素被具体地描述为“必要的”或“关键的”,否则没有项目或部件对本文公开的实施例的实践而言是必要的。
诸如但不限于近似地、基本上、一般地等的术语在本文中用于指示不要求并不需要指定其精确值或范围。如本文所使用的,上面讨论的术语对本领域的普通技术人员而言将具有简便和即时的含义。
此外,参考当前考虑或图示的定向来使用诸如上、下、顶部、底部、侧面、端部、前部、背部等的术语在本文中的用途。如果相对于另一定向考虑它们,则应该理解的是,必须相应地修改此类术语。
在以下示例中概括另外的实施方式:
示例1:一种方法,包括:通过被配置成表示与三维对象有关的信息的计算机的处理电路来接收表示所述三维对象的三角网格的多个顶点,所述三角网格包括多个面,所述多个面中的每一个均包括所述多个顶点中的三个顶点;通过所述处理电路来生成表示针对所述多个顶点的遍历次序的第一比特流;通过所述处理电路来生成表示预测顶点与所述多个顶点中的顶点之间的误差的数组的第二比特流;通过所述处理电路来对所述第一比特流执行第一压缩操作以产生第一压缩比特流;以及通过所述处理电路来对所述第二比特流执行第二压缩操作以产生第二压缩比特流,所述第一压缩比特流和所述第二压缩比特流响应于解压缩操作而产生所述三角网格的所述多个顶点。
示例2:如示例1所述的方法,其中,生成所述第一比特流包括:基于通过所述多个面的隐式遍历来产生初始遍历次序,所述多个面中的每一个均对应于所述多个顶点中的顶点;以及产生与所述初始遍历次序的偏差作为针对所述多个顶点的所述遍历次序。
示例3:如示例2所述的方法,其中,产生与所述初始遍历次序的所述偏差包括:当当前遍历步骤与所述初始遍历次序的当前步骤相同时,在所述第一比特流中生成第一比特值;以及当所述当前遍历步骤与所述初始遍历次序的当前步骤不同时,在所述第一比特流中生成第二比特值,所述第二比特值不同于所述第一比特值。
示例4:如示例2或3所述的方法,还包括:在执行所述第一压缩操作和所述第二压缩操作之后,将所述第一压缩比特流和所述第二压缩比特流的大小与阈值相比较;以及响应于所述第一压缩比特流和所述第二压缩比特流的大小大于所述阈值:根据所述初始遍历次序来布置所述第二比特流以形成第三比特流;并且对所述第三比特流执行第三压缩操作以产生第三压缩比特流,所述第三压缩比特流响应于解压缩操作而产生所述三角网格的所述多个顶点。
示例5:如示例1至4中的一个所述的方法,其中,生成所述第一比特流包括:针对所述多个面查找最小生成树,所述最小生成树包括多个边,所述多个边中的每一个均连接所述多个面的当前面和所述多个面的目标面。
示例6:如示例5所述的方法,其中,查找所述最小生成树包括:针对所述多个边中的每一个,生成等于所述三角网格的所述多个顶点中的顶点的预测值与该顶点之间的误差的权重。
示例7:如示例1至6中的一个所述的方法,其中,生成所述第一比特流包括:基于通过所述多个面的深度优先隐式遍历来产生初始遍历次序,所述多个面中的每一个均对应于所述多个顶点中的顶点;针对所述多个面中的、表示所述初始遍历次序中的下一个步骤的第一面,生成所述三角网格的所述多个顶点中的顶点的预测值与该顶点之间的、由基于所述第一面对该顶点的平行四边形预测产生的误差;以及响应于所述误差大于所述三角网格的所述多个顶点中的顶点的预测值与该顶点之间的、由基于所述多个面中的另一面对该顶点的平行四边形预测产生的误差,选择所述多个面中的第二面作为所述下一个步骤,所述第二面不同于所述第一面。
示例8:一种包括非暂时性存储介质的计算机程序产品,所述计算机程序产品包括代码,所述代码当由被配置成表示与三维对象有关的信息的用户设备的处理电路执行时使所述处理电路执行根据示例1至7中的一个所述的方法,三角网格的多个顶点表示所述三维对象。
示例9:一种被配置成表示与三维对象有关的信息的电子装置,三角网格的多个顶点表示所述三维对象,所述电子装置包括:存储器;以及耦合到所述存储器的控制电路,所述控制电路被配置成执行根据示例1至7中的一个所述的方法。
示例10:一种包括非暂时性存储介质的计算机程序产品,所述计算机程序产品包括代码,所述代码当由被配置成表示与三维对象有关的信息的用户设备的处理电路执行时,使所述处理电路执行方法,三角网格的多个顶点表示所述三维对象,所述方法包括:接收表示所述三维对象的三角网格的多个顶点,所述三角网格包括多个面,所述多个面中的每一个均包括所述多个顶点中的三个顶点;生成表示针对所述多个顶点的遍历次序的第一比特流;生成表示预测顶点与所述多个顶点中的顶点之间的误差的数组的第二比特流;对所述第一比特流执行第一压缩操作以产生第一压缩比特流;以及对所述第二比特流执行第二压缩操作以产生第二压缩比特流,所述第一压缩比特流和所述第二压缩比特流响应于解压缩操作而产生所述三角网格的所述多个顶点。
示例11:如示例10所述的计算机程序产品,其中,生成所述第一比特流包括:基于通过所述多个面的隐式遍历来产生初始遍历次序,所述多个面中的每一个均对应于所述多个顶点中的顶点;以及产生与所述初始遍历次序的偏差作为针对所述多个顶点的所述遍历次序。
示例12:如示例11所述的计算机程序产品,其中,产生与所述初始遍历次序的所述偏差包括:当当前遍历步骤与所述初始遍历次序的当前步骤相同时,在所述第一比特流中生成第一比特值;以及当所述当前遍历步骤与所述初始遍历次序的当前步骤不同时,在所述第一比特流中生成第二比特值,所述第二比特值不同于所述第一比特值。
示例13:如示例11所述的计算机程序产品,其中,所述方法还包括:在执行所述第一压缩操作和所述第二压缩操作之后,将所述第一压缩比特流和所述第二压缩比特流的大小与阈值相比较;以及响应于所述第一压缩比特流和所述第二压缩比特流的大小大于所述阈值:根据所述初始遍历次序来布置所述第二比特流以形成第三比特流;并且对所述第三比特流执行第三压缩操作以产生第三压缩比特流,所述第三压缩比特流响应于解压缩操作而产生所述三角网格的所述多个顶点。
示例14:如示例10所述的计算机程序产品,其中,生成所述第一比特流包括:针对所述多个面查找最小生成树,所述最小生成树包括多个边,所述多个边中的每一个均连接所述多个面的当前面和所述多个面的目标面。
示例15:如示例14所述的计算机程序产品,其中,查找所述最小生成树包括:针对所述多个边中的每一个,生成等于所述三角网格的所述多个顶点中的顶点的预测值与该顶点之间的误差的权重。
示例16:如示例10所述的计算机程序产品,其中,生成所述第一比特流包括:基于通过所述多个面的深度优先隐式遍历来产生初始遍历次序,所述多个面中的每一个均对应于所述多个顶点中的顶点;针对所述多个面中的、表示所述初始遍历次序中的下一个步骤的第一面,生成所述三角网格的所述多个顶点中的顶点的预测值与该顶点之间的、由基于所述第一面对该顶点的平行四边形预测产生的误差;以及响应于所述误差大于所述三角网格的所述多个顶点中的顶点的预测值与该顶点之间的、由基于所述多个面中的另一面对该顶点的平行四边形预测产生的误差,选择所述多个面中的第二面作为所述下一个步骤,所述第二面不同于所述第一面。
示例17:一种被配置成表示与三维对象有关的信息的电子装置,三角网格的多个顶点表示所述三维对象,所述电子装置包括:存储器;以及耦合到所述存储器的控制电路,所述控制电路被配置成:接收表示所述三维对象的三角网格的多个顶点,所述三角网格包括多个面,所述多个面中的每一个均包括所述多个顶点中的三个顶点;生成表示针对所述多个顶点的遍历次序的第一比特流;生成表示预测顶点与所述多个顶点中的顶点之间的误差的数组的第二比特流;对所述第一比特流执行第一压缩操作以产生第一压缩比特流;以及对所述第二比特流执行第二压缩操作以产生第二压缩比特流,所述第一压缩比特流和所述第二压缩比特流响应于解压缩操作而产生所述三角网格的所述多个顶点。
示例18:如示例17所述的电子装置,其中,被配置成生成所述第一比特流的所述控制电路还被配置成:基于通过所述多个面的隐式遍历来产生初始遍历次序,所述多个面中的每一个均对应于所述多个顶点中的顶点;并且产生与所述初始遍历次序的偏差作为针对所述多个顶点的所述遍历次序。
示例19:如示例18所述的电子装置,其中,被配置成产生与所述初始遍历次序的所述偏差的所述控制电路还被配置成:当当前遍历步骤与所述初始遍历次序的当前步骤相同时,在所述第一比特流中生成第一比特值;以及当所述当前遍历步骤与所述初始遍历次序的当前步骤不同时,在所述第一比特流中生成第二比特值,所述第二比特值不同于所述第一比特值。
示例20:如示例18所述的电子装置,其中,所述控制电路还被配置成:在执行所述第一压缩操作和所述第二压缩操作之后,将所述第一压缩比特流和所述第二压缩比特流的大小与阈值相比较;以及响应于所述第一压缩比特流和所述第二压缩比特流的大小大于所述阈值:根据所述初始遍历次序来布置所述第二比特流以形成第三比特流;并且对所述第三比特流执行第三压缩操作以产生第三压缩比特流,所述第三压缩比特流响应于解压缩操作而产生所述三角网格的所述多个顶点。
示例21:如示例17所述的电子装置,其中,被配置成生成所述第一比特流的所述控制电路还被配置成:针对所述多个面查找最小生成树,所述最小生成树包括多个边,所述多个边中的每一个均连接所述多个面的当前面和所述多个面的目标面。
示例22:如示例18所述的电子装置,其中,被配置成生成所述第一比特流的所述控制电路还被配置成:基于通过所述多个面的深度优先隐式遍历来产生初始遍历次序,所述多个面中的每一个均对应于所述多个顶点中的顶点;针对所述多个面中的、表示所述初始遍历次序中的下一个步骤的第一面,生成所述三角网格的所述多个顶点中的顶点的预测值与该顶点之间的、由基于所述第一面对该顶点的平行四边形预测产生的误差;以及响应于所述误差大于所述三角网格的所述多个顶点中的顶点的预测值与该顶点之间的、由基于所述多个面中的另一面对该顶点的平行四边形预测产生的误差,选择所述多个面中的第二面作为所述下一个步骤,所述第二面不同于所述第一面。
另外,在本说明书和所附权利要求中,除非上下文另外清楚地规定,否则单数形式“一”、“一个”和“该”不排除复数引用。此外,除非上下文另外清楚地规定,否则诸如“和”、“或”和“和/或”这样的连词是包括性的。例如,“A和/或B”包括仅仅A、仅仅B和A与B一起。
此外,图中描绘的逻辑流程不要求所示的特定次序或顺序次序以实现所希望的结果。此外,可以提供其他步骤,或者可以从所描述的流程中移除步骤,并且可以向所描述的系统添加其他部件或者从所描述的系统中移除其他部件。因此,其他实施例在所附权利要求的范围内。
Claims (19)
1.一种方法,包括:
通过被配置成表示与三维对象有关的信息的计算机的处理电路来接收表示所述三维对象的三角网格的多个顶点,所述三角网格包括多个面,所述多个面中的每一个均包括所述多个顶点中的三个顶点;
通过所述处理电路来生成表示针对所述多个顶点的遍历次序的第一比特流;
通过所述处理电路来生成表示预测顶点与所述多个顶点中的顶点之间的误差的数组的第二比特流;
通过所述处理电路来对所述第一比特流执行第一压缩操作以产生第一压缩比特流;以及
通过所述处理电路来对所述第二比特流执行第二压缩操作以产生第二压缩比特流,所述第一压缩比特流和所述第二压缩比特流响应于解压缩操作而产生所述三角网格的所述多个顶点。
2.如权利要求1所述的方法,其中,生成所述第一比特流包括:
基于通过所述多个面的隐式遍历来产生初始遍历次序,所述多个面中的每一个均对应于所述多个顶点中的顶点;以及
产生与所述初始遍历次序的偏差作为针对所述多个顶点的所述遍历次序。
3.如权利要求2所述的方法,其中,产生与所述初始遍历次序的所述偏差包括:
当当前遍历步骤与所述初始遍历次序的当前步骤相同时,在所述第一比特流中生成第一比特值;以及
当所述当前遍历步骤与所述初始遍历次序的当前步骤不同时,在所述第一比特流中生成第二比特值,所述第二比特值不同于所述第一比特值。
4.如权利要求1所述的方法,其中,生成所述第一比特流包括:
针对所述多个面查找最小生成树,所述最小生成树包括多个边,所述多个边中的每一个均连接所述多个面的当前面和所述多个面的目标面。
5.如权利要求4所述的方法,其中,查找所述最小生成树包括:
针对所述多个边中的每一个,生成等于所述三角网格的所述多个顶点中的顶点的预测值与该顶点之间的误差的权重。
6.如权利要求1所述的方法,其中,生成所述第一比特流包括:
基于通过所述多个面的深度优先隐式遍历来产生初始遍历次序,所述多个面中的每一个均对应于所述多个顶点中的顶点;
针对所述多个面中的、表示所述初始遍历次序中的下一个步骤的第一面,生成所述三角网格的所述多个顶点中的顶点的预测值与该顶点之间的、由基于所述第一面对该顶点的平行四边形预测产生的误差;以及
响应于所述误差大于所述三角网格的所述多个顶点中的顶点的预测值与该顶点之间的、由基于所述多个面中的另一面对该顶点的平行四边形预测产生的误差,选择所述多个面中的第二面作为所述下一个步骤,所述第二面不同于所述第一面。
7.一种包括非暂时性存储介质的计算机程序产品,所述计算机程序产品包括代码,所述代码当由被配置成表示与三维对象有关的信息的用户设备的处理电路执行时,使所述处理电路执行方法,三角网格的多个顶点表示所述三维对象,所述方法包括:
接收表示所述三维对象的三角网格的多个顶点,所述三角网格包括多个面,所述多个面中的每一个均包括所述多个顶点中的三个顶点;
生成表示针对所述多个顶点的遍历次序的第一比特流;
生成表示预测顶点与所述多个顶点中的顶点之间的误差的数组的第二比特流;
对所述第一比特流执行第一压缩操作以产生第一压缩比特流;以及
对所述第二比特流执行第二压缩操作以产生第二压缩比特流,所述第一压缩比特流和所述第二压缩比特流响应于解压缩操作而产生所述三角网格的所述多个顶点。
8.如权利要求7所述的计算机程序产品,其中,生成所述第一比特流包括:
基于通过所述多个面的隐式遍历来产生初始遍历次序,所述多个面中的每一个均对应于所述多个顶点中的顶点;以及
产生与所述初始遍历次序的偏差作为针对所述多个顶点的所述遍历次序。
9.如权利要求8所述的计算机程序产品,其中,产生与所述初始遍历次序的所述偏差包括:
当当前遍历步骤与所述初始遍历次序的当前步骤相同时,在所述第一比特流中生成第一比特值;以及
当所述当前遍历步骤与所述初始遍历次序的当前步骤不同时,在所述第一比特流中生成第二比特值,所述第二比特值不同于所述第一比特值。
10.如权利要求8所述的计算机程序产品,其中,所述方法还包括:
在执行所述第一压缩操作和所述第二压缩操作之后,将所述第一压缩比特流和所述第二压缩比特流的大小与阈值相比较;以及
响应于所述第一压缩比特流和所述第二压缩比特流的大小大于所述阈值:
根据所述初始遍历次序来布置所述第二比特流以形成第三比特流;并且
对所述第三比特流执行第三压缩操作以产生第三压缩比特流,所述第三压缩比特流响应于解压缩操作而产生所述三角网格的所述多个顶点。
11.如权利要求7所述的计算机程序产品,其中,生成所述第一比特流包括:
针对所述多个面查找最小生成树,所述最小生成树包括多个边,所述多个边中的每一个均连接所述多个面的当前面和所述多个面的目标面。
12.如权利要求11所述的计算机程序产品,其中,查找所述最小生成树包括:
针对所述多个边中的每一个,生成等于所述三角网格的所述多个顶点中的顶点的预测值与该顶点之间的误差的权重。
13.如权利要求7所述的计算机程序产品,其中,生成所述第一比特流包括:
基于通过所述多个面的深度优先隐式遍历来产生初始遍历次序,所述多个面中的每一个均对应于所述多个顶点中的顶点;
针对所述多个面中的、表示所述初始遍历次序中的下一个步骤的第一面,生成所述三角网格的所述多个顶点中的顶点的预测值与该顶点之间的、由基于所述第一面对该顶点的平行四边形预测产生的误差;以及
响应于所述误差大于所述三角网格的所述多个顶点中的顶点的预测值与该顶点之间的、由基于所述多个面中的另一面对该顶点的平行四边形预测产生的误差,选择所述多个面中的第二面作为所述下一个步骤,所述第二面不同于所述第一面。
14.一种被配置成表示与三维对象有关的信息的电子装置,三角网格的多个顶点表示所述三维对象,所述电子装置包括:
存储器;以及
耦合到所述存储器的控制电路,所述控制电路被配置成:
接收表示所述三维对象的三角网格的多个顶点,所述三角网格包括多个面,所述多个面中的每一个均包括所述多个顶点中的三个顶点;
生成表示针对所述多个顶点的遍历次序的第一比特流;
生成表示预测顶点与所述多个顶点中的顶点之间的误差的数组的第二比特流;
对所述第一比特流执行第一压缩操作以产生第一压缩比特流;以及
对所述第二比特流执行第二压缩操作以产生第二压缩比特流,所述第一压缩比特流和所述第二压缩比特流响应于解压缩操作而产生所述三角网格的所述多个顶点。
15.如权利要求14所述的电子装置,其中,被配置成生成所述第一比特流的所述控制电路还被配置成:
基于通过所述多个面的隐式遍历来产生初始遍历次序,所述多个面中的每一个均对应于所述多个顶点中的顶点;并且
产生与所述初始遍历次序的偏差作为针对所述多个顶点的所述遍历次序。
16.如权利要求15所述的电子装置,其中,被配置成产生与所述初始遍历次序的所述偏差的所述控制电路还被配置成:
当当前遍历步骤与所述初始遍历次序的当前步骤相同时,在所述第一比特流中生成第一比特值;以及
当所述当前遍历步骤与所述初始遍历次序的当前步骤不同时,在所述第一比特流中生成第二比特值,所述第二比特值不同于所述第一比特值。
17.如权利要求15所述的电子装置,其中,所述控制电路还被配置成:
在执行所述第一压缩操作和所述第二压缩操作之后,将所述第一压缩比特流和所述第二压缩比特流的大小与阈值相比较;以及
响应于所述第一压缩比特流和所述第二压缩比特流的大小大于所述阈值:
根据所述初始遍历次序来布置所述第二比特流以形成第三比特流;并且
对所述第三比特流执行第三压缩操作以产生第三压缩比特流,所述第三压缩比特流响应于解压缩操作而产生所述三角网格的所述多个顶点。
18.如权利要求14所述的电子装置,其中,被配置成生成所述第一比特流的所述控制电路还被配置成:
针对所述多个面查找最小生成树,所述最小生成树包括多个边,所述多个边中的每一个均连接所述多个面的当前面和所述多个面的目标面。
19.如权利要求14所述的电子装置,其中,被配置成生成所述第一比特流的所述控制电路还被配置成:
基于通过所述多个面的深度优先隐式遍历来产生初始遍历次序,所述多个面中的每一个均对应于所述多个顶点中的顶点;
针对所述多个面中的、表示所述初始遍历次序中的下一个步骤的第一面,生成所述三角网格的所述多个顶点中的顶点的预测值与该顶点之间的、由基于所述第一面对该顶点的平行四边形预测产生的误差;以及
响应于所述误差大于所述三角网格的所述多个顶点中的顶点的预测值与该顶点之间的、由基于所述多个面中的另一面对该顶点的平行四边形预测产生的误差,选择所述多个面中的第二面作为所述下一个步骤,所述第二面不同于所述第一面。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/612,736 | 2017-06-02 | ||
US15/612,736 US10950042B2 (en) | 2017-06-02 | 2017-06-02 | Guided traversal in compression of triangular meshes |
PCT/US2018/035077 WO2018222681A1 (en) | 2017-06-02 | 2018-05-30 | Guided traversal in compression of triangular meshes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110663062A true CN110663062A (zh) | 2020-01-07 |
CN110663062B CN110663062B (zh) | 2023-07-07 |
Family
ID=62685175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880034683.9A Active CN110663062B (zh) | 2017-06-02 | 2018-05-30 | 三角网格压缩中的引导遍历 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10950042B2 (zh) |
EP (1) | EP3410400A1 (zh) |
CN (1) | CN110663062B (zh) |
WO (1) | WO2018222681A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112348935A (zh) * | 2020-11-06 | 2021-02-09 | 芯勍(上海)智能化科技股份有限公司 | 线框渲染方法、终端设备及计算机可读存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240022764A1 (en) * | 2022-07-12 | 2024-01-18 | Tencent America LLC | Texture coordinate coding in mesh compression |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6262737B1 (en) * | 1998-01-30 | 2001-07-17 | University Of Southern California | 3D mesh compression and coding |
US6563500B1 (en) * | 1998-08-29 | 2003-05-13 | Samsung Electronics Co., Ltd. | Progressive 3D mesh coding method and apparatus |
CN101403909A (zh) * | 2008-11-12 | 2009-04-08 | 山东理工大学 | 三角网格细分曲面nc刀轨生成方法 |
US20100086050A1 (en) * | 2004-05-04 | 2010-04-08 | University Technologies International Inc. | Mesh based frame processing and applications |
US20140198182A1 (en) * | 2011-09-29 | 2014-07-17 | Dolby Laboratories Licensing Corporation | Representation and Coding of Multi-View Images Using Tapestry Encoding |
US20140376827A1 (en) * | 2011-11-07 | 2014-12-25 | Wenfei Jiang | Predictive position encoding |
CN104318025A (zh) * | 2014-10-27 | 2015-01-28 | 福州大学 | 八角结构Steiner最小树下的VLSI绕障布线器 |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5793371A (en) | 1995-08-04 | 1998-08-11 | Sun Microsystems, Inc. | Method and apparatus for geometric compression of three-dimensional graphics data |
US6525722B1 (en) | 1995-08-04 | 2003-02-25 | Sun Microsystems, Inc. | Geometry compression for regular and irregular mesh structures |
IL119082A (en) | 1996-08-16 | 2001-04-30 | Virtue Ltd | A method for creating graphic characters |
US6167159A (en) | 1998-04-30 | 2000-12-26 | Virtue Ltd. | Triangle mesh compression |
KR19990085657A (ko) | 1998-05-20 | 1999-12-15 | 윤종용 | 그래픽 모델링 데이터의 연결성 정보 압축 방법 및 장치 |
US6879324B1 (en) | 1998-07-14 | 2005-04-12 | Microsoft Corporation | Regional progressive meshes |
US6204854B1 (en) | 1998-12-04 | 2001-03-20 | France Telecom | Method and system for encoding rotations and normals in 3D generated scenes |
WO2000045237A2 (en) | 1999-01-27 | 2000-08-03 | Enbaya Ltd. | Progressive compression of triangular meshes |
KR100292803B1 (ko) | 1999-07-06 | 2001-06-15 | 정선종 | 3차원 메쉬모델의 정점위치 압축방법 및 장치 |
KR100420006B1 (ko) | 2001-06-13 | 2004-03-02 | 이상욱 | 3차원 데이터 압축 시스템에서의 삼각형 팬 구조에 기반한3차원 메쉬 부호화 방법 |
FR2827409B1 (fr) | 2001-07-10 | 2004-10-15 | France Telecom | Procede de codage d'une image par ondelettes permettant une transmission adaptative de coefficients d'ondelettes, signal systeme et dispositifs correspondants |
US7103211B1 (en) | 2001-09-04 | 2006-09-05 | Geometrix, Inc. | Method and apparatus for generating 3D face models from one camera |
KR100450823B1 (ko) | 2001-11-27 | 2004-10-01 | 삼성전자주식회사 | 깊이 이미지 기반 3차원 물체의 표현을 위한 노드 구조 |
KR100473704B1 (ko) | 2002-02-27 | 2005-03-08 | 이상욱 | 3차원 메쉬 영상의 점진적 부호화 방법 |
US20100166056A1 (en) | 2002-12-10 | 2010-07-01 | Steve Perlman | System and method for encoding video using a selected tile and tile rotation pattern |
KR100490121B1 (ko) | 2003-05-07 | 2005-05-17 | 한국과학기술연구원 | 3차원 메쉬 모델의 압축 방법 |
KR100511717B1 (ko) | 2003-07-08 | 2005-09-02 | 재단법인서울대학교산학협력재단 | 시점-의존 처리를 이용한 3차원 노말 메쉬 데이터 압축 및전송 장치 |
KR100511719B1 (ko) | 2003-07-08 | 2005-09-02 | 재단법인서울대학교산학협력재단 | 비율-왜곡 최적화를 이용한 3차원 노말 메쉬 데이터 압축장치 |
US7804498B1 (en) | 2004-09-15 | 2010-09-28 | Lewis N Graham | Visualization and storage algorithms associated with processing point cloud data |
KR20060087631A (ko) | 2005-01-29 | 2006-08-03 | (주) 써니그라피 | 3차원 삼각 메쉬의 기하 정보 데이터 단순 압축 및 해제 기술 |
KR20060087662A (ko) | 2005-01-31 | 2006-08-03 | (주) 써니그라피 | 3차원 사각 메쉬의 기하 정보 데이터 단순 압축 및 해제 기술 |
KR20060087647A (ko) | 2005-01-31 | 2006-08-03 | (주) 써니그라피 | 3차원 삼각 메쉬의 연결 정보 데이터 단순 압축및 해제의 기술. |
KR20060088136A (ko) | 2005-02-01 | 2006-08-04 | (주) 써니그라피 | 3차원 사각 메쉬의 연결 정보 데이터 단순 압축및 해제의 기술. |
KR101268508B1 (ko) | 2007-01-11 | 2013-06-05 | 한양대학교 산학협력단 | 스티칭 정보를 포함하는 3차원 메쉬 정보부호화/복호화 방법 및 장치 |
KR100927601B1 (ko) | 2007-04-19 | 2009-11-23 | 한국전자통신연구원 | 3차원 메쉬 정보의 부호화/복호화 방법 및 장치 |
KR100910031B1 (ko) | 2007-09-06 | 2009-07-30 | 한양대학교 산학협력단 | 3차원 메쉬 모델의 부호화 장치, 그 방법 및 이를 기록한기록매체 |
KR20090097057A (ko) | 2008-03-10 | 2009-09-15 | 삼성전자주식회사 | 메쉬 모델로 구현된 3차원 데이터의 연결정보를 부호화 및복호화 방법 |
KR101048368B1 (ko) | 2008-07-14 | 2011-07-11 | 한양대학교 산학협력단 | 연결정보 분석을 통한 3차원 메쉬 모델의 부호화 장치 및 방법 |
KR100947595B1 (ko) | 2008-07-29 | 2010-03-15 | 중앙대학교 산학협력단 | 폴리곤의 컬러 코드를 이용한 복셀화 방법 |
EP2216750A1 (en) | 2009-02-06 | 2010-08-11 | Thomson Licensing | Method and apparatus for encoding 3D mesh models, and method and apparatus for decoding encoded 3D mesh models |
KR101590185B1 (ko) | 2009-04-10 | 2016-02-01 | 삼성전자주식회사 | 3차원 메쉬정보 압축 및 복원 방법 |
US9753124B2 (en) | 2009-07-13 | 2017-09-05 | Celartem, Inc. | LIDAR point cloud compression |
EP2489208A4 (en) | 2009-10-15 | 2017-05-03 | Thomson Licensing | Method and apparatus for encoding a mesh model, encoded mesh model, and method and apparatus for decoding a mesh model |
KR101669873B1 (ko) | 2009-10-16 | 2016-10-27 | 삼성전자주식회사 | 삼차원 메쉬 압축장치 및 방법 |
CN102725775B (zh) | 2010-01-25 | 2015-05-13 | 汤姆森特许公司 | 编码3d网格模型法线的方法、解码3d网格模型法线的方法、编码器和解码器 |
US8619085B2 (en) | 2010-03-08 | 2013-12-31 | Broadcom Corporation | Method and system for compressing tile lists used for 3D rendering |
FR2961930B1 (fr) | 2010-06-29 | 2013-01-04 | Fittingbox | Procede de compression / decompression de maillage tridimensionnel |
KR101654777B1 (ko) | 2010-07-19 | 2016-09-06 | 삼성전자주식회사 | 3차원 메쉬 가변 부호화 장치 및 방법, 그리고 3차원 메쉬 가변 복호화 장치 및 방법 |
CN102467753B (zh) | 2010-11-04 | 2013-10-09 | 中国科学院深圳先进技术研究院 | 基于骨架配准的时变点云重建方法及系统 |
KR101794537B1 (ko) | 2011-01-21 | 2017-11-07 | 삼성전자주식회사 | 데이터 처리 장치 및 방법 |
KR101844297B1 (ko) | 2011-03-17 | 2018-04-02 | 삼성전자주식회사 | 3차원 메쉬 부호화 방법 및 장치 |
EP2697985B1 (en) | 2011-04-12 | 2018-06-06 | Thomson Licensing | Method for encoding a mesh model, encoded mesh model and method for decoding a mesh model |
US8736603B2 (en) | 2011-11-02 | 2014-05-27 | Visual Technology Services Limited | Compression of texture rendered wire mesh models |
JP5932051B2 (ja) | 2011-11-07 | 2016-06-08 | トムソン ライセンシングThomson Licensing | 予測位置復号 |
US8811758B2 (en) | 2011-12-18 | 2014-08-19 | Numerica Corporation | Lossy compression of data points using point-wise error constraints |
US9396512B2 (en) | 2012-03-09 | 2016-07-19 | Nvidia Corporation | Fully parallel construction of k-d trees, octrees, and quadtrees in a graphics processing unit |
CN102682103B (zh) | 2012-04-28 | 2014-03-26 | 北京建筑工程学院 | 一种面向海量激光雷达点云模型的三维空间索引方法 |
US9734595B2 (en) | 2014-09-24 | 2017-08-15 | University of Maribor | Method and apparatus for near-lossless compression and decompression of 3D meshes and point clouds |
-
2017
- 2017-06-02 US US15/612,736 patent/US10950042B2/en active Active
-
2018
- 2018-05-30 CN CN201880034683.9A patent/CN110663062B/zh active Active
- 2018-05-30 WO PCT/US2018/035077 patent/WO2018222681A1/en active Application Filing
- 2018-06-04 EP EP18175671.9A patent/EP3410400A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6262737B1 (en) * | 1998-01-30 | 2001-07-17 | University Of Southern California | 3D mesh compression and coding |
US6563500B1 (en) * | 1998-08-29 | 2003-05-13 | Samsung Electronics Co., Ltd. | Progressive 3D mesh coding method and apparatus |
US20100086050A1 (en) * | 2004-05-04 | 2010-04-08 | University Technologies International Inc. | Mesh based frame processing and applications |
CN101403909A (zh) * | 2008-11-12 | 2009-04-08 | 山东理工大学 | 三角网格细分曲面nc刀轨生成方法 |
US20140198182A1 (en) * | 2011-09-29 | 2014-07-17 | Dolby Laboratories Licensing Corporation | Representation and Coding of Multi-View Images Using Tapestry Encoding |
US20140376827A1 (en) * | 2011-11-07 | 2014-12-25 | Wenfei Jiang | Predictive position encoding |
CN104318025A (zh) * | 2014-10-27 | 2015-01-28 | 福州大学 | 八角结构Steiner最小树下的VLSI绕障布线器 |
Non-Patent Citations (2)
Title |
---|
LIBOR VASA: "Optimised mesh traversal for dynamic mesh compression", 《GRAPHICAL MODELS, ELSEVIER》 * |
ROSSIGNAC J: "EDGEBREAKER: CONNECTIVITY COMPRESSION FOR TRIANGLE MESHES", 《IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112348935A (zh) * | 2020-11-06 | 2021-02-09 | 芯勍(上海)智能化科技股份有限公司 | 线框渲染方法、终端设备及计算机可读存储介质 |
CN112348935B (zh) * | 2020-11-06 | 2022-09-23 | 芯勍(上海)智能化科技股份有限公司 | 线框渲染方法、终端设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3410400A1 (en) | 2018-12-05 |
WO2018222681A1 (en) | 2018-12-06 |
US20180350138A1 (en) | 2018-12-06 |
US10950042B2 (en) | 2021-03-16 |
CN110663062B (zh) | 2023-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9787321B1 (en) | Point cloud data compression using a space-filling curve | |
CN111670463B (zh) | 基于机器学习的几何网格简化 | |
US20220020211A1 (en) | Efficient compression of data representing triangular mesh attributes | |
US20230046917A1 (en) | In-tree geometry quantization of point clouds | |
WO2020237647A1 (zh) | 点云数据的编码方法、编码装置、解码方法与解码装置 | |
EP3574662B1 (en) | Ambisonic audio with non-head tracked stereo based on head position and time | |
US20140376606A1 (en) | Graphics server and method for streaming rendered content via a remote graphics processing service | |
CN110663062B (zh) | 三角网格压缩中的引导遍历 | |
US10553035B2 (en) | Valence based implicit traversal for improved compression of triangular meshes | |
US9595976B1 (en) | Folded integer encoding | |
US11094087B2 (en) | Dual serving scheme for LOD sequences | |
US20180124540A1 (en) | Projection-based audio coding | |
EP3616077B1 (en) | Spatial audio triggered by a user's physical environment | |
WO2023172703A1 (en) | Geometry point cloud coding | |
KR102396728B1 (ko) | 컬러와 깊이의 다수 스트림에 대한 공간 적응적 비디오 압축 | |
US9264707B2 (en) | Multi-symbol run-length coding | |
WO2023071462A1 (zh) | 点云的编解码方法、装置、设备、存储介质及程序产品 | |
CN113590219B (zh) | 一种数据处理方法、装置、电子设备以及存储介质 | |
EP3079081A1 (en) | Method and device for coding the coordinates of a set of points |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |