(57)【要約】【課題】画像メモリに格納されるＲＡＷデータを読み込んで、ＲＧＢデータへの変換を高速に行う。【解決手段】ＲＡＷデータの画素ごとに、その画素が変換対象の色成分の画素値をもっているか、他の色の色成分の画素値をもっているかの判断と、その結果にもとづいて変換対象の色成分の画素値の計算方法を変えることなく、フレーム内の全ての画素に対して一律にマスク処理とコンボリューション処理を施す。マスク処理は、変換対象の色の画素については画素値をそのまま出力し、対象画素以外の画素の画素値を０にして出力する処理である。コンボリューション処理は、マスク処理の出力に対して、所定の画像領域内の画素に係数行列で規定される重み付け係数による加重平均を算出する。ＲＡＷデータのフレーム内の全ての画素に対して、ＲＧＢのそれぞれについて、マスク処理とコンボリューション処理を施す。【選択図】図１
2014123814.tif 000002
【特許請求の範囲】
【請求項１】
赤成分の画素値のみを持つＲ画素と緑成分の画素値のみを持つＧ画素と青成分の画素値のみを持つＢ画素とがフレーム内の行方向と列方向の２次元に周期的に配列されたＲＡＷ画像データから、前記フレーム内の全ての画素のそれぞれについて、赤成分と緑成分と青成分の全ての画素値を算出可能な画像処理装置であって、
前記ＲＡＷ画像データの前記フレーム内の全ての画素に対して、算出対象とする色成分の画素の画素値はそのまま出力し、算出対象とする色成分以外の色成分の画素の画素値を０にして出力するマスク処理と、
前記マスク処理の出力に対して実行され、所定の画像領域内の画素に、係数行列で規定される重み付け係数による加重平均を算出し、前記画像領域の中心画素の画素値として出力する、コンボリューション処理とを実行可能に構成され、
前記係数行列は、前記中心画素が前記マスク処理により画素値を０にされた画素であるか否かに関わらず、前記コンボリューション処理において全ての画素に対して一律に適用され、前記マスク処理により画素値を０にされる画素の配置パターンによらず、前記マスク処理により画素値を０にされない画素に対する重み付け係数の合計が一定値となる、重み付け係数によって構成され、
前記ＲＡＷ画像データの前記フレーム内の全ての画素に対して、前記Ｇ画素を算出対象として前記マスク処理を施すことにより、Ｇ画素以外の画素の画素値を０にする第１マスク処理と、前記第１マスク処理の出力に前記コンボリューション処理を施すことにより、前記フレーム内の全ての画素のそれぞれについて、緑成分の画素値を算出する第１コンボリューション処理と、
前記ＲＡＷ画像データの前記フレーム内の全ての画素に対して、前記Ｒ画素を算出対象として前記マスク処理を施すことにより、Ｒ画素以外の画素の画素値を０にする第２マスク処理と、前記第２マスク処理の出力に前記コンボリューション処理を施すことにより、前記フレーム内の全ての画素のそれぞれについて、赤成分の画素値を算出する第２コンボリューション処理と、
前記ＲＡＷ画像データの前記フレーム内の全ての画素に対して、前記Ｂ画素を算出対象として前記マスク処理を施すことにより、Ｂ画素以外の画素の画素値を０にする第３マスク処理と、前記第３マスク処理の出力に前記コンボリューション処理を施すことにより、前記フレーム内の全ての画素のそれぞれについて、青成分の画素値を算出する第３コンボリューション処理とを実行可能に構成される、画像処理装置。
【請求項２】
請求項１において、前記画像処理装置は、前記コンボリューション処理の出力に対するシフトダウン処理をさらに含み、
前記シフトダウン処理は、前記コンボリューション処理における、前記マスク処理により画素値を０にされない画素に対する重み付け係数の前記合計をシフトダウン係数とし、前記シフトダウン係数の逆数を、前記加重平均の結果に乗ずる処理である、画像処理装置。
【請求項３】
請求項２において、前記画像領域は３画素×３画素の領域であり、前記第１コンボリューション処理の重み付け係数を第１重み付け係数行列としシフトダウン係数を第１シフトダウン係数とし、前記第２コンボリューション処理の重み付け係数を第２重み付け係数行列としシフトダウン係数を第２シフトダウン係数とし、前記第３コンボリューション処理の重み付け係数を第３重み付け係数行列としシフトダウン係数を第３シフトダウン係数とし、
前記第１重み付け係数行列は、前記中心画素に対して４であり、前記中心画素に対して上下と左右に隣接する周辺画素に対して１であり、前記中心画素に対して斜め方向で隣接する周辺画素に対して０である３×３の行列であり、前記第１シフトダウン係数は４であり、
前記第２重み付け係数行列と前記第３重み付け係数行列のそれぞれは、前記中心画素に対して４であり、前記中心画素に対して上下と左右に隣接する周辺画素に対して２であり、前記中心画素に対して斜め方向で隣接する周辺画素に対して１である３×３の行列であり、前記第２シフトダウン係数と第３シフトダウン係数はそれぞれ４である、画像処理装置。
【請求項４】
請求項１において、前記画像処理装置は、前記ＲＡＷ画像データを格納可能な画像メモリと、前記ＲＡＷ画像データの行方向のデータを格納可能な複数のラインメモリを含む、画像処理回路を備え、
前記画像処理回路は、前記画像メモリから前記ＲＡＷ画像データを行方向で行毎に走査し１画素ごとに順次読み込み、前記第１マスク処理と前記第２マスク処理と前記第３マスク処理のうち少なくとも１つのマスク処理を実行可能であり、実行した前記マスク処理の結果に対して、前記第１コンボリューション処理と前記第２コンボリューション処理と前記第３コンボリューション処理のうち、対応するコンボリューション処理を実行可能に構成される、画像処理装置。
【請求項５】
請求項２において、前記画像処理装置は、前記シフトダウン処理の出力に対する正規化処理をさらに含む、画像処理装置。
【請求項６】
請求項２において、前記画像処理装置は、前記シフトダウン処理の出力に対するホワイトバランス処理をさらに含む、画像処理装置。
【請求項７】
赤成分の画素値のみを持つＲ画素と緑成分の画素値のみを持つＧ画素と青成分の画素値のみを持つＢ画素とがフレーム内の行方向と列方向の２次元に周期的に配列されたＲＡＷ画像データから、前記フレーム内の全ての画素のそれぞれについて、赤成分と緑成分と青成分の全ての画素値を算出可能な画像処理方法であって、
前記ＲＡＷ画像データの前記フレーム内の全ての画素に対して、算出対象とする色成分の画素の画素値はそのまま出力し、算出対象とする色成分以外の色成分の画素の画素値を０にして出力するマスク処理と、
前記マスク処理の出力に対して実行され、所定の画像領域内の画素に、係数行列で規定される重み付け係数による加重平均を算出し、前記画像領域の中心画素の画素値として出力する、コンボリューション処理とを含み、
前記係数行列は、前記中心画素が前記マスク処理により画素値を０にされた画素であるか否かに関わらず、前記コンボリューション処理において全ての画素に対して一律に適用され、前記マスク処理により画素値を０にされる画素の配置パターンによらず、前記マスク処理により画素値を０にされない画素に対する重み付け係数の合計が一定値となる、重み付け係数であり、
前記ＲＡＷ画像データの前記フレーム内の全ての画素に対して、前記Ｇ画素を算出対象として前記マスク処理を施すことにより、Ｇ画素以外の画素の画素値を０にする第１マスク処理と、前記第１マスク処理の出力に前記コンボリューション処理を施すことにより、前記フレーム内の全ての画素のそれぞれについて、緑成分の画素値を算出する第１コンボリューション処理と、
前記ＲＡＷ画像データの前記フレーム内の全ての画素に対して、前記Ｒ画素を算出対象として前記マスク処理を施すことにより、Ｒ画素以外の画素の画素値を０にする第２マスク処理と、前記第２マスク処理の出力に前記コンボリューション処理を施すことにより、前記フレーム内の全ての画素のそれぞれについて、赤成分の画素値を算出する第２コンボリューション処理と、
前記ＲＡＷ画像データの前記フレーム内の全ての画素に対して、前記Ｂ画素を算出対象として前記マスク処理を施すことにより、Ｂ画素以外の画素の画素値を０にする第３マスク処理と、前記第３マスク処理の出力に前記コンボリューション処理を施すことにより、前記フレーム内の全ての画素のそれぞれについて、青成分の画素値を算出する第３コンボリューション処理とを含む、画像処理方法。
【請求項８】
請求項７において、前記画像処理方法は、前記コンボリューション処理の出力に対するシフトダウン処理をさらに含み、
前記シフトダウン処理は、前記コンボリューション処理における、前記マスク処理により画素値を０にされない画素に対する重み付け係数の前記合計をシフトダウン係数とし、前記シフトダウン係数の逆数を、前記加重平均の結果に乗ずる処理である、画像処理方法。
【請求項９】
請求項８において、前記画像領域は３画素×３画素の領域であり、前記第１コンボリューション処理の重み付け係数を第１重み付け係数行列としシフトダウン係数を第１シフトダウン係数とし、前記第２コンボリューション処理の重み付け係数を第２重み付け係数行列としシフトダウン係数を第２シフトダウン係数とし、前記第３コンボリューション処理の重み付け係数を第３重み付け係数行列としシフトダウン係数を第３シフトダウン係数とし、
前記第１重み付け係数行列は、前記中心画素に対して４であり、前記中心画素に対して上下と左右に隣接する周辺画素に対して１であり、前記中心画素に対して斜め方向で隣接する周辺画素に対して０である３×３の行列であり、前記第１シフトダウン係数は４であり、
前記第２重み付け係数行列と前記第３重み付け係数行列のそれぞれは、前記中心画素に対して４であり、前記中心画素に対して上下と左右に隣接する周辺画素に対して２であり、前記中心画素に対して斜め方向で隣接する周辺画素に対して１である３×３の行列であり、前記第２シフトダウン係数と第３シフトダウン係数はそれぞれ４である、画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関し、特にＲＡＷデータからＲＧＢデータへの高速な変換処理に好適に利用できるものである。
【背景技術】
【０００２】
カメラの高画素化、高速化に伴い、ＲＡＷデータ対応カメラが多くなってきている。ＲＡＷデータとは、撮像素子のカラーフィルタの配置パターンをそのまま反映した、生（英語で「raw」）の画像データを指す。カメラに搭載される撮像素子は、フレームごとに２次元に配列された画素ごとの画素値を出力する。撮像素子の各画素にはカラーフィルタが設けられ、撮像素子の１画素からは、赤（Ｒ：red）、緑（Ｇ：green）、青（Ｂ：blue）の３原色のいずれか１色の画素値をＲＡＷデータとして出力する。ＲＡＷデータのフレームは、それぞれ、赤成分、緑成分、青成分のいずれかの画素値のみを持つ画素が、２行２列の４画素を単位として周期的に配列されている。これに対して、ＲＧＢデータは、フレーム内の全ての画素のそれぞれが、ＲＧＢの全ての色成分の画素値を持つ。ＲＧＢデータは１画素当たり３色の画素値を持つので、１画素当たり１色の画素値しか持たないＲＡＷデータの３倍のデータ量となる。カメラの出力信号をＲＡＷデータとすることにより、出力するデータ量を抑えることができる。産業用カメラの規格の一つである、ＰｏＣＬ−Ｌｉｔｅ規格には、カメラの小型化のため、ＲＡＷデータの出力に特化した規格が規定されている。
【０００３】
カメラで撮影された画像をカラー処理するためには、ＲＡＷデータをＲＧＢデータに変換する必要がある。特に、動画の場合は、ＲＡＷデータからＲＧＢデータへの変換は、フレームレートで規定される周期（フレーム周期）以内に行う必要がある。
【０００４】
特許文献１には、ＲＡＷデータにもとづいてＲＧＢ３色の色情報を持つ画像データと１色のみの色情報を持つ画像データを生成し、それらに基づいて画像ファイルを生成する画像記憶装置が開示されている。
【０００５】
特許文献２には、ＲＡＷデータからエッジ情報を取得し、ＲＡＷデータと取得したエッジ情報とを用いて拡大のために補間する画素の階調値を導出する拡大画像生成手段が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−０７７７７３号公報
【特許文献２】特開２０１２−００４８０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１及び２について本発明者が検討した結果、以下のような新たな課題があることがわかった。
【０００８】
ＲＡＷデータをＲＧＢデータに変換するためには、画素ごとに、その画素が変換対象の色成分の画素値をもっているか、他の色の色成分の画素値をもっているかを判断し、その結果にもとづいて、変換対象の色成分の画素値の計算方法を変える必要がある。即ち、ＲＡＷデータにおいてある色成分のみを持つ画素については、その色成分の画素値はそのままＲＧＢデータのその色成分の画素値とし、他の色成分の画素値を周囲の画素の画素値から算出する。
【０００９】
これをハードウェアで実現するためには、上記判断と計算方法の変更のための回路手段を備える必要がある。一方、ソフトウェアで実現するためには、上記判断と計算方法の変更のため、不規則にＲＡＷ画像データを読み込む必要がある。例えば、ＲＡＷデータにおいてある色成分のみを持つ画素については、その色成分の画素値はそのままＲＧＢデータのその色成分の画素値として出力すれば良いので、新たなＲＡＷ画像データを読み込む必要はない。一方、その画素の他の色成分の画素値を算出するためには、周囲の画素の画素値を読み込む必要がある。ＲＡＷデータは、２次元に配列されているので、１ライン前と同じラインと１ライン後の合計３ラインのデータを必要とする場合が生じる。この場合、ＲＡＷデータの同じラインの画素値の順次アクセスをバーストリードなどによって高速化することができる。しかし、複数のラインから順にデータを読み込む必要があるため、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）に格納しておいたとしても、バースト長を超えるアクセスとなり、バーストリードによる高速化を図ることができない。その結果、フレーム周期以内の時間で変換を行うための障害となる。
【００１０】
このような課題を解決するための手段を以下に説明するが、その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
一実施の形態によれば、下記の通りである。
【００１２】
すなわち、一実施の形態に係る画像処理装置は、ＲＡＷ画像データのフレーム内の全ての画素に対して、変換対象色成分ごとにマスク処理とコンボリューション処理を実行することによって、フレーム内の全画素のそれぞれについて、赤成分と緑成分と青成分の全ての画素値を算出可能に構成される。マスク処理は、変換対象の色の画素については画素値をそのまま出力し、対象画素以外の画素の画素値を０にして出力する処理である。コンボリューション処理は、マスク処理の出力に対して、所定の画像領域内の画素に係数行列で規定される重み付け係数による加重平均を算出することにより、前記画像領域の中心画素の画素値として出力する処理である。前記係数行列は、中心画素がマスク処理により画素値を０にされた画素であるか否かに関わらず、全ての画素に対して一律に適用され、前記マスク処理により画素値を０にされる画素の配置パターンによらず、前記マスク処理により画素値を０にされない画素に対する重み付け係数の合計が一定値となるような、重み付け係数によって構成される。赤成分と緑成分と青成分のそれぞれについて、ＲＡＷ画像データのフレーム内の全ての画素に対して、その色成分を持つ画素を対象画素としてマスク処理を施し、その出力にコンボリューション処理を施すことにより、フレーム内の全ての画素のそれぞれについて、赤成分と緑成分と青成分のそれぞれの画素値を算出する。
【発明の効果】
【００１３】
前記一実施の形態によって得られる効果を簡単に説明すれば下記のとおりである。
【００１４】
すなわち、マスク処理とコンボリューション処理は、フレーム内の全ての画素に対して一律に適用できるため、ＲＡＷデータの画素ごとに、その画素が変換対象の色成分の画素値をもっているか、他の色の色成分の画素値をもっているかの判断と、その結果にもとづく変換対象の色成分の画素値の計算方法を変える必要がない。また、そのため、ＲＡＷデータを画像メモリに格納し、必要な画素データを読み込んで、変換対象の色成分の画素値の計算を行う場合であっても、画像メモリのアクセスは、不規則になることがなく、ＲＡＷデータからＲＧＢデータへの変換を高速化することができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、一実施の形態に係る画像処理装置の動作及び画像処理方法を表すフローチャートである。
【図２】図２は、画像処理装置の処理対象である１フレームのＲＡＷデータの一例を表す説明図である。
【図３】図３は、緑成分を対象とするマスク処理のマスクデータを表す説明図である。
【図４】図４は、緑成分を対象とするマスク処理の出力データを表す説明図である。
【図５】図５は、赤成分を対象とするマスク処理のマスクデータを表す説明図である。
【図６】図６は、赤成分を対象とするマスク処理の出力データを表す説明図である。
【図７】図７は、青成分を対象とするマスク処理のマスクデータを表す説明図である。
【図８】図８は、青成分を対象とするマスク処理の出力データを表す説明図である。
【図９】図９は、緑成分を対象とするコンボリューション処理の係数行列の一例を表す説明図である。
【図１０】図１０は、赤成分及び青成分を対象とするコンボリューション処理の係数行列の一例を表す説明図である。
【図１１】図１１は、画像処理装置の処理結果である１フレームのＲＧＢデータの一例を表す説明図である。
【図１２】図１２は、ＲＡＷデータにおける色成分の画素の配置について、全てのパターンを表す説明図である。
【図１３】図１３は、一実施の形態に係る画像処理装置の詳細な構成例を表すブロック図である。
【図１４】図１４は、一実施の形態に係る画像処理装置の詳細な動作及び画像処理方法を表すフローチャートである。
【図１５】図１５は、他の実施の形態に係る画像処理装置の動作及び画像処理方法を表すフローチャートである。
【図１６】図１６は、他の実施の形態に係る画像処理装置の動作及び画像処理方法を表すフローチャートである。
【発明を実施するための形態】
【００１６】
１．実施の形態の概要
先ず、本願において開示される代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１７】
〔１〕＜マスク処理＋コンボリューション処理＞
赤成分の画素値のみを持つＲ画素と緑成分の画素値のみを持つＧ画素と青成分の画素値のみを持つＢ画素とがフレーム内の行方向と列方向の２次元に周期的に配列されたＲＡＷ画像データ（７）から、前記フレーム内の全ての画素のそれぞれについて、赤成分と緑成分と青成分の全ての画素値を算出可能な画像処理装置（１）であって、以下のように構成される。
【００１８】
前記ＲＡＷ画像データの前記フレーム内の全ての画素に対して、算出対象とする色成分の画素の画素値はそのまま出力し、算出対象とする色成分以外の色成分の画素の画素値を０にして出力するマスク処理（２）を実行可能に構成される。さらに、前記マスク処理の出力に対して実行され、所定の画像領域内の画素に、係数行列（１１）で規定される重み付け係数による加重平均を算出し、前記画像領域の中心画素の画素値として出力する、コンボリューション処理（３）を実行可能に構成される。
【００１９】
前記係数行列は、前記中心画素が前記マスク処理により画素値を０にされた画素であるか否かに関わらず、前記コンボリューション処理において全ての画素に対して一律に適用され、前記マスク処理により画素値を０にされる画素の配置パターンによらず、前記マスク処理により画素値を０にされない画素に対する重み付け係数の合計が一定値となる、重み付け係数によって構成される。
【００２０】
前記画像処理装置は、前記ＲＡＷ画像データの前記フレーム内の全ての画素に対して、以下の処理を実行可能に構成される。
【００２１】
前記Ｇ画素を対象として前記マスク処理を施すことにより、Ｇ画素以外の画素の画素値を０にする第１マスク処理と、前記第１マスク処理の出力に前記コンボリューション処理を施すことにより、前記フレーム内の全ての画素のそれぞれについて、緑成分の画素値を算出する第１コンボリューション処理。
【００２２】
前記Ｒ画素を対象として前記マスク処理を施すことにより、Ｒ画素以外の画素の画素値を０にする第２マスク処理と、前記第２マスク処理の出力に前記コンボリューション処理を施すことにより、前記フレーム内の全ての画素のそれぞれについて、赤成分の画素値を算出する第２コンボリューション処理。
【００２３】
前記Ｂ画素を対象として前記マスク処理を施すことにより、Ｂ画素以外の画素の画素値を０にする第３マスク処理と、前記第３マスク処理の出力に前記コンボリューション処理を施すことにより、前記フレーム内の全ての画素のそれぞれについて、青成分の画素値を算出する第３コンボリューション処理。
【００２４】
これにより、マスク処理とコンボリューション処理は、フレーム内の全ての画素に対して一律に適用できるため、ＲＡＷデータの画素ごとに、その画素が変換対象の色成分の画素値をもっているか、他の色の色成分の画素値をもっているかの判断を行い、その結果にもとづいて変換対象の色成分の画素値の計算方法を変える必要がない。また、そのため、ＲＡＷデータを画像メモリに格納し、必要な画素データを読み込んで、変換対象の色成分の画素値の計算を行う場合であっても、画像メモリのアクセスは、不規則になることがなく、ＲＡＷデータからＲＧＢデータへの変換を高速化することができる。
【００２５】
〔２〕＜シフトダウン処理＞
項１において、前記画像処理装置は、前記コンボリューション処理の出力に対するシフトダウン処理（４）をさらに含む。前記シフトダウン処理は、前記コンボリューション処理における、前記マスク処理により画素値を０にされない画素に対する重み付け係数の前記合計をシフトダウン係数（１２）とし、前記シフトダウン係数の逆数を、前記加重平均の結果に乗ずる処理である。
【００２６】
これにより、係数行列の重み付け係数を整数とし、コンボリューション処理を整数演算によって実行することができ、ＲＡＷデータからＲＧＢデータへの変換を高速に実行することができる。
【００２７】
〔３〕＜３×３のコンボリューション処理＞
項２において、前記画像領域は３画素×３画素の領域であり、前記第１コンボリューション処理の重み付け係数を第１重み付け係数行列とし、シフトダウン係数を第１シフトダウン係数とする。前記第２コンボリューション処理の重み付け係数を第２重み付け係数行列とし、シフトダウン係数を第２シフトダウン係数とする。前記第３コンボリューション処理の重み付け係数を第３重み付け係数行列としシフトダウン係数を第３シフトダウン係数とする。
【００２８】
前記第１重み付け係数行列は、前記中心画素に対して４であり、前記中心画素に対して上下と左右に隣接する周辺画素に対して１であり、前記中心画素に対して斜め方向で隣接する周辺画素に対して０である３×３の行列であり、前記第１シフトダウン係数は４である。
【００２９】
前記第２重み付け係数行列と前記第３重み付け係数行列のそれぞれは、前記中心画素に対して４であり、前記中心画素に対して上下と左右に隣接する周辺画素に対して２であり、前記中心画素に対して斜め方向で隣接する周辺画素に対して１である３×３の行列であり、前記第２シフトダウン係数と第３シフトダウン係数はそれぞれ４である。
【００３０】
これにより、最も小さい画像領域を対象としたコンボリューション処理により、ＲＡＷデータからＲＧＢデータへの変換を高速に実行することができる。
【００３１】
〔４〕＜画像メモリ＋画像処理回路＞
項１において、前記画像処理装置は、前記ＲＡＷ画像データを格納可能な画像メモリ（２１）と、前記ＲＡＷ画像データの行方向のデータを格納可能な複数のラインメモリ（３３＿１、３３＿２）を含む、画像処理回路（２０）を備える。
【００３２】
前記画像処理回路は、前記画像メモリから前記ＲＡＷ画像データを行方向で行毎に走査し１画素ごとに順次読み込み、前記第１マスク処理と前記第２マスク処理と前記第３マスク処理のうち少なくとも１つのマスク処理を実行可能に構成される。さらに前記画像処理回路は、実行した前記マスク処理の結果に対して、前記第１コンボリューション処理と前記第２コンボリューション処理と前記第３コンボリューション処理のうち、対応するコンボリューション処理を実行可能に構成される。
【００３３】
これにより、画像メモリとして、ＳＤＲＡＭなどのバーストアクセスの機能を持つメモリを利用することができ、メモリアクセスを高速化して、ＲＡＷデータからＲＧＢデータへの変換を高速に実行することができる。
【００３４】
〔５〕＜正規化＞
項２、または項３において、前記画像処理装置は、前記シフトダウン処理の出力に対する正規化処理（５）をさらに含む。
【００３５】
これにより、出力されるＲＧＢデータ（８）は正規化され、後段の処理との接続を容易にすることができる。
【００３６】
〔６〕＜ホワイトバランス＞
項２、項３または項５において、前記画像処理装置は、前記シフトダウン処理の出力に対するホワイトバランス処理（６）をさらに含む。
【００３７】
これにより、ホワイトバランスを調整されたＲＧＢデータ（８）を出力することができる。
【００３８】
〔７〕＜マスク処理＋コンボリューション処理＞
赤成分の画素値のみを持つＲ画素と緑成分の画素値のみを持つＧ画素と青成分の画素値のみを持つＢ画素とがフレーム内の行方向と列方向の２次元に周期的に配列されたＲＡＷ画像データ（７）から、前記フレーム内の全ての画素のそれぞれについて、赤成分と緑成分と青成分の全ての画素値を算出可能な画像処理方法（１）であって、以下のように構成される。
【００３９】
前記ＲＡＷ画像データの前記フレーム内の全ての画素に対して、算出対象とする色成分の画素の画素値はそのまま出力し、算出対象とする色成分以外の色成分の画素の画素値を０にして出力するマスク処理（２）を含む。さらに、前記マスク処理の出力に対して実行され、所定の画像領域内の画素に、係数行列（１１）で規定される重み付け係数による加重平均を算出し、前記画像領域の中心画素の画素値として出力する、コンボリューション処理（３）を含む。
【００４０】
前記係数行列は、前記中心画素が前記マスク処理により画素値を０にされた画素であるか否かに関わらず、前記コンボリューション処理において全ての画素に対して一律に適用され、前記マスク処理により画素値を０にされる画素の配置パターンによらず、前記マスク処理により画素値を０にされない画素に対する重み付け係数の合計が一定値となる、重み付け係数によって構成される。
【００４１】
前記画像処理方法は、前記ＲＡＷ画像データの前記フレーム内の全ての画素に対して施される、以下の処理を含む。
【００４２】
前記Ｇ画素を対象として前記マスク処理を施すことにより、Ｇ画素以外の画素の画素値を０にする第１マスク処理と、前記第１マスク処理の出力に前記コンボリューション処理を施すことにより、前記フレーム内の全ての画素のそれぞれについて、緑成分の画素値を算出する第１コンボリューション処理。
【００４３】
前記Ｒ画素を対象として前記マスク処理を施すことにより、Ｒ画素以外の画素の画素値を０にする第２マスク処理と、前記第２マスク処理の出力に前記コンボリューション処理を施すことにより、前記フレーム内の全ての画素のそれぞれについて、赤成分の画素値を算出する第２コンボリューション処理。
【００４４】
前記Ｂ画素を対象として前記マスク処理を施すことにより、Ｂ画素以外の画素の画素値を０にする第３マスク処理と、前記第３マスク処理の出力に前記コンボリューション処理を施すことにより、前記フレーム内の全ての画素のそれぞれについて、青成分の画素値を算出する第３コンボリューション処理。
【００４５】
これにより、マスク処理とコンボリューション処理は、フレーム内の全ての画素に対して一律に適用できるため、ＲＡＷデータの画素ごとに、その画素が変換対象の色成分の画素値をもっているか、他の色の色成分の画素値をもっているかの判断を行い、その結果にもとづいて変換対象の色成分の画素値の計算方法を変える必要がない。また、そのため、ＲＡＷデータを画像メモリに格納し、必要な画素データを読み込んで、変換対象の色成分の画素値の計算を行う場合であっても、画像メモリのアクセスは、不規則になることがなく、ＲＡＷデータからＲＧＢデータへの変換を高速化することができる。
【００４６】
〔８〕＜シフトダウン処理＞
項７において、前記画像処理方法は、前記コンボリューション処理の出力に対するシフトダウン処理（４）をさらに含む。前記シフトダウン処理は、前記コンボリューション処理における、前記マスク処理により画素値を０にされない画素に対する重み付け係数の前記合計をシフトダウン係数（１２）とし、前記シフトダウン係数の逆数を、前記加重平均の結果に乗ずる処理である。
【００４７】
これにより、係数行列の重み付け係数を整数とし、コンボリューション処理を整数演算によって実行することができ、ＲＡＷデータからＲＧＢデータへの変換を高速に実行することができる。
【００４８】
〔９〕＜３×３のコンボリューション処理＞
項８において、前記画像領域は３画素×３画素の領域であり、前記第１コンボリューション処理の重み付け係数を第１重み付け係数行列とし、シフトダウン係数を第１シフトダウン係数とする。前記第２コンボリューション処理の重み付け係数を第２重み付け係数行列とし、シフトダウン係数を第２シフトダウン係数とする。前記第３コンボリューション処理の重み付け係数を第３重み付け係数行列としシフトダウン係数を第３シフトダウン係数とする。
【００４９】
前記第１重み付け係数行列は、前記中心画素に対して４であり、前記中心画素に対して上下と左右に隣接する周辺画素に対して１であり、前記中心画素に対して斜め方向で隣接する周辺画素に対して０である３×３の行列であり、前記第１シフトダウン係数は４である。
【００５０】
前記第２重み付け係数行列と前記第３重み付け係数行列のそれぞれは、前記中心画素に対して４であり、前記中心画素に対して上下と左右に隣接する周辺画素に対して２であり、前記中心画素に対して斜め方向で隣接する周辺画素に対して１である３×３の行列であり、前記第２シフトダウン係数と第３シフトダウン係数はそれぞれ４である。
【００５１】
これにより、最も小さい画像領域を対象としたコンボリューション処理により、ＲＡＷデータからＲＧＢデータへの変換を高速に実行することができる。
【００５２】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００５３】
〔実施形態１〕
図１は、一実施の形態に係る画像処理装置の動作及び画像処理方法を表すフローチャートである。
【００５４】
画像処理装置１にはＲＡＷ画像データ７が入力され、画像処理装置１は入力されたＲＡＷ画像データ７に対してマスク処理２とコンボリューション処理３を施すことにより、ＲＧＢデータ８を出力する。ＲＡＷ画像データ７は、赤成分の画素値のみを持つＲ画素と、緑成分の画素値のみを持つＧ画素と、青成分の画素値のみを持つＢ画素とがフレーム内の行方向と列方向の２次元に周期的に配列されている。
【００５５】
画像処理装置１は、ＲＡＷデータ７のフレーム内の全ての画素のそれぞれについて、赤成分と緑成分と青成分の全ての画素値を算出する。即ち、緑成分のみの画素値を持つＧ画素においても、赤成分と青成分の画素値を算出する。マスク処理２は、ＲＡＷ画像データ７のフレーム内の全ての画素に対して、入力されるマスク１０を用い、算出対象とする色成分の画素の画素値はそのまま出力し、算出対象とする色成分以外の色成分の画素の画素値を０にして出力する。画像処理装置１は、マスク処理２の出力に対してコンボリューション処理３を実行する。コンボリューション処理３は、マスク処理２を施された、フレーム内の全ての画素のそれぞれを中心画素とする、所定の画像領域内の画素に、係数行列（加重係数）１１で規定される重み付け係数による加重平均を算出し、その画像領域の中心画素の画素値として出力する処理である。係数行列（加重係数）１１は、中心画素がマスク処理２により画素値を０にされた画素であるか否かに関わらず、コンボリューション処理３において全ての画素に対して一律に適用される。また、マスク処理２により画素値を０にされる画素の配置パターンによらず、マスク処理２により画素値を０にされない画素に対する重み付け係数の合計が一定値となる、重み付け係数によって構成される。
【００５６】
画像処理装置１は、ＲＡＷ画像データ７のフレーム内の全ての画素に対して、緑成分を算出対象とする第１マスク処理とその出力に対する第１コンボリューション処理と、赤成分を算出対象とする第２マスク処理とその出力に対する第２コンボリューション処理と、青成分を算出対象とする第３マスク処理とその出力に対する第３コンボリューション処理とを実行することができる。第１マスク処理は、Ｇ画素以外の画素の画素値を０にするマスク処理２である。第１コンボリューション処理によって、Ｇ画素の画素値はそのままＲＡＷデータ７の画素値が出力され、Ｇ画素の画素における緑成分の画素値は、周囲のＧ画素の画素値から係数行列（加重係数）１１で規定される重み付け係数による加重平均によって算出される。第２マスク処理と第２コンボリューション処理、及び、第３マスク処理と第３コンボリューション処理は、それぞれ同様に、赤成分と青成分の画素値を算出するための処理である。
【００５７】
これにより、マスク処理とコンボリューション処理は、フレーム内の全ての画素に対して一律に適用できるため、ＲＡＷデータの画素ごとに、その画素が変換対象の色成分の画素値をもっているか、他の色の色成分の画素値をもっているかの判断と、その結果にもとづいて変換対象の色成分の画素値の計算方法を変える必要がない。また、そのため、ＲＡＷデータを画像メモリに格納し、必要な画素データを読み込んで、変換対象の色成分の画素値の計算を行う場合であっても、画像メモリのアクセスは、不規則になることがなく、ＲＡＷデータからＲＧＢデータへの変換を高速化することができる。
【００５８】
〔実施形態２〕
図１４は、一実施の形態に係る画像処理装置の詳細な動作及び画像処理方法を表すフローチャートである。図１に示したフローチャートにおけるコンボリューション処理３の出力に対してさらに、所定のシフトダウン係数１２によるシフトダウン処理４を施して、ＲＧＢデータ８を出力する。コンボリューション処理は複数の画素の画素値の加重平均であるから、係数行列１１を構成する加重係数の合計は１とするのが望ましい。加重係数の合計を１より大きい値とすると、ディジタル処理ではオーバーフローしないように配慮する必要が生じるからである。一方、係数行列１１を整数で構成することができれば、コンボリューション処理３を整数演算によって構成することができ、一般には高速な回路を使用することができる。シフトダウン処理４は、コンボリューション処理３における、マスク処理２によって画素値を０にされない画素に対する重み付け係数の合計をシフトダウン係数１２とし、加重平均の結果をシフトダウン係数１２で割る処理である。これにより、係数行列１１の重み付け係数を整数とし、コンボリューション処理を整数演算によって実行することができ、ＲＡＷデータからＲＧＢデータへの変換を高速に実行することができる。一般に除算は回路規模が大きいが、シフトダウン係数１２を２のべき乗とすることにより、回路規模の小さいシフト回路で実現することができる。
【００５９】
次に、具体例を示しながら、より詳細に説明する。ＲＡＷデータ７について説明する。ＲＡＷデータ７は画素が８ビットの画素値を持つものとし、ｎ行×ｍ列で構成されているものとする。ここで示すのは一例であり、画素値のビット数と配列の数は任意に決めることができる。図２は、画像処理装置の処理対象である１フレームのＲＡＷデータの一例を表す説明図である。１フレームのＲＡＷデータ７は、Ｘ方向の座標Ｘ１からＸｍまでのｍ列と、Ｙ方向の座標Ｙ１からＹｎまでのｎ行に、ｍ×ｎ画素の画素が配置されて１フレームを構成されている。座標は撮像素子の光電変換素子の座標に対応する。座標（Ｘ１，Ｙ１）と（Ｘ２，Ｙ２）にはそれぞれ緑成分のみの画素値を持つＧ画素Ｇ１１とＧ２２が、座標（Ｘ２，Ｙ１）には赤成分のみの画素値を持つＲ画素Ｒ２１が、座標（Ｘ１，Ｙ２）には青成分のみの画素値を持つＢ画素Ｂ１２が、それぞれ配置されている。ＲＡＷ画像データ７の１フレームは、この２行２列の４画素の配列を単位として、２次元に周期的に配列して構成される。Ｒ画素の数とＢ画素の数は等しく、Ｇ画素はその２倍であるのが、一般的である。Ｇｘｙ，Ｒｘｙ，Ｂｘｙは、座標（ｘ，ｙ）に配置される画素の画素値で、緑成分のみの画素値を持つＧ画素の画素値、赤成分のみの画素値を持つＲ画素の画素値、青成分のみの画素値を持つＢ画素の画素値をそれぞれ表す。ここで、画素値とは、光の強度を表す。例えば、撮像素子に２次元に配列された光電変換素子に入射した光の強度を電気信号の大きさに変換して出力された値に対応し、その値はアナログかディジタルかを問わない。
【００６０】
図１１は、画像処理装置の処理結果である１フレームのＲＧＢデータの一例を表す説明図である。フレーム内の全ての画素のそれぞれが、光の３原色である緑と赤と青の全ての成分の画素値を持つ。画像処理（カラー処理）を行うには、図１１に示したＲＧＢデータ８が好ましい。これに対し、ＲＡＷデータ７は各座標においてそれぞれ１色の画像データしか持たない。そのため、ＲＡＷデータ７のデータ量はＲＧＢデータ８の１／３である。カメラなどの撮像素子から画像処理装置への画像データの転送では、データ量が少ない分だけ、画像データを転送するための信号路の一例であるバスの負荷を抑えることができる。
【００６１】
図１２は、ＲＡＷデータにおける色成分の画素の配置について、全てのパターンを表す説明図である。繰り返しの単位である２行２列の４画素の配列として、４通りのパターンがある。（ａ）に示されるパターン１は、１行目にＧ画素、Ｒ画素の順に並び２行目にＢ画素、Ｇ画素の順に並ぶ、所謂ＧＲパターンである。図２に示した例が、このＧＲパターンである。（ｂ）に示されるパターン２は、１行目にＧ画素、Ｂ画素の順に、２行目にＲ画素、Ｇ画素の順に並ぶ、所謂ＧＢパターンである。（ｃ）に示されるパターン３は、ＧＲパターンとは逆に、１行目にＲ画素、Ｇ画素の順に並び２行目にＧ画素、Ｂ画素の順に並ぶ、所謂ＲＧパターンであり、（ｄ）に示されるパターン４は、ＧＢパターンとは逆に、１行目にＢ画素、Ｇ画素の順に並び２行目にＧ画素、Ｒ画素の順に並ぶ、所謂ＢＧパターンである。図２に示したのは１例であって、以下の説明は、どのパターンのＲＡＷデータにも同様に適用することができる。
【００６２】
マスク処理２について説明する。
【００６３】
図３は、緑成分を対象とする第１マスク処理のマスクデータ１０＿１を表す説明図であり、図４は、緑成分を対象とするマスク処理の出力データを表す説明図である。マスクデータ１０＿１は、緑成分のみの画素値を持つＧ画素が配置されている座標（Ｘ１，Ｙ１）、（Ｘ３，Ｙ１）などに８ビット全てが１の値０ｘＦＦを持ち、他の座標には値０を持つ。本実施形態ではＲＡＷデータ７の画素値を８ビットとしたので、マスクデータも同じ８ビットとする。マスク処理２は、各画素において図２に示したＲＡＷデータ７の画素値と、図３に示したマスク１０の値のＡＮＤ演算を行う。図４に示すように、ＲＡＷデータ７のＧ画素はそのまま出力され、他の画素は画素値が０として出力され、その結果、Ｇ画素のみを含む画像データが出力される。
【００６４】
図５は、赤成分を対象とする第２マスク処理のマスクデータ１０＿２を表す説明図であり、図６は、赤成分を対象とするマスク処理の出力データを表す説明図である。マスクデータ１０＿２は、赤成分のみの画素値を持つＲ画素が配置されている座標（Ｘ２，Ｙ１）、（Ｘ４，Ｙ１）などに８ビット全てが１の値０ｘＦＦを持ち、他の座標には値０を持つ。図６に示すように、ＲＡＷデータ７のＲ画素はそのまま出力され、他の画素は画素値が０として出力され、その結果、Ｒ画素のみを含む画像データが出力される。
【００６５】
図７は、青成分を対象とする第３マスク処理のマスクデータ１０＿３を表す説明図であり、図８は、青成分を対象とするマスク処理の出力データを表す説明図である。マスクデータ１０＿２は、青成分のみの画素値を持つＢ画素が配置されている座標（Ｘ１，Ｙ２）、（Ｘ３，Ｙ２）などに８ビット全てが１の値０ｘＦＦを持ち、他の座標には値０を持つ。図８に示すように、ＲＡＷデータ７のＢ画素はそのまま出力され、他の画素は画素値が０として出力され、その結果、Ｂ画素のみを含む画像データが出力される。
【００６６】
赤成分を対象とする第２マスク処理のマスクデータ１０＿２（図５）と青成分を対象とする第３マスク処理のマスクデータ１０＿３（図７）は、同じマスクデータを、始点を変えて適用することもできる。始点の違い以外は同じパターンで構成されるからである。
【００６７】
コンボリューション処理３について説明する。まず、緑成分を対象とするコンボリューション処理について説明する。
【００６８】
図９は、緑成分を対象とするコンボリューション処理の係数行列の一例を表す説明図である。第１コンボリューション処理は、ＲＡＷデータ７に対して、緑成分を対象とするマスク処理の出力データ（図４）の全ての画素について、それを中心とする３画素×３画素の領域と、図９に示される係数行列（加重係数）１１のコンボリューション演算を行う処理である。
【００６９】
座標（Ｘ２，Ｙ２）における処理ついて説明する。座標（Ｘ２，Ｙ２）を中心とする３×３画素のＲＡＷデータ７は、下の行列（式１）で表わされる。
【００７０】
【数１】
2014123814.tif 000003
【００７１】
マスク処理２の結果は、下の行列（式２）で表わされる。
【００７２】
【数２】
2014123814.tif 000004
【００７３】
コンボリューション処理３は、式２で表される行列に、図９に示される係数行列（加重係数）１１のコンボリューション演算を行う処理であるので、その中心画素である座標（Ｘ２，Ｙ２）の緑成分は、下の式（式３）によって算出される。
【００７４】
【数３】
2014123814.tif 000005
【００７５】
次にシフトダウン処理４を行う。シフトダウン係数１２は、コンボリューション処理３における、マスク処理２によって画素値を０にされない画素に対する重み付け係数の合計である。この例では、マスク処理２によって画素値を０にされない画素は、Ｇ２２のみであり、その加重係数は４であるので、シフトダウン係数１２は４である。
【００７６】
シフトダウン処理４によって、式３の出力値であるＧ２２×４がシフトダウン係数１２である４で除算され、結果としてＧ２２が得られる。Ｇ２２は、ＲＡＷデータ７に含まれていたので、そのまま出力されたのと同じ結果となる。
【００７７】
次に、座標（Ｘ３，Ｙ２）における処理ついて説明する。座標（Ｘ３，Ｙ２）を中心とする３×３画素のＲＡＷデータ７は、下の行列（式４）で表わされる。
【００７８】
【数４】
2014123814.tif 000006
【００７９】
マスク処理２の結果は、下の行列（式５）で表わされる。算出対象である緑成分のみを残し、他の色の成分（Ｒ画素とＢ画素）は０になる。
【００８０】
【数５】
2014123814.tif 000007
【００８１】
コンボリューション処理３は、式５で表される行列に、図９に示される係数行列（加重係数）１１のコンボリューション演算を行う処理であるので、その中心画素である座標（Ｘ３，Ｙ２）の緑成分は、下の式（式６）によって算出される。
【００８２】
【数６】
2014123814.tif 000008
【００８３】
次にシフトダウン処理４を行う。シフトダウン係数１２は、コンボリューション処理３における、マスク処理２によって画素値を０にされない画素に対する重み付け係数の合計である。この例では、マスク処理２によって画素値を０にされない画素は、Ｇ３１とＧ２２とＧ４２とＧ３３であり、その加重係数の合計は４であるので、シフトダウン係数１２は４である。
【００８４】
シフトダウン処理４によって、式６の出力値である（Ｇ３１＋Ｇ２２＋Ｇ４２＋Ｇ３３）がシフトダウン係数１２である４で除算され、結果として座標（Ｘ３，Ｙ２）における緑成分Ｇ３２＝（Ｇ３１＋Ｇ２２＋Ｇ４２＋Ｇ３３）／４が得られる。緑成分がＲＡＷデータ７にない座標（Ｘ３，Ｙ２）における緑成分は、周囲のＧ画素の画素値の平均値として算出される。
【００８５】
上述の座標（Ｘ２，Ｙ２）における処理は、ＲＡＷデータ７において算出対象である緑成分がある座標についての処理であり、座標（Ｘ３，Ｙ２）における処理は、緑成分がない座標についての処理である。フレーム内の全ての座標の画素について同じ処理を施すことにより、フレーム内の全ての座標の画素における緑成分が得られる。コンボリューション処理３とシフトダウン処理４の内容は、係数行列（加重係数）１１とシフトダウン係数１２を含めて、フレーム内の座標ごとに、ＲＡＷデータ７に算出対象である緑成分がある座標とない座標の違いに関わらず、同じ係数を使った同じ処理を実行すればよい。
【００８６】
次に、赤成分を対象とするコンボリューション処理について説明する。
【００８７】
図１０は、赤成分及び青成分を対象とするコンボリューション処理の係数行列の一例を表す説明図である。第２コンボリューション処理は、ＲＡＷデータ７に対して、赤成分を対象とするマスク処理の出力データ（図６）の全ての画素について、それを中心とする３画素×３画素の領域と、図１０に示される係数行列（加重係数）１１のコンボリューション演算を行う処理である。
【００８８】
座標（Ｘ２，Ｙ２）における処理ついて説明する。座標（Ｘ２，Ｙ２）を中心とする３×３画素のＲＡＷデータ７は、下の行列（式７）で表わされる。
【００８９】
【数７】
2014123814.tif 000009
【００９０】
マスク処理２の結果は、下の行列（式８）で表わされる。
【００９１】
【数８】
2014123814.tif 000010
【００９２】
コンボリューション処理３は、式８で表される行列に、図１０に示される係数行列（加重係数）１１のコンボリューション演算を行う処理であるので、その中心画素である座標（Ｘ２，Ｙ２）の赤成分は、下の式（式９）によって算出される。
【００９３】
【数９】
2014123814.tif 000011
【００９４】
次にシフトダウン処理４を行う。シフトダウン係数１２は、コンボリューション処理３における、マスク処理２によって画素値を０にされない画素に対する重み付け係数の合計である。この例では、マスク処理２によって画素値を０にされない画素は、Ｒ２１とＲ２３であり、その加重係数の合計は４であるので、シフトダウン係数１２は４である。
【００９５】
シフトダウン処理４によって、式９の出力値であるＲ２１×２＋Ｒ２３×２がシフトダウン係数１２である４で除算され、結果として（Ｒ２１＋Ｒ２３）／２が得られる。赤成分がＲＡＷデータ７にない座標（Ｘ２，Ｙ２）における赤成分は、周囲のＲ画素（この例では左右は全て０であるので上下）の画素値の平均値として算出される。
【００９６】
次に、座標（Ｘ３，Ｙ２）における処理ついて説明する。座標（Ｘ３，Ｙ２）を中心とする３×３画素のＲＡＷデータ７は、下の行列（式１０）で表わされる。
【００９７】
【数１０】
2014123814.tif 000012
【００９８】
マスク処理２の結果は、下の行列（式１１）で表わされる。
【００９９】
【数１１】
2014123814.tif 000013
【０１００】
コンボリューション処理３は、式１１で表される行列に、図１０に示される係数行列（加重係数）１１のコンボリューション演算を行う処理であるので、その中心画素である座標（Ｘ３，Ｙ２）の赤成分は、下の式（式１２）によって算出される。
【０１０１】
【数１２】
2014123814.tif 000014
【０１０２】
次にシフトダウン処理４を行う。シフトダウン係数１２は、コンボリューション処理３における、マスク処理２によって画素値を０にされない画素に対する重み付け係数の合計である。この例では、マスク処理２によって画素値を０にされない画素は、Ｒ２１とＲ４１とＲ２３とＲ４３であり、その加重係数の合計は４であるので、シフトダウン係数１２は４である。
【０１０３】
シフトダウン処理４によって、式６の出力値である（Ｒ２１＋Ｒ４１＋Ｒ２３＋Ｒ４３）がシフトダウン係数１２である４で除算され、結果として座標（Ｘ３，Ｙ２）における赤成分Ｒ３２＝（Ｒ２１＋Ｒ４１＋Ｒ２３＋Ｒ４３）／４が得られる。赤成分がＲＡＷデータ７にない座標（Ｘ３，Ｙ２）における赤成分は、周囲のＲ画素（この例では左上、右上、左下、右下の斜め方向４画素）の画素値の平均値として算出される。
【０１０４】
次に、座標（Ｘ２，Ｙ３）における処理ついて説明する。座標（Ｘ２，Ｙ３）を中心とする３×３画素のＲＡＷデータ７は、下の行列（式１３）で表わされる。
【０１０５】
【数１３】
2014123814.tif 000015
【０１０６】
マスク処理２の結果は、下の行列（式１４）で表わされる。
【０１０７】
【数１４】
2014123814.tif 000016
【０１０８】
コンボリューション処理３は、式１４で表される行列に、図１０に示される係数行列（加重係数）１１のコンボリューション演算を行う処理であるので、その中心画素である座標（Ｘ２，Ｙ３）の赤成分は、下の式（式１５）によって算出される。
【０１０９】
【数１５】
2014123814.tif 000017
【０１１０】
次にシフトダウン処理４を行う。シフトダウン係数１２は、コンボリューション処理３における、マスク処理２によって画素値を０にされない画素に対する重み付け係数の合計である。この例では、マスク処理２によって画素値を０にされない画素は、Ｒ２３のみであり、その加重係数は４であるので、シフトダウン係数１２は４である。
【０１１１】
シフトダウン処理４によって、式１５の出力値であるＲ２３×４がシフトダウン係数１２である４で除算され、結果としてＲ２３が得られる。Ｒ２３は、ＲＡＷデータ７に含まれていたので、そのまま出力されたのと同じ結果となる。
【０１１２】
次に、座標（Ｘ３，Ｙ３）における処理ついて説明する。座標（Ｘ３，Ｙ３）を中心とする３×３画素のＲＡＷデータ７は、下の行列（式１６）で表わされる。
【０１１３】
【数１６】
2014123814.tif 000018
【０１１４】
マスク処理２の結果は、下の行列（式１７）で表わされる。
【０１１５】
【数１７】
2014123814.tif 000019
【０１１６】
コンボリューション処理３は、式１７で表される行列に、図１０に示される係数行列（加重係数）１１のコンボリューション演算を行う処理であるので、その中心画素である座標（Ｘ３，Ｙ３）の赤成分は、下の式（式１８）によって算出される。
【０１１７】
【数１８】
2014123814.tif 000020
【０１１８】
次にシフトダウン処理４を行う。シフトダウン係数１２は、コンボリューション処理３における、マスク処理２によって画素値を０にされない画素に対する重み付け係数の合計である。この例では、マスク処理２によって画素値を０にされない画素は、Ｒ２３とＲ４３であり、その加重係数の合計は４であるので、シフトダウン係数１２は４である。
【０１１９】
シフトダウン処理４によって、式１８の出力値であるＲ２３×２＋Ｒ４３×２がシフトダウン係数１２である４で除算され、結果として（Ｒ２３＋Ｒ４３）／２が得られる。赤成分がＲＡＷデータ７にない座標（Ｘ３，Ｙ３）における赤成分は、周囲のＲ画素（この例では上下は全て０であるので左右）の画素値の平均値として算出される。
【０１２０】
既に述べたように、従来の技術によれば、ＲＡＷデータをＲＧＢデータに変換するためには、画素ごとに、その画素が変換対象の色成分の画素値をもっているか、他の色の色成分の画素値をもっているかを判断し、その結果にもとづいて、変換対象の色成分の画素値の計算方法を変える必要があった。即ち、ＲＡＷデータにおいてある色成分のみを持つ画素については、その色成分の画素値はそのままＲＧＢデータのその色成分の画素値とし、ＲＡＷデータにおいてその色成分を持たない画素については、周囲の画素の画素値から算出する必要があった。そのため、これをハードウェアで実現するためには、上記判断と計算方法の変更のための回路手段を備える必要があり、ソフトウェアで実現するためには、上記判断と計算方法の変更のため、不規則にＲＡＷ画像データを読み込む必要があった。
【０１２１】
本実施形態においては、算出対象の色成分がある座標とない座標の違いによって、入力データや係数を切り替える必要がない。マスク処理により算出対象の色以外の色成分を０にし、係数行列（加重係数）１１とシフトダウン係数１２を適切に決めたことにより、上記判断と計算方法の変更をすることなく、全ての画素について一律の処理を行えば良い。即ち、マスク処理とコンボリューション処理は、フレーム内の全ての画素に対して一律に適用できるため、ＲＡＷデータの画素ごとに、その画素が変換対象の色成分の画素値をもっているか、他の色の色成分の画素値をもっているかの判断と、その結果にもとづく変換対象の色成分の画素値の計算方法を変える必要がない。
【０１２２】
図１３は、一実施の形態に係る画像処理装置の詳細な構成例を表すブロック図である。
【０１２３】
画像処理装置１は、画像処理回路２０と前処理部２２と画像メモリ２１、フラッシュメモリ（登録商標）２３、ＲＡＭ（Random Access Memory）２４とを備え、カメラ４０を接続することができる。前処理部２２はカメラ４０から入力された映像信号に対して、必要な前処理を行う回路であって、信号仕様が適合すれば省略することもできる。フラッシュメモリ２３とＲＡＭ２４はバス３０＿２を介して画像処理回路２０に接続され、画像メモリ２１は、例えばＳＤＲＡＭで構成され、バスを介さずに直結される。画像処理回路２０は、ＣＰＵ２５、画像処理エンジン（IMP）２６、画像データインターフェース（VIN）２７、ＤＭＡＣ（Direct Memory Access Controller）２８、内部メモリ２９、データバスインターフェース３１、及び汎用バスインターフェース３２などを備え、これらがバス３０＿１を介して互いに接続されている。データバスインターフェース３１は、画像メモリ２１とのインターフェースであり、汎用バスインターフェース３２は、フラッシュメモリ２３とＲＡＭ２４などが接続可能な外部のバス３０＿２とのインターフェースである。画像データインターフェース（VIN）２７は、カメラ４０から前処理部２２を介して入力された映像信号を、バス３０＿１とデータバスインターフェース３１とを介して画像メモリ２１に転送する。画像処理エンジン（IMP）２６は、内部に複数のラインメモリ３３＿１と３３＿２を備える、信号処理回路である。ラインメモリの数や演算回路の構成などは、要求される性能使用に合わせて適宜最適化することができる。ＣＰＵ２５は、フラッシュメモリ２３またはその他のメモリに格納されるプログラムを実行するプロセッサであり、ＲＡＭ２４、内部メモリ２９などをワークエリアとして利用する。ＤＭＡＣ２８は、ＣＰＵ２５によって指定される転送パラメータに基づいてＣＰＵ２５を介さないで行うメモリへのまたはメモリからの、或いはメモリ間のデータ転送である、ダイレクトメモリアクセスを制御する回路ブロックである。画像処理回路２０は、例えば、公知の半導体製造技術により、単一半導体基板上に集積回路として形成される。
【０１２４】
画像処理装置１により、カメラ４０から入力されるＲＡＷデータ７をＲＧＢデータ８に変換する動作について説明する。カメラ４０は、撮像した映像を、図２に示されるＲＡＷデータ７を座標（Ｘ１，Ｙ１）からライン毎に順次走査して出力する。ＲＡＷデータ７は、前処理部２２を介して、画像処理回路２０に入力される。画像処理回路２０では、画像データインターフェース（VIN）２７に入力されるＲＡＷデータ７を、画像データインターフェース（VIN）２７によって画像メモリ２１に転送する。データバスインターフェース３１は、ＲＡＷデータ７を、ＳＤＲＡＭで構成される画像メモリ２１に、バーストライトする。画像メモリ２１には、ＳＤＲＡＭのバースト方向とＲＡＷデータ７のライン方向とが一致する順序で、各画素の画素値が格納される。カメラ４０が出力した順序のまま画像メモリ２１に格納するので、途中で画像データの順序を入れ替える処理を必要としない。
【０１２５】
画像処理回路２０は、画像メモリ２１に格納されるＲＡＷデータ７を、画像処理エンジン（IMP）２６に読み込む。書き込まれた順序と同じく、ＲＡＷデータ７を座標（Ｘ１，Ｙ１）からライン毎に順次走査した順序で読み込む。画像メモリ２１には、ＳＤＲＡＭのバースト方向とＲＡＷデータ７のライン方向とが一致する順序で、各画素の画素値が格納されているので、データバスインターフェース３１は、バーストリードにより、ＲＡＷデータ７を読み込むことができる。
【０１２６】
画像処理エンジン（IMP）２６では、読み込まれたＲＡＷデータ７に対して読み込まれた順序で、マスク処理２を施す。画像処理エンジン（IMP）２６は、マスク処理２後のデータを３ライン分（少なくとも２ライン分）、ラインメモリ３３に蓄積した後、係数行列（加重係数）１１を用いてコンボリューション処理３を行い、シフトダウン係数１２を用いてシフトダウン処理４を行って出力する。一連の処理により、ＲＡＷデータ７から、ＲＧＢデータ８の１色分の画素値を算出することができる。算出されたＲＧＢデータ８は、画像メモリ２１に書き込まれる。算出される順序は、座標（Ｘ１，Ｙ１）からライン毎に順次走査されたのと同じ順序となるので、データバスインターフェース３１は、バーストライトにより、ＲＧＢデータ８を画像メモリ（ＳＤＲＡＭ）２１に書き込むことができる。画像処理エンジン（IMP）２６において、マスク処理２とコンボリューション処理３とシフトダウン処理４を含む一連の処理を、１フィールドのＲＧＢ３色について順次処理する場合は、ＲＡＷデータ７は３回即ち３フィールド分を読み込み、ＲＧＢデータ８を各色についてそれぞれ１回、合計３フィールド分を書き込む。
【０１２７】
ＲＧＢデータ８を画像メモリ（ＳＤＲＡＭ）２１のアクセスに要する時間を具体的に見積もり、ＣＰＵによるソフトウェア処理の場合と比較する。画像メモリ（ＳＤＲＡＭ）２１と画像処理回路２０は、バス幅４バイトのＤＤＲ２バスで、３００ＭＨｚのクロックで動作するものとする。
【０１２８】
ＣＰＵによるソフトウェア処理では、１バイト単位のバイトアクセス、２バイト単位のワードアクセス、または４バイト単位のロングワードアクセスが可能であるが、ＤＤＲ２バスのバス幅は４バイトであるから、バースト数は１回になる。１回のバーストに要するサイクル数を、リードで８サイクル、ライトで７サイクルとする。ＣＰＵによるソフトウェア処理では、コンボリューション処理においてｎライン目の処理を実行するために、ｎ−１、ｎ、ｎ＋１ラインの３ライン分の画像データが必要であるので、１ライン処理に必要なライン数は３ラインとなる。
【０１２９】
１フィールドの画像サイズを、Ｘ方向６４０画素×Ｙ方向４８０ラインとすると、１フィールド１色分の処理に必要なリード時間は８．２ｍｓ、ライト時間は１．８ｍｓとなり、１フィールド３色分の処理に必要なリード時間は２４．６ｍｓ、ライト時間は５．４ｍｓとなる。５００万画素の高画素カメラの場合、１フィールドの画像サイズを、Ｘ方向２４５６画素×Ｙ方向２０４８ラインとすると、１フィールド１色分の処理に必要なリード時間は１２０．６ｍｓ、ライト時間は２９．３ｍｓとなり、１フィールド３色分の処理に必要なリード時間は３６１．９ｍｓ、ライト時間は８８．０ｍｓとなる。
【０１３０】
本実施形態における画像処理回路２０による処理では、座標（Ｘ１，Ｙ１）からライン毎に順次走査されたのと同じ順序でのアクセスとなるため、バースト数は８回になる。このとき、１回のバーストに要するサイクル数を、リードで１１サイクル、ライトで１０サイクルとなる。ＣＰＵによるソフトウェア処理では、コンボリューション処理において１ライン処理に３ラインのデータの読み込みを必要としたのに対して、本実施形態では上述のように１ラインのデータの読み込みでよい。
【０１３１】
１フィールドの画像サイズを、Ｘ方向６４０画素×Ｙ方向４８０ラインとすると、１フィールド１色分の処理に必要なリード時間は０．５ｍｓ、ライト時間は０．３ｍｓとなり、１フィールド３色分の処理に必要なリード時間は１．４ｍｓ、ライト時間は１．０ｍｓとなる。５００万画素の高画素カメラで、１フィールドの画像サイズがＸ方向２４５６画素×Ｙ方向２０４８ラインの場合、１フィールド１色分の処理に必要なリード時間は６．９ｍｓ、ライト時間は５．２ｍｓとなり、１フィールド３色分の処理に必要なリード時間は２０．７ｍｓ、ライト時間は１５．７ｍｓとなる。
【０１３２】
通常のフレームレート３０フレーム／秒の場合、１フレームの処理は３３．３ｍｓ以内に抑えることができれば、リアルタイム処理を可能とすることができる。倍速の６０フレーム／秒の場合は、１フレームの処理は１６．７ｍｓ以内に抑えることができれば、リアルタイム処理を可能とすることができる。上記見積もりによれば、本実施形態における画像処理回路２０による処理では、５００万画素の高画素カメラで倍速の６０フレーム／秒の場合以外はリアルタイム処理を実現できる見込みがあるのに対し、ＣＰＵによるソフトウェア処理では、リアルタイム処理を実現できる見込みがないことがわかる。
【０１３３】
以上述べてきたように、本実施形態によれば、ＲＡＷデータを画像メモリに格納し、必要な画素データを読み込んで、変換対象の色成分の画素値の計算を行う場合に、画像メモリ２１へのアクセスが、不規則になることがなく、ＲＡＷデータからＲＧＢデータへの変換を高速化することができる。
【０１３４】
以上は、ＲＡＷデータ７をＲＧＢの３色についてそれぞれ、合計３回に分けて順次ＲＧＢデータへの変換を行う例について説明したが、画像処理エンジン（IMP）２６において、マスク処理２とコンボリューション処理３とシフトダウン処理４を含む一連の処理を、３系統並列に処理するハードウェアを備えることもできる。１回のＲＡＷデータ７の読み込みに対して、ＲＧＢデータ８の３色分の画素値を並列に算出することができるので、画像メモリ２１のアクセスサイクル数をさらに減らすことができる。
【０１３５】
また、画像処理エンジン（IMP）２６において、マスク処理２とコンボリューション処理３とシフトダウン処理４を含む一連の処理のための演算を行うハードウェアを１系統のみ備える場合であっても、ラインメモリ３３を多用することにより、１回のＲＡＷデータ７の読み込みに対して、ＲＧＢデータ８の３色分の画素値をミクロには順次、マクロには並列に算出することができる。これにより、画像処理エンジン（IMP）２６の回路規模を抑えながら、画像メモリ２１のアクセスサイクル数を減らすことができる。
【０１３６】
〔実施形態３〕
図１５は、他の実施の形態に係る画像処理装置の動作及び画像処理方法を表すフローチャートである。
【０１３７】
本実施形態の画像処理装置１は、実施形態２の画像処理装置１の図１４に示した動作に対して、シフトダウン処理４の出力に対する正規化処理５をさらに含む。また、本実施形態の画像処理方法は、図１４に示した実施形態２の画像処理方法に対して、シフトダウン処理４の出力に対する正規化処理５をさらに含む。正規化処理５は、例えば、フレーム内の画像データについて、輝度の最大値から最小値までの値を、所定の範囲まで広げる処理である。
【０１３８】
これにより、出力されるＲＧＢデータ８は正規化され、後段の処理との接続を容易にすることができる。
【０１３９】
〔実施形態４〕
図１６は、他の実施の形態に係る画像処理装置の動作及び画像処理方法を表すフローチャートである。
【０１４０】
本実施形態の画像処理装置１は、実施形態２の画像処理装置１の図１４に示した動作に対して、シフトダウン処理４の出力に対するホワイトバランス処理６をさらに含む。また、本実施形態の画像処理方法は、図１４に示した実施形態２の画像処理方法に対して、シフトダウン処理４の出力に対するホワイトバランス処理６をさらに含む。ホワイトバランス処理６は、ＲＧＢの色成分ごとに、レベルや階調を整える処理である。
【０１４１】
これにより、ホワイトバランスを調整されたＲＧＢデータ８を出力することができる。
【０１４２】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１４３】
例えば、コンボリューション処理３は、３×３の係数行列１１による例を示したが、５×５以上の高次の係数行列を採用することもできる。その場合、コンボリューション処理の係数は、適切なアンチエイリアス効果を生むための周波数特性を持つ、画像空間フィルタの係数とすることができる。
【符号の説明】
【０１４４】
１  画像処理装置
２  マスク処理
３  コンボリューション処理
４  シフトダウン処理
５  正規化処理
６  ホワイトバランス調整処理
７  ＲＡＷデータ
８  ＲＧＢデータ
１０  マスク
１１  加重係数
１２  シフトダウン係数
１３  ＬＵＴ
２０  画像処理回路
２１  画像メモリ（ＳＤＲＡＭ）
２２  前処理回路
２３  フラッシュメモリ
２４  ＲＡＭ
２５  ＣＰＵ
２６  画像処理エンジン（IMP）
２７  画像データインターフェース（VIN）
２８  ＤＭＡＣ
２９  内部メモリ
３０  バス
３１  データバスインターフェース
３２  汎用バスインターフェース
３３  ラインメモリ
４０  カメラ
【図１】
2014123814.tif 000021
【図２】
2014123814.tif 000022
【図３】
2014123814.tif 000023
【図４】
2014123814.tif 000024
【図５】
2014123814.tif 000025
【図６】
2014123814.tif 000026
【図７】
2014123814.tif 000027
【図８】
2014123814.tif 000028
【図９】
2014123814.tif 000029
【図１０】
2014123814.tif 000030
【図１１】
2014123814.tif 000031
【図１２】
2014123814.tif 000032
【図１３】
2014123814.tif 000033
【図１４】
2014123814.tif 000034
【図１５】
2014123814.tif 000035
【図１６】
2014123814.tif 000036