音声ストリームまたはビデオストリームなどの、マルチメディアストリームの符号化は、広く文献に記載されており、いくつかの規格によって標準化されている。H.264/AVCビデオ符号化規格は、とりわけ、より低いビットレートでビデオ信号または音声信号の送信を可能にするように開発された、高度な圧縮技術を記述している。この規格は、符号化ビデオビットストリームのシンタックスを、ビットストリームを復号化する方法と共に定義する。各ビデオフレームは、それによりさらに分割され、それぞれが16×16画素のブロックである、マクロブロックのレベルで符号化される。
マクロブロックは、まとまってスライスにグループ化されて、並列化またはエラー耐性を可能にすることができる。マクロブロックごとに、符号化ビットストリームが、第1に、既に復号化されたマクロブロックに基づいてそのマクロブロックの予測をどのように計算するかを復号器に信号で伝えるデータと、第2に、マクロブロックの画素値を再構成するために、復号化されて予測に付加される残余データとを含む。各マクロブロックは、マクロブロックの予測が、現在のスライスにおいて再構成されるマクロブロックに基づいて形成される「イントラ予測」モードか、あるいは、マクロブロックの予測が、参照フレームと呼ばれる、既に復号化されたフレームにおける画素のブロックに基づいて形成される「インター予測」モードの、いずれかにおいて符号化される。イントラ予測符号化モードは、現在のスライス内で空間的予測を適用し、このモードでは、符号化マクロブロックは、以前に符号化され、復号化され、再構成された、現在のスライスにおける近傍のサンプルから予測される。イントラ予測モードにおいて符号化されるマクロブロックは、Iタイプのマクロブロックと呼ばれる。インター予測符号化モードは、時間的予測に基づいており、このモードでは、符号化マクロブロックは、以前のおよび/または将来の参照フレームにおけるサンプルから予測される。インター予測モードにおいて符号化されるマクロブロックは、各サブブロックが単一の参照フレームから予測される場合にはPタイプのマクロブロック、または、各サブブロックが1つもしくは2つの参照フレームから予測される場合にはBタイプのマクロブロックであってよい。
デフォルトのH.264の挙動は、ラスタースキャン順(すなわち、左から右へ線を走査する)に、マクロブロックをスライスにグループ化することである。しかしながら、H.264規格は、これ以降FMOと略記される、flexible macroblock ordering(柔軟なマクロブロック順序)と呼ばれる別の能力をさらに導入した。FMOは、ビデオフレームを複数のスライスグループにパーティションし、各スライスグループは一組のマクロブロックを含み、このマクロブロックは、潜在的に非連続的な位置にあってよく、フレーム内のどこにあってもよい。
トランスポートでは、各スライスは、これ以降NALと略記される、network abstraction layer(ネットワーク抽象層)の、1つのユニット内で、デフォルトモードを使用してトランスポートされることができる。しかしながら、H.264/AVC規格は、スライスのトランスポート中のエラー耐性を向上させるために、いくつかのNALユニットにわたる各スライスのデータパーティショニングという追加的な特徴をさらに記述している。
いくつかのパーティションにわたって1つのスライスをデータパーティショニングするこの特徴によれば、1つのスライスの符号化コンテンツは、3つのNALユニットにわたって分配されることになる:NALユニットパーティションA、NALユニットパーティションB、およびNALユニットパーティションC。この規格によれば、NALユニットパーティションAは、イントラ符号化、それぞれのインター符号化マクロブロックのための、イントラ予測モードのそれぞれの動きベクトルを含む、スライス内の各マクロブロックのスライスヘッダおよびヘッダデータを含むことになる。NALユニットパーティションBは、イントラ予測符号化が使用された場合に、対象となるスライスのマクロブロックのイントラ符号化の残余データを含むことになり、NALユニットパーティションCは、インター符号化が使用された場合に、このタイプの符号化の残余データを含むことになる。
これらのNALユニットは、オリジナルフレームが、表示のために再構成される、またはユーザに提供されることを可能にするように、受信されたパケットを再び復号化するための復号器を含む受信機に向けたネットワーク上でのトランスポートのために、パケットにさらにカプセル化される。
ネットワークにおける、または受信するバッファにおける輻輳状態または過負荷状態のケースでは、S.Mys、P.Lambert、W.De Neve、P.Verhoeve、およびR.Van de Walleによって執筆された、「SNR Scalability in H.264/AVC using Data Partitioning」、Lectures Notes in Computer Science.Advances in Multimedia Information Processing、 vol.4261、329−338頁、2006年、などの文献において、いくつかの論文が、NALユニットパーティションCを破棄することを提案している。いくつかのNALユニットを破棄することにより必然的な結果となるビデオ品質のロスを制限するために、これらの論文は、NALユニットパーティションCが破棄されることになるスライス内で、Iタイプのマクロブロックの割増し分の所定量をランダムに割り当てることを提案する。しかし、これは非効率的な符号化をもたらす結果になる。
以下は、本発明の原理を例証するにすぎないことに注目されたい。したがって、当業者は、本明細書において明示的に説明されず、または示されなくとも、本発明の原理を具体化し、その精神および範囲に含まれる、さまざまな構成を考案することができることが理解されるであろう。さらに、本明細書において挙げられるすべての例および条件言語は、主に、本発明の原理、および技術の進歩に対して本発明者によって貢献される発想を、読者が理解するのを助けるための教育的な目的となることのみが明確に意図されており、そのような具体的に挙げられた例および条件に限定されることなく解釈されるべきである。さらに、本発明の原理、態様および実施形態、ならびにその具体的な例を挙げている本明細書におけるすべての記述は、その構造上および機能上の両方の均等物を包含することが意図される。加えて、そのような均等物は、現在知られている均等物、ならびに将来において開発される均等物の両方を、すなわち、構造に関わらず同じ機能を実行する、開発されるあらゆる要素を含むことが意図される。
本発明が、初期符号化がH.264/AVC規格に従っている例を用いて説明される。しかしながら、基本的な原理を利用するあらゆるタイプの符号化が、本発明に関連した実施形態を実現するために使用されることができる。
より詳細には、本発明による方法の実施形態は、マクロブロックのスライスグループへのグループ化が行われるやり方に関する。この目的のために、マクロブロックごとに、イントラ符号化されることになるのか、またはインター符号化されることになるのかのアルゴリズムが決定すると、インター符号化されることになる一部またはすべてのマクロブロックのために、特別なステップを追加することになるように、符号化アルゴリズムへの追加的なステップが追加される。主なMPEG規格に従って、イントラ符号化されることになるマクロブロックは、I−マクロブロックと呼ばれる。もう一方のインター符号化マクロブロックでは、特定の符号化アルゴリズムによって、PタイプのマクロブロックかBタイプのマクロブロックかの区別がなされてよい。符号器は、マクロブロックごとに、それがどのタイプであるかを決定する。
本発明のある実施形態では、たとえば図1a−bおよび図5a−bに示されるように、Pタイプのマクロブロックのみがさらに分類される。本発明の別の実施形態では、たとえば図2a−bに示されるように、Bタイプのマクロブロックのみがさらに分類され、それに対して本発明のさらに別の実施形態では、図3a−bに示されるように、PタイプおよびBタイプ両方のマクロブロックが、所定の基準に従ってさらにソートされる。さらに別の実施形態では、図4a−bに示されるように、PタイプおよびBタイプ両方のマクロブロックが、BタイプであるかPタイプであるかに関わらず、つまり、BタイプかPタイプかのいずれかであることに関していかなる初期の区別もなされずに、ソートされる。
最初に、図1aおよび図1bを参照することにより、Pタイプのマクロブロックのみがソートされる第1の実施形態について説明する。
Pタイプ、または任意のタイプのインター符号化マクロブロックのソートまたは分類は、マクロブロックのサイズに基づいて、および/または復号器側におけるビデオデータの再構成のためのマクロブロックの重要度に基づいて、行われてよい。しかしながら、そのようなインター符号化マクロブロックを分類する他のやり方もやはり可能である。
マクロブロックを分類するための第1の実現性は、その残余データのサイズを検討することである。たとえば、これは、画素ドメインにおいて、1から256の整数値であるマクロブロック画素値と、それらの予測との差分を加算することによって行われてよい。別の例は、圧縮ドメインにおいて、量子化され、エントロピー符号化された、残余の変換係数の(ビットにおける)サイズを調べることから成り立つことができる。最も大きなサイズを有するマクロブロックが、より重要なマクロブロックとして分類されることになり、最も小さなサイズを有するマクロブロックが、最も重要度の低いマクロブロックとして分類されることになる。
第2の実現性は、たとえば、マクロブロック残余データを失うことで、復号化側で再構成されるビデオの視覚的な品質にどのくらいの影響があるのかを評価することによって、重要度を推定することである。マクロブロック残余データの欠如による品質の低下は、任意のビデオ品質メトリックを使用して定量化することができる。たとえば、基本的な実施形態では、このメトリックは、オリジナルビデオと復号化側で再構成されたビデオとの間のピーク信号対雑音比(PSNR)であってよい。マクロブロック残余データの視覚的な重要度によるマクロブロックの分類は、人間視覚システム(Human Visual System)の性質をより考慮に入れた他のビデオ品質メトリック(たとえば、VQM、PEVQ、またはSSIMベースのメトリック)を使用することにより、さらに向上させることができる。その場合、重要なマクロブロックが、より低いカテゴリのクラスに分類されることになるより重要度の低いマクロブロックに比べ、より高い(またはより重要な)カテゴリのクラスにソートされてよいことは明らかである。
さらに他の実施形態では、ソートする手順もまた、マクロブロックの残余データの欠落の影響を評価するために、マクロブロック間の時間的依存性および空間的依存性を考慮に入れることができる。手順は、したがって、イントラ予測またはインター予測を介して、直接的にまたは間接的に、ソートされるべきマクロブロックを参照して、すべてのマクロブロックを考慮に入れる。ビデオ品質メトリック(たとえば、上記で触れたメトリックのうちの1つ)を使用して、手順は次いで、ビットストリームからその特定のマクロブロックを取り除くことで、ビデオ品質にどのくらいの全体的影響があるのかを測定する。
上記で説明したソートするステップの後に、マクロブロックは、それらのサイズに、それらの残余データの重要度に、または選択されたソートする方法により定義された上記で触れた他の基準に関連した、いくつかのあらかじめ定義された閾値に基づいて、異なるカテゴリに分類されることができる。より計算的に複雑な実施形態では、分類は、ビデオ品質メトリック(たとえば、上記で触れたメトリックのうちの1つ)を使用して、さまざまな組のマクロブロックの同時ロスの、復号化されたビデオの品質に対する影響を測定することにより、さまざまな分類の選択を直接的に評価することに基づくことができる。
ソート/分類の考え得る結果が、図1aに示される。この簡略化された図では、7個のIタイプのマクロブロックと、41個のPタイプのマクロブロックとを含む、簡略化されたフレームが示される。この実施形態では、41個のマクロブロックは、ブロックにおいて異なる灰色および表示を用いて示されるように、P1、P2、およびP3で表される3つのサブカテゴリにさらに分類される。P1カテゴリでは、5個のマクロブロックが存在し、P2カテゴリでは、4個のマクロブロックが存在する。残りの32個のマクロブロックがP3タイプのものである。この例では、上記で説明した基準のうちの1つに従って、P1マクロブロックが、より重要なマクロブロックとしてみなされ、P3マクロブロックが、最も重要度の低いマクロブロックとしてみなされる。
次に、スライスグループ化が、マクロブロックのサブカテゴリに基づいて、すなわち、7個のIタイプのマクロブロックが、スライスFMO0からなるIスライスグループに、5個のP1タイプのマクロブロックが、スライスFMO1からなるP1スライスグループに、4個のP2タイプのマクロブロックが、スライスFMO2からなるP2スライスグループに、および32個のP3タイプのマクロブロックが、スライスFMO3からなるP3スライスグループに、グループ化されることになる。
このグループ化の結果は、Iスライスグループには、規格によって既に知られているように、パーティションAおよびパーティションBのみが存在し、スライスFMO1からスライスFMO3を含む他のPタイプのスライスグループには、パーティションAおよびパーティションCのみが存在することである。
これは、FMO3を、P3タイプのマクロブロックを含むスライスとして、FMO2を、P2タイプのマクロブロックを含むスライスとして、FMO1を、P1タイプのマクロブロックを含むスライスとして、およびFMO0を、Iタイプのマクロブロックを含むスライスとして示す、図1bに概略的に示される。非連続的な位置におけるマクロブロックの、1つのスライスへのこのグループ化は、H.264/AVC規格によって提供されるような、柔軟なマクロブロックの実現性によって可能である。
次に、スライスグループの異なるスライスにデータパーティショニングをさらに適用することにより、一組8つのNALユニットパーティションがもたらされる:パーティションA、スライスFMO0のための1つ(NALU1)、パーティションA、スライスFMO1のための2つ目(NALU2)、パーティションA、スライスFMO2のための3つ目(NALU3)、パーティションA、スライスFMO3のための4つ目(NALU4)、パーティションB、スライスFMO0のための5つ目(NALU5)、パーティションC、スライスFMO1のための6つ目(NALU6)、パーティションC、スライスFMO2のための7つ目(NALU7)、およびパーティションC、スライスFMO3のための8つ目(NALU8)。これらは、そのように図1bに概略的に示されている。
通信ネットワーク上ですべての8つのNALユニットを送信する間の過負荷トラフィック状況時に、NALユニットパーティション破棄メカニズムが、送信機または中間ノードのいずれかにおいて実装されてよく、このメカニズムは、たとえば、パーティションC、FMO3NALユニットを体系的に破棄することから成り立つことができ、というのは、それらが、より重要度の低いマクロブロックとみなされるP3マクロブロックと関連しているからである。しかしながら、分類基準にリンクしたいくつかの所定の基準を使用して、他の破棄メカニズムが使用されることができる。図1bに示される例では、たとえば、NALユニット8のみが破棄されることができる。これはしたがって、スライスFMO3のパーティションCに対応する。他の例(たとえば、NALユニット7および8を破棄する)では、それは、スライスFMO2およびFMO3のパーティションCを破棄することから成り立つ。
類似した原理が、図2aおよび図2bにおいて説明されるような、Bタイプのフレームに適用されることができる。これらの原理がBタイプおよびPタイプ両方のマクロブロックに適用される実施形態もまた、図3aおよび図3bに示されるように、可能である。この図では、Pタイプのマクロブロックが2つのスライスグループに分類され、それに対してBタイプのマクロブロックはこれ以上分類されない。この例では、したがってNALU7が、破棄するための適切な選択となってよい。
BタイプおよびPタイプのマクロブロック間で最初の区別さえなされず、しかしそれらが先に説明された基準に従って直ちに分類される、より一般的なメカニズムもまた可能である。これについての例が、図4a−bに示される。ここでは、PマクロブロックおよびBマクロブロックの両方が、3つの同一カテゴリに分類され、それに応じて、3つのカテゴリそれぞれのための1つの共通のスライスグループにグループ化される。図4bで、これらのスライスグループは、それぞれP&B1、P&B2、およびP&B3で表される。PマクロブロックおよびBマクロブロックを同じスライスにグループ化することは、実際には、現在のH.264/AVCシンタックスによって許可されていないが、他の、または将来のビデオ符号化規格においては潜在的に許可され得る。
簡略化のために、以前の例において、各スライスグループが単一のスライスからなると仮定される。しかし、各スライスグループをいくつかのスライスにさらに分割するために、いくつかの追加的な制約が必要になることがある。そのような制約は、たとえば、スライスのサイズに上限を設ける、符号化デバイスまたは復号化デバイスのメモリ、または処理能力に対する制限であり得る。所与のスライスグループが、最大スライスサイズよりも大きい場合、H.264/AVC規格は、そのスライスグループ内でラスタースキャン順が取られるマクロブロックからなるいくつかのスライスの作成を仮定している。たとえば、図5aにおいて、最大スライスサイズが16個のマクロブロックであると想定すると、スライスグループP3は、図5bにおいてFMO3およびFMO4として表される、少なくとも2つのスライスからなる必要がある。この例では、データパーティショニングは、したがって先の例における8つのNALユニットの代わりに、図5bに示されるように、10のNALユニットを作成することになる。
これらのすべての図示された例は、限定的ではなく、これらの前述の例の組合せも含む他の状況が予想されてよいことが強調されなければならない。
先行技術に関して、そのようなパーティショニングは、視覚的な歪みを制限するために、より重要度の低いインター符号化マクロブロックの残余データを含むNALユニットを選択的に破棄すること、および/または、ソートする/分類するステップの間に、マクロブロックレベルにおいて最適なイントラ/インター符号化決定を維持することを可能にする。さらに、パーティションは、同じカテゴリのいくつかのマクロブロックに関連したいくつかのNALユニットからなるので、破棄可能なデータの量が、今ではフレーム単位で、調整されることができる。
実施形態は、H.264/AVCビデオ符号化規格を参照して説明されてきたが、この特定の規格で提案されたもの以外のタイプの符号化およびデータパーティショニングを使用する、他の実施形態が可能であることにさらに注目されたい。
このように説明された方法は、インター予測スライスにおいてイントラ符号化マクロブロックのある一定量をランダムに追加する(IMBR符号化オプション)ことから成り立つ先行技術の解決策に関連付けられた問題を解決する。所与の符号化ビットレートにおいて、IMBR値を増加させることは、実際にインター符号化マクロブロックの量を、およびそれにより(パーティションBに有利に)パーティションCのサイズを減少させる。ビットストリームが、パーティションCを取り除くことによって適応される場合、これは、(パーティションAデータに基づくインター予測の後で)欠落する残余情報の量を減少させる。さらに、インター予測によるエラーの伝播もまた、ビットストリームにおけるIフレームの周波数を増加させることによって、制限されることができる。しかしながら、この先行技術の手順は、以下の基準に関して、非効率的であることが判明した:パーティションCロスの視覚的影響、レート歪みパフォーマンス、および破棄可能なデータの量の適応性。これは、以下より理解されることができる。インター符号化ではなく、イントラ符号化されることが強制されるマクロブロックの選択が、各マクロブロックの視覚的な重要度に関わらず、ランダムに行われる。(IMBRオプションまたは追加のIフレームを介して)追加のイントラ符号化マクロブロックの導入を強制することは、符号器が、そのレート歪みパフォーマンスを最適化する符号化を選択するのを妨げる。固定化された符号化ビットレートでは、追加のイントラ符号化マクロブロックの数を増加させることは、したがって、ビデオ品質に対するマイナスの影響を有する。追加のイントラ符号化マクロブロックの導入は、パーティション(実質的にBおよびC)のサイズを制御するのを可能にする。これは、パーティションCロスの影響を制限するために、パーティションCのサイズがアプリケーションによって要求されるよりも大きいときに、有効である。トラフィック適応のケースでは、パーティションCは、実際に輻輳の場合に要求されるビットレートセービングよりも大きくなることがある。しかしながら、IMBR方法は、パーティションCのサイズを静的に固定し、その一方で、実際には輻輳の激しさは経時的に変化することがあり、したがって、理想的には、破棄されるべきデータの量を適応可能に設定することを必要とする。
これらの問題を解決するために、本発明による方法は、このように明快な解決策をもたらした。さらに代替的な解決策は、イントラ符号化されることになる追加のマクロブロックの選択を、符号器において最適化することによって、IMBRアプローチを改良することから成り立つことができる。ランダムな選択の代わりに、そのロスが復号化されるビデオの品質に対して最も強い影響を有することになるマクロブロックか、または、最も大きなインター予測残余を有することになるマクロブロックかのいずれかを優先して、イントラ符号化するように選択することができる。この2番目のオプションは、インター予測を介して最も非効率に符号化されるマクロブロックをイントラ符号化するように強制するので、符号化効率にかかる負担を低下させる。
これは、異なったアルゴリズムにつながることがあるが、実際には、両方の選択オプションが、類似したマクロブロックの選択に至ることになる。というのは、大きなインター予測残余を有するマクロブロックは、典型的に、パーティションCロスの場合の視覚的な歪みの重大な一因となるマクロブロックであるからである。
2番目のオプションの考え得る実装は、たとえば、マクロブロックの符号化モードを選択するときに、符号器が、マクロブロックのイントラ予測の後の残余データのサイズであるIntraResを、インター予測の後の残余データのサイズであるInterResと比較することから成り立ってよい。マクロブロックは次いで、IntraRes<InterResの場合にイントラ符号化され、そうでない場合はインター符号化される。イントラ符号化マクロブロックの量を増加させたい場合は、Intrares<β.Interres(βは1よりも大きな数である)の場合にマクロブロックをイントラ符号化するように、上記の制約をわずかに緩めて、スライス上で追加のイントラ符号化マクロブロックの所望の数を取得するように選択されることができる。
ここまでは、方法のみが説明されてきた。本発明は、この方法を実装するための符号器にもまた関する。いくつかの実施形態では、送信中の輻輳の場合に、符号器それ自体がNALユニットパーティションの一部を破棄するように構成されている。他の実施形態では、符号器は、すべてのNALユニットパーティションを送信するように構成されており、それは、この方法の一部、とりわけ本発明に従った符号器から受信されるような特定のNALユニットパーティションを破棄するステップを実装することができる、ルータなどのネットワークの中間ノード、DSLアクセスマルチプレクサ、無線コンセントレータデバイス、または無線ネットワークの中間ノードである。他の実施形態では、受信機さえもNALユニットパーティションのこの部分を破棄するように構成されることができる。当業者であれば、本明細書の先のパラグラフにおいて説明されたような、本方法の特定のステップを実現するための考え得る実装について精通している。したがって、そのような符号器、送信機、中間ノード、受信機、および本方法に従って符号化されたデータを復号化するための復号器の特定の実施形態がこれ以上説明されることはないが、これらの実施形態は、当業者によってよく知られているように、ハードウェアおよび/またはソフトウェアのいずれかにおいて、プロセッサ手段によって、コンピュータプログラムなどとして、実装されることができる。
本発明の原理が、特定の装置に関連して上記で説明されてきたが、この説明は、例としてのみなされ、添付の特許請求の範囲において定義される本発明の範囲を限定するものではないことが、明確に理解されるべきである。