MBAFF時相鄰宏塊的獲取過程--補充

Q:當 currMbFrameFlag = 0,mbIsTopMbFlag = 1時,

2、根據當前宏塊對的屬性來確定相鄰像素點:
因爲當前宏塊爲頂場宏塊,所以 c 的左上角相鄰像素點爲 b

我怎麼想也是c 的左上角相鄰像素點爲 a
請問版主,爲什麼是b呢,期待回答

 

A:因爲 currMbFrameFlag = 0,mbIsTopMbFlag = 1,所以當前是頂場,那麼在相鄰宏塊對裏也要找組成頂場的點。a 是屬於低場的,b 才屬於頂場。

 

Q:樓主所述列表中, yM的取值有如下情況:
1、yM = (yN + maxH) >> 2 ;
2、yM = 2*yN;

yM爲何要如此取值?應用場景?實在是想不通,請高人詳細說明一下,謝謝了

 

A:注意我帖子中最後的一句話:“表中最後一列的 yM 值是按(xN,yN)所在宏塊對的幀場屬性對其所在宏塊的像素點分幀場之後 a、b、c、d、e、f  各點的縱座標。”

1、當 yM = (yN + maxH) >> 2 時,根據各宏塊對屬性,如我主貼所述找到的相鄰點是 e 點。那麼綠色宏塊對經過隔行抽取(因爲 mbAddrXFrameFlag = 0)之後,請思考 e 點會跑到什麼位置,而此時 e 點與 f 點的距離又是多少?這個距離就是 yM;

2、同理,當 yM = 2*yN 時,根據各宏塊對屬性,如我主貼所述找到的相鄰點是 b 點。而 b 點距離 c 點的縱座標是 -2。既然 yM = -2,而 yN = -1,那麼 yM = 2*yN 不對麼?

PS:當 yN < 0 時,yN 只會等於 -1;當yM < 0 時,yM 也只會等於 -1。

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