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

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

?? wavelet.c

?? QccPack implementation in C
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* *  * 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"int QccWAVInit(){  return(0);}int QccWAVWaveletInitialize(QccWAVWavelet *wavelet){  if (wavelet == NULL)    return(0);  wavelet->implementation = -1;  wavelet->boundary = -1;  QccWAVFilterBankInitialize(&wavelet->filter_bank);  QccWAVLiftingSchemeInitialize(&wavelet->lifting_scheme);  return(0);}int QccWAVWaveletAlloc(QccWAVWavelet *wavelet){  if (wavelet == NULL)    return(0);  if (QccWAVFilterBankAlloc(&wavelet->filter_bank))    {      QccErrorAddMessage("(QccWAVWaveletAlloc): Error calling QccWAVFilterBankAlloc()");      return(1);    }  return(0);}void QccWAVWaveletFree(QccWAVWavelet *wavelet){  if (wavelet == NULL)    return;  QccWAVFilterBankFree(&wavelet->filter_bank);}void QccWAVWaveletPrint(const QccWAVWavelet *wavelet){  if (wavelet == NULL)    return;  printf("---------------------------------------------------------------------------\n\n");  printf("  Wavelet\n");  switch (wavelet->implementation)    {    case QCCWAVWAVELET_IMPLEMENTATION_FILTERBANK:      printf("    Implementation: filter bank\n");      printf("    Boundary: ");      switch (wavelet->boundary)        {        case QCCWAVWAVELET_BOUNDARY_SYMMETRIC_EXTENSION:          printf("symmetric\n");          break;        case QCCWAVWAVELET_BOUNDARY_PERIODIC_EXTENSION:          printf("periodic\n");          break;        }      printf("\n    Filter Bank:\n");      QccWAVFilterBankPrint(&wavelet->filter_bank);      break;    case QCCWAVWAVELET_IMPLEMENTATION_LIFTED:      break;    }}int QccWAVWaveletCreate(QccWAVWavelet *wavelet,                        const QccString wavelet_filename,                        const QccString boundary){  FILE *infile;  QccString magic_number;  QccString wavelet_filename1;  if (wavelet == NULL)    return(0);  if (wavelet_filename == NULL)    return(0);  if (boundary == NULL)    return(0);  QccStringCopy(wavelet_filename1, wavelet_filename);  if (QccSetEnv(QCCWAVWAVELET_PATH_ENV,                QCCMAKESTRING(QCCPACK_WAVELET_PATH_DEFAULT)))    {      QccErrorAddMessage("(QccWAVInit): Error calling QccSetEnv()");      QccErrorExit();    }  if ((infile =        QccFilePathSearchOpenRead(wavelet_filename1,                                  QCCWAVWAVELET_PATH_ENV,                                 QCCMAKESTRING(QCCPACK_WAVELET_PATH_DEFAULT)))      == NULL)    {      QccErrorAddMessage("(QccWAVWaveletCreate): Error calling QccFilePathSearchOpenRead()");      return(1);    }    if (QccFileReadMagicNumber(infile, magic_number,                             NULL, NULL))    {      QccErrorAddMessage("(QccWAVWaveletCreate): Error calling QccFileReadMagicNumber()");      return(1);    }    QccFileClose(infile);  if (!strncmp(magic_number, QCCWAVFILTERBANK_MAGICNUM, 3))    wavelet->implementation =  QCCWAVWAVELET_IMPLEMENTATION_FILTERBANK;  else    if (!strncmp(magic_number, QCCWAVLIFTINGSCHEME_MAGICNUM, 3))      wavelet->implementation =  QCCWAVWAVELET_IMPLEMENTATION_LIFTED       ;    else      {        QccErrorAddMessage("(QccWAVWaveletCreate): Unrecognized wavelet implementation");        return(1);      }  if (!strncmp(boundary, "periodic", 3))    wavelet->boundary = QCCWAVWAVELET_BOUNDARY_PERIODIC_EXTENSION;  else    if (!strncmp(boundary, "symmetric", 3))      wavelet->boundary = QCCWAVWAVELET_BOUNDARY_SYMMETRIC_EXTENSION;    else      if (!strncmp(boundary, "boundary", 3))        wavelet->boundary = QCCWAVWAVELET_BOUNDARY_BOUNDARY_WAVELET;      else        {          QccErrorAddMessage("(QccWAVWaveletCreate): Undefined boundary");          return(1);        }  switch (wavelet->implementation)    {    case QCCWAVWAVELET_IMPLEMENTATION_FILTERBANK:      QccStringCopy(wavelet->filter_bank.filename, wavelet_filename1);      if (QccWAVFilterBankRead(&wavelet->filter_bank))        {          QccErrorAddMessage("(QccWAVWaveletCreate): Error calling QccWAVFilterBankRead()");          return(1);        }      break;    case QCCWAVWAVELET_IMPLEMENTATION_LIFTED:      QccStringCopy(wavelet->lifting_scheme.filename, wavelet_filename1);      if (QccWAVLiftingSchemeRead(&wavelet->lifting_scheme))        {          QccErrorAddMessage("(QccWAVWaveletCreate): Error calling QccWAVLiftingSchemeRead()");          return(1);        }      break;    default:      QccErrorAddMessage("(QccWAVWaveletCreate): Undefined wavelet implementation");      return(1);    }  return(0);}int QccWAVWaveletBiorthogonal(const QccWAVWavelet *wavelet){  switch (wavelet->implementation)    {    case QCCWAVWAVELET_IMPLEMENTATION_FILTERBANK:      return(QccWAVFilterBankBiorthogonal(&wavelet->filter_bank));      break;    case QCCWAVWAVELET_IMPLEMENTATION_LIFTED:      return(QccWAVLiftingSchemeBiorthogonal(&wavelet->lifting_scheme));      break;    default:      return(0);    }  return(0);}int QccWAVWaveletAnalysis1D(const QccVector input_signal,                            QccVector output_signal,                            int signal_length,                            int phase,                            const QccWAVWavelet *wavelet){  int return_value;  if (input_signal == NULL)    return(0);  if (output_signal == NULL)    return(0);  if (wavelet == NULL)    return(0);  QccVectorZero(output_signal, signal_length);  switch (wavelet->implementation)    {    case QCCWAVWAVELET_IMPLEMENTATION_FILTERBANK:      if (QccWAVFilterBankAnalysis(input_signal,                                   output_signal,                                   signal_length,                                   phase,                                   &wavelet->filter_bank,                                   wavelet->boundary))        {          QccErrorAddMessage("(QccWAVWaveletAnalysis1D): Error calling QccWAVFilterBankAnalysis()");          goto QccError;        }      break;    case QCCWAVWAVELET_IMPLEMENTATION_LIFTED:      if (QccWAVLiftingAnalysis(input_signal,                                output_signal,                                signal_length,                                phase,                                &wavelet->lifting_scheme,                                wavelet->boundary))        {          QccErrorAddMessage("(QccWAVWaveletAnalysis1D): Error calling QccWAVLiftingAnalysis()");          goto QccError;        }      break;    default:      QccErrorAddMessage("(QccWAVWaveletAnalysis1D): Undefined implementation (%d)",                         wavelet->implementation);      goto QccError;    }  return_value = 0;  goto QccReturn; QccError:  return_value = 1; QccReturn:  return(return_value);}int QccWAVWaveletSynthesis1D(const QccVector input_signal,                             QccVector output_signal,                             int signal_length,                             int phase,                             const QccWAVWavelet *wavelet){  int return_value;  if (input_signal == NULL)    return(0);  if (output_signal == NULL)    return(0);  if (wavelet == NULL)    return(0);  QccVectorZero(output_signal, signal_length);  switch (wavelet->implementation)    {    case QCCWAVWAVELET_IMPLEMENTATION_FILTERBANK:      if (QccWAVFilterBankSynthesis(input_signal,                                    output_signal,                                    signal_length,                                    phase,                                    &wavelet->filter_bank,                                    wavelet->boundary))        {          QccErrorAddMessage("(QccWAVWaveletSynthesis1D): Error calling QccWAVFilterBankSynthesis()");          goto QccError;        }      break;    case QCCWAVWAVELET_IMPLEMENTATION_LIFTED:      if (QccWAVLiftingSynthesis(input_signal,                                 output_signal,                                 signal_length,                                 phase,                                 &wavelet->lifting_scheme,                                 wavelet->boundary))        {          QccErrorAddMessage("(QccWAVWaveletSynthesis1D): Error calling QccWAVLiftingSynthesis()");          goto QccError;        }      break;    default:      QccErrorAddMessage("(QccWAVWaveletSynthesis1D): Undefined implementation (%d)",                         wavelet->implementation);      goto QccError;    }  return_value = 0;  goto QccReturn; QccError:  return_value = 1; QccReturn:  return(return_value);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色88888久久久久久影院按摩| 婷婷成人综合网| 2020日本不卡一区二区视频| 欧美日韩中文国产| 欧美午夜片在线观看| 欧美亚洲一区二区在线| 色视频欧美一区二区三区| 色综合亚洲欧洲| 色综合激情久久| 色婷婷综合激情| 欧美视频一区二区三区在线观看| 在线观看国产日韩| 欧美久久婷婷综合色| 日韩一区二区在线看| 久久久不卡网国产精品二区| 国产欧美日韩亚州综合| 亚洲三级电影网站| 一区二区三区四区不卡在线 | 日韩精品一区第一页| 日韩精品三区四区| 精品无人码麻豆乱码1区2区 | 精品一区二区三区香蕉蜜桃| 韩国成人精品a∨在线观看| 福利视频网站一区二区三区| gogogo免费视频观看亚洲一| 欧美亚男人的天堂| 精品欧美黑人一区二区三区| 国产精品麻豆99久久久久久| 亚洲国产成人tv| 国产中文一区二区三区| 91首页免费视频| 91精品在线免费观看| 国产精品三级av在线播放| 亚洲综合网站在线观看| 国产一区在线视频| 在线观看不卡一区| 2023国产精华国产精品| 亚洲欧洲日韩女同| 蜜桃免费网站一区二区三区| 99精品久久免费看蜜臀剧情介绍| 欧美欧美午夜aⅴ在线观看| 精品99久久久久久| 亚洲成av人片一区二区三区| 国产一区二区三区免费在线观看| 欧美亚州韩日在线看免费版国语版| 亚洲精品在线免费播放| 亚洲一区二区精品视频| 成人激情动漫在线观看| 日韩一区二区免费在线观看| 亚洲裸体xxx| 国产精品一区二区三区99| 欧美亚洲另类激情小说| 国产清纯美女被跳蛋高潮一区二区久久w| 亚洲手机成人高清视频| 风间由美一区二区三区在线观看| 日韩一区二区在线观看视频| 香蕉久久夜色精品国产使用方法 | 色婷婷av一区二区三区大白胸| 亚洲精品在线免费观看视频| 日本午夜一区二区| 欧美精品色一区二区三区| 久久久国产精品不卡| 精品一区二区影视| 欧美电影免费观看高清完整版在 | 亚洲欧美自拍偷拍色图| 国产精品自拍网站| 精品国产91乱码一区二区三区| 亚洲gay无套男同| 欧美怡红院视频| 亚洲六月丁香色婷婷综合久久| caoporn国产精品| 国产精品久久毛片av大全日韩| 国产精品综合一区二区| 国产日韩欧美精品在线| 国产精品18久久久久久久久| 欧美mv和日韩mv国产网站| 久久精品国产99久久6| 欧美一区二区精品| 久久99国产精品尤物| 精品国产在天天线2019| 极品少妇一区二区| 国产欧美一区二区精品婷婷| 国产精品资源在线观看| 中文字幕乱码亚洲精品一区| 99久久免费国产| 亚洲精品欧美在线| 欧美美女一区二区在线观看| 蜜臀av亚洲一区中文字幕| 精品美女在线播放| 成人免费看黄yyy456| 亚洲视频你懂的| 欧美日本国产视频| 激情深爱一区二区| 欧美高清在线视频| 欧美综合在线视频| 麻豆国产精品官网| 久久久久亚洲蜜桃| 色欲综合视频天天天| 天堂蜜桃91精品| 精品成人免费观看| 色婷婷av久久久久久久| 日韩av网站免费在线| 久久久国际精品| 在线观看亚洲成人| 麻豆精品国产91久久久久久| 欧美高清一级片在线观看| 欧美体内she精视频| 久久99精品久久久久| 亚洲欧美一区二区三区极速播放| 欧美高清激情brazzers| 国产伦理精品不卡| 亚洲一区二区三区免费视频| 久久九九久久九九| 欧美日韩国产在线观看| 国产伦精品一区二区三区免费迷 | 久久99精品国产麻豆婷婷| 国产精品国产馆在线真实露脸 | 国产成人午夜视频| 亚洲一二三区视频在线观看| 日韩免费观看2025年上映的电影| av电影一区二区| 美女诱惑一区二区| 一区二区三区四区中文字幕| 久久精品亚洲国产奇米99| 欧美三级视频在线观看| 成人黄色免费短视频| 免费在线观看一区| 一区二区三区四区五区视频在线观看 | 国产福利一区在线| 日韩高清一级片| 亚洲另类中文字| 国产精品人成在线观看免费| 日韩视频永久免费| 欧美高清性hdvideosex| 日本乱人伦一区| jizzjizzjizz欧美| 成人国产精品免费观看视频| 久久99精品久久久久久国产越南 | 国产福利一区二区| 久久精品久久99精品久久| 性做久久久久久| 亚洲国产精品一区二区www| 中文字幕中文字幕在线一区 | 日韩国产欧美在线视频| 亚洲国产你懂的| 亚洲女同一区二区| 亚洲视频小说图片| 亚洲婷婷国产精品电影人久久| 亚洲国产精品高清| 亚洲国产激情av| 国产欧美视频一区二区三区| 日韩理论电影院| 国产精品美女久久久久久久| 国产欧美一区二区精品秋霞影院| 久久亚洲精品小早川怜子| 久久久久国产免费免费| 久久久高清一区二区三区| 国产欧美一区二区精品忘忧草 | 精品日韩在线观看| 精品久久久久99| 国产婷婷色一区二区三区| 国产亚洲一区字幕| 国产精品美女久久久久高潮 | 在线看国产日韩| 欧美日精品一区视频| 欧美精品日韩精品| 欧美va亚洲va| 国产精品无人区| 亚洲综合丁香婷婷六月香| 午夜视频在线观看一区二区| 日韩黄色一级片| 国内精品伊人久久久久av影院 | 亚洲国产一区视频| 日韩精品一二三| 韩日精品视频一区| av一二三不卡影片| 欧美日韩视频专区在线播放| 日韩欧美成人一区| 综合久久给合久久狠狠狠97色| 亚洲一区二区三区免费视频| 老色鬼精品视频在线观看播放| 国产精品一二三区在线| 色综合久久久久久久| 4438成人网| 国产精品不卡在线观看| 日日欢夜夜爽一区| 成人黄色777网| 久久综合精品国产一区二区三区 | 久久中文娱乐网| 亚洲美女在线一区| 久久99最新地址| 91黄色小视频| 国产视频一区二区三区在线观看| 亚洲人成人一区二区在线观看 | 成人高清免费观看| 欧美二区三区91| 国产精品网曝门| 麻豆国产精品777777在线| 欧美在线你懂的| 国产精品久久久久久久午夜片|