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

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

?? main.cpp

?? JMVM MPEG MVC/3DAV 測試平臺 國際通用標準
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
  
  int   iStage              = 0;
  int   temporal_stages     = 0;
  int   skip_at_start       = 0;
  int   number_frames       = (1<<30);
  FILE* input_file          = 0;
  FILE* output_file         = 0;
  FILE* crop_file           = 0;
  int   method              = 0;
  bool  resample            = false;
  bool  upsample            = false;
  bool  crop_init           = false;
  bool  phase_init          = false;
  bool  method_init         = false;
  bool  crop_file_init      = false;
  int   sequence_length     = 0;
  int   skip_between        = 0;
  int   i;
  int   frame_width;
  int   frame_height;
  
  int           written, skip;
  YuvFrame      cFrame;
  
  print_usage_and_exit ((argc<7||argc>22), argv[0],"number of arguments");
  rp->m_iInWidth        = atoi  ( argv[1] );
  rp->m_iInHeight       = atoi  ( argv[2] );
  input_file            = fopen ( argv[3], "rb" );
  rp->m_iGlobWidth      = atoi  ( argv[4] );
  rp->m_iGlobHeight     = atoi  ( argv[5] );
  output_file           = fopen ( argv[6], "wb" );
  
  print_usage_and_exit ((input_file == NULL||output_file == NULL),argv[0],"failed to open file");
  print_usage_and_exit(((rp->m_iInWidth>rp->m_iGlobWidth&&rp->m_iInHeight<rp->m_iGlobHeight)||(rp->m_iInWidth<rp->m_iGlobWidth&&rp->m_iInHeight>rp->m_iGlobHeight)),argv[0],"mixed Upsample and Downsample");
  
  fseek(  input_file, 0, SEEK_END );
  sequence_length = (ftell(input_file)/(3*rp->m_iInWidth*rp->m_iInHeight/2));
  fseek(  input_file, 0, SEEK_SET );
  
  i = 7;
  while (i<argc)
  {
    if (strcmp(argv[i], "-crop")==0)
    {
      print_usage_and_exit ((method == 1), argv[0], "No crop in Dyadic method");
      print_usage_and_exit (((method == 2)&&(rp->m_iInWidth<rp->m_iGlobWidth)), argv[0], "No crop only while upsampling");
            
      print_usage_and_exit ((crop_init||argc<(i+3)||argc==(i+4)||argc==(i+5)),argv[0],"Error in crop parameters");
      crop_init = true;
      i++;
      print_usage_and_exit (!(atoi(argv[i])==0||atoi(argv[i])==1),argv[0],"Wrong crop type");
      rp->m_iExtendedSpatialScalability = (atoi(argv[i]))+1;
      print_usage_and_exit(((rp->m_iExtendedSpatialScalability!=1)&&(rp->m_iExtendedSpatialScalability!=2)),argv[0],"Wrong crop type");
      i++;
      if (rp->m_iExtendedSpatialScalability==1)
      {
        rp->m_iPosX = atoi  ( argv[i] );
        i++;
        rp->m_iPosY = atoi  ( argv[i] );
        i++;
        rp->m_iOutWidth   = atoi  ( argv[i] );
        i++;
        rp->m_iOutHeight  = atoi  ( argv[i] );
        i++;
        print_usage_and_exit ((rp->m_iPosX&1||rp->m_iPosY&1||rp->m_iOutWidth&1||rp->m_iOutHeight&1), argv[0], "Crop parameters must be event values");
        print_usage_and_exit (((method==2)&&((rp->m_iOutWidth != min(rp->m_iInWidth, rp->m_iGlobWidth))||(rp->m_iOutHeight != min(rp->m_iInHeight, rp->m_iGlobHeight)))), argv[0], "Crop dimensions must be the same as the minimal dimensions");
        print_usage_and_exit ((rp->m_iOutWidth>max(rp->m_iInWidth,rp->m_iGlobWidth)||rp->m_iOutHeight>max(rp->m_iInHeight,rp->m_iGlobHeight)||rp->m_iOutWidth<min(rp->m_iInWidth,rp->m_iGlobWidth)||rp->m_iOutHeight<min(rp->m_iInHeight,rp->m_iGlobHeight)),argv[0],"wrong crop window size");
        print_usage_and_exit (!((rp->m_iPosX+rp->m_iOutWidth)<=max(rp->m_iInWidth,rp->m_iGlobWidth)&&(rp->m_iPosY+rp->m_iOutHeight)<=max(rp->m_iInHeight,rp->m_iGlobHeight)),argv[0],"wrong crop window size and origin");
      }
      else
      {
        crop_file_init = true;
        crop_file = fopen ( argv[i], "rb" );
        i++;
        print_usage_and_exit ((crop_file == NULL),argv[0],"failed to open crop parameters file");
      }
    }
    else if (strcmp(argv[i], "-phase")==0)
    {
      print_usage_and_exit ((method != 0), argv[0], "Phase only in normative resampling");
           
      print_usage_and_exit ((phase_init||argc<(i+5)),argv[0],"wrong number of phase parameters");
      i++;
      phase_init = true;
      rp->m_iBaseChromaPhaseX  = atoi  ( argv[i] );
      i++;
      rp->m_iBaseChromaPhaseY  = atoi  ( argv[i] );
      i++;
      rp->m_iChromaPhaseX = atoi  ( argv[i] );
      i++;
      rp->m_iChromaPhaseY = atoi  ( argv[i] );
      i++;
      print_usage_and_exit ((rp->m_iBaseChromaPhaseX>1||rp->m_iBaseChromaPhaseX<-1||rp->m_iBaseChromaPhaseY>1||rp->m_iBaseChromaPhaseY<-1||rp->m_iChromaPhaseX>1||rp->m_iChromaPhaseX<-1||rp->m_iChromaPhaseY>1||rp->m_iChromaPhaseY<-1),argv[0],"Wrong phase parameters (range : [-1, 1])");
    }
    else if (i == 7)
    {
      method_init = true;
      method = atoi  ( argv[i] );
      i++;
      print_usage_and_exit ((method<0||method>4),argv[0],"wrong method");
      if (method>2)
      {
        fprintf( stderr, "\nNot normative, nor dyadic resampling or not crop only\n");
        print_usage_and_exit((rp->m_iInWidth>rp->m_iGlobWidth||rp->m_iInHeight>rp->m_iGlobHeight),argv[0],"Wrong method for downsampling");
      }
      if (!(method == 2))
      {
        resample = true;
        if (rp->m_iInWidth < rp->m_iGlobWidth)
        {
          upsample = true;
        }
      }
      if (method==1)
      {
        if (upsample)
        {
          int div = rp->m_iGlobWidth / rp->m_iInWidth;
          if      (div == 1) iStage = 0;
          else if (div == 2) iStage = 1;
          else if (div == 4) iStage = 2;
          else if (div == 8) iStage = 3;
          else { print_usage_and_exit(true, argv[0], "ratio not supported for dyadic upsampling method"); }
          print_usage_and_exit((((rp->m_iGlobWidth / rp->m_iInWidth)*rp->m_iInWidth)!=rp->m_iGlobWidth), argv[0],"ratio is not dyadic");
          print_usage_and_exit((rp->m_iInHeight*div != rp->m_iGlobHeight), argv[0], "Not the same ratio for Height and Width in dyadic mode");
        }
        else
        {
          int div = rp->m_iInWidth / rp->m_iGlobWidth;
          if      (div == 1) {iStage = 0; fprintf( stderr, "\nNo resampling in dyadic method\n");}
          else if (div == 2)  iStage = 1;
          else if (div == 4)  iStage = 2;
          else if (div == 8)  iStage = 3;
          else { print_usage_and_exit(true, argv[0], "ratio not supported for dyadic upsampling method"); }
          print_usage_and_exit((((rp->m_iInWidth / rp->m_iGlobWidth)*rp->m_iGlobWidth)!=rp->m_iInWidth), argv[0],"ratio is not dyadic");
          print_usage_and_exit((rp->m_iGlobHeight*div != rp->m_iInHeight), argv[0], "Not the same ratio for Height and Width in dyadic mode");
        }
      }
    }
    else if (i == 8)
    {
      temporal_stages = atoi ( argv[i] );
      i++;
      print_usage_and_exit ((temporal_stages<0),argv[0],"Error in temporal stage");
    }
    else if (i == 9)
    {
      skip_at_start = atoi ( argv[i] );
      i++;
      print_usage_and_exit (((skip_at_start<0)||(skip_at_start>=sequence_length)),argv[0],"Error in number of frame to skip at start");
    }
    else if (i == 10)
    {
      number_frames = atoi ( argv[i] );
      i++;
      print_usage_and_exit ((number_frames<0),argv[0],"Error in number of frames");
    }
    else
    {
      print_usage_and_exit (true,argv[0]);
    }
  }
  
  if (!method_init)
  {
    resample = true;
    if (rp->m_iInWidth < rp->m_iGlobWidth)
    {
      upsample = true;
    }
  }
  
  if (!crop_init)
  {
    rp->m_iOutWidth = max(rp->m_iInWidth,rp->m_iGlobWidth);
    rp->m_iOutHeight = max(rp->m_iInHeight,rp->m_iGlobHeight);
  }
  
  if (method == 2)
  {
    if (!crop_init)
    {
      rp->m_iOutWidth = min(rp->m_iInWidth,rp->m_iGlobWidth);
      rp->m_iOutHeight = min(rp->m_iInHeight,rp->m_iGlobHeight);
      fprintf( stderr, "\nCrop parameters set to default 0,0,min_width,min_height\n");
    }
  }
  
  skip_between    = ( 1 << temporal_stages ) - 1;
  
  if ( number_frames > ((sequence_length - skip_at_start+((1<<temporal_stages)-1))>>temporal_stages) )
  {
    if (number_frames != (1 << 30))
    {
      fprintf( stderr, "\nWrong number of frames\n");
    }
    number_frames   = ((sequence_length - skip_at_start+((1<<temporal_stages)-1))>>temporal_stages);
  }
    
  frame_width = (rp->m_iInWidth > rp->m_iGlobWidth) ? rp->m_iInWidth : rp->m_iGlobWidth;
  frame_height = (rp->m_iInHeight > rp->m_iGlobHeight) ? rp->m_iInHeight : rp->m_iGlobHeight;  
    
  createFrame( &cFrame, frame_width, frame_height );
  cDownConvert.init( frame_width, frame_height );
  
  long start_time = clock();
  
  for( skip = skip_at_start, rp->m_iPOC = 0, written = 0; ((rp->m_iPOC < sequence_length)&&(written < number_frames)); rp->m_iPOC++, skip = skip_between )
  {
    fseek( input_file, skip*rp->m_iInWidth*rp->m_iInHeight*3/2, SEEK_CUR);
    rp->m_iPOC += skip;
    
    if ((rp->m_iPOC < sequence_length)&&(written < number_frames))
    {
      clearFrame      ( &cFrame );
      
      readFrame       ( &cFrame, input_file, rp->m_iInWidth, rp->m_iInHeight );      
      
      if (crop_file_init&&rp->m_iExtendedSpatialScalability==2)
      {
        updateCropParametersFromFile(rp, crop_file, method, argv[0]);
      }
      if ((rp->m_iOutWidth==min(rp->m_iInWidth, rp->m_iGlobWidth))&&(rp->m_iOutHeight==min(rp->m_iInHeight, rp->m_iGlobHeight)))
      {
        resample = false;
      }
      else
      {
        resample = true;
      }
      
      if ((!resample) && (!upsample))
      {
        cDownConvert.crop(cFrame.lum.data, cFrame.lum.width, cFrame.cb.data, cFrame.cb.width, cFrame.cr.data, cFrame.cr.width, rp);      
      }
      else
      {
        if (upsample)
        {
          switch (method)
          {
          case 1:
            {
              FILTER_UP
#ifdef OLD_DYADIC_UPSAMPLE
              int* piFilter_chroma=pifilter;
#else
              FILTER_UP_CHROMA
#endif
              cDownConvert.upsample(cFrame.lum.data, cFrame.lum.width, cFrame.cb.data, cFrame.cb.width, cFrame.cr.data, cFrame.cr.width, rp, iStage, piFilter, piFilter_chroma);
              break;
            }
          case 0:
          case 3:
          case 4:
            {
              cDownConvert.upsample_non_dyadic(cFrame.lum.data, cFrame.lum.width, cFrame.cb.data, cFrame.cb.width, cFrame.cr.data, cFrame.cr.width, rp, method);
              break;
            }
          default:
            {
              print_usage_and_exit (true, argv[0], "Wrong upsample");
            }
          }
        }
        if (!upsample)
        {
          switch (method)
          {
          case 0:
            {
              cDownConvert.downsample3(cFrame.lum.data, cFrame.lum.width, cFrame.cb.data, cFrame.cb.width, cFrame.cr.data, cFrame.cr.width, rp);
              break;
            }
          case 1:
            {
              FILTER_DOWN
              cDownConvert.downsample(cFrame.lum.data, cFrame.lum.width, cFrame.cb.data, cFrame.cb.width, cFrame.cr.data, cFrame.cr.width, rp, iStage, piFilter);
              break;
            }
          default:
            {
              print_usage_and_exit (true, argv[0], "Wrong downsample");
            }
          }
        }
      }
      writeFrame ( &cFrame, output_file,  rp->m_iGlobWidth, rp->m_iGlobHeight );
      fprintf( stderr, "\r%6d frames converted", ++written );
    }
  }
  long end_time = clock();
  
  deleteFrame( &cFrame     );
  fclose     ( input_file  );
  fclose     ( output_file );
  
  if (crop_file_init)
  {
    fclose   ( crop_file   );
  }
  
  fprintf(stderr, "\n" );
  double delta_in_s = (double)(end_time - start_time) / CLOCKS_PER_SEC;
  fprintf(stderr, "in %.2lf seconds => %.0lf ms/frame\n", delta_in_s, delta_in_s/written*1000);

  return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
