(57)【特許請求の範囲】
【請求項１】
回転体の周面又は端面にスタートマークと複数個のデータマークとが円周方向に並べて構成され、スタートマークはデータマークよりも円周方向で長く形成されている情報コードを、回転体の回転時に読取センサで走査し、読取センサからの出力信号に基づき前記情報コードの各ビットを識別して情報を読み取る情報コードの読取方法において、
前記回転体を複数回転させて前記情報コードを読取センサで走査し、この出力信号をＡ／Ｄ変換してサンプリングデータとしてデータメモリに記憶するデータサンプリング工程と、
前記サンプリングデータから最大値及び最小値を抽出し、前記最大値と最小値とから許容ノイズを算出し、この許容ノイズを超えて前記サンプリングデータが変動するときにこの変動点におけるサンプリングデータを極大値又は極小値として求め、求めた極大値及び極小値の中から隣接する極大値及び極小値に基づき前記各マークに対応する個別のスレッシュレベルを決定するスレッシュレベル決定工程と、
決定したスレッシュレベルにより、前記各マーク部分の長さを求め、最長長さを有するマークをスタートマークとして検出するスタートマーク検出工程と、
第１のスタートマークと第２のスタートマークとの間隔によりデータマークの最小長さを求めて各マークのエッジ部分が存在する領域を決定し、このエッジ存在領域において、前記サンプリングデータがスレッシュレベルを横切るポイントと横切る方向とからデータマークのビットが「０」か「１」かを判定するデータ判定工程とを備えることを特徴とするデータ読取方法。
【請求項２】
前記各マークのスレッシュレベル決定工程は、前記極大値と極小値との差の１／２を各マークのスレッシュレベルと決定することを特徴とする請求項１記載のデータ読取方法。
【請求項３】
前記データ判定工程は、前記サンプリングデータが前記エッジ存在領域を下降してスレッシュレベルと交差するときにデータマークのビットを「０」または「１」と判定し、前記サンプリングデータがエッジ存在領域を昇降してスレッシュレベルと交差するときにデータマークのビットを前記判定とは逆の「１」または「０」と判定し、それ以外のときに読取エラーと判定することを特徴とする請求項１または２記載の情報コードの読取方法。
【請求項４】
前記読取エラーと判定されたときに、前記許容ノイズの幅を変えて再度極大値、極小値を求め、この極大値及び極小値から求めた前記スレッシュレベルによりデータマークを再判定するデータ再判定工程を有することを特徴とする請求項３記載のデータ読取方法。
【請求項５】
前記読取エラーと判定されたときに、前記各マークのスレッシュレベルを変更してデータマークを再判定するデータ再判定工程を有することを特徴とする請求項３または４記載のデータ読取方法。
【請求項６】
前記読取エラーと判定されたときに、前記エッジ存在領域を広げてデータマークを再判定するデータ再判定工程を有することを特徴とする請求項３ないし５いずれか１つ記載のデータ読取方法。
【請求項７】
前記スレッシュレベル決定工程は、極大値検出処理と極小値検出処理とを交互に行い、
前記極大値検出処理では、
前記サンプリングデータの現在データを極大値とし、次のサンプリングデータと前記極大値とを比較し、この比較において、極大値よりもサンプリングデータが大きいときに極大値を更新し、極大値よりもサンプリングデータが小さいときに、極大値からサンプリングデータを引いた差と前記許容ノイズとを比較し、前記差が許容ノイズよりも小さいときに極大値を更新せずに維持し、前記差が許容ノイズよりも大きいときに現在の極大値をこのビットにおける極大値として決定し、
この極大値を決定した後に、極小値検出に移り、
極小値検出処理では、前記極大値を検出したポイントのデータを極小値とし、次に極小値とこのポイントのデータを比較し、この比較において、極小値よりもサンプリングデータが小さいときに極小値を更新し、極小値よりもサンプリングデータが大きいときに、サンプリングデータから極小値を引いた差と前記許容ノイズとを比較し、前記差が許容ノイズよりも小さいときに極小値を更新せずに維持し、前記差が許容ノイズよりも大きいときに現在の極小値をこのビットにおける極小値として決定し、
この極小値を決定した後に、このポイントのデータを極大値として、前記極大値検出処理に移ることを特徴とする請求項１ないし６いずれか１つ記載の情報コード読取方法。
【請求項８】
前記サンプリング工程は、予備走査と本走査とを行い、予備走査では、サンプリングデータの最大値及び最小値を求め、本走査では、前記最大値及び最小値に基づき決定した振幅範囲に基づきサンプリングデータのビット数を減らしてデータをメモリに記憶することを特徴とする請求項１ないし７いずれか１つ記載の情報コード読取方法。
【請求項９】
前記予備走査では前記回転体を一方向に回転し、本走査では前記回転体を他方向に回転して、出力信号を得ることを特徴とする請求項８記載の情報コードの読取方法。
【請求項１０】
記録紙をロール状に巻き取った巻芯から前記回転体を構成し、前記情報コードを前記記録紙の識別情報とし、前記記録紙を給紙方向に送って前記予備走査を行い、前記記録紙を給紙方向とは逆の巻き戻し方向に送って本走査を行うことを特徴とする請求項１ないし９いずれか１つ記載の情報コードの読取方法。
【請求項１１】
前記情報コードの各マークを、マークが形成される地に対して反射率または吸収率が異なるマーク材料により形成することを特徴とする請求項１ないし１０いずれか１つ記載の情報コードの読取方法。
【請求項１２】
前記情報コードは、記録紙の種類、熱感度、ロット番号、生産時期の各情報のうち少なくとも１つを含むことを特徴とする請求項１０または１１記載の情報コードの読取方法。
【請求項１３】
前記情報コードは誤り検出訂正コード部を有し、この誤り検出訂正コード部から読み取り時の誤り率を求め、この誤り率に基づき前記読取センサのスレッシュレベルを変化させて前記情報コードを読み取ることを特徴とする請求項１ないし１２いずれか１つ記載の情報コードの読取方法。
【請求項１４】
回転体の周面又は端面にスタートマークと複数個のデータマークとを円周方向に並べて構成され、スタートマークはデータマークよりも円周方向で長く形成されている情報コードを、前記回転体の回転時に読取センサで走査し、読取センサからの出力信号に基づき前記情報コードの各ビットを識別して記録紙識別情報を読み取る情報コードの読取装置において、
前記情報コードを前記回転体の回転の際に走査する読取センサと、
この読取センサからの出力信号をＡ／Ｄ変換してサンプリングするサンプリング回路と、
前記サンプリングデータをデータメモリに書き込むデータ書込手段と、
前記データメモリに記憶したサンプリングデータに基づき情報コードの情報を解読する情報解読手段とを備え、
前記情報解読手段は、
前記サンプリングデータから最大値及び最小値を抽出し、前記最大値と最小値とから許容ノイズを算出し、この許容ノイズを超えて前記サンプリングデータが変動するときにこの変動点におけるサンプリングデータを極大値又は極小値として求め、求めた極大値及び極小値の中から隣接する極大値及び極小値に基づき前記各マークに対応する個別のスレッシュレベルを決定するスレッシュレベル決定部と、
前記スレッシュレベルに基づき前記各マーク部分の長さ相当値を求め、最大長さ相当値を有するマークをスタートマークとして検出するスタートマーク検出部と、
前記第１及び第２のスタートマークの間隔によりデータマークの最小長さを求め、マークのエッジ部分が存在する領域を決定するエッジ存在領域決定部と、
前記エッジ存在領域において、前記サンプリングデータがスレッシュレベルを横切るポイントと横切る方向とからデータマークのビットが「０」か「１」かを判定するデータ判定部とから構成されていることを特徴とする情報コードの読取装置。
【請求項１５】
前記情報コードは誤り検出訂正コード部を有し、前記データ書込手段は、前記誤り検出訂正コード部から読み取り時の誤り率を求め、この誤り率に基づき前記読取センサのスレッシュレベルを変化させることを特徴とする請求項１４記載の情報コードの読取装置。
【請求項１６】
記録紙をロール状に巻き取った巻芯から前記回転体を構成し、前記情報コードを前記記録紙の識別情報とし、前記巻芯を記録紙の給紙方向及び給紙方向とは反対の巻き戻し方向に回転させる回転手段と、この回転手段による巻芯の給紙方向回転時に前記情報コードの予備走査を行い、巻き戻し方向への回転時に本走査を行う走査制御部とを備え、
予備走査ではサンプリングデータの振幅に基づき本走査におけるサンプリングデータの記録振幅範囲を決定し、前記データ書込部では前記記録振幅範囲に基づきサンプリングデータのビット数を減らしてデータメモリに書き込むことを特徴とする請求項１４又は１５記載の情報コードの読取装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報コードの読取方法及び装置に関し、特にデータマークを走査方向に並べて構成した情報コードを読取センサで走査し、この走査信号に基づき情報コードを読み取る方法及び装置に関するものである。
【０００２】
【従来の技術】
写真プリンタや感熱プリンタでは、長尺の印画紙や感熱記録紙をロール状に巻いたロール紙が使用され、例えばプリント後に規定の大きさにカットしている。これらの印画紙や感熱記録紙は、感光性や光定着性が付与されているため、保湿性と遮光性とを備えたロール紙用給紙マガジン（以下、給紙マガジンという。）に収納された状態で、プリンタにセットされている。
【０００３】
この給紙マガジンは、保湿性と遮光性とを備えた材質で成形されたマガジン本体と、このマガジン本体にロール紙を装填する際に開かれる蓋とから構成されている。そして、マガジン本体内には、給紙ローラが設けられ、この周面にロール紙の外周面が押しつけられている。給紙ローラがプリンタ側からの駆動によって回転されると、ロール紙が回転され、記録紙がマガジン本体に設けられた排出口からプリンタ内の記録位置へ送り出される。
【０００４】
ところで、記録紙は感度によって記録濃度が変化する。また、通常の記録紙と、シールプリント用の記録紙とではプリントする画像が異なる。そこで、例えば感熱記録紙では、ロール紙の巻芯の端面に、記録紙の種類、熱感度、メーカ名等の情報を表す情報コードを設けている。また、感熱プリンタでは、この情報コードをコード読取装置によって読み取り、この情報に基づきプリント条件を設定している。
【０００５】
前記情報コードは、スタートマークと多数のデータマークとから構成されている。そして、スタートマークはデータマークの例えば３倍の長さに設定されており、このスタートマークにより、データマークの読取開始位置を特定している。また、データマークは、各ビットの記録エリアの半分の長さに設定されており、この記録エリアの前半部分にマークを記録するか、又は後半部分にマークを記録するかにより、「０」と「１」と識別している。
【０００６】
【発明が解決しようとする課題】
前記情報コードの読み取りは、光学的にマークを検出する読取センサにより、記録紙の送りによる巻芯の回転時に各マークの配列方向に走査することで読み取っている。しかしながら、情報コードの巻芯端面などへの印刷不良や、情報コードの表示面へのごみの付着や汚れ等によって、ノイズが増加したり、走査信号の振幅劣化が発生したりして、読み取りエラーが発生することがあった。
【０００７】
本発明は上記課題を解決するためのものであり、ノイズの増加や走査信号の振幅劣化などに起因する読み取りエラーの発生を抑え、情報コードを確実に読み取ることができる情報コードの読取方法及び装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記目的を達成するために、本発明では、回転体の周面又は端面にスタートマークと複数個のデータマークとが円周方向に並べて構成され、スタートマークはデータマークよりも円周方向で長く形成されている情報コードを、回転体の回転時に読取センサで走査し、読取センサからの出力信号に基づき前記情報コードの各ビットを識別して情報を読み取る情報コードの読取方法において、前記回転体を複数回転させて前記情報コードを読取センサで走査し、この出力信号をＡ／Ｄ変換してサンプリングデータとしてデータメモリに記憶するデータサンプリング工程と、前記サンプリングデータから最大値及び最小値を抽出し、前記最大値と最小値とから許容ノイズを算出し、この許容ノイズを超えて前記サンプリングデータが変動するときにこの変動点におけるサンプリングデータを極大値又は極小値として求め、求めた極大値及び極小値の中から隣接する極大値及び極小値に基づき前記各マークに対応する個別のスレッシュレベルを決定するスレッシュレベル決定工程と、決定したスレッシュレベルにより、前記各マーク部分の長さを求め、最長長さを有するマークをスタートマークとして検出するスタートマーク検出工程と、第１のスタートマークと第２のスタートマークとの間隔によりデータマークの最小長さを求めて各マークのエッジ部分が存在する領域を決定し、このエッジ存在領域において、前記サンプリングデータがスレッシュレベルを横切るポイントと横切る方向とからデータマークのビットが「０」か「１」かを判定するデータ判定工程とを備えることを特徴とする。
【００１１】
なお、前記スレッシュレベル決定工程は、前記極大値と極小値との差の１／２を各マークのスレッシュレベルと決定している。
【００１２】
本発明では、前記データ判定工程において、前記エッジ存在領域を下降してスレッシュレベルと交差するときにデータマークのビットを「０」または「１」と判定し、エッジ存在領域を昇降してスレッシュレベルと交差するときにデータマークのビットを前記判定とは逆の「１」または「０」と判定し、それ以外のときに読取エラーと判定している。
【００１３】
本発明では、前記読取エラーと判定されたときに、前記許容ノイズの幅を変えて再度極大値、極小値を求め、この極大値及び極小値から求めた前記スレッシュレベルによりデータマークを再判定するデータ再判定工程を有している。なお、前記読取エラーと判定されたときに、前記スレッシュレベルを単に変更してデータマークを再判定してもよい。また、前記読取エラーと判定されたときに、前記エッジ存在領域を広げてデータマークを再判定してもよい。
【００１４】
本発明では、前記スレッシュレベル決定工程は、極大値検出処理と極小値検出処理とを交互に行うことで、スレッシュレベルを決定している。そして、極大値検出処理では、サンプリングデータの現在データを極大値とし、次のサンプリングデータと前記極大値とを比較し、この比較において、極大値よりもサンプリングデータが大きいときに極大値を更新し、極大値よりもサンプリングデータが小さいときに、極大値からサンプリングデータを引いた差と前記許容ノイズとを比較し、前記差が許容ノイズよりも小さいときに極大値を更新せずに維持し、前記差が許容ノイズよりも大きいときに現在の極大値をこのビットにおける極大値として決定する。また、この極大値を決定した後に、極小値検出に移る。そして、極小値検出処理では、前記極大値を検出したポイントのデータを極小値とし、次に極小値とこのポイントのデータを比較し、この比較において、極小値よりもサンプリングデータが小さいときに極小値を更新し、極小値よりもサンプリングデータが大きいときに、サンプリングデータから極小値を引いた差と前記許容ノイズとを比較し、前記差が許容ノイズよりも小さいときに極小値を更新せずに維持し、前記差が許容ノイズよりも大きいときに現在の極小値をこのビットにおける極小値として決定する。次に、極小値を決定した後に、このポイントのデータを極大値として、前記極大値検出処理に移る。
【００１５】
なお、前記サンプリング工程は、予備走査と本走査とを行い、予備走査では、サンプリングデータの最大値及び最小値を求め、本走査では、前記最大値及び最小値に基づき決定した振幅範囲でサンプリングデータをメモリに記憶することが好ましい。また、前記予備走査では前記回転体を一方向に回転し、本走査では前記回転体を他方向に回転して、走査信号を得ることが好ましい。さらに、前記走査信号をＡ／Ｄ変換したサンプリングデータに対して、本走査では、前記決定した振幅範囲により、サンプリングデータのビット数を減らしてデータメモリに記憶することが好ましい。
【００１６】
また、記録紙をロール状に巻き取った巻芯から前記回転体を構成し、前記情報コードを前記記録紙の識別情報とし、記録紙を給紙方向に送って前記予備走査を行い、記録紙を給紙方向とは逆の巻き戻し方向に送って本走査を行うことが好ましい。前記情報コードの各マークを、マークが形成される地に対して反射率または吸収率が異なるマーク材料により形成することが好ましい。また、情報コードは、記録紙の種類、熱感度、ロット番号、生産時期の各情報のうち少なくとも１つを含むことが好ましい。前記情報コードは誤り検出訂正コード部を有し、この誤り検出訂正コード部から読み取り時の誤り率を求め、この誤り率に基づき前記読取センサのスレッシュレベルを変化させて前記情報コードを読み取ることが好ましい。
【００１８】
本発明は、回転体の周面又は端面にスタートマークと複数個のデータマークとを円周方向に並べて構成され、スタートマークはデータマークよりも円周方向で長く形成されている情報コードを、前記回転体の回転時に読取センサで走査し、読取センサからの出力信号に基づき前記情報コードの各ビットを識別して記録紙識別情報を読み取る情報コードの読取装置において、前記情報コードを前記回転体の回転の際に走査する読取センサと、この読取センサからの出力信号をＡ／Ｄ変換してサンプリングするサンプリング回路と、前記サンプリングデータをデータメモリに書き込むデータ書込手段と、前記データメモリに記憶したサンプリングデータに基づき情報コードの情報を解読する情報解読手段とを備え、前記情報解読手段は、前記サンプリングデータから最大値及び最小値を抽出し、前記最大値と最小値とから許容ノイズを算出し、この許容ノイズを超えて前記サンプリングデータが変動するときにこの変動点におけるサンプリングデータを極大値又は極小値として求め、求めた極大値及び極小値の中から隣接する極大値及び極小値に基づき前記各マークに対応する個別のスレッシュレベルを決定するスレッシュレベル決定部と、前記スレッシュレベルに基づき前記各マーク部分の長さ相当値を求め、最大長さ相当値を有するマークをスタートマークとして検出するスタートマーク検出部と、前記第１及び第２のスタートマークの間隔によりデータマークの最小長さを求め、マークのエッジ部分が存在する領域を決定するエッジ存在領域決定部と、前記エッジ存在領域において、前記サンプリングデータがスレッシュレベルを横切るポイントと横切る方向とからデータマークのビットが「０」か又は「１」かを判定するデータ判定部とから構成されていることを特徴としている。
【００１９】
なお、前記巻芯を給紙方向及び給紙方向とは反対の巻き戻し方向に回転させるとともに、この回転手段による給紙方向への回転時に前記情報コードの予備走査を行い、巻き戻し方向への回転時に本走査を行う走査制御部を備え、予備走査ではサンプリングデータの振幅に基づき本走査におけるサンプリングデータの記録振幅範囲を決定し、前記データ書込部では前記記録振幅範囲に基づきサンプリングデータのビット数を減らしてデータメモリに書き込むことが好ましい。また、前記情報コードは誤り検出訂正コード部を有し、前記サンプリング回路は、この誤り検出訂正コード部から読み取り時の誤り率を求め、この誤り率に基づき前記読取センサのスレッシュレベルを変化させることが好ましい。
【００２０】
【発明の実施の形態】
カラー感熱プリンタの概略を示す図１において、給紙マガジン１０内にはロール紙１１が収納されている。ロール紙１１は、帯状のカラー感熱記録紙１２を巻芯１３に巻き付けて構成されている。巻芯１３は紙又はプラスチック製の円筒から構成されており、これの端面１３ａには、情報コード１４が記録されている。また、巻芯１３の両端にはペーパーホルダ１５が嵌め込まれている。ペーパーホルダ１５は回転軸１５ａを有しており、この回転軸１５ａを介して、ロール紙１１を給紙マガジン１０内で回転自在に保持する。
【００２１】
給紙マガジン１０は、マガジン本体１０ａと蓋１０ｂとから構成されている。給紙マガジン１０内には、給紙ローラ１６とロール紙軸受け１７が設けられている。給紙ローラ１６はロール紙１１に接触して矢印Ａ方向に回転することで、記録紙１２を給紙マガジン１０から送り出す。また、矢印Ｂ方向に回転することで、記録紙１２を給紙マガジン１０内に巻き取る。
【００２２】
ロール紙軸受け１７は、前記ペーパーホルダ１５の回転軸１５ａを回転自在に保持する。このロール紙軸受け１７は、給紙ローラ方向に移動自在に構成されており、ロール紙１１の使用による減少で巻径が小さくなってもロール紙１１が給紙ローラ１６に常に接触するように構成されている。給紙ローラ１６は給紙モータ２０により駆動される。給紙モータ２０は、ドライバ２１を介してシステムコントローラ２２により回転制御される。
【００２３】
プリント時には給紙モータ２０が給紙方向に回転して記録紙１２をプリント部２３に送り出す。プリント部２３では、周知のように、サーマルヘッドにより三色面順次記録を行う。この三色面順次記録の際に、記録済みの感熱発色層が次の層の感熱発色のための印加熱エネルギで発色してしまうことがないように、感熱発色層に特有な波長域の紫外線等を照射して光定着が行われる。三色面順次記録が終了するとドライバ２４を介してカッタ２５が作動する。カッタ２５は、記録紙１２のプリント済み部分を未プリント部分から切り離すように切断する。排紙ローラ２６は記録紙１２をカット位置にセットする。そして、カッタ２５により切断された記録紙１２ａはトレー２７に排紙される。
【００２４】
プリントを開始する前に、給紙マガジン１０にセットされているロール紙１１の種別を検知し、この種別等に応じてプリント条件を設定するために、情報コード１４が読み取られる。
【００２５】
図２に示すように、情報コード１４は、巻芯１３の端面１３ａに円周方向で構成されており、黒色の矩形状印刷パターンからなるスタートマークＳＭと多数のデータマークＤＭとから構成されている。なお、巻芯１３の端面１３ａの地色は白とされている。本実施形態では２４ビットの情報コードとしているので、データマークＤＭは２４個設けられている。このデータマークＤＭにより、記録紙１２の種類、熱感度、ロット番号、生産時期情報等の各種情報が表される。なお、情報コード１４は、記録紙の種類、熱感度、ロット番号、生産時期情報などのうち１つを含んでいればよい。
【００２６】
図３に示すように、データマークＤＭは、円周方向において、各ビットの記録エリアＢＡの長さＬ１の半分の長さＢＬ（＝Ｌ１／２）に設定されている。そして、図３（Ａ）に示すように、記録エリアＢＡの後半部分ＢＡ１にデータマークＤＭを記録することにより「０」の情報を表し、（Ｂ）に示すように、記録エリアＢＡの前半部分ＢＡ２にデータマークＤＭを記録することにより「１」の情報を表している。なお、図示の情報コード１４には記録エリアＢＡを識別するために各エリアの境界にラインが描かれている。しかし、これは説明のためのものであり、実際の情報コード１４にはこのラインは無く、単にＢＬ，２ＢＬ，３ＢＬのいずれかの長さを有するマークが円周方向にＢＬ又は２ＢＬの間隔で配置されている。
【００２７】
図２に示すように、スタートマークＳＭはデータマークＤＭの３倍の長さから構成されている。また、スタートマーク記録エリアＳＭＡはデータマークの５倍の長さＬ２（＝５×ＢＬ）に設定されている。そして、スタートマーク記録エリアＳＭＡに対して、両側にデータマークＤＭ１個分のスペースを開けてスタートマークＳＭが配置されている。
【００２８】
本実施形態では巻芯の直径が５０mmであり、スタートマーク記録エリアＳＭＡとしてデータマーク５個分の長さ（ＢＬ×５）と、２４個のビットを表すデータマーク記録エリアＤＭＡとしてデータマーク４８個分の長さ（ＢＬ×４８）とを用いる。このため、ＢＬは約３mmとなっている。また、データマークＤＭの幅も約３mmにしてある。なお、データマークＤＭの長さＢＬは、情報コード１４が付される巻芯１３の直径及び情報コード１４のビット数に応じて適宜決定される。また、スタートマーク記録エリアＳＭＡの長さＬ２や、スタートマークＳＭの長さ、データマークＤＭとの間隔なども適宜変更してよい。
【００２９】
図１に示すように、情報コード１４はフォトセンサ３０により読み出される。フォトセンサ３０は反射タイプであり、投光器と受光器とアンプとを一体化して構成されている。そして、投光器で投光されて情報マーク１４で反射した光を受光センサで受け、受光センサで光電変換した電圧信号をアンプで増幅した後に、情報読取コントローラ３１に送っている。なお、ロール紙１１の使用による巻径の減少に伴い、ロール紙軸受け１７は給紙ローラ方向にシフトするため、この動きに追随するように、フォトセンサ１４はロール紙軸受け１７に回動不能に取り付けられている。
【００３０】
情報読取コントローラ３１は、Ａ／Ｄ変換器３２を備えている。Ａ／Ｄ変換器３２は、フォトセンサ３０からの走査信号を１０ビットのデジタルデータに変換する。情報読取コントローラ３１は、ＣＰＵ３３、ＲＯＭ３４、ＲＡＭ３５、バス３６等を備えたマイクロコンピュータから構成されており、Ａ／Ｄ変換器３２からのサンプリングデータに基づき情報コード１４を解読する。なお、本実施形態ではＲＡＭ３５に設定されたデータメモリ３５ａの容量が増大することのないように、サンプリングデータを８ビットにしてデータメモリ３５ａに格納している。そして、データメモリ３５ａに書き込んだサンプリングデータを解析することで、各ビットの内容を解読する。この解読した情報コード１４のデータは、システムコントローラ２２に送られる。システムコントローラ２２では、この情報コードデータに基づき、記録紙１２の種別、感度、メーカー、販路等を特定する。そして、この特定データに基づきプリント条件を設定する。システムコントローラ２２もマイクロコンピュータから構成されており、各種指令の入力や設定を行うキーボード２８とディスプレイ２９とを備えている。
【００３１】
図４は情報読取コントローラ３１における処理手順を示すフローチャートである。まず、給紙モータ２０を一定時間、一定速度で回転させて、給紙ローラ１６を介して巻芯１３を給紙方向に回転し、この給紙方向送りのときに情報コード１４の予備走査を行う。このときの給紙ローラ１６による記録紙１２の送り量は、未使用状態におけるロール紙の２周分（満巻き２周分）７４０mmと予備量の２０mm分だけ行われる。この予備走査の後に、給紙ローラ１６を満巻き２周分と予備量だけ逆転させて本走査を行う。満巻き２周分の回転により、２個のスタートマークＳＭにデータマークＤＭが挟まれた状態のサンプリングデータを確実に得ることができ、データの解読を容易に行うことができる。
【００３２】
予備走査では、サンプリングデータに基づきその最大値ＰＳＶMax 及び最小値ＰＳＶMin を検出する。
【００３３】
次に、この最大値ＰＳＶMax 及び最小値ＰＳＶMin を用いて、本走査時の１０ビットのサンプリングデータをデータメモリ３５ａに書き込む際に、８ビットに丸め込む範囲を決定する。したがって、１０ビットのサンプリングデータを８ビットに丸め込んで記憶するため、データメモリ３５ａの容量が増加することがない。
【００３４】
なお、単に１０ビットを８ビットに変換して記憶するのでは、サンプリングデータの記憶する範囲によってはデータ精度が低下し、情報コードを確実に解読することができなくなる。このため、最大値ＰＳＶMax 及び最小値ＰＳＶMin によって特定したサンプリングデータの振幅範囲に基づき記憶する振幅範囲を図５に示すように、３種類に分類している。
【００３５】
図６は、サンプリングデータの一例を示している。サンプリングデータの記憶範囲を決定する際には、図４に示すように、最大値ＰＳＶMax 、最小値ＰＳＶMin 、及びオフセット電圧値ＯＳＶから予備走査時のサンプリングデータの振幅を求め、この振幅に基づき３種類に分類する。なお、オフセット電圧値ＯＳＶは、ＥＥＰＲＯＭに記憶されている。
【００３６】
まず、最大値ＰＳＶMax から最小値ＰＳＶMin を引いた差（ＰＳＶMax −ＰＳＶMin ）に、オフセット電圧値ＯＳＶを２倍して加算した判定値Ｈを求める。
Ｈ＝（ＰＳＶMax −ＰＳＶMin ）＋ＯＳＶ×２
次にこの判定値Ｈが、「５１２」を超えているか、「２５６」〜「５１２」の範囲内か、「２５６」以下かを判定する。図５は、このようにして分類されるサンプリングデータの一例を示している。
【００３７】
５１２＜Ｈのときには、例えば図５（Ａ）に示すようなサンプリングデータＳＤ１であり、この場合には、１０ビットの本走査におけるサンプリングデータの内、下位の２ビットを削除して、８ビットとしてデータメモリ３５ａに格納する。
【００３８】
２５６≦Ｈ≦５１２のときには、例えば図５（Ｂ）に示すようなサンプリングデータＳＤ２であり、この場合には、上位１ビット及び下位１ビットを削除し、格納データ（８ビット）を、〔読み込みデータ（１０ビット）−（ＰＳＶMin −ＯＳＶ）〕／２とする。
【００３９】
Ｈ＜２５６のときには、例えば図５（Ｃ）に示すようなサンプリングデータＳＤ３であり、この場合には、上位２ビットを削除し、格納データ（８ビット）を、〔読み込みデータ（１０ビット）−（ＰＳＶMin −ＯＳＶ）〕／４とする。
【００４０】
このように、サンプリングデータを８ビットに丸め込んでデータメモリ３５ａに記憶することにより、データメモリ３５ａの容量が増大することがなく、しかも精度よく、サンプリングデータから情報を解読することができる。
【００４１】
次に、データメモリ３５ａに格納したサンプリングデータから情報コードの内容を解読する処理について、図７〜図９のフローチャートを参照して説明する。図７は、情報コードの解読処理の全体を示すもので、まず、サンプリングデータの中から最大値ＦＳＶMax 、最小値ＦＳＶMin を抽出する。次に、この最大値ＦＳＶMax 、最小値ＦＳＶMin を用いて次式から許容ノイズＫＮを算出する。
ＫＮ＝〔（ＦＳＶMax −ＦＳＶMin ）×０．２〕
なお、「０．２」はノイズ係数αである。
【００４２】
次に、図８及び図９に示すように、求めた許容ノイズＫＮを用いて、データメモリ３５ａに記憶されたサンプリングデータから各マークＳＭ，ＤＭによる極大値ＶMax と極小値ＶMin とを検出する。
【００４３】
この極大値ＶMax 及び極小値ＶMin の検出処理は次のようにして行う。図１０に示すようなサンプリングデータＳＤを例にとって説明する。まず、図８に示すように、極大値ＶMax の検出処理では、ポイント(1) における現在のサンプリングデータＶ（１）を極大値ＶMax とする。次に、ポイント(n) におけるサンプリングデータＶ（ｎ）と極大値ＶMax とを比較し、この比較において、極大値ＶMax よりも次のサンプリングデータＶ（ｎ）が大きいときに、この値を極大値に置き換えて極大値ＶMax （＝Ｖ（ｎ））を更新する（ポイント(3) 〜(5) 参照）。また、ポイント(n) において極大値ＶMax よりもサンプリングデータＶ（ｎ）が小さいときに、極大値ＶMax からサンプリングデータＶ（ｎ）を引いた差〔ＶMax −Ｖ（ｎ）〕と許容ノイズＫＮとを比較し、前記差〔ＶMax −Ｖ（ｎ）〕が許容ノイズＫＮよりも小さいときに極大値を更新せずに維持する（ポイント(6) 参照）。また、前記差〔ＶMax −Ｖ（ｎ）〕が許容ノイズＫＮよりも大きいときに現在の極大値ＶMax をこのビットにおける極大値ＶMax として決定する（ポイント(7) 参照）。
【００４４】
次に、極大値ＶMax を決定した後に、極小値ＶMin の検出に移る。図９に示すように、極小値検出処理では、前記極大値を検出したポイント（ポイント(7) 参照）のデータＶ（ｎ）を極小値ＶMin とし、次にこの極小値ＶMin とこのポイントのデータＶ（ｎ）を比較する。そして、この比較において、極小値ＶMin よりもサンプリングデータＶ（ｎ）が小さいときに極小値を更新する（ポイント(9) ，(10)参照）。また、極小値ＶMin よりもサンプリングデータＶ（ｎ）が大きいときに、サンプリングデータＶ（ｎ）から極小値ＶMin を引いた差〔Ｖ（ｎ）−ＶMin 〕と許容ノイズＫＮＶとを比較し、前記差が許容ノイズＫＮＶよりも小さいときに極小値ＶMin を更新せずに維持し（ポイント(8) 参照）、前記差が許容ノイズＫＮＶよりも大きいときに現在の極小値ＶMin をこのビットにおける極小値ＶMin として決定する（ポイント(12)参照）。次に、この極小値ＶMin を決定した後に、このポイントのデータを極大値ＶMax として、次の極大値検出処理を行う。そして、極大値ＶMax を検出した後に極小値ＶMin を上記同様にして検出し、以下、交互に極大値ＶMax と極小値ＶMin とを検出する。
【００４５】
次に、求めた極大値ＶMax （ｍ）と極小値ＶMin （ｍ）との中間値を次式により求め、この中間値をスレッシュレベルＴＬ（ｍ）とする。
ＴＬ（ｍ）＝〔ＶMax （ｍ）−ＶMin （ｍ）〕／２
なお、ｍは各極大値及び極小値を識別するために便宜上順番に付したもので、１〜ｍの任意の数値となる。本実施形態では１個のスタートマークと２４個のデータマークとを用いて情報コードを構成しており、しかも各データマークの記録位置を前半部分または後半部分に記録して「０」か「１」かを識別するため、「０」と「１」とのビットが連続すると、２個のデータマークＤＭがつながったマークとなる。したがって、マークとして認識される数は必ずしもマーク総数の「２５」とはなることはなく、これよりも低い数となる。また、３個のデータマークＤＭがつながることはないので、データマークＤＭの３倍の長さを有するスタートマークＳＭとデータマークＤＭとが識別不能になることはない。
【００４６】
図１１は、極大値ＶMax （１）〜ＶMax （３）と、極小値ＶMin （１），ＶMin （２）とから求めたスレッシュレベルＴＬ（１ａ），ＴＬ（１ｂ），ＴＬ（２ａ），ＴＬ（２ｂ）の一例を示している。
【００４７】
次に、上記スレッシュレベルＴＬを下回る区間ＵＬ（１），ＵＬ（２）・・・を抽出する。そして、図１２に示すように、抽出した区間ＵＬ（１），ＵＬ（２）・・・の中から最長のものを最長区間ＬMax として決定し、この最長区間ＬMax のマークをスタートマークＳＭと決定する。また、この最長区間ＬMax とほぼ同じ長さの区間を求める。まず、最長区間ＬMax に「０．１」を乗じて、許容誤差ＬMax ×０．１を求める。そして、上記で求めたスレッシュレベルを下回る区間ＵＬ（１），ＵＬ（２）・・・の中から、この許容誤差範囲内（０．９ＬMax ＜ＵＬ＜ＬMax ）の長さＵＬを有する区間を求め、この区間ＵＬのマークをスタートマークＳＭと判定する。図１２では、最長区間ＬMax であるＵＬ（１）からｑ番目の区間ＵＬ（ｑ）がこれに該当するので、この区間ＵＬ（ｑ）もスタートマークＳＭであると判定する。なお、本実施形態では、ロール紙１１の満巻き状態で巻芯１３が２回転する長さ分を本走査しているので、図１２に示すように、求めたサンプリングデータには少なくとも２個のスタートマークＳＭが含まれている。
【００４８】
次に、２個のスタートマークＳＭの位置から、各スタートマークＳＭ間の距離に相当するサンプリングポイント数ＳＴを求める。次に、このＳＴからデータマーク１個分の長さに相当するサンプリングポイント数ＢＬを次式から求める。
ＢＬ＝ＳＴ／５３
なお、「５３」は、スタートマークとしてのデータマーク５個分と２４ビットのデータマークとして４８個分とを加算したものである。
【００４９】
次に、図１３に示すように、最初のスタートマークＳＭ１を基準にしてビット１から順にスレッシュ交点検出領域ＴＬＰＡを求める。スタートマークＳＭ１の中間点をＳＣ１としたときに、スレッシュ交点検出領域ＴＬＰＡの開始位置ＰＳ１、終了位置ＰＥ１を以下の式から求める。
ＰＳ１＝ＳＣ１＋ＢＬ×３
ＰＥ１＝ＳＣ１＋ＢＬ×４
上記スレッシュ交点検出領域ＴＬＰＡは、各データマークＤＭのエッジ部分が存在する領域である。
【００５０】
次に、ＰＳ１におけるサンプリングデータＶ（ＰＳ１）がスレッシュレベルＴＬ（１ａ）を超えているとき〔Ｖ（ＰＳ１）＞ＴＬ（１ａ）〕に、ＰＳ１〜ＰＥ１間でスレッシュレベルＴＬ（１ａ）よりも小さくなるポイントＰを検出する。そして、このポイント（スレッシュ交点）Ｐを検出することができたときに、このビット１は「０」と判定し、検出ができないときには読取エラーと判定する。
【００５１】
また、スレッシュ交点検出領域ＴＬＰＡの開始端ＰＳ１におけるサンプリングデータＶがスレッシュレベルＴＬよりも低いときに、スレッシュ交点検出領域ＴＬＰＡ内でスレッシュレベルＴＬよりも大きくなるスレッシュ交点Ｐを検出する。このスレッシュ交点Ｐを検出することができたときには、このビット１は「１」と判定し、検出ができないときには読取エラーと判定する。
【００５２】
ビット２以降のデータの解読も、その直前のビットのスレッシュ交点Ｐの位置に基づき、スレッシュ交点検出領域を特定し、上記同様にしてそのビットが「０」か「１」かを判定する。すなわち、
ＰＳｎ＝Ｐ＋ＢＬ×１．５
ＰＥｎ＝Ｐ＋ＢＬ×２．５
で特定されるスレッシュ交点検出領域ＴＬＰＡにおいて、ビット１と同様な判定を行い、各ビットを判定する。
【００５３】
そして、読取エラーのときには、スレッシュレベルＴＬを変更し、再度判定を繰り返す。スレッシュレベルＴＬの変更は、前記許容ノイズＫＮを求める際のノイズ係数αを「０．２」から例えば「０．３」に引き上げる、または「０．１」に引き下げることで行う。このノイズ係数αを上げることで、極大点や極小点の検出数が低下するので、余分な極大点や極小点を極大値や極小値と判定することがなく、各ビットの判定精度が向上する。また、フォトセンサ３０にゴミが付着したりした場合でも、ノイズ係数を変更することで、精度よく各ビットを判定することができる。なお、ノイズ係数αは、「０．１」，「０．２」，「０．３」に限らず適宜変更してよい。また、ノイズ係数αの変更回数も１回に限らず、複数回行ってもよい。更に、許容ノイズＫＮを変更する代わりに、単にスレッシュレベルＴＬに係数を乗じて補正し、これに基づき再判定してもよい。
【００５４】
許容ノイズＫＮやスレッシュレベルＴＬを変更した再判定でも、読取エラーが発生する場合には、スレッシュ交点検出領域ＴＬＰＡを広げて、再度の判定を行う。例えばビット１では、その開始位置ＰＳ１、終了位置ＰＥ１を以下の式から求める。
ＰＳ１＝ＳＣ１＋ＢＬ×２．９
ＰＥ１＝ＳＣ１＋ＢＬ×４．１
また、ビット２以降であれば、
ＰＳｎ＝Ｐ＋ＢＬ×１．４
ＰＥｎ＝Ｐ＋ＢＬ×２．６
のように、スレッシュ交点検出領域を１０％程度広げる。なお、領域の拡張率は１０％に限らず、適宜変更してよい。
【００５５】
なお、読取エラーのときに、許容ノイズＫＮやスレッシュレベルＴＬを変更して再判定し、この再判定でも読取エラーが発生するときに、スレッシュ交点検出領域ＴＬＰＡを変更しているが、この読取エラーの対処方法及び順序は上記のものに限定されることなく、適宜変更してよい。例えば、最初にスレッシュ交点検出領域ＴＬＰＡを変更し、次に許容ノイズＫＮやスレッシュレベルＴＬを変更してもよい。
【００５６】
上記のようにして、各ビットについて「０」又は「１」の判定がビット２４まで終了したときに、コードの解読処理を終了する。なお、上記のように再解読を行っても読取エラーが発生する場合には、図７に示すように、予備走査、本走査を再度行って、新たにサンプリングデータを採取し、これに基づき新たな読み取りを行う。このように再走査・再判定しても、再度読取エラーが発生する場合には、アラームを発しオペレータに読取エラーが発生したことを知らせた後に、情報コードの読み取りを終了する。
【００５７】
なお、本実施形態では、給紙ローラ１６による記録紙１２の送り速度は１００mm／sec であり、サンプリング間隔は２msecである。また、記録紙１２の各走査における送り長さは、満巻２周分の７０４mm＋予備分の２０mmである。このときのサンプリング数は３６２０個であり、１サンプリング当たり１バイトでデータメモリ３５ａに格納される。したがって、データメモリ３５ａの必要メモリ数は３６２０バイトとなる。なお、記録紙１２が満巻状態のときには記録紙送り量換算で約０．１mm送り量間隔毎に情報コード１４がサンプリングされ、記録紙が残り少なくなった小巻状態では約０．２mm送り量間隔でサンプリングされる。
【００５８】
上記実施形態では、情報コード１４の読み取りをプリント動作毎に行うようにしたが、この他に、給紙マガジン１０の交換毎に情報コード１４を読み取るようにしてもよい。また、上記実施形態では、読取エラーが発生したときに、スレッシュレベル又はスレッシュ交点検出領域をその都度変更したが、これに代えて、各データマークの判定を終了した後に、読取エラーのビットに対して、スレッシュレベル又はスレッシュ交点検出領域を変更して、再判定を行ってもよい。
【００５９】
上記実施形態では、情報コード１４を白地部分に黒色の印刷パターンで形成したが、光学的にマークを検出することができるものであれば、他の方法で記録したものであってもよい。また、白地に黒色の組み合わせに限らず、他の配色の組み合わせであってもよい。例えば、図１４に示すように、フォトセンサからの光を反射する地（例えば白色）５０に対して、フォトセンサからの光を吸収するインク（例えば透明または白色）等を用いて記録したスタートマークＳＭ、データマークＤＭにより、情報コード５１を形成してもよい。この場合には、フォトセンサとしては赤外線タイプのものを用いる。なお、地色やインクの色は上記のものに限らず、適宜変更してよい。また、印刷パターンに代えて、例えば、穴や反射部材などを用いて情報マークを構成してもよい。また、各マークは矩形、円形、帯形、扇形などの各種形状としてよい。また、情報コード１４の記録形態は上記のものに限定されることなく、種々の記録形態の情報コードに本発明を実施してもよい。例えば、円周方向に各バーを配列したバーコードの各バーの識別に本発明を実施してもよい。
【００６０】
上記実施形態では、給紙ローラ１６を一定量回転させることで、巻芯１３を２周を少し超える程度に回転させたが、この回転は２周以上であれば、３周またはそれ以上であってもよい。
【００６１】
上記実施形態では、予備走査を給紙方向への回転により行い、本走査を給紙方向とは反対の巻き戻し方向への回転により行っているが、この回転方向は特に限定されない。例えば、給紙ローラ１６による記録紙１２の引き出しにより巻芯１３を回転させるタイプではなく、巻芯を直接に回転駆動させるタイプでは、最初に巻き戻し方向に回転させて予備走査を行い、次に給紙方向に回転させて本走査を行ってもよい。また、予備走査と本走査で回転方向を変えることなく、同じ方向に回転させ、最初の回転で予備走査を行い、予備走査終了後の同方向への回転で本走査を行ってもよい。
【００６２】
上記実施形態では、情報コード１４を巻芯１３の端面１３ａに記録したが、この他に、周面に記録してもよい。また、記録紙１２の裏面に記録紙１２の送り方向で設けた情報コードの読み取りに対して、本発明を実施してもよい。
【００６３】
上記実施形態では、感熱プリンタ用の感熱記録紙に本発明を実施したが、他の記録方式の各種記録紙、例えば写真プリンタの印画紙ロール等に対して、本発明を実施してもよい。また、記録紙に限らず、回転体に付された情報コードを読み取る場合に本発明を実施してもよい。
【００６４】
前記情報コードは誤り検出訂正コード部を備えていてもよい。この場合には、誤り検出訂正コード部から読み取り時の誤り率を求め、この誤り率に基づき読取センサのスレッシュレベルを変化させて前記情報コードを読み取ることにより、より一層読取精度を上げることができる。以下に、この誤り検出訂正コード部を備えた読取方法について説明する。
【００６５】
図１５は誤り検出訂正コード部を有する情報コードの一例を示している。なお、図１５は、走査方向に各マークを配置した情報コード６０を示しており、この情報コード６０は、巻き芯の外周面または内周面に形成される。使用形態が巻き芯の端面の場合には、上記実施形態と同じように円周方向に配置される。この情報コード６０は、情報コード本体部（データマーク）６１とこれに連続して設けられる誤り検出訂正コード部６２とから構成されている。そして、情報コード本体部６１をスタートマークから例えば３２ビットまでとし、その次から１６ビットを誤り検出訂正コード部６２としている。したがって、予め情報コード本体部６１と誤り検出訂正コード部６２との位置が決まっているので、スタートマークからマーク数をカウントすることにより、これらの区別が可能になる。誤り検出訂正コード部６２としては、例えばリード・ソロモン符号等を用いる。
【００６６】
図１６は、情報コード読取装置７０のブロック図を示している。投光器７１ａ及び受光器７１ｂからなる反射型読取センサ７１からの読取信号は、コンパレータ部７２に送られて、ここで基準電圧信号（スレッシュレベル）Ｖｒｅｆと比較される。そして、読取信号が基準電圧信号よりも大きい場合には「１」のレベルがＡ／Ｄ変換器７３に送られる。また、読取信号が基準電圧信号よりも小さい場合には「０」のレベルがＡ／Ｄ変換器７３に送られる。Ａ／Ｄ変換器７３はこれらレベルに応じて「１」，「０」のデジタル信号をメカコントローラ（機構制御用マイコン）７４を介してシステムコントローラ７５に送る。
【００６７】
システムコントローラ７５では、誤り検出訂正コードと生成多項式とに基づいて誤りの数と位置と値とを算出し、これらの情報に基づき情報コード６０の訂正を行う。これら誤り検出訂正コードと生成多項式とに基づく誤り訂正技術については「符号理論」（宮川洋・岩垂好裕・今井秀樹共著、出版社：昭晃堂）等で周知であり、詳しくはこれら文献を参照されたい。図１７はこのとき処理手順を示したものである。まず、情報コード６０を読むために記録紙が引き出される。この記録紙の引き出しに応じて、情報コードが読取センサ７１で読み取られる。全てを読み取った後に、誤り検出訂正コードを用いて誤りの検出と個数とを演算する。そして、誤り数が一定の範囲内であるときには、誤り訂正を行い、正式に情報コードとして取り込む。このように誤り数が一定範囲内にあるときに誤り訂正を行うのは、訂正能力は無限にあるわけではなく、一定の範囲内の個数に限られていること、この訂正能力範囲を超えると誤訂正の確率が高くなることによる。そして、この読み取った情報コードは各種処理ルーチンに送られ、ＬＵＴの切り替えや、サーマルヘッドへの印加電圧の変更等が行われる。
【００６８】
また、一定の範囲を超えた誤り数が検出された場合には、フラグが「ダウン」か「アップ」かによって、スレッシュレベルを変更する。また、誤り数が前回よりも下がったか否かを判定し、下がった場合には、誤りが一定の範囲内になるまで、処理を繰り返す。すなわち、例えばフラグが「ダウン」の場合で、誤りの数が前回よりも下がった場合には、Ｄ／Ａ変換器７６を介してスレッシュレベルを一定量下げた後に、フラグを「ダウン」にセットする。また、例えばフラグが「アップ」の場合で、誤りの数が前回よりも下がった場合には、Ｄ／Ａ変換器７６を介してスレッシュレベルを一定量上げた後に、フラグを「アップ」にセットする。また、誤りの数が前回よりも下がらない場合には、フラグが「ダウン」か否かを判別し、「ダウン」のときにはフラグを「ダウン」にセットし、また、「ダウン」ではないときにはフラグを「アップ」にセットする。この後に、情報コードの先端まで戻して、再度情報コードを読み取る。
【００６９】
このように、Ｄ／Ａ変換器７６を介してコンパレータ７２のスレッシュレベルを一定量下げることで、全体的にレベルの下がった出力に対して正常に比較することが可能になる。したがって、情報コードの検出誤り数も減少し、訂正可能範囲に入ってくるので、以後正常に情報コードの読取処理が行われる。ロール紙の斜行等によって読み取り面が読取センサ７１から離れていた場合であって、何らかの条件で斜行が戻ることがある。この場合には、センサ出力が増加するため、バックグランドノイズが増えてコンパレート出力に掛かることが考えられる。この場合においても、フラグを「アップ」にセットし、Ｄ／Ａ出力を上げることでスレッシュレベルが上がり、正常に情報コードを読み取ることができるようになる。
【００７０】
次に、誤り検出訂正コードと生成多項式との内容について説明する。情報コードＣ１，Ｃ２，Ｃ３，Ｃ４に付き、Ｐ，Ｑの２つの検査ワードで構成された情報コードシステムを考える。そして、検査ワードＰ，Ｑは次の連立方程式の解として定義する。なお、２パリティの場合、最大２ワードまでの誤りの検出、イレージャ訂正が可能であり、イレージャを用いない場合には訂正能力は１ワードまでとなる。
Ａ＋Ｂ＋Ｃ＋Ｄ＋Ｐ＋Ｑ＝０・・・（１）
α6 ・Ａ＋α5 ・Ｂ＋α4 ・Ｃ＋α3 ・Ｄ＋α2 ・Ｐ＋α・Ｑ  ＝０・・・（２）
なお、上記数式１、２及び下記の数式３，４における「＋」は、モジュロ２加算を表している。なお、Ａ〜Ｄは情報コードＣ１〜Ｃ４それぞれのバイト単位のコードを示し、α〜α6 はガロアフィールド上の原始根を示し、Ａ' ，Ｂ’などの「’」は誤りを含んだ情報コードを示している。
【００７１】
よって、シンドロームＳ１，Ｓ２は以下のようになる。
0004098481.tif 000002
【００７２】
情報コードＣ１〜Ｃ４がそれぞれ３ビットで構成されているとすれば、生成多項式は次の式で表される。
Ｆ（Ｘ）＝Ｘ3 ＋Ｘ＋１・・・（５）
【００７３】
誤りの数と位置と値とを算出する場合には、次のようになる。まず、情報コードＣ１のみに誤りが含まれている場合は、
α6 ・Ｓ１＝Ｓ２＝α6 ・ＥC1・・・（６）となる。
なお、ＥC1は誤りを含んだＣ１コードを示している。
また、情報コードＣ２のみに誤りが含まれている場合は、
α5 ・Ｓ１＝Ｓ２＝α5 ・ＥC2・・（７）となる。
なお、ＥC2は誤りを含んだＣ２コードを示している。
また、情報コードＣ３のみに誤りが含まれている場合は、
α4 ・Ｓ１＝Ｓ２＝α4 ・ＥC3・・（８）となる。
なお、ＥC3は誤りを含んだＣ３コードを示している。
また、情報コードＣ４のみに誤りが含まれている場合は、
α3 ・Ｓ１＝Ｓ２＝α3 ・ＥC4・・（９）となる。
なお、ＥC4は誤りを含んだＣ４コードを示している。
【００７４】
次に、情報コードの訂正について図１８を参照して説明する。まず、読取センサ７１によって読み取られた各コードはスタートビット検出回路８０にてスタートビットの位置が検出される。スタートビットから内部クロックによりサンプリングされた各コードは、セレクタ７９によって情報コード本体部６１と誤り検出訂正コード部６２とに分けられ、それぞれのバッファ８１，８２に一時的に格納される。シンドローム演算部８３では、各情報コード本体部６１と訂正コード部６２とからの読取データに基づきシンドロームＳ１，Ｓ２を算出する。ここで、各シンドロームＳ１，Ｓ２が「０」であれば、誤り無しであるので、何らの訂正処理も行われず、次の情報コード処理ブロックである情報読取コントローラ８６に情報コードが送られる。また、Ｓ１≠０、Ｓ２≠０である場合には、情報コード本体部を含むコード列に誤りが含まれているので、各シンドロームＳ１，Ｓ２の値により、誤り検出部８４において、誤りの値、ＲＯＭテーブルに基づき誤りの位置を演算する。誤り訂正部８５では、遅延部８７によって遅延された情報コードデータに対して誤りの位置をカウンタにセットし、カウント値が誤り位置に一致したところでゲートを開き、誤り値とのＥＯＲをとることで、誤り訂正を行う。
【００７５】
なお、誤り検出訂正コードを有する情報コードの読み取りは単独で行ってもよく、または先に説明した情報コードの読取方法と併用してもよい。
【００７６】
【発明の効果】
本発明によれば、情報コードを予備走査した後に本走査を行い、予備走査では、サンプリングデータの最大値及び最小値を求め、本走査では、前記最大値及び最小値に基づき決定した振幅範囲でサンプリングデータをメモリに記憶したから、メモリの容量を増大させることがなく、しかも精度のよいサンプリングデータを記憶することができる。
【００７７】
また、回転体の周面又は端面にスタートマークと複数個のデータマークとを円周方向に並べて情報マークを構成し、前記回転体の一方向への回転時に前記予備走査を行い、回転体の他方向への回転時に前記本走査を行うことにより効率よく情報マークを走査することができる。また、走査信号をＡ／Ｄ変換したサンプリングデータに対して、本走査では、前記決定した振幅範囲により、サンプリングデータのビット数を減らしてデータメモリに記憶することにより、データメモリの容量が少なくて済み、この分だけコストを下げることができる。
【００７８】
サンプリングデータから最大値及び最小値を抽出してスレッシュレベルを決定し、このスレッシュレベルにより、各マーク部分の長さ相当値を求め、最大長さ相当値を有するマークをスタートマークとして検出するから、各データマークの特定が容易に行える。
【００７９】
第１のスタートマークと第２のスタートマークとの間隔によりデータマークの最小長さを求め、マークのエッジ部分が存在する領域を決定し、このエッジ存在領域において、サンプリングデータがスレッシュレベルを横切るポイントと横切る方向とからデータマークのビットが「０」か又は「１」かを判定するから、各ビットの判定を確実に行うことができる。
【００８０】
また、データマークのビットが「０」か又は「１」かの判定ができないときに、読取エラーとし、この読取エラーのときに、前記スレッシュレベルを変更し、または前記エッジ存在領域を広げてデータマークを再判定することにより、読み取り精度を上げることができる。
【００８１】
また、読取エラーの時に許容ノイズの範囲を広げることにより、極大値及び極小値を再抽出し、これに基づきスレッシュレベルを変更することで、読み取り精度を上げることができる。特に、フォトセンサなどにゴミが付着して信号レベルが低下しても、これに容易に対処することができる。
【００８２】
情報コードは誤り検出訂正コード部を有し、この誤り検出訂正コード部から読み取り時の誤り率を求め、この誤り率に基づき前記読取センサのスレッシュレベルを変化させて前記情報コードを読み取るから、情報コードを安定的に読み取ることができる。
【図面の簡単な説明】
【図１】本発明の情報コード読取方法を実施したカラー感熱プリンタを示す概略図である。
【図２】情報コードの一例を示す正面図である。
【図３】データマークの記録位置を示す説明図である。
【図４】情報コードの読取処理を示すフローチャートである。
【図５】予備走査におけるサンプリングデータの種類を示すグラフである。
【図６】予備走査におけるサンプリングデータの一例を示すグラフである。
【図７】情報コードの解読処理を示すフローチャートである。
【図８】極大値決定処理を示すフローチャートである。
【図９】極小値決定処理を示すフローチャートである。
【図１０】極大値及び極小値を決定する処理の具体例を示す説明図である。
【図１１】情報コードとこれに対応するサンプリングデータとの一例を示す説明図である。
【図１２】スタートマークの検出処理の一例を示す説明図である。
【図１３】各ビットの識別処理の一例を示す説明図である。
【図１４】別の実施形態における情報コードの一例を示す拡大した正面図である。
【図１５】誤り検出訂正コードを有した情報コードの一例を示す拡大した正面図である。
【図１６】誤り検出訂正コードを有した情報コード読取装置を示す概略図である。
【図１７】同情報コード読取装置における処理手順を示すフローチャートである。
【図１８】誤り検出訂正コードを用いた誤り訂正を示す機能ブロック図である。
【符号の説明】
１０  給紙マガジン
１１  ロール紙
１２  記録紙
１３  巻芯
１４，５１，６０  情報コード
１６  給紙ローラ
３０  フォトセンサ
６２  誤り検出訂正コード部
７１  読取センサ
７２  コンパレータ
ＤＭ  データマーク
ＳＭ  スタートマーク
ＢＡ  データ記録エリア
ＳＭＡ  スタートマーク記録エリア
【図１】
0004098481.tif 000003
【図２】
0004098481.tif 000004
【図３】
0004098481.tif 000005
【図４】
0004098481.tif 000006
【図５】
0004098481.tif 000007
【図６】
0004098481.tif 000008
【図７】
0004098481.tif 000009
【図８】
0004098481.tif 000010
【図９】
0004098481.tif 000011
【図１０】
0004098481.tif 000012
【図１１】
0004098481.tif 000013
【図１２】
0004098481.tif 000014
【図１３】
0004098481.tif 000015
【図１４】
0004098481.tif 000016
【図１５】
0004098481.tif 000017
【図１６】
0004098481.tif 000018
【図１７】
0004098481.tif 000019
【図１８】
0004098481.tif 000020