(57)【要約】【課題】画像圧縮に適した画像処理システムと通常の画素（ラスター）に基づく画像システム間のデータ変換の負荷を減らすだけでなく、拡張性の向上させることが可能な画像処理サブシステム、システムあるいはソフトウェア、ＤＭＡＣ、ＤＭＡＣ制御ソフトウェア、および画像処理装置を実現する。【解決手段】画像圧縮に適した画像処理システムと通常の画素（ラスター）に基づく画像システム間のデータ変換が可能なＤＭＡＣとＣＰＵおよびローカルメモリをもつ画像サブシステムを組み合わせて、ソフトウェアによる柔軟な画像処理システムを構築する。【選択図】　　　　図１
2004021702.tif 000002
【特許請求の範囲】
【請求項１】
複数の画素の集まりを一つの画素ブロック単位とし、その画素ブロック単位毎に画像データを分割し、少なくとも、その画素ブロックニ次元座標の位置情報、その画素ブロックのサイズ、あるいはその画素ブロック内の画像データが圧縮されているかどうかを区別できるフラグを持った情報が付加された形式で管理されるデータ構造を取り扱うことができるシステムあるいはソフトウェア。
【請求項２】
前記システムあるいはソフトウェアで管理されている画像データからいわゆる画素（一次元のビットストリーム）に変換するだけでなく、逆に画素（一次元ビットストリーム）から前記システムあるいはソフトウェアで管理されている画像データにも変換する機能を持ち、かつ両方向のデータ転送終了を割り込み信号として出力する手段を有することを特徴とする請求項１記載のＤＭＡＣ。
【請求項３】
主メモリから本画像処理装置内に存在するローカルメモリにデータを転送すること、または本画像処理装置内に存在するローカルメモリから主メモリにデータを転送することが可能な請求項２記載のＤＭＡＣ。
【請求項４】
いわゆる命令実行ユニットを持ち、主メモリからフェッチした命令を一時的に保持するためのいわゆるキャッシュメモリを内臓し、いわゆるワーキングメモリとして命令実行ユニットが一時的に使用する画像データ保存・加工用のローカルメモリ（データメモリ）をその内部に有する画像処理装置。
【請求項５】
その容量はシステムの規模に応じて、静的に決定され、前記命令実行ユニットが過去に実行した命令を一時的の保持するが、一定期間の間命令実行ユニットに参照されない場合、新たな命令フェッチにより実行された新しい命令によって上書きされる前記命令キャッシュメモリを内部に持つことを特徴とする請求項４記載の画像処理装置。
【請求項６】
前記命令実行ユニットからの外部バスアクセスを外部バスに中継するバスインターフェースユニットを有し、システムバスに接続されている外部ハードウェア資源に前記命令実行ユニットがアクセスすることを可能とする請求項４記載の画像処理装置。
【請求項７】
前記命令実行ユニットが実行可能な命令列が存在する主メモリのアドレスを指定することにより、前記命令実ユニットがそのアドレスからの命令フェッチを開始できるように、外部から設定できる画像処理装置であって、その結果、前記命令実行ユニットは、前記バスインタフェースを介して、システムの主メモリにアクセスし、前記主メモリ上のアドレスからの命令フェッチを開始し、命令実行が始まることを特徴とする請求項４または６記載の画像処理装置。
【請求項８】
前記ＤＭＡＣから通知される割り込み信号を待って、内部状態を保持したまま、次の命令実行を停止する命令を実行する前記命令実行ユニットを内部にもつことを特徴とする請求項２または４記載の画像処理装置。
【請求項９】
前記ＤＭＡＣから通知される割り込み信号が通知された場合、自動的に停止した状態から、命令実行を開始する前記命令実行ユニットをその内部に持つことを特徴とする請求項２または５記載の画像処理装置。
【請求項１０】
前記ＤＭＡＣを使用し、主メモリから一回のＤＭＡ転送によって、転送されてきた画像データをすべてに対し、前記命令実行ユニットは画像処理を施し、前記装置内データメモリに書き戻し、その後、前記ＤＭＡＣが再度使用され、前記画像データに変換され、主メモリに書き戻され、最後に、前記バスインタフェースを介して、システムに処理完了を通知する手段をもつことを特徴とする請求項１、２、４、および６のいずれか記載の画像処理装置。
【請求項１１】
前記命令実行ユニットが実行する画像処理アルゴリズムを外部から指定することが可能な画像処理装置であって、この指令に従って、前記命令実行ユニットは、前記ＤＭＡＣで主メモリから転送された画像データに対して、指定された画像処理アルゴリズムを実行できることになることを特徴とする請求項２または４記載の画像処理装置。
【請求項１２】
前記ＤＭＡＣを使用して、前記画像データ形式で主メモリ中に存在するデータを前記装置内のデータメモリに転送するＤＭＡＣ制御ソフトウェア；および前記装置内のデータメモリに存在する画像データを前記画像データ形式にして主メモリ内に転送することを特徴とする請求項１、２、および４のいずれか記載のＤＭＡＣ制御ソフトウェア。
【請求項１３】
システム中のＣＰＵおよび前記ＤＭＡＣと連携して、一連の処理を主メモリ中に存在する前記画像データすべてに対して繰り返すことにより、画像処理を実現することを可能とする前記命令実行ユニットを内部に持つ画像処理装置とその制御ソフトウェア、および請求項１、２、８、９、１０、１１、および１２のいずれか記載のＤＭＡＣ制御ソフトウェア。
【請求項１４】
前記バスインタフェースを介し、システムバス内に本画像処理装置を複数個接続できるシステムにおいて、主メモリ中に存在する前記データ構造を持つ一つの画像データを複数の処理可能な単位に分割し（そのデータ構造から自然に画像データの分割が可能である）、前記命令実行ユニットそれぞれに対して、同じ命令列を与え、ほぼ同時に起動することが可能な画像処理装置であって、前記命令実行ユニットはほぼ並列して、画像処理を実行することができ、処理性能をスケーラブルに向上することができることを特徴とする請求項１、４、および６のいずれか記載の画像処理装置。
【請求項１５】
前記バスインタフェースを介し、システムバス内に本画像処理装置を複数個接続できるシステムにおいて、主メモリ中に存在する前記データ構造を持つ一つの画像データに対し、前記命令実行ユニットそれぞれに対して、異なる命令列を与え、一定期間ずつずらして起動し、異なる画像処理アルゴリズムをパイプライン的に実行することを可能にする画像処理装置であって、前記命令実行ユニットは同一の画像データに対して、パイプライン的に異なる画像処理を実行することができ、複数の画像処理パスが必要とされる複雑な画像処理を効率良く実行することができることを特徴とする請求項１、４、および６のいずれか記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
画像データを処理するシステムあるいはソフトウェア、ＤＭＡＣ、ＤＭＡＣ制御ソフトウェア、および画像処理装置に関するものである。
【０００２】
【従来の技術】
解像度の高い画像イメージを扱う画像処理システムにおいては、メモリ中の画像イメージがニ次元座標系を用いて表されることが多い。また、カラー画像を扱う場合、画像イメージはその大きさが巨大になるため、さらにＪＰＥＧなどの画像圧縮を行い、メモリに格納されることがほとんどである。
【０００３】
そのため、画像圧宿される以前の生画像イメージにおいても、あるまとまった処理単位において、メモリ中に管理されている。通常、この単位はＪＰＥＧ画像圧縮を前提にしているので、Ｘ　方向が８、Ｙ方向が８　（８ｘ８）　のニ次元データであるのが一般的であり、この単位を最小単位（ブロック）とし、さらにこのブロックがＸ、Ｙ方向に整数倍されたニ次元画像を処理の基本単位（例えば、４ｘ４　ブロック）として、メモリ中に格納し、この基本単位を種種の画像処理ハードウェアに送り、その処理結果を再度メモリに保存する方式が、画像圧縮を前提としたメモリの効果的な管理方法として優れているといえる。
【０００４】
一方、画像圧縮系ではない、色空間変換などの比較的単純な画像変換のアルゴリズムは、入力データおよび出力データをビットストリーム（一次元）で扱う場合が多い。画像データをＸ方向に１ライン分処理し、その処理が終了すると、Ｙ方向に次のラインを順次処理していき、最終的には全画像データを処理する方式である。画像を補正するような処理においても、対象となるラインの前後のラインの画像データを参照する程度あり、基本的に一次元データを処理するように構成されるのがほとんどである
このため、メモリ中のニ次元画像データを画像処理ハードウェアに適した一次元画像データに変換してから画像処理を行う、あるいは、逆に画像処理後の一次元画像データをニ次元画像データに変換して、メモリに格納するといったデータ変換のための機構必要となる。
【０００５】
この機構は、通常ＤＭＡＣ（Ｄｉｒｅｃｔ　Ｍｅｍｏｒｙ　Ａｃｃｅｓｓ　Ｃｏｎｔｒｏｌｌｅｒ）に含まれていることが多い。その理由は、上記画像データの変換処理をシステムを制御するメインＣＰＵに行わせると、その負荷が増加するからである。また、その処理速度の観点からもハードウェアで実現されている。
【０００６】
画像処理アルゴリズムも、処理性能の観点から、ハードウェアによって実現されていることが多いため、仕様が完全に決定されているもの以外は実装されないことがほとんどである。
【０００７】
【発明が解決しようとする課題】
一方、画像処理のアルゴリズムは、年々新しいのもが開発され、日々改良されてきていることから、ハードウェアで実現した場合、実現したハードウェアが時代遅れになってしまう危険性がある。また、取り扱う画像データによって、画像処理を事細かに変更するといった柔軟な画像処理をハードウェアで実現するのは、現実的に難しいため、ハードウェアの場合、画一的な画像処理しか実現できない場合が多かった。しかし、近年ＩＣの集積度の爆発的な向上により、複数ＣＰＵやＤＳＰを１チップ上に実装できるようになっており、またコンパイラ技術の向上により、高級言語で記述したソフトウェアをこれら複数のＣＰＵやＤＳＰが共存しているようなシステム上で並列に実行できるようになってきた。そのため、従来はハードウェアで実現してきた画像処理アルゴリズムを複数のＣＰＵやＤＳＰを使用して、ソフトウェア実現するようなシステムも実現可能になってきていると言える。
【０００８】
本発明は、以上のような問題点に鑑みて為されたものであり、その目的とする処は、画像圧縮に適した画像処理システムと通常の画素（ラスター）に基づく画像システム間のデータ変換の負荷を減らすだけでなく、拡張性の向上させることが可能な画像処理サブシステム、システムあるいはソフトウェア、ＤＭＡＣ、ＤＭＡＣ制御ソフトウェア、および画像処理装置を実現することにある。
【０００９】
【課題を解決するための手段】
本発明は、以下の技術的構成により、前記課題を解決できたものである。
【００１０】
（１）複数の画素の集まりを一つの画素ブロック単位とし、その画素ブロック単位毎に画像データを分割し、少なくとも、その画素ブロックニ次元座標の位置情報、その画素ブロックのサイズ、あるいはその画素ブロック内の画像データが圧縮されているかどうかを区別できるフラグを持った情報が付加された形式で管理されるデータ構造を取り扱うことができるシステムあるいはソフトウェア。
【００１１】
（２）前記システムあるいはソフトウェアで管理されている画像データからいわゆる画素（一次元のビットストリーム）に変換するだけでなく、逆に画素（一次元ビットストリーム）から前記システムあるいはソフトウェアで管理されている画像データにも変換する機能を持ち、かつ両方向のデータ転送終了を割り込み信号として出力する手段を有することを特徴とする前記（１）項記載のＤＭＡＣ。
【００１２】
（３）主メモリから本画像処理装置内に存在するローカルメモリにデータを転送すること、または本画像処理装置内に存在するローカルメモリから主メモリにデータを転送することが可能な前記（２）項記載のＤＭＡＣ。
【００１３】
（４）いわゆる命令実行ユニットを持ち、主メモリからフェッチした命令を一時的に保持するためのいわゆるキャッシュメモリを内臓し、いわゆるワーキングメモリとして命令実行ユニットが一時的に使用する画像データ保存・加工用のローカルメモリ（データメモリ）をその内部に有する画像処理装置。
【００１４】
（５）その容量はシステムの規模に応じて、静的に決定され、前記命令実行ユニットが過去に実行した命令を一時的の保持するが、一定期間の間命令実行ユニットに参照されない場合、新たな命令フェッチにより実行された新しい命令によって上書きされる前記命令キャッシュメモリを内部に持つことを特徴とする前記（４）項記載の画像処理装置。
【００１５】
（６）前記命令実行ユニットからの外部バスアクセスを外部バスに中継するバスインターフェースユニットを有し、システムバスに接続されている外部ハードウェア資源に前記命令実行ユニットがアクセスすることを可能とする前記（４）項記載の画像処理装置。
【００１６】
（７）前記命令実行ユニットが実行可能な命令列が存在する主メモリのアドレスを指定することにより、前記命令実ユニットがそのアドレスからの命令フェッチを開始できるように、外部から設定できる画像処理装置であって、その結果、前記命令実行ユニットは、前記バスインタフェースを介して、システムの主メモリにアクセスし、前記主メモリ上のアドレスからの命令フェッチを開始し、命令実行が始まることを特徴とする前記（４）項または（６）項記載の画像処理装置。
【００１７】
（８）前記ＤＭＡＣから通知される割り込み信号を待って、内部状態を保持したまま、次の命令実行を停止する命令を実行する前記命令実行ユニットを内部にもつことを特徴とする前記（２）項または（４）項記載の画像処理装置。
【００１８】
（９）前記ＤＭＡＣから通知される割り込み信号が通知された場合、自動的に停止した状態から、命令実行を開始する前記命令実行ユニットをその内部に持つことを特徴とする前記（２）項または（５）項記載の画像処理装置。
【００１９】
（１０）前記ＤＭＡＣを使用し、主メモリから一回のＤＭＡ転送によって、転送されてきた画像データをすべてに対し、前記命令実行ユニットは画像処理を施し、前記装置内データメモリに書き戻し、その後、前記ＤＭＡＣが再度使用され、前記画像データに変換され、主メモリに書き戻され、最後に、前記バスインタフェースを介して、システムに処理完了を通知する手段をもつことを特徴とする前記（１）項、（２）項、（４）項、および（６）項のいずれか記載の画像処理装置。
【００２０】
（１１）前記命令実行ユニットが実行する画像処理アルゴリズムを外部から指定することが可能な画像処理装置であって、この指令に従って、前記命令実行ユニットは、前記ＤＭＡＣで主メモリから転送された画像データに対して、指定された画像処理アルゴリズムを実行できることになることを特徴とする前記（２）項または（４）項記載の画像処理装置。
【００２１】
（１２）前記ＤＭＡＣを使用して、前記画像データ形式で主メモリ中に存在するデータを前記装置内のデータメモリに転送するＤＭＡＣ制御ソフトウェア；および前記装置内のデータメモリに存在する画像データを前記画像データ形式にして主メモリ内に転送することを特徴とする前記（１）項、（２）項、および（４）項のいずれか記載のＤＭＡＣ制御ソフトウェア。
【００２２】
（１３）システム中のＣＰＵおよび前記ＤＭＡＣと連携して、一連の処理を主メモリ中に存在する前記画像データすべてに対して繰り返すことにより、画像処理を実現することを可能とする前記命令実行ユニットを内部に持つ画像処理装置とその制御ソフトウェア、および前記（１）項、（２）項、（８）項、（９）項、（１０）項、（１１）項、および（１２）項のいずれか記載のＤＭＡＣ制御ソフトウェア。
【００２３】
（１４）前記バスインタフェースを介し、システムバス内に本画像処理装置を複数個接続できるシステムにおいて、主メモリ中に存在する前記データ構造を持つ一つの画像データを複数の処理可能な単位に分割し（そのデータ構造から自然に画像データの分割が可能である）、前記命令実行ユニットそれぞれに対して、同じ命令列を与え、ほぼ同時に起動することが可能な画像処理装置であって、前記命令実行ユニットはほぼ並列して、画像処理を実行することができ、処理性能をスケーラブルに向上することができることを特徴とする前記（１）項、（４）項、および（６）項のいずれか記載の画像処理装置。
【００２４】
（１５）前記バスインタフェースを介し、システムバス内に本画像処理装置を複数個接続できるシステムにおいて、主メモリ中に存在する前記データ構造を持つ一つの画像データに対し、前記命令実行ユニットそれぞれに対して、異なる命令列を与え、一定期間ずつずらして起動し、異なる画像処理アルゴリズムをパイプライン的に実行することを可能にする画像処理装置であって、前記命令実行ユニットは同一の画像データに対して、パイプライン的に異なる画像処理を実行することができ、複数の画像処理パスが必要とされる複雑な画像処理を効率良く実行することができることを特徴とする前記（１）項、（４）項、および（６）項のいずれか記載の画像処理装置。
【００２５】
以下、さらに詳細に説明する。
【００２６】
上記課題を解決するために、請求項１記載に係る画像処理転送装置では、複数の画素の集まりを一つの画素ブロック単位とし、その画素ブロック単位毎に画像データを分割し、少なくとも、その画素ブロックニ次元座標の位置情報、その画素ブロックのサイズ、あるいはその画素ブロック内の画像データが圧縮されているかどうかを区別できるフラグを持った情報が付加された形式で管理されるデータ構造を取り扱うことが可能であることを特徴とする。
【００２７】
請求項２記載に係る画像処理装置では、請求項１記載の方法で管理されている画像データからいわゆる画素（一次元のビットストリーム）に変換するだけでなく、逆に画素（一次元ビットストリーム）から請求項１記載の方法で管理されている画像データにも変換する機能を持ち、かつ両方向のデータ転送終了を割り込み信号として出力する手段を有するＤＭＡＣと連携して動作すること特徴とする。
【００２８】
請求項３記載に係る画像処理装置では、主メモリから本画像処理装置内に存在するローカルメモリ内ににデータを転送するように設定でき、また本画像処理装置内に存在するローカルデータメモリから主メモリにもデータを転送するようにも設定できるＤＭＡＣおよびその制御ソフトウェアと連携して動作すること特徴とする。
【００２９】
請求項４記載に係る画像処理装置では、いわゆる命令実行ユニットを持ち、主メモリからフェッチした命令を一時的に保持するためのいわゆるキャッシュメモリを内臓し、いわゆるワーキングメモリとして命令実行ユニットが一時的に使用する画像データ保存・加工用のローカルメモリ（データメモリ）を内蔵する特徴を持っている。
【００３０】
請求項５記載に係る画像処理装置では、請求項４の命令実行ユニットが過去に実行した命令を一時的の保持し、一定期間の請求項４記載の命令実行ユニットに参照されない場合、新たな命令フェッチにより実行された新しい命令によって上書きされる機構をもつ請求項４記載の命令キャッシュメモリを内蔵する特徴を持っている。
【００３１】
また、請求項４記載の命令キャッシュメモリは、その容量はシステムの規模に応じて、静的に決定される特徴も併せ持っている。
【００３２】
請求項６記載に係る画像処理装置では、請求項４記載の命令実行ユニットからの外部バスアクセスを外部バスに中継するバスインターフェースユニットを有し、システムバスに接続されているハードウェア資源に対し、請求項４記載の命令実行ユニットがアクセスすることが可能となる特徴を持っている。
【００３３】
請求項７記載に係る画像処理装置では、請求項４記載の命令実行ユニットが実行可能な命令列が存在する主メモリのアドレスを指定することにより、請求項４記載の命令実ユニットがそのアドレスからの命令フェッチを開始できるように、外部から設定可能である特徴を持っている。
【００３４】
その結果、請求項４記載の命令実行ユニットは、請求項６記載のバスインタフェースを介して、システムの主メモリにアクセスし、主メモリ上の指定アドレスから命令フェッチを開始し、命令実行が始まる。
【００３５】
請求項８記載に係る画像処理装置では、請求項２記載のＤＭＡＣから通知される割り込み信号を待って、内部状態を保持したまま、次の命令実行を停止する命令を実行する請求項４記載の命令実行ユニットを内蔵する特徴を持っている。
【００３６】
請求項９記載に係る画像処理装置では、請求項２記載のＤＭＡＣから通知される割り込み信号が通知された場合、自動的に停止した状態から、命令実行を開始する請求項５記載の命令実行ユニットを内蔵する特徴を持っている。
【００３７】
請求項１０記載に係る画像処理では、請求項２記載のＤＭＡＣを使用し、主メモリから一回のＤＭＡ転送によって、転送されてきた画像データをすべてに対し、請求項４記載の命令実行ユニットが画像処理を施し、請求項４記載の装置内データメモリに書き戻す。その後、請求項２記載のＤＭＡＣが再度使用され、請求項１記載の画像データに変換され、主メモリに書き戻される。最後に、請求項６記載のバスインタフェースを介して、システムに処理完了を通知する手段をもつという特徴がある。
【００３８】
請求項１１記載に係る画像処理装置では、請求項４記載の命令実行ユニットが実行する画像処理アルゴリズムを外部から指定することが可能となる特徴を持っている。
【００３９】
通常、この指定はシステム中のＣＰＵ（とそれを制御するソフトウェア）によってなされる。この指令に従って、請求項４記載の命令実行ユニットは、請求項２記載のＤＭＡＣで主メモリから転送された画像データに対して、指定された画像処理アルゴリズムを実行できることになる。
【００４０】
請求項１２記載に係る画像処理装置では、請求項２記載のＤＭＡＣを使用して、請求項１記載の画像データ形式で主メモリ中に存在するデータを請求項４記載の装置内のデータメモリに転送するＤＭＡＣ制御ソフトウェア、および請求項４記載の装置内のデータメモリに存在する画像データを請求項１記載の画像データ形式にして主メモリ内に転送するＤＭＡＣ制御ソフトウェアを持つことを特徴とする。
【００４１】
請求項１３記載に係る画像処理装置では、システム中のＣＰＵおよび請求項２記載のＤＭＡＣと連携して、請求項８から請求項１２記載の一連の処理を主メモリ中に存在する請求項１記載の画像データすべてに対して繰り返すことにより、主メモリ中の指定された画像データに対して、指定された種類の画像処理を実現する請求項４記載の命令実行ユニットを内蔵する特徴を持っている。
【００４２】
請求項１４記載に係る画像処理装置においては、請求項６記載のバスインタフェースを介し、システムバス内に本画像処理装置を複数個接続できるシステムにおいて、主メモリ中に存在する請求項１記載のデータ構造を持つ一つの画像データを複数の処理可能な単位に分割し（そのデータ構造から自然に画像データの分割が可能である）、請求項４記載の命令実行ユニットに対して、同じ命令列を与え、ほぼ同時に起動することが可能となる特徴を持っている。本請求項により、請求項４記載の命令実行ユニットすべてがほぼ並列して、画像処理を実行することができ、処理性能をスケーラブルに向上することができる。
【００４３】
請求項１５記載の画像処理装置においては、請求項６記載のバスインタフェースを介し、システムバス内に本画像処理装置を複数個接続できるシステムにおいて、主メモリ中に存在する請求項１記載のデータ構造を持つ一つの画像データに対し、請求項４記載の命令実行ユニットそれぞれにに対して、異なる命令列を与え、一定期間ずつずらして起動し、異なる画像処理アルゴリズムをパイプライン的に実行することが可能となる特徴を持っている。
【００４４】
本請求項により、請求項４記載のそれぞれの命令実行ユニットは同一の画像データに対して、パイプライン的に異なる画像処理を実行することができ、複数の画像処理パスが必要とされる複雑な画像処理を効率良く実行することができる。
【００４５】
【発明の実施の形態】
本発明の画像処理装置の構成図を図１に示す。１００は画像処理送装置である。
【００４６】
１０５はダイレクトメモリアクセスコントローラ（ＤＭＡＣ）であり、本実施例では、システムバス（１０６）へのアクセスを介して、システムの主メモリから画像処理装置内のデータメモリ（１０４）に画像データを転送したり、逆にデータメモリ（１０４）から主メモリへのデータ転送を行い、それぞれの転送終了通知信号出力を有する。また、このＤＭＡＣは、単なるデータ転送機能だけでなく、主メモリで画像データを管理するあるデータ構造（これ以降パケットと呼ぶ）から画素単位（ラスター形式）へのデータ変換を含んでおり、また逆に画素単位（ラスター形式）の画像データを主メモリで管理されているパケット形式にデータ変換する機能も含まれているが、これについては後述する。
【００４７】
ＤＭＡＣのチャネルは入力用（主メモリからデータメモリへ）と出力用（データメモリから主メモリへ）２チャネル構成でも良いし、１チャネルを交互に使用する構成でも良いが、処理性能の観点からは、２チャネルが望ましい。
【００４８】
１０１は命令実行ユニットであり、命令キャッシュメモリ（１０２）あるいはシステムの主メモリから命令を読み出して実行する手段と、後続の命令の実行を一時停止する命令を有し、ＤＭＡＣ（１０５）からのデータ転送完了割り込みの通知を受け、自動的に一時停止状態から復帰して、後続の命令の実行を再開する手段と、上記命令の実行に伴って、データメモリ（１０４）内の画像データを読み込み、ある画像処理を行った後で、再びデータメモリ（１０４）に書き出すといったいわゆるワークメモリとして、データメモリ（１０４）を使用することができる。
【００４９】
また、１０３は命令実行ユニット（１０１）がシステムバス（１０６）に接続されているハードウェア資源にアクセスすることを可能にするために用意されているバスインタフェースユニットである。このハードウェア資源には、システムの主メモリであるＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）やＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）等が含まれる。
【００５０】
１０２はいわゆる命令用のキャッシュメモリである。命令実行ユニット（１０１）は、バスインタフェースユニット（１０３）を介して、システムの主メモリ中にアクセスすることが可能なので、主メモリ中に存在する命令列を読み出して、実行することができる。主メモリから読み出し、実行した命令は、命令キャッシュメモリに一時的に保持される。命令実行ユニット（１０１）が以前に実行された命令を必要とする場合においては、主メモリの命令列を読み出すことなく、この命令キャッシュメモリ（１０３）内に保持されている命令を高速に読み出して、実行することができる。命令キャッシュメモリは当然限られたの個数の命令のみ保持するので、ある一定時間の間参照されない命令は、命令キャッシュメモリから削除され、命令実行ユニット（１０１）が新たに読み出した命令が追加され、保持される。命令キャッシュの容量は、システムの性能に合わせて、適切に決定することが可能であることは言うまでもない。
【００５１】
本実施例の画像処理装置を含むシステム全体の構成を図２に示す。
【００５２】
２０５はシステム全体を制御するＣＰＵ（中央情報処理装置）である。
【００５３】
２１０はシステムバスであり、ＣＰＵ（２０５）やＲＯＭ（２０７）、ＲＡＭ（２０９）、およびＤＭＡＣ（２０４）、本実施例の画像処理装置（２００）が接続されており、このシステムバス（２１０）を介して、システムバスに接続している各ハードウェア資源間のデータの通信が行われる。
【００５４】
２０７はＲＯＭであり、ＣＰＵ（２０５）が実行する命令を主に保持している。
【００５５】
通常ＲＯＭ（２０７）はＲＯＭコントローラ（２０６）を介して、システムバス（２１０）に接続される。ＣＰＵは、ＲＯＭコントローラ（２０６）を介して、ＲＯＭ（２０７）にアクセスする。
【００５６】
２０９はＲＡＭであり、ＣＰＵ（２０５）が実行する命令や画像データ等を含んでいるワークメモリである。また、ＲＡＭ（２０９）は入出力装置のためのデータバッファとしても使用される。ＣＰＵは、ＲＡＭコントローラ（２０８）を介して、ＲＡＭ（２０９）にアクセスする。
【００５７】
２０４はＤＭＡＣであり、ＲＡＭ（２０９）上でパケット形式で管理されている画像データを本実施例の画像処理装置（２００）内のデータメモリ（２０３）に転送したり、本実施例の画像処理装置（２００）内のデータメモリ（２０３）に存在する画像データをＲＡＭ（２０９）内にパケットの形式に変換して、データ転送することができる。
【００５８】
次に、本実施例における主メモリ内のニ次元画像データについて説明する。
【００５９】
本発明において、画像データは、Ｘ方向３２ピクセル、Ｙ方向３２ピクセルの矩形領域（これ以降Ｔｉｌｅ　と呼ぶ）の単位で分割され（図４参照）、メモリ上で管理され、処理を施される。
【００６０】
しかし、Ｔｉｌｅ　は生の画像データだけなので、メモリ上で効率的に管理するために画像データに関する付加情報である固定長のヘッダー情報を含んだパケットとしてメモリ中に保持される。このパケットの形式を図５に示す。
【００６１】
一つのパケットは、固定長のヘッダー情報（５００）および３２ｘ３２ピクセルの画像データ（５０１）から構成される。
【００６２】
また図６に示すように、主メモリ内の画像データ全体は、それぞれのパケットへのポインタ（メモリ内のアドレス）とそのパケット長の組の配列である一つのパケットテーブル（６００）で表すことができる。
【００６３】
ヘッダー情報（５００）に含まれるパケット番号はＴｉｌｅ　番号と一致しており、Ｘ方向のＴｉｌｅ座標（５０３）とＹ方向の　Ｔｉｌｅ　座標（５０２）の組み合わせとして、ＹｎＸｎで表わすことができる。
【００６４】
これらパケットには、画像データが圧縮されている場合と圧縮されていない場合の両方がある。また、本実施例においては、圧縮方法として、ＪＰＥＧ　圧縮を使用することが前提である。
【００６５】
圧縮・非圧縮の区別は、ヘッダー情報内の　ＣｏｍｐｒｅｓｓＦｌａｇ　（５０４）で示される。
【００６６】
ＩｍａｇｅＤａｔａＢｙｔｅＬｅｎｇｔｈ　（５０５）は画像データのトータルバイト数を表している。
【００６７】
パケットテーブル（６００）において、ＰａｃｋｅｔＳｔａｒｔＡｄｄｒｅｓｓ　（６０１）は、一つのパケットへのポインター（先頭アドレス）であり、ＰａｃｋｅｔＬｅｎｇｈ　（６０２）は、ヘッダー情報を含んだ一つのパケット全体のバイト数である。
【００６８】
パケットテーブルの内容は、Ｘ方向のＴｉｌｅ　順に並んでおり、Ｔｉｌｅ　座標の組では、（Ｙｎ，　Ｘｎ）　＝　（０００，　０００）、（０００，　００１）、（０００，　００２）、、、（０００，　Ｘｎの最大値）、（００１，０００）、（００１，　００１）、、、、（Ｙｎの最大値，　Ｘｎの最大値）の順に並んでいる。
【００６９】
次に、本実施例の画像処理装置を使用しる場合における、処理全体のフローを説明する。
【００７０】
まず、本実施例の画像処理装置を持つシステム内のＲＡＭ（ＲＯＭ　でも可能）内には、命令実行ユニット（２０１）を使用して、様様な画像処理を行うためにあらかじめ用意された命令実行ユニット用のプログラム（命令列）が存在する。このプログラムは命令実行ユニット専用の命令列であるので、ＣＰＵ（２０５）が実行することはない。
【００７１】
まず、ＣＰＵ（２０５）は、命令実行ユニットが主メモリ中のどのアドレスから命令を読み出すかを指定した後、命令実行ユニットを起動する。
【００７２】
（本実施例の画像処理装置では、上記開始アドレスを指定したり、命令実行ユニットを起動するためのＩ／Ｏレジスタ群を備えている。）
命令実行ユニットは、ＣＰＵからの起動により、命令実行を開始し、それによって自らのハードウェア資源を初期化した後、ＤＭＡＣ（２０４）からの割り込み信号の通知を待って、命令実行を停止する命令を実行し、ＤＭＡＣによる主メモリからのデータ転送に備える。
【００７３】
ＣＰＵ（あるいはＣＰＵが実行するプログラム）は、ＤＭＡＣ（２０４）を使用して、本実施例の画像処理装置内のデータメモリ（２０３）内に、主メモリのパケットで管理されている画像データをラスター形式に変換して、データ転送する。
【００７４】
１回のＤＭＡ転送によって、転送されるデータの容量は、データメモリ（２０３）の容量に依存して、変更可能であるが、本実施例では最低容量である１パケット分のデータを想定している。もちろん、データメモリの容量を増加することができれば、転送するパケットの数を増やすことができることは言うまでもない。
【００７５】
（本実施例で説明されるＤＭＡＣは、ＤＭＡによるデータ転送のために必要な、パケットの開始アドレス、パケットのサイズ、転送の方向（主メモリからデータ、あるいはその逆）、データメモリ内の転送先オフセット等の制御するＩ／Ｏレジスタ群を含み、プログラム可能である。）
主メモリ内の一つのパケットがデータメモリに転送されると、ＤＭＡＣからデータ転送完了を通知する信号が命令実行ユニットに届き、停止していた命令実行ユニットはこの信号により、その実行を再開する。
【００７６】
本実施例の画像装置において、ＣＰＵは命令実行ユニットが実行すべき画像処理の種類を指定することが可能であり、この指令に従って、命令実行ユニットは、命令実行再開後に行うべき関数（ルーチン）へジャンプし、必要な画像処理プログラムを実行する。この画像処理においては、主メモリからＤＭＡ転送されてきたラスター形式の画像データを入力とし、処理結果（ラスター形式）をデータメモリに出力する。
【００７７】
データメモリ内のすべての画像データを処理すると、命令実行ユニットは、バスインタフェースを介して、ＣＰＵに処理完了を通知する。
【００７８】
（この通知の方法は、本画像処理装置を制御するためのＩ／Ｏレジスタ群にステータス用のレジスタを設けても良いし、割り込みを利用してＣＰＵに直接通知しても良い。）
その後、命令実行ユニットは、再度ＤＭＡＣからのデータ転送完了の割り込み信号の通知を待って、停止状態になる。
【００７９】
本画像処理装置からの処理完了の通知が届くと、ＣＰＵ（あるいはＣＰＵの実行するプログラム）は、再びＤＭＡＣを起動し、今度はデータメモリから主メモリに対して、ＤＭＡ転送を行う。この転送において、データメモリ中のラスター形式の画像データは、パケット形式に変換され、主メモリ中の指定されたアドレスに転送される。この一連のデータ転送において、入力用（画像処理前）の画像データおよび出力用（画像処理後）の画像データは、本実施例で説明したように、パケットとそれを管理するパケットテーブルで実現されており、ＣＰＵは画像処理の前に、これらパケットテーブルのアドレスをＤＭＡＣに与えている。
【００８０】
次に、ＣＰＵは主メモリ中に存在する次のパケットに対して、同様なＤＭＡ転送を行う。このＤＭＡ転送が完了すると、ＤＭＡＣから命令実行ユニットに転送完了信号が通知され、命令実行を停止していた命令実行ユニットは再度実行を開始し、画像処理を施し、処理完了をＣＰＵに通知し、自分は再度停止状態にる。
【００８１】
上記の一連の動作を主メモリ中のパケットに分割された画像データすべてに対して施すことにより、主メモリの画像データを処理することが可能となる。
【００８２】
（他の実施例）
本発明の第２の実施例を図３に示す。
【００８３】
本実施例では、本発明の画像処理装置（３００、３０５）がシステムバス（３１５）に接続している場合を説明する。
【００８４】
システム内に、本発明の画像処理装置が複数存在する場合、この画像処理装置はさらに効果を発揮する。
【００８５】
前実施例と同様に、ＲＡＭ（３１４）あるいはＲＯＭ（３１２）内には、前もって用意されている本発明の画像処理装置に内臓される命令実行ユニット用の命令列が存在する。ＣＰＵは命令実行ユニットＡ（３０１）および命令実行ユニットＢ（３０６）に対して、同じ実行開始アドレスを指定し、２つの命令実行ユニットをほぼ同時に起動する。命令実行ユニットＡ（３０１）と命令実行ユニットＢ（３０６）はほぼ同時にその実行を開始することができる。
【００８６】
その後、前実施例と同様に、ＲＡＭ（あるいは主メモリ）中に存在するパケット形式の画像データを、それぞれのデータメモリＡ（３０３）およびデータメモリＢ（３０８）にラスター形式に変換して、ＤＭＡ転送を行うことができる。
【００８７】
また、本発明では、その画像データのメモリ中のデータ管理方法から自然に、画像を分割して、分割された画像データに対して、並列にデータ処理を施すことが可能になっている。そのため、本実施例では、主メモリ中のパケット形式の画像データを２分割することができ、２分割された上半分の画像データに対して、画像処理装置Ａ（３００）を使用し、画像処理を進めることができ、同様に２分割された下半分の画像データに対して、画像処理装置Ｂ（３０５）を使用することが可能なるだけでなく、画像処理装置Ａと画像処理装置Ｂをほとんど並列に動作させ、ほぼ同時に１パケットずつ画像処理することができる構造になっている。
【００８８】
すなわち、本実施例では、画像データに対して、同じ画像処理を行う場合、前実施例に比べ、処理性能をほぼ２倍にすることが可能になるのである。
【００８９】
また、本画像処理装置においては、命令キャッシュメモリを各装置毎に持つ構造を取っているため、ループ構造の多い画像処理アルゴリズムをソフトウェアで実行するにおいて、キャッシュメモリの効果を期待することができるので、本発明の画像処理装置内の複数の命令実行ユニットの命令フェッチによるバスアクセスの過負荷によるボトルネックをある程度解消できる。
【００９０】
また、本発明の画像処理装置をシステムの２個以上含む追加することによって、追加する個数に応じて、スケーラブルな処理性能の増加を期待できることは言うまでもない。
【００９１】
また、本実施例において、ＣＰＵが命令実行ユニットＡ（３０１）と命令実行ユニットＢ（３０６）に対し、異なる画像処理アルゴリズムを与えることもできる。
【００９２】
まずＣＰＵからの指令で、命令実行ユニットＡがある種類の画像処理アルゴリズムを実行し、画像処理装置Ａによる画像処理の一部が済んだ時点（処理後の画像データが主メモリに書き戻される）において、ＣＰＵは次に命令実行ユニットＢを起動し、命令実行ユニットＡとは異なる種類の画像処理アルゴリズムを実行させる。
【００９３】
このとき、命令実行ユニットＢの入力画像データは、主メモリに存在する命令実行ユニットＡの出力結果の画像データ領域を指定する。この結果、本発明の画像処理装置においては、命令実行ユニットＡと命令実行ユニットＢがパイプライン的に動作していくようにＣＰＵで制御することができるようになる。
【００９４】
このように本発明の画像処理装置を制御すれば、２種類の画像処理アルゴリズムをある画像データに対して、施す場合においても、ある程度の処理性能の向上を図ることができる。
【００９５】
また、本発明の画像装置をシステムの２個以上含む追加することによって、追加する個数に応じて、画像処理パイプラインの数をスケーラブルに増加することができることは言うまでもないので、画像処理パスが２回以上もある複雑な画像処理アルゴリズムも簡単に実現できる。
【００９６】
【発明の効果】
以上説明したように、本発明によれば、画像圧縮に適した画像処理システムと通常の画素（ラスター）に基づく画像システム間のデータ変換の負荷を減らすだけでなく、拡張性の向上させることが可能な画像処理サブシステム、システムあるいはソフトウェア、ＤＭＡＣ、ＤＭＡＣ制御ソフトウェア、および画像処理装置を実現することができる。
【００９７】
すなわち、画像圧縮処理に適した画像データ管理（Ｔｉｌｅ　形式）を基本とする画像処理システムと、通常の画素単位（ラスター形式）を基本とする画像処理システム間をＤＭＡ転送できるようなＤＭＡＣと、本実施例で説明した画像処理装置をスムーズに結合させることにより、ソフトウェアによる画像処理システムを実現することができるので、ハードウェアによる画像処理の実装では実現できなかった柔軟な画像処理を行うことが可能になる。
【００９８】
また、本発明の画像処理装置を複数個システムに接続し、同時に動作させることにより単一な画像処理アルゴリズムに対しては、スケーラブルな画像処理性能の向上を実現することができるし、複数の画像処理アルゴリズムをそれぞれの画像処理装置で実行し、各装置による処理をパイプライン的に制御することもできる。
【００９９】
また、画像処理アルゴリズムをソフトウェアで実現しているため、ソフトウェアだけを更新することだけで、新規の画像処理アルゴリズムにも、少ない修正で対応可能である。
【図面の簡単な説明】
【図１】は、本発明の代表的な実施例を示すためのハードウェア構成図である。
【図２】は、本発明の画像処理装置をシステムに組み込んだ場合のハードウェア構成図である。
【図３】は、本発明の画像処理装置を２個システムに組み込んだ場合のハードウェア構成図である。また、この例では２個の場合を説明しているが、それ以上個数を組み込む場合も同様であり、システムに組み込まれる個数には依存しない。
【図４】は、本発明における画像データの分割管理方法の概念図である。
【図５】は、本発明における主メモリ中の個々のパケットの形式を表す図である。
【図６】は、本発明において、個々パケットを管理するためのパケットテーブルの構成を表す図である。
【符号の説明】
１００　画像処理装置
１０１　命令実行ユニット
１０２　命令キャッシュメモリ
１０３　バスインターフェースユニット
１０４　（ローカル）データメモリ
１０５　ＤＭＡＣ（Ｄｉｒｅｃｔ　Ｍｅｍｏｒｙ　Ａｃｃｅｓｓ　Ｃｏｎｔｒｏｌｌｅｒ）
１０６　システムバス
２００　画像処理装置
２０１　命令実行ユニット
２０２　命令キャッシュメモリ
２０３　（ローカル）データメモリ
２０４　ＤＭＡＣ（Ｄｉｒｅｃｔ　Ｍｅｍｏｒｙ　Ａｃｃｅｓｓ　Ｃｏｎｔｒｏｌｌｅｒ）
２０５　ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）
２０６　ＲＯＭ　コントローラ
２０７　ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）
２０８　ＲＡＭ　コントローラ
２１９　ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）
２１０　システムバス
３００　画像処理装置Ａ
３０１　命令実行ユニットＡ
３０２　命令キャッシュメモリＡ
３０３　（ローカル）データメモリＡ
３０４　ＤＭＡＣ（Ｄｉｒｅｃｔ　Ｍｅｍｏｒｙ　Ａｃｃｅｓｓ　Ｃｏｎｔｒｏｌｌｅｒ）
３０５　画像処理装置Ｂ
３０６　命令実行ユニットＢ
３０７　命令メモリキャッシュメモリＢ
３０８　（ローカル）データメモリＢ
３０９　ＤＭＡＣ（Ｄｉｒｅｃｔ　Ｍｅｍｏｒｙ　Ａｃｃｅｓｓ　Ｃｏｎｔｒｏｌｌｅｒ）
３１０　ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）
３１１　ＲＯＭコントローラ
３１２　ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）
３１３　ＲＡＭコントローラ
３１４　ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）
３１５　システムバス
５００　パケットヘッダー
５０１　画像データ（パディングを含む）
５０２　パケットヘッダー内のＹ座標のパケットＩＤ
５０３　パケットヘッダー内のＸ座標のパケットＩＤ
５０４　パケットヘッダー内のＣｏｍｐｒｅｓｓＦｌａｇ（圧縮・非圧縮識別フラグ）
５０５　パケットヘッダー内のＩｍａｇｅＤａｔａＢｙｔｅＬｅｎｇｔｈ（画像データのバイト長）
６００　（個々のパケットを管理する）パケットテーブル
６０１　ＰａｃｋｅｔＡｄｄｒｅｓｓＰｏｉｎｔｅｒ（個々のパケットのメモリアドレス）
６０２　ＰａｃｋｅｔＬｅｎｇｔｈ（個々のパケットのバイト長）
【図１】
2004021702.tif 000003
【図２】
2004021702.tif 000004
【図３】
2004021702.tif 000005
【図４】
2004021702.tif 000006
【図５】
2004021702.tif 000007
【図６】
2004021702.tif 000008