(57)【要約】【課題】Ｐ−フレームのための時間的エラー隠蔽の方法および装置。【解決手段】誤って受け取られた第１のセクションを備えるマルチメディアフレームを処理する方法および装置が開示されている。方法は、第１の基準フレームに対応する時間的予測データを得ることを備える。方法はさらに、第１の基準フレームが第１のセクションを推定するために信頼できるかどうかを決定することを備える。方法はさらに、第１の基準フレームが信頼できると決定される場合は、マルチメディアフレームの第１のセクション以外の１つ以上のセクションおよび第１の基準フレームに基づいて誤って受け取られた第１のセクションを推定することを備える。【選択図】      図１
2008533845.tif 000002
【特許請求の範囲】
【請求項１】
誤って受け取られた第１のセクションを備えるマルチメディアフレームを処理する方法であって、
第１の基準フレームに対応する時間的予測データを得ることと、
前記第１の基準フレームが前記第１のセクションを推定するために信頼できるかどうかを決定することと、
もし前記第１の基準フレームが信頼できると決定される場合は、前記マルチメディアフレームの前記第１のセクション以外の１つ以上のセクションと前記第１の基準フレームとに基づいて、誤って受け取られた前記第１のセクションを推定することと、
を備える方法。
【請求項２】
前記の１つ以上のセクションは、前記第１のセクションに隣接する１つ以上のセクションを備える、請求項１記載の方法。
【請求項３】
前記時間的予測データは、前記第１の基準フレームの部分に対応する動きベクトルを備える、請求項１記載の方法。
【請求項４】
前記決定することは、
前記マルチメディアフレームの動きベクトルと前記第１の基準フレーム内の同一場所に配置される動きベクトルとを含んでいる動きベクトルの各ペアが、もしそのペアが利用可能である場合、類似しているかどうかを決定することと、
もし前記の利用可能なペアの数に対する前記の類似しているペアの数の比が閾値よりも大きい場合は、前記第1の基準フレームは信頼できると決定することと、
を更に備えており、
もし両方の動きベクトルが正しく受け取られる場合は、１つのペアの動きベクトルが利用可能である、
請求項３記載の方法。
【請求項５】
各ペアが類似しているかどうかは、両方の動きベクトルの大きさと両方の動きベクトルの方向との少なくとも１つに基づいて決定される、請求項４記載の方法。
【請求項６】
両方の動きベクトルの前記の大きさが大きく、かつ、前記の動きベクトルの前記の方向が反対である場合のみ、各ペアは類似していないと決定される、請求項５記載の方法。
【請求項７】
各セクションはマクロブロックである、請求項１記載の方法。
【請求項８】
前記第１の基準フレームが前記マルチメディアフレームに隣接するように、前記マルチメディアフレームが予測されるべき１つ以上の基準フレームの部分に対応する前記動きベクトルを、前記第１の基準フレームの部分に対応する動きベクトルにスケーリングすること、を更に備える請求項３記載の方法。
【請求項９】
前記のスケーリングされた動きベクトルの少なくとも１つを平滑化すること、を更に備える請求項８記載の方法。
【請求項１０】
前記平滑化することは、中央値フィルタリングをおこなうことを備える、請求項９記載の方法。
【請求項１１】
各フレームは複数のセクションを備え、各セクションは同じサイズの１つ以上の基本単位を備え、前記方法は更に、
前記基本単位に対応する１つの基底動きベクトルを形成するために各基本単位の可変サイズの部分に対応する動きベクトルをマージすること、
を備え、
各基本単位はピクセルのＮ×Ｍブロックであり、更に、ＮおよびＭは整数である、
請求項３記載の方法。
【請求項１２】
動きベクトルをマージすることは、単純平均すること、重み平均すること、および中央値フィルタリングをおこなうこと、の少なくとも１つを備える、請求項１１記載の方法。
【請求項１３】
前記のマージされた動きベクトルのうちの少なくとも１つを平滑化すること、を更に備える請求項１１記載の方法。
【請求項１４】
前記平滑化することは中央値フィルタリング行うことを備える、請求項１３記載の方法。
【請求項１５】
前記推定することは、
前記第１の基準フレーム内でアンカーセクションを決定することと、
前記第１のセクション上で中央に置かれた前記マルチメディアフレームの第２の動きベクトルウィンドウから、および、前記アンカーセクション上で中央に置かれた前記第１の基準フレームの第３の動きベクトルウィンドウから、利用可能な動きベクトルに基づいて第１の動きベクトルウィンドウを決定することと、
前記第１の動きベクトルウィンドウ内で前記利用可能な動きベクトルの中央値を計算することと、
を更に備える、請求項３記載の方法。
【請求項１６】
もし前記動きベクトルが前記アンカーセクションの前記動きベクトルに類似していないのであれば各動きベクトルは利用不可能としてマークされるように、前記第１の動きベクトルウィンドウを更新すること、を更に備える請求項１５記載の方法。
【請求項１７】
２つの動きベクトルが類似していないかどうかは、両方の動きベクトルの大きさと両方の動きベクトルの方向との少なくとも１つに基づいて決定される、請求項１６記載の方法。
【請求項１８】
両方の動きベクトルの前記の大きさが大きく、かつ、両方の動きベクトルの前記の方向が反対である場合のみ、２つの動きベクトルは類似していないと決定される、請求項１７記載の方法。
【請求項１９】
前記アンカーセクションは、前記マルチメディアフレームの前記誤った第１のセクションに対応する位置でのセクションであるように選択されている、請求項１５記載の方法。
【請求項２０】
前記第１の基準フレームのエリアとの最大のオーバーラップを有する前記第１の基準フレームのセクションに前記アンカーセクションが対応するように前記アンカーセクションは選択され、前記エリアは前記の予測されたフレームのアンカー動きベクトルによって示され、前記アンカー動きベクトルは前記マルチメディアフレーム内の利用可能な隣接するセクションの動きベクトルに基づいて計算される、請求項１５記載の方法。
【請求項２１】
もし前記第１の基準フレームが信頼できないと決定される場合は、前記マルチメディアフレームの前記第１のセクション以外の１つ以上のセクションに基づいて、かつ、前記第１の基準フレームには基づかないで、前記第１のセクションを推定すること、を更に備える請求項１記載の方法。
【請求項２２】
前記方法は、キャジュアルデコーディングプロセスおよび非キャジュアルデコーディングプロセスの両方において適用されることができる、請求項１記載の方法。
【請求項２３】
第１の基準フレームに対応する時間的予測データを得ることと、
前記第１の基準フレームが第１のセクションを推定するために信頼できるかどうかを決定することと、
もし前記第１の基準フレームが信頼できると決定される場合は、マルチメディアフレームの前記第１のセクション以外の１つ以上のセクションと前記第１の基準フレームとに基づいて、誤って受け取られた前記第１のセクションを推定することと、
を備える方法を、
実行するように構成されたプロセッサ。
【請求項２４】
前記の１つ以上のセクションは、前記第１のセクションに隣接する１つ以上のセクションを備える、請求項２３記載のプロセッサ。
【請求項２５】
前記時間的予測データは、前記第１の基準フレームの部分に対応する動きベクトルを備える、請求項２３記載のプロセッサ。
【請求項２６】
前記決定することは、
前記マルチメディアフレームの動きベクトルと前記第１の基準フレーム内の同一場所に配置される動きベクトルとを含んでいる動きベクトルの各ペアが、もしそのペアが利用可能である場合、類似しているかどうかを決定することと、
もし前記の利用可能なペアの数に対する前記の類似しているペアの数の比が閾値よりも大きい場合は、前記第1の基準フレームは信頼できると決定することと、
を更に備えており、
もし両方の動きベクトルが正しく受け取られる場合は、１つのペアの動きベクトルが利用可能である、
請求項２３記載のプロセッサ。
【請求項２７】
各ペアが類似しているかどうかは、両方の動きベクトルの大きさと両方の動きベクトルの方向との少なくとも１つに基づいて決定される、請求項２６記載のプロセッサ。
【請求項２８】
両方の動きベクトルの前記の大きさが大きく、かつ、前記の動きベクトルの前記の方向が反対である場合のみ、各ペアは類似していないと決定される、請求項２７記載のプロセッサ。
【請求項２９】
各セクションはマクロブロックである、請求項２３記載のプロセッサ。
【請求項３０】
前記方法は、前記第１の基準フレームが前記マルチメディアフレームに隣接するように、前記マルチメディアフレームが予測されるべき１つ以上の基準フレームの部分に対応する前記動きベクトルを、前記第１の基準フレームの部分に対応する動きベクトルにスケーリングすることを更に備える、請求項２５記載のプロセッサ。
【請求項３１】
前記方法は、前記のスケーリングされた動きベクトルの少なくとも１つを平滑化することを更に備える、請求項３０記載のプロセッサ。
【請求項３２】
前記平滑化することは、中央値フィルタリングをおこなうことを備える、請求項３１記載のプロセッサ。
【請求項３３】
各フレームは複数のセクションを備え、各セクションは同じサイズの１つ以上の基本単位を備え、前記方法は更に、
前記基本単位に対応する１つの基底動きベクトルを形成するために各基本単位の可変サイズの部分に対応する動きベクトルをマージすること、
を備え、
各基本単位はピクセルのＮ×Ｍブロックであり、更に、ＮおよびＭは整数である、
請求項２５記載のプロセッサ。
【請求項３４】
動きベクトルをマージすることは、単純平均すること、重み平均すること、および中央値フィルタリングをおこなうこと、の少なくとも１つを備える、請求項３３記載のプロセッサ。
【請求項３５】
前記方法は、前記のマージされた動きベクトルのうちの少なくとも１つを平滑化することを更に備える、請求項３３記載のプロセッサ。
【請求項３６】
前記平滑化することは中央値フィルタリング行うことを備える、請求項３５記載のプロセッサ。
【請求項３７】
前記推定することは、
前記第１の基準フレーム内でアンカーセクションを決定することと、
前記第１のセクション上で中央に置かれた前記マルチメディアフレームの第２の動きベクトルウィンドウから、および、前記アンカーセクション上で中央に置かれた前記第１の基準フレームの第３の動きベクトルウィンドウから、利用可能な動きベクトルに基づいて第１の動きベクトルウィンドウを決定することと、
前記第１の動きベクトルウィンドウ内で前記利用可能な動きベクトルの中央値を計算することと、
を更に備える、請求項２５記載のプロセッサ。
【請求項３８】
前記方法は、もし前記動きベクトルが前記アンカーセクションの前記動きベクトルに類似していないのであれば各動きベクトルが利用不可能としてマークされるように、前記第１の動きベクトルウィンドウを更新することを更に備える、請求項３７記載のプロセッサ。
【請求項３９】
２つの動きベクトルが類似していないかどうかは、両方の動きベクトルの大きさと両方の動きベクトルの方向との少なくとも１つに基づいて決定される、請求項３８記載のプロセッサ。
【請求項４０】
両方の動きベクトルの前記の大きさが大きく、かつ、両方の動きベクトルの前記の方向が反対である場合のみ、２つの動きベクトルは類似していないと決定される、請求項３９記載のプロセッサ。
【請求項４１】
前記アンカーセクションは、前記マルチメディアフレームの前記誤った第１のセクションに対応する位置でのセクションであるように選択される、請求項３７記載のプロセッサ。
【請求項４２】
前記第１の基準フレームのエリアとの最大のオーバーラップを有する前記第１の基準フレームのセクションに前記アンカーセクションが対応するように前記アンカーセクションは選択され、前記エリアは前記の予測されたフレームのアンカー動きベクトルによって示され、前記アンカー動きベクトルは前記マルチメディアフレーム内の利用可能な隣接するセクションの動きベクトルに基づいて計算される、請求項３７記載のプロセッサ。
【請求項４３】
前記方法は、もし前記第１の基準フレームが信頼できないと決定される場合は、前記マルチメディアフレームの前記第１のセクション以外の１つ以上のセクションに基づいて、かつ、前記第１の基準フレームには基づかないで、前記第１のセクションを推定すること、を更に備える、請求項２３記載のプロセッサ。
【請求項４４】
前記方法は、キャジュアルデコーディングプロセスおよび非キャジュアルデコーディングプロセスの両方において適用されることができる、請求項２３記載のプロセッサ。
【請求項４５】
誤って受け取られた第１のセクションを備えるマルチメディアフレームを処理するための装置であって、
第１の基準フレームに対応する時間的予測データを得るための手段と、
前記第１の基準フレームが前記第１のセクションを推定するために信頼できるかどうかを決定するための手段と、
もし前記第１の基準フレームが信頼できると決定される場合は、前記マルチメディアフレームの前記第１のセクション以外の１つ以上のセクションと前記第１の基準フレームとに基づいて、誤って受け取られた前記第１のセクションを推定するための手段と、
を備える装置。
【請求項４６】
前記の１つ以上のセクションは、前記第１のセクションに隣接する１つ以上のセクションを備える、請求項４５記載の装置。
【請求項４７】
前記時間的予測データは、前記第１の基準フレームの部分に対応する動きベクトルを備える、請求項４５記載の装置。
【請求項４８】
前記決定するための手段は、
前記マルチメディアフレームの動きベクトルと前記第１の基準フレーム内の同一場所に配置される動きベクトルとを含んでいる動きベクトルの各ペアが、もしそのペアが利用可能である場合、類似しているかどうかを決定することと、
もし前記の利用可能なペアの数に対する前記の類似しているペアの数の比が閾値よりも大きい場合は、前記第1の基準フレームは信頼できると決定することと、
を更に備えており、
もし両方の動きベクトルが正しく受け取られる場合は、１つのペアの動きベクトルが利用可能である、
請求項４７記載の装置。
【請求項４９】
各ペアが類似しているかどうかは、両方の動きベクトルの大きさと両方の動きベクトルの方向との少なくとも１つに基づいて決定される、請求項４８記載の装置。
【請求項５０】
両方の動きベクトルの前記の大きさが大きく、かつ、前記の動きベクトルの前記の方向が反対である場合のみ、各ペアは類似していないと決定される、請求項４９記載の装置。
【請求項５１】
各セクションはマクロブロックである、請求項４５記載の装置。
【請求項５２】
前記第１の基準フレームが前記マルチメディアフレームに隣接するように、前記マルチメディアフレームが予測されるべき１つ以上の基準フレームの部分に対応する前記動きベクトルを、前記第１の基準フレームの部分に対応する動きベクトルにスケーリングするための手段、を更に備える請求項４７記載の装置。
【請求項５３】
前記のスケーリングされた動きベクトルの少なくとも１つを平滑化するための手段、を更に備える請求項５２記載の装置。
【請求項５４】
前記平滑化するための手段は、中央値フィルタリングをおこなうための手段を備える、請求項５３記載の装置。
【請求項５５】
各フレームは複数のセクションを備え、各セクションは同じサイズの１つ以上の基本単位を備え、更に、
前記基本単位に対応する１つの基底動きベクトルを形成するために各基本単位の可変サイズの部分に対応する動きベクトルをマージするための手段、
を備え、
各基本単位はピクセルのＮ×Ｍブロックであり、更に、ＮおよびＭは整数である、
請求項４７記載の装置。
【請求項５６】
前記の動きベクトルをマージするための手段は、単純平均すること、重み平均すること、および中央値フィルタリングをおこなうこと、の少なくとも１つのための手段を備える、請求項５５記載の装置。
【請求項５７】
前記のマージされた動きベクトルのうちの少なくとも１つを平滑化するための手段、を更に備える請求項５５記載の装置。
【請求項５８】
前記の平滑化するための手段は、中央値フィルタリングのための手段を備える、請求項５７記載の装置。
【請求項５９】
前記の推定するための手段は、
前記第１の基準フレーム内でアンカーセクションを決定するための手段と、
前記第１のセクション上で中央に置かれた前記マルチメディアフレームの第２の動きベクトルウィンドウから、および、前記アンカーセクション上で中央に置かれた前記第１の基準フレームの第３の動きベクトルウィンドウから、利用可能な動きベクトルに基づいて第１の動きベクトルウィンドウを決定するための手段と、
前記第１の動きベクトルウィンドウ内で前記利用可能な動きベクトルの中央値を計算するための手段と、
を更に備える、請求項４７記載の装置。
【請求項６０】
もし前記動きベクトルが前記アンカーセクションの前記動きベクトルに類似していないのであれば各動きベクトルが利用不可能としてマークされるように、前記第１の動きベクトルウィンドウを更新するための手段、を更に備える請求項４７記載の装置。
【請求項６１】
２つの動きベクトルが類似していないかどうかは、両方の動きベクトルの大きさと両方の動きベクトルの方向との少なくとも１つに基づいて決定される、請求項６０記載の装置。
【請求項６２】
両方の動きベクトルの前記の大きさが大きく、かつ、両方の動きベクトルの前記の方向が反対である場合のみ、２つの動きベクトルは類似していないと決定される、請求項６１記載の装置。
【請求項６３】
前記アンカーセクションは、前記マルチメディアフレームの前記誤った第１のセクションに対応する位置でのセクションであるように選択される、請求項５９記載の装置。
【請求項６４】
前記第１の基準フレームのエリアとの最大のオーバーラップを有する前記第１の基準フレームのセクションに前記アンカーセクションが対応するように前記アンカーセクションは選択され、前記エリアは前記の予測されたフレームのアンカー動きベクトルによって示され、前記アンカー動きベクトルは前記マルチメディアフレーム内の利用可能な隣接するセクションの動きベクトルに基づいて計算される、請求項５９記載の装置。
【請求項６５】
もし前記第１の基準フレームが信頼できないと決定される場合は、前記マルチメディアフレームの前記第１のセクション以外の１つ以上のセクションに基づいて、かつ、前記第１の基準フレームには基づかないで、前記第１のセクションを推定するための手段、を更に備える請求項４５記載の装置。
【請求項６６】
前記装置は、キャジュアルデコーディングプロセスおよび非キャジュアルデコーディングプロセスの両方において適用されることができる、請求項４５記載の装置。
【請求項６７】
第１の基準フレームに対応する時間的予測データを得ることと、
前記第１の基準フレームが第１のセクションを推定するために信頼できるかどうかを決定することと、
もし前記第１の基準フレームが信頼できると決定される場合は、マルチメディアフレームの前記第１のセクション以外の１つ以上のセクションと前記第１の基準フレームとに基づいて、誤って受け取られた前記第１のセクションを推定することと、
を備える方法を、コンピュータに実行させるための手段
を具現化するコンピュータ可読媒体。
【請求項６８】
前記の１つ以上のセクションは、前記第１のセクションに隣接する１つ以上のセクションを備える、請求項６７記載のコンピュータ可読媒体。
【請求項６９】
前記時間的予測データは、前記第１の基準フレームの部分に対応する動きベクトルを備える、請求項６７記載のコンピュータ可読媒体。
【請求項７０】
前記決定することは、
前記マルチメディアフレームの動きベクトルと前記第１の基準フレーム内の同一場所に配置される動きベクトルとを含んでいる動きベクトルの各ペアが、もしそのペアが利用可能である場合、類似しているかどうかを決定することと、
もし前記の利用可能なペアの数に対する前記の類似しているペアの数の比が閾値よりも大きい場合は、前記第1の基準フレームは信頼できると決定することと、
を更に備えており、
もし両方の動きベクトルが正しく受け取られる場合は、１つのペアの動きベクトルが利用可能である、
請求項６９記載のコンピュータ可読媒体。
【請求項７１】
各ペアが類似しているかどうかは、両方の動きベクトルの大きさと両方の動きベクトルの方向との少なくとも１つに基づいて決定される、請求項７０記載のコンピュータ可読媒体。
【請求項７２】
両方の動きベクトルの前記の大きさが大きく、かつ、前記の動きベクトルの前記の方向が反対である場合のみ、各ペアは類似していないと決定される、請求項７１記載のコンピュータ可読媒体。
【請求項７３】
各セクションはマクロブロックである、請求項６７記載のコンピュータ可読媒体。
【請求項７４】
前記方法は、前記第１の基準フレームが前記マルチメディアフレームに隣接するように、前記マルチメディアフレームが予測されるべき１つ以上の基準フレームの部分に対応する前記動きベクトルを、前記第１の基準フレームの部分に対応する動きベクトルにスケーリングすることを更に備える、請求項６９記載のコンピュータ可読媒体。
【請求項７５】
前記方法は、前記のスケーリングされた動きベクトルの少なくとも１つを平滑化することを更に備える、請求項７４記載のコンピュータ可読媒体。
【請求項７６】
前記平滑化することは、中央値フィルタリングをおこなうことを備える、請求項７５記載のコンピュータ可読媒体。
【請求項７７】
各フレームは複数のセクションを備え、各セクションは同じサイズの１つ以上の基本単位を備え、前記方法は、更に、
前記基本単位に対応する１つの基底動きベクトルを形成するために各基本単位の可変サイズの部分に対応する動きベクトルをマージすること、
を備え、
各基本単位はピクセルのＮ×Ｍブロックであり、更に、ＮおよびＭは整数である、
請求項６９記載のコンピュータ可読媒体。
【請求項７８】
前記の動きベクトルをマージすることは、単純平均すること、重み平均すること、および中央値フィルタリングをおこなうこと、の少なくとも１つを備える、請求項７７記載のコンピュータ可読媒体。
【請求項７９】
前記方法は、前記のマージされた動きベクトルのうちの少なくとも１つを平滑化することを更に備える、請求項７７記載のコンピュータ可読媒体。
【請求項８０】
前記平滑化することは、中央値フィルタリングをおこなうことを備える、請求項７９記載のコンピュータ可読媒体。
【請求項８１】
前記推定することは、
前記第１の基準フレーム内でアンカーセクションを決定することと、
前記第１のセクション上で中央に置かれた前記マルチメディアフレームの第２の動きベクトルウィンドウから、および、前記アンカーセクション上で中央に置かれた前記第１の基準フレームの第３の動きベクトルウィンドウから、利用可能な動きベクトルに基づいて第１の動きベクトルウィンドウを決定することと、
前記第１の動きベクトルウィンドウ内で前記利用可能な動きベクトルの中央値を計算することと、
を更に備える、
請求項６９記載のコンピュータ可読媒体。
【請求項８２】
前記方法は、もし前記動きベクトルが前記アンカーセクションの前記動きベクトルに類似していないのであれば各動きベクトルが利用不可能としてマークされるように、前記第１の動きベクトルウィンドウを更新すること、を更に備える、請求項８１記載のコンピュータ可読媒体。
【請求項８３】
２つの動きベクトルが類似していないかどうかは、両方の動きベクトルの大きさと両方の動きベクトルの方向との少なくとも１つに基づいて決定される、請求項８２記載のコンピュータ可読媒体。
【請求項８４】
両方の動きベクトルの前記の大きさが大きく、かつ、両方の動きベクトルの前記の方向が反対である場合のみ、２つの動きベクトルは類似していないと決定される、請求項８３記載のコンピュータ可読媒体。
【請求項８５】
前記アンカーセクションは、前記マルチメディアフレームの前記誤った第１のセクションに対応する位置でのセクションであるように選択される、請求項８１記載のコンピュータ可読媒体。
【請求項８６】
前記第１の基準フレームのエリアとの最大のオーバーラップを有する前記第１の基準フレームのセクションに前記アンカーセクションが対応するように前記アンカーセクションは選択され、前記エリアは前記の予測されたフレームのアンカー動きベクトルによって示され、前記アンカー動きベクトルは前記マルチメディアフレーム内の利用可能な隣接するセクションの動きベクトルに基づいて計算される、請求項８１記載のコンピュータ可読媒体。
【請求項８７】
前記方法は、もし前記第１の基準フレームが信頼できないと決定される場合は、前記マルチメディアフレームの前記第１のセクション以外の１つ以上のセクションに基づいて、かつ、前記第１の基準フレームには基づかないで、前記第１のセクションを推定することを更に備える、請求項６７記載のコンピュータ可読媒体。
【請求項８８】
前記方法は、キャジュアルデコーディングプロセスおよび非キャジュアルデコーディングプロセスの両方において適用されることができる、請求項６７記載のコンピュータ可読媒体。
【請求項８９】
誤って受け取られた第１のセクションを備えるマルチメディアフレームを処理するための装置であって、
第１の基準フレームに対応する時間的予測データを得るように構成された時間的予測データ生成器と、
前記第１の基準フレームが前記第１のセクションを推定するために信頼できるかどうかを決定するように構成されたフレーム動き変化検出器と、
もし前記第１の基準フレームが信頼できると決定される場合は、前記マルチメディアフレームの前記第１のセクション以外の１つ以上のセクションと前記第１の基準フレームとに基づいて、誤って受け取られた前記第１のセクションを推定するように構成された動きベクトル推定器と、
を備える装置。
【請求項９０】
前記の１つ以上のセクションは、前記第１のセクションに隣接する１つ以上のセクションを備える、請求項８９記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
（米国特許法１１９条のもとでの優先権の主張）
本特許出願は、本譲受人に譲渡され、ここに参照することによりここに明示的に組み込まれる、２００５年３月１０日に出願された「デコーダのための誤り回復の方法(METHOD OF ERROR RECOVERY FOR A DECODER)」と題される米国特許仮出願第６０／６６０，８６７号、および、２００５年３月１１日に出願された「Ｐ−フレームのための時間的エラー隠蔽の方法および装置 (METHOD AND APPARATUS OF TEMPORAL ERROR CONCEALMENT FOR P-FRAME)」と題される米国特許仮出願第６０／６８０，２７７号、の優先権を主張する。
【０００２】
（分野）
本発明は、誤り管理を用いてデジタルデータを符号化および復号化するための方法および装置に関係する。
【背景技術】
【０００３】
（背景）
インターネットおよび無線通信の広範にわたる使用は、インターネットおよびモバイル／無線通信チャネル上でメディアを流すマルチメディアサービスの需要を増大させている。インターネットプロトコル（ＩＰ）ネットワークにおいては、ビデオはサーバーによって提供されることができ、また、１以上の有線または無線のクライアントによって流されることができる。有線接続は、ダイヤルアップ、統合サービスデジタル網（ＩＳＤＮ）、ケーブル、デジタル加入者線プロトコル（集合的にｘＤＳＬと呼ばれる）、ファイバー、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）など、を含んでいる。無線通信を利用する電子デバイスは、電話（例、携帯電話）、携帯情報端末(personal data assistants)（ＰＤＡ）、ハンドヘルドおよびポータブルコンピュータなど、を含んでいる。これらのアプリケーションの全部ではないにしてもほとんどにおいて、帯域幅要件(requirements)及び／又は制限(restrictions)は、「最小の」数のビットの使用により最大の情報を伝えるために、ビデオデータを分析し、定量化し、かつ表わす画像圧縮アルゴリズムを組込むソースエンコーダをビデオ処理が利用することを、必要とする。そのようなアルゴリズムの特性は著しく変動し、それはそれらのパフォーマンス（例えば圧縮効率およびビットレートなど）における大規模な変化へと導く。圧縮アルゴリズムを使用するビデオ処理の特性は、コンテンツに基づいて著しく変わる可能性があり、それは、それらのパフォーマンス（例えば圧縮効率およびビットレートなど）における大規模な変化をもたらす可能性がある。
【０００４】
無線通信チャネルはエラー(error)しがちである。送信されたデータの一部は、データのこの部分が失われるか又は破損されているときは、「誤っている(erroneous)」。画像圧縮は本質的にリダンダンシ(redundancy)を削除するので、圧縮されたデータはクリティカル(critical)である。伝送中のこのデータのどんな誤り部分もデコーダでの再構成されたビデオ品質にインパクトを与える。もし誤りデータが動き補償予測(motion compensated prediction)のための基準フレームの一部である場合は、そのインパクトは悪化し、時間的誤り伝播を引き起こす。
【０００５】
誤って受信されたビットストリームデータに起因して再構成されたビデオ品質へのインパクトを緩和するために、ビデオデコーダは、ビデオ品質を改善するために受信ビデオデータを処理する。これはエラー隠蔽(error concealment)と呼ばれる。エラー隠蔽スキームは、ビデオ信号中に存在する時空間相関性(spatial and temporal correlation)を利用する。従って、これらの方式は空間的あるいは時間的エラー隠蔽(spatial or temporal error concealment)と呼ばれる。
【０００６】
パケット化のタイプおよびチャネルエラー（ビットエラー及び／又はパケットロス）の性質に応じて、１以上のマクロブロックあるいはスライスに関係するデータの全部または部分は、伝送の間、誤っていることがあり得るであろう。マクロブロックの場合、次の１つ以上を含んでいる様々な符号化されたマクロブロックデータは誤っていることがあり得るであろう：すなわち、コーディングモード（インターあるいはイントラ(inter or intra)）、動きベクトル(motion vectors)（もしインターであれば）、および変換係数(transform coefficients)。
【０００７】
マクロブロックが誤っているとき、典型的に、上記の情報が全て誤っていると仮定される。インター符号化された(inter-coded)マクロブロックの場合、その動きベクトルおよびレジヂュアル係数(residual coefficients)は誤っている。残余信号(residual signals)が高度に無相関化される(highly de-correlated)ので、それらは隣接するマクロブロックから推定するのが難しい。然しながら、研究は、もし動きベクトルが回復されることができる場合は、再構成されたビデオ品質は大幅に改善されることができることを示した。従って、時間的エラー隠蔽の主要な目標は、その時空間の隣のもの(spatial and temporal neighbors)から誤り動きベクトル(erroneous motion vectors)を推定することである。一旦動きベクトルが構成されれば、動き補償(motion compensation)は、そのあと、０のレジヂュアル係数を備えて構成された動きベクトルを使用して行なわれることができる。
【０００８】
いくつかの現存する時間的エラー隠蔽スキームがあるが、それらは良い結果を提示することができない。更に、それらは、複数の基準フレームおよび可変の動き補償ブロックサイズをサポートするマルチメディアデータストリームと互換性がない。従って、良い結果を達成し、且つより広い互換性を提供する、新しい時間的エラー隠蔽スキームが必要とされている。
【発明の開示】
【０００９】
［概要］
誤って受け取られた第１のセクションを備えるマルチメディアフレームを処理する方法および装置が開示されている。方法は、第１の基準フレームに対応する時間的予測データを得ることを備える。方法は更に、第１の基準フレームが第１のセクションを推定するために信頼できるかどうかを決定することを備える。方法は更に、もし第１の基準フレームが信頼できると決定される場合は、マルチメディアフレームの第１のセクション以外の１つ以上のセクションと第１の基準フレームとに基づいて、誤って受け取られた第１のセクションを推定することを備える。
【００１０】
［詳細な説明］
以下の記載においては、開示された方法および装置の十分な理解を提供するために特定の詳細が説明される。然しながら、開示された方法および装置は、これらの特定の詳細なしに実行されてもよいことは、当業者によって理解されるだろう。例えば、電子コンポーネントは、不必要な詳細である態様を不明瞭にしないようにブロック図で示されるかもしれない。他のインスタンスでは、そのようなコンポーネント、他の構成および技術が、ある態様を更に説明するために詳細に示されるかもしれない。
【００１１】
ある態様は、フローチャート、フローダイアグラム、構造ダイアグラム、あるいはブロック図として示されるプロセスとして説明されることができるということに注意すべきである。フローチャートは連続するプロセスとしてオペレーションを説明するかもしれないが、オペレーションの多くは、並列にあるいは同時に実行されることができ、また、プロセスは繰り返されることができる。更に、オペレーションの順序は並び替えられることができる。プロセスは、そのオペレーションが完了されるときに、終了する。プロセスは、方法、機能、手続き、サブルーチン、サブプログラムなどに対応するかもしれない。プロセスが機能に対応するときは、その終了は、呼出し機能あるいは主機能への機能のリターンに対応する。
【００１２】
図１は、受信マルチメディアデータストリーム（示されていない）を復号するように構成されたデコーダの一例を説明するブロック図を示す。マルチメディアデータは、ビデオ、オーディオ、グラフィックス、テキスト、および画像を含んだ、しかしこれらに限定されずに、様々な形式であり得る。データは、ＭＰＥＧ−ｘおよびＨ．２６ｘ標準規格におけるような圧縮されたビデオおよびオーディオ、ＭＰＥＧ−４  ＡＡＣ、ＭＰ３、ＡＭＲおよびＧ．７２３オーディオあるいは音声圧縮標準規格におけるような圧縮されたオーディオ、あるいは、任意の他のタイプのデジタルデータ、であり得る。データストリームは、電話、ケーブル、そして光ファイバー、あるいは無線ネットワークのような、有線ネットワークを介して受け取られることができる。無線の場合においては、ネットワークは、例えば、符号分割多元接続（ＣＤＭＡまたはＣＤＭＡ２０００）通信システムの一部を備えることができる、あるいは、システムは、周波数分割多元接続（ＦＤＭＡ）システム、直交周波数分割多重（ＯＦＤＭ）システム、時分割多元接続（ＴＤＭＡ）システム、例えば、ＧＳＭ／ＧＰＲＳ（汎用パケット無線サービス）／ＥＤＧＥ（拡張されたデータＧＳＭ環境）あるいはサービス産業のためのＴＥＴＲＡ（地上波基幹無線）モバイル電話技術など、広帯域符号分割多元接続（ＷＣＤＭＡ）、高データレート（ＩｘＥＶ−ＤＯあるいはＩｘＥＶ−ＤＯのゴールドマルチキャスト(Gold Multicast)）システム、あるいは一般に技術の組合せを使用する任意の無線通信システム、であることができる。
【００１３】
デコーダ１００は、誤りインター符号化データ(erroneous inter-coded data)に対し時間的エラー隠蔽(temporal error concealment)を行なうように構成される。インターあるいは予測コーディング(inter or predictive coding)は、別の画像に関して画像（フィールドあるいはフレーム）を符号化することを指す。本願全体にわたって使用されるインターコード化された画像の例は、（「Ｐ−フレーム」と呼ばれる順方向または逆方向に予測された）予測フレーム(predicted frames)である。インターコーディング(inter-coding)のための他の用語は、ハイパスコーディング(high-pass coding)、レジヂュアルコーディング（residual coding）、動き補償補間(motion compensated interpolation)、および当業者によく知られたその他を含んでいる。Ｐ−フレーム（あるいは任意のインターコード化されたセクション）は、現在のフレーム中の領域と基準フレーム中のベストマッチング予測領域域(best matching prediction region)との間の時間的リダンダンシ(temporal redundancy)を利用（exploit）できる。現在の領域とベストマッチング基準予測領域の間の差は、残差(residual error)（あるいは予測誤差(prediction error)）として知られている。基準フレームにおけるベストマッチング予測領域の位置は、動きベクトル中で符号化されることができる。
【００１４】
デコーダ１００はまた、もしＩ−フレームがシーケンスにおける最初のフレームでないならば、かつ、もし場面変化(scene change)がないならば、ここに開示された時間的隠蔽方法を行なうように構成されることができる。Ｉ−フレームは、イントラ符号化されたフレーム(intra-coded frame)を指し、それは、いずれの他のフレームへの参照もなしに符号化されているとして当業者によって理解されている。Ｉ−フレームは動き情報を含んでいないので、前のＰ−フレームからの動き情報は、誤りＩ−フレームデータを隠蔽にするために使用される。
【００１５】
デコーダ１００は、時間的予測データ生成器(temporal prediction data generator)１０２、フレーム動き変化検出器(frame motion change detector)１０４、動きベクトル推定器(motion vector estimator)１０６、メモリ１０８およびプロセッサ１１２を備える。時間的予測データ生成器１０２は、Ｐ−フレームが予測されることができる基準フレームに対応する時間的予測データを得るように構成される。フレーム動き変化検出器１０４は、Ｐ−フレームから基準フレームまでの動きにおいて重要な変化(significant change)があるかどうかを検出することによって、誤りマクロブロックを推定するために基準フレームが信頼できるかどうかを決定するように、構成される。マクロブロックは、関連するピクセルのグループであり、そしてこの例においては、１６×１６ピクセルで構成されている。ピクセルは、８ビットの輝度値(luminance value)（Ｙ）および２つの８ビットのクロミナンス値(chrominance values)（ＣｒとＣｂ）によって定義されることができる。ＭＰＥＧにおいては、Ｙ、ＣｒおよびＣｂのコンポーネントは、４：２：０フォーマットで保存されることができ、この場合、ＣｒとＣｂのコンポーネントは、ＸおよびＹ方角に２ずつダウン−サンプリング(down-sampled)される。従って、各マクロブロックは、２５６のＹコンポーネント、６４のＣｒコンポーネントおよび６４のＣｂコンポーネントから成る(consist of)であろう。
【００１６】
動きベクトル推定器１０６は、基準フレームが信頼できるかどうかに一部基づいた複数の方法のうちの１つで誤りマクロブロックについて動きベクトルを推定するように構成される。プロセッサ１１２は、任意の適切な汎用の単一−またはマルチ−チップマイクロプロセッサ、あるいは任意の適切な専用マイクロプロセッサ、例えば、デジタル信号プロセッサ、マイクロコントローラ、あるいはプログラマブルゲートアレイなど、であってよい。プロセッサ１１２は、時間的予測データ生成器１０２、フレーム動き変化検出器１０４、および動きベクトル推定器１０６のオペレーションを制御する１つ以上のソフトウェアアプリケーションを実行するように構成される。プロセッサ１１２はまた、データを読みとり保存するメモリ１０８にアクセスするように構成される。ある例においては、時間的予測データ生成器１０２とフレーム動き変化検出器１０４のいずれかあるいは両方は取り除かれることができる。
【００１７】
図１の中で示されるような機能ブロックのうちのどんな１つも、デコーダの機能を変更することなく、再配置され、あるいは、１つ以上の他のブロックと結合されることができるということに注意すべきである。
【００１８】
図２は、Ｐ−フレームの誤りマクロブロックのための時間的エラー隠蔽の方法の一例を説明するフローチャートである。時間的エラー隠蔽の方法は、Ｐ−フレーム中の隣接するマクロブロックと単数又は複数の基準フレーム(reference frame or frames)中のマクロブロックに基づいてＰ−フレーム中の誤りマクロブロックについての動きベクトルの推定値を導き出す。
【００１９】
方法は、キャジュアルデコーディングプロセス(casual decoding process)あるいは非キャジュアルデコーディングプロセス(non-casual decoding process)で適用されることができる。キャジュアルデコーディングプロセスでは、各マクロブロックは、決定された時間順序で復号される。デコーディングプロセスが次のマクロブロックに移る前に、マクロブロックのデコーディングは完了する。非キャジュアルデコーディングプロセスでは、現在のマクロブロックに続くマクロブロックが復号された後は、現在のマクロブロックのデコーディングは遅らせることができる。
【００２０】
方法２００は、オプショナルブロック(optional block)２０２で始まり、そこにおいて、デコーダは、受信されたＰ−フレームのマクロブロックが誤っていると決定する。オプショナルブロック２０４に移って、デコーダは、Ｐ−フレームの正確に受けとられたマクロブロックのための動きベクトルを生成する。次にブロック２０６で、デコーダは、現在のＰ−フレームから正確に受け取られた動きベクトルと現在のＰ−フレームの誤りマクロブロックに対応する基準フレームから正確に復号された動きベクトルとの使用により、動きベクトルウィンドウを形成する。この例において、動きベクトルウィンドウは３Ｘ３マクロブロックを含んでいるが、しかし、動きベクトルウィンドウは、１つのマクロブロックからそれ以上にサイズで変わることができることが理解される。ブロック２０４および２０６は、下記に更に詳細に説明される。
【００２１】
ブロック２０８に進み、デコーダは、３Ｘ３動きベクトルウィンドウの利用可能な動きベクトルに、動きベクトル平滑化(motion vector smoothing)を行ない、そして、誤りマクロブロックについて推定された動きベクトルを生成する。ある例においては、推定動きベクトル(estimate motion vector)は、中央値フィルタリング(median filtering)により得られた３Ｘ３ウィンドウにおける利用可能な動きベクトルの中央値（median）である。
【００２２】
中央値フィルタリングは、同時にエッジ(edge)を保持する間にインパルスノイズ(impulse noises)を取り除くために、信号およびイメージ処理において広く使用される。  ｉ＝１,２，・・・Ｎの場合、
【数１】
2008533845.tif 000003
【００２３】
の関係の、Ｎスカラー(SCALARS)のアレイ(array)、Ｘ＝（ｘ１,ｘ２，・・・ｘＮ）についての中央値を得るために、普通は、アレイは最初に
【数２】
2008533845.tif 000004
【００２４】
にソートされる(sorted)。そのあと、
【数３】
2008533845.tif 000005
【００２５】
におけるエレメントが、アレイの中央値ｘＭとして得られる。中央値ｘＭは、次のプロパティを満足する。  
【数４】
2008533845.tif 000006
【００２６】
同様に、ｉ＝１,２，・・・Ｎの場合、
【数５】
2008533845.tif 000007
【００２７】
の関係の、Ｎのｍ次元ベクトルのアレイ、
【数６】
2008533845.tif 000008
【００２８】
については、
【数７】
2008533845.tif 000009
【００２９】
が、次の制約：すなわち
【数８】
2008533845.tif 000010
【００３０】
を満足するベクトルである。  
ここで、ｐはベクトル間のｐ−ノルムメトリック(p-norm metrics)を示す。一例においては、ｐ＝１が使用される。二次元ベクトル
【数９】
2008533845.tif 000011
【００３１】
の場合、
【数１０】
2008533845.tif 000012
【００３２】
の１−ノルム距離(1-norm distance)は、
【数１１】
2008533845.tif 000013
【００３３】
である。
【００３４】
動きベクトル中央値フィルタリングが、全ての利用可能な動きベクトルに適用される。もし動きベクトルが、誤りマクロブロックからか、またはイントラ−マクロブロックからであるのであれば、あるいは、そのサブパーティション(sub-partition)のレファレンスインデックス(reference index)のうちのどれもゼロに等しくない場合は、動きベクトルは、利用可能でないものとしてマークされ、そうでなければ、それは利用可能とラベル表示される。
【００３５】
このフローチャートにおいて説明されるブロックのうちのいずれのものも省略され、順序において並び替えられ、あるいは１つ以上の他のブロックと結合されてもよい、ということに注意すべきである。
【００３６】
図３は、図２のブロック２０４で現在のＰ−フレームの動きベクトルを生成するプロセスの一例を説明するフローチャートである。ビデオ通信システムのある例は、複数の基準フレームから予測されるＰ−フレームおよび可変の動き補償ブロックサイズをサポートするデコーダを必要とする。そのような例においては、デコーダへの入力のうちの１つは、可変サイズの各復号されたブロック(decoded block)の動きベクトルである。他の入力は、現在の復号されたフレームからの各送信された動きベクトルのための基準フレームインデックス（ｒｅｆ＿ｉｄｘ）である。基準フレームインデックス情報は、各動きベクトルのためのビットストリーム中で伝えられ、現在のフレームとその動きベクトルの基準フレームとの間の距離を示している。一例においては、各マクロブロックについて、７つの有効な動き補償ブロックサイズがある。これらのブロックサイズは、１６ｘ１６、１６ｘ８、８ｘ１６、８ｘ８、８ｘ４、４ｘ８、４ｘ４である。現在のＰ−フレームの動きベクトルを生成するプロセスは、入力動きベクトルを、単一の即時基準フレーム(single immediate reference frame)および一様の補正ブロックサイズ(uniform compensation block size)に基づいた動きベクトルに変換することによって、複数の基準フレームおよび可変の動き補償ブロックサイズのための必要なサポートを提供する。
【００３７】
方法２０４は、動きベクトルスケーリングが実行されるブロック２０４２で始まる。動きベクトルスケーリングステップは、動きベクトルが示す現在のフレームと基準フレームとの間の距離に基づいて、入力動きベクトルのスケーリングを実行する。動きベクトルスケーリングの後、全ての動きベクトルは、現在のフレームからその即時基準フレーム(immediate reference frame)、すなわち、現在のフレームの隣接フレーム(adjacent frame)（ｒｅｆ＿ｉｄｘ値は０と等しい）まで示される。それ故に、複数の基準フレームは、単一の即時の基準フレームへとスケーリングされる。その即時基準フレームを示された新しい動きベクトルは、次のように特徴づけられることができる：
ＭＶ＿ｆ＿ｘ＝ＭＶ＿ｘ*Ｎ／Ｍ；                      （１）
ＭＶ＿ｆ＿ｙ＝ＭＶ＿ｙ*Ｎ／Ｍ                        （２）
ここで、ＭＶ＿ｆ＿ｘとＭＶ＿ｆ＿ｙは、新しい動きベクトルのｘとｙのコンポーネントであり、ＭＶ＿ｘとＭＶ＿ｙは、送信された動きベクトルのｘとｙのコンポーネントであり、Ｎは、現在のフレームからその即時基準フレームまでの距離であり、そして、Ｍは、現在のフレームから基準フレームまでの距離であり、それを動きベクトルが示す。
【００３８】
次にブロック２０４４で、動きベクトルマージング(motion vector merging)が行なわれる。動きベクトルマージングは、可変のブロックサイズ動きベクトルに必要なサポートを提供する。この動作中に、異なるサイズの入力動きベクトルは、基本単位(base unit)と呼ばれる一様のブロックサイズを表わす動きベクトルに変換される。基本単位のサイズは構成可能である(configurable)。いくつかの例では、１６ｘ１６基本単位が使用される。
【００３９】
もし基本単位が、より小さなサイズ(単数または複数)のいくつかのスケーリングされた動きベクトルを備える場合、マージングオペレーション(merging operation)が、基本単位の内部の動きベクトルを単一の動きベクトルにマージし(merge)、そして、それを基本単位に割り当てる(assign)ために適用される。然しながら、もしスケーリングされた動きベクトルが基本単位よりも大きい場合は、入力動きベクトルは、いくつかの動きベクトルに分離され、各々が基本単位を表し、そして、各々が、スケーリングされた動きベクトルと同じ動きベクトルを有している。マージングオペレーションを行なうために、様々な例が利用可能である。一例においては、新しい動きベクトルは、基本単位に含まれる小さなサイズ(smaller sizes)のいくつかのスケーリングされた動きベクトルの中間(mean)である。別の例においては、新しい動きベクトルは、基本単位に含まれるいくつかのスケーリングされた動きベクトルのいくつかのスケーリングされた動きベクトルの平均(average)である。ブロック２０４４の後、すべての正確に復号された動きベクトルは、単一のサイズの基本単位に変換される。
【００４０】
ブロック２０４６に移って、動きベクトル中央値フィルタリング(motion vector median filtering)が、ブロック２０４４からの動きベクトル上で実行される。前のブロック２０４２および２０４４は、受け取られた動きベクトルフィールドを、均一化されたサイズ（基本単位サイズ）の、単一の基準（全ての動きベクトルは、現在のフレームから即時基準フレームの方を指すようにスケーリングされる）動きフィールドに修正する。動きベクトル中央値フィルタリングは、スケーリングおよびマージングのオペレーションによってもたらされた特異性(singularity)を取り除く(smooth out)ために実行され、それ故に、よりよいエラー隠蔽結果を生み出す。動きベクトル中央値フィルタリングは、図２における上記に論考されたのと同じである。一例では、３Ｘ３動きベクトル中央値フィルタリング（ＶＭＦ）が、各利用可能な動きベクトルに適用される。各利用可能な動きベクトルは、その動きベクトル上で中心にくる３Ｘ３ブロックにおける動きベクトルの中央値と取り替えられる。他の例においては、異なるサイズブロックが、動きベクトル中央値フィルタリングを実行するように使用されることができる。
【００４１】
要するに、Ｐ−フレームの動きベクトルを生成するプロセスの本例は、可変のブロックサイズの入力動きベクトルを基本単位動きベクトルに変換し、そして、各デコーディングフレームの複数の基準フレームを、基準フレームリストにおける単一の最も小さなインデックス基準フレームに変換する。
【００４２】
このフローチャートにおいて説明されるブロックのうちのいずれのものも、省略され、順序において並び替えられ、あるいは、１つ以上の他のブロックと結合されることができる、ということに注意すべきである。
【００４３】
図４は、図２のブロック２０６で現在のＰ−フレームおよび基準フレームに基づいて動きベクトルウィンドウを形成するプロセスの一例を示すフローチャートである。図２に関して論考されるように、このプロセスにおいて生成される動きベクトルウィンドウは、このとき、誤りマクロブロックの動きベクトルの推定を構成するために使用されてもよい。一例では、動きベクトルウィンドウは、マクロブロックの３Ｘ３ウィンドウであるが、他のサイズが同様に使用されてもよい。該例において、基準フレームは、現在のＰ−フレームへの即時基準フレームである、すなわち、現在のＰ−フレームに隣接するフレームである。他の例では、基準フレームは、現在のＰ−フレームからさらに離れることができるであろう。方法は、キャジュアルデコーディングプロセスかあるいは非キャジュアルデコーディングプロセスにおいて適用されることができる。
【００４４】
方法２０６は、ブロック２０６２で始まり、そこでは、現在のＰ−フレームおよび基準フレームにおける動きが連続的(continuous)であるかどうかが決定される。もし現在のフレーム中の動きが基準フレーム中の動きから著しく変わらない場合は、その動きは連続的である。
【００４５】
図３における上記に説明されたような方法２０４に似た方法が、基準フレームの動きベクトルを生成するために適用される。一旦基準フレームの動きベクトルが生成されれば、現在および基準のフレームにおける同一場所に配置される(co-located)動きベクトルの各ペア(pair)は、もしペアが利用可能な場合、現在のフレームおよび基準フレームにおける動きが連続的であるかどうかを決定するために、そのとき比較される。もし両方の動きベクトルが正確に受け取られる場合、１ペアの動きベクトルは利用可能である。２つのフレームにおける類似している動きベクトルのペアのカウント(count)は維持される。もし類似している動きベクトルのカウントが、利用可能な動きベクトルペアのカウントの閾値パーセンテージよりも大きい場合、２つのフレームにおける動きは著しく変わっていない。そうでなければ、フレーム間の動き変化(frame-to-frame motion change)が検出される。例においては、他の数もまた使用されてよいが、閾値パーセンテージは５０％である。
【００４６】
各受信動きベクトルは、大きさラベルおよび方向ラベルを与えられる。例において、大きさラベルは、０（小さな大きさ）あるいは１（大きな大きさ）の値を有している。もし動きベクトルの大きさが閾値よりも大きい場合、動きベクトルは、１の大きさラベルを与えられる。例において、大きさラベルを決定するための閾値は２ピクセルであるが、しかし、他の値もまた使用されてよい。例において、方向ラベルは、０、１、２、あるいは３の値を有し、４つの主な方向のうちの１つを表わしている。
【００４７】
２つのフレームにおける同一場所に配置される動きベクトルの各ペアは、それらの大きさラベルおよび方向ラベルに基づいて比較される。例えば、各ペアの動きベクトルは、それらの大きさが両方とも大きくなく、且つ、それらの方向が反対でなければ、類似していると宣言される。小さな動きベクトルは方向的にランダムに分布する傾向があるので、このアプローチは、小さな大きさの動きベクトルの方向性の情報を見落とす(overlooks)。
【００４８】
もし動きが連続的でないと決定される場合は、基準フレームからの動きベクトルは信頼できず、また、誤りマクロブロックの動きベクトルを推定するためには使用されることができない。もし基準フレームからの動きベクトルが信頼できない場合、プロセスはブロック２０６４に行き、それは、現在のフレームにおける隣接するマクロブロックに基づいて、動きベクトルウィンドウを埋める(fill in）。もし動きが連続的な場合は、プロセスは、ブロック２０６６および２０６７に行き、その中で、動きベクトルウィンドウが、基準フレームおよび現在のフレームの両方に基づいて生成される。
【００４９】
ブロック２０６６に移動して、アンカーマクロブロック(anchor macroblock)が基準フレーム中で選択される。一例は、同一場所に配置される方法(co-located method)を適用し、ここでは、アンカーマクロブロックが、基準フレーム中の同一場所に配置されるマクロブロックである。該例は、全ての動きベクトルが同じアファイン変換のモデル(affine model)に従うグローバルな動き(global motion)のケース、あるいは、現在のフレーム動きベクトルウィンドウ中の動きベクトルと基準フレーム中の同一場所に配置される動きベクトルウィンドウの両方が、バックグラウンド領域(background region)にある状況に、適している。動いているオブジェクト(moving object)を備えた不規則な動きの場合、この技術は、エラー隠蔽目的のために予期された動きベクトルを有効に取り込まないかもしれない。例えば、もし前の３ｘ３ウィンドウが静止の(static)バックグラウンド領域に存在し、現在のフレームの３ｘ３ウィンドウが動いているオブジェクトを完全にあるいは部分的にカバーする場合は、同一場所に配置される方法によって前の基準フレームから取り込まれた動きベクトルは、対象の動いているオブジェクトの動き軌道(motion trajectory of moving object of interest)とは無関係である。時間的エラー隠蔽のための前のフレームからのそのような動きベクトルの利用は、質の劣る結果で終わるかもしれない。
【００５０】
別の例は、動き軌道に応じてアンカーマクロブロックを選択することにより、上記の問題を解決する。この例においては、現在のＰ−フレームのアンカー動きベクトル(anchor motion vector)が最初に決定される。基準フレームのアンカーマクロブロックは、そのあと、アンカー動きベクトルに基づいて決定される。
【００５１】
アンカー動きベクトルは、その３つの隣接する動きベクトルのアベイラビリテイ(availability)、その左の隣接するマクロブロック(its left neighboring macroblock)からの動きベクトル、その上側の隣接するマクロブロック(its top neighboring macroblock)からの動きベクトル、およびその右上の隣接するマクロブロック(its top- right neighboring macroblock)からの動きベクトル、に基づいて計算される。もし動きベクトルが、誤りマクロブロックからか、またはイントラ符号化されたマクロブロックからであるのであれば、あるいは、そのサブパーティションのレファレンスインデックスのうちのどれもゼロに等しくない場合は、動きベクトルは、利用可能でないものとしてマークされ、そうでなければ、それは利用可能とラベル表示される。もしこれらの隣接する３つのマクロブロックのうちの１つだけが利用可能な場合に、アンカー動きベクトルは、その隣接する利用可能なマクロブロックとして割り当てられる。そうでなければ、アンカー動きベクトルは、その３つの隣接する動きベクトルの全ての利用可能な動きベクトルの中央値として割り当てられる。
【００５２】
図５Ａおよび５Ｂに関してより詳細に論考されるように、一旦アンカー動きベクトルが決定されれば、最大カバーエリア方法(most-covered-area method)が、基準フレームにおけるアンカーマクロブロックを得るために適用される。
【００５３】
図６に関してより詳細に論考されるように、一旦アンカーマクロブロックが決定されれば、動きベクトルウィンドウは、ブロック２０６７で、基準フレームおよび現在のＰ−フレームに基づいて、選択的に埋められる。例において、動きベクトルウィンドウは３Ｘ３であるが、しかし、他のサイズもまた使用されることができる。
【００５４】
ブロック２０６８に移って、ローカル動き分類(local motion classification)が、ブロック２０６７中で生成された動きベクトルウィンドウ内の、ある動きベクトル(certain motion vectors)を取り除くために行なわれる。図４における上記に論考されたような同じ比較基準(comparison criterion)に従って、これらの動きベクトルが類似しているかどうかを決定するために、動きベクトルウィンドウ内の各利用可能な動きベクトルは、基準フレーム中のアンカーマクロブロックの動きベクトルと比較される。もし動きベクトルが基準フレームにおけるアンカーマクロブロックに類似していない場合は、動きベクトルウィンドウ内の動きベクトルは、利用できないとしてマークされる。従って、動きベクトルは、対象の誤りマクロブロックのための動きベクトルの推定には影響しない。
【００５５】
このフローチャートにおいて説明されるブロックのうちのいずれのものも省略され、順序において並び替えられ、あるいは１つ以上の他のブロックと結合されてもよい、ということに注意すべきである。
【００５６】
図５Ａおよび５Ｂは、図４のブロック２０６６でアンカーマクロブロックを決定するための最大カバーエリア方法を説明する。現在のＰ−フレームにおけるアンカー動きベクトル２２は、基準フレームのエリア２４を示している(points)。エリア２４は、４つのマクロブロック２６、２８、３２、および３４を完全にあるいは多くても部分的にカバーする。各カバーされたマクロブロックは、アンカー動きベクトルポイントが示すエリア２４によるそのカバーされたエリアを表わす値を、割り当てられる。例えば、アンカーマクロブロックは、基準フレーム中のマクロブロックがエリア２４によって非常に多く(most)カバーされるように、選択されている。１つよりも多くのマクロブロックがエリア２４によって非常に多くカバーされる場合において、非常に多くカバーされるこれらのマクロブロックのうちの任意の１つが、アンカーマクロブロックとして選択されることができる。図５Ｂでは、マクロブロック３４が別のアンカーマクロブロックとして選択されている。
【００５７】
図６は、図４のブロック２０６７の動きベクトルウィンドウの構成を説明する。動きベクトルウィンドウ７０は、現在のフレーム中の誤りマクロブロック５２を中心に置いた３Ｘ３動きベクトルウィンドウ５０と、基準フレーム中のアンカーマクロブロック４２を中心に置いた３Ｘ３動きベクトルウィンドウ４０とに基づいて、構成されている。もし動きベクトルが正確に受け取られない場合は、現在および基準のフレームにおける動きベクトルは、利用可能でないとマークされる。図６においては、例えば、現在のフレームのマクロブロック５２、５４、５６、５８および６２は利用可能でない。非キャジュアルデコーディングの一例においては、マクロブロック５４、５６、５８、および６２のいずれも利用可能であることができる。動きベクトルウィンドウ７０の各ブロックを埋めるために、もしそのような動きベクトルが利用可能である場合は、対応する位置での現在のフレームの動きベクトルが使用される。そうでなければ、もしそのような動きベクトルが利用可能である場合は、対応する位置での基準フレームの動きベクトルが使用される。基準フレームの動きベクトルと現在のフレームの動きベクトルが、両方とも、対応する位置で利用可能でないケースにおいては、ブロックは、利用可能でないとしてマークされる。
【００５８】
図７Ａおよび７Ｂは、図４のブロック２０６８中の動作に応じてローカル動き分類を行なうことが、なぜ望ましいかもしれないかを説明する。図７Ａにおいて説明されるように、動き境界(motion boundary)７６は、基準フレーム内の３Ｘ３動きベクトルウィンドウ７２中に存在することができる。その場合においては、アンカーマクロブロックの動きベクトル７４として動き境界の同じ側にある動きベクトルだけが、誤りマクロブロックの動きベクトルを推定するために使用されるものとする。図７Ａにおいて、動きベクトルウィンドウ８２が、上記に論考されたように、図４のブロック２０６７で生成される。ローカル動き分類なしで、動きベクトルウィンドウ８２は、そのとき、誤りマクロブロックの推定動きベクトル(estimate motion vector)８６を生成するために使用される。一例においては、図２のブロック２０４における動作と同様のプロセスが、推定動きベクトルを生成するために適用される。示されるように、推定動きベクトル８６は、動きエッジ(motion edges)に沿って正確ではないかもしれない。図７Ｂにおいて、動きベクトルウィンドウ８２は、図４のブロック２０６８によるローカル動き分類を介して更に処理される。従って、動き境界の反対側に置かれた動きベクトルは、新しい動きベクトルウィンドウ９０においては取り除かれる。この結果、新しいウィンドウ９０に基づいて生成された、推定された動きベクトル(estimated motion vector)９２はより正確である。この比較は、ローカルの隣接するマクロブロックの動きの決定および分類が、動きエッジに沿って間違った動きベクトルを推定することによって引き起こされるオブジェクト不連続(object discontinuities)を減らすことを、説明している。
【００５９】
図８は、誤って受け取られた第１のセクションを備えるマルチメディアフレームを処理する方法の別の例を説明するフローチャートである。方法はブロック８０２で始まり、そこでは、第１の基準フレームに対応する時間的予測データが得られる。次にブロック８０４で、第１の基準フレームが第１のセクションを推定するために信頼できるかどうかが決定される。もし第１の基準フレームが信頼できると決定される場合は、ブロック８０６に移って、誤って受け取られた第１のセクションの推定が、マルチメディアフレームの第１のセクション以外の１つ以上のセクションと第１の基準フレームとに基づいて行われる。これらのブロックの動作は、図１−７における上記の論考に似ている。
【００６０】
図９は、受信マルチメディアデータストリームを復号するように構成されたデコーダの別の例を説明するブロック図を示す。データストリームは、マルチメディアフレームを備えており、それは、誤って受け取られた第１のセクションを更に備える。デコーダは取得するモジュール(obtaining module)９０２、決定するモジュール(determining module)９０４、推定するモジュール(estimating module)９０６、およびプロセッサ９０８を備える。取得するモジュール９０２は、第１の基準フレームに対応する時間的予測データを得るように構成される。決定するモジュール９０４は、第１の基準フレームが第１のセクションを推定するために信頼できるかどうかを決定するように構成される。推定するモジュール９０６は、第１の基準フレームが信頼できると決定される場合に、マルチメディアフレームの第１のセクション以外の１つ以上のセクションと第１の基準フレームとに基づいて誤って受け取られた第１のセクションを推定するように構成される。プロセッサ９０８は、上記に論考されたように、他のユニットのオペレーションを制御する１つ以上のソフトウェアアプリケーションを実行するように構成される。他の例においては、プロセッサ９０８は取り除かれることができる。
【００６１】
当業者は、情報および信号は様々な異なる技術および技法のうちの任意のものを使用して表わされることができることを、理解するだろう。例えば、上記説明全体を通して参照され得るデータ、インストラクション、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場または磁性粒子、光場または光学粒子、またはそれらの任意の組み合わせ、によって表されることが出来る。
【００６２】
当業者は、ここに開示された例に関連して説明された、様々な例示的な、論理ブロック、モジュール、およびアルゴリズムステップは、電子的ハードウェア、コンピュータソフトウェア、あるいは両方の組合せとしてインプリメントされることができることを更に認識するであろう。ハードウェアおよびソフトウェアのこの互換性を明確に説明するために、様々な例示的な、コンポーネント、ブロック、モジュール、回路、およびステップが、一般に、それらの機能の観点から上記に説明されている。そのような機能が、ハードウェアとしてあるいはソフトウェアとしてインプリメントされるかどうかは、特定のアプリケーションと、全体のシステムに課される設計制約に依存する。熟練者は、各特定のアプリケーションに対し、様々な方法で、説明された機能をインプリメントするかもしれないが、そのようなインプリメンテーションの決定は、開示された方法の範囲からの逸脱を生じさせるものと解釈されるべきではない。
【００６３】
ここに開示された例に関連して記述された様々な説明のための論理ブロック、モジュール、およびサーキットは、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）あるいは他のプログラマブルロジックデバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェアコンポーネント、あるいはここに説明された機能を実行するように設計されたそれらの任意の組み合わせ、を用いてインプリメントされるあるいは実行されることができる。汎用プロセッサは、マイクロプロセッサであってもよいが、別の方法では、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、あるいは状態機械であってもよい。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと組み合わせた１つ以上のマイクロプロセッサ、あるいはその他のそのようなコンフィギュレーション、としてインプリメントされることもできる。
【００６４】
ここに開示された例に関連して記述された方法あるいはアルゴリズムのステップは、ハードウェアに直接に、プロセッサによって実行されるソフトウェアモジュールに、あるいは該２つの組合せで直接具現化されることができる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、あるいは当技術分野で知られているその他の形態の記憶媒体の中にあってもよい。記憶媒体は、プロセッサが記憶媒体から情報を読み出し、かつ、記憶媒体へ情報を書き込むことができるように、プロセッサに結合される。あるいは、記憶媒体はプロセッサと一体化されてもよい。プロセッサと記憶媒体は、特定用途向け集積回路（ＡＳＩＣ）中に常駐してもよい。ＡＳＩＣは、無線モデム中に常駐してもよい。あるいは、プロセッサと記憶媒体は無線モデム中のディスクリートコンポーネントとして常駐してもよい。
【００６５】
開示された例の上記の説明は、いずれの当業者にも開示された方法および装置を作る又は使用することを可能にするように提供されている。これらの例への様々な修正は、当業者には容易に明らかであろう、そして、ここに定義された原理は他の例に適用されることができる。
【図面の簡単な説明】
【００６６】
【図１】図１は、受信マルチメディアデータストリーム（示されていない）を復号するように構成されたデコーダの一例を説明するブロック図を示す。
【図２】図２は、Ｐ−フレームの誤りマクロブロックのための時間的エラー隠蔽の方法の一例を説明するフローチャートである。
【図３】図３は、図２のブロック２０４で現在のＰ−フレームの動きベクトルを生成するプロセスの一例を説明するフローチャートである。
【図４】図４は、図２のブロック２０６で現在のＰ−フレームおよび基準フレームに基づいて動きベクトルウィンドウを形成するプロセスの一例を説明するフローチャートである。
【図５Ａ】図５Ａは、図４のブロック２０６６でアンカーマクロブロックを決定するための最大カバーエリア方法を説明する。
【図５Ｂ】図５Ｂは、図４のブロック２０６６でアンカーマクロブロックを決定するための最大カバーエリア方法を説明する。
【図６】図６は、図４のブロック２０６７の動きベクトルウィンドウの構成を説明する。
【図７Ａ】図７Ａは、図４のブロック２０６８でローカル動き分類を行なう利点を説明する。
【図７Ｂ】図７Ｂは、図４のブロック２０６８でローカル動き分類を行なう利点を説明する。
【図８】図８は、誤って受け取られた第１のセクションを備えるマルチメディアフレームを処理する方法の別の例を説明するフローチャートである。
【図９】図９は、受信マルチメディアデータストリームを復号するように構成されたデコーダの別の例を説明するブロック図を示す。
【図１】
2008533845.tif 000014
【図２】
2008533845.tif 000015
【図３】
2008533845.tif 000016
【図４】
2008533845.tif 000017
【図５Ａ】
2008533845.tif 000018
【図５Ｂ】
2008533845.tif 000019
【図６】
2008533845.tif 000020
【図７Ａ】
2008533845.tif 000021
【図７Ｂ】
2008533845.tif 000022
【図８】
2008533845.tif 000023
【図９】
2008533845.tif 000024
【国際調査報告】
2008533845.tif 000025
2008533845.tif 000026