以下、図面を参照して、本発明に係る実施の形態について説明する。
図1には、本実施の形態に係る複合機10の構成が概略的に示されている。同図に示されるように、複合機10は、通信制御部20、CPU(中央演算処理装置)22、ROM(Read Only Memory)24、RAM(Random Access Memory)26、入力部28、スキャナ30、画像信号変換処理部32、ページメモリ34、圧縮伸張処理部36、ハードディスクドライブ(HDD)38、画像処理部40、記録データ生成部42及び画像形成制御部44を含んで構成されている。
CPU22は、RAM26をワークエリアとして用い、ROM24に記憶されたプログラムを実行することにより複合機10全体を制御する。CPU22では、各部位を組み合わせて動作させることにより、通信制御部20を介して外部装置等から受信した画像データのプリント、原稿のスキャン、原稿のコピー、ファクシミリ送受信等、複数の機能を実行可能に構成されている。
入力部28は、表示パネルや入力ボタン等を含んで構成されており、ユーザの操作入力に応じて、複合機10に実行させる機能の選択、各機能を実行する際のパラメータ等の選択、実行タイミングの指示等を入力する。
また、ページメモリ34は、原稿1ページ分の画像情報を一時的に記憶するために用いられ、HDD38は、各種情報の蓄積に用いられる。
通信制御部20は、ネットワーク等を介した外部装置との通信により、例えば、プリントデータを受信したり、他の装置にデータを送信したりする。
また、スキャナ30は、不図示の原稿画像を読み取る読取機構を含んで構成されており、当該読取機構を駆動して原稿画像を示す画像情報を取得する。例えば、原稿面を下にして原稿読取ガラス(プラテンガラス)上の所定の読取位置にセットされた原稿にプラテンガラスを介して光を照射し、原稿面からの反射光をCCD(Charge Coupled Device)を用いて電気信号に変換することにより原稿面に形成された画像を示す画像情報を取得する。
画像信号変換処理部32では、画像の色空間の変換や、解像度の変換等を行ない、圧縮伸張処理部36では、所定の圧縮形式で画像情報に圧縮処理を施す一方、圧縮処理された画像情報に伸張処理を施す。
画像処理部40は、ページメモリ34やHDD38に格納されているプリントデータやスキャナ30を介して取得された画像情報に対して各種画像処理を施す。
また、記録データ生成部42では、記録紙に画像を形成する場合に、画像情報に基づいて画像形成用の記録データを生成する。画像形成制御部44では、記録データ生成部42で生成された記録データに基づいて不図示の画像形成ユニットを制御して、記録紙上に画像を形成する。
また、スキャンファイル生成部46では、スキャナ30により読み取った画像情報に基づいて、原稿画像を示す所定のファイルフォーマットのスキャンファイルを生成する。なお、本実施の形態では、スキャンファイルのファイルフォーマットとして、PDF(Portable Document Format)を適用する場合について説明する。
ここで、本実施の形態に係る複合機10では、スキャナ30により読み取った画像情報の集約数を判定し、集約されたページを1ページとするスキャンファイルの生成を行なう。
図2は、本実施の形態に係る複合機10における集約数判定及びスキャンファイルの生成処理に関する機能ブロック図である。スキャナ30は、例えば、入力部28を介してスキャン機能、コピー機能及びファクシミリ送信機能等の実行が選択された場合に、原稿画像の読み取りを行なう。
スキャナ30では、入力部28を介して入力される処理の実行指示に基づいて、読取位置にセットされた原稿面の画像情報を取得する。
画像信号変換処理部32では、スキャナ30により読み取られた原稿画像を示す画像信号に対する色空間の変換及び解像度の変更を行なう。画像信号変換処理部32は、例えば、第1の色変換部50と、解像度変換部52及び第2の色変換部54を含んで構成されている。
第1の色変換部50では、色空間RGBで示される画像情報を色空間Labで示される画像情報に変換し、第2の色変換部54では、色空間Labの画像情報を色空間YCbCrの画像情報に変換する。なお、この他、画像形成ユニットの構成に応じて、各色空間から色空間YMCK等への変換を行なう場合もある。
また、解像度変換部52では、画像情報をスキャナ30の読取解像度から、入力部28等を介して指定された解像度に変換する処理が行なわれる。
ページメモリ34には、スキャナ30を介して取得された画像情報が原稿の1面単位で格納される。以下、原稿の1面単位の画像情報を読取ページデータとして説明する。
圧縮伸張処理部36は、圧縮処理部58を含んで構成されており、ページメモリ34に格納され、上記画像信号変換処理部32による各種変換処理済みの読取ページデータに対して所定の圧縮処理を施してHDD38に格納する。なお、圧縮方式としては、JPEG(Joint Photographic Experts Group)、GIF(Graphic Interchange Format)、PNG(Portable Network Graphics)等、所定の方式を適用できる。
ここで、圧縮伸張処理部36は、読取ページデータを複数ページに分割する分割処理部56を含んで構成されている。分割処理部56では、読取ページデータ80を予め設定された分割数Kに分割する。
図3は、分割処理部56による読取ページデータ80の分割処理の一例を示す説明図である。同図では、用紙の向きが「短辺が上」であると指示されており、分割数K=4が予め設定されている場合について示した。同図に示されるように、分割処理部56では、形状及びサイズが均等な分割数K=4個の分割ページデータP(P1〜P4)を生成する。
分割処理部56では、読取ページデータ80から分割ページデータP1〜P4に相当する領域の画素データをそれぞれ抽出し、分割ページデータP1〜P4として圧縮処理部58に出力する。このとき、各分割ページデータPの境界部分の画素については、各境界により分割される両方の分割ページデータPに含める。境界部分の画素は、少なくとも1画素列分(1ライン分)以上とし、オーバーラップさせる。
なお、上記圧縮処理部58では、分割処理部56により予め設定された分割数Kに分割された各分割ページデータPのそれぞれに対して上記圧縮処理を施す。
また、HDD38には、圧縮処理済みの分割ページデータPが格納される。
一方、上記圧縮伸張処理部36による圧縮処理と併行して、画像処理部40による読取ページデータ80が示す画像情報に含まれるページ数、すなわち、原稿の集約数Nの判定及び白紙領域の判定が行なわれる。
これらの判定を行うために、画像処理部40は、二値化処理部60、第1マスク処理部62、集約数判定部64、第2マスク処理部66及び白紙領域判定部68を含んで構成されている。
二値化処理部60では、読取ページデータ80の各画素のデータに基づいて、輝度信号Yについて予め設定された閾値を用いて量子化し、二値(例えば、閾値未満「0」、閾値以上「1」)の画像データに変換する。
集約数判定部64では、二値化処理部60により二値化された読取ページデータ80に基づいて、集約数Nを判定する。
図4は、集約数Nと読取ページデータ80の画像構成との関係を示す図である。同図(A)は、集約数N=1のときの読取データ80の構成を示している。同図に示されるように、集約数N=1の場合、読取ページデータ80がそのまま1ページの画像情報である。また、同図(B)は、集約数N=2のときの読取データ80の構成を示しており、読取ページデータ80には、2ページ分の画像情報が含まれている。さらに、同図(C)は、集約数N=4のときの読取データ80の構成を示しており、読取ページデータ80には、4ページ分の画像情報が含まれている。
ここで、読取ページデータ80に複数のページが集約されている場合、各ページの境界部分は、画像を構成する画素が存在しない、所謂空白であるとみなすことができる。
そこで、第1マスク処理部62では、図5に示されるように、分割ページデータPの境界92A及び92Bをそれぞれ含む領域90A及び90Bを構成する画素以外の画素の画素データを「0」に置換する。
集約数判定部64では、第1マスク処理部62によるマスク処理後の画素データに基づいて、二値化によって輝度信号Yが閾値以上である画素データ「1」の画素の数を各領域毎にカウントする。また、各領域毎のカウント値に基づいて、例えば、以下の表1に示されるようにして集約数Nを判定する。
表1に示されるように、カウント値XA及びXBの何れも閾値未満の場合、領域90A及び領域90Bの何れにも、画像の一部を構成する画素が存在しないとみなして集約数N=4と判定する。
また、カウント値XAが閾値以上であり、カウント値XBが閾値未満である場合、領域90Aには画像の一部を構成する画素が存在するものの、領域Bには画像の一部を構成する画素は存在しないとみなして、集約数N=2と判定する。
カウント値XA及びXBの何れも閾値未満の場合、領域90A及び領域90Bの何れにも、画像の一部を構成する画素が存在するとみなして集約数N=1と判定する。
なお、カウント値XAが閾値未満であり、カウント値XBが閾値以上である場合については、領域90Aには画像の一部を構成する画素が存在するものの領域Bには画像の一部を構成する画素が存在しないとみなすことができ、集約数N=2と判定することも可能であるが、用紙の短辺が上向きの場合、通常は境界92Aの両側に1ページずつ集約することがないため、この場合は集約数N=1と判定する。
白紙領域判定部68は、二値化処理部60により二値化された読取ページデータ80に基づいて、分割ページデータP毎に画像が存在するか否かに基づいて白紙判定を行なう。
このため、第2マスク処理部66では、図3に示される各分割ページデータPに相当する領域以外の画素の画素データを「0」に置換する。白紙領域判定部68では、第2マスク処理部66によるマスク処理後の画素データに基づいて、二値化によって輝度信号Yが閾値以上である画素データ「1」の画素の数を各領域毎にカウントする。また、各領域毎に、カウント値を予め設定された閾値と比較し、例えば、カウント値が閾値未満である場合には当該領域は白紙であると判定する。
集約数判定部64による集約数の判定結果及び白紙領域判定部68による白紙判定結果は、スキャンファイル生成部46に出力される。
スキャンファイル生成部46では、集約数判定部64による集約数の判定結果に応じてHDD38に圧縮されて格納された分割ページデータPを合成して出力ページデータQ(図6〜10参照)を生成する。このとき、白紙領域判定部68により白紙であると判断された分割ページデータPだけを含む出力ページデータQを破棄する。なお、以下では、スキャンファイルにおける1ページを、出力ページデータQとする。
なお、出力ページデータQは、1回のスキャン機能の実行指示に応じてスキャナ30で読み取った原稿の枚数分がまとめて1つのスキャンファイルとして生成され、通信制御部20を介して外部装置16に送信される。
以下、本実施の形態の作用を説明する。
複合機10では、ユーザにより入力部28を介して実行する機能が選択されると、選択された機能を実行する。
入力部28を介してスキャン機能の実行が選択された場合には、スキャナ30により原稿画像が読み取られ、スキャナ30で読み取った読取ページデータに対して画像信号変換処理部32により適宜色空間や解像度等の変換処理を施す。
画像信号に対する変換処理済みの読取ページデータ80を、圧縮伸張処理部36において形状及び画素数が均等な予め設定された分割数Kの分割ページデータPに分割し、各分割ページデータP毎に圧縮してHDD38に格納する。
一方、画像処理部40では、読取ページデータ80を予め設定された閾値を用いて量子化することにより二値化し、この二値化した画像データに基づいて読取ページデータ80の集約数N及び白紙領域の判定を行なう。
図11は、画像処理部40により実行される集約数判定処理の流れを示すフローチャートである。以下、同図を参照して本実施の形態に係る集約数判定処理について説明する。
まず、ステップ200では、読取ページデータ80を二値画像に量子化し、その後にステップ202に移行して、領域A及び領域B以外の画素をマスクするように、第1のマスク処理部62にパラメータをセットする。
次のステップ204では、カウント値XA及びXBを初期化(「0」をセット)し、その後にステップ206に移行して処理対象とする画素を示す変数rに「1」をセットした後に、ステップ208に移行する。
ステップ208では、r番目の画素データを取得し、その後にステップ210に移行して、画素データが「1」であるか否かを判定する。当該判定が肯定判定となった場合はステップ212に移行して、領域Aの画素であるか否かを判定する。当該判定が肯定判定となった場合はステップ214に移行して、カウント値XAをインクリメント(カウント値XAに「1」を加算)し、その後にステップ216に移行する。すなわち、カウント値XAは、領域Aの画素データが「1」である画素の数を示している。
一方、ステップ212で否定判定となった場合はステップ218に移行して、カウント値XBをインクリメント(カウント値XBに「1」を加算)し、その後にステップ220に移行する。すなわち、カウント値XBは、領域Bの画素データが「1」である画素の数を示している。なお、領域A及び領域B以外の画素については、マスク(画素データが「0」に置換)されているので、画素データが「1」であれば、領域A又は領域Bの何れかの画素ということになる。
また、ステップ216では、領域Bの画素であるか否かを判定し、当該判定が肯定判定となった場合はステップ218に移行する。すなわち、図5に示されるように、領域Aと領域Bには重なり部分が存在するので、領域Aかつ領域Bである画素については、カウント値XA及びXBの両方をインクリメントする必要がある。
なお、ステップ210で否定判定となった場合はステップ212〜218の処理を行うことなくステップ220に移行する。
ステップ220では、全画素について処理が終了したか否かを判定し、当該判定が否定判定となった場合はステップ222に移行し、変数rをインクリメント(変数rに「1」を加算)し、その後に再びステップ208に戻る。
なお、ステップ220の判定は、読取ページデータ80の全画素数と変数rの値とを比較することにより行なうことができ、例えば、変数rが全画素数以上であれば、全画素についての処理が終了した、と判定できる。
ステップ220で肯定判定となった場合はステップ224に移行して、カウント値XA及びXBに基づいて、例えば、上記表1に示すようにして集約数Nを判定し、その後に本集約数判定処理を終了する。
一方、図12は、画像処理部40により実行される白紙領域判定処理の流れを示すフローチャートである。以下、同図を参照して本実施の形態に係る白紙領域判定処理について説明する。
まず、ステップ240では、読取ページデータ80を二値画像に量子化し、その後にステップ242に移行して、処理対象とする領域を示す変数sに「1」をセットする。
次のステップ244では、カウント値Yを初期化(カウント値Yに「0」をセット)し、その後にステップ246に移行する。ステップ246では、領域s(分割ページデータPsに相当する領域)以外の画素をマスクし、その後にステップ248に移行する。
なお、領域s以外の画素のマスクは、第2のマスク処理部66に、領域sを示すパラメータをセットすることにより行なわれる。これにより、第2のマスク処理部66では、領域s以外の画素の画素データを「0」に置換して出力する。
ステップ248では、処理対象とする画素を示す変数rに「1」をセットした後に、ステップ250に移行する。ステップ250では、r番目の画素データを取得し、その後にステップ252に移行して、画素データが「1」であるか否かを判定する。当該判定が肯定判定となった場合はステップ254に移行してカウント値Yをインクリメント(カウント値Yに「1」を加算)し、その後にステップ256に移行する。
一方、ステップ252で否定判定となった場合はステップ254の処理を実行することなくステップ256に移行する。
ステップ256では、全画素についての処理が終了したか否かを判定し、当該判定が否定判定となった場合はステップ258に移行し、変数rをインクリメント(変数rに「1」を加算)し、その後に再びステップ250に戻る。
なお、ステップ256の判定は、読取ページデータ80の全画素数と変数rの値とを比較することにより行なうことができ、例えば、変数rが全画素数以上であれば、全画素についての処理が終了した、と判定できる。
ステップ256で肯定判定となった場合はステップ260に移行して、カウント値Yに基づいて領域sが白紙領域であるか否かの判定を行ない、その後にステップ262に移行する。
ステップ262では、変数sが分割数K以上であるか否かを判定し、当該判定が否定判定となった場合はまだ白紙判定を行なっていない領域が存在すると判断して、ステップ264に移行する。ステップ264では、変数sをインクリメント(変数sに「1」を加算)し、その後に再びステップ244に戻る。
ステップ262で肯定判定となった場合は、本白紙領域判定処理を終了する。
これらの集約数判定処理及び白紙領域判定処理による判定結果は、スキャンファイル生成部46に出力される。
図13は、スキャンファイル生成部46により実行される出力ページデータ生成処理の流れを示すフローチャートである。以下、同図を参照して、本実施の形態に係る出力ページデータ生成処理について説明する。
まず、ステップ270では、集約数N及び白紙領域判定結果を取得し、次のステップ272では、集約数Nが1であるか否かを判定する。当該判定が肯定判定となった場合は読取ページデータ80に1ページ分の原稿が含まれると判断し、ステップ274に移行する。
ステップ274では、1ページ分の読取ページデータ80から分割してHDD38に格納した全ての分割ページデータP1〜P4を分割前の位置に配置した出力ページデータQ1を作成し、その後にステップ282に移行する。
図6は、集約数N=1の場合の分割ページデータPと出力ページデータQとの関係を示す模式図である。同図に示されるように、出力ページデータQ1では、分割ページデータP1〜P4を、分割前の位置関係となるように1ページに配置する。ここで、本実施の形態では、スキャンファイルのフォーマットをPDFとしているので、分割ページデータP1〜P4の配置位置の座標を設定することにより複数の分割ページデータPを1ページに配置して合成することができる。例えば、出力ページデータQの左上の頂点の座標を原点(0,0)、右上頂点の座標(x,0)、左下頂点の座標(y,0)、右下頂点の座標(x,y)とすると、同図に示されるように、分割ページデータP1の開始位置P1(0,0)、分割ページデータP2の開始位置P2(x/2,0)、分割ページデータP3の開始位置P3(0,y/2)、分割ページデータP4の開始位置P4(x/2,0)とする。
なお、この開始位置は、各分割ページデータPの境界において画素データが重複する分だけずらして設定することが好ましい。
一方、ステップ272で否定判定となった場合はステップ276に移行して、N=2であるか否かを判定し、当該判定が肯定判定となった場合はステップ278に移行する。
ステップ278では、分割ページデータPを2ページずつ出力ページデータQに配置し、出力ページデータQを生成した後にステップ282に移行する。
この出力ページデータQの生成は、HDD38に格納された各分割ページデータPを読出して処理するのではなく、各分割ページデータPの開始位置の座標を設定することにより実行する。
図7は、集約数N=2の場合の分割ページデータPと出力ページデータQとの関係を示す模式図である。同図に示されるように、出力ページデータQ1では、分割ページデータP1及びP2を、分割前の位置関係となるように1ページに配置する。そして、出力ページデータQ2に、分割ページデータP3及びP4を、分割前の位置関係となるように1ページに配置することにより合成する。
この出力ページデータの生成は、各分割ページデータPの開始位置の座標を設定することにより実行する。例えば、出力ページデータQの左上の頂点の座標を原点(0,0)、右上頂点の座標(x,0)とすると、出力ページデータQ1については、分割ページデータP1の開始位置をP1(0,0)、分割ページデータP2の開始位置をP2(x/2,0)とする。また、出力ページデータQ2については、分割ページデータP3の開始位置をP3(0,0)、分割ページデータP3の開始位置をP3(x/2,0)とする。
ステップ276で否定判定となった場合はステップ280に移行して、各分割ページデータPをそのまま出力ページデータQとして生成し、その後にステップ282に移行する。
図8は、集約数N=4の場合の分割ページデータPと出力ページデータQとの関係を示す模式図である。同図に示されるように、出力ページデータQ1を分割ページデータP1、出力ページデータQ2を分割ページデータP2、出力ページデータQ3を分割ページデータP3、出力ページデータQ4を分割ページデータP4とする。
ステップ282では、生成された出力ページデータQのうち、白紙領域と判定された分割ページデータPだけを含むページがあるか否かを判定し、当該判定が肯定判定となった場合はステップ284に移行する。
ステップ284では、白紙領域と判定された分割ページデータPだけを含む出力ページデータを破棄し、その後に本出力ページデータ生成処理を終了する。
図9には、N=2の場合に生じる、白紙領域と判定された分割ページPだけを含む出力ページデータQが示されている。同図には、領域3及び領域4、すなわち分割ページデータP3及びP4が白紙である場合が示されている。この場合、出力ページデータQ2が破棄される。なお、破棄された出力ページデータQの後に続く出力ページデータQについては、ページ順番が繰り上げられる。
図10には、N=4の場合に生じる、白紙領域と判定された分割ページPだけを含む出力ページデータQが示されている。同図には、領域4、すなわち分割ページデータP4が白紙である場合が示されている。他の領域が白紙領域である場合についても、同様にそのページが破棄され、破棄された出力ページデータQの後に続く出力ページデータQについては、ページ順番が繰り上げられる。
一方、ステップ282で否定判定となった場合はステップ284の処理を実行することなく、本出力ページデータ生成処理を終了する。
このようにして出力ページデータ生成処理により生成された出力ページデータは、1回のスキャン機能の実行指示に応じてスキャナ30により読み取った原稿の枚数分(取得した読取ページデータの数分)がまとめて1つのスキャンファイルに含められて、通信制御部20を介して外部装置16に出力される。
なお、以上の実施形態で説明した複合機10の構成(図1及び図2参照)及び各処理の流れ(図11乃至図13参照)は一例であり、本発明の主旨を逸脱しない範囲内において適宜変更可能であることは言うまでもない。
例えば、第1マスク処理部62を境界を含む領域毎に設け、それぞれについて併行して画像を構成する画素の有無を判定してもよい。また、同様にして、第2マスク処理部66を分割ページデータPに相当する領域毎に設け、各領域について併行して白紙判定を行なうこともできる。
また、本実施の形態では、領域A及び領域Bの少なくとも一方に、画像を構成する画素が存在すると判断された場合に、複数の分割ページデータPを1ページに配置するようにしている。このため、複数の分割ページデータPを含む出力ページデータにおいては、何れかの領域が白紙であると判断されている場合でも、白紙と判断された領域に他の領域と連続する画像の一部がわずかに含まれている可能性がある。そこで、本実施の形態では、複数の分割ページデータPを含む出力ページデータにおいては、全ての分割ページデータPが白紙領域であると判定されている場合にだけ出力ページデータQを破棄する形態について説明した。
しかし、本発明はこれに限定されるものではなく、この場合でも白紙領域と判定された分割ページデータPを破棄して、残りの分割ページデータを用いて出力ページデータQを生成するようにしてもよい。
例えば、図14に示されるように、分割ページデータP3に相当する領域3が白紙であると判定された場合、分割ページデータP3を破棄し、分割ページデータP1及びP2を図7に示す例と同様に配置した出力ページデータQ1を生成すると共に、分割ページデータP4を出力ページデータQ2として生成することもできる。
さらに、上記実施の形態では、集約数の判定を、領域A及び領域Bにおける画像を構成する画素の数をカウントして判定する形態について説明したが、本発明はこれに限定されるものではない。
例えば、読取ページデータ80について画像の輪郭を走査し、画像のレイアウト解析を行なって、解析結果に基づいて領域A及び領域Bに画像を構成する画素が存在するか否かを判定するようにしてもよい。
図15は、本発明の各種処理の機能をコンピュータプログラムで実現した場合におけるコンピュータプログラム及びそのコンピュータプログラムを格納した記憶媒体とコンピュータの一例の説明図である。図中、550はプログラム、552はコンピュータ、554は光磁気ディスク、556は光ディスク、558は磁気ディスク、560はメモリ、562は内部メモリ、566は読取部、570はハードディスク、568、574はインタフェース、572は通信部である。
なお、上記白紙領域の判定に用いる閾値及び集約数の判定に用いる閾値は、読み取る原稿の種類(写真か文字か、や、原稿の色合い等)に応じて複数種類設定しておき、適宜選択的に用いるように構成してもよい。
上述の各実施の形態で説明した本発明の各種処理の機能の一部または全部を、コンピュータにより実行可能なプログラム550によって実現することが可能である。その場合、そのプログラム550及びそのプログラムが用いるデータなどは、コンピュータが読み取り可能な記憶媒体に記憶することも可能である。記憶媒体としては、コンピュータのハードウエア資源に備えられている読取部566に対して、プログラムの記述内容に応じて、磁気、光、電気等のエネルギーの変化状態を引き起こして、それに対応する信号の形式で、読取部566にプログラムの記述内容を伝達できるものである。例えば、光磁気ディスク554、光ディスク556(CDやDVDなどを含む)、磁気ディスク558、メモリ560(ICカード、メモリカードなどを含む)等である。もちろんこれらの記憶媒体は、可搬型に限られるものではない。
これらの記憶媒体にプログラム550を格納しておき、例えばコンピュータ552の読取部566あるいはインタフェース574にこれらの記憶媒体を装着することによって、コンピュータからプログラム550を読み出し、内部メモリ562またはハードディスク570に記憶し、CPU564によってプログラム550を実行することによって、本発明の各種処理の機能を実現することができる。あるいは、ネットワークなどを介してプログラム550をコンピュータ552に転送し、コンピュータ552では通信部572でプログラム550を受信して内部メモリ562またはハードディスク570に記憶し、CPU564によってプログラム550を実行することによって、本発明の各種処理の機能を実現してもよい。なお、コンピュータ552には、このほかインタフェース568を介して様々な装置と接続することができ、例えば情報を表示する表示装置やユーザが情報を入力する入力装置等も接続されている。
もちろん、一部の機能についてハードウエアによって構成することもできるし、すべてをハードウエア構成としてもよい。あるいは、他の構成とともに本発明も含めたプログラムとして構成することも可能である。