久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

H.264中MV預(yù)測過程詳解

 H.264andC 2011-07-10

H.264中MV預(yù)測過程詳解

分類: H.264 19人閱讀 評論(0) 收藏 舉報

===========第一步:確定相鄰塊===========

      MV 預(yù)測以宏塊分割(或亞宏塊分割,,如果宏塊存在亞分割)為單位,同一個宏塊分割(或亞宏塊分割)內(nèi)所有 4*4 塊 MV 預(yù)測值相同。以每個宏塊分割(或亞宏塊分割)的左上角像素 pixel1 和右上角像素 pixel2 為參考點來確定相鄰塊則:
      pixel1 左側(cè)相鄰像素所在 4*4 塊為當前宏塊分割(或亞宏塊分割)的相鄰塊 A
      pixel1 上方相鄰像素所在 4*4 塊為當前宏塊分割(或亞宏塊分割)的相鄰塊 B
      pixel2 右上對角線像素所在 4*4 塊為當前宏塊分割(或亞宏塊分割)的相鄰塊 C
      pixel1 左上對角線像素所在 4*4 塊為當前宏塊分割(或亞宏塊分割)的相鄰塊 D

 

以最復(fù)雜的 8*8 宏塊分割類型為例(此時只存在亞宏塊分割),分析如下:
      假設(shè)圖中黑色框表示宏塊、每個綠色框表示一個 4*4 塊、每個紅色框表示一個 8*8 塊。當前宏塊的宏塊分割模式為 8*8(如圖中紅色線),,其亞宏塊分割模式分別為:第一個 8*8 塊為 8*8,第二個 8*8 塊為 4*4(如圖中藍色線),,第三個 8*8 塊為 4*8(如圖中藍色線),,第四個 8*8 塊為 8*4(如圖中藍色線)。則按照上述方法來確定相鄰塊的方法如下:
      第一個預(yù)測對象為第一個 8*8 塊,,以其左上角像素 pixel1 和右上角像素 pixel2 為參考點,,則:A 為 7 號 4*4 塊,B 為 2 號 4*4 塊,,C 為 4 號 4*4 塊,,D 為 1 號 4*4 塊。9,、14,、15 與 8 具有相同 MV 預(yù)測值
      第二個預(yù)測對象為第二個 8*8 塊的第一個 4*4 塊,即 10 號塊,,以其左上角像素 pixel1 和右上角像素 pixel2 為參考點,,則:A 為 9 號4*4塊,B 為 4 號4*4塊,,C 為 5 號 4*4 塊,, D 為 3 號 4*4 塊
      第三個預(yù)測對象為第二個 8*8 塊的第二個 4*4 塊,即 11 號塊,,以其左上角像素 pixel1 和右上角像素 pixel2 為參考點,,則:A 為 10 號4*4塊,B 為 5 號4*4塊,,C 為 6 號 4*4 塊,,D 為 4 號 4*4 塊
      第四個預(yù)測對象為第二個 8*8 塊的第三個 4*4 塊,即 16 號塊,,以其左上角像素 pixel1 和右上角像素 pixel2 為參考點,,則:A 為 15 號4*4塊,B 為 10 號4*4塊,,C 為 11 號 4*4 塊,,D 為 9 號 4*4 塊
      第五個預(yù)測對象為第二個 8*8 塊的第四個 4*4 塊,即 17 號塊,,以其左上角像素 pixel1 和右上角像素 pixel2 為參考點,,則:A 為 16 號4*4塊,B 為 11 號4*4塊,,C 為 12 號 4*4 塊,,D 為 10 號 4*4 塊
      第六個預(yù)測對象為第三個 8*8 塊的第一個 4*8 塊,以其左上角像素 pixel1 和右上角像素 pixel2 為參考點,,則:A 為 19 號 4*4 塊,,B 為 14 號 4*4 塊,C 為 15 號 4*4 塊,,D 為 13 號 4*4 塊,。26 與 20 具有相同 MV 預(yù)測值
      第七個預(yù)測對象為第三個 8*8 塊的第二個 4*8 塊,以其左上角像素 pixel1 和右上角像素 pixel2 為參考點,,則:A 為 20 號 4*4 塊,,B 為 15 號 4*4 塊,C 為 16 號 4*4 塊,,D 為 14 號 4*4 塊,。27 與 21 具有相同 MV 預(yù)測值
      第八個預(yù)測對象為第四個 8*8 塊的第一個 8*4 塊,以其左上角像素 pixel1 和右上角像素 pixel2 為參考點,,則:A 為 21 號 4*4 塊,,B 為 16 號 4*4 塊,C 為 18 號 4*4 塊,,D 為 15 號 4*4 塊,。23 與 22 具有相同 MV 預(yù)測值
     第九個預(yù)測對象為第四個 8*8 塊的第二個 8*4 塊,以其左上角像素 pixel1 和右上角像素 pixel2 為參考點,,則:A 為 27 號 4*4 塊,,B 為 22 號 4*4 塊,C 為 24 號 4*4 塊,,D 為 21 號 4*4 塊,。29 與 28 具有相同 MV 預(yù)測值



