萬老師《H.265/HEVC》第十章:編解碼並行處理

本篇博客對H.265/HEVC的編解碼並行處理進行學習。

首先了解一下線程:線程是進程的一部分。進程在這裏可以理解爲一次視頻編碼,即編碼一個視頻的過程,那麼線程就可以視作編碼一個GOP、編碼一個Slice、編碼一個CTU等。可以認爲進程包含很多線程。

1 並行處理技術

H.265的高複雜度來源:更多的幀內模式、更靈活的劃分方式、TU塊的引入。
並行方式:多個處理器,多核並行可以成倍增加編解碼速度。

功能並行:預測、變換、濾波、熵編碼等功能模塊一起進行。
數據並行:數據完全獨立的slice、tile一起進行;此外CTU級還有波前並行處理。

H.265中的功能並行:熵解碼其餘模塊並行解碼串行。
H.265中的數據並行:tile的並行和波前並行均存在。

並行處理缺陷:
碼率飆升問題:同時編碼很多內容會導致比特數非常多,且碼率不夠穩定。
負載失衡:有的線程要做的任務很多,但有的線程要做的很少,這種不平衡在功能並行、slice級並行均會出現。

2 具體應用

1、GOP級並行:一個線程用於統籌控制,多個線程並行處理GOP,此方法更適用於編碼端。
2、圖像級並行:由於幀間預測,在同級別的B幀下可以適用。
3、Slice級並行:各個Slice相互獨立,故完全可行。
4、Tile級的並行:Tile是矩形CTU組,引入主要就是爲並行處理,其改變了CTU的掃描順序,減少了幀間緩存,但忽略相關性會導致性能損失。
5、CTU級的波前並行:按CTU的行進行,多行CTU同時處理,但後一行比前一行慢2個CTU,保證了原始性能。所謂波前並行(WPP),指的就是CTU不是獨立的、需要相互參考時使用的並行處理。如幀內預測需要上一行左一列參考像素、幀間預測需要上邊塊和左邊塊的MV信息、環路濾波過程會跨CTU以及各種邊界。
6、依賴片並行:將slice劃分爲不同區域,分別封裝到獨立的NAL中。解碼當前依賴片只需等待參考片的一部分解碼完成即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章