实现一个avs2码流分析工具

  最近在做avs2编码器项目,但是却没有成熟的码流分析工具,于是抽空学习了QT,业余时间写了一个avs2码流分析工具。

  软件的界面如下:

实现一个avs2码流分析工具_第1张图片 图1、avs2码流分析仪界面

  UI的左边框为NAL列表或者语法元素列表:

  默认情况显示的是NAL列表,NAL列表显示了每一个NAL的类型,如果是picture的NAL,则Picture的类型(I帧,P帧,B帧,F帧等),POC, COI也都可以显示;Offset列显示了NAL在文件中的起始位置,Size列显示了每个NAL的大小。点击对应的一帧,可以切换到该帧的信息显示。

  点击左下角的按钮可以切换显示内容,Sequence Header则切换显示码流中的sequence header中语法元素的详细信息。这里是一些编码器的主要的参数信息。

实现一个avs2码流分析工具_第2张图片 图2、Sequence Header语法元素显示

  窗口的右侧显示的是每一帧的详细编码信息,支持多种Mode。目前码流分析仪支持Prediction、Residuals、Reconstruction、Deblock这几种编码信息的显示,后续打算支持SAO,ALF等等。通过菜单“Mode”可以切换不同的Mode,图3所示的为Prediction Mode,可以显示每个CTU详细的预测模式。按住Ctrl + 鼠标滚轮,可以对图像进行放大缩小。

实现一个avs2码流分析工具_第3张图片 图3、avs2码流分析的Mode菜单

  按菜单“Mode”->“Residual”或者快捷键F2可以切换到Residual视角,如图4所示,显示了每个CU的QP信息,蓝色QP的CU的cbf=0,红色QP的CU的cbf不等于0.  

实现一个avs2码流分析工具_第4张图片 图4、Residual Mode,显示每个CU的QP信息

按菜单“Mode”->“Reconstruction”或者快捷键F3可以切换到Reconstruction视角,如图5所示,图像显示的是每个CTU的Reconstruction before in-loop filter的图像,蓝色的矩形区域表示了每个CU的边界。

实现一个avs2码流分析工具_第5张图片 图5、Reconstruction Mode,显示的是in-loop filter前的重建图像

  按菜单“Mode”->“Deblock”或者快捷键F4可以切换到Deblock视角,如图6所示,图像显示的是每个CTU的deblock之后的图像,蓝色的矩形区域表示了每个CTU的边界。

实现一个avs2码流分析工具_第6张图片 图6、Deblock Mode,显示的是deblock filter后的图像

 

  图像下边两个按钮“Pic”和“Info”,分别用于控制是否显示图像和是否显示编码信息。图7为关闭了图像信息显示,此时可以看到纯的图像(发现avs2中deblock的效果不是很明显,deblock前的图像和之后的图像差别不是很大,块去的不是很明显)。

实现一个avs2码流分析工具_第7张图片 图7、关闭编码信息显示,只显示图像

 

  后续还需要继续支持SAO后图像的显示,最终解码图像的显示。还可以接入ffmpeg中的264和265解码器,支持264和265码流的解析。

你可能感兴趣的:(ffmpeg相关,c/c++,视频编码)