CN117278053A - 一种gltf-json格式数据压缩方法、系统及装置 - Google Patents

一种gltf-json格式数据压缩方法、系统及装置 Download PDF

Info

Publication number
CN117278053A
CN117278053A CN202311531972.9A CN202311531972A CN117278053A CN 117278053 A CN117278053 A CN 117278053A CN 202311531972 A CN202311531972 A CN 202311531972A CN 117278053 A CN117278053 A CN 117278053A
Authority
CN
China
Prior art keywords
data
coding rule
coding
byte
gltf
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.)
Granted
Application number
CN202311531972.9A
Other languages
English (en)
Other versions
CN117278053B (zh
Inventor
钱自成
杨兆静
陈操
王渊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Zhimeng Power Co ltd
Original Assignee
Nanjing Zhimeng Power Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Zhimeng Power Co ltd filed Critical Nanjing Zhimeng Power Co ltd
Priority to CN202311531972.9A priority Critical patent/CN117278053B/zh
Publication of CN117278053A publication Critical patent/CN117278053A/zh
Application granted granted Critical
Publication of CN117278053B publication Critical patent/CN117278053B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明涉及JSON数据处理领域,公开了一种GLTF‑JSON格式数据压缩方法、系统及装置,其技术方案要点是包括如下步骤:S1、根据GLTF‑JSON格式标准,构建数据压缩编码规则;所述数据压缩编码规则包括数据描述编码规则和以数据类型为基础的数据对象编码规则,所述数据描述编码规则用于将数据对象描述映射成标准格式的字节编码结构体,所述数据对象编码规则用于对数据对象按照数据类型进行区别编码;所述数据对象编码规则包括独立数据对象编码规则和数据组合对象编码规则;S2、响应于数据压缩指令,获取目标对象数据,根据数据压缩编码规则,将目标对象数据转化得到标准格式的字节编码。

Description

一种GLTF-JSON格式数据压缩方法、系统及装置
技术领域
本发明涉及JSON数据处理领域,更具体地说,它涉及一种GLTF-JSON格式数据压缩方法、系统及装置。
背景技术
GLTF格式的目标是为3D内容的数据格式提供统一的标准,方便应用程序读取进行渲染。目前来说已经存在的3D数据格式不是没有包含场景数据,就是包含一些只能用于特定创作软件的数据,许多时候,需要对几何数据进行预处理才能直接用于渲染。
目前而言,现存的3D数据格式不能够方便地在互联网上进行传输,以及直接高效地进行渲染。GLTF的目标是作为一个中转格式,而不是另一个新的3D数据格式,GLTF格式具备以下特点:
1)使用JSON来描述场景结构,可以方便地被应用程序分析处理。
2)3D数据以一种可以被大多数图形API直接使用的方式进行存储,不需要应用程序进行解码或预处理操作。
GLTF作为一个标准的3d场景和模型文件格式,有两种文件扩展名:.gltf(JSON/ASCII)或者.glb(二进制文件)两种类型。对于JSON格式来说,相对于二进制格式,JSON格式有着更好的可读性,同时通过JSON格式可以方便的引用外部资源,但是JSON格式是结构化字符串格式,如果3D模型元素多,结构复杂度高,会导致GLTF-JSON描述文件体积增大,甚至可以达到几百MB大小,通过web方式请求加载,会导致严重加载延迟,影响用户体验,不利于web方式传输。目前现有的压缩手段主要是针对三维模型中的图片、纹理等二进制图片文件进行图像压缩来实现模型整体的体积减少,没有专门针对GLTF-JSON描述文件的压缩方法,导致JSON文件本身如果体积过大,就会出现数据压缩瓶颈。
发明内容
本发明的目的是提供一种GLTF-JSON格式数据压缩方法、系统及装置,可以在不损失信息内容的情况下,能够显著降低GLTF-JSON格式文件的尺寸。
本发明的上述技术目的是通过以下技术方案得以实现的:一种GLTF-JSON格式数据压缩方法,其特征是:包括如下步骤:
S1、根据GLTF-JSON格式标准,构建数据压缩编码规则;所述数据压缩编码规则包括数据描述编码规则和以数据类型为基础的数据对象编码规则;
所述数据描述编码规则用于将数据对象描述映射成标准格式的字节编码结构体,所述数据对象编码规则用于对数据对象按照数据类型进行区别编码;所述数据对象编码规则包括独立数据对象编码规则和数据组合对象编码规则;所述独立数据对象编码规则用于对独立数据对象,映射生成独立字节编码;所述数据组合对象编码规则用于根据对数据组合对象中包含的独立数据对象的独立字节编码,映射生成组合字节编码;
S2、响应于数据压缩指令,获取目标对象数据,根据数据压缩编码规则,将目标对象数据转化得到标准格式的字节编码。
作为本发明的一种优选技术方案,S2包括如下子步骤:
S2.1、获取目标对象数据;
S2.2、解析得到目标对象数据中的数据类型;
S2.3、根据目标对象数据的数据类型,调用对应的数据压缩编码规则,包括如下a、b种情况:
a、若目标对象数据的数据类型为独立数据对象,则调用所述独立数据对象编码规则和所述数据描述编码规则,按照标准格式输出目标对象数据的字节编码;
b、若目标对象数据的类型为数据组合对象,则依次执行以下b1、b2、b3;
b1、调用所述数据组合对象编码规则和数据描述编码规则,按照标准格式生成含有未编码元素对象的字节编码;
b2、将未编码元素对象作为目标对象数据,再依次执行S2.2、S2.3,直至未编码元素对象的数据类型为独立数据对象,并得到对应的标准格式字节编码后,执行b3;
b3、将b2步骤中得到的字节编码以逆序逐步嵌套入b1步骤中得到的字节编码,得到目标对象数据的完整的标准格式字节编码。
作为本发明的一种优选技术方案,在S2执行后,还需执行S3,S3的内容包括:在得到目标对象数据转化的标准格式的字节编码后,对其制作成压缩文件,并且在压缩编码文件内容中设置头部校验信息,所述头部校验信息用于表示目标对象数据的统计信息。
作为本发明的一种优选技术方案,所述头部校验信息包括通过字节编码表示的json字节编码整体字节长度和每种数据类型的数据数量长度。
作为本发明的一种优选技术方案,所述数据描述编码规则包括:数据类型编码规则、数据长度编码规则、数据内容描述编码规则,所述数据类型编码规则用于根据数据对象的数据类型,映射得到对应的字节编码;所述数据长度编码规则用于根据数据对象的数据长度,映射得到对应的字节编码,所述数据内容编码规则用于根据数据对象的数据内容,映射得到对应的字节编码。
作为本发明的一种优选技术方案,所述独立数据对象编码规则包括:KEY值对象编码规则、字符串编码规则、有符号整形编码规则、有符号浮点数编码规则,所述数据组合对象编码规则包括:KEY值对象数组编码规则、字符串数组编码规则、有符号整形数组编码规则、有符号浮点数组编码规则。
作为本发明的一种优选技术方案,所述key值对象编码规则包括若干key词条和与key词条对应的字节编码,所述key值对象编码规则用于将key词条映射成对应的字节编码,所述key词条包括陌生词条和若干普通key词条,所有陌生词条对应的字节编码是相同的,并通过内容编码来进行表示。
作为本发明的一种优选技术方案,获取任一目标key词条编码的过程为:
取得目标key词条,判断目标key词条是否为普通key词条,若目标key词条为普通key词条,则输出对应的字节编码,若目标key词条为陌生词条,则输出的字节编码为:陌生词条对应的字节编码+目标key词条的Ascall码。
一种GLTF-JSON格式数据压缩系统,包括:
规则构建模块,用于根据GLTF-JSON格式标准,构建数据压缩编码规则;所述数据压缩编码规则包括数据描述编码规则和以数据类型为基础的数据对象编码规则,
所述数据描述编码规则用于将数据对象描述映射成标准格式的字节编码结构体,所述数据对象编码规则用于对数据对象进按照数据类型进行区别编码;所述数据对象编码规则包括独立数据对象编码规则和数据组合对象编码规则;所述独立数据对象编码规则用于对独立数据对象,映射生成独立字节编码;所述数据组合对象编码规则用于根据对数据组合对象中包含的独立数据对象的独立字节编码,映射生成组合字节编码;
压缩执行模块,用于响应数据压缩指令,获取目标对象数据,根据数据压缩编码规则,将目标对象数据转化得到标准格式的字节编码。
一种GLTF-JSON格式数据压缩装置,包括:处理器和存储器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
综上所述,本发明具有以下有益效果:通过本压缩方法的使用,可以在不损失信息内容的情况下,能够显著降低GLTF-JSON格式文件的尺寸,压缩比能够达到50%以上,并且体积越大,压缩比越高,利用前端Blob字节传输方式,能够显著提高文件的传输效率。在有限的带宽条件下,能够有效提升复杂三维模型在web浏览器加载和展示的效率,从而提升用户体验。
附图说明
图1是本发明的方法流程图。
图2是本发明中key词条字节编码规则解析流程示意图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
本发明提供一种GLTF-JSON格式数据压缩方法和系统,如图1所示,通过系统中的规则构建模块和压缩执行模块执行如下步骤:
S1、根据GLTF-JSON格式标准,构建数据压缩编码规则;数据压缩编码规则包括数据描述编码规则和以数据类型为基础的数据对象编码规则;
数据描述编码规则用于将数据对象描述映射成标准格式的字节编码结构体;
数据描述编码规则包括:数据类型编码规则、数据长度编码规则、数据内容描述编码规则;
数据类型编码规则用于根据数据对象的数据类型,映射得到对应的字节编码;
其中,数据类型分为以下几类,对象(key-value形式的json对象),对象数组(key-value形式的json对象数组),字符串,字符串数组,有符号整形,有符号整形数组,有符号浮点数,有符号浮点数组,这8种数据类型与数据对象编码规则所对应。对以上8种数据类型进行字节编码。例如,编码规则表如下表1所示:
表1
数据长度编码规则用于根据数据对象的数据长度,映射得到对应的字节编码;为进一步的提高压缩比例,对于数据长度的描述,结合GLTF格式的具体数据格式的对应具体最大长度,取最短字节数原则,尽量用更少的字节表示某一类最大长度确定的数据,以进一步提高压缩比,作为本发明的一种实施例,数据长度编码规则中的字节编码如下所示:
用2个字节表示key值对象中键对值数量,采用小段存储方式描述;如:key值对象为:{“min”:1,“max”:2},则:编码:01 0200,其中,01代表对象类型为key值对象,0200代表键值对2个;
用4个字节表示key值对象数组中key值对象数量,采用小段存储方式描述;如:key值对象数组为[{“min”:1,“max”:2},{“min”:1,“max”:2}],则编码:02 02000000,其中02代表对象类型为key值对象数组,02000000代表key值对象数量2个;
用2字节表示字符串数组中字符串的数量,采用小端存储方式描述,举例:[“aa”:“bb”]编码:04 0200,04代表对象类型为字符串数组,0200代表字符串数组元素数量为2;
用1个字节表示整形长度,采用小端存储方式描述,举例:{“name”:2},编码:0501,05代表对象类型为有符号整形,01代表整形字节长度为4;
用2字节表示有符号整形数组中整形的数量,采用小端存储方式描述,举例:[1:2],编码:06 0200,06代表对象类型有符号整形数组,0200代表有符号整形数组元素,数量为2;
用1个字节表示浮点数长度,采用小端存储方式描述,固定4字节,举例:{“name”:1.0},编码:07 04,07代表对象类型为有符号浮点数,04代表浮点字节长度为4;
用2字节表示有符号浮点数组中浮点数的数量,采用小端存储方式描述,举例:[1.0:2.0],编码:08 0200,08代表有符号浮点数组,0200代表有符号浮点数组元素数量为2。
数据内容编码规则用于根据数据对象的数据内容,映射得到对应的字节编码;例如采用IEEE 754标准表示浮点数据内容。
数据对象编码规则用于对数据对象按照数据类型进行区别编码;数据对象编码规则包括独立数据对象编码规则和数据组合对象编码规则,其与上述的数据类型相对应;
独立数据对象编码规则用于对独立数据对象,映射生成独立字节编码;独立数据对象编码规则包括:KEY值对象编码规则、字符串编码规则、有符号整形编码规则、有符号浮点数编码规则;
具体的,以key值对象编码规则为例,key值对象编码规则包括若干key词条和与key词条对应的字节编码,key值对象编码规则用于将key词条映射成对应的字节编码,key词条包括陌生词条和若干普通key词条,所有陌生词条对应的字节编码是相同的,并通过内容编码来进行表示。具体的,目前根据标准相关Key词条种类在100条以内,所以用单个字节编码来表示key词条:以下表2为例:
表2
并且上述表2还可以根据GLTF标准进行相应的扩展和调整。
如图2所示,获取任一目标key词条编码的过程为:取得目标key词条,判断目标key词条是否为普通key词条,若目标key词条为普通key词条,则输出对应的字节编码,若目标key词条为陌生词条,则输出的字节编码为:陌生词条对应的字节编码+目标key词条的Ascall码,其中在实际输出时,还需要兼顾数据长度编码规则以及独立数据对象编码规则等,一同输出的还可能包括数据长度字节编码和数据类型字节编码等。
数据组合对象编码规则用于根据对数据组合对象中包含的独立数据对象的独立字节编码,映射生成组合字节编码;数据组合对象编码规则包括:KEY值对象数组编码规则、字符串数组编码规则、有符号整形数组编码规则、有符号浮点数组编码规则;
S2、响应于数据压缩指令,获取目标对象数据,根据数据压缩编码规则,将目标对象数据转化得到标准格式的字节编码。
具体的,S2包括如下子步骤:
S2.1、获取目标对象数据;
S2.2、解析得到目标对象数据中的数据类型;
S2.3、根据目标对象数据的数据类型,调用对应的数据压缩编码规则,包括如下a、b种情况:
a、若目标对象数据的数据类型为独立数据对象,则调用独立数据对象编码规则和数据描述编码规则,按照标准格式输出目标对象数据的字节编码;
以key值对象为例,举例如下:{“min”:1,“max”:2},字节编码:01 0200 24 05 0101 25 05 01 02,01代表对象类型为key值对象,0200代表键值对2个,24代表min的key编码,05表示数据类型为有符号整形,01表示数据长度,01表示数据值,采用小端模式存储,25代表max的key编码,05表示数据类型为有符号整形,01表示数据长度,02表示数据值,采用小端模式存储。
以字符串为例,举例如下:{“name”:“ball”},字节编码:22 03 0400 62616C6C,22代表name的key编码,03表示数据类型为字符串,0400表示数据长度为4,62616C6C表示字符串数据内容,以此类推。
以有符号整形为例,举例如下:{“name”:2},字节编码:22 05 01 01,22代表name的key编码05表示数据类型为有符号整形,01表示数据长度为1,01表示整形数据内容。以此类推。
以有符号浮点数为例,举例如下:{“name”:1.0},字节编码:22 07 04 3F 80 0000,22代表name的key编码,07表示数据类型为有符号浮点,04表示数据长度为1,3F 80 0000表示浮点数据内容。采用IEEE 754标准表示,以此类推。
b、目标对象数据的类型为数据组合对象,则依次执行以下b1、b2、b3;
b1、调用数据组合对象编码规则和数据描述编码规则,按照标准格式生成含有未编码元素对象的字节编码;
b2、将未编码元素对象作为目标对象数据,再依次执行S2.2、S2.3,直至未编码元素对象的数据类型为独立数据对象,并得到对应的标准格式字节编码后,执行b3;
b3、将b2步骤中得到的字节编码以逆序逐步嵌套入b1步骤中得到的字节编码,得到目标对象数据的完整的标准格式字节编码。
作为本发明的一种实施例,其具体的举例如下所示:
以key值对象数组为例,举例如下:[{“min”:1,“max”:2},{“min”:1,“max”:2}],字节编码:02 02000000 (第一个对象开始)01 0200 24 05 01 01 25 05 01 02 (第二个对象开始)01 0200 24 05 01 01 25 05 01 02 ,02代表对象类型为key值对象数组,02000000 对象数组中有2个元素,01表示元素类型为key值对象,0200表示有键值对长度,24代表min的key编码,05表示数据类型为有符号整形,01表示数据长度,01表示数据值,采用小端模式存储。以此类推。
以字符串数组为例,举例如下:[“aa”:“bb”],字节编码:04 0200 03 0200 616103 0200 6262,04表示数据类型为字符串数组,0200表示数组长度为2,03代表数据类型为字符串,0200代表数据长度为2,6161表示字符串数据内容。以此类推。
以有符号整形数组为例,举例如下:[1:2],字节编码:06 0200 05 01 01 05 0202,06表示数据类型为有符号整形数组,0200表示数组长度为2,05代表数据类型为有符号整形,01代表数据长度为1,01表示数据内容。以此类推。
以有符号浮点数组为例,举例如下:[1.0:2.0],字节编码:08 0200 07 043F800000 07 04 40000000,08表示数据类型为有符号浮点数组,0200表示数组长度为2,07代表数据类型为有符号浮点,04代表数据长度为1,3F800000表示数据内容,采用IEEE 754标准表示以此类推。
根据上述内容能够明显看出,数据组合对象的字节编码是通过对独立数据对象的字节编码进行递归嵌套的方式得出的,因此通过上述所有的数据压缩编码规则能够将json数据内容通过递归嵌套方式进行编码,编码后的内容能够完整的包含json内容信息。
S3、在得到目标对象数据转化的标准格式的字节编码后,对其制作成压缩文件,并且在压缩编码文件内容中设置头部校验信息,头部校验信息用于表示目标对象数据的统计信息。头部校验信息包括通过字节编码表示的json字节编码整体字节长度和每种数据类型的数据数量长度。具体的:校验信息规格如下,json字节编码整体字节长度,用4字节整形表示,然后是每种数据类型的数据数量的长度,用4字节整形表示,通过此头部信息来校验整体json字节编码的完整性。数据类型的排列顺序固定,依次为:key值对象,key值对象数组,字符串,字符串数组,有符号整形,有符号整形数组,有符号浮点数,有符号浮点数组。
举例:
整体json未压缩前:{“name”:1.0,“ scene”:1}
压缩后本体字节编码: 01 0200 22 07 04 3F 80 00 00 01 05 01 01
头部信息编码为:0E000000 01000000 00000000 00000000 00000000 0100000000000000 01000000 00000000 000E0000 为整体编码的字节数,后面8个4字节整形表示每种数据类型的数量。
最终整体压缩后的字节编码为 0E000000 01000000 00000000 0000000000000000 01000000 00000000 01000000 00000000 01 0200 22 07 04 3F 80 00 00 0105 01 01。
S4、为在实际应用本发明的方法得到压缩文件后的操作步骤,根据上述数据压缩编码规则,对压缩文件进行反向字节流解析,就能够得到完整的json对象内容。
对应于上述的系统和方法,本发明提供一种GLTF-JSON格式数据压缩装置,包括:处理器和存储器,存储器存储有处理器可执行的计算机程序,处理器执行计算机程序时实现上述方法。
作为本发明的一种实施例,本发明的数据压缩方法如下所示:
1)先将原始Json字符串解析为JsonObject对象。
2)解析JsonObject对象中的数据类型。
3)判断对象数据类型匹配到以下8种数据类型:
Key值对象,Key值对象数组,字符串,字符串数组,有符号整形,有符号整形数组,有符号浮点数,有符号浮点数组;
4)如果是数组类型,根据具体数组元素,递归解析数据元素的具体数据类型;
5)如果是Key值对象,解析出key值,匹配Key值对象编码规则映射得到编码;
6)如果是数据值类型,也就是字符串、有符号整形以及有符号浮点数,根据对应的编码规则,一般是数据长度编码规则和数据内容编码规则,生成字节编码;
7)通过Key值编码和数据值对象编码合并得到完整的数据对象编码;
8)通过递归调用,反复解析JsonObject对象文件,完成整个文件的编码压缩;
9)将统计信息生成相关头部字节编码统计信息,最终生成JSON压缩编码后的文件。
本发明的优势在于:通过本压缩方法的使用,可以在不损失信息内容的情况下,能够显著降低GLTF-JSON格式文件的尺寸,压缩比能够达到50%以上,并且体积越大,压缩比越高,利用前端Blob字节传输方式,能够显著提高文件的传输效率。在有限的带宽条件下,能够有效提升复杂三维模型在web浏览器加载和展示的效率,从而提升用户体验。
作为本发明的一个实施例:
未压缩前,GLTF-JSON文件内容:
{“name”:1.0,“ scene”:1,
"accessors": [
{
"bufferView": 0,
"componentType": 5126,
"count": 1806,
"max": [
0.4270835220813751,
3.7201273441314697,
3.5245015621185303
],
"min": [
-0.2179817259311676,
-3.728969097137451,
-1.279369831085205
],
"type": "VEC3"
},
{
"bufferView": 0,
"byteOffset": 12,
"componentType": 5126,
"count": 1806,
"type": "VEC3"
}]
}
以上原始GLTF格式按照常规去除空格和换行符保存后占用存储空间为318字节。
经过上述流程进行字节编码后字节内容为:
76000000 03000000 01000000 02000000 00000000 08000000 0000000007000000 00000000
01 0300
22 07 04 3F 80 00 00
01 05 01 01
08 02 02000000
01 0600
1C 05 01 00
28 05 02 0614
27 05 02 0E07
25 08 0300
07 04 3E DA AA B1
07 04 40 6E 16 91
07 04 40 61 91 6F
24 08 0300
07 04 BE 5F 36 9A
07 04 C0 6E A7 6E
07 04 BF A3 C2 64
26 03 0400 56 45 43 33
01 0500
1C 05 01 00
30 05 01 0C
28 05 02 0614
27 05 02 0E07
26 03 0400 56 45 43 33
整体长度154字节,相比于压缩前的318字节,整体压缩比超过51%,效果显著。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种GLTF-JSON格式数据压缩方法,其特征是:包括如下步骤:
S1、根据GLTF-JSON格式标准,构建数据压缩编码规则;所述数据压缩编码规则包括数据描述编码规则和以数据类型为基础的数据对象编码规则;
所述数据描述编码规则用于将数据对象描述映射成标准格式的字节编码结构体,所述数据对象编码规则用于对数据对象按照数据类型进行区别编码;所述数据对象编码规则包括独立数据对象编码规则和数据组合对象编码规则;所述独立数据对象编码规则用于对独立数据对象,映射生成独立字节编码;所述数据组合对象编码规则用于根据对数据组合对象中包含的独立数据对象的独立字节编码,映射生成组合字节编码;
S2、响应于数据压缩指令,获取目标对象数据,根据数据压缩编码规则,将目标对象数据转化得到标准格式的字节编码。
2.根据权利要求1所述的一种GLTF-JSON格式数据压缩方法,其特征是:S2包括如下子步骤:
S2.1、获取目标对象数据;
S2.2、解析得到目标对象数据的数据类型;
S2.3、根据目标对象数据的数据类型,调用对应的数据压缩编码规则,包括如下a、b种情况:
a、若目标对象数据的数据类型为独立数据对象,则调用所述独立数据对象编码规则和所述数据描述编码规则,按照标准格式输出目标对象数据的字节编码;
b、若目标对象数据的类型为数据组合对象,则依次执行以下b1、b2、b3;
b1、调用数据组合对象编码规则和数据描述编码规则,按照标准格式生成含有未编码元素对象的字节编码;
b2、将未编码元素对象作为目标对象数据,再依次执行S2.2、S2.3,直至未编码元素对象的数据类型为独立数据对象,并得到对应的标准格式字节编码后,执行b3;
b3、将b2步骤中得到的字节编码以逆序逐步嵌套入b1步骤中得到的字节编码,得到目标对象数据的完整的标准格式字节编码。
3.根据权利要求2所述的一种GLTF-JSON格式数据压缩方法,其特征是:在S2执行后,还需执行S3,S3的内容包括:在得到目标对象数据转化的标准格式的字节编码后,对其制作成压缩文件,并且在压缩编码文件内容中设置头部校验信息,所述头部校验信息用于表示目标对象数据的统计信息。
4.根据权利要求3所述的一种GLTF-JSON格式数据压缩方法,其特征是:所述头部校验信息包括通过字节编码表示的json字节编码整体字节长度和每种数据类型的数据数量长度。
5.根据权利要求4所述的一种GLTF-JSON格式数据压缩方法,其特征是:所述数据描述编码规则包括:数据类型编码规则、数据长度编码规则、数据内容描述编码规则,所述数据类型编码规则用于根据数据对象的数据类型,映射得到对应的字节编码;所述数据长度编码规则用于根据数据对象的数据长度,映射得到对应的字节编码,所述数据内容编码规则用于根据数据对象的数据内容,映射得到对应的字节编码。
6.根据权利要求5所述的一种GLTF-JSON格式数据压缩方法,其特征是:所述独立数据对象编码规则包括:KEY值对象编码规则、字符串编码规则、有符号整形编码规则、有符号浮点数编码规则,所述数据组合对象编码规则包括:KEY值对象数组编码规则、字符串数组编码规则、有符号整形数组编码规则、有符号浮点数组编码规则。
7.根据权利要求6所述的一种GLTF-JSON格式数据压缩方法,其特征是:所述key值对象编码规则包括若干key词条和与key词条对应的字节编码,所述key值对象编码规则用于将key词条映射成对应的字节编码,所述key词条包括陌生词条和若干普通key词条,所有陌生词条对应的字节编码是相同的,并通过内容编码来进行表示。
8.根据权利要求7所述的一种GLTF-JSON格式数据压缩方法,其特征是:获取任一目标key词条编码的过程为:
取得目标key词条,判断目标key词条是否为普通key词条,若目标key词条为普通key词条,则输出对应的字节编码,若目标key词条为陌生词条,则输出的字节编码为:陌生词条对应的字节编码+目标key词条的Ascall码。
9.一种GLTF-JSON格式数据压缩系统,其特征是:包括:
规则构建模块,用于根据GLTF-JSON格式标准,构建数据压缩编码规则;所述数据压缩编码规则包括数据描述编码规则和以数据类型为基础的数据对象编码规则;
所述数据描述编码规则用于将数据对象描述映射成标准格式的字节编码结构体,所述数据对象编码规则用于对数据对象按照数据类型进行区别编码;所述数据对象编码规则包括独立数据对象编码规则和数据组合对象编码规则;所述独立数据对象编码规则用于对独立数据对象,映射生成独立字节编码;所述数据组合对象编码规则用于根据对数据组合对象中包含的独立数据对象的独立字节编码,映射生成组合字节编码;
压缩执行模块,用于响应数据压缩指令,获取目标对象数据,根据数据压缩编码规则,将目标对象数据转化得到标准格式的字节编码。
10.一种GLTF-JSON格式数据压缩装置,其特征是:包括:处理器和存储器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1-8中任一项所述的方法。
CN202311531972.9A 2023-11-17 2023-11-17 一种gltf-json格式数据压缩方法、系统及装置 Active CN117278053B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311531972.9A CN117278053B (zh) 2023-11-17 2023-11-17 一种gltf-json格式数据压缩方法、系统及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311531972.9A CN117278053B (zh) 2023-11-17 2023-11-17 一种gltf-json格式数据压缩方法、系统及装置

