好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

常用的无损数据压缩方法.ppt

46页
  • 卖家[上传人]:第***
  • 文档编号:49154009
  • 上传时间:2018-07-24
  • 文档格式:PPT
  • 文档大小:1.06MB
  • / 46 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 6.3 常用的无损数据压缩方法v6.3.1 Huffman编码 v6.3.2 算术编码 v6.3.3 行程RLE编码 v6.3.4 词典编码Date16.3.1 Huffman编码v基本原理 § 依据信源字符出现的概率大小来构造代码,对 出现概率较大的信源字符,给予较短码长,而 对于出现概率较小的信源字符,给予较长的码 长,最后使得编码的平均码字最短Date26.3.1 Huffman编码v具体的编码步骤 § 将信源出现的概率由大到小排序 § 将两处最小概率组合相加,形成新概率 § 将新概率与未编码的字符一起重新排序 § 重复步骤2、3,直到出现的概率和为1 § 分配代码• 代码分配从最后一步开始反向进行,对最后两个概 率一个赋予0代码,一个赋予1代码记录下从树的 根到每个信源符号终节点的0和1序列至于哪个为“1”哪个为 “0”则无关紧要,最后 的结果仅仅是分配的 代码不同,而代码的 平均长度是相同的 Date36.3.1 Huffman编码vHuffman编码中求平均码长的方法: § 概率×码长Date46.3.1 Huffman编码vHuffman编码练习一: § 设输入图像的灰度级{a1,a2,a3,a4,a5,a6}出现的 概率分别是0.4、0.2、0.12、0.15、0.1、0.03。

      试进行哈夫曼编码,并计算平均码字长度Date5Huffman编码练习一答案最终编码结果为: a1 =1, a2 =011 , a3 =001, a4 =010, a5 =0001, a6 =00001 010010Date6Huffman编码练习一答案v据公式 图像信源熵为: § H(X) = -(0.4×log20.4+0.2×log20.2+0.12×log20.12+ 0.15×log20.15+0.1×log20.1+0.03×log20.03) = 2.25 bit v根据哈夫曼编码结果,平均码字长度: § Lc=0.4×1+0.2×3+0.15×3+0.12×3+0.1×4+0.03×4 =2.33 v编码效率、压缩比和冗余度分别为: § 96.6%、1.2、3.4%r = 1-η = 3.4%Date76.3.1 Huffman编码vHuffman编码注意事项§ 哈夫曼编码没有错误保护功能,在译码时,如 果码串中没有错误,那么就能一个接一个的正 确译出代码但如果码串中有错误,哪怕仅是 1位出现错误,不但这个码本身译错,后面的 译码可能全错,这种现象称为错误传播( Error Propagation)。

      § 哈夫曼编码是可变长度码,很难随意查找或调 用压缩文件中间的内容,然后再译码,这就需 要在存储代码之前加以考虑Date86.3.2 算术编码v算术编码(arithmetic coding AC)是利用0 和1之间的间隔来表示信源编码的一种方法 ,其编码值是间隔的上、下限包含的相同 二进制编码过程中的间隔决定了符号压 缩后的输出 v算术编码用到两个基本的参数 § 符号的概率和它的编码间隔 v信源符号的概率决定压缩编码的效率,也 决定编码过程中信源符号的间隔,而这些 间隔包含在0到1之间 Date96.3.2 算术编码v编码过程: § 设信源符号为{A, B, C, D},其概率分别为{ 0.1, 0.4, 0.2, 0.3 },按概率可把间隔[0, 1]分成4个子 间隔:[0, 0.1), [0.1, 0.5), [0.5, 0.7), [0.7, 1],其 中[x,y)表示半开放间隔,即包含x不包含y,如 下表所示 符号ABCD 概率0.10.40.20.3 初始编码间 隔[0,0.1 )[0.1,0.5 )[0.5,0.7 )[0.7,1]Date106.3.2 算术编码v如果消息序列的输入为:CADACDB,其 编码过程如下: § 首先输入的符号是C,找到它的编码范围是 [0.5, 0.7); § 由于消息中第2个符号A的编码范围是[0, 0.1), 因此它的间隔就取[0.5, 0.7 )的第一个1/10作为 新间隔[0.5, 0.52 ) ; § 编码第3个符号D时取新间隔为[0.514, 0.52 ); § 编码第4个符号A时,取新间隔为[0.514, 0.5146 ) ,…。

      Date116.3.2 算术编码符号ABCD 概率0.10.40.20.3 初始编码间 隔[0,0.1 )[0.1,0.5 )[0.5,0.7 )[0.7,1]Date126.3.2 算术编码v消息的编码输出可以是最后一个间隔中的任 意数,整个编码过程如下图所示最后在 [0.5143876,0.514402)中选择一个数作为编码 输出值:0.51439 v解码时,解码器由编码输出值:0.51439,可 马上解得一个字符为C,然后依次得到唯一 解A,D,A,C,D,BDate136.3.2 算术编码步 骤译码间隔译码10.51439在间隔 [0.5, 0.7)10 20.51439在间隔 [0.5, 0.7)的第1个1/1000 30.51439在间隔[0.5, 0.52)的第7个1/1011 40.51439在间隔[0.514, 0.52)的第1个1/1000 50.51439在间隔[0.514, 0.5146)的第5个1/1010 60.51439在间隔[0.5143, 0.51442)的第7个1/1011 70.51439在间隔[0.51439, 0.5143948)的第1个1/1001 8译码消息:10 00 11 00 10 11 01 译码过程如下:Date146.3.2 算术编码v在算术编码中需要注意的几个问题:§ 由于计算机精度不可能无限长,运算中容易出现 溢出,但多数机器都有16位、32位或者64位的精度,因此可使用比例缩放方法解决。

      § 算术编码器对整个消息只产生一个码字,这个码 字是在间隔[0, 1)中的一个实数,因此译码器在接受到所有位之前不能进行译码§ 算术编码也是一种对错误很敏感的编码方法,如 果有一位发生错误就会导致整个消息译错Date156.3.3 行程长度编码 vRLE(Run-Length Encoding)是一个针对 包含有顺序排列的多次重复的数据的压缩 方案其原理就是把一系列的重复值用一 个单独的值再加上一个计数值来取代,行 程长度就是连续且重复的单元数目如果 想得到原始数据,只需展开这个编码就可 以了 Date166.3.3 行程长度编码v例如,计算机制作图像中,不需要存储每 一个像素的颜色值,而仅存储一个像素的 颜色值以及具有相同颜色的像素数目就可 以,或者存储一个像素的颜色值,以及具 有相同颜色值的行数,这种压缩编码称为 行程编码具有相同颜色的连续的像素数 目称为行程长度Date176.3.3 行程长度编码v如图所示,假定一幅灰度图像,第n行的像 素值为:v用RLE编码方法得到的代码为: 3150841160代码红色斜体表示的数字是 行程长度,后面的数字代表像素的颜色值 例如红色斜体字50代表有连续50个像素 具有相同的颜色值,它的颜色值是8。

      Date186.3.3 行程长度编码v对比RLE编码前后的代码数可以发现,在 编码前要用73个代码表示这一行的数据, 而编码后只要用10个代码表示代表原来的 73个代码,压缩前后的数据量之比约为7:1 ,即压缩比为7:1这说明RLE确实是一种 压缩技术,而且编码技术实用Date196.3.3 行程长度编码vRLE的性能好坏主要取决于图像本身的特 点RLE压缩编码尤其适用于计算机生成 的图像,对减少图像文件的存储空间非常 有效 v然而,由于颜色丰富的自然图像在同一行 上具有相同颜色的连续像素往往很少,而 连续几行都具有相同颜色值的连续行数就 更少,如果仍然使用RLE编码方法,不仅 不能压缩图像数据,反而可能使原来的图 像数据变得更大 Date206.3.3 行程长度编码v译码时按照与编码时采用的相同规则进行 ,还原后得到的数据与压缩前的数据完全 相同因此,RLE属于无损压缩技术 v它被用于BMP、JPEG/MPEG、TIFF和 PDF等编码之中,还被用于机Date216.3.4 词典编码v词典编码属于无损压缩技术,其根据是数 据本身包含有重复代码序列这个特性词 典编码的种类较多,归纳起来有两类。

      § 第一类词典编码 • LZ77、LZSS § 第二类词典编码 • LZ78、LZWDate22第一类词典编码v第一类词典编码的基本思想是查找正在压 缩的字符序列是否在前面输入的数据中出 现过,如果是,则用指向早期出现过的字 符串的“指针”替代重复的字符串Date23第一类词典编码v这里所指的“词典”是指用以前处理过的数 据来表示编码过程中遇到的重复部分 § 这类编码中的所有算法都是以Abraham Lempel和Jakob Ziv在1977年开发和发表的称 为LZ77算法为基础的 § LZSS算法——LZ77的改进方法Date24LZ77算法v输入数据流(input stream):待压缩的字符序列 v字符(character):输入数据流中的基本单元 v编码位置(coding position):输入数据流中当前 要编码的字符位置,前向缓冲器的开始字符 v前向缓冲器(lookahead buffer):存放从编码位置 到输入数据流结束的字符序列的存储器 v窗口(Window):包含W个字符的窗口,字符从 编码位置开始向后数 v指针(Pointer):指向窗口中的匹配串且含长度。

      Date25LZ77算法vLZ77编码算法的核心是查找从前向缓冲器开 始的最长的匹配串具体执行步骤如下: § 把编码位置设置到输入数据流的开始 § 查找窗口中最长的匹配串 § 输出(Pointer, Length) Characters,其中Pointer 是指向窗口中匹配串的指针,Length表示匹配字 符的长度,Characters是前向缓冲器中第1个不匹 配的字符 § 如果前向缓冲器不是空的,则把编码位置和窗口 向前移Length+1个字符,然后返回到步骤2 Date26LZ77算法待编码的 数据流 位置1 2 3 4 5 6 7 8 9 10 字符 A A B C B B A B CC编码过程 步骤 位置 匹配串 字符输出1 1 -- A (0,0) A 2 2 A B (1,1) B 34 -- C (0,0) C 45 B B (2,1) B 57 A B C C (5,3) C 告诉译码 器回退5个 字符,然后 拷贝3个字 符“ABC”Date27LZ77算法v“步骤”栏表示编码步骤 v“位置”栏表示编码位置 v“匹配”栏表示窗口中找到的最长的匹配串。

      v“字符”栏表示匹配之后在前向缓冲器中的第1个字符 v“输出”栏以(Back_chars, Chars_length) Explicit_character格式输出 § 其中(Back_chars, Chars_length)是指指向匹配串的指针, 告诉译码器“在这个窗口中向后退Back_chars个字符然后拷 贝Chars_length个字符到输出”,Explicit_character是真实 字符 § 例如,输出“(5,2) C”告诉译码器回退5个字符,然后拷贝2 个字符“AB” Date28LZ77算法v解压算法 ——解码 § 当碰到编码字符串时,解压算法使用,和 ,字段将编码替换成实际的正文字符串Date29LZ77 算法练习v给定一个报文 : abcdbbccaaabaeaaabaee, 请用LZ77算法对该报文序列进行编码!vvOutput : Output : (0,0,a)(0,0,b)(0,0,c)(0,0,d)(3,1,b)(4,1,c)(8,1,。

      点击阅读更多内容
      相关文档
      Unit2 Health and Fitness语法课件-(高教版2023·基础模块2).pptx 九年级数学提升精品讲义 用配方法求解一元二次方程(原卷版).docx 九年级数学提升精品讲义 一元二次方程的根与系数的关系(解析版).docx 2025学年九年级化学优学讲练(人教版) 化学实验与科学探究(解析版).docx 九年级数学提升精品讲义 一元一次不等式与一元一次不等式组(原卷版).docx 九年级数学提升精品讲义 因式分解(解析版).docx 九年级数学提升精品讲义 相似三角形的性质(原卷版).docx 2025年 初中七年级数学 相交线与平行线 知识突破速记与巧练(原卷版).docx 九年级数学提升精品讲义 中点模型之斜边中线、中点四边形(解析版).docx 2025学年九年级化学优学讲练(人教版) 分子和原子(解析版).docx 九年级数学提升精品讲义 正方形的性质(原卷版).docx 九年级数学提升精品讲义 用因式分解法求解一元二次方程(解析版).docx 2025年 初中七年级数学 实数 知识突破速记与巧练(原卷版).docx 九年级数学提升精品讲义 应用一元二次方程(原卷版) (2).docx 2025年 初中七年级数学 相交线与平行线 压轴专练速记与巧练(解析版).docx 九年级数学提升精品讲义 用公式法求解一元二次方程(解析版).docx 2025学年九年级化学优学讲练(人教版) 化学方程式的书写(原卷版).docx 九年级数学提升精品讲义 应用一元二次方程(解析版) (2).docx 2025年 初中七年级数学 数据的收集、整理与描述 综合测试速记与巧练(解析版).docx 九年级数学提升精品讲义 中点模型之斜边中线、中点四边形(原卷版).docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.