16 int i_bytes_outstanding;
39 extern const uint8_t x264_cabac_transition[128][2];
40 extern const uint16_t x264_cabac_entropy[128];
43 void x264_cabac_context_init(
x264_t *h,
x264_cabac_t *cb,
int i_slice_type,
int i_qp,
int i_model);
44 void x264_cabac_encode_init(
x264_cabac_t *cb, uint8_t *p_data, uint8_t *p_end);
45 void x264_cabac_encode_decision_c(
x264_cabac_t *cb,
int i_ctx,
int b);
46 void x264_cabac_encode_bypass_c(
x264_cabac_t *cb,
int b);
48 void x264_cabac_encode_ue_bypass(
x264_cabac_t *cb,
int exp_bits,
int val);
51 #define x264_cabac_encode_decision x264_cabac_encode_decision_c
52 #define x264_cabac_encode_bypass x264_cabac_encode_bypass_c
53 #define x264_cabac_encode_terminal x264_cabac_encode_terminal_c
54 #define x264_cabac_encode_decision_noup x264_cabac_encode_decision
56 static ALWAYS_INLINE
int x264_cabac_pos(
x264_cabac_t *cb) {
57 return ((cb->p - cb->p_start + cb->i_bytes_outstanding) << 3) + cb->i_queue;
62 static ALWAYS_INLINE
void x264_cabac_size_decision(
x264_cabac_t *cb,
long i_ctx,
long b) {
63 int i_state = cb->state[i_ctx];
64 cb->state[i_ctx] = x264_cabac_transition[i_state][b];
65 cb->f8_bits_encoded += x264_cabac_entropy[i_state ^ b];
68 static ALWAYS_INLINE
int x264_cabac_size_decision2(uint8_t *state,
long b) {
70 *state = x264_cabac_transition[i_state][b];
71 return x264_cabac_entropy[i_state ^ b];
74 static ALWAYS_INLINE
void x264_cabac_size_decision_noup(
x264_cabac_t *cb,
long i_ctx,
long b) {
75 int i_state = cb->state[i_ctx];
76 cb->f8_bits_encoded += x264_cabac_entropy[i_state ^ b];
79 static ALWAYS_INLINE
int x264_cabac_size_decision_noup2(uint8_t *state,
long b) {
80 return x264_cabac_entropy[*state ^ b];