int main(int _argc,const char *_argv[]){ intra_stats_ctx ctx[NUM_PROCS]; int i; ne_filter_params_init(); vp8_scale_init(VP8_SCALE); od_scale_init(OD_SCALE); #if WRITE_IMAGES intra_map_colors(COLORS,OD_INTRA_NMODES); #endif for(i=0;i<NUM_PROCS;i++){ intra_stats_ctx_init(&ctx[i]); } omp_set_num_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); intra_stats_correct(&ctx[0].gb_od); intra_stats_print(&ctx[0].gb_od,"Daala Intra Predictors",OD_SCALE); } for(i=0;i<NUM_PROCS;i++){ intra_stats_ctx_clear(&ctx[i]); } return EXIT_SUCCESS; }
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; }
static int stats_finish(void *_ctx){ intra_stats_ctx *ctx; #if WRITE_IMAGES char name[8192]; int eos; #endif ctx=(intra_stats_ctx *)_ctx; #if WRITE_IMAGES strcpy(name,ctx->img.name); eos=strlen(name)-4; sprintf(&name[eos],"%s","-vp8"); image_files_write(&ctx->files_vp8,name,NULL); sprintf(&name[eos],"%s","-daala"); image_files_write(&ctx->files_od,name,NULL); #endif intra_stats_combine(&ctx->gb_vp8,&ctx->st_vp8); intra_stats_correct(&ctx->st_vp8); intra_stats_print(&ctx->st_vp8,"VP8 Intra Predictors",VP8_SCALE); intra_stats_combine(&ctx->gb_od,&ctx->st_od); intra_stats_correct(&ctx->st_od); intra_stats_print(&ctx->st_od,"Daala Intra Predictors",OD_SCALE); intra_stats_ctx_clear_image(ctx); return EXIT_SUCCESS; }
static int stats_finish(void *_ctx){ int i; cfl_stats_ctx *ctx; ctx=(cfl_stats_ctx *)_ctx; if (ctx->curr_pli==2) { 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_combine(&ctx->gb_fdp[i],&ctx->st_fdp[i]); intra_stats_correct(&ctx->st_fdp[i]); intra_stats_print(&ctx->st_fdp[i],label,od_scale); sprintf(label,"Chroma-from-Luma Predictors (plane %i)",i+1); intra_stats_combine(&ctx->gb_cfl[i],&ctx->st_cfl[i]); intra_stats_correct(&ctx->st_cfl[i]); intra_stats_print(&ctx->st_cfl[i],label,od_scale); } for (i=0;i<3;i++) { image_data_clear(&ctx->img[i]); } } return EXIT_SUCCESS; }