(57)【要約】【課題】画像データへの任意データの埋め込みに際して、画質劣化の防止、画像データへ埋め込むデータ量の増大化、ファイルの長大化防止。【解決手段】データ挿入部１５は、Ｙ成分のＤＣＴ係数に対してデータ挿入を開始するZ番目の係数位置（開始位置）を、Ｃｂ、Ｃｒ成分のＥＯＢの係数位置に応じて決定し、開始位置からデータを挿入する。色差ＥＯＢに相当する係数位置のＹデータのＤＣＴ係数からデータ埋め込みをすることによって、雑音電力が突出する周波数が輝度と色差で重ならず、輝度と色差で合算した雑音電力を、画質劣化を検知されない雑音電力の範囲内に収めることができる。【選択図】  図７
2007221389.tif 000002
【特許請求の範囲】
【請求項１】
画像データを輝度成分および色差成分に変換するＹＣ変換部と、輝度成分および色差成分をそれぞれ複数のブロックに分割するブロック化を行い、ブロック毎にＤＣＴ（離散コサイン変換）係数を算出するＤＣＴ変換部と、各ブロックのＤＣＴ係数を対応する量子化幅で除算した値である除算結果値を丸めることで各ＤＣＴ係数の量子化代表値を決定する量子化部と、各ＤＣＴ係数の量子化代表値を格納した量子化データテーブルを作成し、量子化データテーブルを符号化する符号化部とを備える画像圧縮符号化装置であって、
前記量子化部は、前記ＹＣ変換部の変換した色差成分のＥＯＢ（End of Block）に相当する輝度成分のＤＣＴ係数の位置を、データ挿入を開始する低周波数側の位置である開始位置に決定した上、前記開始位置からデータ挿入を終了する所定の高周波数側の方の位置である終了位置までの輝度成分のＤＣＴ係数の各々を対応する量子化幅で除算した値である除算結果値の丸め方向を変更することで前記量子化代表値の最下位１ビットの各々を挿入すべき任意のデータを構成するビットに変更し、前記輝度成分のＤＣＴ係数の量子化代表値に前記任意のデータを挿入する画像圧縮符号化装置。
【請求項２】
前記ＹＣ変換部は、前記画像データを輝度成分Ｙ、青み色差成分Ｃｂおよび赤み色差成分Ｃｒに変換し、
前記量子化部は、前記ＤＣＴ係数の直流成分の位置を原点として前記ＤＣＴ係数の交流成分の水平方向の周波数成分の位置および前記ＤＣＴ係数の交流成分の垂直方向の周波数成分の位置を示す２次元座標系（ｘ，ｙ）において、前記ＹＣ変換部の変換した青み色差成分ＣｂのＥＯＢ（End of Block）および赤み色差成分ＣｒのＥＯＢ（End of Block）の内高周波数側の方の位置（Ｘ，Ｙ）に相当する輝度成分の位置を開始位置に決定する請求項１に記載の画像圧縮符号化装置。
【請求項３】
前記ＹＣ変換部は、前記画像データを輝度成分Ｙ、青み色差成分Ｃｂおよび赤み色差成分Ｃｒにそれぞれ４：１：１の割合で変換し、
前記量子化部は、前記２次元座標系における前記位置（Ｘ，Ｙ）に相当する輝度成分の位置（Ｘ／２，Ｙ／２）を開始位置に決定する請求項２に記載の画像圧縮符号化装置。
【請求項４】
前記ＹＣ変換部は、前記画像データを輝度成分Ｙ、青み色差成分Ｃｂおよび赤み色差成分Ｃｒにそれぞれ水平方向に４：２：２の割合で変換し、
前記量子化部は、前記２次元座標系における前記位置（Ｘ，Ｙ）に相当する輝度成分の位置（Ｘ／２，Ｙ）を開始位置に決定する請求項２に記載の画像圧縮符号化装置。
【請求項５】
前記量子化部は、データ挿入を開始する所定の低周波数側の係数位置である開始位置からデータ挿入を終了する所定の高周波数側の係数位置である終了位置までの色差成分のＤＣＴ係数の各々を対応する量子化幅で除算した値である除算結果値の丸め方向を変更することで前記量子化代表値の最下位１ビットの各々を挿入すべき任意のデータを構成するビットに変更し、前記色差成分のＤＣＴ係数の量子化代表値に前記任意のデータを挿入する請求項１〜４のいずれかに記載の画像圧縮符号化装置。
【請求項６】
画像データの色差成分のＥＯＢ（End of Block）に相当する輝度成分のＤＣＴ係数の位置を、データ挿入を開始する低周波数側の位置である開始位置に決定した上、前記開始位置からデータ挿入を終了する所定の高周波数側の方の位置である終了位置までの輝度成分のＤＣＴ係数の各々を対応する量子化幅で除算した値である除算結果値の丸め方向を変更することで前記量子化代表値の最下位１ビットの各々を挿入すべき任意のデータを構成するビットに変更し、前記輝度成分のＤＣＴ係数の量子化代表値に前記任意のデータを挿入するデータ挿入装置。
【請求項７】
画像データを輝度成分および色差成分に変換するＹＣ変換部と、輝度成分および色差成分をそれぞれ複数のブロックに分割するブロック化を行い、ブロック毎にＤＣＴ（離散コサイン変換）係数を算出するＤＣＴ変換部と、各ブロックのＤＣＴ係数を対応する量子化幅で除算した値である除算結果値を丸めることで各ＤＣＴ係数の量子化代表値を決定する量子化部と、各ＤＣＴ係数の量子化代表値を格納した量子化データテーブルを作成し、量子化データテーブルを符号化する符号化部とを備える画像圧縮符号化装置で用いられる画像圧縮符号化方法あって、
前記ＹＣ変換部の変換した色差成分のＥＯＢ（End of Block）に相当する輝度成分のＤＣＴ係数の位置を、データ挿入を開始する低周波数側の位置である開始位置に決定するステップと、
前記開始位置からデータ挿入を終了する所定の高周波数側の位置である終了位置までの輝度成分のＤＣＴ係数の各々を対応する量子化幅で除算した値である除算結果値の丸め方向を変更することで前記量子化代表値の最下位１ビットの各々を挿入すべき任意のデータを構成するビットに変更し、前記輝度成分のＤＣＴ係数の量子化代表値に前記任意のデータを挿入するステップと、
を含む画像圧縮符号化方法。
【請求項８】
画像データの色差成分のＥＯＢ（End of Block）に相当する輝度成分のＤＣＴ係数の位置を、データ挿入を開始する低周波数側の位置である開始位置に決定するステップと、
前記開始位置からデータ挿入を終了する所定の高周波数側の位置である終了位置までの輝度成分のＤＣＴ係数の各々を対応する量子化幅で除算した値である除算結果値の丸め方向を変更することで前記量子化代表値の最下位１ビットの各々を挿入すべき任意のデータを構成するビットに変更し、前記輝度成分のＤＣＴ係数の量子化代表値に前記任意のデータを挿入するステップと、
を含むデータ挿入方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は圧縮符号化された静止画ないし動画データに任意のデータを埋め込む技術に関する。
【背景技術】
【０００２】
画像データ圧縮の分野において、種々の圧縮アルゴリズムが提案されている。例えば、ＪＰＥＧ圧縮の場合、オリジナル画像データを離散コサイン変換（ＤＣＴ）し、ビット配分を決定して量子化を行う。ベースライン方式の場合、量子化データをハフマン符号化により符号化して符号化データを得る。
【０００３】
この圧縮符号化された画像データに対して任意のデータを付加する技術として、ステガノグラフィ（Steganography）がある。ステガノグラフィは、付加情報（メッセージや画像など）を画像等に対して直接、重畳する処理を実行するものであり、例えば、画像情報の各画素の値を示すビット情報の最下位ビットにデータを入れたり（特許文献１）、あるいはマクロブロックの量子化されたＹ成分のＤＣＴ係数を変更したり（非特許文献１）、あるいは量子化されたＤＣＴ係数の和をある値で割った余りで埋め込みデータを表す（非特許文献２）など、様々な態様のものがある。
【０００４】
なお、ステガノグラフィに類似する情報埋め込み技術として、電子透かし（Watermark）がある。例えば、ＤＣＴ係数ブロック群の中から電子透かしを埋め込むＤＣＴ係数ブロック（埋込ブロック）を一つ以上選択し、選択された埋込ブロックそれぞれに対して、電子透かしを構成する一つのビットを埋め込む（特許文献２）。ただしこの技術は、画像自体の情報付加や著作権管理に使われ、電子透かしとして埋め込まれるデータの量が少なく、データ改変などに対して耐性が要求される。また、埋め込まれたデータの抽出が１００％可能とは限らず、これらの点でステガノグラフィと異なる。
【０００５】
また、データの埋め込みにより画質劣化が生じることがあるが、これを防止する技術としては、例えば、画像を埋め込む場所をＤＣＴ係数の最高周波数の位置にするものがある（特許文献３、非特許文献３）。
【特許文献１】特開２００３−２８９４３５号公報
【特許文献２】特開２０００−１５１９７３号公報
【特許文献３】特開２００２−３３０２７９号公報
【非特許文献１】特許庁標準技術集「ＪＰＥＧ符号化列に対するステガノグラフィ」インターネットＵＲＬ[http://www.jpo.go.jp/shiryou/s_sonota/hyoujun_gijutsu/denshi_sukashi/2_e_2.htm]
【非特許文献２】「埋込位置の特定を必要としないＪＰＥＧ画像へのデータ埋込法」、電子情報通信学会論文誌２００５／１０Ｖｏｌ．Ｊ８８−Ｄ−II  Ｎｏ．１０  ｐｐ．２０３７−２０４５、（社）電子情報通信学会
【非特許文献３】「ＪＰＥＧ符号化列へのバイナリデータのデータ埋込法」、電子情報通信学会論文誌２０００／６Ｖｏｌ．Ｊ８３−Ｄ−II  Ｎｏ．６  ｐｐ．１４６９−１４７６、（社）電子情報通信学会
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１、非特許文献１および特許文献２の技術では、１マクロブロックにつき１ビットしかデータを埋め込むことができず、埋め込めるデータ量が限られてしまう。非特許文献２の技術でも、埋め込めるデータ量が限られる。また、特許文献３および非特許文献３のようにすると、ＥＯＢ（End of Block）符号が消滅するため、符号化効率が低下し、ＪＰＥＧファイルが非常に大きくなる。
【０００７】
本発明は、画像データへの任意データの埋め込みに際して、画質劣化の防止、画像データへ埋め込むデータ量の増大化、ファイルの長大化防止を目的とする。
【課題を解決するための手段】
【０００８】
本発明は、画像データを輝度成分および色差成分に変換するＹＣ変換部と、輝度成分および色差成分をそれぞれ複数のブロックに分割するブロック化を行い、ブロック毎にＤＣＴ（離散コサイン変換）係数を算出するＤＣＴ変換部と、各ブロックのＤＣＴ係数を対応する量子化幅で除算した値である除算結果値を丸めることで各ＤＣＴ係数の量子化代表値を決定する量子化部と、各ＤＣＴ係数の量子化代表値を格納した量子化データテーブルを作成し、量子化データテーブルを符号化する符号化部とを備える画像圧縮符号化装置に関する。
【０００９】
この画像圧縮符号化装置において、量子化部は、ＹＣ変換部の変換した色差成分のＥＯＢ（End of Block）に相当する輝度成分のＤＣＴ係数の位置を、データ挿入を開始する低周波数側の位置である開始位置に決定した上、開始位置からデータ挿入を終了する所定の高周波数側の方の位置である終了位置までの輝度成分のＤＣＴ係数の各々を対応する量子化幅で除算した値である除算結果値の丸め方向を変更することで量子化代表値の最下位１ビットの各々を挿入すべき任意のデータを構成するビットに変更し、輝度成分のＤＣＴ係数の量子化代表値に任意のデータを挿入する。
【００１０】
この発明によると、画像データを分割することで得られたブロックごとに算出された各ＤＣＴ係数の最下位１ビットを任意のデータのビットに変更することで、画像データを埋め込む。従来技術のように、各ブロックに１ビットのデータを挿入するのではなく、各ＤＣＴ係数に１ビットずつデータを挿入できるから、画像データに挿入できるデータ量が格段に増加する。
【００１１】
また、輝度成分に関するデータ埋め込みの開始位置を示す情報は色差成分のＥＯＢ相当位置に定まるから、これを別途データ化しで画像ファイルのヘッダ部に埋め込んだり、予め符号化側・復号化側でデータ埋め込み開始位置を固定的に決めておいたりする必要がない。
【００１２】
また、色差の変化は輝度の変化に比べて鈍感であるという人の視覚特性を考慮して、色差成分の量子化幅は輝度成分の量子化幅よりも大きく設定されているのが通常であるから、色差成分のＥＯＢに相当する輝度成分のＤＣＴ係数の位置は、輝度成分のＥＯＢの位置よりも低周波数側にある。このため、輝度成分の本来のＥＯＢ以降にデータが挿入されることで輝度成分のＥＯＢが高周波数側に移動しゼロランレングスが発生する確率が低くなり符号化効率が低下することもない。
【００１３】
なお、万一、あるＭＣＵ（最小符号化単位）の色差成分のＥＯＢの位置に相当する輝度成分の位置が輝度成分のＥＯＢの位置と同じかそれよりも高周波数側にあった場合は、そのＭＣＵの輝度成分にデータを挿入しないようにする。こうすれば、輝度成分のＥＯＢが高周波数側に移動しゼロランレングスが発生する確率が低くなり符号化効率が低下することもない。
【００１４】
以上のようにして決定された開始位置から輝度成分のＤＣＴ係数にデータが挿入された場合において、さらに、データ挿入を開始する所定の低周波数側の係数位置である開始位置からデータ挿入を終了する所定の高周波数側の係数位置である終了位置までの色差成分のＤＣＴ係数の各々を対応する量子化幅で除算した値である除算結果値の丸め方向を変更することで量子化代表値の最下位１ビットの各々を挿入すべき任意のデータを構成するビットに変更し、色差成分のＤＣＴ係数の量子化代表値に任意のデータを挿入したとする。
【００１５】
この場合、色差成分のＥＯＢに相当する輝度成分のＤＣＴ係数の位置からデータ埋め込みをすることによって、雑音電力が突出するＤＣＴ係数の周波数が輝度と色差で重ならず、輝度と色差で合算した雑音電力を、画質劣化を検知されない雑音電力の範囲内に収めることができる。
【００１６】
ＹＣ変換部は、画像データを輝度成分Ｙ、青み色差成分Ｃｂおよび赤み色差成分Ｃｒに変換し、量子化部は、ＤＣＴ係数の直流成分の位置を原点としてＤＣＴ係数の交流成分の水平方向の周波数成分の位置およびＤＣＴ係数の交流成分の垂直方向の周波数成分の位置を示す２次元座標系（ｘ，ｙ）において、ＹＣ変換部の変換した青み色差成分ＣｂのＥＯＢ（End of Block）および赤み色差成分ＣｒのＥＯＢ（End of Block）の内高周波数側の方の位置（Ｘ，Ｙ）に相当する輝度成分の位置を開始位置に決定するとよい。
【００１７】
例えば、ＹＣ変換部が、画像データを輝度成分Ｙ、青み色差成分Ｃｂおよび赤み色差成分Ｃｒにそれぞれ４：１：１の割合で変換する場合は、量子化部は、２次元座標系における位置（Ｘ，Ｙ）に相当する輝度成分の位置（Ｘ／２，Ｙ／２）を開始位置に決定するとよい。
【００１８】
あるいは、ＹＣ変換部が、画像データを輝度成分Ｙ、青み色差成分Ｃｂおよび赤み色差成分Ｃｒにそれぞれ水平方向に４：２：２の割合で変換する場合は、量子化部は、２次元座標系における位置（Ｘ，Ｙ）に相当する輝度成分の位置（Ｘ／２，Ｙ）を開始位置に決定するとよい。
【００１９】
本発明に係るデータ挿入装置は、画像データ色差成分のＥＯＢ（End of Block）に相当する輝度成分のＤＣＴ係数の位置を、データ挿入を開始する低周波数側の位置である開始位置に決定した上、開始位置からデータ挿入を終了する所定の高周波数側の方の位置である終了位置までの輝度成分のＤＣＴ係数の各々を対応する量子化幅で除算した値である除算結果値の丸め方向を変更することで量子化代表値の最下位１ビットの各々を挿入すべき任意のデータを構成するビットに変更し、輝度成分のＤＣＴ係数の量子化代表値に任意のデータを挿入する。
【００２０】
また本発明は、画像データを輝度成分および色差成分に変換するＹＣ変換部と、輝度成分および色差成分をそれぞれ複数のブロックに分割するブロック化を行い、ブロック毎にＤＣＴ（離散コサイン変換）係数を算出するＤＣＴ変換部と、各ブロックのＤＣＴ係数を対応する量子化幅で除算した値である除算結果値を丸めることで各ＤＣＴ係数の量子化代表値を決定する量子化部と、各ＤＣＴ係数の量子化代表値を格納した量子化データテーブルを作成し、量子化データテーブルを符号化する符号化部とを備える画像圧縮符号化装置で用いられる画像圧縮符号化方法に関する。
【００２１】
この方法は、ＹＣ変換部の変換した色差成分のＥＯＢ（End of Block）に相当する輝度成分のＤＣＴ係数の位置を、データ挿入を開始する低周波数側の位置である開始位置に決定するステップと、開始位置からデータ挿入を終了する所定の高周波数側の位置である終了位置までの輝度成分のＤＣＴ係数の各々を対応する量子化幅で除算した値である除算結果値の丸め方向を変更することで量子化代表値の最下位１ビットの各々を挿入すべき任意のデータを構成するビットに変更し、輝度成分のＤＣＴ係数の量子化代表値に任意のデータを挿入するステップと、データ挿入を開始する所定の低周波数側の係数位置である開始位置からデータ挿入を終了する所定の高周波数側の係数位置である終了位置までの色差成分のＤＣＴ係数の各々を対応する量子化幅で除算した値である除算結果値の丸め方向を変更することで量子化代表値の最下位１ビットの各々を挿入すべき任意のデータを構成するビットに変更し、色差成分のＤＣＴ係数の量子化代表値に任意のデータを挿入するステップとを含む。
【００２２】
また、本発明に係るデータ挿入方法は、画像データの色差成分のＥＯＢ（End of Block）に相当する輝度成分のＤＣＴ係数の位置を、データ挿入を開始する低周波数側の位置である開始位置に決定するステップと、開始位置からデータ挿入を終了する所定の高周波数側の位置である終了位置までの輝度成分のＤＣＴ係数の各々を対応する量子化幅で除算した値である除算結果値の丸め方向を変更することで量子化代表値の最下位１ビットの各々を挿入すべき任意のデータを構成するビットに変更し、輝度成分のＤＣＴ係数の量子化代表値に任意のデータを挿入するステップとを含む。
【発明の効果】
【００２３】
本発明によると、輝度成分に関するデータ埋め込みの開始位置を示す情報を別途データ化しで画像ファイルのヘッダ部に埋め込んだり、予め符号化側・復号化側でデータ埋め込み開始位置を固定的に決めておいたりする必要がない。
【００２４】
また、輝度成分の本来のＥＯＢ以降にデータが挿入されることで輝度成分のＥＯＢが高周波数側に移動しゼロランレングスが発生する確率が低くなり符号化効率が低下することもない。
【００２５】
さらに、輝度成分と色差成分の両方のＤＣＴ係数にデータを挿入したとしても、雑音電力が突出するＤＣＴ係数の周波数が輝度と色差で重ならず、輝度と色差で合算した雑音電力を、画質劣化を検知されない雑音電力の範囲内に収めることができる。
【発明を実施するための最良の形態】
【００２６】
以下、添付した図面を参照し本発明の好ましい実施の形態を説明する。
【００２７】
図１は本発明の好ましい第１の実施形態に係る画像圧縮符号化装置のブロック図である。詳細は省略するが、本実施形態で述べる画像圧縮符号化装置の各ブロックはプログラム制御によっても実現可能である。
【００２８】
画像データ作成部１１は、デジタルスチルカメラに内蔵されたアナログフロントエンドなどの画像信号出力部１０から出力された画像信号のガンマ補正、画素補間法による欠陥画素の補間、ホワイトバランスの補正、画像信号の鮮鋭化、手振れによる影響の補正、ＣＭＹＧの色空間からＲＧＢの色空間への色空間変換等の処理を行って被写体像を表すＲＧＢの各色毎のデータを生成し、３×３行列による線形変換により輝度を表す輝度信号（Ｙ）、「青み」成分を表す色差信号（ＣｂないしＵ）及び「赤み」成分を表す色差信号（ＣｒないしＶ）のＹＣｂＣｒの色空間に変換して画像データを出力する。
【００２９】
ＲＧＢからＹＣｂＣｒの色空間への変換には、
Y=aR+bG+cB (ただしa+b+c=1)
を用いるのが一般的である。
【００３０】
例えば、CCIR601では、a=0.299,b=0.587,C=0.114として、
Ｙ＝０．２９９Ｒ＋０．５８７Ｇ＋０．１１４Ｂ
としている。
【００３１】
色差としては、
Ｃｂ＝Ｂ−Ｙ
Ｃｒ＝Ｒ−Ｙ
や、
Ｃｒ＝ｐ（Ｒ−Ｙ）
Ｃｂ＝ｑ（Ｂ−Ｙ）  （ｐ、ｑは定数）
として求めるのが一般的である。
【００３２】
CCIR601では後者の場合、p=0.5/0.701=0.713、q=0.5/0.886=0.564を推奨している。以後の説明において、特に断らない限りｐ、ｑは任意の定数とする。
【００３３】
画像データ作成部１１によるＲ，Ｇ，Ｂ信号からＹ，Ｃｂ，Ｃｒの映像信号への変換は、人間の目は輝度の変化には敏感だが、色の変化には鈍感だという特性を利用し、輝度Ｙにより多くの情報を与えて色の情報量を抑えるために行われる。この変換は、Ｙ，Ｕ，Ｖのサンプリングする比率によって、ＹＣｂＣｒ４：１：１、ＹＣｂＣｒ４：２：２、ＹＣｂＣｒ４：２：０などの名称で呼ばれる。
【００３４】
ＹＣｂＣｒ４：４：４は、Ｙ，Ｃｂ，Ｃｒを同じ割合で変換する。即ち、１ピクセルあたりＲ，Ｇ，Ｂそれぞれ８ビット、合計８＋８＋８＝２４ビットで色表現されるＲＧＢ信号をＹＣｂＣｒ系に座標変換し、水平方向の４ピクセルに対して輝度Ｙ、色差Ｃｂ、Ｃｒを４ピクセル全て取る。ＹＣｂＣｒ４：４：４フォーマット変換後のＹ，Ｃｂ，Ｃｒ信号１ピクセルあたりのビット数は８＋８＋８＝２４ビット（圧縮率１）であり、１ピクセルあたりのデータ量は変わらない。ＹＣｂＣｒ４：４：４フォーマットは医療や映画などの特殊な分野に用いられる。
【００３５】
ＹＣｂＣｒ４：２：２は、画素を構成する色差信号Ｃｂ、Ｃｒのデータ量を水平方向にそれぞれ１／２に間引く。即ち、水平方向の４ピクセルに対して輝度Ｙを４ピクセル全て取るが、色差Ｃｂ、Ｃｒは２ピクセルずつ取る。このため、ＹＣｂＣｒ４：２：２フォーマット変換後のＹ，Ｃｂ，Ｃｒ信号１ピクセルあたりのビット数は８＋４＋４＝１６ビットとなる（圧縮率２／３）。ＹＣｂＣｒ４：２：２フォーマットは一般にテレビ局のスタジオ内やプロユースで用いられる。
【００３６】
ＹＣｂＣｒ４：１：１（４：２：０）は、ＹＣｂＣｒ４：２：２の色差信号Ｃｂ、Ｃｒを垂直方向に１／２間引く。ＹＣｂＣｒ４：１：１フォーマット変換後のＹ，Ｃｂ，Ｃｒ信号１ピクセルあたりのビット数は８＋２＋２＝１２ビットとなる（圧縮率１／２）。ＹＣｂＣｒ４：１：１はＪＰＥＧ、ＭＰＥＧ４方式などの符号化器で慣用され、データ量は１ピクセルあたり１／２減少する。
【００３７】
画像データ作成部１１により変換されたＹ，Ｃｂ，Ｃｒの映像信号のフォーマットは、ＹＣｂＣｒ４：４：４、ＹＣｂＣｒ４：２：２、ＹＣｂＣｒ４：１：１のいずれであってもよい。
【００３８】
ＤＣＴ処理部１２は、画像データ作成部１１から出力された画像データを８×８要素からなる複数のブロック（ここでは説明の便宜上６４個のブロックとする）に分割するブロック化を行い、ブロック毎にＤＣＴ（離散コサイン変換）を行う。ＤＣＴ処理部１２は、ＤＣＴ係数を格納した８×８のテーブル形式のＤＣＴ係数テーブルをブロック毎に作成し、量子化部１３に出力する。
【００３９】
８×８ブロックは、縦方向に８画素、横方向に８画素の総数６４画素のブロックを示している。画像フォーマット４：１：１の場合は、輝度情報Ｙの８×８ブロック４つと、色差情報ＣｒないしＣｂの８×８ブロック各１つでＭＣＵ（最小符号化単位）が構成される。画像フォーマット４：２：２の場合は輝度情報Ｙの８×８ブロック４つと、色差情報ＣｂないしＣｒの８×８ブロック各２つでＭＣＵが構成される。画像フォーマット４：４：４の場合は輝度情報Ｙの８×８ブロック４つと、色差情報ＣｂないしＣｒの８×８ブロック各４つでＭＣＵが構成される。
【００４０】
量子化部１３は、ＤＣＴ処理部１２から出力されたブロック毎のＤＣＴ係数テーブルの各ＤＣＴ係数を、量子化表の対応する区間幅（量子化幅あるいは量子化ステップと呼ばれる）で割り、その値の少数以下の桁を丸めることで、各ＤＣＴ係数を量子化する。
【００４１】
量子化代表値Ｑは、例えば、ｘ：量子化前のＤＣＴ係数の値、Δ：量子化幅、g：四捨五入・切捨て・切り上げなどの丸め演算をおこなう関数とすると、
【００４２】
【数１】
2007221389.tif 000003
【００４３】
で表される。ミッドトレッド型の線形量子化では、gは四捨五入の丸め処理を行う関数である。ＪＰＥＧなどでは、
【００４４】
【数２】
2007221389.tif 000004
【００４５】
とΔを別々に符号化している。本明細書では説明の便宜上、数２で求まる値、すなわちＤＣＴ係数を量子化した値を量子化代表値と呼ぶ。
【００４６】
ＤＣＴ処理部１２は、このようにして決定されたＤＣＴ係数の量子化代表値を格納した８×８のテーブル形式の量子化データテーブルをブロック毎に作成し、エントロピー符号化部１４に出力する。
【００４７】
エントロピー符号化部１４は、量子化部１３から出力されたブロック毎の量子化データテーブルをハフマン符号表などを用いてエントロピー符号化し、ビットストリームを出力する。この際、最高周波数の係数位置まで連続するゼロの量子化代表値の列の長さ（ゼロランレングス）を考慮した符号化を行なうことにより、ビット数が効果的に低減される。
【００４８】
符号化データにはＥＯＢ（エンドオブブロック）のコードが付加される。ここで、ＥＯＢとは、ブロック内の後続の量子化代表値は全てゼロであるという意味のコードである。
【００４９】
ＤＣＴを行って得られるＤＣＴ係数テーブルにおいては、左上に画質の劣化が顕在化しやすい低い空間周波数のＤＣＴ係数が配置され、右下に向かうほど画質の劣化が顕在化しにくい高い空間周波数のＤＣＴ係数が配置される。
【００５０】
図２は、量子化データテーブルに格納されている量子化代表値をエントロピー符号化する順序及びエントロピー復号化された量子化代表値を量子化データテーブルに格納する順序を表す図である。図示するように、量子化代表値を左上から右下に向かってジグザグの順序でエントロピー符号化又は格納することから、この順序を一般にジグザグ順序あるいはジグザグシーケンスという。従って、例えばこのジグザグ順序の順にエントロピー復号化を行うと、低い空間周波数のＤＣＴ係数を表す量子化代表値ほど先に復元される。ゼロの量子化代表値の列の先頭には、ＥＯＢが付加されている。
【００５１】
以下、データを挿入しない場合にＹ、ＣｂまたはＣｒ成分の画像データのＤＣＴ係数D(m)を割る通常の区間幅を第１の量子化ステップQ1(m)で表し、データを挿入する場合にＹ成分の画像データのＤＣＴ係数D(m)を割る区間幅を第２の量子化ステップQ2(m)で表す（mはジグザグ順序を示す添え字であり、0≦m≦63）。また、第１の量子化ステップQ1(m)による量子化によって定まったＥＯＢを本来のＥＯＢと呼び、本来のＥＯＢの量子化代表値のジグザグスキャンの順番をX（0≦X≦63）とする。また、第１の量子化ステップQ1(m)によるＤＣＴ係数D(m)の量子化で求められた量子化代表値をR1(m)で表す。また、第２の量子化ステップQ2(m)によるＤＣＴ係数D(m)の量子化で求められた量子化代表値をR2(m)で表す。
【００５２】
また、第２の量子化ステップQ2(m)による量子化によって定まり、かつ本来のＥＯＢの位置よりも１つ分高周波数側のＥＯＢを新たなＥＯＢと呼び、新たなＥＯＢの量子化代表値のジグザグスキャンの順番をW（0≦W≦63）とする。
【００５３】
データ挿入部１５は、挿入したい任意のデータのビット列の埋め込みを開始するＹ、ＣｂまたはＣｒ成分画像データの量子化代表値R2(Z)からビット列の埋め込みを終了する量子化代表値R2 (Y)までの各々の最下位１ビットに、データのビット列の先頭から順に１ビットずつ埋め込む（0≦Z≦m≦Y≦X≦63）。
【００５４】
具体的には、データ挿入部１５は、ＤＣＴ係数D(m)に対応する量子化ステップQ1(m)と量子化代表値R1(m)を破棄した上、ＤＣＴ係数D(m)に対応する量子化ステップをQ2(m)に設定し、除算結果値D(m)/Q2(m)の丸め演算結果値の偶奇性（パリティ）が埋め込むデータビットの値（０または１）と対応するように除算結果値D(m)/Q2(m)の丸め方向を設定し、設定した丸め方向に除算結果値D(m)/Q2(m)を丸めた値を、ＤＣＴ係数D(m)の量子化代表値R2(m)にすることで、各量子化代表値R2(m)にビットの挿入を行う。
【００５５】
以下では説明の簡略のため、あるブロックのある１つの量子化代表値R2(m)についてのデータ挿入について説明するが、複数ブロックのそれぞれの量子化代表値R2(m)について、同様にデータ挿入ができる。
【００５６】
本明細書では色差情報Ｃｂ、ＣｒのＤＣＴ係数へのデータ挿入を開始するZ番目の係数位置は固定（すなわちZは所定の値）であるものとするが、無論、様々なパラメータに応じて可変にしてもよい。データ挿入を終了するY番目の係数位置（終了位置）は、本来のＥＯＢの１つ前の係数位置（Y=X-1）であることが好ましく、本来のＥＯＢの位置に依存して変化する。これは、本来のＥＯＢ以降にビットを挿入することで、ゼロランレングスが短くなり、符号化効率が低下するのを防止するためである。本来のＥＯＢの位置がデータ埋め込み開始位置(ジグザグスキャン順序がZ番目の係数位置)よりも低周波数側であれば、データ挿入は行わない。
【００５７】
従来例では、１ブロックにつき１ビットしかデータ挿入できないが、本実施形態では、１ブロックの各量子化代表値R2(m)（0≦Z≦m≦Y≦63）に１ビットずつデータを挿入することができるから、従来例よりも挿入できるデータ量が格段に増加する。
【００５８】
図３は、データ挿入部１５によるビット挿入の一例を示す。この図では、説明の便宜上、第２の量子化ステップQ2(m)は第１の量子化ステップQ1(m)と同じく1であり（Q1(m)=Q2(m)=1)、かつ除算結果値D(m)/Q2(m)は-0.5〜0.5の範囲内であるとする。
【００５９】
データ挿入部１５は、挿入すべきビット値が「０」、除算結果値D(m)/Q2(m)が-0.5<D(m)/Q2(m)≦0であるとすると、丸め方向を＋∞側に設定し、量子化代表値を、R1(m)から、除算結果値D(m)/Q2(m)の最近傍の偶数R2(m)=0に変更する。また、挿入すべきビット値が「０」、除算結果値が0≦D(m)/Q2(m)<0.5であるとすると、丸め方向を-∞側に設定し、量子化代表値を、R1(m)から、を除算結果値D(m)/Q2(m)の最近傍の偶数R2(m)=0に変更する。これらの丸め演算はいわゆる四捨五入に相当し、量子化代表値をR1(m)からR2(m)に変更した際に生じる誤差は、第１の量子化ステップQ1(m)の半分（=0.5）未満であり、第１の量子化ステップQ1(m)による量子化の際の丸め誤差（除算結果値D(m)/Q1(m)の四捨五入による丸め誤差）と変わらない。
【００６０】
一方、挿入すべきビット値が「１」、除算結果値D(m)/Q2(m)が-0.5<D(m)/Q2(m)≦0であるとすると、丸め方向を-∞側に設定し、量子化代表値を、R1(m)から、除算結果値D(m)/Q2(m)の最近傍の奇数R2(m)=-1に変更する。また、挿入すべきビット値が「１」、除算結果値が0≦D(m)/Q2(m)<0.5であるとすると、丸め方向を＋∞側に設定し、量子化代表値を、R1(m)から、除算結果値D(m)/Q2(m)の最近傍の奇数R2(m)=1に変更する。これらの丸め演算はいわゆる切り下げ、切り上げに相当し、量子化代表値をR1(m)からR2(m)に変更した際に生じる誤差は、第１の量子化ステップQ1(m)（=1）未満となり、第１の量子化ステップQ1(m)による量子化の際の丸め誤差（除算結果値D(m)/Q1(m)の四捨五入による丸め誤差）の倍となる。
【００６１】
このように、量子化代表値R2(m)に挿入するデータビットが０であれば量子化代表値R1(m)は除算結果値D(m)/Q2(m)の最近傍の偶数R2(m)に変更され、挿入するデータビットが１であれば量子化代表値R1(m)は除算結果値D(m)/Q2(m)の最近傍の奇数R2(m)に変更される。復号側では、量子化代表値R2(m)が偶数（すなわち最下位ビットが０）であればデータビット０が挿入されており、量子化代表値R2(m)が奇数（すなわち最下位ビットが１）であればデータビット０が挿入されていることを識別できる。
【００６２】
ところで、Q1(m)=Q2(m)とすると、R1(m)からR2(m)への量子化代表値への変更にともなう量子化誤差は、第１の量子化ステップQ1(m)による量子化の際に生じる誤差（量子化誤差）よりも大きくなり、画質劣化の原因となりうる。
【００６３】
そこで本実施形態ではさらに、データ埋め込みによる量子化代表値の変更にともなう画質劣化を、第１の量子化ステップQ1(m)による量子化の量子化誤差の範囲内に収めるため、第２の量子化ステップQ2(m)を、第１の量子化ステップQ1(m)の1/2以下とする。
【００６４】
すなわち、
【００６５】
【数３】
2007221389.tif 000005
【００６６】
を満足するよう第２の量子化ステップQ2(m)を予め設定しておく。
【００６７】
こうすると、第２の量子化ステップQ2(m)による量子化の量子化誤差は、第１の量子化ステップQ1(m)による量子化の量子化誤差と同一か、あるいはそれ未満となり、データビット挿入による画像劣化を発生しにくくすることができる。
【００６８】
人間の知覚特性を表すＣＳＦ（Contrast Sensitivity Function）を元に決定された、最良のQ2(m)の値は、
【００６９】
【数４】
2007221389.tif 000006
【００７０】
である。
【００７１】
ただし、数３や数４のように、量子化ステップQ2(m)がQ1(m)よりも小さい値だと、高周波数側における変更後の量子化代表値R2(m)が０でない値となる確率が高まり、第１の量子化ステップQ1(m)による量子化に比して新たなＥＯＢまででゼロランレングスが発生する確率が落ちたり、ゼロランレングスが短くなる。このため、符号化の効率が低下してＪＰＥＧファイルが長大化する。
【００７２】
このため、本実施形態では、第２の量子化ステップQ2(m)を、低周波数側から高周波数側にかけてジグザグ順に順次増大させるようにする。
【００７３】
一例として、量子化ステップQ2(m)を、
【００７４】
【数５】
2007221389.tif 000007
【００７５】
とし、Q1(m)を小さくする分母を７1/2から2へ順次変化させる。あるいは、
【００７６】
【数６】
2007221389.tif 000008
【００７７】
とし、Q1(m)を小さくする分母を７1/2から1へ順次変化させてもよい。
あるいは、k<Ｙとなる定数kを予め設定しておき、
【００７８】
【数７】
2007221389.tif 000009
【００７９】
とし、mがZとkとの間はQ1(m)を小さくする分母を７1/2から1へ順次変化させ、mがk+1とYとの間はQ1(m)を小さくする分母を1（すなわちQ2(m)はQ1(m)と同じ値）にしてもよい。
【００８０】
元々、低周波数側から高周波数側の係数位置にかけて、徐々に０の量子化代表値が発生する確率が高くなるよう第１の量子化ステップQ1(m)は設定されている。これに関連させて、第１の量子化ステップQ1(m)に数５〜７のような「mの単調増加関数」を乗じた値を第２の量子化ステップQ2(m)とし、Q2(m)の値をジグザグ順に増大させる。こうすると、第２の量子化ステップQ2(m)による量子化により高周波数側での量子化代表値R2(m)が量子化代表値R1(m)に比して０以外の値となる確率が低くなり、データ挿入にともなってゼロランレングスが短くなりＪＰＥＧファイルが長大化するのを可及的に防げる。
【００８１】
さて、上述のように、量子化代表値R2(m)が偶数であれば、その最下位ビットは０である。復号側からすると、新たなＥＯＢの量子化代表値「０」と最も高い周波数側の係数位置の挿入ビット「０」との区別がつかなければならない。
【００８２】
このため、本来のＥＯＢのＤＣＴ係数D(X)の除算結果値D(X)/Q1(X)の量子化代表値R1(X)を、データ終了マーカーとして、−１または１のうち除算結果値D(X)/Q1(X)に最も近い方の値R2(X)に変更する。データ終了マーカーは、新たなＥＯＢよりも１つ分低周波数側の係数位置にあるから、復号側は、低周波数側から順次ＤＣＴ係数を復号化する際にデータ終了マーカーを検出することで、挿入ビット「０」とＥＯＢ（End of Block）以下のゼロ量子化代表値列とを区別できる。
【００８３】
なお、本来のＥＯＢの量子化代表値が終了マーカーに変更されることで、新たなＥＯＢは本来のＥＯＢよりも１つ分高周波数側の係数位置に繰り上がるが、従来技術のようにＥＯＢ自体が消滅してしまうのではなく、たかだか１係数位置ずれるだけであるため、ゼロランレングスの減少による符号化効率の低下、符号量の増加は大きくない。
【００８４】
また、本来のＥＯＢの量子化代表値が０から−１または１に変わることで、画質が劣化することも考えられる。このため、Q2(X)<Q1(X)を本来のＥＯＢのＤＣＴ係数D(X)の量子化ステップに変更し、量子化代表値R1(X)を、−１または１のうち除算結果値D(X)/Q2(X)に最も近い方の値R2(X)に変更すれば、その分、本来のＥＯＢを終了マーカーに変更することによる誤差が小さくなり、画質への影響も小さくなる。
【００８５】
これは、復号側において終了マーカーから本来のＥＯＢのＤＣＴ係数が、
データ終了マーカー×Q2(X)
によって逆量子化されるが、Q2(X)が小さければ小さいほど、本来のＥＯＢのＤＣＴ係数＝０に近づくからである。
【００８６】
特に、Q2(X)≦Q1(X)/2とすれば、量子化代表値R1(X)をデータ終了マーカーに変更することによる誤差は、第１の量子化ステップQ1(X)による量子化の量子化誤差と同じかそれ未満となる。
【００８７】
さて、本実施形態のデータ挿入部１５は、Ｙ成分のＤＣＴ係数に対してデータ挿入を開始するZ番目の係数位置（開始位置）を、Ｃｂ、Ｃｒ成分のＥＯＢの係数位置に応じて決定する。
【００８８】
具体的には、データ挿入部１５は、ＣｂデータのＥＯＢの係数位置に相当するＹデータのＤＣＴ係数の位置か、ＣｒデータのＥＯＢの係数位置に対応するＹデータのＤＣＴ係数の位置のうち、高周波数の方の係数位置を開始位置に決定する。
【００８９】
図４は、４：１：１フォーマットの画像データにおける、ＣｂデータのＥＯＢ、ＣｒデータのＥＯＢおよびＹデータの開始位置の関係を示す。４：１：１フォーマットの画像データでは、１つの最小符号化単位（ＭＣＵ）において、色差信号Ｃｂ、Ｃｒの１ブロックが輝度信号Ｙの４ブロックに相当する。色差信号のＥＯＢの係数位置を、水平方向の周波数成分の位置ｘおよび垂直方向の周波数成分の位置ｙによって、
色差信号ＣｂのＥＯＢ＝(X1,Y1)
色差信号ＣｒのＥＯＢ＝(X2,Y2)
と表したとする。
【００９０】
説明の簡略のため、例えば、色差信号ＣｂのＥＯＢの位置よりも色差信号ＣｒのＥＯＢの位置の方が高周波数側であるとすると(X1<X2,Y1<Y2)、色差信号のＥＯＢの位置に相当する輝度信号の開始位置は、（X2/2，Y2/2）となる。
【００９１】
図５は、４：２：２フォーマットの画像データにおける、ＣｂデータのＥＯＢ、ＣｒデータのＥＯＢおよびＹデータ開始位置の関係を示す。４：２：２フォーマット（色差データの間引き方向は水平方向とする）の画像データでは、１つの最小符号化単位（ＭＣＵ）において、色差信号Ｃｂ、Ｃｒの２ブロックが輝度信号Ｙの４ブロックに相当する。色差信号のＥＯＢの位置を、水平方向の周波数成分の位置（ブロック数）ｘおよび垂直方向の周波数成分の位置ｙ（ブロック数）によって、
色差信号ＣｂのＥＯＢ＝(X1,Y1)
色差信号ＣｒのＥＯＢ＝(X2,Y2)
と表したとする。
【００９２】
色差信号ＣｂのＥＯＢよりも色差信号ＣｒのＥＯＢの方が高周波数側であるとすると(X1<X2,Y1<Y2)、色差信号のＥＯＢに相当する開始位置の位置は、（X2/2，Y2）となる。
【００９３】
データ挿入部１５は、Ｙ成分のＤＣＴ係数にデータを挿入し、かつ色差信号Ｃｂと色差信号Ｃｒの双方にデータを挿入する場合、Ｙ成分のＤＣＴ係数に関して、上述のように開始位置を決定し、開始位置からデータを挿入する。
【００９４】
なお、データ挿入部１５は、Ｙ成分のＤＣＴ係数にデータを挿入し、かつ色差信号Ｃｂのみにデータを挿入する場合は、色差信号ＣｒのＥＯＢ＝(0,0)として開始位置を決定し、開始位置からデータを挿入する。同様に、データ挿入部１５は、Ｙ成分のＤＣＴ係数にデータを挿入し、かつ色差信号Ｃｒのみにデータを挿入する場合は、色差信号ＣｂのＥＯＢ＝(0,0)として開始位置を決定し、開始位置からデータを挿入する。これは、データ挿入を行わない方の色差成分の雑音電力を開始位置の決定の際に考慮する必要がないからである。
【００９５】
また、データ挿入部１５は、あるＭＣＵの輝度信号に関して決定された開始位置が、本来のＥＯＢの位置と同じかそれよりも高周波数側であれば、データ挿入を行わない。こうすれば、本来のＥＯＢの位置以降の位置にデータが埋め込まれてＥＯＢが高周波数側に移動しゼロランレングスが発生する確率が低くなり符号化効率が低下することもない。
【００９６】
また、データ挿入部１５は、あるＭＣＵの輝度信号に関して決定された開始位置が、終了位置よりも高周波数側に存在する場合、そのＭＣＵの輝度信号にはデータ挿入を行わない。
【００９７】
このように開始位置を決定した上でデータ挿入を行う効果は、次のとおりである。
【００９８】
エントロピー符号化１４によって符号化されるべき本来の輝度Y、色差CbおよびCrに、データ挿入部１５がデータを挿入することにより、輝度Y、色差CbおよびCrにそれぞれ雑音成分ey、pecr、qecbが加わり、Y’, Cr’, Cb’に変化したとする（ｐ、ｑは定数）。
【００９９】
すなわち、
Y’=Y+ey
Cr’=Cr+p・ecr
Cb’=Cb+p・ecb
とする。
【０１００】
このとき、不図示の復号化装置側でデコードされる色情報R’、G’、B’は以下のようになる。
【０１０１】
R’=Y’+Cr’/p=Y+R-Y+ey+ecr=R+ey+ecr
G’=Y’-(a/p・Cr’+c/q・Cb’)/b=Y-(a/p・Cr+c/q・Cb)/b+ey-(a・ecr+c・ecb)/b=G+ey-(a・ecr+c・ecb)/b
B’=Y’+Cb’/q=Y+B-Y+ey+ecr=B+ey+ecb
【０１０２】
人間の視覚特性に近い色空間の一つ、ＨＳＶを使うと、明度（明るさ）はＲＧＢのうち最も大きいものである。上記Ｒ’Ｇ’Ｂ’の中で最も大きいものを明度とし、データ挿入されたＤＣＴ係数の周波数に応じて変化する雑音成分を、輝度によるeyと色差によるec（ecr、ecbまたは-(aecr+c ecbb)/b）を使ってey+ecと表すことにする。このとき、eyとecとが互いに無相関だとすると、雑音電力はE[ey２]+E[ec２]である。
【０１０３】
図６に示すように、雑音電力が突出するＤＣＴ係数の周波数が輝度Ｙと色差Ｃで重なっていると、輝度Ｙと色差Ｃの合計の雑音電力が、画質劣化を検知されない雑音電力の範囲Ｚを超えてしまう場合がある。
【０１０４】
ある周波数で突出している雑音電力を合わせても雑音電力の許容範囲に収めるために、データを挿入すべき輝度、色差のＤＣＴ係数の量子化幅を小さくすることも考えられる。しかし、ＪＰＥＧやＭＰＥＧ等の圧縮規格上小さくするにも限界があるし、ファイルサイズ増大を招く弊害も大きい。
【０１０５】
このため、図７に示すように、本実施形態では、色差成分のＥＯＢに相当する輝度成分のＤＣＴ係数からデータ埋め込みをすることによって、雑音電力が突出する周波数が輝度と色差で重ならず、輝度Ｙと色差Ｃで合算した雑音電力Ｓを、画質劣化を検知されない雑音電力Ｚの範囲内に収めることができる。
【図面の簡単な説明】
【０１０６】
【図１】画像圧縮符号化装置のブロック図
【図２】ＪＰＥＧデータ量子化におけるデータ挿入の概念説明図
【図３】量子化代表値の最下位１ビット変更によるデータ挿入の概念説明図
【図４】色差ＥＯＢに相当する輝度ＤＣＴ係数位置（４：１：１）の一例を示す図
【図５】色差ＥＯＢに相当する輝度ＤＣＴ係数位置（４：２：２）の一例を示す図
【図６】輝度雑音レベルと色差雑音レベルの合計が雑音電力の許容範囲を超える状態を示す図
【図７】色差ＥＯＢに相当する位置の輝度ＤＣＴ係数からデータが挿入されることでＥＯＢ輝度雑音レベルと色差雑音レベルの合計が雑音電力の許容範囲内に収まる状態を概念的に示す図
【符号の説明】
【０１０７】
１０：画像信号出力部、１１：画像データ作成部、１２：ＤＣＴ処理部、１３：量子化部、１４：エントロピー符号化部、１５：データ挿入部
【図１】
2007221389.tif 000010
【図２】
2007221389.tif 000011
【図３】
2007221389.tif 000012
【図４】
2007221389.tif 000013
【図５】
2007221389.tif 000014
【図６】
2007221389.tif 000015
【図７】
2007221389.tif 000016