CN102446206B - 一种三维数据的跨平台交换装置和方法 - Google Patents
一种三维数据的跨平台交换装置和方法 Download PDFInfo
- Publication number
- CN102446206B CN102446206B CN201110256235.3A CN201110256235A CN102446206B CN 102446206 B CN102446206 B CN 102446206B CN 201110256235 A CN201110256235 A CN 201110256235A CN 102446206 B CN102446206 B CN 102446206B
- Authority
- CN
- China
- Prior art keywords
- data
- dimensional
- collada
- json
- xml
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 13
- 238000007405 data analysis Methods 0.000 claims abstract description 21
- 238000013144 data compression Methods 0.000 claims abstract description 15
- 230000005540 biological transmission Effects 0.000 claims abstract description 14
- 238000005538 encapsulation Methods 0.000 claims abstract description 11
- 238000011084 recovery Methods 0.000 claims abstract description 10
- 238000013075 data extraction Methods 0.000 claims abstract description 6
- 238000010276 construction Methods 0.000 claims description 21
- 230000011218 segmentation Effects 0.000 claims description 10
- 238000001914 filtration Methods 0.000 claims description 9
- 238000007906 compression Methods 0.000 claims description 6
- 230000006835 compression Effects 0.000 claims description 6
- 238000011161 development Methods 0.000 claims description 5
- 230000018109 developmental process Effects 0.000 claims description 5
- 239000000284 extract Substances 0.000 claims description 3
- 238000012856 packing Methods 0.000 claims description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013497 data interchange Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 210000001072 colon Anatomy 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种三维数据的跨平台交换装置。包括数据封装部分和数据提取部分,数据封装部分包括数据加载装置,数据解析装置,数据转换装置,数据压缩装置;数据提取部分包括数据恢复装置,数据还原装置。用于解决COLLADA文件三维数据传输效率低,数据解析复杂的技术问题。同时提供一种利用本装置进行数据交换的方法,实现三维数据高效传输。
Description
技术领域
本发明涉及跨平台交换数据的装置和方法,特别是涉及跨平台交换三维数据的装置和方法。
背景技术
在三维应用领域中,虚拟场景及模型数据的编辑工具有很多,如3DMAX、Maya3D等,3DMAX侧重于三维模型的制作,而Maya3D侧重于三维动画的制作,如利用众多开发工具各自所具备的功能特点来协同完成一个虚拟场景或模型,则需要三维数据在多个开发工具之间做到数据共享,目前各开发工具的厂商均提供相应的数据导入导出功能插件给予支持;三维应用程序如需要支持跨操作系统平台,同样必须做到三维应用数据在多个操作系统之间做到数据共享,为应用程序提供三维数据的读写服务,所以,针对三维数据文件应该有一个通用跨平台的数据交换标准。开源技术COLLADA(交互3D数字资产交换方案),是面向交互式3D应用程序的基于XML的数字资产交换方案,使三维数据可以横跨开发工具、操作系统平台,进行无损交换数据。
由于XML文件本身描述性标记冗余度高,导致数据文件体积臃肿,而且COLLADADOM(DocumentObjectModel,文档对象模型)在操作过程中几乎都是与内存指针打交道,而任何编程语言对内存指针的操作都是复杂,不容易控制的,所以在开始不熟悉情况下访问违规出错等是不可避免的;针对COLLADADOM操作时需要先将整个DOM都加载到内存,而后再逐步的找到自己需要的资源,当三维数据达到10MB数量级以上后,内存读取DOM对象的性能存在瓶颈,并且COLLADADOM是静态库,导致链接后的程序主体非常巨大,所以COLLADA在文件体积和数据解析性能上存在缺陷,不适用于类似三维虚拟场景这种大数据量级别的数据交换。
发明内容
本发明的目的是提供一种跨平台进行数据交换的装置,用于解决COLLADA文件三维数据传输效率低,数据解析复杂的技术问题。
同时提供一种利用本装置进行数据交换的方法,实现三维数据高效传输。
本发明的三维数据跨平台交换装置,包括数据封装部分和数据提取部分,数据封装部分包括数据加载装置,数据解析装置,数据转换装置,数据压缩装置;
数据加载装置,用于将COLLADA文件从本地存储器分步读入计算机内存,并将读取的数据传送至数据解析装置;
数据解析装置,用于将COLLADA数据转换为XML结构的数据,并将该数据传送至数据转换装置;
数据转换装置,用于将XML封装结构的数据转换为JSON封装结构,并传送至数据压缩装置;
数据压缩装置,用于排除与三维数据不相关的冗余信息,包括空白字符,换行符,制表符,及其他冗余的XML信息数据,并将压缩后的数据提供给系统指定传输设备。
数据加载装置包括分段读取装置,用于将COLLADA封装数据分步加载入内存,根据计算机的性能调节每步数据加载的数量;
数据加载装置包括数据过滤装置,用于实时从COLLADA结构封装的数据流中过滤指定的XML数据段,并将XML数据段传送至数据解析装置。
数据提取部分包括数据恢复装置,数据还原装置;
数据恢复装置,用于从系统指定传输设备提供的JSON结构封装数据中按需提取三维数据;
数据还原装置,用于将JSON结构封装的三维数据转换为COLLADA结构封装的数据,保证数据格式的兼容性。
利用本发明的跨平台交换装置进行数据交换的方法,其步骤如下:
利用数据加载装置中的分段读取装置将COLLADA结构封装的数据文件分段分步的读入内存;
在读取文件的同时,利用数据加载装置中的数据过滤装置从内存中的数据中过滤出符合要求的数据集合;
利用数据解析装置将符合要求的COLLADA结构封装的三维数据集合转换为XML封装结构;
通过数据转换装置将XML封装结构的三维数据转换为JSON封装结构;
通过数据压缩装置将JSON结构的三维数据进行压缩,排除XML信息,排除数据冗余信息,形成精简的JSON封装结构的三维数据;
精简的JSON结构三维数据经互联网传输在另一个平台上利用数据还原装置将JSON结构封装的三维数据转换为COLLADA结构的封装形式,保证数据格式的平台兼容性。
还包括步骤如下:
利用数据恢复装置从精简的JSON结构三维数据中提取特定的三维数据。
通过本发明,可有效提升COLLADA结构封装的数据交换文件的解析性能,大幅度压缩数据交换文件的体积,非常适用于类似三维虚拟场景这种大数据级别的数据交换,并且更加适用于Web应用程序。
下面结合具体实施例对本发明作进一步说明。
附图说明
图1为本发明的跨平台进行数据交换的装置的结构示意图;
图2为利用本发明的跨平台进行数据交换的装置进行数据处理的示意流程图。
具体实施方式
如图1所示,本实施例包括数据加载装置01,数据解析装置02,数据转换装置03,数据压缩装置04,数据恢复装置05,数据还原装置06;
数据加载装置01,用于将COLLADA文件从本地存储器分步读入计算机内存,并将读取的数据传送至数据解析装置02;
数据解析装置02,用于将COLLADA数据转换为XML结构的数据,并将该数据传送至数据转换装置03;
数据转换装置03,用于将XML结构的数据转换为JSON结构,并传送至数据压缩装置04;
数据压缩装置04,用于排除与三维数据不相关的冗余信息,包括空白字符,换行符,制表符,及其他冗余的XML信息数据,并将压缩后的数据提供给系统指定传输设备。
数据恢复装置05,用于从系统指定传输设备提供的JSON结构封装数据中按需提取三维数据。
数据还原装置06,用于将三维数据组织为COLLADA结构封装的文件,保证数据格式的平台兼容性。
数据加载装置01包括分段读取装置011,用于将COLLADA文件从本地存储器分步加载入内存,根据计算机的性能调节每步数据加载的数量。
数据加载装置01包括数据过滤装置012,用于实时从COLLADA结构封装的数据流中过滤指定的XML数据段,并将XML数据段传送至数据解析装置02。
本实施例的数据加载装置01对COLLADADOM的底层操作可以具体为:利用分段读取装置011对COLLADA文件分段读取,对数据流中的对象标记进行记录,数据过滤装置012在数据读取过程中根据分段读取装置011的记录,将三维数据进行过滤和分类。对数据文件的过滤在文件读取时立即开始,不需要等待所有的数据被处理。本实施例只是在读取数据时检查数据,因此不需要将数据存储在内存中,避免了读入大型文档对计算机资源的占用。当数据解析装置02的解析条件得到满足时本实施例甚至不必读取整个文档。
数据加载装置01对内存的要求比较低,并且在读取文件时即对数据文件中的处理模型、虚拟场景等对象进行过滤和分类,减少了数据解析装置02在数据解析时对数据来回搜索时的性能损耗。
数据转换装置03将XML封装类型的数据转换为轻量级的数据封装结构JSON(JavaScriptObjectNotation)。JSON是基于JavaScript(StandardECMA-2623rdEdition-December1999)的一个子集。JSON采用独立于语言的文本格式,JSON对象是无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔;数组是值(value)的有序集合,一个数组以“[”(左中括号)开始,“]”(右中括号)结束,值之间使用“,”(逗号)分隔;值(value)可以是双引号括起来的字符串(string)、数值(number)、ture、false、null、对象(object)或者数组(array),这些结构可以嵌套;字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义,一个字符(character)即一个单独的字符串(characterstring)。JSON结构封装的数据在不同的开发环境中经过简单转换就可加以利用,减轻了数据交换的负载程度,提升了数据利用效率。
与XML类型的数据文件相比,JSON数据文件的体积大幅减小,数据压缩比非常高;JSON数据本身就符合JavaScript语法定义,对Web开发应用具有更好的扩展性,可以存储JavaScript复合对象;使解析数据文件的难度降低,通过哈希键名对应关系直接可获取键值到该对象的数据,无需遍历XML类型的标记节点。
数据压缩装置04去除数据转换装置03生成的JSON数据文件中的空白、换行和制表符等与三维数据不相关的文件内容及其他冗余的XML信息数据,对数据交换文件进行再次有效压缩文件体积。三维数据经过以上两个步骤的处理后,文件体积适于在网络上传输。
利用数据恢复装置05,可以将通过互联网传输的JSON数据文件中的三维数据从JSON结构封装中按需提取,使客户方便快捷的对数据进行二次开发,利用数据还原装置06将三维数据从JSON结构转换为客户平台可以接受的标准COLLADA结构,满足数据的完整性和与平台兼容的要求。
如图2所示,利用三维数据的跨平台交换装置进行数据交换的方法,其步骤如下:
利用数据加载装置01中的分段读取装置011将COLLADA结构封装的数据文件分段分步的读入内存;
在读取文件的同时,利用数据加载装置01中的数据过滤装置012从内存中的数据中过滤出符合要求的数据集合;
利用数据解析装置02将符合要求的COLLADA结构封装的三维数据集合转换为XML封装结构;
通过数据转换装置03将XML封装结构的三维数据转换为JSON封装结构;
通过数据压缩装置04将JSON结构的三维数据进行压缩,排除XML信息,排除数据冗余信息,形成精简的JSON封装结构的三维数据;
精简的JSON结构三维数据经互联网传输至另一个平台上利用数据还原装置06将JSON结构封装的三维数据转换为COLLADA封装结构,保证数据格式的平台兼容性。
还包括步骤如下:
利用数据恢复装置05从精简的JSON结构三维数据中提取特定的三维数据用于二次开发。
通常一个三维场景中包含众多对象,对象的复杂程度是以用来描述对象细节的三角形数量来计算,以包含10万个三角形的场景为例,该场景文件不小于20MB,利用本发明的三维数据的跨平台交换装置进行数据交换的效果显著,如下表所示:
比较因素 | 不利用本装置 | 利用本装置 |
读取方式 | 一次顺序读取 | 分步读取 |
占用内存容量 | 超过200MB | 不超过80MB |
数据读入加载时间 | 秒级 | 几十毫秒~几百毫秒 |
内嵌贴图的三维数据的压缩 | 无变化 | 原始文件的1%~20% |
包含贴图链接的三维数据的压缩 | 无变化 | 原始文件0.1%~1% |
对三维数据的二次利用 | 对原始文件重新预处理 | 直接应用 |
以上所述的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。
Claims (3)
1.一种三维数据的跨平台交换装置,包括数据封装部分和数据提取部分,其特征在于:数据封装部分包括数据加载装置(01),数据解析装置(02),数据转换装置(03),数据压缩装置(04);
数据加载装置(01),用于将COLLADA文件从本地存储器分步读入计算机内存,并将读取的数据传送至数据解析装置(02);
数据解析装置(02),用于将COLLADA数据转换成XML结构的数据,并将该数据传送至数据转换装置(03);
数据转换装置(03),用于将XML结构的数据转换为JSON结构,并传送至数据压缩装置(04);
数据压缩装置(04),用于排除与三维数据不相关的冗余信息,包括空白字符,换行符,制表符,及其他冗余的XML信息数据,并将压缩后的数据提供给系统指定传输设备;
数据加载装置(01)包括分段读取装置(011),用于将COLLADA封装数据分步加载入内存,根据计算机的性能调节每步数据加载的数量;
数据加载装置(01)包括数据过滤装置(012),用于实时从COLLADA结构封装的数据流中过滤指定的XML数据段,并将XML数据段传送至数据解析装置(02);
数据提取部分包括数据恢复装置(05),数据还原装置(06);
数据恢复装置(05),用于从系统指定传输设备提供的JSON结构封装数据中按需提取三维数据;
数据还原装置(06),用于将JSON结构封装的三维数据转换为COLLADA结构封装的数据,保证数据格式的兼容性。
2.如权利要求1的三维数据的跨平台交换装置进行数据交换的方法,其步骤如下:
利用数据加载装置(01)中的分段读取装置(011),将COLLADA文件分步读入计算机内存;
在读取文件的同时,利用数据加载装置(01)中的数据过滤装置(012)从内存的数据这过滤出符合要求的数据集合;
利用数据解析装置(02)将符合要求的COLLADA结构封装的三维数据集合转换成XML封装结构;
通过数据转换装置(03)将XML封装结构三维数据转换成JSON封装结构;
通过数据压缩装置(04)将JSON结构的三维数据进行压缩,排除XML信息,排除冗余信息,形成精简的JSON封装的三维数据;
精简的JSON封装结构的三维数据经互联网传输在另一个平台上利用数据还原装置(06)将JSON结构封装的三维数据转换为COLLADA结构的封装形式,保证数据格式的平台兼容性。
3.如权利要求2所述的数据交换的方法,还包括步骤如下:
利用数据恢复装置(05)从精简的JSON结构的三维数据中提取特定的三维数据,用于二次开发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110256235.3A CN102446206B (zh) | 2011-08-31 | 2011-08-31 | 一种三维数据的跨平台交换装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110256235.3A CN102446206B (zh) | 2011-08-31 | 2011-08-31 | 一种三维数据的跨平台交换装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102446206A CN102446206A (zh) | 2012-05-09 |
CN102446206B true CN102446206B (zh) | 2016-05-18 |
Family
ID=46008707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110256235.3A Expired - Fee Related CN102446206B (zh) | 2011-08-31 | 2011-08-31 | 一种三维数据的跨平台交换装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102446206B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9852115B2 (en) * | 2013-01-30 | 2017-12-26 | Microsoft Technology Licensing, Llc | Virtual library providing content accessibility irrespective of content format and type |
CN107807926A (zh) * | 2016-09-08 | 2018-03-16 | 阿特斯阳光电力集团有限公司 | 光伏监控数据的传输方法和装置 |
CN106529195A (zh) * | 2016-12-02 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种数据采集解析方法及装置 |
CN107145540A (zh) * | 2017-04-24 | 2017-09-08 | 北京邮电大学 | 类uml图的版本控制功能的图表文件文本化转换装置和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1632834A (zh) * | 2003-12-22 | 2005-06-29 | 中国科学院自动化研究所 | 基于点重建的超大规模医学影像三维可视化方法 |
CN101051076A (zh) * | 2006-04-03 | 2007-10-10 | 上海市闸北区绿化管理局 | 移动式空间数据采集、处理及发布方法 |
CN101826185A (zh) * | 2010-05-20 | 2010-09-08 | 中国农业大学 | 共享数据的WebGIS灌区管理方法及其实现系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9083958B2 (en) * | 2009-08-06 | 2015-07-14 | Qualcomm Incorporated | Transforming video data in accordance with three dimensional input formats |
-
2011
- 2011-08-31 CN CN201110256235.3A patent/CN102446206B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1632834A (zh) * | 2003-12-22 | 2005-06-29 | 中国科学院自动化研究所 | 基于点重建的超大规模医学影像三维可视化方法 |
CN101051076A (zh) * | 2006-04-03 | 2007-10-10 | 上海市闸北区绿化管理局 | 移动式空间数据采集、处理及发布方法 |
CN101826185A (zh) * | 2010-05-20 | 2010-09-08 | 中国农业大学 | 共享数据的WebGIS灌区管理方法及其实现系统 |
Non-Patent Citations (1)
Title |
---|
基于JSON的地理信息数据交换方法研究;韩敏等;《测绘科学》;20100131;第35卷(第1期);第160页左栏第2-5段,图1 * |
Also Published As
Publication number | Publication date |
---|---|
CN102446206A (zh) | 2012-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102819547B (zh) | 配置字段属性的方法和装置 | |
US8892990B2 (en) | Automatic creation of a table and query tools | |
CN103678339B (zh) | 数据回流、关系型数据库中的数据访问方法及系统 | |
CN104731896B (zh) | 一种数据处理方法及系统 | |
US20130174024A1 (en) | Method and device for converting document format | |
CN102446206B (zh) | 一种三维数据的跨平台交换装置和方法 | |
US10997778B2 (en) | Method for generating three-dimensional model, and terminal device | |
CN103605801A (zh) | 一种管理单据数据的方法和系统 | |
CN111190519A (zh) | 一种文件及其控件的处理方法、装置、设备和存储介质 | |
CN109271456A (zh) | 主机数据库文件导出方法及装置 | |
CN114444465A (zh) | 信息抽取方法、装置、设备及存储介质 | |
CN101770367A (zh) | .net文件压缩方法和装置 | |
CN105589918B (zh) | 一种提取页面信息的方法及装置 | |
CN101369953B (zh) | 一种字库的网络分发方法及系统 | |
CN117093619A (zh) | 一种规则引擎处理方法、装置、电子设备及存储介质 | |
CN106909570B (zh) | 一种数据转换方法及装置 | |
CN111241096A (zh) | 一种excel文档的文本提取方法、系统、终端及存储介质 | |
CN115080563A (zh) | 数据捕获方法、装置、系统、电子设备及存储介质 | |
CN111274768B (zh) | 期刊论文转换为xml数据的方法、装置、设备及存储介质 | |
CN111680516A (zh) | Pdm系统产品设计需求信息语义分析提取方法及系统 | |
CN114841125B (zh) | Ai格式文件的处理方法、装置及存储介质 | |
CN111367515B (zh) | 页面卡片的开发方法、装置、计算设备和存储介质 | |
CN104424334A (zh) | Xml文档节点的构建方法和装置 | |
CN103049776A (zh) | 一种基于文件交换的b/s系统读写卡方法 | |
CN113657076B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160518 |