説明

ビデオ誤り隠蔽法

【課題】伝送誤りの結果として失われたビデオ情報を再構築する。
【解決手段】伝送誤りの結果として失われたビデオ情報を再構築するためのシステムおよび方法は四つの側面がある:(1)ビットレートおよび/またはパケットレートを変える、(2)冗長情報をビデオビットストリームに挿入する、(3)ビデオの、ある領域の周期的な自動リフレッシュを提供する、(4)符号化された諸マクロブロックを送信のためにいくつかの多岐グループにインターリーブすることにより紛失パケットの影響を空間的に拡散させる。すると、画像再構築はこれら三つの側面を活用して伝送損失が存在するときに向上された結果を提供しうる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般にはビデオ通信に、より具体的にはビデオビットストリーム中の誤りを検出して隠蔽する方法に関する。本発明は、ビデオ会議の背景において記載され、特にそれへの応用を有するが、ここに開示される概念はいかなるデジタルエンコードされたビデオストリームにも一般に適用可能である。
【背景技術】
【0002】
ビデオ画像のデジタル化はますます重要になっている。そのグローバルな通信(たとえばビデオ会議)における使用に加えて、デジタルビデオ記録のためのビデオ画像のデジタル化もますます一般的になっている。これらの用途のそれぞれにおいて、ビデオ情報は電話線、ISDN、DSLまたは無線周波のような通信リンクを介して伝送され、あるいはDVDおよびSVCDのようなさまざまなメディアデバイス上に保存される。多くの場合、伝送および/または保存はビデオビットストリームに誤りを導入しうる。
【0003】
ビデオデータの効率的な伝送、受信および/または保存は、ビデオデータのエンコード及び圧縮を要求する。ソースビデオ信号をエンコードし、圧縮することに対してはいくつかのアプローチおよび規格が存在する。いくつかの規格は、ビデオ会議用途において広範に使用されるITU-T勧告H.261、H.263およびH.264といった特定の用途のために設計されている。さらに、動画像専門家グループ(Motion Picture Experts' Group)(MPEG-1、MPEG-2、MPEG-3)によって公布された規格は、消費者電子製品その他の分野において幅広い用途を見出している。これらの各規格はその全体において参照によって組み込まれる。
【0004】
いずれにせよ、デジタル画像は個別のピクセルの長方形の配列によって構成される。典型的には、画像全体が同時に処理されるのではなく、個別に処理される複数のブロックに分割される。各ブロックは所定の数の輝度ピクセルまたはルーマピクセル(概してピクセルの明るさを指定するもの)および所定の数のクロミナンスピクセルまたはクロマピクセル(概してピクセルの色を指定するもの)の長方形のグリッドを有する。所定の数のブロックが組み合わされてマクロブロックをなし、マクロブロックがたいていの圧縮方法における処理の基本単位をなす。処理単位のこの階層構造のいくつかの側面は以下でも議論されるが、処理のための画像のブロックベースの処理についての方法および技術は当業者には一般に知られており、ここで詳細に繰り返すことはしない。
【0005】
画像データのマクロブロックは二つの基本技術うちの一つの変形でエンコードされうる。たとえば、「イントラ」符号化が使われうるが、この場合は元のマクロブロックは以前のフレームの対応するマクロブロックといった履歴データを参照することなくエンコードされる。あるいはまた、「インター」符号化が使われうるが、この場合は画像データのマクロブロックは該マクロブロックと以前のフレームの対応するマクロブロックのようなデータの参照マクロブロックとの差を用いてエンコードされる。これら二つの基本方式の数多くの変形が当業者には知られており、よってここで詳細に議論することはしない。一般にデータのマクロブロックを記述するために必要なビット数が最小となるエンコード技術を選択することが望ましい。イントラ符号化は典型的にはブロックを表現するのにより多くのビットを必要とし、よって一般にはインター符号化が好まれる。
【0006】
ビデオ会議「通話」は典型的には二つの技術のうちの一つを使ってかけられる。伝統的には、回線交換ネットワーク(たとえばISDN電話線)が使われてきた。典型的には、これらの通話は国際電気通信連合(ITU)勧告H.320「狭帯域視覚電話システムおよび端末装置」に従ってかけられる。より最近は、インターネットのようなパケット交換ネットワークがビデオ会議のためにより広く使われるようになっている。パケット交換マルチメディア通信プロトコルには多様なものが存在し、その一例がITU勧告H.323、「パケットベースのマルチメディア通信システム」である。これらの勧告のそれぞれはここに参照によってその全体において組み込まれる。ここでの記述はこれら二つのプロトコルを背景としてなされるが、本発明はこれらのプロトコルだけに限定されるのではないことを注意しておく。
【0007】
しばしば、ビデオビットストリームは、両方のネットワーク技術を縦続して経由して転送される。たとえば、H.320/H.323ゲートウェイを使うことで、ビデオ通話は二つの構内ネットワークにまたがることが許容されうる。もう一つのよくある例は、MCUへの接続のいくつかはH.323を使う一方、他の接続はH.320を使いうるようなマルチポイント通話である。H.323/H.320プロトコル変換においては任意的にビデオトランスコーダーが配備されることもあるが、ビデオトランスコーダーは高価であり、通話に遅延を加える。よって、そのようなトランスコードなしにプロトコルを変換することが有利である。
【0008】
いずれの技術を使って伝送されるビデオ通話も、多くの場合伝送時の誤りを受ける。伝送にパケット交換ネットワークが使われるときには、伝送誤りは一つまたは複数の紛失パケットを生じる。パケット交換ネットワークプロトコル(RTPのような)は、受信側が一つまたは複数のパケットが失われたことを検出することを許容するようになっている。ISDNのような回線交換ネットワークがH.320の伝送のために使われるときには、伝送誤りはビットストリーム中の一つまたは複数の誤りビットを生じる。若干の誤り訂正を提供するためにBCH符号が使われるが、誤りバーストはしばしば訂正できないほど多数の誤りを有する。
【0009】
しばしば、伝送誤りのためにデコーダが同期を見失ってしまう。これが起こると、誤りのすぐあとの諸ビットは(正しく受信されたのに)同期が再確立されるまで破棄しなければならない。たとえば、RFC2429を使ってパケット化されたH.263ビデオビットストリームに関するパケットが失われた場合、その後の受信パケットはGOB(group of blocks[ブロックグループ])ヘッダまたはPSC(picture start code[映像開始符号])が見出されるまで破棄される。同様に、H.263ビデオがH.320(回線交換)接続上で伝送されるとき、伝送誤り後、次のGOBヘッダまたはPSCより前に受信されたビットは破棄される。
【0010】
同様に、デコーダがビットストリーム誤りを検出したときには二つの選択肢がある。第一の選択肢は、表示を凍結させて送信者に高速更新を要求することである。送信者はそのような要求に際してはイントラフレームを送ってくる。そのイントラフレームが受信されるまで(または時間切れ期間が過ぎるまで)受信者の表示は凍結したままとなる。こうした凍結したビデオの数秒間はユーザーのユーザー体験を損なう。第二の選択肢は、高速更新を要求するが、誤りのあるフレームの表示を続けることである。要求されたイントラフレームが到着するまで、明るい色のブロック、真っ黒のブロックまたは攪拌された画像などの乱れが生じる。そのような乱れは典型的には凍結表示以上にユーザー体験にとっては破壊的である。したがって、ビデオ会議における一般的な慣行は選択肢1、すなわち画面凍結を選ぶことによって誤りを隠蔽することであり続けてきた。
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかし、上述した二つの選択肢のいずれも望ましくない。したがって、当技術分野において必要とされているのは、ビデオ伝送において、ユーザー体験にとってそれほど破壊的でない誤り隠蔽の代替技術である。好ましい技術は、デコーダが欠けている、あるいは伝送損失(たとえばパケット紛失)によって破損しているデータを再構築することであろう。これを容易にするため、ある種の情報を冗長に送信するか、あるいは欠けているデータが補間によって再構築されうるようにブロックを配列するかすれば助けになる。ビデオ会議システムに関連して記述するが、ここに述べられる概念はいかなるビデオ符号化およびデコード用途にも等しく適応可能である。
【課題を解決するための手段】
【0012】
ここに開示されるのは、伝送誤りの結果として失われるビデオ情報を再構築するためのシステムおよび方法である。該システムおよび方法は四つの側面がある:(1)ビットレートおよび/またはパケットレートを変える、(2)冗長情報をビデオビットストリームに挿入する、(3)ビデオの、ある領域の周期的な自動リフレッシュを提供する、(4)符号化された諸マクロブロックを送信のためにいくつかの多岐グループ(diversity group)にインターリーブすることにより紛失パケットの影響を空間的に拡散させる。すると、画像再構築はこれら三つの側面を活用して伝送損失が存在するときに向上された結果を提供しうる。
【図面の簡単な説明】
【0013】
【図1】A〜Cは周辺のマクロブロックを参照することによって紛失マクロブロックの動きベクトルを推定する技術を描いた図である。
【図2】非重畳インター・マップ(A)および重畳インター・マップ(B)を含むパケットの内容を描いた図である。
【図3】A〜Bは動き航跡および動き航跡同定アルゴリズムを描いた図である。
【発明を実施するための形態】
【0014】
上述したように、ビデオビットストリームから失われた情報を再構築する方法を提供することが望ましい。ある側面では、本発明は以下の要素を提供する:
・ビットレートおよび/またはパケットレートを変える。
・ビデオビットストリームに補足(冗長)情報を挿入する。
・ビデオエンコーダに自動リフレッシュ機構および航跡検出を設ける。
・符号化されたマクロブロックを伝送に先立って多岐グループにインターリーブする。
これら4つの要素は効率的な誤り隠蔽および回復を容易にするためにさまざまな仕方で組み合わせることができる。さらに、これらの要素は典型的にはビデオエンコーダおよびデコーダにおいて実装されており、これらビデオエンコーダおよびデコーダはさまざまな形を取ることができ、それには専用または共用の汎用のハードウェア、ソフトウェアおよびファームウェアのさまざまな組み合わせが含まれる。さらに、さまざまな要素は、ゲートウェイ、マルチポイント制御ユニット(MCU: multipoint control unit)などといったビデオ・サーバー・デバイスとともに実装され、修正され、あるいはその他の仕方で該ビデオ・サーバー・デバイスと対話しうる。ビデオ・サーバー・デバイスも汎用または専用のハードウェア、ソフトウェアおよびファームウェアのさまざまな組み合わせから構築されうる。
【0015】
ある好ましい実施形態においては、受信者はネットワーク品質を監視し、送信者に要素の特定の組み合わせを提供するよう要求する。送信者は他の要因(たとえば、同じストリームを受信している他のデバイスからの要求)あるいは(中間ゲートウェイまたはMCUの場合)実際の送信者の機能を、その応答において考慮に入れうる。当技術分野においてよく知られているように、他の方法を使うこともできる。たとえば、送信者は、適切な隠蔽モードについて先験的または帯域外(out-of-band)情報を与えられてもよい。あるいは、送信者はネットワーク品質統計を(たとえばRTCPから)受信して、それを適切なモードを選択するために使用してもよい。
【0016】
本発明のもう一つの側面は、誤りの広がりの最小化に関係する。上述したように、伝送誤りからその次の同期ヘッダ(たとえばGOBヘッダまたはPSC)までに送信されるビットは、正しく受信されたにもかかわらず破棄しなければならない。ある好ましい実施形態では、各送信パケットが同期ヘッダで始まる。これにより再同期のために正しく受信されたパケットを破棄する必要性が解消される。同様に、H.320プロトコルからH.323プロトコルに変換するとき、ゲートウェイまたはMCUは各パケットを受信された同期ヘッダと一緒に始まるよう整列させる。理想的には各パケットは、ほかには埋め込まれた同期ヘッダを含まない(パケット開始における最初のもの以降には)。パケットを同期ヘッダと整列させることは、誤り伝搬の広がりを最小化し、ビデオトランスコードの必要なくプロトコル変換デバイスにおいて実装されうる。
【0017】

〈ビットレートおよび/またはパケットレートの変更〉
伝送誤り、特に紛失パケットまたは紛失ビットによって引き起こされる伝送誤りに対処する第一のアプローチは、ビットレートおよび/またはパケットレートを下げることである。いくつかの場合には、紛失パケットの原因は部分的には、パケットの送出が所与のネットワーク要素が受信できるよりも速いことである。別のいくつかの場合には、パケットオーバーヘッドがネットワーク輻輳を悪化させていることがありうる。これらいずれの場合にも、パケットレートを下げることで誤り率を低下させうる。出力パケットレートが、特に低めのビットレートの場合には部分的にはフレームレートに依存していることに注意しておく。
【0018】
さらにいえば、その他さまざまな誤り隠蔽技術がビットレートおよび/またはパケットレートを上昇させるので、ネットワーク輻輳の結果として誤りが発達しつつある場合、ここに議論される他の誤り隠蔽技術を用いると、実は隠蔽または訂正される以上の誤りを生じさせることがありうる。よって、追加的な誤り隠蔽技術によって引き起こされるビットレートおよび/またはパケットレート上昇をほぼ打ち消すだけビットレートおよび/またはパケットレートを低下させることが好ましい。
【0019】

〈ビデオビットストリーム中への補足的(冗長)情報の挿入〉
ここに記載される誤り訂正技術の一つの要素は、ビデオビットストリームへの冗長情報の挿入である。この冗長情報は、送信者と受信者との間でのパケット紛失の結果として何らかの情報が失われていたとしても、受信者(エンドポイントまたはゲートウェイまたはMCU)が画像を再構築できることを保証する。ビットストリーム中に挿入される冗長情報は、ビデオフレーム中の各マクロブロックがどのように符号化されたか(インターかイントラか)の「マップ」および動きベクトル場(すなわち、各インター符号化ブロックのための動きベクトル)を含む。この情報は一般にビットストリーム中に多様な仕方でエンコードされうるが、その仕方は当業者には明らかである。どのようにエンコードされようとも、この冗長情報は、受信者にとって、パケット紛失の結果として欠けているデータを以下の手順に従って再構築するために十分である。
【0020】
ある実施形態では、冗長情報は、ビデオエンコードまたはデコードをそっくり行う必要なしにゲートウェイまたはMCUによって挿入または除去されうる。前記情報は、同期ヘッダの近くに置かれるので、ビットストリーム・シンボルのいくつかをデコードするだけで除去できる。前記情報は除去を簡単にするためバイト整列される。冗長情報を挿入するためには、該冗長情報を抽出するために、ビットストリーム中のシンボルのほとんどをデコードする必要がある。しかし、画像中のピクセルはデコードする必要はなく、これによりかなりの計算資源が節約され、遅延が短縮される。
【0021】
ビットストリーム中での冗長情報の除去/挿入を容易にすることにより、ここに開示される諸技術ではMCU(またはゲートウェイ)が冗長情報を選択的に加えることが許容される。たとえば、前記情報を誤りが生じているネットワークリンクにのみ加えるといったことである。この動作モードでは、MCUはビットストリーム中の失われた情報を再構築するために冗長情報を使用する。たとえば、冗長動きベクトルは、失われたインター符号化ブロックをビットストリームの規格準拠部分に再挿入するために使用されることができる。上述したように、この修復はトランスコードすることなく達成できる。
【0022】
また、ここで述べているさまざまな誤り隠蔽技術の一つまたは複数を用いるビデオ会議に、規格ビットストリーム(H.263のような)しか受信できないエンドポイントを含めることもできる。MCUとそのようなエンドポイントとの間のリンクはこの冗長情報を搬送することができないものの、他のすべてのエンドポイントは本発明の恩恵を受ける。MCUが冗長な補足情報を送信するエンドポイントから受信されたビットストリーム誤りを修復するからである。
【0023】
インター・マクロブロック・マップが失われたマクロブロックがイントラ符号化されたものではない(すなわち、インター符号化されたものである)と示している場合、デコーダ(すなわち、エンドポイント、ゲートウェイまたはMCUのいずれでもよい受信者)は失われたマクロブロックを符号化された係数なしで動き補償されたインターブロックとして再構築する。この再構築されたブロックを使って、レンダリングされる映像とデコーダ参照フレームとの両方が更新される。拡張インター・マップ(すなわち、動きベクトルを含むもの)が受信された場合、そのマップからの冗長動きベクトルデータが再構築されたブロックのために使用される。あるいはまた、インター・マップが失われた場合、またはインター・マップが冗長動きベクトル情報を含んでいない場合、再構築されたブロックについての動きベクトルの推定が、近隣ブロックの動きベクトルを調べることによって計算される。
【0024】
ある実施形態では、推定される動きベクトルは3つの近隣マクロブロック(a,b,cとする)の動きベクトルのメジアン(中央値)として計算される。具体的には、失われたマクロブロックについての動きベクトルmは(x,y)と計算される。ここで、x=(ax,bx,cx)のメジアン、ax,bx,cxはマクロブロックa,b,cの動きベクトルのx成分である。同様に、y=(ay,by,cy)のメジアン、ay,by,cyはマクロブロックa,b,cの動きベクトルのy成分である。再構築されたマクロブロックおよび該再構築されたマクロブロックについての動きベクトルを計算するのに使われた近隣マクロブロックのさまざまな配置が図1のA〜Cに示されている。たとえば、ほとんどのマクロブロックについて、図1のAの配置が好適であろう。ブロックが映像の上端にある場合には、図1のAを反転させた、図1のBに示すような配置が使用される。再構築されるブロックが画像の角にある場合には、図1のCに示すように3つだけある隣接ブロックが使用される。さらに、映像の端において動きベクトルを再構築するためには次の境界条件が適用される:
(a)映像の左端では、
x<0ならばx=0
(b)映像の右端では、
x>0ならばx=0
(c)映像の上端では,
y>0ならばy=0
(d)映像の下端では、
y<0ならばy=0
失われたマクロブロックがイントラ符号化されたマクロブロックの場合、インターリーブ(後述)がオンになっている場合にのみマクロブロックは再構築される。しかし、失われたイントラ・マクロブロックが映像の端にある場合にはインターリーブがオンであってもなくても再構築されないことを注意しておくべきであろう。インターリーブがオンになっていなければ、欠けているマクロブロックは、何だろうと使用されているビデオエンコードアルゴリズムに従って符号化されなかったかのように扱われる。ブロックが再構築される場合には、レンダリングされる映像とデコーダ参照フレームとの両方がこの再構築ブロックを使って更新される。
【0025】
あるイントラ・マクロブロックが再構築されるべきである場合、失われたイントラ・マクロブロックの内容の推定値が、隣接する諸マクロブロックの空間的補間から生成される。好ましい補間方法は双線形補間であるが、多様な補間が使用可能である。
【0026】
具体的には、マクロブロックの左上隅の8×8輝度ブロックについては、直上のマクロブロックのピクセルの最後の行からの8ピクセルと、左のマクロブロックのピクセルの右端の列からの8ピクセルとが、二次元双線形補間されて失われたマクロブロックに関するピクセル値を生成する。同様に、マクロブロックの右上隅の8×8ブロックについては、直上のマクロブロックのピクセルの最後の行からの8ピクセルと、右のマクロブロックのピクセルの左端の列からの8ピクセルとが、二次元双線形補間される。残りのブロックも同様な方式で処理される。各クロマ・ブロックについては、直上のマクロブロックの最後の行からの8ピクセルと左のマクロブロックの右端の列からの8ピクセルとが二次元双線形補間される。
【0027】
控えめなパケット紛失率においてでさえ、同じパケットについて主ビデオと冗長マップ/動きベクトル情報の両方が失われることがありうる。たとえば、パケット紛失率が1/6とすると、両方の映像情報のソースを失う確率は1/36である。毎秒30フレームのビデオ通話では、これはほぼ1秒に1回起こることになる。重畳冗長データがこの確率を著しく減らすことができる。
【0028】
重畳(overlapping)が使われない場合、各フレームにおける最初のパケットは何らのインター・マップも動きベクトル情報も保持しない。そのフレーム中の後続の各パケットは直前のパケットについてのインター・マップおよび動きベクトル情報を保持する。最終ビデオパケットに続いて、最終ビデオパケットからのマップ情報を保持するマップ終端パケットが送られる。たとえば、多岐数(diversity number)が6のCIFフレームを考える。各フレームは少なくとも7つのパケットを有し、マップ要素は図2のAに示すようになる。

【0029】
重畳が使われる場合には、冗長情報は2度以上送られる。具体的には、各マップ項目が複数回送られる。重畳nの場合、各パケットは直前のn+1パケットについてのマップ情報を保持する。送られたパケットがn+1個未満だった場合は、マップ全体(マクロブロック0から始めて)が送られる。最終ビデオパケットが送られたのち、複数のマップ終端項目が送信されて、フレーム中の全パケットについて望まれる冗長性を達成する。重畳が3に設定されたとすると、各フレームは送信すべき10のパケットを有し、マップ要素は図2のBで示されるようになる。
【0030】
例として、重畳が2に設定されているとすると、動きベクトルは各マクロブロックについて3回送られる(マクロブロック自身に加えて)。これらの伝送は相異なるパケットにおいて行われる。よって、あるマクロブロックについての動きベクトルは、そのマクロブロックを含むパケットに続く次の3つのパケットにそれぞれにおいて送られる。パケット紛失率が1/6でフレームレートが毎秒30フレームの上記の例では、マップとマクロブロックの両方を失う確率は1/1296、すなわち約40秒に1回に低下する。しかし、動きベクトルを複数回送ることはビットレートのオーバーヘッドを著しく増やすので、重畳が最も有利なのはより高いビットレートにおいてである。インターリーブ(後述)が使用される場合、重畳は多岐グループの数を超えることができない。インターリーブが使われない場合、重畳は画像中のGOBの数を超えることができない。
【0031】

〈自動リフレッシュ機構および航跡検出〉
ここに記載される誤り隠蔽技術の第二の主要な要素は、リフレッシュ機構および/または航跡検出(wake detection)アルゴリズムである。リフレッシュ機構は、パケット紛失から生じる残りのエンコーダ/デコーダ参照フレーム不一致を始末するために使用されるべきである。リフレッシュ機構は、画像中のマクロブロックを決定論的パターンに従ってイントラ符号化する。これは特に動きのある領域において、誤りの伝搬を限定する。画像中の各マクロブロックを指定されたレートで系統的にリフレッシュする限り、いかなるリフレッシュパターンを使用してもよい。一つの好適なリフレッシュ機構は遍歴(walk around)リフレッシュである。これは次のように動作する。遍歴間隔wは、イントラ符号化されたブロック間の間隔を指定する。よって、(開始ブロックsから始まって)w番目ごとのマクロブロックはイントラとして符号化される。開始ブロックsは次の映像については(l+w) mod bとしてリセットされる。ここでlはこの映像においてリフレッシュされた最後のブロック、bは当該映像中のブロック数である。(modはもちろんモジュロすなわち剰余演算である)
wを選ぶには、映像中でスキップされるブロックがないよう注意を払う必要がある。wはまた、あるフレーム中のイントラ符号化されたブロックを多岐グループにわたって均一に拡散させるよう、多岐数(後述)の倍数とすべきでないことが提案される。wがこれらの制約条件を満たすことを保証する単純な方法は、wを多岐数の因数でない素数にすることである。
【0032】
航跡検出アルゴリズムも含めることができる。ビデオを符号化するとき、ビデオフレーム中にはしばしば、オブジェクトmが動くことで見えなかった背景の一部が露わになった、すなわち見えるようになった領域が存在する。この背景領域wは動き航跡またはより簡単に航跡と呼ばれ、その様子は図3のAに描かれている。誤り隠蔽を実行するとき、動き航跡に生じる動き予測の誤りは持続的であり、目障りな視覚的乱れを引き起こす傾向がある。動き奇跡にあるマクロブロックをイントラとしてエンコードすることによってこうした乱れは軽減される。符号化閾値および量子化パラメータを航跡中では下げることも望ましい。これは映像の動いている領域のまわりで背景をシャープに保つためである。
【0033】
動き航跡を検出するための一つの技術は次のようなものである:何の動きも示さないある所与のマクロブロックについて、隣接する諸マクロブロックの動きベクトルが検査される。4つの試験が実行され、各試験は左、右、上または下の動きについて検査する。こうした試験のいずれかが真であれば、そのマクロブロックは動き航跡中にあり、イントラ符号化されるべきであると同定される。図3のBは左についての試験を図解している(他の方向についての試験も同様であり、よって詳細に述べることはしない)。マクロブロックmの3つの左の近隣マクロブロック(図3のBではaと記してある)が左に向かう動きを示していて、かつマクロブロックmがほとんどあるいは全く対応した動きをもたない場合、マクロブロックmは動き航跡中にあるといわれる。より具体的には、動きがほとんどあるいは全くないことを指定する条件は|MVx|<2および|MVy|<2と書いてもよい。ここで、MVxおよびMVyはマクロブロックmのxおよびy方向の動きベクトル成分である。
【0034】

〈インターリーブ/多岐グループ〉
ここに記載される誤り訂正技術の第三の要素は、インターリーブされたマクロブロック、またの名を多岐グループ(diversity group)の使用である。通常、H.263においては、マクロブロックはラスタ走査順に送られる。たとえば、CIF映像においては、0(左上)から395(右下)までの送信指数(transmission index)をもつ396個のマクロブロックがある。諸マクロブロックは、映像中で空間的に隣接している複数のブロックグループ(GOB)に編成される。マクロブロック・インターリーブが使用される場合、マクロブロック送信番号は次のように変更される:まず、各マクロブロックが、(送信指数)mod(多岐数)を取ることによって多岐グループに割り振られる(多岐数は多岐グループの数である)。多岐グループは本質的には、空間的に隣接しない諸ブロックを有するGOBである。これは、紛失パケットからの誤りを空間的に拡散させ、誤り隠蔽のためのさまざまな補間方法を許容する。エンコードのためにH.264ベースライン・プロファイルが使用される場合、FMO(flexible macroblock ordering[柔軟マクロブロック配列])が多岐グループを作成するために使用されうることを注意しておく。
【0035】
多岐グループは特別な種類のGOBであるため、ビットストリームは、多岐グループ指数をGOB数として使ってGOBヘッダを含むことができる。多岐グループに割り振られたのち、マクロブロックは多岐グループごとに(グループ0を最初として)(再)整列される。多岐グループ内では、マクロブロックはアドレスが単調に増加する順に送られる。相手側がマクロブロック・インターリーブを要求したときは、多岐数を指定している。多岐数は:(a)画像中のマクロブロック数の約数である必要はなく、(b)1行のマクロブロック数の約数であってはならず(さもなければ上述した再構築技術が正しく動作しない)、(c)2〜30の範囲内であり、(d)画像中のGOBの数を超えてはならない。
【0036】
たとえば、多岐数3をもつQCIF分解画像(11個のマクロブロック9行)を考える。通常、99個のマクロブロックは逐次送られる(0〜98)。マクロブロックはそれぞれ11個のマクロブロックからなる9つのGOB(0〜8と番号付ける)に編成される。しかし、インターリーブがオンだと、マクロブロックは3つの多岐グループ(diversity group)(DG0, DG1, DG2)にグループ化され、マクロブロックは次の順序で送られる。
DG0:
0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96
DG1:
1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97
DG2:
2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98
3つの多岐グループのそれぞれは別個のパケットとして送られる必要があることを注意しておくべきであろう。
【0037】

ここに記載された誤り訂正アルゴリズムの要素のそれぞれは、所与の計算容量またはその他の機能枠組みの範囲内での所望の誤り訂正レベルを達成するために個々にまたは合わせて実装されうる。さらに、諸技術はハードウェア、ソフトウェアおよびファームウェアのさまざまな組み合わせにおいて実装されることができ、適宜ビデオエンコーダ、デコーダ、ゲートウェイ、MCUなどにおいて実装されることができる。たとえば、ここで記載されているシステムのある種の要素はエンコーダによる特定の動作を要求するが、そのようなストリームを受信できるデコーダが、一つまたは複数のビデオパケットの紛失に反応して、エンコーダがこれらの機能の一つまたは複数を使ってビットストリームを送信するよう要求してもよい。そのようなシステムの実装のために必要なさまざまな詳細、たとえば補足情報を搬送するために必要となる特定のビットストリーム修正やここにおいて記載された諸項目を決定するための計算アルゴリズムの構築は、本開示の恩恵を受ける当業者には明らかであり、よってここでは再現されない。
【0038】
ここに記載された諸技術は主としてパケット紛失に対処するために考案されているが、H.320のような電話ネットワークプロトコルとも両立できる。これはパケットネットワークおよび電話ネットワークの両方のエンドポイントを含むマルチポイント会議およびゲートウェイ通話のための誤り隠蔽および回復を提供する。
【0039】
本発明は例示的な実施形態を参照して説明されてきた。当業者には本発明のより広い精神および範囲から外れることなくそれにさまざまな修正がなしうることは明らかであろう。さらに、本発明は特定の実施形態における実装の背景において、そして特定の用途のために記述されてきたが、当業者は本発明の有用性がそれに限られるものではなく、本発明が有益に利用できる環境および実装はいくらでもあることを認識するであろう。以上の記述および図面はしたがって、限定的な意味ではなく解説的な意味において見なされるべきものである。
【0040】
いくつかの態様を記載しておく。
〔態様1〕
ビットストリームの一部分の紛失によって引き起こされる誤りの隠蔽を容易にするようビットストリームをデジタル的にエンコードする方法であって:
冗長情報をビデオビットストリームに挿入することを含んでおり、前記冗長情報が:(a)各ブロックがイントラ符号化またはインター符号化のどちらを使って符号化されたかを指定するマップ、および(b)インター符号化された各ブロックについての冗長な動きベクトル、のうちの少なくとも一つを含んでいることを特徴とする方法。
〔態様2〕
前記冗長情報が受信者の要求でビットストリームに挿入されることを特徴とする、態様1記載の方法。
〔態様3〕
ビデオビットストリームの各ブロックを、決定論的なパターンを使って定期的にイントラ符号化ブロックとして符号化することをさらに含むことを特徴とする、態様1記載の方法。
〔態様4〕
態様3記載の方法であって、前記決定論的なパターンが遍歴リフレッシュであることを特徴とする方法。
〔態様5〕
ビデオビットストリームのうち動き航跡中にあると判定された各ブロックを、イントラ符号化ブロックとして符号化することをさらに含むことを特徴とする、態様1記載の方法。
〔態様6〕
符号化されたマクロブロックを送信のために複数の多岐グループにインターリーブすることをさらに含んでおり、空間的に隣接するマクロブロックどうしは異なる多岐グループに割り振られることを特徴とする、態様1記載の方法。
〔態様7〕
冗長情報を複数のパケットに重畳させ、各パケットが一つまたは複数の以前のパケットに対応する冗長情報を含むようにすることをさらに含むことを特徴とする、態様1記載の方法。
〔態様8〕
複数のマクロブロックのそれぞれを複数の多岐グループうちの一つに、各多岐グループが空間的に隣接でないマクロブロックを含むように割り振ることをさらに含んでおり、前記複数の多岐グループが別個のパケットで送信されることを特徴とする、態様1記載の方法。
〔態様9〕
ビデオビットストリームをデコードする方法であって:
少なくとも一部が失われているビデオビットストリームを受信し、
少なくとも一つの失われたマクロブロックを同定し、
前記ビデオストリーム中に埋め込まれているインター・マクロブロック・マップを参照して前記失われたマクロブロックを再構築する方法を決定する、
ことを含むことを特徴とする方法。
〔態様10〕
前記インター・マクロブロック・マップが失われたマクロブロックがインター符号化されていたことを示している場合に、失われたマクロブロックがビデオビットストリームに埋め込まれた冗長動きベクトルを使って再構築されることを特徴とする、態様9記載の方法。
〔態様11〕
前記インター・マクロブロック・マップが失われたマクロブロックがインター符号化されていたことを示している場合に、失われたマクロブロックが一つまたは複数の周囲のマクロブロックから動きベクトルを推定することによって再構築されることを特徴とする、態様9記載の方法。
〔態様12〕
態様11記載の方法であって、一つまたは複数の周囲のマクロブロックから動きベクトルを推定することが、複数の近隣マクロブロックの動きベクトルのメジアンを計算することを含むことを特徴とする方法。
〔態様13〕
前記インター・マクロブロック・マップが失われたマクロブロックがイントラ符号化されていたことを示している場合に、失われたマクロブロックが符号化されていないマクロブロックとして再構築されることを特徴とする、態様9記載の方法。
〔態様14〕
前記インター・マクロブロック・マップが失われたマクロブロックがイントラ符号化されていたことを示しており、該マクロブロックが映像の端にある場合に、該マクロブロックが再構築されないことを特徴とする、態様9記載の方法。
〔態様15〕
前記インター・マクロブロック・マップが失われたマクロブロックがイントラ符号化されていたことを示している場合に、失われたマクロブロックが隣接マクロブロックの空間的補間によって再構築されることを特徴とする、態様9記載の方法。
〔態様16〕
ビデオビットストリームをデコードする方法であって:
少なくとも一部が失われているビデオビットストリームを受信し、
送信者が一つまたは複数の誤り訂正要素を送るよう要求することを含んでおり、
前記誤り訂正要素が、ビットレートおよび/またはパケットレートを下げる、冗長情報をビデオビットストリームに挿入する、自動リフレッシュ機構を提供する、動き航跡検出を提供する、符号化されたマクロブロックを送信に先立ち多岐グループにインターリーブする、ことからなる群から選択されることを特徴とする方法。
〔態様17〕
態様16記載の方法であって:
少なくとも一つの失われたマクロブロックを同定し、
前記ビデオストリーム中に埋め込まれているインター・マクロブロック・マップを参照して前記失われたマクロブロックを再構築する方法を決定する、
ことを含むことを特徴とする方法。
〔態様18〕
前記インター・マクロブロック・マップが失われたマクロブロックがインター符号化されていたことを示している場合に、失われたマクロブロックがビデオストリームに埋め込まれている冗長な動きベクトルを使って再構築されることを特徴とする、態様17記載の方法。
〔態様19〕
前記インター・マクロブロック・マップが失われたマクロブロックがインター符号化されていたことを示している場合に、失われたマクロブロックが一つまたは複数の周囲のマクロブロックから動きベクトルを推定することによって再構築されることを特徴とする、態様17記載の方法。
〔態様20〕
態様19記載の方法であって、一つまたは複数の周囲のマクロブロックから動きベクトルを推定することが、複数の近隣マクロブロックの動きベクトルのメジアンを計算することを含むことを特徴とする方法。
〔態様21〕
前記インター・マクロブロック・マップが失われたマクロブロックがイントラ符号化されていたことを示している場合に、失われたマクロブロックが符号化されていないマクロブロックとして再構築されることを特徴とする、態様17記載の方法。
〔態様22〕
前記インター・マクロブロック・マップが失われたマクロブロックがイントラ符号化されていたことを示しており、該マクロブロックが映像の端にある場合に、該マクロブロックが再構築されないことを特徴とする、態様17記載の方法。
〔態様23〕
前記インター・マクロブロック・マップが失われたマクロブロックがイントラ符号化されていたことを示している場合に、失われたマクロブロックが隣接マクロブロックの空間的補間によって再構築されることを特徴とする、態様17記載の方法。
〔態様24〕
ビットストリームの一部分の紛失によって引き起こされる誤りの隠蔽を容易にするようビデオビットストリームを送信のためにパケット化する方法であって:各パケットに単一の同期ヘッダを挿入することを含んでおり、該単一の同期ヘッダが対応するパケットの始まりと整列されることを特徴とする方法。
〔態様25〕
マルチポイント制御ユニットが、リンクを通じたビデオビットストリームの一部の紛失によって引き起こされる少なくとも一つのリンク上の誤りの隠蔽を容易にするような、マルチポイントビデオ会議を遂行する方法であって:
ビデオビットストリーム中に冗長情報を挿入し、該冗長情報が:(a)各ブロックがイントラ符号化またはインター符号化のどちらを使って符号化されたかを指定するマップ、および(b)インター符号化された各ブロックについての冗長な動きベクトル、のうちの少なくとも一つを含んでいることを特徴とする方法。
〔態様26〕
マルチポイント制御ユニットが、ビデオビットストリームの一部の紛失によって引き起こされる誤りの隠蔽を容易にするような、マルチポイントビデオ会議を遂行する方法であって:
そのような情報をサポートしないエンドポイントに送信されるビデオストリームからは冗長情報を削除することを含んでおり、前記冗長情報は前記エンドポイントや前記マルチポイント制御ユニット以外のデバイスによってビデオビットストリーム中に入れられており、前記冗長情報が:(a)各ブロックがイントラ符号化またはインター符号化のどちらを使って符号化されたかを指定するマップ、および(b)インター符号化された各ブロックについての冗長な動きベクトル、のうちの少なくとも一つを含んでいることを特徴とする方法。

【特許請求の範囲】
【請求項1】
ビデオビットストリームの一部分の紛失によって引き起こされる誤りの隠蔽を容易にするようビデオビットストリームをデジタル的にエンコードする方法であって:
冗長情報をビデオビットストリームに挿入することを含んでおり、前記冗長情報が:(a)各ブロックがイントラ符号化またはインター符号化のどちらを使って符号化されたかを指定するマップ、および(b)インター符号化された各ブロックについての冗長な動きベクトル、のうちの少なくとも一つを含んでおり、前記冗長な動きベクトルは動きベクトルの一つまたは複数の冗長なコピーであり、前記ビデオビットストリームの各パケットについての冗長情報が複数のパケットに繰り返して含められ、各パケットはnを自然数としてその直前のn個のパケットについての情報を含み、
前記冗長情報が受信者の要求でビットストリームに挿入される、
方法。
【請求項2】
前記冗長情報がMCUによってビットストリームに挿入されることを特徴とする、請求項1記載の方法。
【請求項3】
ビデオビットストリームの各ブロックを、決定論的なパターンを使って定期的にイントラ符号化ブロックとして符号化することをさらに含むことを特徴とする、請求項1記載の方法。
【請求項4】
請求項3記載の方法であって、前記決定論的なパターンが遍歴リフレッシュであることを特徴とする方法。
【請求項5】
ビデオビットストリームのうち動き航跡中にあると判定された各ブロックを、イントラ符号化ブロックとして符号化することをさらに含むことを特徴とする、請求項1記載の方法。
【請求項6】
符号化されたマクロブロックを送信のために複数の多岐グループにインターリーブすることをさらに含んでおり、空間的に隣接するマクロブロックどうしは異なる多岐グループに割り振られることを特徴とする、請求項1記載の方法。
【請求項7】
前記複数の多岐グループが別個のパケットで送信されることを特徴とする、請求項1記載の方法。
【請求項8】
ビデオビットストリームをデコードする方法であって:
少なくとも一部が失われているビデオビットストリームを受信し、ここで、前記ビットストリームは冗長情報を含んでおり、前記冗長情報は:(a)各ブロックがイントラ符号化またはインター符号化のどちらを使って符号化されたかを指定するインター・マクロブロック・マップ、および(b)インター符号化された各ブロックについての冗長な動きベクトル、のうちの少なくとも一つを含んでおり、前記冗長な動きベクトルは動きベクトルの一つまたは複数の冗長なコピーであり、前記ビデオビットストリームの各パケットについての冗長情報が複数のパケットに繰り返して含められ、各パケットはnを自然数としてその直前のn個のパケットについての情報を含み、
少なくとも一つの失われたマクロブロックを同定し、
受信者の要求でMCUによって前記ビデオストリーム中に埋め込まれているインター・マクロブロック・マップを参照して前記失われたマクロブロックを再構築する方法を決定する、
ことを含むことを特徴とする方法。
【請求項9】
前記インター・マクロブロック・マップが失われたマクロブロックがインター符号化されていたことを示している場合に、失われたマクロブロックが、受信者の要求でMCUによってビデオビットストリームに埋め込まれた冗長動きベクトルを使って再構築されることを特徴とする、請求項8記載の方法。
【請求項10】
前記インター・マクロブロック・マップが失われたマクロブロックがインター符号化されていたことを示している場合に、失われたマクロブロックが一つまたは複数の周囲のマクロブロックから動きベクトルを推定することによって再構築されることを特徴とする、請求項8記載の方法。
【請求項11】
請求項10記載の方法であって、一つまたは複数の周囲のマクロブロックから動きベクトルを推定することが、複数の近隣マクロブロックの動きベクトルのメジアンを計算することを含むことを特徴とする方法。
【請求項12】
前記インター・マクロブロック・マップが失われたマクロブロックがイントラ符号化されていたことを示している場合に、失われたマクロブロックが符号化されていないマクロブロックとして再構築されることを特徴とする、請求項8記載の方法。
【請求項13】
前記インター・マクロブロック・マップが失われたマクロブロックがイントラ符号化されていたことを示しており、該マクロブロックが映像の端にある場合に、該マクロブロックが再構築されないことを特徴とする、請求項8記載の方法。
【請求項14】
前記インター・マクロブロック・マップが失われたマクロブロックがイントラ符号化されていたことを示している場合に、失われたマクロブロックが隣接マクロブロックの空間的補間によって再構築されることを特徴とする、請求項8記載の方法。
【請求項15】
ビデオビットストリームをデコードする方法であって:
少なくとも一部が失われているビデオビットストリームを受信し、
送信者が前記ビデオビットストリーム中に冗長情報を挿入するよう要求することを含んでおり、前記冗長情報は:(a)各ブロックがイントラ符号化またはインター符号化のどちらを使って符号化されたかを指定するインター・マクロブロック・マップ、および(b)インター符号化された各ブロックについての冗長な動きベクトル、のうちの少なくとも一つを含み、前記冗長な動きベクトルは動きベクトルの一つまたは複数の冗長なコピーであり、前記ビデオビットストリームの各パケットについての冗長情報が複数のパケットに繰り返して含められ、各パケットはnを自然数としてその直前のn個のパケットについての情報を含む、
方法。
【請求項16】
請求項15記載の方法であって:
少なくとも一つの失われたマクロブロックを同定し、
前記ビデオストリーム中に埋め込まれているインター・マクロブロック・マップを参照して前記失われたマクロブロックを再構築する方法を決定する、
ことを含むことを特徴とする方法。
【請求項17】
前記インター・マクロブロック・マップが失われたマクロブロックがインター符号化されていたことを示している場合に、失われたマクロブロックがビデオストリームに埋め込まれている冗長な動きベクトルを使って再構築されることを特徴とする、請求項16記載の方法。
【請求項18】
前記インター・マクロブロック・マップが失われたマクロブロックがインター符号化されていたことを示している場合に、失われたマクロブロックが一つまたは複数の周囲のマクロブロックから動きベクトルを推定することによって再構築されることを特徴とする、請求項16記載の方法。
【請求項19】
請求項18記載の方法であって、一つまたは複数の周囲のマクロブロックから動きベクトルを推定することが、複数の近隣マクロブロックの動きベクトルのメジアンを計算することを含むことを特徴とする方法。
【請求項20】
前記インター・マクロブロック・マップが失われたマクロブロックがイントラ符号化されていたことを示している場合に、失われたマクロブロックが符号化されていないマクロブロックとして再構築されることを特徴とする、請求項16記載の方法。
【請求項21】
前記インター・マクロブロック・マップが失われたマクロブロックがイントラ符号化されていたことを示しており、該マクロブロックが映像の端にある場合に、該マクロブロックが再構築されないことを特徴とする、請求項16記載の方法。
【請求項22】
前記インター・マクロブロック・マップが失われたマクロブロックがイントラ符号化されていたことを示している場合に、失われたマクロブロックが隣接マクロブロックの空間的補間によって再構築されることを特徴とする、請求項16記載の方法。
【請求項23】
請求項1記載の方法であって:各パケットに単一の同期ヘッダを挿入することをさらに含んでおり、該単一の同期ヘッダが対応するパケットの始まりと整列されることを特徴とする方法。
【請求項24】
マルチポイント制御ユニットが、リンクを通じたビデオビットストリームの一部の紛失によって引き起こされる少なくとも一つのリンク上の誤りの隠蔽を容易にするような、マルチポイントビデオ会議を遂行する方法であって:
ビデオビットストリーム中に冗長情報を挿入し、該冗長情報が:(a)各ブロックがイントラ符号化またはインター符号化のどちらを使って符号化されたかを指定するマップ、および(b)インター符号化された各ブロックについての冗長な動きベクトル、のうちの少なくとも一つを含んでおり、前記冗長な動きベクトルは動きベクトルの一つまたは複数の冗長なコピーであり、前記ビデオビットストリームの各パケットについての冗長情報が複数のパケットに繰り返して含められ、各パケットはnを自然数としてその直前のn個のパケットについての情報を含む、ことを特徴とする方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2012−231532(P2012−231532A)
【公開日】平成24年11月22日(2012.11.22)
【国際特許分類】
【出願番号】特願2012−162934(P2012−162934)
【出願日】平成24年7月23日(2012.7.23)
【分割の表示】特願2006−191931(P2006−191931)の分割
【原出願日】平成18年7月12日(2006.7.12)
【出願人】(500080720)ポリコム・インコーポレイテッド (22)
【Fターム(参考)】