企業(yè)網(wǎng)站建設(shè)公司排名河南省網(wǎng)站
視頻編碼速率控制
- 速率控制: 通過選擇一系列編碼參數(shù),使得視頻編碼后的比特率滿足所有需要的速率限制,并且使得編碼失真盡量小。
- 速率控制屬于率失真優(yōu)化的范疇,速率控制算法的重點是確定與速率相關(guān)的量化參數(shù)(Quantization Parameter,QP)。
- 速率控制的主要工作是建立編碼速率與量化參數(shù)的關(guān)系模型,根據(jù)目標(biāo)碼率確定視頻編碼參數(shù)中的量化參數(shù)。
- 實際的編碼速率控制方案通常會被分解成兩個步驟:
○ 考慮視頻在空域、時域的相關(guān)性,根據(jù)總得目標(biāo)比特數(shù)確定每個編碼單元的最優(yōu)目標(biāo)比特數(shù),這被稱為比特分配;
○ 依據(jù)編碼速率有量化參數(shù)的關(guān)系模型,為每個編碼單元根據(jù)其目標(biāo)比特數(shù)獨立確定其量化參數(shù); - 由于編碼單元的編碼速率主要與量化參數(shù)相關(guān),其他編碼參數(shù)的影響較小,因此編碼速率與量化參數(shù)有著較為確定的關(guān)系,可以基于這一關(guān)系直接根據(jù)編碼單元的目標(biāo)比特數(shù)確定其量化參數(shù)。
- 當(dāng)量化參數(shù)一定時,視頻序列空、時域復(fù)雜度越高,產(chǎn)生的編碼比特數(shù)也越高。
緩沖機制
-
視頻的編碼速率與編碼參數(shù)、編碼結(jié)構(gòu)、視頻內(nèi)容等諸多因素密切相關(guān),速率控制算法通常無法保證實際編碼速率與目標(biāo)速率完全一致;
-
為了減小實際編碼速率與目標(biāo)速率的差別,通常會在編碼器和創(chuàng)術(shù)信道間建立一個數(shù)據(jù)緩存區(qū),稱“緩沖(buffer)機制”,用于平滑編碼速率與信道速率之間的差別。
-
緩沖機制可以使編碼速率更好地匹配信道速率,但它的存在不但會消耗一定的存儲空間,而且會引入延遲;所以緩沖區(qū)的大小一般由允許最大時延及運營成本決定。
-
為了設(shè)計含有緩沖區(qū)的速率控制算法,通常將緩沖區(qū)的動態(tài)變化過程用流體流量模型來表示。
-
為了有效發(fā)揮緩沖區(qū)的作用,需要將緩沖區(qū)內(nèi)的數(shù)據(jù)量維持在一定的水平,以應(yīng)對信道速率的變化以及編碼速率與目標(biāo)速率的匹配誤差;
-
使用緩沖區(qū)的視頻編碼速率控制的基本思想:如果實際編碼速率比可用的信道帶寬高,則多余的比特會在緩沖區(qū)中積累;當(dāng)緩沖區(qū)中的比特數(shù)累積到一定的高度時,速率控制算法會采用一定措施適量減小實際編碼速率,以降低緩沖區(qū)的充盈度;反之,當(dāng)緩沖區(qū)充盈度低于一定程度時,速率控制算法會適量增加實際編碼速率,使得緩沖區(qū)充盈度回升至一定水平。
速率控制技術(shù)
-
首先為編碼單元進(jìn)行目標(biāo)比特分配,即根據(jù)視頻內(nèi)容、緩沖區(qū)狀態(tài)和信道帶寬為編碼單元分配恰當(dāng)?shù)哪繕?biāo)比特數(shù);進(jìn)而為編碼單元獨立確定量化參數(shù)實現(xiàn)分配的目標(biāo)比特,其關(guān)鍵是確定量化參數(shù),因此這個緩解稱為量化參數(shù)確定。
-
目標(biāo)比特分配
■ 一個視頻序列擁有大量的編碼單元,直接對編碼單元進(jìn)行目標(biāo)比特分配過于復(fù)雜,通常采用分級的方式來簡化目標(biāo)比特分配問題,依次可以是 GOP 級、圖像級、宏塊級;
■ 實際編碼單元的失真并不是加性的,視頻序列的質(zhì)量并不是所有圖像質(zhì)量的求和或求平均,圖像的質(zhì)量也不是所有宏塊質(zhì)量的求和或求平均,視頻時空域質(zhì)量的一致性已經(jīng)成為了衡量速率控制算法性能的一個重要方面。 -
量化參數(shù)確定
■ 關(guān)鍵是建立速率-量化參數(shù) (R-QP) 模型。
h265 速率控制
- 以往標(biāo)準(zhǔn)所推薦的速率控制算法不能直接用于 h265中,主要因為:時域預(yù)測技術(shù)使幀間的率失真性能關(guān)系復(fù)雜;新的幀內(nèi)預(yù)測及運動信息的空間預(yù)測使得 CTU 間也有具有復(fù)雜的率失真性能依賴關(guān)系;新的 CABAC 技術(shù)更好的利用了變換系數(shù)間的相關(guān)性,使得 R-Q 關(guān)系更加復(fù)雜。
- h265 仍然采用傳統(tǒng)的兩步驟方式:目標(biāo)比特分配和量化參數(shù)確定;
○ 目標(biāo)比特分配的核心在于,考慮視頻幀率失真間的相互依賴關(guān)系實現(xiàn)圖像級的目標(biāo)比特分配,考慮視頻內(nèi)容的 CTU 級的目標(biāo)比特分配;
○ 量化參數(shù)的核心在于,根據(jù)視頻內(nèi)容建立編碼比特數(shù)與量化參數(shù)的關(guān)系模型;
JCTVC-K0103速率控制算法
-
JCTVC-K0103 是 h265 測試模型 HM10.0 的速率控制算法,該速率控制算法的主要分兩個步驟:根據(jù)目標(biāo)碼率為不同編碼單元分配目標(biāo)比特數(shù);根據(jù) R 和拉格朗日因子,拉格朗日因子與 QP 的關(guān)系模型確定不同編碼單元的量化參數(shù)。
○ 目標(biāo)比特分配: GOP 級目標(biāo)比特分配、圖像級目標(biāo)比特分配、CTU 級目標(biāo)比特分配
○ 量化參數(shù)確定: 雙曲函數(shù)能夠很好地反映 h265 視頻碼率和失真之間的關(guān)系;
-
量化參數(shù) QP 與 拉格朗日因子之間的關(guān)系:
-
量化參數(shù)確定后,即可對當(dāng)前圖像進(jìn)行編碼,該圖像編碼完成后可得實際編碼比特數(shù) bpp^,利用 bpp^可更新參數(shù)埃爾法和百塔,以便候選圖像速率控制時使用。
-
CTU 級量化參數(shù)的確定方法和圖像級類似,首先根據(jù)目標(biāo)比特數(shù)與拉格朗日因子的 關(guān)系得到拉格朗日因子,第 m 個 CTU 的拉格朗日因子為:
-
需要注意的是,相鄰兩個 CTU 的 QP 差異不得大于 1,當(dāng)前 CTU 與其所屬圖像的 QP 差異不得大于 2。
參考
- 新一代高效視頻編碼H.265HEVC原理、標(biāo)準(zhǔn)與實現(xiàn) [萬帥,楊付正 編著] 2014年版。