(57)【要約】【課題】２次元コードを原稿に埋め込む（印刷する）際に解読可能な２次元コードを埋め込み画像形成装置を提供する。【解決手段】本発明は、仮想点とドットとが一対一に関連付けられており、ドットを、当該ドットに関連付けられた仮想点からずれた位置に配置することによって付加情報を表現する画像形成装置である。本発明は、仮想点と、当該仮想点に隣接する仮想点との間隔を決定すると共に、ドットのサイズを決定する手段と、決定された間隔を持つ各仮想点に対して、決定されたサイズのドットを配置する手段を備える。決定する手段は、決定する間隔に比例するサイズ以外のサイズに、ドットのサイズを決定する。【選択図】図１
2011259512.tif 000002
【特許請求の範囲】
【請求項１】
仮想点一つに対してドットが一つ関連付けられ、ドットの配置状況によって付加情報を表現する付加情報表現装置であって、
前記仮想点と当該仮想点に隣接する仮想点との間隔と、前記ドットのサイズを個別に設定する設定手段を有することを特徴とする付加情報表現装置。
【請求項２】
前記設定手段は、前記ドットサイズの設定を変更することなく前記間隔の設定を変更することが可能となっていることを特徴とする請求項１に記載の付加情報表現装置。
【請求項３】
前記設定手段は、前記間隔の設定を変更することなく前記ドットサイズの設定を変更することが可能となっていることを特徴とする請求項１又は２に記載の付加情報表現装置。
【請求項４】
前記仮想点とは、グリッド同士の交点であることを特徴とする請求項１乃至３の何れか１項に記載の付加情報表現装置。
【請求項５】
仮想点一つに対してドットが一つ関連付けられ、ドットの配置状況によって付加情報を表現する付加情報表現方法であって、
前記仮想点と当該仮想点に隣接する仮想点との間隔と、前記ドットのサイズを個別に設定する設定ステップを有することを特徴とする付加情報表現方法。
【請求項６】
前記設定ステップは、前記ドットサイズの設定を変更することなく前記間隔の設定を変更することが可能となっていることを特徴とする請求項５に記載の付加情報表現方法。
【請求項７】
前記設定ステップは、前記間隔の設定を変更することなく前記ドットサイズの設定を変更することが可能となっていることを特徴とする請求項５又は６に記載の付加情報表現方法。
【請求項８】
前記仮想点とは、グリッド同士の交点であることを特徴とする請求項５乃至７の何れか１項に記載の付加情報表現方法。
【請求項９】
請求項５乃至８の何れか１項に記載の付加情報表現方法を実行するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、低可視の情報埋め込み手法を用いて２次元コードを原稿に埋め込む画像形成装置等に関し、特に、２次元コードを原稿に埋め込む前（印刷する前）に当該２次元コードをキャリブレーション（調整又は較正）する機能を有する画像形成装置等に関する。
【背景技術】
【０００２】
近年、企業が保管している顧客情報等の機密情報が社外に不正に流出する事件が度々発生しており、それが大きな社会問題になっている。このような事件が生じないようにするために多くの企業は、電子化された機密情報にアクセス権限をかけることや、ファイアウォールに監視装置を設けるなどして、外部に機密情報が流出するのを防ぐための対策をとっている。また、一部の企業においては、従業員が私物のノート型ＰＣやＵＳＢメモリ等の携帯型メモリを社内に持ち込むことを禁止すると共に、会社の所有物である情報関連機器を従業員が無断で社外に持ち出すことを禁止する等の措置がとられている。このように、企業は、様々なセキュリティ対策を講じることにより、電子化された機密情報の保護を図っている。一方、従業員が書類を社外に持ち出すことは一般的に行われているため、機密情報が用紙に印刷されて書類として存在する場合にその書類の不正な持ち出しを防止するのは困難である。不正に社外に持ち出された書類は、コピーされ、あるいは、スキャナを使って電子化されることにより複写物が多数作成され、それらが不特定多数に配布されるおそれがある。したがって、企業においては、機密情報の保護管理を徹底するために、電子化された機密情報の管理を一層強化することに加えて、紙書類に印刷された機密情報を保護するための対策を講じる必要がある。
【０００３】
紙書類に印刷された機密情報を保護するために、従来から様々な手法が提案されている。その手法の１つとして、２次元コードによる情報埋め込み／抽出技術を用いて、印刷の際に、画像の印刷と共に、印刷／複写履歴情報を２次元コードの形態で原稿に埋め込むものがある。この手法によれば、機密情報の管理者は、流出した書類又はその複写物を入手し、それに埋め込まれている２次元コードを解析することで、当該書類を持ち出した者又は当該書類を複写した者を特定し得る。このことは、機密情報が印刷された書類の持ち出しや複製行為に対する大きな抑止力になると考えられる。また、別の手法として、２次元コードによる情報埋め込み／抽出技術を用いて、印刷の際に、画像の印刷と共に、複写制限情報（複写許可、複写禁止等）を２次元コードの形態で原稿に埋め込むものがある（特許文献１）。この手法によれば、当該情報埋め込み／抽出技術を用いた機能を備えた複写機は、複写時に、当該原稿から当該２次元コードを抽出し、それを解析して複写制限情報を求め、それに基づいて複写続行又は複写中止をページ毎に制御できる。また、複写が許可された者のユーザ情報やパスワード情報を２次元コードの形態で原稿に埋め込むことにより、正当なユーザのみが複写を行えるようにする制御もできる。
【０００４】
このように、上述した手法は、付加情報（印刷／複写履歴情報、複写制限情報等）を２次元コードの形態で原稿に埋め込む段階と、原稿に埋め込まれた２次元コードを抽出し、それを解析する段階を含む。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２８０４６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
付加情報を２次元コードの形態で原稿に埋め込む上記の手法においては、例えば以下に挙げる理由で、原稿から２次元コードを正確に抽出すること、又は、抽出した２次元コードを正確に解析できないことがある。
・２次元コードの埋め込み時（２次元コードの印刷時）のトナーの乗り具合や原稿の取り扱い方によって、２次元コードが正確に原稿に埋め込まれていない。
・２次元コードが埋め込まれた原稿を読み取るスキャナの読み取り精度の制限により、２次元バーコードを正確に抽出できない。
・２次元コードと画像とが重なって印刷されている部分があるため、その部分から２次元コードを正確に抽出できない。
【０００７】
このように、従来の手法においては、原稿に埋め込まれた２次元コードを抽出し、それを解析する段階ではじめて、原稿に埋め込まれている２次元コードが適切であるかどうかが判明する。言い換えれば、従来の手法においては、２次元コードの埋め込み段階では、セキュリティ保護のために有効な印刷出力結果が得られたかどうか、すなわち、適切な２次元コードが埋め込まれたかどうかがわからないという課題がある。
【０００８】
そこで、本発明の目的は、２次元コードを原稿に埋め込む前に当該２次元コードをキャリブレーションして解読可能な２次元コードを生成し、その解読可能な２次元コードを原稿に埋め込む画像形成装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の付加情報表現装置は、仮想点一つに対してドットが一つ関連付けられ、ドットの配置状況によって付加情報を表現する付加情報表現装置であって、前記仮想点と当該仮想点に隣接する仮想点との間隔と、前記ドットのサイズを個別に設定する設定手段を有することを特徴とする。
【００１０】
本発明の付加情報表現方法は、仮想点一つに対してドットが一つ関連付けられ、ドットの配置状況によって付加情報を表現する付加情報表現方法であって、前記仮想点と当該仮想点に隣接する仮想点との間隔と、前記ドットのサイズを個別に設定する設定ステップを有することを特徴とする付加情報表現方法。
【００１１】
本発明のプログラムは、コンピュータに、上記の方法を実行させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、２次元コードを原稿に埋め込む（印刷する）際に、解読可能な２次元コードを埋め込みことができる。その理由は、２次元コードを原稿に埋め込む前に当該２次元コードを解読可能な２次元コードにキャリブレーション（調整又は較正）するからである。
【図面の簡単な説明】
【００１３】
【図１】実施例１の画像形成装置の構成例を示すブロック図である。
【図２】実施例１における、画像形成装置による処理の流れを示すフローチャートである。
【図３】実施例１における、画像形成装置１００の各部の間のデータの流れを説明するための図である。
【図４】実施例１において、生成される複数パターンのＬＶＢＣを示す図である。
【図５】実施例１における、グリッド間隔、ドット面積、ＬＶＢＣの解読可否及びドットの打ち込み量の関係を示す図である。
【図６】実施例２における、画像形成装置による処理の流れを示すフローチャートである。
【図７】実施例２における、画像形成装置の各部の間のデータの流れを説明するための図である。
【図８】実施例２において、生成される複数パターンのＬＶＢＣを示す図である。
【図９】実施例３における、画像形成装置による処理の流れを示すフローチャートである。
【図１０】実施例３における、エラー訂正符号量に応じて調整レベルを決定する方法を説明するための図である。
【図１１】実施例３における、調整レベルに基づいた、グリッド間隔とドット面積の調整例を説明するための図である。
【図１２】実施例３における、調整レベルに基づいた、グリッド間隔とドット面積の別の調整例を説明するための図である。
【図１３】ＬＶＢＣのドット面積とグリッド間隔の各々を段階的に変更することにより生成されるＬＶＢＣのパターンを示す図である。
【図１４】ドット面積／グリッド間隔と、視認性／復号容易性との関係を説明するための図である。
【図１５】ＬＶＢＣを用いた情報埋め込み／抽出技術を利用可能な画像形成装置の構成例を示すブロック図である。
【図１６】ＬＶＢＣが埋め込まれていない原稿にＬＶＢＣを埋め込む際の画像形成装置の動作例を説明するための図である。
【図１７】原稿に埋め込まれているＬＶＢＣに基づいて、画像形成装置の設定内容や動作内容を切り替える処理を説明するための図である。
【図１８】ＬＶＢＣが埋め込まれた原稿の一例を示す図である。
【図１９】第１の領域と第２の領域に埋め込まれる埋込情報の特性を示す図である。
【図２０】第１の領域と第２の領域の配置を説明するための図である。
【図２１】グリッドと、ドットを配置する場所の位置関係を示す図である。
【図２２】埋込情報として、バイナリデータの０１０１１１１１００１１を埋め込んだ例を示す図である。
【図２３】ＬＶＢＣの解析を行う埋込情報解析部１７０１の構成を示すブロック図である。
【図２４】ドット検知部１７０２によるドット検知を説明するための概念図である。
【図２５】ハーフトーン除去を説明するためのグラフを示す図である。
【図２６】グリッドの間隔を測定する手法を説明した模式図である。
【図２７】グリッド間の距離の頻度を示したヒストグラムの一例を示す図である。
【図２８】グリッドの回転角度の補正を説明する図である。
【図２９】回転の補正結果およびグリッド位置を説明する図である。
【図３０】オフセット値に対応した自己相関値を計算した例を示すグラフである。
【図３１】第１の領域の位置の決定方法を説明するための図である。
【図３２】第１の領域の集計を説明するための模式図である。
【図３３】回転を考慮し、エラー訂正を行った復号の処理を説明するための図である。
【図３４】第２の領域におけるオフセット値に対応した自己相関値を計算した例を示すグラフである。
【図３５】第２の領域の位置を決定する方法を説明するための図である。
【発明を実施するための形態】
【００１４】
本実施形態では、２次元コードとしてＬＶＢＣ（Ｌｏｗ  Ｖｉｓｉｂｉｌｉｔｙ  Ｂａｒｃｏｄｅｓ：低可視バーコード）を用いる。そこで、最初に、ＬＶＢＣを用いた情報埋込／抽出技術について詳細に説明する。
【００１５】
〈ＬＶＢＣについて〉
本実施形態においては、印刷装置は、原稿画像と共に所望の付加情報（以下、埋込情報という。）を用紙やＯＨＰシート等のシートに印刷する。
【００１６】
情報埋込の要件は、一般的に、次の通りである。
・シートに十分な情報量の埋込情報を埋め込むことができる。
・シートに色材（トナーやインクなど）を使って埋め込まれた埋込情報を、後で、デジタル情報として確実に抽出できる。
・原稿画像をシートに複写する際に、埋込情報の抽出を妨げる要因（原稿の回転、拡大、縮小、部分的削除、複写による信号の鈍り、汚れ等）に対して耐性がある。
・複写禁止を示す埋込情報が埋め込まれている原稿の複写を防止するために、複写時にリアルタイム又はそれに準ずるスピードで埋込情報を抽出できる。
【００１７】
図１８は、ＬＶＢＣが埋め込まれた原稿の一例を示す図である。
【００１８】
１８０１はシート全体を示し、１８０２は１８０１の拡大図を示す。１８０２を参照すると、シートには、原稿に本来描画される画像の他に、多数のドット（１８０３）が印刷されている。ＬＶＢＣを用いた情報埋込技術では、これらのドットを介して埋込情報をシートに埋め込む。
【００１９】
（埋込情報が埋め込まれる２つの領域）
次に、埋込情報が埋め込まれる領域について説明する。当該領域は、第１の領域と第２の領域に分けられる。
【００２０】
図１９は、第１の領域と第２の領域に埋め込まれる埋込情報の特性を示す図である。
【００２１】
埋込情報は、特性の異なる２種類の埋込情報に分類される。各埋込情報は、個々に抽出可能なように第１の領域と第２の領域に別々に埋め込まれる。
【００２２】
第１の領域には、印刷する電子ドキュメントの所在情報や、印刷パラメータの情報（Ｎ−ｕｐ／解像度／拡縮等）、セキュリティ情報など、通常のスキャンによる複写操作時にリアルタイムで抽出しなければならない情報が埋め込まれる。第１の領域に埋め込まれた埋込情報の抽出処理は必ず実施されるために、埋込情報の抽出時の遅延は複写速度全体に影響を及ぼす。よって、埋込情報を解析する速度には、例えば、スキャン速度と同程度の速度が要求される。一方、これらの情報の情報量は少なくてよいため、そのデータサイズは小さくてすむ。
【００２３】
第２の領域には、検索情報が埋め込まれる。検索情報は、例えば、ページ内のオブジェクトの座標情報やキーワードであり、オブジェクトの検索時に使用される。検索情報は、通常の複写時には使用されないため、検索情報の抽出は複写速度に影響を及ぼさない。検索情報の抽出は、必ずしもリアルタイムで行う必要がないため、検索情報の解析速度は、比較的低速でよい。したがって、検索情報には多量の情報を含ませることができる。
【００２４】
本実施形態のＬＶＢＣではこれらの特性が異なる埋込情報に対応するために、第１の領域と第２の領域とが混在した領域に埋込情報を埋め込む。そして、本実施形態では、埋込情報を、第１の領域のみから抽出、第２の領域のみから抽出又は両方の領域から抽出することを用途に応じて選択する。埋込情報を第１の領域のみから抽出する場合には、解析速度を向上させ、複写操作の生産性に影響を及ぼさない速度で抽出処理を行う。
【００２５】
図２０は、第１の領域と第２の領域の配置を説明するための図である。
【００２６】
２００１の四角の領域は第１の領域を示す。同じ四角の領域が周期的に複数並んでいるが、いずれの領域にも同じ埋込情報が格納される。このように、複数の第１の領域に同じ埋込情報を埋め込むことにより、埋込情報の冗長性が増し、その結果、ノイズや誤差に対する埋込情報の耐性が強化される。２００３は第１の領域のサイズ、２００４は第１の領域の繰り返し周期を示す。
【００２７】
２００２の四角は第２の領域を示す。第２の領域も第１の領域と同様に、同じ四角の領域が周期的に複数並んでいる。特定の異なる上記２種類の埋込情報は、第１の領域２００１と第２の領域とに排他的に埋め込まれる。２００５は第２の領域のサイズを示す。
【００２８】
（ＬＶＢＣの埋込方法）
次にＬＶＢＣの埋込方法について説明する。
【００２９】
ＬＶＢＣを用いた情報埋込方法においては、仮想的なグリッド（格子）が用いられる。
【００３０】
埋込情報は、一定サイズ以内のバイナリデータである。埋込情報は、ドットをグリッドの交点（仮想点）から上下左右８方向のいずれかの方向に変位（交点からずらして配置）させることで、情報としてシートに埋め込まれる。すなわち、各仮想点と各ドットを一対一に対応づけ、当該各ドットを、当該各ドットに関連付けられた各仮想点からずれた位置に配置する。
【００３１】
図２１は、グリッドと、ドットを配置する場所の位置関係を示す図である。
【００３２】
図２１において、縦横の線２１０１は、グリッドを示す。２１０２は、グリッドの交点（仮想点）を示す。交点（仮想点）２１０２にはドットを配置しない。例えば、ドットは、交点（仮想点）２１０２から右下方向の離れた位置に配置される。
【００３３】
図２２は、埋込情報としてバイナリデータの０１０１１１１１００１１を埋め込んだ例を示す図である。
【００３４】
バイナリデータの０１０１１１１１００１１を埋め込むに際し、当該バイナリデータを０１０，１１１，１１０，０１１のように３ビット単位に分割する。次いで、各３ビット２進１０進変換して、２，７，６，３の数値を得る。
【００３５】
埋込情報を表す数値に応じて、各ドットをグリッドの交点（仮想点）から上下左右の８方向のいずれかに変位させることによって、埋込情報を埋め込む。例えば、埋込情報として２，７，６，３を埋め込む場合、各ドットを右上、右下、下、左に変位させる。図２２において、黒丸は、ドットを示す。ＬＶＢＣを用いた情報埋込方法においては、上記の埋込を繰り返し行うことによって、２０００バイト程度の情報量をもつ埋込情報をシートに埋め込むことができる。さらに、埋込情報を表現するこれらのドットをシートの全体にわたって埋め込むことによって、埋込情報の冗長性が増し、シートの汚れ、しわ、部分的破損に対する耐性が強化される。
【００３６】
ＬＶＢＣを解析するためには、まずグリッドの位置を正確に検出する必要がある。したがって、埋込情報を表すドットはグリッドの交点から８方向に等確率に出現することが望ましい。しかし、埋込情報として０等の特定の数値を多く埋め込む場合、埋込情報を表すドットは８方向の位置に等確率には出現しない可能性がある。そこで、ＬＶＢＣを用いた情報埋込方法においては、埋込情報に対して可逆性を有したスクランブル処理（例えば共通鍵暗号処理）を施し、ドットの変位がランダムになるようにする。
【００３７】
ＬＶＢＣを用いた情報埋込方法は、デジタルデータとしての埋込情報をアナログデータとしてシートに記録するＤＡ変換ともいえるため、比較的単純な構成で実現可能である。
【００３８】
（ＬＶＢＣの解析方法）
次にＬＶＢＣの解析方法について説明する。
【００３９】
図２３は、ＬＶＢＣの解析を行う埋込情報解析部２３０１の構成を示すブロック図である。
【００４０】
ドット検知部２３０２は、埋込情報が埋め込まれた画像（元画像と埋込情報とが混在した画像）から任意のドットを検知して、ドットの座標位置に変換する。
【００４１】
ドット解析部２３０３は、ドット検知部２３０２が検知したドットからハーフトーンを構成するドット等の不要なドットを排除する。
【００４２】
絶対座標リスト記憶部２３０４は、ドットの絶対座標位置のリストを格納する。
【００４３】
ドット変換部２３０５は、絶対座標リスト記憶部２３０４が記憶する絶対座標位置のリストから回転角、グリッド間隔を検出し、絶対座標位置を、グリッドの位置からの相対座標位置に変換する。
【００４４】
相対座標リスト記憶部２３０６は、相対座標位置を記憶する。
【００４５】
第１領域復号部２３０７は、第１の領域に埋め込まれた埋込情報を抽出し、後段のモジュールに出力する。
【００４６】
第２領域復号部２３０８は、第２の領域に埋め込まれた埋込情報を抽出し、後段のモジュールに出力する。
【００４７】
後段のモジュールとは、埋込情報を利用する機能モジュールであり、例えば、埋込情報を再度、背景画像に変化させて合成画像を出力し、又は、ドキュメント情報を取得し、再印刷処理を行うモジュールである。
【００４８】
（ドットの検知）
ドット検知部２３０２による処理を詳細に説明する。
【００４９】
ドット検知部２３０２は、光学スキャナが読み込んだ画像を多値モノクロイメージの形式で受信する。一方、ＬＶＢＣを用いた情報埋込方法においては、埋込情報はモノクロ２値のドットで埋め込まれる。このため、情報埋込時のトナーの乗り具合、シートの取り扱い、スキャン時の光学系などの影響により、ドット検知部２３０２は、微細に信号が鈍った状態で信号を受信する。よって、ドット検知部２３０２は、これらの影響を排除するために、受信したドットの重心位置を座標位置と認識することにより検知精度を高めている。
【００５０】
図２４は、ドット検知部２３０２によるドット検知を説明するための概念図である。
【００５１】
ドット検知部２３０２は、画像上の孤立点を検査するために、画像に対して４方向からギャップの検査を実施する。２４０１〜２４０４は、孤立点の有無の検査を行なう方向を示す。例えば、縦方向２４０１のラインでの検査結果が、「白」、「白」、「黒」、「黒」、「白」、「白」である場合、黒の部分が孤立点である可能性がある。しかし、この検査だけでは、孤立点が横方向のライン上にある可能性もある。同様に、横方向２４０２のラインでの検査結果により、孤立点が横方向のライン上にある可能性があると判定した場合でも、実際には、孤立点が縦方向のライン上にある可能性もある。そこで、ドット検知部２３０２は、４つの方向２４０１〜２４０４において孤立点の検査を行なうことで検知精度を向上させる。ある領域において４つの方向２４０１〜２４０４のすべてにおいて上記の検査結果が得られたときに、黒の部分が孤立点であると識別する。
【００５２】
（ドットの解析）
ドット解析部２３０３による処理を詳細に説明する。
【００５３】
ドット検知部２３０２が検知したドットがＬＶＢＣを構成するドット以外のドットである場合もある。例えば、原稿画像に含まれているハーフトーンを表現するためのドットパターンや、もともと原稿に含まれる孤立点（例えば平仮名の濁点など）等がそのようなドットに該当する。したがって、ＬＶＢＣを構成するドットでは無い孤立点を削除するためにはハーフトーン除去を行う必要がある。
【００５４】
図２５は、ハーフトーン除去を説明するためのグラフを示す図である。
【００５５】
グラフの縦軸はドットの粒形を示し、横軸は濃度を示す。また、グラフ内に、ドットの濃度として、ドットの頻度を表すヒストグラムを示す。ドットの濃度が濃い（より黒い）ほど、ドットの出現頻度が高いことを示す。ＬＶＢＣの場合、ドットの粒形や濃度をそろえてドットを埋め込むため、ドットの出現頻度は、グラフ内の狭い位置でピークとなる（２５０１）。一方、ハーフトーンの場合、ドットの粒形や濃度が規格化されていないため、ドットは、グラフ内の広い位置にまばらに出現し、出現頻度も比較的低い。したがって、ドット解析部２３０３は、この特性を使用して、グラフ内の狭い位置で出現頻度がピークとなるドットをＬＶＢＣと判定して、それ以外のドットを排除する。したがって、絶対座標リスト記憶部２３０４は、ＬＶＢＣのみを記憶することになる。
【００５６】
（ドットの変換）
ドット変換部２３０５による処理を詳細に説明する。
【００５７】
スキャナにシートを配置した向きの違いやアナログレベルでの微細なシートの角度のズレにより、スキャン時の画像の角度は、印刷時にＬＶＢＣドットを埋め込んだ画像の角度と異なる。したがって、画像の回転角の検知と、角度の補正を行う必要がある。また、ＬＶＢＣの場合、グリッドを構成するドットを上下左右８方向に変位させることによって情報を埋め込むため、元のグリッドを再現する必要がある。したがって、元のグリッドの間隔を正確に特定する必要がある。
【００５８】
図２６は、グリッドの間隔を測定する手法を説明した模式図である。
【００５９】
ドット２６０１に注目した場合、ドット２６０１からドット２６０１に最も近いドット２６０２までの距離Ｘがグリッドの間隔に近い。
【００６０】
ドット２６０１に近いドットは上下左右に４箇所あるが、計算量を減らすため、ドット２６０１の右側の９０度の範囲に存在するドットだけを、ドット２６０１に最も近いドットの候補とする。具体的には、注目するドット（ｘ，ｙ）と、それ以外の任意のドット（ａ，ｂ）の関係が、
【００６１】
【数１】
2011259512.tif 000003
【００６２】
である場合、ドット（ａ，ｂ）を上記候補から外す。そして（ｘ，ｙ）と（ａ，ｂ）間の距離が最小となる（ａ，ｂ）を近隣ドットとし、２つのドット間の距離Ｘをグリッドの間隔の候補とする。
【００６３】
ここで、注目するドット２６０１も近隣ドット２６０２も変位している。また、ＬＶＢＣとして認識されたドットは、実際は、ドット解析部２３０３が除去しそこねたハーフトーンパターンのドットかもしれない。そこですべての注目ドット（ｘ，ｙ）に対して上記のようにグリッド間の距離を計測して、すべての注目ドットに関してグリッド間の距離別の頻度を示したヒストグラムを作成する。
【００６４】
図２７は、グリッド間の距離の頻度を示したヒストグラムの一例を示す図である。
【００６５】
図２７において、横軸はグリッド間距離の候補である距離の値、縦軸は注目ドット（ｘ，ｙ）において距離が計測された頻度を示す。図によれば、頻度が最も高い距離Ｘがグリッド間隔と識別される。すなわち、注目ドット２６０１と近隣ドット２６０２の出現確率が縦横ともに同じだとすると、多量の注目ドットのヒストグラムから、頻度が最も高い距離Ｘがグリッド間隔とすることができる。
【００６６】
図２８は、グリッドの回転角度の補正を説明する図である。
【００６７】
２８０１において、すべてのドットについて、それらのドットから近隣ドットの角度を測定する。
【００６８】
本来、注目ドットからその近隣ドットの角度は０度、９０度、１８０度、２７０度のいずれかであるため、測定した角度のズレを補正することにより回転角度を決定することが可能である。個々の注目ドットから近隣ドットの角度θは、注目ドットとその近隣ドットからなるベクトルを（ｄｘ，ｄｙ）とすると、下記の式であらわされる。
【００６９】
【数２】
2011259512.tif 000004
【００７０】
２８０２は、Ａ、Ｂ、Ｃ、Ｄのそれぞれの近隣点までのベクトルを示す。しかし実際には注目ドットも隣点ドットもグリッド位置からわずかに変位しているため、すべての注目ドットにおいてθを計測する。注目ドット２８０１と近隣ドットのそれぞれのグリッドからの変位位置の出現確率が縦横ともに同じだとすると、すべての注目ドットの角度のズレを加算することにより、平均的にグリッドの回転角度を計測することができる。２８０３はいくつかのドットのベクトルを表示したものであり、この角度を重ね合わせるとグリッドの回転角度に近似できることがわかる。
【００７１】
具体的には個々の注目ドットのθに対して再度、基準ベクトルを算出し、すべての基準ベクトルの合計結果から、トータルの角度φを求める。基準ベクトルの合計結果を（Ａ，Ｂ）とすると、
【００７２】
【数３】
2011259512.tif 000005
【００７３】
【数４】
2011259512.tif 000006
【００７４】
となり、グリッドの回転角度φは、
【００７５】
【数５】
2011259512.tif 000007
【００７６】
によって近似することが可能である。
【００７７】
絶対座標リスト記憶部２３０４に格納されている絶対座標リストに対して、グリッドの回転角度の逆回転を実施して、グリッドの角度を補正する。
【００７８】
回転角度の補正は９０度単位には絞り込まれているが、実際には０度（正しい）、９０度、１８０度、２７０度の４つまでは絞り込まれていない。この絞込みに関しては後述する。
【００７９】
図２９は、回転の補正結果およびグリッド位置を説明する図である。
【００８０】
図２９において、２９０１は回転の補正が完了したＬＶＢＣドットの絶対座標リストを示す。さらに、２９０２で示すように、ドット変換部２３０５で求めたグリッド間隔毎に仮想的な直線をＸ方向、Ｙ方向それぞれに引き、これら直線の交点をグリッドとする。このグリッドの位置からドットの座標の変位を計測する。
【００８１】
（第１領域の特定）
図２０で示した第１の領域のサイズ２００３、繰り返し周期２００４及び第１の領域の位置を特定する処理について説明する。
【００８２】
最初に第１の領域２００１の繰り返し周期２００４の決定を行う。第１の領域２００１には同じデータが周期的に入っており、縦方向に対して所定のオフセットで自己相関を取ると、オフセット値が繰り返し周期２００４と一致したときに自己相関性が高まり、繰り返し周期２００４を決定することができる。
【００８３】
図３０はオフセット値に対応した自己相関値を計算した例を示すグラフである。
【００８４】
自己相関とは、特定の埋込データが周期的に出現する頻度を評価する手法であり、自己相関値とは特定のオフセット値における、埋込データの類似性を評価する数値である。
【００８５】
自己相関値を算出する自己相関関数ＣＯＲ（Ａ，Ｂ）は下記の演算式で与えられる。
ＣＯＲ（Ａ，Ｂ）  ＝  ｂｉｔｃｏｕｎｔ（ｎｏｔ  （Ａ  ｘｏｒ  Ｂ））
ここでｘｏｒは２項の排他的論理和を示しており、ｎｏｔは否定を示す。
ｂｉｔｃｏｕｎｔはビット列で１となるものの個数をカウントする関数である。
【００８６】
例えば、Ａが０１０ｂ，Ｂが０１１ｂの場合はｎｏｔ（Ａ  ｘｏｒ  Ｂ）＝ｎｏｔ（００１ｂ）＝１１０ｂとなり、ｂｉｔｃｏｕｎｔは２となる。
【００８７】
ここで第１の領域があらかじめ決められた幅と高さを持つ行列とし、第１の領域を評価するためのビット列をＣＥＬＬ（ｘ，ｙ）とする。ここでｘ，ｙは縦、横の座標を示す。例えば第１の領域のサイズが幅＝８、高さ＝８だとすると、ｘ，ｙを左上とした第１の領域は３ｂｉｔ  ｘ  ８  ｘ  ８＝  １９２ｂｉｔがＣＥＬＬ（ｘ，ｙ）のビット列の長さとなる。
【００８８】
ここで、あるオフセットにおける、すべての座標の自己相関値は下記関数で表される。
【００８９】
【数６】
2011259512.tif 000008
【００９０】
例えば第１の領域のサイズ２００３を８，繰り返し周期２００４を８ｘ３＝２４としたときに自己相関を取るとオフセット＝２４で自己相関値はピーク３００１となるため、オフセット＝２４を繰り返し周期２００４と決定することが可能である。
【００９１】
次に第１の領域２００１の位置とサイズの決定を行う。自己相関を取ったことにより、第１の領域の繰り返し周期は決定したが、その中のどの位置に第１の領域があるかと第１の領域のサイズの決定が必要である。
【００９２】
図３１は第１の領域の位置の決定方法を説明するための図である。
【００９３】
あらかじめ第１の領域の繰り返し周期が決定しているので、相対座標リスト記憶部２３０６から任意の繰り返し周期分の領域を切り出す。ついで、その領域の隣の領域で相関を取り、さらに隣の領域で相関を取る、ということを繰り返す。この中で第１の領域３１０２の部分は繰り返し周期で同じデータが出現するので相関性が高い。それ以外の第２の領域３１０３は繰り返し周期では同じデータが出現しないので相関性が低い。この特性を利用して、相関性の高い部分の開始位置を第１の領域の開始位置と特定し、相関の高い部分の終わりまでのサイズを第１の領域のサイズと決定する。
【００９４】
（第１の領域の復号）
上記の処理で特定された第１の領域の位置とサイズから第１の領域のデータを復号する。
【００９５】
単一の領域のデータだけを復号したのでは計測誤差やノイズが原因で誤判定する可能性があるため、すべての第１の領域に埋め込まれたドットの位置を集計し、最頻値を採用し、その値の生起確率を計算する。
【００９６】
図３２は第１の領域に埋め込まれたドットの位置の集計を説明するための模式図である。
【００９７】
図３２において、３２０１〜３２０３はシート上の異なる位置に存在する第１の領域である。これらを重ね合わせた結果が３２０４である。ノイズや誤差によるズレがあるが、すべての領域の集計結果によって最頻値が決まるため、この値を採用することができる。
【００９８】
次に実際の復号を実施する。この段階においてノイズや計測誤差による影響が拭えないため、復号した結果にエラー訂正処理を施して復号を行う。
【００９９】
まずは、図２２に示したドットパターンから、ドットの位置を検出して、その位置に対応するデータに変換して、第１の領域に埋め込まれたデータ列を抽出する。このデータ列には実際に使用する複写禁止データの他に、データの破壊を検知、可能なら修復するエラー訂正符号が埋込時に記録されている。
【０１００】
エラー訂正符号には既知の技術として数多くされているが、ここではＬＤＰＣ（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ）方式を使用する。ＬＤＰＣは誤り訂正能力が非常に高く、シャノン限界に近い特性を示すことで知られている。ＬＤＰＣの詳細な説明に関しては省略する。また、ＬＤＰＣ以外であっても、エラー訂正符号の特性を持つ方式であればどのような方式であっても構わない。
【０１０１】
エラー訂正符号を用いることで、抽出したグリッドにある程度の誤差やノイズが含まれていても埋込データを抽出することが可能である。
【０１０２】
さらに、回転角度の補正で説明したとおり、回転角度の補正処理は９０度単位で行うため、ここで抽出されたデータは正しいデータか、正しいデータを９０度回転したものか、１８０度回転したものか、２７０度回転したものかの４通りが存在する。そこで、抽出データに対して、回転なし、９０度回転、１８０度回転、２７０度回転した結果に対してそれぞれ見込みでＬＤＰＣによるエラー訂正を行った復号を実施する。正しい回転角度の場合にのみ、エラー訂正符号が機能し、正常にデータを抽出することが可能である。
【０１０３】
図３３は、回転を考慮し、エラー訂正を行った復号の処理を説明するための図である。
【０１０４】
図３３において、この例では正しいデータに対して２７０度回転した結果が抽出されたとする。３３０１において最初に抽出データに対してそのままエラー訂正処理を実施する。正しいデータはエラー訂正符号を含んでいるが、回転することによって意味のないデータになってしまうため、エラー訂正することができない。次に３３０２において、３３０１に対して９０度回転を施したデータに対してエラー訂正処理を実施する。同様にエラー訂正に失敗するため、データを抽出することができない。次に３３０３において、３３０２に対して９０度回転を施したデータに対してエラー訂正処理を実施する。同様にエラー訂正に失敗するため、データを抽出することができない。最後に３３０４において、３３０３に対して９０度回転を施したデータに対してエラー訂正処理を実施する。これは正しいデータであるため、エラー訂正処理に成功するため、抽出データとして採用することが可能である。
【０１０５】
３３０４でもエラー訂正処理に失敗した場合、誤差やノイズが多くてデータの抽出に失敗したことが考えられる。
【０１０６】
以上の処理によって第１の領域に格納された埋込データを抽出できる。
【０１０７】
（第２の領域の特定）
第２の領域は追跡情報などの登録に使う領域であり、複写操作実施時には必ずしも必要な情報ではない。よって不要な場合は第２の領域の復号を省くことにより、全体の処理の速度低下を抑えることが可能である。
【０１０８】
以下に第２領域の特定方法について説明する。
【０１０９】
最初に第１の領域と同様、第２の領域の自己相関を取る。第２の領域は第１の領域の繰返し同期の倍数で埋め込まれるため、第１の領域の繰り返し回数の倍数（例の場合、２４，４８，７２，…．）単位のいずれかで自己相関をとればよいので計算を省くことが可能である。さらに第２の領域は繰り返し同期＝第２の領域のサイズとなる。
【０１１０】
図３４は、第２の領域におけるオフセット値に対応した自己相関値を計算した例を示すグラフである。
【０１１１】
最後に第２の領域の開始位置の特定を行う。埋込むときに第１の領域の開始位置と第２の領域の開始位置を同期させるため、位置は第１の領域の開始位置のいずれかに絞り込むことが可能である。
【０１１２】
第２の領域の位置決定にはエラー訂正符号を利用する。第１の領域と同様に第２の領域に関しても埋込データの他にエラー訂正符号が付加される。第２の領域のサイズはわかっているため、第１の領域の先頭位置から順番に見込みでエラー訂正処理を実施していく。
【０１１３】
図３５は第２の領域の位置を決定する方法を説明するための図である。
【０１１４】
図３５において、自己相関によって第２の領域のサイズが第１の領域の繰り返し同期の４倍であることを示している。ここで４ｘ４＝１６のいずれかが第２領域の開始位置となるため、１、２、３、４、５、と位置をずらしながら、エラー訂正処理を適用する。エラー訂正処理に成功した場合、その位置を第２領域として採用することが可能である。
【０１１５】
以上によって第２の領域に格納された埋込データの抽出が実施可能である。
【０１１６】
〈ドット面積／グリッド間隔と、視認性／復号容易性との関係〉
本実施形態では、ＬＶＢＣのドット面積（１ドット当たりの面積）やグリッド間隔（隣接する仮想点の間隔）を段階的に変更することによってドットの視認性やＬＶＢＣの復号容易性を調整する。ドットの視認性とは、ドットの目立ちやすさのことであり、視認性が高いとドットは目立つようになり、視認性が低いとドットは目立たなくなる。
【０１１７】
図１３は、ＬＶＢＣのドット面積とグリッド間隔の各々を段階的に変更することにより生成されるＬＶＢＣのパターンを示す図である。
【０１１８】
図１３（ａ）は、ドット面積を最小にし、かつ、グリッド間隔を最大にした場合のＬＶＢＣを示す。図１３（ｃ）は、ドット面積を最小にし、かつ、グリッド間隔を最小にした場合のＬＶＢＣを示す。図１３（ｇ）は、ドット面積を最大にし、かつ、グリッド間隔を最大にした場合のＬＶＢＣを示す。図１３（ｉ）は、ドット面積を最大にし、かつ、グリッド間隔を最小にした場合のＬＶＢＣを示す。ドット面積をｍ通りの大きさに設定可能で、かつ、グリッド間隔をｎ通りの大きさに設定可能であるとすると、ｍ×ｎパターンの異なるＬＶＢＣを生成できる。図１３からわかるように、小さなグリッド間隔で大きさドット面積をもつＬＶＢＣや、大きなグリッド間隔で小さなドット面積をもつＬＶＢＣ等、グリッド間隔とドット面積とが比例関係にない様々なＬＶＢＣが生成される。後述するように、本実施例では、これらのＬＶＢＣの中から解読可能でかつ所定の条件を満たしたＬＶＢＣが選択され原稿に埋め込まれる。したがって、ＬＶＢＣのドットのサイズを、グリッド間隔に比例したサイズ以外のサイズに決定することができる。
【０１１９】
図１４は、ドット面積／グリッド間隔と、視認性／復号容易性との関係を説明するための図である。
【０１２０】
１４０１は、ドット群からなるＬＶＢＣブロックを示す。
【０１２１】
１４０２は、ＬＶＢＣブロック１４０１のドット面積を小さくし、かつ、グリッド間隔を大きくしたときのＬＶＢＣブロックを示す。１４０３は、ＬＶＢＣブロック１４０２が繰り返して埋め込まれた原稿を示す。ＬＶＢＣブロック１４０２を原稿に埋め込むと、ドット群の視認性は低下するため、ＬＶＢＣが画質へ及ぼす影響を小さく抑えることができる。しかし、ＬＶＢＣブロックが大きいため原稿に埋め込めるＬＶＢＣのブロックの数は少なくなる。このことは、ドット群の位置を認識し、第１の領域と第２の領域に含まれる付加情報を復号するために必要なサンプル数が少なくなることを意味する。そのため、ドット位置を正確に求めづらくなり、付加情報を正確に復号するのが難しくなる。
【０１２２】
１４０４は、ＬＶＢＣブロック１４０１のドット面積を大きくし、かつ、グリッド間隔を小さくしたときのＬＶＢＣブロックを示す。１４０５は、ＬＶＢＣブロック１４０４が繰り返して埋め込まれた原稿を示す。ＬＶＢＣブロック１４０４を原稿に埋め込むと、ドット群の視認性が高まるため、ＬＶＢＣが画質へ及ぼす影響は大きくなる。しかし、ＬＶＢＣブロックが小さいため原稿に埋め込めるＬＶＢＣのブロックの数は多くなる。このことは、ドット群の位置を認識し、第１の領域と第２の領域に含まれる付加情報を復号するために必要なサンプル数が多くなることを意味する。そのため、ドット群の位置を正確に求めやすくなり、付加情報を正確に復号するのが容易になる。
【０１２３】
〈画像形成装置〉
まず、本発明の実施例の前提となる。ＬＶＢＣを用いた情報埋め込み／抽出技術を利用可能な画像形成装置の構成例を、図面を用いて説明する。
【０１２４】
図１５は、ＬＶＢＣを用いた情報埋め込み／抽出技術を利用可能な画像形成装置の構成例を示すブロック図である。
【０１２５】
画像形成装置１５００は、スキャナ部１５０１、画像処理部１５０２、付加情報解読部１５０３、ＣＰＵ１５０４、操作部１５０５、付加画像生成部１５０６、画像合成部１５０７、プリンタ部１５０８を備える。
【０１２６】
スキャナ部１５０１は、ＬＶＢＣが埋め込まれた原稿を光学的に読み取り、ＲＧＢ信号を出力する。
【０１２７】
画像処理部１５０２は、スキャナ部１５０１からＲＧＢ信号を受け取り、フィルタリングや色変換等の各種画像処理を行い、プリンタ部１５０８の種別に応じた信号を出力する。例えば、プリンタ部１５０８がカラー２値プリンタの場合には、ＣＭＹＫの２値画像信号を出力する。
【０１２８】
付加情報解読部１５０３は、スキャナ部１５０１が読み取った原稿に埋め込まれている付加情報を解読する。
【０１２９】
ＣＰＵ１５０４は、ユーザが操作部１５０５を介して設定した付加情報や、付加情報解読部１５０３が解読した付加情報に基づいて、画像形成装置１５００全体を制御する。また、ＣＰＵ１５０４は、上記付加情報に基づいて、印刷時に原稿に埋め込む付加情報を生成する。
【０１３０】
操作部１５０５は、ユーザインタフェース画面を介して、ユーザからの指示を受け付けるともに、装置の内部情報をユーザに提示する。ユーザインタフェース画面には、画像処理内容や付加情報を設定するための設定画面や、付加情報を表示する画面が含まれる。
【０１３１】
付加画像生成部１５０６は、ＣＰＵ１５０４が生成した付加情報に基づいてＬＶＢＣを生成する。
【０１３２】
画像合成部１５０７は、付加画像生成部１５０６からＬＶＢＣを受け取り、当該ＬＶＢＣと、画像処理部１５０２から受け取った印刷出力用の画像データとを合成し、印刷出力用の合成画像データを出力する。
【０１３３】
プリンタ部１５０８は、ＣＭＹＫ４色のインクを使用するカラー２値プリンタ、カラーの多値出力可能なカラープリンタ又はモノクロのプリンタである。プリンタ部１５０８は、画像合成部１５０７から受け取った合成画像データを印刷出力する。
【０１３４】
外部Ｉ／Ｆ１５０９は、画像形成装置１５００をＬＡＮ等の通信ネットワークに接続する通信インタフェースである。画像形成装置１５００は、外部Ｉ／Ｆ１５０９を介して、ネットワークに接続された他の装置と各種画像データや制御用のコマンドの送受信を行う。
【０１３５】
図１６は、ＬＶＢＣが埋め込まれていない原稿にＬＶＢＣを埋め込む際の画像形成装置１５００の動作例を説明するための図である。
【０１３６】
スキャナ部１５０１は、付加情報の埋め込みが行われていない原稿１６０１を読み取り、読み取った画像データを画像処理部１５０２に出力する。
【０１３７】
画像処理部１５０２は、スキャナ部１５０１から受け取った画像データに対して、ユーザが操作部１５０５を介して設定した画像処理を行い、画像処理後の画像データ１６０２を出力する。
【０１３８】
ＣＰＵ１５０４は、ユーザが操作部１５０５を介して設定した付加情報を付加画像生成部１５０６に出力する。
【０１３９】
付加画像生成部１５０６は、ＣＰＵ１５０４から受け取った付加情報に基づいてＬＶＢＣを生成する。
【０１４０】
画像合成部１５０７は、画像処理部１５０２から受け取った画像データ１６０２と、付加画像生成部１５０６から受け取ったＬＶＢＣとを合成し、印刷出力用の合成画像データ１６０４をプリンタ部１５０８に出力する。
【０１４１】
プリンタ部１５０８は、受け取った合成画像データを原稿に印刷して印刷出力結果１６０５を出力する。
【０１４２】
尚、スキャナ部１５０１から受け取った画像データを印刷するのではなく、外部Ｉ／Ｆ１５０９から受け取った画像データを印刷する場合にも、上記処理を行えばよい。
【０１４３】
図１７は、原稿に埋め込まれているＬＶＢＣに基づいて、画像形成装置１５００の設定内容や動作内容を切り替える処理を説明するための図である。
【０１４４】
本例で用いるＬＶＢＣが示す付加情報には、特定のユーザにのみ複写を許可するための複写制限情報が含まれているものとする。複写制限情報を用いることにより、複写を行おうとする者にパスワードを入力させ、そのパスワードが正しければその者に複写を許可し、誤っていれば複写を禁止するという動作を画像形成装置４１００に行わせることができる。
【０１４５】
スキャナ部１５０１は、ＬＶＢＣが埋め込まれている原稿１７０１を読み取り、画像データを付加情報解読部１５０３と画像処理部１５０２に出力する。
【０１４６】
画像処理部１５０２は、スキャナ部１５０１から受け取った画像データに対して、ユーザが操作部１５０５を介して設定した画像処理を行い、画像処理後の画像データ１７０２を出力する。
【０１４７】
付加情報解読部１５０３は、スキャナ部１５０１から受け取った画像データからＬＶＢＣを抽出／解読し、付加情報を求め、ＣＰＵ１５０４に出力する。
【０１４８】
ＣＰＵ１５０４は、付加情報解読部１５０３から受け取った付加情報に基づき、ユーザにパスワードの入力を促す認証画面を操作部１５０５に表示させると共に入力されたパスワードが正しいか否かを判定する。すなわち、ＣＰＵ１５０４は、複写を行おうとするユーザが正当なユーザ（複写を許可されたユーザ）か否かを判定する。次いで、ＣＰＵ１５０４は、判定結果に応じて、画像処理部１５０２、画像合成部１５０７及びプリンタ部１５０８を制御する。
【０１４９】
入力されたパスワードが正しい場合、画像処理部１５０２は、画像処理後の画像データ１７０２を画像合成部１５０７に出力する。画像合成部１５０７は、受け取った画像データに対して何も処理をせずにそのままプリンタ部１５０８に出力する。
【０１５０】
プリンタ部１５０８は、受け取った画像データを原稿に印刷して印刷出力結果１７０３を出力する。
【０１５１】
一方、入力されたパスワードが誤っている場合、画像処理部１５０２は、画像処理後の画像データを出力しないため、印刷は行われない。
【実施例１】
【０１５２】
以下、本発明の実施例を、図面を用いて詳細に説明する。
【０１５３】
実施例１の画像形成装置は、原稿にＬＶＢＣを埋め込み印刷する前に、グリッド間隔とドット面積の調整を行う。具体的には、画像形成装置は、グリッド間隔とドット面積の各々を、それらの最小値と最大値の間（最小値と最大値を含む）で段階的に変更することによって複数パターンのＬＶＢＣを生成し、各ＬＶＢＣが解読可能か否かを判定する。そして、解読可能なＬＶＢＣの中で最もドット群の打ち込み量の少ないＬＶＢＣを原稿に埋め込む。ドット群の打ち込み量とは、１つのドットのドット面積と、単位面積当たりに埋め込むドット数との積である。したがって、解読可能と判定したドット群の中で、単位面積当たりの面積比が最も小さいドット群が原稿に埋め込まれる。
【０１５４】
図１は、実施例１の画像形成装置の構成例を示すブロック図である。
【０１５５】
画像形成装置１００は、原稿にＬＶＢＣの埋め込むことと、原稿に埋め込まれているＬＶＢＣを解読して付加情報を求めることを実行する。
【０１５６】
画像形成装置１００は、スキャナ部１０１、第１の画像処理部１０２、付加情報解読部１０３、ＣＰＵ１０４、操作部１０５、付加画像生成部１０６、画像合成部１０７、プリンタ部１０８、外部Ｉ／Ｆ部１０９、第２の画像処理部１１０を備える。
【０１５７】
スキャナ部１０１は、原稿を光学的に読み取り、ＲＧＢ信号を出力する。
【０１５８】
第１の画像処理部１０２は、スキャナ部１０１からＲＧＢ信号を受け取り、フィルタリングや色変換等の各種画像処理を行い、プリンタ部１０８の種別に応じた信号を出力する。例えば、プリンタ部１０８がカラー２値プリンタの場合には、ＣＭＹＫの２値画像信号を出力する。
【０１５９】
付加情報解読部１０３は、スキャナ部１０１が読み取った原稿にＬＶＢＣが埋め込まれている場合には、そのＬＶＢＣを解読して、付加情報を求める。特に、付加情報解読部１０３は、当該画像データを受け取り、付加情報の解読が可能か否か、すなわち、付加情報が認識可能な否かを判定する。その詳細については後述する。
【０１６０】
ＣＰＵ１０４は、ユーザが操作部１０５を介して設定した付加情報や、付加情報解読部１０３が解読した付加情報に基づいて、画像形成装置全体を制御する。特に、ＣＰＵ１０４は、上記付加情報に基づいて、ＬＶＢＣの生成用の付加データを生成する。
【０１６１】
操作部１０５は、ユーザインタフェース画面を介して、ユーザからの指示を受け付けるともに、画像形成装置１００の内部情報をユーザに提示する。ユーザインタフェース画面には、画像処理内容や付加情報を設定するための設定画面や、付加情報を表示する画面が含まれる。
【０１６２】
付加画像生成部１０６は、ＣＰＵ１０４が生成した付加データに基づいてＬＶＢＣを生成する。
【０１６３】
画像合成部１０７は、付加画像生成部１０６からＬＶＢＣを受け取り、当該ＬＶＢＣと、画像処理部１０２から受け取った画像処理済みの画像データとを合成し、合成画像データを出力する。
【０１６４】
プリンタ部１０８は、ＣＭＹＫ４色のインクを使用するカラー２値プリンタ、カラーの多値出力可能なカラープリンタ又はモノクロのプリンタである。プリンタ部１０８は、画像合成部１０７から受け取った合成画像データを印刷出力する。
【０１６５】
外部Ｉ／Ｆ１０９は、画像形成装置をＬＡＮ等の通信ネットワークに接続する通信インタフェースである。画像形成装置は、外部Ｉ／Ｆ１０９を介して、ネットワークに接続された他の装置と各種画像データや制御用のコマンドの送受信を行う
第２の画像処理部１１０は、合成画像データ（ＬＶＢＣが埋め込まれた画像データ）を画像合成部１０７から受け取り、その合成画像データに対して、印刷出力時やスキャナ読み取り時の画像劣化を再現する画像処理を行う。例えば、第２の画像処理部１１０は、印刷出力用のＣＭＹＫの画像データからＲＧＢの画像データへの色空間変換処理、スムージングフィルタを使用したスムージング処理、ルックアップテーブルを使用した濃度変換処理を行う。
【０１６６】
次に、画像形成装置１００による処理の流れを、図面を参照して説明する。
【０１６７】
図２は、実施例１における、画像形成装置による処理の流れを示すフローチャートである。
【０１６８】
図３は、実施例１における、画像形成装置１００の各部の間のデータの流れを説明するための図である。
【０１６９】
以下、ＬＶＢＣが埋め込まれていない原稿をコピーする際に、所定の付加情報を示すＬＶＢＣを埋め込む場合の処理を図２と図３を用いて説明する。
【０１７０】
Ｓ２０１において、操作部１０５は、ユーザからの指示にしたがい、第１の画像処理部１０２が行う画像処理の内容や、付加情報を設定し、設定内容をＣＰＵ１０４に出力する（図３におけるパス１）
Ｓ２０２において、スキャナ部１０１は、ＬＶＢＣが埋め込まれていない原稿を読み取り、読み取った画像データを第１の画像処理部１０２に出力する（図３におけるパス２）
Ｓ２０３において、画像処理部１０２は、スキャナ部１０１から画像データを受け取り、当該画像データに対して、操作部１０５で設定された画像処理を行う。
【０１７１】
Ｓ２０４において、画像処理部１０２は、画像処理済みの画像データをメモリ等の記憶媒体（図示せず）に格納する。
【０１７２】
Ｓ２０２〜Ｓ２０４の処理と並行してＳ２０５〜Ｓ２０７の処理が行われる。
【０１７３】
Ｓ２０５において、ＣＰＵ１０４は、操作部１０５で設定された付加情報に基づいて、付加データを生成し、当該付加データを付加画像生成部１０６に出力する（図３におけるパス３）。
【０１７４】
Ｓ２０６において、ＣＰＵ１０４は、付加画像生成部１０６に対して、グリッド間隔を最大に設定しかつドット面積を最小に設定する。
【０１７５】
Ｓ２０７において、付加画像生成部１０６は、設定されたグリッド間隔とドット面積に基づいてＬＶＢＣを生成し、当該ＬＶＢＣをメモリ等の記憶媒体（図示せず）に格納する。
【０１７６】
Ｓ２０８において、画像合成部１０７は、Ｓ２０４においてメモリ等に格納された画像処理済みの画像データと、同様にメモリ等に格納されているＬＶＢＣを合成し、合成画像データを第２の画像処理部１１０に出力する（図３におけるパス４、５、６）。
【０１７７】
Ｓ２０９において、第２の画像処理部１１０は、合成画像データ（ＬＶＢＣが埋め込まれた画像データ）を画像合成部１０７から受け取り、その合成画像データに対して、印刷出力時やスキャナ読み取り時の画像劣化を再現する画像処理を行う。次いで、第２の画像処理部１１０は、画像処理後の合成画像データを付加情報解読部１０３に出力する（図３におけるパス６、７）。
【０１７８】
Ｓ２１０において、付加情報解読部１０３は、第２の画像処理部１１０から受け取った合成画像データに埋め込まれているＬＶＢＣの解読が可能か否かの判定を行い、判定結果をＣＰＵ１０４に出力する（図３におけるパス８）。
【０１７９】
Ｓ２１１において、ＣＰＵ１０４は、付加情報解読部１０３から受け取った判定結果を、設定されているグリッド間隔とドット面積と共にメモリ等の記憶媒体（図示せず）に格納する。
【０１８０】
Ｓ２１２において、ＣＰＵ１０４は、設定されているグリッド間隔が最小か否かを判定し、当該グリッド間隔が最小でない場合には、Ｓ２１３の処理に進み、最小である場合には、Ｓ２１４の処理に進む。
【０１８１】
Ｓ２１３において、ＣＰＵ１０４は、付加画像生成部１０６に対して、グリッド間隔を１段階小さくする設定を行い、次いで、Ｓ２０７〜Ｓ２１２の処理を行う。すなわち、ＣＰＵ１０４は、グリッド間隔が最小になるまで、Ｓ２０７〜Ｓ２１３の処理を繰り返す。尚、グリッド間隔を１回で複数段階小さくする設定であってもよい。
【０１８２】
Ｓ２１４において、ＣＰＵ１０４は、設定されているドット面積が最大である否かを判定し、当該ドット面積が最大でない場合には、Ｓ２１５の処理に進み、最大である場合には、Ｓ２１７の処理に進む。
【０１８３】
Ｓ２１５において、ＣＰＵ１０４は、付加画像生成部１０６に対して、ドット面積を１段階大きくする設定を行う。尚、ドット面積を１回で複数段階大きくする設定であってもよい。
【０１８４】
Ｓ２１６において、ＣＰＵ１０４は、付加画像生成部１０６に対して、グリッド間隔を最大にする設定を再び行い、Ｓ２０７〜Ｓ２１３の処理を行う。すなわち、ＣＰＵ１０４は、ドット面積が最大になるまで、Ｓ２０７〜Ｓ２１６の処理を繰り返す。
【０１８５】
図４は、上記の繰り返し処理によって生成される複数パターンのＬＶＢＣを示す図である。
【０１８６】
図４において、４０１〜４０９は、各々、ＬＶＢＣを示す。図４に示すように、図２に示すＳ２０７〜Ｓ２１６の処理を行うことにより、４０１〜４０９の順番で９パターンのＬＶＢＣが生成され、各ＬＶＢＣに対して解読可能性が判定される。４０１は、グリッド間隔を最大に設定し、かつ、ドット面積を最小に設定したときに生成されるＬＶＢＣであり、視覚的に最も目立たないＬＶＢＣである。これに対して、４０９は、グリッド間隔を最小に設定し、かつ、ドット面積を最大に設定したときに生成されるＬＶＢＣであり、視覚的に最も目立つＬＶＢＣである。
【０１８７】
Ｓ２１７において、付加情報解読部１０３は、Ｓ２１１においてメモリ等に格納されたグリッド間隔、ドット面積、判定結果（解読の可否）の組合せから、解読可能でありかつドット群の打ち込み量が最小であるＬＶＢＣを求める。その求め方については後述する。
【０１８８】
Ｓ２１８において、付加情報解読部１０３は、グリッド間隔が最小でドット面積が最大のＬＶＢＣ（図４の４０９）の解読が不可能である場合には、Ｓ２１９の処理に進む。
【０１８９】
Ｓ２１９において、ＣＰＵ１０４は、印刷出力を中止すると決定し、例えば「解読可能な付加情報の埋め込みができない」とのメッセージを操作部１０５に表示する。
【０１９０】
Ｓ２２０において、付加情報解読部１０３は、解読可能でありかつドット群の打ち込み量が最小であるＬＶＢＣを画像合成部１０７に出力する。画像合成部１０７は、第１の画像処理部１０２から受け取った画像データと当該ＬＶＢＣとを合成し、合成画像データをプリンタ部１０８に出力する（図３におけるパス４、５、９）。
【０１９１】
Ｓ２２１において、プリンタ部１０８は、受け取った合成画像データを印刷出力する。
【０１９２】
図５は、グリッド間隔、ドット面積、ＬＶＢＣの解読可否及びドット群の打ち込み量の関係を示す図である。
【０１９３】
付加情報解読部１０３は、Ｓ２１７において、ＬＶＢＣの解読可否及びドット群の打ち込み量の関係を用いて、解読可能でありかつドット群の打ち込み量が最小であるＬＶＢＣを求める
グリッド間隔については最大４ｍｍから最小０.５ｍｍの４段階、ドット面積については最小１μｍ2から最大６μｍ2の４段階の設定が可能であるとする。したがって、この場合、１６パターンのＬＶＢＣが生成される。図５から、８パターンのＬＶＢＣが解読可能であることがわかる。すなわち、グリッド間隔が２ｍｍでドット面積が４μｍ2と６μｍ2の場合、グリッド間隔が１ｍｍでドット面積が２μｍ2、４μｍ2、６μｍ2の場合、グリッド間隔が０.５ｍｍでドット面積が２μｍ2、４μｍ2、６μｍ2の場合に解読可能である。一方、本例では、ドット群の打ち込み量は、単位面積（本例では、１６００ｍｍ2）に打ち込まれるドット数とドット面積の積とする。したがって、例えば、グリッド間隔が４ｍｍの場合、ドット打ち込み数は１００ｄｏｔであるため、ドット面積が１μｍ2、２μｍ2、４μｍ2、６μｍ2の場合のドット打ち込み量は、各々、１００、２００、４００、６００になる。解読可能な上記パターンのドット打ち込み量の中で最も少ないドット打ち込み量は１６００であり、そのときのグリッド間隔は２ｍｍでドット面積は４μｍ2である。
【実施例２】
【０１９４】
実施例１は、設定可能な全てのグリッド間隔と設定可能な全てのドット面積を組合せから得られる全てのパターンのＬＶＢＣに対して解読可能か否かの判定を行う方式である。しかしこの方式では、設定可能なグリッド間隔と設定可能なドット面積の組合せが多くなるにつれて、生成するＬＶＢＣのパターンが多くなり、ＬＶＢＣの生成に要する処理時間や、ＬＶＢＣの解読に要する処理時間が長くなる。また、生成したＬＶＢＣや解読結果を格納するメモリの容量も大きくなるという課題がある。
【０１９５】
これに対して、実施例２は、設定可能な全てのグリッド間隔と設定可能な全てのドット面積の組合せから得られる全てのパターンのＬＶＢＣに対して解読可能かどうかの判定をするものではない。実施例２では、まず、グリッド間隔を段階的に小さくしていきながらＬＶＢＣの解読判定を行い、解読可能なＬＶＢＣを検出した段階で直ちにそのＬＶＢＣを原稿に埋め込む。グリッド間隔を最小にしても解読が不可能である場合には、次いで、グリッド間隔を最小にした状態でドット面積を段階的に大きくしていきながらＬＶＢＣの解読判定を行い、解読可能なＬＶＢＣを検出した場合にはそれを原稿に埋め込む。
【０１９６】
図６は、実施例２における、画像形成装置による処理の流れを示すフローチャートである。
【０１９７】
図７は、実施例２における、画像形成装置の各部の間のデータの流れを説明するための図である。
【０１９８】
以下、ＬＶＢＣが埋め込まれていない原稿をコピーする際に、所定の付加情報を示すＬＶＢＣを埋め込む場合の処理を図６と図７を用いて説明する。
【０１９９】
Ｓ６０１において、操作部１０５は、ユーザからの指示にしたがい、第１の画像処理部１０２が行う画像処理の内容や、付加情報を設定し、設定内容をＣＰＵ１０４に出力する（図７におけるパス１）。
【０２００】
Ｓ６０２において、スキャナ部１０１は、ＬＶＢＣが埋め込まれていない原稿を読み取り、読み取った画像データを第１の画像処理部１０２に出力する（図７におけるパス２）。
【０２０１】
Ｓ６０３において、第１の画像処理部１０２は、スキャナ部１０１から画像データを受け取り、当該画像データに対して、操作部１０５で設定された画像処理を行う。
【０２０２】
Ｓ６０４において、第１の画像処理部１０２は、画像処理済みの画像データをメモリ等の記憶媒体（図示せず）に格納する。
【０２０３】
Ｓ６０２〜Ｓ６０４の処理と並行してＳ６０５〜Ｓ６０７の処理が行われる。
【０２０４】
Ｓ６０５において、ＣＰＵ１０４は、操作部１０５で設定された付加情報に基づいて、付加データを生成し、当該付加データを付加画像生成部１０６に出力する（図７におけるパス３）。
【０２０５】
Ｓ６０６において、ＣＰＵ１０４は、付加画像生成部１０６に対して、グリッド間隔を最大にかつドット面積を最小に設定する。
【０２０６】
Ｓ６０７において、付加画像生成部１０６は、設定されたグリッド間隔とドット面積に基づいてＬＶＢＣを生成する。
【０２０７】
Ｓ６０８において、画像合成部１０７は、Ｓ６０４においてメモリ等に格納された画像処理済みの画像データと、Ｓ６０７において生成したＬＶＢＣを合成する。次いで、画像合成部１０７は、合成画像データをメモリ等の記憶媒体（図示せず）に格納すると共に、第２の画像処理部１１０に出力する（図７におけるパス４、５、６）。
【０２０８】
Ｓ６０９において、第２の画像処理部１１０は、合成画像データ（ＬＶＢＣが埋め込まれた画像データ）を画像合成部１０７から受け取り、その合成画像データに対して、印刷出力時やスキャナ読み取り時の画像劣化を再現する画像処理を行う。次いで、第２の画像処理部１１０は、画像処理後の合成画像データを付加情報解読部１０３に出力する（図７におけるパス６、７）。
【０２０９】
Ｓ６１０、Ｓ６１１において、付加情報解読部１０３は、第２の画像処理部１１０から受け取った合成画像データに埋め込まれているＬＶＢＣの解読が可能か否かの判定を行い、解読可能の場合には、Ｓ６１２の処理に進み、解読不能の場合には、Ｓ６１３の処理に進む。また、付加情報解読部１０３は、判定結果をＣＰＵ１０４に出力する（図７におけるパス８）。
【０２１０】
Ｓ６１１において、画像合成部１０７は、Ｓ６０８においてメモリ等に格納した合成画像データをプリンタ部１０８に出力し、プリンタ部１０８は、当該合成画像データを印刷出力する（図７におけるパス９）。
【０２１１】
Ｓ６１３において、ＣＰＵ１０４は、設定されているグリッド間隔が最小か否かを判定し、当該グリッド間隔が最小でない場合には、Ｓ６１４の処理に進み、最小である場合には、Ｓ６１５の処理に進む。
【０２１２】
Ｓ６１４において、ＣＰＵ１０４は、付加画像生成部１０６に対して、グリッド間隔を１段階小さくする設定を行い、次いで、Ｓ６０７〜Ｓ６１１の処理を行う。すなわち、ＣＰＵ１０４は、Ｓ６１１においてＬＶＢＣが解読可能と判定できるまで、グリッド間隔を１段階ずつ小さくしていく。そして、グリッド間隔を最小にしても解読可能なＬＶＢＣが得られない場合には、ＣＰＵ１０４は、Ｓ６１５の処理に進む。尚、グリッド間隔を１回で複数段階小さくする設定であってもよい。
【０２１３】
Ｓ６１５において、ＣＰＵ１０４は、設定されているドット面積が最大である否かを判定し、当該ドット面積が最大でない場合には、Ｓ６１６の処理に進み、最大である場合には、Ｓ６１７の処理に進む。
【０２１４】
Ｓ６１６において、ＣＰＵ１０４は、付加画像生成部１０６に対して、ドット面積を１段階大きくする設定を行う。すなわち、ＣＰＵ１０４は、Ｓ６１１においてＬＶＢＣが解読可能と判定できるまで、ドット面積を１段階ずつ大きくしていく。そして、ドット面積を最大にしても解読可能なＬＶＢＣが得られない場合は、Ｓ６１７の処理に進む。つまり、グリッド間隔を最小にかつドット面積を最大にしても解読可能なＬＶＢＣが得られない場合は、ＣＰＵ１０４は、印刷出力を中止すると決定し、例えば「解読可能な付加情報の埋め込みができない」とのメッセージを操作部１０５に表示する。尚、Ｓ６１６は、ドット面積を１回で複数段階大きくする設定であってもよい。
【０２１５】
図８は、上記の繰り返し処理によって生成される複数パターンのＬＶＢＣを示す図である。
【０２１６】
図８において、８０１〜８０５は、各々、ＬＶＢＣを示す。図８に示すように、図６に示すＳ６０７〜Ｓ６１６の処理を行うことにより、ＬＶＢＣが解読可能と判定されるまで、８０１〜８０５の順番で５パターンのＬＶＢＣが生成される。８０１は、グリッド間隔を最大に設定し、かつ、ドット面積を最小に設定したときに生成されるＬＶＢＣであり、ＬＶＢＣ８０１は、視覚的に最も目立たないＬＶＢＣである。これに対して、８０５は、グリッド間隔を最小に設定し、かつ、ドット面積を最大に設定したときに生成されるＬＶＢＣであり、視覚的に最も目立つＬＶＢＣである。
【０２１７】
以上述べた通り、実施例２は、先ず、グリッド間隔を段階的に小さくしながらＬＶＢＣが解読可能か否かを判定し、グリッド間隔を最も小さくしてもＬＶＢＣの解読ができなかった場合には、次いで、ドット面積を段階的に大きくする。このように、グリッド間隔とドット面積の調整を行いながらＬＶＢＣが解読可能か否かを判定し、解読可能と判定した時点で、解読可能なＬＶＢＣを埋め込んだ画像データを印刷出力する。
【０２１８】
以上説明したように、実施例２では、グリッド間隔の調整を優先的に行う。その理由は、グリッド間隔を小さくしても、その視認性が低いため、解読可能でかつ目立ちにくいＬＶＢＣを早く取得できるからである。
【実施例３】
【０２１９】
実施例１、２は、印刷出力時やスキャナ読み取り時の画像劣化を再現する画像処理が行われた合成画像データ（ＬＶＢＣが埋め込まれた画像データ）から、ＬＶＢＣの解読が可能か否か判定し、解読可能なＬＶＢＣを原稿に埋め込むものである。
【０２２０】
しかし、上記のＬＶＢＣ技術の説明部分でも述べているように、印刷出力時に画像データにＬＶＢＣを埋め込む場合、また、そのＬＶＢＣを解読する場合、エラー訂正処理を行うのが好ましい。
【０２２１】
よって、ＬＶＢＣの解読が可能であった場合でも、エラー訂正処理により訂正する部分が全く無い場合と、訂正する部分が多い場合とでは、実際に印刷出力されるものが異なる。例えば、エラー訂正処理により訂正する部分が全く無かった場合には、印刷出力後の原稿の扱いが多少悪くても、スキャナで画像読み取りを行えば、ＬＶＢＣを解読できるが、訂正する部分が多かった場合には、解読ができなくなる場合が起こる。
【０２２２】
そこで、実施例３では、ＬＶＢＣが埋め込まれた画像データを印刷出力する前に、ＬＶＢＣの解読が可能か否かの判定を行い、解読可能と判定された場合でも、そのときのエラー訂正量の大きさに応じて更に解読の容易性を上げる調整を行う。
【０２２３】
図９は、実施例３における、画像形成装置による処理の流れを示すフローチャートである。
【０２２４】
以下、ＬＶＢＣが埋め込まれていない原稿をコピーする際に、所定の付加情報を示すＬＶＢＣを埋め込む場合の処理を、図９を用いて説明する。
【０２２５】
Ｓ９０１において、操作部１０５は、ユーザからの指示にしたがい、第１の画像処理部１０２が行う画像処理の内容や、付加情報を設定し、設定内容をＣＰＵ１０４に出力する。
【０２２６】
Ｓ９０２において、スキャナ部１０１は、ＬＶＢＣが埋め込まれていない原稿を読み取り、読み取った画像データを第１の画像処理部１０２に出力する。
【０２２７】
Ｓ９０３において、第１の画像処理部１０２は、スキャナ１０１から画像データを受け取り、当該画像データに対して、操作部１０５で設定された画像処理を行う。
【０２２８】
Ｓ９０４において、第１の画像処理部１０２は、画像処理済みの画像データをメモリ等の記憶媒体（図示せず）に格納する。
【０２２９】
Ｓ９０２〜Ｓ９０４の処理と並行してＳ９０５〜Ｓ９０７の処理が行われる。
【０２３０】
Ｓ９０５において、ＣＰＵ１０４は、操作部１０５で設定された付加情報に基づいて、付加データを生成し、当該付加データを付加画像生成部１０６に出力する。
【０２３１】
Ｓ９０６において、ＣＰＵ１０４は、付加画像生成部１０６に対して、グリッド間隔を最大にかつドット面積を最小に設定する。
【０２３２】
Ｓ９０７において、付加画像生成部１０６は、設定されたグリッド間隔とドット面積に基づいてＬＶＢＣを生成する。
【０２３３】
Ｓ９０８において、画像合成部１０７は、Ｓ９０４においてメモリ等に格納された画像処理済みの画像データと、Ｓ９０７において生成したＬＶＢＣを合成する。次いで、画像合成部１０７は、合成画像データをメモリ等の記憶媒体（図示せず）に格納すると共に、第２の画像処理部１１０に出力する。
【０２３４】
Ｓ９０９において、第２の画像処理部１１０は、合成画像データ（ＬＶＢＣが埋め込まれた画像データ）を画像合成部１０７から受け取り、その合成画像データに対して、印刷出力時やスキャナ読み取り時の画像劣化を再現する画像処理を行う。次いで、第２の画像処理部１１０は、画像処理後の合成画像データを付加情報解読部１０３に出力する。
【０２３５】
Ｓ９１０、Ｓ９１１において、付加情報解読部１０３は、第２の画像処理部１１０から受け取った合成画像データに埋め込まれているＬＶＢＣの解読が可能か否かの判定を行う。付加情報解読部１０３は、解読可能の場合にはＳ９１６の処理に進み、解読不能の場合にはＳ９１２の処理に進む。また、付加情報解読部１０３は、判定結果をＣＰＵ１０４に出力する。
【０２３６】
Ｓ９１２において、ＣＰＵ１０４は、設定されているグリッド間隔が最小か否かを判定し、当該グリッド間隔が最小でない場合には、Ｓ９１３の処理に進み、最小である場合には、Ｓ９１４の処理に進む。
【０２３７】
Ｓ９１３において、ＣＰＵ１０４は、付加画像生成部１０６に対して、グリッド間隔を１段階小さくする設定を行い、次いで、Ｓ９０７〜Ｓ９１１の処理を行う。すなわち、ＣＰＵ１０４は、Ｓ９１１においてＬＶＢＣが解読可能と判定できるまで、グリッド間隔を１段階ずつ小さくしていく。そして、グリッド間隔を最小にしても解読可能なＬＶＢＣが得られない場合には、ＣＰＵ１０４は、Ｓ９１４の処理に進む。尚、グリッド間隔を１回で複数段階小さくする設定であってもよい。
【０２３８】
Ｓ９１４において、ＣＰＵ１０４は、設定されているドット面積が最大である否かを判定し、当該ドット面積が最大でない場合には、Ｓ９１５の処理に進み、最大である場合には、Ｓ９２２の処理に進む。
【０２３９】
Ｓ９１５において、ＣＰＵ１０４は、付加画像生成部１０６に対して、ドット面積を１段階大きくする設定を行う。すなわち、ＣＰＵ１０４は、Ｓ９１１においてＬＶＢＣが解読可能と判定できるまで、ドット面積を１段階ずつ大きくしていく。そして、ドット面積を最大にしても解読可能なＬＶＢＣが得られない場合は、Ｓ９１４の処理に進む。つまり、グリッド間隔を最小にかつドット面積を最大にしても解読可能なＬＶＢＣが得られない場合は、ＣＰＵ１０４は、印刷出力を中止すると決定し、例えば「解読可能な付加情報の埋め込みができない」とのメッセージを操作部１０５に表示する。尚、Ｓ９１５は、ドット面積を１回で複数段階大きくする設定であってもよい。
【０２４０】
図８は、上記の繰り返し処理によって生成されるＬＶＢＣの一例を示す図であるが、その内容は既に説明したので省略する。
【０２４１】
実施例３の特徴は、Ｓ９１１において解読可能と判定された後のＳ９１６以降の処理にある。
【０２４２】
Ｓ９１６において、付加情報解読部１０３は、解読時のエラー訂正処理において、付加情報のデータのうち何ビットのデータが訂正されたか（エラー訂正符号量）を求め、それをメモリ等の記憶媒体に格納する。
【０２４３】
Ｓ９１７において、ＣＰＵ１０４は、エラー訂正符号量に応じた調整レベルを決定する。
【０２４４】
図１０は、エラー訂正符号量に応じて調整レベルを決定する方法を説明するための図である。
【０２４５】
本例では、グリッド間隔が２ｍｍでドット面積が２μｍ2で付加情報のビット数を１０２４ビットとし、調整レベルを５段階に分ける。調整レベル０は、１０２４ビットのうちエラー訂正処理によって訂正されたビット数（エラー訂正符号量）が０ビットの場合である。調整レベル１は、エラー訂正符号量が１ビットから１０ビットの場合である。調整レベル２は、エラー訂正符号量が１１ビットから２０ビットの場合である。調整レベル３は、エラー訂正量が２１ビットから３０ビットの場合である。調整レベル４は、エラー訂正量が３０ビット以上の場合である。
【０２４６】
実施例３では、この調整レベルに応じて、グリッド間隔とドット面積の大きさを調整する。
【０２４７】
Ｓ９１８において、調整レベルに基づいて、グリッド間隔とドット面積を以下のように調整する。例えば、調整レベルが０である場合には、ドット面積とグリッド間隔を変更しない。調整レベルが１である場合には、ドット面積はそのままでグリッド間隔を１段階小さくする。調整レベルが２である場合には、ドット面積はそのままでグリッド間隔を２段階小さくする。調整レベルが３である場合には、ドット面積を１段階大きくし、グリッド間隔を１段階小さくする。調整レベルが４である場合には、ドット面積を２段階大きくし、グリッド間隔を２段階小さくする。
【０２４８】
図１１は、調整レベルに基づいた、グリッド間隔とドット面積の調整例を説明するための図である。
【０２４９】
図１０に示した例では、グリッド間隔が２ｍｍでドット面積が２μｍ2のＬＶＢＣが解読可能であるとした。グリッド間隔が２ｍｍでドット面積が２μｍ2のときの調整レベルが０の場合には、グリッド間隔とドット面積を変更しない。また、調整レベルが１の場合には、ドット面積はそのままでグリッド間隔を１段階小さくする。すなわち、グリッド間隔を１ｍｍに変更する。また、調整レベルが２の場合には、ドット面積はそのままでグリッド間隔を２段階小さくする。すなわち、グリッド間隔を０.５ｍｍに変更する。また、調整レベルが３の場合には、ドット面積を１段階大きくし、グリッド間隔を１段階小さくする。すなわち、グリッド間隔を１ｍｍに、ドット面積を４μｍ2に変更する。また、調整レベルが４の場合には、ドット面積を２段階大きくし、グリッド間隔を２段階小さくする。すなわち、グリッド間隔を０.５ｍｍに、ドット面積を４μｍ2に変更する。
【０２５０】
図１２は、調整レベルに基づいた、グリッド間隔とドット面積の別の調整例を説明するための図である。
【０２５１】
本例では、グリッド間隔が１ｍｍでドット面積が２μｍ2のＬＶＢＣが解読可能であるとする。本例によると、グリッド間隔が１ｍｍでドット面積が２μｍ2のときの調整レベルが０の場合には、グリッド間隔とドット面積を変更しない。調整レベルが１の場合には、ドット面積はそのままでグリッド間隔を１段階小さくする。すなわち、グリッド間隔を０.５ｍｍに変更する。調整レベルが２の場合には、本来ならばドット面積はそのままでグリッド間隔を２段階小さくすることになるが、グリッド間隔の設定限界が０.５ｍｍであるため、グリッド間隔を２段階小さくできない。そこで、グリッド間隔は０.５ｍｍとし、ドット面積を１段階大きくし４μｍ2にすることで解読容易性を上げる。
【０２５２】
調整レベルが３の場合には、本来ならばドット面積を１段階大きくし、グリッド間隔を１段階小さくして、グリッド間隔を０.５ｍｍとし、ドット面積４μｍ2にすることになるが、上述したとおり、調整レベルが２の場合にその設定が行われる。したがって、グリッド間隔を０.５ｍｍとし、ドット面積を２段階大きくし６μｍ2にすることで解読容易性を上げる。
【０２５３】
調整レベルが４の場合には、本来ならばドット面積を２段階大きくし、グリッド間隔を２段階小さくすることになる。しかしながら、グリッド間隔に関しては、その設定限界が０.５ｍｍであるため、２段階小さくできない。そこで、グリッド間隔は０.５ｍｍとする。解読容易性をあげるためにはドット面積を６μｍ2より大きくする必要があるが、ドット面積の設定限界が６μｍ2であるため、ドット面積をそれより大きくできない。したがって、調整レベルが４の場合には、調整レベル３と同じく、グリッド間隔を０.５ｍｍに、ドット面積を６μｍ2に変更する。
【０２５４】
このように、グリッド間隔、ドット面積ともに設定限界を超える調整が必要となる場合には、操作部１５０５に「出力用紙の取り扱いによっては、付加情報の解読ができなくなる可能性があります」等の注意を促すメッセージを表示する。
【０２５５】
（その他の実施例）
また本発明の目的は、上述した実施例で示したフローチャートの手順を実現するプログラムコードを記録した記録媒体から、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が、そのプログラムコードを読出し実行することによっても達成される。記録媒体とは、コンピュータ読み取り可能な記録媒体である。この場合、コンピュータ読み取り可能な記録媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになる。そのため、このプログラムコード及びプログラムコードを記録した記録媒体も本発明の一つを構成することになる。
【０２５６】
プログラムコードを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０２５７】
また、そのプログラムコードの指示に基づきコンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれる。
【０２５８】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込みまれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される。
【符号の説明】
【０２５９】
１０１  スキャナ部
１０２  第１の画像処理部
１０３  付加情報解読部
１０４  ＣＰＵ
１０５  操作部
１０６  付加画像生成部
１０７  画像合成部
１０８  プリンタ部
１０９  外部Ｉ／Ｆ部
１１０  第２の画像処理部
【図１】
2011259512.tif 000009
【図２】
2011259512.tif 000010
【図３】
2011259512.tif 000011
【図４】
2011259512.tif 000012
【図５】
2011259512.tif 000013
【図６】
2011259512.tif 000014
【図７】
2011259512.tif 000015
【図８】
2011259512.tif 000016
【図９】
2011259512.tif 000017
【図１０】
2011259512.tif 000018
【図１１】
2011259512.tif 000019
【図１２】
2011259512.tif 000020
【図１３】
2011259512.tif 000021
【図１４】
2011259512.tif 000022
【図１５】
2011259512.tif 000023
【図１６】
2011259512.tif 000024
【図１７】
2011259512.tif 000025
【図１８】
2011259512.tif 000026
【図１９】
2011259512.tif 000027
【図２０】
2011259512.tif 000028
【図２１】
2011259512.tif 000029
【図２２】
2011259512.tif 000030
【図２３】
2011259512.tif 000031
【図２４】
2011259512.tif 000032
【図２５】
2011259512.tif 000033
【図２６】
2011259512.tif 000034
【図２７】
2011259512.tif 000035
【図２８】
2011259512.tif 000036
【図２９】
2011259512.tif 000037
【図３０】
2011259512.tif 000038
【図３１】
2011259512.tif 000039
【図３２】
2011259512.tif 000040
【図３３】
2011259512.tif 000041
【図３４】
2011259512.tif 000042
【図３５】
2011259512.tif 000043