AV1代码下载和Win10下编译
由于个人才疏学浅,光看paper或者spec肯定无法较好地掌握AV1的算法,因此还是要结合代码一起学习。由于我在软件优化这块经验不多,如果博客描述有误的地方欢迎大家指正。
准备工作
代码下载
就个人所知,目前AV1的代码有AOM、SVT-AV1、rav1e等几个版本,从算法学习的角度来说优先选择参考软件也就是AOM版本。当然后期研究算法优化、编码加速时,基于一些开源平台开始也是不错的选择。AOM 官网AOM官网页面下方可以找到code,不过从AOM官网看到AOM的代码是放在googlesource.com上,可能需要xx才能下载。
依赖工具
cmake
从cmake官网可以下载Win版本可执行文件或者安装包进行安装,cmake下载地址。
Python
使用cmake生成工程文件会依赖Python(也可以用编译命令跳过),从python官网下载最新版安装。
Perl
使用cmake生成工程文件会依赖perl,从strawberryperl下载安装。如果网址打不开可以从快照网页进去找下载链接。
visual studio
编译AOM需要最低VS2017的支持,VS的安装办法在此不做赘述。
用cmake生成VS工程文件
因为用CMD窗口打开cmake一直报错(提示cmake未正确安装),所以尝试用cmake-gui进行配置和生成。
打开cmake-gui后,首先设置source code目录和build目录。之前在工作的时候配置遇到过nasm或yasm文件找不到的情况,所以直接在命令行加了一个-DAOM_TARGET_CPU=generic的命令。
配置好之后依次点击Configure和Generate。如果缺少依赖的程序(如Python或Perl等),Configure会提示报错。安装好对应缺少的文件再重新Configure即可。
编译
Generate后会在build目录下生成对应的解决方案文件(*.sln),用VS打开发现居然有598个项目,点击生成解决方案将进行所有598个项目的生成工作,不过其中某些项目需要从googlesource.com下载一些依赖。为了方便我只生成了aomenc和aomdec。
encoder和decoder的使用和测试留待下文更新。