(57)【特許請求の範囲】
【請求項１】
画像処理に関する演算を実行する本体部と、前記本体部に接続され、前記本体部とともに前記演算を実行するアクセラレータ部と、を有する演算装置において、
前記アクセラレータ部は、
前記本体部に着脱自在な回路基板として構成されており、当該回路基板ごとに、複数種類の演算についての当該アクセラレータ部の各回路基板別かつ各演算別の処理能力を示す情報が予め記憶された記憶手段を備え、
前記本体部は、前記画像処理に必要な演算の種類を認識する認識手段と、
前記認識手段によって認識された種類の演算についての前記アクセラレータ部の処理能力に関する情報を、前記記憶手段から取得する取得手段と、
前記取得手段によって取得された前記処理能力に関する情報に応じて前記本体部と前記アクセラレータ部との間の前記画像処理の分担を決定する決定手段と、を備えることを特徴とする演算装置。
【請求項２】
前記アクセラレータ部は、プログラム可能なデジタル信号プロセッサを有し、前記アクセラレータ部の処理能力は、プログラムされる内容に応じて異なることを特徴とする請求項1に記載の演算装置。
【請求項３】
前記決定手段は、前記認識手段によって認識された種類の演算についての前記本体部および前記アクセラレータ部の処理能力を比較することによって前記画像処理の分担を決定することを特徴とする請求項１に記載の演算装置。
【請求項４】
前記決定手段は、前記画像処理に必要な複数種類の演算の中から前記本体部と前記アクセラレータ部のそれぞれが実行すべき演算の種類を定めることによって前記画像処理の分担を決定することを特徴とする請求項１に記載の演算装置。
【請求項５】
前記決定手段は、前記本体部と前記アクセラレータ部のそれぞれが処理すべきデータ量を定めることによって前記画像処理の分担を決定することを特徴とする請求項１に記載の演算装置。
【請求項６】
前記決定手段は、前記本体部および前記アクセラレータ部の処理能力の比率と等しくなるように、前記本体部と前記アクセラレータ部のそれぞれが処理すべきデータ量の比率を定めることを特徴とする請求項５に記載の演算装置。
【請求項７】
さらに、前記本体部は、前記画像処理の内容に応じて、前記画像処理に必要な複数種類の演算の中から前記本体部と前記アクセラレータ部のそれぞれが実行すべき演算の種類を定める第１の処理と、前記本体部と前記アクセラレータ部のそれぞれが処理すべきデータ量を定める第２の処理のいずれかを選択する選択手段を有し、前記決定手段は、前記選択手段によって選択された処理にしたがって画像処理の分担を決定することを特徴とする請求項１に記載の演算装置。
【請求項８】
前記画像処理が画像データのＪＰＥＧ圧縮処理である場合には、前記選択手段は、前記第１の処理を選択することを特徴とする請求項７に記載の演算装置。
【請求項９】
画像処理に関する演算を実行する本体部と、前記本体部に接続され、前記本体部とともに前記演算を実行するアクセラレータ部とを有し、当該アクセラレータ部が、前記本体部に着脱自在な回路基板として構成されており、当該回路基板ごとに、複数種類の演算についての当該アクセラレータ部の各回路基板別かつ各演算別の処理能力を示す情報が含まれるデータテーブルを有する演算装置の制御方法において、
前記画像処理に必要な演算の種類を認識するステップと、
複数種類の演算についての前記アクセラレータ部の各演算別の処理能力を示す情報が含まれる前記データテーブルを参照して、前記画像処理に必要な種類の演算についての前記アクセラレータ部の処理能力に関する情報を取得するステップと、
取得された前記処理能力に関する情報に応じて前記本体部と前記アクセラレータ部との間の前記画像処理の分担を決定するステップと、を有することを特徴とする演算装置の制御方法。
【請求項１０】
画像処理に関する演算を実行する本体部と、前記本体部に接続され、前記本体部とともに前記演算を実行するアクセラレータ部とを有し、当該アクセラレータ部が、前記本体部に着脱自在な回路基板として構成されており、当該回路基板ごとに、複数種類の演算についての当該アクセラレータ部の各回路基板別かつ各演算別の処理能力を示す情報が含まれるデータテーブルを有する演算装置を制御するための制御プログラムにおいて、
前記画像処理に必要な演算の種類を認識する手順と、
複数種類の演算についての前記アクセラレータ部の各演算別の処理能力を示す情報が含まれる前記データテーブルを参照して、前記画像処理に必要な種類の演算についての前記アクセラレータ部の処理能力に関する情報を取得する手順と、
取得された前記処理能力に関する情報に応じて前記本体部と前記アクセラレータ部との間の前記画像処理の分担を決定する手順と、をコンピュータに実行させる制御プログラム。
【請求項１１】
請求項１０に記載の制御プログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理に関する演算を実行する演算装置、演算装置の制御方法、制御プログラム、および制御プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
高速に画像処理を実行するために、アクセラレータとよばれる回路基板を本体部に取り付けて、本体部およびアクセラレータのそれぞれに設けられた演算器（プロセッサ）間で処理を分担して実行する演算装置が知られている。
【０００３】
複数の演算器を使用して処理を実行する場合、処理の効率化および高速化を実現するためには、複数の演算器間で処理を適切に分担する技術が重要であり、従来から、種々の分担方法が提案されている。たとえば、特開平１０−１７１７６６号公報には、複数の演算器の中で特定の演算器に負荷が集中することを回避するように処理を分担するアクセラレータが開示されている。
【０００４】
一方、画像処理用の演算器自体についても種々の開発が行われている。近年では、ＡＳＩＣ（application specific integrated circuit）などの専用ＬＳＩを用いるかわりに、プログラム可能なデジタルシグナルプロセッサであるプログラマブルＤＳＰによって画像処理に関する演算を実行することも可能となっている。このようなプログラマブルＤＳＰを採用する場合、ＤＳＰにプログラムされる内容を変更することによって、特定の種類の演算についての処理能力を高めた演算装置を簡単に実現することができる。
【０００５】
しかしながら、演算器としてプログラマブルＤＳＰが設けられたアクセラレータを用いて演算装置を構成する場合、上記公報記載の技術のように、負荷の集中を回避するように処理を分担するのみでは、プログラム内容が変更されることによって特定の種類の演算についての処理能力が変化するＤＳＰの特性を考慮して、本体部とアクセラレータとの間の処理を分担することが難しい。
【０００６】
また、ＤＳＰのプログラム内容が変更される毎に、本体部とアクセラレータとの間の処理分担を最適化することを目的として本体部のハードウエア構成を変更するのでは、本体部の汎用性がなくなり、製造コストの増加を招くおそれがある。
【０００７】
さらに、アクセラレータが改良されて、特定の種類の演算についてアクセラレータの処理の能力が変更された場合にも、本体部のハードウエア構成を変更することなく、アクセラレータの能力を活用することが難しい。
【０００８】
【発明が解決しようとする課題】
本発明は、以上の問題点を解決するためになされたものである。
【０００９】
したがって、本発明の目的は、画像処理に必要な演算についてのアクセラレータの処理能力を考慮して、本体部とアクセラレータ部との間で処理の分担を決定することができる演算装置を提供することである。
【００１０】
本発明の他の目的は、アクセラレータに設けられる演算器にプログラムされる内容が変更された場合であっても、本体部のハードウエア構成を変更することなく、本体部とアクセラレータとの間の処理の分担を最適化することができる演算装置を提供することである。
【００１１】
【課題を解決するための手段】
以上の課題を解決するための手段は、以下のように実現される。
【００１２】
（１）本発明の演算装置は、画像処理に関する演算を実行する本体部と、前記本体部に接続され、前記本体部とともに前記演算を実行するアクセラレータ部と、を有する演算装置において、前記アクセラレータ部は、前記本体部に着脱自在な回路基板として構成されており、当該回路基板ごとに、複数種類の演算についての当該アクセラレータ部の各回路基板別かつ各演算別の処理能力を示す情報が予め記憶された記憶手段を備え、前記本体部は、前記画像処理に必要な演算の種類を認識する認識手段と、前記認識手段によって認識された種類の演算についての前記アクセラレータ部の処理能力に関する情報を、前記記憶手段から取得する取得手段と、前記取得手段によって取得された前記処理能力に関する情報に応じて前記本体部と前記アクセラレータ部との間の前記画像処理の分担を決定する決定手段と、を備えることを特徴とする。
【００１４】
（２）上記のアクセラレータ部は、プログラム可能なデジタル信号プロセッサを有し、前記アクセラレータ部の処理能力は、プログラムされる内容に応じて異なる。
【００１５】
（３）上記の決定手段は、前記認識手段によって認識された種類の演算についての前記本体部および前記アクセラレータ部の処理能力を比較することによって前記画像処理の分担を決定する。
【００１６】
（４）上記（１）の決定手段は、前記画像処理に必要な複数種類の演算の中から前記本体部と前記アクセラレータ部のそれぞれが実行すべき演算の種類を定めることによって前記画像処理の分担を決定する。
【００１７】
（５）上記（１）の決定手段は、前記本体部と前記アクセラレータ部のそれぞれが処理すべきデータ量を定めることによって前記画像処理の分担を決定する。
【００１８】
（６）上記（５）の決定手段は、前記本体部および前記アクセラレータ部の処理能力の比率と等しくなるように、前記本体部と前記アクセラレータ部のそれぞれが処理すべきデータ量の比率を定める。
【００１９】
（７）上記（１）の本体部は、前記画像処理の内容に応じて、前記画像処理に必要な複数種類の演算の中から前記本体部と前記アクセラレータ部のそれぞれが実行すべき演算の種類を定める第１の処理と、前記本体部と前記アクセラレータ部のそれぞれが処理すべきデータ量を定める第２の処理のいずれかを選択する選択手段を有し、前記決定手段は、前記選択手段によって選択された処理にしたがって画像処理の分担を決定する。
【００２０】
（８）上記（７）の画像処理が画像データのＪＰＥＧ圧縮処理である場合には、前記選択手段は、前記第１の処理を選択する。
【００２１】
（９）本発明の制御方法は、画像処理に関する演算を実行する本体部と、前記本体部に接続され、前記本体部とともに前記演算を実行するアクセラレータ部とを有し、当該アクセラレータ部が、前記本体部に着脱自在な回路基板として構成されており、当該回路基板ごとに、複数種類の演算についての当該アクセラレータ部の各回路基板別かつ各演算別の処理能力を示す情報が含まれるデータテーブルを有する演算装置の制御方法において、前記画像処理に必要な演算の種類を認識するステップと、複数種類の演算についての前記アクセラレータ部の各演算別の処理能力を示す情報が含まれる前記データテーブルを参照して、前記画像処理に必要な種類の演算についての前記アクセラレータ部の処理能力に関する情報を取得するステップと、取得された前記処理能力に関する情報に応じて前記本体部と前記アクセラレータ部との間の前記画像処理の分担を決定するステップと、を有することを特徴とする。
【００２２】
（１０）本発明の制御プログラムは、画像処理に関する演算を実行する本体部と、前記本体部に接続され、前記本体部とともに前記演算を実行するアクセラレータ部とを有し、当該アクセラレータ部が、前記本体部に着脱自在な回路基板として構成されており、当該回路基板ごとに、複数種類の演算についての当該アクセラレータ部の各回路基板別かつ各演算別の処理能力を示す情報が含まれるデータテーブルを有する演算装置を制御するための制御プログラムにおいて、前記画像処理に必要な演算の種類を認識する手順と、複数種類の演算についての前記アクセラレータ部の各演算別の処理能力を示す情報が含まれる前記データテーブルを参照して、前記画像処理に必要な種類の演算についての前記アクセラレータ部の処理能力に関する情報を取得する手順と、取得された前記処理能力に関する情報に応じて前記本体部と前記アクセラレータ部との間の前記画像処理の分担を決定する手順と、をコンピュータに実行させる。
【００２３】
（１１）本発明のコンピュータ読み取り可能な記録媒体は、上記（１０）に記載の制御プログラムを記録したことを特徴とする。
【００２４】
【発明の実施の形態】
以下、添付した図面を参照しつつ、本発明の実施の形態を説明する。
【００２５】
図１は、本発明の演算装置を適用した画像処理装置の構成を示すブロック図である。この画像処理装置は、光電変換素子であるＣＣＤによって受信された画像データを処理する装置である。
【００２６】
画像処理装置は、本体部１００とアクセラレータ部２００とから構成される。
【００２７】
本体部１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、記憶部１０４、操作パネル１０５、ＣＣＤ１０６、主演算器１０７、インタフェース１０８を有する。
【００２８】
ＣＰＵ１０１は、各部の制御を行う。ＲＯＭ１０２は、ＣＰＵ１０１によって実行される制御プログラムを記憶する。ＲＡＭ１０３は、演算用のワーキングメモリであり、画像データを一時記憶するバッファとしても使用される。記憶部１０４は、たとえば、不揮発性メモリとハードディスクとから構成される。記憶部１０４は、保存が必要な各種設定に関する情報および画像データを記憶する。ＲＯＭ１０２または記憶部１０４には、複数種類の演算についての本体部２００の処理能力に関する情報を含むデータテーブルが記憶されている。
【００２９】
ＣＣＤ１０６は、受像に使用される光電変換素子である。主演算器１０７は、本体部１００に設けられたプロセッサエレメントであり、画像処理に必要な種々の演算を実行する。主演算器１０７は、たとえばプログラマブルＤＳＰ（digital signal processor）で構成されている。この画像処理には、画像データの補正、加工、および圧縮などの種々の処理が含まれる。インタフェース１０８は、アクセラレータ部２００と通信するためのインタフェースである。このインタフェース１０８は、アクセラレータ部２００を演算装置の本体部１００に接続するためのコネクタであり、好適には、アクセラレータ部２００が挿入されるスロットである。
【００３０】
アクセラレータ部２００は、画像処理装置の演算処理の性能を強化するためにインタフェース１０８に接続される。好適には、アクセラレータ部２００は、本体部１００のインタフェース１０８に着脱自在な回路基板として構成される。
【００３１】
インタフェース２０１は、本体部１００と通信するためのインタフェースである。アクセラレータ側演算器２０２は、アクセラレータ部２００に設けられたプロセッサエレメントであり、たとえば、プログラマブルＤＳＰで構成されている。このアクセラレータ側演算器２０２は、画像処理などの特定の分野に特化した補助演算器であり、本体部１００に設けられた主演算器１０７とともに演算を実行する。テーブルＲＯＭ２０３は、複数種類の演算についてアクセラレータ部２００の処理能力に関する情報を含むデータテーブルを予め記憶する。
【００３２】
図２は、本体部１００とアクセラレータ部２００との関係を模式的に示す図である。図２に示されるように、一つの本体部１００に対して、複数種類のアクセラレータ部２００ａと２００ｂが準備されている。アクセラレータ部２００ａまたは２００ｂのどちらか一方を選択して本体部１００に接続することができる。より具体的には、アクセラレータ部２００ａおよび２００ｂは、相互にプログラム内容が異なるプログラマブルＤＳＰをアクセラレータ側演算器２０２として有し、ハードウエア構成が共通する回路基板である。この回路基板として構成されるアクセラレータ部２００ａまたは２００ｂを拡張カードとして、スロットであるインタフェース１０８に自由に抜き差しすることが可能である。
【００３３】
アクセラレータ部２００ａを本体部１００に接続した場合とアクセラレータ部２００ｂを本体部１００に接続した場合とでは、アクセラレータ側演算器２０２の特性の相違に起因して画像処理に関する演算についての処理能力が異なる。したがって、画像処理装置の使用目的または要求仕様に応じてアクセラレータ部２００ａまたは２００ｂを選択することによって、最適な演算処理が実現される。
【００３４】
以上のように構成される本発明の演算装置を適用した画像処理装置は、以下のように処理を行う。
【００３５】
図３は、画像処理装置の処理内容を示すフローチャートである。図３のフローチャートに示されるアルゴリズムは、制御プログラムとしてＲＯＭ１０２に記憶されており、ＣＰＵ１０１によって実行される。
【００３６】
ステップＳ１００では、電源がＯＮされるのを待って、種々の設定が初期化される。この結果、たとえば、操作パネル１０５の画面が初期化される。また、図１に示される各部１０１〜１０８および２０１〜２０３の動作チェックが実行される。
【００３７】
ステップＳ１０１では、アクセラレータ部２００のテーブルＲＯＭ２０３に予め記憶されているデータテーブルが参照される。
【００３８】
図４および図５は、それぞれアクセラレータ部２００ａおよび２００ｂのテーブルＲＯＭ２０３に記憶されているデータテーブルの一例を示す。また、図６は、本体部のＲＯＭ１０２または記憶部１０４に記憶されているデータテーブルの一例を示す。
【００３９】
図４に示されるデータテーブルには、複数種類の演算についてアクセラレータ部２００ａの処理能力に関する情報が含まれている。具体的には、加算演算、乗算演算、積和演算、ラプラシアンフィルタ演算、および離散コサイン変換の演算（以下「ＤＣＴ演算」という）などの複数種類の演算についてアクセラレータ部２００ａの各演算別の処理能力に関する情報がテーブルＲＯＭ２０３に予め記憶されている。処理能力は、１秒間あたりに実行できる演算処理の基本単位の数で定義される。図４、図５および図６の場合には、ＭＯＰＳ（Millions of Operations Per Second）という単位で処理能力が表されている。
【００４０】
同様に、図５に示されるデータテーブルには、複数種類の演算についてアクセラレータ部２００ｂの処理能力に関する情報が含まれている。また、図６に示されるテーブルデータには、複数種類の演算について本体部１００の処理能力に関する情報が含まれている。
【００４１】
積和演算とは、加算と乗算の双方を含む演算である。ＤＣＴ演算は、後述されるようにＪＰＥＧ圧縮処理に必要な演算である。ラプラシアンフィルタ演算は、後述されるように画像に含まれる輪郭線（エッジ）の検出処理やエッジの強調処理に必要な空間フィルタ演算である。
【００４２】
アクセラレータ部２００ａが本体部１００に接続されている場合には、図４に示されるデータテーブルが参照され、アクセラレータ部２００ｂが本体部１００に接続されている場合には、図５に示されるデータテーブルが参照される。
【００４３】
図３のステップＳ１０２では、操作パネル１０５からの所定の信号を受信することによって、実行すべき画像処理についての指示が受信される。たとえば、操作パネル１０５からの信号には、受像の指示信号、画像データの編集の指示信号、および、その他の指示信号が含まれる。
【００４４】
ステップＳ１０３では、実行が指示された画像処理に必要な演算の種類が認識される。また、認識された種類の演算についてのアクセラレータ部２００ａまたは２００ｂの処理能力に関する情報が、テーブルＲＯＭ２０３に予め記憶されていたデータテーブル（図４または図５参照）から取得される。また、認識された種類の演算についての本体部１００の処理能力に関する情報についても、ＲＯＭ１０２または記憶部１０４に予め記憶されていたデータテーブル（図６参照）から取得される。
【００４５】
ステップＳ１０４では、受信した画像処理を実行するために必要な各部の入出力設定が行われる。
【００４６】
ステップＳ１０５では、ステップＳ１０３において取得されたアクセラレータ部２００の処理能力に関する情報に応じて本体部１００とアクセラレータ部２００との間で画像処理の分担が決定される。
【００４７】
ステップＳ１０６では、決定された分担にしたがって、本体部２００の主演算着１０７とアクセラレータ部２００のアクセラレータ側演算器２０２に必要な演算を実行させる。
【００４８】
ステップＳ１０７では、すべての画像処理が終了したか否かが判断される。すべての画像処理が終了するのを待って（ステップＳ１０７：ＮＯ）、一連の処理が終了する。
【００４９】
図７は、図３のステップＳ１０５における本体部１００とアクセラレータ部２００との処理分担を決定する処理を示すフローチャートである。
【００５０】
ステップＳ２００では、指示された画像処理が、画像データのＪＥＰＧ圧縮処理であるか否かが判断される。ここで、ＪＰＥＧ圧縮処理は、静止画像データの圧縮処理の一つであり、特に写真などの自然画の圧縮に適する。画像処理が画像データのＪＰＥＧ圧縮処理である場合には（ステップＳ２００：ＹＥＳ）、ステップＳ２０１の処理が実行され、ＪＰＥＧ圧縮処理でない場合には（ステップＳ２００：ＹＥＳ）、ステップＳ２０１の処理がスキップされる。
【００５１】
ステップＳ２０１では、ＪＰＥＧ圧縮処理に適合した処理分担が決定される。
【００５２】
ステップＳ２０２では、指示された画像処理がエッジ検出処理であるか否かが判断される。エッジ検出処理は、画像中の画素値が急激に変化する部分を検出する処理である。画像処理がエッジ検出処理である場合には（ステップＳ２０２：ＹＥＳ）、ステップＳ２０３の処理が実行され、エッジ検出処理でない場合には（ステップＳ２０２：ＮＯ）、ステップＳ２０３の処理がスキップされる。
【００５３】
ステップＳ２０３では、エッジ検出処理に適合した処理分担が決定される。
【００５４】
ステップＳ２０４では、指示された画像処理が合成処理であるか否かが判断される。画像処理が合成処理である場合には（ステップＳ２０４：ＹＥＳ）、ステップＳ２０５の処理が実行され、合成処理でない場合には（ステップＳ２０４：ＮＯ）、ステップＳ２０５の処理がスキップされる。
【００５５】
ステップＳ２０５では、合成処理に適合した処理分担が決定される。ここで、合成処理とは、オーバーレイ処理であり、複数の画像を重ね合わせる処理である。たとえば、合成処理は、対象となる画像に線画や文字を重ねて表示するために用いられる。
【００５６】
ステップＳ２０６では、指示された画像処理が、その他のアクセラレータを使用する所定の処理であるか否かが判断される。画像処理が、その他のアクセラレータを使用する所定の処理である場合には（ステップＳ２０６：ＹＥＳ）、ステップＳ２０７の処理が実行され、所定の処理でない場合には（ステップＳ２０６：ＮＯ）、ステップＳ２０７の処理がスキップされる。
【００５７】
ステップＳ２０７では、図３のステップＳ１０３で認識された種類の演算についての本体部およびアクセラレータ部の処理能力に基づき、処理分担が決定される。
【００５８】
ステップＳ２０８では、アクセラレータ部２００が画像処理のために使用されない場合に該当するので、本体部１００とアクセラレータ部２００との処理分担は決定されない。
【００５９】
なおステップ２００、ステップＳ２０２、ステップ２０４、およびステップＳ２０６の処理を実行する順序を適宜変更することもできる。
【００６０】
次に各画像処理に適合した処理分担の決定処理の詳細を説明する。
【００６１】
まず、指示された画像処理がエッジ検出処理である場合の処理分担の決定処理について説明する。
【００６２】
指示された画像処理がエッジ検出処理である場合には、図３のステップＳ１０３において、エッジ検出処理に必要な演算として上述したラプラシアンフィルタ演算が認識されている。
【００６３】
図８は、エッジ検出処理と画像データとの関係を示す図である。
【００６４】
本実施形態では、５×５画素のブロックを単位とするラプラシアンフィルタ演算を用いたエッジ検出処理が実行される。具体的には、ブロックの中心にある注目画素とその近傍にある近傍画素（周辺画素）の画素値の差を用いて演算が実行される。本実施の形態では、４近傍ラブラシアンフィルタを採用するため、５×５のブロックの四隅にある合計４つの近傍画素の画素値を合計した値と注目画素の画素値を４倍した値との差分が算出される。具体的には、図８に示される「４」や「−１」という係数を対応する画素値に乗じて、その結果を合計する演算が実行される。なお、本実施形態と異なり、５×５のブロック以外のラプラシアンフィルタ演算を採用することもできる。
【００６５】
図９は、図７のステップＳ２０３の処理の詳細を示すフローチャートであり、具体的には、エッジ検出処理に適合した処理分担の決定処理を示す。
【００６６】
ステップＳ３００では、図４または図５に示されるデータテーブルから取得されたアクセラレータ部２００側のラプラシアンフィルタ演算の処理能力に関する情報と図６に示される本体部１００側のラプラシアンフィルタ演算の処理能力に関する情報とが比較される。すなわち、アクセラレータ側演算器２０２および主演算器１０７のそれぞれのラプラシアンフィルタ演算の処理能力が比較される。
【００６７】
ステップＳ３０１では、アクセラレータ部２００側の処理能力と本体部１００側の処理能力の能力比が算出される。算出された能力比と等しい比率になるように処理すべきデータ領域が配分される。換言すれば、算出された能力比と等しい比率になるように、本体部１００とアクセラレータ部２００のそれぞれが処理すべき処理すべきデータ量が定められる。
【００６８】
図１０は、アクセラレータ部２００ａが本体部１００に接続された場合のデータ領域の配分を示しており、図１１は、アクセラレータ部２００ｂが本体部１００に接続された場合のデータ領域の配分を示している。
【００６９】
アクセラレータ部２００ａが接続された場合は、図６および図４に示されるデータテーブルから明らかなように、本体部１００とアクセラレータ部２００のラプラシアンフィルタ演算についての処理能力は、共に５０ＭＯＰＳである。したがって、本体部１００に対するアクセラレータ部のラシアンフィルタ演算の処理能力比は１：１である。この能力比と等しい比率になるように処理すべきデータ領域が分割され、配分される。データ領域の全体のうちの半分の領域が本体部１００、すなわち主演算器１０７に配分され、他方の領域がアクセラレータ部２００ａ、すなわちアクセラレータ側演算器２０２に配分される。
【００７０】
一方、アクセラレータ部２００ｂが接続された場合には、図６および図５に示されるデータテーブルから明らかなように、本体部１００とアクセラレータ部２００ｂのラプラシアンフィルタ演算についての処理能力は、それぞれ５０ＭＯＰＳおよび２００ＭＯＰＳである。したがって、本体部１００に対するアクセラレータ部のラシアンフィルタ演算についての能力比は１：４である。この能力比と等しい比率になるように処理すべきデータ領域が分割され、配分される。データ領域の全体の１／５の領域が本体部１００、すなわち主演算器１０７に配分され、領域全体の４／５の領域がアクセラレータ部２００ｂ、すなわちアクセラレータ側演算器２０２に配分される。データ領域を配分することによって画像処理の負担が決定された場合、すなわち本体部１００とアクセラレータ部２００が処理すべきデータ量を定めることによって画像処理の負担が決定された場合には、各演算器１０７、２０２において画像処理に関する演算が実行された後に、処理された各領域のデータがマージされる。すなわち複数領域のデータが一つにまとめられる。
【００７１】
次に、指示された画像処理がＪＰＥＧ圧縮処理である場合の処理分担の決定の処理について説明する。
【００７２】
図１２は、ＪＰＥＧ圧縮処理の流れを概略的に示す図である。
【００７３】
図１２に示された例では、ＣＣＤ１０６によって得られたＲＧＢ（赤緑青）のデータが輝度Ｙと二つの色差ＣｒおよびＣｂとに変換される（以下「ＲＧＢ→ＹＣｒＣｂ」変換という）。そして、ＤＣＴ演算が実行される。その後、量子化およびエントロピー符号化が実行される。
【００７４】
したがって、図３のステップＳ１０３において、ＪＰＥＧ圧縮に必要な演算は、ＲＧＢ→ＹＣｒＣｂ変換、ＤＣＴ演算、量子化、エントロピー符号化であることが認識される。なお、図１２に示されるパーセント値は、ＪＰＥＧ圧縮の全処理の負荷を１００％とした場合の各演算の負荷比率である。
【００７５】
図１３は、ＤＣＴ演算と画像データとの関係を示す図である。
【００７６】
８×８画素のブロックを単位としてＤＣＴ演算が実行される。このようなＤＣＴ演算を用いるＪＰＥＧ圧縮処理では、図１０および図１１において説明されたラプラシアンフィルタ演算を用いるエッジ検出処理の場合と異なり、本体部１００とアクセラレータ部２００のそれぞれが処理すべきデータ領域（すなわちデータ量に対応する）を配分することによって画像処理を分担することが困難である。これは、処理すべきデータ領域を複数の領域に分割して各領域別にＪＰＥＧ圧縮処理を実行し、処理後に各データをマージすることが、ＪＰＥＧ圧縮処理の規格上困難であることに起因する。
【００７７】
したがって、ＪＰＥＧ圧縮処理の場合には、画像処理に必要な複数種類の演算の中から本体部１００とアクセラレータ部２００のそれぞれが実行すべき演算の種類を定めることによって、処理負担が決定される。
【００７８】
このように、本実施の形態では、本体部１００のＣＰＵ１０１は、画像処理に必要な複数種類の演算の中から本体部１００とアクセラレータ部２００のそれぞれが実行すべき演算の種類を定める処理、または、本体部１００とアクセラレータ部２００のそれぞれが処理すべきデータ量を定めるか処理のどちらか一方を画像処理の内容に応じて選択し、選択された処理にしたがって画像処理の分担を決定する。
【００７９】
図１４は、図７のステップＳ２０１の処理の詳細を示すフローチャートであり、具体的には、ＪＰＥＧ圧縮処理に適合した処理分担の決定処理を示す。
【００８０】
ステップＳ４００では、図４または図５に示されるデータテーブルから取得されたアクセラレータ部２００側のＤＣＴ演算の処理能力に関する情報と本体部１００側のＤＣＴ演算の処理能力に関する情報とが比較される。換言すれば、画像処理に必要な複数の演算のうちで、最も処理負担の高い演算であるＤＣＴ演算が選択され、この最も処理負担の高い演算について、データテーブルによって取得された本体部１００およびアクセラレータ部２００の処理能力が比較される。
【００８１】
アクセラレータ部２００が本体部１００よりもＤＣＴ演算の処理能力が高い場合には（ステップＳ４００：ＹＥＳ）、ステップＳ４０１の処理が実行され、高くない場合には（ステップＳ４００：ＮＯ）、ステップＳ４０１およびステップＳ３０２の処理がスキップされる。
【００８２】
ステップＳ４０１では、ＤＣＴ演算をアクセラレータ部２００に実行させる。換言すれば、ＤＣＴ演算がアクセラレータ部２００に配分される。
【００８３】
ステップＳ４０２では、ＤＣＴ演算以外の演算、すなわち、上述したＲＧＢ→ＹＣｒＣｂ処理、量子化、およびエントロピー符号化を本体部に実行させる。換言すれば、これらのＤＣＴ演算以外の演算が本体部１００に配分される。
【００８４】
一方、ステップＳ４０３およびステップＳ４０４では、アクセラレータ部２００が本体部よりもＤＣＴ演算の処理能力が高くない場合の処理として、ＤＣＴ演算を本体部１００に実行させ、ＤＣＴ演算以外の演算をアクセラレータ部２００に実行させる。
【００８５】
なお、本体部１００とアクセラレータ部２００のＤＣＴ演算の処理能力が等しい場合には、本体部１００とアクセラレータ部２００との間に能力差がないため、適宜、各演算の処理負荷に応じて、処理すべき演算の種類が定められてもよい。
【００８６】
図１５は、アクセラレータ部２００ａが本体部１００に接続された場合に本体部１００およびアクセラレータ部２００ａが実行すべき演算の種類を示しており、図１６は、アクセラレータ部２００ｂが本体部１００に接続された場合に本体部１００およびアクセラレータ部２００ｂが実行すべき演算の種類を示している。
【００８７】
アクセラレータ部２００ａが接続された場合は、図６および図５に示されるデータテーブルから明らかなように、本体部１００とアクセラレータ部２００のＤＣＴ演算の処理能力（１０ＭＯＰＳ）が等しい。この場合、たとえば、図１５に示されるように、ＤＣＴ演算が本体部１００の主演算器１０７によって実行されるように定められ、それ以外の演算がアクセラレータ部２００ａのアクセラレータ側演算器２０２によって実行されるように定められる。
【００８８】
一方、アクセラレータ部２００ｂが接続された場合は、図５および図６に示されるデータテーブルから明らかなように、アクセラレータ部２００のＤＣＴ演算の処理能力（１００ＭＯＰＳ）が、本体部１００の処理能力（１０ＭＯＰＳ）の１０倍である。したがって、この場合、図１６に示されるように、ＤＣＴ演算がアクセラレータ部２００ｂのアクセラレータ側演算器２０２によって実行されるように定められ、それ以外の演算が本体部１００の主演算器１０７によって実行されるように定められる。
【００８９】
なお、図１５および図１６は本体部１００およびアクセラレータ部２００が実行すべき演算の種類の一例を示すものであり、本発明は、この場合に限られない。たとえば、アクセラレータ部２００ｂのＤＣＴ演算の処理能力が高い場合に、図１６に示される場合と異なり、アクセラレータ部２００ｂにＤＣＴ演算のみならずＲＧＢ→ＹＣｒＣｂ変換を実行させるように定めることもできる。
【００９０】
次に、指示された画像処理が合成処理である場合の処理分担の決定の処理について説明する。
【００９１】
指示された画像処理が合成処理である場合には、図３のステップＳ１０３において、エッジ検出処理に必要な演算として加算演算が認識されている。
【００９２】
図１７は、図７のステップＳ２０５の処理の詳細を示すフローチャートであり、具体的には、合成処理に適合した処理分担の決定処理を示す。
【００９３】
ステップＳ５００では、図４または図５に示されるデータテーブルから取得されたアクセラレータ部２００側の加算演算の処理能力に関する情報と図６に示される本体部１００側の加算演算の処理能力に関する情報とが比較される。
【００９４】
ステップＳ３０１では、アクセラレータ部２００側の処理能力と本体部１００側の処理能力の能力比が算出される。算出された能力比と等しい比率になるように処理すべきデータ領域が配分される。換言すれば、算出された能力比と等しい比率になるように、本体部１００とアクセラレータ部２００のそれぞれが処理すべき処理すべきデータ量の比率を定めることによって、画像処理の分担が決定される。
【００９５】
このように、本実施の形態によれば、異なるプログラミングがされた複数のＤＳＰソリューションが準備され、これらのＤＳＰが搭載されたアクセラレータ部を本体部に装着することによって、自動的にアクセラレータの処理能力が考慮され、本体部およびアクセラレータ部との間の画像処理の分担が最適化される。
【００９６】
以上のように本発明の実施の形態を説明したが、本発明は、種々の変形が可能である。
【００９７】
上記実施の形態では、画像処理として、ＪＰＥＧ圧縮処理、エッジ検出処理、および合成処理を例にとって説明したが、本発明は、これらの処理以外の画像処理に適用することもできる。たとえば、画像ノイズ等を除去するための平滑化処理、不鮮明な画像をシャープな画像に変換する鮮鋭化処理、および色変換処理などの画像処理に本発明を適用することができることは、もちろん可能である。
【００９８】
また、上記の実施の形態では、演算として、加算演算、乗算演算、積和演算、ＤＣＴ演算演算、ラプラシアンフィルタ演算、ＲＧＢ→ＹＣｒＣｂ変換、量子化、およびエントロピー符号化を例にとって説明したが、本発明は、これら以外の演算について取り扱うことも可能である。たとえば、種々の画像処理に必要なＦＩＲ（fine impulse response）フィルタ演算などのラプラシアンフィルタ演算以外の空間フィルタ演算を取り扱うことができる。
【００９９】
上記の実施の形態では、本体部とアクセラレータ部にそれぞれ一つずつ演算器が設けられている場合を説明したが、本発明はこの場合に限られない。３個以上の演算器間での処理分担の決定に本発明を応用できることはもちろんである。
【０１００】
また、上記の実施の形態では、本体部に一つのアクセラレータ部を接続する場合を説明したが、複数のアクセラレータ部を接続してもよい。この場合も、本体部および複数のアクセラレータ部の間の処理分担を決定することができる。また、上記の実施の形態では、ＣＰＵを各部の制御にのみ使用する場合を説明したが、ＣＰＵが各部の制御を実行するのみならず、画像処理を実行する演算器として機能してもよい。
【０１０１】
上記の実施の形態では、ＣＣＤを有する画像処理装置に本発明の演算装置を適用した場合を説明したが、本発明は、この場合に限られない。本発明は、コンピュータ端末、携帯端末、デジタルカメラ、プリンタ、複写機、スキャナ、およびファクシミリ装置のような画像処理に関する演算を実行するすべての機器に適用することができる。
【０１０２】
なお、本発明の演算装置の制御方法は、ソフトウエア（プログラム）または専用のハードウエア回路のいずれによっても実現することができる。また、プログラムによって本発明を実現する場合、機器を動作させるプログラムは、たとえば、フレキシブルディスクやＣＤ−ＲＯＭなどのコンピュータ読み取り可能な記録媒体によって提供されてもよく、ネットワークを通じて配信されてもよい。また、プログラムは、演算装置自体に組み込まれていてもよい。
【０１０３】
【発明の効果】
本発明によれば、アクセラレータ部の各演算別の処理能力を考慮して、本体部とアクセラレータ部の間の処理の分担を自動的に決定することができる。また、アクセラレータ部に設けられたプロセッサがプログラマブルＤＳＰであり、このＤＳＰにプログラムされる内容が変更された場合であっても、アクセラレータ部に記憶されるデータテーブルの内容、つまり、複数種類の演算についての当該アクセラレータ部の各演算別の処理能力を示す情報の内容を書き換えておくだけで、本体部とアクセラレータ部との間の処理の分担を自動的に最適化することができ、本体部のハードウエア構成を変更する必要がなくなる。
い認識率を達成することができる。
【図面の簡単な説明】
【図１】  本発明の演算装置を適用した画像処理装置の構成を示すブロック図である。
【図２】  図１における本体部１００とアクセラレータ部２００との関係を模式的に示す図である。
【図３】  本発明の演算装置を適用した画像処理装置の処理内容を示すフローチャートである。
【図４】  アクセラレータ部のテーブルＲＯＭに記憶されているデータテーブルの一例を示す図である。
【図５】  アクセラレータ部のテーブルＲＯＭに記憶されているデータテーブルの他の例を示す図である。
【図６】  本体部のＲＯＭに記憶されているデータテーブルの一例を示す図である。
【図７】  図３のステップＳ１０５に対応する処理分担の決定処理を示すフローチャートである。
【図８】  エッジ検出処理と画像データとの関係を模式的に示す図である。
【図９】  図７のステップＳ２０３におけるエッジ検出処理に適合した処理分担の決定処理を示すフローチャートである。
【図１０】  アクセラレータ部２００ａが本体部に接続された場合のデータ領域の配分を示す図である。
【図１１】  別のアクセラレータ部２００ｂが本体部に接続された場合のデータ領域の配分を示す図である。
【図１２】  本発明におけるＪＰＥＧ圧縮処理の処理の流れを概略的に示す図である。
【図１３】  離散コサイン変換と画像データとの関係を示す図である。
【図１４】  図７のステップＳ２０１におけるＪＰＥＧ圧縮処理に適合した処理分担の決定処理を示すフローチャートである。
【図１５】  アクセラレータ部２００ａが本体部に接続された場合に本体部およびアクセラレータ部２００ａが実行すべき演算の種類の一例を示す図である。
【図１６】  別のアクセラレータ部２００ｂが本体部に接続された場合に本体部およびアクセラレータ部２００ｂが実行すべき演算の種類の一例を示す図である。
【図１７】  図７のステップＳ２０５における合成処理に適合した処理分担の決定処理を示すフローチャートである。
【符号の説明】
１００…本体部、
１０１…ＣＰＵ、
１０２…ＲＯＭ、
１０３…ＲＡＭ、
１０４…記憶部、
１０７…主演算器
１０８…インタフェース、
２００…アクセラレータ部、
２０１…インタフェース、
２０２…アクセラレータ側演算器、
２０３…テーブルＲＯＭ。
【図１】
0004325123.tif 000002
【図２】
0004325123.tif 000003
【図３】
0004325123.tif 000004
【図４】
0004325123.tif 000005
【図５】
0004325123.tif 000006
【図６】
0004325123.tif 000007
【図７】
0004325123.tif 000008
【図８】
0004325123.tif 000009
【図９】
0004325123.tif 000010
【図１０】
0004325123.tif 000011
【図１１】
0004325123.tif 000012
【図１２】
0004325123.tif 000013
【図１３】
0004325123.tif 000014
【図１４】
0004325123.tif 000015
【図１５】
0004325123.tif 000016
【図１６】
0004325123.tif 000017
【図１７】
0004325123.tif 000018