I幀和IDR幀的區別


視頻編碼中,經常提到I幀。I幀只使用幀內壓縮,不能除去幀間冗余度。P幀做幀間編碼,根據當前幀與前面最近的I幀或P幀的差別來編碼。

另外一個比較少提到的概念是IDR幀。IDR屬於I幀,但是I幀不一定是IDR幀。只有IDR幀,才有SPS和PPS。解碼器收到IDR幀時,將reference buffer清空;而收到I幀不會清空reference buffer。也就是說,對某個IDR幀之后的幀,解碼器不會參考這個IDR幀之前的任何幀做解碼。對某個I幀之后的幀,解碼器可能會參考這個I幀之前的幀做解碼。還可以參考文檔https://malleshamdasari.wordpress.com/2013/07/31/difference-between-i-frame-and-idr-frame/。
在Xilinx VCU GStreamer里,使用參數periodicity-idr指定IDR幀的間隔。在Xilinx VCU Ctrl-SW里,使用參數Gop.FreqIDR指定IDR幀的間隔。PG252里的說明如下:

IDR picture frequency 
periodicity-idr 
Specifies the number of frames between consecutive
instantaneous decoder refresh (IDR) pictures. The periodicity-
idr property was formerly called gop-freq-idr.
Allowed values: <Positive value> or -1 to disable IDR insertion
Default value: 0 (first frame is IDR)
Gop.FreqIDR Specifies the minimum number of frames between two IDR pictures (AVC and HEVC). IDR
insertion depends on the position of the GOP boundary.
Allowed values: positive integer or -1 to disable IDR region.
Default value: -1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM