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

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

?? dwt.c

?? 關于JPEG2000壓縮標準的模板程序的內容,是我們導師給的,據說是國外的版本.
?? 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 "dwt.h"
#include "int.h"
#include "fix.h"
#include <stdlib.h>

#define S(i) a[x*(i)*2]
#define D(i) a[x*(1+(i)*2)]
#define S_(i) ((i)<0?S(0):((i)>=sn?S(sn-1):S(i)))
#define D_(i) ((i)<0?D(0):((i)>=dn?D(dn-1):D(i)))

/// <summary>
/// This table contains the norms of the 5-3 wavelets for different bands. 
/// </summary>
double dwt_norms[4][10]={
    {1.000, 1.500, 2.750, 5.375, 10.68, 21.34, 42.67, 85.33, 170.7, 341.3},
    {1.038, 1.592, 2.919, 5.703, 11.33, 22.64, 45.25, 90.48, 180.9},
    {1.038, 1.592, 2.919, 5.703, 11.33, 22.64, 45.25, 90.48, 180.9},
    {.7186, .9218, 1.586, 3.043, 6.019, 12.01, 24.00, 47.97, 95.93}
};

/// <summary>
/// This table contains the norms of the 9-7 wavelets for different bands. 
/// </summary>
double dwt_norms_real[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}
};

/// <summary>
/// Forward lazy transform.
/// </summary>
void dwt_deinterleave(int *a, int n, int x) {
    int dn, sn, i;
    int *b;
    dn=n/2;
    sn=(n+1)/2;
    b=(int*)malloc(n*sizeof(int));
    for (i=0; i<sn; i++)
        b[i]=a[2*i*x];
    for (i=0; i<dn; i++)
        b[sn+i]=a[(2*i+1)*x];
    for (i=0; i<n; i++)
        a[i*x]=b[i];
    free(b);
}

/// <summary>
/// Inverse lazy transform.
/// </summary>
void dwt_interleave(int *a, int n, int x) {
    int dn, sn, i;
    int *b;
    dn=n/2;
    sn=(n+1)/2;
    b=(int*)malloc(n*sizeof(int));
    for (i=0; i<sn; i++)
        b[2*i]=a[i*x];
    for (i=0; i<dn; i++)
        b[2*i+1]=a[(sn+i)*x];
    for (i=0; i<n; i++)
        a[i*x]=b[i];
    free(b);
}

/// <summary>
/// Forward 5-3 wavelet tranform in 1-D.
/// </summary>
void dwt_encode_1(int *a, int n, int x)
{
    int dn, sn, i;
    dn=n/2;
    sn=1+(n-1)/2;
    for (i=0; i<dn; i++)
        D(i)-=(S_(i)+S_(i+1))>>1;
    for (i=0; i<sn; i++)
        S(i)+=(D_(i-1)+D_(i)+2)>>2;
    dwt_deinterleave(a, n, x);
}

/// <summary>
/// Inverse 5-3 wavelet tranform in 1-D.
/// </summary>
void dwt_decode_1(int *a, int n, int x)
{
    int dn, sn, i;
    dn=n/2;
    sn=1+(n-1)/2;
    dwt_interleave(a, n, x);
    for (i=0; i<sn; i++)
        S(i)-=(D_(i-1)+D_(i)+2)>>2;
    for (i=0; i<dn; i++)
        D(i)+=(S_(i)+S_(i+1))>>1;
}

/// <summary>
/// Forward 5-3 wavelet tranform in 2-D.
/// </summary>
void dwt_encode(int* a, int w, int h, int l)
{
    int i, j, rw, rh;
    for (i=0; i<l; i++) {
        rw=int_ceildivpow2(w, i);
        rh=int_ceildivpow2(h, i);
        for (j=0; j<rw; j++)
            dwt_encode_1(a+j, rh, w);
        for (j=0; j<rh; j++)
            dwt_encode_1(a+j*w, rw, 1);
    }
}

/// <summary>
/// Inverse 5-3 wavelet tranform in 2-D.
/// </summary>
void dwt_decode(int* a, int w, int h, int l)
{
    int i, j, rw, rh;
    for (i=l-1; i>=0; i--) {
        rw=int_ceildivpow2(w, i);
        rh=int_ceildivpow2(h, i);
        for (j=0; j<rh; j++)
            dwt_decode_1(a+j*w, rw, 1);
        for (j=0; j<rw; j++)
            dwt_decode_1(a+j, rh, w);
    }
}

/// <summary>
/// Get gain of 5-3 wavelet transform.
/// </summary>
int dwt_getgain(int orient) {
    if (orient==0) return 0;
    if (orient==1 || orient==2) return 1;
    return 2;
}

/// <summary>
/// Get norm of 5-3 wavelet.
/// </summary>
double dwt_getnorm(int level, int orient) {
    return dwt_norms[orient][level];
}

