(57)【要約】【課題】小さな遅延で信号を変更することができる符号化データの変更装置等を得るものである。【解決手段】入力された、複数の符号化単位で構成される符号化データを記憶する演算バッファ１１０と、演算バッファ１１０に記憶された符号化データを復号する復号回路１３０と、復号されたデータの最初の符号化単位を変更し、この変更に応じて復号された後続する符号化単位を変更する変更回路１４０と、変更されたデータを再符号化する符号化回路１５０と、前記変更が前記バッファ内のデータに閉じているかどうかを判定する演算回路１６０と、演算回路１６０の判定結果に基づき、前記変更が前記バッファ内のデータに閉じている場合には、演算バッファ１１０に記憶された符号化データを、変更回路１４０によって変更され、符号化回路１５０によって再符号化されたデータで書き換える書込制御回路１８０とを設けた。【選択図】図１
2006303580.tif 000002
【特許請求の範囲】
【請求項１】
入力された、複数の符号化単位で構成される符号化データを記憶するバッファと、
前記バッファに記憶された符号化データを復号する復号回路と、
復号されたデータの最初の符号化単位を変更し、この変更に応じて復号された後続する符号化単位を変更する変更回路と、
変更されたデータを再符号化する符号化回路と、
前記変更が前記バッファ内のデータに閉じているかどうかを判定する第１の演算回路と、
前記第１の演算回路の判定結果に基づき、前記変更が前記バッファ内のデータに閉じている場合には、前記バッファに記憶された符号化データを、前記変更回路によって変更され、前記符号化回路によって再符号化されたデータで書き換える書込制御回路と
を備えたことを特徴とする符号化データの変更装置。
【請求項２】
前記符号化回路によって再符号化された符号化データの符号長が一定値を超えるかどうかを判定する第２の演算回路をさらに備え、
前記書込制御回路は、前記第１の演算回路の判定結果に基づき、前記変更が前記バッファ内のデータに閉じていて、かつ、前記第２の演算回路の判定結果に基づき、前記再符号化された符号化データの符号長が一定値を超えていない場合には、前記バッファに記憶された符号化データを、前記変更回路によって変更され、前記符号化回路によって再符号化されたデータで書き換える
ことを特徴とする請求項１記載の符号化データの変更装置。
【請求項３】
入力された、複数の符号化単位で構成される符号化データをバッファに記憶する記憶ステップと、
前記バッファに記憶されたデータの最初の符号化単位を変更し、この変更に応じて復号された後続する符号化単位を変更する変更ステップと、
変更されたデータを再符号化する符号化ステップと、
前記変更が前記バッファ内のデータに閉じているかどうかを判定する第１の判定ステップと、
前記第１の判定ステップの判定結果に基づき、前記変更が前記バッファ内のデータに閉じている場合には、前記バッファに記憶された符号化データを、前記変更され、再符号化されたデータで書き換える書換ステップと
を含むことを特徴とする符号化データの変更方法。
【請求項４】
再符号化された符号化データの符号長が一定値を超えるかどうかを判定する第２の判定ステップをさらに含み、
前記書換ステップは、前記第１の判定ステップの判定結果に基づき、前記変更が前記バッファ内のデータに閉じていて、かつ、前記第２の判定ステップの判定結果に基づき、前記再符号化された符号化データの符号長が一定値を超えていない場合には、前記バッファに記憶された符号化データを、前記変更され、再符号化されたデータで書き換える
ことを特徴とする請求項３記載の符号化データの変更方法。
【請求項５】
コンピュータに、
入力された、複数の符号化単位で構成される符号化データをバッファに記憶する記憶手順と、
前記バッファに記憶されたデータの最初の符号化単位を変更し、この変更に応じて復号された後続する符号化単位を変更する変更手順と、
変更されたデータを再符号化する符号化手順と、
前記変更が前記バッファ内のデータに閉じているかどうかを判定する第１の判定手順と、
前記第１の判定手順の判定結果に基づき、前記変更が前記バッファ内のデータに閉じている場合には、前記バッファに記憶された符号化データを、前記変更され、再符号化されたデータで書き換える書換手順と
を実行させるための符号化データの変更プログラム。
【請求項６】
再符号化された符号化データの符号長が一定値を超えるかどうかを判定する第２の判定手順と、
前記第１の判定手順の判定結果に基づき、前記変更が前記バッファ内のデータに閉じていて、かつ、前記第２の判定手順の判定結果に基づき、前記再符号化された符号化データの符号長が一定値を超えていない場合には、前記バッファに記憶された符号化データを、前記変更され、再符号化されたデータで書き換える前記書換手順と
をさらに実行させるための請求項５記載の符号化データの変更プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＭＰＥＧなどで符号化された画像データに、その画像データを復号することなく電子透かしを埋め込む場合に、所定の遅延内にデータの変更が可能かどうかを判定する手段を設け、小さな遅延で電子透かしの埋め込みができる符号化データの変更装置、変更方法及び変更プログラムに関するものである。
【背景技術】
【０００２】
既に符号化されたデータを変更する必要性は、近年、映像信号のネットワーク配信などで、コンテンツにユニークなコードを付加することによって、不正なコピーを抑止するなどの要求を背景として生じている。このとき、映像信号自体を一定の規則で変更して全てのコンテンツを異なる形態にすることはフィンガープリンティングや電子透かしなどと呼ばれ、単にヘッダ部分に情報を書き込む技術と比べて安全性が高い。コンテンツの配信途中でこのような処理を行う場合、符号化データをできるだけ復号することなく、目的の変更を加える技術が望まれる。このとき、一定速度で通信される符号化データでは、復号バッファがオーバーフローすることがあるため、変更後の符号量を増加させてはいけない。
【０００３】
符号量の増加を防ぐ技術として、従来、幾つかの方法がある。例えば、符号量が増加する場合には変更しないという方法（例えば、非特許文献１参照）が開示されている。また、一度変更した後で、符号量の増加がなくなるまでＤＣＴ係数の絶対値を下げていくという方法（例えば、非特許文献２参照）が開示されている。
【０００４】
【非特許文献１】F. Hartung and B. Girod, “Digital Watermarking of MPEG-2 Coded Video in the Bitstream Domain,”Proceedings of International Conference on Image Processing, 1997.
【非特許文献２】A. M. Allattar, E. T. Lin, and M. U. Celik, “Digital Watermarking of Low Bit-Rate Advanced Simple Profile MPEG-4 Compressed Video,”IEEE Transactions on Circuits and Systems for Video Technology, vol. 13, no. 8, pp. 787-800, August 2003.
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の方法は、信号の変更に伴って符号量が増加するかどうかを検知し、それが増加する場合には、その変更を禁止するか他の情報を削減して、最終的に符号量の増加がないようにしている。しかし、符号化データは可変長符号化されているので、一つの信号の変更が符号化データのどこまで影響するかは一様でない。そのため、考えられる最大の範囲を記憶できるメモリを持つ必要があり、信号が大きく遅延するという問題点があった。
【０００６】
この発明は、上述のような課題を解決するためになされたもので、その目的は、信号の変更がメモリに記憶されているデータの範囲に閉じているかどうかを検出する手段を設け、これが閉じていて、符号量が一定以上に増加しない場合に限り、信号の変更を許可することにより、小さな遅延で信号を変更することができる符号化データの変更装置、変更方法及び変更プログラムを得るものである。
【課題を解決するための手段】
【０００７】
この発明に係る符号化データの変更装置は、入力された、複数の符号化単位で構成される符号化データを記憶するバッファと、前記バッファに記憶された符号化データを復号する復号回路と、復号されたデータの最初の符号化単位を変更し、この変更に応じて復号された後続する符号化単位を変更する変更回路と、変更されたデータを再符号化する符号化回路と、前記変更が前記バッファ内のデータに閉じているかどうかを判定する第１の演算回路と、前記第１の演算回路の判定結果に基づき、前記変更が前記バッファ内のデータに閉じている場合には、前記バッファに記憶された符号化データを、前記変更回路によって変更され、前記符号化回路によって再符号化されたデータで書き換える書込制御回路とを設けたものである。
【発明の効果】
【０００８】
この発明に係る符号化データの変更装置は、小さな遅延で信号を変更することができるという効果を奏する。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
この発明の実施の形態１に係る符号化データの変更装置について図１から図４までを参照しながら説明する。図１は、この発明の実施の形態１に係る符号化データの変更装置の構成を示すブロック図である。なお、各図中、同一符号は同一又は相当部分を示す。
【００１０】
図１において、この実施の形態１に係る符号化データの変更装置は、入力端子１に接続され、入力符号化データを蓄積する入力バッファ１００と、これに接続された演算バッファ１１０と、演算バッファ１１０及び出力端子２に接続された出力バッファ１２０と、演算バッファ１１０に接続された復号回路１３０と、これに接続された変更回路１４０と、これに接続された符号化回路１５０と、これに接続された演算回路１６０と、符号化回路１５０に接続された演算回路１７０と、符号化回路１５０、演算回路１６０及び演算回路１７０に接続された書込制御回路１８０とが設けられている。
【００１１】
つぎに、この実施の形態１に係る符号化データの変更装置の動作について図面を参照しながら説明する。
【００１２】
図２は、この発明の実施の形態１に係る符号化データの変更装置に入力される符号化データの構成を示す図である。図３は、この発明の実施の形態１に係る符号化データの変更装置の動作を説明するための図である。
【００１３】
図１に示す符号化データの変更装置の入力端子１に与えられる入力符号化データは、図２に示すように、複数の符号化単位で構成されている。この符号化単位をＣ１、Ｃ２、・・・などで表した。この符号化単位は、例えば、ＭＰＥＧ（Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅｓ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ）におけるマクロブロックである。この符号化単位の長さは、互いに異なっていてもよい。図２では、説明の簡単のため、符号化単位の間に存在するヘッダなどの情報は省略している。
【００１４】
入力符号化データは、入力バッファ１００を介して、演算バッファ１１０に転送される。入力バッファ１００は、一定速度で通信されている符号化データを一時的に蓄えておくバッファである。この入力バッファ１００の内容は符号化単位に同期して、次のように演算バッファ１１０に転送される。すなわち、入力符号化データのＮ番目の符号化単位の最初のビットが入力バッファ１００に到着する時刻をｔＮとするとき、時刻ｔＮからｔＮ＋Ｔまでに入力バッファ１００に蓄えられた信号が、時刻ｔＮ＋Ｔに演算バッファ１１０に転送される。ただし、Ｔは定数である。演算バッファ１１０は、転送された信号から必要な部分だけを選択して変更処理のために保持する。
【００１５】
演算バッファ１１０の内容は、復号回路１３０によって復号され、変更回路１４０によって変更される。ここで、変更回路１４０による変更は、入力端子１４１からの情報に基づき、例えば、ＭＰＥＧで符号化されたＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）係数の量子化値を１だけ増加させたり、または減少させたりすることである。このような変更の目的は、例えば、電子透かしなどによって、ビデオストリームに特定の情報を付与することである。図１では、この場合を想定して、変更回路１４０に情報の入力端子１４１が図示されている。復号回路１３０は、符号化データを全て復号する必要はなく、変更回路１４０が動作できる程度に復号すればよい。例えば、上記の例では、ＤＣＴ係数の量子化値まで復号すればよく、それを逆ＤＣＴ変換するなどの処理は必要ない。
【００１６】
変更回路１４０で変更された信号は、符号化回路１５０で再び符号化され、書込制御回路１８０を経由して演算バッファ１１０に転送される。このとき、演算バッファ１１０の内容は、新しい信号で書き換えられる。書込制御回路１８０は、この更新を許可するかどうかを一定の規則にしたがって制御し、次の２つの条件が満たされる場合にだけ符号化データの変更を有効にする。
【００１７】
第１の条件は、符号化データの変更が演算バッファ１１０に記憶された信号内に閉じていることである。一般に、符号化データの一部の信号を変化させると、データの合法性を保つためその後の信号をそれに合わせて変更しなければならない。符号化回路１５０は、信号を再符号化することによってデータの合法性を保とうとするが、変更回路１４０における変更が演算バッファ１１０に記憶された信号の範囲外に及ぶ場合は、完全な符号化データを出力することができない。演算回路１６０は、これを検知し、符号化データの変化が演算バッファ１１０の範囲外に及ぶ場合に、演算バッファ１１０の書き換えを禁止する信号を書込制御回路１８０に与える。
【００１８】
第２の条件は、符号化データのオーバーフローが生じないことである。図１の変更装置が一定速度で通信されている回線に挿入される場合には、符号化データの変更はその通信速度を変えてはいけない。また、そうでない場合にも、一定の値を超えて符号化データの容量が増加することは望ましくない。演算回路１７０は、符号化回路１５０で再符号化された符号化データの符号長を監視し、これが一定値を超える場合には、演算バッファ１１０の書き換えを禁止する信号を書込制御回路１８０に与える。
【００１９】
図３は、入力として図２の符号化データが与えられたときの図１の変更装置の動作を具体的に説明する図である。以下、この符号化データはＭＰＥＧ−２のビデオエレメンタリーストリームとし、符号化単位Ｃｉはマクロブロックとする。また、演算バッファ１１０の容量は十分大きいとする。
【００２０】
まず、時刻ｔ１＋Ｔにおいて、マクロブロックＣ１、Ｃ２とＣ３の一部が入力バッファ１００から演算バッファ１１０に転送される。ここで、変更はマクロブロックＣ１の一つのＤＣＴ係数に対して行われる。ＭＰＥＧ−２では、特別の場合を除いて、この変更はマクロブロックＣ１とＣ２に閉じている。この変更によって、マクロブロックＣ１、Ｃ２はそれぞれＣ１’、Ｃ２’に変更されるが、この変更は演算バッファ１１０内に閉じている。従って、第１の条件を満足する。また、マクロブロックＣ１’とＣ２’の符号長の合計はＣ１とＣ２よりも小さく、第２の条件を満足するとすれば、マクロブロックＣ１に対する変更は有効とされ、演算バッファ１１０のマクロブロックＣ１とＣ２はＣ１’とＣ２’に書き換えられる。マクロブロックＣ１’は即座に出力バッファ１２０に転送される。出力バッファ１２０に書き込まれたマクロブロックＣ１’は時間Ｓの遅延の後に一定速度で読み出され、変更された符号化データとして出力される。時間Ｓは、符号化データが小さくなる場合にバッファのアンダーフローを防止するために導入された遅延である。
【００２１】
ここで、符号化データを変更する処理速度が、符号化データの通信速度に比べて十分早いとすれば、演算バッファ１１０を書き換えるのに要する時間は無視することができ、入力符号化データが入力バッファ１００に到着してから変更された符号化データが出力バッファ１２０から読み出されるまでの遅延時間はＴ＋Ｓである。
【００２２】
図３に戻って、次に、時刻ｔ２＋Ｔにおいて、マクロブロックＣ２、Ｃ３とＣ４の一部が入力バッファ１００から演算バッファ１１０に転送される。ここで、マクロブロックＣ２はすでにＣ２’に変更されているので、演算バッファ１１０のこの部分は書き換えられない。その結果、演算バッファ１１０にはＣ２’、Ｃ３とＣ４の一部が記憶される。ここで、新たな変更がマクロブロックＣ２’に加えられ、これに伴ってマクロブロックＣ２’とＣ３はそれぞれＣ２”、Ｃ３’に変更される。
【００２３】
ここで、マクロブロックＣ２”、Ｃ３’の符号長の合計はＣ２’とＣ３よりも大きいが、その差は規定の範囲内であるので、演算バッファ１１０の内容はマクロブロックＣ２”、Ｃ３’となり、Ｃ２”は出力バッファ１２０に転送される。
【００２４】
時刻ｔ３＋Ｔでは、同様にマクロブロックＣ３とＣ４の一部が入力バッファ１００から演算バッファ１１０に転送され、演算バッファ１１０はマクロブロックＣ３’とＣ４の一部を保持する。ここで、マクロブロックＣ３’に対して変更が行われるが、この変更がＣ４に影響する場合は、符号化データの変更が演算バッファ１１０のデータに閉じていない。したがって、この変更は有効でない。しかし、この変更がマクロブロックＣ３’に閉じている場合はこの変更は有効である。図３は後者の場合を示しており、演算バッファ１１０の内容はＣ３”に書き換えられ、これは即座に出力バッファ１２０に転送されている。
【００２５】
ここで、さらに、上記の符号化データを例として、符号長の制御の方法を説明する。今、Ｎ番目のマクロブロックを変更する場合を考える。入力ストリームにおけるこのマクロブロックの符号長をＬ（Ｎ）とし、このマクロブロックのＤＣＴ係数を変更した後の対応する符号長をＬＷ（Ｎ）とすれば、この変更によって生じる符号長の差は、次の式（１）で与えられる。
【００２６】
Ｄ（Ｎ）＝Ｌ（Ｎ）−ＬＷ（Ｎ）                                式（１）
【００２７】
先に述べたように、ＭＰＥＧ−２のビデオストリームでは、ＤＣＴ係数の変更は、そのＤＣＴ係数を含むマクロブロックと次の「符号化された」マクロブロックに閉じている。ここで、「符号化された」という言葉は、ＭＰＥＧ−２では、いかなる情報も明示的に伝送されないマクロブロックが存在するので、そのようなマクロブロックは含めないことを意味する。
【００２８】
Ｎ番目のマクロブロックの次の符号化されたマクロブロックがＮ＋Ｍ番目であるとすると、このマクロブロックの変更によって生じる符号長の差は、次の式（２）で与えられるから、結局、このＤＣＴ係数の変更によって、次の式（３）で与えられる符号長の差が生じることになる。
【００２９】
Ｄ（Ｎ＋Ｍ）＝Ｌ（Ｎ＋Ｍ）−ＬＷ（Ｎ＋Ｍ）                    式（２）
【００３０】
Ｄ（Ｎ）＋Ｄ（Ｎ＋Ｍ）＝Ｌ（Ｎ）＋Ｌ（Ｎ＋Ｍ）−ＬＷ（Ｎ）−ＬＷ（Ｎ＋Ｍ）
式（３）
【００３１】
ここで、次の式（４）で与えられるＢ（Ｎ）を定義する。
【００３２】
Ｂ（Ｎ）＝Ｄ（１）＋Ｄ（２）＋・・・＋Ｄ（Ｎ）                式（４）
【００３３】
Ｂ（Ｎ）は、Ｎ番目のマクロブロックまでの符号長の差を積算したものである。このとき、この変更によってストリームのオーバーフローもアンダーフローも生じない一つの十分条件は次の式（５）で与えられる。
【００３４】
Ｓ≧Ｂ（Ｎ−１）＋Ｄ（Ｎ）＋Ｄ（Ｎ＋Ｍ）≧０                  式（５）
【００３５】
演算回路１７０は、符号化回路１５０から出力されるストリームが式（５）を満たすかどうかを判定し、この結果に基づいて書込制御回路１８０を制御すればよい。
【００３６】
式（５）において、Ｂ（Ｎ）は常に０からＳの間を変動しているが、ストリームの一定周期ごとにＢ（Ｎ）を０にリセットしてもよい。ＭＰＥＧ−２のストリームでは、マクロブロックが集まってスライスを構成し、スライスが集まってピクチャを構成している。ピクチャは動画像の一つのフレームに相当する。このとき、例えば、ピクチャの開始時において、Ｎ＝０とし、Ｂ（０）＝０にリセットする。ここで、前のピクチャにおける最後のＢ（Ｎ）が０でない場合は、Ｂ（Ｎ）に相当するスタッフビットを最後に追加する。このようにすれば、変更されたストリームにおいて、ピクチャの長さは常に入力ストリームと等しくすることができる。
【００３７】
また、以上の説明では、符号化単位の変更は一箇所だけとし、この変更が有効か無効かを判定したが、一つの符号化単位に対して複数の変更を行ってもよい。その場合には、個々の変更について有効か無効かを判定し、有効な場合には演算バッファ１１０を書き換え、無効な場合は書き換えない処理を繰り返し行えばよい。演算バッファ１１０から出力バッファ１２０への符号化単位の転送は、全ての変更が終了した時点で実行される。
【００３８】
図４は、この発明の実施の形態１に係る符号化データの変更プログラムを示すフローチャートである。
【００３９】
ステップ４００において、入力符号化データを、入力バッファ１００を介して、演算バッファ１１０に読み出す。ステップ４０１において、読み出した符号化データを復号する。ステップ４０２において、復号されたデータを上述したように変更する。ステップ４０３において、変更されたデータを符号化する。ステップ４０４において、この変更が読み出したデータ内に閉じているかどうかを判定する。ステップ４０５において、この変更により符号化データのオーバーフローが生じないかどうかを判定する。ステップ４０６において、上記の２つの条件が満たされた場合には符号化データを書き換える。そして、ステップ４０７において、処理すべきデータが終了したかどうかを判定し、終了していなければステップ４００に戻り上記各ステップを繰り返す。
【００４０】
この符号化データの変更プログラムは、上記の変更装置の動作と同様である。すなわち、読み出しステップ４００で読み出した符号化データを復号、変更、符号化し、その結果が判定ステップ４０４と４０５の条件を満たす場合に限り、書き換えステップ４０６によって、入力符号化データを変更したデータに書き換える。
【００４１】
以上のように、この発明によれば、符号化データの変更がその時点で得られているデータの範囲に閉じているかどうかを判定し、閉じている場合で、符号量の変化が一定の条件を満たす場合に限ってその変更を有効とするようにしたので、小さな遅延で符号化データの変更が行える効果がある。なお、閉じている場合だけ（第１の条件が満たされる場合にだけ）で、その変更を有効とするようにしてもよい。
【図面の簡単な説明】
【００４２】
【図１】この発明の実施の形態１に係る符号化データの変更装置の構成を示すブロック図である。
【図２】この発明の実施の形態１に係る符号化データの変更装置に入力される符号化データの構成を示す図である。
【図３】この発明の実施の形態１に係る符号化データの変更装置の動作を説明するための図である。
【図４】図４は、この発明の実施の形態１に係る符号化データの変更プログラムを示すフローチャートである。
【符号の説明】
【００４３】
１  入力端子、２  出力端子、１００  入力バッファ、１１０  演算バッファ、１２０  出力バッファ、１３０  復号回路、１４０  変更回路、１４１  入力端子、１５０  符号化回路、１６０  演算回路、１７０  演算回路、１８０  書込制御回路。
【図１】
2006303580.tif 000003
【図２】
2006303580.tif 000004
【図３】
2006303580.tif 000005
【図４】
2006303580.tif 000006