-
Notifications
You must be signed in to change notification settings - Fork 73
ksc265_appencoder_appdecoder_test
[TOC]
金山云H.265编码器Sample, 是在编码器SDK上封装的简单测试程序, 使用方法类似于HM, x264/x265测试程序. 可以读入YUV文件, 输出H.265码流. 可在定QP、定码率等多种情况下与其他编码器进行性能上的对比测试.
测试程序采用命令行配置, 基本配置如下:
配置 | 是否必配 | 取值 | 说明 |
---|---|---|---|
-preset | string (superfast, veryfast, fast, medium, slow,veryslow) | 速度档次, 默认值veryfast | |
-tune | default, selfshow, game, movie, screen | 应用场景, 默认值default, 其他暂无作用 | |
-latency | zerolatency, lowdelay, livestreaming, offline | 延迟档次, 默认offline | |
-i | √ | string | 输入YUV文件名 |
-wdt | * | int | 输入图像宽度 |
-hgt | * | int | 输入图像高度 |
-fr | * | double | 帧率 |
-b | string | 输出265文件名 | |
-rc | √ | 0: disbale,1:cbr, 2: abr, 3: crf | 码控开关和类型(恒定qp,恒定码率,平均码率和恒定质量), 默认值为1 |
-qp | * | 0~51 | 如果rc=0, 必须设置qp, 默认值为30 |
-qpmin | * | 0~51 | 码率控制过程中, 帧级最小使用的QP. 如果rc=1或2, 可设置qpmin |
-qpmax | * | 0~51 | 码率控制过程中, 帧级最大使用的QP. 如果rc=1或2, 可设置qpmax |
-br | * | int | 如果rc为cbr或abr, 必须设置比特率, 单位为kbps, 默认值为500 |
-VbvBufSize | * | int | 如果rc为cbr或abr, 可配置vbv缓冲区大小, 单位为kbits |
-VbvMaxRate | * | int | 如果rc为cbr或abr, 可配置vbv缓冲区编码最大码率, 单位为kbps |
-crf | * | 0~51 | 如果rc为crf, 必须配置crf, 默认值为30 |
-psnr | 0,1,2 | 0: disable计算psnr; 1: 计算并输出最终psnr;2: 输出每帧psnr. 默认值为0 | |
-iper | int | 关键帧间隔, 单位为帧数, 默认256 | |
-tlayer | int | 是否使用时间分级, 在QY265LATENCY_ZERO和QY265LATENCY_LOWDELAY两个延迟档次使用. 0:关闭, 1:打开. 默认值为0 | |
-threads | int | 线程数, 设为0则等于CPU核数, 默认值0 | |
-bframes | int | 相邻两个前向参考图像间最大使用的B帧数目. 不配置或值为-1时, 表示使用默认值7. 目前支持0,1,3,7. | |
-wpp | 0, 1 | 是否使能wpp并行, 默认值1 | |
-fpp | 0, 1 | 是否使能帧级并行, 默认值1 | |
-frms | int | 测试帧数, 设为-1或大数则跑完所有帧, 默认值-1 | |
-o | string | 输出重建YUV文件名, 不设置该选项则不输出. 输出YUV可用于查看主观质量和采用第三方psnr工具验证编码器自身计算psnr的正确性 |
是否必配栏目带*号的为特定条件下必配.
-preset和-tune会将所有编码工具和参数按照应用场景和速度档次配成默认值. 如果额外设置编码工具, 则覆盖-preset和-tune生成的默热值, 以额外设置的为准.
如果输入yuv文件名类似于Johnny_1280x720_60.yuv, 测试程序可以自动解析分辨率和帧率. 模式为(width)x(height)_(fps). 输入文件名不满足该模式的条件下, 分辨率和帧率必配.
示例:./appencoder -i /home/yuv/720P/Johnny_1280x720_60.yuv -preset superfast -latency offline -rc 2 -bitrate 300 -psnr 2
测试程序还可通过配置文件, 或配置文件+命令行组合的方式进行配置, 如
./appencoder –c test.cfg –psnr 1 –psnr 2 后面的配置将会覆盖前面命令行以及文件中写入的配置. 比如上例psnr最终等于2.
此外,
./appencoder –help查看帮助 ./appencoder –v查看版本号
金山云H.265解码器Sample, 是在解码器SDK上封装的简单测试程序, 使用方法类似于HM. 可以读入H.265码流文件, 输出解码重建YUV文件. 可与其他解码器进行性能上的对比测试.
测试程序采用命令行配置, 基本配置如下:
配置 | 是否必配 | 取值 | 说明 |
---|---|---|---|
-b | √ | string | 输入H.265码流文件名 |
-o | string | 输出重建YUV文件名, 不设置该选项则不输出. | |
-threads | int | 线程数, 设为0则等于CPU核数, 默认值0 |
使用示例:
./appdecoder –b aaa.265
./appdecoder –b aaa.265 –o out.yuv –threads 4