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

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

?? tce.c

?? QccPack implementation in C
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
        if (QccWAVSubbandPyramidSubbandSize(image_subband_pyramid,
                                            subband,
                                            &subband_num_rows,
                                            &subband_num_cols))
            {
              QccErrorAddMessage("(QccWAVtceDecodeInverseDWT): Error calling QccWAVSubbandPyramidSubbandSize()");
              return(1);
            }
          if (QccWAVSubbandPyramidSubbandOffsets(image_subband_pyramid,
                                                 subband,
                                                 &subband_origin_row,
                                                 &subband_origin_col))
            {
              QccErrorAddMessage("(QccWAVtceDecodeInverseDWT): Error calling QccWAVSubbandPyramidSubbandOffsets()");
              return(1);         
            } 
          
          for (row = 0; row < subband_num_rows; row++)
            for (col = 0; col < subband_num_cols; col++)
              {
                if (sign_array[subband_origin_row + row]
                    [subband_origin_col + col])
                  image_subband_pyramid->matrix
                    [subband_origin_row + row][subband_origin_col + col] *= -1;
                image_subband_pyramid->matrix
                  [subband_origin_row + row][subband_origin_col + col] *=
                  stepsize;
              }
      }
  else
    {
      for (row = 0; row < image_subband_pyramid->num_rows; row++)
        for (col = 0; col < image_subband_pyramid->num_cols; col++)
          if (sign_array[row][col])
            image_subband_pyramid->matrix[row][col] *= -1;  
    }
  
  if (QccWAVSubbandPyramidInverseDWT(image_subband_pyramid,wavelet))
    {
      QccErrorAddMessage("(QccWAVtceDecodeInverseDWT): Error calling QccWAVSubbandPyramidInverseDWT()");
      return(1);
    }
  
  if (QccWAVSubbandPyramidAddMean(image_subband_pyramid, image_mean))
    {
      QccErrorAddMessage("(QccWAVtceDecodeInverseDWT): Error calling QccWAVSubbandPyramidAddMean()");
      return(1);
    }
  
  if (QccMatrixCopy(image->image,
                    image_subband_pyramid->matrix,
                    image->num_rows, image->num_cols))
    {
      QccErrorAddMessage("(QccWAVtceDecodeInverseDWT): Error calling QccMatrixCopy()");
      return(1);
    }

  if (QccIMGImageComponentSetMaxMin(image))
    {
      QccErrorAddMessage("(QccWAVtceDecodeInverseDWT): Error calling QccIMGImageComponentSetMaxMin()");
      return(1);
    }

  return(0);
}


int QccWAVtceDecodeHeader(QccBitBuffer *input_buffer, 
                          int *num_levels, 
                          int *num_rows,
                          int *num_cols,
                          double *image_mean,
                          double *stepsize,
                          int *max_coefficient_bits)
{
  int return_value;
  unsigned char ch;
  
  if (QccBitBufferGetChar(input_buffer, &ch))
    {
      QccErrorAddMessage("(QccWAVtceDecodeHeader): Error calling QccBitBufferPuChar()");
      goto Error;
    }
  *num_levels = (int)ch;
  
  if (QccBitBufferGetInt(input_buffer, num_rows))
    {
      QccErrorAddMessage("(QccWAVtceDecodeHeader): Error calling QccBitBufferGetInt()");
      goto Error;
    }
  
  if (QccBitBufferGetInt(input_buffer, num_cols))
    {
      QccErrorAddMessage("(QccWAVtceDecodeHeader): Error calling QccBitBufferGetInt()");
      goto Error;
    }
  
  if (QccBitBufferGetDouble(input_buffer, image_mean))
    {
      QccErrorAddMessage("(QccWAVtceDecodeHeader): Error calling QccBitBufferGetDouble()");
      goto Error;
    }
  if (QccBitBufferGetDouble(input_buffer, stepsize))
    {
      QccErrorAddMessage("(QccWAVtceDecodeHeader): Error calling QccBitBufferGetDouble()");
      goto Error;
    }
  
  if (QccBitBufferGetInt(input_buffer, max_coefficient_bits))
    {
      QccErrorAddMessage("(QccWAVtceDecodeHeader): Error calling QccBitBufferGetChar()");
      goto Error;
    }
  
  return_value = 0;
  goto Return;
 Error:
  return_value = 1;
 Return:
  return(return_value);
}


