亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? encode.c

?? Arithmetic coding source code. A very good software for arithmetic coding.
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*** Three modes:**   (A) Read stdin and output frequencies to stdout  freq_count()**   (B) Read freq file, encode entire file           two_pass_encoding()**   (C) Code file in blocks of x symbols.            one_pass_encoding()**** Format of freqs file:**      sizeof(ulong)*8 bits is number of symbols (n)**      n "uints" to go into A[0..n-1]*/#include "mytypes.h"#include "bitio.h"#include "code.h"#include "mysort.h"#include "nqsort.h"#include "inplace.h"#include "interp.h"ulong num_source_syms = 0;ulong num_source_bits = 0;ulong num_interp_bits = 0;ulong num_unary_bits = 0;ulong num_header_bits = 0;ulong num_padding_bits = 0;ulong last_num_source_syms = 0;ulong last_num_source_bits = 0;ulong last_num_interp_bits = 0;ulong last_num_unary_bits = 0;ulong last_num_header_bits = 0;ulong last_num_padding_bits = 0;extern char verbose, very_verbose;    /* Canonical coding arrays */ulong min_code[L];ulong lj_base[L];ulong  offset[L];    /* prototypes */void build_canonical_arrays(uint cw_lens[], uint);void process_block(uint *block, uint b, uint *freq, uint *syms, FILE *out_file);uint one_pass_freq_count(uint block[], uint b, uint freq[],uint syms[], uint);void build_codes(FILE *f, uint *, uint *, uint n);void generate_mapping(uint [], uint [], uint [], uint, uint);/***** print a wee little summary of where all the money went...*/voidprint_summary_stats() {    fprintf(stderr,"\nMessage symbols       : %10lu\n", num_source_syms);    fprintf(stderr,"Header bits           : %10lu (%5.2f bps)\n",	    num_header_bits, (double)num_header_bits/num_source_syms);    fprintf(stderr,"Subalphabet selection : %10lu (%5.2f bps)\n",	    num_interp_bits, (double)num_interp_bits/num_source_syms);    fprintf(stderr,"Codeword lengths      : %10lu (%5.2f bps)\n",	    num_unary_bits, (double)num_unary_bits/num_source_syms);    fprintf(stderr,"Message bits          : %10lu (%5.2f bps)\n",	    num_source_bits, (double)num_source_bits/num_source_syms);    fprintf(stderr,"Padding bits          : %10lu (%5.2f bps)\n",	    num_padding_bits, (double)num_padding_bits/num_source_syms);    fprintf(stderr,"Total bytes           : %10lu (%5.2f bps)\n",	    (num_interp_bits+num_unary_bits+num_header_bits+num_padding_bits+num_source_bits)/ 8,	    (double)(num_interp_bits+num_unary_bits+num_header_bits+num_padding_bits+num_source_bits)/ num_source_syms);} /* print_summary_stats() *//***** print a wee little summary for each block of where all the money went...** try and keep the format strings in BLOCK_SUMMARY_HEADINGS and the ** fprintf of the data the "same"*/#define BLOCK_SUMMARY_HEADINGS \do { \    fprintf(stderr,"-------------------------------------------------------------------------------\n");\    fprintf(stderr,"%4s %10s %10s %8s %8s %8s %8s %8s %8s\n", \        "Num","max","Total","header","alpha","codeword","message","padding","Total"); \    fprintf(stderr,"%4s %10s %10s %8s %8s %8s %8s %8s %8s\n", \        "syms","symbol","bytes","","select","lengths","","",""); \    if (very_verbose == BLOCK_OUTPUT_IN_BYTES) \        fprintf(stderr,"%4s %10s %10s %8s %8s %8s %8s %8s %8s\n", \            "","","","(bits)","(bits)","(bits)","(bits)","(bits)","(bits)"); \    else \        fprintf(stderr,"%4s %10s %10s %8s %8s %8s %8s %8s %8s\n", \            "","","","(bps)","(bps)","(bps)","(bps)","(bps)","(bps)"); \    fprintf(stderr,"-------------------------------------------------------------------------------\n");\} while(0);voidprint_block_summary(ulong num_distinct, ulong num_syms, ulong max_symbol) {    double i = (double)(num_interp_bits - last_num_interp_bits);    double u = (double)(num_unary_bits  - last_num_unary_bits);    double s = (double)(num_source_bits - last_num_source_bits);    double h = (double)(num_header_bits - last_num_header_bits);    double p = (double)(num_padding_bits - last_num_padding_bits);    double n = (double)num_syms;    if (very_verbose == BLOCK_OUTPUT_IN_BYTES)         fprintf(stderr,"%4lu %10lu %10lu %8lu %8lu %8lu %8lu %8lu %8lu\n",                    num_distinct, max_symbol, (ulong)(i+u+s+h+p)/8, (ulong)h, (ulong)i, (ulong)u, (ulong)s, (ulong)p, (ulong)(i+u+s+h+p));    else        fprintf(stderr,"%4lu %10lu %10lu %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f\n",                    num_distinct, max_symbol, (ulong)(i+u+s+h+p)/8, h/n, i/n, u/n, s/n, p/n, (i+u+s+h+p)/n);} /* print_block_summary() *//*** Canonical encode.  cwlens[] contains codeword lens, mapping[] contains ** ordinal symbol mapping.*/inline uint output(FILE *f, uint i, uint mapping[], uint cwlens[]) {    uint sym_num = mapping[i];            // ordinal symbol number    uint len = cwlens[i];    ulong cw = min_code[len-1] + (sym_num - offset[len-1]);//fprintf(stderr, "currlen %4u symbol %6u -> %6u (cw = %8lx)\n",len, i,sym_num,cw);//fflush(stderr);    OUTPUT_ULONG(f, cw, len);    num_source_bits += len;	num_source_syms += 1;    return len;} /* output() *//****/voidtwo_pass_encoding(FILE *in_file, FILE *freq_file, FILE *out_file) {    uint n, max_symbol, i, b;    uint *block, *up;           /* buffer for input symbols */     uint *syms;                 /* working array for mapping */    uint *freq;                 /* working array for freq */    SHOW_MEM(L, ulong) /* min_code */    SHOW_MEM(L, ulong) /* lj_base */    SHOW_MEM(L, ulong) /* offset */    allocate(block, uint, BUFF_SIZE);    fread(&max_symbol,sizeof(uint),1, freq_file);    allocate(syms, uint, max_symbol+2);    allocate(freq, uint, max_symbol+2);    SHOW_MEM(max_symbol+2, uint)    SHOW_MEM(max_symbol+2, uint)    fread(freq+1, sizeof(uint), max_symbol, freq_file);    freq[EOF_SYMBOL] = 1;    n = 0;    for(i = 0 ; i <= max_symbol ; i++)        if (freq[i] > 0)            syms[n++] = i;    START_OUTPUT(out_file);	OUTPUT_ULONG(out_file, MAGIC, sizeof(ulong)*8);	num_header_bits += sizeof(ulong)*8;    build_codes(out_file, syms, freq, n);    while ((b=fread(block,sizeof(uint),BUFF_SIZE, in_file)) > 0)        for(up = block ; up < block + b ; up++) {            CHECK_SYMBOL_RANGE(*up+1);            (void)output(out_file, *up+1, syms, freq);        }    uint temp = output(out_file, EOF_SYMBOL, syms, freq);    OUTPUT_ULONG(out_file, 0, sizeof(ulong)*8 - temp);    // pad last codeword    num_padding_bits += sizeof(ulong)*8 - temp;    OUTPUT_ULONG(out_file, 0, LOG2_MAX_SYMBOL);           // last block n = 0    num_header_bits += LOG2_MAX_SYMBOL;    FINISH_OUTPUT(out_file);    free(block);    free(syms);    free(freq);        if (verbose) print_summary_stats();} /* two_pass_encoding() *//*** count the freqs, build the codes, write the codes, "...and I am spent."*/inline voidprocess_block(uint *block, uint b, uint *freq, uint *syms, FILE *out_file) {    uint *up, n;    uint max_symbol, temp;    if (very_verbose > 0) {      // assuming 1 cmp is faster than 6 assignments        last_num_source_syms  = num_source_syms  ;          last_num_source_bits  = num_source_bits  ;        last_num_interp_bits  = num_interp_bits  ;        last_num_unary_bits   = num_unary_bits   ;        last_num_header_bits  = num_header_bits  ;        last_num_padding_bits = num_padding_bits ;    }        /* add 1 to handle zero symbols , and set max_symbol */    max_symbol = 0;    for(up = block ; up < block + b ; up++) {        *up = *up + 1;        if (*up > max_symbol)            max_symbol = *up;        CHECK_SYMBOL_RANGE(*up);    }    n = one_pass_freq_count(block, b, freq, syms, max_symbol);    	build_codes(out_file, syms, freq, n);    	for(up = block ; up < block + b ; up++)	    (void)output(out_file, *up, syms, freq);    	temp = output(out_file, EOF_SYMBOL, syms, freq);    	OUTPUT_ULONG(out_file, 0, sizeof(ulong)*8 - temp); // pad last codeword    num_padding_bits += sizeof(ulong)*8 - temp;    if (very_verbose > 0 )        print_block_summary(n, b+1, max_symbol);  // b+1 for EOB symbol}/* process_block() *//*** A block_size == 0 indicates that an input symbol of 0 marks EOB.*/voidone_pass_encoding(FILE *in_file, FILE *out_file, int block_size) {    uint *block, *up; /* buffer for input symbols */     uint b;    uint *syms;                 /* working array for mapping */    uint *freq;                 /* working array for freq */    uint num_blocks=0;        uint current_array_size;    if (block_size == 0)        current_array_size = INITIAL_BLOCK_SIZE;    else        current_array_size = block_size;        allocate(block, uint, current_array_size+1);    SHOW_MEM(current_array_size+1,uint)    SHOW_MEM(L, ulong) /* min_code */    SHOW_MEM(L, ulong) /* lj_base */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人高清视频免费观看| 欧美精品亚洲二区| 日本在线不卡一区| 国产精品三级电影| 日韩一本二本av| 色哟哟国产精品免费观看| 久久成人18免费观看| 一区二区三区四区视频精品免费| 2023国产精品自拍| 欧美一区二区不卡视频| 91精彩视频在线| 成人国产精品免费网站| 精品影视av免费| 欧美a一区二区| 午夜精品影院在线观看| 亚洲精品国产高清久久伦理二区| 国产日产欧产精品推荐色| 日韩三级电影网址| 555夜色666亚洲国产免| 在线精品视频免费播放| av网站一区二区三区| 国产成人免费视频网站高清观看视频| 日本美女一区二区三区视频| 一区av在线播放| 亚洲视频资源在线| 国产精品国产三级国产aⅴ无密码| 久久婷婷国产综合精品青草| 欧美一级电影网站| 宅男噜噜噜66一区二区66| 欧美日韩高清影院| 欧美三级日韩在线| 欧美三级韩国三级日本一级| 在线精品视频小说1| 91黄视频在线观看| 欧美日韩在线直播| 欧美久久久久久久久中文字幕| 欧美综合久久久| 欧美日韩在线电影| 7777精品伊人久久久大香线蕉经典版下载 | 国产精品女同一区二区三区| 久久夜色精品国产噜噜av| 精品少妇一区二区三区| 精品国产伦一区二区三区免费| 欧美www视频| 亚洲精品一区二区三区精华液| 久久色中文字幕| 日本一区二区三区国色天香| 中文字幕不卡的av| 中文字幕亚洲在| 亚洲乱码国产乱码精品精可以看 | 国产精品原创巨作av| 激情综合五月婷婷| 成人一级视频在线观看| jlzzjlzz亚洲女人18| 色婷婷av一区| 777奇米四色成人影色区| 欧美成人激情免费网| 久久婷婷国产综合精品青草| 麻豆91在线播放| 国产成人综合在线| 日本精品视频一区二区| 欧美一区二区私人影院日本| 捆绑紧缚一区二区三区视频 | 美女视频黄 久久| 精品在线播放免费| 国产成人精品影视| 久久精品一区八戒影视| 国产无遮挡一区二区三区毛片日本| 国产目拍亚洲精品99久久精品| 亚洲视频网在线直播| 日日摸夜夜添夜夜添精品视频 | 日韩高清一级片| 国产真实乱偷精品视频免| av高清不卡在线| 欧美麻豆精品久久久久久| 精品国产伦一区二区三区观看方式| 国产精品五月天| 香蕉久久夜色精品国产使用方法| 黑人巨大精品欧美黑白配亚洲| 91亚洲永久精品| 日韩精品在线一区二区| 亚洲精品成人天堂一二三| 久久99热这里只有精品| 在线免费亚洲电影| 日本一区二区视频在线观看| 亚洲一区二区综合| 国产黄人亚洲片| 91精品久久久久久久久99蜜臂| 亚洲国产高清在线| 日韩av网站在线观看| 9i看片成人免费高清| 日韩一区二区高清| 亚洲综合色区另类av| 高清在线不卡av| 欧美一级xxx| 亚洲一级电影视频| 成人app在线| 精品国产一区二区在线观看| 亚洲福利视频导航| 91视频你懂的| 国产精品天美传媒| 久久国产精品72免费观看| 欧美在线你懂得| 亚洲日本va午夜在线影院| 精品一区二区免费在线观看| 欧美美女一区二区| 亚洲最新视频在线播放| 成人综合在线视频| 日韩一区二区三区在线观看 | 一区二区三区高清在线| 国产精品88av| 日韩欧美综合一区| 午夜精品久久久久久久99水蜜桃| 91视频观看视频| 国产午夜亚洲精品午夜鲁丝片| 美女被吸乳得到大胸91| 欧美喷潮久久久xxxxx| 亚洲自拍欧美精品| 欧美在线色视频| 亚洲一区二区在线免费看| 91丨porny丨首页| 专区另类欧美日韩| 99精品一区二区三区| 国产精品理伦片| 波多野结衣中文一区| 国产欧美1区2区3区| 麻豆精品一区二区三区| 欧美电影精品一区二区| 色综合久久久久网| 亚洲日本一区二区| 91一区一区三区| 一区二区三区不卡视频在线观看| 色综合中文综合网| 欧美久久久久久蜜桃| 亚洲bt欧美bt精品777| 欧美在线观看禁18| 性欧美大战久久久久久久久| 欧美色倩网站大全免费| 亚洲综合色成人| 欧美日韩国产综合一区二区三区 | 欧美日韩在线三级| 图片区小说区国产精品视频| 欧美猛男超大videosgay| 日韩高清一区二区| 精品国产伦一区二区三区免费| 麻豆成人av在线| 国产网站一区二区| 91色在线porny| 婷婷国产在线综合| 日韩欧美国产午夜精品| 狠狠色2019综合网| 国产精品国产三级国产aⅴ无密码| 91女人视频在线观看| 亚洲国产精品久久久男人的天堂| 91精品国产综合久久久久久久久久 | 久久久久久久免费视频了| 国产成人自拍在线| 亚洲精品中文在线观看| 欧美精品v国产精品v日韩精品 | 日韩精品一区二区三区四区| 久久国产视频网| 日本一区二区成人在线| 91在线国产观看| 午夜伦理一区二区| 国产亚洲一区二区在线观看| 99久久综合精品| 亚洲gay无套男同| 久久亚洲一区二区三区四区| 99v久久综合狠狠综合久久| 性欧美大战久久久久久久久| 久久免费午夜影院| 91电影在线观看| 国产一区二区导航在线播放| 亚洲女同女同女同女同女同69| 51精品久久久久久久蜜臀| 国产丶欧美丶日本不卡视频| 一区二区在线观看视频| 精品av久久707| 在线观看国产一区二区| 国内精品自线一区二区三区视频| 亚洲美女在线国产| 亚洲成人一二三| 欧美国产日韩亚洲一区| 欧美美女激情18p| 99久久精品国产麻豆演员表| 看片网站欧美日韩| 亚洲午夜在线视频| 欧美韩日一区二区三区四区| 538在线一区二区精品国产| 97超碰欧美中文字幕| 激情小说亚洲一区| 亚洲第四色夜色| 国产精品不卡一区二区三区| 精品免费一区二区三区| 欧美视频在线一区二区三区 | 久久99深爱久久99精品| 亚洲影视资源网| 中文字幕成人在线观看| 欧美一级黄色片| 欧美网站大全在线观看|