H265的參考幀理解

2021-09-20 06:22:52 字數 1486 閱讀 9553

1.為什麼要分短時參考幀short-term reference和長時參考幀long-term reference

參考中所述,因為short term參考幀以frame_num做為索引,而frame_num是有最大值的,達到最大值後會進行取模,所以短期參考幀不能長期存在於參考列表中,因為一旦frame_num達到最大值後取模為0,該索引就失去意義了,而長期參考幀則不同!

2.參考列表重構

指用多個已經解碼的**當前的slice。

3.參考影象列表

對於每個pu,參考影象的選擇是通過乙個指向參考影象列表(rpl)的相關的reference index完成。有兩個rpl(list0和list1)被重構來**當前。兩個列表的參考影象選擇可能不同。

4.rpl中的選擇和排序(兩步完成)

(1)初始rpl(init rpl)重構完成(按照以下順序排列)

3.長時參考幀

(2)最終的rpl是乙個有著num_ref_idx_10_active_minus1+1個入口的陣列,其中num_ref_idx_10_active_minus1是slice層的語法元素,表示list0或1可能用來解碼當前slice的參考數量。預設情況下,final rpl會通過複製initial rpl的num_ref_idx_10_active_minus1+1個入口來生成,如果numpictotalcurr比final rpl的長度要大,則initial rpl中的後幾個入口(指參考)會被丟棄,不會出現在final rpl中;如果numpictotalcurr比final rpl的長度要小,則initial rpl會被重複直到所所有的final rpl的entries入口會被填滿。

5.numpictotalcurr

指4中initial rpl參考的總數量。

7.rplm(reference picture list modication)

如果需要的話,標準可以選擇基於參考的特徵進行構造rpl用不同的方式。對於每個dinal rpl中的particular特定的入口,任何initial rpl中的特定參考分配到這個入口。通過slice層的ref_pic_list_modification_flag_10來標識。當它為1時,final rpl的每乙個入口的參考會被明確標記。

8.dpb(解碼緩衝區管理)

在hevc中,濾波後的當前和已經解碼的會被放到dpb中,參考一定是放在dpb中,但是dpb中並不一定都是參考,因為有些顯示順序在當前之後的非參考也會放在dpb中,他們等待出去dpb知道所有在他們顯示順序之前的從dpb出去。一旦變成不再作為參考並且不再waiting for out,它會從dpb中移走,相應的緩衝區然後被清空,然後為儲存將來的開啟。當解碼器開始解碼,需要乙個空的緩衝區用來儲存當前,直到完成當前的解碼,當前會被標誌為短時參考「use for short-term reference」,並且儲存在dpb中作為將來的參考。在任何時候,dpb中的數量(包括當前在解碼時)不能超過最大的dpb容量。

H 265的各種幀

這篇部落格h.265的各種幀 詳解 接入影象對所有的vcl nal進行了詳細解說。下圖所有h.265的nalu trailing pictures包括tsa stsa和trail。在trailing pictures中,除了tsa和stsa之外,其他的都定義為trail幀。這兩種是h265中引入的新...

h265裸流分析

型別判斷方式為分隔符之後的第乙個位元組右移一位的值 第一幀 0x40 1 得到0x20,十進位制32,為nal vps 第二幀 0x42 1 得到0x21,十進位制33,為nal sps 第三幀 0x44 1 得到0x22,十進位制34,為nal pps 第四幀 0x26 1 得到0x13,十進位制...

H265碼流分析

h265相比較於h264,除了包含sps pps外,還多包含乙個vps 在nalu header上,h.264的nalu header是乙個位元組,而h.265則是兩個位元組。以0x4001為例,頭資訊可以被解析成4個部分,其中 對比h.264的頭資訊,h.265移除了nal ref idc,此資訊...