国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種提高英文編碼效率的編碼方法*

2016-04-13 06:01:37郭連騏
通信技術(shù) 2016年1期

郭連騏

(哈爾濱工程大學(xué) 信息與通信工程學(xué)院,黑龍江 哈爾濱 150001)

?

一種提高英文編碼效率的編碼方法*

郭連騏

(哈爾濱工程大學(xué) 信息與通信工程學(xué)院,黑龍江 哈爾濱 150001)

摘要:目前世界上廣泛應(yīng)用的文字信息交換碼的體系有兩個:ANSI碼和Unicode碼。提高文字的編碼效率,會在通信中產(chǎn)生巨大的經(jīng)濟(jì)效益。郭碼是一個新的文字信息交換碼的編碼體系,其核算單位、數(shù)據(jù)結(jié)構(gòu)、編碼方法都是獨(dú)創(chuàng)的。郭碼對不同國家/民族的文字都有其獨(dú)立的編碼,并且字符編碼效率都高于Unicode碼,其中部分高于ANSI碼。它根據(jù)文字的應(yīng)用規(guī)律以及不同種類文字的特點(diǎn)創(chuàng)造出了多種鏈?zhǔn)骄幋a,其中“第二類符鏈”的英文字符編碼效率比ANSI碼提高了大約30%。

關(guān)鍵詞:郭碼;文字信息交換碼;英文編碼;ANSI碼

0引言

ASCII字符包括基本拉丁字母(英文字母)、阿拉伯?dāng)?shù)字、符號、控制符。ANSI碼中ASCII字符的碼長是一個字節(jié)(二進(jìn)制的8位),這個碼值是唯一的、固定不變的。在郭碼中,一種字符的編碼可以有多種“表示方式”[1]。郭碼使用獨(dú)創(chuàng)的單位“組元”(二進(jìn)制的12位),2組元的容量是2字節(jié)容量(65536)的256倍,可以包容世界各國文字的編碼。所有文字都有2組元編碼,稱為“基本表示方式”。一些常用漢字和全部ASCII字符還有單組元編碼,稱為“缺省表示方式”。某種文字連續(xù)出現(xiàn)多個時,可以構(gòu)成“鏈”,對其采取特定的編碼方法,形成該種文字編碼的“某某鏈表示方式”,它利用“規(guī)模效應(yīng)”提升了文字的編碼效率[2]。郭碼中各種文字的編碼效率都優(yōu)于Unicode碼。

1ANSI碼的應(yīng)用

ANSI碼中,全部的ASCII字符實(shí)際上只占用了一個字節(jié)的前半?yún)^(qū),即0到127,后半?yún)^(qū)(128到255)空置。

理論上,ASCII字符也可以使用二進(jìn)制的7位編碼,因?yàn)?位的容量是128。7位編碼的優(yōu)點(diǎn)是效率較高,但是,信息傳輸、存儲的基本單位是字節(jié),生成文件時,各個字符的7位編碼要頭尾相接、連續(xù)不斷地放入8位的字節(jié)中,要“塞滿”字節(jié)的每一位。從字節(jié)的角度看,它的全部容量(256)都被占用了。在以字節(jié)為單位的文件中,既然全部容量已被占用,也就沒有了其它文字編碼的可能,7位編碼的模式只能被ASCII字符獨(dú)家使用,這就使得它很“孤獨(dú)”。文字是人們相互交流的工具,一種文字編碼模式不能顧及其它文字的應(yīng)用,該種模式的使用范圍也就受到極大的限制。

現(xiàn)實(shí)的ANSI碼中ASCII字符是8位編碼,編碼效率要低于7位編碼。但另一方面,空置的后半?yún)^(qū)也為其它文字的編碼留下空間,法文、俄文、希臘文等拼音文字可以分別利用字節(jié)后半?yún)^(qū)編碼,漢字、韓文、日文等字符數(shù)量很多的文字也可以利用這空置的后半?yún)^(qū)形成2字節(jié)編碼以及4字節(jié)編碼,它們可以分別與ASCII字符兼容(不能同時兼容)。如此一來,ANSI碼也就得到了廣泛的應(yīng)用,英文在世界上的地位也得到了提升。我國現(xiàn)在執(zhí)行的國家標(biāo)準(zhǔn)GB18030—2000與ANSI碼兼容,也屬于ANSI碼體系。

在以字節(jié)為單位的、編碼模式不改變的情況下,ASCII字符的編碼效率無法再提高。

2郭碼的第二類符鏈

以前的郭碼文章中“符鏈”的應(yīng)用,使得ASCII字符的平均碼長優(yōu)于“缺省表示方式”的單組元(12位),趨近于ANSI碼的8位。

現(xiàn)在世界上使用英文的人口最多,為進(jìn)一步提高ASCII字符的編碼效率,本文推出郭碼的“第二類符鏈”。為避免混淆,稱以前郭碼的“符鏈”為“第一類符鏈”。

第二類符鏈仍然由3部分組成,鏈頭4013(FAD),鏈體,鏈尾4002(FA2)。鏈頭、鏈尾各占一個組元,鏈體元素的單位是“半組元”。

“半組元”是新設(shè)立的單位,其“長度”是組元的一半,即二進(jìn)制的6位,其能表示的數(shù)是從0到63,其容量為64,是組元容量的64分之一,是字節(jié)容量的四分之一。

第二類符鏈與第一類符鏈的關(guān)鍵區(qū)別,就是它的鏈體的元素不是字節(jié)(8位),而是“半組元”(6位)。

設(shè)置兩個數(shù)組,它們的大小均與“半組元”的容量相同,第一個為“基本數(shù)組”,第二個為“輔助數(shù)組”。將ASCII字符全部放到這兩個數(shù)組中,重新編碼。使用頻度高的字符放入“基本數(shù)組”,使用頻度低的放入“輔助數(shù)組”,它們新的碼長是二進(jìn)制的6位。

基本數(shù)組中的字符有10個阿拉伯?dāng)?shù)字、基本拉丁字母大小寫44個(去除JjQqXxZz)、符號“空格”“,”“.”“-”“"”“ '”(ANSI碼的20、2C、2E、2D、22、27)、控制符0D、控制符0A,它們的編碼是從0到61。其余字符(包括JjQqXxZz)放入輔助數(shù)組,編碼也是從0到61。

兩個數(shù)組中的碼值“62”、“63”有特殊用途。在鏈體中出現(xiàn)基本數(shù)組的字符時,直接用它的6位碼值;出現(xiàn)輔助數(shù)組的字符時,要在其碼值前面加上“63”(二進(jìn)制的“111111”),它的作用是表示其后面的6位碼值是輔助數(shù)組的。實(shí)際上,在第二類符鏈中,基本數(shù)組中字符是6位編碼,輔助數(shù)組中的字符是12位編碼。

以前的郭碼文章中,表示例句的各種編碼都使用16進(jìn)制數(shù)。1位16進(jìn)制數(shù)字可以等效代替二進(jìn)制的4位數(shù)字,2位16進(jìn)制數(shù)字可以表示1個字節(jié),3位16進(jìn)制數(shù)字可以表示1個組元。

半組元是二進(jìn)制的6位,用16進(jìn)制數(shù)字無法表示。為此,引入“4進(jìn)制數(shù)字”,1位4進(jìn)制數(shù)字可以等效代替2位二進(jìn)制的數(shù)字,2位4進(jìn)制數(shù)字可以對應(yīng)1位16進(jìn)制的數(shù)字。例如,與16進(jìn)制數(shù)字“1、6、9、C”對應(yīng)的4進(jìn)制數(shù)字是“01、12、21、30”。

半組元可以用3位4進(jìn)制數(shù)字表示,如“63”(10進(jìn)制)可用4進(jìn)制數(shù)字“333”表示。組元可以用6位4進(jìn)制數(shù)字表示。

3第二類符鏈的生成