===========第二步:確定 A、B,、C 的可用性===========

根據(jù) A,、B、C 所在宏塊是否存在或者是否允許參與預(yù)測來判斷,。如果 C 不可用,,采用 D 代替 C




===========第三步:預(yù)測 MV ===========

1,、如果 A、B,、C 三個參考塊中只有一個與當前預(yù)測對象為同一參考幀,,則選取該參考塊的 MV 作為最終 MV 預(yù)測值
2、當前宏塊是否為 8*16 或者 16*8 分割:
(1),、如果當前宏塊為 8*16 分割類型:
          對于左邊 8*16 分割,,如果 A 與當前分割為同一參考幀,則采用 A 的 MV 為該分割的最終 MV 預(yù)測值
          對于右邊 8*16 分割,,如果 C 與當前分割為同一參考幀,,則采用 C 的 MV 為該分割的最終 MV 預(yù)測值
(2)、如果當前宏塊為 16*8 分割類型:
          對于上邊 16*8 分割,,如果 B 與當前分割為同一參考幀,,則采用 B 的 MV 為該分割的最終 MV 預(yù)測值
          對于下邊 16*8 分割,如果 A 與當前分割為同一參考幀,,則采用 A 的 MV 為該分割的最終 MV 預(yù)測值
3,、其余情況并且 B、C 中有一個可用或者兩者都可用,,則采用中值預(yù)測(取 A,、B、C 三者中MV的中值為最終 MV 預(yù)測值)
4,、其余情況并且 B,、C 皆不可用,則采用 A 的 MV 為最終 MV 預(yù)測值


【注】:1,、宏塊分割時的相鄰塊確定方法與第一步所述過程雷同:16*16 相當于 8*8,,8*16、16*8 分別相當于 4*8,、8*4
            2,、對于不可用的相鄰塊,其 MV 仍然可能參與 MV 預(yù)測,,但其值為 0,。例如:A 不可用,B,、C 可用,,則最終可能仍然是在 A、B,、C 中取中值,,但此時 A 的 MV 為 0;
            3、對于不可用的相鄰塊,,其參考幀索引被設(shè)置為 -1,,即必然與當前預(yù)測對象非同一參考幀;
            4,、可以驗證:同時滿足第三步的第一,、第二兩種情況時,按第一種情況計算 MV 預(yù)測值與按第二種情況計算 MV 預(yù)測值等效,;
            5、該預(yù)測過程即為標準 8.4.1.3 小節(jié)的內(nèi)容,,在 JM86 中對應(yīng)的代碼為 SetMotionVectorPredictor 函數(shù),;
            6、MBAFF 情況下的相鄰塊均指對應(yīng)位置(co-locate)塊,。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多