ちょっと AVX512 向けに intrinsic で最適化を試している(以前書いた話とは別)のですが、ふと出力されたバイナリの逆アセンブリを見てみたら zmm16 以降が使われていないことに気が付きました。

ちょっと試行錯誤したら理由はすぐ分かって、 /arch:AVX512 オプションを付けていなかったからでした。 VC++ は GCC などとは違ってこういったオプションを付けなくても intrinsic で SIMD 命令を使うことができてしまうのですが、オプションを付けてない場合は zmm16 以降を使わないバイナリを出力するようです。なんでそんな中途半端な状態になるのよ。

ローカルネットワーク内に複数の Debian/Ubuntu マシンがあって、それらのパッケージを更新する場合、ダウンロードするパッケージは重複することが多いため、なんとかしてダウンロードは1回だけにしてネットワークトラフィックを節約したいところです。最近は stay home な関係かネットワーク遅いし…

Read the rest of this entry

性能向上
  • ULxx, UQxx: エンコードを若干高速化した。

Read the rest of this entry

映像の色差を間引いて処理する際に、間引き方(サブサンプリング/ダウンサンプリング)や復元の仕方(スーパーサンプリング/アップサンプリング)はいろいろあるわけですが、手元でサクッと検証できるものについて調べてみました。手動で調べているので誤りがあるかもしれません。自動化すればよかったんですが、そう思った時点で作業はほとんど終わってたし…

Read the rest of this entry

AMV4 コーデックがデコードする時の出力提示フォーマットの挙動が面妖で困惑しています。

Read the rest of this entry

2017 年に Ryzen が発売されてから、もたついている Intel を尻目に AMD がイケイケです。

Ryzen のマイクロアーキテクチャである Zen シリーズのプロセッサでは、以下のような特徴があります。

Read the rest of this entry

その他
  • インストーラーに utv_logc.exe を含めないようにした。

Read the rest of this entry

GitHub の PR のブランチを、PR のマージボタンを押すのではなく、 GitHub 外でマージして push したらどういう結果になるか気になったのでやってみました。

Read the rest of this entry

BMI2 (Bit Manipulation Instructions 2) には PEXT/PDEP という命令があって、32/64 ビット値の中から指定したビット群を取ってきて下に詰めて取得する、という処理(とその逆)が1命令でできます。Intel だと Haswell 以降で使えます。

Read the rest of this entry

性能向上
  • ULxx, UQxx: 圧縮比が高い映像のエンコードとデコードを高速化した。

Read the rest of this entry