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

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

?? pnmtoj2k.c

?? 關(guān)于JPEG2000壓縮標(biāo)準(zhǔn)的模板程序的內(nèi)容,是我們導(dǎo)師給的,據(jù)說是國外的版本.
?? C
字號:
/*
 * Copyright (c) 2001-2002, David Janssens
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

#include <j2k.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "getopt.h"

int pnmtoimage(char *filename, j2k_image_t *img) {
    FILE *f;
    int w, h;
    int i;


//++pac
fprintf(stderr, "%s" ,filename);



    f=fopen(filename, "rb");
    if (!f) {
        return 0;
    }
//++pac
fprintf(stderr, "1");
    if (fscanf(f, "P2\n%d %d\n255", &w, &h)==2) {
        fgetc(f);
        img->x0=0; img->y0=0; img->x1=w; img->y1=h;
        img->numcomps=1;
        img->comps=(j2k_comp_t*)malloc(sizeof(j2k_comp_t));
        img->comps[0].data=(int*)malloc(w*h*sizeof(int));
        img->comps[0].prec=8;
        img->comps[0].sgnd=0;
        img->comps[0].dx=1;
        img->comps[0].dy=1;
        for (i=0; i<w*h; i++) {
            unsigned int l;
            fscanf(f, "%d", &l);
            img->comps[0].data[i]=l;
//++pac
fprintf(stderr, "2");
        }
    } else if (fseek(f, 0, SEEK_SET), fscanf(f, "P5\n%d %d\n255", &w, &h)==2) {
        fgetc(f);
        img->x0=0; img->y0=0; img->x1=w; img->y1=h;
        img->numcomps=1;
        img->comps=(j2k_comp_t*)malloc(sizeof(j2k_comp_t));
        img->comps[0].data=(int*)malloc(w*h*sizeof(int));
        img->comps[0].prec=8;
        img->comps[0].sgnd=0;
        img->comps[0].dx=1;
        img->comps[0].dy=1;
        for (i=0; i<w*h; i++) {
            unsigned char l;
            fread(&l, 1, 1, f);
            img->comps[0].data[i]=l;
//++pac
fprintf(stderr, "3");
        }
    } else if (fseek(f, 0, SEEK_SET), fscanf(f, "P6\n%d %d\n255", &w, &h)==2) {
        fgetc(f);
        img->x0=0; img->y0=0; img->x1=w; img->y1=h;
        img->numcomps=3;
        img->comps=(j2k_comp_t*)malloc(img->numcomps*sizeof(j2k_comp_t));
        for (i=0; i<img->numcomps; i++) {
            img->comps[i].data=(int*)malloc(w*h*sizeof(int));
            img->comps[i].prec=8;
            img->comps[i].sgnd=0;
            img->comps[i].dx=1;
            img->comps[i].dy=1;
        }
        for (i=0; i<w*h; i++) {
            unsigned char r, g, b;
            fread(&r, 1, 1, f);
            fread(&g, 1, 1, f);
            fread(&b, 1, 1, f);
            img->comps[0].data[i]=r;
            img->comps[1].data[i]=g;
            img->comps[2].data[i]=b;
        }
    } else {
//++pac
fprintf(stderr, "4");
        return 0;
    }
    fclose(f);
    return 1;
}

double dwt_norms_97[4][10]={
    {1.000, 1.965, 4.177, 8.403, 16.90, 33.84, 67.69, 135.3, 270.6, 540.9},
    {2.022, 3.989, 8.355, 17.04, 34.27, 68.63, 137.3, 274.6, 549.0},
    {2.022, 3.989, 8.355, 17.04, 34.27, 68.63, 137.3, 274.6, 549.0},
    {2.080, 3.865, 8.307, 17.18, 34.71, 69.59, 139.3, 278.6, 557.2}
};

int floorlog2(int a) {
    int l;
    for (l=0; a>1; l++) {
        a>>=1;
    }
    return l;
}

void encode_stepsize(int stepsize, int numbps, int *expn, int *mant) {
    int p, n;
    p=floorlog2(stepsize)-13;
    n=11-floorlog2(stepsize);
    *mant=(n<0?stepsize>>-n:stepsize<<n)&0x7ff;
    *expn=numbps-p;
}

int calc_explicit_stepsizes(j2k_tccp_t *tccp, int prec) {
    int numbands, bandno;
    numbands=3*tccp->numresolutions-2;
    for (bandno=0; bandno<numbands; bandno++) {
        double stepsize;

        int resno, level, orient, gain;
        resno=bandno==0?0:(bandno-1)/3+1;
        orient=bandno==0?0:(bandno-1)%3+1;
        level=tccp->numresolutions-1-resno;
        gain=tccp->qmfbid==0?0:(orient==0?0:(orient==1||orient==2?1:2));
        if (tccp->qntsty==J2K_CCP_QNTSTY_NOQNT) {
            stepsize=1.0;
        } else {
            double norm=dwt_norms_97[orient][level];
            stepsize=(1<<(gain+1))/norm;
        }
        encode_stepsize((int)floor(stepsize*8192.0), prec+gain, &tccp->stepsizes[bandno].expn, &tccp->stepsizes[bandno].mant);
    }
}

int main(int argc, char **argv)
{
    FILE *f;
    unsigned char *dest;	//++pac
    int len;
    j2k_image_t img;
    j2k_cp_t cp;
    j2k_tcp_t *tcp;
    j2k_tccp_t *tccp;
    int i;
    char *infile=0, *outfile=0;
    char *s;
    int ir=0;


    cp.tx0=0; cp.ty0=0;
    cp.tw=1; cp.th=1;
    cp.tcps=(j2k_tcp_t*)malloc(sizeof(j2k_tcp_t));
    tcp=&cp.tcps[0];

    tcp->numlayers=0;
    while (1) {
        int c=getopt(argc, argv, "i:o:r:I");
        if (c==-1) break;
        switch (c) {
            case 'i':
                infile=optarg;
                break;
            case 'o':
                outfile=optarg;
                break;
            case 'r':
                s=optarg;
                while (sscanf(s, "%d", &tcp->rates[tcp->numlayers])==1) {
                    tcp->numlayers++;
                    while (*s && *s!=',') {s++;}
                    if (!*s) break;
                    s++;
                }
                break;
            case 'I':
                ir=1;
                break;
            default:
                return 1;
        }
    }

    if (!infile || !outfile || tcp->numlayers==0) {
        fprintf(stderr, "usage: pnmtoj2k -i pnm-file -o j2k-file -r rates\n");
        return 1;
    }

    if (!pnmtoimage(infile, &img)) {
        fprintf(stderr, "not a pnm file\n");
        return 1;
    }

    cp.tdx=img.x1-img.x0; cp.tdy=img.y1-img.y0;

    tcp->csty=0;
    tcp->prg=0;
    tcp->mct=img.numcomps==3?1:0;
    tcp->tccps=(j2k_tccp_t*)malloc(img.numcomps*sizeof(j2k_tccp_t));

    for (i=0; i<img.numcomps; i++) {
        tccp=&tcp->tccps[i];
        tccp->csty=0;
        tccp->numresolutions=6;
        tccp->cblkw=6;
        tccp->cblkh=6;
        tccp->cblksty=0;
        tccp->qmfbid=ir?0:1;
        tccp->qntsty=ir?J2K_CCP_QNTSTY_SEQNT:J2K_CCP_QNTSTY_NOQNT;
        tccp->numgbits=2;
        tccp->roishift=0;
        calc_explicit_stepsizes(tccp, img.comps[i].prec);
    }

    dest=(unsigned char*)malloc(tcp->rates[tcp->numlayers-1]+2);	//++pac
    len=j2k_encode(&img, &cp, dest, tcp->rates[tcp->numlayers-1]+2);
    if (len==0) {
        fprintf(stderr, "failed to encode image\n");
        return 1;
    }

    f=fopen(outfile, "wb");
    if (!f) {
        fprintf(stderr, "failed to open %s for writing\n", outfile);
        return 1;
    }
    fwrite(dest, 1, len, f);
    fclose(f);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线免费一区三区| 在线视频亚洲一区| 国产精品自拍在线| 91亚洲午夜精品久久久久久| 久久电影网电视剧免费观看| 成人免费高清视频| 欧美亚洲动漫另类| 欧美变态tickle挠乳网站| 中文字幕的久久| 婷婷中文字幕一区三区| 国产成人一区在线| 欧美日韩国产在线播放网站| 久久久久久亚洲综合| 中文字幕亚洲一区二区av在线 | 国产精品麻豆一区二区| 国产精品伦一区二区三级视频| 亚洲影视在线播放| 激情文学综合网| 99re热视频精品| 日韩欧美一区二区在线视频| 亚洲视频一区二区在线观看| 韩国三级电影一区二区| 色婷婷综合久久久久中文一区二区| 欧美一区二区三区免费| 亚洲精品欧美专区| 欧美一区二区三区啪啪| www欧美成人18+| 亚洲1区2区3区4区| 粉嫩av一区二区三区在线播放 | 欧美日韩不卡视频| 国产精品久久久久一区二区三区| 捆绑变态av一区二区三区| 91猫先生在线| 国产精品乱人伦一区二区| 香蕉加勒比综合久久 | 日韩国产精品久久久久久亚洲| 高清av一区二区| 精品第一国产综合精品aⅴ| 午夜电影网一区| av日韩在线网站| 国产精品美女久久久久久久| 国内精品国产三级国产a久久| 欧美日韩在线不卡| 亚洲国产精品麻豆| 99在线视频精品| 国产精品国产三级国产三级人妇| 久久99久国产精品黄毛片色诱| 欧美精品日韩一本| 亚洲成人动漫在线免费观看| 99视频一区二区三区| 中文字幕不卡三区| 国产成人超碰人人澡人人澡| 久久精品一区八戒影视| 国产在线国偷精品免费看| 日韩精品中文字幕在线一区| 蜜臀精品久久久久久蜜臀| 91精品国产欧美一区二区18 | 欧美性极品少妇| 亚洲一区二区在线播放相泽| 在线观看www91| 亚洲超碰精品一区二区| av电影天堂一区二区在线| 18成人在线观看| 在线精品视频免费播放| 亚洲理论在线观看| 欧美三级资源在线| 人人精品人人爱| 久久这里只精品最新地址| 国产成人精品一区二区三区四区 | 最新国产成人在线观看| 色综合久久久久综合99| 亚洲欧美激情插| 色8久久精品久久久久久蜜| 亚洲精品欧美激情| 欧美日韩一级片在线观看| 男男gaygay亚洲| 久久夜色精品一区| eeuss国产一区二区三区| 一区二区三区四区精品在线视频| 色又黄又爽网站www久久| 香港成人在线视频| 久久一二三国产| 色先锋资源久久综合| 午夜婷婷国产麻豆精品| 久久丝袜美腿综合| 91在线国内视频| 免费成人在线网站| 久久亚洲综合av| 国产99精品视频| 亚洲成人福利片| 亚洲欧洲一区二区三区| 精品嫩草影院久久| 日韩一区中文字幕| 精品视频1区2区3区| 91麻豆精品国产91久久久久| 成人激情午夜影院| 欧美日本国产一区| 9i在线看片成人免费| 国产一区二区不卡| 喷白浆一区二区| 亚洲成人午夜影院| 亚洲欧洲99久久| 国产精品全国免费观看高清| 精品国产伦一区二区三区观看方式 | 成人丝袜高跟foot| 蜜桃视频在线观看一区| 亚洲国产欧美另类丝袜| 亚洲私人黄色宅男| 中文幕一区二区三区久久蜜桃| 精品国产免费久久| 欧美变态tickling挠脚心| 欧美精品久久久久久久久老牛影院| 色综合久久综合中文综合网| 成人a级免费电影| 国产成人免费在线| 国产精品 日产精品 欧美精品| 久久国内精品视频| 麻豆免费精品视频| 欧美丰满一区二区免费视频 | 国产精品成人网| 国产精品国产三级国产有无不卡| 欧美国产精品一区| 国产精品私人影院| 中文字幕亚洲电影| 亚洲视频 欧洲视频| 亚洲天堂网中文字| 亚洲影院久久精品| 午夜成人免费电影| 免费av成人在线| 极品少妇xxxx精品少妇| 国产激情精品久久久第一区二区 | 欧美少妇xxx| 欧美一区二区视频在线观看| 日韩亚洲欧美在线观看| 日韩女同互慰一区二区| 欧美精品一区视频| 国产精品热久久久久夜色精品三区| 国产精品久久午夜夜伦鲁鲁| 一级日本不卡的影视| 午夜伊人狠狠久久| 麻豆国产精品视频| 成人午夜免费av| 欧美视频一区在线| 精品日韩一区二区三区免费视频| 久久久亚洲午夜电影| 18成人在线视频| 三级亚洲高清视频| 丰满白嫩尤物一区二区| 色哟哟国产精品| 日韩美女在线视频| 亚洲人成网站精品片在线观看| 午夜不卡av免费| 精品第一国产综合精品aⅴ| 久久精品男人的天堂| 亚洲人成精品久久久久久| 三级一区在线视频先锋 | 午夜电影网亚洲视频| 国产一区二三区| 欧美性色欧美a在线播放| 欧美sm美女调教| 一二三四区精品视频| 紧缚奴在线一区二区三区| 97久久超碰精品国产| 精品国产伦一区二区三区免费| 亚洲日本青草视频在线怡红院| 日韩av中文字幕一区二区三区| 懂色av中文一区二区三区| 欧美日韩亚洲国产综合| 国产视频在线观看一区二区三区 | 成人激情开心网| 欧美一区二区美女| 亚洲狠狠丁香婷婷综合久久久| 国产专区综合网| 91精品国产一区二区三区 | 欧美激情一区二区在线| 午夜精品久久一牛影视| 99久免费精品视频在线观看| 精品99一区二区三区| 午夜av一区二区三区| 色综合久久天天| 国产日韩精品久久久| 蜜臀久久久99精品久久久久久| 91黄视频在线| 亚洲色图视频网| 国产成人精品三级| 亚洲精品在线电影| 日韩国产在线一| 欧美日韩一区 二区 三区 久久精品 | 在线一区二区三区四区| 国产精品少妇自拍| 国产一区美女在线| 日韩一卡二卡三卡四卡| 一本到不卡免费一区二区| 欧美国产日韩在线观看| 国产精品夜夜嗨| 欧美精品一区二区三区视频| 蜜桃一区二区三区四区| 91精品国模一区二区三区| 亚洲va韩国va欧美va精品| 欧美在线观看一区|