/// <summary>
/// Forward 9-7 wavelet transform in 1-D.
/// </summary>
void dwt_encode_1_real(int *a, int n, int x)
{
    int dn, sn, i;
    dn=n/2;
    sn=1+(n-1)/2;
    for (i=0; i<dn; i++)
        D(i)-=fix_mul(S_(i)+S_(i+1), 12993);
    for (i=0; i<sn; i++)
        S(i)-=fix_mul(D_(i-1)+D_(i), 434);
    for (i=0; i<dn; i++)
        D(i)+=fix_mul(S_(i)+S_(i+1), 7233);
    for (i=0; i<sn; i++)
        S(i)+=fix_mul(D_(i-1)+D_(i), 3633);
    for (i=0; i<dn; i++)
        D(i)=fix_mul(D(i), 5038);
    for (i=0; i<sn; i++)
        S(i)=fix_mul(S(i), 6660);
    dwt_deinterleave(a, n, x);
}

/// <summary>
/// Inverse 9-7 wavelet transform in 1-D.
/// </summary>
void dwt_decode_1_real(int *a, int n, int x)
{
    int dn, sn, i;
    dn=n/2;
    sn=1+(n-1)/2;
    dwt_interleave(a, n, x);
    for (i=0; i<sn; i++)
        S(i)=fix_mul(S(i), 10076);
    for (i=0; i<dn; i++)
        D(i)=fix_mul(D(i), 13320);
    for (i=0; i<sn; i++)
        S(i)-=fix_mul(D_(i-1)+D_(i), 3633);
    for (i=0; i<dn; i++)
        D(i)-=fix_mul(S_(i)+S_(i+1), 7233);
    for (i=0; i<sn; i++)
        S(i)+=fix_mul(D_(i-1)+D_(i), 434);
    for (i=0; i<dn; i++)
        D(i)+=fix_mul(S_(i)+S_(i+1), 12993);
}

/// <summary>
/// Forward 9-7 wavelet transform in 2-D.
/// </summary>
void dwt_encode_real(int* a, int w, int h, int l)
{
    int i, j, rw, rh;
    for (i=0; i<l; i++) {
        rw=int_ceildivpow2(w, i);
        rh=int_ceildivpow2(h, i);
        for (j=0; j<rw; j++)
            dwt_encode_1_real(a+j, rh, w);
        for (j=0; j<rh; j++)
            dwt_encode_1_real(a+j*w, rw, 1);
    }
}

/// <summary>
/// Inverse 9-7 wavelet transform in 2-D.
/// </summary>
void dwt_decode_real(int* a, int w, int h, int l)
{
    int i, j, rw, rh;
    for (i=l-1; i>=0; i--) {
        rw=int_ceildivpow2(w, i);
        rh=int_ceildivpow2(h, i);
        for (j=0; j<rh; j++)
            dwt_decode_1_real(a+j*w, rw, 1);
        for (j=0; j<rw; j++)
            dwt_decode_1_real(a+j, rh, w);
    }
}

/// <summary>
/// Get gain of 9-7 wavelet transform.
/// </summary>
int dwt_getgain_real(int orient) {
    return 0;
}

