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

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

?? tce.c

?? QccPack implementation in C
?? C
?? 第 1 頁 / 共 5 頁
字號:
  
  if ((p2 = QccVectorAlloc(subband_num_cols)) == NULL)
    {
      QccErrorAddMessage("(QccWAVtceRevEst): Error calling QccVectorAlloc()");
      goto Error;
    }
  
  p1 = QccMathMax(QCCTCE_BOUNDARY_VALUE,
                  ((double)subband_significance[subband]) / 
                  (subband_num_rows*subband_num_cols)) *
    (1 + alpha_h) / (2 * alpha_v + 2 * alpha_h);

  for (col = 0; col < subband_num_cols; col++)
    p2[col] = p1;
  
  for (row = subband_num_rows - 1; row >= 0; row--)
    {
      p1 = p2[0]*(1 - alpha_v)/(1 + alpha_h);
      current_row = subband_origin_row + row;
      for (col = subband_num_cols - 1; col >= 0; col--)
        {       
          current_col = subband_origin_col + col;
          p_char = &(significance_map[current_row][current_col]);
          p[current_row][current_col] = alpha_h * p1 + alpha_v*p2[col];
          if (*p_char == QCCTCE_S)
            {
              p1 = alpha_h * p1 + filter_coef * QCCWAVTCE_REFINE_HOLDER;
              subband_significance[subband] += QCCWAVTCE_REFINE_HOLDER;
            }
          else
            {
              v = (*p_char == QCCTCE_S_NEW);
              p1 = alpha_h * p1 + filter_coef * v;
              subband_significance[subband] += v;
            }   
          p2[col] = p1 + alpha_v * p2[col];   
        }
      
      p3 = p2[0]*(1 - alpha_v)/(1 + alpha_h);
      for (col = 0; col < subband_num_cols; col++)
        {
          p_char = &(significance_map[current_row][subband_origin_col + col]);
          p2[col] = p2[col] + alpha_h * p3;
          if (*p_char == QCCTCE_S)
            p3 = alpha_h * p3 + filter_coef * QCCWAVTCE_REFINE_HOLDER;
          else
            {
              v = (*p_char == QCCTCE_S_NEW);
              p3 = alpha_h * p3 + filter_coef * v;
            }        
        }
    }
  
  return_value = 0;
  goto Return;
 Error:
  return_value = 1;
 Return:
  QccVectorFree(p2);
  return(return_value);
}


static int QccWAVUpdateNZNStatus(int subband_origin_row,
                                 int subband_origin_col,
                                 int subband_num_row,
                                 int subband_num_col,
                                 int row,
                                 int col,
                                 char** significance_map,
                                 int subband)
{
  //Updata neighbors
  int current_row, current_col;
  int shifted_row, shifted_col;
  current_row = subband_origin_row + row;
  current_col = subband_origin_col + col;
  
  if (row > 0)
    {  
      shifted_row = current_row - 1;
      shifted_col = current_col;
      if (significance_map[shifted_row][shifted_col] < QCCTCE_S)
        significance_map[shifted_row][shifted_col] = QCCTCE_NZN_NEW; 
      
      if (col > 0)
        {
          shifted_row = current_row - 1;
          shifted_col = current_col - 1;
          if (significance_map[shifted_row][shifted_col] < QCCTCE_S)
            significance_map[shifted_row][shifted_col] = QCCTCE_NZN_NEW;   
        }
      if (col < subband_num_col - 1)
        {
          shifted_row = current_row - 1;
          shifted_col = current_col + 1;
          if (significance_map[shifted_row][shifted_col] < QCCTCE_S)
            significance_map[shifted_row][shifted_col] = QCCTCE_NZN_NEW;   
        }
    }
  if (row < subband_num_row - 1)
    {
      shifted_row = current_row + 1;
      shifted_col = current_col;
      if (significance_map[shifted_row][shifted_col] < QCCTCE_S)
        significance_map[shifted_row][shifted_col] = QCCTCE_NZN_NEW;
      
      if (col > 0)
        {
          shifted_row = current_row + 1;
          shifted_col = current_col - 1;
          if (significance_map[shifted_row][shifted_col] < QCCTCE_S)
            significance_map[shifted_row][shifted_col] = QCCTCE_NZN_NEW;   
        }
      if (col < subband_num_col - 1)
        {
          shifted_row = current_row + 1;
          shifted_col = current_col + 1;
          if (significance_map[shifted_row][shifted_col] < QCCTCE_S)
            significance_map[shifted_row][shifted_col] = QCCTCE_NZN_NEW;   
        }
    }
  if (col > 0)
    {
      shifted_row = current_row;
      shifted_col = current_col - 1;  
      if (significance_map[shifted_row][shifted_col] < QCCTCE_S)
        significance_map[shifted_row][shifted_col] = QCCTCE_NZN_NEW;
      
    }
  if (col < subband_num_col - 1)
    {
      shifted_row = current_row;
      shifted_col = current_col + 1;
      if (significance_map[shifted_row][shifted_col] < QCCTCE_S)
        significance_map[shifted_row][shifted_col] = QCCTCE_NZN_NEW;
    }

  return(0);
}


