最近在看VTM的相关文档,记录一下,刚刚入门,现学现卖
下载地址在:VVCSoftware_VTM
开门见山,参考软件主要的目的是为当前视频编码标准的实现和提供一个基准参考,和实用的商业软件相比肯定不是特别有效的实现,所以也不能反应在实际应用中VVC实现的复杂程度。
安装
在Windows下安装,我用到的软件有VS 2019和CMake,文档中也有安装要求和说明
下载解压后先在目录里新建一个build
文件夹,随后在进入文件夹后执行
cmake .. -G "Visual Studio 16 2019" -A x64
完成后即可在build
文件夹中用VS打开NextSoftware.sln
,生成解决方案即可(据说一般选择Release,编解码速度比较快),生成的程序在bin
文件夹内
使用编码器
一个简单的例子
EncoderApp -c config.cfg
配置文件实例在cfg
文件夹内。参数由在命令行上最后一个值定义。如果配置文件中已经写了参数,后面在命令行又更改,将以命令行的为准。对于具体的文件,还需要在cfg文件中的 File I/O 部分补充文件的相关信息:
#======== File I/O =====================
BitstreamFile : str.bin
ReconFile : rec.yuv
InputFile : input.yuv
InputBitDepth : 8
FrameRate : 50
FrameSkip : 0
SourceWidth : 832
SourceHeight : 480
FramesToBeEncoded : 100
使用解码器
EncoderApp -b str.bin -o decode.yuv
指定二进制文件和输出文件名即可
文档阅读
GOP结构表
GOP (Group of Pictures) 是一组连续的画面,由一张 I 帧和数张 B / P 帧组成,是视频图像编码器和解码器存取的基本单位,它的排列顺序将会一直重复到影像结束。在视频编码序列中,GOP Size指两个I帧之间的距离。GOP结构表定义在整个视频序列中重复使用的循环GOP结构,帧按解码顺序列出,该表还指定了解码器为每一帧保存的所有参考图片(编码器将不会自动计算哪些图片需要保存以供将来参考,必须指定)
POC:该帧在一个GOP内显示的顺序
Decode Order:解码顺序
待续…