Publications (2)

Publication Number Publication Date
CN117278053A true CN117278053A (zh) 2023-12-22
CN117278053B CN117278053B (zh) 2024-02-09

Family

ID=89201159

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311531972.9A Active CN117278053B (zh) 2023-11-17 2023-11-17 一种gltf-json格式数据压缩方法、系统及装置

Country Status (1)

Country Link
CN (1) CN117278053B (zh)

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7158990B1 (en) * 2002-05-31 2007-01-02 Oracle International Corporation Methods and apparatus for data conversion
CN103259787A (zh) * 2013-04-18 2013-08-21 银江股份有限公司 一种基于json协议包的医疗领域云及端安全交互方法
CN103677952A (zh) * 2013-12-18 2014-03-26 华为技术有限公司 编解码器生成装置及方法
CN104461544A (zh) * 2014-12-12 2015-03-25 用友软件股份有限公司 编码动态生成装置和方法
CN104717032A (zh) * 2013-12-14 2015-06-17 中国航空工业集团公司第六三一研究所 一种适用于afdx网络数据透明传输的编解码方法
WO2016034075A1 (zh) * 2014-09-05 2016-03-10 华为技术有限公司 转发参数传递的方法及设备
CN112260694A (zh) * 2020-09-21 2021-01-22 广州中望龙腾软件股份有限公司 一种仿真文件的数据压缩方法
CN113055017A (zh) * 2019-12-28 2021-06-29 华为技术有限公司 数据压缩方法及计算设备
CN113220633A (zh) * 2021-04-19 2021-08-06 华迪计算机集团有限公司 统一文件编码管理方法及系统
CN113468175A (zh) * 2021-06-29 2021-10-01 平安银行股份有限公司 数据压缩方法、装置、电子设备及存储介质
CN114492316A (zh) * 2022-01-18 2022-05-13 辰工(无锡)工业科技有限公司 数据交换编解码方法和系统
CN114885044A (zh) * 2022-04-20 2022-08-09 中国西安卫星测控中心 面向测控设备异构监控数据包的自适应解析处理方法
CN115908672A (zh) * 2022-11-18 2023-04-04 西安电子科技大学青岛计算技术研究院 一种三维场景渲染加速方法、系统、介质、设备及终端
CN116318541A (zh) * 2023-02-09 2023-06-23 福州致远汇创信息科技有限公司 网络空间多维信息剖分网格编码方法、装置、设备和介质
CN116579300A (zh) * 2023-07-14 2023-08-11 安徽华云安科技有限公司 多源异构数据的自动化转换方法和装置

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7158990B1 (en) * 2002-05-31 2007-01-02 Oracle International Corporation Methods and apparatus for data conversion
CN103259787A (zh) * 2013-04-18 2013-08-21 银江股份有限公司 一种基于json协议包的医疗领域云及端安全交互方法
CN104717032A (zh) * 2013-12-14 2015-06-17 中国航空工业集团公司第六三一研究所 一种适用于afdx网络数据透明传输的编解码方法
CN103677952A (zh) * 2013-12-18 2014-03-26 华为技术有限公司 编解码器生成装置及方法
WO2016034075A1 (zh) * 2014-09-05 2016-03-10 华为技术有限公司 转发参数传递的方法及设备
CN104461544A (zh) * 2014-12-12 2015-03-25 用友软件股份有限公司 编码动态生成装置和方法
CN113055017A (zh) * 2019-12-28 2021-06-29 华为技术有限公司 数据压缩方法及计算设备
CN112260694A (zh) * 2020-09-21 2021-01-22 广州中望龙腾软件股份有限公司 一种仿真文件的数据压缩方法
CN113220633A (zh) * 2021-04-19 2021-08-06 华迪计算机集团有限公司 统一文件编码管理方法及系统
CN113468175A (zh) * 2021-06-29 2021-10-01 平安银行股份有限公司 数据压缩方法、装置、电子设备及存储介质
CN114492316A (zh) * 2022-01-18 2022-05-13 辰工(无锡)工业科技有限公司 数据交换编解码方法和系统
CN114885044A (zh) * 2022-04-20 2022-08-09 中国西安卫星测控中心 面向测控设备异构监控数据包的自适应解析处理方法
CN115908672A (zh) * 2022-11-18 2023-04-04 西安电子科技大学青岛计算技术研究院 一种三维场景渲染加速方法、系统、介质、设备及终端
CN116318541A (zh) * 2023-02-09 2023-06-23 福州致远汇创信息科技有限公司 网络空间多维信息剖分网格编码方法、装置、设备和介质
CN116579300A (zh) * 2023-07-14 2023-08-11 安徽华云安科技有限公司 多源异构数据的自动化转换方法和装置

