字母壓縮的方法
2024-03-31 05:07:05 4
專利名稱:字母壓縮的方法
技術領域:
本發明涉及一種字母壓縮的方法,尤其涉及一種應用於電話機中儲存電話識別碼(CallerID)的字母壓縮的方法由於市場的需求,一種具電話識別碼的電話機已漸漸普及。電話識別碼通常包括來電者的姓名(或代碼)、來電時間及日期等信息,在電話撥進時,用戶能事先得知來電為誰,以決定接或不接該電話。這樣的做法,可以使用戶更安心的接聽電話,當然,在防止不法事情的發生上,更具有其正面的效果。
由於一個人的姓名通常在16個字母之內,又因為ASCII碼系使用8位?的編碼,用以編出代表256不同符號的碼,其中英文大寫字母是從十六進位的21H到3AH,所以存放電話識別碼姓名部份的存儲空間是設計成16個字節(Bytes),但是這樣的作法顯然有待改善。
請參見
圖1,在具電話識別碼的電話機中,現有技術的電話識別碼的數據結構通常分為三部份。第一部份11為2個字節,用來存放時間,例如十點30分,則存放在第一部份的數據為″1030″。第二部份12亦為2個字節,用以存放日期,例如十一月二十號,則為″1120″。第三部份13大小為16位元組,用以存放來電者的姓名代碼,例如″AB…N″,則存在第三部份13為十六進位的21,22,…,2E;其中第一部份及第二部份系以BCD碼(二-十進位)表示,而第三部份13以ASCII碼表示。
事實上,第三部份13的姓名代碼,因為由大寫英文字母組成即可,而英文字母共有二十六個,所以用五位即可編碼完成,並不需要用到八位。但是存儲器的編址通常是以字節為單位,若為了節省存儲空間,以每五位為單位,將經五位編碼的數據″一個接著一個″存在以八位(等於一字節)為編址單位的存儲器中,在讀寫數據及處理上卻變得複雜許多。
本發明的目的在於提供一種字母壓縮的方法,它能將二十六個英文字母以等效五位編碼的方式有效減小存儲空間,使較小的存儲空間可儲存較多的電話識別碼。
本發明的目的是這樣實現的一種字母壓縮的方法,用以儲存一字母,該字母系包含在一符號集合中,其特點是包括以下步驟在該字母的字序超過該符號集合的中間值時,設定一特定位(Bit),並將一存儲單元的值設定為字母超過該符號集合的中間值的字序;以及在該字母的字序未超過該符號集合的中間值時,重置該特定位,並將該存儲單元的值設定為該字母的字序;其中該存儲單元的值的大小系由該符號集合一半的字母數決定之。
在上述的字母壓縮的方法中,其中,所述的其中該符號集合是包含{A,B…Y,Z}空隔及二十六個字母,該符號集合的中間值是為{M},該字母的字序未超過該符號集合的中間值的部份是為{A,B…M},該字母的字序超過該符號集合的中間值的部份是為{N,O,...,Z}。
在上述的字母壓縮的方法中,其中,所述的該字母的字序是由{A}的0,{B}的1,…,到{Z}的25;將該字母的字序除以13的商是決定該特定位的值,而其餘數決定該存儲單元的值。
在上述的字母壓縮的方法中,其中,所述的存儲單元的大小是為四個位。
在上述的字母壓縮的方法中,其中,所述的重置該特定位是指寫入「0」,設定該特定位是指寫入「1」。
在上述的字母壓縮的方法中,其中,所述的16個該特定位及16個該存儲單元是組成一10位元組大小的存儲空間,而該10位元組大小的存儲空間最多容納16個字母。
本發明由於將英文符號集合分割一半,若所儲存的英文字母為前半部的字母,則設定一特定位為″0″,反之則″1″;其次依所儲存的英文字母在分割一半後的二個子集合中的字序決定一存儲單元(4個位即可)的值,因此,儲存一個字母僅需5個位,所以可以使儲存電話識別碼的空間大為減小。
通過以下對本發明字母壓縮的方法的一實施例結合其附圖的描述,可以更進一步理解本發明的目的、特點和優點。其中,附圖為圖1是現有技術的電話識別碼數據結構。
圖2是以及本發明提出的字母壓縮的方法中電話識別碼數據結構。
請參見圖2。如前所述,電話識別碼30姓名中的英文字母事實上以五位(bit)來編碼即可,但若純粹照字母排列的順序來編碼,在處理的時候反而會更顯複雜,所以在此提出一種可以五位編碼,處理時又不會複雜的編碼方法,如所列的頭碼/尾(Header/Tailer)對照表。將英文字母的前半部賦與「0」的頭碼,而後半部的英文字母頭碼則為「1」。其次在將A到M的尾碼分別編為十六進位的「0」到「C」,同理「N」到「Z」的尾碼亦為「0」到「C」。
為了配合上述的編碼方法,提出一種數據結構20,以存取電話識別碼姓名部份的英文字母。第一部份及第二部份的時間及日期因為本身即為BCD碼(二-十進位),無需多加處理,所以並無改變。不同的地方在於規劃16個特定位的頭碼部份31用以分別存儲十六個字母的頭碼(Header);同時以十六個存儲單元,每個存儲單元4位Bits,最多可表示十六種碼,來表示被分成一半的十三個英文字母(A~M或N~Z)。
亦即,當中央處理器(CPU)在把電話識別碼姓名的某一英文字母寫入存儲器時,必須先判斷該英文字母是屬於前十三個字母或者為後十三個字母。若為前十三個字母,則將「0」寫入一特定位內,再將該字母的字序(0到12)寫入一存儲單元;反之,若屬於後十三個字母,則將「1」寫入該特定位內,再將該字母超過「M」的字序(0到12)寫入該存儲單元。該存儲單元為四位,加上該特定位,共五位。以五位來存儲字母,所以可以使存儲空間大為減小。
在寫入數據時,可以先將輸入字母的ASCII碼減去「A″的ASCII碼(十六進位為21,十進位為33),即可得到該字母的字序,例如輸入「A」時,「A″本身的ASCII碼相減,字序即為0,又例如「Z」的ASCII碼(十進位為58),減去「A」的ASCII碼(十進位為33),即可得字序25。再將該字序除以13,所得的商數即為頭碼(Header),餘餘數即為尾碼(Tailer),例如「A」的字序為0,除以13,可得頭碼為0,尾碼亦為0,而「Z」的字序為25,除以13,可得頭碼1,尾碼12(十六進位為C)。當然,若不以除法來實作,也可以用減法來作,原理則相同。
而在讀出數據時,可以依序將頭碼部份31及尾碼部份32的數據一個個讀出。每讀出一個頭碼及一個尾碼時,將頭碼乘以13,加上尾碼,再加上「A」的ASCII碼即還原為原來字母的ASCII碼。
在圖2中,為了清楚說明,舉一個姓名為「JOHNSONYKK」的例子。從頭碼/尾碼對照表可得,其頭碼為「01011111100」尾碼則為「9170510BAA」(以十六進位表示)。由於本實施例是以存儲十六個字母為例,未足十六字母的部份則頭碼/尾碼分別補十六進位「0」及「F」,所以真正存儲在存儲器的數據為,頭碼部份31「6F00」,尾碼部份32「9170510BAAFFFFFF」。為什麼尾碼不和頭碼一樣補「0」呢?因為若尾碼也是「0」,則當中央處理器讀回該數據時,會誤判為英文字母「A」,為了防止誤判,所以尾碼補十六進位「F」,而不補「0」。
事實上,本發明也可應用在存儲8個字母、24個字母、32個字母等,若存儲8個字母,則僅需5個字節(Bytes)、存儲24個字母則僅需15個字節、32個字母則為20個字節…。可見得比一般的儲存,每個字節存一個字母,可壓縮為八分之五倍的存儲空間。
在應用上,本發明是以常用的字母{′A′,′B′,…′Z′}為一符號集合,取其一半來編碼,當然可視需要,改變為其他的符號,或加上一些常用的符號(以本實施例而言,事實上當可以編進去六個符號)。
上述數學運算是可利用中央處理器的邏輯運算單元(ALU)來達成,而中央處理器的技術是為一現有技術,故本發明不多描述。由上述的圖解及說明,我們可知,利用編碼及數據結構的特殊設計,可以使電話識別碼(CallerID)儲存姓名字母部份的存儲空間減小為八分之五倍,換言之,同樣的存儲空間可記錄更多的電話識別碼。
權利要求
1.一種字母壓縮的方法,用以儲存一字母,該字母系包含在一符號集合中,其特徵在於包括以下步驟在該字母的字序超過該符號集合的中間值時,設定一特定位(Bit),並將一存儲單元的值設定為字母超過該符號集合的中間值的字序;以及在該字母的字序未超過該符號集合的中間值時,重置該特定位,並將該存儲單元的值設定為該字母的字序;其中該存儲單元的值的大小系由該符號集合一半的字母數決定之。
2.如權利要求1所述的字母壓縮的方法,其特徵在於所述的其中該符號集合是包含{A,B…Y,Z}空隔及二十六個字母,該符號集合的中間值是為{M},該字母的字序未超過該符號集合的中間值的部份是為{A,B…M},該字母的字序超過該符號集合的中間值的部份是為{N,O,…,Z}。
3.如權利要求2所述的字母壓縮的方法,其特徵在於所述的該字母的字序是由{A}的0,{B}的1,…,到{Z}的25;將該字母的字序除以13的商是決定該特定位的值,而其餘數決定該存儲單元的值。
4.如權利要求3所述的字母壓縮的方法,其特徵在於所述的存儲單元的大小是為四個位。
5.如權利要求4所述的字母壓縮的方法,其特徵在於所述的重置該特定位是指寫入「0」,設定該特定位是指寫入「1」。
6.如權利要求4所述的字母壓縮的方法,其特徵在於所述的16個該特定位及16個該存儲單元是組成一10位元組大小的存儲空間,而該10位元組大小的存儲空間最多容納16個字母。
全文摘要
本發明涉及一種字母壓縮的方法,其特點是:用以儲存一字母在一特定位及一存儲單元中,其是利用編碼的方法,將二十六個英文字母的符號集合,切為一半,分別編以頭碼及尾碼,頭碼則存在該特定位,尾碼則存在該存儲單元,以減小存儲空間,再配合數據結構的特殊設計,十六個字母則可存在十個字節內。由此能將二十六個英文字母以等效為五位編碼的方式,有效減小存儲空間,使較小的存儲空間可儲存較多的電話識別碼。
文檔編號H03M7/00GK1224953SQ9810435
公開日1999年8月4日 申請日期1998年1月26日 優先權日1998年1月26日
發明者莫自治, 賴勇成 申請人:大霸電子股份有限公司