(57)【要約】【課題】コード埋め込みによる画像劣化を防止すること。【解決手段】エンコーダ１００は、ブロック分割部１１０が原画像データを複数のブロックに分割し、埋め込みブロックサイズ判定部１６０が原画像データの解像度・埋め込みサイズを基にして埋め込みブロックサイズを算出する。そして、エンコード部１７０が原画像データ（ブロック分割画像データ）にコードを埋め込む場合に、ブロック中の全ての領域の特徴量を操作するのではなく、埋め込みブロックサイズの領域の特徴量を操作してコードを埋め込む。【選択図】        図２
2008172723.tif 000002
【特許請求の範囲】
【請求項１】
画像に情報を埋め込む画像処理装置であって、
前記画像を複数のブロックに分割して当該ブロックの大きさを算出する分割処理手段と、
前記複数のブロックにおける各ペアブロック中で情報を埋め込む領域を示す埋め込みブロックの大きさを前記画像の大きさに基づいて算出する算出処理手段と、
前記各ペアブロックに含まれる特徴量の大小関係を操作し、前記埋め込みブロックの大きさに基づいて前記画像に対する情報の埋め込みを行う情報埋め込み手段と、
を備えたことを特徴とする画像処理装置。
【請求項２】
前記特徴量は、平均濃度、粒状度、彩度、濃度重心または分散であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記情報埋め込み手段は、前記ブロックの大きさが前記埋め込みブロックの大きさ以下の場合に、エラーを出力することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記情報埋め込み手段は、前記ブロックの大きさが前記埋め込みブロックの大きさ以下の場合に、前記埋め込みブロックの大きさを前記ブロックの大きさに設定して前記画像に対する情報の埋め込みを行うことを特徴とする請求項１または２に記載の画像処理装置。
【請求項５】
請求項１〜４のいずれか一つの画像処理装置によって情報が埋め込まれた画像が印刷された印刷物。
【請求項６】
画像に埋め込まれた情報を抽出する画像処理装置であって、
前記画像を複数のブロックに分割する分割手段と、
前記画像の大きさに基づいて、特徴量の抽出領域の大きさを算出する抽出領域算出と、
前記抽出領域の大きさに基づいて前記ブロックから前記特徴量を抽出し、前記ブロックにおける各ペアブロックに含まれる領域の特徴量の大小関係に基づいて前記画像に埋め込まれた情報を抽出する抽出手段と、
を備えたことを特徴とする画像処理装置。
【請求項７】
前記特徴量は、平均濃度、粒状度、彩度、濃度重心または分散であることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記抽出手段は、前記各ペアブロックの中央部から前記特徴量を抽出し、抽出した特徴量の大小関係に基づいて前記画像に埋め込まれた情報を抽出することを特徴とする請求項６または７に記載の画像処理装置。
【請求項９】
画像に情報を埋め込む画像処理プログラムであって、
前記画像を複数のブロックに分割して当該ブロックの大きさを算出する分割処理手順と、
前記複数のブロックにおける各ペアブロック中で情報を埋め込む領域を示す埋め込みブロックの大きさを前記画像の大きさに基づいて算出する算出処理手順と、
前記各ペアブロックに含まれる特徴量の大小関係を操作し、前記埋め込みブロックの大きさに基づいて、前記画像に対する情報の埋め込みを行う情報埋め込み手順と、
をコンピュータに実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像に情報を埋め込む画像処理装置等に関し、特に、大きな画像データにコードを埋め込んだ場合の画像劣化を防止することができる画像処理装置、画像処理プログラムおよび画像処理装置によって情報が埋め込まれた印刷物に関するものである。
【背景技術】
【０００２】
従来より、画像データ、音声データなどに別のデータ（コードなど）を埋め込む技術は、偽造の防止、不正使用の防止、付加サービスの提供に応用されている。そして、例えば、画像データにコードを埋め込む方法は、特許文献１において開示されている。
【０００３】
具体的に、特許文献１では、画像データを複数のブロックに分割し、隣接する２つのブロックペアの特徴量（画像の濃淡など）の大小関係によって、画像に対するコードの埋め込みを行っている。
【０００４】
【特許文献１】特開２００４−３４９８７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来の技術では、サイズの大きな画像データに対してコードの埋め込みを行うと、画質が大きく劣化するという問題があった。
【０００６】
図２０は、各画像サイズにおける階調移動量と画質との関係を示す図である。図２０において、縦軸は画質を示している。画質５は、画質がよく、画質４，３，２，１の順で画質が悪くなる。画質３．５が人間の許容できる画質の限界である。横軸の階調移動量は、画像データの濃淡を変化させる大きさを示している。
【０００７】
図２０に示すように、画像のサイズが大きいほど、階調移動量の変化に伴う画質劣化が大きいことがわかる。例えば、階調移動量を３０とした場合、ブロックの大きさが０．８ｍｍ四方であれば画質が３．５であるが、ブロックサイズが１．７ｍｍ四方の場合には、同じ階調移動量であっても画質が２．１となってしまい、画像劣化の許容範囲を超えてしまう。
【０００８】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、サイズの大きな画像データにコードを埋め込んだ場合でも画像の劣化を低減させることができる画像処理装置、印刷物および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、本発明は、画像に情報を埋め込む画像処理装置であって、前記画像を複数のブロックに分割して当該ブロックの大きさを算出する分割処理手段と、前記複数のブロックにおける各ペアブロック中で情報を埋め込む領域を示す埋め込みブロックの大きさを前記画像の大きさに基づいて算出する算出処理手段と、前記各ペアブロックに含まれる特徴量の大小関係を操作し、前記埋め込みブロックの大きさに基づいて前記画像に対する情報の埋め込みを行う情報埋め込み手段と、を備えたことを特徴とする。
【００１０】
本発明によれば、情報を埋め込む領域を示す埋め込みブロックの大きさを前記画像の大きさに基づいて算出するので、サイズの大きな画像に対して情報を埋め込んだ場合の画像劣化を防止することができる。
【００１１】
また、本発明は、上記発明において、前記特徴量は、平均濃度、粒状度、彩度、濃度重心または分散であることを特徴とする。
【００１２】
本発明によれば、平均濃度、粒状度、彩度、濃度重心、分散などの特徴量を操作して画像に情報を埋め込むので、画像劣化の影響を低減させることができる。
【００１３】
また、本発明は、上記発明において、前記情報埋め込み手段は、前記ブロックの大きさが前記埋め込みブロックの大きさ以下の場合に、エラーを出力することを特徴とする。
【００１４】
本発明によれば、ブロックの大きさが埋め込みブロックの大きさ以下の場合にエラーを出力するので、デコードを期待できない小さな画像へ誤ってデータを埋め込むことを防止することができる。
【００１５】
また、本発明は、上記発明において、前記情報埋め込み手段は、前記ブロックの大きさが前記埋め込みブロックの大きさ以下の場合に、前記埋め込みブロックの大きさを前記ブロックの大きさに設定して前記画像に対する情報の埋め込みを行うことを特徴とする。
【００１６】
本発明によれば、ブロックの大きさが埋め込みブロックの大きさ以下の場合に、埋め込みブロックの大きさをブロックの大きさに設定して画像に対する情報の埋め込みを行うので、小さな画像に対して効率よく情報を埋め込むことができる。
【００１７】
また、本発明は、印刷物は、上記発明にかかる画像処理装置によって情報を埋め込まれていることを特徴とする。
【００１８】
本発明によれば、印刷物は、上記発明にかかる画像処理装置によって情報を埋め込まれているので、画像劣化の影響を抑えることができる。
【００１９】
また、本発明は、画像に埋め込まれた情報を抽出する画像処理装置であって、前記画像を複数のブロックに分割する分割手段と、前記画像の大きさに基づいて、特徴量の抽出領域の大きさを算出する抽出領域算出手段と、前記抽出領域の大きさに基づいて前記ブロックから前記特徴量を抽出し、前記ブロックにおける各ペアブロックに含まれる領域の特徴量の大小関係に基づいて前記画像に埋め込まれた情報を抽出する抽出手段と、を備えたことを特徴とする。
【００２０】
本発明によれば、画像の大きさに基づいて、特徴量の抽出領域の大きさを算出し、算出した抽出領域の大きさに基づいて各ペアブロックから特徴量を抽出するので、エンコードされた画素を最大限に利用でき、画像から正確に情報を抽出することができる。
【００２１】
また、本発明は、上記発明において、前記特徴量は、平均濃度、粒状度、彩度、濃度重心または分散であることを特徴とする。
【００２２】
本発明によれば、平均濃度、粒状度、彩度、濃度重心、分散などの特徴量の大小関係に基づいて画像に埋め込まれた情報を抽出するので、画像から情報を的確に抽出することができる。
【００２３】
また、本発明は、上記発明において、前記抽出手段は、前記各ペアブロックの中央部から前記特徴量を抽出し、抽出した特徴量の大小関係に基づいて前記画像に埋め込まれた情報を抽出することを特徴とする。
【００２４】
本発明によれば、ペアブロックの中央部から特徴量を抽出し、抽出した特徴量の大小関係に基づいて画像に埋め込まれた情報を抽出するので、画像が大きくても特徴量の抽出に要する時間を短縮することができる。
【００２５】
本発明によれば、画像の大きさに基づいて、特徴量の抽出領域の大きさを算出し、算出した抽出領域の大きさに基づいて各ペアブロックから特徴量を抽出し、抽出した特徴量の大小関係に基づいて画像に埋め込まれた情報を抽出するので、エンコードされた画素を最大限に利用でき、画像からより正確に情報を抽出することができる。
【００２６】
また、本発明は、画像に情報を埋め込む画像処理プログラムであって、前記画像を複数のブロックに分割して当該ブロックの大きさを算出する分割処理手順と、前記複数のブロックにおける各ペアブロック中で情報を埋め込む領域を示す埋め込みブロックの大きさを前記画像の大きさに基づいて算出する算出処理手順と、前記各ペアブロックに含まれる特徴量の大小関係を操作し、前記埋め込みブロックの大きさに基づいて前記画像に対する情報の埋め込みを行う情報埋め込み手順と、をコンピュータに実行させることを特徴とする。
【００２７】
本発明によれば、情報を埋め込む領域を示す埋め込みブロックの大きさを前記画像の大きさに基づいて算出するので、サイズの大きな画像に対して情報を埋め込んだ場合の画像劣化を防止することができる。
【発明の効果】
【００２８】
本発明によれば、画像を複数のブロックに分割して当該ブロックの大きさを算出し、複数のブロックにおける各ペアブロック中で情報を埋め込む領域を示す埋め込みブロックの大きさを画像の大きさに基づいて算出し、各ペアブロックに含まれる特徴量の大小関係を操作し、埋め込みブロックの大きさに基づいて画像に対する情報の埋め込みを行うので、画像に情報を埋め込んだ際の画像劣化を最小限に抑えることができる。また、どのようなサイズの画像データに対しても一定以上の画質を保ったまま情報の埋め込みを実行することができるので、ユーザの所望する様々なサイズの画像に情報を埋め込むことができ利便性が向上する。
【発明を実施するための最良の形態】
【００２９】
以下に添付図面を参照して、この発明に係る画像処理装置、印刷物および画像処理プログラムの好適な実施の形態を詳細に説明する。
【実施例１】
【００３０】
まず、本実施例１にかかるエンコーダの概要および特徴について説明する。図１は、本実施例にかかるエンコーダの概要および特徴を説明するための説明図である。同図に示すように、本実施例１にかかるエンコーダは、原画像データ（コードを埋め込む前の画像データ）を複数のブロックに分割するとともに、原画像データの大きさ等（原画像の解像度等も含む）を基にして、各ペアブロック（隣接する二つのブロック）中の特徴量を操作する領域（以下、埋め込みブロックと表記する）の大きさ（図１に示す例では、ｔ四方）を算出し、算出した埋め込みブロックの大きさによって原画像データに対するコードの埋め込みを行う。
【００３１】
例えば、図１の上段に示すように、通常の画像（ブロックと埋め込みブロックとが等しい場合）では、ブロックペア中の全ての領域の特徴量を操作してコードを埋め込む（一つのペアブロックに対して一つのコードを埋め込む）。一方、図１の下段に示すように、大きい画像（ブロックよりも埋め込みブロックが小さい場合）では、ブロックペア中の埋め込みブロックの特徴量を操作してコードを埋め込む。
【００３２】
このように、本実施例１にかかるエンコーダは、原画像データを分割した場合のブロックの大きさによらず、画像の大きさ等によって算出される埋め込みブロックの大きさで原画像データにコードを埋め込むので、大きな画像データにコードを埋め込む場合であっても、画像の劣化を大幅に低減させることができる。
【００３３】
次に、本実施例１にかかるエンコーダの構成について説明する。図２は、本実施例１にかかるエンコーダ１００の構成を示す機能ブロック図である。同図に示すように、このエンコーダ１００は、ブロック分割部１１０と、ブロック抽出部１２０と、平均化部１３０と、レジスタ１４０ｒ，１４０ｌと、比較部１５０と、埋め込みブロックサイズ判定部１６０と、エンコード部１７０とを備えて構成される。
【００３４】
ブロック分割部１１０は、入力された原画像データをＮ行×Ｍ列のブロックに分割（本実施例１においては、一例として５０行×４０列のブロックに分割）し、これをブロック分割画像データとして出力する処理部である。図３は、原画像データの一例を示す図であり、図４は、ブロック分割画像データの一例を示す図であり、図５は、原画像データに埋め込まれるコードＣの一例を示す図である。
【００３５】
原画像データＩ０は、所定の画像形式に基づいて生成された画像データであり、本実施例１では一例として、７２０画素×９００画素サイズの画像データである。なお、この原画像データＩ０の画像形式としては、ＢＭＰ（Bit  Map）形式、ＴＩＦＦ（Tagged  Image  File  Format）形式等のように解像度情報を持っている画像形式である必要がある。この原画像データＩ０は、例えば、図５に示したコードＣが埋め込まれる。
【００３６】
ブロック分割画像データＩ１は、ブロックＢl11、Ｂr11、・・・Ｂl120、Ｂr120、・・・Ｂl21、Ｂr21、・・・Ｂl5020、Ｂr5020という２０００（５０行×４０列）ブロックから構成されている。ここで、ブロック分割画像データＩ１においては、ペアブロック（隣接する２つのブロック）に１ビットのコードが埋め込まれる。
【００３７】
具体的には、ペアブロックは、ブロックＢl11およびＢr11、ブロックＢl12およびＢr12、・・・、ブロックＢl21およびＢr21、・・・、ブロックＢl21およびＢr21、・・・ブロックＢl501およびＢr501、・・・、ブロックＢl5020およびＢr5020という２つのブロックから構成されている。
【００３８】
ここで、ペアブロックの一方のブロックＢlxyにおいて、添え字ｌ（ｌｅｆｔ）は、ペアブロックにおいて左側のブロックであることを示す。添え字ｘは、行（Ｎ）を示す。また、添え字ｙは、列（Ｍ）を示す。他方、ペアブロックのブロックＢrxyにおいて、添え字ｒ（ｒｉｇｈｔ）は、ペアブロックにおいて右側のブロックであることを示す。添え字ｘは、行（Ｎ）を示す。また、添え字ｙは、列（Ｍ）を示す。
【００３９】
また、ペアブロックにおいて、左側のブロックＢlxyにおける特徴量として平均濃度（ブロック内の各画像の平均階調）を左側平均濃度データＤlとし、右側のブロックＢrxyの平均濃度（特徴量）を右側平均濃度データＤrとする。
【００４０】
ここで、以下の関係式のように、左側平均濃度データＤlが右側平均濃度データＤr未満である場合、ペアブロックは、１ビット分のコードとして「０」を表す。一方、左側平均濃度データＤlが右側平均濃度データＤr以上である場合、ペアブロックは１ビット分のコードとして「１」を表す。
【００４１】
Ｄl＜Ｄr→「０」
Ｄl≧Ｄr→「１」
【００４２】
例えば、図４に示したブロックＢl120およびＢr120からなるペアブロックは、左辺平均濃度データＤl120が「１１５」、右辺平均濃度データＤr120が「１２５」であるため、１ビット分のコードとして「０」を表す。
【００４３】
また、ブロックＢl220およびＢr220からなるペアブロックは、左辺平均濃度データＤl220が「１２５」、右辺平均濃度データＤr220が「１１５」であるため、１ビット分のコードとして「１」を表す。
【００４４】
また、ブロック分割画像データＩ１においては、１行あたり、２０のペアブロック（４０ブロック）であるため、２０ビット分のコードを表す。従って、全行（５０行）では、１０００ビット分のコードを表すことになる。
【００４５】
図２の説明に戻ると、ブロック抽出部１２０は、ブロック分割画像データＩ１（図４参照）からペアブロック（ＢlxyおよびＢrxy）をコードＣのビットシフトに追従させて準じ抽出し、ブロックＢlxyおよびＢrxyのそれぞれにおける濃度分布をブロック濃度データＤとして順次出力する。
【００４６】
ここで、コードＣのビットシフトとは、図５に示した最左側ビット（１）から右側ビット（０）へ向けて、ビットのポインタ（図示略）を右側へ１ビットずつシフトさせることをいう。
【００４７】
また、ブロック抽出部１２０は、ブロック分割画像データＩ１のブロックの大きさを算出し、算出結果をブロックサイズデータとして埋め込みブロックサイズ判定部１６０に渡す。原画像データＩ０の大きさが横７２０画素×縦９００画素で、この原画像データＩ０を図４に示すように横に４０ブロック、縦に５０ブロックに分割した場合には、横のブロックの大きさは、１８画素（７２０／４０）となり、縦のブロックの大きさは１８画素（９００／５０）となる。
【００４８】
平均化部１３０は、ブロック濃度データＤかあら、ブロックＢlxyに対応する左側平均濃度データＤlと、ブロックＢrxyに対応する右側平均濃度データＤrとを求め、これらをレジスタ１４０ｌおよび１４０ｒにコードＣのビットシフトに追従させて順次格納する。
【００４９】
比較部１５０は、コードＣのｎビット目（図５に示した最左側ビットからｎ＝１、２、・・・、１６）と、レジスタ１４０ｌおよびレジスタ１４０ｒに格納されている左側平均濃度データＤlおよび右側平均濃度データＤrの大小関係から決定されるビット判定結果（前述した関係式により「０」または「１」とビット判定される；図４参照）とを比較する。
【００５０】
埋め込みブロックサイズ判定部１６０は、原画像データＩ０の解像度および埋め込みの大きさを基にして埋め込みブロックの大きさを算出する処理部である。例えば、原画像データＩ０の解像度が３００ｄｐｉで、埋め込みの大きさ（画像がプリントされた印刷物上での埋め込みブロックの大きさ；この埋め込みの大きさは利用者によって任意に変更可能）を０．８ｍｍ四方とすると、埋め込みブロックの大きさは、縦に９．４４画素、横に９．４４画素（０．８×３００／２５．４≒９．４４）となる。
【００５１】
そして、埋め込みブロックサイズ判定部１６０は、ブロック抽出部１２０から取得するブロックサイズデータと埋め込みブロックの大きさとを比較し、（ブロック分割画像データＩ１の）ブロックの大きさが埋め込みブロックの大きさよりも大きいか否かを判定する。
【００５２】
ブロックの大きさが埋め込みブロックの大きさよりも大きい場合には、埋め込みブロックサイズ判定部１６０は、埋め込みブロックの大きさの情報を埋め込みブロックサイズデータとしてエンコード部１７０に渡す。
【００５３】
なお、ブロックの大きさが埋め込みブロックの大きさ以下の場合には、埋め込みブロックサイズ判定部１６０は、エラーを出力する。この場合、原画像データＩ０に対するコードの埋め込み処理は終了する。本実施例１に示す例では、ブロックサイズが１８画素×１８画素であり、埋め込みブロックのサイズが９．４４画素×９．４４画素となるため、埋め込み処理は順次実行される。
【００５４】
エンコード部１７０は、比較部１５０の比較結果に基づいて、ブロック分割画像データＩ１（原画像データＩ０）にコードを埋め込むための処理を実行する。具体的には、エンコード部１７０は、比較部１５０の比較結果が一致である場合、左側平均濃度データＤlと右側平均濃度データＤrとの大小関係を維持する。
【００５５】
一方、エンコード部１７０は、比較部１５０による比較結果が不一致である場合、コードＣのビットを表す大小関係となるように、左側平均濃度データＤlと右側平均濃度データＤrの特徴量を操作し、大小関係を逆転させる。
【００５６】
なお、エンコード部１７０は、ブロック内の全ての特徴量を操作するのではなく、埋め込みブロックサイズ判定部１６０から取得した埋め込みブロックサイズデータによって特定される領域の特徴量を操作する。図６は、エンコード部１７０の処理を説明するための図である。同図に示すように、ブロックのサイズは１８画素×１８画素であるが、エンコード部１７０が特徴量を操作する領域は、埋め込みブロックのサイズ９．４４画素×９．４４画素となる。
【００５７】
エンコード部１７０は、上記処理を実行して、ブロック分割画像データＩ１にコードを埋め込んだ画像コード化データを生成し、生成した画像コード化データを出力する。図７は、画像コード化データの一例を示す図である。図７に示した画像コード化データＩ３は、ブロック分割画像データＩ１（図４参照）および原画像データＩ０（図３参照）に対応している。ブロック分割画像データＩ１は、１０００（２０×５０）のペアブロックを有するため、１６ビットのコードが約６２回埋め込まれる。
【００５８】
なお、図７において、コードＣの埋め込み状態が図示されているが、実際の画像コード化データＩ３は、原画像データＩ０とほぼ同様（一部濃度が変更されているブロックが存在する場合もあるが肉眼では見分けがつかない）の画像データに対応している。また、エンコーダ１００の各構成要素は、図示しない制御部を介して相互接続されているものとする。
【００５９】
次に、本実施例１にかかるエンコーダ１００の処理について説明する。図８は、本実施例１にかかるエンコーダ１００の処理手順を示すフローチャートである。同図に示すように、エンコーダ１００は、比較部１５０がコードＣ（図５参照）を取得し（ステップＳ１０１）、初期値としてｎを１とする（ステップＳ１０２）。ステップＳ１０２におけるｎは、コードＣのビットのポインタを示す。この場合、ｎ＝１は、コードＣの最左側のビット「１」に対応する。
【００６０】
続いて、ブロック分割部１１０は、原画像データＩ０（図３参照）を取得し（ステップＳ１０３）、ブロック分割処理により入力された原画像データＩ０を分割する（ステップＳ１０４）。本実施例１では、ブロック分割部１１０は、原画像データＩ０を５０×４０のブロックに分割したブロック分割画像データＩ１を生成する。
【００６１】
そして、ブロック分割部１１０は、ブロック分割画像データＩ１をブロック抽出部１２０に渡し、ブロック抽出部１２０は、ブロックサイズを算出し、ブロックサイズデータとして埋め込みブロックサイズ判定部１６０に渡す。（ステップＳ１０５）。原画像データＩ０の大きさが横７２０画素×縦９００画素で、この原画像データＩ０を図４に示すように横に４０ブロック、縦に５０ブロックに分割した場合には、横のブロックの大きさは、１８画素（７２０／４０）となり、縦のブロックの大きさは１８画素（９００／５０）となる。
【００６２】
続いて、埋め込みブロックサイズ判定部１６０は、埋め込みブロックサイズ（埋め込みブロックの大きさ）を算出する（ステップＳ１０６）。原画像データＩ０の解像度が３００ｄｐｉで、埋め込みの大きさを０．８ｍｍ四方とすると、埋め込みブロックの大きさは、縦に９．４４画素、横に９．４４画素（０．８×３００／２５．４≒９．４４）となる。
【００６３】
そして、埋め込みブロックサイズ判定部１６０は、ブロックサイズ（ブロックの大きさ）が埋め込みブロックサイズより大きいか否かを判定し（ステップＳ１０７）、ブロックサイズが埋め込みブロックサイズ以下である場合には（ステップＳ１０８，Ｎｏ）、エラーを出力して（ステップＳ１０９）、処理を終了する。
【００６４】
一方、ブロックサイズが埋め込みブロックサイズより大きい場合には（ステップＳ１０８，Ｙｅｓ）、ステップＳ１１０以降の処理を順次実行する。
【００６５】
ブロック抽出部１２０は、ブロック分割画像データＩ１からｎ（一巡目はｎ＝１）に対応するペアブロック（この場合、ブロックＢl11およびＢr11）を抽出した後、ブロックＢl11およびＢr11のそれぞれにおける濃度分布をブロック濃度データＤとして平均化部１３０に出力する（ステップＳ１１０）。
【００６６】
平均化部１３０は、平均化処理により、ブロック濃度データＤから、（一巡目の場合は）ブロックＢl11に対応する左側平均濃度データＤl11とブロックＢr11に対応する右側平均濃度データＤr11を求め（ステップＳ１１１）、左側平均濃度データＤl11をレジスタ１４０ｌに格納し、右側平均濃度データＤr11をレジスタ１４０ｒに格納する（ステップＳ１１２）。
【００６７】
比較部１５０は、図５に示したコードＣの最左ビット（一巡目はｎ＝１に対応）である「１」と、レジスタ１４０ｌ、レジスタ１４０ｒに格納されている左側平均濃度データＤl11および右側平均濃度データＤr11の濃度差を求め、この濃度差（大小関係）からビット判定を行い（ステップＳ１１３）、コードＣのｎビット目とビット判定結果が同一か否かを判定する（ステップＳ１１４）。
【００６８】
コードＣのｎビット目とビット判定結果が同一でない場合には（ステップＳ１１５，Ｎｏ）、エンコード部１７０が濃度変換処理を実行する（ステップＳ１１６）。エンコード部１７０は、左辺平均濃度データＤlxyと右辺平均濃度データＤrxyとの大小関係に基づくビット判定結果が、コードＣのｎビット目と同一となるように、左辺平均濃度データＤlxyと右辺平均濃度データＤrxyを変更するという濃度変換処理（左側平均濃度データＤlxyと右側平均濃度データＤrxyとの大小関係を逆転させる処理）を実行する。なお、濃度変換対象となる領域は、埋め込みブロックサイズ判定部１６０によって算出される埋め込みブロックの領域となる。
【００６９】
図９は、濃度変更処理を補足するための図である。エンコード部１７０は、Ｄlxy＜Ｄrxyとする場合には、（１）式から変更後の左側平均濃度データＤ’lxyを求めた後、（２）式から変更後の右側平均濃度データＤ’rxyを求める。これにより、変更後においては、左側平均濃度データＤ’lxyがＤ’rxy未満となり、ビット判定結果が「１」から「０」となる。
【００７０】
一方、エンコード部１７０は、Ｄlxy≧Ｄrxyとする場合には、（３）式から変更後の左側平均濃度データＤ’lxyを求めた後、変更後の右側平均濃度データＤ’rxyを求める。これにより、左側平均濃度データＤ’lxyがＤ’rxy以上となり、ビット判定結果が「０」から「１」となる。
【００７１】
図８のフローチャートに戻ると、コードのｎビット目とビット判定結果が同一である場合には（ステップＳ１１５，Ｙｅｓ）、比較部１５０がｎを１インクリメントし（ステップＳ１１７）、ｎがｎｅｎｄ（本実施例１では１６）より大きいか否かを判定する。
【００７２】
ｎがｎｅｎｄより大きくない場合には（ステップＳ１１８，Ｎｏ）、ステップＳ１１０に移行し、ｎがｎｅｎｄより大きい場合には（ステップＳ１１８，Ｙｅｓ）、比較部１５０は、比較対象となっているブロックが最終ブロックか否かを判定し（ステップＳ１１９）、最終ブロックである場合には（ステップＳ１２０，Ｙｅｓ）、エンコード部１７０が画像コード化データＩ３を出力する（ステップＳ１２１）。一方、最終ブロックでない場合には、比較部１５０はｎに１をセットし（ステップＳ１２２）、ステップＳ１１０に移行する。
【００７３】
このように、埋め込みブロックサイズ判定部１６０が、埋め込みブロックサイズを算出し、エンコード部１７０が埋め込みブロックサイズによる領域の特徴量を操作してコードを埋め込むので、サイズの大きい原画像データＩ０にコードを埋め込んだ場合であっても、かかる原画像データの画像の劣化を抑えることができる。
【００７４】
上述してきたように、本実施例１にかかるエンコーダ１００は、ブロック分割処理部１１０が原画像データＩ０を複数のブロックに分割し、埋め込みブロックサイズ判定部１６０が原画像データの解像度・埋め込みサイズを基にして埋め込みブロックサイズを算出する。そして、エンコード部１７０が原画像データＩ０（ブロック分割画像データＩ１）にコードを埋め込む場合に、ブロック中の全ての領域の特徴量を操作するのではなく、埋め込みブロックサイズの領域の特徴量を操作してコードを埋め込むので、原画像データの画質を落とすことなくコードを埋め込むことができる。
【００７５】
また、本実施例１にかかるエンコーダ１００は、埋め込みブロックサイズ判定部１６０が、ブロックサイズと埋め込みブロックサイズとを比較し、ブロックサイズが埋め込みブロックの大きさ以下の場合には、原画像データＩ０に対するコードの埋め込みを中止するので、デコードが期待できない小さい原画像データＩ０にあやまってデータを埋め込むことを防止することができる。
【実施例２】
【００７６】
次に、本実施例２にかかるエンコーダの概要および特徴について説明する。図１０は、本実施例２にかかるエンコーダの概要および特徴を説明するための説明図である。同図に示すように、本実施例２にかかるエンコーダは、実施例１のエンコーダ１００と同様の手法を用いてブロックの大きさおよび埋め込みブロックの大きさを算出し、ブロックの大きさと埋め込みブロックの大きさとを比較した結果、ブロックの大きさが埋め込みブロックの大きさ以下となった場合に、埋め込みブロックの大きさをブロックの大きさに調整して原画像データに対するコードの埋め込みを実行する。
【００７７】
図１０に示す例では、埋め込みブロックの大きさがｔ四方であり、原画像データを分割した際のブロックの大きさが横にｗ（ｗ＜ｔ）、縦にｈ（ｈ＜ｔ）となっているため、本実施例２のエンコーダは、埋め込みブロックの大きさを横にｗ、縦にｈに調整し、調整後の埋め込みブロック（埋め込みブロックの大きさ＝ブロックの大きさ）の大きさでコードを埋め込む（特徴量を操作する）。
【００７８】
このように、本実施例２にかかるエンコーダは、ブロックの大きさが埋め込みブロックの大きさ以下となった場合でも、埋め込みブロックの大きさを調整し、原画像データに対する埋め込みを実行するので、サイズの小さな原画像も、大きな画像と同様にコードを埋め込むことができる。
【００７９】
次に、本実施例２にかかるエンコーダの構成について説明する。図１１は、本実施例２にかかるエンコーダ２００の構成を示す機能ブロック図である。同図に示すように、このエンコーダ２００は、ブロック分割部２１０と、ブロック抽出部２２０と、平均化部２３０と、レジスタ２４０ｌ，２４０ｒと、比較部２５０と、埋め込みブロックサイズ判定部２６０と、エンコード部２７０とを備えて構成される。
【００８０】
なお、ブロック分割部２１０、ブロック抽出部２２０、平均化部２３０、レジスタ２４０ｌ，２４０ｒ、比較部２５０、エンコード部２７０に関する説明は、図２に示したブロック分割部１１０、ブロック抽出部１２０、平均化部１３０、レジスタ１４０ｌ，１４０ｒ、比較部１５０、エンコード部１７０に関する説明と同様であるため説明を省略する。
【００８１】
埋め込みブロックサイズ判定部２６０は、原画像データＩ０（図３参照）の解像度および埋め込みの大きさを基にして埋め込みブロックの大きさを算出する処理部である。例えば、原画像データＩ０の解像度が３００ｄｐｉで、埋め込みの大きさを０．８ｍｍ四方とすると、埋め込みブロックの大きさは、縦に９．４４画素、横に９．４４画素となる。
【００８２】
そして、埋め込みブロックサイズ判定部２６０は、ブロック抽出部２２０から取得するブロックサイズデータと埋め込みブロックの大きさとを比較し、（ブロック分割画像データＩ１の）ブロックの大きさが埋め込みブロックの大きさよりも大きいか否かを判定する。
【００８３】
ブロックの大きさが埋め込みブロックの大きさよりも大きい場合には、埋め込みブロックサイズ判定部２６０は、埋め込みブロックの大きさの情報を埋め込みブロックサイズデータとしてエンコード部２７０に渡す。
【００８４】
なお、ブロックの大きさが埋め込みブロックの大きさ以下の場合には、埋め込みブロックサイズ判定部２６０は、埋め込みブロックの大きさをブロックの大きさに変更し、変更後の埋め込みブロックの大きさを埋め込みブロックサイズデータとしてエンコード部２７０に渡す。
【００８５】
例えば、埋め込みブロックの大きさがｔ四方であり、ブロックの大きさが横にｗ（ｗ＜ｔ）、縦にｈ（ｈ＜ｔ）となっている場合には、埋め込みブロックサイズ判定部２６０は、埋め込みブロックの横の大きさをｗ、縦の大きさをｈに調整する。
【００８６】
なお、エンコーダ２００の各構成要素は、図示しない制御部を介して相互に接続されているものとする。
【００８７】
次に、本実施例２にかかるエンコーダ２００の処理について説明する。図１２は、本実施例２にかかるエンコーダ２００の処理手順を示すフローチャートである。同図に示すように、エンコーダ２００は、比較部２５０がコードＣ（図５参照）を取得し（ステップＳ２０１）、初期値としてｎを１とする（ステップＳ２０２）。ステップＳ２０２におけるｎは、コードＣのビットのポインタを示す。この場合、ｎ＝１は、コードＣの最左側のビット「１」に対応する。
【００８８】
続いて、ブロック分割部２１０は、原画像データＩ０（図３参照）を取得し（ステップＳ２０３）、ブロック分割処理により入力された原画像データＩ０を分割する（ステップＳ２０４）。
【００８９】
そして、ブロック分割部２１０は、ブロック分割画像データＩ１をブロック抽出部２２０に渡し、ブロック抽出部２２０は、ブロックサイズを算出し、算出したブロックサイズをブロックサイズデータとして埋め込みブロックサイズ判定部２６０に渡す。（ステップＳ１０５）。
【００９０】
続いて、埋め込みブロックサイズ判定部２６０は、埋め込みブロックサイズ（埋め込みブロックの大きさ）を算出する（ステップＳ２０６）。例えば、原画像データＩ０の解像度が３００ｄｐｉで、埋め込みの大きさを０．８ｍｍ四方とすると、埋め込みブロックの大きさは、縦に９．４４画素、横に９．４４画素（０．８×３００／２５．４≒９．４４）となる。
【００９１】
そして、埋め込みブロックサイズ判定部２６０は、ブロックサイズ（ブロックの大きさ）が埋め込みブロックサイズより大きいか否かを判定し（ステップＳ２０７）、ブロックサイズが埋め込みブロックサイズ以下である場合には（ステップＳ２０８，Ｎｏ）、埋め込みブロックサイズをブロックサイズに設定し（ステップＳ２０９）、ステップＳ２１０に移行する。
【００９２】
一方、ブロックサイズが埋め込みブロックサイズより大きい場合には（ステップＳ２０８，Ｙｅｓ）、ステップＳ２１０以降の処理を順次実行する。
【００９３】
ブロック抽出部２２０は、ブロック分割画像データＩ１からｎ（一巡目はｎ＝１）に対応するペアブロック（この場合、ブロックＢl11およびＢr11）を抽出した後、ブロックＢl11およびＢr11のそれぞれにおける濃度分布をブロック濃度データＤとして平均化部２３０に出力する（ステップＳ２１０）。
【００９４】
平均化部２３０は、平均化処理により、ブロック濃度データＤから、（一巡目の場合は）ブロックＢl11に対応する左側平均濃度データＤl11とブロックＢr11に対応する右側平均濃度データＤr11を求め（ステップＳ２１１）、左側平均濃度データＤl11をレジスタ２４０ｌに格納し、右側平均濃度データＤr11をレジスタ２４０ｒに格納する（ステップＳ２１２）。
【００９５】
比較部２５０は、図５に示したコードＣの最左ビット（一巡目はｎ＝１に対応）である「１」と、レジスタ２４０ｌ、レジスタ２４０ｒに格納されている左側平均濃度データＤl11および右側平均濃度データＤr11の濃度差を求め、この濃度差（大小関係）からビット判定を行い（ステップＳ２１３）、コードＣのｎビット目とビット判定結果が同一か否かを判定する（ステップＳ２１４）。
【００９６】
コードＣのｎビット目とビット判定結果が同一でない場合には（ステップＳ２１５，Ｎｏ）、エンコード部２７０が濃度変換処理を実行する（ステップＳ２１６）。エンコード部２７０は、左辺平均濃度データＤlxyと右辺平均濃度データＤrxyとの大小関係に基づくビット判定結果が、コードＣのｎビット目と同一となるように、左辺平均濃度データＤlxyと右辺平均濃度データＤrxyを変更するという濃度変換処理（左側平均濃度データＤlxyと右側平均濃度データＤrxyとの大小関係を逆転させる処理）を実行する。なお、濃度変換対象となる領域は、埋め込みブロック２６０によって算出される埋め込みブロックの領域となる。
【００９７】
一方、コードのｎビット目とビット判定結果が同一である場合には（ステップＳ２１５，Ｙｅｓ）、比較部１５０がｎを１インクリメントし（ステップＳ２１７）、ｎがｎｅｎｄ（本実施例２では１６）より大きいか否かを判定する。
【００９８】
ｎがｎｅｎｄより大きくない場合には（ステップＳ２１８，Ｎｏ）、ステップＳ２１０に移行し、ｎがｎｅｎｄより大きい場合には（ステップＳ２１８，Ｙｅｓ）、比較部２５０は、比較対象となっているブロックが最終ブロックか否かを判定し（ステップＳ２１９）、最終ブロックである場合には（ステップＳ２２０，Ｙｅｓ）、エンコード部２７０が画像コード化データＩ３を出力する（ステップＳ２２１）。一方、最終ブロックでない場合には、比較部２５０はｎに１をセットし（ステップＳ２２２）、ステップＳ２１０に移行する。
【００９９】
このように、埋め込みブロックの大きさがブロックの大きさよりも大きい場合に、埋め込みブロックサイズ判定部２６０が埋め込みブロックの大きさをブロックの大きさに調整し、調整後の埋め込みブロックの大きさによって原画像データＩ０にコードを埋め込むので、サイズの小さな原画像データＩ０に対しても効率よくコードを埋め込むことができる。
【０１００】
上述してきたように、本実施例２にかかるエンコーダ２００は、ブロック分割処理部２１０が原画像データＩ０を複数のブロックに分割し、埋め込みブロックサイズ判定部２６０が原画像データの解像度・埋め込みサイズを基にして埋め込みブロックサイズを算出する。そして、ブロックサイズが埋め込みブロックサイズ以下の場合に、埋め込みブロックサイズ判定部２６０が埋め込みブロックサイズをブロックサイズに調整する。そして、エンコード部２７０が原画像データＩ０（ブロック分割画像データＩ１）にコードを埋め込む場合に、埋め込みブロックサイズの領域の特徴量を操作してコードを埋め込むので、小さな原画像データＩ０（ブロックサイズが埋め込みブロックよりも小さくなる原画像データ）であっても的確にコードを埋め込むことができる。
【実施例３】
【０１０１】
次に、本実施例３にかかるデコーダの概要および特徴について説明する。図１３は、本実施例３にかかるデコーダの概要および特徴を説明するための説明図である。同図に示すように、本実施例３にかかるデコーダは、デコード対象となる画像コード化データＩ３（実施例１において説明した図７参照）を取得した場合に、画像コード化データＩ３を複数のブロックに分割し、ブロック（ペアブロック）の中央部の特徴量を基にしてデコードを実行する。
【０１０２】
このように、本実施例３にかかるデコーダは、埋め込みブロックに必ず含まれるブロックの中央部の特徴量を基にしてデコードを実行するので、本実施例１，２で説明したようなエンコーダ１００，２００によってコードを埋め込まれた場合であっても適切にデコードすることができる。また、画像の大小に関わらず効率よくデコードを実行することができる。
【０１０３】
次に、本実施例３にかかるデコーダの構成について説明する。図１４は、本実施例３にかかるデコーダの構成を示す機能ブロック図である。同図に示すように、このデコーダ３００は、画像切出部３１０と、ブロック分割部３２０と、ブロック抽出部３３０と、平均化部３４０と、レジスタ３５０ｌ，３５０ｒと、比較部３６０と、デコード部３７０とを備えて構成される。
【０１０４】
画像切出部３１０は、画像コード化データＩ３（図７参照）の周囲に画像データ（例えば、余白部分）を含む場合、全体から、有効な画像コード化データＩ３を切出す処理部である。ただし、画像コード化データＩ３のみが画像切出処理部２０１に入力された場合には、切出しが行われない。
【０１０５】
ブロック分割部３２０は、図４に示したブロック分割画像データＩ１と同様にして、画像切出部３１０から取得する画像コード化データをＮ行×Ｍ列（同図の場合、５０行×４０列）のブロックに分割し、これをブロック分割画像データとして出力する処理部である。
【０１０６】
ブロック抽出部３３０は、ブロック分割画像データからペアブロック（２つのブロック）をビットシフトに追従させて順次抽出し、ペアブロックを構成する各ブロックの中央部における濃度分布をブロック濃度データとして順次出力する処理部である。
【０１０７】
平均化部３４０は、ブロック濃度データから、ペアブロックにおける一方のブロック（ブロックの中央部）に対応する左側平均濃度データと、他方のブロック（ブロックの中央部）に対応する右側平均濃度データとを求め、これらをレジスタ３５０ｌおよびレジスタ３５０ｒにコードのビットシフトに追従させて順次格納する処理部である。
【０１０８】
比較部３６０は、レジスタ３５０ｌおよびレジスタ３５０ｒに格納されている左側平均濃度データおよび右側平均濃度データの大小関係を比較することにより、ビット判定を行い、ビット判定結果（前述した関係式により「０」または「１」とビット判定される）に対応するコード群ＣＧをデコード部３７０に出力する処理部である。
【０１０９】
デコード部３７０は、比較部３６０から出力されるコード群ＣＧを基にして、画像コード化データＩ３に埋め込まれたコードを確定し、これをデコーダ３００のデコード結果としてのコードＣ’として出力する。
【０１１０】
また、デコーダ３００の各構成要素は、図示しない制御部を介して相互接続されているものとする。
【０１１１】
次に、本実施例３にかかるデコーダ３００の処理手順について説明する。図１５は、本実施例３にかかるデコーダ３００の処理手順を示すフローチャートである。同図に示すように、画像切出部３１０が画像コード化データＩ３を取得し（ステップＳ３０１）、初期化としてｎに１を設定する（ステップＳ３０２）。このｎは、デコード対象のコードのビットのポインタを表す。この場合、ｎ＝１は、コードの最左側のビットに対応している。
【０１１２】
続いて、画像切出部３１０は、画像コード化データＩ３の周囲に画像データ（例えば、余白部分）を含む場合、全体から、有効な画像コード化データＩ３を切り出し（ステップＳ３０３）、ブロック分割部３２０が画像コード化データＩ３を複数のブロックに分割し、ブロック分割画像データとしてブロック抽出部３３０に出力する（ステップＳ３０４）。
【０１１３】
そして、ブロック抽出部３３０は、ブロック分割画像データから、ｎに対応するペアブロック（２つのブロック）を抽出した後、各ブロックにおける中央部の濃度分布をブロック濃度データとして平均化部３４０に出力する（ステップＳ３０５）。
【０１１４】
平均化部３４０は、平均化処理により、ブロック濃度データから、一方のブロックに対応する左側平均濃度データと、他方のブロックに対応する右側平均濃度データとを求め（ステップＳ３０６）、左側平均濃度データをレジスタ３５０ｌに格納し、右側平均濃度データをレジスタ３５０ｒに格納する（ステップＳ３０７）。
【０１１５】
比較部３６０は、レジスタ３５０ｌおよびレジスタ３５０ｒに格納されている左側平均濃度データおよび右側平均濃度データの大小関係を比較することにより、ビット判定を行い、ビット判定結果（前述した関係式により「０」または「１」とビット判定される）をデコード部３７０に出力し（ステップＳ３０８）、ｎを１インクリメントする（ステップＳ３０９）。
【０１１６】
そして、ｎがｎｅｎｄ（＝１６）以下の場合には（ステップＳ３１０，Ｎｏ）、ステップＳ３０５に移行し、ｎがｎｅｎｄよりも大きい場合には、比較部３６０はブロック分割画像データにおける最終のペアブロックが否かを判定する（ステップＳ３１１）。
【０１１７】
ブロック分割画像データにおける最終のペアブロックである場合には（ステップＳ３１２，Ｙｅｓ）、デコード部３７０が比較部３６０から取得したコード群ＣＧを基にして、画像コード化データＩ３に埋め込まれたコードを確定し、確定したコードＣ’を出力する（ステップＳ３１３）。一方、ブロック分割画像データにおける最終のブロックペアでない場合には（ステップＳ３１２，Ｎｏ）、ｎに１を設定して（ステップＳ３１４）、ステップＳ３０５に移行する。
【０１１８】
このように、ブロック抽出部３３０が、ブロック分割画像データからペアブロックを抽出した後、ペアブロックを構成する各ブロックの中央部の濃度分布をブロック濃度データとして平均化部３４０に出力するので、画像コード化データＩ３に埋め込まれたコードを正確にデコードすることができる。
【０１１９】
上述してきたように、本実施例３にかかるデコーダ３００は、ブロック抽出部３３０がブロック分割画像データからペアブロックを構成する各ブロックの中央部における濃度分布をブロック濃度データとして順次出力し、平均化部３４０が左側平均濃度データおよび右側平均濃度データをレジスタ３５０ｌおよびレジスタ３５０ｒに格納し、比較部３６０がレジスタ３５０ｌおよびレジスタ３５０ｒに格納されたデータを基にしてコード群ＣＧを生成し、デコード部３７０がコード群ＣＧを基にしてコードＣ’を出力するので、実施例１，２で説明したようなエンコーダによってコードを埋め込まれた場合であっても適切にデコードすることができる。また、画像の大小に関わらず効率よくデコードを実行することができる。
【実施例４】
【０１２０】
次に、本実施例４にかかるデコーダの概要および特徴について説明する。図１６は、本実施例４にかかるデコーダの概要および特徴を説明するための説明図である。同図に示すように、本実施例４にかかるデコーダは、画像コード化データＩ３の大きさに基づいて、デコードする範囲（以下、単にデコード範囲と表記する）を算出し、算出したデコード範囲によってデコードを実行する。
【０１２１】
例えば、通常の画像（分割したブロック（ｔ四方のブロック）と埋め込みブロックとの大きさが等しい画像）では、デコード範囲はｔ／４四方となり、大きい画像（分割したブロック（ｎｔ四方；ｎは正の数）が埋め込みブロックよりも大きい画像）では、デコード範囲はｔ／２ｎとなる。
【０１２２】
このように、本実施例４にかかるデコーダは、画像コード化データＩ３の大きさに基づいて、デコード範囲を算出し、算出したデコード範囲によってデコードを実行するので、エンコードされた画素を最大限に利用することができ、デコードの精度を向上させることができる。
【０１２３】
次に、本実施例４にかかるデコーダの構成について説明する。図１７は、本実施例４にかかるデコーダの構成を示す機能ブロック図である。同図に示すように、このデコーダ４００は、画像切出部４１０と、ブロック分割部４２０と、ブロック抽出部４３０と、平均化部４４０と、レジスタ４５０ｌ，４５０ｒと、比較部４６０と、デコード部４７０とを備えて構成される。
【０１２４】
なお、画像切出部４１０、ブロック分割部４２０、平均化部４４０、レジスタ４５０ｌ，４５０ｒ、比較部４６０、デコード部４７０に関する説明は、図１４に示した画像切出部３１０、ブロック分割部３２０、平均化部３４０、レジスタ３５０ｌ，３５０ｒ、比較部３６０、デコード部３７０に関する説明と同様であるため説明を省略する。
【０１２５】
ブロック抽出部４３０は、ブロック分割画像データからペアブロック（２つのブロック）をビットシフトに追従させて順次抽出し、ペアブロックを構成する各ブロックのデコード範囲における濃度分布をブロック濃度データとして順次出力する処理部である。
【０１２６】
なお、ブロック抽出部４３０は、ブロック分割部４２０から取得するブロック分割画像データにおけるブロックのサイズに基づいて、デコード範囲を算出する。例えば、通常画像の２倍の大きさの画像まで対応する場合、ブロックの大きさがｔ四方であれば、デコード範囲はｔ／４四方となる。また、通常画像のｎ倍（ｎは正の数）の大きさの画像まで対応する場合、デコード範囲はｔ／２ｎとなる。
【０１２７】
なお、ここでは一例として、ブロック抽出部４３０は、ブロック分割画像データにおけるブロックサイズに基づいてデコード範囲を算出したが、これに限定されるものではない。例えば、上述した実施例１または２にかかるエンコーダから埋め込みブロックサイズのデータを取得している場合には、かかる埋め込みブロックサイズを基にして、デコード範囲を算出することができる。例えば、ブロック抽出部４３０は、埋め込みブロックのサイズがｓ四方である場合には、デコード範囲をｓ／４とする。
【０１２８】
なお、デコーダ３００の各構成要素は、図示しない制御部を介して相互に接続されているものとする。
【０１２９】
次に、本実施例４にかかるデコーダ４００の処理手順について説明する。図１８は、本実施例４にかかるデコーダ４００の処理手順を示すフローチャートである。同図に示すように、画像切出部４１０が画像コード化データＩ３を取得し（ステップＳ４０１）、初期化としてｎに１を設定する（ステップＳ４０２）。このｎは、デコード対象のコードのビットのポインタを表す。この場合、ｎ＝１は、コードの最左側のビットに対応している。
【０１３０】
続いて、画像切出部４１０は、画像コード化データＩ３の周囲に画像データ（例えば、余白部分）を含む場合、全体から、有効な画像コード化データＩ３を切り出し（ステップＳ４０３）、ブロック分割部４２０が画像コード化データＩ３を複数のブロックに分割し、ブロック分割画像データとしてブロック抽出部４３０に出力する（ステップＳ４０４）。
【０１３１】
そして、ブロック抽出部４３０は、ブロック分割画像データのブロックサイズに基づいてデコード範囲を算出し（ステップＳ４０５）、ブロック分割画像データから、ｎに対応するペアブロック（２つのブロック）を抽出した後、各ブロックにおけるデコード領域の濃度分布をブロック濃度データとして平均化部４４０に出力する（ステップＳ４０６）。
【０１３２】
平均化部４４０は、平均化処理により、ブロック濃度データから、一方のブロックに対応する左側平均濃度データと、他方のブロックに対応する右側平均濃度データとを求め（ステップＳ４０７）、左側平均濃度データをレジスタ４５０ｌに格納し、右側平均濃度データをレジスタ４５０ｒに格納する（ステップＳ４０８）。
【０１３３】
比較部４６０は、レジスタ４５０ｌおよびレジスタ４５０ｒに格納されている左側平均濃度データおよび右側平均濃度データの大小関係を比較することにより、ビット判定を行い、ビット判定結果（前述した関係式により「０」または「１」とビット判定される）をデコード部４７０に出力し（ステップＳ４０９）、ｎを１インクリメントする（ステップＳ４１０）。
【０１３４】
そして、ｎがｎｅｎｄ（＝１６）以下の場合には（ステップＳ４１１，Ｎｏ）、ステップＳ４０６に移行し、ｎがｎｅｎｄよりも大きい場合には、比較部４６０はブロック分割画像データにおける最終のペアブロックが否かを判定する（ステップＳ４１２）。
【０１３５】
ブロック分割画像データにおける最終のペアブロックである場合には（ステップＳ４１３，Ｙｅｓ）、デコード部４７０が比較部４６０から取得したコード群ＣＧを基にして、画像コード化データＩ３に埋め込まれたコードを確定し、確定したコードＣ’を出力する（ステップＳ４１４）。一方、ブロック分割画像データにおける最終のブロックペアでない場合には（ステップＳ４１３，Ｎｏ）、ｎに１を設定して（ステップＳ４１５）、ステップＳ４０６に移行する。
【０１３６】
このように、ブロック抽出部４３０が、デコード範囲を算出し、ブロック分割画像データからペアブロックを抽出した後、ペアブロックを構成する各ブロックのデコード範囲の濃度分布をブロック濃度データとして平均化部４４０に出力するので、画像コード化データＩ３に埋め込まれたコードをより正確にデコードすることができる。
【０１３７】
上述してきたように、本実施例４にかかるデコーダ４００は、ブロック抽出部４３０がデコード範囲を算出し、ブロック分割画像データのペアブロックを構成する各ブロックのデコード範囲における濃度分布をブロック濃度データとして順次出力し、平均化部４４０が左側平均濃度データおよび右側平均濃度データをレジスタ４５０ｌおよびレジスタ４５０ｒに格納し、比較部４６０がレジスタ４５０ｌおよびレジスタ４５０ｒに格納されたデータを基にしてコード群ＣＧを生成し、デコード部４７０がコード群ＣＧを基にしてコードＣ’を出力するので、エンコードされた画素を最大限に利用することができ、デコードの精度を向上させることができる。
【０１３８】
なお、本実施例１〜４では、画像の平均濃度を特徴量として画像データにコードを埋め込む場合について説明したがこれに限定されるものではなく、粒状度、彩度、濃度重心または分散などを特徴量として画像データに対するコードの埋め込みを実行してもよい。
【０１３９】
また、本実施例１〜４に示した特徴量の埋め込みの大きさは、人間の目の特性で決まる。そのため、パンフレットや、雑誌でが、画面から目までの距離は２０ｃｍ程度であるが、ポスターなどでは距離が遠くなるので埋め込みの大きさはより大きくなる。このため、埋め込みサイズの値は一定の値に限定されるものではない（本実施例１では、埋め込みの大きさを０．８ｍｍ四方としているがこれに限定されない）。
【０１４０】
また、ブロック分割画像データ上のブロックにおける特徴量を変化させる位置は、ブロック内であればどこでもよく、様々な位置に分散させてもよい。このように、特徴量を変化される位置を分散させることで、より画像劣化の影響を低減させることができる。
【０１４１】
ところで、上記実施例１〜４で説明したエンコーダ１００，２００、デコーダ３００，４００の処理は、あらかじめ用意されたプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図１９を用いて、各種処理を実現するプログラムを実行するコンピュータの一例について説明する。
【０１４２】
図１９は、図２、図１１、図１４、図１７に示したエンコーダ１００，２００、デコーダ３００，４００を構成するコンピュータのハードウェア構成を示す図である。このコンピュータは、ユーザからのデータの入力を受け付ける入力装置３０、モニタ３１、ＲＡＭ（Random  Access  Memory）３２、ＲＯＭ（Read  Only  Memory）３３、各種プログラムを記録した記録媒体からプログラムを読み取る媒体読取装置３４、ネットワークを介して他のコンピュータとの間でデータの授受をおこなうネットワークインターフェース３５、ＣＰＵ（Central  Processing  Unit）３６（あるいはＭＣＵ（Micro  Controller  Unit）、ＭＰＵ（Micro  Processing  Unit））、および、ＨＤＤ（Hard  Disk  Drive）３７をバス３８で接続して構成される。
【０１４３】
そして、コンピュータがエンコーダ１００，２００に対応する場合には、ＨＤＤ３７には、上述したエンコーダ１００，２００の機能と同様の機能を発揮する各種プログラム３７ｂが記憶されている。そして、ＣＰＵ３６が、各種プログラム３７ｂをＨＤＤ３７から読み出して実行することにより、上述したエンコーダ１００，２００の機能部の機能を実現する各種プロセス３６ａが起動される。この各種プロセス３６ａは、図２、図１１に示したブロック分割部１１０，２１０、ブロック抽出部１２０，２２０、平均化部１３０，２３０、レジスタ１４０ｌ，１４０ｒ，２４０ｌ，２４０ｒ、比較部１５０，２５０、埋め込みブロックサイズ判定部１６０，２６０、エンコード部１７０、２０に対応する。
【０１４４】
なお、コンピュータがデコーダ３００，４００に対応する場合には、ＨＤＤ３７には、上述したデコーダ３００，４００の機能と同様の機能を発揮する各種プログラム３７ｂが記憶されている。そして、ＣＰＵ３６が、各種プログラム３７ｂをＨＤＤ３７から読み出して実行することにより、上述したデコーダ３００，４００の機能部の機能を実現する各種プロセス３６ａが起動される。この各種プロセス３６ａは、図１４、図１７に示した画像切出部３１０，４１０、ブロック分割部３２０，４２０、ブロック抽出部３３０，４３０、平均化部３４０，４４０、レジスタ３５０ｌ，３５０ｒ，４５０ｌ，４５０ｒ、比較部３６０，４６０、デコード部３７０，４７０に対応する。
【０１４５】
また、ＨＤＤ３７には、上述したエンコーダ１００，２００、デコーダ３００，４００の記憶部に記憶されるデータ（例えば画像データ）に対応する各種データ３７ａが記憶される。ＣＰＵ３６は、各種データ３７ａをＨＤＤ３７に記憶するとともに、各種データ３７ａをＨＤＤ３７から読み出してＲＡＭ３２に格納し、ＲＡＭ３２に格納された各種データ３２ａに基づいてデータ処理を実行する。
【０１４６】
ところで、各種プログラム３７ｂは、必ずしも最初からＨＤＤ３７に記憶させておく必要はない。たとえば、コンピュータに挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、コンピュータの内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータに接続される「他のコンピュータ（またはサーバ）」などに各種プログラム３７ｂを記憶しておき、コンピュータがこれらから各種プログラム３７ｂを読み出して実行するようにしてもよい。
【０１４７】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施例にて実施されてもよいものである。
【０１４８】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。
【０１４９】
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１５０】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１５１】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１５２】
（付記１）画像に情報を埋め込む画像処理装置であって、
前記画像を複数のブロックに分割して当該ブロックの大きさを算出する分割処理手段と、
前記複数のブロックにおける各ペアブロック中で情報を埋め込む領域を示す埋め込みブロックの大きさを前記画像の大きさに基づいて算出する算出処理手段と、
前記各ペアブロックに含まれる特徴量の大小関係を操作し、前記埋め込みブロックの大きさに基づいて前記画像に対する情報の埋め込みを行う情報埋め込み手段と、
を備えたことを特徴とする画像処理装置。
【０１５３】
（付記２）前記特徴量は、平均濃度、粒状度、彩度、濃度重心または分散であることを特徴とする付記１に記載の画像処理装置。
【０１５４】
（付記３）前記情報埋め込み手段は、前記ブロックの大きさが前記埋め込みブロックの大きさ以下の場合に、エラーを出力することを特徴とする付記１または２に記載の画像処理装置。
【０１５５】
（付記４）前記情報埋め込み手段は、前記ブロックの大きさが前記埋め込みブロックの大きさ以下の場合に、前記埋め込みブロックの大きさを前記ブロックの大きさに設定して前記画像に対する情報の埋め込みを行うことを特徴とする付記１または２に記載の画像処理装置。
【０１５６】
（付記５）付記１〜４のいずれか一つの画像処理装置によって情報が埋め込まれた画像が印刷された印刷物。
【０１５７】
（付記６）画像に埋め込まれた情報を抽出する画像処理装置であって、
前記画像を複数のブロックに分割する分割手段と、
前記画像の大きさに基づいて、特徴量の抽出領域の大きさを算出する抽出領域算出と、  前記抽出領域の大きさに基づいて前記ブロックから前記特徴量を抽出し、前記ブロックにおける各ペアブロックに含まれる領域の特徴量の大小関係に基づいて前記画像に埋め込まれた情報を抽出する抽出手段と、
を備えたことを特徴とする画像処理装置。
【０１５８】
（付記７）前記特徴量は、平均濃度、粒状度、彩度、濃度重心または分散であることを特徴とする付記６に記載の画像処理装置。
【０１５９】
（付記８）前記抽出手段は、前記各ペアブロックの中央部から前記特徴量を抽出し、抽出した特徴量の大小関係に基づいて前記画像に埋め込まれた情報を抽出することを特徴とする付記６または７に記載の画像処理装置。
【０１６０】
（付記９）画像に情報を埋め込む画像処理プログラムであって、
前記画像を複数のブロックに分割して当該ブロックの大きさを算出する分割処理手順と、
前記複数のブロックにおける各ペアブロック中で情報を埋め込む領域を示す埋め込みブロックの大きさを前記画像の大きさに基づいて算出する算出処理手順と、
前記各ペアブロックに含まれる特徴量の大小関係を操作し、前記埋め込みブロックの大きさに基づいて前記画像に対する情報の埋め込みを行う情報埋め込み手順と、
をコンピュータに実行させることを特徴とする画像処理プログラム。
【０１６１】
（付記１０）前記特徴量は、平均濃度、粒状度、彩度、濃度重心または分散であることを特徴とする付記９に記載の画像処理プログラム。
【０１６２】
（付記１１）前記情報埋め込み手順は、前記ブロックの大きさが前記埋め込みブロックの大きさ以下の場合に、エラーを出力することを特徴とする請求項９または１０に記載の画像処理プログラム。
【０１６３】
（付記１２）前記情報埋め込み手順は、前記ブロックの大きさが前記埋め込みブロックの大きさ以下の場合に、前記埋め込みブロックの大きさを前記ブロックの大きさに設定して前記画像に対する情報の埋め込みを行うことを特徴とする付記９または１０に記載の画像処理プログラム。
【０１６４】
（付記１３）付記９〜１２のいずれか一つの画像処理プログラムによって情報が埋め込まれた画像が印刷された印刷物。
【０１６５】
（付記１４）画像に埋め込まれた情報を抽出する画像処理プログラムであって、
前記画像を複数のブロックに分割する分割手順と、
前記画像の大きさに基づいて、特徴量の抽出領域の大きさを算出する抽出領域手順と、
前記抽出領域の大きさに基づいて前記ブロックから前記特徴量を抽出し、前記ブロックにおける各ペアブロックに含まれる領域の特徴量の大小関係に基づいて前記画像に埋め込まれた情報を抽出する抽出手順と、
をコンピュータに実行させることを特徴とする画像処理プログラム。
【０１６６】
（付記１５）前記特徴量は、平均濃度、粒状度、彩度、濃度重心または分散であることを特徴とする付記１４に記載の画像処理プログラム。
【０１６７】
（付記１６）前記抽出手順は、前記各ペアブロックの中央部から前記特徴量を抽出し、抽出した特徴量の大小関係に基づいて前記画像に埋め込まれた情報を抽出することを特徴とする付記１４または１５に記載の画像処理プログラム。
【０１６８】
（付記１７）画像に情報を埋め込む画像処理方法であって、
前記画像を複数のブロックに分割して当該ブロックの大きさを算出する分割処理工程と、
前記複数のブロックにおける各ペアブロック中で情報を埋め込む領域を示す埋め込みブロックの大きさを前記画像の大きさに基づいて算出する算出処理工程と、
前記各ペアブロックに含まれる特徴量の大小関係を操作し、前記埋め込みブロックの大きさに基づいて前記画像に対する情報の埋め込みを行う情報埋め込み工程と、
を含んだことを特徴とする画像処理方法。
【０１６９】
（付記１８）画像に埋め込まれた情報を抽出する画像処理方法であって、
前記画像を複数のブロックに分割する分割工程と、
前記画像の大きさに基づいて、特徴量の抽出領域の大きさを算出する抽出領域工程と、
前記抽出領域の大きさに基づいて前記ブロックから前記特徴量を抽出し、前記ブロックにおける各ペアブロックに含まれる領域の特徴量の大小関係に基づいて前記画像に埋め込まれた情報を抽出する抽出工程と、
を含んだことを特徴とする画像処理方法。
【産業上の利用可能性】
【０１７０】
以上のように、本発明にかかる画像処理装置、印刷物および画像処理プログラムは、画像データに情報を埋め込むシステムなどに有用であり、特に、画像データのサイズの大小によらず一定の画質を保ったまま画像に情報を埋め込む場合に適している。
【図面の簡単な説明】
【０１７１】
【図１】本実施例１にかかるエンコーダの概要および特徴を説明するための説明図である。
【図２】本実施例１にかかるエンコーダの構成を示す機能ブロック図である。
【図３】原画像データの一例を示す図である。
【図４】ブロック分割画像データの一例を示す図である。
【図５】原画像データに埋め込まれるコードＣの一例を示す図である。
【図６】エンコード部の処理を説明するための図である。
【図７】画像コード化データの一例を示す図である。
【図８】本実施例１にかかるエンコーダの処理手順を示すフローチャートである。
【図９】濃度変更処理を補足するための図である。
【図１０】本実施例２にかかるエンコーダの概要および特徴を説明するための説明図である。
【図１１】本実施例２にかかるエンコーダの構成を示す機能ブロック図である。
【図１２】本実施例２にかかるエンコーダの処理手順を示すフローチャートである。
【図１３】本実施例３にかかるデコーダの概要および特徴を説明するための説明図である。
【図１４】本実施例３にかかるデコーダの構成を示す機能ブロック図である。
【図１５】本実施例３にかかるデコーダの処理手順を示すフローチャートである。
【図１６】本実施例４にかかるデコーダの概要および特徴を説明するための説明図である。
【図１７】本実施例４にかかるデコーダの構成を示す機能ブロック図である。
【図１８】本実施例４にかかるデコーダの処理手順を示すフローチャートである。
【図１９】図２、図１１、図１４、図１７に示したエンコーダ、デコーダを構成するコンピュータのハードウェア構成を示す図である。
【図２０】各画像サイズにおける階調移動量と画質との関係を示す図である。
【符号の説明】
【０１７２】
３０    入力装置
３１    モニタ
３２    ＲＡＭ
３２ａ，３７ａ  各種データ
３３    ＲＯＭ
３４    媒体読取装置
３５    ネットワークインターフェース
３６    ＣＰＵ
３６ａ  各種プロセス
３７    ＨＤＤ
３７ｂ  各種プログラム
１００，２００    エンコーダ
１１０，２１０，３２０    ブロック分割部
１２０，２２０，３３０    ブロック抽出部
１３０，２３０，３４０    平均化部
１４０ｌ，１４０ｒ，２４０ｌ，２４０ｒ，３５０ｌ，３５０ｒ    レジスタ
１５０，２５０，３６０    比較部
１６０，２６０    埋め込みブロックサイズ判定部
１７０，２７０    エンコード部
３００，４００    デコーダ
３１０    画像切出部
３７０    デコード部
【図１】
2008172723.tif 000003
【図２】
2008172723.tif 000004
【図３】
2008172723.tif 000005
【図４】
2008172723.tif 000006
【図５】
2008172723.tif 000007
【図６】
2008172723.tif 000008
【図７】
2008172723.tif 000009
【図８】
2008172723.tif 000010
【図９】
2008172723.tif 000011
【図１０】
2008172723.tif 000012
【図１１】
2008172723.tif 000013
【図１２】
2008172723.tif 000014
【図１３】
2008172723.tif 000015
【図１４】
2008172723.tif 000016
【図１５】
2008172723.tif 000017
【図１６】
2008172723.tif 000018
【図１７】
2008172723.tif 000019
【図１８】
2008172723.tif 000020
【図１９】
2008172723.tif 000021
【図２０】
2008172723.tif 000022