(57)【要約】【課題】読み取りフィーリングを向上し得る光学情報読取装置を提供する。【解決手段】本二次元コードリーダでは、ＱＲコードのコード画像の一部を取り出し、少なくともＱＲコードの一部のコード画像の読み取りを試み（Ｓ１０１等）、読み取り可能である場合には（Ｓ１１１；Ｙｅｓ）、コード画像の全部の読み取りに成功すると判断し、コード画像の全部を読み取る（Ｓ１１９）前にその旨をブザーのビープ音で使用者に報知する（Ｓ１１３）。これにより、ＱＲコードのコード画像の全部を読み取ってから読み取りに成功すると判断する場合に比べてレスポンス良く読み取りの可否を早く使用者に知らせることが可能となる。したがって、使用者は、読取対象となるＱＲコードのデータ量が多くても、読み取りが成功することを早期に把握できるので、ビープ音が遅れて出てくるという違和感を与えることなく読み取りフィーリングを向上させることができる。【選択図】図１
2008181475.tif 000002
【特許請求の範囲】
【請求項１】
読取対象となる二次元コードの画像を検出する検出手段、および、この検出手段により検出されたコード画像に基づいて前記二次元コードを読み取る読取手段を有する光学情報読取装置において、
前記検出手段により検出された前記コード画像の一部を取り出し、少なくとも当該一部のコード画像の読み取りを試み、読み取り可能である場合には、前記コード画像の全部の読み取りに成功すると判断する一部判断手段と、
前記一部判断手段による判断結果を、前記読取手段が前記コード画像の全部を読み取る前に使用者に報知する報知手段と、
を備えることを特徴とする光学情報読取装置。
【請求項２】
前記読取手段は、
前記コード画像の全部から前記一部のコード画像を除いた残部のコード画像を前記検出手段から出力される検出信号に基づいて読み取る残部読取手段と、
前記一部判断手段により読み取られた前記一部のコード画像に対する一部読取情報および前記残部読取手段により読み取られた前記残部のコード画像に対する残部読取情報を結合する結合手段と、
を備え、前記結合手段により結合された全部読取情報を前記二次元コードの読取結果として出力することを特徴とする請求項１記載の光学情報読取装置。
【請求項３】
前記残部読取手段による前記コード画像の残部の読み取りを成功したか失敗したかを判断する残部判断手段を備え、
前記報知手段は、
前記一部判断手段が前記コード画像の全部の読み取りに成功すると判断した場合には、所定報知の連続出力を開始して、前記残部判断手段により前記コード画像の残部の読み取りを成功したと判断されるときには前記所定報知の連続出力を終了し、または前記残部判断手段により前記コード画像の残部の読み取りを成功したと判断されないときには前記所定報知の連続出力の開始から終了までの連続報知時間よりも長く前記所定報知を連続出力して終了し、
前記一部判断手段が前記コード画像の全部の読み取りに成功すると判断しない場合には、所定報知の連続出力を開始して前記連続報知時間よりも長くこの所定報知を連続出力して終了することを特徴とする請求項２記載の光学情報読取装置。
【請求項４】
前記検出手段により検出されたコード画像に基づいて前記残部読取手段が前記残部のコードを読み取るのに要する時間を推定する残部読取時間推定手段と、
前記残部読取時間推定手段により推定された時間が、前記報知手段により前記所定報知の連続出力すべき所定時間よりも長い場合には、両時間差の期間、前記報知手段による前記所定報知の出力開始時期を遅らせる報知時期遅延手段と、
を備えることを特徴とする請求項３記載の光学情報読取装置。
【請求項５】
前記残部読取時間推定手段は、前記検出手段により検出されたコード画像から得られる前記二次元コードに関する情報で、前記二次元コードの種別、前記二次元コードに含まれるデータ量および前記二次元コードの誤り訂正レベルのうちの、少なくとも１以上に基づいて、前記残部のコードを読み取るのに要する時間を推定することを特徴とする請求項４記載の光学情報読取装置。
【請求項６】
前記残部読取時間推定手段は、前記検出手段により検出されたコード画像から得られる画像品質に基づいて、前記残部のコードを読み取るのに要する時間を推定することを特徴とする請求項４または５記載の光学情報読取装置。
【請求項７】
前記報知手段により前記所定報知の連続出力が継続される時間を算出する連続出力時間算出手段と、
前記連続出力時間算出手段により算出された連続出力時間が、前記報知手段により前記所定報知の連続出力が継続すべき最短時間よりも短い場合には、両時間の差だけ前記報知手段による前記所定報知の出力期間を延長させる出力期間延長手段と、
を備えることを特徴とする請求項３〜６のいずれか一項に記載の光学情報読取装置。
【請求項８】
読取対象となる二次元コードの画像を検出する検出手段、および、この検出手段により検出されたコード画像に基づいて前記二次元コードを読み取る読取手段を有する光学情報読取装置において、
前記検出手段により検出された前記コード画像の一部を取り出し、少なくとも当該一部のコード画像の読み取りを試み、読み取り不可能である場合には、前記コード画像の全部の読み取りに失敗すると判断する判断手段と、
前記判断手段による判断結果を、前記読取手段が前記コード画像の全部を読み取る前に使用者に報知する報知手段と、
を備えることを特徴とする光学情報読取装置。
【請求項９】
前記検出手段により検出された前記コード画像は、
前記二次元コードの記録領域を示す特定パターンと、
前記二次元コードに記録されたデータ量を示す記録パターンと、
を、少なくとも含むことを特徴とする請求項１〜８のいずれか一項に記載の光学情報読取装置。
【請求項１０】
読取対象となる二次元コードの画像を検出する検出手段、および、この検出手段により検出されたコード画像に基づいて前記二次元コードを読み取る読取手段を有する光学情報読取装置において、
前記検出手段により検出された前記コード画像の一部を取り出し、少なくとも当該一部のコード画像の読み取りを試み、読み取り可能であるか否かを判断する一部読取可否判断手段と、
前記二次元コードの読み取りの成否を使用者に報知する報知手段と、を備え、
前記一部読取可否判断手段が前記コード画像の全部の読み取りに成功すると判断した場合には、前記読取手段が前記コード画像の全部を読み取る前に前記報知手段による所定報知の連続出力を開始し、
前記一部読取可否判断手段が前記コード画像の全部の読み取りに成功すると判断しなかった場合には、前記報知手段による前記所定報知の出力を開始することなく、前記一部読取可否判断手段による前記一部のコード画像の読み取りを再度試み、読み取り可能であるか否かを判断することを特徴とする光学情報読取装置。
【請求項１１】
前記読取手段は、
前記コード画像の全部から前記一部のコード画像を除いた残部のコード画像を前記検出手段から出力される検出信号に基づいて読み取る残部読取手段と、
前記一部読取可否判断手段により読み取られた前記一部のコード画像に対する一部読取情報および前記残部読取手段により読み取られた前記残部のコード画像に対する残部読取情報を結合する結合手段と、
を備え、前記結合手段により結合された全部読取情報を前記二次元コードの読取結果として出力することを特徴とする請求項１０記載の光学情報読取装置。
【請求項１２】
前記残部読取手段による前記コード画像の残部の読み取りを成功したか失敗したかを判断する残部判断手段を備え、
前記報知手段は、
前記一部読取可否判断手段が前記コード画像の全部の読み取りに成功すると判断した場合には、所定報知の連続出力を開始して、前記残部判断手段により前記コード画像の残部の読み取りを成功したと判断されるときには前記所定報知の連続出力を終了し、または前記残部判断手段により前記コード画像の残部の読み取りを成功したと判断されないときには前記所定報知の連続出力の開始から終了までの連続報知時間よりも長く前記所定報知を連続出力して終了することを特徴とする請求項１１記載の光学情報読取装置。
【請求項１３】
前記検出手段により検出されたコード画像に基づいて前記残部読取手段が前記残部のコードを読み取るのに要する時間を推定する残部読取時間推定手段と、
前記残部読取時間推定手段により推定された時間が、前記二次元コードの読み取りに成功したときに連続出力すべき報知基準時間よりも長い場合には、両時間差の期間、前記報知手段による報知の開始時期を遅らせる報知時期遅延手段と、
を備え、前記報知時期遅延手段により前記報知手段による報知の開始時期を遅らせている期間内に、前記残部判断手段により前記コード画像の残部の読み取りに失敗したと判断したときには、前記所定報知の出力を開始しないことを特徴とする請求項１２記載の光学情報読取装置。
【請求項１４】
前記残部読取時間推定手段は、前記検出手段により検出されたコード画像から得られる前記二次元コードに関する情報で、前記二次元コードの種別、前記二次元コードに含まれるデータ量および前記二次元コードの誤り訂正レベルのうちの、少なくとも１以上に基づいて、前記残部のコードを読み取るのに要する時間を推定することを特徴とする請求項１３記載の光学情報読取装置。
【請求項１５】
前記残部読取時間推定手段は、前記検出手段により検出されたコード画像から得られる画像品質に基づいて、前記残部のコードを読み取るのに要する時間を推定することを特徴とする請求項１３または１４記載の光学情報読取装置。
【請求項１６】
前記報知手段は、前記二次元コードの読み取りの成功を報知する場合、前記所定報知の連続出力の開始から終了までの連続報知時間として、前記二次元コードの読み取りに成功したときに連続出力すべき報知基準時間を少なくとも確保することを特徴とする請求項１０〜１５のいずれか一項に記載の光学情報読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、読取対象となる情報コード（二次元コード、一次元コード）の画像を検出する検出手段、および、この検出手段により検出されたコード画像に基づいて情報コードを読み取る読取手段を有する光学情報読取装置に関するものである。
【背景技術】
【０００２】
従来より、バーコード等の情報コードを読み取り可能な光学情報読取装置（以下、［背景技術］および[発明が解決しようとする課題]において、単に「読取装置」という。）として、例えば、下記特許文献１に開示されるものがある。この種の読取装置では、ＬＥＤ等の光源から出射される照明光を情報コードに照射することにより反射した反射光をＣＣＤやＣＭＯＳセンサにより受光する。そして、これにより得られた光の強弱によるコード画像を２値化して所定の情報処理を施すことによって、このような情報コードとして符号化された文字データ等をデコード、つまり読み取り可能にしている。
【０００３】
ところで、このような情報コードは、通常、包装容器や包装用紙あるいは表示ラベルといった表示媒体に印刷されているため、印刷された情報コードの汚れや劣化、さらには照射光の反射の具合等の様々な要因によって、情報コードの読み取りにエラーが生じることがある。このため、当該読取装置の使用者に対し、読み取りが正常にできたか否かを知らせる「ピロッ」や「ピーッ」というビープ音等を耳にすることは、小売店その他の流通市場等において日常的に経験するところである。そして、このような読み取りの可否を知らせる報知出力は、下記特許文献１に開示される読取装置に代表されるように、一般に、コード画像を２値化したものに対してデコード処理を施した結果に基づいて行われている。
【０００４】
即ち、従来の読取装置では、デコード処理の対象となるデータの全てを情報処理（デコード処理）した結果として、全てのデータに誤りが検出されなかったり、誤りが検出されても誤り訂正用のデータにより誤りを訂正できた場合に正常終了した旨の情報を出力し、一部のデータに誤りが検出されたり検出されたデータ誤りを訂正できなかった場合には異常終了した旨の情報を出力する。また、これらの読み取りの可否を知らせる情報は、受け手の認識を確実かつ容易にするため、圧電ブザーによる電子音の音調やＬＥＤによる発光色の違いによって使用者に報知可能にしている。
【特許文献１】特開平１０−６３７７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来の読取装置によると、デコードの対象となるコード画像に含まれるデータ量が多い場合には、デコード処理に相当の時間を要する。特に、近年、流通業界や物流業界に限られることなく、あらゆる場面で利用されている二次元コードにおいては、それが担うデータ量（約２ｋ〜３ｋバイト）が従来の一次元コード（約２０バイト）に比べて桁違いに多いことから、読取処理（デコード処理）にかかる時間も必然的に長くなりつつある。
【０００６】
このため、データ量の多い情報コードを読み取る場合には、比較的データ量の少ない情報コードを読み取るときに比べ、読み取りの可否を知らせる音や光の出力が遅くなりがちであることから、データ量の少ない情報コードの読み取りに慣れている使用者に対しては、ビープ音の鳴動やＬＥＤの点灯がいつもよりも遅れて出てくるという違和感を与えてしまい、読み取りフィーリングを悪化させるという問題がある。
【０００７】
また、一般に、読取装置の使用者は、今、読み取っている情報コードの読み取りが成功したか失敗したかを早く知りたいものである。特に、読み取りを失敗した場合には、再度の読み取り操作を余儀なくされることが多いため、失敗の事実をいち早く認識して再読み取りの動作に移りたいと思うのが人情であるが、データ量の多い情報コードの読み取りには時間がかかるため、情報処理能力の高い読取装置を使用する場合を除いて、このような要求を満たすことは難しいという問題がある。
【０００８】
なお、このような問題は、一次元コードにおいても、コード幅が広くデータ量の多いものを読み取る場合や比較的情報処理能力の低い読取装置を用いる場合には、同様に生じ得るものであることから、二次元コードを読み取る場合に限られた問題ではない。
【０００９】
本発明は、上述した課題を解決するためになされたものであり、その目的とするところは、読み取りフィーリングを向上し得る光学情報読取装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、特許請求の範囲に記載の請求項１の光学情報読取装置では、読取対象となる二次元コードの画像を検出する検出手段、および、この検出手段により検出されたコード画像に基づいて前記二次元コードを読み取る読取手段を有する光学情報読取装置において、前記検出手段により検出された前記コード画像の一部を取り出し、少なくとも当該一部のコード画像の読み取りを試み、読み取り可能である場合には、前記コード画像の全部の読み取りに成功すると判断する一部判断手段と、前記一部判断手段による判断結果を、前記読取手段が前記コード画像の全部を読み取る前に使用者に報知する報知手段と、を備えることを技術的特徴とする。なお、「二次元コード」とは、ＱＲコード、ＰＤＦ４１７、データマトリックス、マキシコード、ＲＳＳコンポジット等の各種のコードシンボルを含む概念である。
【００１１】
特許請求の範囲に記載の請求項２の光学情報読取装置では、請求項１記載の光学情報読取装置において、前記読取手段は、前記コード画像の全部から前記一部のコード画像を除いた残部のコード画像を前記検出手段から出力される検出信号に基づいて読み取る残部読取手段と、前記一部判断手段により読み取られた前記一部のコード画像に対する一部読取情報および前記残部読取手段により読み取られた前記残部のコード画像に対する残部読取情報を結合する結合手段と、を備え、前記結合手段により結合された全部読取情報を前記二次元コードの読取結果として出力することを技術的特徴とする。
【００１２】
特許請求の範囲に記載の請求項３の光学情報読取装置では、請求項１または２記載の光学情報読取装置において、前記残部読取手段による前記コード画像の残部の読み取りを成功したか失敗したかを判断する残部判断手段を備え、前記報知手段は、前記一部判断手段が前記コード画像の全部の読み取りに成功すると判断した場合には、所定報知の連続出力を開始して、前記残部判断手段により前記コード画像の残部の読み取りを成功したと判断されるときには前記所定報知の連続出力を終了し、または前記残部判断手段により前記コード画像の残部の読み取りを成功したと判断されないときには前記所定報知の連続出力の開始から終了までの連続報知時間よりも長く前記所定報知を連続出力して終了し、前記一部判断手段が前記コード画像の全部の読み取りに成功すると判断しない場合には、所定報知の連続出力を開始して前記連続報知時間よりも長くこの所定報知を連続出力して終了することを技術的特徴とする。
【００１３】
特許請求の範囲に記載の請求項４の光学情報読取装置では、請求項３記載の光学情報読取装置において、前記検出手段により検出されたコード画像に基づいて前記残部読取手段が前記残部のコードを読み取るのに要する時間を推定する残部読取時間推定手段と、前記残部読取時間推定手段により推定された時間が、前記報知手段により前記所定報知の連続出力すべき所定時間よりも長い場合には、両時間差の期間、前記報知手段による前記所定報知の出力開始時期を遅らせる報知時期遅延手段と、を備えることを技術的特徴とする。
【００１４】
特許請求の範囲に記載の請求項５の光学情報読取装置では、請求項４記載の光学情報読取装置において、前記残部読取時間推定手段は、前記検出手段により検出されたコード画像から得られる前記二次元コードに関する情報で、前記二次元コードの種別、前記二次元コードに含まれるデータ量および前記二次元コードの誤り訂正レベルのうちの、少なくとも１以上に基づいて、前記残部のコードを読み取るのに要する時間を推定することを技術的特徴とする。
【００１５】
特許請求の範囲に記載の請求項６の光学情報読取装置では、請求項４または５記載の光学情報読取装置において、前記残部読取時間推定手段は、前記検出手段により検出されたコード画像から得られる画像品質に基づいて、前記残部のコードを読み取るのに要する時間を推定することを技術的特徴とする。
【００１６】
特許請求の範囲に記載の請求項７の光学情報読取装置では、請求項３〜６のいずれか一項に記載の光学情報読取装置において、前記報知手段により前記所定報知の連続出力が継続される時間を算出する連続出力時間算出手段と、前記連続出力時間算出手段により算出された連続出力時間が、前記報知手段により前記所定報知の連続出力が継続すべき最短時間よりも短い場合には、両時間の差だけ前記報知手段による前記所定報知の出力期間を延長させる出力期間延長手段と、を備えることを技術的特徴とする。
【００１７】
特許請求の範囲に記載の請求項８の光学情報読取装置では、読取対象となる二次元コードの画像を検出する検出手段、および、この検出手段により検出されたコード画像に基づいて前記二次元コードを読み取る読取手段を有する光学情報読取装置において、前記検出手段により検出された前記コード画像の一部を取り出し、少なくとも当該一部のコード画像の読み取りを試み、読み取り不可能である場合には、前記コード画像の全部の読み取りに失敗すると判断する判断手段と、前記判断手段による判断結果を、前記読取手段が前記コード画像の全部を読み取る前に使用者に報知する報知手段と、を備えることを技術的特徴とする。
【００１８】
特許請求の範囲に記載の請求項９の光学情報読取装置では、請求項１〜８のいずれか一項に記載の光学情報読取装置において、前記検出手段により検出された前記コード画像は、前記二次元コードの記録領域を示す特定パターンと、前記二次元コードに記録されたデータ量を示す記録パターンと、を、少なくとも含むことを技術的特徴とする。
【００１９】
上記目的を達成するため、特許請求の範囲に記載の請求項１０光学情報読取装置では、読取対象となる二次元コードの画像を検出する検出手段、および、この検出手段により検出されたコード画像に基づいて前記二次元コードを読み取る読取手段を有する光学情報読取装置において、前記検出手段により検出された前記コード画像の一部を取り出し、少なくとも当該一部のコード画像の読み取りを試み、読み取り可能であるか否かを判断する一部読取可否判断手段と、前記二次元コードの読み取りの成否を使用者に報知する報知手段と、を備え、前記一部読取可否判断手段が前記コード画像の全部の読み取りに成功すると判断した場合には、前記読取手段が前記コード画像の全部を読み取る前に前記報知手段による所定報知の連続出力を開始し、前記一部読取可否判断手段が前記コード画像の全部の読み取りに成功すると判断しなかった場合には、前記報知手段による前記所定報知の出力を開始することなく、前記一部読取可否判断手段による前記一部のコード画像の読み取りを再度試み、読み取り可能であるか否かを判断することを技術的特徴とする。
【００２０】
特許請求の範囲に記載の請求項１１の光学情報読取装置では、請求項１０記載の光学情報読取装置において、前記読取手段は、前記コード画像の全部から前記一部のコード画像を除いた残部のコード画像を前記検出手段から出力される検出信号に基づいて読み取る残部読取手段と、前記一部読取可否判断手段により読み取られた前記一部のコード画像に対する一部読取情報および前記残部読取手段により読み取られた前記残部のコード画像に対する残部読取情報を結合する結合手段と、を備え、前記結合手段により結合された全部読取情報を前記二次元コードの読取結果として出力することを技術的特徴とする。
【００２１】
特許請求の範囲に記載の請求項１２の光学情報読取装置では、請求項１１記載の光学情報読取装置において、前記残部読取手段による前記コード画像の残部の読み取りを成功したか失敗したかを判断する残部判断手段を備え、前記報知手段は、前記一部読取可否判断手段が前記コード画像の全部の読み取りに成功すると判断した場合には、所定報知の連続出力を開始して、前記残部判断手段により前記コード画像の残部の読み取りを成功したと判断されるときには前記所定報知の連続出力を終了し、または前記残部判断手段により前記コード画像の残部の読み取りを成功したと判断されないときには前記所定報知の連続出力の開始から終了までの連続報知時間よりも長く前記所定報知を連続出力して終了することを技術的特徴とする。
【００２２】
特許請求の範囲に記載の請求項１３の光学情報読取装置では、請求項１２記載の光学情報読取装置において、前記検出手段により検出されたコード画像に基づいて前記残部読取手段が前記残部のコードを読み取るのに要する時間を推定する残部読取時間推定手段と、前記残部読取時間推定手段により推定された時間が、前記二次元コードの読み取りに成功したときに連続出力すべき報知基準時間よりも長い場合には、両時間差の期間、前記報知手段による報知の開始時期を遅らせる報知時期遅延手段と、を備え、前記報知時期遅延手段により前記報知手段による報知の開始時期を遅らせている期間内に、前記残部判断手段により前記コード画像の残部の読み取りに失敗したと判断したときには、前記所定報知の出力を開始しないことを技術的特徴とする。
【００２３】
特許請求の範囲に記載の請求項１４の光学情報読取装置では、請求項１３記載の光学情報読取装置において、前記残部読取時間推定手段は、前記検出手段により検出されたコード画像から得られる前記二次元コードに関する情報で、前記二次元コードの種別、前記二次元コードに含まれるデータ量および前記二次元コードの誤り訂正レベルのうちの、少なくとも１以上に基づいて、前記残部のコードを読み取るのに要する時間を推定することを技術的特徴とする。
【００２４】
特許請求の範囲に記載の請求項１５の光学情報読取装置では、請求項１３または１４記載の光学情報読取装置において、前記残部読取時間推定手段は、前記検出手段により検出されたコード画像から得られる画像品質に基づいて、前記残部のコードを読み取るのに要する時間を推定することを技術的特徴とする。
【００２５】
特許請求の範囲に記載の請求項１６の光学情報読取装置では、請求項１０〜１５のいずれか一項に記載の光学情報読取装置において、前記報知手段は、前記二次元コードの読み取りの成功を報知する場合、前記所定報知の連続出力の開始から終了までの連続報知時間として、前記二次元コードの読み取りに成功したときに連続出力すべき報知基準時間を少なくとも確保することを技術的特徴とする。
【発明の効果】
【００２６】
請求項１の発明では、一部判断手段により、検出手段により検出されたコード画像の一部を取り出し、少なくとも当該一部のコード画像の読み取りを試み、読み取り可能である場合には、コード画像の全部の読み取りに成功すると判断する。そして、報知手段により、一部判断手段による判断結果を、読取手段がコード画像の全部を読み取る前に使用者に報知する。これにより、検出手段により検出されたコード画像の全部を読み取ることなく、一部のコード画像の読み取りが可能である場合には、読取手段がコード画像の全部を読み取る前に、読み取りに成功すると判断する判断結果を使用者に報知するので、コード画像の全部を読み取ってから読み取りに成功すると判断する場合に比べて、読み取りの可否を早く使用者に知らせることが可能となる。したがって、当該光学情報読取装置の使用者は、読取対象となる二次元コードのデータ量が多くても当該二次元コードの読み取りが成功することを早期に把握できるので、読み取りフィーリングを向上させることができる。
【００２７】
請求項２の発明では、読取手段は、一部判断手段により読み取られた一部のコード画像に対する一部読取情報および残部読取手段により読み取られた残部のコード画像に対する残部読取情報を結合手段によって結合し、この結合した全部読取情報をこの二次元コードの読取結果として出力する。これにより、一部判断手段により読み取られた一部のコード画像に対する一部読取情報を無駄なく使用するので、読取手段がコード画像の全部を再度読み取る場合に比べて、確定的な読み取り結果を早く出力することができる。
【００２８】
請求項３の発明では、報知手段は、(1) 一部判断手段がコード画像の全部の読み取りに成功すると判断した場合には、所定報知の連続出力を開始して、(1a)残部判断手段によりコード画像の残部の読み取りを成功したと判断されるときには所定報知の連続出力を終了し、(1b)または残部判断手段によりコード画像の残部の読み取りを成功したと判断されないときには所定報知の連続出力の開始から終了までの連続報知時間よりも長く所定報知を連続出力して終了し、(2) 一部判断手段がコード画像の全部の読み取りに成功すると判断しない場合には、所定報知の連続出力を開始して連続報知時間よりも長くこの所定報知を連続出力して終了する。
【００２９】
これにより、(1) 一部判断手段がコード画像の全部の読み取りに成功すると判断し、(1a)さらに残部判断手段によりコード画像の残部の読み取りを成功したと判断されるときには所定の連続報知を終了するので、一部判断手段がコード画像の全部の読み取りに成功すると判断してから、残部判断手段がコード画像の残部の読み取りを成功したと判断されるときまでの間、所定の連続報知を行う。
【００３０】
これに対し、(1) 一部判断手段がコード画像の全部の読み取りに成功すると判断しても、(1b)残部判断手段によりコード画像の残部の読み取りを成功したと判断されないときには所定報知の連続出力の開始から終了までの連続報知時間よりも長く所定報知を連続出力して終了する。つまり、残部判断手段によりコード画像の残部において読み取りに失敗したと判断した場合（読み取りエラーの場合）には、読み取りに成功したと判断した場合の連続報知時間よりも長く継続して所定報知を行う。これにより、この(1) ＆(1b)の場合は、(2) の、一部判断手段がコード画像の全部の読み取りに成功すると判断しない場合には、所定報知の連続出力を開始して連続報知時間よりも長くこの所定報知を連続出力して終了するもの、つまり、一部判断手段により当初からコード画像の全部の読み取りに失敗すると判断した場合（読み取りエラーの場合）と同様になるので、(1) ＆(1b)の場合も(2) の場合と同様に、当該光学情報読取装置の使用者に所定の連続報知の時間的長さによって読み取りエラーを知らせることができる。
【００３１】
請求項４の発明では、残部読取時間推定手段により、コード画像に基づいて残部読取手段が残部のコードを読み取るのに要する時間を推定し、これにより推定された時間が報知手段により所定報知の連続出力すべき所定時間よりも長い場合には、両時間差の期間、報知手段による所定報知の出力開始時期を報知時期遅延手段により遅らせる。これにより、残部のコードの読み取るのに要する読取推定時間が報知手段による所定報知の連続出力時間よりも長い場合には、その両時間差分、当該所定報知を遅れて出力する。このため、例えば、読取対象となる二次元コードに含まれる情報量が非常に多く、残部のコードの読取推定時間が、読取りエラー時に出力される連続報知の時間よりも長い場合であっても、このような長い時間、所定の報知が連続出力されることがないので、このような場合における違和感を与え難くすることができる。したがって、残部のコードの読取推定時間が、読取りエラー時に出力される連続報知時間よりも長い場合であっても、読み取りフィーリングを向上することができる。
【００３２】
請求項５の発明では、残部読取時間推定手段は、検出手段により検出されたコード画像から得られる二次元コードに関する情報で、二次元コードの種別、二次元コードに含まれるデータ量および二次元コードの誤り訂正レベルのうちの、少なくとも１以上に基づいて、残部のコードを読み取るのに要する時間を推定する。これにより、残部読取時間推定手段により推定される残部のコードの読取推定時間を、当該二次元コード自体が有するコード情報に基づいたものにすることができるため、当該二次元コードに則した読取推定時間を得ることが可能となる。
【００３３】
請求項６の発明では、残部読取時間推定手段は、検出手段により検出されたコード画像から得られる画像品質に基づいて、残部のコードを読み取るのに要する時間を推定する。これにより、残部読取時間推定手段により推定される残部のコードの読取推定時間を、当該二次元コード自体の画像品質に基づいたものにすることができるため、当該二次元コードの読み取り状態を的確に把握可能な「画像品質」に則した読取推定時間を得られる。
【００３４】
請求項７の発明では、連続出力時間算出手段により、報知手段により所定報知の連続出力が継続される時間を算出し、これにより算出された連続出力時間が、報知手段により所定報知の連続出力が継続すべき最短時間よりも短い場合には、両時間の差だけ報知手段による所定報知の出力期間を出力期間延長手段により延長させる。これにより、所定報知の連続出力時間が、所定報知の最短時間よりも短い場合には、その両時間差分、当該所定報知を延長して出力する。このため、例えば、読取対象となる二次元コードに含まれる情報量が非常に少なく、連続出力時間が、読取り成功時に出力される連続報知の時間よりも短い場合であっても、所定の報知が読取り成功時相当に延長して出力されるため、このような場合における違和感を与え難くすることができる。したがって、所定報知の連続出力時間が、読取り成功時に出力される連続報知時間よりも短い場合であっても、読み取りフィーリングを向上することができる。
【００３５】
請求項８の発明では、判断手段により、検出手段により検出されたコード画像の一部を取り出し、少なくとも当該一部のコード画像の読み取りを試み、読み取り不可能である場合には、コード画像の全部の読み取りに失敗すると判断する。そして、報知手段により、判断手段による判断結果を、読取手段がコード画像の全部を読み取る前に使用者に報知する。これにより、検出手段により検出されたコード画像の全部を読み取ることなく、一部のコード画像の読み取りが不可能である場合には、読取手段がコード画像の全部を読み取る前に、読み取りに失敗すると判断する判断結果を使用者に報知するので、コード画像の全部を読み取ってから読み取りに失敗すると判断する場合に比べて、読み取りの可否を早く使用者に知らせることが可能となる。したがって、当該光学情報読取装置に使用者は、読取対象となる二次元コードのデータ量が多くても、当該二次元コードの読み取りが失敗したことを早期に把握できるので読み取りフィーリングを向上し、また素早く再読み取りの動作に移行することができる。
【００３６】
請求項９の発明では、検出手段により検出されたコード画像は、二次元コードの記録領域を示す特定パターンと、二次元コードに記録されたデータ量を示す記録パターンと、を、少なくとも含むことから、読取対象となる二次元コードのサイズの大小やデータ量の多少をこれらの情報に基づいて把握することができる。これにより、検出手段により検出されたコード画像から取り出すコード画像の一部の範囲を二次元コードのサイズの大小やデータ量の多少に基づいて柔軟に設定することができるので、読取対象となる二次元コードに、種々サイズやデータ量のものが存在しても、成功することや失敗することを二次元コードのサイズ等に応じて適切に判断することが可能となる。したがって、読取手段がコード画像の全部を読み取る前に使用者に告知する成功または失敗の情報の信頼性を高めることができる。
【００３７】
請求項１０の発明では、一部読取可否判断手段により、検出手段により検出されたコード画像の一部を取り出し、少なくとも当該一部のコード画像の読み取りを試み、読み取り可能であるか否かを判断し、コード画像の全部の読み取りに成功すると判断した場合には、読取手段がコード画像の全部を読み取る前に報知手段による所定報知の連続出力を開始し、コード画像の全部の読み取りに成功すると判断しなかった場合には、報知手段による所定報知の出力を開始することなく、一部読取可否判断手段による一部のコード画像の読み取りを再度試み、読み取り可能であるか否かを判断する。これにより、検出手段により検出されたコード画像の全部を読み取ることなく、一部のコード画像の読み取りが可能である場合には、読取手段がコード画像の全部を読み取る前に、読み取りに成功すると判断する判断結果を使用者に報知するので、コード画像の全部を読み取ってから読み取りに成功すると判断する場合に比べて、読み取りの可能を早く使用者に知らせることができる。また、一部のコード画像の読み取りが可能でない場合には、読み取りの不能を使用者に知らせることなく、一部のコード画像の読み取りを自動的に再度試行するので、使用者に再読み取りの操作負担を強いることがない。したがって、当該光学情報読取装置の使用者は、読取対象となる二次元コードのデータ量が多くても当該二次元コードの読み取りが成功することを早期に把握できるので、読み取りフィーリングを向上させることができる。
【００３８】
請求項１１の発明では、読取手段は、一部読取可否判断手段により読み取られた一部のコード画像に対する一部読取情報および残部読取手段により読み取られた残部のコード画像に対する残部読取情報を結合し、この結合した全部読取情報をこの二次元コードの読取結果として出力する。これにより、一部読取可否判断手段により読み取られた一部のコード画像に対する一部読取情報を無駄なく使用するので、読取手段がコード画像の全部を再度読み取る場合に比べて、確定的な読み取り結果を早く出力することができる。
【００３９】
請求項１２の発明では、報知手段は、(1) 一部読取可否判断手段がコード画像の全部の読み取りに成功すると判断した場合には、所定報知の連続出力を開始して、(1a)残部判断手段によりコード画像の残部の読み取りを成功したと判断されるときには所定報知の連続出力を終了し、(1b)または残部判断手段によりコード画像の残部の読み取りを成功したと判断されないときには所定報知の連続出力の開始から終了までの連続報知時間よりも長く所定報知を連続出力して終了する。
【００４０】
これにより、(1) 一部読取可否判断手段がコード画像の全部の読み取りに成功すると判断し、(1a)さらに残部判断手段によりコード画像の残部の読み取りを成功したと判断されるときには所定の連続報知を終了するので、一部読取可否判断手段がコード画像の全部の読み取りに成功すると判断してから、残部判断手段がコード画像の残部の読み取りを成功したと判断されるときまでの間、所定の連続報知を行う。
【００４１】
これに対し、(1) 一部読取可否判断手段がコード画像の全部の読み取りに成功すると判断しても、(1b)残部判断手段によりコード画像の残部の読み取りを成功したと判断されないときには所定報知の連続出力の開始から終了までの連続報知時間よりも長く所定報知を連続出力して終了する。つまり、残部判断手段によりコード画像の残部において読み取りに失敗したと判断した場合（読み取りエラーの場合）には、読み取りに成功したと判断した場合の連続報知時間よりも長く継続して所定報知を行う。これにより、この(1) ＆(1b)の場合は、一部読取可否判断手段により当初からコード画像の全部の読み取りに失敗すると判断した場合（読み取りエラーの場合）と同様になるので、当該光学情報読取装置の使用者に所定の連続報知の時間的長さによって読み取りエラーを知らせることができる。
【００４２】
請求項１３の発明では、残部読取時間推定手段により、コード画像に基づいて残部読取手段が残部のコードを読み取るのに要する時間を推定し、これにより推定された時間が、二次元コードの読み取りに成功したときに連続出力すべき報知基準時間よりも長い場合には、両時間差の期間、報知手段による報知の開始時期を報知時期遅延手段により遅らせる。これにより、残部のコードの読み取るのに要する読取推定時間が報知手段による報知基準時間よりも長い場合には、その両時間差分、当該所定報知を遅れて出力する。このため、例えば、読取対象となる二次元コードに含まれる情報量が非常に多く、残部のコードの読取推定時間が、読取り成功時に出力される報知基準時間よりも長い場合であっても、このような長い時間、所定の報知が連続出力されることがないので、読み取りを成功しているにもかかわらず、使用者に読み取りエラーであるかのような誤解や違和感を与え難くすることができる。また、この報知時期遅延手段により報知の開始時期を遅らせている期間内に、残部判断手段によりコード画像の残部の読み取りに失敗したと判断したときには、所定報知の出力を開始しない。これにより、不要な報知をしない。したがって、残部のコードの読取推定時間が、読取り成功時に出力される報知基準時間よりも長い場合であっても、読み取りフィーリングを向上することができる。
【００４３】
請求項１４の発明では、残部読取時間推定手段は、検出手段により検出されたコード画像から得られる二次元コードに関する情報で、二次元コードの種別、二次元コードに含まれるデータ量および二次元コードの誤り訂正レベルのうちの、少なくとも１以上に基づいて、残部のコードを読み取るのに要する時間を推定する。これにより、残部読取時間推定手段により推定される残部のコードの読取推定時間を、当該二次元コード自体が有するコード情報に基づいたものにすることができるため、当該二次元コードに則した読取推定時間を得ることが可能となる。
【００４４】
請求項１５の発明では、残部読取時間推定手段は、検出手段により検出されたコード画像から得られる画像品質に基づいて、残部のコードを読み取るのに要する時間を推定する。これにより、残部読取時間推定手段により推定される残部のコードの読取推定時間を、当該二次元コード自体の画像品質に基づいたものにすることができるため、当該二次元コードの読み取り状態を的確に把握可能な「画像品質」に則した読取推定時間を得られる。
【００４５】
請求項１６の発明では、報知手段は、二次元コードの読み取りの成功を報知する場合、所定報知の連続出力の開始から終了までの連続報知時間として、二次元コードの読み取りに成功したときに連続出力すべき報知基準時間を少なくとも確保することを技術的特徴とする。これにより、例えば、読取対象となる二次元コードに含まれる情報量が非常に少なく、二次元コードの全体読取時間や残部のコードの読取推定時間が、読取り成功時に出力される報知基準時間よりも短い場合であっても、少なくとも報知基準時間を確保した所定の報知が連続出力されるので、読み取りに成功したのか否かを使用者が判断し難いような極端に連続出力時間の短い報知出力を防止することができる。したがって、読み取りフィーリングを向上することができる。
【発明を実施するための最良の形態】
【００４６】
以下、本発明の光学情報読取装置の実施形態について図を参照して説明する。
［第１実施形態］
まず、本発明の光学情報読取装置を二次元コードリーダ２０に適用した第１実施形態を図１〜図５に基づいて説明する。
【００４７】
図１に示すように、二次元コードリーダ２０は、主に、照明光源２１、受光センサ２３、フィルタ２５、結像レンズ２７等の光学系と、メモリ３５、制御回路４０、操作スイッチ４２、液晶表示装置４６等のマイクロコンピュータ（以下「マイコン」という）系と、電源スイッチ４１、電池４９等の電源系と、から構成されている。なお、これらは、図略のプリント配線板に実装あるいは図略のハウジング内に内装されている。
【００４８】
光学系は、照明光源２１、受光センサ２３、フィルタ２５、結像レンズ２７等から構成されている。照明光源２１は、照明光Ｌｆを発光可能な照明光源として機能するもので、例えば、赤色のＬＥＤとこのＬＥＤの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本実施形態では、受光センサ２３を挟んだ両側に照明光源２１が設けられており、図略のハウジングの読取口を介して読取対象物Ｒに向けて照明光Ｌｆを照射可能に構成されている。この読取対象物Ｒは、例えば、包装容器や包装用紙あるいはラベルといった表示媒体に相当するもので、その表面には情報コードＱとして例えば二次元コードが印刷されている。
【００４９】
受光センサ２３は、読取対象物Ｒや情報コードＱに照射されて反射した反射光Ｌｒを受光可能に構成されるもので、例えば、Ｃ−ＭＯＳやＣＣＤ等の固体撮像素子である受光素子を２次元に配列したエリアセンサが、これに相当する。この受光センサ２３の受光面２３ａは、ハウジング外から読取口を介して外観可能に位置しており、受光センサ２３は、結像レンズ２７を介して入射する入射光をこの受光面２３ａで受光可能に図略のプリント配線板に実装されている。
【００５０】
フィルタ２５は、反射光Ｌｒの波長相当以下の光の通過を許容し、当該波長相当を超える光の通過を遮断し得る光学的なローパスフィルタで、ハウジングの読取口と結像レンズ２７との間に設けられている。これにより、反射光Ｌｒの波長相当を超える不要な光が受光センサ２３に入射することを抑制している。
【００５１】
結像レンズ２７は、外部から読取口を介して入射する入射光を集光して受光センサ２３の受光面２３ａに像を結像可能な結像光学系として機能するもので、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとにより構成されている。本実施形態では、照明光源２１から照射された照明光Ｌｆが情報コードＱに反射して読取口に入射する反射光Ｌｒを集光することにより、受光センサ２３の受光面２３ａに情報コードＱのコード画像を結像可能にしている。
【００５２】
次に、マイコン系の構成概要を説明する。マイコン系は、増幅回路３１、Ａ／Ｄ変換回路３３、メモリ３５、アドレス発生回路３６、同期信号発生回路３８、制御回路４０、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示装置４６、通信インタフェース４８等から構成されている。このマイコン系は、その名の通り、マイコン（情報処理装置）として機能し得る制御回路４０およびメモリ３５と中心に構成されるもので、前述した光学系によって撮像された情報コードＱの画像信号をハードウェア的およびソフトウェア的に信号処理し得るものである。また制御回路４０は、当該二次元コードリーダ２０の全体システムに関する制御も行っている。
【００５３】
光学系の受光センサ２３から出力される画像信号（アナログ信号）は、増幅回路３１に入力されることで所定ゲインで増幅された後、Ａ／Ｄ変換回路３３に入力されると、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ（画像情報）は、メモリ３５に入力されると、画像データ蓄積領域に蓄積される。なお、同期信号発生回路３８は、受光センサ２３およびアドレス発生回路３６に対する同期信号を発生可能に構成されており、またアドレス発生回路３６は、この同期信号発生回路３８から供給される同期信号に基づいて、メモリ３５に格納される画像データの格納アドレスを発生可能に構成されている。
【００５４】
メモリ３５は、半導体メモリ装置で、例えばＲＡＭ（ＤＲＡＭ、ＳＲＡＭ等）やＲＯＭ（ＥＰＲＯＭ、ＥＥＰＲＯＭ等）がこれに相当する。このメモリ３５のうちのＲＡＭには、前述した画像データ蓄積領域のほかに、制御回路４０が算術演算や論理演算等の各処理時に利用する作業領域や読取条件テーブルも確保可能に構成されている。またＲＯＭには、後述する読取処理等を実行可能な所定プログラムやその他、照明光源２１、受光センサ２３等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
【００５５】
制御回路４０は、二次元コードリーダ２０全体を制御可能なマイコンで、ＣＰＵ、システムバス、入出力インタフェース等からなるもので、メモリ３５とともに情報処理装置を構成し得るもので情報処理機能を有する。この制御回路４０には、内蔵された入出力インタフェースを介して種々の入出力装置（周辺装置）と接続可能に構成されており、本実施形態の場合、電源スイッチ４１、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示装置４６、通信インタフェース４８等を接続されている。
【００５６】
これにより、例えば、電源スイッチ４１や操作スイッチ４２の監視や管理、またインジケータとして機能するＬＥＤ４３の点灯・消灯、ビープ音やアラーム音を発生可能なブザー４４の鳴動のオンオフ、さらには読み取った情報コードＱによるコード内容を画面表示可能な液晶表示装置４６の画面制御や外部装置とのシリアル通信を可能にする通信インタフェース４８の通信制御等を可能にしている。なお、情報コードＱの読み取りの可否を音や光で知らせる報知手段に相当し得るものである。また、通信インタフェース４８に接続される外部装置には、当該二次元コードリーダ２０の上位システムに相当するホストコンピュータＨＳＴ等が含まれる。
【００５７】
電源系は、電源スイッチ４１、電池４９等により構成されており、制御回路４０により管理される電源スイッチ４１のオンオフによって、上述した各装置や各回路に、電池４９から供給される駆動電圧の導通や遮断が制御されている。なお、電池４９は、所定の直流電圧を発生可能な２次電池で、例えば、リチウムイオン電池等がこれに相当する。また、電池４９によることなく、例えば、通信インタフェース４８を介して接続されるホストコンピュータＨＳＴ等の外部装置から電力供給を受ける構成を採る場合もあり、この場合には当該電池４９は不要となる。
【００５８】
このように二次元コードリーダ２０を構成することによって、例えば、電源スイッチ４１がオンされて所定の自己診断処理等が正常終了し、情報コードＱの読み取りが可能な状態になると、照明光Ｌｆの発光を指示する操作スイッチ４２（例えばトリガースイッチ）の入力を受け付ける。これにより、作業者がトリガースイッチを押圧しオンにすることで、制御回路４０が同期信号を基準に照明光源２１に発光信号を出力するので、当該発光信号を受けた照明光源２１は、ＬＥＤを発光させて照明光Ｌｆを照射する。
【００５９】
すると、情報コードＱに照射された照明光Ｌｆが反射しその反射光Ｌｒが読取口およびフィルタ２５を介して結像レンズ２７に入射するため、受光センサ２３の受光面２３ａには、結像レンズ２７により情報コードＱの像、つまりコード画像が結像される。これにより、受光素子が露光されるので、制御回路４０による読取処理のコード画像取得処理によって画像信号によるコード画像の取得が可能となり、取得されたコード画像を２値化した後、所定の情報処理を施すことによって、このような情報コードＱとして符号化された文字データ等をデコード、つまり読み取り可能にしている。
【００６０】
そして、デコードに成功した場合には、その旨を示す報知出力（例えば「ＯＫ」の文字、短いビープ音や緑色光）を、またデコードに失敗した場合には、その旨を示す報知出力（例えば「ＮＧ」の文字、長いビープ音や赤色光）を、液晶表示装置４６、ブザー４４やＬＥＤ４３により出力することによって、当該二次元コードリーダ２０の使用者に情報コードＱの読み取りの可否を報知する。また、デコードに成功した場合には、デコードされたデータ、つまり情報コードＱの内容を液晶表示装置４６に出力したり、通信インタフェース４８を介してホストコンピュータＨＳＴに出力する。
【００６１】
このような動作の概要が、二次元コードリーダ２０による情報コードＱの基本的な読取動作となるが、［発明が解決しようとする課題］の欄で述べたように、二次元コードリーダ２０がデータ量の多い情報コードＱを読み取る場合には、比較的データ量の少ない情報コードＱを読み取るときに比べ、読み取りの可否を知らせる音や光あるいは表示といった報知出力が遅くなりがちになる。このため、データ量の少ない情報コードＱの読み取りに慣れている使用者に対しては、ビープ音の鳴動やＬＥＤの点灯等がいつもよりも遅れて出てくるという違和感やレスポンスの悪さから、読み取りフィーリングを悪化させ得る。
【００６２】
そこで、本実施形態に係る二次元コードリーダ２０では、以下説明する読取処理により比較的データ量の少ない情報コードＱを読み取る場合とほぼ同様に読み取りの可否をレスポンス良く出力可能にしている。
【００６３】
次に、二次元コードリーダ２０による二次元コードの読取処理の概要を図２〜図５に基づいて説明する。なお、この読取処理は、前述したメモリ３５を構成するＲＯＭ等に格納されている所定プログラムを制御回路４０が実行することにより実現されるもので、情報コードＱとして二次元コードの一種であるＱＲコードを読み取り可能にしている。このため、以下の説明では、ＱＲコードの読み取り処理を例示して説明する。
【００６４】
図２に示すように、二次元コードリーダ２０による二次元コードの読取処理では、まずステップＳ１０１によりコード画像取得処理が行われる。この処理は、受光センサ２３に検出されてメモリ３５の画像データ蓄積領域に蓄積されたコード画像を当該領域から取得するもので、取得されたコード画像は次の位置検出パターン検出処理に渡される。
【００６５】
次のステップＳ１０３では、位置検出パターン検出処理が行われる。この処理は、ＱＲコードに特有の３つの位置検出要素パターンの存在を当該コード画像中で検出することにより、読取対象となる情報コードＱがＱＲコードであるか否かを判断したり、そのコードが占める範囲（以下「コード領域」という。）を検出可能にするものである。
【００６６】
ここで、ＱＲコードの位置検出要素パターンの例等を図４を参照して説明する。図４(A) に示すように、ＱＲコードの位置検出要素パターンＦＰは、ＱＲコードの基本仕様（日本工業規格；ＪＩＳ Ｘ ０５１０：２００４、以下これを単に「ＪＩＳ規格」という。）により、正方形状からなる、暗（黒色等）の７×７セルα、明（白色等）の５×５セルβおよび暗の３×３セルγの３個が同心正方形状に重なって構成されている。ここにいう「セル」とは、ＱＲコードを構成する最小構成要素のことで、データ１ビットに相当しその幅であるセルピッチCpは、これらのセル最小幅をなす。
【００６７】
例えば、暗の７×７セルαは７セル分のセルピッチCpで、明の５×５セルβは５セル分のセルピッチCp、暗の３×３セルγは３セル分のセルピッチCp、となる。このため、位置検出要素パターンＦＰを横断または縦断するように明暗情報を走査すると、暗、明、暗、明、暗の順番で同色セルの連続比率が１：１：３：１：１となる画像範囲が当該位置検出要素パターンＦＰである可能性の高いことがわかる。なお、ＱＲコードでは、同色セルの連続比率がこのような１：１：３：１：１となる可能性を、後述するマスク処理による明暗のバランス調整により抑制しているため、このような連続比率のセルの組み合わせを見つけることにより、位置検出要素パターンＦＰを検出可能にしている。
【００６８】
また、ＱＲコードでは、図４(B) に示すように、このような位置検出要素パターンＦＰを、一般に、その左上、左下および右上の３箇所の隅に配置して位置検出パターンを構成することによって、当該情報コードＱがＱＲコードであるか否か、またＱＲコードであればそのコード領域を検出可能にしている。ここで再び図２に戻る。
【００６９】
ステップＳ１０３により、コード画像において位置検出パターンを検出すると、続くステップＳ１０５では、位置検出パターンを検出できたか否かを判断する処理が行われる。この処理は、ステップＳ１０３により、ＱＲコードの３箇所の隅に配置される位置検出要素パターンＦＰを全て検出することができたか否かを確認するもので、位置検出パターンを検出できた場合には（Ｓ１０５；Ｙｅｓ）、次のステップＳ１０７に処理を移行し、位置検出パターンを検出できていない場合には（Ｓ１０５；Ｎｏ）、この段階で読み取りエラーを起こしていることがわかるので、後述するステップＳ１３１に処理を移行する。
【００７０】
ステップＳ１０７では、マスク解除処理が行われる。この処理は、前述したように、位置検出要素パターンの同色セルの連続比率である１：１：３：１：１に相当するセルの列びを当該コード領域内に存在しないように施されたマスク処理による明暗のバランス調整を解除するものである。なお、マスク処理は、ＱＲコードのエンコード時に施されるもので、その詳細は、ＱＲコードの基本仕様（ＪＩＳ規格）に記載されており、マスク解除処理は、マスク処理の手順を逆方向に行うことで可能となる。
【００７１】
続くステップＳ１０９では一部デコード処理が行われる。この処理は、読取対象となるＱＲコードの一部分（一部）を残りの部分（残部）に先行してデコードする処理で、この処理の流れは、図３(A) に記載されている。そのため、ここでは図３(A) を参照して説明する。
【００７２】
図３(A) に示すように、一部デコード処理では、ステップＳ２０１により、セル数算出処理が行われる。この処理は、ＱＲコードの各辺の長さをセルピッチCp単位で測定して、その平均をとることで、一辺当たりのセル数を求めるものである。
【００７３】
例えば、図４(B) に示すように、ＱＲコードのクワイエットゾーンを除いたコード領域内の最外側に位置するセルにより構成される４辺S1，S2，S3，S4についてそれぞれセルピッチCp単位で長さを測定する（S1／Cp，S2／Cp，S3／Cp，S4／Cp）。そして、これにより得られた各辺の長さをすべて加算してその平均をとる演算（[(S1／Cp)＋(S2／Cp)＋(S3／Cp)＋(S4／Cp)]／４）を行うことによって１辺当たりのセル数を算出する。このように各辺の長さをすべて加算してその平均をとるのは、ＱＲコードのコード画像に歪みが生じて各辺の長さに誤差を含んでいる場合があるので、このような場合に４辺の平均を求めることにより各辺の誤差を吸収して誤差の影響を抑制するためである。
【００７４】
次のステップＳ２０３では、誤り訂正レベル判定処理が行われる。この処理は、ステップＳ２０１により得られた１辺当たりのセル数に基づいて、当該ＱＲコードの型番情報を検出した後、該当する型番から形式情報の所在位置を求めて当該形式情報に基づいて誤り訂正レベルの判定を行う。具体的には、図４(C) に示すようなコードワードテーブルに基づいて行われる。
【００７５】
即ち、型番情報は、一般に、１型から４０型までの４０種類のものが存在し、１型は２１×２１セル、２型は２５×２５セル、…、４０型は１７７×１７７セルというように、型番が１つ上がるごとに一辺につき４セルずつ増加するように、型番と一辺当たりのセル数との関係がＪＩＳ規格により定められている。また、形式情報には、４種類の誤り訂正レベル（Ｌ，Ｍ，Ｑ，Ｈ）を判定できるように所定のビット列が設定されている。なお、この型番情報や形式情報についても、ＱＲコードの基本仕様（ＪＩＳ規格）に記載されているので、詳細はＪＩＳ Ｘ ０５１０：２００４を参照されたい。
【００７６】
このため、図４(C) に示すように、ステップＳ２０３により算出されたセル数が、例えば２１前後であれば、当該コードワードテーブルを参照することにより、セル数「２１×２１」から型番情報は「１型」に相当することがわかる。これにより、ＱＲコードのコード画像から「１型」に対応する形式情報を得ることにより、誤り訂正レベルを判定することが可能となる。
【００７７】
ステップＳ２０５では、コードワード数算出処理が行われる。この処理は、ステップＳ２０３で参照したコードワードテーブルを再び参照して該当する誤り訂正レベルに対応するコードワード数に基づいて一部読み取りを行うコードワード数を算出する。例えば、型番が「１型」で、誤り訂正レベルが「Ｌ」である場合、当該コードワードテーブルを参照すると、データビット数は１５２ビット、データ容量は、数字で４１文字、英数字で２５文字、バイナリデータで１７データ（１データ／８ビット）、漢字で１０文字、にそれぞれ相当することがわかる。
【００７８】
また、読取対象となるＱＲコードの先頭から数文字相当分を読み出すことにより、当該ＱＲコードに含まれているデータが、数字、英数字、バイナリデータおよび漢字のいずれに相当するものであるかを判別することができる。このため、例えば、当該ＱＲコードに含まれているデータが、英数字である場合には、「１型」で誤り訂正レベルが「Ｌ」のＱＲコードには、２５文字の英数字が含まれていることがわかるので、この文字数に所定割合を乗算して一部読み取りを行うコードワード数を算出する。
【００７９】
例えば、この所定割合が２０％に設定されている場合には、５文字（＝２５文字×０．２）を一部読み取りのコードワード数とする。なお、本実施形態では、この所定割合は、例えば、ＱＲコードの場合には、誤り訂正機能が付加されているので、経験的に３０％前後（２０％〜４０％）としている。
【００８０】
このようにステップＳ２０５により、一部読み取りを行うコードワード数が算出されると、次のステップＳ２０７によりデコード範囲を決定する処理が行われる。即ち、ステップＳ２０５によるコードワード数に基づいて、読取対象となるＱＲコードのコード画像中のどの部分をデコードすれば良いかをこのステップＳ２０７により決定する。例えば、先の例の場合、２５文字中の５文字分（２０％）を他の２０文字分（８０％）よりも先に一部読み取りするので、先頭の文字を含めて先頭から５番目までの文字を、他の文字（６番目以降）に先行して次のステップＳ２０９により読み取ることを決定する。
【００８１】
続くステップＳ２０９では、ステップＳ２０７により決定されたデコード範囲に基づいて、一部読み取り、つまり一部の文字等についてデコード処理を行い、これによりデコードされた結果（一部読取情報）はステップＳ２１１によりメモリ３５の所定の作業領域に出力される。なお、このステップＳ２０９によるデコード処理は、デコードする範囲が限定されている点を除いては、通常のＱＲコードのデコードと変わりはなく、基本的なデコードのアルゴリズムは、例えば、特許第２９３８３３８号公報等に公知のものを用いる。このようにして一部デコード処理が行われると、図２に示す読取処理に処理を移行する。
【００８２】
図２に示すように、ステップＳ１１１では、一部デコードが成功したか否かを判断する処理が行われる。前述したようにステップＳ１０９の一部デコード処理によってメモリ３５の所定の作業領域には一部デコードされたデコード結果が格納されているので、この処理では、このデコード結果に基づいて一部デコードは成功したか否かを判断する。そして、一部デコードが成功したと判断される場合には（Ｓ１１１；Ｙｅｓ）、続くステップＳ１１３に処理を移行して報知処理を行う。これに対し、一部デコードが成功したと判断されない場合、つまり一部デコードが失敗した場合には（Ｓ１１１；Ｎｏ）、読み取りエラーを起こしていることになるので、ステップＳ１３１に処理を移行する。
【００８３】
続くステップＳ１１３では、報知処理を開始する処理が行われる。報知処理は、デコードに成功した旨を示す報知出力（所定報知の連続出力）をブザー４４等の出力装置に出力するもので、ここではその開始を指示する。例えば、当該出力装置が、ブザー４４である場合には連続したビープ音、ＬＥＤ４３である場合には緑色発光、液晶表示装置４６である場合には「ＯＫ」の文字、といった内容の出力開始命令を該当する出力装置に出力する。この処理は、図５(A) に示す(5A1)や図５(C) に示す(5C1)のタイミングに行われる。
【００８４】
一方、ステップＳ１３１でも報知処理を開始する処理が行われる。こちらの報知処理はデコードに失敗した旨を示す報知出力（所定報知の連続出力）をブザー４４等の出力装置に出力するもので、ここではその開始を指示する。このため、この報知処理では、例えば、当該出力装置が、ブザー４４である場合には連続したビープ音、ＬＥＤ４３である場合には赤色発光、液晶表示装置４６である場合には「ＮＧ」の文字、といった内容の出力開始命令を該当する出力装置に出力する。この処理は、図５(B) に示す(5B1)のタイミングに行われる。
【００８５】
次のステップＳ１１５では、残部デコード処理が行われる。この処理は、前述したステップＳ１０９により先に読み取ったＱＲコードの一部分（一部）に対する残りの部分（残部）をデコードする処理で、この処理の流れは、図３(B) に記載されている。そのため、ここでは図３(B) を参照して説明する。
【００８６】
図３(B) に示すように、残部デコード処理では、ステップＳ３０１により、コードワード数算出処理が行われる。この処理は、残部読み取りを行うコードワード数を算出する処理で、前述した一部デコード処理ではデコードしなかった他の部分（残部）のコードワード数を算出する。例えば、先の例の場合、一部デコード処理により２５文字中の５文字分（２０％）を一部読み取りしているので、２５文字から５文字を減算した結果の２０文字（＝２５文字−５文字）が残部読み取りを行うコードワード数となる。
【００８７】
続くステップＳ３０３では、デコード開始位置算出処理が行われる。この処理は、前述した一部デコード処理により既にデコード済みのコードワード数に基づいて、読取対象となるＱＲコードのコード画像中のどの部分からデコードを開始すれば良いかをこのステップＳ３０３により算出する。例えば、先の例では、先頭から５番目までの５ワード分を既に一部デコード処理によりデコードしているので、先頭から６番目をデコード開始位置として算出する。
【００８８】
次のステップＳ３０５では、デコード範囲決定処理が行われる。この処理では、ステップＳ３０１、Ｓ３０３により算出されたコードワード数およびデコード開始位置に基づいて、読取対象となるＱＲコードのコード画像中のどの部分をデコードすれば良いかをこのステップＳ３０５により決定する。例えば、先の例の場合、ステップＳ３０３により算出したデコード開始位置の先頭から６番目から、ステップＳ３０１により算出した２０文字を、続くステップＳ３０７により読み取ることを決定する。
【００８９】
続くステップＳ３０７では、ステップＳ３０５により決定されたデコード範囲に基づいて、残部読み取り、つまり残りの文字等についてデコード処理を行う。そして、これによりデコードされた結果（残部読取情報）は、ステップＳ３０９によりメモリ３５の所定の作業領域に出力される。なお、このステップＳ３０７によるデコード処理も、前述した一部デコード処理のステップＳ２０９と同様に、デコードする範囲が限定されている点を除いては、通常のＱＲコードのデコードと変わりはないので、基本的なデコードのアルゴリズムは、例えば、特許第２９３８３３８号公報等に公知のものを用いる。このようにして残部デコード処理が行われると、図２に示す読取処理に処理を移行する。
【００９０】
図２に示すように、ステップＳ１１７では、残部デコードが成功したか否かを判断する処理が行われる。前述したようにステップＳ１１５の残部デコード処理によってメモリ３５の所定の作業領域には残部デコードされたデコード結果が格納されているので、この処理では、このデコード結果に基づいて残部デコードは成功したか否かを判断する。そして、残部デコードが成功したと判断される場合には（Ｓ１１７；Ｙｅｓ）、続くステップＳ１１９に処理を移行してデコード結果結合処理を行う。
【００９１】
これに対し、残部デコードが成功したと判断されない場合、つまり残部デコードが失敗した場合には（Ｓ１１７；Ｎｏ）、読み取りエラーを起こしていることになるので、デコードに失敗した旨を示す報知出力をブザー４４等の出力装置に出力したうえで、ステップＳ１３３に処理を移行する。例えば、当該出力装置が、ブザー４４である場合には連続したビープ音、ＬＥＤ４３である場合には赤色発光、液晶表示装置４６である場合には「ＮＧ」の文字、といった内容の出力命令を該当する出力装置に出力する。この場合は、図５(C) に示すものに該当するので、同図に示す(5C2)のタイミングで出力される。
【００９２】
ステップＳ１３３は、読み取りエラーを起こしている場合に行われるタイマー処理で、所定時間を経過するまで当該ステップＳ１３３を繰り返し行うものである。この所定時間は、ステップＳ１１５、Ｓ１１７、Ｓ１１９による処理時間よりも十分に長い時間、例えばステップＳ１１５〜Ｓ１１９による処理時間の３倍〜５倍、あるいは２秒、３秒等の固定時間に設定されている。
【００９３】
なお、このステップＳ１３３によるタイマー処理の後は、後述するステップＳ１２３により報知処理が終了されるまで連続した報知が継続されるので、例えば、図５(A)〜図５(C)に示すように、ビープ音が継続する長さの違い（成功時は短いビープ音（図５(A) ）、失敗時は長いビープ音（図５(B)および図５(C)））により、当該二次元コードリーダ２０の使用者に読み取りエラーの有無、つまり読み取りの可否を知らせることができる。この成功時の短いビープ音（図５(A) ）の継続時間は、特許請求の範囲に記載の「所定報知の連続出力の開始から終了までの連続報知時間」に相当し得るものである。また、失敗時の長いビープ音（図５(B)および図５(C)）は、特許請求の範囲に記載の「連続報知時間よりも長く所定報知を連続出力して終了」するものに相当し得るもので、その継続時間は連続報知時間よりも長い。
【００９４】
続くステップＳ１１９では、デコード結果結合処理が行われる。この処理は、一部デコード処理（Ｓ１０９）によりデコードされた結果（一部読取情報）と残部デコード処理（Ｓ１１５）によりデコードされた結果（残部読取情報）とを連結することによって、読取対象となるコード画像の全部のデコード結果（全部読取情報）を当該ＱＲコードの読取結果として生成するものである。
【００９５】
例えば、先の例の場合、一部デコード処理（Ｓ１０９）によりデコードされた先頭から５文字分（第１文字〜第５文字）のデコード結果と、残部デコード処理（Ｓ１１５）によりデコードされた先頭より６文字から２０文字分（第６文字〜第２５文字）のデコード結果と、を連結することによって、全体の２５文字分（第１字〜第２５文字）のデコード結果、つまり読取結果を生成する。
【００９６】
次のステップＳ１２１では、デコード結果出力処理が行われる。この処理は、ステップＳ１１９により生成した当該ＱＲコードの読取結果等を液晶表示装置４６や通信インタフェース４８に出力するものである。即ち、ＱＲコードの読み取りに成功した場合には（Ｓ１１１；Ｙｅｓ、Ｓ１１７；Ｙｅｓ）、その旨を示す成功コードとデコード後の解読データ（読取結果）を出力する。例えば、出力装置が、液晶表示装置４６である場合には解読データの内容を表示し、ホストコンピュータＨＳＴである場合には成功コードおよび解読データ（読取結果）を通信インタフェース４８を介して出力する（同図に示す(5A2)のタイミング）。
【００９７】
これに対し、ＱＲコードの読み取りに失敗した場合には（Ｓ１０５；Ｎｏ、Ｓ１１１；Ｎｏ、Ｓ１１７；Ｎｏ）、その旨を示す失敗コードを出力する。例えば、出力装置が液晶表示装置４６である場合には既に「ＮＧ」の文字を表示しているのでこの処理では特に表示せず、また出力装置がホストコンピュータＨＳＴである場合には失敗コードインタフェース４８を介して出力する（同図に示す(5B3),(5C3)のタイミング）。
【００９８】
ステップＳ１２１によるデコード結果出力処理の次には、ステップＳ１２３により報知処理を終了する処理が行われる。この処理は、ステップＳ１１３やステップＳ１３１により開始された報知処理を終了させるもので、例えば、当該出力装置が、ブザー４４である場合にはそれまで連続して鳴動していたビープ音を停止させ、ＬＥＤ４３である場合にはそれまで発光していたＬＥＤ４３を消灯させる。当該出力装置が、また液晶表示装置４６である場合にはそれまで出力されていた文字表示を終了する。
【００９９】
以上説明したように本第１実施形態による二次元コードリーダ２０によると、メモリ３５および制御回路４０により、受光センサ２３および結像レンズ２７により検出されたＱＲコードのコード画像の一部を取り出し、少なくとも当該一部のコード画像の読み取りを試み（Ｓ１０１、Ｓ１０３、１０７、Ｓ１０９）、読み取り可能である場合には（Ｓ１１１；Ｙｅｓ）、コード画像の全部の読み取りに成功すると判断する。そして、ブザー４４、ＬＥＤ４３または液晶表示装置４６により、制御回路４０等による判断結果（ブザー４４は連続したビープ音、ＬＥＤ４３は緑色発光、液晶表示装置４６は「ＯＫ」の文字）を、制御回路４０等がコード画像の全部を読み取る（Ｓ１１９）前に使用者に報知する（Ｓ１１３）。これにより、ＱＲコードのコード画像の全部を読み取ってから読み取りに成功すると判断する場合に比べてレスポンス良く読み取りの可否を早く使用者に知らせることが可能となる。したがって、当該二次元コードリーダ２０の使用者は、読取対象となるＱＲコードのデータ量が多くても、当該ＱＲコードの読み取りが成功することを早期に把握できるので、ビープ音の鳴動、ＬＥＤの点灯または液晶画面の表示がいつもよりも遅れて出てくるという違和感を与えることなく読み取りフィーリングを向上させることができる。
【０１００】
また、本第１実施形態による二次元コードリーダ２０によると、制御回路４０等により読み取られた一部のコード画像に対する一部デコード処理（Ｓ１０９）によるデコード結果と残部のコード画像に対する残部デコード処理（Ｓ１１５）によるデコード結果とを連結することによって（Ｓ１１９）、読取対象となるコード画像の全部のデコード結果を当該ＱＲコードの解読データとして出力する。これにより、制御回路４０等により読み取られた一部デコード処理（Ｓ１０９）によるデコード結果を無駄なく使用するので、制御回路４０等がコード画像の全部を再度読み取る場合に比べて、確定的な読み取り結果を早く出力することができる。
【０１０１】
さらに、本第１実施形態による二次元コードリーダ２０によると、(1) 制御回路４０等がコード画像の全部の読み取りに成功すると判断し（Ｓ１１１；Ｙｅｓ）、さらに(1a)制御回路４０等によりコード画像の残部の読み取りを成功したと判断されるときには（Ｓ１１７；Ｙｅｓ）、所定の連続報知を終了（Ｓ１２３）するので、制御回路４０等がコード画像の全部の読み取りに成功すると判断してから（Ｓ１１１；Ｙｅｓ）、制御回路４０等がコード画像の残部の読み取りを成功したと判断されるときまで（Ｓ１１７；Ｙｅｓ）の間、所定の連続報知を行う。これに対し、(1) 制御回路４０等がコード画像の全部の読み取りに成功すると判断しても（Ｓ１１１；Ｙｅｓ）、(1b)制御回路４０等によりコード画像の残部の読み取りを成功したと判断されないときには（Ｓ１１７；Ｎｏ）、所定報知の連続出力の開始から終了までの連続報知時間よりも長く所定報知を連続出力（Ｓ１３３；Ｙｅｓ）して終了する（Ｓ１２３）。
【０１０２】
つまり、制御回路４０等によりコード画像の残部において読み取りに失敗したと判断した場合（読み取りエラーの場合）には（Ｓ１１７；Ｎｏ）、読み取りに成功したと判断した場合の連続報知時間よりも長く継続して所定報知を行う（Ｓ１３３、Ｓ１２３）。これにより、この(1) ＆(1b)の場合は、(2) 制御回路４０等により当初からコード画像の全部の読み取りに失敗すると判断した場合（読み取りエラーの場合）（Ｓ１１１；Ｎｏ）と同様になるので、(1) ＆(1b)の場合も(2) の場合と同様に、当該二次元コードリーダ２０の使用者に所定の連続報知の時間的長さによって読み取りエラーを知らせることができる。
【０１０３】
さらにまた、本第１実施形態による二次元コードリーダ２０によると、制御回路４０等により、受光センサ２３等により検出されたＱＲコードのコード画像の一部を取り出し、少なくとも当該一部のコード画像の読み取りを試み（Ｓ１０１、Ｓ１０３、１０７、Ｓ１０９）、読み取り不可能である場合には（Ｓ１１１；Ｎｏ）、コード画像の全部の読み取りに失敗すると判断する。そして、ブザー４４、ＬＥＤ４３または液晶表示装置４６により、制御回路４０等による判断結果（ブザー４４は連続したビープ音、ＬＥＤ４３は赤色発光、液晶表示装置４６は「ＮＧ」の文字）を、制御回路４０等がコード画像の全部を読み取る（Ｓ１１９）前に使用者に報知する（Ｓ１３１）。これにより、ＱＲコードのコード画像の全部を読み取ってから読み取りに失敗すると判断する場合に比べてレスポンス良く読み取りの可否を早く使用者に知らせることが可能となる。したがって、当該二次元コードリーダ２０に使用者は、読取対象となるＱＲコードのデータ量が多くても、当該ＱＲコードの読み取りが失敗したことを早期に把握できるので、読み取りフィーリングを向上し、また素早く再読み取りの動作に移行することができる。
【０１０４】
なお、上述した第１実施形態では、情報コードの例として、ＱＲコードを例示して説明したが、二次元コードであればこれに限られることはなく、例えば、ＰＤＦ４１７、データマトリックス、マキシコード、ＲＳＳコンポジット等の各種のコードシンボルでも、上述同様の作用および効果を得ることができる。
【０１０５】
［第２実施形態］
次に、本発明の光学情報読取装置を一次元コードリーダに適用した第２実施形態を図６〜図９に基づいて説明する。
なお、本第２実施形態に係る一次元コードリーダの構成は、前述した第１実施形態に係る二次元コードリーダ２０と実質的に同一である。このため、ここでは一次元コードリーダの構成を示すブロック図およびそれらの説明を省略する。
【０１０６】
一次元コードリーダによる一次元コードの読取処理の概要を図６〜図９に基づいて説明する。なお、この読取処理も、前述した第１実施形態の二次元コードリーダ２０による二次元コードの読取処理と同様に、図１に示すメモリ３５を構成するＲＯＭ等に格納されている所定プログラムを制御回路４０が実行することにより実現されるもので、情報コードＱとして一次元コードの一種である例えばＪＡＮコードを読み取り可能にしている。なお、第１実施形態の読取処理とほぼ同様に処理されるステップは、その旨を明示して説明を省略する。
【０１０７】
図６に示すように、一次元コードリーダによる一次元コードの読取処理では、まずステップＳ５０１によりコード画像取得処理が行われる。この処理は、第１実施形態の読取処理によるもの（Ｓ１０１）とほぼ同様に処理されるもので、これにより取得されたコード画像は次のコード領域検出処理に渡される。
【０１０８】
次のステップＳ５０３では、コード領域検出処理が行われる。この処理は、バーコードの範囲、つまり仮想の外形枠を検出するもので、公知のアルゴリズムにより行われる。例えば、図９に示すように、ステップＳ５０１によって取得されたコード画像の外形枠ｆを検出したり、外形枠ｆの高さｈや幅ｗを検出する。
【０１０９】
続くステップＳ５０５では、スキャン間隔算出処理が行われる。この処理は、ステップＳ５０３により検出されたバーコードの外形枠ｆの高さｈに基づいて、その幅ｗ方向にスキャン可能なスキャンライン（走査線）の本数とそのスキャン間隔（走査間隔）をカウントするために行われるものである。通常、スキャンラインの本数は標準で３本程度に設定されるが、バーコードの高さｈが低いとスキャン間隔が狭くなり、場合によってはスキャンラインの本数を３本よりも減らして２本または１本に設定する。これに対し、バーコードの高さｈが高いとスキャン間隔が広くなるため、スキャンラインの本数を３本よりも増やして４本や５本に設定する。
【０１１０】
ステップＳ５０７では、ステップＳ５０５により算出されたスキャンラインの本数に基づいて走査可能なスキャンラインが存在するか、つまりスキャンラインの本数が１本以上であるか否かを判断する処理が行われる。そして、スキャン可能なスキャンラインが存在する場合には（Ｓ５０７；Ｙｅｓ）、続くステップＳ５０９に処理を移行し、またスキャン可能なスキャンラインが存在しない場合には（Ｓ５０７；Ｎｏ）、この段階で読み取りエラーを起こしていることがわかるので、後述するステップＳ５３１に処理を移行する。
【０１１１】
続くステップＳ５０９では一部デコード処理が行われる。この処理は、読取対象となるバーコードの一部分（一部）を残りの部分（残部）に先行してデコードする処理で、この処理の流れは、図７(A) に記載されている。そのため、ここでは図７(A) を参照して説明する。
【０１１２】
図７(A) に示すように、一部デコード処理では、ステップＳ６０１により、コードワード数算出処理が行われる。この処理は、ステップＳ５０３により検出されたコード画像の外形枠ｆの高さｈおよび幅ｗの比率に基づいて、当該コード画像に対応するバーコードのコードワード数を概算し、それにより得られたコードワード数に所定割合を乗算することにより算出する。例えば、コードワード数が２０で、所定割合が５０％に設定されている場合には、１０文字（＝２０文字×０．５）を一部読み取りのコードワード数とする。本実施形態では、この所定割合は、ＱＲコードのように誤り訂正機能が付加されていないので、経験的に５０％前後（４０％〜６０％）としている。なお、コードワード数は、所定の演算式による概算あるいは図５(C) に示すセル数相当を外形枠ｆの高さｈおよび幅ｗに対応させたコードワードテーブルをメモリ３５等に持つことでこれを参照して求める。
【０１１３】
次のステップＳ６０３では、部分デコード処理が行われる。この処理は、読取対象となるバーコードを部分的にデコードする処理で、この処理の流れは、図８に記載されているので、ここでは図８および図９を参照して説明する。
【０１１４】
なお、このステップＳ６０３では、バーコードの左側（紙面左）の先頭からスキャンを開始するので（図９に示す(9A)方向）、当該部分デコード処理が行われる前に、スキャンラインは上段方向１本目、スキャン開始位置は１文字目およびスキャン方向は右側（紙面右）、にそれぞれ設定可能に所定の引数またはフラグ等がセットされる。
【０１１５】
図８に示すように、部分デコード処理では、ステップＳ７００によりスキャンライン設定処理が行われ、またステップＳ７０１によりスキャン開始位置設定処理が行われ、さらにステップＳ７０３によりスキャン方向設定処理が行われる。前述したように、スキャンラインは上段方向１本目、スキャン開始位置は１文字目、スキャン方向は右方向に、所定の引数またはフラグ等がセットされているので、まず最初は、これらのステップＳ７００、Ｓ７０１、７０３では、そのように設定される。これにより、図９に示すように、まずはスキャンラインＸで右方向９Ａにスキャンされることになる。
【０１１６】
次のステップＳ７０５では、スキャン方向を判断する処理が行われる。そして、スキャン方向が右であれば、ステップＳ７０７により右方向のスキャンが行われ、またスキャン方向が左であれば、ステップＳ７０８により左方向のスキャンが行われる。図９に示すように、最初のスキャンの場合、スキャン方向は右方向に設定されているので（Ｓ７０５；右、図９に示す(9A)方向）、ステップＳ７０７により右方向のスキャンを行う。
【０１１７】
スキャンが行われると、次にステップＳ７０９によりデコード処理が行われる。このデコード処理は、ステップＳ６０１により設定されたコードワード数分をデコードするもので、デコードする範囲が限定されている点を除いては、通常のバーコードのデコードと変わりはなく、基本的なデコードのアルゴリズムは公知のものを用いる。先の例の場合、一部読み取りのコードワード数は、１０文字に設定されているので、左端の先頭から１０文字分をデコードする。
【０１１８】
続くステップＳ７１１では、予定ワード数分のデコードは成功したか否かを判断する処理が行われる。この処理は、先のステップＳ７０９による一部読み取りのコードワード数分が正常にデコードできたか否かを判断するもので、例えば、バーコードの周囲に汚れ等が存在することによって、前述したステップＳ５０３によりこのような汚れをバーコードの一部と誤認してコード領域を検出した場合等においては、正常にデコードできないことからこのような場合には（Ｓ７１１；Ｎｏ）、続くステップＳ７１３に処理を移行する。
【０１１９】
これに対し、正常にデコードできデコードに成功した場合には（Ｓ７１１；Ｙｅｓ）には、予定したコードワード数分の読み取りが終了しているので、ステップＳ７１７に処理を移行する。先の例では、一部読み取りのコードワード数は、１０文字に設定されているので、左端の先頭から１０文字分のデコードが成功している場合には（Ｓ７１１；Ｙｅｓ）、ステップＳ７１７に処理を移行し、成功していない場合には（Ｓ７１１；Ｎｏ）、ステップＳ７１３に処理を移行する。ここではデコードに成功していないとして（Ｓ７１１；Ｎｏ）、ステップＳ７１３に処理を移すとする。
【０１２０】
続くステップＳ７１３では、左右両方向のデコードを失敗したか否かを判断する処理が行われる。即ち、ステップＳ７１１によるデコードが成功していないので、この失敗が左右両方向のスキャンに対するものであるか否かを判断する。そして、両方向ともデコードを失敗している場合には（Ｓ７１３；Ｙｅｓ）、開始位置の変更が可能であるか否かを判断するためにステップＳ７１５に処理を移行し、そうでない場合には（Ｓ７１３；Ｎｏ）には残りの方向のスキャンを行うため、スキャン方向を反対側に設定した後、ステップＳ７０３に処理を移行する。例えば、先の例では、図９に示すように、最初は右方向９ＡにスキャンラインＸでスキャンしたので、次のスキャン方向をその反対方向にしてステップＳ７０３に処理を戻す。
【０１２１】
ステップＳ７０３に処理を戻すと、今度は、スキャン方向を先の右方向とは反対の左方向に設定した後、ステップＳ７０５により左を選択してステップＳ７０８により左方向のスキャンを行う。これにより、図９に示す左方向９ＢにスキャンラインＸでスキャンしたデコード処理が可能になるので、続くステップＳ７０９によりデコード処理を行い、その結果から次のステップＳ７１１により予定ワード数分のデコードは成功したか否かを判断する。ここでは、ステップＳ７１１により予定ワード数分のデコードが成功していなとしてステップＳ７１３に処理を移行する。ステップＳ７１３では、前述と同様に左右両方向のデコードを失敗したか否かを判断する処理が行われるが、今回は、両方向ともデコードを失敗しているので（Ｓ７１３；Ｙｅｓ）、ステップＳ７１５に処理を移行して開始位置の変更が可能であるか否かを判断する。
【０１２２】
ステップＳ７１５では、開始位置の変更が可能であるか否かを判断する処理が行われる。この処理は、ステップＳ５０３により検出された外形枠ｆの幅ｗとステップＳ７０１により設定されるスキャン開始位置とに基づいて行われるもので、当該スキャン開始位置がの外形枠ｗの半分に到達しているか否かを判断する。つまり、スキャン開始位置が外形枠ｗの１／２に到達している場合には、それ以上開始位置を変更してもその反対側からのスキャンにより既にデコードの可否を確認しているので、重複したスキャンおよびデコードを防止する必要上、開始位置の変更は不可能であるとするものである。
【０１２３】
そのため、スキャン開始位置が外形枠ｗの１／２に到達している場合には、スキャン開始位置の変更は不可能であると判断して（Ｓ７１５；Ｎｏ）、続くステップＳ７１６に処理を移行し、そうでない場合には、まだスキャン開始位置の変更は可能であると判断して（Ｓ７１５；Ｙｅｓ）、ステップＳ７０１に処理を移行する。今回の例では、開始位置は、まだ１文字目であるので、外形枠ｆの幅ｗの半分に到達していないことから（Ｓ７１５；Ｙｅｓ）、ステップＳ７０１に処理を戻す。
【０１２４】
ステップＳ７０１に処理を戻すと、今度は、スキャン開始位置を２文字目に設定した後、続くステップＳ７０３により前回とは反対の右方向にスキャン方向を設定した後、さらにステップＳ７０５により右を選択してステップＳ７０７により右方向のスキャンを行う。これにより、図９に示す左方向９ＣにスキャンラインＸでスキャンしたデコード処理が可能になるので、続くステップＳ７０９によりデコード処理を行い、その結果から次のステップＳ７１１により予定ワード数分のデコードは成功したか否かを判断する。
【０１２５】
本実施形態では、このようにスキャン方向とスキャン開始位置とを交互に変更することにより、スキャンの範囲を外形枠ｆの内側に向かって徐々に狭めるので、バーコード以外の汚れによりコード領域を誤って広めに検出した場合等においても、やがてバーコードを正常にデコードすることが可能となる。
【０１２６】
また、ステップＳ５０５によりカウントしたスキャンラインの本数とステップＳ７００により設定されたスキャンラインの位置（何本目か）とにより、ステップＳ７１６では、未だスキャンされていないスキャンラインが存在するか否かを判断する。これにより、未スキャンラインが存在する場合には（Ｓ７１６；Ｙｅｓ）、ステップＳ７００に処理を移行することにより、現在のスキャンラインよりも下段方向のスキャンラインが選択されるので、新しいスキャンラインについて、ステップＳ７０１〜Ｓ７１５による各処理が実行される。例えば、図９に示す例では、現在のスキャンラインがスキャンラインＸである場合には、その下段方向のスキャンラインＹがステップＳ７００により選択されてスキャンラインＸと同様にスキャン処理およびデコード処理が行われる。
【０１２７】
このようにバーコードについて所定のワード数分だけデコード処理が正常に行われると、ステップＳ７１７によりそのデコード結果がメモリ３５の所定の作業領域に格納されて本部分デコード処理を終了する。このようにして部分デコード処理が行われると、図７(A) に示す一部デコード処理に処理を移行し、さらに図６に示す読取処理に処理を戻す。
【０１２８】
図６に示すように、ステップＳ５１１では、一部デコードが成功したか否かを判断する処理が行われる。前述したようにステップＳ５０９の一部デコード処理によってメモリ３５の所定の作業領域には一部デコードされたデコード結果が格納されているので、この処理では、このデコード結果に基づいて一部デコードは成功したか否かを判断する。そして、一部デコードが成功したと判断される場合には（Ｓ５１１；Ｙｅｓ）、続くステップＳ５１３に処理を移行して報知処理を行う。これに対し、一部デコードが成功したと判断されない場合、つまり一部デコードが失敗した場合には（Ｓ５１１；Ｎｏ）、読み取りエラーを起こしていることになるので、ステップＳ５３１に処理を移行する。
【０１２９】
続くステップＳ５１３では、報知処理を開始する処理が行われる。この報知処理は、第１実施形態の読取処理によるもの（Ｓ１１３）とほぼ同様に処理されるもので、これにより出力された出力開始命令を受けてブザー４４等の出力装置では、連続したビープ音や緑色発光あるいは「ＯＫ」の文字を出力する。また、ステップＳ５３１による報知処理も、第１実施形態の読取処理によるもの（Ｓ１３１）とほぼ同様に処理され、ブザー４４等の出力装置では、連続したビープ音や赤色発光あるいは「ＮＧ」の文字を出力する。
【０１３０】
次のステップＳ５１５では、残部デコード処理が行われる。この処理は、前述したステップＳ５０９により先に読み取ったバーコードの一部分（一部）に対する残りの部分（残部）をデコードする処理で、この処理の流れは、図７(B) に記載されている。そのため、ここでは図７(B) を参照して説明する。
【０１３１】
図７(B) に示すように、残部デコード処理では、ステップＳ８０１により、コードワード数算出処理が行われる。この処理は、残部読み取りを行うコードワード数を算出する処理で、前述した一部デコード処理ではデコードしなかった他の部分（残部）のコードワード数を算出する。例えば、先の例の場合、一部デコード処理により２０文字中の１０文字分（５０％）を一部読み取りしているので、２０文字から１０文字を減算した結果の１０文字（＝２０文字−１０字）が残部読み取りを行うコードワード数となる。
【０１３２】
続くステップＳ８０３では、デコード開始位置算出処理が行われる。この処理は、前述した一部デコード処理により既にデコード済みのコードワード数に基づいて、読取対象となるバーコードのコード画像中のどの部分からデコードを開始すれば良いかをこのステップＳ８０３により算出する。例えば、先の例では、先頭から１０番目までの１０ワード分を既に一部デコード処理によりデコードしているので、先頭から１１番目をデコード開始位置として算出する。
【０１３３】
次のステップＳ８０５では、部分デコード処理が行われる。この処理は、読取対象となるバーコードを部分的にデコードする処理で、既にステップＳ６０３で説明したものと同じである。そのため、ここでは説明を省略するが、このステップＳ８０５では、バーコードの左側（紙面左）の先頭から１１文字目からスキャンを開始するので、当該部分デコード処理が行われる前に、スキャンラインは上段方向１本目、スキャン開始位置は１１文字目およびスキャン方向は右側（紙面右）、にそれぞれ設定可能に所定の引数またはフラグ等がセットされる。このようにして残部デコード処理が行われると、図６に示す読取処理に処理を移行する。
【０１３４】
図６に示すように、ステップＳ５１７では、残部デコードが成功したか否かを判断する処理が行われる。前述したようにステップＳ５１５の残部デコード処理によってメモリ３５の所定の作業領域には残部デコードされたデコード結果が格納されているので、この処理では、このデコード結果に基づいて残部デコードは成功したか否かを判断する。そして、残部デコードが成功したと判断される場合には（Ｓ５１７；Ｙｅｓ）、続くステップＳ５１９に処理を移行してデコード結果結合処理を行う。
【０１３５】
これに対し、残部デコードが成功したと判断されない場合、つまり残部デコードが失敗した場合には（Ｓ５１７；Ｎｏ）、読み取りエラーを起こしていることになるので、デコードに失敗した旨を示す報知出力をブザー４４等の出力装置に出力したうえで、ステップＳ５３３に処理を移行する。これにより、ブザー４４等の出力装置は、連続したビープ音、赤色発光あるいは「ＮＧ」の文字を出力する。
【０１３６】
続くステップＳ５１９では、デコード結果結合処理が行われる。この処理は、第１実施形態の読取処理によるもの（Ｓ１１９）と同様に処理されるもので、例えば、先の例の場合、一部デコード処理（Ｓ５０９）によりデコードされた先頭から１０文字分（第１文字〜第１０文字）のデコード結果と、残部デコード処理（Ｓ５１５）によりデコードされた先頭より１１文字から２０文字分（第１１文字〜第２０文字）のデコード結果と、を連結することによって、全体の２０文字分（第１字〜第２０文字）のデコード結果、つまり読取結果を生成する。
【０１３７】
また、ステップＳ５３３は、読み取りエラーを起こしている場合に行われるタイマー処理で、このタイマー処理も、第１実施形態の読取処理によるもの（Ｓ１３３）と同様に処理されるので、ここでは説明を省略する。このステップＳ５３３によるタイマー処理の後は、後述するステップＳ５２３により報知処理が終了されるまで連続した報知が継続されるが、これも第１実施形態の読取処理によるもの（Ｓ１２３）と同様で、ビープ音が継続する長さの違い（成功時は短いビープ音、失敗時は長いビープ音）により、当該一次元コードリーダの使用者に読み取りエラーの有無、つまり読み取りの可否を知らせる。
【０１３８】
次のステップＳ５２１ではデコード結果出力処理が行われ、またステップＳ５２３では報知処理を終了する処理が行われる。これらの処理も、第１実施形態の読取処理によるもの（Ｓ１２１、Ｓ１２３）とそれぞれ同様に処理される。即ち、ステップＳ５１９により生成した当該バーコードの読取結果等を液晶表示装置４６や通信インタフェース４８に出力するものである。即ち、バーコードの読み取りに成功した場合には（Ｓ５１１；Ｙｅｓ、Ｓ５１７；Ｙｅｓ）、その旨を示す成功コードとデコード後の解読データ（読取結果）を液晶表示装置４６等の出力装置し、失敗した場合には（Ｓ５０７；Ｎｏ、Ｓ５１１；Ｎｏ、Ｓ５１７；Ｎｏ）、その旨を示す失敗コードを液晶表示装置４６等に出力する。そして、それまでブザー４４等の出力装置に連続して出力されていたビープ音等の報知出力を終了する。
【０１３９】
以上説明したように本第２実施形態による一次元コードリーダによると、メモリ３５および制御回路４０により、受光センサ２３および結像レンズ２７により検出されたバーコードのコード画像の一部を取り出し、少なくとも当該一部のコード画像の読み取りを試み（Ｓ５０１、Ｓ５０３、５０５、Ｓ５０９）、読み取り可能である場合には（Ｓ５１１；Ｙｅｓ）、コード画像の全部の読み取りに成功すると判断する。そして、ブザー４４、ＬＥＤ４３または液晶表示装置４６により、制御回路４０等による判断結果（ブザー４４は連続したビープ音、ＬＥＤ４３は緑色発光、液晶表示装置４６は「ＯＫ」の文字）を、制御回路４０等がコード画像の全部を読み取る（Ｓ５１９）前に使用者に報知する（Ｓ５１３）。これにより、バーコードのコード画像の全部を読み取ってから読み取りに成功すると判断する場合に比べてレスポンス良く読み取りの可否を早く使用者に知らせることが可能となる。したがって、当該一次元コードリーダの使用者は、読取対象となるバーコードのデータ量が多くても、当該バーコードの読み取りが成功することを早期に把握できるので、ビープ音の鳴動、ＬＥＤの点灯または液晶画面の表示がいつもよりも遅れて出てくるという違和感を与えることなく読み取りフィーリングを向上させることができる。
【０１４０】
また、本第２実施形態による一次元コードリーダによると、制御回路４０等により、受光センサ２３等により検出されたバーコードのコード画像の一部を取り出し、少なくとも当該一部のコード画像の読み取りを試み（Ｓ５０１、Ｓ５０３、５０５、Ｓ５０９）、読み取り不可能である場合には（Ｓ５１１；Ｎｏ）、コード画像の全部の読み取りに失敗すると判断する。そして、ブザー４４、ＬＥＤ４３または液晶表示装置４６により、制御回路４０等による判断結果（ブザー４４は連続したビープ音、ＬＥＤ４３は赤色発光、液晶表示装置４６は「ＮＧ」の文字）を、制御回路４０等がコード画像の全部を読み取る（Ｓ５１９）前に使用者に報知する（Ｓ５３１）。これにより、バーコードのコード画像の全部を読み取ってから読み取りに失敗すると判断する場合に比べてレスポンス良く読み取りの可否を早く使用者に知らせることが可能となる。したがって、当該一次元コードリーダに使用者は、読取対象となるバーコードのデータ量が多くても、当該バーコードの読み取りが失敗したことを早期に把握できるので、読み取りフィーリングを向上し、また素早く再読み取りの動作に移行することができる。
【０１４１】
なお、上述した第２実施形態では、情報コードの例として、バーコード（ＪＡＮコード）を例示して説明したが、一次元コードであればこれに限られることはなく、例えば、ＥＡＮ／ＵＰＣ、インターリーブド２オブ５、コーダバー、コード３９／１２８、スタンダード２オブ５、ＲＳＳ等の各種のコードシンボルでも、上述同様の作用および効果を得ることができる。
【０１４２】
［第３実施形態］
次に、前述した第１，２実施形態の改変例にあたる、本発明の光学情報読取装置を二次元コードリーダに適用した第３実施形態を図１０〜図１５に基づいて説明する。
なお、本第３実施形態に係る二次元コードリーダの構成は、前述した第１実施形態に係る二次元コードリーダ２０と実質的に同一である。このため、ここでは二次元コードリーダの構成を示すブロック図およびそれらの説明を省略する。
【０１４３】
まず、前述した第１，２実施形態に係る二次元コードリーダ等が有し得る技術的な新たな課題について、図２、図５および図１３を参照して説明する。図５を参照して説明したように、二次元コードリーダ２０等では、二次元コードの読取処理において一部デコードが成功したと判断される場合には（Ｓ１１１；Ｙｅｓ）、続くステップＳ１１３により報知処理を開始してさらにステップＳ１１５により残部デコード処理を行う。
【０１４４】
そして、デコード結果を結合して（Ｓ１１９）、さらに出力（Ｓ１２１）した後にステップＳ１２３により報知処理を終了する。つまり、報知処理の開始（Ｓ１１３）から報知処理の終了（Ｓ１２３）までの間には、残部デコード処理（Ｓ１１５）、デコード結果結合処理（Ｓ１１９）やデコード結果出力処理（Ｓ１２１）等が介在することから、これらの処理が行われている時間、報知処理が継続して行われることになる。
【０１４５】
このため、例えば、二次元コードの情報量が比較的多い場合（ＱＲコードであれば４０型（１７７×１７７セル）のもの）や、二次元コードのデコードに時間を要する場合（ＱＲコードであればその誤り訂正レベルが「Ｈ」に設定されているもの）等には、ステップＳ１１５による残部デコード処理に要する時間が１秒以上要することもあるので、図１３(A) に示すように、たとえ読み取りが成功してもその出力期間が（図１３(A) に示す13A1〜13A2）、図１３(B) に示すような読取失敗時の出力期間に近い長さになり得る可能性がある（図１３(B) に示す13B1〜13B3）。
【０１４６】
そして、このような場合には、当該二次元コードリーダ２０等の使用者は、読取成功時のビープ音として、「ピーッ」といった比較的長くて読取失敗時のビープ音に似た長さのものを聴くことになるので、情報量が比較的少ない読取成功時の「ピロッ」といったビープ音に比べて違和感を覚えたり、また読み取りを失敗したものと誤解することがある。
【０１４７】
つまり、第１，２実施形態に係る二次元コードリーダ２０等では、二次元コードの読取処理において、当該コードの一部のデコードが成功すると、残りのデコードの完了を待つことなく先行して報知処理を開始するように構成したことから（Ｓ１１１；ＹｅｓでＳ１１３）、残部のデコードに時間がかかる場合には、その分、報知処理の終了が遅れてしまう（Ｓ１２３）。その結果、残部のデコードにそれほど時間がかからない場合に比べ、ビープ音等が間延びするので、使用者に違和感や誤解を与え得るという技術的な課題が存在する。
【０１４８】
そこで、本第３実施形態に係る二次元コードリーダでは、このような読取成功時におけるビープ音等の間延びを解消するため、二次元コード２０等の読取処理として、図１０〜図１２に示すものを構成することとした。以下、本第３実施形態に係る読取処理を図１０〜図１５に基づいて説明する。なお、図１０において、図５に示す読取処理と同一の構成部分には同一符号を付し説明を省略する。
【０１４９】
図１０に示すように、本第３実施形態に係る読取処理では、まず、ステップＳ１０１によりコード画像取得処理が行われ、続くステップＳ１０３により位置検出パターンの検出処理が行われて、位置検出パターンが検出できた場合には（Ｓ１０５；Ｙｅｓ）、ステップＳ１０７によるマスク解除処理が、また位置検出パターンが検出できていない場合には（Ｓ１０５；Ｎｏ）、後述するステップＳ８１９による報知処理２の起動処理が、それぞれ行われる。そして、ステップＳ１０７によるマスク解除処理が済むとステップＳ１０９により一部デコード処理が行われて、一部デコードが成功しなかった場合には（Ｓ１１１；Ｎｏ）、後述するステップＳ８１９による報知処理２の起動処理が行われる。
【０１５０】
このようにステップ１０１からステップＳ１１１までは、図５に示す第１実施形態に係る二次元コードリーダ２０の読取処理と同様に行われる。また、図１０に示すように、ステップＳ１１５からステップＳ１２１までの各処理も、第１実施形態に係る二次元コードリーダ２０の読取処理と同様に行われる。
【０１５１】
即ち、ステップＳ１１５により残部デコード処理が終了し、残部デコードが成功した場合には（Ｓ１１７；Ｙｅｓ）、続くステップＳ１１９により一部デコードしたデコード結果と残部デコードしたデコード結果とを結合する処理が行われ、これにより結合されたデコード結果をステップＳ１２３により出力装置に出力する処理が行われる。また、残部デコードが失敗した場合には（Ｓ１１７；Ｎｏ）、デコード結果としてその旨を示す失敗コードを出力装置に出力する。このとき、図１１を参照して後述するように、ステップＳ１０７０による判断でデコード失敗時の処理を行う（Ｓ１０８０，Ｓ１０９０）。
【０１５２】
このようにステップＳ１０１からステップＳ１１１までと、ステップＳ１１５以降は、前述した二次元コードリーダ２０等の読取処理と同様に構成しているが、本第３実施形態では、ステップＳ１１１以降ステップＳ１１５以前までの各処理を次のように変更した。
【０１５３】
図１０に示すように、ステップＳ１１１により一部デコードが成功したと判断されると（Ｓ１１１；Ｙｅｓ）、続くステップＳ８１０では、残部デコード推定時間の計算処理を行う。この処理は、ステップＳ１０１により取得されたコード画像に基づいて行われるもので、例えば、当該二次元コードのコード画像から解析されるコードの種別（ＱＲコード、ＰＤＦ４１７、データマトリックス、マキシコード、ＲＳＳコンポジット等の各種コードシンボル）、当該コードに含まれるデータ量、コードの誤り訂正レベル等に基づいて、予め用意されたデータベース等を参照することによって推定される。
【０１５４】
例えば、当該二次元コードのコード画像から解析されるコードの種別がＱＲコードである場合には、前述したように、ＱＲコードの先頭から数文字相当分を読み出すことにより、当該ＱＲコードに含まれているデータが、数字、英数字、バイナリデータおよび漢字のいずれに相当するものであるか、また誤り訂正レベルやデータビット数（データ量）を判別することができる（図４(c) 参照）。
【０１５５】
このため、４０型（１７７×１７７セル）のＱＲコードで、誤り訂正レベルが「Ｈ」のものであれば、データ量は１０２０８ビットであるため、このようなＱＲコードをデコードするのに要する時間を、既存の１０００種類のコード画像をデコードして得られた１０００サンプル分のデコード時間を統計処理したものから、標準的なデコード時間を求め、これをメモリ３５に記憶しておき、これに基づいて未デコード分に対応する残部デコードに要する時間を推定する。例えば、４０型のＱＲコードの標準的なデコード時間が８００ｍＳecである場合に、全体（１００％）に対する残部デコードの割合が６０％であるときには、４８０ｍＳec（＝８００ｍＳec×０．６）となる。なお、この標準的なデコード時間は、二次元コードリーダ２０等を構成するＣＰＵの処理速度やメモリのアクセス速度等によって左右される。
【０１５６】
また、当該コードに含まれるデータ量のほかに、当該コード画像の画像品質に基づいて残部デコード推定時間の計算処理を行っても良い。具体的には、当該コード画像の画像品質を解析することによって得られるコードの歪み、かすれ、にじみ、白・黒の明暗差のそれぞれの度合いや、ＱＲコードであれば、位置検出要素パターン（切り出しシンボルともいう（図４(A) 参照））の存在が隅の３箇所に認識できない場合、また位置検出要素パターンを構成する白・黒のセルが、黒、白、黒、白、黒の順番で同色セルの連続比率が１：１：３：１：１になっていない場合、さらに正方形状であるべきＱＲコードの四辺Ｓ１〜Ｓ４の各長さが大きく異なる場合（図４(B) 参照）、等々、様々なコード画像をデコードしてデコード時間のサンプルデータを得る。そして、これを統計処理して得られた標準的なデコード時間をメモリ３５に記憶しておき、これに基づいて未デコード分に対応する残部デコードに要する時間を推定する。
【０１５７】
このようにしてステップＳ８１０により算出された残部デコード推定時間を、次のステップＳ８１１により成功時報知時間と比較する。「成功時報知時間」とは、ステップＳ１０９による一部デコードおよびステップＳ１１５による残部デコードのいずれもに成功した場合に連続して報知出力されるべき時間のことで、例えば、図１４(A) に示すように、時間ｔ１（５０ｍＳec）の短い期間が設定される。報知出力は、ビープ音である場合には、時間ｔ１（５０ｍＳec）の「ピッ」という鳴動音に相当する時間になる。
【０１５８】
そして、ステップＳ８１０により、残部デコード推定時間が成功時報知時間ｔ１よりも大きい（長い）と判断された場合には（Ｓ８１１；Ｙｅｓ）、残部のデコードに時間が成功時報知時間ｔ１よりもかかることになるので、その分、報知処理の開始を遅らせる必要から、次のステップＳ８１３により報知待ち時間の算出を行う。例えば、図１４(B) に示すように、残部デコード推定時間ｔ２が９０ｍＳecである場合には、このｔ２（９０ｍＳec）からｔ１（５０ｍＳec）を減算した値ｔ３である４０ｍＳec（＝９０ｍＳec−５０ｍＳec）が報知待ち時間となる。
【０１５９】
これに対し、ステップＳ８１０により、残部デコード推定時間が成功時報知時間ｔ１よりも大きい（長い）と判断されない場合には（Ｓ８１１；Ｎｏ）、成功時報知時間ｔ１内で、残部デコードが終了する可能性が高いので、報知処理の開始を遅らせる必要がない。このため、特に、ステップＳ８１５により報知待ち時間を求めることなく、ステップＳ８１７に処理を移行する。
【０１６０】
ステップＳ８１７では、報知処理１を起動させる処理を行う。この報知処理１は、当該読取処理と並列に実行されるものであるため、ここからは、図１１を参照して説明する。図１１に示すように、報知処理１では、まずステップＳ１０１０によりカウンタをリセットする処理を行い、続くステップＳ１０２０により前述した報知待ち時間ｔ３を超えるまでループする（Ｓ１０２０；Ｎｏ）。そして、報知待ち時間ｔ３を超えると（Ｓ１０２０；Ｙｅｓ）、ステップＳ１０３０により報知を開始し、次いでカウンタをリセットする。
【０１６１】
そして、ステップＳ１０５０により図１０に示すメインルーチンのデコード処理が終わるまでループして待つ（Ｓ１０５０；Ｙｅｓ）。例えば、図１５(A) に示すように、残部デコード推定時間ｔ２が９０ｍＳecであるにもかかわらず、それを超えて残部デコード処理を行っている場合には、その残部デコード処理にかかった時間ｔ４（１００ｍＳec）から残部デコード推定時間ｔ２（９０ｍＳec）を減算した値１０ｍＳec（＝１００ｍＳec−９０ｍＳec）を超えるまでループして待つ（Ｓ１０５０；Ｙｅｓ）。
【０１６２】
デコード処理が終わると（Ｓ１０５０；Ｎｏ）、さらに報知時間ｔ１を超えるまでループして待つ（Ｓ１０６０；Ｎｏ）。例えば、図１４(A) に示すように、残部デコード推定時間ｔ２が４０ｍＳecである場合には、このｔ２（４０ｍＳec）を報知時間ｔ１（５０ｍＳec）から減算した値１０ｍＳec（＝５０ｍＳec−４０ｍＳec）だけ待つことになる。また、例えば、図１５(B) に示すように、残部デコード推定時間ｔ２が９０ｍＳecであるにもかかわらず、それを下回って速くに残部デコード処理を終えている場合には、その残部デコード処理にかかった時間ｔ４（７０ｍＳec）を残部デコード推定時間ｔ２（９０ｍＳec）から減算した値２０ｍＳec（＝９０ｍＳec−７０ｍＳec）を超えるまでループして待つ（Ｓ１０６０；Ｎｏ）。これにより、ビープ音が読取り成功時相当に延長して出力されるため、極端に短いビープ音になることなく、このような場合における違和感を与え難くすることができるので読み取りフィーリングを向上することができる。
【０１６３】
即ち、図１０に示すメインルーチンのステップＳ１１５による残部デコード処理の結果からデコードが成功したか否（失敗）かを判断して（Ｓ１０７０）、デコードに成功している場合には、ステップＳ１１００に処理を移行して報知を終了する。一方、デコードに失敗している場合には、ステップＳ１０８０によりカウンタをリセットする処理を行い、続くステップＳ１０９０により失敗報知時間ｔ９を超えるまでループする（Ｓ１０９０；Ｎｏ）。そして、失敗報知時間ｔ９を超えると（Ｓ１０９０；Ｙｅｓ）、ステップＳ１１００に処理を移行して報知を終了する。なお、「失敗報知時間」は、前述した「成功報知時間」に比べて十分に長い時間で、例えば成功報知時間ｔ１（５０ｍＳec）の１０倍〜２０倍（５００ｍＳec〜１０００ｍＳec）に設定されている。
【０１６４】
このように報知処理１は、図１０に示すメインルーチンのステップＳ８１７により起動されて報知出力を完了すると終了するが、同様に、メインルーチンの読取処理と並列に実行される報知処理２を図１２を参照して説明する。図１２に示すように、報知処理２では、まずステップＳ１２１０によりカウンタをリセットする処理を行い、続くステップＳ１２２０により報知を開始した後、ステップＳ１２３０により失敗報知時間ｔ９を超えるまでループする（Ｓ１２３０；Ｎｏ）。そして、失敗報知時間ｔ９を超えると（Ｓ１２３０；Ｙｅｓ）、ステップＳ１２４０に処理を移行して報知を終了する。なお、この「失敗報知時間」も、ステップＳ１０９０のものと同様に、前述した「成功報知時間」に比べて十分に長い時間で、例えば成功報知時間ｔ１（５０ｍＳec）の１０倍〜２０倍（５００ｍＳec〜１０００ｍＳec）に設定されている。
【０１６５】
ここで、図１０のメインルーチンである読取処理に戻ると、ステップＳ８１７により報知処理１を起動した後、前述したように、ステップＳ１１５により残部デコード処理を行った後、ステップＳ１１７〜Ｓ１２１の各処理を経て本読取処理を終了する。なお、ステップＳ８１９で起動する報知処理２は、図１２を参照して説明した通りである。
【０１６６】
以上説明したように、本第３実施形態に係る二次元コードリーダ２０等では、制御回路４０等により読み取られたコード画像に基づいて残部デコード推定時間の算出処理（Ｓ８１０）が残部のコードを読み取るのに要するデコード推定時間ｔ２を推定し、これにより推定された時間ｔ２がブザー４４により成功時報知時間ｔ１よりも長い場合には（Ｓ８１１；Ｙｅｓ）、両時間差の期間ｔ３（ｔ２−ｔ１）、ブザー４４による成功時報知時間ｔ１の出力開始時期を報知処理１（Ｓ１０２０のループ）により遅らせる。これにより、デコード推定時間ｔ２がブザー４４による成功時報知時間ｔ１よりも長い場合には、その両時間差分ｔ３、当該成功時報知を遅れて出力するため、例えば、読取対象となるＱＲコードに含まれるデータ量が非常に多く、残部のコードのデコード推定時間ｔ２が、読取りエラー時に出力される失敗時報知時間ｔ９よりも長い場合であっても、このような長い時間、成功時報知が連続出力されることがないので、このような場合における違和感を与え難くすることができる。したがって、残部のコードのデコード推定時間ｔ２が、読取りエラー時に出力される失敗時報知時間ｔ９よりも長い場合であっても、読み取りフィーリングを向上することができる。
【０１６７】
［第４実施形態］
次に、前述した第１〜３実施形態の改変例にあたる、本発明の光学情報読取装置を二次元コードリーダに適用した第４実施形態を図３，図４，図１４〜図１８に基づいて説明する。  
【０１６８】
二次元コード（例えばＱＲコード）は、前述したように、コードサイズの大小等によってそれにコード化されている情報量が異なることから、コード画像の全部の読み取りに要する時間、つまりデコード時間が、長くなったり短くなったりする。このため、読み取り可能である場合に、ブザーのビープ音等により使用者にその旨の告知を開始し、読み取り完了時にビープ音等を停止するといった処理を採用すると、大量の情報をデコードしなければならないときには、ビープ音等の開始から停止までに相当の時間を要することから、ビープ音等が長くなってしまい、読み取りエラー時に出力する長めのビープ音等と使用者が誤解する可能性がある。
【０１６９】
そこで、本第４実施形態では、このような点を改良すべく、図１６に示す二次元コードの読取処理を採用している。なお、本第４実施形態に係る二次元コードリーダの構成は、前述した第１実施形態に係る二次元コードリーダ２０と実質的に同一である。このため、ここでは二次元コードリーダの構成を示すブロック図およびそれらの説明を省略する。
【０１７０】
図１６に示すように、本第４実施形態に係る二次元コードの読取処理では、まずステップＳ１０１によりコード画像取得処理が行われる。この処理は、受光センサ２３に検出されてメモリ３５の画像データ蓄積領域に蓄積されたコード画像を当該領域から取得するもので、取得されたコード画像は次の位置検出パターン検出処理に渡される。
【０１７１】
次のステップＳ１０３では、位置検出パターン検出処理が行われる。この処理は、ＱＲコードに特有の３つの位置検出要素パターンの存在を当該コード画像中で検出することにより、読取対象となる情報コードＱがＱＲコードであるか否かを判断したり、そのコード領域を検出可能にするものである。ＱＲコードの位置検出要素パターンの例等は、図４を参照して前述した通りであるので、ここでは省略する。
【０１７２】
ステップＳ１０３により、コード画像において位置検出パターンを検出すると、続くステップＳ１０５’では、位置検出パターンを検出できたか否かを判断する処理が行われる。この処理は、ステップＳ１０３により、ＱＲコードの３箇所の隅に配置される位置検出要素パターンＦＰを全て検出することができたか否かを確認するもので、位置検出パターンを検出できた場合には（Ｓ１０５’；Ｙｅｓ）、次のステップＳ１０７に処理を移行し、位置検出パターンを検出できていない場合には（Ｓ１０５’；Ｎｏ）、この段階で読み取りエラーを起こしていることがわかるので、前述したステップＳ１０１に処理を移行して再度、コード画像取得処理が行われる。
【０１７３】
ステップＳ１０７では、マスク解除処理が行われる。この処理では、図４を参照して説明したように、位置検出要素パターンの同色セルの連続比率である１：１：３：１：１に相当するセルの列びを当該コード領域内に存在しないように施されたマスク処理による明暗のバランス調整を解除する。
【０１７４】
続くステップＳ１０９では一部デコード処理が行われる。この処理は、読取対象となるＱＲコードの一部分（一部）を残りの部分（残部）に先行してデコードする処理で、この処理の流れは、図３(A) を参照して前述した通りであるので、ここでは省略する。
【０１７５】
ステップＳ１１１’では、一部デコードが成功したか否かを判断する処理が行われる。ステップＳ１０９の一部デコード処理によってメモリ３５の所定の作業領域には一部デコードされたデコード結果が格納されているので、この処理では、このデコード結果に基づいて一部デコードは成功したか否かを判断する。
【０１７６】
そして、一部デコードが成功したと判断される場合には（Ｓ１１１’；Ｙｅｓ）、続くステップＳ８１０に処理を移行して残部デコード推定時間の計算処理を行う。これに対し、一部デコードが成功したと判断されない場合、つまり一部デコードが失敗した場合には（Ｓ１１１’；Ｎｏ）、読み取りエラーを起こしていることになるので、前述したステップＳ１０１に処理を移行して再度、コード画像取得処理が行われる。これにより、図１８(B) に示すように、一部デコードが読み取りエラーをしている場合でも（同図に示す(18B1)）、読み取りエラーを使用者に知らせることなく一部デコードを自動的に再度試行するので（同図に示す(18B2)）、当該使用者の操作負担を軽減することができる。
【０１７７】
続くステップＳ８１０では、残部デコード推定時間の計算処理が行われる。この処理は、ステップＳ１０１により取得されたコード画像に基づいて行われるもので、例えば、当該二次元コードのコード画像から解析されるコードの種別（ＱＲコード、ＰＤＦ４１７、データマトリックス、マキシコード、ＲＳＳコンポジット等の各種コードシンボル）、当該コードに含まれるデータ量、コードの誤り訂正レベル等に基づいて、予め用意されたデータベース等を参照することによって推定される。詳細は、図４(C) を参照して前述した通りであるので、ここでは省略する。
【０１７８】
ステップＳ８１０により算出された残部デコード推定時間を、次のステップＳ８１１により成功時報知時間と比較する。「成功時報知時間」とは、ステップＳ１０９による一部デコードおよびステップＳ１１５による残部デコードのいずれもに成功した場合に連続して報知出力されるべき時間のことで、例えば、図１４(A) に示すように、時間ｔ１（５０ｍＳec）の短い期間が設定される。報知出力は、ビープ音である場合には、時間ｔ１（５０ｍＳec）の「ピッ」という鳴動音に相当する時間になる。なお、この「成功時報知時間」は、特許請求の範囲に記載の「報知基準時間」に相当し得るものである。
【０１７９】
そして、ステップＳ８１０により、残部デコード推定時間が成功時報知時間ｔ１よりも大きい（長い）と判断された場合には（Ｓ８１１；Ｙｅｓ）、残部のデコードに時間が成功時報知時間ｔ１よりもかかることになるので、その分、報知処理の開始を遅らせる必要から、次のステップＳ８１３により報知待ち時間の算出を行う。例えば、図１４(B) に示すように、残部デコード推定時間ｔ２が９０ｍＳecである場合には、このｔ２（９０ｍＳec）からｔ１（５０ｍＳec）を減算した値ｔ３である４０ｍＳec（＝９０ｍＳec−５０ｍＳec）が報知待ち時間となる。
【０１８０】
これに対し、ステップＳ８１０により、残部デコード推定時間が成功時報知時間ｔ１よりも大きい（長い）と判断されない場合には（Ｓ８１１；Ｎｏ）、成功時報知時間ｔ１内で、残部デコードが終了する可能性が高いので、報知処理の開始を遅らせる必要がない。このため、特に、ステップＳ８１５により報知待ち時間を求めることなく、ステップＳ８１７’に処理を移行する。
【０１８１】
ステップＳ８１７’では、報知処理３を起動させる処理を行う。この報知処理３は、当該読取処理と並列に実行されるものであるため、ここからは、図１７を参照して説明する。図１７に示すように、報知処理３では、まずステップＳ１０１０によりカウンタをリセットする処理を行い、続くステップＳ１０２０により前述した報知待ち時間ｔ３を超えるまでループする（Ｓ１０２０；Ｎｏ）。そして、報知待ち時間ｔ３を超えると（Ｓ１０２０；Ｙｅｓ）、ステップＳ１０２２によりデコード処理中であるか否かを判断する。
【０１８２】
つまり、ステップＳ１０２２により図１６に示すメインルーチンのデコード処理が終わっているか否かを判断し、デコード処理が終わっている（デコード処理を終了している）場合には（Ｓ１０２２；Ｎｏ）、ステップＳ１０２４によりデコード結果を判断する。そして、図１６に示すメインルーチンのステップＳ１１５による残部デコード処理の結果から、デコードに成功している場合には（Ｓ１０２４；成功）、ステップＳ１０２８に処理を移行する。
【０１８３】
一方、デコードに成功していない場合には（Ｓ１０２４；失敗）、ステップＳ１０２６により報知処理の未実施を記録する処理（例えば、レジスタ等による報知フラグをオフする処理）を行った後、本報知処理３を終了する。
【０１８４】
これに対し、デコード処理が終わっていない（デコード処理中の）場合には（Ｓ１０２２；Ｙｅｓ）、ステップＳ１０２８に処理を移行して、報知処理の実行を記録する処理（例えば、レジスタ等による報知フラグをオンする処理）を行う。これにより、図１６に示すメインルーチンでは、本報知処理３によって報知が行われたか否かを把握可能となる。
【０１８５】
続くステップＳ１０３０では、報知処理を開始する処理が行われる。報知処理は、デコードに成功した旨を示す報知出力（所定報知の連続出力）をブザー４４等の出力装置に出力するもので、ここではその開始を指示する。例えば、当該出力装置が、ブザー４４である場合には連続したビープ音、ＬＥＤ４３である場合には緑色発光、液晶表示装置４６である場合には「ＯＫ」の文字、といった内容の出力開始命令を該当する出力装置に出力する。この処理は、図１８(A) に示す(18A1)、図１８(B) に示す(18B1)や図１８(C) に示す(18C1)のタイミングに行われる。
【０１８６】
そして、ステップＳ１０４０によりカウンタをリセットする処理が行われると、続くステップＳ１０５０により図１６に示すメインルーチンのデコード処理が終わるまでループして待つ（Ｓ１０５０；Ｙｅｓ）。例えば、図１５(A) を参照して述べたように、残部デコード推定時間ｔ２が９０ｍＳecであるにもかかわらず、それを超えて残部デコード処理を行っている場合には、その残部デコード処理にかかった時間ｔ４（１００ｍＳec）から残部デコード推定時間ｔ２（９０ｍＳec）を減算した値１０ｍＳec（＝１００ｍＳec−９０ｍＳec）を超えるまでループして待つ（Ｓ１０５０；Ｙｅｓ）。
【０１８７】
デコード処理が終わると（Ｓ１０５０；Ｎｏ）、さらに報知時間ｔ１を超えるまでループして待つ（Ｓ１０６０；Ｎｏ）。例えば、図１４(A) に示すように、残部デコード推定時間ｔ２が４０ｍＳecである場合には、このｔ２（４０ｍＳec）を報知時間ｔ１（５０ｍＳec）から減算した値１０ｍＳec（＝５０ｍＳec−４０ｍＳec）だけ待つことになる。また、例えば、図１５(B) に示すように、残部デコード推定時間ｔ２が９０ｍＳecであるにもかかわらず、それを下回って速くに残部デコード処理を終えている場合には、その残部デコード処理にかかった時間ｔ４（７０ｍＳec）を残部デコード推定時間ｔ２（９０ｍＳec）から減算した値２０ｍＳec（＝９０ｍＳec−７０ｍＳec）を超えるまでループして待つ（Ｓ１０６０；Ｎｏ）。これにより、ビープ音が読取り成功時相当に延長して出力されるため、極端に短いビープ音になることなく、このような場合における違和感を与え難くすることができるので読み取りフィーリングを向上することができる。
【０１８８】
即ち、図１６に示すメインルーチンのステップＳ１１５による残部デコード処理の結果からデコードが成功したか否（失敗）かを判断して（Ｓ１０７０）、デコードに成功している場合には、ステップＳ１１００に処理を移行して報知を終了する。一方、デコードに失敗している場合には、ステップＳ１０８０によりカウンタをリセットする処理を行い、続くステップＳ１０９０により失敗報知時間ｔ９を超えるまでループする（Ｓ１０９０；Ｎｏ）。そして、失敗報知時間ｔ９を超えると（Ｓ１０９０；Ｙｅｓ）、ステップＳ１１００に処理を移行して報知を終了する。なお、「失敗報知時間」は、前述した「成功報知時間」に比べて十分に長い時間で、例えば成功報知時間ｔ１（５０ｍＳec）の１０倍〜２０倍（５００ｍＳec〜１０００ｍＳec）に設定されている。
【０１８９】
ここで、図１６のメインルーチンである読取処理に戻ると、ステップＳ１１５により残部デコード処理が行われる。この処理は、既に説明したように、ステップＳ１０９により先に読み取ったＱＲコードの一部分（一部）に対する残りの部分（残部）をデコードするものである。詳細は、図３(B) を参照して前述した通りであるので、ここでは省略する。
【０１９０】
続くステップＳ１１７’では、残部デコードが成功したか否かを判断する処理が行われる。ステップＳ１１５の残部デコード処理によってメモリ３５の所定の作業領域には残部デコードされたデコード結果が格納されているので、この処理では、このデコード結果に基づいて残部デコードは成功したか否かを判断する。そして、残部デコードが成功したと判断される場合には（Ｓ１１７’；Ｙｅｓ）、続くステップＳ１１９に処理を移行してデコード結果結合処理を行う。
【０１９１】
これに対し、残部デコードが成功したと判断されない場合、つまり残部デコードが失敗した場合には（Ｓ１１７’；Ｎｏ）、読み取りエラーを起こしていることになるので、ステップＳ１１８により報知処理を実施したか否かを判断する処理が行われる。
【０１９２】
即ち、前述した報知処理３によって、報知処理の実行を記録する処理（例えば、レジスタ等による報知フラグをオンする処理；Ｓ１０２８）または報知処理の未実施を記録する処理（例えば、レジスタ等による報知フラグをオフする処理；Ｓ１０２６）が行われているので、この記録を参照する（読み出す）ことで、報知処理の実施の有無を判断する。
【０１９３】
そして、報知処理が実施されている場合には（Ｓ１１８；Ｙｅｓ）、ブザー４４等によるビープ音等を出力した状態でステップＳ１２１に処理移行し（図１８(C) に示す(18C2)のタイミング）、報知処理が実施されていない場合には（Ｓ１１８；Ｎｏ）、先頭のステップＳ１０１に処理を移行して再度、コード画像取得処理が行われる。
【０１９４】
ステップＳ１１９では、デコード結果結合処理が行われる。この処理は、一部デコード処理（Ｓ１０９）によりデコードされた結果（一部読取情報）と残部デコード処理（Ｓ１１５）によりデコードされた結果（残部読取情報）とを連結することによって、読取対象となるコード画像の全部のデコード結果（全部読取情報）を当該ＱＲコードの読取結果として生成するもので、詳細は図４等を参照して既に説明した通りである。
【０１９５】
次のステップＳ１２１では、デコード結果出力処理が行われる。この処理は、ステップＳ１１９により生成した当該ＱＲコードの読取結果等を液晶表示装置４６や通信インタフェース４８に出力するものである。即ち、ＱＲコードの読み取りに成功した場合には（Ｓ１１１’；Ｙｅｓ、Ｓ１１７’；Ｙｅｓ）、その旨を示す成功コードとデコード後の解読データ（読取結果）を出力する。例えば、出力装置が、液晶表示装置４６である場合には解読データの内容を表示し、ホストコンピュータＨＳＴである場合には成功コードおよび解読データ（読取結果）を通信インタフェース４８を介して出力する（図１８(A) に示す(18A2)、図１８(B) に示す(18B3)や図１８(C) に示す(18C3)のタイミング）。
【０１９６】
以上説明したように本第４実施形態による二次元コードリーダ２０等によると、メモリ３５および制御回路４０により、受光センサ２３および結像レンズ２７により検出されたＱＲコードのコード画像の一部を取り出し、少なくとも当該一部のコード画像の読み取りを試み（Ｓ１０１、Ｓ１０３、１０７、Ｓ１０９）、読み取り可能であり（Ｓ１１１’；Ｙｅｓ）、残部デコードを処理している（デコード処理中）場合には（Ｓ１０２２；Ｙｅｓ）、ブザー４４、ＬＥＤ４３または液晶表示装置４６により、制御回路４０等による判断結果（ブザー４４は連続したビープ音、ＬＥＤ４３は緑色発光、液晶表示装置４６は「ＯＫ」の文字）を、制御回路４０等がコード画像の全部を読み取る（Ｓ１１９）前に使用者に対する報知を開始し（Ｓ１０３０）、当該一部のコード画像の読み取りが不能であったり（Ｓ１１１’；Ｎｏ）、当該一部のコード画像の読み取りに成功しても残部デコードに失敗した場合には（Ｓ１０２４；失敗）、ビープ音等による報知を開始することなく、当該一部のコード画像の読み取りを再度試み（Ｓ１０１）、読み取り可能であるか否かを判断する（Ｓ１１１’）。
【０１９７】
これにより、ＱＲコードのコード画像の全部を読み取ってから読み取りに成功すると判断する場合に比べてレスポンス良く読み取りの可否を早く使用者に知らせることが可能となる。また、ＱＲコードの一部のコード画像の読み取りが可能でない場合には、読み取りの不能を使用者に知らせることなく、一部のコード画像の読み取りを自動的に再度試行するので、使用者に再読み取りの操作負担を強いることがない。したがって、当該二次元コードリーダの使用者は、読取対象となるＱＲコードのデータ量が多くても、当該ＱＲコードの読み取りが成功することを早期に把握できるので、ビープ音の鳴動、ＬＥＤの点灯または液晶画面の表示がいつもよりも遅れて出てくるという違和感を与えることなく読み取りフィーリングを向上させることができる。
【０１９８】
また、本第４実施形態による二次元コードリーダ２０等によると、制御回路４０等により読み取られた一部のコード画像に対する一部デコード処理（Ｓ１０９）によるデコード結果と残部のコード画像に対する残部デコード処理（Ｓ１１５）によるデコード結果とを連結することによって（Ｓ１１９）、読取対象となるコード画像の全部のデコード結果を当該ＱＲコードの解読データとして出力する。これにより、制御回路４０等により読み取られた一部デコード処理（Ｓ１０９）によるデコード結果を無駄なく使用するので、制御回路４０等がコード画像の全部を再度読み取る場合に比べて、確定的な読み取り結果を早く出力することができる。
【０１９９】
さらに、本第４実施形態に係る二次元コードリーダ２０等では、制御回路４０等により読み取られたコード画像に基づいて残部デコード推定時間の算出処理（Ｓ８１０）が残部のコードを読み取るのに要するデコード推定時間ｔ２を推定し、これにより推定された時間ｔ２がブザー４４により成功時報知時間ｔ１よりも長い場合には（Ｓ８１１；Ｙｅｓ）、両時間差の期間ｔ３（ｔ２−ｔ１）、ブザー４４による成功時報知時間ｔ１の出力開始時期を報知処理３（Ｓ１０２０のループ）により遅らせる。これにより、デコード推定時間ｔ２がブザー４４による成功時報知時間ｔ１よりも長い場合には、その両時間差分ｔ３、当該成功時報知を遅れて出力するため、例えば、読取対象となるＱＲコードに含まれるデータ量が非常に多く、残部のコードのデコード推定時間ｔ２が、読取りエラー時に出力される失敗時報知時間ｔ９よりも長い場合であっても、このような長い時間、成功時報知が連続出力されることがないので、このような場合における違和感を与え難くすることができる。したがって、残部のコードのデコード推定時間ｔ２が、読取りエラー時に出力される失敗時報知時間ｔ９よりも長い場合であっても、読み取りフィーリングを向上することができる。
【０２００】
なお、図１７に示すブザー４４による成功時報知時間ｔ１の出力開始時期を報知処理３（Ｓ１０２０のループ）により遅らせている期間内に、図１６に示すメインルーチンのデコード処理（Ｓ１１５）が失敗に終わった場合にも、ステップＳ１０２６により報知処理の未実施を記録する処理を行った後、報知処理３を終了するように構成しても良い。これにより、不要な報知をしないので、残部デコードが失敗したにもかかわらず、ビープ音等が出力されるようなことを防ぐので、読み取りフィーリングを向上することができる。
【０２０１】
なお、上述した第３，４実施形態では、情報コードの例として、ＱＲコードを例示して説明したが、二次元コードであればこれに限られることはなく、例えば、ＰＤＦ４１７、データマトリックス、マキシコード、ＲＳＳコンポジット等の各種のコードシンボルでも、上述同様の作用および効果を得ることができる。
【図面の簡単な説明】
【０２０２】
【図１】本発明の第１実施形態に係る二次元コードリーダの構成を示すブロック図である。
【図２】本第１実施形態の二次元コードリーダによる二次元コードの読取処理の流れを示すフローチャートである。
【図３】図３(A) は、図２に示す読取処理における一部デコード処理の流れを示すフローチャートで、図３(B) は、図２に示す読取処理における残部デコード処理の流れを示すフローチャートである。
【図４】図４(A) はＱＲコードの位置検出要素パターンの構造を示す説明図、図４(B) はＱＲコードのコード外形の一例を示す説明図で、図４(C) はＱＲコードの所定仕様を示すコードワードテーブルの一例を示す説明である。
【図５】図２に示す読取処理における読み取り処理と報知出力との関係を示すタイミングチャートで、図５(A) は読取正常時のもの、図５(B) 、図５(C) は読取異常時のものである。
【図６】本発明の第２実施形態に係る一次元コードリーダによる一次元コードの読取処理の流れを示すフローチャートである。
【図７】図７(A) は、図６に示す読取処理における一部デコード処理の流れを示すフローチャートで、図７(B) は、図６に示す読取処理における残部デコード処理の流れを示すフローチャートである。
【図８】図７(A) および図７(B) に示す各処理における部分デコード処理の流れを示すフローチャートである。
【図９】読取対象となるバーコード、その仮想的な外形枠、スキャンライン、スキャン方向等を示す説明図である。
【図１０】本発明の第３実施形態の二次元コードリーダによる二次元コードの読取処理の流れを示すフローチャートである。
【図１１】図１０に示す報知処理１の流れを示すフローチャートである。
【図１２】図１０に示す報知処理２の流れを示すフローチャートである。
【図１３】図１３(A) は、図２に示す読取処理において読取成功時でも報知出力期間が長い場合の例を示すタイミングチャートで、図１３(B) は、図２に示す読取処理において読取失敗時の報知出力期間の例を示すタイミングチャートで、図１３(A) と対比可能に示すものである。
【図１４】図１４(A) は、図１０に示す読取処理においてデコード推定時間が読取成功時の出力期間よりも短い場合の例を示すタイミングチャートで、図１４(B) は、同処理においてデコード推定時間が読取成功時の出力期間よりも長い場合の例を示すタイミングチャートである。
【図１５】図１５(A) は、図１０に示す読取処理においてデコード推定時間が読取成功時の出力期間よりも長く、実際のデコード時間が推定時間よりも長い場合の例を示すタイミングチャートで、図１５(B) は、同処理においてデコード推定時間が読取成功時の出力期間よりも長く、実際のデコード時間が推定時間よりも短い場合の例を示すタイミングチャートである。
【図１６】本発明の第４実施形態の二次元コードリーダによる二次元コードの読取処理の流れを示すフローチャートである。
【図１７】図１６に示す報知処理３の流れを示すフローチャートである。
【図１８】図１８(A) は、図１６に示す読取処理において読取成功時でも報知出力期間が長い場合の例を示すタイミングチャートで、図１８(B) は、図１６に示す読取処理において読取失敗時の報知出力期間の例を示すタイミングチャートで、図１８(A) と対比可能に示すものである。また、図１８(C) は、読取異常時のものである。
【符号の説明】
【０２０３】
２０…二次元コードリーダ（光学情報読取装置）
２１…照明光源
２３…受光センサ（検出手段）
２７…結像レンズ（検出手段）
３１…増幅回路（読取手段、残部読取手段）
３３…Ａ／Ｄ変換回路（読取手段、残部読取手段）
３５…メモリ（読取手段、一部判断手段、一部読取可否判断手段、残部読取手段、残部判断手段、結合手段、判断手段）
３６…アドレス発生回路（読取手段、残部読取手段）
３８…同期信号発生回路（読取手段、残部読取手段）
４０…制御回路（読取手段、一部判断手段、一部読取可否判断手段、残部読取手段、残部判断手段、結合手段、判断手段、残部読取時間推定手段、報知時期遅延手段、連続出力時間算出手段、出力期間延長手段）
４３…ＬＥＤ（報知手段）
４４…ブザー（報知手段）
４６…液晶表示装置（報知手段）
４８…通信インタフェース
ＨＳＴ…ホストコンピュータ
Ｌｆ…照明光
Ｌｒ…反射光
Ｑ…情報コード（二次元コード）
Ｒ…読取対象物
【図１】
2008181475.tif 000003
【図２】
2008181475.tif 000004
【図３】
2008181475.tif 000005
【図４】
2008181475.tif 000006
【図５】
2008181475.tif 000007
【図６】
2008181475.tif 000008
【図７】
2008181475.tif 000009
【図８】
2008181475.tif 000010
【図９】
2008181475.tif 000011
【図１０】
2008181475.tif 000012
【図１１】
2008181475.tif 000013
【図１２】
2008181475.tif 000014
【図１３】
2008181475.tif 000015
【図１４】
2008181475.tif 000016
【図１５】
2008181475.tif 000017
【図１６】
2008181475.tif 000018
【図１７】
2008181475.tif 000019
【図１８】
2008181475.tif 000020