(57)【特許請求の範囲】
【請求項１】
記憶領域に記憶された入力画像データに対して画像処理を実行して出力画像データを出力するオブジェクトが複数連結されたオブジェクト群により画像処理を実行する画像処理装置であって、
前記入力画像データを前記出力画像データで上書き可能か否かを前記画像処理の各々の処理内容によって判定する判定部と、
前記判定部により上書き可能と判定された画像処理について、該画像処理の出力画像データの記憶領域を上書き可能な入力画像データが記憶された記憶領域を含む領域とする設定、及び前記オブジェクト群による画像処理を実行する制御を行う制御部と、
前記入力画像データの処理対象とする部分を複数の分割画像データに分割する分割部と、  を備え、
前記制御部は、前記分割画像データ毎に前記オブジェクト群による画像処理を実行する制御を行い、
前記分割部は、キャッシュメモリ及びローカルメモリを有するグラフィックス・プロセッシング・ユニットにより前記画像処理が実行される場合、前記入力画像データを前記グラフィックス・プロセッシング・ユニットのラスト・レベル・キャッシュの容量に応じたサイズで分割する、
画像処理装置。
【請求項２】
前記制御部は、出力画像データのサイズが前記上書き可能な入力画像データのサイズより大きい場合、前記出力画像データの記憶領域として、前記上書き可能な入力画像データが記憶された記憶領域に対して、出力画像データのサイズと前記上書き可能な入力画像データのサイズとの差分以上の所定範囲内の容量を増加させた領域を設定する
請求項１記載の画像処理装置。
【請求項３】
前記オブジェクト群の最終段のオブジェクトにより実行された画像処理の処理結果の出力画像データを出力する出力部と、
ユーザからの入力を受け付ける受付部と、
をさらに備え、
前記制御部は、前記受付部に前記処理結果が異常であることが受け付けられた場合、前記判定部により上書き可能と判定された少なくとも１つの画像処理について、前記出力画像データの記憶領域を前記入力画像データの記憶領域とは異なる領域とする設定、及び前記オブジェクト群による画像処理を再度実行する制御を行う
請求項１又は請求項２記載の画像処理装置。
【請求項４】
前記制御部は、前記判定部による判定が実行されるプロセッサとは異なるプロセッサにより前記画像処理を実行する制御を行う
請求項１から請求項３の何れか１項記載の画像処理装置。
【請求項５】
前記制御部は、ローカルメモリを有するグラフィックス・プロセッシング・ユニットにより前記画像処理を実行する制御を行う
請求項４記載の画像処理装置。
【請求項６】
記憶領域に記憶された入力画像データに対して画像処理を実行して出力画像データを出力するオブジェクトが複数連結されたオブジェクト群により画像処理を実行する画像処理装置であって、
前記入力画像データを前記出力画像データで上書き可能か否かを前記画像処理の各々の処理内容によって判定する判定部と、
前記判定部により上書き可能と判定された画像処理について、該画像処理の出力画像データの記憶領域を上書き可能な入力画像データが記憶された記憶領域を含む領域とする設定、及び前記オブジェクト群による画像処理を実行する制御を行う制御部と、
前記入力画像データの処理対象とする部分を複数の分割画像データに分割する分割部と、
を備え、
前記制御部は、前記分割画像データ毎に前記オブジェクト群による画像処理を実行する制御を行い、
前記分割部は、キャッシュメモリを有するセントラル・プロセッシング・ユニットにより前記画像処理が実行される場合、前記入力画像データを前記セントラル・プロセッシング・ユニットのラスト・レベル・キャッシュ以外の予め定められたキャッシュメモリの容量に応じたサイズで分割する
画像処理装置。
【請求項７】
記憶領域に記憶された入力画像データに対して画像処理を実行して出力画像データを出力するオブジェクトが複数連結されたオブジェクト群により画像処理を実行する画像処理装置による画像処理方法であって、
前記入力画像データを前記出力画像データで上書き可能か否かを前記画像処理の各々の処理内容によって判定し、
上書き可能と判定した画像処理について、該画像処理の出力画像データの記憶領域を上書き可能な入力画像データが記憶された記憶領域を含む領域とする設定、及び前記オブジェクト群による画像処理を実行する制御を行う
ことを含み、
前記オブジェクト群による画像処理は、
前記入力画像データの処理対象とする部分を複数の分割画像データに分割し、前記分割は、キャッシュメモリ及びローカルメモリを有するグラフィックス・プロセッシング・ユニットにより前記画像処理が実行される場合、前記入力画像データを前記グラフィックス・プロセッシング・ユニットのラスト・レベル・キャッシュの容量に応じたサイズで分割し、
前記分割画像データ毎に前記オブジェクト群による画像処理を実行することを含む、
画像処理方法。
【請求項８】
記憶領域に記憶された入力画像データに対して画像処理を実行して出力画像データを出力するオブジェクトが複数連結されたオブジェクト群により画像処理を実行する画像処理装置による画像処理方法であって、
前記入力画像データを前記出力画像データで上書き可能か否かを前記画像処理の各々の処理内容によって判定し、
上書き可能と判定した画像処理について、該画像処理の出力画像データの記憶領域を上書き可能な入力画像データが記憶された記憶領域を含む領域とする設定、及び前記オブジェクト群による画像処理を実行する制御を行う
ことを含み、
前記オブジェクト群による画像処理は、
前記入力画像データの処理対象とする部分を複数の分割画像データに分割し、前記分割は、キャッシュメモリを有するセントラル・プロセッシング・ユニットにより前記画像処理が実行される場合、前記入力画像データを前記セントラル・プロセッシング・ユニットのラスト・レベル・キャッシュ以外の予め定められたキャッシュメモリの容量に応じたサイズで分割し、
前記分割画像データ毎に前記オブジェクト群による画像処理を実行することを含む、
画像処理方法。
【請求項９】
コンピュータを、請求項１から請求項６の何れか１項記載の画像処理装置の判定部、及び制御部として機能させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の技術は、画像処理装置、画像処理方法、及び画像処理プログラムに関する。
【背景技術】
【０００２】
従来、記憶領域に記憶された入力データに対して処理を行って出力データを出力する場合に、入力データに上書きして出力データを記憶するインプレース（In-place）処理を行う技術が知られている（特表２００７−５２４１５６号公報参照）。【０００３】
また、上記インプレース処理を画像処理に適用し、記憶領域に記憶された入力画像データに対して画像処理を行って得られた出力画像データを、入力画像データに上書きして記憶する技術も知られている（特表２０１１−５２１３７０号公報及び特表２０１５−５０８５２８号公報参照）。なお、以下では、入力画像データが記憶されている記憶領域と異なる記憶領域に出力画像データを記憶する処理をアウトプレース（Out-place）処理という。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
前述したインプレース処理を行うことで、アウトプレース処理を行う場合に比較して、記憶領域の使用量を低減することができる。しかしながら、処理の内容によってはインプレース処理を行えない場合がある。この場合、インプレース処理を行ってしまうと、記憶領域に記憶された出力データは、処理が正常に行われて得られたデータとは異なるデータとなってしまう。【０００５】
特表２００７−５２４１５６号公報、特表２０１１−５２１３７０号公報、及び特表２０１５−５０８５２８号公報に記載の技術では、入力データに対する処理が、インプレース処理が可能であるか否かは考慮していない。また、入力データに対する処理が、インプレース処理が可能であるか否かをユーザに判断させることが考えられるが、この場合、ユーザの負担が増大してしまう。【０００６】
本開示の技術は、インプレース処理が可能であるか否かをユーザに判断させる場合に比較して、ユーザの負担を軽減して、画像処理の記憶領域の使用量を低減することができる画像処理装置、画像処理方法、及び画像処理プログラムを提供する。
【課題を解決するための手段】
【０００７】
本発明の第１の態様の画像処理装置は、記憶領域に記憶された入力画像データに対して画像処理を実行して出力画像データを出力するオブジェクトが複数連結されたオブジェクト群により画像処理を実行する画像処理装置であって、入力画像データを出力画像データで上書き可能か否かを画像処理の各々の処理内容によって判定する判定部と、判定部により上書き可能と判定された画像処理について、画像処理の出力画像データの記憶領域を上書き可能な入力画像データが記憶された記憶領域を含む領域とする設定、及びオブジェクト群による画像処理を実行する制御を行う制御部と、を備えている。【０００８】
なお、本発明の第２の態様の画像処理装置は、第１の態様の画像処理装置において、制御部が、出力画像データのサイズが上書き可能な入力画像データのサイズより大きい場合、出力画像データの記憶領域として、上書き可能な入力画像データが記憶された記憶領域に対して、出力画像データのサイズと上書き可能な入力画像データのサイズとの差分以上の所定範囲内の容量を増加させた領域を設定してもよい。【０００９】
また、本発明の第３の態様の画像処理装置は、第１の態様又は第２の態様の画像処理装置において、オブジェクト群の最終段のオブジェクトにより実行された画像処理の処理結果の出力画像データを出力する出力部と、ユーザからの入力を受け付ける受付部と、をさらに備え、制御部が、受付部に処理結果が異常であることが受け付けられた場合、判定部により上書き可能と判定された少なくとも１つの画像処理について、出力画像データの記憶領域を入力画像データの記憶領域とは異なる領域とする設定、及びオブジェクト群による画像処理を再度実行する制御を行ってもよい。【００１０】
また、本発明の第４の態様の画像処理装置は、第１の態様から第３の態様の何れか１つの態様の画像処理装置において、制御部が、判定部による判定が実行されるプロセッサとは異なるプロセッサにより画像処理を実行する制御を行ってもよい。【００１１】
特に、本発明の第５の態様の画像処理装置は、第４の態様の画像処理装置において、制御部が、ローカルメモリを有するグラフィックス・プロセッシング・ユニットにより画像処理を実行する制御を行ってもよい。【００１２】
また、本発明の第６の態様の画像処理装置は、第１の態様から第５の態様の何れか１つの態様の画像処理装置において、入力画像データの処理対象とする部分を分割画像データに分割する分割部をさらに備え、制御部が、分割画像データ毎にオブジェクト群による画像処理を実行する制御を行ってもよい。【００１３】
特に、本発明の第７の態様の画像処理装置は、第６の態様の画像処理装置において、分割部が、キャッシュメモリ及びローカルメモリを有するグラフィックス・プロセッシング・ユニットにより画像処理が実行される場合、入力画像データをグラフィックス・プロセッシング・ユニットのラスト・レベル・キャッシュの容量に応じたサイズで分割してもよい。【００１４】
また、本発明の第８の態様の画像処理装置は、第６の態様又は第７の態様の画像処理装置において、分割部が、キャッシュメモリを有するセントラル・プロセッシング・ユニットにより画像処理が実行される場合、入力画像データをセントラル・プロセッシング・ユニットのラスト・レベル・キャッシュ以外の予め定められたキャッシュメモリの容量に応じたサイズで分割してもよい。【００１５】
本発明の第９の態様の画像処理方法は、記憶領域に記憶された入力画像データに対して画像処理を実行して出力画像データを出力するオブジェクトが複数連結されたオブジェクト群により画像処理を実行する画像処理装置による画像処理方法であって、入力画像データを出力画像データで上書き可能か否かを画像処理の各々の処理内容によって判定し、上書き可能と判定した画像処理について、画像処理の出力画像データの記憶領域を上書き可能な入力画像データが記憶された記憶領域を含む領域とする設定、及びオブジェクト群による画像処理を実行する制御を行うものである。【００１６】
本発明の第１０の態様の画像処理プログラムは、コンピュータを、本発明の第１の態様から第８の態様の何れか１つの態様の画像処理装置の判定部、及び制御部として機能させるためのものである。
【発明の効果】
【００１７】
本発明の一実施形態によれば、インプレース処理が可能であるか否かをユーザに判断させる場合に比較して、ユーザの負担を軽減して、画像処理の記憶領域の使用量を低減することができる。
【図面の簡単な説明】
【００１８】
【図１】各実施の形態に係る画像処理装置として機能するコンピュータの構成の一例を示すブロック図である。
【図２Ａ】画像処理ＤＡＧの一例を示す概略図である。
【図２Ｂ】画像処理ＤＡＧに入出力用のメモリを加えた場合の概略図である。
【図３】画像処理ＤＡＧの一例を示す概略図である。
【図４】第１の実施の形態に係る処理制御部の機能的な構成の一例を示すブロック図である。
【図５】各実施の形態に係る特徴情報の一例を示す概略図である。
【図６】インプレース処理を行う場合の画像処理ＤＡＧの一例を示す概略図である。
【図７】インプレース処理を行う場合の画像処理ＤＡＧの一例を示す概略図である。
【図８】第１の実施の形態に係る画像処理プログラムの処理の流れを示すフローチャートである。
【図９】第２の実施の形態に係る処理制御部の機能的な構成の一例を示すブロック図である。
【図１０】入力画像の分割処理の説明に供する概略図である。
【図１１】画像処理モジュールが部分処理に分割された画像処理ＤＡＧの一例を示す概略図である。
【図１２】第２の実施の形態に係る画像処理プログラムの処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、図面を参照して、本開示の技術を実施するための形態例を詳細に説明する。
【００２０】
［第１の実施の形態］
まず、図１を参照して、画像処理装置として機能するコンピュータ１０の構成を説明する。なお、コンピュータ１０は、複写機、プリンタ、ファクシミリ装置、これらの装置の機能を兼ね備えた複合機、及びスキャナ等の内部で画像処理を行う画像取扱機器に組み込まれたコンピュータであってもよい。また、コンピュータ１０は、ＰＣ（Personal Computer）等の独立したコンピュータであってもよく、ＰＤＡ（Personal Digital Assistant）及び携帯電話機等の携帯機器に組み込まれたコンピュータであってもよい。
【００２１】
図１に示すように、本実施の形態に係るコンピュータ１０は、第１演算部１２Ａ、第２演算部１２Ｂ、メモリ１４、表示部１６、操作部１８、記憶部２０、画像データ供給部２２、及び画像出力部２４を備えている。また、第１演算部１２Ａ、第２演算部１２Ｂ、メモリ１４、表示部１６、操作部１８、記憶部２０、画像データ供給部２２、及び画像出力部２４の各部は、バス２６を介して互いに接続されている。
【００２２】
本実施の形態に係る第１演算部１２Ａは、コンピュータ１０のメイン・プロセッサであり、一例としてＣＰＵ（Central Processing Unit）である。また、本実施の形態に係る第２演算部１２Ｂは、一例として内部にローカルメモリ１３を有するＧＰＵ（Graphics Processing Unit）である。なお、第２演算部１２Ｂは、第１演算部１２Ａと同じ種類のＣＰＵでもよいし、異なる種類のＣＰＵでもよい。また、第２演算部１２Ｂは、第１演算部１２Ａに内蔵されたＧＰＵでもよい。また、第２演算部１２Ｂは内部にローカルメモリ１３を有さないＧＰＵでもよい。また、第１演算部１２Ａ及び第２演算部１２Ｂは、ＦＰＧＡ（Field Programmable Gate Array）等の演算器でもよい。
【００２３】
メモリ１４は、第１演算部１２Ａ及び第２演算部１２Ｂが一時的にデータを記憶する不揮発性の記憶手段である。本実施の形態に係る第２演算部１２Ｂにより画像処理を行う場合、第１演算部１２Ａはメモリ１４又は記憶部２０の記憶領域に記憶された画像データを第２演算部１２Ｂにバス２６を介して転送する。そして、第２演算部１２Ｂは、第１演算部１２Ａから転送された画像データをローカルメモリ１３に記憶し、記憶した画像データに対して画像処理を行う。なお、第２演算部１２Ｂは、メモリ１４又は記憶部２０に記憶された画像データを直接読み出して画像処理を行ってもよい。
【００２４】
コンピュータ１０が前述した画像取扱機器に組み込まれている場合、表示部１６及び操作部１８は、例えば画像取扱機器に設けられたＬＣＤ（Liquid Crystal Display）等の表示パネル及びテンキー等が適用される。また、コンピュータ１０が独立したコンピュータである場合、表示部１６及び操作部１８は、例えばコンピュータ１０に接続されたディスプレイ、及びキーボード、マウス等が適用される。また、表示部１６及び操作部１８は、タッチパネル及びディスプレイが一体化して構成されたタッチパネルディスプレイ等でもよい。また、記憶部２０は、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、及びフラッシュメモリ等の不揮発性の記憶媒体が適用される。
【００２５】
画像データ供給部２２は、処理対象の画像データを供給するものであればよく、例えば紙や写真フィルム等の記録材料に記録されている画像を読み取って画像データを出力する画像読取部が適用される。また、画像データ供給部２２は、例えば通信回線を介して外部装置から画像データを受信する受信部、及び画像データを記憶する画像記憶部（メモリ１４又は記憶部２０）等が適用される。
【００２６】
画像出力部２４は、画像処理を経た画像データ又は画像処理を経た画像データが表す画像を出力するものであればよく、例えば画像データが表す画像を紙や感光材料等の記録材料に記録する画像記録部が適用される。また、画像出力部２４は、画像データが表す画像をディスプレイ等に表示する表示部（表示部１６）、画像データをＣＤ−ＲＯＭ（Compact Disk Read Only Memory）等の記録媒体に書き込む書込装置が適用される。また、画像出力部２４は、画像処理を経た画像データを、通信回線を介して外部装置に送信する送信部が適用される。また、画像出力部２４は、画像処理を経た画像データを記憶する画像記憶部（メモリ１４又は記憶部２０）であってもよい。
【００２７】
図１に示すように、記憶部２０には、第１演算部１２Ａ及び第２演算部１２Ｂによって実行される各種プログラムが記憶されている。記憶部２０には、各種プログラムとして、リソースの管理、プログラムの実行の管理、及びコンピュータ１０と外部装置との通信等を司るオペレーティングシステム３０のプログラムが記憶されている。また、記憶部２０には、各種プログラムとして、コンピュータ１０を画像処理装置として機能させるための画像処理プログラム群３４が記憶されている。また、記憶部２０には、各種プログラムとして、上記画像処理装置に対して所望の画像処理を行わせる各種のアプリケーションプログラム群３２（以下、「アプリケーション３２」という。）が記憶されている。
【００２８】
画像処理プログラム群３４は、前述した画像取扱機器、携帯機器、及びＰＣ等で実行される画像処理プログラムを開発する際の負荷を軽減することを目的として開発されたプログラムである。また、画像処理プログラム群３４は、前述した画像取扱機器、携帯機器、及びＰＣ等の各種機器（プラットフォーム）で共通に実行可能に開発されたプログラムである。
【００２９】
画像処理プログラム群３４によって実現される画像処理装置は、アプリケーション３２からの構築指示に従い、アプリケーション３２が指示した画像処理を行う画像処理ＤＡＧ（Directed Acyclic Graph：有向非循環（非巡回）グラフ）５０Ａ（詳細は後述）を構築する。そして、上記画像処理装置は、アプリケーション３２からの実行指示に従い画像処理ＤＡＧ５０Ａの処理を実行する。このため、画像処理プログラム群３４は、所望の画像処理を行う画像処理ＤＡＧ５０Ａの構築を指示したり、構築された画像処理ＤＡＧ５０Ａによる画像処理の実行を指示したりするためのインタフェースをアプリケーション３２に提供している。
【００３０】
以上の構成により、内部で画像処理を行う必要のある任意の機器を新規に開発する場合等にも、上記画像処理を行うプログラムの開発に関しては、以下に示すように開発すればよい。この場合、上記任意の機器で必要とされる画像処理を、上記インタフェースを利用して画像処理プログラム群３４に行わせるアプリケーション３２を開発すればよい。従って、開発者は、実際に画像処理を行うプログラムを新たに開発する必要が無くなり、開発者の負荷が軽減される。
【００３１】
次に、本実施の形態に係る画像処理プログラム群３４について詳細に説明する。図１に示すように、画像処理プログラム群３４は、モジュールライブラリ３６、処理構築部４２のプログラム、及び処理制御部４６Ａのプログラムを含む。
【００３２】
モジュールライブラリ３６は、予め定められた互いに異なる画像処理を行う複数種類の画像処理モジュール３８のプログラムが各々登録されている。この画像処理としては、例えば、入力処理、フィルタ処理、色変換処理、拡大・縮小処理（図１では「拡縮処理」と表記）、スキュー角検知処理、画像回転処理、画像合成処理、及び出力処理等が挙げられる。
【００３３】
また、モジュールライブラリ３６には、画像処理の種類が同一で、かつ実行する画像処理の内容が異なる画像処理モジュール３８も登録されている。図１では、この種の画像処理モジュールを「モジュール１」、「モジュール２」と、末尾に数字を付して区別している。例えば、拡大・縮小処理を行う画像処理モジュール３８については、入力された画像データを、水平方向及び垂直方向の各方向ともに１画素おきに間引くことで画像の縦横のサイズを５０％に縮小する縮小処理を行う画像処理モジュール３８が用意されている。さらに、例えば、拡大・縮小処理を行う画像処理モジュール３８については、入力された画像データに対して指定された拡大・縮小率で拡大・縮小処理を行う画像処理モジュール３８等が用意されている。
【００３４】
また、例えば、色変換処理を行う画像処理モジュール３８については、ＲＧＢ（Red Green Blue）色空間の画像をＣＭＹＫ（Cyan Magenta Yellow Key-Plate（黒））色空間の画像へ変換する画像処理モジュール３８、及びＣＭＹＫ色空間の画像をＲＧＢ色空間の画像へ変換する画像処理モジュール３８が用意されている。さらに、例えば、色変換処理を行う画像処理モジュール３８については、ＲＧＢ色空間の画像をＹＣｂＣｒ色空間の画像へ変換する画像処理モジュール３８、及びＹＣｂＣｒ色空間の画像をＲＧＢ色空間の画像へ変換する画像処理モジュール３８等が用意されている。
【００３５】
また、モジュールライブラリ３６には、画像データを記憶するための記憶領域（バッファ）を備えたバッファモジュール４０も登録されている。
【００３６】
本実施の形態に係る処理構築部４２は、アプリケーション３２からの指示により、ＤＡＧ形態の画像処理ＤＡＧ５０Ａを構築する。画像処理ＤＡＧ５０Ａは、一例として図２Ａに示すように、１つ以上の画像処理モジュール３８が、個々の画像処理モジュール３８の前段及び後段の少なくとも一方に配置されたバッファモジュール４０を介して連結される。
【００３７】
なお、個々の画像処理モジュール３８は、入力画像データに対して画像処理を実行して出力画像データを出力するオブジェクトの一例である。また、画像処理ＤＡＧ５０Ａは、画像処理モジュール３８が複数連結されたオブジェクト群の一例である。また、図２Ａに示す例では、バッファモジュール４０を介して前段に画像処理モジュール３８が連結された画像処理モジュール３８は、前段の画像処理モジュール３８による画像処理が終了した場合に、自身の画像処理の実行が可能となることを示している。また、バッファモジュール４０を介して前段に複数の画像処理モジュール３８が連結された画像処理モジュール３８は、前段の複数の画像処理モジュール３８の全ての画像処理が終了した場合に、自身の画像処理の実行が可能となることを示している。
【００３８】
また、図２Ａでは、各モジュールのみが処理の順に接続されたＤＡＧを示しているが、このＤＡＧが実行される際には、図２Ｂに示すようにメモリ１４に記憶された画像データが入力されてＤＡＧに従って画像処理が行われる。そして、最終的にメモリ１４に処理済みの画像データ等の処理結果が記憶される。なお、各画像処理モジュール３８で実行される画像処理を第２演算部１２Ｂにより実行する場合は、図２Ｂに示したメモリ１４がローカルメモリ１３となる。
【００３９】
次に、図３を参照して、一例として、第２演算部１２Ｂによって、色変換処理及び縮小処理を、この順番でアウトプレース処理により実行する場合について説明する。なお、図３では、色変換処理を行う画像処理モジュール３８と縮小処理を行う画像処理モジュール３８とを区別するために、符号の末尾にアルファベットを付している。また、図３では、錯綜を回避するために、バッファモジュール４０に代えて、各画像処理モジュール３８の入出力先の記憶領域であるローカルメモリ１３を図示している。
【００４０】
図３に示すように、画像処理モジュール３８Ａは、ローカルメモリ１３の記憶領域１３Ａに記憶された画像データに対して色変換処理を行って、ローカルメモリ１３の記憶領域１３Ｂに色変換処理後の画像データを出力する。また、画像処理モジュール３８Ｂは、記憶領域１３Ｂに記憶された画像データに対して縮小処理を行って、ローカルメモリ１３の記憶領域１３Ｃに縮小処理後の画像データを出力する。このように、画像処理モジュール３８で実行される画像処理を、アウトプレース処理により実行すると、図３に示す例では３つの画像データ分の記憶領域が必要になる。
【００４１】
特に、ＧＰＵのようにローカルメモリ１３の容量がメモリ１４に比較して小さい場合、記憶領域の確保に失敗して画像処理が異常終了する場合がある。また、画像処理モジュール３８で実行される画像処理の内容によっては、インプレース処理を行えない場合がある。そこで、本実施の形態に係るコンピュータ１０は、画像処理モジュール３８で実行される画像処理を、画像処理の内容によってインプレース処理が可能であるか否か（入力画像データを出力画像データで上書き可能か否か）を判定する。そして、本実施の形態に係るコンピュータ１０は、インプレース処理が可能であると判定した画像処理については、インプレース処理により画像処理を実行する。
【００４２】
次に、図４を参照して、本実施の形態に係る処理制御部４６Ａの機能的な構成を説明する。図４に示すように、処理制御部４６Ａは、受付部６０、特徴情報記憶部６２、判定部６６、制御部６８、及び出力部７０を備えている。
【００４３】
本実施の形態に係る受付部６０は、例えば操作部１８を介してユーザからの入力を受け付ける。なお、受付部６０は、例えば通信回線を介して外部装置から送信されたユーザからの指示を示す指示情報を受信することでユーザからの入力を受け付けてもよい。
【００４４】
本実施の形態に係る特徴情報記憶部６２には、個々の画像処理モジュール３８により実行される画像処理の内容と、インプレース処理が可能であるか否かに関する可否情報とが関連付けられた特徴情報６４が予め記憶されている。一例として図５に示すように、本実施の形態に係る特徴情報６４は、大分類として画像処理の種類、小分類として画像処理の処理内容、及び可否情報を含み、画像処理の処理内容の各々について、可否情報が関連付けられている。
【００４５】
可否情報は、「必須」、「可能」、及び「不可能」の３種類の情報の何れかを示す情報であり、可否情報が「必須」である画像処理は、インプレース処理を行うことが必須な処理である。また、可否情報が「可能」である画像処理は、インプレース処理を行ってもアウトプレース処理を行ってもよい処理であり、可否情報が「不可能」である画像処理は、アウトプレース処理を行うことが必須な処理である。
【００４６】
例えば、ＲＧＢ色空間の画像をＹＣｂＣｒ色空間の画像へ変換する画像処理モジュール３８により実行される画像処理は、インプレース処理を行ってもアウトプレース処理を行ってもよい処理であることを示している。また、画像を線形補間により拡大する画像処理モジュール３８により実行される画像処理は、アウトプレース処理を行うことが必須な処理であることを示している。また、画像に袖領域を付加する処理を、画像の縁部の画素を複製することで行う画像処理モジュール３８により実行される画像処理は、インプレース処理を行うことが必須な処理であることを示している。
【００４７】
本実施の形態に係る判定部６６は、特徴情報６４に基づいて、処理構築部４２により構築された画像処理ＤＡＧ５０Ａの個々の画像処理モジュール３８で実行される画像処理が、インプレース処理が可能であるか否かを、画像処理の処理内容によって判定する。本実施の形態に係る判定部６６は、一例として、特徴情報６４の可否情報が「必須」又は「可能」である処理内容の画像処理はインプレース処理が可能であると判定する。
【００４８】
また、判定部６６は、特徴情報６４の可否情報が「不可能」である処理内容の画像処理はインプレース処理が不可能であると判定する。なお、判定部６６は、特徴情報６４の可否情報が「可能」である処理もインプレース処理が不可能であると判定してもよい。
【００４９】
本実施の形態に係る制御部６８は、判定部６６によりインプレース処理が可能と判定された画像処理について、画像処理の出力画像データの記憶領域をインプレース処理が可能な入力画像データが記憶された記憶領域を含む領域とする設定を行う。本実施の形態では、制御部６８は、出力画像データのサイズが入力画像データのサイズ以下の場合、出力画像データの記憶領域をインプレース処理が可能な入力画像データが記憶された領域と同じ領域にする設定を行う。
【００５０】
また、制御部６８は、出力画像データのサイズが入力画像データのサイズより大きい場合、以下に示す設定を行う。この場合、制御部６８は、入力画像データが記憶された記憶領域に対して、出力画像データのサイズと入力画像データのサイズとの差分の容量を増加させた領域を出力画像データの記憶領域とする設定を行う。なお、この場合、制御部６８は、入力画像データが記憶された記憶領域に対して、出力画像データのサイズと入力画像データのサイズとの差分にマージンを加味したサイズを増加させた領域を出力画像データの記憶領域とする設定を行ってもよい。
【００５１】
また、制御部６８は、以上の記憶領域の設定が行われた画像処理ＤＡＧ５０Ａによって、画像処理を実行する制御を行う。すなわち、制御部６８は、まず、画像処理ＤＡＧ５０Ａの最初の段の画像処理モジュール３８による画像処理を実行する制御を行う。その後、制御部６８は、前段に連結された画像処理モジュール３８による画像処理が終了して、実行可能となった画像処理モジュール３８による画像処理を順次実行する制御を行う。なお、本実施の形態に係る制御部６８は、各画像処理を第２演算部１２Ｂにより実行する制御を行う。
【００５２】
図６を参照して、一例として、第２演算部１２Ｂにより、ＲＧＢ色空間の画像をＹＣｂＣｒ色空間の画像へ変換する画像処理を行ってから、画素を間引くことにより画像を縮小する単純間引き縮小処理を行う場合について説明する。なお、図６では、ＲＧＢ色空間の画像をＹＣｂＣｒ色空間の画像へ変換する画像処理を行う画像処理モジュール３８と単純間引き縮小処理を行う画像処理モジュール３８とを区別するために、符号の末尾にアルファベットを付している。また、図６では、錯綜を回避するために、バッファモジュール４０に代えて、各画像処理モジュール３８の入出力先の記憶領域であるローカルメモリ１３を図示している。
【００５３】
図６に示すように、画像処理モジュール３８Ｃで実行される画像処理はインプレース処理が可能であるため、画像処理モジュール３８Ｃの出力先の記憶領域１３Ｅとして、画像処理モジュール３８Ｃの入力画像データが記憶された記憶領域１３Ｄが設定される。また、画像処理モジュール３８Ｄで実行される画像処理もインプレース処理が可能であるため、画像処理モジュール３８Ｄの出力先の記憶領域１３Ｆとして、画像処理モジュール３８Ｄの入力画像データが記憶された記憶領域１３Ｅが設定される。
【００５４】
この記憶領域１３Ｅは、前述したように記憶領域１３Ｄに設定されている結果、画像処理モジュール３８Ｄが画像処理を行った結果得られる出力画像データは記憶領域１３Ｄに記憶される。従って、この場合、インプレース処理を行わない場合に比較して、ローカルメモリ１３の使用量が半分以下に低減される。
【００５５】
次に、図７を参照して、一例として、第２演算部１２Ｂにより、ＲＧＢ色空間の画像をＹＣｂＣｒ色空間の画像へ変換する画像処理を行ってから、線形補間を行うことにより画像を拡大する線形補間拡大処理を行う場合について説明する。なお、図７では、ＲＧＢ色空間の画像をＹＣｂＣｒ色空間の画像へ変換する画像処理を行う画像処理モジュール３８と線形補間拡大処理を行う画像処理モジュール３８とを区別するために、符号の末尾にアルファベットを付している。また、図７では、錯綜を回避するために、バッファモジュール４０に代えて、各画像処理モジュール３８の入出力先の記憶領域であるローカルメモリ１３を図示している。
【００５６】
図７に示すように、画像処理モジュール３８Ｃで実行される画像処理はインプレース処理が可能であるため、画像処理モジュール３８Ｃの出力先の記憶領域１３Ｈとして、画像処理モジュール３８Ｃの入力画像データが記憶された記憶領域１３Ｇが設定される。また、画像処理モジュール３８Ｅで実行される画像処理はインプレース処理が不可能であるため、画像処理モジュール３８Ｅの出力先の記憶領域１３Ｉは、オペレーティングシステム３０により新たに確保された記憶領域が設定される。従って、この場合、インプレース処理を行わない場合に比較して、ローカルメモリ１３の使用量が、出力画像データの１つ分が低減される。
【００５７】
また、制御部６８は、受付部６０により画像処理ＤＡＧ５０Ａの最終段のオブジェクトにより実行された画像処理の処理結果が異常であることが受け付けられた場合、次に示す処理を行う。この場合、制御部６８は、判定部６６によりインプレース処理が可能であると判定された少なくとも１つの画像処理について、出力画像データの記憶領域を入力画像データの記憶領域とは異なる領域とする設定を行う。さらに、この場合、制御部６８は、記憶領域の再設定を行った画像処理ＤＡＧ５０Ａによって、画像処理を再度実行する制御を行う。
【００５８】
本実施の形態に係る出力部７０は、画像処理ＤＡＧ５０Ａの最終段の画像処理モジュール３８により実行された画像処理の結果得られた出力画像データを出力する。本実施の形態では、出力部７０は、得られた出力画像データを表示部１６に表示する。なお、出力部７０は、出力画像データを外部装置に出力（送信）してもよい。また、コンピュータ１０がプリンタに組み込まれている場合は、出力部７０は、出力画像データにより示される出力画像を紙等の記録材料に出力（形成）してもよい。
【００５９】
次に、図８を参照して、本実施の形態に係るコンピュータ１０の作用を説明する。なお、図８は、アプリケーション３２により画像処理の実行開始の指示が入力された場合に第１演算部１２Ａによって実行される画像処理プログラムの処理の流れを示すフローチャートである。また、画像処理プログラムは記憶部２０に予めインストールされている。また、第１演算部１２Ａが画像処理プログラムを実行することにより、第１演算部１２Ａが前述した処理構築部４２、受付部６０、判定部６６、制御部６８、及び出力部７０として機能する。
【００６０】
図８のステップ１００で、処理構築部４２は、アプリケーション３２からの構築指示に従い、アプリケーション３２が指示した画像処理を行う画像処理ＤＡＧ５０Ａを構築する。次のステップ１０２で、判定部６６は、特徴情報記憶部６２から特徴情報６４を読み出す。次のステップ１０４からステップ１０８までの処理は、ステップ１００の処理で構築された画像処理ＤＡＧ５０Ａの全ての画像処理モジュール３８のうちの１つを選択的に処理対象（以下、「処理対象モジュール３８」という。）として、繰り返し実行される。なお、ステップ１０４からステップ１０８までの処理を繰り返し実行する場合は、それまでに処理対象としなかった画像処理モジュール３８を処理対象とする。
【００６１】
ステップ１０４で、判定部６６は、特徴情報６４に基づいて、処理対象モジュール３８により実行される画像処理の処理内容が、インプレース処理が「必須」又は「可能」であるか否かを判定する。判定部６６は、この判定が否定判定となった場合はインプレース処理が「不可能」であると見なしてステップ１０８に移行する一方、肯定判定となった場合はステップ１０６に移行する。
【００６２】
ステップ１０６で、制御部６８は、前述したように、処理対象モジュール３８により実行される画像処理について、画像処理の出力画像データの記憶領域を入力画像データが記憶された記憶領域を含む領域とする設定を行った後、ステップ１１０に移行する。一方、ステップ１０８で、制御部６８は、処理対象モジュール３８により実行される画像処理について、画像処理の出力画像データの記憶領域を入力画像データの記憶領域とは異なる領域とする設定を行った後、ステップ１１０に移行する。
【００６３】
ステップ１１０で、制御部６８は、ステップ１００で構築された画像処理ＤＡＧ５０Ａの全ての画像処理モジュール３８について、上記ステップ１０４からステップ１０８までの処理が完了したか否かを判定する。制御部６８は、この判定が否定判定となった場合はステップ１０４に戻る一方、肯定判定となった場合はステップ１１２に移行する。
【００６４】
ステップ１１２で、制御部６８は、以上の処理を経た画像処理ＤＡＧ５０Ａによる画像処理を第２演算部１２Ｂにより実行する制御を行う。第２演算部１２Ｂは、第１演算部１２Ａから転送された入力画像データをローカルメモリ１３に記憶し、画像処理ＤＡＧ５０Ａに従って画像処理を実行する。第２演算部１２Ｂは、画像処理ＤＡＧ５０Ａによる画像処理が終了すると、最終的に得られた（すなわち画像処理ＤＡＧ５０Ａの最終段の画像処理モジュール３８から出力された）出力画像データをローカルメモリ１３から第１演算部１２Ａに転送する。
【００６５】
そこで、ステップ１１４で、制御部６８は、出力画像データの受信待ちを行う。制御部６８が出力画像データを受信するとステップ１１４が肯定判定となり、処理がステップ１１６に移行する。ステップ１１６で、出力部７０は、ステップ１１４で受信された出力画像データを表示部１６に出力する。
【００６６】
ユーザは、表示部１６に表示された出力画像データにより示される出力画像を確認し、出力画像が異常な画像である場合は、操作部１８を介して画像処理の再実行の指示を入力する。
【００６７】
そこで、ステップ１１８で、受付部６０は、画像処理の再実行の指示が受け付けられたか否かを判定する。受付部６０は、この判定が肯定判定となった場合はステップ１２０に移行する。
【００６８】
ステップ１２０で、制御部６８は、ステップ１０４でインプレース処理が可能と判定された少なくとも１つの画像処理について、上記ステップ１０８と同様に、次に示す処理を行う。制御部６８は、画像処理の出力画像データの記憶領域を入力画像データの記憶領域とは異なる領域とする設定を行った後、ステップ１１２に戻る。なお、本ステップ１２０で記憶領域の再設定を行う対象とする画像処理モジュール３８の個数は特に限定されず、１つでもよいし、２つでもよいし、ステップ１０４でインプレース処理が可能と判定された画像処理モジュール３８の全てでもよい。
【００６９】
一方、受付部６０は、所定期間を経過しても画像処理の再実行の指示が受け付けられなかった場合、ステップ１１８の判定が否定判定となり、本画像処理を終了する。
【００７０】
以上説明したように、本実施の形態によれば、画像処理の処理内容によって、画像処理が、インプレース処理が可能か否かを判定している。そして、インプレース処理が可能と判定した画像処理について、画像処理の出力画像データの記憶領域を上書き可能な入力画像データが記憶された記憶領域を含む領域とする設定を行っている。これにより、インプレース処理が可能であるか否かをユーザに判断させる場合に比較して、ユーザの負担を軽減して、画像処理の記憶領域の使用量を低減することができる。
【００７１】
また、本実施の形態によれば、画像処理の処理結果が異常であることが受け付けられた場合に、インプレース処理が可能な少なくとも１つの画像処理について、出力画像データの記憶領域を入力画像データの記憶領域とは異なる領域とする設定を行っている。この結果、インプレース処理に起因して画像処理の処理結果が異常であった場合、ユーザは再実行の指示を行うだけで、画像処理が再実行される。これにより、ユーザの負担を、より軽減することができる。
【００７２】
また、本実施の形態によれば、判定部６６による判定が実行されるプロセッサ（第１演算部１２Ａ）とは異なるプロセッサ（第２演算部１２Ｂ）で画像処理を実行している。これにより、判定部６６による判定が実行されるプロセッサと同じプロセッサで画像処理を実行する場合に比較して、高速に画像処理を実行することができる。
【００７３】
また、本実施の形態によれば、ＧＰＵ（第２演算部１２Ｂ）により画像処理を実行している。一般に、ＧＰＵのローカルメモリ１３の容量はメモリ１４の容量に比較して小さいため、画像処理をアウトプレース処理によりＧＰＵで実行すると、記憶領域の確保に失敗する可能性が比較的高い。これに対し、本実施の形態によれば、画像処理の記憶領域の使用量を低減することができるため、記憶領域の確保に失敗する可能性を低減することができる。
【００７４】
［第２の実施の形態］
本第２の実施の形態では、入力画像データを分割する点が第１の実施の形態とは異なっている。なお、上記第１の実施の形態と同一の機能を有する構成要素については、同一の符号を付して、その説明を省略する。
【００７５】
まず、図１を参照して、本実施の形態に係るコンピュータ１０の構成を説明する。図１に示すように、本実施の形態に係る画像処理プログラム群３４は、処理制御部４６Ｂのプログラムを含む。
【００７６】
また、本実施の形態に係る第２演算部１２Ｂは、ローカルメモリ１３を有し、複数（本実施の形態では４つ）のプロセッサ・コアを有する。また、第２演算部１２Ｂは、各プロセッサ・コアに１対１で対応して設けられ、プロセッサ・コアがキャッシュメモリとして使用する複数（本実施の形態では４つ）のＬ１（Level1）キャッシュを有する。また、第２演算部１２Ｂは、各プロセッサ・コアが共有するキャッシュメモリとして使用し、かつ１つのＬ１キャッシュより容量が大きい１つのＬ２（Level2）キャッシュを有する。
【００７７】
すなわち、本実施の形態では、Ｌ２キャッシュが第２演算部のプロセッサから最も遠いレベルのキャッシュメモリ、所謂ＬＬＣ（Last Level Cache）である。なお、キャッシュメモリのレベル数は２つに限定されず、３つ以上でもよい。
【００７８】
また、本実施の形態に係る第１演算部１２Ａも第２演算部１２Ｂと同様に、複数のプロセッサ・コア、Ｌ１キャッシュ、及びＬ２キャッシュを有する。
【００７９】
また、本実施の形態に係る個々の画像処理モジュール３８は、第１演算部１２Ａ及び第２演算部１２Ｂの何れの演算部で画像処理が実行されるかが設定可能とされている。なお、本実施の形態では、画像処理モジュール３８の処理内容によって第１演算部１２Ａ及び第２演算部１２Ｂの何れの演算部で画像処理が実行されるかが個々の画像処理モジュール３８に予め設定されている場合について説明するが、これに限定されない。例えば、ユーザにより、画像処理モジュール３８毎に第１演算部１２Ａ及び第２演算部１２Ｂの何れの演算部で画像処理が実行されるかが設定されてもよい。
【００８０】
次に、図９を参照して、本実施の形態に係る処理制御部４６Ｂの構成を説明する。図９に示すように、処理制御部４６Ｂは、分割部７２を備えている。
【００８１】
本実施の形態に係る分割部７２は、入力画像データの処理対象とする部分により示される画像を複数の分割画像に分割する。一例として図１０に示すように、分割部７２は、入力画像データの処理対象とする部分により示される画像Ｇを、複数（図１０に示す例では３つ）の分割画像Ｂ１〜Ｂ３に分割する。なお、以下では分割画像を示す画像データを「分割画像データ」という。また、入力画像データの処理対象とする部分とは、色変換処理のように入力画像全体を処理対象とする画像処理では、入力画像データ全体が処理対象とする部分を意味する。また、入力画像データの処理対象とする部分とは、切り抜き（トリミング）処理のように、入力画像の一部を対象とする画像処理では、画像処理の処理対象とする部分を意味する。以下では、錯綜を回避するために、入力画像データの処理対象とする部分を、単に「入力画像データ」という。
【００８２】
また、図１０に示した例では、分割部７２が画像Ｇを上下に分割しているが、これに限定されない。例えば分割部７２は画像Ｇを左右に分割してもよいし、上下左右に分割してもよい。
【００８３】
分割部７２は、画像処理が第２演算部１２Ｂで実行される場合、入力画像データを、第２演算部１２ＢのＬＬＣ（Ｌ２キャッシュ）の容量に応じたサイズで複数の分割画像データに分割する。本実施の形態では、分割部７２は、入力画像データを、第２演算部１２ＢのＬＬＣの容量以下で、かつＬＬＣの容量に極力一致するサイズで複数の同サイズの分割画像データに分割する。すなわち、例えば、入力画像データのサイズが６ＭＢで、第２演算部１２ＢのＬＬＣの容量が２ＭＢの場合、各分割画像データのサイズは２ＭＢとなる。また、入力画像データのサイズが４．５ＭＢで、第２演算部１２ＢのＬＬＣの容量が２ＭＢの場合、各分割画像データのサイズは１．５ＭＢとなる。
【００８４】
一方、分割部７２は、画像処理が第１演算部１２Ａで実行される場合、入力画像データを、第１演算部１２ＡのＬＬＣ以外のキャッシュメモリ（本実施形態では、Ｌ１キャッシュ）の容量に応じたサイズで複数の分割画像データに分割する。本実施の形態では、分割部７２は、入力画像データを、第１演算部１２ＡのＬ１キャッシュの容量以下で、かつＬ１キャッシュの容量に極力一致するサイズで複数の同サイズの分割画像データに分割する。なお、第１演算部１２Ａが３つ以上のレベルのキャッシュメモリを有する場合は、分割部７２は、ＬＬＣ以外の予め定められた１つのキャッシュメモリ（例えばＬ２キャッシュ）の容量に応じたサイズで入力画像データを分割すればよい。
【００８５】
また、一例として図１１に示すように、分割部７２は、画像処理ＤＡＧ５０Ａに対し、各画像処理モジュール３８で実行される画像処理を、分割画像データの各々に対応する部分処理３９（タスク）に分割して画像処理ＤＡＧ５０Ｂを構築する。なお、図１１では、錯綜を回避するために、バッファモジュール４０の図示を省略している。また、分割部７２は、画像処理モジュール３８で実行される画像処理の種類に応じて、前段に連結された画像処理モジュール３８の部分処理３９と、後段に連結された画像処理モジュール３８の部分処理３９との間で依存関係を付与する。なお、図１１では、この依存関係を破線の矢印で示している。
【００８６】
例えば、色変換処理のように、処理対象とする画素のみに対して画像処理を行う処理は、各部分処理３９も１対１の依存関係となる。一方、例えば、フィルタ処理のように、処理対象とする画素の周辺画素も必要な画像処理では、周辺画素に対して画像処理を行う前段の部分処理３９にも依存関係を付与することとなる。各部分処理３９は、前段に依存関係のある部分処理３９が存在しないか、依存関係のある全ての部分処理３９が終了した場合に実行可能となる。
【００８７】
次に、図１２を参照して、本実施の形態に係るコンピュータ１０の作用を説明する。なお、図１２は、アプリケーション３２により画像処理の実行開始の指示が入力された場合に第１演算部１２Ａによって実行される画像処理プログラムの処理の流れを示すフローチャートである。また、画像処理プログラムは記憶部２０に予めインストールされている。また、第１演算部１２Ａが画像処理プログラムを実行することにより、第１演算部１２Ａが前述した処理構築部４２、受付部６０、判定部６６、制御部６８、出力部７０、及び分割部７２として機能する。また、図１２における図８と同一の処理を実行するステップについては図８と同一のステップ番号を付して、その説明を省略する。
【００８８】
図１２のステップ１１１で、分割部７２は、前述したように、画像処理ＤＡＧ５０Ａの個々の画像処理モジュール３８による画像処理が、何れの演算部で実行されるかを示す情報に応じて、入力画像データを複数の分割画像データに分割する。そして、分割部７２は、以上の処理を経た画像処理ＤＡＧ５０Ａに対して、前述したように、個々の画像処理モジュール３８で実行される画像処理を個々の部分処理３９に分割し、直接連結された画像処理モジュール３８の部分処理３９間で依存関係を付与する。すなわち、本ステップ１１１で、分割部７２は、画像処理ＤＡＧ５０Ｂを構築する。
【００８９】
次のステップ１１３で、制御部６８は、ステップ１１１で構築された画像処理ＤＡＧ５０Ｂに従って、画像処理を実行する制御を行う。すなわち、制御部６８は、画像処理ＤＡＧ５０Ｂにおける第１演算部１２Ａで実行される設定がされている画像処理モジュール３８の部分処理は、第１演算部１２Ａの各プロセッサ・コアで実行する制御を行う。また、制御部６８は、画像処理ＤＡＧ５０Ｂにおける第２演算部１２Ｂで実行される設定がされている画像処理モジュール３８の部分処理は、第２演算部１２Ｂの各プロセッサ・コアで実行する制御を行う。制御部６８は、これらの制御を、画像処理ＤＡＧ５０Ｂに従って、実行可能となった部分処理３９について順次行う。
【００９０】
なお、画像処理ＤＡＧ５０Ｂの最終段の画像処理モジュール３８の全てが第１演算部１２Ａで実行される設定がされている場合は、ステップ１１４の処理は不要となる。
【００９１】
以上説明したように、本実施の形態によれば、上記第１の実施の形態と同様の効果を奏することができる。
【００９２】
また、本実施の形態によれば、第２演算部１２Ａ（ＧＰＵ）により実行される画像処理モジュール３８の入力画像データを、第２演算部１２ＡのＬＬＣの容量に応じたサイズで複数の分割画像データに分割する。第２演算部１２Ａにより画像処理を実行する場合、分割画像データの数が多すぎると、第１演算部１２Ａ（ＣＰＵ）と第２演算部１２Ｂとの間でのデータ転送のオーバーヘッドが比較的大きくなる。従って、本実施の形態では、入力画像データをＬ１キャッシュのサイズで分割する場合に比較して、オーバーヘッドを低減させることができる。また、画像処理を並列化したうえで、ＬＬＣのヒット率が向上する。従って、本実施の形態によれば、より高速に画像処理を実行することができる。
【００９３】
また、本実施の形態によれば、第１演算部１２Ａ（ＣＰＵ）により実行される画像処理モジュール３８の入力画像データを、第１演算部１２ＡのＬ１キャッシュの容量に応じたサイズで複数の分割画像データに分割する。これにより、画像処理を並列化したうえで、ＬＬＣより高速なＬ１キャッシュのヒット率が向上するため、より高速に画像処理を実行することができる。
【００９４】
なお、上記各実施の形態において、分割部７２は、予め定められた数又はサイズで入力画像データを分割してもよい。
【００９５】
また、上記各実施の形態では、各種プログラムが記憶部２０に予め記憶（インストール）されている態様を説明したが、これに限定されない。各種プログラムは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory）、ＵＳＢ（Universal Serial Bus）メモリ等の記録媒体に記録された形態で提供されてもよい。また、各種プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【００９６】
２０１６年３月２４日出願の日本国特許出願２０１６−０６０５２２号の開示は、その全体が参照により本明細書に取り込まれる。
本明細書に記載された全ての文献、特許出願、及び技術規格は、個々の文献、特許出願、及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
【符号の説明】
【００９７】
１０  コンピュータ
１２Ａ  第１演算部
１２Ｂ  第２演算部
１３  ローカルメモリ
１３Ａ〜１３Ｉ  記憶領域
１４  メモリ
１６  表示部
１８  操作部
２０  記憶部
２２  画像データ供給部
２４  画像出力部
２６  バス
３０  オペレーティングシステム
３２  アプリケーションプログラム群
３４  画像処理プログラム群
３６  モジュールライブラリ
３８、３８Ａ〜３８Ｅ  画像処理モジュール
３９  部分処理
４０  バッファモジュール
４２  処理構築部
４６Ａ、４６Ｂ  処理制御部
５０Ａ、５０Ｂ  画像処理ＤＡＧ
６０  受付部
６２  特徴情報記憶部
６４  特徴情報
６６  判定部
６８  制御部
７０  出力部
７２  分割部
Ｂ１〜Ｂ３  分割画像
Ｇ  画像
【図１】
0006600077.tif 000002
【図２Ａ】
0006600077.tif 000003
【図２Ｂ】
0006600077.tif 000004
【図３】
0006600077.tif 000005
【図４】
0006600077.tif 000006
【図５】
0006600077.tif 000007
【図６】
0006600077.tif 000008
【図７】
0006600077.tif 000009
【図８】
0006600077.tif 000010
【図９】
0006600077.tif 000011
【図１０】
0006600077.tif 000012
【図１１】
0006600077.tif 000013
【図１２】
0006600077.tif 000014