⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dwt.c

📁 spiht for linux this is used to decod and encode vedio i wich all enjoy
💻 C
📖 第 1 页 / 共 2 页
字号:
                             int num_frames,                             int num_rows,                             int num_cols,                             int origin_frame,                             int origin_row,                             int origin_col,                             int subsample_pattern_frame,                             int subsample_pattern_row,                             int subsample_pattern_col,                             int num_scales,                             const QccWAVWavelet *wavelet){  int return_value;  int scale;  int original_num_frames = 0;  int original_num_rows = 0;  int original_num_cols = 0;  int phase_frame;  int phase_row;  int phase_col;    if (volume == NULL)    return(0);  if (wavelet == NULL)    return(0);    if (num_scales <= 0)    return(0);    original_num_frames = num_frames;  original_num_rows = num_rows;  original_num_cols = num_cols;    for (scale = 0; scale < num_scales; scale++)    {      phase_frame = QccWAVWaveletDWTSubbandPhase(scale + 1, origin_frame,                                                 subsample_pattern_frame);      phase_row = QccWAVWaveletDWTSubbandPhase(scale + 1, origin_row,                                               subsample_pattern_row);      phase_col = QccWAVWaveletDWTSubbandPhase(scale + 1, origin_col,                                               subsample_pattern_col);            if (QccWAVWaveletAnalysis3D(volume,                                  num_frames,                                  num_rows,                                  num_cols,                                  phase_frame,                                  phase_row,                                  phase_col,                                  wavelet))        {          QccErrorAddMessage("(QccWAVWaveletDyadicDWT3D): Error calling QccWAVWaveletAnalysis3D()");          goto Error;        }            num_frames =        QccWAVWaveletDWTSubbandLength(original_num_frames, scale + 1,                                      0, origin_frame,                                      subsample_pattern_frame);      num_rows =        QccWAVWaveletDWTSubbandLength(original_num_rows, scale + 1,                                      0, origin_row,                                      subsample_pattern_row);      num_cols =        QccWAVWaveletDWTSubbandLength(original_num_cols, scale + 1,                                      0, origin_col,                                      subsample_pattern_col);    }    return_value = 0;  goto Return; Error:  return_value = 1; Return:  return(return_value);}int QccWAVWaveletInverseDyadicDWT3D(QccVolume volume,                                    int num_frames,                                    int num_rows,                                    int num_cols,                                    int origin_frame,                                    int origin_row,                                    int origin_col,                                    int subsample_pattern_frame,                                    int subsample_pattern_row,                                    int subsample_pattern_col,                                    int num_scales,                                    const QccWAVWavelet *wavelet){  int return_value;  int scale;  int original_num_frames = 0;  int original_num_rows = 0;  int original_num_cols = 0;  int phase_frame;  int phase_row;  int phase_col;    if (volume == NULL)    return(0);  if (wavelet == NULL)    return(0);    if (num_scales <= 0)    return(0);    original_num_frames = num_frames;  original_num_rows = num_rows;  original_num_cols = num_cols;    for (scale = num_scales - 1; scale >= 0; scale--)    {      num_frames =        QccWAVWaveletDWTSubbandLength(original_num_frames, scale,                                      0, origin_frame,                                      subsample_pattern_frame);      num_rows =        QccWAVWaveletDWTSubbandLength(original_num_rows, scale,                                      0, origin_row,                                      subsample_pattern_row);      num_cols =        QccWAVWaveletDWTSubbandLength(original_num_cols, scale,                                      0, origin_col,                                      subsample_pattern_col);            phase_frame = QccWAVWaveletDWTSubbandPhase(scale + 1, origin_frame,                                                 subsample_pattern_frame);      phase_row = QccWAVWaveletDWTSubbandPhase(scale + 1, origin_row,                                               subsample_pattern_row);      phase_col = QccWAVWaveletDWTSubbandPhase(scale + 1, origin_col,                                               subsample_pattern_col);      if (QccWAVWaveletSynthesis3D(volume,                                   num_frames,                                   num_rows,                                   num_cols,                                   phase_frame,                                   phase_row,                                   phase_col,                                   wavelet))        {          QccErrorAddMessage("(QccWAVWaveletInverseDyadicDWT3D): Error calling QccWAVWaveletSynthesis3D()");          goto Error;        }    }    return_value = 0;  goto Return; Error:  return_value = 1; Return:  return(return_value);}int QccWAVWaveletPacketDWT3D(QccVolume volume,                             int num_frames,                             int num_rows,                             int num_cols,                             int origin_frame,                             int origin_row,                             int origin_col,                             int subsample_pattern_frame,                             int subsample_pattern_row,                             int subsample_pattern_col,                             int temporal_num_scales,                             int spatial_num_scales,                             const QccWAVWavelet *wavelet){  int return_value;  int frame, row, col;  QccVector temp_z = NULL;    if (volume == NULL)    return(0);  if (wavelet == NULL)    return(0);    if (temporal_num_scales > 0)    {      if ((temp_z = QccVectorAlloc(num_frames)) == NULL)        {          QccErrorAddMessage("(QccWAVWaveletPacketDWT3D): Error calling QccVectorAlloc()");          goto Error;        }            for (row = 0; row < num_rows; row++)        for (col = 0; col < num_cols; col++)          {            for (frame = 0; frame < num_frames; frame++)              temp_z[frame] = volume[frame][row][col];                        if (QccWAVWaveletDWT1D(temp_z,                                   num_frames,                                   origin_frame,                                   subsample_pattern_frame,                                   temporal_num_scales,                                   wavelet))              {                QccErrorAddMessage("(QccWAVWaveletPacketDWT3D): Error calling QccWAVWaveletDWT1D()");                goto Error;              }                        for (frame = 0; frame < num_frames; frame++)              volume[frame][row][col] = temp_z[frame];          }    }    if (spatial_num_scales > 0)    for (frame = 0; frame < num_frames; frame++)      if (QccWAVWaveletDWT2D(volume[frame],                             num_rows,                             num_cols,                             origin_row,                             origin_col,                             subsample_pattern_row,                             subsample_pattern_col,                             spatial_num_scales,                             wavelet))        {          QccErrorAddMessage("(QccWAVWaveletPacketDWT3D): Error calling QccWAVWaveletDWT2D()");          goto Error;        }    return_value = 0;  goto Return; Error:  return_value = 1; Return:  QccVectorFree(temp_z);  return(return_value);}int QccWAVWaveletInversePacketDWT3D(QccVolume volume,                                    int num_frames,                                    int num_rows,                                    int num_cols,                                    int origin_frame,                                    int origin_row,                                    int origin_col,                                    int subsample_pattern_frame,                                    int subsample_pattern_row,                                    int subsample_pattern_col,                                    int temporal_num_scales,                                    int spatial_num_scales,                                    const QccWAVWavelet *wavelet){  int return_value;  int frame, row, col;  QccVector temp_z = NULL;    if (volume == NULL)    return(0);  if (wavelet == NULL)    return(0);    if (spatial_num_scales > 0)    for (frame = 0; frame < num_frames; frame++)      if (QccWAVWaveletInverseDWT2D(volume[frame],                                    num_rows,                                    num_cols,                                    origin_row,                                    origin_col,                                    subsample_pattern_row,                                    subsample_pattern_col,                                    spatial_num_scales,                                    wavelet))        {          QccErrorAddMessage("(QccWAVWaveletInversePacketDWT3D): Error calling QccWAVWaveletInverseDWT2D()");          goto Error;        }    if (temporal_num_scales > 0)    {      if ((temp_z = QccVectorAlloc(num_frames)) == NULL)        {          QccErrorAddMessage("(QccWAVWaveletInversePacketDWT3D): Error calling QccVectorAlloc()");          goto Error;        }            for (row = 0; row < num_rows; row++)        for (col = 0; col < num_cols; col++)          {            for (frame = 0; frame < num_frames; frame++)              temp_z[frame] = volume[frame][row][col];                        if (QccWAVWaveletInverseDWT1D(temp_z,                                          num_frames,                                           origin_frame,                                          subsample_pattern_frame,                                          temporal_num_scales,                                          wavelet))              {                QccErrorAddMessage("(QccWAVWaveletInversePacketDWT3D): Error calling QccWAVWaveletInverseDWT1D()");                goto Error;              }                        for (frame = 0; frame < num_frames; frame++)              volume[frame][row][col] = temp_z[frame];          }    }    return_value = 0;  goto Return; Error:  return_value = 1; Return:  QccVectorFree(temp_z);  return(return_value);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -