(57)【要約】  【課題】  画質の劣化を防止しつつ、データ量の多い透かしデータを画像データに埋め込み、画像データに埋め込まれた透かしデータを適切に取り出すことが可能な画像処理装置、画像処理方法及びコンピュータプログラムを提供する。  【解決手段】  画像データ入力部１０から入力された画像データから抽出されたセル、透かしデータ入力部１１から入力された透かしデータ中の１ビットのデータ及びメモリアクセス回路１３が埋め込み順序記憶部１４から読み出した埋め込み順序データが透かしデータ埋め込み部１５へ入力される。透かしデータ埋め込み部１５は、入力された埋め込み順序データに従って、入力されたセル中に両画素のデータ値が異なる画素ペアを検出し、検出した画素ペアに埋め込むべき透かしデータのデータ値と、検出した画素ペアの両画素のそれぞれに予め設定された透かし情報とに基づいて、検出した画素ペアの２つの画素のデータ値を必要に応じて入れ替える。【選択図】      図１
2006165815.tif 000002
【特許請求の範囲】
【請求項１】
２値の画素データで構成される画像データが入力される画像データ入力部と、２値の透かしデータが入力される透かしデータ入力部とを備え、前記画像データ入力部から入力された画像データに前記透かしデータ入力部から入力された透かしデータを埋め込む画像処理装置において、
前記画像データから偶数の画素データで構成されるセルを抽出する抽出手段と、
該抽出手段が抽出したセル内にて予め設定された２画素毎の組み合わせのうちの、両画素のデータ値が異なる組み合わせを検出する検出手段と、
埋め込むべき透かしデータのデータ値が０であるか１であるかに応じて、前記検出手段が検出した組み合わせの一方の画素のデータ値を０に、他方の画素のデータ値を１に変更する変更手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記セル内にて予め設定された２画素毎の組み合わせ、各組み合わせへの透かしデータの埋め込み順序、及び各組み合わせの２画素のそれぞれに対して透かしデータのデータ値０又は１を割り当てる割り当て情報を示す埋め込み順序データを複数記憶する記憶手段と、
前記抽出手段が抽出したセル毎に、前記記憶手段に記憶してある埋め込み順序データを選択する選択手段とを備え、
前記検出手段は、前記選択手段が選択した埋め込み順序データが示す組み合わせ及び各組み合わせへの埋め込み順序に従って、前記抽出手段が抽出したセル内の各組み合わせが、両画素のデータ値が異なる組み合わせであるか否かを検出するように構成してあり、
前記変更手段は、前記選択手段が選択した埋め込み順序データが示す割り当て情報に従って、前記検出手段が検出した組み合わせの一方の画素のデータ値を０に、他方の画素のデータ値を１に変更するように構成してあることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記埋め込み順序データが入力される順序データ入力部を備え、
前記記憶手段は、前記順序データ入力部から入力された埋め込み順序データを記憶する構成としてあることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記セル毎に埋め込み順序データを指定する指定情報を受け付ける受付手段を備え、
前記選択手段は、前記受付手段が受け付けた指定情報に基づいて、前記抽出手段が抽出したセル毎に、前記記憶手段に記憶してある埋め込み順序データを選択するように構成してあることを特徴とする請求項２又は３に記載の画像処理装置。
【請求項５】
前記抽出手段が抽出したセル内にて予め設定された２画素毎の組み合わせのうちの、両画素のデータ値が共に１（又は０）である組み合わせを検出する隣接黒画素検出手段と、
前記セル内にて予め設定された２画素毎の組み合わせのうちの、両画素のデータ値が共に０（又は１）である組み合わせを検出する隣接白画素検出手段と、
前記隣接黒画素検出手段が検出した組み合わせの一方の画素のデータ値と、前記隣接白画素検出手段が検出した組み合わせの一方の画素のデータ値とを入れ替える入れ替え手段とを備え、
前記検出手段は、前記入れ替え手段が画素のデータ値を入れ替えたセル内の両画素のデータ値が異なる組み合わせを検出するように構成してあることを特徴とする請求項１乃至４のいずれかひとつに記載の画像処理装置。
【請求項６】
前記入れ替え手段は、
前記隣接白画素検出手段によって両画素のデータ値が共に０（又は１）である組み合わせが複数検出された場合、複数の組み合わせから１つを選択する手段を備え、
選択した組み合わせの一方の画素のデータ値と、前記隣接黒画素検出手段が検出した組み合わせの一方の画素のデータ値とを入れ替えるように構成してあることを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記入れ替え手段は、
前記隣接白画素検出手段によって両画素のデータ値が共に０（又は１）である組み合わせが複数検出された場合、検出された複数の組み合わせのそれぞれと前記隣接黒画素検出手段が検出した組み合わせとの距離を算出する手段と、
前記隣接白画素検出手段が検出した複数の組み合わせから、前記隣接黒画素検出手段が検出した組み合わせとの距離が最短である組み合わせを選択する手段とを備え、
選択した組み合わせの一方の画素のデータ値と、前記隣接黒画素検出手段が検出した組み合わせの一方の画素のデータ値とを入れ替えるように構成してあることを特徴とする請求項５に記載の画像処理装置。
【請求項８】
透かしデータが埋め込まれた埋め込み済み画像データが入力される埋め込み済みデータ入力部を備え、
前記抽出手段は、前記埋め込み済みデータ入力部から入力された埋め込み済み画像データからセルを抽出するように構成してあり、
前記検出手段は、前記抽出手段が埋め込み済み画像データから抽出したセル内の両画素のデータ値が異なる組み合わせを検出するように構成してあり、
前記検出手段が検出した組み合わせのうちの画素のデータ値が１（又は０）である画素の位置に応じて、０又は１の透かしデータを取り出す手段を更に備えることを特徴とする請求項１乃至７のいずれかひとつに記載の画像処理装置。
【請求項９】
２値の画素データで構成される画像データに２値の透かしデータを埋め込む画像処理方法において、
前記画像データから偶数の画素データで構成されるセルを抽出し、
抽出したセル内にて予め設定された２画素毎の組み合わせのうちの、両画素のデータ値が異なる組み合わせを検出し、
埋め込むべき透かしデータのデータ値が０であるか１であるかに応じて、検出した組み合わせの一方の画素のデータ値を０に、他方の画素のデータ値を１に変更することを特徴とする画像処理方法。
【請求項１０】
コンピュータに、２値の画素データで構成される画像データに２値の透かしデータを埋め込ませるためのコンピュータプログラムにおいて、
前記コンピュータに、前記画像データから偶数の画素データで構成されるセルを抽出させるステップと、
前記コンピュータに、抽出したセル内にて予め設定された２画素毎の組み合わせのうちの、両画素のデータ値が異なる組み合わせを検出させるステップと、
前記コンピュータに、埋め込むべき透かしデータのデータ値が０であるか１であるかに応じて、検出した組み合わせの一方の画素のデータ値を０に、他方の画素のデータ値を１に変更させるステップとを有することを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２値の画素データで構成される画像データに２値の透かしデータを埋め込む画像処理装置、画像処理方法、前記画像処理装置をコンピュータによって実現させるためのコンピュータプログラムに関する。
【背景技術】
【０００２】
画像データに対して電子透かし情報を埋め込むことは、著作権情報の保護及びセキュリティの向上のために重要な技術であり、画質の劣化を防止しつつ、多くの電子透かし情報を埋め込み、また、埋め込まれた電子透かし情報を適切に取り出すことができる画像処理装置が要望されている。
【０００３】
２値の画像データに対して２値の電子透かし情報を埋め込む方法としては、例えば、画像データ中の所定の矩形範囲を１つのセルとして、各セル内での画素の出現パターンを効率的に利用する方法がある（例えば、特許文献１参照）。また、画像データ中の画質への影響が少ないウィンドウパターン（セル内の画素の出現パターン）に対して、埋め込み情報の０及び１を定義することによって、画質の劣化を防止した電子透かし情報の埋め込み処理を行なうことができる（例えば、特許文献２参照）。
【特許文献１】特開２００１−３０９１５０号公報
【特許文献２】特開２０００−１１５５１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１で開示されている装置では、偏った位置に画素が配置されるセルに対しても電子透かし情報が埋め込まれるため、多くの電子透かし情報を埋め込むことができるが、セル内の画素データを適宜変更することによって電子透かし情報を埋め込むため、画質の劣化が生じ易いという問題がある。
【０００５】
一方、特許文献２で開示されている装置では、画質への影響が少ないウィンドウパターンに対して電子透かし情報を埋め込むため、画像全体の画質の劣化を抑制できる反面、１つのウィンドウパターンに埋め込むことができる電子透かし情報が１ビットであり、また、画質への影響が少ないウィンドウパターンが少ない画像データに対しては、埋め込み可能な電子透かし情報の情報量が少なくなるという問題がある。
【０００６】
本発明は斯かる事情に鑑みてなされたものであって、その目的とするところは、画像データ中の各セル内にて予め設定された２画素毎の各組み合わせにおいて、２画素のデータ値を必要に応じて入れ替えることによって透かしデータを埋め込むので、画質の劣化を防止しつつ、データ量の多い透かしデータを画像データに埋め込むことが可能な画像処理装置、画像処理方法及びコンピュータプログラムを提供することにある。
【０００７】
また、本発明の他の目的は、透かしデータを埋め込む画像データ中の各セルにおいて、両画素のデータ値が異なる組み合わせを増加させることにより、両画素のデータ値が異なる組み合わせのそれぞれに対して透かしデータが埋め込まれるので、画像データ全体に埋め込むことができる透かしデータのデータ量を増加させることが可能な画像処理装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明に係る画像処理装置は、２値の画素データで構成される画像データが入力される画像データ入力部と、２値の透かしデータが入力される透かしデータ入力部とを備え、前記画像データ入力部から入力された画像データに前記透かしデータ入力部から入力された透かしデータを埋め込む画像処理装置において、前記画像データから偶数の画素データで構成されるセルを抽出する抽出手段と、該抽出手段が抽出したセル内にて予め設定された２画素毎の組み合わせのうちの、両画素のデータ値が異なる組み合わせを検出する検出手段と、埋め込むべき透かしデータのデータ値が０であるか１であるかに応じて、前記検出手段が検出した組み合わせの一方の画素のデータ値を０に、他方の画素のデータ値を１に変更する変更手段とを備えることを特徴とする。
【０００９】
本発明によれば、２値の画素データで構成される画像データに２値の透かしデータを埋め込む画像処理装置が、前記画像データから偶数の画素データで構成されるセルを抽出し、抽出したセル内にて予め設定された２画素毎の組み合わせのうちの、両画素のデータ値が異なる組み合わせを検出し、埋め込むべき透かしデータのデータ値が０であるか１であるかに応じて、検出した組み合わせの一方の画素のデータ値を０に、他方の画素のデータ値を１に変更する。従って、各セル内にて予め設定された各組み合わせの２画素のデータ値を必要に応じて入れ替えることにより、各組み合わせに対して１ビットの透かしデータを埋め込むことが可能となる。また、セル内における各組み合わせを、隣接する２画素毎に設定することにより、各組み合わせの２画素のデータ値を入れ替えた場合であっても、人間の目には識別し難いので画質の劣化は感じられない。
【００１０】
本発明に係る画像処理装置は、前記セル内にて予め設定された２画素毎の組み合わせ、各組み合わせへの透かしデータの埋め込み順序、及び各組み合わせの２画素のそれぞれに対して透かしデータのデータ値０又は１を割り当てる割り当て情報を示す埋め込み順序データを複数記憶する記憶手段と、前記抽出手段が抽出したセル毎に、前記記憶手段に記憶してある埋め込み順序データを選択する選択手段とを備え、前記検出手段は、前記選択手段が選択した埋め込み順序データが示す組み合わせ及び各組み合わせへの埋め込み順序に従って、前記抽出手段が抽出したセル内の各組み合わせが、両画素のデータ値が異なる組み合わせであるか否かを検出するように構成してあり、前記変更手段は、前記選択手段が選択した埋め込み順序データが示す割り当て情報に従って、前記検出手段が検出した組み合わせの一方の画素のデータ値を０に、他方の画素のデータ値を１に変更するように構成してあることを特徴とする。
【００１１】
本発明によれば、前記セル内にて予め設定された２画素毎の組み合わせ、各組み合わせへの透かしデータの埋め込み順序、及び各組み合わせの２画素のそれぞれに対して透かしデータのデータ値０又は１を割り当てる割り当て情報を示す埋め込み順序データを複数記憶手段に記憶させておく。そして、画像データ中のセル毎に、前記記憶手段に記憶してある埋め込み順序データを選択し、選択した埋め込み順序データが示す組み合わせ及び埋め込み順序に従って、各セル内の各組み合わせが、両画素のデータ値が異なる組み合わせであるか否かを検出する。また、選択した埋め込み順序データが示す割り当て情報に従って、検出した組み合わせの一方の画素のデータ値を０に、他方の画素のデータ値を１に変更する。よって、上述したような埋め込み順序データを記憶しておけばよいので、記憶手段の記憶容量を削減することが可能となる。また、セル毎に埋め込み順序データを変更することによって、埋め込まれる透かしデータに対するセキュリティの向上を図ることも可能となる。
【００１２】
本発明に係る画像処理装置は、前記埋め込み順序データが入力される順序データ入力部を備え、前記記憶手段は、前記順序データ入力部から入力された埋め込み順序データを記憶する構成としてあることを特徴とする。
【００１３】
本発明によれば、前記記憶手段に記憶しておく埋め込み順序データを外部から入力することにより、セル内における各組み合わせ、及び各組み合わせへの透かしデータの埋め込み順序を任意に設定することが可能となる。
【００１４】
本発明に係る画像処理装置は、前記セル毎に埋め込み順序データを指定する指定情報を受け付ける受付手段を備え、前記選択手段は、前記受付手段が受け付けた指定情報に基づいて、前記抽出手段が抽出したセル毎に、前記記憶手段に記憶してある埋め込み順序データを選択するように構成してあることを特徴とする。
【００１５】
本発明によれば、セル毎に埋め込み順序データを指定する指定情報を受け付け、受け付けた指定情報に基づいて、セル毎に前記記憶手段に記憶してある埋め込み順序データを選択する。よって、セル毎に用いる埋め込み順序データをユーザが任意に選択することが可能であり、また、ユーザは前記指定情報を入力すればよく、入力された指定情報に基づいて順次選択される埋め込み順序データに従って透かしデータの埋め込み処理を行なうことが可能となる。
【００１６】
本発明に係る画像処理装置は、前記抽出手段が抽出したセル内にて予め設定された２画素毎の組み合わせのうちの、両画素のデータ値が共に１（又は０）である組み合わせを検出する隣接黒画素検出手段と、前記セル内にて予め設定された２画素毎の組み合わせのうちの、両画素のデータ値が共に０（又は１）である組み合わせを検出する隣接白画素検出手段と、前記隣接黒画素検出手段が検出した組み合わせの一方の画素のデータ値と、前記隣接白画素検出手段が検出した組み合わせの一方の画素のデータ値とを入れ替える入れ替え手段とを備え、前記検出手段は、前記入れ替え手段が画素のデータ値を入れ替えたセル内の両画素のデータ値が異なる組み合わせを検出するように構成してあることを特徴とする。
【００１７】
本発明によれば、画像データ中のセル内にて予め設定された２画素毎の組み合わせのうちの両画素のデータ値が共に１（又は０）である組み合わせを検出すると共に、前記セル内にて予め設定された２画素毎の組み合わせのうちの両画素のデータ値が共に０（又は１）である組み合わせを検出し、共に検出できた場合に、両画素のデータ値が共に１（又は０）である組み合わせの一方の画素のデータ値と、両画素のデータ値が共に０（又は１）である組み合わせの一方の画素のデータ値とを入れ替える。また、画素のデータ値を入れ替えたセル内において、両画素のデータ値が異なる組み合わせを検出し、検出した組み合わせに対して埋め込み順序データに従って一方の画素のデータ値を０に、他方の画素のデータ値を１にする。よって、透かしデータを埋め込む画像データ中の各セルにおいて、両画素のデータ値が異なる組み合わせを増加させ、埋め込み可能な透かしデータのデータ量を増加させることが可能となる。
【００１８】
本発明に係る画像処理装置は、前記入れ替え手段は、前記隣接白画素検出手段によって両画素のデータ値が共に０（又は１）である組み合わせが複数検出された場合、複数の組み合わせから１つを選択する手段を備え、選択した組み合わせの一方の画素のデータ値と、前記隣接黒画素検出手段が検出した組み合わせの一方の画素のデータ値とを入れ替えるように構成してあることを特徴とする。
【００１９】
本発明によれば、画像データ中のセル内にて両画素のデータ値が共に０（又は１）である組み合わせが複数検出された場合、複数の組み合わせのうちの１つを選択し、選択した組み合わせの一方の画素のデータ値と、両画素のデータ値が共に１（又は０）である組み合わせの一方の画素のデータ値とを入れ替えることにより、透かしデータを埋め込む画像データ中の各セルにおいて、両画素のデータ値が異なる組み合わせを増加させることが可能となる。
【００２０】
本発明に係る画像処理装置は、前記入れ替え手段は、前記隣接白画素検出手段によって両画素のデータ値が共に０（又は１）である組み合わせが複数検出された場合、検出された複数の組み合わせのそれぞれと前記隣接黒画素検出手段が検出した組み合わせとの距離を算出する手段と、前記隣接白画素検出手段が検出した複数の組み合わせから、前記隣接黒画素検出手段が検出した組み合わせとの距離が最短である組み合わせを選択する手段とを備え、選択した組み合わせの一方の画素のデータ値と、前記隣接黒画素検出手段が検出した組み合わせの一方の画素のデータ値とを入れ替えるように構成してあることを特徴とする。
【００２１】
本発明によれば、画像データ中のセル内にて両画素のデータ値が共に０（又は１）である組み合わせが複数検出された場合、検出された複数の組み合わせのそれぞれと、両画素のデータ値が共に１（又は０）である組み合わせとの距離を算出し、両画素のデータ値が共に０（又は１）である複数の組み合わせから、算出した距離が最短である組み合わせを選択し、選択した組み合わせの一方の画素のデータ値と、両画素のデータ値が共に１（又は０）である組み合わせの一方の画素のデータ値とを入れ替えることにより、画質の劣化をより防止しつつ、透かしデータを埋め込む画像データ中の各セルにおいて、両画素のデータ値が異なる組み合わせを増加させることが可能となる。
【００２２】
本発明に係る画像処理装置は、透かしデータが埋め込まれた埋め込み済み画像データが入力される埋め込み済みデータ入力部を備え、前記抽出手段は、前記埋め込み済みデータ入力部から入力された埋め込み済み画像データからセルを抽出するように構成してあり、前記検出手段は、前記抽出手段が埋め込み済み画像データから抽出したセル内の両画素のデータ値が異なる組み合わせを検出するように構成してあり、前記検出手段が検出した組み合わせのうちの画素のデータ値が１（又は０）である画素の位置に応じて、０又は１の透かしデータを取り出す手段を更に備えることを特徴とする。
【００２３】
本発明によれば、透かしデータが埋め込まれた埋め込み済み画像データが入力された場合、入力された埋め込み済み画像データからセルを抽出し、抽出したセル内において、両画素のデータ値が異なる組み合わせを検出し、検出した組み合わせのうちの画素のデータ値が１（又は０）である画素の位置に応じて、０又は１の透かしデータを取り出す。よって、上述したように画像データに埋め込まれた透かしデータを適切に取り出すことが可能となる。
【００２４】
本発明に係る画像処理方法は、２値の画素データで構成される画像データに２値の透かしデータを埋め込む画像処理方法において、前記画像データから偶数の画素データで構成されるセルを抽出し、抽出したセル内にて予め設定された２画素毎の組み合わせのうちの、両画素のデータ値が異なる組み合わせを検出し、埋め込むべき透かしデータのデータ値が０であるか１であるかに応じて、検出した組み合わせの一方の画素のデータ値を０に、他方の画素のデータ値を１に変更することを特徴とする。
【００２５】
本発明に係るコンピュータプログラムは、コンピュータに、２値の画素データで構成される画像データに２値の透かしデータを埋め込ませるためのコンピュータプログラムにおいて、前記コンピュータに、前記画像データから偶数の画素データで構成されるセルを抽出させるステップと、前記コンピュータに、抽出したセル内にて予め設定された２画素毎の組み合わせのうちの、両画素のデータ値が異なる組み合わせを検出させるステップと、前記コンピュータに、埋め込むべき透かしデータのデータ値が０であるか１であるかに応じて、検出した組み合わせの一方の画素のデータ値を０に、他方の画素のデータ値を１に変更させるステップとを有することを特徴とする。
【００２６】
本発明によれば、画像データの画質の劣化を防止しつつ、データ量の多い透かしデータを画像データに埋め込むことができる。また、コンピュータプログラムをコンピュータに読み取らせて実行させることにより、コンピュータに本発明の画像処理装置としての動作を実現させることが可能となる。
【発明の効果】
【００２７】
本発明では、２値の画素データで構成される画像データから偶数の画素データで構成されるセルを抽出し、抽出したセル内にて予め設定された２画素毎の組み合わせのうちの、両画素のデータ値が異なる組み合わせを検出する。また、埋め込むべき透かしデータのデータ値が０であるか１であるかに応じて、検出した組み合わせの一方の画素のデータ値を０に、他方の画素のデータ値を１に変更することにより、検出した各組み合わせに対して１ビットの透かしデータを埋め込むことができる。従って、各セル内に両画素のデータ値が異なる組み合わせが複数ある場合には、複数ビットの透かしデータの埋め込みが可能となり、画像データ全体に対する埋め込み可能な透かしデータのデータ量を増加させることができる。また、セル内における各組み合わせを、隣接する２画素毎に設定することにより、各組み合わせの２画素のデータ値を入れ替えた場合であっても、人間の目には識別し難いので画質の劣化は感じられない。
【００２８】
本発明では、前記セル内にて予め設定された２画素毎の組み合わせ、各組み合わせへの透かしデータの埋め込み順序、及び各組み合わせの２画素のそれぞれに対して透かしデータのデータ値０又は１を割り当てる割り当て情報を示す埋め込み順序データを複数記憶手段に記憶させておく。そして、画像データ中のセル毎に、前記記憶手段に記憶してある埋め込み順序データを選択し、選択した埋め込み順序データが示す組み合わせ及び埋め込み順序に従って、各セル内の各組み合わせが、両画素のデータ値が異なる組み合わせであるか否かを検出する。また、選択した埋め込み順序データが示す割り当て情報に従って、検出した組み合わせの一方の画素のデータ値を０に、他方の画素のデータ値を１に変更する。これにより、例えばセル内における画素の出現パターンを記憶しておく必要がなく、埋め込み順序データを記憶しておけばよいので、記憶手段の記憶容量を削減することができる。また、セル毎に埋め込み順序データを変更することによって、埋め込まれる透かしデータに対するセキュリティの向上を図ることもできる。
【００２９】
本発明では、前記記憶手段に記憶しておく埋め込み順序データを外部から入力することにより、セル内における各組み合わせ、及び各組み合わせへの透かしデータの埋め込み順序を任意に設定することができる。
【００３０】
本発明では、セル毎に埋め込み順序データを指定する指定情報を受け付け、受け付けた指定情報に基づいて、セル毎に前記記憶手段に記憶してある埋め込み順序データを選択し、選択された埋め込み順序データに従って透かしデータの埋め込み処理を行なう。よって、セル毎に用いる埋め込み順序データをユーザが任意に選択することができ、ユーザは前記指定情報を入力すればよく、操作性を向上させることができる。
【００３１】
本発明では、画像データ中のセル内にて予め設定された２画素毎の組み合わせのうちの両画素のデータ値が共に１（又は０）である組み合わせを検出すると共に、前記セル内にて予め設定された２画素毎の組み合わせのうちの両画素のデータ値が共に０（又は１）である組み合わせを検出する。そして、共に検出できた場合に、両画素のデータ値が共に１（又は０）である組み合わせの一方の画素のデータ値と、両画素のデータ値が共に０（又は１）である組み合わせの一方の画素のデータ値とを入れ替える。これにより、透かしデータを埋め込む画像データ中の各セルにおいて、両画素のデータ値が異なる組み合わせが少ない場合であっても、両画素のデータ値が共に１（又は０）である組み合わせの一方の画素のデータ値と、両画素のデータ値が共に０（又は１）である組み合わせの一方の画素のデータ値とを入れ替えることにより、両画素のデータ値が異なる組み合わせを増加させ、埋め込み可能な透かしデータのデータ量を増加させることができる。
【００３２】
本発明では、画像データ中のセル内にて両画素のデータ値が共に０（又は１）である組み合わせが複数検出された場合、複数の組み合わせのうちの１つを選択し、選択した組み合わせの一方の画素のデータ値と、両画素のデータ値が共に１（又は０）である組み合わせの一方の画素のデータ値とを入れ替える。これにより、透かしデータを埋め込む画像データ中の各セルにおいて、両画素のデータ値が異なる組み合わせを増加させ、埋め込み可能な透かしデータのデータ量を増加させることができる。
【００３３】
本発明では、画像データ中のセル内にて両画素のデータ値が共に０（又は１）である組み合わせが複数検出された場合、検出された複数の組み合わせのそれぞれと、両画素のデータ値が共に１（又は０）である組み合わせとの距離を算出し、両画素のデータ値が共に０（又は１）である複数の組み合わせから、算出した距離が最短である組み合わせを選択し、選択した組み合わせの一方の画素のデータ値と、両画素のデータ値が共に１（又は０）である組み合わせの一方の画素のデータ値とを入れ替える。これにより、画質の劣化をより防止しつつ、透かしデータを埋め込む画像データ中の各セルにおいて、両画素のデータ値が異なる組み合わせを増加させることができる。
【００３４】
本発明では、透かしデータが埋め込まれた埋め込み済み画像データが入力された場合、入力された埋め込み済み画像データからセルを抽出し、抽出したセル内において、両画素のデータ値が異なる組み合わせを検出し、検出した組み合わせのうちの画素のデータ値が１（又は０）である画素の位置に応じて、０又は１の透かしデータを取り出すことにより、上述したように画像データに埋め込まれた透かしデータを適切に取り出すことができる。
【００３５】
本発明では、画像データの画質の劣化を防止しつつ、データ量の多い透かしデータを画像データに埋め込むことができる。また、コンピュータプログラムをコンピュータに読み取らせて実行させることにより、コンピュータに上述したような画像処理装置としての動作を実現させることができる。
【発明を実施するための最良の形態】
【００３６】
以下に、本発明に係る画像処理装置をその実施形態を示す図面に基づいて具体的に説明する。なお、本発明に係るコンピュータプログラムをコンピュータに読み取らせて順次実行させることにより、本発明に係る画像処理装置の動作を実現するようにしてもよい。
【００３７】
（実施形態１）
図１は本発明に係る画像処理装置の内部構成例を示すブロック図である。本実施形態の画像処理装置１は、画像データ入力部１０、透かしデータ入力部１１、埋め込み順序指定部１２、メモリアクセス回路１３、埋め込み順序記憶部１４、透かしデータ埋め込み部１５、透かしデータ取り出し部１６、切換部１７、画像データ出力部１８、透かしデータ出力部１９等を備えており、それぞれは図示しないシステムバスを介して相互に接続されている。
【００３８】
また、システムバスには、ＣＰＵ（Central Processing Unit ）又はＭＰＵ（Micro Processor Unit）等により構成される制御部も接続されており、制御部は、上述したようなハードウェア各部を制御すると共に、自身に内蔵されたＲＯＭに予め格納してある制御プログラムに従って、本発明に係る画像処理装置としての動作を実行する。なお、図１中の矢符は各種データの流れを示している。
【００３９】
画像データ入力部１０は、２値の画素データで構成され、画像処理装置１によって透かしデータが埋め込まれる画像データが入力される入力部であり、また、既に透かしデータが埋め込まれた埋め込み済み画像データが入力される埋め込み済みデータ入力部である。従って、画像データ入力部１０は、取り込んだ画像データに透かしデータを埋め込む場合には透かしデータ埋め込み部１５へ転送し、取り込んだ画像データから透かしデータを取り出す場合には透かしデータ取り出し部１６へ転送する。なお、画像データ入力部１０は、これらの画像データを、外部のメモリから読み出して取り込んでもよいし、外部の装置から受信して取り込んでもよい。
【００４０】
図２は画像データ入力部１０から入力される画像データを示す模式図である。本実施形態の画像処理装置１は、図２に示すように２値の画像データに対して透かしデータを埋め込むこととする。また、画像データ入力部１０から入力される画像データは、４画素×４画素の１６画素で構成されるセル単位で１６階調を表示しており、各セル毎に透かしデータの埋め込み処理を実行する。なお、図２中に拡大して示すセルは、例えばハッチングを付した３画素のデータ値を１とした場合には３階調を有する。
【００４１】
透かしデータ入力部１１は、画像データ入力部１０から入力された画像データに対して埋め込まれるべき透かしデータを取り込む入力部であり、取り込んだ透かしデータを透かしデータ埋め込み部１５へ転送する。透かしデータは２値データである。
【００４２】
以下に、透かしデータ埋め込み部１５による透かしデータの埋め込み処理について説明する。本実施形態の画像処理装置１では、４画素×４画素からなるセル単位で、各セル内において予め設定された２画素毎の組み合わせをそれぞれ画素ペアとし、それぞれの画素ペアにおける２つの画素のデータ値が異なる場合に１ビットの透かしデータを埋め込むことができる。従って、例えば図３（ａ）に示すように、セル内で隣り合う２画素をそれぞれ画素ペアとして設定しておく。また、各画素ペアに対して埋め込まれた透かしデータのデータ値が０であるか１であるかを示すために、予め各画素ペアの一方の画素に対して透かし情報０を、他方の画素に対して透かし情報１を設定しておく。
【００４３】
図３（ａ）では、セル内の各画素の位置に０〜１５の画素位置番号を付してあり、画素位置が０,３，５，６，９，１０，１２，１５の画素が透かし情報０に設定されている。また、セル内の各画素ペアへの透かしデータの埋め込み順序を設定しておく必要があり、セル内に設定された各画素ペア、及び各画素ペアの各画素に対して透かし情報０又は１を割り当てる割り当て情報と共に、各画素ペアへの透かしデータの埋め込み順序を示す埋め込み順序データが予め埋め込み順序記憶部（記憶手段）１４に記憶されている。これにより、透かしデータ埋め込み部１５は、埋め込み順序指定部１２によって指定されてメモリアクセス回路１３によって埋め込み順序記憶部１４から読み出された埋め込み順序データに従って、透かしデータの埋め込み処理を行なうことができる。
【００４４】
具体的には、埋め込み順序データは、図３（ｂ）に示すように、セル内に設定された各画素ペア、各画素ペアにおいて設定された透かし情報０，１の画素位置、及びそれぞれの画素ペアへの透かしデータの埋め込み順序を示している。従って、図３に示すセルは、画素位置が０及び１、２及び３、４及び５、６及び７、８及び９、１０及び１１、１２及び１３、１４及び１５の各画素ペアにより構成されており、この順序が各画素ペアへの透かしデータの埋め込み順序を示している。
【００４５】
図４は、図３（ｂ）に示す埋め込み順序データに基づく透かしデータの埋め込み処理を説明するための模式図である。なお、ここでは３ビットの透かしデータ“０１０”を埋め込む場合の処理について説明する。透かしデータ埋め込み部１５は、まず、画像データ入力部１０から入力された画像データから４画素×４画素からなるセルを抽出する抽出手段として動作し、図４（ａ）に示すようなセルを取得する。図４（ａ）に示すセルは、画素位置が５，１０，１２の画素Ｇ１，Ｇ２，Ｇ３のデータ値が１であり、その他の画素のデータ値が０である。次に透かしデータ埋め込み部１５は、図３（ｂ）に示す埋め込み順序データに従った場合、図４（ｂ）に示す方向及び順序で各画素ペアについて両画素のデータ値が異なる画素ペアを検出する検出手段として動作する。
【００４６】
透かしデータ埋め込み部１５は、図４（ａ）に示すセルにおいて、画素位置が４及び５の画素ペアが、両画素のデータ値が異なる画素ペアであることを検出する。そして、この画素ペアのうちのデータ値が１である画素Ｇ１の画素位置５が、図３（ｂ）に示す埋め込み順序データにおいて透かし情報０に設定されており、更に、この画素ペアに埋め込むべき透かしデータの１ビットは透かしデータ“０１０”の最初のデータ値“０”であるので、画素Ｇ１のデータ値をそのままとする。
【００４７】
次に、透かしデータ埋め込み部１５は、画素位置が１０及び１１の画素ペアが、両画素のデータ値が異なる画素ペアであることを検出し、この画素ペアのうちのデータ値が１である画素Ｇ２の画素位置１０が、図３（ｂ）に示す埋め込み順序データにおいて透かし情報０に設定されており、この画素ペアに埋め込むべき透かしデータの１ビットは透かしデータ“０１０”の２番目のデータ値“１”であるので、画素Ｇ２のデータ値を０とし、画素位置１１の画素のデータ値を１とする。即ち、透かしデータ埋め込み部１５は、画素位置１０の画素Ｇ２のデータ値と画素位置１１の画素Ｇ２´のデータ値とを変更する変更手段として動作する。
【００４８】
更に、透かしデータ埋め込み部１５は、画素位置が１２及び１３の画素ペアが、両画素のデータ値が異なる画素ペアであることを検出し、この画素ペアのうちのデータ値が１である画素Ｇ３の画素位置１２が、図３（ｂ）に示す埋め込み順序データにおいて透かし情報０に設定されており、この画素ペアに埋め込むべき透かしデータの１ビットは透かしデータ“０１０”の３番目のデータ値“０”であるので、画素Ｇ３のデータ値をそのままとする。これにより、図４（ａ）に示すセルに、透かしデータ“０１０”を埋め込んだ場合、図４（ｃ）に示すような画素データとなる。
【００４９】
従って、図４（ａ）に示すように、両画素のデータ値が異なる画素ペアが３つあるセルについては、３ビットの透かしデータを埋め込むことができる。また、このように隣り合う２画素をそれぞれ画素ペアとすることにより、隣り合う２画素のデータ値を入れ替える変更は、人間の目には識別し難いので画質の劣化は感じられない。透かしデータ埋め込み部１５は、透かしデータの全ビットに対して、上述した埋め込み処理を実行し、生成した埋め込み済みの画像データを切換部１７を介して画像データ出力部１８から出力させる。
【００５０】
なお、図４（ａ）に示すセルには両画素のデータ値が異なる画素ペアが３つあるので、３ビットの透かしデータ“０１０”を埋め込むことができたが、それぞれのセルに埋め込むことができる透かしデータのデータ量は、両画素のデータ値が異なる画素ペアの数に一致するので３ビットには限られない。各セルは１６画素により構成されているため、両画素のデータ値が異なる画素ペアは最大８つ構成することができ、１つのセルに最大８ビットの透かしデータを埋め込むことができる。
【００５１】
一方、透かしデータ取り出し部１６は、埋め込み順序指定部１２によって指定されてメモリアクセス回路１３によって埋め込み順序記憶部１４から読み出された埋め込み順序データに従って、画像データ入力部１０から入力された埋め込み済み画像データ中の透かしデータの取り出し処理を行なう。具体的には、図４（ｃ）に示すセルを有する画像データが画像データ入力部１０から入力された場合、透かしデータ取り出し部１６は、図４（ｂ）に示す方向及び順序で各画素ペアについて両画素のデータ値が異なる画素ペアを検出する。
【００５２】
透かしデータ取り出し部１６は、画素位置が４及び５の画素ペアが、データ値が異なる画素ペアであることを検出し、この画素ペアのうちのデータ値が１である画素Ｇ１の画素位置５が、図３（ｂ）に示す埋め込み順序データにおいて透かし情報０に設定されていることにより、この画素ペアに埋め込まれた透かしデータが“０”であると判断する。
【００５３】
次に、透かしデータ取り出し部１６は、画素位置が１０及び１１の画素ペアが、データ値が異なる画素ペアであることを検出し、この画素ペアのうちのデータ値が１である画素Ｇ２´の画素位置１１が、図３（ｂ）に示す埋め込み順序データにおいて透かし情報１に設定されていることにより、この画素ペアに埋め込まれた透かしデータが“１”であると判断する。
【００５４】
更に、透かしデータ取り出し部１６は、画素位置が１２及び１３の画素ペアが、データ値が異なる画素ペアであることを検出し、この画素ペアのうちのデータ値が１である画素Ｇ３の画素位置１２が、図３（ｂ）に示す埋め込み順序データにおいて透かし情報０に設定されていることにより、この画素ペアに埋め込まれた透かしデータが“０”であると判断する。これにより、透かしデータ取り出し部１６は、図４（ｃ）に示すセルから３ビットの透かしデータ“０１０”を取り出すことができる。
【００５５】
透かしデータ取り出し部１６は、画像データ入力部１０から入力された埋め込み済み画像データに対して、上述した取り出し処理を実行し、取り出した透かしデータを透かしデータ出力部１９から出力させる。
【００５６】
なお、図１に示す画像処理装置１では、透かしデータ埋め込み部１５及び透かしデータ取り出し部１６への画像データの入力部（画像データ入力部１０）と、透かしデータ埋め込み部１５及び透かしデータ取り出し部１６からの画像データの出力部（画像データ出力部１８）とを共用しているが、入力部及び出力部を各別に設けることにより、透かしデータの埋め込み処理及び取り出し処理を並列に行なうことができる。
【００５７】
ここで、埋め込み順序記憶部１４に記憶してある埋め込み順序データは、図３（ｂ）に示すものに限られず、自由に設定することができる。例えば、図５（ａ）に示すように、セル内で上下左右及び斜め方向に隣接する２画素をそれぞれ画素ペアとして自由に設定してもよい。図５（ｂ）に示す埋め込み順序データでは、図５（ａ）に示すように、画素位置が０及び４、５及び８、１２及び９、１４及び１３、１５及び１１、７及び１０、３及び６、２及び１の各画素ペアが設定されており、この順序が各画素ペアへの透かしデータの埋め込み順序を示している。このような埋め込み順序データは、ユーザにより作成され、図示しない入力部（順序データ入力部）から入力されて埋め込み順序記憶部１４に格納される。
【００５８】
また、埋め込み順序記憶部１４には、複数の埋め込み順序データを記憶しておいてもよく、その場合には、図６（ａ）に示すように、各埋め込み順序データにデータ番号を付与して記憶しておく。従って、埋め込み順序指定部１２から指定されたデータ番号に応じた埋め込み順序データが、メモリアクセス回路１３によって埋め込み順序記憶部１４から読み出され、透かしデータ埋め込み部１５又は透かしデータ取り出し部１６へ入力される。なお、埋め込み順序指定部１２は、ユーザによる選択又は制御部による制御によって、埋め込み順序記憶部１４から読み出す埋め込み順序データを選択する選択手段として動作し、選択した埋め込み順序データをメモリアクセス回路１３へ通知する。
【００５９】
また、セル単位又はライン単位で埋め込み順序データを切り替えることもできる。この場合、制御部は、画像データ入力部１０から入力される画像データ及び透かしデータ入力部１１から入力される透かしデータに同期させて、メモリアクセス回路１３によって埋め込み順序記憶部１４から読み出した埋め込み順序データを透かしデータ埋め込み部１５へ入力させる必要がある。なお、ラインとは、画像データ中の主走査方向に隣り合うセルの列である。
【００６０】
埋め込み順序指定部１２では、図６（ｂ）に示すようなパターン（指定情報）でライン毎に埋め込み順序データの切り替えを指定することもできる。図６（ｂ）では、１ライン目のセルについては、主走査方向に隣り合うセル毎に、データ番号３，２，２，４，１，１，１の埋め込み順序データを繰り返して切り替えることを指定している。また、各ラインの最後のセルで埋め込み順序データを切り替えたくない場合には、例えば、２〜４ライン目のセルについて、データ番号５，５，２，４，４の埋め込み順序データを繰り返して切り替えるように指定することにより、２ライン目及び３ライン目の最後のセルで埋め込み順序データを切り替えることなく、データ番号５，５，２，４，４の埋め込み順序データの切り替えを繰り返す指定を行なうことができる。
【００６１】
図６（ｂ）に示す指定方法では、更に、５ライン目ではセル毎にデータ番号１，２，３，４の埋め込み順序データを繰り返して切り替え、６〜７ライン目ではセル毎にデータ番号３，２，４，１，５，４，３，２の埋め込み順序データを繰り返して切り替えることを指定している。また、８ライン目以降のセルについては、図６（ｂ）中で１ライン目に指定された切り替え順序に戻り、埋め込み順序データの切り替えを繰り返す。
【００６２】
図６（ｂ）に示すようなデータは、例えばユーザが埋め込み順序指定部（受付手段）１２から直接入力するようにしてもよいし、他の入力部から入力された図６（ｂ）に示すデータに基づいて、制御部が各ラインに対応する埋め込み順序データの切り替えを埋め込み順序指定部１２に指定するようにしてもよい。
【００６３】
以下に、上述した構成の画像処理装置１による透かしデータの埋め込み処理について説明する。図７は実施形態１の画像処理装置１による透かしデータの埋め込み処理の手順を示すフローチャートである。なお、以下の処理は、図示しない制御部に内蔵されたＲＯＭに記憶してある制御プログラムに従って制御部が上述したようなハードウェア各部を制御することにより実行される。
【００６４】
画像処理装置１を利用して透かしデータの埋め込み処理を行なうユーザは、透かしデータ及び透かしデータを埋め込む画像データを入力すると共に、埋め込み順序記憶部１４に記憶してある埋め込み順序データから所望の埋め込み順序データを指定する。画像処理装置１の制御部は、埋め込み順序指定部１２を介して指定された埋め込み順序データをメモリアクセス回路１３によって埋め込み順序記憶部１４から読み出し（Ｓ１）、透かしデータ埋め込み部１５へ入力する。
【００６５】
また、制御部は、透かしデータ入力部１１から入力された透かしデータ中の１ビットを抽出し（Ｓ２）、透かしデータ埋め込み部１５へ入力し、画像データ入力部１０から入力された画像データ中の１つのセルを抽出し（Ｓ３）、透かしデータ埋め込み部１５へ入力する。なお、制御部は、埋め込み順序記憶部１４から読み出した埋め込み順序データと、画像データ入力部１０から入力された画像データ中のセルとを同期させて透かしデータ埋め込み部１５へ入力することにより、各セルに対応させて埋め込み順序データを変更することができる。
【００６６】
制御部は、透かしデータ埋め込み部１５によって、透かしデータ埋め込み部１５に入力されたセルにおいて埋め込み順序データによって設定された各画素ペアについて、両画素のデータ値が異なる画素ペアが有るか否かを判断する（Ｓ４）。制御部は、両画素のデータ値が異なる画素ペアが有ると判断した場合（Ｓ４：ＹＥＳ）、透かしデータ埋め込み部１５に入力された１ビットの透かしデータのデータ値が１であるか否かを判断する（Ｓ５）。
【００６７】
制御部は、透かしデータのデータ値が１であると判断した場合（Ｓ５：ＹＥＳ）、ステップＳ４で検出した画素ペアにおいて、埋め込み順序データによって透かし情報が１に設定された画素位置の画素のデータ値を１に、埋め込み順序データによって透かし情報が０に設定された画素位置の画素のデータ値を０に変更する（Ｓ６）。なお、埋め込み順序データによって透かし情報が１に設定された画素位置の画素のデータ値が予め１であれば何も行なわない。
【００６８】
また、制御部は、透かしデータのデータ値が１でないと判断した場合（Ｓ５：ＮＯ）、即ち透かしデータのデータ値が０である場合、ステップＳ４で検出した画素ペアにおいて、埋め込み順序データによって透かし情報が０に設定された画素位置の画素のデータ値を１に、埋め込み順序データによって透かし情報が１に設定された画素位置の画素のデータ値を０に変更する（Ｓ７）。なお、埋め込み順序データによって透かし情報が０に設定された画素位置の画素のデータ値が予め１であれば何も行なわない。
【００６９】
次に、制御部は、透かしデータ入力部１１から入力された透かしデータの埋め込み処理が完了したか否かを判断しており（Ｓ８）、完了したと判断した場合（Ｓ８：ＹＥＳ）、上述した処理を終了する。制御部は、透かしデータの埋め込み処理が完了していないと判断した場合（Ｓ８：ＮＯ）、透かしデータ入力部１１から入力された透かしデータ中の次の１ビットを抽出して（Ｓ９）、透かしデータ埋め込み部１５へ入力する。また、制御部は、ステップＳ４へ処理を戻し、ステップＳ３で抽出したセル内に、両画素のデータ値が異なる画素ペアがほかに有るか否かを判断する（Ｓ４）。
【００７０】
ステップＳ４で、セル内に両画素のデータ値が異なる画素ペアが無いと判断した場合（Ｓ４：ＮＯ）、制御部は、画像データ入力部１０から入力された画像データにおいて全てのセルに対する処理が終了したか否かを判断する（Ｓ１０）。制御部は、終了していない場合（Ｓ１０：ＮＯ）、ステップＳ３へ処理を戻し、画像データ入力部１０から入力された画像データ中の次の１つのセルを抽出し（Ｓ３）、透かしデータ埋め込み部１５へ入力して、ステップＳ４〜Ｓ９の処理を繰り返す。制御部は、画像データ入力部１０から入力された画像データにおいて全てのセルに対する処理が終了したと判断した場合（Ｓ１０：ＹＥＳ）、上述した処理を終了する。
【００７１】
このように、画像データ入力部１０から入力された画像データに、透かしデータ入力部１１から入力された透かしデータを埋め込んで生成された画像データは、透かしデータ埋め込み部１５に内蔵されたＲＡＭに一時的に格納され、制御部からの指示に従って、切換部１７を介して画像データ出力部１８から出力される。
【００７２】
以下に、上述したように透かしデータが埋め込まれた埋め込み済み画像データから透かしデータを取り出す取り出し処理について説明する。図８は実施形態１の画像処理装置１による透かしデータの取り出し処理の手順を示すフローチャートである。なお、以下の処理は、図示しない制御部に内蔵されたＲＯＭに記憶してある制御プログラムに従って制御部が上述したようなハードウェア各部を制御することにより実行される。
【００７３】
画像処理装置１によって透かしデータの取り出し処理を行なうユーザは、透かしデータが埋め込まれた埋め込み済み画像データを入力すると共に、この透かしデータの埋め込み処理の際に用いた埋め込み順序データを指定する。画像処理装置１の制御部は、埋め込み順序指定部１２を介して指定された埋め込み順序データをメモリアクセス回路１３によって埋め込み順序記憶部１４から読み出し（Ｓ１１）、透かしデータ取り出し部１６へ入力する。
【００７４】
また、制御部は、画像データ入力部１０から入力された埋め込み済み画像データ中の１つのセルを抽出し（Ｓ１２）、透かしデータ取り出し部１６へ入力する。制御部は、透かしデータ取り出し部１６によって、透かしデータ取り出し部１６に入力されたセルにおいて埋め込み順序データによって設定された各画素ペアについて、両画素のデータ値が異なる画素ペアが有るか否かを判断する（Ｓ１３）。制御部は、両画素のデータ値が異なる画素ペアが有ると判断した場合（Ｓ１３：ＹＥＳ）、画素ペアのうちのデータ値が１の画素位置が、埋め込み順序データによって透かし情報が１に設定された画素位置であるか否かを判断する（Ｓ１４）。
【００７５】
制御部は、データ値が１の画素位置が透かし情報１の画素位置であると判断した場合（Ｓ１４：ＹＥＳ）、透かしデータとして１を取り出し、透かしデータ１を透かしデータ出力部１９へ出力する（Ｓ１５）。また、制御部は、データ値が１の画素位置が透かし情報１の画素位置でないと判断した場合（Ｓ１４：ＮＯ）、即ち、データ値が１の画素位置が透かし情報０に設定された画素位置である場合、透かしデータとして０を取り出し、透かしデータ０を透かしデータ出力部１９へ出力する（Ｓ１６）。
【００７６】
制御部は、ステップＳ１３へ処理を戻し、ステップＳ１２で抽出したセル内に、両画素のデータ値が異なる画素ペアがほかに有るか否かを判断する（Ｓ１３）。ステップＳ１３で、セル内に両画素のデータ値が異なる画素ペアが無いと判断した場合（Ｓ１３：ＮＯ）、制御部は、画像データ入力部１０から入力された画像データにおいて全てのセルに対する処理が終了したか否かを判断し（Ｓ１７）、終了していない場合（Ｓ１７：ＮＯ）、ステップＳ１２へ処理を戻し、画像データ入力部１０から入力された画像データ中の次の１つのセルを抽出し（Ｓ１２）、透かしデータ取り出し部１６へ入力する。
【００７７】
制御部は、画像データ入力部１０から入力された画像データにおいて全てのセルに対する処理が終了したと判断した場合（Ｓ１７：ＹＥＳ）、上述した処理を終了する。このように、画像データ入力部１０から入力された埋め込み済み画像データから埋め込み順序データに従って取り出された透かしデータは、透かしデータ出力部１９から出力される。
【００７８】
上述したように、画像データに含まれる各画素をセル単位に分割し、各セル内に予め設定された画素ペアにおいて、両画素のデータ値が異なる画素ペアに対して１ビットの透かしデータを埋め込むことにより、画像データの全体に対して透かしデータの埋め込み処理を行なうことができる。よって、透かしデータを埋め込む画像データの階調度に偏りがあり、両画素のデータ値が異なる画素ペアが少ない画像データを除いて、データ量の多い透かしデータの埋め込みが可能となる。
【００７９】
また、各セル内に予め設定された画素ペアについて、埋め込むべき透かしデータに応じて画素のデータ値を入れ替えることにより透かしデータを埋め込むので、透かしデータを埋め込むことによる画質の変化は人間の目には識別し難いので画質の劣化は感じられない。更に、図６（ａ）に示すような埋め込み順序データを埋め込み順序記憶部１４に記憶させておけばよいので、透かしデータの埋め込み処理及び取り出し処理に必要な各種データのデータ量の増大を防止することもできる。
【００８０】
上述した実施形態１において、透かしデータを埋め込む際に用いる埋め込み順序データを１つに制限した場合、各セル内において透かし情報０に設定された画素位置が特定されるため、透かし情報０に設定された画素位置の画素のデータ値が１となるような画像データを、処理対象の画像データとすることにより、埋め込まれる透かしデータのデータ値が０の場合には、画素ペアの各画素データを入れ替える必要がなく、埋め込まれる透かしデータのデータ値が１の場合にのみ、画素ペアの各画素のデータ値を入れ替えればよい。
【００８１】
また、透かしデータを埋め込む前の画像データにおいて、各セル内の画素ペアにおいていずれの画素位置の画素のデータ値が０であるか１であるかが予め設定されているため、透かしデータを取り出した後の画像データを、透かしデータを埋め込む前の画像データに確実に復元することもできる。
【００８２】
（実施形態２）
以下に、実施形態２に係る画像処理装置について具体的に説明する。なお、画像処理装置の全体構成については、実施形態１の画像処理装置１と同様であるので説明を省略する。なお、上述した実施形態１の画像処理装置１では、画像データ入力部１０から入力される画像データの各セル内において、両画素のデータ値が異なる画素ペアを検出し、検出した画素ペアに透かしデータを埋め込む処理を行なっており、例えば、両画素のデータ値が異なる画素ペアの数が少ない画像データが処理対象である場合には、埋め込みが可能な透かしデータのデータ量が少なくなっていた。
【００８３】
そこで、実施形態２の画像処理装置１では、透かしデータの埋め込み処理を行なう前処理として、透かしデータが埋め込まれる画像データの各セル内において、両画素のデータ値が共に１である画素ペアと、両画素のデータ値が共に０である画素ペアとが有る場合に、データ値が共に１である画素ペアの一方の画素のデータ値と、データ値が共に０である画素ペアの一方の画素のデータ値とを入れ替える処理を実行する。これにより、データ値が共に１である画素ペア及びデータ値が共に０である画素ペアのそれぞれには埋め込むことができなかった透かしデータの埋め込みを可能とすることができ、埋め込みが可能な透かしデータのデータ量を増加させることができる。
【００８４】
図９は実施形態２の画像処理装置１による透かしデータの埋め込み処理の前処理を説明するための模式図である。なお、図９では、破線を介して隣り合う２画素をそれぞれ画素ペアとする。画像処理装置１の制御部は、埋め込み順序データ、透かしデータ及び画像データを透かしデータ埋め込み部１５に入力して透かしデータの埋め込み処理を透かしデータ埋め込み部１５によって行なう場合、まず、各セル内において、両画素のデータ値が共に１である画素ペアがあるか否かを検出する隣接黒画素検出手段として動作する。
【００８５】
制御部は、図９（ａ）に示すような両画素のデータ値が共に１である画素ペアＧ４を検出した場合、同一セル内に両画素のデータ値が共に０である画素ペアがあるか否かを検出する隣接白画素検出手段として動作する。制御部は、同一セル内に両画素のデータ値が共に０である画素ペアを複数検出した場合、検出した複数の画素ペアからランダムに１つの画素ペアＧ５（図９（ｂ）参照）を選択し、選択した画素ペアＧ５の一方の画素のデータ値と、両画素のデータ値が共に１である画素ペアＧ４の一方の画素のデータ値とを入れ替える入れ替え手段として動作する。これにより、図９（ｃ）に示すような画素データの配列を有するセルを生成することができる。
【００８６】
以下に、本実施形態２の画像処理装置１によって、上述したような前処理を行なった後に透かしデータを埋め込む埋め込み処理について説明する。図１０及び図１１は実施形態２に係る画像処理装置１による透かしデータの埋め込み処理の手順を示すフローチャートである。なお、以下の処理は、図示しない制御部に内蔵されたＲＯＭに記憶してある制御プログラムに従って制御部が上述したようなハードウェア各部を制御することにより実行される。
【００８７】
本実施形態２の画像処理装置１を利用して透かしデータの埋め込み処理を行なうユーザは、透かしデータ及び透かしデータを埋め込む画像データを入力すると共に、埋め込み順序記憶部１４に記憶してある埋め込み順序データから所望の埋め込み順序データを指定する。画像処理装置１の制御部は、埋め込み順序指定部１２を介して指定された埋め込み順序データをメモリアクセス回路１３によって埋め込み順序記憶部１４から読み出し（Ｓ２１）、透かしデータ埋め込み部１５へ入力する。
【００８８】
また、制御部は、透かしデータ入力部１１から入力された透かしデータ中の１ビットを抽出し（Ｓ２２）、透かしデータ埋め込み部１５へ入力し、画像データ入力部１０から入力された画像データ中の１つのセルを抽出し（Ｓ２３）、透かしデータ埋め込み部１５へ入力する。なお、制御部は、埋め込み順序記憶部１４から読み出した埋め込み順序データと、画像データ入力部１０から入力された画像データ中のセルとを同期させて透かしデータ埋め込み部１５へ入力することにより、各セルに対応させて埋め込み順序データを変更することができる。
【００８９】
制御部は、透かしデータ埋め込み部１５によって、透かしデータ埋め込み部１５に入力されたセルにおいて埋め込み順序データによって設定された各画素ペアについて、両画素のデータ値が共に１の画素ペアが有るか否かを判断する（Ｓ２４）。制御部は、データ値が共に１の画素ペアが有ると判断した場合（Ｓ２４：ＹＥＳ）、同一のセル中に、両画素のデータ値が共に０の画素ペアが有るか否かを判断する（Ｓ２５）。
【００９０】
制御部は、同一のセル中に、両画素のデータ値が共に０の画素ペアが有ると判断した場合（Ｓ２５：ＹＥＳ）、両画素のデータ値が共に０の画素ペアを複数検出したか否かを判断し（Ｓ２６）、複数検出したと判断した場合（Ｓ２６：ＹＥＳ）、検出した複数の画素ペアから１つの画素ペアを選択する（Ｓ２７）。制御部は、画素ペアを複数検出していないと判断した場合（Ｓ２６：ＮＯ）、即ち両画素のデータ値が共に０の画素ペアを１つ検出した場合、ステップＳ２７の処理をスキップする。
【００９１】
次に制御部は、ステップＳ２４で検出した両画素のデータ値が共に１の画素ペアの一方の画素のデータ値と、ステップＳ２５で検出した両画素のデータ値が共に０の画素ペアの一方の画素のデータ値とを入れ替え（Ｓ２８）、ステップＳ２４へ処理を戻し、セル内に両画素のデータ値が共に１の画素ペアがほかに有るか否かを判断する（Ｓ２４）。
【００９２】
制御部は、ステップＳ２４で両画素のデータ値が共に１の画素ペアが無いと判断した場合（Ｓ２４：ＮＯ）、又はステップＳ２５で両画素のデータ値が共に０の画素ペアが無いと判断した場合（Ｓ２５：ＮＯ）、ステップＳ２９へ処理を移行し、透かしデータの埋め込み処理を開始する。
【００９３】
具体的には、制御部は、ステップＳ２３で抽出されてステップＳ２４〜Ｓ２８で必要に応じて画素のデータ値が入れ替えられたセルにおいて埋め込み順序データによって設定された各画素ペアについて、両画素のデータ値が異なる画素ペアが有るか否かを透かしデータ埋め込み部１５により判断する（Ｓ２９）。制御部は、両画素のデータ値が異なる画素ペアが有ると判断した場合（Ｓ２９：ＹＥＳ）、透かしデータ埋め込み部１５に入力された１ビットの透かしデータのデータ値が１であるか否かを判断する（Ｓ３０）。
【００９４】
制御部は、透かしデータのデータ値が１であると判断した場合（Ｓ３０：ＹＥＳ）、埋め込み順序データによって透かし情報が１に設定された画素位置の画素のデータ値を１に、埋め込み順序データによって透かし情報が０に設定された画素位置の画素のデータ値を０に変更する（Ｓ３１）。なお、埋め込み順序データによって透かし情報が１に設定された画素位置の画素のデータ値が予め１であれば何も行なわない。
【００９５】
また、制御部は、透かしデータのデータ値が１でないと判断した場合（Ｓ３０：ＮＯ）、即ち透かしデータのデータ値が０である場合、埋め込み順序データによって透かし情報が０に設定された画素位置の画素のデータ値を１に、埋め込み順序データによって透かし情報が１に設定された画素位置の画素のデータ値を０に変更する（Ｓ３２）。なお、埋め込み順序データによって透かし情報が０に設定された画素位置の画素のデータ値が予め１であれば何も行なわない。
【００９６】
次に、制御部は、透かしデータ入力部１１から入力された透かしデータの埋め込み処理が完了したか否かを判断しており（Ｓ３３）、完了したと判断した場合（Ｓ３３：ＹＥＳ）、上述した処理を終了する。制御部は、透かしデータの埋め込み処理が完了していないと判断した場合（Ｓ３３：ＮＯ）、透かしデータ入力部１１から入力された透かしデータ中の次の１ビットを抽出して（Ｓ３４）、透かしデータ埋め込み部１５へ入力する。また、制御部は、ステップＳ２９へ処理を戻し、ステップＳ２３で抽出したセル内に、両画素のデータ値が異なる画素ペアがほかに有るか否かを判断する（Ｓ２９）。
【００９７】
ステップＳ２９で、セル内に両画素のデータ値が異なる画素ペアが無いと判断した場合（Ｓ２９：ＮＯ）、制御部は、画像データ入力部１０から入力された画像データにおいて全てのセルに対する処理が終了したか否かを判断し（Ｓ３５）、終了していない場合（Ｓ３５：ＮＯ）、ステップＳ２３へ処理を戻し、画像データ入力部１０から入力された画像データ中の次の１つのセルを抽出し（Ｓ２３）、透かしデータ埋め込み部１５へ入力する。制御部は、画像データ入力部１０から入力された画像データにおいて全てのセルに対する処理が終了したと判断した場合（Ｓ３５：ＹＥＳ）、上述した処理を終了する。
【００９８】
このように、画像データ入力部１０から入力された画像データに、透かしデータ入力部１１から入力された透かしデータを埋め込んで生成された画像データは、透かしデータ埋め込み部１５に内蔵されたＲＡＭに一時的に格納され、制御部からの指示に従って、切換部１７を介して画像データ出力部１８から出力される。
【００９９】
上述したように、画像データ入力部１０から入力された画像データに透かしデータを埋め込む前に、各セルにおいて、両画素のデータ値が共に１の画素ペアがあり、両画素のデータ値が共に０の画素ペアがあれば、それぞれの画素ペアの一方の画素のデータ値を入れ替えることにより、両画素のデータ値が異なる画素ペアの数を増やすことができる。従って、両画素のデータ値が異なる１つの画素ペアに対して１ビットの透かしデータを埋め込むことができるので、埋め込みが可能な透かしデータのデータ量を増加させることができる。なお、本実施形態２の画像処理装置１において、上述したように透かしデータが埋め込まれた画像データから透かしデータを取り出す処理は、上述した実施形態１の画像処理装置１と同様の処理によって行なうことができるため説明を省略する。
【０１００】
上述した実施形態２では、透かしデータを埋め込む前の処理として、透かしデータを埋め込む画像データの各セルにおいて、両画素のデータ値が共に１の画素ペアと、両画素のデータ値が共に０の画素ペアとがあり、両画素のデータ値が共に０の画素ペアが複数ある場合には、複数の画素ペアからランダムに１つの画素ペアを選択する構成を例としたが、両画素のデータ値が共に１の画素ペアから最も近い位置にある両画素のデータ値が共に０の画素ペアを選択するようにしてもよい。
【０１０１】
図１２は画像処理装置１による透かしデータの埋め込み処理の前処理の変形例を説明するための模式図である。なお、図１２においても、破線を介して隣り合う２画素をそれぞれ画素ペアとする。この場合、画像処理装置１の制御部は、各セル内において、両画素のデータ値が共に１である画素ペアがあるか否かを検出し、図１２（ａ）に示すような両画素のデータ値が共に１である画素ペアＧ６を検出した場合、同一セル内に両画素のデータ値が共に０である画素ペアがあるか否かを検出する。
【０１０２】
制御部は、同一セル内に両画素のデータ値が共に０である画素ペアを複数検出した場合、検出した複数の画素ペアの中央と、画素ペアＧ６の中央との距離Ｐ１，Ｐ２（図１２（ｂ）参照）を算出し、算出した距離Ｐ１，Ｐ２が短い方の画素ペアを選択する。図１２（ｂ）では、距離Ｐ１が距離Ｐ２よりも短いので、画素ペアＧ７を選択し、選択した画素ペアＧ７の一方の画素のデータ値と、画素ペアＧ６の一方の画素のデータ値とを入れ替える。これにより、図１２（ｃ）に示すような画素データの配列を有するセルを生成することができる。
【図面の簡単な説明】
【０１０３】
【図１】本発明に係る画像処理装置の内部構成例を示すブロック図である。
【図２】画像データ入力部から入力される画像データを示す模式図である。
【図３】埋め込み順序データの構成例を説明するための説明図である。
【図４】透かしデータの埋め込み処理を説明するための模式図である。
【図５】埋め込み順序データの構成例を説明するための説明図である。
【図６】埋め込み順序データの切り替えの指定方法を説明するための説明図である。
【図７】画像処理装置による透かしデータの埋め込み処理の手順を示すフローチャートである。
【図８】画像処理装置による透かしデータの取り出し処理の手順を示すフローチャートである。
【図９】透かしデータの埋め込み処理の前処理を説明するための模式図である。
【図１０】画像処理装置による透かしデータの埋め込み処理の手順を示すフローチャートである。
【図１１】画像処理装置による透かしデータの埋め込み処理の手順を示すフローチャートである。
【図１２】透かしデータの埋め込み処理の前処理の変形例を説明するための模式図である。
【符号の説明】
【０１０４】
１  画像処理装置
１０  画像データ入力部（埋め込み済みデータ入力部）
１１  透かしデータ入力部
１２  埋め込み順序指定部（選択手段）
１３  メモリアクセス回路
１４  埋め込み順序記憶部（記憶手段）
１５  透かしデータ埋め込み部（抽出手段、検出手段、変更手段）
１６  透かしデータ取り出し部
【図１】
2006165815.tif 000003
【図２】
2006165815.tif 000004
【図３】
2006165815.tif 000005
【図４】
2006165815.tif 000006
【図５】
2006165815.tif 000007
【図６】
2006165815.tif 000008
【図７】
2006165815.tif 000009
【図８】
2006165815.tif 000010
【図９】
2006165815.tif 000011
【図１０】
2006165815.tif 000012
【図１１】
2006165815.tif 000013
【図１２】
2006165815.tif 000014