ある問題を考えたことがある。オープンソースのデジタルカメラシステムは存在するのだろうか?
オープンソース撮影の画像処理ワークフローは存在するのか?オープンソース画像処理ソフトウェアにはGIMP、Krita、digiKam、darktableのようなものがある。しかしまずは上流の画像取得デバイスの問題を解決しなければならないだろう。
スマホよりはるかに大きい絞りを持つ一眼カメラやビデオカメラ、たとえばNikonやSonyが出しているものでは、その上で動くOSはどれもクローズドソースなのだろう。
底層ドライバーからソフトウェアまで開放されたデジタルカメラはあり得るのだろうか?単にRaspberry Piへカメラを付けたようなおもちゃではなく。
オープンソースソフトウェアを欠くカメラは、私に購入をためらわせる(実際には買う金もない:P)。
私がプロプライエタリソフトウェアを拒否するためにSwitchやPS5のような家庭用ゲーム機を買わないのと同じだ。彼らはBSDのオープンソース成果を奪った。Steamプラットフォームはぎりぎり受け入れられる。しかしPCでプロプライエタリなSteamゲームを遊ぶだけでも、私の内心は十分に苦しい。
Androidカメラの撮影技術でさえ、大部分はクローズドソースAPPのアルゴリズムに支配されているように見える。各スマホメーカーは自社純正カメラAPPを開発しており、私たちにそれらのクローズドソースAPPへ依存することを強いている。
たとえOpen CameraやFreeDCam、Photon Cameraのような機能豊富なオープンソースAPPがあっても、それらは各スマホのレンズハードウェア機能を完全にはサポートできない。たとえば30倍AIズームや、背後で写真を美化するアルゴリズムなどだ。
撮影後に後処理を行うアルゴリズムは、さらに各大メーカーの商業機密である。Sony、小米、Pixel、Samsungにはそれぞれ自社の味がある。Gcamを他のスマホへ移植できたとしても、その背後のアルゴリズムがどうなっているのかを理解することはできない。
したがって、OpenCameraで撮った写真の品質が純正カメラより一段低くなるとしても、それは純粋にイメージセンサーのハードウェア力を見る形になり、より多くの手動パラメータ介入が必要になる。あるいはRAW形式で保存し、その後digiKamで手動現像することになる。
とはいえ、Androidはカメラハードウェア機能へのアクセスに関して、少なくとも純Linuxより成熟しているだろう。AOSP公式ドキュメントを見れば、少なくともCamera2APIでISOを調整でき、Pixelには第三者APPが夜景モードを使える公式公開APIもある。
純GNU/Linux環境でIMXコンポーネントを駆動するとなるとさらに難しい。Linuxではlibcameraを使ってカメラを正常に動作させられるだけで天に感謝すべきであり、写真撮影という学問を研究している人はいない。
PinePhone向けにMegapixelsカメラAPPを書いている兄貴も、かなり無理をしてpipelineを一つ作っただけだ。
要するに、レンズハードウェアの素質が十分に強いAndroidスマホを買い、それをLineageOSへROM焼きして、Open Cameraを使う。私がSony Xperia 1 IIIに対してやったように。これが比較的受け入れられるオープンソース撮影方法である。底層ドライバーがクローズドソースなら、それはもうクローズドソースでいい。


