CN110222011B - 一种人体运动数据文件压缩方法 - Google Patents
一种人体运动数据文件压缩方法 Download PDFInfo
- Publication number
- CN110222011B CN110222011B CN201910463698.3A CN201910463698A CN110222011B CN 110222011 B CN110222011 B CN 110222011B CN 201910463698 A CN201910463698 A CN 201910463698A CN 110222011 B CN110222011 B CN 110222011B
- Authority
- CN
- China
- Prior art keywords
- value
- binary
- human motion
- data
- motion data
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Processing Or Creating Images (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及一种人体运动数据文件压缩方法,包括以下步骤:(1)提取人体运动数据文件中每个节点的旋转角;(2)将旋转角表示成角度值或弧度值;(3)将角度值或弧度值拆分为符号、整数部分、小数部分;(4)根据整数部分最大可能取值确定整数位数X;(5)根据系统允许的最大误差确定小数部分二进制位数Y;(6)对每个角度值或弧度值进行压缩,将每个角度值或弧度值的符号用1位二进制位表示,整数部分转换成X位二进制位,小数部分转换成Y位二进制位;(7)将压缩后的数据以二进制形式持久化到存储设备或进行网络传输。本发明针对人体运动数据文件的数据特点对数据进行压缩,极大地减少了数据存储空间,提高了存储效率。
Description
技术领域
本发明涉及一种文件压缩方法,特别涉及一种人体运动数据文件压缩方法。
背景技术
随着信息技术的高速发展,人们对使用数据驱动的动画技术、仿真技术进行了广泛的探索与研究。这些技术主要是通过穿戴运动捕捉设备来实现人体运动数据的实时数据采集,同时使用相对比较成熟的运动重构技术对采集的人体运动数据进行三维重现。
人体运动数据记录了每一时刻人体骨骼及其关节的位置信息或旋转信息。人体骨骼通常包含很多关节,每个关节都包含有不同的运动属性,且每一个运动属性可能由多维向量来表示,如三元组欧拉角或四元数,则毎一个简化的人体姿态就会包含几十个数据,而人体运动数据的采集频率至少为每秒钟几十次。很多情况下人体运动数据采集还会面临规模较大、时间较长的问题,使得采集数据规模进一步增加。如何对这些人体运动数据进行数据压缩以及高效存储成为一个亟待解决的问题。
发明内容
本发明的目的在于针对现有技术的不足,提供一种人体运动数据文件压缩方法,实现人体运动数据的高效存储。
为达到上述目的,本发明提供了一种人体运动数据文件压缩方法,包括以下步骤:
(1)提取人体运动数据文件中每个节点的旋转角;
(2)将旋转角表示成角度值或弧度值;
(3)将角度值或弧度值拆分为符号、整数部分、小数部分;
(4)将整数部分最大可能取值转换成二进制整数,位数为X位;
(5)根据系统允许的最大误差,确定小数部分二进制位数Y;
(6)对每个角度值或弧度值进行压缩,具体方法为:将每个角度值或弧度值的符号用1位二进制位表示,整数部分转换成二进制整数并用X位二进制位表示,小数部分转换成二进制小数并用Y位二进制位表示;
(7)将压缩后的数据以二进制形式持久化到存储设备或进行网络传输。
优选地,所述人体运动数据文件压缩方法使用角度值,包括以下步骤:
(1)提取人体运动数据文件中每个节点的旋转角,表示成角度值形式,将其拆分为符号、整数部分、小数部分;
(2)将符号用1位二进制位表示,整数部分转换成二进制整数并用8位二进制位表示,小数部分转换成二进制小数并用5位或6位二进制位表示,这样每个节点的旋转角就压缩为14位或15位的二进制位;
(3)将压缩后的数据以二进制形式持久化到存储设备或进行网络传输。
优选地,所述人体运动数据文件压缩方法使用弧度值,包括以下步骤:
(1)提取人体运动数据文件中每个节点的旋转角,将角度值转换为弧度值,并将弧度值拆分为符号、整数部分、小数部分;
(2)将符号用1位二进制位表示,整数部分转换成二进制整数并用2位二进制位表示,小数部分转换成二进制小数并用11位二进制位表示,这样每个节点的旋转角就压缩为14位的二进制位;
(3)将压缩后的数据以二进制形式持久化到存储设备或进行网络传输。
有益效果
本发明提出的人体运动数据文件压缩方法,针对人体运动数据文件的数据特点对数据进行压缩,极大地减少了数据存储空间,提高了存储效率。
附图说明
图1为本发明所述方法的流程图;
图2为BVH文件头的文件结构;
图3为BVH文件数据段的文件结构。
具体实施方式
下面结合附图,具体说明本发明的优选实施方式。
传统的惯性运动捕捉设备采集人体运动数据时,通常会将原始运动数据存储为BVH文件,其遵循的思想为基于父子节点关系的数据转换。由于BVH文件存在父子节点关系,因此文件通常可划分为两个部分,其一为存储人体骨骼层次结构的文件头,如图2所示,通常以HIERARCHY为文件起始标识、以ROOT为人体骨骼层次结构的起始点的标识,能够清晰的把人体骨骼层次结构所存在的内部联系通过简洁的形式呈现出来,也能够把人体骨骼节点所需要使用的数据种类及数据范围给标定好;其二为存储具体运动数据的数据段,如图3所示,通常以MOTION为数据段的起始标识、以Frames为包含多少运动序列的长度标识,能够将特有的人体骨骼层次结构与具体运动数据区分开来。
从图2和图3的示例中可知,该人体骨骼层次以Hips作为根节点,根节点需要使用的数据包含六个维度的信息,分别为世界坐标系下根节点的位移信息以及局部坐标系下旋转角信息。图3中的数据(-195.76,92.90,76.64)是根节点起始帧的位移信息,而数据(6.83,-1.04,91.45)是根节点起始帧的旋转角信息。除根节点数据以外,任意骨骼节点的数据都只由三个旋转角数据构成,具体为俯仰角、翻滚角、航偏角数据。
文件在存储的时候可以采取文本方式或者二进制方式。在人体运动数据采集过程中,通常需要存储的旋转角数据范围被限制在[-180,180]之间。假设BVH文件的存储精度为小数点后两位,如果使用文本方式存储,则存储一个旋转角信息所需要占用的空间大小至少为4字节,至多为7字节,如0.42和-180.00分别占据了4字节大小的硬盘空间及7字节大小的硬盘空间。同时为了能够非常方便的取得下一个旋转角的信息,通常还需要1字节大小的空格作为分隔符。因此,如果使用文本方式存储BVH文件,那么在一帧数据中存储一个骨骼节点的旋转角信息至少需要15字节的硬盘空间,至多需要24字节的硬盘空间。这还只是存储精度为小数点后两位的情况,如果精度更高,会相应占用更多存储空间。
比较而言,二进制方式更适合用于BVH文件的存储。如果采用二进制方式,每个旋转角信息可以存储为一个单精度浮点数。以被众多CPU处理器及浮点数运算器所采用的IEEE 754标准为例,一个单精度浮点数占用4个字节的存储空间,如表1所示:
表1单精度浮点数存储结构
采用二进制方式,每个旋转角使用4个字节存储,在一帧数据中存储一个骨骼节点的旋转角信息只需要12字节的存储空间,比起文本方式可以提高存储效率,同时比起文本方式也可以获得更高的精度。
由于人体运动数据采集数据规模很大,在需要对采集的动作进行监督时还需要将数据文件在网络上进行传输,对每个旋转角使用4个字节进行存储,仍然不能满足对存储空间和传输速度的需求。因此本发明根据人体运动数据文件的数据特点,提出了一种人体运动数据文件压缩方法,包括以下步骤:
(1)提取人体运动数据文件中每个节点的旋转角;
(2)将旋转角表示成角度值或弧度值;
(3)将角度值或弧度值拆分为符号、整数部分、小数部分;
(4)将整数部分最大可能取值转换成二进制整数,位数为X位;
(5)根据系统允许的最大误差,确定小数部分二进制位数Y;
(6)对每个角度值或弧度值进行压缩,具体方法为:将每个角度值或弧度值的符号用1位二进制位表示,整数部分转换成二进制整数并用X位二进制位表示,小数部分转换成二进制小数并用Y位二进制位表示;
(7)将压缩后的数据以二进制形式持久化到存储设备或进行网络传输。
下面分别以角度值和弧度值为例,具体说明本发明的优选实施方式。
实施例1为以角度值形式实现的数据文件压缩方法。在BVH文件中,根节点数据包含三个位移数据和三个旋转角数据,除根节点数据以外,任意骨骼节点的数据都只由三个旋转角数据构成。因此,首先提取人体运动数据文件中每个节点的旋转角。在人体运动数据采集过程中,通常需要存储的旋转角数据范围被限制在[-180,180]之间。由于本实施例采取角度值形式,所以不需要对旋转角数据进行转换,可以直接将角度值拆分为符号、整数部分和小数部分。
抛开符号位来看,每个旋转角的整数部分的取值范围都处于[0,180]之间,那么8位的二进制数据足以完整表达。再对小数部分进行分析,由于市场上精度最高的惯性运动捕捉设备的骨骼传感器精度约为0.02度,因此可以据此确定保留的小数位数,也就是确定压缩后数据的精度,使得压缩后的数据与原始数据的误差接近0.02度。当二进制小数位保留至5位时,可以表示的数据精度为0.03125,当二进制小数位保留至6位时,可以表示的数据精度为0.015625。用户可以根据具体的应用需求确定需要保留5位还是6位,即可以满足人体运动数据的精度需求。
确定了整数位数和小数位数之后,就可以对每个角度值进行压缩,具体方法为:将每个角度值的符号用1位二进制位表示,整数部分转换成二进制整数并用8位二进制位表示,小数部分转换成二进制小数并用5位或6位二进制位表示。其具体存储结构如表2所示:
表2对角度值进行压缩的存储结构
对每个旋转角数据用以上方式进行压缩后,所有的旋转角数据都被转换成14位或15位的二进制数据。将压缩后的数据以二进制形式持久化到存储设备或进行网络传输。
采用上述压缩方法,一个旋转角需要保存的数据总共占了14或者15位的存储空间,一个骨骼节点所需要存储的数据占用42或者45位的存储空间。而采用通常单精度浮点数的形式进行存储,一个骨骼节点所需要存储的数据需要占用12字节即96位的存储空间。因此本发明所述方法可以极大的节省存储空间,提高存储的时间和空间效率,特别适用于大规模、长时间、实时采集人体运动数据的应用。
实施例2为以弧度值形式实现的数据文件压缩方法。在人体运动数据采集过程中,通常需要存储的旋转角数据范围被限制在[-180,180]之间。由于有的应用使用的是弧度值信息,所以需要将旋转角数据表示成弧度值,即将每个角度值转换为弧度值。[-180,180]的角度范围对应的弧度范围为[-3.1416,3.1416]。将弧度值拆分为符号、整数部分和小数部分。
抛开符号位来看,每个弧度值的整数部分使用2位的二进制数据足以完整表达。再对小数部分进行分析,由于市场上精度最高的惯性运动捕捉设备的骨骼传感器精度约为0.02度,因此可以据此确定保留的小数位数,也就是确定压缩后数据的精度,使得压缩后的数据与原始数据的误差接近0.02度。当二进制小数位保留至11位时,可以表示的数据精度为2-11,这是对应的弧度值的误差,转化为角度值约为0.028。此时可以认为压缩后的旋转角数据基本能够将原始数据还原出来。
确定了整数位数和小数位数之后,就可以对每个弧度值进行压缩,具体方法为:将每个弧度值的符号用1位二进制位表示,整数部分转换成二进制整数并用2位二进制位表示,小数部分转换成二进制小数并用11位二进制位表示。其具体存储结构如表3所示:
表3对弧度值进行压缩的存储结构
对每个旋转角弧度值数据用以上方式进行压缩后,所有的旋转角数据都被转换成14位的二进制数据。将压缩后的数据以二进制形式持久化到存储设备或进行网络传输。
采用上述压缩方法,一个旋转角需要保存的数据总共占了14位的存储空间,一个骨骼节点所需要存储的数据占用42位的存储空间。而采用通常单精度浮点数的形式进行存储,一个骨骼节点所需要存储的数据需要占用12字节即96位的存储空间。因此本发明所述方法可以极大的节省存储空间,提高存储的时间和空间效率,特别适用于大规模、长时间、实时采集人体运动数据的应用场景。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入本发明权利要求所限定的范围之内。
Claims (3)
1.一种人体运动数据文件压缩方法,其特征在于,包括以下步骤:
(1)提取人体运动数据文件中每个节点的旋转角;
(2)将旋转角表示成角度值或弧度值;
(3)将角度值或弧度值拆分为符号、整数部分、小数部分;
(4)将整数部分最大可能取值转换成二进制整数,位数为X位;
(5)根据系统允许的最大误差,确定小数部分二进制位数Y;
(6)对每个角度值或弧度值进行压缩,具体方法为:将每个角度值或弧度值的符号用1位二进制位表示,整数部分转换成二进制整数并用X位二进制位表示,小数部分转换成二进制小数并用Y位二进制位表示;
(7)将压缩后的数据以二进制形式持久化到存储设备或进行网络传输。
2.根据权利要求1所述的一种人体运动数据文件压缩方法,其特征在于,包括以下步骤:
(1)提取人体运动数据文件中每个节点的旋转角,表示成角度值形式,将其拆分为符号、整数部分、小数部分;
(2)将符号用1位二进制位表示,整数部分转换成二进制整数并用8位二进制位表示,小数部分转换成二进制小数并用5位或6位二进制位表示,这样每个节点的旋转角就压缩为14位或15位的二进制位;
(3)将压缩后的数据以二进制形式持久化到存储设备或进行网络传输。
3.根据权利要求1所述的一种人体运动数据文件压缩方法,其特征在于,包括以下步骤:
(1)提取人体运动数据文件中每个节点的旋转角,将角度值转换为弧度值,并将弧度值拆分为符号、整数部分、小数部分;
(2)将符号用1位二进制位表示,整数部分转换成二进制整数并用2位二进制位表示,小数部分转换成二进制小数并用11位二进制位表示,这样每个节点的旋转角就压缩为14位的二进制位;
(3)将压缩后的数据以二进制形式持久化到存储设备或进行网络传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910463698.3A CN110222011B (zh) | 2019-05-30 | 2019-05-30 | 一种人体运动数据文件压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910463698.3A CN110222011B (zh) | 2019-05-30 | 2019-05-30 | 一种人体运动数据文件压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110222011A CN110222011A (zh) | 2019-09-10 |
CN110222011B true CN110222011B (zh) | 2021-06-15 |
Family
ID=67818999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910463698.3A Active CN110222011B (zh) | 2019-05-30 | 2019-05-30 | 一种人体运动数据文件压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110222011B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104776A (zh) * | 2019-12-23 | 2020-05-05 | 苏州思必驰信息科技有限公司 | 一种浮点数处理方法、装置及电子设备 |
CN112665886B (zh) * | 2020-12-11 | 2023-06-27 | 浙江中控技术股份有限公司 | 一种大型旋转机械振动测量高频原始数据的数据转换方法 |
CN113032506B (zh) * | 2021-03-23 | 2022-03-04 | 鲁东大学 | 一种矢量位置数据的存储与传输方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201364163Y (zh) * | 2008-12-30 | 2009-12-16 | 上海骏图电子科技有限公司 | 高精度磁性编码器 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020184193A1 (en) * | 2001-05-30 | 2002-12-05 | Meir Cohen | Method and system for performing a similarity search using a dissimilarity based indexing structure |
CN104951489B (zh) * | 2014-09-04 | 2017-09-15 | 国网山东省电力公司应急管理中心 | 一种应用于电力系统的气象数据解析处理方法 |
CN104504731B (zh) * | 2014-12-19 | 2017-08-22 | 西安理工大学 | 基于运动图的人体运动合成方法 |
CN106157339B (zh) * | 2016-07-05 | 2019-06-18 | 华南理工大学 | 基于低秩顶点轨迹子空间提取的动画网格序列压缩方法 |
-
2019
- 2019-05-30 CN CN201910463698.3A patent/CN110222011B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201364163Y (zh) * | 2008-12-30 | 2009-12-16 | 上海骏图电子科技有限公司 | 高精度磁性编码器 |
Also Published As
Publication number | Publication date |
---|---|
CN110222011A (zh) | 2019-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110222011B (zh) | 一种人体运动数据文件压缩方法 | |
CN110830807B (zh) | 图像压缩方法、装置及存储介质 | |
JP2004177965A (ja) | データを符号化するためのシステム及び方法 | |
CN103702133B (zh) | 一种图像压缩展示方法及其装置 | |
CN111161365B (zh) | 一种骨骼动画数据的压缩方法及装置 | |
CN108492338B (zh) | 动画文件的压缩方法、装置、存储介质和电子装置 | |
CN105024702A (zh) | 一种面向科学计算的浮点型数据无损压缩方法 | |
JP2002329217A (ja) | 3次元オブジェクトの形態変形情報の符号化方法及びその装置 | |
CN108259908A (zh) | 用于编码和解码像素列表的方法和装置 | |
US6757432B2 (en) | Apparatus for transmitting and/or receiving stream data and method for producing the same | |
Chattopadhyay et al. | Human motion capture data compression by model-based indexing: A power aware approach | |
CN102510434A (zh) | 一种图像数据发送、恢复方法、装置及终端 | |
CN110197576B (zh) | 一种大规模实时人体动作采集重构系统 | |
Taj-Eddin et al. | A new compression technique for surveillance videos: evaluation using new dataset | |
CN106506961B (zh) | 一种图像处理系统以及图像处理方法 | |
CN104682966B (zh) | 列表数据的无损压缩方法 | |
CN107005657A (zh) | 处理数据的方法、装置、芯片和摄像头 | |
CN108259515A (zh) | 一种适用于带宽受限下传输链路的无损信源压缩方法 | |
CN1193319C (zh) | 用于图形动画的关键码数据的编码和译码装置和方法 | |
CN113422965A (zh) | 一种基于生成对抗网络的图像压缩方法及装置 | |
US20050047665A1 (en) | Method for segmenting moving object of compressed moving image | |
CN108011884B (zh) | 一种姿态数据传输优化方法及装置 | |
Gong et al. | A Lossless Compression Method for Event Cameras via Removing Spatial Redundancy | |
CN111769837A (zh) | 一种二进制信息的压缩结构及其无限压缩方法 | |
CN105701858A (zh) | 一种基于alpha融合的贴图处理方法及装置 |
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 |