Exemple #1
0
int main(int _argc,const char *_argv[]){
  intra_stats_ctx ctx[NUM_PROCS];
  int             i;
  ne_filter_params_init();
  vp8_scale_init(VP8_SCALE[B_SZ_LOG-OD_LOG_BSIZE0],B_SZ_LOG);
  od_scale_init(OD_SCALE[B_SZ_LOG-OD_LOG_BSIZE0],B_SZ_LOG);
#if WRITE_IMAGES
  intra_map_colors(COLORS,OD_INTRA_NMODES);
#endif
  for(i=0;i<NUM_PROCS;i++){
    intra_stats_ctx_init(&ctx[i]);
  }
  od_intra_init();
  OD_OMP_SET_THREADS(NUM_PROCS);
  ne_apply_to_blocks(ctx,sizeof(*ctx),0x1,PADDING,stats_start,NBLOCKS,BLOCKS,
   stats_finish,_argc,_argv);
  for(i=1;i<NUM_PROCS;i++){
    intra_stats_ctx_combine(&ctx[0],&ctx[i]);
  }
  printf("Processed %i image(s)\n",ctx[0].n);
  if(ctx[0].n>0){
    intra_stats_correct(&ctx[0].gb_vp8);
    intra_stats_print(&ctx[0].gb_vp8,"VP8 Intra Predictors",
     VP8_SCALE[B_SZ_LOG-OD_LOG_BSIZE0]);
    intra_stats_correct(&ctx[0].gb_od);
    intra_stats_print(&ctx[0].gb_od,"Daala Intra Predictors",
     OD_SCALE[B_SZ_LOG-OD_LOG_BSIZE0]);
  }
  for(i=0;i<NUM_PROCS;i++){
    intra_stats_ctx_clear(&ctx[i]);
  }
  od_intra_clear();
  return EXIT_SUCCESS;
}
Exemple #2
0
int main(int _argc,const char *_argv[]) {
  cfl_stats_ctx ctx[NUM_PROCS];
  int i;
  ne_filter_params_init();
  for (i=0;i<OD_NBSIZES;i++) {
    od_scale_init(OD_SCALE[i],OD_LOG_BSIZE0+i);
  }
  for (i=0;i<NUM_PROCS;i++) {
    cfl_stats_ctx_init(&ctx[i]);
  }
  od_intra_init();
  OD_OMP_SET_THREADS(NUM_PROCS);
  cfl_apply_to_blocks(ctx,sizeof(*ctx),0x7,PADDING,stats_start,NBLOCKS,BLOCKS,
   stats_finish,_argc,_argv);
  for (i=1;i<NUM_PROCS;i++) {
    cfl_stats_ctx_combine(&ctx[0],&ctx[i]);
  }
  printf("Processed %i image(s)\n",ctx[0].n);
  if (ctx[0].n>0) {
    double *od_scale;
    od_scale=OD_SCALE[B_SZ_LOG-1-OD_LOG_BSIZE0];
    for (i=0;i<2;i++) {
      char label[128];
      sprintf(label,"Frequency-Domain Predictors (plane %i)",i+1);
      intra_stats_correct(&ctx[0].gb_fdp[i]);
      intra_stats_print(&ctx[0].gb_fdp[i],label,od_scale);
      sprintf(label,"Chroma-from-Luma Predictors (plane %i)",i+1);
      intra_stats_correct(&ctx[0].gb_cfl[i]);
      intra_stats_print(&ctx[0].gb_cfl[i],label,od_scale);
    }
  }
  for (i=0;i<NUM_PROCS;i++) {
    cfl_stats_ctx_clear(&ctx[i]);
  }
  od_intra_clear();
  return EXIT_SUCCESS;
}
Exemple #3
0
int main(int _argc,const char *_argv[]){

  cov_state     cvs[NUM_PROCS];
#if COMPUTE_NATHAN
  trans_ctx     ctx[NUM_PROCS];
  double        r[SUPPORT*SUPPORT]; /* maximum for 2d */
#else
  trans_ctx     *ctx=NULL;
#endif
  int           i;

#if BLOCKSIZE==4
  f=OD_FILTER_PARAMS4;
#elif BLOCKSIZE==8
  f=OD_FILTER_PARAMS8;
#elif BLOCKSIZE==16
  f=OD_FILTER_PARAMS16;
#else
# error "Need filter params for this block size."
#endif

  for(i=0;i<NUM_PROCS;i++){
#if USE_2D
    cov_init(&cvs[i],SUPPORT*SUPPORT);
#else
    cov_init(&cvs[i],SUPPORT);
#endif
  }

#if COMPUTE_NATHAN
  for(i=0;i<NUM_PROCS;i++){
#if USE_2D
    trans_data_init(&ctx[i].td,SUPPORT*SUPPORT);
#else
    trans_data_init(&ctx[i].td,SUPPORT);
#endif
  }
#endif

  OD_OMP_SET_THREADS(NUM_PROCS);
  process_files(ctx,cvs,_argc,_argv);

  for(i=1;i<NUM_PROCS;i++)
      cov_combine(&cvs[0],&cvs[i]);
  cov_compute(&cvs[0]);

#if COMPUTE_NATHAN
  for(i=1;i<NUM_PROCS;i++)
    trans_data_combine(&ctx[0].td,&ctx[i].td);
  trans_data_normalize(&ctx[0].td);
#endif

#if PRINT_COV
  {
    int i,j;
    fprintf(stdout,"collapsed_cov=\n");
    for(j=0;j<cvs[0].sz/SUPPORT;j++){
      for(i=0;i<SUPPORT;i++){
        fprintf(stdout,"%s  %- 12.6G",i>0?",":"",cvs[0].cov[j*SUPPORT+i]);
      }
      fprintf(stdout,"\n");
    }
  }
#endif

#if USE_2D
#if COMPUTE_NATHAN
  fprintf(stdout,"original cg=%-24.16G\n",
          cg_2d((double(*)[SUPPORT][SUPPORT][SUPPORT])ctx[0].td.cov,f));
  trans_data_collapse(&ctx[0].td,SUPPORT,r);
  fprintf(stdout,"collapse cg=%-24.16G\n",
          cg_2d_collapsed((double(*)[SUPPORT])r,f));
#endif
  fprintf(stdout,"monty cg=%-24.16G\n",
          cg_2d_collapsed((double(*)[SUPPORT])cvs[0].cov,f));
#else
#if COMPUTE_NATHAN
  fprintf(stdout,"original cg=%-24.16G\n",
          cg_1d((double (*)[SUPPORT])ctx[0].td.cov,f));
  trans_data_collapse(&ctx[0].td,1,r);
  fprintf(stdout,"collapse cg=%-24.16G\n",
          cg_1d_collapsed(r,f));
#endif
  fprintf(stdout,"monty cg=%-24.16G\n",
          cg_1d_collapsed(cvs[0].cov,f));
#endif

  for(i=0;i<NUM_PROCS;i++)
    cov_clear(&cvs[i]);

#if COMPUTE_NATHAN
  for(i=0;i<NUM_PROCS;i++)
    trans_data_clear(&ctx[i].td);
#endif

  return EXIT_SUCCESS;
}