(57)【要約】【課題】  ビットストリームの変更方法及び装置を提供する。【解決手段】  ビットストリームは情報信号を表すデジタルコードを含む。少なくとも１つのデジタルコードを選択する。このコードは、情報信号内で視認可能な透かし模様を表す少なくとも１つの透かし模様コードが含まれるビットストリームの一部を占有する。選択されたデジタルコードはビットストリームの該当部分から取り出される。透かし模様コードは選択されたコードの代わりに該ビットストリームの一部に配置される。該当部分から取り外した選択されたコードのビット数は該当部分に挿入される透かし模様コードのビット数に等しいか大きい。取り外された選択コードはビットストリームの最後に添付されか、又はビットストリーム内に生成される透かし模様ユーザデータフィールドに置かれる。
2005517362.tif 000002
【特許請求の範囲】
【請求項１】
情報を表すデジタルコードを含むビットストリームの変更方法において、
前記情報の変更を表す少なくとも１つの変更コードが含まれる前記ビットストリームの一部分を占める少なくとも１つのデジタルコードを選択するステップと、
前記ビットストリームの該一部分から、前記選択されたデジタルコードを取り外すステップと、
前記選択されたコードの代わりに前記少なくとも１つの変更コードを、前記ビットストリームの該一部分に代入するステップとを有し、
前記ビットストリームから取り出された前記選択されたコードのビット数は、前記ビットストリームに代入された前記変更コードのビット数に等しいか大きく、
さらに、（１）前記取り外した選択されたコードを前記ビットストリームと関連付けて格納するステップと、（２）前記取り外した選択されたコードを前記ビットストリーム内の１つ以上の取外しコードデータフィールド内に配置するステップとのうちの少なくとも一方を有するビットストリームの変更方法。
【請求項２】
前記選択され取り外されたコードを、前記取外しコードデータフィールドに再分配するステップと、
前記取り外した選択されたコードを、前記ビットストリームと関連付けて好ましい順序で格納するステップとをさらに有し、
前記好ましい順序は、１）前記取外しコードデータフィールドに格納し、２）前記取り外した選択されたコードを前記ビットストリームに関連付けて格納することを特徴とする請求項１に記載のビットストリームの変更方法。
【請求項３】
前記取り外した選択されたコードの一部分を前記ビットストリームと関連付けて格納するステップと、
前記取り外した選択されたコードの残余を、前記１つ以上の取外しコードデータフィールド内に配置するステップとをさらに有する請求項１又は２に記載のビットストリームの変更方法。
【請求項４】
前記ステップ（１）の前記取り外した選択されたコードを前記ビットストリームと関連付けて格納するステップでは、前記取り外した選択されたコードを前記ビットストリームの最後に添付させることを特徴とする請求項１乃至３のいずれか１項に記載のビットストリームの変更方法。
【請求項５】
前記ステップ（１）の前記取り外した選択されたコードを前記ビットストリームと関連付けて格納するステップでは、前記取り外した選択されたコードをファイルに格納することを特徴とする請求項１乃至３のいずれか１項に記載のビットストリームの変更方法。
【請求項６】
前記ファイルは、前記ビットストリームの最後に添付されることを特徴とする請求項５に記載のビットストリームの変更方法。
【請求項７】
前記ファイルは、前記ビットストリームのスタートエンドに添付されることを特徴とする請求項６に記載のビットストリームの変更方法。
【請求項８】
前記ファイルは、前記ビットストリームから分離されるとともに、該ビットストリームと関連付けられていることを特徴する請求項５に記載のビットストリームの変更方法。
【請求項９】
前記取り外した選択されたコードの全てを、前記ビットストリームの最後に添付させるステップをさらに有する請求項１に記載のビットストリームの変更方法。
【請求項１０】
前記取り外した選択されたコードの全てを、前記１つ以上の取外しコードデータフィールド中に配置するステップをさらに有する請求項１に記載のビットストリームの変更方法。
【請求項１１】
情報信号を圧縮して前記ビットストリームを生成するステップをさらに有し、
前記圧縮の量は、前記取り外した選択されたコードの全てが前記ビットストリーム内の取外しコードデータフィールド内に配置できるように、前記変更されるビットストリームのデータ量の予測値に基づくものであることを特徴する請求項１乃至１０のいずれか１項に記載のビットストリームの変更方法。
【請求項１２】
前記変更されたビットストリームのビットレートが元のビットストリームに対して変わらないように、前記変更されたビットストリームにパディングビットを加えるステップをさらに有する請求項１乃至１１のいずれか１項に記載のビットストリームの変更方法。
【請求項１３】
前記変更コードが含まれる前記ビットストリームの一部分又は複数の部分を定義するために、テンプレートを用いるステップをさらに有する請求項１乃至１２のいずれか１項に記載のビットストリームの変更方法。
【請求項１４】
前記情報を表す前記デジタルコードは、前記情報の変換係数を表すコードであることを特徴する請求項１乃至１３のいずれか１項に記載のビットストリームの変更方法。
【請求項１５】
前記係数は、ＤＣＴ係数であることを特徴する請求項１４に記載のビットストリームの変更方法。
【請求項１６】
前記ＤＣＴコードは、ＤＣ係数及びＡＣ係数を含み、
前記ＤＣ係数及びＡＣ係数を表すコードの全てが前記ビットストリームの該部分から取り出され、
前記ビットストリームの該部分に配置される前記変更コードは、ＤＣ係数を表すコードであることを特徴する請求項１５に記載のビットストリームの変更方法。
【請求項１７】
前記ビットストリームの同じ部分から取り出されたコードは、グループコードで識別されるグループにグループ分けられることを特徴する請求項１６に記載のビットストリームの変更方法。
【請求項１８】
前記ビットストリームの該部分は、少なくとも１つのＤＣＴブロックであることを特徴する請求項１７に記載のビットストリームの変更方法。
【請求項１９】
前記ビットストリームは、（１）ＡＣ係数を表すコードを取り除く技術及び（２）ＤＣ係数を表すコードを取り除く技術のうち少なくとも１つによって変更可能であり、
前記ＤＣコードを変更されたＤＣコードで置き換え、
前記取り外した選択されたコードを（ａ）前記ビットストリームと関連付けて格納し、及び／又は（ｂ）前記ビットストリーム内の１つ以上の取外しコードデータフィールド中に配置するものであり、
さらに、前記技術の前記ビットストリーム内のビット数に及ぼす影響を評価し、該評価に応じて前記ビットストリームの変更を実行するための１つ以上の前記技術を選択するステップを有する請求項１６、１７又は１８に記載のビットストリームの変更方法。
【請求項２０】
前記ビットストリームは、少なくともイントラエンコードされた（intra-encoded）画像を含むビデオビットストリームであり、
前記イントラエンコードされた画像上で実行されることを特徴する請求項１５乃至１９のいずれか１項に記載のビットストリームの変更方法。
【請求項２１】
前記ビットストリームは、インターエンコードされた（inter-encoded）画像を含むものであり、
前記インターエンコードされた画像上で実行されることを特徴する請求項２０に記載のビットストリームの変更方法。
【請求項２２】
前記インターエンコードされた画像は、ＤＣ係数を表すＤＣコードを含み、
さらに、前記ＤＣコードの選択されたものを取り除くステップと、
前記取り出されたものを前記ビットストリームと関連付けて格納するステップ及び／又は前記ビットストリーム内の１つ以上の取外しコードデータフィールド中に配置するステップと、
前記取り外したコードを予め定めた値の変更コードで置換するステップとを有する請求項２１に記載のビットストリームの変更方法。
【請求項２３】
前記インターエンコードされた画像内のＤＣ係数を表す前記ＤＣコードは、量子化された変更値を表し、
前記予め定めた値は、ゼロより大きい最小変更量子値を表すことを特徴する請求項２２に記載のビットストリームの変更方法。
【請求項２４】
前記予め定めた値は、正又は負数の１であることを特徴する請求項２３に記載のビットストリームの変更方法。
【請求項２５】
前記インターエンコードされた画像は動きベクトルを表すコードを含み、
さらに、前記変更コードが含まれる前記ビットストリームの部分と関連する前記動きベクトルを取り除くステップと、
原動きベクトルコードをゼロ動きベクトルを示す動きベクトル変更コードで置き換えるステップと、
前記取り外した動きベクトルコードを前記ビットストリームの最後に添付させるステップ及び／又は前記取り外したコードを前記ビットストリーム内の取外しコードデータフィールド内に配置するステップとを有する請求項２１乃至２４のいずれか１項に記載のビットストリームの変更方法。
【請求項２６】
前記変更コードが含まれる前記ビットストリームの部分と画像中で隣接するインターエンコードされた画像の部分と関連する動きベクトルを取り除くステップと、
前記関連する部分の元の動きベクトルコードをゼロ動きベクトルを示す動きベクトル変更コードで置き換えるステップと、
前記取り外した動きベクトルコードを前記ビットストリームの最後に添付させるステップ、及び／又は、前記取り外したコードを前記ビットストリーム内の取外しコードデータフィールド内に配置するステップとをさらに有する請求項２５に記載のビットストリームの変更方法。
【請求項２７】
前記変更されるイントラエンコードされた画像のブロックを定義する第１のテンプレートと、前記インターエンコードされた画像の前記第１のテンプレートのブロックに対応するブロックを定義する第２のテンプレートとを提供するステップをさらに有し、
前記インターエンコードされた画像に関連する動きベクトルは、ゼロに設定されることを特徴する請求項２５又は２６に記載のビットストリームの変更方法。
【請求項２８】
前記第２のテンプレートは、前記関連する動きベクトルがゼロに設定される前記ブロックを含むマクロブロックを定義することを特徴する請求項２７に記載のビットストリームの変更方法。
【請求項２９】
前記第２のテンプレートは、前記マクロブロックと境界を接する更なるマクロブロックを定義するものであり、
前記更なるマクロブロックに関連する動きベクトルは、ゼロに設定されることを特徴する請求項２８に記載のビットストリームの変更方法。
【請求項３０】
前記ビットストリームは、エンコーディングのタイプを示すタイプコードを持ち、フィールドタイプ又はフレームタイプとしてエンコード可能なＤＣＴブロックを備え、
さらに、フィールドタイプを示す前記タイプコードで選択されたものを取り外すステップと、
前記取り外したタイプコードをフレームタイプを示す変更タイプコードで置き換えるステップと、
前記取り外したタイプコードを前記ビットストリームと関連付けて格納する、及び／又は該取り外したタイプコードをビットストリーム内の１つ以上の取外しコードデータフィールド内に配置するステップとを有する請求項２０乃至２９のいずれか１項に記載のビットストリームの変更方法。
【請求項３１】
前記ビットストリームは、ＭＰＥＧ２ビットストリームであることを特徴する請求項１５乃至３０のいずれか１項に記載のビットストリームの変更方法。
【請求項３２】
前記変更コードが含まれる前記ビットストリームの部分を示すデータを提供するステップをさらに有する請求項１乃至３１のいずれか１項に記載のビットストリームの変更方法。
【請求項３３】
前記ビットストリームは、補助データフィールドを含み、
前記補助データフィールドから取り出されたコードのデータフィールドを識別するデータを前記ビットストリーム内に提供するステップをさらに有する請求項３１又は３２に記載のビットストリームの変更方法。
【請求項３４】
前記取り外した選択されたコードを前記ビットストリームと関連させて格納する前に暗号化し、及び／又は、該取り外した選択されたコードを前記取外しコードデータフィールド内に配置するステップをさらに有する請求項１乃至３３のいずれか１項に記載のビットストリームの変更方法。
【請求項３５】
元のビットストリームを復元するビットストリームの復元方法において、
前記元のコードが取り出され記録されたビットストリームの選択された部分に変更コードを持つ、変更されたビットストリームを受け取るステップと、
前記ビットストリームの構文解析をするステップと、
記録装置から元のコードを読み出すステップと、
前記変更コードを元のコードで置き換えるステップとを有するビットストリームの復元方法。
【請求項３６】
元のビットストリームを復元するビットストリームの復元方法において、
前記ビットストリームの選択された部分から元のコードを取り外して前記ビットストリームの変更ユーザデータ部に配置し、前記選択された部分に変更コードを持つ変更されたビットストリームを受け取るステップと、
前記ビットストリームを構文解析するステップと、
前記元のコードを格納するステップと、
前記変更コードを前記格納された元のコードで置き換えるステップとを有するビットストリームの復元方法。
【請求項３７】
元のビットストリームを復元するビットストリームの復元方法において、
前記ビットストリームの選択された部分から元のコードを取り外して、前記ビットストリームの変更ユーザデータ部に配置し、前記ビットストリームの最後に添付させ、前記選択された部分に変更コードを持つ変更されたビットストリームを受け取るステップと、
前記ビットストリームを構文解析するステップと、
前記元のコードを格納するステップと、
前記変更コードを前記格納された元のコードで置き換えるステップとを有するビットストリームの復元方法。
【請求項３８】
前記元のコードは、暗号化されており、
前記変更コードを復号化された前記元のコードで置き換える前に、前記暗号化された元のコードを復号化するステップをさらに有する請求項３６又は３７に記載のビットストリームの復元方法。
【請求項３９】
前記変更コードが含まれる前記ビットストリームの部分を定義して置換するコードを選択するためにテンプレートを使用するステップをさらに有する請求項３５、３６、３７又は３８に記載のビットストリームの復元方法。
【請求項４０】
前記変更は、前記情報信号により表される情報において視認可能な効果を生ずることを特徴する請求項１乃至３４のいずれか１項に記載のビットストリームの変更方法。
【請求項４１】
請求項１乃至３４のいずれか１項又は請求項４０に記載のビットストリームの変更方法、又は請求項３５乃至３９のいずれか１項に記載のビットストリームの復元方法を実行するように構成された装置。
【請求項４２】
適したプロセッサで実行された場合、請求項１乃至３４のいずれか１項又は請求項４０に記載のビットストリームの変更方法、又は請求項３５乃至３９のいずれか１項に記載のビットストリームの復元方法を実行するように構成されたコンピュータプログラム。
【請求項４３】
請求項４２に記載のコンピュータプログラムを記録する媒体。
【請求項４４】
当該媒体は、記録媒体であることを特徴する請求項４３に記載の媒体。
【請求項４５】
当該媒体は、通信チャンネルであることを特徴する請求項４３に記載の媒体。
【請求項４６】
ビットストリームの選択された部分から元のコードが取り出され、該ビットストリームの最後に添付されている、前記選択された部分に変更されたコードを持つ、変更されたビットストリーム。
【請求項４７】
ビットストリームの選択された部分から元のコードが取り出され、該ビットストリーム内の変更ユーザデータ部に配置され、該選択された部分に前記変更コードを持つ、変更されたビットストリーム。
【請求項４８】
ビットストリームの選択された部分から元のコードが取り出され、その一部が前記ビットストリーム内の変更ユーザデータ部に配置され、他の部分が前記ビットストリームの最後に添付され、前記選択された部分に変更コードを持つ、変更されたビットストリーム。
【請求項４９】
情報を表すデジタルコードを含むビットストリームを変更するビットストリームの変更装置において、
前記情報内で視認可能な変更を表す少なくとも１つの変更コードが含まれる前記ビットストリームの一部分を占有する少なくとも１つのデジタルコードを選択する選択ステージと、
前記ビットストリームの該一部分から前記選択されたデジタルコードを取り除く取外しステージと、
前記ビットストリームの該一部分に前記選択取り出されたコードの代わりに前記変更コードを代入する変更コード配置ステージとを備え、
前記ビットストリームから取り外した前記選択されたコードのビット数は前記ビットストリームに挿入される該変更コードのビット数に等しいか大きく、
さらに、（１）前記取り外した選択されたコードを前記ビットストリームと関連付けて格納する及び／又は（２）前記取り外した選択されたコードを前記ビットストリーム内の１つ以上の取外しコードデータフィールドに配置する取外しコード配置ステージを備えるビットストリームの変更装置。
【請求項５０】
前記取外しコード配置ステージは、前記選択され取り出されたコードを前記取外しコードデータフィールドに再分配し、前記取り外し選択されたコードを好ましい順序で前記ビットストリームと関連付けて格納するものであり、
前記好ましい順序は、（１）前記取外しコードデータフィールドに格納し、（２）前記ビットストリームと関連付けて前記取り外し選択されたコードを格納するものであることを特徴する請求項４９に記載のビットストリームの変更装置。
【請求項５１】
前記取外しコード配置ステージは、前記取り外し選択されたコードの一部分を前記ビットストリームと関連付けて格納し、前記取り外し選択されたコードの他の部分を前記１つ以上の取外しコードデータフィールドに配置することを特徴する請求項４９又は５０に記載のビットストリームの変更装置。
【請求項５２】
前記取外しコード配置ステージは、（１）前記取り外し選択されたコードを前記ビットストリームと関連付けて前記ビットストリームの最後に、前記取り外し選択されたコードを添付させることにより格納するよう構成されていることを特徴する請求項４９、５０又は５１に記載のビットストリームの変更装置。
【請求項５３】
前記取外しコード配置ステージは、（１）前記取り外し選択されたコードを前記ビットストリームと関連付けてファイルに格納するよう構成されていることを特徴する請求項４９、５０又は５１に記載のビットストリームの変更装置。
【請求項５４】
前記取外しコード配置ステージは、前記ファイルを前記ビットストリームの最後に添付させるよう構成されていることを特徴する請求項５３に記載のビットストリームの変更装置。
【請求項５５】
前記取外しコード配置ステージは、前記ファイルを前記ビットストリームとは分離し、該ビットストリームと関連付けて格納するよう構成されることを特徴する請求項５３に記載のビットストリームの変更装置。
【請求項５６】
前記取外しコード配置ステージは、前記取り外し選択されたコードの全てを前記ビットストリームの最後に添付させるよう構成されることを特徴する請求項４９に記載のビットストリームの変更装置。
【請求項５７】
前記取外しコード配置ステージは、前記取り外し選択されたコードの全てを該１つ以上の取外しコードデータフィールドに配置するよう構成されることを特徴する請求項４９に記載のビットストリームの変更装置。
【請求項５８】
前記デジタルコードは、前記情報のＤＣＴ係数を表すことを特徴する請求項４９乃至５７のいずれか１項に記載のビットストリームの変更装置。
【請求項５９】
前記ＤＣＴ係数はＤＣ及びＡＣ係数を含み、
前記取外しステージは、前記ビットストリームの該部分から前記ＤＣ及びＡＣ係数を表す全てのコードを取り外し可能であり、
前記変更コード配置ステージは、前記ビットストリームの該部分にＤＣ係数を表す前記変更コードを配置するよう構成されることを特徴する請求項５８に記載のビットストリームの変更装置。
【請求項６０】
前記取外しステージは、（１）ＡＣ係数を表すコードを取り除く技術及び（２）ＤＣ係数を表す係数を取り除く技術の少なくとも１つを実行可能であり、
前記変更コード配置ステージは、前記取り外したＤＣコードを変更されたＤＣコードで置換可能であり、
前記取外しコード配置ステージは、前記取り外し選択されたコードを前記ビットストリームと関連付けて格納可能であり、及び／又は、該取り外し選択されたコードを前記ビットストリーム内の１つ以上の取外しコードデータフィールドに配置可能であり、
さらに、前記ビットストリームにおけるビット数に対する前記技術の効果を評価し、該評価に基づき前記技術の１つ以上を選択操作するステージを備える請求項５８又は５９に記載のビットストリームの変更装置。
【請求項６１】
前記取外しコード配置ステージは、前記取り外し選択されたコードを前記ビットストリームの最後に添付させ、及び／又は、該取り外し選択されたコードを前記ビットストリーム内の１つ以上の取外しコードデータフィールドに配置することを特徴する請求項６０に記載のビットストリームの変更装置。
【請求項６２】
前記ビットストリームは、少なくともイントラエンコードされた画像を有し、
当該ビットストリームの変更装置は、前記イントラエンコードされた画像を変更するよう構成されていることを特徴する請求項５９、６０又は６１に記載のビットストリームの変更装置。
【請求項６３】
前記ビットストリームは、インターエンコードされた画像を有し、
当該ビットストリームの変更装置は、前記インターエンコードされた画像を付加的に変更するよう構成されていることを特徴する請求項６２に記載のビットストリームの変更装置。
【請求項６４】
前記インターエンコードされた画像は、ＤＣ係数を表すコードを含み、
さらに、前記コードのうち選択されたものを取り外し操作するステージと、
前記選択されたものを前記ビットストリームと関連付けて格納し、及び／又は、該選択されたものを前記ビットストリーム内の１つ以上の取外しコードデータフィールドに配置する配置ステージと、
前記取り外したコードを予め定めた値の変更コードで置換する置換ステージとを備える請求項６３に記載のビットストリームの変更装置。
【請求項６５】
前記インターエンコードされた画像内のＤＣ係数を表す前記コードは、量子化された変更値を表し、
前記予め定めた値は、ゼロより大きい最小変更量子の値を表すことを特徴する請求項６４に記載のビットストリームの変更装置。
【請求項６６】
前記予め定めた値は、プラス又はマイナス１であることを特徴する請求項６５に記載のビットストリームの変更装置。
【請求項６７】
前記インターエンコードされた画像は、動きベクトルを表すコードを含んでおり、
前記変更コードが含まれるビットストリームの部分と関連する前記動きベクトルコードを取り外し、元の動きベクトルコードをゼロ動きベクトルを表す動きベクトル変更コードで置換し、該取り外した動きベクトルコードをビットストリームと関連付けて格納し及び／又は取り外したコードをビットストリーム内の取外しコードデータフィールド中に配置する動きベクトルコード取外しステージをさらに備える請求項６３乃至６６のいずれか１項に記載のビットストリームの変更装置。
【請求項６８】
前記動きベクトルコード取外しステージは、前記変更コードが含まれるビットストリームの部分と画面内で隣接するイントラエンコードされた画像の部分と関連する動きベクトルコードを取り外し、該関連する部分の元の動きベクトルコードをゼロ動きベクトルを示す動きベクトル変更コードで置き換え、該取り外した動きベクトルコードを前記ビットストリームと関連付けて格納し及び／又は前記取り外したコードを前記ビットストリーム内の取外しコードデータフィールド中に配置することを特徴する請求項６７に記載のビットストリームの変更装置。
【請求項６９】
前記ビットストリームは、エンコーディングのタイプを示すタイプコードにより、フィールドタイプ又はフレームタイプとしてエンコードされるＤＣＴブロックを含み、
さらに、フィールドタイプを示す前記タイプコードの中から選択されたものを取り外す取外しステージと、
前記取り外したタイプコードをフレームタイプを示す変更タイプコードで置き換える置換えステージと、
前記取り外したタイプコードを前記ビットストリームと関連付けて格納し及び／又は該取り外したタイプコードを前記ビットストリーム内の１つ以上の取外しコードデータフィールドに配置する取外しコード配置ステージとを備える請求項５８乃至６８のいずれか１項に記載のビットストリームの変更装置。
【請求項７０】
元のビットストリームを復元するビットストリームの復元装置において、
元のコードが取り出され記録された、ビットストリームの選択された部分に変更コードを持つ、変更されたビットストリームを受け取る受取りステージと、
前記ビットストリームを構文解析する構文解析ステージと、
前記元のコードを格納する記録部と、
前記変更コードを前記元のコードで置き換える置換えステージとを備えるビットストリームの復元装置。
【請求項７１】
元のビットストリームを復元するビットストリームの復元装置において、
元のコードが取り出されビットストリームの変更ユーザデータ部に格納されている、前記ビットストリームの選択された部分に変更コードを持つ、変更されたビットストリームを受け取る受取りステージと、
前記ビットストリームを構文解析する構文解析ステージと、
前記元のコードを格納する記録部と、
前記変更コードを前記格納された元のコードで置き換える置換えステージとを備えるビットストリームの復元装置。
【請求項７２】
元のビットストリームを復元するビットストリームの復元装置において、
元のコードが取り出されビットストリームの変更ユーザデータ部に配置され、前記ビットストリームの最後に添付されている、前記ビットストリームの選択された部分に変更コードを持つ、変更されたビットストリームを受け取る受取りステージと、
前記ビットストリームを構文解析する構文解析ステージと、
前記元のコードを格納する記録部と、
前記変更コードを前記格納された元のコードで置き換える置換えステージとを備えるビットストリームの復元装置。
【請求項７３】
当該ビットストリームの復元装置は、ビットストリームを使う装置であり、
前記元のコードが暗号化されており、
さらに、前記暗号化された元のコードを復号化した後、前記変更コードを該復号化された元のコードで置き換える復号化ステージを備える請求項７１又は７２に記載のビットストリームの復元装置。
【請求項７４】
変更コードと少なくとも１つの復号鍵を含むビットストリームの部分を定義するテンプレートを記録するデータキャリア。
【請求項７５】
前記情報信号は、ビデオデータ、オーディオデータ、ビジュアルデータ、及びこれら以外のデータのうち１つ又はそれ以上を含むことを特徴する請求項１乃至３４のいずれか１項又は請求項４０に記載のビットストリームの変更方法、請求項３５乃至３９いずれか１項に記載のビットストリームの復元方法、請求項４１に記載の装置、請求項４２に記載のコンピュータプログラム、請求項４３乃至４５のいずれか１項に記載の媒体、請求項４６乃至４８のいずれか１項に記載の変更されたビットストリーム、請求項４９乃至６９のいずれか１項に記載ビットストリームの変更装置、請求項７０乃至７３のいずれか１項に記載のビットストリームの復元装置、又は請求項７４に記載のデータキャリア。
【請求項７６】
イントラエンコードされた画像及びインターエンコードされた画像を持つビデオシーケンスに可視的に透かし模様を埋め込む透かし模様埋込み方法において、
前記画像が前記ビデオの変換係数のブロックを表すデータを含み、動きベクトルが前記インターエンコードされた画像のブロックの少なくともどれかと関連するものであり、
前記ビデオに可視的に透かし模様の埋込みをするために変更される前記ブロックを定義する少なくとも１つのテンプレートを提供するステップと、
前記ビデオに可視的に透かし模様の埋込みをするために少なくともイントラエンコードされた画像において前記テンプレートにより定義されるブロック内の変換係数のうち少なくともいずれかを変更するステップと、
前記テンプレートにより定義されたインターエンコードされた画像のブロックと関連し、前記イントラエンコードされた画像の変更されたブロックに対応する動きベクトルをゼロに設定するステップと有する透かし模様埋込み方法。
【請求項７７】
変更されるイントラエンコードされた画像ブロックを定義する第１のテンプレートと、関連する動きベクトルがゼロに設定される前記第１のテンプレートのブロックに対応するインターエンコードされた画像ブロックを定義する第２のテンプレートとを提供するステップを有する請求項７６に記載の透かし模様埋込み方法。
【請求項７８】
前記第２のテンプレートは、前記関連する動きベクトルがゼロに設定されるブロックを含むマクロブロックを定義することを特徴する請求項７７に記載の透かし模様埋込み方法。
【請求項７９】
前記第２のテンプレートは、前記マクロブロックと境界を接し、関連する動きベクトルがゼロに設定される更なるマクロブロックを定義することを特徴する請求項７８に記載の透かし模様埋込み方法。
【請求項８０】
前記ビデオシーケンスは、ブロックと動きベクトルを表すデジタルコードを含むビットストリームにより表されており、
さらに、変更されるブロックとゼロに設定される動きベクトルを表すデジタルコードを選択するステップと、
前記選択されたデジタルコードを前記ビットストリームから取り除くステップと、
前記変更されたコードを、前記選択されたコードの代わりに、前記ビットストリームに配置するステップと、
（１）前記取り外したコードを前記ビットストリームの最後に添付させるステップ及び（２）前記取り外したコードを前記ビットストリーム内の１つ以上の取外しコードデータフィールドに配置するステップのうち少なくとも一方のステップとを有する請求項７６乃至７９のいずれか１項に記載の透かし模様埋込み方法。
【請求項８１】
前記取り外したコードを暗号化するステップをさらに有する請求項８０に記載の透かし模様埋込み方法。
【請求項８２】
請求項７６乃至８１のいずれか１項に記載の透かし模様埋込み方法を実行するように構成された装置。
【請求項８３】
適したプロセッサで実行された場合、請求項７６乃至８２のいずれか１項に記載の透かし模様埋込み方法を実施するコンピュータプログラム。
【請求項８４】
請求項８３に記載のコンピュータプログラムを記録したデータキャリア。
【請求項８５】
イントラエンコードされた画像及びインターエンコードされた画像を持つビデオシーケンスに可視的に透かし模様を埋め込む透かし模様埋込み装置において、
前記画像が前記ビデオの変換係数のブロック表すデータを含み、動きベクトルが前記インターエンコードされた画像のブロックの少なくともどれかと関連するものであり、
前記ビデオに可視的に透かし模様を埋め込むよう変更されるブロックを定義する少なくとも１つのテンプレートを格納する格納手段と、
前記ビデオに可視的に透かし模様埋込みをするため、少なくとも前記インターエンコードされた画像内において、前記テンプレートにより定義されたブロックの変換係数のうち少なくともどれかを変更するよう構成された変更手段と、
前記テンプレートにより定義されるインターエンコードされた画像のブロックと関連し、イントラエンコードされた画像の変更されたブロックに対応する動きベクトルをゼロに設定するよう構成された手段とを備える透かし模様埋込み装置。
【請求項８６】
前記格納手段は、変更されるイントラエンコードされた画像ブロックを定義する第１のテンプレートと、該第１のテンプレートの画像ブロックに対応し、それに関連する動きベクトルがゼロに設定されるインターエンコードされた画像ブロックを定義する第２のテンプレートとを格納することを特徴する請求項８５に記載の透かし模様埋込み装置。
【請求項８７】
前記第２のテンプレートは、関連する動きベクトルがゼロに設定されるブロックを含むマクロブロックを定義することを特徴する請求項８６に記載の透かし模様埋込み装置。
【請求項８８】
前記第２のテンプレートは、前記マクロブロックと境界を接し、関連する動きベクトルがゼロに設定される更なるマクロブロックを定義することを特徴する請求項８７に記載の透かし模様埋込み装置。
【請求項８９】
前記ビデオシーケンスは、ブロック及び動きベクトルを表すデジタルコードを含むビットストリームにより表され、
さらに、変更されるブロックとゼロに設定される動きベクトルを表すデジタルコードを選択する手段と、
前記選択されたデジタルコードを前記ビットストリームから取り外し変更されたコードを、前記選択されたコードの代わりに前記ビットストリームに配置する手段と、
（１）取り外したコードを前記ビットストリームの最後に添付させ及び／又は（２）前記取り外したコードを前記ビットストリーム内の１つ以上の取外しコードデータフィールドに配置する手段とを備える請求項８５乃至８８のいずれか１項に記載の透かし模様埋込み装置。
【請求項９０】
可視的に透かし模様を埋め込まれることで変更されたビットストリームを復元するビットストリームの復元方法において、
前記透かし模様は、請求項８０又は８１に記載の透かし模様埋込み方法により元のビットストリームに埋め込まれたものであり、
前記変更されたビットストリームは、変更されたブロック及びゼロに設定された動きベクトルを表す変更されたコードを該ビットストリームの選択された部分に備え、
元のコードは前記選択された部分から取り外され、前記ビットストリームの変更ユーザデータ部分に置かれるか及び／又は該ビットストリームの終端に添付されるものであり、
前記ビットストリームを構文解析するステップと、
前記元のコードを格納するステップと、
前記変更されたコードを前記格納された元のコードで置き換えるステップとを有するビットストリームの復元方法。
【請求項９１】
前記元のコードは、暗号化されており、
前記暗号化された元のコードを復号化した後、前記変更コードを前記復号化された元のコードで置き換えるステップをさらに有する請求項９０に記載のビットストリームの復元方法。
【請求項９２】
元のビットストリームを復元するビットストリームの復元装置において、
請求項５又は６に記載のビットストリームの変更方法によって可視的に透かし模様が埋め込まれた変更されたビットストリームを受け取る受取りステージを備え、
該変更されたビットストリームからは元のコードが取り出され該ビットストリームの変更ユーザデータ部に配置され及び／又は該ビットストリームの最後に添付されており、該ビットストリームの選択された部分に変更されたブロック及びゼロに設定された動きベクトルを表す変更されたコードが代入されているものであり、
さらに、前記ビットストリームを構文解析する構文解析ステージと、
前記元のコードを格納する記録部と、
前記変更されたコードを前記格納された元のコードで置き換える置換えステージとを備えるビットストリームの復元装置。
【請求項９３】
前記元のコードは、暗号化されており、
前記暗号化された元のコードを復号化した後、前記変更されたコードを前記復号化された元のコードで置き換えるステージをさらに備える請求項９２に記載のビットストリームの復元装置。
【請求項９４】
請求項９０又は９１に記載のビットストリームの復元方法を実行するよう構成された装置。
【請求項９５】
適したデータプロセッサで実行された場合、請求項９０又は９１に記載のビットストリームの復元方法を実施するコンピュータプログラム。
【請求項９６】
請求項９５に記載のコンピュータプログラムを記録したデータキャリア。
【請求項９７】
添付された図面を参照して実質的に前述されたビットストリームを変更する方法。
【請求項９８】
添付された図面を参照して実質的に前述されたビットストリームを変更する装置。
【請求項９９】
添付された図面を参照して実質的に前述された元のビットストリームを復元する方法。
【請求項１００】
添付された図面を参照して実質的に前述された元のビットストリームを復元する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はビットストリームの変更方法、ビットストリームの変更装置、ビットストリームの変更用コンピュータプログラム、かかるプログラムを記録する記録媒体、ビットストリームから変更を取り除く方法、ビットストリームから変更を取り除く装置、ビットストリームから変更を取り除くコンピュータプログラム、かかるプログラムを記録する記録媒体、変更されたビットストリーム及び変更取外しデータを伝達するデータキャリアに関する。
【背景技術】
【０００２】
ビデオ、オーディオ、オーディオ・ビジュアル及び／又はその他の情報信号内に透かし模様を付与することが知られている。透かし模様はその情報信号の出処及び／又はその情報信号の所有者又はそれ以外の関係者を確認するために設けられている。透かし模様は視認可能又は隠蔽されたものであってもよい。本発明の好ましい実施形態では視認可能な透かし模様を用いている。
【０００３】
また、画像を空間領域から変換領域、例えば、ウェーブレット（wavelet）領域に変換し、そのウェーブレット係数を変更することにより、画像に透かし模様を加えることも知られている。透かし模様を埋め込んだその変換領域画像は、後に空間領域に逆変換される例えば、イノウエヒサシ等著、「ウェーブレット変換に基づく画像透かし模様法」、ＩＥＥＥ、０−７８０３−５４６７−２／９９を参照。
【０００４】
米国特許５８０９１３９号（Girod等）は、圧縮済みビデオ素材の隠蔽透かし模様法を開示している。ＭＰＥＧ２により圧縮されたビデオをエントロピーデコードし非量子化してＤＣＴ係数を求める。拡散スペクトル空間領域の透かし模様をＤＣＴ領域に変換し、変換された透かし模様を変換されたビデオのＤＣＴ係数に加える。透かし模様を加えても圧縮ビデオのビットレートが維持されるよう種々のステップが取られている。非ゼロ係数だけが変更される。また、エンコードされた透かし模様を加えた係数のビット数が透かし模様以前のその係数のビット数（加えて、前のコーディング操作で節約されたその他余分なスペアビット数）と比較される。制御装置が透かし模様を加えたビットストリームと元の透かし模様の入らないビットストリーム間の出力選択を制御する。もしエントロピーエンコードされた透かし模様が入っていないものの係数がｎ０ビットを使い、且つ透かし模様入りエントロピーエンコード係数がｎ１を使い、ｎ１＜ｎ０＋ｎ３の場合、透かし模様入り係数が出力される。ここで、ｎ３は使用可能となるスペアビットの数である。透かし模様はビデオ・デコーダ内で検出できるが透かし模様アルゴリズムを反転させて透かし模様入りビデオを元のビデオに復元することはできない。
【０００５】
ＷＯ９９／１０８３７号（Digimarc）は、画像を例えばＭＰＥＧ２を使って圧縮しＤＣＴ係数を変更して透かし模様を埋め込むビデオイメージ透かし模様方法を開示している。そのビットレートは係数の変更により増加したビットレート量を表すカウントをその変更により削減されたビットレート量より少なくするように維持することで保持される。累積変更がプラス又はマイナス限界を超えると、それ以上の変更はなされない。その透かし模様はビデオデコーダ内で検出できるがその透かし模様アルゴリズムを反転させて透かし模様を埋め込んだビデオを元のビデオに復元することはできない。
【０００６】
ＵＳ−Ａ−５８０９１３９及びＷＯ９９／１０８３７の両者は共に、ビットレートを監視する手段と一定の限界に達した場合に透かし模様埋込み処理を止める手段とを必要とする。ＵＳ−Ａ−５８０９１３９及びＷＯ９９／１０８３７にとって、それは結果的には画像内に透かし模様をランダムに分散することになる。これらの提案は画像内にメッセージを表すデータを埋め込む不可逆的非視認透かし模様を狙ったものである。
【０００７】
これは圧縮エンコード情報信号、特に画像信号に対して知られている。更に、情報信号にデータを付加する情報信号に対する変更がなされるとその圧縮は通常非効率的になる。圧縮情報信号を表すビット数への変更を最小限にして、例えば画像内で確認できるような、圧縮されていない情報信号内で視認可能である情報信号の変更を生成できるような圧縮情報信号の処理が望ましい。
【０００８】
本願と共に継続中の先の出願であるＥＰ０１３１０１１３．４（ＵＳＳＮ１０・００６０５０）は圧縮ビデオビットストリームの変更及び透かし模様をそれから取り外す方法及び装置の一例である。ビットストリーム上で実行される圧縮処理にはＤＣＴ係数を使用する。その変更処理は透かし模様処理されたビットストリームがその透かし模様処理される前のビットストリーム以上のビットを持たないよう、したがって確実に同じビットレートを持つように実行される。ＤＣＴ係数を表すコードの固定長部分を、その固定長コードにおけるビット数を増やさずに暗号化することによりなされる。その最も好ましい実施形態はＩフレームの圧縮ビットストリームであり、しかも可視的透かし模様生成に関してその技法はそのようなビットストリームに適している。その技法はその他の圧縮ビットストリームに適用できるが表示された画像内の透かし模様の視認性はビット数を増やさないとの制限から希望通りのものではない。
【０００９】
ＭＰＥＧ２は周知であり、ＩＳＯ／ＩＥＣ／１３８１８に定義されている。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明はビデオ、オーディオ、オーディオ・ビジュアル又はその他の情報信号を含むビットストリームに適用可能で、変更を生成するものであって、該情報信号の、好ましくは該ビットレートを変更せずに取り外し可能及び視認可能な変更で、及び好ましくはビットレートを変更しない技術を提供することを目的とする。本発明の一実施形態は、圧縮ビットストリーム（例えばＭＰＥＧ２）に適用可能であり、同時に圧縮ビットストリーム内のビットレートを変更せずに該変更が該ビットストリームから取り外し可能であるような、所望の視認性を有する変更を生成できる変更技術を提供しようとするものである。
【課題を解決するための手段】
【００１１】
本発明の１つの態様は、情報を表すデジタルコードを含むビットストリームの変更方法が提供される。本方法は、前記情報の変更を表す少なくとも１つの変更コードを含むビットストリームの一部分を占める少なくとも１つのデジタルコードを選択し、該選択されたデジタルコードを前記ビットストリームの該当部分から取り外し、該選択されたコードの代わりに前記ビットストリームの該当部分内に変更されたコードを挿入することを含むものであり、前記ビットストリームから取り出された前記選択されたコードのビット数は、前記ビットストリームに挿入される前記変更コードのビット数より大きいか等しい。本方法は更に（１）前記取り外した選択されたコードを前記ビットストリームと関連させて格納する、及び（２）前記取り外した選択されたコードを、前記ビットストリーム中の１つ以上の取外しコードデータフィールド内に格納する、のいずれか一方又は両者からなる。
【００１２】
前記変更が、前記ビットストリームにより表される情報内において視認可能とすることが好ましい。
【００１３】
本発明の第２の態様によれば、情報を表すデジタルコードを含むビットストリームの変更方法が提供される。本方法は、前記情報内で視認可能な変更を表す少なくとも１つの変更コードが含まれる前記ビットストリームの一部分を占める、少なくとも１つのデジタルコードを選択し、該選択されたデジタルコードを前記ビットストリームの該当部分から取り外し、前記ビットストリームの該当部分に前記選択されたコードの代わりとして前記変更コードを格納することを含むものであり、前記ビットストリームから取り外された前記選択されたコードのビット数は該当部分に代入された前記変更コードのビット数より大きいか又は等しく、前記選択され取り外されたコードは前記ビットストリーム中ではなくその最後に付加する。
【００１４】
本発明の第３の態様によれば、情報を表すデジタルコードを含む情報信号部分を持つビットストリームを変更する方法が提供される。本方法は、前記情報内で視認可能な変更を表す少なくとも１つの変更コードが含まれる前記情報信号部分の一部分を占めるデジタルコードを選択し、前記ビットストリームの該当部分から前記選択されたデジタルコードを取り外し、前記ビットストリームの該当部分に前記選択されたデジタルコードに代えてその変更コードを代入し、該当部分が付加された前記ビットストリームの変更ユーザデータ部分を生成し、該変更ユーザデータ部分に前記選択し取り出されたデジタルコードの少なくとも１つを格納することを含むものであり、前記変更コードが含まれる前記情報信号部分におけるビット数と前記変更ユーザデータ部のビット数とを加えた値は、前記選択されたコードが取り出される前の前記情報信号部のビット数より少ないか等しい。
【００１５】
本発明の各実施態様における変更とは、ビットストリーム内のビットを隠蔽するのではなくむしろ、ビットストリームにより表される情報において視認可能な変更を提供するものである。
【００１６】
このような方法によれば、変更されたビットストリームのビットレートは元のビットストリーム（以下、原ビットストリーム）のそれと同じに保持される。変更コードの追加では追加データが生成される。原コードを取り外し、ビットストリームの最後に、それらを付加することにより、ビットストリーム内のデータ量は増やさないで済む。原コードを取り除くことにより生ずるビットストリーム内のスペア空間は変更ユーザデータフィールドとして、原コードの少なくとも一部のために使用できる。また、このフィールドに収めることのできなかったコードは、ビットストリームの終わりに添付する。コードはビットストリームの開始エンド又はその最終エンドに添付させてもよい。
【００１７】
コードは別のファイルにおいてもよく、又はビットストリームの開始エンド又は最終エンドに添付されるファイル中に置いてもよい。
【００１８】
本発明の好ましい実施例におけるビットストリームは、ＭＰＥＧ２規格により圧縮されたビットストリームであることが好ましい。ＭＰＥＧ２規格においてはビットストリームのビットレートがその規格に準拠することが特に重要である。そこで、本発明では、変更コードを加えてもＭＰＥＧ２ビットストリームがその規格に準拠できるようにし、その変更処理から生ずる余剰なデータをＭＰＥＧ２準拠ビットストリーム内に置かず、添付させるようにした。余剰データとはビットストリーム内の変更ユーザデータフィールドに置くことのできなかったデータのことである。
【００１９】
本発明の好ましい実施形態によれば、変更データの取外しと原ビットストリームの復元ができるように、全ての原データの保存を可能としている。（これは勿論、変更されたビットストリームのその他の処理、例えばノイズのあるチャンネルを介した送信、又は変更信号が後段処理により失われないと仮定してのことである。）
本発明の第４の態様によれば、情報を表すデジタルコードを含むビットストリームを変更するための装置が提供される。本装置は、前記情報内で視認可能な変更を表す少なくとも１つの変更コードを含むことになる前記ビットストリームの一部分を占める少なくとも１つのデジタルコードを選択する選択ステージと、該選択されたデジタルコードを前記ビットストリームの該当部分から取り除く取外しステージと、前記選択されたコードの代わりに前記変更コードを前記ビットストリームの該当部分に代入する変更コード代入ステージとを備え、前記ビットストリームから選択され取り出されたコードのビット数が、前記ビットストリームに代入された前記変更コードのビット数より大きいか等しものであり、（１）前記ビットストリームと関連させて前記選択され取り外されたコードを格納する、及び／又は、（２）前記ビットストリーム内の１つ以上の取外しコードデータフィールド中に前記選択され取り出されたコードを格納する、取外しコード代入ステージをさらに備える。
【００２０】
本発明の一実施形態においては、前記ビットストリームは情報信号の変換係数、例えばＤＣ及びＡＣ係数を含むＤＣＴ係数を表すデジタルコードを備えている。本発明の一例においては、前記ビットストリームを変更するための種々の技法を用いられる。それらの技法には（１）ＡＣ係数の取外しと（２）ＤＣ係数の取外しとが含まれる。取り出された係数は変更コードで置き換えられる。変更されたビットストリームのビット数に及ぼす各種技法の効果を評価し、該評価に応じてビットストリームを実際に変更するための１つ以上の技法がその中から選択される。これにより変更ビットストリームのビットレートを原ビットストリームのそれに等しく保持できる技法が選択できる。
【００２１】
原ビットストリームは動きベクトルを表すコードを含むインターエンコードされた画像（inter-encoded picture）を含んでいてもよい。前記変更が画像内で視認可能な透かし模様を表す場合、前記動きベクトルは透かし模様を歪ませてしまう。本発明の一例では、少なくとも１つの変更コードを含むことになるビットストリームの該当部分と関連付けて動きベクトルコードを取り除くステップと、ゼロ動きベクトルを表す動きベクトル変更コードで原動きベクトルコードを置き換えるステップと、該取り外した動きベクトルコードを前記ビットストリームの最後に置くか又は前記ビットストリーム内の取り外したコードのデータフィールドに置くステップとを含む。本例によれば、透かし模様の変形を提言することができる。
【００２２】
ＭＰＥＧ２ビットストリームは、エンコーディングのタイプを示すタイプコードを使ってフィールドタイプ又はフレームタイプでエンコードされたＤＣＴブロックを含んでもよい。１つのフィールドタイプのＤＣＴブロックは変更を受けるが隣接したフィールドタイプのブロックが変更を受けていない場合、その透かし模様はストライプ状に歪むことが知られている。そこで本発明の一例では、フィールドタイプを示す該タイプコードの１つを選択取り外し、フレームタイプを示す変更タイプコードでその取り外したタイプコードを置き換え、該取り外したタイプコードを（１）前記ビットストリームの最後か、（２）前記ビットストリーム内の１つ以上の取り出されたコードのデータフィールド内のうち、いずれか又はその両方に格納する。
【発明を実施するための最良の形態】
【００２３】
本発明の他の態様は注視されるべき特許請求の範囲において具体的に示される。
【００２４】
本発明がより良く理解されるために、及び本発明がどのようにして効果を奏するかを示すために、例として、以下の添付された図を参照して説明する。
【００２５】
以下の説明では、ＭＰＥＧ２圧縮されたビットストリームが変更される。この変更は透かし模様（Watermark）と呼ぶ。この透かし模様をビットストリームに適用することを埋込み（embedding）と呼ぶ。原ビットストリームを復元することを洗浄（washing）と呼ぶ。
【００２６】
第１の実施例
本発明の第１の実施例について説明する。説明を容易にするために、本実施例においては音声の付かない単独ストリームであるＭＰＥＧ２ビデオビットストリーム、即ちＭＰＥＧ２ビデオシーケンスファイルのＩフレーム中に透かし模様データを配置することについて説明する。なお、ビットストリームはパケット化されたビットストリームであってもよい。もちろん本発明はＩフレームに限定されるものではなく、ビデオ又はＭＰＥＧ２に限定されるものでもない。更に、説明を容易にするために、以下の説明では輝度情報のみについて言及するが、本発明は輝度情報に限定されるものではない。
【００２７】
最初に、ＭＰＥＧ２について説明する。図１にイメージフレーム２を示す。その画像はデジタル画素により表される。図２に示すように８ｘ８画素のブロック４が選択されて、図３に示すようにこれらのブロックは離散コサイン変換（ＤＣＴ）にかけられて８ｘ８ＤＣＴ係数を含むＤＣＴブロックを形成する。その係数はＤＣ係数６とＡＣ係数７を含む。連続ビットストリームを形成するために図３に示すように、その係数はジグザク走査パターン８で走査される（その他のパターンも知られている）。図４に示すように、４つの隣接するＤＣＴブロックのグループがマクロブロック１０としてグループ化される。図５に示すように、そのイメージフレームはマクロブロックの行Ｒ１、Ｒ２、Ｒ３等として構成される。マクロブロックはスライス状に構成される。１つのスライスはマクロブロックの水平方向の集合である。新しいスライスはマクロブロックの各行の最初からスタートする。１つのスライスには任意の数のマクロブロックが含まれる。一行のマクロブロックには任意の数のスライスが含まれる。
【００２８】
図６において、ＭＰＥＧ２は以下のタイプのフレームを持つ。Ｉフレームはイントラエンコードされたフレームであって、その他のフレームを参照せずに、そのフレーム内に全てのイメージデータが含まれているフレームである。Ｐフレームは先行するＩフレーム又はＢフレームから動作補償予測を用いてコーディングされるフレームである。Ｂフレームは前の及び／又は将来のＩフレーム又はＰフレームから動作補償予測を用いてコーディングされるフレームである。説明を容易にするために、第１の実施例の以下の説明ではＩフレームだけについて言及する。
【００２９】
フレームはＧＯＰと呼ばれる画像グループに纏められている。図６はＩ、Ｂ、Ｂ及びＰフレームの列の繰り返しがＧＯＰを形成する代表的なＧＯＰの一部を示す。その他の列も可能である。一般的なＧＯＰ内のフレーム数は１２又は１５であるが、その他のフレーム数も可能である。
【００３０】
図７及び図１１は、ここでいわゆる画像データと呼ぶもののデータフォーマットを示す。この画像データは画像スタートコード間の全てのデータを含み、その中にはヘッダー（ＨＤＲ）、ユーザデータ（ＵＤ）及び１フレームのイメージを表すイメージデータ１６が含まれる。ＭＰＥＧ２では、ユーザデータ（ＵＤ）をイメージデータ１６の前の画像データ内に置くことが許可されている。ユーザデータフィールドＵＤは無くても又は１つ以上のユーザデータフィールドが存在してもよい。
【００３１】
ＤＣＴブロックとマクロブロックとはイメージデータ１６内で、図８に示すようフォーマットされている。各ブロックはＤＣ係数とそれに続くＡＣ係数を含む。ブロック間はブロックエンドコードＥＯＢで分離される。
【００３２】
ＩフレームにおいてＤＣ係数は差分に基づきエンコードされる（differentially encoded）。その差分値（differential values）はここではＤＣ差分と呼ぶ。ＡＣ係数はランレングス（run length）に基づきエンコードされ可変長コード（ＶＬＣ）で表され、ここではＡＣ ＶＬＣと呼ぶ。
【００３３】
ＭＰＥＧ２エンコーディング処理は、ＭＰＥＧ２規格に準拠する全てのデコーダで復号可能であるビットストリームを生成しなければならない。ビットストリームはバッファ内でデコーディングされるのでデコーダはビットストリームを一時格納するバッファを備える。ＭＰＥＧ２規格はそのバッファのサイズを定義する。一般に、バッファはデータが失われないように、アンダーフローもオーバーフローもしないように構成されている（ある特定の条件の下ではアンダーフローは許容される）。エンコーディング処理はアンダーフロー及びオーバーフローを起こさないよう、そのビットレートを制限して行われる。
【００３４】
本実施例において、ビットストリームに視認可能な透かし模様を加える目的で、エンコードされたビットストリームを変更することでビットレートを変える危険があり、したがってアンダーフローやオーバーフローを起こす危険がある。以下に記載する本実施例では、画像データのビットレートを変えずに、したがってバッファをアンダーフロー又はオーバーフローさせずに、ビットストリームに可視的透かし模様を加え、且つその透かし模様を取り外して原イメージを復元することを目的とする。
【００３５】
図９において、テンプレート１８が透かし模様を定義する。図９の実施例において、その透かし模様はＳｏｎｙのＳの字になっているが、透かし模様はどのような形状であってもよい。テンプレートは透かし模様をＤＣＴブロックの解像度で定義する。テンプレートについては後述する「テンプレート」の項で更に説明する。
【００３６】
図１０において、本発明の第１の実施例は概略以下のように動作する。これらの動作は本実施例においてはＩフレームについてのみ行われるが、本発明はＩフレーム上の動作に限られるものではない。
【００３７】
ステップＳ２において、「透かし模様Ｓ内に存在する」マクロブロックが選択され、「これらマクロブロック」の全てのＤＣ差分及びＡＣ ＶＬＣが取り出されて、ステップＳ４において格納される。
【００３８】
ステップＳ６において、透かし模様を表す新規のＤＣ差分が、取り出された部分に代わり、テンプレートマクロブロックのブロック内に挿入される（ＡＣ ＶＬＣはこれらのブロック内で置換されない）。Ｉフレーム内のＤＣ係数は差分に基づきエンコードされる。このため、新規のＤＣ差分値も（詳細は後述）、テンプレートの端部では空間的に先行するマクロブロック及び後続するマクロブロックに依存して計算する必要がある。
【００３９】
ステップＳ８において、原ＤＣ差分値及びＡＣ ＶＬＳを取り除くことにより、Ｉフレームから取り出されたビット数Ｎｒが確認され、新規のＤＣ差分によりＩフレームに加えられるビット数Ｎａが決定される。Ｎｒ−Ｎａの差が画像データ内におけるスペアデータスペース量を示す。そのスペースが閾値（ＭＰＥＧ２の場合５バイト）を超えると、図１１Ｂに示すように、可視透かし模様ユーザデータスペース２０が画像データ内に生成される。少なくとも格納されたＤＣ差分及びＡＣ ＶＬＣの一部は、そのデータスペース２０内に置かれる。画像データのビットレートが変更されないことを確実にするためにゼロパディング（zero padding）２２を画像データに加えてもよい。データスペース２０を生成するのに利用できる十分なスペアスペースがない場合には、ゼロパディング２２が加えられる。データスペース２０に置かれた係数はスペース２０に置かれる前に暗号化されており承認された人だけが原イメージを復元できる。
【００４０】
上記処理はビデオシーケンス内のＩフレーム毎に繰り返される（Ｓ１０）。図１４においてビデオシーケンスの一部が示される。説明を簡単にするために図１４ではＩフレームだけが示されている。画像データフレームは説明を容易にするために単純化された形態で示されている。シーケンスがＰ及び／又はＢフレームを含む場合、このフレームでＩフレームは分離されることになる。シーケンスの第１のＩフレームＰ１は透かし模様ユーザデータスペース２０を含み、透かし模様ユーザデータスペース２０はフレームＰ１の取り出された係数のいずれかを含む。フレームＰ２はデータスペース２０を持ち、フレームＰ１から取り出されたその他の係数がそのデータスペースに置かれる。図１４の実施例において、フレームＰ２のユーザデータスペース２０は、フレームＰ２の取り出された係数のいずれかを収容する容量がある。フレームＰ２の取り出されたその他の係数は、フレームＰ３のユーザデータスペース２０に置かれる。フレームＰ４はユーザデータスペース２０に対する余分な容量が無いように示されており、フレームＰ３から取り出された係数のどれかはフレームＰ５のユーザデータスペース２０に置かれる。このように図１４で説明したように、ビデオシーケンスのフレームのイメージデータスペースから一連の順序で取り出された係数は、記録装置から取り出され、暗号化され、画像データのフレーム内に生成された透かし模様ユーザデータスペース２０へ、同じ一連の順序で、画像データのビットレートを増やさずに配置される。ビデオシーケンスの終わりはシーケンスエンドコード２６により示される。
【００４１】
ビデオシーケンスに生成されたユーザデータスペースは、取り外した全ての係数を収容する十分なスペア容量を提供できない場合がある。そこで、図１０のステップＳ１２に示すように、残りの係数は記録装置から取り出され、暗号化されて、図１４の符号２８で示すように、ビデオシーケンスの最後のシーケンスエンドコード２６の後に添付される。ＭＰＥＧ２ビットストリームの最後に添付されたデータは、ＭＰＥＧ２ビットストリームの一部であるがスタートコードが先行しない。このため、添付されたデータはＭＰＥＧ２デコーダにより無視される。
【００４２】
上述のように、本実施例の処理について、Ｉフレームだけを引用して説明してきたが、ビデオシーケンスはＰフレーム及びＢフレームも含むのが一般的である。あるＰ及びＢフレームはゼロパディングを含んでもよい。この場合、ゼロパディングを取り外して透かし模様ユーザデータブロック用に使用してもよく、取り外した原係数をユーザデータブロックに置くことができる。このようなゼロパディングは原ビットストリームを復元中に元に戻される。
【００４３】
以上の概要では一部動作についてその詳細が省略されている。以下ではそれらについて説明する。
【００４４】
ブロックエンド（End of Block）及びその他のコード
図１３で最もよく図示されているが、イメージデータ１６から取り出された原データ３０（ＤＣ差分及びＡＣ ＶＬＣ）には元の（又はそのコピーの）ブロックエンドコードＥＯＢが含まれる。イメージデータ１６に加えられたデータ３２（即ち新規ＤＣ差分）には新規の（又は元の）ブロックエンドコードＥＯＢが含まれる。更に新規に生成された透かし模様ユーザデータスペース２０にはユーザデータ開始コード３４が含まれるが、これは画像データフレーム内のビット数を増加させる。一旦、原ＡＣ及びＤＣ差分が取り出された後、画像データフレーム内で利用できる余分な容量を決定する場合、ＥＯＢコードが残っているので、ＤＣ差分とＡＣ可変長コードだけが含まれることになる。
【００４５】
透かし模様ユーザデータブロックのフラグ設定
図１２において、透かし模様処理により挿入される透かし模様ユーザデータブロック２０を元から存在する全てのユーザデータブロックから区別できるようにするのが必要である。この目的のために以下の技法が用いられる。
【００４６】
画像フレームが原ユーザデータブロック３６を含むか含まないかに拘らず、透かし模様ユーザデータブロック２０を収容するスペースが画像フレーム内にあれば、透かし模様ユーザデータブロック２０が画像フレーム内の最後のユーザデータブロックとなる（図１２（ｂ）を参照）。透かし模様ユーザデータの最後のバイトの最終ビット３８は「１」に設定される（即ち、ユーザデータ内の最後のバイトまで全バイト数を送信し、次に透かし模様データの７ビットだけとそれに続く単一の「１」ビットを送信する）。
【００４７】
図１２（ｃ）に示すように、画像が１つ以上の原ユーザデータブロック３６を含み、その画像内に透かし模様ユーザデータブロックを収容するスペースがない場合、ユーザデータの最後のブロックの最後のバイトの最終ビット４０は透かし模様データに格納されて「０」に置き換られる。
【００４８】
画像が原ユーザデータブロックを含まず、透かし模様ユーザデータブロックを収める余裕が画像内にない場合には、操作は不要である。
【００４９】
上述のように最終ビットを変更することは単なる一例である。代わりに最初のビットを変えてもよい。
【００５０】
透かし模様データの暗号化、図１５
透かし模様が施されたＭＰＥＧ２ファイル中に現れる透かし模様データは、ＭＰＥＧ開始コードを含んではならない。ユーザデータ領域を途中で終了させたり又はその他の好ましくないデコーダ動作の原因となるからである。ＤＣ差分及びＡＣ ＶＬＣを表すのに使用されるコードの特性としては表示されたイメージデータ内で開始コードが誤って発生されるものであってはならない。したがって透かし模様データ内でもそれらが発生してはならず、フラグ情報を発生する際には要注意である。しかしながら、透かし模様の暗号化の結果として開始コードが生成される場合がある。したがって暗号化されたデータを開始コードと対比してチェックする必要があり、それが発生する場合には暗号化されていない透かし模様データに戻す必要がある（これは正規の鍵を使って復号化するとき、どのバイトが暗号化されずに残っているかを決めることができるだけなので安全性には影響を及ぼさない）。暗号化されない透かし模様データに戻す必要がある場合には、結果的に暗号化データ／非暗号化データ境界線上で別の開始コードの生成がなかったかどうかのチェックも行わなければならない。
【００５１】
任意の適切な暗号化アルゴリズムを使ってもよい。現状ではＡＥＳアルゴリズムが好ましい。
【００５２】
図１５は排他的ＯＲ（ＸＯＲ）演算を使った暗号化処理を説明するフローチャートを示す。ＸＯＲ演算が使われるので、復号化処理は暗号化処理と同じである。
【００５３】
図１５において、
「ｉｄｘ」は暗号化される（又は復号化される）透かし模様データバイトを割り出すインデックスカウントである。
「ｚｅｒｏ＿ｃｏｕｎｔ」はビットストリーム内の連続するゼロ数字のカウントである。
「ｕｂｙｔｅ」は非暗号化透かし模様データのバイトである。
「ｅｂｙｔｅ」は暗号化透かし模様データのバイトである。
「ｒ」は暗号化アルゴリズムにより発生する乱数でありバイトごとに異なる。
「ｚｅｒｏ＿ｃｏｕｎｔ＋＋」は増し分ｚｅｒｏ＿ｃｏｕｎｔを意味する。
「ｉｄｘ＋＋」は増分（increment）ｉｄｘを意味する。
【００５４】
概略的には、ＭＰＥＧ開始コードが決して間違って生成されないよう暗号処理が、モニターされる。ＭＰＥＧ開始コードは例えば３つの１６進法バイト００  ００  ０１である。このようなコードは非暗号化透かし模様データには発生しないが、暗号化データ中には偶然発生することが起こりうる。このようなコードが暗号化データで発生した場合には非暗号化データが代わりに使われる。
【００５５】
図１５の処理では、ゼロの列（ステップＳ５７）又はゼロの列の後に１が続く（ステップＳ５８）ものをチェックし、該当する状態が検出された場合、非暗号化データバイトを出力し（Ｓ６０）、そうでない場合には暗号化データバイトを出力する（Ｓ５９）。
【００５６】
図１５において、暗号化処理（又は復号化処理）はステップＳ５０で開始され、ステップＳ５１に進み、「ｉｄｘ」及び「ｚｅｒｏ＿ｃｏｕｎｔ」はゼロに設定される。ステップＳ５２において、「ｉｄｘ」は暗号化する（又は復号化する）透かし模様データのバイト数「ｎｕｍ＿ｂｙｔｅｓ」と比較される。全てのバイトが処理されると、本処理はステップＳ５３で終了するか、又はステップＳ５４に進み処理する（次の）透かし模様データバイト「ｕｂｙｔｅ」を入手し、更にステップＳ５５でそのデータを暗号化するための乱数ｒを入手する。ステップＳ５６において、そのデータバイトはｅｂｙｔｅ＝ｕｂｙｔｅＸＯＲｒの演算により暗号化される。ステップＳ５７及びＳ５８では、得られたデータストリーム中にＭＰＥＧ開始コードがありそうかどうかをチェックする。ステップＳ５７はｕｂｙｔｅ又はｅｂｙｔｅがゼロ列かどうかをチェックし、そうである場合にはステップＳ６０でｕｂｙｔｅを出力する。ステップＳ５８はゼロ列があり（ｚｅｒｏ＿ｃｏｕｎｔ＞１）、その後に１が続くかどうか（ｅｂｙｅ＝＝１）をチェックする。イエスであればｕｂｙｔｅが出力され（Ｓ６０）、そうでなければｅｂｙｔｅが出力される（Ｓ５９）。ステップＳ６１で、ｕｂｙｔｅがゼロであればｚｅｒｏ＿ｃｏｕｎｔが増分され、そうでなければｚｅｒｏ＿ｃｏｕｎｔはステップＳ６２でゼロに設定され、最後にステップＳ６４でｉｄｘは増分されて、本処理はステップＳ５２に戻る。
【００５７】
差分ＤＣ記録
イントラブロックに対するＤＣ係数はスライス全体を通して差分的にコード化される。上述のように原差分値は格納され、代わりに新規の差分値が計算され、使われる。これにより所望の、例えば、固定された輝度レベルを提供するような変更が可能になり、テンプレートデザインの良好な定義が可能になる。
【００５８】
図４において、Ｉフレームが変更されるものとし、中央のマクロブロック１０が透かし模様データを含むことになるテンプレート内のマクロブロックであり、その左右のマクロブロックはテンプレート外部にあるものと仮定する。左側ブロックのＤＣ差分６０はテンプレート外部にあり、透かし模様の影響を受けない。ＤＣ差分６１〜６４はテンプレート内にある。ＤＣ差分６１〜６４はそのマクロブロックから取り出されて格納される。ＤＣ差分６１〜６４は透かし模様を表す新規の差分値により置換される。説明を簡単にするために、透かし模様が白色レベルの領域と仮定する。ＤＣ差分６１は所望の白色レベルを表す新規の差分値で置換され、ＤＣ差分６２〜６４は全てＤＣ差分６１と同じ白色レベルを表すからゼロに設定される。ＤＣ差分６５は再計算される。テンプレート外に出るときにはその原差分値（即ち、ブロック６５の）を新しい値で置換する動作が伴う。洗浄中に反転処理できるので（ブロック６５の）原差分値を格納する必要はない。それは以下の（ａ）と（ｂ）との差から計算できるからである。（ａ）非差分値に変換された透かし模様埋込み差分値から計算されたブロック６５の値、（ｂ）ブロック６４の原（洗浄された）非差分値。
【００５９】
図４ではテンプレートとマクロブロックは一致すると仮定する。これは入口及び出口点の数を最小にしゼロＤＣ差分の数を最大にするので有利である。しかしながら、テンプレートはマクロブロックと一致しなくともよい。
【００６０】
Ｐ及びＢフレーム
Ｐ及びＢフレーム内のイントラマクロブロックは上述と同じように変更できる。非イントラコードされたマクロブロックは上述のようにＡＣ ＶＬＣを取り除くことができるが、非イントラエンコードされたマクロブロックは予測的にエンコードされているので、その変化は視認しづらくなっている。動きベクトル透かし模様法は、Ｐフレーム及びＢフレーム上だけで実行できる。
【００６１】
色差（chrominance）
上記の説明では透かし模様データを輝度情報だけに与えると仮定しているが、マクロブロックは色差情報のＤＣＴブロックも含んでもよい。上述の輝度に対する方法と同じ方法で透かし模様データを色差ＤＣＴブロックに包含させてもよい。更に、その透かし模様データを色差ＤＣＴブロックだけに包含させ、輝度ブロックには包含させなくともよいが、ここではその方法はとられていない。
【００６２】
原イメージデータ復元の概要（図１６）
図１３（ｃ）において、透かし模様が埋め込まれたビットストリーム（一時画像バッファ中の）の一例が示されるが、これは主バッファ７０に転送されてデコーダに送信される原ビットストリームを置換する。デコーダで受信されると、原イメージが復元されていない場合には、透かし模様が埋め込まれた画像が表示される。図１６は本発明による原イメージの復元（洗浄）処理例の概要を示している。
【００６３】
ステップＳ２０において、透かし模様が埋め込まれたビットストリームが格納され、構文解析（parse）が行われる。ステップＳ２２では、暗号化された透かし模様ユーザデータがビットストリームから抽出されて格納される。また、ビットストリームの最後に添付された全てのデータも格納される。ステップＳ２４において、格納された暗号化透かし模様ユーザデータが復号化され、原ＤＣ差分とＡＣ ＶＬＣが復元される。ステップＳ２６において、復元された原ＤＣ及びＡＣ ＶＬＣが透かし模様を表すＤＣ差分を置換する。その結果のビットストリームは透かし模様データを除いたＭＰＥＧ２圧縮ビットストリームとなる。ステップＳ２８において復元されたビットストリームは従来のＭＰＥＧ２方法により伸張される。
【００６４】
全ての原係数はユーザデータとして保持され、及び／又は、そのビットストリームの最後に添付させているので、原ビットストリームは完全に復元可能である。結果として得られる洗浄されたファイルは透かし模様のない原ファイルとビット毎に等価である。
【００６５】
原イメージデータ復元処理の一例は、後述する「透かし模様洗浄コード」の項目においてより詳細に説明する。
【００６６】
実施概要（図１７、１８及び１９）
図１７には、透かし模様システムの模式図が示されている。ソースからの圧縮されていないデジタルビデオシーケンス５０が従来のＭＰＥＧ２エンコーダ５２にかけられる。このエンコーダは周知のものである。本例において、エンコーダ５２はコンピュータで実行される圧縮ソフトであるが、そのエンコーダは特定目的用プロセッサで構成されていてもよい。圧縮ビデオシーケンスはファイルとして記録装置５４、例えばコンピュータ５２のハードディスクに格納される。
【００６７】
透かし模様埋込み装置５６は、記録装置５４から圧縮ビデオシーケンスを受け取る。本例の埋込み装置はコンピュータで実行される埋込みソフトであるが、以下に説明するように、その埋込み装置は特定目的用のプロセッサで構成されていてもよい。本埋込み処理には、図９に示すようなテンプレートと、少なくとも１つの暗号鍵を使用する暗号化アルゴリズムとが携わり、これら両者はデコーダで原イメージを復元する際に必要になる。本例においては、コンピュータはスマートカードインタフェース５７を備え、それを介してテンプレートや鍵がスマートカード６４又はその他の安全なデータキャリア上に安全に格納される。又は、そのテンプレートと鍵を、ネットワーク上で安全な方法で又はその他の安全な方法で送ってもよい。
【００６８】
本埋込み装置は圧縮されたビットストリームに対して透かし模様を加える。そして透かし模様を加えられたビットストリームは、別のファイル記録装置６０（例えばスタジオ６２）に伝送リンク５８を介して伝送されるが、その伝送リンクは無線リンク、ネットワーク、例えばディスク、テープその他のデータ記録装置であってもよい。
【００６９】
図１８にデコーダの一例を示す。透かし模様を埋め込んだビットストリームは記録装置６０から取り出されて、洗浄装置６６とも呼ばれる埋込み解除装置にかけられ、原ビットストリームが復元される。本例における洗浄装置はコンピュータで実行される埋込み解除ソフトであり、これについては後述するが、その洗浄装置は特定目的用のプロセッサで構成されていてもよい。本洗浄処理には、図９に示すようなテンプレートと、少なくとも１つの暗号鍵を使用する暗号化アルゴリズムがかかわり、これら両者とも本洗浄装置で原イメージを復元する際に必要になる。本実施例において、コンピュータはスマートカードインタフェース６３を備え、これを介してスマートカード６４からテンプレートと鍵を受け取る。本洗浄装置の出力は圧縮ビットストリームであり、これは従来型のＭＰＥＧ２デコーダ６５へ供給され、伸張され、表示装置６７に表示される。
【００７０】
バッファ
図１９（及び図１３）に示すように、圧縮されたビットストリームに透かし模様データを埋め込むために、１つのファイル（図１２の５４）と３つのバッファとが使用される。これらのバッファは：圧縮装置からの原ＭＰＥＧ２準拠圧縮ビットストリームを格納して透かし模様が埋め込まれたビットストリームを出力する主バッファ７０；原ＤＣ差分及びＡＣ ＶＬＣを格納する透かし模様データバッファ７２；透かし模様が埋め込まれたビットストリームが主バッファへの伝送用に構成される一時画像バッファ７４。これらのバッファは物理バッファでもよいが、本実施例ではソフトウエアで定義される仮想バッファである。
【００７１】
本洗浄処理では、主バッファ７０、透かし模様データバッファ７２及び一時バッファ７４の３つのバッファを使用する。
【００７２】
透かし模様埋込み
次に、上記の種々の処理について、例えば擬似コード導入による実施について説明する。
【００７３】
透かし模様埋込み−擬似コード実施例
主バッファ及び透かし模様データバッファを生成する
（ＷＨＩＬＥ）画像処理中に
ファイルから１画像分のデータを主バッファに読み込む
一時画像バッファを生成する
（ＷＨＩＬＥ ＮＯＴ）表示イメージデータの開始前に
主バッファの構文解析をする
全ての選択された透かし模様技法を割り込み許可する（透かし模様データバッファにフラグ設定）
（ＷＨＩＬＥ ＮＯＴ）画像終了前に
（ＣＡＬＬ）スライス処理を呼び出す
空間制約条件が満たされているかを確認する
（ＩＦ）空間制約条件が満たされていない場合
この画像に対する透かし模様技法のいずれかを不許可（透かし模様データバッファ内にフラグ設定）
（ＷＨＩＬＥ ＮＯＴ）画像終了前に
（ＣＡＬＬ）スライス処理を呼び出す
新規の透かし模様が埋め込まれた表示イメージデータを持つ画像内で利用できるスペースを決定する
（ＩＦ）５バイト未満であり、
（ＩＦ）原ユーザデータが存在すれば
ユーザデータの最後のブロックにフラグを立てて、それが透かし模様でないことを示す
表示された画像データを主バッファに出力する
サイズに合わせてその画像をゼロバイトを使ってパディングする
（ＥＬＳＥ）もしくは、
ユーザデータ開始コードを出力する
（ＷＨＩＬＥ）透かし模様データが存在し（ＡＮＤ）画像内に埋め込む空間があれば、
透かし模様データを暗号化する
暗号化した透かし模様データを一時画像バッファのユーザデータスペースに出力する
ユーザデータのブロックにフラグを立て、それが透かし模様データであることを示す
表示された画像データを主バッファに出力する
（ＩＦ）画像内に挿入するスペースがあれば、
サイズに合わせて画像をゼロバイトを使ってパディングする
主バッファから変更された画像をファイルに書き込む
透かし模様データバッファに残っている全てのデータをファイルに書き込む。
【００７４】
スライス処理関数（process slice function）
（ＷＨＩＬＥ）スライス中で
（ＩＦ）データが透かし模様技法に関係していなければ
（ＰＯＰ）上記データを主バッファから取り外し
（ＰＵＳＨ）上記データを画像バッファに記録させる
（ＥＬＳＥ）さもなければ
（ＰＯＰ）主バッファからそのデータを取り外し
（ＰＵＳＨ）上記データを透かし模様データバッファに記録させる
変更値を計算する
変更値をエンコードする
（ＰＵＳＨ）変更値を画像バッファに記録させる。
【００７５】
透かし模様が埋め込まれたコード
透かし模様が埋め込まれたコードの説明をする。ＭＰＥＧ２準拠のビットストリームはファイル、例えば図１２の５４に格納され、バッファ７０、７２及び７４が用意され、そのファイルから１画像分のデータが主バッファ７０に書き込まれて、構文解析が行われる。次に透かし模様技法の選択が行われる。透かし模様技法の選択については図２２を参照して以下により詳細に説明する。先ず、全ての透かし模様技法を割り込み可能にする。次に、別途より詳細に説明される「スライス処理関数」が実行される。概略すると、その関数では原ＤＣ差分とＡＣ ＶＬＣを透かし模様データバッファ７２に格納し、新規の透かし模様ＤＣ差分（即ち変更値）を計算し、その変更値を画像バッファ７４に格納するものである。
【００７６】
次に、空間的制約条件（space constraint）が満たされているかのチェックを行う。最初は、特定の集合の透かし模様技法の全てがビットストリームに対して適用されるものと仮定する。空間的制約条件が満足されない場合には、その技法の１つ以上が割り込み禁止にされる。本実施例の場合、イメージからＡＣ ＶＬＣを取り除くことにより解放されるビットの数がＤＣ差分の変更を行うのに必要になるビットの数よりも大きければ、空間制約条件の１つに合格したことになる。それは透かし模様を埋め込んだ表示イメージが原表示イメージより大きくないということを示している。もしその条件が満たされなければ、それはＡＣ ＶＬＣの取出しによってＤＣ差分の透かし模様埋込みに対する十分なスペースが解放されなかったことを意味する。
【００７７】
選択された技法を使ったスライス処理関数が再度実行される。本実施例における「利用できるスペースを確認する」のステップでは、新規のＤＣ差分を持つ画像内で利用できるスペースが確認される。
【００７８】
スペアスペースが５バイト未満の場合には、透かし模様ユーザデータフィールド２０を含めることはできない。ビットストリームが１つ以上のユーザデータフィールド３６を含む場合は、最後のかかるフィールド３６の最終ビットは、図１２（ｃ）の４０で示されるように、ゼロに設定される。透かし模様を表す新規のＤＣ差分を含む表示された画像データは画像バッファ７４から主バッファ７０へ出力されて、その画像サイズがゼロビットにより原サイズに合わせてパディング（padded）される（図１１、１２の２２を参照）。
【００７９】
例えば、透かし模様を表す新規のＤＣ差分を含む画像データ内に十分なスペースがある場合には、ユーザデータ開始コードを出力することにより透かし模様ユーザデータフィールド２０が画像バッファ７４内に生成される。透かし模様データバッファ７２内に格納されていた原ＡＣ ＶＬＣ及びＤＣ差分は暗号化されて一時画像バッファ７４内の透かし模様ユーザデータフィールドに置かれる。図１２（ｂ）の３８で示すように、透かし模様ユーザデータフィールドの最後のビットは「１」に設定され、それが原ＡＣ ＶＬＣ及びＤＣ差分を含んでいることを示す。一時画像バッファ７４の内容は主バッファ７０に出力される。透かし模様が埋め込まれた表示イメージデータスペース２３を挿入するスペースがあれば、そのスペース２３は、図１１の２２で示すように、ゼロビットで充填される。次に主バッファ７０のデータはファイルに書き込まれる。透かし模様データバッファ７２に残っているデータがあれば、即ち、原ＡＣ ＶＬＣ及びＤＣ差分データで透かし模様ユーザデータ内部に置かれないデータは暗号化されて、そのファイルを構成するビットストリームの最後に同様に添付される。
【００８０】
スライス処理関数
本処理の説明に際して、本実施例においては、上記図５において説明したように、データはスライス状にされて処理される。然しそれは必須条件ではない。それは単にソフトを実行させる際に便利だからである。
【００８１】
コード「ＰＯＰ」はデータがバッファから取り出されることを示す。コード「ＰＵＳＨ」はデータがバッファに移動されることを示す。
【００８２】
かくして、上述したように、主バッファ７０のデータは構文解析される。主バッファ内部ではその表示イメージデータの「スタート」までの全データがスキップされて、そこに残される。画像バッファに移動・格納（ＰＵＳＨｅｄ）される唯一のデータは表示されたイメージデータである。これにより原ユーザデータブロックを変更することが容易になる。透かし模様ユーザデータを追加しなければならない場合には、これを透かし模様埋込み表示イメージデータの前に挿入することが必要である。透かし模様データに関連するデータ、例えば、ＡＣ ＶＬＣ及びＤＣ差分は、主バッファ７０から取り出されて透かし模様データバッファ７２に置かれる。ＤＣ差分の新しい置換値が計算されエンコードされて画像バッファ７４に置かれる。
【００８３】
透かし模様洗浄−擬似コード実施例
主バッファと透かし模様データバッファを生成する
（ＣＡＬＬ）透かし模様データ・イニシャライズを呼び出す
（ＷＨＩＬＥ）画像処理中に
１画像分のデータをファイルから主バッファに読み込む
一時画像バッファを生成する
（ＣＡＬＬ）透かし模様データ入手を呼び出す
（ＷＨＩＬＥ ＮＯＴ）表示されたイメージデータの開始前に
主バッファの構文解析をする
透かし模様データ内のフラグ設定により示された透かし模様技法の割り込みを許可する
（ＷＨＩＬＥ ＮＯＴ）画像終了前に
（ＣＡＬＬ）スライス処理を呼び出す
画像バッファの内容を主バッファに出力する
（ＩＦ）画像中に埋め込むスペースがあれば
ゼロで埋める
変更された画像を主バッファからファイルに書き込む。
【００８４】
透かし模様データ初期化関数
透かし模様ユーザデータブロックをファイルから分離する
上記データを復号化する
一時ファイルに格納する。
【００８５】
透かし模様データ入手関数
（ＩＦ）透かし模様データバッファが満杯でなく（ＡＮＤ）且つ透かし模様データがまだ一時ファイルにある場合には
透かし模様データを一時ファイルから透かし模様データバッファに読込む。
【００８６】
スライス処理関数（透かし模様埋込みに使用した機能とは同一ではない）
（ＷＨＩＬＥ）スライス内で
（ＩＦ）データが透かし模様技法に関係しているならば
（ＰＯＰ）上記データを主バッファから取り除く
（ＰＵＳＨ）上記データを画像バッファに移動させる
（ＥＬＳＥ）さもなければ
（ＰＯＰ）上記データを主バッファから取り除く
（ＰＯＰ）透かし模様データバッファから原データを取り除く
（ＰＵＳＨ）元の値を画像バッファに移動する。
【００８７】
透かし模様洗浄コード
透かし模様洗浄コードは原イメージデータを復元する。例えば、デコーダ６６には主バッファ７０と、透かし模様データバッファ７２と、一時バッファ７４とが生成される。更に、「透かし模様データ初期化関数」により一時ファイルも生成される。
【００８８】
この透かし模様データ初期化関数は、ファイルから透かし模様ユーザデータブロック、即ち暗号化された原ＡＣ及びＤＣ差分を分離し、それらを（スマートカード６４の鍵を使って）復号化し、その復号化されたＡＣ ＶＬＣ及びＤＣ差分を一時ファイルに格納する。
【００８９】
洗浄されていない画像データが存在する場合、そのデータは一時ファイルから主バッファに読込まれる。この段階で一時バッファ７４が生成される。
【００９０】
「透かし模様データを入手する」関数は、透かし模様データバッファ７２が満杯でなく、（ＡＮＤ）且つ透かし模様データがまだ一時ファイルに存在しているかどうかを確認する。もしそうであれば、次に透かし模様データが一時ファイルから透かし模様データバッファに読み込まれる。これにより透かし模様データバッファ内には常に少なくとも現在の画像を洗浄できる十分なデータが存在することが確認される。
【００９１】
「・・・、透かし模様技法を割り込み可能にする」のステップでは、透かし模様データから１ビットフラグを読出し、選択された全ての技法を用いることで画像への透かし模様が埋め込まれたが成功したかどうかを確認する。そうでなければ、次に追加フラグビットを読出してどの技法が用いられたかを確認する。
【００９２】
「スライス処理呼び出し」のステップは以下のように動作する。
【００９３】
ＰＯＰ（取外し）及びＰＵＳＨ（移動）は上記と同じ動作を示す。主バッファのデータは構文解析されている。主バッファ内のデータで透かし模様に関係ないものは取り出され画像バッファ７４に置かれる。透かし模様データ（即ち、透かし模様を表すＤＣ差分）は主バッファ７０から取り出される。透かし模様データバッファ７２内の復号化された原ＡＣ ＶＬＣ及びＤＣ差分は取り出され画像バッファ７４に置かれる。
【００９４】
次のステップでそのデータを画像バッファから主バッファに転送する。
【００９５】
最後に、復元された画像が主バッファからファイルに書き込まれる。
【００９６】
なお、上述の処理ではどのブロックに透かし模様が含まれ、どのブロックには含まれていないかを確認するために、データキャリア６４に格納されたテンプレートが必要である。更に、復号化に必要な鍵もデータキャリア６４から受け取る。
【００９７】
後述する「第４の実施例−動きベクトル」の項目で変更された動きベクトルも同様な方法で元の値に復元される。
【００９８】
第２の実施例
非イントラＤＣ変更（non-intra changes）
上記第１の実施例においては、Ｉフレーム（Intra-frames）のテンプレートブロック内のＤＣ係数の原ＤＣ差分を透かし模様を表す新しい値で置き換えることにより透かし模様が加えられる。それ以外の係数は置換されない。元の値は透かし模様ユーザデータスペース及び／又はビットストリームの最後に格納される。
【００９９】
本発明の第２の実施例においては、ＩフレームのＤＣ係数の置換えに加えて、非Ｉフレーム（即ちＰフレーム及びＢフレーム）のテンプレートブロック内のＤＣ係数が、新しい値と透かし模様ユーザデータスペース及び／又はそのビットストリームの最後に格納された元の値によって置き換えられる。
【０１００】
非Ｉフレームにおいて、ＤＣ係数の変化の程度は通常小さいので、現在の係数と所望の係数との差としてコード化する。しかし、その変化の程度がかなり大きい場合もあり透かし模様ブロックのＤＣ値が制限範囲でクリップ（clip）してしまう場合がある。これを避けるためにＤＣ係数の大きさをその最小値「１」に変更することができる（その値をゼロに変更するとＶＬＣは完全になくなり、後に続くコードのランレングス（run-length）が変わる）。
【０１０１】
原ＶＬＣは透かし模様データバッファ７２に格納されて新しいコードが置き換えられる。ランレングスゼロ及びレベル変化１を表すＶＬＣはコーディングテーブル内の最小ＶＬＣでありその処理により画像をコーディングするのに必要なビット数が決して増加しないことが保障される。したがって、それはイントラＤＣ変更（intra DC changes）も行われる場合に合わせて、何時でも実行できる。
【０１０２】
レベル変化の符号はＤＣ変更が黒色に対してはプラスに設定されその変更が白色に対してはマイナスに設定される。これによりＤＣクリッピングの発生が防げる。
【０１０３】
図２０において、非Ｉフレームは以下のように処理される。ステップＳ３０はフレームタイプを決定する。そのフレームが非ＩフレームであればプロセスはステップＳ３２へ進む。そうではなく、そのフレームがＩフレームであれば、そのプロセスは図１０で述べたように進む。ステップＳ３４において、テンプレートブロック内のＤＣ係数（これは上述した差分値）を表すコードは取り出され、透かし模様データバッファ７２（図１２（ｂ）参照）に格納される。ステップＳ３６において、新しい変更値＋／−１が、取り出された係数の代わりにビットストリームへ代入される。ステップＳ３６及びＳ３８において、ビットストリームは一時バッファ７４内で再構成される（図１２（ｃ）を参照）。利用できるスペースがあれば、取り外した係数値を透かし模様ユーザデータスペース２０に置き、スペースがなければステップＳ４０においてビットストリームの最後に添付させる。原ＤＣ係数は上述のように暗号化される。
【０１０４】
ＡＣ ＶＬＣは非Ｉフレームにおいては変更されない。
【０１０５】
第３の実施例：フレーム画像、ＤＣＴタイプの変更、図２１
第１及び第２の実施例は以下のように変更してもよい。
【０１０６】
画像タイプにはフィールドタイプとフレームタイプの２つのタイプがある。フィールド画像においてはＤＣＴブロックの１タイプだけが発生する。
【０１０７】
第３の実施例においては、フレーム画像だけについて検討する。フレーム画像においてはフィールドとフレームの２つのタイプのＤＣＴブロックが生じうる。フィールドＤＣＴはビデオソースがインタレースされている場合に使用されるが、それは隣接する行間の相関を改善でき、その結果ＤＣＴの低周波数成分の信号出力の割合が改善できるからである。然し、それはこの目的のためだけに使用されるのではない。マクロブロックにおいては全てのブロックは同じタイプを備える。
【０１０８】
図２１（ａ）において、同じマクロブロックＭＢ内の縦方向の直接上側又は下側のＤＣＴブロックを除く１つだけのＤＣＴブロックＢ１に対してフレーム画像内のＤＣ変更がなされ、そのマクロブロックのＤＣＴブロックにフィールドタイプが用いられるとするとその変更の結果、そのマクロブロックの全高さ部分にストライプ（stripes）が発生する。これは透かし模様を歪めてしまいその透かし模様が文字・数字（alpha-numeric）の場合に読みづらくなるので好ましくない。
【０１０９】
ストライプの現れ方はコンテンツのエンコーディングと、特にフィールドＤＣＴを使ってコード化されたマクロブロックの割合とに完全に依存する。本発明の実施例によれば、この問題を解決するために、少なくとも１つの透かし模様が埋め込まれるＤＣＴブロックを含む、フレーム画像内のいずれのＤＣＴタイプのマクロブロックも、フレームに設定される。これは原ＤＣＴタイプコードを透かし模様データバッファ７２（図１３）に格納して、それをフレームＤＣＴ用コードで置換する動作を伴う。ＤＣＴタイプコードは常に１ビット値であるからその画像が要求するビット数に影響を及ぼさない。この変更はしたがってＤＣ透かし模様を使用する際には何時でも行える。
【０１１０】
動きベクトル変更と同じく、ＤＣＴタイプはマクロブロックレベルで操作するので、どの変更でも透かし模様埋込みの有無に拘わらずマクロブロック内の全てのＤＣＴブロックに影響を及ぼす。この場合に発生する副次作用はマクロブロック内の行の再配列が生ずることである。その結果、明瞭、視認可能で不正なマクロブロックが生ずる場合があるが、そのマクロブロックの現れ方は必ずしも受け入れ難いとは言えないかもしれない。
【０１１１】
図２１（ｂ）はＤＣＴタイプを処理する方法の一例を説明する（フィールドからフレームＤＣＴへの変更及びその逆の変更を含む）。
【０１１２】
図２１（ｂ）において、
「ｐｉｃｔｕｒｅ＿ｓｔｒｕｃｔｕｒｅ＝＝ＦＲＡＭＥ」はフレーム画像を検出する。
「＆＆」は論理ＡＮＤ。
「ｆｒａｍｅ＿ｐｒｅｄ＿ｆｒａｍｅ＿ｄｃｔ＝＝０」はそのマクロブロックがこの画像に対して全体的に設定されるフレームＤＣＴタイプではなく、個々のベースに基づき特に設定されたＤＣＴタイプを持つことを検出する。
「｜｜」は論理ＯＲである。
「ｍａｃｒｏｂｌｏｃｋ＿ｉｎｔｒａ｜｜ｍａｃｒｏｂｌｏｃｋ＿ｐａｔｔｅｒｎ」はコード化されたＤＣＴブロックを含むイントラエンコード化されたマクロブロック（intra-encoded macroblocks）と非イントラブロック（non-intra blocks）を検出する。イントラエンコード化されたマクロブロックはコード化された全てのＤＣＴブロックを持つ。コード化されたブロックだけがＤＣＴタイプをもつので、この検出が必要である。
【０１１３】
ＤＣＴタイプ（ｄｃｔ＿ｔｙｐｅ）は１ビットコードで表される：１＝フィールドタイプ；０＝フレームタイプ。
【０１１４】
原ビットストリームは主バッファ７０に格納されており、取り出されたコードは透かし模様データバッファ７２に一時格納される（図１３参照）。
【０１１５】
本プロセスは、ステップＳ７０から始まりステップＳ７１更にステップＳ７２に進みＤＣＴタイプを持つマクロブロックが検出される。マクロブロックがＤＣＴタイプを持たない場合、本処理はステップＥＮＤで終了する。マクロブロックがＤＣＴタイプを持つ場合にはＤＣＴタイプを表す１ビットコードが主バッファ７０から取り出される（ステップＳ７３）。ステップＳ７４ではＤＣ変更が割り込み許可され（以下に述べる「選択技法」の項目を参照）、そのマクロブロックがテンプレート内にあることが確認される。イエスであれば、ステップＳ７５で透かし模様をビットストリームに埋め込むのか、又は、透かし模様を埋め込んだビットストリームをその元の形に復元（洗浄）するのかが確認される。ビットストリームに透かし模様を埋め込む場合には、次のステップＳ７６において、「ｄｅｔ＿ｔｙｐｅ」コード（ステップＳ７３において主バッファから取り出されたもの）が透かし模様データバッファ７２（図１３参照）に移される。「ｄｅｔ＿ｔｙｐｅ」コードの値は次にステップＳ７７においてフレームタイプ（＝０）に変更され、ステップＳ７９においてその新しいコードが一時バッファ７４に移される（図１３を参照）。
【０１１６】
ステップＳ７４からＮＯの経路が取られると、取り出された「ｄｅｔ＿ｔｙｐｅ」コードはステップＳ７９において一時バッファに移動される。
【０１１７】
その逆の処理においてもステップＳ７０からＳ７４までは上述のように進む。次にステップＳ７５で透かし模様埋込み処理が反転（洗浄）されようとしているかが確認されて、ステップＳ７８で透かし模様埋め込みされたストリームの「ｄｃｔ＿ｔｙｐｅ」コードが、透かし模様データバッファ７２から抽出された原コードによって置換される。次にステップＳ７９において、その「ｄｃｔ＿ｔｙｐｅ」コードは上記と同じように一時バッファ７４に格納される。
【０１１８】
図２１（ｂ）に示す処理の最後において、一時バッファ７４は新しい「ｄｃｔ＿ｔｙｐｅ」コードを含み、透かし模様データバッファ７２は原コードを含む。バッファ７２からの原コードは透かし模様ユーザデータスペース２０に転送されるか又はそのビットストリームの最後に添付される。新しい「ｄｃｔ＿ｔｙｐｅ」コードが原コードの代わりにビットストリームに置かれる。それらは上記の「透かし模様が埋め込まれたコード」の項目で説明したのと同様に行われる。
【０１１９】
選択技法
上述したように、画像には下記のステップにより透かし模様の埋込みがなされる。
（ａ）第１の実施例：原ＤＣ及びＡＣ係数を表す全てのコードをＩフレームのテンプレートブロックから取り外し、そのＤＣ係数を透かし模様を表す新たな値で置換する。
（ｂ）第２の実施例：オプションとして更に加えて、非Ｉフレーム内の原ＤＣ係数を表すコードを取り外し、それらを新しい値で置換する。
（ｃ）オプションとして、上記に更に加えて、テンプレートブロックの原動きベクトル値をゼロ値で置き換える。
【０１２０】
より一般的には次の３つの技法が用いられる。
１．テンプレートブロック内のＤＣ係数の変更を許可する。
２．テンプレートブロックからＡＣ係数の取外しを許可する。
３．テンプレートブロック内の動きベクトルの変更を許可する。
【０１２１】
通常、ここで説明する実施例の技法を用いて透かし模様を埋め込んだ画像をエンコーディングするために必要なビット数は、原画像より少なくて済む。上記第１の実施例においては、これはＡＣ差分を完全に除外したためであるが、ＤＣ及び動きベクトル両方をゼロ差分値で多数コーディングした効果も大きい。
【０１２２】
しかしながら、透かし模様を完全に埋め込もうとしても、画像に挿入するビットの数がその画像から取り外したビット数よりも大きくなってしまう場合がある。例えば、これはビデオシーケンスで通常遭遇する完全ブラックカラーフレーム等で容易に生じうる。これが発生すれば、画像を表すのに使用するビット数は同じに維持されなければならないという制約条件を満たすために、その条件が満たされるまで画像の透かし模様の埋込みに使用する上記技法の幾つかを割り込み不許可にする必要がある。
【０１２３】
本発明の実施例においては、その選択は各画像ベースで行われるので、その画像の正しい洗浄を容易にするためには追加情報を格納する必要がある。そこで現在の画像に対してどの技法が許可されているかを示すフラグビットが挿入される。ここで使用されるシステムが表Ａに示される。それは更なる技法の追加にも容易に適応し、且つ利用できる全技法集合の中から選択された部分集合であるにも拘わらず効率的である。ここで注目する点は、第１のフラグビットの選択が透かし模様が埋め込まれたデータ内でのＭＰＥＧ２開始コードの発生を避けるよう設計されていることである。
【０１２４】
【表１】
2005517362.tif 000003
【０１２５】
可能な限り常にイントラＤＣ変更とＡＣ取外し技法の２つは、最低限適用されるべきである。これにより良好な視認性と頑強性が与えられるからである。イントラＤＣ変更が加えられる場合には、非イントラＤＣ及びＤＣＴタイプ変更も用いることができる。その画像が必要とするビット数が増加しないことが保障されているからである。動きベクトルの変更も視認性品質や透かし模様の完全性を改善するが必須条件ではない。
【０１２６】
図２２は、例えば３つの透かし模様埋込み技法の選択を説明するフローチャートである。
１．テンプレートブロックにおけるＤＣ係数の変更の割り込み許可。
２．テンプレートブロックからのＡＣ係数取外し許可。
３．テンプレートブロック内の動きベクトルの変更許可。
【０１２７】
なお、ここで注意すべき点は以下のとおりである。
・解放されたＡＣビットは必ず負の数ではない。ＡＣ取外しは何時でも実行でき決して画像サイズの増加を起こさない。
・ＤＣ変更用ビット及びＭＶ変更用ビットは正の数であっても負の数であってもよい。その値が正の場合はその技法を実行するのに必要なビット数は元々存在したビット数より大きくなる。したがって現在の画像に対する変更を行う場合は別の技法を用いて（例えばＡＣ取外し）十分なビット数を解放しなければならない。その値が負数の場合はその技法は元々存在したビット数よりも少ないビット数しか必要とせず、したがって実際には十分なビットが解放されているのでその変更は何時でも実行できること。
【０１２８】
解放されたビット数が両者の技法を実行するのに必要とするビット数を補うのに不十分な場合には、ＭＶ変更よりもＤＣ変更が常に優先される。
【０１２９】
図２２において、処理はステップＳ８０から始まりステップＳ８１に進み、ここで最初は３つの技法全てが割り込み許可される。ステップＳ８２において、画像（即ちフレーム又はフィールド）は許可された３つの技法の全てを適用するよう処理される。ステップＳ８３は再処理フラグを「True」に設定して最初は３つの技法全てを用いてその画像が再処理できると想定していることを示す。概説すると、画像は１つのパス（pass）においては３つの技法全てを用いて透かし模様を適用するよう処理されてその結果が解析される。その結果が不首尾の場合は、その画像はその１つ以上の技法を不許可にした第２のパスにて再処理される。
【０１３０】
３つの技法の全てを可能にする解放されたＡＣビット
ステップＳ８４では、ＡＣ係数を取り除くことによりデータが削除されＤＣ係数変更のためのビット解放がなされたかどうかを確認する（黒色画像に対してはＡＣ係数はないかもしれない）。解放されたビット数がゼロを超えれば、次にステップＳ８５において解放されたＡＣビット数がＤＣ変更用ビットとＭＶ（動きベクトル）変更用ビットの和以上かどうかを確認する。そのＤＣ変更用ビット数は原ＤＣコードを取り除くことにより解放されたビット数と新規のＤＣコードに使用されたビット数との差である。同様に、ＭＶ変更用のビット数は原ＭＶコードを取り除くことにより解放されたビット数と新規のＭＶコードに使用されたビット数との差である。
【０１３１】
解放されたＡＣビット数がＤＣ変更用及びＭＶ変更用ビットの合計より少なくない場合には（すなわち、ＤＣ及びＭＶ変更の両方ができるだけの十分なＡＣビットが解放された場合）、３つの技法全部が使用でき、したがって画像の再処理の必要はなくなる。かくしてその再処理フラグはステップＳ９０において「False」に変更される。ステップＳ９１は再処理フラグが「True」、「False」いずれかを確認する。この場合は「False」であるので、処理はステップＥＮＤで終了する。
【０１３２】
ステップＳ８４：解放されたＡＣビットがない場合
これはかかるＡＣ係数を持たず、したがって透かし模様を埋め込むことができないブラック画像上で起こることがある。ブラック画像には保護するコンテンツがないのでそれは問題にはならない。
【０１３３】
ステップＳ８４において解放されたＡＣビットがないことが確認されると、処理はステップＳ９３に進みそこでＡＣ取外し技法が不許可になる。ステップＳ９４はＤＣ変更用のビットがゼロより大きいかどうかをテストする。大きければそのＤＣ変更技法はステップＳ９５で不許可にされる。ＤＣ変更用のビットがない場合即ちステップＳ９５が生じた場合には、処理はステップＳ９６に進みそこでＭＶ変更用のビット数がゼロより大きいかどうかがテストされる。大きければステップＳ９７においてＭＶ変更技法が不許可にされる。
【０１３４】
要約すると、ＡＣビットが解放されなければ、ＤＣ及びＭＶ変更は許可されず、又はＤＣ及びＭＶ変更ビットがないということである。何れの場合でも再処理フラグは依然「True」であるので画像はステップＳ９２で（再度）処理される。
【０１３５】
「解放されたＡＣビット」は常に非負数である一方で「ＤＣ変更用ビット」及び「ＭＶ変更用ビット」は正数であっても負数であってもよいことに注意。取り除くＡＣデータがない場合、ＤＣ及びＭＶの変更はその置換データが原データよりもビット数が少ない場合にだけ（即ち、「ＤＣ変更用ビット＜＝０」且つ「ＭＶ変更用ビット＜＝０」）実行できる。したがって、ＡＣ取外しを不許可にする一方でＤＣ及び／又はＭＶ変更を許可することも（ありそうではないが）可能ではある。
【０１３６】
３つの技法全部を許可すると最初に仮定しているので、その技法のどれかを不許可にした場合には常に再処理が必要になりフラグデータを変更しなければならず、第１のパスの透かし模様が埋め込まれたフレームは第２のパスの透かし模様が埋め込まれたフレームで上書きされる。
【０１３７】
ＡＣ ＶＬＣデータ欠乏はビット数を増加させる差分ＤＣ値の変更を許す画像データのスペース解放ができないことを意味する。そのような場合においては透かし模様の埋込みはできなくとも、保護するコンテンツがないので問題にはならない。然し、透かし模様を取り外すデコーダは、ここでは透かし模様洗浄装置と呼ぶ、そのフレームから透かし模様を取り除こうとしなくても済むようにどこでそのようなケースが発生したかを通知されなければならない。これを示すのに追加フラグビットが用いられる。
【０１３８】
ＡＣビットがＤＣ及びＭＶ変更用ビットの総和より少ない場合：ステップＳ８５
ＤＣ及びＭＶ変更の両方を行うのには解放されたビット数が不足する場合には、処理はステップＳ８６に進む。
【０１３９】
この場合、ステップＳ８６は解放されたＡＣビット数がＤＣ変更を行うのには十分かどうかを調べる。ＤＣ変更を行うのに十分なビットがあれば（ステップＳ８６のＮＯ出力）、ステップＳ９７に進みＭＶ変更は不許可となる。次に処理はステップＳ９１へ進む。再処理フラグは「True」であるがＭＶ変更は不許可なので、次にその画像はＭＶ変更不許可且つＤＣ変更許可の状態でステップＳ９２において改めて処理される。
【０１４０】
ステップＳ８６がＤＣ変更を行うのには解放されたビットが不十分であると確認した場合（Ｓ８６の出力ＹＥＳの場合）、次に処理はステップＳ８７へ進みそこで解放されたＡＣビット数がＭＶ変更を行うのには十分であるかどうかを確認する。ＭＶ変更を行うのには十分なビットがあれば（Ｓ８７の出力ＮＯ）、次にステップＳ８８でＤＣ変更が不許可にされる。次に処理はステップＳ９１へ進む。再処理フラグは「True」であるがＤＣ変更が不許可になっているので、次にその画像はＤＣ変更不許可且つＭＶ変更許可の状態でステップＳ９２において改めて処理される。
【０１４１】
ステップＳ８７がそのＭＶ変更を行うのにはビットが不十分であると確認すると（Ｓ８７の出力ＹＥＳの場合）、次にステップ８９でＤＣ及びＭＶ変更の両方が不許可にされてその画像はＡＣ取外し技法だけが有効にされてステップＳ９１及びＳ９２により再処理される。
【０１４２】
図２２の処理の変形例において、ＡＣを取り外しても問題が決して起きないのが分かっているので、ＡＣ取外し機能は常に有効（割り込み許可）となっている。図２２においてステップＳ９３は取り除かれＡＣ取外しのためのフラグビットは必要でなくなる。
【０１４３】
第４の実施例：動きベクトル：図２３−２５
動きベクトルのゼロ設定
図２３（ａ）において、動きベクトルはＤＣＴブロック（細線で示された四角形Ｂ）よりもむしろマクロブロック（太線で示された四角形ＭＢ）と関連付けられる。そこで明るい陰影で示される動きベクトルテンプレートは暗い陰影で示される透かし模様テンプレートに基づいて定義されてもよい。上記の第１の実施例において仮定したように、Ｉフレームだけが透かし模様データを含んでいるとしても、動きベクトルはその透かし模様を歪ませてしまうことがある。Ｐ及び／又はＢフレーム内のマクロブロックのどれがその動きベクトルテンプレート内にあるかを確認することが、必須ではないが望ましい。もしあれば、次にそのマクロブロックの動きベクトルの値がゼロに設定される。動きベクトルは差分に基づきにエンコードされるので、その差分値はその動きベクトルに対してゼロの値を表すように設定される（即ち、動きベクトルは上記のＤＣ差分に対すると同じように処理される）。
【０１４４】
ＤＣ差分を引用して説明したように、ＤＣＴマクロブロックの動きベクトルを表す原コードは、これはテンプレート内のＤＣＴブロックを含むが、ビットストリームから取り出されて変更されたコードで、この場合はゼロ値の動きベクトルを表すコードで置換される。原動きベクトルコードは透かし模様ユーザデータスペースに置かれ、及び／又はそのビットストリームの最後に添付される。
【０１４５】
そこで、図１３及び２４を参照してさらに説明する。
【０１４６】
ビットストリームは主バッファ７０に格納される。
【０１４７】
ステップ１００において、非Ｉフレームのマクロブロックがその動きベクトルテンプレートに属するかどうかが確認される。そうであれば、そのマクロブロックと関連する動きベクトルコードは主バッファ７０内でビットストリームから取り外され（Ｓ１０２）、透かし模様データバッファ７２に格納される（Ｓ１０４）。動きベクトルに対するゼロ値を表す新しい動きベクトルコードが一時バッファ７４内のビットストリーム内の元の値の変わりに代入され（Ｓ１０６）、原動きベクトルコードは一時バッファ７４内の透かし模様ユーザデータスペース２０に置かれ（ステップＳ１０８）、及び／又はＭＰＥＧ準拠ビットストリームの最後に添付される（Ｓ１１０）。原動きベクトルコードはそのユーザデータスペースに置かれる前又はそのビットストリームの最後に添付される前に、図１５で上述したように、暗号化される。
【０１４８】
上記の実施例の何れにおいても本項目で説明したように、動きベクトルはゼロに設定してもよい。これにより透かし模様の歪みは少なくなっても、依然として透かし模様は特にエッジ部分において歪が残る場合がある。次の項目「境界領域」は透かし模様の歪みを更に削減する方法を説明する。
【０１４９】
境界領域：図２３（ｂ）
図２３（ｂ）において、透かし模様の歪みを更に少なくするために、動きベクトルテンプレートを拡張して、透かし模様テンプレートブロックは含まないがそれと境界を接するマクロブッロクを含むようにさせた。拡張された動きベクトルテンプレート内の全てのマクロブロックの動きベクトルコードを上記図２４で説明したように処理した。
【０１５０】
これにより透かし模様テンプレートで定義される透かし模様の歪みは小さくなるが、透かし模様テンプレートと境界をなすマクロブロック、これは透かし模様ブロックを含まないが、その動きベクトルによりその画像は境界線上のマクロブロックで歪む。透かし模様の歪み削減より画像の歪み増加の影響が大きいと判断するかどうかは主観の問題である。
【０１５１】
動きベクトルコードの値の変更：図２５
動きベクトルは「差分ＤＣ記録」の項目で説明したのと同様にして差分エンコードされて記録される。Ｐフレームは前方予測動きベクトルを持つが、Ｂフレームは前方予測及び後方予測の２つのタイプの動きベクトルを持つ。この２つのタイプは図２５で述べるように別々に処理される。
【０１５２】
図２５（ａ）は透かし模様の一部ではないその境界の他のマクロブロック０の間にある３つのマクロブロックＢからなる非常に単純化された動きベクトルテンプレートを示す。
【０１５３】
図２５（ｂ）は予測型のマクロブロックを示す。Ｆは前方（forward）を示し、Ｂは後方（backward）を示す。幾つかのマクロブロックＦＢは前方及び後方予測の両方を兼ねる。
【０１５４】
図２５（ｃ）から（ｅ）において、これら図中の数字は単に説明のためだけであり動きベクトルの実際の値を表すものではない。図２５（ｃ）は前方予測動きベクトルの非差分値を示す。対応する差分値（それらの差を取った値）が図２５（ｄ）に示される。後方予測動きベクトルは無視されているのが分かる。３つのテンプレートのマクロブロック内の動きベクトルがゼロに設定されると、そのテンプレート内の有効値は結果的にゼロであるがそのテンプレート外の隣接するブロックの有効値が変更されないようにこれらブロックの差分が再計算される。その結果、その先行のマクロブロックに対して変化する、「入口（Entry）」で矢示されるテンプレートの先端部のマクロブロックの差分値が結果的にゼロの動きベクトル値を与え、且つ「出口（Exit）」で矢示される後続端部のマクロブロックの差分値が境界を接する次のマクロブロックの元の値を保持するように変化する。
【０１５５】
前方予測動きベクトル値は後方予測値からは独立した差分値シーケンスであり、２つのシーケンスの「入口」及び「出口」のマクロブロック同士は必ずしも一致しないことが理解できる。
【０１５６】
更に、テンプレートからの「出口」と境界を接するマクロブロックの動きベクトルの原差分値は、上記の「差分ＤＣ記録」の項目のブロック６５で説明したように、格納する必要はないがそうすることが望ましいのも理解できよう。
【０１５７】
テンプレート：図２６〜２８
以上述べたように、２つのタイプの画像、フィールドタイプとフレームタイプの画像がある。ビデオシーケンスは、フィールド画像だけ、フレーム画像だけ、又はフィールド画像及びフレーム画像の両方を含んでもよい。
【０１５８】
フレーム画像だけのシーケンス
フレーム画像だけのシーケンスについて考える。テンプレートは水平及び縦方向における１つのＤＣＴブロック単位（８ｘ８画素）の解像度で定義する。図２６（ａ）に示された、行当たり７２０画素及び５７６行を持つフレーム画像例に対して、必要なテンプレートサイズは９０ｘ７２ブロックである。図２６（ｂ）においてＸの字の形のテンプレートが１ブロック単位の解像度で定義されている。その結果、図２６（ｃ）に示す透かし模様を埋め込んだ画像は１ブロック８ｘ８画素の表示された透かし模様解像度を持つ。
【０１５９】
フィールド画像だけのシーケンス
フィールド画像だけのシーケンスを考える。図２７（ａ１）及び（ａ２）において、それぞれが７２０ｘ２８８画素の２つのフィールドがインタレースされて７２０ｘ５７６画素の１つのインタレースされたフレームを定義する。フィールド画像においては、ＤＣＴブロックはフレーム画像の行数の半分の行数であっても８ｘ８画素ブロックに対応している。マクロブロックはフレーム画像におけると同様に２ｘ２ＤＣＴブロックである。
【０１６０】
フィールド画像に対するテンプレート（図２７（ｂ）におけるＸ）は１ＤＣＴブロックの解像度で定義される。ストライプの発生を防止するために両方のフィールドに対して同じテンプレートが使用される。ブロックの位置はフィールドの開始に対して固定されているのでそれぞれのフィールドに対する特別の調整は必要ない。
【０１６１】
図２８において、図２８（ｃ）に示される１つのマクロブロックに対して、テンプレートは１つの黒く塗りつぶしたブロックに透かし模様を埋め込むことを示している。インターリーブされたフレームにおいて、図２８（ａ）及び（ｄ）に示すように、それぞれ２つのフィールドからの２つのマクロブロックがインターリーブされて水平方向に２つのＤＣＴブロックと垂直方向に４つのＤＣＴブロックを組み合わせた１つの複合マクロブロックが構成される。その複合マクロブロックはフィールド１からのマクロブロックＢ１とフィールド２からのマクロブロックＢ２からなる。インタレースされたフレームの線分はフィールド１からの線はＦ１により、フィールド２からの線はＦ２により示される。
【０１６２】
表示された透かし模様Ｘの解像度は、図２８（ｃ）に示されるようにテンプレートの解像度は８ｘ８画素であっても、図２８（ｄ）に示すように水平に８画素×垂直に１６画素の解像度を持つ。
【０１６３】
フィールド画像及びフレーム画像のシーケンス
少なくとも１つのフィールド画像と少なくとも１つのフレーム画像を備えるビデオシーケンスを考える。そのテンプレート、図２７（ｂ）のＸは１つ以上のフィールド画像用に設計されており１ＤＣＴブロックの解像度を持つ。その結果、水平に１ブロック×垂直に２ブロックの解像度を持つ透かし模様が表示される。１つ以上のフレーム画像内の透かし模様はフィールド画像のそれと一致する必要がある。これはフイールド画像に使用されたテンプレートからフレーム画像用のテンプレートを自動的に導出することにより保障される。これを達成する最も簡単な方法はフィールドテンプレートの全ての行を２倍にすることである。それによりフレームテンプレートは水平１ブロック×垂直２ブロックの有効解像度を持ちフレーム画像に表示された透かし模様がフィールド画像のそれと確実に一致する。
【０１６４】
実際にはビデオシーケンスはその画像のタイプの確認がなされる。フィールドのみ及びフレームのみのシーケンスに対してはその画像タイプに適したテンプレートが用いられる。両方の画像タイプを持つシーケンスに対しては、フィールド画像に適したテンプレートが選ばれてそのシーケンス内のフィールド画像に使用される。次にフレーム画像に使用するテンプレートはそのフィールドテンプレートから導出して透かし模様の外見に矛盾が生じないようにする。
【０１６５】
前記テンプレートは１つ以上の記録装置に記録されたビットマップであってもよい。
【０１６６】
変更
パケット化されたビットストリーム
元のシーケンスがＭＰＥＧ−２パケットストリーム（パケット化ビデオシーケンス又はオーディオ・ビデオマルチプレックス）の場合、透かし模様が埋め込まれたビデオシーケンスが再パケット化されて残りの透かし模様データがそのパケット化ストリームエンドコードの後に置かれるのであれば、ビデオシーケンスエンドコードは必要なくなる。
【０１６７】
パケット化ストリーム（オーディオ・ビデオマルチプレックス）の埋込みを簡単にするために、そのストリームを前処理してビデオシーケンスを抽出することができる。次に、上記のように、ビデオシーケンスは個別に埋め込みできる。埋め込まれたビデオシーケンスは、テンプレートとして全てのパケット情報の再利用ができ全てのタイミングを保持する既存のパケット化ストリームファイル（画像データサイズを維持する通常の副次効果）を使ってオーディオと一緒に再パケット化できる。この追加処理段階は埋込み処理の操作には必須条件ではないので上記の擬似コードにおいては説明されていない。
【０１６８】
圧縮比の変更
上記の実施例では圧縮ビットストリームに透かし模様データを埋め込む前にそのビデオは画質を最高にするために最小の圧縮比で圧縮されているものと想定する。よって、透かし模様ユーザデータフィールドが全ての暗号化された元の係数を含むことはなく、残りのデータはファイルの最後に添付される。本発明の別のバージョンにおいては、ここではその方法は採らないが、圧縮を実行する前に透かし模様データを収納するのに必要なデータスペースの推定値を与えて透かし模様ユーザデータフィールドに元の係数全部を収め且つ表示画像データフィールドに新しいＤＣ係数を収めるのに十分なスペアスペースを提供するよう圧縮を制御する。
【０１６９】
暗号化された原ＡＣ ＶＬＣ及びＤＣ差分の添付
上記の実施例においては、透かし模様ユーザデータフィールドに格納される分を超過する原ＡＣ ＶＬＣ及びＤＣ差分はファイルの最後に添付される。しかしそれらはファイルの最初に置いてもよい。
【０１７０】
好ましい本実施例においては、ファイルの最後に添付された残余のバイト数がカウントされる。そのカウント数はその残余のデータの最後に置かれており、残余のデータのスタートが容易にアクセスできるようにする。
【０１７１】
原ＡＣ ＶＬＣ及びＤＣ係数をユーザデータフィールドに格納する他の方法
上述の説明において、原ＡＣ ＶＬＣ及びＤＣ係数は圧縮されたビットストリームのユーザデータフィールド２０に格納される。図１４のフレームＰ１及びＰ２の実施例で示したように、フレームＰ１のデータのある部分がフレームＰ１のユーザデータスペース２０に格納されそれを超える部分があればフレームＰ２のユーザデータスペースに格納される。その処理はビットストリーム全体を通じて継続される。残余のデータがあればビットストリームの最後に添付される。
【０１７２】
上記処理の他の実施例においては、図２９に示すように、フレームＰ１の原ＡＣ ＶＬＣ及びＤＣ差分はフレームＰ１のユーザデータスペース２０に格納される。全てのフレームに対して、そのフレームのユーザデータスペースに暗号化されたＡＣ ＶＬＣ及びＤＣ差分と一緒に収めきれなかった、それらＡＣ ＶＬＣ及びＤＣ差分のバイト数Ｂからなる残余データフィールド２９１が生成される。残余のＡＣ ＶＬＣ及びＤＣ差分がなければ、そのフレームに対するバイト数Ｂはゼロである。したがって各フレームはそのユーザデータスペース２０内にはそのフレーム自身のデータだけを納め、残りのデータはどこか他の所へ、例えば、図２９のバッファ２９０に格納する。
【０１７３】
上記残余のデータ、即ち本実施例においては、バッファ２９０のコンテンツは、図３０に示すＭＰＥＧビットストリームの最後に添付させてもよい。２９２で示すように、それはビットストリームの開始の終わり（End of Start）に添付させてもよく、又は２９３で示すようにそれはビットストリーム終了の後に添付させてもよい。
【０１７４】
ユーザデータのビット数を表すコードＢの選択は、ＭＰＥＧビットストリームで使われている他のコードを表すものでないコード、特にＭＰＥＧ開始コードと混乱させないように選ばれる。
【０１７５】
ファイル
上述のようにコードＢと暗号化された残余のＡＣ ＶＬＣ及びＤＣ差分からなる全ての残余のデータは、ビットストリームの最後に添付される。また他の実施例において、その残余のデータはビットストリームから分離されたファイルに格納される。そのファイルは図３０に示すようにビットストリームの初め２９２、又は最後２９３に添付させてもよい。図３１に示すように、ファイルは送信媒体２９４、例えばビットストリームから分離されたデータキャリア又は通信チャンネルに格納されてもよい。そのデータキャリアはフロッピー（登録商標）ディスク、テープ又はその他の記録媒体であってもよい。
【０１７６】
上記ファイルはそのビットストリームと関連付けられ、一体化される。それは図３０に示すようにビットストリームに添付させることにより構成されてもよい。ファイルが図３１に示すように分離して格納される場合には、例えば、ファイルとビットストリームを結び付ける識別子を使うことによりそのファイルとビットストリームとを関連付けてもよい。そのような識別子の例としてはＵＭＩＤがある。
【０１７７】
洗浄
図２９のビットストリームから透かし模様を洗浄するために、ビットストリームＰ１〜Ｐｎを格納して構文解析を行う。コードＢ、ＡＣ ＶＬＣ及びＤＣ差分からなる残余のデータは構文解析処理中に添付されたデータ２９２又は２９３から検索され、又はファイル２９２、２９３又は２９４から取り出されて格納される。各フレームに対し、ユーザデータフィールド２０のデータが復号化されてビットストリームの変更データを置き換えるのに使われる。そのフィールドに対するバイト数Ｂが読み出される。それがゼロより大きい場合、次にそのフィールドに対する残余データが複合化されそのフレームの残っている変更データを置き換えるのに使われる。
【０１７８】
ＭＰＥＧビットストリームの例においては、フレームの番号付けは行わず残余データフィールド２９１の番号付けも行われない。そのような番号付けは不必要であるからである。全てのフレームとそれと関連する残余データフィールドは連続して処理されるからである。そのような番号付けは本発明のその他の実施例において与えることができる。
【０１７９】
透かし模様技法の選択
上記の記述では３つの透かし模様技法の選択について説明した。然し以下の項目を含む多くの技法から選択してもよい。
（ａ）変更ＤＣ差分によるＤＣ差分の置き換えと原ＤＣ差分の取出し
（ｂ）ビットストリーム内に原ＤＣ差分に対するスペースを空けるためにＡＣ ＶＬＣを取り除く方法
（ｃ）取り外した係数をユーザデータブロックに置く方法
（ｄ）取り外した係数をビットストリームの最後に置く方法
（ｅ）透かし模様を行うための動きベクトルの変更
（ｆ）透かし模様を行うための色情報の変更
（ｇ）Ｐ及び／又はＢフレームのスペアスペースに係数を置く方法
これらの技法は単独又は組み合わせて使ってもよい。例えば、ある場合にはＡＣ ＶＬＣを取り出さずにＤＣ係数だけを変更された係数と置き換えることも可能である。常時ではないが、一般に、透かし模様のために係数及び動きベクトルを変更するとビット数が増加する。
【０１８０】
使用する技法はビットレートに対するそれらの与える影響に応じて選ばれる。ある特定の技法の組合せの結果ビット数が大きくなりすぎる場合には（例えば、（ａ）と（ｃ）の組合せ）、別の技法の組合せを選択する。使用する技法はそれを識別するフラグによって透かし模様が埋め込まれたビットストリーム内で識別されるので、そのビットストリームが透かし模様を取り除くために洗浄装置にかけられるときその洗浄装置は正しくその透かし模様を取り除くのに必要な情報が与えられる。
【０１８１】
アプリケーション
以上説明した本発明の実施例は次に述べる各状況において適用できる。
【０１８２】
コンテンツ仲介（content brokering）
上記の技法を用いて製造される可視透かし模様が埋め込まれたファイルは規格品ＭＰＥＧ−２プレーヤーを使ってコンテンツをプレビューでき（その透かし模様ファイルはＭＰＥＧ−２実証ストリームである）、特注品のプレーヤーは必要としない。その透かし模様を埋め込んだファイルにはその処理を反転するのに必要な全ての情報が含まれる（暗号キー及びテンプレートファイルを除く）。したがって唯一必要なのはそのコンテンツのコピーを流通／伝送するだけである（従来の手続きでは購買者がそのコンテンツを購入するとそのシーケンスの保護コピーとそれに続く非保護コピーとを流通する手続きがとられる）。
【０１８３】
この流通の形態としては次のような多くの形態を採ることができる。
【０１８４】
透かし模様を埋め込んだコンテンツは安全サーバ上に格納できるが、ファイル内の透かし模様データの暗号化はファイルのコピーが請求された時点で行うことができる。顧客は自分の詳細情報を入力でき次にそれらは使用された暗号キーのコピーと一緒に安全サーバ上に格納される。次に顧客がそのコンテンツの購入を希望すれば顧客の詳細情報を索引として使って暗号キーが安全サーバから検索できる。このことは一人の顧客のキーは別の顧客の電子すかしを埋め込んだコンテンツのコピーを洗浄するのには使えないことを意味する。勿論、それでもその鍵を持つ顧客がコンテンツ（透かし模様を埋め込んだ又は洗浄された）の彼らのコピーを別の人に提供することは可能であろう。
【０１８５】
一旦顧客がそのコンテンツを購入すれば次のどちらかのオプションを選べる。即ち、ファイルを洗浄して可視的透かし模様のないファイルを生成するか、又はそのファイルのローカルコピーとして透かし模様を埋め込んだまま残しておき必要なときにリアルタイムで洗浄するかのいずれかである。前者の場合は現在のモデルと変わらないので受け入れられ易い。
【０１８６】
番組毎料金徴収（ペイ・パー・ビュー）放送
透かし模様処理の特性を生かしたリアルタイム洗浄装置を開発することが可能である。これは保護されたコンテンツをプレビューのため聴取者に流すことができることを意味する。続いて聴取者がそのコンテンツに対する支払いを決めると例えば、受信機セットトップボックスに挿入する鍵が与えられてそのコンテンツは受信と同時にローカルに洗浄される。したがって送信中にそのデータを変更する必要はない。リアルタイム洗浄を迅速容易にするためには全ての暗号化透かし模様情報を最初にそのセットトップボックスにダウンロードする必要があろう。又は、追加の透かし模様データ分を補償する十分なパディングを画像フレーム内に含めるようコンテンツ圧縮処理を変更することもできる。予め定めたテンプレートデザインを用いて、補償が必要になる最悪の場合の（ビット数）増加分を計算できる。
【０１８７】
本発明はハードウエア又はソフトウエアもしくはそれらの組合せにより実施してもよい。
【０１８８】
本発明は、それがコンピュータ上で実行される場合には、上記の方法を実現するコンピュータプログラムを提供する。本発明は更にそのようなプログラムを記録する記録装置を提供する。
【図面の簡単な説明】
【０１８９】
【図１】画像フレームの概要図である。
【図２】画像フレーム内の８ｘ８画素ブロックの概要図である。
【図３】ＤＣＴブロックの概要図である。
【図４】マクロブロックの概要図である。
【図５】マクロブロックの行とスライスの概要図である。
【図６】画像グループ（ＧＯＰ）の概要図である。
【図７】画像データの１フレームの概要図である。
【図８】１つのマクロブロックの１ビットストリームの概要図である。
【図９】透かし模様を定義するテンプレートの概要図である。
【図１０】本発明によるＩフレームに適用された透かし模様技術の概要を説明するフローチャートである。
【図１１】本発明の実施例に使用されたデータフォーマットを説明する概要図である。
【図１２】本発明の実施例に使用されたデータフォーマットを説明する概要図である。
【図１３】本発明の実施例に使用されたデータフォーマットを説明する概要図である。
【図１４】圧縮画像フレーム中に分配されたユーザデータを示す概要図である。
【図１５】透かし模様暗号化・復号化処理のフローチャートである。
【図１６】本発明による透かし模様取外し方法の概要を説明するフローチャートである。
【図１７】本発明による透かし模様システムを説明する概要図である。
【図１８】透かし模様取外し装置の概要ブロック図である。
【図１９】透かし模様埋込み処理及び透かし模様取外し処理に使用された３つのバッファの概要図である。
【図２０】本発明による非Ｉフレームに適用された透かし模様方法の概要を説明するフローチャートである。
【図２１】（ａ）は透かし模様を埋め込んだマクロブロックを示し、（ｂ）はＤＣＴタイプ変更処理のフローチャートである。
【図２２】技法選択処理のフローチャートである。
【図２３】動きベクトルと一緒に使用されるテンプレートを示す図である。
【図２４】本発明の実施形態における動きベクトルコードに適用された方法の概要を説明するフローチャートである。
【図２５】動きベクトルのコーディングを説明する図である。
【図２６】ビデオシーケンスのフレーム画像への透かし模様埋込みを説明する図である。
【図２７】ａ）ビデオシーケンスのフィールド画像への透かし模様埋込みを説明する図であり、ｂ）ビデオシーケンスのフィールド画像及びフレーム画像への透かし模様埋込みを説明する図である。
【図２８】インタレースされたフィールド及びフレームに対する透かし模様埋込みマクロブロックを説明する図である。
【図２９】本発明の変更例を示す図である。
【図３０】本発明の変更例を示す図である。
【図３１】本発明の変更例を示す図である。
【図１】
2005517362.tif 000004
【図２】
2005517362.tif 000005
【図３】
2005517362.tif 000006
【図４】
2005517362.tif 000007
【図５】
2005517362.tif 000008
【図６】
2005517362.tif 000009
【図７】
2005517362.tif 000010
【図８】
2005517362.tif 000011
【図９】
2005517362.tif 000012
【図１０】
2005517362.tif 000013
【図１１】
2005517362.tif 000014
【図１２】
2005517362.tif 000015
【図１３】
2005517362.tif 000016
【図１４】
2005517362.tif 000017
【図１５】
2005517362.tif 000018
【図１６】
2005517362.tif 000019
【図１７】
2005517362.tif 000020
【図１８】
2005517362.tif 000021
【図１９】
2005517362.tif 000022
【図２０】
2005517362.tif 000023
【図２１】
2005517362.tif 000024
【図２２】
2005517362.tif 000025
【図２３】
2005517362.tif 000026
【図２４】
2005517362.tif 000027
【図２５】
2005517362.tif 000028
【図２６】
2005517362.tif 000029
【図２７】
2005517362.tif 000030
【図２８】
2005517362.tif 000031
【図２９】
2005517362.tif 000032
【図３０】
2005517362.tif 000033
【図３１】
2005517362.tif 000034
【手続補正書】
【提出日】平成16年10月15日(2004.10.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
情報を表すデジタルコードを含むビットストリームの変更方法において、
前記情報の変更を表す少なくとも１つの変更コードが含まれる前記ビットストリームの一部分を占める少なくとも１つのデジタルコードを選択するステップと、
前記ビットストリームの該一部分から、前記選択されたデジタルコードを取り外すステップと、
前記選択されたコードの代わりに前記少なくとも１つの変更コードを、前記ビットストリームの該一部分に代入するするステップとを有し、
前記ビットストリームから取り出された前記選択されたコードのビット数は、前記ビットストリームに代入された前記変更コードのビット数に等しいか大きく、
さらに、（１）前記取り外した選択されたコードを前記ビットストリームと関連付けて格納するステップと、（２）前記取り外した選択されたコードを前記ビットストリーム内の１つ以上の取外しコードデータフィールド内に配置するステップとのうちの少なくとも一方を有するビットストリームの変更方法。
【請求項２】
前記選択され取り外されたコードを、前記取外しコードデータフィールドに再分配するステップと、
前記取り外した選択されたコードを、前記ビットストリームと関連付けて好ましい順序で格納するステップとをさらに有し、
前記好ましい順序は、１）前記取外しコードデータフィールドに格納し、２）前記取り外した選択されたコードを前記ビットストリームに関連付けて格納することを特徴する請求項１に記載のビットストリームの変更方法。
【請求項３】
前記取り外した選択されたコードの一部分を前記ビットストリームと関連付けて格納し、
前記取り外した選択されたコードの残余を、前記１つ以上の取外しコードデータフィールド内に配置するステップとをさらに有する請求項１に記載のビットストリームの変更方法。
【請求項４】
前記ステップ（１）の前記取り外した選択されたコードを前記ビットストリームと関連付けて格納するステップでは、前記取り外した選択されたコードを前記ビットストリームの最後に添付させることを特徴する請求項１に記載のビットストリームの変更方法。
【請求項５】
前記ステップ（１）の前記取り外した選択されたコードを前記ビットストリームと関連付けて格納するステップでは、前記取り外した選択されたコードをファイルに格納することを特徴する請求項１に記載のビットストリームの変更方法。
【請求項６】
前記ファイルは、前記ビットストリームの最後に添付されることを特徴する請求項５に記載のビットストリームの変更方法。
【請求項７】
前記ファイルは、前記ビットストリームのスタートエンドに添付されることを特徴する請求項６に記載のビットストリームの変更方法。
【請求項８】
前記ファイルは、前記ビットストリームから分離されるとともに、該ビットストリームと関連付けられていることを特徴する請求項５に記載のビットストリームの変更方法。
【請求項９】
前記取り外した選択されたコードの全てを、前記ビットストリームの最後に添付させるステップをさらに有する請求項１に記載のビットストリームの変更方法。
【請求項１０】
請求項１に記載のビットストリームの変更方法において、
前記取り外した選択されたコードの全てを、前記１つ以上の取外しコードデータフィールド中に配置するステップをさらに含む。
【請求項１１】
情報信号を圧縮して前記ビットストリームを生成するステップをさらに含み、
前記圧縮の量は、前記取り外した選択されたコードの全てが前記ビットストリーム内の取外しコードデータフィールド内に配置できるように、前記変更されるビットストリームのデータ量の予測値に基づくものであることを特徴する請求項１０に記載のビットストリームの変更方法。
【請求項１２】
前記変更されたビットストリームのビットレートが元のビットストリームに対して変わらないように、前記変更されたビットストリームにパディングビットを加えるステップをさらに有する請求項１に記載のビットストリームの変更方法。
【請求項１３】
前記変更コードが含まれる前記ビットストリームの一部分又は複数の部分を定義するために、テンプレートを用いるステップをさらに有する請求項１に記載のビットストリームの変更方法。
【請求項１４】
前記情報を表す前記デジタルコードは、前記情報の変換係数を表すコードであることを特徴する請求項１に記載のビットストリームの変更方法。
【請求項１５】
前記係数は、ＤＣＴ係数であることを特徴する請求項１４に記載のビットストリームの変更方法。
【請求項１６】
前記ＤＣＴコードは、ＤＣ係数及びＡＣ係数を含み、
前記ＤＣ係数及びＡＣ係数を表すコードの全てが前記ビットストリームの該部分から取り出され、
前記ビットストリームの該部分に配置される前記変更コードはＤＣ係数を表すコードであることを特徴する請求項１５に記載のビットストリームの変更方法。
【請求項１７】
前記ビットストリームの同じ部分から取り出されたコードは、グループコードで識別されるグループにグループ分けられることを特徴する請求項１６に記載のビットストリームの変更方法。
【請求項１８】
前記ビットストリームの該部分は、少なくとも１つのＤＣＴブロックであることを特徴する請求項１７に記載のビットストリームの変更方法。
【請求項１９】
前記ビットストリームは、（１）ＡＣ係数を表すコードを取り除く技術及び（２）ＤＣ係数を表すコードを取り除く技術のうち少なくとも１つによって変更可能であり、
前記ＤＣコードを変更されたＤＣコードで置き換え、
前記取り外した選択されたコードを（ａ）前記ビットストリームと関連付けて格納し、及び／又は（ｂ）前記ビットストリーム内の１つ以上の取外しコードデータフィールド中に配置するものであり、
さらに、前記技術の前記ビットストリーム内のビット数に及ぼす影響を評価し、該評価に応じて前記ビットストリームの変更を実行するための１つ以上の前記技術を選択するステップを有する請求項１６に記載のビットストリームの変更方法。
【請求項２０】
前記ビットストリームは、少なくともイントラエンコードされた（intra-encoded）画像を含むビデオビットストリームであり、
前記イントラエンコードされた画像上で実行されることを特徴する請求項１５に記載のビットストリームの変更方法。
【請求項２１】
前記ビットストリームは、インターエンコードされた（inter-encoded）画像を含むものであり、
前記インターエンコードされた画像上で実行されることを特徴する請求項２０に記載のビットストリームの変更方法。
【請求項２２】
前記インターエンコードされた画像はＤＣ係数を表すＤＣコードを含み、
さらに、前記ＤＣコードの選択されたものを取り除くステップと、
前記取り出されたものを前記ビットストリームと関連付けて格納するステップ及び／又は前記ビットストリーム内の１つ以上の取外しコードデータフィールド中に配置するステップと、
前記取り外したコードを予め定めた値の変更コードで置換するステップとを有する請求項２１に記載のビットストリームの変更方法。
【請求項２３】
前記インターエンコードされた画像内のＤＣ係数を表す前記ＤＣコードは、量子化された変更値を表し、
前記予め定めた値は、ゼロより大きい最小変更量子値を表すことを特徴する請求項２２に記載のビットストリームの変更方法。
【請求項２４】
前記予め定めた値は、正又は負数の１であることを特徴する請求項２３に記載のビットストリームの変更方法。
【請求項２５】
前記インターエンコードされた画像は動きベクトルを表すコードを含み、
さらに、前記変更コードが含まれる前記ビットストリームの部分と関連する前記動きベクトルを取り除くステップと、
原動きベクトルコードをゼロ動きベクトルを示す動きベクトル変更コードで置き換えるステップと、
前記取り外した動きベクトルコードを前記ビットストリームの最後に添付させるステップ及び／又は前記取り外したコードを前記ビットストリーム内の取外しコードデータフィールド内に配置するステップとを有する請求項２１に記載のビットストリームの変更方法。
【請求項２６】
前記変更コードが含まれる前記ビットストリームの部分と画像中で隣接するインターエンコードされた画像の部分と関連する動きベクトルを取り除くステップと、
前記関連する部分の元の動きベクトルコードをゼロ動きベクトルを示す動きベクトル変更コードで置き換えるステップと、
前記取り外した動きベクトルコードを前記ビットストリームの最後に添付させるステップ、及び／又は、前記取り外したコードを前記ビットストリーム内の取外しコードデータフィールド内に配置するステップとをさらに有する請求項２５に記載のビットストリームの変更方法。
【請求項２７】
前記変更されるイントラエンコードされた画像のブロックを定義する第１のテンプレートと、前記インターエンコードされた画像の前記第１のテンプレートのブロックに対応するブロックを定義する第２のテンプレートとを提供するステップをさらに有し、
前記インターエンコードされた画像に関連する動きベクトルは、ゼロに設定されることを特徴する請求項２５に記載のビットストリームの変更方法。
【請求項２８】
前記第２のテンプレートは、前記関連する動きベクトルがゼロに設定される前記ブロックを含むマクロブロックを定義することを特徴する請求項２７に記載のビットストリームの変更方法。
【請求項２９】
前記第２のテンプレートは、前記マクロブロックと境界を接する更なるマクロブロックを定義するものであり、
前記更なるマクロブロックに関連する動きベクトルは、ゼロに設定されることを特徴する請求項２８に記載のビットストリームの変更方法。
【請求項３０】
前記ビットストリームは、エンコーディングのタイプを示すタイプコードを持ち、フィールドタイプ又はフレームタイプとしてエンコード可能なＤＣＴブロックを備え、
さらに、フィールドタイプを示す前記タイプコードで選択されたものを取り外すステップと、
前記取り外したタイプコードをフレームタイプを示す変更タイプコードで置き換えるステップと、
前記取り外したタイプコードを前記ビットストリームと関連付けて格納する、及び／又は該取り外したタイプコードをビットストリーム内の１つ以上の取外しコードデータフィールド内に配置するステップとを有する請求項２０に記載のビットストリームの変更方法。
【請求項３１】
前記ビットストリームは、ＭＰＥＧ２ビットストリームであることを特徴する請求項１５に記載のビットストリームの変更方法。
【請求項３２】
前記変更コードが含まれる前記ビットストリームの部分を示すデータを提供するステップをさらに有する請求項１に記載のビットストリームの変更方法。
【請求項３３】
前記ビットストリームは、補助データフィールドを含み、
前記補助データフィールドから取り出されたコードのデータフィールドを識別するデータを前記ビットストリーム内に提供するステップをさらに有する請求項３１又は３２に記載のビットストリームの変更方法。
【請求項３４】
前記取り外した選択されたコードを前記ビットストリームと関連させて格納する前に暗号化し、及び／又は、該取り外した選択されたコードを前記取外しコードデータフィールド内に配置するステップをさらに有する請求項１に記載のビットストリームの変更方法。
【請求項３５】
元のビットストリームを復元するビットストリームの復元方法において、
前記元のコードが取り出され記録されたビットストリームの選択された部分に変更コードを持つ、変更されたビットストリームを受け取ることを含むものであり、
当該方法は、
前記ビットストリームの構文解析をするステップと、
記録装置から元のコードを読み出すステップと
前記変更コードを元のコードで置き換えるステップとをさらに含むビットストリームの復元方法。
【請求項３６】
元のビットストリームを復元するビットストリームの復元方法において、
前記ビットストリームの選択された部分から元のコードを取り外して前記ビットストリームの変更ユーザデータ部に配置し、前記選択された部分に変更コードを持つ変更されたビットストリームを受け取るステップと、
前記ビットストリームを構文解析するステップと、
前記元のコードを格納するステップと、
前記変更コードを前記格納された元のコードで置き換えるステップとを有するビットストリームの復元方法。
【請求項３７】
元のビットストリームを復元するビットストリームの復元方法において、
前記ビットストリームの選択された部分から元のコードを取り外して、前記ビットストリームの変更ユーザデータ部に配置し、前記ビットストリームの最後に添付させ、前記選択された部分に変更コードを持つ変更されたビットストリームを受け取るステップと、
前記ビットストリームを構文解析するステップと、
前記元のコードを格納するステップと、
前記変更コードを前記格納された元のコードで置き換えるステップとを有するビットストリームの復元方法。
【請求項３８】
前記元のコードは、暗号化されており、
前記変更コードを復号化された前記元のコードで置き換える前に、前記暗号化された元のコードを復号化するステップをさらに有する請求項３６に記載のビットストリームの復元方法。
【請求項３９】
前記変更コードが含まれる前記ビットストリームの部分を定義して置換するコードを選択するためにテンプレートを使用するステップをさらに有する請求項３５に記載のビットストリームの復元方法。
【請求項４０】
前記変更は、前記情報信号により表される情報において視認可能な効果を生ずることを特徴する請求項１に記載のビットストリームの復元方法。
【請求項４１】
請求項１に記載のビットストリームの変更方法を実行するように構成された装置。
【請求項４２】
適したプロセッサで実行された場合、請求項１に記載のビットストリームの変更方法を実行するように構成されたコンピュータプログラム。
【請求項４３】
請求項４２に記載のコンピュータプログラムを記録する媒体。
【請求項４４】
当該媒体は、記録媒体であることを特徴する請求項４３に記載の媒体。
【請求項４５】
当該媒体はｍ通信チャンネルであることを特徴する請求項４３に記載の媒体。
【請求項４６】
ビットストリームの選択された部分から元のコードが取り出され、該ビットストリームの最後に添付されている、前記選択された部分に変更されたコードを持つ、変更されたビットストリーム。
【請求項４７】
ビットストリームの選択された部分から元のコードが取り出され、該ビットストリーム内の変更ユーザデータ部に配置され、該選択された部分に前記変更コードを持つ、変更されたビットストリーム。
【請求項４８】
ビットストリームの選択された部分から元のコードが取り出され、その一部が前記ビットストリーム内の変更ユーザデータ部に配置され、他の部分が前記ビットストリームの最後に添付され、前記選択された部分に変更コードを持つ、変更されたビットストリーム。
【請求項４９】
情報を表すデジタルコードを含むビットストリームを変更するビットストリームの変更装置において、
前記情報内で視認可能な変更を表す少なくとも１つの変更コードが含まれる前記ビットストリームの一部分を占有する少なくとも１つのデジタルコードを選択する選択ステージと、
前記ビットストリームの該一部分から前記選択されたデジタルコードを取り除く取外しステージと、
前記ビットストリームの該一部分に前記選択取り出されたコードの代わりに前記変更コードを代入する変更コード配置ステージとを備え、
前記ビットストリームから取り外した前記選択されたコードのビット数は前記ビットストリームに挿入される該変更コードのビット数に等しいか大きく、
さらに、（１）前記取り外した選択されたコードを前記ビットストリームと関連付けて格納する及び／又は（２）前記取り外した選択されたコードを前記ビットストリーム内の１つ以上の取外しコードデータフィールドに配置する取外しコード配置ステージを備えるビットストリームの変更装置。
【請求項５０】
前記取外しコード配置ステージは、前記選択され取り出されたコードを前記取外しコードデータフィールドに再分配し、前記取り外し選択されたコードを好ましい順序で前記ビットストリームと関連付けて格納するものであり、
前記好ましい順序は、（１）前記取外しコードデータフィールドに格納し、（２）前記ビットストリームと関連付けて前記取り外し選択されたコードを格納するものであることを特徴する請求項４９に記載のビットストリームの変更装置。
【請求項５１】
前記取外しコード配置ステージは、前記取り外し選択されたコードの一部分を前記ビットストリームと関連付けて格納し、前記取り外し選択されたコードの他の部分を前記１つ以上の取外しコードデータフィールドに配置することを特徴する請求項４９に記載のビットストリームの変更装置。
【請求項５２】
前記取外しコード配置ステージは、（１）前記取り外し選択されたコードを前記ビットストリームと関連付けて前記ビットストリームの最後に、前記取り外し選択されたコードを添付させることにより格納するよう構成されていることを特徴する請求項４９に記載のビットストリームの変更装置。
【請求項５３】
前記取外しコード配置ステージは、（１）前記取り外し選択されたコードを前記ビットストリームと関連付けてファイルに格納するよう構成されていることを特徴する請求項４９に記載のビットストリームの変更装置。
【請求項５４】
前記取外しコード配置ステージは、前記ファイルを前記ビットストリームの最後に添付させるよう構成されていることを特徴する請求項５３に記載のビットストリームの変更装置。
【請求項５５】
前記取外しコード配置ステージは、前記ファイルを前記ビットストリームとは分離し、該ビットストリームと関連付けて格納するよう構成されることを特徴する請求項５３に記載のビットストリームの変更装置。
【請求項５６】
前記取外しコード配置ステージは、前記取り外し選択されたコードの全てを前記ビットストリームの最後に添付させるよう構成されることを特徴する請求項４９に記載のビットストリームの変更装置。
【請求項５７】
前記取外しコード配置ステージは、前記取り外し選択されたコードの全てを該１つ以上の取外しコードデータフィールドに配置するよう構成されることを特徴する請求項４９に記載のビットストリームの変更装置。
【請求項５８】
前記デジタルコードは、前記情報のＤＣＴ係数を表すことを特徴する請求項４９に記載のビットストリームの変更装置。
【請求項５９】
前記ＤＣＴ係数はＤＣ及びＡＣ係数を含み、
前記取外しステージは、前記ビットストリームの該部分から前記ＤＣ及びＡＣ係数を表す全てのコードを取り外し可能であり、
前記変更コード配置ステージは、前記ビットストリームの該部分にＤＣ係数を表す前記変更コードを配置するよう構成されることを特徴する請求項５８に記載のビットストリームの変更装置。
【請求項６０】
前記取外しステージは、（１）ＡＣ係数を表すコードを取り除く技術及び（２）ＤＣ係数を表す係数を取り除く技術の少なくとも１つを実行可能であり、
前記変更コード配置ステージは、前記取り外したＤＣコードを変更されたＤＣコードで置換可能であり、
前記取外しコード配置ステージは、前記取り外し選択されたコードを前記ビットストリームと関連付けて格納可能であり、及び／又は、該取り外し選択されたコードを前記ビットストリーム内の１つ以上の取外しコードデータフィールドに配置可能であり、
さらに、前記ビットストリームにおけるビット数に対する前記技術の効果を評価し、該評価に基づき前記技術の１つ以上を選択操作するステージをさらに備える請求項５８に記載のビットストリームの変更装置。
【請求項６１】
前記取外しコード配置ステージは、前記取り外し選択されたコードを前記ビットストリームの最後に添付させ、及び／又は、該取り外し選択されたコードを前記ビットストリーム内の１つ以上の取外しコードデータフィールドに配置することを特徴する請求項６０に記載のビットストリームの変更装置。
【請求項６２】
前記ビットストリームは、少なくともイントラエンコードされた画像を有し、
当該ビットストリームの変更装置は、前記イントラエンコードされた画像を変更するよう構成されていることを特徴する請求項５９に記載のビットストリームの変更装置。
【請求項６３】
前記ビットストリームは、インターエンコードされた画像を有し、
当該ビットストリームの変更装置は、前記インターエンコードされた画像を付加的に変更するよう構成されていることを特徴する請求項６２に記載のビットストリームの変更装置。
【請求項６４】
前記インターエンコードされた画像は、ＤＣ係数を表すコードを含み、
さらに、前記コードのうち選択されたものを取り外し操作するステージと、
前記選択されたものを前記ビットストリームと関連付けて格納し、及び／又は、該選択されたものを前記ビットストリーム内の１つ以上の取外しコードデータフィールドに配置する配置ステージと、
前記取り外したコードを予め定めた値の変更コードで置換する置換ステージとを備える請求項６３に記載のビットストリームの変更装置。
【請求項６５】
前記インターエンコードされた画像内のＤＣ係数を表す前記コードは、量子化された変更値を表し、
前記予め定めた値はゼロより大きい最小変更量子の値を表すことを特徴する請求項６４に記載のビットストリームの変更装置。
【請求項６６】
前記予め定めた値は、プラス又はマイナス１であることを特徴する請求項６５に記載のビットストリームの変更装置。
【請求項６７】
前記インターエンコードされた画像は、動きベクトルを表すコードを含んでおり、
前記変更コードが含まれるビットストリームの部分と関連する前記動きベクトルコードを取り外し、元の動きベクトルコードをゼロ動きベクトルを表す動きベクトル変更コードで置換し、該取り外した動きベクトルコードをビットストリームと関連付けて格納し及び／又は取り外したコードをビットストリーム内の取外しコードデータフィールド中に配置する動きベクトルコード取外しステージをさらに備えることを特徴する請求項６３に記載のビットストリームの変更装置。
【請求項６８】
前記動きベクトルコード取外しステージは、前記変更コードが含まれるビットストリームの部分と画面内で隣接するイントラエンコードされた画像の部分と関連する動きベクトルコードを取り外し、該関連する部分の元の動きベクトルコードをゼロ動きベクトルを示す動きベクトル変更コードで置き換え、該取り外した動きベクトルコードを前記ビットストリームと関連付けて格納し及び／又は前記取り外したコードを前記ビットストリーム内の取外しコードデータフィールド中に配置する。ことを特徴する請求項６７に記載のビットストリームの変更装置。
【請求項６９】
前記ビットストリームは、エンコーディングのタイプを示すタイプコードにより、フィールドタイプ又はフレームタイプとしてエンコードされるＤＣＴブロックを含み、
さらに、フィールドタイプを示す前記タイプコードの中から選択されたものを取り外す取外しステージと、
前記取り外したタイプコードをフレームタイプを示す変更タイプコードで置き換える置換えステージと、
前記取り外したタイプコードを前記ビットストリームと関連付けて格納し及び／又は該取り外したタイプコードを前記ビットストリーム内の１つ以上の取外しコードデータフィールドに配置する取外しコード配置ステージとを備える請求項５８に記載のビットストリームの変更装置。
【請求項７０】
元のビットストリームを復元するビットストリームの復元装置において、
元のコードが取り出され記録された、ビットストリームの選択された部分に変更コードを持つ、変更されたビットストリームを受け取る受取りステージと、
前記ビットストリームを構文解析する構文解析ステージと、
前記元のコードを格納する記録部と、
前記変更コードを前記元のコードで置き換える置換えステージとを備えるビットストリームの復元。
【請求項７１】
元のビットストリームを復元するビットストリームの復元装置において、
元のコードが取り出されビットストリームの変更ユーザデータ部に格納されている、前記ビットストリームの選択された部分に変更コードを持つ、変更されたビットストリームを受け取る受取りステージと、
前記ビットストリームを構文解析する構文解析ステージと、
前記元のコードを格納する記録部と、
前記変更コードを前記格納された元のコードで置き換える置換えステージとを備えるビットストリームの復元装置。
【請求項７２】
元のビットストリームを復元するビットストリームの復元装置において、
元のコードが取り出されビットストリームの変更ユーザデータ部に配置され、前記ビットストリームの最後に添付されている、前記ビットストリームの選択された部分に変更コードを持つ、変更されたビットストリームを受け取る受取りステージと、
前記ビットストリームを構文解析する構文解析ステージと、
前記元のコードを格納する記録部と、
前記変更コードを前記格納された元のコードで置き換える置換えステージとを備えるビットストリームの復元装置。
【請求項７３】
当該ビットストリームの復元装置は、ビットストリームを使う装置であり、
前記元のコードが暗号化されており、
さらに、前記暗号化された元のコードを復号化した後、前記変更コードを該復号化された元のコードで置き換える復号化ステージを備える請求項７１に記載のビットストリームの復元装置。
【請求項７４】
変更コードと少なくとも１つの復号鍵を含むビットストリームの部分を定義するテンプレートを記録するデータキャリア。
【請求項７５】
前記情報信号は、ビデオデータ、オーディオデータ、ビジュアルデータ、及びこれら以外のデータのうち１つ又はそれ以上を含むことを特徴する請求項１乃至３４のいずれか１項又は請求項４０に記載のビットストリームの変更方法、請求項３５乃至３９いずれか１項に記載のビットストリームの復元方法、請求項４１に記載の装置、請求項４２に記載のコンピュータプログラム、請求項４３乃至４５のいずれか１項に記載の媒体、請求項４６乃至４８のいずれか１項に記載の変更されたビットストリーム、請求項４９乃至６９のいずれか１項に記載ビットストリームの変更装置、請求項７０乃至７３のいずれか１項に記載のビットストリームの復元装置、又は請求項７４に記載のデータキャリア。
【請求項７６】
イントラエンコードされた画像及びインターエンコードされた画像を持つビデオシーケンスに可視的に透かし模様を埋め込む透かし模様埋込み方法において、
前記画像が前記ビデオの変換係数のブロックを表すデータを含み、動きベクトルが前記インターエンコードされた画像のブロックの少なくともどれかと関連するものであり、
前記ビデオに可視的に透かし模様の埋込みをするために変更される前記ブロックを定義する少なくとも１つのテンプレートを提供するステップと、
前記ビデオに可視的に透かし模様の埋込みをするために少なくともイントラエンコードされた画像において前記テンプレートにより定義されるブロック内の変換係数のうち少なくともいずれかを変更するステップと、
前記テンプレートにより定義されたインターエンコードされた画像のブロックと関連し、前記イントラエンコードされた画像の変更されたブロックに対応する動きベクトルをゼロに設定するステップとを有する透かし模様埋込み方法。
【請求項７７】
変更されるイントラエンコードされた画像ブロックを定義する第１のテンプレートと、関連する動きベクトルがゼロに設定される前記第１のテンプレートのブロックに対応するインターエンコードされた画像ブロックを定義する第２のテンプレートとを提供するステップを有する請求項７６に記載の透かし模様埋込み方法。
【請求項７８】
前記第２のテンプレートは、前記関連する動きベクトルがゼロに設定されるブロックを含むマクロブロックを定義することを特徴する請求項７７に記載の透かし模様埋込み方法。
【請求項７９】
前記第２のテンプレートは、前記マクロブロックと境界を接し、関連する動きベクトルがゼロに設定される更なるマクロブロックを定義することを特徴する請求項７８に記載の透かし模様埋込み方法。
【請求項８０】
前記ビデオシーケンスは、ブロックと動きベクトルを表すデジタルコードを含むビットストリームにより表されており、
さらに、変更されるブロックとゼロに設定される動きベクトルを表すデジタルコードを選択するステップと、
前記選択されたデジタルコードを前記ビットストリームから取り除くステップと、
前記変更されたコードを、前記選択されたコードの代わりに、前記ビットストリームに配置するステップと、
（１）前記取り外したコードを前記ビットストリームの最後に添付させるステップ及び（２）前記取り外したコードを前記ビットストリーム内の１つ以上の取外しコードデータフィールドに配置するステップのうち少なくとも一方のステップとを有する請求項７６に記載の透かし模様埋込み方法。
【請求項８１】
前記取り外したコードを暗号化するステップをさらに有する請求項８０に記載の透かし模様埋込み方法。
【請求項８２】
請求項７６に記載の透かし模様埋込み方法を実行するように構成された装置。
【請求項８３】
適したプロセッサで実行された場合、請求項７６に記載の透かし模様埋込み方法を実施するコンピュータプログラム。
【請求項８４】
請求項８３に記載のコンピュータプログラムを記録したデータキャリア。
【請求項８５】
イントラエンコードされた画像及びインターエンコードされた画像を持つビデオシーケンスに可視的に透かし模様を埋め込む透かし模様埋込み装置において、
前記画像が前記ビデオの変換係数のブロック表すデータを含み、動きベクトルが前記インターエンコードされた画像のブロックの少なくともどれかと関連するものであり、
前記ビデオに可視的に透かし模様を埋め込むよう変更されるブロックを定義する少なくとも１つのテンプレートを格納する格納手段と、
前記ビデオに可視的に透かし模様埋込みをするため、少なくとも前記インターエンコードされた画像内において、前記テンプレートにより定義されたブロックの変換係数のうち少なくともどれかを変更するよう構成された変更手段と、
前記テンプレートにより定義されるインターエンコードされた画像のブロックと関連し、イントラエンコードされた画像の変更されたブロックに対応する動きベクトルをゼロに設定するよう構成された手段とを備える透かし模様埋込み装置。
【請求項８６】
前記格納手段は、変更されるイントラエンコードされた画像ブロックを定義する第１のテンプレートと、該第１のテンプレートの画像ブロックに対応し、それに関連する動きベクトルがゼロに設定されるインターエンコードされた画像ブロックを定義する第２のテンプレートとを格納することを特徴する請求項８５に記載の透かし模様埋込み装置。
【請求項８７】
前記第２のテンプレートは、関連する動きベクトルがゼロに設定されるブロックを含むマクロブロックを定義することを特徴する請求項８６に記載の透かし模様埋込み装置。
【請求項８８】
前記第２のテンプレートは、前記マクロブロックと境界を接し、関連する動きベクトルがゼロに設定される更なるマクロブロックを定義することを特徴する請求項８７に記載の透かし模様埋込み装置。
【請求項８９】
前記ビデオシーケンスは、ブロック及び動きベクトルを表すデジタルコードを含むビットストリームにより表され、
さらに、変更されるブロックとゼロに設定される動きベクトルを表すデジタルコードを選択する手段と、
前記選択されたデジタルコードを前記ビットストリームから取外し変更されたコードを、前記選択されたコードの代わりに前記ビットストリームに配置する手段と、
（１）取り外したコードを前記ビットストリームの最後に添付させ及び／又は（２）前記取り外した取り外したコードを前記ビットストリーム内の１つ以上の取外しコードデータフィールドに配置する手段とを備える請求項８５に記載の透かし模様埋込み装置。
【請求項９０】
可視的に透かし模様を埋め込まれることで変更されたビットストリームを復元するビットストリームの復元方法において、
前記透かし模様は請求項８０に記載の透かし模様埋込み方法により元のビットストリームに埋め込まれたものであり、
前記変更されたビットストリームは、変更されたブロック及びゼロに設定された動きベクトルを表す変更されたコードを該ビットストリームの選択された部分に備え、
元のコードは前記選択された部分から取り外され、前記ビットストリームの変更ユーザデータ部分に置かれるか及び／又は該ビットストリームの終端に添付されるものであり、
前記ビットストリームを構文解析するステップと、
前記元のコードを格納するステップと、
前記変更されたコードを前記格納された元のコードで置き換えるステップとを有するビットストリームの復元方法。
【請求項９１】
前記元のコードは、暗号化されており、
前記暗号化された元のコードを復号化した後、前記変更コードを前記復号化された元のコードで置き換えるステップをさらに有する請求項９０に記載のビットストリームの復元方法。
【請求項９２】
元のビットストリームを復元するビットストリームの復元装置において、
請求項５に記載のビットストリームの変更方法によって可視的に透かし模様が埋め込まれた変更されたビットストリームを受け取る受取りステージを備え、
該変更されたビットストリームからは元のコードが取り出され該ビットストリームの変更ユーザデータ部に配置され及び／又は該ビットストリームの最後に添付されており、該ビットストリームの選択された部分に変更されたブロック及びゼロに設定された動きベクトルを表す変更されたコードが代入されているものであり、
さらに、前記ビットストリームを構文解析する構文解析ステージと、
前記元のコードを格納する記録部と、
前記変更されたコードを前記格納された元のコードで置き換える置換えステージとを備えるビットストリームの復元装置。
【請求項９３】
前記元のコードは、暗号化されており、
前記暗号化された元のコードを復号化した後、前記変更されたコードを前記復号化された元のコードで置き換えるステージをさらに備える請求項９２に記載のビットストリームの復元装置において。
【請求項９４】
請求項９０に記載のビットストリームの復元方法を実行するよう構成された装置。
【請求項９５】
適したデータプロセッサで実行された場合、請求項９０に記載のビットストリームの復元方法を実施するコンピュータプログラム。
【請求項９６】
請求項９５に記載のプログラムを記録したデータキャリア。
【国際調査報告】
2005517362.tif 000035
2005517362.tif 000036