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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ac.c

?? 自適應算術編碼 C語言This package was adapted from the program in "Arithmetic Coding for Data Compression", b
?? C
字號:
#include <stdio.h>#include <stdlib.h>#include "ac.h"#define Code_value_bits 16#define Top_value (((long)1<<Code_value_bits)-1)#define First_qtr (Top_value/4+1)#define Half	  (2*First_qtr)#define Third_qtr (3*First_qtr)#define Max_frequency 16383static void output_bit (ac_encoder *, int);static void bit_plus_follow (ac_encoder *, int);static int input_bit (ac_decoder *);static void update_model (ac_model *, int);#define error(m)                                           \do  {                                                      \  fflush (stdout);                                         \  fprintf (stderr, "%s:%d: error: ", __FILE__, __LINE__);  \  fprintf (stderr, m);                                     \  fprintf (stderr, "\n");                                  \  exit (1);                                                \}  while (0)#define check(b,m)                                         \do  {                                                      \  if (b)                                                   \    error (m);                                             \}  while (0)static voidoutput_bit (ac_encoder *ace, int bit){  ace->buffer >>= 1;  if (bit)    ace->buffer |= 0x80;  ace->bits_to_go -= 1;  ace->total_bits += 1;  if (ace->bits_to_go==0)  {    if (ace->fp)      putc (ace->buffer, ace->fp);    ace->bits_to_go = 8;  }  return;}static voidbit_plus_follow (ac_encoder *ace, int bit){  output_bit (ace, bit);  while (ace->fbits > 0)  {    output_bit (ace, !bit);    ace->fbits -= 1;  }  return;}static intinput_bit (ac_decoder *acd){  int t;  if (acd->bits_to_go==0)  {    acd->buffer = getc(acd->fp);    if (acd->buffer==EOF)  {      acd->garbage_bits += 1;      if (acd->garbage_bits>Code_value_bits-2)        error ("arithmetic decoder bad input file");    }    acd->bits_to_go = 8;  }  t = acd->buffer&1;  acd->buffer >>= 1;  acd->bits_to_go -= 1;  return t;}static voidupdate_model (ac_model *acm, int sym){  int i;  if (acm->cfreq[0]==Max_frequency)  {    int cum = 0;    acm->cfreq[acm->nsym] = 0;    for (i = acm->nsym-1; i>=0; i--)  {      acm->freq[i] = (acm->freq[i] + 1) / 2;      cum += acm->freq[i];      acm->cfreq[i] = cum;    }  }  acm->freq[sym] += 1;  for (i=sym; i>=0; i--)    acm->cfreq[i] += 1;  return;}voidac_encoder_init (ac_encoder *ace, const char *fn){  if (fn)  {    ace->fp = fopen (fn, "wb"); /* open in binary mode */    check (!ace->fp, "arithmetic encoder could not open file");  }  else  {    ace->fp = NULL;  }  ace->bits_to_go = 8;  ace->low = 0;  ace->high = Top_value;  ace->fbits = 0;  ace->buffer = 0;  ace->total_bits = 0;  return;}voidac_encoder_done (ac_encoder *ace){  ace->fbits += 1;  if (ace->low < First_qtr)    bit_plus_follow (ace, 0);  else    bit_plus_follow (ace, 1);  if (ace->fp)    putc (ace->buffer >> ace->bits_to_go, ace->fp);  if (ace->fp)    fclose (ace->fp);  return;}voidac_decoder_init (ac_decoder *acd, const char *fn){  int i;  acd->fp = fopen (fn, "rb"); /* open in binary mode */  check (!acd->fp, "arithmetic decoder could not open file");  acd->bits_to_go = 0;  acd->garbage_bits = 0;  acd->value = 0;  for (i=1; i<=Code_value_bits; i++)  {    acd->value = 2*acd->value + input_bit(acd);  }  acd->low = 0;  acd->high = Top_value;  return;}voidac_decoder_done (ac_decoder *acd){  fclose (acd->fp);  return;}voidac_model_init (ac_model *acm, int nsym, int *ifreq, int adapt){  int i;  acm->nsym = nsym;  acm->freq = (int *) (void *) calloc (nsym, sizeof (int));  check (!acm->freq, "arithmetic coder model allocation failure");  acm->cfreq = (int *) (void *) calloc (nsym+1, sizeof (int));  check (!acm->cfreq, "arithmetic coder model allocation failure");  acm->adapt = adapt;  if (ifreq)  {    acm->cfreq[acm->nsym] = 0;    for (i=acm->nsym-1; i>=0; i--)  {      acm->freq[i] = ifreq[i];      acm->cfreq[i] = acm->cfreq[i+1] + acm->freq[i];    }    if (acm->cfreq[0] > Max_frequency)      error ("arithmetic coder model max frequency exceeded");  }  else  {    for (i=0; i<acm->nsym; i++) {      acm->freq[i] = 1;      acm->cfreq[i] = acm->nsym - i;    }    acm->cfreq[acm->nsym] = 0;  }  return;}voidac_model_done (ac_model *acm){  acm->nsym = 0;  free (acm->freq);  acm->freq = NULL;  free (acm->cfreq);  acm->cfreq = NULL;  return;}longac_encoder_bits (ac_encoder *ace){  return ace->total_bits;}voidac_encode_symbol (ac_encoder *ace, ac_model *acm, int sym){  long range;  check (sym<0||sym>=acm->nsym, "symbol out of range");  range = (long)(ace->high-ace->low)+1;  ace->high = ace->low + (range*acm->cfreq[sym])/acm->cfreq[0]-1;  ace->low = ace->low + (range*acm->cfreq[sym+1])/acm->cfreq[0];  for (;;)  {    if (ace->high<Half)  {      bit_plus_follow (ace, 0);    }  else if (ace->low>=Half)  {      bit_plus_follow (ace, 1);      ace->low -= Half;      ace->high -= Half;    }  else if (ace->low>=First_qtr && ace->high<Third_qtr)  {      ace->fbits += 1;      ace->low -= First_qtr;      ace->high -= First_qtr;    }  else      break;    ace->low = 2*ace->low;    ace->high = 2*ace->high+1;  }  if (acm->adapt)    update_model (acm, sym);  return;}intac_decode_symbol (ac_decoder *acd, ac_model *acm){  long range;  int cum;  int sym;  range = (long)(acd->high-acd->low)+1;  cum = (((long)(acd->value-acd->low)+1)*acm->cfreq[0]-1)/range;  for (sym = 0; acm->cfreq[sym+1]>cum; sym++)    /* do nothing */ ;  check (sym<0||sym>=acm->nsym, "symbol out of range");  acd->high = acd->low + (range*acm->cfreq[sym])/acm->cfreq[0]-1;  acd->low = acd->low +  (range*acm->cfreq[sym+1])/acm->cfreq[0];  for (;;)  {    if (acd->high<Half)  {      /* do nothing */    }  else if (acd->low>=Half)  {      acd->value -= Half;      acd->low -= Half;      acd->high -= Half;    }  else if (acd->low>=First_qtr && acd->high<Third_qtr)  {      acd->value -= First_qtr;      acd->low -= First_qtr;      acd->high -= First_qtr;    }  else      break;    acd->low = 2*acd->low;    acd->high = 2*acd->high+1;    acd->value = 2*acd->value + input_bit(acd);  }  if (acm->adapt)    update_model (acm, sym);  return sym;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
懂色av一区二区三区免费观看| 亚洲综合精品自拍| 欧美乱妇一区二区三区不卡视频| va亚洲va日韩不卡在线观看| 国产精品亚洲成人| 国产精品1区二区.| 国产成人在线色| 成人久久18免费网站麻豆 | 亚洲视频在线一区观看| 国产精品亲子伦对白| 亚洲女子a中天字幕| 国产精品国模大尺度视频| 国产精品美女视频| 亚洲免费色视频| 亚洲国产精品一区二区www| 午夜视频一区二区| 精品一二三四在线| 成人午夜电影网站| 91久久精品一区二区二区| 欧美日韩综合在线| 久久色中文字幕| 日韩毛片视频在线看| 亚洲国产精品一区二区www| 蜜臀精品一区二区三区在线观看 | 国产高清不卡二三区| 不卡视频一二三| 欧美日韩中文精品| 久久午夜老司机| 亚洲伦在线观看| 日韩不卡免费视频| 成人免费看黄yyy456| 欧美美女喷水视频| 亚洲国产精华液网站w| 亚洲综合区在线| 国产在线视频一区二区| 99久久777色| 日韩视频不卡中文| 一区二区在线看| 国产毛片精品一区| 欧美日韩一级视频| 亚洲国产岛国毛片在线| 日本欧美加勒比视频| 不卡大黄网站免费看| 7777精品伊人久久久大香线蕉| 欧美国产精品久久| 日韩精品视频网| 色婷婷久久久亚洲一区二区三区| 精品日韩99亚洲| 亚洲福利一区二区| 99re成人精品视频| 久久久亚洲精华液精华液精华液| 亚洲电影视频在线| 成人av在线资源网| 久久综合久久综合久久| 午夜不卡av在线| 色欧美片视频在线观看| 国产欧美日韩另类视频免费观看| 日韩国产高清在线| 欧美中文字幕亚洲一区二区va在线| 久久综合九色综合97_久久久| 亚洲成人精品一区二区| 91免费精品国自产拍在线不卡| 精品国产sm最大网站免费看 | 制服丝袜成人动漫| 亚洲欧洲一区二区三区| 国产主播一区二区| 精品久久久久香蕉网| 日韩高清欧美激情| 欧美日韩第一区日日骚| 亚洲黄色免费电影| 97se亚洲国产综合自在线不卡| 国产视频一区不卡| 精品一区二区三区免费视频| 欧美一区永久视频免费观看| 亚洲成a人片在线不卡一二三区| 色综合一个色综合亚洲| 亚洲免费在线播放| 欧美中文字幕一区二区三区| 一区二区三区四区国产精品| 97精品电影院| 亚洲在线观看免费视频| 欧美视频日韩视频在线观看| 亚洲成精国产精品女| av在线播放一区二区三区| 国产精品久久夜| 色综合天天综合网天天狠天天| 亚洲国产人成综合网站| 97久久久精品综合88久久| 亚洲欧美日韩成人高清在线一区| 99久久99久久综合| 一区二区三区在线播放| 欧美无乱码久久久免费午夜一区 | 日韩欧美区一区二| 久久精品国内一区二区三区| 精品久久一区二区| 国产福利精品一区二区| 国产精品免费网站在线观看| 成人国产免费视频| 亚洲精品视频免费观看| 欧美精品欧美精品系列| 国产专区综合网| 亚洲乱码日产精品bd| 欧美人妇做爰xxxⅹ性高电影| 青椒成人免费视频| 国产欧美一区二区精品忘忧草 | 久久五月婷婷丁香社区| 高清日韩电视剧大全免费| 一区二区三区小说| 日韩精品一区二| 94色蜜桃网一区二区三区| 亚洲成在人线免费| 国产亚洲一区二区三区在线观看| 一本大道久久精品懂色aⅴ| 日韩电影免费一区| 亚洲欧美综合在线精品| 7777精品伊人久久久大香线蕉的 | 成人av在线影院| 日韩精品久久久久久| 综合久久国产九一剧情麻豆| 欧美一级精品大片| 91丝袜美腿高跟国产极品老师 | 成人欧美一区二区三区黑人麻豆| 欧美日韩精品福利| 波多野结衣91| 久久99国产精品久久99果冻传媒| 中文字幕亚洲综合久久菠萝蜜| 欧美区视频在线观看| 91一区在线观看| 丰满亚洲少妇av| 秋霞午夜av一区二区三区| 国产精品久久777777| 91精品国产综合久久小美女| 色综合久久九月婷婷色综合| 国产一区二区三区在线观看精品| 亚洲激情欧美激情| 欧美高清在线精品一区| 久久综合99re88久久爱| 欧美熟乱第一页| 日本精品视频一区二区三区| 粉嫩绯色av一区二区在线观看| 麻豆精品久久精品色综合| 亚洲视频一二三| 国产精品伦理在线| 国产欧美一二三区| 国产亚洲精品久| 久久久久高清精品| 精品99999| 26uuu国产在线精品一区二区| 欧美日韩免费一区二区三区视频| 93久久精品日日躁夜夜躁欧美| 国产成人综合亚洲网站| av电影在线不卡| 国产精品资源网| 狠狠v欧美v日韩v亚洲ⅴ| 精品一区二区三区香蕉蜜桃| 日韩avvvv在线播放| 婷婷激情综合网| 老司机精品视频在线| 看电影不卡的网站| 国产永久精品大片wwwapp| 国内精品久久久久影院色| 韩日av一区二区| 国产专区欧美精品| 成人免费视频一区| 91丨porny丨户外露出| 91国模大尺度私拍在线视频| 欧美日韩成人激情| 日韩欧美色综合网站| 国产午夜精品久久久久久久| 亚洲国产成人午夜在线一区| 国产精品久久久久影院色老大| 中文字幕综合网| 午夜精品免费在线观看| 久久国产人妖系列| 成人动漫视频在线| 99久久伊人久久99| 欧美日韩不卡在线| 欧美精品自拍偷拍| 精品国产91乱码一区二区三区| 久久久欧美精品sm网站| 中文字幕在线一区免费| 亚洲综合丁香婷婷六月香| 日韩av高清在线观看| 国产乱码精品一区二区三区忘忧草| 成人性生交大片免费看视频在线| 成人丝袜视频网| 精品污污网站免费看| 91精品在线免费观看| 337p粉嫩大胆色噜噜噜噜亚洲 | 亚洲靠逼com| 美女尤物国产一区| 懂色一区二区三区免费观看| 91无套直看片红桃| 欧美一区永久视频免费观看| 国产无人区一区二区三区| 亚洲一区二区美女| 国产精品中文字幕欧美| 精品污污网站免费看| 国产三级一区二区| 天堂一区二区在线免费观看|