Qlipのスコープ機能
メディアプレーヤーQlipはバージョン3.5を超えて、3.0から再起動した開発も、やっと落ち着いてきました。当初予定していた機能は一通り搭載したので、ここからは操作における一貫性に矛盾がないかの磨きをかける段階に移りつつあります。
搭載している機能に関しては、Webサイトに大半を掲載しているのと、基本的な操作は(Cmd,Ctrl)+/からのヘルプ画面に収めています。しかし、なぜこのような機能になっているのか?のような、開発者の思い入れについてはそこにすべてを示すことができません。そこで、今回のblogでは、開発者の「気持ち」を書いてみたいと思います。
まだその戦いは続いてはいるのですが、スコープ機能はとても苦戦しています。Qlip3.0を再起動しようと決めた理由の背景には、WFMという映像監視のための波形モニターアプリを作りたかったからなんです。名前もシンプルで映像系の方ならWFMと言えば波形モニターを理解してくれるでしょう。
仕様を検討している中で見えてきたのは、機能を詰め込んでいくに従って、以前開発していた動画ビューアーQlipと重なる面が多いことでした。これでいくと、WFMが完成しても、同じようなキャラのアプリが二つ生まれてしまうことになると感じて、その結果Qlipの開発を再開することにしたのです。
オーディオでは、ProPhaseなどのように、アプリで信号の状態を視認化できるものがあります。しかし、映像では私は思い当たりませんでした。もちろんDaVinci Resolveなどの重厚なアプリにはその機能はあります。しかし、波形を見るためだけにResolveを起動するのもなあ、と思っていたのです。また、ビデオレンジの確認もファイル単位で簡単にやりたい目的があったので、スコープはユーザーとしても必要でした。
スコープは、正確さが第一です。動画ファイルはいろいろなフォーマットがあるので、検証するにも対象が非常に幅広いのです。現在でも、すべてのフォーマットを検証できていないのが正直なところです。さらに、表示の際には、カラーバーのような幾何学的な映像では、データに含まれていない偽色に相当するゴミが出てしまいます。これを綺麗に取り除くのは至難のことのようです。現状でもまだ細かなゴミは残っています。
スコープでは、ノーマル再生を禁止しています。これは非力なコンピュータでもそれなりにQlipを使っていただきたいからです。パワフルな環境でなければ使えないのは残念な気持ちにさせてしまいます。
スコープを補う目的と合わせて、デバッグ面で必要だったので搭載した機能があります。カラーピッカー機能です。これまでは、MacならmacOSに付属するDigital Color Meterを多用していました。毎回感じていたのは、別アプリを起動するのが面倒なところです。いっそのこと、Qlipに搭載できればなあ、と。カラーピッカー機能を実装すると、Qlipの弱点が露見することになりました。Zキーを押し続けて、マウスポインターをビューアー内に置くと、そのピクセルのRGB値が表示されます。この時、表示部には、三つの行の値が出てきます。
Source・・・デコード後の内部バッファからの該当ピクセルを取得
Convert・・・バッファからBGRA変換したキャッシュ画像から取得
Display・・・表示直前のピクセルの値を取得
この違いは説明してもなかなか理解を深めにくいのですが、Sourceはファイル内の値ですのでYUVの場合もあります。そして、エンコードのビットデプスにより8bit以外のケースもあります。Convertは、ファイルから取り出した直後の状態をBGRA(RGBとアルファチャンネル)に変換した状態。Displayはアプリのビューアーに送る直前の状態です。本来なら、これら三つの値はバチっとドンピシャになるべきなのですが、ConvertとDisplayは微妙な誤差があります。これは途中での変換による整数への丸め込みの処理による誤差などが原因です。この誤差を見ると、ユーザーの方には不信感が湧き出てくるのではないかと開発者は心配して、ユーザー向けの機能にはしていない事情があります。この辺りをご理解いただけると、カラーピッカーとしては便利に使えますし、ファイル内の値も素の状態で見られるので、一定の役割は果たせるかと思います。


