(57)【特許請求の範囲】
【請求項１】
ディスプレイリンクビデオ圧縮における複数のコーディングモードを介してビデオデータをコーディングするための方法であって、
前記ビデオデータのスライスをコーディングするステップを含み、前記スライスが、前記スライスの第1のラインおよび前記スライスの複数の非第1のライン中に複数のピクセルを含み、前記スライスの前記コーディングが、
前記スライスの前記第1のラインの現在ピクセルを、空間予測モードで予測子として前記第1のラインの先行ピクセルを使用してコーディングするステップと、
前記スライスの非第1のラインの別のピクセルを、前記空間予測モード以外のコーディングモードでコーディングするステップと
を含み、
前記ビデオデータの前記スライスは、複数のブロックにさらに編成され、各ブロックは、ピクセルの少なくとも2つの行を含む2次元(2D)ブロックであり、前記スライスの各行は、複数のブロックを含み、前記現在ピクセルおよび前記先行ピクセルは、同じ行にあり、
前記ビデオデータの前記スライスを前記コーディングするステップは、対応する第1および第2のインターリーブされたコーディング経路を介して、前記第1のラインの各行をコーディングするステップであって、前記第1および第2のインターリーブされたコーディング経路における前記ピクセルの各々が、対応する前記インターリーブされたコーディング経路の外のピクセルから独立してコーディングされる、ステップをさらに含む、方法。
【請求項２】
前記第1のラインの前記現在ピクセルおよび前記第1のラインの前記先行ピクセルは、介在するピクセルによって分離される、請求項1に記載の方法。
【請求項３】
予測なしに前記スライスの前記第1のラインの第1のピクセルをコーディングするステップをさらに含む、請求項1に記載の方法。
【請求項４】
予測なしに前記スライスの前記第1のラインの第2のピクセルをコーディングするステップであって、前記第1のラインの前記現在ピクセルおよび前記第1のラインの前記先行ピクセルは、介在するピクセルによって分離される、ステップをさらに含み、前記第1のインターリーブされたコーディング経路が、前記第1のピクセルで始まり、前記第2のインターリーブされたコーディング経路が、前記第2のピクセルで始まる、請求項3に記載の方法。
【請求項５】
前記スライスの前記第1のラインの第2のピクセルを、前記空間予測モードで予測子として前記第1のラインの前記第1のピクセルを使用してコーディングするステップであって、前記第1のラインの前記現在ピクセルおよび前記第1のラインの前記先行ピクセルは、介在するピクセルによって分離される、ステップをさらに含み、前記第1のインターリーブされたコーディング経路が、前記第1のピクセルで始まり、前記第2のインターリーブされたコーディング経路が、前記第2のピクセルで始まる、請求項3に記載の方法。
【請求項６】
前記ビデオデータを前記コーディングするステップに対するレート制約があるかどうかを判断するステップと、
前記レート制約が存在するとの前記判断に応答して、前記第1のピクセルのビット深度を切り捨てるステップと
をさらに含む、請求項3に記載の方法。
【請求項７】
前記第1のラインの第1のピクセルを、前記空間予測モードでデフォルト予測子を使用してコーディングするステップをさらに含み、前記デフォルト予測子は、前記ビデオデータのビット深度に依存する、請求項1に記載の方法。
【請求項８】
現在ラインの現在ピクセルを、中央値適応予測(MAP)モードで予測子として前記現在ラインの先行ピクセルと先行ラインの第1および第2のピクセルとを使用してコーディングするステップをさらに含み、前記現在ラインの前記現在ピクセルおよび前記現在ラインの前記先行ピクセルが、第1の介在するピクセルによって分離され、前記先行ラインの前記第1および第2のピクセルが、第2の介在するピクセルによって分離される、請求項1に記載の方法。
【請求項９】
装置であって、
ビデオデータのスライスをコーディングするための手段であって、前記スライスが、前記スライスの第1のラインおよび前記スライスの複数の非第1のライン中に複数のピクセルを含む、手段と、
前記スライスの前記第1のラインの現在ピクセルを、空間予測モードで予測子として前記第1のラインの先行ピクセルを使用してコーディングするための手段と、
前記スライスの非第1のラインの別のピクセルを、前記空間予測モード以外のコーディングモードでコーディングするための手段と
を含み、
前記ビデオデータの前記スライスは、複数のブロックにさらに編成され、各ブロックは、ピクセルの少なくとも2つの行を含む2次元(2D)ブロックであり、前記スライスの各行は、複数のブロックを含み、前記現在ピクセルおよび前記先行ピクセルは、同じ行にあり、
前記装置は、対応する第1および第2のインターリーブされたコーディング経路を介して、前記第1のラインの各行をコーディングするための手段であって、前記第1および第2のインターリーブされたコーディング経路における前記ピクセルの各々が、対応する前記インターリーブされたコーディング経路の外のピクセルから独立してコーディングされる、手段をさらに含む、装置。
【請求項１０】
前記第1のラインの前記現在ピクセルおよび前記第1のラインの前記先行ピクセルは、介在するピクセルによって分離される、請求項9に記載の装置。
【請求項１１】
予測なしに前記スライスの前記第1のラインの第1のピクセルをコーディングするための手段をさらに含む、請求項9に記載の装置。
【請求項１２】
予測なしに前記スライスの前記第1のラインの第2のピクセルをコーディングするための手段であって、前記第1のラインの前記現在ピクセルおよび前記第1のラインの前記先行ピクセルは、介在するピクセルによって分離される、手段と、
前記第1のインターリーブされたコーディング経路が、前記第1のピクセルで始まり、前記第2のインターリーブされたコーディング経路が、前記第2のピクセルで始まる、請求項11に記載の装置。
【請求項１３】
前記スライスの前記第1のラインの第2のピクセルを、前記空間予測モードで予測子として前記第1のラインの前記第1のピクセルを使用してコーディングするための手段であって、前記第1のラインの前記現在ピクセルおよび前記第1のラインの前記先行ピクセルは、介在するピクセルによって分離される、手段と、
前記第1のインターリーブされたコーディング経路が、前記第1のピクセルで始まり、前記第2のインターリーブされたコーディング経路が、前記第2のピクセルで始まる、請求項11に記載の装置。
【請求項１４】
前記ビデオデータの前記コーディングに対するレート制約があるかどうかを判断するための手段と、
前記レート制約が存在するとの前記判断に応答して、前記第1のピクセルのビット深度を切り捨てるための手段と
をさらに含む、請求項11に記載の装置。
【請求項１５】
実行されると、コンピュータに、請求項1から8のいずれか一項に記載の方法を行わせるコードを含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ビデオコーディングおよび圧縮の分野に関し、詳細には、ディスプレイリンクビデオ圧縮など、ディスプレイリンクを介した送信のためのビデオ圧縮に関する。
【背景技術】
【０００２】
デジタルビデオ能力は、デジタルテレビジョン、携帯情報端末(PDA)、ラップトップコンピュータ、デスクトップモニタ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲のディスプレイに組み込まれ得る。ディスプレイリンクは、ディスプレイを適切なソースデバイスに接続するために使用される。ディスプレイリンクの帯域幅要件は、ディスプレイの解像度に比例し、したがって、高解像度ディスプレイは広帯域幅ディスプレイリンクを要する。いくつかのディスプレイリンクは、高解像度ディスプレイをサポートするための帯域幅を持たない。ビデオ圧縮は、高解像度ディスプレイにデジタルビデオを提供するためにより低い帯域幅のディスプレイリンクを使用すればよいように、帯域幅要件を削減するために使用され得る。
【０００３】
他には、ピクセルデータに対して画像圧縮を利用することを試みることが行われている。ただし、そのような方式は、視覚的に無損失ではないことがあり、または従来のディスプレイデバイスにおいて実装するのが難しく、コストがかかる場合がある。
【０００４】
ビデオエレクトロニクススタンダーズアソシエーション(VESA:Video Electronics Standards Association)が、ディスプレイリンクビデオ圧縮のための規格としてディスプレイストリーム圧縮(DSC)を開発した。DSCなどのディスプレイリンクビデオ圧縮技法は、特に、視覚的に無損失である(すなわち、圧縮がアクティブであることがユーザにわからないようなレベルの品質をピクチャが有する)ピクチャ品質を提供するべきである。ディスプレイリンクビデオ圧縮技法は、従来のハードウェアを用いてリアルタイムで実装するのが容易であり、コストがかからない方式も提供するべきである。
【発明の概要】
【課題を解決するための手段】
【０００５】
本開示のシステム、方法、およびデバイスは、いくつかの革新的態様をそれぞれ有し、それらの態様のいずれの1つも、本明細書で開示する望ましい属性を単独では担わない。
【０００６】
一態様では、ディスプレイリンクビデオ圧縮における複数のコーディングモードを介してビデオデータをコーディングするための方法は、ビデオデータのスライスをコーディングするステップを含み、スライスが、スライスの第1のラインおよびスライスの複数の非第1のラインに複数のピクセルを含み、スライスをコーディングするステップが、スライスの第1のラインの現在ピクセルを、空間予測モードで予測子として第1のラインの先行ピクセルを使用してコーディングするステップと、スライスの非第1のラインの別のピクセルを、空間予測モード以外のコーディングモードでコーディングするステップとを含む。
【０００７】
別の態様では、ディスプレイリンクビデオ圧縮における複数のコーディングモードを介してビデオデータをコーディングするためのデバイスは、ビデオデータを記憶するように構成されたメモリと、メモリと通信しているプロセッサとを備え、プロセッサは、ビデオデータのスライスをコーディングすることであって、スライスが、スライスの第1のラインおよびスライスの複数の非第1のラインに複数のピクセルを含む、コーディングすることと、スライスの第1のラインの現在ピクセルを、空間予測モードで予測子として第1のラインの先行ピクセルを使用してコーディングすることと、スライスの非第1のラインの別のピクセルを、空間予測モード以外のコーディングモードでコーディングすることとを行うように構成される。
【０００８】
別の態様では、装置は、ビデオデータのスライスをコーディングするための手段であって、スライスが、スライスの第1のラインおよびスライスの複数の非第1のラインに複数のピクセルを含む、手段と、スライスの第1のラインの現在ピクセルを、空間予測モードで予測子として第1のラインの先行ピクセルを使用してコーディングするための手段と、スライスの非第1のラインの別のピクセルを、空間予測モード以外のコーディングモードでコーディングするための手段とを含む。
【０００９】
別の態様では、非一時的コンピュータ可読記憶媒体は、実行されると、デバイスのプロセッサに、ビデオデータのスライスをコーディングすることであって、スライスが、スライスの第1のラインおよびスライスの複数の非第1のラインに複数のピクセルを含む、コーディングすることと、スライスの第1のラインの現在ピクセルを、空間予測モードで予測子として第1のラインの先行ピクセルを使用してコーディングすることと、スライスの非第1のラインの別のピクセルを、空間予測モード以外のコーディングモードでコーディングすることとを行わせる命令を記憶している。
【図面の簡単な説明】
【００１０】
【図１Ａ】本開示で説明する態様による技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図である。
【図１Ｂ】本開示で説明する態様による技法を実施し得る別の例示的なビデオ符号化および復号システムを示すブロック図である。
【図２Ａ】本開示で説明する態様による技法を実装し得るビデオエンコーダの例を示すブロック図である。
【図２Ｂ】本開示で説明する態様による技法を実装し得るビデオデコーダの例を示すブロック図である。
【図３】本開示で説明する態様によるスライスの第1のラインをコーディングする方法を示すブロック図である。
【図４】本開示で説明する態様によるスライスの第1のラインをコーディングする別の方法を示すブロック図である。
【図５】本開示で説明する態様によるブロックをコーディングする方法における現在ピクセルと予測子ピクセルとの間の空間関係を示すブロック図である。
【図６】本開示で説明する態様によるブロックをコーディングする方法における現在ピクセルと予測子ピクセルとの間の空間関係を示すブロック図である。
【図７】本開示で説明する態様によるブロックをコーディングする方法における現在ピクセルと予測子ピクセルとの間の空間関係を示すブロック図である。
【図８】本開示で説明する態様による例示的なグループ化戦略を示すブロック図である。
【図９】本開示で説明する態様によるスライスのラインをコーディングする方法を示すブロック図である。
【図１０】本開示で説明する態様によるスライスのラインをコーディングする別の方法を示すブロック図である。
【図１１】本開示の態様による空間予測モードコーディングのための方法を示すフローチャートである。
【発明を実施するための形態】
【００１１】
概して、本開示は、ディスプレイリンクビデオ圧縮において利用されるようなビデオ圧縮技法を改善する方法に関する。より具体的には、本開示は、マルチモードコーディング技法を使用するときに、スライスにおける第1のラインのコーディング効率を改善するためのシステムおよび方法に関する。
【００１２】
いくつかの実施形態は、DSC規格のコンテキストにおいて本明細書で説明されるが、本明細書で開示するシステムおよび方法は、任意の適切なビデオコーディング規格に適用可能であり得ることが当業者には諒解されよう。たとえば、本明細書で開示する実施形態は、国際電気通信連合(ITU)電気通信規格化部門(ITU-T)H.261、国際標準化機構/国際電気標準会議(ISO/IEC)Moving Picture Experts Group-1(MPEG 1)Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG 4 Visual、ITU-T H.264(ISO/IEC MPEG-4 AVCとしても知られる)、高効率ビデオコーディング(HEVC)という規格のうちの1つまたは複数、およびそのような規格の拡張に適用可能であり得る。また、本開示で説明する技法は、将来的に開発される規格の一部になり得る。言い換えれば、本開示で説明する技法は、以前開発されたビデオコーディング規格、現在開発中のビデオコーディング規格、および今後のビデオコーディング規格に適用可能であり得る。
【００１３】
DSC規格のための提案されている方法は、ビデオデータの各ブロックがエンコーダによって符号化され、同様に、デコーダによって復号され得るいくつかのコーディングモードを含む。いくつかの実装形態では、画像のピクセルは、複数の異なるコーディングモードを使用して(すなわち、マルチモードビデオコーディングを使用して)コーディングされ得る。しかしながら、画像のスライスをコーディングする際に使用されるモードのうちのいくつかは、スライスの第1のライン以外のスライスのラインに関して、よりよいパフォーマンスを有し得る。たとえば、いくつかのビデオコーディングモードは、コーディングされるべき現在ピクセルの上に空間的に位置する予測子を利用し得る。スライスの第1のラインは、スライスの第1のラインの上に空間的に位置する予測子にアクセスすることが可能ではない(すなわち、先行ラインは、スライスの第1のラインのコーディングに利用可能ではない)ので、これらのビデオコーディング技法は、スライスの第1のラインに関して、低下したコーディング品質を有し得る。
【００１４】
本開示では、空間予測モードを使用してスライスの第1のラインをコーディングする改善された方法について説明する。たとえば、スライスの第1のラインのピクセルが、予測子として第1のラインの先行ピクセルを使用してコーディングされ得る。言い換えれば、スライスの第1のラインにおけるコーディングされるべき現在ピクセルの前に位置する先行ピクセルが、現在ピクセルをコーディングするときに予測子として使用され得る。先行ピクセルは、コーディング順序で現在ピクセルの前に空間的に位置し得る。これは、スライスの第1のラインの上に位置する先行ラインへのアクセスなしに、スライスの第1のラインのコーディング品質を改善することができる。
【００１５】
ビデオコーディング規格
ビデオ画像、TV画像、静止画像またはビデオレコーダもしくはコンピュータによって生成された画像などのデジタル画像は、水平および垂直ライン中に配列されたピクセルまたはサンプルを含み得る。単一の画像中のピクセルの数は通常、数万である。各ピクセルは通常、ルミナンスおよびクロミナンス情報を含む。圧縮なしだと、画像エンコーダから画像デコーダへ伝えられるべき莫大な量の情報により、リアルタイムの画像送信が非現実的になる。送信されるべき情報の量を削減するために、JPEG、MPEGおよびH.263規格など、いくつかの異なる圧縮方法が開発されている。
【００１６】
ビデオコーディング規格は、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、ITU-T H.264(ISO/IEC MPEG-4 AVCとしても知られる)、およびHEVC(そのような規格の拡張を含む)を含む。
【００１７】
さらに、ビデオコーディング規格、すなわちDSCが、VESAによって開発されている。DSC規格は、ビデオを、ディスプレイリンクを介した送信用に圧縮することができるビデオ圧縮規格である。ディスプレイの解像度が増大すると、ディスプレイを駆動するのに求められるビデオデータの帯域幅が対応して増大する。いくつかのディスプレイリンクは、そのような解像度向けのディスプレイにビデオデータのすべてを送信するための帯域幅を持たない場合がある。したがって、DSC規格は、ディスプレイリンクを介した、相互動作可能な、視覚的に無損失な圧縮のための圧縮規格を規定する。
【００１８】
DSC規格は、H.264およびHEVCなど、他のビデオコーディング規格とは異なる。DSCは、フレーム内圧縮を含むが、フレーム間圧縮は含まず、これは、ビデオデータをコーディングする際に、DSC規格によって時間情報を使用することができないことを意味する。対照的に、他のビデオコーディング規格は、ビデオコーディング技法においてフレーム間圧縮を利用し得る。
【００１９】
ビデオコーディングシステム
新規のシステム、装置、および方法の様々な態様について、添付の図面を参照しながら以下にさらに十分に説明する。しかしながら、本開示は、多くの異なる形態で具現化され得るものであり、本開示の全体を通して示される任意の特定の構造または機能に限定されるものと解釈されるべきでない。むしろ、これらの態様は、本開示が、完全で完璧となるように、また当業者に本開示の範囲を十分に伝えるように提供される。本明細書の教示に基づいて、本開示の範囲は、本開示の他の態様とは無関係に実装されるにせよ、本開示の任意の他の態様と組み合わせて実装されるにせよ、本明細書で開示する新規のシステム、装置、および方法のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。たとえば、本明細書に記載の任意の数の態様を使用して、装置が実装され得るか、または方法が実施され得る。さらに、本開示の範囲は、本明細書に記載の本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能性、または構造および機能性を使用して実施されるそのような装置または方法をカバーするものとする。本明細書で開示する任意の態様は、特許請求の範囲の1つまたは複数の要素によって具現化され得ることを理解されたい。
【００２０】
特定の態様について本明細書で説明するが、これらの態様の数多くの変形および変更が本開示の範囲内に入る。好ましい態様のいくつかの利益および利点について述べるが、本開示の範囲は、特定の利益、用途、または目的に限定されるものではない。そうではなく、本開示の態様は、異なるワイヤレス技法、システム構成、ネットワーク、および送信プロトコルに広く適用可能であるものであり、それらのうちのいくつかが例として図および好ましい態様の以下の説明において示される。詳細な説明および図面は、限定的ではなく本開示の例示にすぎず、本開示の範囲は、添付の特許請求の範囲およびその均等物によって定義される。
【００２１】
添付の図面は、例を示す。添付の図面において参照番号によって示される要素は、以下の説明において同様の参照番号によって示される要素に対応する。本開示において、順序を示す言葉(たとえば、「第1の」、「第2の」、「第3の」など)で始まる名称を有する要素は、それらの要素が特定の順序を有することを必ずしも含意するわけではない。そうではなく、そのような順序を示す言葉は単に、同じまたは類似したタイプの異なる要素を指すために使用される。
【００２２】
図1Aは、本開示で説明する態様による技法を利用し得る例示的なビデオコーディングシステム10を示すブロック図である。本明細書で使用し、説明する「ビデオコーダ」または「コーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化およびビデオ復号を総称的に指す場合がある。ビデオエンコーダおよびビデオデコーダに加えて、本出願で説明する態様は、トランスコーダ(たとえば、ビットストリームを復号し、別のビットストリームを再符号化することができるデバイス)およびミドルボックス(たとえば、ビットストリームを修正し、変換し、かつ/またはさもなければ操作することができるデバイス)など、他の関連デバイスに拡張され得る。
【００２３】
図1Aに示すように、ビデオコーディングシステム10は、宛先デバイス14(すなわち、「ビデオコーディングデバイス14」または「コーディングデバイス14」)によって後で復号されるべき符号化ビデオデータを生成するソースデバイス12(すなわち、「ビデオコーディングデバイス12」または「コーディングデバイス12」)を含む。図1Aの例において、ソースデバイス12および宛先デバイス14は別個のデバイスを構成する。ただし、ソースデバイス12および宛先デバイス14は、図1Bの例に示すように、同じデバイスの上にあるか、またはその一部であってよいことに留意されたい。
【００２４】
図1Aを再度参照すると、ソースデバイス12および宛先デバイス14はそれぞれ、デスクトップコンピュータ、ノートブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイス(ビデオコーディングデバイスとも呼ばれる)のいずれかを含み得る。様々な実施形態において、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備されて(すなわち、ワイヤレス通信を介して通信するように構成されて)もよい。
【００２５】
ビデオコーディングシステム10のビデオコーディングデバイス12、14は、ワイヤレスワイドエリアネットワーク(WWAN)(たとえば、セルラー)および/またはワイヤレスローカルエリアネットワーク(WLAN)キャリアなどのワイヤレスネットワークおよび無線技術を介して通信するように構成され得る。「ネットワーク」および「システム」という用語は、多くの場合に互換的に使用される。ビデオコーディングデバイス12、14の各々は、ユーザ機器(UE)、ワイヤレスデバイス、端末、移動局、加入者ユニットなどであり得る。
【００２６】
WWANキャリアは、たとえば、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、周波数分割多元接続(FDMA)、直交FDMA(OFDMA)、シングルキャリアFDMA(SC-FDMA)および他のネットワークなどのワイヤレス通信ネットワークを含み得る。CDMAネットワークは、ユニバーサル地上無線アクセス(UTRA:Universal Terrestrial Radio Access)、CDMA2000などの無線技術を実装し得る。UTRAは、広帯域CDMA(WCDMA(登録商標))およびCDMAの他の変形態を含む。CDMA2000は、IS-2000規格、IS-95規格およびIS-856規格をカバーする。TDMAネットワークは、モバイル通信用グローバルシステム(GSM(登録商標))などの無線技術を実装し得る。OFDMAネットワークは、Evolved UTRA(E-UTRA)、Ultra Mobile Broadband(UMB)、IEEE802.11(Wi-Fi)、IEEE802.16(WiMAX)、IEEE802.20、Flash-OFDMAなどの無線技術を実装し得る。UTRAおよびE-UTRAは、ユニバーサルモバイルテレコミュニケーションシステム(UMTS)の一部である。3GPPロングタームエボリューション(LTE)およびLTE-Advanced(LTE-A)は、E-UTRAを使用するUMTSの新しいリリースである。UTRA、E-UTRA、UMTS、LTE、LTE-A、およびGSM(登録商標)は、「第3世代パートナーシッププロジェクト」(3GPP)という名称の組織からの文書に記載されている。CDMA2000およびUMBは、「第3世代パートナーシッププロジェクト2」(3GPP2)という名称の組織からの文書に記載されている。
【００２７】
ビデオコーディングシステム10のビデオコーディングデバイス12、14はまた、IEEE 802.11規格などの1つまたは複数の規格(たとえば、これらの修正である802.11a-1999(一般に「802.11a」と呼ばれる)、802.11b-1999(一般に「802.11b」と呼ばれる)、802.11g-2003(一般に「802.11g」と呼ばれる)などを含む)に従ってWLAN基地局を介して互いに通信することができる。
【００２８】
宛先デバイス14は、リンク16を介して、復号されるべき符号化ビデオデータを受信し得る。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを含み得る。図1Aの例では、リンク16は、ソースデバイス12がリアルタイムで宛先デバイス14に符号化ビデオデータを送信することを可能にする通信媒体を含み得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトル、または1つもしくは複数の物理的伝送線など、任意のワイヤレス通信媒体またはワイヤード通信媒体を含み得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットのようなグローバルネットワークなどの、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【００２９】
図1Aの例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。いくつかの場合には、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそのようなソースの組合せなどのソースを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、図1Bの例に示すように、いわゆる「カメラフォン」または「ビデオフォン」を形成し得る。しかしながら、本開示で説明する技法は、一般にビデオコーディングに適用可能であってもよく、ワイヤレス用途および/またはワイヤード用途に適用されてもよい。
【００３０】
キャプチャされた、事前にキャプチャされた、またはコンピュータによって生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に送信され得る。符号化ビデオデータは、さらに(または代替的に)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのために記憶デバイス(図示せず)上に記憶され得る。図1Aおよび図1Bに示すビデオエンコーダ20は、図2Aに示すビデオエンコーダ20または本明細書で説明する任意の他のビデオエンコーダを含み得る。
【００３１】
図1Aの例では、宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。いくつかの場合には、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を介して、かつ/または記憶デバイスから、符号化ビデオデータを受信し得る。リンク16を介して通信され、または記憶デバイス上に与えられた符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ30などのビデオデコーダが使用するための、ビデオエンコーダ20によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体上に記憶された、またはファイルサーバ上に記憶された符号化ビデオデータとともに含まれ得る。図1Aおよび図1Bに示すビデオデコーダ30は、図2Bに示すビデオデコーダ30または本明細書で説明する任意の他のビデオデコーダを含み得る。
【００３２】
ディスプレイデバイス32は、宛先デバイス14と一体化されてよく、またはその外部にあってよい。いくつかの例では、宛先デバイス14は、一体化されたディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。一般に、ディスプレイデバイス32は、復号ビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを含み得る。
【００３３】
関連態様において、図1Bは、例示的なビデオコーディングシステム10'を示し、ここで、ソースデバイス12および宛先デバイス14は、デバイス11の上にあるか、またはその一部である。デバイス11は、「スマート」フォンなどのような電話ハンドセットであってよい。デバイス11は、ソースデバイス12および宛先デバイス14と動作可能に通信するプロセッサ/コントローラデバイス13(随意で存在する)を含み得る。図1Bのビデオコーディングシステム10'、およびその構成要素は、場合によっては、図1Aのビデオコーディングシステム10、およびその構成要素と同様である。
【００３４】
図1Aおよび図1Bの各々は、ソースデバイス12がビデオソース/カメラ18、ビデオエンコーダ20、および出力インターフェース22を含み、宛先デバイス14が入力インターフェース28、ビデオデコーダ30、およびディスプレイデバイス32を含むことを示すが、ソースデバイス12および宛先デバイス14の各々は追加の要素を含んでよい。たとえば、ソースデバイス12および宛先デバイス14の各々は、ビデオソース/カメラ18、ビデオエンコーダ20、出力インターフェース22、入力インターフェース28、ビデオデコーダ30、およびディスプレイデバイス32を含む同様の構造を有してよい。したがって、いくつかの実装形態では、ソースデバイス12および宛先デバイス14は、互換的であり得る。
【００３５】
ビデオエンコーダ20およびビデオデコーダ30は、DSCなどのビデオ圧縮規格に従って動作し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG-4、Part 10、AVC、HEVCと呼ばれるITU-T H.264規格など、他のプロプライエタリ規格もしくは業界規格、またはそのような規格の拡張に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例には、MPEG-2およびITU-T H.263がある。
【００３６】
図1Aおよび図1Bの例には示されていないが、ビデオエンコーダ20およびビデオデコーダ30は各々、オーディオエンコーダおよびオーディオデコーダと一体化され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX-DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)のような他のプロトコルに準拠し得る。
【００３７】
ビデオエンコーダ20およびビデオデコーダ30は各々、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなど、様々な適切なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアに実装されるとき、デバイスは、ソフトウェアのための命令を適切な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実施するために1つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてもよく、これらのいずれもが、それぞれのデバイス内の複合エンコーダ/デコーダの一部として統合されてもよい。
【００３８】
ビデオコーディングプロセス
上で手短に言及したように、ビデオエンコーダ20はビデオデータを符号化する。ビデオデータは、1つまたは複数のピクチャを含み得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。いくつかの事例では、ピクチャはビデオ「フレーム」と呼ばれ得る。ビデオエンコーダ20がビデオデータ(たとえば、ビデオコーディングレイヤ(VCL)データおよび/または非VCLデータ)を符号化するとき、ビデオエンコーダ20はビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化表現を形成するビットのシーケンスを含み得る。ビットストリームは、コード化ピクチャおよび関連データを含み得る。コード化ピクチャは、ピクチャのコード化表現である。VCLデータは、コード化ピクチャデータ(すなわち、コード化ピクチャのサンプルに関連する情報)を含んでよく、非VCLデータは、1つまたは複数のコード化ピクチャに関連する制御情報(たとえば、パラメータセットおよび/または補足エンハンスメント情報)を含んでよい。
【００３９】
ビットストリームを生成するために、ビデオエンコーダ20は、ビデオデータ中の各ピクチャに対して符号化動作を実施し得る。ビデオエンコーダ20がピクチャに対して符号化動作を実施するとき、ビデオエンコーダ20は、一連のコード化ピクチャおよび関連データを生成し得る。関連データは、量子化パラメータ(QP)などのコーディングパラメータのセットを含み得る。コード化ピクチャを生成するために、ビデオエンコーダ20は、ピクチャを、等しいサイズのビデオブロックに区分し得る。ビデオブロックは、サンプルの2次元アレイであり得る。コーディングパラメータは、ビデオデータのすべてのブロックについてコーディングオプション(たとえば、コーディングモード)を定義し得る。コーディングオプションは、所望のレート歪み特性を達成するために選択されてよい。
【００４０】
いくつかの例では、ビデオエンコーダ20は、ピクチャを複数のスライスに区分し得る。スライスの各々は、画像またはフレーム中の領域の残りからの情報なしに独立して復号できる、画像(たとえば、フレーム)中の空間的に別個の領域を含み得る。各画像またはビデオフレームは、単一のスライス中で符号化されてもよく、各画像またはビデオフレームは、いくつかのスライス中で符号化されてもよい。DSCにおいて、各スライスを符号化するために割り振られるビットの数は、実質的に固定であり得る。ピクチャに対して符号化動作を実施することの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化動作を実施し得る。ビデオエンコーダ20がスライスに対して符号化動作を実施するとき、ビデオエンコーダ20は、スライスに関連する符号化データを生成し得る。スライスに関連する符号化データは、「コード化スライス」と呼ばれ得る。
【００４１】
DSCビデオエンコーダ
図2Aは、本開示で説明する態様による技法を実装し得るビデオエンコーダ20の例を示すブロック図である。ビデオエンコーダ20は、本開示の技法のうちの一部または全部を実施するように構成され得る。いくつかの例では、本開示で説明する技法は、ビデオエンコーダ20の様々な構成要素の間で共有され得る。いくつかの例では、追加的または代替的に、プロセッサ(図示せず)が本開示で説明する技法のうちの一部または全部を実施するように構成され得る。
【００４２】
説明のために、本開示は、DSCコーディングのコンテキストにおいてビデオエンコーダ20について説明する。ただし、本開示の技法は他のコーディング規格または方法に適用可能であり得る。
【００４３】
図2Aの例において、ビデオエンコーダ20は複数の機能構成要素を含む。ビデオエンコーダ20の機能構成要素は、色空間コンバータ105、バッファ110、平坦度検出器115、レートコントローラ120、予測器、量子化器、および再構築器構成要素125、ラインバッファ130、索引付き色履歴135、エントロピーエンコーダ140、サブストリームマルチプレクサ145、ならびにレートバッファ150を含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【００４４】
色空間コンバータ105は、入力色空間を、コーディング実装において使用される色空間にコンバートし得る。たとえば、例示的な一実施形態では、入力ビデオデータの色空間は、赤、緑、および青(RGB)色空間にあり、コーディングは、ルミナンスY、クロミナンス緑Cg、およびクロミナンス橙Co(YCgCo)色空間において実装される。色空間コンバージョンは、ビデオデータへのシフトおよび加算を含む方法によって実施され得る。他の色空間中の入力ビデオデータを処理することができ、他の色空間へのコンバージョンも実施できることに留意されたい。
【００４５】
関連態様において、ビデオエンコーダ20は、バッファ110、ラインバッファ130、および/またはレートバッファ150を含み得る。たとえば、バッファ110は、色空間コンバートされたビデオデータを、ビデオエンコーダ20の他の部分によるそれの使用に先立って、保持することができる。別の例では、ビデオデータはRGB色空間中に記憶されることがあり、色空間コンバートされたデータはより多くのビットを要し得るので、色空間コンバージョンは必要に応じて実施されればよい。
【００４６】
レートバッファ150は、レートコントローラ120に関連して以下でより詳細に説明する、ビデオエンコーダ20内のレート制御機構の一部として機能し得る。ビデオデータの各ブロックを符号化するのに費やされるビット(すなわち、符号化するために利用されるビット)は、ブロックの性質(たとえば、サイズ、ビット数など)に基づいてかなり大きく変わり得る。レートバッファ150は、圧縮ビデオ(すなわち、出力ビデオストリーム)におけるレート変動を平滑化することができる。いくつかの実施形態では、ワイヤード物理リンクを介したデータの送信中に固定ビットレートでバッファからビットが除去される固定ビットレート(CBR)バッファモデルが利用される。CBRバッファモデルにおいて、ビデオエンコーダ20が、ビットストリームにあまりにも多くのビットを追加した場合、レートバッファ150におけるビット数がレートバッファ150の容量を上回り、オーバーフローが生じ得る。一方、ビデオエンコーダ20は、レートバッファ150のアンダーフローを防止するために、十分なレートでビットを追加するべきである。
【００４７】
ビデオデコーダ側において、ビットは、ビデオデコーダ30のレートバッファ155(以下でさらに詳細に説明する図2Bを参照)に固定ビットレートで追加されてよく、ビデオデコーダ30は、各ブロックについて可変数のビットを除去してよい。適正な復号を確実にするために、ビデオデコーダ30のレートバッファ155は、圧縮ビットストリームの復号中にアンダーフローもオーバーフローもするべきでない。
【００４８】
いくつかの実施形態では、バッファフルネス(BF)は、バッファ中に現在記憶されているビットの数を表す可変BufferCurrentSizeと、レートバッファ150のサイズ(すなわち、容量)を表す可変BufferMaxSize、すなわち、レートバッファ150中に記憶することができるビットの最大総数とに基づいて定義され得る。バッファの「フルネス」(バッファフルネス(BF)とも呼ばれる)は、下の式1に示すように計算され得る。BFは、特定の時点にビットの記憶に使用されているバッファの容量のパーセンテージを表す。
BF=((BufferCurrentSize*100)/BufferMaxSize)(式1)
【００４９】
平坦度検出器115は、ビデオデータ中の複雑(すなわち、非平坦)エリアから、ビデオデータ中の平坦(すなわち、単純または均一)エリアへの変更を検出し得る。「複雑」および「平坦」という用語は、本明細書において、概して、ビデオエンコーダ20がビデオデータのそれぞれの領域を符号化することの難しさを指すために使用される。したがって、本明細書で使用される「複雑」という用語は概して、ビデオデータの領域を、ビデオエンコーダ20が符号化するのが複雑なものとして記述し、たとえば、テクスチャ化ビデオデータ、高い空間周波数、および/または符号化するのが複雑な他の特徴を含み得る。本明細書で使用される「平坦」という用語は概して、ビデオデータの領域を、ビデオエンコーダ20が符号化するのが簡単なものとして記述し、たとえば、ビデオデータ中の平滑勾配、低い空間周波数、および/または符号化するのが簡単な他の特徴を含み得る。複雑領域と平坦領域との間の遷移は、ビデオエンコーダ20によって、符号化ビデオデータにおける量子化乱れを削減するために使用され得る。具体的には、複雑領域から平坦領域への遷移が識別されると、レートコントローラ120ならびに予測器、量子化器、および再構築器構成要素125がそのような量子化乱れを削減することができる。
【００５０】
レートコントローラ120は、コーディングパラメータのセット、たとえば、QPを決定する。QPは、レートバッファ150がオーバーフローもアンダーフローもしないことを確実にするターゲットビットレートに対するピクチャ品質を最大限にするために、レートバッファ150のバッファフルネスおよびビデオデータの画像活動度に基づいて、レートコントローラ120によって調節され得る。レートコントローラ120は、最適レート歪み特性を達成するために、ビデオデータの各ブロック向けの特定のコーディングオプション(たとえば、特定のモード)も選択する。レートコントローラ120は、レートコントローラ120がビットレート制約を満足させるように、すなわち、全体的な実際のコーディングレートがターゲットビットレート内に収まるように、再構築画像の歪みを最小限にする。
【００５１】
予測器、量子化器、および再構築器構成要素125は、ビデオエンコーダ20の少なくとも3つの符号化動作を実施することができる。予測器、量子化器、および再構築器構成要素125は、いくつかの異なるモードで予測を実施することができる。1つの例示的な予測モードが、中央値適応予測の修正バージョンである。中央値適応予測は、無損失JPEG規格(JPEG-LS)によって実施され得る。予測器、量子化器、および再構築器構成要素125によって実施され得る中央値適応予測の修正バージョンは、3つの連続するサンプル値の並列予測を可能にし得る。別の例示的な予測モードはブロック予測である。ブロック予測では、サンプルは、ライン中の上または同じライン中の左にある以前再構築されたピクセルから予測される。いくつかの実装形態では、ビデオエンコーダ20およびビデオデコーダ30は両方とも、再構築ピクセルに対して同一の探索を実施して、ブロック予測の使用を決定する場合があり、したがって、どのビットも、ブロック予測モードで送られる必要はない。他の実施形態では、ビデオエンコーダ20は、ビデオデコーダ30が別個の探索を実施する必要がないように、探索を実施し、ビットストリーム中のブロック予測ベクトルをシグナリングすることができる。成分範囲の中間点を使ってサンプルが予測される中間点予測モードも実装されてよい。中間点予測モードは、ワーストケースサンプルにおいてさえも圧縮ビデオに求められるビットの数のバウンディングを可能にし得る。
【００５２】
予測器、量子化器、および再構築器構成要素125は、量子化も実施する。たとえば、量子化は、シフタを使って実装され得る2のべき乗量子化器を介して実施され得る。2のべき乗量子化器の代わりに、他の量子化技法が実装されてもよいことに留意されたい。予測器、量子化器、および再構築器構成要素125によって実施される量子化は、レートコントローラ120によって決定されるQPに基づき得る。最後に、予測器、量子化器、および再構築器構成要素125は、逆量子化残差を予測値に加算すること、および結果がサンプル値の有効範囲の外にならないことを確実にすることを含む再構築も実施する。
【００５３】
予測器、量子化器、および再構築器構成要素125によって実施される予測、量子化、および再構築のための上記の例示的な手法は例示にすぎないこと、ならびに他の手法が実装されてよいことに留意されたい。予測器、量子化器、および再構築器構成要素125は、予測、量子化、および/または再構築を実施するための下位構成要素を含み得ることにも留意されたい。予測、量子化、および/または再構築は、予測器、量子化器、および再構築器構成要素125の代わりに、いくつかの別個のエンコーダ構成要素によって実施されてよいことにさらに留意されたい。
【００５４】
ラインバッファ130は、予測器、量子化器、および再構築器構成要素125ならびに索引付き色履歴135が、バッファリングされたビデオデータを使用することができるように、予測器、量子化器、および再構築器構成要素125からの出力を保持する。索引付き色履歴135は、最近使用されたピクセル値を記憶する。これらの最近使用されたピクセル値は、専用シンタックスを介して、ビデオエンコーダ20によって直接参照され得る。
【００５５】
エントロピーエンコーダ140は、予測器、量子化器、および再構築器構成要素125から受信された予測残差ならびに任意の他のデータ(たとえば、予測器、量子化器、および再構築器構成要素125によって識別された索引)を、索引付き色履歴135と、平坦度検出器115によって識別された平坦度遷移とに基づいて符号化する。いくつかの例では、エントロピーエンコーダ140は、サブストリームエンコーダごとに、1クロックあたり3つのサンプルを符号化することができる。サブストリームマルチプレクサ145は、ヘッダなしパケット多重化方式に基づいてビットストリームを多重化することができる。こうすることにより、ビデオデコーダ30は、3つのエントロピーデコーダを並行して稼働させることができ、1クロックあたり3つのピクセルの復号を容易にする。サブストリームマルチプレクサ145は、ビデオデコーダ30によってパケットが効率的に復号され得るように、パケット順序を最適化することができる。1クロックあたり2のべき乗ピクセル(たとえば、2ピクセル/クロックまたは4ピクセル/クロック)の復号を容易にし得る、エントロピーコーディングのための異なる手法が実装されてよいことに留意されたい。
【００５６】
DSCビデオデコーダ
図2Bは、本開示で説明する態様による技法を実装し得るビデオデコーダ30の例を示すブロック図である。ビデオデコーダ30は、本開示の技法のうちの一部または全部を実施するように構成され得る。いくつかの例では、本開示で説明する技法は、ビデオデコーダ30の様々な構成要素間で共有され得る。いくつかの例では、追加的または代替的に、プロセッサ(図示せず)が本開示で説明する技法のうちの一部または全部を実施するように構成され得る。
【００５７】
説明のために、本開示は、DSCコーディングのコンテキストにおいてビデオデコーダ30について説明する。ただし、本開示の技法は他のコーディング規格または方法に適用可能であり得る。
【００５８】
図2Bの例において、ビデオデコーダ30は複数の機能構成要素を含む。ビデオデコーダ30の機能構成要素は、レートバッファ155、サブストリームデマルチプレクサ160、エントロピーデコーダ165、レートコントローラ170、予測器、量子化器、および再構築器構成要素175、索引付き色履歴180、ラインバッファ185、ならびに色空間コンバータ190を含む。ビデオデコーダ30の図示の構成要素は、図2Aのビデオエンコーダ20に関連して上述した対応する構成要素に類似している。したがって、ビデオデコーダ30の構成要素の各々は、上述したビデオエンコーダ20の対応する構成要素と同様に動作し得る。
【００５９】
DSCにおけるスライス
上述したように、スライスは概して、画像またはフレーム中の領域の残りからの情報を使用せずに独立して復号できる、画像またはフレーム中の空間的に別個の領域を指す。各画像またはビデオフレームは、単一のスライス中で符号化されてもよく、各画像またはビデオフレームは、いくつかのスライス中で符号化されてもよい。DSCにおいて、各スライスを符号化するために割り振られるビットの数は、実質的に固定であり得る。
【００６０】
本開示の態様によれば、画像のコーディングは、ブロックベースであってよく、異なるタイプのコンテンツを圧縮することをそれぞれ目指した、多数のコーディングモードを含み得る。モード選択は、モードのレートと歪みの両方を考慮することによって各ブロックのために適切なモードを選択することを目指したレート制御機能(すなわち、レートコントローラ120またはレートコントローラ170)によって処理され得る。レート制御機能は、仮想参照デコーダ(HRD:hypothetical reference decoder)バッファモデル(すなわち、レートバッファ150またはレートバッファ155)によってサポートされ得る。一例では、HRDバッファは決して、アンダーフローの(たとえば、バッファにおいてゼロビットよりも少ない)状態にも、オーバーフローの(たとえば、バッファサイズが、設定された最大サイズを超えて増大した)状態にもない。
【００６１】
スライスベースのビデオコーデックの場合、スライスの非第1のライン(すなわち、第1のライン以外のライン)と比較して、スライスの第1のラインにおけるコンテンツを圧縮することによる難題がある。これは、スライスの非第1のラインの上の再構築ラインにおける相関性の高い予測子を非第1のラインが活用することができるのに対し、所与のスライスの第1のラインの上のスライスの再構築ラインが利用不可能であることに起因して、第1のラインはそのように活用することができないためである。したがって、水平予測子を活用するコーディングモードが、スライスの第1のラインにおけるブロックにとって望ましいものであり得る。このモードは、デルタパルスコード変調(DPCM)モードのより大きいセットの変形態であり得、ハードウェアにおいて効率的に実装されるように合わせられ得る。さらに、所与のスライスの第1のラインのブロックにおけるピクセルの第1のセットのためにいかなる予測子も使用しない変形態について説明し得る。2つの技法の間のトレードオフは、ハードウェアの複雑性/スループットと圧縮レート/パフォーマンスとの対比である。
【００６２】
空間予測
DSCなどのコーディング技法のための既存の手法による上記難題を克服するために、本開示は、以下で改善について説明する。本開示では、以下で説明する技法および手法は、単独で、または任意の組合せで使用され得る。
【００６３】
本開示の1つまたは複数の態様によれば、たとえば、グラフィックスコンテンツであり得るビデオデータのコーディングのための空間予測モード/技法が提供される。関連態様では、高レベルのパフォーマンスを維持する一方で、ハードウェアの複雑性を最小限にすることができる。
【００６４】
図3は、本開示で説明する態様によるスライスの第1のラインをコーディングする方法を示すブロック図である。図4は、本開示で説明する態様によるスライスの第1のラインをコーディングする別の方法を示すブロック図である。図3は、先行ブロック205および現在ブロック207を含む第1のライン203を含むスライスの一部分を示す。先行ブロック205は、ピクセルX-2およびX-1を含む複数のピクセルを含む。現在ブロック207は、複数のピクセルX0からXN-1を含み、ブロックの各々がN個のピクセルを含む。図4は、先行ブロック215および現在ブロック217を含む第1のライン213を含むスライスの一部分を示す。図4の実装形態では、ブロック215および217は、2次元(2D)ブロックである。
【００６５】
現在ブロック207の現在ピクセルX0は、第2の左近傍ピクセル、すなわち、先行ブロック205のピクセルX-2に基づいて予測され得る。これは、第1のライン203の任意のピクセルに対して一般化でき、たとえば、現在ピクセルXiは、現在ピクセルXiに対する第2の左近傍である、先行ピクセルXi-2から予測され得る。第2の左近傍からの現在ピクセルXiの予測は、2つのコーディング経路を並行して実行すること(偶数ピクセル上の1つの経路および奇数ピクセル上の別の経路)を可能にすることに留意されたい。これは、ハードウェア実装における臨界経路を劇的に減らす。この予測方法は、本明細書では「インターリーブされた予測」として示される。
【００６６】
先行再構築ブロックに対する依存を減らすために、ブロックの初めの1つまたは複数のピクセルが、(予測なしに)パルスコード変調(PCM)を使用して符号化され得ることにさらに留意されたい。
【００６７】
本明細書で開示する技法は、ブロックサイズが1次元(1D)であるか、それとも2Dであるかに関係なく、任意のブロックベースのコーデックに使用されてよく、さらに、より高い次元のブロック(たとえば、3Dブロック)に適用可能であり得る。本明細書で開示する技法はまた、任意のタイプのDPCM方法とともに使用され得る。たとえば、開示する技法は、標準的DPCM方式または中央値適応予測子(MAP:Median Adaptive Predictor)方式とともに使用され得る。
【００６８】
1D空間予測
空間予測モードのための例示的な予測経路が図3および図4に示されている。前に説明したように、現在ブロック207または217における各ピクセルは、それの第2の左近傍ピクセルから予測され得る。いくつかの実装形態では、先行近傍が現在スライスの外にあるとき、デフォルト予測子が使用されてよく、デフォルト予測子は、たとえば、現在ピクセル(すなわち、現在コーディングされているピクセル)のダイナミックレンジの半分に等しくてよい。所与のビデオフレームにおけるピクセルの各々のダイナミックレンジは、ビデオフレーム全体で共通であり得る。この例では、8ビット/成分を有するRGBコンテンツ(RGB888コンテンツ)の場合、デフォルト値は、R、GおよびBに対して128となる。Yに対して8ビット、Co/Cgに対して9ビットを有するYCoCgコンテンツの場合、予測子は、Yに対する128のデフォルト値と、CoおよびCgに対する0のデフォルト値とを有することになる。これらの値は、より高いビット深度のソースコンテンツの場合に相応にスケーリングされ得る。たとえば、ソースがRGB10/10/10である場合、512のデフォルト値がR/G/Bに使用され得る。予測ループは、次のように計算され得る。
【００６９】
【数１】
0006622791.tif 000002
【００７０】
ここで、量子化空間残差係数は、aiによって与えられ、量子化および逆量子化は、それぞれQ(・)およびQ-1(・)によって与えられ、xiの再構築ピクセルは、
【００７１】
【数２】
0006622791.tif 000003
【００７２】
として示され、予測は、p(・)によって与えられる。図3および図4に示すように、ピクセルx-2およびx-1は、先行再構築ブロック205または215からのものである。予測は、次のように以下の2つのピクセルに対して進行する。
【００７３】
【数３】
0006622791.tif 000004
【００７４】
同様の手法が、現在ブロックにおける残存ピクセルに使用され得る。
【００７５】
図4の実装形態の場合のように、現在ブロックが複数のラインを含む(たとえば、2×8ブロックサイズが利用される)場合、並列性がさらに増大し得る。インターリーブされた予測は、各ブロック215および217のラインまたは行ごとに2つの並列コーディング経路を可能にし、また、ブロック215および217の複数のラインは、独立して処理され得る。したがって、2×8ブロックサイズの場合、合計4つのコーディング並列経路が活用され得る。上記は、2つのラインを含むものとして、2×8ブロック215および217の各々について説明しているが、本明細書で使用する「第1のライン」という用語は、一般に、スライスにおけるブロックの第1の独立してコーディングされるラインを指す。したがって、図4に示すスライスの第1のラインは、ブロック215および217が2Dであっても、これらのブロック215および217におけるピクセルのすべてを含み得る。たとえば、図4におけるサンプルx0,0、x1,0、x0,1、x1,1は、並行して予測/量子化/再構築され得る。
P(x0,0)=-2,0
P(x1,0)=-1,0
P(x0,1)=-2,1
P(x1,1)=-1,1
【００７６】
MAP空間予測
図5〜図7は、本開示で説明する態様によるブロックをコーディングするいくつかの方法における現在ピクセルと予測子ピクセルとの間の空間関係を示すブロック図である。特に、図5〜図7は、2D MAP空間予測のための予測経路を示す。図5〜図7では、図示のピクセルは、先行ライン221、231、または241、現在ライン223、233、または243、現在ライン223、233、または243の先行ブロック225、235、または245、および現在ライン223、233、または243の現在ブロック227、237、または247を含む。先行ライン221、231、または241は、ピクセルAからFを含み、先行ブロック225、235、または245は、ピクセルX-2,0、X-1,0、X-2,1、およびX-1,1を含む。図5〜図7では、図示のブロックおよび/またはピクセルの同様のレイアウトを示すために、同様の参照番号が使用されている。
【００７７】
図5は、完全なMAP実装形態において使用され得る予測子ピクセルのセットを示す。図示の予測子ピクセルB、C、およびX-1,0は、現在ピクセルX0,0に対する最も近い空間近傍であり、したがって、現在ピクセルX0,0と密接に相関している最も高い可能性を有し得る。図5は、ブロック内のすべてのピクセルのための1つの符号化経路を有する、図示の実装形態のうちで最も低いスループットを有する。2つの並列手法、すなわち、DPCMに使用され得る予測子ピクセルのセットが、図6および図7に示されており、これらは、図5の実装形態のスループットを、それぞれ2倍および4倍にする。たとえば、図6の予測子ピクセルのセットは、2つのコーディング経路の間に重複する依存性がないことがあるので、2つのコーディング経路を並行して実行することを可能にするように選択され得る。同様に、図7は、4つのコーディング経路が並行して実行され得る実装形態を示す。たとえば、図7の実装形態では、行ごとの2つの並列経路は、独立して処理されてよく、経路の各々が、重複する依存性を含まない。これは、ワーストケース臨界経路が減ることになり、ハードウェア実装形態の複雑性が低下するので、ハードウェアにとって有益である。
【００７８】
図5の実装形態の予測ループは、次のように計算され得る。
【００７９】
【数４】
0006622791.tif 000005
【００８０】
ここで、量子化空間残差係数は、ai,jによって与えられ、量子化および逆量子化は、それぞれQ(・)およびQ-1(・)によって与えられ、xi,jの再構築ピクセルは、
【００８１】
【数５】
0006622791.tif 000006
【００８２】
として示され、予測は、p(・)によって与えられる。図5に示すように、ピクセルx-1は、先行再構築ブロック225からのものであり、ピクセルBおよびCは、先行ライン221からのものである。さらに、MED(・)は、関数への入力に対して中央値を戻す中央値関数である。
【００８３】
図6の実装形態の予測ループは、次のように計算され得、関数および値が上で定義されている。
【００８４】
【数６】
0006622791.tif 000007
【００８５】
同様に、図7の実装形態の予測ループは、次のように計算され得、関数および値が上で定義されている。
【００８６】
【数７】
0006622791.tif 000008
【００８７】
量子化器の選択は、概してコーデックの設計基準に依存し得る。ただし、任意の適切な量子化器が利用されてよい。たとえば、低コストのハードウェア設計の場合、単純な量子化器が次のように使用され得る。
【００８８】
【数８】
0006622791.tif 000009
【００８９】
量子化残差aiがブロック全体に対して計算されると、量子化残差aiは、デコーダに送信される前にエントロピーコーディングされ得る。
【００９０】
図8は、本開示で説明する態様による例示的なグループ化戦略を示すブロック図である。使用されるエントロピーコーダのタイプに応じて、量子化係数のためのグループ化戦略は、一様であるか、図8に示すグループ化戦略に従うかのいずれかであり得ることに留意されたい。図8は、複数の量子化残差a0からa15を含み、これらは複数のグループ、グループ1からグループ4にグループ化される。図8では、量子化残差a0からa15は、4つのグループ、すなわち、量子化残差a0およびa1を含むグループ1、量子化残差a2、a3およびa4を含むグループ2、量子化残差a5からa9を含むグループ3、ならびに量子化残差a10からa15を含むグループ4にグループ化され得る。
【００９１】
別の手法では、単純量子化の代わりに、2のべき乗ではない量子化器が使用され得る。たとえば、HEVC型の量子化器が使用されてよく、これは、さらなる複雑性がコーダの予算の範囲内にある限り、パフォーマンスを改善する。
【００９２】
上述の技法に対するまた別の手法では、たとえば、固定長コーディングまたは辞書を使用する可変長符号(VLC)コーディングなどのような、何らかの他の方法を使用して量子化空間残差がシグナリングされ得る。VLCコーディングが使用される場合、辞書は、たとえば、コーディングタイプの予想される統計に基づいてトレーニングされ得る。
【００９３】
図9は、本開示で説明する態様によるスライスのラインをコーディングする方法を示すブロック図である。図10は、本開示で説明する態様によるスライスのラインをコーディングする別の方法を示すブロック図である。いくつかの実装形態では、図9および図10の方法は、スライスにおける第1のラインに適用され得る。特に、図9および図10は、図3の方法にそれぞれ対応する実装形態を示す技法である。したがって、同じ参照番号は、前に示したのと同じ要素を指定する。具体的には、図9および図10の各々は、先行ブロック205および現在ブロック207を含む第1のライン203を含むスライスの一部分を示す。
【００９４】
図9および図10に示す手法では、現在ブロック207または217における最初のn個のピクセルは、先行再構築ブロック205または215から予測されるのではなく、ビットストリームにおいて明示的に符号化され得る。図9はn=2の場合を示し、図10はn=1の場合を示す。この手法の利点は、先行再構築データからの現在ブロックの完全な独立である。この手法を用いた場合、ブロックごとのより高いビットレートが予想され得る。この手法の変更形態では、ビットプレーンのサブセットが除去されて、最初のn個のピクセルが符号化され得る。たとえば、シナリオがレート制約されている場合、PCMピクセルは、符号化する前に下位ビット深度に切り捨てられ得る。
【００９５】
本明細書で開示する空間予測モードは、任意の色空間において実施され得る。たとえば、このタイプのフレーム圧縮にRGBまたはYCoCgが使用され得る。予測子が現在ブロックと同じ色空間を使用することを確実にすることが望まれ得る。たとえば、現在ブロックがYCoCg空間において処理されているが、再構築ピクセルがRGBに記憶されている場合、再構築ピクセルの色空間コンバージョンが実施されるべきである。
【００９６】
本開示の態様による空間予測モードのパフォーマンスは、それなしではコーディングするのが難しいコンテンツを調べることによって示され得る。一例では、画像コンテンツは、提案されているモードを用いて、また用いずにコーディングされ得る。これらの例は、固定レート4:1圧縮を使用し得る。画像品質についての共通の客観的メトリックであるピーク信号対雑音比(PSNR)を使用して、客観的品質が測定される。
【００９７】
提案されているコーデックのレート制御機構は、レートと歪みとの間のトレードオフに基づいて、各ブロック用の最良コーディングモードを選択するように設計され得る。
【００９８】
特に、スライスの第1のラインにおけるコンテンツの場合、提案されている空間予測モードは、コストD+λ・Rに関して低コストのコーディングオプションを提供する。ここで、パラメータRは、現在ブロックに関するエンコーダ20とデコーダ30との間で送信されたビットの総数であり得る、現在ブロックのビットレートを指し、パラメータDは、元のブロックと再構築ブロックとの間の差であり得る、現在ブロックの歪みを指す。パラメータDは、いくつかの異なる方法で、たとえば、元のブロックと再構築ブロックとの間の絶対差分和(SAD)、2乗差分和などとして、計算され得る。パラメータλは、パラメータRとパラメータDとの間のトレードオフであり得るラグランジアンパラメータである。ラグランジアンパラメータλは、様々な方法で計算され得、λの計算のための選択される手法は、コンテキストおよび適用例に応じて変わり得ることに留意されたい。たとえば、ラグランジアンパラメータλは、レートバッファ155の状態、ブロックの第1のラインまたは非第1のラインの状況などのような、いくつかの因子に基づいて計算され得る。スライスの非第1のラインの状況に関しても、多数のタイプの画像コンテンツに対して空間予測モードが選ばれ得る。
【００９９】
空間予測モードコーディングのための例示的なフローチャート
図11を参照して、空間予測モードコーディングのための例示的な手順について説明する。図11に示すステップは、ビデオエンコーダ(たとえば、図2Aのビデオエンコーダ20)、ビデオデコーダ(たとえば、図2Bのビデオデコーダ30)、またはそれらの構成要素によって実施され得る。便宜的に、方法300は、ビデオエンコーダ20、ビデオデコーダ30、または別の構成要素であり得る、ビデオコーダ(単にコーダとも呼ばれる)によって実施されるものとして説明される。
【０１００】
方法300は、ブロック301において始まる。ブロック305においてコーダは、ビデオデータのスライスをコーディングする。スライスは、第1のラインおよび複数の非第1のラインに編成された複数のピクセルを含む。ブロック310においてコーダは、第1のラインの現在ピクセルを、空間予測モードで予測子として第1のラインの先行ピクセルを使用してコーディングすることを介して、スライスをコーディングすることができる。先行ピクセルと現在ピクセルとの間に介在するピクセルがあり得る。ブロック315においてコーダは、非第1のラインの少なくとも別のピクセルを、空間予測モード以外のコーディングモードでコーディングすることを介して、スライスをコーディングし続けることができる。スライスのコーディングは、第1および第2のインターリーブされたコーディング経路を介して、第1のラインをコーディングすることをさらに含み得る。第1および第2のコーディング経路におけるピクセルの各々は、対応するコーディング経路の外のピクセルから独立してコーディングされ得る。方法300は、ブロック320において終了する。
【０１０１】
方法300において、図11に示すブロックのうちの1つもしくは複数は取り除かれて(たとえば、実施されなくて)よく、かつ/または方法が実施される順序は入れ換えられてよい。いくつかの実施形態では、追加ブロックが方法300に追加されてよい。本開示の実施形態は、図11に示す例にも、その例によっても限定されず、本開示の趣旨から逸脱することなく、他の変形形態が実装されてよい。
【０１０２】
他の検討事項
本明細書で開示する情報および信号は、種々の異なる技術および技法のいずれかを使用して表され得る。たとえば、上記の説明全体にわたって参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光学場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
【０１０３】
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装される場合がある。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、およびステップは、それらの機能性の点から一般的に上述されている。そのような機能性がハードウェアとして実装されるかソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課された設計制約に依存する。当業者は、説明された機能性を特定の適用例ごとに様々な方式で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
【０１０４】
本明細書で説明する技術は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのいずれかにおいて実装され得る。デバイスまたは構成要素として説明された任意の特徴は、集積論理デバイス内で一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアに実装された場合、本技法は、実行されると、上述した方法のうちの1つまたは複数を実施する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリ、磁気または光学データ記憶媒体などのような、メモリまたはデータ記憶媒体を含み得る。技法は、追加または代替として、伝搬される信号または波などの、命令またはデータ構造の形態でプログラムコードを搬送または通信し、コンピュータによってアクセスされ、読み取られ、かつ/または実行され得る、コンピュータ可読通信媒体によって少なくとも部分的に実現され得る。
【０１０５】
コンピュータ可読媒体(たとえば、メモリまたは他のデータ記憶デバイス)と通信している(たとえば、コンピュータ可読媒体と共同して動作している)プロセッサは、プログラムコードの命令を実行することができ、1つもしくは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他の同等の集積もしくはディスクリート論理回路など、1つまたは複数のプロセッサを含むことができる。そのようなプロセッサは、本開示で説明した技法のいずれかを実施するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来型プロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装される場合もある。したがって、本明細書で使用する「プロセッサ」という用語は、本明細書で説明する技法の実装に適した、前述の構造、前述の構造または任意の他の構造もしくは装置の任意の組合せのうちの任意のものを指し得る。さらに、いくつかの態様では、本明細書で説明する機能性は、符号化および復号のために構成された専用のソフトウェアもしくはハードウェア内に提供され得るか、または複合ビデオエンコーダ/デコーダ(コーデック)に組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素において完全に実装され得る。
【０１０６】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装されてもよい。開示する技法を実施するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、またはユニットについて本開示で説明したが、これらの構成要素、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。そうではなく、上述したように、様々なユニットは、コーデックハードウェアユニットの中で組み合わされてよく、または適切なソフトウェアおよび/もしくはファームウェアとともに、上述のような1つもしくは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてよい。
【０１０７】
上記は、様々な異なる実施形態に関連して説明されてきたが、本開示の教示から逸脱することなく、ある実施形態からの特徴または要素が、他の実施形態と組み合わされてよい。ただし、それぞれの実施形態の間での特徴の組合せは、必ずしもそれらに限定されるとは限らない。本開示の様々な実施形態が説明されてきた。これらおよび他の実施形態は、以下の特許請求の範囲内に入る。
【符号の説明】
【０１０８】
10  ビデオコーディングシステム
10'  ビデオコーディングシステム
11  デバイス
12  ソースデバイス、ビデオコーディングデバイス、コーディングデバイス
13  プロセッサ/コントローラデバイス
14  宛先デバイス、ビデオコーディングデバイス、コーディングデバイス
16  リンク
18  ビデオソース、ビデオソース/カメラ
20  ビデオエンコーダ、エンコーダ
22  出力インターフェース
28  入力インターフェース
30  ビデオデコーダ、デコーダ
32  ディスプレイデバイス
105  色空間コンバータ
110  バッファ
115  平坦度検出器
120  レートコントローラ
125  予測器、量子化器、および再構築器構成要素
130  ラインバッファ
135  索引付き色履歴
140  エントロピーエンコーダ
145  サブストリームマルチプレクサ
150  レートバッファ
155  レートバッファ
160  サブストリームデマルチプレクサ
165  エントロピーデコーダ
170  レートコントローラ
175  予測器、量子化器、および再構築器構成要素
180  索引付き色履歴
185  ラインバッファ
190  色空間コンバータ
203  第1のライン
205  先行ブロック、先行再構築ブロック
207  現在ブロック
213  第1のライン
215  先行ブロック、ブロック、先行再構築ブロック
217  現在ブロック、ブロック
221  先行ライン
223  現在ライン
225  先行ブロック、先行再構築ブロック
227  現在ブロック
231  先行ライン
233  現在ライン
235  先行ブロック
237  現在ブロック
241  先行ライン
243  現在ライン
245  先行ブロック
247  現在ブロック
300  方法
【図１Ａ】
0006622791.tif 000010
【図１Ｂ】
0006622791.tif 000011
【図２Ａ】
0006622791.tif 000012
【図２Ｂ】
0006622791.tif 000013
【図３】
0006622791.tif 000014
【図４】
0006622791.tif 000015
【図５】
0006622791.tif 000016
【図６】
0006622791.tif 000017
【図７】
0006622791.tif 000018
【図８】
0006622791.tif 000019
【図９】
0006622791.tif 000020
【図１０】
0006622791.tif 000021
【図１１】
0006622791.tif 000022