zoukankan      html  css  js  c++  java
  • 基于统计的压缩算法:游程编码

    1.游程编码概念

      游程编码又称“运行长度编码”或“行程编码”,是一种统计编码,该编码属于无损压缩编码。

    2.基本原理

      用一个符号值和串长代替具有相同值的连续符号,使符号长度少于原始数据的长度。

      如:     原始文本:dfffffeeeeettttrrrrttttt

        游程编码后文本:d1f5e5t4r4t5

     3.代码示例

     1 #include <stdio.h>
     2 #include <string.h>
     3 int main()
     4 {
     5     char textBefore[100] ="dfffffeeeeettttrrrrttttt";
     6     char textAfter[100];
     7     memset(textAfter,0,sizeof(textAfter));
     8 
     9     char c;
    10     int num,i,j;
    11     for(i=0;i<strlen(textBefore);){
    12         c   = textBefore[i];    ///临时保存字符
    13         num = 1;    ///保存个数
    14         for(j=i+1;j<strlen(textBefore);j++){
    15             if(c == textBefore[j])
    16                 num++;
    17             else
    18                 break;
    19         }
    20         i = j;
    21 
    22         sprintf(textAfter,"%s%c",textAfter,c);
    23         sprintf(textAfter,"%s%d",textAfter,num);
    24     }
    25     printf("textBefore : %s
    ",textBefore);
    26     printf("textAfter  : %s
    ",textAfter);
    27     return  0;
    28 }

    代码输出:

      

    参考:

    http://zh.wikipedia.org/wiki/%E6%B8%B8%E7%A8%8B%E7%BC%96%E7%A0%81

    http://baike.baidu.com/view/721796.htm?fr=aladdin

    (方法简单也是有名字的)

  • 相关阅读:
    Perl 杂记
    Block abstraction view(Create & Reference)
    sed & awk
    multi-voltage design apr
    APR Recipe
    IN2REG group 的时序分析
    关于 clock tree
    ICC Stage Flow
    ocv & derate & crpr
    clock gating check
  • 原文地址:https://www.cnblogs.com/xudong-bupt/p/3761417.html
Copyright © 2011-2022 走看看