以下、本発明の好適な実施の形態を添付図面に基づいて詳細に説明する。なお、以下に述べる実施の形態は、本発明の好適な実施の形態であるから、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明において特に本発明を限定する旨の記載がない限り、これらの態様に限られるものではない。
(第1の実施の形態)
本実施の形態では、データ処理装置及びデータ処理方法を、画像データ処理装置に適用した例について説明する。図1は、第1の実施の形態にかかる画像データ処理装置1の概略機能構成図である。
また、本実施の形態では、処理対象となるデータが画像データの例について説明するが、画像データに限らず、複数の機能による処理の対象となるデータであれば、どのようなデータであっても良い。
図1において、画像データ処理装置1は、ハードウェアであるASIC10、ASIC10を各機能で動作させる複数のドライバDr1〜Dr12、ドライバDr1〜Dr6及びドライバDr7〜Dr12をそれぞれ統合する統合ドライバTDr1、TDr2、統合ドライバを管理する統合ビデオドライバTBDr及びOS(Operating System)のプロセス20等で構成されている。画像データ処理装置1は、CD(Compact Disc)、CD−RW(Compact Disc Rewritable)、DVD(Digital Video Disk)、フレキシブルディスク等の記録媒体に記録されているデータ処理プログラムが複合装置、複写装置、プリンタ装置等の画像処理装置やコンピュータにインストールされて実行されたものとする。これにより、後述するデータ処理方法を実行する画像データ処理装置(データ処理装置)1が構築される。
プロセス20は、複数のスレッド21a〜21n及び統合ビデオライブラリ22等を備えており、処理実行単位であるスレッド21a〜21nと統合ビデオライブラリ22との間で各種情報の授受を行って、ドライバDr1〜Dr12をアプリケーションとして扱う。
スレッド21a〜21nは、利用者又は画像データ処理装置1からの要求を満たす処理を行うための実行単位とする。これら処理は、ASIC10が提供する複数の機能を、処理に応じて設定された順序で実行されることで実現する。そして、スレッド21a〜21nは、当該処理を実行するために、統合ビデオライブラリ22を呼び出す。
統合ビデオライブラリ22は、スレッド21a〜21nが、各ドライバで制御される機能を利用するためのライブラリを備える。また、統合ビデオライブラリ22は、スレッド21a〜21nからの要求に応じて、実行される機能を開始する順序が設定された制御手順情報を発行する。また、統合ビデオドライバTBDrがスレッド関数を呼び出す際に、ディスクセットOPEキューを利用する。
画像データ処理装置1は、統合ビデオライブラリ22と統合ビデオドライバTBDrとの間で、オープン、ライト、クローズ、リードの交換を行ったり、統合ビデオドライバTBDrから統合ビデオライブラリ22にスレッド関数のコールを行って、ディスクセット、メモリ上のデータ等の管理情報のやり取り、ドライバ動作の同期、動作内容の情報のやり取り、ドライバDr1〜Dr12単位でのドライバDr1〜Dr12の有効化及び動作停止等の情報のやり取りを行い、さらに、ドライバ側からスレッド側(プロセス側)に知りたい情報を読み取ることで、プロセス20が各ドライバDr1〜Dr12を柔軟に制御している。
統合ドライバTDr1は、ドライバDr1〜Dr6の動作を制御する。統合ドライバTDr2は、ドライバDr7〜Dr12の動作を制御する。この統合ドライバTDr1、TDr2は、後述するASIC10内のカスタムチップ毎に備えられているものとする。
統合ビデオドライバTBDrは、統合ドライバTDr1及び統合ドライバTDr2を介して各ドライバDr1〜Dr12の動作を制御する。
また、統合ビデオドライバTBDrは、統合ビデオライブラリ22により発行された制御手順情報に設定された、各機能の開始する順序に従って、各機能に対応するドライバDr1〜Dr12の開始制御を行う。本実施の形態にかかる統合ビデオドライバTBDrは、ドライバDr1〜Dr12に対して制御許可通知を行うことで、各ドライバにおける機能の実行を制御する。そして、制御許可通知を受信したドライバDr1〜Dr12は、ASIC10が提供する機能の制御を開始する。なお、機能を制御するための具体的な処理については後述する。
ASIC10は、第1ASIC11及び第2ASIC12という2個のカスタムチップで構成されている。第1ASIC11及び第2ASIC12は、それぞれ異なる機能を提供する。また、第1ASIC11及び第2ASIC12の間は接続されているため、互いに処理終了後の画像データの送受信を行うことができる。本実施の形態では、第1ASIC11の機能をドライバDr1〜Dr6が制御し、第2ASIC12の機能をドライバDr7〜Dr12が制御する。
また、ASIC10は、ドライバDr1〜Dr12の制御によって、データ(特に、画像データ)に対して各種機能動作を実行するハードウェアとする。例えば、ASIC10は、ハードディスク(HDD)機能、ビデオ入力処理機能、画像処理機能、配信前処理機能、回転処理機能、JPEG伸長処理機能、合成処理機能、地紋処理機能、解像度変換処理機能、圧縮伸長処理機能、ビデオ出力処理機能等を実行する。
ドライバDr1〜Dr6は、統合ドライバTDr1を介した統合ビデオドライバTBDrからの制御許可通知に従って、ASIC10で提供される機能を動作制御する。本実施の形態では、ドライバDr1〜Dr6は、統合ビデオドライバTBDrからの制御許可通知に従って、上記ASIC10が提供する機能のうち、各ドライバDr1〜Dr6に対応付けられた機能を実行させる。
ドライバDr7〜Dr12は、統合ドライバTDr2を介して統合ビデオドライバTBDrからの制御許可通知に従って、ASIC10で提供される機能を動作制御する。本実施の形態では、ドライバDr7〜Dr12は、統合ビデオドライバTBDrからの制御許可通知に従って、上記ASIC10が提供する機能のうち、各ドライバDr7〜Dr12に対応付けられた機能を実行させる。
そして、統合ビデオドライバTBDrから上位の処理(プロセス20、スレッド関数による処理)を、ユーザプロセスとし、統合ビデオドライバTBDrより下位の処理(統合ドライバTDr1、TDr2、並びにドライバDr1〜12及びASIC10の処理)を、カーネルモードとする。
図2は、画像データ処理装置のうち要部となる、画像データに対して実行される機能、及び当該機能を動作させるための各構成を示した説明図である。図2に示すように、統合ビデオライブラリ22により発行された制御手順情報に応じて、統合ビデオドライバTBDrは、当該統合ビデオドライバTBDrの作業領域内に、複数の状態設定制御部31a〜nを生成する。なお、生成された複数の状態設定制御部31a〜nのそれぞれ毎に、図3に示す各構成(ドライバ制御部、制御情報記憶部、判断部、要求部)が含まれている。つまり、統合ビデオドライバTBDrは、換言すれば各構成を生成する統合生成手段としての機能を備えている。
なお、機能A用ドライバDra、機能B用ドライバDrb、機能C用ドライバDrc及び機能D用ドライバDrdは、画像データを処理するための機能に対応するドライバとして、図1に示したドライバDr1〜Dr12から選択されたものとする。なお、機能A〜Dは、図1に示した第1ASIC11及び第2ASIC12のうちいずれのチップが提供する機能であっても良いものとする。
また、状態設定制御部31a〜nは、画像データを処理するために実行される機能の数から1減じた数だけ生成されるものとする。
例えば、統合ビデオドライバTBDrは、制御手順情報に基づいて、画像データに対して機能A、機能B、機能C及び機能Dの順に機能を実行すると判断した場合、機能Aの状況に応じて機能Bを実行する状態設定制御部31aと、機能Bの状況に応じて機能Cを実行する状態設定制御部31bと、機能Cの状況に応じて機能Dを実行する状態設定制御部31cと、を当該統合ビデオドライバTBDrの作業領域内に生成する。
状態設定制御部31a〜nは、各機能の処理状況に応じて、当該各機能の次の機能を制御するドライバに対して、統合ドライバを介して制御許可通知を行う。これにより、各機能の処理状況に応じて、次の機能が実行されることになる。
例えば、状態設定制御部31aは、機能A用ドライバDraから、機能Aによる画像データの処理状況を示す状態情報通知を受信し、状態情報通知に基づいて次の機能Bを実行してよいと判断した場合に、機能B用ドライバDrbに対して制御許可通知を出力する。これにより、機能B用ドライバDrbが、機能Bの実行を開始する。
そして、状態設定制御部31bは、機能B用ドライバDrbから、機能Bによる画像データの処理状況を示す状態情報通知を受信し、状態情報通知に基づいて次の機能Cを実行してよいと判断した場合に、機能C用ドライバDrcに対して制御許可通知を出力する。これにより、機能C用ドライバDrcが、機能Cの実行を開始する。
その後、状態設定制御部31cは、機能C用ドライバDrcから、機能Cによる画像データの処理状況を示す状態情報通知を受信し、状態情報通知に基づいて次の機能Cを実行してよいと判断した場合に、機能D用ドライバDrdに対して制御許可通知を出力する。これにより、D用ドライバDrdが、機能Dの実行を開始する。
つまり、本実施の形態にかかる画像データ処理装置1では、実行したい機能の順序に応じた状態設定制御部31a〜nが生成され、生成された状態設定制御部31a〜nが各機能間の実行を制御している。これにより、画像データ処理装置1は、スレッド21a〜21nが要求する処理に応じて、実行する機能の順序を設定することができる。次に、ドライバDra、Drb及び状態設定制御部31aについて説明する。なお、他のドライバ及び状態設定制御部も同様の構成を備えているものとして説明を省略する。
図3は、状態設定制御部31a、機能A用ドライバDra及び機能B用ドライバDrbの構成を示したブロック図である。
そして、画像データ処理装置1において、例えば、図3に示すように、画像データに対して、ASIC10が提供する機能のうち、前段のデータ処理手段としての機能Aと、後段のデータ処理手段としての機能Bと、を順番に動作させる場合、上記データ処理プログラムの一部である、統合ビデオドライバTBDrが、状態設定制御部31aを構築する。
構築された状態設定制御部31aは、制御情報記憶部301と、判断部302と、要求部303と、ドライバ制御部304と、を備える。ドライバ制御部304は、機能A用ドライバDraの状態情報保持部310a及び機能B用ドライバDrbの状態情報保持部310bへの設定パラメータの設定と、状態情報保持部310a及び状態情報保持部310bに対するパラメータの参照と、機能A用ドライバDraからの状態情報通知の受信制御と、を行う。判断部302及び要求部303は、指定された制御手順通りに機能Aの後に機能Bを実行する制御を行う。設定パラメータとは、各ドライバがASIC10を制御するために予め設定しておく必要があるパラメータとする。
判断部302は、ドライバ制御部304が受信した状態情報通知で示された機能Aによる画像データの処理状況に基づいて、当該処理状況を作り出した機能Aの次に行われる機能Bを実行するか否か判断する。この処理中の機能Aと、機能Aの次に行う機能Bとの対応付けは、後述する制御情報記憶部301で記憶されている。これにより、判断部302は、状態情報通知による処理状況に基づいて、次に実行する機能B用のドライバを特定することができる。本実施の形態にかかる判断部302は、後述する制御情報記憶部301を参照して、機能Bを実行して良いか否か判断する。
本実施の形態にかかる判断部302は、実行するか否かの判断に、制御情報記憶部702が保持する入力状態に対するビット演算を用いる。これにより、高速に画像データの処理状況を判断することが可能になる。
要求部303は、判断部302が次の機能Bを実行して良いと判断した場合に、制御情報記憶部301を参照して、次の機能B用ドライバDrbを特定し、当該機能B用ドライバDrbに対して制御許可通知を出力することで、機能Bの実行を要求する。
つまり、状態設定制御部31aは、上記データ処理プログラム(例えば、統合ビデオドライバTBDr)によって構築され、機能Bの起動タイミングをユーザの設定したタイミング(機能Aの状態)に合わせて、ASIC10に対して機能Bのデータ処理を開始させる。
機能A用ドライバDraは、状態情報保持部310aと、機能A制御部311aと、機能A用出力部312aとを備える。
機能B用ドライバDrbは、状態情報保持部310bと、機能B制御部311bと、機能B用出力部312bとを備える。
状態情報保持部310a、310bは、機能A用ドライバDra及び機能B用ドライバDrbの対応する機能A及び機能Bの制御に必要な機能設定情報となる設定パラメータを保持する。そして、機能A制御部311a及び機能B制御部311bは、それぞれ状態情報保持部310a、310bを参照し、機能を実行するために必要な条件等を設定する。
また、状態情報保持部310a、310bは、機能A、機能Bによるデータ処理状況情報である状態情報と、状態情報パラメータと、を保持する。状態情報は、各機能による現在のデータ処理状況を示す情報とする。状態情報パラメータは、次の機能を開始するための処理状況の条件を保持する。例えば、状態情報パラメータは、何ラインまで処理が完了したことを、次の処理の開始するための条件として保持する。
機能A制御部311aは、画像データのデータを処理するASIC10の機能Aを制御する。本実施の形態にかかる機能A制御部311aは、機能A用ドライバDraにより状態情報保持部310aが保持している設定パラメータが設定された場合に、当該設定パラメータに従って機能Aを制御する。
機能B制御部311bは、画像データのデータを処理するASIC10の機能Bを制御する。本実施の形態にかかる機能B制御部311bは、機能B用ドライバDrbにより状態情報保持部310bが保持している設定パラメータが設定された場合に、当該設定パラメータに従って機能Bを制御する。
機能A用出力部312aは、状態情報保持部310aが保持している、画像データの処理状況を示す状況情報を含む状態情報通知を、状態設定制御部31aに対して出力する。機能B用出力部312bは、状態情報保持部310bが保持している状態情報を示す状態情報通知を、状態設定制御部31bに対して出力する。
状態設定制御部31aの制御情報記憶部301は、データ処理目的に応じた各段の機能A、機能Bの制御手順に関する制御手順情報である状態設定制御情報を記憶する。そして、機能A用ドライバDra及び機能B用ドライバDrbは、状態情報保持部310a、30bの保持する設定パラメータと、状態情報及び状態情報パラメータと、制御情報記憶部301の状態設定制御情報と、に基づいて、各段の機能A、機能Bを駆動制御することができる。
また、図3に示すように、機能A用の状態情報保持部310a及び機能B用の状態情報保持部310bは、それぞれ機能A用ドライバDra及び機能B用ドライバDrbの一部として構築される。また、状態設定制御部31aは、統合ビデオドライバTBDrの一部として構築される。
状態設定制御部31aの制御情報記憶部301は、状態設定制御情報を記憶する。図4は、制御情報記憶部301が記憶する状態設定制御情報の概念を示した説明図である。状態設定制御情報は、機能A及び機能B間で行われる制御手順に関する情報とする。また、状態設定制御情報は、スレッドが要求する画像処理を実現するための制御手順に応じて設定可能である。
図4に示すように、状態設定制御情報は、状態設定制御ID、入力状態、入出力有効マスク、入力数、出力数、入力リスト及び出力リストによって構成されている。入力数は、入力リストに記載された機能の数を保持する。入力状態は、入力リストが保持している機能毎に、次の機能を開始して良いか否か等を表す状態(フラグ)を保持する。なお、入力状態は、さらに入力機能毎に現在の処理状況を保持しても良い。入力状態のビット数は、入力リストが保持可能な入力機能の数を示す。
出力数は、出力リストに記載された機能の数を保持する。入力リストは、状態情報通知を状態設定制御部に対して入力する機能を示す入力機能のリストが設定されている。そして、入力リストでは、入力機能毎に、機能用ドライバの状態情報保持部を示す状態情報保持部IDと、当該状態情報保持部が保持する状態情報パラメータのアドレスと、が設定されている。状態情報パラメータは、ユーザが設定する情報で、例えば、何ラインまで処理が完了すると、次の処理の開始を許可してもよいとの制御許可通知を出す基準となる情報とする。
出力リストは、入力機能による画像データの処理状況により、次の機能を実行して良いと判断された場合に、制御許可通知が出力される側においてデータ処理を行う機能を示す出力機能のリストが設定されている。出力リストでは、出力機能毎に、機能用ドライバの状態情報保持部を示す状態情報保持部IDと状態情報パラメータのアドレスとが設定されている。
このように、制御情報記憶部301が記憶する状態設定制御情報においては、入力機能が設定されている入力リストと、出力機能が設定されている出力リストと、が対応付けられている。
ドライバ制御部304は、入力リストで示された各機能に対応するドライバから、状態情報通知を受信した場合、当該状態情報通知に含まれている状態情報が、入力リストにおいて当該機能として参照できる状態情報パラメータに設定された条件を満たすと、「1」から「0」に更新する。そして、判断部302は、入力状態が全て「0」となった場合に、次の機能を実行して良いと判断する。
そして、制御情報記憶部301において、入力機能が示された入力リストと、入力機能の次に実行される出力機能が示された出力リストとが対応付けて記憶していると共に、入力状態を記憶しているため、判断部302が、制御情報記憶部301の状態設定制御情報を参照することで、入力リストと対応付けられた出力リストで示された各出力機能を実行するか否か判断することができる。
状態設定制御情報は、図3に示す例では、入力リストには、機能Aの状態情報保持部IDと状態情報パラメータが設定され、出力リストには、機能Bの状態情報保持部IDと状態情報パラメータが設定される。
統合ビデオドライバTBDrの状態設定制御部31aは、状態情報保持部310aに、機能A用ドライバDraへの機能A用の設定パラメータの設定と、状態情報パラメータに状態情報通知を行う条件の指定と、を行う。また、状態設定制御部31aは、状態情報保持部310bに、機能B用ドライバDrbへの機能B用の設定パラメータを設定する。
機能A用ドライバDraは、状態情報保持部310aに機能A用の設定パラメータの設定と処理状況(状態情報パラメータ)の指定が行われると、ASIC10の機能Aを制御して、画像データに対して前段の機能Aとしての機能動作を行わせる。機能B用ドライバDrbは、状態情報保持部310bから機能B用のパラメータ設定と処理状況(状態情報パラメータ)の指定が行われる。そして、機能A用に指定された処理状況(状態情報パラメータ)を満足した場合に、機能B用ドライバDrbは、ASIC10を制御して、機能Aで処理された画像データに対して後段の機能Bとしての機能を行わせる。
そして、ASIC10の機能Aは、設定パラメータに基づいて画像データに機能Aとしての画像処理を施して、指定されたデータ処理状況情報である状態情報を機能A制御部311aに通知し、機能A制御部311aは、該機能Aからの状態情報を状態情報保持部310aの状態情報に対して更新する。機能A用出力部312aは、機能A制御部311aを介して機能Aから通知された状態情報保持部310aの状態情報を、状態設定制御部31aに通知する。
状態設定制御部31aのドライバ制御部304は、機能Aから通知された状態情報が、該状態情報がユーザの設定した状態設定制御情報の入力リストの状態情報パラメータになると、入力状態を、「1」または「0」に切り替える。そして、判断部302が、入力状態に基づいて、入力リストの機能Aと制御情報記憶部301で対応付けて記憶されている出力リストの機能Bを開始して良いか否か判断する。そして、開始して良いと判断した場合に、要求部303が、出力リストの機能Bに対して起動をかけるために、状態情報保持部310bに制御許可通知を行う。
例えば、入力状態「1」を入力状態情報待ち状態、入力状態「0」を入力状態情報通知可能状態とする。この場合、機能Aから通知された状態情報が入力リストの状態情報パラメータになると、ドライバ制御部304が入力状態を「0」に切り替える。該入力状態が全て「0」になると、判断部302が出力リストの機能Bを開始して良いと判断する。そして、要求部303が、出力リストの機能Bに対して起動をかけるために、機能B用ドライバDrbの状態情報保持部310bに制御許可通知を行う。
機能B用ドライバDrbの状態情報保持部310bは、状態設定制御部31aから制御許可通知を受け取ると、機能B用ドライバDrbが、当該機能B制御部311bに対して、設定パラメータの設定と処理状況(状態情報パラメータ)の指定を行う。そして、機能B制御部311bは、状態情報保持部310bが保持していた機能B用の設定パラメータの設定と処理状況(状態情報パラメータ)の指定が行われると、機能Bを起動させて、設定パラメータに従って、機能Aで処理された画像データに対して機能Bとしての機能動作を行わせる。なお、機能B用ドライバDrbの状態情報保持部310bの処理状況(状態情報パラメータ)の指定は、状態設定制御部31a及び状態設定制御部31bのどちらが行ってもよい。
なお、図3は、機能A用ドライバDraと機能B用ドライバDrbの2つのドライバのそれぞれに状態情報保持部310a、310bを設けるとともに、統合ビデオドライバTBDrに状態設定制御部31aを設けて、ASIC10の機能Aと機能Bを動作制御する場合について示しているが、状態情報保持部を有するドライバの数は、上記の数に限られるものではなく、データに対する処理に応じて適宜設定される。
例えば、機能B用ドライバDrbの機能B用出力部312bが、機能Bによる画像データの処理状況に基づいて、状態情報通知を状態設定制御部31bに出力する。その後は、状態設定制御部31bが機能間の制御を行う。図5は、状態設定制御部31b、機能B用ドライバDrb及び機能C用ドライバDrcの構成を示したブロック図である。
状態設定制御部31bは、制御情報記憶部501と、判断部502と、要求部503と、ドライバ制御部504と、を備える。制御情報記憶部501は、データ処理目的に応じた各段の機能B、機能Cの制御手順に関する制御手順情報として、機能Bに関する入力状態、機能Bを含む入力リスト、機能Cを含む出力リスト等を対応付けて記憶している。
機能B用ドライバDrbは、状態情報保持部310bと、機能B制御部311bと、機能B用出力部312bと、を備えている。また、機能C用ドライバDrcは、状態情報保持部310cと、機能C制御部311cと、機能C用出力部312cと、を備えている。各構成は、上述した機能A用ドライバDrbの各構成と同様の処理を行うものとして説明を省略する。
図5に示す、機能B用出力部312bは、図3の状態設定制御部31bの要求部303の制御許可通知による開始要求により、機能Aの次の機能として、機能B制御部311bで実行された機能Bによる画像データの処理状況を示す、状態情報通知を出力する。
そして、機能B用ドライバDrbから状態情報通知を受信した場合に、状態設定制御部31bの判断部502が、制御情報記憶部501に記憶された所定の入力状態が示す、画像データの処理状況に基づいて、当該処理状況を作り出した機能Bを含む入力リストと、制御情報記憶部501により対応付けられた出力リストに示された機能Cを実行するか否か判断する。
そして、要求部503は、判断部502が実行すると判断した場合、出力リストで示された機能Cを制御する機能C制御部311cを含む機能C用ドライバDrcに対して機能Cの実行を要求する。
統合ビデオドライバTBDrの状態設定制御部31bのドライバ制御部504は、状態情報保持部310bの状態情報パラメータに状態情報通知を行う条件を指定する。また、状態設定制御部31bは、状態情報保持部310cに、機能C用ドライバDrcへの機能C用の設定パラメータを設定する。
上述したように各機能用ドライバ間を接続する状態設定制御部を必要に応じて複数設けることで、複数の機能による画像データの処理を行うことができる。
次に、本実施の形態の作用を説明する。本実施の形態の画像データ処理装置1は、ドライバDr1〜Dr12にそれぞれ状態情報保持部310a、310b・・・を設けるとともに、統合ビデオドライバTBDrに状態設定制御部31aを設けてドライバDr1〜Dr12によるASIC10の各機能動作制御を柔軟に行う。
なお、以下の説明では、図3の機能A用ドライバDraと機能B用ドライバDrbの2つのドライバを用いて、ASIC10の機能Aと機能Bを制御する場合について説明する。
いま、画像データ処理装置1は、ユーザの設定に応じて、プロセス20の統合ビデオライブラリ22と統合ビデオドライバTBDrとの間で情報の交換やスレッド関数のコール等を行って、統合ビデオドライバTBDrに必要なパラメータの設定や情報の通知を行う。そして、統合ビデオドライバTBDrは、状態設定制御部31aに、状態設定制御情報を設定するとともに、状態情報保持部310aに、機能A用ドライバDraへの設定パラメータの設定と通知処理状況(状態情報パラメータ)の指定を行うとともに、状態情報保持部310bに、機能B用ドライバDrbへの設定パラメータの設定と通知処理状況(状態情報パラメータ)の指定を行う。
次に、本実施の形態にかかる画像データ処理装置1におけるスレッドからの要求に従って、画像データに対する処理を開始するまでの処理について説明する。図6は、本実施の形態にかかる画像データ処理装置1における上述した処理の手順を示すフローチャートである。本処理手順においては、統合ビデオライブラリ22が、プロセス20と、各ドライバDr1〜12との間で呼出可能にするためのライブラリを提供する。
まず、プロセス20が、スレッドの要求に応じて、実行する機能の順序を特定する(ステップS601)。そして、プロセス20は、統合ビデオライブラリ22に対して、制御手順情報の発行を依頼する(ステップS602)。
次に、統合ビデオライブラリ22は、プロセス20で特定された機能の順序が設定された制御手順情報を発行する(ステップS603)。
そして、統合ビデオドライバTBDrが、発行された制御手順情報に従って、当該制御手順情報に記載された機能を実行するために必要な状態設定制御部の領域を確保する(ステップS604)。
次に、確保した状態設定制御部群を特定するための状態設定制御IDを発行する(ステップS605)。
そして、プロセス20では、状態設定制御IDと、制御手順情報との対応付を要求する(ステップS606)。その後、統合ビデオライブラリ22は、統合ビデオドライバTBDrで発行された状態設定制御IDと、制御手順情報とを対応付ける(ステップS607)。
次に、統合ビデオドライバTBDrが、発行した状態設定制御IDと対応付けられた制御手順情報に設定された機能を制御する、状態設定制御部群を生成する(ステップS608)。
その後、統合ビデオドライバTBDrは、生成した状態設定制御部群のそれぞれが備える制御情報記憶部毎に、入力リスト及び出力リストを生成する(ステップS609)。入力リスト及び出力リストが生成されたことで、制御手順情報に設定されている機能の順序が設定されたことになる。
そして、統合ビデオドライバTBDrは、状態設定制御部のそれぞれの制御情報記憶部と、機能用ドライバのそれぞれの状態情報保持部に対して、必要なパラメータの設定を行う(ステップS610)。設定されるパラメータとしては、例えば、制御情報記憶部が記憶する入力状態の初期値、入力数、出力数、制御許可通知タイミング値、及び状態情報保持部の状態情報パラメータ、制御優先順序、開始状態条件情報等とする。なお、制御許可通知タイミング値、制御優先順序、開始状態条件情報については、後述する実施形態で説明する。
その後、プロセス20が、制御対象となる制御手順情報に基づく処理の開始を要求する(ステップS611)。そして、統合ビデオドライバTBDrは、制御手順情報において、最初の処理を行う機能を起動する(ステップS612)。後は、開始された機能の処理状況に応じて、次の機能による処理の開始を状態設定制御部が制御する。これにより、スレッドの要求通りの順序で複数の機能が実行される。
上述したように本実施の形態においては、図3に示した例のように、画像データ処理装置1は、まず、機能Aでの処理を開始して、通知処理状況(状態情報パラメータ)による、ユーザの設定した起動タイミング(機能Aの状態)に合わせて、機能Bを起動させて、機能Aと機能Bで画像データの処理を行わせる。
すなわち、画像データ処理装置1においては、まず、機能Aを起動するために、状態情報保持部310aが、必要な設定パラメータとユーザの指定した状態情報パラメータを機能A用ドライバDraに設定し、機能A用ドライバDraは、ASIC10の機能Aが使用可能な状態かをチェックした上で、機能Aを起動する。
機能Aは、入力される画像データに対して設定パラメータに基づいて機能Aの動作処理を実行し、機能Aによる画像データの処理状況を状態情報として、機能A用ドライバDraに通知する。機能A制御部311aは、該通知された状態情報で状態情報保持部310aを更新し、機能A用出力部312aは、状態情報保持部310aの該状態情報を、状態情報通知として状態設定制御部31aに通知する。
状態情報制御部31aは、機能A用ドライバDra及び状態情報保持部310aを介して機能Aから通知された状態情報が、ユーザの設定した状態設定制御情報の入力リストの状態情報パラメータになると、入力状態を、例えば、「1」から「0」に切り替え、該入力状態が全て「0」になると、出力リストの機能Bに対して起動をかけるために、状態情報保持部310bに制御許可通知を行う。
機能B用ドライバDrbは、状態設定制御部31aから制御許可通知を受け取ると、状態情報保持部310bに対して、パラメータ設定と処理状況状態の指定を行う。そして、機能B制御部311bは、状態情報保持部310bに指定された機能B用の設定パラメータの設定と処理状況(状態情報パラメータ)とを参照して、機能Bを起動させて、機能Aで処理された画像データに対して機能Bとしての機能動作を行わせる。
このように、本実施の形態の画像データ処理装置1においては、ASIC10の機能A、機能Bにおいて次の機能を開始するための画像データの処理状況(状態情報パラメータ)を状態情報保持部310a、310bが保持し、状態設定制御部31aが、制御情報記憶部301が記憶する状態設定制御情報と、データ処理状況(状態情報パラメータ)とに基づいてASIC10の各段の機能A、機能Bを駆動制御している。
したがって、状態情報を保持する状態情報保持部310a、310bと制御手順を管理する状態設定制御部31a〜nとアルゴリズムが分かれており、アルゴリズムが変更になっても、内部構成が複雑化することなく、処理、手順、制御を区別して対応することができ、ハードウェアであるASIC10を効率的かつ柔軟に制御して、処理性能を向上させることができる。
また、本実施の形態の画像データ処理装置1は、データとして画像データ(画像データ)を取り上げて該画像データを処理している。
したがって、近年の高機能化、高速化している画像データの処理を、アルゴリズムが変更になっても、効率的かつ高速に処理することができる。
本実施の形態の画像データ処理装置1によれば、複数の機能でデータの処理を行う場合に、機能の処理状況に応じて次に呼び出す機能を特定できるので、予め機能を実行する順序をハードウェアコーティングする必要がなくなるとともに、異なるデータの処理に応じて必要な機能の順序を柔軟に設定できることになり、ハードウェアを効率的かつ柔軟に制御を可能とし、処理性能を向上させることができる。
また、本実施の形態の画像データ処理装置1によれば、処理状況に応じた機能の呼び出しを管理する状態設定制御部と、機能を実行する機能A用ドライバとを別構成としてアルゴリズムを分け、それぞれの構成を単純にしたことで、アルゴリズムが変更になっても、他の内部構成に影響を与えることが減少したために、処理、手順、制御について適切に対応することができ、ハードウェアを効率的かつ柔軟に制御すると共に、処理性能を向上させることができる。
(第2の実施の形態)
図7及び図8は、第2の実施の形態にかかるデータ処理装置及びデータ処理方法を示す図である。本実施の形態でも、データ処理装置及びデータ処理方法を、画像データ処理装置に適用した例について説明する。図7は、第2の実施の形態にかかる画像データ処理装置の要部機能構成図である。
なお、第2の実施の形態は、第1の実施の形態の画像データ処理装置1と同様の画像データ処理装置に適用したものとする。本実施の形態の説明においては、必要に応じて、第1実施の形態の説明で用いた符号をそのまま用いて説明する。
また、本実施の形態は、その画像データ処理装置1において、一つの出力機能に対して、多入力制御を行う場合に適用したものとする。図7は、ASIC10に一つの出力機能(機能B)に対して機能A1と機能A2との2個の入力機能がある場合の、画像データ処理装置1の要部となる構成を示したブロック図である。
図7に示すように、画像データ処理装置1は、状態設定制御部701a、機能A1用ドライバDraa、機能A2用ドライバDrab、及び機能B用ドライバDrbを備える。
そして、機能A1用ドライバDraaは、状態情報保持部710aa、機能A1制御部711aa、及び機能A1用出力部712aaを備えている。機能A2用ドライバDrabは、状態情報保持部710ab、機能A2制御部711ab、及び機能A2用出力部712abを備えている。機能B用ドライバDrbは、状態情報保持部310b、機能B制御部311b、及び機能B用出力部312bを備えている。
状態情報保持部710aa、状態情報保持部710ab及び状態情報保持部310bは、機能A1、機能A2及び機能Bを実行するために必要な設定パラメータと、各機能によるデータ処理状況情報である状態情報と、次の機能の実行を開始する条件を示す処理状況(状態情報パラメータ)と、を保持する。
状態設定制御部701aは、制御情報記憶部702と、判断部703と、要求部704と、ドライバ制御部705と、を備える。ドライバ制御部705は、機能A1用ドライバDraの状態情報保持部710aa、機能A2用ドライバDrbの状態情報保持部710ab及び機能B用ドライバDrbの状態情報保持部310bへのパラメータ設定と、状態情報保持部710aa、状態情報保持部710ab及び状態情報保持部310bに対するパラメータの参照と、機能A1用ドライバDraa及び機能A2用ドライバDrabからの状態情報通知の受信制御と、を行う。判断部703及び要求部704は、指定された制御手順通りに機能A1及び機能A2の後に機能Bを実行する制御を行う。
図7において、画像データ処理装置1は、例えば、画像データに対して、ASIC10に、機能A1、機能A2及び機能Bを動作させる場合、ドライバDr1〜Dr12のうち、機能A1、機能A2及び機能Bと対応付けられたドライバを機能A1用ドライバDraa、機能A2用ドライバDrab及び機能B用ドライバDrbとする。
機能A1用の状態情報保持部710aa、機能A2用の状態情報保持部710ab及び機能B用の状態情報保持部310b、並びに状態設定制御部701aは、上記データ処理プログラム(例えば、統合ビデオドライバTBDr)によって構築され、機能Bの起動タイミングをユーザの設定したタイミング(機能Aの状態)に合わせて、ASIC10に機能A1、機能A2及び機能Bのデータ処理を行わせる。
上記機能A1用の状態情報保持部710aa、機能A2用の状態情報保持部710ab及び機能B用の状態情報保持部310bは、それぞれ機能A1用ドライバDraa、機能A2用ドライバDrab及び機能B用ドライバDrbの一部として構築され、状態設定制御部701aは、統合ビデオドライバTBDrの一部として構築される。
状態設定制御部701aの制御情報記憶部702は、状態設定制御情報を記憶する。図8に示すように、制御情報記憶部702は、図4と同様の構造の状態設定制御情報を記憶する。また、状態設定制御情報は、スレッドが要求する画像処理を実現するための制御手順に応じて設定可能である。
状態設定制御情報は、上記同様に、状態設定制御ID、入力状態、入出力有効マスク、入力数、出力数、入力リスト及び出力リストによって構成されている。入力リストは、画像データの入力機能のリストが設定されているが、本実施の形態の場合、機能A1と機能A2の双方の状態情報保持部IDと状態情報パラメータのアドレスが設定されている。状態情報パラメータは、ユーザが設定する情報で、例えば、何ラインまで処理が完了すると、次の処理の開始を許可してもよいとの許可通知を出してもよいとする後段の処理を許可する前段の処理状況等の情報である。
出力リストは、入力機能による画像データの処理状況により、次の機能を実行して良いと判断された場合に、制御許可通知が出力される側としてデータ処理を行う機能を示す出力機能のリストが設定されている。出力リストでは、出力機能毎に、機能用ドライバの状態情報保持部を示す状態情報保持部IDと状態情報パラメータのアドレスとが設定されている。
入力状態は、入力リストが保持している機能毎に、次の機能を開始して良いか否か等を表す状態(フラグ)を保持する。本実施の形態の入力状態においては、機能A1及び機能A2のそれぞれに対応するフラグが設定される。
状態設定制御情報は、図7の処理の場合、入力リストには、機能A1と機能A2の状態情報保持部IDと状態情報パラメータのアドレスとが設定され、出力リストには、機能Bの状態情報保持部IDと状態情報パラメータのアドレスが設定される。
統合ビデオドライバTBDrのドライバ制御部705は、状態情報保持部710aaに、機能A1用ドライバDraaへの機能A1用の設定パラメータの設定と通知を許可するための処理状況(状態情報パラメータ)の指定と、を行う。また、ドライバ制御部705は、状態情報保持部710abに、機能A2用ドライバDrabへの機能A2用の設定パラメータの設定と通知を許可するための処理状況(状態情報パラメータ)の指定とを行い、さらに、ドライバ制御部705は、状態情報保持部310bに、機能B用ドライバDrbへの機能B用の設定パラメータの設定と、通知を許可するための処理状況(状態情報パラメータ)の指定と、を行う。
機能A1用制御部711aaは、機能A1用ドライバDraaにより、状態情報保持部710aaが保持する機能A1用の設定パラメータの設定と処理状況(状態情報パラメータ)の指定が行われると、ASIC10の機能A1を制御して、画像データに対して機能A1としての機能動作を行わせる。機能A2用ドライバDrabは、状態情報保持部710abに機能A2用のパラメータ設定と処理状況(状態情報パラメータ)の指定が行われると、ASIC10の機能A2を制御して、画像データに対して機能A2としての機能動作を行わせる。
機能B用制御部311bは、機能B用ドライバDrbにより、状態情報保持部310bが保持する機能B用のパラメータ設定と処理状況(状態情報パラメータ)の指定が行われると、ASIC10の機能Bを制御して、機能Aで処理された画像データに対して機能Bとしての機能動作を行わせる。処理を開始するタイミングとしては、機能A1用に指定された処理状況(状態情報パラメータ)及び機能A2用に指定された処理状況(状態情報パラメータ)のそれぞれを満足した場合に、機能B用制御部311bは、ASIC10を制御して、機能A1及びA2で処理された画像データに対して後段の機能Bとしての機能を行わせる。
そして、ASIC10の機能A1は、設定パラメータに基づいて画像データに機能A1としての画像処理を施して、指定された状態情報を機能A1制御部711aaに通知し、機能A1制御部711aaは、該機能A1からの状態情報を状態情報保持部710aaの状態情報に対して更新する。機能A1用出力部712aaは、機能A1制御部711aaを介して機能A1から通知された状態情報保持部710aaの状態情報を、状態設定制御部701aに通知する。
同様に、ASIC10の機能A2は、設定パラメータに基づいて画像データに機能A2としての画像処理を施して、指定された状態情報を機能A2制御部711abに通知し、機能A2制御部711abは、該機能A2からの状態情報を状態情報保持部710abの状態情報に対して更新する。機能A2用出力部712abは、機能A2制御部711abを介して機能A2から通知された状態情報保持部710abの状態情報を、状態設定制御部701aに通知する。
状態設定制御部701aのドライバ制御部705は、前段である機能A1及び機能A2から通知された状態情報が、ユーザの設定した状態設定制御情報の入力リストの状態情報パラメータになると、機能A1及び機能A2それぞれの入力状態を、「1」または「0」に切り替える。そして、判断部703が、入力状態に基づいて、入力リストの機能A1及びA2と制御情報記憶部702で対応付けて記憶されている出力リストの機能Bを開始して良いか否か判断する。そして、それぞれの入力状態に基づいて、開始して良いと判断した場合に、要求部704が、出力リストの機能Bに対して起動をかけるために、機能B用ドライバDrbの状態情報保持部310bに制御許可通知を行う。例えば、入力状態「1」を入力状態情報待ち状態、入力状態「0」を入力状態情報通知受付状態とする。この場合、機能A1から通知された状態情報が入力リストの状態情報パラメータになると、ドライバ制御部705が、機能A1の入力状態を「0」に切り替える。さらに、機能A2から通知された状態情報が入力リストの状態パラメータになると、ドライバ制御部705が、機能A2の入力状態を「0」に切り替える。そして、該入力状態が全て「0」になると、判断部302が出力リストの機能Bを開始して良いと判断する。そして、要求部704が、出力リストの機能Bに対して起動をかけるために、機能B用ドライバDrbの状態情報保持部310bに制御許可通知を行う。
機能B用ドライバDrbの状態情報保持部310bは、状態設定制御部701aから制御許可通知を受け取ると、機能B用ドライバDrbが、当該機能B制御部311bに対して、設定パラメータの設定と処理状況(状態情報パラメータ)の指定を行う。そして、機能B制御部311bは、状態情報保持部310bが保持していた機能B用の設定パラメータの設定と処理状況(状態情報パラメータ)の指定が行われると、機能Bを起動させて、設定パラメータに従って、機能A1及び機能A2で処理された画像データに対して機能Bとしての機能動作を行わせる。
なお、図7は、機能A1用ドライバDraaと機能A2用ドライバDrabと機能B用ドライバDrbの3つのドライバのそれぞれに状態情報保持部710aa、710ab、310bを設けるとともに、統合ビデオドライバTBDrに状態設定制御部701aを設けて、ASIC10の機能A1、機能A2及び機能Bを動作制御する場合について示しているが、状態情報保持部を有するドライバの数は、上記の数に限られるものではなく、データに対する処理に応じて適宜設定される。
次に、本実施の形態の作用を説明する。本実施の形態の画像データ処理装置1は、ドライバDr1〜Dr12にそれぞれ状態情報保持部710aa、710ab、310b・・・を設けるとともに、統合ビデオドライバTBDrに状態設定制御部701aを設けてドライバDr1〜Dr12による複数入力の場合のASIC10の各機能動作制御を柔軟に行う。
なお、以下の説明では、図7の機能A1用ドライバDraa、機能A2用ドライバDrab及び機能B用ドライバDrbの3つのドライバを用いて、ASIC10の前段の機能A1、機能A2及び後段の機能Bを制御する場合について説明する。
いま、画像データ処理装置1は、ユーザの設定に応じて、プロセス20の統合ビデオライブラリ22と統合ビデオドライバTBDrとの間で情報の交換やスレッド関数のコール等を行って、統合ビデオドライバTBDrに必要なパラメータの設定や情報の通知を行う。そして、統合ビデオドライバTBDrは、状態設定制御部701aの制御情報記憶部702に、状態設定制御情報を設定するとともに、状態情報保持部710aaに、機能A1用ドライバDraaへの設定パラメータの設定と通知処理状況(状態情報パラメータ)の指定を行うとともに、状態情報保持部710abに、機能A2用ドライバDrabへの設定パラメータの設定と通知処理状況(状態情報パラメータ)の指定を行い、さらに、状態情報保持部310bに、機能B用ドライバDrbへの設定パラメータの設定と通知処理状況(状態情報パラメータ)の指定を行う。
図7の場合、画像データ処理装置1は、まず、機能A1及び機能A2での処理を開始して、ユーザの設定した起動タイミング(機能A1と機能A2の状態)に合わせて、機能Bを起動させて、前段の機能A1と機能A2及び後段の機能Bで画像データの処理を行わせる。
すなわち、画像データ処理装置1においては、まず、機能A1と機能A2を起動するために、状態情報保持部710aaと状態情報保持部710abが、必要な設定パラメータとユーザの指定した状態情報パラメータを機能A1用ドライバDra及び機能A2用ドライバDrabに設定し、機能A1用ドライバDraa及び機能A2用ドライバDrabは、ASIC10の機能A1及び機能A2が使用可能な状態かをチェックした上で、機能A1及び機能A2を起動する。
機能A1及び機能A2は、入力される画像データに対して設定パラメータに基づいて機能A1及び機能A2の動作処理を実行し、機能A1及び機能A2による画像データの処理状況を状態情報として、機能A1用ドライバDraa及び機能A2用ドライバDrabに通知する。機能A1制御部711aa及び機能A2制御部711abは、該通知された状態情報でそれぞれ状態情報保持部710aa、710abを更新する。そして、機能A1用出力部712aaは、状態情報保持部710aaの該状態情報を、状態情報通知として状態設定制御部701aに通知する。また、機能A2用出力部712abは、状態情報保持部710abの該状態情報を、状態情報通知として状態設定制御部701aに通知する。
状態設定制御部701aのドライバ制御部705は、機能A1用ドライバDraa及び状態情報保持部710aaを介して機能A1から通知された状態情報を、入力状態に反映させる。また、状態設定制御部701aのドライバ制御部705は、機能A2用ドライバDrab及び状態情報保持部710abを介して機能A2から通知された状態情報を、入力状態に反映させる。例えば、ドライバ制御部705は、該状態情報が、ユーザの設定した状態設定制御情報の入力リストの状態情報パラメータになると、入力状態を「1」から「0」に切り替える。そして、判断部703が、該入力状態が全て「0」になると、機能Bを開始して良いものと判断し、要求部704が、出力リストの機能Bに対して起動をかけるために、状態情報保持部310bに制御許可通知を行う。
機能B用ドライバDrbの状態情報保持部310bは、状態設定制御部701aから制御許可通知を受け取ると、機能B用ドライバDrbが、機能B制御部311bに対して、パラメータ設定と処理状況(状態情報パラメータ)の指定を行う。そして、機能B制御部311bは、状態情報保持部310bが保持していた機能B用の設定パラメータの設定と処理状況(状態情報パラメータ)の指定が行われると、機能Bを起動させて、設定パラメータに従って、機能A1及び機能A2で処理された画像データに対して機能Bとしての機能動作を行わせる。
このように、本実施の形態の画像データ処理装置1においては、状態設定制御部701aの制御情報記憶部702が、複数の前段の機能A1、機能A2と、前段より数が少ない後段の機能Bとを対応付けた状態設定制御情報を記憶している。そして、状態設定制御部701aの判断部703及び要求部704は、各前段の機能A1、機能A2によるデータ処理状況である状態情報と、状態設定制御情報と、に基づいて、後段の機能Bの起動タイミングを制御している。したがって、多入力−少出力のデータ処理を適切にかつ高速に行うことができる。
(第3の実施の形態)
図9及び図10は、第3の実施の形態にかかるデータ処理装置及びデータ処理方法を示す図である。本実施の形態では、データ処理装置及びデータ処理方法を、画像データ処理装置に適用した例について説明する。図9は、第3の実施の形態にかかる画像データ処理装置の要部機能構成図である。
なお、第3の実施の形態は、上記第1の実施の形態の画像データ処理装置1と同様の画像データ処理装置に適用したものであり、本実施の形態の説明においては、必要に応じて、第1の実施の形態の説明で用いた符号をそのまま用いて説明する。
また、本実施の形態は、その画像データ処理装置1において、一つの入力機能に対して、多出力制御を行う場合に適用したものであり、図9は、ASIC10の入力機能Aに対応付けられた出力機能として、機能B1と機能B2との2個の出力機能がある場合を示した図である。
図9に示すように、画像データ処理装置1は、状態設定制御部901a、機能A用ドライバDra、機能B1用ドライバDrba、及び機能B2用ドライバDrbbを備える。
そして、機能A用ドライバDraは、状態情報保持部310a、機能A制御部311a、及び機能A用出力部312aを備えている。機能B1用ドライバDrbaは、状態情報保持部910ba、機能B1制御部911ba、及び機能B1用出力部912baを備えている。機能B用ドライバDrbbは、状態情報保持部910bb、機能B2制御部911bb、及び機能B2用出力部912bbを備えている。
状態情報保持部310a、状態情報保持部910ba及び状態情報保持部910bbは、機能A、機能B1及び機能B2を実行するために必要な設定パラメータと、各機能によるデータ処理状況情報である状態情報と、次の機能の実行を開始する条件を示す処理状況(状態情報パラメータ)と、を保持する。
状態設定制御部901aは、制御情報記憶部902と、判断部903と、要求部904と、ドライバ制御部905と、を備える。ドライバ制御部905は、機能A用ドライバDraの状態情報保持部310a、機能B1用ドライバDrbaの状態情報保持部910ba及び機能B2用ドライバDrbbの状態情報保持部910bbへのパラメータ設定と、状態情報保持部310a、状態情報保持部910ba及び状態情報保持部910bbに対するパラメータの参照と、機能A用ドライバDraからの状態情報通知の受信制御と、を行う。判断部903及び要求部904は、指定された制御手順通りに機能Aの後に機能B1及び機能B2を実行する制御を行う。
図9において、画像データ処理装置1は、例えば、画像データに対して、ASIC10に、機能A及び機能B1と機能B2を動作させる場合、ドライバDr1〜Dr12のうち、機能A、機能B1及び機能B2と対応付けられたドライバを、機能A用ドライバDra、機能B1用ドライバDrbaと機能B2用ドライバDrbbとする。
機能A用の状態情報保持部310a、機能B1用の状態情報保持部910ba及び機能B2用の状態情報保持部910bb、並びに状態設定制御部901aは、上記データ処理プログラム(例えば、統合ビデオドライバTBDr)によって構築され、機能B1及び機能B2の起動タイミングをユーザの設定したタイミング(機能Aの状態)に合わせて、ASIC10に機能A、機能B1及び機能B2のデータ処理を行わせる。
上記機能A用の状態情報保持部310a、機能B1用の状態情報保持部910ba及び機能B2用の状態情報保持部910bbは、それぞれ機能A用ドライバDra、機能B1用ドライバDrba及び機能B2用ドライバDrbbの一部として構築され、状態設定制御部901aは、統合ビデオドライバTBDrの一部として構築される。
状態設定制御部901aの制御情報記憶部902は、状態設定制御情報を記憶する。図10に示すように、制御情報記憶部902は、図4と同様の構造の状態設定制御情報を記憶する。また、状態設定制御情報は、スレッドが要求する画像処理を実現するための制御手順に応じて設定可能である。
状態設定制御情報は、上記同様に、状態設定制御ID、入力状態、入出力有効マスク、入力数、出力数、入力リスト及び出力リストによって構成されている。入力リストは、画像データの入力機能のリストが設定され、本実施の形態の場合、機能Aの状態情報保持部IDと状態情報パラメータのアドレスが設定されている。状態情報パラメータは、ユーザが設定する情報で、例えば、何ラインまで処理が完了すると、次の処理の開始を許可してもよいとの許可通知を出してもよいとする後段の処理を許可する前段の処理状況等の情報である。
出力リストは、入力機能による画像データの処理状況により、次の機能を実行して良いと判断された場合に、制御許可通知が出力される側においてデータ処理を行う機能を示す出力機能のリストが設定されている。出力リストでは、出力機能(機能B1及び機能B2のそれぞれ)毎に、機能用ドライバの状態情報保持部を示す状態情報保持部IDと状態情報パラメータのアドレスと開始状態条件情報とが設定される。
開始状態条件情報は、入力機能の処理途中に、出力機能の処理を開始するために制御許可通知をするための条件や、入力機能の完了後に出力機能の処理を開始する等の、制御許可通知を通知する、入力機能の処理状況の条件(タイミング)を示した情報とする。
このため、機能B1と機能B2の開始タイミングは、開始状態条件情報によって異なる。入力状態は、入力リストが保持している機能毎に、次の機能を開始して良いか否か等を表す状態(フラグ)を保持する。本実施の形態の入力状態においては、機能Aに対応するフラグが設定される。
状態設定制御情報は、図9の処理の場合、入力リストには、機能Aの状態情報保持部IDと状態情報パラメータのアドレスが設定され、出力リストには、機能B1及び機能B2の状態情報保持部IDと状態情報パラメータのアドレスと開始状態条件情報とが設定される。
統合ビデオドライバTBDrのドライバ制御部905は、状態情報保持部310aに、機能A用ドライバDraへの機能A用の設定パラメータの設定と、通知を許可するための処理状況(状態情報パラメータ)の指定と、を行う。また、ドライバ制御部905は、状態情報保持部910baに、機能B1用ドライバDrbaに機能B1を実行させるか判断するための処理状況(状態情報パラメータ)の指定を行い、さらに、状態情報保持部910bbに、機能B2用ドライバDrbbへの機能B2を実行させるか判断するための処理状況(状態情報パラメータ)の指定を行う。
機能A用ドライバDraは、状態情報保持部310aに機能A用の設定パラメータの設定と処理状況(状態情報パラメータ)の指定が行われると、ASIC10の機能Aを制御して、画像データに対して前段の機能Aとしての機能動作を行わせる。機能B1用ドライバDrbaは、状態情報保持部910baに後段の機能B1用のパラメータ設定と処理状況(状態情報パラメータ)と開始状態条件情報との指定が行われると、開始状態条件情報で示された条件を満たした場合に、ASIC10の機能B1を制御して、機能Aで処理された画像データに対して機能B1としての機能動作を行わせる。また、機能B2用ドライバDrbbは、状態情報保持部910bbから機能B2用のパラメータ設定と処理状況(状態情報パラメータ)と開始状態条件情報との指定が行われると、開始状態条件情報で示された条件を満たした場合に、ASIC10の機能B2を制御して、機能Aで処理された画像データに対して後段の機能B2としての機能動作を行わせる。
そして、ASIC10の機能Aは、設定パラメータに基づいて画像データに機能Aとしての画像処理を施して、指定された状態情報を機能A制御部311aに通知し、機能A制御部311aは、該機能Aからの状態情報を状態情報保持部310aの状態情報に対して更新する。機能A用出力部312aは、機能A制御部311aを介して機能Aから通知された状態情報保持部310aの状態情報を、状態設定制御部901aに通知する。
状態設定制御部901aのドライバ制御部905は、機能Aから通知された状態情報が、ユーザの設定した状態設定制御情報の入力リストの状態情報パラメータになると、入力状態を、「1」または「0」に切り替える。判断部903が、入力リストの機能Aと制御情報記憶部902で対応付けて記憶されている出力リストの機能B1及び機能B2を開始して良いか否か判断する。
そして、判断部903は、入力状態に基づいて、次の機能を開始して良いと判断した場合に、さらに判断部903は、機能B1の開始状態条件情報で示された条件を満足しているか否か判断する。満足していると判断した場合、要求部904が、出力リストの機能B1に対して起動をかけるために、機能B1用ドライバDrbaに制御許可通知を行う。さらに、判断部903は、機能B2の開始状態条件情報で示された条件を満足しているか否か判断する。満足していると判断した場合、要求部904が、出力リストの機能B2に対して起動をかけるために、機能B2用ドライバDrbbに制御許可通知を行う。
例えば、入力状態「1」を入力状態情報待ち状態、入力状態「0」を入力状態情報通知受付状態とする。この場合、機能Aから通知された状態情報が入力リストの状態情報パラメータになると、ドライバ制御部905が、機能Aの入力状態を「0」に切り替える。そして、該入力状態が全て「0」になると、判断部903が出力リストの機能Bを開始して良いと判断する。そして、判断部903が、出力リストの機能B1及び機能B2それぞれの開始状態条件情報で示された条件を満足するか否か判断する。そして、判断部903が、条件を満足したと判断した場合に、条件を満足した機能B1及び機能B2に対して起動をかけるために、機能B1用ドライバDrbaの状態情報保持部910ba及び機能B2用ドライバDrbbの状態情報保持部910bbに制御許可通知を行う。
機能B1用ドライバDrbaの状態情報保持部910baは、状態設定制御部901aから制御許可通知を受け取ると、機能B1用ドライバDrbaが、当該機能B1制御部911baに対して、状態情報保持部910baが保持していた設定パラメータの設定と処理状況(状態情報パラメータ)の指定を行う。機能B1制御部911baは、状態情報保持部911baが保持していた機能B1用の設定パラメータの設定と処理状況(状態情報パラメータ)の指定が行われると、機能B1を起動させて、機能Aで処理された画像データに対して機能B1としての機能動作を行わせる。
また、機能B2用ドライバDrbbの状態情報保持部910bbは、状態設定制御部901aから制御許可通知を受け取ると、機能B2用ドライバDrbbが、当該機能B2制御部911bbに対して、状態情報保持部910bbが保持していた設定パラメータの設定と処理状況(状態情報パラメータ)の指定を行う。機能B2制御部911bbは、状態情報保持部911bbが保持していた機能B2用の設定パラメータの設定と処理状況(状態情報パラメータ)の指定が行われると、機能B2を起動させて、機能Aで処理された画像データに対して機能B2としての機能動作を行わせる。
なお、図9は、機能A用ドライバDraと機能B1用ドライバDrbaと機能B2用ドライバDrbbの3つのドライバのそれぞれに状態情報保持部310a、910ba、910bbを設けるとともに、統合ビデオドライバTBDrに状態設定制御部901aを設けて、ASIC10の機能A、機能B1及び機能B2を動作制御する場合について示しているが、状態情報保持部を有するドライバの数は、上記の数に限られるものではなく、データに対する処理に応じて適宜設定される。
次に、本実施の形態の作用を説明する。本実施の形態の画像データ処理装置1は、ドライバDr1〜Dr12にそれぞれ状態情報保持部310a、910ba、910bb・・・を設けるとともに、統合ビデオドライバTBDrに状態設定制御部901aを設けてドライバDr1〜Dr12による複数出力の場合のASIC10の各機能動作制御を柔軟に行う。
なお、以下の説明では、図9の機能A用ドライバDra、機能B1用ドライバDrba及び機能B2用ドライバDrbbの3つのドライバを用いて、ASIC10の前段の機能A及び後段の機能B1と機能B2を制御する場合について説明する。
いま、画像データ処理装置1は、ユーザの設定に応じて、プロセス20の統合ビデオライブラリ22と統合ビデオドライバTBDrとの間で情報の交換やスレッド関数のコール等を行って、統合ビデオドライバTBDrに必要なパラメータの設定や情報の通知を行う。そして、統合ビデオドライバTBDrは、状態設定制御部901aに、状態設定制御情報を設定するとともに、状態情報保持部310aに、機能A用ドライバDraへの設定パラメータの設定と通知処理状況(状態情報パラメータ)の指定を行い、状態情報保持部910baに、機能B1用ドライバDrbaへの設定パラメータの設定と通知処理状況(状態情報パラメータ)と開始状態条件情報の指定を行うとともに、状態情報保持部910bbに、機能B2用ドライバDrbbへの設定パラメータの設定と通知処理状況(状態情報パラメータ)と開始状態条件情報の指定を行う。
図9の場合、画像データ処理装置1は、まず、機能Aでの処理を開始して、ユーザの設定した起動タイミング(なお、この場合、機能B1と機能B2とで開始タイミングが異なるときには、状態情報保持部910ba、910bbが、図10に示したように、開始状態条件情報を保持している。)に合わせて、機能B1、機能B2を起動させて、前段の機能A及び後段の機能B1と機能B2で画像データの処理を行わせる。
すなわち、画像データ処理装置1においては、まず、機能Aを起動するために、状態情報保持部310aが、必要な設定パラメータとユーザの指定した状態情報パラメータを機能A用ドライバDraに設定し、機能A用ドライバDraは、ASIC10の機能Aが使用可能な状態かをチェックした上で、機能Aを起動する。
機能Aは、入力される画像データに対して設定パラメータに基づいて機能Aの動作処理を実行し、機能Aによる画像データの処理状況を状態情報として、機能A用ドライバDraに通知する。機能A用ドライバDraは、該通知された状態情報で状態情報保持部310aを更新する。そして、機能A1用出力部312aは、状態情報保持部310aの該状態情報を、状態情報通知として状態設定制御部901aに通知する。
状態設定制御部901aのドライバ制御部905は、機能A用ドライバDraを介して機能Aから通知された状態情報を、入力状態に反映させる。例えば、ドライバ制御部905は、該状態情報が、ユーザの設定した状態設定制御情報の入力リストの状態情報パラメータになると、入力状態を「1」から「0」に切り替える。そして、判断部903が、該入力状態が全て「0」になる及び開始状態条件情報を満足すると、出力リストの機能B1及び機能B2に対して起動をかけるために、状態情報保持部910ba及び状態情報保持部910bbに制御許可通知を行う。このように、機能B1と機能B2とで起動タイミングが異なるときには、状態設定制御部901aの出力リストの機能B1と機能B2のそれぞれの開始状態条件情報を異ならせればよい。
機能B1用ドライバDrbaの状態情報保持部910baは、状態設定制御部901aから制御許可通知を受け取ると、機能B1用ドライバDrbaが、当該機能B1制御部911baに対して、状態情報保持部910baが保持していた設定パラメータの設定と処理状況(状態情報パラメータ)の指定を行う。機能B1制御部911baは、状態情報保持部911baが保持していた機能B1用の設定パラメータの設定と処理状況(状態情報パラメータ)の指定が行われると、機能B1を起動させて、機能Aで処理された画像データに対して機能B1としての機能動作を行わせる。
また、機能B2用ドライバDrbbの状態情報保持部910bbは、状態設定制御部901aから制御許可通知を受け取ると、機能B2用ドライバDrbbが、当該機能B2制御部910bbに対して、状態情報保持部910bbが保持していた設定パラメータの設定と処理状況(状態情報パラメータ)の指定を行う。機能B2制御部911bbは、状態情報保持部910bbが保持していた機能B2用の設定パラメータの処理状況(状態情報パラメータ)の指定が行われると、機能B2を起動させて、機能Aで処理された画像データに対して機能B2としての機能動作を行わせる。
このように、本実施の形態の画像データ処理装置1においては、状態設定制御部901aの制御情報記憶部902が、前段の機能Aと、機能Aの数よりも多い後段の機能B1、機能B2とを対応付けた状態設定制御情報を記憶している。そして、状態設定制御部901aの判断部903及び要求部904は、該前段の機能Aによるデータ処理状況である状態情報と、該状態設定制御情報と、に基づいて、後段の機能B1、機能B2の起動タイミングを制御している。
したがって、少入力−多出力のデータ処理を適切にかつ高速に行うことができる。
(第4の実施の形態)
図11及び図12は、第4の実施の形態にかかるデータ処理装置及びデータ処理方法を示す図である。本実施の形態でも、データ処理装置及びデータ処理方法を、画像データ処理装置に適用した例について説明する。図11は、第4の実施の形態にかかる画像データ処理装置の要部機能構成図である。
なお、第4の実施の形態は、上記第1の実施の形態の画像データ処理装置1と同様の画像データ処理装置に適用したものであり、本実施の形態の説明においては、必要に応じて、第1の実施の形態の説明で用いた符号をそのまま用いて説明する。
また、本実施の形態は、その画像データ処理装置1において、後段の1つの機能を複数回優先順位に基づいて処理を行う場合に適用したものであり、図11は、ASIC10の入力機能Aの出力結果である画像データに対して、同一機能の機能B−1と機能B−2とで処理を行う場合に適用したものである。また、機能B−1は、機能Bで優先度が「1」の機能とし、機能B−2は、機能Bで優先度が「2」の機能とする。なお、このように同一機能を複数回する場合としては、例えば画像データの色毎(R、G、B)に同一機能で処理を行う場合などが考えられる。
図11に示すように、画像データ処理装置1は、状態設定制御部1101a、機能A用ドライバDra、及び機能B用ドライバDrbを備える。
そして、機能A用ドライバDraは、状態情報保持部310a、機能A制御部311a、及び機能A用出力部312aを備えている。機能B用ドライバDrbは、状態情報保持部1110ba、状態情報保持部1110bb、機能B制御部311b、及び機能B1用出力部312bを備えている。
状態情報保持部310a、状態情報保持部1110ba及び状態情報保持部1110bbは、機能A、及び機能Bを実行するために必要な設定パラメータと、各機能によるデータ処理状況情報である状態情報と、次の機能の実行を開始する条件を示す処理状況(状態情報パラメータ)と、を保持する。
状態設定制御部1101aは、制御情報記憶部1102と、判断部1103と、要求部1104と、ドライバ制御部1105と、を備える。ドライバ制御部1105は、機能A用ドライバDraの状態情報保持部310a、機能B1用ドライバDrbの状態情報保持部1110ba及び状態情報保持部1110bbへのパラメータ設定と、状態情報保持部310a、状態情報保持部1110ba及び状態情報保持部1110bbに対するパラメータの参照と、機能A用ドライバDraからの状態情報通知の受信制御と、を行う。判断部1103及び要求部1104は、指定された制御手順通りに機能Aの後に機能B−1及び機能B−2を実行する制御を行う。
図11において、画像データ処理装置1は、例えば、画像データに対して、ASIC10に、機能A及び機能B(機能Bは、機能B−1と機能B−2を内蔵している。)を動作させる場合、ドライバDr1〜Dr12のうち、機能A、及び機能Bと対応付けられたドライバを、機能A用ドライバDra、機能B用ドライバDrbとする。
機能A用の状態情報保持部310a、機能B−1用の状態情報保持部1110ba及び機能B−2用の状態情報保持部1110bb、並びに状態設定制御部1101aは、上記データ処理プログラム(例えば、統合ビデオドライバTBDr)によって構築される。そして、状態設定制御部1101aは、機能B1及び機能B2の起動タイミングをユーザの設定したタイミング(優先度)に合わせて、ASIC10に機能A及び機能B1と機能B2のデータ処理を行わせる。
上記機能A用の状態情報保持部310a、機能B−1用の状態情報保持部1110ba及び機能B−2用の状態情報保持部1110bbは、それぞれ機能A用ドライバDra及び機能B用ドライバDrbの一部として構築され、状態設定制御部1101aは、統合ビデオドライバTBDrの一部として構築される。
状態設定制御部1101aの制御情報記憶部1102は、状態設定制御情報を記憶する。図12に示すように制御情報記憶部1102は、図4と同様の構造の状態設定制御情報を記憶する。また、状態設定制御情報は、スレッドが要求する画像処理を実現するための制御手順に応じて設定可能である。
状態設定制御情報は、上記同様に、状態設定制御ID、入力状態、入出力有効マスク、入力数、出力数、入力リスト及び出力リストによって構成されている。入力リストは、画像データの入力機能のリストが設定され、本実施の形態の場合、機能Aの状態情報保持部IDと状態情報パラメータのアドレスが設定されている。状態情報パラメータは、ユーザが設定する情報で、例えば、何ラインまで処理が完了すると、次の処理の開始を許可してもよいとの許可通知を出してもよい等の情報である。
出力リストは、入力機能による画像データの処理状況により、次の機能を実行して良いと判断された場合に、制御許可通知が出力される側においてデータ処理を行う機能を示す出力機能のリストが設定されている。本実施の形態の場合、出力リストでは、同一機能の実行される順番(機能B−1及び機能B−2のそれぞれ)毎に、機能用ドライバの状態情報保持部を示す状態情報保持部ID、状態情報パラメータのアドレス及び制御優先順序が設定される。
制御優先順序は、同一機能で複数回処理を行う場合に、優先ランクを1から順に設定した値とする。例えば、機能B−1の制御優先順序に「1」が設定され、機能B−2の制御優先順序に「2」が設定されている場合、機能B−1が最初に実行され、その後に機能B−2が実行されることになる。このように、制御優先順序によって、機能B−1と機能B−2の開始タイミングが異なる。
入力状態は、入力リストが保持している機能毎に、次の機能を開始して良いか否か等を表す状態(フラグ)を保持する。本実施の形態の入力状態においては、機能Aに対応するフラグが設定される。
状態設定制御情報は、図11の処理の場合、入力リストには、機能Aの状態情報保持部IDと状態情報パラメータのアドレスが設定され、出力リストには、機能B−1及び機能B−2それぞれの状態情報保持部IDと状態情報パラメータのアドレスと開始状態条件情報とが設定される。
統合ビデオドライバTBDrのドライバ制御部1105は、状態情報保持部310aに、機能A用ドライバDraへの機能A用の設定パラメータの設定と、通知を許可するための処理状況(状態情報パラメータ)の指定と、を行う。また、ドライバ制御部1105は、状態情報保持部1110baに、機能B1用ドライバDrbaに機能B1を実行させるか判断するための処理状況(状態情報パラメータ)の指定を行い、さらに、状態情報保持部910bbに、機能B2用ドライバDrbbへの機能B2を実行させるか判断するための処理状況(状態情報パラメータ)の指定を行う。
機能A用ドライバDraは、状態情報保持部310aに機能A用の設定パラメータの設定と処理状況(状態情報パラメータ)の指定が行われると、ASIC10の機能Aを制御して、画像データに対して前段の機能Aとしての機能動作を行わせる。機能B用ドライバDrbは、状態情報保持部1110baまたは状態情報保持部1110bbに機能B−1用または機能B−2用のパラメータ設定と処理状況(状態情報パラメータ)と制御優先順序の指定が行われると、制御優先順序に従って、ASIC10を制御して、機能Aで処理された画像データに対して機能B−1または機能B−2としての機能動作を行わせる。
そして、ASIC10の機能Aは、設定パラメータに基づいて画像データに機能Aとしての画像処理を施して、指定された状態情報を機能A制御部311aに通知し、機能A制御部311aは、該機能Aからの状態情報を状態情報保持部310aの状態情報に対して更新する。機能A用出力部312aは、機能A制御部311aを介して機能Aから通知された状態情報保持部310aの状態情報を、状態設定制御部1101aに通知する。
状態設定制御部1101aのドライバ制御部1105は、機能Aから通知された状態情報が、ユーザの設定した状態設定制御情報の入力リストの状態情報パラメータになると、入力状態を、「1」または「0」に切り替える。判断部1103が、入力リストの機能Aと制御情報記憶部1102で対応付けて記憶されている出力リストの機能B−1及び機能B−2を開始して良いか否か判断する。
そして、判断部1103は、入力状態に基づいて、次の機能を開始して良いと判断した場合に、さらに判断部1103は、機能B−1及び機能B−2の制御優先順序によりいずれの機能を優先すべきか判断する。そして、判断部1103の判断した優先順序に従って、要求部1104は、出力リストの機能Bに対して起動をかけるために、状態情報保持部1110baまたは状態情報保持部1110bbに制御許可通知を行う。
例えば、入力状態「1」を入力状態情報待ち状態、入力状態「0」を入力状態情報通知受付状態とする。この場合、機能Aから通知された状態情報が入力リストの状態情報パラメータになると、ドライバ制御部1105が、機能Aの入力状態を「0」に切り替える。そして、該入力状態が全て「0」になると、判断部1103が出力リストの機能Bを開始して良いと判断する。そして、判断部1103が、出力リストの機能B1及び機能B2それぞれの制御優先順序で、機能B−1及び機能B−2の実行する順序を判断する。そして、要求部1104は、出力リストの機能B−1及び機能B−2のうち優先順位に従って、機能Bに対して起動をかけるために、機能B用ドライバDrbの状態情報保持部1110ba及び状態情報保持部1110bbに制御許可通知を行う。
機能B用ドライバDrbの状態情報保持部1110baは、状態設定制御部1101aから制御許可通知を受け取ると、機能B用ドライバDrbが、当該機能B制御部1110baに対して、状態情報保持部1110baが保持していた機能B−1用の設定パラメータの設定と処理状況(状態情報パラメータ)の指定を行う。機能B制御部311bは、状態情報保持部1110baが保持していた機能B−1用の設定パラメータの設定と処理状況(状態情報パラメータ)の指定が行われると、機能B−1を起動させて、機能Aで処理された画像データに対して機能B−1としての機能動作を行わせる。
また、機能B用ドライバDrbの状態情報保持部1110bbは、状態設定制御部1101aから制御許可通知を受け取ると、機能B用ドライバDrbが、当該機能B制御部311bに対して、状態情報保持部1110bbが保持していた機能B−2用の設定パラメータの設定と処理状況(状態情報パラメータ)の指定を行う。機能B制御部311bは、状態情報保持部1110bbが保持していた機能B−2用の設定パラメータの設定と処理状況(状態情報パラメータ)の指定が行われると、機能B−2を起動させて、機能A(加えて機能B−1)で処理された画像データに対して機能B−2としての機能動作を行わせる。
なお、図11は、機能A用ドライバDraと機能B用ドライバDrbの2つのドライバのそれぞれに状態情報保持部310a、1110ba及び1110bbを設けるとともに、統合ビデオドライバTBDrに状態設定制御部1101aを設けて、ASIC10の機能A及び機能Bの機能B−1と機能B−2を動作制御する場合について示しているが、状態情報保持部を有するドライバの数は、上記の数に限られるものではなく、データに対する処理に応じて適宜設定される。
次に、本実施の形態の作用を説明する。本実施の形態の画像データ処理装置1は、ドライバDr1〜Dr12にそれぞれ情報保持部310a、1110ba及び1110bb・・・を設けるとともに、統合ビデオドライバTBDrに状態設定制御部1101aを設けてドライバDr1〜Dr12によってASIC10の各機能動作のうち複数の同−機能を優先順位に基づいて柔軟に制御する。
なお、以下の説明では、図11の機能A用ドライバDra、機能B用ドライバDrbの2つのドライバを用いて、ASIC10の機能A、機能B(機能B−1と機能B−2を内蔵する)を制御する場合について説明する。この機能Bの機能としては、例えば、画像の回転機能であり、機能B−1が90度回転、機能B−2が270度回転の場合等である。
いま、ユーザの設定に応じて、プロセス20の統合ビデオライブラリ22と統合ビデオドライバTBDrとの間で情報の交換やスレッド関数のコール等を行って、統合ビデオドライバTBDrに必要なパラメータの設定や情報の通知を行う。そして、統合ビデオドライバTBDrは、状態設定制御部1101aに、状態設定制御情報を設定するとともに、状態情報保持部310aに、機能A用ドライバDraへの設定パラメータの設定と通知処理状況(状態情報パラメータ)の指定を行うとともに、状態情報保持部1110baに、機能B−1を実行するための機能B用ドライバDrbへの設定パラメータの設定と通知処理状況(状態情報パラメータ)の指定を行う。また、状態情報保持部1110bbに、機能B−2を実行するための機能B用ドライバDrbへの設定パラメータの設定と通知処理状況(状態情報パラメータ)の指定を行う。
図11の場合、まず、機能Aでの処理を開始して、ユーザの設定した起動タイミング(なお、機能B1と機能B2の開始タイミングの優先順位は、図12に示したように、制御情報記憶部1102が、制御優先順位を保持している。なお、状態情報保持部1110ba及び状態情報保持部1110bbがそれぞれの制御優先順序を保持し、制御情報記憶部1102がこれらを指し示すアドレスを保持することにしても良い。)に合わせて、機能B1、機能B2を起動させて、機能Aと機能B1または機能B2で画像データの処理を行わせる。
すなわち、画像データ処理装置1においては、まず、機能Aを起動するために、状態情報保持部310aが、必要な設定パラメータとユーザの指定した状態情報パラメータを機能A用ドライバDraに設定し、機能A用ドライバDraは、ASIC10の機能Aが使用可能な状態かをチェックした上で、機能Aを起動する。
機能Aは、入力される画像データに対して設定パラメータに基づいて機能Aの動作処理を実行し、機能Aによる画像データの処理状況を状態情報として、機能A用ドライバDraに通知する。機能A制御部311aは、該通知された状態情報で状態情報保持部310aを更新し、機能A用出力部312aは、状態情報保持部310aの該状態情報を、状態情報通知として状態設定制御部1101aに通知する。
状態設定制御部1101aは、機能A用ドライバDra及び状態情報保持部310aを介して機能Aから通知された状態情報が、ユーザの設定した状態設定制御情報の入力リストの状態情報パラメータになると、入力状態を、例えば、「1」から「0」に切り替え、該入力状態が全て「0」になると、出力リストの機能B1または機能B2に対して起動をかけるために、状態情報保持部1110baまたは状態情報保持部1110bbに制御許可通知を行う。この場合、機能B1と機能B2の起動タイミングとして、状態設定制御部1101aの制御情報記憶部1102は、出力リストの機能B1と機能B2のそれぞれに、図12に示したように、その優先順位を設定する制御優先順位を有している。そして、要求部1104は、当該制御優先順位に基づいて制御許可通知を行う。
機能B用ドライバDrbの状態情報保持部1110baは、状態設定制御部1101aから制御許可通知を受け取ると、機能B用ドライバDrbが、当該機能B制御部311bに対して、状態情報保持部1110baの保持する機能B−1用の設定パラメータの設定と処理状況(状態情報パラメータ)の指定を行う。そして、機能B制御部311bは、状態情報保持部1110baの保持していた機能B−1用の設定パラメータの設定と処理状況(状態情報パラメータ)の指定が行われると、機能Bの機能B−1を起動させて、設定パラメータに従って、機能Aで処理された画像データに対して機能B−1としての機能動作を行わせる。また、機能B用ドライバDrbの状態情報保持部1110bbは、状態設定制御部1101aから制御許可通知を受け取ると、機能B用ドライバDrbが、当該機能B制御部311bに対して、状態情報保持部1110bbの保持する機能B−2用の設定パラメータの設定と処理状況(状態情報パラメータ)の指定を行う。そして、機能B制御部311bは、状態情報保持部1110bbの保持していた機能B−2用の設定パラメータの設定と処理状況(状態情報パラメータ)の指定が行われると、機能Bの機能B−2を起動させて、設定パラメータに従って、機能A(加えて機能B−1)で処理された画像データに対して機能B−2としての機能動作を行わせる。
このように、本実施の形態の画像データ処理装置1においては、制御情報記憶部1102が、制御手順情報として、該異なる処理毎に優先度が記憶されている。このため、該後段の機能Bを用いた機能B−1及び機能B−2の処理順序を、優先度に基づいて制御できる。
したがって、同一デバイスの排他処理を行うことができ、データ処理の効率をより一層向上させることができる。
(変形例1)
ところで、上記各実施の形態の説明においては、ハードウェアであるASIC10の各種機能のうち、前段の機能と後段の機能との処理タイミングは、前段の処理状況にのみ基づいて決定されている。しかしながら、後段の機能の処理タイミングは、前段の機能の処理タイミングに基づくものに制限するではない。そこで、本変形例では、前段の処理タイミングと関係なく処理を行う場合について説明する。
本変形例においては、図13に示すように、状態設定制御部の制御情報記憶部に、制御許可通知タイミング値を記憶させる。制御許可通知タイミング値は、入力状態の変化回数と制御許可通知の関係を示したパラメータとする。例えば、制御許可通知タイミング値に「2」が設定された場合、入力状態が2回変化した時に制御許可通知を行うことを意味する。この制御許可通知タイミング値は、ユーザが任意に設定可能なタイミング値とする。
図13に示す例では、機能Aの処理が指定の状態まで進行したことが通知されて、入力状態が「1」から「0」に切りかわる回数が、制御許可通知タイミング値に設定されているタイミング値となった場合に、機能Bの起動を行わせる。すなわち、状態設定制御部は、前段の機能Aの所定のデータ処理状況で決定される後段の機能Bの起動タイミングとは異なる起動タイミングで、該後段の機能Bを起動させる。したがって、多出力の制御を非同期で行うことができる。
(変形例2)
上述した実施形態及び変形例では、ハードウェアであるASIC10の各種機能のうち、機能間の処理タイミングは、後段の機能の処理開始タイミングが前段の機能の処理状況にのみ基づいて決定されている。しかしながら、実行する各機能の処理タイミングは、これらの処理タイミングに限るものではない。例えば、図14に示すように、ASIC10によって画像データに対して、機能A用ドライバDraと機能B用ドライバDrbによって機能Aと機能Bの処理を相互の処理タイミングを調整しつつ行ってもよい。
図14に示す例では、統合ビデオドライバTBDrが、その状態設定制御部31aの制御情報記憶部301に、状態設定制御情報を設定し、状態情報保持部310aに、機能A用ドライバDraへの設定パラメータの設定と処理状況(状態情報パラメータ)の指定を行い、また、状態情報保持部310bに、機能B用ドライバDrbへの設定パラメータの設定と処理状況(状態情報パラメータ)の指定を行う。
まず、機能Aでの処理を開始する。機能AドライバDra及び状態情報保持部310aを介して通知された状態情報通知で、機能Aでの処理状況を状態設定制御部31aが監視する。所定のタイミングまで、機能Aの処理が進行すると、機能A用ドライバDraは、機能Aの処理を一時停止させる。この停止させる条件は、例えば状態情報保持部310aが保持する。
次に、状態設定制御部31aは、状態情報保持部310bに、機能B用ドライバDrbへの設定パラメータの設定と処理状況(状態情報パラメータ)の指定を行い、機能Bを起動させる。そして、機能Bでの処理状況を機能BドライバDrb及び状態情報保持部310bを介して状態設定制御部31aが監視する。所定のタイミングまで、該機能Bの処理が進行すると、起動タイミング(機能Aの状態)に合わせて、状態設定制御部31aが状態情報保持部310aに対して制御許可通知を発行する。状態情報保持部310aが、制御許可通知を受けた時に、機能Aの処理が一時停止していれば、機能A用ドライバDraは、機能Aの処理を再開するように機能A制御部311aに対して再開命令を発行する。
このようにすると、前段機能と後段機能とを同期制御して処理させることができ、例えば、データ処理に利用可能なメモリに制限がある場合に、メモリへの上書きを防止しつつメモリを利用した処理を実行させたり、処理速度の異なる機能(例えば、スキャナで読み取った入力画像データを適宜の処理を施してメモリに書き込む場合や、メモリ上の画像データに適宜のデータ処理を施して印刷出力する場合等)を適切に同期させて処理を実行することができる。
以上、本発明者によってなされた発明を好適な実施の形態に基づき具体的に説明したが、本発明は上記のものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
図15は、かかる画像データ処理装置1のハードウェア構成を示すブロック図である。本図に示すように、この画像データ処理装置1は、コントローラ1510とエンジン部(Engine)1560とをPCI(Peripheral Component Interconnect)バスで接続した構成となる。コントローラ1510は、画像データ処理装置1全体の制御と描画、通信、操作部1520からの入力を制御するコントローラである。エンジン部1560は、PCIバスに接続可能なプリンタエンジンなどであり、たとえば白黒プロッタ、1ドラムカラープロッタ、4ドラムカラープロッタ、スキャナまたはファックスユニットなどである。なお、このエンジン部60には、プロッタなどのいわゆるエンジン部分に加えて、誤差拡散やガンマ変換などの画像処理部分が含まれる。
コントローラ1510は、CPU1511と、ノースブリッジ(NB)1513と、システムメモリ(MEM−P)1512と、サウスブリッジ(SB)1514と、ローカルメモリ(MEM−C)1517と、ASIC(Application Specific Integrated Circuit)10と、ハードディスクドライブ(HDD)1518とを有し、ノースブリッジ(NB)1513とASIC10との間をAGP(Accelerated Graphics Port)バス1515で接続した構成となる。また、MEM−P1512は、ROM(Read Only Memory)1512aと、RAM(Random Access Memory)1512bとをさらに有する。
CPU1511は、画像データ処理装置1の全体制御をおこなうものであり、NB1513、MEM−P1512およびSB1514からなるチップセットを有し、このチップセットを介して他の機器と接続される。そして、CPU1511は、画像データプログラムにより、図1に示したプロセス20、統合ビデオドライバTBDr、統合ドライバTDr1、TDr2、ドライバDr1〜12の処理を実現する。
NB1513は、CPU1511とMEM−P1512、SB1514、AGP1515とを接続するためのブリッジであり、MEM−P1512に対する読み書きなどを制御するメモリコントローラと、PCIマスタおよびAGPターゲットとを有する。
MEM−P1512は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ROM1512aとRAM1512bとからなる。ROM1512aは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、RAM1512bは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
SB1514は、NB1513とPCIデバイス、周辺デバイスとを接続するためのブリッジである。このSB1514は、PCIバスを介してNB1513と接続されており、このPCIバスには、ネットワークインターフェース(I/F)部なども接続される。
ASIC10は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)であり、AGP1515、PCIバス、HDD1518およびMEM−C17をそれぞれ接続するブリッジの役割を有する。このASIC10は、PCIターゲットおよびAGPマスタと、ASIC10の中核をなすアービタ(ARB)と、MEM−C1517を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などをおこなう複数のDMAC(Direct Memory Access Controller)と、エンジン部1560との間でPCIバスを介したデータ転送をおこなうPCIユニットとからなる。このASIC10には、PCIバスを介してFCU(Fax Control Unit)1530、USB(Universal Serial Bus)1540、IEEE1394(the Institute of Electrical and Electronics Engineers 1394)インターフェース1550が接続される。
MEM−C1517は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、HDD(Hard Disk Drive)1518は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。
AGP1515は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、MEM−P1512に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
なお、本実施形態の画像データ処理装置1で実行される画像処理プログラムは、ROM等に予め組み込まれて提供される。
本実施形態の画像データ処理装置1で実行される画像処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、本実施形態の画像データ処理装置で実行される画像データ処理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の画像データ処理装置で実行される画像データ処理プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
本実施の形態の画像データ処理装置で実行される画像データ処理プログラムは、上述した各部(プロセス20、統合ビデオドライバTBDr、統合ドライバTBDr1、TBDr2、及びドライバDr1〜12)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記ROMから画像データ処理プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、プロセス20、統合ビデオドライバTBDr、統合ドライバTBDr1、TBDr2、及びドライバDr1〜12が主記憶装置上に生成されるようになっている。
なお、図15に示す、本実施の形態にかかる画像データ処理装置のハードウェア構成は、一例として示したものであり、他のハードウェア構成でもよい。