cabac.h
上传用户:hjq518
上传日期:2021-12-09
资源大小:5084k
文件大小:3k
源码类别:

Audio

开发平台:

Visual C++

  1. /*!
  2.  ***************************************************************************
  3.  * file
  4.  *    cabac.h
  5.  *
  6.  * brief
  7.  *    Headerfile 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. // CABAC
  20. int get_pic_bin_count(void);
  21. void reset_pic_bin_count(void);
  22. void set_pic_bin_count(EncodingEnvironmentPtr eep);
  23. void arienco_start_encoding(EncodingEnvironmentPtr eep, unsigned char *code_buffer, int *code_len);
  24. void arienco_reset_EC(EncodingEnvironmentPtr eep);
  25. int  arienco_bits_written(EncodingEnvironmentPtr eep);
  26. void arienco_done_encoding(EncodingEnvironmentPtr eep);
  27. void biari_init_context (BiContextTypePtr ctx, const int* ini);
  28. void rescale_cum_freq(BiContextTypePtr bi_ct);
  29. void biari_encode_symbol(EncodingEnvironmentPtr eep, signed short symbol, BiContextTypePtr bi_ct );
  30. void biari_encode_symbol_eq_prob(EncodingEnvironmentPtr eep, signed short symbol);
  31. void biari_encode_symbol_final(EncodingEnvironmentPtr eep, signed short symbol);
  32. MotionInfoContexts* create_contexts_MotionInfo(void);
  33. TextureInfoContexts* create_contexts_TextureInfo(void);
  34. void init_contexts_MotionInfo (MotionInfoContexts  *enco_ctx);
  35. void init_contexts_TextureInfo(TextureInfoContexts *enco_ctx);
  36. void delete_contexts_MotionInfo(MotionInfoContexts *enco_ctx);
  37. void delete_contexts_TextureInfo(TextureInfoContexts *enco_ctx);
  38. void writeHeaderToBuffer(void);
  39. void writeMB_typeInfo_CABAC(SyntaxElement *se, DataPartition *dp);
  40. void writeIntraPredMode_CABAC(SyntaxElement *se, DataPartition *dp);
  41. void writeB8_typeInfo_CABAC(SyntaxElement *se, DataPartition *dp);
  42. void writeRefFrame_CABAC(SyntaxElement *se, DataPartition *dp);
  43. void writeMVD_CABAC(SyntaxElement *se, DataPartition *dp);
  44. void writeCBP_CABAC(Macroblock *currMB, SyntaxElement *se, DataPartition *dp);
  45. void writeDquant_CABAC(SyntaxElement *se, DataPartition *dp);
  46. void writeRunLevel_CABAC(Macroblock* currMB, SyntaxElement *se, DataPartition *dp);
  47. void writeCIPredMode_CABAC(SyntaxElement *se, DataPartition *dp);
  48. void print_ctx_TextureInfo(TextureInfoContexts *enco_ctx);
  49. void writeMB_skip_flagInfo_CABAC(Macroblock *currMB, SyntaxElement *se, DataPartition *dp);
  50. void writeFieldModeInfo_CABAC(SyntaxElement *se, DataPartition *dp); //GB
  51. void writeCBP_BIT_CABAC (Macroblock* currMB, int b8, int bit, int cbp, int inter, EncodingEnvironmentPtr eep_dp, TextureInfoContexts *ctx);
  52. void cabac_new_slice(void);
  53. void CheckAvailabilityOfNeighborsCABAC(Macroblock* currMB);
  54. void writeMB_transform_size_CABAC(SyntaxElement *se, DataPartition *dp);
  55. #endif  // CABAC_H