(57)【要約】【課題】画像データにコードを埋め込む画像処理において、埋め込まれるコードの情報量を増やす。【解決手段】画像処理装置は、画像データを複数のブロックに分割する分割部と、前記画像データにおいて、同数のペアブロックを有する複数のペアブロック群を作成する作成部と、第１のコードに基づいて、各ペアブロック群に対してそれぞれ対応するシフト量を割り当てる第１の割当て部と、各ペアブロック群に対して、それぞれ、第２のコードを対応するシフト量だけシフトさせることにより生成される埋め込みデータを割り当てる第２の割当て部と、各ペアブロック群において、対応する埋め込みデータに基づいて、各ペアブロックに属する２つのブロックの特徴量を調整する調整部、を有する。【選択図】図２
2011091594.tif 000002
【特許請求の範囲】
【請求項１】
画像データにコードを埋め込む画像処理装置であって、
画像データを複数のブロックに分割する分割部と、
各ブロックの特徴量を利用して前記画像データに第１のコードおよび第２のコードを埋め込むエンコード部、を備え、
前記エンコード部は、
前記画像データにおいて、同数のペアブロックを有する複数のペアブロック群を作成する作成部と、
前記第１のコードに基づいて、各ペアブロック群に対してそれぞれ対応するシフト量を割り当てる第１の割当て部と、
各ペアブロック群に対して、それぞれ、前記第２のコードを対応するシフト量だけシフトさせることにより生成される埋め込みデータを割り当てる第２の割当て部と、
各ペアブロック群において、対応する埋め込みデータに基づいて、各ペアブロックに属する２つのブロックの特徴量を調整する調整部、を有する
ことを特徴とする画像処理装置。
【請求項２】
画像データに埋め込まれたコードを抽出する画像処理装置であって、
画像データを複数のブロックに分割する分割部と、
前記画像データから同数のペアブロックを有する複数のペアブロック群を抽出する抽出部と、
前記複数のブロックのそれぞれについて特徴量を算出する算出部と、
各ペアブロックについてブロック間の特徴量の大小関係に対応する値を再生することにより、各ペアブロック群からそれぞれ対応するコードを抽出するコード抽出部と、
各ペアブロック群に対応するシフト量に応じて、各ペアブロック群から抽出されるコードを補正して候補コードを生成する補正部と、
前記補正部により生成される複数の候補コードに基づいて、前記画像データに埋め込まれているコードを決定する決定部、
を有する画像処理装置。
【請求項３】
請求項２に記載の画像処理装置であって、
各ペアブロック群から抽出されるコードのシフト量を検出する検出部をさらに備え、
前記補正部は、前記検出部により検出されるシフト量に応じて、各ペアブロック群から抽出されるコードをそれぞれ補正する
ことを特徴とする画像処理装置。
【請求項４】
画像データにコードを埋め込む画像処理方法であって、
画像データを複数のブロックに分割し、
前記画像データにおいて同数のペアブロックを有する複数のペアブロック群を作成し、
第１のコードに基づいて、各ペアブロック群に対してそれぞれ対応するシフト量を割り当て、
各ペアブロック群に対して、それぞれ、第２のコードを対応するシフト量だけシフトさせることにより生成される埋め込みデータを割り当て、
各ペアブロック群において、対応する埋め込みデータに基づいて、各ペアブロックに属する２つのブロックの特徴量を調整する
ことを特徴とする画像処理方法。
【請求項５】
画像データに埋め込まれたコードを抽出する画像処理方法であって、
画像データを複数のブロックに分割し、
前記画像データから同数のペアブロックを有する複数のペアブロック群を抽出し、
前記複数のブロックのそれぞれについて特徴量を算出し、
各ペアブロックについてブロック間の特徴量の大小関係に対応する値を再生することにより、各ペアブロック群からそれぞれ対応するコードを抽出し、
各ペアブロック群に対応するシフト量に応じて、各ペアブロック群から抽出されるコードを補正して候補コードを生成し、
前記候補コードに基づいて、前記画像データに埋め込まれているコードを決定する
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、および画像処理プログラムに係わる。
【背景技術】
【０００２】
画像にデータを埋め込む技術の１つとしてステガノグラフィが知られている。ステガノグラフィは、データ隠蔽技術の１つであり、原画像に対してステガノグラフィでデータを埋め込むことによりデータ埋込み画像を生成することができる。この場合、原画像およびデータ埋込み画像の差異が視覚的に分からない或いは分かりにくいように、データを埋め込むことが可能である。
【０００３】
図１は、ステガノグラフィ技術の一例を説明する図である。図１に示すステガノグラフィを実現する画像データ処理装置は、ブロック分割部、平均化部、およびエンコード部を備える。ブロック分割部は、原画像データを複数のブロック（図１では、１６×１６）に分割する。平均化部は、各ブロックの特徴量（例えば、平均濃度）を抽出する。エンコード部は、水平方向に互いに隣接する２つのブロック（以下、ペアブロック）に対して１ビットのデータを割り当てる。このとき、ペアブロックに対して「０」を割り当てる場合には、例えば、右側ブロックの特徴量が左側ブロックの特徴量よりも大きくなるように、必要に応じて、これら２つのブロックの特徴量が調整される。同様に、ペアブロックに対して「１」を割り当てる場合には、例えば、右側ブロックの特徴量が左側ブロックの特徴量以下になるように、必要に応じて、これら２つのブロックの特徴量が調整される。
【０００４】
なお、図１に示す例では、原画像に対して１６桁のコード（１０１０１１０１０１００１０１０）が埋め込まれている。また、この例では、同じコードが画像内の異なる領域に繰り返し埋め込まれている。すなわち、埋め込みコード１〜８は、互いに同じデータである。
【０００５】
画像デコーダは、各ブロックの特徴量を検出し、各ペアブロックの特徴量を比較することにより、画像に埋め込まれているコードを認識する。図１に示す例では、複数の埋め込みコードが認識されるので、多数決処理を行うことにより認識性能の向上を図ることができる。
【０００６】
なお、図１に示す画像データ処理方法は、例えば、特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−３４９８７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述の画像データ処理方法においては、コードの桁数（または、コードの情報量）を増やすためには、画像をより多くのブロックに分割する必要がある。しかし、画像をより多くのブロックに分割すると、各ブロックのサイズが小さくなり、画像デコーダにおける認識精度が低下してしまう。
【０００９】
本発明の課題は、画像データにコードを埋め込む画像処理において、埋め込まれるコードの情報量を増やすことである。
【課題を解決するための手段】
【００１０】
本発明の１つの態様の画像処理装置は、画像データにコードを埋め込むために、画像データを複数のブロックに分割する分割部と、各ブロックの特徴量を利用して前記画像データに第１のコードおよび第２のコードを埋め込むエンコード部、を備える。前記エンコード部は、前記画像データにおいて、同数のペアブロックを有する複数のペアブロック群を作成する作成部と、前記第１のコードに基づいて、各ペアブロック群に対してそれぞれ対応するシフト量を割り当てる第１の割当て部と、各ペアブロック群に対して、それぞれ、前記第２のコードを対応するシフト量だけシフトさせることにより生成される埋め込みデータを割り当てる第２の割当て部と、各ペアブロック群において、対応する埋め込みデータに基づいて、各ペアブロックに属する２つのブロックの特徴量を調整する調整部、を有する。
【００１１】
本発明の他の態様の画像処理装置は、画像データに埋め込まれたコードを抽出するために、画像データを複数のブロックに分割する分割部と、前記画像データから同数のペアブロックを有する複数のペアブロック群を抽出する抽出部と、前記複数のブロックのそれぞれについて特徴量を算出する算出部と、各ペアブロックについてブロック間の特徴量の大小関係に対応する値を再生することにより、各ペアブロック群からそれぞれ対応するコードを抽出するコード抽出部と、各ペアブロック群に対応するシフト量に応じて、各ペアブロック群から抽出されるコードを補正して候補コードを生成する補正部と、前記補正部により生成される複数の候補コードに基づいて、前記画像データに埋め込まれているコードを決定する決定部、を有する。
【発明の効果】
【００１２】
本出願において開示される構成または方法によれば、画像データにコードを埋め込む画像処理において、埋め込まれるコードの情報量が大きくなる。
【図面の簡単な説明】
【００１３】
【図１】ステガノグラフィ技術の一例を説明する図である。
【図２】実施形態の画像コード化装置の構成を示す図である。
【図３】画像データの分割の実施例である。
【図４】ペアブロック群について説明する図である。
【図５】各ペアブロック群に埋め込みデータを割り当てる方法を説明する図である。
【図６】実施形態の画像コード化方法を示すフローチャートである。
【図７】特徴量調整部の動作を示すフローチャートである。
【図８】実施形態の画像コード復号装置の構成を示す図である。
【図９】コード抽出部の動作を説明する図である。
【図１０】シフト補正部の動作を説明する図である。
【図１１】コード決定部の動作を説明する図である。
【図１２】図２に示す画像コード化装置および図８に示す画像コード復号装置を備える画像処理システムの使用例を示す図である。
【図１３】他の実施形態の画像コード復号装置の構成を示す図である。
【図１４】シフト量検出部の動作を説明する図である。
【図１５】図２に示す画像コード化装置および図１３に示す画像コード復号装置を備える画像処理システムの使用例を示す図である。
【図１６】画像処理装置（画像コード化装置および画像コード復号装置）のハードウェア構成を示す図である。
【発明を実施するための形態】
【００１４】
実施形態の画像処理は、原画像にデータを埋め込む画像コード化処理、およびデータが埋め込まれた画像からそのデータを抽出する画像コード復号処理に係わる。以下の説明では、画像に埋め込まれるデータを「コード」と呼ぶことがある。また、コードが埋め込まれた画像データを「コード埋込み画像データ」または「画像コード化データ」と呼ぶことがある。
【００１５】
＜画像コード化処理＞
図２は、実施形態の画像コード化装置の構成を示す図である。画像コード化装置１は、ブロック分割部２、特徴量算出部３、エンコード部４を備え、原画像データにコード（または、コードデータ）を埋め込むことによりコード埋込み画像データ（または、画像コード化データ）を生成する。すなわち、画像コード化装置１は、原画像にコードを埋め込む画像処理装置である。
【００１６】
画像コード化装置１に入力される原画像データは、所定のフォーマットで生成された画像データである。原画像データのフォーマットは、特に限定されるものではないが、例えば、ＪＰＥＧ（Joint Photographic Expert Group）、ＧＩＦ（Graphics Interchange Format）である。また、原画像データのサイズは、特に限定されるものではないが、この例では、１０２４×１０２４画素データである。なお、原画像データは、例えば、デジタルカメラ（または、電子カメラ）により生成される。或いは、原画像データは、スキャナを用いて紙面上の印刷されている画像を読み込むことにより生成されてもよい。
【００１７】
ブロック分割部２は、図３に示すように、原画像データを複数のブロックに分割する。すなわち、原画像データは、Ｍ行×Ｎ列に分割される。ここで、Ｍ、Ｎは、互いに同じであってもよいし、互いに異なっていてもよい。この例では、原画像データは、１６行×１６列（１６×１６ブロック）に分割される。これにより、原画像データは２５６個のブロックに分割される。この場合、第１行目には、１６個のブロックＢ(L,1,1)、Ｂ(R,1,1)、Ｂ(L,2,1)、Ｂ(R,2,1)、．．．、Ｂ(L,8,1)、Ｂ(R,8,1)が生成される。同様に、第２行目には、ブロックＢ(L,1,2)、Ｂ(R,1,2)、．．．、Ｂ(L,8,2)、Ｂ(R,8,2)が生成され、第１６行目には、ブロックＢ(L,1,16)、Ｂ(R,1,16)、．．．、Ｂ(L,8,16)、Ｂ(R,8,16)が生成される。この例では、各ブロックのサイズは、６４×６４画素である。なお、記号「Ｌ」および「Ｒ」は、それぞれ「左（Left）」および「右（Right）」を意味する。
【００１８】
ここで、実施形態の画像コード化方法では、水平方向に互いに隣接する２つのブロックを利用して、１ビットのデータが画像データに埋め込まれる。よって、以下では、水平方向に互いに隣接する２つのブロックを「ペアブロック」と呼ぶことにする。図３に示す例では、ペアブロックＰＢ(1,1)は、ブロックＢ(L,1,1)、Ｂ(R,1,1)により構成され、ペアブロックＰＢ(2,1)は、ブロックＢ(L,2,1)、Ｂ(R,2,1)により構成されている。すなわち、画像データの各行に８個のペアブロックが生成される。
【００１９】
特徴量算出部３は、各ブロックの特徴量を算出する。特徴量算出部３により算出される特徴量は、この例では、各ブロックの平均濃度（すなわち、ブロック内の各画素の階調レベルの平均値）である。
【００２０】
エンコード部４は、複数のブロックに分割された原画像データにコードデータを埋め込むことにより、コード埋込み画像データを生成する。原画像データに埋め込まれるコードデータは、コード１およびコード２から構成される。コード１は、２８桁（２８ビット）であり、この例では「００１００００００００１１０００００００１０１００１００（１６進数表記では、２０１８０ａ４）」であるものとする。また、コード２は、１６桁（または、１６ビット）であり、この例では「１０１０１１０１０１００１０１０」であるものとする。
【００２１】
エンコード部４は、原画像データにコードデータ（コード１＋コード２）を埋め込むために、ペアブロック群作成部１１、シフト量割り当て部１２、埋め込みデータ割当て部１３、特徴量調整部１４を備える。そして、エンコード部４には、原画像データが入力されると共に、その原画像データに埋め込まれるコードデータが与えられる。
【００２２】
ペアブロック群作成部１１は、同数のペアブロックを有する複数のペアブロック群を作成する。この例では、それぞれが１６個のペアブロックを有するペアブロック群１〜８が作成される。図４に示す例では、ペアブロック群１には、１行目に位置する８個のペアブロック（ＰＢ(1,1)〜ＰＢ(8,1)）、および２行目に位置する８個のペアブロック（ＰＢ(1,2)〜ＰＢ(8,2)）が属する。また、ペアブロック群２には、３行目に位置する８個のペアブロック（ＰＢ(1,3)〜ＰＢ(8,3)）、および４行目に位置する８個のペアブロック（ＰＢ(1,4)〜ＰＢ(8,4)）が属する。以下同様に、ペアブロック群３〜８に対しても、それぞれ１６個のペアブロックが属する。なお、ペアブロック群の作成は、例えば、各ペアブロック（または、各ペアブロックに属する２つのブロック）がそれぞれどのペアブロック群に属するのかを定義することにより実現される。
【００２３】
シフト量割り当て部１２は、コード１に基づいて、各ペアブロック群に対してそれぞれ対応するシフト量を割り当てる。すなわち、シフト量割り当て部１２は、まず、２８ビットのデータ列を４ビット毎に分解する。これにより、コード１は、下記の７つの４ビットデータに分解される。
「００１０（＝２）」
「００００（＝０）」
「０００１（＝１）」
「１０００（＝８）」
「００００（＝０）」
「１０１０（＝１０）」
「０１００（＝４）」
【００２４】
続いて、シフト量割り当て部１２は、ペアブロック群２〜８に対して、それぞれ、シフト量として上記４ビットデータを割り当てる。なお、ペアブロック群１には、シフト量として「０」が割り当てられる。この結果、ペアブロック群１〜８に対して、それぞれ、下記のようにシフト量が割り当てられる。
ペアブロック群１：０
ペアブロック群２：２
ペアブロック群３：０
ペアブロック群４：１
ペアブロック群５：８
ペアブロック群６：０
ペアブロック群７：１０
ペアブロック群８：４
【００２５】
埋め込みデータ割当て部１３は、ペアブロック群１〜８に対して、それぞれ対応する埋め込みデータ１〜８を割り当てる。埋め込みデータ１〜８は、それぞれ、シフト量割り当て部１２によりペアブロック群１〜８に割り当てられたシフト量に応じてコード２をシフトさせることにより生成される。
【００２６】
例えば、埋め込みデータ１は、以下のように生成される。すなわち、コード２は、上述したように「１０１０１１０１０１００１０１０」である。また、シフト量割り当て部１２によりペアブロック群１に対して「０」が割り当てられている。この場合、埋め込みデータ割当て部１３は、コード２のデータ列を保持する（０ビットだけシフトさせる）。よって、埋め込みデータ１は、コード２と同じであり、「１０１０１１０１０１００１０１０」である。
【００２７】
ペアブロック群２に対しては、シフト量割り当て部１２により「２」が割り当てられている。この場合、埋め込みデータ割当て部１３は、コード２のデータ列の開始位置を２ビットだけシフトさせる。このとき、コード２のデータ列の各ビットは、サイクリックにシフトされる。すなわち、コード２の第１、２、３、．．．、１４、１５、１６ビットが、それぞれ埋め込みデータ２の第３、４、５、．．．、１６、１、２ビットに移動する。したがって、埋め込みデータ２は、「１０１０１０１１０１０１００１０」である。
【００２８】
同様の方法により、ペアブロック群３〜８に対して割り当てられる埋め込みデータ３〜８が生成される。コード割り当て部１３により生成された埋め込みデータ１〜８を図５に示す。なお、図５において、○印が付されているビットは、コード２の先頭ビットに相当する。
【００２９】
このように、各ペアブロック群１〜８に対して、それぞれ埋め込みデータ１〜８が割り当てられる。したがって、各ペアブロック（ＰＢ(1,1)〜ＰＢ(8,16)）に対して、それぞれ「０」または「１」が割り当てられることになる。
【００３０】
特徴量調整部１４は、各ペアブロック群１〜８において、対応する埋め込みデータ１〜８に基づいて各ペアブロックを構成する２つのブロックの特徴量を調整することにより、原画像データにコードを埋め込む。ここで、特徴量調整部１４は、１つのペアブロックを利用して１ビットのデータを埋め込むことができる。例えば、図３において、ペアブロックＰＢ(1,1)を利用して１ビットのデータが埋め込まれ、ペアブロックＰＢ(2,1)を利用して別の１ビットのデータが埋め込まれる。
【００３１】
１つのペアブロックに１ビットのデータを埋め込むためには、そのペアブロックを構成する２つのブロックの特徴量（この例では、平均濃度）が調整される。この例では、各ブロックの特徴量は、与えられたデータに応じて下記のように調整される。
データ＝０：Ｄ(L)＜Ｄ(R)
データ＝１：Ｄ(L)≧Ｄ(R)
なお、Ｄ(L)は、ペアブロックを構成する２つのブロックのうちの左側のブロックの平均濃度を表す。また、Ｄ(R)は、ペアブロックを構成する２つのブロックのうちの右側のブロックの平均濃度を表す。
【００３２】
たとえば、ペアブロックＰＢ(1,1)に対して「１」が割り当てられると、エンコード部４は、特徴量算出部３による算出結果を参照する。このとき、ブロックＢ(L,1,1)の特徴量がブロックＢ(R,1,1)の特徴量よりも小さければ、エンコード部４は、ブロックＢ(L,1,1)の特徴量がブロックＢ(R,1,1)の特徴量以上になるように、ブロックＢ(L,1,1)、Ｂ(R,1,1)の少なくとも一方の特徴量を調整する。一方、ブロックＢ(L,1,1)の特徴量がブロックＢ(R,1,1)の特徴量以上であれば、エンコード部４は、ブロックＢ(L,1,1)、Ｂ(R,1,1)の特徴量をそのまま保持する。なお、本特許出願においては、特徴量を保持する処理は、特徴量を調整する処理に含まれるものとする。
【００３３】
ペアブロックＰＢ(1,1)に対して「０」が割り当てられたときは、エンコード部４は、下記の処理を行う。すなわち、ブロックＢ(L,1,1)の特徴量がブロックＢ(R,1,1)の特徴量よりも小さければ、エンコード部４は、ブロックＢ(L,1,1)、Ｂ(R,1,1)の特徴量をそのまま保持する。一方、ブロックＢ(L,1,1)の特徴量がブロックＢ(R,1,1)の特徴量以上であれば、エンコード部４は、ブロックＢ(L,1,1)の特徴量がブロックＢ(R,1,1)の特徴量よりも小さくなるように、ブロックＢ(L,1,1)、Ｂ(L,1,1)の少なくとも一方の特徴量を調整する。
【００３４】
このように、エンコーダ部４は、１つのペアブロックを利用して１ビットのデータを埋め込む。したがって、原画像データに埋め込みデータ１〜８を埋め込むためには、それぞれ１６個のペアブロックが使用される。すなわち、実施形態の画像コード化方法では、ペアブロック群１〜８に対してそれぞれ埋め込みデータ１〜８が割り当てられ、それらの埋め込みデータ１〜８が画像データに埋め込まれる。
【００３５】
図６は、実施形態の画像コード化方法を示すフローチャートである。なお、この実施形態では、画像コード化装置１に原画像データおよびコードデータ（コード１＋コード２）が与えられるものとする。
【００３６】
ステップＳ１において、ブロック分割部２は、原画像データを複数のブロックに分割する。例えば、１６×１６ブロックが生成される。ステップＳ２において、特徴量算出部３は、各ブロックの特徴量を算出する。例えば、各ブロックの平均濃度が算出される。ステップＳ３において、ペアブロック群作成部１１は、複数のペアブロックを作成する。例えば、ペアブロック群１〜８が作成される。
【００３７】
ステップＳ４において、エンコード部４は、各ペアブロック群に対してコード２を割り当てる。ステップＳ５において、シフト量割り当て部１２は、各ペアブロック群に対して対応するシフト量を割り当てる。各ペアブロック群に対して割り当てられるシフト量は、コード１に基づいて決定される。ステップＳ６において、埋め込みデータ割り当て部１３は、各ペアブロックに対してそれぞれ対応する埋め込みデータを割り当てる。各ペアブロックに割り当てられる埋め込みデータは、それぞれ対応するシフト量だけコード２をシフトさせることにより生成される。これにより、各ペアブロック群の各ペアブロックに対して、それぞれ１ビットのデータが割り当てられる。そして、ステップＳ７において、特徴量調整部１４は、各ペアブロックにおいて、割り当てられた１ビットデータに従って各ブロックの特徴量を調整する。
【００３８】
図７は、特徴量調整部１４の動作を示すフローチャートである。なお、各ブロックの平均濃度は、特徴量算出部３により算出されて画像コード化装置１が備えるメモリ領域に格納されているものとする。
【００３９】
ステップＳ１１では、変数ｉが初期化される。変数ｉは、ペアブロック群１〜８および埋め込みデータ１〜８を識別する。ステップＳ１２〜Ｓ２０は、ペアブロック群ｉに対して実行されるデータ埋め込み処理に相当する。すなわち、ステップＳ１２〜Ｓ２０は、ペアブロック群１〜８のそれぞれに対して実行される。
【００４０】
ステップＳ１２では、埋め込みデータｉが設定される。ステップＳ１３では、変数ｎが初期化される。変数ｎは、ペアブロック群ｉの中のペアブロックを識別する。ステップＳ１４では、ペアブロック群ｉの中のｎ番目のペアブロックの濃度データが取得される。すなわち、ｎ番目のペアブロックに属する２つのブロックの平均濃度が取得される。ステップＳ１５では、上記２つのブロックの平均濃度を比較することにより、ビット判定が行われる。この例では、「Ｄ(L)＜Ｄ(R)」であれば「０」と判定され、「Ｄ(L)≧Ｄ(R)」であれば「１」と判定される。なお、Ｄ(L)は、ペアブロックを構成する２つのブロックのうちの左側のブロックの平均濃度を表す。また、Ｄ(R)は、ペアブロックを構成する２つのブロックのうちの右側のブロックの平均濃度を表す。
【００４１】
ステップＳ１６では、埋め込みデータｉのｎ番目のビットが、ステップＳ１５の判定結果に一致しているかチェックする。ｎ番目のビットが判定結果に一致していれば（ステップＳ１６：Ｙｅｓ）、対象ペアブロック（すなわち、ペアブロック群ｉのｎ番目のペアブロック）に属する２つのブロックの濃度を保持する。一方、ｎ番目のビットが判定結果に一致していなければ（ステップＳ１６：Ｎｏ）、ステップＳ１７において、上記２つのブロックの平均濃度の差が、予め決められている上限閾値と比較される。そして、平均濃度の差が上限閾値以下であれば、ステップＳ１８において、濃度変更処理が実行される。
【００４２】
濃度変更処理において、対象ペアブロックに「０」を埋め込む場合（「Ｄ(L)＜Ｄ(R)」を実現する場合）、下記の処理が実行される。
Ｄ’(L)＝（Ｄ(L)＋Ｄ(R)）／２−ΔＤ
Ｄ’(R)＝（Ｄ(L)＋Ｄ(R)）／２＋ΔＤ
また、対象ペアブロックに「１」を埋め込む場合（「Ｄ(L)≧Ｄ(R)」を実現する場合）、下記の処理が実行される。
Ｄ’(L)＝（Ｄ(L)＋Ｄ(R)）/２＋ΔＤ
Ｄ’(R)＝（Ｄ(L)＋Ｄ(R)）／２−ΔＤ
Ｄ’(L)は、濃度変更後の左側のブロックの平均濃度を表し、Ｄ’(R)は、濃度変更後の右側のブロックの平均濃度を表す。ΔＤは、予め決められた定数であり、正の値である。ここで、ΔＤを大きくすれば、後述する画像コード復号処理におけるコード認識精度が高くなるが、ΔＤを大きくし過ぎると画質が劣化する。反対に、ΔＤを小さくすると、画質の劣化が抑えられるが、ΔＤを小さくし過ぎるとコード認識精度が低下する。よって、ΔＤは、認識精度および画質の双方を考慮して適切に決定することが好ましい。なお、対象ブロックの平均濃度を変更する処理は、例えば、対象ブロックに属する各画素の濃度をそれぞれ同じレベルだけ高くまたは低くする処理により実現される。
【００４３】
平均濃度差が上限閾値を越えていたときは（ステップＳ１７：Ｎｏ）、ステップＳ１８はスキップされる。ここで、例えば、Ｄ(L)＜Ｄ(R)であり、その濃度差が上限閾値を越えているものとする。そして「Ｄ(L)≧Ｄ(R)」を実現するために、Ｄ(L)またはＤ(R)の少なくとも一方を変更するものとする。しかし、このケースでは、Ｄ’(L)とＤ(L)との差異が大きく、また、Ｄ’(R)とＤ(R)との差異も大きくなってしまう。すなわち、コード埋め込み後の対象ペアブロックの画像は、原画像とは大きく異なってしまう。したがって、平均濃度差が上限閾値を越えていたときは、画質の劣化を抑えるために、ステップS１８はスキップされる。
【００４４】
ステップＳ１９では、変数ｎがインクリメントされる。ステップＳ２０では、変数ｎが上限値ｎendを越えたか否かがチェックされる。上限値ｎendは、図４に示す例では、１６である。変数ｎが上限値ｎendを越えていれば、ステップＳ２１が実行される。一方、変数ｎが上限値ｎend以下であれば、ステップＳ１４に戻って次のペアブロックについて同様の処理を繰り返す。なお、ペアブロック群ｉに属する各ペアブロックに対してステップＳ１２〜Ｓ２０を実行することにより、ペアブロック群ｉに対応するコード埋め込み画像データが生成される。
【００４５】
ステップＳ２１では、すべてのペアブロック群についてステップＳ１２〜Ｓ２０の処理が実行されたかがチェックされる。処理が実行されていないペアブロック群が残っている場合には、ステップＳ２２において、変数ｉがインクリメントされる。この後、次にペアブロック群に対してステップＳ１２〜Ｓ２０が実行される。一方、すべてのペアブロック群について処理が終了していれば、ステップＳ２３において、生成されたコード埋め込み画像データが出力される。
【００４６】
このように、実施形態の画像コード化装置は、画像データにコード１およびコード２を埋め込む。このとき、コード１は、コード２に対するシフト量として画像データに埋め込まれる。したがって、実施形態の画像コード化方法によれば、画像に埋め込むコードの桁数を増やすことができる。また、コードの桁数を増やすために各ブロックのサイズを小さくする必要がないので、画像デコーダにおける認識精度が低下することはない。
【００４７】
なお、シフト量の組合せは「（各ペアブロック群に属するブロック数）の（ペアブロック群の数−１）乗」であり、上述の例では「１６の７乗」である。すなわち、「１６の７乗」に相当する桁数だけ、画像に埋め込むコードの情報量を増やすことができる。
【００４８】
また、すべてのペアブロック群１〜８のシフト量をゼロに設定すれば、図１を参照しながら説明した方法と同様の形式のコード埋め込み画像データが生成される。この場合、デコーダは、各ペアブロック群１〜８のシフト量を考慮することなく、画像データからコードを抽出することができる。すなわち、各ペアブロック群１〜８のシフト量を考慮する機能を備えないデコーダに対しては、すべてのペアブロック群１〜８のシフト量をゼロに設定すればよい。反対に、上記機能を備えないデコーダにおいて埋め込みコードの認識を禁止する場合には、各ペアブロック群１〜８に対して適切なシフト量を与えればよい。
【００４９】
＜画像コード復号処理＞
図８は、実施形態の画像コード復号装置の構成を示す図である。画像コード復号装置２０は、ブロック分割部２１、ペアブロック群抽出部２２、特徴量算出部２３、コード抽出部２４、シフト補正部２５、コード決定部２６を備え、入力画像データからコードを抽出する機能を備える。すなわち、画像コード復号装置２０は、入力画像からその画像に埋め込まれているコードを抽出する画像処理装置である。なお、画像コード復号装置２０に入力される画像データは、例えば、図２〜図７を参照しながら説明した画像コード化装置１により生成されるコード埋め込み画像データである。
【００５０】
ブロック分割部２１は、入力画像データを複数のブロックに分割する。このとき、ブロック分割部２１は、画像コード化装置１が備えるブロック分割部２と同じ分割処理を実行する。したがって、この例では、入力画像データは、１６×１６ブロックに分割される。
【００５１】
ペアブロック群抽出部２２は、複数のブロックに分割された画像データから、同数のペアブロックを有する複数のペアブロック群を抽出する。このとき、ペアブロック群抽出部２２は、画像コード化装置１が備えるペアブロック群作成部１１により作成された各ペアブロック群を抽出する。したがって、画像コード化装置１により生成されるコード埋め込み画像データが画像コード復号装置２０に入力されると、ペアブロック群抽出部２２は、図４に示すペアブロック群１〜８を抽出する。
【００５２】
特徴量算出部２３は、ブロック分割部２１により得られる各ブロックの特徴量を算出する。このとき、特徴量算出部２３の動作は、画像コード化装置１が備える特徴量算出部３と同じである。したがって、この例では、特徴量算出部２３は、入力画像データの各ブロックの平均濃度を算出する。
【００５３】
コード抽出部２４は、各ペアブロックについてブロック間の特徴量の大小関係に対応する値を再生することにより、各ペアブロック群からそれぞれ対応するコードを抽出する。すなわち、コード抽出部２４は、各ペアブロックについて、左側のブロックの平均濃度Ｄ(L)と右側のブロックの平均濃度Ｄ(R)とを比較する。この例では、「Ｄ(L)＜Ｄ(R)」であれば「０」が再生され、「Ｄ(L)≧Ｄ(R)」であれば「１」が再生される。
【００５４】
図９は、コード抽出部２４の動作を説明する図である。図９（ａ）では、入力画像データの各ブロックの平均濃度が示されている。ここで、コード抽出部２４は、ペアブロックＰＢ(1,1)に属する２つのブロックＢ(L,1,1)、Ｂ(R,1,1)の平均濃度を比較する。この例では、ブロックＢ(L,1,1)の平均濃度がＢ(R,1,1)よりも高いので、ペアブロックＰＢ(1,1)についての判定結果は、図９（ｂ）に示すように「１」である。続いて、コード抽出部２４は、ペアブロックＰＢ(2,1)に属する２つのブロックＢ(L,2,1)、Ｂ(R,2,1)の平均濃度を比較する。この例では、ブロックＢ(R,2,1)の平均濃度がＢ(L,2,1)よりも高いので、ペアブロックＰＢ(2,1)についての判定結果は「０」である。同様に、コード抽出部２４は、各ペアブロックに属する２つのブロックの平均濃度を比較し、各ペアブロックに埋め込まれている値を再生する。
【００５５】
コード抽出部２４は、各ペアブロック群１〜８において、各ペアブロックに埋め込まれている値を再生することにより、各ペアブロック群１〜８に対応するコードを抽出する。以下、これらのコードを、抽出コード１〜８と呼ぶことがある。
【００５６】
図１０（ａ）は、コード抽出部２４により抽出された抽出コード１〜８の一例を示す図である。ここでは、画像コード化装置１により画像データに埋め込まれた埋め込みデータ１〜８が、誤認識または誤検出されることなく、正しく抽出されたものとする。
【００５７】
シフト補正部２５は、ペアブロック群１〜８に対してそれぞれ与えられるシフト量に応じて、抽出コード１〜８をそれぞれ補正して候補コード１〜８を生成する。ここで、シフト補正部２５に与えられるシフト量は、例えば、画像コード化装置１のシフト量割り当て部１２において割り当てられる値と同じである。この場合、各ペアブロック群１〜８（すなわち、抽出コード１〜８）に対して与えられるシフト量は、以下の通りである。
ペアブロック群１（抽出コード１）：０
ペアブロック群２（抽出コード２）：２
ペアブロック群３（抽出コード３）：０
ペアブロック群４（抽出コード４）：１
ペアブロック群５（抽出コード５）：８
ペアブロック群６（抽出コード６）：０
ペアブロック群７（抽出コード７）：１０
ペアブロック群８（抽出コード８）：４
【００５８】
図１０（ｂ）は、与えられたシフト量に応じて抽出コード１〜８を補正することにより生成された候補コード１〜８を示している。例えば、ペアブロック群１に対しては、シフト量として「０」が与えられている。この場合、シフト補正部２５は、抽出コード１のデータ列を保持する（０ビットだけシフトさせる）。よって、候補コード１は「１０１０１１０１０１００１０１０」である。
【００５９】
ペアブロック群２に対しては、シフト量として「２」が与えられている。この場合、シフト補正部２５は、抽出コード２のデータ列の開始位置を２ビットだけシフトさせる。このとき、抽出コード２のデータ列の各ビットは、サイクリックにシフトされる。このように、シフト補正部１５は、画像コード化装置１の埋め込みデータ割当て部１３と類似の動作を行う。ただし、シフト補正部２５によるシフトの方向は、埋め込みデータ割当て部１３によるシフトの方向と逆である。すなわち、シフト補正部２５は、埋め込みデータ割当て部１３によりシフト処理を元に戻す補正を行う。この結果、シフト補正部２５で行われるシフト補正により、抽出コード２の第３、４、５、．．．、１６、１、２ビットが、それぞれ第１、２、３、．．．、１４、１５、１６ビットに移動する。したがって、候補コード２は「１０１０１１０１０１００１０１０」である。同様の方法により、ペアブロック群３〜８において、抽出コード３〜８が補正されて候補コード３〜８が生成される。
【００６０】
コード決定部２６は、シフト補正部２５により得られる候補コード１〜８に基づいて、画像データに埋め込まれているコードを決定する。このとき、コード決定部２６は、多数決法でコードを決定する。
【００６１】
図１１は、コード決定部２６の動作を説明する図である。多数決法では、候補コード１〜８の各ビット（または、各桁）において、最も発生頻度の高い値が選択される。たとえば、図１１（ａ）に示す例では、候補コード１〜８の第１ビットは、全て「１」である。この場合、多数決判定の結果は「１」である。また、候補コード１〜８の第２ビットは、すべて「０」である。この場合、多数決判定の結果は「０」である。以下同様に、第３〜第１６ビットについての多数決判定が行われ、入力画像データから抽出したコードが決定される。
【００６２】
この例では、コード決定部２６により「１０１０１１０１０１００１０１０」が得られている。このデータ列は、画像コード化装置１において画像データに埋め込まれたコード２に相当する。すなわち、画像コード復号装置２０は、画像コード化装置１において画像データに埋め込まれたコード２を抽出することができる。
【００６３】
なお、ペアブロックのブロック間で特徴量の差が小さいときは、コード抽出部２４による判定結果が正しくないことがある。また、図７に示す方法で画像データにコードが埋め込まれる場合、ステップＳ１７で「Ｎｏ」と判定された場合は、誤りビットが発生する。したがって、候補コード１〜８は、誤りビットを含むことがある。図１１（ｂ）に示す例では、候補コード３の第１ビットが誤っている。しかしながら、多数決法によれば、ビット誤りは吸収される。すなわち、図１１（ｂ）において、候補コード１〜８の第１ビットにおいて、「１」が７回発生し、「０」が１回発生している。この場合、多数決判定の結果は「１」であり、ビット誤りは吸収される。
【００６４】
このように、図８に示す画像コード復号装置２０によれば、与えられたシフト量を利用して、画像コード化装置１により画像データに埋め込まれたコード２を抽出する。このとき、このシフト量は、画像コード化装置１で使用されたコード１に相当する。よって、シフト量を表すコード１を変えることにより、用途に応じて（或いは、特定の画像コード復号装置に対して）選択的に、コード２により表される情報を伝えることが可能になる。例えば、特定の事象に対する固有の識別情報（日付、位置情報、電話番号、商品コード等）が画像データに埋め込まれる場合には、異なる用途に対して同じ情報が埋め込まれることがある。このような場合、上述した固有の識別情報がコード２として画像データに埋め込まれ、コード１により用途が表されるようにしてもよい。
【００６５】
図１２は、図２に示す画像コード化装置１および図８に示す画像コード復号装置２０を備える画像処理システムの使用例を示す図である。ここでは、２つの原画像データ（コンサート入場券、サイン会入場券）に対して同じコード（１２３４５６）が埋め込まれる。このコードは、例えば、コンサート入場券およびサイン会入場券を取得したユーザの会員ＩＤである。また、このコードは、この例では、誤り訂正コードを含んでいる。例えば、画像データに埋め込まれるコードが１６ビットである場合、特に限定されるものではないが、上位１０ビットがユーザＩＤであり、下位６ビットが誤り訂正コードである。なお、誤り訂正コードは、特に限定されるものではないが、例えば、リードソロモンコードまたはＢＣＨを採用してもよい。
【００６６】
画像コード化装置１は、コンサート入場券にコードを埋め込む際には、シフト量として「0x20180a4」を使用する。これにより、コード埋め込み画像データＡが生成される。また、画像コード化装置１は、サイン会入場券にコードを埋め込む際には、シフト量として「0x0000000」を使用する。これにより、コード埋め込み画像データＢが生成される。このとき、画像コード化装置１は、図６および図７に示す方法で画像データにコードを埋め込む。
【００６７】
コンサート会場には、画像コード復号装置２０Ａが設けられている。ここで、画像コード復号装置２０Ａには、コンサート入場券に埋め込まれているコードを抽出するために、シフト量情報「0x20180a4」が与えられている。そして、画像コード復号装置２０Ａは、画像データが入力されると、与えられたシフト量を利用してコードを抽出する。
【００６８】
コンサート会場において、ユーザが、コンサート入場券を提示するものとする。これにより、画像コード復号装置２０Ａにコード埋め込み画像データＡが入力される。そうすると、コード抽出部２４は複数のコード（抽出コード１〜８）を抽出し、シフト補正部２５は与えられたシフト量に応じて各コードを補正し、コード決定部２６は多数決法でコードを決定する。そして、画像コード復号装置２０Ａは、上述の方法で決定されたコードに対して誤り訂正処理を実行する。このとき、画像コード化装置１でコンサート入場券にコードを埋め込むために使用されたシフト量（0x20180a4）と、画像コード復号装置２０Ａに与えられたシフト量（0x20180a4）は互いに一致している。このため、誤り訂正手順において誤りは検出されず、コンサート入場券に埋め込まれたコードは正しく認識される。
【００６９】
コンサート会場において、ユーザが、誤ってサイン会入場券を提示すると、画像コード復号装置２０Ａには、コード埋め込み画像データＢが入力される。ところが、画像コード化装置１でサイン会入場券にコードを埋め込むために使用されたシフト量（0x0000000）と、画像コード復号装置２０Ａに与えられたシフト量（0x20180a4）とは互いに異なっている。このため、誤り訂正手順において誤りが検出され、サイン会入場券に埋め込まれたコードは認識することができない。
【００７０】
同様に、サイン会会場には、画像コード復号装置２０Ｂが設けられている。画像コード復号装置２０Ｂには、サイン会入場券に埋め込まれているコードを抽出するために、シフト量情報「0x0000000」が与えられている。この場合、画像コード復号装置２０Ｂは、サイン会入場券に埋め込まれたコードは正しく認識できるが、コンサート入場券に埋め込まれたコードは認識することができない。
【００７１】
図１３は、他の実施形態の画像コード復号装置の構成を示す図である。図１３に示す画像コード復号装置３０の構成は、基本的には、図８に示す画像コード復号装置２０と同じである。ただし、画像コード復号装置３０は、ブロック分割部２１、ペアブロック群抽出部２２、特徴量算出部２３、コード抽出部２４、シフト補正部２５、コード決定部２６に加えて、シフト量検出部２７を備える。シフト量検出部２７は、各ペアブロック群１〜８から抽出される抽出コード１〜８のシフト量を検出する。
【００７２】
図１４は、シフト量検出部２７の動作を説明する図である。ここでは、コード抽出部２４によって図１０（ａ）に示す抽出コード１〜８が得られているものとする。
シフト量検出部２７は、基準抽出コードとして、例えば、ペアブロック群１から抽出された抽出コード１を選択する。なお、この例では、ペアブロック群１には、画像コード化装置１において、シフト量として「０」が割り当てられている。そして、シフト量検出部２７は、他の抽出コード２〜８について、それぞれ抽出コード１に対するシフト量を検出する。
【００７３】
シフト量検出部２７は、抽出コード１、２間の相関を計算する。コード間の相関は、互いに一致するビットの個数をカウントすることにより得られる。この例では、抽出コード１、２間の相関は「１２」である。また、シフト量検出部２７は、抽出コード１と、データ列の各ビットを１ビットだけシフトした抽出コード２との間の相関を計算する。この場合、相関値は「２」である。以下同様に、抽出コード２のデータ列のシフト量を順番に増やしながら、それぞれ相関を計算する。この結果、抽出コード２のシフト量＝２、３、．．．、１５であるときに、抽出コード１との間の相関は、それぞれ「１６」「２」．．．「２」となる。
【００７４】
そして、シフト量検出部２７は、検出結果として、相関が最大となるときのシフト量を出力する。この例では、抽出コード２のシフト量として「２」が出力される。さらに、抽出コード３〜８についても、同様に、抽出コード１との間の相関を計算することにより、対応するシフト量が検出される。なお、抽出コード１に対応するシフト量は、この例では「０」である。
【００７５】
シフト量検出部２７により検出されたシフト量は、シフト補正部２５に与えられる。そうすると、シフト補正部２５は、図８に示す画像コード復号装置２０と同様に、各抽出コード１〜８を補正することにより候補コード１〜８を生成する。そして、コード決定部２６は、候補コード１〜８に基づいて、多数決法で、画像データに埋め込まれていたコードを決定する。
【００７６】
なお、上述の実施例では、シフト量検出部２７がシフト量を検出し、シフト補正部２５がそのシフト量に従って補正を行うが、実施形態の画像コード復号装置３０はこの構成に限定されるものではない。すなわち、シフト量検出部２７がシフト補正部２５の機能を備えていてもよい。例えば、図１４に示す例では、抽出コード１、２間の相関は、抽出コード２を２ビットだけシフトしたときに最大になる。この場合、シフト量検出部２７は、抽出コード２に対応するシフト量として「２」を出力すると共に、抽出コード２の補正結果として、抽出コード２を２ビットだけシフトすることで得られるデータ列を出力するようにしてもよい。なお、この構成であっても、画像コード復号装置３０は、「各ペアブロック群から抽出されるコードのシフト量を検出する検出部」および「各ペアブロック群に対応するシフト量に応じて、各ペアブロック群から抽出されるコードをそれぞれ補正して候補コードを生成する補正部」を備えている。
【００７７】
図１５は、図２に示す画像コード化装置１および図１３に示す画像コード復号装置３０を備える画像処理システムの使用例を示す図である。ここでは、原画像データに埋め込まれる情報（すなわち、コード）は、「３３６５２９００１２３４５６７８」である。そして、このコードは、「３３５６２９００（コード１）」および「１２３４５６７８（コード２）」に分割されて原画像データに埋め込まれる。なお、コード１は、「２０１８０ａ４（１６進数）」に変換され、各桁の値がシフト量としてペアブロック群２〜８に与えられる。一方、コード２は、１６ビットのコードデータに変換されて画像コード化装置１に与えられる。なお、画像コード化装置１は、上述の分割機能および変換機能を備えてもよい。
【００７８】
画像コード化装置１は、図６および図７に示す方法でコード１およびコード２を原画像データに埋め込むことにより、コード埋め込み画像データを生成する。このとき、コード１は、コード２をシフトさせるためのシフト量として使用される。
【００７９】
画像コード復号装置３０は、画像コード化装置１により生成されたコード埋め込み画像データが入力されると、まず、図１４を参照して説明した方法で、各ペアブロック群のシフト量を検出する。この例では、ペアブロック群２〜８のシフト量として「２０１８０ａ４（１６進数）」が検出される。続いて、画像コード復号装置３０は、検出したシフト量を利用して、画像データに埋め込まれているコード２を抽出する。この例では、「１２３４５６７８」が抽出される。さらに、画像コード復号装置３０は、抽出したコード２に対して誤り訂正手順を実行する。そして、この手順において誤りが検出されなければ、画像データから抽出したコード２が正しく認識されたと判断し、また、検出したシフト量からコード１を認識する。
【００８０】
このように、図１３に示す画像コード復号装置３０によれば、コード１およびコード２をそれぞれ認識することができる。すなわち、画像コード復号装置３０を使用する画像処理システムにおいては、コード１およびコード２として所望の情報を画像データに埋め込むことが可能になる。したがって、図１に示す方法と比較すると、ブロックサイズを小さくすることなく、画像データに埋め込むコードの情報量を増やすことができる。換言すれば、この実施形態の方法によれば、図１に示す方法と比較して、認識精度を下げることなく、画像データに埋め込む情報量が増大する。
【００８１】
＜他の実施形態＞
実施形態の画像処理方法では、各ブロックの特徴量を利用してエンコード／デコードが行われるが、ブロック全体の特徴量を利用してもよいし、ブロックの一部の領域の特徴量を利用してもよい。すなわち、例えば、各ブロックの中央領域の濃度の平均を利用してエンコード／デコードが行われてもよい。この方法によれば、ブロック全体の平均濃度を用いた場合と比べて、濃度変更処理にかかる処理量が少なくなる。
【００８２】
実施形態の方法において、カラー画像が処理される場合には、例えば、カラー画像を明度に変換したグレースケール画像（白黒画像）に対してコードを埋め込む方法、カラー画像における三原色（シアン、マゼンダ、イエロー）の色成分の中のいずれかの成分（例えば、黄色成分）にコードを埋め込む方法が考えられる。後者の方法によれば、コードを埋め込むために濃度を変更しても人間の目で見分けがつきにくいという利点がある。
【００８３】
また、上述の例では、画像（ブロック）の特徴量として平均濃度が使用されているが、実施形態の画像処理はこれに限定されるものではない。すなわち、特徴量は、例えば、粒状度、彩度、濃度重心、分散等であってもよい。さらに、特徴量（平均濃度、粒状度、彩度、濃度重心、分散等）を所定のルールに基づいて変換することで得られる他のパラメータを用いてエンコード／デコードが行われてもよい。
【００８４】
なお、本発明の実施形態は、図２〜図１５を参照しながら説明した構成および方法に限定されるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含む。また、本特許出願に記載の構成および手順は、互いに矛盾のない限りにおいて、任意に組み合わせて使用してもよい。
【００８５】
＜画像処理装置のハードウェア構成＞
図１６は、画像処理装置（画像コード化装置１および画像コード復号装置２０、３０）のハードウェア構成を示す図である。図１６において、ＣＰＵ１０１は、メモリ１０３を利用して画像処理プログラムを実行することにより、実施形態の画像処理方法を提供する。記憶装置１０２は、例えばハードディスクであり、画像処理プログラムを格納する。なお、記憶装置１０２は、外部記録装置であってもよい。メモリ１０３は、例えば半導体メモリであり、ＲＡＭ領域およびＲＯＭ領域を含んで構成される。
【００８６】
読み取り装置１０４は、ＣＰＵ１０１の指示に従って可搬型記録媒体１０５にアクセスする。可搬性記録媒体１０５は、例えば、半導体デバイス、磁気的作用により情報が入出力される媒体、光学的作用により情報が入出力される媒体を含むものとする。通信インタフェース１０６は、ＣＰＵ１０１の指示に従って、ネットワークを介してデータを送受信する。入出力装置１０７は、例えば、ユーザからの指示を受け付けるデバイス等に相当する。
【００８７】
実施形態に係わる画像処理プログラムは、例えば、下記の形態で提供される。
（１）記憶装置１０２に予めインストールされている。
（２）可搬型記録媒体１０５により提供される。
（３）プログラムサーバ１１０からダウンロードする。
【００８８】
そして、上記構成のコンピュータで画像処理プログラムを実行することにより、実施形態に係わる画像処理装置が実現される。すなわち、上記構成のコンピュータで画像処理プログラムを実行することにより、画像コード化装置１が備えるブロック分割部２、特徴量算出部３、エンコード部４（ペアブロック群作成部１１、シフト量割り当て部１２、埋め込みデータ割当て部１３、特徴量調整部１４）の一部または全部が実現される。また、画像処理プログラムを実行することにより、画像コード復号装置２０、３０が備えるブロック分割部２１、ペアブロック群抽出部２２、特徴量算出部２３、コード抽出部２４、シフト補正部２５、コード決定部２６、シフト量検出部２７の一部または全部が実現される。
【００８９】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
画像データにコードを埋め込む画像処理装置であって、
画像データを複数のブロックに分割する分割部と、
各ブロックの特徴量を利用して前記画像データに第１のコードおよび第２のコードを埋め込むエンコード部、を備え、
前記エンコード部は、
前記画像データにおいて、同数のペアブロックを有する複数のペアブロック群を作成する作成部と、
前記第１のコードに基づいて、各ペアブロック群に対してそれぞれ対応するシフト量を割り当てる第１の割当て部と、
各ペアブロック群に対して、それぞれ、前記第２のコードを対応するシフト量だけシフトさせることにより生成される埋め込みデータを割り当てる第２の割当て部と、
各ペアブロック群において、対応する埋め込みデータに基づいて、各ペアブロックに属する２つのブロックの特徴量を調整する調整部、を有する
ことを特徴とする画像処理装置。
（付記２）
付記１に記載の画像処理装置であって、
前記複数のブロックのそれぞれについて特徴量を算出する算出部をさらに備え、
前記調整部は、
ペアブロックに属する第１および第２のブロックの特徴量の大小関係が、対応する埋め込みデータの対応するビットにより表される関係に一致するときは、前記第１および第２のブロックの特徴量を維持し、
ペアブロックに属する第１および第２のブロックの特徴量の大小関係が、対応する埋め込みデータの対応するビットにより表される関係に一致しないときは、前記対応する埋め込みデータの対応するビットにより表される関係に一致するように、前記第１および第２のブロックの特徴量の少なくとも一方を調整する
ことを特徴とする画像処理装置。
（付記３）
画像データに埋め込まれたコードを抽出する画像処理装置であって、
画像データを複数のブロックに分割する分割部と、
前記画像データから同数のペアブロックを有する複数のペアブロック群を抽出する抽出部と、
前記複数のブロックのそれぞれについて特徴量を算出する算出部と、
各ペアブロックについてブロック間の特徴量の大小関係に対応する値を再生することにより、各ペアブロック群からそれぞれ対応するコードを抽出するコード抽出部と、
各ペアブロック群に対応するシフト量に応じて、各ペアブロック群から抽出されるコードを補正して候補コードを生成する補正部と、
前記補正部により生成される複数の候補コードに基づいて、前記画像データに埋め込まれているコードを決定する決定部、
を有する画像処理装置。
（付記４）
付記３に記載の画像処理装置であって、
各ペアブロック群から抽出されるコードのシフト量を検出する検出部をさらに備え、
前記補正部は、前記検出部により検出されるシフト量に応じて、各ペアブロック群から抽出されるコードをそれぞれ補正する
ことを特徴とする画像処理装置。
（付記５）
付記４に記載の画像処理装置であって、
前記検出部は、各ペアブロック群から抽出されるコード間の相関を利用して、前記シフト量を検出する
ことを特徴とする画像処理装置。
（付記６）
付記５に記載の画像処理装置であって、
前記検出部は、前記複数のペアブロック群の中の第１のペアブロック群から抽出されるコードに対して、前記複数のペアブロック群の中の第２のペアブロック群から抽出されるコードを１ビットずつシフトしてゆき、それら２つのコード間の相関が最大となるシフト量を検出する
ことを特徴とする画像処理装置。
（付記７）
画像データにコードを埋め込む画像処理方法であって、
画像データを複数のブロックに分割し、
前記画像データにおいて同数のペアブロックを有する複数のペアブロック群を作成し、
第１のコードに基づいて、各ペアブロック群に対してそれぞれ対応するシフト量を割り当て、
各ペアブロック群に対して、それぞれ、第２のコードを対応するシフト量だけシフトさせることにより生成される埋め込みデータを割り当て、
各ペアブロック群において、対応する埋め込みデータに基づいて、各ペアブロックに属する２つのブロックの特徴量を調整する
ことを特徴とする画像処理方法。
（付記８）
画像データに埋め込まれたコードを抽出する画像処理方法であって、
画像データを複数のブロックに分割し、
前記画像データから同数のペアブロックを有する複数のペアブロック群を抽出し、
前記複数のブロックのそれぞれについて特徴量を算出し、
各ペアブロックについてブロック間の特徴量の大小関係に対応する値を再生することにより、各ペアブロック群からそれぞれ対応するコードを抽出し、
各ペアブロック群に対応するシフト量に応じて、各ペアブロック群から抽出されるコードを補正して候補コードを生成し、
前記候補コードに基づいて、前記画像データに埋め込まれているコードを決定する
ことを特徴とする画像処理方法。
（付記９）
コンピュータに、
画像データを複数のブロックに分割するステップ、
前記画像データにおいて同数のペアブロックを有する複数のペアブロック群を作成するステップ、
第１のコードに基づいて、各ペアブロック群に対してそれぞれ対応するシフト量を割り当てるステップ、
各ペアブロック群に対して、それぞれ、第２のコードを対応するシフト量だけシフトさせることにより生成される埋め込みデータを割り当てるステップ、
各ペアブロック群において、対応する埋め込みデータに基づいて、各ペアブロックに属する２つのブロックの特徴量を調整するステップ
を実行させる画像処理プログラム。
（付記１０）
コンピュータに、
画像データを複数のブロックに分割するステップ、
前記画像データから同数のペアブロックを有する複数のペアブロック群を抽出するステップ、
前記複数のブロックのそれぞれについて特徴量を算出するステップ、
各ペアブロックについてブロック間の特徴量の大小関係に対応する値を再生することにより、各ペアブロック群からそれぞれ対応するコードを抽出するステップ、
各ペアブロック群に対応するシフト量に応じて、各ペアブロック群から抽出されるコードを補正して候補コードを生成するステップ、
前記候補コードに基づいて、前記画像データに埋め込まれているコードを決定するステップ
を実行させる画像処理プログラム。
【符号の説明】
【００９０】
１  画像コード化装置
２  ブロック分割部
３  特徴量算出部
４  エンコード部
１１  ペアブロック群作成部
１２  シフト量割り当て部
１３  埋め込みデータ割り当て部
１４  特徴量調整部
２０、３０  画像コード復号装置
２１  ブロック分割部
２２  ペアブロック群抽出部
２３  特徴量算出部
２４  コード抽出部
２５  シフト補正部
２６  コード決定部
２７  シフト量検出部
【図２】
2011091594.tif 000003
【図３】
2011091594.tif 000004
【図４】
2011091594.tif 000005
【図５】
2011091594.tif 000006
【図６】
2011091594.tif 000007
【図７】
2011091594.tif 000008
【図８】
2011091594.tif 000009
【図９】
2011091594.tif 000010
【図１０】
2011091594.tif 000011
【図１１】
2011091594.tif 000012
【図１２】
2011091594.tif 000013
【図１３】
2011091594.tif 000014
【図１４】
2011091594.tif 000015
【図１５】
2011091594.tif 000016
【図１６】
2011091594.tif 000017
【図１】
2011091594.tif 000018