近期在arm aarch64上集成libvmaf到ffmpeg上进行图像质量评估时,遇到部分问题,整理下。
涉及相关:
avx:AVX指令集,X86平台支持,其他平台好像不支持
vif:图像质量评价
vif_filter1d:主要调用convolution_f32_avx_s_1d*好像是1维卷积啥的,有宏VIF_OPT_FILTER_1D控制,默认打开犹豫依赖了avx相关函数导致在arm上编译不过
vif_filter2d:2d没有使用到卷积,应该可以正常编译
使用meson构建,需要注释掉中间依赖1d的部分
libvmaf = both_libraries(
'vmaf',
vmaf_sources,
include_directories : vmaf_include,
c_args : vmaf_cflags_common,
cpp_args : vmaf_cflags_common,
dependencies : [thread_lib, stdatomic_dependency],
objects : [
//convolution_and_psnr_avx_static_lib.extract_all_objects(),
libptools.extract_all_objects(),
libvmaf_feature_static_lib.extract_all_objects(),
],
install: true,
soversion: vmaf_soversion,
version: vmaf_soname_version,
)
即使用2d从而保证依赖1d代码,编译配置不用再生成其中的convolution_and_psnr_avx_static_lib
大致方向是这样。
参考以下地址,具体算法无能为力。。。
计算常用参考图像质量评价指标 PSNR / SSIM / MSSSIM / IFC / VIF的相关matlab总结代码