CN105513099B - 一种骨骼动画数据的压缩方法及装置 - Google Patents
一种骨骼动画数据的压缩方法及装置 Download PDFInfo
- Publication number
- CN105513099B CN105513099B CN201510847528.7A CN201510847528A CN105513099B CN 105513099 B CN105513099 B CN 105513099B CN 201510847528 A CN201510847528 A CN 201510847528A CN 105513099 B CN105513099 B CN 105513099B
- Authority
- CN
- China
- Prior art keywords
- component
- transform component
- sampling instant
- transform
- interpolation
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/007—Transform coding, e.g. discrete cosine transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
Abstract
本发明公开了一种骨骼动画数据的压缩方法及装置。所述方法包括:从源骨骼动画数据中获取每一采样时刻的骨骼变换矩阵,并将获取的骨骼变换矩阵拆分为变换分量;针对每一采样时刻,依据该采样时刻之前的变换分量以及该采样时刻之后的变换分量,计算该采样时刻的变换分量插值,并依据该采样时刻的变换分量、该变换分量对应的插值与偏差阈值,确定该采样时刻的变换分量为非关键变换分量或关键变换分量;剔除非关键变换分量。本发明提供的技术方案,剔除通过每一采样时刻的变换分量、该采样时刻的变换分量对应的插值以及偏差阈值确定非关键变换分量,在采用高采样率避免骨骼动画的动作失真的情况下,对骨骼动画数据进行压缩,以减小骨骼动画数据量。
Description
技术领域
本发明涉及计算机图形技术领域,尤其涉及一种骨骼动画数据的压缩方法及装置。
背景技术
现代三维大型多人在线(3DMMO,3D Massively Multiplayer Online)游戏中使用大量了的人物角色,每个人物角色动画都包含大量骨骼动画数据,每根骨骼在每一时刻都对应一个变换矩阵,记录着该骨骼的位置、朝向、缩放信息,假如一个人物角色有M根骨骼,动画序列长度为N帧,则该角色动画数据需要M×N帧进行存储,数据量过大会导致游戏程序安装包尺寸臃肿,延长了安装包的下载时间、安装时间以及游戏程序的更新时间。
角色动画存储在3DMAX/MAYA等创作工具中,在导出动画数据时,导出的采样频率越大,动画数据量也越大,动画效果越逼真。相反,当导出时的采样频率越小,动画数据量越小。现有技术中,在创作工具中以较低的导出采样率fps(fps≤30,一般fps=15)导出动画资源,以减小动画数据量,并以插值的方法计算采样点之间的数据。但是,现有技术中降低导出采样率在减少动画数据量的同时,可能会导致动作失真和变形,影响动画效果。例如,当骨骼动画的每一帧都是非线性数据时,插值计算的结果将完全偏离原始数据。
发明内容
本发明提供一种骨骼动画数据的压缩方法及装置,在采用高采样率保证骨骼动画的动作不失真的情况下,对骨骼动画数据进行压缩,以减小骨骼动画数据量。
一方面,本发明提供了一种骨骼动画数据的压缩方法,包括:
从源骨骼动画数据中获取每一采样时刻的骨骼变换矩阵,并将获取的骨骼变换矩阵拆分为变换分量;
针对每一采样时刻,依据该采样时刻之前的变换分量以及该采样时刻之后的变换分量,计算该采样时刻的变换分量插值,并依据该采样时刻的变换分量、该变换分量对应的插值与偏差阈值,确定该采样时刻的变换分量为非关键变换分量或关键变换分量;
剔除非关键变换分量。
另一方面,本发明还公开了一种骨骼动画数据的压缩装置,包括:
分量获取模块,用于从源骨骼动画数据中获取每一采样时刻的骨骼变换矩阵,并将获取的骨骼变换矩阵拆分为变换分量;
分量识别模块,用于针对每一采样时刻,依据该采样时刻之前的变换分量以及该采样时刻之后的变换分量,计算该采样时刻的变换分量插值,并依据该采样时刻的变换分量、该变换分量对应的插值与偏差阈值,确定该采样时刻的变换分量为非关键变换分量或关键变换分量;
分量剔除模块,用于剔除非关键变换分量。
本发明提供的技术方案,根据每一采样时刻之前的变换分量以及该采样时刻之后的变换分量,计算该采样时刻的变换分量插值,剔除通过该采样时刻的变换分量、该变换分量对应的插值以及偏差阈值确定非关键变换分量,在采用高采样率避免骨骼动画的动作失真的情况下,对骨骼动画数据进行压缩,以减小骨骼动画数据量。
附图说明
图1是本发明实施例一提供的一种骨骼动画数据的压缩方法的流程示意图;
图2是本发明实施例二提供的一种骨骼动画数据的压缩方法的流程示意图;
图3是本发明实施例四提供的一种骨骼动画数据的压缩装置的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1是本发明实施例一提供的一种骨骼动画数据的压缩方法的流程示意图。参见图1,骨骼动画数据的压缩方法包括步骤S110-S130:
S110、从源骨骼动画数据中获取每一采样时刻的骨骼变换矩阵,并将获取的骨骼变换矩阵拆分为变换分量。
其中,源骨骼动画数据是存储在动画制作工具中骨骼变换矩阵的原始集合,每根骨骼在每一时刻都对应一个骨骼变换矩阵,骨骼变换矩阵记录着骨骼的位置、朝向和缩放信息。
当从动画制作工具中以一定采样率获取了每一骨格每一时刻的骨骼变换矩阵之后,将骨骼变换矩阵拆分为多个变换分量。具体的,变换分量可以包括平移分量、旋转分量和缩放分量,其中旋转分量可以由归一化四元数表示。其中,平移分量可以用三维向量表示,旋转变量可以用一个四元数表示。四元数是简单的超复数,即由实数加上三个虚数单位i、j、k组成,上述三个虚数单位具有如下的关系:i^2=j^2=k^2=-1,i^0=j^0=k^0=1,每个四元数都是1、i、j和k的线性组合,四元数一般可表示为a+bk+cj+di,其中a、b、c、d是实数。上述四元数可以通过归一化的方式表示,归一化作为一种简化计算的方式,是将有量纲的表达式经过变换转换为无量纲的表达式。
S120、针对每一采样时刻,依据该采样时刻之前的变换分量以及该采样时刻之后的变换分量,计算该采样时刻的变换分量插值,并依据该采样时刻的变换分量、该变换分量对应的插值与偏差阈值,确定该采样时刻的变换分量为非关键变换分量或关键变换分量。
构建骨骼动画时,以一定的采样率对源骨骼动画数据进行采样,并将采样后的骨骼动画数据作为构建骨骼动画的数据帧。示例性的,采样率一般为15帧/s,则从源骨骼动画数据中每隔1s从源骨骼动画数据中采样15帧数据。然而,本发明中,骨骼变换矩阵是以大于15帧/s的采样率从源骨骼动画数据中导出的。高采样率能够避免骨骼动画的动作失真。
在按照高采样率获取骨骼变换矩阵以及拆分后的变换分量之后,根据该采样时刻之前以及该采样时刻之后的变换分量计算该采样时刻的变换分量插值,可以计算该采样时刻的变换分量和变化分量插值之间的差值,并根据差值与预先设置的偏差阈值之间的大小关系,判断该采样时刻的变换分量是否是关键变换分量。若该采样时刻的变换分量不是关键变换分量,则该采样时刻的变换分量为非关键变换分量。
S130、剔除非关键变换分量。
当经过步骤S120之后,变换分量被划分为关键变换分量以及非关键变换分量,剔除所有的非关键变换分量,保留所有的关键变换分量,并采用所有的关键变换分量构建骨骼动画,在压缩骨骼动画数据的同时,避免了骨骼动画动作的失真。
本发明实施例提供的技术方案,根据每一采样时刻之前的变换分量以及该采样时刻之后的变换分量,计算该采样时刻的变换分量插值,剔除通过该采样时刻的变换分量、该变换分量对应的插值以及偏差阈值确定非关键变换分量,在采用高采样率避免骨骼动画的动作失真的情况下,对骨骼动画数据进行压缩,以减小骨骼动画数据量。
实施例二
本实施例在实施例一的基础上提供了一种新的骨骼动画数据的压缩方法。图2是本发明实施例二提供的一种骨骼动画数据的压缩方法的流程示意图。参考图2,本实施例提供的骨骼动画数据的压缩方法包括步骤S210-S280:
S210、从源骨骼动画数据中获取每一采样时刻的骨骼变换矩阵,并将获取的骨骼变换矩阵拆分为变换分量。
通过高采样率对源骨骼动画数据进行采集的数据帧中,将拆分得到的初始采样时刻以及最终采样时刻对应的变换分量均确定为关键变换分量。
S220、将相邻的两关键变换分量,以及所述两关键变换分量之间的待定变换分量按照采样时刻依次排序,形成目标变量序列。
在本实施例中,将除了关键变换分量和非关键变换分量以外的变换分量统称为待定变换分量,即,待定变换分量可能是关键变换分量,也可能是非关键变换分量的变换分量。如,在对变换分量进行数据压缩的初始步骤中,除初始采样时刻以及最终采样时刻对应的变换分量外,其他变换分量均为待定变换分量。
S230、依据目标变量序列的首位变换分量、尾位变换分量、首位变换分量的采样时刻以及尾位变换分量的采样时刻,计算所述目标变量序列包含的中部变换分量的插值。
其中,首位变换分量指的是目标变量序列中第一个变换分量,尾位变换分量指的是目标变量序列中最后一个变换分量,中部变换分量指的是除首位变换分量和尾位变换分量以外,目标变量序列包含的变换分量。在计算目标变量序列包含的中部变换分量的插值时,可采用线性插值。
该技术方案中,进一步地,步骤S230具体可以包括:依据首位变换分量的采样时刻、尾位变换分量的采样时刻以及所述中部变换分量的采样时刻,计算所述中部变换分量的插值系数;依据所述中部变换分量的插值系数、中部变换分量、尾位变换分量以及尾位变换分量的采样时刻,计算所述中部变换分量的插值,或者依据所述中部变换分量的插值系数、中部变换分量、首位变换分量以及首位变换分量的采样时刻,计算所述中部变换分量的插值。
示例性的,假设目标变量序列的首位变换分量为采样时刻ti的变换分量di,尾位变换分量为采样时刻ti的变换分量di,中部变换分量为采样时刻tk的变换分量dk,通过线性插值得到采样时刻tk的变换分量对应的插值Dk,其中,0≤i≤k≤j,则依据首位变换分量的采样时刻、尾位变换分量的采样时刻以及所述中部变换分量的采样时刻,计算的中部变换分量的插值系数为:或者
依据中部变换分量的插值系数中部变换分量dk、尾位变换分量dj以及尾位变换分量的采样时刻tj,计算中部变换分量的插值Dk,即
还可以依据中部变换分量的插值系数中部变换分量dk、首位变换分量di以及首位变换分量的采样时刻ti,计算中部变换分量的插值Dk,即
S240、计算中部变换分量与对应的插值之间的差值。
中部变换分量若为采样时刻tk的变换分量dk,且该中部变换分量的插值为Dk,则该中部变换分量dk与其对应的插值Dk之间的差值可以是Ak=|dk-Dk|。
S250、若计算得到的差值的最大值大于偏差阈值,执行步骤S260,否则,执行步骤S270。
其中,偏差阈值是根据构建骨骼动画时的动画效果进行设定的。示例性的,骨骼动画数据压缩方法中,可以使用的变换分量偏差阈值为:平移分量的偏差阈值0.001、旋转分量的偏差阈值0.00075以及缩放分量的偏差阈值0.00001。
若中部变换分量确定为非关键变换分量时,该中部变换分量在构建骨骼动画为非必须的数据帧,若中部变换分量为非关键变换分量时,当构建骨骼动画时没有该关键变换分量,骨骼动画会出现动画中动作失真的情况。
步骤S260,将除尾位变换分量外的目标变量序列,作为新的目标变量序列,并返回执行步骤S230,其中新的目标变量序列包括至少一个中部变换分量。
进一步地,在步骤S260中,在所述目标变量序列包含一个中部变化分量时,若计算得到的差值大于偏差阈值,则将包含的中部变换分量确定为关键变换分量;否则,将包含的中部变换分量确定为非关键变换分量,将所述目标变量序列的尾位变换分量确定为关键变换分量。
需要说明的是,在将包含的中部变换分量确定为关键变换分量或非关键变换分量后,还返回执行步骤220,即,重新将相邻的两关键变换分量之间的待定变换分量按照采样时刻依次排序,形成新的目标变量序列,其中新的目标变量序列包括至少一个待定变换分量。
S270、将中部变换分量确定为非关键变换分量。
S280、剔除非关键变换分量。
本发明实施例提供的技术方案,根据每一采样时刻之前的变换分量以及该采样时刻之后的变换分量,计算该采样时刻的变换分量插值,剔除通过该采样时刻的变换分量、该变换分量对应的插值以及偏差阈值确定非关键变换分量,在采用高采样率避免骨骼动画的动作失真的情况下,对骨骼动画数据进行压缩,以减小骨骼动画数据量。
实施例三
本实施例提供的骨骼动画数据的压缩方法对各个变换分量进行骨骼动画数据进行压缩,本发明中的骨骼变换矩阵的采样时可以采用较高的采样率,即25~30帧/s。为了更加清楚地阐述本发明的骨骼动画数据压缩方法,本实施例中对一根骨骼的源骨骼动画数据以较小的采样率进行解释说明,其中,采样率fps=5帧/s,即一秒钟采样5帧骨骼变换矩阵。本实施例提供的骨骼动画数据的压缩方法中,在将骨骼变换矩阵拆分为平移分量、旋转分量以及缩放分量之后,分别对各个变换分量采样时刻T={t0,t1,t2,t3,t4}以及采样时刻对应的变换分量d={d0,d1,d2,d3,d4}进行步骤S301-S307的处理:
S301、将相邻的两关键变换分量d0、d4,以及两关键变换分量之间的待定变换分量d1~d3按照采样时刻依次排序,形成目标变量序列{d0,d1,d2,d3,d4},依据首位变换分量d0的采样时刻t0、尾位变换分量d4的采样时刻t4以及中部变换分量d1~d3的采样时刻t1~t3,计算中部变换分量的插值系数A1~A3,依据中部变换分量的插值系数、中部变换分量、尾位变换分量以及尾位变换分量的采样时刻,计算中部变换分量的插值D1~D3,计算中部变换分量与对应的插值之间的差值E1~E3,若E1~E3中的最大值E小于偏差阈值e,则将中部变换分量d1~d3确定为非关键变换分量,并执行步骤S307,否则,执行步骤S302。
S302、将除尾位变换分量d4外的目标变量序列{d0,d1,d2,d3},作为新的目标变量序列。依据首位变换分量d0的采样时刻t0、尾位变换分量d3的采样时刻t3以及中部变换分量d1和d2的采样时刻t1和t2,计算中部变换分量的插值系数A1和A2,依据中部变换分量的插值系数、中部变换分量、尾位变换分量以及尾位变换分量的采样时刻,计算中部变换分量的插值D1和D2,计算中部变换分量与对应的插值之间的差值E1和E2,若E1和E2中的最大值E小于偏差阈值e,则将中部变换分量d1和d2确定为非关键变换分量,并执行步骤S307,否则,执行步骤S303。
S303、将除尾位变换分量d3外的目标变量序列{d0,d1,d2},作为新的目标变量序列。依据首位变换分量d0的采样时刻t0、尾位变换分量d2的采样时刻t2以及中部变换分量d1的采样时刻t1,计算中部变换分量的插值系数A1,依据中部变换分量的插值系数、中部变换分量、尾位变换分量以及尾位变换分量的采样时刻,计算中部变换分量的插值D1,计算中部变换分量与对应的插值之间的差值E1,若E1小于偏差阈值e,则将中部变换分量d1确定为非关键变换分量,并将尾位变换分量d2确定为关键变换分量,并继续执行步骤S306,否则,将中部变换分量d1确定为关键变换分量,执行步骤S304。
S304、将相邻的两关键变换分量d1、d4,以及两关键变换分量之间的待定变换分量d2和d3按照采样时刻依次排序,形成目标变量序列{d1,d2,d3,d4},依据首位变换分量d1的采样时刻t1、尾位变换分量d4的采样时刻t4以及中部变换分量d2和d3的采样时刻t2和t3,计算中部变换分量的插值系数A2和A3,依据中部变换分量的插值系数、中部变换分量、尾位变换分量以及尾位变换分量的采样时刻,计算中部变换分量的插值D2和D3,计算中部变换分量与对应的插值之间的差值E2和E3,若E2和E3中的最大值E小于偏差阈值e,则将中部变换分量d2和d3确定为非关键变换分量,并执行步骤S307,否则,执行步骤S305。
S305、将除尾位变换分量d4外的目标变量序列{d1,d2,d3},作为新的目标变量序列。依据首位变换分量d1的采样时刻t1、尾位变换分量d3的采样时刻t3以及中部变换分量d2的采样时刻t2,计算中部变换分量的插值系数A2,依据中部变换分量的插值系数、中部变换分量、尾位变换分量以及尾位变换分量的采样时刻,计算中部变换分量的插值D2,计算中部变换分量与对应的插值之间的差值E2,若E2小于偏差阈值e,则将中部变换分量d2确定为非关键变换分量,并将尾位变换分量d3确定为关键变换分量,执行步骤S307,否则,将中部变换分量d2确定为关键变换分量,执行步骤S306。
S306、将相邻的两关键变换分量d2、d4,以及两关键变换分量之间的待定变换分量d3,形成目标变量序列{d2,d3,d4},依据首位变换分量d2的采样时刻t2、尾位变换分量d4的采样时刻t4以及中部变换分量d3的采样时刻t3,计算中部变换分量的插值系数A3,依据中部变换分量的插值系数、中部变换分量、尾位变换分量以及尾位变换分量的采样时刻,计算中部变换分量的插值D3,计算中部变换分量与对应的插值之间的差值E3,若E3小于偏差阈值e,则将中部变换分量d3确定为非关键变换分量,执行步骤S307,否则,将中部变换分量d3确定为关键变换分量,执行步骤S307。
S307、剔除非关键变换分量。
本发明实施例提供的技术方案,通过每一采样时刻的变换分量以及该采样时刻之后的变换分量,计算该采样时刻的变换分量插值,并通过变换分量插值和该采样时刻的变换分量之间的差值与预设的偏差阈值的关系,确定该采样时刻的变换分量是否为需要剔除的非关键变换分量,在采用高采样率保证骨骼动画的动作不失真的情况下,对骨骼动画数据进行压缩,减小骨骼动画数据量。
实施例四
图3是本发明实施例四提供的一种骨骼动画数据的压缩装置的结构示意图。骨骼动画数据的压缩装置,包括:分量获取模块40、分量识别模块41以及分量剔除模块42。
其中,分量获取模块40用于从源骨骼动画数据中获取每一采样时刻的骨骼变换矩阵,并将获取的骨骼变换矩阵拆分为变换分量。具体的,变换分量可以包括平移分量、旋转分量和缩放分量,其中旋转分量由归一化四元数表示。
分量识别模块41用于针对每一采样时刻,依据该采样时刻之前的变换分量以及该采样时刻之后的变换分量,计算该采样时刻的变换分量插值,并依据该采样时刻的变换分量、该变换分量对应的插值与偏差阈值,确定该采样时刻的变换分量为非关键变换分量或关键变换分量。分量剔除模块42用于剔除非关键变换分量。
进一步地,分量识别模块41包括:序列形成单元、插值计算单元、差值计算单元以及分量识别单元。
其中,序列形成单元用于将相邻的两关键变换分量,以及所述两关键变换分量之间的待定变换分量按照采样时刻依次排序,形成目标变量序列。插值计算单元用于依据目标变量序列的首位变换分量、尾位变换分量、首位变换分量的采样时刻以及尾位变换分量的采样时刻,计算所述目标变量序列包含的中部变换分量的插值。差值计算单元用于计算中部变换分量与对应的插值之间的差值。分量识别单元用于若计算得到的差值的最大值大于偏差阈值,则将除尾位变换分量外的目标变量序列,作为新的目标变量序列,并重新调用所述插值计算单元依据目标变量序列的首位变换分量、尾位变换分量、首位变换分量的采样时刻以及尾位变换分量的采样时刻,计算新的目标变量序列包含的中部变换分量的插值,其中新的目标变量序列包括至少一个中部变换分量;若否,则将中部变换分量确定为非关键变换分量。
进一步地,在所述目标变量序列包含一个中部变化分量时,分量识别单元具体可以用于:若计算得到的差值大于偏差阈值,则将包含的中部变换分量确定为关键变换分量,并重新调用序列形成单元,将相邻的两关键变换分量,以及所述两关键变换分量之间的待定变换分量按照采样时刻依次排序,形成目标变量序列;否则,将包含的中部变换分量确定为非关键变换分量,并将所述目标变量序列的尾部变换分量确定为关键变换分量,且重新调用序列形成单元,将相邻的两关键变换分量,以及所述两关键变换分量之间的待定变换分量按照采样时刻依次排序,形成目标变量序列。
进一步地,本技术方案中提供的骨骼动画数据的压缩装置中的插值计算单元具体可以包括:插值系数子单元和插值计算子单元。其中,插值系数子单元用于依据首位变换分量的采样时刻、尾位变换分量的采样时刻以及所述中部变换分量的采样时刻,计算所述中部变换分量的插值系数;插值计算子单元用于依据所述中部变换分量的插值系数、中部变换分量、尾位变换分量以及尾位变换分量的采样时刻,计算所述中部变换分量的插值;或者,依据所述中部变换分量的插值系数、中部变换分量、首位变换分量以及首位变换分量的采样时刻,计算所述中部变换分量的插值。
本实施例提供的骨骼动画数据的压缩装置,与本发明任意实施例所提供的骨骼动画数据的压缩方法属于同一发明构思,可执行本发明任意实施例所提供的骨骼动画数据的压缩方法,具备执行骨骼动画数据的压缩方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的骨骼动画数据的压缩方法。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许变更或修饰等,凡在本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种骨骼动画数据的压缩方法,其特征在于,包括:
从源骨骼动画数据中获取每一采样时刻的骨骼变换矩阵,并将获取的骨骼变换矩阵拆分为变换分量;
针对每一采样时刻,依据该采样时刻之前的变换分量以及该采样时刻之后的变换分量,计算该采样时刻的变换分量插值,并计算该采样时刻的变换分量和变换分量插值之间的差值,依据该差值与偏差阈值之间的大小关系,确定该采样时刻的变换分量为非关键变换分量或关键变换分量;
剔除非关键变换分量。
2.根据权利要求1所述的方法,其特征在于,针对每一采样时刻,依据该采样时刻之前的变换分量以及该采样时刻之后的变换分量,计算该采样时刻的变换分量插值,并计算该采样时刻的变换分量和变换分量插值之间的差值,依据该差值与偏差阈值之间的大小关系,确定该采样时刻的变换分量为非关键变换分量或关键变换分量,包括:
步骤A:将相邻的两关键变换分量,以及所述两关键变换分量之间的待定变换分量按照采样时刻依次排序,形成目标变量序列;
步骤B:依据目标变量序列的首位变换分量、尾位变换分量、首位变换分量的采样时刻以及尾位变换分量的采样时刻,计算所述目标变量序列包含的中部变换分量的插值;
步骤C:计算中部变换分量与对应的插值之间的差值;
步骤D:若计算得到的差值的最大值大于偏差阈值,则将除尾位变换分量外的目标变量序列,作为新的目标变量序列,并返回执行步骤B,其中新的目标变量序列包括至少一个中部变换分量;若否,则将中部变换分量确定为非关键变换分量。
3.根据权利要求2所述的方法,其特征在于,在所述目标变量序列包含一个中部变化分量时,步骤D具体包括:
若计算得到的差值大于偏差阈值,则将包含的中部变换分量确定为关键变换分量,并返回执行步骤A;否则,将包含的中部变换分量确定为非关键变换分量,并将所述目标变量序列的尾位变换分量确定为关键变换分量,且返回执行步骤A。
4.根据权利要求3所述的方法,其特征在于,步骤B具体包括:
依据首位变换分量的采样时刻、尾位变换分量的采样时刻以及所述中部变换分量的采样时刻,计算所述中部变换分量的插值系数;
依据所述中部变换分量的插值系数、中部变换分量、尾位变换分量以及尾位变换分量的采样时刻,计算所述中部变换分量的插值;或者,依据所述中部变换分量的插值系数、中部变换分量、首位变换分量以及首位变换分量的采样时刻,计算所述中部变换分量的插值。
5.根据权利要求1所述的方法,其特征在于,所述变换分量包括平移分量、旋转分量和缩放分量,其中所述旋转分量由归一化四元数表示。
6.一种骨骼动画数据的压缩装置,其特征在于,包括:
分量获取模块,用于从源骨骼动画数据中获取每一采样时刻的骨骼变换矩阵,并将获取的骨骼变换矩阵拆分为变换分量;
分量识别模块,用于针对每一采样时刻,依据该采样时刻之前的变换分量以及该采样时刻之后的变换分量,计算该采样时刻的变换分量插值,并计算该采样时刻的变换分量和变换分量插值之间的差值,依据该差值与偏差阈值之间的大小关系,确定该采样时刻的变换分量为非关键变换分量或关键变换分量;
分量剔除模块,用于剔除非关键变换分量。
7.根据权利要求6所述的装置,其特征在于,分量识别模块包括:
序列形成单元,用于将相邻的两关键变换分量,以及所述两关键变换分量之间的待定变换分量按照采样时刻依次排序,形成目标变量序列;
插值计算单元,用于依据目标变量序列的首位变换分量、尾位变换分量、首位变换分量的采样时刻以及尾位变换分量的采样时刻,计算所述目标变量序列包含的中部变换分量的插值;
差值计算单元,用于计算中部变换分量与对应的插值之间的差值;
分量识别单元,用于若计算得到的差值的最大值大于偏差阈值,则将除尾位变换分量外的目标变量序列,作为新的目标变量序列,并重新调用所述插值计算单元依据目标变量序列的首位变换分量、尾位变换分量、首位变换分量的采样时刻以及尾位变换分量的采样时刻,计算新的目标变量序列包含的中部变换分量的插值,其中新的目标变量序列包括至少一个中部变换分量;若否,则将中部变换分量确定为非关键变换分量。
8.根据权利要求7所述的装置,其特征在于,在所述目标变量序列包含一个中部变化分量时,所述分量识别单元具体用于:
若计算得到的差值大于偏差阈值,则将包含的中部变换分量确定为关键变换分量,并重新调用序列形成单元,将相邻的两关键变换分量,以及所述两关键变换分量之间的待定变换分量按照采样时刻依次排序,形成目标变量序列;否则,将包含的中部变换分量确定为非关键变换分量,并将所述目标变量序列的尾位变换分量确定为关键变换分量,且重新调用序列形成单元,将相邻的两关键变换分量,以及所述两关键变换分量之间的待定变换分量按照采样时刻依次排序,形成目标变量序列。
9.根据权利要求8所述的装置,其特征在于,插值计算单元具体包括:
插值系数子单元,用于依据首位变换分量的采样时刻、尾位变换分量的采样时刻以及所述中部变换分量的采样时刻,计算所述中部变换分量的插值系数;
插值计算子单元,用于依据所述中部变换分量的插值系数、中部变换分量、尾位变换分量以及尾位变换分量的采样时刻,计算所述中部变换分量的插值;或者,依据所述中部变换分量的插值系数、中部变换分量、首位变换分量以及首位变换分量的采样时刻,计算所述中部变换分量的插值。
10.根据权利要求6所述的装置,其特征在于,所述变换分量包括平移分量、旋转分量和缩放分量,其中所述旋转分量由归一化四元数表示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510847528.7A CN105513099B (zh) | 2015-11-27 | 2015-11-27 | 一种骨骼动画数据的压缩方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510847528.7A CN105513099B (zh) | 2015-11-27 | 2015-11-27 | 一种骨骼动画数据的压缩方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105513099A CN105513099A (zh) | 2016-04-20 |
CN105513099B true CN105513099B (zh) | 2019-01-22 |
Family
ID=55721056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510847528.7A Active CN105513099B (zh) | 2015-11-27 | 2015-11-27 | 一种骨骼动画数据的压缩方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105513099B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106327538B (zh) * | 2016-08-25 | 2019-09-20 | 深圳市创梦天地科技有限公司 | 一种二维骨骼动画压缩方法及装置 |
CN106296759B (zh) * | 2016-08-25 | 2019-09-20 | 深圳市创梦天地科技有限公司 | 一种三维骨骼动画压缩方法及装置 |
CN106856007A (zh) * | 2016-12-08 | 2017-06-16 | 微鲸科技有限公司 | 一种动画绘制方法 |
CN107730437A (zh) * | 2017-09-29 | 2018-02-23 | 上海开圣影视文化传媒股份有限公司 | 数据压缩存储方法及装置 |
CN108635849A (zh) * | 2018-05-15 | 2018-10-12 | 深圳市腾讯网络信息技术有限公司 | 一种动画数据压缩、解压缩方法及装置 |
CN110730000A (zh) * | 2018-07-17 | 2020-01-24 | 珠海格力电器股份有限公司 | 一种从采样数据中提取关键数据的方法及装置 |
CN112241005A (zh) * | 2019-07-19 | 2021-01-19 | 杭州海康威视数字技术股份有限公司 | 雷达探测数据的压缩方法、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102157008A (zh) * | 2011-04-12 | 2011-08-17 | 电子科技大学 | 一种大规模虚拟人群实时绘制方法 |
CN103927776A (zh) * | 2014-03-28 | 2014-07-16 | 浙江中南卡通股份有限公司 | 动画曲线优化方法 |
CN104077797A (zh) * | 2014-05-19 | 2014-10-01 | 无锡梵天信息技术股份有限公司 | 三维游戏动画系统 |
CN104732574A (zh) * | 2014-12-30 | 2015-06-24 | 北京像素软件科技股份有限公司 | 一种角色游戏的压缩装置及装置 |
-
2015
- 2015-11-27 CN CN201510847528.7A patent/CN105513099B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102157008A (zh) * | 2011-04-12 | 2011-08-17 | 电子科技大学 | 一种大规模虚拟人群实时绘制方法 |
CN103927776A (zh) * | 2014-03-28 | 2014-07-16 | 浙江中南卡通股份有限公司 | 动画曲线优化方法 |
CN104077797A (zh) * | 2014-05-19 | 2014-10-01 | 无锡梵天信息技术股份有限公司 | 三维游戏动画系统 |
CN104732574A (zh) * | 2014-12-30 | 2015-06-24 | 北京像素软件科技股份有限公司 | 一种角色游戏的压缩装置及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105513099A (zh) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105513099B (zh) | 一种骨骼动画数据的压缩方法及装置 | |
CN109741247A (zh) | 一种基于神经网络的肖像漫画生成方法 | |
CN110390704A (zh) | 图像处理方法、装置、终端设备及存储介质 | |
CN116109798B (zh) | 图像数据处理方法、装置、设备及介质 | |
CN108648548A (zh) | 一种脑神经外科虚拟手术训练系统 | |
CN109934826A (zh) | 一种基于图卷积网络的图像特征分割方法 | |
CN104658022B (zh) | 三维动画制作方法和装置 | |
CN109120936A (zh) | 一种视频图像的解码方法和装置 | |
CN111667005B (zh) | 一种采用rgbd视觉传感的人体交互系统 | |
CN111127610A (zh) | 一种点云数据三维可视化渲染方法与计算方法 | |
CN106228528A (zh) | 一种基于决策图与稀疏表示的多聚焦图像融合方法 | |
CN110533594A (zh) | 模型训练方法、图像重建方法、存储介质及相关设备 | |
CN107066979A (zh) | 一种基于深度信息和多维度卷积神经网络的人体动作识别方法 | |
CN110188667B (zh) | 一种基于三方对抗生成网络的人脸摆正方法 | |
CN113724354B (zh) | 基于参考图颜色风格的灰度图像着色方法 | |
CN108664465A (zh) | 一种自动生成文本方法以及相关装置 | |
CN110102051A (zh) | 游戏外挂的检测方法及装置 | |
CN110624244B (zh) | 游戏中脸部模型的编辑方法、装置和终端设备 | |
CN112221145A (zh) | 游戏脸模生成方法及装置、存储介质及电子设备 | |
CN110110402A (zh) | 基于二叉决策图的资源分配系统可达状态的快速求解方法 | |
Mole et al. | Growing self-organizing surface map: Learning a surface topology from a point cloud | |
CN103678888A (zh) | 一种基于欧拉流体模拟算法的心脏血液流动示意显示方法 | |
WO2023160074A1 (zh) | 一种图像生成方法、装置、电子设备以及存储介质 | |
CN111583141A (zh) | 一种虚拟现实图像增强方法、装置、设备及存储介质 | |
CN106504267B (zh) | 一种虚拟人运动数据关键帧抽取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |