H266/VVC Software_VTM编译和视频测试序列

1 篇文章 0 订阅
1 篇文章 0 订阅

1、VVCSoftware_VTM
地址:https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM

建议使用git下载,可以一直在线更新代码,也可以选择自己需要的版本,点击master下拉选择版本,我下载的是master。

2、README.MD文件查看编译方法
window版先是在根目录下建build空文件夹,然后再使用cmake编译。

 

3、根目录下建build文件夹,用来存放编译成功的vs工程

4、cmake下载和编译

根据自己电脑的系统选择下载,地址:https://cmake.org/download/
在下载的cmake里找到cmake-gui,使用gui好处是软件有vs版本给选择,不用去找自己vs的对应的版本。

打开cmake-gui进行编译

第一步,其中Browse Source处选择VTM整体项目的根目录即可,Browse Build后生成文件的地方选择之前建立的build文件夹即可,路径不要存在中文。如下图:

第二步点击左下角的configure按钮弹出下图,首先选择对应的VS版本,还有选择电脑的系统版本,是x64就选x64,避免后面出错,最后点击Finish。

最后再点击一下Generate,编译完成如下图

5、编译成功后在build文件夹下可以看到如下文件,打开其中的sln解决方案即可:


打开VS可以看到

6、编译EncoderApp编码项目

先设置为release,这样编译起来快一点

右键EncoderApp设置为为启动项目,然后点击重新生成,成功结果如下
 

7、编译DecoderAPP解码项目

同上编译EncoderApp编码项目

8、准备编解码项目

根目录下新建文件夹,命名为1216Test,便于区分调试

把cfg/per-sequence/BasketballDrill.cfg和cfg/encoder_intra_vtm.cfg拷贝到1216Test文件下,这两个文件是编码时用到的参数,比如QP、proflie、Level。

把刚才VS编译生成的EncoderApp.exe和DecoderApp.exe执行文件拷贝到1216Test文件下,现在先用执行文件来编解码。

拷贝如下:

目前还缺少视频测试序列,在下面链接里找到截图中的BasketballDrill_832x480_50.yuv序列,其它序列可保存自己测试。

链接: https://pan.baidu.com/s/1OTJwHH8Fut0YhKA__oKvqA 提取码: hjm7 

或者在这里找视频序列:https://media.xiph.org/video/derf/


9、开始编解码

为了每次不手打命令编译,同样在1216Test文件夹下新建test.bat,编辑内容如下:

EncoderApp.exe -c encoder_intra_vtm.cfg > Encoder_out.txt

DecoderApp.exe -b str.bin -o dec.yuv

pause

-c 表示编码指令,-b表示解码指令,-o表示输出指令

修改encoder_intra_vtm.cfg,把BasketballDrill.cfg的内容全部复制到encoder_intra_vtm.cfg下,这里InputFile修改为我具体的路径,首次试验建议把FramesToBeEncoded改小一点,100或者50,其它值等成功一次后再慢慢修改去对比

双击test.bat,然后会先出现如下图,耐心的等,编码100帧我电脑用了1个多小时,所以前面首次编码帧数建议改小一点,除非报error,不然就得等了,我还去打断点调试了,没有报错,在编码时不能断点,这个有点折腾人。

编译完如下图,如果没成功,主要把输入序列、参数文件也改为绝对路径

10,对比数据

对比编码和解码的YUV数据,使用Beyond Compare对比,如果一致,证明编解码已经成功

11、查看编码和解码出来的YUV

使用YUVPlayer一直播放不出来,颜色格式不对,无意间看到一篇文章,里面用到YUV播放文件可以播放,原因是原YUV的格式8位,VVC编码出来后是10bit,需要选择格式为10bit才能正常播放,这个还没弄懂原理。

YUView下载地址:https://github.com/IENT/YUView/releases/download/v2.8/YUViewSetup.msi

源代码下载地址:1、https://github.com/IENT/YUView   2、https://github.com/IENT/YUView/releases 

12、分析码流

打开二进制str.bin文件,这是编码出来的码流,如图

配合阅读文档Versatile Video Coding Draft 10 (JVET-S2001)

下载地址:1、http://phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=10399  

                  2、http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/19_Teleconference/wg11/JVET-S2001-v17.zip

VVC定义的NALU Header如下图所示,可以计算出Type类型值,SPS是15,PPS是16,17是APS

最后还是有很多问题,YUV format格式问题、输入500帧编码出来是62帧、码流数据的含义、修改参数对比...

13、可以使用VS工程进行编译,在参考链接里有例子,在项目属性->调试输入参数可以完成。

主要参考链接如下

1、H.266/VVC参考软件VTM配置运行(VTM-6.0版本):https://www.freesion.com/article/8857624016/

2、H.266/VVC学习1- VTM6.0的安装和使用:https://blog.csdn.net/zhang2039/article/details/105624481

  • 5
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值