Un breve análisis de los parámetros de la línea de comandos de aomenc.exe para la investigación del codificador AV1

         Utilice el codificador para imprimir información de ayuda

Clasificación de parámetros de la línea de comandos

Detalles de la línea de comandos

Orden general

Opciones de codificación global

 Opciones de control de tasa

Opciones de control de frecuencia de dos pasos

Opciones de configuración de fotogramas clave

 Opciones específicas de AV1


Utilice el codificador para imprimir información de ayuda

Ejecute el siguiente comando para generar información de ayuda incorporada en aomenc.exe a help.txt. A continuación, se analiza principalmente el contenido de help.txt. En la actualidad, algunos parámetros de comando de AV1 todavía se analizan en función de la experiencia de otros estándares de codificación. Puede haber algunos malentendidos. Pruebas experimentales de seguimiento para lugares inciertos. Si alguno de los principales encuentra errores u omisiones, no dude en señalar .

aomenc.exe --help >help.txt

Clasificación de parámetros de la línea de comandos

Aomenc divide la línea de comandos en seis categorías: comandos generales, opciones globales del codificador, opciones de control de velocidad, opciones de control de velocidad de dos pasos, opciones de configuración de fotogramas clave y opciones específicas de AV1.
Para los usuarios generales, la tarea de compresión sin conexión simple solo necesita especificar los parámetros relevantes en los siguientes comandos generales y opciones globales del codificador, como el nombre y formato del archivo de entrada / salida, la velocidad de compresión o la calidad de compresión para la codificación, etc. nivel.
Para usuarios un poco más profesionales, si necesita compresión y transmisión en tiempo real, puede intentar ajustar la opción de control de velocidad de bits, la opción de control de velocidad de bits de dos pasos, alguna configuración de parámetros en la opción de configuración de fotogramas clave, como la velocidad de bits especificada , intervalo de fotogramas clave, etc. Distribución de velocidad de bits y parámetros en tiempo real.
El último tipo de opciones específicas de AV1 expone las opciones de cambio de muchas herramientas de codificación.Personalmente entiendo que se trata de usuarios más profesionales o amigos que están interesados ​​en la investigación de algoritmos.

Detalles de la línea de comandos

Orden general

Hay dos formatos en el comando: lo siguiente significa que debe especificar el parámetro de entrada como -c, y el comando sin el parámetro () es similar a un interruptor o modo de conmutación, y no se requiere ningún parámetro.

           --help                     	打印帮助信息,上文的示例中有用到。
  -c <arg>, --cfg=<arg>                	指定使用的配置文件。有 -c <filename>和--cfg=<filename>两种形式,下同不再赘述。
  -D,       --debug                    	指定使用debug模式,这个命令的直接翻译是“使输出具有确定性”,不太明白是何意,个人理解成会输出一些编码信息,后续测试一下再更新。
  -o <arg>, --output=<arg>             	指定输出文件名。
            --codec=<arg>              	指定使用的编码器。(注:难道有多个编码器?)
  -p <arg>, --passes=<arg>             	指定编码的次数,允许1或2次。
            --pass=<arg>               	指定执行第1次或第2次编码。
            --fpf=<arg>                	指定第1次编码输出的统计信息。
            --limit=<arg>              	指定在编码N帧后停止,也就是指定编码的帧数。
            --skip=<arg>               	指定跳过序列的前N帧,也就是从第N+1帧开始编码。
            --good                     	使用质量下限约束。(注:意思是保障质量不低于某个程度?)
            --rt                       	使用实时编码的质量下限约束。(注:相比上一个命令加多了编码速度的约束?)
  -q,       --quiet                    	不输出编码进度信息。
  -v,       --verbose                  	显示编码器参数。
            --psnr                     	显示PSNR。
            --webm                     	输出WebM(启用WebM IO时的默认值)。(注:WebM是啥?)
            --ivf                      	输出IVF。(注:IVF是裸码流封装好的格式)
            --obu                      	输出OBU。(注:OBU是AV1的裸码流)
            --q-hist=<arg>             	显示量化器的直方图。(注:似乎是输出量化状态用于查看是否符合预期的工具。)
            --rate-hist=<arg>          	输出码率直方图。
            --disable-warnings         	不显示关于潜在不正确编码配置的警告信息。
  -y,       --disable-warning-prompt   	显示警告,但不推荐用户继续编码。
            --test-decode=<arg>        	测试编解码匹配与否。三档可选<off, fatal, warn>

