天天看點

開發一個HEVC碼率分析工具工具參數設定工具輸出結果github下載下傳位址工具使用說明

  在開發編解碼器時,經常需要分析碼率波動情況,分析緩沖區是否有上下溢情況,是以用python開發一個簡單的工具。它可以分析HM編碼器的輸出log,提取每一幀的比特數,結合視訊幀率,就可以繪制碼率波動圖和VBV緩沖區狀态的圖像了。工具的UI如圖1圖2所示:plot type選項有兩種選擇:選項1"bitrate viewer"用于繪制每秒鐘的碼率情況;選項2"vbvbuffer view"用于繪制VBV緩沖區的狀态圖。

工具參數設定

  source log為選擇HM編碼器輸出的log檔案,點選Open按鈕選擇相應的檔案即可。

  圖1為繪制碼率波動圖的UI,有兩個參數可設定:

  • "frame rate"即視訊幀率。
  • "check interval"是設定多少幀統計一次碼率,比如圖中的25,表示每25幀(即一秒鐘)統計一次碼率。

  圖2為繪制VBV狀态的UI,有四個參數可設定:

  • "frame rate"即視訊幀率。
  • "vbv_bufsize"是設定VBV緩沖區的大小(kbits),圖2設的是6000,VBV=6Mbits。
  • "vbv_bitrate"是設定視訊流的發送碼率(kbps),對解碼器而言,即往解碼器接收端的VBV Buffer裡填充的碼率)
  • "vbv_init_time"是設定VBV緩沖區的初始填充時間(ms)
開發一個HEVC碼率分析工具工具參數設定工具輸出結果github下載下傳位址工具使用說明

圖1、繪制碼率波動圖的UI

開發一個HEVC碼率分析工具工具參數設定工具輸出結果github下載下傳位址工具使用說明

圖2、繪制VBV狀态的UI​​​

工具輸出結果

  配置好工具的選項後,點選"Start Plot"按鈕,即可進行繪制。

  圖3為輸出的碼率波動圖像,圖像的标題包含了平均碼率,最大碼率資訊,及最大碼率/平均碼率的比值,圖像上則标明了最大碼率出現的時間點。可以從圖像上看到,對這個序列的編碼結果,整體碼率波動很平緩,碼率控制效果良好。

開發一個HEVC碼率分析工具工具參數設定工具輸出結果github下載下傳位址工具使用說明

圖3、碼率波動圖

  圖4為輸出的VBV Buffer狀态圖像,圖像的标題包含了緩沖區被占用的最多和最小時的情況,以及最多和最小之間的內插補點(這個內插補點表示了對這個序列而言,最小需要的緩沖區大小)。從圖像中看,這個序列沒出現下溢情況,出現了一小段上溢但不嚴重,這個序列要保證不上下溢,需要的緩沖區最小為6.56Mbits。

開發一個HEVC碼率分析工具工具參數設定工具輸出結果github下載下傳位址工具使用說明

圖4、VBV狀态圖

github下載下傳位址

https://github.com/ronnielige/py_hevc_bitrate_viewer.git

工具使用說明

  • 運作plot_bitrate_view_app.pyw前,需要先安裝python運作環境,建議直接安裝Python-xy(它包含的庫很全,不需額外安裝庫),下載下傳位址:http://python-xy.github.io/downloads.html
  • 先運作HM的TAppEncoder編碼器,将輸出結果儲存為log檔案。本項目裡的 input_logs/hm265_G_footballdejia_abr6000.log 檔案為一個标準的HM輸出log檔案。
  • 可以根據需要修改plot_bitrate_view_app.pyw中的代碼,支援其他265編碼器的輸出log格式。

版權聲明:本文為部落客原創文章,未經部落客允許請勿轉載。

繼續閱讀