什么是闭合GOP和开放GOP?
點擊上方“LiveVideoStack”關注我們
翻譯 | Alex
技術審校 | 李忠
本文來自OTTVerse,作者為Krishna Rao Vijayanagar。
GOP
Easy Tech
#008#
在本文中,我們將了解閉合GOP和開放GOP的概念。這兩種類型的GOP在視頻流化中非常常見,并會影響視頻壓縮效率、錯誤恢復以及ABR的切換能力。
? 什么是GOP?
GOP(A Group of Pictures)是指一組按照編解碼和顯示順序排列好的圖片。
注意:如果你不熟悉視頻壓縮和幀的類型,可以先閱讀這篇文章:Easy Tech:什么是I幀、P幀和B幀?
一個GOP包含不同類型的圖片(幀)。這些基本的幀類型有:
I幀(僅幀內預測)
P幀(僅參考前一幀預測)
B幀(可參考前、后幀預測,即雙向預測)
好,現在有了這些最基本的幀類型,我們就可以構建GOP了:
一個GOP通常以I幀開頭,緊接著是P幀和B幀序列
兩個連續I幀之間的距離被稱為GOP長度
連續P幀之間的距離被稱為mini-GOP大小
P幀和B幀參考其他幀進行時域預測。用作預測的幀既可以是I幀和P幀,也可以是被參考的B幀。H.264/AVC允許將這三種類型的幀組合起來形成多個預測幀。
問題來了——分析顯示順序(Display Order)時,預測/參考幀的位置在哪里?換言之,P幀和B幀可以參考幾個GOP之前的幀嗎?這樣做也許會呈現最好的效果,為什么不這樣做呢?
為了回答這些問題,我們需要先理解閉合GOP和開放GOP的概念。讓我們繼續吧!
? 什么是閉合GOP?
顧名思義,閉合GOP是指不對外開放的GOP。一個屬于閉合GOP的幀只能參考本GOP之內的幀。
在上面的圖片中,第一個GOP以P幀而不是B幀結束,這就意味著編碼器不會將下一個GOP中的幀用作參考幀。多補充一點,如果GOP的最后一幀是B幀,你認為會發生什么?難道B幀不就是設計用來參考前、后幀的嗎?
在這種情況下,編碼器應該確保后一參考幀是空幀。后面那一幀如果是空幀,B幀這時就發揮了P幀的作用。然而,編碼器總會確保最后一幀是P幀,這樣一來,就簡化了“關閉”GOP的過程。
閉合GOP在視頻流化和壓縮中非常有用,它是視頻中的獨立片段,和其他GOP有清晰的隔斷,所有在閉合GOP出現的問題都不會影響到其他GOP。
閉合GOP以一個被稱為IDR(Instantaneous Decoder Refresh,即時解碼刷新)的I幀開始。之所以稱之為IDR,是因為當解碼器遇到 IDR 幀時,由于在 IDR 之前出現的任何幀都不能用作在該 IDR 之后出現的圖片的參考幀,它可以刷新其解碼圖片緩沖區(Decoded Picture Buffer 或 DPB)。這就形成了圖片序列的徹底中斷。
所以,IDR和閉合GOP到底有什么用處?
ABR視頻流:在ABR視頻流中,播放器可以根據帶寬和解碼器緩沖器的填充程度在不同配置文件(組合不同碼率和分辨率的視頻)之間切換。如果播放器要從1080p切換到360p,那么它就需要這種利落的切換。此時IDR發揮作用,這樣播放器就能刷新緩沖,讓360p的視頻流進入。如果你不了解ABR,請閱讀這篇文章:理解ABR及其工作原理。
錯誤恢復:如果你在流化視頻時使用HLS,并且每個視頻片段都以IDR開始,這意味著片段中的所有幀都不能參考前、后片段中的幀。所以如果因為某個錯誤而失去其中一個片段,播放器仍然能繼續接收下一個視頻片段。有趣的是,Apple 的 HLS 規范提到應該每兩秒使用一次 IDR。(注意:規范沒有說視頻片段持續時間應該是兩秒,而是指 GOP 的大小是兩秒)。
快進快退(Trick Mode):我們之前提到過,IDR非常有助于實現快進快退。播放器需找到距離最近的IDR,然后開始從這一點播放視頻流。
現在你已經理解閉合GOP了吧,讓我們繼續學習開放GOP。
?什么是開放GOP?
開放GOP正好和閉合GOP相反,允許其內的幀參考其他GOP內的幀。請看下圖第二個I幀。來自前一個GOP的B幀被用作參考幀,這意味著這是一個開放GOP(由黃色箭頭表示)。
開放GOP在以下情況中非常有用:
你不需要為了ABR而重新開始一段新的視頻,但是需要關閉GOP
你現在想要提高視頻壓縮效率(因為B幀可以多一個高質量的參考幀)
當你需要插入I幀時(或是為了刷新視頻質量,或者在非場景轉換的情況下,是否跨I幀預測并不重要)
? 總? ?結
我希望這篇文章能夠有助于你理解閉合GOP、開放GOP和IDR。關于視頻壓縮的更多入門文章,請關注我們的Easy Tech欄目。感謝閱讀,我們下次再會!
致謝
本文已獲得作者Krishna Rao Vijayanagar授權翻譯和發布,特此感謝。
原文鏈接:
https://ottverse.com/closed-gop-open-gop-idr/
延伸閱讀:
視頻編碼完全指南
Easy Tech:什么是I幀、P幀和B幀?
為什么視頻壓縮如此重要
講師招募
LiveVideoStackCon 2022 音視頻技術大會 上海站,正在面向社會公開招募講師,無論你所處的公司大小,title高低,老鳥還是菜鳥,只要你的內容對技術人有幫助,其他都是次要的。歡迎通過?speaker@livevideostack.com?提交個人資料及議題描述,我們將會在24小時內給予反饋。
喜歡我們的內容就點個“在看”吧!
總結
以上是生活随笔為你收集整理的什么是闭合GOP和开放GOP?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 李松南:智能全真时代的多媒体技术——关于
- 下一篇: 【城市沙龙】LiveVideoStack