説明

ビデオエラー隠蔽のためのシステムおよび方法

【課題】ビデオエラーを隠蔽するためのシステムおよび方法を提供する。
【解決手段】システムがデータパケットを受信し、デパケット化し、順序付けし(915)そして復号化するとき、そのシステムが損失ビデオデータパケットによりもたらされるエラーを隠蔽するように、そのシステムは、通信ネットワークに亘り、送信のためのビデオデータパケットにビデオ情報を符号化し、再順序付けしそしてパケット化する。そのシステムおよび方法は、隣接するマクロブロックが同じビデオデータパケットに配置されないように、ビデオ情報を符号化し且つパケット化する(925)。さらに、そのシステムと方法は、復号化プロセスを容易にするためにビデオデータパケットに伴う情報を提供することが可能である。利点は、ビデオデータパケット損失によるエラーがビデオフレームにおいて空間的に分布されることである。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、ビデオ通信に関し、特に、ビデオエラー隠蔽に関する。
【背景技術】
【0002】
ビデオ画像はグローバルコミュニケーションの一部として次第に重要になってきた。特に、ビデオ会議およびビデオ電話は、デスクトップおよび部屋ベースの会議、インターネットおよび電話回線におけるビデオ、監視およびモニタリング、遠隔治療およびコンピュータベースのトレーニングおよび教育のような幅広いアプリケーションを有している。これらのアプリケーションの各々において、ビデオとそれに伴うオーディオ情報は、電話回線、ISDN、DSLおよび超音波を含む通信回線を通じて送信される。
【0003】
ビデオ会議において用いられる標準ビデオフォーマットは、国際電気通信連合(ITU:International Telecommunications Union)のH.261ビデオ会議規格の一部である共通中間フォーマット(CIF:Common Intermediate Format)である。主なCIFフォーマットはまた、全CIFまたはFCIFとして知られている。FCIFより大きいかまたは小さいかどちらかの解像度をもつ付加的なフォーマットがまた確立された。図1は、先行技術に従った、1つの画素に対して12ビットが必要であるという仮定の下での種々のビデオフォーマットに関するビットレートの要求および解像度についての表である。示されているビットレート(単位は秒当たりのメガビット、すなわちMbpsとして)は非圧縮のカラービデオフレームに対するものである。
【0004】
現在、ビデオ信号の効率的な送信および受信は、ビデオおよびそれに伴うオーディオデータの符号化および圧縮を必要としている。ビデオ圧縮符号化はデジタルビデオデータを符号化する方法であり、故に、ビデオデータを記憶するために記憶容量をあまり必要とせず、必要とされる送信帯域幅は減少されている。特定の圧縮/展開CODEC)スキームは、必要とされる送信ビットレートを減少させてビデオフレームを圧縮するためにしばしば用いられる。故に、CODECハードウェアおよびソフトウェアは、デジタルビデオデータがオリジナル(非圧縮)のデジタルビデオフォーマットにより必要とされるよりコンパクトなバイナリフォーマットに圧縮されることを可能にする。
【0005】
ソースビデオ信号を符号化し且つ圧縮することに対する幾つかの従来の方法がある。一部の規格が、静止画像に対するJPEG(Joint Photographic Experts Group)、並びに動画像に対するH.261、H.263、MPEG、MPEG−2およびMPEG−4のような特定のアプリケーションについてデザインされている。これらの符号化規格は、一般にマクロブロックと呼ばれる16x16画素におけるブロックベースの動き補償予測を代表的に用いる。マクロブロックは、クロミナンスデータが垂直方向および水平方向において2:1にサブサンプリングされる4:2:0サンプリング構造に従ったクロミナンスデータの4つの8x8ブロックおよびクロミナンスデータの2つの対応する8x8ブロックを含む情報の単位である。
【0006】
実際的には、オーディオデータはまた、ビデオデータと共に圧縮され、送信され、そして同期化される必要がある。同期化、多重化およびプロトコルの問題は、H.320(ISDNベースのビデオ会議)、H.324(POTSベースのビデオ電話)およびH.323(LANまたはIPベースのビデオ会議)のような規格によりカバーされている。H.263(または前身のH.261)は、これらの規格群のビデオ符号化部分を提供する。
【0007】
動き評価および補償スキームは、ビデオ信号に必要な送信帯域幅を減少させるために、一般に用いられる1つの従来の方法である。マクロブロックは基本データ単位であるため、動く評価および補償スキームは、現時点のビデオフレームにおける所定のマクロブロックを前に送信されたビデオフレームにおける所定のマクロブロックの周辺領域と比較することが可能である。一般に、前に送信されたビデオフレームにおける非常によく適合されたマクロブロックは、所定のマクロブロックの幅より小さい幅だけ所定のマクロブロックから空間的にオフセットされる。データの近い適合がみられる場合、僅かの差(すなわち、残差)および空間オフセットは符号化され且つ送信されることが必要であるように、前に送信された基準ビデオフレームにおいて近い適合をみるオフセットマクロブロックから現時点のビデオフレームにおける所定のマクロブロックを減じる。空間オフセットは、一般にうごきベクトルと呼ばれる。動き評価および補償プロセスが効率的である場合、残留残差マクロブロックは、前のビデオフレームから現時点のビデオフレームに変化する画素に関するデータを表すために必要な情報量と動きベクトルのみを含む必要がある。故に、代わらないビデオフレームの領域は符号化されず且つ送信されない。
【0008】
従来、H.263規格は、動き評価および動き補償のために用いられた動きベクトルは差分符号化されるように指定している。差分符号化は送信のために必要とされるデータ量を減少させるが、動きベクトルデータが1つのマクロブロックに対して損失されるか破損されたいずれかのエラーは隣接するマクロブロックに影響を及ぼす。その結果、より低いビデオ品質に導く破損されたデータのためにエラーが伝搬する。
【0009】
パケット交換通信ネットワークにおいて送信のためのビデオフレーム情報が準備されたとき、符号化スキームは、通信ネットワークにおける送信のためのデータパケットに動き評価および補償技術または他の圧縮スキームにより圧縮されるビデオフレーム情報を変換する。データパケットは非常により送信効率を可能にするが、失われ、破損され、または遅延されたデータパケットはまた、ビデオ品質の劣化をもたらすエラーに導くこととなる。また、ビデオデータは、終点の1つが回線交換ネットワークに関連し、回線交換ネットワークブリッジ装置に交換されるゲートウェイまたは他のパケットが用いられる、異種通信ネットワークにおいて送信されることが可能である。
【0010】
現在、失われたデータパケットまたは破損されたデータパケットはしばしばビデオ品質を低下させる原因となる。故に、データパケット損失に起因するエラーを隠蔽するために、データパケットを整理し且つ送信するシステムおよび方法に対する要請がある。
【発明の概要】
【課題を解決するための手段】
【0011】
本発明は、ビデオデータのパケット損失に関連する先行技術の問題を克服または実質的に軽減する。一般に、本発明は、ビデオデータのパケット損失によりもたらされるビデオエラーを隠蔽するための能力をもつパケット交換ネットワークに亘る送信のためのビデオ情報を符号化し、再順序付けし並びにパケット化するシステムおよび方法を提供する。
【0012】
代表的な実施形態において、ビデオ信号はマクロブロックの集合に符号化される。それに、マクロブロック再順序付けエンジンは、各々のマクロブロックに、マクロブロック群識別子(MBGID:MacroBlock Group IDentifier)と呼ばれる整数レベルを割り当てる。有利なことに、一実施形態において、隣接するマクロブロックは同一のMBGIDを割り当てられない。それに、マクロブロックパケット化エンジンは、同一のMBGIDが割り当てられるマクロブロックは一緒にパケット化されるように、マクロブロックのパケット化を可能にする。隣接するマクロブロックが同一のMBGIDを割り当てられない実施形態に対しては、空間的に隣接しているマクロブロックは一緒にパケット化されないようになる。さらに、イントラマクロブロックマップのような対応するデータは、対応する復号化プロセスを容易にするためにある他の機構により移行されるか、ピクチャヘッダに組み込まれることが可能である。
【0013】
さらに他の本発明の実施形態において、画像処理エンジンが符号化マクロブロック青含むデータパケットを受信するとき、そのデータパケットはデパケット化され、符号化マクロブロックは順序付けられ且つ復号化される。代替の実施形態において、画像処理エンジンは受信されたデータパケットをデパケット化し、次いで、処理遅延を減少させるために、データパケットが受信された順序にマクロブロックを復号化させる。1つまたはそれ以上のデータパケットが失われる場合、うまく送信されたデータパケットのマクロブロックに伴うデータが、損失データパケットの影響を減じるために用いられる。損失マクロブロックがイントラ符号化されたかまたはインター符号化されたかに基づく種々の方法は、欠落したマクロブロックを補償する。補償時に、ビデオ信号が表示されることが可能である。結果として、本発明のシステムおよび方法は、データパケット損失からもたらされるビデオエラーを隠蔽することができる。
【図面の簡単な説明】
【0014】
【図1】先行技術に従った、種々のビデオフォーマットに対する解像度とビットレートの要求についての表である。
【図2】本発明に従った、代表的なビデオ会議システムを示すブロック図である。
【図3】図2のビデオ会議システムの代表的なビデオ会議ステーションのブロック図である。
【図4】図3の画像処理エンジンの代表的な実施形態を示すブロック図である。
【図5】QCIFフォーマット化ビデオフレームのためのマクロブロック再順序付けパターンの代表的な図であって、各々の値が対応する空間の場所におけるマクロブロックに割り当てられるMBGIDである、図である。
【図6】図5のQCIFフレームマクロブロック再順序付けパターンの代表的な図であって、MBGIDをもつマクロブロックのための符号化マクロブロックデータを含むデータパケットが失われた、図である。
【図7】本発明の一実施形態に従った、隣接するマクロブロックにある画素に関連するデータを用いる2次元補間スキームについてのブロック図である。
【図8】本発明に従った、損失マクロブロックmの動きベクトルを評価するために用いられる隣接するマクロブロックの代表的なブロック図である。
【図9】本発明の一実施形態に従った、ビデオデータ処理の方法の段階についての代表的なフロー図である。
【図10】本発明に従った、ビデオデータを受信するときのビデオエラー隠蔽のための方法の段階についての代表的なフロー図である。
【発明を実施するための形態】
【0015】
本発明は、データパケット損失によって引き起こされるビデオ信号におけるエラーを隠蔽する。本発明のシステムおよび方法は、マクロブロックをビデオフレームにおいて柔軟性のある順序(例えば、非ラスター走査)にパケット化することにより既存の技術とは異なっている。既存のビデオ符号化規格とは対象的に、マクロブロックは、マクロブロックの並べ替えパターンにより指定される順序にパケット化される。さらに、各々のマクロブロックについての動きベクトルは非差分符号化されることが可能である。これらの改善は、通信回線におけるデータパケット損失によりもたらされる外乱を減少させようとするものである。本発明の範囲は、H.261、H.263、H.264、MPEG、MPEG−2およびMPEG−4を含むが、これらに限定されない種々のビデオ規格をカバーする。
【0016】
図2は、代表的なビデオ会議システム200を示している。ビデオ会議システム200は、現地のビデオ会議ステーション202とネットワーク206により接続された遠隔地のビデオ会議ステーション204とを含む。図2は2つのビデオ会議ステーション202および204のみを示しているが、当業者は、さらに多くのビデオ会議ステーションがビデオ会議システム200に連結されることが可能であることを理解するであろう。本発明のシステムおよび方法は、ビデオデータがネットワークにおいて送信される任意の通信システムにおいて利用することが可能であることに留意する必要がある。ネットワーク206は、POTS、ケーブル、光ファイバおよび高周波媒体のようないずれかの種類の電子送信媒体とすることが可能であるが、これらに限定されるものではない。
【0017】
図3は、代表的なビデオ会議ステーション300のブロック図である。簡単化のために、遠隔のビデオ会議ステーション204(図2)は類似する構成を含むことが可能であるが、ビデオ会議ステーション300は現地のビデオ会議ステーション202(図2)として説明することとする。一実施形態において、ビデオ会議ステーション300は、表示装置302、CPU304、記憶装置306、少なくとも1つのビデオ捕捉装置308、画像処理エンジン310および通信インタフェース312を含む。また、他の装置は、ビデオ会議ステーション300において提供され、または、上記の名前を挙げた装置全部とは限らないが提供される。少なくとも1つのビデオ捕捉装置308は、電荷結合素子(CCD)カメラ、相補形金属酸化膜半導体(CMOS)カメラまたはいずれかの他の種類の画像捕捉装置として実現されることが可能である。少なくとも1つのビデオ捕捉装置308は、ユーザ、会議室または他のシーンの画像を捕捉し、画像処理エンジン310に画像を送信する。一般に、画像処理エンジン310は、通信インタフェース312が遠隔のビデオ会議ステーション204にデータパケットを送信する前に、ビデオ画像を処理してデータパケットにする。画像処理エンジン310については、図4と関連させて、さらに詳細に説明する。逆に、画像処理エンジン310はまた、表示装置302における表示のためのビデオ信号に遠隔のビデオ会議ステーションから受信されたデータパケットを変換する。
【0018】
図4は、図3の画像処理エンジン310の代表的な実施形態である。画像処理エンジン310は、符号化エンジン402、マクロブロックパケット化エンジン404、マクロブロックパケット化エンジン406および通信バッファ408を含む。初めに、ビデオ捕捉装置308(図3)からのビデオ信号は、各々のビデオのフレームを好適なフォーマットに変換し、ビデオ信号の各々のフレームをマクロブロックの集合に変換する符号化エンジン402に入る。マクロブロックは、ピクチャ要素(または画素という)に関連するクロミナンス成分と輝度から構成されるデータのブロックを含むデータ単位である。例えば、H.263において、マクロブロックは、輝度データの4つの8x8ブロックと4:2:0クロマサンプリングフォーマットにおける対応するクロミナンスの2つの8x8ブロックから成る。データの8x8ブロックデータは、各々のデータはビデオフレームの画素に対応する8列x8行のデータの行列である。4:2:0クロマフォーマット化マクロブロックは、ビデオフレームの16画素x16画素区分をカバーするデータから構成される。しかしながら、本発明は従来定義されたようなマクロブロックに限定されるものではないが、輝度および/またはクロミナンスデータから構成されるいずれかのデータ単位に拡張することが可能である。さらに、本発明の範囲は、輝度データの4つの8x8ブロックとクロミナンスデータの4つの対応する8x8のブロックから構成される4:2:2クロマサンプリングフォーマット、または輝度データの8x8ブロックとクロミナンスデータの8つの対応する8x8ブロックから構成される4:4:4クロマサンプリングフォーマットのような他のサンプリングフォーマットをカバーする。
【0019】
さらに、符号化エンジン402は、データコンテンツを表すために用いられるビット数を減少させるための各々のマクロブロックを符号化する。各々のマクロブロックは、“イントラ符号化”または“インターコード化”されることが可能であり、フレームは、イントラ符号化およびインターコード化マクロブロックのいずれかの組み合わせから構成される。インターコード化されたマクロブロックは、一時的な類似性(すなわち、1つのフレームからのマクロブロックと前の符号化フレームからの非常によい適合性をもつマクロブロックとの間に存在する類似性)を用いて符号化される。厳密にいうと、所定のインター符号化マクロブロックは、所定のマクロブロックと前のビデオフレームからの近い適合性をみるマクロブロックとの間の符号化された差から構成される。前の基準ビデオフレームからの近い適合をみるマクロブロックは、所定のマクロブロックと関連する画素からオフセットされる画素と関連するデータから構成されることが可能である。また、イントラ符号化マクロブロックは、JPEGの静止画像符号化規格により採用されているものと同様の方法で、他のビデオフレームからの情報を用いることを伴わずに符号化される。
【0020】
例えば、所定のマクロブロックがインター符号化マクロブロックとして符号化されることが可能であるかどうかを決定するために、符号化エンジン402は、例えば、マクロブロック内の同じ場所に位置する画素に対応するデータ間の平均絶対誤差または平均2乗誤差により差が理解されることが可能である前のビデオフレーム(オフセットマクロブロックと呼ばれる)からのマクロブロックのデータをもつ現時点のビデオフレームの所定のマクロブロックのデータの間の差を計算する。所定のマクロブロックのために、符号化エンジン402が、複数の空間的オフセットマクロブロックに対するエラーを計算する。符号化エンジン402が所定の異なる閾値より大きいエラーのみを見つける場合、所定のマクロブロックからのデータと前のフレームからのデータとの間に著しい類似性は存在せず、マクロブロックはイントラ符号化される。しかしながら、1つのエラーが、所定のマクロブロックおよび前のフレームからの所定のオフセットマクロブロックのための所定の差の閾値より小さいことが見つけられた場合、所定のマクロブロックはインター符号化される。
【0021】
所定のマクロブロックをインター符号化するために、符号化エンジン402は、所定の差のデータを与えるためにオフセットマクロブロックデータ(すなわち、所定のマクロブロックの画素に関連する輝度およびクロミナンスデータが全ての画素のためのオフセットマクロブロックの対応する画素に関連する輝度およびクロミナンスデータから減じられる)から所定のマクロブロックのデータが減じられ、離散コサイン変換および量子化法等のような標準的な符号化技術を用いて差データを符号化し、所定のマクロブロックからオフセットマクロブロックにオフセットベクトル(動きベクトルという)を決定し、動きベクトルを符号化する。
【0022】
現在、H.261およびH.263のようなビデオ符号化規格は、インター符号化マクロブロックの動きベクトルが、符号化効率を改善するために差分符号化されることを指定する、しかしながら、所定のマクロブロックに関連する符号化された動きベクトルデータは一般に隣接するマクロブロックの動きベクトルデータと無関係でないため、差分符号化は、損失されまたは破損された動きベクトルデータがエラーを伴わないで復号化される隣接するマクロブロックに伝搬するように原因となる。故に、所定のマクロブロックの動きベクトルデータの影響は、その所定のマクロブロックに空間的に局在されていない。しかしながら、各々のインター符号化マクロブロックの動きベクトルが非差分符号化される場合、動きベクトルデータの影響はその所定のマクロブロックに局在され、その結果、エラー回復力が著しく向上する。殆どの場合、差分技術から非差分技術への動きベクトル符号化方法における変化は、全体的な符号化効率においてもたらされる損失は小さい(一般に数%より小さい)。有利なことに、従来の方法と対照的に、各々のインター符号化マクロブロックに関連する動きベクトル成分は、本発明の一実施形態に従って、差分符号化されない。
【0023】
本発明の他の実施形態において、符号化エンジン402は、“ウォークアラウンドリフレッシュ”機構を用いて、フレームのマクロブロックをイントラ符号化することが可能である。“ウォークアラウンドリフレッシュ”機構は、各々のフレームのマクロブロックの特定なパターンをイントラ符号化することにより、データドリフトと呼ばれる基準フレーム不適合を一掃するための決定論的機構である。符号化エンジン402は、現時点のフレームのインター符号化マクロブロックの復号化におけるオフセットマクロブロックとして基準フレームのマクロブロックを用いる。本発明の一実施形態において、“ウォークアラウンドリフレッシュ”機構は、所定の整数のウォークアラウンドインターバルの集合から選択された整数のウォークアラウンドインターバルwを用いて、マクロブロックのパターンをイントラ符号化することを可能にする。例えば、w=47の場合、符号化エンジン402は、w番目毎のマクロブロックをイントラ符号化する。ウォークアラウンドインターバルは、ビデオデータ送信レートとエラーレートとに基づいて選択されることが可能である。“ウォークアラウンドリフレッシュ”イントラ符号化マクロブロックは、遠隔のビデオ会議ステーション204(図2)の符号化エンジンにより受信されるとき、これらの“ウォークアラウンドリフレッシュ”イントラ符号化マクロブロックは、ビデオデータ送信エラーにより破損されることがあり得る前のフレームから対応するマクロブロックを置き換える。ビデオデータ送信エラーにより破損され得るマクロブロックはどれでも、さらに伝搬し(および置き換えられずに)、遠隔のビデオ会議ステーション204の符号化エンジンが他の受信マクロブロックを復号化するために基準マクロブロックとしてその破損されたマクロブロックを用いるとき、データドリフトが拡大することがあり得る。故に、“ウォークアラウンドリフレッシュ”イントラ符号化マクロブロックは、基準マクロブロックとして用いられる“リフレッシュ”イントラ符号化マクロブロックの集合を遠隔のビデオ会議ステーション204の符号化エンジンに提供し、これにより、データドリフトの伝搬を低減する。
【0024】
さらに、符号化エンジン402は、符号化ビデオフレームにおけるどのマクロブロックがイントラ符号化されるかを識別するイントラマクロブロックマップを生成することが可能である。イントラマクロブロックマップが生成された後、画像プロセッシングエンジン310は遠隔のビデオ会議ステーション204にそのマップを送信する。そのマップは、例えば、符号化されたビデオフレームに関連するピクチャヘッダフィールドの一部として送信されることが可能であるが、他のフィールドは用いられることが可能である。
【0025】
本発明に従って、符号化エンジン402は、2つの方法の1つにおいてイントラマクロブロックマップを生成することが可能である。本発明の一実施形態において、符号化エンジン402は、フレーム内のイントラ符号化マクロブロックの場所を示すためにランレングス符号化を用いる。ランレングス符号化は、連続する文字列のサイズを減少させる技術である。本発明の他の実施形態において、符号化エンジン402は、ビットマップにおける各々のビットがフレームの1つのマクロブロックに対応するビットマップを生成する。ビットの値は、対応するマクロブロックの符号化タイプを識別する。例えば、本発明の一実施形態において、“1”ビットは、対応するマクロブロックがイントラ符号化されることを意味する。本発明の他の実施形態において、“1”ビットは、対応するマクロブロックがインター符号化されることを意味する。イントラマクロブロックの生成するための他の方法を、本発明における使用のために検討することが可能である。
【0026】
本発明の他の実施形態において、符号化エンジン402は、最少のビット数を生成するイントラマクロブロックマップ符号化方法を選択する。例えば、352x288画素(すなわち、352画素の水平解像度、288画素の垂直解像度)FDIFビデオフレームは、22x18マクロブロックマトリクスとして構成される396個のマクロブロックから構成される。必要とされ得るビットのオーバーヘッドは何れも含むことなく、ビットマップ符号化方法は396ビット(各々のマクロビットに対して1ビット)を必要とする。故に、396ビットは、FCIFフレーム内のイントラ符号化マクロブロックの数から独立して、ビットマップ符号化イントラマクロブロックマップを送信するために用いられる。しかしながら、対照的に、ランレングス符号化イントラマクロブロックマップを送信するために用いられるビット数はFCIFフレーム内のイントラ符号化マクロブロックの数に依存する。ランレングス符号化イントラマクロブロックマップを送信するコストはイントラ符号化マクロブロック当たり8ビット(すなわち、ラン値当たり8ビット)であって、ラン値はFCIFフレーム内のイントラ符号化マクロブロックの場所を識別する。従って、FCIFフレームがn個のイントラ符号化マクロブロックを含む場合、8nビットが、レンレングス符号化イントラマクロブロックマップを転送するために必要とされる。
【0027】
このようにして、CIFフレームは50未満(n<50)のイントラ符号化マクロブロックを含む場合は、ソースコーディングエンジン402はランレングス符号化方法を選択し、そうでない場合は、ソースコーディングエンジン402はビットマップ符号化方法を選択する。イントラマクロブロックマップ符号化方法の選択は、FCIFビデオフレームが代表的な例であるビデオフォーマットに依存する。
【0028】
その後、符号化マクロブロックはマクロブロック再符号化エンジン404に転送される。マクロブロック再符号化エンジン404は符号化マクロブロックを再度順序付ける。具体的には、各々のマクロブロックは、複数のマクロブロック群識別子(MBGID)から
MBGIDを割り当てられる。代表的な実施形態において、マクロブロックは、行当たり11個のマクロブロックをもつ9行を有するQCIFフォーマット化フレームに対して、図5に示した代表的なマクロブロック割り当てパターンに従ったナンバリングされた6つに対する1つである。最大のMBGIDは最大群識別子(MGID)と呼ばれる。図5の代表的な実施形態においては、MGID=6である。図5に示したように、MBGIDは、同じMBGIDを割り当てられる隣接するマクロブロックを最少にするような方法で、割り当てられる。また、他の割り当てパターンが、隣接するマクロブロックにまたはいずれかの他の割り当て順序に、同じMBGIDを割り当てることが可能である。
【0029】
図6を参照して以下にさらに説明するように、マクロブロックの割り当ては、それによって隣接するマクロブロックが同じMBGIDを割り当てられないが、損失データパケットがフレームに亘って空間的に分布されるため、フレームの1つの領域におけるエラーの密度を最小化し、有利である。損失パケットによるエラーはフレームの1つの領域に密度高くなる傾向にないため、損失マクロブロックに関連する損失データは、隣接するマクロブロックからのデータを用いてさらに正確に再構築することが可能である。換言すれば、データ損失はフレーム内に空間的に局在していない場合、隣接するマクロブロックからのデータの空間的補間と損なわれたマクロブロック動きベクトルの評価はさらに正確に決定される。
【0030】
遠隔のビデオ会議ステーション204(図2)の画像処理エンジン310(図3)の符号化エンジン402は、ビデオ品質を改善するためにマクロブロックの並べ換えと共に種々のエラー隠蔽技術を用いることが可能である。例えば、本発明の一実施形態において、符号化エンジン402は、損失インター符号化マクロブロックに隣接するマクロブロックを復号化し、損失マクロブロックの動きベクトルを評価し、さらに、損失マクロブロックのデータを再構築するために評価された動きベクトルを用いる。本発明の他の実施形態において、符号化エンジン402は損失イントラ符号化マクロブロックに隣接するマクロブロックを復号化し、損失データを再構築するために復号化された隣接のデータを空間的に補間することが可能である。本発明の範囲は、損失または破損マクロブロックによるビデオ品質を改善するために、マクロブロックの並び換えと共に用いられる他のエラー隠蔽技術をカバーする。
【0031】
異なる再順序付けパターンおよびMBGIDを、本発明に従って利用することが可能である。本発明の一実施形態において、マクロブロック再順序付けエンジン404は、ビデオデータレートおよび/またはビデオフォーマットに基づいて、MGIDを選択する。
【0032】
図4を再び参照するに、一旦、マクロブロックがMBGIDを割り当てられると、マクロブロックパケット化エンジン406は、それらのMBGIDに従って、決定論的データパケットにそのマクロブロックを配置する。故に、同じMBGID(例えば、MBGID=1)をもつマクロブロックは、共通の離散的データパケット(例えば、データパケット=1)に配置される。図5の、本発明の代表的な実施形態を参照するに、パケット化エンジン406は、QCIFフレーム当たり6つのデータパケットにマクロブロックを配置する。しかしながら、パケット化エンジンは、所定のMBGIDをもつマクロブロックをトランスポートするために、所定のMBGIDをもつ2つ以上のパケットを用いることが可能である。例えば、パケット化エンジン406は、MBGID=1をもつマクロブロックの一部から構成される第1データパケット1とMBGID=1をもつマクロブロックの残りの部分から構成される第2データパケットとを生成することが可能である。この方法におけるパケットの分割は、ネットワーク206(図2)に関連する最大転送ユニットサイズ(MIU)により一般に左右される。
【0033】
その後、データパケットは、通信インタフェース312(図3)によりネットワーク206(図2)に亘る送信のための通信バッファ408に転送される。パケット損失に対する回復力をさらに促進するために、ピクチャヘッダがデータパケット内に送信されることが可能である。
【0034】
対照的に、画像処理エンジン310はまた、遠隔の場所から受信されたビデオデータパケットを処理し、表示のためにビデオ信号を提供する。初めに、データパケットは通信インタフェース312(図3)により受信され、通信バッファ408に転送される。ビデオデータパケットは、次いで、マクロブロックをアンパックするマクロブロックパケット化エンジン406に送信される。次いで、マクロブロック並べ換えエンジン404は、それらのオリジナルの順序付けられたパターン(すなわち、代表的にはラスター走査(図2)である、遠隔のビデオ会議ステーション204におけるマクロブロック並べ換えの前のパターン)にマクロブロックの順序を戻す。
【0035】
その後、符号化エンジン402は復号化器として機能し、ビデオデータパケットがネットワーク206に亘る移行において失われたかどうかを決定する。図6は、MBGID=5をもつマクロブロックについての符号化マクロブロックデータを含むデータパケットが失われたときの、図5のQCIFフレームマクロブロック再順序付けパターンを示す図である。損失マクロブロックは“x”によりマーキングされている。損失マクロブロックは、本発明の一実施形態に従って、QCIFフレームに亘って有利に空間的に分布され、故に、空間的補間または動きベクトル評価および補償のような方法を用いる、正確で複雑度の小さエラー隠蔽技術を可能にすることに留意する必要がある。図6は、議論の都合上、1種類の損失データパケットを示しているが、本発明の範囲は、移行の間にデータパケットの数はどれでも破損または損失されたときのエラー隠蔽をカバーする。ここでは、同じ構成要素が、送信機能と受信機能の両方に対して用いられるように表されているが、それら構成要素は分離した受信装置および送信装置において具現化されることが可能であることに、さらに留意する必要がある。
【0036】
再び図4を参照するに、各々の損失マクロブロックに対して、符号化エンジン402は、損失マクロブロックがイントラ符号化されたかインター符号化されたかのどちらであるかを決定する。例えば、符号化エンジン402は、損失マクロブロックがイントラ符号化されたかどうかを決定するためにイントラマクロブロックマップを調べることが可能である。上記のように、イントラマクロブロックマップは、ピクチャヘッダフィールドにまたはビデオストリームの外側に伝達される副情報として送信されることが可能であり、イントラ符号化マクロブロックを識別するビットマップとして構成されるランレングス符号化アルゴリズムまたはある他の効率的符号化方法を用いて、圧縮されることが可能である。
【0037】
損失マクロブロックがイントラ符号化される場合、幾つかのエラー隠蔽技術を用いることが可能である。例えば、損失マクロブロックが、“ウォークアラウンドリフレッシュ”機構の一部としてイントラ符号化される場合、符号化エンジン402は、2つの“対応する”マクロブロックがそれぞれのフレームの同じ空間領域をカバーする、前のフレームからの“対応する”マクロブロックのコンテンツで損失マクロブロックを置き換える。本発明に従って、“ウォークアラウンドリフレッシュ”機構の処理レートはデータとエラーレートとの関数である。
【0038】
また、損失イントラ符号化マクロブロックが、“ウォークアラウンドリフレッシュ”機構の一部として符号化されない場合、符号化エンジン402は、隣接するマクロブロックから損失マクロブロックのコンテンツを空間的に補間する。本発明の一実施形態においては、損失マクロブロックの各々の8x8ブロックが、隣接するマクロブロックにある2つの最近接ブロックから空間的に補間される。図7は、隣接するマクロブロックにある画素に関連するデータを用いる代表的な補間スキームについて示している。図7は、損失マクロブロック705、左側の隣接するマクロブロック710、上側の隣接するマクロブロック715および右側のマクロブロック720を含む。例えば、失われた16x16マクロブロック705の左上側ブロック725についてのデータを再構築(補間)するために、符号化エンジン402(図4)は、左側の隣接するマクロブロック710の右上側8x8ブロック735からデータ730(xで示される)の最終列におけるデータと、上側の隣接するマクロブロック715の左下側8x8ブロック745からデータ740(xで示される)の最終行におけるデータと、を補間する。
【0039】
同様に、失われたマクロブロック705の右上側ブロック750についてのデータを再構築するために、符号化エンジン402は、右側の隣接するマクロブロック720の左上側8x8ブロック760からデータ755の第1列におけるデータと、上側の隣接するマクロブロック715の右下側8x8ブロック770からデータ765の最終行におけるデータと、を補間する。また、補間の他の方式を適用することが可能であり、隣接するマクロブロックの他のブロックを用いることが可能であり、それらは本発明の範囲内にある。
【0040】
損失マクロブロックがインター符号化される場合、符号化エンジン402は、隣接するマクロブロックの動きベクトルを調べることにより損失マクロブロックの動きベクトルの評価を計算する。図8は、本発明の一実施形態に従って、損失マクロブロックmの動きベクトルを評価するために用いられる隣接するマクロブロックのブロック図である。損失マクロブロックmに対して、3つの隣接するマクロブロックa、bおよびcの動きベクトルの平均値が計算される。例えば、マクロブロックmの評価された動きベクトルのx成分はMV=median(MV,MV,MV)であり、マクロブロックmの評価された動きベクトルのy成分はMV=median(MV,MV,MV)であり、ここで、MV,MV,MVは、それぞれマクロブロックa、bおよびcの動きベクトルのx成分であり、MV,MV,MVは、それぞれマクロブロックa、bおよびcの動きベクトルのy成分である。本発明の図8における実施形態は、マクロブロックmに対して評価される動きベクトルを計算するために、隣接するマクロブロックa、bおよびcからの動きベクトルを用いているが、損失マクロブロックの動きベクトルを評価するために、隣接するマクロブロックの数および組み合わせはいずれを用いても構わない。
【0041】
一旦、損失マクロブロックの動きベクトルが評価されると、符号化エンジン402(図4)は、損失マクロブロックのデータコンテンツを再構築するために評価された動きベクトルを用いることにより、損失マクロブロックを補償する。所定フレームの全ての損失マクロブロックのデータコンテンツが再構築された後、符号化エンジン402は、表示装置302(図3)における表示のためにビデオ信号にマクロブロックを変換する。1つの損失データパケットのみを示しているが、本発明は、エラーを隠蔽するために複数の損失データパケットを用いることが可能である。
【0042】
図9は、本発明の一実施形態に従った、パケット交換ネットワークに亘ってビデオデータを送信するときの、ビデオエラー隠蔽のための方法の段階についての代表的なフローチャート900である。段階905において、ビデオ捕捉装置308(図3)はビデオ画像を捕捉し且つビデオ信号を生成する。次に、段階910において、符号化エンジン402(図4)(または、送信のためにデータを処理するときは復号器と呼ばれる)は、ビデオ信号を受信し且つビデオ信号を1つまたはそれ以上のイントラ符号化マクロブロックおよびインター符号化マクロブロックに変換する。ビデオフレームは、インター符号化マクロブロック、イントラ符号化マクロブロックまたはイントラ符号化マクロブロックとインター符号化マクロブロックのいずれかの組み合わせから構成されることが可能である。本発明の一実施形態において、“ウォークアラウンドリフレッシュ”機構は、所定のウォークアラウンドインターバルの集合から選択されたウォークアラウンドインターバルを用いて、マクロブロックのパターンをイントラ符号化することを可能にする。ウォークアラウンドインターバルは、ビデオデータおよびエラーレートに基づいて選択されることが可能である。さらに、符号化エンジン402は、各々の符号化マクロブロックのために非差分符号化動きベクトルを計算する。
【0043】
次いで、段階915において、符号化エンジン402は、イントラ符号化マクロブロックの場所を識別するイントラマクロブロックマップを生成する。本発明の一実施形態において、そのイントラマクロブロックマップは、イントラマクロブロックマップを符号化するために必要な総ビット数に基づくランレングス符号化方法かまたはビットマップ符号化方法のどちらかを用いて符号化される。
【0044】
次に、マクロブロック再順序付けエンジン404は、段階920において各々のマクロブロックにMBGIDを割り当てる。例えば、マクロブロックは、図5に示すようなパターンにMBGIDを割り当てられることが可能である。一実施形態において、マクロブロックは、同じMBGIDを割り当てられる隣接するマクロブロックを最少化するように割り当てられる。また、隣接するマクロブロックに同じMBGIDを割り当てる他の実施形態について検討することが可能である。
【0045】
次いで、マクロブロックパケット化エンジン406(図4)は、段階925における、それらのMBGIDにより、離散的なデータパケットを生成し且つ離散的なデータパケットにマクロブロックを配置する。例えば、同じMBGIDをもつマクロブロックは、共通の離散データブロックに配置すられる。また、マクロブロックパケット化エンジン406は、回線交換ネットワークにおけるトランスポートについて特定のフォーマットにマクロブロックを配置するために、トランスポートエンジンであることが可能である。最終的に、段階930において、データパケットおよびピクチャヘッダ(イントラマクロブロックマップを含む)は、遠隔のビデオ会議ステーション204(図2)への送信のために通信バッファ408に送信される。
【0046】
図10は、本発明に従った、ビデオデータを受信するときの、ビデオエラー隠蔽のための方法の段階についての代表的なフローチャート1000である。段階1005において、通信バッファ408(図4)は、ネットワーク206(図2)により遠隔のビデオ会議ステーション204(図2)から送信されたデータパケットを受信する。その後、段階1010において、マクロブロックパケット化エンジン406(図4)は、受信されたデータパケットをマクロブロックにデパケット化する。その後、段階1015において、マクロブロック再順序付けエンジン404(図4)は、ビデオフレームにおいて適切な空間配置にマクロブロックを配置する。
【0047】
次に、符号化エンジン402(図4)は段階1020においてマクロブロックを復号化する。符号化エンジン402(復号化器として機能する)またはビデオデータパケット変換(例えば、RTPシーケンス番号)に関連するある他の機構は、ビデオフレームから構成されるいずれかのマクロブロックが段階1025において失われたかどうかを決定する。1つまたはそれ以上のビデオデータパケットが、ネットワーク206におけるビデオデータパケットの送信により損失または破損される場合、マクロブロックは失われる。段階1025において、マクロブロックが欠落していないことが決定される場合、次いで、段階1030において、マクロブロックは表示装置302(図3)により表示される。しかしながら、段階1025において、1つまたはそれ以上のマクロブロックが欠落する場合、その1つまたはそれ以上の欠落したマクロブロックに関連するデータは、段階1035において、マクロブロック符号化タイプに基づいて再構築される。符号化エンジン402は、各々の損失マクロブロックの符号化タイプを決定するために、イントラマクロブロックマップを用いることが可能である。
【0048】
例えば、損失マクロブロックが“ウォークアラウンドリフレッシュ”機構の一部としてイントラ符号化される場合、符号化エンジン402は損失マクロブロックコンテンツを前のフレームからの対応するマクロブロックのデータコンテンツに置き換える。また、損失イントラ符号化マクロブロックが“ウォークアラウンドリフレッシュ”機構の一部として符号化されない場合、損失マクロブロックコンテンツは、最近接の隣接するマクロブロックから空間的に補間される。本発明の一実施形態において、符号化エンジン402は、隣接するマクロブロックからデータを補間するために2次元補間を用いる(図7)。
【0049】
また、損失マクロブロックがインター符号化される場合、符号化エンジン402は、隣接するマクロブロックの動きベクトルを調べることにより損失マクロブロックの動きベクトルを評価する。本発明の一実施形態において、動きベクトルは、3つの隣接するマクロブロックの動きベクトルの中央値として計算される(図8)。次いで、符号化エンジン402は、損失マクロブロックデータコンテンツの評価を再構築することにより損失マクロブロックのデータコンテンツを補償するために、評価された動きベクトルを用いる。一旦、失われたマクロブロックのデータコンテンツが再構築されると、段階1025において、マクロブロックは表示装置302により表示される。
【0050】
本発明について、代表的な実施形態を参照して説明した。本発明の主旨と範囲から逸脱することなく、種々の変更を実施することが可能であることは、当業者にははっきり理解されるであろう。さらに、本発明は特定の実施形態と特定のアプリケーションにおける実施についてのコンテキストにおいて説明したが、本発明の有用性はそれらに限定されるものではなく、且つ本発明はあらゆる環境および実施において優位性を有して用いられることができることを、当業者は理解されるであろう。従って、上記説明および図面は、限定の意味ではなく、例示であるとして認識されるべきものである。
【符号の説明】
【0051】
200 ビデオ会議システム
202 ビデオ会議ステーション
204 ビデオ会議ステーション
206 ネットワーク
300 ビデオ会議ステーション
302 表示装置
304 CPU
306 記憶装置
308 ビデオ捕捉装置
310 画像処理エンジン
312 通信インタフェース
402 符号化エンジン
404 マクロブロックパケット化エンジン
406 マクロブロックパケット化エンジン
408 通信バッファ
705 損失マクロブロック
710 マクロブロック
715 マクロブロック
720 マクロブロック
730 データ
735 8x8ブロック
740 データ
745 8x8ブロック
750 ブロック
755 データ
760 8x8ブロック
765 データ
770 8x8ブロック

