• 大小: 16KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: C/C++
  • 标签: 算术编码  

资源简介

利用C语言进行算术编码,并进行数据压缩,程序简单可用

资源截图

代码片段和文件信息

/*实现算术编码
*编码存储在code[bit_num]中
*
*/
#include “myfun.h“

char* ArCode(u_cell U[n]char code[m])
{
    int ijbit_numt;
    float tmp;

    printf(“Input the %d data and weights:\n“n);
    for(i=0;i    {

        scanf(“ %c“&U[i].data);
        scanf(“ %f“&U[i].weight);
        if(i==0) U[i].distr=0;
        else    U[i].distr=U[i-1].distr+U[i-1].weight;
    }
    char b;
    float distr_F=0p=1;
    printf(“Input your codes which are ended by $\n“);
    scanf(“ %c“&b);                        //输入被编码序列
    while(b!=‘$‘)
    {
        j=check_num(b);
        distr_F=distr_F+p*U[j].distr;       //计算被编码序列的分布
        p=p*U[j].weight;                    //计算被编码序列的概率
        scanf(“%c“&b);

    }
    printf(“the distribution is %f\n“distr_F);
    tmp=-log2(p);
    if((tmp-(int)tmp)!=0)   bit_num=(int)tmp+1;//计算码长
    else    bit_num=(int)tmp;
    printf(“the whole number of code is %d\n“bit_num);
    tmp=2*distr_F;
//    char code[bit_num];                     //存储编码
    for(i=0;i    {
        t=(int)tmp;
        code[i]=t+‘0‘;                      //code[i]存储的字符型
        tmp=2*(tmp-t);
        printf(“%c“code[i]);
    }
    code[i]=‘\n‘;                           //数组code[]结束
    for(;i    {
        printf(“%c“code[i]);
    }
    return code;

}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1550  2012-06-15 20:55  ArithmeticCode\ArCode.c

     文件       1254  2012-06-15 20:56  ArithmeticCode\ArithmeticCode.cbp

     文件        398  2012-06-15 20:50  ArithmeticCode\ArithmeticCode.depend

     文件        538  2012-06-18 18:50  ArithmeticCode\ArithmeticCode.layout

     文件      32677  2012-06-15 20:53  ArithmeticCode\bin\Debug\ArithmeticCode.exe

     文件        317  2012-06-15 20:32  ArithmeticCode\check_num.c

     文件        227  2012-06-15 20:50  ArithmeticCode\main.c

     文件        370  2012-06-15 20:50  ArithmeticCode\myfun.h

     文件       3699  2012-06-15 20:53  ArithmeticCode\obj\Debug\ArCode.o

     文件       2663  2012-06-15 20:50  ArithmeticCode\obj\Debug\check_num.o

     文件       2480  2012-06-15 20:50  ArithmeticCode\obj\Debug\main.o

     目录          0  2012-06-15 20:53  ArithmeticCode\bin\Debug

     目录          0  2012-06-15 20:53  ArithmeticCode\obj\Debug

     目录          0  2012-06-15 17:09  ArithmeticCode\bin

     目录          0  2012-06-15 17:09  ArithmeticCode\obj

     目录          0  2012-06-18 18:50  ArithmeticCode

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

                46173                    16


评论

共有 条评论