zoukankan      html  css  js  c++  java
  • Microsoft Visual Studio 编译AV1的 libaom 编码器

    第一步:按照官网教程下载依赖软件,我下载的是如下标红线的软件。

    第二步:将安装后的软件添加到环境变量。

    第三步:在官网上选择稳定的版本(经过多个版本的测试 V1.0.0版本能够编译成.exe文件)下载:

    第四步:打开CMake软件,在build的目录需要自己创建build_x64,用来保存CMake后的文件,在配置中我选择的是2017版的VS,配置Configure(选X64),编译后点Generate,再点一次Generate红色会消失。

    第五步:在build目录里面打开AOM.sln文件,然后设置aomenc(千万不要选错)为启动项,选择Release,点击生成aomenc.exe编码器。

    第六步:在cmd命令行或者Matlab使用aomenc.exe,加上配置参数,就可以完成测试。

    aomenc.exe --width=352 --height=288 --end-usage=cq --min-q=27 --max-q=35 --min-gf-interval=4 --max-gf-interval=4 --cpu-used=4 --threads=16 --limit=12 -o Test5.ivf foreman_cif.yuv

    Matlab 调试:

    aomenc.exe --width=352 --height=288 --cpu-used=4 --threads=16 --max-q=40 --min-q=20 --limit=2 --kf-max-dist=1 --lag-in-frames=1 --kf-min-dist=1 --max-gf-interval=2 --target-bitrate=1500 --bias-pct=0 --bit-depth=8 --obu --psnr -o F:\sequence\foreman_cif\Test5.obu F:\sequence\foreman_cif\foreman_cif.yuv >>F:\sequence\foreman_cif\av1.txt 2>&1
    %这些命令参数可以在cmd里面用aomenc.exe --help >libaom_commant_help.txt命令重定向导出

    command = ['aomenc.exe' ... ' --width=' num2str(width) ... %图像像素宽 ' --height=' num2str(height) ... %图像像素高 ' --cpu-used=' num2str(4) ... %运行速度设置(0..5 good模式, 6..8 realtime模式) ' --threads=' num2str(16) ... %最大线程数 ' --max-q=' num2str(40) ... %最大QP ' --min-q=' num2str(20) ... %最小QP ' --limit=' num2str(framenumber) ...%待编码的帧数 ' --kf-max-dist=' num2str(IntraPeriod) ... %最大关键帧间隔 ' --kf-min-dist=' num2str(IntraPeriod) ... %最小关键帧间隔 ' --lag-in-frames=' num2str(1) ... %我是看见别人的 GOPSize和这个值相同 ??还不懂 ' --max-gf-interval=' num2str(2) ...% ' --target-bitrate=' num2str(1500) ... % Bitrate (kbps) 目标码率 ' --bias-pct=' num2str(0) ... % CBR/VBR bias (0=CBR, 100=VBR) 恒定码率控制和可变码率控制 ' --bit-depth=' num2str(8) ... %bit 深度 ' --psnr --obu' ... ' -o ' encoder_new_folder '\str.bin ' seq_dir... %输出文件 和 输入文件 ' >' encoder_new_folder '\libaom_result.txt' ]; %重定向 disp('begin libaom'); disp(command); tic;%计时开始 dos(command); toc;%计时结束 t=toc;%保存时间 disp('end libaom');

    存在问题:

    1、还不能编译最新版本的libaom编码器;

    2、和HM、VTM不同,libaom编码器不输出重构的.yuv文件;

      可以用解码器生成

    AOM1_0_decoder --i420  -o rec.yuv str.bin

    3、没有具体AI、LDP、RA的配置。

  • 相关阅读:
    【待补充】Spark 集群模式 && Spark Job 部署模式
    Spark 集群管理命令
    Spark job 部署模式
    [Spark Core] Spark 核心组件
    [Spark RDD_1] RDD 基本概念
    【读书笔记】《天才在左 疯子在右》
    [Spark Core] Spark 使用第三方 Jar 包的方式
    [Spark Core] 在 Spark 集群上运行程序
    【待补充】[Spark Core] Spark 实现标签生成
    Spark 集群搭建
  • 原文地址:https://www.cnblogs.com/weitter/p/13781415.html
Copyright © 2011-2022 走看看