码字查看源代码讨论查看历史
码字是全国科学技术名词审定委员会审定、公布的科技术语。
汉字,中国古人智慧的结晶[1]。千百年间,它经历了“甲金篆隶草楷行”的发展[2]。从记录的工具到艺术的载体,它的身上,倾注了无数先人的心血。
名词解释
码字(Code Word)是指利用Huffman(哈夫曼)码编码后的信号。
一帧包含m个数据位(即报文)和r个冗余位(校验位)。帧的总长度=数据位+冗余位,包含数据和校验位的第X位单元通常成为X位码字(codeword)。码字由若干个码元组成,计算机通信中通信表现为若干位二进制代码。
由于电子设备只能表示0、1两种状态,因此用电子方式处理符号是,需要对符号进行二进制编码。例如,在计算机中使用的ASCII码,就是计算机中常用符号的8位二进制编码,在实际中,也可以根据情况对字符进行特定的编码。
工作原理
设某信源产生有五种符号u1、u2、u3、u4和u5,对应概率P1=0.4,P2=0.1,P3=P4=0.2,P5=0.1。首先,将符号按照概率由大到小排队。编码时,从最小概率的两个符号开始,可选其中一个支路为0,另一支路为1。这里,我们选上支路为0,下支路为1。再将已编码的两支路的概率合并,并重新排队。多次重复使用上述方法直至合并概率归一时为止。从图(a)和(b)可以看出,两者虽平均码长相等,但同一符号可以有不同的码长,即编码方法并不唯一,其原因是两支路概率合并后重新排队时,可能出现几个支路概率相等,造成排队方法不唯一。一般,若将新合并后的支路排到等概率的最上支路,将有利于缩短码长方差,且编出的码更接近于等长码。这里图(a)的编码比(b)好。
赫夫曼码的码字(各符号的代码)是异前置码字,即任一码字不会是另一码字的前面部分,这使各码字可以连在一起传送,中间不需另加隔离符号,只要传送时不出错,收端仍可分离各个码字,不致混淆。
实际应用中,除采用定时清洗以消除误差扩散和采用缓冲存储以解决速率匹配以外,主要问题是解决小符号集合的统计匹配,例如黑(1)、白(0)传真信源的统计匹配,采用0和1不同长度游程组成扩大的符号集合信源。游程,指相同码元的长度(如二进码中连续的一串0或一串1的长度或个数)。按照CCITT标准,需要统计2×1728种游程(长度),这样,实现时的存储量太大。事实上长游程的概率很小,故CCITT还规定:若l表示游程长度,则l=64q+r。其中q称主码,r为基码。编码时,不小于64的游程长度由主码和基码组成。而当l为64的整数倍时,只用主码的代码,已不存在基码的代码。
长游程的主码和基码均用赫夫曼规则进行编码,这称为修正赫夫曼码,其结果有表可查。该方法已广泛应用于文件传真机中。
参考文献
- ↑ 中国人中国字|看中国人专属的浪漫和智慧!,搜狐,2022-10-12
- ↑ 了不起的中华文明:汉字发展史上的三次重大危机,搜狐,2020-09-18