説明

画像読取装置および画像データ並び替え方法

【課題】画像読取装置を、様々な構成のラインイメージセンサーやAFE等の部品に汎用的に対応可能とする技術を提供する。
【解決手段】画像読取装置は、複数チャンネル(ch)のラインイメージセンサーと、前記チャンネル毎に読み取られた画像データをA/D変換して出力するA/D変換ユニット(AFE)と、前記A/D変換ユニットから出力され、ライン毎に、所定の順序で入力される前記チャンネル毎の画像データを、所定の公式により、1ラインの画像データとなるようにチャンネル番号(ch_no)順に並び替える並び替え手段を有する画像処理ユニット(SoC)と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、イメージセンサーにより読み取られた画像データを処理する画像読取装置、および画像データの並び替え方法に関する。
【背景技術】
【0002】
主走査方向に複数の部分(チャンネル)に分割され、各チャンネルで読み取られた画像データを並行して出力するラインイメージセンサーが知られている。また、このラインイメージセンサーが搭載された画像読取装置(例えば、スキャナー、コピー機、複合機等)が知られている。例えば、特許文献1には、上記のような画像読取装置が記載されている。
【0003】
また、上記のラインイメージセンサーの各チャンネルからパラレルで出力された画像データは、A/D変換器(例えば、AFE(Analog Front End))により、アナログデータからデジタルデータへと変換され、画像読取装置内部に搭載された、画像処理ASIC(Application Specific Integrated Circuit)等の画像処理ユニット(SoC(System on a Chip)とも呼ばれる)へと出力される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−124074号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、近年、画像読取装置の低価格化、小型化(薄型化)がますます要求されている。そこで、CIS方式の画像読取装置が増えつつある。また、近年、画像読取装置の処理の高速化がますます要求されている。そこで、特に、CIS方式の画像読取装置においては、ラインイメージセンサーの複数チャンネル化が進みつつある。
【0006】
また、今後、複数チャンネル化とともに、様々な構成(例えば、チャンネル数)のラインイメージセンサーや、様々な構成(例えば、入力チャンネル数、出力チャンネル数、出力データ順序等)のAFE等の各種部品が、画像読取装置に搭載されることが想定される。
【0007】
しかしながら、一般的に、画像読取装置のSoCは、画像読取装置に搭載されるラインイメージセンサーやAFE等の各種部品の構成に応じて予め設計される。そのため、様々な構成の部品に汎用的に対応できず、部品の構成に応じてその都度設計変更が必要となる。
【0008】
SoCは、最終的には正しい画像データを生成する必要があるため、入力された各チャンネルの画像データを、ラインイメージセンサーにおける主走査方向のチャンネルの順序で並べる必要がある。すなわち、SoCは、どのタイミングで入力された画像データが、どのチャンネルのデータであるかを特定する仕組みを有する。しかし、ラインイメージセンサーやAFE等の各種部品の構成が変更されると、この仕組みの設計変更が必要となってしまう。
【0009】
そこで、本発明は、画像読取装置を、様々な構成のラインイメージセンサーやAFE等の部品に汎用的に対応可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記の課題を解決するための本発明の一態様は、画像読取装置であって、複数チャンネル(ch)のラインイメージセンサーと、前記チャンネル毎に読み取られた画像データをA/D変換して出力するA/D変換ユニット(AFE)と、前記A/D変換ユニットから出力され、ライン毎に、所定の順序で入力される前記チャンネル毎の画像データを、1ラインの画像データとなるようにチャンネル番号(ch_no)順に並び替える並び替え手段を有する画像処理ユニット(SoC)と、を備え、前記並び替え手段は、下記に示す所定の公式により、前記画像データそれぞれが入力される順番に対応する前記各種カウンター値、および前記各種設定値に基づいて、前記画像データそれぞれのセンサーch_noを算出し、前記画像データをセンサーch_no順に並び替える、ことを特徴とする。
<公式>
センサーch_no = (AFE総入力ch数/SoC入力ch数) * (SoC入力chカウンター)
+ (ch内データ飛び幅) * (SoC入力データカウンター)
+ (データ飛び幅カウンター)
<カウンターの定義>
・SoC入力chカウンター:初期値0、最大値(SoC入力ch数−1)
・SoC入力データカウンター:初期値0、最大値(((AFE総入力ch数/AFE総出力ch数)/ ch内データ飛び幅)−1)
・データ飛び幅カウンター:初期値0、最大値(ch内データ飛び幅−1)
・カウンターの優先順位:SoC入力chカウンター > SoC入力データカウンター > データ飛び幅カウンター
<設定値>
・SoC入力ch数:SoCの入力チャンネル数
・AFE総入力ch数:AFEの入力チャンネル数の合計
・AFE総出力ch数:AFEの出力チャンネル数の合計
・データ飛び幅:AFEにおける、次に出力すべきチャンネル番号とその前に出力したチャンネル番号との間隔(1以上)
・各種カウンターの最大値
【0011】
ここで、上記の画像読取装置であって、前記A/D変換ユニットと前記画像処理ユニットとの間に、前記A/D変換ユニットからの入力チャンネル数をそれよりも少ないチャンネル数に変換して出力する変換チップ(chip)を備え、前記並び替え手段は、下記に示す所定の公式に基づいて、前記画像データの並び替えを行う、ことを特徴としていてもよい。
<公式>
センサーch_no = (AFE総入力ch数/SoC入力ch数) * (SoC入力chカウンター)
+ (AFE総入力ch数/AFE総出力ch数) * (変換chipカウンター)
+ (ch内データ飛び幅) * (SoC入力データカウンター)
+ (データ飛び幅カウンター)
<カウンターの定義>
・変換chipカウンター:初期値0、最大値((AFE総出力ch数/変換chip出力ch数)−1)
・カウンターの優先順位:SoC入力chカウンター > 変換chipカウンター(chip_cnt) > SoC入力データカウンター > データ飛び幅カウンター
<設定値>
・変換chip出力ch数:変換チップの出力チャンネル数
【0012】
また、上記のいずれかの画像読取装置であって、前記並び替え手段は、算出したセンサーch_noが(センサーch数−1)よりも大きい場合、当該画像データに対する処理をスキップする、ことを特徴としていてもよい。
【0013】
また、上記のいずれかの画像読取装置であって、RAM、ROM、およびCPUを備え、前記並び替え手段は、前記画像データのセンサーch_noの算出および前記画像データの並び替えを行う回路を有し、前記各種設定値は、前記ROMに予め格納されており、前記CPUによって前記並び替え手段に設定され、前記並び替え手段は、センサーch_no順に並び替えた前記画像データを、前記RAMに書き込む、ことを特徴としていてもよい。
【0014】
また、上記のいずれかの画像読取装置であって、RAM、ROM、およびCPUを備え、前記並び替え手段は、前記ROMに格納された所定のプログラムが前記CPUに実行されることより、前記画像データのセンサーch_noの算出を行い、センサーch_no順に並び替えた前記画像データを、前記RAMに書き込む回路を有する、ことを特徴としていてもよい。
【0015】
上記の課題を解決するための本発明の他の態様は、画像読取装置における画像データ並び替え方法であって、前記画像読取装置は、複数チャンネル(ch)のラインイメージセンサーと、前記チャンネル毎に読み取られた画像データをA/D変換して出力するA/D変換ユニット(AFE)と、前記A/D変換ユニットから出力され、ライン毎に、所定の順序で入力される前記チャンネル毎の画像データを、1ラインの画像データとなるようにチャンネル番号(ch_no)順に並び替える並び替え処理を実行する画像処理ユニット(SoC)と、を備え、前記並び替え処理は、下記に示す所定の公式により、前記画像データそれぞれが入力される順番に対応する前記各種カウンター値、および前記各種設定値に基づいて、前記画像データそれぞれのセンサーch_noを算出し、前記画像データをセンサーch_no順に並び替える、ことを特徴とする。
<公式>
センサーch_no = (AFE総入力ch数/SoC入力ch数) * (SoC入力chカウンター)
+ (ch内データ飛び幅) * (SoC入力データカウンター)
+ (データ飛び幅カウンター)
<カウンターの定義>
・SoC入力chカウンター:初期値0、最大値(SoC入力ch数−1)
・SoC入力データカウンター:初期値0、最大値(((AFE総入力ch数/AFE総出力ch数)/ ch内データ飛び幅)−1)
・データ飛び幅カウンター:初期値0、最大値(ch内データ飛び幅−1)
・カウンターの優先順位:SoC入力chカウンター > SoC入力データカウンター > データ飛び幅カウンター
<設定値>
・SoC入力ch数:SoCの入力チャンネル数
・AFE総入力ch数:AFEの入力チャンネル数の合計
・AFE総出力ch数:AFEの出力チャンネル数の合計
・データ飛び幅:AFEにおける、次に出力すべきチャンネル番号とその前に出力したチャンネル番号との間隔(1以上)
・各種カウンターの最大値
【図面の簡単な説明】
【0016】
【図1】本発明の一実施形態に係る画像読取装置の、ハードウェアの概略構成の一例を示すブロック図。
【図2】センサーチャンネル番号を算出するための公式を示す図。
【図3】各種条件に対応する簡略化した公式を示す図。
【図4】変換チップ未使用時の各種条件の例に対応する公式およびデータ順序を示す図。
【図5】変換チップ未使用時の各種条件の例に対応する公式およびデータ順序を示す図。
【図6】変換チップ使用時の各種条件の例に対応する公式およびデータ順序を示す図。
【図7】その他の各種条件の例に対応する公式およびデータ順序を示す図。
【図8】AFEおよびSoCの第1構成例を示す図。
【図9】第1構成例における各種カウンター値とチャンネル番号の関係を説明する図。
【図10】AFEおよびSoCの第2構成例を示す図。
【図11】第2構成例における各種カウンター値とチャンネル番号の関係を説明する図。
【図12】AFEおよびSoCの第3構成例を示す図。
【図13】第3構成例における各種カウンター値とチャンネル番号の関係を説明する図。
【図14】AFEおよびSoCの第4構成例を示す図。
【図15】第4構成例における各種カウンター値とチャンネル番号の関係を説明する図。
【図16】AFEおよびSoCの第5構成例を示す図。
【図17】第5構成例における各種カウンター値とチャンネル番号の関係を説明する図。
【図18】AFEおよびSoCの第6構成例を示す図。
【図19】第6構成例における各種カウンター値とチャンネル番号の関係を説明する図。
【図20】AFEおよびSoCの第7構成例を示す図。
【図21】第7構成例における各種カウンター値とチャンネル番号の関係を説明する図。
【図22】AFEおよびSoCの第8構成例を示す図。
【図23】第8構成例における各種カウンター値とチャンネル番号の関係を説明する図。
【図24】画像データの並び替え処理を示すフロー図。
【図25】画像データの順番をチャンネル番号に変換するテーブルの構成例を示す図。
【発明を実施するための形態】
【0017】
以下、本発明の一実施形態について、図面を参照して説明する。
【0018】
図1は、本発明の一実施形態に係る画像読取装置1の、ハードウェアの概略構成の一例を示すブロック図である。本図は、各チャンネルの画像データの並び替えに関する構成を中心に示している。
【0019】
画像読取装置1は、いわゆるスキャナー、コピー機、複合機等の装置である。画像読取装置1は、例えば、CIS方式である。画像読取装置1は、基本的には、ラインイメージセンサー10、AFE20、SoC40を有する。また、画像読取装置1は、設計仕様に応じて、変換チップ30およびパラレル/シリアル変換回路50の少なくとも一方を有する。
【0020】
ラインイメージセンサー10は、1ライン単位で画像データ(アナログデータ)を生成し、AFE20に出力する。
【0021】
ラインイメージセンサー10の仕様としては、様々なものが想定される。例えば、1つのチャンネルで構成されたものや、主走査方向に並ぶ複数のチャンネルで構成されたものである。チャンネルが1つの場合、原稿に光を当てることによりラインイメージセンサー10で生成された1ライン分の画像データ(アナログデータ)は、1つのチャンネル単位のデータで構成される。当該1つのチャンネルで生成された画像データは、シリアルに、AFE20に出力される。チャンネルが複数の場合、生成された1ライン分の画像データ(アナログデータ)は、複数のチャンネル単位のデータで構成される。各チャンネルで生成された画像データは、パラレルに、AFE20に出力される。
【0022】
AFE20は、ラインイメージセンサー10から出力されたアナログの画像データを受け付け、デジタルの画像データに変換して、後段の回路(変換チップ30、パラレル/シリアル変換回路50、もしくは画像処理回路60)に出力する。AFE20は、1つのAFE回路で構成されていてもよいし、複数のAFE回路が組み合わされて構成されていてもよい。
【0023】
1つのAFE回路の仕様としては、様々なものが想定される。例えば、シリアル入力された1つのチャンネルの画像データを、そのまま1つのチャンネルのデータとしてシリアル出力する構成のものがある。また、パラレル入力された複数のチャンネルの画像データを、所定のチャンネルの順序で1つのチャンネルにまとめてシリアル出力する構成のものがある。所定のチャンネルの順序としては、チャンネル番号順(例えば、チャンネル数=4の場合、0、1、2、3の順)や、チャンネル番号を所定数ずつ飛ばした順序(チャンネル数=4かつ飛び幅2の場合、0、2、1、3の順)がある。
【0024】
なお、AFE20がシリアル出力である場合(AFE20が1つのAFE回路である場合)、後段の変換チップ30およびパラレル/シリアル変換回路50は、設ける必要がない。AFE20がパラレル出力である場合(AFE20が複数のAFE回路である場合)、後段回路として、変換チップ30もしくはパラレル/シリアル変換回路50が設けられる。
【0025】
変換チップ30は、AFE20から複数のチャンネルでパラレル出力された画像データを受け付け、チャンネル数を変換して、後段の回路(パラレル/シリアル変換回路50、もしくは画像処理回路60)に出力する。
【0026】
変換チップ30の仕様としては、様々なものが想定される。例えば、パラレル入力された複数チャンネルの画像データを、所定のチャンネルの順序で1つのチャンネルにまとめてシリアル出力する構成のものがある。また、パラレル入力された複数チャンネルの画像データを、所定数ごとにまとめて、入力よりも少ないチャンネル数でパラレル出力する構成のものがある。
【0027】
なお、変換チップ30がシリアル出力である場合、後段のパラレル/シリアル変換回路50は、設ける必要がない。変換チップ30がパラレル出力である場合、後段回路として、パラレル/シリアル変換回路50が設けられる。
【0028】
SoC40は、AFE20もしくは変換チップ30から入力された画像データの並び替え、各種の画像処理を行うユニットである。SoC40は、基本的には、画像処理回路60、RAM70、CPU80、ROM90を有する。また、SoC40は、設計仕様に応じて、パラレル/シリアル変換回路50を有する。
【0029】
パラレル/シリアル変換回路50は、AFE20もしくは変換チップ30から複数のチャンネルでパラレル出力された画像データを受け付け、所定のチャンネルの順序で1つのチャンネルにまとめて、後段の回路(画像処理回路60)にシリアル出力する。例えば、パラレル入力が2chの場合、各チャンネルから入力される画像データを交互に取得して、シリアル出力する。
【0030】
画像処理回路60は、AFE20もしくは変換チップ30、パラレル/シリアル変換回路50から、シリアル出力された各チャンネルの画像データを受け付け、所定の画像処理(例えば、シェーディング補正、ガンマ補正など)を行うとともに、各チャンネルの画像データを、ラインイメージセンサー10における主走査方向のチャンネルの順序になる(ラインの先頭画素から最後の画素まで順に並ぶ)ように、RAM70に書き込む。
【0031】
RAM70は、CPU80が実行するプログラムや、画像処理回路60によりデータ順序が並び替えられた画像データ、等を一時的に記憶するために使用される大容量の記憶装置である。RAM70は、例えば、SDRAM、DDR−SDRAMなどの揮発性メモリーである。
【0032】
CPU80は、ROM90から所定のプログラムをRAM70に読み出して実行することにより、各種の処理を実現する。CPU80は、SoC40を統合的に制御したり、RAM70に格納されている画像データに所定の画像処理を行ったりする。
【0033】
ROM90は、CPU80が実行するための各種プログラムやデータが記憶されている記憶装置である。ROM90は、例えば、不揮発性のフラッシュROMなどである。
【0034】
以上が、本実施形態に係る画像読取装置1の画像データの並び替えに関連する構成である。従って、上記の画像読取装置1の構成は、本願発明の特徴を説明するにあたっての主要構成を説明したのであって、上記に限られない。また、上記の画像読取装置1の構成は、一般的な画像読取装置が備える他の構成を排除するものではない。
【0035】
例えば、画像処理回路60は、各チャンネルの画像データの並び替えを行う専用の回路であってもよい。この場合、画像処理回路60の他に、シェーディング補正やガンマ補正等の各種画像処理を行うための回路が設けられていてもよい。
【0036】
さて、上述したように、画像読取装置1は、様々な仕様の部品(ラインイメージセンサー10、AFE20、変換チップ30、パラレル/シリアル変換回路50)の組み合わせにより構成されることが想定される。そのため、画像処理回路60にシリアル入力される、ラインイメージセンサー10の各チャンネルの画像データの順序は、上記各種部品の組み合わせ方によって異なることとなる。
【0037】
そこで、本実施形態の画像処理回路60は、上記各種部品の組み合わせ方によって異なる様々な画像データの順序に、汎用的に対応して、画像データの並び替えを行うことができるように、以下に説明する公式に基づく回路構成を有する。この構成により、画像処理回路60は、順次入力される、1ラインの各チャンネルの画像データについて、そのチャンネル番号を特定することができる。
【0038】
図2は、センサーチャンネル番号を算出するための公式を示す図である。なお、以下では適宜、チャンネル番号を「ch_no」と、チャンネルを「ch」と、記述する。
【0039】
<センサーch_no算出公式>
センサーch_no = (AFE総入力ch数/SoC入力ch数) * (SoC入力chカウンター)
+ (AFE総入力ch数/AFE総出力ch数) * (変換chipカウンター)
+ (ch内データ飛び幅) * (SoC入力データカウンター)
+ (データ飛び幅カウンター)
【0040】
<カウンター>
・SoC入力chカウンター(ch_cnt):初期値0、(SoC入力ch数−1)分カウント
・変換chipカウンター(chip_cnt):初期値0、((AFE総出力ch数/変換chip出力ch数)−1)分カウント、変換chip使用時に有効
・SoC入力データカウンター(datain_cnt):初期値0、(((AFE総入力ch数/AFE総出力ch数)/ ch内データ飛び幅)−1)分カウント
・データ飛び幅カウンター(jump_cnt):初期値0、(ch内データ飛び幅−1)分カウント
【0041】
・カウンターの優先順位:上記の各種カウンターをカウントする優先順位は以下の通りである。
SoC入力chカウンター(ch_cnt) > 変換chipカウンター(chip_cnt)
> SoC入力データカウンター(datain_cnt) > データ飛び幅カウンター(jump_cnt)
・カウンターのカウント手順:上位のカウンターから順に最大値までカウントし、上位のカウンターが最大値となった場合、下位のカウンターを1カウントアップし、上位のカウンターを0に戻してカウントアップする。すなわち、上位のカウンターが最大値までカウントされた場合、繰り上げて、下位のカウンターに1繰り入れる。例えば、各カウンターの最大値が1である場合、各カウンターの値(ch_cnt, chip_cnt, datain_cnt, jump_cnt)は、(0,0,0,0)、(1,0,0,0)、(0,1,0,0)、(1,1,0,0)、(0,0,1,0)、(1,0,1,0)、(0,1,1,0)、(1,1,1,0)、(0,0,0,1)のように変化していく。
【0042】
<条件(設定値)>
・SoC入力ch数:SoCの入力チャンネル数
・AFE総入力ch数:AFEの入力チャンネル数(AFEが複数のAFE回路で構成される場合は、各AFE回路の入力チャンネル数の合計)、AFE総入力ch数 > センサーch数の場合、使用されない入力チャンネルが存在すると判定可能。
・AFE総出力ch数:AFEの出力チャンネル数(AFEが複数のAFE回路で構成される場合は、各AFE回路の出力チャンネル数の合計)
・センサーch数:センサーのch数
・データ飛び幅:各AFE回路における、次に出力すべきチャンネル番号とその前に出力したチャンネル番号との間隔、1以上の値が設定される。
・変換chip出力ch数:変換チップの出力チャンネル数、0が設定された場合、変換chip未使用。
・各センサーch内データ数:各センサーチャンネルから画像データとして取得すべき有効データ数、不必要なデータを読み捨てるために使用される。
・各種カウンターの最大値
【0043】
上記の公式は、条件(設定値)に応じて簡略化することができる。図3は、各種条件に対応する簡略化した公式を示す図である。
【0044】
<各種条件(設定値)に対応する簡略化したセンサーch_no算出公式>
(1)SoC入力数が1ch、変換chip未使用、飛び幅1の場合:
センサーch_no = (ch内データ飛び幅) * (SoC入力データカウンター)
(2)SoC入力ch数が1ch、変換chip未使用、飛び幅2以上の場合:
センサーch_no = (ch内データ飛び幅) * (SoC入力データカウンター)
+ (データ飛び幅カウンター)
(3)SoC入力ch数が複数ch、変換chip未使用、飛び幅1の場合:
センサーch_no = (AFE総入力ch数/SoC入力ch数) * (SoC入力chカウンター)
+ (ch内データ飛び幅) * (SoC入力データカウンター)
(4)SoC入力ch数が複数ch、変換chip未使用、飛び幅2以上の場合:
センサーch_no = (AFE総入力ch数/SoC入力ch数) * (SoC入力chカウンター)
+ (ch内データ飛び幅) * (SoC入力データカウンター)
+ (データ飛び幅カウンター)
(5)SoC入力ch数が1ch、変換chip使用、飛び幅1の場合:
センサーch_no = (AFE総入力ch数/AFE総出力ch数) * (変換chipカウンター)
+ (ch内データ飛び幅) * (SoC入力データカウンター)
(6)SoC入力ch数が1ch、変換chip使用、飛び幅2以上の場合:
センサーch_no = (AFE総入力ch数/AFE総出力ch数) * (変換chipカウンター)
+ (ch内データ飛び幅) * (SoC入力データカウンター)
+ (データ飛び幅カウンター)
(7)SoC入力ch数が複数ch、変換chip使用、飛び幅1の場合:
センサーch_no = (AFE総入力ch数/SoC入力ch数) * (SoC入力chカウンター)
+ (AFE総入力ch数/AFE総出力ch数) * (変換chipカウンター)
+ (ch内データ飛び幅) * (SoC入力データカウンター)
(8)SoC入力ch数が複数ch、変換chip使用、飛び幅2以上の場合:
センサーch_no = (AFE総入力ch数/SoC入力ch数) * (SoC入力chカウンター)
+ (AFE総入力ch数/AFE総出力ch数) * (変換chipカウンター)
+ (ch内データ飛び幅) * (SoC入力データカウンター)
+ (データ飛び幅カウンター)
【0045】
画像処理回路60は、上述した公式に基づく演算を行うための回路構成を有する。画像処理回路60は、ライン毎に、各チャンネルの画像データの入力が開始されると、上述した手順で各種カウンターをカウントアップし、各種カウンター値の組み合わせごとにセンサーch_noを算出する。このようにして、順次シリアルに入力される画像データに対応するチャンネル番号を特定し、ラインイメージセンサー10における主走査方向のチャンネルの順序になるように、画像データをRAM70に書き込むことができる。
【0046】
なお、上記の各種条件(設定値)は、画像処理回路60による演算の開始前に、設定される。具体的には、上記の各種条件(設定値)は、画像読取装置もしくはSoC40の製造時などに、ROM90に記録しておく。そして、上記の各種条件(設定値)は、画像読取装置1の起動時などに、CPU80が所定のプログラムを実行することによりROM90から読み出され、画像処理回路60のレジスター等に設定されるようにする。このようにして、画像処理回路60は、上述した公式に基づく演算を行うことができる。
【0047】
図4〜7に、上記の公式に具体的な条件(設定値)を設定した場合の、画像処理回路60に入力される各チャンネルの画像データ順序(データ配列)を示す。図4および図5は、変換チップ未使用時の各種条件の例に対応する公式およびデータ順序を示す図である。図6は、変換チップ使用時の各種条件の例に対応する公式およびデータ順序を示す図である。図7は、その他の各種条件の例に対応する公式およびデータ順序を示す図である。なお、これらの図は、想定される全ての条件を網羅しているわけではなく、有用な条件例を列挙したものである。
【0048】
上記各図の見方は以下の通りである。
・AFEの構成「a, b」:
「AFE総入力ch数, AFE総出力ch数」、この場合、データ飛び幅は1。
・AFEの構成「(a, b), c」:
「(AFE総入力ch数, AFE総出力ch数), データ飛び幅」
・AFEの構成「(a, b, c), d」:
「(AFE総入力ch数, AFE総出力ch数, 変換chip出力ch数), データ飛び幅」
・公式のパターン:
パターンの番号(1)〜(8)は、図3の各公式(1)〜(8)に対応する。
・公式に設定値を当てはめた式中の「(0,….n)」:
各種カウンターがカウントされる範囲および値を示す。
・1chデータ配列「a_b」:
「センサーch番号_ライン単位のデータ番号」
・1chデータ配列「skip」
AFE総入力ch数 > センサーch数の構成の場合に、使用されていないセンサーchのデータを示す。
【0049】
図8〜23に、画像読取装置1の構成例と、各構成例におけるカウンター値とチャンネル番号の関係を示す。
【0050】
なお、図中の「data_ch」は、SoC40に入力されるチャンネルを示す。また、「pre_data_ch」は、変換チップ30に入力されるチャンネルを示す。また、「data_cnt」は、1ライン毎にカウントされるカウンターである。また、「sel_data」は、選択されたデータを示す。例えば、「Dx_y」は、SoC40に入力されるx番目(data_chx)のチャンネルから入力されたy番目の画像データを示す。
【0051】
図8は、AFEおよびSoCの第1構成例を示す図である。図9は、第1構成例における各種カウンター値とチャンネル番号の関係を説明する図である。
【0052】
第1構成例は、4chセンサーと、4ch入力1ch出力・飛び幅1のAFEとを用いた構成である。この構成の各種設定値(センサーch数4, AFE構成(4,1),1)を公式に当て嵌めると、以下のような式になる(図4参照)。
式:0+0+(0,1,2,3)+0
従って、画像処理回路60に入力される画像データのセンサーチャンネル番号の順序は、1ラインごとに、0, 1, 2, 3となる(図9のch_no参照)。
【0053】
図10は、AFEおよびSoCの第2構成例を示す図である。図11は、第2構成例における各種カウンター値とチャンネル番号の関係を説明する図である。
【0054】
第2構成例は、4chセンサーと、4ch入力1ch出力・飛び幅2のAFEとを用いた構成である。この構成の各種設定値(センサーch数4, AFE構成(4,1),2)を公式に当て嵌めると、以下のような式になる(図4参照)。
式:0+0+2(0,1)+(0,1)
従って、画像処理回路60に入力される画像データのセンサーチャンネル番号の順序は、1ラインごとに、0, 2, 1, 3となる(図11のch_no参照)。
【0055】
図12は、AFEおよびSoCの第3構成例を示す図である。図13は、第3構成例における各種カウンター値とチャンネル番号の関係を説明する図である。
【0056】
第3構成例は、16chセンサーと、4ch入力1ch出力・飛び幅1のAFEを4個、を用いた構成である。この構成の各種設定値(センサーch数16, AFE構成(16,4),1)を公式に当て嵌めると、以下のような式になる(図5参照)。
式:16/4(0,1,2,3)+0+(0,1,2,3)+0
従って、画像処理回路60に入力される画像データのセンサーチャンネル番号の順序は、1ラインごとに、0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15となる(図13のch_no参照)。
【0057】
図14は、AFEおよびSoCの第4構成例を示す図である。図15は、第4構成例における各種カウンター値とチャンネル番号の関係を説明する図である。
【0058】
第4構成例は、16chセンサーと、4ch入力1ch出力・飛び幅2のAFEを4個、を用いた構成である。この構成の各種設定値(センサーch数16, AFE構成(16,4),2)を公式に当て嵌めると、以下のような式になる(図5参照)。
式:16/4(0,1,2,3)+0+2(0,1)+(0,1)
従って、画像処理回路60に入力される画像データのセンサーチャンネル番号の順序は、1ラインごとに、0, 4, 8, 12, 2, 6, 10, 14, 1, 5, 9, 13, 3, 7, 11, 15となる(図15のch_no参照)。
【0059】
図16は、AFEおよびSoCの第5構成例を示す図である。図17は、第5構成例における各種カウンター値とチャンネル番号の関係を説明する図である。
【0060】
第5構成例は、16chセンサーと、4ch入力1ch出力・飛び幅1のAFEを4個と、変換チップ(4から1ch変換)と、を用いた構成である。この構成の各種設定値(センサーch数16, AFE構成(16,4,1),1)を公式に当て嵌めると、以下のような式になる(図6参照)。
式:0+16/4(0,1,2,3)+(0,1,2,3)+0
従って、画像処理回路60に入力される画像データのセンサーチャンネル番号の順序は、1ラインごとに、0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15となる(図17のch_no参照)。
【0061】
図18は、AFEおよびSoCの第6構成例を示す図である。図19は、第6構成例における各種カウンター値とチャンネル番号の関係を説明する図である。
【0062】
第6構成例は、16chセンサーと、4ch入力1ch出力・飛び幅2のAFEを4個と、変換チップ(4から1ch変換)と、を用いた構成である。この構成の各種設定値(センサーch数16, AFE構成(16,4,1),2)を公式に当て嵌めると、以下のような式になる(図6参照)。
式:0+16/4(0,1,2,3)+2(0,1)+(0,1)
従って、画像処理回路60に入力される画像データのセンサーチャンネル番号の順序は、1ラインごとに、0, 4, 8, 12, 2, 6, 10, 14, 1, 5, 9, 13, 3, 7, 11, 15となる(図19のch_no参照)。
【0063】
図20は、AFEおよびSoCの第7構成例を示す図である。図21は、第7構成例における各種カウンター値とチャンネル番号の関係を説明する図である。
【0064】
第7構成例は、16chセンサーと、4ch入力1ch出力・飛び幅1のAFEを4個と、変換チップ(4から2ch変換)と、を用いた構成である。この構成の各種設定値(センサーch数16, AFE構成(16,4,2),1)を公式に当て嵌めると、以下のような式になる(図6参照)。
式:16/2(0,1)+16/4(0,1)+(0,1,2,3)+0
従って、画像処理回路60に入力される画像データのセンサーチャンネル番号の順序は、1ラインごとに、0, 8, 4, 12, 1, 9, 5, 13, 2, 10, 6, 14, 3, 11, 7, 15となる(図21のch_no参照)。
【0065】
図22は、AFEおよびSoCの第8構成例を示す図である。図23は、第8構成例における各種カウンター値とチャンネル番号の関係を説明する図である。
【0066】
第8構成例は、16chセンサーと、4ch入力1ch出力・飛び幅2のAFEを4個と、変換チップ(4から2ch変換)と、を用いた構成である。この構成の各種設定値(センサーch数16, AFE構成(16,4,2),2)を公式に当て嵌めると、以下のような式になる(図6参照)。
式:16/2(0,1)+16/4(0,1)+2(0,1)+(0,1)
従って、画像処理回路60に入力される画像データのセンサーチャンネル番号の順序は、1ラインごとに、0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15となる(図23のch_no参照)。
【0067】
図24は、画像データの並び替え処理を示すフロー図である。本フローは、画像処理回路60が、1ラインを構成する各チャンネルの画像データ順次受け付け、ラインイメージセンサー10における主走査方向のチャンネル順序になるように、RAM70に書き込む処理を示している。なお、本フローの開始の際には、上述した各種設定値、カウンターの初期値が画像処理回路60に設定されている。
【0068】
S1では、画像処理回路60は、SoC入力ch数(設定値)が1chであるか否かを判定する。SoC入力ch数が1chである場合(S1:YES)、処理をS11に進める。SoC入力ch数が1chでない場合(S1:NO)、処理をS2に進める。
【0069】
S2では、画像処理回路60は、SoC入力chカウンターが最大値(設定値:(SoC入力ch数−1))と等しいか否かを判定する。SoC入力chカウンターが最大値と等しい場合(S2:YES)、処理をS11に進める。SoC入力chカウンターが最大値と等しくない場合(S2:NO)、処理をS3に進める。
【0070】
S3では、画像処理回路60は、対象の画像データが必要なデータであるか否かを判定する。具体的には、公式により算出したセンサーch_no > (センサーch数−1)か否かを判定する。算出したセンサーch_noが(センサーch数−1)より大きい場合(S3:NO)、S4をスキップし、処理をS5に進める。算出したセンサーch_noが(センサーch数−1)以下の場合(S3:YES)、処理をS4に進める。
【0071】
S4では、画像処理回路60は、対象の画像データを、公式により算出したセンサーch_noの画像データとして、RAM70の対応するアドレスに書き込む。ここで、RAM70に格納するデータ数は、算出したセンサーch_noのセンサーch内有効データ数(設定値)が示すデータ数である。画像処理回路60は、データをRAM70に格納し、処理をS5に進める。
【0072】
S5では、画像処理回路60は、SoC入力chカウンターを1インクリメントする。そして、処理をS2に戻す。
【0073】
S11では、画像処理回路60は、変換chip出力ch数(設定値)が0であるか否かを判定する。変換chip出力ch数が0である場合(S11:YES)、処理をS21に進める。変換chip出力ch数が0でない場合(S11:NO)、処理をS12に進める。
【0074】
S12では、画像処理回路60は、変換chipカウンターが最大値(設定値:((AFE総出力ch数/変換chip出力ch数)−1))と等しいか否かを判定する。変換chipカウンターが最大値と等しい場合(S12:YES)、処理をS21に進める。変換chipカウンターが最大値と等しくない場合(S12:NO)、処理をS13に進める。
【0075】
S13およびS14の処理は、それぞれS3およびS4と同様である。
【0076】
S15では、画像処理回路60は、SoC入力chカウンターを0クリアし、変換chipカウンターを1インクリメントする。そして、処理をS1に戻す。
【0077】
S21では、画像処理回路60は、AFE総入力ch数(設定値)およびAFE総出力ch数(設定値)の比率が1:1であるか否かを判定する。比率が1:1である場合(S21:YES)、処理をS31に進める。比率が1:1でない場合(S21:NO)、処理をS22に進める。
【0078】
S22では、画像処理回路60は、SoC入力データカウンターが最大値(設定値:(((AFE総入力ch数/AFE総出力ch数)/ ch内データ飛び幅)−1))と等しいか否かを判定する。SoC入力データカウンターが最大値と等しい場合(S22:YES)、処理をS31に進める。SoC入力データカウンターが最大値と等しくない場合(S22:NO)、処理をS23に進める。
【0079】
S23およびS24の処理は、それぞれS3およびS4と同様である。
【0080】
S25では、画像処理回路60は、SoC入力chカウンターおよび変換chipカウンターを0クリアし、SoC入力データカウンターを1インクリメントする。そして、処理をS1に戻す。
【0081】
S31では、画像処理回路60は、データ飛び幅(設定値)が1であるか否かを判定する。データ飛び幅が1である場合(S31:YES)、処理をS43に進める。データ飛び幅が1でない場合(S31:NO)、処理をS32に進める。
【0082】
S32では、画像処理回路60は、データ飛び幅カウンターが最大値(設定値:(ch内データ飛び幅−1))と等しいか否かを判定する。データ飛び幅カウンターが最大値と等しい場合(S32:YES)、処理をS43に進める。データ飛び幅カウンターが最大値と等しくない場合(S32:NO)、処理をS33に進める。
【0083】
S33およびS34の処理は、それぞれS3およびS4と同様である。
【0084】
S35では、画像処理回路60は、SoC入力chカウンターおよび変換chipカウンター、SoC入力データカウンターを0クリアし、データ飛び幅カウンターを1インクリメントする。そして、処理をS1に戻す。
【0085】
S43およびS44の処理は、それぞれS3およびS4と同様である。
【0086】
S45では、画像処理回路60は、SoC入力chカウンターおよび変換chipカウンター、SoC入力データカウンター、データ飛び幅カウンターを0クリアする。そして、本フローを終了する。
【0087】
以上のようにして、画像処理回路60は、順次入力された画像データのチャンネル番号を特定することができる。また、特定したチャンネル番号に従って、画像データをチャンネル順に並び替えることができる。
【0088】
以上、本発明の一実施形態について説明した。本実施形態によれば、画像読取装置を、様々な構成のラインイメージセンサーやAFE等の部品に汎用的に対応可能とする技術を提供することができる。
【0089】
すなわち、AFEやセンサー等の構成によってSoCを大きく作り変える必要が無くなる。また、既存にない仕様のAFE等の部品が新たに開発され、当該部品が画像読取装置に採用されても、大きな設計変更を伴わずに対応可能となる。さらに、製品に要求される性能やコスト等に応えられるように、大きな設計変更を伴わずに様々な部品の組み合わせを検討することができるため、最適なシステム構成を実現し易くなる。
【0090】
なお、上記の本発明の実施形態は、本発明の要旨と範囲を例示することを意図し、限定するものではない。多くの代替物、修正および変形例が当業者にとって明らかである。
【0091】
例えば、上記の実施形態では、画像処理回路60が、入力された画像データごとにチャンネル番号を算出する回路構成を有するが、CPU80がチャンネル番号を算出するようにしてもよい。
【0092】
具体的には、ROM90に、チャンネル番号算出公式による演算を実行するための所定のプログラム、各種条件(設定値)を格納しておく。また、画像データが入力された順番を、センサーチャンネル番号に変換するための変換テーブルを用意しておく。変換テーブルは、例えば、図25に示すようなSRAMにより実現することができる。本図に示すように、SRAMは、センサーch数を表すことのできるビット数の領域をセンサーch数分有する容量である。例えば、センサーch数=32chの場合、5bit×32wordの領域を用意すればよい。SRAMは、画像処理回路60内に設けられても良いし、画像処理回路60の外のSoC40上に設けられてもよい。
【0093】
CPU80は、画像読取装置1の起動時などに、ROM90から各種設定値および所定のプログラムを読み出して実行する。そして、プログラムに従って、各種カウンターを上述した手順でカウントアップすることにより、順次チャンネル番号を算出する。また、カウンター値の組み合わせごとに順次算出したチャンネル番号を、SRAMに順次(0番目の領域から順に)格納する。
【0094】
センサーch数分のチャンネル番号がSRAMに格納された後、画像処理回路60は、ライン毎に、実際に入力された各チャンネルの画像データについて、入力された順番に対応するチャンネル番号をSRAMを参照して特定する。また、各チャンネルの画像データを、それぞれ特定したチャンネル番号に対応するRAM70のアドレスに格納する。
【0095】
上記のように構成すれば、上述の実施形態と同様の機能を実現するとともに、ハードウェアのゲート数を大幅に削減することができる。
【0096】
また、例えば、上記の実施形態では、1ラインのモノクロのセンサーを例に挙げて説明したが、3ラインのRGBセンサーの場合でも、各色について同様に処理すればよい。
【符号の説明】
【0097】
1:画像読取装置、10:ラインイメージセンサー、20:AFE、30:変換チップ、40:SoC、50:パラレル/シリアル変換回路、60:画像処理回路、70:RAM、80:CPU、90:ROM

