(57)【要約】【課題】専用の素子を用いることなくユーザの用途に柔軟に対応し、撮像画像を階調変換することができる光学的情報読取装置及び画像データ取込方法を提供する。【解決手段】イメージセンサ１によって撮像された画像をＣＰＵ２の階調変換手段により階調変換を施して内部メモリ２０に保持し、内部メモリ２０からメモリ３に転送している。この変換規則を規定した階調変換テーブル２３はユーザが任意に選択することができ、柔軟な変換規則を有する光学的情報読取装置とすることができる。【選択図】図１
2011076518.tif 000002
【特許請求の範囲】
【請求項１】
読取対象を撮像する２次元撮像素子を有する撮像部と、
ＣＰＵを有し、前記撮像部で撮像された読取対象をメモリに保持するときに画像処理してデコードする制御部と、
前記撮像部で撮像された読取対象の画像を保持するメモリと、を有する光学的情報読取装置であって、
前記制御部は、前記撮像部から画像データを受け、所定条件に基づく階調変換を実行し、階調変換後の画像データを前記メモリに保持する階調変換手段と、
前記メモリに格納された階調変換後の画像データを読出し、デコードする演算手段と、を具備する光学的情報読取装置。
【請求項２】
前記制御部のＣＰＵは、内部メモリを有し、
前記内部メモリは、
撮像部より得られる行単位の画像データを保持する受信バッファと、
前記メモリに転送する前の階調変換後の行単位の画像データを保持する送信バッファと、を有する請求項１記載の光学的情報読取装置。
【請求項３】
前記内部メモリはＳＲＡＭであり、
前記受信バッファは少なくとも２つの受信バッファを有し、
前記送信バッファは少なくとも２つの送信バッファを有し、
前記階調変換手段は、前記撮像部で撮像された画像信号を行単位で前記２つの受信バッファに交互に保持するデータ受信処理、前記受信バッファの行単位の画像データを各画素のデータ数を削減して、交互に前記送信バッファに転送する階調変換処理、及び前記２つの送信バッファより交互に前記メモリに転送する転送処理を並列に実行する請求項２記載の光学的情報読取装置。
【請求項４】
前記撮像部は、Ｌ列Ｍ行の画像データを出力するイメージセンサを有し、
前記階調変換手段は、画像処理に必要なｉ行からｉ＋Ｎ行（１≦ｉ＜Ｎ≦Ｌ）までのデータを取込んで前記受信バッファに保持し、
前記送信バッファの変換後のデータのうちｊからｊ＋Ｋ（１≦ｊ＜Ｋ≦Ｍ）までの列の画像データを送信バッファより前記メモリに出力する請求項２又は３記載の光学的情報読取装置。
【請求項５】
前記制御部は、取込んだ画像に対してフィルタ処理の一部もしくは全部を行って前記送信バッファに保持する請求項２又は３記載の光学的情報読取装置。
【請求項６】
請求項３記載の光学的情報読取装置のデータ取込方法であって、
撮像された画像信号を受信して前記画像信号を行単位で前記２つの受信バッファに交互に保持し、前記受信バッファの行単位の画像データを各画素のデータ数を削減して、交互に前記送信バッファに転送し、
及び送信バッファより前記メモリへの転送する処理を並列に実行する光学的情報読取装置のデータ取込方法。
【請求項７】
前記制御部は、受信バッファに保持された画像データのうち夫々異なった階調変換処理を施し、前記送信バッファに保持し、複数の画像データを前記メモリに転送するものであり、
前記演算手段は、前記メモリに保持されている複数の画像データに基づいてデコード処理を行う請求項１〜５のいずれか１項記載の光学的情報読取装置。
【請求項８】
複数の画像データは、メモリの連続した領域に配置される請求項７記載の光学的情報読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は２次元コード等を光学的に読み取る光学的情報読取技術に係り、特に２次元撮像素子を用いた光学的情報読取装置及び画像データ取込方法に関する。
【背景技術】
【０００２】
例えば、１次元コードや２次元コード等の光学的情報を撮像し、その撮像した光学的情報をデコードすることにより光学的情報の読み取りを行うイメージセンシング方式の光学的情報読取装置が知られている。このイメージセンシング方式の光学的情報読取装置は、画像データをフレーム毎に解析して復号化が行われる。光学的情報読取装置においては、特に製造コストや消費電力の低減という観点から、撮像部にＣＭＯＳイメージセンサを用いた光学的情報読取装置が普及する傾向にある。一般にＣＭＯＳイメージセンサでは、撮像画像における高解像度化の要求によって情報量の大容量化が求められている。このためデータ出力が１０ビットであるものが主流になりつつある。一方光学的情報読取装置本体においては、製造コストの削減や小型化、画像処理の高速化という観点から処理能力の向上及びメモリ容量の拡大には限界がある。またＱＲコード等の２次元コードを認識するためには、８ビットの画像データで十分である場合が多い。そこでＣＭＯＳイメージセンサからの出力データをあらかじめ定められた規則に則り、ビット数がより小さいデジタルデータに変換して画像データの取込みを行う光学的情報読取装置が提案されている。特許文献１には上位ビットに応じて１０ビットのうちの８ビットのみを画像データとして取込むデータ取込装置が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−６５６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の光学的情報読取装置では、ＣＰＵ前段の専用回路でＣＭＯＳイメージセンサによる画像データの各画素の出力のうち、一部のビットのデータ出力を落し、残りのビットのデータ出力を有効な画像データとして取込みが可能である。しかし専用のＣＰＬＤやゲートアレー素子が必要となり、変換規則の変更が容易ではない。そのため撮像画像に対する解析の用途・精度を考慮してビット数の削減手法の変更ができないという欠点があった。
【０００５】
本発明では上述した問題点に鑑みてなされたもので、専用の素子を用いることなくユーザの用途に柔軟に対応し、撮像画像に対する解析精度を考慮してビット数を削減して取込むことができる光学的情報読取装置及び画像データ取込方法を提供するものである。
【課題を解決するための手段】
【０００６】
この課題を解決するために、本発明の光学的情報読取装置は、読取対象を撮像する２次元撮像素子を有する撮像部と、ＣＰＵを有し、前記撮像部で撮像された読取対象をメモリに保持するときに画像処理してデコードする制御部と、前記撮像部で撮像された読取対象の画像を保持するメモリと、を有する光学的情報読取装置であって、前記制御部は、前記撮像部から画像データを受け、所定条件に基づく階調変換を実行し、階調変換後の画像データを前記メモリに保持する階調変換手段と、前記メモリに格納された階調変換後の画像データを読出し、デコードする演算手段と、を具備するものである。
【０００７】
ここで前記制御部のＣＰＵは、内部メモリを有し、前記内部メモリは、撮像部より得られる行単位の画像データを保持する受信バッファと、前記メモリに転送する前の階調変換後の行単位の画像データを保持する送信バッファと、を有するようにしてもよい。
【０００８】
ここで前記内部メモリはＳＲＡＭであり、前記受信バッファは少なくとも２つの受信バッファを有し、前記送信バッファは少なくとも２つの送信バッファを有し、前記階調変換手段は、前記撮像部で撮像された画像信号を行単位で前記２つの受信バッファに交互に保持するデータ受信処理、前記受信バッファの行単位の画像データを各画素のデータ数を削減して、交互に前記送信バッファに転送する階調変換処理、及び前記２つの送信バッファより交互に前記メモリに転送する転送処理を並列に実行するようにしてもよい。
【０００９】
ここで前記撮像部は、Ｌ列Ｍ行の画像データを出力するイメージセンサを有し、前記階調変換手段は、画像処理に必要なｉ行からｉ＋Ｎ行（１≦ｉ＜Ｎ≦Ｌ）までのデータを取込んで前記受信バッファに保持し、前記送信バッファの変換後のデータのうちｊからｊ＋Ｋ（１≦ｊ＜Ｋ≦Ｍ）までの列の画像データを送信バッファより前記メモリに出力するようにしてもよい。この場合に不要な画像データをメモリに保持する必要がなく、このためメモリの容量を削減することができ、ハードウェア資源を有効に活用することができる。
【００１０】
ここで前記制御部は、取込んだ画像に対してフィルタ処理の少なくとも一部もしくは全部を行って前記送信バッファに保持するようにしてもよい。
【００１１】
この課題を解決するために、本発明の光学的情報読取装置のデータ取込方法は、撮像された画像信号を受信して前記画像信号を行単位で前記２つの受信バッファに交互に保持し、前記受信バッファの行単位の画像データを各画素のデータ数を削減して、交互に前記送信バッファに転送し、及び送信バッファより前記メモリへの転送する処理を並列に実行するものである。
【００１２】
ここで前記制御部は、受信バッファに保持された画像データのうち夫々異なった階調変換処理を施し、前記送信バッファに保持し、複数の画像データを前記メモリに転送するものであり、前記演算手段は、前記メモリに保持されている複数の画素データに基づいてデコード処理を行うようにしてもよい。変換後の複数の画像データをメモリに保持するため、デコードの失敗の確率を少なくすることができる。ここで複数の画像データは、メモリの連続した領域に配置されるようにしてもよい。この場合に１枚の画像でデータのデコード処理が完了しなくても他の画像データのデータを用いてデコードすることができるため、待機時間を短縮することができるという効果が得られる。
【発明の効果】
【００１３】
このような特徴を有する本発明によれば、ユーザが選択した変換規則で画像を階調変換してメモリに保持することができる。従ってユーザの用途に柔軟に対応した階調変換が可能となり、専用のハードウェアも不要となる。
【図面の簡単な説明】
【００１４】
【図１】図１は本発明の第１の実施の形態による２次元コードリーダの全体構成を示すブロック図である。
【図２】図２は本実施の形態によるＣＰＵ内部のＳＲＡＭとデータの移動を示す図である。
【図３】図３は本実施の形態によるＳＲＡＭとイメージセンサのデータ及びメモリへの転送の詳細を示す図である。
【図４】図４はビット取込処理、階調変換処理、及びデータのメモリへの転送処理を示すタイムチャートである。
【図５Ａ】図５Ａは第１の方法による１０ビットのデータの８ビットへの変換出力を示すグラフである。
【図５Ｂ】図５Ｂは第２の方法による１０ビットのデータの８ビットへの変換出力を示すグラフである。
【図５Ｃ】図５Ｃは第３の方法による１０ビットのデータの８ビットへの変換出力を示すグラフである。
【図６Ａ】図６Ａは本実施の形態による１０ビットの画像を上位８ビットの画像に変換した画像データの一例を示す図である。
【図６Ｂ】図６Ｂは本実施の形態による１０ビットの画像を中間８ビットの画像に変換した画像データの一例を示す図である。
【図６Ｃ】図６Ｃは本実施の形態による１０ビットの画像を下位８ビットの画像に変換した画像データの一例を示す図である。
【図７】図７はレーザマーカで記録したＱＲコードの一例を示す図である。
【図８】図８はオリジナルのＱＲコードの一例を示す図である。
【図９】図９は本実施の形態による動作開始後の処理を示す図である。
【図１０】図１０は本実施の形態による動作開始後のデータ取込処理を示すフローチャートである。
【図１１】図１１はイメージセンサからの出力とＣＰＵへの処理及びメモリへの取込画像を示す図である。
【図１２】図１２はイメージセンサからの出力の画像及びＣＰＵでの処理内容、メモリへの画像を示す図である。
【図１３】図１３は本発明の第３の実施の形態によるデータの取込処理を示す概略図である。
【図１４】図１４は本発明の第３の実施の形態によるデータの取込処理を示す概略図である。
【図１５】図１５は従来例によるデータ取込後のデコード処理を示すタイムチャートである。
【図１６】図１６は本実施の形態によるデータ取込後のデコード処理を示すタイムチャートである。
【発明を実施するための形態】
【００１５】
図１は本発明の第１の実施の形態による２次元撮像素子を有するコードリーダの構成を示すブロック図である。この実施の形態によるコードリーダは、２次元コード等が印字された商品や製造物の搬送ラインに隣接して設置され、２次元コード等に記録された情報を読み取るものである。図１においてイメージセンサ１はＣＣＤ等の２次元撮像素子であり、搬送されてきた物体の２次元コード等を撮像する撮像部である。ここでイメージセンサ１は、各画素毎に例えば１０ビットの階調を有する画像データを出力する。一方ＱＲコード等の２次元コードを認識するためには、８ビットの画像データで十分である。そこで本実施の形態では、イメージセンサ１からの画像出力をＣＰＵ２の内部で１０ビットから８ビットにデータを変換した後、メモリ３に取込むようにしている。通信制御部４は図示しない上位ホストからのコマンドを受け取り、デコード結果を転送するものである。又ＲＯＭ５には１０ビットの階調を有する画像データを８ビットの画像データに変換するための変換ルールのファイルを少なくとも１つ保持しており、複数の場合ユーザが選択できるようにしている。
【００１６】
ＣＰＵ２は撮像部で撮像された読取対象をメモリに保持するときに画像処理すると共に、メモリに保持された画像を用いてデコードを実行する制御部であり、その内部構成について説明する。ＣＰＵ２内にはデータ転送のためのＤＭＡコントローラ１０、ＳＲＡＭ２０及び演算器３０が設けられている。ＳＲＡＭ２０はデータを一時的に保持する内部メモリである。演算器３０はメモリ３に保持された８ビットの１画面分の２次元コードの画像に基づいて２次元コードをデコードする演算手段である。ＳＲＡＭ２０内には、転送されてきた１行分の画像データを一時保持する受信バッファ２１、階調変換後の１行分の画像データを送信するまで保持する送信バッファ２２、及び１０ビットのデータを８ビットに変換する少なくとも１つの階調変換テーブル２３の各領域を有している。ＣＰＵ２はＳＲＡＭ２０を用いて撮像部から画像データを受け、所定条件に基づく階調変換を実行し、階調変換後の画像データをメモリに保持する階調変換手段の機能を達成している。
【００１７】
図２は最も基本的なイメージセンサ１とＣＰＵ２内の内部のＳＲＡＭ及びメモリ３の間のデータの移動を示す図である。データを取込む前にユーザはあらかじめＲＯＭ５の変換ルールファイルを選択して、ＣＰＵ２のＳＲＡＭ２０に階調変換テーブル２３として保持している。図２に示すようにイメージセンサ１は２次元コードを含む画像を撮像した後、１画素当り１０ビットの画像データを１行目より順次行単位で転送してくるものとする。ＣＰＵ２内部では受信バッファ２１にこのデータを取込む。そしてＣＰＵのＳＲＡＭ２０内で階調変換テーブル２３を用いて受信バッファ２１に保持された１０ビットのデータを８ビットのデータに変換し、送信バッファ２２に保持する。そして送信バッファ２２からメモリ３にデータを転送する。この処理を並列的に行うことによって画像取込時間を短縮している。
【００１８】
次に図３はＣＰＵ２内部のＳＲＡＭ２０とイメージセンサ１からのデータ及びメモリ３に転送するデータの詳細を示す。この実施の形態に示すようにＣＰＵ２内部のＳＲＡＭ２０には１０ビットの１行分のデータを保持する受信バッファ２１ａ，２１ｂ及び８ビットの１行分のデータを保持する送信バッファ２２ａ，２２ｂを有している。
【００１９】
図４はデータ取込、データ変換及びデータ転送を並列に実行する状態を示すタイムチャートである。本図において期間Ｔ１には、イメージセンサ１から得られた１０ビットの１行目のデータを受信バッファ２１ａに保持する。次に期間Ｔ２にはイメージセンサ１より２行目の１０ビットのデータを受信し、受信バッファ２１ｂに保持する。この期間Ｔ２には、同時に受信バッファ２１ａに保持されている１行目の１０ビットの画像データを後述する規則に従って８ビットの画像に変換して、送信バッファ２２ａに順次転送していく。次の期間Ｔ３にはイメージセンサ１より得られる３行目の画像データを受信バッファ２１ａに取込み、更に受信バッファ２１ｂに保持されている２行目のデータを８ビットの画像に変換して送信バッファ２２ｂに転送する。このとき同時に送信バッファ２２ａの１行目の変換後のデータをメモリ３に転送する。期間Ｔ４にはイメージセンサ１より得られる４行目の画像データを受信バッファ２１ｂに取込み、更に受信バッファ２１ａに保持されている３行目のデータを８ビットの画像に変換して送信バッファ２２ａに転送する。このとき同時に送信バッファ２２ｂの２行目の変換後のデータをメモリ３に転送する。以降の期間Ｔ５・・・ＴN，ＴN+１にも行番号をずらせて同様の処理を繰り返す。このように２つの受信バッファ２１ａ，２１ｂ及び２つの送信バッファ２２ａ，２２ｂを備えることにより、データ取込、データ変換及びデータ転送処理を並列的に実行することができる。
【００２０】
次にこの１０ビットの画像データを８ビットの画像データに変換する３つの規則について説明する。図５Ａ〜図５Ｃはイメージセンサからの１０ビットの出力と８ビットの変換後の出力の関係を示す図である。第１の方法はイメージセンサの１０ビットのうち下位２ビットを削除し、上位８ビットのみを変換後の８ビットの画像データとするものである。図５Ａ（ａ）において左方に示す０〜１０２３はイメージセンサ１の出力、０〜２５５は変換後の８ビットの出力を示している。この場合には、図５Ａ（ｂ）のグラフに示すように１０２４階調の変化が２５６階調に直線的に変化することとなる。
【００２１】
第２の方法は、１０ビットのデータのうち上位の２ビットを削除し、下位８ビットを変換後の８ビットの画像データとするものである。この場合には、図５Ｂ（ｂ）のグラフに示すように入力の０〜２５５階調までは直線的に変化するが、２５５で飽和し、それ以降は最高レベルを保持するものとなる。
【００２２】
次に第３の方法は、入力となる１０ビットのデータを対数項を含む関数を用いて８ビットのデータに変化させる略対数変換処理である。この場合には、例えば図５Ｃ（ｂ）のグラフに示すように１０２４階調の変化が２５６階調に曲線状に変化するものとなる。この変換手法では係数を選択することにより種々の曲線とすることができる。
【００２３】
上記の３つの方法以外に中間の８ビットを選択する方法が考えられる。本実施の形態ではこれらのいずれかの変換のための入出力をテーブルとしてあらかじめ階調変換テーブル２３に保持しておく。こうすれば変換テーブルの変更のみでハードウェアを変更せずに変換方法を変更することができる。変換方法は後述するように、ユーザが任意に選択できるようにしている。
【００２４】
図６Ａは１０ビットの画像データのうち、上位８ビットを用いて８ビットの画像データに変換した４つの画像の例を示す図、図６Ｂは１０ビットの画像データのうち中間の８ビットにより構成された４つの画像の例を示す図、図６Ｃは１０ビットの画像データのうち下位８ビットを用いて８ビットの画像データに変換した４つの画像の例を示す図である。又対数変換画像については上位８ビットの暗い部分と下位８ビットの明るい部分とを構成したような画像となる。
【００２５】
このようにビット選択によって、メモリに保持する画像の特徴（明るさ、階調変化）を変化させることができ、メモリに格納された画像を用いてＣＰＵ２で実行するデコード可否にも影響を及ぼす。例えば、図６Ａ〜図６Ｃで示す一番左のＱＲコードは、図６Ａでは暗すぎるため、デコードが困難となるが、図６Ｃであればデコードが容易となる。一方、一番右のＱＲコードでは、図６Ｃでは明るすぎて、デコード困難となるが、図６Ａであればデコード容易となる。すなわち、階調変化はデコード処理の際の白黒判別のし易さに影響を及ぼし、明るさは各白黒ドットやセルの膨張収縮によるコード情報の誤認識にもつながる。コードリーダ内には撮像条件を保持するための領域がバンクパラメータとして設けられており、２次元コード等の撮像条件と共に、ビット選択条件をバンクパラメータに設定する。当該パラメータに基づき画像を取り込むことにより、デコード成功率の向上につながる。
【００２６】
次にフィルタ処理について説明する。１０ビットのデータを８ビットのデータに変換する際に、同時にフィルタ処理を行うようにしてもよい。フィルタ処理は例えば膨張フィルタ処理や収縮フィルタ処理が考えられる。本実施の形態では１行単位で階調変換しているため、膨張フィルタ処理や収縮フィルタ処理についても行単位で行うことが可能となる。この場合の膨張フィルタ処理とは、注目画素の輝度データを隣接する２つの画素と注目画素の３つの中で最大輝度のデータに置き換える処理をいう。又収縮フィルタ処理とは、注目画素の輝度データを隣接する２つの画素と注目画素の３つの中で最小輝度のデータに置き換える処理をいう。フィルタ処理は例えばレーザマーカで記録した場合など図７に示すようにＱＲコードが点線となっていれば、そのままではデコードできない。一方元のＱＲコードの場合には図８に示すようにＱＲコードが直線になっており、デコードすることができる。このような場合フィルタ処理で画像を適宜変換してデコードできるようにする。
【００２７】
次に本実施の形態による画像の取込処理の動作について説明する。図９は動作を開始した直後の処理を示すフローチャートである。この処理を開始すると、まずステップＳ１においてユーザに変換規則の選択を促す。次にステップＳ２においてユーザにフィルタの要否、種類の選択を促す。こうして変換規則とフィルタが選択されると、変換規則に基づいて入力データを出力データに変換するテーブルを作成する（ステップＳ３）。そしてこのテーブルをＣＰＵ２内のＳＲＡＭ２０に階調変換テーブル２３として書込んでおく（ステップＳ４）。
【００２８】
次にデータの取込み後の処理について図１０を用いて説明する。処理を開始すると、ステップＳ１１においてイメージセンサ１から１行分のデータをＳＲＡＭの受信バッファ２１に取得する。そしてステップＳ１２において１行分のデータを階調変換する。次いでステップＳ１３において画像データのフィルタ処理が必要かどうかを判別し、必要であれば１行分のデータのフィルタ処理を行う（ステップＳ１４）。そしてステップＳ１５において処理後のデータを送信バッファ２２に保持する。ステップＳ１６において１行分のデータをＳＲＡＭ２０からメモリ３に転送し、１画像全体の取込処理を終了したかどうかを判別する（Ｓ１７）。処理が終了していなければステップＳ１１に戻って同様の処理を繰り返す。処理が終了した場合には取込処理を終了する。尚ステップＳ１２の処理はステップＳ１５の直前であってもよい。
【００２９】
こうすればデータの階調変換処理等のための専用チップが不要となり、低コスト化を図ることができる。又階調変換のデータ処理はソフトウェア処理で実行しているため、上位８ビットの選択、下位８ビットの選択、又上下の１ビットを除く中間の８ビットの選択やログ変換等、自由な変換規則を任意に選択することができる。又フィルタ処理を階調変換とほぼ並列的に実行することができる。ここでフィルタ処理は不要であればステップＳ２のフィルタ選択やステップＳ１３，Ｓ１４を削除するようにしてもよい。
【００３０】
次に本実施の形態の変形例について説明する。前述した第１の実施の形態のフィルタ処理では、行単位でフィルタ処理を行っていた。これに代えて隣接する３行単位で膨張フィルタ処理や収縮フィルタ処理を行うこともできる。この場合の膨張フィルタ処理とは、３×３画素の中心画素の輝度を隣接する周囲の９画素の中での最大輝度のデータに置き換える処理をいう。又収縮フィルタ処理とは、３×３画素の中心画素の輝度を周囲の９画素の中で最小輝度のデータに置き換える処理をいう。この場合には１０ビットの画像データ受信用のバッファとして３行分を２組、即ち６つの受信バッファが必要であり、同様に送信バッファとしても３行分のバッファを２組、即ち６つの送信バッファが必要となる。このように行単位でのフィルタ処理を階調変換と同時に行うようにしておけば、フィルタ処理を短時間で行うことができる。又３×３画素のフィルタ処理を行う場合であっても、行単位でメモリ３に一旦保持した後、メモリ３から読出して改めてフィルタ処理を行うようにしてもよい。
【００３１】
次に本発明の第２の実施の形態について説明する。本実施の形態はＣＰＵ２のＳＲＡＭへの取込画像の領域制限を行うものであり、基本的な構成は図１と同様である。イメージセンサ１から出力される画像データのうち、必要な領域は全領域のうちの一部である場合がある。このような場合には、不要な領域はメモリ３に取込む必要はなく、必要な領域のみを取込めば足りる。ＣＣＤやＣＭＯＳセンサ等の撮像素子には、露出時間やハードウェアのタイミングがセンサから出力する列数に依存して変化するものがある。そのため列単位で取込みの領域を制限した場合には、ＣＣＤ等の画像撮像素子の露出時間のタイミングやハードウェアのタイミング設計が複雑となる。そこで本実施の形態では、行単位で必要な行のみを前述したように階調変換してメモリに取込むようにしている。
【００３２】
イメージセンサ１はＬ行Ｍ列の１０ビットのデータを出力するものとする。図１１（ａ）はイメージセンサが出力する画像、図１２（ａ）はこれに対応する画像データを示している。このＬ行Ｍ列の画像データ４０のうち図１１（ａ）に示すように、一部の領域のみに２次元コードが撮像されていたとすると、この領域を注目領域（ＲＯＩ：region of interest）４１とする。注目領域４１を例えばｉ〜ｉ＋Ｎ行、ｊ〜ｊ＋Ｋ列（１≦ｉ＜Ｎ≦Ｌ，１≦ｊ＜Ｋ≦Ｍ）とすると、この領域の画像情報のみがあれば２次元コードをデコードするには十分である。
【００３３】
従ってＣＰＵ２は図１１（ｂ）に示すように２次元コードデータの処理に必要な行、即ちハッチングを施していないｉ〜ｉ＋Ｎ行の全ての列のデータを受信バッファ２１ａ，２１ｂに交互に保持する。そしてこれらの行の１０ビットを８ビットのデータに変換し、順次送信バッファ２２ａ，２２ｂに交互に保持する。このうちｊ〜ｊ＋Ｋ列目のデータのみをメモリ３に転送する。図１１（ｃ）はメモリ３上に構築された画像、図１２（ｃ）はその画像データを示している。
【００３４】
例えばイメージセンサの画像データが４８０行７５２列の１０ビット画像データである場合に、そのうち必要な領域は１０１行〜２００行、１０１列〜２００列とする。このとき１０１行〜２００行の画像データのみをＣＰＵ２に取込み、１０ビットから８ビットに変換してメモリ３に転送する。そして階調変換した１０１行〜２００行のうち１０１列目から２００列目までのデータをメモリ３に転送するようにすれば、メモリには１００列１００行分の８ビット画像データを得ることができる。これによって図１２（ｃ）に示すようにメモリ３に保持する必要があるデータを大幅に削減することができる。このような処理は２次元コードを対象とし、２次元コードが撮像された領域のみをメモリに取込む際に極めて有用となる。
【００３５】
次に本発明の第３の実施の形態について説明する。この実施の形態では複数の変換規則を用いて階調変換された複数の画像データを保持するものであり、基本的な構成は図１と同様である。階調変換された１枚の画像データをメモリに保持した場合には、保持した後にメモリより読出し、演算器を用いてデコード処理が行われる。しかしイメージセンサの露出時間やゲイン設定が十分でなければ、再度撮像してメモリに撮像するか、階調変換規則を変更し、メモリに転送する必要がある。従って環境の変化によってデコードできない場合に、複数回の処理が必要となって時間がかかるという欠点があった。この実施の形態では複数の画像を同時に保持しておくものとする。図１３はＣＰＵ２の構造とこの処理のイメージセンサからメモリへのデータ転送を示す図である。図１３においてＣＰＵ２は第１の実施の形態のＤＭＡコントローラ１０，ＳＲＡＭ２０及び演算器３０を有している。この実施の形態においてＳＲＡＭ２０には受信バッファ２１と送信バッファ２５，２６及び複数の階調変換テーブル２３ａ，２３ｂが設けられる。そして図示のようにイメージセンサ１からの出力をＣＰＵ２を介して１０ビットデータのままで一旦メモリ３に保持する。その後ＣＰＵ２はこれを読出し、受信バッファ２１に保持する。そして異なる階調変換テーブル２３ａ，２３ｂを用いて階調変換し、２つの８ビットの画像データＡ，Ｂを作成して再びメモリ３に書き込む。このとき２つの８ビットの画像データＡ，Ｂは夫々異なった変換規則で変換された画像データである。
【００３６】
こうして８ビットの２つの画像データを図２に示すように連続したメモリ領域に配置することで、まとめて１つの大きな画像データとして取り扱えば、後にフィルタ処理を行う場合にこれらをまとめて処理することができる。ここで２つの画像データＡ，Ｂは夫々異なった変換規則を用いるものとする。例えば前述したように、１０ビットのうち上位８ビットの選択、１０ビット中の中間の８ビットの選択、１０ビット中の下位８ビットの選択、ログ変換などから任意の階調変換規則を選択して２つの画像データを生成するようにしてもよい。こうすれば１回の画像データの取込みで明るさなどの異なる８ビットの２枚の画像データをメモリ３の連続した領域に保持することができる。
【００３７】
又これに代えて図１４に示すようにＣＰＵの処理能力に余裕があれば、１０ビットの画像データを一旦ＣＰＵ２のＳＲＡＭ２０に保持し、このデータを用いて８ビットの画像データＡ，Ｂを夫々作成し、メモリ３に転送してもよい。このバッファには１０ビットの画像データを保持するための受信バッファ２１ａ，２１ｂと８ビットの画像データを保持するための送信バッファ２５ａ，２５ｂ，２６ａ，２６ｂを用いる。これによりデータの転送と２つの画像データへの階調変換及びデータ転送を並列して行うことができる。
【００３８】
ここで従来例と本実施の形態のデコードの時間を比較して説明する。例えばある条件で撮像した画像をデコードし、デコードに成功しない場合はタイムアウトし、次の撮像条件で撮像してこれをデコードするまで繰り返すものとする。一般的に撮像に要する時間を３０ｍｓ、デコードに成功したときのデコードにかかる時間を２０ｍｓ、デコードが成功しないときに処理を打ち切るタイムアウト時間を成功時間の５倍と仮定し１００ｍｓとする。そして撮像条件、例えばゲインを変化させて条件Ａ，Ｂ，Ｃとし、これらの条件Ａ，Ｂ，Ｃで順にデコードするものとする。この場合、図１５（ａ）に示すように条件Ａで撮像しデコードしたが、デコードに成功せず、次いで条件Ｂで撮像しデコードしたが、デコードに成功せずいずれもタイムアウトし、条件Ｃで撮像してデコードが成功したとする。この場合は所要時間は３１０ｍｓとなる。次に例えば図１５（ｂ）に示すように撮像とデコードを繰り返し２回目にデコードに成功した場合には、所要時間は例えば１８０ｍｓとなる。又撮像とデコードを繰り返して１回目にデコードに成功した場合は、例えば図１５（ｃ）に示すように５０ｍｓとなる。以上の３つの条件でデコードに成功する確率が等しいとすると、この場合の読取時間の期待値は１８０ｍｓとなる。
【００３９】
一方本実施の形態において３枚の画像、例えば１０ビットの上位８ビットの画像データＡ、上下１ビットを除く中位８ビットの画像データＢ及び下位８ビットの画像データＣを作成し、メモリの連続した領域に配置し、３枚分の大きさの１枚の連結画像を生成してからデコード処理を行う場合について説明する。この場合１０ビット画像の取得にかかる時間を３０ｍｓ、１０ビット画像をメモリ上の３つの画像データに展開するに要する時間を１５ｍｓ、デコードが成功したときのデコードにかかる時間は画像のデータ量に比例する傾向があるので従来例に比べ３倍の６０ｍｓとし、デコードが成功しないときに処理を打ち切るタイムアウト時間を成功時間の５倍と仮定し３００ｍｓとする。ここで１０ビットの画像を取り込んで３つの８ビット画像に展開し、通常画像をデコードした画像Ｃでデコードが成功した場合には、図１６（ａ）に示すように１０５ｍｓを要する。同様にして画像Ｂでデコードに成功した場合には、図１６（ｂ）に示すように１０５ｍｓを要する。画像Ａをデコードして成功した場合には図１６（ｃ）に示すように１０５ｍｓを要する。３倍の画像データを処理するのでデコード時間は従来例に比べ３倍の６０ｍｓとなるが、Ａ，Ｂ，Ｃのどの部分で成功しても読取時間は１０５ｍｓとなり、従来例で示した期待値よりも短く、且つばらつきがないという効果が得られる。
【００４０】
尚この実施の形態では２種類の相異なる画像データをメモリに保持するようにしているが、３種類、又はそれ以上の画像データをメモリ３の連続した領域に保持するようにしてもよい。
【００４１】
上述した各実施の形態では、階調変換テーブルを用いて１０ビットを８ビットに変換するようにしているが、ビット数はこれに限定されるものではない。又階調変換テーブルに限らず、階調変換規則を数式として保持するものであってもよい。
【００４２】
尚この実施の形態では２次元コードリーダを例にして説明したが、本発明による光学的情報読取装置は２次元コードリーダに限らず、２次元の画像情報を読取る種々の光学的情報読取装置にも適用することができる。
【産業上の利用可能性】
【００４３】
本発明は２次元コード等を光学的に読み取る光学的情報読取装置において、ユーザの用途に対応しユーザが選択した変換規則で画像を階調変換してメモリに保持することができ、種々の使用状態での光学的情報読取装置に有用である。
【符号の説明】
【００４４】
１  イメージセンサ
２  ＣＰＵ
３  メモリ
４  通信制御部
１０  ＤＭＡコントローラ
２０  ＳＲＡＭ
２１，２１ａ，２１ｂ  受信バッファ
２２，２２ａ，２２ｂ，２５，２５ａ，２５ｂ，２６，２６ａ，２６ｂ  送信バッファ
２３，２３ａ，２３ｂ  階調変換テーブル
３０  演算器
４０  画像データ
４１  注目領域
【図１】
2011076518.tif 000003
【図２】
2011076518.tif 000004
【図３】
2011076518.tif 000005
【図４】
2011076518.tif 000006
【図５Ａ】
2011076518.tif 000007
【図５Ｂ】
2011076518.tif 000008
【図５Ｃ】
2011076518.tif 000009
【図９】
2011076518.tif 000010
【図１０】
2011076518.tif 000011
【図１１】
2011076518.tif 000012
【図１２】
2011076518.tif 000013
【図１３】
2011076518.tif 000014
【図１４】
2011076518.tif 000015
【図１５】
2011076518.tif 000016
【図１６】
2011076518.tif 000017
【図６Ａ】
2011076518.tif 000018
【図６Ｂ】
2011076518.tif 000019
【図６Ｃ】
2011076518.tif 000020
【図７】
2011076518.tif 000021
【図８】
2011076518.tif 000022