表征计算机动画毛发的压缩数据的制作方法_4

文档序号:8435894阅读:来源:国知局
息被组织在数据头并且会或不会被压缩。在数据头或数据头之后是包括段参考阵列的数字化的毛发数据。如上面所讨论的,段参考阵列可以是任意长度的,所以阵列可以一起合并或打破,以适应特定的计算机(32位,64位等)的字的大小。
[0063]再次参考图2的流程200,在框212,位打包数字化数据可以被使用例如,无损熵编码压缩。在一些实施例中,只有已数字化数据的毛发可能会受到熵编码(例如,段参考映射、段参考阵列等)。在其它实施例中,所有与表征毛发有关的数据可能会受到熵编码(例如,连同其它数据的所有数据头信息)。在一个实施例中,数字化和位打包的毛发数据可以使用本领域内普通技术人员所知的Lempel-Ziv标准熵编码方法(例如,Lempe1-Ziv-ffelch, Lempel-Ziv-Storer-Szymanski, Lempel-ZiV-Markov 等等)。在其它实施例中,霍夫曼编码技术,以及其他的算术编码技术,或本领域的普通技术人员已知的其他压缩技术可用于对数据进行压缩。在其它实施例中,数字化的数据可以不会在框212进一步压缩,或者根据数据的大小以及数字化之外的后续压缩的需要,数据可以被选择性地压缩(例如,只有当数据超过一定大小或存储空间接近一定的容量限制时压缩)。
[0064]再次参照图2的流程200,在框214,压缩数据可被存储。如上所述,多个数据头、映射、表及伴随的压缩数据的类似信息与公共信息可以被存储在一起。当需要毛发数据时,除了压缩数据还提供伴随的信息,以便解压数据并将其映射成可用的形式。
[0065]图7示出用于解压缩使用上面讨论的流程200或这里讨论的多种压缩技术压缩的动画毛发数据的示范性流程700。值得注意的是,在用于特定一组压缩毛发数据的特定的解压步骤依赖于多种因素,包括使用的压缩技术、用以特定一组毛发数据的如何定制压缩步骤。本领域内的普通技术人员将容易识别到可用于解压缩压缩的毛发数据来执行的多个步骤,流程700仅作为一个说明性的例子,根据需要为不同的实现方式可以被修改。
[0066]在框702,对应于在毛发数据参数的原始、未压缩阵列执行PCA的基向量可以被接收。在一些实施例中,基向量可以未压缩存储。在其它实施例中,基向量可以连同其它毛发数据进行压缩。此外,在一些实施例中,接收到的基向量可以包括从在原始毛发数据上执行PCA产生的基向量,但在其它实施例中,接收到的基向量可以包括在PCA基向量的翻转或其用以将数据变换回原始基础维度的其它基向量。
[0067]在框704中,毛发压缩数据可以被接收。压缩毛发数据的格式可以根据所使用的压缩技术而变化。在一些实施例中,压缩的毛发数据可以包括未压缩的字典,数据头,参照表或用于解压与重建的类似信息。在其它实施例中,未压缩的数据头可以指明所用压缩技术以便确定要使用的解压方法。
[0068]在框706中,对压缩数据执行无损解压。在一些实施例中,毛发数据可以已经被使用无损压缩技术进行压缩。解压缩压缩后的数据可包括执行已知的无损压缩技术的逆运算。例如,一些无损压缩技术可以生成一个字典或参照表,数据可以通过映射的压缩数据到字典或表中的条目被重建。在数据被处理时,其他的例子可以涉及解压缩过程中产生参照表或字典,并且参照表或字典可用于解压缩随后的数据部分(例如,作为在Lempel-Ziv-Welch等)。在其它实施例中,数据可以包括指令集或其他识别信息,指明数据如何被压缩(例如,键、表、引用、方法等)。
[0069]在框708中,解压缩后的毛发数据可以被映射到在原来的基础维度以重构毛发数据参数阵列。在一些实施例中,映射可以包括将解压缩的毛发数据返回到压缩前的毛发数据的原始格式。值得注意的是,重建与映射数据高度依赖于数据如何被数字化、是否被转换成一种新的基础、数字化期间是否使用参照值、在压缩步骤中是否使用了标量以及其他多种压缩自定义。本领域的普通技术人员,然而,将容易识别可以在一个特定的实例中使用以便重建数据并映射它放回原始格式和维度的逆步骤。
[0070]在一个实施例中,在数字化期间所使用的参考值可以被映射到真实数据值(虽然比原始数据的精度更低)。例如,通过在使用参照值的地方插入实际数据值,使用表或映射重建毛发数据阵列。同样,对应于毛发数据的未数字化的维度(例如,那些没有分配任何位数字化的维度),空值参数可以出现在毛发数据参数重建的阵列,以及那些空值参数可被填充有被存储数字化一部分的真实数据值(例如,因为没有位被分配,在某一维度上的所有的毛发数据点可给予相同的数据值)。重建能够生成与执行PCA或压缩之前的原始毛发数据具有相同数目参数的毛发数据阵列。
[0071]与毛发数据阵列的重建并行或之后,数据值可能会返回到其原来的基础或维度(例如,在框708中)。在一个实施例中,所有数据被变换到由PCA得到新的维度,毛发数据的重建的阵列可被变换回原来的基础上(例如,使用逆变换)。在另一些实施例中,某些数据在新的基向量存储参照,被压缩数据可以被转移回原始基础后修改回原始基础。在其它实施例中,某些参数可被变换回原来的基础上,而其他参数可以并不需要再变换(例如,由PCA确定新基向量的某些值没有变化)。实际上,PCA和新基向量的任何冲击可以通过多种方式予以撤消,并且根据需要基于特定的实现中的数据可被恢复到原来的基础。解压缩就可以还原被压缩的毛发数据到原始格式,每个毛发都具有多个参数。
[0072]图8说明了典型的未压缩的动画毛发。如图所示,动画毛发可包括显著细节,每根毛发是独特的,并且分别予以定义。例如,发梢840描绘了每根毛发可具有独特的属性,包括例如,不同位置的特性(例如,坐标,控制点等)。此外,在图8所示的例子,图8示出动画角色的一个发型可以包括各种毛发曲率类型,包括,例如,直发、卷发,等。颜色和阴影的变化也可以存在于一个动画角色的发型。有了这样的精细的细节,对应于图8所示的例子中的毛发数据就相当大。例如,表征所描述例子的数据包含220MB。在每一帧里,需要复制大约相同数量的数据,未压缩的毛发数据如此之大以至于如果没有压缩的话就没有希望存储它。
[0073]图9示出以大约5:1的比例压缩后的典型的动画毛发,并使用本文所讨论的各种处理解压。与220MB大小的未压缩毛发数据相比,图9所示的例子中压缩后的毛发数据总共45MB。每一帧发型节省175MB的话,相对于在需要的时候重新处理(例如,重新生成完整的毛发几何图形),存储压缩后的数据就变得更具有经济价值与更实用。值得注意的是,在某些情况下,数字化误差或压缩损失可以是最小的。例如,在图9所示的例子中的发梢942实质上与图8所示例子中发梢840相似。因此,毛发数据压缩可以导致在明显毛发细节上损失小。如上所讨论的,本文中讨论的各种压缩方法可以有效地保存毛发数据信息,同时仍然实现有意义的压缩。
[0074]图10示出以大约20:1的比例,使用本文所讨论的各种方法解压后典型的动画毛发。与220MB的未被压缩的毛发数据相比,图10所示例子中压缩后的毛发数据包含12MB。每一帧发型节省208MB的话,以这样的比例压缩会在毛发数据存储大小产生戏剧性的差异。相比于图9的5:1比率,图10例子中20:1比率包括更明显的数字化误差或压缩损失。例如,图10所示例子中发梢1044变得更均匀,更紧密组合在一起,失去了如图8所示例子中发梢840的独特的分布与毛发曲率。同样地,图10所示例子中毛发的主体相比图8中未压缩的版本的毛发主体包括更少的曲率差异(表现得更均匀地直)。因此,选择不同的压缩率可允许定制本文所讨论的各种压缩过程,这些改变取决于,例如,期望的数据大小,期望的数据保真度或其他。
[0075]图11描绘了示例性计算系统1100被配置用以执行上述处理方法中的任何一个。在这种情况下,计算系统1100可包括,例如,一个处理器(它可以具有多个内核)、内存、存储器与输入/输出设备(例如,显示器、键盘、磁盘驱动器、网络连接等)。然而,计算系统1100可包括电路系统或其它用于执行处理的一些或所有方面专门的硬件。在某些操作设置中,计算系统1100可以被配置为包括一个或多个单元的系统,其中的每一个单元通过软件、硬件或者某些组合,被配置为执行过程的某些方面。
[0076]图11描绘了具有用于执行上述处理的若干组件的示例性的计算系统1100。主系统1102包括具有输入/输出(“I/O”)部分1106的主板1104,一个或多个中央处理单元(“CPU”)1108(它可以具有多个内核),以及存储器1110,其可以具有,与之相连的闪存卡1112。输入/输出部分1106连接到显示器1124、键盘1114、磁盘存储单元1116与媒介驱动单元1118,媒介驱动单元1118可以读/写的计算机可读媒介1120,其中可以包含程序1122或数据。
[0077]至少基于上述处理的结果的某些值可以被保存以供后续使用。此外,非暂存态计算机可读存储媒介可以被用于存储(例如,明白地体现),用于使用计算机执行上述、任何一个流程的一个或多个计算机程序。计算机程序可以被写入,例如,在一般的通用编程语言(例如,用Pascal,C,C++)或某些专门应用特定的语言。
[0078]这里呈现多种典型实施例。这些例子被用来做非限定的参考。它们被用来举例说明这项公开技术有更为广泛的适用方面。在没有背离各种实施例的精神与范围的前提下,可以做多种改变而且可以使用等同来替换。另外,需要做些改变以适应特定的环境、材质、组成物质、过程、工艺、步骤、对象、理念以及各种实施例的范围。能够被本领域熟练的技术人员所认可,在没有背离各种实施例的范围与精神的前提下,这里所描绘、举例说明的每一实施例具有的可分离的成分与功能,可以很容易的分离或与其他实施例的功能进行组合。
【主权项】
1.一种用于压缩表征计算机生成影像场景中动画毛发数据的计算机实现的方法,所述方法包括: 接收表征动画毛发的数据,其中所述数据包括毛发数据参数的多个阵列; 使用主成分分析法,为所述毛发数据参数的多个阵列确定一组新的基向量;其中所述新的基向量的数目对应于阵列中毛发数据参数的数目; 根据所述新的基向量的相对长度,确定对应于所述一组新的基向量的维度的位分配,其中最大长度的新的基向量比长度较短的新的基向量被分配更多的位; 根据所述位分配,在对应于所述一组新的基向量的维度上,数字化毛发数据; 位打包所述数字化毛发数据; 压缩所述位打包、数字化毛发数据,其中,所述压缩是无损的;并且 存储所述压缩的毛发数据。
2.如权利要求1所述的计算机实现的方法,其中毛发数据参数所述的多个阵列包括与非均匀理性的基本样条函数控制点、毛发颜色与毛发半径相对应的数据。
3.如权利要求1所述的计算机实现的方法,进一步包括: 为毛发数据至少一个阵列生成至少一个附加的毛发
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1