分享
 
 
 

传真机huffman压缩编码

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

CCITT Group 3 modified Huffman run length encodeing

这种压缩方法,原来是CCITT这个组织所制定的一种传真机压缩编码方式,也就是Facsimile compatible CCITT Group3。不过,本压缩方法中减少了一些传真机上的特殊码。本压缩方法只能够压缩处理黑白图像数据。这套压缩方法是利用一个Bits数不固定的编码,来代替在黑白图像数据中连续出现的一串白点或黑点。

所有编码的Bits值都是来自于下列三份表格:

Terminating codes

Make-up codes

Additional make-up codes

(1) Terminating codes代表0-63连续白点或黑点的编码。在此范围内,没一点白点或黑点都有一个对应的编码。

(2) Make-up codes代表64-1728连续白点或黑点的编码。在此范围内,每隔64点的白点或黑点就有一个对应的编码。

(3) Additional make-up codes代表1792-2560连续白点或黑点的编码。在此范围内,每隔64点的白点或黑点共用一个对应的编码。

Table 1a. Terminating White Codes

Code Lng Run

---------------------------

00110101 8 0

000111 6 1

0111 4 2

1000 4 3

1011 4 4

1100 4 5

1110 4 6

1111 4 7

10011 5 8

10100 5 9

00111 5 10

01000 5 11

001000 6 12

000011 6 13

110100 6 14

110101 6 15

101010 6 16

101011 6 17

0100111 7 18

0001100 7 19

0001000 7 20

0010111 7 21

0000011 7 22

0000100 7 23

0101000 7 24

0101011 7 25

0010011 7 26

0100100 7 27

0011000 7 28

00000010 8 29

00000011 8 30

00011010 8 31

00011011 8 32

00010010 8 33

00010011 8 34

00010100 8 35

00010101 8 36

00010110 8 37

00010111 8 38

00101000 8 39

00101001 8 40

00101010 8 41

00101011 8 42

00101100 8 43

00101101 8 44

00000100 8 45

00000101 8 46

00001010 8 47

00001011 8 48

01010010 8 49

01010011 8 50

01010100 8 51

01010101 8 52

00100100 8 53

00100101 8 54

01011000 8 55

01011001 8 56

01011010 8 57

01011011 8 58

01001010 8 59

01001011 8 60

00110010 8 61

00110011 8 62

00110100 8 63

Table 1b. Make Up White Codes

Code Lng Run

---------------------------

11011 5 64

10010 5 128

010111 6 192

0110111 7 256

00110110 8 320

00110111 8 384

01100100 8 448

01100101 8 512

01101000 8 576

01100111 8 640

011001100 9 704

011001101 9 768

011010010 9 832

011010011 9 896

011010100 9 960

011010101 9 1024

011010110 9 1088

011010111 9 1152

011011000 9 1216

011011001 9 1280

011011010 9 1344

011011011 9 1408

010011000 9 1472

010011001 9 1536

010011010 9 1600

011000 6 1664

010011011 9 1728

Table 2a. Terminating Black Codes

Code Lng Run

---------------------------

0000110111 10 0

010 3 1

11 2 2

10 2 3

011 3 4

0011 4 5

0010 4 6

00011 5 7

000101 6 8

000100 6 9

0000100 7 10

0000101 7 11

0000111 7 12

00000100 8 13

00000111 8 14

000011000 9 15

0000010111 10 16

0000011000 10 17

0000001000 10 18

00001100111 11 19

00001101000 11 20

00001101100 11 21

00000110111 11 22

00000101000 11 23

00000010111 11 24

00000011000 11 25

000011001010 12 26

000011001011 12 27

000011001100 12 28

000011001101 12 29

000001101000 12 30

000001101001 12 31

000001101010 12 32

000001101011 12 33

000011010010 12 34

000011010011 12 35

000011010100 12 36

000011010101 12 37

000011010110 12 38

000011010111 12 39

000001101100 12 40

000001101101 12 41

000011011010 12 42

000011011011 12 43

000001010100 12 44

000001010101 12 45

000001010110 12 46

000001010111 12 47

000001100100 12 48

000001100101 12 49

000001010010 12 50

000001010011 12 51

000000100100 12 52

000000110111 12 53

000000111000 12 54

000000100111 12 55

000000101000 12 56

000001011000 12 57

000001011001 12 58

000000101011 12 59

000000101100 12 60

000001011010 12 61

000001100110 12 62

000001100111 12 63

Table 2b. Make Up Black Codes

Code Lng Run

---------------------------

0000001111 10 64

000011001000 12 128

000011001001 12 192

000001011011 12 256

000000110011 12 320

000000110100 12 384

000000110101 12 448

0000001101100 13 512

