(57)【特許請求の範囲】
【請求項１】
スライスに分割されるエンコードされたビデオデータにアクセスするステップと、
エンコードされたビデオデータに対する可能な変更のリストをコンパイルするステップであって、前記可能な変更はビデオウォータマークであるステップと、
前記可能な変更の中の少なくとも１つを実施することによって引き起こされうる、エンコードされたビデオデータに対する結果として起こる変更の伝播マップを構成するステップであって、前記伝搬マップは、エンコードされたビデオデータにおいて変更が伝搬するブロックの集合を示すステップと、
フィデリティの閾値に従って、前記エンコードされたビデオデータのフィデリティへの影響を理解するため、前記結果として起こる変更の伝搬マップを分析するステップと、
前記伝搬マップの分析に基づいて前記リストにおける変更から少なくとも１つを除くステップと、
前記伝播マップの分析に基づいて前記可能な変更の中の少なくとも１つを適用するステップと、
を有する方法。
【請求項２】
前記コンパイルするステップは、
前記可能な変更の前記リストを生成するステップ、
既存のリストから前記可能な変更にアクセスするステップ、又は
前記可能な変更の一部を生成し、前記可能な変更の残りを前記既存のリストからアクセスするステップ
の中の１つのステップを有する、
請求項１に記載の方法。
【請求項３】
前記スライスはブロックを有し、
当該方法は、結果として起こる少なくとも１つの変更に応答して、当該結果として起こる変更がスライスにおいて直接のブロック及び少なくとも１つの隣接するブロックを含み又はそれらに作用する場合に、フレーム間予測により前記伝播マップを構成するべきかどうかを決定するステップを更に有する、
請求項２に記載の方法。
【請求項４】
前記分析するステップは、
複数の前記伝播マップにおいて示されるブロックの集合に基づいて、前記可能な変更の中の１つによって引き起こされる前記集合におけるそれぞれのブロックについての可視的な歪みの程度を決定するステップを更に有する、
請求項１に記載の方法。
【請求項５】
前記分析するステップは、
複数の前記伝播マップにおいて示されるブロックの集合に基づいて、前記可能な変更の中の１つが前の変更の伝播経路に落ち着くことができる範囲を決定するステップを更に有する、
請求項１に記載の方法。
【請求項６】
前記分析するステップは、
複数の前記伝播マップにおいて示されるブロックの集合に基づいて、前記可能な変更の各１つごとの検出のための範囲を決定するステップを更に有する、
請求項１に記載の方法。
【請求項７】
結果として起こる少なくとも１つの変更に応答して、当該結果として起こる変更が直接のブロック及び少なくとも１つの隣接するブロックを含み又はそれらに作用する場合に、フレーム内予測により前記伝播マップを構成するべきかどうかを決定するステップを更に有し、
夫々のスライスは前記直接のブロック及び前記少なくとも１つの隣接するブロックを有する、
請求項１に記載の方法。
【請求項８】
前記分析するステップは、
複数の前記伝播マップにおいて示されるブロックの集合に基づいて、前記結果として起こる変更が前記直接のブロック及び参照ブロックである前記少なくとも１つの隣接するブロックを含み又はそれらに作用する場合に、フレーム内予測により更なる伝播マップを構成すべきかどうかを決定するステップを更に有する、
請求項３に記載の方法。
【請求項９】
前記伝播マップを構成するよう、Ｂスライスである選択されたスライス及び該選択されたスライスに関連する運動ベクトルの変化を識別するステップと、
デコーダにおいて前記伝播マップを用いるステップと
を更に有する請求項６に記載の方法。
【請求項１０】
前記スライスはブロックを有し、
前記分析するステップは、
前記伝播マップにおいて示されるブロックの集合に基づいて、前記可能な変更の中の１つの可能な変更の伝播経路が別の変更の伝播経路と重複する範囲を決定し、前記変更のうちの何れか１つの伝播経路にない少なくとも１つのブロックにおいて影響を生じさせるステップとを更に有する、
請求項１に記載の方法。
【請求項１１】
前記可能な変更のための伝播マップを初期化するステップと、
個々のマクロブロック・パーティションがエンプティであるかどうかを、マクロブロック・パーティションごとにあるマクロブロックに関して決定するステップであって、前記エンプティは、当該個々のマクロブロック・パーティションに対して変更が起こらないことを意味するステップと、
当該個々のマクロブロック・パーティションがエンプティでない場合に、当該個々のマクロブロック・パーティションの隣接マクロブロック・パーティションが変形されているかどうかを決定するステップと、
当該個々のマクロブロック・パーティションの前記隣接マクロブロック・パーティションが変形されている場合に、該隣接マクロブロック・パーティションを前記伝播マップに加えるステップと、
次の個々のマクロブロック・パーティションがエンプティであるまで、変形されている個々の隣接マクロブロック・パーティションを加えることによって、前記伝播マップを更新するステップと、
を更に有する請求項１に記載の方法。
【請求項１２】
個々のマクロブロック・パーティション及びその隣のマクロブロック・パーティションの運動ベクトルの差に基づいて、当該個々のマクロブロック・パーティションの隣接マクロブロック・パーティションが変形されているかどうかを決定するステップを更に有する、
請求項１１に記載の方法。
【請求項１３】
個々のパーティション及びその隣のマクロブロック・パーティションの運動ベクトル情報に基づいて、当該個々のマクロブロック・パーティションの隣接マクロブロック・パーティションが変形されているかどうかを決定するステップを更に有する、
請求項１１に記載の方法。
【請求項１４】
個々のマクロブロック・パーティションを基準として用いるフレーム内予測に基づいて、当該個々のマクロブロック・パーティションの隣接マクロブロック・パーティションが変形されているかどうかを決定するステップを更に有する、
請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＡＶＣウォータマーキングにおいて伝播マップを生成し使用する処理に関する。
【背景技術】
【０００２】
ビデオピクチャは、１又はそれ以上の重なり合わないスライスにエンコードされ、各スライスは、整数個のマクロブロックを有する。Ｈ．２６４には５種類のコード化されたスライスがある（Iain  E.  G.  Richardson、H.264  and  MPEG-4  Video  Compression：Video  Coding  for  Next-generation  Multimedia、John  Wiley  and  Sons、２００３年のTable  6.1を参照されたし。）。更に、Ｈ．２６４／ＡＶＣ符号化ビデオを変更する幾つかのビデオプロセッシングアプリケーションがある。デジタル・ウォータマーキングは、このようなアプリケーションの１つである。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
残念ながら、デジタル・ウォータマーキングの適用は、表示ビデオ画像において、好ましくないアーティファクトを引き起こすことがある。そのため、デジタル・ウォータマーキングに関連する好ましくないアーティファクトを予測し、特徴付け、防止する必要性がある。
【課題を解決するための手段】
【０００４】
方法は、スライスに分割されるエンコードされたデータにアクセスする段階と、エンコードされたデータに対する可能な変更のリストにアクセスする段階と、前記可能な変更の中の少なくとも１つを実施することによって引き起こされうる、エンコードされたデータに対する結果として起こる変更の伝播マップを構成する段階と、前記伝播マップに基づいて前記可能な変更の中の１つを適用する段階とを有する。前記エンコードされたデータはビデオデータであってよく、該ビデオフレームにおいて、フレームはスライスに分割され、スライスは更にブロックに分割される。また、前記変更は、潜在的なウォータマークに相当しうる。方法は、フレーム間予測（inter-prediction）による伝播（propagation）を反映する伝播マップを構成する段階を更に有してよく、結果として起こる変更は、直接のブロックと、少なくとも１つの隣接ブロックとを含む。フレーム間予測は、時間フレーム間予測であってよく、結果として起こる変更は、直接のブロックと、少なくとも１つの隣接ブロックとを含む。方法は、伝播マップを構成するようフレーム内予測（intra-prediction）を更に組み込んでよく、結果として起こる変更は、直接のブロックと、少なくとも１つの隣接ブロックとを含んでよい。結果として得られる伝播マップは、例えば、可能な変更によって引き起こされうるフィデリティ（fidelity）に対する影響を決定して、フィデリティ閾値に関して可能な変更を除く手段を提供するために、使用されてよい。
【図面の簡単な説明】
【０００５】
【図１】マクロブロック・パーティション及びサブマクロブロック・パーティションの例を示す。
【図２】フレームにおける隣接した運動ベクトルを表す。
【図３】方向性セグメンテーション予測を表す。
【図４】フレーム内予測に関わる隣接ブロックを表す。
【図５】伝播マップの例示である。
【図６】伝播マップの構成を説明するブロック図である。
【図７】アルゴリズムのための連結されたリストの例示である。
【図８】ＡＶＣデコーダに基づく伝播マップ構成を説明する。
【図９】伝播マップの初期化を説明する。
【図１０】最終的な伝播マップリストを生成するステップを説明する。
【図１１】伝播マップ更新処理を説明する。
【図１２】フレーム内予測のための伝播マップ更新を説明する。
【図１３】フレーム間／フレーム内予測のための最適化された伝播マップ更新を説明する。
【発明を実施するための形態】
【０００６】
本発明について、一例として、添付の図面を参照して記載する。
【０００７】
以下、ウォータマーキング処理が圧縮ストリームにおいて運動ベクトルを変更するところのデジタル・ウォータマーキングの適用に伴うアーティファクト発生の問題に対処する本発明の実施形態について記載する。運動ベクトル（ｍｖ）の変更によって導入されるアーティファクトは、現在のブロック、すなわち、運動ベクトルが属するブロックの再構成されるピクセルを変化させるのみならず、現在のブロックの再構成されるピクセル又は再構成されるｍｖがブロック予測又は運動ベクトル予測において他のブロックのための基準の役割をすることから、他のブロックにおける輝度又はクロミナンスの変化も引き起こしうる。他のブロックにおけるこのような変化は更に伝播しうる。
【０００８】
特に、本発明は、どのように単一の変化がピクチャを通じて伝播するのかを示す伝播マップ（propagation  map）を生成する。伝播マップと、影響されるブロック及びそれらの変化を追跡するよう伝播マップを構築するアルゴリズムとに関する説明が、以下で与えられている。本発明は、Ｈ．２６４デコーダに伝播マップ構成を組み込むことを考えている。かかる伝播マップは、多くの局面で有用である。伝播マップは、（１）変化により生ずる視覚的な歪みを試験し、（２）重なり合った伝播マップをもたらす変化を試験し、（３）前の変化の伝播経路にある変化を試験し、（４）第３のブロックが影響されるように組み合わさった複数の変化を試験して、これらの変化がウォータマーキングのために用いられる場合に検出範囲を改善し、且つ（５）ときどき、変化を回避するために、使用されてよい。伝播経路は、どのように１つのブロックにおける単一の変化が他のブロックに伝播するのかに係る。
【０００９】
本発明は、例えばデジタル・ウォータマーキング等の、Ｈ．２６４／ＡＶＣ符号化ビデオを変更するビデオ処理アプリケーションが複数存在しており、且つ、フィデリティ変化予測変数（predictor）は、選択されたウォータマーキングがビデオ品質をおとしめないことを確かにするパラメータであってよい、と認識している。本発明は、更に、変化が直接的になされた領域のデコーディングに関連するフィデリティ変化を特徴付ける手段を提供するが、更に、ピクチャの他の領域に伝播することができる何らかの変化を捕捉する。そのようなものとして、本発明に従うマップは、変化が伝播する領域を示し、それらの領域の全てにフィデリティ評価を提供することができる。更に、ウォータマーキング適用の際に、１つのスライスにおいて複数の変化が起こることが考えられている。この点を考慮して、本発明は、所与のスライスが複数の変化を経験しうるデコードされたイメージに対して変化がどのような影響を有しているのかを知る必要性があり、且つ、マークのないコンテンツに対する複合的な変化を表す手段が存在する場合に、ウォータマーキングに適用するよう発明された。しかし、前の変化が既に現在の領域に伝播しており、他の変化が更になされる場合は、結果として生じるデコードされたイメージは、両方の変化の影響を含みうる。最初の変化が知られている場合は、結果は予測可能であるが、場合により、最初の変化が用いられるか否かの先験的な認識によらない。変化が伝播する全ての領域を示すよう変化がマッピングされ得る場合、その伝播経路内で他の変化が起きることが回避され得る。これらの問題の組合せも起こりうる。ピクチャの一部分が間接的に変形される場合、異なる部分における変化は現在の部分に伝播しているので、その変化のフィデリティへの影響の評価において現在の部分は試験され又は決定され得る。しかし、複数の変化が存在してよく、これらの変化の全てが現在の部分に伝播しうる。全ての変化の伝播経路がマッピングされる場合、重なり合う伝播に係るこれらの部分は識別され、影響の全組合せが考えられる。
【００１０】
本発明は、ブロック変化予測のためにＨ．２６４標準規格で利用されてよい。フレーム間予測マクロブロックは、基準フレーム／ピクチャからの予測と剰余との和として符号化される。運動ベクトルは、予測として用いられるべき基準フレームにおけるピクセルのブロックを定義する。更に、Ｈ．２６４標準規格において、ピクチャ／フレームはスライスに分割される。スライスは一連のマクロブロックであり、マクロブロックはフレーム内でラスタ走査順にアドレッシングされ／番号付けされてよい。各マクロブロックは、１つの１６×１６ルーマ（ｌｕｍａ）アレイから構成され、４通りのうちの１つ、すなわち、１つの１６×１６マクロブロック、２つの８×１６マクロブロック・パーティション、２つの１６×８マクロブロック・パーティション、又は４つの８×８マクロブロック・パーティションにおいて分けられてよい。８×８モードが選択される場合、４つの８×８マクロブロック・パーティションの夫々は、更に、４つのサブマクロブロック・パーティションの１つ、すなわち、１つの８×８、２つの４×８、２つの８×４、又は４つの４×４に分けられてよい。アレイは、関連するクロマ（chroma）データであってもよい。マクロブロック・パーティション及びサブマクロブロック・パーティションは、図１に示されるインデックスを付される。図１には、例となる４つのマクロブロック・パーティションが、例ａ〜ｄにおいて示されている。例ａは、１６×１６ルーマ・サンプルの１マクロブロック・パーティションであり、例ｂは、１６×８ルーマ・サンプルの２マクロブロック・パーティションであり、例ｃは、８×１６ルーマ・サンプルの２マクロブロック・パーティションであり、例ｄは、８×８ルーマ・サンプルの４マクロブロック・パーティションである。例ｅは、８×８ルーマ・サンプルの１サブマクロブロック・パーティションを表し、例ｆは、８×４ルーマ・サンプルの２サブマクロブロック・パーティションを表し、例ｇは、４×８ルーマ・サンプルの２サブマクロブロック・パーティションを表し、例ｈは、４×４ルーマ・サンプルの４サブマクロブロック・パーティションを表す。結果として、夫々のマクロブロック・パーティション及びサブマクロブロック・パーティションは、（フレーム番号（frame#）、マクロブロック番号（macroblock#）、マクロブロック・パーティションインデックス（サブマクロブロックインデックス））の組合せによって一意的に参照可能である。関連するクロマ・サンプルは同じように分割され、実際のブロック及びサブブロックのサイズは、エンコードされるビデオフォーマットによって決定される。
【００１１】
パーティションの運動ベクトル（ｍｖ）は、運動ベクトル予測（ＭＶｐ）及び運動ベクトル差分（ｍｖｄ）との和として符号化される。予測は、同じフレーム／ピクチャにおける隣接パーティション（図２に示されるＡ、Ｂ、Ｃ及びＤ）の運動ベクトルに基づく。ｍｖ予測は、ＩＴＵ−Ｔ提言Ｈ．２６４｜ＩＳＯ／ＩＥＣ１４４９６−１０国際標準改訂１のセクション８．４．１．３における既知の規則に従って行われてよい。この規則は、隣接パーティションＡ、Ｂ及びＣの利用可能性を仮定し、対応する運動ベクトルｍｖＡ、ｍｖＢ及びｍｖＣを使用する。しかし、実際には、これらのブロックの一部又は全ては利用可能でないことがある。隣接するＡが利用可能でない場合、ｍｖＡ＝０が推測され得る。隣接するＡが利用可能でない場合、ｍｖＢ＝０が推測され得る。隣接するＣが利用可能でない場合、隣接するＤが利用可能であればｍｖＣ＝ｍｖＤが推測され得、そうでないならばｍｖＣ＝０が推測され得る。予測ＭＶｐを生成するための規則は、以下の通りであってよい。
【００１２】
ａ．１６×８パーティションに関し、図３において、上の１６×８パーティションのＭＶｐは隣接するＢから予測され、下の１６×８パーティションのＭＶｐは隣接するＡから予測される。
【００１３】
ｂ．８×１６パーティションに関し、図３において、左の８×１６パーティションのＭＶｐは隣接するＡから予測され、右の８×１６パーティションのＭＶｐは隣接するＣから予測される。
【００１４】
ｃ．１６×８及び８×１６パーティションサイズ以外の伝播されるパーティションに関し、リストに記憶されている多数の異なった基準フレームの中の１つからＢフレームが予測され得る。各パーティションは、リスト内のどの基準フレームが使用されるべきかを示す基準インデックスを有する。現在のパーティションの基準インデックスが隣接するＡ、Ｂ又はＣの基準インデックスの１つとだけ一致する場合、その隣接パーティションの運動ベクトルがＭＶｐとして使用される。そうでない場合は、ＭＶｐは、隣接するＡ、Ｂ及びＣの運動ベクトルの中央値に設定される。
【００１５】
ｉ．現在のブロックの直ぐ上に１よりも多いパーティションがある場合、一番左のものが隣接するＢとして使用される。また、現在のブロックの直ぐ左に１よりも多いパーティションがある場合、一番上のものが隣接するＡとして使用される。
【００１６】
ｉｉ．隣接するＢ及びＣの両方が利用可能でなく、Ａは利用可能である場合、（０，０，ｍｖＡ）の中央値、すなわち０、を取るよりむしろ、ＭＶｐ＝ｍｖＡが設定される。
【００１７】
ブロックがダイレクト予測モードによりエンコードされる場合、ブロックのために伝播される運動ベクトルはない。代わりに、その運動ベクトルは、前にデコードされたブロックに基づいて計算される。２つのモードのダイレクト予測、すなわち、空間ダイレクトモード及び時間ダイレクトモードがある。
【００１８】
空間ダイレクトモードでは、リスト１内の第１の基準フレームが最初に考えられる。リスト１は、双予測（bi-prediction）モードにおける一方向予測のための多数の異なった基準フレームを記憶している。そのフレームにおける共在ブロックは識別されてよく、その運動ベクトルが試験又は評価される。運動ベクトルが範囲［−１，１］内にあり、（他の何らかの条件とともに）それらの基準インデックスが０である場合、それは、動きが固定であり小さいことを意味し、その運動ベクトルは０に設定される。そうでない場合は、運動は有意であり、運動ベクトルは、隣接するパーティションからの運動ベクトルの予測において上述されたのと同じように予測される。
【００１９】
時間ダイレクトモードで、現在のブロックの運動ベクトルは、リスト１の第１の基準において共在ブロックの運動ベクトルから直接に導出され得る。このモードは隣接ブロックの運動ベクトルを必要としないので、それはＢスライスにおける伝播の源ではない。
【００２０】
フレーム内予測に関して、フレーム内予測されるマクロブロックは、現在のフレーム／ピクチャ及び剰余の中からの予測の和として符号化される。基準ブロックの１又はそれ以上が変化の伝播マップ上にある場合、予測は変化によって影響され得る。その場合に、現在のブロックも伝播マップ上にある。フレーム内予測には３つのタイプ、すなわち、イントラ（intra）４×４、イントラ８×８及びイントラ１６×１６がある。イントラ４×４モードで、マクロブロックは１６個の４×４ブロックの夫々について予測される。図４に示される隣接ブロックＡ、Ｂ、Ｃ及びＤの４つ全てを必要とする全部で８つのモードがある（ＩＴＵ−Ｔ提言Ｈ．２６４｜ＩＳＯ／ＩＥＣ１４４９６−１０国際標準改訂１の表８−２）。８つのモードは、（ＩＴＵ−Ｔ提言Ｈ．２６４｜ＩＳＯ／ＩＥＣ１４４９６−１０国際標準改訂１の表８−２から適応された）必要とされる隣接ブロックとともに、以下の表１に挙げられている。表において、国際標準の表８−２とは異なって、イントラ４×４ＤＣ（Intra_4×4_DC）モードのための３つの異なる場合、すなわち、Ａ及びＢの両方を使用するモード２、Ａのみを使用するモード９、及びＢのみを使用するモード１０を区別することが可能である。４×４ＤＣモードの第４の場合は、Ａ及びＢのいずれも使用しないことである。これは、伝播マップに影響を及ぼさないので、無視可能である。
【００２１】
【表１】
0005536064.tif 000002
イントラ８×８モードで、マクロブロックは、４つの８×８ブロックの夫々について予測される。図４に示される隣接ブロックＡ、Ｂ、Ｃ及びＤの４つ全てを必要とする全部で８つのモードがある（ＩＴＵ−Ｔ提言Ｈ．２６４｜ＩＳＯ／ＩＥＣ１４４９６−１０国際標準改訂１の表８−２）。８つのモードは、（ＩＴＵ−Ｔ提言Ｈ．２６４｜ＩＳＯ／ＩＥＣ１４４９６−１０国際標準改訂１の表８−２から適応された）必要とされる隣接ブロックとともに、以下の表２に挙げられている。４×４フレーム内予測と同様に、イントラ８×８ＤＣ（Intra_8×8_DC）モードのためのモードのための３つの異なる場合を区別することも可能である。留意すべきは、予測の前のフィルタリング動作のために、各モードごとの必要とされる隣接パーティションは４×４予測とは異なっている。
【００２２】
【表２】
0005536064.tif 000003
イントラ１６×１６モードで、マクロブロックは、全体として予測される。図４に示される３つの隣接ブロックＡ、Ｂ及びＤを必要とする４つのモードがある（ＩＴＵ−Ｔ提言Ｈ．２６４｜ＩＳＯ／ＩＥＣ１４４９６−１０国際標準改訂１の表８−２）。表３は、これらの予測モードを列挙している。それを４×４予測及び８×８予測と整合性が取れたままとするために、モード２、９及び１０は依然としてＤＣ予測の３つの場合を示すために使用されている。
【００２３】
【表３】
0005536064.tif 000004
具体的に、基準コンポーネントは、図４に示されるように、隣接するＡの一番右の列、隣接するＢの最後の行、隣接するＣの最後の行、及び隣接するＤの最後の（右下の）ピクセルである。Ｃが利用可能でない場合、Ｃは、繰り返しにより、Ｂの最後の行の一番右のピクセルによって置換される。
【００２４】
Ｈ．２６４／ＡＶＣウォータマーキングシステムで、前のステップは潜在的な変化のリストを作成している。夫々の潜在的な変化はブロック識別子と、その運動ベクトルの代替値とを有し、運動ベクトルの表示は変更されてよい。留意すべきは、この時点で、単一のブロックに関して多数の潜在的な変化が存在しうる。後のステップで、潜在的な変化のリストは、どのブロックも１よりも多い変化を有さないように、削られる。リスト内の各エントリは、Ｂスライス・フレーム間予測マクロブロックと関連する運動ベクトルに対する変更を表す。フレーム間予測されるブロックの運動ベクトルを変更することは、エンコーディング中に意図されたものとは異なる基準を有してブロックを再構成する効果を有し、デコードされたピクセル値を変えることがある。この変化は２通りで伝播することができる。（１）第２のブロックがフレーム間予測を用いて符号化されて、その運動ベクトルを現在から予測する場合、その第２のブロックは、更に、意図されたものとは異なる基準を用いる。（２）第２のブロックがフレーム内予測を用いて符号化され、そのピクセル値を現在から予測する場合、その第２のブロックの再構成されるピクセルは、意図されたものとは異なる。第１の種類の伝播、すなわち、隣接する運動ベクトルへの伝播は、先と同じく、隣接するものの次の組に伝播することができる。第２の種類の伝播、すなわち、ピクセル値への直接の伝播は、フレーム間予測も用いる隣接ブロックへ更に伝播することしかできない。
【００２５】
Ｈ．２６４／ＡＶＣウォータマーキングシステムで、潜在的な変更は１度に１つ評価可能である。各エントリごとに、潜在的な変更が起こるとすると、その変更がどのようにフレーム／ピクチャ内の他のブロックに伝播するのかが追跡される。伝播マップは、この情報を表すために使用されるツールである。後に、潜在定な変更のフィデリティへの影響にアクセスする場合に、他のブロックは影響を及ぼされないので、潜在的な変更の伝播経路上のブロックしか考慮する必要がない。同様に、潜在的な変更が前に選択されたいずれかの変更の伝播経路内にあるかどうか、又は潜在的な変更の伝播マップが前に選択されたいずれかの変更の伝播経路と重なり合うかどうか、を速やかに決定することが可能である。
【００２６】
図５（ａ）は伝播マップの一例を表す。この伝播マップ５００はＢスライスブロック５１０と関連付けられ、Ｂスライスブロック５１０の運動ベクトルは直接的に変更されている。図中の他のブロック５２０は、伝播により間接的に変更されるブロックである。直接的な変更により、又は他の変更の伝播経路にあるために、ブロックが変化する場合に、この変化は、更にその隣のブロックに伝播する可能性がある。図５（ｂ）は伝播マップの他の例を表し、１つのブロック５３０のみが直接的に変更される場合に、かかる伝播により輝度値が変更されうる４つの隣接ブロック５４０に関する。変更されるブロックの伝播マップＰは、伝播により輝度値が変更されるブロックｐの集合を表す。伝播マップにおける各ブロックは、最初の変更、現在のブロックの予測モード、及び現在のブロックにおける変化を示すデータ構造を有して表され、p={head_node_info,mode,cur_node_info}と表される。
【００２７】
head_nodeは、変化を開始した運動ベクトルの代替値及び位置に関して、変更されたブロックを一意的に識別する。伝播マップＰにおける全てのノードは同じhead_nodeを有する。要素modeは、現在のブロックの予測モードを示し、フレーム内予測（intora-prediction）又はフレーム間予測（inter-prediction）のいずれかであってよい。要素cur_nodeは、現在のブロックに関する情報を記録する。それは、フレーム間予測されたブロックについては元の運動ベクトル及び新たな運動ベクトル含み、フレーム内予測されたブロックについてはフレーム内予測モード及び基準ブロックを含む。
【００２８】
図６は、伝播マップを構成する方法を示す。伝播マップＰは、６１０において、変更されたブロックから開始される。評価ボックス６２０で、ブロックｐがエンプティであるかどうかを評価する決定がなされる。ブロックｐがエンプティでない場合、ボックス６３０で、その隣接する４つのブロックαｉ（ｉ＝１，・・，４）（図５ｂで定義）の夫々が試験される。これらの試験の夫々の目的は、ブロックｐに対する変更が隣接ブロックαｉに伝播するかどうかを決定することである。これを行うために、プロセッサ等は、変更された値とともに、ｐに関連する元の値を用いて、デコーディングを比較することができる。ブロックαｉがフレーム間予測されるブロックである場合、フレーム間予測経路６４０で、ｐの新たな運動ベクトル及び他の隣接ブロックの運動ベクトルを用いて予測される運動ベクトルが試験又は決定され得る。それが元の運動ベクトルとは異なる場合、変化はこの隣接ブロックに伝播し、ブロックαｉは、伝播ボックス６６０で、伝播マップＰに付け加えられる。αｉがフレーム内予測経路６５０でフレーム内予測され、ブロックｐがその予測における基準として用いられる場合、変化はこの隣接ブロックに伝播し、ブロックαｉは、伝播ボックス６６０で、伝播マップＰに付け加えられる。４つ全ての隣接ブロックが試験された後、Ｐにおける次の要素が考えられる。このプロセスは、Ｐに新しい要素がなくなるまで繰り返して、終了ボックス６７０に達する。
【００２９】
ここで、伝播マップ構成をＨ．２６４デコーダに組み込むことについて記載する。かかる組み込みは、上述されたように、Ｈ．２６４／ＡＶＣウォータマーキングシステムとの関連で提示される。
【００３０】
伝播マップＰは、全体として潜在的な変更によって影響を及ぼされるマクロブロック／パーティションを識別する連結リストとして表される。デコーダがラスタ走査順にＢスライスのマクロブロックを処理する場合に、影響を及ぼされるマクロブロック／パーティションを対応する連結リストに加えることが続けられ得る。詳細な組み込みアルゴリズムは、連結リストを例示する図７を参照して記載される。
【００３１】
Ｂスライスにおける潜在的な変更のリストを考える。リストはｌ個のエントリを含み、各エントリは１つの代替により変更可能な運動ベクトルに対応する。ｌ個の連結リスト（７１０）が構成されてよく、各リストは少なくとも１つノード（７２０）を含むよう初期化されてよい。ノードは潜在的な変更自体であってよい。ノードｐのデータ構造が表４に示されている。表４は、マクロブロック／パーティションの位置情報と、元の運動ベクトル情報と、新しい運動ベクトル情報とを含む。伝播マップの構築プロセスはＡＶＣデコーダに組み入れられているので、この情報の大部分はデコーダから直接に得られる。他の情報は、伝播マップの適用に基づいて加えられてよい。
【００３２】
【表４】
0005536064.tif 000005
図８は、デコーダ８１０における、ＡＶＣデコーダに基づく伝播マップ構成の概略を示す。留意すべきは、運動ベクトル予測及びフレーム内予測は１つのスライス内で行われる。ゆえに、１つの運動ベクトルの変化の伝播は、現在のスライスの外には伝播することができない。従って、伝播マップは、スライス毎に構成されてよい。標準的なＨ．２６４／ＡＶＣデコーダは、画像シーケンスにおける各スライスごとに、３つのステップ、すなわち、（１）スライス初期化８３０、（２）スライスデコーダ８４０、及び（３）スライスセットダウン８５０をループする。伝播マップ構成は、一度に１つのスライスを処理することに関連して行われる。
【００３３】
伝播マップ構成は、元のエンコードされたビデオストリームを１つの入力としてとる。他の入力は、全ての潜在的な変更のリストである。処理は、図８中の一連の３つのステップ、すなわち、（１）伝播マップ初期化８３５、（２）伝播マップビルダ８４５、及び（３）伝播マップ出力８５５として記載されてよく、最終的な出力は、輝度評価のためにＹＵＶをデコードするのに用いられる。ウォータマークの埋め込みの間に運動ベクトル値を変更することで引き起こされる変化を評価するプロセスは、ここでは、ＬｕｍＥｖａｌと呼ばれる。ＬｕｍＥｖａｌは、各ブロックについて輝度変化量を測定する。測定された輝度変化量は、ウォータマーキング適用におけるフィデリティ評価等、変化を評価するために使用されてよい。
【００３４】
図９には、Ｈ．２６４／ＡＶＣデコーダのスライス初期化プロセス８３０に組み込まれた伝播マップ初期化８３５が例示されている。この初期化は、ボックス９３０で、現在のＢスライスにおけるブロックに適用する変更を、潜在的な変更のリストから取り出す。次いで、それは、ボックス９４０で、変更可能なブロック集合においてエントリを読み出し、ボックス９５０で、夫々の潜在的な変更について１つの伝播マップを構築する。
【００３５】
図１０における伝播マップビルダは、スライスデコーダ８４０に組み込まれており、デコーダが各マクロブロックを処理するたびに、潜在的な変更の伝播マップにブロックを加える。スライスにおいて考えられる各マクロブロックは、ボックス１００１によって表される。１つのブロックをデコードする場合に、多数の異なるコーディングケースのどれが用いられたかが決定される。ケースはフレーム間予測、空間ダイレクトモードによるフレーム間予測、及び異なったフレーム内予測タイプ１０２１のためのボックス１０２０におけるフレーム内予測である。図１０はフレーム間予測経路１００５を示し、該経路で、ダイレクト／スキップ決定ボックス１００６において、ブロックはダイレクトモードでフレーム間予測されるかどうかに関して決定がなされる。フレーム間予測されたブロックがダイレクトモードにおいてフレーム間予測されない場合、伝播マップは、伝播更新プロセス１００８に従って更新される。さらに、フレーム間予測されたブロックが決定ボックス１００７において空間的に予測されない場合は、フレーム間予測されたブロックは、隣接するブロックに対する変更によっては影響を及ぼされず、伝播マップの一部でない。他の全ては、それらが前の変化によって影響を及ぼされるかどうかを決定するために試験される。ダイレクト／スキップ決定ボックス１００６に示されるようにダイレクトモードを使用しないフレーム間予測ブロックは、伝播更新プロセス１００８によって試験される。このプロセスについて図１１で記載する。
【００３６】
図１１で、隣接ブロックは最初にボックス１１０１で識別される。この識別は、先に記載された運動ベクトル予測ＭＶｐと、図２に示される隣接ブロックの利用可能性とに基づく。ここでは、現在のＭＶｐの決定に影響を及ぼしうる隣接ブロックが重要であり且つ懸念事項である。このような隣接ブロックは識別隣接ブロック（identified  neighbors）と呼ばれる。全ての伝播マップリストにわたるサンプリング１１０２及び隣接ブロックの試験１１０３は、これらの識別隣接ブロックのどれが伝播マップのいずれかの中にあるかを決定する。識別隣接ブロックが伝播マップ内にある場合、これは、その隣接ブロックが当該マップの先頭で潜在的な変更によって影響を及ぼされたことを暗示する。従って、その変化は、現在のブロックに伝播する可能性を有している。ボックス１１０３で、隣接ブロックが伝播マップ内にない場合、次のマップがボックス１１０２でサンプリングされる。識別隣接ブロックが既存の伝播マップ内にある各場合について、伝播マップリストに記憶されている運動ベクトルの検索１１０４が行われる。変更された隣接運動ベクトルを用いて、現在のブロックの再計算１１０５が行われる。現在のブロックに係るこの運動ベクトル予測は、ボックス１１０６で、元の運動ベクトルと比較される。それらが異なっている場合は、伝播マップの先頭での変化は現在のブロックに影響を及ぼし、ボックス１１０７で、現在のブロックは対応する伝播マップに加えられる。
【００３７】
フレーム間予測にのみ従って伝播マップを更新するために、３つのモード／タイプ１０２１のいずれか（すなわち、４×４、８×８又は１６×１６）による全てのフレーム間予測ブロックは、図１２に記載される伝播マップ更新プロセス１０２２によって試験される。フレーム間予測されたブロックの試験と同様に、現在のブロックの隣接ブロックの識別が行われる。この識別は、上述されるフレーム間予測モードに基づく。ここで、現在のパーティションのピクセル予測に影響を及ぼしうる隣接パーティションに関心がもたれる。かかる隣接パーティションは、ボックス１２０１で、識別隣接ブロック（identified  neighbors）と呼ばれる。リスト内の全ての伝播マップがボックス１２０２でサンプリングされ、ボックス１２０４で試験される。いずれかの識別隣接ブロックが伝播マップと重なり合う場合、現在のノードはボックス１２０６でその伝播マップに加えられる。
【００３８】
図８に示される最後のステップはスライスセットダウン（slice  setdown）８５０である。これは、スライスがデコードされる場合に、ＡＶＣデコーダ８１０の標準的なステップである。伝播マップ構成の最後のステップは、伝播マップの出力である。このステップは、スライスセットダウン８５０に組み込まれている。ピクセル値を含む任意のデコードされたＹＵＶファイルも更なる解析のために出力されてよい。
【００３９】
留意すべきは、上記のアルゴリズムにおいて、マクロブロック・パーティションごとにｌ個の伝播マップの全ノードを通る必要がある。これは計算コストを高くしうる。処理速度を上げるよう、改善されたアルゴリズムは、２つの観測に基づいて、系統立てて説明される。第１には、現在のパーティション（識別隣接ブロック）の親が、同じ行のマクロブロック又は上の行にしか存在することができないことである。そのようなものとして、現在のブロックから離れた１よりも多い行であるリストｉのノードは、親検索の間除外されてよい。第２には、リストｉがマクロブロックの行全体について更新されていない場合に、変化可能なブロックに対する変更の影響は、スライス内の残りのブロックに伝播することができないことである。ゆえに、伝播マップｉは完全であり、現在のスライス内の先のブロックについて変更の影響を確認する必要はない。変形されたアルゴリズムが図１３に示されている。このアルゴリズムは、伝播更新プロセス１００８及び１０２２を反映する。
【００４０】
フレーム内予測及びフレーム間予測に従って伝播マップを更新するために、図１３は、最初に、ボックス１３０１で、現在のパーティションのピクセル予測に影響を及ぼしうる隣接ブロックを識別することから始まる。このような隣接ブロックは識別隣接ブロックと呼ばれる。次いで、リスト内の伝播マップがボックス１３０２でサンプリングされる。決定ボックス１３０３においてマクロブロックの最後の行で更新がない場合、次の伝播マップがサンプリングされる。更新がある場合は、ボックス１３０４で試験が実行される。いずれかの識別隣接ブロックが、目下サンプリングされている伝播マップｉの現在及び最後の行にあるブロックと重なり合い又は一致する場合は、プロセスはボックス１３０５における比較ステップに進められる。元の運動ベクトル及び変更された運動ベクトルが異なる場合、変更された運動ベクトルを有する現在のノードが、ボックス１３０６で、フレーム間予測からの更新とともに、伝播マップに加えられる。
【００４１】
本願で記載される実施及び特徴の幾つかはＨ．２６４／ＭＰＥＧ−４ＡＶＣ（ＡＶＣ）標準規格に関連して使用されてよい。しかし、このような実施及び特徴は、他の（既存又は将来の）標準規格に関連して、又は標準規格を必要としない状況で、使用されてよい。しかし、記載される実施の特徴及び態様は、また、他の実施に適応されてよい。
【００４２】
ここで記載される実施は、例えば、方法若しくはプロセス、装置、ソフトウェアプログラム、データストリーム、又は信号で実施されてよい。たとえ単一の実施形態に関してしか論じられていないとしても（例えば、方法としてしか論じられていないとしても）、論じられる実施又は特徴は、他の形態（例えば、装置又はプログラム）で実施されてもよい。装置は、例えば、適切なハードウェア、ソフトウェア及びファームウェアで実施されてよい。方法は、例えば、コンピュータ又は他のプロセッシングデバイス等の装置で実施されてよい。さらに、方法は、プロセッシングデバイス又は他の装置によって実行される命令によって実施されてよく、かかる命令は、ＣＤ若しくは他のコンピュータ読取可能な記憶デバイス等のコンピュータ可読媒体又は集積回路に記憶されてよい。さらに、コンピュータ可読媒体は、実施によって生成されるデータ値を記憶してよい。
【００４３】
当業者には当然ながら、実施は、また、例えば記憶又は送信が可能な情報を搬送するようフォーマットされた信号を生成してもよい。情報には、例えば、方法を実行するための命令、又は記載される実施の１つによって生成されるデータが含まれてよい。例えば、信号は、ウォータマーク入りストリーム、ウォータマークなしストリーム、又はウォータマーキング情報を搬送するようフォーマットされてよい。
【００４４】
さらに、多くの実施例は、エンコーダ、デコーダ、デコーダからの出力を処理するポストプロセッサ、又はエンコーダへ入力を与えるプリプロセッサの中の１又はそれ以上で実施されてよい。さらに、他の実施が本開示によって考えられる。例えば、更なる実施は、開示される実施の様々な特徴を組み合わせ、削除し、変更し、又は置換することによって生成されてよい。
【００４５】
［関連発明の相互参照］
本願は、２００８年８月に出願された米国特許仮出願第６１／１８９３７０号明細書（タイトル「A  PROPAGATION  MAP」）に基づく優先権を主張するものです。この特許仮出願は、その全文を参照により本願に援用される。
【図１ａ】
0005536064.tif 000006
【図１ｂ】
0005536064.tif 000007
【図１ｃ】
0005536064.tif 000008
【図１ｄ】
0005536064.tif 000009
【図１ｅ】
0005536064.tif 000010
【図１ｆ】
0005536064.tif 000011
【図１ｇ】
0005536064.tif 000012
【図１ｈ】
0005536064.tif 000013
【図２】
0005536064.tif 000014
【図３】
0005536064.tif 000015
【図４】
0005536064.tif 000016
【図５】
0005536064.tif 000017
【図６】
0005536064.tif 000018
【図７】
0005536064.tif 000019
【図８】
0005536064.tif 000020
【図９】
0005536064.tif 000021
【図１０】
0005536064.tif 000022
【図１１】
0005536064.tif 000023
【図１２】
0005536064.tif 000024
【図１３】
0005536064.tif 000025