由于第二類符鏈中ASCII字符的數(shù)量是不確定的,其中有多少個“輔助數(shù)組”的字符也不確定,為保證第二類符鏈的總長度是整數(shù)個組元,就要考慮鏈內(nèi)補(bǔ)碼問題。因?yàn)殒滙w的元素是半組元,鏈體內(nèi)半組元的總數(shù)是偶數(shù)時,恰好是整數(shù)個組元,不需要補(bǔ)碼;半組元總數(shù)是奇數(shù)時,需補(bǔ)碼1個“半組元”,其值為“62”(4進(jìn)制的“332”)。

鏈尾“FA2”是一個組元,它的4進(jìn)制表示是“33 22 02”。若將一個組元分成前后兩個“半組元”來看,“前半個組元”是“332”,“后半個組元”是“202”。因?yàn)椤?2”(4進(jìn)制的“332”)不作為字符編碼使用,鏈體內(nèi)的編碼中不可能出現(xiàn)“332”,故鏈體編碼不影響對鏈尾的搜索。

再者,若鏈體內(nèi)編碼的半組元從前往后排序(1、2、3…),序號為奇數(shù)的是“前半個組元”,序號為偶數(shù)的是“后半個組元”?!?32”只有出現(xiàn)在“前半個組元”時才可能影響對鏈尾的搜索。當(dāng)鏈體內(nèi)半組元總數(shù)為奇數(shù)時,最后一個“半組元”肯定是“前半個組元”,“332”補(bǔ)在“后半個組元”中,補(bǔ)碼也不會影響郭碼文件中對鏈尾的搜索。

郭碼中,ASCII字符“缺省表示方式”的編碼,每個字符碼長固定是1個組元(12位)。當(dāng)連續(xù)的ASCII字符達(dá)到5個時,它們的編碼總共是60位。若生成第二類符鏈,5個“半組元”為30位(按全部為基本數(shù)組的字符考慮),補(bǔ)碼1個“半組元”為6位,鏈頭、鏈尾共24位,符鏈總長度也是60位,二者編碼長度相同。

連續(xù)的ASCII字符達(dá)到6個時,“缺省表示方式”編碼是6個組元,共72位。若生成第二類符鏈,6個“半組元”為36位(按全部為基本數(shù)組的字符考慮),不需要補(bǔ)碼,鏈頭、鏈尾共24位,符鏈總長度是60位,少于“缺省表示方式”的72位。所以,連續(xù)6個ASCII字符就是生成第二類符鏈的起始標(biāo)準(zhǔn),少于6個時不生成鏈,按“缺省表示方式”編碼。成鏈后的ASCII字符編碼就是“第二類符鏈表示方式”。

第二類符鏈中ASCII字符的平均碼長由第二類符鏈的總長度(以“位”為單位)除以所含ASCII字符的數(shù)量得來。符鏈總長度包括鏈頭、鏈體內(nèi)的字符編碼、鏈內(nèi)補(bǔ)碼、鏈尾,如果此鏈構(gòu)成一個獨(dú)立文件,還要包括文件補(bǔ)碼。

繼續(xù)測算,連續(xù)的ASCII字符達(dá)到16個時(按全部為基本數(shù)組的字符考慮),第二類符鏈的總長度是120位,一個字符的平均碼長是7.5位,少于ANSI碼的8位。所以,當(dāng)連續(xù)的ASCII字符數(shù)達(dá)到或超過16個時,郭碼第二類符鏈的編碼效率就優(yōu)于ANSI碼,而且,連續(xù)的ASCII字符數(shù)量越多,此一優(yōu)勢越顯著。

4舉例說明

例一,短文『小二黑給小芹發(fā)了條短信“I love you”,小芹收到了但是沒看懂,因?yàn)樗龥]學(xué)過英文?!?/p>

它的ANSI碼文件是80個字節(jié)(略)。

郭碼“缺省表示方式”和“(第一類)符鏈表示方式”編碼是68個字節(jié)(略)。

郭碼“缺省表示方式”和“第二類符鏈表示方式”編碼是65個字節(jié)(16進(jìn)制):

C4 13 12 46 63 C8 C4 19 2D 31 46 E9 B1 D2 E0 C6 5F 37 FA D4 C0 AE ED 25 03 6B B3 FA 2F 38 F4 7C 41 92 DA 41 27 36 E9 26 1A 33 79 56 16 2C 2F 47 D4 EB 8E AC 77 95 CA 54 2B D5 CB A8 F2 E0 0E 00 B0

后二者對短文漢字部分“缺省表示方式”的編碼完全相同,差別僅在英文部分,以下僅關(guān)注英文部分第二類符鏈的編碼(第19個到第29個字節(jié),符鏈實(shí)際使用10.5個字節(jié))。

……FA D4 C0 AE ED 25 03 6B B3 FA 2F……(16進(jìn)制)

改為4進(jìn)制表示:

……3322 3110 3000 2232 3231 0211 0003 1223 2303 3322 0233……

該段編碼解釋如下:

3322 31第二類符鏈的鏈頭 103 I 000 空格 223 l 232 o 310 v 211 e000 空格 312 y232 o303 u3322 02 鏈尾33(漢字標(biāo)點(diǎn)符號編碼的一部分)

該句英文,第二類符鏈編碼的鏈體是10個“半組元”(字符全部是基本數(shù)組的),就是5個組元,加上鏈頭、鏈尾,全鏈共7個組元,即10.5個字節(jié)。本例中ASCII字符的平均碼長為8.4位。

例二,短文『He said: "That's one small step for a men, one giant leap for mankind."』

ANSI碼編碼73個字節(jié)(16進(jìn)制):

48 65 20 73 61 69 64 3A 20 22 54 68 61 74 27 73 20 6F 6E 65 20 73 6D 61 6C 6C 20 73 74 65 70 20 66 6F 72 20 61 20 6D 65 6E 2C 20 6F 6E 65 20 67 69 61 6E 74 20 6C 65 61 70 20 66 6F 72 20 6D 61 6E 6B 69 6E 64 2E 22 0D 0A

郭碼的第二類符鏈編碼59個字節(jié)(16進(jìn)制):

FA D4 A5 03 18 69 93 F2 80 E9 CA 21 CB DC 40 BA D9 40 C6 C8 6B AC 0C 72 96 F0 26 BB 00 21 02 C9 6D DC 0B AD 94 09 E9 86 DC 80 AE 58 6F 02 6B B0 02 C8 6D AA 9B 64 E3 AE FC FA 20

郭碼的第二類符鏈編碼(4進(jìn)制):

3322 3110 2211 0003 0120 1221 2103 3302 2000 3221 3022 0201 3023 3130 1000 2322 3121 1000 3012 3020 1223 2230 0030 1302 2112 3300 0212 2323 0000 0201 0002 3021 1231 3130 0023 2231 2110 0021 3221 2012 3130 2000 2232 1120 1233 0002 1223 2300 0002 3020 1231 2222 2123 1210 3203 2232 3330 3322 0200

編碼解釋如下:

3322 31鏈頭102 H 211 e 000 空格 301 s 201 a 221 i 210 d 333 022 : 000 空格322 " 130T 220 h 201a 302 t 331 ' 301s 000 空格232 o 231 n 211 e000空格 301 s230 m 201 a 223 l 223 l 000 空格301 s 302 t 211 e233 p 000 空格212 f 232 o 300 r 000 空格201 a 000 空格 230 m 211 e 231 n 313 , 000 空格232 o 231 n 211 e 000 空格213 g 221 i 201 a 231 n 302 t 000 空格223 l211 e 201 a 233 p 000 空格 212 f 232 o 300 r 000 空格230 m 201a 231 n 222 k 221 i 231 n 210 d 320.322 "323 (控制符oD) 330(控制符0A)3322 02 鏈尾00 文件補(bǔ)碼4位

全文有ASCII字符73個,只有1個字符(冒號“:”)屬于輔助數(shù)組,其編碼“333 022”為2個“半組元”。其余字符都屬于基本數(shù)組,碼長為1個“半組元”。

