幀間預測--AMVP模式理論部分

上一篇提到的merge模式下直接使用MVP作爲MVAMVP模式多了一個MVD的計算,當然並不僅僅是這點,下面看AMVP實現的理論流程,我盡力還原我學習的思維歷程。

參考西電楊老師的書《H.265/HEVC原理、標準與實現》,學習HEVC的手頭備一本很方便。

AMVPAdvanced Motion Vector Prediction)高級運動向量預測,類似merge,先建立候選列表,建立列表之後從中選出最優的MV,並對MV進行差分編碼(就是與真正的MV對比求差,保存差值MVD)。

我一開始的疑惑是,你參考其他的MV,其他的MV參考另一個的MV,那最早的一個MV怎麼求的?還有那個真正的MV是怎麼求的?是用默認值嗎,默認值怎麼想都不合理啊。這個問題還與後面運動估計相關,H.265中運動估計用到的起始搜索點和MVP是由AMVP確定的,到了運動估計我相信你也會有疑問,那最早那一幀的第一個搜索點和MVP是怎麼確定的?這問題先保留,一步一步往下來探索。

AMVP空域:

 

圖一、候選PU

AMVP的候選列表建立的繁瑣一點,大小也是5,不夠5個就補零,列表填充順序:左面,A0->A1->scaledA0->scaledA1,上面三個,B0->B1->B2(->scaledB0->scaledB1->scaledB2),按順序哪個能用用哪個。

能用的標準:①參考的PU存在

參考的PU不是幀內預測模式(想用也沒辦法,它沒MV)

參考的PU有MV,但它的MV參考的那幀圖像和當前PU參考的圖像不是一幅,它的MV不能直接用,而是使用比例伸縮後得到scaledMV(是不是覺得比例伸縮還挺好使),所以一個PU的MV與scaledMV同時只存在一個(個人理解)。

上面三個參考PU,只有在左側不用時纔會選它們作爲備選(代碼中可能會有出入,不知道會不會一下子都填好)。

AMVP時域:

時域列表的建立與merge相同,參考同位PU並進行MV的伸縮(同位PU是怎麼尋找的?)。

 

AMVP最終列表:

參考merge,流程如下:

 

圖二、AMVP候選列表建立

先建空域列表、時域列表,從空域選兩個、時域選一個共三個,三個裏有相同的MV就合併,組成一個新表,新表裏其餘都填(0,0),最後只保留前兩個作爲AMVP模式下的候選列表。

發現上一篇和這一篇主要是說候選表的建立(挑學習好的抄作業,不能老嗑一個人抄,還專門做了個小本本記下名字,用到就瞅瞅看這次翻誰的牌子>~<),涉及的不是太多,路還很長,要拼命跑呀。

回首向來瀟灑處,也無風雨也無晴!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章