Qlip開発秘話

Qlip3.0を再起動するにあたり最も苦心しているのは、Mac版だけではなくWindows版も並行してリリースしていくことです。今のところはまだそんな問題には直面していませんが、近いうちにOS固有の課題に当たり、苦心することだろうと覚悟はしています。

その次に悩ましかったのは、カラーマネージメントをどのように実装するかの問題でした。Qlip3.0では、ビューアーに対して特別な処理を加えていません。以前の2.xでは、Mac版だけで良かったのでAPI任せにしていて、自動的にColorSyncの管理下に置かれていて、非常に楽ちんでした。実は、初期の頃はこのようにColorSyncに乗っかろうと安直に考えていました。しかし、実際に実装を進めていくうちに、自分には大きすぎる対象であることが見え始めてきました。そして、やってもやっても結果が出ず、至った自分の結論は「ビューアーのカラーマネージメントのゴールが見えない」でした。どのような状態にビューアーの色味をコントロールすれば正解なのかが、今の私の知識では見つかりませんでした。

そこで、完全にOSがコントロールしているシステムのカラーマネージメントの挙動に身を任せることしかできていません。MacBook ProのXDRディスプレイでは、システム設定のディスプレイにPresetがありますが、そこで選択している状態によりQlipのビューアーの色味は決まります。MacBook Neoでは、sRGBであろう?ColorLCDプロファイルに依存します。XDRディスプレイでの目視の確認では、sRGB、自作のBT.709、そしてデフォルトのDisplay P3それぞれで、一定の色の表示にはなっているようです。

Qlip3.0では、Mac/Winクロスプラットフォームなので、基本的にはSwift経由でmacOSのAPIが使えません。これがいろんなところで動画ビューアーというソフトウエアを構築する際の大きな荷物になっています。以前は、AVPlayerクラスをさくっと使っていたので、再生や早送り、描画、音声出力など、動画プレーヤーに必要な機能はAPIが細かく用意してくれていました。それがまったく使えないのです。これは、めちゃくちゃ大変なことで、着手してから気がつきました。Qlipが参考にしている大きな存在であるmpvは、独自にこの辺りを実装しているようです。現状では一定のレベルにはなんとか辿り着いてはいますが、まだまだ改善の余地は残っています。

一方で、独自路線の良さもありました。Qlipにはスコープ機能が搭載されていますが、これはファイルから読み込んだYUV/RGBデータを使って、独自の描画方法で波形を作っています。これはFFmpegのライブラリが大活躍しています。元々がLowレベルな描画をしているので、RGBデータの操作はその途中のところから分岐することで、波形の表示はできたわけです。可能性としては、ベクトルスコープやパレード表示などもできるはずです。ヒストグラムは、個人的に正確さが判別しにくいので、搭載の可能性は低いと考えています。

今後の予定について、現状で見えているところもお伝えします。これは、可能性は高いですが、障害によって実装が見送られる可能性もある点は、ご理解お願いします。

まず、WAVなどのオーディオファイルへの対応があります。FFmpegではこれらのフォーマットへの対応も可能なので、ユーザーとして考えても実装したい機能の一つです。「WAVなので他のアプリに切り替えないと」、と考えるのは制作者にとっては面倒なだけです。ただ、音声再生というのは、映像がないのでとても寂しいUIになってしまいます。その点もユーザーには納得していただけるであろうギミックを考えています。

今後の予定で、明らかに実装しないと決めている機能もあります。それは、ビデオI/Oを使ったSDI/HDMI出力です。DeckLinkを使ったこの機能は、当初予定していました。すでに別のアプリケーションでBMDのAPIを使った実績はあるので、なんとかなるであろうとは感じています。しかし、これはQlipには「やり過ぎ」な機能で分不相応だと考えています。もし必要なら、DaVinci Resolveという素晴らしいアプリがあるので、それを使いましょう。ビデオI/Oをきちんとやるには、カラーマネージメントが欠かせません。色がしっかりしていないビデオI/Oならやらない方がマシなのです。そんな理由で、この機能は予定していません。

まだ再起動したばかりのソフトウエアなので、この先どんな展開になるのかは、未知数です。プロの方々に満足していただけるような動画ビューアーを目指していきますので、よろしくお願いいたします。