内部保持形式が 10bpc のバリアントを強化したので、ベンチマーククリップもそれに応じて作らなければいけません。今までの手順では ffmpeg で一旦サブサンプリングとビット深度を変換してから VirutalDub2 でフォーマットだけ変えることになっていましたが、これめんどくさくなってきたので全部 VirtualDub2 で b48r のマスターソースから直接変換することにしました。既存のものも再生成しています。

ちなみに必要なクリップのうち YUV422P16/YUV420P16 は、最近の VirtualDub2 では非圧縮 AVI ファイルとしては出力できない(エンコーダへの入力フォーマットとしては使える)ため、少し古いバージョン(build 43073 またはそれ以前)を使う必要があります。この動作の変更は意図したものだそうです。(build 44282 で非圧縮 AVI ファイルとして出力できるようにするオプションが追加されました)。

機能追加
  • 複数回計測して平均を取って表示する機能を追加した。(-m)
その他
  • -W オプションで、5秒待つのではなくエンターキーを待つようにした。
  • キャッシュのフラッシュを CLFLUSH(OPT) 命令で行うようにした。
  • 映像ファイルを開けなかった時には処理をすぐに終了するようにした。

Read the rest of this entry

最近(UtVideo のバージョンで言うと 21.0.0 以降)、またウイルス対策ソフトウェアに false positive されるようになっているようです。コンパイラを変えた (VS2015->VS2019) ので検出され方の癖が変わったかもしれません(以前にもあった気が…)

ひとまずメジャーどころ (Microsoft, Norton, McAfee, Avast/AVG) に false positive report は投げましたが、現状返事があるのは Microsoft と Norton だけです。

ふざけんなよ。

機能追加
  • UQY2: P210, P216 での入出力に対応した。
  • UQY0: P010, P016 での入出力に対応した。
性能向上
  • UQY2: YUV422P16 での入出力を高速化した。
  • UQY0: YUV420P16 での入出力を高速化した。

Read the rest of this entry

2020年02月にいただいた寄付は以下の1件です。ありがとうございました。

日付 お名前 金額
02/12 Alessandro Portale $100.00

なお、2020年01月には寄付はありませんでした。

機能追加
  • 内部保持形式が YUV420 10bit のコーデック (FourCC: UQY0) を追加した。
  • UQY2: YUV422P16 での入出力に対応した。
性能向上
  • UQY2: v210 へのデコードを若干高速化した。

Read the rest of this entry

ルートコミットを複数持つ git リポジトリを無理やり作ることができることは以前書きました。一方、GitHub には Network Graph としてリビジョン間のグラフを表示する機能があります。で、どう見えるか気になったので試してみました。

Read the rest of this entry

昔から書き溜めていた…というほどのことでもないのですが、AVX-512VBMI2 が使えるプロセッサ、具体的には Ice Lake 向けの UMxx の最適化ルーチンをテスト実装しました。なお、このコミットあるいはブランチがそのままリリースに入ることはありません。

Read the rest of this entry

気の迷いで x86 の CPUID の情報をダンプするツールを書きました。 https://github.com/umezawatakeshi/dump_cpuid

途中で力尽きた(ていうか飽きた)ので EAX = 02H, 10H~1AH は未実装、 0DH は中途半端です。

なんでこんなもん書いたのかというと、 Windows 10 for ARM で x86 なプログラムを実行したときに CPU がどのようにエミュレートされているかを知りたかったからなのですが、 Surface Pro X はまだ買ってません。

GCC なり Clang なり MSVC なりを使う場合、普通は最適化オプションとしては -O2 などとだけ指定します。実際にはこの -O2 はいろいろな最適化手法の集合を有効化するオプションなのですが、じゃあその集合を知りたくなったらどうしましょう、というのがこの記事のお話です。

Read the rest of this entry