cabac.h 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /*!
  2. ***************************************************************************
  3. * \file
  4. * cabac.h
  5. *
  6. * \brief
  7. * Header file for entropy coding routines
  8. *
  9. * \author
  10. * Detlev Marpe \n
  11. * Copyright (C) 2000 HEINRICH HERTZ INSTITUTE All Rights Reserved.
  12. *
  13. * \date
  14. * 21. Oct 2000 (Changes by Tobias Oelbaum 28.08.2001)
  15. ***************************************************************************
  16. */
  17. #ifndef _CABAC_H_
  18. #define _CABAC_H_
  19. #include "global.h"
  20. typedef struct Run_Level
  21. {
  22. int level;
  23. int run;
  24. } RunLevel;
  25. extern MotionInfoContexts* create_contexts_MotionInfo(void);
  26. extern TextureInfoContexts* create_contexts_TextureInfo(void);
  27. extern void delete_contexts_MotionInfo(MotionInfoContexts *enco_ctx);
  28. extern void delete_contexts_TextureInfo(TextureInfoContexts *enco_ctx);
  29. extern void cabac_new_slice(Slice *currSlice);
  30. extern int readMB_typeInfo_CABAC(Macroblock *currMB, DecodingEnvironmentPtr dep_dp);
  31. extern int readB8_typeInfo_CABAC(Slice *currSlice, DecodingEnvironmentPtr dep_dp);
  32. extern int readIntraPredMode_CABAC(Slice *currSlice, DecodingEnvironmentPtr dep_dp);
  33. extern char readRefFrame_CABAC(Macroblock *currMB, DecodingEnvironmentPtr dep_dp, int list, int x, int y);
  34. extern char readRefFrame_CABAC0(Macroblock *currMB, DecodingEnvironmentPtr dep_dp, int list, int y);
  35. extern int readMVD_CABAC(Macroblock *currMB, DecodingEnvironmentPtr dep_dp, int k, int list, int x, int y);
  36. extern int readCBP_CABAC (Macroblock *currMB, DecodingEnvironmentPtr dep_dp);
  37. // readRunLevel_CABAC returns level and sets *run
  38. extern RunLevel readRunLevel_CABAC(Macroblock *currMB, DecodingEnvironmentPtr dep_dp, int context);
  39. extern short readDquant_CABAC(Slice *currSlice, DecodingEnvironmentPtr dep_dp);
  40. extern char readCIPredMode_CABAC (Macroblock *currMB, DecodingEnvironmentPtr dep_dp);
  41. extern int readMB_skip_flagInfo_CABAC (Macroblock *currMB, DecodingEnvironmentPtr dep_dp);
  42. extern Boolean readFieldModeInfo_CABAC (Macroblock *currMB, DecodingEnvironmentPtr dep_dp);
  43. extern Boolean readMB_transform_size_flag_CABAC(Macroblock *currMB, DecodingEnvironmentPtr dep_dp);
  44. extern void readIPCM_CABAC(Slice *currSlice, struct datapartition *dP);
  45. extern int cabac_startcode_follows(Slice *currSlice, int eos_bit);
  46. extern int check_next_mb_and_get_field_mode_CABAC(Slice *currSlice, DataPartition *act_dp);
  47. extern void CheckAvailabilityOfNeighborsCABAC(Macroblock *currMB);
  48. extern void set_read_and_store_CBP(Macroblock **currMB, int chroma_format_idc);
  49. #endif // _CABAC_H_