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

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

?? bitio.c

?? 實(shí)現(xiàn)圖像的jpeg無損壓縮
?? C
字號(hào):
/* SPMG/JPEG-LS IMPLEMENTATION V.2.1
   =====================================
   These programs are Copyright (c) University of British Columbia. All rights reserved.
   They may be freely redistributed in their entirety provided that this copyright
   notice is not removed. THEY MAY NOT BE SOLD FOR PROFIT OR INCORPORATED IN
   COMMERCIAL PROGRAMS WITHOUT THE WRITTEN PERMISSION OF THE COPYRIGHT HOLDER.
   Each program is provided as is, without any express or implied warranty,
   without even the warranty of fitness for a particular purpose.

   =========================================================
   THIS SOFTWARE IS BASED ON HP's implementation of jpeg-ls:
   =========================================================

   LOCO-I/JPEG-LS IMPLEMENTATION V.0.90
   -------------------------------------------------------------------------------
   (c) COPYRIGHT HEWLETT-PACKARD COMPANY, 1995-1999.
        HEWLETT-PACKARD COMPANY ("HP") DOES NOT WARRANT THE ACCURACY OR
   COMPLETENESS OF THE INFORMATION GIVEN HERE.  ANY USE MADE OF, OR
   RELIANCE ON, SUCH INFORMATION IS ENTIRELY AT USER'S OWN RISK.
        BY DOWNLOADING THE LOCO-I/JPEG-LS COMPRESSORS/DECOMPRESSORS
   ("THE SOFTWARE") YOU AGREE TO BE BOUND BY THE TERMS AND CONDITIONS
   OF THIS LICENSING AGREEMENT.
        YOU MAY DOWNLOAD AND USE THE SOFTWARE FOR NON-COMMERCIAL PURPOSES
   FREE OF CHARGE OR FURTHER OBLIGATION.  YOU MAY NOT, DIRECTLY OR
   INDIRECTLY, DISTRIBUTE THE SOFTWARE FOR A FEE, INCORPORATE THIS
   SOFTWARE INTO ANY PRODUCT OFFERED FOR SALE, OR USE THE SOFTWARE
   TO PROVIDE A SERVICE FOR WHICH A FEE IS CHARGED.
        YOU MAY MAKE COPIES OF THE SOFTWARE AND DISTRIBUTE SUCH COPIES TO
   OTHER PERSONS PROVIDED THAT SUCH COPIES ARE ACCOMPANIED BY
   HEWLETT-PACKARD'S COPYRIGHT NOTICE AND THIS AGREEMENT AND THAT
   SUCH OTHER PERSONS AGREE TO BE BOUND BY THE TERMS OF THIS AGREEMENT.
        THE SOFTWARE IS NOT OF PRODUCT QUALITY AND MAY HAVE ERRORS OR DEFECTS.
   THE JPEG-LS STANDARD IS STILL UNDER DEVELOPMENT. THE SOFTWARE IS NOT A
   FINAL OR FULL IMPLEMENTATION OF THE STANDARD.  HP GIVES NO EXPRESS OR
   IMPLIED WARRANTY OF ANY KIND AND ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY AND FITNESS FOR PURPOSE ARE DISCLAIMED.
        HP SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL,
   OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE.
   -------------------------------------------------------------------------------
*/

/*
 *
 * Initial code by Alex Jakulin,  Aug. 1995
 *
 * Modified and optimized: Gadiel Seroussi, October 1995
 *
 * Modified and added Restart marker and input tables by:
 * David Cheng-Hsiu Chu, and Ismail R. Ismail march 1999
 */
#include <stdio.h>
#include <stdlib.h>
#include "global.h"
#include "bitio.h"


extern int zeroLUT[];     /* lookup table to find number of leading zeroes */

extern FILE *in, *out;

byte negbuff[BUFSIZE+4];    /* byte I/O buffer, allowing for 4 "negative" 
						       locations  */

