(58)【調査した分野】(Int.Cl.,DB名)
前記エンコーダは、デコーダ上で前記冗長符号化ピクチャに対応する主ピクチャがいつ使用不可能であるか考慮するデコーダエラー隠蔽演算を使用して前記個々のマクロブロックを選択する、請求項1に記載の装置。
前記エンコーダは、前記冗長符号化ピクチャ内で符号化された前記個々のマクロブロックのいずれにも前記SKIPモードの使用を禁じることを保証するように構成される、請求項1に記載の装置。
前記エンコーダは、歪みイメージ内のピクセルのうちの特定の1つと、ソースピクチャ内の対応するピクセルとの間のそれぞれの歪み尺度が第1の閾値を超えるときは、該歪みイメージ内の各ピクセルが歪んでいるとそれぞれ分類し、第2の閾値を超えるそれぞれの数の歪みピクセルを有する前記個々のマクロブロックのいずれかをそれぞれ選択することによって前記個々のマクロブロックを選択する、請求項1に記載の装置。
前記歪みイメージは、前記ソースピクチャに対応するエンコーダ復元ピクチャ、および、前記ソースピクチャの直前の別のソースピクチャに対応する別のエンコーダ復元ピクチャに適用されるデコーダ隠蔽演算を使用して計算される、請求項6に記載の装置。
前記選択することが、デコーダで前記冗長符号化ピクチャに対応する主ピクチャがいつ使用不可能であるか考慮するデコーダエラー隠蔽演算を使用して前記個々のマクロブロックを選択する、請求項11に記載の方法。
前記選択することは、前記冗長符号化ピクチャ内で符号化された前記個々のマクロブロックのいずれにも前記SKIPモードの使用を禁じることを保証するように構成される、請求項11に記載の方法。
前記選択することが、歪みイメージ内のピクセルのうちの特定の1つと、ソースピクチャ内の対応するピクセルとの間のそれぞれの歪み尺度が第1の閾値を超えるときは、該歪みイメージ内の各ピクセルが歪んでいるとそれぞれ分類し、第2の閾値を超えるそれぞれの数の歪みピクセルを有する前記個々のマクロブロックのいずれかをそれぞれ選択することによって前記個々のマクロブロックを選択する、請求項11に記載の方法。
前記歪みイメージを、前記ソースピクチャに対応するエンコーダ復元ピクチャ、および、前記ソースピクチャの直前の別のソースピクチャに対応する別のエンコーダ復元ピクチャに適用されるデコーダ隠蔽演算を使用して計算する、請求項16に記載の方法。
【発明を実施するための形態】
【0016】
本発明は、冗長ビデオ符号化のための方法および装置を対象とする。
【0017】
この説明では、本発明の諸原理を示す。したがって、本明細書には明示的に述べられず、または示されていないが、本発明の諸原理を実施し、またその精神および範囲内に含まれる様々な構成を当業者は考案できることが理解されよう。
【0018】
本明細書に述べられた実施例および条件語はすべて、読者が本発明の諸原理、および技術向上のために本願発明者によって提供された諸概念を理解する助けとする教育目的のものであり、具体的に述べられたこうした実施例および条件に限定されないものと解釈すべきである。
【0019】
さらに、本発明の諸原理、態様および実施形態、ならびにその具体的な実施例について本明細書に述べるすべてのことは、その構造と機能の両面の等価物を包含するものである。さらに、こうした等価物は、現在知られている等価物と、将来開発されると等価物、すなわち、構造に関係なく同じ機能を実施する、開発される任意の要素との両方を含むものである。
【0020】
したがって、たとえば、本明細書に提示されたブロック図は、本発明の諸原理を実施する例示的な回路の概念図を表すことが当業者には理解されよう。同様に、任意のフローチャート、流れ図、状態遷移図、擬似コードなどは、コンピュータ読取り可能媒体内で実質的に表現され、したがって、コンピュータまたはプロセッサが明示的に示されているかどうかに拘らず、こうしたコンピュータまたはプロセッサによって実行され得る様々なプロセスを表すことが理解されよう。
【0021】
図中に示された様々な要素の諸機能は、専用ハードウェア、ならびに適切なソフトウェアに関連してソフトウェアを実行可能であるハードウェアを使用することによって提供されてもよい。プロセッサによって提供される場合、諸機能は、単一の専用プロセッサによって、単一の共有プロセッサによって、あるいは一部が共有され得る複数の個々のプロセッサによって提供されてもよい。さらに、用語「プロセッサ」または「コントローラ」の明示的な使用は、ソフトウェアを実行できるハードウェアだけに言及するものと解釈すべきでなく、それだけに限らないが、デジタル信号プロセッサ(「DSP:digital signal processor」)ハードウェア、ソフトウェアを格納する読取り専用メモリ(「ROM:read-only memory」)、ランダムアクセスメモリ(「RAM:random access memory」)および不揮発性記憶装置を暗黙的に含み得る。
【0022】
他のハードウェア、従来型および/またはカスタムソフトウェアも含まれ得る。同様に、図中で示されたどんなスイッチも概念的なものにすぎない。その機能は、プログラム論理の演算によって、専用論理によって、プログラム制御と専用論理の対話によって、さらには手動で実施することができ、文脈からより具体的に理解されるように、特定の技術が、実施者によって選択可能である。
【0023】
本発明の特許請求の範囲中では、指定された機能を実施する手段として表現されたどの要素も、たとえば、a)その機能を実施する回路素子の組合せ、あるいはb)機能を実施するためにソフトウェアを実行するのに適した回路と組み合わされた、したがってファームウェア、マイクロコードなどを含めた任意の形のソフトウェアを含めて、その機能を実施するどんなやり方をも包含するものである。こうした特許請求範囲によって定義された本発明は、述べられた様々な手段によって提供される機能性が、特許請求の範囲によって求められるやり方で組み合わされ、まとめられるという事実にある。したがって、それらの機能性を提供することができるどんなやり方も、本明細書に示された機能性に等価であると見なされる。
【0024】
本明細書中の「本発明の諸原理の一実施形態(one embodiment、an embodiment)」への言及は、その実施形態に関連して述べられた特定の特徴、構造、特性などが本発明の諸原理の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通して様々な箇所で語句「一実施形態」が現れることは、必ずしもすべてが同じ実施形態に言及するものではない。
【0025】
図1に移ると、本発明の諸原理が適用され得る例示的なビデオエンコーダが、全体として参照番号100で示されている。
【0026】
ビデオエンコーダ100への入力は、コンバイナ110の非反転入力と信号通信で接続される。コンバイナ110の出力は、変換/量子化器120と信号通信で接続される。変換/量子化器120の出力は、エントロピー符号化器140と信号通信で接続される。エントロピー符号化器140の出力は、エンコーダ100の出力として使用可能である。
【0027】
変換/量子化器120の出力はさらに、逆変換/量子化器150と信号通信で接続される。逆変換/量子化器150の出力は、デブロックフィルタ160の入力と信号通信で接続される。デブロックフィルタ160の出力は、参照ピクチャストア170と信号通信で接続される。参照ピクチャストア170の第1の出力は、動き推定器180の第1の入力と信号通信で接続される。エンコーダ100への入力はさらに、動き推定器180の第2の入力と信号通信でさらに接続される。動き推定器180の出力は、動き補償器190の第1の入力と信号通信で接続される。参照ピクチャストア170の第2の出力は、動き補償器190の第2の入力と信号通信で接続される。動き補償器190の出力は、コンバイナ110の反転入力と信号通信で接続される。
【0028】
図2に移ると、本発明の諸原理が適用され得る例示的なビデオデコーダが、全体として参照符号200で示されている。
【0029】
ビデオデコーダ200は、ビデオシーケンスを受信するためのエントロピー復号化器210を含む。エントロピー復号化器210の第1の出力は、逆量子化/変換器220の入力と信号通信で接続される。逆量子化/変換器220の出力は、コンバイナ240の第1の非反転入力と信号通信で接続される。
【0030】
コンバイナ240の出力は、デブロックフィルタ290の入力と信号通信で接続される。デブロックフィルタ290の出力は、参照ピクチャストア250の入力と信号通信で接続される。参照ピクチャストア250の出力は、動き補償器260の第1の入力と信号通信で接続される。動き補償器260の出力は、コンバイナ240の第2の非反転入力と信号通信で接続される。エントロピー復号化器210の第2の出力は、動き補償器260の第2の入力と信号通信で接続される。デブロックフィルタ290の出力はビデオデコーダ200の出力として使用可能である。
【0031】
本発明の諸原理は、冗長ビデオ符号化のための方法および装置を対象とする。冗長スライスがエンコーダで符号化されるとき、主符号化ピクチャについてデコーダエラー隠蔽(decoder error concealment)によって回復することができる情報が考慮される。この情報は、エンコーダによって、冗長符号化ピクチャ内で符号化するのに必要な内容を有効に減少させるために使用され、したがって、性能を犠牲にせずに、ビットレートが潜在的に節約されるようになる。対応するシグナリング方法は、冗長スライスを使用して元のフレームを復元するとき、エンコーダが、復号化領域の異なる扱いについてデコーダに効率的に通知することができるというように説明される。
【0032】
本明細書では主にMPEG−4 AVC規格について述べるが、本明細書に示された本発明の諸原理についての教示を考慮すると、本発明の諸原理は、MPEG−4 AVC規格だけに限定されず、したがって、本発明の諸原理の範囲を維持しながら、他のビデオ符号化規格および勧告に関して実施されてもよいことを理解されたい。
【0033】
一実施形態では、エンコーダは、所与のフレーム内の個々のブロックを冗長スライスの符号化領域内に含めるべきかどうか選択することによって、所与のフレームの冗長スライスを符号化する。エンコーダは、デコーダのエラー隠蔽アルゴリズムを有するモジュールを含んでもよく、このエラー隠蔽アルゴリズムは、所与のフレームの主ピクチャが失われている場合にデコーダによって使用される。エンコーダは、モジュールを使用して、所与のフレームの個々のどのブロックを冗長スライスの符号化領域内に含めるか選択してもよい。SKIPモードを使用して、ブロックが冗長スライス内で符号化されないことを示してもよく、エンコーダは、冗長符号化スライスの符号化領域に含めるブロックにはSKIPモードを使用しないことを保証するように修正されてもよい。絶対差歪み尺度(an absolute-difference distortion measure)を使用して、ブロックを符号化領域内に含めるかどうか判断してもよい。絶対差歪み尺度は、(1)エラー隠蔽アルゴリズムの結果と、(2)主ピクチャが失われていない場合のデコーダからの予想結果との差に基づいてもよい。絶対差歪み尺度の値を閾値と比較して、ブロックを選択すべきかどうか判断してもよく、結果が閾値を超える場合は、ブロックは、冗長符号化ピクチャ(たとえば冗長スライス)内で符号化されると選択されてもよい。ブロックは、16×16のサイズを有してもよい。
【0034】
一実施形態では、デコーダは、デコーダで主ピクチャが使用不可能であり、冗長符号化ピクチャが使用可能である場合、冗長スライスを復号化するように構成される。デコーダは、以前に符号化された主ピクチャに基づいてエラー隠蔽ピクチャ(隠蔽ピクチャ)を形成し、冗長スライスから冗長復号化ピクチャを形成し、この2つのピクチャを組み合わせる。ブロックにSKIPモードを使用して、隠蔽ピクチャを使用すべきであることを示してもよく、冗長スライスには、SKIPモードが使用されない。エラー隠蔽方法は、フレームコピーであっても、動きコピーであってもよい。ブロックは、16×16のサイズを有してもよい。
【0035】
上記に述べられたように、冗長スライスは、MPEG−4 AVC規格に取り入れられた新しいエラーロバストネスツールである。MPEG−4 AVC規格では、主符号化ピクチャ(PCP:primary coded picture)は、復号化プロセスへの規範的影響を有する符号化ピクチャ表現である。それに反して、冗長符号化ピクチャ(RCP:redundant coded picture)は、復号化プロセスへの規範的影響を有さない、ピクチャまたはピクチャの一部の符号化表現を含む。冗長符号化ピクチャは、冗長スライスを用いて符号化してもよい。したがって、冗長スライスを符号化するとき、エンコーダは、異なる符号化領域、量子化ステップサイズなど、主符号化ピクチャの符号化パラメータとは全く異なる符号化パラメータを使用する柔軟性を有する。デコーダで、冗長スライスは、主スライスを正確に復元できない(たとえば主スライスが欠落し、または破損している)場合にだけ復号化され、そうでない場合は、冗長スライスは廃棄される。
【0036】
冗長スライスの使用に存在する一問題は、配信ビデオのエラーロバストネスを向上させるために、特性に従ってビットをどのようにして冗長スライスに効率的に費やすかということである。一目標は、末端視聴者に提示された配信ビデオの歪みを減少させることであってもよく、この目標は、エンドツーエンドシステムの観点から取り組まれてもよい。
【0038】
をそれぞれ、ビデオシーケンス内のn番の元フレーム、エンコーダ復元フレーム、およびデコーダ復元フレームとする。ビデオ伝送システムでは、末端視聴者によって知覚されるフレームnの総歪みD
nは、ソースによって引き起こされる歪みD
s,nと、チャネルによって引き起こされる歪みD
c,nとを含み、それは、以下のように定義される。
【0040】
ただし、E
a{・}は、ピクセル演算間の平均を示し、E{・}は、期待値と、ピクセル演算間平均の連結を示す。その定義によれば、冗長スライスは、主スライスの復号化に影響を及ぼさず、したがって、冗長スライスは、ソースによって引き起こされる歪みD
s,nに影響を及ぼし得ない。したがって、チャネルによって引き起こされる歪みを減少させるために、冗長スライス符号化の使用に焦点が当てられる。
【0041】
ビデオデコーダで、符号化ビデオピクチャが欠落しまたは破損していると検出されるとき、情報回復のために何らかのエラー隠蔽演算(error concealment operation)E.C.{・}を呼び出すことが一般的である。一般に、E.C.{・}は、損傷領域を復元するために、空間的または時間的近隣からの相関性を使用する。ビデオシーケンスが、MPEG−4 AVCエンコーダによって、ベースラインプロファイルを用いてIPPP…に符号化され、Pタイプピクチャについて冗長スライスが符号化される空間ケースについて考慮されたい。デコーダ上でフレームnが欠落しており、デコーダが、使用可能な直前のフレームn−1に基づいてフレームnを隠し、したがって、
【0046】
を最小にすると、D
c,nを、したがってD
nも同様に有効に減少させることができる。
【0047】
エラー隠蔽はしばしば、デコーダで、失われた情報を回復する際に重要な役割を果たす。一般に、エラー隠蔽は、小さいまたは遅い動きを伴う領域を隠すことができるが、それは、活発で無秩序な動きを伴う領域にはアーティファクトを生じさせることがある。しかし、シーン変更などの一部の空間ケースを除いては、失われたフレームのエラー隠蔽によって、かなりの情報量を回復することができる。一方、フレーム繰返し、および動きコピーアルゴリズムなど、適切に定義され、広く使用されている、いくつかのエラー隠蔽アルゴリズムが存在する。
【0048】
フレームnの損失によって引き起こされたD
c,nを除去するために、最も直接的には、その冗長符号化ピクチャは、フレームの複製を含むべきである。しかし、エンドツーエンドシステムの観点からは、デコーダは、エラー隠蔽によって失われた情報の一部を回復すると予想される。したがって、失われたフレームをデコーダがどのように隠するかエンコーダが知っている場合、回復可能な情報は、エンコーダで、歪み減少への影響を及ぼさずに冗長スライスから除外することができる。デコーダでも、情報の欠落部分は、エラー隠蔽によって得ることができる。
【0049】
エンコーダが、失われたフレームを隠するためにデコーダが実施するエラー隠蔽演算を実施することができると仮定する。フレームnの残余歪みフレーム
【0055】
は、信号フレームnが失われ、エラー隠蔽演算によって隠されるときに引き起こされる歪みイメージを示している。
【0057】
が、冗長スライス内に符号化され、デコーダで使用可能である場合、上記数式に従って、フレームnは、その主スライスが失われる場合でも完全に回復できることに留意されたい。エンコーダがフレームnの符号化およびエラー隠蔽を実施した後に、エンコーダによって、
【0059】
が取得可能であることにも留意されたい。
【0061】
演算は、フレームnについての情報の多くを再生することができるので、
【0065】
より少ない情報を含み、したがって、これらのフレームのそれぞれが符号化される場合、最も少ないビットが費やされると予想することができる。
【0066】
しかし、イメージ圧縮の予測符号化の性質により、残余フレームを直接に符号化することは通常、時間的相関性を使用できないという点で、元のフレームを符号化するよりも遥かに効率が小さい。D
c,nを減少させることを目標としながらも、この問題に対処するには、以下の手法が取られる。フレーム
【0070】
内のどの領域がかなりの歪みを含むかチェックする。
【0072】
内のこうしたすべての領域を識別した後、エンコーダは、元のフレームf
n内の対応する領域を選択し、符号化するために冗長スライスにそれをコピーする。エンコーダは、元のフレームから直接に領域を符号化するので、予測符号化からの主要な符号化利得が保存される。一方、元のフレームからの選択された領域だけが冗長スライス内で符号化されるので、ビットレートのコスト低下を達成することができる。
【0073】
歪み領域を選択する手順は、ブロック単位に実施される。PAD(pixel absolute difference:ピクセル絶対差)が歪み尺度であると仮定する。もちろん、ピクセル絶対差の使用は例示するためのものにすぎず、したがって、本発明の諸原理の範囲を維持しながら、本発明の諸原理の教示に従って、他の歪み尺度も使用され得ることを理解されたい。各ブロックが、L×Lピクセルのサイズであると仮定する。Th
1をピクセル絶対差の閾値と定義し、
【0075】
内のピクセルは、そのピクセル絶対差値がTh
1を超えるときはいつでも歪んでいると見なされる。Th
2をピクセル数の閾値と定義し、ブロックは、ブロック内に、歪んでいると見なされるピクセルがTh
2ピクセルよりも多く存在するときはいつでも、歪んでいると見なされる。選択手順を示す一実施形態が、
図1に関して示され述べられている。閾値Th
1およびTh
2は、元のフレームのパーセンテージ、すなわち冗長スライス内に符号化される冗長量を直接制御することに留意されたい。閾値を低下させることは、より多くの領域が冗長スライスに入ることを含み、その逆も同様である。元のフレームからのより多くの領域を冗長スライスに含めることによって、復号化フレームのより多くの領域を正確に復元することができ、したがって、それによって、より多くのビットレートの犠牲を伴うが、フレームの歪み、および付随するエラー伝播が減少する。
【0076】
上記のピクセル絶対差解析では、複数の成分(たとえばRGBまたはYUV)を合計してもよい。あるいは、たとえば輝度など、ピクセルの単一の成分に対して、絶対差歪み尺度が使用されてもよく、単一成分のピクセル絶対差値が、閾値と比較されてもよい。さらに、他の実装形態では、ピクセル絶対差解析は、ブロック内の各ピクセルの絶対差を合計し、その和を閾値と比較して、全ブロックに対して実施されてもよい。
【0077】
上記手法の一利点は、その単純さである。歪み領域選択は、ブロック単位に行われ、したがって、エンコーダ内の既存のデータ構造を使用することができる。上記機能性の実現のため、一実施形態では、エラー隠蔽モジュール、および非常に限られた比較−コピー演算だけをエンコーダに加える必要がある。多くの単純な既製のエラー隠蔽アルゴリズムがあるので、エンコーダに加えられる追加の複雑さは制限される。冗長スライス内で符号化すべき領域が決定されると、エンコーダは、スライスを符号化するのに適したパラメータを選択する柔軟性を有する。より粗い量子化ステップサイズで符号化することが選ばれる。この手法では、冗長スライスによって表された元のフレームは、主スライスより大きいソース歪みを有するが、それはまた、符号化するのにより少ない数のビットを費やす。冗長スライスなしの主スライスが失われるときに引き起こされる歪みと比べて、ソース歪みは一般に、冗長スライスを復号化することによって遥かに小さくなり、それほど顕著ではなくなる。より粗い量子化ステップサイズを使用することの別の利点は、冗長スライスは一般に、通常の符号化ルーチンによって、小さい変更だけを伴って符号化することができ、それについて、下記に論じる。冗長スライスを符号化するための他の符号化方法を使用することも可能である。
【0078】
デコーダで、フレームは、その主スライスが欠落しているが、その冗長スライスは使用可能である場合、以下のように復元することができる。デコーダは、エラー隠蔽による隠蔽フレーム、および冗長スライス復号化による冗長符号化ピクチャを取得する。次いで、デコーダは、2つのフレームを共に併合して、復元フレームを形成する。2つのフレームを併合する際、ブロック領域が冗長スライス内で符号化されていると識別される場合、ブロック領域は、冗長符号化ピクチャ内の対応する位置からコピーされる。そうでない場合は、ブロック領域は、隠蔽フレーム内の対応する位置からコピーされる。
【0079】
完全MB(マクロブロック)である16×16ブロックサイズは、閾値を適用し、冗長符号化ピクチャ内でどの領域を符号化すべきか決定するためのユニットサイズとして使用することができる。他のより小さいブロックサイズを使用することも、より大きいブロックサイズを使用することもできる。
【0080】
上記方法では、エンコーダは、元のフレームから、冗長スライス内に符号化すべき一部のマクロブロックを選択し、デコーダは、これらのマクロブロックを復号化し、それを隠蔽フレームと併合して、元のフレームを復元する。有利には、本発明の諸原理によって、冗長スライス内で選択されないマクロブロックを、最小のオーバーヘッドで表すことが可能となる。さらに、有利には、本発明の諸原理によって、デコーダは、冗長スライスを復号化するときにマクロブロックが選択されているかどうか通知を受けることが可能となる。オーバーヘッドを小さく保ち、エンコーダ/デコーダ内のほとんどの既存関数を再使用することを対象とする一実施形態では、SKIPモードを、冗長スライスを符号化するときにエンコーダとデコーダの間のシグナリング機構の働きをするように再定義する。
【0081】
具体的には、元のフレームから選択されないマクロブロックについて、冗長スライスがエンコーダで符号化されるとき、エンコーダは、それを強制的にSKIPモードで符号化させる。一方、元のフレームからコピーされるマクロブロックについては、エンコーダは、それが符号化されるとき、SKIPモードの使用をディセーブルする。デコーダでは、冗長スライスが復号化されるとき、マクロブロックがSKIPモードで符号化されるかどうか各要素が記録している、2次元配列のskip_mode_mapが作成される。冗長スライス全体が復号化されると、skip_mode_mapが満たされる。次の併合ステップで、復元されたフレーム内の各マクロブロックについて、デコーダは、skip_mode_mapをチェックして、マクロブロックがSKIPモードで符号化されている場合は隠蔽フレームから、そうでない場合は冗長符号化ピクチャから、どのフレームをコピーするか決定する。
【0082】
この手法では、冗長スライスの符号化のために、既存の符号化および復号化ルーチンを再使用することができ、それによって、シグナリング機構として新しいシンタックスを定義する複雑さが回避される。さらに、この手法の場合、SKIPモードでは符号化するのに非常に少ないビットだけを必要とするので、冗長スライス内に選択されていないマクロブロックは、効率的に符号化することができる。一方、選択されたそれらのマクロブロックのSKIPモードをディセーブルすると、制限された符号化効率の損失がもたらされる。これは、エラー隠蔽が有効な場合、過度の歪みを有するマクロブロックもまた、通常の符号化においてSKIPモードで符号化される可能性が低いという事実に一部起因している。エンコーダは、冗長符号化ピクチャのマクロブロックを符号化するときにSKIPモードが選択されないことを保証するように調整される必要がある。
【0083】
分かり易くするために、上記議論の多くは、単一の実装形態に焦点を当てていることを理解されたい。しかし、本明細書に示された本発明の諸原理の教示を考慮すると、たとえば、本発明の諸原理の範囲を維持しながら上記実施形態および実装形態の1つまたは複数の詳細を変更することによって、他の実装形態も可能であることをさらに理解されたい。たとえば、冗長スライス符号化の方法は、P参照ピクチャの場合で述べられているが、Iフレーム、Bフレームなど、他のタイプのフレームに直接的に適用することができる。冗長スライス符号化方法は、たとえば瞬間復号化リフレッシュ(IDR:instantaneous decoding refresh)フレームに適用することもできる。
【0084】
さらに、所与のフレームの一部を2回目に符号化する態様は一般に、他のビデオ圧縮規格および通信システムに適用することができ、MPEG−4 AVC規格だけに限定されない。たとえば、他の通信システムが、所与のフレームの第1の符号化に損失が生じるときにデコーダで複製することができない所与のフレームの一部のための第2の符号化を提供してもよい。
【0085】
一実施形態は、たとえば、上述のSKIPモードの使用や、所与のフレーム内のどの領域を2回目に符号化するか示し、かつ/またはそれらの領域をどのように符号化するか示すための他の何らかの機構など、シグナリング機構を含んでもよい。シグナリング機構は、たとえばMPEG−4 AVC規格など、規格の既存の要素(たとえばSKIPモード)を使用してもよく、または新しいシンタックスを定義してもよい。シグナリング機構が既存の要素を使用するか、それとも新しいシンタックスを定義するかに拘らず、たとえばエンコーダからデコーダに送信される、結果として生じるビットストリームは、所与のフレーム内のどの領域が2回目に符号化されるか示し、かつ/またはそれらの領域がどのように符号化されるか示す信号フォーマットに従って形成されてもよい。
【0086】
本明細書に示された本発明の諸原理の教示に鑑みて、これら他の変形形態および実装形態、本発明の諸原理のシグナリング方法、ならびに本発明の諸原理が適用され得る他の規格/勧告および通信システムが、当技術および関連技術分野の当業者によって、本発明の諸原理の範囲を維持しながら容易に決定される。
【0087】
図3に移ると、冗長符号化フレーム内に含めるブロックを選択するための例示な方法が、全体として参照符号300で示されている。
【0088】
方法300は、機能ブロック310に制御を渡す、開始ブロック305を含む。機能ブロック310は、フレームf
nおよび
【0090】
を入力し、ループ端ブロック315に制御を渡す。ループ端ブロック315は、フレーム
【0092】
内の各L×Lブロックについてループを開始し、機能ブロック320に制御を渡す。機能ブロック320は、num_pixel cntを0に等しく設定し、ループ端ブロック325に制御を渡す。ループ端ブロック325は、ブロック内の各ピクセル(i,j≦L)についてループを開始し、判断ブロック330に制御を渡す。判断ブロック330は、
【0094】
かどうか判断する。そうである場合は、制御は、ループ端ブロック335に渡される。そうでない場合は、制御は、機能ブロック355に渡される。
【0095】
ループ端ブロック335は、ブロック内の各ピクセルのループを終了し、判断ブロック340に制御を渡す。判断ブロック340は、num_pixel_cnt>Th
2かどうか判断する。そうである場合は、制御は、機能ブロック345に渡される。そうでない場合は、制御は、機能ブロック350に渡される。
【0096】
機能ブロック345は、冗長符号化ピクチャ(RCP:redundant coded picture)へとコピーする、ブロックf
n内の対応するブロックを選択し、ループ端ブロック350に制御を渡す。ループ端ブロック350は、ブロック内の各ピクセルのループを終了し、終了ブロック399に制御を渡す。
【0097】
機能ブロック355は、num_pixel_cntを1だけインクリメントし、ループ端ブロック335に制御を渡す。
【0098】
図4に移ると、冗長スライスを有するフレームを符号化するための例示的な方法が、全体として参照数字400で示されている。
【0099】
方法400は、機能ブロック410に制御を渡す、開始ブロック405を含む。機能ブロック410は、ビデオフレームn(非IDR、参照フレーム)を入力し、機能ブロック415に制御を渡す。機能ブロック415は、主スライスを符号化し、機能ブロック420に制御を渡す。機能ブロック420は、フレームnのエラー隠蔽を実施し、機能ブロック425に制御を渡す。機能ブロック425は、歪み領域選択を実施して、冗長スライスの内容を形成し、ループ端ブロック430に制御を渡す。ループ端ブロック430は、冗長スライス内の各マクロブロックのループを開始し、判断ブロック440に制御を渡す。判断ブロック440は、冗長スライス内にコピーするためにこのマクロブロックが選択されているかどうか判断する。そうである場合は、制御は、機能ブロック445に渡される。そうでない場合は、制御は、機能ブロック460に渡される。
【0100】
機能ブロック445は、SKIPモードだけをディセーブルし、機能ブロック450に制御を渡す。機能ブロック450は、マクロブロックの通常の符号化を実施し、ループ端ブロック455に制御を渡す。ループ端ブロック455は、冗長スライス内の各マクロブロックのループを終了し、終了ブロック499に制御を渡す。
【0101】
機能ブロック460は、SKIPモード以外のすべてのマクロブロック符号化モードをディセーブルし、機能ブロック450に制御を渡す。
【0102】
図5に移ると、冗長スライスを含むフレームを復号化するための例示的な方法が、全体として参照符号500で示されている。
【0103】
方法500は、機能ブロック510に制御を渡す開始ブロック505を含む。機能ブロック510は、フレームnのスライスを入力し、判断ブロック515に制御を渡す。判断ブロック515は、主スライスが存在するかどうか判断する。そうである場合は、制御は、機能ブロック520に渡される。そうでない場合は、制御は、判断ブロック530に渡される。
【0104】
機能ブロック520は、主スライスを復号化し、機能ブロック525に制御を渡す。機能ブロック525は、冗長スライスを廃棄し、終了ブロック599に制御を渡す。終了ブロック599は、フレームの復号化を終了する。
【0105】
判断ブロック530は、冗長スライスが存在するかどうか判断する。そうである場合は、制御は、機能ブロック535に渡される。そうでない場合は、制御は、機能ブロック575に渡される。
【0106】
機能ブロック535は、隠蔽フレームを取得し、機能ブロック540に制御を渡す。機能ブロック540は、skip_mode_map構造を初期化し、機能ブロック545に制御を渡す。機能ブロック545は、冗長スライスを復号化し、skip_mode_map構造を満たし、ループ端ブロック550に制御を渡す。ループ端ブロック550は、復元されたフレーム内の各マクロブロックについてループを開始し、判断ブロック555に制御を渡す。判断ブロック555は、skip_mode_mapに従って、マクロブロックがSKIPモードであるかどうか判断する。そうである場合は、制御は、機能ブロック560に渡される。そうでない場合は、制御は、機能ブロック570に渡される。
【0107】
機能ブロック560は、隠蔽フレームからマクロブロックをコピーし、ループ端ブロック565に制御を渡す。ループ端ブロック565は、復元されたフレーム内の各マクロブロックのループを終了し、終了ブロック599に制御を渡す。終了ブロック599は、フレームの復号化を終了する。
【0108】
機能ブロック575は、フレームを隠し、終了ブロック599に制御を渡す。
【0109】
機能ブロック570は、復号化された冗長スライスからマクロブロックをコピーし、ループ端ブロック565に制御を渡す。
【0110】
次に、その一部については上記に言及してある本発明の多くの付随する利点/特徴のいくつかについて述べる。たとえば、ある利点/特徴は、冗長符号化ピクチャ内に含めるソースピクチャ内の個々のブロックを選択することによって、ソースピクチャに対応する冗長符号化ピクチャを符号化するためのエンコーダを含む装置である。別の利点/特徴は、上記エンコーダを含む装置であって、エンコーダは、冗長符号化ピクチャに対応する主ピクチャがデコーダでいつ使用不可能であるか考慮する、デコーダエラー隠蔽演算(a decoder error concealment operation)を使用して個々のブロックを選択する。しかし、別の利点/特徴は、上記エンコーダを含む装置であって、エンコーダは、SKIPモードを使用して、個々のブロックのうちの特定の1つが冗長符号化ピクチャ内で符号化されないことを示す。さらに別の利点/特徴は、上記エンコーダを含む装置であって、エンコーダは、冗長符号化ピクチャ内で符号化された個々のブロックのうちのいずれについてもSKIPモードの使用が禁止されることを保証するように構成される。さらに、別の利点/特徴は、上記エンコーダを含む装置であって、エンコーダは、歪み尺度(a distortion measure)に基づいて個々のブロックを選択する。さらに、別の利点/特徴は、上記歪み尺度に基づいて個々のブロックを選択するエンコーダを含む装置であって、歪み尺度は、ピクセル絶対差(pixel absolute difference)を使用して計算される。さらに、別の利点/特徴は、上記エンコーダを含む装置であって、エンコーダは、歪みイメージ内のピクセルのうちの特定の1つと、ソースイメージ内の対応するピクセルとの間のそれぞれの歪み尺度が第1の閾値を超えるときは、歪みイメージ内の各ピクセルを歪んでいるとそれぞれ分類し、第2の閾値を超えるそれぞれの数の歪みピクセルを有する個々のブロックのいずれかをそれぞれ選択することによって、個々のブロックを選択する。さらに、別の利点/特徴は、上記ピクセル分類および第1の閾値を使用して個々のブロックを選択するエンコーダを含む装置であって、歪みイメージは、エンコーダによって復元されたピクチャと、デコーダのエラー隠蔽演算を使用して形成された、デコーダによって復元されたイメージとの差を表す。さらに、別の利点/特徴は、上記ピクセル分類および第1の閾値を使用して個々のブロックを選択するエンコーダを含む装置であって、歪みイメージは、ソースピクチャに対応するエンコーダ復元ピクチャ、およびソースイメージの直前の別のソースピクチャに対応する別のエンコーダ復元ピクチャに適用されるデコーダの隠蔽演算を使用して計算される。さらに、別の利点/特徴は、上記ピクセル分類および第1の閾値を使用して個々のブロックを選択するエンコーダを含む装置であって、第2の閾値を超えるそれぞれの数の歪みピクセルを有する個々のブロックのいずれもが歪んでいると分類される。また、別の利点/特徴は、上記エンコーダを有する装置であって、個々のブロックはそれぞれ、16×16ブロックサイズを有する。
【0111】
本開示では、1つまたは複数の実装形態の詳細について述べる。しかし、本開示から、他の特徴が明らかになろう。本開示の様々な態様、実装形態および特徴は、上記において1つのやり方だけが使用されている場合でも、様々なやり方のうちの1つまたは複数で実施されてもよい。たとえば、様々な態様、実装形態および特徴は、方法、装置、方法を実施するための装置、プログラムまたは他の1組の命令、プログラムまたは他の1組の命令を含む装置、およびコンピュータ読取り可能媒体のうちの1つまたは複数を使用して実施されてもよい。コンピュータ読取り可能媒体は、たとえば命令、ソフトウェア、イメージおよび他のデータを含んでもよい。
【0112】
上記に示唆されるように、実装形態は、1つまたは複数のプロセスを実施するように構成された1つまたは複数の装置を含んでもよい。装置は、たとえば、個別または集積ハードウェア、ファームウェアおよびソフトウェアを含んでもよい。こうした装置は、たとえばプロセッサを含んでもよく、このプロセッサは、たとえばマイクロプロセッサ、集積回路、またはプログラマブル論理装置を含めて、処理装置全般を指す。したがって、一実装形態は、上記アルゴリズムのうちの1つまたは複数を実装するためのソフトウェアを実行するエンコーダおよびデコーダを含む。
【0113】
装置は、1つまたは複数のプロセスを実施するための命令を有する1つまたは複数のコンピュータ読取り可能媒体を含んでもよい。コンピュータ読取り可能媒体は、たとえばハードディスク、コンパクトディスク、ランダムアクセスメモリ(「RAM」)、または読取り専用メモリ(「ROM」)などの記憶装置を含んでもよい。コンピュータ読取り可能媒体は、たとえば、フォーマット済み電磁波符号化または送信命令を含んでいてもよい。命令は、たとえばハードウェア、ファームウェア、ソフトウェア、あるいは電磁波の形であってもよい。命令は、たとえばオペレーティングシステム、別個のアプリケーション、あるいはその2つの組合せにおいて見られ得る。したがって、プロセッサは、たとえば、プロセスを実施するように構成された装置と、プロセスを実施するための命令を有するコンピュータ読取り可能媒体を含む装置との両方として特徴付けられ得る。
【0114】
さらに、様々な修正を加えてもよいことが理解されよう。たとえば、それぞれ異なる実装形態の要素が組み合わされ、補足され、修正されまたは取り除かれて、他の実装形態がもたらされ得る。したがって、他の実装形態も、本発明の諸原理の範囲内である。
【0115】
本発明のこれらおよび他の特徴および利点は、当業者によって、本明細書の教示に基づいて容易に確認され得る。本発明の教示は、様々な形のハードウェア、ソフトウェア、ファームウェア、特別目的プロセッサ、またはその組合せで実装されてもよいことを理解されたい。
【0116】
最も好ましくは、本発明の教示は、ハードウェアとソフトウェアの組合せとして実装される。さらに、ソフトウェアは、プログラム記憶装置上で有形に実施されたアプリケーションプログラムとして実装されてもよい。アプリケーションプログラムは、任意の適切なアーキテクチュアを含むマシンにアップロードされ、それによって実行されてもよい。好ましくは、マシンは、1つまたは複数の中央処理装置(「CPU:central processing unit」)、ランダムアクセスメモリ(「RAM」)および入出力(「I/O:input/output」)インターフェースなど、ハードウェアを有するコンピュータプラットフォームで実装される。コンピュータプラットフォームは、オペレーティングシステムおよびマイクロ命令コードをも含んでもよい。本明細書に述べられた様々なプロセスおよび関数は、マイクロ命令コードの一部、またはアプリケーションプログラムの一部、あるいはCPUによって実行され得る、その任意の組合せであってもよい。さらに、他の様々な周辺ユニットが、追加のデータ記憶ユニットおよび印刷ユニットなどのコンピュータプラットフォームに接続されてもよい。
【0117】
添付の図面に示された、構成要素をなすシステムコンポーネントおよび方法の一部は好ましくはソフトウェアで実装されるので、システムコンポーネント間、またはプロセス機能ブロック間の実際の接続は、本発明がプログラムされるやり方に応じて異なり得る。本明細書の教示に鑑みて、当業者は、本発明のこれらおよび類似の実装形態または構成を企図することができる。
【0118】
例示的な諸実施形態について添付の図面を参照して述べたが、本発明は、それらの厳密な実施形態に限定されず、当業者によって、本発明の範囲または精神から逸脱せずに、様々な変更および修正が本発明に加えられ得ることを理解されたい。こうした変更および修正はすべて、添付の特許請求の範囲に記載された本発明の範囲内に含まれるものである。