enc_statistics.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*!
  2. **************************************************************************
  3. * \file enc_statistics.h
  4. *
  5. * \brief
  6. * statistics reports for the encoding process.
  7. *
  8. * \author
  9. * Main contributors (see contributors.h for copyright, address and affiliation details)
  10. * - Alexis Tourapis <[email protected]>
  11. * - Karsten Sühring <[email protected]>
  12. *
  13. **************************************************************************
  14. */
  15. #ifndef _ENC_STATISTICS_H_
  16. #define _ENC_STATISTICS_H_
  17. #include "global.h"
  18. struct stat_parameters
  19. {
  20. float bitr; //!< bit rate for current frame, used only for output til terminal
  21. float bitrate; //!< average bit rate for the sequence except first frame
  22. int64 bit_ctr; //!< counter for bit usage
  23. int64 bit_ctr_n; //!< bit usage for the current frame
  24. int64 bit_ctr_emulationprevention; //!< stored bits needed to prevent start code emulation
  25. int bit_slice; //!< number of bits in current slice
  26. int stored_bit_slice; //!< keep number of bits in current slice (to restore status in case of MB re-encoding)
  27. int b8_mode_0_use [NUM_SLICE_TYPES][2];
  28. int64 mode_use_transform[NUM_SLICE_TYPES][MAXMODE][2];
  29. int64 intra_chroma_mode[4];
  30. // B pictures
  31. int NumberBFrames;
  32. int frame_counter;
  33. int64 quant [NUM_SLICE_TYPES];
  34. int64 num_macroblocks [NUM_SLICE_TYPES];
  35. int frame_ctr [NUM_SLICE_TYPES];
  36. int64 bit_counter [NUM_SLICE_TYPES];
  37. float bitrate_st [NUM_SLICE_TYPES];
  38. int64 mode_use [NUM_SLICE_TYPES][MAXMODE]; //!< Macroblock mode usage for Intra frames
  39. int64 bit_use_mode [NUM_SLICE_TYPES][MAXMODE]; //!< statistics of bit usage
  40. int64 bit_use_mb_type [NUM_SLICE_TYPES];
  41. int64 bit_use_header [NUM_SLICE_TYPES];
  42. int64 tmp_bit_use_cbp [NUM_SLICE_TYPES];
  43. int64 bit_use_coeffC [NUM_SLICE_TYPES];
  44. int64 bit_use_coeff [3][NUM_SLICE_TYPES];
  45. int64 bit_use_delta_quant [NUM_SLICE_TYPES];
  46. int64 bit_use_stuffingBits[NUM_SLICE_TYPES];
  47. int bit_ctr_parametersets;
  48. int bit_ctr_parametersets_n;
  49. int64 bit_ctr_filler_data;
  50. int64 bit_ctr_filler_data_n;
  51. };
  52. typedef struct stat_parameters StatParameters;
  53. #endif