日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

x264幀內(nèi)預(yù)測(cè)

 lyz1985 2010-07-14
本章討論的代碼主要位于common/predict.c中。
x264_macroblock_cache_load函數(shù)在每個(gè)宏塊解碼之前初始化某些狀態(tài),在x264_slice_write函數(shù)的宏塊處理循環(huán)中被調(diào)用。
i_mb_xy:   當(dāng)前宏塊的索引
i_mb_4x4:  當(dāng)前宏塊中第一個(gè)4x4塊的索引
i_mb_8x8:  當(dāng)前宏塊中第一個(gè)8x8塊的索引
i_top_y:   上方宏塊的y索引
i_top_xy:  上方宏塊的索引
i_top_4x4: 當(dāng)前宏塊中第一個(gè)4x4塊上方的4x4塊的索引
i_top_8x8: 當(dāng)前宏塊中第一個(gè)8x8塊上方的8x8塊的索引
這里首先初始化和當(dāng)前宏塊毗鄰的已解碼塊。
這里用到x264_scan8,它指示如下掃描結(jié)構(gòu):
   0 1 2 3 4 5 6 7
 0
 1   0 1   0 1 4 5
 2   2 3   2 3 6 7
 3         8 9 C D
 4   0 1   A B E F
 5   2 3
 在空缺部分恰好可以填入相應(yīng)宏塊的毗鄰塊。
以下逐個(gè)各種分析預(yù)測(cè)情況:
對(duì)于16x16的塊:
predict_16x16
共7種預(yù)測(cè)模式:H, V, DC, P, LEFT, TOP, 128
predict_16x16_h
用左側(cè)相鄰16x16塊的右側(cè)像素沿水平方向覆蓋
predict_16x16_v
用上方相鄰16x16塊的底行像素沿豎直方向覆蓋
predict_16x16_p
右上左下均值預(yù)測(cè)覆蓋(注意均值生成)
predict_16x16_dc
用左側(cè)邊沿和上方邊沿的均值作為DC預(yù)測(cè)值進(jìn)行單一覆蓋
predict_16x16_dc_left
只用左側(cè)邊沿進(jìn)行DC單一覆蓋
predict_16x16_dc_top
只用上方邊沿進(jìn)行DC單一覆蓋
predict_16x16_dc_128
用128進(jìn)行單一覆蓋
對(duì)于8x8的色差塊:
predict_8x8c_dc_128
用128進(jìn)行單一覆蓋
predict_8x8c_dc_left
上下兩個(gè)4行分別以對(duì)應(yīng)左邊沿4個(gè)像素均值單一覆蓋
predict_8x8c_dc_top
左右兩個(gè)4列分別以對(duì)應(yīng)上邊沿4個(gè)像素均值單一覆蓋
predict_8x8c_dc
   s0 s1
s2 b0 b1
s3 b2 b3
s?是邊沿4像素組
4個(gè)4x4塊分別用s0,s2均值,s1均值,s3均值和s1,s3均值單一覆蓋
predict_8x8c_h
用左側(cè)相鄰8x8塊的右邊沿像素沿水平方向覆蓋
predict_16x16_v
用上方相鄰16x16塊的底行像素沿豎直方向覆蓋
predict_8x8c_p
右上左下均值預(yù)測(cè)覆蓋(注意均值生成)
對(duì)于4x4的塊:(這是H264文檔經(jīng)常拿來(lái)作demo的)
predict_4x4_dc_128
用128進(jìn)行單一覆蓋
predict_4x4_dc_left
用左邊沿4個(gè)像素均值單一覆蓋
predict_4x4_dc_top
用上邊沿4個(gè)像素均值單一覆蓋
predict_4x4_dc
用左側(cè)和上方邊沿共8個(gè)像素均值單一覆蓋
predict_4x4_h
用左側(cè)相鄰4x4塊的右邊沿像素沿水平方向覆蓋
predict_4x4_v
用上方相鄰4x4塊的底行像素沿豎直方向覆蓋
predict_4x4_ddl
右上至左下預(yù)測(cè)覆蓋(注意均值生成)
predict_4x4_ddr
左上至右下預(yù)測(cè)覆蓋(注意均值生成)
predict_4x4_vr
左上到右下(偏下)預(yù)測(cè)覆蓋(注意均值生成)
predict_4x4_hd
左上到右下(偏右)預(yù)測(cè)覆蓋(注意均值生成)
predict_4x4_vl
右上到左下(偏下)預(yù)測(cè)覆蓋(注意均值生成)
predict_4x4_hu
左下到右上(偏右)預(yù)測(cè)覆蓋(注意均值生成)
對(duì)于8x8亮度塊:
edge中存放
predict_8x8_dc_128
用128進(jìn)行單一覆蓋
predict_8x8_dc_left
用左側(cè)塊邊沿8個(gè)像素均值單一覆蓋
predict_8x8_dc_top
用上方塊邊沿8個(gè)像素均值單一覆蓋
predict_8x8_dc
用左側(cè)塊和上方塊邊沿共16個(gè)像素均值單一覆蓋
predict_8x8_h
用左側(cè)邊沿預(yù)測(cè)覆蓋
predict_8x8_v
用上方邊沿預(yù)測(cè)覆蓋
predict_8x8_ddl
右上到左下預(yù)測(cè)覆蓋(注意均值生成)
predict_8x8_ddr
左上到右下預(yù)測(cè)覆蓋(注意均值生成)
predict_8x8_vr
左上到右下(偏下)預(yù)測(cè)覆蓋(注意均值生成)
predict_8x8_hd
左上到右下(偏右)預(yù)測(cè)覆蓋(注意均值生成)
predict_8x8_vl
右上到左下(偏下)預(yù)測(cè)覆蓋(注意均值生成)
predict_8x8_hu
左下到右上(偏右)預(yù)測(cè)覆蓋(注意均值生成)
以上“注意均值生成”指預(yù)測(cè)值一般由起點(diǎn)決定,起點(diǎn)由反向延長(zhǎng)線確定,起點(diǎn)2倍權(quán)重和兩側(cè)點(diǎn)構(gòu)成均值。
例如45度均值為以起始點(diǎn)對(duì)應(yīng)45度位置的點(diǎn)作為中心(2倍權(quán)重),其兩側(cè)點(diǎn)作為補(bǔ)充形成的均值

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多