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

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

?? faxcom.txt

?? 關于傳真解碼的源程序,詳細說明如何對傳真解碼
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
*****************************************************
****                                             ****
****   Faxdecod.c                                ****
****                                             ****
*****************************************************

/***************************************************************************

   Faxdecoder : Usage faxdecoder <compressed_fax >uncompressed.fax

   This program compresses a fax using a model based on an order 16 model.
   Context is as follows : C = Context bits, P = bit being predicted

	  			   x
				xxxxxx
				xxxxxx
				xxxP

   Variable names beginning with capital letters are arithmetic coding
   variables used by the arithmetic coding routines.

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

   Copyright Raymond P. Wilson 1989.

   This program is a shareware program. If you use it then credit must be
   given to the author (me). If you find this program useful please send
   whatever you think it is worth ($25 is suggested) to :

			Raymond P. Wilson
			38 Paremata St
			Atawhai
			Nelson
			New Zealand

 **************************************************************************/
 
#include <stdio.h>
#include <sys/time.h>
#include <sys/resource.h>
#include "coderdef.i"	    /* My faxcoder definitions etc... */
#include "arithdec.i" /* Arithmetic decoding functions and defs ... */

/*************************************************************************

   Function   : Initialise_model
   Parameters : None
   Returns    : Nothing

   Initialise_model sets up all the structures and initialisation
 required by the fax coder. 

 ************************************************************************/

void initialise_model()
{
   int i;

   /* Initialise context bits and saved context arrays */
  
   for (i = 0;i < CONTEXT_WINDOW_BPL;i++)
      saved[i] = 0;

   /* Initialise context information array */
  
   for (i = 0;i < NUM_CONTEXTS;i++)
   {
      contexts[i].zero_count = 1;
      contexts[i].sum = 2;   /* No explicit count of ones is kept */      
   }			     /* as this is implicit in the sum	  */
}

/************************************************************************
 
   Function   : Decompress
   Parameters : None
   Returns    : Nothing
   
   Decompress decompresses a fax file read in from std input.
   
 ***********************************************************************/
 
void decompress()
{
   register codevalue	S_low=0, S_high=0;
 		    /* Arithmetic decoder vars high and low of range */
   register int 
      context,      /* Context at predicted bit */
      bitnum,       /* Bit being compressed on current line */
      S_bitstogo,   /* Arithmetic decoder var - used in inputting bits */
      H = half,     /* Arithmetic decoder var - contains constant half */
      last,         /* Shifting three bit field of last three bits read in */
      bitsleft = 8, /* Mask for getting bit out of byte */
      byte = 0;     /* Byte read in from  */

   startinputingbits();
   startdecoding();

   for (line = 0;line < NUM_LINES;line++)
   {
      last = 0;   /* Clear shifting temporary storage for incoming bits */

    /* Start iterating over bits in line - start in from edge of 'sheet'
       to give white space at edge for context */

      for (bitnum = CONTEXT_SIDE_BITS;
           bitnum < (CONTEXT_SIDE_BITS + BITS_PER_LINE);bitnum++)
      {

   /* Work out context that precedes bit being predicted */

         context = saved[bitnum] | (last >> 3);

    /* Store that part of the context that will be used on the next line */ 
 
         saved[bitnum] = (context & CONTEXT_MASK) << 6;
    
    /* Decode the bit currently being decompressed and update the model */
    /* Call arithmetic_decode_target to get position in range */
        
         if (arithmetic_decode_target(contexts[context].sum) 
               < contexts[context].zero_count)
         {  
            /* Decode a zero bit */
            arithmetic_decode_zero(contexts[context].zero_count,
                                   contexts[context].sum);
                                   
            contexts[context].zero_count++; /* Increment zero bit count */
            write_decoded0;                 /* Output a decoded zero */

       /* Add a zero bit to shifting storage and add this to previously
          stored context from two bits back */
           
            saved[bitnum-2] |= (last = (last << 1) & 0x38);            
         }
         else
         {
            /* 'Decode' a one bit */
            arithmetic_decode_one(contexts[context].zero_count,
                                  contexts[context].sum);
                                  
            write_decoded1; /* Write out a decoded ont bit */

       /* Add a zero bit to shifting storage and add this to previously
          stored context from two bits back */
 
            saved[bitnum-2] |= (last = ((last << 1) | 0x8) & 0x38);
         }                                                         

       /* Increment sum count and check to see if counts need halving */
       
         if ((++contexts[context].sum) == HALVE_LIMIT)  
         {
            contexts[context].zero_count = (contexts[context].zero_count >> 2) + 1;
            contexts[context].sum = (contexts[context].sum >> 2) + 2;
         }
      }
   }
}