/// <summary>
/// Get norm of 9-7 wavelet.
/// </summary>
double dwt_getnorm_real(int level, int orient) {
    return dwt_norms_real[orient][level];
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线播放中文字幕一区| 色哟哟国产精品| 久久网站热最新地址| 激情综合亚洲精品| 精品国产不卡一区二区三区| 国产91精品久久久久久久网曝门| 国产精品女主播在线观看| 99在线精品免费| 亚洲综合av网| 欧美大片顶级少妇| 国产精一区二区三区| 国产精品伦一区| 欧美日韩国产成人在线91 | 亚洲黄一区二区三区| 欧美做爰猛烈大尺度电影无法无天| 亚洲国产精品久久不卡毛片 | 日韩欧美国产一区二区三区 | 一本久久综合亚洲鲁鲁五月天| 亚洲午夜视频在线观看| 欧美一区二区久久久| 国产不卡一区视频| 亚洲高清免费在线| 久久人人97超碰com| 日本大香伊一区二区三区| 日本 国产 欧美色综合| 国产精品视频免费看| 欧美性一级生活| 激情综合一区二区三区| 一区二区三区av电影| 26uuu精品一区二区| 一本一道久久a久久精品| 麻豆视频一区二区| 中文字幕视频一区| 日韩免费在线观看| 在线看一区二区| 大陆成人av片| 日产精品久久久久久久性色| 中文字幕av不卡| 欧美一级xxx| 91黄色免费看| 国产91在线|亚洲| 日韩精品一级中文字幕精品视频免费观看 | 亚洲激情在线播放| 久久久久久免费| 欧美日韩免费不卡视频一区二区三区| 国产电影一区在线| 日韩激情av在线| 亚洲一区二区三区国产| 亚洲国产电影在线观看| 精品成人一区二区三区四区| 欧美熟乱第一页| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 在线欧美日韩国产| 成人免费观看视频| 国产一区二区视频在线| 日日摸夜夜添夜夜添亚洲女人| 中文字幕一区二区三区蜜月| 久久久精品蜜桃| 欧美成人官网二区| 日韩一级高清毛片| 欧美电影在线免费观看| 欧美日产在线观看| 欧美日韩国产乱码电影| 色偷偷久久人人79超碰人人澡| 国产成人免费在线| 国产伦精品一区二区三区免费迷| 天堂蜜桃一区二区三区| 亚洲一区二区三区视频在线播放| 亚洲精品一二三| 亚洲欧美日韩中文播放| 国产精品国产自产拍高清av| 久久日韩粉嫩一区二区三区| 久久久蜜臀国产一区二区| 日韩一区二区电影网| 91精品国产综合久久小美女| 欧美精品三级日韩久久| 91精品国产欧美一区二区成人 | 91久久线看在观草草青青| 99re8在线精品视频免费播放| 成人av在线电影| 成人国产亚洲欧美成人综合网| 丁香一区二区三区| 不卡视频一二三四| 97se亚洲国产综合自在线观| 91在线精品一区二区| 91黄色小视频| 538在线一区二区精品国产| 日韩一区二区三区免费看| 欧美一级视频精品观看| 日韩欧美亚洲国产精品字幕久久久| 日韩视频一区二区| 久久久激情视频| 国产精品九色蝌蚪自拍| 亚洲电影一区二区| 蜜臀av在线播放一区二区三区| 黄页网站大全一区二区| 国产成人精品三级麻豆| 91搞黄在线观看| 91精品国产乱| 国产免费久久精品| 亚洲精品中文字幕在线观看| 琪琪一区二区三区| 国产精品亚洲人在线观看| 色综合色狠狠天天综合色| 欧美剧在线免费观看网站| 久久久蜜臀国产一区二区| 中文字幕综合网| 日韩经典一区二区| 国产成人亚洲综合a∨婷婷| 色素色在线综合| 欧美r级在线观看| 1区2区3区精品视频| 日韩高清在线不卡| 成人精品视频一区| 欧美久久久久久久久| 中日韩免费视频中文字幕| 亚洲成在线观看| 国产91精品精华液一区二区三区 | 91精品国产乱| 中文字幕在线一区二区三区| 日韩和欧美的一区| 福利一区在线观看| 555www色欧美视频| 亚洲色图在线播放| 狠狠久久亚洲欧美| 欧美少妇性性性| 国产精品欧美久久久久无广告| 视频一区视频二区中文| 99精品国产热久久91蜜凸| 精品免费日韩av| 午夜视频一区二区三区| 成人av在线影院| 精品国产伦一区二区三区免费 | 日韩电影在线免费观看| av电影一区二区| 欧美精品一区二区三区蜜桃 | 久久av资源网| 欧美三级三级三级| 亚洲欧洲日产国产综合网| 狠狠久久亚洲欧美| 欧美一区二区三区公司| 亚洲综合图片区| 99re在线精品| 欧美国产视频在线| 国产乱对白刺激视频不卡| 日韩欧美你懂的| 天堂久久一区二区三区| 欧美色涩在线第一页| 日韩美女精品在线| 丁香天五香天堂综合| 国产亚洲女人久久久久毛片| 久久国产婷婷国产香蕉| 91精品在线观看入口| 亚洲bt欧美bt精品777| 日本韩国精品在线| 悠悠色在线精品| 91网站在线观看视频| 国产精品久久久久影院亚瑟| 国产精品夜夜嗨| 国产农村妇女毛片精品久久麻豆| 国产自产视频一区二区三区| 欧美电视剧在线看免费| 美国三级日本三级久久99| 91精品国产综合久久国产大片| 亚洲va韩国va欧美va| 在线电影院国产精品| 天堂资源在线中文精品| 91麻豆精品国产| 欧美bbbbb| 久久毛片高清国产| 成人在线一区二区三区| 国产精品久久久一区麻豆最新章节| 波多野结衣中文一区| 日韩毛片精品高清免费| 在线影视一区二区三区| 亚洲国产一区二区在线播放| 欧美日韩精品是欧美日韩精品| 午夜久久久影院| 欧美大白屁股肥臀xxxxxx| 久久精品国产99| 日本一区二区三区dvd视频在线| 国产99久久久久久免费看农村| 国产日韩亚洲欧美综合| 99re66热这里只有精品3直播| 亚洲精品国产第一综合99久久| 欧美揉bbbbb揉bbbbb| 日韩国产欧美一区二区三区| 日韩欧美区一区二| 成人免费va视频| 亚洲一区视频在线观看视频| 欧美一区二区人人喊爽| 高清不卡一二三区| 亚洲一区电影777| 欧美videossexotv100| bt欧美亚洲午夜电影天堂| 亚洲h精品动漫在线观看| 久久久一区二区| 色婷婷激情久久| 久久99国产精品免费网站| 国产精品国产精品国产专区不蜜|