Also Published As

Publication number Publication date
CN117278053B (zh) 2024-02-09

Similar Documents

Publication Publication Date Title
CN103858433B (zh) 分层熵编码及解码
CN108156173A (zh) 一种json数据包的动态无损压缩方法
US20080134218A1 (en) Apparatus and method for translating open vector graphic application program interface
CN103346800B (zh) 一种数据压缩方法及装置
JP2004508647A (ja) 構造化文書の圧縮/解凍方法
CN108287877A (zh) 一种rib渲染压缩文件fpga压缩/解压缩系统及硬件解压方法
CN117278053B (zh) 一种gltf-json格式数据压缩方法、系统及装置
US10515092B2 (en) Structured record compression and retrieval
CN111507430A (zh) 基于矩阵乘法的特征编码方法、装置、设备及介质
US20230154053A1 (en) System and method for scene graph lossless compression by context-based graph convolution
WO2023159820A1 (zh) 图像压缩方法、图像解压缩方法及装置
CN116208772A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN116707532A (zh) 一种压缩文本的解压方法、装置、存储介质及电子设备
CN114466082B (zh) 数据压缩、数据解压方法、系统及人工智能ai芯片
CN116489391A (zh) 图像矢量量化编码、文图模型训练及使用方法和装置
CN111541901B (zh) 图片解码的方法和装置
CN114092577A (zh) 图像数据处理方法、装置、计算机设备和存储介质
CN111049836A (zh) 数据处理方法、电子设备及计算机可读存储介质
CN114564606A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN113810058A (zh) 数据压缩方法、数据解压缩方法、装置及电子设备
CN115391696A (zh) 模型数据处理方法、装置、设备以及存储介质
CN114070471B (zh) 一种测试数据包传输方法、装置、系统、设备和介质
CN112653771B (zh) 水利数据分片存储方法、点播方法、处理系统
CN114140569B (zh) 一种三维场景序列化压缩方法
CN114006619A (zh) 一种gzip格式文件转换为lz4格式文件的方法

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