/*************************************************************************

                                 Main program.
   
 ************************************************************************/
 
main(argc,argv)
int argc;
char **argv;
{
   initialise_model();
   fprintf(stderr,"Decompressing file, please wait.\n");
   start_time = get_time();              /* Get starting time */
   decompress();			 
   total_time = get_time() - start_time; /* Get total time from difference */  
   fprintf(stderr,"%s: Decompressed fax in %.3f seconds.\n",argv[0],total_time);
   exit(0);
}




*****************************************************
****                                             ****
****   Faxcoder.c                                ****
****                                             ****
*****************************************************

/***************************************************************************

    Faxcoder : Usage faxcoder <fax_file.fax >output

    This program compresses a fax using a model based on an order 16 model.
    Context is as follows : x = Context bits, P = bit being predicted
   
	  			   x
				xxxxxx
				xxxxxx
				xxxP
 
   Variable names beginning with capital letters are arithmetic coding
   variables used by the arithmetic coding routines.

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

   Copyright Raymond P. Wilson 1989.

   This program is a shareware program. If you use it then credit must be
   given to the author (me). If you find this program useful please send
   whatever you think it is worth ($25 is suggested) to :

			Raymond P. Wilson
			38 Paremata St
			Atawhai
			Nelson
			New Zealand

    If you want to use this or parts of this program in a commercial product
 then the authors permission is required.

 **************************************************************************/
 
#include <stdio.h>
#include <sys/time.h>
#include <sys/resource.h>
#include "coderdef.i"	    /* My faxcoder definitions etc... */
#include "arithcod.i"	/* Arithmetic coding functions and defs... */

/*************************************************************************

   Function   : Initialise_model
   Parameters : None
   Returns    : Nothing

   Initialise_model sets up all the structures and initialisation
 required by the fax coder. 

 ************************************************************************/

void initialise_model()
{
   int i;

   /* Initialise context bits and saved context arrays */
  
   for (i = 0;i < CONTEXT_WINDOW_BPL;i++)
      saved[i] = 0;

   /* Initialise context information array */
  
   for (i = 0;i < NUM_CONTEXTS;i++)
   {
      contexts[i].zero_count = 1;
      contexts[i].sum = 2;
   }
}

/************************************************************************

   Function   : Compress
   Parameters : None
   Returns    : Nothing
   
   Compress compresses a fax file read in from std input.
   
 ***********************************************************************/
 
void compress()
{
   register codevalue	S_low=0, S_high=0;
 		    /* Arithmetic coder vars high and low of range */
   register int 
      context,      /* Context at predicted bit */
      bitnum,       /* Bit being compressed on current line */
      S_bitstogo,   /* Arithmetic coder var - used in inputting bits */
      H = half,     /* Arithmetic coder var - contains constant half */
      last,         /* Shifting three bit field of last three bits read in */
      mask = 0,     /* Mask for getting bit out of byte */
      byte = 0;     /* Byte read in from  */
      
   startoutputingbits();
   startencoding();
  
   for (line = 0;line < NUM_LINES;line++)
   {
      last = 0;   /* Clear shifting temporary storage for incoming bits */

    /* Start iterating over bits in line - start in from edge of 'sheet'
       to give white space at edge for context */
       
      for (bitnum = CONTEXT_SIDE_BITS;
           bitnum < (CONTEXT_SIDE_BITS + BITS_PER_LINE);bitnum++)
      {
      
    /* Work out context that precedes bit being predicted */
   
         context = saved[bitnum] | (last >> 3);
                   
    /* Store that part of the context that will be used on to the next line */ 
 
         saved[bitnum] = (context & CONTEXT_MASK) << 6;
    
     /* Get the bit that is to be compressed */
    
         getabit()
         
    /* Code the bit currently being compressed and update the model */
   	
         if (byte & mask)
         {
            arithmetic_encode_one(contexts[context].zero_count,
                                  contexts[context].sum)
                                  
       /* Add a one bit to shifting storage and add this to previously
          stored context from two bits back */
                                        
            saved[bitnum-2] |= (last = ((last << 1) | 0x8) & 0x38);
         }
         else
         {
            arithmetic_encode_zero(contexts[context].zero_count,
                                   contexts[context].sum);

       /* Add a zero bit to shifting storage and add this to previously
          stored context from two bits back */

            saved[bitnum-2] |= (last = (last << 1) & 0x38);
            
            contexts[context].zero_count++; /* Increment zero bit count */
         }

       /* Increment sum count and check to see if counts need halving */
       
         if ((++contexts[context].sum) == HALVE_LIMIT)  
         {
            contexts[context].zero_count = (contexts[context].zero_count >> 2) + 1;
            contexts[context].sum = (contexts[context].sum >> 2) + 2;
         }
      }
   }
   /* Finish up encoding and finishing outputting bits */
   doneencoding();
   doneoutputingbits();
}

