(57)【特許請求の範囲】
【請求項１】
それぞれが処理部を有する複数の処理ブロックが共通バスによって直列に接続された画像処理装置における当該複数の処理ブロックのそれぞれにより実行される画像処理方法であって、
前記共通バスを介して当該処理ブロックに入力されたデータを用いた画像処理を、当該処理ブロックの処理部により行なうデータ処理工程と、
前記共通バスを介して当該処理ブロックに入力されたコマンドに応じた処理を、当該処理ブロックの処理部に対して行なうコマンド処理工程と、
前記共通バスを介して第１の処理ブロックに入力される第１のコマンドについて、当該第１のコマンドの前に前記第１の処理ブロックへ入力されたデータに基づくデータ処理によるデータ出力が完了するまで、前記第１の処理ブロックから当該第１のコマンドを出力することを遅延させる遅延工程とを有することを特徴とする画像処理方法。
【請求項２】
前記コマンド処理工程では、当該コマンドの前に当該処理ブロックに入力されたデータを用いた処理を終了した前記処理部に対して当該コマンドに応じた処理を行なうことを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記コマンド処理工程では、当該コマンドの前に当該処理ブロックに入力されたデータを用いた処理を終了した前記処理部にパラメータを設定することを特徴とする請求項１に記載の画像処理方法。
【請求項４】
前記コマンド処理工程では、当該コマンドの前に当該処理ブロックに入力されたデータを用いた処理を終了した前記処理部の状態を示すデータを読出すことを特徴とする請求項１に記載の画像処理方法。
【請求項５】
前記コマンド処理工程では、当該処理ブロックの処理部の状態を示すデータを読出し、前記遅延工程では、前記コマンドより前に当該処理ブロックに入力されたデータを用いた処理を行なった前記処理部の出力が終了するまで、前記読出された状態を示すデータの出力を待機させることを特徴とする請求項１に記載の画像処理方法。
【請求項６】
前記遅延工程は、前記コマンドの処理結果、及び、当該処理ブロックの入力がデータであるかコマンドであるかを示す識別データを、バッファに格納する格納工程を含むことを特徴とする請求項１に記載の画像処理方法。
【請求項７】
共通バスによって直列に接続された複数の処理ブロックを有する画像処理装置であって、
前記複数の処理ブロックのそれぞれは、
当該処理ブロックに入力されたデータを用いた画像処理を行なう第１の処理手段と、
当該処理ブロックに入力されたコマンドに応じた処理を、前記第１の処理手段に対して行なう第２の処理手段と、
前記共通バスを介して第１の処理ブロックに入力される第１のコマンドについて、当該第１のコマンドの前に前記第１の処理ブロックへ入力されたデータに基づくデータ処理によるデータ出力が完了するまで、前記第１の処理ブロックから当該第１のコマンドを出力することを遅延させるように制御する制御手段とを有することを特徴とする画像処理装置。
【請求項８】
前記第２の処理手段は、当該コマンドの前に当該処理ブロックに入力されたデータを用いた処理を終了した前記第１の処理手段に対して当該コマンドに応じた処理を行なうことを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記第２の処理手段は、当該コマンドの前に当該処理ブロックに入力されたデータを用いた処理を終了した前記第１の処理手段にパラメータを設定することを特徴とする請求項７に記載の画像処理装置。
【請求項１０】
前記第２の処理手段は、当該コマンドの前に当該処理ブロックに入力されたデータを用いた処理を終了した前記第１の処理手段の状態を示すデータを読出すことを特徴とする請求項７に記載の画像処理装置。
【請求項１１】
前記第２の処理手段は、前記第１の処理手段の状態を示すデータを読出し、前記制御手段は、前記コマンドより前に当該処理ブロックに入力されたデータを用いた処理を行なった前記第１の処理手段の出力が終了するまで、前記読出された状態を示すデータの出力を待機させることを特徴とする請求項７に記載の画像処理装置。
【請求項１２】
前記制御手段は、前記コマンドの処理結果、及び、当該処理ブロックの入力がデータであるかコマンドであるかを示す識別データを格納するバッファをさらに有することを特徴とする請求項７に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コマンド及びデータを多重化して、共通のデータバスによりそれらの入出力を行なう画像処理装置及び方法に関する。
【背景技術】
【０００２】
従来技術として、データの入出力を行なう為のデータバスと、レジスタ設定を行なう為のＣＰＵバスが別々に設けられた画像処理装置が知られている。この種の画像処理装置においては、割り込み信号を用いた制御方式により、特定のデータ単位（ページ、ブロック、バンド等）で処理に用いるパラメータを変更したり、内部状態を示すレジスタのリード動作を行なったりしていた。そして、このような割り込み処理の実行中では、データ転送を止めていた。
【０００３】
また、特許文献１では、映像データの各フレームのスキャンラインの先頭に制御コマンドを付加して、映像データに制御コマンドを多重化し伝送を行なうことにより、各フレームに同期した制御を行なっている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−２１４２６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、割り込み信号を用いた制御方式では、転送中の任意のデータ間で、画像処理に用いるフィルタ係数や二値化用閾値等のパラメータを変更したり、内部状態を示すレジスタのリード動作を実行したりすることは困難であった。又、出来たとしても、割り込み処理中はデータ転送を止める必要があり、処理が低速になってしまうという課題があった。さらに特許文献１に記載された技術では、フレームごとにパラメータの変更やレジスタのリード動作を行なうことは可能であるが、フレーム内の任意のデータ間でのパラメータ変更やレジスタのリード動作を行なうことは困難であった。特許文献１においても、スキャンライン毎に制御コマンドを伝送することができるものの、データ転送中の任意のタイミングでコマンドによる処理を実行させることはできない。
【０００６】
本発明は、上記の課題に鑑みてなされたものであり、データ転送中の任意のデータ間でコマンドに応じた処理を実行可能な画像処理装置及びその方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するための本発明の一態様によるデータ処理方法は、
それぞれが処理部を有する複数の処理ブロックが共通バスによって直列に接続された画像処理装置における当該複数の処理ブロックのそれぞれにより実行される画像処理方法であって、
前記共通バスを介して当該処理ブロックに入力されたデータを用いた画像処理を、当該処理ブロックの処理部により行なうデータ処理工程と、
前記共通バスを介して当該処理ブロックに入力されたコマンドに応じた処理を、当該処理ブロックの処理部に対して行なうコマンド処理工程と、
前記共通バスを介して第１の処理ブロックに入力される第１のコマンドについて、当該第１のコマンドの前に前記第１の処理ブロックへ入力されたデータに基づくデータ処理によるデータ出力が完了するまで、前記第１の処理ブロックから当該第１のコマンドを出力することを遅延させる遅延工程とを有する。
【発明の効果】
【０００８】
本発明によれば、データ転送中の任意のデータ間でコマンドに応じた処理を実行することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】実施形態における、画像処理装置の構成を示すブロック図である。
【図２】実施形態の入力コマンドのフォーマットを示す図である。
【図３】実施形態の入力データのフォーマットを示す図である。
【図４】実施形態の出力コマンドのフォーマットを示す図である。
【図５】実施形態の出力データのフォーマットを示す図である。
【図６】実施形態のレジスタリード及びライト動作のタイミングを示す図である。
【図７】実施形態の第１の画像処理動作のタイミングを示す図である。
【図８】実施形態の第２画像処理動作のタイミングを示す図である。
【図９】実施形態の第２画像処理動作の詳細なタイミングを示す図である。
【図１０】実施形態の第３画像処理動作のタイミングを示す図である。
【図１１】実施形態の第３画像処理動作の詳細なタイミングを示す図である。
【図１２】実施形態の画像処理ブロックの構成を示す図である。
【図１３】実施形態の画像処理ブロックのレジスタリード及びライト動作のタイミングを示す図である。
【図１４】実施形態の画像処理ブロックの画像処理動作のタイミングを示す図である。
【発明を実施するための形態】
【００１０】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【００１１】
図１に、データ処理装置としての本実施形態による画像処理装置１０の構成図を示す。１００は送信部であり、コマンドワード及びデータワードを多重化して送信する。１０１〜１０３は画像処理ブロックであり、図示の如く直列に接続され、それぞれが所定の画像処理を行なう。以下、処理ブロック１０１〜１０３と記載する。１０４は受信部であり、コマンドワード及びデータワードを受信して、終了信号１０５を送信部１００へ送信する。１１はＣＰＵであり、画像処理装置１０を利用して、例えば印刷装置等の画像処理装置１０が組み込まれる装置を制御する。１２はＤＲＡＭであり、処理対象となる画像データを格納する。１３はＤＭＡＣであり、ＤＲＡＭ１２から画像処理装置１０への画像データの直接的な転送を制御する。
【００１２】
次に図２〜図５を用いてコマンドワード及びデータワードのフォーマットを説明する。なお、コマンドワード及びデータワードは所定のビット長を有しており、本実施形態では６４ビットで構成されているものとする。以下、コマンドワードをコマンド、データワードをデータと記載する。
【００１３】
図２は入力コマンドのフォーマットの一例を示す。入力コマンドフォーマット２００において、ＭＳＢを６３ビット目、ＬＳＢを０ビット目とする。６３ビット目はコマンド及びデータを識別する為のmodeフラグ２０１（属性データ）であり、０の場合はデータを、１の場合はコマンドを示す。５６〜６０ビット目は入力コマンドが適用される処理ブロック番号を示す処理ブロックＩＤ２０２である。なお、後述するように各処理ブロックにはそれぞれを特定するための識別データとしての処理ブロックＩＤが割り当てられており、処理ブロックＩＤ２０２と一致する処理ブロックのみにおいて、当該コマンドが実行される。５５ビット目はレジスタのリードライトを指定するためのＲＷフラグ２０３である。３２〜４７ビット目はレジスタのアドレス２０４である。０〜３１ビット目はレジスタデータ２０５のためのデータ領域である。ここで、レジスタデータ２０５の値は、リードコマンド時（ＲＷフラグ２０３が０の時）は“０”であり、ライトコマンド時（ＲＷフラグ２０３が１の時）はライトされるレジスタ値である。４８〜５４ビット目及び６１、６２ビット目は使用不可のリザーブド領域２０６である。以上のようにして、コマンドは、アクセスするレジスタへのデータ書き込みあるいはレジスタからのデータ読み出しを指示する。
【００１４】
また、図３は入力データのフォーマットの一例を示す。入力データフォーマット３００において、ＭＳＢを６３ビット目、ＬＳＢを０ビット目とする。６３ビット目はコマンド及びデータを識別する為のmodeフラグ２０１（属性データ）であり、０の場合はデータを、１の場合はコマンドを示す。５６ビット目は所定のデータ単位で（ページ、ブロック、バンド等の所定の範囲のデータを単位として）画像処理される最初のデータを示すstartフラグである。５５ビット目は画像処理される最後のデータを示すendフラグ３０３である。０〜４７ビット目は画像処理されるデータ３０４である。４８〜５４ビット目及び５７〜６２ビット目は、使用不可のリザーブド領域３０５である。
【００１５】
図４は出力コマンドのフォーマットの一例を示す。出力コマンドフォーマット４００において、ＭＳＢを６３ビット目、ＬＳＢを０ビット目とする。６３ビット目はコマンド及びデータを識別する為のmodeフラグ４０１（属性データ）であり、０の場合はデータを、１の場合はコマンドを示す。５６〜６０ビットはコマンドが適用された処理ブロック番号を示す処理ブロックＩＤ４０２である。５５ビット目は、レジスタのリードライトを指定するためのＲＷフラグ２０３であるＲＷフラグ４０３である。３２〜４７ビット目はレジスタのアドレス４０４である。０〜３１ビット目はレジスタデータ４０５のためのデータ領域である。ここで、レジスタデータ４０５の値はリードコマンド時（ＲＷフラグ４０３が０の場合）はリードされたレジスタ値であり、ライトコマンド時（ＲＷフラグ４０３が１の場合）は入力コマンドフォーマット２００のレジスタデータ２０５の値である。４８〜５４ビット目及び６１、６２ビット目はリザーブド領域４０６である。
【００１６】
また、図５は出力データのフォーマットの一例を示す。出力データフォーマット５００において、ＭＳＢを６３ビット目、ＬＳＢを０ビット目とする。６３ビット目は、コマンド及びデータを識別する為のmodeフラグ５０１（属性データ）であり、０の場合はデータを、１の場合はコマンドを示す。５６ビット目は所定のデータ単位（ページ、ブロック、バンド等）で画像処理された最初のデータであることを示すstartフラグ５０２である。５５ビット目は画像処理された最後のデータであることを示すendフラグ５０３である。０〜４７ビット目は画像処理されたデータ５０４である。４８〜５４ビット目及び５７〜６２ビット目はリザーブド領域５０５である。
【００１７】
尚、処理ブロック１０１〜１０３は、後述するように、入力コマンド／入力データを出力コマンド／出力データに変換する。入力コマンド及び入力データはそれぞれ入力コマンドフォーマット２００、入力データフォーマット３００を有する。また、出力コマンド及び出力データはそれぞれ出力コマンドフォーマット４００、出力データフォーマット５００を有する。通常、処理ブロックがmodeフラグ変更を行なうことは無い為、変換前後においてmodeフラグ２０１とmodeフラグ４０１の値は等しくかつ、modeフラグ３０１とmodeフラグ５０１の値は等しい値である。同様に処理ブロックＩＤ２０２と処理ブロックＩＤ４０２は等しく、ＲＷフラグ２０３とＲＷフラグ４０３は等しく、アドレス２０４とアドレス４０４は等しい。
【００１８】
次に、図６のタイミング図を用いて、図１に示した画像処理装置１０のレジスタのリードライト動作を説明する。図６において、６００はクロックを、６０１は送信部１００の出力を、６０２〜６０４は処理ブロック１０１〜１０３の出力をそれぞれ示す。ここで、各処理ブロックのコマンドに対するレイテンシは２クロックサイクルとする。また、処理ブロック１０１〜１０３に対してそれぞれ処理ブロックＩＤとして０〜２の値が割り振られているものとする。
【００１９】
まず、ＣＰＵ１１から送信部１００に対して、レジスタアドレス、ライトデータ、処理ブロック番号ＩＤが設定される。送信部１００は図２に示した入力コマンドフォーマット２００に従って、リードレジスタコマンド又はライトレジスタコマンド（これらを入力コマンドという）を生成する。図６の６０５〜６０７はそれぞれ処理ブロック１０１〜１０３に対するライトレジスタコマンドであり、処理ブロックＩＤ２０２が０〜２に設定されている。また、６０８、６１０、６１２はそれぞれ処理ブロック１０１〜１０３に対するリードレジスタコマンドであり、処理ブロックＩＤ２０２が０〜２に設定されている。
【００２０】
ライトレジスタコマンド６０５〜６０７に従って、処理ブロック１０１〜１０３はそれぞれレジスタ値をライトする。その後、図６に示すように、処理ブロック１０１〜１０３は、ライトレジスタコマンド６０５〜６０７から、図４で説明した出力コマンドフォーマット４００に従って入力コマンドと同等な出力コマンドを生成し、後段の処理ブロックへ出力する。受信部１０４は、各処理ブロックからの出力コマンドを受信する。その後、ＣＰＵ１１が受信部１０４で受信されたライトレジスタコマンドの確認を行なうことにより、レジスタのライトが正常に行なわれたこと確認をする。
【００２１】
また、処理ブロック１０１は、リードレジスタコマンド６０８に従ってレジスタリード動作を行なった後、図４で説明した出力コマンドフォーマット４００に従った出力コマンド６０９を生成し、後段の処理ブロック１０２に出力する。出力コマンド６０９は、リードレジスタコマンド６０８のレジスタデータのデータ領域に、レジスタコマンド６０８が指定するアドレスから読み出したレジスタデータをセットしたものである。処理ブロック１０２及び処理ブロック１０３は出力コマンド６０９をそのまま後段へ出力する。こうして、出力コマンド６０９は受信部１０４にて受信される。
【００２２】
リードレジスタコマンド６１０は処理ブロック１０１ではそのまま後段の処理ブロック１０２に出力される。処理ブロック１０２は、リードレジスタコマンド６１０に従ってレジスタリード動作を行なった後、図４で説明した出力コマンドフォーマット４００に従った出力コマンド６１１を生成し、後段の処理ブロック１０３に出力する。出力コマンド６１１は、リードレジスタコマンド６０８のレジスタデータのデータ領域に、レジスタコマンド６１０が指定するアドレスから読み出したレジスタデータをセットしたものである。処理ブロック１０３は出力コマンド６１１をそのまま後段へ出力し、受信部１０４にて受信する。
【００２３】
さらに、リードレジスタコマンド６１２は処理ブロック１０１及び１０２ではそのまま後段の処理ブロックに出力される。処理ブロック１０３はリードレジスタコマンド６１２に従ってレジスタリード動作を行なった後、図４で説明した出力コマンドフォーマット４００に従った出力コマンド６１３を生成し、後段へ出力する。出力コマンド６１３は、リードレジスタコマンド６１２のレジスタデータのデータ領域に、レジスタコマンド６１２が指定するアドレスから読み出したレジスタデータをセットしたものである。出力された出力コマンド６１３は受信部１０４にて受信される。
【００２４】
その後、ＣＰＵ１１が受信部１０４で受信されたリードレジスタコマンドから、レジスタ値を取得する。以上のように、直列に接続された複数の処理ブロックにおいて、前段の処理ブロックの出力が、後段の処理ブロックの多重化データとして入力され、最終的な処理結果が受信部１０４に受信されることになる。
【００２５】
次に、図７のタイミング図を用いて、図１に示した画像処理装置１０が所定のデータ単位（ページ、ブロック、バンド等）の画像処理中にレジスタのリード又はライトを行なわない場合の画像処理動作を説明する。図７において、７００は送信部１００の出力を、７０１〜７０３は処理ブロック１０１〜１０３の出力をそれぞれ示す。ここで、各処理ブロックのコマンドに対するレイテンシは、画像処理中（最初のデータであることを示すstartフラグ３０２のセットされたデータを送信してから、最後のデータであることを示すendフラグ３０３のセットされたデータを送信するまでの間）にコマンドが送信されていないので、図６で説明したのと同様に２クロックサイクルとする。また、各処理ブロックのデータに対するレイテンシは４クロックサイクルとする。
【００２６】
まずＣＰＵ１１から送信部１００に対してレジスタアドレス、ライトデータ、処理ブロック番号ＩＤが設定される。７０４〜７０６はそれぞれ、処理ブロック１０１〜１０３に対する、単数又は複数のライトレジスタコマンドである。図６を用いて説明したのと同様な手順で、処理ブロック１０１〜１０３はこれらライトレジストコマンドに従ってレジスタライト動作を行ない、これにより処理ブロック内の画像処理パラメータの設定が行なわれる。次に、ＤＲＡＭ１２等の記憶媒体から、ＤＭＡＣ１３を介して上記データ単位分の画像データが送信部１００に転送される。送信部１００では、図３に示した入力データフォーマット３００に従ってデータ７０７を作成し、処理ブロック１０１に対して出力する。処理ブロック１０１は、入力されたデータ７０７に対して画像処理を実施した後、得られたデータ７０８を処理ブロック１０２に対して出力する。同様に、処理ブロック１０２は入力されたデータ７０８に対して画像処理を実施した後、得られたデータ７０９を処理ブロック１０３に対して出力する。更に、処理ブロック１０３は入力されたデータ７０９に対して画像処理を実施した後、得られたデータ７１０を受信部１０４へ出力する。受信部１０４は、ＤＭＡＣ１３を介してＤＲＡＭ１２へ画像処理後のデータを転送する。
【００２７】
また、７１１、７１３、７１５はそれぞれ、処理ブロック１０１〜１０３に対する、画像処理後の内部状態を観測する為の、単数又は複数のリードレジスタコマンドである。処理ブロック１０１〜１０３は、これらリードレジスタコマンド７１１，７１３，７１５に従って、図６を用いて説明したのと同様な手順でレジスタリード動作を行なう。処理ブロック１０１〜１０３に対するレジスタリードの結果はそれぞれリードレジスタコマンド７１２，７１４，７１６として受信部１０４へ送られ、受信部１０４によって受信される。
【００２８】
その後、ＣＰＵ１１は、受信部１０４で受信されたリードレジスタコマンドから、レジスタ値を取得する。
【００２９】
次に、図８のタイミング図を用いて、図１に示した画像処理装置１０が所定のデータ単位（ページ、ブロック、バンド等）の画像処理中にレジスタのリードを行なう場合の画像処理動作を説明する。８００は送信部１００の出力を、８０１〜８０３は処理ブロック１０１〜１０３の出力をそれぞれ示す。ここで、各処理ブロックのデータに対するレイテンシは４クロックサイクルとする。また、各処理ブロックのコマンドに対するレイテンシは、画像処理中（最初のデータであることを示すstartフラグ３０２のセットされたデータを送信してから、最後のデータであることを示すendフラグ３０３のセットされたデータを送信するまでの間）に送信される場合と画像処理中以外に送信される場合で異なる。画像処理中以外に送信されるコマンド（８０４〜８０６及び８１６〜８２１）に対するレイテンシは、図６で説明したのと同様に２クロックサイクルである。一方、画像処理中に送信されるコマンド（８１１及び８２２）のレイテンシは、画像処理対象のデータと同様に４クロックサイクルとする。
【００３０】
まずＣＰＵ１１から送信部１００に対してレジスタアドレス、ライトデータ、処理ブロック番号ＩＤが設定される。８０４〜８０６はそれぞれ、処理ブロック１０１〜１０３に対する、単数又は複数のライトレジスタコマンドである。図６を用いて説明したのと同様な手順で、処理ブロック１０１〜１０３はこれらレジスタコマンドに従ってレジスタライト動作を行ない、処理ブロック１０１〜１０３の各々に対する画像処理パラメータの設定が行なわれる。
【００３１】
次に、ＤＲＡＭ１２等の記憶手段からＤＭＡＣ１３を介して上記データ単位分の画像データが送信部１００に対して転送される。送信部１００では、図３に示した入力データフォーマット３００に従ってデータを作成し、データ８０７及びデータ８１２として処理ブロック１０１に出力する。なお、送信部１００は、データ８０７とデータ８１２の間に処理ブロック１０３に対する、画像処理中の内部状態を観測する為のリードレジスタコマンド８１１を挿入して、処理ブロック１０１に対して出力を行う。処理ブロック１０１は、データ８０７及び８１２に画像処理を実施し、得られたデータ８０８及び８１３を処理ブロック１０２に対して出力する。このとき、リードレジスタコマンド８１１は、データ８０８とデータ８１３の間に挟まれて、そのまま処理ブロック１０２に出力される。
【００３２】
同様に、処理ブロック１０２は入力されたデータ８０８，８１３に画像処理を実施し、得られたデータ８０９及び８１４を処理ブロック１０３に対して出力する。また、リードレジスタコマンド８１１は、データ８０９及び８１４に挟まれて、そのまま処理ブロック１０３に対して出力される。処理ブロック１０３は、入力されたデータ８０９，８１４に画像処理を実施し、得られたデータ８１０及び８１５を受信部１０４に出力する。また、処理ブロック１０３は、リードレジスタコマンド８１１を実行し、レジスタリードの結果である出力コマンド８２２を受信部１０４へ出力する。
【００３３】
その後、受信部１０４はＤＭＡＣ１３を介してＤＲＡＭ１２へ画像処理後のデータを転送する。ＣＰＵ１１はレジスタリード結果８１５からレジスタ値を取得することにより、処理ブロック１０３における画像処理中の内部状態を観測することができる。
【００３４】
また、８１６、８１８、８２０はそれぞれ、処理ブロック１０１〜１０３に対する、画像処理後の内部状態を観測する為の、単数又は複数のリードレジスタコマンドである。これらのリードレジスタコマンド８１６，８１８，８２０は、図６を用いて説明したのと同様な手順で処理ブロック１０１〜１０７に対してレジスタリード動作を行なう。そして、処理ブロック１０１〜１０３に対するレジスタリードの結果が、出力コマンド８１７，８１９，８２１として、受信部１０４へ送られ、受信部１０４により受信される。ＣＰＵ１１は、受信部１０４で受信された出力コマンド８１７，８１９，８２１からレジスタ値を取得することにより、処理ブロック１０１〜１０３における画像処理後の内部状態を観測することができる。
【００３５】
次に、図９に図８をより詳細に示した、リードレジスタコマンド８１１の前後のデータ転送のタイミング図を示す。９００はクロックを、９０１は送信部１００の出力を、９０２〜９０４は処理ブロック１０１〜１０３の出力をそれぞれ示す。また、８１１及び８１２は図８に示したリードレジスタコマンド及びこれに対応した出力コマンドである。図８でも説明したように、リードレジスタコマンド８１１は処理ブロック１０３に対してレジスタリードを行なうコマンドである。通常、処理ブロック１０３のコマンドに対するレイテンシは２クロックであるが、リードレジスタコマンド８１１は入力データDn''までが処理された時点の処理ブロック１０３の内部状態のレジスタ値をリードする為のコマンドである。その為、リードレジスタコマンド８１１のレイテンシはデータと同じ４クロックとなる。そして、その出力（出力コマンド８２２））は、処理後のデータDn'''及びDn+１'''との前後関係を保ちながら、・・・Dn'''，RC_ID2'，Dn+１'''・・・の順で出力される。
【００３６】
次に、図１０のタイミング図を用いて、図１に示した画像処理装置１０が所定のデータ単位（ページ、ブロック、バンド等）の画像処理中にレジスタのライトを行なう場合の画像処理動作を説明する。ここで、図８と動作及びタイミングが同等なものに関しては同じ参照番号を付し、詳細な説明を省略する。また、図８と同様に、各処理ブロックのデータに対するレイテンシは４クロックサイクルとする。さらに、各処理ブロックのコマンドに対するレイテンシは、画像処理中（最初のデータであることを示すstartフラグ３０２のセットされたデータを送信してから、最後のデータであることを示すendフラグ３０３のセットされたデータを送信するまでの間）とそれ以外に送信される場合とで異なる。すなわち、画像処理中以外に送信されるライトレジスタコマンド（８０４〜８０６及び８１６〜８２１）は、図６で説明したのと同様に２クロックサイクルである。一方、画像処理中に送信されるライトレジスタコマンド（１０００）のレイテンシは、データと同様に４クロックサイクルとする。
【００３７】
図８との違いは、リードレジスタコマンド８１１が処理ブロック１０３に対するライトレジスタコマンド１０００に置き換わっている点である。このように、上記のデータ単位の画像処理動作中に、処理ブロック１０３のレジスタ設定値の変更が行なわれる。また、ライトレジスタコマンド１０００は、図６で説明したように、処理ブロック１０３からそのまま受信部１０４へ送られる。
【００３８】
次に、図１１に図１０をより詳細に示した、ライトレジスタコマンド１０００の前後のデータ転送のタイミング図を示す。図１１において、図９と動作及びタイミングが同等なものに関しては同一の参照番号付し、詳細な説明を省略する。図９との違いは、リードレジスタコマンド８１１が図１０に示したライトレジスタコマンド１０００に置き換わっている点である。
【００３９】
図１０でも説明したように、ライトレジスタコマンド１０００は処理ブロック１０３にレジスタライトを行なわせる。通常、処理ブロック１０３のコマンドに対するレイテンシは２クロックである。しかしながら、ライトレジスタコマンド１０００は入力データDn+１''以降の画像処理に関して、処理ブロック１０３の設定を変更する為のコマンドである為、そのレイテンシはデータと同じ４クロックとなる。そして、その出力は、処理後のデータDn'''及びDn+１'''との前後関係を保ちながら、・・・Dn'''，WC_ID2，Dn+１'''・・・の順で出力される。ただし、レジスタの更新は、データDn+１''が処理される前に行なわれる。
【００４０】
次に、上述した処理ブロック１０１〜１０３について詳細に説明する。図１２は、処理ブロック１０１〜１０３の内部構成を示すブロック図である。１２００はコマンド及びデータの入力端子である。１２０１はデコーダであり、入力端子１２００より入力されたコマンド及びデータをデコードする。１２０２はレジスタ部であり、デコーダ１２０１からのコマンドにより、レジスタデータの読み出し、及び書き込みを行なう。ここで、書き込み動作により、処理パラメータを格納するとともに、信号１２１１を介して処理部１２０３に与える。また、読み出し動作により、格納されている処理パラメータの読み出し、あるいは、処理部１２０３の内部ステータスを、信号１２１２を介して受け取って、その値の読み出しを行なう。１２１１は上記処理パラメータ値を処理部１２０３に伝える為の信号であり、１２１２は処理部１２０３の内部ステータスをレジスタ部１２０２に伝える為の信号である。
【００４１】
１２０３は処理部であり、デコーダ１２０１からのデータ（画像データ）に対して予め定められた処理（画像処理）を施す。デコーダ１２０１は、modeフラグ２０１，３０１，４０１，５０１に基づいて、転送データ中のデータとコマンドを処理部１２０３とレジスタ部１２０２に振り分ける分離機能を有する。１２０４はバッファであり、コマンドとデータの前後関係を保証する。１２０５はデコーダ１２０１からバッファ１２０４へ出力されるコマンド保持信号である。１２０６は入力コマンドが自分のＩＤと一致しなかった場合、コマンドをそのまま出力する系に挿入される遅延調整用のフリップフロップである。１２０７はデコーダ１２０１でデコードされたmodeフラグ２０１及び処理ブロックＩＤ２０２の遅延調整用のフリップフロップである。１２０８はエンコーダであり、出力コマンド及びデータを生成する。１２０９はエンコーダ１２０８が出力を選択する為のセレクト信号である。１２１０はコマンド及びデータを出力する為の出力端子である。
【００４２】
図１２において、デコーダ１２０１は、多重化されたコマンド及びデータを分離する。レジスタ部１２０２は、画像処理パラメータの値を格納し、処理部１２０３が、画像処理を行なう。バッファ１２０４は、時系列的な前後関係を保証し、エンコーダ１２０８は、バッファ１２０４の出力と処理部１２０３の出力とデコーダ１２０１の出力を選択する。
【００４３】
次に図１３を用いて、図１２に示した処理ブロックによるレジスタリード及びライト動作を説明する。ここで、図１２の処理ブロックＩＤには“２”が設定されており、画像処理中（最初のデータであることを示すstartフラグ３０２のセットされたデータを送信してから、最後のデータであることを示すendフラグ３０３のセットされたデータを送信するまでの間）でない場合での動作を説明する。１３００はクロック、１３０１はコマンド及びデータの入力端子１２００における入力データのタイミングを示す。１３０４はレジスタ部１２０２の入力データのタイミング、１３０５はレジスタ部１２０２の出力データのタイミングを表す。１３０６はコマンド保持信号１２０５の内容、１３０７はバッファ１２０４の出力データのタイミング、１３０８はフリップフロップ１２０６の出力データを示す。１３０９はセレクト信号１２０９の内容、１３１０はエンコーダ１２０８の出力データ（すなわち出力端子１２１０における出力データ）のタイミングを示す。なお、エンコーダ１２０８は、セレクト信号１２０９が“０”の時はバッファ１２０４の出力を選択し、“２”の時はフリップフロップ１２０６の出力を選択して、出力コマンドを生成する。
【００４４】
１３０１に示すように、
・サイクルＣ０にて処理ブロックＩＤ２０２＝２、アドレス２０４＝０のライトレジスタコマンドが、
・サイクルＣ１にて処理ブロックＩＤ２０２＝２、アドレス２０４＝１のライトレジスタコマンドが、
・サイクルＣ２にて処理ブロックＩＤ２０２＝２、アドレス２０４＝０のリードコマンドが、
・サイクルＣ３にて処理ブロックＩＤ２０２＝２、アドレス２０４＝１のリードコマンドが、
・サイクルＣ４にて処理ブロックＩＤ２０２＝０のライトコマンドが、
・サイクルＣ５にて処理ブロックＩＤ２０２＝１のリードコマンドが入力されたとする。
【００４５】
これら入力されたコマンドはデコーダ１２０１にてデコードされる。そして、処理ブロックＩＤ２０２が“２”であるコマンドに関しては、ＲＷフラグ２０３、アドレス２０４、レジスタデータ２０５の内容がレジスタ部１２０２へ出力される。また、画像処理中でなく、且つＩＤが“２”以外である場合は、当該コマンドはそのままフリップフロップ１２０６へ出力される。そして、フリップフロップ１２０６にて１クロック分遅延させられ、エンコーダ１２０８へ出力される。さらに、modeフラグ２０１及び処理ブロックＩＤ２０２がフリップフロップ１２０７へ入力され、そこで１クロック分遅延させられ、modeフラグ４０１及び処理ブロックＩＤ４０２としてバッファ１２０４へ出力される。また、サイクルＣ０〜Ｃ５においてはコマンドのみが入力されている。従って、デコーダ１２０１は、信号内容１３０９に示すように、処理ブロックのコマンドに対するレイテンシ（２クロックサイクル）分にあわせて、セレクト信号１２０９を出力する。
【００４６】
つまり、１３０４に示すように、
・サイクルＣ０にてＲＷフラグ２０３＝１、アドレス２０４＝０及びレジスタデータ２０５がレジスタ部１２０２へ出力され、
・サイクルＣ１にてＲＷフラグ２０３＝１、アドレス２０４＝１及びレジスタデータ２０５がレジスタ部１２０２へ出力され、
・サイクルＣ２にてＲＷフラグ２０３＝０、アドレス２０４＝０及びレジスタデータ２０５がレジスタ部１２０２へ出力され、
・サイクルＣ３にてＲＷフラグ２０３＝０、アドレス２０４＝１及びレジスタデータ２０５がレジスタ部１２０２へ出力される。
【００４７】
また、１３０８に示すように、
・処理ブロックＩＤ２０２＝０のライトコマンドは、サイクルＣ５にてエンコーダ１２０８へ出力され、
・処理ブロックＩＤ２０２＝１のリードコマンドは、サイクルＣ６にてエンコーダ１２０８へ出力される。
【００４８】
また、エンコーダ１２０８は、セレクト信号１２０９が“０”の時はバッファ１２０４の出力を選択し、“１”の時は処理部１２０３の出力を選択し、“２”の時はフリップフロップ１２０６の出力を選択する。なお、セレクト信号は、
・当該処理ブロックで実行すべきコマンドに対して“０”が、
・当該処理ブロックが画像処理すべきデータに対して“１”が、
・当該処理ブロックで実行されないコマンドに対して“２”が、
セットされる。そのため、セレクト信号１２０９は、信号内容１３０９に示すように、サイクルＣ１〜Ｃ４の期間は“０”が出力され、サイクルＣ５〜Ｃ６の期間は“２”が出力される。
【００４９】
レジスタ部１２０２においては、ＲＷフラグ２０３の値が“０”の時は所望のアドレスのレジスタリード動作を行ない、同時にそのときのＲＷフラグ４０３＝０、アドレス４０４及びレジスタデータ４０５をバッファ１２０４へ出力する。このとき、レジスタリード動作は、レジスタコマンドの直前に入力されたデータの処理が終了してから行なわれる。またＲＷフラグ２０３の値が“１”の時はレジスタライト動作を行ない、そのときのＲＷフラグ４０３、アドレス４０４と所望のアドレスのレジスタ値をバッファ１２０４へ出力する。
【００５０】
この時、ライトされたレジスタデータは画像処理パラメータとして処理部１２０３へ出力される。また、レジスタリードデータには、処理部１２０３から入力された、内部状態等を反映させる。
【００５１】
つまり、１３０５に示すように、
・サイクルＣ１にてアドレス２０４＝０へのライト動作を行なうと同時にＲＷフラグ４０３＝１、アドレス４０４＝０及びレジスタデータ４０５をバッファ１２０４へ出力し、
・サイクルＣ２にてアドレス２０４＝１へのライト動作を行なうと同時にＲＷフラグ４０３＝１、アドレス４０４＝１及びレジスタデータ４０５をバッファ１２０４へ出力し、
・サイクルＣ３にてアドレス２０４＝０へのリード動作を行なうと同時にＲＷフラグ４０３＝０、アドレス４０４＝０及びレジスタデータ４０５をバッファ１２０４へ出力し、
・サイクルＣ４にてアドレス２０４＝１へのリード動作を行なうと同時にＲＷフラグ４０３＝０、アドレス４０４＝１及びレジスタデータ４０５をバッファ１２０４へ出力する。
【００５２】
バッファ１２０４においては、コマンド保持信号１２０５が“１”の時、入力されたデータを保持する。“１”の値になるのは、デコーダ１２０１にて、所定のデータ単位（ページ、ブロック、バンド等）の画像処理中に、即ちデータ転送中に、レジスタリード動作などのコマンドの転送が行なわれた場合である。
【００５３】
図１３の例では、画像処理中にコマンドの転送が行なわれていない為、コマンド保持信号１２０５が“０”値を有している。そして、入力されたmodeフラグ４０１、処理ブロックＩＤ４０２、ＲＷフラグ４０３、アドレス４０４及びレジスタデータ４０５は、そのままエンコーダ１２０８へ出力される。そして、エンコーダ１２０８は、図４に示した出力コマンドフォーマット４００に従った出力コマンドの生成をセレクト信号１２０９に従って行ない、１クロックサイクル後に出力端子１２１０より出力する。
【００５４】
つまり、サイクルＣ１〜Ｃ４の期間はセレクト信号１２０９の値が“０”なので、エンコーダ１２０８はバッファ１２０４の出力を選択する。そして、エンコーダ１２０８は、１３１０に示すように、
・１クロックサイクル後のサイクルＣ２にて処理ブロックＩＤ４０２＝２、アドレス４０４＝０のライトコマンドを、
・サイクルＣ３にて処理ブロックＩＤ４０２＝２、アドレス４０４＝１のライトコマンドを、
・サイクルＣ４にて処理ブロックＩＤ４０２＝２、アドレス４０４＝０のリードコマンドを、
・サイクルＣ５にて処理ブロックＩＤ４０２＝２、アドレス４０４＝１のリードコマンドを、出力端子１２１０へ出力する。
【００５５】
また、セレクト信号１２０９はサイクルＣ５〜Ｃ６の期間は値が“２”なので、エンコーダ１２０８はフリップフロップ１２０６の出力を選択する。そして、エンコーダ１２０８は、１３１０に示すように、
・１クロックサイクル後のサイクルＣ６にて処理ブロックＩＤ４０２＝０のライトコマンドWC_ID0を、
・サイクルＣ７にて処理ブロックＩＤ４０２＝１のリードコマンドRC_ID1を出力端子１２１０へ出力する。
【００５６】
次に図１４を用いて、図１２に示した処理ブロックが所定のデータ単位の画像処理中（最初のデータであることを示すstartフラグ３０２のセットされたデータを送信してから、最後のデータであることを示すendフラグ３０３のセットされたデータを送信するまでの間）にレジスタのリードを行なう場合の画像処理動作を説明する。なお、所定のデータ単位とは、ページ、ブロック、バンド等の単位である。ここで、図１２の処理ブロックのＩＤは図１３と同様に“２”が設定されており、処理ブロックのデータに対するレイテンシは４クロックサイクルとする。また、各処理ブロックのコマンドに対するレイテンシは、そのコマンドが画像処理中に送信される場合は、データと同様に４クロックサイクルとする。
【００５７】
図１４において、１４００はクロック、１４０１はコマンド及びデータの入力端子１２００におけるタイミングを示す。１４０２は処理部１２０３の入力データのタイミング、１４０３は処理部１２０３の出力データのタイミングを示す。１４０４はレジスタ部１２０２の入力データのタイミング、１４０５はレジスタ部１２０２の出力データのタイミングを示す。１４０６はコマンド保持信号１２０５の状態、１４０９はセレクト信号１２０９の状態を示す。１４０７はバッファ１２０４の出力データのタイミング、１４１０はコマンド及びデータの出力端子１２１０における出力データのタイミングを示す。
【００５８】
１４０１に示すように、サイクルＣ０にてデータDn-1が、サイクルＣ１にてデータDnが、サイクルＣ２にて処理ブロックＩＤ２０２＝２のリードコマンドが、サイクルＣ３〜Ｃ７にてデータDn+1〜Dn+5が入力される場合を説明する。これら入力されたデータ及びコマンドのうち、データはデコーダ１２０１にてデコードされ、Startフラグ３０２、endフラグ３０３、データ３０４が処理部１２０３へ出力される（１４０２）。また、画像処理中においては、処理ブロックＩＤ２０２の値に関わらず、コマンドのＲＷフラグ２０３、アドレス２０４、レジスタデータ２０５がレジスタ部１２０２へ出力される（１４０４）。これは、たとえコマンドの処理ブロックＩＤ２０２が“２”以外の値であっても、データとコマンドの前後関係を保ちながら、後段の処理ブロックへデータ及びコマンドを伝播させる為である。
【００５９】
さらに、modeフラグ４０１及び処理ブロックＩＤ４０２がフリップフロップ１２０７へ出力され、フリップフロップ１２０７にて１クロック分遅延させられ、バッファ１２０４へ出力される。またデコーダ１２０１にはサイクルＣ２の期間以外はデータが入力されている。デコーダ１２０１は、データが入力されている期間中は画像処理中であると判断してセレクト信号１２０９を“１”にセットする。また、デコーダ１２０１は、自身の処理ブロックＩＤを持つコマンドを入力した場合には、セレクト信号１２０９を“０”にセットする。但し、処理ブロックのデータのレイテンシ、及び画像処理中に受信したコマンドに対するレイテンシが４クロックであり、セレクト信号１２０９はこれにあわせて出力されている（１４０９）。
【００６０】
つまり、１４０２に示すように、サイクルＣ０，Ｃ１及びＣ３〜Ｃ７にてstartフラグ３０２、endフラグ３０３及びデータ３０４が処理部１２０３へ入力される。そして、１４０４に示すように、サイクルＣ２にてアドレス２０４及びレジスタデータ２０５がレジスタ部１２０２へ出力される。また、セレクト信号１２０９は、１４０９に示すようにサイクルＣ０〜Ｃ４、Ｃ６、Ｃ７の期間は“１”となり、サイクルＣ５の期間は“０”となる。
【００６１】
処理部１２０３においては入力されたデータに対して４クロックサイクルのレイテンシで画像処理をおこない、出力データのstartフラグ５０２、endフラグ５０３及びデータ５０４をエンコーダ１２０８へ出力する（１４０３）。
【００６２】
また、レジスタ部１２０２においては、サイクルＣ２で入力端子１２００から入力されたレジスタリードコマンド（RC_ID2）に応じて、図１３で説明したレジスタリード動作を行なう。つまり、１４０５に示すようにサイクルＣ３にてアドレス２０４へのリード動作を行なうと同時にＲＷフラグ４０３＝０、アドレス４０４及び読み出したレジスタデータ４０５をバッファ１２０４へ出力する。
【００６３】
図１３で説明したようにデコーダ１２０１にて所定のデータ単位（ページ、ブロック、バンド等）の画像処理中にレジスタリードコマンドを検知した為、サイクルＣ３及びＣ４においてコマンド保持信号１２０５が“１”となる。よって、バッファ１２０４は、サイクルＣ３で入力されたmodeフラグ４０１、処理ブロックＩＤ４０２、ＲＷフラグ４０３、アドレス４０４、レジスタデータ４０５をそのままエンコーダ１２０８へ出力し、サイクルＣ４及びＣ５でそれらの値を保持する。この様子は、１４０７によって示されている。
【００６４】
エンコーダ１２０８は、１４０９に示されるセレクト信号１２０９に従い、図４に示した出力コマンドフォーマット４００或いは出力データフォーマット５００を有する出力コマンド／データを生成し、出力端子１２１０より出力する。つまり、エンコーダ１２０８は、サイクルＣ０〜Ｃ４、Ｃ６、Ｃ７の期間はセレクト信号１２０９の値が“１”なので、処理部１２０３の出力を選択し、１クロックサイクル後のサイクルに出力端子１２１０へデータを出力する。また、サイクルＣ５ではセレクト信号１２０９の値が“０”である為、エンコーダ１２０８はバッファ１２０４を選択し、１クロックサイクル後のサイクルに処理ブロックＩＤ４０２＝２、アドレス４０４＝０のリード出力コマンドを出力端子１２１０へ出力する。
【００６５】
尚、図１４の例では、画像処理中にレジスタのリード動作を行なう場合を示したが、レジスタのライト動作を行なう場合でも、レジスタのリード動作と同等な動作となる。但し、レジスタのライト動作では、レジスタの更新のタイミングが、当該レジスタライトコマンドの次のデータに対する処理の開始までに行なわれる。
【００６６】
また、レイテンシの調整も画像処理部のレイテンシを４サイクル固定として説明したが、これに限られるものではない。例えば画像処理部のレイテンシが可変の場合においても、画像処理部にコマンド挿入個所を示す信号を追加し、上記出力の切替えを該コマンド挿入個所を示す信号によって切替えることにより、コマンドとデータの順番を維持して出力できる。
【００６７】
以上説明したように、本実施形態によれば、コマンド及びデータを多重化して、共通のデータバス上を転送し、処理ブロックでは入力されたコマンドとデータの順序を保ちながら処理結果を出力する。これにより、データに同期した制御を、任意のデータ間でかつ高速に行なうことが可能となる。
【００６８】
尚、本実施形態では、データ単位（ページ、ブロック、バンド等）の画像処理中にレジスタのリード及びライトを行なう動作に関して、１つのみのコマンドを転送する例を示したがこれに限られるものではない。複数のコマンドの転送及び、上記データ単位内の複数箇所でデータに対してコマンドを挿入して転送する場合も可能であることは上記実施形態の説明から当業者には明らかである。
【００６９】
また、本実施形態では画像処理中のコマンド転送が１つの処理ブロックに関してのみ行なう例を示したが、複数の処理ブロックに対して行なう場合も可能であることはいうまでもない。
また、上記実施形態では、１つのコマンドに１つの処理ブロックを特定するＩＤを記述したが、例えば、１ＦＨ（処理ブロックＩＤ２０２の全ビットが１）の場合には、全ての処理ブロックが選択されるようにしてもよい。例えば、全ての処理ブロックの同一アドレスに同一データを書き込むような処理を、１つのコマンドで実現できる。
また、上記実施形態では、処理ブロックが３つの場合を説明したが、処理ブロックの数は１以上、いくつでも良い。但し、処理ブロックＩＤで表せる数が上限となる。
【００７０】
さらに、実施形態では各処理ブロックのデータに対するコマンド及びデータに対するレイテンシが同一の場合に関して説明したが、これに限定されるものではない。複数の処理ブロックのコマンド及びデータに対するレイテンシが互いに異なる場合でも、デコーダ１２０１によるバッファ１２０４でコマンドを保持するクロックサイクルの制御をそれぞれ適宜変更することにより対応できる。
【００７１】
［他の実施形態］
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００７２】
尚、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。
【００７３】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００７４】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【００７５】
コンピュータプログラムを供給するためのコンピュータ読み取り可能な記憶媒体としては以下が挙げられる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などである。
【００７６】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記録媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００７７】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布するという形態をとることもできる。この場合、所定の条件をクリアしたユーザに、インターネットを介してホームページから暗号を解く鍵情報をダウンロードさせ、その鍵情報を使用して暗号化されたプログラムを実行し、プログラムをコンピュータにインストールさせるようにもできる。
【００７８】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどとの協働で実施形態の機能が実現されてもよい。この場合、ＯＳなどが、実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【００７９】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれて前述の実施形態の機能の一部或いは全てが実現されてもよい。この場合、機能拡張ボードや機能拡張ユニットにプログラムが書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行なう。
【図１】
0005188620.tif 000002
【図２】
0005188620.tif 000003
【図３】
0005188620.tif 000004
【図４】
0005188620.tif 000005
【図５】
0005188620.tif 000006
【図６】
0005188620.tif 000007
【図７】
0005188620.tif 000008
【図８】
0005188620.tif 000009
【図９】
0005188620.tif 000010
【図１０】
0005188620.tif 000011
【図１１】
0005188620.tif 000012
【図１２】
0005188620.tif 000013
【図１３】
0005188620.tif 000014
【図１４】
0005188620.tif 000015