/*
 'buff' is defined as 'rawbuff+4' in bitio.h, so that buff[-4]..buff[-1]
 are well defined. Those locations are used to "return" data to
 the byte buffer when flushing the input bit buffer .
 */


int fp; 	       /* index into byte buffer */
int truebufsize;       /* true size of byte buffer ( <= BUFSIZE) */
int foundeof;

int zeroLUT[256];      /* table to find out number of leading zeros */


/* BIT I/O variables */
dword reg; /* BIT buffer for input/output */
int bits;  /* number of bits free in bit buffer (on output) */
	   /* (number of bits free)-8 in bit buffer (on input)*/


/****************************************************************************
 *  INPUT ROUTINES
 *  note: some routines are implemented as preprocessor macros. See bitio.h.
 ****************************************************************************/


void bufiinit(FILE *fil) {
    /* argument is ignored */
    fp = BUFSIZE;				// 16K - 4 bytes
    truebufsize = 0;
    foundeof = 0;
}


byte fillinbuff(FILE *fil)
{
	int i;

	/* remember 4 last bytes of current buffer (for "undo") */
	for ( i=-4; i<0; i++ )
		buff[i] = buff[fp+i];
        truebufsize = fread(buff, 1, BUFSIZE, fil);
	if ( truebufsize < BUFSIZE ) 
	{
	    if ( truebufsize <= 0 ) 
		{
			if ( foundeof ) 
			{  /* second attempt to read past EOF */
				fprintf(stderr,"*** Premature EOF in compressed file\n");
				exit(10);
			}
			else 
			{
				/* One attempt to read past EOF is OK  */
				foundeof = 1;
			}
	    }
	    /* fill buffer with zeros */
	    memset(buff+truebufsize, 0, (BUFSIZE-truebufsize)*sizeof(*buff));
	}

	fp = 1;
    return buff[0];
}


/* Initializes the bit input routines */
void bitiinit() {
        bits = reg = 0;
        fillbuffer(24);
}


/* 
   Flush the input bit buffer TO A BYTE BOUNDARY. Return unused whole
   bytes to the byte buffer
 */
void bitiflush()  {
    int filled,
	discard, 
	dbytes,
	i, k, treg;
    byte *bp;

    filled = 24 - bits;    /* how many bits at the MS part of reg 
			      have unused data. These correspond to 
			      at most filled+2 bits from the input
			      stream, as at most 2 '0' bits might have
			      been dropped by marker processing */

    dbytes = (filled+2)/8;  /* the coorrect number of bytes we need to
				"unget" is either dbytes or dbytes-1 */
    /* this solution is more general than what is required here: it 
       will work correctly even if the end of a scan is not followed
       by a marker, as will necessarily be the case with the standard JPEG
       format */
    for ( ; ; dbytes-- ) 
	{
		bp = buff + fp - dbytes;  /* back-in the buffer */
		treg = k = 0;
		for ( i=0; i<dbytes; i++ ) 
		{
			if ( bp[i-1]==0xff && (bp[i]&0x80)==0 ) 
			{
				treg |= bp[i] << (BITBUFSIZE-7-k);
				k += 7;
			}
			else 
			{
				treg |= bp[i] << (BITBUFSIZE-8-k);
				k += 8;
			}
		}

		if ( k <= filled )
		break;
    }
    /* check consistency */
    if ( filled-k > 7 ) {
	fprintf(stderr,"bitiflush: inconsistent bits=%d filled=%d k=%d\n",bits,filled,k);
	exit(10);
    }
    discard = filled-k;
    if ( treg != (reg<<discard) ) {
	fprintf(stderr,"bitiflush: inconsistent bits=%d discard=%d reg=%08x treg=%08x\n",bits, discard, reg, treg);
	exit(10);
    }
    if ( reg & (((1<<discard)-1)<<(BITBUFSIZE-discard)) )
	fprintf(stderr,"bitiflush: Warning: discarding nonzero bits; reg=%08x bits=%d discard=%d\n",reg,bits,discard);

    fp -= dbytes;  /* do the unget */
    if ( buff[fp-1]==0xff && buff[fp]==0 ) fp++;

    bits = 0;
    reg = 0;
}




