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

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

?? codrle2.c

?? 著名壓縮算法的實現
?? C
字號:
/* File: codrle2.c   Author: David Bourgin   Creation date: 1/2/94   Last update: 24/7/95   Purpose: Example of RLE type 2 encoding with a file source to compress.*/#include <stdio.h>/* For routines printf,fgetc,fputc and rewind */#include <memory.h>/* For routine memset */#include <stdlib.h>/* For routine exit *//* Error codes sent to the caller */#define NO_ERROR      0#define BAD_FILE_NAME 1#define BAD_ARGUMENT  2/* Useful constants */#define FALSE 0#define TRUE  1/* Global variables */FILE *source_file,*dest_file;                             /* Being that fgetc=EOF only after an access                                then 'byte_stored_status' is 'TRUE' if a byte has been stored by 'fgetc'                                or 'FALSE' if there's no valid byte not already read and not handled in 'val_byte_stored' */int byte_stored_status=FALSE;int val_byte_stored;/* Pseudo procedures */#define beginning_of_data()  (byte_stored_status=FALSE,(void)rewind(source_file))#define end_of_data()  (byte_stored_status?FALSE:!(byte_stored_status=((val_byte_stored=fgetc(source_file))!=EOF)))#define read_byte()  (byte_stored_status?byte_stored_status=FALSE,(unsigned char)val_byte_stored:(unsigned char)fgetc(source_file))#define write_byte(byte)  ((void)fputc((byte),dest_file))void rle2write_rep(header_byte,repeated_byte,repetition_number)/* Returned parameters: None   Action: Writes in the output compression stream the encoding of 'repetition_number' times 'repeated_byte'.   'header_byte' is used as marker as defined in RLE 2 method   Errors: An input/output error could disturb the running of the program*/unsigned char header_byte,repeated_byte;unsigned int repetition_number;{ if (repetition_number<4)     if (repeated_byte==header_byte)        { write_byte(header_byte);          write_byte(repetition_number-1);        }     else { register unsigned int i;            for (i=1;i<=repetition_number;i++)                write_byte(repeated_byte);          }  else { write_byte(header_byte);         write_byte(repetition_number-1);         write_byte(repeated_byte);       }}void rle2write_non_rep(header_byte,non_repeated_byte)/* Returned parameters: None   Action: Writes in the output compression stream the encoding of 'non_repeated_byte'   'header_byte' is used as marker as defined in RLE 2 method   Errors: An input/output error could disturb the running of the program*/unsigned char header_byte,non_repeated_byte;{ if (non_repeated_byte==header_byte)     { write_byte(header_byte);       write_byte(0);     }  else write_byte(non_repeated_byte);}void rle2encoding()/* Returned parameters: None   Action: Compresses with RLE type 2 method all bytes read by the function read_byte   Errors: An input/output error could disturb the running of the program*/{ unsigned char byte1,byte2,header_byte;  unsigned int frame_size;  register unsigned int i;  unsigned long int lookup_table[256];  if (!end_of_data())        /* Is there at least a byte to analyze? */     {                       /* Sets up the occurrence numbers of all bytes to 0 */       (void)memset((char *)lookup_table,0,sizeof(lookup_table));                             /* This is the same to fill 'lookup_table' to 0.                                It's fastest than to loop 256 times */       while (!end_of_data())/* Valids the occurrences in 'lookup_table' in regard to the data to compress */             { byte1=read_byte();               lookup_table[byte1]++;             }       header_byte=0;       for (i=1;i<=255;i++)           if (lookup_table[i]<lookup_table[header_byte])              header_byte=i;       write_byte(header_byte);       beginning_of_data();  /* New data analysis */       byte1=read_byte();       frame_size=1;       if (!end_of_data())                             /* Are there at least two bytes? */          { byte2=read_byte();            frame_size=2;            do {             /* Real beginning of the compression */                 if (byte1==byte2)                             /* Do we meet only a sequence of identical bytes? */                    { while ((!end_of_data())&&(byte1==byte2)&&(frame_size<256))                            { byte2=read_byte();                              frame_size++;                            }                      if (byte1==byte2)                         { rle2write_rep(header_byte,byte1,frame_size);                           if (!end_of_data())                              { byte1=read_byte();                                frame_size=1;                              }                           else frame_size=0;                         }                      else { rle2write_rep(header_byte,byte1,frame_size-1);                             byte1=byte2;                             frame_size=1;                           }                    }                 else {      /* No, then don't handle the last byte */                        rle2write_non_rep(header_byte,byte1);                        byte1=byte2;                        frame_size=1;                      }                 if (!end_of_data())                    { byte2=read_byte();                      frame_size=2;                    }               }            while ((!end_of_data())||(frame_size>=2));          }       if (frame_size==1)  /* Was there a last byte to analyze? */          rle2write_non_rep(header_byte,byte1);     }}void help()/* Returned parameters: None   Action: Displays the help of the program and then stops its running   Errors: None*/{ printf("This utility enables you to compress a file by using RLE type 2 method\n");  printf("as given in 'La Video et Les Imprimantes sur PC'\n");  printf("\nUse: codrle2 source target\n");  printf("source: Name of the file to compress\n");  printf("target: Name of the compressed file\n");}int main(argc,argv)/* Returned parameters: Returns an error code (0=None)   Action: Main procedure   Errors: Detected, handled and an error code is returned, if any*/int argc;char *argv[];{ if (argc!=3)     { help();       exit(BAD_ARGUMENT);     }  else if ((source_file=fopen(argv[1],"rb"))==NULL)          { help();            exit(BAD_FILE_NAME);          }       else if ((dest_file=fopen(argv[2],"wb"))==NULL)               { help();                 exit(BAD_FILE_NAME);               }            else { rle2encoding();                   fclose(source_file);                   fclose(dest_file);                 }  printf("Execution of codrle2 completed.\n");  return (NO_ERROR);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久精品国产免费观看同学| 亚洲欧美日韩中文字幕一区二区三区| 亚洲午夜免费视频| 欧美日韩一卡二卡三卡| 美女一区二区在线观看| 26uuu精品一区二区在线观看| 国产91对白在线观看九色| 成人免费在线播放视频| 日韩一区二区三区四区五区六区| 国内精品视频666| 亚洲一区二区三区在线| 久久久久一区二区三区四区| 欧美综合欧美视频| 国产一区二区三区免费| 一个色在线综合| 日本一区二区视频在线| 欧美v国产在线一区二区三区| 色综合久久久久综合99| 国产成人亚洲综合a∨婷婷图片| 一区二区三区免费看视频| 欧美第一区第二区| 91免费版pro下载短视频| 国产精品一区二区果冻传媒| 午夜精品久久久久久| 亚洲一区二区三区免费视频| 中文字幕一区二区视频| 久久精品视频一区二区三区| 91精品蜜臀在线一区尤物| 在线观看一区不卡| 色伊人久久综合中文字幕| 成人激情视频网站| 国产麻豆日韩欧美久久| 韩国精品一区二区| 国产一区二区主播在线| 麻豆精品一区二区av白丝在线| 亚洲va欧美va国产va天堂影院| 一区二区三区不卡在线观看| 亚洲国产综合91精品麻豆| 亚洲一级电影视频| 日韩精品一卡二卡三卡四卡无卡| 樱桃视频在线观看一区| 日韩精品午夜视频| 国产精品1区二区.| 91官网在线观看| 欧美一区二区啪啪| 国产精品视频九色porn| 亚洲成av人影院| 国产激情一区二区三区| 欧美综合亚洲图片综合区| 精品少妇一区二区三区日产乱码| 国产嫩草影院久久久久| 日韩专区一卡二卡| www.欧美亚洲| 欧美精品一区二区三区高清aⅴ| 亚洲欧美自拍偷拍| 国内精品伊人久久久久影院对白| 色呦呦一区二区三区| 国产亲近乱来精品视频 | 在线观看日韩电影| 久久久久久久久久久99999| 亚洲韩国一区二区三区| 99re这里只有精品首页| 久久精品亚洲精品国产欧美kt∨| 天天影视网天天综合色在线播放| 91片在线免费观看| 国产精品久久久久一区二区三区| 日韩成人dvd| 欧美浪妇xxxx高跟鞋交| 一级中文字幕一区二区| 91黄色在线观看| 亚洲精品欧美在线| 欧美性猛交xxxxxxxx| 夜夜亚洲天天久久| 欧美精品日日鲁夜夜添| 日韩精品福利网| 精品国产一区a| 成人高清视频免费观看| 18成人在线视频| 欧美日韩精品系列| 韩国欧美国产一区| 国产精品久久久久久久久免费丝袜 | 精一区二区三区| 国产午夜精品一区二区| 成+人+亚洲+综合天堂| 亚洲一线二线三线视频| 欧美高清视频一二三区| 国产91在线观看| 亚洲永久精品国产| 久久精品视频一区二区| 欧美日韩一本到| 国产sm精品调教视频网站| 一区二区三区波多野结衣在线观看| 日韩欧美自拍偷拍| 成人免费高清视频在线观看| 亚洲国产一区二区在线播放| 久久久综合网站| 91精品国产色综合久久不卡电影 | 国产999精品久久久久久| 亚洲国产成人porn| 国产精品电影院| 精品国产成人在线影院| 欧美日韩视频在线观看一区二区三区 | 欧美日韩国产一级| 91小视频免费看| 国产成人av电影在线| 人人爽香蕉精品| 全部av―极品视觉盛宴亚洲| 成人免费在线视频| 亚洲天堂av老司机| 中文字幕av一区二区三区高| 欧美成人乱码一区二区三区| 欧美一区二区私人影院日本| 欧美日韩一区在线| 在线亚洲高清视频| 色94色欧美sute亚洲线路二| 在线精品视频一区二区| 色婷婷狠狠综合| 欧美区视频在线观看| 91精品国产综合久久久蜜臀粉嫩| 欧美精品粉嫩高潮一区二区| 欧美精品欧美精品系列| 精品国产凹凸成av人导航| 久久久久久久久久久黄色| 国产精品青草久久| 亚洲综合男人的天堂| 亚洲第一av色| 久久97超碰国产精品超碰| 国产成人综合在线观看| 成人av电影观看| 欧美婷婷六月丁香综合色| 欧美一卡2卡三卡4卡5免费| 久久精品视频免费| 亚洲成人动漫一区| 精品无人区卡一卡二卡三乱码免费卡 | 精品一区免费av| 色哟哟亚洲精品| 国产欧美日韩一区二区三区在线观看| 国产精品私人自拍| 久久精品国产亚洲一区二区三区| 成人av免费在线播放| 欧美一级二级在线观看| 国产精品成人一区二区三区夜夜夜| 爽爽淫人综合网网站| 91麻豆国产香蕉久久精品| 国产三级久久久| 精品无人码麻豆乱码1区2区| 制服丝袜中文字幕一区| 亚洲欧美国产高清| 91日韩在线专区| 成人免费在线视频观看| 成人性生交大片| 国产欧美中文在线| 国产高清不卡二三区| 久久久综合视频| 狠狠久久亚洲欧美| 精品国产一区二区三区久久久蜜月| 亚洲成va人在线观看| 欧美三级中文字| 日韩精品欧美精品| 欧美一区二区日韩| 激情国产一区二区| 国产欧美日韩激情| 91久久香蕉国产日韩欧美9色| 最新成人av在线| 8v天堂国产在线一区二区| 麻豆freexxxx性91精品| 久久久99久久精品欧美| 波多野结衣在线一区| 一区二区在线看| 91精品国产综合久久福利软件| 久久99精品久久久久久国产越南| 精品日韩一区二区三区| 99久久er热在这里只有精品66| 亚洲线精品一区二区三区八戒| 日韩精品最新网址| 972aa.com艺术欧美| 美女爽到高潮91| 亚洲一级片在线观看| 中文字幕第一区| 欧美精品久久久久久久久老牛影院| 韩国三级中文字幕hd久久精品| 亚洲欧美日韩国产手机在线| 日韩欧美国产综合一区| 99久久精品情趣| 久久99国产精品尤物| 亚洲午夜久久久久久久久电影网| 久久久久综合网| 6080亚洲精品一区二区| 欧美视频在线观看一区二区| 成人一区二区视频| 国产成人精品免费在线| 六月婷婷色综合| 日本不卡不码高清免费观看| 亚洲综合在线观看视频| 亚洲欧美日韩在线播放| 国产精品第一页第二页第三页| 久久久精品影视| 中文字幕精品一区二区三区精品| 日韩一区二区免费电影| 在线不卡中文字幕|