blob: 1f2f7953c004f64787448c8a68500c9c2d606b2b [file] [log] [blame]
/*!
***************************************************************************
* \file
* cabac.h
*
* \brief
* Headerfile for entropy coding routines
*
* \author
* Detlev Marpe \n
* Copyright (C) 2000 HEINRICH HERTZ INSTITUTE All Rights Reserved.
*
* \date
* 21. Oct 2000 (Changes by Tobias Oelbaum 28.08.2001)
***************************************************************************
*/
#ifndef _CABAC_H_
#define _CABAC_H_
// CABAC
int get_pic_bin_count(void);
void reset_pic_bin_count(void);
void arienco_start_encoding(EncodingEnvironmentPtr eep, unsigned char *code_buffer, int *code_len);
int arienco_bits_written(EncodingEnvironmentPtr eep);
void arienco_done_encoding(EncodingEnvironmentPtr eep);
void biari_init_context (BiContextTypePtr ctx, const int* ini);
void rescale_cum_freq(BiContextTypePtr bi_ct);
void biari_encode_symbol(EncodingEnvironmentPtr eep, signed short symbol, BiContextTypePtr bi_ct );
void biari_encode_symbol_eq_prob(EncodingEnvironmentPtr eep, signed short symbol);
void biari_encode_symbol_final(EncodingEnvironmentPtr eep, signed short symbol);
MotionInfoContexts* create_contexts_MotionInfo(void);
TextureInfoContexts* create_contexts_TextureInfo(void);
void init_contexts_MotionInfo (MotionInfoContexts *enco_ctx);
void init_contexts_TextureInfo(TextureInfoContexts *enco_ctx);
void delete_contexts_MotionInfo(MotionInfoContexts *enco_ctx);
void delete_contexts_TextureInfo(TextureInfoContexts *enco_ctx);
void writeHeaderToBuffer(void);
void writeMB_typeInfo_CABAC(SyntaxElement *se, DataPartition *dp);
void writeIntraPredMode_CABAC(SyntaxElement *se, DataPartition *dp);
void writeB8_typeInfo_CABAC(SyntaxElement *se, DataPartition *dp);
void writeRefFrame_CABAC(SyntaxElement *se, DataPartition *dp);
void writeMVD_CABAC(SyntaxElement *se, DataPartition *dp);
void writeCBP_CABAC(SyntaxElement *se, DataPartition *dp);
void writeDquant_CABAC(SyntaxElement *se, DataPartition *dp);
void writeRunLevel_CABAC(SyntaxElement *se, DataPartition *dp);
void writeCIPredMode_CABAC(SyntaxElement *se, DataPartition *dp);
void print_ctx_TextureInfo(TextureInfoContexts *enco_ctx);
void writeMB_skip_flagInfo_CABAC(SyntaxElement *se, DataPartition *dp);
void writeFieldModeInfo_CABAC(SyntaxElement *se, DataPartition *dp); //GB
void writeCBP_BIT_CABAC (int b8, int bit, int cbp, Macroblock* currMB, int inter, EncodingEnvironmentPtr eep_dp);
void cabac_new_slice(void);
void CheckAvailabilityOfNeighborsCABAC(void);
void writeMB_transform_size_CABAC(SyntaxElement *se, DataPartition *dp);
#endif // CABAC_H