/*************************************************************************

                                 Main program.
   
 ************************************************************************/
 
main(argc, argv)
int argc;
char **argv;
{
   initialise_model();
   fprintf(stderr,"Compressing file, please wait...\n\n");
   start_time = get_time();             /* Get starting time */
   compress();
   total_time = get_time() - start_time; /* Get total time from difference */
   fprintf(stderr,"%s: compression %4.2f bpc (%4.2f : 1) in %.3f seconds.\n",
                  argv[0], (8 * cmpbytes)/(double)FAX_SIZE,
                  FAX_SIZE/(float)cmpbytes, total_time);
   exit(0);
}



*****************************************************
****                                             ****
****   Coderdef.i                                ****
****                                             ****
*****************************************************


/*********************************************************************

   FAXCOM Copyright Raymond P. Wilson 1989.

   This program is a shareware program. If you use it then credit must be
   given to the author (me). If you find this program useful please send
   ($25 is suggested) or whatever you think it is worth to :

			Raymond P. Wilson
			38 Paremata St
			Atawhai
			Nelson
			New Zealand

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天堂在线一区二区| 91精品啪在线观看国产60岁| 色八戒一区二区三区| 日韩一区二区三区av| 国产精品久久毛片av大全日韩| 亚洲国产精品影院| 成人一区二区三区视频| 91精品欧美综合在线观看最新| 最新日韩av在线| 蜜芽一区二区三区| 欧美性猛交xxxx乱大交退制版| 久久久亚洲精品一区二区三区| 亚洲国产视频一区二区| 成人av网站在线观看免费| 欧美一级日韩免费不卡| 亚洲黄一区二区三区| 成人精品鲁一区一区二区| 亚洲精品在线免费观看视频| 午夜精品久久久久久不卡8050| 色老汉av一区二区三区| 亚洲国产精品成人综合色在线婷婷| 久久成人久久爱| 欧美一级日韩不卡播放免费| 日韩高清国产一区在线| 欧美在线观看你懂的| 亚洲精品中文字幕在线观看| 成人污视频在线观看| 国产日本欧洲亚洲| 国产麻豆精品久久一二三| 欧美大片一区二区| 久久精品99国产精品| 日韩欧美精品在线| 老司机免费视频一区二区三区| 欧美一区二区三区啪啪| 奇米色一区二区| 欧美一区二区日韩| 久久精品72免费观看| 欧美不卡一二三| 国产一区 二区| 国产欧美日韩在线视频| 成人黄页毛片网站| 亚洲乱码日产精品bd| 日本高清不卡aⅴ免费网站| 亚洲精品国产高清久久伦理二区| 色播五月激情综合网| 亚洲成人激情自拍| 日韩免费观看2025年上映的电影| 久久99精品国产| 日本一区二区免费在线观看视频| 国产福利一区二区| 日韩伦理av电影| 欧美体内she精高潮| 日韩av网站免费在线| 欧美精品一区二区三区在线播放| 国产高清不卡二三区| 亚洲男人的天堂在线观看| 91国偷自产一区二区三区观看| 亚洲午夜在线视频| 精品少妇一区二区三区| 成人免费观看av| 亚洲不卡在线观看| 久久先锋资源网| 91丝袜美女网| 蜜臀久久99精品久久久久宅男| 久久久夜色精品亚洲| 色香蕉久久蜜桃| 久久se精品一区二区| 中文字幕亚洲在| 欧美放荡的少妇| 懂色av一区二区三区免费看| 亚洲一区免费在线观看| 日韩美女视频在线| 91久久精品日日躁夜夜躁欧美| 日韩和欧美一区二区三区| 国产欧美日韩亚州综合 | 欧美精品视频www在线观看| 久久99国产乱子伦精品免费| 亚洲人吸女人奶水| 精品乱码亚洲一区二区不卡| 色偷偷久久一区二区三区| 久久er99热精品一区二区| 一区二区在线免费观看| 久久久久久久综合色一本| 欧美性三三影院| 成人午夜在线播放| 免费在线观看视频一区| 一区二区三区在线观看国产| 久久精品日韩一区二区三区| 欧美视频精品在线| 99热99精品| 顶级嫩模精品视频在线看| 麻豆精品视频在线观看免费| 亚洲国产综合人成综合网站| 国产精品视频麻豆| 欧美精品一区二区三区蜜桃 | 悠悠色在线精品| 日本一区二区不卡视频| 精品成人一区二区三区四区| 欧美日韩一级黄| 在线观看欧美精品| 91丨porny丨首页| 成人黄色免费短视频| 国产精品影视在线| 国产福利一区二区| 国产精品综合一区二区三区| 免费观看91视频大全| 午夜欧美视频在线观看| 一区二区免费在线播放| 最新国产の精品合集bt伙计| 欧美激情一区在线观看| 国产亚洲欧洲997久久综合| 欧美一区二区二区| 日韩一级在线观看| 欧美一级理论片| 91精品欧美一区二区三区综合在 | 久久久久久久久久久99999| 777奇米成人网| 欧美丰满少妇xxxxx高潮对白| 欧美在线观看你懂的| 欧美美女激情18p| 欧美精品久久99久久在免费线| 欧美日韩中文另类| 欧美一区日韩一区| 亚洲精品在线免费播放| 国产日产欧美一区| 亚洲欧美中日韩| 国产精品成人网| 一区二区三区 在线观看视频| 亚洲一区成人在线| 日日摸夜夜添夜夜添精品视频| 日韩中文字幕一区二区三区| 婷婷中文字幕综合| 国产精品正在播放| 91丨porny丨国产入口| 欧美色欧美亚洲另类二区| 日韩欧美二区三区| 欧美高清在线精品一区| 亚洲欧美日韩中文播放| 五月天丁香久久| 国内精品视频666| 成人高清伦理免费影院在线观看| av高清久久久| 欧美一级欧美一级在线播放| 久久综合五月天婷婷伊人| 国产精品国模大尺度视频| 亚洲综合免费观看高清完整版| 日韩av一级电影| 不卡区在线中文字幕| 欧美亚洲国产一区二区三区| 欧美一级xxx| 中文字幕一区二区三区在线播放| 亚洲夂夂婷婷色拍ww47| 久久99精品一区二区三区三区| 成人性视频免费网站| 欧美男生操女生| 国产精品视频在线看| 亚洲r级在线视频| 成人免费观看av| 日韩美女视频在线| 亚洲综合精品久久| 国产成a人亚洲精品| 欧美日韩国产不卡| 中文字幕精品在线不卡| 日本女人一区二区三区| jlzzjlzz欧美大全| 欧美成人女星排行榜| 综合久久综合久久| 国产乱理伦片在线观看夜一区| 欧美三级资源在线| 亚洲国产精品99久久久久久久久 | 亚洲丝袜美腿综合| 激情综合色播五月| 欧洲亚洲精品在线| 亚洲国产精品黑人久久久| 久久精品国内一区二区三区| 91麻豆免费视频| 国产精品热久久久久夜色精品三区 | 高清不卡在线观看| 日韩免费成人网| 三级久久三级久久| 欧美日韩中文字幕精品| 亚洲黄色尤物视频| av资源网一区| 欧美国产成人在线| 国产剧情一区二区| 久久免费的精品国产v∧| 亚洲gay无套男同| 在线视频欧美精品| 一区二区在线观看av| 色偷偷88欧美精品久久久| 国产精品欧美久久久久无广告 | 一区二区三区四区精品在线视频| 国产不卡在线播放| 欧美激情中文字幕一区二区| 狠狠色丁香久久婷婷综合丁香| 欧美一区二区性放荡片| 五月天婷婷综合| 日韩手机在线导航| 久久91精品久久久久久秒播| 日韩欧美你懂的|