實現一個avs2碼流分析工具

  最近在做avs2編碼器項目,但是卻沒有成熟的碼流分析工具,於是抽空學習了QT,業餘時間寫了一個avs2碼流分析工具。

  軟件的界面如下:

圖1、avs2碼流分析儀界面

  UI的左邊框爲NAL列表或者語法元素列表:

  默認情況顯示的是NAL列表,NAL列表顯示了每一個NAL的類型,如果是picture的NAL,則Picture的類型(I幀,P幀,B幀,F幀等),POC, COI也都可以顯示;Offset列顯示了NAL在文件中的起始位置,Size列顯示了每個NAL的大小。點擊對應的一幀,可以切換到該幀的信息顯示。

  點擊左下角的按鈕可以切換顯示內容,Sequence Header則切換顯示碼流中的sequence header中語法元素的詳細信息。這裏是一些編碼器的主要的參數信息。

圖2、Sequence Header語法元素顯示

  窗口的右側顯示的是每一幀的詳細編碼信息,支持多種Mode。目前碼流分析儀支持Prediction、Residuals、Reconstruction、Deblock這幾種編碼信息的顯示,後續打算支持SAO,ALF等等。通過菜單“Mode”可以切換不同的Mode,圖3所示的爲Prediction Mode,可以顯示每個CTU詳細的預測模式。按住Ctrl + 鼠標滾輪,可以對圖像進行放大縮小。

圖3、avs2碼流分析的Mode菜單

  按菜單“Mode”->“Residual”或者快捷鍵F2可以切換到Residual視角,如圖4所示,顯示了每個CU的QP信息,藍色QP的CU的cbf=0,紅色QP的CU的cbf不等於0.  

圖4、Residual Mode,顯示每個CU的QP信息

按菜單“Mode”->“Reconstruction”或者快捷鍵F3可以切換到Reconstruction視角,如圖5所示,圖像顯示的是每個CTU的Reconstruction before in-loop filter的圖像,藍色的矩形區域表示了每個CU的邊界。

圖5、Reconstruction Mode,顯示的是in-loop filter前的重建圖像

  按菜單“Mode”->“Deblock”或者快捷鍵F4可以切換到Deblock視角,如圖6所示,圖像顯示的是每個CTU的deblock之後的圖像,藍色的矩形區域表示了每個CTU的邊界。

圖6、Deblock Mode,顯示的是deblock filter後的圖像

 

  圖像下邊兩個按鈕“Pic”和“Info”,分別用於控制是否顯示圖像和是否顯示編碼信息。圖7爲關閉了圖像信息顯示,此時可以看到純的圖像(發現avs2中deblock的效果不是很明顯,deblock前的圖像和之後的圖像差別不是很大,塊去的不是很明顯)。

圖7、關閉編碼信息顯示,只顯示圖像

 

  後續還需要繼續支持SAO後圖像的顯示,最終解碼圖像的顯示。還可以接入ffmpeg中的264和265解碼器,支持264和265碼流的解析。

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