首页 > 其他分享 >libaom 编码器 aomenc 使用文档介绍

libaom 编码器 aomenc 使用文档介绍

时间:2024-07-09 14:55:58浏览次数:17  
标签:编码器 enable libaom 启用 -- 默认 模式 aomenc mode

使用方法:./aomenc <选项> -o 目标文件名 源文件名 使用 --help 查看完整的选项列表。

选项

  • --help 显示使用选项并退出
  • -c <参数>, --cfg=<参数> 使用配置文件
  • -D, --debug 调试模式(使输出确定性)
  • -o <参数>, --output=<参数> 输出文件名
  • --codec=<参数> 使用的编解码器
  • -p <参数>, --passes=<参数> 通过次数(1/2/3)
  • --pass=<参数> 执行的通过(1/2/3)
  • --fpf=<参数> 第一次通过统计文件名
  • --limit=<参数> 在输入n帧后停止编码
  • --skip=<参数> 跳过前n帧输入
  • --good 使用良好质量截止日期
  • --rt 使用实时质量截止日期
  • --allintra 使用所有内模式
  • -q, --quiet 不打印编码进度
  • -v, --verbose 显示编码器参数
  • --psnr=<参数> 在状态行中显示PSNR(峰值信噪比)(0: 禁用PSNR状态行显示,1: 使用输入位深度计算PSNR(默认),2: 使用流位深度计算PSNR); 当未指定参数时采用默认选项
  • --webm 输出WebM(当启用WebM IO时的默认设置)
  • --ivf 输出IVF
  • --obu 输出OBU
  • --q-hist=<参数> 显示量化器直方图(n-桶)
  • --rate-hist=<参数> 显示速率直方图(n-桶)
  • --disable-warnings 禁用有关可能不正确编码设置的警告
  • -y, --disable-warning-prompt 显示警告,但不要提示用户继续
  • --test-decode=<参数> 测试编码/解码不匹配
    • off 关闭
    • fatal 致命错误
    • warn 警告

编码器全局选项

  • --nv12 输入文件是NV12格式
  • --yv12 输入文件是YV12格式
  • --i420 输入文件是I420格式(默认)
  • --i422 输入文件是I422格式
  • --i444 输入文件是I444格式
  • -u <参数>, --usage=<参数> 使用的配置文件编号(0: 良好,1: 实时,2: 所有内模式)
  • -t <参数>, --threads=<参数> 使用的最大线程数
  • --profile=<参数> 使用的比特流配置文件编号
  • -w <参数>, --width=<参数> 帧宽度
  • -h <参数>, --height=<参数> 帧高度
  • --forced_max_frame_width=<参数> 强制的最大帧宽度值
  • --forced_max_frame_height=<参数> 强制的最大帧高度值
  • --stereo-mode=<参数> 立体3D视频格式
    • mono 单声道
    • left-right 左右
    • bottom-top 上下
    • top-bottom 下上
    • right-left 右左
  • --timebase=<参数> 输出时间戳精度(分数秒)
  • --fps=<参数> 流帧率(速率/比例)
  • --global-error-resilient=<参数> 启用全局错误弹性特性
  • -b <参数>, --bit-depth=<参数> 编解码器的位深度
    • 8, 10, 12
  • --input-bit-depth=<参数> 输入的位深度
  • --lag-in-frames=<参数> 延迟的最大帧数
  • --large-scale-tile=<参数> 大规模瓦片编码(0: 关闭(默认),1: 打开(仅IVF输出))
  • --monochrome 单色视频(无色度平面)
  • --full-still-picture-hdr 使用完整头部进行静态图片
  • --use-16bit-internal 强制使用16位流水线
  • --annexb=<参数> 以Annex-B保存

