本文結構如下。在第一章中,我將介紹計算BD-Rate的基本步驟。在第二章中,我將通過一個具體的例子來說明計算度量時的結果差異。在第三章中,我將從數學的角度來研究它們的區別。會有一個結論。
計算BD率
編解碼器質量比較實驗包括對不同迭代參數(比特率、qp、cq-level等)的一系列編碼、解碼和度量計算。這樣,將構建RD曲線(比特率度量圖上的點)。我們使用新版本的VQProbe2.3.0 來測試以下指標的給定結果:PSNR、VMAF、SSIM、CIEDE2000、CAMBI、MS-SSIM。這些指標有助于衡量編碼視頻的質量。盡管如此,仍需要更多頂級元指標來評估編解碼器的質量。因此,通常使用BD-Rate。
BD-Rate(Bjontegaarddelta 速率)允許測量編解碼器或編解碼器功能提供的比特率降低,同時保持與客觀指標測量的相同質量。Bjontegaard[1] 于2001年在“計算RD曲線之間的平均PSNR差異”中描述了BD-Rate方法。它是兩條RD曲線的函數:一條參考曲線和一條測試曲線(順序很重要)。BD-Rate以百分比形式測量。當計算的指標相同時,BD-rate為0%。當測試顯示比參考更好的結果時,BD-Rate值小于零。
如果測試優于參考,則BD-Rate為陰性。
實際上,RD曲線是一個近似值。事實上,沒有曲線。有一組點,每個點對應一個編碼流。展望未來,這就是與眾不同的地方。
準備好所有數據后,計算[1] 具有以下步驟。
步驟1.將軸更改為對數并轉置。因此,metric-bitrate到 log_bitrate-metric。
步驟2.三次多項式逼近。這種數值方法通過最小化函數與數據的標準偏差來擬合三次多項式的系數。返回四個數字:a、b、c、d。
步驟 3.設置集成邊界。我們想比較相同條件下的RD 曲線,但它們的范圍不同,所以我們需要對數據進行修剪。
左側邊界定義為兩個數據集的最小值中的最大值。右側邊界定義為兩個數據集的最大值中的最小值。
步驟4.計算曲線下面積,即計算step2函數在step3范圍內的積分。
步驟 5.獲取BD-Rate 值。
實驗
對于這一系列實驗,我編碼了FourPeople_480x270_60.y4m(從AOM-CTC 流中選擇的a5–270p)。編碼是使用libx264 編解碼器在中等和超快預設上完成的。目標比特率為1000、3000、5000、7000、10000kbps。使用 ViCueSoft的 Codec TestPlatform(目前正在開發中)進行了一系列實驗。
測量結果示于表中。
我在實現中找到了上一章中描述的算法:在python 上(JoaoAscenso、JaymeWX)、在excel 上(TimBruylants、ETRO、VrijeUniversiteit Brussel)。VQProbe在 C++實現上運行。所有這些執行都是基于三次多項式的近似(下一章會詳細介紹)。所有這些程序都返回相同的結果BD-Rate=52.9%。同時,AOM的 BD-Rate給出了41.25% 的結果。
仔細觀察就會發現差異。使用python,前者使用numpy庫的polyfit函數。同時,AOM使用 scipy 庫的pchip_interpolate 對RD 曲線進行插值,從而使用分段三次Hermite 插值多項式(PCHIP)。
中間步驟數據:
多項式插值給出了a=-0.00417, b=0.577055, c=-26.2749,d=400.8928(上一章介質預設步驟2 的方程因子)。a=0.001237,b=-0.15458, c=6.551819, d=-86.5756 — 超快。
積分是在 40.69和 49.86之間的邊界內進行的(上一章的第3 步)。
圖形下的中預設計算面積為70.57(用于多項式插值)和71.07(用于PCHIP 插值)。對于超快預設:對應的74.47 和 74.23。
? ?
這些圖片解釋了結果的差異。不同的曲線表示圖表下的不同區域,因此表示不同的BD-Rates。因此,點越少,插值中可能的分歧就越大。
審核編輯:劉清
-
解碼器
+關注
關注
9文章
1147瀏覽量
40932 -
編碼器
+關注
關注
45文章
3668瀏覽量
135245 -
比特率
+關注
關注
1文章
28瀏覽量
10666
原文標題:?VicuesoftBD-rate:一個名稱-兩個指標AOM與世界
文章出處:【微信號:哲想軟件,微信公眾號:哲想軟件】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論