无失真信源的编码工作.pptVIP

  • 2
  • 0
  • 约9.85千字
  • 约 43页
  • 2019-12-22 发布于广东
  • 举报
游程编码 游程指的是由字符(或信号取样值)构成的数据流中各个字符(或取样值)连续重复出现而形成的一段数据. 游程长度RL (Run—Length),简称游程或游长,指的是这段连续重复出现的数据的长度。 基本思路:对于一幅栅格图像,常常有行(或列)方向上相邻的若干点具有相同的属性代码,因而可采取某种方法压缩那些重复的记录内容。其编码方案是,只在各行(或列)数据的代码发生变化时依次记录该代码以及相同代码重复的个数,从而实现数据的压缩。 9 9 9 9 9 7 7 7 7 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 5 5 5 5 5 5 5 5 5 9 9 9 9 9 9 9 9 9 9 9 8 8 8 8 8 8 8 8 7 7 7 7 7 3 4 4 4 5 5 5 6 6 6 6 6 6 6 8 8 8 8 8 8 8 8 8 8 8 8 8 (9,5),(7,4),(0,8),(1,14),(2,9),(5,9),(9,11),(8,8),(7,5),(3,1),(4,3),(5,3),(6,7),(8,13) 特点:图中的符号只有两种,其中连续的白点构成白游程,黑点构成黑游程,而且黑白游程总是交替出现的. 规定游程从白游程开始,可以编码为:34,2,7,5,2,2,3,2,2,6…… 数据有的出现的次数比较多,而有的数据出现的次数比较少,因此还可以利用Huffman编码对这些数据继续进行压缩,以得到更大的压缩比。 LZW编码 LZW(Lempel-Ziv Welch)编码又称为字串表编码,属于一种无损压缩编码。LZW编码与游程编码类似,也是对字符串进行编码从而实现压缩,但它在编码的同时还生成了特定字符串以及与之对应的索引字符串表。LZW压缩使用字典库查找方案。它读入待压缩的数据并与一个字典库(库开始是空的)中的字符串进行对比,如有匹配的字符串,则输出该字符串数据在字典库中的位置索引,否则将该字符串插入字典中。 主要用在unix系统中,现在用在数据通信系统,专利保护的数据压缩工具 LZW编码算法 ①将字典初始化为包含所有可能的单字字符,并给每个符号赋码值;读入第一个字符,赋值给P; ②读入当前字符到C(即字符流中的下一个字符); ③判断P+C是否在字典中,如果不在字典中,则用C扩展P,即P=P+C,将P+C添加到字典分配码字,并输出与当前前缀P相对应的码字,同时令P=C,即重新置当前前缀与下一个输入字符形成新字符串;否则将P+C赋值给P,用P与下一个输入字符形成字符串。 ④判断字符流结束与否,如果没有结束,转②,否则把代表当前前缀P的码字输出到码字流; ⑤结束。 【例】将字符串“ABBABABAC”进行LZW编码。 码字 字典 P(当前前缀) C(当前字符) 输出 1 A ? ? ? 2 B ? ? ? 3 C ? ? ? ? ? A B ? 4 AB B B 1 5 BB B A 2 6 BA A B 2 ? ? AB A ? 7 ABA A B 4 ? ? AB A ? ? ? ABA C ? 8 ABAC C C 7 ? ? ? ? 3 2、LZW译码算法 ①初始化字典,并读入一个码字W; ②试读一个码字K,如果不存在码字K可读,则输出W对应的字符串,转③;否则,在W对应的字符(串)末尾加入码字K的第一个字符,形成的字符串加入字典(如果K还未在字典中出现,则W+FirstChar(W)放入字典)。然后输出W对应的字符(串),同时W=K(重新赋W的值);转②; ③算法结束。 对上例的输出结果1,2,2,4,7,3进行译码输出(已知该文档中按顺序出现A、B、C三个字符)。 码字 字典 W K 译码输出 1 A ? ? ? 2 B ? ? ? 3 C 1 2 A 4 AB 2 2 B 5 BB 2 4 B 6 BA 4 7 AB 7 ABA 7 3 ABA 8 ABAC 3 -- C ? ? ? ? 算术编码 算术编码将整个要编码的数据映射到一个位于[0,1)的实数区间中,并且输出一个小于1同时又大于0的小数来表示全部数据。利用这种方法算术编码可以让压缩率无限接近数据的熵值,从而获得理论上的最高压缩率。 进行编码时,从实数区间[0,1)开始。按照输入符号的频度将当前的区间分割成多个子区间,根据当前输入的符号选择对应的子区间。然后从选择的子区间中根据后续的输入符号继续进行下一轮分割。不断地进行这个分割过程,直到所有符号输入完毕为止。对于最后的输入符号所选择的子区间,输出属于该区间的一个小数。这个小数主是所有输入数据的编码。 设一数据由“A”、“B”、“C”三个符号组成,利用算术编码方法现对数据“BCCB”进行编码。 译码步骤 1)判断码

文档评论(0)

1亿VIP精品文档

相关文档