(57)【要約】【課題】バーコード記号端部のエレメント幅を正確に表したバーコード信号を生成することができない場合であっても、バーコード記号を正確に読み取ることができるバーコード読取装置およびバーコード読取方法を提供すること。【解決手段】本発明にかかるバーコード読取装置１において、デコード処理部１０は、第１の処理方向に対応する第１のバーコード信号に対するデコードがバーコード記号の端部に位置する端部エレメントに起因して失敗した場合、第１のバーコード信号における端部エレメントに対応する信号を、第２の処理方向に対応する第２のバーコード信号における端部エレメントに対応する信号で置き換えて第１のバーコード信号を補完する補完処理を行い、補完した第１のバーコード信号を用いて再度デコードすることを特徴とする。【選択図】        図１
2008140255.tif 000002
【特許請求の範囲】
【請求項１】
記録された情報に応じた幅で各エレメントが表示されたバーコード記号の各エレメント幅を表すバーコード信号を生成する信号処理手段と、前記バーコード信号に表される各エレメント幅を計測した計測情報を用いて前記バーコード記号に記録された情報をデコードするデコード処理手段とを備えたバーコード読取装置において、
前記信号処理手段は、第１の処理方向で第１の前記バーコード信号を生成するとともに前記第１の処理方向と異なる方向である第２の処理方向で第２の前記バーコード信号を生成でき、
前記デコード処理手段は、前記第１のバーコード信号に対するデコードが前記バーコード記号の端部に位置する端部エレメントに起因して失敗した場合、前記第１のバーコード信号における前記端部エレメントに対応する信号を、前記第２のバーコード信号における前記端部エレメントに対応する信号で置き換えて前記第１のバーコード信号を補完する補完処理を行い、補完した前記第１のバーコード信号を用いて再度デコードすることを特徴とするバーコード読取装置。
【請求項２】
前記デコード処理手段は、前記補完処理として、前記第１のバーコード信号の第１の前記計測情報における前記端部エレメントの計測値を、前記第２のバーコード信号の第２の前記計測情報における前記端部エレメントの計測値で置き換えて前記第１の計測情報を補完し、補完した前記第１の計測情報を用いて再度デコードすることを特徴とする請求項１に記載のバーコード読取装置。
【請求項３】
前記デコード処理手段は、前記バーコード記号の所定の比較領域内のエレメントに対する前記第１の計測情報の計測値と前記第２の計測情報の計測値との差が所定の範囲であった場合に、前記補完処理を行なうことを特徴とする請求項２に記載のバーコード読取装置。
【請求項４】
前記所定の範囲は、変更可能であることを特徴とする請求項３に記載のバーコード読取装置。
【請求項５】
前記デコード処理手段は、前記バーコード記号の所定の比較領域内のエレメントに対する前記第１の計測情報の計測値と前記第２の計測情報の計測値とをもとに前記第１の計測情報における第１の閾値および前記第２の計測情報における第２の閾値を設定し、前記比較領域内の前記第１の計測情報における前記第１の閾値を超える計測値および前記第１の閾値を下回る計測値の第１の配列状態と、前記比較領域内の前記第２の計測情報における前記第２の閾値を超える計測値および前記第２の閾値を下回る計測値の第２の配列状態とが一致した場合、前記補完処理を行なうことを特徴とする請求項２に記載のバーコード読取装置。
【請求項６】
前記第１の閾値の数および前記第２の閾値の数は、変更可能であることを特徴とする請求項５に記載のバーコード読取装置。
【請求項７】
前記バーコード記号に前記第１の処理方向または前記第２の処理方向にしたがって走査光を照射し該バーコード記号における各領域から順次反射される反射光を受光する受光手段をさらに備え、
前記信号処理手段は、前記受光手段による前記第１の処理方向に対応する受光結果をもとに前記第１のバーコード信号を生成し、前記受光手段による前記第２の処理方向に対応する受光結果をもとに前記第２のバーコード信号を生成することを特徴とする請求項１〜６のいずれか一つに記載のバーコード読取装置。
【請求項８】
前記デコード処理手段は、前記受光手段における前記第１の処理方向の走査速度と前記第２の処理方向の走査速度とが異なる場合、前記第１の計測情報または前記第２の計測情報のいずれか一方を他方の計測情報における走査速度に対応させて補正した後に前記補完処理を行なうことを特徴とする請求項７に記載のバーコード読取装置。
【請求項９】
前記受光手段は、
光を発する光源と、
前記光源が発した光を前記第１の処理方向または前記第２の処理方向にしたがって前記バーコード記号上に走査させる走査手段と、
前記反射光を集光する集光手段と、
前記集光手段によって集光された光を順次受光して電気信号に変換し前記信号処理手段に出力する検出手段と、
を備え、
前記信号処理手段は、前記走査手段における走査処理を制御することを特徴とする請求項７または８に記載のバーコード読取装置。
【請求項１０】
前記バーコード記号全体に光を照射し該バーコード記号全体からの反射光を受光して該バーコード記号全体に対応する受光信号を生成する受光手段をさらに備え、
前記信号処理手段は、前記第１の処理方向にしたがい前記受光信号を変換することによって前記第１のバーコード信号を生成し、前記第２の処理方向にしたがい前記受光信号を変換することによって前記第２のバーコード信号を生成することを特徴とする請求項１〜６のいずれか一つに記載のバーコード読取装置。
【請求項１１】
前記第１の計測情報および前記第２の計測情報を記憶する記憶手段をさらに備えたことを特徴とする請求項２〜１０のいずれか一つに記載のバーコード読取装置。
【請求項１２】
前記記憶手段は、前記受光信号を記憶し、
前記信号処理手段は、前記記憶手段において記憶された前記受光信号を取得して前記第１のバーコード信号および／または前記第２のバーコード信号を生成することを特徴とする請求項１１に記載のバーコード読取装置。
【請求項１３】
前記比較領域は、変更可能であることを特徴とする請求項３〜１２のいずれか一つに記載のバーコード読取装置。
【請求項１４】
記録された情報に応じた幅で各エレメントが表示されたバーコード記号における各エレメント幅を表すバーコード信号を生成する信号処理ステップと、前記バーコード信号に表される各エレメント幅を計測した計測情報を用いて前記バーコード記号に記録された情報をデコードするデコード処理ステップとを含むバーコード読取方法において、
前記信号処理ステップは、
第１の処理方向で第１の前記バーコード信号を生成する第１の信号処理ステップと、
前記第１の処理方向と異なる方向である第２の処理方向で第２の前記バーコード信号を生成する第２の信号処理ステップと、
を含み、
前記デコード処理ステップは、
前記第１の信号処理ステップにおいて生成された前記第１のバーコード信号に対する第１のデコード処理ステップと、
前記第１のデコード処理ステップにおいて前記第１のバーコード信号に対するデコードが前記バーコード記号の端部に位置する端部エレメントに起因して失敗した場合、前記第１のバーコード信号における前記端部エレメントに対応する信号を、前記第２のバーコード信号における前記端部エレメントに対応する信号で置き換えて前記第１のバーコード信号を補完する補完ステップと、
前記補完ステップにおいて補完された前記第１のバーコード信号を用いて再度デコードする第２のデコード処理ステップと、
を含むことを特徴とするバーコード読取方法。
【請求項１５】
前記補完ステップは、前記第１のバーコード信号の第１の前記計測情報における前記端部エレメントの計測値を、前記第２のバーコード信号の第２の前記計測情報における前記端部エレメントの計測値で置き換えて前記第１の計測情報を補完し、
前記第２のデコード処理ステップは、前記補完ステップにおいて補完された前記第１の計測情報を用いて再度デコードすることを特徴とする請求項１４に記載のバーコード読取方法。
【請求項１６】
前記デコード処理ステップは、
前記バーコード記号の所定の比較領域内のエレメントに対する前記第１の計測情報の計測値と前記第２の計測情報の計測値との差が所定の範囲内であるか否かを判断する判断ステップを含み、
前記補完ステップは、前記判断ステップにおいて前記比較領域内のエレメントに対する前記第１の計測情報の計測値と前記第２の計測情報の計測値との差が所定の範囲内であると判断された場合に行なわれることを特徴とする請求項１５に記載のバーコード読取方法。
【請求項１７】
前記所定の範囲は、変更可能であることを特徴とする請求項１６に記載のバーコード読取方法。
【請求項１８】
前記デコード処理ステップは、
前記バーコード記号の所定の比較領域内のエレメントに対する前記第１の計測情報の計測値と前記第２の計測情報の計測値とをもとに前記第１の計測情報における第１の閾値および前記第２の計測情報における第２の閾値を設定する閾値設定ステップと、
前記比較領域内の前記第１の計測情報における前記第１の閾値を超える計測値および前記第１の閾値を下回る計測値の配列状態と、前記比較領域内の前記第２の計測情報における前記第２の閾値を超える計測値および前記第２の閾値を下回る計測値の第２の配列状態とを求める配列状態取得ステップと、
前記第１の配列状態と前記第２の配列状態が一致するか否かを判断する配列状態判断ステップと、
前記配列状態判断ステップにおいて前記第１の配列状態と前記第２の配列状態が一致したと判断された場合、前記補完ステップを行なうことを特徴とする請求項１５に記載のバーコード読取方法。
【請求項１９】
前記第１の閾値の数および前記第２の閾値の数は、変更可能であることを特徴とする請求項１８に記載のバーコード読取方法。
【請求項２０】
前記バーコード記号に前記第１の処理方向または前記第２の処理方向にしたがって走査光を照射し該バーコード記号における各領域から順次反射される反射光を受光する受光ステップをさらに含み、
前記第１の信号処理ステップは、前記受光ステップによる前記第１の処理方向に対応する受光結果をもとに前記第１のバーコード信号を生成し、
前記第２の信号処理ステップは、前記受光手段による前記第２の処理方向に対応する受光結果をもとに前記第２のバーコード信号を生成することを特徴とする請求項１４〜１９のいずれか一つに記載のバーコード読取方法。
【請求項２１】
前記デコード処理ステップは、
前記受光ステップにおける前記第１の処理方向の走査速度と前記第２の処理方向の走査速度とが異なる場合、前記第１の計測情報または前記第２の計測情報のいずれか一方を他方の計測情報における走査速度に対応させて補正する補正ステップをさらに含み、
前記補完ステップは、前記補正ステップの後に行なわれることを特徴とする請求項２０に記載のバーコード読取方法。
【請求項２２】
前記バーコード記号全体に光を照射し該バーコード記号全体からの反射光を受光して該バーコード記号全体に対応する受光信号を生成する受光ステップをさらに含み、
前記第１の信号処理ステップは、前記第１の処理方向にしたがい前記受光ステップにおいて生成された前記受光信号を変換することによって前記第１のバーコード信号を生成し、
前記第２の信号処理ステップは、前記第２の処理方向にしたがい前記受光ステップにおいて生成された前記受光信号を変換することによって前記第２のバーコード信号を生成することを特徴とする請求項１４〜１９のいずれか一つに記載のバーコード読取方法。
【請求項２３】
前記第１の計測情報および前記第２の計測情報を記憶する記憶ステップをさらに含むことを特徴とする請求項１５〜２２のいずれか一つに記載のバーコード読取方法。
【請求項２４】
前記比較領域は、変更可能であることを特徴とする請求項１６〜２３のいずれか一つに記載のバーコード読取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、バーコードに記録された情報を読み取るバーコード読取装置およびバーコード読取方法に関する。
【背景技術】
【０００２】
レーザ光などでバーコード記号を走査しバーコード記号に記録された情報を読み取るバーコード読取装置が広く使用されている。このようなバーコード読取装置においては、バーコード記号からの反射光の光学的特性の変化を検出してバーコード記号を構成する各エレメントの幅を表すバーコード信号を生成し、このバーコード信号をもとにデコード処理を行なうことによって、バーコード記号に記録された情報を読み取っている。ところで、従来、最初に走査される端部のエレメントからの反射光はバーコード記号が印字されている周辺状況、たとえば印刷品質、紙質および背景などの影響を含みやすく、最初に走査される端部のエレメント幅を正確に表したバーコード信号を生成することができない場合があった。この結果、従来のバーコード読取装置においては、端部のエレメントに対応するバーコード信号が変形し、バーコードの読取不良や読取失敗が発生していた。
【０００３】
このため、端部のエレメントに対応するバーコード信号が変形していた場合に、バーコード記号におけるスタートキャラクタやストップキャラクタを推測して、読取処理を継続するバーコード読取装置が提案されている（たとえば、特許文献１参照）。
【０００４】
【特許文献１】特開平３−１６６６７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のバーコード読取装置においては、バーコード記号に対応する実際のスタートキャラクタやストップキャラクタと異なるスタートキャラクタやストップキャラクタを推測する場合もあり得るため、バーコード記号を誤読する場合があるという問題があった。
【０００６】
本発明は、上記に鑑みてなされたものであって、バーコード記号端部のエレメント幅を正確に表したバーコード信号を生成することができない場合であっても、バーコード記号を正確に読み取ることができるバーコード読取装置およびバーコード読取方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、この発明にかかるバーコード読取装置は、記録された情報に応じた幅で各エレメントが表示されたバーコード記号の各エレメント幅を表すバーコード信号を生成する信号処理手段と、前記バーコード信号に表される各エレメント幅を計測した計測情報を用いて前記バーコード記号に記録された情報をデコードするデコード処理手段とを備えたバーコード読取装置において、前記信号処理手段は、第１の処理方向で第１の前記バーコード信号を生成するとともに前記第１の処理方向と異なる方向である第２の処理方向で第２の前記バーコード信号を生成でき、前記デコード処理手段は、前記第１のバーコード信号に対するデコードが前記バーコード記号の端部に位置する端部エレメントに起因して失敗した場合、前記第１のバーコード信号における前記端部エレメントに対応する信号を、前記第２のバーコード信号における前記端部エレメントに対応する信号で置き換えて前記第１のバーコード信号を補完する補完処理を行い、補完した前記第１のバーコード信号を用いて再度デコードすることを特徴とする。
【０００８】
また、この発明にかかるバーコード読取装置は、前記デコード処理手段は、前記補完処理として、前記第１のバーコード信号の第１の前記計測情報における前記端部エレメントの計測値を、前記第２のバーコード信号の第２の前記計測情報における前記端部エレメントの計測値で置き換えて前記第１の計測情報を補完し、補完した前記第１の計測情報を用いて再度デコードすることを特徴とする。
【０００９】
また、この発明にかかるバーコード読取装置は、前記デコード処理手段は、前記バーコード記号の所定の比較領域内のエレメントに対する前記第１の計測情報の計測値と前記第２の計測情報の計測値との差が所定の範囲であった場合に、前記補完処理を行なうことを特徴とする。
【００１０】
また、この発明にかかるバーコード読取装置は、前記所定の範囲は、変更可能であることを特徴とする。
【００１１】
また、この発明にかかるバーコード読取装置は、前記デコード処理手段は、前記バーコード記号の所定の比較領域内のエレメントに対する前記第１の計測情報の計測値と前記第２の計測情報の計測値とをもとに前記第１の計測情報における第１の閾値および前記第２の計測情報における第２の閾値を設定し、前記比較領域内の前記第１の計測情報における前記第１の閾値を超える計測値および前記第１の閾値を下回る計測値の第１の配列状態と、前記比較領域内の前記第２の計測情報における前記第２の閾値を超える計測値および前記第２の閾値を下回る計測値の第２の配列状態とが一致した場合、前記補完処理を行なうことを特徴とする。
【００１２】
また、この発明にかかるバーコード読取装置は、前記第１の閾値の数および前記第２の閾値の数は、変更可能であることを特徴とする。
【００１３】
また、この発明にかかるバーコード読取装置は、前記バーコード記号に前記第１の処理方向または前記第２の処理方向にしたがって走査光を照射し該バーコード記号における各領域から順次反射される反射光を受光する受光手段をさらに備え、前記信号処理手段は、前記受光手段による前記第１の処理方向に対応する受光結果をもとに前記第１のバーコード信号を生成し、前記受光手段による前記第２の処理方向に対応する受光結果をもとに前記第２のバーコード信号を生成することを特徴とする。
【００１４】
また、この発明にかかるバーコード読取装置は、前記デコード処理手段は、前記受光手段における前記第１の処理方向の走査速度と前記第２の処理方向の走査速度とが異なる場合、前記第１の計測情報または前記第２の計測情報のいずれか一方を他方の計測情報における走査速度に対応させて補正した後に前記補完処理を行なうことを特徴とする。
【００１５】
また、この発明にかかるバーコード読取装置は、前記受光手段は、光を発する光源と、前記光源が発した光を前記第１の処理方向または前記第２の処理方向にしたがって前記バーコード記号上に走査させる走査手段と、前記反射光を集光する集光手段と、前記集光手段によって集光された光を順次受光して電気信号に変換し前記信号処理手段に出力する検出手段と、を備え、前記信号処理手段は、前記走査手段における走査処理を制御することを特徴とする。
【００１６】
また、この発明にかかるバーコード読取装置は、前記バーコード記号全体に光を照射し該バーコード記号全体からの反射光を受光して該バーコード記号全体に対応する受光信号を生成する受光手段をさらに備え、前記信号処理手段は、前記第１の処理方向にしたがい前記受光信号を変換することによって前記第１のバーコード信号を生成し、前記第２の処理方向にしたがい前記受光信号を変換することによって前記第２のバーコード信号を生成することを特徴とする。
【００１７】
また、この発明にかかるバーコード読取装置は、前記第１の計測情報および前記第２の計測情報を記憶する記憶手段をさらに備えたことを特徴とする。
【００１８】
また、この発明にかかるバーコード読取装置は、前記記憶手段は、前記受光信号を記憶し、前記信号処理手段は、前記記憶手段において記憶された前記受光信号を取得して前記第１のバーコード信号および／または前記第２のバーコード信号を生成することを特徴とする。
【００１９】
また、この発明にかかるバーコード読取装置は、前記比較領域は、変更可能であることを特徴とする。
【００２０】
また、この発明にかかるバーコード読取方法は、記録された情報に応じた幅で各エレメントが表示されたバーコード記号における各エレメント幅を表すバーコード信号を生成する信号処理ステップと、前記バーコード信号に表される各エレメント幅を計測した計測情報を用いて前記バーコード記号に記録された情報をデコードするデコード処理ステップとを含むバーコード読取方法において、前記信号処理ステップは、第１の処理方向で第１の前記バーコード信号を生成する第１の信号処理ステップと、前記第１の処理方向と異なる方向である第２の処理方向で第２の前記バーコード信号を生成する第２の信号処理ステップと、を含み、前記デコード処理ステップは、前記第１の信号処理ステップにおいて生成された前記第１のバーコード信号に対する第１のデコード処理ステップと、前記第１のデコード処理ステップにおいて前記第１のバーコード信号に対するデコードが前記バーコード記号の端部に位置する端部エレメントに起因して失敗した場合、前記第１のバーコード信号における前記端部エレメントに対応する信号を、前記第２のバーコード信号における前記端部エレメントに対応する信号で置き換えて前記第１のバーコード信号を補完する補完ステップと、前記補完ステップにおいて補完された前記第１のバーコード信号を用いて再度デコードする第２のデコード処理ステップと、を含むことを特徴とする。
【００２１】
また、この発明にかかるバーコード読取方法は、前記補完ステップは、前記第１のバーコード信号の第１の前記計測情報における前記端部エレメントの計測値を、前記第２のバーコード信号の第２の前記計測情報における前記端部エレメントの計測値で置き換えて前記第１の計測情報を補完し、前記第２のデコード処理ステップは、前記補完ステップにおいて補完された前記第１の計測情報を用いて再度デコードすることを特徴とする。
【００２２】
また、この発明にかかるバーコード読取方法は、前記デコード処理ステップは、前記バーコード記号の所定の比較領域内のエレメントに対する前記第１の計測情報の計測値と前記第２の計測情報の計測値との差が所定の範囲内であるか否かを判断する判断ステップを含み、前記補完ステップは、前記判断ステップにおいて前記比較領域内のエレメントに対する前記第１の計測情報の計測値と前記第２の計測情報の計測値との差が所定の範囲内であると判断された場合に行なわれることを特徴とする。
【００２３】
また、この発明にかかるバーコード読取方法は、前記所定の範囲は、変更可能であることを特徴とする。
【００２４】
また、この発明にかかるバーコード読取方法は、前記デコード処理ステップは、前記バーコード記号の所定の比較領域内のエレメントに対する前記第１の計測情報の計測値と前記第２の計測情報の計測値とをもとに前記第１の計測情報における第１の閾値および前記第２の計測情報における第２の閾値を設定する閾値設定ステップと、前記比較領域内の前記第１の計測情報における前記第１の閾値を超える計測値および前記第１の閾値を下回る計測値の配列状態と、前記比較領域内の前記第２の計測情報における前記第２の閾値を超える計測値および前記第２の閾値を下回る計測値の第２の配列状態とを求める配列状態取得ステップと、前記第１の配列状態と前記第２の配列状態が一致するか否かを判断する配列状態判断ステップと、前記配列状態判断ステップにおいて前記第１の配列状態と前記第２の配列状態が一致したと判断された場合、前記補完ステップを行なうことを特徴とする。
【００２５】
また、この発明にかかるバーコード読取方法は、前記第１の閾値の数および前記第２の閾値の数は、変更可能であることを特徴とする。
【００２６】
また、この発明にかかるバーコード読取方法は、前記バーコード記号に前記第１の処理方向または前記第２の処理方向にしたがって走査光を照射し該バーコード記号における各領域から順次反射される反射光を受光する受光ステップをさらに含み、前記第１の信号処理ステップは、前記受光ステップによる前記第１の処理方向に対応する受光結果をもとに前記第１のバーコード信号を生成し、前記第２の信号処理ステップは、前記受光手段による前記第２の処理方向に対応する受光結果をもとに前記第２のバーコード信号を生成することを特徴とする。
【００２７】
また、この発明にかかるバーコード読取方法は、前記デコード処理ステップは、前記受光ステップにおける前記第１の処理方向の走査速度と前記第２の処理方向の走査速度とが異なる場合、前記第１の計測情報または前記第２の計測情報のいずれか一方を他方の計測情報における走査速度に対応させて補正する補正ステップをさらに含み、前記補完ステップは、前記補正ステップの後に行なわれることを特徴とする。
【００２８】
また、この発明にかかるバーコード読取方法は、前記バーコード記号全体に光を照射し該バーコード記号全体からの反射光を受光して該バーコード記号全体に対応する受光信号を生成する受光ステップをさらに含み、前記第１の信号処理ステップは、前記第１の処理方向にしたがい前記受光ステップにおいて生成された前記受光信号を変換することによって前記第１のバーコード信号を生成し、前記第２の信号処理ステップは、前記第２の処理方向にしたがい前記受光ステップにおいて生成された前記受光信号を変換することによって前記第２のバーコード信号を生成することを特徴とする。
【００２９】
また、この発明にかかるバーコード読取方法は、前記第１の計測情報および前記第２の計測情報を記憶する記憶ステップをさらに含むことを特徴とする。
【００３０】
また、この発明にかかるバーコード読取方法は、前記比較領域は、変更可能であることを特徴とする。
【発明の効果】
【００３１】
本発明は、バーコード記号の端部に位置する端部エレメントに起因してデコードが失敗した場合、バーコード信号における端部エレメントに対応する信号を、異なる処理方向で処理したバーコード信号における端部エレメントに対応する信号で置き換えてバーコード信号を補完し再度デコードすることによって、バーコード記号端部のエレメントを正確に表したバーコード信号を生成することができない場合であっても、バーコード記号を正確に読み取ることができる。
【発明を実施するための最良の形態】
【００３２】
以下、図面を参照して、この発明の実施の形態について説明する。なお、この実施の形態によりこの発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付している。
【００３３】
（実施の形態１）
まず、実施の形態１において説明する。図１は、実施の形態１にかかるバーコード読取装置の構成を示す模式図である。図１に示すように、実施の形態１にかかるバーコード読取装置１は、記録された情報に応じた幅で各エレメントが表示されたバーコード記号２０に記録された情報を読み取る。
【００３４】
バーコード読取装置１は、光源２、反射ミラー３、走査ミラー４、集光ミラー５、光学フィルタ６、センサ７、シールド８、信号処理部９、デコード処理部１０および記憶部１１を備える。
【００３５】
光源２は、たとえばレーザ光などの光を発する。反射ミラー３は、固定配置され、光源２から発光された光を走査ミラー４方向に偏光する。走査ミラー４は、モータなどによって回動可能であり、反射ミラー３によって偏光された光を図１または図２に示すＳ１方向またはＳ２方向にしたがってバーコード記号２０上に走査させる。また、走査ミラー４は、バーコード記号２０における各領域から順次反射される反射光を集光ミラー５に偏光する。集光ミラー５は、走査ミラー４によって反射されたバーコード記号２０における反射光をセンサ７に対して集光する。光学フィルタ６は、センサ７の前面に設けられ、バーコード読み取りに要する波長のみを透過させる。センサ７は、集光ミラー５によって集光され光学フィルタ６を透過した光を順次受光して電気信号に変換し信号処理部９に出力する。シールド８は、電磁的なノイズの影響をセンサ７から除外する機能を有する。
【００３６】
バーコード読取装置１においては、走査ミラー４は、光源２が発した光を所定の第１の処理方向または第１の処理方向と異なる方向である第２の処理方向にしたがってバーコード記号２０に走査させる。具体的に、走査ミラー４は、光源２が発した光を図１および図２に示すＳ１方向に順方向走査光として走査させるとともに、光源２が発した光を図１および図２に示すＳ２方向に逆方向走査光として走査させる。光源２、反射ミラー３、走査ミラー４、集光ミラー５、光学フィルタ６、センサ７およびシールド８は、特許請求の範囲におけるバーコード記号に第１の処理方向または第２の処理方向にしたがって走査光を照射し該バーコード記号における各領域から順次反射される反射光を受光する受光手段となる。
【００３７】
信号処理部９は、センサ７から出力されたバーコード記号２０の反射光に対応する電気信号を増幅、フィルタリングおよび２値化することによって、バーコード記号２０の各エレメント幅を表すバーコード信号を生成する。また、信号処理部９は、走査ミラー４におけるモータを駆動し走査ミラー４の回動動作を制御することによって、走査ミラー４における走査処理を制御する。
【００３８】
信号処理部９は、バーコード記号２０に対して、第１の処理方向で第１のバーコード信号を生成するとともに、第２の処理方向で第２のバーコード信号を生成できる。信号処理部９は、特許請求の範囲における受光手段による第１の処理方向に対応する受光結果をもとに第１のバーコード信号を生成し、受光手段による第２の処理方向に対応する受光結果をもとに第２のバーコード信号を生成する。具体的には、信号処理部９は、走査ミラー４が図１および図２に示すＳ１方向の順方向走査光をバーコード記号２０に照射した場合には、センサ７の受光結果をもとに順方向バーコード信号を生成する。また、信号処理部９は、走査ミラー４が図１および図２に示すＳ２方向の逆方向走査光をバーコード記号２０に照射した場合には、センサ７の受光結果をもとに逆方向バーコード信号を生成する。
【００３９】
デコード処理部１０は、信号処理部９によって生成されたバーコード信号に表される各エレメント幅をカウントしたカウントデータを用いてバーコード記号２０に記録された情報をデコードし、図示しない外部装置に出力する。記憶部１１は、デコード処理部１０によるカウントデータを記憶する。
【００４０】
デコード処理部１０は、第１のバーコード信号に対するデコードがバーコード記号の端部に位置する端部エレメントに起因して失敗した場合、第１のバーコード信号における端部エレメントに対応する信号を、第２のバーコード信号における端部エレメントに対応する信号で置き換えて第１のバーコード信号を補完する補完処理を行い、補完した第１のバーコード信号を用いて再度デコードする。デコード処理部１０は、第１のバーコード信号であるに対するデコードがバーコード記号の端部に位置する端部エレメントに起因して失敗した場合、第１のバーコード信号のカウントデータにおける端部エレメントの計測値を、第２のバーコード信号のカウントデータにおける端部エレメントの計測値で置き換えて第１の計測情報を補完する補完処理を行い、補完した第１の計測情報を用いて再度デコードする。
【００４１】
具体的には、デコード処理部１０は、順方向走査光におけるデコード失敗後に逆方向走査光のデコードを行なってさらに失敗した場合には、逆方向バーコード信号のカウントデータにおける端部エレメントの計測値を、記憶部１１に記憶していた順方向バーコード信号のカウントデータにおける同位置の端部エレメントの計測値で置き換えて、逆方向カウントデータを補完する。そして、デコード処理部１１は、補完した逆方向カウントデータを用いて再度デコード処理を行なう。記憶部１１は、順方向バーコード信号のカウントデータおよび逆方向バーコード信号のカウントデータを記憶する。
【００４２】
ところで、バーコード読取装置１においては、周辺状況の影響を受けない良好な状態でバーコード記号２０が印字されている場合には、図２に示すＳ１方向の順方向走査光に対応するバーコード信号が正確に生成されるため、一度の走査でデコードが成功する。しかしながら、図２に示すように、バーコード記号２０端部のマージン領域Ｇｓ，Ｇｅに、絵、文字または白以外の背景色がある場合には、バーコード信号においてバーコード記号端部のエレメント幅を正確に再現することができない。このため、バーコード読取装置１においては、１度目の走査光である順方向走査光におけるデコードが失敗する場合がある。この場合、バーコード読取装置１は、再デコードのため、逆方向走査光を２度目の走査光としてバーコード記号２０に照射する。しかしながら、逆方向走査光を用いた場合においてもマージン領域Ｇｓ，Ｇｅの影響を受けてバーコード記号端部のエレメント幅を正確に生成できず、２度目のデコードも失敗する場合ある。この場合に、本実施の形態１にかかるバーコード読取装置１は補完処理を行なう。
【００４３】
具体的に、図３〜図５を参照して説明する。図３は、Ｓ２方向にしたがって逆方向走査光が照射された場合におけるセンサ７の受光信号および信号処理部９の逆方向バーコード信号を示す図である。図４は、Ｓ１方向にしたがって順方向走査光が照射された場合におけるセンサ７の受光信号および信号処理部９の順方向バーコード信号を示す図である。また、図５は、デコード処理部１０における補完処理を説明する図である。図３および図４においては、バーコード記号２０の右端部を含む領域を示している。
【００４４】
まず、図３を参照して、バーコード記号２０の端部エレメントに起因してデコードが失敗する場合について詳細に説明する。図３に示すように、Ｓ２方向にしたがってバーコード記号２０を走査する場合、バーコード記号２０の右端部に位置するエレメントＥｅに対する反射光が最初にセンサ７によって受光される。つぎに、信号処理部９は、Ｓ２方向にしたがって順次出力された受光信号Ｗ２を１次微分することによって、受光信号Ｗ２の受光量の増減のエッジを上下方向のピーク信号で表した微分信号Ｅ２を生成する。
【００４５】
ここで、エレメントＥｅのマージン領域Ｇｅに絵、文字または白以外の背景色がある場合には、白の背景色がある場合と比較して反射率が低い。このため、受光信号Ｗ２に示すように、マージン領域Ｇｅに対応する領域Ｓｇの受光量は、白の背景領域に対応する領域Ｓｗの受光量と比較し、低くなってしまう。さらに、エレメントＥｅは、黒色であるため、エレメントＥｅに対応する領域Ｓｅの受光量は、領域Ｓｇにおける受光量と比較しさらに低くなる。したがって、信号処理部９は、図２の微分信号Ｅ２に示すように、マージン領域Ｇｅと白の背景領域との境界に対応して下方向のピーク信号Ｐｇ２が生成した後に、マージン領域ＧｅとエレメントＥｅとの境界に対応して、ピーク信号Ｐｇ２と同じ下方向のピーク信号Ｐｅ２を生成する。
【００４６】
つぎに、信号処理部９は、Ｓ２方向にしたがって微分信号Ｅ２を処理し、下方向のピーク信号があった場合にはバーコード信号の信号を下げ、下方向のピークの次に上方向のピーク信号があった場合にはバーコード信号を上げることによって、バーコード記号２０の各エレメント幅に対応した時間幅を表すバーコード信号Ｂ２を生成する。また、信号処理部９は、受光信号において同方向のピーク信号があった場合には、最初にあったピーク信号に応じてバーコード信号の上下方向を決定し、次に同方向のピーク信号があった場合であってもバーコード信号の上下方向を変えず、異方向のピーク信号があった場合にバーコード信号の上下方向を変える。
【００４７】
このため、信号処理部９は、Ｓ２方向にしたがって受光信号Ｗ２からバーコード信号Ｂ２を生成する場合には、微分信号Ｅ２のマージン領域Ｇｅに対応するピーク信号Ｐｇ２にしたがって位置Ｐ１においてバーコード信号Ｂ２を下げる。そして、信号処理部９は、本来の読取対象であるエレメントＥｅの右端部に対応するピーク信号Ｐｅ２がある場合であっても、位置Ｐ２においてバーコード信号Ｂ２をそのまま維持してしまう。そして、信号処理部９は、エレメントＥｅの左端部を検出したピーク信号にしたがって、位置Ｐ３においてバーコード信号Ｂ２の方向を上方向に上げる。
【００４８】
このように、信号処理部９は、エレメントＥｅのマージン領域Ｇｅに絵、文字または白以外の背景色がある場合には、本来の読取対象であるバーコード端のエレメントＥｅ端ではなくマージン領域Ｇｅ端部でバーコード信号の方向を決定しまう。この結果、バーコード信号Ｂ２の最初部分は、本来の読取対象であるエレメントＥｅの幅Ｄｌのみならずマージン領域Ｇｅの幅Ｄｇを含むものとなってしまい、バーコード信号Ｂ２は、他のエレメントと異なり、端部のエレメントＥｅの幅を正確に再現できない。したがって、信号処理部９は、このバーコード信号Ｂ２を用いた場合には正確に端部のエレメントＥｅの幅を計測することができないため、デコード処理を失敗してしまう。
【００４９】
ここで、バーコード読取装置１においては、Ｓ２方向にしたがって走査を行なう逆方向走査の前に、Ｓ１方向にしたがって走査を行なう順方向走査を行なっている。このＳ１方向にしたがった順方向走査においては、図４に示すように、走査方向が逆方向走査と逆である。言い換えると、バーコード読取装置１は、同じバーコード記号２０に異なる方向で走査光をそれぞれ照射するため、バーコード記号２０を表す受光信号Ｗ１は、逆方向走査における受光信号Ｗ２と逆順で出力された同じ波形信号となる。さらに、順方向走査においては、逆方向走査と逆の方向にしたがって、受光信号を処理しバーコード信号を生成する。このため、順方向走査においては、逆方向走査において正確にバーコード信号を生成できなかった最初のエレメントＥｅは、最後に走査されてバーコード信号の最後部分を構成する。バーコード信号の最後部分は、マージン領域Ｇｅの影響を受けにくいため、端部のエレメントＥｅの幅を正確に再現している場合が多い。
【００５０】
具体的には、図４に示すように、信号処理部９は、Ｓ１方向にしたがって、順方向走査で得られた受光信号Ｗ１を処理した微分信号Ｅ１からバーコード信号Ｂ１を生成する。信号処理部９は、端部のエレメントＥｅに対応する領域においては、微分信号Ｅ１におけるエレメントＥｅの左端部に応じたピーク信号にしたがって位置Ｐ３にてバーコード信号Ｂ１を下方向に下げる。つぎに、信号処理部９は、エレメントＥｅの右端部に応じたピーク信号Ｐｅ１にしたがって、位置Ｐ２においてバーコード信号Ｂ１を上方向に上げる。そして、信号処理部９は、マージン領域Ｇｅの右端部に対応するピーク信号Ｐｇ１がある場合であっても、バーコード信号をそのまま維持する。この結果、バーコード信号Ｂ１の最後部分は、本来の読取対象であるエレメントＥｅの幅Ｄｌのみを表したものとなるため、バーコード信号Ｂ１は、端部のエレメントＥｅの幅を正確に再現したものとなる。このように、信号処理部９は、Ｓ１方向にしたがいエレメントＥｅの信号を最後に生成するバーコード信号Ｂ１においては、Ｓ２方向にしたがい端部のエレメントＥｅの信号を最初に生成するバーコードＢ２と異なり、エレメントＥｅ幅を正確に表すことができる。
【００５１】
そこで、デコード処理部１０は、図５の矢印Ｙ１に示すように、逆方向走査のバーコード信号Ｂ２における端部エレメントＥｅの幅Ｄｌとともにマージン領域Ｇｅの幅Ｄｇを含む領域Ｂ２ｔの信号を、順方向走査のバーコード信号Ｂ１における端部エレメントＥｅの幅Ｄｌのみを表した領域Ｂ１ｌの信号で置き換えて補完する。この結果、デコード処理部１０は、図５の矢印Ｙ２に示すように、補完したバーコード信号として、マージン領域Ｇｅの幅Ｄｇを含まずエレメントＥｅの幅Ｄｌのみを正確に表したバーコード信号Ｂ２ａを生成することができる。デコード処理部１０は、補完したバーコード信号Ｂ２ａを用いて再度デコード処理を行なうことによって、端部のエレメントＥｅの幅を正確に取得でき、デコード処理を成功させることができる。なお、実際の処理においては、デコード処理部１０は、バーコード信号Ｂ２の各エレメントの幅をカウントしたカウントデータと、バーコード信号Ｂ１の各エレメントの幅をカウントしたカウントデータとを用いて補完処理を行なう。具体的には、デコード処理部１０は、バーコード信号Ｂ２のカウントデータにおける領域Ｂ２ｔに対応するカウント値を、バーコード信号Ｂ１のカウントデータにおける領域Ｂ１ｌに対応するカウント値で置き換えることによって、バーコード信号Ｂ２に対応するカウントデータを補完し、補完したカウントデータを用いて再度デコード処理を行なう。
【００５２】
つぎに、図６を参照して、バーコード読取装置１のバーコード読取処理について説明する。図６は、図１に示すバーコード読取装置１におけるバーコード読取処理の処理手順を示すフローチャートである。
【００５３】
まず、図６に示すように、バーコード読取装置１は、たとえば図２のＳ１方向で生成されたバーコード信号に対する順方向デコード処理を行なう（ステップＳ２）。デコード処理部１０は、ステップＳ２における順方向デコード処理が成功または失敗したかを判断する（ステップＳ４）。デコード処理部１０は、順方向デコード処理が成功したと判断した場合（ステップＳ４：成功）、読み取ったバーコード記号２０の情報を図示しない外部装置に出力するとともに順方向デコード処理において用いられたカウントデータを消去してバーコード読取処理を終了する。
【００５４】
一方、デコード処理部１０は、順方向デコード処理が失敗したと判断した場合（ステップＳ４：失敗）、順方向デコード処理において用いられたカウントデータを記憶部１１に保持した後に（ステップＳ６）、たとえば図２のＳ２方向で生成されたバーコード信号に対する逆方向デコード処理を行なう（ステップＳ８）。そして、デコード処理部１０は、ステップＳ８における逆方向デコード処理が成功または失敗したかを判断する（ステップＳ１０）。デコード処理部１０は、逆方向デコード処理が成功したと判断した場合（ステップＳ１０：成功）、読み取ったバーコード記号２０の情報を図示しない外部装置に出力するとともに順方向デコード処理および逆方向デコード処理において用いられたカウントデータを消去してバーコード読取処理を終了する。
【００５５】
一方、デコード処理部１０は、逆方向デコード処理が失敗したと判断した場合（ステップＳ１０：失敗）、逆方向デコード処理において最初に処理されるエレメントに起因して、バーコード記号２０の最初のキャラクタパターンがデコードテーブルと不一致であったためデコード処理が失敗したか否かを判断する（ステップＳ１２）。デコード処理部１０は、バーコード記号２０の最初のキャラクタパターンがデコードテーブルと不一致であったためデコード処理が失敗したのではないと判断した場合（ステップＳ１２：Ｎｏ）、ステップＳ２に戻り、再度順方向デコード処理を行なう。
【００５６】
これに対し、デコード処理部１０は、バーコード記号２０の最初のキャラクタパターンがデコードテーブルと不一致であったためデコード処理が失敗したと判断した場合（ステップＳ１２：Ｙｅｓ）、逆方向デコード処理において用いられたカウントデータを記憶部１１に保持する（ステップＳ１４）。
【００５７】
そして、デコード処理部１０は、逆方向デコード処理におけるカウントデータを順方向デコード処理におけるカウントデータで補完する補完処理を行なう（ステップＳ１６）。次いで、デコード処理部１０は、補完処理において補完されたカウントデータを用いて再度デコード処理を行い（ステップＳ１８）、このデコード処理が成功または失敗したかを判断する（ステップＳ２０）。デコード処理部１０は、このデコード処理が成功したと判断した場合（ステップＳ２０：成功）、読み取ったバーコード記号２０の情報を図示しない外部装置に出力するとともに順方向デコード処理および逆方向デコード処理において用いられたカウントデータを消去してバーコード読取処理を終了する。一方、デコード処理部１０は、このデコード処理が失敗したと判断した場合（ステップＳ２０：失敗）、ステップＳ２に戻り、再度順方向デコード処理を行なう。なお、ステップＳ６およびステップＳ１４において、デコード処理部１０は、順方向デコード処理および逆方向デコード処理におけるカウントデータ全体を記憶部１１に保持するほか、カウントデータのうち補完処理で使用される一部分のみを保持してもよい。
【００５８】
つぎに、図６に示す順方向デコード処理について説明する。図７は、図６に示す順方向デコード処理の処理手順を示すフローチャートである。図７に示すように、順方向デコード処理においては、光源２および走査ミラー４が駆動し、バーコード記号２０に対して、Ｓ１方向にしたがって順方向に走査光を照射する（ステップＳ２１）。つぎに、センサ７は、反射光を順次受光して電気信号に変換し、信号処理部９に出力する。信号処理部９は、センサ７から出力された電気信号を受信して、図４の受光信号Ｗ１に例示するように、順方向走査光に対する反射光であってバーコード記号２０に対応する受光信号を検出する（ステップＳ２２）。
【００５９】
つぎに、信号処理部９は、検出した受光信号に対し１次微分処理などの処理を行なうことによって、順方向のバーコード信号を生成し（ステップＳ２３）、デコード処理部１０に生成したバーコード信号を出力する。デコード処理部１０は、信号処理部９が生成したバーコード信号における各エレメント幅をカウントして（ステップＳ２４）順方向のカウントデータを生成し、順方向のカウントデータを記憶部１１に記憶させる（ステップＳ２５）。そして、デコード処理部１０は、デコードテーブルを参照し、カウントデータにおける各カウント値が対応するキャラクタパターンを求めるデコード処理を行なう（ステップＳ２６）。
【００６０】
つぎに、図６に示す逆方向デコード処理について説明する。図８は、図６に示す逆方向デコード処理の処理手順を示すフローチャートである。図８に示すように、逆方向デコード処理においては、光源２および走査ミラー４が駆動し、バーコード記号２０に対して、Ｓ２方向にしたがって逆方向に走査光を照射する（ステップＳ３１）。つぎに、センサ７は、反射光を順次受光して電気信号に変換し、信号処理部９に出力する。信号処理部９は、センサ７から出力された電気信号を受信して、図３の受光信号Ｗ２に例示するように、逆方向走査光に対する反射光であってバーコード記号２０に対応する受光信号を検出する（ステップＳ３２）。
【００６１】
つぎに、信号処理部９は、検出した受光信号に対し１次微分処理などの処理を行なうことによって、逆方向のバーコード信号を生成し（ステップＳ３３）、デコード処理部１０に生成したバーコード信号を出力する。デコード処理部１０は、信号処理部９が生成したバーコード信号における各エレメント幅をカウントして（ステップＳ３４）逆方向のカウントデータを生成し、逆方向のカウントデータを記憶部１１に記憶させる（ステップＳ３５）。そして、デコード処理部１０は、デコードテーブルを参照し、カウントデータにおける各カウント値が対応するキャラクタパターンを求めるデコード処理を行なう（ステップＳ３６）。
【００６２】
つぎに、図６に示す補完処理について説明する。図９は、図６に示す補完処理の処理手順を示すフローチャートである。図９に示すように、デコード処理部１０は、順方向デコード処理におけるバーコード信号に対応するカウントデータおよび逆方向デコード処理におけるバーコード信号に対応するカウントデータを記憶部１１から取得する（ステップＳ４１）。つぎに、デコード処理部１０は、逆方向デコード処理のカウントデータにおける最初部分のカウント値を、順方向デコード処理のカウントデータにおける最後部分のカウント値で置き換え（ステップＳ４２）、置き換えた逆方向デコード処理におけるバーコード信号のカウントデータを補完カウントデータとして記憶部１１に記憶させ（ステップＳ４３）、補完処理を終了する。
【００６３】
このように、実施の形態１によれば、バーコード記号の端部に位置する端部エレメントに起因してデコードが失敗した場合、バーコード信号における端部エレメントに対応する信号を、異なる処理方向で処理したバーコード信号における端部エレメントに対応する信号で置き換えてバーコード信号を補完し再度デコードすることによって、バーコード記号端部のエレメントを正確に表したバーコード信号を生成することができない場合であっても、バーコード記号を正確に読み取ることができる。
【００６４】
（実施の形態２）
つぎに、実施の形態２について説明する。図１０は、実施の形態２にかかるバーコード読取装置の構成を示す模式図である。図１０に示すように、実施の形態２にかかるバーコード読取装置２０１は、図１に示すバーコード読取装置１におけるデコード処理部１０に代えて、デコード処理部２１０を備えた構成を有する。デコード処理部２１０は、バーコード記号の所定の比較領域内のエレメントに対する順方向走査のカウントデータのカウント値と逆方向走査のカウントデータのカウント値とが一致した場合、または、バーコード記号の所定の比較領域内のエレメントに対する順方向走査のカウントデータのカウント値と逆方向走査のカウントデータのカウント値との差が所定の範囲内であった場合、図１に示すデコード処理部１０と同様の処理手順で補完処理を行なう。
【００６５】
つぎに、図１０に示すバーコード読取装置２０１のバーコード読取処理について説明する。図１１は、図１０に示すバーコード読取装置２０１におけるバーコード読取処理の処理手順を示すフローチャートである。
【００６６】
図１１に示すように、バーコード読取装置２０１は、図６のステップＳ２〜ステップＳ１２と同様に、順方向デコード処理（ステップＳ２０２）、デコード成功判断処理（ステップＳ２０４）、順方向データ保持処理（ステップＳ２０６）、逆方向デコード処理（ステップＳ２０８）、デコード成功判断処理（ステップＳ２１０）および最初のキャラクタパターン不一致判断処理（ステップＳ２１２）を行なう。
【００６７】
デコード処理部２１０は、バーコード記号２０の最初のキャラクタパターンがデコードテーブルと不一致であったためデコード処理が失敗したと判断した場合（ステップＳ２１２：Ｙｅｓ）、所定の比較領域における順方向走査のカウントデータのカウント値と逆方向走査のカウントデータのカウント値とが一致するか否かを判断する（ステップＳ２１３）。なお、ステップＳ２１３においては、所定の比較領域における順方向走査のカウントデータのカウント値と逆方向走査のカウントデータのカウント値との差が所定の範囲内であるか否かを判断してもよい。順方向走査における走査速度と逆方向走査における走査速度は、必ずしも完全に一致するわけではない。このため、各方向の走査速度に差があった場合には、所定の比較領域における各方向の走査が正常に行なわれていた場合であっても順方向走査のカウントデータのカウント値と逆方向走査のカウントデータのカウント値とに差が生じる場合がある。このため、順方向走査と逆方向走査の走査速度ズレに対応する範囲を設定し、所定の比較領域における順方向走査のカウントデータのカウント値と逆方向走査のカウントデータのカウント値との差が設定した所定の範囲内であった場合には、各方向の走査が正常に行なわれていると判断できる。
【００６８】
具体的には、図１２に示すように、デコード処理部２１０は、順方向走査に対応するバーコード信号Ｂ１と逆方向走査に対応するバーコード信号Ｂ２とにおける、たとえば端部のエレメントＥｅの隣に位置するエレメントから所定数のエレメントを含む領域のエレメント幅をそれぞれ比較する。デコード処理部２１０は、図１２の矢印Ｙ２１に示すように、バーコード信号Ｂ１の領域Ｂｃ１における各エレメントの幅と、バーコード信号Ｂ１の領域Ｂｃ１に対応するバーコード信号Ｂ２の領域Ｂｃ２における各エレメントの幅とを比較する。そして、デコード処理部２１０は、バーコード信号Ｂ１の領域Ｂｃ１における各エレメントの幅と、バーコード信号Ｂ２の領域Ｂｃ２における各エレメントの幅とが一致するか否かを判断する。なお、ステップＳ２１３において、所定の比較領域における順方向走査のカウントデータのカウント値と逆方向走査のカウントデータのカウント値との差が所定の範囲内である否かを判断する場合には、デコード処理部２１０は、バーコード信号Ｂ１の領域Ｂｃ１における各エレメントの幅と、バーコード信号Ｂ２の領域Ｂｃ２における各エレメントの幅との差が所定の範囲内であるか否かを判断すればよい。また、ステップＳ２１３において各エレメント幅を比較する比較領域および所定の範囲は、図示しない外部装置から入力された指示情報にしたがって変更可能である。このため、ステップＳ２１３において比較される領域は、図１２に例示する端部のエレメントＥｅの隣のエレメントを含む領域に限らず、バーコード信号がさらに安定して正確に表されるバーコード記号２０の中央部分であってもよい。また、比較領域に含まれるエレメントの数量は、図１２に示す数量以上であってもよく、また、単数であってもよい。比較領域を変更することによって、エレメント幅を比較するエレメントの本数や領域などを変更できる。
【００６９】
デコード処理部２１０は、所定の比較領域における順方向走査のカウントデータのカウント値と逆方向走査のカウントデータのカウント値とが一致しないと判断した場合、または、所定の比較領域における順方向走査のカウントデータのカウント値と逆方向走査のカウントデータのカウント値との差が所定の範囲内でないと判断した場合（ステップＳ２１３：Ｎｏ）、端部のエレメント以外においてもバーコード信号が正確に生成されていないと考えられるため、ステップＳ２０２に戻り、再度順方向デコード処理を行なう。
【００７０】
これに対し、デコード処理部２１０は、所定の比較領域における順方向走査のカウントデータのカウント値と逆方向走査のカウントデータのカウント値とが一致したと判断した場合、所定の比較領域における順方向走査のカウントデータのカウント値と逆方向走査のカウントデータのカウント値との差が所定の範囲内であると判断した場合（ステップＳ２１３：Ｙｅｓ）、端部のエレメント以外においては、正確なバーコード信号が生成されていると考えられるため、図６に示すステップＳ１６と同様の処理手順を行なうことによって、補完処理を行なう（ステップＳ２１６）。この結果、デコード処理部２１０は、端部のエレメントも含めて、バーコード信号全体が正確に再現されたと考えられるバーコード信号を取得することができる。そして、図６に示すステップＳ１８およびステップＳ２０と同様に、デコード処理（ステップＳ２１８）、デコード成功判断処理（ステップＳ２２０）を行なう。なお、ステップＳ２０６およびステップＳ２１４において、デコード処理部１０は、順方向デコード処理および逆方向デコード処理におけるカウントデータ全体を記憶部１１に保持するほか、カウントデータのうちステップＳ２１３における判断処理およびステップＳ２１６における補完処理で使用される一部分のみを保持してもよい。
【００７１】
このように、実施の形態２においては、補完処理の前に、補完処理で用いる順方向デコード処理におけるカウントデータと逆方向デコード処理におけるカウントデータの所定の比較領域のエレメント幅のカウント値が一致するか否か、または、所定の比較領域における順方向走査のカウントデータのカウント値と逆方向走査のカウントデータのカウント値との差が所定の範囲内である否かを判断することによって、補完対象である端部のエレメントに対応する領域以外の領域において、正確なバーコード信号が生成されているか否かを検証している。したがって、実施の形態２によれば、実施の形態１と比して、カウントデータの補完処理における正確性をさらに高めることが可能になる。
【００７２】
なお、実施の形態２においては、所定の比較領域におけるカウントデータのカウント値を比較した場合について説明したが、細いエレメントと太いエレメントの配列状態をもとにバーコード記号２０に記録された情報を読み取る場合には、所定の比較領域における各太さのエレメントの配列状態を比較した後に、補完処理を行なってもよい。図１３〜図１８を参照して、具体的に説明する。
【００７３】
図１３は、実施の形態２にかかるバーコード読取装置の他の構成を示す模式図である。図１３に示すバーコード読取装置２０１ａは、図１０に示すバーコード読取装置２０１におけるデコード処理部２１０に代えて、デコード処理部２１０ａを備えた構成を有する。デコード処理部２１０ａは、バーコード記号２０の所定の比較領域内のエレメントに対する順方向バーコード信号のカウントデータのカウント値と逆方向バーコード信号のカウントデータのカウント値とをもとに順方向バーコード信号のカウントデータにおける第１の閾値および逆方向バーコード信号のカウントデータにおける第２の閾値を設定する。そして、デコード処理部２１０ａは、比較領域内の順方向バーコード信号のカウントデータにおける第１の閾値を超えるカウント値および第１の閾値を下回るカウント値の第１の配列状態を示す第１の配列パターンを取得する。そして、デコード処理部２１０ａは、比較領域内の逆方向バーコード信号のカウントデータにおける第２の閾値を超えるカウント値および第２の閾値を下回るカウント値の第２の配列状態を示す第２の配列パターンを取得する。つぎに、デコード処理部２１０ａは、比較領域にそれぞれ対応する第１の配列パターンと第２の配列パターンとが一致するか否かを判断し、第１の配列パターンと第２の配列パターンとが一致したと判断した場合に補完処理を行なう。
【００７４】
つぎに、図１３に示すバーコード読取装置２０１ａのバーコード読取処理について説明する。図１４は、図１３に示すバーコード読取装置２０１ａにおけるバーコード読取処理の処理手順を示すフローチャートである。図１４に示すように、バーコード読取装置２０１ａは、順方向バーコード信号に対するカウントデータを取得するとともに配列パターンを取得する順方向デコード処理（ステップＳ２２２）、デコード成功判断処理（ステップＳ２２４）、順方向データ保持処理（ステップＳ２２６）、逆方向バーコード信号に対するカウントデータを取得するとともに配列パターンを取得する逆方向デコード処理（ステップＳ２２８）、デコード成功判断処理（ステップＳ２３０）および最初のキャラクタパターン不一致判断処理（ステップＳ２３２）を行なう。
【００７５】
デコード処理部２１０ａは、バーコード記号２０の最初のキャラクタパターンがデコードテーブルと不一致であったためデコード処理が失敗したと判断した場合（ステップＳ２３２：Ｙｅｓ）、所定の比較領域における順方向走査の配列パターンと逆方向走査の配列パターンとが一致するか否かを判断する（ステップＳ２３３）。
【００７６】
デコード処理部２１０は、所定の比較領域における順方向走査の配列パターンと逆方向走査の配列パターンとが一致しないと判断した場合（ステップＳ２３３：Ｎｏ）、端部のエレメント以外においてもバーコード信号が正確に生成されていないと考えられるため、ステップＳ２２２に戻り、再度順方向デコード処理を行なう。
【００７７】
これに対し、デコード処理部２１０ａは、所定の比較領域における順方向走査の配列パターンと逆方向走査の配列パターンとが一致すると判断した場合（ステップＳ２３３：Ｙｅｓ）、端部のエレメント以外においては、正確なバーコード信号が生成されていると考えられるため、図６に示すステップＳ１６と同様の処理手順を行なうことによって、補完処理を行なう（ステップＳ２３６）。この結果、デコード処理部２１０ａは、端部のエレメントも含めて、バーコード信号全体が正確に再現されたと考えられるバーコード信号を取得することができる。そして、図６に示すステップＳ１８およびステップＳ２０と同様に、デコード処理（ステップＳ２３８）、デコード成功判断処理（ステップＳ２４０）を行なう。なお、ステップＳ２２６およびステップＳ２３４において、デコード処理部１０は、順方向デコード処理および逆方向デコード処理におけるカウントデータ全体を記憶部１１に保持するほか、カウントデータのうちステップＳ２３３における判断処理およびステップＳ２３６における補完処理で使用される一部分のみを保持してもよい。
【００７８】
つぎに、図１５を参照して、図１４に示す順方向デコード処理について説明する。図１５に示すように、順方向デコード処理として、デコード処理部２１０ａは、図７に示すステップＳ２１〜ステップＳ２４と同様の処理手順を行なうことによって、順方向走査光照射処理（ステップＳ２４１）、順方向走査光受光処理（ステップＳ２４２）、順方向バーコード信号生成処理（ステップＳ２４３）、エレメント幅カウント処理（ステップＳ２４４）を行なう。
【００７９】
そして、デコード処理部２１０ａは、順方向走査におけるバーコード信号に対するカウントデータ内の所定の比較領域内のカウント値にもとに閾値を設定する閾値設定処理を行なう（ステップＳ２４５）。たとえば、図１７に示すように、バーコード信号２０が所定幅よりも太いエレメントおよび所定幅よりも細いエレメントのいずれかが配列する場合、デコード処理部２１０ａは、順方向走査におけるバーコード信号Ｂ１の比較領域ＢＣ１１内の各エレメント幅をカウントしたカウントデータから、バーコード信号Ｂ１における細い幅のエレメントおよび太い幅のエレメントを分類することができるエレメント幅の閾値を設定する。この場合には、細い幅のエレメントおよび太い幅のエレメントを分類可能である図１７の信号Ｂｃ１ｔｈの幅に対応する値Ｔ１を順方向デコード処理における第１の閾値として設定する。この信号Ｂｃ１ｔｈよりも幅が狭い信号、すなわち、閾値Ｔ１よりもカウント値が小さいカウント値は、細い幅のエレメントに対応すると判断できる。そして、この信号Ｂｃ１ｔｈよりも幅が広い信号、すなわち、閾値Ｔ１よりもカウント値が大きいカウント値は、太い幅のエレメントに対応すると判断できる。
【００８０】
そして、デコード処理部２１０ａは、比較領域内の順方向バーコード信号のカウントデータにおける第１の閾値を超えるカウント値および第１の閾値を下回るカウント値の第１の配列状態を示す第１の配列パターンを取得する配列パターン取得処理を行なう（ステップＳ２４６）。具体的には、図１７に示すように、順方向バーコード信号のカウントデータにおけるカウント値が、閾値Ｔ１よりを下回る場合、閾値Ｔ１よりも幅が細いエレメントに対応すると判断でき、カウント値が、閾値Ｔ１よりを超える場合、閾値Ｔ１よりも幅が細いエレメントに対応すると判断できる。この結果、デコード処理部２１０ａは、図１７の信号Ｂｓ１のように、細いエレメントおよび太いエレメントがどのような順序で配列しているか示す配列パターンを取得することができる。
【００８１】
そして、デコード処理部２１０ａは、記憶部１１に取得したカウントデータとともに配列パターンを順方向データとして記憶させ（ステップＳ２４７）、取得したカウントデータおよび配列パターンを用いてデコード処理を行なう（ステップＳ２４８）。デコード処理部２１０ａは、配列パターンを用いる場合には、細いエレメントおよび太いエレメントの配列状態をもとに、バーコード信号２０に記録された情報を取得する。
【００８２】
つぎに、図１６を参照して、図１４に示す逆方向デコード処理について説明する。図１６に示すように、逆方向デコード処理として、デコード処理部２１０ａは、図８に示すステップＳ３１〜ステップＳ３４と同様の処理手順を行なうことによって、逆方向走査光照射処理（ステップＳ２５１）、逆方向走査光受光処理（ステップＳ２５２）、逆方向バーコード信号生成処理（ステップＳ２５３）、エレメント幅カウント処理（ステップＳ２５４）を行なう。
【００８３】
そして、デコード処理部２１０ａは、逆方向走査におけるバーコード信号に対するカウントデータ内の所定の比較領域内のカウント値にもとに閾値を設定する閾値設定処理を行なう（ステップＳ２５５）。たとえば、図１７に示すように、デコード処理部２１０ａは、逆方向走査におけるバーコード信号Ｂ２の比較領域ＢＣ２１内の各エレメント幅をカウントしたカウントデータから、細い幅のエレメントおよび太い幅のエレメントを分類することができるエレメント幅の閾値を設定する。この場合には、バーコード信号Ｂ２における細い幅のエレメントおよび太い幅のエレメントを分類可能である図１７の信号Ｂｃ２ｔｈの幅に対応する値Ｔ２を逆方向デコード処理における第２の閾値として設定する。この信号Ｂｃ２ｔｈのよりも幅が狭い信号、すなわち、閾値Ｔ２よりもカウント値が小さいカウント値は、細い幅のエレメントに対応すると判断できる。そして、この信号Ｂｃ２ｔｈよりも幅が広い信号、すなわち、閾値Ｔ２よりもカウント値が大きいカウント値は、太い幅のエレメントに対応すると判断できる。
【００８４】
そして、デコード処理部２１０ａは、比較領域内の逆方向バーコード信号のカウントデータにおける第２の閾値を超えるカウント値および第２の閾値を下回るカウント値の第１の配列状態を示す第２の配列パターンを取得する配列パターン取得処理を行なう（ステップＳ２５６）。具体的には、図１７に示すように、逆方向バーコード信号のカウントデータにおけるカウント値が、閾値Ｔ２よりを下回る場合、閾値Ｔ２よりも幅が細いエレメントに対応すると判断でき、カウント値が、閾値Ｔ２よりを超える場合、閾値Ｔ２よりも幅が細いエレメントに対応すると判断できる。この結果、デコード処理部２１０ａは、図１７の信号Ｂｓ２のように、細いエレメントおよび太いエレメントがどのような順序で配列しているか示す配列パターンを取得することができる。
【００８５】
そして、デコード処理部２１０ａは、記憶部１１に取得したカウントデータとともに配列パターンを逆方向データとして記憶させ（ステップＳ２５７）、取得したカウントデータおよび配列パターンを用いてデコード処理を行なう（ステップＳ２５８）。
【００８６】
そして、デコード処理部２１０ａは、図１４に示すステップＳ２３３において、バーコード信号Ｂ１に対応する配列パターンを示す信号Ｂｓ１とバーコード信号Ｂ２に対応する配列パターンを示す信号Ｂｓ２とを比較し、信号Ｂｓ１と信号Ｂｓ２における細い幅のエレメントおよび太い幅のエレメントの配列状態が一致するか否かを判断する。具体的には、図１８の矢印Ｙ２２に示すように、デコード処理部２１０ａは、信号Ｂｓ１の細い幅のエレメントおよび太い幅のエレメントの配列状態と、信号Ｂｓ２の細い幅のエレメントおよび太い幅のエレメントの配列状態とが一致すると判断した場合（ステップＳ２３３：Ｙｅｓ）、補完対象である端部のエレメントに対応する領域以外の領域において、バーコード信号Ｂ１とバーコード信号Ｂ２における正確な配列パターンが得られているものと判断できる。このため、デコード処理部２１０ａは、ステップＳ２３４およびステップＳ２４６に進み、補完処理を行なう。また、デコード処理部２１０ａは、図１４に示すステップＳ２３３において、信号Ｂｓ１と信号Ｂｓ２における細い幅のエレメントおよび太い幅のエレメントの配列状態が一致しないと判断した場合（ステップＳ２３３：Ｎｏ）、補完対象である端部のエレメントに対応する領域以外の領域においても、バーコード信号Ｂ１とバーコード信号Ｂ２における正確な配列パターンが得られていないものと判断し、ステップＳ２２２に進み、再度順方向デコード処理を行なう。
【００８７】
図１３〜図１８に示すように、各太さのエレメントの配列状態をもとにバーコード記号２０の情報を読み取る場合においても、所定の比較領域における所定の比較領域における各太さのエレメントの配列状態を比較した後に補完処理を行なうことによって、カウントデータの補完処理における正確性をさらに高めることが可能になる。
【００８８】
なお、図１７および図１８においては、バーコード記号２０が細いエレメントおよび太いエレメントの２種によって形成されている場合であって単数の閾値をそれぞれ設定した場合について説明したが、これに限らない。デコード処理部２１０ａは、バーコード記号２０を構成するエレメントの幅が３種類以上ある場合には、各種類のエレメントの幅に対応させた閾値をそれぞれ設定して、各配列パターンを取得すればよい。たとえば、バーコード記号２０のエレメントの太さが、太、中、細の３種に別れる場合には、エレメントの太さが太、中のものを分類可能である閾値と、エレメントの太さが中、細のものを分類可能である閾値との２種の閾値を、順方向デコード処理および逆方向デコード処理のそれぞれにおいて設定し、各２種の閾値をもとに太、中、細のエレメントを分類すればよい。また、各閾値の数は、読取対象であるバーコード記号２０を構成するエレメントの各太さに応じて、図示しない外部装置から入力された指示情報にしたがって変更可能である。
【００８９】
（実施の形態３）
つぎに、実施の形態３について説明する。図１９は、実施の形態３にかかるバーコード読取装置の構成を示す模式図である。図１９に示すように、実施の形態３にかかるバーコード読取装置３０１は、図１０に示すバーコード読取装置２０１におけるデコード処理部２１０に代えて、デコード処理部３１０を備えた構成を有する。デコード処理部３１０は、受光手段における逆方向走査速度と順方向走査速度とが異なる場合、逆方向走査に対応するカウントデータと順方向走査に対応するカウントデータのいずれか一方を他方のカウントデータにおける走査速度に対応させて補正した後に補完処理を行なう。
【００９０】
つぎに、図１９に示すバーコード読取装置３０１のバーコード読取処理について説明する。図２０は、図１９に示すバーコード読取装置３０１におけるバーコード読取処理の処理手順を示すフローチャートである。
【００９１】
図２０に示すように、バーコード読取装置３０１は、図１１のステップＳ２０２〜ステップＳ２１２と同様に、順方向デコード処理（ステップＳ３０２）、デコード成功判断処理（ステップＳ３０４）、順方向データ保持処理（ステップＳ３０６）、逆方向デコード処理（ステップＳ３０８）、デコード成功判断処理（ステップＳ３１０）および最初のキャラクタパターン不一致判断処理（ステップＳ３１１）を行なう。
【００９２】
そして、デコード処理部３１０は、逆方向走査に対応するカウントデータと順方向走査に対応するカウントデータのいずれか一方を他方のカウントデータにおける走査速度に対応させて補正する補正処理を行なう（ステップＳ３１２）。たとえば、デコード処理部３１０は、図２１に示すように、逆方向走査における走査速度が順方向走査における走査速度よりも遅く、バーコード信号Ｂ２ｂの各エレメント幅が、順方向走査におけるバーコード信号Ｂ１と異なる時間幅となる場合、矢印Ｙ３１に示すように、逆方向走査のバーコード信号を順方向走査における走査速度に対応させて補正したバーコード信号Ｂ２ｃを生成する。そして、デコード処理部３１０は、バーコードＢ１と補正したバーコード信号Ｂ２ｃとを用いて、図１１に示すステップＳ２１３〜ステップＳ２２０と同様に、比較領域のカウント値の一致判断処理（ステップＳ３１３）、逆方向データ保持処理（ステップＳ３１４）、補完処理（ステップＳ３１６）、デコード処理（ステップＳ３１８）およびデコード成功判断処理（ステップＳ３２０）を行なう。
【００９３】
このように、実施の形態３によれば、順方向走査と逆方向走査における走査速度が異なっていた場合であっても、補正処理後に補完処理を行なうことによって、デコード処理の正確性を高めることができる。
【００９４】
（実施の形態４）
つぎに、実施の形態４について説明する。図２２は、実施の形態４にかかるバーコード読取装置の構成を示す模式図である。図２２に示すように、実施の形態４にかかるバーコード読取装置４０１は、図１に示すバーコード読取装置１における反射ミラー３、走査ミラー４、集光ミラー５、光学フィルタ６、センサ７およびシールド８に代えて、撮像部４０７および転送処理部４０８を備える。また、バーコード読取装置４０１は、図１に示すバーコード読取装置１における信号処理部９に代えて、信号処理部４０９を備える。なお、光源２は、バーコード記号２０全体に光を照射する。
【００９５】
撮像部４０７は、ＣＣＤ（Charge Coupled Diode）などによって構成され、光源２によってバーコード記号２０全体に照射された光のうちバーコード記号２０全体から反射された反射光を受光して、このバーコード記号２０全体に対応する受光信号を生成する。撮像部４０７は、図２３に例示するように、バーコード記号２０全体から反射された反射光の受光量を示す波形の受光信号Ｗｃを生成する。転送処理部４０８は、撮像部４０７から出力された受光信号を記憶するメモリ４０８ａを備え、受光信号を信号処理部４０９に転送する。
【００９６】
信号処理部４０９は、転送処理部４０９から転送された受光信号を記憶するメモリ４０９ａを備える。信号処理部４０９は、メモリ４０９ａに記憶された受光信号を取得して、第１の処理方向にしたがい波形信号を変換することによって第１のバーコード信号を生成し、第２の処理方向にしたがい波形信号を変換することによって第２のバーコード信号を生成する。具体的には、図２３に示すように、信号処理部４０９は、順方向であるＣ１方向にしたがって受光信号Ｗｃを１次微分した後に各ピーク信号を検出して順方向バーコード信号を生成する。そして、信号処理部４０９は、デコード処理部１０における順方向バーコード信号に対するデコード処理が失敗した場合、逆方向であるＣ２方向にしたがって受光信号Ｗｃを処理して逆方向バーコード信号を生成する。この場合も、実施の形態１と同様に、絵、文字または白以外の背景色がマージン領域にある場合にはマージン領域の影響を受けてしまい、バーコード信号の最初部分は、端部のエレメントの幅を正確に再現していない場合がある。このため、実施の形態１と同様に、デコード処理部１０は、端部のエレメント幅を正確にカウントしたカウントデータを補完処理において生成することによって、正確なデコード処理を実現している。
【００９７】
つぎに、図２４を参照して、バーコード読取装置４０１のバーコード読取処理について説明する。図２４は、図２２に示すバーコード読取装置４０１におけるバーコード読取処理の処理手順を示すフローチャートである。
【００９８】
まず、図２４に示すように、撮像部４０７は、バーコード記号２０全体からの反射光を受光してバーコード記号２０全体に対応する受光信号を生成し転送処理部４０８に出力する撮像処理を行なう（ステップＳ４０２）。転送処理部４０８は、撮像部４０７から出力された受光信号を信号処理部４０９に転送する転送処理を行なう（ステップＳ４０４）。つぎに、信号処理部４０９は、転送処理部４０８から転送された受光信号をメモリ４０９ａに記憶させる（ステップＳ４０６）。そして、信号処理部４０９およびデコード処理部１０は、たとえば図２３のＣ１方向で受光信号を処理してデコード処理を行なう順方向デコード処理を行なう（ステップＳ４０８）。つぎに、ステップＳ４０８における順方向デコード処理が成功または失敗したかを判断する（ステップＳ４１０）。デコード処理部１０は、順方向デコード処理が成功したと判断した場合（ステップＳ４１０：成功）、読み取ったバーコード記号２０の情報を図示しない外部装置に出力するとともに順方向デコード処理において用いられたカウントデータを消去してバーコード読取処理を終了する。
【００９９】
一方、デコード処理部１０は、順方向デコード処理が失敗したと判断した場合（ステップＳ４１０：失敗）、順方向デコード処理において用いられたカウントデータを記憶部１１に保持した後に（ステップＳ４１２）、たとえば図２３のＣ２方向で受光信号を処理してデコード処理を行なう逆方向デコード処理を行なう（ステップＳ４１４）。そして、デコード処理部１０は、ステップＳ４１４における逆方向デコード処理が成功または失敗したかを判断する（ステップＳ４１６）。デコード処理部１０は、逆方向デコード処理が成功したと判断した場合（ステップＳ４１６：成功）、読み取ったバーコード記号２０の情報を図示しない外部装置に出力するとともに順方向デコード処理および逆方向デコード処理において用いられたカウントデータを消去してバーコード読取処理を終了する。
【０１００】
一方、デコード処理部１０は、逆方向デコード処理が失敗したと判断した場合（ステップＳ４１６：失敗）、図６に示すステップＳ１２〜ステップＳ２０と同様に、最初のキャラクタパターン不一致判断処理（ステップＳ４１８）、逆方向データ保持処理（ステップＳ４２０）、補完処理（ステップＳ４２２）、デコード処理（ステップＳ４２４）、デコード成功判断処理（ステップＳ４２６）を行なう。
【０１０１】
つぎに、図２４に示す順方向デコード処理について説明する。図２５は、図２４に示す順方向デコード処理の処理手順を示すフローチャートである。図２５に示すように、まず、信号処理部４０９は、メモリ４０９ａに記憶された受光信号を取得する（ステップＳ４３１）。そして、信号処理部４０９は、たとえば図２３の順方向であるＣ１方向にしたがって受光信号Ｗｃをバーコード信号に変換して順方向バーコード信号を生成し（ステップＳ４３３）、デコード処理部１０に出力する。デコード処理部１０は、図７のステップＳ２４〜ステップＳ２６と同様に、エレメント幅カウント処理（ステップＳ４３４）、順方向データ記憶処理（ステップＳ４３５）およびデコード処理（ステップＳ４３６）を行なう。
【０１０２】
つぎに、図２４に示す逆方向デコード処理について説明する。図２６は、図２４に示す逆方向デコード処理の処理手順を示すフローチャートである。図２６に示すように、信号処理部４０９は、メモリ４０９ａに記憶された受光信号を取得する（ステップＳ４４１）。そして、信号処理部４０９は、たとえば図２３の逆方向であるＣ２方向にしたがって受光信号Ｗｃをバーコード信号に変換して逆方向バーコード信号を生成し（ステップＳ４４３）、デコード処理部１０に出力する。デコード処理部１０は、図８のステップＳ３４〜ステップＳ３６と同様に、エレメント幅カウント処理（ステップＳ４４４）、逆方向データ記憶処理（ステップＳ４４５）およびデコード処理（ステップＳ４４６）を行なう。
【０１０３】
このように、実施の形態４においては、ＣＣＤなどのような撮像素子を有するバーコード読取装置においても、受光信号の処理方向を変えてそれぞれ生成したバーコード信号を用いることによって補完処理を行なっている。この結果、実施の形態４によれば、実施の形態１と同様に、バーコード記号の端部に位置する端部エレメントに起因してデコードが失敗した場合、端部エレメントの計測値を、異なる処理方向で処理したバーコード信号における端部エレメントの計測値で置き換えて補完し、再度デコードすることによって、バーコード記号端部のエレメントを正確に表したバーコード信号を生成することができない場合であっても、バーコード記号を正確に読み取ることができる。
【０１０４】
なお、実施の形態４においては、転送処理部４０８における受光信号の転送方向を変えることによって、受光信号に対する処理方向を変えてもよい。具体的に、図２７を参照して説明する。図２７は、図２２に示すバーコード読取装置４０１におけるバーコード読取処理の他の処理手順を示すフローチャートである。
【０１０５】
図２７に示すように、撮像部４０７は、図２４のステップＳ４０２と同様に撮像処理を行なう（ステップＳ５０２）。転送処理部４０８は、撮像部４０７から出力された受光信号をメモリ４０８ａ内に記憶させる（ステップＳ５０４）。そして、転送処理部４０８は、たとえば図２３に示す順方向であるＣ１方向にしたがって、メモリ４０８ａ内に記憶させた受光信号を信号処理部４０９に転送する順方向転送処理を行なう（ステップＳ５０６）。信号処理部４０９およびデコード処理部１０は、順方向に転送された受光信号を用いて、図２４に示すステップＳ４０８と同様の処理手順を行なって、順方向デコード処理を行なう（ステップＳ５０８）。具体的には、信号処理部４０９は、順方向に転送された受光信号を転送順にしたがってバーコード信号に変換し、デコード処理部１０は、このバーコード信号におけるカウントデータをもとにデコード処理を行なう。
【０１０６】
そして、デコード処理部１０は、図２４に示すステップＳ４１０と同様に、デコード成功判断処理（ステップＳ５１０）を行い、順方向バーコード信号に対するデコード処理が失敗したと判断した場合（ステップＳ５１０：失敗）、図２４に示すステップＳ４１２と同様に、順方向データ保持処理を行なう（ステップＳ５１２）。
【０１０７】
つぎに、転送処理部４０８は、たとえば図２３に示す逆方向であるＣ２方向にしたがって、メモリ４０８ａ内に記憶させた受光信号を信号処理部４１０に転送する逆方向転送処理を行なう（ステップＳ５１３）。信号処理部４０９およびデコード処理部４０９は、逆方向に転送された受光信号を用いて、図２４に示すステップＳ４１４と同様の処理手順を行なって、逆方向デコード処理を行なう（ステップＳ５１４）。具体的には、信号処理部４０９は、逆方向に転送された受光信号を転送順にしたがってバーコード信号に変換し、デコード処理部１０は、このバーコード信号におけるカウントデータをもとにデコード処理を行なう。
【０１０８】
そして、デコード処理部１０は、図２４に示すステップＳ４１６〜ステップＳ４２６と同様に、デコード成功判断処理（ステップＳ５１６）、最初のキャラクタパターン不一致判断処理（ステップＳ５１８）、逆方向データ保持処理（ステップＳ５２０）、補完処理（ステップＳ５２２）、デコード処理（ステップＳ５２４）、デコード成功判断処理（ステップＳ５２６）を行なう。このように、転送処理部４０８における受光信号の転送方向を変えることによって、受光信号に対する処理方向を変えて補完処理を行なえるため、バーコード記号を正確に読み取ることができる。
【０１０９】
また、本実施の形態１〜４において、バーコード記号２０の右端部のエレメントＥｅについて逆方向バーコード信号を補完した場合について説明したが、これに限らず、図２８に示すように、バーコード記号２０における左端部のエレメントＥｓのカウント値について順方向バーコード信号を補完してもよい。たとえば、図２８の矢印Ｙ４１に示すように、Ｓ１方向にしたがった順方向バーコード信号内のエレメントＥｓに対応する領域Ｂ１ｔの最初のカウント値を、Ｓ２方向にしたがった逆方向バーコード信号におけるエレメントＥｓに対応する領域Ｂ２ｌの最後のカウントで置き換えることによって、順方向バーコード信号のカウントデータを補完してもよい。デコード処理部１０，２１０，３１０は、補完した順方向バーコード信号のカウントデータを用いて、図６に示すステップＳ１８、図１１に示すステップＳ２１８、図２０に示すステップＳ３１８、図２４に示すステップＳ４２４および図２７に示すステップＳ５２４における再度のデコード処理を行なえばよい。また、実施の形態２においては、図１１に示すステップＳ２１３において、たとえば図２８の矢印Ｙ４２に示すように、順方向バーコード信号内の領域Ｂｄ１の各エレメント幅と、逆方向バーコード信号内の領域Ｂｄ２内の各エレメント幅とを比較してもよい。また、図１４に示すステップＳ２１３において、たとえば図２８の矢印Ｙ４２に示すように、順方向バーコード信号内の領域Ｂｄ１の各幅のエレメントの配列パターンと、逆方向バーコード信号内の領域Ｂｄ２内の各幅のエレメントの配列パターンとを比較してもよい。
【０１１０】
また、本実施の形態１〜３においては、双方向の走査が可能である走査ミラーを備えたバーコード読取装置１，２０１，３０１について説明したが、これに限らず、走査光の照射領域が操作者によって走査されるペン型のバーコード読取装置についても適用可能である。
【図面の簡単な説明】
【０１１１】
【図１】実施の形態１にかかるバーコード読取装置の構成を示す模式図である。
【図２】図１に示すバーコード読取装置の走査光の方向を説明する図である。
【図３】図１に示すＳ２方向にしたがって逆方向走査光が照射された場合における逆方向バーコード信号を示す図である。
【図４】図１に示すＳ１方向にしたがって順方向走査光が照射された場合における順方向バーコード信号を示す図である。
【図５】図１に示すデコード処理部における補完処理を説明する図である。
【図６】図６は、図１に示すバーコード読取装置におけるバーコード読取処理の処理手順を示すフローチャートである。
【図７】図６に示す順方向デコード処理の処理手順を示すフローチャートである。
【図８】図６に示す逆方向デコード処理の処理手順を示すフローチャートである。
【図９】図６に示す補完処理の処理手順を示すフローチャートである。
【図１０】実施の形態２にかかるバーコード読取装置の構成を示す模式図である。
【図１１】図１０に示すバーコード読取装置におけるバーコード読取処理の処理手順を示すフローチャートである。
【図１２】図１０に示すデコード処理部の処理動作を説明する図である。
【図１３】実施の形態２にかかるバーコード読取装置の他の構成を示す模式図である。
【図１４】図１３に示すバーコード読取装置におけるバーコード読取処理の処理手順を示すフローチャートである。
【図１５】図１４に示す順方向デコード処理の処理手順を示すフローチャートである。
【図１６】図１４に示す逆方向デコード処理の処理手順を示すフローチャートである。
【図１７】図１４に示すデコード処理部の処理内容を説明する図である。
【図１８】図１４に示すデコード処理部の処理内容を説明する図である。
【図１９】実施の形態３にかかるバーコード読取装置の構成を示す模式図である。
【図２０】図１９に示すバーコード読取装置におけるバーコード読取処理の処理手順を示すフローチャートである。
【図２１】図２０に示す補正処理を説明する図である。
【図２２】実施の形態４にかかるバーコード読取装置の構成を示す模式図である。
【図２３】図２２に示すバーコード読取処理における受光信号の処理方向を説明する図である。
【図２４】図２２に示すバーコード読取装置におけるバーコード読取処理の処理手順を示すフローチャートである。
【図２５】図２４に示す順方向デコード処理の処理手順を示すフローチャートである。
【図２６】図２４に示す逆方向デコード処理の処理手順を示すフローチャートである。
【図２７】図２２に示すバーコード読取装置におけるバーコード読取処理の他の処理手順を示すフローチャートである。
【図２８】図６に示す補完処理を説明する図である。
【符号の説明】
【０１１２】
１，２０１，２０１ａ，３０１，４０１  バーコード読取装置
２  光源
３  反射ミラー
４  走査ミラー
５  集光ミラー
６  光学フィルタ
７  センサ
８  シールド
９  信号処理部
１０，２１０，２１０ａ，３１０  デコード処理部
１１  記憶部
２０  バーコード記号
４０７  撮像部
４０８  転送処理部
４０９  信号処理部
４０８ａ，４０９ａ  メモリ
【図１】
2008140255.tif 000003
【図２】
2008140255.tif 000004
【図３】
2008140255.tif 000005
【図４】
2008140255.tif 000006
【図５】
2008140255.tif 000007
【図６】
2008140255.tif 000008
【図７】
2008140255.tif 000009
【図８】
2008140255.tif 000010
【図９】
2008140255.tif 000011
【図１０】
2008140255.tif 000012
【図１１】
2008140255.tif 000013
【図１２】
2008140255.tif 000014
【図１３】
2008140255.tif 000015
【図１４】
2008140255.tif 000016
【図１５】
2008140255.tif 000017
【図１６】
2008140255.tif 000018
【図１７】
2008140255.tif 000019
【図１８】
2008140255.tif 000020
【図１９】
2008140255.tif 000021
【図２０】
2008140255.tif 000022
【図２１】
2008140255.tif 000023
【図２２】
2008140255.tif 000024
【図２３】
2008140255.tif 000025
【図２４】
2008140255.tif 000026
【図２５】
2008140255.tif 000027
【図２６】
2008140255.tif 000028
【図２７】
2008140255.tif 000029
【図２８】
2008140255.tif 000030