MH编码

科技工作者之家 2020-11-17

MH编码是Modified Huffman的简称,即改进的哈夫曼编码,它利用水平方向像素之间的相关性,对一条扫描线各个不同的持续长度(像素连续出现的个数)进行编码。MH编码适用于传真等黑白位图图像的压缩,也是一种TIFF格式图像的压缩选项。它结合了变长编码和哈夫曼编码,将图像按行进行游程编码。

简介MH编码是一维编码方案,即对一行一行的数据进行编码。 即对一行一行的数据进行编码。它将游程编码和霍夫曼码相结合将游程编码和霍夫曼码相结合,是一种改进的霍夫曼码。MH编码用于对黑白二值文件传真的数据压缩。文件传真是指一般文件、图纸、手写稿、表格、报纸等文件的传真。它们是黑白二值的,即信源是二元信源 q=2。

MH的编码方式非常简单,图像按行以黑色和白色点的游程编成序列。游程长度小于64时,其结尾加上一个结尾码。若其长度等于或大于64时,会在结尾码前加入补充码,来定义游程的长度,这个长度是64的倍数,这个倍数为1到40的整数,故游程长度的范围就可以从64到2560.这样就可以避免对2560个可能的游程进行哈夫曼编码,而把编码长度限制在64。2560像素的单行长度对于标准的A4传真纸已经足够,而一般的传真纸白色的部分要比黑色的部分的面积大,所以MH编码还针对这一特点进行了优化,白色像素的游程一般比黑色像素的游程长。每行总是从白色游程开始(如果第一像素为黑色,则此长度可设为0),这样就保证收发图文颜色同步1。

规则MH码编码规则如下:

游程长度在0~63时,码字直接用相应的,码字直接用相应的终端码表示。

游程长度在64~1728,用一个形成码加上一个终端码一个形成码加上一个终端码为相应码字。

规定每行都从白游程开始 规定每行都从白游程开始。若实际出现黑游程开始的话。若实际出现黑游程开始的话,则在行首加上零长度白游程码,则在行首加上零长度白游程码字,每行结束用一个结束码字,每行结束用一个结束码(EOL)。

每页文件开始第一个数据文件开始第一个数据前加一个结束码前加一个结束码,每页尾连续使用6个结束码表示结尾。

每行应恢复出1728个像素,否则有错。1728个像素,否则有错。

为了传输时实现同步操作,规定为了传输时实现同步操作,规定T为每编码行的最小传 为每编码行的最小传输时间。一般规定输时间。一般规定 20ms≤T≤ 5s。若编码行传输时间小于若编码行传输时间小于T,则在结束码之前填以足够的则在结束码之前填以足够的“0”码元(称填充码)。

游程编码与哈夫曼编码游程编码(RLE,run-length encoding),又称行程长度编码或变动长度编码法,是一种与资料性质无关的无损数据压缩技术。变动长度编码法为一种“使用变动长度的码来取代连续重复出现的原始资料”的压缩技术。

哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。在计算机数据处理中,霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现机率的方法得到的,出现机率高的字母使用较短的编码,反之出现机率低的则使用较长的编码,这便使编码之后的字符串的平均长度、期望值降低,从而达到无损压缩数据的目的。

例如,在英文中,e的出现机率最高,而z的出现概率则最低。当利用霍夫曼编码对一篇英文进行压缩时,e极有可能用一个比特来表示,而z则可能花去25个比特(不是26)。用普通的表示方法时,每个英文字母均占用一个字节,即8个比特。二者相比,e使用了一般编码的1/8的长度,z则使用了3倍多。倘若我们能实现对于英文中各个字母出现概率的较准确的估算,就可以大幅度提高无损压缩的比例。

霍夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。树的路径长度是从树根到每一结点的路径长度之和,记为WPL=(W1*L1+W2*L2+W3*L3+...+Wn*Ln),N个权值Wi(i=1,2,...n)构成一棵有N个叶结点的二叉树,相应的叶结点的路径长度为Li(i=1,2,...n)。可以证明霍夫曼树的WPL是最小的。

传真通信传真通信是利用传真机,借助于公众通信网(模拟电话网或数据网)或其它通信线路传送图形、图片、文字等书面信息,并在接收方获得与发送方原件相同或相似副本的一种通信方式。传真通信包含扫描、光电变换、信号传输、记录和同步同相五个基本过程。在发送端,将欲发送的图像经发信扫描依次分解成许多微小的单元(称像元或像素,用光电变换器件把它们变换成相应的电信号,经信号处理后通过信道串行地传送出去。在接收端,将接收下来的电信号进行反变换,恢复成原始传真信号,送至记录器使之变换成光或电或热等不同形式的能量,通过收信扫描把这些随时间变化的一维电信号按照和发信扫描相同的顺序记录在记录纸上,最后组成与原图(原稿)相似的二维图像(复制稿)。为获得满意的而不是被分裂、歪斜甚而不可辨认的复制稿,必须保证收发两端同步同相。

本词条内容贡献者为:

王沛 - 副教授、副研究员 - 中国科学院工程热物理研究所

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。