鏈體內(nèi)有“半組元”共74個,為偶數(shù),不需要鏈內(nèi)補(bǔ)碼。鏈體含37個組元,再加上鏈頭、鏈尾共39個組元,為奇數(shù),需要文件補(bǔ)碼4位。全文長59個字節(jié)。

應(yīng)用第二類符鏈編碼使得本例中一個ASCII字符的平均碼長為6.465 8位,編碼效率比ANSI碼提高23.73%。

例三,一篇著名的宣言

『THE DECLARATION OF INDEPENDENCE

July 4, 1776

In Congress, July 4, 1776,

THE UNANIMOUS DECLARATION OF THE THIRTEEN UNITED STATES OF AMERICA

……

New Jersey: RICHARD STOCKTON, JOHN WITHERSPOON, FRANCIS HOPKINS, JOHN HART, ABRAHAM CLARK 』

ANSI碼文件長9655個字節(jié)(略)。

郭碼第二類符鏈編碼文件長7313個字節(jié),以下僅列出文件最前面的36個字節(jié)和最后面的36個字節(jié)(16進(jìn)制):

FA D0 00 71 23 C0 38 F3 55 2D A2 DC 4D 85 C0 61 00 13 5C E3 D9 3D 73 8F 5C D3 FB F0 00 3F 07 3A F6 00 4D C0 ……1A 2D 73 53 6C 04 98 65 44 D7 6F 70 3F 05 84 97 03 BF 12 2D A7 37 00 B3 1A 2D 22 D6 00 D5 4B 69 40 3E FA 20

以下僅列出最后14個字節(jié)的4進(jìn)制表示:

0000 2303 0122 0231 0202 3112 0000 3111 1023 1221 1000 0332 3322 0200

編碼解釋如下:

000 空格023A 030 B 122 R 023 A 102 H 023 A 112 M 000 空格031 C 111 L 023 A 122R110 K 000空格 332 鏈內(nèi)補(bǔ)碼(十進(jìn)制的62) 3322 02 鏈尾 00文件補(bǔ)碼4位

9 655個字符中,“輔助數(shù)組”的有90個。鏈體內(nèi)字符編碼有9 745個“半組元”,為奇數(shù),“鏈內(nèi)補(bǔ)碼”1個“半組元”(值為4進(jìn)制的332),鏈體共有9 746個“半組元”,就是4 873個組元。再加上鏈頭、鏈尾2個組元,第二類符鏈總共4 875個組元,為奇數(shù),故在最后“文件補(bǔ)碼”4位。文件長7 313個字節(jié),比ANSI碼文件節(jié)省了2 342個字節(jié)。

該宣言郭碼第二類符鏈編碼,ASCII字符平均碼長為6.059 5位,編碼效率比ANSI碼提高了32.03%。

本例中,輔助數(shù)組中字符使用頻度為0.9322%,不足百分之一。換言之,基本數(shù)組的字符使用頻度達(dá)99%以上。經(jīng)過對數(shù)萬字符的英文資料測試,輔助數(shù)組中字符使用頻度一般不超過百分之一。

做一簡單估算,假設(shè)輔助數(shù)組中字符使用頻度為百分之一,連續(xù)的ASCII字符數(shù)量達(dá)到200個以上,第二類符鏈編碼效率就會比ANSI碼提高約30%。

郭碼中ASCII字符的編碼可以有4種“表示方式”,它的平均碼長分別是“基本表示方式”的24位,“缺省表示方式”的12位,“第一類符鏈表示方式”的接近8位,“第二類符鏈表示方式”的接近6位。“基本表示方式”一般不使用,“第一類符鏈表示方式”因?yàn)樾阅芰佑凇暗诙惙湵硎痉绞健保矊⑸崛ァ?/p>

現(xiàn)在使用的文字處理軟件是基于國家標(biāo)準(zhǔn)GB18030—2000的,它“看不懂”使用郭碼生成的文字文件。為了檢驗(yàn)郭碼的正確性,編寫了工具軟件A和工具軟件B。軟件A可以把ANSI碼文字文件(純文本)W1轉(zhuǎn)譯為郭碼文件W2,工具軟件B可以把郭碼文件W2轉(zhuǎn)譯為ANSI碼文件W3。文件W3與W1完全相同,就說明郭碼文件W2與ANSI碼文件W1承載著相同的文字信息。以上例句中的郭碼文件數(shù)據(jù)就是由軟件A得來的。

