xchg_mb_border() 交換 MB 邊界的像素。
閱讀代碼可知,交換雙方為邊界緩存 (left_border,top_borders) 與重建圖象中的相應數據。
其中 xchg 參數是否為 1 決定,在從邊界緩存賦值到重建圖象的同時,是否保存重建圖象的數據到邊界緩存。
此函數僅用于 I 塊解碼。
⒈ 邊界緩存僅在xchg_mb_border() 與 backup_mb_border() 中使用。
⒈ 邊界緩存僅在xchg_mb_border() 與 backup_mb_border() 中使用。
⒉xchg_mb_border() 函數在圖象重建過程中調用兩次。預測前,調用一次, xchg 參數為 1 ;補償后,調用一次, xchg 參數為 0 。
⒊backup_mb_border() 備份的是對應于下一宏塊的邊界像素。
⒋backup_mb_border() 僅在濾波前調用。
結論:
⒋backup_mb_border() 僅在濾波前調用。
結論:
上一宏塊:
⒈ 備份濾波前的下一宏塊邊緣像素。
⒉ 濾波。當前宏塊(I塊):
⒈ 備份濾波前的下一宏塊邊緣像素。
⒉ 濾波。當前宏塊(I塊):
⒈ 交換邊界緩存與重建圖象相應數據。
⒉ 幀內預測、補償。
⒊ 從邊界緩存恢復數據到重建圖象。
如此往復。