CN111667544B - 动画数据压缩方法、装置、设备及存储介质 - Google Patents
动画数据压缩方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111667544B CN111667544B CN202010628600.8A CN202010628600A CN111667544B CN 111667544 B CN111667544 B CN 111667544B CN 202010628600 A CN202010628600 A CN 202010628600A CN 111667544 B CN111667544 B CN 111667544B
- Authority
- CN
- China
- Prior art keywords
- animation
- data
- track
- target
- channel
- 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
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
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种动画数据压缩方法、装置、设备及存储介质,属于计算机技术领域。所述方法包括:获取动画数据;对于目标动画轨道的轨道数据,对目标动画轨道的轨道数据进行曲线拟合处理;根据曲线拟合结果从目标动画轨道的动画帧数据中选取部分动画帧数据,得到目标动画轨道的筛选后轨道数据;对目标动画轨道的筛选后轨道数据按照n个动画通道分别进行位数压缩处理,得到n个动画通道分别对应的压缩后数据;将n个动画通道分别对应的压缩后数据进行合并,生成目标动画轨道的压缩后轨道数据。本申请实施例提供的技术方案中,通过曲线拟合删除动画帧,之后对动画轨道数据进行位数压缩处理,大幅提升了动画压缩率,提高了压缩方式结合度。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种动画数据压缩方法、装置、设备及存储介质。
背景技术
云游戏是以云计算为基础的游戏方式,游戏响应速度快,提升了用户体验。但是,云游戏运行时需要传输大量的游戏动画数据,带宽要求更高,传输的网络流量比较高。因此,需要对动画数据进行压缩。
传统的动画数据压缩方法,一般采用一种方式对动画数据进行压缩。例如,采用无损压缩的方式对动画数据进行压缩,将动画帧的信息直接存成多个浮点型数据以完成对动画数据的压缩。又例如,采用隔帧删除的方式对动画数据进行压缩,按照一定间隔删除一些动画帧,通过降低动画帧的数量完成对动画数据的压缩。
传统的动画数据压缩方法的压缩率低且压缩方式结合度差。
发明内容
本申请实施例提供了一种动画数据压缩方法、装置、设备及存储介质,提升了动画数据压缩率,提高了压缩方式结合度。
一方面,本申请实施例提供了一种动画数据压缩方法,所述方法包括:
获取动画数据,所述动画数据包括至少一个动画轨道的轨道数据,所述轨道数据包括位于所述动画轨道中的动画帧数据;
对于目标动画轨道的轨道数据,对所述目标动画轨道的轨道数据进行曲线拟合处理,根据曲线拟合结果从所述目标动画轨道的动画帧数据中选取部分动画帧数据,得到所述目标动画轨道的筛选后轨道数据;
对所述目标动画轨道的筛选后轨道数据按照n个动画通道分别进行位数压缩处理,得到所述n个动画通道分别对应的压缩后数据,所述n为正整数;
将所述n个动画通道分别对应的压缩后数据进行合并,生成所述目标动画轨道的压缩后轨道数据。
另一方面,本申请情实施例提供了一种动画数据压缩装置,所述装置包括:
动画获取模块,用于获取动画数据,所述动画数据包括至少一个动画轨道的轨道数据,所述轨道数据包括位于所述动画轨道中的动画帧数据;
曲线拟合模块,用于对于目标动画轨道的轨道数据,对所述目标动画轨道的轨道数据进行曲线拟合处理,根据曲线拟合结果从所述目标动画轨道的动画帧数据中选取部分动画帧数据,得到所述目标动画轨道的筛选后轨道数据;
位数压缩模块,用于对所述目标动画轨道的筛选后轨道数据按照n个动画通道分别进行位数压缩处理,得到所述n个动画通道分别对应的压缩后数据,所述n为正整数;
数据合并模块,用于将所述n个动画通道分别对应的压缩后数据进行合并,生成所述目标动画轨道的压缩后轨道数据。
另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述动画数据压缩方法。
再一方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述动画数据压缩方法。
还一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述动画数据压缩方法。
本申请实施例提供的技术方案可以带来如下有益效果:
通过曲线拟合的方法删除动画轨道数据中可被恢复的动画帧,得到筛选后的动画轨道数据,初步降低动画轨道数据量;之后对筛选后的动画轨道数据进行编码压缩,将多个动画通道对应的单位数据压缩合并为压缩后轨道数据中的一个单位数据,进一步降低动画轨道数据量,大幅提升了动画压缩率,并且在一个压缩方案中结合使用两种不同的压缩方式,提高了压缩方式结合度,可以有效降低动画数据的数据量以及相应的传输带宽要求。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的应用程序运行环境的示意图;
图2是本申请一个实施例提供的动画数据压缩方法的流程图;
图3是本申请另一个实施例提供的动画数据压缩方法的流程图;
图4示例性示出了一种曲线拟合的示意图;
图5示例性示出了一种针对全部动画通道数据进行压缩的示意图;
图6示例性示出了一种针对旋转轨道数据进行压缩的示意图;
图7示例性示出了一种针对部分动画通道数据进行压缩的示意图;
图8是本申请另一个实施例提供的动画数据压缩方法的流程图;
图9示例性示出了一种设置压缩策略的用户界面的示意图;
图10是本申请一个实施例提供的动画数据压缩装置的框图;
图11是本申请另一个实施例提供的动画数据压缩装置的框图;
图12是本申请一个实施例提供的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图1,其示出了本申请一个实施例提供的应用程序运行环境的示意图。该应用程序运行环境可以包括:终端10和服务器20。
终端10可以是诸如手机、平板电脑、游戏主机、电子书阅读器、多媒体播放设备、可穿戴设备、PC(Personal Computer,个人计算机)等电子设备。终端10中可以安装应用程序的客户端。
在本申请实施例中,上述应用程序可以是任何能够加载动画数据的应用程序。上述动画可以是由骨骼动画技术制作的骨骼动画。典型地,该应用程序为游戏应用程序,如多人在线战术竞技(Multiplayer Online Battle Arena,MOBA)游戏、大逃杀生存(BattleRoyale,BR)游戏、第三人称射击游戏(Third-Personal Shooting Game,TPS)、第一人称射击游戏(First-Person Shooting Game,FPS)和多人枪战类生存游戏,等等。当然,除了游戏应用程序之外,其它类型的应用程序中也可以加载动画数据。例如,虚拟现实(VirtualReality,VR)类应用程序、增强现实(Augmented Reality,AR)类应用程序、三维地图程序、军事仿真程序、社交类应用程序、互动娱乐类应用程序等,本申请实施例对此不作限定。另外,对于不同的应用程序来说,其所加载的动画数据也会有所不同,且相应的功能也会有所不同,这都可以根据实际需求预先进行配置,本申请实施例对此不作限定。可选地,终端10中运行有上述应用程序的客户端。在一些实施例中,上述应用程序是基于三维的虚拟环境引擎开发的应用程序,比如该虚拟环境引擎是Unity引擎或者Unreal引擎,该虚拟环境引擎能够构建三维的虚拟环境动画、虚拟对象动画和虚拟道具动画等,给用户带来更加沉浸式的应用体验。
服务器20用于为终端10中的应用程序的客户端提供后台服务。例如,服务器20可以是上述应用程序的后台服务器。服务器20可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。可选地,服务器20同时为多个终端10中的应用程序提供后台服务。
可选地,终端10和服务器20之间可通过网络30进行互相通信。
请参考图2,其示出了本申请一个实施例提供的动画数据压缩方法的流程图。该方法可应用于计算机设备中,所述计算机设备是指具备数据计算和处理能力的电子设备,如各步骤的执行主体可以是图1所示的应用程序运行环境中的终端10或者服务器20。该方法可以包括以下几个步骤(201~204)。
步骤201,获取动画数据。
上述动画数据可以是骨骼动画数据。骨骼动画是模型动画中的一种。在骨骼动画中,模型具有互相连接的“骨骼”组成的骨架结构,通过改变骨骼的朝向和位置来为模型生成动画。骨架由一系列具有层次关系的关节(骨骼)和关节链组成,是一种树结构,选择其中一个关节作为根关节,其它关节是根关节的子孙,可以通过平移和旋转根关节,移动并确定整个骨架在世界空间中的位置和方向。父关节运动能影响子关节运动,但子关节运动对父关节不产生影响,因此,平移或旋转父关节时,也会同时平移或旋转其所有子关节。不同的骨骼动画可以被结合到一起,比如,模型可以转动头部、射击并且同时也在走路。一些引擎可以实时操纵单个骨骼,这样就可以和环境更加准确地进行交互,模型可以俯身并向某个方向观察或射击,或者从地上的某个地方捡起一个东西。
动画数据包括至少一个动画轨道的轨道数据,轨道数据包括位于动画轨道中的动画帧数据。动画轨道是指位于动画对象上的点的运动路线,动画轨道的轨道数据包括位于动画对象上的点对应的所有动画帧数据。
以骨骼动画为例,一个动画轨道即为一根骨骼中的一个骨骼节点的运动路线。一个动画轨道的轨道数据包括一根骨骼中的骨骼节点对应的所有动画帧数据。可选地,一根骨骼中的一个骨骼节点对应一个动画轨道。可选地,骨骼节点包括头节点、尾节点以及关节节点。可选地,一个骨骼节点既是头节点,也是关节节点。可选地,一个骨骼节点既是尾节点,也是关节节点。可选地,骨骼节点之间具有父子关系,包括子骨骼节点和父骨骼节点。
上述动画帧是影像动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头。一个动画帧就是一幅静止的画面,连续的动画帧就形成动画,如电视图像等。动画帧的帧率(frames per second,fps)是在1秒钟时间里传输的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次。每一个动画帧都是静止的图像,快速连续地显示多个动画帧便形成了运动的假象。通过高的动画帧帧率可以得到更流畅、更逼真的动画。每秒钟帧数(fps)愈多,所显示的动作就会愈流畅。以骨骼动画为例,动画帧数据表示骨骼节点在该动画帧对应的时刻上在空间中的坐标点的信息。可选地,动画帧数据可以确定一个坐标点。动画帧数据中含有关键帧数据,关键帧是指动画中角色或者物体运动或变化中的关键动作所处的那一帧。关键帧是动画中用于体现动画角色关键动作的画面,记录有时间、节点的位移旋转缩放信息以及过渡插值的方式的一类动画帧。动画中关键帧的位置可以根据需要进行设置。关键帧与关键帧之间的动画帧可以由软件来创建,叫做过渡帧或者中间帧。例如,动画设计师可以根据动画场景设计每一秒动画的第1帧、第5帧以及第15帧的画面,则第1帧、第5帧以及第15帧为关键帧,而其他过渡帧对应的画面则可以利用计算机根据关键帧的位置、动作状态和时间来进行插值,得到关键帧之间的中间帧的动画数据。在本申请实施例中,动画轨道的轨道数据中可以只包括关键帧数据,也可以包括关键帧数据和过渡帧数据。动画轨道的轨道数据只包括关键帧数据时,过渡帧数据可以利用计算机根据关键帧数据插值得到,降低动画轨道的轨道数据量,后续对动画轨道的轨道数据中关键帧数据进行曲线拟合处理,可以删除一些可恢复的关键帧数据,进一步的减少了动画轨道的轨道数据量,能够有效提高压缩率。
可选地,每个动画轨道的轨道数据包括位移轨道数据、旋转轨道数据、缩放轨道数据中的一种或多种。位移轨道数据可以用于表示骨骼节点随着时间进行移动的距离。旋转轨道数据可以用于表示骨骼节点随着时间进行旋转的角度。缩放轨道数据可以用于表示骨骼节点随着时间进行放大或者缩小的倍数。
步骤202,对于目标动画轨道的轨道数据,对目标动画轨道的轨道数据进行曲线拟合处理,根据曲线拟合结果从目标动画轨道的动画帧数据中选取部分动画帧数据,得到目标动画轨道的筛选后轨道数据。
目标动画轨道是指位于动画对象上的任意一点的运动路线。以骨骼动画为例,目标动画轨道是指骨骼动画中包括的任意一个动画轨道,目标动画轨道对应的骨骼节点为目标骨骼节点。
曲线拟合处理是用连续曲线近似地刻画或比拟部分或者全部坐标点的坐标之间的函数关系的一种数据处理方法。可选地,上述拟合曲线的曲线类型包括但不限于以下任意一种:B样条曲线、Catmull_Rom曲线、Hermite Spline曲线。可选地,拟合曲线的数量可以是一条,也可以是多条。上述拟合曲线的数量以及曲线类型可以根据实际情况做出调整,本申请实施例对此不作限定。
曲线拟合结果是指上述目标动画轨道包括的动画帧数据对应的坐标点与上述拟合曲线的位置关系。以骨骼动画为例,上述目标动画轨道对应的动画帧数据反映目标骨骼节点在不同时刻的位置信息,通过目标动画轨道对应的动画帧数据可以确定目标骨骼节点在不同时刻在空间中的坐标点。上述位置关系包括动画帧数据确定的坐标点在拟合曲线上,或者动画帧数据确定的坐标点不在拟合曲线上。根据曲线拟合结果从目标动画轨道的动画帧数据中选取部分动画帧数据。在曲线拟合结果中,若存在多个动画帧数据确定的坐标点位于一条拟合曲线上,则从位于该拟合曲线上由多个动画帧数据确定的多个坐标点选取拟合曲线确定点。上述拟合曲线确定点是指可以确定唯一的拟合曲线的几个坐标点。可选地,拟合曲线确定点的数量最少为4个。上述选取部分动画帧数据是指选取上述拟合曲线确定点对应的动画帧数据,删除位于该拟合曲线上由多个动画帧数据确定的多个坐标点中除拟合曲线确定点之外的坐标点对应的动画帧数据。上述筛选后轨道数据是从目标动画轨道的动画帧数据中选取的部分动画帧数据。在上述曲线拟合结果中,上述选取的部分动画帧数据确定的坐标点在拟合曲线上,并且根据上述选取的部分动画帧数据确定的坐标点可以确定一条或者多条拟合曲线。上述未被选取的动画帧数据,即被删除的动画帧数据可以通过由上述选取的部分动画帧数据对应的拟合曲线复原。
步骤203,对目标动画轨道的筛选后轨道数据按照n个动画通道分别进行位数压缩处理,得到n个动画通道分别对应的压缩后数据,n为正整数。
动画通道用于表示位于动画对象上的点的参数信息。可选地,参数信息是位于动画对象上的点运动的运动变换方向。可选地,动画通道的数据是指位于动画对象上的点的参数信息的数值。以骨骼动画为例,动画通道用于表示骨骼节点的参数信息。可选地,骨骼节点的参数信息包括位置参数信息、旋转参数信息、缩放参数信息。可选地,骨骼节点的位置参数信息、旋转参数信息、缩放参数信息中包括方向参数,例如,骨骼节点的位置参数信息、旋转参数信息以及缩放参数信息在坐标系中具有X轴方向上的分量、在Y轴方向上的分量、在Z轴方向上的分量,其中,一个动画通道可以表示骨骼节点所在坐标系中的一个方向。例如,以坐标系描述三维动画时,骨骼节点对应的动画轨道的轨道数据的动画帧数据中包括三个动画通道:X动画通道、Y动画通道以及Z动画通道。
位数压缩处理是指将单位数据压缩至固定位数,通过位数压缩处理可以减少单位数据在计算机内存中所占位数,节省计算机存储空间,减少计算机运算量。例如,对32位的浮点型数据进行位数压缩处理,将32位的浮点型数据压缩为10位的二进制数据。
每个动画通道对应的压缩后数据,是经过上述位数压缩处理后,具有固定位数的数据。上述n个动画通道分别对应的压缩后数据用于作为恢复目标动画轨道的筛选后轨道数据的数据基础。另外,n个动画通道分别对应的压缩位数,可以相同,也可以不同。
步骤204,将n个动画通道分别对应的压缩后数据进行合并,生成目标动画轨道的压缩后轨道数据。
将一个动画帧数据中n个动画通道分别对应的压缩后数据进行合并,生成一个压缩后轨道数据中的单位数据。上述合并是指将一个动画帧数据中n个动画通道分别对应的压缩后数据编码至压缩后轨道数据的单位数据中的固定位置。例如,某一动画轨道中的动画帧数据包括X、Y、Z三个动画通道,X、Y、Z三个动画通道分别对应的压缩后数据在内存中所占位数分别为11位、10位、11位,将X动画通道对应的压缩后数据编码至压缩后轨道数据的单位数据中的0-10位,将Y动画通道对应的压缩后数据编码至压缩后轨道数据的单位数据中的11-20位,将Z动画通道对应的压缩后数据编码至压缩后轨道数据的单位数据中的21-31位,该动画轨道的压缩后轨道数据的单位数据在内存中所占位数为32位。
对于一个动画轨道来讲,压缩前的动画帧数据包括多个动画通道数据,而压缩后的动画帧数据只包括一个压缩后轨道数据中的单位数据。
综上所述,本申请实施例提供的技术方案,通过曲线拟合的方法删除动画轨道数据中可被恢复的动画帧,得到筛选后的动画轨道数据,初步降低动画轨道数据量;之后对筛选后的动画轨道数据进行编码压缩,将多个动画通道的数据压缩合并为压缩后轨道数据,进一步降低动画轨道数据量,大幅提升了动画压缩率,并且在一个压缩方案中结合使用两种不同的压缩方式,提高了压缩方式结合度,可以有效降低动画数据的数据量以及相应的传输带宽要求。
在示例性实施例中,请参考图3,上述步骤202可以由如下步骤202a~202g替换实现。
步骤202a,对于目标动画轨道中的第i个动画帧数据,确定第i个动画帧数据的相邻动画帧数据,i为正整数。
上述第i个动画帧数据的相邻动画帧数据,是指动画帧数据按照时间顺序排列后与第i个动画帧数据在位置上相邻的多个动画帧数据。可选地,第i个动画帧数据的相邻动画帧数据包括第i-2个动画帧数据、第i-1个动画帧数据、第i+1个动画帧数据和第i+2个动画帧数据。
步骤202b,确定拟合第i个动画帧数据的相邻动画帧数据的目标曲线。
基于第i个动画帧数据的相邻动画帧数据确定的坐标点确定目标曲线。可选地,上述目标曲线是由第i个动画帧数据的相邻动画帧数据确定的坐标点确定的唯一曲线。
在本申请实施例中,对曲线拟合所采用的曲线类型不做限定。下面,通过几个示例进行介绍说明。
在一个示例中,目标曲线是B样条曲线。B样条曲线是B-样条基函数的线性组合,是贝塞尔曲线的一般化。贝塞尔曲线是依据四个位置任意的点坐标绘制出的一条光滑曲线。B样条曲线函数公式如下:
上式中
其中为时间,x0、x1、x2、x3分别为任意的点在坐标系中x轴上的坐标值,y0、y1、y2、y3分别为四个位置任意的点在坐标系中y轴上的坐标值,a0、a1、a2、a3与b0、b1、b2、b3为系数。
在另一个示例中,目标曲线是Catmull_Rom曲线。Catmull_Rom曲线可以完美保存曲线拟合采样点所在的动画帧数据。Catmull_Rom曲线函数公式如下:
f(x)=a+b*t+c*t2+t*t3
a=X1
c=X0-2.5X2+2X3-0.5X4
其中t为时间,a、b、c、d为系数,X0、X1、X2、X3、X4分别为任意的点在坐标系中x轴上的坐标值。在另一个示例中,目标曲线是HermiteSpline曲线。HermiteSpline曲线通过扩张度定义曲线的平滑情况。HermiteSpline曲线函数公式如下:
f(x)=a+b*t+c*t2+d*t3
a=X1
其中t为时间,a、b、c、d为系数,X0、X1、X2、X3分别为任意的点在坐标系中x轴上的坐标值。
在示例性实施例中,请参考图4,其示出了一种曲线拟合的示意图。
图4(a)中的目标曲线410是B样条曲线。目标曲线410上包括第i个动画帧数据确定的坐标点411,以及第i个动画帧数据的相邻动画帧数据确定的坐标点412。图4(b)中的目标曲线420是Catmull_Rom曲线。目标曲线420上包括第i个动画帧数据确定的坐标点421,以及第i个动画帧数据的相邻动画帧数据确定的坐标点422。图4(c)中的目标曲线430是HermiteSpline曲线。目标曲线430上包括第i个动画帧数据确定的坐标点431,以及第i个动画帧数据的相邻动画帧数据确定的坐标点433。
本申请实施例优先选用Catmull_Rom曲线或者HermiteSpline曲线作为目标曲线,因为Catmull_Rom曲线或者HermiteSpline曲线作为目标曲线时,能够完整保存下述被删除的动画帧数据确定的坐标点所在的动画帧数据。
步骤202c,判断第i个动画帧数据与目标曲线是否相匹配。
第i个动画帧数据与目标曲线相匹配是指第i个动画帧数据确定的坐标点位于目标曲线上或者位于目标曲线的门限范围内,上述门限范围是第i个动画帧数据偏离目标曲线的可接受最大距离范围。第i个动画帧数据与目标曲线不匹配是指第i个动画帧数据确定的坐标点位于目标曲线的门限范围外。
若第i个动画帧数据与目标曲线相匹配,则执行步骤202d;若第i个动画帧数据与目标曲线不匹配,则执行步骤202e。
步骤202d,删除第i个动画帧数据。
基于上述删除的第i个动画帧数据,生成被删除的轨道数据,上述被删除的轨道数据包括目标动画轨道中经过曲线拟合后被删除的动画帧数据。
步骤202e,保留第i个动画帧数据。
将第i个动画帧数据添加至筛选后轨道数据。
步骤202f,判断目标动画轨道中的动画帧数据遍历是否完成。
若目标动画轨道中的动画帧数据未遍历完成,则令i=i+1并再次从上述步骤202a开始执行;若目标动画轨道中的动画帧数据遍历完成,则执行步骤202g。
步骤202g,得到目标动画轨道的筛选后轨道数据。
可选地,在上述步骤202a-202g执行完毕之后,执行下述步骤202h~202n对上述筛选后轨道数据进行检测。
步骤202h,对于目标动画轨道的被删除的轨道数据中第j个被删除的动画帧数据,确定第j个被删除的动画帧数据在筛选后的轨道数据中的相邻动画帧数据,j为正整数。
步骤202i,基于第j个被删除的动画帧数据在筛选后的轨道数据中的相邻动画帧数据,确定目标曲线。
步骤202j,判断第j个被删除的动画帧数据与目标曲线是否相匹配。
第j个被删除的动画帧数据与目标曲线相匹配是指第j个被删除的动画帧数据确定的坐标点位于目标曲线上或者位于目标曲线的门限范围内,上述门限范围是第j个被删除的动画帧数据偏离目标曲线的可接受最大距离范围。第j个被删除的动画帧数据与目标曲线不匹配是指第j个被删除的动画帧数据确定的坐标点位于目标曲线的门限范围外。
若第j个被删除的动画帧数据与目标曲线相匹配,则执行步骤202d;若第j个被删除的动画帧数据与目标曲线不匹配,则执行步骤202e。
步骤202k,确定第j个被删除的动画帧数据能被删除。
步骤202l,确定第j个被删除的动画帧数据不能被删除,将第j个被删除的动画帧数据添加至目标动画轨道的筛选后轨道数据。
步骤202m,判断目标动画轨道的被删除的轨道数据中所有被删除的动画帧数据遍历是否完成。
若目标动画轨道的被删除的轨道数据中所有被删除的动画帧数据遍历未完成,则令j=j+1,并再次从上述步骤202h开始执行;若目标动画轨道的被删除的轨道数据中所有被删除的动画帧数据遍历完成,则执行步骤202n。
步骤202n,得到最终确定的目标动画轨道的筛选后轨道数据。
综上所述,本申请实施例提供的技术方案,通过各动画帧的相邻动画帧数据确定目标曲线,若该动画帧数据位于目标曲线附近的门限范围内,即可确定该动画帧的可以通过该动画帧的相邻动画帧数据进行恢复,进而将该动画帧数据删除,生成筛选后轨道数据,提升动画数据压缩率。
另外,通过检测已删除的动画帧数据的可删除性,根据检测结果更新筛选后轨道数据。在提升动画压缩率的同时保证动画压缩精度仍然可以处于高精度状态,保证解压缩后的动画效果。
在示例性实施例中,上述步骤203-204可以由如下步骤替换实现。
步骤203a,根据压缩总位数确定n个动画通道分别对应的压缩位数。
上述压缩总位数是指压缩后轨道数据中单位数据的总位数。可选地,压缩总位数是32位或者16位,本申请实施例对此不作限定。上述压缩位数是指压缩之后的数据所占位数的数值。
可选地,本步骤包括如下几个子步骤。
1、获取第一压缩位数对应关系。
压缩位数对应关系是指动画通道与压缩位数之间的对应关系,用于作为位数压缩处理的依据。第一压缩位数对应关系包括n个动画通道与压缩位数之间的对应关系,用于指示n个动画通道中的单位数据分别对应的压缩位数。
可选地,第一压缩位数对应关系包括:X动画通道数据的压缩位数为10位、Y动画通道数据的压缩位数为11位以及Z动画通道数据的压缩位数为11位。可选地,第一压缩位数对应关系包括:X通道数据的压缩位数为5位、Y通道数据的压缩位数为5位以及Z通道数据的压缩位数为5位。本申请实施例对第一压缩位数对应关系不作限定。
2、根据第一压缩位数对应关系,确定n个动画通道分别对应的压缩位数。
可选地,上述n个动画通道分别对应的压缩位数之和等于压缩总位数。例如,第一压缩位数对应关系是X通道数据的压缩位数为10位、Y通道数据的压缩位数为11位以及Z通道数据的压缩位数为11位,压缩总位数是32位。
在示例性实施例中,上述步骤203a可以由如下步骤替换实现。
步骤203a1,检测n个动画通道中是否包括目标动画通道,目标动画通道是指数据变化幅度小于门限值的动画通道。
上述数据变化幅度是指目标动画通道在当前动画帧中对应的数据与目标动画通道在与当前动画帧相邻的动画帧中对应的数据之间的变化差值幅度。上述门限值是指上述变化幅度在误差允许范围内的最大值。例如,第i+1帧动画帧中的X动画通道的数据与第i帧动画帧中的X动画通道的数据相同,则X动画通道为目标动画通道。
步骤203a2,若n个动画通道中包括目标动画通道,则获取第二压缩位数对应关系。
第二压缩位数对应关系包括n个动画通道中除目标动画通道之外的剩余动画通道与压缩位数之间的对应关系,用于指示n个动画通道中除目标动画通道之外的剩余的动画通道中的单位数据分别对应的压缩位数。
可选地,某一动画轨道中的动画帧数据包括3个动画通道,分别是X动画通道、Y动画通道、Z动画通道,其中X动画通道在上述步骤203a1中被检测为目标动画通道,此时第二压缩位数对应关系包括:Y通道数据的压缩位数为8位以及Z通道数据的压缩位数为8位,压缩总位数为16位。
可选地,某一动画轨道中的动画帧数据包括3个动画通道,分别是X动画通道、Y动画通道、Z动画通道,其中X动画通道与Y动画通道在上述步骤203a1中被检测为目标动画通道,此时第二压缩位数对应关系包括:Z通道数据的压缩位数为16位,压缩总位数为16位。
可选地,当前动画帧数据的n个动画通道中包括目标动画通道,停止对当前动画帧数据中的目标动画通道进行位数压缩处理,但需要对当前动画帧数据的上一动画帧数据中与目标动画通道对应的动画通道的数据进行位数压缩处理,当前动画帧数据中的目标动画通道的数据可以通过上一动画帧数据中与目标动画通道对应的动画通道的数据恢复。例如,第i-1帧动画帧中的X动画通道的数据与第i帧动画帧中的X动画通道的数据相同,则第i帧动画帧中的X动画通道为目标动画通道,停止第i帧动画帧中的X动画通道的数据进行位数压缩处理,对第i-1帧动画帧中的X动画通道的数据进行位数压缩处理,第i帧动画帧中的X动画通道的数据可以通过第i-1帧动画帧中的X动画通道的数据进行恢复。
步骤203a3,根据第二压缩位数对应关系,确定剩余动画通道分别对应的压缩位数。
可选地,上述剩余动画通道分别对应的压缩位数之和等于压缩总位数。例如,第二压缩位数对应关系是X通道数据的压缩位数为8位、Y通道数据的压缩位数为8位,压缩总位数是16位。
步骤203b,对于n个动画通道中的第i个动画通道,对目标动画轨道的筛选后轨道数据中第i个动画通道的数据进行归一化处理,得到第i个动画通道的归一化数据,i为小于等于n的正整数。
可选地,本步骤包括如下几个子步骤。
1、确定第i个动画通道的数据中的最大值和最小值。
获取动画轨道的轨道数据中动画通道的数据。可选地,若动画使用的坐标系为世界坐标系,上述世界坐标系包括三个互相垂直并相交的坐标轴X、Y、Z,相应的,动画帧数据中包括三个动画通道,分别是X动画通道、Y动画通道、Z动画通道,动画通道数据包括X动画通道的数据、Y动画通道的数据以及Z动画通道的数据。
根据第i个动画通道的数据,确定第i个动画通道的数据中的最大值和最小值。第i个动画通道的数据中的最大值是指一个动画轨道的轨道数据中第i个动画通道的数据中的最大值。第i个动画通道的数据中的最小值是指一个动画轨道的轨道数据中第i个动画通道的数据中的最小值。可选地,根据X动画通道的数据,确定X动画通道的数据中的最大值和最小值,根据Y动画通道的数据,确定Y动画通道的数据中的最大值和最小值,根据Z动画通道的数据,确定Z动画通道的数据中的最大值和最小值。
2、计算第一差值。
计算第i个动画通道的数据中的第一差值,第一差值是指述最大值与最小值的差值,即计算第i个动画通道的数据中的最大值和最小值之间的差值。可选地,计算X动画通道的数据中的最大差值、Y动画通道的数据中的最大差值以及Z动画通道的数据中的最大差值,其中X动画通道的数据中的最大差值是X动画通道的数据中的最大值和最小值之间的差值,Y动画通道的数据中的最大差值是Y动画通道的数据中的最大值和最小值之间的差值,Z动画通道的数据中的最大差值是Z动画通道的数据中的最大值和最小值之间的差值。
3、将第二差值与第一差值相除,得到第i个动画通道的归一化数据。
计算第i个动画通道的数据中的第二差值,第二差值是指第i个动画通道的数据与最小值的差值,包括X动画通道数据中的第二差值、Y动画通道数据中的第二差值以及Z动画通道数据中的第二差值。X动画通道数据中的第二差值是X动画通道中任一数据与X动画通道数据中最小值之间的差值,Y动画通道数据中的第二差值是Y动画通道中任一数据与Y动画通道数据中最小值之间的差值,Z动画通道数据中的第二差值是Z动画通道中任一数据与Z通道数据中最小值之间的差值。
对第i个动画通道的数据进行归一化处理,得到第i个动画通道的归一化数据。可选地,归一化处理是指对上述第二差值与第一差值进行归一化运算。可选地,上述归一化运算是指将第二差值与所述第一差值相除。
可选地,第i个动画通道的归一化数据是浮点型数据类型(FLOAT)。浮点类型的单精度值具有4个字节(Byte),包括一个符号位、一个8位二进制指数和一个23位尾数。
字节是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位。最常用的字节是八位的字节,即它包含八位的二进制数。字节通常简写为“B”,计算机存储器的大小通常用字节来表示。
位(bit)是计算机中的二进制数系统中数据存储的最小单位,也称为比特。每个0或1就是一个位。
可选地,上述第i个动画通道的归一化数据可以通过如下公式(3a)计算得到:
式中V表示归一化数据、Vmax表示第i个动画通道的数据中的最大值、Vmin表示第i个动画通道的数据中的最大值、Vi表示第i个动画通道的数据、Vmax-Vmin第i个动画通道的数据中的最大值与最小值的第一差值、Vi-Vmin表示第i个动画通道的数据与最小值的第二差值。
步骤203c,将第i个动画通道的归一化数据转换为压缩位数的二进制数据,得到第i个通道对应的压缩后数据。
可选地,本步骤包括如下几个子步骤。
1、获取第i个动画通道对应的压缩位数对应关系。可选地,第i个动画通道对应的压缩位数对应关系是第一压缩位数对应关系或者第二压缩位数关系。
2、根据第i个动画通道对应的压缩位数对应关系确定第i个动画通道对应的压缩位数。
3、根据第i个动画通道对应的压缩位数确定压缩位数对应的最大值。上述压缩位数对应的最大值是指占据该压缩位数的数据所能取到的最大值。例如,第i个动画通道对应的压缩位数为11位,压缩位数为11位时对应的最大二进制数为11111111111,即十进制数2047。
4、基于压缩位数对应的最大值与第i个动画通道的归一化数据,将第i个动画通道的归一化数据转换为压缩位数的二进制数据,得到第i个通道对应的压缩后数据。可选地,对第i个动画通道的归一化数据与压缩位数对应的最大值进行乘积运算,所得乘积结果为压缩位数的二进制数据。
步骤204a,按照对应位关系将n个动画通道分别对应的压缩后数据进行合并,生成目标动画轨道的压缩后轨道数据。
按照对应位关系将n个动画通道分别对应的压缩后数据进行合并,生成目标动画轨道的压缩后轨道数据。可选地,按照对应位关系将X动画通道、Y动画通道以及Z动画通道分别对应的压缩后数据进行合并,生成目标动画轨道的压缩后轨道数据。
可选地,压缩后轨道数据的类型是整数类型(Integer,INT)。整数类型在内存中占用了4个字节,也就是32位。
上述对应位关系是指上述X动画通道、Y动画通道以及Z动画通道分别对应的压缩后数据在压缩后轨道数据中的对应位置。可选地,上述对应位关系包括:压缩后轨道数据为整数类型时,压缩后轨道数据中一个数据的前10位是X动画通道对应的压缩后数据、中间10位是Y动画通道对应的压缩后数据、后10位是Z动画通道对应的压缩后数据。
在一个示例中,请参考图5,动画轨道的轨道数据中的动画帧数据包括三个动画通道,分别是X动画通道、Y动画通道以及Z动画通道,X动画通道、Y动画通道以及Z动画通道的数据类型均为浮点型数据,对动画帧数据进行归一化处理,即对X动画通道、Y动画通道以及Z动画通道的浮点型数据分别进行归一化处理,归一化处理的公式可以选用上述公式(3a),得到动画帧数据的归一化数据。动画帧数据的归一化数据包括X动画通道、Y动画通道以及Z动画通道的归一化数据。对动画帧数据的归一化数据进行位数压缩处理,即对X动画通道、Y动画通道以及Z动画通道的归一化数据分别进行位数压缩处理,其中,压缩总位数为32位,X动画通道、Y动画通道、Z动画通道对应的压缩位数分别为10位、11位、11位,得到动画帧数据对应的二进制数据。动画帧数据对应的二进制数据包括X动画通道、Y动画通道以及Z动画通道的二进制数据。对动画帧数据对应的二进制数据进行合并,得到动画帧数据对应的压缩后数据。其中,进行合并处理时可以按照公式Packed=(Z<<21)|(Y<<10)|(X)来合并X动画通道、Y动画通道以及Z动画通道的二进制数据,即在压缩后数据的第0位开始写入X动画通道的二进制数据,在第10位开始写入Y动画通道的二进制数据,在第21位开始写入Y动画通道的二进制数据,得到的动画帧数据对应的压缩后数据所占的32位数据中前10位是X动画通道对应的二进制数据、后11位是Z动画通道对应的二进制数据、中间11位是Y动画通道对应的二进制数据。在另外一种情况中,压缩总位数可为16位,X动画通道、Y动画通道、Z动画通道对应的压缩位数分别为5位、5位、6位,并且按照公式Packed=(Z<<10)|(Y<<5)|(X)合并,可以得到虚拟框内的动画帧数数据对应的16位压缩后数据。基于目标动画轨道的轨道数据中各动画帧数据对应的压缩后数据,可以得到目标动画轨道的压缩后轨道数据。
在一个示例中,请参考图6,以骨骼动画为例,对于动画轨道中的旋转轨道,旋转轨道数据中的动画帧数据包括X、Y、Z和W四个参数,即使用四元数的方式表示的所述骨骼节点的旋转量,其中,W可以根据X、Y、Z的值确定,X、Y、Z和W之间的数据关系是X2+Y2+Z2+W2=1,因此旋转轨道数据中动画帧数据可以只包括X、Y、Z三个参数对应的三个动画通道,分别是X动画通道、Y动画通道、Z动画通道。对旋转轨道数据中的动画帧数据中各动画通道的数据的压缩处理过程可以参考上一示例的压缩处理过程。对于旋转轨道数据中的动画帧数据中的W参数可以通过X2+Y2+Z2+W2=1与X、Y、Z的值确定。可选地,对旋转轨道数据中的动画帧数据中各动画通道的数据的进行压缩处理前,将动画帧数据中各动画通道的数据形成的向量,即X、Y、Z的值形成的向量转换为与各动画通道的数据形成的向量对应的单位向量之后,即其中X′2+Y′2+Z′2=1,再对上述单位向量中对应的三个分量的值进行上一示例的压缩处理过程。
在一个示例中,请参考图7,动画轨道的轨道数据中动画帧数据中存在目标动画通道。在一种情况中,请参考图7中未被虚线框框起的部分,动画帧数据中存在一个目标动画通道,下面以目标动画通道为Z动画通道为例说明。此时,不对动画帧数据中Z动画通道的数据进行压缩处理,对动画帧数据中剩余动画通道的数据(即X动画通道和Y动画通道的数据)进行压缩处理,得到该动画帧数据对应的压缩后数据。其中,压缩总位数为16位,X动画通道、Y动画通道对应的压缩位数均为8位,并且按照公式Packed=(Y<<8)|(X)合并。在另一种情况中,请参考图7中被虚线框框起的部分,动画帧数据中存在两个目标动画通道,下面以目标动画通道为X动画通道和Z动画通道为例进行说明。此时,不对动画帧数据中X动画通道和Z动画通道的数据进行压缩处理,对动画帧数据中剩余动画通道的数据(即Y动画通道的数据)进行压缩处理,得到该动画帧数据对应的压缩后数据。其中,压缩总位数为16位,Y动画通道对应的压缩位数为16位,动画帧数据对应的压缩后数据即为Y动画通道对应的二进制数据。综上所述,本申请实施例提供的技术方案,通过将多个动画通道中的浮点型数据压缩为固定位数的二进制数据,并将其按照对应位置合并编码为一个单位数据,降低了动画轨道数据量,大幅提升了动画压缩率,可以有效降低动画数据的数据量。
请参考图8,其示出了本申请另一个实施例提供的动画数据压缩方法的流程图。该方法可应用于图1所示的应用程序运行环境中。该方法可以包括以下几个步骤(801-808)。
步骤801,获取动画数据。
步骤802,对于目标动画轨道的轨道数据,对目标动画轨道的轨道数据进行曲线拟合处理,根据曲线拟合结果从目标动画轨道的动画帧数据中选取部分动画帧数据,得到目标动画轨道的筛选后轨道数据。
在对目标动画轨道的轨道数据进行曲线拟合处理前,设定动画轨道的分级误差阈值,即设定动画轨道对应的骨骼节点的分级误差阈值。可选地,子骨骼节点对应的动画轨道的分级误差阈值较大,父骨骼节点对应的动画轨道的分级误差阈值较小。通过这种方式,用于避免父骨骼节点产生的误差增大其子骨骼节点的误差,降低压缩精度。
步骤803,对目标动画轨道的筛选后轨道数据按照n个动画通道分别进行位数压缩处理,得到n个动画通道分别对应的压缩后数据,n为正整数。
步骤804,将n个动画通道分别对应的压缩后数据进行合并,生成目标动画轨道的压缩后轨道数据。
步骤805,对动画数据中各动画轨道的压缩后轨道数据进行解压缩处理,得到各动画轨道的解压后轨道数据。
获取压缩策略。可选地,压缩策略包括上述实施例中提及的曲线拟合方法、压缩位数关系、归一化处理方法、合并方法以及对应位关系。
获取动画帧数据定位信息,上述定位信息是指动画帧与时间对应关系,反映动画帧在动画中所处的时间位置。
根据压缩策略与动画帧数据定位信息对动画数据中各动画轨道的压缩后轨道数据进行解压缩处理。
上述解压缩处理包括解码处理与插帧处理。
上述解码处理过程如下:按照对应位关系将压缩后轨道数据分解为动画通道对应的压缩位数的二进制数据,根据压缩位数将压缩位数的二进制数据恢复为动画通道的归一化数据,根据上述实施例中归一化处理生成归一化逆处理方法,按照归一化逆处理方法将动画通道的归一化数据恢复为目标动画轨道的筛选后轨道数据。
上述插帧处理过程如下:基于目标动画轨道的筛选后轨道数据中的动画帧数据确定目标曲线,根据目标曲线函数以及动画帧数据定位信息恢复被删除的动画帧数据,得到各动画轨道的解压后轨道数据。
步骤806,对各动画轨道的解压后轨道数据进行第一误差校验。
第一误差校验用于校验具有关联关系的两个动画轨道的相对位置之间的误差。
上述关联关系的两个动画轨道是指具有父子关系的骨骼节点对应的动画轨道。上述具有关联关系的两个动画轨道的相对位置是指具有关联关系的两个动画轨道对应的具有父子关系的骨骼节点在空间中的相对位置。上述相对位置可以通过具有关联关系的两个动画轨道的轨道数据之间的差值体现,反映具有父子关系的骨骼节点在空间中的相对位置信息。
对于目标动画轨道,确定目标动画轨道的关联动画轨道。
关联动画轨道是与目标动画轨道具有关联关系的动画轨道。可选地,关联动画轨道对应的骨骼节点是目标动画轨道对应的骨骼节点的父骨骼节点。可选地,关联动画轨道对应的骨骼节点是目标动画轨道对应的骨骼节点的子骨骼节点。
获取目标动画轨道原始的轨道数据和关联动画轨道原始的轨道数据之间的第一相对值。
上述第一相对值是指目标动画轨道原始的轨道数据和关联动画轨道原始的轨道数据之间的差值,用于反映原始的轨道数据中关联动画轨道对应的骨骼节点与目标动画轨道对应的骨骼节点在空间中的相对位置信息。
获取目标动画轨道的解压后轨道数据和关联动画轨道的解压后轨道数据之间的第二相对值。
上述第二相对值是指目标动画轨道的解压后轨道数据和关联动画轨道的解压后轨道数据之间的差值,用于反映解压后轨道数据中关联动画轨道对应的骨骼节点与目标动画轨道对应的骨骼节点在空间中的相对位置信息。
基于第一相对值和第二相对值,计算第一误差。
上述第一误差反映原始的轨道数据和解压后轨道数据中关联动画轨道对应的骨骼节点与目标动画轨道对应的骨骼节点在空间中的相对位置变化信息。可选地,上述第一误差可以通过第一相对值和第二相对值相减得到。
若第一误差小于第一阈值,则确定目标动画轨道的解压后轨道数据通过第一误差校验。
上述第一阈值是指第一相对值和第二相对值之间可接受的最大差值,反映关联动画轨道对应的骨骼节点与目标动画轨道对应的骨骼节点在空间中的相对位置之间产生的可接受的最大变化范围。
可选地,第一阈值可以根据上述动画轨道的分级误差阈值设定,若动画轨道对应的骨骼节点是父骨骼节点,该动画轨道对应的第一阈值较小;若动画轨道对应的骨骼节点是子骨骼节点,该动画轨道对应的第一阈值可以大于父骨骼节点对应的动画轨道对应的第一阈值。
步骤807,若各动画轨道的解压后轨道数据通过第一误差校验,则对各动画轨道的解压后轨道数据进行第二误差校验。
第二误差校验用于校验原始的轨道数据与解压后轨道数据之间的误差。
对于目标动画轨道,基于目标动画轨道原始的轨道数据和解压后轨道数据,计算第二误差。
上述第二误差反映原始的轨道数据和解压后轨道数据中各动画轨道对应的骨骼节点在空间中的位置变化信息。可选地,上述第一误差可以通过原始的轨道数据和解压后轨道数据按照数据对应关系相减得到。
若第二误差小于第二阈值,则确定目标动画轨道的解压后轨道数据通过第二误差校验。
可选地,第二阈值可以根据上述动画轨道的分级误差阈值设定,若动画轨道对应的骨骼节点是父骨骼节点,该动画轨道对应的第二阈值较小;若动画轨道对应的骨骼节点是子骨骼节点,该动画轨道对应的第二阈值可以大于父骨骼节点对应的动画轨道对应的第二阈值。
若各动画轨道的解压后轨道数据未通过第一误差校验,执行误差校正操作。上述误差校正操作是指降低上述分级误差阈值,重新开始执行步骤502,至各动画轨道的解压后轨道数据通过第一误差校验为止。
步骤808,若各动画轨道的解压后轨道数据通过第二误差校验,则确定使用动画数据中各动画轨道的压缩后轨道数据。
若各动画轨道的解压后轨道数据未通过第二误差校验,执行误差校正操作。上述误差校正操作是指降低上述分级误差阈值,重新开始执行步骤502,至各动画轨道的解压后轨道数据通过第二误差校验为止。
可选地,上述步骤806和807可以同时进行,即同时进行第一误差校验与第二误差校验。
综上所述,本申请实施例提供的技术方案,通过对解压后轨道数据进行两次校验,其中,先对具有连接关系的两个节点之间的相对位置在压缩前后的变化进行校验,后对节点在空间中的位置在压缩前后的变化进行校验,进一步确保了动画压缩精度,避免一味的提升动画压缩效率而忽略动画压缩精度。
在示例性实施例中,请参考图9,其示例性示出了一种设置压缩策略的用户界面的示意图。
在计算机设备上显示用户界面910。在用户界面910中显示曲线拟合参数栏控件911、动画轨道压缩参数栏控件912以及误差校验参数栏控件913。当用户点击曲线拟合参数栏控件911使其处于展开状态时,在曲线拟合参数栏控件911下方显示曲线拟合参数列表9110,在曲线拟合参数列表9110中显示曲线拟合参数名称9111以及与曲线拟合参数名称9111相对应的曲线拟合参数设置控件9112。当用户点击动画轨道压缩参数栏控件912使其处于展开状态时,在动画轨道压缩参数栏控件912下方显示动画轨道压缩参数列表9120,在动画轨道压缩参数列表9120中显示动画轨道压缩参数名称9121以及与动画轨道压缩参数名称9121相对应的动画轨道压缩参数设置控件9122。当用户点击误差校验参数栏控件913使其处于展开状态时,在误差校验参数栏控件913下方显示误差校验参数列表9130,误差校验参数列表9130中显示误差校验参数名称9131以及与误差校验参数名称9131相对应的误差校验参数设置控件9132。
下述为本申请装置实施例,可用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图10,其示出了本申请一个实施例提供的动画数据压缩装置的框图。该装置具有实现上述动画数据压缩方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是计算机设备,也可以设置在计算机设备中。该装置1000可以包括:动画获取模块1010、曲线拟合模块1020、位数压缩模块1030和数据合并模块1040。
动画获取模块1010,用于获取动画数据,所述动画数据包括至少一个动画轨道的轨道数据,所述轨道数据包括位于所述动画轨道中的动画帧数据;
曲线拟合模块1020,用于对于目标动画轨道的轨道数据,对所述目标动画轨道的轨道数据进行曲线拟合处理,根据曲线拟合结果从所述目标动画轨道的动画帧数据中选取部分动画帧数据,得到所述目标动画轨道的筛选后轨道数据;
位数压缩模块1030,用于对所述目标动画轨道的筛选后轨道数据按照n个动画通道分别进行位数压缩处理,得到所述n个动画通道分别对应的压缩后数据,所述n为正整数;
数据合并模块1040,用于将所述n个动画通道分别对应的压缩后数据进行合并,生成所述目标动画轨道的压缩后轨道数据。
在示例性实施例中,如图11所示,所述位数压缩模块1030包括:
位数确定单元1031,用于根据压缩总位数确定所述n个动画通道分别对应的压缩位数,所述压缩总位数是指所述压缩后轨道数据的总位数;
数据处理单元1032,用于对于所述n个动画通道中的第i个动画通道,对所述目标动画轨道的筛选后轨道数据中所述第i个动画通道的数据进行归一化处理,得到所述第i个动画通道的归一化数据,所述i为小于等于所述n的正整数;
数据转换单元1033,用于将所述第i个动画通道的归一化数据转换为所述压缩位数的二进制数据,得到所述第i个通道对应的压缩后数据。
在示例性实施例中,如图11所示,所述位数确定单元1031用于:
获取第一压缩位数对应关系,所述第一压缩位数对应关系包括所述n个动画通道与压缩位数之间的对应关系;
根据所述第一压缩位数对应关系,确定所述n个动画通道分别对应的压缩位数,所述n个动画通道分别对应的压缩位数之和等于所述压缩总位数。
在示例性实施例中,如图11所示,所述位数确定单元1031还用于:
检测所述n个动画通道中是否包括目标动画通道,所述目标动画通道是指数据变化幅度小于门限值的动画通道;
若所述n个动画通道中包括所述目标动画通道,则获取第二压缩位数对应关系,所述第二压缩位数对应关系包括所述n个动画通道中除所述目标动画通道之外的剩余动画通道与压缩位数之间的对应关系;
根据所述第二压缩位数对应关系,确定所述剩余动画通道分别对应的压缩位数,所述剩余动画通道分别对应的压缩位数之和等于所述压缩总位数。
在示例性实施例中,如图11所示,所述数据处理单元1032用于:
确定所述第i个动画通道的数据中的最大值和最小值;
计算第一差值,所述第一差值是指所述最大值与所述最小值的差值;
将第二差值与所述第一差值相除,得到所述第i个动画通道的归一化数据,其中,所述第二差值是指所述第i个动画通道的数据与所述最小值的差值。
在示例性实施例中,所述曲线拟合模块1020用于:
对于所述目标动画轨道中的第j个被删除的动画帧数据,确定所述第j个被删除的动画帧数据的相邻动画帧数据,所述i为正整数;
确定拟合所述第j个被删除的动画帧数据的相邻动画帧数据的目标曲线;
若所述第j个被删除的动画帧数据与所述目标曲线相匹配,则删除所述第j个被删除的动画帧数据;
若所述第j个被删除的动画帧数据与所述目标曲线不匹配,则保留所述第j个被删除的动画帧数据;
令i=i+1,并再次从所述对于所述目标动画轨道中的第j个被删除的动画帧数据,确定所述第j个被删除的动画帧数据的相邻动画帧数据的步骤开始执行,直至所述目标动画轨道中的动画帧数据遍历完成,得到所述目标动画轨道的筛选后轨道数据。
在示例性实施例中,如图11所示,所述装置1000还包括:
解压缩处理模块1050,用于对所述动画数据中各动画轨道的压缩后轨道数据进行解压缩处理,得到所述各动画轨道的解压后轨道数据;
第一误差校验模块1060,用于对所述各动画轨道的解压后轨道数据进行第一误差校验,所述第一误差校验用于校验具有关联关系的两个动画轨道的相对位置之间的误差;
第二误差校验模块1070,用于若所述各动画轨道的解压后轨道数据通过所述第一误差校验,则对所述各动画轨道的解压后轨道数据进行第二误差校验,所述第二误差校验用于校验原始的轨道数据与所述解压后轨道数据之间的误差;
压缩数据确定模块1080,用于若所述各动画轨道的解压后轨道数据通过所述第二误差校验,则确定使用所述动画数据中各动画轨道的压缩后轨道数据。
在示例性实施例中,如图11所示,所述第一误差校验模块1060用于:
对于所述目标动画轨道,确定所述目标动画轨道的关联动画轨道,所述关联动画轨道是与所述目标动画轨道具有所述关联关系的动画轨道;
获取所述目标动画轨道原始的轨道数据和所述关联动画轨道原始的轨道数据之间的第一相对值;
获取所述目标动画轨道的解压后轨道数据和所述关联动画轨道的解压后轨道数据之间的第二相对值;
基于所述第一相对值和所述第二相对值,计算第一误差;
若所述第一误差小于第一阈值,则确定所述目标动画轨道的解压后轨道数据通过所述第一误差校验。
在示例性实施例中,如图11所示,所述对第二误差校验模块1070用于:
对于所述目标动画轨道,基于所述目标动画轨道原始的轨道数据和解压后轨道数据,计算第二误差;
若所述第二误差小于第二阈值,则确定所述目标动画轨道的解压后轨道数据通过所述第二误差校验。
综上所述,本申请实施例提供的技术方案,通过曲线拟合的方法删除动画轨道数据中可被恢复的动画帧,得到筛选后的动画轨道数据,初步降低动画轨道数据量;之后对筛选后的动画轨道数据进行编码压缩,将多个动画通道对应的单位数据压缩合并为压缩后轨道数据中的一个单位数据,进一步降低动画轨道数据量,大幅提升了动画压缩率,并且在一个压缩方案中结合使用两种不同的压缩方式,提高了压缩方式结合度,可以有效降低动画数据的数据量以及相应的传输带宽要求。
请参考图12,其示出了本申请一个实施例提供的计算机设备的结构框图。该计算机设备可以是服务器,以用于执行上述动画数据压缩方法。具体来讲:
计算机设备1200包括中央处理单元(Central Processing Unit,CPU)1201、包括随机存取存储器(Random Access Memory,RAM)1202和只读存储器(Read Only Memory,ROM)1203的系统存储器1204,以及连接系统存储器1204和中央处理单元1201的系统总线1205。计算机设备1200还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O(Input/Output)系统)1206,和用于存储操作系统1213、应用程序1214和其他程序模块1212的大容量存储设备1207。
基本输入/输出系统1206包括有用于显示信息的显示器1208和用于用户输入信息的诸如鼠标、键盘之类的输入设备1209。其中显示器1208和输入设备1209都通过连接到系统总线1205的输入输出控制器1210连接到中央处理单元1201。基本输入/输出系统1206还可以包括输入输出控制器1210以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1210还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备1207通过连接到系统总线1205的大容量存储控制器(未示出)连接到中央处理单元1201。大容量存储设备1207及其相关联的计算机可读介质为计算机设备1200提供非易失性存储。也就是说,大容量存储设备1207可以包括诸如硬盘或者CD-ROM(Compact Disc Read-Only Memory,只读光盘)驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read Only Memory,电可擦可编程只读存储器)、闪存或其他固态存储其技术,CD-ROM、DVD(Digital Video Disc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器1204和大容量存储设备1207可以统称为存储器。
根据本申请的各种实施例,计算机设备1200还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1200可以通过连接在系统总线1205上的网络接口单元1211连接到网络1212,或者说,也可以使用网络接口单元1211来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括计算机程序,该计算机程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,以实现上述动画数据压缩方法。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被处理器执行时以实现上述动画数据压缩方法。
可选地,该计算机可读存储介质可以包括:ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取记忆体)、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random Access Memory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述动画数据压缩方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种动画数据压缩方法,其特征在于,所述方法包括:
获取动画数据,所述动画数据包括至少一个动画轨道的轨道数据,所述轨道数据包括位于所述动画轨道中的动画帧数据;
对于目标动画轨道的轨道数据,对所述目标动画轨道的轨道数据进行曲线拟合处理,根据曲线拟合结果从所述目标动画轨道的动画帧数据中选取部分动画帧数据,得到所述目标动画轨道的筛选后轨道数据;其中,所述目标动画轨道的筛选后轨道数据按照n个动画通道分别进行位数压缩处理,所述n为正整数;
若所述n个动画通道中包括目标动画通道,则获取第二压缩位数对应关系,所述第二压缩位数对应关系包括所述n个动画通道中除所述目标动画通道之外的剩余动画通道与压缩位数之间的对应关系,所述目标动画通道是指数据变化幅度小于门限值的动画通道;
根据所述第二压缩位数对应关系,确定所述剩余动画通道分别对应的压缩位数,所述剩余动画通道分别对应的压缩位数之和等于压缩总位数;所述压缩总位数是指压缩后轨道数据的总位数;
对于所述n个动画通道中的第i个动画通道,对所述目标动画轨道的筛选后轨道数据中所述第i个动画通道的数据进行归一化处理,得到所述第i个动画通道的归一化数据,所述i为小于等于所述n的正整数;
将所述第i个动画通道的归一化数据转换为所述第i个动画通道对应的压缩位数的二进制数据,得到所述第i个通道对应的压缩后数据;
将所述n个动画通道分别对应的压缩后数据进行合并,生成所述目标动画轨道的压缩后轨道数据。
2.根据权利要求1所述的方法,其特征在于,所述对所述目标动画轨道的筛选后轨道数据中所述第i个动画通道的数据进行归一化处理,得到所述第i个动画通道的归一化数据,包括:
确定所述第i个动画通道的数据中的最大值和最小值;
计算第一差值,所述第一差值是指所述最大值与所述最小值的差值;
将第二差值与所述第一差值相除,得到所述第i个动画通道的归一化数据,其中,所述第二差值是指所述第i个动画通道的数据与所述最小值的差值。
3.根据权利要求1所述的方法,其特征在于,所述对所述目标动画轨道的轨道数据进行曲线拟合处理,根据曲线拟合结果从所述目标动画轨道的动画帧数据中选取部分动画帧数据,得到所述目标动画轨道的筛选后轨道数据,包括:
对于所述目标动画轨道中的第i个动画帧数据,确定所述第i个动画帧数据的相邻动画帧数据,所述i为正整数;
确定拟合所述第i个动画帧数据的相邻动画帧数据的目标曲线;
若所述第i个动画帧数据与所述目标曲线相匹配,则删除所述第i个动画帧数据;
若所述第i个动画帧数据与所述目标曲线不匹配,则保留所述第i个动画帧数据;
令i=i+1,并再次从所述对于所述目标动画轨道中的第i个动画帧数据,确定所述第i个动画帧数据的相邻动画帧数据的步骤开始执行,直至所述目标动画轨道中的动画帧数据遍历完成,得到所述目标动画轨道的筛选后轨道数据。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述将所述n个动画通道分别对应的压缩后数据进行合并,生成所述目标动画轨道的压缩后轨道数据之后,还包括:
对所述动画数据中各动画轨道的压缩后轨道数据进行解压缩处理,得到所述各动画轨道的解压后轨道数据;
对所述各动画轨道的解压后轨道数据进行第一误差校验,所述第一误差校验用于校验具有关联关系的两个动画轨道的相对位置之间的误差;
若所述各动画轨道的解压后轨道数据通过所述第一误差校验,则对所述各动画轨道的解压后轨道数据进行第二误差校验,所述第二误差校验用于校验原始的轨道数据与所述解压后轨道数据之间的误差;
若所述各动画轨道的解压后轨道数据通过所述第二误差校验,则确定使用所述动画数据中各动画轨道的压缩后轨道数据。
5.根据权利要求4所述的方法,其特征在于,所述对所述各动画轨道的解压后轨道数据进行第一误差校验,包括:
对于所述目标动画轨道,确定所述目标动画轨道的关联动画轨道,所述关联动画轨道是与所述目标动画轨道具有所述关联关系的动画轨道;
获取所述目标动画轨道原始的轨道数据和所述关联动画轨道原始的轨道数据之间的第一相对值;
获取所述目标动画轨道的解压后轨道数据和所述关联动画轨道的解压后轨道数据之间的第二相对值;
基于所述第一相对值和所述第二相对值,计算第一误差;
若所述第一误差小于第一阈值,则确定所述目标动画轨道的解压后轨道数据通过所述第一误差校验。
6.根据权利要求4所述的方法,其特征在于,所述对所述各动画轨道的解压后轨道数据进行第二误差校验,包括:
对于所述目标动画轨道,基于所述目标动画轨道原始的轨道数据和解压后轨道数据,计算第二误差;
若所述第二误差小于第二阈值,则确定所述目标动画轨道的解压后轨道数据通过所述第二误差校验。
7.一种动画数据压缩装置,其特征在于,所述装置包括:
动画获取模块,用于获取动画数据,所述动画数据包括至少一个动画轨道的轨道数据,所述轨道数据包括位于所述动画轨道中的动画帧数据;
曲线拟合模块,用于对于目标动画轨道的轨道数据,对所述目标动画轨道的轨道数据进行曲线拟合处理,根据曲线拟合结果从所述目标动画轨道的动画帧数据中选取部分动画帧数据,得到所述目标动画轨道的筛选后轨道数据;其中,所述目标动画轨道的筛选后轨道数据按照n个动画通道分别进行位数压缩处理,所述n为正整数;
位数压缩模块,用于若所述n个动画通道中包括目标动画通道,则获取第二压缩位数对应关系,所述第二压缩位数对应关系包括所述n个动画通道中除所述目标动画通道之外的剩余动画通道与压缩位数之间的对应关系,所述目标动画通道是指数据变化幅度小于门限值的动画通道;根据所述第二压缩位数对应关系,确定所述剩余动画通道分别对应的压缩位数,所述剩余动画通道分别对应的压缩位数之和等于压缩总位数;所述压缩总位数是指压缩后轨道数据的总位数;对于所述n个动画通道中的第i个动画通道,对所述目标动画轨道的筛选后轨道数据中所述第i个动画通道的数据进行归一化处理,得到所述第i个动画通道的归一化数据,所述i为小于等于所述n的正整数;将所述第i个动画通道的归一化数据转换为所述第i个动画通道对应的压缩位数的二进制数据,得到所述第i个通道对应的压缩后数据;
数据合并模块,用于将所述n个动画通道分别对应的压缩后数据进行合并,生成所述目标动画轨道的压缩后轨道数据。
8.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一段程序,所述至少一段程序由所述处理器加载并执行以实现如权利要求1至6任一项所述的动画数据压缩方法。
9.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一段程序,所述至少一段程序由处理器加载并执行以实现如权利要求1至6任一项所述的动画数据压缩方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010628600.8A CN111667544B (zh) | 2020-07-02 | 2020-07-02 | 动画数据压缩方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010628600.8A CN111667544B (zh) | 2020-07-02 | 2020-07-02 | 动画数据压缩方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111667544A CN111667544A (zh) | 2020-09-15 |
CN111667544B true CN111667544B (zh) | 2023-03-10 |
Family
ID=72391199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010628600.8A Active CN111667544B (zh) | 2020-07-02 | 2020-07-02 | 动画数据压缩方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111667544B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112634417B (zh) * | 2020-12-25 | 2023-01-10 | 上海米哈游天命科技有限公司 | 一种角色动画的生成方法、装置、设备及存储介质 |
CN113592986B (zh) * | 2021-01-14 | 2023-05-23 | 腾讯科技(深圳)有限公司 | 基于神经网络的动作生成方法、装置及计算设备 |
CN112927332B (zh) * | 2021-04-02 | 2023-06-09 | 腾讯科技(深圳)有限公司 | 骨骼动画更新方法、装置、设备及存储介质 |
CN113538634B (zh) * | 2021-06-23 | 2024-06-21 | 厦门大学 | 一种视频动作捕捉动画数据的优化方法及系统 |
CN115145496B (zh) * | 2022-09-05 | 2023-01-06 | 中国汽车技术研究中心有限公司 | 一种仿真结果数据处理方法、设备和存储介质 |
CN116894893A (zh) * | 2023-09-11 | 2023-10-17 | 山东捷瑞数字科技股份有限公司 | 一种基于三维引擎的非线性动画调控方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1361630A (zh) * | 2002-01-25 | 2002-07-31 | 安凯(广州)软件技术有限公司 | 用于无线网络和无线手持式设备的动画压缩方法 |
CN107886560A (zh) * | 2017-11-09 | 2018-04-06 | 网易(杭州)网络有限公司 | 动画资源的处理方法及装置 |
CN108492338A (zh) * | 2018-02-09 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 动画文件的压缩方法、装置、存储介质和电子装置 |
CN109872375A (zh) * | 2019-01-10 | 2019-06-11 | 珠海金山网络游戏科技有限公司 | 一种骨骼动画关键帧压缩方法及装置 |
-
2020
- 2020-07-02 CN CN202010628600.8A patent/CN111667544B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1361630A (zh) * | 2002-01-25 | 2002-07-31 | 安凯(广州)软件技术有限公司 | 用于无线网络和无线手持式设备的动画压缩方法 |
CN107886560A (zh) * | 2017-11-09 | 2018-04-06 | 网易(杭州)网络有限公司 | 动画资源的处理方法及装置 |
CN108492338A (zh) * | 2018-02-09 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 动画文件的压缩方法、装置、存储介质和电子装置 |
CN109872375A (zh) * | 2019-01-10 | 2019-06-11 | 珠海金山网络游戏科技有限公司 | 一种骨骼动画关键帧压缩方法及装置 |
Non-Patent Citations (1)
Title |
---|
王鹏杰 ; 潘志庚 ; 李威 ; .人体运动捕获数据压缩技术研究进展.2016,(第07期),16-25. * |
Also Published As
Publication number | Publication date |
---|---|
CN111667544A (zh) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111667544B (zh) | 动画数据压缩方法、装置、设备及存储介质 | |
US6633317B2 (en) | Image-based walkthrough system and process employing spatial video streaming | |
US11631218B2 (en) | Efficient compression of data representing triangular mesh attributes | |
US10699361B2 (en) | Method and apparatus for enhanced processing of three dimensional (3D) graphics data | |
US6591019B1 (en) | 3D transformation matrix compression and decompression | |
CN1329736A (zh) | 对三维生成的景物中的旋转和法线编码的方法和系统 | |
EP1866870B1 (en) | Rendering 3d computer graphics using 2d computer graphics capabilities | |
CN107852174B (zh) | 固定长度数据的压缩方法 | |
CN115861498A (zh) | 动作捕捉的重定向方法和装置 | |
US11418769B1 (en) | Viewport adaptive volumetric content streaming and/or rendering | |
Fan et al. | Deep geometry post-processing for decompressed point clouds | |
WO2024140568A1 (zh) | 图像处理方法、装置、电子设备及可读存储介质 | |
CN117456079A (zh) | 场景渲染方法、装置、设备、存储介质及程序产品 | |
US11948338B1 (en) | 3D volumetric content encoding using 2D videos and simplified 3D meshes | |
CN115775300A (zh) | 人体模型的重建方法、人体重建模型的训练方法及装置 | |
CN112915540B (zh) | 用于虚拟场景中的数据处理方法、装置、设备及存储介质 | |
US8918440B2 (en) | Data decompression with extra precision | |
Isenburg | Compression and streaming of polygon meshes | |
CN116894015A (zh) | 一种面向输电运检场景的vrml文件二进制压缩编码方法 | |
CN111651623B (zh) | 高精度人脸表情库的构建方法、装置、设备及存储介质 | |
Duan et al. | Wide area registration on camera phones for mobile augmented reality applications | |
CN115731324A (zh) | 处理数据的方法、装置、系统及介质 | |
Grabner et al. | Web-based visualization of virtual archaeological sites. | |
CN117915105A (zh) | 网格编码方法、网格解码方法及相关设备 | |
CN116958285A (zh) | 骨骼动画的压缩方法、装置、电子设备及存储介质 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40028598 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |