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

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

?? jpegll_dec.c

?? 包含了對于灰度圖像的8種jpeg無損壓縮的預測方法
?? C
字號:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

/**********************************************************************
*                                                                      *
*  File: jpegll_dec.c                                                  *
*  Function:  reconstructs an image which was decorrelated using the   *
*             lossless JPEG predictors                                 *
*  Author (aka person to blame) : K. Sayood                            *
*  Last mod: 5/12/95                                                   *
*  Usage:  see usage()                                                 *
***********************************************************************/

/*
 * Modified by Jim Diamond 20080212 to fix a couple of bugs (some minor,
 * one show stopper.
 */

/*******************************************************************************
 * NOTICE:                                                                     *
 * This code is believed by the author to be bug free.  You are free to use    *
 * and modify this code with the understanding that any use, either direct or  *
 * derivative, must contain acknowledgement of its author and source.  The     *
 * author makes no warranty of any kind, expressed or implied, of              *
 * merchantability or fitness for a particular purpose.  The author shall      *
 * not be held liable for any incidental or consequential damages in           *
 * connection with or arising out of the furnishing, performance, or use of    *
 * this software.  This software is not authorized for use in life support     *
 * devices or systems.                                                         *
 ******************************************************************************/


void usage(void);


int
main(int argc, char *argv[])
{
    int row, col, row_size, col_size, temp, mode, pred;
    char * outimage, * resimage;
    unsigned char ** image_out;
    int c;
    FILE * ifp, * ofp;
    extern int  optind;
    extern char * optarg;

    /* Obtain the filename for the residual image */
    ifp = stdin;
    ofp = stdout;
    while ((c = getopt(argc,argv,"i:o:m:h")) != EOF)
    {
	switch (c)
	{
	  case 'i':
	    resimage = strdup(optarg);
	    ifp = fopen(optarg, "rb");
	    if (ifp == NULL)
	    {
		fprintf(stderr, "%s: Unable to open '%s' for reading.  Bye!\n",
			argv[0], optarg);
		return 1;
	    }
	    break;

	  case 'o':
	    outimage = strdup(optarg);
	    ofp = fopen(optarg, "wb");
	    if (ofp == NULL)
	    {
		fprintf(stderr, "%s: Unable to open '%s' for writing.  Bye!\n",
			argv[0], optarg);
		return 1;
	    }
	    break;

	  case 'h':
	    usage();
	    return 1;
	}
    }


    /* Find the JPEG lossless mode and the image dimensions   */
    fread(&mode, 1, sizeof(int), ifp);
    fread(&col_size, 1, sizeof(int), ifp);
    fread(&row_size, 1, sizeof(int), ifp);

    fprintf(stderr, "\n\n\t\tJPEG Lossless Compression\n");
    fprintf(stderr, "This program reconstructs an image from its residuals\n");
    fprintf(stderr, "stored in %s\n", resimage);
    fprintf(stderr, "\nThe residuals were obtained using JPEG lossless\n");
    fprintf(stderr,
	    "mode %d and the reconstructed %d X %d image is stored in %s\n",
	    mode,col_size, row_size, outimage);


    /* Assign space for the output image */
    image_out  = (unsigned char **)malloc(row_size * sizeof(char *));
    for (row = 0; row < row_size; row++)
	image_out[row]  = (unsigned char *)malloc(col_size * sizeof(char));

    /* Generate prediction using the prediction mode selected */
    for (row = 0; row < row_size; row++)
	for (col = 0; col < col_size; col++)
	{
	    c = getc(ifp);
	    switch(mode)
	    {
	      case 0:
		pred = 0;
		break;

	      case 1:
		if (row == 0 && col == 0)
		    pred = 0;
		else if (row == 0)
		    pred = image_out[row][col - 1];
		else
		    pred = image_out[row - 1][col];
		break;

	      case 2:
		if (row == 0 && col == 0)
		    pred = 0;
		else if (col == 0)
		    pred = image_out[row - 1][col];
		else
		    pred = image_out[row][col - 1];
		break;

	      case 3:
		if (row == 0 && col == 0)
		    pred = 0;
		else if (col == 0)
		    pred = image_out[row - 1][col];
		else if (row == 0)
		    pred = image_out[row][col - 1];
		else
		    pred = image_out[row - 1][col - 1];
		break;

	      case 4:
		if (row == 0 && col == 0)
		    pred = 0;
		else if (col == 0)
		    pred = image_out[row - 1][col];
		else if (row == 0)
		    pred = image_out[row][col - 1];
		else
		    pred = image_out[row][col - 1]
			+ image_out[row - 1][col] - image_out[row - 1][col - 1];
		break;

	      case 5:
		if (row == 0 && col == 0)
		    pred = 0;
		else if (col == 0)
		    pred = image_out[row - 1][col];
		else if (row == 0)
		    pred = image_out[row][col - 1];
		else
		    pred = image_out[row][col - 1]
			+ (image_out[row-1][col] - image_out[row-1][col- 1])/2;
		break;

	      case 6:
		if (row == 0 && col == 0)
		    pred = 0;
		else if (col == 0)
		    pred = image_out[row - 1][col];
		else if (row == 0)
		    pred = image_out[row][col - 1];
		else
		    pred = image_out[row - 1][col]
			+ (image_out[row][col-1] - image_out[row-1][col - 1])/2;
		break;

	      case 7:
		if (row == 0 && col == 0)
		    pred = 0;
		else if (col == 0)
		    pred = image_out[row - 1][col];
		else if (row == 0)
		    pred = image_out[row][col - 1];
		else
		    pred = (image_out[row][col - 1] + image_out[row-1][col]) /2;
		break;

	      default:
		fprintf(stderr,"No JPEG mode was specified");
		exit(1);
	    }

	    /* Generate the reconstruction */
	    temp = c + pred;

	    /* Represent the residual modulo 256 */
	    while (temp > 255)
		temp = temp - 256;
	    /* Added by Jim Diamond */
	    while (temp < 0)
		temp += 256;
	    image_out[row][col] = temp;

#ifdef DEBUG
	    fprintf(stderr,
		    "row %d col %d: pixel %d, pred %d, resid %d; pixel' %d\n",
		    row, col, temp, pred, c, c + pred);
#endif
	}

    for (row = 0; row < row_size; row++)
	for (col = 0; col < col_size; col++)
	    putc(image_out[row][col], ofp);

    return 0;
}



void
usage(void)
{
    fprintf(stderr, "Usage: jpegll_dec [-i infile] [-o outfile] \n");
    fprintf(stderr, "\tinfile is the file containing the residuals, and \n");
    fprintf(stderr, "\toutfile is the file which will contain the reconstructed\n");
    fprintf(stderr, "\timage.  If infile and/or outfile are not specified\n");
    fprintf(stderr, "\tthe defaults are standard input and output\n");
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲天堂成人在线观看| 日韩精品一区二区在线| 国产成人一区二区精品非洲| 午夜久久久久久久久| 亚洲一区二区欧美激情| 亚洲一区在线看| 香蕉影视欧美成人| 天天影视色香欲综合网老头| 亚洲h在线观看| 青青草成人在线观看| 午夜不卡av免费| 毛片一区二区三区| 国产自产视频一区二区三区| 欧美性猛交xxxx乱大交退制版 | 一区二区三区电影在线播| 国产精品二区一区二区aⅴ污介绍| 久久久久久久久97黄色工厂| 久久精品免视看| 国产精品久久久久久久久免费桃花 | 综合电影一区二区三区 | 男女性色大片免费观看一区二区 | 色综合色综合色综合色综合色综合 | 欧美日韩一区二区在线观看视频 | 老司机免费视频一区二区| 久久99久久99精品免视看婷婷 | 亚洲第一av色| 麻豆91在线看| 波多野结衣亚洲一区| 91成人在线精品| 精品欧美乱码久久久久久1区2区 | 日韩手机在线导航| 久久网这里都是精品| 亚洲男人天堂一区| 久久精品国产999大香线蕉| av电影在线观看一区| 666欧美在线视频| 中文在线一区二区| 青青草精品视频| 一本色道亚洲精品aⅴ| 精品欧美一区二区三区精品久久| 国产精品色呦呦| 美国三级日本三级久久99| 91麻豆123| 国产喂奶挤奶一区二区三区| 国产剧情一区二区| 欧洲中文字幕精品| 国产日韩v精品一区二区| 亚洲成人一区二区在线观看| 成人一区二区视频| 欧美一级电影网站| 亚洲第一二三四区| 91精彩视频在线观看| 国产日韩视频一区二区三区| 午夜不卡av在线| 欧美午夜精品一区二区蜜桃| 中日韩av电影| 国产一区二区美女诱惑| 欧美老肥妇做.爰bbww视频| 国产人成一区二区三区影院| 日本午夜精品一区二区三区电影| 99在线视频精品| 亚洲国产日韩在线一区模特| 国产不卡在线播放| 久久品道一品道久久精品| 裸体健美xxxx欧美裸体表演| 欧美午夜片在线观看| 一区二区三区在线影院| 99久久免费视频.com| 中文一区在线播放| 成人99免费视频| 中文欧美字幕免费| av在线不卡观看免费观看| 久久久久99精品一区| 国内不卡的二区三区中文字幕| 欧美一区二区三区不卡| 日本伊人精品一区二区三区观看方式| 欧美特级限制片免费在线观看| 伊人色综合久久天天人手人婷| 欧美电影免费观看高清完整版在| 亚洲成人av一区| 欧美高清dvd| 美女国产一区二区三区| 日韩欧美在线影院| 国精品**一区二区三区在线蜜桃| 精品日韩在线观看| 成人黄色小视频在线观看| 国产精品拍天天在线| 99久久久无码国产精品| 亚洲一区二区视频在线| 欧美日韩国产乱码电影| 首页亚洲欧美制服丝腿| 亚洲精品一区二区在线观看| 国产一区在线不卡| 最新国产成人在线观看| 日本高清成人免费播放| 午夜电影网一区| 一区二区三区在线视频观看| 欧洲一区在线电影| 狠狠色丁香婷婷综合| 国产精品视频免费看| 色综合久久综合中文综合网| 肉肉av福利一精品导航| 国产日韩三级在线| 欧美日韩www| 国产精品一区二区在线播放 | 亚洲一区在线视频观看| 精品久久久影院| 99久久综合狠狠综合久久| 亚洲gay无套男同| 国产视频视频一区| 欧美日韩国产经典色站一区二区三区| 国产iv一区二区三区| 亚洲曰韩产成在线| 久久先锋影音av鲁色资源| 一本色道久久综合狠狠躁的推荐 | 94色蜜桃网一区二区三区| 亚洲国产精品久久久久秋霞影院 | 天天操天天综合网| 国产欧美一区二区在线| 欧美日韩高清一区二区| 国产一区二三区| 亚洲成年人网站在线观看| 日本一区二区三区在线不卡| 欧美性感一类影片在线播放| 国产成人免费视频网站高清观看视频| 久久丁香综合五月国产三级网站 | 美女诱惑一区二区| 亚洲在线视频免费观看| 国产日韩综合av| 精品裸体舞一区二区三区| 91成人在线精品| 97久久精品人人澡人人爽| 国产在线一区观看| 天天免费综合色| 亚洲国产另类精品专区| 日韩久久一区二区| 国产情人综合久久777777| 精品少妇一区二区三区| 欧美精选一区二区| 欧美综合欧美视频| 91日韩在线专区| 9色porny自拍视频一区二区| 国产一区高清在线| av激情综合网| 97精品国产露脸对白| 不卡电影免费在线播放一区| 国产高清在线精品| 国产成人精品一区二| 国产精品18久久久久久久久久久久 | 精品剧情v国产在线观看在线| 欧美午夜理伦三级在线观看| 欧美三级日韩在线| 欧美视频一区二区在线观看| 欧美影院一区二区三区| 欧洲一区在线电影| 欧美日韩国产小视频在线观看| 欧美中文字幕不卡| 7777精品伊人久久久大香线蕉完整版| 欧美综合亚洲图片综合区| 欧美三级在线视频| 国产精品免费aⅴ片在线观看| 日本一区二区视频在线| 亚洲视频每日更新| 亚洲一区av在线| 午夜影院久久久| 精品影视av免费| 高清国产午夜精品久久久久久| av一区二区不卡| 欧美日韩久久久一区| 日韩午夜小视频| 久久久久久综合| 亚洲另类色综合网站| 亚洲一区二区三区四区在线观看 | 国产女人水真多18毛片18精品视频| 国产精品―色哟哟| 一区二区三区丝袜| 久久精品久久精品| 成人性生交大片免费看中文 | 久久精品在这里| 亚洲激情校园春色| 日本欧美肥老太交大片| 国产成人精品免费一区二区| 色综合久久久久综合体| 7777精品伊人久久久大香线蕉完整版 | 激情文学综合丁香| 94色蜜桃网一区二区三区| 8v天堂国产在线一区二区| 久久精品无码一区二区三区| 亚洲男人都懂的| 日本三级亚洲精品| av电影在线观看完整版一区二区| 91九色最新地址| www一区二区| 午夜不卡av免费| 99热这里都是精品| 亚洲视频一区二区在线观看| 日韩中文字幕一区二区三区| 粉嫩绯色av一区二区在线观看| 欧美丰满一区二区免费视频| 国产欧美一区视频|