[发明专利]一种新的压缩比特位图索引的方法有效
申请号: | 201410182226.8 | 申请日: | 2014-04-30 |
公开(公告)号: | CN103942329B | 公开(公告)日: | 2017-10-10 |
发明(设计)人: | 陈震;温禹豪;马戈;曹军威 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京众合诚成知识产权代理有限公司11246 | 代理人: | 黄家俊 |
地址: | 100084 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 压缩 比特 位图 索引 方法 | ||
1.一种新的压缩比特位图索引的方法,其特征是所述方法包括:
步骤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的计数器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410182226.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:冗余的融合IP信号上屏的处理器实现方法
- 下一篇:一种方便折叠刷牙杯