速率控制选项

  • --drop-frame=<参数> 时序重采样阈值(缓冲区%)
  • --resize-mode=<参数> 帧调整大小模式(0: 关闭(默认),1: 固定,2: 随机,3: 动态)
  • --resize-denominator=<参数> 帧调整大小分母
  • --resize-kf-denominator=<参数> 帧调整大小关键帧分母
  • --superres-mode=<参数> 帧超分辨率模式(0: 禁用(默认),1: 固定,2: 随机,3: qthresh,4: 自动)
  • --superres-denominator=<参数> 帧超分辨率分母
  • --superres-kf-denominator=<参数> 帧超分辨率关键帧分母
  • --superres-qthresh=<参数> 帧超分辨率qindex阈值
  • --superres-kf-qthresh=<参数> 帧超分辨率关键帧qindex阈值
  • --end-usage=<参数> 速率控制模式
    • vbr 可变比特率
    • cbr 恒定比特率
    • cq 恒定质量
    • q 固定量化
  • --target-bitrate=<参数> 比特率(kbps)
  • --min-q=<参数> 最小(最佳)量化器
  • --max-q=<参数> 最大(最差)量化器
  • --undershoot-pct=<参数> 数据速率不足目标(最小)百分比
  • --overshoot-pct=<参数> 数据速率超出目标(最大)百分比
  • --buf-sz=<参数> 客户端缓冲区大小(毫秒)
  • --buf-initial-sz=<参数> 客户端初始缓冲区大小(毫秒)
  • --buf-optimal-sz=<参数> 客户端最佳缓冲区大小(毫秒)
  • --bias-pct=<参数> CBR/VBR偏差(0=CBR,100=VBR)
  • --minsection-pct=<参数> GOP最小比特率(目标的百分比)
  • --maxsection-pct=<参数> GOP最大比特率(目标的百分比)

关键帧放置选项

  • --enable-fwd-kf=<参数> 启用前向引用关键帧
  • --kf-min-dist=<参数> 最小关键帧间隔(帧)
  • --kf-max-dist=<参数> 最大关键帧间隔(帧)
  • --disable-kf 禁用关键帧放置
  • --sframe-dist=<参数> S-帧间隔(帧)
  • --sframe-mode=<参数> S-帧插入模式(1…2)

