• libaomのデコード、さらに速くなってる

    2019年04月09日 03時16分
    今日試してみたら、Core i7 3770のChrome Canaryでv1.0.0以降でエンコードしたAV1動画が再生出来るようになってた。
    一気に目に見えて速くなったので驚いた。

    あとどのくらい最適化の余地があるかは分からないけど
    このくらいの速度が出るならソフトウェアデコードも実用範囲に入ってきたかもしれない。
  • libaomのデコード、速くなってる

    2019年02月17日 18時47分
    v1.0.0以降でエンコードしたAV1動画を不定期にChrome CanaryとFirefox Nightlyで再生しているのだけど、
    今日Core i7 7700のChrome Canaryで実行したら止まらずに再生出来た。

    正月くらいに見た時は所々で止まってたのでまだ高速化は頑張っているようだ。

    Firefox Nightlyの方はダメだった。
    同じlibaomなのになんでだろ?まあChrome Canaryもフレームが落ちているのかもしれない。

    あと、Firefox Nightlyはlibaomだけでなくdav1dも実装されているが
    少なくともこの映像に関してはdav1dはlibaomより遅い。


    Core i7 3770でも再生してみたけどこちらはまだダメ。
    ただ、半年前よりだいぶ動いているのでもうちょっと頑張ればもしかしたら行けるかも感は出ている。
  • v1.0.0以降でエンコードしたAV1動画 2

    2018年08月07日 19時09分
    前回の動画だと再生があまりに無理すぎて面白みが無いので一段軽くした動画も作った。

    ちなみに前回の動画はCore i7 7700で再生してみたらもうちょっとな感じだったので、
    Core i7 8700とか8086Kとかなら行けるかもしれない。


    今回のソースの映像はFF14からオメガ vs 神龍をキャプチャしてきた i420 1280 * 760 6555フレーム(30fps)のデータ。

    これはCore i7 3770でリアルタイムにデコード出来たので割と新しめなCPUなら行けると思う。



    容量は114MBくらいです。
  • v1.0.0以降でエンコードしたAV1動画

    2018年08月03日 20時16分
    v1.0.0以降でエンコードしたAV1動画を試しに作った。

    ソースの映像は例によってカスタムオーダーメイド3D2をキャプチャしてきた i420 1920 * 1080 10743フレーム(60fps)のデータ。

    これをaomenc(66b7d7bc04c68b5be21190013cee06f101f317e9 2018-07-26 01:38:44 GMT)でエンコード。

    オプションはこう。
    aomenc ^
    --verbose ^
    --psnr ^
    --threads=4 ^
    --webm ^
    --codec=av1 ^
    --profile=0 ^
    --end-usage=q ^
    --passes=1 ^
    --cq-level=32 ^
    --cpu-used=8 ^
    --tile-columns=3 ^
    --tile-rows=2 ^
    --frame-parallel=1 ^
    --color-primaries=bt709 ^
    --transfer-characteristics=srgb ^
    --matrix-coefficients=bt709 ^
    --output=av1_1920x1080_i420_60fps.webm ^
    av1_1920x1080_i420_60fps.y4m


    CPUはA8-3850を使って513890859 ms(142時間)かかった。
    60fpsとはいえ実時間の2854倍である。

    参考だが最初cpu-used=0でエンコードしようとしたところ、
    残り800時間とか表示が見えてキャンセルした。
    たぶん最後までエンコードしたら1000時間オーバーだと思う。

    相変わらずというか昔より遅くなっている気もするが、
    v1.0.0以降、最適化を頑張っているみたいで「何十%早くなりました!」
    みたいなのがそこそこ入ってるから今後に期待したい。


    デコードの方は、A8-3850はもちろんCore i7 3770でもやはり間に合わない。
    まあデコーダの最適化具合を見るとかCPUのベンチマーク的に使えばよいと思う。
    Ryzen Threadripperとかなら行けるかもしれない。



    画質と容量については深く考えずに作ってしまったので3分の動画なのに391MBもある。
    とりあえずcq-level=32では過剰なようだ。
  • ブラウザのAV1対応状況

    2018年07月27日 23時54分
    ブラウザで再生可能なAV1を作るにはどんな感じの設定がいいかなーと思って対応状況をちょっと調べたのでメモ。

    Firefox Nightly 63.0a1 (2018-07-26)
    • v1.0.0以降に対応済み
    • about:configでmedia.av1.enabledをtrueにすると再生可能
    • ビットストリームのmatrix coefficients指定を無視してBT.601として変換
    • ビットストリームのcolor range指定を無視してstudio(limited)として変換

    Chrome Canary 70.0.3503.0
    • v1.0.0以降に対応済み
    • chrome://flagsで#enable-av1-decoderをEnabledにすると再生可能
    • ビットストリームのmatrix coefficients指定を無視してBT.709として変換
    • ビットストリームのcolor range指定を無視してstudio(limited)として変換
    • yuv444非対応(Profile 0のみ対応?)

    まだ細かいところが調整されていないだけで後から直されるかと思いきや
    この辺りの動作は割と雑に実装されておしまいというケースも多いのでどうだろう?