【特許請求の範囲】
【請求項1】
ビデオデータを処理するシステムであって:
マクロブロックを生成するように及び該マクロブロックを符号化するようにビデオ信号の各々のフレームを処理する符号化エンジン;
マクロブロック群識別子(MBGID)から各々の符号化されたマクロブロックに複数のMBGIDを割り当てるマクロブロック再順序付けエンジン;及び
各々のパケットが共通のMBGIDを有するマクロブロックのみを有するように、前記MBGIDに従って前記符号化されたマクロブロックの各々を特定のデータパケットに位置付けるマクロブロックパケット化エンジン;
を有することを特徴とするシステム。
【請求項2】
請求項1に記載のシステムであって、前記マクロブロック再順序付けエンジンが隣接する符号化されたマクロブロックに異なるMBGIDを割り当てる、ことを特徴とするシステム。
【請求項3】
請求項1に記載のシステムであって、前記符号化エンジンは、インター符号化マクロブロックである前記符号化されたマクロブロックの各々について非差分符号化動きベクトルを生成する、ことを特徴とするシステム。
【請求項4】
請求項1に記載のシステムであって、前記マクロブロックパケット化エンジンは、異なるデータパケットに異なる割り当てられたMBGIDを有する前記符号化されたマクロブロックを位置付ける、ことを特徴とするシステム。
【請求項5】
請求項1に記載のシステムであって、前記MBGIDは1から最大の群識別子(MGID)までの値を有し、前記MGIDはビデオデータレート及びビデオフォーマットを有する群から選択された1つまたはそれ以上のパラメータに基づいて決定される、ことを特徴とするシステム。
【請求項6】
請求項1に記載のシステムであって、前記符号化エンジンは、所定のフレームにおいてイントラ符号化マクロブロックを識別するイントラマクロブロックマップをさらに生成する、ことを特徴とするシステム。
【請求項7】
請求項6に記載のシステムであって、前記符号化エンジンは、ランレングス符号化及びビットマッピングを有する群から選択された符号化技術を用いて、前記イントラマクロブロックマップを符号化する、ことを特徴とするシステム。
【請求項8】
ビデオデータを処理する方法であって:
マクロブロックを生成するようにビデオ信号の各々のフレームを処理する段階;
前記マクロブロックを符号化する段階;
複数のマクロブロック群識別子(MBGID)から各々の符号化されたマクロブロックにMBGIDを割り当てる段階;
前記MBGIDに従って前記符号化されたマクロブロックを再順序付けする段階;及び 各々のパケットが共通のMBGIDを有するマクロブロックのみを有するように、前記符号化マクロブロックの各々を特定のデータパケットに位置付ける段階;
を有することを特徴とする方法。
【請求項9】
請求項8に記載のシステムであって、前記割り当てる段階は、隣接する符号化されたマクロブロックに異なるMBGIDを割り当てる段階をさらに有する、ことを特徴とする方法。
【請求項10】
請求項8に記載のシステムであって、インター符号化マクロブロックである前記符号化されたマクロブロックの各々について非差分符号化動きベクトルを生成する段階をさらに有する、ことを特徴とする方法。
【請求項11】
請求項8に記載のシステムであって、前記位置付ける段階は、異なるデータパケットに異なる割り当てられたMBGIDを有する前記符号化マクロブロックを位置付ける段階をさらに有する、ことを特徴とする方法。
【請求項12】
請求項8に記載の方法であって、前記MBGIDは1から最大の群識別子(MGID)までの値を有し、前記MGIDはビデオデータレート及びビデオフォーマットを有する群から選択された1つまたはそれ以上のパラメータに基づいて決定される、ことを特徴とする方法。
【請求項13】
請求項8に記載の方法であって、所定のフレームにおいてイントラ符号化マクロブロックを識別するイントラマクロブロックマップを生成する段階をさらに有する、ことを特徴とする方法。
【請求項14】
請求項13に記載の方法であって、前記符号化エンジンは、ランレングス符号化及びビットマッピングを有する群から選択された符号化技術を用いて、前記イントラマクロブロックマップを符号化する、ことを特徴とする方法。
【請求項15】
ビデオデータを処理するシステムであって:
複数のデータパケットを受信するマクロブロックデパケット化エンジンであって、各々のパケットは複数のマクロブロックを有し、所定のパケットにおける前記複数のマクロブロックの各々が共通のマクロブロック群識別子(MBGID)を有する、マクロブロックデパケット化エンジン;
抽出されたマクロブロックを所定の順序に再順序付けするマクロブロック再順序付けエンジン;
前記再順序付けされたマクロブロックをビデオ信号に処理する復号化エンジン;
を有することを特徴とするシステム。
【請求項16】
請求項15に記載のシステムであって、各々のデータパケットは共通のMBGIDを有するマクロブロックを有する、ことを特徴とするシステム。
【請求項17】
請求項15に記載のシステムであって、前記複数のデータパケットは、所定のフレームにおいてイントラ符号化マクロブロックを識別するイントラマクロブロックマップを有する、ことを特徴とするシステム。
【請求項18】
請求項17に記載のシステムであって、前記イントラマクロブロックマップは、ランレングス符号化及びビットマッピングを有する群から選択された符号化技術を用いて、符号化される、ことを特徴とするシステム。
【請求項19】
請求項17に記載のシステムであって、前記復号化エンジンは、前記イントラマクロブロックマップがランレングス符号化またはビットマップを用いて符号化されるかどうかを検出し、それに応じて前記マクロブロックを処理する、ことを特徴とするシステム。
【請求項20】
請求項15に記載のシステムであって、前記復号化エンジンは前記再順序付けマクロブロックから欠落するマクロブロックを検出し、欠落したデータを再構築する、ことを特徴とするシステム。
【請求項21】
請求項20に記載のシステムであって、前記復号化エンジンは、前記所定の欠落したマクロブロックがイントラ符号化マクロブロックとして符号化された場合に、隣接する符号化マクロブロックのデータから所定の欠落マクロブロックのデータを空間的に補間する、ことを特徴とするシステム。
【請求項22】
請求項20に記載のシステムであって、前記復号化エンジンは、所定の欠落した復号化マクロブロックがインター符号化マクロブロックとして符号化された場合に、動き補償により前記所定の欠落したマクロブロックのデータコンテンツを再構築するように隣接する復号化されたマクロブロックの動きベクトルに基づいて前記所定の欠落したマクロブロックの動きベクトルを予測する、ことを特徴とするシステム。
【請求項23】
ビデオデータを処理する方法であって:
複数のデータパケットを受信する段階であって、各々のデータパケットは複数のマクロブロックを有し、特定のパケットにおける各々のマクロブロックは共通のマクロブロック群識別子(MBGID)を有する、段階;
前記符号化されたマクロブロックをデパケット化する段階;
受信された順序と異なる所定の順序に受信されたマクロブロックを再順序付けする段階;及び
ビデオ信号を生成するように前記再順序付けされたマクロブロックを復号化する段階; を有することを特徴とする方法。
【請求項24】
請求項23に記載の方法であって、前記所定の順序はラスター走査順序である、ことを特徴とする方法。
【請求項25】
請求項23に記載の方法であって、特定のデータパケットにおけるマクロブロックは共通のMBGIDを有する、ことを特徴とする方法。
【請求項26】
請求項23に記載の方法であって、前記複数のデータパケットは、所定のフレームにおいてイントラ符号化マクロブロックを識別するイントラマクロブロックマップを有する、ことを特徴とする方法。
【請求項27】
請求項26に記載の方法であって、前記イントラマクロブロックマップは、ランレングス符号化またはビットマッピングを有する群から選択された符号化技術を用いて、符号化される、ことを特徴とする方法。
【請求項28】
請求項23に記載の方法であって、欠落したマクロブロックを検出する段階をさらに有する、ことを特徴とする方法。
【請求項29】
請求項28に記載の方法であって、前記所定の欠落したマクロブロックがイントラ符号化マクロブロックとして符号化された場合に、隣接する符号化されたマクロブロックのデータから所定の欠落したマクロブロックのデータを空間的に補間する段階をさらに有する、ことを特徴とする方法。
【請求項30】
請求項28に記載の方法であって、前記所定の欠落したマクロブロックがインター符号化マクロブロックとして符号化された場合、動き補償により前記所定の欠落したマクロブロックのデータコンテンツを再構築するように隣接するマクロブロックの動きベクトルに基づいて所定の欠落したマクロブロックの動きベクトルを予測する段階をさらに有する、ことを特徴とする方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−70391(P2012−70391A)
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願番号】特願2011−225808(P2011−225808)
【出願日】平成23年10月13日(2011.10.13)
【分割の表示】特願2003−524260(P2003−524260)の分割
【原出願日】平成14年8月23日(2002.8.23)
【出願人】(500080720)ポリコム・インコーポレイテッド (22)
【Fターム(参考)】