• 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のみ対応?)

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

    2018年06月26日 21時00分
                           コングラッチュレーション
                 ,―==7     Congratulation!   コングラッチュレーション
                 |く ___ _>                    Congratulation!
                 fll`ーU+'
                 `''、 ー=|      おめでとう・・・・・・・・!
              _,,..-´:|ヽー-;ー..,,_
    .  ,-=-, ,,..-‘≡≡:| ><´|≡::|ヽ    おめでとう・・・・・・・・!  おめでとう・・・・・・・・!
    .  | l____ヽ.|≡l≡≡≡| |::| |≡:::/::|
    .  |(llー´_ヽ|≡|≡≡≡|.|:::|l≡::/::::|      1.0.0おめでとう・・・・・・・・・・・・!
    .. 4 l__`=|_|≡:|≡≡≡::||:::|'≡/≡|
    /|\,.・|::≡:|ヽ|≡≡≡≡≡:::/|≡::|                         _,,.........、
    ≡|/}:ヽ|:≡|::::|{≡≡≡≡≡:::{ .|≡::|                        ヽ_,,   ヽ
    ≡:| |:::|l≡:|≡|:|≡≡≡≡≡:::|. .|≡::|                        /_>   |
    :::≡l|:::|'≡:|≡:|::|≡≡≡≡≡:::|. .|≡::|                       |7 llう.. |
    ≡≡≡≡/|≡ヽ≡≡≡≡≡::::|. ..|≡::|.    z-..,〃、             ム__ ll´.. |
    ::≡≡≡::/ ヽ≡ヽ≡::|―、≡≡::l ..|≡::|   /    ミ              1´/ヽ==,...
    ::≡≡≡|   \≡ヽ::|  ヽ≡≡l  .ljヽl  |   刀、ミ           _,,,..-`‐三=ー-
    ::≡≡≡|    |ヽ/ー.、.. ヽ≡≡l.  .|/  |  ノ= ∠i         /ヽ、≡≡≡≡≡
    :|¬、≡≡ヽ.  |≡ゞー=ッ  |≡≡|   __/ (ll ー゜\|ヽ.       /≡::ヽ≡≡≡≡≡
    :|  ヽ≡≡ヽ |≡≡ヽミ.   |≡≡|  l|. ll7| ヽu=/l二ll二l'''ヽ  /≡:::/≡≡≡≡≡
    :|   ヽ≡≡ヽ≡≡|     |≡≡|  | | llヽ|w-ヽ/Nヽll  |  | /≡:::/≡≡≡≡≡≡


    ソースのgit
    https://aomedia.googlesource.com/aom/+/v1.0.0

    仕様書のgit
    https://github.com/AOMediaCodec/av1-spec/releases/tag/v1.0.0

    ついに1.0.0タグが打たれた。
    3月末の情報公開で1.0.0リリースって書いてるメディアが有ったけど見ての通り6月25日です。


    gitのコミットログをチラチラと見てたけど
    結構マルチスレッド処理の実装が入ってて、実際に使ってみると割とCPUが回るようになっている。
    Ryzenが欲しくなった。

    あと深層学習を使ったよみたいなのも有って期待が高まる。気がする。

    SIMD系の実装追加はx86系はあまりなくてARM(Neon)がチラホラ。
    ARMでどうにかなるようなシロモノじゃない気もするのだがどうなんだろう?


    一番重要なのは、今後「エンコードした奴がバージョン違いでデコード出来ねぇ!」が無くなるであろうところ。
    ハードウェアも作れるだろうし普及するといいな?

    ひとまずはエンコードを色々試してみたい。
  • Razer Orbweaver 3代目

    2018年06月23日 12時58分
    先日2代目が壊れて3代目に突入した。

    毎回どのくらいで壊れているのかの記録と
    次回壊れた時にパーツ取りするための記録としてメモっておこうと思う。


    • 初代
      • 無印
      • 2013年2月23日購入
      • サムパッドが効かなくなった
    • 2代目
      • Chroma
      • 2016年3月29日購入
      • 15キー(一番よく押していたキー)が効かなくなった


    2年間結構酷使しているから壊れるのは別に仕方無いと思うのだけど
    Chromaは6000万回の打鍵に耐えるキースイッチとか書いてあるので
    いくらなんでも6000万回は押してないよなあと微妙な気持ちになった。

    キーが効かないくらい直せないだろうかと思ってキースイッチ分解してみたけど、
    接点になっている金具が変形してしまっていて、正しい形には戻せなくて無理だった。

    この金具すごい微妙なバランスで成り立ってる割には
    そんなに丈夫そうにも見えなくて6000万回も行けるのか?と思った。


    あと分解してみたらサムパッドが割と簡単に基盤から外せたので
    初代のサムパッドを2代目のサムパッドと交換したら動いた。
    予備機として置いておこうと思う。

    2代目の基盤は3代目が壊れた時にキースイッチを取れるような気がするので試してみたい。


    分解で思い出したのでついでに書いておくけど
    私は割とサムパッドを多用するせいで標準の滑り止めゴムだとやや不安定。
    なので裏にカーペットの滑り止めシールを貼っている。

    すごく安定するのでオススメ。滑って困っている人は試してみるといいよ。