- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Huffman编码与XML的大对象数据交换
贾长云1 朱跃龙2 张新华3
江苏连云港(222069)
摘 要:XML作为异构数据交换的标准格式在数据交换平台的建设中得到了广泛的应用,多媒体数据由于其容量巨大在数据库中往往作为大对象数据来保存,因此在异构数据交换中必然涉及到大对象数据交换的问题。本文通过对Huffman编码原理的讨论提出了基于XML使用Huffman编码方式实现大对象数据的交换,并设计了相应的实现模型,对异构数据库大对象数据交换的实现具有一定的借鉴意义。
关键词:XML,Huffman,大对象数据,编码
0 引言
随着计算机处理能力的大幅度提高,多媒体早已经融入到了计算机当中了,如果缺少了多媒体,缺少了各种多姿多彩的图像,音频,视频,很难想象计算机如今会走入千家万户。长期以来,多媒体信息在计算机中都是以文件形式存放,由操作系统管理的,但是随着计算机网络,分布式计算的发展,这种单纯的文件式管理已经力不从心了,对多媒体信息进行高效的管理,存取,查询已经成了一种迫切需求。而关系数据库却有着强大的数据管理能力。两方面密切结合,多媒体数据库由此应运而生。这些多媒体数据往往容量巨大如照片、WORD文档等,因此通常将这些数据称为大对象数据(LOB)。
LOB数据基本有两大类:CLOB(字符大对象)与BLOB(二进制大对象)。CLOB主要用于存储超长的文本数据;BLOB则用于存储大量的二进制数据,如图像、视频、音频等……ef,ff}
转换以后的XML文档片断如下所示:
image name=Jia.bmp424d6a8d0f0000000000360400/image
尽管这种方法能够非常简单地将二进制数据转换到XML文档中,但它浪费了网络的带宽。因为,原始二进制文件中的每一个字节,在XML文档中变成了两个字符。在传送很大的二进制数据集时,这一点是非常值得考虑的。
(2)Base-64编译法
Base-64编码是一种MIME编码方法,可以将二进制数据映射成ASCII码的子集,它应用已经有很长时间了。开始它主要用于电子邮件的编码。Base-64编码(RFC2045)使用一个64个字符的子集(包括A-Z、a-z、0-9、+和/)来表示二进制数据,并使用“=”来进行填充。这种编码算法每次处理3个字节序列的字节流,每3个字节序列被解析如图1所示的4个6位的数据单元。每个6位被用作为映射表(Base-64字母表)的索引,以获得相应数据的编码字符。
图1 Base-64编码转换示意图
这种方法的好处是将三个数据字节编码成4个字符,这样形成的编码文档比原始文档只大了33%。前一种方法每个字节产生2个字符,而这种方法每个字节只生成1.33个字符。另一个好处是它已经被广泛应用了很长时间,在因特网上有很多免费的实现工具。
经过Base-64编码转换后的二进制文档片断如下所示:
image name=jia.bmp
Qk1qjQ8AAAAAADYEAAAoAAAAkgUAAMkCAAABAAgAAAAAADSJDwAAAAAAAAAAAAABAAAAAQAA+/v7APv2+QD59PUA9vn5AP/image
这两种方法尤其是第二种方法是目前二进制数据向XML文档映射的常用方法,但由于其编码后的文档长度比原文档增大了33%,因此对网络带宽还有一定的浪费。实际上对大多数数据集,如果画一个每一个字节数据在数据集中出现频率的直方图,发现各个字节值出现的频率分布是很不均匀的(如图片数据最为典型)。有些字节使用频率很高,而有些却很低或根本没有。这也称为字节数据的统计特性。利用这个特性,可以进一步降低编码后的字符长度,关键是选择一种合适的算法,这就是Huffman编码法。这也是本文重点讨论的编码方法。
2.2 LOB数据转换的Huffman编码法
Huffman编码的基本思想完全按照字符出现概率的大小,概率大的字符分配短码,概率小的字符分配长码,来构造最短的平均码长的异头前码。此构造出来的码一定是最优的。
设某二进制数据A的数据空间为:
为各种可能的二进制数据字节,为各字节出现的频度,。
现在用r个码符号的码符号集X:{X1,X2,…Xr}对数据A中的每一个字节符号ai(i=1,2,…N)进行编码,步骤如下:
(1)将字节符号按其出现概率分布,由大到小排列;
(2)将r个最小概率的字节合并成一个符号,这时数据减少到[N-(r-1)]个符号,形成一个新的数据,令该数据为A1;将信源A1的符号按步骤(1)的要求重新排列,并将最小概率分布的r个字节符号按某一次序分别用码符号x1,x2,…xr表示。再按步骤(2)的做法合并,此时数据A1缩减到[N-(r-1)-(r-1)]个字节符号,形成另一个数据A2;
(3)依此下去,若合并了S次后,总减少的字节符号为
文档评论(0)