0000001101101 13 576

0000001001010 13 640

0000001001011 13 704

0000001001100 13 768

0000001001101 13 832

0000001110010 13 896

0000001110011 13 960

0000001110100 13 1024

0000001110101 13 1088

0000001110110 13 1152

0000001110111 13 1216

0000001010010 13 1280

0000001010011 13 1344

0000001010100 13 1408

0000001010101 13 1472

0000001011010 13 1536

0000001011011 13 1600

0000001100100 13 1664

0000001100101 13 1728

Table 3. Extended Make Up Codes (Black and White)

Code Lng Run

---------------------------

00000001000 11 1792

00000001100 11 1856

00000001101 11 1920

000000010010 12 1984

000000010011 12 2048

000000010100 12 2112

000000010101 12 2176

000000010110 12 2240

000000010111 12 2304

000000011100 12 2368

000000011101 12 2432

000000011110 12 2496

000000011111 12 2560

凡是想采用这套压缩方法处理黑白图像数据者,都必须现在程序内存出这三份表格,这样程序才能够参照这些表格,找出正确的编码,编制成压缩数据。

在编制压缩数据的过程中,第一步是先存入一个白点的编码。如果图像数据的第一个Bit值是黑点,就存入点数为0的连续白点编码(00110101),然后才开始存储黑点的编码。这是本压缩方法的一项特殊规定:每行的第一个编码值,必须是连续白点的编码。接下来的问题,则是如何以上述表格内的编码取代图像数据?下面举例说明,假设有某一图像数据的前两行内容如下:

第一列15各黑点,625个白点,3360个黑点

编码:00110101 000011000 01101000 01010010 000000011111

0个白点 15个黑点 576个白点 49个白点 2560个黑点

011001101 000001101010 000000

768个黑点 32个黑点 6个Bits

第二列18个白点,1486个黑点,2496个白点

编码:

0100111 0000001010101 00000111 000000011110 00110101

18个白点 1472个黑点 14个黑点 2496个白点 0个白点

从以上所列举的编码数据中,可以归纳出下列四项编码的原则:

(1) 每行压缩数据的第一个编码,必定是连续白点的编码。即使每行的第一点是黑点,还是得先用00110101(0个白点)作为压缩数据的第一个编码,接着才开始存储数据的第一个编码,接着才开始存储真正代表图形黑点的编码;

(2) 每行压缩数据的Bits总数,必须是8的倍数。如果Bits总数不是8的倍数,就须在每行压缩数据的末端,加上一些值为0的Bits,是Bits总数程为8的倍数。例如,上述实例的第一行压缩数据的Bits总数为66,还缺少六个Bits,才能成为8的倍数,第一列压缩数据的末端,加入了六个值为0的Bits,使Bits总数达到72,足够为8的倍数。至于第二行压缩数据的Bits总数为48,正好是8的倍数,所以就不需要加入一些多余的Bits。

(3) 编码有三种类型。

(A) 点数不超过63,可参照Terminating codes表格,找到对应的编码。这种编码都是只用一个,便代替一串相同的点数。

(B) 点数若在64-1728之间,则根据Terminating codes和Make-up codes表格,寻找编码。如果点数不是与Make-up codes表格数值相等,就需要用两个编码,方能取代一串相同的点数。

(C) 点数多达1792以上,就必须同时参考三份表格,才能找到所要的编码。这时,一串同值点数的编码,可能需要三个。如是点数比2560大很多,则需要的编码,就不止三个了。

(4) Additional mak-up codes表格内的编码,可以同时代表连续白点或黑点,,所以这个表格的编码后面,就要带有另外两个表格的编码,才能让解压缩程序知道究竟所读取的编码是代表白点或黑点。例如,上述范例的第二行有一串连续变点的点数为2496,恰好与Additional mak-up codes表格内第12项点数值相同。所以即在000000011110(2496个连续白点或黑点)编码之后,加上00110101(0个白点),表示000000011110是代表2496个连续白点。

以上摘自《探索图像文件的奥秘》 李振辉及RFC804

我的经验:

当一个连续白点或黑点只用到Make-up codes或

Additional make-up codes这两个表格时,后面必须加上00110101(0个白点)或 0000110111(0个黑点)

例如:

列 1792个白点

编码:00000001000 00110101 00000

1792个白点 0个白点 5个Bits

列 128个黑点

编码:00110101 000011001000 0000110111 00

0个白点 128个黑点 0个黑点 2个Bits

列 2624个白点

编码 000000011111 11011 00110101 0000000

2560个白点 64个白点 0个白点 7个Bits

列 2625个白点

编码 000000011111 11011 000111 0

2560个白点 64个白点 1个白点 1个Bits

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有