(57)【特許請求の範囲】
【請求項１】
特定のデータ量のデータ群を単位として画像処理を行う画像処理装置であって、
コマンドと処理対象のデータとを多重化して、多重化されたコマンド及びデータを送信する送信手段と、
多重化されたコマンド及びデータを用いて画像処理を行ない、コマンド及び処理結果のデータを多重化して出力する際に、上流から入力されるデータの後に入力される同期コマンドを検出してから下流に同期コマンドを出力する画像処理ブロックが複数個直列に接続された画像処理手段と、
前記画像処理手段の最終段の画像処理ブロックから出力された多重化されたコマンド及び処理結果データを受信する受信手段とを備え、
前記送信手段は前記データ群の最終データの送信後であって、次のデータ群に関するコマンド及びデータの送信前に同期コマンドを送信し、
前記受信手段は前記最終段の画像処理ブロックから前記同期コマンドを受信した場合に前記送信手段へ当該データ群の処理の終了を通知することを特徴とする画像処理装置。
【請求項２】
前記送信手段は、前記受信手段から処理の終了の通知を受けた後、次のデータ群の処理のための多重化されたコマンド及びデータの送信を開始することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記コマンドは、前記画像処理手段の複数の画像処理ブロックの一つを特定する為の識別情報と、画像処理パラメータのリードライトの切り替え属性と、画像処理パラメータの格納箇所を示すアドレス領域と、画像処理パラメータの値を格納するデータ領域を有することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記データは、データ転送の開始属性及び終了属性を有することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記同期コマンドは、前記アドレス領域に格納されるアドレス値に、前記画像処理ブロックに実装されていないアドレス番号を用いることを特徴とする請求項３に記載の画像処理装置。
【請求項６】
前記同期コマンドは、前記コマンド内で使われていない領域を識別子として用いることを特徴とする請求項１に記載の画像処理装置。
【請求項７】
直列に接続された複数の画像処理ブロックを有し、特定のデータ量のデータ群を単位として画像処理を行う画像処理装置の制御方法であって、
送信手段が、コマンドと処理対象のデータとを多重化して、多重化されたコマンド及びデータを送信する送信工程と、
前記複数の画像処理ブロックの各々が、多重化されたコマンド及びデータを用いて画像処理を行なう処理工程と、
前記複数の画像処理ブロックの各々が、コマンド及び処理結果のデータを多重化して出力する際に、上流から入力されるデータの後に入力される同期コマンドを検出してから下流に同期コマンドを出力する転送工程と、
受信手段が、前記複数の画像処理ブロックのうちの最終段の画像処理ブロックから出力された多重化されたコマンド及び処理結果データを受信する受信工程とを備え、
前記送信工程では、前記データ群の最終データの送信後であって、次のデータ群に関するコマンド及びデータの送信前に同期コマンドを送信し、
前記受信工程では、前記最終段の画像処理ブロックから前記同期コマンドを受信した場合に、当該データ群の処理が終了したと判断することを特徴とする画像処理装置の制御方法。
【請求項８】
前記送信工程では、前記受信工程が処理の終了と判断した場合に、次のデータ群の処理のための多重化されたコマンド及びデータの送信を開始することを特徴とする請求項７に記載の画像処理装置の制御方法。
【請求項９】
前記コマンドは、前記複数の画像処理ブロックの一つを特定する為の識別情報と、画像処理パラメータのリードライトの切り替え属性と、画像処理パラメータの格納箇所を示すアドレス領域と、画像処理パラメータの値を格納するデータ領域を有することを特徴とする請求項７に記載の画像処理装置の制御方法。
【請求項１０】
前記データは、データ転送の開始属性及び終了属性を有することを特徴とする請求項７に記載の画像処理装置の制御方法。
【請求項１１】
前記同期コマンドは、前記アドレス領域に格納されるアドレス値に、前記画像処理ブロックに実装されていないアドレス番号を用いることを特徴とする請求項９に記載の画像処理装置の制御方法。
【請求項１２】
前記同期コマンドは、前記コマンド内で使われていない領域を識別子として用いることを特徴とする請求項７に記載の画像処理装置の制御方法。
【請求項１３】
請求項７乃至１２のいずれか１項に記載された画像処理装置の制御方法の各工程をコンピュータに実行させるためのコンピュータプログラム。
【請求項１４】
請求項７乃至１２のいずれか１項に記載された画像処理装置の制御方法の各工程をコンピュータに実行させるためのコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コマンド及びデータを多重化して、直列に接続された複数の処理ブロックに供給することにより、データを処理する画像処理装置及び方法に関する。
【背景技術】
【０００２】
特許文献１には、映像データの各フレームのスキャンライン先頭に制御コマンドを付加して、映像データに制御コマンドを多重化して伝送を行なうことにより、各フレームに同期した制御を行う構成が記載されている。
【０００３】
一方、図７に示すようにコマンド及びデータの送信部７００と受信部７０４の間に複数の画像処理ブロックを従属に（直列に）接続して画像処理を行なう画像処理装置が提案されている。
【０００４】
図７において、７００はコマンド及びデータを多重化して送信する送信部である。７０１〜７０３は画像処理を行なう画像処理ブロックである。７０４は、最終段の画像処理ブロック７０３から多重化されたコマンド及び処理結果データを受信する受信部である。受信部７０４は、所定のデータ量に対応したデータ群に対する処理の完了を検出すると、終了信号７０５を送信部７００へ通知する。
【０００５】
ここで図８のタイミング図を用いて、図７の画像処理装置の動作を説明する。８００は送信部７００の出力を、８０１〜８０３は画像処理ブロック７０１〜７０３のそれぞれの出力タイミングを示す。まず８０４に示すように送信部７００より画像処理ブロック７０１〜７０３に対して画像処理パラメータを設定する為のコマンドが送信される。送信されたコマンドは、８０５〜８０７に示すように順次に各画像処理ブロックに伝播される。これにより各画像処理ブロックにおける画像処理パラメータの設定が行なわれる。また、８０８に示すように送信部７００より画像処理対象のデータが送信されると、８０９〜８１１に示すように、画像処理ブロック７０１〜７０３によって順次に画像処理が施された後、受信部７０４で受信される。ここで、送信部７００より送信されるデータ８０８はあるデータ単位（ページ、ブロック、バンド等）で送信が行なわれるが、データ単位の最初のデータにはStartフラグが、また最後のデータにはEndフラグが付加されている。受信部７０４はこれらStartフラグとEndフラグによりデータの開始位置と終了位置を検知することが可能となる。そして、受信部７０４は、Endフラグを検知した後、送信部７００に対して、終了信号７０５を送信する。その後、送信部７００は、画像処理ブロック７０１〜７０３に対して、次のデータ単位に対する画像処理パラメータの設定を開始し（８１２〜８１５）、８１６〜８１９に示すように、画像処理動作が繰り返し実行される。
【特許文献１】特開平８−２１４２６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、複数の画像処理ブロックのうち、ある画像ブロックでトリミング処理等、入力されたデータ量に対して出力されるデータ量が減少する処理が行なわれた場合には、以下に説明するような課題が生じる。図７において、最終段の画像処理ブロック７０３は、入力されたデータ量に対して出力されるデータ量が減少する処理（例えば、トリミング処理）を実行するものとする。この場合、画像処理ブロック７０３による画像処理が画像処理ブロック７０１，７０２よりも早く完了してしまい、画像処理ブロック７０１，７０２の処理が終了する前に終了信号７０５が送信部７００に送られる可能性がある。この場合、全ての画像処理ブロックの画像処理動作が終了しないうちに、送信部７００から次のデータ単位に対する画像処理パラメータの設定が始まってしまうことになる。このような事態が発生すると、画像処理ブロックの内部シーケンサが正常に動作できなくなり、正常な画像処理動作が行なわれなくなるという課題があった。
【０００７】
ここで図９を用いて上記課題について更に説明する。図８と同様に９００は送信部７００の出力タイミングを、９０１〜９０３は画像処理ブロック７０１〜７０３の出力タイミングをそれぞれ示す。
【０００８】
まず９０４に示すように送信部７００より画像処理ブロック７０１〜７０３に対して画像処理パラメータを設定する為のコマンドが送信される。送信部７００より送信されたコマンドは、９０５〜９０７に示すように各処理ブロックに伝播されて、各画像処理ブロックへの画像処理パラメータの設定が行なわれる。また、９０８に示すように送信部７００より画像処理対象のデータが送信されると、９０９〜９１１に示すように、各画像処理ブロックにて画像処理が行なわれた後、処理結果が受信部７０４で受信される。
【０００９】
ここで、図８での説明と同様に、送信部７００より送信されるデータ８０８には、送信の最初のデータにStartフラグが、また最後のデータにはEndフラグが付加されている。これにより、受信部７０４はデータの開始位置と終了位置を検知することが可能となる。受信部７０４は、Endフラグを検知した後、送信部７００に対して、終了信号７０５を送信する。このとき、画像処理ブロック７０３における画像処理は、９１１に示すようにデータ単位に含まれるデータ量に対して出力されるデータ量が少ない。従って、画像処理ブロック７０３が自身の処理を終えた時点でEndフラグを付加したデータを出力すると、受信部７０４は、他の画像処理ブロックの画像処理動作中に終了を検出することになる。このため、９１２に示すように次のデータ単位のための画像処理パラメータの設定が、画像処理ブロック７０１及び画像処理ブロック７０２の現在のデータ単位に対する画像処理動作中に行なわれてしまうことになる。その結果、画像処理ブロックのシーケンサが正常に動作できなくなり、正常な画像処理が行なわれなくなる。
【００１０】
より具体的には、画像処理ブロック７０１の出力９１３の部分にて、処理中に画像処理パラメータが書き換わることにより、正常な出力結果が得られなくなる。また、９１４の部分においては、画像処理ブロック７０１がデータ出力よりコマンド出力を優先する場合、次のデータ単位に対する画像処理パラメータが出力されてしまう。さらに、画像処理ブロック７０２の出力９１５の部分においても、出力９１３の部分と同様な問題が起きる。これらの不具合により、画像処理ブロックのシーケンサが異常状態で現データ単位の画像処理が終了した場合、次のデータ単位のデータ９１６に対する画像処理結果（９１８〜９１９）に影響する場合があり、画像処理装置の信頼性を損なう可能性がある。
【００１１】
本発明は、上記の課題に鑑みてなされたものであり、シーケンスの処理中に、次のシーケンスのコマンド受け付けることによる画像処理の誤動作を防止することを目的とする。
【課題を解決するための手段】
【００１２】
上記の目的を達成するための本発明の一態様による画像処理装置は、以下の構成を備える。すなわち、
特定のデータ量のデータ群を単位として画像処理を行う画像処理装置であって、
コマンドと処理対象のデータとを多重化して、多重化されたコマンド及びデータを送信する送信手段と、
多重化されたコマンド及びデータを用いて画像処理を行ない、コマンド及び処理結果のデータを多重化して出力する際に、上流から入力されるデータの後に入力される同期コマンドを検出してから下流に同期コマンドを出力する画像処理ブロックが複数個直列に接続された画像処理手段と、
前記画像処理手段の最終段の画像処理ブロックから出力された多重化されたコマンド及び処理結果データを受信する受信手段とを備え、
前記送信手段は前記データ群の最終データの送信後であって、次のデータ群に関するコマンド及びデータの送信前に同期コマンドを送信し、
前記受信手段は前記最終段の画像処理ブロックから前記同期コマンドを受信した場合に前記送信手段へ当該データ群の処理の終了を通知する。
【００１３】
また、上記の目的を達成するための本発明の他の態様による画像処理装置の制御方法は、以下の構成を備える。すなわち、
直列に接続された複数の画像処理ブロックを有し、特定のデータ量のデータ群を単位として画像処理を行う画像処理装置の制御方法であって、
送信手段が、コマンドと処理対象のデータとを多重化して、多重化されたコマンド及びデータを送信する送信工程と、
前記複数の画像処理ブロックの各々が、多重化されたコマンド及びデータを用いて画像処理を行なう処理工程と、
前記複数の画像処理ブロックの各々が、コマンド及び処理結果のデータを多重化して出力する際に、上流から入力されるデータの後に入力される同期コマンドを検出してから下流に同期コマンドを出力する転送工程と、
受信手段が、前記複数の画像処理ブロックのうちの最終段の画像処理ブロックから出力された多重化されたコマンド及び処理結果データを受信する受信工程とを備え、
前記送信工程では、前記データ群の最終データの送信後であって、次のデータ群に関するコマンド及びデータの送信前に同期コマンドを送信し、
前記受信工程では、前記最終段の画像処理ブロックから前記同期コマンドを受信した場合に、当該データ群の処理が終了したと判断する。
【発明の効果】
【００１４】
本発明によれば、多重化されたデータ及びコマンドに挿入された同期コマンドを用いて次のシーケンスの処理を開始するようにしたので、シーケンスの処理中に次のシーケンスのコマンド受け付けることが防止され、画像処理の誤動作が防止される。
【発明を実施するための最良の形態】
【００１５】
（第１実施形態）
第１実施形態の画像処理装置の構成を図７に示す。図７に示されるように、本実施形態の画像処理装置は、特定のデータ量（ページ、ブロック、バンド等）のデータ群を単位として画像処理を行う画像処理装置であり、送信部７００、画像処理ブロック７０１〜７０３、受信部７０４を有する。送信部７００は、コマンドと処理対象のデータとを多重化して、多重化されたコマンド及びデータを送信する画像処理ブロックへ送信する。画像処理ブロック７０１〜７０３は直列に接続され、各画像処理ブロックは多重化されたコマンド及びデータを用いて画像処理を行なう。そして、各画像処理ブロックは、該多重化されたコマンド及びデータにおける並びの前後関係を保ちながら、コマンド及び処理結果のデータを多重化して出力する。この処理については、図５及び図６により後に詳述する。受信部７０４は、複数個直列に接続された画像処理ブロックの最終段の画像処理ブロック７０３から出力された多重化されたコマンド及び処理結果データを受信する。
【００１６】
次に図１〜２を用いて、第１実施形態の画像処理装置が用いるコマンド及びデータのフォーマットを説明する。なお、本実施形態では、コマンド及びデータは６４ビットで構成されているものとする。
【００１７】
図１はコマンドのフォーマットを示し、ＭＳＢを６３ビット目、ＬＳＢを０ビット目とする。６３ビット目はコマンド及びデータを識別する為のmodeフラグ１０１であり、これが‘０’の時はデータを、‘１’の時はコマンドを示す。５６〜６０ビット目は、コマンドが適用される処理ブロック番号を示すＩＤ１０２である。すなわち、ＩＤ１０２は、画像処理ブロックの一つを特定するための識別情報である。５５ビット目はレジスタのリードライトを指定するためのＲＷフラグ１０３（切り替え属性）であり、これが‘０’のときはリードコマンドを、‘１’のときはライトコマンドを示す。３２〜４７ビット目は、レジスタアドレス１０４であり、０〜３１ビット目は、レジスタデータ１０５である。レジスタアドレス１０４は、リード時はレジスタからのデータの読み出し箇所、ライト時はレジスタへのデータの格納箇所を示すアドレス値を格納するためのアドレス領域である。また、レジスタデータ１０５は、レジスタからリードしたデータまたはレジスタへライトするデータを格納するデータ領域である。レジスタデータ１０５の値は、リードコマンド時（ＲＷフラグ１０３＝‘０’の時）はリードされたレジスタ値であり、ライトコマンド時（ＲＷフラグ１０３＝‘１’の時）はライトされるレジスタ値である。４８〜５４ビット目及び６１、６２ビット目は使用不可のリザーブド領域１０６である。
【００１８】
また、図２はデータのフォーマットを示し、ＭＳＢを６３ビット目、ＬＳＢを０ビット目とする。６３ビット目は、modeフラグ２０１であり、上記modeフラグ１０１と同様のフラグである。５６ビット目は、あるデータ単位（ページ、ブロック、バンド等）の最初のデータを示すStartフラグ２０２であり、５５ビット目は、当該データ単位の最後のデータを示すEndフラグ２０３である。Startフラグ、Endフラグはそれぞれ、データに開始属性及び終了属性を与える。０〜４７ビット目は、画像処理の対象となるデータ２０４であり、４８〜５４ビット目及び５７〜６２ビット目は、それぞれリザーブド領域２０５であり、上記リザーブド領域１０６と同様の領域である。なお、図１、図２に示されるコマンド、データをそれぞれコマンドワード、データワードという場合もある。本実施形態ではコマンドワード及びデータワードのサイズは６４ビットであるが、サイズはこれに限られるものではない。
【００１９】
次に、図３のタイミング図を用いて本実施形態の画像処理装置の動作を説明する。３００は送信部７００の出力を、３０１〜３０３は画像処理ブロック７０１〜７０３の出力タイミング図をそれぞれ示す。
【００２０】
まず、不図示のＣＰＵから送信部７００に対してレジスタアドレス、ライトデータ、画像処理ブロックの識別番号（ＩＤ）が設定される。送信部７００は、画像処理ブロック７０１〜７０３に対して画像処理パラメータを設定する為のコマンド３０４を、図１で示したフォーマットで送信する。送信されたコマンド３０４は、３０５〜３０７に示すように各画像処理ブロックに順次に伝播されて、各画像処理ブロックにおいて画像処理パラメータの設定が行なわれる。なお、コマンド３０４〜３０７は１つまたは複数のコマンドワードからなる。また、図３において、コマンドCとデータDの先頭（Start）の間隔が次第に広がっているのは、コマンドとデータに対するレイテンシが異なっている為である。図３では、各画像処理ブロックのコマンド、データの遅延は一定であるが、データの遅延はコマンドの約２倍を想定して示している。その後、不図示のＤＲＡＭ等の記憶ユニットから、不図示のＤＭＡＣを介してデータ単位分の画像データが送信部７００に対して転送されると、送信部７００は、画像処理対象のデータ３０８を画像処理ブロック７０１に送信する。送信されたデータ３０８は、３０９〜３１１に示すように、各画像処理ブロックに転送されて画像処理が行なわれ、最終段の画像処理ブロック７０３から出力されたデータ３１１が受信部７０４で受信される。なお、データ３０８〜３１１は、１つまたは複数のデータワードからなる。
【００２１】
ここで、送信部７００より送信されるデータ３０８はあるデータ単位（ページ、ブロック、バンド等）で図２のフォーマットで送信される。また、画像処理ブロック７０３では前述のようにトリミング処理等入力されたデータ量に対して出力されるデータ量（データワードの数）が少ない処理が行なわれる。データ単位のデータ３０８の送信を終えた後、送信部７００より同期コマンド３１２が送信される。すなわち、送信部７００は、データ単位のデータ群の最終データ（データワード）の送信後であって、次のデータ群に関するコマンド及びデータの送信前に同期コマンド３１２を送信する。この同期コマンド３１２は、３１３〜３１５に示すように、各処理ブロックを伝播し、同期コマンド３１５は受信部７０４で受信される。受信部７０４は、同期コマンド３１５を検知した後、送信部７００に対して、終了信号７０５を送信する。送信部７００は、この同期コマンドを受信した後、次のデータ単位に対する画像処理パラメータの設定を開始するべくコマンド３１６を送信する。以降、３１７〜３２７に示すように、上述した処理を繰り返し、画像処理動作を行なう。
【００２２】
以上のように、本実施形態では、最終段の画像処理ブロックから同期コマンドを受信した場合に送信部７００へ当該データ群の処理の終了を通知する。送信部７００は、受信部７０４から処理の終了の通知を受けた後、次のデータ群の処理のための多重化されたコマンド及びデータの送信を開始する。尚、本実施形態では、同期コマンドとして、各処理ブロックに対してレジスタライト動作やリード動作を行なわないコマンドが用いられる。より具体的には、例えば、modeフラグ１０１が‘１’に、ＩＤ１０２が各画像処理ブロックと重ならない識別番号にセットされたコマンドが用いられる。
【００２３】
次に、図４に本実施形態の画像処理ブロック７０１〜７０３の内部構成を示す。コマンド／データ入力端子４００からは多重化されたコマンド及びデータが入力される。４０１はコマンド及びデータをデコードするためのデコーダである。４０２はレジスタデータの格納と読み出し、書き込みを制御する為のレジスタである。４０３は画像処理部であり、４０４はコマンドとデータの前後関係を保証する為のバッファであり、４０５はデコーダ４０１からバッファ４０４へ出力されるコマンド保持信号である。４０６は入力コマンドが上述の同期コマンドを示すＩＤでなく、かつ、自分のＩＤと一致しなかった場合に、コマンドをそのまま出力する系に挿入される遅延調整用のフリップフロップ（以下、ＦＦ４０６）である。また、４０７はデコーダ４０１でデコードされた、modeフラグ１０１、２０１及びＩＤ１０２、２０２の遅延調整用のフリップフロップ（以下、ＦＦ４０７）である。４０８は出力コマンド及びデータを生成する為のエンコーダであり、４０９はエンコーダ４０８が出力を選択する為のセレクト信号であり、４１０はコマンド及びデータを出力する為のコマンド／データ出力端子である。また、４１１は画像処理部内のシーケンサ及びバッファをクリアする為のクリア信号である。
【００２４】
次に図５を用いて、図４に示した画像処理ブロックのレジスタリード及びライト動作を説明する。尚、図５の各サイクルで入力されるコマンド及びデータはコマンドワード（図１）、データワード（図２）である。ここで、図４の画像処理ブロックのＩＤには‘２’が設定されており、画像処理中でない場合の動作を説明する。ここで画像処理中とは、Startフラグ２０２がＯＮのデータワードを送信してから、Endフラグ２０３がＯＮのデータワードを送信するまでの間である。５００はクロック、５０１はコマンド／データ入力端子４００におけるコマンド及びデータの入力、５０２は画像処理部４０３の入力、５０３は画像処理部４０３の出力の各タイミングを示す。また、５０４はレジスタ４０２の入力、５０５はレジスタ４０２の出力の各タイミングを示し、５０６はコマンド保持信号４０５の状態を示す。更に、５０７はバッファ４０４の出力、５０８はＦＦ４０６の出力、５０９はセレクト信号４０９の状態、５１０はデータ出力端子４１０における多重化されたコマンド及びデータの出力の各タイミングを示す。
【００２５】
まず５０１に示すように、
・サイクルＣ０にてＩＤ１０２＝２、アドレス１０４＝０のライトコマンドが、
・サイクルＣ１にてＩＤ１０２＝２、アドレス１０４＝１のライトコマンドが、
・サイクルＣ２にてＩＤ１０２＝２、アドレス１０４＝０のリードコマンドが、
・サイクルＣ３にてＩＤ１０２＝２、アドレス１０４＝１のリードコマンドが、
・サイクルＣ４にてＩＤ１０２＝０のライトコマンドが、
・サイクルＣ５にてＩＤ１０２＝１のリードコマンドが画像処理ブロックに入力される。
【００２６】
これら入力されたコマンドは、デコーダ４０１にてデコードされ、ＩＤ１０２が‘２’であるコマンドに関しては、ＲＷフラグ１０３、アドレス１０４、レジスタデータ１０５の内容がレジスタ４０２へ出力される。また、画像処理中でない場合に受信したＩＤが‘２’以外のコマンドは、そのままＦＦ４０６へ出力され、ＦＦ４０６にて１クロック分遅延させられ、エンコーダ４０８へ出力される。さらに、modeフラグ１０１及びＩＤ１０２はＦＦ４０７へ出力され、ＦＦ４０７にて１クロック分遅延させられ、バッファ４０４へ出力される。またデコーダ４０１は、サイクルＣ０〜Ｃ５にはコマンドのみが入力されているので、５０９に示すように、画像処理ブロックのコマンドに対するレイテンシ２クロックサイクル分にあわせて、セレクト信号４０９を出力する。
【００２７】
つまり５０４に示すように、
・サイクルＣ０にてＲＷフラグ１０３＝１、アドレス１０４＝０及びレジスタデータ１０５がレジスタ４０２へ入力され、
・サイクルＣ１にてＲＷフラグ１０３＝１、アドレス１０４＝１及びレジスタデータ１０５がレジスタ４０２へ入力され、
・サイクルＣ２にてＲＷフラグ１０３＝０、アドレス１０４＝０及びレジスタデータ１０５がレジスタ４０２へ入力され、
・サイクルＣ３にてＲＷフラグ１０３＝０、アドレス１０４＝１及びレジスタデータ１０５がレジスタ４０２へ入力される。
【００２８】
また、５０８に示すように、
・サイクルＣ４で入力されたＩＤ１０２＝０のライトコマンド（WC_ID0）は、サイクルＣ５にてＦＦ４０６からエンコーダ４０８へ出力され、
・サイクルＣ５で入力されたＩＤ１０２＝１のリードコマンド（RC_ID1）は、サイクルＣ６にてＦＦ４０６からエンコーダ４０８へ出力される。
【００２９】
また、エンコーダ４０８は、セレクト信号４０９が‘０’の時はバッファ４０４の出力を選択し、セレクト信号４０９が‘１’の時は画像処理部４０３の出力を選択し、セレクト信号４０９が‘２’の時はＦＦ４０６の出力を選択する。従って、セレクト信号４０９は、５０９に示すように、サイクルＣ１〜Ｃ４の期間は‘０’となり、サイクルＣ５〜Ｃ６の期間は‘２’となる。
【００３０】
レジスタ４０２においては、ＲＷフラグ１０３の値が‘０’の時はアドレス１０４で指定されるアドレスのレジスタリード動作を行ない、読み出したデータをレジスタデータ１０５とする。そして、そのときのＲＷフラグ１０３＝０、アドレス１０４及びレジスタデータ１０５をバッファ４０４へ出力する。このとき、レジスタリード動作は、レジスタコマンドの直前に入力されたデータの処理が終了してから行なわれる。またＲＷフラグ１０３の値が‘１’の時は、アドレス１０４で指定されるアドレスへレジスタデータ１０５の内容を書き込むレジスタライト動作を行なう。そして、そのときのＲＷフラグ１０３、アドレス１０４とレジスタデータ１０５をバッファ４０４へ出力する。
【００３１】
この時、ライトされたレジスタデータは画像処理パラメータとして画像処理部４０３へ出力される。また、レジスタリードデータの例としては、画像処理部４０３から入力された、内部状態等を反映させたデータが挙げられる。
【００３２】
つまり、図５の５０５に示すように、レジスタ４０２は、
・サイクルＣ１にてアドレス１０４＝０へのライト動作を行なうと同時にＲＷフラグ１０３＝１、アドレス１０４＝０及びレジスタデータ１０５をバッファ４０４へ出力し、
・サイクルＣ２にてアドレス１０４＝１へのライト動作を行なうと同時にＲＷフラグ１０３＝１、アドレス１０４＝１及びレジスタデータ１０５をバッファ４０４へ出力し、
・サイクルＣ３にてアドレス１０４＝０へのリード動作を行なうと同時にＲＷフラグ１０３＝０、アドレス１０４＝０及びレジスタデータ１０５をバッファ４０４へ出力し、
・サイクルＣ４にてアドレス１０４＝１へのリード動作を行なうと同時にＲＷフラグ１０３＝０、アドレス１０４＝１及びレジスタデータ１０５をバッファ４０４へ出力する。
【００３３】
バッファ４０４においては、コマンド保持信号４０５が‘１’の時、入力されたデータを保持する。コマンド保持信号４０５が‘１’の値になるのは、デコーダ４０１にてあるデータ単位（ページ、ブロック、バンド等）の画像処理中に、即ちデータ転送中に、レジスタリード動作などのコマンドの転送が行なわれた場合である。図５の例では、画像処理中におけるコマンドの転送ではない為、コマンド保持信号４０５の状態として‘０’値が示されている。その結果、入力されたmodeフラグ１０１、ＩＤ１０２、ＲＷフラグ１０３、アドレス１０４及びレジスタデータ１０５は、そのままエンコーダ４０８へ出力されている。
【００３４】
エンコーダ４０８は、セレクト信号４０９に従って、図１に示したコマンドのフォーマットに従った出力コマンドを生成し、１クロックサイクル後にコマンド／データ出力端子４１０より出力する。つまり、図５の５０９，５１０に示すように、サイクルＣ１〜Ｃ４の期間は値がセレクト信号４０９が‘０’なので、エンコーダ４０８は、バッファ４０４の出力を選択し、
・１クロックサイクル後のサイクルＣ２にてＩＤ１０２＝２、アドレス１０４＝０のライトコマンドを、
・サイクルＣ３にてＩＤ１０２＝２、アドレス１０４＝１のライトコマンドを、
・サイクルＣ４にてＩＤ１０２＝２、アドレス１０４＝０のリードコマンドを、
・サイクルＣ５にてＩＤ１０２＝２、アドレス１０４＝１のリードコマンドを、
コマンド／データ出力端子４１０へ出力する。
【００３５】
また、セレクト信号４０９はサイクルＣ５〜Ｃ６の期間は値が‘２’なので、エンコーダ４０８は、ＦＦ４０６の出力を選択し、
・１クロックサイクル後のサイクルＣ６にてＩＤ１０２＝０のライトコマンド（WC_ID0）を、
・サイクルＣ７にてＩＤ１０２＝１のリードコマンド（RC_ID1）を、
コマンド／データ出力端子４１０へ出力する。
【００３６】
次に、図６を用いて、図４に示した画像処理ブロックがあるデータ単位（ページ、ブロック、バンド等）の画像処理中にレジスタのリードを行なう場合の動作を説明する。ここで画像処理中とは、上述したように、Startフラグ２０２がＯＮのデータワードを送信してから、Endフラグ２０３がＯＮのデータワードを送信するまでの間である。また、ここで、画像処理ブロックのＩＤには図５と同様に‘２’が設定されており、処理ブロックのデータに対するレイテンシは４クロックサイクルとする。また、各処理ブロックのコマンドに対するレイテンシは、画像処理中に送信される場合、データと同様に４クロックサイクルとする。尚、図６の各サイクルで入力されるコマンド及びデータはコマンドワード（図１）、データワード（図２）である。
【００３７】
図６において、６００はクロック、６０１はコマンド／データ入力端子４００におけるコマンド及びデータの入力状態、６０２は画像処理部４０３の入力、６０３は画像処理部４０３の出力のタイミングを示す。また、６０４はレジスタ４０２の入力、６０５はレジスタ４０２の出力、６０６はコマンド保持信号４０５の状態、６０７はバッファ４０４の出力のタイミングを示す。また、６０８はＦＦ４０６の出力、６０９はセレクト信号４０９の状態、６１０はコマンド／データ出力端子４１０におけるコマンド及びデータのタイミングを示す。
【００３８】
６０１に示すように、コマンド／データ入力端子４００には、
・サイクルＣ０にてデータDn-1が、
・サイクルＣ１にてデータDnが、
・サイクルＣ２にてＩＤ１０２＝２のリードコマンド（RC_ID2）が、
・サイクルＣ３にてデータDn+1が、
・サイクルＣ４にてデータDn+2が、
・サイクルＣ５にてデータDn+3が、
・サイクルＣ６にてデータDn+4が、
・サイクルＣ７にてデータDn+5が入力される。
【００３９】
デコーダ４０１は、これら入力されたデータをデコードして、Startフラグ、Endフラグ、データを画像処理部４０３へ出力する。また、画像処理中においては、ＩＤ１０２の値に関わらず、コマンドのＲＷフラグ１０３、アドレス１０４、レジスタデータ１０５がレジスタ４０２へ出力される。これは、たとえＩＤ１０２が‘２’以外の値であっても、データとコマンドの前後関係を保ちながら、後段の処理ブロックへデータ及びコマンドを伝播させる為である。さらに、デコーダ４０１は、modeフラグ１０１及びＩＤ１０２をＦＦ４０７へ出力する。modeフラグ１０１及びＩＤ１０２は、ＦＦ４０７にて１クロック分遅延させられ、バッファ４０４へ出力される。また、図６においては、デコーダ４０１にはサイクルＣ２の期間以外はデータが入力されている。そのため、画像処理中であると判断され、６０９に示すように画像処理ブロックのコマンドに対するレイテンシ４クロック分にあわせて、セレクト信号４０９が出力される。
【００４０】
つまり６０２に示すように、サイクルＣ０，Ｃ１及びＣ３〜Ｃ７にてStartフラグ、Endフラグ及びデータが画像処理部４０３へ入力される。そして、６０４に示すように、サイクルＣ２にてアドレス１０４及びレジスタデータ１０５がレジスタ４０２へ出力される。また、セレクト信号４０９は、６０９に示すようにサイクルＣ０〜Ｃ４、Ｃ６、Ｃ７の期間には‘１’が出力され、サイクルＣ５の期間には‘０’が出力される。
【００４１】
画像処理部４０３は、入力されたデータに対して４クロックサイクルのレイテンシで画像処理をおこない、出力データのStartフラグ２０２、Endフラグ２０３及びデータ２０４をエンコーダ４０８へ出力する。
【００４２】
また、レジスタ４０２においては、図５で説明したレジスタリード動作が行われる。つまり６０５に示すように、レジスタ４０２は、サイクルＣ３にてアドレス１０４へのリード動作を行なうと同時に、ＲＷフラグ１０３＝０、アドレス１０４及び当該リード動作で読み出されたレジスタデータ１０５をバッファ４０４へ出力する。
【００４３】
デコーダ４０１は、あるデータ単位（ページ、ブロック、バンド等）の画像処理中にレジスタリードコマンドを検知した為、サイクルＣ３及びＣ４においてコマンド保持信号４０５を‘１’にセットする。よって、６０７に示すように、バッファ４０４は、サイクルＣ３では、入力されたmodeフラグ１０１、ＩＤ１０２、ＲＷフラグ１０３、アドレス１０４及びレジスタデータ１０５をそのままエンコーダ４０８へ出力する。そして、サイクルＣ４及びＣ５ではそれらの値を保持する。
【００４４】
エンコーダ４０８は、図１に示したコマンドのフォーマットに従って出力コマンドを生成し、コマンド／データ出力端子４１０より出力する。つまり、６０９に示すように、エンコーダ４０８は、サイクルＣ０〜Ｃ４、Ｃ６、Ｃ７の期間はセレクト信号４０９の値が‘１’なので、画像処理部４０３の出力を選択する。そして、１クロックサイクル後のサイクルにコマンド／データ出力端子４１０へ出力する。また、サイクルＣ５では、セレクト信号４０９の値が‘０’である為、エンコーダ４０８は、バッファ４０４の出力を選択する。そして、１クロックサイクル後のサイクルＣ６において、エンコーダ４０８は、ＩＤ１０２＝２、アドレス１０４＝０のリードコマンドをコマンド／データ出力端子４１０へ出力する。
【００４５】
尚、図６の例では、画像処理中にレジスタのリード動作を行なう場合のタイミングチャートを示したが、レジスタのライト動作を行なう場合も同様である。但し、レジスタのライト動作では、レジスタの更新が次のデータ処理の開始までに行なわれる。
【００４６】
次に、図４に示した画像処理ブロックに、同期コマンドが入力された場合の動作を説明する。ここで、図４の画像処理ブロックのＩＤは図５及び図６での説明と同様に‘２’が設定されている。また、同期コマンドのＩＤ１０２は‘２’以外の値であり、かつ同期コマンドの入力は画像処理中（Startフラグ２０２を送信してから、Endフラグ２０３を送信するまでの間）でない場合に行なわれる。よって、同期コマンドに対する動作は、図５のサイクルＣ４及びＣ５でコマンド／データ入力端子４００より入力された、ＩＤ１０２が‘２’以外のコマンドWC_ID0及びRC_ID1と同様となる。すなわち、同期コマンドはデコーダ４０１にてデコードされたのち、そのままＦＦ４０６、エンコーダ４０８を経由して、コマンド／データ出力端子４１０へ出力される。
【００４７】
但し、デコーダ４０１は、同期コマンドを受け付けると、直ちに画像処理部４０３に対してクリア信号４１１を出力し、画像処理部４０３内のシーケンサ及びバッファを初期状態にクリアする。以上説明したように、同期コマンドにより、直ちに現在のシーケンスの処理は終了され、画像処理用のバッファもクリアされる。このため、現在のシーケンスの処理中に、次のシーケンスのコマンド受け付けることがなくなり、画像処理の誤動作を防止することが可能となる。
【００４８】
尚、上記実施形態において、コマンドワードのＩＤ１０２に全ての画像処理ブロックを指定するＩＤ（全指定のＩＤ）を記述できるようにしてもよい。この場合、各画像処理ブロックは、自身のＩＤもしくは全指定のＩＤが記述されたコマンドワードに対して処理を実行することになる。この場合、同期コマンドにおけるＩＤ１０２の値は、全ての画像処理ブロックのＩＤ及び全指定のＩＤ以外の値となる。また、本実施形態では、同期コマンドのＩＤ１０２は各画像処理ブロックと重ならない値を用いるとしているが、これに限られるものではない。例えば、各画像処理ブロックが実装していない特定のアドレス番号を同期コマンド用のアドレスとしてレジスタアドレス１０４に記述したり、リザーブド領域１０６（コマンド内で使用されていない領域）に同期コマンド用の識別子を設けるようにしてもよい。このような同期コマンドによれば、各画像処理ブロックにおいてレジスタライト動作やリード動作は行なわれない。
【００４９】
以上のように、本実施形態によれば、同期コマンドにより、直ちに現在のシーケンスの処理は終了され、画像処理用のバッファもクリアされる。このため、現在のシーケンスの処理中に、次のシーケンスのコマンド受け付けることがなくなり、画像処理の誤動作が防止される。
【００５０】
［他の実施形態］
尚、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。
【００５１】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００５２】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【００５３】
コンピュータプログラムを供給するためのコンピュータ読み取り可能な記憶媒体としては以下が挙げられる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などである。
【００５４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記録媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００５５】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布するという形態をとることもできる。この場合、所定の条件をクリアしたユーザに、インターネットを介してホームページから暗号を解く鍵情報をダウンロードさせ、その鍵情報を使用して暗号化されたプログラムを実行し、プログラムをコンピュータにインストールさせるようにもできる。
【００５６】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどとの協働で実施形態の機能が実現されてもよい。この場合、ＯＳなどが、実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【００５７】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれて前述の実施形態の機能の一部或いは全てが実現されてもよい。この場合、機能拡張ボードや機能拡張ユニットにプログラムが書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行なう。
【図面の簡単な説明】
【００５８】
【図１】実施形態における、コマンドのフォーマットを示す図である。
【図２】実施形態における、データのフォーマットを示す図である。
【図３】実施形態における、画像処理動作のタイミング例を示す図である。
【図４】実施形態の画像処理ブロックの構成例を示すブロック図である。
【図５】実施形態の画像処理ブロックのレジスタリード及びライト動作のタイミング例を示す図である。
【図６】実施形態の画像処理ブロックの画像処理動作のタイミング例を示す図である。
【図７】従来技術及び第１の実施形態における、画像処理装置の構成を示すブロック図である。
【図８】従来技術における、画像処理装置の正常な動作を示すタイミングを示す図である。
【図９】従来技術における、画像処理装置の問題となる動作を示すタイミングを示す図である。
【図１】
0005149567.tif 000002
【図２】
0005149567.tif 000003
【図３】
0005149567.tif 000004
【図４】
0005149567.tif 000005
【図５】
0005149567.tif 000006
【図６】
0005149567.tif 000007
【図７】
0005149567.tif 000008
【図８】
0005149567.tif 000009
【図９】
0005149567.tif 000010