(57)【要約】  単色の画素が所定の色のパターンで複数配置された画素セットを複数含み、当該画素セットが縦横に並んで配置されている画像に基づくカラー画像の生成処理を高効率で実行できる画像処理装置、画像処理方法及びプログラムを提供する。中間画像生成部（６４）は、基礎画像に基づいて、画素セットに含まれる複数の基礎画素の画素値が当該画素セットに対応付けられる１の中間画素の中間画素データの値として設定された中間画像を生成する。画素値決定部（７０）は、注目中間画素の中間画素データの値、及び、当該注目中間画素に隣接する中間画素の中間画素データの値、に基づいて、当該注目中間画素に対応付けられる少なくとも１の最終画素の複数色の画素値を決定する。最終画像生成部（７２）は、複数の最終画素の複数色の画素値に基づいて、最終画像を生成する。
2019082232.tif 000002
【特許請求の範囲】
【請求項１】
単色の基礎画素が所定の色のパターンで複数配置された画素セットを複数含み、前記画素セットが縦横に並んで配置されている基礎画像に基づいて、それぞれ少なくとも１の前記基礎画素に対応づけられる複数色の最終画素を複数含む、カラー画像である最終画像を生成する画像処理装置であって、
前記基礎画像に基づいて、前記画素セットに含まれる複数の前記基礎画素の画素値が当該画素セットに対応付けられる１の中間画素の中間画素データの値として設定された中間画像を生成する中間画像生成部と、
前記中間画像に含まれるいずれかの前記中間画素である注目中間画素の前記中間画素データの値、及び、当該注目中間画素に隣接する前記中間画素の前記中間画素データの値、に基づいて、当該注目中間画素に対応付けられる少なくとも１の前記最終画素の複数色の画素値を決定する画素値決定部と、
複数の前記最終画素についての複数色の画素値に基づいて、前記最終画像を生成する最終画像生成部と、
を含むことを特徴とする画像処理装置。
【請求項２】
前記注目中間画素又は当該注目中間画素に隣接する前記中間画素に対応付けられる前記画素セットに含まれる前記基礎画素についての、当該基礎画素の色とは異なる色の画素値を決定する補間処理実行部、をさらに含み、
前記画素値決定部は、前記補間処理実行部で決定される画素値に応じた係数、前記注目中間画素の前記中間画素データの値、及び、当該注目中間画素に隣接する前記中間画素の前記中間画素データの値、に基づいて、当該注目中間画素に対応付けられる少なくとも１の前記最終画素の複数色の画素値を決定する、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記補間処理実行部は、１の前記基礎画素については、当該基礎画素の色とは異なる色の画素値を１度だけ決定する、
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記基礎画像は、ベイヤ配列の画像である、
ことを特徴とする請求項１から３のいずれか一項に記載の画像処理装置。
【請求項５】
前記画素セットは、Ｒ画素、Ｇ画素、及び、Ｂ画素が所定の色のパターンで配置されたものである、
ことを特徴とする請求項１から４のいずれか一項に記載の画像処理装置。
【請求項６】
第１の値、第２の値、第３の値、及び、第４の値が、大きい方から順に、第１最終値、第２最終値、第３最終値、及び、第４最終値となるようソートするソート部、をさらに含み、
前記ソート部は、
前記第１の値と前記第４の値のうちの大きな値を第１中間値として決定し、
前記第２の値と前記第３の値のうちの大きな値を第２中間値として決定し、
前記第２の値と前記第３の値のうちの小さな値を第３中間値として決定し、
前記第１の値と前記第４の値のうちの小さな値を第４中間値として決定し、
前記第１中間値と前記第２中間値のうちの大きな値を前記第１最終値として決定し、
前記第１中間値と前記第２中間値のうちの小さな値を前記第２最終値として決定し、
前記第３中間値と前記第４中間値のうちの大きな値を前記第３最終値として決定し、
前記第３中間値と前記第４中間値のうちの小さな値を前記第４最終値として決定する、
ことを特徴とする請求項１から５のいずれか一項に記載の画像処理装置。
【請求項７】
単色の基礎画素が所定の色のパターンで複数配置された画素セットを複数含み、前記画素セットが縦横に並んで配置されている基礎画像に基づいて、それぞれ少なくとも１の前記基礎画素に対応づけられる複数色の最終画素を複数含む、カラー画像である最終画像を生成する画像処理方法であって、
前記基礎画像に基づいて、前記画素セットに含まれる複数の前記基礎画素の画素値が当該画素セットに対応付けられる１の中間画素の中間画素データの値として設定された中間画像を生成するステップと、
前記中間画像に含まれるいずれかの前記中間画素である注目中間画素の前記中間画素データの値、及び、当該注目中間画素に隣接する前記中間画素の前記中間画素データの値、に基づいて、当該注目中間画素に対応付けられる少なくとも１の前記最終画素の複数色の画素値を決定するステップと、
複数の前記最終画素についての複数色の画素値に基づいて、前記最終画像を生成するステップと、
を含むことを特徴とする画像処理方法。
【請求項８】
単色の基礎画素が所定の色のパターンで複数配置された画素セットを複数含み、前記画素セットが縦横に並んで配置されている基礎画像に基づいて、それぞれ少なくとも１の前記基礎画素に対応づけられる複数色の最終画素を複数含む、カラー画像である最終画像を生成するコンピュータに、
前記基礎画像に基づいて、前記画素セットに含まれる複数の前記基礎画素の画素値が当該画素セットに対応付けられる１の中間画素の中間画素データの値として設定された中間画像を生成する手順、
前記中間画像に含まれるいずれかの前記中間画素である注目中間画素の前記中間画素データの値、及び、当該注目中間画素に隣接する前記中間画素の前記中間画素データの値、に基づいて、当該注目中間画素に対応付けられる少なくとも１の前記最終画素の複数色の画素値を決定する手順、
複数の前記最終画素についての複数色の画素値に基づいて、前記最終画像を生成する手順、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
各画素に異なるカラーフィルタが設けられることで画素毎にＲＧＢ等の複数の色のうちのいずれかの色の信号が取得される撮像素子を備え、当該信号に基づくベイヤ配列の画像を生成するカメラが存在する。ベイヤ配列の画像は、例えば赤色であるＲ画素、緑色であるＧｒ画素及びＧｂ画素、青色であるＢ画素といった、４種類の画素から構成されている。【０００３】
このようにして生成されるベイヤ配列の画像は、デモザイク処理と呼ばれる処理により、ＲＧＢ等の複数色の画素値が各画素に設定されたカラー画像に変換される。特許文献１には、公知のクラス分類適応処理を用いてデモザイク処理を実行することが記載されている。ここでクラス分類適応処理とは、処理後の画像の注目している画素である注目画素を所定のクラスに分類し、そのクラスに対応する学習により求められた係数と、注目画素に対応する処理前の画像の画素値との線形結合により注目画素の画素値を予測する処理である。【０００４】
また、１つの命令を複数のデータに適用するコンピュータの並列化技術であるＳＩＭＤ（Single Instruction Multiple Data）型の演算を、例えばマルチコアプロセッサやＧＰＵで実行することによって、高効率な情報処理を可能にする技術が存在する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−９２９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
デモザイク処理においては、ベイヤ配列の画像に含まれる、カラー画像に変換される画素に隣接する画素を含む周辺の画素について、当該画素の色とは異なる色の画素の画素値を決定する処理が行われる。例えば図９Ａの例では、注目するＲ画素である注目基礎Ｒ画素４６ａ（Ｒ）を中心とした複数の画素について、当該画素の色とは異なる色の画素の画素値が決定される。また図９Ｂの例では、注目するＧｒ画素である注目基礎Ｇｒ画素４６ａ（Ｇｒ）を中心とした複数の画素について、当該画素の色とは異なる色の画素の画素値が決定される。また図９Ｃの例では、注目するＧｂ画素である注目基礎Ｇｂ画素４６ａ（Ｇｂ）を中心とした複数の画素について、当該画素の色とは異なる色の画素の画素値が決定される。また図９Ｄの例では、注目するＢ画素である注目基礎Ｂ画素４６ａ（Ｂ）を中心とした複数の画素について、当該画素の色とは異なる色の画素の画素値が決定される。【０００７】
ここで図９Ａ〜図９Ｄに示すように、ベイヤ配列の画像に含まれる画素の種類によって、当該画素を基準とした際の周辺の画素の種類のパターンが異なる。そのため上述の処理の実行にあたっては、ベイヤ配列の画像に含まれる画素の種類に応じて異なるアルゴリズムを実行する必要があった。そしてこのことによって、ベイヤ配列の画像に含まれる特定の画素の特定の色の画素値が何度も決定されることとなり処理の無駄が生じていた。【０００８】
また上述の処理の実行では、ベイヤ配列の画像に含まれる画素の色に応じて異なるアルゴリズムを実行する必要があるため、ＳＩＭＤ化による処理の効率化が困難であった。【０００９】
なお以上のことは、ベイヤ配列の画像からカラー画像を生成する状況には限定されない。例えば単色の画素が所定の色のパターンで複数配置された画素セットを複数含み、当該画素セットが縦横に並んで配置されている画像に基づいて、カラー画像を生成する状況においては、以上のことは一般的にあてはまる。【００１０】
本発明は上記実情に鑑みてなされたものであって、その目的の一つは、単色の画素が所定の色のパターンで複数配置された画素セットを複数含み、当該画素セットが縦横に並んで配置されている画像に基づくカラー画像の生成処理を高効率で実行できる画像処理装置、画像処理方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明に係る画像処理装置は、単色の基礎画素が所定の色のパターンで複数配置された画素セットを複数含み、前記画素セットが縦横に並んで配置されている基礎画像に基づいて、それぞれ少なくとも１の前記基礎画素に対応づけられる複数色の最終画素を複数含む、カラー画像である最終画像を生成する画像処理装置であって、前記基礎画像に基づいて、前記画素セットに含まれる複数の前記基礎画素の画素値が当該画素セットに対応付けられる１の中間画素の中間画素データの値として設定された中間画像を生成する中間画像生成部と、前記中間画像に含まれるいずれかの前記中間画素である注目中間画素の前記中間画素データの値、及び、当該注目中間画素に隣接する前記中間画素の前記中間画素データの値、に基づいて、当該注目中間画素に対応付けられる少なくとも１の前記最終画素の複数色の画素値を決定する画素値決定部と、複数の前記最終画素についての複数色の画素値に基づいて、前記最終画像を生成する最終画像生成部と、を含む。【００１２】
本発明の一態様では、前記注目中間画素又は当該注目中間画素に隣接する前記中間画素に対応付けられる前記画素セットに含まれる前記基礎画素についての、当該基礎画素の色とは異なる色の画素値を決定する補間処理実行部、をさらに含み、前記画素値決定部は、前記補間処理実行部で決定される画素値に応じた係数、前記注目中間画素の前記中間画素データの値、及び、当該注目中間画素に隣接する前記中間画素の前記中間画素データの値、に基づいて、当該注目中間画素に対応付けられる少なくとも１の前記最終画素の複数色の画素値を決定する。【００１３】
この態様では、前記補間処理実行部は、１の前記基礎画素については、当該基礎画素の色とは異なる色の画素値を１度だけ決定してもよい。【００１４】
また、本発明の一態様では、前記基礎画像は、ベイヤ配列の画像である。【００１５】
また、本発明の一態様では、前記画素セットは、Ｒ画素、Ｇ画素、及び、Ｂ画素が所定の色のパターンで配置されたものである。【００１６】
また、本発明の一態様では、第１の値、第２の値、第３の値、及び、第４の値が、大きい方から順に、第１最終値、第２最終値、第３最終値、及び、第４最終値となるようソートするソート部、をさらに含み、前記ソート部は、前記第１の値と前記第４の値のうちの大きな値を第１中間値として決定し、前記第２の値と前記第３の値のうちの大きな値を第２中間値として決定し、前記第２の値と前記第３の値のうちの小さな値を第３中間値として決定し、前記第１の値と前記第４の値のうちの小さな値を第４中間値として決定し、前記第１中間値と前記第２中間値のうちの大きな値を前記第１最終値として決定し、前記第１中間値と前記第２中間値のうちの小さな値を前記第２最終値として決定し、前記第３中間値と前記第４中間値のうちの大きな値を前記第３最終値として決定し、前記第３中間値と前記第４中間値のうちの小さな値を前記第４最終値として決定する。【００１７】
また、本発明に係る画像処理方法は、単色の基礎画素が所定の色のパターンで複数配置された画素セットを複数含み、前記画素セットが縦横に並んで配置されている基礎画像に基づいて、それぞれ少なくとも１の前記基礎画素に対応づけられる複数色の最終画素を複数含む、カラー画像である最終画像を生成する画像処理方法であって、前記基礎画像に基づいて、前記画素セットに含まれる複数の前記基礎画素の画素値が当該画素セットに対応付けられる１の中間画素の中間画素データの値として設定された中間画像を生成するステップと、前記中間画像に含まれるいずれかの前記中間画素である注目中間画素の前記中間画素データの値、及び、当該注目中間画素に隣接する前記中間画素の前記中間画素データの値、に基づいて、当該注目中間画素に対応付けられる少なくとも１の前記最終画素の複数色の画素値を決定するステップと、複数の前記最終画素についての複数色の画素値に基づいて、前記最終画像を生成するステップと、を含む。【００１８】
また、本発明に係るプログラムは、単色の基礎画素が所定の色のパターンで複数配置された画素セットを複数含み、前記画素セットが縦横に並んで配置されている基礎画像に基づいて、それぞれ少なくとも１の前記基礎画素に対応づけられる複数色の最終画素を複数含む、カラー画像である最終画像を生成するコンピュータに、前記基礎画像に基づいて、前記画素セットに含まれる複数の前記基礎画素の画素値が当該画素セットに対応付けられる１の中間画素の中間画素データの値として設定された中間画像を生成する手順、前記中間画像に含まれるいずれかの前記中間画素である注目中間画素の前記中間画素データの値、及び、当該注目中間画素に隣接する前記中間画素の前記中間画素データの値、に基づいて、当該注目中間画素に対応付けられる少なくとも１の前記最終画素の複数色の画素値を決定する手順、複数の前記最終画素についての複数色の画素値に基づいて、前記最終画像を生成する手順、を実行させる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態に係る画像処理装置の構成の一例を示す図である。
【図２】基礎画像の一例を示す図である。
【図３】中間画像の一例を示す図である。
【図４】最終画像の一例を示す図である。
【図５】基礎画像における基礎画素に割り当てられるアドレス空間の一例を示す図である。
【図６】中間画像における中間画素に割り当てられるアドレス空間の一例を示す図である
【図７】最終画素のＲＧＢ画素値の決定処理の一例を説明する説明図である。
【図８】中間画像内の中間画素の画素値と中間画像の周囲において存在が仮定される画素の画素値との対応関係の一例を示す図である。
【図９Ａ】注目基礎Ｒ画素を中心とする画素群の一例を示す図である。
【図９Ｂ】注目基礎Ｇｒ画素を中心とする画素群の一例を示す図である。
【図９Ｃ】注目基礎Ｇｂ画素を中心とする画素群の一例を示す図である。
【図９Ｄ】注目基礎Ｂ画素を中心とする画素群の一例を示す図である。
【図１０】本発明の一実施形態に係る画像処理装置で実装される機能の一例を示す機能ブロック図である。
【図１１】本発明の一実施形態に係る画像処理装置で行われる処理の流れの一例を示すフロー図である。
【図１２】本発明の一実施形態に係る画像処理装置で行われる処理の流れの一例を示すフロー図である。
【発明を実施するための形態】
【００２０】
以下、本発明の一実施形態について図面に基づき詳細に説明する。
【００２１】
図１は、本実施形態の一実施形態に係る画像処理装置１０の構成の一例を示す図である。本実施形態に係る画像処理装置１０は、例えば、ゲームコンソールやパーソナルコンピュータ等のコンピュータであって、図１に示すように、プロセッサ２０、記憶部２２、通信部２４、入出力部２６、操作部２８、表示部３０を含んでいる。
【００２２】
プロセッサ２０は、例えば画像処理装置１０にインストールされるプログラムに従って動作するプログラム制御デバイスである。図１に示すように、本実施形態に係るプロセッサ２０には、ＣＰＵ２０ａと、ＣＰＵ２０ａから供給されるグラフィックスコマンドやデータに基づいてフレームバッファに画像を描画するＧＰＵ（Graphics Processing Unit）２０ｂと、が含まれている。
【００２３】
また本実施形態に係るＧＰＵ２０ｂは、画像の描画だけでなく、一般的な情報処理も実行できるようになっている。ＧＰＵ２０ｂは、ＣＰＵ２０ａより同時に実行可能な処理単位（スレッド）の数が多いため、並列処理に適している。また同時に実行される処理単位（スレッド）は、互いに同じ内容の処理であることが要請される。同時に実行されるひとまとめとなった処理単位（スレッド）の群は、例えばウェーブフロントやワープなどと呼ばれる。
【００２４】
記憶部２２は、例えばＲＯＭやＲＡＭ等の記憶素子やハードディスクドライブなどである。記憶部２２には、プロセッサ２０によって実行されるプログラムなどが記憶される。また、本実施形態に係る記憶部２２には、ＧＰＵ２０ｂにより画像が描画されるフレームバッファの領域が確保されている。また本実施形態に係る記憶部２２には、ウェーブフロントやワープに属するすべてのスレッド間で共有できる、アクセス速度が速い共有メモリが含まれている。この共有メモリは、例えばＬＤＳと呼ばれるものである。
【００２５】
通信部２４は、例えばイーサネット（登録商標）モジュールや無線ＬＡＮモジュールなどの通信インタフェースなどである。
【００２６】
入出力部２６は、例えばＨＤＭＩ（登録商標）（High-Definition Multimedia Interface）ポートやＵＳＢポートなどの入出力ポートである。
【００２７】
操作部２８は、キーボードやマウス、ゲームコンソールのコントローラ等であって、ユーザの操作入力を受け付けて、その内容を示す信号をプロセッサ２０に出力する。
【００２８】
表示部３０は、液晶ディスプレイ、有機ＥＬディスプレイ等の表示デバイスであって、プロセッサ２０の指示に従って、各種の画像を表示する。
【００２９】
なお、画像処理装置１０は、ＤＶＤ−ＲＯＭやＢｌｕ−ｒａｙ（登録商標）ディスクなどの光ディスクを読み取る光ディスクドライブなどをさらに含んでいてもよい。
【００３０】
本実施形態に係る画像処理装置１０では、図２に例示する基礎画像４０に基づいて、図３に例示する中間画像４２が生成される。そして図３に例示する中間画像４２に基づいて、図４に例示する最終画像４４が生成される。なお、図２〜図４においては、右方向がＸ軸正方向であり、下方向がＹ軸正方向であることとする。
【００３１】
基礎画像４０は、例えばベイヤ配列の画像などといった、単色の基礎画素４６が所定の色のパターンで複数配置された画素セット４８を複数含み、画素セット４８が縦横に並んで配置されている画像である。ここで基礎画素４６とは、基礎画像４０に含まれる画素を指すこととする。基礎画像４０は、例えば、各基礎画素４６に異なるカラーフィルタが設けられることで基礎画素４６毎にＲＧＢ等の複数の色のうちのいずれかの色の信号が取得される撮像素子を備えるカメラによって生成されるものであってもよい。
【００３２】
図２では、単色の基礎画素４６が実線の四角形で示されている。また図２において文字Ｒが示されている基礎画素４６は赤色のＲ画素である。また文字Ｇｂ、Ｇｒが示されている基礎画素４６は緑色のＧ画素である。ここで文字Ｇｒが示されている基礎画素４６はＧｒ画素であり、文字Ｇｂが示されている基礎画素４６はＧｂ画素である。また、文字Ｂが示されている基礎画素４６は、青色のＢ画素である。このように図２に例示する基礎画像４０に含まれる画素セット４８は、Ｒ画素、Ｇ画素、及び、Ｂ画素が所定の色のパターンで配置されたものであるといえる。
【００３３】
そして図２の例では、左上にＲ画素が、右上にＧｒ画素が、左下にＧｂ画素が、右下にＢ画素が配置された画素セット４８が二点鎖線で示されている。そして図２の例では画素セット４８が縦横に並んで配置されている。
【００３４】
そして本実施形態では上述のように図２に例示する基礎画像４０に基づいて、図３に例示する中間画像４２が生成される。図３に示す中間画像４２に含まれる中間画素５０は、図２に示す基礎画像４０に含まれる画素セット４８に対応付けられる。ここで中間画素５０とは、中間画像４２に含まれる画素を指すこととする。そして中間画素５０には、当該中間画素５０に対応付けられる画素セット４８に含まれる４個の基礎画素４６の画素値のそれぞれを要素として含むベクトルが、中間画素データの値として設定される。例えば、基礎画素４６の画素値が３２ビットで表現される場合は、中間画素５０の中間画素データの値は１２８ビットで表現されることとなる。
【００３５】
ここで４個の基礎画素４６の画素値に相当する中間画素５０の中間画素データの値が４要素のベクトル変数の値として実装されてもよい。そして基礎画素４６の画素値へのアクセスは、例えば、このベクトル変数の要素へのアクセスとして実装されてもよい。またＧＰＵ２０ｂのＳＩＭＤ命令による当該ベクトル変数の要素に対する並列なアクセスが実装されてもよい。また中間画素５０の中間画素データの値が、ウェーブフロントやワープに属するすべてのスレッド間で共有できる共有メモリに格納されてもよい。またＣＰＵ２０ａがマルチコアプロセッサである場合に、ＣＰＵ２０ａのＳＩＭＤ命令による当該ベクトル変数の要素に対する並列なアクセスが実装されてもよい。
【００３６】
本実施形態では例えば、右下の基礎画素４６の座標値が（ｐ，ｑ）（ｐ、ｑは偶数）である画素セット４８に属する４個の基礎画素４６の画素値が、中間画像４２に含まれる、座標値が（ｐ／２，ｑ／２）である中間画素５０の中間画素データの値として設定される。すなわち、座標値が（ｐ−１，ｑ−１）、（ｐ，ｑ−１）、（ｐ−１，ｑ）、（ｐ，ｑ）である基礎画素４６の画素値が、中間画像４２に含まれる、座標値が（ｐ／２，ｑ／２）である中間画素５０の中間画素データの値として設定されることとなる。例えば基礎画像４０に含まれる、座標値が（５，５）、（６，５）、（５，６）、（６，６）である基礎画素４６の画素値が、中間画像４２に含まれる、座標値が（３，３）である中間画素５０の中間画素データの値として設定されることとなる。
【００３７】
なお本実施形態では基礎画像４０の画素数は縦横それぞれｎ（ｎは偶数）であることとする。そのため中間画像４２の画素数は縦横それぞれ（ｎ／２）であることとなる。
【００３８】
図５は、図２に示す基礎画像４０における基礎画素４６に割り当てられるアドレス空間の一例を示す図である。図６は、図３に示す中間画像４２における中間画素５０に割り当てられるアドレス空間の一例を示す図である。
【００３９】
図５に示すように、基礎画像４０においては、Ｙ座標値が１である１行目の基礎画素４６に対してシリアルにアドレス空間が割り当てられる。そして、１行目の基礎画素４６に対して割り当てられたアドレス空間に連続してＹ座標値が２である２行目の基礎画素４６に対してアドレス空間が割り当てられる。以下、２行目の基礎画素４６に対して割り当てられたアドレス空間に連続して、Ｙ座標値が３である３行目の基礎画素４６、Ｙ座標値が４である４行目の基礎画素４６、・・・に対してアドレス空間が割り当てられる。
【００４０】
そのため図５に示す基礎画像４０では、画素セット４８に含まれるＲ画素及びＧｒ画素の画素値が配置される領域と、当該画素セット４８に含まれるＧｂ画素及びＢ画素の画素値が配置される領域と、が離れることとなる。例えば座標値が（ｐ−１，ｑ−１）、（ｐ，ｑ−１）である基礎画素４６の画素値が配置される領域と、座標値が（ｐ−１，ｑ）、（ｐ，ｑ）である基礎画素４６の画素値が配置される領域と、が離れることとなる。図５の例では、座標値が（１，１）、（２，１）である基礎画素４６の画素値が配置される領域と、座標値が（１，２）、（２，２）である基礎画素４６の画素値が配置される領域と、が離れることとなる。
【００４１】
そして図６に示すように、中間画像４２においては、Ｙ座標値が１である１行目の中間画素５０に対してシリアルにアドレス空間が割り当てられる。そして１行目の中間画素５０に対して割り当てられたアドレス空間に連続してＹ座標値が２である２行目の中間画素５０に対してアドレス空間が割り当てられる。以下、２行目の中間画素５０に対して割り当てられたアドレス空間に連続して、Ｙ座標値が３である３行目の中間画素５０、Ｙ座標値が４である４行目の中間画素５０、・・・に対してアドレス空間が割り当てられる。
【００４２】
ここで中間画像４２における１の中間画素５０は、基礎画像４０における１の画素セット４８に属する４個の基礎画素４６に相当する。そのため中間画像４２における１の中間画素５０の中間画素データの値が配置される領域に、基礎画像４０における１の画素セット４８に属する４個の基礎画素４６の画素値が配置されることとなる。例えば座標値が（ｐ／２，ｑ／２）である中間画素５０の中間画素データの値が配置される領域に、座標値が（ｐ−１，ｑ−１）、（ｐ，ｑ−１）、（ｐ−１，ｑ）、（ｐ，ｑ）である基礎画素４６の画素値が配置される。よって図６に示すアドレス空間の配置では、１の画素セット４８に含まれるＲ画素及びＧｒ画素の画素値が配置される領域と、当該画素セット４８に含まれるＧｂ画素及びＢ画素の画素値が配置される領域と、が連続することとなる。
【００４３】
そのため、図６に示すアドレス空間の割り当ての方が、図５に示すアドレス空間の割り当てよりも、１の画素セット４８に属するすべての基礎画素４６の画素値の取得におけるメモリのアクセス速度が速くなる。またある画素セット４８に隣接する画素セット４８に属する基礎画素４６の画素値の取得に関しても、図６に示すアドレス空間の割り当ての方が、図５に示すアドレス空間の割り当てよりも速くなる。
【００４４】
そして本実施形態では上述のように図３に例示する中間画像４２に基づいて、図４に例示する最終画像４４が生成される。最終画像４４は本実施形態では例えば、基礎画像４０と同じサイズ（画素数）のカラー画像であり、最終画像４４の最終画素５２の画素値としては、複数色の画素値（ここでは例えばＲＧＢ画素値）が設定される。ここで最終画素５２とは、最終画像４４に含まれる画素を指すこととする。また本実施形態における基礎画像４０に基づく最終画像４４の生成処理は、デモザイク処理に相当する処理であることとなる。なお最終画像４４が基礎画像４０と同じサイズ（画素数）である必要はない。最終画像４４のサイズは基礎画像４０のサイズより大きくてもよい。また、最終画像４４のサイズは基礎画像４０のサイズより小さくてもよい。
【００４５】
以下、図４に示されている４個の注目最終画素５２ａのＲＧＢ画素値の決定処理を題材として、図７を参照しながら最終画素５２のＲＧＢ画素値の決定処理の一例について説明する。ここで４個の注目最終画素５２ａの座標値はそれぞれ（５，５）、（６，５）、（５，６）、（６，６）であることとする。
【００４６】
ここで図３に示すように、４個の注目最終画素５２ａに相当する中間画像４２の中間画素５０を注目中間画素５０ａと呼ぶこととする。注目中間画素５０ａの座標値は（３，３）であることとなる。
【００４７】
また図２に示すように、基礎画像４０に含まれる、４個の注目最終画素５２ａに相当する４個の基礎画素４６を注目基礎画素４６ａと呼ぶこととする。そして注目基礎画素４６ａのうちのＲ画素、Ｇｒ画素、Ｇｂ画素、Ｂ画素、をそれぞれ、注目基礎Ｒ画素４６ａ（Ｒ）、注目基礎Ｇｒ画素４６ａ（Ｇｒ）、注目基礎Ｇｂ画素４６ａ（Ｇｂ）、注目基礎Ｂ画素４６ａ（Ｂ）と呼ぶこととする。
【００４８】
また図４に示すように、注目基礎Ｒ画素４６ａ（Ｒ）に対応する注目最終画素５２ａを注目最終Ｒ画素５２ａ（Ｒ）と呼ぶこととする。また、注目基礎Ｇｒ画素４６ａ（Ｇｒ）に対応する注目最終画素５２ａを注目最終Ｇｒ画素５２ａ（Ｇｒ）と呼ぶこととする。また、注目基礎Ｇｂ画素４６ａ（Ｇｂ）に対応する注目最終画素５２ａを注目最終Ｇｂ画素５２ａ（Ｇｂ）と呼ぶこととする。また、注目基礎Ｂ画素４６ａ（Ｂ）に対応する注目最終画素５２ａを注目最終Ｂ画素５２ａ（Ｂ）と呼ぶこととする。
【００４９】
図７に示すように、注目中間画素５０ａに相当する４個の注目最終画素５２ａのＲＧＢ画素値の決定にあたっては、注目中間画素５０ａを中心とする９個の中間画素５０の中間画素データの値が参照される。これら９個の中間画素５０は、基礎画像４０に含まれる３６個の基礎画素４６に相当する。以下、これらの３６個の基礎画素４６が属する画素群を参照画素群５４と呼ぶこととする。
【００５０】
図７に示すように、参照画素群５４には、Ｘ座標値が３〜８のいずれかでありＹ座標値が３〜８のいずれかである基礎画素４６が属する。
【００５１】
そして参照画素群５４に属する単色の基礎画素４６について、当該基礎画素４６の色とは異なる色の画素値を決定する補間処理が実行される。ここで実行される補間処理では、例えばサイン関数による補間や三角波フィルタによる補間等を用いることができる。
【００５２】
例えば参照画素群５４に属するＲ画素については、Ｇ画素値とＢ画素値が決定される。また例えば参照画素群５４に属するＧｒ画素、Ｇｂ画素については、Ｒ画素値とＢ画素値が決定される。また例えば参照画素群５４に属するＢ画素については、Ｒ画素値とＧ画素値が決定される。
【００５３】
そして本実施形態では例えば、参照画素群５４に属する基礎画素４６について、ＧＩｎｔｅｒ値が決定される。ＧＩｎｔｅｒ値は、Ｇ画素値の決定に用いられる値であり、輝度値に似たものである。ここでは例えば、基礎画素４６のＲ画素値、Ｇ画素値、及び、Ｂ画素値に基づいて、当該基礎画素４６のＧＩｎｔｅｒ値が決定される。
【００５４】
そして本実施形態では、公知のクラス分類適応処理により、このようにして決定されるＲ画素値、Ｇ画素値、Ｂ画素値、及び、ＧＩｎｔｅｒ値に基づいて、４個の注目基礎画素４６ａのそれぞれについて、当該注目基礎画素４６ａが属するクラスが決定される。上述のようにこのクラスは、学習により求められる係数に対応付けられるものである。
【００５５】
そして本実施形態では例えば、注目基礎Ｒ画素４６ａ（Ｒ）を中心とする２５個の基礎画素４６の画素値と、注目基礎Ｒ画素４６ａ（Ｒ）が属するクラスに対応付けられる係数と、に基づいて、注目最終Ｒ画素５２ａ（Ｒ）のＲＧＢ画素値が決定される。ここで注目基礎Ｒ画素４６ａ（Ｒ）を中心とする２５個の基礎画素４６が占める領域が図７では領域Ｒ１として示されている。領域Ｒ１は、基礎画像４０におけるＸ座標値が３〜７のいずれかでありＹ座標値が３〜７のいずれかである基礎画素４６によって占められる領域である。
【００５６】
ここで領域Ｒ１内のＲ画素のＲ画素値と、注目基礎Ｒ画素４６ａ（Ｒ）が属するクラスに対応付けられる係数と、に基づいて、注目最終Ｒ画素５２ａ（Ｒ）のＲ画素値が決定されてもよい。また領域Ｒ１内のＧｒ画素及びＧｂ画素のＧ画素値と、注目基礎Ｒ画素４６ａ（Ｒ）が属するクラスに対応付けられる係数と、に基づいて、注目最終Ｒ画素５２ａ（Ｒ）のＧ画素値が決定されてもよい。また領域Ｒ１内のＢ画素のＢ画素値と、注目基礎Ｒ画素４６ａ（Ｒ）が属するクラスに対応付けられる係数と、に基づいて、注目最終Ｒ画素５２ａ（Ｒ）のＢ画素値が決定されてもよい。
【００５７】
そして本実施形態では例えば、注目基礎Ｇｒ画素４６ａ（Ｇｒ）を中心とする２５個の基礎画素４６の画素値と、注目基礎Ｇｒ画素４６ａ（Ｇｒ）が属するクラスに対応付けられる係数と、に基づいて、注目最終Ｇｒ画素５２ａ（Ｇｒ）のＲＧＢ画素値が決定される。ここで注目基礎Ｇｒ画素４６ａ（Ｇｒ）を中心とする２５個の基礎画素４６が占める領域が図７では領域Ｒ２として示されている。領域Ｒ２は、基礎画像４０におけるＸ座標値が４〜８のいずれかでありＹ座標値が３〜７のいずれかである基礎画素４６によって占められる領域である。
【００５８】
ここで領域Ｒ２内のＲ画素のＲ画素値と、注目基礎Ｇｒ画素４６ａ（Ｇｒ）が属するクラスに対応付けられる係数と、に基づいて、注目最終Ｇｒ画素５２ａ（Ｇｒ）のＲ画素値が決定されてもよい。また領域Ｒ２内のＧｒ画素及びＧｂ画素のＧ画素値と、注目基礎Ｇｒ画素４６ａ（Ｇｒ）が属するクラスに対応付けられる係数と、に基づいて、注目最終Ｇｒ画素５２ａ（Ｇｒ）のＧ画素値が決定されてもよい。また領域Ｒ２内のＢ画素のＢ画素値と、注目基礎Ｇｒ画素４６ａ（Ｇｒ）が属するクラスに対応付けられる係数と、に基づいて、注目最終Ｇｒ画素５２ａ（Ｇｒ）のＢ画素値が決定されてもよい。
【００５９】
そして本実施形態では例えば、注目基礎Ｇｂ画素４６ａ（Ｇｂ）を中心とする２５個の基礎画素４６の画素値と、注目基礎Ｇｂ画素４６ａ（Ｇｂ）が属するクラスに対応付けられる係数と、に基づいて、注目最終Ｇｂ画素５２ａ（Ｇｂ）のＲＧＢ画素値が決定される。ここで注目基礎Ｇｂ画素４６ａ（Ｇｂ）を中心とする２５個の基礎画素４６が占める領域が図７では領域Ｒ３として示されている。領域Ｒ３は、基礎画像４０におけるＸ座標値が３〜７のいずれかでありＹ座標値が４〜８のいずれかである基礎画素４６によって占められる領域である。
【００６０】
ここで領域Ｒ３内のＲ画素のＲ画素値と、注目基礎Ｇｂ画素４６ａ（Ｇｂ）が属するクラスに対応付けられる係数と、に基づいて、注目最終Ｇｂ画素５２ａ（Ｇｂ）のＲ画素値が決定されてもよい。また領域Ｒ３内のＧｒ画素及びＧｂ画素のＧ画素値と、注目基礎Ｇｂ画素４６ａ（Ｇｂ）が属するクラスに対応付けられる係数と、に基づいて、注目最終Ｇｂ画素５２ａ（Ｇｂ）のＧ画素値が決定されてもよい。また領域Ｒ３内のＢ画素のＢ画素値と、注目基礎Ｇｂ画素４６ａ（Ｇｂ）が属するクラスに対応付けられる係数と、に基づいて、注目最終Ｇｂ画素５２ａ（Ｇｂ）のＢ画素値が決定されてもよい。
【００６１】
そして本実施形態では例えば、注目基礎Ｂ画素４６ａ（Ｂ）を中心とする２５個の基礎画素４６の画素値と、注目基礎Ｂ画素４６ａ（Ｂ）が属するクラスに対応付けられる係数と、に基づいて、注目最終Ｂ画素５２ａ（Ｂ）のＲＧＢ画素値が決定される。ここで注目基礎Ｂ画素４６ａ（Ｂ）を中心とする２５個の基礎画素４６が占める領域が図７では領域Ｒ４として示されている。領域Ｒ４は、基礎画像４０におけるＸ座標値が４〜８のいずれかでありＹ座標値が４〜８のいずれかである基礎画素４６によって占められる領域である。
【００６２】
ここで領域Ｒ４内のＲ画素のＲ画素値と、注目基礎Ｂ画素４６ａ（Ｂ）が属するクラスに対応付けられる係数と、に基づいて、注目最終Ｂ画素５２ａ（Ｂ）のＲ画素値が決定されてもよい。また領域Ｒ４内のＧｒ画素及びＧｂ画素のＧ画素値と、注目基礎Ｂ画素４６ａ（Ｂ）が属するクラスに対応付けられる係数と、に基づいて、注目最終Ｂ画素５２ａ（Ｂ）のＧ画素値が決定されてもよい。また領域Ｒ４内のＢ画素のＢ画素値と、注目基礎Ｂ画素４６ａ（Ｂ）が属するクラスに対応付けられる係数と、に基づいて、注目最終Ｂ画素５２ａ（Ｂ）のＢ画素値が決定されてもよい。
【００６３】
なお注目最終画素５２ａのＲＧＢ画素値の決定方法は上述のものには限定されない。
【００６４】
また本実施形態では、図８に示すように、中間画像４２の周囲にも画素が存在するものとして補間処理や最終画素５２の画素値の決定処理が実行される。ここで例えば、中間画像４２内の中間画素５０の中間画素データの値が、中間画像４２の辺や頂点に対して対称の位置に存在すると仮定される画素の中間画素データの値として設定されるようにしてもよい。図８には、中間画像４２内の中間画素５０の中間画素データの値と中間画像４２の周囲において存在が仮定される画素の中間画素データの値との対応関係の一例が示されている。図８には、存在が仮定される画素が二点鎖線で示されている。また図８では、中間画像４２内の中間画素５０の中間画素データの値が、中間画像４２の周囲において存在が仮定される３個の画素の中間画素データの値として設定されることが矢印によって模式的に示されている。
【００６５】
図９Ａには、図７の領域Ｒ１内の画素群に相当する、注目基礎Ｒ画素４６ａ（Ｒ）を中心とする画素群が示されている。図９Ｂには、図７の領域Ｒ２内の画素群に相当する、注目基礎Ｇｒ画素４６ａ（Ｇｒ）を中心とする画素群が示されている。図９Ｃには、図７の領域Ｒ３内の画素群に相当する、注目基礎Ｇｂ画素４６ａ（Ｇｂ）を中心とする画素群が示されている。図９Ｄには、図７の領域Ｒ４内の画素群に相当する、注目基礎Ｂ画素４６ａ（Ｂ）を中心とする画素群が示されている。
【００６６】
図９Ａ〜図９Ｄに示すように、基礎画素４６の種類によって、当該基礎画素４６を中心とした際の周辺の画素の種類のパターンが異なる。そのため従来のデモザイク処理における補間処理は、図９Ａに示す画素群、図９Ｂに示す画素群、図９Ｃに示す画素群、及び、図９Ｄに示す画素群に対して、異なるアルゴリズムによって実行される必要があった。例えば当該アルゴリズムがＧＰＵ２０ｂにより実装される場合には、基礎画像４０に含まれる基礎画素４６の種類に対応付けられるシェーダプログラムを実行する必要があった。
【００６７】
また基礎画像４０の周囲に存在すると仮定される基礎画素４６については当該基礎画素４６の種類を考慮してアルゴリズムを実行する必要があった。
【００６８】
このように従来のデモザイク処理では、基礎画素４６の種類や基礎画素４６の位置に応じた様々な分岐処理を実装する必要があった。そのため従来のデモザイク処理は、分岐処理の実行効率が悪いＧＰＵ２０ｂでの実行には不向きであった。
【００６９】
本実施形態に係る中間画像４２の中間画素５０は基礎画像４０の基礎画素４６とは異なり、各中間画素５０に、Ｒ画素、Ｇｒ画素、Ｇｂ画素、及び、Ｂ画素のそれぞれの画素値に相当する中間画素データの値が設定されている。そしてすべての中間画素５０には同じ種類の中間画素データの値が設定される。そのため中間画素５０の種類に応じた補間処理を実行する必要がない。また中間画像４２の周囲に存在すると仮定される中間画素５０について当該中間画素５０の種類を考慮する必要がない。そのため本実施形態では分岐処理を実装する必要性が低い。そのため本実施形態に係るデモザイク処理は、ＧＰＵ２０ｂでの実装に適している。
【００７０】
また本実施形態では、中間画像４２に含まれるすべての中間画素５０に、Ｒ画素、Ｇｒ画素、Ｇｂ画素、及び、Ｂ画素のそれぞれの画素値に相当する中間画素データの値が設定されている。そのため本実施形態に係る画像処理装置１０で実行される処理は、ＳＩＭＤ化が容易である。
【００７１】
また従来のデモザイク処理では、特定の基礎画素４６の特定の画素値を何度も決定する必要があった。例えば図９Ａ〜図９Ｄの例では、座標値が（４，４）のＢ画素である基礎画素４６のＲ画素値やＧ画素値について４度決定される必要があった。そのため処理の無駄が生じていた。
【００７２】
一方、本実施形態に係る画像処理装置１０における補間処理では、図７の例では、注目最終画素５２ａのＲＧＢ画素値の算出に際して、参照画素群５４に属する基礎画素４６に対して補間処理が１度だけ実行される。そのため本実施形態に係る画像処理装置１０によれば上述した処理の無駄が生じず高効率な処理の実行が可能となる。
【００７３】
なお本実施形態に係るデモザイク処理はＣＰＵ２０ａで実行されてもＧＰＵ２０ｂで実行されてもよい。また上述したようにＧＰＵ２０ｂによるＳＩＭＤ化によって本実施形態に係るデモザイク処理はさらなる効率化が可能となる。またＣＰＵ２０ａがマルチコアプロセッサである場合にＣＰＵ２０ａによるＳＩＭＤ化を行うことによっても、本実施形態に係るデモザイク処理はさらなる効率化が可能となる。
【００７４】
以下、本実施形態に係る画像処理装置１０の機能、及び、画像処理装置１０で実行される処理についてさらに説明する。
【００７５】
図１０は、本実施形態に係る画像処理装置１０で実装される機能の一例を示す機能ブロック図である。なお、本実施形態に係る画像処理装置１０で、図１０に示す機能のすべてが実装される必要はなく、また、図１０に示す機能以外の機能が実装されていても構わない。
【００７６】
図１０に示すように、画像処理装置１０は、機能的には例えば、基礎画像記憶部６０、基礎画像取得部６２、中間画像生成部６４、中間画像記憶部６６、補間処理実行部６８、画素値決定部７０、最終画像生成部７２、最終画像記憶部７４、ソート部７６、を含んでいる。基礎画像記憶部６０、中間画像記憶部６６、最終画像記憶部７４は、記憶部２２を主として実装される。基礎画像取得部６２、中間画像生成部６４、補間処理実行部６８、画素値決定部７０、最終画像生成部７２、ソート部７６は、プロセッサ２０を主として実装される。
【００７７】
以上の機能は、コンピュータである画像処理装置１０にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ２０で実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介して画像処理装置１０に供給されてもよい。
【００７８】
基礎画像記憶部６０は、本実施形態では例えば、単色の基礎画素４６が所定の色のパターンで複数配置された画素セット４８を複数含み、画素セット４８が縦横に並んで配置されている基礎画像４０を記憶する。
【００７９】
基礎画像取得部６２は、本実施形態では例えば、基礎画像記憶部６０に記憶されている基礎画像４０を取得する。
【００８０】
中間画像生成部６４は、本実施形態では例えば、基礎画像４０に基づいて、画素セット４８に含まれる複数の基礎画素４６の画素値が当該画素セット４８に対応付けられる１の中間画素５０の中間画素データの値として設定された中間画像４２を生成する。ここで中間画像生成部６４が、基礎画像取得部６２が取得する基礎画像４０に基づいて、中間画像４２を生成してもよい。また中間画像生成部６４は、生成する中間画像４２を、中間画像記憶部６６に記憶させてもよい。
【００８１】
中間画像記憶部６６は、本実施形態では例えば、中間画像生成部６４が生成する中間画像４２を記憶する。上述のように中間画像記憶部６６は、ウェーブフロントやワープに属するすべてのスレッド間で共有できる共有メモリによって実装されてもよい。
【００８２】
補間処理実行部６８は、本実施形態では例えば、注目中間画素５０ａ又は注目中間画素５０ａに隣接する中間画素５０に対応付けられる画素セット４８に含まれる基礎画素４６についての、当該基礎画素４６の色とは異なる色の画素値を決定する。ここで例えば、参照画素群５４に属する基礎画素４６の画素値に基づいて、参照画素群５４に属する各基礎画素４６について、当該基礎画素４６の色とは異なる色の画素値が決定されてもよい。
【００８３】
ここで上述のように、補間処理実行部６８が、１の基礎画素４６については、当該基礎画素４６の色とは異なる色の画素値を１度だけ決定するようにしてもよい。
【００８４】
画素値決定部７０は、本実施形態では例えば、注目中間画素５０ａに対応付けられる少なくとも１の最終画素５２の複数色の画素値を決定する。ここで例えば、注目中間画素５０ａの中間画素データの値、及び、注目中間画素５０ａに隣接する中間画素５０の中間画素データの値、に基づいて、注目中間画素５０ａに対応付けられる少なくとも１の最終画素５２の複数色の画素値が決定されてもよい。また例えば、補間処理実行部６８で決定される画素値に応じた係数と、注目中間画素５０ａ及び注目中間画素５０ａに隣接する中間画素５０の中間画素データの値と、に基づいて、注目中間画素５０ａに対応付けられる少なくとも１の最終画素５２の複数色の画素値が決定されてもよい。なお係数を示すデータや、補間処理実行部６８で決定される画素値と係数との対応関係を示すデータは、画素値決定部７０により保持されていてもよい。
【００８５】
最終画像生成部７２は、本実施形態では例えば、複数の最終画素５２についての複数色の画素値に基づいて、カラー画像である最終画像４４を生成する。最終画像生成部７２は、生成した最終画像４４を表示部３０に表示させてもよい。また最終画像生成部７２は、生成した最終画像４４を最終画像記憶部７４に記憶させてもよい。
【００８６】
最終画像記憶部７４は、本実施形態では例えば、最終画像生成部７２が生成する最終画像４４を記憶する。ここでユーザによる操作部２８の操作に応じて、最終画像記憶部７４に記憶されている最終画像４４が表示部３０に表示されてもよい。
【００８７】
ソート部７６は、本実施形態では例えば、ベクトル変数の要素の値などといった、４つの値をソートして、２番目に大きな値と２番目に小さな値を特定する。例えば本実施形態におけるデモザイク処理において、ベクトル変数の要素の値などといった、４つの値をソートして、２番目に大きな値と２番目に小さな値を特定する必要がある場合に、ソート部７６による処理が実行される。
【００８８】
ここで、本実施形態に係る画像処理装置１０で行われる最終画像４４の生成処理の流れの一例を、図１１に例示するフロー図を参照しながら説明する。
【００８９】
まず、基礎画像取得部６２が、基礎画像記憶部６０に記憶されている基礎画像４０を取得する（Ｓ１０１）。
【００９０】
そして中間画像生成部６４が、Ｓ１０１に示す処理で取得された基礎画像４０に基づいて、中間画像４２を生成する（Ｓ１０２）。
【００９１】
そして補間処理実行部６８が、Ｓ１０２に示す処理で生成された中間画像４２に含まれる、Ｓ１０４〜Ｓ１１３に示す処理が実行されていない中間画素５０を、注目中間画素５０ａとして選択する（Ｓ１０３）。
【００９２】
そして補間処理実行部６８が、Ｓ１０３に示す処理で選択された注目中間画素５０ａに基づいて、参照画素群５４を特定する（Ｓ１０４）。
【００９３】
そして補間処理実行部６８が、Ｓ１０４に示す処理で特定された参照画素群５４に属する基礎画素４６のそれぞれについて、当該基礎画素４６のＲ画素値を決定する（Ｓ１０５）。
【００９４】
そして補間処理実行部６８が、Ｓ１０４に示す処理で特定された参照画素群５４に属する基礎画素４６のそれぞれについて、当該基礎画素４６のＧ画素値を決定する（Ｓ１０６）。
【００９５】
そして補間処理実行部６８が、Ｓ１０４に示す処理で特定された参照画素群５４に属する基礎画素４６のそれぞれについて、当該基礎画素４６のＢ画素値を決定する（Ｓ１０７）。
【００９６】
そして補間処理実行部６８が、Ｓ１０４に示す処理で特定された参照画素群５４に属する基礎画素４６のそれぞれについて、Ｓ１０５〜Ｓ１０７に示す処理で決定された画素値に基づいて、ＧＩｎｔｅｒ値を決定する（Ｓ１０８）。
【００９７】
そして画素値決定部７０が、Ｓ１０３に示す処理で選択された注目中間画素５０ａに対応付けられる注目基礎画素４６ａのそれぞれについて、Ｓ１０５〜Ｓ１０８に示す処理で決定された値に対応付けられる係数を取得する（Ｓ１０９）。
【００９８】
そして画素値決定部７０が、Ｓ１０５〜Ｓ１０８に示す処理で決定された値、及び、Ｓ１０９に示す処理で取得された係数に基づいて、注目最終Ｒ画素５２ａ（Ｒ）のＲＧＢ画素値を決定する（Ｓ１１０）。ここで例えば、注目最終Ｒ画素５２ａ（Ｒ）を中心とする所定の大きさの領域内に存在する基礎画素４６についてＳ１０５〜Ｓ１０８に示す処理で決定された値に基づいて、注目最終Ｒ画素５２ａ（Ｒ）のＲＧＢ画素値が決定されてもよい。
【００９９】
そして画素値決定部７０が、Ｓ１０５〜Ｓ１０８に示す処理で決定された値、及び、Ｓ１０９に示す処理で取得された係数に基づいて、注目最終Ｇｒ画素５２ａ（Ｇｒ）のＲＧＢ画素値を決定する（Ｓ１１１）。ここで例えば、注目最終Ｇｒ画素５２ａ（Ｇｒ）を中心とする所定の大きさの領域内に存在する基礎画素４６についてＳ１０５〜Ｓ１０８に示す処理で決定された値に基づいて、注目最終Ｇｒ画素５２ａ（Ｇｒ）のＲＧＢ画素値が決定されてもよい。
【０１００】
そして画素値決定部７０が、Ｓ１０５〜Ｓ１０８に示す処理で決定された値、及び、Ｓ１０９に示す処理で取得された係数に基づいて、注目最終Ｇｂ画素５２ａ（Ｇｂ）のＲＧＢ画素値を決定する（Ｓ１１２）。ここで例えば、注目最終Ｇｂ画素５２ａ（Ｇｂ）を中心とする所定の大きさの領域内に存在する基礎画素４６についてＳ１０５〜Ｓ１０８に示す処理で決定された値に基づいて、注目最終Ｇｂ画素５２ａ（Ｇｂ）のＲＧＢ画素値が決定されてもよい。
【０１０１】
そして画素値決定部７０が、Ｓ１０５〜Ｓ１０８に示す処理で決定された値、及び、Ｓ１０９に示す処理で取得された係数に基づいて、注目最終Ｂ画素５２ａ（Ｂ）のＲＧＢ画素値を決定する（Ｓ１１３）。ここで例えば、注目最終Ｂ画素５２ａ（Ｂ）を中心とする所定の大きさの領域内に存在する基礎画素４６についてＳ１０５〜Ｓ１０８に示す処理で決定された値に基づいて、注目最終Ｂ画素５２ａ（Ｂ）のＲＧＢ画素値が決定されてもよい。
【０１０２】
そして画素値決定部７０は、Ｓ１０３に示す処理ですべての中間画素５０が注目中間画素５０ａとして選択されたか否かを確認する（Ｓ１１４）。
【０１０３】
ここですべての中間画素５０が注目中間画素５０ａとして選択されていないことが確認された場合は（Ｓ１１４：Ｎ）、Ｓ１０３に示す処理に戻る。
【０１０４】
一方、すべての中間画素５０が注目中間画素５０ａとして選択されたことが確認されたとする（Ｓ１１４：Ｙ）。この場合は、最終画像生成部７２が、Ｓ１１０〜Ｓ１１３に示す処理で決定されたＲＧＢ画素値に基づいて最終画像４４を生成して、最終画像記憶部７４に記憶させる（Ｓ１１５）。そして本処理例に示す処理は終了される。
【０１０５】
次に本実施形態に係る画像処理装置１０で行われる、４つの値のソート処理の流れの一例を、図１２に例示するフロー図を参照しながら説明する。なお本処理例ではソートされる４つの値のそれぞれを、第１の値Ａ１、第２の値Ａ２、第３の値Ａ３、及び、第４の値Ａ４とする。
【０１０６】
まずソート部７６は、第１の値Ａ１と第４の値Ａ４のうちの最大値を第１中間値Ｂ１として決定する（Ｓ２０１）。
【０１０７】
そしてソート部７６は、第２の値Ａ２と第３の値Ａ３のうちの最大値を第２中間値Ｂ２として決定する（Ｓ２０２）。
【０１０８】
そしてソート部７６は、第１の値Ａ１と第４の値Ａ４のうちの最小値を第４中間値Ｂ４として決定する（Ｓ２０３）。
【０１０９】
そしてソート部７６は、第２の値Ａ２と第３の値Ａ３のうちの最小値を第３中間値Ｂ３として決定する（Ｓ２０４）。
【０１１０】
そしてソート部７６は、第１中間値Ｂ１と第２中間値Ｂ２のうちの最大値を第１最終値Ｃ１として決定する（Ｓ２０５）。
【０１１１】
そしてソート部７６は、第３中間値Ｂ３と第４中間値Ｂ４のうちの最大値を第３最終値Ｃ３として決定する（Ｓ２０６）。
【０１１２】
そしてソート部７６は、第１中間値Ｂ１と第２中間値Ｂ２のうちの最小値を第２最終値Ｃ２として決定する（Ｓ２０７）。
【０１１３】
そしてソート部７６は、第３中間値Ｂ３と第４中間値Ｂ４のうちの最小値を第４最終値Ｃ４として決定する（Ｓ２０８）。
【０１１４】
以上の処理によって、第１最終値Ｃ１、第２最終値Ｃ２、第３最終値Ｃ３、第４最終値Ｃ４は、大きい値から順にソートされたこととなる。そのため２番目に大きな値は第２最終値Ｃ２であり、２番目に小さな値は第３最終値Ｃ３であることが特定できる。
【０１１５】
図１２に示すソート処理では、最大値又は最小値を算出する算術演算のみで、分岐処理を実行することなく、所定数のステップ数によって４つの値をソートできることとなる。
【０１１６】
以上で説明したソート部７６によるソート処理は、ＣＰＵ２０ａで実行されてもＧＰＵ２０ｂで実行されてもよい。またＧＰＵ２０ｂによるＳＩＭＤ化によって４組の４つの値について並列でソート処理が実行されてもよい。またＣＰＵ２０ａがマルチコアプロセッサである場合にＣＰＵ２０ａによるＳＩＭＤ化によって４組の４つの値について並列でソート処理が実行されてもよい。
【０１１７】
なお上述の処理は、５つの値のうちから、２番目に大きな値と２番目に小さな値を特定する処理に応用できる。ここで例えば、第１の値Ａ１、第２の値Ａ２、第３の値Ａ３、第４の値Ａ４に加え、第５の値Ａ５が存在することとする。
【０１１８】
この場合例えば、Ｓ２０８に示す処理の実行後、「第１最終値Ｃ１と第２最終値Ｃ２のうちの最大値」と、「第２最終値Ｃ２と第５の値Ａ５のうちの最大値」とのうちの最小値を特定すればよい。この場合、このようにして特定される値が、第１の値Ａ１〜第５の値Ａ５のうちの２番目に大きな値であることとなる。
【０１１９】
また例えば、Ｓ２０８に示す処理の実行後、「第３最終値Ｃ３と第４最終値Ｃ４のうちの最大値」と、「第４最終値Ｃ４と第５の値Ａ５のうちの最大値」とのうちの最小値を特定すればよい。この場合、このようにして特定される値が、第１の値Ａ１〜第５の値Ａ５のうちの２番目に小さな値であることとなる。
【０１２０】
なお、本発明は上述の実施形態に限定されるものではない。
【０１２１】
例えば、画像処理装置１０で実装される機能が、基礎画像４０を生成するカメラで実装されてもよい。
【０１２２】
またベイヤ配列の画像でなくても、単色の基礎画素４６が所定の色のパターンで複数配置された画素セット４８を複数含み、画素セット４８が縦横に並んで配置されている画像であれば、本発明は適用可能である。
【０１２３】
また、上記の具体的な文字列や数値及び図面中の具体的な文字列や数値は例示であり、これらの文字列や数値には限定されない。
【図１】
2019082232.tif 000003
【図２】
2019082232.tif 000004
【図３】
2019082232.tif 000005
【図４】
2019082232.tif 000006
【図５】
2019082232.tif 000007
【図６】
2019082232.tif 000008
【図７】
2019082232.tif 000009
【図８】
2019082232.tif 000010
【図９Ａ】
2019082232.tif 000011
【図９Ｂ】
2019082232.tif 000012
【図９Ｃ】
2019082232.tif 000013
【図９Ｄ】
2019082232.tif 000014
【図１０】
2019082232.tif 000015
【図１１】
2019082232.tif 000016
【図１２】
2019082232.tif 000017
【国際調査報告】
2019082232.tif 000018
2019082232.tif 000019
2019082232.tif 000020