(57)【要約】【課題】指示情報が入力されてから、当該指示情報に記述された処理を行うことで原データから得られる出力データが出力される迄の平均時間を短縮する。【解決手段】実行対象の画像処理が記述された制御指示情報及び入力画像データが入力されると、実行対象の画像処理を実現するための画像処理部を構築し、構築した画像処理部の構成を規定するモジュール接続情報を生成し、モジュール接続情報のハッシュ値及び入力画像データのハッシュ値と対応付けられた出力画像データが処理結果DBに保存されているか否かを判定する(106〜114)。保存されていれば該当する出力画像データを出力し(124,126)、保存されていなければ構築した画像処理部で画像処理を行い、処理結果DBに出力画像データ等を登録した後に、出力画像データを出力する(116〜120)。【選択図】図４
2012118932.tif 000002
【特許請求の範囲】
【請求項１】
原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段と、
前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記処理規定情報と対応付けて記憶する第１記憶手段に、前記生成手段によって今回生成された前記処理規定情報及び今回生成された前記処理規定情報で規定された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段と、
前記判定手段により、今回生成された前記処理規定情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第１記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第１記憶手段に記憶されている前記出力データを出力する出力手段と、
を含む情報処理装置。
【請求項２】
前記第１記憶手段には、過去に得られた前記出力データが、原データとして用いられたデータ、前記処理規定情報及び入力された前記指示情報と対応付けて記憶されており、
前記判定手段は、今回入力された前記指示情報及び今回入力された前記指示情報に実行対象として記述された今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第１記憶手段に記憶されているか否かを判定し、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第１記憶手段に記憶されていないと判定した場合に、前記今回生成された前記処理規定情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第１記憶手段に記憶されているか否かを判定し、
前記出力手段は、前記判定手段により、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第１記憶手段に記憶されていると判定された場合にも、前記処理手段によって処理を行わせることなく、前記第１記憶手段に記憶されている前記出力データを出力する請求項１記載の情報処理装置。
【請求項３】
前記第１記憶手段には、前記原データとして用いられたデータとして、当該データから一意に求まる原データ識別情報が記憶されており、
前記判定手段は、前記今回の処理で原データとして用いられるデータから前記原データ識別情報を求め、求めた前記原データ識別情報を用いて前記判定を行う請求項１又は請求項２記載の情報処理装置。
【請求項４】
前記第１記憶手段には、前記処理規定情報として、前記処理規定情報から一意に求まる処理規定情報識別情報が記憶されており、
前記判定手段は、今回生成された前記処理規定情報から前記処理規定情報識別情報を求め、求めた前記処理規定情報識別情報を用いて前記判定を行う請求項１〜請求項３の何れか１項記載の情報処理装置。
【請求項５】
原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段と、
前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記指示情報と対応付けて記憶する第１記憶手段に、今回入力された前記指示情報及び今回入力された前記指示情報に実行対象として記述された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段と、
前記判定手段により、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第１記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第１記憶手段に記憶されている前記出力データを出力する出力手段と、
を含む情報処理装置。
【請求項６】
前記生成手段は、前記指示情報に基づき、前記指示情報に記述された実行対象の処理を実現する処理部として、互いに異なる処理を行う複数種の処理モジュールの中から選択した１つ以上の処理モジュールをパイプライン形態又は有向非循環グラフ形態で連結した前記処理部が構築手段によって構築されると、構築された前記処理部における前記処理モジュールの接続関係を表す情報を前記処理規定情報として生成し、
前記処理手段は、構築された前記処理部により、前記指示情報に記述された実行対象の前記処理を行う請求項１〜請求項５の何れか１項記載の情報処理装置。
【請求項７】
前記今回の処理で原データとして用いられるデータは、前記処理要求元から入力されるか、又は、第２記憶手段に記憶された複数のデータの中から前記処理要求元によって指定される請求項１〜請求項６の何れか１項記載の情報処理装置。
【請求項８】
前記指示情報には、処理要求元の環境を表す環境情報も記述されており、
前記生成手段は、生成する前記処理規定情報で規定する前記処理の詳細を、前記指示情報に記述された前記環境情報が表す処理要求元の環境に応じて相違させる請求項１〜請求項５の何れか１項記載の情報処理装置。
【請求項９】
原データとして使用される複数のデータを記憶する第２記憶手段を備え、
前記生成手段は、前記第２記憶手段に記憶されている複数のデータのうち、前記今回の処理で原データとして用いるデータを、前記環境情報が表す処理要求元の環境に応じて選択する請求項８記載の情報処理装置。
【請求項１０】
コンピュータを、
原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段、
前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記処理規定情報と対応付けて記憶する第１記憶手段に、前記生成手段によって今回生成された前記処理規定情報及び今回生成された前記処理規定情報で規定された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段、
及び、前記判定手段により、今回生成された前記処理規定情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第１記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第１記憶手段に記憶されている前記出力データを出力する出力手段
として機能させるための情報処理プログラム。
【請求項１１】
コンピュータを、
原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段、
前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記指示情報と対応付けて記憶する第１記憶手段に、今回入力された前記指示情報及び今回入力された前記指示情報に実行対象として記述された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段、
及び、前記判定手段により、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第１記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第１記憶手段に記憶されている前記出力データを出力する出力手段
として機能させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
特許文献１には、それぞれ基本的、汎用的な機能のみを備えるソフトウェア(ＸＭＬで記述されたフロー定義を読み込み、タグで規定されたコマンドを順次実行する実行エンジン、ＧＵＩ部品やロジック部品、画面定義を読み込み、各部品を起動して表示画面を生成するアプリケーションブラウザ等)を用意し、実質的な処理内容をＸＭＬの電子文書で与えることにより、ソフトウェアの改変を伴うことなく、処理内容の改変を実現する技術が開示されている。
【０００３】
また特許文献２には、画像処理内容が異なる複数の画像処理モジュールを用意しておき、必要な画像処理に応じて１つ以上の画像処理モジュールを選択すると共に、選択した個々の画像処理モジュールの前段及び後段の少なくとも一方にバッファモジュールが連結されるように、個々のモジュールをパイプライン形態又は有向非循環グラフ形態で連結して画像処理部を構築する技術が開示されている。
【０００４】
また特許文献３には、予約キーワードを有する複数のファイルから成るアーカイブファイルを蓄積すると共に、予約キーワードとファイルへの処理内容とが対応付けられた複数の処理内容指定データを保持しておき、複数のファイルのそれぞれのファイル名から予約キーワードを抽出し、複数の処理内容指定データのうちの抽出した予約キーワードを含む１又は複数の処理内容指定データを検索し、検索された処理内容指定データに対応するファイルへの処理内容に従って、蓄積されたドキュメントファイルに含まれる印刷すべきデータを印刷処理する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２１６４２７号公報
【特許文献２】特開２００６−３３８５０１号公報
【特許文献３】特開２００８−１７１３９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、指示情報が入力されてから、当該指示情報に記述された処理を行うことで原データから得られる出力データが出力される迄の平均時間を短縮できる情報処理装置及び情報処理プログラムを得ることが目的である。
【課題を解決するための手段】
【０００７】
請求項１記載の発明に係る情報処理装置は、原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段と、前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記処理規定情報と対応付けて記憶する第１記憶手段に、前記生成手段によって今回生成された前記処理規定情報及び今回生成された前記処理規定情報で規定された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段と、前記判定手段により、今回生成された前記処理規定情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第１記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第１記憶手段に記憶されている前記出力データを出力する出力手段と、を含んで構成されている。
【０００８】
請求項２記載の発明は、請求項１記載の発明において、前記第１記憶手段には、過去に得られた前記出力データが、原データとして用いられたデータ、前記処理規定情報及び入力された前記指示情報と対応付けて記憶されており、前記判定手段は、今回入力された前記指示情報及び今回入力された前記指示情報に実行対象として記述された今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第１記憶手段に記憶されているか否かを判定し、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第１記憶手段に記憶されていないと判定した場合に、前記今回生成された前記処理規定情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第１記憶手段に記憶されているか否かを判定し、前記出力手段は、前記判定手段により、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第１記憶手段に記憶されていると判定された場合にも、前記処理手段によって処理を行わせることなく、前記第１記憶手段に記憶されている前記出力データを出力する。
【０００９】
請求項３記載の発明は、請求項１又は請求項２記載の発明において、前記第１記憶手段には、前記原データとして用いられたデータとして、当該データから一意に求まる原データ識別情報が記憶されており、前記判定手段は、前記今回の処理で原データとして用いられるデータから前記原データ識別情報を求め、求めた前記原データ識別情報を用いて前記判定を行う。
【００１０】
請求項４記載の発明は、請求項１〜請求項３の何れか１項記載の発明において、前記第１記憶手段には、前記処理規定情報として、前記処理規定情報から一意に求まる処理規定情報識別情報が記憶されており、前記判定手段は、今回生成された前記処理規定情報から前記処理規定情報識別情報を求め、求めた前記処理規定情報識別情報を用いて前記判定を行う。
【００１１】
請求項５記載の発明に係る情報処理装置は、原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段と、前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記指示情報と対応付けて記憶する第１記憶手段に、今回入力された前記指示情報及び今回入力された前記指示情報に実行対象として記述された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段と、前記判定手段により、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第１記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第１記憶手段に記憶されている前記出力データを出力する出力手段と、を含んで構成されている。
【００１２】
請求項６記載の発明は、請求項１〜請求項５の何れか１項記載の発明において、前記生成手段は、前記指示情報に基づき、前記指示情報に記述された実行対象の処理を実現する処理部として、互いに異なる処理を行う複数種の処理モジュールの中から選択した１つ以上の処理モジュールをパイプライン形態又は有向非循環グラフ形態で連結した前記処理部が構築手段によって構築されると、構築された前記処理部における前記処理モジュールの接続関係を表す情報を前記処理規定情報として生成し、前記処理手段は、構築された前記処理部により、前記指示情報に記述された実行対象の前記処理を行う。
【００１３】
請求項７記載の発明は、請求項１〜請求項６の何れか１項記載の発明において、前記今回の処理で原データとして用いられるデータは、前記処理要求元から入力されるか、又は、第２記憶手段に記憶された複数のデータの中から前記処理要求元によって指定される。
【００１４】
請求項８記載の発明は、請求項１〜請求項５の何れか１項記載の発明において、前記指示情報には、処理要求元の環境を表す環境情報も記述されており、前記生成手段は、生成する前記処理規定情報で規定する前記処理の詳細を、前記指示情報に記述された前記環境情報が表す処理要求元の環境に応じて相違させる。
【００１５】
請求項９記載の発明は、請求項８記載の発明において、原データとして使用される複数のデータを記憶する第２記憶手段を備え、前記生成手段は、前記第２記憶手段に記憶されている複数のデータのうち、前記今回の処理で原データとして用いるデータを、前記環境情報が表す処理要求元の環境に応じて選択する。
【００１６】
請求項１０記載の発明に係る情報処理プログラムは、コンピュータを、原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段、前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記処理規定情報と対応付けて記憶する第１記憶手段に、前記生成手段によって今回生成された前記処理規定情報及び今回生成された前記処理規定情報で規定された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段、及び、前記判定手段により、今回生成された前記処理規定情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第１記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第１記憶手段に記憶されている前記出力データを出力する出力手段として機能させる。
【００１７】
請求項１１記載の発明に係る情報処理プログラムは、コンピュータを、原データから出力データを得る処理が実行対象として記述された指示情報が処理要求元から入力されると、前記指示情報に基づいて前記処理の詳細を規定する処理規定情報を生成する生成手段、前記生成手段によって過去に生成された前記処理規定情報に従って処理手段が処理を行うことで原データから過去に得られた出力データを、前記原データとして用いられたデータ及び前記指示情報と対応付けて記憶する第１記憶手段に、今回入力された前記指示情報及び今回入力された前記指示情報に実行対象として記述された今回の処理で原データとして用いられるデータと対応付けられた出力データが記憶されているか否かを判定する判定手段、及び、前記判定手段により、今回入力された前記指示情報及び前記今回の処理で原データとして用いられるデータと対応付けられた出力データが前記第１記憶手段に記憶されていると判定された場合に、前記処理手段によって処理を行わせることなく、前記第１記憶手段に記憶されている前記出力データを出力する出力手段として機能させる。
【発明の効果】
【００１８】
請求項１,５〜１１記載の発明は、本構成を有しない場合と比較して、指示情報が入力されてから、当該指示情報に記述された処理を行うことで原データから得られる出力データが出力される迄の平均時間を短縮できる、という効果を有する。
【００１９】
請求項２記載の発明は、本構成を有しない場合と比較して、指示情報が入力されてから、当該指示情報に記述された処理を行うことで原データから得られる出力データが出力される迄の平均時間を更に短縮できる、という効果を有する。
【００２０】
請求項３記載の発明は、原データとして用いられたデータ自体を記憶させる場合と比較して、記憶手段の記憶容量の節減、判定手段の判定に要する時間の短縮を実現できる、という効果を有する。
【００２１】
請求項４記載の発明は、処理規定情報自体を記憶させる場合と比較して、記憶手段の記憶容量の節減、判定手段の判定に要する時間の短縮を実現できる、という効果を有する。
【図面の簡単な説明】
【００２２】
【図１】第１実施形態で説明したコンピュータの概略構成を示すブロック図である。
【図２】画像処理部の構成例を示すブロック図である。
【図３】(Ａ)は画像処理モジュール、(Ｂ)はバッファモジュールの概略構成及び実行される処理を各々示すブロック図である。
【図４】制御指示受付実行部によって実行される制御指示受付実行処理の内容を示すフローチャートである。
【図５】画像処理部における画像処理の流れを説明する概略図である。
【図６】第２実施形態で説明したコンピュータ・システムの概略構成を示すブロック図である。
【図７】ウェブページ配信処理の内容を示すフローチャートである。
【発明を実施するための形態】
【００２３】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。
【００２４】
〔第１実施形態〕
図１には、本発明に係る情報処理装置として機能することが可能なコンピュータ１０が示されている。なお、このコンピュータ１０は、複写機、プリンタ、ファクシミリ装置、これらの機能を兼ね備えた画像形成装置、スキャナ、写真プリンタ等のように内部で画像処理を行う必要のある任意の画像取扱機器に組み込まれていてもよいし、パーソナル・コンピュータ（ＰＣ）等の独立したコンピュータであってもよく、更にＰＤＡ（Personal Digital Assistant）や携帯電話機等の携帯機器に組み込まれたコンピュータであってもよい。
【００２５】
コンピュータ１０はＣＰＵ１２、メモリ１４、表示部１６、操作部１８、記憶部２０、画像データ供給部２２及び画像出力部２４を備えており、これらはバス２６を介して互いに接続されている。コンピュータ１０が上述した画像取扱機器に組み込まれている場合、表示部１６や操作部１８としては、画像取扱機器に設けられたＬＣＤ等から成る表示パネルやテンキー等を適用される。また、コンピュータ１０が独立したコンピュータである場合、表示部１６や操作部１８としては、当該コンピュータに接続されたディスプレイやキーボード、マウス等を適用される。また、記憶部２０としてはＨＤＤ(Hard Disk Drive)が好適であるが、これに代えてフラッシュメモリ等の他の不揮発性の記憶手段を用いてもよい。
【００２６】
また、画像データ供給部２２は処理対象の画像データを供給するものであればよく、例えば紙や写真フィルム等の記録材料に記録されている画像を読み取って画像データを出力する画像読取部、通信回線を介して外部から画像データを受信する受信部、画像データを記憶する画像記憶部（メモリ１４又は記憶部２０）等が適用される。また、画像出力部２４は画像処理を経た画像データ又は該画像データが表す画像を出力するものであればよく、例えば画像データが表す画像を紙や感光材料等の記録材料に記録する画像記録部、画像データが表す画像をディスプレイ等に表示する表示部、画像データを記録メディアに書き込む書込装置、画像データを通信回線を介して送信する送信部が適用される。また、画像出力部２４は画像処理を経た画像データを単に記憶する画像記憶部（メモリ１４又は記憶部２０）であっても構わない。
【００２７】
図１に示すように、記憶部２０には、ＣＰＵ１２によって実行される各種のプログラムとして、メモリ１４等のリソースの管理やＣＰＵ１２によるプログラムの実行の管理、コンピュータ１０と外部との通信等を司るオペレーティングシステム３０のプログラム、コンピュータ１０を画像処理装置として機能させるための画像処理プログラム群３４、ＣＰＵ１２が上記画像処理プログラム群を実行することで実現される画像処理装置によって実行させる実行対象の画像処理が、例えばＸＭＬ(eXtensible Markup Language)形式やその他の形式で記述された各種の制御指示情報３２(図１では制御指示情報群３２と表記)、画像処理の処理結果(出力データ)を格納するための処理結果ＤＢ(データベース)２８が各々記憶されている。
【００２８】
画像処理プログラム群３４は、前述した各種の画像取扱機器や携帯機器を開発する際の開発負荷を軽減したり、ＰＣ等で利用する画像処理プログラムを開発する際の開発負荷を軽減することを目的として、各種の画像取扱機器や携帯機器、ＰＣ等の各種機器（プラットフォーム）で共通に使用可能に開発されたプログラムである。画像処理プログラム群３４によって実現される画像処理装置は、制御指示情報３２に記述された実行対象の画像処理に従い、実行対象の画像処理を行う画像処理部を構築し、構築した画像処理部によって画像処理を行う(詳細は後述)。画像処理プログラム群３４は、所望の画像処理を記述した制御指示情報３２を、所望の画像処理を行わせる入力データと共に画像処理プログラム群３４に入力することで、入力データに対して所望の画像処理の実行を指示するためのインタフェースを提供している。このため、内部で画像処理を行う必要のある任意の機器を新規開発する等の場合にも、前記画像処理を行うプログラムの開発に関しては、当該機器で必要とされる画像処理を実行対象の画像処理として記述した制御指示情報３２を生成するのみで済み、実際に画像処理を行うプログラムを新たに開発する必要が無くなるので、開発負荷が軽減される。
【００２９】
以下、画像処理プログラム群３４について説明する。図１に示すように、画像処理プログラム群３４はモジュールライブラリ３６と、処理構築部４２のプログラムと、処理管理部４６のプログラムと、制御指示受付実行部４８のプログラムと、に大別される。なお、画像処理プログラム群３４のうち、制御指示受付実行部４８のプログラム(後述する制御指示受付実行処理を行うためのプログラム)は、本発明に係る情報処理プログラムの一例である。
【００３０】
本実施形態では、例として図２に示すように、予め定められた画像処理を行う１つ以上の画像処理モジュール３８と、個々の画像処理モジュール３８の前段及び後段の少なくとも一方に配置され画像データを記憶するためのバッファを備えたバッファモジュール４０と、がパイプライン形態又はＤＡＧ(Directed Acyclic Graph：有向非循環グラフ)形態で連結されて成る画像処理部５０を構築し、構築した画像処理部５０によって画像処理を行う。本第１実施形態では、制御指示情報３２として、処理構築部４２を構成する複数種のモジュール生成部４４(後述)のうち、実行対象の画像処理を実現する画像処理部５０を構築するために起動すべきモジュール生成部４４及びその起動順序を指定することで、実行対象の画像処理を記述した情報を用いている。制御指示受付実行部４８は、入力された制御指示情報３２に従い、制御指示情報３２で指定されたモジュール生成部４４を、制御指示情報３２で指定された起動順序で順に起動することで、処理構築部４２に対して画像処理部５０の構築を指示する。
【００３１】
画像処理部５０を構成する個々の画像処理モジュールの実体はＣＰＵ１２によって実行されＣＰＵ１２で画像処理を行わせるための第１プログラム、又は、ＣＰＵ１２によって実行されＣＰＵ１２により図１に図示されていない外部の画像処理装置（例えば専用画像処理ボード等）に対する処理の実行を指示するための第２プログラムであり、上述したモジュールライブラリ３６には、予め定められた互いに異なる画像処理（例えば入力処理やフィルタ処理、色変換処理、拡大・縮小処理、スキュー角検知処理、画像回転処理、画像合成処理、出力処理等）を行う複数種の画像処理モジュール３８のプログラムが各々登録されている。以下では、説明を簡単にするために、画像処理部５０を構成する個々の画像処理モジュールの実体が上記の第１プログラムであるものとして説明する。
【００３２】
個々の画像処理モジュール３８は、例として図３(Ａ)にも示すように、画像データに対する画像処理を予め設定された単位処理データ量ずつ行う画像処理エンジン３８Ａと、画像処理モジュール３８の前段及び後段のモジュールとの画像データの入出力及び画像処理エンジン３８Ａの制御を行う制御部３８Ｂと、を備えている。個々の画像処理モジュール３８における単位処理データ量は、画像の１ライン分、画像の複数ライン分、画像の１画素分、画像１面分等の中から、画像処理エンジン３８Ａが行う画像処理の種類等に応じて予め選択・設定されており、例えば色変換処理やフィルタ処理を行う画像処理モジュール３８では単位処理データ量が１画素分とされ、拡大・縮小処理を行う画像処理モジュール３８では単位処理データ量が画像の１ライン分又は画像の複数ライン分とされ、画像回転処理を行う画像処理モジュール３８では単位処理データ量が画像１面分とされ、画像圧縮伸長処理を行う画像処理モジュール３８では単位処理データ量が実行環境に依存するＮバイトとされている。
【００３３】
また、モジュールライブラリ３６には、画像処理エンジン３８Ａが実行する画像処理の種類が同一でかつ実行する画像処理の内容が異なる画像処理モジュール３８も登録されている（図１では、この種の画像処理モジュールを「モジュール１」「モジュール２」と表記して示している）。例えば拡大・縮小処理を行う画像処理モジュール３８については、入力された画像データを１画素おきに間引くことで50％に縮小する縮小処理を行う画像処理モジュール３８、入力された画像データに対して指定された拡大・縮小率で拡大・縮小処理を行う画像処理モジュール３８等の複数の画像処理モジュール３８が各々用意されている。また、例えば色変換処理を行う画像処理モジュール３８については、ＲＧＢ色空間をＣＭＹ色空間へ変換する画像処理モジュール３８やその逆へ変換する画像処理モジュール３８、Ｌ*ａ*ｂ*色空間等の他の色空間変換を行う画像処理モジュール３８が各々用意されている。
【００３４】
また、画像処理モジュール３８の制御部３８Ｂは、画像処理エンジン３８Ａが単位処理データ量ずつ処理するために必要な画像データを入力するために、自モジュールの前段のモジュール（例えばバッファモジュール４０）から画像データを単位読出データ量ずつ取得し、画像処理エンジン３８Ａから出力される画像データを単位書込データ量ずつ後段のモジュール（例えばバッファモジュール４０）へ出力する（画像処理エンジン３８Ａで圧縮等のデータ量の増減を伴う画像処理が行われなければ単位書込データ量＝単位処理データ量となる）か、画像処理エンジン３８Ａによる画像処理の結果を自モジュールの外部へ出力する（例えば画像処理エンジン３８Ａがスキュー角検知処理等の画像解析処理を行う場合、画像データに代えてスキュー角検知結果等の画像解析処理結果が出力されることがある）処理を行うが、モジュールライブラリ３６には、画像処理エンジン３８Ａが実行する画像処理の種類及び内容が同一で、上記の単位処理データ量や単位読出データ量、単位書込データ量が異なる画像処理モジュール３８も登録されている。例えば画像回転処理を行う画像処理モジュール３８における単位処理データ量についても、前述した画像１面分に限られるものではなく、同じ画像回転処理を行いかつ単位処理データ量が互いに異なる（例えば画像の１ライン分や複数ライン分等の）複数の画像処理モジュール３８がモジュールライブラリ３６に含まれていても良い。
【００３５】
また、モジュールライブラリ３６に登録されている個々の画像処理モジュール３８のプログラムは、画像処理エンジン３８Ａに相当するプログラムと、制御部３８Ｂに相当するプログラムから構成されているが、制御部３８Ｂに相当するプログラムは部品化されており、個々の画像処理モジュール３８のうち単位読出データ量及び単位書込データ量が同一の画像処理モジュール３８は、画像処理エンジン３８Ａで実行される画像処理の種類や内容に拘わらず、制御部３８Ｂに相当するプログラムが共通化されている(制御部３８Ｂに相当するプログラムとして同一のプログラムが用いられている)。これにより、画像処理モジュール３８のプログラムの開発にあたっての開発負荷が軽減される。
【００３６】
なお、画像処理モジュール３８の中には、入力される画像の属性が未知の状態では単位読出データ量及び単位書込データ量が確定しておらず、入力画像データの属性を取得し、取得した属性を予め定められた演算式に代入して演算することで単位読出データ量や単位書込データ量が確定するモジュールが存在しているが、この種の画像処理モジュール３８については、単位読出データ量と単位書込データ量が互いに同一の演算式を用いて導出される画像処理モジュール３８について、制御部３８Ｂに相当するプログラムを共通化するようにすればよい。また、本実施形態に係る画像処理プログラム群３４は、前述のように各種機器に実装できるが、画像処理プログラム群３４のうちモジュールライブラリ３６に登録する画像処理モジュール３８の数や種類等については、画像処理プログラム群３４を実装する各種機器で必要とされる画像処理に応じて、追加・削除・入替等ができることは言うまでもない。
【００３７】
また、画像処理部５０を構成する個々のバッファモジュール４０は、例として図３(Ｂ)にも示すように、バッファ４０Ａと、バッファモジュール４０の前段及び後段のモジュールとの画像データの入出力及びバッファ４０Ａの管理を行うバッファ制御部４０Ｂを備えている。なお、バッファ４０Ａはコンピュータ１０に設けられたメモリ１４からオペレーティングシステム３０及びリソース管理部４６Ｂを通じて確保されたメモリ領域で構成される。個々のバッファモジュール４０のバッファ制御部４０Ｂもその実体はＣＰＵ１２によって実行されるプログラムであり、モジュールライブラリ３６にはバッファ制御部４０Ｂのプログラムも登録されている（図１ではバッファ制御部４０Ｂのプログラムを「バッファモジュール」と表記して示している）。
【００３８】
また、制御指示受付実行部４８からの指示に従って画像処理部５０を構築する処理構築部４２は、図１に示すように複数種のモジュール生成部４４から構成されている。複数種のモジュール生成部４４は互いに異なる画像処理に対応しており、制御指示受付実行部４８によって起動されることで、対応する画像処理を実現するための画像処理モジュール３８及びバッファモジュール４０から成るモジュール群を生成する処理を行う。なお、図１ではモジュール生成部４４の一例として、モジュールライブラリ３６に登録されている個々の画像処理モジュール３８が実行する画像処理の種類に対応するモジュール生成部４４を示しているが、個々のモジュール生成部４４に対応する画像処理は、複数種の画像処理モジュール３８によって実現される画像処理（例えばスキュー角検知処理と画像回転処理から成るスキュー補正処理）であってもよい。構築対象の画像処理部５０によって実現される画像処理が複数種の画像処理を組み合わせた処理である場合、制御指示受付実行部４８は制御指示情報３２に従って複数種の画像処理の何れかに対応するモジュール生成部４４を順次起動する。これにより、制御指示受付実行部４８によって順次起動されたモジュール生成部４４により、必要とされる画像処理を行う画像処理部５０が構築されることになる。
【００３９】
また図１に示すように、処理管理部４６は、画像処理部５０における画像処理の実行を制御するワークフロー管理部４６Ａ、画像処理部５０の各モジュールによるメモリ１４や各種のファイル等のコンピュータ１０のリソースの使用を管理するリソース管理部４６Ｂ、及び、画像処理部５０で発生したエラーを管理するエラー管理部４６Ｃを含んで構成されている。エラー管理部４６Ｃは、画像処理部５０が画像処理を実行している途中でエラーが発生した場合に、発生したエラーの種別・発生箇所等のエラー情報を取得し、画像処理プログラム群３４がインストールされたコンピュータ１０が組み込まれている機器の種別や構成等を表す装置環境情報を記憶部２０等から取得し、取得した装置環境情報が表す装置環境に応じたエラー通知方法を判断し、判断したエラー通知方法でエラーの発生を通知する処理を行う。
【００４０】
次に本第１実施形態の作用を説明する。画像処理プログラム群３４が実装されている機器において、何らかの画像処理を実行する必要がある状況になると、実行すべき画像処理が実行対象として記述された制御指示情報３２が入力又は選択されると共に、画像処理実行対象の画像データが入力又は指定され、これに伴い制御指示受付実行部４８が起動される。
【００４１】
なお、画像処理を行う必要のある状況としては、例えば画像データ供給部２２としての画像読取部によって画像を読み取り、画像出力部２４としての画像記録部により記録材料に画像として記録するか、画像出力部２４としての表示部に画像として表示させるか、画像出力部２４としての書込装置により画像データを記録メディアに書き込むか、画像出力部２４としての送信部により画像データを送信するか、画像出力部２４としての画像記憶部に記憶させる処理の実行が利用者によって指示された場合、或いは、画像データ供給部２２としての受信部によって受信されるか、画像データ供給部２２としての画像記憶部に記憶されている画像データに対して、上記の記録材料への記録、表示部への表示、記録メディアへの書き込み、送信、画像記憶部への記憶の何れかを行う処理の実行が利用者によって指示された場合が挙げられる。また、画像処理を実行する必要のある状況は上記に限られるものではなく、例えば利用者からの指示に応じて制御指示受付実行部４８が実行できる処理の名称等を表示部１６に一覧表示している状態で、実行対象の処理が利用者によって選択された等の場合であってもよい。
【００４２】
また、制御指示情報３２の入力又は選択、及び、画像処理実行対象の画像データ(入力画像データ)の入力又は指定は、例えば利用者の指示に応じて起動されたアプリケーション・プログラムによって行われる。入力画像データとしては、例えば画像データ供給部２２としての画像読取部によって画像が読み取られることで得られた画像データ、画像データ供給部２２としての受信部によって受信された画像データ、画像データ供給部２２としての画像記憶部に記憶されている画像データの何れかが入力又は指定される。また、制御指示情報３２についても、記憶部２０に予め記憶されている制御指示情報３２のうちの何れかが選択されるか、又は、画像データ供給部２２としての受信部によって入力画像データと共に受信された制御指示情報３２が入力される。
【００４３】
制御指示受付実行部４８は、制御指示情報３２が入力(又は選択)されると共に、入力画像データが入力(又は指定)されて起動されると、図４に示す制御指示受付実行処理を行う。この制御指示受付実行処理では、まずステップ１００において、画像処理実行対象として入力又は指定された入力画像データからハッシュ関数を用いてハッシュ値を演算する。なお、上記の入力画像データは請求項１等に記載の原データの一例であり、入力画像データから演算したハッシュ値は請求項３に記載の原データ識別情報の一例である。
【００４４】
本実施形態に係る処理結果ＤＢ２８は、入力された制御指示情報３２に従って過去に構築された画像処理部５０によって画像処理が行われることで得られた画像データ(出力画像データ)が、入力画像データのハッシュ値、入力された制御指示情報３２、及び、後述するモジュール接続情報のハッシュ値と対応付けて登録されるデータベースであり、ステップ１０２では、入力された制御指示情報３２及びステップ１００で演算した入力画像データのハッシュ値をキーとして各々用いて処理結果ＤＢ２８を検索し、次のステップ１０４では、上記の制御指示情報３２及び入力画像データのハッシュ値と各々対応付けられた出力画像データが処理結果ＤＢ２８に登録されているか否か判定する。なお、ステップ１０２,１０４は請求項２,５に記載の判定手段による処理の一例である。
【００４５】
ステップ１０４の判定は、今回入力された制御指示情報３２と入力画像データの組み合わせで過去に画像処理が行われたか否かを判定しており、この判定が否定された場合はステップ１０６へ移行し、まずワークフロー管理部４６Ａのプログラムを実行するスレッドを起動した後に、今回入力された制御指示情報３２で指定されたモジュール生成部４４を、制御指示情報３２で指定された起動順序で順に起動することで、今回入力された制御指示情報３２に実行対象として記述された画像処理を実現する画像処理部５０を処理構築部４２によって構築させる。
【００４６】
以下、画像処理部５０の構築について説明する。制御指示受付実行部４８は、まず画像データ供給部２２として、入力画像データが格納されているバッファ領域（メモリ１４の一部領域）を含むバッファモジュール４０を生成する。バッファモジュール４０の新規生成では、バッファモジュール４０のバッファ制御部４０Ｂのプログラムを実行するスレッド（プロセス又はオブジェクトでもよい：以下同様）を生成することでバッファ制御部４０Ｂを生成し、生成されたバッファ制御部４０Ｂによりバッファ４０Ａとして使用するメモリ領域が確保されることによって成されるが、ここでのバッファモジュール４０の生成は、入力画像データが格納されているバッファ領域を既に確保されたバッファ４０Ａとして（バッファ制御部４０Ｂに）認識させるパラメータを設定してバッファ制御部４０Ｂを生成する処理を行うことによって成される。ここで生成されたバッファモジュール４０は画像データ供給部２２として機能する。
【００４７】
続いて制御指示受付実行部４８は、上記と同様に、画像処理を行った画像データの出力先としての画像出力部２４の種別を認識し、認識した種別がバッファ領域（メモリ１４の一部領域）であった場合は、画像出力部２４として指定されたバッファ領域を含むバッファモジュール４０を上記と同様にして生成する。ここで生成されたバッファモジュール４０は画像出力部２４として機能する。
【００４８】
また、制御指示受付実行部４８は、今回入力された制御指示情報３２で起動順序が１番目に指定されているモジュール生成部４４を起動（モジュール生成部４４のプログラムを実行するスレッドを生成）した後に、起動したモジュール生成部４４に対し、当該モジュール生成部４４によるモジュール群の生成に必要な情報として、前記モジュール群に画像データを入力する入力モジュールを識別するための入力モジュール識別情報、前記モジュール群が画像データを出力する出力モジュールを識別するための出力モジュール識別情報、前記モジュール群に入力される入力画像データの属性を表す入力画像属性情報、実行すべき画像処理のパラメータを通知し、対応するモジュール群の生成を指示する処理を繰り返す。
【００４９】
なお、上記の入力モジュールは、起動順序が１番目のモジュール生成部４４によって生成されるモジュール群については画像データ供給部２２が入力モジュールとなり、起動順序が２番目以降のモジュール生成部４４によって生成されるモジュール群については前段のモジュール群の最終モジュール（通常はバッファモジュール４０）が入力モジュールとなる。また、上記の出力モジュールについては、起動順序が最後のモジュール生成部４４によって生成されるモジュール群では画像出力部２４が出力モジュールとなるので、画像出力部２４が出力モジュールとして指定されるが、その他のモジュール群では出力モジュールは未確定のために制御指示受付実行部４８による指定は行われず、必要な場合はモジュール生成部４４によって生成・設定される。
【００５０】
一方、制御指示受付実行部４８によって起動された個々のモジュール生成部４４は、まず生成すべき画像処理モジュール３８に入力される入力画像データの属性を表す入力画像属性情報を取得する。なお、入力画像属性情報の取得は、生成する画像処理モジュール３８の前段にバッファモジュール４０が存在している場合、当該バッファモジュール４０に画像データの書き込みを行う更に前段の画像処理モジュール３８から出力画像データの属性を取得することによって実現できる。
【００５１】
次に、生成する画像処理モジュール３８の後段にバッファモジュール４０が必要が否かを判定する。この判定は、画像処理モジュールの後段が出力モジュール（画像出力部２４）である場合（例えば図２(Ａ)〜(Ｃ)に示す画像処理部５０における最後段の画像処理モジュール３８を参照）や、例として図２(Ｂ)に示す画像処理部５０においてスキュー角検知処理を行う画像処理モジュール３８のように、画像処理モジュールが、画像データに対して解析等の画像処理を行いその結果を他の画像処理モジュール３８へ出力するモジュールである場合は否定されるが、上記以外の場合は判定が肯定され、バッファ制御部４０Ｂを起動する（バッファ制御部４０Ｂのプログラムを実行するスレッドを生成する）ことで、画像処理モジュールの後段に連結するバッファモジュール４０を生成する。
【００５２】
次に、前段のモジュール（例えばバッファモジュール４０）の情報と後段のバッファモジュール４０の情報、画像処理モジュール３８に入力される入力画像データの属性、処理パラメータを与えて、画像処理モジュール３８を生成する。なお、後段のバッファモジュール４０が不要と判断された画像処理モジュール３８に対しては後段のバッファモジュール４０の情報は与えられず、また例えば50％縮小処理のように処理内容が固定的で特別な画像処理パラメータが必要ない場合には処理パラメータは与えられない。
【００５３】
画像処理モジュールの生成では、モジュールライブラリ３６に登録されており、画像処理モジュール３８として利用可能な複数の候補モジュールの中から、入力画像データの属性、及び、画像処理モジュール３８で実行すべき処理パラメータに合致する画像処理モジュール３８が選択される。例えばモジュール生成部４４が色変換処理を行うモジュール群を生成するモジュール生成部であり、処理パラメータにより出力画像データの色空間としてＣＭＹ色空間が制御指示受付実行部４８から指定され、更に入力画像データがＲＧＢ色空間のデータであった場合には、モジュールライブラリ３６に登録されている各種の色空間処理を行う複数種の画像処理モジュール３８の中から、ＲＧＢ→ＣＭＹの色空間変換を行う画像処理モジュール３８が選択される。
【００５４】
また、画像処理モジュールが拡大・縮小処理を行う画像処理モジュール３８であり、指定された拡大縮小率が50％以外であれば、入力された画像データに対して指定された拡大・縮小率で拡大・縮小処理を行う画像処理モジュール３８が選択され、指定された拡大縮小率が50％であれば、拡大縮小率50％に特化した拡大縮小処理、すなわち入力された画像データを１画素おきに間引くことで50％に縮小する縮小処理を行う画像処理モジュール３８が選択される。なお、画像処理モジュール３８の選択は上記に限られるものではなく、例えば画像処理エンジン３８Ａによる画像処理における単位処理データ量が異なる画像処理モジュール３８をモジュールライブラリ３６に複数登録しておき、画像処理部５０へ割当可能なメモリ領域のサイズ等の動作環境に応じて、適切な単位処理データ量の画像処理モジュール３８を選択する（例えば上記サイズが小さくなるに従って単位処理データ量の小さい画像処理モジュール３８を選択する等）ようにしてもよい。また、例えばモジュール生成処理に対応するモジュール生成部４４が、複数種の画像処理モジュール３８によって実現される画像処理（例えばスキュー角検知処理を行う画像処理モジュール３８と画像回転処理を行う画像処理モジュール３８によって実現されるスキュー補正処理）を行うモジュール群を生成する場合には、２個以上の画像処理モジュール３８を含むモジュール群が生成される。
【００５５】
そしてモジュール生成部４４は、後段のバッファモジュール４０のＩＤと生成した画像処理モジュール３８のＩＤの組をワークフロー管理部４６Ａに通知する。このＩＤは、個々のモジュールを一意に判別できる情報であればよく、例えば個々のモジュールの生成順に付与した番号や、バッファモジュール４０や画像処理モジュール３８のオブジェクトのメモリ上でのアドレス等でも良い。ワークフロー管理部４６Ａに通知された情報は、ワークフロー管理部４６Ａの内部で管理している管理テーブルに登録され、後の処理で使われる。なお、各モジュールのＩＤはテーブル形式に代えてリスト形式や連想配列形式等で保持するようにしてもよい。
【００５６】
制御指示受付実行部４８によって順次起動されたモジュール生成部４４により、上述した処理が順次行われることで、例として図２(Ａ)〜(Ｃ)に示すように、実行対象の画像処理を行う画像処理部５０が構築される。
【００５７】
以上の処理によって画像処理部５０の構築が完了すると、次のステップ１０８では、処理構築部４２(のうち起動したモジュール生成部４４)によって生成された画像処理部５０の構成(画像処理部５０を構成する画像処理モジュール３８の数や種類、バッファモジュール４０を含む各モジュールの接続関係等)を表すモジュール接続情報を生成する。なお、上記のモジュール接続情報は請求項１等に記載の処理規定情報の一例(詳しくは、請求項６に記載の「処理モジュールの接続関係を表す情報」の一例)であり、ステップ１０６,１０８は本発明における生成手段(より詳しくは請求項６に記載の生成手段)による処理の一例である。
【００５８】
ステップ１１０では、ステップ１０８で生成したモジュール接続情報からハッシュ関数を用いてハッシュ値を演算する。なお、モジュール接続情報から演算したハッシュ値は請求項４に記載の処理規定情報識別情報の一例である。ステップ１１２では、ステップ１１０で演算したモジュール接続情報のハッシュ値及びステップ１００で演算した入力画像データのハッシュ値をキーとして各々用いて処理結果ＤＢ２８を検索し、次のステップ１１４では、上記のモジュール接続情報のハッシュ値及び入力画像データのハッシュ値と各々対応付けられた出力画像データが処理結果ＤＢ２８に登録されているか否か判定する。なお、ステップ１１２,１１４は請求項１に記載の判定手段による処理の一例である。
【００５９】
ステップ１１４の判定は、今回生成されたモジュール接続情報が表す画像処理部５０の構成と同一の構成の画像処理部５０により、今回入力された入力画像データに対して過去に画像処理が行われたか否かを判定しており、この判定が否定された場合はステップ１１６へ移行し、制御指示受付実行部４８は、画像処理部５０による入力画像データに対する画像処理の実行をワークフロー管理部４６Ａに指示する。
【００６０】
これにより、処理管理部４６のワークフロー管理部４６Ａは、処理構築部４２によって生成された、画像処理部５０のプログラムを実行する複数のスレッドをＣＰＵ１２によって並列に実行させると共に、画像処理部５０の最後段に位置している画像処理モジュール３８に処理要求を入力する。また、任意のバッファモジュール４０からデータ要求が入力される毎に、要求元のバッファモジュール４０の前段の画像処理モジュール３８に処理要求を入力し、任意の画像処理モジュールから処理完了通知が入力される毎に、通知元の画像処理モジュールに処理要求を入力することを、最後段の画像処理モジュールから全体処理の終了（１面分の画像データに対する画像処理の終了）が通知される迄繰り返す。
【００６１】
図３(Ａ)に示すように、画像処理部５０の個々の画像処理モジュール３８は、ワークフロー管理部４６Ａから処理要求が入力される(図３(Ａ)の(1)参照)度に、前段のバッファモジュール４０に対して画像データを要求し(図３(Ａ)の(2)参照)、前段のバッファモジュール４０から単位データ量の画像データを読み出し(図３(Ａ)の(3)参照)、後段のバッファモジュール４０から画像データの書込領域を取得し(図３(Ａ)の(4)参照)、前段のバッファモジュール４０から読み出した画像データに対して画像処理エンジン３８Ａで画像処理を行い(図３(Ａ)の(5)参照)、画像処理後の画像データを後段のバッファモジュール４０へ出力し(図３(Ａ)の(6)参照)、ワークフロー管理部４６Ａへ処理完了を通知する(図３(Ａ)の(7)参照)、という一連の処理を繰り返す。
【００６２】
また、図３(Ｂ)に示すように、画像処理部５０の個々のバッファモジュール４０は、後段の画像処理モジュール３８から画像データが要求される(図３(Ｂ)の(1)参照)度に、要求された画像データが自モジュールのバッファ４０Ａに記憶されているか否かをチェックし(図３(Ｂ)の(2)参照)、記憶されていなければワークフロー管理部４６Ａに対して画像データを要求し(図３(Ｂ)の(3)参照)、ワークフロー管理部４６Ａから前段の画像処理モジュール３８に処理要求が入力される(図３(Ｂ)の(4)参照)ことで、前段の画像処理モジュール３８からバッファ４０Ａに画像データが書き込まれる(図３(Ｂ)の(5),(6)参照)と、書き込まれた画像データを後段の画像処理モジュール３８によって読み出させる(図３(Ｂ)の(7)参照)、という一連の処理を繰り返す。
【００６３】
これにより、例として図５の(1)〜(19)に示すように、ワークフロー管理部４６Ａ及び画像処理部５０の各モジュール間で画像データ、処理要求、データ要求及び処理完了通知が送受されることで、個々の画像処理モジュール３８における画像処理が並列に行われる。そして、画像データ供給部２２のバッファに格納されている入力画像データに対し、制御指示情報３２に実行対象として記述された画像処理が画像処理部５０によって行われ、画像出力部２４のバッファに処理結果(出力画像データ)が格納される。なお、ステップ１１６は本発明における処理手段による処理の一例である。
【００６４】
次のステップ１１８では、ステップ１１６で得られた出力画像データを、今回入力された制御指示情報３２、モジュール接続情報のハッシュ値及び入力画像データのハッシュ値と対応付けて処理結果ＤＢ２８に登録する。そしてステップ１２０では、ステップ１１６で取得した出力画像データを今回入力された制御指示情報３２の記述に従って出力し(例えば記録材料への画像の記録、表示部への画像の表示、記録メディアへの画像データの書き込み、画像データの送信、画像記憶部への画像データの記憶の何れか)、制御指示受付実行処理を終了する。
【００６５】
一方、今回入力された制御指示情報３２と入力画像データの組み合わせで過去に画像処理が行われていた場合には、制御指示受付実行処理(図４)のステップ１０２における処理結果ＤＢ２８の検索において、入力された制御指示情報３２及び入力画像データのハッシュ値と各々対応付けられた出力画像データが抽出されることで、ステップ１０４の判定が肯定される。また、ステップ１０４の判定が否定された場合にも、今回生成されたモジュール接続情報が表す画像処理部５０の構成と同一の構成の画像処理部５０により、今回入力された入力画像データに対して過去に画像処理が行われていた場合には、制御指示受付実行処理(図４)のステップ１１２における処理結果ＤＢ２８の検索において、モジュール接続情報のハッシュ値及び入力画像データのハッシュ値と各々対応付けられた出力画像データが抽出されることで、ステップ１１４の判定が肯定される。
【００６６】
なお、ステップ１０４の判定が否定されてステップ１１４の判定が肯定される場合としては、実行対象の画像処理が同一(実行対象の画像処理を実現するための画像処理部５０の構成が同一)であるにも拘わらず、制御指示情報３２上での記述が相違している場合等が挙げられる。本実施形態では、制御指示情報３２がＸＭＬ形式等で記述されるので、実行対象の画像処理が同一であっても制御指示情報３２上での記述では或る程度のばらつきが許容され、実行対象の画像処理(を実現するための画像処理部５０の構成)が同一であっても過去に入力された制御指示情報３２と記述が異なる制御指示情報３２が入力される可能性がある。これに対し、本実施形態に係る制御指示受付実行処理では、モジュール接続情報(のハッシュ値)を用いて処理結果ＤＢ２８の再検索を行っているので、制御指示情報３２上での記述が相違していたとしても、実行対象の画像処理(を実現するための画像処理部５０の構成)が同一の制御指示情報３２が入力された場合には、入力画像データも同一であれば、処理結果ＤＢ２８に格納された出力画像データを利用できることが検知される。
【００６７】
ステップ１０４又はステップ１１４の判定が肯定された場合にはステップ１２４へ移行し、ステップ１０２又はステップ１１２の検索で抽出された出力画像データを処理結果ＤＢ２８から読み出す。そしてステップ１２６では、処理結果ＤＢ２８から読み出した出力画像データを制御指示情報３２に従って出力し、制御指示受付実行処理を終了する。この場合、画像処理部５０による画像処理が行われないので、入力された制御指示情報３２及び入力画像データに対応する出力画像データが早期に出力され、コンピュータ１０に加わる負荷も低減される。なお、ステップ１２４,１２６は本発明における出力手段による処理の一例である。
【００６８】
〔第２実施形態〕
次に本発明の第２実施形態について説明する。図ａには、本第２実施形態に係るコンピュータ・システム２００が示されている。コンピュータ・システム２００は、ネットワーク２０２にウェブサーバ２０４及び複数台のクライアント端末２０６が各々接続されて構成されている。なお、ネットワーク２０２はインターネットでもよいしイントラネット等でもよい。
【００６９】
ウェブサーバ２０４は、ＣＰＵ２０４Ａ、ＲＯＭ及びＲＡＭを含むメモリ２０４Ｂ、ＨＤＤやフラッシュメモリ等の不揮発性の記憶部２０４Ｃ、ネットワークＩ／Ｆ部２０４Ｄを備えており、ネットワークＩ／Ｆ部２０４Ｄを介してネットワーク２０２に接続されている。記憶部２０４Ｃには、ウェブサーバ２０４で後述するウェブページ配信処理を行うためのウェブページ配信プログラムがインストールされており、ウェブページ構成情報ＤＢ２０８、元データＤＢ２１０及び配信済ページＤＢ２１２も記憶されている(詳細は何れも後述)。
【００７０】
また、クライアント端末２０６は、デスクトップ型のＰＣやノートブック型のＰＣ、ＰＤＡ、携帯電話機等の何れでもよい。これらのクライアント端末２０６は、ディスプレイのサイズや解像度(画素数)、階調数(表示データの１画素当りのビット数)等のディスプレイの表示環境が互いに相違しているが、ネットワーク２０２に接続されている複数台のクライアント端末２０６の中には、ディスプレイの表示環境の異なるクライアント端末２０６が混在している。
【００７１】
次に本第２実施形態の作用を説明する。本第２実施形態に係るコンピュータ・システム２００において、ウェブサーバ２０４はクライアント端末２０６の要求に応じてウェブページのデータを要求元のクライアント端末２０６へ配信する。クライアント端末２０６からウェブサーバ２０４へのウェブページ配信要求は、配信対象のウェブページのＵＲＬ(Uniform Resource Locator)やクライアント端末２０６のディスプレイの表示環境を表す表示環境情報等の情報がＸＭＬ形式やその他の形式で記述された制御指示情報がクライアント端末２０６からウェブサーバ２０４へ送信されることによって成される。
【００７２】
ウェブサーバ２０４の記憶部２０４Ｃに記憶されている元データＤＢ２１０には、ウェブサーバ２０４が配信する個々のウェブページの生成に用いる複数の元データ(例えば文書データや画像データ、表データ等)が各々記憶されている。また、ウェブサーバ２０４の記憶部２０４Ｃに記憶されているウェブページ構成情報ＤＢ２０８には、ウェブサーバ２０４が配信する個々のウェブページ毎に、ウェブページのレイアウトを指定したりウェブページの各領域に貼り付ける元データを指定する情報から成るウェブページ構成情報が、個々のウェブページのＵＲＬと対応付けて各々登録されている。
【００７３】
更に、ウェブサーバ２０４の記憶部２０４Ｃに記憶されている配信済ページＤＢ２１２には、ウェブサーバ２０４が過去に何れかのクライアント端末２０６へ配信したウェブページのデータが、クライアント端末２０６から受信した制御指示情報、配信したウェブページのデータの生成に用いた元データのハッシュ値、及び、配信したウェブページのデータの生成に用いたページ生成用処理コード(詳細は後述)のハッシュ値と各々対応付けて登録されている。
【００７４】
以下、ウェブサーバ２０４がコンピュータ・システム２００の何れかのクライアント端末２０６から制御指示情報を受信する度に、ＣＰＵ２０４Ａによってウェブページ配信プログラムが実行されることで実現されるウェブページ配信処理について、図７を参照して説明する。
【００７５】
ウェブページ配信処理では、まずステップ２２０において、クライアント端末２０６から受信した制御指示情報から、配信対象のウェブページのＵＲＬ及び表示環境情報を各々抽出する。次のステップ２２２では、ステップ２２０で制御指示情報から抽出したＵＲＬをキーにしてウェブページ構成情報ＤＢ２０８を検索し、当該検索によって抽出されたウェブページ構成情報(配信対象のウェブページに対応するウェブページ構成情報)をウェブページ構成情報ＤＢ２０８から読み出し、読み出したウェブページ構成情報に基づいて、元データＤＢ２１０に記憶されている元データのうち、配信対象のウェブページの生成に用いる元データを認識する。
【００７６】
ステップ２２４では、ステップ２２０で認識した元データ(配信対象のウェブページの生成に用いる元データ)を元データＤＢ２１０から読み出し、読み出した元データのハッシュ値を演算する。なお、配信対象のウェブページの生成に用いる元データが複数存在している場合には、例えばウェブページのより先頭に近い位置に貼り付けされる元データをハッシュ値の演算対象として選択する等のように、予め設定された選択ルールに従ってハッシュ値演算対象の元データを選択する。ステップ２２６では、ウェブページ要求元のクライアント端末２０６から受信した制御指示情報及びステップ２２４で演算した元データのハッシュ値をキーとして各々用いて配信済ページＤＢ２１２を検索し、次のステップ２２８では、上記の制御指示情報及び元データのハッシュ値と各々対応付けられた配信済ウェブページのデータが配信済ページＤＢ２１２に登録されているか否か判定する。なお、ステップ２２６,２２８は請求項２,５に記載の判定手段による処理の一例である。
【００７７】
ステップ２２８の判定は、今回入力された制御指示情報と今回の配信用ウェブページの生成に用いる元データの組み合わせに対応するウェブページのデータが過去にクライアント端末２０６へ配信されていたか否かを判定しており、この判定が否定された場合はステップ２３０へ移行し、先のステップ２２２でウェブページ構成情報ＤＢ２０８から読み出した配信対象のウェブページに対応するウェブページ構成情報、先のステップ２２２で配信対象のウェブページの生成に用いる元データを認識した結果、及び、先のステップ２２０で制御指示情報から抽出した表示環境情報に基づき、配信対象のウェブページを生成するための処理コード(ページ生成用処理コード)を生成する。
【００７８】
このページ生成用処理コードの生成では、例えばウェブページ構成情報に従い、背景画像を生成したり元データを貼り付る等の処理を組み合わせて配信用のウェブページを生成する処理をＣＰＵ２０４Ａに行わせるための処理コードが生成されるが、表示環境情報が表すウェブページ要求元のクライアント端末２０６のディスプレイの表示環境に応じて、ページサイズの設定や元データの変換 (例えば文字サイズを変更したり画像の解像度や階調数を変換する)等の処理も付加される。なお、ステップ２３０は本発明における生成手段(詳しくは請求項８に記載の生成手段)による処理の一例である。
【００７９】
次のステップ２３２では、ステップ２３０で生成したページ生成用処理コードのハッシュ値を演算する。また、ステップ２３４では、ステップ２３２で演算したページ生成用処理コードのハッシュ値及び先のステップ２２４で演算した元データのハッシュ値をキーとして各々用いて配信済ページＤＢ２１２を検索し、次のステップ２３６では、上記のページ生成用処理コードのハッシュ値及び元データのハッシュ値と各々対応付けられた配信済ウェブページのデータが配信済ページＤＢ２１２に登録されているか否か判定する。なお、ステップ２３４,２３６は請求項１に記載の判定手段による処理の一例である。
【００８０】
ステップ２３６の判定は、今回生成したページ生成用処理コードと今回の配信用ウェブページの生成に用いる元データの組み合わせに対応するウェブページのデータが過去にクライアント端末２０６へ配信されていたか否かを判定しており、この判定が否定された場合はステップ２３８へ移行し、先のステップ２３０で生成したページ生成用処理コードをＣＰＵ２０４Ａで実行することで、配信用ウェブページのデータを生成する。なお、ステップ２３８は本発明における処理手段による処理の一例である。
【００８１】
またステップ２４０では、ステップ２３８で生成した配信用ウェブページのデータを、クライアント端末２０６から今回受信した制御指示情報、先のステップ２３２で演算したページ生成用処理コードのハッシュ値、及び、先のステップ２２４で演算した元データのハッシュ値と対応付けて配信済ページＤＢ２１２に登録する。そしてステップ２４２では、ステップ２３８で生成した配信用ウェブページのデータを、ウェブページ要求元のクライアント端末２０６へ送信(配信)し、ウェブページ配信処理を終了する。
【００８２】
一方、今回入力された制御指示情報と今回の配信用ウェブページの生成に用いる元データの組み合わせに対応するウェブページのデータが過去にクライアント端末２０６へ配信されていた場合には、ステップ２２６における配信済ページＤＢ２１２の検索において、今回入力された制御指示情報及び元データのハッシュ値と各々対応付けられた配信済ウェブページのデータが抽出されることで、ステップ２２８の判定が肯定される。また、ステップ２２８の判定が否定された場合にも、今回生成したページ生成用処理コードと今回の配信用ウェブページの生成に用いる元データの組み合わせに対応するウェブページのデータが過去にクライアント端末２０６へ配信されていた場合には、ステップ２３４における配信済ページＤＢ２１２の検索において、今回生成したページ生成用処理コードのハッシュ値及び元データのハッシュ値と各々対応付けられた配信済ウェブページのデータが抽出されることで、ステップ２３６の判定が肯定される。
【００８３】
なお、ステップ２２８の判定が否定されてステップ２３６の判定が肯定される場合としては、ディスプレイの表示環境が若干相違しているクライアント端末２０６から、同一のウェブページの配信が要求された場合等が挙げられる。本実施形態では、ディスプレイの表示環境を表す表示環境情報が制御指示情報に含まれているため、ディスプレイの表示環境が若干相違しているクライアント端末２０６から送信される制御指示情報は、同一のウェブページの配信を要求する情報であっても情報の一部が相違することになるが、ディスプレイの表示環境の相違が少しであれば、クライアント端末２０６へ配信するウェブページのデータ(及びウェブページのデータを生成するためのページ生成用処理コード)は同一でよい場合がある。
【００８４】
これに対し、本実施形態に係るウェブページ配信処理では、ページ生成用処理コード(のハッシュ値)を用いて配信済ページＤＢ２１２の再検索を行っているので、制御指示情報に含まれる表示環境情報が若干相違していたとしても、過去にウェブページのデータを配信したクライアント端末２０６と同一のデータを配信可能なクライアント端末２０６からの同一のウェブページの配信要求を受信した場合には、配信済ページＤＢ２１２に格納された配信済ウェブページのデータを利用可能であることが検知される。
【００８５】
ステップ２２８又はステップ２３６の判定が肯定された場合にはステップ２４４へ移行し、ステップ２２６又はステップ２３４の検索で抽出された配信済ウェブページのデータを配信済ページＤＢ２１２から読み出す。そしてステップ２４６では、配信済ページＤＢ２１２から読み出した配信用ウェブページのデータを、ウェブページ要求元のクライアント端末２０６へ送信(配信)し、ウェブページ配信処理を終了する。この場合、配信用ウェブページのデータを生成する処理は行われないので、受信した制御指示情報で配信が要求されたウェブページのデータが早期に送信され、ウェブサーバ２０４に加わる負荷も低減される。上記のステップ２４４,２４６は本発明における出力手段による処理の一例である。
【００８６】
なお、第１実施形態では、出力画像データが、入力画像データのハッシュ値、入力された制御指示情報３２、及び、モジュール接続情報のハッシュ値と対応付けて処理結果ＤＢ２８に登録される態様を説明したが、これに限られるものではなく、入力画像データのハッシュ値に代えて入力画像データそのものを処理結果ＤＢ２８に記憶させるようにしてもよいし、モジュール接続情報のハッシュ値に代えてモジュール接続情報そのものを処理結果ＤＢ２８に記憶させるようにしてもよい。また、モジュール接続情報に代えて、画像処理部５０として機能するプログラム実行コード、又はそのハッシュ値を処理結果ＤＢ２８に記憶させて検索に用いるようにしてもよい。また、第１実施形態で説明した制御指示受付実行処理(図４)のステップ１０２,１０４は省略することも可能であり、その場合は処理結果ＤＢ２８への制御指示情報３２の記憶も省略可能である。
【００８７】
また、第２実施形態では、配信済ウェブページのデータが、制御指示情報、ウェブページのデータの生成に用いた元データのハッシュ値、ページ生成用処理コードのハッシュ値と対応付けて配信済ページＤＢ２１２に登録される態様を説明したが、これに限られるものではなく、元データのハッシュ値に代えて元データそのものを配信済ページＤＢ２１２に記憶させるようにしてもよいし、ページ生成用処理コードのハッシュ値に代えてページ生成用処理コードそのものを配信済ページＤＢ２１２に記憶させるようにしてもよい。また、第２実施形態で説明したウェブページ配信処理(図７)のステップ２２６,２２８は省略することも可能であり、その場合は配信済ページＤＢ２１２への制御指示情報の記憶も省略可能である。
【００８８】
また、第２実施形態では、配信用ウェブページのデータの生成に際し、ウェブページ要求元のクライアント端末２０６におけるディスプレイの表示環境に応じて元データを変換する態様を説明したが、これに限られるものではなく、同一のオブジェクト(文書や画像、表等)を表す元データを複数種の表示環境毎に予め用意して元データＤＢ２１０に記憶しておき、配信用ウェブページのデータの生成に際しては、ウェブページ要求元のクライアント端末２０６におけるディスプレイの表示環境に応じた元データを選択する処理を行うようにしてもよい。この態様は請求項９記載の発明の一例である。
【００８９】
また、第１実施形態では、本発明に係る情報処理装置として機能するコンピュータ１０の記憶部２０が本発明における第１記憶手段として機能し、第２実施形態では、本発明に係る情報処理装置として機能するウェブサーバ２０４の記憶部２０４Ｃが本発明における第１記憶手段として機能する態様を説明したが、これに限られるものではなく、本発明に係る情報処理装置とネットワーク等の通信回線を介して接続された別の情報処理装置(例えばＤＢサーバ)によってアクセスされる記憶手段を、本発明における第１記憶手段として機能させる(例えば第１実施形態で説明した処理結果ＤＢ２８や第２実施形態で説明した配信済ページＤＢ２１２を記憶させる)ようにしてもよい。
【００９０】
更に、第１実施形態ではコンピュータ１０を本発明に係る情報処理装置及び本発明における処理手段として機能させる態様を説明し、第２実施形態ではウェブサーバ２０４を本発明に係る情報処理装置及び本発明における処理手段として機能させる態様を説明したが、これに限られるものではなく、例えばデータセンタ等に設置されクラウドコンピューティング技術が適用されたサーバ群によって実現・提供される仮想マシンを、本発明に係る情報処理装置及び本発明における処理手段の少なくとも一方として機能させることも可能である。
【００９１】
また、指示情報に実行対象として記述された原データから出力データを得る処理の一例として、第１実施形態では入力画像データから出力画像データを得る画像処理を、第２実施形態では元データを用いて配信用ウェブページのデータを生成する処理を説明したが、これに限られるものではなく、実行対象の処理としては、原データから出力データを得る任意の処理を適用可能である。
【００９２】
また、第１実施形態では、本発明に係る情報処理プログラムの一例である制御指示受付実行部４８のプログラムがコンピュータ１０の記憶部２０に予め記憶(インストール)されており、第２実施形態では、本発明に係る情報処理プログラムの一例であるウェブページ配信プログラムがウェブサーバ２０４の記憶部２０４Ｃに予め記憶(インストール)されている態様を説明したが、本発明に係る情報処理プログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記録媒体に記録されている形態で提供することも可能である。
【符号の説明】
【００９３】
１０  コンピュータ
２０  記憶部
２８  処理結果ＤＢ
３２  制御指示情報
３８  画像処理モジュール
４０  バッファモジュール
４８  制御指示受付実行部
５０  画像処理部
２００  コンピュータ・システム
２０４  ウェブサーバ
２０４Ｃ  記憶部
２０６  クライアント端末
２１２  配信済ページＤＢ
【図１】
2012118932.tif 000003
【図２】
2012118932.tif 000004
【図３】
2012118932.tif 000005
【図４】
2012118932.tif 000006
【図５】
2012118932.tif 000007
【図６】
2012118932.tif 000008
【図７】
2012118932.tif 000009