AV1特定选项

  • --cpu-used=<参数> 速度设置(在良好模式下0…6,在实时模式下5…11,在所有内模式下0…9)
  • --auto-alt-ref=<参数> 启用自动alt参考帧
  • --sharpness=<参数> 在变换系数的速率失真优化中偏向块锐度(0…7),默认为0
  • --static-thresh=<参数> 运动检测阈值
  • --row-mt=<参数> 启用基于行的多线程(0: 关闭,1: 打开(默认))
  • --fp-mt=<参数> 启用帧并行多线程(0: 关闭(默认),1: 打开)
  • --tile-columns=<参数> 使用的瓦片列数,log2
  • --tile-rows=<参数> 使用的瓦片行数,log2
  • --enable-tpl-model=<参数> 基于帧时间依赖性的RDO(0: 关闭,1: 基于后端源;需要deltaq模式)
  • --enable-keyframe-filtering=<参数> 对关键帧应用时间过滤(0: 无过滤,1: 无覆盖过滤(默认),2: 带覆盖过滤 - 实验性,可能会破坏播放器中的随机访问)
  • --arnr-maxframes=<参数> AltRef最大帧数(0…15)
  • --arnr-strength=<参数> AltRef过滤强度(0…6)
  • --tune=<参数> 与失真度量一起调整的
    • psnr 峰值信噪比
    • ssim 结构相似性
    • vmaf_with_preprocessing 带预处理的VMAF
    • vmaf_without_preprocessing 不带预处理的VMAF
    • vmaf VMAF
    • vmaf_neg 负VMAF
    • butteraugli Butteraugli
    • vmaf_saliency_map VMAF显著性图
  • --cq-level=<参数> 恒定/受限质量级别
  • --max-intra-rate=<参数> 最大I帧比特率(百分比)
  • --max-inter-rate=<参数> 最大P帧比特率(百分比)
  • --gf-cbr-boost=<参数> 在CBR模式下对金帧的增强(百分比)
  • --lossless=<参数> 无损模式(0: 否(默认),1: 是)
  • --enable-cdef=<参数> 启用受限方向增强滤波器(0: 否,1: 是(默认),2: 对非参考帧禁用)
  • --enable-restoration=<参数> 启用循环恢复滤波器(0: 否(实时模式默认),1: 是(非实时模式默认))
  • --enable-rect-partitions=<参数> 启用矩形分区(0: 否,1: 是(默认))
  • --enable-ab-partitions=<参数> 启用ab分区(0: 否,1: 是(默认))
  • --enable-1to4-partitions=<参数> 启用1:4和4:1分区(0: 否,1: 是(默认))
  • --min-partition-size=<参数> 设置最小分区大小(4:4x4, 8:8x8, 16:16x16, 32:32x32, 64:64x64, 128:128x128); 在4k+分辨率或更高的速度设置下,最小分区大小将至少为8
  • --max-partition-size=<参数> 设置最大分区大小(4:4x4, 8:8x8, 16:16x16, 32:32x32, 64:64x64, 128:128x128)
  • --enable-dual-filter=<参数> 启用双滤波器(0: 否,1: 是(默认))
  • --enable-chroma-deltaq=<参数> 启用色度delta量化(0: 否(默认),1: 是)
  • --enable-intra-edge-filter=<参数> 启用内部边缘过滤(0: 否,1: 是(默认))
  • --enable-order-hint=<参数> 启用顺序提示(0: 否,1: 是(默认))
  • --enable-tx64=<参数> 启用64点变换(0: 否,1: 是(默认))
  • --enable-flip-idtx=<参数> 启用扩展变换类型(0: 否,1: 是(默认)),包括FLIPADST_DCT, DCT_FLIPADST, FLIPADST_FLIPADST, ADST_FLIPADST, FLIPADST_ADST, IDTX,V_DCT, H_DCT, V_ADST, H_ADST, V_FLIPADST, H_FLIPADST
  • --enable-rect-tx=<参数> 启用矩形变换(0: 否,1: 是(默认))
  • --enable-dist-wtd-comp=<参数> 启用距离加权复合(0: 否,1: 是(默认))
  • --enable-masked-comp=<参数> 启用掩模(楔形/差分加权)复合(0: 否,1: 是(默认))
  • --enable-onesided-comp=<参数> 启用单侧复合(0: 否,1: 是(默认))
  • --enable-interintra-comp=<参数> 启用内内复合(0: 否,1: 是(默认))
  • --enable-smooth-interintra=<参数> 启用平滑内内模式(0: 否,1: 是(默认))
  • --enable-diff-wtd-comp=<参数> 启用差分加权复合(0: 否,1: 是(默认))
  • --enable-interinter-wedge=<参数> 启用内内楔形复合(0: 否,1: 是(默认))
  • --enable-interintra-wedge=<参数> 启用内内楔形复合(0: 否,1: 是(默认))
  • --enable-global-motion=<参数> 启用全局运动(0: 否,1: 是(默认))
  • --enable-warped-motion=<参数> 启用局部扭曲运动(0: 否,1: 是(默认))
  • --enable-filter-intra=<参数> 启用滤波内预测模式(0: 否,1: 是(默认))
  • --enable-smooth-intra=<参数> 启用平滑内预测模式(0: 否,1: 是(默认))
  • --enable-paeth-intra=<参数> 启用Paeth内预测模式(0: 否,1: 是(默认))
  • --enable-cfl-intra=<参数> 启用从亮度色度内预测模式(0: 否,1: 是(默认))
  • --enable-diagonal-intra=<参数> 启用对角线(D45到D203)内预测模式,这是方向模式的一个子集;如果enable-directional-intra为0,则无效(0:
    否,1: 是(默认))
  • --force-video-mode=<参数> 即使对于单个帧也强制视频模式(0: 否(默认),1: 是)
  • --enable-obmc=<参数> 启用OBMC(0: 否,1: 是(默认))
  • --enable-overlay=<参数> 启用编码覆盖帧(0: 否,1: 是(默认))
  • --enable-palette=<参数> 启用调色板预测模式(0: 否,1: 是(默认))
  • --enable-intrabc=<参数> 启用内部块复制预测模式(0: 否,1: 是(默认))
  • --enable-angle-delta=<参数> 启用内部角度差(0: 否,1: 是(默认))
  • --disable-trellis-quant=<参数> 禁用量化系数的树状图优化(0: 否 1: 是 2: 对于rd搜索是真 3: 对于估计yrd搜索是真(默认))
  • --enable-qm=<参数> 启用量化矩阵(0: 否(默认),1: 是)
  • --qm-min=<参数> 最小量化矩阵平坦度(0…15),默认为8
  • --qm-max=<参数> 最大量化矩阵平坦度(0…15),默认为15
  • --reduced-tx-type-set=<参数> 使用缩减的变换类型集
  • --use-intra-dct-only=<参数> 仅在内部模式下使用DCT
  • --use-inter-dct-only=<参数> 仅在间模式下使用DCT
  • --use-intra-default-tx-only=<参数> 仅在内部模式下使用默认变换
  • --quant-b-adapt=<参数> 使用自适应量化b
  • --coeff-cost-upd-freq=<参数> 更新系数成本的频率。0: SB, 1: 每个Tile的SB行,2: Tile,3: 关闭
  • --mode-cost-upd-freq=<参数> 更新模式成本的频率。0: SB, 1: 每个Tile的SB行,2: Tile,3: 关闭
  • --mv-cost-upd-freq=<参数> 更新运动向量成本的频率。0: SB, 1: 每个Tile的SB行,2: Tile,3: 关闭
  • --frame-parallel=<参数> 启用帧并行可解码特性(0: 否(默认),1: 是)
  • --error-resilient=<参数> 启用错误恢复特性(0: 否(默认),1: 是 )
  • --aq-mode=<参数> 自适应量化模式(0: 关闭(默认),1: 方差 2: 复杂性,3: 循环刷新)
  • --deltaq-mode=<参数> Delta qindex模式(0: 关闭,1: deltaq目标(默认),2: deltaq占位符,3: 关键帧视觉质量,4: 基于用户评分的视觉质量优化); 需要-enable-tpl-model=1
  • --deltaq-strength=<参数> 对于–deltaq-mode=4的deltaq强度(%)
  • --delta-lf-mode=<参数> 启用delta-lf模式(0: 关闭(默认),1: 开启)
  • --frame-boost=<参数> 启用帧周期性增强(0: 关闭(默认),1: 开启)
  • --noise-sensitivity=<参数> 噪声敏感度(模糊帧数)
  • --tune-content=<参数> 调整内容类型
    • default 默认
    • screen 屏幕
    • film 电影
  • --cdf-update-mode=<参数> 熵编码的CDF更新模式(0: 不更新CDF,1: 在所有帧上更新CDF(默认),2: 有选择地在某些帧上更新CDF)
  • --color-primaries=<参数> 输入内容的颜色原色(CICP):
    • bt709, unspecified, bt601, bt470m, bt470bg, smpte240, film, bt2020, xyz, smpte431, smpte432, ebu3213
  • --transfer-characteristics=<参数> 输入内容的传输特性(CICP):
    • unspecified, bt709, bt470m, bt470bg, bt601, smpte240, lin, log100, log100sq10, iec61966, bt1361, srgb,
      bt2020-10bit, bt2020-12bit, smpte2084, hlg, smpte428
  • --matrix-coefficients=<参数> 输入内容的矩阵系数(CICP):
    • identity, bt709, unspecified, fcc73, bt470bg, bt601, smpte240, ycgco, bt2020ncl, bt2020cl, smpte2085, chromncl,
      chromcl, ictcp
  • --chroma-sample-position=<参数> 当色度4:2:0被标记时的色度样本位置:
    • unknown, vertical, colocated
  • --min-gf-interval=<参数> 最小gf/arf帧间隔(默认0,表示内置行为)
  • --max-gf-interval=<参数> 最大gf/arf帧间隔(默认0,表示内置行为)
  • --gf-min-pyr-height=<参数> GF组金字塔结构的最小高度(0(默认)到5)
  • --gf-max-pyr-height=<参数> GF组金字塔结构的最大高度(0到5(默认))
  • --sb-size=<参数> 使用的超块大小
    • dynamic, 64, 128
  • --num-tile-groups=<参数> 最大瓦片组数,默认为1
  • --mtu-size=<参数> 瓦片组的MTU大小,默认为0(无MTU定位),覆盖最大瓦片组数
  • --timing-info=<参数> 在比特流中发出时间信息(模型仅适用于无隐藏帧,无超分辨率):
    • unspecified, constant, model
  • --film-grain-test=<参数> 电影颗粒测试向量(0: 无(默认),1: 测试-1 2: 测试-2, … 16: 测试-16)
  • --film-grain-table=<参数> 包含电影颗粒参数的文件路径
  • --denoise-noise-level=<参数> 降噪噪声水平(从0 = 不降噪,到50)
  • --denoise-block-size=<参数> 降噪块大小(默认 = 32)
  • --enable-dnl-denoising=<参数> 在降噪噪声水平启用时对正在编码的帧应用降噪(0: 否,1: 是(默认))
  • --max-reference-frames=<参数> 每帧允许的最大参考帧数(3到7(默认))
  • --reduced-reference-set=<参数> 使用缩减的单一和复合参考集(0: 关闭(默认),1: 打开)
  • --enable-ref-frame-mvs=<参数> 启用时间mv预测(默认为1)
  • --target-seq-level-idx=<参数> 目标序列级别索引。可能的值以"ABxy"的形式。AB: 操作点(OP)索引,xy:
    OP的目标级别索引。例如,"0"表示第0个OP的目标级别索引0(2.0),"1019"表示第10个OP的目标级别索引19(6.3)
  • --set-tier-mask=<参数> 设置位掩码以指定每个32个可能的操作点符合哪个层。位值0(默认): 主层,1: 高层。
  • --min-cr=<参数> 设置最小压缩比。取整数值。默认为0。如果非零,编码器将尝试保持每帧的压缩比高于给定值除以100。
  • --vbr-corpus-complexity-lap=<参数> 设置使用lap的单次VBR的平均语料库复杂性每mb。(0…10000),默认为0
  • --input-chroma-subsampling-x=<参数> 色度子采样x值
  • --input-chroma-subsampling-y=<参数> 色度子采样y值
  • --dv-cost-upd-freq=<参数> 更新dv成本的频率。0: SB, 1: 每个瓦片的SB行,2: 瓦片,3: 关闭
  • --partition-info-path=<参数> 读取和写入分区信息的路径
  • --enable-directional-intra=<参数> 启用方向性内部预测模式(0: 否,1: 是(默认))
  • --enable-tx-size-search=<参数> 启用变换大小搜索以找到每个块的最佳大小。如果为假,变换始终具有最大可能的大小(0: 否,1:
    是(默认))。在实时编码的非rd选择模式中被忽略。
  • --loopfilter-control=<参数> 控制循环滤波(0: 对所有帧禁用循环滤波,1: 对所有帧启用循环滤波(默认),2: 对非参考帧禁用循环滤波,3: 对运动低的帧禁用循环滤波)
  • --auto-intra-tools-off=<参数> 自动关闭所有内模式的几个内部编码工具;仅在–deltaq-mode=3时有效
  • --enable-rate-guide-deltaq=<参数> 启用速率引导deltaq(1),默认关闭(0)。它需要–deltaq-mode=3。如果打开,它需要由–rate-distribution-info指定的输入文件。
  • --rate-distribution-info=<参数> 速率分布信息输入。它需要-enable-rate-guide-deltaq=1。

