--tuneでdaala-distとcdef-distが有効にならない
ledyba-z opened this issue · comments
daala-distとcdef-distの実装自体はたしかに存在する。しかし、呼ばれていない。
有効にするには、
set_aom_config_var(CONFIG_DIST_8X8 0 "AV1 experiment flag.")
というコンパイルフラグを有効にしないといけない。
まず、これを利用者側で変更する方法がわからない。それを調査する。
さらに、ここを無理やり1に書換えてビルドしたものの、
[2020/01/29 02:20:07 INFO ] cavif
[2020/01/29 02:20:07 INFO ] libaom ver: 1.0.0-errata1-avif
[2020/01/29 02:20:08 INFO ] Encoding: hato.png -> test.avif
cavif: /home/psi/umi/src/github.com/link-u/cavif/external/libaom/av1/encoder/rdopt.c:3425: search_txk_type: Assertion `block_mse_q8 != UINT_MAX' failed.
となって動かない。
masterブランチでなら有効になっているのかどうかをチェックし、もし大丈夫そうなら、自動テスト環境を整えた上で、masterブランチに引き上げる。
libaomを上げたところさらに増えたのでフラグだけ追加してみて実際に使われるか調べます
/*!\brief Model tuning parameters
*
* Changes the encoder to tune for certain types of input material.
*
*/
typedef enum {
AOM_TUNE_PSNR,
AOM_TUNE_SSIM,
AOM_TUNE_CDEF_DIST,
AOM_TUNE_DAALA_DIST,
AOM_TUNE_VMAF_WITH_PREPROCESSING,
AOM_TUNE_VMAF_WITHOUT_PREPROCESSING,
AOM_TUNE_VMAF_MAX_GAIN
} aom_tune_metric;
VMAFは別ライブラリが更に必要らしい、、、うーむ
VMAF can indeed be run on two images. In this case, compute_motion will return 0 value. The implication is that it will treat the single image as a static video shot.
意味は無くはなさそう
Can vmaf wrapper support compare 2 images · Issue #286 · Netflix/vmaf
Netflix/vmaf#286
https://aomedia.googlesource.com/aom/+/8afb8548a5153dfa5cf6436fa17bc4bf716f6a77
「使ってないenum消したぜ!」のコミットが入ったのでcavifからも消しました。