(57)【特許請求の範囲】
【請求項１】
所定の幅の比を持つ第１色の第１パターンと第２色の第２パターンとを有するシンボルを含む画像を撮像する撮像部と、前記画像に含まれるデータを読み取るデータ読取部との間に設けられる演算処理部によって実現され、前記画像に含まれる前記シンボルを検出するシンボル検出装置であって、
前記画像を一軸方向に読み取り、前記画像の各画素の画素値を２値化した第１画素値又は第２画素値を出力する２値化処理部と、
前記第１画素値が連続する数を表す第１連続値と、前記第２画素値が連続する数を表す第２連続値とが前記第２連続値又は前記第１連続値に切り替わると、当該切り替わり前の前記第１連続値又は前記第２連続値と、当該切り替わり後の前記第２連続値又は前記第１連続値との比を算出する算出部と、
前記算出部によって算出される前記比と、所定の幅の比との差が所定値以下である場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない、転送部と、
前記第１連続値と、前記第２連続値とを時系列的に交互に保持する第１保持部と、
前記切り替わり前に前記第１保持部が保持した前記第１連続値又は前記第２連続値を前記第１保持部から入手して保持する第２保持部と、
前記所定の幅の比の値を保持する第３保持部と
を含み、
前記算出部は、前記第１保持部に保持される前記第１連続値又は前記第２連続値と、前記第２保持部に保持される前記第２連続値又は前記第１連続値との比を算出し、
前記転送部は、前記算出部によって算出される前記比と、前記第３保持部が保持する前記所定の幅の比との差が所定値以下である場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない、
前記第３保持部は、前記所定の幅の比に許容範囲を設けた所定の許容範囲を表す値を保持しており、
転送部は、前記算出部によって算出される前記比が、前記第３保持部が保持する前記所定の許容範囲内である場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記比が前記所定の許容範囲内ではない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない、
前記転送部は、
前記算出部によって算出される前記比が、前記第３保持部が保持する前記所定の許容範囲内であるかどうかを判定する判定部と、
前記判定部によって前記比が前記所定の許容範囲内であると判定される場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記判定部によって前記比が前記所定の許容範囲内ではないと判定される場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない出力部と
を有し、
前記転送部は、
前記判定部によって前記比が前記所定の許容範囲内であると判定される回数が所定回数に達した場合に、前記出力部による前記画像の前記データ読取部への転送を可能にし、前記判定部によって前記比が前記所定の許容範囲内であると判定される回数が前記所定回数未満の場合に、前記出力部による前記画像の前記データ読取部への転送を可能にしない論理部をさらに有し、
前記出力部は、前記論理部によって前記データ読取部への転送が可能にされる場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記論理部によって前記データ読取部への転送が可能にされない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない、シンボル検出装置。
【請求項２】
前記第１保持部及び前記第２保持部は、前記撮像部によって撮像される画像のうちの第１フレームの画像が前記２値化処理部によって２値化されることによって得られる前記第１画素値及び前記第２画素値についての前記第１連続値及び前記第２連続値を保持し、
前記算出部は、前記第１保持部及び前記第２保持部で保持される、前記第１フレームの画像についての前記第１連続値及び前記第２連続値の比を算出し、
前記転送部は、前記撮像部によって撮像される画像のうちの前記第１フレームの次の第２フレームの画像が前記２値化処理部によって２値化されることによって得られる前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送する、請求項１記載のシンボル検出装置。
【請求項３】
所定の幅の比を持つ第１色の第１パターンと第２色の第２パターンとを有するシンボルを含む画像を撮像する撮像部と、
前記画像に含まれるデータを読み取るデータ読取部と、
前記撮像部と前記データ読取部との間に設けられる演算処理部によって実現され、前記画像に含まれる前記シンボルを検出するシンボル検出装置と
を含む画像処理装置であって、
前記シンボル検出装置は、
前記画像を一軸方向に読み取り、前記画像の各画素の画素値を２値化した第１画素値又は第２画素値を出力する２値化処理部と、
前記第１画素値が連続する数を表す第１連続値と、前記第２画素値が連続する数を表す第２連続値とが前記第２連続値又は前記第１連続値に切り替わると、当該切り替わり前の前記第１連続値又は前記第２連続値と、当該切り替わり後の前記第２連続値又は前記第１連続値との比を算出する算出部と、
前記算出部によって算出される前記比と、所定の幅の比との差が所定値以下である場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない、転送部と、
前記第１連続値と、前記第２連続値とを時系列的に交互に保持する第１保持部と、
前記切り替わり前に前記第１保持部が保持した前記第１連続値又は前記第２連続値を前記第１保持部から入手して保持する第２保持部と、
前記所定の幅の比の値を保持する第３保持部と
を含み、
前記算出部は、前記第１保持部に保持される前記第１連続値又は前記第２連続値と、前記第２保持部に保持される前記第２連続値又は前記第１連続値との比を算出し、
前記転送部は、前記算出部によって算出される前記比と、前記第３保持部が保持する前記所定の幅の比との差が所定値以下である場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない、
前記第３保持部は、前記所定の幅の比に許容範囲を設けた所定の許容範囲を表す値を保持しており、
転送部は、前記算出部によって算出される前記比が、前記第３保持部が保持する前記所定の許容範囲内である場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記比が前記所定の許容範囲内ではない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない、
前記転送部は、
前記算出部によって算出される前記比が、前記第３保持部が保持する前記所定の許容範囲内であるかどうかを判定する判定部と、
前記判定部によって前記比が前記所定の許容範囲内であると判定される場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記判定部によって前記比が前記所定の許容範囲内ではないと判定される場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない出力部と
を有し、
前記転送部は、
前記判定部によって前記比が前記所定の許容範囲内であると判定される回数が所定回数に達した場合に、前記出力部による前記画像の前記データ読取部への転送を可能にし、前記判定部によって前記比が前記所定の許容範囲内であると判定される回数が前記所定回数未満の場合に、前記出力部による前記画像の前記データ読取部への転送を可能にしない論理部をさらに有し、
前記出力部は、前記論理部によって前記データ読取部への転送が可能にされる場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記論理部によって前記データ読取部への転送が可能にされない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない、画像処理装置。
【請求項４】
前記算出部によって算出される前記比と、所定の幅の比との差が所定値以下ではない場合に、前記画像が前記データ読取部に転送されないことを報知する報知部をさらに含む、請求項３記載の画像処理装置。
【請求項５】
所定の幅の比を持つ第１色の第１パターンと第２色の第２パターンとを有するシンボルを含む画像を撮像する撮像部と、前記画像に含まれるデータを読み取るデータ読取部との間に設けられる演算処理部によって実現されるシンボル検出装置において、前記画像に含まれる前記シンボルを検出するシンボル検出方法であって、
前記画像を一軸方向に読み取り、前記画像の各画素の画素値を２値化した第１画素値又は第２画素値を出力する出力処理と、
前記第１画素値が連続する数を表す第１連続値と、前記第２画素値が連続する数を表す第２連続値とが前記第２連続値又は前記第１連続値に切り替わると、当該切り替わり前の前記第１連続値又は前記第２連続値と、当該切り替わり後の前記第２連続値又は前記第１連続値との比を算出する算出処理と、
前記算出される前記比と、所定の幅の比との差が所定値以下である場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない転送処理と、
前記第１連続値と、前記第２連続値とを時系列的に交互に保持する第１保持処理と、
前記切り替わり前に前記第１保持処理によって保持された前記第１連続値又は前記第２連続値を入手して保持する第２保持処理と、
前記所定の幅の比の値を保持する第３保持処理と
を含み、
前記算出処理では、前記第１保持処理によって保持される前記第１連続値又は前記第２連続値と、前記第２保持処理によって保持される前記第２連続値又は前記第１連続値との比を算出し、
前記転送処理では、前記算出処理によって算出される前記比と、前記第３保持処理で保持される前記所定の幅の比との差が所定値以下である場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない、
前記第３保持処理では、前記所定の幅の比に許容範囲を設けた所定の許容範囲を表す値を保持しており、
前記転送処理では、前記算出処理によって算出される前記比が、前記第３保持処理で保持される前記所定の許容範囲内である場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記比が前記所定の許容範囲内ではない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない、
前記転送処理は、
前記算出処理で算出される前記比が、前記第３保持処理で保持する前記所定の許容範囲内であるかどうかを判定する判定処理と、
前記判定処理で前記比が前記所定の許容範囲内であると判定する場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記判定処理で前記比が前記所定の許容範囲内ではないと判定する場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない出力処理と
を有し、
前記転送処理は、
前記判定処理で前記比が前記所定の許容範囲内であると判定する回数が所定回数に達した場合に、前記出力処理による前記画像の前記データ読取部への転送を可能にし、前記判定処理によって前記比が前記所定の許容範囲内であると判定する回数が前記所定回数未満の場合に、前記出力処理による前記画像の前記データ読取部への転送を可能にしない論理処理をさらに有し、
前記出力処理は、前記論理処理で前記データ読取部への転送が可能にされる場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記論理処理で前記データ読取部への転送が可能にされない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない、シンボル検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シンボル検出装置、画像処理装置、及び、シンボル検出方法に関する。
【背景技術】
【０００２】
従来より、二次元の撮像視野を有し情報コードが記された読取対象の画像を取込む撮像手段を備えると共に、前記読取対象に対し読取位置を示すためのマーカ光を照射するマーカ光照射手段を備える光学情報読取装置（二次元コード読取装置）がある。
【０００３】
光学情報読取装置（二次元コード読取装置）は、前記情報コードが前記撮像手段の撮像視野に相対的に進入したことを検出する進入検出手段と、この進入検出手段の検出に基づいて前記撮像手段による情報コードの読取動作を自動的に実行させる読取動作実行手段とを具備する。
【０００４】
前記進入検出手段は、前記マーカ光照射手段によりマーカ光を照射した状態で、前記撮像手段により読取対象の画像を取込むマーカ光画像取得手段と、このマーカ光画像取得手段により取込まれたマーカ光画像からマーカ光照射部位における明暗パターンを検出する明暗パターン検出手段とを有する。前記進入検出手段は、さらに、異なるタイミングで取得されたマーカ光画像における明暗パターンの変化に基づいて前記情報コードの撮像視野への進入を判断する判断手段を有する。
【０００５】
光学情報読取装置（二次元コード読取装置）は、読取制御プログラムを実行することにより、電源オン時に、マーカ光照射部によるマーカ光の照射（点灯）を連続的に行う（あるいは点滅を繰返す）制御回路を有する。
【０００６】
制御回路は、読取対象に記された二次元コードが受光センサの撮像視野内（マーカ光で示される読取位置）に相対的に進入したかどうかを常に監視し、進入を検出したときに、二次元コードの読取動作（照明部をオンし、受光センサ１３により画像を取込む動作）を自動的に実行するようになっている（例えば、特許文献１の請求項１及び明細書の段落００３２参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−１３４３０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来の光学情報読取装置（二次元コード読取装置）は、読取制御プログラムを実行する制御回路が、マーカ光の照射、二次元コードの監視、二次元コードの読取動作を自動的に実行する。
【０００９】
ところで、従来の光学情報読取装置（二次元コード読取装置）は、常に二次元コードの読取が成功するわけではなく、二次元コードの読取が成功しない場合もある。しかしながら、制御回路は、電源オン時には、上述のような制御を自動的に実行している。
【００１０】
読取制御プログラムを実行する制御回路は、コンピュータによって実現されるため、消費電力が大きく、二次元コードの読取が成功しない場合においても、例えば、メモリにアクセスする等の処理を行うことにより、消費電力が大きい。
【００１１】
以上のように、従来の光学情報読取装置（二次元コード読取装置）は、消費電力が大きいという課題がある。
【００１２】
そこで、消費電力を低減したシンボル検出装置、画像処理装置、及び、シンボル検出方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の実施の形態のシンボル検出装置は、所定の幅の比を持つ第１色の第１パターンと第２色の第２パターンとを有するシンボルを含む画像を撮像する撮像部と、前記画像に含まれるデータを読み取るデータ読取部との間に設けられる演算処理部によって実現され、前記画像に含まれる前記シンボルを検出するシンボル検出装置であって、前記画像を一軸方向に読み取り、前記画像の各画素の画素値を２値化した第１画素値又は第２画素値を出力する２値化処理部と、前記第１画素値が連続する数を表す第１連続値と、前記第２画素値が連続する数を表す第２連続値とが前記第２連続値又は前記第１連続値に切り替わると、当該切り替わり前の前記第１連続値又は前記第２連続値と、当該切り替わり後の前記第２連続値又は前記第１連続値との比を算出する算出部と、前記算出部によって算出される前記比と、所定の幅の比との差が所定値以下である場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない、転送部と、前記第１連続値と、前記第２連続値とを時系列的に交互に保持する第１保持部と、前記切り替わり前に前記第１保持部が保持した前記第１連続値又は前記第２連続値を前記第１保持部から入手して保持する第２保持部と、前記所定の幅の比の値を保持する第３保持部とを含み、前記算出部は、前記第１保持部に保持される前記第１連続値又は前記第２連続値と、前記第２保持部に保持される前記第２連続値又は前記第１連続値との比を算出し、前記転送部は、前記算出部によって算出される前記比と、前記第３保持部が保持する前記所定の幅の比との差が所定値以下である場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない、前記第３保持部は、前記所定の幅の比に許容範囲を設けた所定の許容範囲を表す値を保持しており、転送部は、前記算出部によって算出される前記比が、前記第３保持部が保持する前記所定の許容範囲内である場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記比が前記所定の許容範囲内ではない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない、前記転送部は、前記算出部によって算出される前記比が、前記第３保持部が保持する前記所定の許容範囲内であるかどうかを判定する判定部と、前記判定部によって前記比が前記所定の許容範囲内であると判定される場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記判定部によって前記比が前記所定の許容範囲内ではないと判定される場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない出力部とを有し、前記転送部は、前記判定部によって前記比が前記所定の許容範囲内であると判定される回数が所定回数に達した場合に、前記出力部による前記画像の前記データ読取部への転送を可能にし、前記判定部によって前記比が前記所定の許容範囲内であると判定される回数が前記所定回数未満の場合に、前記出力部による前記画像の前記データ読取部への転送を可能にしない論理部をさらに有し、前記出力部は、前記論理部によって前記データ読取部への転送が可能にされる場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記論理部によって前記データ読取部への転送が可能にされない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない。
【発明の効果】
【００１４】
消費電力を低減したシンボル検出装置、画像処理装置、及び、シンボル検出方法を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】シンボル検出装置及び画像処理装置を含むバーコードリーダ１０を示す図である。
【図２】実施の形態のバーコードリーダ１０の内部構成を示す図である。
【図３】ＭＣＵ３０Ａ、ＭＣＵ３０Ｂ、カメラモジュール５０、及びシンボル検出装置１００の詳細を示す図である。
【図４】実施の形態のバーコードリーダ１０が読み取る二次元バーコードを示す図である。
【図５】ファインダパターン２を示す図である。
【図６】ファインダパターン２を読み取ったときの読み取りパターンを示す図である。
【図７】実施の形態のバーコードリーダ１０のシンボル検出装置１００の構成を示す図である。
【図８】２値化処理部１１０の動作を表すタイミングチャートを示す図である。
【図９】２値化処理部１１０の動作を表すタイミングチャートを示す図である。
【図１０】パターン演算部１２０を示す図である。
【図１１】パターン演算部１２０の動作を表すタイミングチャートを示す図である。
【図１２】パターン判定部１３０を示す図である。
【図１３】パターン判定部１３０が比較結果ＣＭＰＯＵＴを出力するまでの動作を表すタイミングチャートを示す図である。
【図１４】論理部１３５の動作を表すタイミングチャートを示す図である。
【図１５】出力部１４０を示す図である。
【図１６】出力部１４０の動作を表す真理値表である。
【図１７】シンボル検出装置１００の動作例を示すシーケンス図である。
【図１８】シンボル検出装置１００の動作例を示すシーケンス図である。
【図１９】シンボル検出装置１００の動作例を示すシーケンス図である。
【図２０】シンボル検出装置１００の動作例を示すシーケンス図である。
【図２１】シンボル検出装置１００が実行する処理を示すフローチャートである。
【図２２】比較例のバーコードリーダ１０Ａの内部構成を示す図である。
【図２３】比較例のバーコードリーダ１０Ａの動作例を示すシーケンス図である。
【図２４】比較例のバーコードリーダ１０Ａの動作例を示すシーケンス図である。
【発明を実施するための形態】
【００１６】
以下、本発明のシンボル検出装置、画像処理装置、及び、シンボル検出方法を適用した実施の形態について説明する。
【００１７】
＜実施の形態＞
図１は、実施の形態のシンボル検出装置及び画像処理装置を含むバーコードリーダ１０を示す図である。
【００１８】
バーコードリーダ１０は、筐体１１、スイッチ１２、読み取り部１３、及びＬＥＤ(Light Emitting Diode)１４を有する。筐体１１は、ヘッド１１Ａとグリップ１１Ｂとを有し、ヘッド１１Ａの先端には読み取り部１３が設けられ、グリップ１１Ｂにはスイッチ１２が設けられている。ＬＥＤ１４は、ヘッド１１Ａに設けられている。
【００１９】
バーコードリーダ１０は、利用者がグリップ１１Ｂを握り、読み取り部１３を二次元バーコードに向けてスイッチ１２を押すと、読み取り部１３が二次元バーコードの画像を撮像し、画像処理を行って二次元バーコードに書き込まれたデータを読み取る。スイッチ１２は、データを読み取る際のトリガーを発生させるために用いるスイッチである。読み取り部１３はカメラモジュールである。ＬＥＤ１４は、焦点が合っていない場合に点灯する。焦点が合っていない場合には、二次元バーコードの画像が正しく読み取られていない場合も含まれる。
【００２０】
なお、ＬＥＤ１４は、焦点が合っている場合にも点灯してもよい。この場合には、ＬＥＤ１４は、焦点が合っていない場合と焦点が合っていない場合とで点灯色を変えればよい。また、ＬＥＤ１４は、焦点が合っていない場合に点灯する代わりに、焦点が合っている場合に点灯するようにしてもよい。
【００２１】
また、ＬＥＤ１４の代わりに、又は、ＬＥＤ１４に加えて、焦点が合っていない場合に所定の音声を発報する音声出力部を設けてもよい。このようなＬＥＤ１４又は音声出力部は、報知部の一例である。
【００２２】
図２は、実施の形態のバーコードリーダ１０の内部構成を示す図である。
【００２３】
バーコードリーダ１０は、基板２０、ＭＣＵ(Micro Controller Unit)３０Ａ、ＭＣＵ３０Ｂ、スイッチ１２、ＬＥＤ１４、無線モジュール４０、アンテナ４１、カメラモジュール５０、バッテリパック６０、及びシンボル検出装置１００を含む。
【００２４】
これらのうち、スイッチ１２、ＬＥＤ１４、及びアンテナ４１以外の構成要素（基板２０、ＭＣＵ３０Ａ、ＭＣＵ３０Ｂ、無線モジュール４０、カメラモジュール５０、バッテリパック６０、シンボル検出装置１００）は、図１に示す筐体１１の内部に配置されている。また、ＬＥＤ１４は、基板２０には実装されておらず、筐体１１に取り付けられている。
【００２５】
また、ＭＣＵ３０Ａ、ＭＣＵ３０Ｂ、無線モジュール４０、カメラモジュール５０、及びシンボル検出装置１００は、バスで接続されている。
【００２６】
基板２０は、例えば、ＦＲ−４(Flame Retardant type 4)規格のプリント基板である。基板２０には、ＭＣＵ３０Ａ、ＭＣＵ３０Ｂ、無線モジュール４０、カメラモジュール５０、及びシンボル検出装置１００が実装される。ＭＣＵ３０Ａ、ＭＣＵ３０Ｂ、無線モジュール４０、カメラモジュール５０、及びシンボル検出装置１００には、基板２０に形成される配線を介して電力が供給される。
【００２７】
また、ＭＣＵ３０Ｂ、カメラモジュール５０、及びシンボル検出装置１００は、画像処理装置５００を構築する。
【００２８】
ＭＣＵ３０Ａは、ＭＣＵ３０Ｂと無線モジュール４０の間に設けられている。また、ＭＣＵ３０Ａには、スイッチ１２が接続されている。ＭＣＵ３０Ａは、スイッチ１２の操作に応じて二次元バーコードの読み取りを開始する制御、及び、ＭＣＵ３０Ｂと無線モジュール４０を統括する制御等を行う。
【００２９】
ＭＣＵ３０Ａがスイッチ１２の操作に応じて二次元バーコードの読み取りを開始する制御とは、スイッチ１２が押されてトリガーが発生したときに、ＭＣＵ３０ＡがＭＣＵ３０ＢにＡｃｔｉｖｅの割り込み要求信号（Ｉｎｔｅｒｒｕｐｔ）を出力する制御である。
【００３０】
ＭＣＵ３０ＡがＭＣＵ３０Ｂを統括する制御としては、ＭＣＵ３０ＡがＭＣＵ３０Ｂに割り込み要求信号（Ｉｎｔｅｒｒｕｐｔ）を送信し、ＭＣＵ３０Ｂの起動状態を切り替える制御がある。割り込み要求信号（Ｉｎｔｅｒｒｕｐｔ）がＳｌｅｅｐの場合は、ＭＣＵ３０Ｂはスリープモードに設定され、割り込み要求信号（Ｉｎｔｅｒｒｕｐｔ）がＡｃｔｉｖｅの場合は、ＭＣＵ３０Ｂは起動状態に設定される。
【００３１】
ＭＣＵ３０Ａが無線モジュール４０を統括する制御としては、ＭＣＵ３０Ｂが二次元バーコードのデータを読み取り、ＭＣＵ３０Ａに伝送された場合に、伝送されたデータを無線モジュール４０に伝送し、無線モジュール４０にアンテナ４１から送信させる処理がある。
【００３２】
ＭＣＵ３０Ａは、バーコードリーダ１０の動作を統括する制御部であるため、二次元バーコードの読み取り処理を行うＭＣＵ３０Ｂに比べると消費電力は少なく、回路の規模も小さい。
【００３３】
ＭＣＵ３０Ｂは、ＭＣＵ３０Ａとシンボル検出装置１００の間に設けられている。ＭＣＵ３０Ｂは、シンボル検出装置１００によって二次元バーコードが検出されると、シンボル検出装置１００によって２値化された二次元バーコードの画像からデータを読み取る処理を行う。ＭＣＵ３０Ｂは、データ読取部の一例である。
【００３４】
バーコードリーダ１０は、ＭＣＵ３０Ｂが二次元バーコードを検出するのではなく、シンボル検出装置１００が二次元バーコードを検出した場合にＭＣＵ３０Ｂが二次元バーコードの画像からデータを読み取る処理を行うことにより、消費電力の低下を図る。消費電力の低下の詳細については後述する。
【００３５】
無線モジュール４０は、バーコードリーダ１０とコンピュータ端末機を無線通信で接続する装置である。コンピュータ端末機は、例えば、小売店の会計用の端末機である。例えば、Bluetooth（登録商標）のような近距離無線通信を利用する場合は、無線モジュール４０は、Bluetoothのモデムである。
【００３６】
無線モジュール４０には、アンテナ４１が接続される。アンテナ４１から送信されるデータは、バーコードリーダ１０と無線通信で接続されるコンピュータ端末機に送信される。
【００３７】
カメラモジュール５０は、バーコードリーダ１０の電源がオンのときに、スイッチ１２が押されると、画像を連続的に撮像する。カメラモジュール５０は、撮像部の一例である。カメラモジュール５０は、例えば、カラー画像を撮像するカメラであり、例えば、１秒間に６０フレームを連続的に撮像することができるカメラである。
【００３８】
スイッチ１２は、バーコードリーダ１０による二次元バーコードの読み取りを開始する際に押すと、トリガーを発生させるスイッチである。トリガーはＭＣＵ３０Ａに入力される。
【００３９】
バッテリパック６０は、ＭＣＵ３０Ａ、ＭＣＵ３０Ｂ、無線モジュール４０、カメラモジュール５０、及びシンボル検出装置１００に電力を供給するための直流電源である。バーコードリーダ１０は、一例として、ワイヤレス型であるため、バッテリパック６０から供給される電力で作動する。
【００４０】
バッテリパック６０としては、例えば、リチウムイオン電池のような繰り返し充電可能な二次電池を用いればよい。バーコードリーダ１０がワイヤレス型であるため、バーコードリーダ１０の消費電力を低減することが望ましい。
【００４１】
シンボル検出装置１００は、ＭＣＵ３０Ｂとカメラモジュール５０の間に設けられている。シンボル検出装置１００としては、演算処理部を用いる。演算処理部は、例えば、ＦＰＧＡ(Field Programmable Gate Array)のようなプログラマブル論理回路である。
【００４２】
シンボル検出装置１００は、カメラモジュール５０から入力される画像を２値化し、さらに所定の処理を行うことにより、画像に含まれる二次元バーコードを検出する。シンボル検出装置１００は、二次元バーコードを検出した場合には、二次元バーコードの検出に用いた画像の次のフレームの画像を２値化してＭＣＵ３０Ｂに出力する。なお、シンボル検出装置１００は、２値化した画像をＭＣＵ３０Ｂに出力しない場合には、ＬＥＤ１４を点灯する。
【００４３】
ここで、二次元バーコードの検出に用いた画像の次のフレームの画像とは、シンボル検出装置１００が二次元バーコードの検出のために用いる画像とは別の画像であり、カメラモジュール５０が、二次元バーコードの検出のために用いる画像の次のフレームの画像として撮像する画像である。
【００４４】
すなわち、シンボル検出装置１００が二次元バーコードの検出のために用いる画像と、ＭＣＵ３０Ｂがデータを読み取るために用いる画像とは異なる。これは、次のような理由によるものである。
【００４５】
シンボル検出装置１００としては、ＦＰＧＡのようなプログラマブル論理回路を用いる。シンボル検出装置１００として用いるプログラマブル論理回路は、カメラモジュール５０によって撮像される画像の１フレーム分のデータを保持できるほどの容量を有していない。
【００４６】
このため、シンボル検出装置１００が二次元バーコードの検出を終えたときには、二次元バーコードの検出に用いた画像の１フレーム分のデータは、シンボル検出装置１００には残っていない。
【００４７】
このような理由から、シンボル検出装置１００によって二次元バーコードが検出されると、シンボル検出装置１００は、カメラモジュール５０によって撮像される次のフレームの画像を２値化して、ＭＣＵ３０Ｂに出力する。
【００４８】
なお、カメラモジュール５０は連続的に撮像を行っており、シンボル検出装置１００によって二次元バーコードが検出された直後に次のフレームの画像としてカメラモジュール５０で撮像された画像には、１つ前のフレームの画像と同様に、二次元バーコードが含まれる可能性が非常に高い。
【００４９】
このため、シンボル検出装置１００によって二次元バーコードが検出された場合に、カメラモジュール５０によって撮像される次のフレームの画像を２値化してＭＣＵ３０Ｂに出力しても、ＭＣＵ３０Ｂによる二次元バーコードのデータの読み取りに生じないと考えてよい。
【００５０】
図３は、ＭＣＵ３０Ａ、ＭＣＵ３０Ｂ、カメラモジュール５０、及びシンボル検出装置１００の詳細を示す図である。まず、ＭＣＵ３０Ｂの内部構成について説明する。
【００５１】
ＭＣＵ３０Ｂは、コア３１Ｂ、メモリ３２Ｂ、Ｉ２Ｃ（Inter-Integrated Circuit：アイ・スクエア・シー）（登録商標）３３Ｂ、ＤＣＭＩ（Data Center Manageability Interface）３４Ｂ、ＤＭＡ（Direct Memory Access）３５Ｂ、Ｉ２Ｃ３６Ｂ、ＧＰＩＯ（General Purpose Input/Output）３７Ｂ、及びバス３８Ｂを有する。
【００５２】
コア３１Ｂ、メモリ３２Ｂ、Ｉ２Ｃ３３Ｂ、ＤＣＭＩ３４Ｂ、ＤＭＡ３５Ｂ、Ｉ２Ｃ３６Ｂ、及びＧＰＩＯ３７Ｂは、バス３８Ｂによって通信可能に接続されている。なお、ＤＭＡ３５Ｂは、カメラモジュール５０がシンボル検出装置１００経由でメモリ３２Ｂに直接アクセスする際に経由するデバイスである。
【００５３】
ＭＣＵ３０Ａは、Ｉ２Ｃ３６ＢとＧＰＩＯ３７Ｂを介してＭＣＵ３０Ｂに接続されている。ＭＣＵ３０Ａには、シリアルデータＳＤＡ及びシリアルクロックＳＣＫがＩ２Ｃ３６Ｂから入力される。また、ＭＣＵ３０Ａは、割り込み要求信号（Ｉｎｔｅｒｒｕｐｔ）をＧＰＩＯ３７Ｂに出力する。
【００５４】
ＭＣＵ３０Ａに入力されるシリアルデータＳＤＡは、ＭＣＵ３０ＢがＱＲコード１（図４参照）を読み取ったときに、ＭＣＵ３０Ａに送信する読み取り結果を表すデータである。
【００５５】
シンボル検出装置１００は、Ｉ２Ｃ３３ＢとＤＣＭＩ３４Ｂを介してＭＣＵ３０Ｂに接続されている。シンボル検出装置１００は、Ｉ２Ｃ３３Ｂを介してＭＣＵ３０ＢにシリアルデータＳＤＡ及びシリアルクロックＳＣＫを出力する。シンボル検出装置１００がＭＣＵ３０Ｂに出力するシリアルデータＳＤＡは、例えば、カメラモジュール５０が撮像を行っているときに、シンボル検出装置１００がＭＣＵ３０Ｂに出力するＷａｉｔ信号である。
【００５６】
また、シンボル検出装置１００は、水平同期信号ＨＲＥＦ３、垂直同期信号ＶＳＹＮＣ３、データＤＡＴＡ３［７：０］、基準クロックＰＣＬＫ３をＤＣＭＩ３４Ｂに出力する。
【００５７】
シンボル検出装置１００とカメラモジュール５０は、バスを介して接続されている。シンボル検出装置１００は、カメラモジュール５０にシリアルデータＳＤＡとシリアルクロックＳＣＫを出力し、カメラモジュール５０から水平同期信号ＨＲＥＦ１、垂直同期信号ＶＳＹＮＣ１、基準クロックＰＣＬＫ１、データＤＡＴＡ１［７：０］を受け取る。
【００５８】
なお、シンボル検出装置１００がカメラモジュール５０から受け取る水平同期信号ＨＲＥＦ１及び垂直同期信号ＶＳＹＮＣ１は、カメラモジュール５０がカラーの画像を取得する際に用いる水平同期信号及び垂直同期信号である。
【００５９】
また、基準クロックＰＣＬＫ１は、カメラモジュール５０がカラーの画像を取得する際に用いる基準クロックである。また、データＤＡＴＡ１［７：０］は、カメラモジュール５０が取得したカラーの画像のデータである。データＤＡＴＡ１［７：０］は、８ビットのデータである。
【００６０】
また、シンボル検出装置１００が出力する水平同期信号ＨＲＥＦ３及び垂直同期信号ＶＳＹＮＣ３は、シンボル検出装置１００から出力される２値化された画像のデータＤＡＴＡ３［７：０］に同期した水平同期信号及び垂直同期信号である。基準クロックＰＣＬＫ３は、データＤＡＴＡ３［７：０］の処理に用いられる基準クロックである。
【００６１】
図４は、実施の形態のバーコードリーダ１０が読み取る二次元バーコードを示す図である。ここでは、一例として、ＱＲコード（登録商標）を読み取る形態について説明する。
【００６２】
ＱＲコード１は、一例として、ファインダパターン２、アライメントパターン３、タイミングパターン４、データ領域５、及びクワイエットゾーン６を有する。
【００６３】
ファインダパターン２は、ＱＲコード１の位置、大きさ、傾きを検出するために用いられるシンボル（記号又は符号）の一例である。図４に示すＱＲコード１は、一例として、３つのファインダパターン２を有する。ファインダパターン２は、ＱＲコード１の位置、大きさ、傾きを検出するために用いられるマーク（印、標識、目印）として捉えることもできる。
【００６４】
アライメントパターン３は、ＱＲコード１の歪みを補正するために用いられるパターンである。図４に示すＱＲコード１は、一例として、４つのアライメントパターン３を有する。タイミングパターン４は、ＱＲコード１の中心座標を求めるために用いられるパターンである。
【００６５】
データ領域５は、ＱＲコード１にデータを符号化して格納する領域である。図４では、データ領域５をグレーで示す。クワイエットゾーン６は、ＱＲコード１の読み取りに必要とされる余白スペースであり、図４では、ファインダパターン２、アライメントパターン３、タイミングパターン４、データ領域５の周囲に白く示す部分である。
【００６６】
図５は、ファインダパターン２を示す図である。図６は、ファインダパターン２を読み取ったときの読み取りパターンを示す図である。
【００６７】
ファインダパターン２は、平面視で矩形状であり、周囲の矩形環状の黒パターン２Ａ、黒パターン２Ａの内側の白パターン２Ｂ、及び白パターン２Ｂの内側の矩形状の黒パターン２Ｃの３つのパターンを有する。白パターン２Ｂは、第１パターンの一例であり、黒パターン２Ａ及び２Ｃは、第２パターンの一例である。
【００６８】
ここで、ＱＲコード１（図４参照）を撮像した画像をラスタースキャン方式で、１行ずつ、かつ、各行において１画素ずつ読み取る場合に、図５に示す矢印Ａ、Ｂ、又はＣの方向にスキャンしたとする。矢印Ａ、Ｂ、Ｃは、すべて直線状であり、すべて黒パターン２Ｃの中心を通る。
【００６９】
ＱＲコード１（図４参照）が読み取られるときの角度（カメラが取得する画像の中での回転角度）によって、ラスタースキャンで読み取る方向は、例えば、矢印Ａ、Ｂ、又はＣの方向になる。
【００７０】
また、矢印Ａ、Ｂ、Ｃは、ファインダパターン２の画像を複数行にわたってラスタースキャンで読み取る際に、黒パターン２Ｃの中心を通る行のみを示すものである。
【００７１】
矢印Ａ、Ｂ、Ｃで示すように、黒パターン２Ｃの中心を通ってファインダパターン２を読み取る場合には、黒パターン２Ａ、白パターン２Ｂ、黒パターン２Ｃ、白パターン２Ｂ、黒パターン２Ａを通ることになる。
【００７２】
このように黒パターン２Ｃの中心を通ってファインダパターン２を読み取ると、黒パターン２Ａ、白パターン２Ｂ、黒パターン２Ｃ、白パターン２Ｂ、黒パターン２Ａの幅は、１：１：３：１：１になるように設定されている。
【００７３】
従って、ＱＲコード１（図４参照）を撮像した画像をラスタースキャンで読み取ったときに、１：１：３：１：１の読み取りパターンが得られれば、読み取り部１３がＱＲコード１（図４参照）に正しく向けられており、かつ、焦点が合っており、ファインダパターン２を正しく読み取っていることになる。
【００７４】
図６の横軸は、ラスタースキャンの方向と黒パターン２Ａ、白パターン２Ｂ、黒パターン２Ｃの分布とを示す。図６の縦軸は、ラスタースキャンで読み取った各画素の画素値を示す。画素が黒い場合の画素値は'０'であり、画素が白い場合の画素値は'１'である。
【００７５】
ファインダパターン２を正しく読み取った場合には、図６に示すように、１：１：３：１：１の読み取りパターンが得られる。
【００７６】
バーコードリーダ１０では、ファインダパターン２の検出は、シンボル検出装置１００が行う。シンボル検出装置１００は、ファインダパターン２を検出することによって、ＱＲコード１（図４参照）を検出する。
【００７７】
図７は、実施の形態のバーコードリーダ１０のシンボル検出装置１００の構成を示す図である。
【００７８】
シンボル検出装置１００は、２値化処理部１１０、パターン演算部１２０、パターン判定部１３０、出力部１４０、及び指示部１５０を有する。シンボル検出装置１００は、さらに、端子１０１、１０２、１０３、１０４、１０５を有する。
【００７９】
ここでは、２値化処理部１１０、パターン演算部１２０、パターン判定部１３０、出力部１４０、及び指示部１５０の機能について簡単に説明する。
【００８０】
端子１０１は、Ｉ２Ｃ３３Ｂ（図３参照）に接続されており、シリアルデータＳＤＡとシリアルクロックＳＣＫを出力する端子である。端子１０１は、シンボル検出装置１００の内部では指示部１５０と端子１０２に接続されている。
【００８１】
端子１０２は、カメラモジュール５０に接続されており、端子１０１から入力されるシリアルデータＳＤＡとシリアルクロックＳＣＫをカメラモジュール５０に出力する端子である。端子１０２は、シンボル検出装置１００の内部では指示部１５０と端子１０１に接続されている。
【００８２】
端子１０３は、カメラモジュール５０に接続されており、カメラモジュール５０から水平同期信号ＨＲＥＦ１、垂直同期信号ＶＳＹＮＣ１、基準クロックＰＣＬＫ１、データＤＡＴＡ１［７：０］が入力される端子である。端子１０３は、シンボル検出装置１００の内部では２値化処理部１１０に接続されている。
【００８３】
端子１０４は、ＤＣＭＩ３４Ｂに接続されている。また、端子１０４は、シンボル検出装置１００の内部では出力部１４０に接続されている。端子１０４は、出力部１４０が出力する水平同期信号ＨＲＥＦ３、垂直同期信号ＶＳＹＮＣ３、データＤＡＴＡ３［７：０］、基準クロックＰＣＬＫ３をＤＣＭＩ３４Ｂに出力する端子である。
【００８４】
端子１０５は、ＬＥＤ１４に接続されている。シンボル検出装置１００が２値化した画像をＭＣＵ３０Ｂに出力しない場合には、パターン判定部１３０の出力に基づいてＬＥＤ１４が点灯される。
【００８５】
２値化処理部１１０は、端子１０３を介して入力される水平同期信号ＨＲＥＦ１、垂直同期信号ＶＳＹＮＣ１、基準クロックＰＣＬＫ１を用いて、データＤＡＴＡ１［７：０］を２値化する。
【００８６】
データＤＡＴＡ１［７：０］は、カメラモジュール５０で撮像されるカラー画像のデータである。カメラモジュール５０は、画像をラスタースキャン方式で読み取るため、データＤＡＴＡ１［７：０］は、ラスタースキャン方式で読み取られた画素毎の画像データである。２値化では、白い画素の画素値を'２５５'にし、黒い画素の画素値を'０'にする。
【００８７】
２値化処理部１１０は、データＤＡＴＡ１［７：０］の２値化を行う際に、'０'に限りなく近い値の閾値を用いて、データＤＡＴＡ１［７：０］に含まれる画素値を２値化すればよい。
【００８８】
２値化処理部１１０は、データＤＡＴＡ１［７：０］を２値化した画像を表すデータＤＡＴＡ２［７：０］と、水平同期信号ＨＲＥＦ２、垂直同期信号ＶＳＹＮＣ２、基準クロックＰＣＬＫ２とを、パターン演算部１２０、パターン判定部１３０、出力部１４０に出力する。
【００８９】
水平同期信号ＨＲＥＦ２、垂直同期信号ＶＳＹＮＣ２、基準クロックＰＣＬＫ２は、２値化処理部１１０が２値化の処理に要する時間だけ水平同期信号ＨＲＥＦ１、垂直同期信号ＶＳＹＮＣ１、基準クロックＰＣＬＫ１をそれぞれシフトしたものであり、２値化された画像のデータＤＡＴＡ２［７：０］の処理に用いられる。
【００９０】
パターン演算部１２０は、２値化処理部１１０の出力側に設けられており、２値化処理部１１０から入力される水平同期信号ＨＲＥＦ２、垂直同期信号ＶＳＹＮＣ２、基準クロックＰＣＬＫ２を用いて、データＤＡＴＡ２［７：０］に含まれる画素値（'２５５'又は'０'）の連続数をカウントし、連続数の比を算出する。
【００９１】
パターン判定部１３０は、パターン演算部１２０によって算出される比に基づいて、１：１：３：１：１の読み取りパターンを検出する。パターン判定部１３０は、１：１：３：１：１の読み取りパターンを３回検出すると、出力部１４０がＤＡＴＡ３［７：０］をＭＣＵ３０Ｂに出力可能な状態にする。
【００９２】
出力部１４０には、パターン判定部１３０からＤＡＴＡ２［７：０］が入力される。出力部１４０は、パターン判定部１３０によってＤＡＴＡ２［７：０］を出力可能な状態にされると、ＤＡＴＡ２［７：０］をＤＡＴＡ３［７：０］としてＭＣＵ３０Ｂに出力する。出力部１４０は、パターン判定部１３０によってＤＡＴＡ２［７：０］を出力可能な状態にされない場合は、ＤＡＴＡ３［７：０］をＭＣＵ３０Ｂに出力しない。
【００９３】
指示部１５０は、カメラモジュール５０への撮像の指示、ＭＣＵ３０Ｂへの割り込み要求信号（Ｉｎｔｅｒｒｕｐｔ）、及び、シリアルデータＳＤＡ及びシリアルクロックＳＣＫの送信等を行う。割り込み要求信号（Ｉｎｔｅｒｒｕｐｔ）は、ＭＣＵ３０ＢをＡｃｔｉｖｅ状態又はＳｌｅｅｐ状態にするための指示信号である。指示部１５０は、例えば、Ｉ２Ｃによって実現される。
【００９４】
次に、２値化処理部１１０、パターン演算部１２０、パターン判定部１３０、出力部１４０、及び指示部１５０の構成、機能、及び動作の詳細について説明する。
【００９５】
図８及び図９は、２値化処理部１１０の動作を表すタイミングチャートを示す図である。
【００９６】
図８には、基準クロックＰＣＬＫ１、水平同期信号ＨＲＥＦ１、データＤＡＴＡ１［７：０］、基準クロックＰＣＬＫ２、水平同期信号ＨＲＥＦ２、データＤＡＴＡ２［７：０］を示す。縦軸は各信号の信号レベルを表し、横軸は時間を表す。
【００９７】
図８に示すように、基準クロックＰＣＬＫ１は、１周期がｔＰＣＬＫ１である。基準クロックＰＣＬＫ１の周波数は、例えば、６０Ｈｚである。
【００９８】
水平同期信号ＨＲＥＦ１は、カメラモジュール５０が取得（撮像）するカラー画像のデータの水平方向のデータが有効かどうかを表す信号である。水平同期信号ＨＲＥＦ１は、画素にデータがあればＨ(High)レベルになり、データがなければＬ(Low)レベルになる。
【００９９】
カメラモジュール５０は、画像をラスタースキャン方式で読み取るため、水平同期信号ＨＲＥＦ１は、水平方向に１行読み取える度にＬレベルになる。すなわち、水平同期信号ＨＲＥＦ１がＬレベルになるのは、画像のデータの行の切り替わりのときである。
【０１００】
時刻ｔ１で水平同期信号ＨＲＥＦ１がＨレベルになると、データＤＡＴＡ１［７：０］の値が得られる。図８には、ＹＵＶ４２２の場合のデータＤＡＴＡ１［７：０］を示す。ＹＵＶ４２２の場合は、基準クロックＰＣＬＫ１の１周期の間に、輝度を表すＹｉのデータと、色差を表すＵｉ又はＶｉのいずれか一方とが得られる。なお、ｉは０から始まる連続数（０以上の自然数）であり、輝度Ｙｉ、色差Ｕｉ、色差Ｖｉのそれぞれに割り当てられる。
【０１０１】
基準クロックＰＣＬＫ２の周期ｔＰＣＬＫ２は、基準クロックＰＣＬＫ１の周期ｔＰＣＬＫ１の２倍に設定される。すなわち、ｔＰＣＬＫ２＝ｔＰＣＬＫ１×２である。２値化処理部１１０は、基準クロックＰＣＬＫ１を分周して基準クロックＰＣＬＫ２を生成する。このため、２値化処理部１１０は、基準クロックＰＣＬＫ１を分周する分周器を有する。
【０１０２】
水平同期信号ＨＲＥＦ２は、２値化処理部１１０で水平同期信号ＨＲＥＦ１にオフセット時間ｔＷＦＲＥＦ２が与えられて出力される。オフセット時間ｔＷＦＲＥＦ２は、基準クロックＰＣＬＫ１の周期ｔＰＣＬＫ１の２倍以上であればよい。すなわち、ｔＷＦＲＥＦ２≧ｔＰＣＬＫ１である。このため、２値化処理部１１０は、水平同期信号ＨＲＥＦ１の位相をオフセットする位相シフタ(Phase Shifter)を有する。
【０１０３】
図８にはｔＷＦＲＥＦ２＝ｔＰＣＬＫ１×２の場合の水平同期信号ＨＲＥＦ２を示す。水平同期信号ＨＲＥＦ２にオフセット時間ｔＷＦＲＥＦ２を与えるのは、２値化処理部１１０でデータＤＡＴＡ１［７：０］を２値化する処理に要する時間を考慮したものである。
【０１０４】
このため、時刻ｔ１よりもオフセット時間ｔＷＦＲＥＦ２だけ遅れた時刻ｔ２に、水平同期信号ＨＲＥＦ２が立ち上がり、２値化された画像のデータＤＡＴＡ２［７：０］が読み取られ始める。
【０１０５】
データＤＡＴＡ２［７：０］の値Ｂ０、Ｂ１、Ｂ２、Ｂ３、・・・、Ｂ９、Ｂ１０は、それぞれ、データＤＡＴＡ１［７：０］の輝度Ｙ０、Ｙ１、Ｙ２、Ｙ３、・・・、Ｙ９、Ｙ１０を２値化した画素値を表す。２値化された画素値は、白の場合'２５５'であり、黒の場合'０'である。２値化された画素値は、'２５５'（白）と'０'（黒）の２値で表される。
【０１０６】
図９には、基準クロックＰＣＬＫ１、垂直同期信号ＶＳＹＮＣ１、及び垂直同期信号ＶＳＹＮＣ２を示す。縦軸は各信号の信号レベルを表し、横軸は時間を表す。
【０１０７】
垂直同期信号ＶＳＹＮＣ１は、カメラモジュール５０が１フレームの画像を取得（撮像）する度に、Ｌになる信号である。垂直同期信号ＶＳＹＮＣ１は、カメラモジュール５０が１フレームの画像を取得している間は、Ｈレベルになる。
【０１０８】
垂直同期信号ＶＳＹＮＣ２は、２値化処理部１１０で垂直同期信号ＶＳＹＮＣ１に対してオフセット時間ｔＷＶＳＹＮＣ２１が与えられて出力される。オフセット時間ｔＷＶＳＹＮＣ２１は、オフセット時間ｔＷＦＲＥＦ２以上であればよい。すなわち、ｔＷＶＳＹＮＣ２１≧ｔＷＦＲＥＦ２である。２値化処理部１１０は、内部の位相シフタ(Phase Shifter)で、垂直同期信号ＶＳＹＮＣ１に対してオフセット時間ｔＷＶＳＹＮＣ２１を与える。
【０１０９】
図９にはｔＷＦＲＥＦ２＝ｔＰＣＬＫ１×２の場合の垂直同期信号ＶＳＹＮＣ２を示す。垂直同期信号ＶＳＹＮＣ２にオフセット時間ｔＷＶＳＹＮＣ２１を与えるのは、２値化処理部１１０でデータＤＡＴＡ１［７：０］を２値化する処理に要する時間を考慮したものである。
【０１１０】
以上のようにして、２値化処理部１１０は、水平同期信号ＨＲＥＦ２、垂直同期信号ＶＳＹＮＣ２、基準クロックＰＣＬＫ２、データＤＡＴＡ２［７：０］を生成し、パターン演算部１２０、パターン判定部１３０、出力部１４０に出力する。２値化処理部１１０は、分周器と位相シフタ(Phase Shifter)を有する。
【０１１１】
図１０は、パターン演算部１２０を示す図である。
【０１１２】
パターン演算部１２０は、端子１２１Ａ、１２１Ｂ、１２１Ｃ、１２１Ｄ、１２１Ｅ、パルス生成器１２２、カウンタ１２３、シフトレジスタ１２４、及び除算器１２５を有する。端子１２１Ａ、１２１Ｂ、１２１Ｃ、１２１Ｄ、１２１Ｅのうち、端子１２１Ａ及び１２１Ｅは（Ｍ＋１）個ある。（Ｍ＋１）個は、後述する除算結果ＤＩＶ［Ｍ：０］のビット数と同一の数である。なお、端子１２１Ａ及び１２１Ｅ以外は、１つずつである。
【０１１３】
端子１２１Ａは、２値化処理部１１０に接続されており、データＤＡＴＡ２［７：０］が入力される端子である。端子１２１Ａは、パターン演算部１２０の内部ではパルス生成器１２２に接続されている。データＤＡＴＡ２［７：０］は、端子１２１Ａを経てパルス生成器１２２に入力される。
【０１１４】
端子１２１Ｂは、２値化処理部１１０に接続されており、基準クロックＰＣＬＫ２が入力される端子である。端子１２１Ｂは、パターン演算部１２０の内部ではパルス生成器１２２とカウンタ１２３の入力端子（ＣＬＫ）に接続されている。基準クロックＰＣＬＫ２は、端子１２１Ｂを経てパルス生成器１２２とカウンタ１２３の入力端子（ＣＬＫ）に入力される。
【０１１５】
端子１２１Ｃは、２値化処理部１１０に接続されており、水平同期信号ＨＲＥＦ２が入力される端子である。端子１２１Ｃは、パターン演算部１２０の内部では、カウンタ１２３のリセット端子Ｒと、シフトレジスタ１２４のＦＦ１２４Ａ及び１２４Ｂのリセット端子Ｒとに、それぞれ、反転素子１２３Ａと、反転素子１２４Ａ１及び１２４Ｂ１とを介して接続されている。
【０１１６】
水平同期信号ＨＲＥＦ２は、端子１２１Ｃを経て、反転素子１２３Ａ、１２４Ａ１、及び１２４Ｂ１で反転されて、カウンタ１２３、ＦＦ１２４Ａ、及び１２４Ｂのリセット端子Ｒに入力される。
【０１１７】
端子１２１Ｄは、パターン判定部１３０に接続されており、パターン演算部１２０の内部ではパルス生成器１２２の出力端子に接続されている。パルス生成器１２２が発生するパルスＰＵＬＳＥ１は、端子１２１Ｄを経てパターン判定部１３０に出力される。
【０１１８】
端子１２１Ｅは、（Ｍ＋１）個あり、それぞれがパターン判定部１３０に接続されている。端子１２１Ｅは、パターン演算部１２０の内部では除算器１２５の出力端子（ＯＵＴ［Ｍ：０］）に接続されている。除算器１２５が出力する除算結果ＤＩＶ［Ｍ：０］は、端子１２１Ｅを介してパターン判定部１３０に出力される。
【０１１９】
パルス生成器１２２は、端子１２１Ａから入力されるデータＤＡＴＡ２［７：０］と、端子１２１Ｂから入力される基準クロックＰＣＬＫ２とに基づき、パルスＰＵＬＳＥ１を生成して出力する。
【０１２０】
パルス生成器１２２は、データＤＡＴＡ２［７：０］の値（'２５５'と'０'）が切り替わる際に、基準クロックＰＣＬＫ２の１周期分の期間にわたってＨレベルになるパルスＰＵＬＳＥ１を生成する。すなわち、パルス生成器１２２は、２値化されたデータＤＡＴＡ２［７：０］が黒から白、又は、白から黒に切り替わる際に、パルスＰＵＬＳＥ１を生成する。このようにパルスＰＵＬＳＥ１がＨレベルになるとき以外は、パルスＰＵＬＳＥ１はＬレベルに保持される。
【０１２１】
パルス生成器１２２が生成するパルスＰＵＬＳＥ１は、カウンタ１２３のクロック入力端子と、シフトレジスタ１２４のＦＦ(Flip Flop)１２４Ａ及び１２４Ｂのクロック入力端子とに入力されるとともに、端子１２１Ｄを介してパターン判定部１３０に出力される。
【０１２２】
なお、データＤＡＴＡ２［７：０］は、２値化された画像の画素値を表す。データＤＡＴＡ２［７：０］が示す画素値は、'２５５'（白）又は'０'（黒）である。すなわち、データＤＡＴＡ２［７：０］が'２５５'のときは、８つのビット値がすべて'１'であり、データＤＡＴＡ２［７：０］が'０'のときは、８つのビット値がすべて'０'である。このため、パルス生成器１２２には、データＤＡＴＡ２［７：０］の代わりに、８ビットのデータＤＡＴＡ２［７：０］のうちのいずれか１つのビット値が入力されるようにしてもよい。このような構成でも、パルス生成器１２２は、同様にパルスＰＵＬＳＥ１を生成できる。
【０１２３】
カウンタ１２３は、基準クロックＰＣＬＫ２の周期数をカウントし、カウント値ＣＮＴＯＵＴ［Ｎ：０］を出力する。
【０１２４】
カウンタ１２３のカウント値ＣＮＴＯＵＴ［Ｎ：０］は、パルス生成器１２２からクロック入力端子に入力されるパルスＰＵＬＳＥ１がＨレベルになると、又は、水平同期信号ＨＲＥＦ２が反転素子１２３Ａで反転されてリセット端子Ｒに入力される反転値がＨレベルになると、リセットされる。
【０１２５】
カウンタ１２３が出力するカウント値ＣＮＴＯＵＴ［Ｎ：０］は、シフトレジスタ１２４のＦＦ１２４Ａに出力される。
【０１２６】
なお、カウント値ＣＮＴＯＵＴ［Ｎ：０］は、Ｎ＋１ビットのデータであり、Ｎ＋１の値は、ＱＲコード１（図４参照）において、連続する黒の画素、又は、白の画素の最大値に所定の余裕値を加えた値に設定すればよい。
【０１２７】
シフトレジスタ１２４は、ＦＦ１２４Ａ及び１２４Ｂを（Ｎ＋１）個ずつ有する。ＦＦ１２４Ａは、第１保持部の一例であり、ＦＦ１２４Ｂは、第２保持部の一例である。
【０１２８】
ＦＦ１２４Ａ及び１２４Ｂの数（Ｎ＋１）は、カウント値ＣＮＴＯＵＴ［Ｎ：０］のビット数に等しい。（Ｎ＋１）個のＦＦ１２４Ａの接続関係は、互いにすべて等しい。これは、（Ｎ＋１）個のＦＦ１２４Ｂについても同様である。
【０１２９】
ＦＦ１２４Ａのデータ入力端子には、カウンタ１２３の出力端子が接続されており、カウンタ１２３からカウント値ＣＮＴＯＵＴ［Ｎ：０］が入力される。また、ＦＦ１２４Ａのクロック入力端子には、パルス生成器１２２の出力端子が接続されており、パルスＰＵＬＳＥ１が入力される。これは（Ｎ＋１）個のＦＦ１２４Ａのすべてにおいて同様である。
【０１３０】
ＦＦ１２４Ａのリセット端子Ｒには、反転素子１２４Ａ１を介して端子１２１Ｃが接続されている。これは（Ｎ＋１）個のＦＦ１２４Ａのすべてにおいて同様である。また、（Ｎ＋１）個のＦＦ１２４Ａのデータ出力端子は、それぞれ、（Ｎ＋１）個のＦＦ１２４Ｂのデータ入力端子と、除算器１２５の（Ｎ＋１）個のデータ入力端子Ｄ１［Ｎ：０］とに接続されている。
【０１３１】
（Ｎ＋１）個のＦＦ１２４Ｂのデータ入力端子には、それぞれ、（Ｎ＋１）個のＦＦ１２４Ａのデータ出力端子が接続されている。また、ＦＦ１２４Ｂのクロック入力端子には、パルス生成器１２２の出力端子が接続されており、パルスＰＵＬＳＥ１が入力される。これは（Ｎ＋１）個のＦＦ１２４Ｂのすべてにおいて同様である。
【０１３２】
ＦＦ１２４Ｂのリセット端子Ｒには、反転素子１２４Ｂ１を介して端子１２１Ｃが接続されている。これは（Ｎ＋１）個のＦＦ１２４Ｂのすべてにおいて同様である。また、（Ｎ＋１）個のＦＦ１２４Ｂのデータ出力端子は、それぞれ、除算器１２５の（Ｎ＋１）個のデータ入力端子Ｄ２［Ｎ：０］に接続されている。
【０１３３】
シフトレジスタ１２４は、ＦＦ１２４Ａ及び１２４Ｂのデータ入力端子の値を保持し、パルスＰＵＬＳＥ１が入力される度に、ＦＦ１２４Ａのデータ入力端子の値をＦＦ１２４Ｂのデータ入力端子に反映（シフト）するとともに、除算器１２５のデータ入力端子Ｄ１［Ｎ：０］に出力する。
【０１３４】
ここでは、ＦＦ１２４Ａ及び１２４Ｂが出力するカウント値を区別するために、ＦＦ１２４Ａが出力するカウント値をＣＮＴ１［Ｎ：０］と称し、ＦＦ１２４Ｂが出力するカウント値をＣＮＴ２［Ｎ：０］と称す。カウント値ＣＮＴ１［Ｎ：０］とカウント値ＣＮＴ２［Ｎ：０］は、データＤＡＴＡ２［７：０］に含まれる画素値（'２５５'又は'０'）の連続数を表す。カウント値ＣＮＴ１［Ｎ：０］は、第１連続値又は第２連続値の一例であり、カウント値ＣＮＴ２［Ｎ：０］は、第２連続値又は第１連続値の一例である。
【０１３５】
また、ＦＦ１２４Ａ及び１２４Ｂは、水平同期信号ＨＲＥＦ２がＬレベルになり、リセット端子ＲにＨレベルの信号が入力されると、データ入力端子の値がリセットされる。
【０１３６】
除算器１２５は、データ入力端子Ｄ１［Ｎ：０］及びＤ２［Ｎ：０］、リセット端子Ｒ、及びデータ出力端子ＯＵＴ［Ｍ：０］を有する。除算器１２５は、算出部の一例である。
【０１３７】
データ入力端子Ｄ１［Ｎ：０］及びＤ２［Ｎ：０］には、それぞれ、（Ｎ＋１）個のＦＦ１２４Ａのデータ出力端子、及び、（Ｎ＋１）個のＦＦ１２４Ｂのデータ出力端子が接続されている。
【０１３８】
また、リセット端子Ｒには反転素子１２５Ａを介して２値化処理部１１０が接続されており、水平同期信号ＨＲＥＦ２が反転されて入力される。データ出力端子ＯＵＴ［Ｍ：０］は、パターン判定部１３０に接続されている。
【０１３９】
除算器１２５は、水平同期信号ＨＲＥＦ２の反転値がＨレベルになるとリセットされる。すなわち、ラスタースキャンで水平方向の読み取りが終わると（各行の画素の読み取りが終わると）、除算器１２５は、Ｌレベルの水平同期信号ＨＲＥＦ２の反転値によってリセットされる。
【０１４０】
除算器１２５は、リセットされると、データ入力端子Ｄ１［Ｎ：０］に入力されるカウント値ＣＮＴ１［Ｎ：０］を、データ入力端子Ｄ２［Ｎ：０］に入力されるカウント値ＣＮＴ２［Ｎ：０］で除算し、除算結果ＤＩＶ［Ｍ：０］をデータ出力端子ＯＵＴ［Ｍ：０］から出力する。
【０１４１】
除算器１２５は、データ入力端子Ｄ１［Ｎ：０］に入力されるカウント値ＣＮＴ１［Ｎ：０］と、データ入力端子Ｄ２［Ｎ：０］に入力されるカウント値ＣＮＴ２［Ｎ：０］とが切り替わる度に、除算結果ＤＩＶ［Ｍ：０］をデータ出力端子ＯＵＴ［Ｍ：０］からパターン判定部１３０に出力する。
【０１４２】
なお、除算結果ＤＩＶ［Ｍ：０］は、Ｍ＋１ビットのデータであり、Ｍ＋１の値は、データ入力端子Ｄ１［Ｎ：０］に入力される値（カウント値）を、データ入力端子Ｄ２［Ｎ：０］に入力される値（カウント値）で除算して得る除算結果の最大値に所定の余裕値を加えた値に設定すればよい。
【０１４３】
図１１は、パターン演算部１２０の動作を表すタイミングチャートを示す図である。図１１には、基準クロックＰＣＬＫ２、データＤＡＴＡ２［７：０］、パルスＰＵＬＳＥ１、カウント値ＣＮＴＯＵＴ［Ｎ：０］、カウント値ＣＮＴ１［Ｎ：０］、カウント値ＣＮＴ２［Ｎ：０］、除算結果ＤＩＶ［Ｍ：０］を示す。図１１において、縦軸は各信号の信号レベルを示し、横軸は時間を示す。
【０１４４】
時刻ｔ１０でデータＤＡＴＡ２［７：０］が不定（ｘｘｘｘ）の状態から'０'になると、パルスＰＵＬＳＥ１がクロックＰＣＬＫ２の１周期の期間にわたってＨレベルになり、カウンタ１２３がカウントを開始する。
【０１４５】
図１１の動作例では、時刻ｔ１１でデータＤＡＴＡ２［７：０］が'０'（黒）から'２５５'（白）に切り替わるまでに、カウンタ１２３のカウント値ＣＮＴ１［Ｎ：０］は１０進数で'２１'になる。
【０１４６】
また、時刻ｔ１０の直前では、カウント値ＣＮＴＯＵＴ［Ｎ：０］はｘ、カウント値ＣＮＴ１［Ｎ：０］はｙ、カウント値ＣＮＴ２［Ｎ：０］はｚ、除算結果ＤＩＶ［Ｍ：０］は不定（ｘｘｘｘ）である。時刻ｔ１０から時刻ｔ１１までの間に、カウント値ＣＮＴ１［Ｎ：０］はｘ、カウント値ＣＮＴ２［Ｎ：０］はｙ、除算結果ＤＩＶ［Ｍ：０］はｘ／ｙに切り替わって行く。
【０１４７】
時刻ｔ１１でデータＤＡＴＡ２［７：０］が'０'（黒）から'２５５'（白）に切り替わると、パルスＰＵＬＳＥ１がクロックＰＣＬＫ２の１周期の期間にわたってＨレベルになり、カウンタ１２３がリセットされてからカウントを開始する。
【０１４８】
時刻ｔ１１から時刻ｔ１２でデータＤＡＴＡ２［７：０］が'２５５'（白）から'０'（黒）に切り替わるまでに、カウンタ１２３のカウント値ＣＮＴ１［Ｎ：０］は１０進数で'７'になる。
【０１４９】
また、時刻ｔ１１から時刻ｔ１２までの間に、カウント値ＣＮＴ１［Ｎ：０］は２１、カウント値ＣＮＴ２［Ｎ：０］はｘ、除算結果ＤＩＶ［Ｍ：０］は２１／ｘに切り替わって行く。
【０１５０】
時刻ｔ１２でデータＤＡＴＡ２［７：０］が'２５５'（白）から'０'（黒）に切り替わると、パルスＰＵＬＳＥ１がクロックＰＣＬＫ２の１周期の期間にわたってＨレベルになり、カウンタ１２３がリセットされてからカウントを開始する。
【０１５１】
時刻ｔ１２移行には、カウント値ＣＮＴ１［Ｎ：０］は７、カウント値ＣＮＴ２［Ｎ：０］は２１、除算結果ＤＩＶ［Ｍ：０］は７／２１に切り替わって行く。
【０１５２】
図１２は、パターン判定部１３０を示す図である。
【０１５３】
パターン判定部１３０は、端子１３１Ａ、１３１Ｂ、１３１Ｃ、１３１Ｄ、１３１Ｅ、１３１Ｆ、パルス生成器１３２、シフトレジスタ１３３、コンパレータ１３４、及び論理部１３５を有する。端子１３１Ａ、１３１Ｂ、１３１Ｃ、１３１Ｄ、１３１Ｅ、１３１Ｆのうち、端子１３１Ａ及び１３１Ｄは、（Ｍ＋１）個ある。端子１３１Ａ及び１３１Ｄ以外は、１つずつである。
【０１５４】
端子１３１Ａは、（Ｍ＋１）個あり、２値化処理部１１０に接続されている。端子１３１Ａは、データＤＡＴＡ２［７：０］が入力される端子である。端子１３１Ａは、パターン判定部１３０の内部ではパルス生成器１３２に接続されている。データＤＡＴＡ２［７：０］は、端子１２１Ａを経てパルス生成器１３２に入力される。
【０１５５】
端子１３１Ｂは、２値化処理部１１０に接続されており、基準クロックＰＣＬＫ２が入力される端子である。端子１３１Ｂは、パターン判定部１３０の内部ではパルス生成器１３２の入力端子（ＣＬＫ）に接続されている。基準クロックＰＣＬＫ２は、端子１３１Ｂを経てパルス生成器１３２の入力端子（ＣＬＫ）に入力される。
【０１５６】
端子１３１Ｃは、パターン演算部１２０の端子１２１Ｄ（図１０参照）に接続されている。端子１３１Ｃは、パターン判定部１３０の内部では、シフトレジスタ１３３のＦＦ１３３Ａ、１３３Ｂ、１３３Ｃ、１３３Ｄのクロック入力端子に接続されている。パターン演算部１２０から出力されるパルスＰＵＬＳＥ１は、端子１３１Ｃを経てＦＦ１３３Ａ、１３３Ｂ、１３３Ｃ、１３３Ｄのクロック入力端子に入力される。
【０１５７】
端子１３１Ｄは、パターン演算部１２０の端子１２１Ｅ（図１０参照）に接続されており、パターン判定部１３０の内部では、シフトレジスタ１３３のＦＦ１３３Ａのデータ入力端子に接続されている。端子１３１Ｄは、（Ｍ＋１）個あり、シフトレジスタ１３３のＦＦ１３３Ａも（Ｍ＋１）個である。
【０１５８】
パターン演算部１２０の（Ｍ＋１）個の端子１２１Ｅから出力される除算結果ＤＩＶ［Ｍ：０］は、ビット毎にＦＦ１３３Ａのデータ入力端子に入力される。
【０１５９】
端子１３１Ｅは、２値化処理部１１０に接続されており、水平同期信号ＨＲＥＦ２が入力される端子である。端子１３１Ｅは、パターン判定部１３０の内部では、シフトレジスタ１３３のＦＦ１３３Ａ、１３３Ｂ、１３３Ｃ、１３３Ｄのリセット端子Ｒに、それぞれ、反転素子１３３Ａ１、１３３Ｂ１、１３３Ｃ１、１３３Ｄ１を介して接続されている。
【０１６０】
端子１３１Ｆは、パターン判定部１３０の内部では、論理部１３５の出力端子に接続されており、論理部１３５の出力を出力部１４０及び端子１０５（図７参照）に出力する。
【０１６１】
パルス生成器１３２は、端子１３１Ａから入力されるデータＤＡＴＡ２［７：０］と、端子１３１Ｂから入力される基準クロックＰＣＬＫ２とに基づき、パルスＰＵＬＳＥ２を生成して出力する。
【０１６２】
パルス生成器１３２は、データＤＡＴＡ２［７：０］の値（'２５５'と'０'）が切り替わる際に、基準クロックＰＣＬＫ２の１周期分の期間にわたってＨレベルになるパルスＰＵＬＳＥ２を生成する。
【０１６３】
パルス生成器１３２が生成するパルスＰＵＬＳＥ２は、コンパレータ１３４のパルス入力端子ＰＬＳに入力される。パルスＰＵＬＳＥ２は、コンパレータ１３４の出力をリセットするために用いられる。
【０１６４】
なお、パルスＰＵＬＳＥ２は、パターン演算部１２０のパルス生成器１２２が生成するパルスＰＵＬＳＥ１と同様のパルスである。このため、パルス生成器１３２を設けずに、パルスＰＵＬＳＥ１をコンパレータ１３４のパルス入力端子ＰＬＳに入力してもよい。
【０１６５】
シフトレジスタ１３３は、ＦＦ１３３Ａ、１３３Ｂ、１３３Ｃ、１３３Ｄを（Ｍ＋１）個ずつ有する。ＦＦ１３３Ａ、１３３Ｂ、１３３Ｃ、１３３Ｄのリセット端子Ｒには、それぞれ、反転素子１３３Ａ１、１３３Ｂ１、１３３Ｃ１、１３３Ｄ１を介して端子１３１が接続されている。また、ＦＦ１３３Ａ、１３３Ｂ、１３３Ｃ、１３３Ｄのクロック入力端子には端子１３１Ｃが接続されている。これは、（Ｍ＋１）個のＦＦ１３３Ａ、１３３Ｂ、１３３Ｃ、１３３Ｄのすべてにおいて同様である。
【０１６６】
（Ｍ＋１）個のＦＦ１３３Ａのデータ入力端子には、（Ｍ＋１）個の端子１３１Ｄから除算結果ＤＩＶ［Ｍ：０］がビット毎に入力される。（Ｍ＋１）個のＦＦ１３３Ａのデータ出力端子は、それぞれ、（Ｍ＋１）個のＦＦ１３３Ｂのデータ入力端子と、コンパレータ１３４の４種類の（Ｍ＋１）個の入力端子のうちの１種類の（Ｍ＋１）個の入力端子とに接続される。
【０１６７】
また、（Ｍ＋１）個のＦＦ１３３Ｂのデータ入力端子には、（Ｍ＋１）個のＦＦ１３３Ａのデータ出力端子が接続される。（Ｍ＋１）個のＦＦ１３３Ｂのデータ出力端子は、それぞれ、（Ｍ＋１）個のＦＦ１３３Ｃのデータ入力端子と、コンパレータ１３４の４種類の（Ｍ＋１）個の入力端子のうちの１種類の（Ｍ＋１）個の入力端子とに接続される。
【０１６８】
同様に、（Ｍ＋１）個のＦＦ１３３Ｃのデータ入力端子には、（Ｍ＋１）個のＦＦ１３３Ｂのデータ出力端子が接続される。（Ｍ＋１）個のＦＦ１３３Ｃのデータ出力端子は、それぞれ、（Ｍ＋１）個のＦＦ１３３Ｄのデータ入力端子と、コンパレータ１３４の４種類の（Ｍ＋１）個の入力端子のうちの１種類の（Ｍ＋１）個の入力端子とに接続される。
【０１６９】
（Ｍ＋１）個のＦＦ１３３Ｄのデータ出力端子は、コンパレータ１３４の４種類の（Ｍ＋１）個の入力端子のうちの１種類の（Ｍ＋１）個の入力端子に接続される。
【０１７０】
シフトレジスタ１３３は、パルスＰＵＬＳＥ１がＦＦ１３３Ａ、１３３Ｂ、１３３Ｃ、１３３Ｄのクロック入力端子に入力される度に、端子１３１ＤからＦＦ１３３Ａに入力される除算結果ＤＩＶ［Ｍ：０］を次のＦＦ１３３Ｂ、１３３Ｃ、１３３Ｄに反映（シフト）しながら保持する。
【０１７１】
ここでは、ＦＦ１３３Ａ、１３３Ｂ、１３３Ｃ、１３３Ｄがそれぞれデータ入力端子に保持する除算結果ＤＩＶ［Ｍ：０］を、それぞれ、除算結果ＤＩＶ１［Ｍ：０］、除算結果ＤＩＶ２［Ｍ：０］、除算結果ＤＩＶ３［Ｍ：０］、除算結果ＤＩＶ４［Ｍ：０］と称す。
【０１７２】
除算結果ＤＩＶ１［Ｍ：０］は、４つのうちで最も新しい除算結果であり、除算結果ＤＩＶ４［Ｍ：０］は、４つのうちで最も古い除算結果である。
【０１７３】
コンパレータ１３４は、パルス入力端子ＰＬＳがパルス生成器１３２の出力端子に接続され、４種類の（Ｍ＋１）個の入力端子は、１種類ずつ、（Ｍ＋１）個のＦＦ１３３Ａ、１３３Ｂ、１３３Ｃ、１３３Ｄのデータ出力端子に接続されている。また、コンパレータ１３４の出力端子は、論理部１３５の入力端子に接続されている。コンパレータ１３４は、判定部の一例である。
【０１７４】
４種類の（Ｍ＋１）個の入力端子とは、４（Ｍ＋１）個の入力端子であり、（Ｍ＋１）個のＦＦ１３３Ａ、１３３Ｂ、１３３Ｃ、１３３Ｄのデータ出力端子（４（Ｍ＋１）個のデータ出力端子）に接続するために、４つのグループに分けられている。
【０１７５】
コンパレータ１３４は、比較用の許容範囲を表す値を保持する保持部１３４Ａを有している。保持部１３４Ａは、第３保持部の一例である。保持部１３４Ａが有する許容範囲を表す値は、４つあり、それぞれ、除算結果ＤＩＶ１［Ｍ：０］、ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］、ＤＩＶ４［Ｍ：０］と比較される。
【０１７６】
例えば、図６に示すように黒パターン２Ａ、白パターン２Ｂ、黒パターン２Ｃの幅が１：１：３：１：１である場合に、図６に示す矢印Ａ、Ｂ、Ｃのいずれかに沿ってファインダパターン２をスキャンした場合を考える。矢印Ａ、Ｂ、Ｃのいずれかに沿ってファインダパターン２をスキャンすることは、理想的なスキャンが行われた場合に相当する。
【０１７７】
このような場合には、除算結果ＤＩＶ１［Ｍ：０］、ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］、ＤＩＶ４［Ｍ：０］は、それぞれ、１、１／３、３、１の４つの値を取る。
【０１７８】
除算結果ＤＩＶ１［Ｍ：０］の１は、黒パターン２Ａの幅を白パターン２Ｂの幅で除算して得られる。除算結果ＤＩＶ２［Ｍ：０］の１／３は、白パターン２Ｂの幅を黒パターン２Ｃの幅で除算して得られる。
【０１７９】
除算結果ＤＩＶ３［Ｍ：０］の３は、黒パターン２Ｃの幅を白パターン２Ｄの幅で除算して得られる。除算結果ＤＩＶ４［Ｍ：０］の１は、白パターン２Ｂの幅を黒パターン２Ａの幅で除算して得られる。
【０１８０】
従って、保持部１３４Ａが保持する４つの許容範囲を表す値は、それぞれ、１、１／３、３、１に、所定の許容値を加えて得る範囲を表す値であればよい。許容値は、例えば、±１０％である。±１０％程度であれば、比の判定に支障が生じないからである。
【０１８１】
なお、保持部１３４Ａが保持する４つの許容範囲を表す値が±１０％の許容値を有するようにするためには、次のようにすればよい。ここでは、除算結果ＤＩＶ１［Ｍ：０］と、除算結果ＤＩＶ１［Ｍ：０］に対応する１つの許容範囲を表す値との関係について説明する。
【０１８２】
例えば（Ｍ＋１）ビットが５ビットである場合に、除算結果ＤＩＶ１［Ｍ：０］の上位の２ビットから３ビットの値と、許容範囲を表す値（５ビット）の上位の２ビットから３ビットの値とを比較し、一致すれば、許容範囲に入っていることとすればよい。すなわち、下位の１又は複数のビットを切り捨てて比較することにより、許容値を有する許容範囲を実現することができる。
【０１８３】
コンパレータ１３４は、パルス生成器１３２からパルス入力端子ＰＬＳに入力されるパルスＰＵＬＳＥ２がＨレベルになると、比較結果ＣＭＰＯＵＴを'０'にリセットする。
【０１８４】
コンパレータ１３４は、ＦＦ１３３Ａ、１３３Ｂ、１３３Ｃ、１３３Ｄのデータ出力端子から入力される４つの除算結果ＤＩＶ１［Ｍ：０］、ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］、ＤＩＶ４［Ｍ：０］が、すべてそれぞれの除算値の許容範囲に入っていれば、'１'を出力する。いずれか１つでも許容範囲に入っていない場合は、'０'を出力する。そして、コンパレータ１３４が出力する比較結果ＣＭＰＯＵＴは、論理部１３５に入力される。
【０１８５】
論理部１３５は、入力端子がコンパレータ１３４の出力端子に接続されており、コンパレータ１３４の比較結果ＣＭＰＯＵＴが入力される。論理部１３５は、比較結果ＣＭＰＯＵＴに応じて出力ＬＯＧＯＵＴを出力する。
【０１８６】
ここで、コンパレータ１３４、論理部１３５、及び出力部１４０は、転送部の一例である。
【０１８７】
論理部１３５は、比較結果ＣＭＰＯＵＴが３回'１'に達した場合に、Ｈレベルの出力ＬＯＧＯＵＴを出力する。論理部１３５は、比較結果ＣＭＰＯＵＴが３回'１'に達しない（３回未満の）場合は、Ｌレベルの出力ＬＯＧＯＵＴを出力する。
【０１８８】
出力ＬＯＧＯＵＴがＨレベルの場合には、出力部１４０は２値化した画像のデータをＭＣＵ３０Ｂに転送する。この場合には、ＬＥＤ１４は点灯されない。出力ＬＯＧＯＵＴがＬレベルの場合には、出力部１４０は２値化した画像のデータをＭＣＵ３０Ｂに転送しない。この場合には、ＬＥＤ１４は点灯される。すなわち、ＬＥＤ１４は、出力ＬＯＧＯＵＴがＬレベルの場合に点灯される。これは、ＬＥＤ１４が出力ＬＯＧＯＵＴの信号レベルを反転した信号に基づいて点灯されるようにしておけば、出力ＬＯＧＯＵＴがＬレベルの場合に、ＬＥＤ１４にＨレベルの信号が入力され、ＬＥＤ１４を点灯することができる。ＬＥＤ１４に入力されるＨレベルの信号の電圧値は、ＬＥＤ１４がオンになる閾値以上の電圧値に設定しておけばよい。
【０１８９】
例えば、ＱＲコード１（図４参照）を撮像した画像をラスタースキャン方式で、１行ずつ、かつ、各行において１画素ずつ読み取る場合に、図５に示す矢印Ａに平行な方向にスキャンを繰り返しているとする。そのような場合に、ファインダパターン２の黒パターン２Ｃの中心の近傍をスキャンすると、比較結果ＣＭＰＯＵＴが'１'になる。
【０１９０】
このように比較結果ＣＭＰＯＵＴが'１'になることが３回起きると、論理部１３５は、Ｌレベルの出力ＬＯＧＯＵＴを出力する。このような論理部１３５は、プログラマブル論理回路の論理を組むことによって実現可能である。
【０１９１】
また、ここでは、比較結果ＣＭＰＯＵＴが３回'１'に達した場合に、論理部１３５がＨレベルの出力ＬＯＧＯＵＴを出力する形態について説明するが、３回には限らず、１回以上であって、シンボル検出装置１００によるファインダパターン２の検出に、ある程度の信頼性を担保できる所定の回数であればよい。
【０１９２】
図１３は、パターン判定部１３０が比較結果ＣＭＰＯＵＴを出力するまでの動作を表すタイミングチャートを示す図である。図１３には、基準クロックＰＣＬＫ２、データＤＡＴＡ２［７：０］、パルスＰＵＬＳＥ１、パルスＰＵＬＳＥ２、除算結果ＤＩＶ１［Ｍ：０］、除算結果ＤＩＶ２［Ｍ：０］、除算結果ＤＩＶ３［Ｍ：０］、除算結果ＤＩＶ４［Ｍ：０］、比較結果ＣＭＰＯＵＴを示す。図１３において、縦軸は各信号の信号レベルを示し、横軸は時間を示す。
【０１９３】
時刻ｔ２０でデータＤＡＴＡ２［７：０］が不定（ｘｘｘｘ）の状態から'０'になると、パルスＰＵＬＳＥ１及びパルスＰＵＬＳＥ２がクロックＰＣＬＫ２の１周期の期間にわたってＨレベルになる。
【０１９４】
パルスＰＵＬＳＥ１がＨレベルになることにより、ＦＦ１３３Ａ、１３３Ｂ、１３３Ｃ、１３３Ｄがデータ出力端子に保持する値をデータ出力端子にシフトし、除算結果ＤＩＶ１［Ｍ：０］、ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］、ＤＩＶ４［Ｍ：０］に値が反映される。
【０１９５】
このため、時刻ｔ２０の直前の除算結果ＤＩＶ１［Ｍ：０］、ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］の値Ａ１、Ａ２、Ａ３が、時刻ｔ２０で除算結果ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］、ＤＩＶ４［Ｍ：０］にシフトされる。また、時刻ｔ２０では除算結果ＤＩＶ１［Ｍ：０］の値はＷ４になる。
【０１９６】
また、時刻ｔ２０でパルスＰＵＬＳＥ２がＨレベルになることにより、コンパレータ１３４は、時刻ｔ２０の直前の除算結果ＤＩＶ１［Ｍ：０］、ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］、ＤＩＶ４［Ｍ：０］の値Ａ１、Ａ２、Ａ３、Ａ４を許容範囲の値を比較し、比較結果ＣＭＰＯＵＴとして'０'を出力したとする。
【０１９７】
時刻ｔ２１でデータＤＡＴＡ２［７：０］が'０'から'２５５'になると、パルスＰＵＬＳＥ１及びパルスＰＵＬＳＥ２がクロックＰＣＬＫ２の１周期の期間にわたってＨレベルになる。
【０１９８】
パルスＰＵＬＳＥ１がＨレベルになることにより、時刻ｔ２１の直前の除算結果ＤＩＶ１［Ｍ：０］、ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］の値Ｗ４、Ａ１、Ａ２が、時刻２１で除算結果ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］、ＤＩＶ４［Ｍ：０］にシフトされる。また、時刻ｔ２１では除算結果ＤＩＶ１［Ｍ：０］の値はＷ３になる。
【０１９９】
また、時刻ｔ２１でパルスＰＵＬＳＥ２がＨレベルになることにより、コンパレータ１３４は、時刻ｔ２１の直前の除算結果ＤＩＶ１［Ｍ：０］、ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］、ＤＩＶ４［Ｍ：０］の値Ｗ４、Ａ１、Ａ２、Ａ３を許容範囲の値を比較し、比較結果ＣＭＰＯＵＴとして'０'を出力したとする。
【０２００】
そして、さらに、時刻ｔ２２でデータＤＡＴＡ２［７：０］が'２５５'から'０'になると、パルスＰＵＬＳＥ１及びパルスＰＵＬＳＥ２がクロックＰＣＬＫ２の１周期の期間にわたってＨレベルになる。
【０２０１】
パルスＰＵＬＳＥ１がＨレベルになることにより、時刻ｔ２２の直前の除算結果ＤＩＶ１［Ｍ：０］、ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］の値Ｗ３、Ｗ４、Ａ１が、時刻２２で除算結果ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］、ＤＩＶ４［Ｍ：０］にシフトされる。また、時刻ｔ２２では除算結果ＤＩＶ１［Ｍ：０］の値はＷ２になる。
【０２０２】
また、時刻ｔ２２でパルスＰＵＬＳＥ２がＨレベルになることにより、コンパレータ１３４は、時刻ｔ２２の直前の除算結果ＤＩＶ１［Ｍ：０］、ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］、ＤＩＶ４［Ｍ：０］の値Ｗ３、Ｗ４、Ａ１、Ａ２を許容範囲の値を比較し、比較結果ＣＭＰＯＵＴとして'１'を出力したとする。
【０２０３】
図１４は、論理部１３５の動作を表すタイミングチャートを示す図である。図１４には、基準クロックＰＣＬＫ２、比較結果ＣＭＰＯＵＴ、出力ＬＯＧＯＵＴを示す。図１４において、縦軸は各信号の信号レベルを示し、横軸は時間を示す。
【０２０４】
時刻ｔ３０において、比較結果ＣＭＰＯＵＴが'０'から'１'に遷移したとする。また、時刻ｔ３１において、比較結果ＣＭＰＯＵＴは'０'にリセットされる。比較結果ＣＭＰＯＵＴのリセットは、コンパレータ１３４のパルス入力端子ＰＬＳにパルス生成器１３２から入力されるパルスＰＵＬＳＥ２がＨレベルになったときに行われる。
【０２０５】
また、時刻ｔ３２においても、比較結果ＣＭＰＯＵＴが'０'から'１'に遷移し、時刻ｔ３３で'０'にリセットされたとする。
【０２０６】
さらに、時刻ｔ３４においても、比較結果ＣＭＰＯＵＴが'０'から'１'に遷移し、時刻ｔ３５で'０'にリセットされたとする。
【０２０７】
このように、比較結果ＣＭＰＯＵＴが'１'になることが３回起きると、時刻ｔ３６において、論理部１３５は、出力ＬＯＧＯＵＴをＬレベルからＨレベルに遷移する。
【０２０８】
図１５は、出力部１４０を示す図である。
【０２０９】
出力部１４０は、２つの入力端子と出力端子を有する。出力部１４０の一方の入力端子は、論理部１３５（図１２参照）の出力端子に接続されており、出力ＬＯＧＯＵＴが入力される。出力部１４０の他方の入力端子は、２値化処理部１１０の出力端子に接続されており、水平同期信号ＨＲＥＦ２、垂直同期信号ＶＳＹＮＣ２、基準クロックＰＣＬＫ２、データＤＡＴＡ２［７：０］が入力される。
【０２１０】
また、出力部１４０の出力端子は、ＭＣＵ３０ＢのＤＣＭＩ３４Ｂ（図３及び図７参照）に接続されている。
【０２１１】
出力部１４０は、出力ＬＯＧＯＵＴの信号レベルがＨレベル（'１'）のときには、水平同期信号ＨＲＥＦ２、垂直同期信号ＶＳＹＮＣ２、基準クロックＰＣＬＫ２、データＤＡＴＡ２［７：０］を、それぞれ、水平同期信号ＨＲＥＦ３、垂直同期信号ＶＳＹＮＣ３、基準クロックＰＣＬＫ３、データＤＡＴＡ３［７：０］としてＭＣＵ３０Ｂに出力する。
【０２１２】
一方、出力部１４０は、出力ＬＯＧＯＵＴの信号レベルがＬレベル（'０'）のときには、水平同期信号ＨＲＥＦ２、垂直同期信号ＶＳＹＮＣ２、基準クロックＰＣＬＫ２、データＤＡＴＡ２［７：０］をＭＣＵ３０Ｂに出力しない。出力ＬＯＧＯＵＴの信号レベルがＬレベル（'０'）のときは、ＱＲコード１（図４参照）のファインダパターン２が検出されていないからである。
【０２１３】
図１６は、出力部１４０の動作を表す真理値表である。
【０２１４】
図１６に示す真理値表は、出力部１４０に入力される論理部１３５（図１２参照）の出力ＬＯＧＯＵＴの信号レベルと、出力部１４０が出力する水平同期信号ＨＲＥＦ３、垂直同期信号ＶＳＹＮＣ３、基準クロックＰＣＬＫ３、データＤＡＴＡ３［７：０］の内容との関係を示す。
【０２１５】
図１６に示すように、出力部１４０は、出力ＬＯＧＯＵＴがＨレベル（'１'）のときは、水平同期信号ＨＲＥＦ３、垂直同期信号ＶＳＹＮＣ３、基準クロックＰＣＬＫ３、データＤＡＴＡ３［７：０］として、水平同期信号ＨＲＥＦ２、垂直同期信号ＶＳＹＮＣ２、基準クロックＰＣＬＫ２、データＤＡＴＡ２［７：０］をＭＣＵ３０Ｂに出力する。
【０２１６】
一方、出力部１４０は、出力ＬＯＧＯＵＴがＬレベル（'０'）のときは、水平同期信号ＨＲＥＦ３、垂直同期信号ＶＳＹＮＣ３、基準クロックＰＣＬＫ３、データＤＡＴＡ３［７：０］の値をすべて'０'に設定してＭＣＵ３０Ｂに出力する。
【０２１７】
これは、出力ＬＯＧＯＵＴがＬレベル（'０'）のときは、出力部１４０が、２値化処理部１１０から入力される水平同期信号ＨＲＥＦ２、垂直同期信号ＶＳＹＮＣ２、基準クロックＰＣＬＫ２、データＤＡＴＡ２［７：０］をＭＣＵ３０Ｂに出力しないことと同義である。
【０２１８】
次に、図１７乃至図２０のシーケンス図を用いて、シンボル検出装置１００の動作例について説明する。
【０２１９】
図１７乃至図２０は、シンボル検出装置１００の動作例を示すシーケンス図である。
【０２２０】
図１７には、スイッチ１２、ＭＣＵ３０Ａ、ＭＣＵ３０Ｂ、シンボル検出装置１００、カメラモジュール５０の動作を示す。また、図１７の右端には、ＭＣＵ３０Ａ、ＭＣＵ３０Ｂ、シンボル検出装置１００、カメラモジュール５０のトータルの消費電流を示す。なお、図１７において、時間軸は、図面の上方から下方に向かう方向である。
【０２２１】
図１７に示すように、スイッチ１２が押されるとトリガーが生成され、ＭＣＵ３０Ａに送られる。このとき、ＭＣＵ３０ＢはＳｌｅｅｐ状態であり、ＭＣＵ３０Ａ、シンボル検出装置１００、カメラモジュール５０はオフである。
【０２２２】
ＭＣＵ３０Ａがスイッチ１２のトリガーを検出すると、ＭＣＵ３０ＡによってＭＣＵ３０ＢがＡｃｔｉｖｅにされる。ＭＣＵ３０Ｂは、Ａｃｔｉｖｅにされるとシンボル検出装置１００に撮像の指示を送る。
【０２２３】
シンボル検出装置１００は、撮像の指示を受けると、カメラモジュール５０に撮像を行わせるとともに、ＭＣＵ３０ＢにＷａｉｔ信号を送信する。ＭＣＵ３０Ｂは、待機（Ｗａｉｔ）状になる。
【０２２４】
撮像の指示を受けたカメラモジュール５０は、撮像した画像のデータをシンボル検出装置１００に転送する。カメラモジュール５０は、画像のデータをラスタースキャン方式で画素毎に転送するため、カメラモジュール５０が画像の転送を開始してから終了するまでの期間は、シンボル検出装置１００が画像を受け取り始めてから受け取り終わるまでの期間と一部で重複する。
【０２２５】
シンボル検出装置１００は、カメラモジュール５０から画素毎に転送される画像を読み取り、ファインダパターン２の検出処理を行う。ここで、ファインダパターン２が検出されない（シンボル非検出）という結果になると、カメラモジュール５０は、２フレーム目の撮像を行い、撮像した画像のデータをシンボル検出装置１００に転送する。
【０２２６】
シンボル検出装置１００は、カメラモジュール５０から画素毎に転送される画像を読み取り、ファインダパターン２の検出処理を行う。ここで、再度ファインダパターン２が検出されない（シンボル非検出）という結果になると、カメラモジュール５０は、３フレーム目の撮像を行う。
【０２２７】
このようにファインダパターン２の検出処理を行った結果、シンボル非検出となっても、ＭＣＵ３０ＢはＳｌｅｅｐ状態であり、ファインダパターン２の検出処理はシンボル検出装置１００によって行われるため、消費電流は少なくて済む。
【０２２８】
また、図１８には、図１７に示すシーケンスのうちのシンボル検出装置１００の内部の処理をＭＣＵ３０Ｂ及びカメラモジュール５０の動作とともに示す。図１８に示すシーケンスは、図１７において、ＭＣＵ３０Ｂから撮像の指示を受けたシンボル検出装置１００がカメラモジュール５０に撮像の指示を送信する時点から始まる。なお、図１８に示すシーケンスでは、ＭＣＵ３０ＢはＷａｉｔ状態に保持されている。
【０２２９】
図１８には、シンボル検出装置１００の内部の構成要素である、２値化処理部１１０、パターン演算部１２０、パターン判定部１３０、出力部１４０、及び指示部１５０を示す。
【０２３０】
まず、指示部１５０がカメラモジュール５０に撮像の指示を行うと、カメラモジュール５０は撮像を行い、撮像した画像のデータをシンボル検出装置１００に転送する。
【０２３１】
２値化処理部１１０は、カメラモジュール５０から画素毎に転送される画像を２値化し、パターン演算部１２０に送る。パターン演算部１２０は、白い画素と黒い画素の連続数の比を計算し、計算結果をパターン判定部１３０に送る。
【０２３２】
パターン判定部１３０は、ファインダパターン２の検出処理を行い、シンボル非検出になると、カメラモジュール５０への撮像の指示を指示部１５０に行わせる。カメラモジュール５０は撮像を行い、撮像した画像のデータを画素毎にシンボル検出装置１００に転送する。
【０２３３】
２値化処理部１１０は、カメラモジュール５０から画素毎に転送される画像を２値化し、パターン演算部１２０に送る。パターン演算部１２０は、白い画素と黒い画素の連続数の比を計算し、計算結果をパターン判定部１３０に送る。
【０２３４】
パターン判定部１３０は、ファインダパターン２の検出処理を行い、シンボル非検出になると、カメラモジュール５０への撮像の指示を指示部１５０に行わせる。
【０２３５】
このように、ファインダパターン２が検出されない（シンボル非検出の）ときは、出力部１４０は、画像のデータをＭＣＵ３０Ｂに転送しない。
【０２３６】
次に、図１９及び図２０を用いて、ファインダパターン２の検出が成功する場合のシーケンスについて説明する。
【０２３７】
図１９では、カメラモジュール５０からシンボル検出装置１００に画像のデータが転送された後の時点から説明を行う。スイッチ１２が押されてから、シンボル検出装置１００に画像のデータが転送されるまでの動作は、図１７に示すものと同様である。
【０２３８】
シンボル検出装置１００は、カメラモジュール５０から画素毎に転送される画像を読み取り、ファインダパターン２の検出処理を行う。ここで、ファインダパターン２が検出されない（シンボル非検出）という結果になると、カメラモジュール５０は、２フレーム目の撮像を行い、撮像した画像のデータをシンボル検出装置１００に転送する。
【０２３９】
シンボル検出装置１００は、カメラモジュール５０から画素毎に転送される画像を読み取り、ファインダパターン２の検出処理を行う。ここで、ファインダパターン２が検出されると、シンボル検出装置１００は、ＭＣＵ３０ＢをＡｃｔｉｖｅにするとともに、カメラモジュール５０に撮像を行わせる。
【０２４０】
カメラモジュール５０は、撮像した画像のデータをシンボル検出装置１００に転送し、シンボル検出装置１００は、画像の２値化を行いながら、２値化した画像をＭＣＵ３０Ｂに送る。
【０２４１】
この結果、ＭＣＵ３０Ｂは、２値化された画像に対して画像処理を行い、ＱＲコード１（図４参照）のデータ領域５に書き込まれたデータを読み取る。ＭＣＵ３０Ｂは、データの読み取りに成功すると、読み取りに成功したことをＭＣＵ３０Ａに報告する。
【０２４２】
このように、ファインダパターン２が検出された場合は、ＭＣＵ３０ＢがＱＲコード１（図４参照）のデータ領域５に対して画像処理を行うため、ＭＣＵ３０Ｂが画像処理を行っている間は、消費電流が増大する。
【０２４３】
しかしながら、ファインダパターン２がシンボル検出装置１００によって検出されずにＭＣＵ３０Ｂが画像処理を行っていないときは、図１７に示す消費電流と同等であり、電力消費を低減することができる。
【０２４４】
また、図２０には、図１９に示すシーケンスのうちのシンボル検出装置１００の内部の処理をＭＣＵ３０Ｂ及びカメラモジュール５０の動作とともに示す。図２０に示すシーケンスは、図１９において、ＭＣＵ３０Ｂから撮像の指示を受けたシンボル検出装置１００がカメラモジュール５０に撮像の指示を送信する時点から始まる。なお、図２０に示すシーケンスでは、ＭＣＵ３０Ｂは最初はＷａｉｔ状態に保持されている。
【０２４５】
図２０には、シンボル検出装置１００の内部の構成要素である、２値化処理部１１０、パターン演算部１２０、パターン判定部１３０、出力部１４０、及び指示部１５０を示す。
【０２４６】
まず、指示部１５０がカメラモジュール５０に撮像の指示を行うと、カメラモジュール５０は撮像を行い、撮像した画像のデータをシンボル検出装置１００に転送する。
【０２４７】
２値化処理部１１０は、カメラモジュール５０から画素毎に転送される画像を２値化し、パターン演算部１２０に送る。パターン演算部１２０は、白い画素と黒い画素の連続数の比を計算し、計算結果をパターン判定部１３０に送る。
【０２４８】
パターン判定部１３０は、ファインダパターン２の検出処理を行い、ファインダパターン２を検出すると、カメラモジュール５０への撮像の指示を指示部１５０に行わせる。カメラモジュール５０は撮像を行い、撮像した画像のデータをシンボル検出装置１００に転送する。
【０２４９】
２値化処理部１１０は、カメラモジュール５０から画素毎に転送される画像を２値化し、出力部１４０に送る。出力部１４０は、シンボル検出装置１００は、ファインダパターン２の検出に用いた画像の次のフレームの画像をカメラモジュール５０に撮像させ、２値化処理部１１０で２値化してから、出力部１４０を経てＭＣＵ３０Ｂに転送する。
【０２５０】
このように、ファインダパターン２が検出されると、出力部１４０は、画像のデータをＭＣＵ３０Ｂに転送する。
【０２５１】
図２１は、シンボル検出装置１００が実行する処理を示すフローチャートである。シンボル検出装置１００は、画像を読み取るモードが開始されると、処理をスタートする（ＳＴＡＲＴ）。
【０２５２】
シンボル検出装置１００は、各画素の画素値を２値化する（ステップＳ１）。ステップＳ１の処理は、２値化処理部１１０が実行する。
【０２５３】
シンボル検出装置１００は、白い画素又は黒い画素の連続数が切り替わったかどうかを判定する（ステップＳ２）。ステップＳ２の処理は、パターン演算部１２０が実行する。
【０２５４】
シンボル検出装置１００は、白い画素又は黒い画素の連続数が切り替わった（Ｓ２：ＹＥＳ）と判定すると、ＨレベルのパルスＰＵＬＳＥ１を生成する（ステップＳ３）。ステップＳ３の処理は、パターン演算部１２０が実行する。より具体的には、シンボル検出装置１００は、カウント値ＣＮＴ１［Ｎ：０］と、カウント値ＣＮＴ２［Ｎ：０］とが切り替わったかどうかを判定する。
【０２５５】
シンボル検出装置１００は、切り替わり前の連続数をＦＦ１２４Ｂで保持する（ステップＳ４）。ステップＳ４の処理は、パターン演算部１２０が実行する。
【０２５６】
シンボル検出装置１００は、切り替わり前の連続数と、切り替わり後の連続数との比を算出する（ステップＳ５）。ステップＳ５の処理は、パターン演算部１２０が実行する。算出される比は、除算結果ＤＩＶ［Ｍ：０］としてパターン演算部１２０から出力される。
【０２５７】
シンボル検出装置１００は、パルスＰＵＬＳＥ１がＨレベルになったかどうかを判定する（ステップＳ６）。ステップＳ６の処理は、パターン判定部１３０が実行する。
【０２５８】
シンボル検出装置１００は、パルスＰＵＬＳＥ１がＨレベルになった（Ｓ６：ＹＥＳ）と判定すると、ＦＦ１３３Ａ、ＦＦ１３３Ｂ、１３３Ｃが保持する除算結果ＤＩＶ［Ｍ：０］を次のＦＦ１３３Ｂ、１３３Ｃ、１３３Ｄに反映する（ステップＳ７）。
【０２５９】
ステップＳ７の処理は、パターン判定部１３０が実行する。より具体的には、シフトレジスタ１３３は、パルスＰＵＬＳＥ１がＦＦ１３３Ａ、１３３Ｂ、１３３Ｃ、１３３Ｄのクロック入力端子に入力される度に、端子１３１Ｄからしながら保持する。なお、ＦＦ１３３Ａには、最新の除算結果ＤＩＶ［Ｍ：０］が入力される。
【０２６０】
これにより、ＦＦ１３３Ａ、ＦＦ１３３Ｂ、１３３Ｃ、１３３Ｄは、それぞれ、４つの除算結果ＤＩＶ１［Ｍ：０］、ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］、ＤＩＶ４［Ｍ：０］を保持する。また、４つの除算結果ＤＩＶ１［Ｍ：０］、ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］、ＤＩＶ４［Ｍ：０］は、ステップＳ７の処理によってコンパレータ１３４に入力される。
【０２６１】
シンボル検出装置１００は、４つの除算結果ＤＩＶ１［Ｍ：０］、ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］、ＤＩＶ４［Ｍ：０］が、すべてそれぞれの除算値の許容範囲に入っているかどうかを判定する（ステップＳ８）。ステップＳ８の処理は、パターン判定部１３０が実行する。より具体的には、コンパレータ１３４は、ＦＦ１３３Ａ、１３３Ｂ、１３３Ｃ、１３３Ｄのデータ出力端子から入力される４つの除算結果ＤＩＶ１［Ｍ：０］、ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］、ＤＩＶ４［Ｍ：０］が、すべてそれぞれの除算値の許容範囲に入っているかどうかを判定する。
【０２６２】
シンボル検出装置１００は、４つの除算結果ＤＩＶ１［Ｍ：０］、ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］、ＤＩＶ４［Ｍ：０］が、すべてそれぞれの除算値の許容範囲に入っている（Ｓ８：ＹＥＳ）と判定すると、'１'を出力する（ステップＳ９）。ステップＳ９の処理は、パターン判定部１３０が実行する。
【０２６３】
シンボル検出装置１００は、４つの除算結果ＤＩＶ１［Ｍ：０］、ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］、ＤＩＶ４［Ｍ：０］のいずれか１つでも許容範囲に入っていない（Ｓ８：ＮＯ）場合は、'０'を出力する（ステップＳ１０）。ステップＳ１０の処理は、パターン判定部１３０が実行する。
【０２６４】
シンボル検出装置１００は、比較結果ＣＭＰＯＵＴが３回'１'に達したかどうかを判定する（ステップＳ１１）。ステップＳ１１の処理は、パターン判定部１３０が実行する。より具体的には、論理部１３５が比較結果ＣＭＰＯＵＴが３回'１'に達したかどうかを判定する。
【０２６５】
シンボル検出装置１００は、比較結果ＣＭＰＯＵＴが３回'１'に達した（Ｓ１１：ＹＥＳ）と判定すると、Ｈレベルの出力ＬＯＧＯＵＴを出力する（ステップＳ１２）。ステップＳ１２の処理は、パターン判定部１３０が実行する。より具体的には、論理部１３５がＨレベルの出力ＬＯＧＯＵＴを出力する。
【０２６６】
次いで、シンボル検出装置１００は、出力部１４０は、画像のデータをＭＣＵ３０Ｂに転送する（ステップＳ１３）。ステップＳ１２の処理は、出力部１４０が実行する。より具体的には、出力部１４０は、水平同期信号ＨＲＥＦ２、垂直同期信号ＶＳＹＮＣ２、基準クロックＰＣＬＫ２、データＤＡＴＡ２［７：０］を、それぞれ、水平同期信号ＨＲＥＦ３、垂直同期信号ＶＳＹＮＣ３、基準クロックＰＣＬＫ３、データＤＡＴＡ３［７：０］としてＭＣＵ３０Ｂに出力する。
【０２６７】
一方、シンボル検出装置１００は、比較結果ＣＭＰＯＵＴが３回'１'に達していない（１３：ＮＯ）と判定すると、Ｌレベルの出力ＬＯＧＯＵＴを出力する（ステップＳ１４）。ステップＳ１１の処理は、パターン判定部１３０が実行する。より具体的には、論理部１３５がＬレベルの出力ＬＯＧＯＵＴを出力する。
【０２６８】
次いで、シンボル検出装置１００は、画像のデータをＭＣＵ３０Ｂに転送しない（ステップＳ１５）。ステップＳ１２の処理は、出力部１４０が実行する。より具体的には、出力部１４０は、水平同期信号ＨＲＥＦ２、垂直同期信号ＶＳＹＮＣ２、基準クロックＰＣＬＫ２、データＤＡＴＡ２［７：０］をＭＣＵ３０Ｂに出力（転送）しない。また、この結果、シンボル検出装置１００によってＬＥＤ１４が点灯され、データＤＡＴＡ２［７：０］がＭＣＵ３０Ｂに転送されないことが利用者に報知される。
【０２６９】
シンボル検出装置１００は、ステップＳ１３又はステップＳ１５の処理を終えると、画像を読み取るモードが終了されたかどうかを判定する（ステップＳ１６）。
【０２７０】
シンボル検出装置１００は、画像を読み取るモードが終了されていなければ（Ｓ１６：ＮＯ）フローをステップＳ１にリターンする。
【０２７１】
シンボル検出装置１００は、画像を読み取るモードが終了されていれば（Ｓ１６：ＹＥＳ）、一連の処理を終了する（ＥＮＤ）。
【０２７２】
ここで、図２２乃至図２４を用いて、比較例について説明する。
【０２７３】
図２２は、比較例のバーコードリーダ１０Ａの内部構成を示す図である。
【０２７４】
バーコードリーダ１０Ａは、図２に示す実施の形態のバーコードリーダ１０からシンボル検出装置１００を取り除き、ＭＣＵ３０Ｂとカメラモジュール５０を直接的に接続した構成を有する。比較例のバーコードリーダ１０Ａでは、ファインダパターン２の検出は、ＭＣＵ３０Ｂが画像処理を行うことによって実現される。その他の構成要素は、図２に示す実施の形態のバーコードリーダ１０と同様である。
【０２７５】
図２３及び図２４は、比較例のバーコードリーダ１０Ａの動作例を示すシーケンス図である。
【０２７６】
図２３には、スイッチ１２、ＭＣＵ３０Ａ、ＭＣＵ３０Ｂ、カメラモジュール５０、無線モジュール４０の動作を示す。また、図２３の右端には、ＭＣＵ３０Ａ、ＭＣＵ３０Ｂ、カメラモジュール５０のトータルの消費電流を示す。なお、図２３において、時間軸は、図面の上方から下方に向かう方向である。
【０２７７】
図２３に示すように、スイッチ１２が押されるとトリガーが生成される。このとき、ＭＣＵ３０ＢはＳｌｅｅｐ状態であり、ＭＣＵ３０Ａ、カメラモジュール５０はオフである。
【０２７８】
ＭＣＵ３０Ａがスイッチ１２のトリガーを検出すると、ＭＣＵ３０ＡによってＭＣＵ３０ＢがＡｃｔｉｖｅにされる。ＭＣＵ３０Ｂは、Ａｃｔｉｖｅにされると、カメラモジュール５０に撮像を行わせる。
【０２７９】
撮像の指示を受けたカメラモジュール５０は、撮像した画像のデータをＭＣＵ３０Ｂに転送する。
【０２８０】
ＭＣＵ３０Ｂは、カメラモジュール５０から画素毎に転送される画像に対して画像処理を行い、ＱＲコード１（図４参照）のファインダパターン２の認識と、データ領域５のデータの読み取りを行う。そして、ＭＣＵ３０Ｂは、ＱＲコード１のデータの読み取りに成功すると、読み取ったデータを成功結果としてＭＣＵ３０Ａに報告する。
【０２８１】
ＭＣＵ３０Ａは、ＭＣＵ３０Ｂから成功結果を受信すると、無線モジュール４０に成功結果を転送する。これにより、無線モジュール４０に、ＱＲコード１のデータが転送される。
【０２８２】
ＭＣＵ３０Ｂがファインダパターン２の認識と、データ領域５のデータの読み取りのための画像処理を行っている間は、ＭＣＵ３０Ｂが内部メモリを利用しながらファインダパターン２と認識とデータ領域５の読み取りを行うので、消費電流は増大する。消費電流は、図１７及び図１９と同じスケールで示してあるので、実施の形態のバーコードリーダ１０と比較すると、消費電流は、かなり増大することになる。
【０２８３】
次に、図２４を用いて、ＱＲコード１のデータの読み取りに失敗する場合のシーケンスについて説明する。
【０２８４】
図２４では、ＭＣＵ３０ＢがＡｃｔｉｖｅにされた後の時点から説明を行う。スイッチ１２が押されてから、ＭＣＵ３０ＢがＡｃｔｉｖｅにされるまでの動作は、図２３に示すものと同様である。
【０２８５】
カメラモジュール５０は、ＱＲコード１の撮像を行い、撮像した画像のデータをＭＣＵ３０Ｂに転送する。ＭＣＵ３０Ｂは、カメラモジュール５０から画素毎に転送される画像を取得し、ファインダパターン２の認識と、データ領域５のデータの読み取りを行う。
【０２８６】
ここで、ＭＣＵ３０Ｂがファインダパターン２の認識、又は、データ領域５のデータの読み取りに失敗したとする。ＭＣＵ３０Ｂは、再度カメラモジュール５０に撮像を行わせ、カメラモジュール５０から転送される画像を取得し、ファインダパターン２の認識と、データ領域５のデータの読み取りを行う。
【０２８７】
そして、ＭＣＵ３０Ｂは、ファインダパターン２の認識、又は、データ領域５のデータの読み取りに再度失敗したとする。
【０２８８】
ＭＣＵ３０Ｂがファインダパターン２の認識に失敗するのは、例えば、カメラモジュール５０が撮像した画像の焦点が合っていない場合、カメラモジュール５０が撮像した画像にファインダパターン２の全体がきちんと含まれていない場合等がある。
【０２８９】
また、ＭＣＵ３０Ｂがデータ領域５のデータの読み取りに失敗するのは、例えば、カメラモジュール５０が撮像した画像の焦点が合っていない場合、カメラモジュール５０が撮像した画像にデータ領域５の全体がきちんと含まれていない場合等がある。
【０２９０】
このように、比較例のバーコードリーダ１０ＡにおいてＱＲコード１の読み取りに失敗すると、ＭＣＵ３０Ｂが画像処理を行う度に、消費電流が増大する。
【０２９１】
このような消費電流の増大は、実施の形態のバーコードリーダ１０のシーケンス図（図１７及び図１９）に示す消費電流と比べると、顕著である。
【０２９２】
図２３及び図２４に示す消費電流を、図１７及び図１９に示す消費電流と比較すると、実施の形態のバーコードリーダ１０は、シンボル検出装置１００を用いることにより、比較例のバーコードリーダ１０Ａに比べて、消費電力を大幅に低減できることを確認できる。
【０２９３】
以上のように、実施の形態のバーコードリーダ１０では、シンボル検出装置１００がファインダパターン２の検出を行い、コンパレータ１３４の比較結果ＣＭＰＯＵＴが'１'に３回なったときに、水平同期信号ＨＲＥＦ３、垂直同期信号ＶＳＹＮＣ３、基準クロックＰＣＬＫ３、データＤＡＴＡ３［７：０］を初めてＭＣＵ３０Ｂに出力する。
【０２９４】
コンパレータ１３４の比較結果ＣＭＰＯＵＴが'１'に３回なったときは、ＱＲコード１（図４参照）のファインダパターン２の中央に位置する黒パターン２Ｃの中心を通るスキャンが３回連続で行われたと考えられるときである。
【０２９５】
ファインダパターン２の中央に位置する黒パターン２Ｃの中心を通るスキャンが３回連続で行われることは、シンボル検出装置１００によってファインダパターン２が検出されたと考えられるときである。
【０２９６】
シンボル検出装置１００は、このようにファインダパターン２を検出したときに、水平同期信号ＨＲＥＦ３、垂直同期信号ＶＳＹＮＣ３、基準クロックＰＣＬＫ３、データＤＡＴＡ３［７：０］を初めてＭＣＵ３０Ｂに出力する。
【０２９７】
換言すれば、シンボル検出装置１００は、ファインダパターン２を検出していないときは、水平同期信号ＨＲＥＦ３、垂直同期信号ＶＳＹＮＣ３、基準クロックＰＣＬＫ３、データＤＡＴＡ３［７：０］をＭＣＵ３０Ｂに出力しない。
【０２９８】
このようなシンボル検出装置１００を用いることにより、バーコードリーダ１０におけるＱＲコード１（図４参照）の読み取り時の消費電力を低減することができる。
【０２９９】
シンボル検出装置１００は、ＦＰＧＡのようなプログラマブル論理回路又は演算処理部で実現される。このようなシンボル検出装置１００は、画像のデータをＦＦ１２４Ａ、１２４Ｂに保持するだけであり、また、除算結果ＤＩＶ１［Ｍ：０］〜ＤＩＶ４［Ｍ：０］をＦＦ１３３Ａ〜１３３Ｄに保持するだけであり、画像のデータをメモリ等に保持するＭＣＵ３０Ｂに比べると、消費電力が大幅に少ない。
【０３００】
このようなシンボル検出装置１００にＱＲコード１（図４参照）のファインダパターン２を検出させて、ファインダパターン２が検出されない限りは、水平同期信号ＨＲＥＦ３、垂直同期信号ＶＳＹＮＣ３、基準クロックＰＣＬＫ３、データＤＡＴＡ３［７：０］をＭＣＵ３０Ｂに伝送しない。
【０３０１】
ＭＣＵ３０Ｂに水平同期信号ＨＲＥＦ３、垂直同期信号ＶＳＹＮＣ３、基準クロックＰＣＬＫ３、データＤＡＴＡ３［７：０］が伝送されるのは、シンボル検出装置１００によってＱＲコード１のファインダパターン２が検出されたときのみである。
【０３０２】
従って、実施の形態によれば、消費電力を低減したシンボル検出装置１００、及び、画像処理装置５００を提供することができる。
【０３０３】
なお、以上では、二次元バーコードの一例であるＱＲコード１を読み取る形態について説明したが、シンボル検出装置１００が検出するシンボルは、二次元バーコードのものに限られず、一次元バーコードに含まれるシンボルであってもよい。また、バーコードに限られず、所定の幅の比を持つ第１色の第１パターンと第２色の第２パターンとを有するシンボルであれば、シンボル検出装置１００による検出が可能である。
【０３０４】
また、以上では、ＱＲコード１のファインダパターン２を黒パターン２Ｃの中心を通って読み取った場合に、黒パターン２Ａ、白パターン２Ｂ、黒パターン２Ｃ、白パターン２Ｂ、黒パターン２Ａの幅が１：１：３：１：１になる形態について説明した。このため、シフトレジスタ１３３が４つのＦＦ１３３Ａ〜１３３Ｄを有し、４つの比（ＤＩＶ１［Ｍ：０］、ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］、ＤＩＶ４［Ｍ：０］）をコンパレータ１３４の保持部１３４Ａが保持する４つの許容範囲を表す値と比較する形態について説明した。
【０３０５】
シンボル検出装置１００が検出するシンボルの第１パターンと第２パターンが上記以外の比率を有する場合には、シフトレジスタ１３３とコンパレータ１３４の構成を適宜変更すればよい。また、この場合に、シフトレジスタ１３３とコンパレータ１３４以外の構成要素についても、検出対象とするシンボルに合わせて変更が必要な場合は、適宜変更すればよい。
【０３０６】
また、以上では、コンパレータ１３４で４つの比（ＤＩＶ１［Ｍ：０］、ＤＩＶ２［Ｍ：０］、ＤＩＶ３［Ｍ：０］、ＤＩＶ４［Ｍ：０］）をコンパレータ１３４の保持部１３４Ａが保持する４つの許容範囲を表す値と比較する代わりに、次のようにしてもよい。保持部１３４Ａが４つの許容範囲の代わりに、４つの比を表す値を保持し、ＦＦ１３３Ａ〜１３３Ｄから出力される４つの比と、保持部１３４Ａが保持する４つの比との差が所定値以下であるかどうかを判定してもよい。
【０３０７】
また、以上では、バーコードリーダ１０がワイヤレス型である形態について説明したが、バーコードリーダ１０は、バッテリパック６０を含まずに、電源コードを通じて電力が供給されるタイプであってもよい。電源コードで電力供給を受ける場合においても、バーコードリーダ１０の消費電力を低減することは、好ましいことだからである。
【０３０８】
以上、本発明の例示的な実施の形態のシンボル検出装置、画像処理装置、及び、シンボル検出方法について説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
以上の実施の形態に関し、さらに以下の付記を開示する。
（付記１）
所定の幅の比を持つ第１色の第１パターンと第２色の第２パターンとを有するシンボルを含む画像を撮像する撮像部と、前記画像に含まれるデータを読み取るデータ読取部との間に設けられる演算処理部によって実現され、前記画像に含まれる前記シンボルを検出するシンボル検出装置であって、
前記画像を一軸方向に読み取り、前記画像の各画素の画素値を２値化した第１画素値又は第２画素値を出力する２値化処理部と、
前記第１画素値が連続する数を表す第１連続値と、前記第２画素値が連続する数を表す第２連続値とが前記第２連続値又は前記第１連続値に切り替わると、当該切り替わり前の前記第１連続値又は前記第２連続値と、当該切り替わり後の前記第２連続値又は前記第１連続値との比を算出する算出部と、
前記算出部によって算出される前記比と、所定の幅の比との差が所定値以下である場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない、転送部と
を含む、シンボル検出装置。
（付記２）
前記第１連続値と、前記第２連続値とを時系列的に交互に保持する第１保持部と、
前記切り替わり前に前記第１保持部が保持した前記第１連続値又は前記第２連続値を前記第１保持部から入手して保持する第２保持部と、
前記所定の幅の比の値を保持する第３保持部と
をさらに含み、
前記算出部は、前記第１保持部に保持される前記第１連続値又は前記第２連続値と、前記第２保持部に保持される前記第２連続値又は前記第１連続値との比を算出し、
前記転送部は、前記算出部によって算出される前記比と、前記第３保持部が保持する前記所定の幅の比との差が所定値以下である場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない、付記１記載のシンボル検出装置。
（付記３）
前記第１保持部及び前記第２保持部は、前記撮像部によって撮像される画像のうちの第１フレームの画像が前記２値化処理部によって２値化されることによって得られる前記第１画素値及び前記第２画素値についての前記第１連続値及び前記第２連続値を保持し、
前記算出部は、前記第１保持部及び前記第２保持部で保持される、前記第１フレームの画像についての前記第１連続値及び前記第２連続値の比を算出し、
前記転送部は、前記撮像部によって撮像される画像のうちの前記第１フレームの次の第２フレームの画像が前記２値化処理部によって２値化されることによって得られる前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送する、付記２記載のシンボル検出装置。
（付記４）
前記第３保持部は、前記所定の幅の比に許容範囲を設けた所定の許容範囲を表す値を保持しており
転送部は、前記算出部によって算出される前記比が、前記第３保持部が保持する前記所定の許容範囲内である場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記比が前記所定の許容範囲内ではない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない、付記２又は３記載のシンボル検出装置。
（付記５）
前記転送部は、
前記算出部によって算出される前記比が、前記第３保持部が保持する前記所定の許容範囲内であるかどうかを判定する判定部と、
前記判定部によって前記比が前記所定の許容範囲内であると判定される場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記判定部によって前記比が前記所定の許容範囲内ではないと判定される場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない出力部と
を有する、付記４記載のシンボル検出装置。
（付記６）
前記転送部は、
前記判定部によって前記比が前記所定の許容範囲内であると判定される回数が所定回数に達した場合に、前記出力部による前記画像の前記データ読取部への転送を可能にし、前記判定部によって前記比が前記所定の許容範囲内であると判定される回数が前記所定回数未満の場合に、前記出力部による前記画像の前記データ読取部への転送を可能にしない論理部をさらに有し、
前記出力部は、前記論理部によって前記データ読取部への転送が可能にされる場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記論理部によって前記データ読取部への転送が可能にされない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない、付記４記載のシンボル検出装置。
（付記７）
所定の幅の比を持つ第１色の第１パターンと第２色の第２パターンとを有するシンボルを含む画像を撮像する撮像部と、
前記画像に含まれるデータを読み取るデータ読取部と、
前記撮像部と前記データ読取部との間に設けられる演算処理部によって実現され、前記画像に含まれる前記シンボルを検出するシンボル検出装置と
を含む画像処理装置であって、
前記シンボル検出装置は、
前記画像を一軸方向に読み取り、前記画像の各画素の画素値を２値化した第１画素値又は第２画素値を出力する２値化処理部と、
前記第１画素値が連続する数を表す第１連続値と、前記第２画素値が連続する数を表す第２連続値とが前記第２連続値又は前記第１連続値に切り替わると、当該切り替わり前の前記第１連続値又は前記第２連続値と、当該切り替わり後の前記第２連続値又は前記第１連続値との比を算出する算出部と、
前記算出部によって算出される前記比と、所定の幅の比との差が所定値以下である場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない、転送部と
を有する、画像処理装置。
（付記８）
前記算出部によって算出される前記比と、所定の幅の比との差が所定値以下ではない場合に、前記画像が前記データ読取部に転送されないことを報知する報知部をさらに含む、付記７記載の画像処理装置。
（付記９）
所定の幅の比を持つ第１色の第１パターンと第２色の第２パターンとを有するシンボルを含む画像を撮像する撮像部と、前記画像に含まれるデータを読み取るデータ読取部との間に設けられる演算処理部によって実現されるシンボル検出装置において、前記画像に含まれる前記シンボルを検出するシンボル検出方法であって、
前記画像を一軸方向に読み取り、前記画像の各画素の画素値を２値化した第１画素値又は第２画素値を出力し、
前記第１画素値が連続する数を表す第１連続値と、前記第２画素値が連続する数を表す第２連続値とが前記第２連続値又は前記第１連続値に切り替わると、当該切り替わり前の前記第１連続値又は前記第２連続値と、当該切り替わり後の前記第２連続値又は前記第１連続値との比を算出し、
前記算出される前記比と、所定の幅の比との差が所定値以下である場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送し、前記差が前記所定値以下ではない場合に、前記第１画素値及び前記第２画素値で表される前記画像を前記データ読取部に転送しない、シンボル検出方法。
【符号の説明】
【０３０９】
１０  バーコードリーダ
１１  筐体
１２  スイッチ
１３  読み取り部
１００  シンボル検出装置
１１０  ２値化処理部
１２０  パターン演算部
１２２  パルス生成器
１２３  カウンタ
１２４  シフトレジスタ
１２５  除算器
１３０  パターン判定部
１３２  パルス生成器
１３３  シフトレジスタ
１３４  コンパレータ
１３５  論理部
１４０  出力部
１５０  指示部
【図１】
0006520659.tif 000002
【図２】
0006520659.tif 000003
【図３】
0006520659.tif 000004
【図４】
0006520659.tif 000005
【図５】
0006520659.tif 000006
【図６】
0006520659.tif 000007
【図７】
0006520659.tif 000008
【図８】
0006520659.tif 000009
【図９】
0006520659.tif 000010
【図１０】
0006520659.tif 000011
【図１１】
0006520659.tif 000012
【図１２】
0006520659.tif 000013
【図１３】
0006520659.tif 000014
【図１４】
0006520659.tif 000015
【図１５】
0006520659.tif 000016
【図１６】
0006520659.tif 000017
【図１７】
0006520659.tif 000018
【図１８】
0006520659.tif 000019
【図１９】
0006520659.tif 000020
【図２０】
0006520659.tif 000021
【図２１】
0006520659.tif 000022
【図２２】
0006520659.tif 000023
【図２３】
0006520659.tif 000024
【図２４】
0006520659.tif 000025