X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=common%2Fcabac.h;h=9d0fddd2899038687f2882bc86e0f4332de111a5;hb=79704fa50d50a6ae756643ad69f0170e5af831fd;hp=f5efa248aa46f0c2117501e659cea5146732bef8;hpb=bdbd4fe7709e129f90cf3d7d59b500e915c6b187;p=x264 diff --git a/common/cabac.h b/common/cabac.h index f5efa248..9d0fddd2 100644 --- a/common/cabac.h +++ b/common/cabac.h @@ -40,7 +40,7 @@ typedef struct /* aligned for memcpy_aligned starting here */ DECLARE_ALIGNED_16( int f8_bits_encoded ); // only if using x264_cabac_size_decision() - + /* context */ uint8_t state[460]; } x264_cabac_t; @@ -65,6 +65,7 @@ void x264_cabac_encode_flush( x264_t *h, x264_cabac_t *cb ); #else #define x264_cabac_encode_decision x264_cabac_encode_decision_c #endif +#define x264_cabac_encode_decision_noup x264_cabac_encode_decision static inline int x264_cabac_pos( x264_cabac_t *cb ) { @@ -87,7 +88,13 @@ static inline int x264_cabac_size_decision2( uint8_t *state, long b ) return x264_cabac_entropy[i_state][b]; } -static inline int x264_cabac_size_decision_noup( uint8_t *state, long b ) +static inline void x264_cabac_size_decision_noup( x264_cabac_t *cb, long i_ctx, long b ) +{ + int i_state = cb->state[i_ctx]; + cb->f8_bits_encoded += x264_cabac_entropy[i_state][b]; +} + +static inline int x264_cabac_size_decision_noup2( uint8_t *state, long b ) { return x264_cabac_entropy[*state][b]; }