YCoCg – MultimediaWiki

資料によって YCoCg だったり YCgCo だったりするようですが… RGB を劣化なしに YCC (輝度1チャンネル+色差2チャンネルのフォーマット全般を表わしているつもり)に変換でき、圧縮性能の向上が期待できるそうですね。

Ut Video Codec Suite に実装するかどうかという話になると、かなり面倒なことになりそうです。内部的には、シンボルは 8bit であることを前提とした作りになっているため、色差成分で 1bit ずつ増えてしまう YCoCg は扱えないのです。

どれくらい圧縮性能が向上するのかは気になるところではあるので、そこは計測してみようかと思っています。

ポインタが 64bit 化するわいろんなところで DWORD が DWORD_PTR になったり int が INT_PTR になったりするわデータサイズを表わすところで DWORD を使っていて扱いに悩むわで修正箇所が多くて大変です。えーいめんどくさいわー!

とりあえず「データサイズを表わすところで DWORD を使っている」ところはほっといて、コンパイルが通ったところで 64bit 版 WME を使ってデコードテストをしてみたら…意外や意外、あっさり動きました。もちろん C++ だけ(=アセンブラ化していない)なので遅いんですけどね。

エンコードテストはまだやってません。というか 64bit コーデックを使って AVI ファイルを出力するプログラムが手元にないんですよ(ご存知の方はご一報を)。まずは vctest の x64 版を作らなければならないようです。

機能追加
  • 共通: フレーム分割数を論理プロセッサ数と同じにするオプションを追加した。

Read the rest of this entry

とりあえず再生できない理由だけでもと思ってインストールしてちょっと調べてみました。これってよく見たら、別にコーデックの処理に問題があるのではなくて、単に QuickTime 用のプラグインが無いってだけの話のようですね。デバッガをアタッチしても msvfw32.dll をロードしている形跡もない(= VfWベースのコーデックを使わない)ようですし。なので再生できないのは UtVideo に限らなくて、Huffyuv でも Lagarith でも同様です。非圧縮あたりは再生できます。

じゃあプラグインを書くかという話になるわけですが、他にやりたいことがあるしなぁ…と。ていうか Windows 版の QuickTime SDK はどこにあるのですか Apple さん。(Mac 版の SDK らしきものは見つかる)

Windows 上のソフトウェアなんだから、VfW コーデックなり使うように書いてほしいもんです。

そういえば、1つバグフィックスを書き忘れていたことに気が付きました。

バグ修正
  • ULY0: 縦長の映像を扱うとクラッシュする可能性があった。

ULY0 以外では問題ありません。

その他
  • ダイナミックリンクからスタティックリンクに変更した。

Read the rest of this entry

機能追加
  • 共通: インターレース映像に対する特別な処理を追加した。

Read the rest of this entry

今やってます。あとちょっと…具体的に言うと、残りは ULY0<->RGB24/32 の実装だけ。

といいつつMH3のせいで進行が遅い(こら

バグ修正
  • ULY0: フレーム分割の方法が間違っていた。

Read the rest of this entry

機能追加
  • ULY0: エンコード時に YUY2 で入力できるようにした。とりあえず作っただけなので、YUY2 入力時のエンコードは遅い。
  • ULY0: デコード時に YUY2 で出力できるようにした。とりあえず作っただけなので、YUY2 出力時のデコードは遅い。

Read the rest of this entry