H 264 code tracing CABAC G 5 B
H. 264 code tracing - CABAC G 5 B 6 9862614 王恩儷
Outline �Introduction �x 264_cabac_mb_qp_delta �x 264_cabac_encode_decision �Supplement
Introduction x 264_cabac_encode_decision_n oup x 264_cabac_encode_flush x 264_cabac_encode_termina l (3) x 264_cabac_encode_decision (6) x 264_mb_predict_mv x 264_cabac_mvd_sum (4) x 264_cabac_mb_mvd_cpn (4) x 264_cabac_mb_mvd x 264_cabac_mb_type x 264_mb_predict_intra 4 x 4_ mode x 264_cabac_mb_intra 4 x 4_p red_mode x 264_cabac_mb_intra_chro ma_pred_mode x 264_cabac_mb_ref (3) (5) (5) (4) x 264_cabac_mb_mvd x 264_cabac_mb_sub_p_part (7) ition (4) x 264_cabac_mb 8 x 8_mvd x 264_cabac_mb_sub_b_part ition (7) x 264_cabac_mb_cbp_luma x 264_cabac_mb_cbp_chrom a (6) x 264_cabac_mb_qp_delta cavlc_mb_mvd cavlc_mb 8 x 8_mvd cavlc_qp_delta x 264_macroblock_luma_wri te_cavlc (8) x 264_macroblock_write_cabac x 264_macroblock_write_cavlc (1) (2)
Introduction update probability estimation Context modeling Binarization Probability estimation Coding engine Adaptive binary arithmetic coder Maps non-binary Chooses a model conditioned on past symbols to a binary sequence observations Uses the provided model for the actual encoding and updates the model
x 264_cabac_mb_qp_delta Objective encode QP 差值 Input x 264_t *h, x 264_cabac_t *cb Output none Reference x 264_cabac_encode_decision、 x 264_cabac_encode_decision_noup Referenced by 264_macroblock_write_cabac In which file cabac. c
x 264_cabac_mb_qp_delta Empty I_16 x 16 Y 用之前的qp值 dqp = 0 N 計算ctx值 dqp ≠ 0 N Y 用val調整qp值 Encode dqp值 End
x 264_cabac_mb_qp_delta 如果是empty block那我們就不需要更新QP值可把i_dqp直接設為 0 。 Cabac. c
x 264_cabac_mb_qp_delta 先計算ctx的值作為context index的根據;ctx的值會在 60~63之間 若是QP值有更新,用val 調整i_dqp ex. 若val=5 ,encode 111110 Cabac. c
x 264_cabac_encode_decision � � Objective encode bin 並以查表的方式更新probability Input x 264_cabac_t *cb, int i_ctx, int b Output none Reference x 264_cabac_encode_renorm : Referenced by x 264_cabac_mb_type : In which file � : � : cabac. c(common)
x 264_cabac_encode_decision Cabac. h Function中傳入的參數有 x 264_cabac_t *cb , 左圖為它的struct, 此處的state儲存 probability, 以context index為array index
x 264_cabac_encode_decision 判斷如果是使用HAVE_MMX, 那麼x 264_cabac_encode_decision要使用的function是 x 264_cabac_encode_decision_asm, 否則則使用x 264_cabac_encode_decision_c Cabac. h
x 264_cabac_encode_decision σ表示probability (64種) ρ表示range (4種) ρ = (R>>6) & 3 RLPS = Tab. Range. LPS[σ, ρ] R = R-RLPS ϖ表示LPS或MPS LPS bin. Val != ω MPS L = L+ R R = RLPS σ = Trans. Idx. LPS[σ] Renorm. E Done
x 264_cabac_encode_decision Cabac. c
x 264_cabac_encode_decision
Supplement x 264_cabac_encode_decisio n Cabac Rdo x 264_cabac_encode_decision_asm x 264_cabac_size_decision x 264_cabac_encode_decision_c
Supplement Rdo. c Cabac. h
- Slides: 16