(57)【特許請求の範囲】
【請求項１】
画像データが圧縮符号化された圧縮符号列に埋込情報を埋め込む情報埋込装置であって、
画像データがブロック毎に直交変換され、ラン長とレベルとからなる１以上の画像係数組が生成され、前記画像係数組がエントロピー符号化された圧縮符号を１個以上含む圧縮符号列を予め記憶している符号列記憶手段と、
１桁以上のｎ（ｎは２以上の正整数）進数で表現される埋込情報を予め記憶している情報記憶手段と、
前記１個以上の圧縮符号の長さ毎に、０からｎ−１までのｎ個の値に対応付けて、ラン長とレベルとからなる１以上の埋込係数組をｎ個予め記憶しているテーブル記憶手段と、
前記圧縮符号列に含まれる１以上の圧縮符号をエントロピー復号して前記圧縮符号の長さを算出するエントロピー復号手段と、
前記埋込情報を構成する１桁の値を読み出す情報読出手段と、
算出された前記圧縮符号の長さに応じて、読み出した前記桁の値に対応付けられた前記埋込係数組を前記テーブル記憶手段から抽出する抽出手段と、
抽出された前記埋込係数組をエントロピー符号化して埋込符号を生成するエントロピー符号化手段と
を備えることを特徴とする情報埋込装置。
【請求項２】
前記情報記憶手段は、１桁以上の２進数で表現される埋込情報を予め記憶しており、
前記テーブル記憶手段は、０及び１の２個の値に対応付けて、１以上の埋込係数組を２個記憶しており、
前記情報読出手段は、前記埋込情報を構成する１ビットの値を読み出し、
前記抽出手段は、読み出した前記１ビットの値に対応付けられた前記埋込係数組を前記テーブル記憶手段から抽出する
ことを特徴とする請求項１に記載の情報埋込装置。
【請求項３】
前記テーブル記憶手段は、ブロックに相当する１以上の圧縮符号の長さ毎に、０及び１の２個の値に対応付けて、ブロックに相当する１以上の埋込係数組を２個記憶しており、
前記エントロピー復号手段は、ブロックに相当する１以上の圧縮符号をエントロピー復号して前記圧縮符号の長さを算出し、
前記抽出手段は、ブロックに相当する前記埋込係数組を前記テーブル記憶手段から抽出し、
前記エントロピー符号化手段は、抽出された前記埋込係数組をエントロピー符号化する
ことを特徴とする請求項２に記載の情報埋込装置。
【請求項４】
前記テーブル記憶手段は、１個の圧縮符号の長さ毎に、０及び１の２個の値に対応付けて、１個の埋込係数組を２個記憶しており、
前記エントロピー復号手段は、前記圧縮符号列に含まれる１個の圧縮符号をエントロピー復号して前記圧縮符号の長さを算出し、
前記抽出手段は、１個の埋込係数組を前記テーブル記憶手段から抽出し、
前記エントロピー符号化手段は、抽出された前記１個の埋込係数組をエントロピー符号化する
ことを特徴とする請求項２に記載の情報埋込装置。
【請求項５】
請求項１に記載の情報埋込装置により埋込情報が埋め込まれた圧縮符号列から前記埋込情報を抽出する情報抽出装置であって、
埋込情報が埋め込まれた圧縮符号列を予め記憶している符号列記憶手段と、
１以上の圧縮符号の長さ毎に、０からｎ−１までのｎ個の値に対応付けて、ラン長とレベルとからなる１以上の係数組をｎ個予め記憶しているテーブル記憶手段と、
前記圧縮符号列に含まれる１以上の圧縮符号をエントロピー復号して、ラン長とレベルとからなる１以上の係数組を生成し、前記圧縮符号の長さを算出するエントロピー復号手段と、
算出した前記圧縮符号の長さに応じ、生成した前記係数組に対応する値を前記テーブル記憶手段から抽出する抽出手段と
を備えることを特徴とする情報抽出装置。
【請求項６】
前記テーブル記憶手段は、０及び１の２個の値に対応付けて、１以上の係数組を２個記憶しており、
前記抽出手段は、生成した前記係数組に対応するビットの値を抽出する
ことを特徴とする請求項５に記載の情報埋込装置。
【請求項７】
前記テーブル記憶手段は、ブロックに相当する１以上の圧縮符号の長さ毎に、０及び１の２個の値に対応付けて、ブロックに相当する１以上の埋込係数組を２個記憶しており、
前記エントロピー復号手段は、ブロックに相当する１以上の圧縮符号をエントロピー復号してブロックに相当する１以上の係数組を生成し、前記圧縮符号の長さを算出し、
前記抽出手段は、ブロックに相当する前記係数組に対応する値を抽出する
ことを特徴とする請求項６に記載の情報抽出装置。
【請求項８】
前記テーブル記憶手段は、１個の圧縮符号の長さ毎に、０及び１の２個の値に対応付けて、１個の係数組を記憶しており、
前記エントロピー復号手段は、１個の圧縮符号をエントロピー復号して、ラン長とレベルとからなる１個の係数組を生成し、前記圧縮符号の長さを算出し、
前記抽出手段は、前記係数組に対応する値を抽出する
ことを特徴とする請求項６に記載の情報抽出装置。
【請求項９】
請求項１に記載の情報埋込装置又は請求項５に記載の情報抽出装置が備えるテーブル記憶手段を生成するテーブル生成装置であって、
基準となる基準画像データがブロック毎に直交変換され、ラン長とレベルとからなる１以上の画像係数組が生成され、前記画像係数組がエントロピー符号化された圧縮符号を１個以上含む基準圧縮符号列を記憶している記憶手段と、
前記基準圧縮符号列をブロック毎にエントロピー復号して、ラン長とレベルとからなる１以上の基準係数組を生成する基準係数組生成手段と、
ブロック毎に生成された前記基準係数組を構成するラン長及びレベルを基にして、当該ブロックに相当する１以上の基準圧縮符号列の長さが変化しないように、０及び１の２個の値に対応付けて、別のラン長及びレベルからなる１以上の埋込係数組を２個生成する係数組生成手段と
を備えることを特徴とするテーブル生成装置。
【請求項１０】
前記係数組生成手段は、
基準係数組を構成するラン長及びレベルのうち、所定値より低い周波数成分のみを変化させることにより、埋込係数組を生成する
ことを特徴とする請求項９に記載のテーブル生成装置。
【請求項１１】
前記係数組生成手段は、
基準係数組を構成するレベルについて、前記レベルの絶対値を変化させることにより、埋込係数組を生成する
ことを特徴とする請求項１０に記載のテーブル生成装置。
【請求項１２】
前記係数組生成手段は、
基準係数組を構成するレベルの絶対値のうち、所定値より小さいものについて、前記レベルの符号を変化させることにより、埋込係数組を生成する
ことを特徴とする請求項１０に記載のテーブル生成装置。
【請求項１３】
画像データをブロック毎に直交変換しエントロピー符号化しつつ埋込情報を埋め込む情報埋込装置であって、
画像データを記憶している画像データ記憶手段と、
１桁以上の２進数で表現される埋込情報を予め記憶している情報記憶手段と、１以上の圧縮符号の長さ毎に、０及び１の２個の値に対応付けて、ラン長とレベルとからなる１以上の埋込係数組を２個予め記憶しているテーブル記憶手段と、
前記画像データをブロック毎に直交変換して、ラン長とレベルとからなる１以上の係数組を生成する直交変換手段と、
生成された前記係数組をエントロピー符号化して前記圧縮符号の長さを算出するエントロピー符号化手段と、
前記埋込情報を構成する１桁の値を読み出す情報読出手段と、
算出された前記圧縮符号の長さに応じて、読み出した前記桁の値に対応付けられた前記埋込係数組を前記テーブル記憶手段から抽出する抽出手段と、
読み出した前記埋込係数組をエントロピー符号化して埋込符号を生成するエントロピー符号化手段と
を備えることを特徴とする情報埋込装置。
【請求項１４】
請求項９に記載のテーブル生成装置と、
請求項１に記載の情報埋込装置と、
請求項５に記載の情報抽出装置と
から構成される情報埋込抽出システム。
【請求項１５】
画像データが圧縮符号化された圧縮符号列に埋込情報を埋め込む情報埋込装置で用いられる情報埋込方法であって、
前記情報埋込装置は、画像データがブロック毎に直交変換され、ラン長とレベルとからなる１以上の画像係数組が生成され、前記画像係数組がエントロピー符号化された圧縮符号を１個以上含む圧縮符号列を予め記憶している符号列記憶手段と、
１桁以上のｎ（ｎは２以上の正整数）進数で表現される埋込情報を予め記憶している情報記憶手段と、
前記１個以上の圧縮符号の長さ毎に、０からｎ−１までのｎ個の値に対応付けて、ラン長とレベルとからなる１以上の埋込係数組をｎ個予め記憶しているテーブル記憶手段とを備え、
前記情報埋込方法は、前記圧縮符号列に含まれる１以上の圧縮符号をエントロピー復号して前記圧縮符号の長さを算出するエントロピー復号ステップと、
前記埋込情報を構成する１桁の値を読み出す情報読出ステップと、
算出された前記圧縮符号の長さに応じて、読み出した前記桁の値に対応付けられた前記埋込係数組を前記テーブル記憶手段から抽出する抽出ステップと、
抽出された前記埋込係数組をエントロピー符号化して埋込符号を生成するエントロピー符号化ステップと
を含むことを特徴とする情報埋込方法。
【請求項１６】
画像データが圧縮符号化された圧縮符号列に埋込情報を埋め込む情報埋込装置で用いられる、情報埋込プログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
前記情報埋込装置は、画像データがブロック毎に直交変換され、ラン長とレベルとからなる１以上の画像係数組が生成され、前記画像係数組がエントロピー符号化された圧縮符号を１個以上含む圧縮符号列を予め記憶している符号列記憶手段と、
１桁以上のｎ（ｎは２以上の正整数）進数で表現される埋込情報を予め記憶している情報記憶手段と、
前記１個以上の圧縮符号の長さ毎に、０からｎ−１までのｎ個の値に対応付けて、ラン長とレベルとからなる１以上の埋込係数組をｎ個予め記憶しているテーブル記憶手段とを備え、
前記情報埋込プログラムは、前記圧縮符号列に含まれる１以上の圧縮符号をエントロピー復号して前記圧縮符号の長さを算出するエントロピー復号ステップと、
前記埋込情報を構成する１桁の値を読み出す情報読出ステップと、
算出された前記圧縮符号の長さに応じて、読み出した前記桁の値に対応付けられた前記埋込係数組を前記テーブル記憶手段から抽出する抽出ステップと、
抽出された前記埋込係数組をエントロピー符号化して埋込符号を生成するエントロピー符号化ステップと
を含むことを特徴とする記憶媒体。
【請求項１７】
画像データが圧縮符号化された圧縮符号列に埋込情報を埋め込むコンピュータで用いられる、情報埋込プログラムであって、
前記コンピュータは、画像データがブロック毎に直交変換され、ラン長とレベルとからなる１以上の画像係数組が生成され、前記画像係数組がエントロピー符号化された圧縮符号を１個以上含む圧縮符号列を予め記憶している符号列記憶手段と、
１桁以上のｎ（ｎは２以上の正整数）進数で表現される埋込情報を予め記憶している情報記憶手段と、
前記１個以上の圧縮符号の長さ毎に、０からｎ−１までのｎ個の値に対応付けて、ラン長とレベルとからなる１以上の埋込係数組をｎ個予め記憶しているテーブル記憶手段とを備え、
前記情報埋込プログラムは、前記圧縮符号列に含まれる１以上の圧縮符号をエントロピー復号して前記圧縮符号の長さを算出するエントロピー復号ステップと、
前記埋込情報を構成する１桁の値を読み出す情報読出ステップと、
算出された前記圧縮符号の長さに応じて、読み出した前記桁の値に対応付けられた前記埋込係数組を前記テーブル記憶手段から抽出する抽出ステップと、
抽出された前記埋込係数組をエントロピー符号化して埋込符号を生成するエントロピー符号化ステップと
を含むことを特徴とする情報埋込プログラム。
【請求項１８】
請求項１に記載の情報埋込装置により埋込情報が埋め込まれた圧縮符号列から前記埋込情報を抽出する情報抽出装置で用いられる情報抽出方法であって、
前記情報抽出装置は、埋込情報が埋め込まれた圧縮符号列を予め記憶している符号列記憶手段と、
１以上の圧縮符号の長さ毎に、０からｎ−１までのｎ個の値に対応付けて、ラン長とレベルとからなる１以上の係数組をｎ個予め記憶しているテーブル記憶手段とを備え、
前記情報抽出方法は、前記圧縮符号列に含まれる１以上の圧縮符号をエントロピー復号して、ラン長とレベルとからなる１以上の係数組を生成し、前記圧縮符号の長さを算出するエントロピー復号ステップと、
算出した前記圧縮符号の長さに応じ、生成した前記係数組に対応する値を前記テーブル記憶手段から抽出する抽出ステップと
を含むことを特徴とする情報抽出方法。
【請求項１９】
請求項１に記載の情報埋込装置により埋込情報が埋め込まれた圧縮符号列から前記埋込情報を抽出する情報抽出装置で用いられる情報抽出プログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
前記情報抽出装置は、埋込情報が埋め込まれた圧縮符号列を予め記憶している符号列記憶手段と、
１以上の圧縮符号の長さ毎に、０からｎ−１までのｎ個の値に対応付けて、ラン長とレベルとからなる１以上の係数組をｎ個予め記憶しているテーブル記憶手段とを備え、
前記情報抽出プログラムは、前記圧縮符号列に含まれる１以上の圧縮符号をエントロピー復号して、ラン長とレベルとからなる１以上の係数組を生成し、前記圧縮符号の長さを算出するエントロピー復号ステップと、
算出した前記圧縮符号の長さに応じ、生成した前記係数組に対応する値を前記テーブル記憶手段から抽出する抽出ステップと
を含むことを特徴とする記録媒体。
【請求項２０】
請求項１に記載の情報埋込装置により埋込情報が埋め込まれた圧縮符号列から前記埋込情報を抽出するコンピュータで用いられる情報抽出プログラムであって、
前記コンピュータは、埋込情報が埋め込まれた圧縮符号列を予め記憶している符号列記憶手段と、
１以上の圧縮符号の長さ毎に、０からｎ−１までのｎ個の値に対応付けて、ラン長とレベルとからなる１以上の係数組をｎ個予め記憶しているテーブル記憶手段とを備え、
前記情報抽出プログラムは、前記圧縮符号列に含まれる１以上の圧縮符号をエントロピー復号して、ラン長とレベルとからなる１以上の係数組を生成し、前記圧縮符号の長さを算出するエントロピー復号ステップと、
算出した前記圧縮符号の長さに応じ、生成した前記係数組に対応する値を前記テーブル記憶手段から抽出する抽出ステップと
を含むことを特徴とする情報抽出プログラム。
【請求項２１】
請求項１に記載の情報埋込装置又は請求項５に記載の情報抽出装置が備えるテーブル記憶手段を生成するテーブル生成装置で用いられるテーブル生成方法であって、
前記テーブル生成装置は、基準となる基準画像データがブロック毎に直交変換され、ラン長とレベルとからなる１以上の画像係数組が生成され、前記画像係数組がエントロピー符号化された圧縮符号を１個以上含む基準圧縮符号列を記憶している記憶手段を備え、
前記テーブル生成方法は、前記基準圧縮符号列をブロック毎にエントロピー復号して、ラン長とレベルとからなる１以上の基準係数組を生成する基準係数組生成ステップと、
ブロック毎に生成された前記基準係数組を構成するラン長及びレベルを基にして、当該ブロックに相当する１以上の基準圧縮符号列の長さが変化しないように、０及び１の２個の値に対応付けて、別のラン長及びレベルからなる１以上の埋込係数組を２個生成する係数組生成ステップと
を含むことを特徴とするテーブル生成方法。
【請求項２２】
請求項１に記載の情報埋込装置又は請求項５に記載の情報抽出装置が備えるテーブル記憶手段を生成するテーブル生成装置で用いられるテーブル生成プログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
前記テーブル生成装置は、基準となる基準画像データがブロック毎に直交変換され、ラン長とレベルとからなる１以上の画像係数組が生成され、前記画像係数組がエントロピー符号化された圧縮符号を１個以上含む基準圧縮符号列を記憶している記憶手段を備え、
前記テーブル生成プログラムは、前記基準圧縮符号列をブロック毎にエントロピー復号して、ラン長とレベルとからなる１以上の基準係数組を生成する基準係数組生成ステップと、
ブロック毎に生成された前記基準係数組を構成するラン長及びレベルを基にして、当該ブロックに相当する１以上の基準圧縮符号列の長さが変化しないように、０及び１の２個の値に対応付けて、別のラン長及びレベルからなる１以上の埋込係数組を２個生成する係数組生成ステップと
を含むことを特徴とする記録媒体。
【請求項２３】
請求項１に記載の情報埋込装置又は請求項５に記載の情報抽出装置が備えるテーブル記憶手段を生成するコンピュ―タで用いられるテーブル生成プログラムであって、
前記コンピュ―タは、基準となる基準画像データがブロック毎に直交変換され、ラン長とレベルとからなる１以上の画像係数組が生成され、前記画像係数組がエントロピー符号化された圧縮符号を１個以上含む基準圧縮符号列を記憶している記憶手段を備え、
前記テーブル生成プログラムは、前記基準圧縮符号列をブロック毎にエントロピー復号して、ラン長とレベルとからなる１以上の基準係数組を生成する基準係数組生成ステップと、
ブロック毎に生成された前記基準係数組を構成するラン長及びレベルを基にして、当該ブロックに相当する１以上の基準圧縮符号列の長さが変化しないように、０及び１の２個の値に対応付けて、別のラン長及びレベルからなる１以上の埋込係数組を２個生成する係数組生成ステップと
を含むことを特徴とするテーブル生成プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像データに他の情報を埋め込む技術及び画像データから埋め込まれた他の情報を抽出する技術に関する。
【０００２】
【従来の技術】
近年、コンピュータの高性能化、低価格化が進み、インターネットの普及、通信速度の高速化、情報圧縮技術の発達等により、誰もが容易にデジタル画像をパソコンに取り込み、流通させることができるようになってきている。
ところが、デジタル画像にはコピーしても画質が劣化することがないという特徴があるため、デジタル画像の流通を促進する技術革新は、誰でも容易に不正利用できるという問題を発生させている。そこで、この問題に対処するために画像データの中に視覚的に分からないように別情報を埋め込む電子透かし技術が用いられている。
【０００３】
電子透かし技術の適用において、例えば、ＪＰＥＧ（Joint Photographic Expert Group）データに透かし情報を埋め込む際には、ＪＰＥＧデータをエントロピー復号してＤＣＴ(離散コサイン変換；Discrete Cosine Transform)係数を得、得られたＤＣＴ係数に透かし情報を埋め込み、透かし情報の埋め込まれたＤＣＴ係数をエントロピー符号化してＪＰＥＧデータを得る。
【０００４】
ＤＣＴ係数に透かし情報を埋め込む種々の方法は、「電子透かしの基礎−マルチメディアのニュープロテクト技術−」（松井甲子雄著、１９９８年８月２１日発行、森北出版株式会社）に開示されている。ここで開示されている１つの方法によると、画像データを離散コサイン変換し、量子化して得られたＤＣＴ係数に、透かし情報を埋め込む際に、埋め込む透かしビットが「０」ならば、ＤＣＴ係数を最近傍の偶数値に設定し、埋め込む透かしビットが「１」ならば、ＤＣＴ係数を最近傍の奇数値に設定する。
【０００５】
【発明が解決しようとする課題】
上記のように、電子透かし技術によりＪＰＥＧデータに透かし情報を埋め込むことができるものの、異なるＤＣＴ係数に対応するエントロピー符号はそれぞれ異なるため、通常、透かし情報の埋め込まれたＤＣＴ係数をエントロピー符号化して得られたＪＰＥＧデータのデータ量と、当初のＪＰＥＧデータのデータ量とが一致しないという問題がある。
【０００６】
このため、透かし情報を埋め込んだ後のＪＰＥＧデータのデータ量が増える場合には、当初のＪＰＥＧデータが記録されていた記録領域に収まり切らないという問題が生じる。また、データ量が減る場合には、ＪＰＥＧデータのうち、データ量が減ることにより空白となった部分を詰めるという余計な処理を行う必要があり、そのために余計な時間がかかるという問題が生じる。
【０００７】
本発明は、前記問題を解決するために圧縮符号化された圧縮符号列のデータ量を変えることなく、他の情報を埋め込む情報埋込装置、情報埋込方法及び情報埋込プログラム、並びに情報が埋め込まれた圧縮符号列から他の情報を抽出する情報抽出装置、情報抽出方法及び情報抽出プログラムを提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成するために、本発明は、画像データがブロック毎に直交変換されエントロピー符号化されて生成された圧縮符号列に他の情報を埋め込む情報埋込装置であって、前記圧縮符号列をエントロピー復号して符号長を算出し、予め設定された埋め込みデータテーブルから前記符号長に対応した、ラン長とレベルとからなる係数組を読み出し、前記係数組をエントロピー符号化し符号列を生成することにより、他の情報を埋め込む。
【０００９】
具体的には、埋め込む情報を「０」と「１」からなるデジタルデータとする。埋め込む情報が「０」であるなら、前記埋め込みデータテーブルから前記符号長に対応し、且つビット値「０」に対応した係数組を選択し読み出す。埋め込む情報が「１」であるなら、前記埋め込みデータテーブルから前記符号長に対応し、且つビット値「１」に対応した係数組を選択し読み出す。次に、読み出した前記係数組をエントロピー符号化し符号列を生成する。こうして「０」又は「１」のデジタルデータを埋め込む。
【００１０】
また、本発明は上記のようにして他の情報が埋め込まれた画像データから他の情報を抽出する情報抽出装置であって、前記他の情報が埋め込まれた画像データがブロック毎に直交変換されエントロピー符号化されて生成された圧縮符号列をエントロピー復号して符号長を算出し、ラン長とレベルとからなる係数組を生成する。ここで予め記憶されている埋め込みデータテーブルから、算出された前記符号長に対応した他の情報を読み出すことにより画像データから他の情報を抽出する。
【００１１】
具体的には、埋め込まれた情報が、「０」と「１」からなるデジタルデータとすると、圧縮符号列をエントロピー復号して符号長を算出し、ラン長とレベルとからなる係数組を生成する。次に、予め記憶されている埋め込みデータテーブルから前記符号長に対応し、且つエントロピー復号により生成された前記係数組に一致する方を選択することにより、他の情報として「０」又は「１」を抽出する。
【００１２】
【発明の実施の形態】
１．第１の実施の形態
本発明に係る第１の実施の形態としての情報埋込抽出システム４０について説明する。
情報埋込抽出システム４０は、図１に示すようにテーブル生成装置３０と情報埋込装置１０と情報抽出装置２０とから構成される。テーブル生成装置３０は、後述する埋込データテーブルを生成し、情報埋込装置１０及び情報抽出装置２０はテーブル生成装置３０により生成された前記埋込データテーブルを記憶する。情報埋込装置１０は前記埋込データテーブルを用いてＭＰＥＧ（Moving Picture Experts Group）データに他の情報を埋め込み、情報抽出装置２０は前記埋込データテーブルを用いてＭＰＥＧデータから前記他の情報を抽出する。
【００１３】
１．１  テーブル生成装置３０の構成
ここでは、テーブル生成装置３０の構成について説明する。
テーブル生成装置３０は、図１に示すように、データ記憶部１２０、テーブル生成部１２１及びテーブル記憶部１２２から構成される。テーブル生成装置３０は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレィユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＯＭ又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、テーブル生成装置３０のテーブル生成部１２１は、その機能を達成する。
【００１４】
（１）データ記憶部１２０
データ記憶部１２０は、具体的にはハードディスクユニットから構成され、ＭＰＥＧにより規定された圧縮方式によって、動画像データがブロック毎にＤＣＴ変換され、量子化され、エントロピー符号化されて生成されたＭＰＥＧデータを予め記憶している。前記動画像データは埋め込みデータテーブルを生成するために用いられる標準的な動画像である。
【００１５】
ここでＭＰＥＧデータの構造について説明する。図２に示すようにＭＰＥＧデータはＳＨ（Sequence Header）とＧＯＰ（Group of Pictures）とから成る組を複数個含む。更に各ＧＯＰはIピクチャ、Bピクチャ及びPピクチャを含む。各ピクチャはスライスから構成され、更に、スライスはＭＢ(マクロブロック)から構成される。ＭＢは６個のブロックを含み、各ブロックは８×８画素に相当する符号列を含む。
【００１６】
（２）テーブル生成部１２１
テーブル生成部１２１は、データ記憶部１２０に記憶されているＭＰＥＧデータの内Ｉピクチャのみを対象として、ブロック毎にブロックに相当する符号列を次に示すように復号する。
テーブル生成部１２１は、ブロックに相当する符号列から、ＤＣ成分を復号し、次にＡＣ成分についてラン長とレベルとから成る組を複数個復号する。このとき各組に対応する符号の符号長を算出する。次にブロックの終了を示すＥＯＢを検出し、各符号長とＥＯＢの符号長とを加算して１ブロック分の総符号長を算出する。このようにして、テーブル生成部１２１は、１ブロック分のＡＣ成分について、ラン長とレベルの係数組とＥＯＢと総符号長とから成る係数ブロックを生成し記憶する。ここで、等しい係数ブロックが複数生成される場合には１つを記憶し、残りは記憶せずに捨てる。
【００１７】
係数ブロックの具体的な例を図３と図５に示す。テーブル生成部１２１はＭＰＥＧデータの内のＩピクチャのみを対象としてＤＣ成分を復号し、次にＡＣ成分について、ラン長とレベルとから成る６個の係数組（０，４），（０，５），・・・，（２，１）を復号する。ここで、各係数組の符号長はそれぞれ８，９，・・・，５である。次に、テーブル生成部１２１はＥＯＢを検出し、各符号長とＥＯＢの符号長とを加算し１ブロック分の総符号長「４０」を算出する。こうしてテーブル生成部１２１は、６個の係数組とＥＯＢと総符号長とから成る係数ブロック４０１を生成する。また、テーブル生成部１２１はラン長とレベルとから成る３個の係数組（０，３），（０，４），（１，１）を復号する。ここで、各係数組の符号長はそれぞれ６，８，４である。次にテーブル生成部１２１はＥＯＢを検出し、各符号長とＥＯＢの符号長とを加算し１ブロック分の総符号長「２０」を算出する。こうしてテーブル生成部１２１は、３個の係数組とＥＯＢと総符号長とから成る係数ブロック４２１を生成する。また、係数ブロック４０１と係数ブロック４２１を２次元DCT係数に展開したものが、図４のＤＣＴ係数４１１と図６のＤＣＴ係数４３１である。ここでＤＣは直流成分を表し、それ以外の数値は交流成分を表している。
【００１８】
次に、テーブル生成部１２１は以下に示すように、生成した全ての係数ブロックのそれぞれについて埋め込みデータを生成する。
テーブル生成部１２１は、各係数ブロックからいくつかの係数組を選択し、選択した係数組について、係数の値を微小範囲で変えることにより、新たな係数ブロックを生成する。例えば、係数の値を±２の範囲で変える。このとき、係数の値を複数種類変えることで、複数個の新たな係数ブロックを生成する。次に、テーブル生成部１２１は、生成した各係数ブロックについて係数ブロックに含まれる各係数組の符号長を算出し、各符号長とＥＯＢの符号長とを加算し１ブロック分の総符号長を算出する。更にテーブル生成部１２１は、新たに生成された係数ブロックを記憶する。ここで、等しい係数ブロックが複数生成された場合には、１つを記憶し残りは記憶せずに捨てる。次に、生成された複数の係数ブロックから、より低周波のレベルが変化した係数ブロックを２個選択し、一方を「０」に対応する埋め込みデータ、他方を「１」に対応する埋め込みデータとする。
【００１９】
具体的な例を図３と図５に示す。図３に示すように、テーブル生成部１２１は、総符号長が４０である係数ブロック４０１に前述した操作を施し、新たな係数ブロック４０２と４０３を生成する。ここでは係数ブロック４０２をビット値「０」に対応する埋め込みデータ、係数ブロック４０３をビット値「１」に対応する埋め込みデータとする。また、図５に示すように、テーブル生成部１２１は、１ブロック分の符号長が２０である係数ブロック４２１に前述した操作を施し、新たな係数ブロック４２２と４２３を生成する。ここでは係数ブロック４２２をビット値「０」に対応する埋め込みデータ、係数ブロック４２３をビット値「１」に対応する埋め込みデータとする。
【００２０】
次に、テーブル生成部１２１は、各総符号長毎に２個生成した係数ブロックを、各総符号長及び入力データのビット値（０又は１）に対応付け、埋め込みデータテーブルを生成する。更に、生成した埋め込みデータテーブルをテーブル記憶部１２２に書き込む。
埋め込みデータテーブルの一例を図７の埋め込みデータテーブル３２０に示す。図７の係数ブロック３２１は総符号長が２０のブロックにビット値「０」を埋め込む際に用いる埋め込みデータであり、係数ブロック３２２は総符号長が２０のブロックにビット値「１」を埋め込む際に用いる埋め込みデータである。また、係数ブロック３２３は総符号長が４０のブロックにビット値「０」を埋め込む際に用いる埋め込みデータであり、係数ブロック３２４は総符号長が４０のブロックにビット値「１」を埋め込む際に用いる埋め込みデータである。
【００２１】
（３）テーブル記憶部１２２
テーブル記憶部１２２は具体的にはハードディスクユニットから構成され、テーブル生成部１２１が生成した前記埋め込みデータテーブルを記憶する。
１．２  テーブル生成装置３０の動作
ここではテーブル生成装置３０の動作について、図８及び図９に示すフローチャートを用いて説明する。
【００２２】
テーブル生成部１２１は、データ記憶部１２０が記憶している圧縮符号列であるＭＰＥＧデータを読み出す。読み出したＭＰＥＧデータを復号し、１ブロックに相当するラン長とレベルとＥＯＢと総符号長とから成る係数ブロックを生成する（ステップＳ１３１）。次に、テーブル生成部１２１は、変数ｉに１を代入し（ステップＳ１３２）、続いて変数ｉにｉ＋１を代入する（ステップＳ１３３）。ｉが終了か判断し、終了でなければ（ステップＳ１３４でＮＯ）埋め込みデータを生成し（ステップＳ１３５）、終了であれば（ステップＳ１３４でＹＥＳ）埋め込みデータテーブルの生成を終了する。
【００２３】
次に、ステップＳ１３５の埋め込みデータの生成について図８のフローチャートを用いて説明する。テーブル生成部１２１は、総符号長がｉの１ブロックに含まれる複数のラン長とレベルの組からいくつかの組を選択し（ステップＳ１５１）、ステップＳ１５２からステップＳ１５８までを繰り返す。次に、選択したラン長とレベルの組について、係数の値を±２の範囲で変え、１ブロック分の係数組を新たに生成する（ステップＳ１５３）。次にテーブル生成部１２１は、生成した各組の符号長を算出し（ステップＳ１５４）、更に１ブロックの総符号長を算出する（ステップＳ１５５）。ここで、算出した総符号長がｉに一致すれば（ステップＳ１５６）１ブロック分の係数組を記憶する（ステップＳ１５７）。このようにして記憶された複数の係数ブロックから、より低周波のレベルから変わったものを２個選択し（ステップＳ１５９）、一方を「０」の埋め込みデータ、他方を「１」の埋め込みデータとする（ステップＳ１５９）。
【００２４】
１．３  情報埋込装置１０の構成
ここでは情報埋込装置１０の構成について説明する。
情報埋込装置１０は図１に示すように、データ記憶部１０１、可変長符号復号化部１０２、入力データ記憶部１０３、テーブル記憶部１０４、埋込処理部１０５、入力データ読出部１０６、可変長符号符号化部１０７及びデータ記憶部１０８から構成される。情報埋込装置１０は具体的には、テーブル生成装置３０と同様にコンピュータシステムであり、マイクロプロセッサがコンピュータプログラムに従って動作することにより、その機能を達成する。
【００２５】
（１）データ記憶部１０１
データ記憶部１０１は、具体的にはハードディスクユニットから構成され、他の情報を埋め込む前の動画像データがＭＰＥＧにより規定された圧縮方式によって、ブロック毎にＤＣＴ変換され、量子化され、エントロピー符号化されて生成されたＭＰＥＧデータを予め記憶している。なお、データ記憶部１０１が記憶しているＭＰＥＧデータは、データ記憶部１２０が記憶しているＭＰＥＧデータとは異なるものである。
【００２６】
（２）可変長符号復号化部１０２
可変長符号復号化部１０２は、データ記憶部１０１が記憶している前記ＭＰＥＧデータの内Ｉピクチャを対象として、ブロックに相当する符号列からＤＣ成分を復号し、復号したＤＣ成分を可変長符号符号化部１０７に出力する。
次に可変長符号復号化部１０２は、ＡＣ成分についてラン長とレベルとから成る組を複数個復号する。このとき各組に対応する符号の符号長を算出する。更に、ブロックの終了を示すＥＯＢを検出し、各符号長とＥＯＢの符号長とを加算し、１ブロック分の総符号長を算出する。このように、可変長符号復号化部１０２は、１ブロック分のＡＣ成分について、ラン長とレベルから成る係数組とＥＯＢと総符号長とから成る係数ブロックを生成する。一例として、可変長符号復号化部１０２が生成した複数の係数ブロック３３１と３３２とを図１１に示す。
【００２７】
次に、生成した係数ブロックを１ブロック毎に埋込処理部１０５へ出力する。
（３）入力データ記憶部１０３
入力データ記憶部１０３は、具体的にはハードディスクユニットから構成され、入力データを予め記憶している。入力データは具体的には、図１０の入力データ３１１に示すように複数のビットで表現される。入力データは末尾に終了符号を含む。終了符号は一例として「０１１１１１１０」であり、入力データの最後を示す。入力データは一例として、音声データがデジタル化され、圧縮符号化されたものである。
【００２８】
（４）テーブル記憶部１０４
テーブル記憶部１０４は、具体的にはハードディスクユニットから構成され、テーブル生成装置３０で生成された埋め込みデータテーブルを記憶している。
（５）入力データ読出部１０６
入力データ読出部１０６は、入力データ記憶部１０３に記憶されている入力データを１ビットずつ読み出し、埋込処理部１０５に出力する。例として入力データ記憶部１０３が図１０の入力データ３１１を記憶しているなら、入力データ読出部１０６は、入力データ３１１を０，１，０，０，・・・の順に１ビットずつ読み出し、埋込処理部１０５へ出力する。
【００２９】
（６）埋込処理部１０５
埋込処理部１０５は、可変長符号復号化部１０２が復号し、総符号長を算出した１ブロック分のＭＰＥＧデータに、入力データ読出部１０６が出力する入力データ１ビットを、テーブル記憶部１０４が記憶している埋め込みデータテーブルを用いて埋め込む。
【００３０】
具体的な例を次に示す。他の情報を埋め込む前の係数ブロックを図１１の係数ブロック３３１と３３２とし、入力データを図１０の入力データ３１１とする。先ず、埋込処理部１０５は、可変長符号復号化部１０２から総符号長「２０」を受け取る。次に入力データ読出部から1ビットのビット値「０」を受け取る。次に、テーブル記憶部１０４が記憶している図７の埋め込みデータテーブル３２０から、総符号長「２０」に対応する２つの埋め込みデータ３２１と３２２を選択する。更に、選択した２つの埋め込みデータからビット値「０」に対応する埋込みデータ３２１を選択し、可変長符号符号化部１０７へ出力する。
【００３１】
続いて、埋込処理部１０５は、可変長符号復号化部１０２から総符号長「４０」を受け取る。次に入力データ読出部から1ビットのビット値「１」を受け取る。次に、テーブル記憶部１０４が記憶している図７の埋め込みデータテーブル３２０から、総符号長「４０」に対応する２つの埋め込みデータ３２３と３２４を選択する。更に、選択した２つの埋め込みデータからビット値「１」に対応する埋め込みデータ３２４を選択し、可変長符号符号化部１０７へ出力する。
【００３２】
以下同様にして、埋込処理部１０５は、可変長符号復号化部１０２から出力される総符号長と入力データ読出部から出力される1ビットのビット値とを受け取り、受け取った総符号長とビット値とに対応する埋め込みデータを選択し、選択した埋め込みデータを可変長符号符号化部１０７へ出力する。これを繰り返すことにより、埋込処理部１０５は他の情報を埋め込む。
【００３３】
（７）可変長符号符号化部１０７
可変長符号符号化部１０７は、ブロック毎に可変長符号復号化部１０２から出力されるＤＣ成分と埋込処理部１０５から出力される埋め込みデータとを受け取り、ＤＣ成分と埋め込みデータとから成る１ブロック分に相当する復号データをブロック毎にＤＣＴ変換し、量子化し、エントロピー符号化して、１ブロック分に相当する圧縮符号列を生成する。可変長符号符号化部１０７は、生成した圧縮符号列をデータ記憶部１０８に書き込む。可変長符号符号化部１０７は，上記の操作を、ブロック毎に全てのブロックについて施すことにより、ＭＰＥＧデータを生成する
（８）データ記憶部１０８
データ記憶部１０８は、具体的にはハードディスクユニットから構成され、他の情報を埋め込んだ後のＭＰＥＧデータを記憶する。
【００３４】
１．４  情報埋込装置１０の動作
ここでは、情報埋込装置１０の動作について、図１２及び図１３に示すフローチャートを用いて説明する。
データ記憶部１０１が記憶しているＭＰＥＧデータのピクチャ毎に、ステップＳ１０１からステップＳ１１３まで繰り返す。先ず、ＭＰＥＧデータのピクチャがＩピクチャであるか判断し（ステップＳ１０２）、Ｉピクチャであるならブロック毎に、ステップＳ１０３からステップＳ１１２までを繰り返す。可変長符号復号化部１０２が１ブロック分の符号列を読み出し（ステップＳ１０４）、読み出した符号列を復号し（ステップＳ１０５）、１ブロックの総符号長を算出する（ステップＳ１０６）。次に、入力データ読出部１０６が入力データ記憶部１０３に記憶されている入力データを1ビット読み出し（ステップＳ１０７）、読み出した１ビットを埋込処理部１０５に出力する。次に、埋込処理部１０５は受け取った１ビットのビット値が「０」か「１」かを判断する（ステップＳ１０８）。ビット値が「０」なら埋込処理部１０５は埋め込みデータテーブルの第０欄から総符号長に対応する埋め込みデータを読み出し、可変長符号符号化部１０７に出力する（ステップＳ１０９）。ビット値が「１」なら埋込処理部１０５は埋め込みデータテーブルの第１欄から総符号長に対応する埋め込みデータを読み出し、可変長符号符号化部１０７に出力する（ステップＳ１１０）。次に、可変長符号符号化部１０７は、埋込処理部１０５から受け取る埋め込みデータテーブルと可変長符号復号化部１０２から受け取るＤＣ成分とを符号化し、生成した圧縮符号列をデータ記憶部１０８に書き込む（ステップＳ１１１）。
【００３５】
ステップＳ１０２で、ＭＰＥＧデータのピクチャがＩピクチャでないなら１ピクチャ分を読み出しデータ記憶部１０８に書き込む（ステップＳ１１４）。
１．５  情報抽出装置２０の構成
ここでは、情報抽出装置２０の構成について説明する。
情報抽出装置２０は図１に示すように、データ記憶部２０１、可変長符号復号化部２０２、テーブル記憶部２０３、抽出処理部２０４、情報記憶部２０５、逆量子化部２０６、逆ＤＣＴ部２０７、データ記憶部２０８から構成されている。情報抽出装置２０は具体的には、テーブル生成装置３０、情報埋込装置１０と同様にコンピュータシステムであり、マイクロプロセッサがコンピュータプログラムに従って動作することにより、その機能を達成する。
【００３６】
（１）データ記憶部２０１
データ記憶部２０１は、具体的には、ハードディスクユニットから構成され、情報埋込装置１０により、他の情報が埋め込まれた圧縮符号列であるＭＰＥＧデータを記憶する。
（２）可変長符号復号化部２０２
可変長符号復号化部２０２は、データ記憶部２０１が記憶しているＭＰＥＧデータの内、Ｉピクチャを対象としてブロックに相当する符号列から、ＤＣ成分を復号し、次にＡＣ成分についてラン長とレベルとから成る組を複数個生成する。このとき各組に対応する符号の符号長を算出する。次にブロックの終了を示すＥＯＢを検出し、各符号長とＥＯＢの符号長を加算して  １ブロック分の総符号長を算出する。このようにして可変長符号復号化部２０２は、１ブロック分のＡＣ成分について、ラン長とレベルの係数組とＥＯＢと総符号長とから成る係数ブロックを生成する。一例として、可変長符号復号化部２０２が生成した係数ブロック３４１と３４２とを図１４に示す。
【００３７】
次に、生成された係数ブロックを１ブロック毎に抽出処理部２０４に出力する。
また、ＤＣ成分と係数ブロックとを復号データとして逆量子化部２０６へ出力する。
なお、Ｉピクチャ以外のピクチャは復号して復号データを生成し、逆量子化部２０６へ出力する。
【００３８】
（３）テーブル記憶部２０３
テーブル記憶部２０３は、具体的にはハードディスクユニットから構成され、テーブル生成装置３０で生成された埋め込みデータテーブルを記憶している。
（４）抽出処理部２０４
抽出処理部２０４は、ブロック毎に可変長符号復号化部２０２から係数ブロックを受け取り、受け取った係数ブロックからテーブル記憶部２０３が記憶している埋め込みデータテーブルを用いて、以下に示すようにして埋め込まれている他の情報を抽出する。
【００３９】
具体的な例を次に示す。抽出処理部２０４は図１４の係数ブロック３４１を受け取る。次に、抽出処理部２０４は、テーブル記憶部２０３が記憶している図７に示す埋め込みデータテーブル３２０から、係数ブロック３４１の総符号長「２０」に対応する２つの埋め込みデータ３２１と３２２を選択する。更に選択した２つの埋め込みデータ３２１と３２２から、係数ブロック３４１に一致する埋め込みデータ３２１を選択する。次に、選択した埋め込みデータ３２１が第０欄に属していることから、係数ブロック３４１に埋め込まれている他の情報として、ビット値「０」を情報記憶部２０５に書き込む。続いて、抽出処理部２０４は係数ブロック３４２を受け取る。次に、抽出処理部２０４は埋め込みデータテーブル３２０から、係数ブロック３４２の総符号長「４０」に対応する２つの埋め込みデータから３２３と３２４を選択する。更に選択した２つの埋め込みデータ３２３と３２４から、係数ブロック３４２に一致する埋め込みデータ３２４を選択する。次に選択した埋め込みデータ３２４が第１欄に属していることから、係数ブロック３４２に埋め込まれている他の情報として、ビット値「１」を情報記憶部２０５に書き込む。
【００４０】
以下同様にして、抽出処理部２０４は、可変長符号復号化部２０２から受け取る係数ブロックに一致する埋め込みデータを、テーブル記憶部２０３が記憶している埋め込みデータテーブル３２０から選択し、選択した埋め込みデータに対応するビット値を、他の情報として情報記憶部２０５に書き込む。
これを繰り返すことにより、他の情報を復元する。復元した他の情報を構成するビット列から終了符号を検出すると、抽出処理部２０４は抽出を終了する。
【００４１】
（５）情報記憶部２０５
情報記憶部２０５は、抽出処理部２０４から出力される情報を記憶する。
（６）逆量子化部２０６
逆量子化部２０６は、可変長符号復号化部２０２から復号データを受け取り、受け取った復号データに逆量子化を施し、２次元ＤＣＴ係数を生成する。生成した２次元ＤＣＴ係数を逆ＤＣＴ部２０７へ出力する。
【００４２】
（７）逆ＤＣＴ部２０７
逆ＤＣＴ部２０７は、逆量子化部２０６から２次元ＤＣＴ係数を受け取り、受け取った２次元ＤＣＴ係数に逆ＤＣＴを施し、１ブロック分の画像データを復号する。復号した画像データを、データ記憶部２０８に書き込む。
（８）データ記憶部２０８
データ記憶部２０８は、逆ＤＣＴ部２０７から受け取った画像データを記憶する。
【００４３】
１．６  情報抽出装置２０の動作
ここでは、情報抽出装置２０の動作について、図１５に示すフローチャートを用いて説明する。
情報抽出装置２０は、データ記憶部２０１が記憶しているＭＰＥＧデータについて、ピクチャ毎に、ステップＳ１７１からステップＳ１７９までを繰り返す。
【００４４】
可変長符号復号化部２０２はＭＰＥＧデータのピクチャがＩピクチャかどうかを判断し、Ｉピクチャであるなら（ステップＳ１７２でＹＥＳ）ブロック毎にステップＳ１７３からステップＳ１７８までを繰り返す。可変長符号復号化部２０２は１ブロック分の符号列を復号し、復号データを生成し（ステップＳ１７４）、１ブロック分の係数ブロックとする（ステップＳ１７５）。次に、抽出処理部２０４は埋め込みデータテーブルを用いて、生成された係数ブロックに対応する埋め込みデータを選択し（ステップＳ１７６）、選択した１ビットを他の情報として情報記憶部２０５に書き込む（ステップＳ１７７）。
【００４５】
また、生成した復号データを、逆量子化部２０６で逆量子化し、逆ＤＣＴ部で逆ＤＣＴ変換しデータ記憶部２０８に書き込む（ステップＳ１８０）。
なお、ステップＳ１７２において、Ｉピクチャ以外のピクチャは復号しデータ記憶部２０８に書き込む（ステップＳ１８１）。
２．第２の実施の形態
本発明に係る第２の実施の形態としての情報埋込抽出システム４０ｂについて説明する。
【００４６】
情報埋込抽出システム４０ｂは、情報埋込抽出システム４０と同様に、テーブル生成装置３０ｂと情報埋込装置１０ｂと情報抽出装置２０ｂとから構成される。なお、これらは図示していない。テーブル生成装置３０ｂ、情報埋込装置１０ｂ及び情報抽出装置２０ｂはそれぞれテーブル生成装置３０、情報埋込装置１０及び情報抽出装置２０と同様な機能を達成する。
【００４７】
２．１  テーブル生成装置３０ｂの構成
ここでは、テーブル生成装置３０ｂの構成について説明する。
テーブル生成装置３０ｂは、第１の実施の形態におけるテーブル生成装置３０とは異なり、テーブル生成部１２１ｂ及びテーブル記憶部１２２ｂから構成され、データ記憶部１２０に相当する構成要素は含んでいない。テーブル生成装置３０ｂは、具体的にはコンピュータシステムであり、マイクロプロセッサが、コンピュータプログラムに従って動作することにより、テーブル生成装置３０ｂのテーブル生成部１２１は、その機能を達成する。
【００４８】
（１）テーブル生成部１２１ｂ
テーブル生成部１２１ｂは、複数のラン長とレベルとから成る係数組（０，５）、（０，６）、・・・、（０，３８）、（０，３９）、（１，６）、（１，７）、・・・、（１，１６）、・・・を、埋め込む情報のビット値に対応付け、「０」と「１」に対応する埋め込みデータに振り分け、埋め込みデータテーブルを生成する。
【００４９】
図１６に示すように、テーブル生成部１２１ｂは、係数組（０，５）、（０，８）、・・・、（０，３８）、（１，６）、・・・をビット値「０」に対応する埋め込みデータとして振り分け、係数組（０，６）、（０，９）、・・・、（０，３９）、（１，７）、・・・をビット値「１」に対応する埋め込みデータとして振り分ける。テーブル生成部１２１ｂは、振り分けた埋め込みデータから、埋め込みデータテーブル５０１を生成し、生成した埋め込みデータテーブルをテーブル記憶部１２２ｂに書き込む。
【００５０】
埋め込みデータテーブル５０１は、ラン長とレベル及び２個の埋め込みデータから構成され、更に、埋め込みデータは第０欄の埋め込みデータと第1欄の埋め込みデータとから構成される。ラン長とレベルは、他の情報を埋め込む前の符号列を表し、各ラン長とレベルに対応する第０欄と第1欄は、他の情報としてビット値「０」又は「１」を埋め込む際に用いる埋め込みデータである。また、第０欄と第１欄ではラン長の値は省略し、レベルの値のみを表示している。
【００５１】
なお、テーブル生成部１２１ｂは、ラン長の値が等しく且つレベルの値が連続する２組の係数組に対し、等しい埋め込みデータを生成する。図１６を用いてその一例を示す。図１６のレベル５０７は、他の情報を埋め込む前の係数組（０，５）と（０，６）を表している。埋め込みデータ５０８は、この２組のいずれかにビット値「０」を埋め込む際に用いる埋め込みデータであり、埋め込みデータ５０９は、この２組のいずれかにビット値「１」を埋め込む際に用いる埋め込みデータである。
【００５２】
テーブル生成部１２１ｂは、他の情報を埋め込む前後で各符号列の符号長が等しく且つレベルの値が±１の範囲で変化する埋め込みデータテーブルを生成する。これにより、情報埋込装置１０ｂは、画像データに視覚的に分からないよう他の情報を埋め込むことが可能になる。
（２）テーブル記憶部１２２ｂ
テーブル記憶部１２２ｂは具体的にはハードディスクユニットから構成され、テーブル生成部１２１ｂが生成する埋め込みデータテーブルを記憶する。
【００５３】
２．２  情報埋込装置１０ｂの構成
ここでは情報埋込装置１０ｂの構成について説明する。
情報埋込装置１０ｂは情報埋込装置１０と同様に、データ記憶部１０１ｂ、可変長符号復号化部１０２ｂ、入力データ記憶部１０３ｂ、テーブル記憶部１０４ｂ、埋込処理部１０５ｂ、入力データ読出部１０６ｂ、可変長符号符号化部１０７ｂ及びデータ記憶部１０８ｂから構成される。
【００５４】
情報埋込装置１０ｂは、具体的にはコンピュータシステムであり、マイクロプロセッサがコンピュータプログラムに従って動作することにより、その機能を達成する。
なお、データ記憶部１０１ｂ、入力データ記憶部１０３ｂ、テーブル記憶部１０４ｂ、入力データ読出部１０６ｂ、可変長符号符号化部１０７ｂ及びデータ記憶部１０８ｂはそれぞれ、情報埋込装置１０のデータ記憶部１０１、入力データ記憶部１０３、テーブル記憶部１０４、入力データ読出部１０６、可変長符号符号化部１０７及びデータ記憶部１０８と同様であるため説明を省略し、以下では情報埋込装置１０との相違点を中心に説明する。
【００５５】
（１）可変長符号復号化部１０２ｂ
可変長符号復号化部１０２ｂは、データ記憶部１０１ｂに記憶されているＭＰＥＧデータの内、Ｉピクチャを対象として、ブロックに相当する符号列から、ＤＣ成分を復号し、復号したＤＣ成分を可変長符号符号化部１０７ｂに出力する。次に可変長符号復号化部１０２ｂは、ＡＣ成分についてラン長とレベルとから成る組を複数個復号する。更に、生成した係数組を１組毎に埋込処理部１０５ｂへ出力する。
【００５６】
（２）埋込処理部１０５ｂ
埋込処理部１０５ｂは、可変長符号復号化部１０２ｂから複数のラン長とレベルとから成る係数組を受け取り、受け取った複数の係数組から１組を選択する。更に、入力データ読出部１０６ｂから入力データ１ビットを受け取り、受け取った１ビットが「０」か「１」かを判断する。入力データのビット値が「０」なら、埋込処理部１０５ｂは、  テーブル記憶部１０４ｂが記憶している埋め込みデータテーブルの第０欄から係数組に対応する埋め込みデータを読み出し、読み出した埋め込みデータを可変長符号符号化部１０７ｂへ出力する。入力データのビット値が「１」なら、埋込処理部１０５ｂは、埋め込みデータテーブルの第１欄から係数組に対応する埋め込みデータを読み出し、読み出した埋め込みデータを可変長符号符号化部１０７ｂへ出力する。
【００５７】
２．３  情報埋込装置１０ｂの動作
ここでは、情報埋込装置１０ｂの動作について、図１７及び図１８に示すフローチャートを用いて説明する。
情報埋込装置１０ｂは、データ記憶部１０１ｂが記憶しているＭＰＥＧデータのピクチャ毎に、ステップＳ２０１からステップＳ２１４まで繰り返す。先ず、ＭＰＥＧデータのピクチャがＩピクチャであるか判断し、Ｉピクチャであるなら（ステップＳ２０２でＹＥＳ）、ブロック毎に、ステップＳ２０３からステップＳ２１３までを繰り返す。可変長符号復号化部１０２ｂは、１ブロックに相当する符号列を復号し（ステップＳ２０４）、  復号した符号列のラン長とレベルの組毎に次にステップＳ２０５からステップＳ２１１までを繰り返す。埋込処理部１０５ｂは複数のラン長とレベルの組から１組を選択する（ステップＳ２０６）。
【００５８】
続いて、入力データ読出部１０６ｂが入力データ記憶部１０３ｂに記憶されている入力データを1ビット読み出し（ステップＳ２０７）、読み出した１ビットを埋込処理部１０５ｂに出力する。次に、埋込処理部１０５ｂは受け取った１ビットのビット値が「０」か「１」かを判断する。ビット値が「０」なら（ステップＳ２０８）埋込処理部１０５ｂは埋め込みデータテーブルの第０欄からラン長とレベルに対応する埋め込みデータを読み出し、可変長符号符号化部１０７ｂに出力する（ステップＳ２０９）。ビット値が「１」なら（ステップＳ２０８）埋込処理部１０５ｂは埋め込みデータテーブルの第１欄からラン長とレベルに対応する埋め込みデータを読み出し、可変長符号符号化部１０７ｂに出力する（ステップＳ２１０）。
【００５９】
次に、可変長符号符号化部１０７ｂは、埋込処理部１０５ｂから受け取る埋め込みデータテーブルと可変長符号復号化部１０２ｂから受け取るＤＣ成分とを符号化し、生成した圧縮符号列をデータ記憶部１０８ｂに書き込む（ステップＳ２１２）。
なお、ステップＳ２０２においてＩピクチャでないなら（ステップＳ２０２でＮＯ）１ピクチャ分を読み出しデータ記憶部１０８ｂに書き込む（ステップＳ２１５）。
【００６０】
２．４  情報抽出装置２０ｂの構成
ここでは、情報抽出装置２０ｂの構成について説明する。
情報抽出装置２０ｂは、第1の実施の形態における情報抽出装置２０と同様に、データ記憶部２０１ｂ、可変長符号復号化部２０２ｂ、テーブル記憶部２０３ｂ、抽出処理部２０４ｂ、情報記憶部２０５ｂ、逆量子化部２０６ｂ、逆ＤＣＴ部２０７ｂ、データ記憶部２０８ｂから構成される。
【００６１】
情報抽出装置２０ｂは、具体的にはコンピュータシステムであり、マイクロプロセッサがコンピュータプログラムに従って動作することにより、その機能を達成する。
なお、データ記憶部２０１ｂ、テーブル記憶部２０３ｂ、情報記憶部２０５ｂ、逆量子化部２０６ｂ、逆ＤＣＴ部２０７ｂ及びデータ記憶部２０８ｂの構成はそれぞれ、情報抽出装置２０の、データ記憶部２０１、テーブル記憶部２０３、情報記憶部２０５、逆量子化部２０６、逆ＤＣＴ部２０７及びデータ記憶部２０８の構成と同様であるため、説明を省略し、以下では情報抽出装置２０との相違点を中心に説明する。
【００６２】
（１）可変長符号復号化部２０２ｂ
可変長符号復号化部２０２ｂは、データ記憶部２０１ｂに記憶されているＭＰＥＧデータの内、Ｉピクチャを対象として、ブロックに相当する符号列から、ＤＣ成分を復号する。更に、ＡＣ成分を復号しラン長とレベルとから成る係数組を複数個生成し、ブロックの終了を示すＥＯＢを検出する。次に、可変長符号復号化部２０２ｂは、生成した係数組を１組毎に抽出処理部２０４ｂへ出力する。
また、ＤＣ成分とＡＣ成分の係数組とを復号データとして逆量子化部２０６ｂへ出力する。
【００６３】
なお、Ｉピクチャ以外のピクチャは復号し復号データを生成し、逆量子化部２０６ｂへ出力する。
（２）抽出処理部２０４ｂ
抽出処理部２０４ｂは、可変長符号復号化部２０２ｂから複数の係数組を受け取り、受け取った複数の係数組から１組を選択する。次に、テーブル記憶部２０３ｂが記憶している埋め込みデータテーブルを用いて、選択した１組のラン長に対応する複数のレベルの値を特定し、更に、特定した複数のレベルから一致するものを探す。次に、一致するレベルが埋め込みデータテーブルの第０欄、第１欄のどちらに含まれるかを判断する。第０欄に含まれるなら、他の情報としてビット値「０」を抽出し、情報記憶部２０５ｂへ書き込む。第１欄に含まれるなら、他の情報としてビット値「１」を抽出し、情報記憶部２０５ｂへ書き込む。
【００６４】
以下同様にして、抽出処理部２０４ｂは、可変長符号復号化部２０２ｂから受け取る係数組に一致する埋め込みデータを、テーブル記憶部２０３ｂが記憶している埋め込みデータテーブルから選択し、選択した埋め込みデータに対応するビット値を、他の情報として情報記憶部２０５ｂに書き込む。
これを繰り返すことにより、他の情報を復元する。復元した他の情報を構成するビット列から終了符号を検出すると、抽出処理部２０４ｂは抽出を終了する。
【００６５】
２．５  情報抽出装置２０ｂの動作
ここでは、情報抽出装置２０ｂの動作について、図２０に示すフローチャートを用いて説明する。
データ記憶部２０１ｂが記憶しているＭＰＥＧデータについて、ピクチャ毎に、ステップＳ２５１からステップＳ２６３までを繰り返す。可変長符号復号化部２０２ｂはＭＰＥＧデータのピクチャがＩピクチャかどうかを判断し（ステップＳ２５２）、Ｉピクチャであるなら（ステップＳ２５２でＹＥＳ）ブロック毎にステップＳ２５３からステップＳ２６２までを繰り返す。可変長符号復号化部２０２ｂは１ブロック分の符号列を復号し（ステップＳ２５４）、ラン長とレベルとから成る係数組を生成し、係数組毎にステップＳ２５５からステップＳ２６１までを繰り返す。次に、可変長符号復号化部２０２ｂは生成した係数組を１組毎に抽出処理部２０４ｂへ出力する。抽出処理部２０４ｂは受け取った複数の係数組から１組を選択し（ステップＳ２５６）、埋め込みデータテーブルを用いて、選択した１組のラン長に含まれる複数のレベルを特定し、選択した１組のレベルに一致するものを探す（ステップＳ２５７）。次に、一致するレベルが埋め込みデータテーブルの第０欄、第１欄のどちらに含まれるか判断し、第０欄であるなら（ステップＳ２５８）ビット値「０」を生成し（ステップＳ２５９）、第１欄であるなら（ステップＳ２５８）ビット値「１」を生成する（ステップＳ２６０）。また、可変長符号復号化部２０２ｂは、ステップＳ２５４で生成した復号データを、逆量子化部２０６ｂへ出力する。なお、ステップＳ２５２において、Ｉピクチャ以外のピクチャの場合は（ステップＳ２５２でＮＯ）復号して逆量子化部へ出力する。
【００６６】
３．第３の実施の形態
本発明に係る第３の実施の形態としての情報埋込抽出システム４０ｃについて説明する。
情報埋込抽出システム４０ｃは、情報埋込抽出システム４０及び情報埋込抽出システム４０ｂと同様に、テーブル生成装置３０ｃと情報埋込装置１０ｃと情報抽出装置２０ｃとから構成される。なお、これらは図示していない。情報埋込抽出システム４０ｃの各構成要素は、情報埋込抽出システム４０及び情報埋込抽出システム４０ｂの各構成要素と同様な機能を達成する。
【００６７】
３．１  テーブル生成装置３０ｃの構成
ここでは、テーブル生成装置３０ｃの構成について説明する。
テーブル生成装置３０ｃはテーブル生成部１２１ｃ及びテーブル記憶部１２２ｃから構成される。
（１）テーブル生成部１２１ｃ
テーブル生成部１２１ｃは、複数のラン長とレベルとから成る係数組（０，±１）、（０，±２）、（１，±１）、（１，±２）、・・・、（ｎ，±１）、（ｎ，±２）、・・・を、埋め込む情報のビット値に対応付け、「０」と「１」の埋め込みデータに振り分け、埋め込みデータテーブルを生成する。ここで、ｎは任意のラン長の値である。
【００６８】
図１９に示すように、テーブル生成部１２１ｃは、係数組（０，１）、（０，２）、（１，１）、（１，２）、・・・をビット値「０」に対応する埋め込みデータとして振り分け、係数組（０，−１）、（０，−２）、（１，−１）、（１，−２）・・・をビット値「１」に対応する埋め込みデータとして振り分ける。テーブル生成部１２１ｃは、振り分けた埋め込みデータから、埋め込みデータテーブル５５１を生成し、生成した埋め込みデータテーブルをテーブル記憶部１２２ｃに書き込む。
【００６９】
埋め込みデータテーブル５５１の構成は、埋め込みデータテーブル５０１の構成と同様であるため説明を省略する。
なお、テーブル生成部１２１ｃは、レベルの値が±１及び±２の係数組のみを対象として埋め込みデータを生成する。そのため情報を埋め込む前後でのレベルの値の変化は最大で±４となり、情報埋込装置１０ｃは。画像データに視覚的に分からないよう他の情報を埋め込むことが可能になる。
【００７０】
（２）テーブル記憶部１２２ｃ
テーブル記憶部１２２ｃは、テーブル生成部１２１ｃが生成する埋め込みデータテーブルを記憶する。
３．２  情報埋込装置１０ｃの構成
情報埋込装置１０ｃは、情報埋込装置１０ｂと同様に、データ記憶部１０１ｃ、可変長符号復号化部１０２ｃ、入力データ記憶部１０３ｃ、テーブル記憶部１０４ｃ、埋込処理部１０５ｃ、入力データ読出部１０６ｃ、可変長符号符号化部１０７ｃ及びデータ記憶部１０８ｃから構成されている。
【００７１】
なお、情報埋込装置１０ｃの各構成要素については、情報埋込装置１０ｂの対応する各構成要素と同様の機能を達成するため、説明を省略する。
３．３  情報埋込装置１０ｃの動作
ここでは情報埋込装置１０ｃの動作について、図２１に示すフローチャートを用い、情報埋込装置１０ｂとの相違点を中心に説明する。
【００７２】
図２１は、情報埋込装置１０ｃの動作について、図１７との相違点を中心に抜粋した、フローチャートである。情報埋込装置１０ｃの動作は、埋め込み開始からステップＳ２０６まで情報埋込装置１０ｂの動作と同様である。埋込処理部１０５ｃは、複数の係数組から１組を選択し（ステップＳ２０６）選択したレベルの絶対値が２以下かどうか判断する。２以下なら（ステップＳ２３１でＹＥＳ）入力データ読出部１０６ｃが入力データ１ビットを読み出し（ステップＳ２３２）、読み出した１ビットを埋込処理部１０５ｃへ出力する。次に、埋込処理部１０５ｃは受け取った１ビットが「０」か「１」かを判断する。ビット値が「０」なら、（ステップＳ２３３）埋め込みデータテーブルの第０欄から選択したラン長とレベルを読み出し、内部に記憶しておく（ステップＳ２３４）。ビット値が「１」なら（ステップＳ２３３）、埋め込みデータテーブルの第１欄から選択したラン長とレベルを読み出し、内部に記憶しておく（ステップＳ２３５）。ステップＳ２０６で選択したレベルの絶対値が２以上なら（ステップＳ２３１でＮＯ）ラン長とレベルをそのまま読み出し、内部に記憶しておく（ステップＳ２３７）。以下、ステップＳ２１１から埋込終了まで、情報埋込装置１０ｂの動作と同様である。
【００７３】
３．４  情報抽出装置２０ｃの構成
情報抽出装置２０ｃは、情報抽出装置２０ｂと同様に、データ記憶部２０１ｃ、可変長符号復号化部２０２ｃ、テーブル記憶部２０３ｃ、抽出処理部２０４ｃ、情報記憶部２０５ｃ、逆量子化部２０６ｃ、逆ＤＣＴ部２０７ｃ及びデータ記憶部２０８ｃから構成される。
【００７４】
なお、情報抽出装置２０ｃの各構成要素については、情報抽出装置２０ｂの対応する各構成要素と同様の機能を達成するため説明を省略する。
３．５  情報抽出装置２０ｃの動作
情報抽出装置２０ｃの動作につては、情報抽出装置２０ｂの動作とほぼ同様であるため、図２２に示すフローチャートを用い、情報抽出装置２０ｂとの相違点のみを説明する。図２２は、情報抽出装置２０ｂの動作を示すフローチャートである図２０から一部を抜粋したものである。情報抽出装置２０ｂとの相違点は、抽出処理部２０４ｃがステップＳ２５６で選択した係数組に対し、ステップＳ２７１でレベルの値が２以下であるかを判断する動作である。
【００７５】
４．まとめ
以上説明したように、本発明によると、ＭＰＥＧ圧縮された少なくとも１枚以上の静止画から構成された動画像であって、前記動画像内のＩピクチャを構成するブロック毎に可変長符号列を復号して２次元離散コサイン変換（ＤＣＴ）係数列を得る。前記２次元ＤＣＴ係数列内の一部の２次元ＤＣＴ係数の値を操作することにより別情報を埋め込む。前記一部の２次元ＤＣＴ係数の値が操作され別情報が埋め込まれた２次元ＤＣＴ係数列を可変長符号化して埋め込み後の可変長符号列を得る。
【００７６】
こうして、埋め込み処理後に得られる可変長符号の符号長が、埋め込み前の符号長と異なると、バッファのオーバーフロー、アンダーフローを検証し直す必要が出てくるが、本発明では、埋め込みの前後で可変長符号長が変化しないようにすることにより、符号化レートの保証が可能になる。
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は上記の実施の形態に限定されず、以下のような場合も本発明に含まれる。
【００７７】
（１）上記の実施の形態の情報埋込装置は、複数桁の２進数で表現される埋込情報を、０及び１に対応付けられた係数ブロックを用いて、圧縮符号列に埋め込むとしているが、次に示すように、上記の２進数をｎ（ｎは２以上の正整数）進数に拡張してもよい。
ここで、埋込情報は、１桁以上のｎ進数で表現されている。埋め込みデータテーブルは、ブロックに相当する圧縮符号の長さ毎に、０からｎ−１までのｎ個の値に対応付けて、ラン長とレベルとからなる１以上の係数ブロックをｎ個予め記憶している。埋込情報を構成するｎ進数の１桁の値を読み出し、読み出した１桁の値に対応する係数ブロックを抽出し、抽出した係数ブロックをエントロピー符号化する。
【００７８】
（２）本発明におけるテーブル生成装置のテーブル生成部は、次に挙げる条件に従い各ブロックに含まれる係数組を操作することにより、埋め込みデータを生成してもよい。
▲１▼  各ブロックに含まれる係数組の内、低周波のものから最大で３組の係数組の値を変化させる。具体的には、図３に示した係数ブロック４０１においては、係数組（０，４）、（０，５）、（０，３）の値を変化させる。又、図５に示した係数ブロック４２１においては、係数組（０，３）、（０，４）、（１，１）の値を変化させる。
【００７９】
▲２▼  各係数組に含まれる係数の値を微小の範囲で変化させる。例えば±１の範囲で変化させる。
▲３▼  各ブロックに含まれる係数組の数は、最大で１増えてもよい。
▲１▼、▲２▼、▲３▼の条件により、画像の視覚的変化を少なくすることが出来る。更に、以上の条件の内、画像の視覚的変化をより少なくするために▲１▼を優先させるとよい。
【００８０】
（３）上記実施の形態では、ＭＰＥＧデータに他の情報を埋め込むとしているが、ＭＰＥＧデータには限定されず、ＪＰＥＧデータや他の規格により圧縮された圧縮データに適用してもよい。
（４）上記実施の形態において、離散コサイン変換は、直交変換の一種であるが、離散コサイン変換には限定されず、他の変換であってもよい。
【００８１】
（５）本発明において、テーブル生成装置が生成する埋め込みデータテーブルを情報埋込装置、情報抽出装置に伝送する方法としては、ＬＡＮ経由による伝送、又はフロッピーディスク、ＭＯ、ＣＤ−ＲＯＭなどの記録媒体による伝送などがある。更には、テーブル生成装置、情報埋込装置及び情報抽出装置において１個のテーブル記憶部を共有するようにしてもよい。
【００８２】
（６）上記実施の形態では、テーブル生成装置、情報埋込装置及び情報抽出装置は独立した他のコンピュータシステムから成るが、これら３つの装置が含まれる１つのコンピュータシステムであってもよい。
（７）上記実施の形態では、画像データの圧縮符号列を復号化し、他の情報を埋め込み、再度圧縮符号化を行っているが、例えば、ビデオカメラやデジタルカメラ等で画像データを圧縮符号化する段階で、他の情報を埋め込むとしてもよい。
【００８３】
（８）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フロッピーディスク、ハードディスク、ＣＤ―ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送するものとしてもよい。
【００８４】
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（８）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【００８５】
【発明の効果】
以上説明したように、本発明は、画像データが圧縮符号化された圧縮符号列に埋込情報を埋め込む情報埋込装置であって、画像データがブロック毎に直交変換され、ラン長とレベルとからなる１以上の画像係数組が生成され、前記画像係数組がエントロピー符号化された圧縮符号を１個以上含む圧縮符号列を予め記憶している符号列記憶手段と、１桁以上のｎ（ｎは２以上の正整数）進数で表現される埋込情報を予め記憶している情報記憶手段と、前記１個以上の圧縮符号の長さ毎に、０からｎ−１までのｎ個の値に対応付けて、ラン長とレベルとからなる１以上の埋込係数組をｎ個予め記憶しているテーブル記憶手段と、前記圧縮符号列に含まれる１以上の圧縮符号をエントロピー復号して前記圧縮符号の長さを算出するエントロピー復号手段と、前記埋込情報を構成する１桁の値を読み出す情報読出手段と、算出された前記圧縮符号の長さに応じて、読み出した前記桁の値に対応付けられた前記埋込係数組を前記テーブル記憶手段から抽出する抽出手段と、
抽出された前記埋込係数組をエントロピー符号化して埋込符号を生成するエントロピー符号化手段とを備える。
【００８６】
この構成によると、埋め込む前と後で圧縮符号列の符号長が変わらないという効果がある。
ここで、前記情報記憶手段は、１桁以上の２進数で表現される埋込情報を予め記憶しており、前記テーブル記憶手段は、０及び１の２個の値に対応付けて、１以上の埋込係数組を２個記憶しており、前記情報読出手段は、前記埋込情報を構成する１ビットの値を読み出し、前記抽出手段は、読み出した前記１ビットの値に対応付けられた前記埋込係数組を前記テーブル記憶手段から抽出するようにしてもよい。
【００８７】
この構成によると、ビット毎に情報を埋め込むことができる。
ここで、前記テーブル記憶手段は、ブロックに相当する１以上の圧縮符号の長さ毎に、０及び１の２個の値に対応付けて、ブロックに相当する１以上の埋込係数組を２個記憶しており、前記エントロピー復号手段は、ブロックに相当する１以上の圧縮符号をエントロピー復号して前記圧縮符号の長さを算出し、前記抽出手段は、ブロックに相当する前記埋込係数組を前記テーブル記憶手段から抽出し、
前記エントロピー符号化手段は、抽出された前記埋込係数組をエントロピー符号化するように構成してもよい。
【００８８】
この構成によると、ブロック毎に１ビットの情報を埋め込むので、抽出するときにブロック毎に確実に１ビットを抽出することができる。
ここで、前記テーブル記憶手段は、１個の圧縮符号の長さ毎に、０及び１の２個の値に対応付けて、１個の埋込係数組を２個記憶しており、前記エントロピー復号手段は、前記圧縮符号列に含まれる１個の圧縮符号をエントロピー復号して前記圧縮符号の長さを算出し、前記抽出手段は、１個の埋込係数組を前記テーブル記憶手段から抽出し、前記エントロピー符号化手段は、抽出された前記１個の埋込係数組をエントロピー符号化するように構成してもよい。
【００８９】
この構成によると、係数組毎に１ビットの情報を埋め込むので、抽出するときに係数組毎に確実に１ビットを抽出することができる。
また、本発明は、前記情報埋込装置により埋込情報が埋め込まれた圧縮符号列から前記埋込情報を抽出する情報抽出装置であって、埋込情報が埋め込まれた圧縮符号列を予め記憶している符号列記憶手段と、１以上の圧縮符号の長さ毎に、０からｎ−１までのｎ個の値に対応付けて、ラン長とレベルとからなる１以上の係数組をｎ個予め記憶しているテーブル記憶手段と、前記圧縮符号列に含まれる１以上の圧縮符号をエントロピー復号して、ラン長とレベルとからなる１以上の係数組を生成し、前記圧縮符号の長さを算出するエントロピー復号手段と、算出した前記圧縮符号の長さに応じ、生成した前記係数組に対応する値を前記テーブル記憶手段から抽出する抽出手段とを備える。
【００９０】
この構成によると、圧縮符号列から埋め込まれた他の情報を抽出できる。
ここで、前記テーブル記憶手段は、０及び１の２個の値に対応付けて、１以上の係数組を２個記憶しており、前記抽出手段は、生成した前記係数組に対応するビットの値を抽出するように構成してもよい。
この構成によると、ビット毎に情報を抽出することができる。
【００９１】
ここで、前記テーブル記憶手段は、ブロックに相当する１以上の圧縮符号の長さ毎に、０及び１の２個の値に対応付けて、ブロックに相当する１以上の埋込係数組を２個記憶しており、前記エントロピー復号手段は、ブロックに相当する１以上の圧縮符号をエントロピー復号してブロックに相当する１以上の係数組を生成し、前記圧縮符号の長さを算出し、前記抽出手段は、ブロックに相当する前記係数組に対応する値を抽出するように構成してもよい。
【００９２】
この構成によると、ブロック毎に確実に１ビットを抽出することができる。
ここで、前記テーブル記憶手段は、１個の圧縮符号の長さ毎に、０及び１の２個の値に対応付けて、１個の係数組を記憶しており、前記エントロピー復号手段は、１個の圧縮符号をエントロピー復号して、ラン長とレベルとからなる１個の係数組を生成し、前記圧縮符号の長さを算出し、前記抽出手段は、前記係数組に対応する値を抽出するように構成してもよい。
【００９３】
この構成によると、係数組毎に確実に１ビットを抽出することができる。
また、本発明は、前記情報埋込装置又は前記情報抽出装置が備えるテーブル記憶手段を生成するテーブル生成装置であって、基準となる基準画像データがブロック毎に直交変換され、ラン長とレベルとからなる１以上の画像係数組が生成され、前記画像係数組がエントロピー符号化された圧縮符号を１個以上含む基準圧縮符号列を記憶している記憶手段と、前記基準圧縮符号列をブロック毎にエントロピー復号して、ラン長とレベルとからなる１以上の基準係数組を生成する基準係数組生成手段と、ブロック毎に生成された前記基準係数組を構成するラン長及びレベルを基にして、当該ブロックに相当する１以上の基準圧縮符号列の長さが変化しないように、０及び１の２個の値に対応付けて、別のラン長及びレベルからなる１以上の埋込係数組を２個生成する係数組生成手段とを備える。
【００９４】
この構成によると、情報埋込装置はテーブルを用いて符号長の長さが変わらないように他の情報を埋め込むことができる。
また、情報抽出装置はテーブルを用いて他の情報を抽出することができる。
ここで、前記係数組生成手段は、基準係数組を構成するラン長及びレベルのうち、所定値より低い周波数成分のみを変化させることにより、埋込係数組を生成するように構成してもよい。
【００９５】
この構成によると、低周波成分のみを変化させ、係数組を生成することにより、情報埋込装置は、元画像が見た目に変わらないよう他の情報を埋め込むことができる。
ここで、前記係数組生成手段は、基準係数組を構成するレベルについて、前記レベルの絶対値を変化させることにより、埋込係数組を生成するように構成してもよい。
【００９６】
この構成によると、情報埋込装置は、元画像が見た目に変わらないよう他の情報を埋め込むことができる。
ここで、前記係数組生成手段は、基準係数組を構成するレベルの絶対値のうち、所定値より小さいものについて、前記レベルの符号を変化させることにより、埋込係数組を生成するように構成してもよい。
【００９７】
この構成によると、所定値よりも小さいものについてレベルの符号を変化させるので、情報埋込装置は、元画像が見た目に変わらないように他の情報を埋め込むことができる。
また、本発明は、画像データをブロック毎に直交変換しエントロピー符号化しつつ埋込情報を埋め込む情報埋込装置であって、画像データを記憶している画像データ記憶手段と、１桁以上の２進数で表現される埋込情報を予め記憶している情報記憶手段と、１以上の圧縮符号の長さ毎に、０及び１の２個の値に対応付けて、ラン長とレベルとからなる１以上の埋込係数組を２個予め記憶しているテーブル記憶手段と、前記画像データをブロック毎に直交変換して、ラン長とレベルとからなる１以上の係数組を生成する直交変換手段と、生成された前記係数組をエントロピー符号化して前記圧縮符号の長さを算出するエントロピー符号化手段と、前記埋込情報を構成する１桁の値を読み出す情報読出手段と、算出された前記圧縮符号の長さに応じて、読み出した前記桁の値に対応付けられた前記埋込係数組を前記テーブル記憶手段から抽出する抽出手段と、読み出した前記埋込係数組をエントロピー符号化して埋込符号を生成するエントロピー符号化手段とを備える。
【００９８】
この構成によると、画像を圧縮しながら他の情報を埋め込むことができる。
【図面の簡単な説明】
【図１】情報埋込抽出システムの構成を示すブロック図である。
【図２】ＭＰＥＧデータのデータ構造を示す。
【図３】基準となる画像から生成された係数ブロック４０１と、０に対応する埋め込みデータである係数ブロック４０２と、１に対応する埋め込みデータである係数ブロック４０３とを示す。
【図４】図３に示した係数ブロックを２次元ＤＣＴ係数に展開したものを示す。
【図５】基準となる画像から生成された係数ブロック４２１と、０に対応する埋め込みデータである係数ブロック４２２と、１に対応する埋め込みデータである係数ブロック４２３とを示す。
【図６】図５に示した係数ブロックを２次元ＤＣＴ係数に展開したものを示す。
【図７】テーブル生成装置３０が生成する埋め込みデータテーブルの一例を示す。
【図８】テーブル生成装置３０の全体の概要動作を示すフローチャートである。
【図９】テーブル生成装置３０のテーブル生成部１２１の概要動作を示すフローチャートである。
【図１０】埋め込む他の情報の入力データの一例を示す。
【図１１】他の情報を埋め込む前の係数ブロックの一例を示す。
【図１２】情報埋込装置１０全体の概要動作を示すフローチャートである。図１３に続く。
【図１３】情報埋込装置１０全体の概要動作を示すフローチャートである。図１２から続く。
【図１４】情報抽出装置２０の可変長符号復号化部２０２が生成する係数ブロックの一例を示す。
【図１５】情報抽出装置２０全体の概要動作を示すフローチャートである。
【図１６】テーブル生成装置３０ｂが生成する埋め込みデータテーブルの一例を示す。
【図１７】情報埋込装置１０ｂ全体の概要動作を示すフローチャートである。図１８に続く。
【図１８】情報埋込装置１０ｂ全体の概要動作を示すフローチャートである。図１７から続く。
【図１９】テーブル生成装置３０ｃが生成する埋め込みデータテーブルの一例を示す。
【図２０】情報抽出装置２０ｂ全体の概要動作を示すフローチャートである。
【図２１】情報埋込装置１０ｃの概要動作を示すフローチャートである。
【図２２】情報抽出装置２０ｃの概要動作を示すフローチャートである。
【符号の説明】
１０      １０ｂ    １０ｃ  情報埋込装置
２０      ２０ｂ    ２０ｃ  情報抽出装置
３０      ３０ｂ    ３０ｃ  テーブル生成装置
４０      ４０ｂ    ４０ｃ  情報埋込抽出システム
１０１    １０１ｂ  １０１ｃ  データ記憶部
１０２    １０２ｂ  １０２ｃ  可変長符号復号化部
１０３    １０３ｂ  １０３ｃ  入力データ記憶部
１０４    １０４ｂ  １０４ｃ  テーブル記憶部
１０５    １０５ｂ  １０５ｃ  埋込処理部
１０６    １０６ｂ  １０６ｃ  入力データ読出部
１０７    １０７ｂ  １０７ｃ  可変長符号符号化部
１０８    １０８ｂ  １０８ｃ  データ記憶部
１２０                        データ記憶部
１２１    １２１ｂ  １２１ｃ  テーブル生成部
１２２    １２２ｂ  １２２ｃ  テーブル記憶部
２０１    ２０１ｂ  ２０１ｃ  データ記憶部
２０２    ２０２ｂ  ２０２ｃ  可変長符号復号化部
２０３    ２０３ｂ  ２０３ｃ  テーブル記憶部
２０４    ２０４ｂ  ２０４ｃ  抽出処理部
２０５    ２０５ｂ  ２０５ｃ  情報記憶部
２０６    ２０６ｂ  ２０６ｃ  逆量子化部
２０７    ２０７ｂ  ２０７ｃ  逆ＤＣＴ部
２０８    ２０８ｂ  ２０８ｃ  データ記憶部
【図１】
0003646074.tif 000002
【図２】
0003646074.tif 000003
【図３】
0003646074.tif 000004
【図４】
0003646074.tif 000005
【図５】
0003646074.tif 000006
【図６】
0003646074.tif 000007
【図７】
0003646074.tif 000008
【図８】
0003646074.tif 000009
【図９】
0003646074.tif 000010
【図１０】
0003646074.tif 000011
【図１１】
0003646074.tif 000012
【図１２】
0003646074.tif 000013
【図１３】
0003646074.tif 000014
【図１４】
0003646074.tif 000015
【図１５】
0003646074.tif 000016
【図１６】
0003646074.tif 000017
【図１７】
0003646074.tif 000018
【図１８】
0003646074.tif 000019
【図１９】
0003646074.tif 000020
【図２０】
0003646074.tif 000021
【図２１】
0003646074.tif 000022
【図２２】
0003646074.tif 000023