黑人巨大精品欧美黑白配亚洲| 午夜欧美一区二区三区在线播放| 欧美日韩免费观看一区三区| 国模娜娜一区二区三区| 一区二区视频在线| www国产精品av| 欧美精品v日韩精品v韩国精品v| 99精品欧美一区二区三区小说| 国产中文字幕一区| 免费高清在线视频一区·| 亚洲精品videosex极品| 国产日韩欧美综合在线| 国产农村妇女精品| 日韩一区二区三区精品视频| 欧美性猛片aaaaaaa做受| 不卡区在线中文字幕| 国产一区二区三区黄视频 | 国产乱码精品一区二区三| 亚洲成人精品影院| 中文字幕一区二区5566日韩| 国产视频视频一区| 欧美va亚洲va| 日韩一区二区三区在线| 欧美日韩国产成人在线91| 日本韩国一区二区| 99久久精品国产导航| 成人性生交大合| 国产成人综合在线观看| 国产永久精品大片wwwapp| 久久99久久精品欧美| 日本不卡一二三区黄网| 爽好久久久欧美精品| 午夜影院久久久| 石原莉奈一区二区三区在线观看| 一区二区三区 在线观看视频| 国产精品女人毛片| 国产精品久久久久国产精品日日 | 国产午夜精品久久久久久免费视| 欧美大片在线观看一区| 亚洲精品在线免费观看视频| 精品国产髙清在线看国产毛片| 欧美一级夜夜爽| 欧美mv和日韩mv的网站| 精品国产91九色蝌蚪| 欧美成人欧美edvon| 久久久久久日产精品| 久久久久久久免费视频了| 国产丝袜欧美中文另类| 日本一区二区在线不卡| 中文字幕av一区二区三区免费看| 中文字幕成人av| 亚洲欧美日韩电影| 午夜久久久久久| 久热成人在线视频| 国产成人av一区二区三区在线 | 国产精品欧美一级免费| 亚洲成av人片一区二区梦乃| 亚洲一区在线观看免费观看电影高清| 亚洲午夜久久久久久久久电影院| 亚洲成av人片观看| 另类小说欧美激情| 成人激情午夜影院| 欧美影片第一页| 精品国产sm最大网站| 国产女主播一区| 亚洲一区二区三区在线| 秋霞国产午夜精品免费视频| 国产激情一区二区三区| 91亚洲资源网| 欧美日韩国产中文| 国产欧美一区二区三区沐欲| 洋洋成人永久网站入口| 另类欧美日韩国产在线| 99国产精品久| 在线成人av网站| 国产精品美女久久久久久久网站| 午夜免费欧美电影| 国产精品99久久久| 欧美视频在线一区二区三区| 精品88久久久久88久久久| 亚洲欧美成aⅴ人在线观看| 日韩va亚洲va欧美va久久| 国产伦精品一区二区三区视频青涩 | 日本va欧美va瓶| 成人黄色大片在线观看| 欧美精品在线一区二区| 国产精品人妖ts系列视频| 丝袜美腿亚洲综合| av午夜一区麻豆| 日韩精品一区二区三区视频播放| 亚洲人亚洲人成电影网站色| 蜜乳av一区二区| 94-欧美-setu| 精品国产一区二区三区久久影院 | 国产成人精品免费| 在线综合+亚洲+欧美中文字幕| 国产欧美日韩另类视频免费观看 | 国产精品99久久久久久久女警| 欧美色欧美亚洲另类二区| 日本一区二区三区高清不卡| 视频一区视频二区中文| 91视频www| 欧美国产一区二区| 久久99精品国产91久久来源| 欧美最猛性xxxxx直播| 中文字幕国产一区二区| 国产综合色产在线精品| 在线不卡a资源高清| 亚洲精品免费看| av在线不卡观看免费观看| 欧美精品一区二区三区很污很色的| 亚洲国产美女搞黄色| 91免费观看国产| 国产精品美女视频| 国产成人三级在线观看| 精品粉嫩超白一线天av| 天天影视涩香欲综合网| 在线区一区二视频| 亚洲欧美经典视频| 成人av集中营| 欧美韩国日本一区| 懂色av一区二区夜夜嗨| 国产视频在线观看一区二区三区 | 一区二区三区成人| 不卡视频在线观看| 国产精品情趣视频| 成人av网址在线| 成人欧美一区二区三区黑人麻豆| 成人福利在线看| 国产精品国产精品国产专区不蜜| 成人在线视频一区| 国产精品午夜在线观看| 成人国产精品免费观看| 中文字幕制服丝袜一区二区三区| 9色porny自拍视频一区二区| 中文一区在线播放| www.日韩大片| 亚洲精品菠萝久久久久久久| 一本一道久久a久久精品综合蜜臀 一本一道综合狠狠老 | 日本高清不卡视频| 久久亚洲捆绑美女| 国产精品99久久久久久似苏梦涵| 中文字幕欧美国产| 91麻豆文化传媒在线观看| 亚洲欧美电影一区二区| 国产不卡视频一区二区三区| 中文字幕不卡三区| 色久优优欧美色久优优| 三级影片在线观看欧美日韩一区二区| 欧美日韩卡一卡二| 免费观看91视频大全| 久久久精品国产99久久精品芒果| 丁香婷婷深情五月亚洲| 中文字幕制服丝袜成人av| 色婷婷久久久久swag精品| 亚洲图片自拍偷拍| 日韩欧美国产高清| 国产91在线|亚洲| 亚洲精品视频免费看| 欧美精选午夜久久久乱码6080| 麻豆精品新av中文字幕| 国产精品少妇自拍| 欧美色图免费看| 国产一区二区三区国产| 亚洲欧美日韩国产另类专区| 欧美老人xxxx18| 国产精品综合在线视频| 亚洲摸摸操操av| 91精品国产免费| 成人av电影免费在线播放| 天天操天天干天天综合网| 久久夜色精品国产噜噜av| 99re这里只有精品视频首页| 爽爽淫人综合网网站| 亚洲国产精品二十页| 欧美日韩高清一区二区不卡| 国产成人免费视频一区| 亚洲国产精品久久不卡毛片| 久久久无码精品亚洲日韩按摩| 在线免费视频一区二区| 国产美女娇喘av呻吟久久| 一片黄亚洲嫩模| 国产丝袜美腿一区二区三区| 欧美日韩精品福利| 国产成人免费9x9x人网站视频| 亚洲18色成人| 国产精品不卡在线观看| 欧美一级二级三级乱码| 99精品偷自拍| 国产一区二区在线电影| 五月激情综合婷婷| 亚洲欧美国产三级| 国产亚洲美州欧州综合国| 欧美日韩一二区| 成人高清av在线| 精品夜夜嗨av一区二区三区| 一区二区三区中文在线观看| 久久精品一区二区三区不卡| 欧美日韩你懂的| 91在线免费播放|