[发明专利]一种新的压缩比特位图索引的方法有效
申请号: | 201410182226.8 | 申请日: | 2014-04-30 |
公开(公告)号: | CN103942329B | 公开(公告)日: | 2017-10-10 |
发明(设计)人: | 陈震;温禹豪;马戈;曹军威 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京众合诚成知识产权代理有限公司11246 | 代理人: | 黄家俊 |
地址: | 100084 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了计算机网络或大数据分析领域的一种新的压缩比特位图索引的方法,即ICX算法,用以解决目前压缩比特位图的研究中存在的问题。该方法主要是对COMPAX算法进行改进,提出Nearly Identical的概念,具体包括把待压缩的01比特序列分成以31bits为单位的块,对块进行分类标记F‑块和L‑块,L块又分为C‑L‑块,0‑NI‑L‑块和1‑NI‑L块,0‑NI2‑L块,1‑NI2‑L块;根据ICX码本与编码规则,在码本编码FL序列基础上,进一步编码,具体分为L‑字编码,F‑字编码,FLF‑字编码,LFL‑字编码,NI‑FL字编码,NI2‑FL字编码。与COMPAX算法相比,本发明提高了编码效率,有效实现了一种新的压缩比特位图索引的方法。 | ||
搜索关键词: | 一种 压缩 比特 位图 索引 方法 | ||
【主权项】:
一种新的压缩比特位图索引的方法,其特征是所述方法包括:步骤1:把待压缩的01比特序列分成以31bits为单位的块,对块进行分类标记;具体包括:F‑块和L‑块,L块又分为C‑L‑块,0‑NI‑L‑块和1‑NI‑L块,0‑NI2‑L块,1‑NI2‑L块;F‑块,代表块中31比特全为0或者全为1,全为0的块定义为0‑F‑块,全为1的块定义为1‑F‑块;L‑块,代表块中31比特不全为0且不全为1;31比特块分为7‑8‑8‑8四部分,最前面补上一位空白位,构成四个字节,如果和一个全0字比较,空白位置0;如果和全1字比较,空白位置1;如果一个L‑块补0后与全0字比较,差异比特在同一个字节内,则认为这个L‑块和一个0‑F‑块是0‑NI‑L‑块;如果一个L‑块补1后与全1字比较,差异比特在同一个字节内,则认为这个L块和一个1‑F‑块是1‑NI‑L‑块;如果一个L‑块补0后与全0字比较,差异比特在两个字节内,则认为这个L‑块和一个0‑F‑块是0‑NI2‑L‑块;如果一个L‑块补1后与全1字比较,差异比特在两个字节内,则认为这个L块和一个1‑F‑块是1‑NI2‑L‑块;其他的L‑块记作C‑L‑块;步骤2:根据ICX码本与编码规则,在码本编码FL序列基础上,进一步编码;具体包括:L‑字编码,F‑字编码,FLF‑字编码,LFL‑字编码,NI‑FL字编码,NI2‑FL字编码;一个L‑字是对1个C‑L‑块进行编码,编码方式为在这个C‑L‑块的最高位前补1构成一个字;一个F‑字是对1个或多个同类型的F‑块进行编码,前五位为类型标志位00000,第六位表示的为F‑字所编码的F‑块的类型,0为0‑F‑块,1为1‑F‑块,后26位为计数器,标志着连续出现的同类型F‑块的数量;一个FLF‑字是对满足如下条件的块的组合进行编码:[1个或多个同类型F‑块]‑[1个0‑NI‑L块或者1‑NI‑L块]‑[1个或多个同类型的F‑块],或者说[F‑字]‑[NI‑L块]‑[F‑字];前三位为字的类型标志位011,第四位为第一个F‑字的类型,0为0‑Fill,1为1‑Fill,第五位为第二个F‑字的类型,第六位为NI‑L块的类型,0为0‑NI‑L‑块,1为1‑NI‑L‑块,第七、八位为差异位所在字节的位置第二个字节9‑16位为第一个F‑字的计数器,第三个字节17‑24位为NL‑块的差异字节,如果为第一个字节,则在最高位补一位,内容为NI‑L块对应的类型,如果是其余三个字节中的一个的话原样复制即可,第四个字节25‑32位为第二个F‑字的计数器;一个LFL‑字是对满足如下条件的块的组合进行编码:[一个NI‑L‑块]‑[1个或多个F‑块]‑[一个NI‑L块];由于两个NL‑块的类型不一定一致,因此前三位分配了两种编码方法:001表示两个NI‑L‑块类型相同,010表示两个NI‑L‑块类型不同;但二者仅在第四位的含义上有差别:对于001‑:第四位表示两个NI‑L块的类型;为0表示均为0‑NI‑L块,为1表示均为1‑NI‑L块;对于010‑:第四位为0表示第一个为0‑NI‑L‑块,第二个为1‑NI‑L块;第四位为1表示第一个为1‑NI‑L块,第二个为0‑NI‑L块;0为0‑NI‑L块,1为1‑NI‑L块;第5‑6位表示第一个NI‑L块的差异位所在字节的位置,第7‑8位表示第二个NI‑L块差异位所在字节的位置;第9‑16位为第一个NI‑L块的差异字节,第17位为F‑字类型标志位,第18‑24位为F‑字的计数器,第25‑32位为第二个NI‑L块的差异字节;一个NI‑FL字是对满足如下条件的块的组合进行编码:[一个NI‑LF块]‑[一个或者多个同类型F块];对于一个NI‑FL字,前五位为类型标志位00001,第六位表示NI‑L块的类型,第七、第八位表示NI‑L块的差异位所在字节的位置,第9‑16位为NI‑L的差异位,第17位为Fill Word的类型,第18‑32位作为Fill Word的计数器;由于编码过程中NI‑FL字和FLF字的判断可能产生部分重叠,现将二者的编码过程区分如下:如果出现NI‑L类型下一个是Fill:先判断计数器大小,如果小于128,且再下一个是NI‑L类型,将这三个块编码成LFL;否则再考虑压缩成LF类型;如果上述情况均不满足,则为L和F分开的类型;一个NI2‑FL字对于满足如下条件的块的组合进行编码:[一个NI2‑LF块]‑[一个或多个同类型的F‑块].前四位为类型标志位0001,第五位为NI2‑LF块的类型,第6‑8位通过一定的编码方式来标示两个差异位的位置,第9‑16位为第一个差异位的内容,第17‑24位为第二个差异位的内容,第25位为Fill Word的类型,第26‑32位为Fill Word的计数器。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410182226.8/,转载请声明来源钻瓜专利网。
- 上一篇:冗余的融合IP信号上屏的处理器实现方法
- 下一篇:一种方便折叠刷牙杯