Opciones de codificación global

            --yv12                     	输入文件是YV12格式。(注:看似和NV12名字比较相近,不确定是同个含义)
            --i420                     	输入文件是I420格式。 (默认格式,应该是YUV4:2:0)
            --i422                     	输入文件是I422格式。(应该是YUV4:2:2)
            --i444                     	输入文件是I444格式。(应该是YUV4:4:4)
  -u <arg>, --usage=<arg>              	指定profile number。
  -t <arg>, --threads=<arg>            	指定最大线程数。
            --profile=<arg>            	指定码流的profile。
  -w <arg>, --width=<arg>              	图像宽。
  -h <arg>, --height=<arg>             	图像高。
            --forced_max_frame_width=<arg>  	强制的最大图像宽度。(注:允许的最大图像宽度?)
            --forced_max_frame_height=<arg>  	强制的最大图像高度。(注:允许的最大图像高度?)
            --stereo-mode=<arg>        	指定立体声3D视频格式。可选<mono, left-right, bottom-top, top-bottom, right-left>。
            --timebase=<arg>           	指定时间戳的精度。输出中所需的时间戳精度,以小数秒表示。 默认值为1/1000。
            --fps=<arg>                	指定帧率。
            --global-error-resilient=<arg> 	启用全局错误恢复功能。
  -b <arg>, --bit-depth=<arg>          	指定源位深,版本小于等于1的只支持8-bit,版本2支持10\12-bit。(注:个人理解版本2也支持8-bit)
                                       	  
            --lag-in-frames=<arg>      	指定最大延迟帧数。
            --large-scale-tile=<arg>   	大范围tile编码(0:不使用,1:使用,仅在IVF输出时可用)。(注:又一个不太明白的命令,AV1也支持类似HEVC的tile划分吗?)
            --monochrome               	单色视频,只有亮度没有色度。
            --full-still-picture-hdr   	对静态图片使用完整header。(注:单帧图片可以省略一些header信息吗?)

 Opciones de control de tasa

            --drop-frame=<arg>         	时域重采样门限,buffer的百分比。(注:个人理解为是buffer满溢达到一定门限时进行丢帧操作。)
            --resize-mode=<arg>        	帧大小重调模式
            --resize-denominator=<arg> 	重调帧大小的分母
            --resize-kf-denominator=<arg> 	重调帧大小关键帧的分母
            --superres-mode=<arg>      	超分辨率模式
            --superres-denominator=<arg> 	    超分辨率模式的分母
            --superres-kf-denominator=<arg> 	超分辨率模式关键帧的分母
            --superres-qthresh=<arg>   	超分辨率模式qindex门限
            --superres-kf-qthresh=<arg> 	超分辨率模式关键帧qindex门限
            --end-usage=<arg>          	码率控制模式vbr-可变码率模式,cbr-恒定码率模式,cq-恒定qp?q-固定qp?
            --target-bitrate=<arg>     	码率(kbps)
            --min-q=<arg>              	最小量化参数
            --max-q=<arg>              	最大量化参数
            --undershoot-pct=<arg>     	数据率下冲百分比(???)
            --overshoot-pct=<arg>      	数据率上冲百分比(???)
            --buf-sz=<arg>             	客户端缓冲区大小(ms为单位)
            --buf-initial-sz=<arg>     	客户端初始缓冲区大小Client (ms为单位)
            --buf-optimal-sz=<arg>     	客户端最佳缓冲区大小 (ms为单位)

Opciones de control de frecuencia de dos pasos

            --bias-pct=<arg>           	恒定码率/可变码率偏移(0=CBR, 100=VBR)
            --minsection-pct=<arg>     	GOP最小码率(目标码率的百分比)
            --maxsection-pct=<arg>     	GOP最大码率 (目标码率的百分比)