5結(jié)語

連續(xù)的ASCII字符少于6個時不生成第二類符鏈,按“缺省表示方式”編碼,字符的碼長是12位,劣于ANSI碼的8位,但這是小概率事件。連續(xù)的ASCII字符達(dá)到或超過6個時就生成第二類符鏈,隨著字符數(shù)量的增加,字符的平均碼長就趨近于6位,這是大概率事件。郭碼并非任何情況下ASCII字符編碼效率都優(yōu)于ANSI碼,而是有時“賠”有時“賺”,只是“賠”的少、“賺”的多,綜合考慮,它就優(yōu)于ANSI碼。字符編碼效率的提高將能夠帶來可觀的經(jīng)濟(jì)效益。

參考文獻(xiàn):

[1]郭連騏.郭碼是一種新型的文字信息交換碼[EB/OL].新浪網(wǎng)陶沙的博客,(2015-09-10) [2015-10-10],http://blog.sina.com.cn/taosha9801.

GUO Lian-qi. Guo-Code is a Kind of New Writing Information Exchanges Code[EB/OL].Sina net Taosha blog.(2015-09-10)[2015-10-10].http://blog.sina.com.cn/taosha9801.

[2]郭連騏.郭碼的改進(jìn)型[EB/OL]. 新浪網(wǎng)陶沙的博客.(2013-04-06)[2015-10-10].http://blog.sina.com.cn/taosha9801.

GUO Lian-qi. The Improvement Type of the Guo-Code[EB/OL]. Sina net Taosha blog.(2013-04-06)[2015-10-10],http://blog.sina.com.cn/taosha9801.

郭連騏(1945—),男,教授,主要研究方向?yàn)槲淖中畔⒔粨Q碼。

A Coding Method for Improving English Coding Efficiency

GUO Lian-qi

(College of Information and Communication Engineering,Harbin Engineering University,Harbin Heilongjiang 150001,China)

Abstract:Nowadays, there are two widely-applied information exchanges coding systems all over the world, that is ANSI (American National Standards Institute) and Unicode (Universal Multiple- Octet Coded Character Set). It is obvious that to raise the coding efficiency of writing information would result in huge economic benefit in the communication field. Guo-code is a new coding system for information exchanges, in which the checking unit, data structure and coding method are all originally created. For different writing characters of different countries / nations, Guo-code uses different self-governed coding method, and its coding efficiency is clearly higher than that of Unicode coding system,and for some application even higher than that of ANSI. Guo-code creates a manifold “chain type coding method” in accordance with the different application rules and characteristics of various characters. This paper focuses on the coding method for English writing characters listed in the “second sign chain”. Experiment indicates that the efficiency with Guo-code method is higher about 30% than with ANSI coding method.

Key words:Guo-code; writing-information exchange code; English coding method; ANSI code

作者簡介:

中圖分類號:TN911.21

文獻(xiàn)標(biāo)志碼:A

文章編號:1002-0802(2016)01-0007-05

*收稿日期:2015-08-02;修回日期:2015-11-20Received date:2015-08-02;Revised date:2015-11-20

doi:10.3969/j.issn.1002-0802.2016.01.002

手游| 忻州市| 夏津县| 邻水| 开封市| 永清县| 张家界市| 榆树市| 泾源县| 浮梁县| 玉林市| 抚顺市| 宜昌市| 保亭| 敖汉旗| 玉山县| 铜梁县| 鲜城| 汉沽区| 商都县| 隆化县| 论坛| 丰宁| 扎鲁特旗| 赞皇县| 曲松县| 贡嘎县| 金寨县| 武功县| 集安市| 乐都县| 江西省| 仪陇县| 凤城市| 岚皋县| 常州市| 东方市| 密云县| 沽源县| 芮城县| 井陉县|