下载提案:Welcome to Joint Video Experts Team
以VTM6.0为例,提案为:
JVET-O2000 Meeting Report of the 15th JVET Meeting (Gothenburg, SE, 3–12 July 2019)
JVET-O2002 Algorithm description for Versatile Video Coding and Test Model 6 (VTM 6)
下载VTM6.0的代码:Files · VTM-6.0 · jvet / VVCSoftware_VTM · GitLab
备注:RC是Release Candidate(发行候选版本)的简称。和Beta版最大的差别在于Beta阶段会一直加入新的功能,但是到了RC版本,几乎就不会加入新的功能了,而主要着重于除错
可以考虑在改动之前,先在本地建立一个Git仓库,防止以后忘记代码有没有改过、改了哪里、改乱了等等。
cd ..
git init
git add .
git commit -m "VTM 6.0"
阅读这个项目的README,得知在Windows系统下:
1安装Cmake,下载:https://cmake.org/download/,我下载的是Zip,然后把bin目录添加到环境变量,除了这个 ,可以直接下载那个msi的安装包。
2新建build目录,在目录中执行:
mkdir build
cd build
cmake .. -G "Visual Studio 16 2019" -A x64
cmake .. -G "Visual Studio 14 2015" -A x64
cmake .. -G "Visual Studio 15 2017" -A x64
cmake .. -G "Visual Studio 16 2019" -A x64
三句命令根据自己的VisualStudio版本选择。
然后在build目录里就有许多文件了,打开NextSoftware.sln
就能用了
PS E:\Documents\VideoCoding\VVCSoftware_VTM\build> cmake .. -G "Visual Studio 16 2019" -A x64
-- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.18362.
-- The C compiler identification is MSVC 19.22.27905.0
-- The CXX compiler identification is MSVC 19.22.27905.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.22.27905/bin/Hostx64/x64/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.22.27905/bin/Hostx64/x64/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.22.27905/bin/Hostx64/x64/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.22.27905/bin/Hostx64/x64/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Setting up BBuildEnv 3.13.0.2
-- Looking for pthread.h
-- Looking for pthread.h - not found
-- Found Threads: TRUE
-- Found OpenMP_C: -openmp (found version "2.0")
-- Found OpenMP_CXX: -openmp (found version "2.0")
-- Found OpenMP: TRUE (found version "2.0")
-- bb_enable_warnings: -> updating warnings flags: /WX;/wd4996
-- Configuring done
-- Generating done
-- Build files have been written to: E:/Documents/VideoCoding/VVCSoftware_VTM/build
右键把EncoderApp
设为启动项目
配置属性 - 常规 - 输出目录:这个可以不改,也可以改到下面工作目录。默认在bin文件夹一层一层点进去。
配置属性 - 调试 - 工作目录:$(SolutionDir)../bin
($(SolutionDir)
就是build文件夹,设到并列的bin文件夹)
配置属性 - 调试 - 命令参数:-c ../cfg/per-sequence/BasketballPass.cfg -c ../cfg/encoder_intra_vtm.cfg
(根据需要可以添加>> enc_log.txt
到结尾来把输出保存到txt中)
然后把BasketballPass.cfg对应的yuv文件放到工作目录,或者修改BasketballPass.cfg文件里yuv文件的位置。
然后右键 - 生成;或者点那个本地调试器,就可以开始跑。
如果研究IBC,命令参数:-c ../cfg/per-sequence/BasketballPass.cfg -c ../cfg/encoder_intra_vtm.cfg -c ../cfg/per-class/classF.cfg
注意classF.cfg要放在后面,因为同一个设置,最后面的设置才是生效的,encoder_intra_vtm.cfg和classF.cfg都规定了IBC,前者是0后者是1.
DecoderApp
项目属性:
配置属性 - 调试 - 工作目录:$(SolutionDir)../bin
配置属性 - 调试 - 命令参数:-b str.bin -o dec.yuv
(根据需要可以添加>> dec_log.txt
到结尾来把输出保存到txt中)
如果是要使用YUView查看统计信息,命令参数:-b str.vvc -o dec.yuv --TraceFile="ACoded.vtmbmsstats" --TraceRule="D_BLOCK_STATISTICS_ALL:poc>=0" >> declog.txt
,注意在此之前的编码时要修改配置文件生成vvc文件。