Opciones de configuración de fotogramas clave

            --enable-fwd-kf=<arg>      	启用前向参考关键帧
            --kf-min-dist=<arg>        	最小关键帧间隔
            --kf-max-dist=<arg>        	最大关键帧间隔
            --disable-kf               	禁用关键帧设置

 Opciones específicas de AV1

Esta sección enumera las opciones específicas de AV1, pero algunas de ellas son similares a otros codificadores (como el X265 de HEVC). Está principalmente relacionado con algunas características del codificador, como la selección de ciertas estructuras de división de bloques y la habilitación de funciones de filtrado de bucle. Algunas opciones para las que no estoy seguro sobre la función en este momento están marcadas con mensajes (??), pendientes de actualizaciones posteriores.

            --cpu-used=<arg>           	运行速度设置(0..5 good模式, 6..8 realtime模式)
            --auto-alt-ref=<arg>       	启用自动替代参考帧
            --sharpness=<arg>          	环路滤波锐化(0..7)
            --static-thresh=<arg>      	运动检测门限
            --row-mt=<arg>             	基于行的多线程功能(0: 关, 1: 开 (default))
            --tile-columns=<arg>       	要使用的tile列数, log2值(注:所以AV1也支持类HEVC的tile划分?)。
            --tile-rows=<arg>          	要使用的tile行数,log2值。
            --enable-tpl-model=<arg>   	基于帧时域相关性的RDO(0: 关闭, 1: 基于后向源). deltaq模式要求启用该模式。(注:难道是分析帧间块的相关性用于RD决策?)
            --enable-keyframe-filterin 	启用在关键帧的时域滤波(0: 关闭, 1: 打开 (默认打开))。
            --arnr-maxframes=<arg>     	最大替代参考帧数量(0..15)
            --arnr-strength=<arg>      	替代参考帧滤波强度(0..6)
            --tune=<arg>               	基于下列失真度量指标之一调优:psnr, ssim, vmaf_with_preprocessing, vmaf_without_preprocessing, vmaf。
             --cq-level=<arg>           恒定或受限质量的等级。
            --max-intra-rate=<arg>     	最大I帧码率(pct?百分比?)。
            --max-inter-rate=<arg>     	最大P帧码率(pct?百分比?)。
            --gf-cbr-boost=<arg>       	在CBR模式下允许Golden Frame的码率上升(pct?百分比?)。
            --lossless=<arg>           	无损压缩模式(0: 不启用 (默认), 1: 启用)
            --enable-cdef=<arg>        	启用有限方向加强滤波器(0: 不启用, 1: 启用 (默认))
            --enable-restoration=<arg> 	启用环路恢复滤波器(0: 不启用 (实时模式的默认值), 1: 启用 (非实时模式的默认值))。
            --enable-rect-partitions=<arg> 	启用矩形划分(0: 不启用, 1: 启用 (默认))
            --enable-ab-partitions=<arg> 	启用ab(??)划分 (0: 不启用, 1: 启用 (默认))
            --enable-1to4-partitions=< 	启用1:4和4:1的划分 (0: 不启用, 1: 启用 (默认))
            --min-partition-size=<arg> 	设置最小分块尺寸 (4:4x4, 8:8x8, 16:16x16, 32:32x32, 64:64x64, 128:128x128). 在分辨率大于4k或更快编码速度的设置中,最小分块尺寸是8。            --max-partition-size=<arg> 	设置最大分块尺寸 (4:4x4, 8:8x8, 16:16x16, 32:32x32, 64:64x64, 128:128x128)。
            --enable-dual-filter=<arg> 	启用双重滤波器 (0: 不启用, 1: 启用 (默认))
            --enable-chroma-deltaq=<ar 	启用色度delta quant(0: 不启用 (默认), 1: 启用)
            --enable-intra-edge-filter 	启用帧内边缘滤波 (0: 不启用, 1: 启用 (默认)))
            --enable-order-hint=<arg>  	启用顺序提示(??) (0: 不启用, 1: 启用 (默认))
            --enable-tx64=<arg>        	启用64x64的变换(??)(0: 不启用, 1: 启用 (默认))
            --enable-flip-idtx=<arg>   	启用扩展的一些变换类型 (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。(注:似乎AV1也在变换核上做了优化,引入更多的变换核)
            --enable-dist-wtd-comp=<arg> 	启用基于距离加权的复合 (0: 不启用, 1: 启用 (默认))(注:该项及后面的多项复合是指帧间预测的时候??)
            --enable-masked-comp=<arg> 	启用蒙版(wedge / diff-wtd)复合 (0: 不启用, 1: 启用 (默认))
            --enable-onesided-comp=<arg> 	启用单边复合 (0: 不启用, 1: 启用 (默认))
            --enable-interintra-comp=<arg> 	启用帧间-帧内复合 (0: 不启用, 1: 启用 (默认))
            --enable-smooth-interintra 	启用平滑的帧间-帧内复合 (0: 不启用, 1: 启用 (默认))
            --enable-diff-wtd-comp=<ar 	启用平基于区别加权的复合 (0: 不启用, 1: 启用 (默认))
            --enable-interinter-wedge= 	启用帧间-帧间楔型复合(0: 不启用, 1: 启用 (默认))
            --enable-interintra-wedge= 	启用帧间-帧内楔型复合(0: 不启用, 1: 启用 (默认))
            --enable-global-motion=<ar 	启用全局运动(0: 不启用, 1: 启用 (默认))
            --enable-warped-motion=<ar 	启用局部翘曲运动(0: 不启用, 1: 启用 (默认))
            --enable-filter-intra=<arg 	启用滤波帧内预测模式(0: 不启用, 1: 启用 (默认))
            --enable-smooth-intra=<arg 	启用平滑帧内预测模式(0: 不启用, 1: 启用 (默认))
            --enable-paeth-intra=<arg> 	启用Paeth 帧内预测模式(0: 不启用, 1: 启用 (默认))
            --enable-cfl-intra=<arg>   	启用色度从亮度生成帧内预测模式(0: 不启用, 1: 启用 (默认))
            --force-video-mode=<arg>   	强制视频模式(0: 不启用, 1: 启用 (默认))
            --enable-obmc=<arg>        	启用OBMC (0: 不启用, 1: 启用 (默认))
            --enable-overlay=<arg>     	启用编码覆盖帧(0: 不启用, 1: 启用 (默认))
            --enable-palette=<arg>     	启用调色板预测模式(0: 不启用, 1: 启用 (默认))
            --enable-intrabc=<arg>     	启用帧内块复制预测模式(0: 不启用, 1: 启用 (默认))
            --enable-angle-delta=<arg> 	启用帧内角度差值(0: 不启用, 1: 启用 (默认))
            --disable-trellis-quant=<a 	禁用量化系数的网格优化Disable trellis optimization of (0: 不禁用 1: 禁用  2: rd搜索时禁用 3: yrd搜索时禁用(default))
            --enable-qm=<arg>          	启用量化矩阵(0: 不启用(默认), 1: 启用 )
            --qm-min=<arg>             	最小量化矩阵平整度(0..15), 默认8
            --qm-max=<arg>             	最大量化矩阵平整度(0..15), 默认15
            --reduced-tx-type-set=<arg 	使用简化的变化类型集合
            --use-intra-dct-only=<arg> 	仅帧内预测模式使用DCT
            --use-inter-dct-only=<arg> 	仅帧间预测模式使用DCT
            --use-intra-default-tx-onl 	帧内模式仅使用默认变换
            --quant-b-adapt=<arg>      	使用自适应quantize_b(??)
            --coeff-cost-upd-freq=<arg 	系数代价的更新频率:0: Super Block, 1: Super Block Row per Tile, 2: Tile。
            --mode-cost-upd-freq=<arg> 	模式代价的更新频率:0:Super Block, 1: Super Block Row per Tile, 2: Tile
            --mv-cost-upd-freq=<arg>   	运动矢量代价的更新频率:0: SB, 1: SB Row per Tile, 2: Tile, 3: Off
            --frame-parallel=<arg>     	启用帧并行解码特点(0: 不启用(默认), 1: 启用 )
            --error-resilient=<arg>    	启用错误恢复功能(0: 不启用(默认)
            --aq-mode=<arg>            	自适应量化模式(0: 关闭(默认), 1: 基于方差 2: 基于复杂度, 3: 循环刷新)
            --deltaq-mode=<arg>        	Delta qindex 模式(0: 关闭, 1: deltaq客观模式 (default), 2: deltaq 感知模式). 需要enable-tpl-model作为先决条件。
            --delta-lf-mode=<arg>      	启用delta-lf-mode(0: 不启用(默认), 1: 启用 )
            --frame-boost=<arg>        	启用帧定期增强 (0: 不启用(默认), 1: 启用 )
            --noise-sensitivity=<arg>  	噪声敏感度(用于模糊原始帧?)
            --tune-content=<arg>       	基于内容类型调整:default(默认), screen(屏幕内容)
            --cdf-update-mode=<arg>    	熵编码概率分布函数(Cumulative Distribution Function, CDF)更新:(0: 不更新CDF; 1: 在所有帧上进行CDF更新(默认); 2: 有选择地在某些帧更新CDF。
            --color-primaries=<arg>    	输入内容的色彩格式: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=<arg 	输入内容的矩阵系数: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=<arg>    	最小gf / arf帧间隔 (默认 0, 使用内建判断)
            --max-gf-interval=<arg>    	最大gf / arf帧间隔 (默认 0, 使用内建判断)
            --gf-min-pyr-height=<arg>  	GF(Golden Frame??)group 金字塔结构的最小高度(0 (默认) to 5)
            --gf-max-pyr-height=<arg>  	GF(Golden Frame??)group 金字塔结构的最大高度(0 to 5 (默认))
            --sb-size=<arg>            	Superblock size to use: dynamic, 64, 128
            --num-tile-groups=<arg>    	最大tile group个数, 默认 1
            --mtu-size=<arg>           	Tile group的MTU尺寸 , 默认0 (no MTU targeting), overrides maximum number of tile groups
            --timing-info=<arg>        	在码流中传输timing info(当前模型仅支持无隐藏帧、无超分辨率帧的情况):unspecified, constant, model
            --film-grain-test=<arg>    	胶片颗粒测试矢量 (0: none (default), 1: test-1  2: test-2, ... 16: test-16)
            --film-grain-table=<arg>   	包含胶片颗粒参数的文件的路径
            --denoise-noise-level=<arg 	噪声量(from 0 = don't denoise, to 50)
            --denoise-block-size=<arg> 	降噪块尺寸(default = 32)
            --max-reference-frames=<ar  每帧允许的最大参考帧数(3 to 7 (default))
            --reduced-reference-set=<a 	使用简化的单一和复合参考集(0: off (default), 1: on)
            --enable-ref-frame-mvs=<ar 	启用时域mv预测(default is 1)
            --target-seq-level-idx=<ar 	目标序列层级索引。数值以"ABxy"(小于4位时前面补0)的形式呈现。AB: 操作点(Operating point, OP)索引; xy: OP对应的目标层级索引。E.g. "0" means target level index 0 for the 0th OP; "1021" means target level index 21 for the 10th OP.
            --set-tier-mask=<arg>      	设置位掩码以指定32个可能的OP中的每一个符合哪个层。Bit value 0(defualt): Main Tier; 1: High Tier.
            --min-cr=<arg>             	设置最小压缩率(取整数值)。 默认值为0。如果非零,则编码器将尝试使每个帧的压缩率高于给定值除以100。
  -b <arg>, --bit-depth=<arg>          	Codec的bit depth(8 for version <=1, 10 or 12 for version 2):8, 10, 12
            --input-bit-depth=<arg>    	输入文件的bit depth。
            --input-chroma-subsampling-x 	色度下采样x位置值。
            --input-chroma-subsampling-y 	色度下采样y位置值。
            --sframe-dist=<arg>        	S-Frame 间隔(frames)
            --sframe-mode=<arg>        	S-Frame 插入模式(1..2)
            --annexb=<arg>             	以Annex-B形式保存(码流?)

 

Supongo que te gusta

Origin blog.csdn.net/BigDream123/article/details/109441957
Recomendado
Clasificación