Signed-off-by: Kyle Swanson <kswanson@netflix.com>tags/n4.1
@@ -6089,7 +6089,7 @@ enabled libtwolame && require libtwolame twolame.h twolame_init -ltwolame | |||||
die "ERROR: libtwolame must be installed and version must be >= 0.3.10"; } | die "ERROR: libtwolame must be installed and version must be >= 0.3.10"; } | ||||
enabled libv4l2 && require_pkg_config libv4l2 libv4l2 libv4l2.h v4l2_ioctl | enabled libv4l2 && require_pkg_config libv4l2 libv4l2 libv4l2.h v4l2_ioctl | ||||
enabled libvidstab && require_pkg_config libvidstab "vidstab >= 0.98" vid.stab/libvidstab.h vsMotionDetectInit | enabled libvidstab && require_pkg_config libvidstab "vidstab >= 0.98" vid.stab/libvidstab.h vsMotionDetectInit | ||||
enabled libvmaf && require_pkg_config libvmaf "libvmaf >= 0.6.2" libvmaf.h compute_vmaf | |||||
enabled libvmaf && require_pkg_config libvmaf "libvmaf >= 1.3.9" libvmaf.h compute_vmaf | |||||
enabled libvo_amrwbenc && require libvo_amrwbenc vo-amrwbenc/enc_if.h E_IF_init -lvo-amrwbenc | enabled libvo_amrwbenc && require libvo_amrwbenc vo-amrwbenc/enc_if.h E_IF_init -lvo-amrwbenc | ||||
enabled libvorbis && require_pkg_config libvorbis vorbis vorbis/codec.h vorbis_info_init && | enabled libvorbis && require_pkg_config libvorbis vorbis vorbis/codec.h vorbis_info_init && | ||||
require_pkg_config libvorbisenc vorbisenc vorbis/vorbisenc.h vorbis_encode_init | require_pkg_config libvorbisenc vorbisenc vorbis/vorbisenc.h vorbis_encode_init | ||||
@@ -10868,7 +10868,7 @@ The obtained VMAF score is printed through the logging system. | |||||
It requires Netflix's vmaf library (libvmaf) as a pre-requisite. | It requires Netflix's vmaf library (libvmaf) as a pre-requisite. | ||||
After installing the library it can be enabled using: | After installing the library it can be enabled using: | ||||
@code{./configure --enable-libvmaf}. | |||||
@code{./configure --enable-libvmaf --enable-version3}. | |||||
If no model path is specified it uses the default model: @code{vmaf_v0.6.1.pkl}. | If no model path is specified it uses the default model: @code{vmaf_v0.6.1.pkl}. | ||||
The filter has following options: | The filter has following options: | ||||
@@ -10902,6 +10902,15 @@ Enables computing ms_ssim along with vmaf. | |||||
@item pool | @item pool | ||||
Set the pool method (mean, min or harmonic mean) to be used for computing vmaf. | Set the pool method (mean, min or harmonic mean) to be used for computing vmaf. | ||||
@item n_threads | |||||
Set number of threads to be used when computing vmaf. | |||||
@item n_subsample | |||||
Set interval for frame subsampling used when computing vmaf. | |||||
@item enable_conf_interval | |||||
Enables confidence interval. | |||||
@end table | @end table | ||||
This filter also supports the @ref{framesync} options. | This filter also supports the @ref{framesync} options. | ||||
@@ -62,6 +62,9 @@ typedef struct LIBVMAFContext { | |||||
int ssim; | int ssim; | ||||
int ms_ssim; | int ms_ssim; | ||||
char *pool; | char *pool; | ||||
int n_threads; | |||||
int n_subsample; | |||||
int enable_conf_interval; | |||||
int error; | int error; | ||||
} LIBVMAFContext; | } LIBVMAFContext; | ||||
@@ -78,6 +81,9 @@ static const AVOption libvmaf_options[] = { | |||||
{"ssim", "Enables computing ssim along with vmaf.", OFFSET(ssim), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, | {"ssim", "Enables computing ssim along with vmaf.", OFFSET(ssim), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, | ||||
{"ms_ssim", "Enables computing ms-ssim along with vmaf.", OFFSET(ms_ssim), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, | {"ms_ssim", "Enables computing ms-ssim along with vmaf.", OFFSET(ms_ssim), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, | ||||
{"pool", "Set the pool method to be used for computing vmaf.", OFFSET(pool), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 1, FLAGS}, | {"pool", "Set the pool method to be used for computing vmaf.", OFFSET(pool), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 1, FLAGS}, | ||||
{"n_threads", "Set number of threads to be used when computing vmaf.", OFFSET(n_threads), AV_OPT_TYPE_INT, {.i64=0}, 0, UINT_MAX, FLAGS}, | |||||
{"n_subsample", "Set interval for frame subsampling used when computing vmaf.", OFFSET(n_subsample), AV_OPT_TYPE_INT, {.i64=1}, 1, UINT_MAX, FLAGS}, | |||||
{"enable_conf_interval", "Enables confidence interval.", OFFSET(enable_conf_interval), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS}, | |||||
{ NULL } | { NULL } | ||||
}; | }; | ||||
@@ -166,7 +172,8 @@ static void compute_vmaf_score(LIBVMAFContext *s) | |||||
read_frame, s, s->model_path, s->log_path, | read_frame, s, s->model_path, s->log_path, | ||||
s->log_fmt, 0, 0, s->enable_transform, | s->log_fmt, 0, 0, s->enable_transform, | ||||
s->phone_model, s->psnr, s->ssim, | s->phone_model, s->psnr, s->ssim, | ||||
s->ms_ssim, s->pool); | |||||
s->ms_ssim, s->pool, | |||||
s->n_threads, s->n_subsample, s->enable_conf_interval); | |||||
} | } | ||||
static void *call_vmaf(void *ctx) | static void *call_vmaf(void *ctx) | ||||