基于VRML文件的二进制压缩编码技术研究

资源类型:pdf 资源大小:562.00KB 文档分类:工业技术 上传者:范镇棠

文档信息

【作者】 朱攀蓉  郭阳明  王志旭  翟正军 

【关键词】VRML 虚拟现实 三维模型 压缩 二进制 

【出版日期】2005-05-10

【摘要】VRML已经成为互联网上传输三维模型的主要文件格式。对于复杂场景模型具有数据信息量大的特点,尽管传统的VRML文件已采用了某种形式的压缩处理,但其文件仍旧相对庞大。因此,文章提出针对VRML文件的二进制压缩编码技术,对这些数据进行压缩处理,使之大小适合在网络中传输,同时压缩后的数据信息不影响虚拟可视化的显示质量。

【刊名】计算机应用

全文阅读

0 引言VRML(虚拟现实建模语言)[1]是一种用于建立真实世界或虚拟三维世界场景模型的建模语言。互联网经过最近几年的迅速发展,为客户端浏览器提供的文本(HTML)和图像(JPG,GIF,PNG)内容越来越多。随着PC图像技术的发展以及更快的网络通讯,人们对于传输3D[2]内容更有兴趣。VRML逐渐成为网络环境下传播 3D内容的标准。VRML被称为继HTML之后的第二代Web语言,它本身是一种建模语言,也就是说,它是用来描述三维物体及其行为的,可以构建虚拟境界 (VirturalWorld),可以集成文本、图像、音响、MPEG影像等多种媒体类型,还可以内嵌用Java、ECMAScript等语言编写的程序代码。VRML的基本目标是建立因特网上的交互式三维多媒体,基本特征包括分布式、三维、交互性、多媒体集成、境界逼真性等。目前,VRML已经成了进行虚拟现实建模制作的主流语言,也是互联网上用于传输三维虚拟数据的默认标准文件格式。基于文本格式的VRML文件,包含了大量的冗余信息,导致了VRML文件下载速度慢,同时对复杂场景的渲染给系统带来的开销很大,为保证能顺畅的浏览场景,对VRML文件的优化是必不可少的,因此,简洁的二进制格式的VRML文件是对VRML推广应用的一种需求 [3, 4]。本文基于以上需求,提出了一种基于VRML文件的二进制压缩编码方法。与传统的VRML文件格式相比,这种编码方法简化了文件结构,并且大大缩小了文件的尺寸,使之更有利于网络传输。1 背景虚拟现实建模语言 (VRML)始于 20世纪 90年代初期。从诞生之日到今天,VRML的发展可划分为三个阶段:VRML1. 0、VRML2. 0(VRML97)和X3D。1. 1 VRML的基本特征虚拟现实具有以下几个特征,这些特征使得VRML成为互联网上传输三维模型的主要文件格式,也使得VRML在计算机辅助设计、可视化设计,以及虚拟现实设计中得到广泛应用。1)场景图VRML使用在 3D图形处理问题中广泛使用到的场景图技术,即场景是由不同的节点 (Node)构成的,节点是VRML的基本构件。2)事件处理VRML中的节点能够接收来自其他节点的消息或发送消息到其他节点,这些消息即事件。通过事件处理形成路由,同时也实现了节点间的交互。3)行为VRML中使用脚本节点来实现事件接收、事件发送和改变事件状态等操作,实现与用户的交互。4)封装与复用VRML支持在已有原型的基础上自定义用户原型。这一机制使得VRML具有强大的封装和复用特性。5)分布上下文VRML的一个重要特征就是它支持WWW,这样,构成VRML的文件可分布在网络中的不同主机,实现分布上下文。6)可扩展性VRML对脚本语言的支持使得用户可以自定义各种原型,提高了设计的可扩展性。7)交互性VRML支持各种类型的传感器节点,通过这些传感器节点,很容易实现虚拟环境与用户的交互。8)动画VRML支持多种类型的分类机节点,这些分类机对诸如颜色、法线、坐标等三维特征进行分类。通过在VRML文件中使用不同的分类机节点,可以很容易地实现动画效果。1. 2 VRML的文件格式传统的VRML文件是基于文本格式的 [5],每一个字节只放一个ASCII代码,即一个字节只代表一个字符。使用文本格式描述的优点是程序员容易设计,不需要编译和运行(run),VRML文件在语法分析之后就可以直接显示出来。这是一种更快捷的处理过程。即VRML文件的解释、执行和呈现通过浏览器实现,这与利用浏览器显示HTML文件的机制完全相同。新建立VRML文件也比编程简单。这也使得其交互性更强,且使用起来更方便。设计的程序可以被浏览,容易理解,并且是跨平台,可用任何文本编辑器修改。并且最重要的是,任何人都能够使用,即使没有 3D软件知识的人也能够使用。然而,VRML中的三维几何模型是由一系列的点、线、面构成的。其中,点连接成线,线组合成面。三维几何模型的属性特征,如坐标位置、法线、颜色值、材质等都是与这些点、线、面结合在一起的,即每个点、每条线和每个面都具有不同的属性特征,这些属性特征的存在使得VRML在构造几何模型时得到的文件容易变得庞大。例如,一个由三百个面组成的几何模型构造的VRML文件大小通常为 30kB;而描述一个大型虚拟场景的VRML文件通常都在 10MB左右。因此,使用文本格式的缺点是在描述复杂场景或大型场景时,文件将包含很多几何模型的描述,从而使文件的体积过大,会占用较多的存储空间,影响其网络传输速度,引起网络拥塞,并且导致了VRML文件下载时间过长及传输速度过慢。2 VRML二进制压缩算法尽管VRML文件本身已经采用了一定的压缩手段,例如在VRML2. 0中已内嵌了拓扑手术编码,同时也可以采用一些压缩软件如gzip进行压缩,但是如此庞大的文件还是影响了VRML文件在网络中的传输 [6]。因此仍旧需要压缩数据,减小精确度,来缩小VRML文件尺寸。对VRML文件进行二进制压缩编码,是通过对VRML文件中几何模型的压缩处理来达到减少VRML文件大小的目的,压缩对象包括构成几何模型的点、线、面,以及与这些点、线、面相关的属性特征 [7]。在VRML定义的几何模型中,由点连接成线,线组合成面。线和面的某些属性特征是包含在点的属性特征之中的。因而,对点属性特征的描述是造成VRML文件庞大的主要原因之一。由此,对点及其属性特征的二进制压缩编码是压缩的重点。三维几何模型有四种基本的点属性特征值: 浮点值、整形值、颜色值、法线值。某点相关的属性特征值即可编码为一个二进制比特流,最后将这些二进制比特流按定义好的索目前,针对这四种属性特征值的编码,已有大量成熟的算法。假设在进行二进制压缩编码前,已对这四类属性特征值进行了某种形式的编码处理,例如使用拓扑手术编码方法,使得这些属性特征与其相应的位置对应起来,这样,位置的存储顺序决定了属性的存储顺序。对属性特征值的压缩,有两种可供选择的方法。一是直接对属性特征值进行压缩编码;二是建立一个同调色板概念类似的值域表,对某一属性特征值只声明其在该表中对应的索引。无论采用怎样的方法,因为在进行压缩之前,已经明确定义了属性与其位置的对应关系,这样属性特征值的存储顺序也就是固定的。本文提出使用如下的算法来实现对点及其属性特征值的二进制压缩编码。  图 1 VRML压缩二进制编码 /解码原理假设已对该几何模型进行过某种形式的划分,划分后的结果如图 1所示。该划分将几何模型切分为多个按一定顺序排列的子域 (面 )。对点及其属性特征值的二进制压缩算法即是对与点相关的那些子域进行“0”,“1”编码得出二进制位流,并对该位流按域顺序进行存储。在对某点属性特征值进行编码时,按规定好的顺序扫描与该点相关的子域并按以下条件进行“0”、“1”编码。第一个子域总是编码为“1”。扫描时,若被扫描子域与前一子域具有不同的属性特征,则将该子域编码为“1”,否则编码为“0”。这样,与索引顺序组合起来,即可得到整个几何模型属性特征值的比特流。如图 1所示的点具有六个子域,按顺时针方向进行扫描编码,该点属性特征值的二进制压缩编码结果为 100110。在存储时,只需存储位“1”对应子域的属性特征值。由于只存储了位“1”对应子域的属性特征值,这种算法大大压缩了VRML文件的大小。在进行解码操作时,按位的存储顺序进行。位“1”对应子域的属性特征值可按索引顺序直接从文件的相应位置读出;解码位“0”对应子域的属性特征值时,按逆时针方向回卷比特流,直到读出位“1”时停止,该位“1”对应子域的属性特征值即为该位“0”对应子域的属性特征值。为提高比特流回卷速度,减少对位“0”属性特征值的查找时间,在进行解码操作时,设计了专门的属性特征栈:若当前位为“1”,则将该位索引压栈;若当前位为“0”,则可直接从栈顶位“0”对应属性特征值,从而减少了比读出特流回卷时间。 (下转第 1132页) 3 结语按传统的VRML文件格式组织了两个数据模型,如图 2所示。其中: (a)为一只热带鱼的数据模型,共计 4 901个三角形,文件大小为 196kB。(b)为包含一个三维飞机及一个地形的数据模型,共计 13 199个三角形,文件大小为 600kB。  图 2 数据模型图对这二个数据模型分别按照VRML二进制压缩编码和采用gzip软件压缩。对VRML采用二进制压缩编码时,由于模型数据具有较强的信息相关性,经编码得到的二进制位流具有较多连续的“0”位编码,根据编码原理,不必存储“0”位对应的属性特征值,因而可实现对点属性特征值的少量存储,从而实现较高的压缩比,经编码后的文件比以前,压缩比最多达到了约 26∶1,并且压缩后的数据在进行虚拟可视化时造成的失真率很小。对于采用gzip压缩软件进行压缩时,文件最多可压缩到原来的四分之一。表 1统计了采用基于VRML文件的二进制压缩编码方法和采用了gzip压缩软件前后VRML文件大小的对比情况。  结果证明,这种算法具有较高的数据压缩率,达到了数据压缩的设计目标并在缩小文件尺寸的同时提高了传送速度。因此验证了基于VRML文件的二进制压缩编码对三维数据编码的有效性。基于VRML文件的二进制压缩编码技术研究@朱攀蓉$西北工业大学计算机学院!陕西西安710072 @郭阳明$西北工业大学计算机学院!陕西西安710072 @王志旭$西北工业大学计算机学院!陕西西安710072 @翟正军$西北工业大学计算机学院!陕西西安710072VRML;;虚拟现实;;三维模型;;压缩;;二进制VRML已经成为互联网上传输三维模型的主要文件格式。对于复杂场景模型具有数据信息量大的特点,尽管传统的VRML文件已采用了某种形式的压缩处理,但其文件仍旧相对庞大。因此,文章提出针对VRML文件的二进制压缩编码技术,对这些数据进行压缩处理,使之大小适合在网络中传输,同时压缩后的数据信息不影响虚拟可视化的显示质量。[1] TheVRMLConsotiumIncorporated.TheVirtualRealityModelingLanguageInternationalStandardISO/IEC[Z].TheVRMLConsorti umIncorporated,1997. [2] Intense3D[EB/OL]. http://www.intense3D.com. [3] DEERINGM.GeometricCompression[A].ComputerGraphics(Proc.SIGGRAPH)[C],1995. [4] TAUBING,HORNWP,LAZARUSF,etal.Rossignac.GeometrycodingandVRML[J].ProceedingsoftheIEEE,1998,86(6):1228-1243. [5] ISENBURGM,SNOEYINKJ.CodingwithASCII: compact, yettext based3Dcontent[A].Proceedingsof3DDataProcessingVi sualizationandTransmission[C],2002.609-616. [6] ISENBURGM,SNOEYINKJ.BinaryCompressionRatesforASCIIFormats[A].ProceedingsofWeb3DSymposium[C],2003.173-178. [7] 李敏君,纪庆革.三维几何数据压缩与简化[J].宇航学报,2002,(3):85-88.

1

参考文献

问答

我要提问