集計期間は週間のニコ生統計の1ヶ月分である。2018年からカテゴリタグの割合は今までと変わらないが、1枠30分の割合が少なくなったので来場者数とコメント数の6000以上を除かないすべての放送を対象にした。それに伴い平均値は除外した。来場者数はTS視聴可能時間が来れば増え、TS来場者数を含まずに計算することは困難な仕様なので、翌日(当日)の朝に前日の6時から当日の6時までを取得している。
全放送を対象にしたので改めて以前の放送のデータを使って調べ直している。
niconicoとffmpegのことを中心に書いてる
集計期間は週間のニコ生統計の1ヶ月分である。2018年からカテゴリタグの割合は今までと変わらないが、1枠30分の割合が少なくなったので来場者数とコメント数の6000以上を除かないすべての放送を対象にした。それに伴い平均値は除外した。来場者数はTS視聴可能時間が来れば増え、TS来場者数を含まずに計算することは困難な仕様なので、翌日(当日)の朝に前日の6時から当日の6時までを取得している。
全放送を対象にしたので改めて以前の放送のデータを使って調べ直している。
入力フレームがインターレース、プログレッシブ、トップフィールドファースト(tff)、ボトムフィールドファースト(bff)のどれであるかを調べるidet
(interlace detect type) フィルタの使い方。また、隣り合うフレーム間で重複するフィールド(テレシネのサイン)も調べられる。一般的にはSD解像度はbff、HD解像度はtffで、SD解像度は縦解像度が608未満をさす。
櫛状態を調べる方法にfieldmatch
フィルタのcombdbgでデバグログを調べることもできる。
前後フィールドを考慮して逆テレシネするfieldmatch
文字を直接コマンドに記述したり、ファイルを読み込んで描写するdrawtext
フィルタの使い方。現在のところ絵文字には対応していない。文字を動かしたり、表示非表示の切り替えや、内容を変更したり、色を変えたり出来る。ただし映像の途中に拡大縮小は出来ないのでass, subtitles
フィルタを使って字幕ファイルを編集して動かす方法をとる。拡大縮小は2017年4月のコミットからできたがドキュメントが修正されてなかった。
外部ライブラリフィルタなので別途インストールが必要である。基本となるlibfreetypeと、libharfbuzz。font設定に必要なfontconfig。text_shaping設定に必要なlibfribidi。日本語は日本語に対応したフォントでないと描写できない。
ass の字幕ファイルを動画に焼き付ける ass
字幕ファイルを動画に焼き付ける subtitles
テキスト描写にはフォント描写の知識がないとオプションの意味が分かりにくい。
vmaf スコアの調べ方。新しい映像の品質評価 libvmaf
インターレース解除フィルタでの vmaf スコアを調べる。比較したデインターレースフィルタは左から、yadif, bwdif, fieldmatch, pp=linipoldeint, pp=cubicipoldeint, pp=mediandeint, pp=ffmpegdeint
の初期設定。エンコーダは QSV で余裕を持って 10000k 固定ビットレート出力している。
結論はfieldmatch
フィルタが実写、アニメ映像にかかわらず vmaf スコアが高くなり、映像を補間するフィルタは vmaf スコアが下がる傾向になった。fieldmatch
フィルタのスコアが高くなるのは縞が出ないところは何もせずに縞があるところだけフィールドをずらしてプログレッシブにするので元映像と比較すると変化が少ないことが最大の理由と考えられる。
集計期間は週間のニコ生統計の1ヶ月分である。2018年からカテゴリタグの割合は今までと変わらないが、1枠30分の割合が少なくなったので来場者数とコメント数の6000以上を除かないすべての放送を対象にした。それに伴い平均値は除外した。来場者数はTS視聴可能時間が来れば増え、TS来場者数を含まずに計算することは困難な仕様なので、翌日(当日)の朝に前日の6時から当日の6時までを取得している。
全放送を対象にしたので改めて以前の放送のデータを使って調べ直している。
3次元周波数領域デノイズフィルタfftdnoiz
の使い方。ただし既定値では3次元はなく2次元設定になっている。他の3次元デノイズフィルタにhqdn3d
がある。
ffmpeg -i input -vf fftdnoiz=sigma=1:amount=1:block=4:overlap=0.5:prev=0:next=0:planes=7 output
ffplay -i input -vf fftdnoiz=1:1:4:0.5:0:0:7
3次元デノイズにするにはprev, nextを有効にする
ffplay -i input -vf fftdnoiz=prev=1:next=1
ffplay -i input -vf fftdnoiz=1:1:4:0.5:1:1:7
不可逆圧縮したときに生じる圧縮アーティファクトを除去するdeblock
フィルタの使い方。
ffmpeg -i input -vf deblock=filter=1:block=8:alpha=0.098:beta=0.05:gamma=0.05:delta=0.05:planes=15 output
ffplay -i input -vf deblock=1:8:0.098:0.05:0.05:0.05:15
ブロックサイズ4ピクセルの弱いフィルタ
ffplay -i input -vf deblock=filter=weak:block=4
ブロックサイズ4ピクセルの強いフィルタにエッジのでブロックを強化
ffplay -i input -vf deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05
上と似ているが最初のチャンネルしか効果がない
ffplay -i input -vf deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=1
2つ入力した映像を比較し PNSR(Peak Signal to Noise Ratio:2つの映像、または画像の同位置のピクセルの輝度を比較する指標)。MSE(mean squared error)は PSNR を計算するのに使われる。比較する動画は同じ解像度とfps、ピクセルフォーマットである必要がある。
ファイルの入力順が逆だったのを訂正した。2021年8月11日
1入力がオリジナルの動画、2入力がSSIMを計算する動画ではなく、1入力がSSIMを計算する動画で、2入力がオリジナルの動画でlibvmaf
フィルタと同じ順番。
視覚評価に重きを置いたxpsnr
も公開された。2024年9月9日
海外カンファレンスで得た知見を最大化する 〜 NAB Show 2018 編 〜 : developers.cyberagent.co.jp
集計期間は週間のニコ生統計の1ヶ月分である。2018年からカテゴリタグの割合は今までと変わらないが、1枠30分の割合が少なくなったので来場者数とコメント数の6000以上を除かないすべての放送を対象にした。それに伴い平均値は除外した。来場者数はTS視聴可能時間が来れば増え、TS来場者数を含まずに計算することは困難な仕様なので、翌日(当日)の朝に前日の6時から当日の6時までを取得している。
全放送を対象にしたので改めて以前の放送のデータを使って調べ直している。
特定のフレーム間隔での出力ならtrim、atrim
フィルタでもよいが、select
フィルタはピクチャータイプやインターレースタイプの指定でも出力できる。難点はどちらもデコードしながら処理を進めるがtrim、atrim
フィルタはデコード開始終了を指定できるのに対して、select、aselect
フィルタは区間を区切ってもストリーム全体をデコードするので尺が長いほど処理が長くなる。一定周期でフレームを間引くならshuffleframes
フィルタもある。