图像编码资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LZ编码与传统统计编码比较
在压缩效果上字典式编码大大超过了 Huffman编码;
而且在实现上,压缩和解压缩的速度也异 常惊人。
于是LZ系列算法的优越性很快就在数据压 缩领域里体现出来,使用LZ系列算法的工具 软件数量呈爆炸式增长
LZ78和LZW一时间几乎统治了UNIX和DOS两大 平台。 然而随着时间流逝,事情变得耐人寻味。目 前为止占据个人用户计算机的主流压缩工具几 乎都采用LZ77变种算法; 更为优秀的LZ78和LZW没有成为最主流的算法? LZ77与它们有什么不同?
他编码方法结合使用。例如, 在JPEG中, 就综合使用了行程编 码、DCT、量化编码以及哈夫曼编码, 先对图像作分块处理, 再对这些分块图像进行离散余弦变换(DCT), 对变换后的频 域数据进行量化并作Z字形扫描,接着对扫描结果作行程编码, 对行程编码后的结果再作哈夫曼编码。
1.一维行程编码
编码思想: 将一行中颜色值相同的相邻象素(行 程)用一个计数值(行程的长度)和该颜 色值(行程的灰度)来代替,从而去除像 素冗余。 设沿某一扫描行的像素为x1,x2,…,xN对应的 灰度值可能为g1,g2,g3,g4.
ZIP格式的诞生
DEFLATE:完美地结合LZ77和Huffman编码可 将多个文件压缩到一个文件中,无论压缩比、 压缩速度都全面超过了商业软件ARC
开放ZIP格式,任何人都可以自由使用ZIP编 码算法而不需要缴纳任何专利费用。这个决定 最终改变了压缩的世界,使得通用数据无损压 缩领域再无法出现垄断的商业巨鳄
例:映射对:
i
1
gi
3
li
6
2
3 4
5
4 8
10
2 6
8级灰度,24个像素 对xi编码,总的比特数,至少243=72bit 如对(gi,li)编码,灰度值用3bit,行程长度用4bit 每对参数用7bit,总比特数只需28bit就够
行程编码(RLE)

对于有大面积色块的图像,压缩效果很好 对于纷杂的图像,压缩效果不好,最坏情况下 (图像中每两个相邻点的颜色都不同 ),会 使数据量加倍,所以现在单纯采用行程编码的 压缩算法用得并不多,PCX文件算是其中之一
LZW编码算法的具体执行步骤如下:
步骤1:开始时的词典包含所有可能的根(Root),而当前 前缀P是空的; 步骤2:当前字符(C) :=字符流中的下一个字符; 步骤3:判断缀-符串P+C是否在词典中 (1) 如果“是”:P:= P+C ,即用C扩展P); (2) 如果“否” ①把代表当前前缀P的码字输出到码字流; ②把缀-符串P+C添加到词典; ③令P:= C ,即现在的P仅包含一个字符C; 步骤4:判断码字流中是否还有码字要译 (1) 如果“是”,就返回到步骤2; (2) 如果“否” ①把代表当前前缀P的码字输出到码字流; ②结束。
7.4 行 程 编 码
7.4.1 行程编码基本方法
行程编码又称行程长度编码(Run Length Encoding, RLE),
是一种熵编码,其编码原理相当简单,即将具有相同值的连续串 用其串长和一个代表值来代替, 该连续串就称为行程,串长称为 行程长度。例如,有一字符串“aabbbcddddd”, 则经行程长度编 码后, 该字符串可以只用“2a3b1c5d”来表示。 行程编码分为定长和不定长编码两种。定长编码是指编码的 行程长度所用的二进制位数固定,而变长行程编码是指对不同范 围的行程长度使用不同位数的二进制位数进行编码。使用变长行 程编码需要增加标志位来表明所使用的二进制位数。
有名的LZW算法。
它实质上是LZ78算法的一个变种,但被认为 是一个独立的编码算法。LZW继承了LZ77和LZ78 压缩效果好、速度快的优点,而且在算法描述 上更容易被人们接受,实现也相对简单。
字典式(LZ)编码
其实LZ系列的算法并不新鲜,其中既没有高 深的理论背景,也没有复杂的数学公式。它们
只是简单的延续了千百年来人们对字典的追崇
和喜好,并用一种极为巧妙的方式将字典技术 运用于通用数据压缩领域。
简单的说如果你习惯用字典中的页码和行号
代替文章中的每个单词的时候,那实际上你已 经掌握了LZ系列算法的真谛,因此这类编码算
法被统称为Dictionary coders。
LZW编码
而在其后发展出来的各式各样的字典编码算 法,基本上都是这三种编码算法的分支或变体。 也就是说LZ77、LZ78和LZW是字典编码中最基础 的3种编码算法
行程编码为:
(7,130),(2,130),(4,129),(2,130),(1,129);(1,127), (1,128),(1,127),(1,129),(1,131),(1,130),(1,132), (2,134),(2,133),(1,132),(1,130),(1,129),(1,128), (1,127),(1,128),(1,127),(1,128),(1,127),(1,125), (1,126),(2,129),(1,127),(1,129),(1,133),(1,132), (1,131),(1,129),(2,130),(1,129),(3,130),(1,129), (1,130),(2,132),(2,131),(1,130),(1,126),(2,128), (2,127)
构)的方式来存储图像相关的信息,具体的文件格式可参考图
像文件格式的相关书籍。下面简要介绍GIF-LZW的编码方法。 设 S1 、 S2 为两个存放字符串的临时变量, LZW_CLEAR 和 LZW_EOI分别为字符表初始化标志和编码结束标志,GIF-LZW 的编码步骤如下:
(1)根据图像中使用的颜色数初始化一个字串表,字串表中 的每个颜色对应一个索引。在初始字串表的末尾再添加两个符 号( LZW_CLEAR 和 LZW_EOI )的索引。设置字符串变量 S1 、 S2并初始化为空。 (2) 接着输出LZW_CLEAR在字串表中的索引。 (3)从图像数据流中第一个字符(假设数据以字符串表示) 开始, 每次读取一个字符,将其赋给字符串变量S2。
GIF ( Graphics Interchange Format ) 最 初 是 由 美 国 CompuServe 于1987年开发的一种压缩位图格式。它可支持多达
256 种的颜色,具有极佳的压缩效率,已成为Internet 上一种流
行的文件格式。GIF图像文件采用的是一种改良的LZW压缩算法, 通常称为GIF-LZW压缩算法。GIF图像文件以块(又称为区域结
二维行程编码


二维行程编码要解决的核心问题是:将二维排 列的像素,采用某种方式转化成一维排列的方 式。之后按照一维行程编码方式进行编码 两种典型的二维行程编码的排列方式
例1:

数据量:64*8=512(bit)
130 130 130 130 130 130 130 130 129 129 129 129 134 134 132 130 133 133 132 130 129 130 130 129 130 130 130 129 130 132 132 131
行程编码比较适合于二值图像的编码,一般用于量化后出 现大量零系数连续的场合,用行程来表示连零码。如果图像是 由很多块颜色或灰度相同的大面积区域组成的,那么采用行程 编码可以达到很高的压缩比。如果图像中的数据非常分散,则 行程编码不但不能压缩数据,反而会增加图像文件的大小。为
了达到较好的压缩效果,一般不单独采用行程编码, 而是和其
如果按照方式(a)扫描的顺序排列的话,数据分布为:
130,130,130,130,130,130,130,130,130;129,129,129,129,130, 130,129;127,128,127,129,131,130,132,134,134;133,133,132, 130,129,128,127,128,127,128,127,125,126,129,129;127,129, 133,132,131,129,130,130;129,130,130,130,129,130,132,132; 131,131,130,126,128,128,127,127
LZW性能分析
对于可预测性不大的数据具有较好的处理效果 对于简单图像、平滑且噪声小的信号源具有较 高的压缩比,且压缩解压缩速度快; 对于数据流中连续重复出现的字节和字串,具 有很高的压缩比,除用于图像数据的压缩处理外, 还被用于文本程序等领域的数据压缩
LZW编码wenku.baidu.com基本思想是:在编码过程中,将所遇到的字符 串建立一个字符串表,表中的每个字符串都对应一个索引,编 码时用该字符串在字串表中的索引来代替原始的数据串。例如, 一幅8位的灰度图像,我们可以采用12位来表示每个字符串的索 引,前 256 个索引用于对应可能出现的 256 种灰度,由此可建立
编码后需存储空间(行程长度值用2B表示) 2B+3B+2B+3B+2B+3B+2B+3B+ 2B+3B =25B 3) 压缩比率:402:25=16.08 : 1
7.5 LZW编码
7.5.1 LZW编码方法
LZW(Lempel-Ziv & Welch)编码又称字串表编码, 属于
一种无损编码, 是Welch将Lempel和Ziv所提出的无损压缩技术
改进后的压缩方法。LZW编码与行程编码类似, 也是对字符串
进行编码从而实现压缩,但它在编码的同时还生成了特定字符
串以及与之对应的索引字符串表。
LZW 算法取得了专利,专利权的所有者是美国的一个大型
计算机公司—Unisys(优利系统公司),除了商业软件生产公司之
外,可以免费使用LZW算法。
字典式(LZ)编码
数据量为:43*(3+8)=473(bit)
(94.22%)
例2:
1) 原始数据所需存储空间: 50×3B+2×3B+1×3B+9×3B+72×3B=402B 2) RLE编码后得到的代码为:
50(200,30,100)2(255,255,255)1(0,5,5)9(0,0,0) 72(200,30,100)
LZ字典编码专利限制
LZ77完全没有专利限制; LZ78在美国稍稍涉及到一些专利禁止区; 而LZW专利权最终归属于Unisys公司;
ZIP格式的诞生
DOS环境下由于硬件资源的有限,标准配置 360kB的5.25寸软盘;网络条件十分有限,
14.4kbit/s
1985年SEA公司开发的MS-DOS环境下第一个应 用LZW算法的ARC(商业软件) 卡兹) Phillip W.Katz(菲利普·
130 130 130 129 f 127 127 125 127
128 127 129 131 129 131 128 127 128 127 128 132 126 129 129 127 129 133 125 128 128 126 130 131
二维行程编码
一个初始的字符串表,而剩余的 3840 个索引就可分配给在压缩
过程中出现的新字符串,这样就生成了一个完整的字符串表, 压缩数据就可以只保存它在字符串表中的索引,从而达到压缩 数据的目的。字符串表是在压缩过程中动态生成的,不必将它 保存在压缩文件里,因为解压缩时字符串表可以由压缩文件中 的信息重新生成。
把像素映射成序列对: (g1,l1),(g2, l2),(g3, l3),(g4, l4) 直接对(gi, li)编码,可大大压缩比特率
10 9 8 7 6 5 4 3 2 1 0
l4
l2 l1
g1 5 g2 10 15
l3
g3
g4 20 25 像素
li:表示第i次运行的行程,即连续取值为gi灰度值的像素 的个数
LZ是其发明者J.Ziv和A.Lempel两个犹 太人姓氏的缩写。此二人于1977年发表题
为《顺序数据压缩的一个通用算法》的论
文,论文中描述的算法被后人称为LZ77算 法。 1978年,二人又发表了该论文的续篇, 描述了后来被命名为LZ78的压缩算法。
LZW编码
1984年,Terry Welch发表论文描述了他在 Sperry研究中心的研究成果,也就是后来非常
相关文档
最新文档