
(在這里,只考慮到幀(frame)的情況,對(duì)于場(chǎng)(field),相互場(chǎng)對(duì)(complementary field pair)暫不作考慮) 1.圖像序列號(hào) POC (picture order count)解碼過(guò)程. picture order count ,在解B slice時(shí),用來(lái)決定參考picture初始化順序; 在解時(shí)間直接模式(temporal direct
(在這里,只考慮到幀(frame)的情況,對(duì)于場(chǎng)(field),相互場(chǎng)對(duì)(complementary field pair)暫不作考慮)
1.圖像序列號(hào)POC(picture order count)解碼過(guò)程.
picture order count ,在解B slice時(shí),用來(lái)決定參考picture初始化順序; 在解時(shí)間直接模式(temporal direct mode)下的運(yùn)動(dòng)矢量,不直接模式(implicit mode)下的B slice權(quán)預(yù)測(cè)(weighted prediction),和解碼器一致性檢測(cè)(conformance checking)時(shí),用來(lái)表現(xiàn)幀和場(chǎng)之間picture 順序不同).
--每一個(gè)編碼幀和兩個(gè)picture order count 相關(guān).稱為TopFieldOrderCnt 和 BottomFieldOrderCnt,各自對(duì)應(yīng)于top field 和 bottom field.
Topfiieldordercnt 和BottomFieldOrderCnt通過(guò)調(diào)用POC解碼過(guò)程得到的. POC 有三種類型(type 0,1,2).
對(duì)于picx:
PicOrderCnt(picx)=min(TopFieldOrderCnt,BottomFieldOrderCnt)
DiffPicOrderCnt( pica, picb ) = PicOrderCnt( pica ) - PicOrderCnt( picb )
這三種類型的解碼過(guò)程在標(biāo)準(zhǔn)的8.2.1.1, 8.2.1.2, and 8.2.1.3.
2.宏塊(macroblock)到slice group映射的解碼過(guò)程
這個(gè)過(guò)程時(shí)在每個(gè)slice 開(kāi)始時(shí)調(diào)用的.得到MbToSliceGroupMap(宏塊到所屬幀組的映射表).
slice group 有6種映射模式(8.2.2.1—8.2.2.8),分別用于不同的情況編碼.例如電視廣播,背景相對(duì)穩(wěn)定,只需傳送人的頭像部分的slice宏塊就行了,可以選slice type 2.
3.slice 數(shù)據(jù)劃分(data partition)解碼過(guò)程
輸入:
--slice 數(shù)據(jù)劃分a層(layer)rbsp,
--當(dāng)類別3(category 3)中語(yǔ)法元素在slice 數(shù)據(jù)中出現(xiàn),slice 數(shù)據(jù)劃分b層rbsp有和a層一樣的slice_id.
--當(dāng)類別4中的語(yǔ)法元素在slice數(shù)據(jù)中出現(xiàn),slice數(shù)據(jù)劃分c層rbsp有和a層一樣的slice_id.
輸出:編碼slice.
當(dāng)不使用slice 數(shù)據(jù)劃分,編碼slice表現(xiàn)為rbsp沒(méi)有分割,包含slice 頭,slice數(shù)據(jù)語(yǔ)法結(jié)構(gòu)包含類別2,3,4中所有語(yǔ)法元素,宏塊數(shù)據(jù).
當(dāng)使用slice數(shù)據(jù)劃分,每一個(gè)類別中的語(yǔ)法元素分離在不同的nal單元.解碼過(guò)程處理slice數(shù)據(jù)劃分過(guò)程和沒(méi)有劃分時(shí)是等價(jià)的.
注釋:語(yǔ)法分類3和解i,si宏塊殘差數(shù)據(jù)有關(guān),4中和解p,b中的殘差數(shù)據(jù)相關(guān),2中包含所有和解碼宏塊相關(guān)的語(yǔ)法元素.
4.參考picture 列表創(chuàng)建的解碼過(guò)程
對(duì)于P,SP幀,使用Refpiclist0,對(duì)于B使用RefPicList0,RefPicList1.
解碼的參考畫(huà)面(picture) 標(biāo)記為使用短(short-term) 參考幀或長(zhǎng)(long-term)參考幀兩種.
短解碼的參考畫(huà)面通過(guò)frame_num指定,長(zhǎng)解碼的參考畫(huà)面通過(guò)long term frame index 指定.
如果LongTermEntry( RefPicListx[ i ] )==1,表示是長(zhǎng)參考幀,于LongTermPicNum相聯(lián)系.
如果LongTermEntry( RefPicListx[ i ] )==0,表示是短參考幀,于PicNum相聯(lián)系.
修改的參考畫(huà)面數(shù)量在表(list) RefPicList0中是num_ref_idx_l0_active_minus1 + 1,在RefPicList1中是num_ref_idx_l1_active_minus1 + 1,一個(gè)參考畫(huà)面可以有多個(gè)所有在流改的參考畫(huà)面表RefPicList0, RefPicList1.
4.1 picture numbers 獲取過(guò)程
if( framenum > frame_num )
FrameNumWrap = FrameNum – MaxFrameNum
else
FrameNumWrap = FrameNum
PicNum = FrameNumWrap
LongTermPicNum = LongTermFrameIdx
4.2 參考畫(huà)面表初始化過(guò)程
對(duì)于P,SP
RefPicList0:
short-term (降序), long-term(升序),null
對(duì)于B
RefPicList0
short-term(降序) ,short-term(升序) , long-term(升序) , null
第一部分PicOrderCnt(frm )< PicOrderCnt( currpic )
第二部分PicOrderCnt(frm)> PicOrderCnt( currpic )
RefPicList1
short-term(升序) ,short-term(降序) , long-term(升序), null
第一部分PicOrderCnt(frm )> PicOrderCnt( currpic )
第二部分PicOrderCnt(frm)
4.3參考畫(huà)面表重排序過(guò)程
對(duì)于短畫(huà)面(short-term picture)
reordering_of_pic_nums_idc等于 0,或1
首先求出 PicNumLX
for( cIdx = num_ref_idx_lx_active_minus1 + 1; cIdx > refidxLX; cIdx-- )
RefPicListX[ cIdx ] = RefPicListX[ cIdx – 1]
RefPicListX[ refIdxLX++ ] = PicNumLX
nIdx = refIdxLX
for( cIdx = refIdxLX; cIdx <= num_ref_idx_lx_active_minus1 + 1; cIdx++ )
if( LongTermEntry( refPicListx[ cIdx ] ) | | RefPicListX[ cIdx ] != picnumlx )
RefPicListX[ nIdx++ ] = RefPicListX[ cIdx ]
對(duì)于長(zhǎng)畫(huà)面(long-term picture)
reordering_of_pic_nums_idc等于 2
for( cIdx = num_ref_idx_lx_active_minus1 + 1; cIdx > refidxLX; cIdx-- )
RefPicListX[ cIdx ] = RefPicListX[ cIdx – 1]
RefPicListX[ refIdxLX++ ] = LongTermPicNum
nIdx = refIdxLX
for( cIdx = refIdxLX; cIdx <= num_ref_idx_lx_active_minus1 + 1; cIdx++ )
if( !LongTermEntry( RefPicListX[ cIdx ] ) | | RefPicListX[ cIdx ] != LongTermPicNum )
RefPicListX[ nIdx++ ] = RefPicListX[ cIdx ]
5.解碼的參考畫(huà)面標(biāo)記過(guò)程(marking process)
nal_ref_idc 不等于0的解碼畫(huà)面, 作為參考畫(huà)面, 標(biāo)記為短參考幀或長(zhǎng)參考幀. 對(duì)于解碼參考幀,它的兩個(gè)場(chǎng)的標(biāo)記和幀相同. 標(biāo)記為長(zhǎng)參考幀, 用LongTermFrameIdx標(biāo)識(shí),標(biāo)記為短參考幀或長(zhǎng)參考幀的幀或相互的參考場(chǎng)對(duì),可以作為幀間預(yù)測(cè)的參考幀, 直到幀標(biāo)記為不使用為參考幀(unused for reference).
畫(huà)面標(biāo)記為不使用參考幀(unused for reference),可以通過(guò)使用滑動(dòng)窗口(slice windows)參考畫(huà)面標(biāo)記過(guò)程,一種先進(jìn)先出的機(jī)制,或自適應(yīng)存儲(chǔ)畫(huà)面標(biāo)記過(guò)程(adaptive memory control reference picture marking process),一種自定義的自適應(yīng)標(biāo)記過(guò)程.
在解碼過(guò)程中short-term 參考畫(huà)面,使用picnum指定,long-term 參考畫(huà)面使用LongTermPicNum.
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com