THine Value ファームウェアコーディングレスで、ISPの性能を引き出す!カメラ開発キットのGUIツールを詳説
2018.11.29
- 記事
- コラム
イメージ・センサーを搭載する電子機器では、画像処理などを担当するイメージ・シグナル・プロセッサ(ISP)の使用が欠かせない。その際に課題になるのがISP用ファームウェアの開発だ。本連載の1回目では、ISP用ファームウェア開発の現状を紹介するとともに、その開発が抱える課題解決に向けたザインエレクトロニクスの取り組みを紹介した。当社が提供する「カメラ開発キット(CDK:Camera Development Kit)」を使えば、その課題を解決できる。連載の2回目となる今回は、カメラ開発キットの構成要素の1つであるGUIツール、「THine Tuning Tool」、通称「3T」について詳しく説明する。これを使えば、カメラや画像処理に関する知識さえあれば、組み込みファームウェア開発の経験がなくても、ISP用ファームウェアを開発できるようになる。
CDKのメリットは大きい
ザインエレクトロニクスが提供する「カメラ開発キット(CDK)」は、当社のISPチップ「THP7312」のファームウェア開発に向けたもの。フレーム・グラバーボードや、ISPチップを搭載したボード、イメージ・センサーを載せたヘッダー・ボードといったハードウエアに加えて、ファームウェアライブラリとソースコードからなる、ソフトウエア開発キット(SDK)、SDKをカスタマイズする為のGUIツール「THine Tuning Tools(3T)」で構成している(図1)。
つまり、ハードウエア、ソフトウエア開発キット、GUIツールという3つの構成要素を使って、ISP用ファームウェアを開発する。開発担当によると、「ソフトウエア開発キットを提供するISPチップ・ベンダーはあっても、それにハードウエアとGUIツールを加えた3点セットを提供するベンダーはこれまでなかった(*)」という。(*開発着手時点)
この3点セットの中でも、特にユーザー・メリットが大きいのがGUIツールだ。GUIツールをインストールしたパソコン上で、数値を入力したり、プルダウン・メニューの中から項目を選択したりするだけで、ファームウェアを自動的に生成できるからだ。ファームウェアの開発費を大幅に低減できると同時に、開発期間を短縮できる。しかも、カメラ(光学系)や画像処理に関する知識さえあれば、組み込みファームウェアの専門のエンジニアを用意する必要はない。
メリットはほかにもある。ファームウェアを手軽にしかも短時間で生成できるため、画質に関する実験/テストを繰り返し実行したり、性能の異なるカメラ・モジュールを試したり、光学レンズを取り替えたり、赤外線(IR)カット・フィルターの効果を確認したりといったカメラ開発の本質的な作業に開発時間を充てることができるようになる。
つまり、ハードウエア、ソフトウエア開発キット、GUIツールという3つの構成要素を使って、ISP用ファームウェアを開発する。開発担当によると、「ソフトウエア開発キットを提供するISPチップ・ベンダーはあっても、それにハードウエアとGUIツールを加えた3点セットを提供するベンダーはこれまでなかった(*)」という。(*開発着手時点)
この3点セットの中でも、特にユーザー・メリットが大きいのがGUIツールだ。GUIツールをインストールしたパソコン上で、数値を入力したり、プルダウン・メニューの中から項目を選択したりするだけで、ファームウェアを自動的に生成できるからだ。ファームウェアの開発費を大幅に低減できると同時に、開発期間を短縮できる。しかも、カメラ(光学系)や画像処理に関する知識さえあれば、組み込みファームウェアの専門のエンジニアを用意する必要はない。
メリットはほかにもある。ファームウェアを手軽にしかも短時間で生成できるため、画質に関する実験/テストを繰り返し実行したり、性能の異なるカメラ・モジュールを試したり、光学レンズを取り替えたり、赤外線(IR)カット・フィルターの効果を確認したりといったカメラ開発の本質的な作業に開発時間を充てることができるようになる。
10個のコンフィギュレータを用意
それでは、GUIツール「3T」について詳しく見ていこう(図2)。
このGUIツールの最大の役割は、画質の最適化である。連載の第1回目でも言及した通り、イメージ・センサーで撮影した画像データは、そのままでは不完全だ。このため、その画像データにさまざまな処理を施す必要がある。それを実現するのがコンフィギュレータである。従来は、ISP用ファームウェアのプログラム・コードを直接記述しなければならなかったが、GUIツールを使えばパソコン上の簡単な操作だけでISP用ファームウェアを自動生成できる。
コンフィギュレータは10個用意した。それらを一つ一つ簡単に見ていこう。
1個目は、「AE: Register Configurator」である。このコンフィギュレータは、自動露光(オート・エクスポージャ)の調整を担当するもの。明るめの画像にするか、暗めの画像にするかやフリッカー対策等の基本パラメータを設定できる。
2個目は、「AE: Threshold Configurator」である(図3)。 このコンフィギュレータも自動露光に関するものだ。ハンチング対策等の為にAEの追従性等を設定できる。
3個目は、「AE: Window Configurator」である。これも自動露光に関するものだ。5種類の測光枠を組み合わせてAEを実行できる(図4)。 具体的には、一枚の画像を8×6の領域に区切りって重み付けを設定したり、任意の領域で測光したりできる。例えば、ポートレートのような画像であれば、中央部の明るさを重視するといった設定が可能になる。
4個目は、「AE: Diagram Configurator」である。これはゲインとシャッター・スピード(実際には逆数の露光時間)を被写体の明るさに対して線図(ダイヤグラム)で設定するものだ。ゲインと露光時間はトレードオフの関係にある。露光時間を短くすれば手振れに強くなるが、ゲインを高くする必要があるのでノイズが大きくなる。一方で、ノイズを抑える為に露光時間を長くすれば、動きに弱くなる。従って、用途によっては、1つのダイヤグラムだけを選ぶのは難しい。そこで、このコンフィギュレータでは3つのモードを登録できる仕組みを用意した。ノイズを抑えた画質優先モードや、高速な被写体を撮影するブレ防止モードなどを登録できる。
5個目は、「AWB/IQ: Register Configurator」である。ノイズ・リダクションやシャープネスに関する設定を担当する。ノイズ・リダクションについては、ISPチップにハードウエアのフィルタを用意しており、自動設定や手動設定が選択できる。シャープネスでは、撮影した画像の輪郭の強調度を設定する。ポートレートは、輪郭をくっきりさせないが、文字が多い画像ではクッキリさせるといった設定が可能になる。このほか、ホワイトバランス、Tone Map、OB(オプティカル・ブラック)、欠陥補正などの調整も実行できる。
コンフィギュレータは10個用意した。それらを一つ一つ簡単に見ていこう。
1個目は、「AE: Register Configurator」である。このコンフィギュレータは、自動露光(オート・エクスポージャ)の調整を担当するもの。明るめの画像にするか、暗めの画像にするかやフリッカー対策等の基本パラメータを設定できる。
2個目は、「AE: Threshold Configurator」である(図3)。 このコンフィギュレータも自動露光に関するものだ。ハンチング対策等の為にAEの追従性等を設定できる。
3個目は、「AE: Window Configurator」である。これも自動露光に関するものだ。5種類の測光枠を組み合わせてAEを実行できる(図4)。 具体的には、一枚の画像を8×6の領域に区切りって重み付けを設定したり、任意の領域で測光したりできる。例えば、ポートレートのような画像であれば、中央部の明るさを重視するといった設定が可能になる。
4個目は、「AE: Diagram Configurator」である。これはゲインとシャッター・スピード(実際には逆数の露光時間)を被写体の明るさに対して線図(ダイヤグラム)で設定するものだ。ゲインと露光時間はトレードオフの関係にある。露光時間を短くすれば手振れに強くなるが、ゲインを高くする必要があるのでノイズが大きくなる。一方で、ノイズを抑える為に露光時間を長くすれば、動きに弱くなる。従って、用途によっては、1つのダイヤグラムだけを選ぶのは難しい。そこで、このコンフィギュレータでは3つのモードを登録できる仕組みを用意した。ノイズを抑えた画質優先モードや、高速な被写体を撮影するブレ防止モードなどを登録できる。
5個目は、「AWB/IQ: Register Configurator」である。ノイズ・リダクションやシャープネスに関する設定を担当する。ノイズ・リダクションについては、ISPチップにハードウエアのフィルタを用意しており、自動設定や手動設定が選択できる。シャープネスでは、撮影した画像の輪郭の強調度を設定する。ポートレートは、輪郭をくっきりさせないが、文字が多い画像ではクッキリさせるといった設定が可能になる。このほか、ホワイトバランス、Tone Map、OB(オプティカル・ブラック)、欠陥補正などの調整も実行できる。
細かな色調整が可能に
6個目は、「AWB/IQ: AWB Configurator」である。3つの光源下でEVB(Evaluation Board)を使って均一面(18%グレーなど)のRAW画像を撮影し、ホワイトバランスのパラメータを自動調整する。
7個目は、「AWB/IQ: Color Configurator」である。これは文字通り、カラー(色)に関するコンフィギュレータだ。3つの光源毎のカラーマトリクスや、彩度と色相毎に微調整を設定できる(図5)。 特徴は、「6軸で設定できるため、細かく調整できる点にある」(ザインエレクトロニクス)という。カメラの目的に応じた画作りに利用できる。
8個目は、「AWB/IQ: Shading Configurator」である。一般に光学レンズ+イメージ・センサーでは、中央から縁に行けば行くほど、受光しづらくなる特徴がある。そのため何も補正しなければ、中央部は明るく、外へ行けば行くほど暗くなってしまう。そこでレンズ・シェーディングコンフィグレータでは、AWBコンフィグレータに入力した3光源下の均一面RAWデータを入力するだけで、使用する光学レンズに合わせたシェーディングパラメータを自動生成する。どの程度、明るくするかはユーザーが設定できる。
9個目は、「AWB/IQ: Tone map Configurator」である。一般的にガンマ補正と呼ばれる調整を担当するコンフィギュレータだ。画像の階調に対する出力特性を指定する。複数のガンマカーブを設定し使い分けることができる。ユーザーが好む「画像の味付け」を実現できる。
10個目は、「AWB/IQ: Gain Based Parameter Configurator」である。このコンフィギュレータは、設定したゲインの値に応じて、NR(ノイズ・リダクション)、シャープネスのほか、彩度や色相の強調度を調整するものだ。例えば、ゲインが高いためにノイズの多い暗い撮影条件では、NR強度を高く設定することでノイズを抑え、一方低ゲインのときはNR強度を低く設定し、解像感を保つことができる
7個目は、「AWB/IQ: Color Configurator」である。これは文字通り、カラー(色)に関するコンフィギュレータだ。3つの光源毎のカラーマトリクスや、彩度と色相毎に微調整を設定できる(図5)。 特徴は、「6軸で設定できるため、細かく調整できる点にある」(ザインエレクトロニクス)という。カメラの目的に応じた画作りに利用できる。
8個目は、「AWB/IQ: Shading Configurator」である。一般に光学レンズ+イメージ・センサーでは、中央から縁に行けば行くほど、受光しづらくなる特徴がある。そのため何も補正しなければ、中央部は明るく、外へ行けば行くほど暗くなってしまう。そこでレンズ・シェーディングコンフィグレータでは、AWBコンフィグレータに入力した3光源下の均一面RAWデータを入力するだけで、使用する光学レンズに合わせたシェーディングパラメータを自動生成する。どの程度、明るくするかはユーザーが設定できる。
9個目は、「AWB/IQ: Tone map Configurator」である。一般的にガンマ補正と呼ばれる調整を担当するコンフィギュレータだ。画像の階調に対する出力特性を指定する。複数のガンマカーブを設定し使い分けることができる。ユーザーが好む「画像の味付け」を実現できる。
10個目は、「AWB/IQ: Gain Based Parameter Configurator」である。このコンフィギュレータは、設定したゲインの値に応じて、NR(ノイズ・リダクション)、シャープネスのほか、彩度や色相の強調度を調整するものだ。例えば、ゲインが高いためにノイズの多い暗い撮影条件では、NR強度を高く設定することでノイズを抑え、一方低ゲインのときはNR強度を低く設定し、解像感を保つことができる
コンフィギュレータの活用方法
10個のコンフィギュレータを使えば、どのような設定が可能になるのか。アプリケーションが異なる2つのケースを例に挙げよう。
1つは、産業用マシンビジョンでの例である。制御ボードに搭載した左上と右下のLSIの実装状態をテストするケースを考える。2つのLSIの材質が異なる場合、どちらかに露出を合わせるともう一方が黒つぶれしたり白飛びしたりする。そこで3個目に紹介したコンフィギュレータである「AEウィンドウ・コンフィギュレータ」を使う。最初に左上のLSI実装部に露出を合わせ撮影し、次に右下のLSI実装部に露出を合わせ、撮影する。こうすることで必要な部分が鮮明な画像を取得できるようになり、誤りのないテストを実行できるようになる。
もう1つは、デジタル鏡台や美容カメラでの例である。顔写真では、肌の色味は国ごとで好みが異なる。そこで7個目に紹介した「カラー・コンフィギュレータ」を使って、好みの色味が出るように設定するわけだ。こうして「画作り」することで、デジタル・カメラの商品価値を高めることが可能になる。
1つは、産業用マシンビジョンでの例である。制御ボードに搭載した左上と右下のLSIの実装状態をテストするケースを考える。2つのLSIの材質が異なる場合、どちらかに露出を合わせるともう一方が黒つぶれしたり白飛びしたりする。そこで3個目に紹介したコンフィギュレータである「AEウィンドウ・コンフィギュレータ」を使う。最初に左上のLSI実装部に露出を合わせ撮影し、次に右下のLSI実装部に露出を合わせ、撮影する。こうすることで必要な部分が鮮明な画像を取得できるようになり、誤りのないテストを実行できるようになる。
もう1つは、デジタル鏡台や美容カメラでの例である。顔写真では、肌の色味は国ごとで好みが異なる。そこで7個目に紹介した「カラー・コンフィギュレータ」を使って、好みの色味が出るように設定するわけだ。こうして「画作り」することで、デジタル・カメラの商品価値を高めることが可能になる。
I/O設定など便利な機能も用意
GUIツールには、10個の画質調整用コンフィギュレータのほか、便利な機能としてI/Oコンフィギュレータとドライビング・モード・コンフィギュレータを用意した。
I/Oコンフィギュレータは、ISPチップの入出力信号設定に関するものだ(図6)。 ISPチップには入力I/Fが2種類あり、MIPI CSI-2信号もしくはパラレル信号の入力が可である。一方、出力I/Fは3種類あり、MIPI CSI-2信号、8ビットのパラレル信号、16ビットのパラレル信号に対応する。従って、前段と後段のデバイスに合わせて選択した信号形式通りに入力/出力端子の機能を設定する必要がある。今回用意したI/Oコンフィギュレータを使えば、パソコン画面上で簡単で設定できる。
ドライビング・モード・コンフィギュレータは、イメージ・センサーの画像サイズやフレーム・レートに合わせてISPチップ内部のクロック周波数やI/Fのビットレートなどを自動設定する機能である。「THP7312」は最大1600万画素(16M画素)まで対応可能である。フレーム・レートは画素サイズごとに最大30フレーム/秒(4K2K)や、120フレーム/秒(1080p)、240フレーム/秒(720p)などに対応する。画素サイズとフレーム・レートを選択すれば、自動的にISPチップ内部のクロック周波数が設定される。さらに複数のドライビング・モードを登録する機能も用意した。「4K2K、30fpsモード」や「フルHD、60fpsモード」などを登録できる。
今回は、GUIツール、3T, THine Tuning Toolに搭載したコンフィギュレータについて詳しく説明した。いずれのコンフィギュレータも、イメージ・センサーを搭載するマシンビジョンや監視カメラ、デジタル・カメラなどのアプリケーションにおいて大きな効果を発揮するはずだ。ただし、GUIツール「3T」が対象とするアプリケーションはそれだけではない。すでに、「XR対応機器」に向けた機能を実装済みだ。次回(3回目)では、その機能について詳しく説明するとともに、カメラ開発キットの次世代戦略を紹介する。
(つづく)
I/Oコンフィギュレータは、ISPチップの入出力信号設定に関するものだ(図6)。 ISPチップには入力I/Fが2種類あり、MIPI CSI-2信号もしくはパラレル信号の入力が可である。一方、出力I/Fは3種類あり、MIPI CSI-2信号、8ビットのパラレル信号、16ビットのパラレル信号に対応する。従って、前段と後段のデバイスに合わせて選択した信号形式通りに入力/出力端子の機能を設定する必要がある。今回用意したI/Oコンフィギュレータを使えば、パソコン画面上で簡単で設定できる。
ドライビング・モード・コンフィギュレータは、イメージ・センサーの画像サイズやフレーム・レートに合わせてISPチップ内部のクロック周波数やI/Fのビットレートなどを自動設定する機能である。「THP7312」は最大1600万画素(16M画素)まで対応可能である。フレーム・レートは画素サイズごとに最大30フレーム/秒(4K2K)や、120フレーム/秒(1080p)、240フレーム/秒(720p)などに対応する。画素サイズとフレーム・レートを選択すれば、自動的にISPチップ内部のクロック周波数が設定される。さらに複数のドライビング・モードを登録する機能も用意した。「4K2K、30fpsモード」や「フルHD、60fpsモード」などを登録できる。
今回は、GUIツール、3T, THine Tuning Toolに搭載したコンフィギュレータについて詳しく説明した。いずれのコンフィギュレータも、イメージ・センサーを搭載するマシンビジョンや監視カメラ、デジタル・カメラなどのアプリケーションにおいて大きな効果を発揮するはずだ。ただし、GUIツール「3T」が対象とするアプリケーションはそれだけではない。すでに、「XR対応機器」に向けた機能を実装済みだ。次回(3回目)では、その機能について詳しく説明するとともに、カメラ開発キットの次世代戦略を紹介する。
(つづく)