/* Unpad zeros from byte length */
void unpadzeros()
{
	int z;

	z = bits % 8;
	
	if (bits!=24)
	{
		reg = (reg << z);
		bits = bits + z;
	}


}
	
	


/* creates the bit counting look-up table. */
void createzeroLUT()
{
        int i, j, k, l;

        j = k = 1; l = 8;
        for (i = 0; i < 256; ++i) {
                zeroLUT[i] = l;
                --k;
                if (k == 0) {
                        k = j;
                        --l;
                        j *= 2;
                }
        }
}



#ifdef IOFXNS
/* if using functions instead of macros */
dword
getbits(int no) 
{
        register dword temp;

        assert(no > 0 && no <= 18);
        temp = reg >> (32 - no);
        fillbuffer(no);
        return temp;
}
#	define GETBITS(n)	getbits(n)
#else
/* see GETBITS(x,n) in bitio.h */
#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美色图小说| 国产精品青草综合久久久久99| 亚洲国产裸拍裸体视频在线观看乱了| 色婷婷综合久色| 婷婷开心激情综合| 日韩一区二区电影| 国产精品一二一区| 亚洲视频一二区| 7777精品伊人久久久大香线蕉超级流畅 | 91视频在线观看免费| 亚洲精品视频在线看| 欧美日本国产视频| 国产精品18久久久久久久久| 亚洲国产精品成人综合| 91视频精品在这里| 视频在线观看一区| 久久久精品人体av艺术| 99re8在线精品视频免费播放| 亚洲午夜精品久久久久久久久| 日韩一级二级三级精品视频| 不卡的看片网站| 婷婷综合久久一区二区三区| 国产欧美一区二区精品婷婷| 91电影在线观看| 国内精品在线播放| 亚洲一区二区高清| 国产欧美一区二区精品秋霞影院| 欧美主播一区二区三区| 国产精品综合一区二区三区| 亚洲一二三区在线观看| 2023国产一二三区日本精品2022| 91丨porny丨在线| 国产一区二区三区在线观看精品| 一区二区三区国产| 国产欧美日韩不卡免费| 在线不卡a资源高清| 成人福利视频网站| 精久久久久久久久久久| 亚洲高清视频中文字幕| 国产精品国产三级国产| 精品国产91乱码一区二区三区 | 亚洲一区二区高清| 亚洲国产精品av| 日韩午夜在线观看视频| 91美女福利视频| 国产不卡视频一区二区三区| 日本aⅴ免费视频一区二区三区| 亚洲人成伊人成综合网小说| 久久久美女艺术照精彩视频福利播放| 欧美日本一区二区| 91国在线观看| 99久久99久久精品免费观看| 国产乱码精品一区二区三| 日本午夜精品视频在线观看| 一区二区三区免费在线观看| 中文字幕av一区 二区| 欧美电影免费观看高清完整版| 欧美日韩精品三区| 在线视频欧美精品| 97se亚洲国产综合自在线不卡| 国产不卡一区视频| 国产成人自拍高清视频在线免费播放| 捆绑紧缚一区二区三区视频| 蜜桃精品视频在线| 人人爽香蕉精品| 日本特黄久久久高潮| 日韩成人伦理电影在线观看| 亚洲最新视频在线播放| 中文字幕在线免费不卡| 欧美激情一二三区| 国产精品丝袜久久久久久app| 久久一二三国产| 精品对白一区国产伦| 久久综合色综合88| 欧美精品一区二区三区蜜桃视频 | 不卡欧美aaaaa| 成人av资源下载| 一本一道久久a久久精品综合蜜臀| 不卡高清视频专区| 91免费在线看| 欧美日韩在线精品一区二区三区激情| 欧美在线不卡一区| 欧美日韩美少妇| 欧美一区二区三区视频免费播放| 欧美人与禽zozo性伦| 日韩欧美一区二区不卡| 欧美成人综合网站| 久久这里只有精品6| 中文av一区特黄| 亚洲欧美日韩国产一区二区三区| 一区二区三区在线观看欧美| 亚洲国产精品精华液网站| 亚洲成人av在线电影| 麻豆视频观看网址久久| 国产精品456露脸| av亚洲精华国产精华精| 欧美日韩在线三级| 精品久久久久久久久久久院品网 | 不卡的av电影| 欧美天天综合网| 欧美一级夜夜爽| 欧美激情一区在线观看| 亚洲精品菠萝久久久久久久| 青草av.久久免费一区| 国产激情91久久精品导航| 色哟哟一区二区| 欧美一区欧美二区| 中文字幕+乱码+中文字幕一区| 亚洲欧美国产三级| 免费日本视频一区| 国产白丝网站精品污在线入口| 91丨porny丨在线| 欧美一区二区视频在线观看| 亚洲国产成人午夜在线一区| 亚洲小少妇裸体bbw| 国产伦理精品不卡| 欧洲一区二区三区免费视频| 2021国产精品久久精品| 一区二区欧美精品| 狠狠色丁香久久婷婷综合丁香| 色综合久久88色综合天天6| 日韩三级免费观看| 亚洲欧美激情在线| 国产一区二区三区免费播放| 欧美三级视频在线| 中国色在线观看另类| 日本在线观看不卡视频| 91美女蜜桃在线| 国产亚洲成aⅴ人片在线观看 | 国产99精品在线观看| 欧美日韩电影在线| 亚洲欧洲日产国码二区| 久久国产精品99久久人人澡| 欧美网站一区二区| 亚洲人一二三区| 国产成人精品影视| 欧美一区国产二区| 亚洲成人三级小说| 91视频免费观看| 国产精品久久久久婷婷二区次| 久久精品国产秦先生| 欧美网站一区二区| 亚洲欧美国产高清| eeuss鲁片一区二区三区 | 极品美女销魂一区二区三区| 欧美影院一区二区三区| 亚洲欧美日韩中文字幕一区二区三区 | 懂色av中文字幕一区二区三区 | 蜜桃精品视频在线观看| 欧美在线免费播放| 亚洲免费av在线| 91在线免费播放| 国产精品乱码一区二区三区软件| 激情综合色综合久久综合| 亚洲精品一二三四区| 成人美女在线观看| 久久久亚洲精华液精华液精华液| 久久精品国产澳门| 制服丝袜av成人在线看| 日韩精品欧美精品| 7777精品伊人久久久大香线蕉| 亚洲成人黄色影院| 欧美日韩你懂的| 污片在线观看一区二区| 欧美精品九九99久久| 日韩精品成人一区二区在线| 欧美日韩一区 二区 三区 久久精品| 亚洲欧美色一区| 欧美私模裸体表演在线观看| 亚洲电影视频在线| 3d成人动漫网站| 欧美a级一区二区| 日韩欧美电影在线| 激情综合网最新| 国产精品欧美一区二区三区| caoporn国产精品| 亚洲午夜影视影院在线观看| 欧美挠脚心视频网站| 久久电影国产免费久久电影| 久久蜜臀精品av| av电影天堂一区二区在线观看| 国产黄色91视频| 《视频一区视频二区| 成人99免费视频| 国产精品视频一二| 色综合久久88色综合天天| 亚洲国产毛片aaaaa无费看| 7777精品伊人久久久大香线蕉的| 理论电影国产精品| 国产日韩av一区| 欧美精品日日鲁夜夜添| 日韩高清不卡一区二区| 久久一区二区视频| 国产精品综合久久| 欧美激情中文字幕一区二区| 日韩一区二区精品葵司在线| 欧美在线一区二区| aaa欧美大片| 国产大陆亚洲精品国产| 欧美aⅴ一区二区三区视频|