CN107730437A - 数据压缩存储方法及装置 - Google Patents
数据压缩存储方法及装置 Download PDFInfo
- Publication number
- CN107730437A CN107730437A CN201710912243.6A CN201710912243A CN107730437A CN 107730437 A CN107730437 A CN 107730437A CN 201710912243 A CN201710912243 A CN 201710912243A CN 107730437 A CN107730437 A CN 107730437A
- Authority
- CN
- China
- Prior art keywords
- floating
- quaternary number
- quaternary
- target point
- module
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明实施例提供了一种动画数据压缩存储方法及装置。在本发明实施例中,将四元数归一化处理之后,从四元数中剔除一个最大的浮点数,存储剩余的三个浮点数,如此,之后当需要使用四元数时,可以根据剩余的三个浮点数计算得到被踢出的该一个浮点数,进而得到四元数。可见,通过本发明实施例的数据压缩存储方法,可以提高压缩比,节省存储空间。
Description
技术领域
本发明实施例涉及动画视频技术领域,尤其涉及一种数据压缩存储方法及装置。
背景技术
在拍摄动画之后,往往需要预览动画,以检测拍摄的画面是否合适,在预览之前,往往需要对动画的数据进行存储。
其中,动画系统中最重要的数据是位置数据、放缩数据和旋转数据,前两者可以很容易地通过两个三元的向量表示出来,而且在动画的骨骼系统中,位置和放缩一般是不变化的,所以存储空间/内存占用大小,不会随着动画变复杂而变大。最复杂的是旋转数据,随着动画细腻程序的增加,会线性增长。一般动画的旋转数据通过四维矩阵存储,这种方法最大的问题是占用的存储空间较大。
因此,如何节省存储空间是一个亟待解决的技术问题。
发明内容
为克服相关技术中存在的问题,本发明实施例提供一种动画数据压缩存储方法及装置。
根据本发明实施例的第一方面,提供一种动画数据压缩存储方法,所述方法包括:
获取曲线中的目标点的用于表示旋转的四元数,所述四元数中包括四个浮点数;
将所述四元数进行归一化处理;
从所述四元数中剔除一个浮点数;
存储剩余的三个浮点数。
其中,所述从所述四元数中剔除一个浮点数,包括:
从所述四元数中剔除最大的浮点数。
进一步地,所述存储剩余的三个浮点数之前,还包括:
减少剩余的三个浮点数的比特位。
其中,所述获取旋转曲线中的目标点的四元数,包括:
获取位于旋转曲线两端的第一浮点数和第二浮点数;
利用第一浮点数和第二浮点数拟合得到目标点;
获取所述目标点的四元数。
进一步地,所述方法还包括:
在读取所述目标点的位置数据、放缩数据和旋转四元数时,将位置数据、放缩数据和旋转四元数同时加载在一段连续的内存中。
根据本发明实施例的第二方面,提供一种动画数据压缩存储装置,所述装置包括:
获取模块,用于获取曲线中的目标点的用于表示旋转的四元数,所述四元数中包括四个浮点数;
归一化模块,用于将所述四元数进行归一化处理;
剔除模块,用于从所述四元数中剔除一个浮点数;
存储模块,用于存储剩余的三个浮点数。
其中,所述剔除模块具体用于从所述四元数中剔除最大的浮点数。
进一步地,所述装置还包括:
减少模块,用于减少剩余的三个浮点数的比特位。
其中,所述获取模块包括:
获取单元,用于获取位于旋转曲线两端的第一浮点数和第二浮点数;
拟合单元,用于利用第一浮点数和第二浮点数拟合得到目标点;
获取单元,用于获取所述目标点的四元数。
进一步地,所述装置还包括:
加载模块,用于在读取所述目标点的位置数据、放缩数据和旋转四元数时,将位置数据、放缩数据和旋转四元数同时加载在一段连续的内存中。
本发明实施例提供的技术方案可以包括以下有益效果:
在本发明实施例中,将四元数归一化处理之后,从四元数中剔除一个浮点数,存储剩余的三个浮点数,如此,之后当需要使用四元数时,可以根据剩余的三个浮点数计算得到被踢出的该一个浮点数,进而得到四元数。可见,通过本发明实施例的数据压缩存储方法,可以提高压缩比,节省存储空间。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明实施例。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明实施例的原理。
图1是根据一示例性实施例示出的一种数据压缩存储方法的流程图;
图2根据一示例性实施例示出的一种数据压缩存储装置的结构示意图;
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明实施例的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种数据压缩存储方法的流程图,如图1所示,该方法包括以下步骤。
在步骤S101中,获取曲线中的目标点的用于表示旋转的四元数,四元数中包括四个浮点数;
本步骤可以通过如下流程实现:
11)、获取位于旋转曲线两端的第一浮点数和第二浮点数;
12)、利用第一浮点数和第二浮点数拟合得到目标点;获取目标点的四元数。
参见如下公式(1):
Result_point=P0*(-0.5*t*t*t+t*t–0.5*t)+P1*(1.5*t*t*t-2.5*t*t+1.0)+P2*(-1.5*t*t*t+2.0*t*t+0.5*t)+P3*(0.5*t*t*t–0.5*t*t)……(1);
令t=0,得到p1点,令t=1,得到p2点,然而,绘制出p1到p2之间的各个点,得到以p1和p2为端点的曲线。
以p0和p1为端点的曲线以及以p2和p3为端点的曲线也可以通过上述方法绘制得到,在此不做详述。
本发明实施例中,将以p0和p3为端点的曲线中的任意一个点为目标点进行举例说明,但不作为对本发明实施例保护范围的限制。
在步骤S102中,将四元数进行归一化处理;
在步骤S103中,从四元数中剔除一个浮点数;
进一步地,还可以减少剩余的三个浮点数的比特位。例如,三个浮点数的比特位原本均为32bit,四个浮点数一共128bit。本发明实施例可以将剩余的三个浮点数的比特位均减少为15bit,另外再加上2个标记位和1个空闲位,一共48bit,从而可以减少bit数。
在本发明一个实施例中,可以从四元数中随机选择一个浮点数,并剔除选择的浮点数。
在本发明另一实施例中,从四元数中剔除最大的浮点数,如此可以尽可能地保持剩余的三个浮点数的精度。消掉最掉一个数,才能让15个bit尽可能地达到16bit浮点数的精度,因为如果w是最大的,那x*x<1/2,并且y*y<1/2并且z*z<1/2,否则w最大不成立。
在步骤S104中,存储剩余的三个浮点数。
在本发明实施例中,将四元数归一化处理之后,从四元数中剔除一个浮点数,存储剩余的三个浮点数,如此,之后当需要使用四元数时,可以根据剩余的三个浮点数计算得到被踢出的该一个浮点数,进而得到四元数。可见,通过本发明实施例的数据压缩存储方法,可以提高压缩比,节省存储空间。
在本发明另一实施例中,在读取目标点的位置数据、放缩数据和旋转四元数时,可以将位置数据、放缩数据和旋转四元数同时加载在一段连续的内存中,可以避免发生cashemiss。
图2是根据一示例性实施例示出的一种动画数据压缩存储装置的结构示意图。参照图2,该装置包括:
获取模块11,用于获取曲线中的目标点的用于表示旋转的四元数,所述四元数中包括四个浮点数;
归一化模块12,用于将所述四元数进行归一化处理;
剔除模块13,用于从所述四元数中剔除一个浮点数;
存储模块14,用于存储剩余的三个浮点数。
其中,所述剔除模块13具体用于从所述四元数中剔除最大的浮点数。
进一步地,所述装置还包括:
减少模块,用于减少剩余的三个浮点数的比特位。
其中,所述获取模块11包括:
获取单元,用于获取位于旋转曲线两端的第一浮点数和第二浮点数;
拟合单元,用于利用第一浮点数和第二浮点数拟合得到目标点;
获取单元,用于获取所述目标点的四元数。
进一步地,所述装置还包括:
加载模块,用于在读取所述目标点的位置数据、放缩数据和旋转四元数时,将位置数据、放缩数据和旋转四元数同时加载在一段连续的内存中。可以避免发生cashe miss。因为动画数据是连续读取的,如果位的大小不一致,很难cache aline,这里我们能把位置数据、旋转数据以及放缩数据都放到48bit里,就可以连续地访问内存。
在本发明实施例中,将四元数归一化处理之后,从四元数中剔除一个浮点数,存储剩余的三个浮点数,如此,之后当需要使用四元数时,可以根据剩余的三个浮点数计算得到被踢出的该一个浮点数,进而得到四元数。可见,通过本发明实施例的数据压缩存储方法,可以提高压缩比,节省存储空间。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明实施例的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明实施例的一般性原理并包括本发明实施例未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明实施例的真正范围和精神由所附的权利要求指出。
应当理解的是,本发明实施例并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明实施例的范围仅由所附的权利要求来限制。
Claims (10)
1.一种动画数据压缩存储方法,其特征在于,所述方法包括:
获取曲线中的目标点的用于表示旋转的四元数,所述四元数中包括四个浮点数;
将所述四元数进行归一化处理;
从所述四元数中剔除一个浮点数;
存储剩余的三个浮点数。
2.根据权利要求1所述的方法,其特征在于,所述从所述四元数中剔除一个浮点数,包括:
从所述四元数中剔除最大的浮点数。
3.根据权利要求2所述的方法,其特征在于,所述存储剩余的三个浮点数之前,还包括:
减少剩余的三个浮点数的比特位。
4.根据权利要求1所述的方法,其特征在于,所述获取旋转曲线中的目标点的四元数,包括:
获取位于旋转曲线两端的第一浮点数和第二浮点数;
利用第一浮点数和第二浮点数拟合得到目标点;
获取所述目标点的四元数。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在读取所述目标点的位置数据、放缩数据和旋转四元数时,将位置数据、放缩数据和旋转四元数同时加载在一段连续的内存中。
6.一种动画数据压缩存储装置,其特征在于,所述装置包括:
获取模块,用于获取曲线中的目标点的用于表示旋转的四元数,所述四元数中包括四个浮点数;
归一化模块,用于将所述四元数进行归一化处理;
剔除模块,用于从所述四元数中剔除一个浮点数;
存储模块,用于存储剩余的三个浮点数。
7.根据权利要求6所述的装置,其特征在于,所述剔除模块具体用于从所述四元数中剔除最大的浮点数。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
减少模块,用于减少剩余的三个浮点数的比特位。
9.根据权利要求6所述的装置,其特征在于,所述获取模块包括:
获取单元,用于获取位于旋转曲线两端的第一浮点数和第二浮点数;
拟合单元,用于利用第一浮点数和第二浮点数拟合得到目标点;
获取单元,用于获取所述目标点的四元数。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
加载模块,用于在读取所述目标点的位置数据、放缩数据和旋转四元数时,将位置数据、放缩数据和旋转四元数同时加载在一段连续的内存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710912243.6A CN107730437A (zh) | 2017-09-29 | 2017-09-29 | 数据压缩存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710912243.6A CN107730437A (zh) | 2017-09-29 | 2017-09-29 | 数据压缩存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107730437A true CN107730437A (zh) | 2018-02-23 |
Family
ID=61209438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710912243.6A Pending CN107730437A (zh) | 2017-09-29 | 2017-09-29 | 数据压缩存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107730437A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110430270A (zh) * | 2019-08-08 | 2019-11-08 | 网易(杭州)网络有限公司 | 载具数据的同步方法及装置 |
CN110825323A (zh) * | 2019-10-25 | 2020-02-21 | 上海钒兆钛智能科技有限公司 | 浮点数数据的存储、读取方法和计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102932001A (zh) * | 2012-11-08 | 2013-02-13 | 大连民族学院 | 运动捕获数据压缩、解压缩方法 |
CN102999923A (zh) * | 2012-12-24 | 2013-03-27 | 大连大学 | 基于自适应阈值的运动捕捉数据的关键帧提取方法 |
CN103294832A (zh) * | 2013-06-27 | 2013-09-11 | 西安工业大学 | 一种基于反馈学习的运动捕获数据检索方法 |
CN104732574A (zh) * | 2014-12-30 | 2015-06-24 | 北京像素软件科技股份有限公司 | 一种角色游戏的压缩装置及装置 |
CN105427363A (zh) * | 2015-11-13 | 2016-03-23 | 华北理工大学 | 一种骨骼动画文件的存储方法 |
US20160086353A1 (en) * | 2014-09-24 | 2016-03-24 | University of Maribor | Method and apparatus for near-lossless compression and decompression of 3d meshes and point clouds |
CN105513099A (zh) * | 2015-11-27 | 2016-04-20 | 北京像素软件科技股份有限公司 | 一种骨骼动画数据的压缩方法及装置 |
-
2017
- 2017-09-29 CN CN201710912243.6A patent/CN107730437A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102932001A (zh) * | 2012-11-08 | 2013-02-13 | 大连民族学院 | 运动捕获数据压缩、解压缩方法 |
CN102999923A (zh) * | 2012-12-24 | 2013-03-27 | 大连大学 | 基于自适应阈值的运动捕捉数据的关键帧提取方法 |
CN103294832A (zh) * | 2013-06-27 | 2013-09-11 | 西安工业大学 | 一种基于反馈学习的运动捕获数据检索方法 |
US20160086353A1 (en) * | 2014-09-24 | 2016-03-24 | University of Maribor | Method and apparatus for near-lossless compression and decompression of 3d meshes and point clouds |
CN104732574A (zh) * | 2014-12-30 | 2015-06-24 | 北京像素软件科技股份有限公司 | 一种角色游戏的压缩装置及装置 |
CN105427363A (zh) * | 2015-11-13 | 2016-03-23 | 华北理工大学 | 一种骨骼动画文件的存储方法 |
CN105513099A (zh) * | 2015-11-27 | 2016-04-20 | 北京像素软件科技股份有限公司 | 一种骨骼动画数据的压缩方法及装置 |
Non-Patent Citations (1)
Title |
---|
苗继松 等: "基于三元角的坐标旋转变换方法", 《北京航空航天大学学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110430270A (zh) * | 2019-08-08 | 2019-11-08 | 网易(杭州)网络有限公司 | 载具数据的同步方法及装置 |
CN110430270B (zh) * | 2019-08-08 | 2022-03-25 | 网易(杭州)网络有限公司 | 载具数据的同步方法及装置 |
CN110825323A (zh) * | 2019-10-25 | 2020-02-21 | 上海钒兆钛智能科技有限公司 | 浮点数数据的存储、读取方法和计算机可读存储介质 |
CN110825323B (zh) * | 2019-10-25 | 2023-04-11 | 上海钒钛智能科技有限公司 | 浮点数数据的存储、读取方法和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6916751B2 (ja) | ハイブリッドメモリーモジュール及びその動作方法 | |
US9342919B2 (en) | Image rendering apparatus and method for preventing pipeline stall using a buffer memory unit and a processor | |
KR102147356B1 (ko) | 캐시 메모리 시스템 및 그 동작방법 | |
US20040196281A1 (en) | Head/data request in 3D graphics | |
EP3267325A1 (en) | Page phase time | |
CN104915461B (zh) | 页面展示方法和装置 | |
CN106951323A (zh) | 应用程序本地缓存方法和装置 | |
US20130346696A1 (en) | Method and apparatus for providing shared caches | |
CN107730437A (zh) | 数据压缩存储方法及装置 | |
CN104794228A (zh) | 一种搜索结果提供方法及装置 | |
CN101420484B (zh) | 用于移动终端的壁纸显示方法以及移动终端 | |
US20110069065A1 (en) | Image processing apparatus, computer readable medium and method thereof | |
CN105959814A (zh) | 基于场景识别的视频弹幕显示方法及其显示装置 | |
US6456291B1 (en) | Method and apparatus for multi-pass texture mapping | |
CN105550246A (zh) | Android平台下加载网络图片的系统及方法 | |
CN109558091A (zh) | 查找表存储方法、装置及计算机可读存储介质 | |
CN104637039A (zh) | 一种图片处理的方法及装置 | |
US20050225558A1 (en) | Two level cache memory architecture | |
US10460502B2 (en) | Method and apparatus for rendering object using mipmap including plurality of textures | |
CN107577775A (zh) | 一种读取数据方法、装置、电子设备及可读存储介质 | |
CN106569805A (zh) | 一种画布存储、图形绘制方法和设备 | |
US9606926B2 (en) | System for pre-fetching data frames using hints from work queue scheduler | |
JP2009282920A (ja) | キャッシュメモリ装置 | |
US8264612B2 (en) | Method of raster-scan search for multi-region on-screen display and system using the same | |
CN108196975A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180223 |
|
WD01 | Invention patent application deemed withdrawn after publication |