00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef _VLC_H_
00014 #define _VLC_H_
00015
00016 #include "enc_statistics.h"
00017
00018 Boolean u_1 (char *tracestring, int value, Bitstream *bitstream);
00019 int se_v (char *tracestring, int value, Bitstream *bitstream);
00020 int ue_v (char *tracestring, int value, Bitstream *bitstream);
00021 int u_v (int n, char *tracestring, int value, Bitstream *bitstream);
00022
00023 void levrun_linfo_c2x2(int level,int run,int *len,int *info);
00024 void levrun_linfo_inter(int level,int run,int *len,int *info);
00025
00026 void writeSE_Fix (SyntaxElement *se, Bitstream *bitstream);
00027 void writeSE_UVLC (SyntaxElement *se, DataPartition *dp);
00028 void writeSE_SVLC (SyntaxElement *se, DataPartition *dp);
00029 void writeSE_Flag (SyntaxElement *se, DataPartition *dp);
00030 void writeSE_invFlag (SyntaxElement *se, DataPartition *dp);
00031 void writeSE_Dummy (SyntaxElement *se, DataPartition *dp);
00032
00033 void writeCBP_VLC (Macroblock* currMB, SyntaxElement *se, DataPartition *dp);
00034 void writeIntraPredMode_CAVLC (SyntaxElement *se, DataPartition *dp);
00035 int writeSyntaxElement2Buf_UVLC (SyntaxElement *se, Bitstream* this_streamBuffer );
00036 void writeUVLC2buffer (SyntaxElement *se, Bitstream *currStream);
00037 void writeVlcByteAlign (Bitstream* currStream, StatParameters *cur_stats);
00038 int writeSyntaxElement2Buf_Fixed(SyntaxElement *se, Bitstream* this_streamBuffer );
00039 int symbol2uvlc (SyntaxElement *se);
00040 void ue_linfo (int n, int dummy, int *len,int *info);
00041 void se_linfo (int mvd, int dummy, int *len,int *info);
00042 void cbp_linfo_intra(int cbp, int dummy, int *len,int *info);
00043 void cbp_linfo_inter(int cbp, int dummy, int *len,int *info);
00044
00045
00046 void CAVLC_init(void);
00047
00048 int writeSyntaxElement_VLC(SyntaxElement *se, DataPartition *this_dataPart);
00049 int writeSyntaxElement_TotalZeros(SyntaxElement *se, DataPartition *this_dataPart);
00050 int writeSyntaxElement_TotalZerosChromaDC(SyntaxElement *se, DataPartition *this_dataPart);
00051 int writeSyntaxElement_Run(SyntaxElement *se, DataPartition *this_dataPart);
00052 int writeSyntaxElement_NumCoeffTrailingOnes(SyntaxElement *se, DataPartition *this_dataPart);
00053 int writeSyntaxElement_NumCoeffTrailingOnesChromaDC(SyntaxElement *se, DataPartition *this_dataPart);
00054 int writeSyntaxElement_Level_VLC1(SyntaxElement *se, DataPartition *this_dataPart, int profile_idc);
00055 int writeSyntaxElement_Level_VLCN(SyntaxElement *se, int vlc, DataPartition *this_dataPart, int profile_idc);
00056
00057 void reset_mb_nz_coeff(int mb_number);
00058
00059 #endif
00060