【特許請求の範囲】
【請求項1】
画像読取装置であって、
複数チャンネル(ch)のラインイメージセンサーと、
前記チャンネル毎に読み取られた画像データをA/D変換して出力するA/D変換ユニット(AFE)と、
前記A/D変換ユニットから出力され、ライン毎に、所定の順序で入力される前記チャンネル毎の画像データを、1ラインの画像データとなるようにチャンネル番号(ch_no)順に並び替える並び替え手段を有する画像処理ユニット(SoC)と、を備え、
前記並び替え手段は、
下記に示す所定の公式により、前記画像データそれぞれが入力される順番に対応する前記各種カウンター値、および前記各種設定値に基づいて、前記画像データそれぞれのセンサーch_noを算出し、前記画像データをセンサーch_no順に並び替える、
ことを特徴とする画像読取装置。
<公式>
センサーch_no = (AFE総入力ch数/SoC入力ch数) * (SoC入力chカウンター)
+ (ch内データ飛び幅) * (SoC入力データカウンター)
+ (データ飛び幅カウンター)
<カウンターの定義>
・SoC入力chカウンター:初期値0、最大値(SoC入力ch数−1)
・SoC入力データカウンター:初期値0、最大値(((AFE総入力ch数/AFE総出力ch数)/ ch内データ飛び幅)−1)
・データ飛び幅カウンター:初期値0、最大値(ch内データ飛び幅−1)
・カウンターの優先順位:SoC入力chカウンター > SoC入力データカウンター > データ飛び幅カウンター
<設定値>
・SoC入力ch数:SoCの入力チャンネル数
・AFE総入力ch数:AFEの入力チャンネル数の合計
・AFE総出力ch数:AFEの出力チャンネル数の合計
・データ飛び幅:AFEにおける、次に出力すべきチャンネル番号とその前に出力したチャンネル番号との間隔(1以上)
・各種カウンターの最大値
【請求項2】
請求項1に記載の画像読取装置であって、
前記A/D変換ユニットと前記画像処理ユニットとの間に、前記A/D変換ユニットからの入力チャンネル数をそれよりも少ないチャンネル数に変換して出力する変換チップ(chip)を備え、
前記並び替え手段は、下記に示す所定の公式に基づいて、前記画像データの並び替えを行う、
ことを特徴とする画像読取装置。
<公式>
センサーch_no = (AFE総入力ch数/SoC入力ch数) * (SoC入力chカウンター)
+ (AFE総入力ch数/AFE総出力ch数) * (変換chipカウンター)
+ (ch内データ飛び幅) * (SoC入力データカウンター)
+ (データ飛び幅カウンター)
<カウンターの定義>
・変換chipカウンター:初期値0、最大値((AFE総出力ch数/変換chip出力ch数)−1)
・カウンターの優先順位:SoC入力chカウンター > 変換chipカウンター(chip_cnt) > SoC入力データカウンター > データ飛び幅カウンター
<設定値>
・変換chip出力ch数:変換チップの出力チャンネル数
【請求項3】
請求項1または2に記載の画像読取装置であって、
前記並び替え手段は、算出したセンサーch_noが(センサーch数−1)よりも大きい場合、当該画像データに対する処理をスキップする、
ことを特徴とする画像読取装置。
【請求項4】
請求項1〜3いずれか一項に記載の画像読取装置であって、
RAM、ROM、およびCPUを備え、
前記並び替え手段は、前記画像データのセンサーch_noの算出および前記画像データの並び替えを行う回路を有し、
前記各種設定値は、前記ROMに予め格納されており、前記CPUによって前記並び替え手段に設定され、
前記並び替え手段は、センサーch_no順に並び替えた前記画像データを、前記RAMに書き込む、
ことを特徴とする画像読取装置。
【請求項5】
請求項1〜3いずれか一項に記載の画像読取装置であって、
RAM、ROM、およびCPUを備え、
前記並び替え手段は、
前記ROMに格納された所定のプログラムが前記CPUに実行されることより、前記画像データのセンサーch_noの算出を行い、
センサーch_no順に並び替えた前記画像データを、前記RAMに書き込む回路を有する、
ことを特徴とする画像読取装置。
【請求項6】
画像読取装置における画像データ並び替え方法であって、
前記画像読取装置は、
複数チャンネル(ch)のラインイメージセンサーと、
前記チャンネル毎に読み取られた画像データをA/D変換して出力するA/D変換ユニット(AFE)と、
前記A/D変換ユニットから出力され、ライン毎に、所定の順序で入力される前記チャンネル毎の画像データを、1ラインの画像データとなるようにチャンネル番号(ch_no)順に並び替える並び替え処理を実行する画像処理ユニット(SoC)と、を備え、
前記並び替え処理は、
下記に示す所定の公式により、前記画像データそれぞれが入力される順番に対応する前記各種カウンター値、および前記各種設定値に基づいて、前記画像データそれぞれのセンサーch_noを算出し、前記画像データをセンサーch_no順に並び替える、
ことを特徴とする画像データ並び替え方法。
<公式>
センサーch_no = (AFE総入力ch数/SoC入力ch数) * (SoC入力chカウンター)
+ (ch内データ飛び幅) * (SoC入力データカウンター)
+ (データ飛び幅カウンター)
<カウンターの定義>
・SoC入力chカウンター:初期値0、最大値(SoC入力ch数−1)
・SoC入力データカウンター:初期値0、最大値(((AFE総入力ch数/AFE総出力ch数)/ ch内データ飛び幅)−1)
・データ飛び幅カウンター:初期値0、最大値(ch内データ飛び幅−1)
・カウンターの優先順位:SoC入力chカウンター > SoC入力データカウンター > データ飛び幅カウンター
<設定値>
・SoC入力ch数:SoCの入力チャンネル数
・AFE総入力ch数:AFEの入力チャンネル数の合計
・AFE総出力ch数:AFEの出力チャンネル数の合計
・データ飛び幅:AFEにおける、次に出力すべきチャンネル番号とその前に出力したチャンネル番号との間隔(1以上)
・各種カウンターの最大値

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate


【公開番号】特開2011−41200(P2011−41200A)
【公開日】平成23年2月24日(2011.2.24)
【国際特許分類】
【出願番号】特願2009−189310(P2009−189310)
【出願日】平成21年8月18日(2009.8.18)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】