int QccWAVtceDecode(QccBitBuffer *input_buffer,
                    QccIMGImageComponent *image,
                    int num_levels,
                    const QccWAVWavelet *wavelet,
                    double image_mean,
                    double stepsize,
                    int max_coefficient_bits,
                    int target_bit_cnt)
{
  int return_value;
  QccENTArithmeticModel *model = NULL;
  QccWAVSubbandPyramid image_subband_pyramid;
  char **sign_array = NULL;
  char **significance_map = NULL;
  double **p_estimation = NULL;
  int *max_bits = NULL;
  double *subband_significance = NULL;
  double threshold;
  int row, col;
  int num_symbols[1] = { 2 };
  int num_subbands;
  QccWAVWavelet lazy_wavelet_transform;
  int bitplane_cnt = 0;
  
  if (image == NULL)
    return(0);
  if (input_buffer == NULL)
    return(0);
  if (wavelet == NULL)
    return(0);
  
  num_subbands = QccWAVSubbandPyramidNumLevelsToNumSubbands(num_levels);
  if ((max_bits = (int *)malloc(sizeof(int) * num_subbands)) == NULL)
    {
      QccErrorAddMessage("(QccWAVtceDecode): Error allocating memory");
      goto Error;
    }
  
  if (QccWAVtceDecodeBitPlaneInfo(input_buffer,
                                  num_subbands,
                                  max_bits,
                                  max_coefficient_bits))
    {
      QccErrorAddMessage("(QccWAVtceDecode): Error calling QccWAVtceEncodeBitPlaneInfo()");
      goto Error;
    }
  
  QccWAVSubbandPyramidInitialize(&image_subband_pyramid);
  QccWAVWaveletInitialize(&lazy_wavelet_transform);
  
  image_subband_pyramid.num_levels = num_levels;
  image_subband_pyramid.num_rows = image->num_rows;
  image_subband_pyramid.num_cols = image->num_cols;
  if (QccWAVSubbandPyramidAlloc(&image_subband_pyramid))
    {
      QccErrorAddMessage("(QccWAVtceDecode): Error calling QccWAVSubbandPyramidAlloc()");
      goto Error;
    }
  
  if ((sign_array = (char **)malloc(sizeof(char *) * image->num_rows)) == NULL)
    {
      QccErrorAddMessage("(QccWAVtceDecode): Error allocating memory");
      goto Error;
    }
  for (row = 0; row < image->num_rows; row++)
    if ((sign_array[row] =
         (char *)malloc(sizeof(char) * image->num_cols)) == NULL)
      {
        QccErrorAddMessage("(QccWAVtceDecode): Error allocating memory");
        goto Error;
      }

  if ((significance_map =
       (char **)malloc(sizeof(char *) * image->num_rows)) == NULL)
    {
      QccErrorAddMessage("(QccWAVtceDecode): Error allocating memory");
      goto Error;
    }
  for (row = 0; row < image->num_rows; row++)
    if ((significance_map[row] =
         (char *)malloc(sizeof(char) * image->num_cols)) == NULL)
      {
        QccErrorAddMessage("(QccWAVtceDecode): Error allocating memory");
        goto Error;
      }

  for (row = 0; row < image->num_rows; row++)
    for (col = 0; col < image->num_cols; col++)
      {
        image_subband_pyramid.matrix[row][col] = 0.0;
        sign_array[row][col] = 0;
        significance_map[row][col] = QCCTCE_Z;
      }

  if ((p_estimation =
       (double **)malloc(sizeof(double *) * image->num_rows)) == NULL)
    {   
      QccErrorAddMessage("(QccWAVtceEncode): Error allocating memory");
      goto Error;
    }
  for (row = 0; row < image->num_rows; row++)
    if ((p_estimation[row] =
         (double *)malloc(sizeof(double) * image->num_cols)) == NULL)
      {
        QccErrorAddMessage("(QccWAVtceEncode): Error allocating memory");
        goto Error;
      }
  
  for (row = 0; row < image->num_rows; row++)
    for (col = 0; col < image->num_cols; col++)
      p_estimation[row][col] = 0.0000001;
  
  if ((subband_significance =
       (double*)calloc(num_subbands,sizeof(double))) == NULL)
    {
      QccErrorAddMessage("(QccWAVtceDecode): Error allocating memory");
      goto Error;
    }
  
  if ((model = QccENTArithmeticDecodeStart(input_buffer,
                                           num_symbols,
                                           1,
                                           NULL,
                                           target_bit_cnt)) == NULL)
    {
      QccErrorAddMessage("(QccWAVtceDecode): Error calling QccENTArithmeticDecodeStart()");
      goto Error;
    }
  
  QccENTArithmeticSetModelAdaption(model, QCCENT_NONADAPTIVE);    
  threshold = pow((double)2, (double)max_coefficient_bits); 
  
  if (stepsize <= 0)
    while (1)
      {
        return_value = QccWAVtceNZNPass(&image_subband_pyramid,    
                                        significance_map,
                                        sign_array,
                                        threshold,
                                        p_estimation,
                                        subband_significance,
                                        model,
                                        input_buffer,
                                        max_bits);
        if (return_value == 1)
          {
            QccErrorAddMessage("(QccWAVtceDecode): Error calling QccWAVtceNZNPass()");
            goto Error;
          }
        else
          {
            if (return_value == 2)
              goto Finished;
          }
        
        return_value = QccWAVtceIPPass(&image_subband_pyramid,    
                                       significance_map,
                                       sign_array,
                                       threshold,
                                       p_estimation,
                                       subband_significance,
                                       model,
                                       input_buffer,
                                       max_bits);
        
        if (return_value == 1)
          {
            QccErrorAddMessage("(QccWAVtceDecode): Error calling QccWAVtceIPPass()");
            goto Error;
          }
        else
          {
            if (return_value == 2)
              goto Finished;
          }
        
        return_value = QccWAVtceSPass(&image_subband_pyramid,    
                                      significance_map,
                                      threshold,
                                      model,
                                      input_buffer,
                                      max_bits);
        if (return_value == 1)
          {
            QccErrorAddMessage("(QccWAVtceDecode): Error calling QccWAVtceSPass()");
            goto Error;
          }
        else
          {
            if (return_value == 2)
              goto Finished;
          }
        
        bitplane_cnt++;
        threshold /= 2.0;
      }
  else
    while (threshold > 0.75)
      {
        return_value = QccWAVtceNZNPass(&image_subband_pyramid,    
                                        significance_map,
                                        sign_array,
                                        threshold,
                                        p_estimation,
                                        subband_significance,
                                        model,
                                        input_buffer,
                                        max_bits);
        if (return_value == 1)
          {
            QccErrorAddMessage("(QccWAVtceDecode): Error calling QccWAVtceNZNPass()");
            goto Error;
          }
        else
          {
            if (return_value == 2)
              goto Finished;
          }
        
        return_value = QccWAVtceIPPass(&image_subband_pyramid,    
                                       significance_map,
                                       sign_array,
                                       threshold,
                                       p_estimation,
                                       subband_significance,
                                       model,
                                       input_buffer,
                                       max_bits);
        
        if (return_value == 1)
          {
            QccErrorAddMessage("(QccWAVtceDecode): Error calling QccWAVtceIPPass()");
            goto Error;
          }
        else
          {
            if (return_value == 2)
              goto Finished;
          }
        
        return_value = QccWAVtceSPass(&image_subband_pyramid,    
                                      significance_map,
                                      threshold,
                                      model,
                                      input_buffer,
                                      max_bits);
        if (return_value == 1)
          {
            QccErrorAddMessage("(QccWAVtceDecode): Error calling QccWAVtceSPass()");
            goto Error;
          }
       

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色欲色欲www在线观看| 欧美无砖砖区免费| 色综合中文字幕| 欧美丝袜丝nylons| 精品日韩在线一区| 中文字幕亚洲精品在线观看| 亚洲自拍偷拍麻豆| 韩国三级中文字幕hd久久精品| 99久久伊人久久99| 欧美一级淫片007| 中文在线一区二区 | 成人aa视频在线观看| 色综合视频在线观看| 日韩三级电影网址| 亚洲欧美激情小说另类| 精品亚洲aⅴ乱码一区二区三区| 高清国产一区二区| 欧美日韩国产一二三| 国产女主播一区| 亚洲va韩国va欧美va精品| 激情都市一区二区| 欧美专区在线观看一区| 久久综合九色综合欧美98| 亚洲精品精品亚洲| 国产一区二区精品久久91| 欧美体内she精视频| 国产三区在线成人av| 无码av免费一区二区三区试看 | 国产日韩欧美综合一区| 亚洲成人午夜影院| 成人在线综合网| 欧美一区三区四区| 亚洲精品高清在线观看| 国产成人综合网站| 日韩一区二区电影| 亚洲一级片在线观看| 成a人片亚洲日本久久| 精品伦理精品一区| 视频一区二区国产| 91蜜桃免费观看视频| 国产视频一区二区在线| 免费视频最近日韩| 欧美日韩精品三区| 亚洲人精品一区| 风流少妇一区二区| 26uuu精品一区二区在线观看| 午夜影院在线观看欧美| 91免费看片在线观看| 国产网红主播福利一区二区| 另类欧美日韩国产在线| 欧美日韩国产高清一区二区| 亚洲欧美日韩国产另类专区| 岛国av在线一区| 久久免费精品国产久精品久久久久| 天天免费综合色| 日本精品一区二区三区四区的功能| 欧美国产精品中文字幕| 国产一区不卡精品| 欧美一级片免费看| 日韩国产欧美在线观看| 欧美视频中文字幕| 一二三四区精品视频| 91美女在线视频| 亚洲另类中文字| 91在线观看高清| 中文字幕亚洲一区二区va在线| 成人性色生活片| 欧美国产精品中文字幕| 成人av网站在线观看免费| 中文字幕av在线一区二区三区| 国产成人免费网站| 久久九九久久九九| 国产成人综合精品三级| 国产欧美日韩卡一| 成人丝袜视频网| 国产精品激情偷乱一区二区∴| 国产999精品久久久久久绿帽| 国产性色一区二区| 国产一区二区精品久久| 亚洲国产精品精华液2区45| 成a人片国产精品| 亚洲色图在线播放| 欧美这里有精品| 亚洲18色成人| 日韩一区二区免费高清| 国产乱人伦精品一区二区在线观看| 亚洲精品一区二区三区在线观看 | 欧美激情一区三区| www.日韩在线| 亚洲色图欧洲色图婷婷| 91成人在线免费观看| 亚洲高清在线视频| 精品久久久久av影院| 国产福利91精品一区二区三区| 国产喷白浆一区二区三区| 97se狠狠狠综合亚洲狠狠| 亚洲综合色在线| 日韩欧美亚洲另类制服综合在线 | 国产精品毛片久久久久久| 91伊人久久大香线蕉| 一区二区三区 在线观看视频| 欧美日本在线播放| 久久国产夜色精品鲁鲁99| 国产调教视频一区| 在线国产电影不卡| 理论片日本一区| 久久精品视频网| 色先锋资源久久综合| 日韩高清在线不卡| 国产三级精品视频| 色8久久精品久久久久久蜜| 日韩综合小视频| 欧美国产一区二区| 777午夜精品视频在线播放| 国产福利视频一区二区三区| 亚洲在线视频免费观看| 久久亚洲一级片| 在线视频国产一区| 久久av中文字幕片| 亚洲女性喷水在线观看一区| 91精品国产福利| caoporn国产一区二区| 日本在线不卡视频| 国产精品久久久久三级| 欧美欧美午夜aⅴ在线观看| 国产成人午夜电影网| 午夜精品久久久| 国产精品毛片久久久久久| 欧美一区二区三区四区五区| 成人18视频在线播放| 麻豆传媒一区二区三区| 亚洲色图一区二区| 久久免费视频一区| 欧美顶级少妇做爰| www.激情成人| 精品午夜一区二区三区在线观看| 一区二区不卡在线播放| 久久精品亚洲精品国产欧美kt∨| 欧美少妇xxx| 波多野结衣亚洲| 国产在线麻豆精品观看| 亚洲一区二区影院| 亚洲国产精品国自产拍av| 日韩情涩欧美日韩视频| 欧美在线观看视频一区二区 | 亚洲免费在线视频| 精品国产91久久久久久久妲己| 色伊人久久综合中文字幕| 国产精品伊人色| 美女国产一区二区三区| 亚洲综合一二三区| 中文字幕亚洲电影| 国产夜色精品一区二区av| 日韩欧美一卡二卡| 欧美日韩国产一二三| 91久久精品一区二区三区| 丰满少妇在线播放bd日韩电影| 久久国产精品99精品国产| 亚洲一级在线观看| 一区二区三区波多野结衣在线观看| 国产蜜臀av在线一区二区三区| 日韩欧美在线网站| 欧美日本一区二区三区四区| 在线中文字幕一区二区| 91无套直看片红桃| voyeur盗摄精品| 成人中文字幕电影| 成人精品在线视频观看| 高清成人在线观看| 高清在线观看日韩| 懂色av一区二区三区免费观看 | 欧美激情在线一区二区三区| 精品99久久久久久| 26uuu精品一区二区在线观看| 日韩你懂的在线播放| 欧美一区二区三区在线| 91精品国产综合久久国产大片| 欧美精品tushy高清| 欧美日韩另类国产亚洲欧美一级| 欧洲一区二区三区免费视频| 色婷婷香蕉在线一区二区| av电影在线观看不卡| av男人天堂一区| 91美女视频网站| 91污在线观看| 欧美天堂一区二区三区| 欧美视频一二三区| 在线成人免费观看| 日韩一级片在线播放| 欧美成人女星排行榜| 欧美精品一区在线观看| 国产视频一区二区三区在线观看| 欧美国产成人在线| 最新不卡av在线| 亚洲激情校园春色| 亚洲五码中文字幕| 五月激情综合色| 久久国产精品99精品国产 | 亚洲人成影院在线观看| 一个色妞综合视频在线观看|