JP4449791B2 - コード読み取り装置、コード読み取り方法及びプログラム - Google Patents

コード読み取り装置、コード読み取り方法及びプログラム Download PDF

Info

Publication number
JP4449791B2
JP4449791B2 JP2005065872A JP2005065872A JP4449791B2 JP 4449791 B2 JP4449791 B2 JP 4449791B2 JP 2005065872 A JP2005065872 A JP 2005065872A JP 2005065872 A JP2005065872 A JP 2005065872A JP 4449791 B2 JP4449791 B2 JP 4449791B2
Authority
JP
Japan
Prior art keywords
decoding
image
image data
image processing
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005065872A
Other languages
English (en)
Other versions
JP2006252039A (ja
Inventor
淑英 藤井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2005065872A priority Critical patent/JP4449791B2/ja
Publication of JP2006252039A publication Critical patent/JP2006252039A/ja
Application granted granted Critical
Publication of JP4449791B2 publication Critical patent/JP4449791B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、コード読み取り装置、コード読み取り方法及びプログラムに関する。
従来から、太さや間隔の異なる棒(バー)を並べ合わせることで様々な情報を符号化したバーコード(一次元コード)が知られているが、一次元コードの情報量の不足に対する要望から、点や線を縦横に複雑に組み合わせることより多くの情報を符号化する二次元コードが考案されて広く普及してきた(以下、一次元コード及び二次元コードを総称して「デジタルコード」という。)。
また、デジタルコードによって符号化された情報の読み取りを行うコード読み取り装置が広く普及している。コード読み取り装置は、記録媒体上に記録されたデジタルコードをイメージセンサで撮像し、その撮像画像をデコード(復元)処理することで、デジタルコードの読み取りを行う(特許文献1参照)。
特開2000−353212号公報
ここで、従来のコード読み取り装置100の具体的な動作例を、図14(a)及び(b)を用いて簡単に説明する。図14(a)によれば、コード読み取り装置100は、CPU(Central Processing Unit)110と、ROM(Read Only Memory)120と、RAM(Random Access Memory)130と、イメージセンサ140と、タイミングコントローラ160、データバッファ170及びDMA(direct memory access)180を有する専用ASIC(application-specific integrated circuit)150とがシステムバス190に接続されて構成されている。
先ず、CPU110が一定期間毎に随時更新していく露光設定A,B,C,・・・,に対し、タイミングコントローラ160が図14(b)に示すようなフレーム同期信号FSをイメージセンサ140に出力する。イメージセンサ140は、フレーム同期信号FSがL(LOW)となっている期間(以下、この期間を「露光期間」、当該露光期間内に露光した画像の単位を「フレーム」という。)に露光を行ってデジタルコードの撮像を行う。
イメージセンサ140が露光中に走査した画像データは、データバッファ170に1ライン分蓄積された後に、DMA180を介してRAM130に直接転送される。その転送された1ライン分のデータは、RAM130のフレーム画像132格納領域に1フレーム分蓄積記憶される。
これにより、露光期間A1,B1,C1,・・・,の間にイメージセンサ140がデジタルコードを露光・走査することにより、RAM132のフレーム画像132は、132A1,132B1,132C1,・・・,と更新されていく。そして、CPU110のデコーダ112は、フレーム画像132のデコードが成功するまで、逐次更新されるフレーム画像132A1,132B1,・・・,のデコードを行っていく。
ところで、イメージセンサにより撮像された画像(フレーム画像)の画質は、露光設定や露光時の環境(例えば、光量や手ぶれ)に大きく影響する。このため、特許文献1のコード読み取り装置が撮像した画像の画質が悪かった場合には、当該画像中のデジタルコードから情報の復元できず、デコードに失敗してしまうことがあった。
一方、図14(a)に示したコード読み取り装置100は、露光設定を変えてデコードに成功するまで撮影を繰り返す。しかし、1つのフレーム画像のデコードに成功する確率、即ちデコード率は、その撮影時の露光設定や露光環境の影響を受け、特許文献1のコード読み取り装置と余り変わらない。このため、露光回数を単に増やしたコード読み取り装置100が最終的にデコードに成功するには、結局は露光設定や露光環境が良好な状態でなければならなく、コード読み取り装置100全体のデコード率の向上は図れない。
また、1つの露光設定での露光回数を増やして、例えば、図14(b)のように露光期間A1及びA2の2回露光を行って得られたフレーム画像132A1と132A2の両方をデコードする方法もある。しかし、同じ露光設定で連続して撮像されたフレーム画像の画質にはほとんど変化はないため、1つの露光設定で露光回数を増やすことでデコード率の向上は図れない。また、コード読み取り装置100を統括的に制御するCPU110資源を無駄に使うことになり、コード読み取り装置100の処理能率が低下してしまった。
本発明の課題は、コード読み取り装置の処理能率を低下させることなくデコード率を向上ことである。
以上の課題を解決するために、請求項1に記載のコード読み取り装置は、
デジタルコードの画像データを取得する取得手段と、
この取得手段により取得された画像データをデコードする第1のデコード手段と、
この第1のデコード手段によるデコードの終了以前に前記取得手段により取得された画像データの画像処理を開始する画像処理手段と、
この画像処理手段により画像処理された画像データをデコードする第2のデコード手段と、
前記第1のデコード手段及び前記第2のデコード手段によるデコードの成否を判定する判定手段と、
この判定手段によりデコードの成功が早く判定されたデコード手段のデコードの結果を前記デジタルコードにより符号化された情報として決定する決定手段と、
を備えることを特徴としている。
請求項に記載の発明は、請求項に記載のコード読み取り装置であって、
前記画像処理手段は、前記取得された画像データに対して相異なる複数の画像処理を個々に行う複数画像処理手段を有し、
前記第2のデコード手段は、前記画像データに対して行った複数の画像処理結果それぞれをデコードする複数デコード手段を有し、
前記判定手段は、
前記第1のデコード手段によるデコードの成否と、前記複数デコード手段による複数のデコードの成否とを判定する複数判定手段を有することを特徴としている。
請求項に記載のコード読み取り方法は、
デジタルコードの画像データを取得する取得ステップと、
この取得ステップにおいて取得された画像データをデコードする第1のデコードステップと、
この第1のデコードステップによるデコードの終了以前に前記取得ステップにおいて取得された画像データの画像処理を開始する画像処理ステップと、
この画像処理ステップにおいて画像処理された画像データをデコードする第2のデコードステップと、
前記第1のデコードステップ及び前記第2のデコードステップにおけるデコードの成否を判定する判定ステップと、
この判定ステップにおいてデコードの成功が早く判定されたデコードステップのデコードの結果を前記デジタルコードにより符号化された情報として決定する決定ステップと、
を含むことを特徴としている。
請求項に記載のプログラムは、
コード読み取り装置のコンピュータを、
デジタルコードの画像データを取得する取得手段、
この取得手段により取得された画像データをデコードする第1のデコード手段、
この第1のデコード手段によるデコードの終了以前に前記取得手段により取得された画像データの画像処理を開始する画像処理手段、
この画像処理手段により画像処理された画像データをデコードする第2のデコード手段、
前記第1のデコード手段及び前記第2のデコード手段によるデコードの成否を判定する判定手段、
この判定手段によりデコードの成功が早く判定されたデコード手段のデコードの結果を前記デジタルコードにより符号化された情報として決定する決定手段、
として機能させることを特徴としている。
請求項1、及びに記載の発明によれば、画像処理を施したデジタルコードの画像データと、画像処理を施さないそのままの画像データとにそれぞれデコードを行って、そのデコードの成否を判定するので、画像処理を施さない画像データに対するデコードが失敗であったとしても、その画像データに画像処理を施すことでそのデコードに成功し得る場合があるため、単に取得した画像データをデコードしただけよりも、デコードに成功する確率、即ち、デコード率を向上させることができる。
さらに、第1のデコード手段によるデコードの終了以前に、画像処理手段は画像処理を開始することで、デコードと画像処理とが並列的に実現されるので、第2のデコード手段は、画像処理後の画像データがより早く得られるため、コード読み取り装置の処理能率を上げることができる。
請求項に記載の発明によれば、デジタルコードの画像データに相異なる複数の画像処理を個々に行って、その画像処理結果それぞれをデコードするため、判定手段の成否判定の対象となるデコード数が増し、更にデコード率の向上が図れる。
以下、本発明のコード読み取り装置の実施形態について図1〜図13を参照して詳細に説明する。コード読み取り装置は、取得したデジタルコードの画像データをデコードすることで、当該デジタルコードによって符号化された情報(以下、「符号化情報」と略し、例えば、価格やシリアル番号等の商品管理情報、URLやE−mailアドレス等がある。)を読み取るための装置である。
デジタルコードのコード形式には、1次元コード(バーコード)のJAN(Japan Article Number)、code39、ITF(Interleaved Two of Five)等や、2次元コードのQR(Quick Response)コード、PDF417、DataMatrix、Maxi Code等があり、CPUは、イメージセンサ40により取得された画像データに対して、コード形式に適応したデコードを行う。
このコード読み取り装置は、例えば、POS(Point of Sales)システムのバーコードリーダ、バーコードスキャナ等に適用されるが、その適用例はこれに限られず、例えば、ハンディターミナルや携帯電話、PDA(Personal Digital Assistant)の各種電子機器に適宜適用可能である。
〔第1実施形態〕
先ず、コード読み取り装置1の第1実施形態について図1〜図4を参照して説明する。図1は、コード読み取り装置1の機能構成の一例を示すブロック図である。図1に示すようにコード読み取り装置1は、CPU10と、ROM20と、RAM30と、イメージセンサ40によるデジタルコードの撮像処理を制御する専用ASIC50とがシステムバスSBに接続されて構成されている。
CPU10は、ROM20に記憶されたプログラムに基づいた処理を実行し、各機能部への指示やデータの入出力を行うことで、コード読み取り装置1を統括的に制御する。より具体的には、ROM20に記憶されたコード読み取りプログラム22を読み出して、RAM30に展開することで、デジタルコードによって符号化された情報を読み取るためのコード読み取り処理(図3(a)参照)を実行する。
また、CPU10は、2つ以上の異なる処理工程を並列に行えるように構成されており、本実施形態では、コード読み取り装置1の全体制御や画像処理(画像処理手段)とは別に、第1デコーダD1(第1のデコード手段)と、第2デコーダD2(第2のデコード手段)とを個々に実現する。
第1デコーダD1は、RAM30に記憶された第1フレーム画像F1のデコードを行う。この第1フレーム画像F1は、イメージセンサ40及び専用ASIC50によって取得されたデジタルコードの画像データである。第1デコーダD1は、第1フレーム画像F1を2値化した結果、デジタルコードが1次元コードであった場合、バーコードの長さ及び幅と、隣り合うバーの間隔とを算出して、その算出結果を元に情報の復元を行い、また、デジタルコードが2次元コードであった場合は、白黒のデータセルの配置パターンを元に情報の復元を行う。第1デコーダD1は、復元した情報に対して、第1フレーム画像F1のデジタルコードに含まれるチェックディジットによって誤り訂正を行う。
第2デコーダD2は、RAM30に記憶された第2フレーム画像F2のデコードを行う。この第2フレーム画像F2は、第1フレーム画像F1に所定の画像処理を施して得られた画像データである。第1フレーム画像F1に対して施す画像処理としては、例えば、コントラスト補正、γ補正、ノイズ除去等があり、第1フレーム画像F1の画質を改善する画像処理であれば適宜採用可能であり、また、複数の画像処理を組み合わせることとしてもよい。尚、第2デコーダD2が行うデコードと、第1デコーダD2が行うデコードと同一の処理内容であるのでその説明は省略する。
図2(a)は、第1フレーム画像F1の一例であり、図2(b)は、第1フレーム画像F1にコントラスト補正を施した際の第2フレーム画像F2の一例である。図2(a)の第1フレーム画像F1では、バーコードの長さや幅、間隔を識別することが困難であるためデコードに成功し難いが、第2フレーム画像F2は、第1フレーム画像F1よりも、バーコードの明暗がはっきりしているためデコードが容易である。このように、第1フレーム画像F1と、画像処理後の第2フレーム画像F2との2つの異なる画像それぞれをデコードすることにより、デコード率の向上を図っている。
尚、第1デコーダD1及び第2デコーダD2は、CPU10がソフト的に実現することとしたが、CPU10とは別個の電子回路でハード的に実現することとしてもよい。
ROM20は、各種初期設定やハードウェアの検査等を行うための初期プログラムや、コード読み取り装置1の動作に係る各種機能を実現するためのプログラムを格納する。図1によれば、ROM20は、コード読み取り処理(図3(a)参照)を実現するためのコード読み取りプログラム22を記憶している。
RAM30は、CPU10が実行する各種プログラムの実行に係るデータ等を一時的に保持する記憶領域である。図1によれば、RAM30は、上述した第1フレーム画像F1と、第2フレーム画像F2とを記憶している。CPU10は、第1フレーム画像F1のコピーを作成して、そのコピーに対して画像処理を施して第2フレーム画像F2を生成する。また、CPU10(並列画像処理手段)は、第1デコーダD1のデコードが終了する以前に、第1フレーム画像F1のコピーに対して画像処理を開始することで、第2フレーム画像F2の生成を早めて第2デコーダD2によるデコードに移行することができる。
専用ASIC50は、コード読み取り装置1のために設計・製造されたLSI(Large Scale Integration)であり、イメージセンサ40の制御と、当該イメージセンサ40により取得された画像データのRAM30への転送とを行う。
イメージセンサ40は、CMOSセンサや照明LED等を備えて構成され、記録媒体に記録・貼付されたデジタルコードを走査して当該デジタルコードの画像データを光学的に取得する機能部である。イメージセンサ40は、タイミングコントローラ60から出力されるフレーム同期信号FS(図4参照)に基づいて露光を行って、デジタルコードを走査する。そして、走査して得られた1ライン単位の画像データを所定のデータ長(例えば、8ビット)に分割して専用ASIC50のデータバッファ70に出力する。
また、図1によれば、専用ASIC50は、タイミングコントローラ60と、データバッファ70と、RAM30に直接アクセスしてデータの読み書きを行うDMA80とを備えて構成される。
タイミングコントローラ60は、常時一定周波数のクロック信号をイメージセンサ40に出力する回路部であり、例えば、水晶発振器により構成される。本実施形態においてh、タイミングコントローラ60は、図4に示すようなフレーム同期信号FSをイメージセンサ40に出力する。このとき、イメージセンサ40は、フレーム同期信号FSがL(Low)となっている露光期間A1,A2,B1,B2,・・・を1フレームおき、即ち、露光期間A1,B1,C1,・・・の間に露光を行い、デジタルコードを1ラインずつ走査する。
データバッファ70(ライン取得手段)は、イメージセンサ40の走査によって取得された画像データを一旦蓄積した後にDMA80に出力する回路部である。図1によれば、データバッファ70は、セレクタSLと、第1ラインバッファBF1と、第2ラインバッファBF2とを備えて構成される。
ここで、データバッファ70の動作を簡単に説明すると次のようになる。先ず、セレクタSLは、イメージセンサ40から出力される所定データ長の画像データを第1ラインバッファBF1に所定回数出力することで、システムバスSB上で送受信可能な1ライン分のデータ長の画像データを第1ラインバッファBF1に蓄積させる。
セレクタSLは、第1ラインバッファBF1に所定回数画像データを出力した後に、画像データの出力先を第2ラインバッファBF2に切り替えて、次は第2ラインバッファBF2の蓄積を行う。第2ラインバッファBF2に画像データを蓄積している間、第1ラインバッファBF1に蓄積された1ライン分の画像データは、DMA80を介してRAM30に転送されて、第1フレーム画像F1の格納領域に書き込まれる。次いで、セレクタSLが第1ラインバッファBF1に出力を切り替えると、第2ラインバッファBF2に蓄積された画像データがDMA80を介してRAM30の第1フレーム画像F1の格納領域に書き込まれる。
例えば、イメージセンサ40から出力される画像データが8ビットであれば、セレクタSLは、その画像データを4回ずつ、第1ラインバッファBF1及び第2ラインバッファBF2に出力することで、36ビットの1ライン分の画像データを蓄積させる。これにより、イメージセンサ40で走査された画像データを、システムバスSB上で通信可能なデータ長に変換して、RAM30に直接書き込むことができる。従って、イメージセンサ40で取得された画像データをRAM30に記憶させるための制御をCPU10が行う必要はなく、CPU10の負荷を軽減させることができる。
次に、図3(a)及び(b)のフローチャートと図4のタイムチャートとを用いて、コード読み取り装置1の具体的な動作について説明する。
先ず、タイミングコントローラ60が出力する図4に示すフレーム同期信号FSに基づいて、イメージセンサ40は1フレームおきに露光を行って第1フレーム画像F1を逐次更新していく。具体的には、始めに露光期間A1の間に走査した1ライン毎の画像データをDMA80を介してRAM30に転送する。その1ライン毎の画像データは、RAM30に順次書き込まれて1フレーム単位の画像データが第1フレーム画像F1aとして記憶される。
CPU10(フレーム取得手段)は、図3(a)に示すコード読み取り処理を開始すると、RAM30の更新された第1フレーム画像F1aを取得して(ステップS1;取得ステップ)、サブルーチンとして図3(b)に示すデコード処理を行う(ステップS3)。尚、取得手段は、CPU10、イメージセンサ40及び専用ASIC50が協働することにより実現される。
図3(b)に示すデコード処理において、第1デコーダD1は、第1フレーム画像F1aのデコードを行い(ステップS31;第1のデコードステップ)、一方ではCPU10(フレーム画像処理手段)が、1フレーム分の第1フレーム画像F1に画像処理を施して第2フレーム画像F2aを生成する(ステップS33;画像処理ステップ)。
そして、ステップS33の画像処理後に第2デコーダD2が第2フレーム画像F2aをデコードして(ステップS35;第2のデコードステップ)、第1デコーダD1及び第2デコーダD2それぞれのデコードが終了した後に、メインルーチンであるコード読み取り処理に戻る。
CPU10(判定手段)は、第1デコーダD1のデコード結果と、第2デコーダD2のデコーダ結果とのそれぞれの成否を判定する(ステップS5;判定ステップ)。例えば、デコード結果中から国コードやメーカーコード、商品管理情報、URL等が識別可能であり、適切に誤り訂正ができた場合に、デコードに成功したと判定する。
CPU10(決定手段)は、第1デコーダD1及び第2デコーダD2それぞれのデコーダ結果のうち、少なくとも何れか一方がデコーダに成功したと判定した場合は(ステップS5;Yes)、その成功したデコード結果を符号化情報として決定して(ステップS7;決定ステップ)、図3(a)に示すコード読み取り処理を終了する。
一方、ステップS5において、第1デコーダD1及び第2デコーダD2の何れにもデコードに失敗したと判定した場合(ステップS5;No)、CPU10は、次に更新された第1フレーム画像F1bを取得して、上述したデコード処理とデコード結果の成否判定とを行う。このように、CPU10は、デコードに成功するまで逐次更新されていく第1フレーム画像F1a,F1b,F1c,・・・に対してステップS1〜S5の処理を繰り返す。
以上、第1実施形態によれば、イメージセンサ40により取得されたままの画像データ(第1フレーム画像F1)を単にデコードするだけでなく、画像処理を施した画像データ(第2フレーム画像F2)をデコードして、そのデコード結果の成否を判定することで、コード読み取り装置1のデコード率の向上を図ることができる。
また、図4によれば、露光期間B1において得られた第1フレーム画像F1bをRAM30に転送している間に、第1デコーダD1によるデコードと並行して、第2フレーム画像F2を生成するための画像処理や第2デコーダD2によるデコードを行っている。これにより、第1デコーダD1によるデコードの空き時間にデコード率の向上を図るための第2デコーダD2のデコードを行うことができる。従って、デコード率の向上のためにCPU10を効率的に使用して、CPU資源を無駄にすることがない。
尚、第1実施形態において、第1フレーム画像F1に対する画像処理は、専用ASIC50から転送される1ラインずつの画像データがRAM30に1フレーム分記憶された後に行うこととしたが、例えば、次のようにしてもよい。
即ち、専用ASIC50から1ライン毎の画像データがRAM30に書き込まれる度に、CPU10(ライン画像処理手段)が、その1ライン毎の画像データを読み出して画像処理を施していく。このように、画像データの転送に対して画像処理を並行して行うことで、図5に示すように、第2フレーム画像F2a,F2b,・・・といった1フレーム分の第2フレーム画像F2の生成が早まる。従って、第2デコーダD2によるデコードの開始タイミングを繰り上げて、コード読み取り装置1の処理効率を上げることができる。
また、第1実施形態におけるコード読み取り装置1は、画像処理手段をCPU10がソフト的に実現することとしたが、これをハード的に実現することとしてもよい。次に、第1フレーム画像F1の画像処理をハード的に実現した場合の第2実施形態について図6〜図11を用いて説明する。尚、以下の説明において、上述したコード読み取り装置1と同一の構成要素には同一の符号を付してその説明は省略する。
〔第2実施形態〕
図6は、第2実施形態におけるコード読み取り装置1aの機能構成を示すブロック図である。図6によれば、コード読み取り装置1aは、CPU10、ROM20、RAM30及び専用ASIC50aがシステムバスSBに接続されて構成されている。
また、専用ASIC50aは、タイミングコントローラ60と、データバッファ70と、DMA80と、画像処理プロセッサ(Image Processor)90とを備えて構成されている。画像処理プロセッサ90(画像処理手段)は、第1実施形態においてCPU10が行っていた画像処理をCPU10とは独立して実現するための回路部である。
専用ASIC50aは、第1実施形態と同様に、イメージセンサ40で走査・取得された1ライン毎の画像データを第1ラインバッファBF1及び第2ラインバッファBF2で交互に蓄積した後、DMA80を介してRAM30に直接転送して第1フレーム画像F1として書き込む。
1フレーム分の画像データをRAM30に転送し終えたら、セレクタSLは、第1ラインバッファBF1及び第2ラインバッファBF2への画像データの出力を停止する。そして、CPU10は、記憶更新された第1フレーム画像F1のコピーを作成して、第2フレーム画像F2としてRAM30に記憶する。その後、第1デコーダD1が第1フレーム画像F1を取得してデコードを開始する。尚、このコピーの作成は画像処理プロセッサ90が行うこととしてもよい。
一方、画像処理プロセッサ90は、DMA80を介して直接第2フレーム画像F2をRAM30から読み込んで、第1実施形態と同様の画像処理をその第2フレーム画像F2に対して行う。そして、画像処理プロセッサ90は、画像処理を施した第2フレーム画像F2をRAM30に転送して更新する。CPU10の第2デコーダD2は画像処理された第2フレーム画像F2を取得してデコードする。
CPU10は、第1実施形態と同様に第1デコーダD1及び第2デコーダD2それぞれのデコード結果の成否判定を行って、デコードに失敗した場合は、次に更新される第1フレーム画像F1と、そのコピー(第2フレーム画像F2)とで、デコードと成否判定とを繰り返し、デコードに成功した場合は、そのデコード結果を符号化情報として決定する。
以上、第2実施形態によれば、第1実施形態においてCPU10が実行していた図3(b)に示すステップS33に相当する処理を、CPU10とは独立して設けられた画像処理プロセッサ90が実行する。このため、CPU10の負荷を軽減させて、第1デコーダD1及び第2デコーダD2それぞれのデコードの処理時間を短縮することができる。
また、画像処理プロセッサ90が単独で画像処理を行うことで、当該画像処理の処理時間を短縮することができる。このため、1フレーム毎の画像データ、即ち第1フレーム画像F1に対するコード読み取り処理のステップS1〜S5に相当する一連の処理工程をより高速に実現することができる。
尚、画像処理手段をハード的に実現する方法としては、図6に示したコード読み取り装置1aに限らず、その実現方法は適宜適用可能であり、例えば、図7及び図8に示すような機能構成で実現することとしてもよい。ここで、図7及び8を用いて、第2実施形態の変形例について説明する。
〔第1変形例〕
先ず、第1変形例について説明する。図7は、第1変形例におけるコード読み取り装置1bの機能構成の一例を示すブロック図である。このコード読み取り装置1bは、図6に示すコード読み取り装置1aの専用ASIC50aを図7の専用ASIC50bに置き換えて構成であり、他の構成要素はコード読み取り装置1aと同一である。
専用ASIC50bは、タイミングコントローラ60、データバッファ70、DMA80、画像処理プロセッサ90、第3ラインバッファBF3及び第4ラインバッファBF4を備えて構成される。
第1変形例におけるセレクタSLは、イメージセンサ40により取得された画像データを所定回数ずつ交互に切り替えて第1ラインバッファBF1及び第2ラインバッファBF2に出力するが、同様に第3ラインバッファBF3及び第4ラインバッファBF4にも画像データを交互に切り替えて出力する。
セレクタSLは、第3ラインバッファBF3に所定回数(例えば、8ビットの画像データを4回)分の画像データを出力した後、第4ラインバッファBF4に出力先を切り替えると、第3ラインバッファBF3に蓄積された1ライン分の画像データが画像処理プロセッサ90に出力される。同様にセレクタSLが、第4ラインバッファBF4から第3ラインバッファBF3に切り替えると、第4ラインバッファBF4に蓄積された1ライン分の画像データが画像処理プロセッサ90に出力される。
画像処理プロセッサ90は、第3ラインバッファBF3から入力された1ライン分の画像データに対して画像処理を行った後にDMA80を介してRAM30に転送して、第2フレーム画像F2として記憶させる。また、セレクタSLの切り替えにより第4ラインバッファBF3から入力された画像データに対して画像処理を行って同様にRAM30に転送する。
以上、第1変形例によれば、画像処理プロセッサ90が、第3ラインバッファBF3及び第4ラインバッファBF4から入力される画像データに画像処理を施して、RAM30に転送する。このように、イメージセンサ40により取得された画像データに直接画像処理を行うことにより、第1フレーム画像F1と第2フレーム画像F2とをほぼ同時に得ることがでる。このため、第2デコーダD2によるデコードを、第1デコーダD1によるデコードとほぼ同時に行うことができる。また、CPU10が第1フレーム画像F1のコピーの作成を行う必要がなくなり、CPU10の負荷を更に軽減させることができる。
〔第2変形例〕
次に、第2変形例について説明する。図8は、第2変形例におけるコード読み取り装置1cの機能構成の一例を示すブロック図である。このコード読み取り装置1cは、図6に示すコード読み取り装置1aの専用ASIC50aを図7の専用ASIC50cに置き換えて構成であり、他の構成要素はコード読み取り装置1aと同一である。
専用ASIC50cは、タイミングコントローラ60、画像処理プロセッサ90、分配器95及びバスセレクタ(専用バス)BSを備えて構成される。また、バスセレクタBSには、第1フレームメモリ(第1の記憶手段)FM1と第2フレームメモリ(第2の記憶手段)FM2とが接続されて構成されている。
第1フレームメモリFM1は、イメージセンサ40により取得された画像データを第1フレーム画像として一時的に記憶するための専用メモリであり、及び第2フレームメモリFM2は、画像処理プロセッサ90により画像処理された画像データを第2フレーム画像として一時的に記憶するための専用メモリである。
分配器95は、イメージセンサ40から入力される画像データを、画像処理プロセッサ90及びバスセレクタBSにそれぞれ出力する回路部である。第2変形例における画像処理プロセッサ90は、分配器95から入力された画像データに対して画像処理を施してバスセレクタBSに出力する。
バスセレクタBSは、専用ASIC50cが予め備える制御レジスタ(図示略)の制御に基づいて、第1フレームメモリFM1及び第2フレームメモリFM2に対する画像データの出力と、第1フレームメモリFM1及び第2フレームメモリFM2に記憶された画像データのCPU10に対する出力とを行う回路部である。制御レジスタは、専用ASIC50cの動作に係る初期プログラムや各種データを記憶している。
ここで、バスセレクタBSの具体的な動作を簡単に説明する。先ず、バスセレクタBSは、分配器95から入力される画像データを第1フレームメモリFM1に出力し、その間、第2フレームメモリFM2に記憶されている第2フレーム画像、即ち、画像処理後の画像データをCPU10に出力する。このとき、CPU10の第2デコーダD2が、第2フレーム画像をデコードする。
また、バスセレクタBSは、制御レジスタの制御に基づいて画像データの入力先を分配器95から画像処理プロセッサ90に切り替えた場合、画像処理プロセッサ90から入力される画像データを第2フレームメモリFM2に出力する共に、第1フレームメモリFM1に記憶された第1フレーム画像をCPU10に出力する。このとき、CPU10の第1デコーダD1が第1フレーム画像、即ち、イメージセンサ40により取得されたままの画像データをデコードする。
以上、第2変形例によれば、第1フレーム画像及び第2フレーム画像を記憶するための専用メモリ(第1フレームメモリFM1及び第2フレームメモリFM2)をシステムバスSBから独立させて、専用ASIC50cに直結して設けた。このため、システムバスSBを介して第1フレーム画像及び第2フレーム画像をRAM30に転送して書き込む必要がなくなる。
これにより、画像データのデータ通信によってシステムバスSBを占有する時間(占有率)を大幅に下げることができる。また、RAM30をコード読み取り装置1cのシステムメモリとして使用することができ、コード読み取り装置1cの処理速度の向上が図れる。尚、このようなコード読み取り装置1cは、例えば、ハンディターミナルの無線通信処理のような、コード読み取り処理以外にも重要な機能を持つコード読み取り装置に対して有効な構成として適用することができる。
〔第3変形例〕
また、上述した実施形態では、第1フレーム画像F1に画像処理を施して生成した第2フレーム画像F2をデコードすることとしたが、2以上の相異なる画像処理それぞれを第1フレーム画像に施し、第2フレーム画像,第3フレーム画像,第4フレーム画像,・・といった複数のフレーム画像を生成してそれぞれにデコードを行うこととしてもよい。ここで、第1フレーム画像に2種類の画像処理を施した場合のコード読み取り装置1dの第3変形例について図9〜12を用いて説明する。
第3変形例におけるコード読み取り装置1dは、図9に示すように、図1に示すコード読み取り装置1のCPU10をCPU10dに、ROM20をROM20dに、RAM30をRAM30dに置き換えた構成である。そのため、コード読み取り装置1と同一の構成要素についてはその説明を省略する。
CPU10dは、第1デコーダD1、第2デコーダD2、第3デコーダD3(複数デコード手段)及び2種類の画像処理(複数画像処理)を並列的に実現可能に構成されている。RAM30dは、第1フレーム画像F1、第2フレーム画像F2及び第3フレーム画像F3を記憶している。
CPU10dは、第1フレーム画像F1のコピーを2つ作成する。そして、一方のコピーに対してはコントラスト補正を行い、他方のコピーにはノイズ除去を行うといったように、それぞれのコピーに対して相異なる画像処理を施してそれぞれを第2フレーム画像F2及び第3フレーム画像F3として生成する。
このようにして、CPU10dは複数画像処理手段を実現するが、例えば、コントラスト補正とはパラメータの異なるγ補正を第1フレーム画像F1に行って第3フレーム画像F3を生成したり、コントラスト補正とノイズ除去とを組み合わせて行って第3フレーム画像F3を生成したりするといったように、画像処理のパラメータや組み合わせを変えて実現することとしてもよい。
ROM20dは、第3変形例に係るコード読み取り処理を実現するためのコード読み取りプログラム22dを記憶している。第3変形例におけるコード読み取り処理は、図3(a)のステップS3のデコード処理を図10に示すデコード処理に置き換えた処理であり、図3(a)及び(b)に示す処理ステップと同一の処理ステップには、同一の符号を付してその詳細な説明は省略する。
次に、コード読み取り装置1dのコード読み取り処理の具体的な動作を、図10のフローチャートと、図11のタイムチャートを用いて説明する。
CPU10dは、専用ASIC50から転送される1ライン毎に画像データを取得して、その画像データに画像処理を施すことで、第1フレーム画像F1aと共に、順次第2フレーム画像F2aを生成する(ステップS33)。
そして、第1デコーダD1が第1フレーム画像F1に対してデコードを行い、第2デコーダD2が第2フレーム画像F2に対してデコードを行う。その一方で、CPU10dは、第1フレーム画像F1のコピーにステップS33の画像処理とは異なる画像処理を行って、第3フレーム画像F3を生成する(ステップS37)。このため、CPU10dは、第1デコーダD1のデコーダと、第2デコーダD2のデコーダと、ステップS37の画像処理との3つ処理を並行処理することとなる。
そして、生成した第3フレーム画像F3に対して第3デコーダD3がデコードを行った後(ステップS39)、CPU10d(複数判定手段)は、メインルーチンのコード読み取り処理に戻って、第1〜第3デコーダD1〜D3それぞれのデコード結果の成否判定を行う。
以上、第3変形例によれば、第1フレーム画像F1に対して2種類の画像処理を施した後にそのそれぞれにデコードを行うことで、1種類の画像処理を施すよりも更にデコード率を向上させることができる。
尚、3つのデコード結果それぞれの成否判定は、図3(a)のステップS7において同時に行うだけではなく、それぞれの成否判定を逐次実行するようにしてもよい。即ち、第2デコーダD2のデコードと並列的に第1デコーダD1のデコード結果の成否を判定し、その判定結果が失敗であると判定した場合は、次に第2デコーダD2のデコード結果の成否を判定する。更に、そのデコード結果が失敗であると判定した場合は、第3デコーダD3のデコード結果の成否判定を行っていく。
また、この第3デコーダD3のデコード結果の成否判定時に、順次更新されている第1フレーム画像F1bの取得やデコード、第2フレーム画像F2bの生成やデコードを図11のようにその成否判定と並行して行っていく。これにより、コード読み取り装置1dの処理効率を更に上げることができる。
〔第4変形例〕
また、3つのデコーダによって第1〜第3フレーム画像F1〜F3のデコードを行うこととしたが、例えば、第1デコーダD1が、第3デコーダD3の機能を行う第4変形例のコード読み取り装置1dを実現してもよい。この場合、図3(a)のコード読み取り処理のデコード処理は、図12に示すデコード処理を行う。
即ち、図3(a)のコード読み取り処理のステップS3において図12に示すデコード処理を開始すると、第1デコーダD1が、第1フレーム画像F1aのデコードを第3変形例の第1デコーダD1よりも高速に行い(ステップS31)、図13に示すように次の第1フレーム画像F1bのデコード開始までの空き時間Tを充分に確保する。その一方で、CPU10dは、第2フレーム画像F2の生成と、第2デコーダD2によるデコードとを行う(ステップS33〜S35)。
CPU10dは、第1デコードD1によるデコードの結果の成否を判定し、成功したと判定した場合は(ステップS41:Yes)、そのままデコード処理を終了して、図3(a)のコード読み取り処理に戻る。従って、ステップS5では、第1フレーム画像F1と第2フレーム画像F2とのデコード結果の成否判定を行うことになる。
一方、ステップS41で第1フレーム画像F1のデコードに失敗したと判定した場合(ステップS41:No)、第1フレーム画像F1にステップS33で施した画像処理(例えば、コントラスト補正)とは異なる画像処理(例えば、ノイズ除去)を施して第3フレーム画像F3を生成する(ステップS43)。そして、第1デコーダD1が、空き時間Tの間、即ち、次に更新される第1フレーム画像F1aのデコードを行うまでの間に、第3フレーム画像D3のデコードを行い(ステップS45)、CPU10dは、図3(a)に示すコード読み取り処理に戻る。
このため、ステップS5では、第2フレーム画像F2と第3フレーム画像D3とのデコード結果の成否判定を行うこととなる。従って、ステップS41において第1フレーム画像D3のデコードに成功したと判定した場合には、第3フレーム画像D3を生成するための画像処理と、第3フレーム画像D3のデコードとを行わずに済むため、CPU10dの負荷を低減させることができる。
また、図6〜図7に示すコード読み取り装置1a〜1bにおいて2種類の画像処理を行ってデコードを行う場合は、RAM30が第1〜第3フレーム画像F1〜F3を記憶し、CPU10が第1〜第3デコーダD1〜D3を備えてそれぞれがデコードすることで実現可能である。また、図8のコード読み取り装置1cの場合は、バスセレクタBSに第3フレームメモリFM3(図示略)を更に設けることで実現が可能である。
第1実施形態におけるコード読み取り装置の機能構成の一例を示すブロック図。 第1フレーム画像と第2フレーム画像との一例。 第1実施形態におけるコード読み取り処理を説明するためのフローチャート。 第1実施形態におけるコード読み取り装置の動作例を説明するためのタイムチャート。 第1実施形態の変形例におけるコード読み取り装置の動作例を説明するためのタイムチャート。 第2実施形態におけるコード読み取り装置の機能構成の一例を示すブロック図。 第1変形例におけるコード読み取り装置の機能構成の一例を示すブロック図。 第2変形例におけるコード読み取り装置の機能構成の一例を示すブロック図。 第3変形例におけるコード読み取り装置の機能構成の一例を示すブロック図。 第3変形例におけるコード読み取り処理を説明するためのフローチャート。 第3変形例におけるコード読み取り装置の動作例を説明するためのタイムチャート。 第4変形例におけるデコード処理を説明するためのフローチャート。 第4変形例におけるコード読み取り装置の動作例を説明するためのタイムチャート。 従来のコード読み取り装置の機能構成の一例を示すブロック図(a)と、その動作例を説明するためのタイムチャート(b)。
符号の説明
1 コード読み取り装置
10 CPU
D1 第1デコーダ
D2 第2デコーダ
20 ROM
22 コード読み取りプログラム
30 RAM
F1 第1フレーム画像
F2 第2フレーム画像
40 イメージセンサ
50 専用ASIC
60 タイミングコントローラ
70 データバッファ
SL セレクタ
BF1 第1ラインバッファ
BF2 第2ラインバッファ
80 DMA
90 画像処理プロセッサ
95 分配器
BS バスセレクタ
FM1 第1フレームメモリ
FM2 第2フレームメモリ
SB システムバス

Claims (4)

  1. デジタルコードの画像データを取得する取得手段と、
    この取得手段により取得された画像データをデコードする第1のデコード手段と、
    この第1のデコード手段によるデコードの終了以前に前記取得手段により取得された画像データ画像処理を開始する画像処理手段と、
    この画像処理手段により画像処理された画像データをデコードする第2のデコード手段と、
    前記第1のデコード手段及び前記第2のデコード手段によるデコードの成否を判定する判定手段と、
    この判定手段によりデコードの成功が早く判定されたデコード手段のデコードの結果を前記デジタルコードにより符号化された情報として決定する決定手段と、
    を備えることを特徴とするコード読み取り装置。
  2. 前記画像処理手段は、前記取得された画像データに対して相異なる複数の画像処理を個々に行う複数画像処理手段を有し、
    前記第2のデコード手段は、前記画像データに対して行った複数の画像処理結果それぞれをデコードする複数デコード手段を有し、
    前記判定手段は、
    前記第1のデコード手段によるデコードの成否と、前記複数デコード手段による複数のデコードの成否とを判定する複数判定手段を有することを特徴とする請求項に記載のコード読み取り装置。
  3. デジタルコードの画像データを取得する取得ステップと、
    この取得ステップにおいて取得された画像データをデコードする第1のデコードステップと、
    この第1のデコードステップによるデコードの終了以前に前記取得ステップにおいて取得された画像データの画像処理を開始する画像処理ステップと、
    この画像処理ステップにおいて画像処理された画像データをデコードする第2のデコードステップと、
    前記第1のデコードステップ及び前記第2のデコードステップにおけるデコードの成否を判定する判定ステップと、
    この判定ステップにおいてデコードの成功が早く判定されたデコード手段のデコードの結果を前記デジタルコードにより符号化された情報として決定する決定ステップと、
    を含むことを特徴とするコード読み取り方法。
  4. コード読み取り装置のコンピュータを、
    デジタルコードの画像データを取得する取得手段、
    この取得手段により取得された画像データをデコードする第1のデコード手段、
    この第1のデコード手段によるデコードの終了以前に前記取得手段により取得された画像データの画像処理を開始する画像処理手段、
    この画像処理手段により画像処理された画像データをデコードする第2のデコード手段、
    前記第1のデコード手段及び前記第2のデコード手段によるデコードの成否を判定する判定手段、
    この判定手段によりデコードの成功が早く判定されたデコード手段のデコードの結果を前記デジタルコードにより符号化された情報として決定する決定手段、
    として機能させるためのプログラム。
JP2005065872A 2005-03-09 2005-03-09 コード読み取り装置、コード読み取り方法及びプログラム Expired - Fee Related JP4449791B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005065872A JP4449791B2 (ja) 2005-03-09 2005-03-09 コード読み取り装置、コード読み取り方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005065872A JP4449791B2 (ja) 2005-03-09 2005-03-09 コード読み取り装置、コード読み取り方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2006252039A JP2006252039A (ja) 2006-09-21
JP4449791B2 true JP4449791B2 (ja) 2010-04-14

Family

ID=37092482

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005065872A Expired - Fee Related JP4449791B2 (ja) 2005-03-09 2005-03-09 コード読み取り装置、コード読み取り方法及びプログラム

Country Status (1)

Country Link
JP (1) JP4449791B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011096095A (ja) * 2009-10-30 2011-05-12 Ricoh Co Ltd 画像処理システム、画像処理サーバ、画像形成装置及び画像認識処理方法
JP6456702B2 (ja) * 2015-01-14 2019-01-23 株式会社インプット 農産物販売用pos端末処理方法
JP7251079B2 (ja) * 2018-09-14 2023-04-04 富士フイルムビジネスイノベーション株式会社 画像処理装置及びプログラム
WO2024121928A1 (ja) * 2022-12-06 2024-06-13 日本電信電話株式会社 情報転送システム、送信装置、受信装置、情報転送方法およびプログラム

Also Published As

Publication number Publication date
JP2006252039A (ja) 2006-09-21

Similar Documents

Publication Publication Date Title
US9665817B2 (en) Techniques for generating customized two-dimensional barcodes
US9177238B2 (en) Techniques for generating customized two-dimensional barcodes
US8464954B2 (en) Method of improving the barcode recognition efficiency using continuous sampling, computer readable medium, and barcode recognition apparatus
US20030152229A1 (en) Graphics code system
JP4449791B2 (ja) コード読み取り装置、コード読み取り方法及びプログラム
US20080121715A1 (en) Method for updating indicia readers
JP6465180B2 (ja) 情報処理装置、および情報処理方法
JP4164257B2 (ja) 画像処理装置、画像処理方法、プログラム、及び記憶媒体
JP4577101B2 (ja) 情報コード、情報コード読取装置及び情報コード読取装置のデータ更新システム
CN100423535C (zh) 以打印线的数目所确定的打印速度打印图像的方法和设备
US20150193646A1 (en) Read-in Device, Read-in Result Output Method, and Medium
JP2008021009A (ja) バーコード認識装置、方法及びプログラム
JP2011076518A (ja) 光学的情報読取装置及び画像データ取込方法
JP2007043709A (ja) オーバレイ画像形成方法及びオーバレイ画像形成装置
JP4168731B2 (ja) 情報読取装置およびプログラム
JP4905767B2 (ja) 二次元コード検出システムおよび二次元コード検出プログラム
US20200401862A1 (en) Barcode generation device and barcode generation method
JPH07312664A (ja) ファクシミリ装置
JP2008269410A (ja) 光学情報読取装置
JP2001005907A (ja) バーコード読取装置、及び記憶媒体
JP2009301463A (ja) バーコード認識装置
JP2002135595A (ja) 画像伸張装置
JPH02127869A (ja) イメージデータ処理装置
JP2001347733A (ja) 印刷装置
JPH02287780A (ja) 符号読取装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090407

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090603

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100105

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100118

R150 Certificate of patent or registration of utility model

Ref document number: 4449791

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130205

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130205

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140205

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees