以前書いた記事で intrinsic の欠点をいくつか述べていますが、このうちコンパイラが古いと最近の命令を使えない、という重大な点については、Visual C++ 2015 や Xcode 7 に移行することにより既に解決してしまいました。将来的にも、OSS開発 and/or 個人開発 であれば Visual C++ も無料で Pro 版相当の機能のものが使えるようになってしまいましたし(新しいコンパイラを追いかけるのに費用が掛からない)。

一部の命令が無い点については解決されうるものではなさそうですが、そういうところは相変わらずアセンブラで書いておけば良いかと思います。Ut Video Codec Suite 的に一番重要なハフマン符号処理がこれなのがちょっと残念ですが。

なんで今更こんなこと言っているかと言うと、いい加減「ほとんど同じかと思いきやちょっと違う2つのアセンブラソース (x86/x64) をメンテする」のはもういやだ、と思ったからです。思うのが遅いという話はあります。

Intel IPP (Integrated Performance Primitives) という、画像処理、信号処理、データ処理(圧縮・暗号化)において良くある処理を収録した Intel 製のライブラリがあります。Intel 製なので、Intel CPU に対して特に最適化されているはずです。(AMD CPU についてはどの程度かはよく分からない)。IPP はコミュニティサポートでいいのであれば最近はロイヤリティフリーで使えるため、IPP を UtVideo で使ってみようかと考えました。

Read the rest of this entry

機能追加
  • 内部保持形式が YUV444 8bit のコーデック (FourCC: ULY4, ULH4) を追加した。RGB 入出力の場合はあまり速くない。

Read the rest of this entry

Windows Defender が Ut Video Codec Suite のインストーラをマルウェア扱いしてブロックするようです。Microsoft Security Essentials はブロックしないようです。他のウイルス対策ソフトも反応しないようです(VirusTotal調べ)。

Read the rest of this entry

今のところ、ユニットテストは映像の内容そのものではなく、せいぜいフォーマットのネゴシエーションぐらいまでしか行っていないのですが、いい加減エンコード/デコードそのもののテストに取り掛からないといけないと感じています。

Read the rest of this entry

バグ修正
  • 「インターレース映像としてエンコード」オプションを有効にするとエンコーダがクラッシュしていた。
その他
  • Windows の QuickTime 版のコーデックを削除した。

Read the rest of this entry

AEオフ2016 で、「Ut Video Codec Suite のご紹介」として LT をやってきました。ご紹介というか宣伝というか。

発表資料はこちら (pptx)

ところで、発表時間が足りなくてスキップしたスライドの中に「可逆圧縮コーデックのシェアウェアに市場性はあるか」というページがあるんですが、2次会で周りに意見を聞いてみたところ、おおむね「ダメなんじゃね?」という反応でした。むーん。一家言ある方はコメントお願いします。

Ut Video Codec Suite の既存の問題や新機能の計画を GitHub の issue として公開するようにしました。

質問とかも GitHub の issue として書いても構いません(もちろん日本語だけで問題ありません)。また、これまで通り blog のコメントとして書いても構いません。

QuickTime for Windows が EOL になったこともあり Premiere Plugin 版のコーデックを作らないとなぁと思っています(いました)。

なのでプラグイン SDK のドキュメントを読んでいたのですが、どうもコーデックだけを書くことができないように見えます。ファイルを与えて映像や音声のストリームを取り出すもの(インポーター)や、映像や音声のストリームを与えてファイルを作るもの(エクスポーター)は作れるようですが、これらはコンテナフォーマットをプラグイン自身で扱うことになります。私はコンテナフォーマットに興味は無い…というか、もしこのようなプラグインを作ろうとしたらコンテナフォーマットを触るコードを1から書かないと行けなくなります。あり得ません。

ていうかホントにコンテナフォーマットを扱うプラグインと中身のストリームを扱うプラグインとで分離されてないの?それとも資料の解釈間違ってる?

HitFilm という編集ソフトで、Ut Video Codec Suite の映像をタイムラインに置くと、1フレームおきにしか表示されない(表示されないフレームは透明なものになる)という現象があります。結構前に指摘されていたのですが、今さっきようやく確認しました。他のコーデックでエンコードした映像、例えば MagicYUV や Lagarith の場合はこの症状は起きないようです。

とりあえず現状では、Ut Video Codec Suite の DMO インターフェース部分の実装が HitFilm と相性が悪いせいらしい、というところまでしか分かっていません。DMO インターフェースを提供する utv_dmo.dll を削除するとこの現象は起こらないため、DMO ではなく VCM でコーデックを使わせれば回避できそうなのですが、HitFilm にそういうオプションは存在しないようです。

ていうか AVI ファイルを読み込む際に VCM ではなく DMO を使おうとする編集ソフトは初めて見ました。(内部的には DirectShow を使ってるんでしょうか?)