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

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

?? sadwt.c

?? QccPack implementation in C
?? C
?? 第 1 頁 / 共 4 頁
字號:
/* *  * QccPack: Quantization, compression, and coding libraries * Copyright (C) 1997-2005  James E. Fowler *  * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. *  * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Library General Public License for more details. *  * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, * MA 02139, USA. *  */#include "libQccPack.h"static int QccWAVWaveletShapeAdaptiveAnalysis1D(const QccVector input_data,                                                QccVector output_data,                                                QccVector subsequence,                                                const QccVector input_mask,                                                QccVector output_mask,                                                int signal_length,                                                const QccWAVWavelet *wavelet){  int return_value = 0;  int index1, index2;  int subsequence_position;  int subsequence_length;  int lowband_position;  int lowband_length;  int highband_position;  int highband_length;  int midpoint;  int phase;    /*  LWT transform mask */  if (QccWAVWaveletLWT(input_mask, output_mask,                       signal_length, 0, 0))    {      QccErrorAddMessage("(QccWAVWaveletShapeAdaptiveAnalysis1D): Error calling QccWAVWaveletLWT()");      goto Error;    }    QccVectorZero(output_data, signal_length);  QccVectorZero(subsequence, signal_length);    /* Midpoint separates lowpass and highpass subbands in output */  midpoint =     QccWAVWaveletDWTSubbandLength(signal_length, 1, 0, 0, 0);    for (index1 = 0; index1 < signal_length; index1++)    {      /* Find start of subsequence of contiguous object */      if (!QccAlphaTransparent(input_mask[index1]))        {          /* Find end of subsequence of contiguous object */          for (index2 = index1; index2 < signal_length; index2++)            if (QccAlphaTransparent(input_mask[index2]))              break;                    subsequence_position = index1;          subsequence_length = index2 - index1;          phase =            (subsequence_position % 2) ? QCCWAVWAVELET_PHASE_ODD :            QCCWAVWAVELET_PHASE_EVEN;                    /* Do transform of current subsequence */          if (QccWAVWaveletAnalysis1D(&input_data[subsequence_position],                                      subsequence,                                      subsequence_length,                                      phase,                                      wavelet))            {              QccErrorAddMessage("(QccWAVWaveletShapeAdaptiveAnalysis1D): Error calling QccWAVWaveletAnalysis1D()");              goto Error;            }                    /* Find lowpass subband position */          lowband_position =            (phase == QCCWAVWAVELET_PHASE_ODD) ?            ((subsequence_position + 1) >> 1) :            (subsequence_position >> 1);          lowband_length =            QccWAVWaveletDWTSubbandLength(subsequence_length, 1, 0, 0,                                          phase);                    /* Find highpass subband position */          highband_position = midpoint +            ((phase == QCCWAVWAVELET_PHASE_ODD) ?             (subsequence_position >> 1) :             (subsequence_position + 1) >> 1);          highband_length =            QccWAVWaveletDWTSubbandLength(subsequence_length, 1, 1, 0,                                          phase);                    /* Place subbands into output array */          QccVectorCopy(&output_data[lowband_position],                        subsequence,                        lowband_length);          QccVectorCopy(&output_data[highband_position],                        &subsequence[lowband_length],                        highband_length);                    index1 = index2;        }    }    return_value = 0;  goto Return; Error:  return_value = 1; Return:  return(return_value);}static int QccWAVWaveletShapeAdaptiveSynthesis1D(const QccVector input_data,                                                 QccVector output_data,                                                 QccVector subsequence,                                                 const QccVector input_mask,                                                 QccVector output_mask,                                                 int signal_length,                                                 const QccWAVWavelet *wavelet){  int return_value = 0;  int index1, index2;  int subsequence_position;  int subsequence_length;  int lowband_position;  int lowband_length;  int highband_position;  int highband_length;  int midpoint;  int phase;    /* Inverse LWT mask */  if (QccWAVWaveletInverseLWT(input_mask, output_mask,                              signal_length, 0, 0))    {      QccErrorAddMessage("(QccWAVWaveletShapeAdaptiveSynthesis1D): Error calling QccWAVWaveletInverseLWT()");      goto Error;    }    QccVectorZero(output_data, signal_length);  QccVectorZero(subsequence, signal_length);    /* Midpoint separates lowpass and highpass subbands in output */  midpoint =     QccWAVWaveletDWTSubbandLength(signal_length, 1, 0, 0, 0);    for (index1 = 0; index1 < signal_length; index1++)    {      /* Find start of subsequence of contiguous object */      if (!QccAlphaTransparent(output_mask[index1]))        {          /* Find end of subsequence of contiguous object */          for (index2 = index1; index2 < signal_length; index2++)            if (QccAlphaTransparent(output_mask[index2]))              break;                    subsequence_position = index1;          subsequence_length = index2 - index1;                    phase =            (subsequence_position % 2) ? QCCWAVWAVELET_PHASE_ODD :            QCCWAVWAVELET_PHASE_EVEN;                    /* Find lowpass subband position */          lowband_position =            (phase == QCCWAVWAVELET_PHASE_ODD) ?            ((subsequence_position + 1) >> 1) :            (subsequence_position >> 1);          lowband_length =            QccWAVWaveletDWTSubbandLength(subsequence_length, 1, 0, 0,                                          phase);                    /* Find highpass subband position */          highband_position = midpoint +            ((phase == QCCWAVWAVELET_PHASE_ODD) ?             (subsequence_position >> 1) :             (subsequence_position + 1) >> 1);          highband_length =            QccWAVWaveletDWTSubbandLength(subsequence_length, 1, 1, 0,                                          phase);                    /* Extract subbands */          QccVectorCopy(subsequence,                        &input_data[lowband_position],                        lowband_length);          QccVectorCopy(&subsequence[lowband_length],                        &input_data[highband_position],                        highband_length);                    /* Inverse transform */          if (QccWAVWaveletSynthesis1D(subsequence,                                       &output_data[subsequence_position],                                       subsequence_length,                                       phase,                                       wavelet))            {              QccErrorAddMessage("(QccWAVWaveletShapeAdaptiveSynthesis1D): Error calling QccWAVWaveletSynthesis1D()");              goto Error;            }                    index1 = index2;        }    }    return_value = 0;  goto Return; Error:  return_value = 1; Return:  return(return_value);}int QccWAVWaveletShapeAdaptiveDWT1D(const QccVector input_signal,                                    const QccVector input_mask,                                    QccVector output_signal,                                    QccVector output_mask,                                    int signal_length,                                    int num_scales,                                    const QccWAVWavelet *wavelet){    int return_value;  int scale;  QccVector temp_signal = NULL;  QccVector temp_mask = NULL;  QccVector subsequence = NULL;  int current_length;    if (input_signal == NULL)    return(0);  if (input_mask == NULL)    return(0);  if (output_signal == NULL)    return(0);  if (output_mask == NULL)    return(0);  if (wavelet == NULL)    return(0);    if (num_scales < 0)    return(0);  if (num_scales == 0 )    {      QccVectorCopy(output_signal, input_signal, signal_length);      QccVectorCopy(output_mask, input_mask, signal_length);      return(0);    }    if ((temp_signal = QccVectorAlloc(signal_length)) == NULL)    {      QccErrorAddMessage("(QccWAVWaveletShapeAdaptiveDWT1D): Error calling QccVectorAlloc()");      goto QccError;    }  if ((temp_mask = QccVectorAlloc(signal_length)) == NULL)    {      QccErrorAddMessage("(QccWAVWaveletShapeAdaptiveDWT1D): Error calling QccVectorAlloc()");      goto QccError;    }  if ((subsequence = QccVectorAlloc(signal_length)) == NULL)    {      QccErrorAddMessage("(QccWAVWaveletShapeAdaptiveDWT1D): Error calling QccVectorAlloc()");      goto QccError;    }    if (QccVectorCopy(temp_signal, input_signal, signal_length))    {      QccErrorAddMessage("(QccWAVWaveletShapeAdaptiveDWT1D): Error calling QccVectorCopy()");      goto QccError;    }  if (QccVectorCopy(temp_mask, input_signal, signal_length))    {      QccErrorAddMessage("(QccWAVWaveletShapeAdaptiveDWT1D): Error calling QccVectorCopy()");      goto QccError;    }    current_length = signal_length;    for (scale = 0; scale < num_scales; scale++)    {      if (QccWAVWaveletShapeAdaptiveAnalysis1D(temp_signal,                                               output_signal,                                               subsequence,                                               temp_mask,                                               output_mask,                                               current_length,                                               wavelet))        {          QccErrorAddMessage("(QccWAVWaveletShapeAdaptiveDWT1D): Error calling QccWAVWaveletShapeAdaptiveAnalysis1D()");          goto QccError;        }            current_length =        QccWAVWaveletDWTSubbandLength(signal_length, scale + 1, 0, 0, 0);            if (QccVectorCopy(temp_signal, output_signal, current_length))        {          QccErrorAddMessage("(QccWAVWaveletShapeAdaptiveDWT1D): Error calling QccVectorCopy()");          goto QccError;        }      if (QccVectorCopy(temp_mask, output_mask, current_length))        {          QccErrorAddMessage("(QccWAVWaveletShapeAdaptiveDWT1D): Error calling QccVectorCopy()");          goto QccError;        }    }    return_value = 0;  goto QccReturn; QccError:  return_value = 1; QccReturn:  QccVectorFree(temp_signal);  QccVectorFree(temp_mask);  QccVectorFree(subsequence);  return(return_value);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久婷婷国产综合国色天香| 99综合影院在线| 欧美一级xxx| 麻豆精品在线播放| 精品国产一区二区亚洲人成毛片| 久久爱www久久做| 久久久综合网站| 不卡的电影网站| 亚洲第一福利一区| 日韩情涩欧美日韩视频| 国产一区二区三区不卡在线观看| 国产欧美日韩亚州综合| 一本大道综合伊人精品热热| 日日摸夜夜添夜夜添亚洲女人| 日韩女优毛片在线| 9久草视频在线视频精品| 亚洲第一久久影院| 2023国产一二三区日本精品2022| av不卡免费电影| 五月激情综合网| 日本一区二区三区四区在线视频 | 国产欧美一区二区在线观看| 成人免费毛片高清视频| 亚洲sss视频在线视频| 久久久久久久久久久久电影| 日本久久精品电影| 国产一区二区精品久久91| 一区二区三区资源| 欧美一级高清片在线观看| 粉嫩在线一区二区三区视频| 午夜视频一区二区三区| 国产日本一区二区| 亚洲精品一线二线三线| 在线观看不卡视频| 国产成人鲁色资源国产91色综| 一级精品视频在线观看宜春院 | 日本成人中文字幕在线视频| 国产喷白浆一区二区三区| 欧美亚洲动漫精品| 国产麻豆精品95视频| 一区二区免费在线| 久久久91精品国产一区二区三区| 欧美色手机在线观看| 国产成人免费在线视频| 日韩电影在线免费| 亚洲欧美二区三区| 精品久久一二三区| 91精品国产一区二区| 99国产精品视频免费观看| 美女性感视频久久| 图片区小说区国产精品视频| 成人免费在线播放视频| 国产亚洲va综合人人澡精品 | 337p亚洲精品色噜噜噜| 色综合久久久久网| yourporn久久国产精品| 久久精品国产精品亚洲综合| 一区二区三区在线观看视频| 国产视频亚洲色图| 日韩免费观看高清完整版在线观看| 91视频在线看| 成人激情动漫在线观看| 韩国理伦片一区二区三区在线播放| 日韩av一区二区三区四区| 亚洲成人福利片| 亚洲成人激情社区| 亚洲伊人色欲综合网| 亚洲视频资源在线| 亚洲欧美日韩综合aⅴ视频| 国产精品卡一卡二| 欧美国产综合一区二区| 日本一区二区三区国色天香| 精品国产91九色蝌蚪| 精品日产卡一卡二卡麻豆| 欧美一区二视频| 日韩片之四级片| 日韩欧美激情一区| 久久综合九色综合97婷婷女人 | 宅男噜噜噜66一区二区66| 欧美视频一区二| 欧美日韩一区二区三区在线看| 欧美色图激情小说| 7777精品久久久大香线蕉| 69av一区二区三区| 欧美一级高清片在线观看| 欧美一区二区成人| 欧美mv和日韩mv的网站| 欧美精品一区二区在线观看| 欧美mv日韩mv国产网站| 国产日韩视频一区二区三区| 国产农村妇女毛片精品久久麻豆| 国产精品女主播在线观看| 国产精品成人免费精品自在线观看| 亚洲三级理论片| 亚洲成人精品在线观看| 奇米在线7777在线精品| 国产在线精品视频| 成人激情动漫在线观看| 欧美在线你懂得| 欧美一区二区三区啪啪| 久久综合五月天婷婷伊人| 国产精品萝li| 亚洲.国产.中文慕字在线| 奇米亚洲午夜久久精品| 国产成人精品亚洲日本在线桃色 | 午夜精品福利视频网站| 久久精品99久久久| 国产91精品露脸国语对白| 欧日韩精品视频| 欧美大尺度电影在线| 国产精品国产自产拍高清av王其| 亚洲二区视频在线| 韩国v欧美v亚洲v日本v| 色综合色综合色综合| 日韩限制级电影在线观看| 国产欧美精品国产国产专区| 亚洲一区二区三区四区在线观看| 久久99久久久久久久久久久| 国产不卡视频在线播放| 欧美日韩在线精品一区二区三区激情| 欧美一区二区视频在线观看| 欧美国产激情一区二区三区蜜月 | 国产精品久久久久久久蜜臀 | 美女一区二区在线观看| 97精品电影院| 精品国产一区二区三区久久影院| 亚洲精品久久7777| 国产美女在线精品| 欧美精品精品一区| 亚洲欧洲精品成人久久奇米网| 蜜桃视频第一区免费观看| 97精品国产露脸对白| 久久麻豆一区二区| 日韩电影免费在线观看网站| 91美女片黄在线观看| 国产日韩欧美a| 蜜臀99久久精品久久久久久软件| 色综合久久中文综合久久牛| 久久久久国产精品人| 日韩国产精品久久久| 在线精品视频小说1| 国产精品久久久久一区| 麻豆精品一区二区av白丝在线| 91福利社在线观看| 国产视频一区不卡| 精品在线播放午夜| 日韩欧美自拍偷拍| 视频一区视频二区中文字幕| 91麻豆视频网站| 亚洲欧美综合色| 成人免费黄色在线| 久久久777精品电影网影网| 久久精品久久99精品久久| 91精品在线观看入口| 亚洲福利视频三区| 在线一区二区三区做爰视频网站| 国产精品三级电影| 国产成人一区在线| 国产无遮挡一区二区三区毛片日本| 久久精品噜噜噜成人av农村| 欧美一级二级三级蜜桃| 日本亚洲视频在线| 欧美一区二区三区在线看| 亚洲第一狼人社区| 欧美精品第一页| 日本成人在线网站| 日韩美一区二区三区| 久久国产精品免费| 欧美tickling挠脚心丨vk| 蜜芽一区二区三区| 日韩欧美国产成人一区二区| 精品一区二区三区免费播放| 精品久久久久久无| 国产呦萝稀缺另类资源| 久久久久久久电影| www.亚洲激情.com| 亚洲女爱视频在线| 欧美日韩精品一区二区三区蜜桃| 天堂在线亚洲视频| 日韩免费电影网站| 国产91在线|亚洲| 自拍视频在线观看一区二区| 色悠悠亚洲一区二区| 五月天丁香久久| 精品福利视频一区二区三区| 国产露脸91国语对白| 国产精品国产自产拍高清av| 一本大道久久精品懂色aⅴ| 午夜精品123| 久久精品欧美一区二区三区麻豆| 成人午夜在线视频| 亚洲一区自拍偷拍| 日韩一级二级三级| 国产精品123区| 亚洲激情av在线| 欧美一区二区三区四区久久| 国产精品白丝jk黑袜喷水| 亚洲欧美另类小说视频| 欧美高清激情brazzers| 久久成人av少妇免费|