對于我來說,這個是一個老問題了。以前藍風車專門給我講解,我都沒搞懂(真有點對不起藍風車的細心教誨哈。呵呵~~~)。今天終于弄清楚了,特此總結出來,請大家指正。? ?? ?? ?? ?? ?
=================================================================================? ?? ?? ?? ?? ?
B_Skip類型宏塊(200503版標準,表7-14最后一行):? ?? ?? ? 無像素殘差,無運動矢量殘差(MVD)。解碼時,通過Direct預測模式(時間或空間)計算出前、后向MV后,直接利用前、后向MV得到像素預測值。像素重構值=像素預測值? ?? ???
B_Direct_16*16類型宏塊(200503版標準,表7-14第一行):有像素殘差,無運動矢量殘差(MVD)。解碼時,通過Direct預測模式(時間或空間)計算出前、后向MV后,利用前、后向MV得到像素預測值。然后,像素重構值=像素預測值+像素殘差解碼值? ?? ?
P_Skip類型宏塊(200503版標準,表7-13最后一行):? ?? ?? ? 也就是COPY宏塊。無像素殘差,無運動矢量殘差(MVD)。直接利用預測MV得到像素預測值。像素重構值=像素預測值? ?? ???
【特別說明】:
1、有殘差就有CBP(表示殘差編碼狀態,詳見BBS中我的帖子“CBP詳解”),反過來沒有殘差當然就沒有CBP;? ?? ?
2、請一定不要把 Direct 類型宏塊、Skip 類型宏塊、Direct 預測模式這三個混淆了。B_Skip 類型宏塊(大小為 16*16)、B_Direct_8*8 類型塊(大小為 8*8)和B_Direct 類型宏塊(大小為 16*16)都采用的是 Direct 預測模式;
3、關于時間和空間的Direct 預測模式,請大家參考標準文檔的8.4.1.2小節;
4、與本論壇另一篇帖子“請問Skipped Macroblock是什么意思? ”參照學習;
5、我是跟蹤JM86解碼過程得出以上結論的。如果某些部分有點錯誤,請大家指正。
=================================================================================? ?? ?? ?? ?? ?
B_Skip類型宏塊(200503版標準,表7-14最后一行):? ?? ?? ? 無像素殘差,無運動矢量殘差(MVD)。解碼時,通過Direct預測模式(時間或空間)計算出前、后向MV后,直接利用前、后向MV得到像素預測值。像素重構值=像素預測值? ?? ???
B_Direct_16*16類型宏塊(200503版標準,表7-14第一行):有像素殘差,無運動矢量殘差(MVD)。解碼時,通過Direct預測模式(時間或空間)計算出前、后向MV后,利用前、后向MV得到像素預測值。然后,像素重構值=像素預測值+像素殘差解碼值? ?? ?
P_Skip類型宏塊(200503版標準,表7-13最后一行):? ?? ?? ? 也就是COPY宏塊。無像素殘差,無運動矢量殘差(MVD)。直接利用預測MV得到像素預測值。像素重構值=像素預測值? ?? ???
【特別說明】:
1、有殘差就有CBP(表示殘差編碼狀態,詳見BBS中我的帖子“CBP詳解”),反過來沒有殘差當然就沒有CBP;? ?? ?
2、請一定不要把 Direct 類型宏塊、Skip 類型宏塊、Direct 預測模式這三個混淆了。B_Skip 類型宏塊(大小為 16*16)、B_Direct_8*8 類型塊(大小為 8*8)和B_Direct 類型宏塊(大小為 16*16)都采用的是 Direct 預測模式;
3、關于時間和空間的Direct 預測模式,請大家參考標準文檔的8.4.1.2小節;
4、與本論壇另一篇帖子“請問Skipped Macroblock是什么意思? ”參照學習;
5、我是跟蹤JM86解碼過程得出以上結論的。如果某些部分有點錯誤,請大家指正。