static int QccWAVtceIPBand(QccWAVSubbandPyramid *coefficients,
                           char **significance_map,
                           char **sign_array,
                           double **p_estimation,
                           double *subband_significance,
                           int subband,
                           double threshold,
                           QccENTArithmeticModel *model,
                           QccBitBuffer *buffer)
{
  
  int return_value;
  int subband_origin_row;
  int subband_origin_col;
  int subband_num_rows;
  int subband_num_cols;
  int row, col;
  int current_row, current_col;
  double p1;
  double p3;
  double p;
  double p_forward;
  double p_parent;
  QccVector p2 = NULL;
  int parent_subband;   
  double scale;
  double parent_density;
  double child_density; 
  int v;
  int symbol;
  double p_lowerbound = 0;
  double weight[2];
  double filter_coef;
  double increment;
  char *p_char;
  double alpha_v, alpha_h;
  
  if (subband % 3==1)
    { 
      //LH horizental more important
      alpha_h = QCCWAVTCE_ALPHA_HIGH;
      alpha_v = QCCWAVTCE_ALPHA_LOW;
    }
  else
    {
      if (subband % 3==2)
        {
          alpha_h = QCCWAVTCE_ALPHA_LOW;
          alpha_v = QCCWAVTCE_ALPHA_HIGH;   
        }
      else
        {
          alpha_h = QCCWAVTCE_ALPHA;
          alpha_v = QCCWAVTCE_ALPHA;
        }
    }
  
  // initialization all the constants
  filter_coef = (1 - alpha_h)*(1 - alpha_v) / (2*alpha_h + 2*alpha_v);
  weight[0] = (1 - alpha_h) * (1 - alpha_v)/((1 + alpha_h)*(1 + alpha_v));
  weight[1] = (2*alpha_h + 2*alpha_v) / ((1 + alpha_h)*(1 + alpha_v));
  
  if (QccWAVSubbandPyramidSubbandSize(coefficients,
                                      subband,
                                      &subband_num_rows,
                                      &subband_num_cols))
    {
      QccErrorAddMessage("(QccWAVtceIPBand): Error calling QccWAVSubbandPyramidSubbandSize()");
      goto Error;
    }
  if (QccWAVSubbandPyramidSubbandOffsets(coefficients,
                                         subband,
                                         &subband_origin_row,
                                         &subband_origin_col))
    {
      QccErrorAddMessage("(QccWAVtceIPBand): Error calling QccWAVSubbandPyramidSubbandOffsets()");
      goto Error;
    }
  
  if ((p2 = QccVectorAlloc(subband_num_cols)) == NULL)
    {
      QccErrorAddMessage("(QccWAVtceIPBand): Error calling QccVectorAlloc()");
      goto Error;
    }
  
  child_density =
    subband_significance[subband] / (subband_num_rows * subband_num_cols);
  p_lowerbound = 1.0 / (subband_num_rows * subband_num_cols);
  
  if (subband <= 3)
    {
      parent_subband = 0;
      parent_density =
        subband_significance[0] / (subband_num_rows * subband_num_cols);
    }
  else
    {
      parent_subband = subband - 3;
      parent_density =
        subband_significance[parent_subband] /
        (subband_num_rows * subband_num_cols) * 4;
    }
  
  for (col = 0; col < subband_num_cols; col++)
    p2[col] = p_estimation[subband_origin_row][subband_origin_col + col] *
      2 * (1 + alpha_h) / (2*alpha_v + 2*alpha_h);
  
  scale =
    QccMathMax(child_density, p_lowerbound) /
    QccMathMax(parent_density, p_lowerbound); 
  increment =
    1.0 / (subband_num_rows * subband_num_cols) /
    QccMathMax(parent_density, p_lowerbound);
  
  for (row = 0; row < subband_num_rows; row++)
    {    
      p1 = p2[0]*(1 - alpha_v)/(1 + alpha_h);
      current_row = subband_origin_row + row;
      for (col = 0; col < subband_num_cols; col++)
        {   
          current_col = subband_origin_col + col;
          p_char = &(significance_map[current_row][current_col]);
          p_forward = alpha_h*p1 + alpha_v*p2[col];
          
          if (*p_char < QCCTCE_S)
            {      
              p = p_forward + p_estimation[current_row][current_col];
              if (subband != 0)
                { 
                  if (subband <= 3)
                    p_parent = p_estimation[row][col];
                  else
                    p_parent = p_estimation[current_row/2][current_col/2];
                  if (p < QCCWAVTCE_PREDICT_THRESHOLD)
                    {          
                      p_parent = QccMathMin(p_parent*scale, 0.8);
                      p =
                        p * QCCWAVTCE_CURRENT_SCALE +
                        QCCWAVTCE_PARENT_SCALE * p_parent;
                    }
                }
              
              if (QccWAVtceUpdateModel(model, p))
                {
                  QccErrorAddMessage("(QccWAVtceIPBand): Error calling QccWAVtceUpdateModel()");
                  return_value = 1;
                  goto Error;
                }
              if (buffer->type == QCCBITBUFFER_OUTPUT)
                {
                  if (coefficients->matrix[current_row][current_col] >=
                      threshold)
                    {
                      symbol = 1;
                      coefficients->matrix[current_row][current_col] -=
                        threshold;
                    }
                  else
                    symbol = 0;
                  return_value =
                    QccENTArithmeticEncode(&symbol, 1,model, buffer);
                }
              else
                {
                  if (QccENTArithmeticDecode(buffer,model,&symbol, 1))
                    {
                      return_value = 2;
                      goto Return;
                    }
                  else
                    return_value = 0;
                  
                  if (symbol)
                    coefficients->matrix[current_row][current_col] =
                      1.5 * threshold;
                }
              v = symbol;
              
              if (symbol)
                {
                  subband_significance[subband]++;
                  scale += increment;
                  *p_char = QCCTCE_S_NEW;
                  
                  if (QccWAVtceUpdateModel(model, 0.5))
                    {
                      QccErrorAddMessage("(QccWAVtceIPBand): Error calling QccWAVtceUpdateModel()");
                      goto Error;
                    }
                  
                  if (buffer->type == QCCBITBUFFER_OUTPUT)
                    {
                      symbol = (int)(sign_array[current_row][current_col]);
                      return_value =
                        QccENTArithmeticEncode(&symbol, 1,model, buffer);      
                    }
                  else
                    {
                      if (QccENTArithmeticDecode(buffer,model,&symbol, 1))
                        return_value = 2;      
                      sign_array[current_row][current_col] = (char)symbol;
                    }
                  QccWAVUpdateNZNStatus(subband_origin_row,
                                        subband_origin_col,
                                        subband_num_rows,
                                        subband_num_cols,
                                        row,
                                        col,
                                        significance_map,
                                        subband);
                }    
              
              if (return_value == 2)
                goto Return;
              else
                {
                  if (return_value)
                    {
                      QccErrorAddMessage("(QccWAVtceIPBand): QccWAVtceIPBand()");
                      goto Error;
                    }
                }    
              p1 = alpha_h * p1 + filter_coef * v;
              p2[col] = p1 + alpha_v * p2[col];
            }
          else
            {    
              p1 = alpha_h * p1 + filter_coef * QCCWAVTCE_REFINE_HOLDER;
              p2[col] = p1 + alpha_v * p2[col];
            }
          p_estimation[subband_origin_row + row][subband_origin_col + col] =
            p_forward;
        }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久一本精品| 奇米一区二区三区| 国产宾馆实践打屁股91| 国产日本欧美一区二区| 不卡视频一二三四| 亚洲日本丝袜连裤袜办公室| 欧美在线综合视频| 婷婷成人激情在线网| 日韩欧美电影在线| 粉嫩绯色av一区二区在线观看| 中文字幕的久久| 欧美羞羞免费网站| 久久99精品国产| 中文字幕一区二区三| 欧美精选一区二区| 国产精品视频一二三区| 国产日产精品一区| 久久人人超碰精品| 亚洲高清免费观看| 亚洲精品一区二区三区福利| 国产高清不卡二三区| 亚洲日本va在线观看| 欧美日本在线播放| 丁香婷婷综合五月| 亚洲成人一区二区在线观看| 久久久久高清精品| 欧美这里有精品| 国产精品资源在线看| 亚洲一区二区影院| 久久久蜜桃精品| 欧美精品1区2区3区| 成人性视频免费网站| 五月婷婷综合激情| 国产精品免费观看视频| 日韩一区二区不卡| 91美女片黄在线观看| 激情综合色丁香一区二区| 欧美高清一级片在线观看| 大尺度一区二区| 欧美在线影院一区二区| 国产精品综合av一区二区国产馆| 中文字幕一区二| 精品久久久久av影院| 在线看一区二区| 成人午夜又粗又硬又大| 蜜臀av国产精品久久久久| 亚洲黄网站在线观看| 国产精品人妖ts系列视频| 日韩欧美不卡在线观看视频| 欧美婷婷六月丁香综合色| 波波电影院一区二区三区| 麻豆91在线播放| 无码av中文一区二区三区桃花岛| 中文字幕亚洲电影| 久久久久久免费| 精品国产乱码久久久久久图片 | 成人国产一区二区三区精品| 蜜桃一区二区三区在线观看| 亚洲va国产天堂va久久en| 91丨porny丨在线| 国产午夜精品一区二区三区嫩草| 国产精品自拍三区| 亚洲乱码精品一二三四区日韩在线| 99re成人在线| 亚洲免费毛片网站| 色综合久久中文综合久久97| 激情欧美一区二区三区在线观看| 婷婷亚洲久悠悠色悠在线播放| 中文字幕一区二区不卡| 成人免费视频在线观看| 久久久久久久网| ww亚洲ww在线观看国产| 日韩欧美一二区| 日韩午夜激情电影| 欧美成人精品3d动漫h| 9191成人精品久久| 7777精品伊人久久久大香线蕉经典版下载 | 国产精品一区在线观看乱码 | 国产精品美女久久福利网站| 久久久久久久久久电影| 精品国产一区二区三区av性色 | 久久精品欧美日韩| 久久久91精品国产一区二区精品| 久久综合色8888| 国产亚洲精品aa| 国产精品麻豆一区二区| 国产精品对白交换视频| 亚洲欧美一区二区三区久本道91 | 亚洲综合精品久久| 香蕉久久夜色精品国产使用方法| 视频一区二区三区中文字幕| 丝袜亚洲另类欧美| 激情文学综合网| 99国产精品久久久| 欧美中文字幕一二三区视频| 7777精品久久久大香线蕉| 日韩欧美www| 国产日韩精品一区二区三区| 中文字幕一区二区三区视频 | 男女男精品视频| 国产一区二区电影| 懂色av一区二区夜夜嗨| 一本久久综合亚洲鲁鲁五月天| 欧美性xxxxxxxx| 欧美电视剧在线看免费| 欧美国产乱子伦 | 在线观看日韩电影| 欧美大片一区二区三区| 国产精品全国免费观看高清 | 91激情在线视频| 日韩一区二区免费在线观看| 欧美国产日本视频| 亚洲第一成人在线| 国产精品一二三四五| 91久久一区二区| 久久免费的精品国产v∧| 亚洲精品乱码久久久久久黑人| 麻豆视频观看网址久久| 色婷婷综合中文久久一本| 日韩精品在线网站| 亚洲色大成网站www久久九九| 免费欧美日韩国产三级电影| 波多野结衣91| 亚洲精品一区二区在线观看| 亚洲黄色尤物视频| 国产成人综合在线| 制服丝袜日韩国产| 亚洲第一综合色| 国产传媒久久文化传媒| 日韩一级精品视频在线观看| 中文字幕一区二区5566日韩| 捆绑变态av一区二区三区| 91女人视频在线观看| 精品电影一区二区| 亚洲国产成人porn| 成人网在线免费视频| 日韩精品一区二区三区视频播放| 一二三四区精品视频| 成人激情文学综合网| 精品国产乱码久久久久久影片| 亚洲成人免费在线| 日本精品免费观看高清观看| 国产免费久久精品| 激情五月激情综合网| 欧美一区二区三区电影| 一区二区三区免费观看| av综合在线播放| 久久精品视频一区二区三区| 日韩国产高清影视| 欧美亚洲免费在线一区| 国产精品久久久久久久岛一牛影视 | 国产麻豆欧美日韩一区| 制服丝袜av成人在线看| 亚洲一区二区三区精品在线| 99久久99久久精品免费看蜜桃| 久久久久久久国产精品影院| 麻豆精品久久久| 日韩欧美自拍偷拍| 奇米综合一区二区三区精品视频| 欧美日本一区二区三区四区 | 日本中文一区二区三区| 欧美唯美清纯偷拍| 亚洲高清不卡在线| 欧美性受极品xxxx喷水| 伊人开心综合网| 在线观看一区二区精品视频| 亚洲午夜在线观看视频在线| 在线观看国产日韩| 亚洲二区视频在线| 在线电影欧美成精品| 五月婷婷激情综合网| 91麻豆精品国产91久久久资源速度| 亚洲bt欧美bt精品| 欧美夫妻性生活| 开心九九激情九九欧美日韩精美视频电影 | 亚洲日本丝袜连裤袜办公室| 国产成人午夜精品5599| 国产欧美一区二区三区在线看蜜臀 | 99久久精品情趣| 亚洲欧洲日韩女同| 91在线精品一区二区| 亚洲一区二区中文在线| 欧美日韩三级一区二区| 日韩av电影天堂| 精品国产91九色蝌蚪| 国产精品伊人色| 亚洲色图一区二区| 在线观看视频一区二区| 秋霞电影网一区二区| 国产校园另类小说区| 92精品国产成人观看免费| 亚洲综合色婷婷| 欧美一区二区日韩| 欧美日韩国产精选| 激情综合色丁香一区二区| 国产精品亲子伦对白| 欧美综合在线视频| 麻豆91免费观看| 亚洲精品国产精华液| 日韩欧美一区二区视频|