Beispiel #1
0
static int intra_xform_train_plane_start(void *_ctx,const char *_name,
 const video_input_info *_info,int _pli,int _nxblocks,int _nyblocks){
  intra_xform_ctx *ctx;
  FILE            *map_file;
  char            *map_filename;
  FILE            *weights_file;
  char            *weights_filename;
  (void)_info;
  ctx=(intra_xform_ctx *)_ctx;
  ctx->map=(unsigned char *)malloc(_nxblocks*(size_t)_nyblocks);
  map_filename=get_map_filename(_name,_pli,_nxblocks,_nyblocks);
  map_file=fopen(map_filename,"rb");
  if(map_file==NULL){
    fprintf(stderr,"Error opening input file '%s'.\n",map_filename);
    return EXIT_FAILURE;
  }
  ctx->map_filename=map_filename;
  if(fread(ctx->map,_nxblocks*(size_t)_nyblocks,1,map_file)<1){
    fprintf(stderr,"Error reading from input file '%s'.\n",map_filename);
    return EXIT_FAILURE;
  }
  fclose(map_file);
  ctx->weights=(unsigned *)malloc(
   _nxblocks*(size_t)_nyblocks*sizeof(*ctx->weights));
  weights_filename=get_weights_filename(_name,_pli,_nxblocks,_nyblocks);
  weights_file=fopen(weights_filename,"rb");
  if(weights_file==NULL){
    fprintf(stderr,"Error opening input file '%s'.\n",weights_filename);
    return EXIT_FAILURE;
  }
  ctx->weights_filename=weights_filename;
  if(fread(ctx->weights,
   _nxblocks*(size_t)_nyblocks*sizeof(*ctx->weights),1,weights_file)<1){
    fprintf(stderr,"Error reading from input file '%s'.\n",weights_filename);
    return EXIT_FAILURE;
  }
  fclose(weights_file);
#if PRINT_BLOCKS
  fprintf(stderr,"%i %i\n",_nxblocks,_nyblocks);
#endif
  ctx->nxblocks=_nxblocks;
  ctx->nyblocks=_nyblocks;
  ctx->pli=_pli;
  return EXIT_SUCCESS;
}
Beispiel #2
0
static int intra_xform_update_plane_start(void *_ctx,const char *_name,
 const video_input_info *_info,int _pli,int _nxblocks,int _nyblocks){
  intra_xform_ctx *ctx;
  int i;
  (void)_info;
  ctx=(intra_xform_ctx *)_ctx;
  ctx->map_filename=get_map_filename(_name,_pli,_nxblocks,_nyblocks);
  ctx->weights_filename=get_weights_filename(_name,_pli,_nxblocks,_nyblocks);
  ctx->map=(unsigned char *)malloc(_nxblocks*(size_t)_nyblocks);
  ctx->weights=(unsigned *)malloc(
   _nxblocks*(size_t)_nyblocks*sizeof(*ctx->weights));
  ctx->nxblocks=_nxblocks;
  ctx->nyblocks=_nyblocks;
  ctx->pli=_pli;
  for(i=0;i<OD_INTRA_NMODES;i++)
    ctx->p0[i]=ctx->freq[ctx->pli][i][0][1]/(float)ctx->freq[ctx->pli][i][0][0];
  return EXIT_SUCCESS;
}
Beispiel #3
0
void write_map_file( void )
{
    char *filename;
    FILE *file;
    SymbolHash *map_symtab;

    /* use first module filename to create global map file */
    filename = get_map_filename( get_first_module( NULL )->filename ); /* set '.map' extension */

    /* Create MAP file */
    file = myfopen( filename, "w" );           
	if (file)
	{
		if (opts.verbose)
			puts("Creating map...");

		/* BUG_0036, BUG_0051 */
		map_symtab = select_symbols(cond_all_symbols);

		if (SymbolHash_empty(map_symtab))
		{
			fputs("None.\n", file);
		}
		else
		{
			/* Write map symbols alphabetically */
			SymbolHash_sort(map_symtab, SymbolHash_by_name);
			write_map_syms(file, map_symtab);

			fputs("\n\n", file);

			/* Write map symbols numerically */
			SymbolHash_sort(map_symtab, SymbolHash_by_value);
			write_map_syms(file, map_symtab);
		}

		OBJ_DELETE(map_symtab);

		myfclose(file);
	}
}
Beispiel #4
0
static int init_intra_plane_finish(void *_ctx){
  init_intra_maps_ctx *ctx;
  FILE                *map_file;
  char                *map_filename;
  FILE                *weights_file;
  char                *weights_filename;
  ctx=(init_intra_maps_ctx *)_ctx;
  map_filename=get_map_filename(ctx->name,
   ctx->pli,ctx->nxblocks,ctx->nyblocks);
  map_file=fopen(map_filename,"wb");
  if(map_file==NULL){
    fprintf(stderr,"Error opening output file '%s'.\n",map_filename);
    return EXIT_FAILURE;
  }
  if(fwrite(ctx->map,ctx->nxblocks*(size_t)ctx->nyblocks,1,map_file)<1){
    fprintf(stderr,"Error writing to output file '%s'.\n",map_filename);
    return EXIT_FAILURE;
  }
  fclose(map_file);
  free(map_filename);
  weights_filename=get_weights_filename(ctx->name,
   ctx->pli,ctx->nxblocks,ctx->nyblocks);
  weights_file=fopen(weights_filename,"wb");
  if(weights_file==NULL){
    fprintf(stderr,"Error opening output file '%s'.\n",weights_filename);
    return EXIT_FAILURE;
  }
  if(fwrite(ctx->weights,
   ctx->nxblocks*(size_t)ctx->nyblocks*sizeof(*ctx->weights),1,
   weights_file)<1){
    fprintf(stderr,"Error writing to output file '%s'.\n",weights_filename);
    return EXIT_FAILURE;
  }
  fclose(weights_file);
  free(weights_filename);
  free(ctx->weights);
  free(ctx->map);
  printf("Average SATD: %G\n",ctx->satd_avg);
  return EXIT_SUCCESS;
}