(57)【要約】【課題】色彩を変化させずに、あるいは、色彩を変化させたとしてもその変化を極めて限定的にするようにしてパレット画像に電子透かし情報を埋め込む。【解決手段】パレットの各エレメントに定義されている色情報の数たる色情報数を取得する第１のステップと、第１のステップで取得した色情報数に応じて、該色情報を定義するパレットのエレメントを変更してパレットの構成を変更する第２のステップと、インデックスにおける各ピクセルのインデックス値が、第２のステップで構成を変更する前のパレットの該構成における色情報と同一の色情報を指定するように、第２のステップで構成を変更されたパレットの該構成に合わせて、各ピクセルのインデックス値を変更する第３のステップと、第３のステップで変更された各ピクセルのインデックス値に電子透かし情報としてビット情報を順次に埋め込む第４のステップとを有する。【選択図】        図３
2009188466.tif 000002
【特許請求の範囲】
【請求項１】
色情報を定義可能な偶数個のエレメントより構成されるパレットと該エレメントに定義された色情報を画像のピクセル毎に指定するインデックス値を示すインデックスとを用いて表されるパレット画像に電子透かし情報としてビット情報を埋め込む電子透かし埋め込み方法において、
電子透かし情報を埋め込む処理対象のパレット画像のパレットの各エレメントに定義されている色情報の数たる色情報数を取得する第１のステップと、
前記第１のステップで取得した色情報数に応じて、該色情報を定義する前記パレットのエレメントを変更して前記パレットの構成を変更する第２のステップと、
前記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値が、前記第２のステップで構成を変更する前の前記パレットの該構成における色情報と同一の色情報を指定するように、前記第２のステップで構成を変更された前記パレットの該構成に合わせて、前記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値を変更する第３のステップと、
前記第３のステップで変更された前記インデックスにおける各ピクセルのインデックス値に電子透かし情報としてビット情報を順次に埋め込む第４のステップと
を有することを特徴とする電子透かし埋め込み方法。
【請求項２】
請求項１に記載の電子透かし埋め込み方法において、
前記第１のステップで取得した色情報数が、前記エレメントの総数の半分（以下、「エレメントの総数」を「総エレメント数」と表記し、「エレメントの総数の半分」を「総エレメント数／２」と表記する。）であるとき、
前記第２のステップは、
前記処理対象のパレット画像のパレットの各エレメントに定義されている色情報を、前記パレットの先頭の０番目のエレメントから（色情報数−１）番目のエレメントまでにそれぞれ移動して前記パレットの構成を変更し、
前記第３のステップは、
前記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値が、前記第２のステップで色情報を定義するエレメントを移動して構成を変更する前の前記パレットの該構成における色情報と同一の色情報を指定するように、前記第２のステップで色情報を定義するエレメントを移動して構成を変更された前記パレットの該構成に合わせて、前記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値を変更し、
前記第４のステップは、
前記第２のステップで前記パレットの先頭の０番目のエレメントから（色情報数−１）番目のエレメントまでに移動した色情報を、前記パレットの（総エレメント数／２）番目のエレメントから（（総エレメント数／２）＋（色情報−１））番目のエレメントまでコピーし、
前記インデックスにおける各ピクセルのインデックス値に埋め込む前記電子透かし情報のビット情報が「０」であるときは該インデックス値を変更せず、かつ、前記インデックスにおける各ピクセルのインデックス値に埋め込む前記電子透かし情報のビット情報が「１」であるときは該インデックス値に（総エレメント数／２）を加算して変更し、または、
前記インデックスにおける各ピクセルのインデックス値に埋め込む前記電子透かし情報のビット情報が「１」であるときは該インデックス値を変更せず、かつ、前記インデックスにおける各ピクセルのインデックス値に埋め込む前記電子透かし情報のビット情報が「０」であるときは該インデックス値に（総エレメント数／２）を加算して変更する
ことを特徴とする電子透かし埋め込み方法。
【請求項３】
請求項１に記載の電子透かし埋め込み方法において、
前記第１のステップで取得した色情報数が、（（総エレメント数／２）＋１）乃至（総エレメント数−１）であるとき、
前記第２のステップは、
前記処理対象のパレット画像のパレットの各エレメントに定義されている色情報を、前記パレットの先頭の０番目のエレメントから（色情報数−１）番目のエレメントまでにそれぞれ移動して前記パレットの構成を変更し、
前記第３のステップは、
前記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値が、前記第２のステップで色情報を定義するエレメントを移動して構成を変更する前の前記パレットの該構成における色情報と同一の色情報を指定するように、前記第２のステップで色情報を定義するエレメントを移動して構成を変更された前記パレットの該構成に合わせて、前記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値を変更し、
前記第４のステップは、
前記第２のステップで前記パレットの先頭の０番目のエレメントから（色情報数−１）番目のエレメントまでに移動した色情報のなかで、前記パレットの先頭の０番目のエレメントから（総エレメント数−色情報数）番目のエレメントまでの色情報を、前記パレットの色情報数番目のエレメントから総エレメント数番目のエレメントまでコピーし、
前記インデックスにおけるインデックス値が０〜（（総エレメント数−１）−色情報数）のピクセルたる電子透かし埋め込み対象ピクセルにのみ前記電子透かし情報のビット情報を埋め込むものであり、
前記電子透かし埋め込み対象ピクセルのインデックス値に埋め込む前記電子透かし情報のビット情報が「０」であるときは該インデックス値を変更せず、かつ、前記電子透かし埋め込み対象ピクセルのインデックス値に埋め込む前記電子透かし情報のビット情報が「１」であるときは該インデックス値に色情報数を加算して変更し、または、
前記電子透かし埋め込み対象ピクセルのインデックス値に埋め込む前記電子透かし情報のビット情報が「１」であるときは該インデックス値を変更せず、かつ、前記電子透かし埋め込み対象ピクセルのインデックス値に埋め込む前記電子透かし情報のビット情報が「０」であるときは該インデックス値に色情報数を加算して変更する
ことを特徴とする電子透かし埋め込み方法。
【請求項４】
色情報を定義可能な偶数個のエレメントより構成されるパレットと該エレメントに定義された色情報を画像のピクセル毎に指定するインデックス値を示すインデックスとを用いて表されるパレット画像に電子透かし情報としてビット情報を埋め込む電子透かし埋め込み方法において、
処理対象のパレット画像のインデックスの各ピクセルにおける使用頻度が最も少ないインデックス値および使用頻度が最も多いインデックス値を取得するとともに、該使用頻度が最も少ないインデックス値が指定する色情報を定義したパレットのエレメントおよび該使用頻度が最も多いインデックス値が指定する色情報を定義した前記パレットのエレメントを取得する第１のステップと、
前記インデックスにおいて、前記第１のステップで取得した前記使用頻度が最も少ないインデックス値を、前記第１のステップで取得した前記使用頻度が最も多いインデックス値に変更する第２のステップと、
前記第１のステップで取得した前記使用頻度が最も少ないインデックス値が指定する色情報を定義した前記パレットの前記エレメントに、前記使用頻度が最も多いインデックス値が指定する色情報をコピーして色情報を書き換える第３のステップと、
前記第２のステップでインデックス値を変更されたインデックスにおける前記使用頻度が最も多いインデックス値に電子透かし情報としてビット情報を順次に埋め込む第４のステップと
を有し、
前記第４のステップは、
前記ビット情報が「０」であるときは該インデックス値を変更せず、かつ、前記ビット情報が「１」であるときは該インデックス値を前記使用頻度が最も少ないインデックス値または前記使用頻度が最も多いインデックス値に変更し、または、
前記ビット情報が「１」であるときは該インデックス値を変更せず、かつ、前記ビット情報が「０」であるときは該インデックス値を前記使用頻度が最も少ないインデックス値または前記使用頻度が最も多いインデックス値に変更する
ことを特徴とする電子透かし埋め込み方法。
【請求項５】
色情報を定義可能な偶数個のエレメントより構成されるパレットと該エレメントに定義された色情報を画像のピクセル毎に指定するインデックス値を示すインデックスとを用いて表されるパレット画像に電子透かし情報としてビット情報を埋め込む電子透かし埋め込み装置において、
電子透かし情報を埋め込む処理対象のパレット画像のパレットの各エレメントに定義されている色情報の数たる色情報数を取得する取得手段と、
前記取得手段で取得した色情報数に応じて、該色情報を定義する前記パレットのエレメントを変更して前記パレットの構成を変更する第１の変更手段と、
前記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値が、前記第１の変更手段で構成を変更する前の前記パレットの該構成における色情報と同一の色情報を指定するように、前記第１の変更手段で構成を変更された前記パレットの該構成に合わせて、前記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値を変更する第２の変更手段と、
前記第２の変更手段で変更された前記インデックスにおける各ピクセルのインデックス値に電子透かし情報としてビット情報を順次に埋め込む電子透かし情報埋め込み手段と
を有することを特徴とする電子透かし埋め込み装置。
【請求項６】
請求項５に記載の電子透かし埋め込み装置において、
前記取得手段で取得した色情報数が、前記エレメントの総数の半分（以下、「エレメントの総数」を「総エレメント数」と表記し、「エレメントの総数の半分」を「総エレメント数／２」と表記する。）であるとき、
前記第１の変更手段は、
前記処理対象のパレット画像のパレットの各エレメントに定義されている色情報を、前記パレットの先頭の０番目のエレメントから（色情報数−１）番目のエレメントまでにそれぞれ移動して前記パレットの構成を変更し、
前記第２の変更手段は、
前記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値が、前記第１の変更手段で色情報を定義するエレメントを移動して構成を変更する前の前記パレットの該構成における色情報と同一の色情報を指定するように、前記第１の変更手段で色情報を定義するエレメントを移動して構成を変更された前記パレットの該構成に合わせて、前記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値を変更し、
前記電子透かし情報埋め込み手段は、
前記第１の変更手段で前記パレットの先頭の０番目のエレメントから（色情報数−１）番目のエレメントまでに移動した色情報を、前記パレットの（総エレメント数／２）番目のエレメントから（（総エレメント数／２）＋（色情報−１））番目のエレメントまでコピーし、
前記インデックスにおける各ピクセルのインデックス値に埋め込む前記電子透かし情報のビット情報が「０」であるときは該インデックス値を変更せず、かつ、前記インデックスにおける各ピクセルのインデックス値に埋め込む前記電子透かし情報のビット情報が「１」であるときは該インデックス値に（総エレメント数／２）を加算して変更し、または、
前記インデックスにおける各ピクセルのインデックス値に埋め込む前記電子透かし情報のビット情報が「１」であるときは該インデックス値を変更せず、かつ、前記インデックスにおける各ピクセルのインデックス値に埋め込む前記電子透かし情報のビット情報が「０」であるときは該インデックス値に（総エレメント数／２）を加算して変更する
ことを特徴とする電子透かし埋め込み装置。
【請求項７】
請求項５に記載の電子透かし埋め込み装置において、
前記取得手段で取得した色情報数が、（（総エレメント数／２）＋１）乃至（総エレメント数−１）であるとき、
前記第１の変更手段は、
前記処理対象のパレット画像のパレットの各エレメントに定義されている色情報を、前記パレットの先頭の０番目のエレメントから（色情報数−１）番目のエレメントまでにそれぞれ移動して前記パレットの構成を変更し、
前記第２の変更手段は、
前記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値が、前記第１の変更手段で色情報を定義するエレメントを移動して構成を変更する前の前記パレットの該構成における色情報と同一の色情報を指定するように、前記第１の変更手段で色情報を定義するエレメントを移動して構成を変更された前記パレットの該構成に合わせて、前記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値を変更し、
前記電子透かし情報埋め込み手段は、
前記第１の変更手段で前記パレットの先頭の０番目のエレメントから（色情報数−１）番目のエレメントまでに移動した色情報のなかで、前記パレットの先頭の０番目のエレメントから（総エレメント数−色情報数）番目のエレメントまでの色情報を、前記パレットの色情報数番目のエレメントから総エレメント数番目のエレメントまでコピーし、
前記インデックスにおけるインデックス値が０〜（（総エレメント数−１）−色情報数）のピクセルたる電子透かし埋め込み対象ピクセルにのみ前記電子透かし情報のビット情報を埋め込むものであり、
前記電子透かし埋め込み対象ピクセルのインデックス値に埋め込む前記電子透かし情報のビット情報が「０」であるときは該インデックス値を変更せず、かつ、前記電子透かし埋め込み対象ピクセルのインデックス値に埋め込む前記電子透かし情報のビット情報が「１」であるときは該インデックス値に色情報数を加算して変更し、または、
前記電子透かし埋め込み対象ピクセルのインデックス値に埋め込む前記電子透かし情報のビット情報が「１」であるときは該インデックス値を変更せず、かつ、前記電子透かし埋め込み対象ピクセルのインデックス値に埋め込む前記電子透かし情報のビット情報が「０」であるときは該インデックス値に色情報数を加算して変更する
ことを特徴とする電子透かし埋め込み装置。
【請求項８】
色情報を定義可能な偶数個のエレメントより構成されるパレットと該エレメントに定義された色情報を画像のピクセル毎に指定するインデックス値を示すインデックスとを用いて表されるパレット画像に電子透かし情報としてビット情報を埋め込む電子透かし埋め込み装置において、
処理対象のパレット画像のインデックスの各ピクセルにおける使用頻度が最も少ないインデックス値および使用頻度が最も多いインデックス値を取得するとともに、該使用頻度が最も少ないインデックス値が指定する色情報を定義したパレットのエレメントおよび該使用頻度が最も多いインデックス値が指定する色情報を定義した前記パレットのエレメントを取得する取得手段と、
前記インデックスにおいて、前記取得手段で取得した前記使用頻度が最も少ないインデックス値を、前記取得手段で取得した前記使用頻度が最も多いインデックス値に変更する変更手段と、
前記取得手段で取得した前記使用頻度が最も少ないインデックス値が指定する色情報を定義した前記パレットの前記エレメントに、前記使用頻度が最も多いインデックス値が指定する色情報をコピーして色情報を書き換える書き換え手段と、
前記変更手段でインデックス値を変更されたインデックスにおける前記使用頻度が最も多いインデックス値に電子透かし情報としてビット情報を順次に埋め込む電子透かし情報埋め込み手段であって、
前記ビット情報が「０」であるときは該インデックス値を変更せず、かつ、前記ビット情報が「１」であるときは該インデックス値を前記使用頻度が最も少ないインデックス値または前記使用頻度が最も多いインデックス値に変更し、または、
前記ビット情報が「１」であるときは該インデックス値を変更せず、かつ、前記ビット情報が「０」であるときは該インデックス値を前記使用頻度が最も少ないインデックス値または前記使用頻度が最も多いインデックス値に変更する
ことを特徴とする電子透かし埋め込み装置。
【請求項９】
色情報を定義可能な偶数個のエレメントより構成されるパレットと該エレメントに定義された色情報を画像のピクセル毎に指定するインデックス値を示すインデックスとを用いて表されるパレット画像に電子透かし情報として埋め込まれたビット情報を検出する電子透かし検出方法において、
電子透かし情報を検出する処理対象のパレット画像におけるパレットの構成を取得する第１のステップと、
前記第１のステップで取得した前記パレットの構成より、前記パレットの各エレメントに定義されている色情報が一致するエレメントのペアを取得する第２のステップと、
前記第２のステップで取得されたペアのエレメントに定義された色情報を示すインデックスにおけるインデックス値から、電子透かし情報として埋め込まれたビット情報を順次に検出する第３のステップと
を有することを特徴とする電子透かし検出方法。
【請求項１０】
請求項９に記載の電子透かし検出方法において、
前記第１のステップは、
前記パレットのエレメントに定義された色情報を取得し、
前記第２のステップは、
前記パレットの先頭の０番目のエレメントに定義された色情報と前記パレットの（総エレメント数／２）番目に定義されたエレメントの色情報とが一致するときに、Ｖ（「Ｖ」は、０〜（（総エレメント数／２）−１）の整数である。）番目のエレメントと（（総エレメント数／２）＋Ｖ）番目のエレメントとのペアを作成し、該作成したペアにおいて互いのエレメントに定義された色情報が一致するペアを取得し、
前記第３のステップは、
前記処理対象のパレット画像のインデックスのインデックス値が、０以上かつ前記色情報が一致するペアの数未満であれば、電子透かし情報のビット情報が「０」であると検出するとともに、前記処理対象のパレット画像のインデックスのインデックス値が、（総エレメント数／２）以上かつ（（総エレメント数／２）＋前記色情報が一致するペアの数）未満であれば、電子透かし情報のビット情報が「１」であると検出し、または、
前記処理対象のパレット画像のインデックスのインデックス値が、０以上かつ前記色情報が一致するペアの数未満であれば、電子透かし情報のビット情報が「１」であると検出するとともに、前記処理対象のパレット画像のインデックスのインデックス値が、（総エレメント数／２）以上かつ（（総エレメント数／２）＋前記色情報が一致するペアの数）未満であれば、電子透かし情報のビット情報が「０」であると検出する
ことを特徴とする電子透かし検出方法。
【請求項１１】
請求項９に記載の電子透かし検出方法において、
前記第１のステップは、
前記パレットのエレメントに定義された色情報を取得し、
前記第２のステップは、
前記パレットの（（総エレメント数／２）＋１）〜（総エレメント数−１）番目のエレメントの中に、前記パレットの先頭の０番目のエレメントに定義された色情報と一致するエレメントとしてＷ番目のエレメントがあるときに、０〜（総エレメント数−１−Ｗ）番目のエレメントとＷ〜（総エレメント数−１）番目のエレメントとのペアを作成し、該作成したペアにおいて互いのエレメントに定義された色情報が一致するペアを取得し、
前記第３のステップは、
前記第２のステップで取得した全てのペアで互いのエレメントに定義された色情報が一致するときに、前記処理対象のパレット画像のインデックスのインデックス値が、０以上かつ（総エレメント数−１−Ｗ）以下であれば、電子透かし情報のビット情報が「０」であると検出するとともに、前記処理対象のパレット画像のインデックスのインデックス値が、Ｗ以上かつ（総エレメント数−１）以下であれば、電子透かし情報のビット情報が「１」であると検出し、または、
前記第２のステップで取得した全てのペアで互いのエレメントに定義された色情報が一致するときに、前記処理対象のパレット画像のインデックスのインデックス値が、０以上かつ（総エレメント数−１−Ｗ）以下であれば、電子透かし情報のビット情報が「１」であると検出するとともに、前記処理対象のパレット画像のインデックスのインデックス値が、Ｗ以上かつ（総エレメント数−１）以下であれば、電子透かし情報のビット情報が「０」であると検出する
ことを特徴とする電子透かし検出方法。
【請求項１２】
色情報を定義可能な偶数個のエレメントより構成されるパレットと該エレメントに定義された色情報を画像のピクセル毎に指定するインデックス値を示すインデックスとを用いて表されるパレット画像に電子透かし情報として埋め込まれたビット情報を検出する電子透かし検出方法において、
電子透かし情報を検出する処理対象のパレット画像におけるパレットのエレメントに定義された色情報を取得する第１のステップと、
前記第１のステップで色情報を取得したエレメントの中に、色情報が互いに一致するエレメントのペアがあるときに、前記処理対象のパレット画像のインデックスのインデックス値が、前記ペアの一方のエレメントのパレット番号を示す値と一致すれば、電子透かし情報のビット情報が「０」であると検出するとともに、前記処理対象のパレット画像のインデックスのインデックス値が、前記ペアの一他方のエレメントのパレット番号を示す値と一致すれば、電子透かし情報のビット情報が「１」であると検出し、または、前記第１のステップで色情報を取得したエレメントの中に、色情報が互いに一致するエレメントのペアがあるときに、前記処理対象のパレット画像のインデックスのインデックス値が、前記ペアの一方のエレメントのパレット番号を示す値と一致すれば、電子透かし情報のビット情報が「１」であると検出するとともに、前記処理対象のパレット画像のインデックスのインデックス値が、前記ペアの一他方のエレメントのパレット番号を示す値と一致すれば、電子透かし情報のビット情報が「０」であると検出する第２のステップと
を有することを特徴とする電子透かし検出方法。
【請求項１３】
色情報を定義可能な偶数個のエレメントより構成されるパレットと該エレメントに定義された色情報を画像のピクセル毎に指定するインデックス値を示すインデックスとを用いて表されるパレット画像に電子透かし情報として埋め込まれたビット情報を検出する電子透かし検出装置において、
電子透かし情報を検出する処理対象のパレット画像におけるパレットの構成を取得する第１の取得手段と、
前記第１の取得手段で取得した前記パレットの構成より、前記パレットの各エレメントに定義されている色情報が一致するエレメントのペアを取得する第２の取得手段と、
前記第２の取得手段で取得されたペアのエレメントに定義された色情報を示すインデックスにおけるインデックス値から、電子透かし情報として埋め込まれたビット情報を順次に検出する電子透かし情報検出手段と
を有することを特徴とする電子透かし検出装置。
【請求項１４】
請求項１３に記載の電子透かし検出装置において、
前記第１の取得手段は、
前記パレットのエレメントに定義された色情報を取得し、
前記第２の取得手段は、
前記パレットの先頭の０番目のエレメントに定義された色情報と前記パレットの（総エレメント数／２）番目に定義されたエレメントの色情報とが一致するときに、Ｖ（「Ｖ」は、０〜（（総エレメント数／２）−１）の整数である。）番目のエレメントと（（総エレメント数／２）＋Ｖ）番目のエレメントとのペアを作成し、該作成したペアにおいて互いのエレメントに定義された色情報が一致するペアを取得し、
前記電子透かし情報検出手段は、
前記処理対象のパレット画像のインデックスのインデックス値が、０以上かつ前記色情報が一致するペアの数未満であれば、電子透かし情報のビット情報が「０」であると検出するとともに、前記処理対象のパレット画像のインデックスのインデックス値が、（総エレメント数／２）以上かつ（（総エレメント数／２）＋前記色情報が一致するペアの数）未満であれば、電子透かし情報のビット情報が「１」であると検出し、または、
前記処理対象のパレット画像のインデックスのインデックス値が、０以上かつ前記色情報が一致するペアの数未満であれば、電子透かし情報のビット情報が「１」であると検出するとともに、前記処理対象のパレット画像のインデックスのインデックス値が、（総エレメント数／２）以上かつ（（総エレメント数／２）＋前記色情報が一致するペアの数）未満であれば、電子透かし情報のビット情報が「０」であると検出する
ことを特徴とする電子透かし検出装置。
【請求項１５】
請求項１３に記載の電子透かし検出装置において、
前記第１の取得手段は、
前記パレットのエレメントに定義された色情報を取得し、
前記第２の取得手段は、
前記パレットの（（総エレメント数／２）＋１）〜（総エレメント数−１）番目のエレメントの中に、前記パレットの先頭の０番目のエレメントに定義された色情報と一致するエレメントとしてＷ番目のエレメントがあるときに、０〜（総エレメント数−１−Ｗ）番目のエレメントとＷ〜（総エレメント数−１）番目のエレメントとのペアを作成し、該作成したペアにおいて互いのエレメントに定義された色情報が一致するペアを取得し、
前記電子透かし情報検出手段は、
前記第２の取得手段で取得した全てのペアで互いのエレメントに定義された色情報が一致するときに、前記処理対象のパレット画像のインデックスのインデックス値が、０以上かつ（総エレメント数−１−Ｗ）以下であれば、電子透かし情報のビット情報が「０」であると検出するとともに、前記処理対象のパレット画像のインデックスのインデックス値が、Ｗ以上かつ（総エレメント数−１）以下であれば、電子透かし情報のビット情報が「１」であると検出し、または、
前記第２の取得手段で取得した全てのペアで互いのエレメントに定義された色情報が一致するときに、前記処理対象のパレット画像のインデックスのインデックス値が、０以上かつ（総エレメント数−１−Ｗ）以下であれば、電子透かし情報のビット情報が「１」であると検出するとともに、前記処理対象のパレット画像のインデックスのインデックス値が、Ｗ以上かつ（総エレメント数−１）以下であれば、電子透かし情報のビット情報が「０」であると検出する
ことを特徴とする電子透かし検出装置。
【請求項１６】
色情報を定義可能な偶数個のエレメントより構成されるパレットと該エレメントに定義された色情報を画像のピクセル毎に指定するインデックス値を示すインデックスとを用いて表されるパレット画像に電子透かし情報として埋め込まれたビット情報を検出する電子透かし検出装置において、
電子透かし情報を検出する処理対象のパレット画像におけるパレットのエレメントに定義された色情報を取得する取得手段と、
前記第１のステップで色情報を取得したエレメントの中に、色情報が互いに一致するエレメントのペアがあるときに、前記処理対象のパレット画像のインデックスのインデックス値が、前記ペアの一方のエレメントのパレット番号を示す値と一致すれば、電子透かし情報のビット情報が「０」であると検出するとともに、前記処理対象のパレット画像のインデックスのインデックス値が、前記ペアの一他方のエレメントのパレット番号を示す値と一致すれば、電子透かし情報のビット情報が「１」であると検出し、または、前記第１のステップで色情報を取得したエレメントの中に、色情報が互いに一致するエレメントのペアがあるときに、前記処理対象のパレット画像のインデックスのインデックス値が、前記ペアの一方のエレメントのパレット番号を示す値と一致すれば、電子透かし情報のビット情報が「１」であると検出するとともに、前記処理対象のパレット画像のインデックスのインデックス値が、前記ペアの一他方のエレメントのパレット番号を示す値と一致すれば、電子透かし情報のビット情報が「０」であると検出する電子透かし情報検出手段と
を有することを特徴とする電子透かし検出装置。
【請求項１７】
請求項１、２、３または４のいずれか１項に記載の電子透かし埋め込み方法をコンピュータに実行させるためのプログラム。
【請求項１８】
請求項５、６、７または８のいずれか１項に記載の電子透かし埋め込み装置としてコンピュータを機能させるためのプログラム。
【請求項１９】
請求項９、１０、１１または１２のいずれか１項に記載の電子透かし検出方法をコンピュータに実行させるためのプログラム。
【請求項２０】
請求項１３、１４、１５または１６のいずれか１項に記載の電子透かし検出装置としてコンピュータを機能させるためのプログラム。
【請求項２１】
請求項１７、１８、１９または２０のいずれか１項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、電子透かし検出装置、プログラムおよびコンピューター読み取り可能な記録媒体に関し、さらに詳細には、パレット画像に電子透かし情報を埋め込む際に用いる電子透かし埋め込み方法、電子透かし埋め込み装置、プログラムおよびコンピューター読み取り可能な記録媒体ならびにパレット画像に埋め込まれた電子透かし情報を検出する際に用いる電子透かし検出方法、電子透かし検出装置、プログラムおよびコンピューター読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
近年、コンピュータネットワークの発展に伴い、画像データや音声データなどのような電子データの著作権侵害が問題となってきている。
【０００３】
こうした電子データの著作権侵害に対抗して電子データの著作権を保護する手段として、例えば、電子データに電子透かし情報を埋め込む電子透かし情報埋め込み技術が種々開発されてきている。
【０００４】
ここで、電子透かし（以下、電子透かしを、単に「透かし」と適宜に称することとする。）情報埋め込み技術とは、画像データや音声データといった電子データに、その冗長性を利用して他の情報を埋め込む技術であり、一般に、画像データや音声データといった電子データに埋め込まれた他の情報を「電子透かし情報（透かし情報）」あるいは単に「電子透かし（透かし）」と称している。
【０００５】
ところで、従来よりコンピュータネットワーク上、例えば、インターネット上などで頻繁に流通している画像ファイルとして、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）などのフォーマットによるフルカラー画像の画像ファイルや、ＧＩＦ（Ｇｒａｐｈｉｃｓ  Ｉｎｔｅｒｃｈａｎｇｅ  Ｆｏｒｍａｔ）あるいはＰＮＧ（Ｐｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ）などのフォーマットによる、所謂、パレット画像の画像ファイルが知られている。
【０００６】
このＧＩＦやＰＮＧなどのフォーマットによるパレット画像とは、基本的には画像データ（以下、「インデックス」と適宜に称することとする。）とカラー（色彩）を表示するためのカラーテーブル（以下、「パレット」と適宜に称することとする。）とで構成されている。
【０００７】
ここで、パレットは、０〜２５５の範囲の整数よりなる通し番号（以下、「パレット番号」と適宜に称する。）で指定される２５６個のエレメントにより構成されており、各エレメントにはそれぞれ色情報として光の三原色（ＲＧＢ：Ｒ（Ｒｅｄ）＝赤、Ｇ（Ｇｒｅｅｎ）＝緑、Ｂ（Ｂｌｕｅ）＝青）の各要素の強さの組み合わせで１色を表すＲＧＢ色を示す値たるＲｎＧｎＢｎ値（ｎ＝０〜２５５の範囲の整数）として定義されている。このため、パレット画像における色の最大数は、２５６色となる。
【０００８】
また、インデックスは、画像の各ピクセル毎に付与されるインデックス値として、各ピクセルの色に対応するパレット番号をそれぞれ示すものである。
【０００９】
図１（ａ）（ｂ）には、こうしたインデックスならびにパレットについて、サイズが８行８列のピクセル（８×８ピクセル）のパレット画像に関する具体例が示されている。なお、図１（ａ）は８×８ピクセルに対応したインデックスを概念的に示し、図１（ｂ）はそのパレットを概念的に示している。
【００１０】
この図１（ａ）（ｂ）の具体例に示すように、インデックス値は、０〜２５５の範囲の整数となり、また、この０〜２５５の範囲の整数よりなるインデックス値は、パレットを構成する２５６個のエレメントをそれぞれ指定するパレット番号に対応している。
【００１１】
そして、パレットを構成する２５６個のエレメントのそれぞれには、色情報としてＲ０Ｇ０Ｂ０〜Ｒ２５５Ｇ２５５Ｂ２５５で定義される色彩の情報が１個ずつ割り当てられている。
【００１２】
即ち、パレット画像においては、当該パレット画像における各ピクセルのインデックス値ｍ（ｍ＝０〜２５５の範囲の整数）により、当該インデックス値ｍに対応するパレットのｍ番目のエレメント、即ち、パレット番号ｍのエレメントに定義された色情報たるＲｍＧｍＢｍ値の色彩が表示されることになる。
【００１３】
つまり、図１（ａ）（ｂ）に示す具体例に沿って説明すると、例えば、図１（ａ）に示すインデックスにおけるインデックス値０が付与された１行８列のピクセル、インデックス値１が付与された２行１列のピクセル、インデックス値２が付与された３行６列のピクセル、インデックス値３が付与された４行４列のピクセル、インデックス値４が付与された５行７列のピクセル、インデックス値２５４が付与された７行５列のピクセルならびにインデックス値２５５が付与された８行７列のピクセルは、それぞれ図１（ｂ）に示すパレットにおける０番目、１番目、２番目、３番目、４番目、２５４番目ならびに２５５番目のエレメント、即ち、パレット番号０、パレット番号１、パレット番号２、パレット番号３、パレット番号４、パレット番号２５４ならびにパレット番号２５５のエレメントに定義された色情報たるＲ０Ｇ０Ｂｍ値、Ｒ１Ｇ１Ｂ１値、Ｒ２Ｇ２Ｂ２値、Ｒ３Ｇ３Ｂ３値、Ｒ４Ｇ４Ｂ４値、Ｒ２５４Ｇ２５４Ｂ２５４値、Ｒ２５５Ｇ２５５Ｂ２５５値の色彩で表示される。
【００１４】
なお、上記においては、パレットを構成する２５６個のエレメントの全てに色情報が定義されている状態について説明したが、パレットを構成する２５６個のエレメントの全てに色情報を定義しておく必要はなく、ユーザーの必要に応じて、２５６個のエレメントのうちの一部の任意のエレメントにのみ色情報を定義するようにしてもよいものであり、そうしたパレットは屡々存在するものである。
【００１５】
ところで、上記したような各種の画像ファイルに透かし情報を埋め込む際に、例えば、ＪＰＥＧなどのフルカラーの画像においては、それぞれ多くの色彩が使用されているため、透かし情報を表すビット情報を直接画像データに埋め込むようにしても、透かし情報が埋め込まれた画像と透かし情報が埋め込まれていない画像とを比較した際に、両者における色彩などの変化の影響をほとんど受けないため、人間の視覚上では透かし情報が埋め込まれた画像と透かし情報が埋め込まれていない画像とを見分けることはほとんど不可能である。
【００１６】
しかしながら、ＧＩＦやＰＮＧなどのパレット画像では、画像の色彩がパレットに定義されていて、その色彩の最大数は２５６色しかないため、透かし情報を表すビット情報が直接画像データに埋め込まれると、透かし情報が埋め込まれた画像と透かし情報が埋め込まれていない画像とを比較した際に、両者における色彩などの変化が大きく、色彩を変化させずに透かし情報を埋め込むことが困難であった。
【００１７】
このため、人間の視覚でも、透かし情報が埋め込まれた画像と透かし情報が埋め込まれていない画像とを見分けることが可能となってしまうという問題点があった。
【００１８】
なお、本願出願人が特許出願時に知っている先行技術は、上記において説明したようなものであって文献公知発明に係る発明ではないため、記載すべき先行技術情報はない。
【発明の開示】
【発明が解決しようとする課題】
【００１９】
本発明は、上記したような従来の技術の有する種々の問題点に鑑みてなされたものであり、その目的とするところは、色彩を変化させずに、あるいは、色彩を変化させたとしてもその変化を極めて限定的にして、人間の視覚上では色彩の変化を見分けることができないようにしてパレット画像に電子透かし情報を埋め込むようにした電子透かし埋め込み方法、電子透かし埋め込み装置、プログラムおよびコンピューター読み取り可能な記録媒体を提供しようとするものである。
【００２０】
また、本発明の目的とするところは、パレット画像に埋め込まれた電子透かし情報を検出する電子透かし検出方法、電子透かし検出装置、プログラムおよびコンピューター読み取り可能な記録媒体を提供しようとするものである。
【課題を解決するための手段】
【００２１】
上記目的を達成するために、本発明による電子透かし埋め込み方法、電子透かし埋め込み装置、プログラムおよびコンピューター読み取り可能な記録媒体は、パレット画像に定義されている色情報の数に応じてパレットの構成を変化させ、当該構成を変化させたパレットの当該構成に応じてパレット画像のインデックスにおける各ピクセルのインデックス値を変更し、当該変更したインデックスにおける各ピクセルのインデックス値に透かし情報としてビット情報を埋め込むようにしたものである。
【００２２】
こうした本発明によれば、色彩を大きく変化させることなくパレット画像に電子透かし情報を埋め込むことが可能となる。
【００２３】
また、本発明による電子透かし検出方法、電子透かし検出装置、プログラムおよびコンピューター読み取り可能な記録媒体は、透かし情報を埋め込んだパレット画像の構成を調べ、当該調べたパレット画像の構成に合わせて透かし情報を検出するようにしたものである。
【００２４】
こうした本発明によれば、パレット画像に埋め込まれた電子透かし情報を精度高く検出することが可能となる。
【００２５】
即ち、本発明のうち請求項１に記載の発明は、色情報を定義可能な偶数個のエレメントより構成されるパレットと該エレメントに定義された色情報を画像のピクセル毎に指定するインデックス値を示すインデックスとを用いて表されるパレット画像に電子透かし情報としてビット情報を埋め込む電子透かし埋め込み方法において、電子透かし情報を埋め込む処理対象のパレット画像のパレットの各エレメントに定義されている色情報の数たる色情報数を取得する第１のステップと、上記第１のステップで取得した色情報数に応じて、該色情報を定義する上記パレットのエレメントを変更して上記パレットの構成を変更する第２のステップと、上記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値が、上記第２のステップで構成を変更する前の上記パレットの該構成における色情報と同一の色情報を指定するように、上記第２のステップで構成を変更された上記パレットの該構成に合わせて、上記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値を変更する第３のステップと、上記第３のステップで変更された上記インデックスにおける各ピクセルのインデックス値に電子透かし情報としてビット情報を順次に埋め込む第４のステップとを有するようにしたものである。
【００２６】
また、本発明のうち請求項２に記載の発明は、本発明のうち請求項１に記載の発明において、上記第１のステップで取得した色情報数が、上記エレメントの総数の半分（以下、「エレメントの総数」を「総エレメント数」と表記し、「エレメントの総数の半分」を「総エレメント数／２」と表記する。）であるとき、上記第２のステップは、上記処理対象のパレット画像のパレットの各エレメントに定義されている色情報を、上記パレットの先頭の０番目のエレメントから（色情報数−１）番目のエレメントまでにそれぞれ移動して上記パレットの構成を変更し、上記第３のステップは、上記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値が、上記第２のステップで色情報を定義するエレメントを移動して構成を変更する前の上記パレットの該構成における色情報と同一の色情報を指定するように、上記第２のステップで色情報を定義するエレメントを移動して構成を変更された上記パレットの該構成に合わせて、上記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値を変更し、上記第４のステップは、上記第２のステップで上記パレットの先頭の０番目のエレメントから（色情報数−１）番目のエレメントまでに移動した色情報を、上記パレットの（総エレメント数／２）番目のエレメントから（（総エレメント数／２）＋（色情報−１））番目のエレメントまでコピーし、上記インデックスにおける各ピクセルのインデックス値に埋め込む上記電子透かし情報のビット情報が「０」であるときは該インデックス値を変更せず、かつ、上記インデックスにおける各ピクセルのインデックス値に埋め込む上記電子透かし情報のビット情報が「１」であるときは該インデックス値に（総エレメント数／２）を加算して変更し、または、上記インデックスにおける各ピクセルのインデックス値に埋め込む上記電子透かし情報のビット情報が「１」であるときは該インデックス値を変更せず、かつ、上記インデックスにおける各ピクセルのインデックス値に埋め込む上記電子透かし情報のビット情報が「０」であるときは該インデックス値に（総エレメント数／２）を加算して変更するようにしたものである。
【００２７】
また、本発明のうち請求項３に記載の発明は、本発明のうち請求項１に記載の発明において、上記第１のステップで取得した色情報数が、（（総エレメント数／２）＋１）乃至（総エレメント数−１）であるとき、上記第２のステップは、上記処理対象のパレット画像のパレットの各エレメントに定義されている色情報を、上記パレットの先頭の０番目のエレメントから（色情報数−１）番目のエレメントまでにそれぞれ移動して上記パレットの構成を変更し、上記第３のステップは、上記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値が、上記第２のステップで色情報を定義するエレメントを移動して構成を変更する前の上記パレットの該構成における色情報と同一の色情報を指定するように、上記第２のステップで色情報を定義するエレメントを移動して構成を変更された上記パレットの該構成に合わせて、上記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値を変更し、上記第４のステップは、上記第２のステップで上記パレットの先頭の０番目のエレメントから（色情報数−１）番目のエレメントまでに移動した色情報のなかで、上記パレットの先頭の０番目のエレメントから（総エレメント数−色情報数）番目のエレメントまでの色情報を、上記パレットの色情報数番目のエレメントから総エレメント数番目のエレメントまでコピーし、上記インデックスにおけるインデックス値が０〜（（総エレメント数−１）−色情報数）のピクセルたる電子透かし埋め込み対象ピクセルにのみ上記電子透かし情報のビット情報を埋め込むものであり、上記電子透かし埋め込み対象ピクセルのインデックス値に埋め込む上記電子透かし情報のビット情報が「０」であるときは該インデックス値を変更せず、かつ、上記電子透かし埋め込み対象ピクセルのインデックス値に埋め込む上記電子透かし情報のビット情報が「１」であるときは該インデックス値に色情報数を加算して変更し、または、上記電子透かし埋め込み対象ピクセルのインデックス値に埋め込む上記電子透かし情報のビット情報が「１」であるときは該インデックス値を変更せず、かつ、上記電子透かし埋め込み対象ピクセルのインデックス値に埋め込む上記電子透かし情報のビット情報が「０」であるときは該インデックス値に色情報数を加算して変更するようにしたものである。
【００２８】
また、本発明のうち請求項４に記載の発明は、色情報を定義可能な偶数個のエレメントより構成されるパレットと該エレメントに定義された色情報を画像のピクセル毎に指定するインデックス値を示すインデックスとを用いて表されるパレット画像に電子透かし情報としてビット情報を埋め込む電子透かし埋め込み方法において、処理対象のパレット画像のインデックスの各ピクセルにおける使用頻度が最も少ないインデックス値および使用頻度が最も多いインデックス値を取得するとともに、該使用頻度が最も少ないインデックス値が指定する色情報を定義したパレットのエレメントおよび該使用頻度が最も多いインデックス値が指定する色情報を定義した上記パレットのエレメントを取得する第１のステップと、上記インデックスにおいて、上記第１のステップで取得した上記使用頻度が最も少ないインデックス値を、上記第１のステップで取得した上記使用頻度が最も多いインデックス値に変更する第２のステップと、上記第１のステップで取得した上記使用頻度が最も少ないインデックス値が指定する色情報を定義した上記パレットの上記エレメントに、上記使用頻度が最も多いインデックス値が指定する色情報をコピーして色情報を書き換える第３のステップと、上記第２のステップでインデックス値を変更されたインデックスにおける上記使用頻度が最も多いインデックス値に電子透かし情報としてビット情報を順次に埋め込む第４のステップとを有し、上記第４のステップは、上記ビット情報が「０」であるときは該インデックス値を変更せず、かつ、上記ビット情報が「１」であるときは該インデックス値を上記使用頻度が最も少ないインデックス値または上記使用頻度が最も多いインデックス値に変更し、または、上記ビット情報が「１」であるときは該インデックス値を変更せず、かつ、上記ビット情報が「０」であるときは該インデックス値を上記使用頻度が最も少ないインデックス値または上記使用頻度が最も多いインデックス値に変更するようにしたものである。
【００２９】
また、本発明のうち請求項５に記載の発明は、色情報を定義可能な偶数個のエレメントより構成されるパレットと該エレメントに定義された色情報を画像のピクセル毎に指定するインデックス値を示すインデックスとを用いて表されるパレット画像に電子透かし情報としてビット情報を埋め込む電子透かし埋め込み装置において、電子透かし情報を埋め込む処理対象のパレット画像のパレットの各エレメントに定義されている色情報の数たる色情報数を取得する取得手段と、上記取得手段で取得した色情報数に応じて、該色情報を定義する上記パレットのエレメントを変更して上記パレットの構成を変更する第１の変更手段と、上記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値が、上記第１の変更手段で構成を変更する前の上記パレットの該構成における色情報と同一の色情報を指定するように、上記第１の変更手段で構成を変更された上記パレットの該構成に合わせて、上記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値を変更する第２の変更手段と、上記第２の変更手段で変更された上記インデックスにおける各ピクセルのインデックス値に電子透かし情報としてビット情報を順次に埋め込む電子透かし情報埋め込み手段とを有するようにしたものである。
【００３０】
また、本発明のうち請求項６に記載の発明は、本発明のうち請求項５に記載の発明において、上記取得手段で取得した色情報数が、上記エレメントの総数の半分（以下、「エレメントの総数」を「総エレメント数」と表記し、「エレメントの総数の半分」を「総エレメント数／２」と表記する。）であるとき、上記第１の変更手段は、上記処理対象のパレット画像のパレットの各エレメントに定義されている色情報を、上記パレットの先頭の０番目のエレメントから（色情報数−１）番目のエレメントまでにそれぞれ移動して上記パレットの構成を変更し、上記第２の変更手段は、上記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値が、上記第１の変更手段で色情報を定義するエレメントを移動して構成を変更する前の上記パレットの該構成における色情報と同一の色情報を指定するように、上記第１の変更手段で色情報を定義するエレメントを移動して構成を変更された上記パレットの該構成に合わせて、上記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値を変更し、上記電子透かし情報埋め込み手段は、上記第１の変更手段で上記パレットの先頭の０番目のエレメントから（色情報数−１）番目のエレメントまでに移動した色情報を、上記パレットの（総エレメント数／２）番目のエレメントから（（総エレメント数／２）＋（色情報−１））番目のエレメントまでコピーし、上記インデックスにおける各ピクセルのインデックス値に埋め込む上記電子透かし情報のビット情報が「０」であるときは該インデックス値を変更せず、かつ、上記インデックスにおける各ピクセルのインデックス値に埋め込む上記電子透かし情報のビット情報が「１」であるときは該インデックス値に（総エレメント数／２）を加算して変更し、または、上記インデックスにおける各ピクセルのインデックス値に埋め込む上記電子透かし情報のビット情報が「１」であるときは該インデックス値を変更せず、かつ、上記インデックスにおける各ピクセルのインデックス値に埋め込む上記電子透かし情報のビット情報が「０」であるときは該インデックス値に（総エレメント数／２）を加算して変更するようにしたものである。
【００３１】
また、本発明のうち請求項７に記載の発明は、本発明のうち請求項５に記載の発明において、上記取得手段で取得した色情報数が、（（総エレメント数／２）＋１）乃至（総エレメント数−１）であるとき、上記第１の変更手段は、上記処理対象のパレット画像のパレットの各エレメントに定義されている色情報を、上記パレットの先頭の０番目のエレメントから（色情報数−１）番目のエレメントまでにそれぞれ移動して上記パレットの構成を変更し、上記第２の変更手段は、上記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値が、上記第１の変更手段で色情報を定義するエレメントを移動して構成を変更する前の上記パレットの該構成における色情報と同一の色情報を指定するように、上記第１の変更手段で色情報を定義するエレメントを移動して構成を変更された上記パレットの該構成に合わせて、上記処理対象のパレット画像のインデックスにおける各ピクセルのインデックス値を変更し、上記電子透かし情報埋め込み手段は、上記第１の変更手段で上記パレットの先頭の０番目のエレメントから（色情報数−１）番目のエレメントまでに移動した色情報のなかで、上記パレットの先頭の０番目のエレメントから（総エレメント数−色情報数）番目のエレメントまでの色情報を、上記パレットの色情報数番目のエレメントから総エレメント数番目のエレメントまでコピーし、上記インデックスにおけるインデックス値が０〜（（総エレメント数−１）−色情報数）のピクセルたる電子透かし埋め込み対象ピクセルにのみ上記電子透かし情報のビット情報を埋め込むものであり、上記電子透かし埋め込み対象ピクセルのインデックス値に埋め込む上記電子透かし情報のビット情報が「０」であるときは該インデックス値を変更せず、かつ、上記電子透かし埋め込み対象ピクセルのインデックス値に埋め込む上記電子透かし情報のビット情報が「１」であるときは該インデックス値に色情報数を加算して変更し、または、上記電子透かし埋め込み対象ピクセルのインデックス値に埋め込む上記電子透かし情報のビット情報が「１」であるときは該インデックス値を変更せず、かつ、上記電子透かし埋め込み対象ピクセルのインデックス値に埋め込む上記電子透かし情報のビット情報が「０」であるときは該インデックス値に色情報数を加算して変更するようにしたものである。
【００３２】
また、本発明のうち請求項８に記載の発明は、色情報を定義可能な偶数個のエレメントより構成されるパレットと該エレメントに定義された色情報を画像のピクセル毎に指定するインデックス値を示すインデックスとを用いて表されるパレット画像に電子透かし情報としてビット情報を埋め込む電子透かし埋め込み装置において、処理対象のパレット画像のインデックスの各ピクセルにおける使用頻度が最も少ないインデックス値および使用頻度が最も多いインデックス値を取得するとともに、該使用頻度が最も少ないインデックス値が指定する色情報を定義したパレットのエレメントおよび該使用頻度が最も多いインデックス値が指定する色情報を定義した上記パレットのエレメントを取得する取得手段と、上記インデックスにおいて、上記取得手段で取得した上記使用頻度が最も少ないインデックス値を、上記取得手段で取得した上記使用頻度が最も多いインデックス値に変更する変更手段と、上記取得手段で取得した上記使用頻度が最も少ないインデックス値が指定する色情報を定義した上記パレットの上記エレメントに、上記使用頻度が最も多いインデックス値が指定する色情報をコピーして色情報を書き換える書き換え手段と、上記変更手段でインデックス値を変更されたインデックスにおける上記使用頻度が最も多いインデックス値に電子透かし情報としてビット情報を順次に埋め込む電子透かし情報埋め込み手段であって、上記ビット情報が「０」であるときは該インデックス値を変更せず、かつ、上記ビット情報が「１」であるときは該インデックス値を上記使用頻度が最も少ないインデックス値または上記使用頻度が最も多いインデックス値に変更し、または、上記ビット情報が「１」であるときは該インデックス値を変更せず、かつ、上記ビット情報が「０」であるときは該インデックス値を上記使用頻度が最も少ないインデックス値または上記使用頻度が最も多いインデックス値に変更するようにしたものである。
【００３３】
また、本発明のうち請求項９に記載の発明は、色情報を定義可能な偶数個のエレメントより構成されるパレットと該エレメントに定義された色情報を画像のピクセル毎に指定するインデックス値を示すインデックスとを用いて表されるパレット画像に電子透かし情報として埋め込まれたビット情報を検出する電子透かし検出方法において、電子透かし情報を検出する処理対象のパレット画像におけるパレットの構成を取得する第１のステップと、上記第１のステップで取得した上記パレットの構成より、上記パレットの各エレメントに定義されている色情報が一致するエレメントのペアを取得する第２のステップと、上記第２のステップで取得されたペアのエレメントに定義された色情報を示すインデックスにおけるインデックス値から、電子透かし情報として埋め込まれたビット情報を順次に検出する第３のステップとを有するようにしたものである。
【００３４】
また、本発明のうち請求項１０に記載の発明は、本発明のうち請求項９に記載の発明において、上記第１のステップは、上記パレットのエレメントに定義された色情報を取得し、上記第２のステップは、上記パレットの先頭の０番目のエレメントに定義された色情報と上記パレットの（総エレメント数／２）番目に定義されたエレメントの色情報とが一致するときに、Ｖ（「Ｖ」は、０〜（（総エレメント数／２）−１）の整数である。）番目のエレメントと（（総エレメント数／２）＋Ｖ）番目のエレメントとのペアを作成し、該作成したペアにおいて互いのエレメントに定義された色情報が一致するペアを取得し、上記第３のステップは、上記処理対象のパレット画像のインデックスのインデックス値が、０以上かつ上記色情報が一致するペアの数未満であれば、電子透かし情報のビット情報が「０」であると検出するとともに、上記処理対象のパレット画像のインデックスのインデックス値が、（総エレメント数／２）以上かつ（（総エレメント数／２）＋上記色情報が一致するペアの数）未満であれば、電子透かし情報のビット情報が「１」であると検出し、または、上記処理対象のパレット画像のインデックスのインデックス値が、０以上かつ上記色情報が一致するペアの数未満であれば、電子透かし情報のビット情報が「１」であると検出するとともに、上記処理対象のパレット画像のインデックスのインデックス値が、（総エレメント数／２）以上かつ（（総エレメント数／２）＋上記色情報が一致するペアの数）未満であれば、電子透かし情報のビット情報が「０」であると検出するようにしたものである。
【００３５】
また、本発明のうち請求項１１に記載の発明は、本発明のうち請求項９に記載の発明において、上記第１のステップは、上記パレットのエレメントに定義された色情報を取得し、上記第２のステップは、上記パレットの（（総エレメント数／２）＋１）〜（総エレメント数−１）番目のエレメントの中に、上記パレットの先頭の０番目のエレメントに定義された色情報と一致するエレメントとしてＷ番目のエレメントがあるときに、０〜（総エレメント数−１−Ｗ）番目のエレメントとＷ〜（総エレメント数−１）番目のエレメントとのペアを作成し、該作成したペアにおいて互いのエレメントに定義された色情報が一致するペアを取得し、上記第３のステップは、上記第２のステップで取得した全てのペアで互いのエレメントに定義された色情報が一致するときに、上記処理対象のパレット画像のインデックスのインデックス値が、０以上かつ（総エレメント数−１−Ｗ）以下であれば、電子透かし情報のビット情報が「０」であると検出するとともに、上記処理対象のパレット画像のインデックスのインデックス値が、Ｗ以上かつ（総エレメント数−１）以下であれば、電子透かし情報のビット情報が「１」であると検出し、または、上記第２のステップで取得した全てのペアで互いのエレメントに定義された色情報が一致するときに、上記処理対象のパレット画像のインデックスのインデックス値が、０以上かつ（総エレメント数−１−Ｗ）以下であれば、電子透かし情報のビット情報が「１」であると検出するとともに、上記処理対象のパレット画像のインデックスのインデックス値が、Ｗ以上かつ（総エレメント数−１）以下であれば、電子透かし情報のビット情報が「０」であると検出するようにしたものである。
【００３６】
また、本発明のうち請求項１２に記載の発明は、色情報を定義可能な偶数個のエレメントより構成されるパレットと該エレメントに定義された色情報を画像のピクセル毎に指定するインデックス値を示すインデックスとを用いて表されるパレット画像に電子透かし情報として埋め込まれたビット情報を検出する電子透かし検出方法において、電子透かし情報を検出する処理対象のパレット画像におけるパレットのエレメントに定義された色情報を取得する第１のステップと、上記第１のステップで色情報を取得したエレメントの中に、色情報が互いに一致するエレメントのペアがあるときに、上記処理対象のパレット画像のインデックスのインデックス値が、上記ペアの一方のエレメントのパレット番号を示す値と一致すれば、電子透かし情報のビット情報が「０」であると検出するとともに、上記処理対象のパレット画像のインデックスのインデックス値が、上記ペアの一他方のエレメントのパレット番号を示す値と一致すれば、電子透かし情報のビット情報が「１」であると検出し、または、上記第１のステップで色情報を取得したエレメントの中に、色情報が互いに一致するエレメントのペアがあるときに、上記処理対象のパレット画像のインデックスのインデックス値が、上記ペアの一方のエレメントのパレット番号を示す値と一致すれば、電子透かし情報のビット情報が「１」であると検出するとともに、上記処理対象のパレット画像のインデックスのインデックス値が、上記ペアの一他方のエレメントのパレット番号を示す値と一致すれば、電子透かし情報のビット情報が「０」であると検出する第２のステップとを有するようにしたものである。
【００３７】
また、本発明のうち請求項１３に記載の発明は、色情報を定義可能な偶数個のエレメントより構成されるパレットと該エレメントに定義された色情報を画像のピクセル毎に指定するインデックス値を示すインデックスとを用いて表されるパレット画像に電子透かし情報として埋め込まれたビット情報を検出する電子透かし検出装置において、電子透かし情報を検出する処理対象のパレット画像におけるパレットの構成を取得する第１の取得手段と、上記第１の取得手段で取得した上記パレットの構成より、上記パレットの各エレメントに定義されている色情報が一致するエレメントのペアを取得する第２の取得手段と、上記第２の取得手段で取得されたペアのエレメントに定義された色情報を示すインデックスにおけるインデックス値から、電子透かし情報として埋め込まれたビット情報を順次に検出する電子透かし情報検出手段とを有するようにしたものである。
【００３８】
また、本発明のうち請求項１４に記載の発明は、本発明のうち請求項１３に記載の発明において、上記第１の取得手段は、上記パレットのエレメントに定義された色情報を取得し、上記第２の取得手段は、上記パレットの先頭の０番目のエレメントに定義された色情報と上記パレットの（総エレメント数／２）番目に定義されたエレメントの色情報とが一致するときに、Ｖ（「Ｖ」は、０〜（（総エレメント数／２）−１）の整数である。）番目のエレメントと（（総エレメント数／２）＋Ｖ）番目のエレメントとのペアを作成し、該作成したペアにおいて互いのエレメントに定義された色情報が一致するペアを取得し、上記電子透かし情報検出手段は、上記処理対象のパレット画像のインデックスのインデックス値が、０以上かつ上記色情報が一致するペアの数未満であれば、電子透かし情報のビット情報が「０」であると検出するとともに、上記処理対象のパレット画像のインデックスのインデックス値が、（総エレメント数／２）以上かつ（（総エレメント数／２）＋上記色情報が一致するペアの数）未満であれば、電子透かし情報のビット情報が「１」であると検出し、または、上記処理対象のパレット画像のインデックスのインデックス値が、０以上かつ上記色情報が一致するペアの数未満であれば、電子透かし情報のビット情報が「１」であると検出するとともに、上記処理対象のパレット画像のインデックスのインデックス値が、（総エレメント数／２）以上かつ（（総エレメント数／２）＋上記色情報が一致するペアの数）未満であれば、電子透かし情報のビット情報が「０」であると検出するようにしたものである。
【００３９】
また、本発明のうち請求項１５に記載の発明は、本発明のうち請求項１３に記載の発明において、上記第１の取得手段は、上記パレットのエレメントに定義された色情報を取得し、上記第２の取得手段は、上記パレットの（（総エレメント数／２）＋１）〜（総エレメント数−１）番目のエレメントの中に、上記パレットの先頭の０番目のエレメントに定義された色情報と一致するエレメントとしてＷ番目のエレメントがあるときに、０〜（総エレメント数−１−Ｗ）番目のエレメントとＷ〜（総エレメント数−１）番目のエレメントとのペアを作成し、該作成したペアにおいて互いのエレメントに定義された色情報が一致するペアを取得し、上記電子透かし情報検出手段は、上記第２の取得手段で取得した全てのペアで互いのエレメントに定義された色情報が一致するときに、上記処理対象のパレット画像のインデックスのインデックス値が、０以上かつ（総エレメント数−１−Ｗ）以下であれば、電子透かし情報のビット情報が「０」であると検出するとともに、上記処理対象のパレット画像のインデックスのインデックス値が、Ｗ以上かつ（総エレメント数−１）以下であれば、電子透かし情報のビット情報が「１」であると検出し、または、上記第２の取得手段で取得した全てのペアで互いのエレメントに定義された色情報が一致するときに、上記処理対象のパレット画像のインデックスのインデックス値が、０以上かつ（総エレメント数−１−Ｗ）以下であれば、電子透かし情報のビット情報が「１」であると検出するとともに、上記処理対象のパレット画像のインデックスのインデックス値が、Ｗ以上かつ（総エレメント数−１）以下であれば、電子透かし情報のビット情報が「０」であると検出するようにしたものである。
【００４０】
また、本発明のうち請求項１６に記載の発明は、色情報を定義可能な偶数個のエレメントより構成されるパレットと該エレメントに定義された色情報を画像のピクセル毎に指定するインデックス値を示すインデックスとを用いて表されるパレット画像に電子透かし情報として埋め込まれたビット情報を検出する電子透かし検出装置において、電子透かし情報を検出する処理対象のパレット画像におけるパレットのエレメントに定義された色情報を取得する取得手段と、上記第１のステップで色情報を取得したエレメントの中に、色情報が互いに一致するエレメントのペアがあるときに、上記処理対象のパレット画像のインデックスのインデックス値が、上記ペアの一方のエレメントのパレット番号を示す値と一致すれば、電子透かし情報のビット情報が「０」であると検出するとともに、上記処理対象のパレット画像のインデックスのインデックス値が、上記ペアの一他方のエレメントのパレット番号を示す値と一致すれば、電子透かし情報のビット情報が「１」であると検出し、または、上記第１のステップで色情報を取得したエレメントの中に、色情報が互いに一致するエレメントのペアがあるときに、上記処理対象のパレット画像のインデックスのインデックス値が、上記ペアの一方のエレメントのパレット番号を示す値と一致すれば、電子透かし情報のビット情報が「１」であると検出するとともに、上記処理対象のパレット画像のインデックスのインデックス値が、上記ペアの一他方のエレメントのパレット番号を示す値と一致すれば、電子透かし情報のビット情報が「０」であると検出する電子透かし情報検出手段とを有するようにしたものである。
【００４１】
また、本発明のうち請求項１７に記載の発明は、本発明のうち請求項１、２、３または４のいずれか１項に記載の発明をコンピュータに実行させるためのプログラムである。
【００４２】
また、本発明のうち請求項１８に記載の発明は、本発明のうち請求項５、６、７または８のいずれか１項に記載の発明としてコンピュータを機能させるためのプログラムである。
【００４３】
また、本発明のうち請求項１９に記載の発明は、本発明のうち請求項９、１０、１１または１２のいずれか１項に記載の発明をコンピュータに実行させるためのプログラムである。
【００４４】
また、本発明のうち請求項２０に記載の発明は、本発明のうち請求項１３、１４、１５または１６のいずれか１項に記載の発明としてコンピュータを機能させるためのプログラムである。
【００４５】
また、本発明のうち請求項２１に記載の発明は、本発明のうち請求項１７、１８、１９または２０のいずれか１項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００４６】
本発明は、以上説明したように構成されているので、パレット画像に電子透かし情報を埋め込んでも色彩が変化せず、あるいは、色彩が変化したとしてもその変化は極めて限定的なものとなり、人間の視覚上では色彩の変化を見分けることができないという優れた効果を奏するものである。
【００４７】
また、本発明は、以上説明したように構成されているので、パレット画像に埋め込まれた電子透かし情報を精度高く検出することができるという優れた効果を奏するものである。
【発明を実施するための最良の形態】
【００４８】
以下、添付の図面を参照しながら、本発明による電子透かし埋め込み方法、電子透かし検出方法、電子透かし埋め込み装置、電子透かし検出装置、プログラムおよびコンピューター読み取り可能な記録媒体の実施の形態の一例を詳細に説明するものとする。
【００４９】
（１）システム構成
図２には、本発明による電子透かし埋め込み方法を実施するための電子透かし埋め込み装置ならびに本発明による電子透かし検出方法を実施するための電子透かし検出装置を実現する電子透かし埋め込み・検出システムの構成の一例を表すブロック構成図が示されている。
【００５０】
即ち、この電子透かし埋め込み・検出システム１０は、その全体の動作を中央処理装置（ＣＰＵ）１２を用いて制御するように構成されている。
【００５１】
このＣＰＵ１２には、バス１４を介して、ＣＰＵ１２の制御のためのプログラムや後述する各種の情報などを記憶するリードオンリメモリ（ＲＯＭ）やＣＰＵ１２のワーキングエリアとして用いられる記憶領域などを備えたランダムアクセスメモリ（ＲＡＭ）などから構成される記憶装置１６と、ＣＰＵ１２の制御に基づいて各種の表示を行うＣＲＴや液晶パネルなどの画面を備えた表示装置１８と、表示装置１８の画面上における任意の位置を指定するなどの操作を行うためのマウスなどのポインティングデバイス２０と、任意の文字を入力するなどの操作を行うためのキーボードなどの文字入力デバイス２２と、パレット画像のインデックスならびにパレットなどのパレット画像に関する情報や透かし情報などの各種の情報の入出力を行う情報入出力装置２４とが接続されている。
【００５２】
なお、電子透かし埋め込み・検出システム１０においては、ユーザーがポインティングデバイス２０や文字入力デバイス２２などの入力手段を操作することにより、ユーザーの所望の指示や設定を入力することができるようになされており、ユーザーによるポインティングデバイス２０や文字入力デバイス２２の操作などに応じて表示装置１８における表示が変化する。
【００５３】
以上の構成において、以下においては、図３以降の各図を参照しながら、ＣＰＵ１２の制御により実行される電子透かし埋め込み処理ならびに電子透かし検出処理について説明する。
【００５４】
（２）電子透かし埋め込み処理の概要
まず、図３には、ＣＰＵ１２の制御により実行される本発明による電子透かし埋め込み処理の概要を表すフローチャートが示されている。
【００５５】
即ち、本発明による電子透かし埋め込み処理は、パレット画像のパレットに定義されている色情報の数（以下、「色情報の数」を単に「色情報数」と適宜に称する。）に応じてパレットの構成を変化させ（ステップＳ３０２）、当該構成を変化させたパレットの構成に合わせてパレット画像のインデックスにおける各ピクセルのインデックス値を変更し（ステップＳ３０４）、当該変更されたインデックスの各ピクセルのインデックス値に透かし情報としてビット情報を埋め込むようにしたものである（ステップＳ３０６）。
【００５６】
より詳細には、本発明による電子透かし埋め込み処理は、透かし情報を埋め込む対象のパレット画像において定義されている色情報数に応じた３つの処理に分けられ、それぞれ異なった処理を行うようになされている。
【００５７】
つまり、本発明による電子透かし埋め込み処理は、
（ａ）パレット画像のパレットに定義されている色情報数が１２８以下の場合
（ｂ）パレット画像のパレットに定義されている色情報数が１２９〜２５５の場合
（ｃ）パレット画像のパレットに定義されている色情報数が２５６の場合
の３つの場合に分けられる。
【００５８】
以下、上記した（ａ）〜（ｃ）に示す場合のそれぞれについて、パレット画像に対する透かし情報の埋め込み処理について説明する。
【００５９】
なお、以下の説明において、パレット画像におけるパレットは、図１（ｂ）に示すように、パレット番号０〜２５５で指定される０番目から２５５番目までの２５６個のエレメントを有し、パレット番号０〜２５５で指定される０〜２５５番目までの任意のエレメントに対し、それぞれＲＧＢ値で指定される色情報が１個定義されているものとする。
【００６０】
また、パレット画像の各ピクセルに透かし情報を埋め込む処理の際やパレット画像の各ピクセルから透かし情報を検出する処理の際には、図１（ａ）上におけるパレット画像のインデックスの最上段の行の左端のピクセルから右端のピクセルへ向かって順番に処理され、右端のピクセルまで処理されると、最上段の下方における次の段の行の左端のピクセルから右端のピクセルへ順番に処理され、同様にして下方の次の段の行へと順番に処理されるものとする。
【００６１】
即ち、パレット画像のインデックスにおける１行１列に位置するピクセルから１行８列に位置するピクセルへ向けて順番に処理し、１行８列に位置するピクセルまで処理されると、上記と同様にして次の行のピクセルを順次に処理するものとする。
【００６２】
なお、こうした透かし情報を埋め込む処理の際や透かし情報を検出する処理の際の処理順番を、以下の説明においては「処理順序」と適宜に称することとする。
【００６３】
（３）電子透かし埋め込み処理の詳細
次に、図４乃至図６に示す透かし情報を埋め込む処理の処理ルーチンのフローチャートを参照しながら、
（ａ）パレット画像のパレットに定義されている色情報数が１２８以下の場合
（ｂ）パレット画像のパレットに定義されている色情報数が１２９〜２５５の場合
（ｃ）パレット画像のパレットに定義されている色情報数が２５６の場合
のそれぞれの場合において、当該パレット画像に透かし情報を埋め込む処理について詳細に説明する。
【００６４】
即ち、ユーザーがポインティングデバイス２０や文字入力デバイス２２などの入力手段を操作することなどにより、透かし情報を埋め込む処理の処理ルーチンが起動されると、まず、透かし情報を埋め込む対象のパレット画像のパレットに定義されている色情報数（以下、「パレット画像のパレットに定義されている色情報数」を「ＵｓｅｄＣｏｌｏｒ」で適宜に表す。）の検出が行われ（ステップＳ４０２）、検出された色情報数、即ち、ＵｓｅｄＣｏｌｏｒが１２８以下であるか否か判断する（ステップＳ４０４）。
【００６５】
なお、このステップＳ４０２の処理においてＵｓｅｄＣｏｌｏｒを検出するには、パレットの各エレメントに色情報が定義されているか否かを判定し、色情報が定義されているエレメントの数をＵｓｅｄＣｏｌｏｒとする。
【００６６】
ステップＳ４０４の判断処理において、ＵｓｅｄＣｏｌｏｒが１２８以下ではない、即ち、透かし情報を埋め込む対象のパレット画像のパレットに定義されている色情報数が１２８以下ではないと判断された場合には、後述するステップＳ４１４の処理へ進む。
【００６７】
（３−１）パレット画像のパレットに定義されている色情報数が１２８以下の場合の処理
一方、ステップＳ４０４の判断処理において、ＵｓｅｄＣｏｌｏｒが１２８以下である、即ち、透かし情報を埋め込む対象のパレット画像のパレットに定義されている色情報数が１２８以下であると判断された場合には、ステップＳ４０６の処理へ進み、パレットの各エレメントに定義されているＵｓｅｄＣｏｌｏｒ個の各色情報を、パレットの先頭のパレット番号０の０番目のエレメントからパレット番号（ＵｓｅｄＣｏｌｏｒ−１）の（ＵｓｅｄＣｏｌｏｒ−１）番目のエレメントまでの０〜（ＵｓｅｄＣｏｌｏｒ−１）番目のエレメントにそれぞれ移動して、パレットのエレメントに定義される色情報の並び替えを行う。
【００６８】
なお、各エレメントの色情報を０〜（ＵｓｅｄＣｏｌｏｒ−１）番目のエレメントに移動させる際には、例えば、移動前のエレメントのパレット番号の小さい順に、パレット番号０のエレメントから順番に移動させるようにすればよい。
【００６９】
次に、ステップＳ４０６の処理を終了すると、ステップＳ４０８の処理へ進み、処理対象のパレット画像のインデックスにおける各ピクセル毎の色情報が変化しないように、ステップＳ４０６の処理でエレメントの色情報を変更されたパレットのパレット番号に合わせて、パレット画像のインデックスの各ピクセル毎のインデックス値を変更する。
【００７０】
具体的には、ステップＳ４０６の処理において、例えば、「パレット番号１５６」のエレメントに定義されていた色情報が「パレット番号２８」へ移動された場合には、ステップＳ４０８の処理においては、「インデックス値１５６」のピクセルについては「インデックス値２８」へ変更する。
【００７１】
そして、ステップＳ４０８の処理を終了すると、ステップＳ４１０の処理へ進み、ステップＳ４０６の処理で並べ替えられたパレットの先頭のパレット番号０のエレメントからパレット番号（ＵｓｅｄＣｏｌｏｒ−１）のエレメントまでの０〜（ＵｓｅｄＣｏｌｏｒ−１）番目のエレメントの色情報を、パレットのパレット番号１２８のエレメントからパレット番号（１２８＋（ＵｓｅｄＣｏｌｏｒ−１））のエレメントまでの１２８〜（１２８＋（ＵｓｅｄＣｏｌｏｒ−１））番目のエレメントにコピーする。
【００７２】
具体的には、例えば、パレット画像のパレットに定義されている色情報数が１２８（ＵｓｅｄＣｏｌｏｒ＝１２８）のときには、図７に示すように、パレットの先頭のパレット番号０のエレメント（０番目のエレメント）からパレット番号１２７（＝ＵｓｅｄＣｏｌｏｒ−１＝１２８−１）のエレメント（１２７番目のエレメント）の色情報を、パレット番号１２８のエレメント（１２８番目のエレメント）からパレット番号２５５（＝１２８＋（ＵｓｅｄＣｏｌｏｒ−１）＝１２８＋（１２８−１））のエレメント（２５５番目のエレメント）にそれぞれコピーする。
【００７３】
こうしたステップＳ４１０の処理を終了すると、ステップＳ４１２の処理へ進み、処理順序に従って、透かし情報を示すビット情報（「０」または「１」）をステップＳ４０８の処理でインデックス値を変更されたパレット画像のインデックスにおける各ピクセル毎のインデックス値に埋め込み、この処理ルーチンを終了する。
【００７４】
なお、本発明において、透かし情報を示すビット情報（「０」または「１」）を各ピクセルに埋め込む処理とは、透かし情報を示すビット情報（「０」または「１」）に応じてインデックス値を変更されたインデックスにおける各ピクセルのインデックス値を処理し、インデックス値を変更されたインデックスにおける各ピクセルのインデックス値に透かし情報を反映させる処理を意味するものであり、ステップＳ４１２の処理においては、透かし情報を示すビット情報（「０」または「１」）に応じてステップＳ４０８の処理で変更されたパレット画像のインデックスにおける各ピクセルのインデックス値を処理し、ステップＳ４０８の処理で変更されたパレット画像のインデックスにおける各ピクセルのインデックス値に透かし情報を反映させる。
【００７５】
ここで、このステップＳ４１２の処理で実行される処理、即ち、ステップＳ４０８の処理で変更されたパレット画像のインデックスにおける各ピクセルのインデックス値に透かし情報を反映する処理は、以下に説明するように行う。
【００７６】
つまり、透かし情報を示すビット情報が「０」の場合には、インデックス値の変更は行わない。例えば、インデックス値が「１６」のピクセルに、透かし情報を示すビット情報「０」を埋め込む場合には、インデックス値は変更せず「１６」とする。
【００７７】
一方、透かし情報を示すビット情報が「１」の場合には、インデックス値に「１２８」を加算する。例えば、インデックス値が「１６」のピクセルに、透かし情報を示すビット情報「１」を埋め込む場合には、インデックス値は「１２８＋１６」、即ち、「１４４」とする。
【００７８】
従って、０〜１２７のインデックス値は、透かし情報を示すビット情報が「０」であることを示し、一方、１２８〜２５５のインデックス値は、透かし情報を示すビット情報が「１」であることを示しており、これにより各ピクセルに対して指定された色情報を変更することなく、パレット画像に透かし情報を埋め込むことができる。
【００７９】
（３−２）パレット画像のパレットに定義されている色情報数が１２９〜２５５の場合の処理
次に、ステップＳ４０４の判断処理において、ＵｓｅｄＣｏｌｏｒが１２８以下ではない、即ち、透かし情報を埋め込む対象のパレット画像に定義されている色情報数が１２８以下ではないと判断された場合にはステップＳ４１４の処理へ進むことになり、ステップＳ４１４の処理においては、ＵｓｅｄＣｏｌｏｒが１２９〜２５５であるか否か、即ち、透かし情報を埋め込む対象のパレット画像に定義されている色情報数が１２９〜２５５であるか否かを判断する処理を行う。
【００８０】
このステップＳ４１４の判断処理において、ＵｓｅｄＣｏｌｏｒが１２９〜２５５ではない、即ち、透かし情報を埋め込む対象のパレット画像に定義されている色情報数が１２９〜２５５ではなく２５６であると判断された場合には、後述するステップＳ４２４の処理へ進む（後述する「（３−３）パレット画像のパレットに定義されている色情報数が２５６の場合の処理」を参照する。）。
【００８１】
一方、ステップＳ４１４の判断処理において、ＵｓｅｄＣｏｌｏｒが１２９〜２５５である、即ち、透かし情報を埋め込む対象のパレット画像に定義されている色情報数が１２９〜２５５であると判断された場合には、ステップＳ４１６の処理へ進み、パレットの各エレメントに定義されているＵｓｅｄＣｏｌｏｒ個の各色情報を、パレットの先頭のパレット番号０のエレメントからパレット番号（ＵｓｅｄＣｏｌｏｒ−１）のエレメントまでの０〜（ＵｓｅｄＣｏｌｏｒ−１）番目のエレメントにそれぞれ移動して、パレットのエレメントに定義される色情報の並び替えを行う。
【００８２】
なお、各エレメントの色情報を０〜（ＵｓｅｄＣｏｌｏｒ−１）番目のエレメントに移動させる際には、例えば、移動前のエレメントのパレット番号の小さい順に、パレット番号０のエレメントから順番に移動させるようにすればよい。
【００８３】
次に、ステップＳ４１６の処理を終了すると、ステップＳ４１８の処理へ進み、処理対象のパレット画像のインデックスにおける各ピクセル毎の色情報が変化しないように、ステップＳ４１６の処理でエレメントの色情報を変更されたパレットのパレット番号に合わせて、パレット画像のインデックスの各ピクセル毎のインデックス値を変更する。
【００８４】
具体的には、ステップＳ４１６の処理において、例えば、「パレット番号２１５」のエレメントに定義されていた色情報が「パレット番号１８６」へ移動された場合には、ステップＳ４１８の処理においては、「インデックス値２１５」のピクセルについては「インデックス値１８６」へ変更する。
【００８５】
そして、ステップＳ４１８の処理を終了すると、ステップＳ４２０の処理へ進み、ステップＳ４１６の処理で並べ替えられたパレットの先頭のパレット番号０のエレメントからパレット番号（２５５−ＵｓｅｄＣｏｌｏｒ）のエレメントまでの０〜（２５５−ＵｓｅｄＣｏｌｏｒ）番目のエレメントの色情報を、パレットのパレット番号ＵｓｅｄＣｏｌｏｒのエレメントからパレット番号２５５のエレメントまでのＵｓｅｄＣｏｌｏｒ〜２５５番目のエレメントにコピーする。
【００８６】
具体的には、例えば、図８（ａ）に示すように、パレット画像のパレットに定義されている色情報数が２５４（ＵｓｅｄＣｏｌｏｒ＝２５４）であって、パレットにおいて色情報を定義されていないエレメントが２個である場合について説明する。
【００８７】
この場合には、図８（ｂ）に示すように、ステップＳ４１６の処理により、パレットのエレメントに定義される色情報の並び替えを行った後に、ステップＳ４１８の処理により、インデックスのインデックス値の変更を行ってから、ステップＳ４２０の処理により、パレットの先頭のパレット番号０のエレメント（０番目のエレメント）からパレット番号１（＝２５５−ＵｓｅｄＣｏｌｏｒ＝２５５−２５４）のエレメント（１番目のエレメント）までの０〜１（＝２５５−ＵｓｅｄＣｏｌｏｒ＝２５５−２５４）番目のエレメントの色情報を、パレットのパレット番号２５４（＝ＵｓｅｄＣｏｌｏｒ）のエレメントからパレット番号２５５のエレメントまでの２５４（＝ＵｓｅｄＣｏｌｏｒ）〜２５５番目のエレメントにそれぞれコピーする。
【００８８】
こうしたステップＳ４２０の処理を終了すると、ステップＳ４２２の処理へ進み、処理順序に従って、透かし情報を示すビット情報（「０」または「１」）を、ステップＳ４１８の処理でインデックス値を変更されたパレット画像のインデックスにおける所定のピクセルのインデックス値に埋め込み、この処理ルーチンを終了する。
【００８９】
即ち、透かし情報を示すビット情報（「０」または「１」）に応じて、ステップＳ４１８の処理でインデックス値を変更されたパレット画像のインデックスにおける所定のピクセルのインデックス値を処理し、ステップＳ４１８の処理でインデックス値を変更されたパレット画像のインデックスにおける所定のピクセルのインデックス値に透かし情報を反映させて、この処理ルーチンを終了する。
【００９０】
ここで、透かし情報を示すビット情報を埋め込む所定のピクセルとは、インデックスにおけるインデックス値が０〜（２５５−ＵｓｅｄＣｏｌｏｒ）のピクセル、即ち、ステップＳ４２０の処理で色情報のコピーの対象とされたパレットの先頭のパレット番号０のエレメントからパレット番号（２５５−ＵｓｅｄＣｏｌｏｒ）のエレメントまでの０〜（２５５−ＵｓｅｄＣｏｌｏｒ）番目のエレメントを指定するインデックス値のピクセルである。
【００９１】
このインデックス値が０〜（２５５−ＵｓｅｄＣｏｌｏｒ）のピクセルにのみ、透かし情報を示すビット情報を処理順序に従って埋め込んで、そのインデックス値に透かし情報を反映させるものである。
【００９２】
そして、ステップＳ４２２の処理で実行される処理、即ち、ステップＳ４１８の処理でインデックス値を変更されたパレット画像のインデックスにおける所定のピクセルのインデックス値に透かし情報を反映する処理は、以下に説明するように行う。
【００９３】
即ち、透かし情報を示すビット情報が「０」の場合には、インデックス値の変更は行わない。例えば、インデックス値が「０」のピクセルに、透かし情報を示すビット情報「０」を埋め込む場合には、インデックス値は変更せず「０」とする。
【００９４】
一方、透かし情報を示すビット情報が「１」の場合には、インデックス値にＵｓｅｄＣｏｌｏｒを加算する。
【００９５】
例えば、ＵｓｅｄＣｏｌｏｒが「２５４」であり、かつ、インデックス値が「０」のピクセルに、透かし情報を示すビット情報「１」を埋め込む場合には、インデックス値は「２５４（＝０＋ＵｓｅｄＣｏｌｏｒ＝０＋２５４）」とする。
【００９６】
また、ＵｓｅｄＣｏｌｏｒが「２５４」であり、かつ、インデックス値が「１」のピクセルに、透かし情報を示すビット情報「１」を埋め込む場合には、インデックス値は「２５５（＝１＋ＵｓｅｄＣｏｌｏｒ＝１＋２５４）」とする。
【００９７】
従って、０〜（ＵｓｅｄＣｏｌｏｒ−１）のインデックス値は、透かし情報を示すビット情報が「０」であることを示し、一方、ＵｓｅｄＣｏｌｏｒ〜２５５のインデックス値は、透かし情報を示すビット情報が「１」であることを示しており、これにより各ピクセルに対して指定された色情報を変更することなく、パレット画像に透かし情報が埋め込まれたことになる。
【００９８】
（３−３）パレット画像のパレットに定義されている色情報数が２５６の場合の処理
次に、ステップＳ４１４の判断処理において、ＵｓｅｄＣｏｌｏｒが１２９〜２５５ではない、即ち、透かし情報を埋め込む処理対象のパレット画像に定義されている色情報数が１２９〜２５５ではなく２５６であると判断された場合には、ステップＳ４２４の処理へ進むことになり、ステップＳ４２４の処理においては、透かし情報を埋め込む処理対象となるパレット画像のインデックスにおける使用頻度が最も少ないインデックス値を検出し、当該インデックス値に対応するエレメントのパレット番号を取得する。
【００９９】
なお、透かし情報を埋め込む処理対象となるパレット画像のインデックスにおける使用頻度が最も少ないインデックス値が複数ある場合には、例えば、インデックス値が一番小さいもの、あるいは、インデックス値が一番大きいものを選択するなど、適宜の選択基準を設定して、いずれか一つのインデックス値を検出する。
【０１００】
こうしたステップＳ４２４の処理を終了すると、ステップＳ４２６の処理へ進み、透かし情報を埋め込む処理対象となるパレット画像のインデックスにおいて使用頻度が最も多いインデックス値を検出し、当該インデックス値に対応するエレメントのパレット番号を取得する。
【０１０１】
なお、対象となるパレット画像のインデックスにおいて使用頻度が最も多いインデックス値が複数ある場合には、例えば、インデックス値が一番小さいもの、あるいは、インデックス値が一番大きいものを選択するなど、適宜の選択基準を設定して、いずれか一つのインデックス値を検出する。
【０１０２】
次に、ステップＳ４２６の処理を終了すると、ステップＳ４２８の処理へ進み、パレット画像のインデックスにおいて、ステップＳ４２４で検出された使用頻度が最も少ないインデックス値のピクセルに関して、そのインデックス値をステップＳ４２６で検出された使用頻度が最も多いインデックス値に変更する。
【０１０３】
次に、ステップＳ４２８の処理を終了すると、ステップＳ４３０の処理へ進み、ステップＳ４２４の処理で取得したパレット番号のエレメントに、ステップＳ４２６の処理で取得したパレット番号のエレメントに定義されている色情報をコピーして、ステップＳ４２４の処理で取得したパレット番号のエレメントに定義されていた色情報を書き換える。
【０１０４】
即ち、パレットにおいて使用頻度が最も多いエレメントに定義された色情報を、パレットにおいて使用頻度が最も少ないエレメントの色情報としてコピーして、パレットにおいて使用頻度が最も少ないエレメントの色情報を書き換え、パレットの構成を変更する。
【０１０５】
具体的に、例えば、図９（ａ）に示すように、パレット画像に定義されている色情報数が２５６（ＵｓｅｄＣｏｌｏｒ＝２５６）であって、ステップＳ４２４の処理で取得されたパレット番号が「２５５」であり、ステップＳ４２６の処理で取得したパレット番号が「０」であり、パレット番号０のエレメントに定義されている色情報がＲ０Ｇ０Ｂ０値である場合には、図９（ｂ）に示すように、ステップＳ４２８の処理により、ステップＳ４２４の処理で取得したパレット番号２５５のエレメントに、ステップＳ４２６の処理で取得したパレット番号０のエレメントに定義されている色情報であるＲ０Ｇ０Ｂ０値をコピーする。
【０１０６】
こうしたステップＳ４３０の処理を終了すると、ステップＳ４３２の処理へ進み、処理順序に従って、透かし情報を示すビット情報（「０」または「１」）を、ステップＳ４２８の処理でインデックス値を変更されたパレット画像のインデックスにおけるステップＳ４２６の処理で検出された使用頻度が最も多いインデックス値のピクセル（以下、「透かし情報埋め込み対象ピクセル」と適宜に称する。）に埋め込む。
【０１０７】
即ち、透かし情報を示すビット情報（「０」または「１」）に応じて、ステップＳ４２６の処理で検出された使用頻度が最も多いインデックス値のピクセル（透かし情報埋め込み対象ピクセル）の当該インデックス値を処理し、ステップＳ４２６の処理で検出された使用頻度が最も多いインデックス値のピクセル（透かし情報埋め込み対象ピクセル）の当該インデックス値に透かし情報を反映させて、この処理ルーチンを終了する。
【０１０８】
ここで、ステップＳ４３２の処理で実行される透かし情報埋め込み対象ピクセルのインデックス値に透かし情報を反映する処理は、以下に説明するように行う。
【０１０９】
即ち、透かし情報を示すビット情報が「０」の場合には、インデックス値の変更は行わない。例えば、透かし情報埋め込み対象ピクセルのインデックス値が「０」であり、このインデックス値が「０」の透かし情報埋め込み対象ピクセルに、透かし情報を示すビット情報「０」を埋め込む場合には、インデックス値は変更せず「０」とする。
【０１１０】
一方、透かし情報を示すビット情報が「１」の場合には、インデックス値をステップＳ４２４の処理で検出された使用頻度が最も少ないインデックス値に変更する。
【０１１１】
例えば、ステップＳ４２４の処理で検出された使用頻度が最も少ないインデックス値のピクセルの当該インデックス値が「２５５」であり、透かし情報埋め込み対象ピクセルのインデックス値が「０」であって、このインデックス値が「０」の透かし情報埋め込み対象ピクセルに、透かし情報を示すビット情報「１」を埋め込む場合には、インデックス値をステップＳ４２４の処理で検出された使用頻度が最も少ないインデックス値たる「２５５」に変更する。
【０１１２】
従って、処理対象のパレット画像において、ステップＳ４２６の処理で検出された使用頻度が最も多いインデックス値は、透かし情報を示すビット情報が「０」であることを示し、一方、ステップＳ４２４の処理で検出された使用頻度が最も少ないインデックス値は、透かし情報を示すビット情報が「１」であることを示している。
【０１１３】
ここで、ステップＳ４３０の処理において、ステップＳ４２４の処理で検出された使用頻度が最も少ないインデックス値が指定する色情報は、ステップＳ４２６の処理で検出された使用頻度が最も多いインデックス値が指定する色情報に変更されているので、これにより処理対象のパレット画像の色彩に予期し得ない変化や大幅な変化を与えることなく、かつ、パレット画像に透かし情報が埋め込まれたことになる。
【０１１４】
即ち、ステップＳ４２４〜ステップＳ４３２の処理により、透かし情報の埋め込みの前後においてパレット画像の色彩に変化は生じさせるが、その変化を極めて限定的であって、人間の視覚上では色彩の変化を見分けることはできない。
【０１１５】
（３−４）具体例を参照した説明
次に、具体例を参照しながら、上記した電子透かし埋め込み処理ルーチンにより実行される処理内容についてさらに詳細に説明する。
【０１１６】
即ち、情報入出力装置２４により透かし情報を埋め込む対象のパレット画像と透かし情報とが読み込まれ、ユーザーがポインティングデバイス２０や文字入力デバイス２２などの入力手段を操作することにより当該処理対象となるパレット画像への当該透かし情報の埋め込み処理を指示すると、上記した電子透かし埋め込み処理ルーチンが起動されて上記した処理が実行される。
【０１１７】
（３−４−１）ステップＳ４０６〜ステップＳ４１２の処理
まず、ステップＳ４０６〜ステップＳ４１２の処理で実行される、透かし情報を埋め込む対象のパレット画像に定義されている色情報数が１２８以下の場合の処理について説明する。
【０１１８】
ここで、図１０（ａ）には、情報入出力装置２４により読み込まれた、サイズが８行８列のピクセル（８×８ピクセル）のパレット画像における、図１（ｂ）に対応するパレットの一例の概念図が示されている。
【０１１９】
また、後述するように図１０（ｂ）ならびに図１０（ｃ）もパレットを表す概念図であるが、図１０（ａ）（ｂ）（ｃ）のそれぞれにおいて、最左側の１列がエレメントとそのパレット番号を示し、その他の３列に表された数値はＲＧＢ値による色情報（左列からＲ、Ｇ、Ｂの値をそれぞれ表す。）を示しているものとする。
【０１２０】
なお、理解を容易にするために、Ｒ、Ｇ、Ｂのそれぞれの値は、図１０（ａ）に示すパレットにおける各エレメントのパレット番号と一致させている。
【０１２１】
また、図１０（ａ）（ｂ）（ｃ）に示すパレットにおいて、「×」が記載されているエレメントには、色情報が定義されていないものとする。
【０１２２】
この図１０（ａ）に示すパレットの構成を参照してＵｓｅｄＣｏｌｏｒを検出するものであり、具体的には、パレットの各エレメントに色情報が定義されているか否かを判定し、色情報が定義されているエレメントの数をＵｓｅｄＣｏｌｏｒとする（ステップＳ４０２）。
【０１２３】
図１０（ａ）に示すパレット（以下、図１０（ａ）に示すパレットを「処理前パレット」と適宜に称する。）において色情報が定義されているエレメントは、パレット番号０の０番目のエレメント、パレット番号２の２番目のエレメント、パレット番号４の４番目のエレメント、パレット番号６の６番目のエレメント、パレット番号８の８番目のエレメント、パレット番号１０の１０番目のエレメント、パレット番号１２の１２番目のエレメント、パレット番号１４の１４番目のエレメント、パレット番号１２８の１２８番目のエレメント、パレット番号１３０の１３０番目のエレメント、パレット番号１３４の１３４番目のエレメント、パレット番号１３６の１３６番目のエレメント、パレット番号１３８の１３８番目のエレメント、パレット番号１４０の１４０番目のエレメントおよびパレット番号１４２の１４２番目のエレメントであり、１６個のエレメントに色情報が定義されている。
【０１２４】
従って、ＵｓｅｄＣｏｌｏｒは「１６」となり（ステップＳ４０２）、ＵｓｅｄＣｏｌｏｒが１２８以下であるため（ステップＳ４０４）、透かし情報を埋め込む対象のパレット画像に定義されている色情報数が１２８以下の場合の処理（ステップＳ４０６〜ステップＳ４１２）が行われることになる。
【０１２５】
そして、ステップＳ４０６の処理においては、図１０（ａ）の処理前パレットにおけるパレット番号０の０番目のエレメント、パレット番号２の２番目のエレメント、パレット番号４の４番目のエレメント、パレット番号６の６番目のエレメント、パレット番号８の８番目のエレメント、パレット番号１０の１０番目のエレメント、パレット番号１２の１２番目のエレメント、パレット番号１４の１４番目のエレメント、パレット番号１２８の１２８番目のエレメント、パレット番号１３０の１３０番目のエレメント、パレット番号１３４の１３４番目のエレメント、パレット番号１３６の１３６番目のエレメント、パレット番号１３８の１３８番目のエレメント、パレット番号１４０の１４０番目のエレメントおよびパレット番号１４２の１４２番目のエレメントの色情報を、パレットの先頭にあるパレット番号０の０番目のエレメントからパレット番号１５（＝ＵｓｅｄＣｏｌｏｒ−１＝１６−１）のエレメントまでの０〜１５番目のエレメントにそれぞれ移動して、図１０（ｂ）のパレット（以下、図１０（ｂ）に示すパレットを「移動後パレット」と適宜に称する。）に示すように、処理前パレットのエレメントに定義された色情報の並び替えを行う。
【０１２６】
なお、上記したパレット番号０の０番目のエレメント、パレット番号２の２番目のエレメント、パレット番号４の４番目のエレメント、パレット番号６の６番目のエレメント、パレット番号８の８番目のエレメント、パレット番号１０の１０番目のエレメント、パレット番号１２の１２番目のエレメント、パレット番号１４の１４番目のエレメント、パレット番号１２８の１２８番目のエレメント、パレット番号１３０の１３０番目のエレメント、パレット番号１３４の１３４番目のエレメント、パレット番号１３６の１３６番目のエレメント、パレット番号１３８の１３８番目のエレメント、パレット番号１４０の１４０番目のエレメントおよびパレット番号１４２の１４２番目のエレメントの色情報を０〜１５番目のエレメントに移動させる際には、移動前のエレメントのパレット番号の小さい順に、パレット番号０のエレメントからパレット番号１５のエレメントまで順番に移動させる（図１０（ｂ）参照）。
【０１２７】
次に、移動後パレットの構成に合わせて、処理対象のパレット画像のインデックスにおける各ピクセル毎のインデックス値を変更する（ステップＳ４０８）。
【０１２８】
ここで、図１１（ａ）には、処理対象のパレット画像のインデックスとして、サイズが８行８列のピクセル（８×８ピクセル）のパレット画像のインデックスの一例の概念図が示されている。
【０１２９】
この図１１（ａ）に示すインデックス（以下、図１１（ａ）に示すインデックスを「変更前インデックス」と適宜に称する。）には、処理前パレットの構成に対応したインデックス値が示されており、処理前パレットの色情報に対応する１６色が指定されている。
【０１３０】
そして、ステップＳ４０８の処理においては、変更前インデックスのインデックス値により示される各ピクセルの色情報が変化することのないように、移動後パレットの構成におけるパレット番号に合わせて変更前インデックスのインデックス値を変更する。
【０１３１】
図１１（ｂ）には、上記のようにして、変更前インデックスのインデックス値を変更したインデックスが示されている。なお、図１１（ｂ）に示すインデックスを「変更後インデックス」と適宜に称する。
【０１３２】
図１０（ｂ）に示す移動後パレット、図１１（ａ）に示す変更前インデックスならびに図１１（ｂ）に示す変更後インデックスを参照しながら具体的に説明すると、変更前インデックスにおいてインデックス値が「０」のピクセルは、変更後インデックスにおいてインデックス値が「０」となるように当該インデックス値を変更し、また、変更前インデックスにおいてインデックス値が「２」のピクセルは、変更後インデックスにおいてインデックス値が「１」となるように当該インデックス値を変更し、また、変更前インデックスにおいてインデックス値が「４」のピクセルは、変更後インデックスにおいてインデックス値が「２」となるように当該インデックス値を変更し、また、変更前インデックスにおいてインデックス値が「６」のピクセルは、変更後インデックスにおいてインデックス値が「３」となるように当該インデックス値を変更し、また、変更前インデックスにおいてインデックス値が「８」のピクセルは、変更後インデックスにおいてインデックス値が「４」となるように当該インデックス値を変更し、また、変更前インデックスにおいてインデックス値が「１０」のピクセルは、変更後インデックスにおいてインデックス値が「５」となるように当該インデックス値を変更し、また、変更前インデックスにおいてインデックス値が「１２」のピクセルは、変更後インデックスにおいてインデックス値が「６」となるように当該インデックス値を変更し、また、変更前インデックスにおいてインデックス値が「１４」のピクセルは、変更後インデックスにおいてインデックス値が「７」となるように当該インデックス値を変更し、また、変更前インデックスにおいてインデックス値が「１２８」のピクセルは、変更後インデックスにおいてインデックス値が「８」となるように当該インデックス値を変更し、また、変更前インデックスにおいてインデックス値が「１３０」のピクセルは、変更後インデックスにおいてインデックス値が「９」となるように当該インデックス値を変更し、また、変更前インデックスにおいてインデックス値が「１３２」のピクセルは、変更後インデックスにおいてインデックス値が「１０」となるように当該インデックス値を変更し、また、変更前インデックスにおいてインデックス値が「１３４」のピクセルは、変更後インデックスにおいてインデックス値が「１１」となるように当該インデックス値を変更し、また、変更前インデックスにおいてインデックス値が「１３６」のピクセルは、変更後インデックスにおいてインデックス値が「１２」となるように当該インデックス値を変更し、また、変更前インデックスにおいてインデックス値が「１３８」のピクセルは、変更後インデックスにおいてインデックス値が「１３」となるように当該インデックス値を変更し、また、変更前インデックスにおいてインデックス値が「１４０」のピクセルは、変更後インデックスにおいてインデックス値が「１４」となるように当該インデックス値を変更し、また、変更前インデックスにおいてインデックス値が「１４２」のピクセルは、変更後インデックスにおいてインデックス値が「１５」となるように当該インデックス値を変更する。
【０１３３】
従って、処理前パレットと変更前インデックスとにより示される各ピクセルの色情報と、移動後パレットと変更後インデックスとにより示される各ピクセルの色情報とは、各ピクセル毎にそれぞれ完全に一致する。
【０１３４】
次に、移動後パレットの先頭にあるパレット番号０の０番目のエレメントからパレット番号１５（＝ＵｓｅｄＣｏｌｏｒ−１＝１６−１）の１５（＝ＵｓｅｄＣｏｌｏｒ−１＝１６−１）番目のエレメントまでの０〜１５番目の各エレメントに定義されている色情報を、図１０（ｃ）のパレット（以下、図１０（ｃ）に示すパレットを「処理後パレット」と適宜に称する。）に示すように、パレット番号１２８の１２８番目のエレメントからパレット番号１４３（＝１２８＋（Ｕｓｅｄｃｏｌｏｒ−１）＝１２８＋（１６−１））の１４３（＝１２８＋（Ｕｓｅｄｃｏｌｏｒ−１）＝１２８＋（１６−１））番目のエレメントまでの１２８〜１４３番目の各エレメントにコピーする（ステップＳ４１０）。
【０１３５】
具体的には、パレット番号１２８のエレメントにパレット番号０のエレメントの色情報（（Ｒ、Ｇ、Ｂ）＝（０、０、０））をコピーし、また、パレット番号１２９のエレメントにはパレット番号１のエレメントの色情報（（Ｒ、Ｇ、Ｂ）＝（２、２、２））をコピーし、また、パレット番号１３０のエレメントにはパレット番号２のエレメントの色情報（（Ｒ、Ｇ、Ｂ）＝（４、４、４））をコピーし、また、パレット番号１３１のエレメントにはパレット番号３の色情報（（Ｒ、Ｇ、Ｂ）＝（６、６、６））をコピーし、また、パレット番号１３２のエレメントにはパレット番号４のエレメントの色情報（（Ｒ、Ｇ、Ｂ）＝（８、８、８））をコピーし、また、パレット番号１３３のエレメントにはパレット番号５のエレメントの色情報（（Ｒ、Ｇ、Ｂ）＝（１０、１０、１０））をコピーし、また、パレット番号１３４のエレメントにはパレット番号６のエレメントの色情報（（Ｒ、Ｇ、Ｂ）＝（１２、１２、１２））をコピーし、また、パレット番号１３５のエレメントにはパレット番号７のエレメントの色情報（（Ｒ、Ｇ、Ｂ）＝（１４、１４、１４））をコピーし、また、パレット番号１３６のエレメントにはパレット番号８のエレメントの色情報（（Ｒ、Ｇ、Ｂ）＝（１２８、１２８、１２８））をコピーし、また、パレット番号１３７のエレメントにはパレット番号９のエレメントの色情報（（Ｒ、Ｇ、Ｂ）＝（１３０、１３０、１３０））をコピーし、また、パレット番号１３８のエレメントにはパレット番号１０のエレメントの色情報（（Ｒ、Ｇ、Ｂ）＝（１３２、１３２、１３２））をコピーし、また、パレット番号１３９のエレメントにはパレット番号１１のエレメントの色情報（（Ｒ、Ｇ、Ｂ）＝（１３４、１３４、１３４））をコピーし、また、パレット番号１４０のエレメントにはパレット番号１２のエレメントの色情報（（Ｒ、Ｇ、Ｂ）＝（１３６、１３６、１３６））をコピーし、また、パレット番号１４１のエレメントにはパレット番号１３のエレメントの色情報（（Ｒ、Ｇ、Ｂ）＝（１３８、１３８、１３８））をコピーし、また、パレット番号１４２のエレメントにはパレット番号１４のエレメントの色情報（（Ｒ、Ｇ、Ｂ）＝（１４０、１４０、１４０））をコピーし、また、パレット番号１４３のエレメントにはパレット番号１５のエレメントの色情報（Ｒ、Ｇ、Ｂ）＝（１４２、１４２、１４２）をコピーして、処理後パレットを生成する。
【０１３６】
次に、処理順序に従って、変更後インデックスに対し透かし情報を示すビット情報（「０」または「１」）を各ピクセル毎に順番に埋め込む処理を行う（ステップＳ４１２）。
【０１３７】
ここで、透かし情報を示すビット情報（「０」または「１」）を各ピクセルに埋め込む処理とは、透かし情報を示すビット情報（「０」または「１」）に応じて変更後インデックスの各ピクセルのインデックス値を処理し、変更後インデックスのインデックス値に透かし情報を反映させる処理を意味する。
【０１３８】
図１１（ｃ）には透かし情報を示すビット情報の一例の概念図が示されており、この透かし情報は「０」または「１」を示す６４個のビット列（６４ビット）から構成されている。
【０１３９】
この図１１（ｃ）に示す透かし情報のビット列は、図１１（ｃ）上において、最上段の行の左端のビットから右端のビットへ進み、右端のビットまで進むと最上段の下方における次の段の行の左端のビットから右端のビットへ進むようにして形成されている。
【０１４０】
具体的には、この透かし情報は、１〜６４番目までの「０」または「１」のビット列からなるビット情報であり、１〜８番目までのビット情報は「０」、９〜１６番目までのビット情報は「１」、１７〜２４番目までのビット情報は「０」、２５〜３２番目までのビット情報は「１」、３３〜４０番目までのビット情報は「０」、４１〜４８番目までのビット情報は「１」、４９〜５６番目までのビット情報は「０」、５７〜６４番目までのビット情報は「１」を示している。
【０１４１】
変更後インデックスのインデックス値への透かし情報を反映は、透かし情報のビット列の各ビット情報を１番目から順番に、処理順序に従って変更後インデックスの各ピクセルのインデックス値に反映させるものであり、透かし情報を示すビット情報が「０」の場合にはインデックス値の変更は行わず、一方、透かし情報を示すビット情報が「１」の場合にはインデックス値に「１２８」を加算する処理を行ってインデックス値を変更する。
【０１４２】
具体的には、透かし情報のビット列の１〜８番目、１７〜２４番目、３３〜４０番目ならびに４９〜５６番目のビット情報は「０」であるので、変更後インデックスの処理順序における１〜８番目、１７〜２４番目、３３〜４０番目ならびに４９〜５６番目のインデックス値は変更しない。
【０１４３】
一方、透かし情報のビット列の９〜１６番目、２５〜３２番目、４１〜４８番目ならびに５７〜６４番目のビット情報は「１」であるので、変更後インデックスの処理順序における９〜１６番目、２５〜３２番目、４１〜４８番目ならびに５７〜６４番目のインデックス値には「１２８」を加算する処理を行う。
【０１４４】
変更後インデックスのインデックス値に対して上記した処理を行うことにより、変更後インデックスのインデックス値は、図１１（ｄ）に表すインデックス（以下、図１１（ｄ）に示すインデックスを「処理後インデックス」と適宜に称する。）に示すように更新され、処理後インデックスが生成される。
【０１４５】
即ち、処理後インデックスにおいては、１行１列および１行２列のピクセルのインデックス値は「０」となり、１行３列および１行４列のピクセルのインデックス値は「１」となり、１行５列および１行６列のピクセルのインデックス値は「２」となり、１行７列および１行８列のピクセルのインデックス値は「３」となり、２行１列および２行２列のピクセルのインデックス値は「１２８」となり、２行３列および２行４列のピクセルのインデックス値は「１２９」となり、２行５列および２行６列のピクセルのインデックス値は「１３０」となり、２行７列および２行８列のピクセルのインデックス値は「１３１」となり、３行１列および３行２列のピクセルのインデックス値は「４」となり、３行３列および３行４列のピクセルのインデックス値は「５」となり、３行５列および３行６列のピクセルのインデックス値は「６」となり、３行７列および３行８列のピクセルのインデックス値は「７」となり、４行１列および４行２列のピクセルのインデックス値は「１３２」となり、４行３列および４行４列のピクセルのインデックス値は「１３３」となり、４行５列および４行６列のピクセルのインデックス値は「１３４」となり、４行７列および４行８列のピクセルのインデックス値は「１３５」となり、５行１列および５行２列のピクセルのインデックス値は「８」となり、５行３列および５行４列のピクセルのインデックス値は「９」となり、５行５列および５行６列のピクセルのインデックス値は「１０」となり、５行７列および５行８列のピクセルのインデックス値は「１１」となり、６行１列および６行２列のピクセルのインデックス値は「１３６」となり、６行３列および６行４列のピクセルのインデックス値は「１３７」となり、６行５列および６行６列のピクセルのインデックス値は「１３８」となり、６行７列および６行８列のピクセルのインデックス値は「１３９」となり、７行１列および７行２列のピクセルのインデックス値は「１２」となり、７行３列および７行４列のピクセルのインデックス値は「１３」となり、７行５列および７行６列のピクセルのインデックス値は「１４」となり、７行７列および７行８列のピクセルのインデックス値は「１５」となり、８行１列および８行２列のピクセルのインデックス値は「１４０」となり、８行３列および８行４列のピクセルのインデックス値は「１４１」となり、８行５列および８行６列のピクセルのインデックス値は「１４２」となり、８行７列および８行８列のピクセルのインデックス値は「１４３」となる。
【０１４６】
このように、処理後インデックスにおいて、０〜１２７のインデックス値は、透かし情報を示すビット情報が「０」であることを示し、一方、１２８〜２５５のインデックス値は、透かし情報を示すビット情報が「１」であることを示している。
【０１４７】
そして、処理後インデックスにおいては、インデックス値「０」とインデックス値「１２８」とは同一の色情報は示し、インデックス値「１」とインデックス値「１２９」とは同一の色情報は示し、インデックス値「２」とインデックス値「１３０」とは同一の色情報は示し、インデックス値「３」とインデックス値「１３１」とは同一の色情報は示し、インデックス値「４」とインデックス値「１３２」とは同一の色情報は示し、インデックス値「５」とインデックス値「１３３」とは同一の色情報は示し、インデックス値「６」とインデックス値「１３４」とは同一の色情報は示し、インデックス値「７」とインデックス値「１３５」とは同一の色情報は示し、インデックス値「８」とインデックス値「１３６」とは同一の色情報は示し、インデックス値「９」とインデックス値「１３７」とは同一の色情報は示し、インデックス値「１０」とインデックス値「１３８」とは同一の色情報は示し、インデックス値「１１」とインデックス値「１４０」とは同一の色情報は示し、インデックス値「１２」とインデックス値「１４１」とは同一の色情報は示し、インデックス値「１３」とインデックス値「１４２」とは同一の色情報は示し、インデックス値「１４」とインデックス値「１４３」とは同一の色情報は示している。
【０１４８】
そして、この処理対象のパレット画像を表示する際には、処理後パレットと処理後インデックスとにより示される各ピクセルの色情報により色彩を表示するものである。
【０１４９】
ここで、変更前インデックスと変更後インデックスと処理後インデックスとの間において、それぞれ対応するピクセルのインデックス値が異なるものが生じているが、それぞれ対応するピクセルのインデックス値が示す色情報自体は同一であるので、透かし情報を埋め込む前のパレット画像の色彩と透かし情報を埋め込んだ後のパレット画像の色彩とは同一なものとなる。
【０１５０】
従って、透かし情報を埋め込む前のパレット画像の色彩と透かし情報を埋め込んだ後のパレット画像とにおいて、両者の色彩が変化することはない。
【０１５１】
このように、１２８色以下のパレット画像に透かし情報を埋め込んだ場合には、透かし情報を埋め込む前のパレット画像と透かし情報を埋め込んだ後のパレット画像とで色彩が変化することはない。
【０１５２】
（３−４−２）ステップＳ４１６〜ステップＳ４２２の処理
次に、ステップＳ４１６〜ステップＳ４２２の処理で実行される、透かし情報を埋め込む対象のパレット画像に定義されている色情報数が１２９〜２５５である場合の処理について説明する。
【０１５３】
ここで、図８（ａ）には、情報入出力装置２４により読み込まれた、サイズが１６行１６列のピクセル（１６×１６ピクセル）のパレット画像における、図１（ｂ）に対応するパレットの一例の概念図が示されている。
【０１５４】
なお、理解を容易にするために、Ｒ、Ｇ、Ｂのそれぞれの値は、図８（ａ）に示すパレットにおける各エレメントのパレット番号と一致させている。
【０１５５】
また、図８（ａ）に示すパレットにおいて、「×」が記載されているエレメントには、色情報が定義されていないものとする。
【０１５６】
この図８（ａ）に示すパレットの構成を参照してＵｓｅｄＣｏｌｏｒを検出するものであり、具体的には、パレットの各エレメントに色情報が定義されているか否かを判定し、色情報が定義されているエレメントの数をＵｓｅｄＣｏｌｏｒとする（ステップＳ４０２）。
【０１５７】
図８（ａ）に示すパレット（以下、図８（ａ）に示すパレットを「処理前パレット」と適宜に称する。）においては、パレット番号１２６の１２６番目のエレメントおよびパレット番号１２７の１２７番目のエレメントを除き、その他の２５４個のエレメントには全て色情報が定義されている。
【０１５８】
従って、ＵｓｅｄＣｏｌｏｒは「２５４」となり（ステップＳ４０２）、ＵｓｅｄＣｏｌｏｒが１２９〜２５５の範囲にあるため（ステップＳ４０４、ステップＳ４１４）、透かし情報を埋め込む対象のパレット画像に定義されている色情報数が１２９〜２５５の場合の処理（ステップＳ４１６〜ステップＳ４２２）が行われることになる。
【０１５９】
そして、ステップＳ４１６の処理においては、図８（ａ）の処理前パレットの各エレメントに定義されているＵｓｅｄＣｏｌｏｒ個、即ち、２５４個の各色情報を、パレットの先頭のパレット番号０の０番目のエレメントからパレット番号２５３（＝ＵｓｅｄＣｏｌｏｒ−１＝２５４−１）の２５３番目のエレメントまでの０〜２５３番目のエレメントにそれぞれ移動して、処理前パレットのエレメントに定義された色情報の並び替えを行う。
【０１６０】
なお、詳細な図示は省略するが、この処理前パレットに定義された色情報の並び替え行った直後のパレット（以下、「処理前パレットに定義された色情報の並び替え行った直後のパレット」を「移動後パレット」と適宜に称する。）においては、パレット番号２５４の２５４番目のエレメントおよびパレット番号２５５の２５５番目のエレメントを除き、その他の０番目から２５３番目までの２５４個のエレメントには全て色情報が定義されることになる。
【０１６１】
ここで、上記した各エレメントに定義された色情報を移動させる際には、移動前のエレメントのパレット番号の小さい順に、パレット番号０のエレメントからパレット番号２５３のエレメントまで順番に移動させる（図８（ｂ）参照）。
【０１６２】
従って、色情報をする処理においては、実際には、パレット番号１２８からパレット番号２５５までのエレメントの色情報を、パレット番号１２６からパレット番号２５３までのエレメントに移動するのみでよい。
【０１６３】
次に、移動後パレットの構成に合わせて、処理対象のパレット画像のインデックスにおける各ピクセル毎のインデックス値を変更する（ステップＳ４１８）。
【０１６４】
ここで、図１２（ａ）には、処理対象のパレット画像のインデックスとして、サイズが１６行１６列のピクセル（１６×１６ピクセル）のパレット画像のインデックスの一例の概念図が示されている。
【０１６５】
この図１２（ａ）に示すインデックス（以下、図１２（ａ）に示すインデックスを「変更前インデックス」と適宜に称する。）には、処理前パレットの構成に対応したインデックス値が示されており、処理前パレットの色情報に対応する２５４色が指定されている。
【０１６６】
なお、図１２（ａ）に示すインデックスの各ピクセルにおける「０」ならび「１」は、それぞれインデックス値が「０」または「１」であることを示し、また、図１２（ａ）に示すインデックスの各ピクセルにおける「Ｘ」は、インデックス値が「２〜１２５」のいずれかであることを示し、また、図１２（ａ）に示すインデックスの各ピクセルにおける「Ｙ」は、インデックス値が「１２８〜２５５」のいずれかであることを示している。
【０１６７】
また、図１２（ａ）に示すインデックスにおいては、インデックス値が「０」または「１」であるピクセルの総数は１０６個となっている。
【０１６８】
そして、ステップＳ４１８の処理においては、変更前インデックスのインデックス値により示される各ピクセルの色情報が変化することのないように、移動後パレットの構成におけるパレット番号に合わせて変更前インデックスのインデックス値を変更する。
【０１６９】
図１２（ｂ）には、上記のようにして、変更前インデックスのインデックス値を変更したインデックスが示されている。なお、図１２（ｂ）に示すインデックスを「変更後インデックス」と適宜に称する。
【０１７０】
移動後パレット、図１２（ａ）に示す変更前インデックスならびに図１２（ｂ）に示す変更後インデックスを参照しながら具体的に説明すると、変更前インデックスにおいてインデックス値が「０」、「１」および「Ｘ」のピクセル、即ち、インデックス値が「０〜１２５」のピクセルは、変更後インデックスにおいても各ピクセルのインデックス値を変更せず、各ピクセルの色情報が変化しないようにする。
【０１７１】
一方、変更前インデックスにおいてインデックス値が「Ｙ」、即ち、インデックス値が「１２８〜２５５」のピクセルは、それぞれ「Ｙ−２」の演算を行って、その演算結果「Ｙ’」にインデックス値を変更する。
【０１７２】
即ち、変更後インデックスにおいては、変更前インデックスにおいてインデックス値が「１２８〜２５５」のピクセルについては、インデックス値が「１２６〜２５３」となるように当該インデックス値をそれぞれ変更する。
【０１７３】
従って、処理前パレットと変更前インデックスとにより示される各ピクセルの色情報と、移動後パレットと変更後インデックスとにより示される各ピクセルの色情報とは、各ピクセル毎にそれぞれ完全に一致する。
【０１７４】
次に、移動後パレットの先頭にあるパレット番号０の０番目のエレメントからパレット番号１（＝２５５−ＵｓｅｄＣｏｌｏｒ＝２５５−２５４）の１（＝２５５−ＵｓｅｄＣｏｌｏｒ＝２５５−２５４）番目のエレメントまでの０〜１番目の各エレメントに定義されている色情報を、図８（ｂ）のパレット（以下、図８（ｂ）に示すパレットを「処理後パレット」と適宜に称する。）に示すように、パレット番号２５４（ＵｓｅｄＣｏｌｏｒ）の２５４（ＵｓｅｄＣｏｌｏｒ）番目のエレメントからパレット番号２５５の２５５番目のエレメントまでの２５４〜２５５番目の各エレメントにコピーして、パレットの構成を変更する（ステップＳ４２０）。
【０１７５】
具体的には、パレット番号２５４のエレメントにパレット番号０のエレメントの色情報（Ｒ０Ｇ０Ｂ０）をコピーし、また、パレット番号２５５のエレメントにはパレット番号１のエレメントの色情報（Ｒ１Ｇ１Ｂ１）をコピーして、処理後パレットを生成する。
【０１７６】
次に、処理順序に従って、変更後インデックスに対し透かし情報を示すビット情報（「０」または「１」）を各ピクセル毎に順番に埋め込む処理を行う（ステップＳ４２２）。
【０１７７】
ここで、透かし情報を示すビット情報（「０」または「１」）を各ピクセルに埋め込む処理とは、透かし情報を示すビット情報（「０」または「１」）に応じて変更後インデックスの所定のピクセルのインデックス値を処理し、変更後インデックスのインデックス値に透かし情報を反映させる処理を意味する。
【０１７８】
図１３（ａ）には透かし情報を示すビット情報の一例の概念図が示されており、この透かし情報は「０」または「１」を示す１０６個のビット列（１０６ビット）から構成されている。
【０１７９】
この図１３（ａ）に透かし情報のビット列は、図１３（ａ）上において、最上段の行の左端のビットから右端のビットへ進み、右端のビットまで進むと最上段の下方における次の段の行の左端のビットから右端のビットへ進むようにして形成されている。
【０１８０】
変更後インデックスのインデックス値への透かし情報を反映は、透かし情報のビット列の各ビット情報を１番目から順番に、処理順序に従って変更後インデックスの所定のピクセルのインデックス値に反映させるものであり、透かし情報を示すビット情報が「０」の場合には、インデックス値の変更は行わず、一方、透かし情報を示すビット情報が「１」の場合には、インデックス値にＵｓｅｄＣｏｌｏｒとして２５４を加算する処理を行う。
【０１８１】
ここで、透かし情報を示すビット情報を埋め込む所定のピクセルとは、インデックス値が０〜（２５５−ＵｓｅｄＣｏｌｏｒ）のピクセル、即ち、ステップＳ４２０の処理で色情報のコピーの対象とされたパレットの先頭のパレット番号０の０番目のエレメントからパレット番号（２５５−ＵｓｅｄＣｏｌｏｒ）の（２５５−ＵｓｅｄＣｏｌｏｒ）番目のエレメントまでの０〜（２５５−ＵｓｅｄＣｏｌｏｒ）番目のエレメントを指定するインデックス値のピクセルであり、図１２（ｂ）に示す変更後インデックスにおいては、ＵｓｅｄＣｏｌｏｒが「２５４」であるので、インデックス値が「０」または「１」のピクセルである。
【０１８２】
このインデックス値が０〜１のピクセルにのみ、透かし情報を示すビット情報を処理順序に従って埋め込んで、そのインデックス値に透かし情報を反映させるものである。
【０１８３】
そして、ステップＳ４２２の処理で実行されるパレット画像の所定のピクセルのインデックス値に透かし情報を反映するには、透かし情報を示すビット情報が「０」の場合にはインデックス値の変更を行わず、一方、透かし情報を示すビット情報が「１」の場合にはインデックス値にＵｓｅｄＣｏｌｏｒである「２５４」を加算する処理を行ってインデックス値を変更する。
【０１８４】
具体的には、変更後インデックスにおける１行１列のピクセルは、インデックス値が「０」であるので、透かし情報を示すビット情報を埋め込む対象であり、図１３（ａ）に示す透かし情報の１番目のビット情報を埋め込むことになる。ここで、図１３（ａ）に示す透かし情報の１番目のビット情報は「０」であるので、変更後インデックスにおける１行１列のピクセルのインデックス値の変更は行わずに「０」になる。
【０１８５】
次に、変更後インデックスにおける１行２列のピクセルは、インデックス値が「１」であるので、透かし情報を示すビット情報を埋め込む対象であり、図１３（ａ）に示す透かし情報の２番目のビット情報を埋め込むことになる。ここで、図１３（ａ）に示す透かし情報の２番目のビット情報は「０」であるので、変更後インデックスにおける１行２列のピクセルのインデックス値の変更は行わずに「１」になる。
【０１８６】
次に、変更後インデックスにおける１行３列のピクセルは、インデックス値が「Ｘ」であるので、透かし情報を示すビット情報を埋め込む対象ではない。
【０１８７】
次に、変更後インデックスにおける１行４列のピクセルは、インデックス値が「０」であるので、透かし情報を示すビット情報を埋め込む対象であり、図１３（ａ）に示す透かし情報の３番目のビット情報を埋め込むことになる。ここで、図１３（ａ）に示す透かし情報の３番目のビット情報は「１」であるので、変更後インデックスにおける１行２列のピクセルのインデックス値は「２５４（＝０＋ＵｓｅｄＣｏｌｏｒ＝０＋２５４」に変更する。
【０１８８】
以下、変更後インデックスのインデックス値に対して、処理順序に従って上記と同様な処理を繰り返すことによって、変更後インデックスのインデックス値は、図１３（ｂ）に表すインデックス（以下、図１３（ｂ）に示すインデックスを「処理後インデックス」と適宜に称する。）に示すように更新され、処理後インデックスが生成される。
【０１８９】
即ち、処理後インデックスにおいては、例えば、１行１列のピクセルのインデックス値は「０」となり、１行２列のピクセルのインデックス値は「１」となり、１行３列のピクセルのインデックス値は「Ｘ」となり、１行４列のピクセルのインデックス値は「２５４」となる。
【０１９０】
このように、０〜１のインデックス値は、透かし情報を示すビット情報が「０」であることを示し、一方、２５４〜２５５のインデックス値は、透かし情報を示すビット情報が「１」であることを示している。
【０１９１】
そして、処理後インデックスにおいては、インデックス値「０」とインデックス値「２５４」とは同一の色情報は示し、インデックス値「１」とインデックス値「２５５」とは同一の色情報は示している。
【０１９２】
そして、この処理対象のパレット画像を表示する際には、処理後パレットと処理後インデックスとにより示される各ピクセルの色情報により色彩を表示するものである。
【０１９３】
ここで、変更前インデックスと変更後インデックスと処理後インデックスとの間において、それぞれ対応するピクセルでインデックス値が異なるものが生じているが、それぞれ対応するピクセルのインデックス値が示す色情報自体は同一であるので、透かし情報を埋め込む前のパレット画像の色彩と透かし情報を埋め込んだ後のパレット画像の色彩とは同一なものとなる。
【０１９４】
従って、透かし情報を埋め込む前のパレット画像の色彩と透かし情報を埋め込んだ後のパレット画像とにおいて、両者の色彩が変化することはない。
【０１９５】
このように、１２９〜２５５色のパレット画像に透かし情報を埋め込んだ場合には、透かし情報を埋め込む前のパレット画像と透かし情報を埋め込んだ後のパレット画像とで色彩が変化することはない。
【０１９６】
（３−４−３）ステップＳ４２４〜ステップＳ４３２の処理
次に、ステップＳ４２４〜ステップＳ４３２の処理で実行される、透かし情報を埋め込む対象のパレット画像に定義されている色情報数が２５６である場合の処理について説明する。
【０１９７】
ここで、図９（ａ）には、情報入出力装置２４により読み込まれた、サイズが１６行１６列のピクセル（１６×１６ピクセル）のパレット画像における、図１（ｂ）に対応するパレットの一例の概念図が示されている。
【０１９８】
なお、理解を容易にするために、Ｒ、Ｇ、Ｂのそれぞれの値は、図９（ａ）に示すパレットにおける各エレメントのパレット番号と一致させている。
【０１９９】
この図９（ａ）に示すパレットの構成を参照してＵｓｅｄＣｏｌｏｒを検出するものであり、具体的には、パレットの各エレメントに色情報が定義されているか否かを判定し、色情報が定義されているエレメントの数をＵｓｅｄＣｏｌｏｒとする（ステップＳ４０２）。
【０２００】
図９（ａ）に示すパレット（以下、図９（ａ）に示すパレットを「処理前パレット」と適宜に称する。）においては、２５６個のエレメントには全て色情報が定義されている。
【０２０１】
従って、ＵｓｅｄＣｏｌｏｒは「２５６」となり（ステップＳ４０２）、ＵｓｅｄＣｏｌｏｒが２５６であるため（ステップＳ４０４、ステップＳ４１４）、透かし情報を埋め込む対象のパレット画像に定義されている色情報数が２５６の場合の処理（ステップＳ４２４〜ステップＳ４３２）が行われることになる。
【０２０２】
そして、ステップＳ４２４の処理においては、透かし情報を埋め込む処理対象となるパレット画像のインデックスにおいて使用頻度が最も少ないインデックス値を検出し、当該インデックス値に対応するエレメントのパレット番号を選択する。
【０２０３】
ここで、図１４（ａ）には、処理対象のパレット画像のインデックスとして、サイズが１６行１６列のピクセル（１６×１６ピクセル）のパレット画像のインデックスの一例の概念図が示されている。
【０２０４】
この図１４（ａ）に示すインデックス（以下、図１４（ａ）に示すインデックスを「変更前インデックス」と適宜に称する。）には、処理前パレットの構成に対応したインデックス値が示されており、処理前パレットの色情報に対応する２５６色が指定されている。
【０２０５】
なお、図１４（ａ）に示すインデックスの各ピクセルにおける「０」はインデックス値が「０」であることを示し、また、図１４（ａ）に示すインデックスの各ピクセルにおける「２５５」はインデックス値が「２５５」であることを示し、図１４（ａ）に示すインデックスの各ピクセルにおける「Ｘ」はインデックス値が「１〜２５４」のいずれかであることを示している。
【０２０６】
また、図１４（ａ）に示すインデックスにおいては、使用された色の頻度が一番少ないインデックス値は「２５５」であり、その回数が１回であるものとする。
【０２０７】
また、図１４（ａ）に示すインデックスにおいては、使用された色の頻度が一番多いインデックス値は「０」であり、その回数が１０５回であるものとする。
【０２０８】
また、図１４（ａ）に示すインデックスにおいて、「Ｘ」で示すそれぞれのインデックス値（１〜２５４のインデックス値）は、それぞれの使用頻度が全て１０５回よりも少ない、即ち、２回以上１０４回以下であるものとする。
【０２０９】
従って、変更前インデックスにおいては、ステップＳ４２４の処理により使用頻度が最も少ないインデックス値として「２５５」が検出され、インデックス値２５５に対応するエレメントのパレット番号２５５が取得される。
【０２１０】
次に、ステップＳ４２６の処理においては、変更前インデックスを参照して使用頻度が最も多いインデックス値として「０」が検出され、インデックス値０に対応するエレメントのパレット番号０が取得される。
【０２１１】
次に、ステップＳ４２８の処理により、変更前インデックスにおいて、使用頻度が最も少ないインデックス値２５５のピクセルに関して、そのインデックス値を使用頻度が最も多いインデックス値である「０」に変更する。
【０２１２】
図１４（ｂ）には、上記のようにして、変更前インデックスのインデックス値を変更したインデックスが示されている。なお、図１４（ｂ）に示すインデックスを「変更後インデックス」と適宜に称する。。
【０２１３】
図１４（ａ）に示す変更前インデックスならびに図１４（ｂ）に示す変更後インデックスを参照しながら具体的に説明すると、変更前インデックスにおいてインデックス値が「２５５」のピクセルは、変更後インデックスにおいてインデックス値が「０」となるように当該インデックス値を変更する。
【０２１４】
次に、ステップＳ４２８の処理により、パレット番号０の０番目のエレメントに定義されている色情報を、図９（ｂ）のパレット（以下、図９（ｂ）に示すパレットを「処理後パレット」と適宜に称する。）に示すように、パレット番号２５５の２５５番目のエレメントにコピーする。これにより、パレットにおいて使用頻度が最も多いパレットのエレメントに定義された色情報を、パレットにおいて使用頻度が最も少ないエレメントの色情報としてコピーして、パレットの構成を変更する（ステップＳ４３０）。
【０２１５】
具体的には、パレット番号２５５のエレメントにパレット番号０のエレメントの色情報（Ｒ０Ｇ０Ｂ０）をコピーして、処理後パレットを生成する。
【０２１６】
次に、処理順序に従って、変更後インデックスに対し透かし情報を示すビット情報（「０」または「１」）を各ピクセル毎に順番に埋め込む処理を行う（ステップＳ４３２）。
【０２１７】
ここで、透かし情報を示すビット情報（「０」または「１」）を各ピクセルに埋め込む処理とは、透かし情報を示すビット情報（「０」または「１」）に応じて変更後インデックスの所定のピクセルのインデックス値を処理し、変更後インデックスのインデックス値に透かし情報を反映させる処理を意味する。
【０２１８】
図１５（ａ）には透かし情報を示すビット情報の一例の概念図が示されており、この透かし情報は「０」または「１」を示す１０６個のビット列（１０６ビット）から構成されている。
【０２１９】
この図１５（ａ）に透かし情報のビット列は、図１５（ａ）上において、最上段の行の左端のビットから右端のビットへ進み、右端のビットまで進むと最上段の下方における次の段の行の左端のビットから右端のビットへ進むようにして形成されている。
【０２２０】
変更後インデックスのインデックス値への透かし情報を反映は、透かし情報のビット列の各ビット情報を１番目から順番に、処理順序に従って変更後インデックスの所定のピクセルのインデックス値に反映させるものであり、透かし情報を示すビット情報が「０」の場合には、インデックス値の変更は行わず、一方、透かし情報を示すビット情報が「１」の場合には、インデックス値をステップＳ４２４で検出された使用頻度が最も少ないインデックス値に変更する処理を行う。
【０２２１】
ここで、透かし情報を示すビット情報を埋め込む所定のピクセルとは、変更後インデックスにおいて使用頻度が最も多いインデックス値のピクセルである。
【０２２２】
具体的には、図１４（ｂ）に示す変更後インデックスにおいて、インデックス値が「０」のピクセルである。
【０２２３】
このインデックス値が「０」のピクセルにのみ、透かし情報を示すビット情報を処理順序に従って埋め込んで、そのインデックス値に透かし情報を反映させるものであり、透かし情報を示すビット情報が「０」の場合にはインデックス値の変更を行わず、一方、透かし情報を示すビット情報が「１」の場合にはインデックス値をステップＳ４２４で検出された使用頻度が最も少ないインデックス値に変更する処理を行ってインデックス値を変更する。
【０２２４】
例えば、変更後インデックスにおける１行１列のピクセルは、インデックス値が「０」であるので、透かし情報を示すビット情報を埋め込む対象であり、図１５（ａ）に示す透かし情報の１番目のビット情報を埋め込むことになる。ここで、図１５（ａ）に示す透かし情報の１番目のビット情報は「０」であるので、変更後インデックスにおける１行１列のピクセルのインデックス値の変更は行わない。
【０２２５】
次に、変更後インデックスにおける１行２列のピクセルは、インデックス値が「０」であるので、透かし情報を示すビット情報を埋め込む対象であり、図１５（ａ）に示す透かし情報の２番目のビット情報を埋め込むことになる。ここで、図１５（ａ）に示す透かし情報の２番目のビット情報は「０」であるので、変更後インデックスにおける１行２列のピクセルのインデックス値の変更は行わない。
【０２２６】
次に、変更後インデックスにおける１行３列のピクセルは、インデックス値が「Ｘ」であるので、透かし情報を示すビット情報を埋め込む対象ではない。
【０２２７】
次に、変更後インデックスにおける１行４列のピクセルは、インデックス値が「０」であるので、透かし情報を示すビット情報を埋め込む対象であり、図１５（ａ）に示す透かし情報の３番目のビット情報を埋め込むことになる。ここで、図１５（ａ）に示す透かし情報の３番目のビット情報は「１」であるので、変更後インデックスにおける１行２列のピクセルのインデックス値は「２５５」に変更する。
【０２２８】
以下、変更後インデックスのインデックス値に対して、処理順序に従って上記と同様な処理を繰り返すことによって、変更後インデックスのインデックス値は、図１５（ｂ）に表すインデックス（以下、図１５（ｂ）に示すインデックスを「処理後インデックス」と適宜に称する。）に示すように更新され、処理後インデックスが生成される。
【０２２９】
即ち、処理後インデックスにおいては、例えば、１行１列のピクセルのインデックス値は「０」となり、１行２列のピクセルのインデックス値は「０」となり、１行３列のピクセルのインデックス値は「Ｘ」となり、１行４列のピクセルのインデックス値は「２５５」となる。
【０２３０】
このように、処理後インデックスにおいて、使用頻度が最も多いインデックス値である「０」は、透かし情報を示すビット情報が「０」であることを示し、一方、使用頻度が最も少ないインデックス値である「２５５」は、透かし情報を示すビット情報が「１」であることを示している。
【０２３１】
そして、処理後インデックスにおいては、インデックス値「０」とインデックス値「２５５」とは同一の色情報は示している。
【０２３２】
そして、この処理対象のパレット画像を表示する際には、処理後パレットと処理後インデックスとにより示される各ピクセルの色情報により色彩を表示するものである。
【０２３３】
ここで、変更前インデックスと処理後インデックスとの間においては、使用頻度が最も少ないインデックス値が指定する色情報が、使用頻度が最も多いインデックス値が指定する色情報に変更されていることになる。
【０２３４】
しかしながら、パレット画像上においては、使用頻度が最も少ない色のピクセルの色が、使用頻度が最も多い色に変化したに過ぎないため、人間の視覚では処理前インデックスによるパレット画像と処理後インデックスによるパレット画像との差異を発見することは困難であり、パレット画像の色彩に大幅な変化を与えることなく、パレット画像に透かし情報が埋め込むことができる。
【０２３５】
（４）電子透かし検出処理の概要
まず、図１６には、ＣＰＵ１２の制御により実行される本発明による電子透かし検出処理の概要を表すフローチャートが示されている。
【０２３６】
即ち、本発明による電子透かし検出処理は、透かし情報を埋め込んだパレット画像におけるパレットの構成を調べ（ステップＳ１６０２）、当該調べたパレットの構成に応じた所定の処理を行って（ステップＳ１６０４）、透かし情報を埋め込んだパレット画像のインデックスから透かし情報のビット情報を検出するようにしたものである（ステップＳ１６０６）。
【０２３７】
より詳細には、本発明による電子透かし検出処理は、上記において説明した本発明による電子透かし埋め込み処理により透かし情報を埋め込まれたパレット画像から透かし情報を検出する際に用いて好適なものであり、透かし情報を埋め込まれたパレット画像において使用されている色数に応じた３つの処理に分けられ、それぞれ異なった処理を行うようになされている。
【０２３８】
つまり、本発明による電子透かし検出処理は、
（ａ）パレット画像に使用されている色数が１２８以下の場合
（ｂ）パレット画像に使用されている色数が１２９〜２５５の場合
（ｃ）パレット画像に使用されている色数が２５６の場合
の３つの場合に分けられる。
【０２３９】
以下、上記した（ａ）〜（ｃ）に示す場合のそれぞれについて、パレット画像に対する透かし情報の検出処理について説明する。
【０２４０】
（５）電子透かし検出処理の詳細
次に、図１７乃至図１９に示す透かし情報を検出する処理の処理ルーチンのフローチャートを参照しながら、
（ａ）パレット画像に使用されている色数が１２８以下の場合
（ｂ）パレット画像に使用されている色数が１２９〜２５５の場合
（ｃ）パレット画像に使用されている色数が２５６の場合
のそれぞれの場合において、当該パレット画像から透かし情報を検出する処理について詳細に説明する。
【０２４１】
なお、ユーザーがポインティングデバイス２０や文字入力デバイス２２などの入力手段を操作することなどにより、透かし情報を検出する処理の処理ルーチンとして、上記した（ａ）（ｂ）および（ｃ）の場合にかかる処理ルーチンが順次あるいは時分割処理などにより並列に起動され、それぞれ上記した（ａ）（ｂ）および（ｃ）の場合のそれぞれについて検出結果が得られるものである。
【０２４２】
（５−１）パレット画像に使用されている色数が１２８以下の場合の処理
（５−１−１）フローチャートを参照した説明
透かし情報を検出する処理の処理ルーチンとして、図１７に示すフローチャートの処理ルーチンが起動されると、まず、ステップＳ１７０２の処理において、処理対象のパレット画像のパレットの各エレメントに定義された色情報、即ち、パレットのパレット番号０〜２５５の０〜２５５番目の全てのエレメントに定義された色情報を取得する。
【０２４３】
このステップＳ１７０２の処理を終了すると、ステップＳ１７０４の処理へ進み、ステップＳ１７０２の処理で取得したパレット番号０の０番目のエレメントに定義された色情報とパレットのパレット番号１２８の１２８番目に定義されたエレメントの色情報とを比較し、両者が一致するか否かを判断する。
【０２４４】
このステップＳ１７０４の判断処理において、パレットの先頭のパレット番号０の０番目のエレメントの色情報とパレットのパレット番号１２８の１２８番目のエレメントの色情報とが一致すると判断された場合には、処理対象のパレット画像で使用されている色数は１２８以下であると判断し、ステップＳ１７０６の処理へ進む。
【０２４５】
ステップＳ１７０６の処理においては、一対（ペア）になるエレメント、即ち、パレット番号０〜１２７の０〜１２７番目のエレメントとパレット番号１２８〜２５５の１２８〜２５５番目のエレメントとを用いて、パレット番号０の０番目のエレメントとパレット番号１２８の１２８番目のエレメントとのペア、パレット番号１の１番目のエレメントとパレット番号１２９の１２９番目のエレメントとのペア、パレット番号２の２番目のエレメントとパレット番号１３０の１３０番目のエレメントとのペアというように、パレット番号Ｕ（Ｕ＝０〜１２７の整数）のＵ番目のエレメントとパレット番号（１２８＋Ｕ）の（１２８＋Ｕ）番目のエレメントとのペアを作成し、ステップＳ１７０２の処理で取得した色情報を参照し、作成したペアにおいて互いのエレメントに定義された色情報が一致するペアの数（ペア数）を算出する。
【０２４６】
このステップＳ１７０６の処理を終了すると、ステップＳ１７０８の処理へ進み、算出されたペア数に基づいて、以下に説明する処理により透かし情報を検出し、この処理ルーチンを終了する。
【０２４７】
即ち、処理順序に従って処理対象のパレット画像のインデックスのインデックス値を取得し、取得したインデックス値（以下、取得したインデックス値を「Ｎ」とする。）が、
０≦Ｎ＜ペア数
であれば、透かし情報のビット情報は「０」であり、また、取得したインデックス値Ｎが、
１２８≦Ｎ＜１２８＋ペア数
であれば、透かし情報のビット情報は「１」であると判定し、これにより透かし情報を検出する。
【０２４８】
こうして検出されたビット情報のビット列、即ち、透かし情報を解析して、適宜の処理に用いればよい。
【０２４９】
一方、ステップＳ１７０４の判断処理において、パレットの先頭のパレット番号０の０番目のエレメントの色情報とパレットのパレット番号１２８の１２８番目のエレメントの色情報とが一致しないと判断された場合には、処理対象のパレット画像で使用されている色数は１２８以下ではないものと判断し、この処理ルーチンを終了する。
【０２５０】
（５−１−２）具体例を参照した説明
上記した「（３−１）パレット画像のパレットに定義されている色情報数が１２８以下の場合の処理」により透かし情報を埋め込まれたパレット画像を例として、図７に示す構成のパレットと図１１（ｄ）に示すインデックスとよりなるパレット画像（以下、この項においては、「検出対象パレット画像」と適宜に称する。）から透かし情報を検出する場合について説明する。
【０２５１】
まず、図７に示す構成のパレットにおいては、パレット番号０の０番目のエレメントに定義された色情報とパレット番号１２８の１２８番目のエレメントに定義された色情報とが一致するので（ステップＳ１７０２、ステップＳ１７０４）、パレット番号Ｕ（Ｕ＝０〜１２７の整数）のＵ番目のエレメントとパレット番号（１２８＋Ｕ）の（１２８＋Ｕ）番目のエレメントとのペアを作成し、作成したペアにおいて互いのエレメントに定義された色情報が一致するペア数を算出すると、その算出されたペア数は「１６」になる（ステップＳ１７０６）。
【０２５２】
ここで、図１１（ｄ）に示すインデックスの各ピクセルおけるインデックス値を取得して、当該取得したインデックス値を処理順序に従ってペア数である「１６」と比較し、
０≦取得したインデックス値＜１６
であれば、透かし情報のビット情報は「０」であり、また、取得したインデックス値が、
１２８≦取得したインデックス値＜１４４
であれば、透かし情報のビット情報は「１」であると判定し、これにより透かし情報を検出する（ステップＳ１７０８）。
【０２５３】
具体的には、図１１（ｄ）に示すインデックスの１行１列から１行８列までは、
０≦インデックス値１６
であるのでビット情報は「０」と判定され、透かし情報の１番目から８番目までのビット情報は「０」と判断され、また、図１１（ｄ）に示すインデックスの２行１列から２行８列までは、
１２８≦インデックス値＜１４４
であるのでビット情報は「１」と判定され、透かし情報の９番目から１６番目までのビット情報は「１」と判断され、また、図１１（ｄ）に示すインデックスの３行１列から３行８列までは、
０≦インデックス値１６
であるのでビット情報は「０」と判定され、透かし情報の１７番目から２４番目までのビット情報は「０」と判断され、また、図１１（ｄ）に示すインデックスの４行１列から４行８列までは、
１２８≦インデックス値＜１４４
であるのでビット情報は「１」と判定され、透かし情報の２５番目から３２番目までのビット情報は「１」と判断され、図１１（ｄ）に示すインデックスの５行１列から５行８列までは、
０≦インデックス値１６
であるのでビット情報は「０」と判定され、透かし情報の３３番目から４０番目までのビット情報は「０」と判断され、また、図１１（ｄ）に示すインデックスの６行１列から６行８列までは、
１２８≦インデックス値＜１４４
であるのでビット情報は「１」と判定され、透かし情報の４１番目から４８番目までのビット情報は「１」と判断され、また、図１１（ｄ）に示すインデックスの７行１列から７行８列までは、
０≦インデックス値１６
であるのでビット情報は「０」と判定され、透かし情報の４９番目から５６番目までのビット情報は「０」と判断され、また、図１１（ｄ）に示すインデックスの８行１列から８行８列までは、
１２８≦インデックス値＜１４４
であるのでビット情報は「１」と判定され、透かし情報の５７番目から６４番目までのビット情報は「１」と判断される（ステップＳ１７０８）。
【０２５４】
（５−１−３）透かし情報の埋め込み処理との関係
上記において説明したように、上記した「（３−１）パレット画像のパレットに定義されている色数が１２８色以下の場合の処理」により透かし情報を埋め込まれたパレット画像については、この「（５−１−１）パレット画像に使用されている色数が１２８以下の場合の処理」により、透かし情報のビット情報を完全に検出することができる。
【０２５５】
（５−２）パレット画像に使用されている色数が１２９〜２５５の場合の処理
（５−２−１）フローチャートを参照した説明
透かし情報を検出する処理の処理ルーチンとして、図１８に示すフローチャートの処理ルーチンが起動されると、まず、ステップＳ１８０２の処理において、処理対象のパレット画像のパレットの各エレメントに定義された色情報、即ち、パレットのパレット番号０〜２５５の０〜２５５番目の全てのエレメントに定義された色情報を取得する。
【０２５６】
このステップＳ１８０２の処理を終了すると、ステップＳ１８０４の処理へ進み、ステップＳ１８０２の処理で取得したパレットの先頭のパレット番号０の０番目のエレメントの色情報とパレットのパレット番号１２９〜２５５の１２９〜２５５番目のエレメントの色情報とを比較し、パレットのパレット番号１２９〜２５５の１２９〜２５５番目のエレメントの中に、パレットの先頭のパレット番号０の０番目のエレメントの色情報と一致する色情報を定義されたものがあるか否かを判断する。
【０２５７】
このステップＳ１８０４の判断処理において、パレットのパレット番号１２９〜２５５の１２９〜２５５番目のエレメントの中に、パレットの先頭のパレット番号０の０番目のエレメントの色情報と一致する色情報を定義されたものがあると判断された場合には、処理対象のパレット画像で使用されている色数は１２９〜２５５であると判断し、ステップＳ１８０６の処理へ進む。
【０２５８】
なお、以下の説明の理解を容易にするために、パレットのパレット番号１２９〜２５５の１２９〜２５５番目のエレメントの中で、パレットの先頭のパレット番号０の０番目のエレメントの色情報と一致する色情報を定義されたエレメントのパレット番号を「Ｍ」として説明する。
【０２５９】
そして、ステップＳ１８０６の処理においては、パレット番号が０〜（２５５−Ｍ）の０〜（２５５−Ｍ）番目のエレメントとパレット番号Ｍ〜２５５のＭ〜２５５番目のエレメントとを用いて、パレット番号０の０番目のエレメントとパレット番号ＭのＭ番目のエレメントとのペア、パレット番号１の１番目のエレメントとパレット番号（Ｍ＋１）の（Ｍ＋１）番目のエレメントとのペア、パレット番号２の２番目のエレメントとパレット番号（Ｍ＋２）の（Ｍ＋２）番目のエレメントとのペアというように順次にペアを作成する。
【０２６０】
ステップＳ１８０６の処理を終了すると、ステップＳ１８０８の処理へ進み、ステップＳ１８０４で作成した全てのペアにおいて、互いのエレメントに定義された色情報が一致するか否かを判断する。
【０２６１】
このステップＳ１８０８の判断処理において、ステップＳ１８０６で作成した全てのペアにおいて、互いのエレメントに定義された色情報が一致すると判断された場合には、処理対象のパレット画像で使用されている色数は１２９〜２５５であると判断し、ステップＳ１８１０の処理へ進む。
【０２６２】
ステップＳ１８１０の処理においては、パレット番号Ｍとに基づいて、以下に説明する処理により透かし情報を検出し、この処理ルーチンを終了する。
【０２６３】
即ち、処理順序に従って処理対象のパレット画像のインデックスのインデックス値を取得し、取得したインデックス値（以下、取得したインデックス値を「Ｎ」とする。）が、
０≦Ｎ≦２５５−Ｍ
であれば、透かし情報のビット情報は「０」であり、また、取得したインデックス値Ｎが、
Ｍ≦Ｎ≦２５５
であれば、透かし情報のビット情報は「１」であると判定し、これにより透かし情報を検出する。
【０２６４】
なお、取得したインデックス値Ｎが、「０≦Ｎ≦２５５−Ｍ」あるいは「Ｍ≦Ｎ≦２５５」のいずれの範囲にもない場合には、取得したインデックス値Ｎには透かし情報が埋め込まれていないものとして扱う。
【０２６５】
こうして検出されたビット情報のビット列、即ち、透かし情報を解析して、適宜の処理に用いればよい。
【０２６６】
一方、ステップＳ１８０４の判断処理において、パレットのパレット番号１２８〜２５５の１２８〜２５５番目のエレメントの中に、パレットの先頭のパレット番号０の０番目のエレメントの色情報と一致する色情報を定義されたものがないと判断された場合には、処理対象のパレット画像で使用されている色数は１２９〜２５５ではないものと判断し、この処理ルーチンを終了する。
【０２６７】
また、ステップＳ１８０８の判断処理において、ステップＳ１８０６で作成したペアの中で互いのエレメントに定義された色情報が一致しないペアがあると判断された場合には、処理対象のパレット画像で使用されている色数は１２９〜２５５ではないものと判断し、この処理ルーチンを終了する。
【０２６８】
（５−２−２）具体例を参照した説明
上記した「（３−２）パレット画像のパレットに定義されている色情報数が１２９〜２５５の場合の処理」により透かし情報を埋め込まれたパレット画像を例として、図８（ｂ）に示す色構成のパレットと図１３（ｂ）に示すインデックスとよりなるパレット画像（以下、この項においては、「検出対象パレット画像」と適宜に称する。）から透かし情報を検出する場合について説明する。
【０２６９】
まず、図８（ｂ）に示す構成のパレットにおいては、パレット番号１２９〜２５５の１２９〜２５５番目のエレメントの中に、パレット番号０の０番目のエレメントの色情報と一致する色情報を定義されたパレット番号２５４の２５４番目のエレメント（Ｍ＝２５４）があるので（ステップＳ１８０２、ステップＳ１８０４）、パレット番号０の０番目のエレメントとパレット番号２５４の２５４番目のエレメントとのペアと、パレット番号１の１番目のエレメントとパレット番号２５５の２５５番目のエレメントとのペアと作成する（ステップＳ１８０６）。
【０２７０】
ここで、パレット番号０の０番目のエレメントとパレット番号２５４の２５４番目のエレメントとのペアと、パレット番号１の１番目のエレメントとパレット番号２５５の２５５番目のエレメントとのペアとは、互いのエレメントに定義された色情報が一致するので（ステップＳ１８０８）、図１３（ｄ）に示すインデックスの各ピクセルおけるインデックス値を取得して、取得したインデックス値が、
０≦取得したインデックス値≦１（＝２５５−Ｍ＝２５５−２５４）
であれば、透かし情報のビット情報を「０」と判定し、取得したインデックス値が、
（Ｍ＝２５４）≦取得したインデックス値≦２５５
であれば、透かし情報のビット情報を「１」と判定する。
【０２７１】
具体的には、例えば、図１３（ｄ）に示すインデックスにおける１行１列のインデックス値は「０」であるので、１行１列のピクセルに埋め込まれたビット情報は「０」と判定され、透かし情報の１番目のビット情報は「０」であると判断される。
【０２７２】
また、図１３（ｄ）に示すインデックスにおける１行２列のインデックス値は「１」であるので、１行２列のピクセルに埋め込まれたビット情報は「０」と判定され、透かし情報の２番目のビット情報は「０」であると判断される。
【０２７３】
さらに、図１３（ｄ）に示すインデックスにおける１行３列のインデックス値は「Ｘ」であるので、取得したインデックス値には透かし情報が埋め込まれていないものとして扱う。
【０２７４】
さらにまた、図１３（ｄ）に示すインデックスにおける１行４列のインデックス値は「２５４」であるので、１行４列のピクセルに埋め込まれたビット情報は「１」であると判定され、透かし情報の３番目のビット情報は「１」であると判断される。
【０２７５】
（５−２−３）透かし情報の埋め込み処理との関係
上記において説明したように、上記した「（３−２）パレット画像のパレットに定義されている色数が１２９〜２５５の場合の処理」により透かし情報を埋め込まれたパレット画像については、この「（５−２−１）パレット画像に使用されている色数が１２９〜２５５の場合の処理」により、透かし情報のビット情報を完全に検出することができる。
【０２７６】
（５−３）パレット画像に使用されている色数が１２９〜２５５の場合の処理
（５−３−１）フローチャートを参照した説明
透かし情報を検出する処理の処理ルーチンとして、図１９に示すフローチャートの処理ルーチンが起動されると、まず、ステップＳ１９０２の処理において、処理対象のパレット画像のパレットの各エレメントに定義された色情報、即ち、パレットのパレット番号０〜２５５の０〜２５５番目の全てのエレメントに定義された色情報を取得する。
【０２７７】
このステップＳ１９０２の処理を終了すると、ステップＳ１９０４の処理へ進み、ステップＳ１９０２の処理で取得したパレットのパレット番号０〜２５５の０〜２５５番目のエレメントの色情報を比較し、パレットのパレット番号０〜２５５の０〜２５５番目のエレメントの中に、色情報が互いに一致するエレメントのペアがあるか否かを判断する。
【０２７８】
このステップＳ１９０４の判断処理において、パレットのパレット番号０〜２５５の０〜２５５番目のエレメントの中に、色情報が互いに一致するエレメントのペアがあると判断された場合には、処理対象のパレット画像で使用されている色数は２５６であると判断し、ステップＳ１９０６の処理へ進む。
【０２７９】
なお、以下の説明の理解を容易にするために、パレットのパレット番号０〜２５５の０〜２５５番目のエレメントの中の色情報が互いに一致するエレメントのペアについて、パレット番号が小さい方のエレメントのパレット番号を「Ｐ」とし、パレット番号が大きい方のエレメントのパレット番号を「Ｑ」として説明する。
【０２８０】
そして、ステップＳ１９０６の処理においては、パレット番号Ｐとパレット番号Ｑとに基づいて、以下に説明する処理により透かし情報を検出し、この処理ルーチンを終了する。
【０２８１】
即ち、処理順序に従って処理対象のパレット画像のインデックスのインデックス値を取得し、取得したインデックス値（以下、取得したインデックス値を「Ｎ」とする。）が、
Ｎ＝Ｐ
であれば、透かし情報のビット情報は「０」であり、また、取得したインデックス値Ｎが、
Ｎ＝Ｑ
であれば、透かし情報のビット情報は「１」であると判定し、これにより透かし情報を検出する。
【０２８２】
なお、取得したインデックス値Ｎが、ＰあるいはＱと一致しない場合には、取得したインデックス値Ｎには透かし情報が埋め込まれていないものとして扱う。
【０２８３】
こうして検出されたビット情報のビット列、即ち、透かし情報を解析して、適宜の処理に用いればよい。
【０２８４】
また、上記において検出されたビット情報のビット列では、適正な透かし情報を取得できない場合には、
Ｎ＝Ｐ
であれば、透かし情報のビット情報は「１」であり、また、取得したインデックス値Ｎが、
Ｎ＝Ｑ
であれば、透かし情報のビット情報は「０」であると判定し、これにより透かし情報を検出する。
【０２８５】
なお、取得したインデックス値Ｎが、ＰあるいはＱと一致しない場合には、上記の場合と同様に、取得したインデックス値Ｎには透かし情報が埋め込まれていないものとして扱う。
【０２８６】
こうして検出されたビット情報のビット列、即ち、透かし情報を解析して、適宜の処理に用いればよい。
【０２８７】
即ち、「Ｎ＝Ｐ」のときに透かし情報のビット情報が「０」であるか「１」であるかの判定結果、また、「Ｎ＝Ｑ」のときに透かし情報のビット情報は「１」であるか「０」であるかの判定結果は、透かし情報を埋め込む際において、ビット情報の「０」と「１」とをそれぞれ埋め込むインデックス値の大小に依存するので、上記したように透かし情報の判定結果を反転させた処理も行うことが好ましい。
【０２８８】
一方、ステップＳ１９０４の判断処理において、パレットのパレット番号０〜２５５の０〜２５５番目のエレメントの中に、色情報が互いに一致するエレメントのペアはないと判断された場合には、処理対象のパレット画像で使用されている色数は２５６ではないものと判断し、この処理ルーチンを終了する。
【０２８９】
（５−３−２）具体例を参照した説明
上記した「（３−３）パレット画像のパレットに定義されている色情報数が２５６の場合の処理」により透かし情報を埋め込まれたパレット画像を例として、図９（ｂ）に示す色構成のパレットと図１５（ｂ）に示すインデックスとよりなるパレット画像（以下、この項においては、「検出対象パレット画像」と適宜に称する。）から透かし情報を検出する場合について説明する。
【０２９０】
まず、図９（ｂ）に示す色構成のパレットにおいては、パレット番号０〜２５５の０〜２５５番目のエレメントの中で、パレット番号０の０番目のエレメント（Ｐ＝０）とパレット番号２５５の２５５番目のエレメント（Ｑ＝０）との色情報が互いに一致するので（ステップＳ１９０２、ステップＳ１９０４）、図１５（ｂ）に示すインデックスの各ピクセルおけるインデックス値を取得して、取得したインデックス値が、
Ｐ＝０＝取得したインデックス値
であれば、透かし情報のビット情報を「０」と判定し、取得したインデックス値が、
Ｑ＝２５５＝取得したインデックス値
であれば、透かし情報のビット情報を「１」と判定する。
【０２９１】
具体的には、例えば、図１５（ｂ）に示すインデックスにおける１行１列のインデックス値は「０」であるので、１行１列のピクセルに埋め込まれたビット情報は「０」と判定され、透かし情報の１番目のビット情報は「０」であると判断される。
【０２９２】
また、図１５（ｂ）に示すインデックスにおける１行２列のインデックス値は「０」であるので、１行２列のピクセルに埋め込まれたビット情報は「０」と判定され、透かし情報の２番目のビット情報は「０」であると判断される。
【０２９３】
さらに、図１５（ｂ）に示すインデックスにおける１行３列のインデックス値は「Ｘ」であるので、取得したインデックス値には透かし情報が埋め込まれていないものとして扱う。
【０２９４】
さらにまた、図１５（ｂ）に示すインデックスにおける１行４列のインデックス値は「２５５」であるので、１行４列のピクセルに埋め込まれたビット情報は「１」であると判定され、透かし情報の３番目のビット情報は「１」であると判断される。
【０２９５】
（５−３−３）透かし情報の埋め込み処理との関係
上記において説明したように、上記した「（３−３）パレット画像のパレットに定義されている色情報数が２５６の場合の処理」により透かし情報を埋め込まれたパレット画像については、この「（５−３−１）パレット画像に使用されている色数が２５６の場合の処理」により、透かし情報のビット情報を完全に検出することができる。
【０２９６】
（６）上記した実施の形態の変形例
なお、上記した実施の形態は、以下の（６−１）〜（６−５）に示すように変形することができるものである。
【０２９７】
（６−１）実施の形態を含む上記した説明においては、本発明の理解を容易にするために、ＧＩＦやＰＮＧなどのフォーマットに示されるような２５６個のエレメントによりパレットが構成されている場合について説明したが、パレットを構成するエレメントの数は２５６個に限られるものではないことは勿論であり、パレットを構成するエレメントの数が偶数個であれば、本発明を適用することができる。
【０２９８】
こうした偶数個のエレメントにより構成されるパレットのパレット画像に本発明を適用する際には、上記した実施の形態でパレットのエレメントのパレット番号ならびにインデックスのインデックス値を特定する際に用いた数値である「１２７」に代えて「パレット画像を構成するエレメントの総数（以下、「総エレメント数」と適宜に称する。）の半分（総エレメント数／２）から１を減算した値（（総エレメント数／２）−１）」の数値を用い、同「１２８」に代えて「総エレメント数／２」の数値を用い、同「１２９」に代えて「（総エレメント数／２）＋１」の数値を用い、同「２５５」に代えて「総エレメント数−１」の数値を用い、同「２５６」に代えて「総エレメント数」の数値を用いるようにすればよい。
【０２９９】
（６−２）上記した実施の形態においては、ステップＳ４１２、ステップＳ４２２あるいはステップＳ４３２の処理において、透かし情報を示すビット情報の「０」と「１」とをそれぞれ反映させるインデックス値は、それぞれ反対にして用いるようにしてもよい。
【０３００】
即ち、上記した説明において透かし情報を示すビット情報の「０」を反映させたインデックス値により透かし情報を示すビット情報の「１」を反映させるようにするとともに、上記した説明において透かし情報を示すビット情報の「１」を反映させたインデックス値により透かし情報を示すビット情報の「０」を反映させるようにしてもよい。
【０３０１】
なお、上記したように透かし情報を示すビット情報の「０」と「１」とをそれぞれ反映させるインデックス値をそれぞれ反対にして用いる場合には、この本発明による透かし情報の埋め込み処理によりパレット画像に埋め込まれ透かし情報を、この本発明による透かし情報の検出処理により検出するには、ステップＳ１７０８、ステップＳ１８０８あるいはステップＳ１９０６の処理において、透かし情報として検出するビット情報の「０」と「１」とをそれぞれ反転するようにして検出する。
【０３０２】
（６−３）上記した実施の形態においては、パレット画像のピクセル数と当該パレット画像に埋め込む透かし情報のビット数とを同一としたが、これに限られるものではないことは勿論であり、パレット画像のピクセル数よりも当該パレット画像に埋め込む透かし情報のビット数が少なくてもよい。
【０３０３】
（６−４）上記した実施の形態においては、本発明の理解を容易にするために、パレット画像のピクセル数などで具体的な数値を示したが、これらは一例に過ぎないものであることは勿論であり、適宜に任意の数値を選択することができる。
【０３０４】
（６−５）上記した実施の形態ならびに上記した（６−１）乃至（６−４）に示す変形例は、適宜に組み合わせるようにしてもよい。
【産業上の利用可能性】
【０３０５】
本発明は、パレット画像に電子透かし情報を埋め込む際やパレット画像に埋め込まれた電子透かし情報を検出する際に利用することができる。
【図面の簡単な説明】
【０３０６】
【図１】図１（ａ）（ｂ）は、インデックスならびにパレットについてサイズが８行８列のピクセル（８×８ピクセル）のパレット画像に関する具体例を示し、図１（ａ）は、８×８ピクセルに対応したインデックスを概念的に示す概念図であり、図１（ｂ）は、そのパレットを概念的に示す概念図である。
【図２】図２は、本発明による電子透かし埋め込み方法を実施するための電子透かし埋め込み装置ならびに本発明による電子透かし検出方法を実施するための電子透かし検出装置を実現する電子透かし埋め込み・検出システムの構成の一例を表すブロック構成図である。
【図３】図３は、本発明による電子透かし埋め込み処理の概要を表すフローチャートである。
【図４】図４は、本発明による電子透かし埋め込み処理の詳細を表すフローチャートである。
【図５】図５は、本発明による電子透かし埋め込み処理の詳細を表すフローチャートである。
【図６】図６は、本発明による電子透かし埋め込み処理の詳細を表すフローチャートである。
【図７】図７は、パレット画像のパレットに定義されている色情報数が１２８以下の場合の処理を説明するためのパレットの概念図である。
【図８】図８（ａ）（ｂ）は、パレット画像のパレットに定義されている色情報数が１２９〜２５５の場合の処理を説明するためのパレットの概念図であり、図８（ａ）は、処理前パレットを示す概念図であり、図８（ｂ）は、処理後パレットを示す概念図である。
【図９】図９（ａ）（ｂ）は、パレット画像のパレットに定義されている色情報数が２５６の場合の処理を説明するためのパレットの概念図であり、図９（ａ）は、処理前パレットを示す概念図であり、図９（ｂ）は、処理後パレットを示す概念図である。
【図１０】図１０（ａ）（ｂ）（ｃ）は、パレット画像のパレットに定義されている色情報数が１２８以下の場合の処理を説明するためのパレットの概念図であり、図１０（ａ）は、処理前パレットを示す概念図であり、図１０（ｂ）は、移動後パレットを示す概念図であり、図１０（ｃ）は、処理後パレットを示す概念図である。
【図１１】図１１（ａ）（ｂ）（ｃ）（ｄ）は、パレット画像のパレットに定義されている色情報数が１２８以下の場合の処理を説明するための概念図であり、図１１（ａ）は、変更前インデックスを示す概念図であり、図１１（ｂ）は、変更後インデックスを示す概念図であり、図１１（ｃ）は、電子透かし情報を示す概念図であり、図１１（ｄ）は、処理後インデックスを示す概念図である。
【図１２】図１２（ａ）（ｂ）は、パレット画像のパレットに定義されている色情報数が１２９〜２５５の場合の処理を説明するための概念図であり、図１２（ａ）は、変更前インデックスを示す概念図であり、図１２（ｂ）は、変更後インデックスを示す概念図である。
【図１３】図１３（ａ）（ｂ）は、パレット画像のパレットに定義されている色情報数が１２９〜２５５の場合の処理を説明するための概念図であり、図１３（ａ）は、電子透かし情報を示す概念図であり、図１３（ｂ）は、処理後インデックスを示す概念図である。
【図１４】図１４（ａ）（ｂ）は、パレット画像のパレットに定義されている色情報数が２５６の場合の処理を説明するための概念図であり、図１４（ａ）は、変更前インデックスを示す概念図であり、図１４（ｂ）は、変更後インデックスを示す概念図である。
【図１５】図１５（ａ）（ｂ）は、パレット画像のパレットに定義されている色情報数が２５６の場合の処理を説明するための概念図であり、図１５（ａ）は、電子透かし情報を示す概念図であり、図１５（ｂ）は、処理後インデックスを示す概念図である。
【図１６】図１６は、本発明による電子透かし検出処理の概要を表すフローチャートである。
【図１７】図１７は、本発明による電子透かし検出処理の詳細を表すフローチャートである。
【図１８】図１８は、本発明による電子透かし検出処理の詳細を表すフローチャートである。
【図１９】図１９は、本発明による電子透かし検出処理の詳細を表すフローチャートである。
【符号の説明】
【０３０７】
１０        電子透かし埋め込み・検出システム
１２        中央処理装置（ＣＰＵ）
１４        バス
１６        記憶装置
１８        表示装置
２０        ポインティングデバイス
２２        文字入力デバイス
２４        情報入出力装置
【図１】
2009188466.tif 000003
【図２】
2009188466.tif 000004
【図３】
2009188466.tif 000005
【図４】
2009188466.tif 000006
【図５】
2009188466.tif 000007
【図６】
2009188466.tif 000008
【図１０】
2009188466.tif 000009
【図１１】
2009188466.tif 000010
【図１２】
2009188466.tif 000011
【図１３】
2009188466.tif 000012
【図１４】
2009188466.tif 000013
【図１５】
2009188466.tif 000014
【図１６】
2009188466.tif 000015
【図１７】
2009188466.tif 000016
【図１８】
2009188466.tif 000017
【図１９】
2009188466.tif 000018
【図７】
2009188466.tif 000019
【図８】
2009188466.tif 000020
【図９】
2009188466.tif 000021