流时间基准(–timebase)
所需的输出时间戳精度,以分数秒表示。 默认为1/1000。

包含的编码器

av1 - AOMedia项目AV1编码器v3.8.3(默认)

使用 --codec切换到非默认编码器。

标签:编码器,enable,libaom,启用,--,默认,模式,aomenc,mode
From: https://blog.csdn.net/yanceyxin/article/details/140289900

相关文章

  • 变分自编码器(六):从几何视角来理解VAE的尝试
    前段时间公司组织技术分享,轮到笔者时,大家希望我讲讲VAE。鉴于之前笔者也写过变分自编码器系列,所以对笔者来说应该也不是特别难的事情,因此就答应了下来,后来仔细一想才觉得犯难:怎么讲才好呢? 对于VAE来说,之前笔者有两篇比较系统的介绍:《变分自编码器(一):原来是这么一回事》和《变分......
  • 变分自编码器(七):球面上的VAE(vMF-VAE)
    在《变分自编码器(五):VAE+BN=更好的VAE》中,我们讲到了NLP中训练VAE时常见的KL散度消失现象,并且提到了通过BN来使得KL散度项有一个正的下界,从而保证KL散度项不会消失。事实上,早在2018年的时候,就有类似思想的工作就被提出了,它们是通过在VAE中改用新的先验分布和后验分布,来使得KL散......
  • 变分自编码器(八):估计样本概率密度
    在本系列的前面几篇文章中,我们已经从多个角度来理解了VAE,一般来说,用VAE是为了得到一个生成模型,或者是做更好的编码模型,这都是VAE的常规用途。但除了这些常规应用外,还有一些“小众需求”,比如用来估计$x$的概率密度,这在做压缩的时候通常会用到。本文就从估计概率密度的角度来了解和......
  • libaom 编码器实验 AV1 标准 SVC 分层编码
    SVC编码视频SVC编码,即ScalableVideoCoding(可适性视讯编码或可分级视频编码),是H.264/MPEG-4AVC编码的一种扩展,它提供了更大的编码弹性,并且具有时间可适性(TemporalScalability)、空间可适性(SpatialScalability)及讯杂比(质量)可适性(SNRScalability)三大特性。这种编码方式允......
  • (三)变分自动编码器
    过去虽然没有细看,但印象里一直觉得变分自编码器(VariationalAuto-Encoder,VAE)是个好东西。于是趁着最近看概率图模型的三分钟热度,我决定也争取把VAE搞懂。于是乎照样翻了网上很多资料,无一例外发现都很含糊,主要的感觉是公式写了一大通,还是迷迷糊糊的,最后好不容易觉得看懂了,再去看看......
  • (一)变分推断与变分自编码器
     本文主要介绍变分自编码器(VariationalAuto-Encoder,VAE)及其推导过程,但变分自编码器涉及一些概率统计的基础知识,因此为了更好地理解变分自编码器,首先介绍变分推断(VariationalInference)与期望最大化(Expectation-Maximization,EM)算法,进而介绍变分自编码器,并给出另一种理......
  • Arduino 驱动360度旋转传感器(如旋转编码器)
    以下是使用ArduinoUnoR3驱动一个360度旋转传感器(如旋转编码器)的详细说明、接线图和代码示例,其中传感器引脚为CLK、DT、SW、+、GND。所需材料ArduinoUnoR3360度旋转传感器(旋转编码器)面包板和连接线接线步骤连接旋转传感器:将旋转编码器的CLK引脚连接到ArduinoUno的......
  • ros2 - slam - 直流电机-编码器脉冲测量与校准
    这一节我们编写代码来尝试下是否能够读取到电机上编码器的脉冲数,并通过实验测试出小车的输出轴转速和编码器脉冲的比值。一、新建工程并导入开源库新建example25_encoder添加依赖[env:featheresp32];这是一个环境配置标签,指定了代码将运行的硬件平台和框架platform=esp......
  • ros2 - slam - 使用编码器测量轮子最大速度
    新建example26_max_speed_measurement 添加依赖[env:featheresp32];这是一个环境配置标签,指定了代码将运行的硬件平台和框架platform=espressif32;指定了使用的平台为Espressif32board=featheresp32;指定使用的硬件板为FeatherESP32framework=arduino;......
  • ros2 - slam - 编码器测速原理
    上节做完小车,遥控时小车前进时你应该会发现,小车很难走一条直线,但明明我们给到两个电机的PWM占空比都是相同的,原因在于每一个电机的硬件参数并不能完全的保证一致,所以当我们采用开环控制时,即使我们给到每个电机相同的电压,也不能让两个电机保持相同的转速。要解决这个问题我们就要......