X 264 CODE TRACING 1 Group 5 Block
X 264 CODE TRACING 1 Group: 5 Block: 3 9862639 盧偉民
TRACE FUNCTION x 264_cabac_mb_type p x 264_cabac_encode_decision_noup p x 264_cabac_encode_flush p x 264_cabac_encode_terminal p 2
FUNCTION結構圖 x 264_cabac_mb_type _intra x 264_cabac_encode_ decision_flush x 264_cabac_encode_d ecision_terminal x 264_cabac_encode_ decision_noup x 264_cabac_ putbyte x 264_cabac_encod e_renorm x 264_cabac_siz e_decision_nou p x 264_cabac_enco de_decision x 264_cabac_encode_ decision_c 3
THE CABAC FRAMEWORK 4
THE CABAC FRAMEWORK 5
TRACE FUNCTION x 264_cabac_mb_type p x 264_cabac_encode_decision_noup p x 264_cabac_encode_flush p x 264_cabac_encode_terminal p 6
X 264_CABAC_MB_TYPE Target 依據slice和macroblock type不同設定不同 的context index,並將每種macroblock type轉化成bin string,根據bin和context index呼叫x 264_cabac_encode_decision_c 作binary arithmetic coding Input x 264_t *h , x 264_cabac_t *cb Output none In which file encodercabac. c caller x 264_macroblock_write_cabac() 7
X 264_CABAC_MB_TYPE 8
X 264_CABAC_MB_TYPE 9
X 264_CABAC_MB_TYPE 10
X 264_CABAC_MB_TYPE 11
X 264_CABAC_MB_TYPE 12
X 264_CABAC_MB_TYPE else //if( h->sh. i_type == SLICE_TYPE_B ) B_DIRECT B_L 0_L 1 B_L 0_BI B_L 1_L 0 B_L 1_BI B_BI_L 0 B_BI_L 1 B_BI_BI B_8 x 8 B_SKIP = 7, = 8, = 9, = 10, = 11, = 12, = 13, = 14, = 15, = 16, = 17, = 18, 13
TRACE FUNCTION x 264_cabac_mb_type p x 264_cabac_encode_decision_noup p x 264_cabac_encode_flush p x 264_cabac_encode_terminal p 14
X 264_CABAC_ENCODE_DECISION_NOUP u (a)在commoncabac. h 檔中,此函式被定義為 x 264_cabac_encode_decision 15
X 264_CABAC_ENCODE_DECISION_NOUP u (a)在commoncabac. h 檔中,此函式被定義為 x 264_cabac_encode_decision 16
X 264_CABAC_ENCODE_DECISION_NOUP u (b)在encoderrdo. c 檔中,此函式定義為 x 264_cabac_size_decision_noup 17
TRACE FUNCTION x 264_cabac_mb_type p x 264_cabac_encode_decision_noup p x 264_cabac_encode_flush p x 264_cabac_encode_terminal p 18
X 264_CABAC_ENCODE_FLUSH Target 當macroblock type為I_PCM時,這時候並 不會做DCT transform或quantization,而 是直接傳送pixel value,所以在傳送前必 須終止CABAC。 Input x 264_t *h , x 264_cabac_t *cb Output None In which file commoncabac. c Caller x 264_cabac_mb_type_intra() 19
TRACE FUNCTION x 264_cabac_mb_type p x 264_cabac_encode_decision_noup p x 264_cabac_encode_flush p x 264_cabac_encode_terminal p 20
X 264_CABAC_ENCODE_TERMINAL Target 主要將range值減 2,並呼叫x 264_cabac _encode_renorm這個函式renormalization, 目的是希望讓low和range保持在一定範圍 內 Input x 264_cabac_t *cb Output none In which file commoncabac. c caller x 264_cabac_mb_type_intra() 21
X 264_CABAC_ENCODE_TERMINAL 22
- Slides: 22