Google が Android Lollipop を発表して以来、写真家たちは Google I/O でリストされた新機能を喜んでいます。実際、OS の新しいバージョンには、写真とビデオの取得の哲学を変える、完全に書き直された API (プログラミング インターフェイス) が搭載されています。 ただし、Camera2 API を最大限に活用できる端末はほとんどありません。私たちは理由を理解するよう努め、問題に関するお客様の端末の状況を把握するようお願いします。

7 月に、Vincent は新しい Camera2 API に関する詳細な分析を書きました。特徴はこちらにも記載されていますこれらの新機能を記録した大きな Lollipop ファイル。今日、多くの人が Android 5.0 Lollipop のアップデートを受け取り、手動でインストールしています。 Google、Motorola Moto XまたはMoto G、Samsung Galaxy S4、S5、Note 4の複数のNexus端末が存在します。しかし、新しくアップグレードしたデバイスでは、手動モードで写真を撮影できるアプリケーションが、互換性がないために撮影を拒否したり、単にインストールされなかったりすることに気付いた方もいるでしょう。

理由は何ですか?

Google が Camera2 API のハードルを非常に高く設定していることを認識する必要があります。 Android KitKat 4.4 までは、デジタル イメージング モジュールのプログラミング インターフェイスは基本ロジックに従っていました。例えて言えば、このサブシステムはオートフォーカス カメラのように動作します。ほとんどの場合、調整はホワイト バランスのプリセット、自動露出補正、指のフォーカスに限定されていました。残りのアクションは、一度に 1 枚の写真または別のモードでのビデオの録画を開始および停止することになります。当時のサードパーティの写真アプリは、画像のキャプチャ、処理、変換の内部プロセスをあまり制御せずに、ユーザーの手で仮想ボタンを押すようなものでした。最初の Android カメラ API は高レベルであると言えます。 

低レベルのインターフェイスにアプローチする Camera2 API を使用すると、アプリケーションは、単一の写真、バースト ショット、またはビデオを構成する各画像のキャプチャ、処理、記録を細かく制御できるようになります。その後、メーカーは、Camera2 API 用にカメラ モジュール ドライバーと抽象化レイヤーをほぼゼロから考え直し、書き直すという複雑な作業を任されることになりました。その一方で、既存のほぼすべてのサードパーティ アプリケーションとの互換性を理由に、歴史的な Camera API にも同じものを提供する必要がありました。 

Camera2 API は Lollipop 検証テストに合格する必要があり、Google アプリケーションにアクセスできる認定デバイスの販売と Android™ 名の商用利用が許可されます。したがって、Google のエンジニアは、Android の新しいバージョンを顧客に提供したいと考えているメーカーの作業を容易にする技術的ソリューションを提供する必要がありました。実際、単純な更新のためにメーカーの観点から既存のデバイスに Camera2 を実装する作業量は膨大であるだけでなく、イメージング ソリューション プロバイダー (チップ メーカー Image Signal Processor) が既存のデバイスにこの新しいタイプのアクセスを提供するという保証はありません。チップはすでに販売されています。このため、Android Camera2 API は多面的であり、3 層ソリューションとして動作します。 

Android プログラマ向けのドキュメントを読んでみましょう。開発者.android.comで入手可能

FULL : Camera2 のサポートが完了しました

  • フルセンサー解像度で 30 フレーム/秒 (最小 20 フレーム) で画像またはビデオをキャプチャします。
  • 撮影パラメータや処理を画像ごとに制御します。
  • 手動センサー制御: 露出時間、ISO ゲイン。
  • 画像処理制御: カラーレンダリング、コントラストとガンマカーブ、ノイズ処理。
  • サイズや位置を自由にトリミングできます。
  • 少なくとも 3 つのバッファ出力形式 (例: JPEG、YUV 4:2:0、NV21)
  • フォーマットと遅延に関してサポートされている内容の文書化されたリストに従って、出力フォーマットをリストし、バッファーに自動構成する機能。
  • 手動で選択された露光時間の定義された範囲と、ハードウェアが可能な最大値。

注意してください: RAW 写真のセンサーから読み取られた生の値と、それらを標準 DNG にパッケージ化するために必要なメタデータにアクセスする機能は、Camera2 の実装を完全なものとみなすために必要な機能の一部ではありません。

半分意外な例は、Nexus 9 タブレットです。Camera2 API が RAW キャプチャのサポートを発表しているためです。Dngクリエイター色空間変換行列などの必要なメタデータが欠落しているため、失敗します。

制限付き: Camera2 の部分的なサポート

このモードをアドバタイズするデバイスは、Camera2 API の実際の実装を利用しますが、FULL に必要なすべてがサポートされているわけではありません。作業が完了していないか、センサー、光学系、または画像プロセッサーの能力が十分ではないためです。

LEGACY: 歴史的なカメラ API のラッパー

これは、製造元によって更新された場合でも、Lollipop の公開前に設計および販売されたスマートフォンやタブレットで最も頻繁に見られるものです。これは追加機能を提供せず、Camera2 API 用に作成された新しいアプリケーションの動作のみを許可します。

端末と API の互換性をテストするための APK

Camera2 API と完全または部分的に互換性があるデバイスはどれですか?残念ながら、公式のリストはないため、ケースバイケースで確認する必要があります。そこでこの機会に作りました新しい API でデバイスがどのようなサポートを提供しているかを知らせるミニマリスト アプリ (Lollipop のみ)。遠慮せずにこのアドレスからアプリケーションをダウンロードしてくださいコメントで発見したことを共有してください。

大多数のメーカーが自社のデバイスを Camera 2 API のフルレベルと互換性を持たせることを期待できますが、その保証はありません。来たるモバイル ワールド コングレスでは、モバイル写真の観点から今年何が期待できるかを垣間見ることができるでしょう。私たちはアプリケーションを使ってモバイルをテストしてみます。 Camera2 API は非常に強力であるため、その完全なサポートがサードパーティ開発者による将来のイノベーションを大きく左右します。