公开/公告号CN101562663A
专利类型发明专利
公开/公告日2009-10-21
原文格式PDF
申请/专利权人 上海华勤通讯技术有限公司;
申请/专利号CN200910050007.3
发明设计人 夏璐;
申请日2009-04-24
分类号H04M3/493(20060101);H04M1/57(20060101);
代理机构31242 上海金盛协力知识产权代理有限公司;
代理人罗大忱
地址 201203 上海市浦东新区张江高科技园区科苑路399号1号楼
入库时间 2023-12-17 22:53:02
法律状态公告日
法律状态信息
法律状态
2017-06-23
专利权人的姓名或者名称、地址的变更 IPC(主分类):H04M3/493 变更前: 变更后: 申请日:20090424
专利权人的姓名或者名称、地址的变更
2013-09-04
授权
授权
2009-12-16
实质审查的生效
实质审查的生效
2009-10-21
公开
公开
技术领域
本发明涉及来电归属地信息显示技术领域,特别涉及来电归属地信息压缩方法和来电归属地信息显示方法。
背景技术
现有的终端通常都具有来电归属地查询功能,该功能主要通过对网络访问或读取本地数据库,获得号码归属地信息。该数据库包括号码数据段信息和归属地名称信息两部分。2008年年底的统计值为148201条,总大小超过2.8M字节,并且随着移动通信业务的发展,该数据库还在不断增加。
由于网络传输的成本很高,且实时性不强,因此本地访问成为主要信息获取途径。但是由于我国号码段及地域信息复杂,造成该数据库文件十分庞大。并且这种直接存储在终端中的方式,不但大量占用了终端ROM存储器的宝贵存储空间,而且查询效率低下。这使得来电归属地查询功能无法在一些低配置的终端推广使用。
发明内容
本发明的目的在于,提供一种来电归属地信息压缩方法和来电归属地信息显示方法,以解决现有来电归属地信息对终端存储空间的需要大,查询效率低,无法在低配置终端中应用的技术问题。
为实现上目的,本发明采用如下技术方案:
一种来电归属地信息压缩方法,包括以下步骤:
1)城市信息编号,将归属地信息表中的城市信息进行编号,形成城市信息及其对应编号的城市编号表,并用编号替代归属地信息表中的城市名称;
2)临近城市编号合并,将经过步骤1)处理的归属地信息表中的电话号码连续且归属地相同的数据进行合并,并增加相同的数据的个数的统计信息;
3)填充空缺地址,填充经过步骤2)处理的归属地信息表中空缺的号码段,并设定对应的未知城市名称代码,使号码信息连续;
4)分类号码段,将经过步骤3)处理的归属地信息表中号码段数据的前三位提取出来,形成多个分类表,并删除其中的号码段数据项。
进一步地,在所述步骤4)之后,还包括一步骤5)索引步骤:
5)建立号码段数据索引表,将经过步骤3)处理的归属地信息表中号码段数据的前三位提取出来后余下的号码段信息,按照每M个提取一个的原则,建立索引表。
进一步地,所述步骤5)中M的取值为15~30。
进一步地,所述步骤5)中M的取值为20。
进一步地,经过步骤4)处理后的归属地信息表中的每条数据使用16位来存储,其中高7位存储相同临近信息个数,低9位存储城市名称编号;经过步骤3)处理的归属地信息表中的相同临近信息个数大于127时,将该信息拆分成小于等于127的数。
进一步地,拆分的方法为,设相同城市临近信息个数为X,则拆成n个127及X除以127得到的余数N。
进一步地,索引表中的数据采用16位存储。
本发明还提供一种来电归属地信息显示方法,采用上述的来电归属地信息压缩方法获得的数据,包括以下步骤:
(1)获取来电号码;
(2)根据来电号码的前3位找到对应的分类表;
(3)根据来电号码的第4至7位查找经分类表的数据,找到与所述来电号码的第4至7位所在的数值点或数值区间,并根据该所在的数值点或数值区间获得对应的城市编号;
(4)根据该城市编号,查找城市编号表,得到对应的城市名称,并显示该城市名称。
本发明还提供一种来电归属地信息显示方法,采用权利要求上所的来电归属地信息压缩方法获得的数据,其特征在于包括以下步骤:
(1)获取来电号码;
(2)根据来电号码的前3位找到对应的分类表;
(3)根据来电号码的第4至7位查找所述分类表的索引表,找到最接近的号码值;
(4)根据该最接近的号码值,逐个累加或逐个累减相同城市的个数值,直到得到与所述来电号码的第4至7位所在的数值点或数值区间为止,并根据该所在的数值点或数值区间获得对应的城市编号;
(5)根据该城市编号,查找城市编号表,得到对应的城市名称,并显示该城市名称。
进一步地,在所述步骤(3)中,具体为查找最接近的小于所述来电号码的第4至7位的值的索引值;在所述步骤(4)中,通过该索引值与城市个数的逐个累加计算直至直到得到与所述来电号码的第4至7位相同的信息或者所在的区间为止。
进一步地,在所述步骤(3)中,具体为查找最接近的大于所述来电号码的第4至7位的值的索引值;在所述步骤(4)中,通过该索引值与城市个数的依次逐个累减,直到得到与所述来电号码的第4至7位相同的信息或者所在的区间为止。
本发明实现了对凌乱而复杂的号码归属地信息的高度压缩。使号码归属地数据库可以保存在不足100k字节的空间里,大大节约了通讯设备的ROM资源,降低了硬件成本。同时兼顾了搜索效率,使低主频的处理器也能很快地搜索到数据,可广泛应用于具有通话功能的电子设备(例如固定电话、手机等)的来电显示、归属地信息查询等。
以下结合附图及实施例进一步说明本发明。
附图说明
图1为本发明来电归属地信息压缩方法实施例流程图;
图2为本发明来电归属地信息显示方法实施例流程图。
具体实施方式
实施例一
如图1所示,一种来电归属地信息压缩方法,包括以下步骤:
1)城市信息编号;
将归属地信息表(表一,本实施例中仅举部分归属地信息进行说明)中的城市信息进行编号,形成城市信息及其对应编号的城市编号表(表二),并用编号替代归属地信息表(表一)中的城市名称,形成表三;
本实施例中的编号方式为:将城市信息从1开始逐个编号,将中国近500个城市名称用数字代替。
表一
1300000 北京 1300014 天津 1300021 上海
1300001 江苏常州 1300015 山东淄博 1300022 上海
1300006 江苏南京 1300016 山东烟台 1300023 上海
1300010 北京 1300017 山东济南 1300024 上海
1300011 北京 1300018 天津 1300025 江苏南京
1300012 天津 1300019 天津 1300026 江苏南京
1300013 天津 1300020 上海 1300027 山东烟台
1300028 江苏南京 1300045 北京 1300057 广东广州
1300029 江苏南京 1300046 北京 1300058 广东广州
1300030 江苏南京 1300047 北京 1300059 广东广州
1300031 江苏南京 1300048 北京 1300061 湖北荆门
1300032 江苏南京 1300049 北京 1300065 山东潍坊
1300033 江苏无锡 1300050 广东广州 1300067 浙江温州
1300034 江苏无锡 1300051 广东广州 1300068 广东广州
1300035 江苏无锡 1300052 广东广州 1300071 湖北武汉
1300036 江苏无锡 1300053 广东广州 1300087 甘肃兰州
1300037 江苏无锡 1300054 广东广州 ----- -------
1300038 江苏无锡 1300055 广东广州
1300039 江苏无锡 1300056 广东广州
表二
0 未知城市 6 山东烟台 12山东潍坊
1 北京 7 山东济南 13浙江温州
2 江苏常州 8 上海 14湖北武汉
3 江苏南京 9 江苏无锡 15甘肃兰州
4 天津 10 广东广州 --- -----
5 山东淄博 11 湖北荆门
表三
1300000 1 1300016 6 1300025 3
1300001 2 1300017 7 1300026 3
1300006 3 1300018 4 1300027 6
1300010 1 1300019 4 1300028 3
1300011 1 1300020 8 1300029 3
1300012 4 1300021 8 1300030 3
1300013 4 1300022 8 1300031 3
1300014 4 1300023 8 1300032 3
1300015 5 1300024 8 1300033 9
1300034 9 1300049 1 1300059 10
1300035 9 1300050 10 1300061 11
1300036 9 1300051 10 1300065 12
1300037 9 1300052 10 1300067 13
1300038 9 1300053 10 1300068 10
1300039 9 1300054 10 1300071 14
1300045 1 1300055 10 1300087 15
1300046 1 1300056 10 ----- ---
1300047 1 1300057 10
1300048 1 1300058 10
2)临近城市编号合并;
在表三中将电话号码连续且归属地相同的数据进行合并,并增加相同的数据的个数的统计信息,形成表四。
表四
1300000 1 1 1300018 4 2 1300061 11 1
1300001 2 1 1300020 8 5 1300065 12 1
1300006 3 1 1300025 3 2 1300067 13 1
1300010 1 2 1300027 6 1 1300068 10 1
1300012 4 3 1300028 3 5 1300071 14 1
1300015 5 1 1300033 9 7 1300087 15 1
1300016 6 1 1300045 1 5 ----- --- ---
1300017 7 1 1300050 10 10
3)填充空缺地址
按照表四的规则,填充表四中空缺的号码段,设定未知城市名称代码,本实施例中未知城市名称代码为0,使号码信息连续,得到表五。
表五
1300000 1 1 1300007 0 3 1300016 6 1
1300001 2 1 1300010 1 2 1300017 7 1
1300002 0 4 1300012 4 3 1300018 4 2
1300006 3 1 1300015 5 1 1300020 8 5
1300025 3 2 1300060 0 1 1300069 0 2
1300027 6 1 1300061 11 1 1300071 14 1
1300028 3 5 1300062 0 3 1300072 0 15
1300033 9 7 1300065 12 1 1300087 15 1
1300040 0 5 1300066 0 1 ----- --- ---
1300045 1 5 1300067 13 1
1300050 10 10 1300068 10 1
4)分类号码段
将号码段数据前三位提取出来,形成130、131、……、139、157、159这样的分类表。形成表六。
表六
130分类表
0000 1 1 0020 8 5 0065 12 1
0001 2 1 0025 3 2 0066 0 1
0002 0 4 0027 6 1 0067 13 1
0006 3 1 0028 3 5 0068 10 1
0007 0 3 0033 9 7 0069 0 2
0010 1 2 0040 0 5 0071 14 1
0012 4 3 0045 1 5 0072 0 15
0015 5 1 0050 10 10 0087 15 1
0016 6 1 0060 0 1 ----- --- ---
0017 7 1 0061 11 1
0018 4 2 0062 0 3
5)建立号码段数据索引表
将表六中的号码段信息,按照每M个提取一个的原则,建立索引表(表七)。由于该索引表使用的是折半查找算法检索,其运算次数约为15次,然后在表八中使用逐条检索的办法,为兼顾压缩率和运算时间,本实施例中M的取值为15~30,本实施例中M取值为20,这样可以更好的兼顾压缩后数据的大小及查询的效率。
表七
0000
0061
-----
删除表六中的号码段数据项,建立表八,这是因为,由于号码段数据项是连续的,并且起始号码是均是从零开始计算,通过逐一累相同城市的个数信息加即可还原出号码段数据。
表八
1 1 8 5 12 1
2 1 3 2 0 1
0 4 6 1 13 1
3 1 3 5 10 1
0 3 9 7 0 2
1 2 0 5 14 1
4 3 1 5 0 15
5 1 10 10 15 1
6 1 0 1 --- ---
7 1 11 1
4 2 0 3
6)文本数据二进制化
将表七和表八中的数据二进制化。
进一步地,表八中每条数据使用16位(bit)来存储。其中,高7位存储相同临近信息个数,一共可以存储0~127之间的数;低9位存储城市名称编号(可以存储0-511之间的数)。需要注意的是,当相同临近信息个数大于127时,进行拆分成小于等于127的数,然后再进行步骤5)建立号码段数据索引表中的每M个提取一个。
本实施例中的拆分方法为:设相同城市临近信息个数为X,则拆成n个127及X除以127得到的余数N,这种方式可以尽可能减小生成的表九数据项的数量,得到的表九如下:
例如,当表六中存在以下数据时:
407 0
将其拆成如下内容:
127 0
127 0
127 0
26 0
表七中数据由于最值为9999,因此用大于等于14位来存储即可,本实施例中采用16位(即2个字节)来存储,以方便查找计算。
通过本实施例,最终只需要存储城市号码表(表二)、多个分类表的索引(表七)和数据表(表八或表九),最终将总大小超过2.8M字节的来电归属地信息数据压缩在100K以内,大大节约了通讯设备中的ROM的资源,降低了硬件成本,且搜索效率高,使得低主频的处理器也能够很快地搜索到来电归属地。
实施例二
如图2所示,一种来电归属地信息显示方法,采用上述来电归属地信息压缩方法实施例一中获得的数据,具体包括以下步骤:
(1)获取来电号码;
(2)根据来电号码的前3位找到对应的分类表(上述表六);
(3)根据来电号码的第4至7位查找所述分类表的索引表(上述表七),找到最接近的号码值;
(4)根据该最接近的号码值,找到表九中对应的数据项,并逐个累加或逐个累减相同城市的个数值(最多累加或累减M次,本实施例为20次),直到得到与所述来电号码的第4至7位所在的数值点或数值区间为止,并根据该所在的数值点或数值区间获得对应的城市编号;
(5)根据该城市编号,查找城市编号表(表二),得到对应的城市名称,,并显示该城市名称。
进一步地,在所述步骤(3)中,具体为查找最接近的小于所述来电号码的第4至7位的值的索引值,通过该索引值与城市个数的逐个累加计算直至或后一个。
进一步地,在所述步骤(3)中,具体为查找最接近的大于所述来电号码的第4至7位的值的索引值;所述步骤(4)中,通过该索引值与城市个数的依次逐个累减,直到得到与所述来电号码的第4至7位相同的信息或者所在的区间为止。
以上所述的实施例仅用于说明本发明的技术思想及特点,其目的在使本领域内的技术人员能够了解本发明的内容并据以实施,当不能仅以本实施例来限定本发明的专利范围,即凡依本发明所揭示的精神所作的同等变化或修饰,仍落在本发明的专利范围内。
机译: 通信设备,信息显示方法,来电显示方法,来电历史记录显示方法,实施该方法的程序以及存储程序的存储介质
机译: 通信设备,信息显示方法,来电显示方法,来电历史记录显示方法,实施该方法的程序以及存储程序的存储介质
机译: 通信设备,信息显示方法,来电显示方法,来电历史记录显示方法,用于实现该方法的程序以及存储该程序的存储介质