以下、図面を参照して本発明にかかる画像データ処理装置、画像データ処理方法、画像データ処理プログラムおよび画像データ処理システムの実施の形態1〜5について詳細に説明する。
(実施の形態1)
以下では、実施の形態1にかかる画像データ処理装置の具体例として、原画像データに別データとしてのコード(2進数)を埋め込み、画像コード化データを生成するためのエンコーダ100(図1参照)と、画像コード化データからコードを読み出すデコーダ200(図9参照)とについて説明する。
図1は、本発明にかかる実施の形態1におけるエンコーダ100の構成を示すブロック図である。このエンコーダ100は、原画像データI0(図2参照)にコードC(図4参照)を例えば8回埋め込み、画像コード化データI3(図5参照)を生成するための装置である。
原画像データI0は、所定のフォーマット(JPEG(Joint Photographic Expert Group)、GIF(Graphics Interchange Format)等)で生成された画像データであり、1024×1024画素サイズの画像データである。この原画像データI0には、例えば、図4に示した16ビット構成のコードC(1010110101001010)が埋め込まれる。
エンコーダ100において、ブロック分割部101は、入力された原画像データI0を、図3に示したように、N行×M列(同図の場合、16×16)のブロックに分割しこれをブロック分割画像データI1として出力する。
このブロック分割画像データI1は、ブロックBl11、Br11、・・・、Bl18、Br18、Bl21、Br21、・・・、Bl168、Br168という256(16×16)ブロックから構成されている。一つのブロックは、64×64画素サイズとされている。
ここで、ブロック分割画像データI1においては、ペアブロック(隣接する2つのブロック)に1ビットのコードが埋め込まれる。
具体的には、ペアブロックは、ブロックBl11およびBr11、ブロックBl12およびBr12、・・・、ブロックBl18およびBr18(ここまで1行目)、ブロックBl21およびBr21、・・・、ブロックBl28およびBr28(ここまで2行目)、・・・、ブロックBl161およびBr161、・・・、ブロックBl168およびBr168(ここまで16行目)という2つのブロックから構成されている。
ここで、ペアブロックの一方のブロックBlxyにおいて、添字lは、ペアブロックにおいて左側のブロックであることを表す。添字xは、行(N)を表す。また、添字yは、列(M)を表す。他方、ペアブロックのブロックBrxyにおいて、添字rは、ペアブロックにおいて右側のブロックであることを表す。添字xは、行(N)を表す。また、添字yは、列(M)を表す。
また、ペアブロックにおいて、左側のブロックBlxyにおける特徴量としての平均濃度(ブロック内の各画素の平均階調)を左側平均濃度データDlとし、右側のブロックBrxyの平均濃度(特徴量)を右側平均濃度データDrとする。
ここで、以下の関係式のように、左側平均濃度データDlが右側平均濃度データDr未満である場合、ペアブロックは、1ビット分のコードとして「0」を表す。一方、左側平均濃度データDlが右側平均濃度データDr以上である場合、ペアブロックは、1ビット分のコードとして「1」を表す。
Dl<Dr→「0」
Dl≧Dr→「1」
例えば、図3に示したブロックBl18およびBr18からなるペアブロックは、左側平均濃度データDl18が「115」、右側平均濃度データDr18が「125」であるため、1ビット分のコードとして「0」を表す。
また、ブロックBl28およびBr28からなるペアブロックは、左側平均濃度データDl28が「125」、右側平均濃度データDr28が「115」であるため、1ビット分のコードとして「1」を表す。
また、ブロック分割画像データI1においては、1行あたり、8つのペアブロック(16ブロック)であるため、8ビット分のコードを表す。従って、全行(16行)では、128ビット分のコードを表す。実施の形態1では、ブロック分割画像データI1に埋め込むコードC(図4参照)が16ビットであるため、ブロック分割画像データI1にコードCが最大8(128/16)回、埋め込み可能である(図5参照)。
図1に戻り、ブロック抽出部102は、ブロック分割画像データI1(図3参照)からペアブロック(ブロックBlxyおよびブロックBrxy)をコードCのビットシフトに追従させて順次抽出し、ブロックBlxyおよびブロックBrxyのそれぞれにおける濃度分布をブロック濃度データDとして順次出力する。
ここで、コードCのビットシフトとは、図4に示した最左側ビット(1)から右側ビット(0)へ向けて、ビットのポインタ(図示略)を右側へ1ビットずつシフトさせることをいう。
平均化部103は、ブロック濃度データDから、ブロックBlxyに対応する左側平均濃度データDlと、ブロックBrxyに対応する右側平均濃度データDrとを求め、これらをレジスタ104lおよびレジスタ104rにコードCのビットシフトに追従させて順次格納する。
比較部105は、コードCのnビット目(図4に示した最左側ビットからn=1、2、・・・、16)と、レジスタ104lおよびレジスタ104rに格納されている左側平均濃度データDlおよび右側平均濃度データDrの大小関係から決定されるビット判定結果(前述した関係式により「0」または「1」とビット判定される:図3参照)とを比較する。
エンコード部106は、比較部105の比較結果に基づいて、ブロック分割画像データI1(原画像データI0)にコードCを埋め込むための処理を実行する。具体的には、エンコード部106は、比較部105の比較結果が一致である場合、左側平均濃度データDlと右側平均濃度データDrとの大小関係を維持し、一方、比較結果が不一致である場合、コードCのビットを表す大小関係となるように左側平均濃度データDlと右側平均濃度データDrを変更(大小関係を逆転)し、画像コード化データI3(図5参照)を生成し、これを出力する。
図5に示した画像コード化データI3は、ブロック分割画像データI1(図3参照)および原画像データI0(図2参照)に対応しており、領域A1〜A8を有している。領域A1〜A8には、同一のコードC(1010110101001010)が合計8回埋め込まれている。
例えば、領域A1は、図3に示したブロックBl11、Br11、・・・、Bl28、Br28に対応している。他の領域A2〜A8は、ブロックBl31、Br31、・・・、Bl168、Br168に対応している。
なお、図5において、コードC(図3参照)の埋め込み状態が図示されているが、実際の画像コード化データI3は、原画像データI0(図2参照)とほぼ同様(一部濃度変更されているブロックが存在する場合もあるが肉眼では見分けがつかない)の画像データに対応している。
また、エンコーダ100の各構成要素は、図示しない制御部を介して相互接続されている。
つぎに、図1に示したエンコーダ100の動作について、図6および図8に示したフローチャートを参照しつつ説明する。図6は、同エンコーダ100の動作例1を説明するフローチャートである。
同図において、ステップSA1では、比較部105にコードC(図3参照)が設定される。ステップSA2では、比較部105は、初期化としてnを1とする。このnは、前述したようにコードCのビットのポインタを表す。この場合、n=1は、コードCの最左側のビット(「1」)に対応している。
ステップSA3では、ブロック分割部101に原画像データI0(図2参照)が入力される。ステップSA4では、ブロック分割部101は、ブロック分割処理により、入力された原画像データI0を図3に示したように16×16のブロックBl11〜Br168に分割し、これをブロック分割画像データI1としてブロック抽出部102へ出力する。
ステップSA5では、ブロック抽出部102は、ブロック分割画像データI1から、n=1に対応するペアブロック(この場合、ブロックBl11およびブロックBr11)を抽出した後、ブロックBl11およびブロックBr11のそれぞれにおける濃度分布をブロック濃度データDとして平均化部103へ出力する。
ステップSA6では、平均化部103は、平均化処理により、ブロック濃度データDから、ブロックBl11に対応する左側平均濃度データDl11(図示略)と、ブロックBr11に対応する右側平均濃度データDr11(図示略)とを求める。
ステップSA7では、平均化部103は、左側平均濃度データDl11(図示略)をレジスタ104lに、右側平均濃度データDr11(図示略)をレジスタ104rにそれぞれ格納する。
ステップSA8では、比較部105は、図4に示したコードCの最左側ビット(n=1に対応)である「1」と、レジスタ104lおよびレジスタ104rに格納されている左側平均濃度データDl11および右側平均濃度データDr11の濃度差を求め、濃度差(大小関係)からビット判定を行う。
この場合、左側平均濃度データDl11が右側平均濃度データDr11以上であるとすると、比較部105は、前述した大小関係から当該ペアブロックにおけるビット判定結果を「1」とする。
ステップSA9では、比較部105は、コードCのnビット目(この場合、1ビット目であって「1」)と、ステップSA8でのビット判定結果(この場合、「1」)とが同一であるか否かを判断し、この場合、判断結果を「Yes」とする。
ステップSA10では、比較部105は、nを1インクリメントする。これにより、nが2とされる。ステップSA11では、比較部105は、nがnendより大であるか否かを判断する。nendは、コードC(図4参照)の全ビット数であり、16である。この場合、nが2であるため、比較部105は、ステップSA11の判断結果を「No」とする。
ステップSA5では、ブロック抽出部102は、ブロック分割画像データI1から、n=2に対応するペアブロック(この場合、ブロックBl12およびブロックBr12)を抽出した後、ブロックBl12およびブロックBr12のそれぞれにおける濃度分布をブロック濃度データDとして平均化部103へ出力する。
ステップSA6では、平均化部103は、平均化処理により、ブロック濃度データDから、ブロックBl12に対応する左側平均濃度データDl12(図示略)と、ブロックBr12に対応する右側平均濃度データDr12(図示略)とを求める。
ステップSA7では、平均化部103は、左側平均濃度データDl12(図示略)をレジスタ104lに、右側平均濃度データDr12(図示略)をレジスタ104rにそれぞれ格納する。
ステップSA8では、比較部105は、図4に示したコードCにおけるつぎのビット(n=2に対応)である「0」と、レジスタ104lおよびレジスタ104rに格納されている左側平均濃度データDl12および右側平均濃度データDr12の濃度差を求め、濃度差(大小関係)からビット判定を行う。
この場合、左側平均濃度データDl12が右側平均濃度データDr11未満であるとすると、比較部105は、前述した大小関係から当該ペアブロックにおけるビット判定結果を「0」とする。
ステップSA9では、比較部105は、コードCのnビット目(この場合、2ビット目であって「0」)と、ステップSA8でのビット判定結果(この場合、「0」)とが同一であるか否かを判断し、この場合、判断結果を「Yes」とする。
ステップSA10では、比較部105は、nを1インクリメントする。これにより、nが3とされる。ステップSA11では、比較部105は、n(=3)がnend(=16)より大であるか否かを判断し、この場合、判断結果を「No」とする。以後、ステップSA11の判断結果が「Yes」となるまで、前述したステップSA5以降の動作が繰り返される。
そして、ステップSA10でnが16とされ、ステップSA11の判断結果が「No」とされると、ステップSA5では、ブロック抽出部102は、ブロック分割画像データI1から、n=16に対応するペアブロック(この場合、ブロックBl28およびブロックBr28)を抽出した後、ブロックBl28およびブロックBr28のそれぞれにおける濃度分布をブロック濃度データDとして平均化部103へ出力する。
ステップSA6では、平均化部103は、平均化処理により、ブロック濃度データDから、ブロックBl28に対応する左側平均濃度データDl28(「125」:図3参照)と、ブロックBr28に対応する右側平均濃度データDr28(「115」:図3参照)とを求める。
ステップSA7では、平均化部103は、左側平均濃度データDl28(「125」)をレジスタ104lに、右側平均濃度データDr28(「115」)をレジスタ104rにそれぞれ格納する。
ステップSA8では、比較部105は、図4に示したコードCの右側ビット(n=16に対応)である「0」と、レジスタ104lおよびレジスタ104rに格納されている左側平均濃度データDl28(「125」)および右側平均濃度データDr28(「115」)の濃度差(10)を求め、濃度差(大小関係)からビット判定を行う。
この場合、左側平均濃度データDl28(「125」)が右側平均濃度データDr28(「115」)以上であるため、比較部105は、前述した大小関係から当該ペアブロックにおけるビット判定結果を「1」とする。
ステップSA9では、比較部105は、コードCのnビット目(この場合、16ビット目であって「0」)と、ステップSA8でのビット判定結果(この場合、「1」)とが同一であるか否かを判断し、この場合、判断結果を「No」とする。
ステップSA14では、比較部105は、ステップSA8で求められた濃度差(10)が、予め設定された上限しきい値(例えば、100)以下であるか否かを判断し、この場合、判断結果を「Yes」とする。
ステップSA15では、エンコード部106は、左側平均濃度データDl28(「125」)と右側平均濃度データDr28(「115」)との大小関係に基づくビット判定結果が、コードCのnビット目(この場合、16ビット目であって「0」)と同一となるように、左側平均濃度データDl28および右側平均濃度データDr28を変更するという濃度変更処理を実行する。
すなわち、エンコード部106は、左側平均濃度データDl28(「125」)と右側平均濃度データDr28(「115」)との大小関係を逆転させることにより、左側平均濃度データDl28 を右側平均濃度データDr28未満として、ビット判定結果が「1」から「0」となるように濃度変更を行う。
具体的には、エンコード部106は、図7に示した(A)Dl<Drとする場合の(1)式から変更後の左側平均濃度データD’l(変更後の左側平均濃度データD’l28に対応)を求めた後、(2)式から変更後の右側平均濃度データD’r(変更後の右側平均濃度データD’r28に対応)を求める。
これにより、濃度変更後においては、左側平均濃度データD’l28が右側平均濃度データD’r28未満となり、ビット判定結果が「1」から「0」とされる。
一方、図7に示した(B)Dl≧Drとする場合には、(3)式から変更後の左側平均濃度データD’l(変更後の左側平均濃度データD’lxyに対応)が求められた後、(4)式から変更後の右側平均濃度データD’r(変更後の右側平均濃度データD’rxyに対応)が求められる。
これにより、濃度変更後においては、左側平均濃度データD’lxyが右側平均濃度データD’rxy以上となり、ビット判定結果が「0」から「1」とされる。
ここで、ステップSA14の判断結果が「No」である場合、すなわち、ステップSA8で求められた濃度差が、予め設定された上限しきい値(例えば、100)より大である場合、濃度変更処理が実行されることなく、ステップSA10の処理が実行される。
これは、ペアブロックにおける濃度差が大きい場合に、濃度変更処理を実行すると、見た目に変更されたことがわかってしまい、画質が劣化(不自然な画像)することを防止するため、あえて濃度変更を行わないのである。
ステップSA10では、比較部105は、nを1インクリメントする。これにより、nが17とされる。ステップSA11では、比較部105は、n(=17)がnend(=16)より大であるか否かを判断し、この場合、判断結果を「Yes」とする。
ステップSA12では、比較部105は、ブロック分割画像データI1における最終のペアブロック(ブロックBl168およびBr168)に関する上述した処理が終了したか否かを判断し、この場合、判断結果を「No」とする。
ステップSA16では、比較部105は、n(=17)をリセットすべく、nを1とする。ステップSA5では、ブロック抽出部102は、ブロック分割画像データI1から、n=1に対応するつぎのペアブロック(この場合、ブロックBl31およびブロックBr31:図3参照)を抽出した後、ブロックBl31およびブロックBr31のそれぞれにおける濃度分布をブロック濃度データDとして平均化部103へ出力する。
以後、ステップSA12の判断結果が「Yes」となるまで、前述した動作が繰り返される。
そして、ステップSA12の判断結果が「Yes」になると、ステップSA13では、エンコード部106は、ステップSA9の判断結果、ステップSA14の判断結果、ステップSA15の濃度変更処理に基づいて、画像コード化データI3を生成し、これを出力する。
具体的には、エンコード部106は、ステップSA9の判断結果が「Yes」(ステップSA14の判断結果が「No」)とされたペアブロックについて、左側平均濃度データDlと右側平均濃度データDrとの大小関係を維持(濃度変更無し)し、一方、ステップSA15の濃度変更処理に基づいて、変更後の左側平均濃度データD’lおよび右側平均濃度データD’rに対応する画像コード化データI3を生成する。この画像コード化データI3は、後述するデコーダ200によりデコードされる。
ここで、図5に示した画像コード化データI3における領域A1〜A8には、同一のコードC(1010110101001010)が合計8回埋め込まれている。
つぎに、図1に示したエンコーダ100の動作例2について、図8に示したフローチャートを参照しつつ説明する。図8においては、ステップSB10およびステップSB11が新たに付加されている。
従って、図8に示したステップSB1〜ステップSB9およびステップSB12〜ステップSB18は、図6に示したステップSA1〜ステップSA16に対応しているため、その詳細な説明を省略する。
図8に示したステップSB9では、比較部105は、コードCのnビット目と、ステップSB8でのビット判定結果とが同一であるか否かを判断し、この場合、判断結果を「Yes」とする。
ステップSB10では、比較部105は、ステップSB8で求められた濃度差が、予め設定された下限しきい値(例えば、10)未満であるか否かを判断する。この場合、判断結果が「Yes」であるものとする。
ここで、濃度差が下限しきい値未満である場合には、デコード時に、大小関係が逆転する等、精度が低くなる。
そこで、かかる問題を回避するため、ステップSB11では、エンコード部106は、濃度差が下限しきい値以上となるように、左側平均濃度データDlおよび右側平均濃度データDrを加減し、濃度差を拡大するための濃度差拡大処理を実行する。
なお、ステップSB10の判断結果が「No」である場合、すなわち、濃度差が下限しきい値以上である場合、ステップSB12の処理が実行される。また、ステップSB16の判断結果が「No」である場合にも、ステップSB12の処理が実行される。
図9は、本発明にかかる実施の形態1におけるデコーダ200の構成を示すブロック図である。このデコーダ200は、エンコーダ100(図1参照)でエンコードされた画像コード化データI3(図5参照)から、埋め込まれたコードをデコードするための装置である。
デコーダ200において、画像切出部201は、画像コード化データI3の周囲に画像データ(例えば、余白部分)を含む場合、全体から、有効な画像コード化データI3を切り出す機能を備えている。但し、画像コード化データI3のみが画像切出部201に入力された場合には、切り出しが行われない。
ブロック分割部202は、図3に示したブロック分割画像データI1と同様にして、画像切出部201からの画像コード化データI3を、N行×M列(同図の場合、16×16)のブロックに分割しこれをブロック分割画像データ(図示略)として出力する。
ブロック抽出部203は、ブロック抽出部102(図1参照)と同様にして、ブロック分割画像データからペアブロック(2つのブロック)を、デコードされたコード(16ビット)のビットシフトに追従させて順次抽出し、ペアブロック(2つのブロック)における濃度分布をブロック濃度データ(図示略)として順次出力する。
平均化部204は、ブロック濃度データから、平均化部103(図1参照)と同様にして、ペアブロックにおける一方のブロックに対応する左側平均濃度データ(図示略)と、他方のブロックに対応する右側平均濃度データ(図示略)とを求め、これらをレジスタ205lおよびレジスタ205rにコードのビットシフトに追従させて順次格納する。
比較部206は、レジスタ205lおよびレジスタ205rに格納されている左側平均濃度データおよび右側平均濃度データの大小関係を比較することにより、ビット判定を行い、ビット判定結果(前述した関係式により「0」または「1」とビット判定される)に対応するコード群CG(候補コードC1〜C8:図10参照)をデコード部207へ出力する。
ここで、図10に示した候補コードC1〜C8のそれぞれは、16ビット構成とされており、画像コード化データI3(図5参照)の領域A1〜A8に埋め込まれた各コード(16ビット)がデコードされた結果であって、デコーダ200のデコード結果としてのコードC’(図9参照)の候補である。
また、候補コードC1〜C8において、「2」は、「1」または「0」のビット判定が不確定であるビットを表している。
デコード部207は、図10に示したように、比較部206の比較結果に対応する候補コードC1〜C8からビット単位(同図縦方向のビット列)で多数決を採り、各ビット(全16ビット)を確定させ、これをデコーダ200のデコード結果としてのコードC’として出力する。
また、デコーダ200の各構成要素は、図示しない制御部を介して相互接続されている。
つぎに、図9に示したデコーダ200の動作について、図11に示したフローチャートを参照しつつ説明する。
同図において、ステップSC1では、画像切出部201に画像コード化データI3(図1参照)が入力される。ステップSC2では、初期化としてnが1とされる。このnは、デコード対象のコードのビットのポインタを表す。この場合、n=1は、コードの最左側のビットに対応している。
ステップSC3では、画像切出部201は、入力された画像コード化データI3の周囲に画像データ(例えば、余白部分)を含む場合、全体から、有効な画像コード化データI3を切り出す。
ステップSC4では、ブロック分割部202は、ブロック分割部101(図1参照)と同様にして、ブロック分割処理により、画像切出部201で切り出された画像コード化データI3を16×16のブロックに分割し、これをブロック分割画像データ(図示略)としてブロック抽出部203へ出力する。
ステップSC5では、ブロック抽出部203は、ブロック抽出部102(図1参照)と同様にして、ブロック分割画像データ(図示略)から、n=1に対応するペアブロック(2つのブロック)を抽出した後、各ブロックにおける濃度分布をブロック濃度データとして平均化部204へ出力する。
ステップSC6では、平均化部204は、平均化部103(図1参照)と同様にして、平均化処理により、ブロック濃度データから、一方のブロックに対応する左側平均濃度データ(図示略)と、他方のブロックに対応する右側平均濃度データ(図示略)とを求める。
ステップSC7では、平均化部204は、左側平均濃度データ(図示略)をレジスタ205lに、右側平均濃度データ(図示略)をレジスタ205rにそれぞれ格納する。
ステップSC8では、比較部206は、レジスタ205lおよびレジスタ205rに格納されている左側平均濃度データおよび右側平均濃度データの大小関係を比較することにより、ビット判定を行い、ビット判定結果(前述した関係式により「0」または「1」とビット判定される)をデコード部207へ出力する。
ここで、比較部206は、左側平均濃度データと右側平均濃度データとの濃度差を求め、この濃度差が、一定の上限しきい値より大である場合、当該ペアブロックに対応するビット判定結果が信頼できないものとして、ビット判定結果を「2」(不確定:図10参照)とする。
ステップSC9では、比較部206は、nを1インクリメントする。これにより、nが2とされる。ステップSC10では、比較部206は、nがnend(=16)より大であるか否かを判断し、この場合、判断結果を「No」とする。
以後、ステップSC10の判断結果が「Yes」となるまで、前述したステップSC5以降の動作が繰り返される。
そして、ステップSC9でnが17とされると、ステップSC10の判断結果が「Yes」とされる。この時点では、比較部206では、図10に示した候補コードC1がビット判別結果とされる。
ステップSC11では、比較部206は、ブロック分割画像データ(図示略)における最終のペアブロック(2つのブロック)に関する上述した処理が終了したか否かを判断し、この場合、判断結果を「No」とする。
ステップSC14では、比較部206は、n(=17)をリセットすべく、nを1とする。ステップSC5では、ブロック抽出部203は、ブロック分割画像データ(図示略)から、n=1に対応するつぎのペアブロック(2つのブロック)を抽出した後、各ブロックにおける濃度分布をブロック濃度データとして平均化部204へ出力する。
以後、ステップSC11の判断結果が「Yes」となるまで、前述した動作が繰り返される。
そして、ステップSC11の判断結果が「Yes」になると、ステップSC12では、デコード部207は、多数決判定処理を実行する。すなわち、この時点では、図10に示した候補コードC1〜C8がビット判定結果とされている。
デコード部207は、候補コードC1〜C8からビット単位(同図縦方向のビット列)で多数決を採り、各ビット(全16ビット)を確定させる。例えば、候補コードC1〜C8の最左側ビットの場合には、「0」が2、「1」が5、「2」が1であるため、コードC’の最左側ビットが、多数決により「1」と確定される。
ステップSC13では、デコード部207は、上記多数決判定処理の結果を受けて、デコーダ200のデコード結果としてのコードC’(図10参照)を出力する。コードC’は、コードC(図4参照)と同一とされている。
以上説明したように、実施の形態1によれば、原画像データI0(図2参照)が分割された複数のブロック(ブロック分割画像データI1:図3参照)における各ペアブロックに平均濃度(特徴量)の大小関係に基づいて1つのビット(コード)を対応付けて、コードC(複数のコード)を複数のブロックに埋め込むこととしたので、従来のFFTが不要となり、画像データに対するコードの埋め込みに要する処理を低減することができる。
また、実施の形態1によれば、動作例1(図6参照)で説明したように、ペアブロックにおける平均濃度の大小関係が、埋め込むべきビット(コード)と一致しない場合、大小関係を逆転させるように当該ペアブロックにおける当該平均濃度を変更することとしたので、任意のコードを自在に埋め込むことができる。
また、実施の形態1によれば、動作例1(図6参照)で説明したように、ペアブロックにおけるブロック間の濃度差(特徴量の差)が、上限しきい値を超えている場合、当該平均濃度を変更しないこととしたので、過大な平均濃度の変更に伴う画質の劣化を防止することができる。
また、実施の形態1によれば、動作例2(図8参照)で説明したように、平均濃度(特徴量)の大小関係が埋め込むべきビット(コード)と一致し、かつ当該ペアブロックにおけるブロック間の濃度差(特徴量の差)が下限しきい値未満である場合、該差が下限しきい値以上となるように当該平均濃度を変更することとしたので、デコーダ200におけるコードのデコード時に、大小関係が逆転する等、精度の低下を防止することができる。
また、実施の形態1によれば、特徴量を平均濃度としたので、特徴量にかかる計算を簡易にすることができる。
また、実施の形態1によれば、図5に示したように、コードCを繰り返し(8回)埋め込むこととしたので、デコード時に多数決等により不確定なコードを特定することができ、信頼性を高めることができる。
また、実施の形態1によれば、デコーダ200において画像データに対するコードのデコードに要する処理を低減することができる。
(実施の形態2)
さて、前述した実施の形態1においては、エンコーダ100でコードC(図4参照)そのものを用いて、エンコードし、デコーダ200でデコードする構成例について説明したが、コードを誤り訂正符号(例えば、BCH(Bose Chaudhuri Hocquenghem)符号やリードソロモン符号等)を用いてエンコードされた誤り訂正符号用コードをエンコードし、デコーダ側でデコードする構成例としてもよい。以下では、この構成例を実施の形態2として説明する。
以下では、実施の形態2にかかる画像データ処理装置の具体例として、原画像データに別データとしてのコード(2進数)を埋め込み、画像コード化データを生成するためのエンコーダ300(図12参照)と、画像コード化データからコードを読み出すデコーダ400(図13参照)とについて説明する。
図12は、本発明にかかる実施の形態2におけるエンコーダ300の構成を示すブロック図である。この図において、図1の各部に対応する部分には同一の符号を付け、その説明を省略する。
図12においては、誤り訂正符号エンコード部301が新たに設けられているとともに、図1に示した比較部105およびエンコード部106に代えて、比較部302およびエンコード部303が設けられている。
誤り訂正符号エンコード部301は、xビットからなるコードCaを誤り訂正符号(例えば、BCH符号)を用いてエンコードし、誤り訂正符号用コードCEを生成する。
この誤り訂正符号用コードCEは、コードCa(xビット)と、コードCaおよび所定の算出式から計算された冗長ビット(yビット)とから構成されており、(x+y)ビット(例えば、15ビット)である。この誤り訂正符号用コードCEによれば、例えば、3ビットのエラーが発生しても、誤り訂正により、元のコードCaを復元することが可能となる。
ここで、エンコーダ300は、原画像データI0(図2参照)に誤り訂正符号用コードCEを例えば8回埋め込み、画像コード化データI4を生成するための装置である。エンコーダ100(図1参照)と異なる点は、誤り訂正符号用コードCEを用いている点である。
比較部302は、誤り訂正符号用コードCEのnビット目と、レジスタ104lおよびレジスタ104rに格納されている左側平均濃度データDlおよび右側平均濃度データDrの大小関係から決定されるビット判定結果(実施の形態1で説明した関係式により「0」または「1」とビット判定される:図3参照)とを比較する。
エンコード部303は、比較部302の比較結果に基づいて、ブロック分割画像データI1(原画像データI0)に誤り訂正符号用コードCEを埋め込むための処理を実行する。具体的には、エンコード部303は、比較部302の比較結果が一致である場合、左側平均濃度データDlと右側平均濃度データDrとの大小関係を維持し、一方、比較結果が不一致である場合、誤り訂正符号用コードCEのビットを表す大小関係となるように左側平均濃度データDlと右側平均濃度データDrを変更(大小関係を逆転)し、画像コード化データI4を生成し、これを出力する。
この画像コード化データI4は、図5に示した画像コード化データI3と同様の構成とされている。従って、画像コード化データI4には、同一の誤り訂正符号用コードCE(15(x+y)ビット)が合計8回埋め込まれている。
また、エンコーダ300の各構成要素は、図示しない制御部を介して相互接続されている。
なお、エンコーダ300の動作は、誤り訂正符号用コードCEを用いる点を除いて前述したエンコーダ100の動作と同様であるためその説明を省略する。
図13は、本発明にかかる実施の形態2におけるデコーダ400の構成を示すブロック図である。このデコーダ400は、エンコーダ300(図12参照)でエンコードされた画像コード化データI4から、埋め込まれた誤り訂正符号用コードCE(コードCa)をデコードするための装置である。
この図において、図9の各部に対応する部分には同一の符号を付け、その説明を省略する。図13においては、図9に示した比較部206およびデコード部207に代えて、比較部401およびデコード部402が設けられている。
比較部401は、比較部206(図9参照)と同様にして、レジスタ205lおよびレジスタ205rに格納されている左側平均濃度データおよび右側平均濃度データの大小関係を比較することにより、ビット判定を行い、ビット判定結果(実施の形態1で説明した関係式により「0」または「1」とビット判定される)に対応する候補誤り訂正符号用コード群CEG(候補誤り訂正符号用コードCE1〜CE8:図15参照)をデコード部402へ出力する。
ここで、図15に示した候補誤り訂正符号用コードCE1〜CE8のそれぞれは、15(x+y)ビット構成とされており、画像コード化データI4に埋め込まれた8つの誤り訂正符号用コード(15ビット)がデコードされた結果であり、誤り訂正符号用コードCE’(図15参照)の候補である。
また、候補誤り訂正符号用コードCE1〜CE8において、「2」は、「1」または「0」のビット判定が不確定であるビットを表している。
デコード部402は、図15に示したように、比較部401の比較結果に対応する候補誤り訂正符号用コードCE1〜CE8からビット単位(同図縦方向のビット列)で多数決を採り、各ビット(全15ビット)を確定させ、誤り訂正符号用コードCE’とする。
ここで、厳密に言うと、多数決による誤り訂正符号用コードCE’には、エラービットが含まれている可能性がある。そこで、実施の形態2において、デコード部402は、候補誤り訂正符号用コードCE1〜CE8(候補誤り訂正符号用コード群CEG)において「2」(不確定)のビットを、誤り訂正符号用コードCE’の対応するビットに置換するという補完処理を実行し、候補誤り訂正符号用コードCE’1〜CE’8(候補誤り訂正符号用コード群CEG’)を得る。
また、デコード部402は、候補誤り訂正符号用コードCE’1〜CE’8のそれぞれについて、誤り訂正符号デコード処理(例えば、BCH符号に基づくデコード処理)を実行し、コード(図12に示したコードCaに対応)およびエラー数を得る。エラー数は、誤り訂正符号用コードCE’1〜CE’8のそれぞれにおけるエラービットの数である。
また、デコード部402は、誤り訂正符号デコード処理で得られたコードのうち、最小のエラー数に対応するコードをコードCa’として出力する。このコードCa’は、デコーダ400のデコード結果である。
また、デコーダ400の各構成要素は、図示しない制御部を介して相互接続されている。
つぎに、図13に示したデコーダ400の動作について、図14に示したフローチャートを参照しつつ説明する。
同図において、ステップSD1では、画像切出部201に画像コード化データI4(図12および図13参照)が入力される。ステップSD2では、初期化としてnが1とされる。このnは、デコード対象のコードのビットのポインタを表す。この場合、n=1は、コードの最左側のビットに対応している。
ステップSD3では、画像切出部201は、入力された画像コード化データI4の周囲に画像データ(例えば、余白部分)を含む場合、全体から、有効な画像コード化データI4を切り出す。
ステップSD4では、ブロック分割部202は、ブロック分割処理により、画像切出部201で切り出された画像コード化データI4をM×Nのブロックに分割し、これをブロック分割画像データ(図示略)としてブロック抽出部203へ出力する。
ステップSD5では、ブロック抽出部203は、ブロック分割画像データ(図示略)から、n=1に対応するペアブロック(2つのブロック)を抽出した後、各ブロックにおける濃度分布をブロック濃度データとして平均化部204へ出力する。
ステップSD6では、平均化部204は、平均化処理により、ブロック濃度データから、一方のブロックに対応する左側平均濃度データ(図示略)と、他方のブロックに対応する右側平均濃度データ(図示略)とを求める。
ステップSD7では、平均化部204は、左側平均濃度データ(図示略)をレジスタ205lに、右側平均濃度データ(図示略)をレジスタ205rにそれぞれ格納する。
ステップSD8では、比較部401は、レジスタ205lおよびレジスタ205rに格納されている左側平均濃度データおよび右側平均濃度データの大小関係を比較することにより、ビット判定を行い、ビット判定結果(前述した関係式により「0」または「1」とビット判定される)をデコード部402へ出力する。
ここで、比較部401は、左側平均濃度データと右側平均濃度データとの濃度差を求め、この濃度差が、ステップSA14(図6参照)で説明した上限しきい値より大である場合、当該ペアブロックに対応するビット判定結果が信頼できないものとして、ビット判定結果を「2」(不確定:図15参照)とする。
ステップSD9では、比較部401は、nを1インクリメントする。これにより、nが2とされる。ステップSD10では、比較部401は、ステップSC10(図11参照)と同様にして、nがnend(=15)より大であるか否かを判断し、この場合、判断結果を「No」とする。
以後、ステップSD10の判断結果が「Yes」となるまで、前述したステップSD5以降の動作が繰り返される。
そして、ステップSD9でnが17とされると、ステップSD10の判断結果が「Yes」とされる。この時点では、比較部401では、図15に示した候補誤り訂正符号用コードCE1がビット判別結果とされる。
ステップSD11では、比較部401は、ブロック分割画像データ(図示略)における最終のペアブロック(2つのブロック)に関する上述した処理が終了したか否かを判断し、この場合、判断結果を「No」とする。
ステップSD16では、比較部401は、n(=16)をリセットすべく、nを1とする。ステップSD5では、ブロック抽出部203は、ブロック分割画像データ(図示略)から、n=1に対応するつぎのペアブロック(2つのブロック)を抽出した後、各ブロックにおける濃度分布をブロック濃度データとして平均化部204へ出力する。
以後、ステップSD11の判断結果が「Yes」となるまで、前述した動作が繰り返される。
そして、ステップSD11の判断結果が「Yes」になると、ステップSD12では、デコード部402は、ステップSC12(図11参照)と同様にして、多数決判定処理を実行する。すなわち、この時点では、図15に示した候補誤り訂正符号用コードCE1〜CE8がビット判定結果とされている。
デコード部402は、候補誤り訂正符号用コードCE1〜CE8からビット単位(同図縦方向のビット列)で多数決を採り、各ビット(全15ビット)を確定させる。これにより、誤り訂正符号用コードCE’が生成される。
例えば、候補誤り訂正符号用コードCE1〜CE8の最左側ビットの場合には、「0」が2、「1」が5、「2」が1であるため、誤り訂正符号用コードCE’の最左側ビットが、多数決により「1」と確定される。
ステップSD13では、デコード部402は、候補誤り訂正符号用コードCE1〜CE8(候補誤り訂正符号用コード群CEG)において「2」(不確定)のビットを、誤り訂正符号用コードCE’の対応するビットに置換するという補完処理を実行し、候補誤り訂正符号用コード群CEG’(候補誤り訂正符号用コードCE’1〜CE’8)を得る。
ステップSD14では、デコード部402は、誤り訂正符号デコード処理により、候補誤り訂正符号用コードCE’1〜CE’8のそれぞれについて、誤り訂正符号デコード処理(例えば、BCH符号に基づくデコード処理)を実行し、コード(図12に示したコードCaに対応)およびエラー数を得る。
ステップSD15では、デコード部402は、誤り訂正符号デコード処理で得られたコードのうち、最小のエラー数に対応するコードをコードCa’として出力する。
以上説明したように、実施の形態2によれば、図12を参照して説明したように、誤り訂正符号用コードCEを複数のブロックに埋め込むこととしたので、デコーダ400等における誤り訂正が可能となり、信頼性を高めることができる。
(実施の形態3)
さて、前述した実施の形態1および2においては、図3に示したように、ブロック(例えば、ブロックBl18)の全体における平均濃度を用いて、エンコードおよびデコードを行う構成例について説明したが、ブロックの一部分(例えば、中央部)の平均濃度を用いる構成例としてもよい。以下では、この構成例を実施の形態3として説明する。
図16は、本発明にかかる実施の形態3を説明する図である。同図において、ブロックBは、実施の形態1および2における上記ブロック(例えば、図3に示したブロックBl18)に対応しており、t×t画素サイズとされている。実施の形態3では、ブロックBの一部分としての中央部Ba((t/2)×(t/2)画素サイズ)における平均濃度を用いて、エンコードおよびデコードが行われる。
以上説明したように、実施の形態3によれば、ブロックの全体の平均濃度を用いた場合に比べて、濃度変更処理にかかる処理量を低減させることができる。
(実施の形態4)
さて、前述した実施の形態1〜3をカラー画像に適用した場合、カラー画像を明度に変換したグレースケール画像(白黒画像)に対してコードを埋め込む方法と、カラー画像における三原色(シアン、マゼンダ、イエロ)のカラーコンポーネント(シアンコンポーネント、マゼンダコンポーネント、黄色コンポーネント)のうちいずれかのコンポーネント(例えば、黄色コンポーネント)にコードを埋め込む方法とが考えられる。
後者の方法は、前者の方法に比べて、濃度変更をしても人間の目で見分けがつきにくいという利点がある(図18図参照)。図18には、実施の形態4における濃度変更量とMOS(Mean Opinion Score:平均主観値)との対応関係を表すグラフである。
このグラフは、画像評価方法として周知の国際照明学会(ITU−T)で規定されている主観評価方法により評価した結果である。主観評価方法では、濃度変更量分だけ変更をかけた変更後画像と、原画像との見た目の差がわからない場合、MOS値が5点、差が大きくなるにつれてMOS値が低くなるように評価される。
また、グラフにおいて、「黄色」は、黄色コンポーネントの画像に関する評価結果である。「明度」は、グレースケールの画像に関する評価結果である。このグラフからわかるように、黄色コンポーネント(「黄色」)は、濃度変更量を大きくしても、グレースケール(「明度」)に比べてMOS値が高い。従って、黄色コンポーネントに対して濃度変更をかける後者の方法は、人間の目で見分けがつきにくいのである。
以下では、カラーコンポーネント(この場合、黄色コンポーネント)にコードを埋め込む構成例を実施の形態4として説明する。
図17は、本発明にかかる実施の形態4におけるエンコーダ500の構成を示すブロック図である。この図において、図12の各部に対応する部分には同一の符号を付け、その説明を省略する。
図17においては、黄色コンポーネント切出部501および黄色コンポーネント統合部502が新たに設けられている。黄色コンポーネント切出部501は、ブロック濃度データDから黄色コンポーネントを切り出し、これを黄色ブロック濃度データDEとして、平均化部103へ出力する。
また、黄色コンポーネント切出部501は、黄色ブロック濃度データDEから、一方のブロックに対応する左側平均濃度データDElと、他方のブロックに対応する右側平均濃度データDErとを求め、これらをレジスタ104lおよびレジスタ104rに格納する。
また、黄色コンポーネント切出部501は、ブロック濃度データDからシアンコンポーネントおよびマゼンダコンポーネントを切り出し、これらをシアン/マゼンダブロック濃度データDCMとして、黄色コンポーネント統合部502へ出力する。
実施の形態4においては、黄色ブロック濃度データDEに対して処理が実行され、黄色コンポーネントの濃度が変更される。エンコード部303は、黄色コンポーネントに対応する黄色画像コード化データIE4を出力する。黄色コンポーネント統合部502は、黄色画像コード化データIE4とシアン/マゼンダブロック濃度データDCMとを統合し、画像コード化データI5として出力する。
以上説明したように、実施の形態4によれば、黄色コンポーネント切出部501で黄色コンポーネントを切り出し、黄色コンポーネントの複数のブロックに対して埋め込みを行うこととしたので、黄色が目立たないという特性を利用して、画質を劣化させることなく、データ判別能力を維持することができる。
(実施の形態5)
さて、実施の形態1では、図9に示した画像切出部201における画像切り出しについて詳述しなかったが、図19に示したように、画像コード化データI3の四隅に余白部分Pとの区別をするための黄色マークME1〜ME4をエンコーダ100(図1参照)で付加する構成例としてもよい。以下では、この構成例を実施の形態5として説明する。
図19において、黄色マークME1〜ME4は、黄色の微小ドットであり、図18を参照して説明したように、目立ちにくい。
つぎに、図9に示した画像切出部201における画像切り出しについて説明する。図19に示した余白部分Pおよび画像コード化データI3(黄色マークME1〜ME4)が画像切出部201に入力されると、図21に示した四隅探索処理が実行される。
この四隅探索処理では、図19に示した画像コード化データI3の四隅(黄色マークME1〜ME4)が探索される。以下では、余白部分P(白)の画素値を255とし、黒(黄色)の画素値を0とする。
具体的には、図20に示したステップSE1では、画像切出部201は、画像コード化データI3の周囲である余白部分P(白)において最小画素値(例えば、250)を探索する。ステップSE2では、画像切出部201は、上記最小画素値(250)に安全率(0.9)を掛けて、しきい値(225)を設定する。
ステップSE3では、画像切出部201は、図21に示したように、余白部分Pの角(同図では、左上角)から、斜め45度の探索ラインLをX方向に動かしつつしきい値(255)以下の画素の位置を探索する。
そして、探索ラインLが黄色マークME1に到達すると、この黄色マークME1の画素値(=0)がしきい値以下であるため、画像切出部201は、画像コード化データI3の四隅における一つの隅として、黄色マークME1の位置を確定する。
ステップSE4では、画像切出部201は、画像コード化データI3の四隅が探索されたか否かを判断し、この場合、判断結果を「No」とする。以後、他の三隅について、ステップSE3の処理が実行される。そして、図19に示した四隅(黄色マークME1〜ME4)が探索されると、画像切出部201は、ステップSE4の判断結果を「Yes」とする。
つぎに、画像切出部201は、黄色マークME1〜ME4の位置座標を用いて、周知のアフィン変換等により、図19に示した全体画像(余白部分Pおよび画像コード化データI3)から画像コード化データI3を切り出す。
以上説明したように、実施の形態5によれば、図19に示したように、埋め込み結果である画像コード化データI3に切り出し用の黄色マークME1〜ME4を付与することとしたので、デコード時における画像の切り出しを容易に行うことができる。
以上本発明にかかる実施の形態1〜5について図面を参照して詳述してきたが、具体的な構成例はこれらの実施の形態1〜5に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
例えば、前述した実施の形態1〜5においては、エンコーダ100、デコーダ200、エンコーダ300、デコーダ400またはエンコーダ500の機能を実現するためのプログラムを図22に示したコンピュータ読み取り可能な記録媒体700に記録して、この記録媒体700に記録されたプログラムを同図に示したコンピュータ600に読み込ませ、実行することにより各機能を実現してもよい。
同図に示したコンピュータ600は、上記プログラムを実行するCPU(Central Processing Unit)610と、キーボード、マウス等の入力装置620と、各種データを記憶するROM(Read Only Memory)630と、演算パラメータ等を記憶するRAM(Random Access Memory)640と、記録媒体700からプログラムを読み取る読取装置650と、ディスプレイ、プリンタ等の出力装置660とから構成されている。
CPU610は、読取装置650を経由して記録媒体700に記録されているプログラムを読み込んだ後、プログラムを実行することにより、前述した機能を実現する。なお、記録媒体700としては、光ディスク、フレキシブルディスク、ハードディスク等が挙げられる。
また、実施の形態1〜5においては、画像(ブロック)の特徴量として平均濃度を用いた例について説明したが、これに限定されることなく、粒状度、彩度、濃度重心、分散等の画像から求められる他の特徴量を用いてもよい。この場合、特徴量を、粒状度、彩度、濃度重心または分散としたので、目立ちにくく、画質の影響を低減することができる。
また、実施の形態1〜5においては、上記特徴量を所定の変換ルールに基づいて、別の特徴量に変換したものを用いてもよい。
(付記1)画像データを複数のブロックに分割する分割手段と、
前記複数のブロックにおける各特徴量を抽出する特徴量抽出手段と、
前記複数のブロックにおける各ペアブロックに前記特徴量の大小関係に基づいて1つのコードを対応付けて、複数のコードを前記複数のブロックに埋め込むエンコード手段と、
を備えたことを特徴とする画像データ処理装置。
(付記2)前記エンコード手段は、前記ペアブロックにおける前記特徴量の大小関係が、埋め込むべきコードと一致しない場合、大小関係を逆転させるように当該ペアブロックにおける当該特徴量を変更することを特徴とする付記1に記載の画像データ処理装置。
(付記3)前記エンコード手段は、前記ペアブロックにおけるブロック間の特徴量の差が、上限しきい値を超えている場合、当該特徴量を変更しないことを特徴とする付記2に記載の画像データ処理装置。
(付記4)前記エンコード手段は、前記ペアブロックにおける前記特徴量の大小関係が埋め込むべきコードと一致し、かつ当該ペアブロックにおけるブロック間の特徴量の差が下限しきい値未満である場合、該差が下限しきい値以上となるように当該ペアブロックにおける当該特徴量を変更することを特徴とする付記1〜3のいずれか一つに記載の画像データ処理装置。
(付記5)画像データを複数のブロックに分割する分割手段と、
コードを誤り訂正符号を用いてエンコードし、誤り訂正符号用のコードを生成する誤り訂正符号用コード生成手段と、
前記複数のブロックにおける各特徴量を抽出する特徴量抽出手段と、
前記複数のブロックにおける各ペアブロックに前記特徴量の大小関係に基づいて1つの誤り訂正符号用のコードを対応付けて、複数の誤り訂正符号用のコードを前記複数のブロックに埋め込むエンコード手段と、
を備えたことを特徴とする画像データ処理装置。
(付記6)前記特徴量抽出手段は、各ブロックの一部分における各特徴量を抽出することを特徴とする付記1〜5のいずれか一つに記載の画像データ処理装置。
(付記7)前記複数のブロックから黄色コンポーネントを切り出す切出手段を備え、前記エンコード手段は、該黄色コンポーネントの複数のブロックに対して埋め込みを行うことを特徴とする付記1〜6のいずれか一つに記載の画像データ処理装置。
(付記8)前記エンコード手段は、埋め込み結果である画像に切り出し用の切出マーク画素を付与することを特徴とする付記1〜7のいずれか一つに記載の画像データ処理装置。
(付記9)前記特徴量は、平均濃度であることを特徴とする付記1〜8のいずれか一つに記載の画像データ処理装置。
(付記10)前記特徴量は、粒状度、彩度、濃度重心または分散であることを特徴とする付記1〜8のいずれか一つに記載の画像データ処理装置。
(付記11)前記エンコード手段は、複数のコードを繰り返し埋め込むことを特徴とする付記1〜10のいずれか一つに記載の画像データ処理装置。
(付記12)付記1〜11のいずれか一つに記載の画像データ処理装置における埋め込み結果である画像から前記複数のコードをデコードする画像データ処理装置。
(付記13)画像データを複数のブロックに分割する分割工程と、
前記複数のブロックにおける各特徴量を抽出する特徴量抽出工程と、
前記複数のブロックにおける各ペアブロックに前記特徴量の大小関係に基づいて1つのコードを対応付けて、複数のコードを前記複数のブロックに埋め込むエンコード工程と、
を含むことを特徴とする画像データ処理方法。
(付記14)前記エンコード工程では、前記ペアブロックにおける前記特徴量の大小関係が、埋め込むべきコードと一致しない場合、大小関係を逆転させるように当該ペアブロックにおける当該特徴量を変更することを特徴とする付記13に記載の画像データ処理方法。
(付記15)前記エンコード工程では、前記ペアブロックにおけるブロック間の特徴量の差が、上限しきい値を超えている場合、当該特徴量を変更しないことを特徴とする付記14に記載の画像データ処理方法。
(付記16)前記エンコード工程では、前記ペアブロックにおける前記特徴量の大小関係が埋め込むべきコードと一致し、かつ当該ペアブロックにおけるブロック間の特徴量の差が下限しきい値未満である場合、該差が下限しきい値以上となるように当該ペアブロックにおける当該特徴量を変更することを特徴とする付記13〜15のいずれか一つに記載の画像データ処理方法。
(付記17)画像データを複数のブロックに分割する分割工程と、
コードを誤り訂正符号を用いてエンコードし、誤り訂正符号用のコードを生成する誤り訂正符号用コード生成工程と、
前記複数のブロックにおける各特徴量を抽出する特徴量抽出工程と、
前記複数のブロックにおける各ペアブロックに前記特徴量の大小関係に基づいて1つの誤り訂正符号用のコードを対応付けて、複数の誤り訂正符号用のコードを前記複数のブロックに埋め込むエンコード工程と、
を含むことを特徴とする画像データ処理方法。
(付記18)前記特徴量抽出工程では、各ブロックの一部分における各特徴量を抽出することを特徴とする付記13〜17のいずれか一つに記載の画像データ処理方法。
(付記19)前記複数のブロックから黄色コンポーネントを切り出す切出工程を含み、前記エンコード工程では、該黄色コンポーネントの複数のブロックに対して埋め込みを行うことを特徴とする付記13〜18のいずれか一つに記載の画像データ処理方法。
(付記20)前記エンコード工程では、埋め込み結果である画像に切り出し用の切出マーク画素を付与することを特徴とする付記13〜19のいずれか一つに記載の画像データ処理方法。
(付記21)前記特徴量は、平均濃度であることを特徴とする付記13〜20のいずれか一つに記載の画像データ処理方法。
(付記22)前記特徴量は、粒状度、彩度、濃度重心または分散であることを特徴とする付記13〜20のいずれか一つに記載の画像データ処理方法。
(付記23)前記エンコード工程では、複数のコードを繰り返し埋め込むことを特徴とする付記13〜22のいずれか一つに記載の画像データ処理方法。
(付記24)付記13〜23のいずれか一つに記載の画像データ処理方法における埋め込み結果である画像から前記複数のコードをデコードするための画像データ処理方法。
(付記25)コンピュータを、
画像データを複数のブロックに分割する分割手段、
前記複数のブロックにおける各特徴量を抽出する特徴量抽出手段、
前記複数のブロックにおける各ペアブロックに前記特徴量の大小関係に基づいて1つのコードを対応付けて、複数のコードを前記複数のブロックに埋め込むエンコード手段、
として機能させるための画像データ処理プログラム。
(付記26)前記エンコード手段は、前記ペアブロックにおける前記特徴量の大小関係が、埋め込むべきコードと一致しない場合、大小関係を逆転させるように当該ペアブロックにおける当該特徴量を変更することを特徴とする付記25に記載の画像データ処理プログラム。
(付記27)前記エンコード手段は、前記ペアブロックにおけるブロック間の特徴量の差が、上限しきい値を超えている場合、当該特徴量を変更しないことを特徴とする付記26に記載の画像データ処理プログラム。
(付記28)前記エンコード手段は、前記ペアブロックにおける前記特徴量の大小関係が埋め込むべきコードと一致し、かつ当該ペアブロックにおけるブロック間の特徴量の差が下限しきい値未満である場合、該差が下限しきい値以上となるように当該ペアブロックにおける当該特徴量を変更することを特徴とする付記25〜27のいずれか一つに記載の画像データ処理プログラム。
(付記29)コンピュータを、
画像データを複数のブロックに分割する分割手段、
コードを誤り訂正符号を用いてエンコードし、誤り訂正符号用のコードを生成する誤り訂正符号用コード生成手段、
前記複数のブロックにおける各特徴量を抽出する特徴量抽出手段、
前記複数のブロックにおける各ペアブロックに前記特徴量の大小関係に基づいて1つの誤り訂正符号用のコードを対応付けて、複数の誤り訂正符号用のコードを前記複数のブロックに埋め込むエンコード手段、
として機能させるための画像データ処理プログラム。
(付記30)前記特徴量抽出手段は、各ブロックの一部分における各特徴量を抽出することを特徴とする付記25〜29のいずれか一つに記載の画像データ処理プログラム。
(付記31)前記コンピュータを、前記複数のブロックから黄色コンポーネントを切り出す切出手段として機能させ、前記エンコード手段は、該黄色コンポーネントの複数のブロックに対して埋め込みを行うことを特徴とする付記25〜30のいずれか一つに記載の画像データ処理プログラム。
(付記32)前記エンコード手段は、埋め込み結果である画像に切り出し用の切出マーク画素を付与することを特徴とする付記25〜31のいずれか一つに記載の画像データ処理プログラム。
(付記33)前記特徴量は、平均濃度であることを特徴とする付記25〜32のいずれか一つに記載の画像データ処理プログラム。
(付記34)前記特徴量は、粒状度、彩度、濃度重心または分散であることを特徴とする付記25〜32のいずれか一つに記載の画像データ処理プログラム。
(付記35)前記エンコード手段は、複数のコードを繰り返し埋め込むことを特徴とする付記25〜34のいずれか一つに記載の画像データ処理プログラム。
(付記36)付記25〜35のいずれか一つに記載の画像データ処理プログラムにおける埋め込み結果である画像から前記複数のコードをデコードさせるための画像データ処理プログラム。