【文献】
Ajit Singh Motra et al.,Fast intra mode decision for HEVC video encoder,2012 20th International Conference on Software, Telecommunications and Computer Networks (SoftCOM),2012年 9月11日,pp.1-5
(58)【調査した分野】(Int.Cl.,DB名)
イントラ予測モードの前記第1の組において識別された各イントラ予測モード及びイントラ予測モードの前記第2の組において識別された各イントラ予測モードのみに関する前記近似コストを格納することは、
イントラ予測モードの前記第1の組において識別された各イントラ予測モードに関する重み付き近似コストを計算するためにイントラ予測モードの前記第1の予め定義された組において識別された各イントラ予測モードに関して計算された前記近似コストの各々に重みを加えることと、
イントラ予測モードの前記第2の組において識別された各イントラ予測モードに関して計算された前記近似コストの各々と前記重み付き近似コストを比較することと、
前記比較の結果、前記近似コストの各々と前記重み付き近似コストとの間の差分がスレショルド値よりも小さいときに、イントラ予測モードの前記第1の予め定義された組において識別されたイントラ予測モードに関して計算された前記近似コストを前記メモリに格納することと、
を備える請求項1に記載の方法。
イントラ予測モードの前記第2の組において識別された各イントラ予測のために選択されたモードに関して計算された前記近似コストの各々と前記重み付き近似コストを比較することは、
前記重み付き近似コストから1つの重み付き近似コストを選択することと、
前記重み付き近似コストと各イントラ予測のために選択された前記モードに関して計算された前記近似コストのうちの1つの近似コストとの間の差分を決定することと、
前記差分はスレショルド値よりも小さいと決定することと、
をさらに備える請求項2に記載の方法。
符号化されるべき前記映像データの前記現在のブロックに関するイントラ予測モードの前記第1の組を決定することは、符号化されるべき前記映像データの前記現在のブロックに関するイントラ予測モードの第1の予め定義された組を決定することを備える請求項1に記載の方法。
前記プロセッサは、符号化されるべき前記映像データの前記現在のブロックに関するイントラ予測モードの第1の予め定義された組を決定するようにさらに構成される請求項9に記載の映像コーディングデバイス。
イントラ予測モードの前記第1の組において識別された各イントラ予測モードに関する重み付き近似コストを計算するためにイントラ予測モードの前記第1の予め定義された組において識別された各イントラ予測モードに関して計算された前記近似コストの各々に重みを加えるための手段と、
イントラ予測モードの前記第2の組において識別された各イントラ予測モードに関して計算された前記近似コストの各々と前記重み付き近似コストを比較するための手段と、
前記比較の結果、前記近似コストの各々と前記重み付き近似コストとの間の差分がスレショルド値よりも小さいときに、イントラ予測モードの前記第1の予め定義された組において識別されたイントラ予測モードに関して計算された前記近似コストを前記メモリに格納するための手段と、
をさらに備える請求項17に記載の映像コーディングデバイス。
符号化されるべき前記映像データの前記現在のブロックに関するイントラ予測モードの第1の予め定義された組を決定するための手段をさらに備える請求項17に記載の映像コーディングデバイス。
前記命令は、実行されたときに、イントラ予測モードのヌルの組を決定することを前記1つ以上のプロセッサに行わせる請求項25に記載の非一時的なコンピュータによって読み取り可能な記憶媒体。
前記命令は、実行されたときに、符号化されるべき前記映像データの前記現在のブロックに関するイントラ予測モードの第1の予め定義された組を決定することを前記1つ以上のプロセッサに行わせる請求項25に記載の非一時的なコンピュータによって読み取り可能な記憶媒体。
【発明を実施するための形態】
【0009】
[0017]映像符号器(“映像コーダ”と呼ぶこともできる)が複数の、異なる予測モードから選択するときにレート歪み値を格納するために要求されるスペースを縮小するのを可能にすることができる技法が本開示において説明される。概して、符号化された映像データは、予測データと、残差データと、を含むことができる。例えば、映像符号器は、イントラ予測モード又はインター予測モード中に予測データを生成することができる。例えば、イントラ予測は、概して、同じピクチャの近隣の、前にコーディングされたブロック内の1つ以上の基準ブロック(“基準サンプル”と呼ぶこともできる)に関してピクチャのブロック内のピクセル値を予測することを含み、選択された前にコーディングされたブロックは、基準ブロックと呼ぶことができる。イントラ予測は、選択された基準ブロックが予測されるべきブロックと同じピクチャからのものであるため、空間的予測と呼ぶこともできる。インター予測は、典型的には、時間的に取り除かれたピクチャ内の1つ以上の基準サンプルに関するピクチャのブロック内のピクセル値を予測することを含む。この理由により、インター予測は、選択された基準ブロックが予測されるべきブロックを有するピクチャと異なる(従って、時間的に取り除かれた)ピクチャからのものであるため、時間的予測と呼ぶことができる。
【0010】
[0018]イントラ予測を行うときには、映像符号器は、(例えば、
図4Aにおいてさらに例示されるように)複数の、異なるイントラ予測モードの中から選択することができ、それらのイントラ予測モードの各々と関連する近似コストを計算する。この近似コストは、いわゆるリソース集約型のフルレート歪み最適化プロセスを実行するときにしばしば使用されるレート−歪みコストの近似値であることができる。レート−歪みコストを計算することは、典型的には、映像符号器が、イントラ予測モードのうちの各々を用いて予測されたブロックを計算すること及び予測されたブロックの各々と(上記の残差ピクセル値を指定する“残差ブロック”と共通して呼ばれる)現在のブロックとの間の差分を決定することを要求する。次に、映像符号器は、残差ブロックの各々を空間的領域から周波数領域に変換し、係数の対応する符号化された映像ブロックを生成するために変換された残差ブロックの各々における係数値を量子化する。最後に、映像符号器は、符号化された映像ブロックを復号し、復号された映像ブロックの各々を現在のブロックと比較して歪みメトリックを決定することができる。さらに、このレート−歪み解析は、イントラ予測モードの各々に関して、量子化レベルが与えられている場合に、符号化された映像ブロックの各々をシグナリングするために使用されるビットの量を計算することを含むことができる。
【0011】
[0019]映像符号器は、イントラ予測モードのうちの対応する1つを用いて予測される予測されたブロックの各々に関してフルレート−歪み解析を行うのではなく、近似コストを計算することができる。本開示においてさらに説明されるように、フルレート−歪みコストを概算する方法は、幾つかの異なる方法が存在する。幾つかの例においては、映像符号器は、イントラ予測コーディング中にイントラ予測モードの各々に関する近似コストを計算するのを回避することができ、その代わりに、1つ以上のいわゆる“最も可能性が高い”イントラ予測モードを識別することができる。最も可能性が高いモードを識別するために、映像符号器は、前に符号化されたブロック(現在のブロックに隣接し、既にイントラ予測されている近隣ブロック、例えば、現在のブロックの最上部又は上方及び左のブロック、であることがしばしばである)のイントラ予測モードを識別することができる。これらのいわゆる近隣ブロックのイントラモードは、現在のブロックに対する近隣ブロックの空間的な近接性に起因して現在のブロックと同じである又は類似する確率が相対的に高いことができる。この点において、映像符号器は、近似コストの計算数を、これらの最も可能性が高いモード又はこれらの最も可能性が高いモード及びイントラ予測を行うときにその他のモードと比較して使用される可能性が統計的により高いその他の可能性のあるモード(例えば、プレナー(planar)モード及びDCモード)のみに減らすことができる。
【0012】
[0020]しかしながら、幾つかの実装においては、映像符号器は、幾つかのブロックに関するイントラ予測を平行して行うことができ、それは、映像符号器がこれらの最も可能性が高いモードを決定するのを可能にしない。例えば、映像符号器は、幾つかの異なるサイズのコーディングユニットに分割することができる最大のコーディングユニット(LCU)に関するイントラ予測を行うことができる。これらのCUのうちの各々が同時並行してイントラ予測又はインター予測中である場合は、映像符号器は、現在のブロックに関する最も可能性が高いモードを決定するためにそれらを使用することができない。
【0013】
[0021]イントラ予測を行うときに最も可能性が高いモードを利用することができない結果として、映像符号器は、LCU内の各CUに関して各イントラ予測モードに関する近似コストを計算するのを試みることができる。映像符号器は、これらの近似コストを格納することができる。映像符号器が近隣ブロックの符号化を完了させた時点で、映像符号器は、様々なモードのうちのいずれがより複雑なレート歪み解析を用いてより完全に試験されるべきであるかを識別するために現在のブロックに関して計算された近似コストを用いて、現在のブロックに関する最も可能性が高いモードを識別することができる。このようにして最も可能性が高いモードを使用することによって、映像符号器は、フルレート歪み解析を用いて解析される予測されたブロックの数を減少させることができる。換言すると、これらのモードの一部をレート歪み解析から除外し、それによって、レート歪み解析を行うために要求されるリソースの量を低減させることができる(メモリ及び/又はプロセッサの利用と呼ぶことができる)。
【0014】
[0022]LCUS内の各CUに関して各イントラ予測モードに関する近似コストを計算する上記のプロセスは、(映像符号器が幾つかのブロックに関するイントラ予測及びインター予測を同時並行して行うという意味で)非常に並列的である映像コーダがフルレート歪み解析を用いて解析される予測されたブロックの数を減少させることによってイントラ予測をより効率的に行うのを可能にすることができる一方で、このプロセスは、結果的には、近似コストを格納するために要求されるメモリに起因してコストが高い映像符号器になってしまうおそれがある。映像符号器は、典型的には、これらの近似コストをローカルで又はチップ上に格納するのを要求すること、及び、該オンチップメモリは、コストが高くかつ映像符号器チップ上の有意なスペース(“ボードスペース”と呼ぶことができる)を消費する可能性があることを考慮した場合、上記のプロセスを実装する映像符号器は、各ブロックを順次で符号化することができる並列性がより低い映像符号器よりもコスト高になるおそれがある。
【0015】
[0023]本開示において説明される技法により、映像コーダ、例えば、並列映像符号器(現在のブロックを符号化するのと同時並行して近隣ブロックを符号化する映像符号器を意味する)、は、すべてのイントラ予測モードの部分組のみに関する近似コストを格納することができ、それによって、オンチップメモリに関する要求を軽減させること及び映像符号器の生産に関するコストの節約を提供することができる。動作上は、映像符号器は、現在のブロックに関するイントラ予測モードの第1の予め定義された組を決定することができる。現在のブロックは、幾つかの例においては、概して、映像コーダが現在符号化中である映像ブロックを意味する。第1の予め定義された組内のイントラ予測モードの数は、現在のブロックを符号化するために使用することが可能なイントラ予測モードの総数よりも少ないことができる。しばしばであるが、イントラ予測モード(例えば、モード0、1及び26)のこの第1の予め定義された組は、イントラ予測モードのうちの残りのそれらよりも頻繁に生じるとして統計的に識別されている1つ、2つ又は3つのイントラ予測モードを備える。
【0016】
[0024]映像符号器は、イントラ予測モードの第1の予め定義された組に加えて現在のブロックに関するイントラ予測モードの第2の組を決定することもできる。繰り返すと、イントラ予測モードのこの第2の組は、現在のブロックを符号化するために使用することが可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含むことができる。モードの第2の組は、予め定義することができない。換言すると、イントラ予測モードの第1の予め定義された組は、設定することができ(ただし、特定のモードリストは、LCU、スライス、ピクチャ、シーケンス、等の間で変化することができる)、他方、第2の組は、サンプリング、又は何らかのその他のプロセスによって、導き出されるか又はランダムに決定される。
【0017】
[0025]いずれの場合も、映像符号器は、イントラ予測モードの第1の予め定義された組内で識別された各イントラ予測モード及びイントラ予測モードの第2の組内で識別された各イントラ予測モードに関する近似コストを計算することができる。映像符号器は、イントラ予測モードの第1の予め定義された組内で識別された各イントラ予測モード及びイントラ予測モードの第2の組内で識別されたイントラ予測モードの一部に関する近似コストをメモリに格納することができる(繰り返すと、このメモリは、オンチップメモリ、例えば、層1(L1)キャッシュ、を表すことができる)。第1の予め定義された組内で指定されたイントラ予測モード及び第2の組内で選択されたそれらの総数(すなわち、和)は、現在のブロックを符号化するために使用可能なイントラ予測モードの総数(例えば、35のモード)よりも少ないことを考慮した場合、映像符号器は、これらの近似コストを格納するために要求されるオンチップメモリの量を(合計して幾つかのモードのみ、例えば、5つ又は6つ、がイントラ予測モードの第1の組と第2の組との間で指定されている場合は、時には有意な量だけ)低減させることができる。
【0018】
[0026]
図1は、複数の、異なる予測モードから選択するときにレート歪み値を格納するために要求されるスペースを縮小するための本開示において説明される技法を利用するように構成することができる映像符号化及び復号システム例を示したブロック図である。
図1の例において示されるように、システム10は、行先デバイス14による復号のための符号化された映像を生成するソースデバイス12を含む。ソースデバイス12は、通信チャネル16を介して符号化された映像を行先デバイス14に送信することができ又は符号化された映像を記憶媒体34又はファイルサーバ36に格納することができ、従って、符号化された映像は、希望に応じて行先デバイス14によってアクセスすることができる。ソースデバイス12及び行先デバイス14は、非常に様々なデバイスのうちのいずれかを備えることができ、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、電話ハンドセット(携帯電話又はセルラーハンドセット及びいわゆるスマートフォンを含む)、テレビ、カメラ、表示装置、デジタルメディアプレーヤー、ビデオゲームプレイコンソール、等を含む。
【0019】
[0027]多くの場合、該デバイスは、無線通信のために装備することができる。従って、通信チャネル16は、無線チャネルを備えることができる。代替として、通信チャネル16は、符号化された映像データの送信に適する有線チャネル、無線チャネルと有線チャネルの組み合わせ又はその他のタイプの通信チャネル又は通信チャネルの組み合わせ、例えば、無線周波数(RF)スペクトル又は1つ以上の物理的送信ラインを備えることができる。幾つかの例においては、通信チャネル16は、パケットに基づくネットワーク、例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、又はグローバルネットワーク、例えば、インターネット、の一部を形成することができる。従って、通信チャネル16は、概して、ソースデバイス12から行先デバイス14に映像データを送信するためのあらゆる適切な通信媒体、又は異なる通信媒体の集合を代表し、有線媒体又は無線媒体のあらゆる適切な組み合わせを含む。通信チャネル16は、ルータ、スイッチ、基地局、又は、ソースデバイス12から行先デバイス14への通信を容易にするのに役立つことができるあらゆるその他の装置を代表する。
【0020】
[0028]
図1の例においてさらに示されるように、ソースデバイス12は、映像ソース18と、映像符号器20と、変調器/復調器22(“モデム22”)と、送信機24と、を含む。ソースデバイス12において、映像ソース18は、映像キャプチャデバイス、等のソースを含むことができる。映像キャプチャデバイスは、例として、ビデオカメラ、以前にキャプチャされた映像が入っている映像アーカイブ、映像コンテンツプロバイダから映像を受信するための映像フィードインタフェース、及び/又は、コンピュータグラフィックスデータをソース映像として生成するためのコンピュータグラフィックスシステムのうちの1つ以上を含むことができる。一例として、映像ソース18がビデオカメラである場合は、ソースデバイス12及び行先デバイス14は、いわゆるカメラフォン又はビデオフォンを形成することができる。しかしながら、本開示において説明される技法は、無線用途又はセッティングには限定されず、映像符号化及び/又は復号能力を含む非無線デバイスに適用することができる。従って、ソースデバイス12及び行先デバイス14は、ここにおいて説明される技法をサポートすることができるコーディングデバイスの単なる例であるにすぎない。
【0021】
[0029]映像符号器20は、キャプチャされた、予めキャプチャされた、又はコンピュータによって生成された映像を符号化することができる。いったん符号化された時点で、映像符号器20は、この符号化された映像をモデム22に出力することができる。モデム22は、通信規格、例えば、無線通信プロトコル、に従って符号化された映像を変調することができ、送信機24は、変調された符号化された映像データを行先デバイス14に送信することができる。モデム22は、ミキサ、フィルタ、増幅器、又は信号変調のために設計されたその他のコンポーネントを含むことができる。送信機24は、データを送信するために設計された回路を含むことができ、増幅器、フィルタ、及び1本以上のアンテナを含む。
【0022】
[0030]映像符号器20によって符号化されるキャプチャされた、予めキャプチャされた、又はコンピュータによって生成された映像は、のちの取り出し、復号及び消費のために記憶媒体34又はファイルサーバ36上に格納することもできる。記憶媒体34は、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、又は符号化された映像を格納するためのその他の適切なデジタル記憶媒体を含むことができる。行先デバイス14は、記憶媒体34又はファイルサーバ36に格納された符号化された映像にアクセスし、この符号化された映像を復号して復号された映像を生成し、この復号された映像を再生することができる。
【0023】
[0031]ファイルサーバ36は、符号化された映像を格納すること及びその符号化された映像を行先デバイス14に送信することが可能なあらゆるタイプのサーバであることができる。ファイルサーバの例は、(例えば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続記憶(NAS)デバイス、ローカルディスクドライブ、又は、符号化された映像データを格納すること及びそれを行先デバイスに送信することが可能なあらゆるその他のタイプのデバイスを含む。ファイルサーバ36からの符号化された映像データの送信は、ストリーミング送信、ダウンロード送信、又は両方の組み合わせであることができる。行先デバイス14は、インターネット接続を含む標準的なデータ接続を通じてファイルサーバ36にアクセスすることができる。この接続は、ファイルサーバに格納された符号化された映像データにアクセスするのに適する無線チャネル(例えば、Wi−Fi接続又は無線セルラーデータ接続)、有線接続(例えば、DSL、ケーブルモデム、等)、又は有線チャネルと無線チャネルの組み合わせ又はその他のタイプの通信チャネルを含むことができる。
【0024】
[0032]行先デバイス14は、
図1の例では、受信機26と、モデム28と、映像復号器30と、表示装置32と、を含む。行先デバイス14の受信機26は、チャネル16を通じて情報を受信し、モデム28は、その情報を復調して映像復号器30のための復調されたビットストリームを生成する。チャネル16を通じて通信される情報は、関連付けられた符号化された映像データを復号する際に映像復号器30によって使用するために映像符号器20によって生成された様々な構文情報を含むことができる。該構文は、記憶媒体34又はファイルサーバ36に格納された符号化された映像データとともに含めることもできる。映像符号器20及び映像復号器30の各々は、映像データを符号化又は復号することが可能な各々の符号器−復号器(CODEC)の一部を形成することができる。
【0025】
[0033]行先デバイス14の表示装置32は、ビューワによる消費のために映像データを提示することが可能なあらゆるタイプのディスプレイを代表する。表示装置32は、行先デバイス14と一体化された状態で示されるが、行先デバイス14と一体化すること、又は行先デバイス14の外部に存在することができる。幾つかの例においては、行先デバイス14は、一体化された表示装置を含むことができ及び外部の表示装置とインタフェースするように構成することもできる。その他の例においては、行先デバイス14は、表示装置であることができる。概して、表示装置32は、復号された映像データをユーザに表示し、様々な表示装置、例えば、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、又は他のタイプの表示装置、を備えることができる。
【0026】
[0034]映像符号器20及び映像復号器30は、映像圧縮規格、例えば、現在策定中の高効率映像コーディング(HEVC)規格、に従って動作することができ、及びHEVCテストモデル(HM)に準拠することができる。代替として、映像符号器20及び映像復号器30は、その他の独占規格又は工業規格、例えば、ITU−T H.264規格、代替でMPEG−4、Part10、Advanced Video Coding(AVC)と呼ばれる、又は該規格の拡張版、により動作することができる。しかしながら、本開示の技法は、特定のコーディング規格には限定されない。映像圧縮規格のその他の例は、MPEG−2と、ITU−T H.263と、を含む。
【0027】
[0035]
図1には示されていないが、幾つかの態様では、映像符号器20及び映像復号器30は、各々、音声符号器及び復号器と一体化することができ、及び、共通のデータストリーム又は別々のデータストリーム内の音声及び映像の両方の符号化を取り扱うための該当するMUX−DEMUXユニット、又はその他のハードウェア及びソフトウェアを含むことができる。該当する場合は、幾つかの例においては、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、又はその他のプロトコル、例えば、ユーザデータグラムプロトコル(UDP)、に準拠することができる。
【0028】
[0036]映像符号器20及び映像復号器30は、各々、様々な適切な符号器回路、例えば、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア又はそれらのあらゆる組み合わせのうちのいずれかとして実装することができる。技法がソフトウェア内において部分的に実装されるときには、デバイスは、ソフトウェアに関する命令を適切な、非一時的なコンピュータによって読み取り可能な媒体に格納することができ及び本開示の技法を実行するために1つ以上のプロセッサを用いてハードウェア内で命令を実行することができる。映像符号器20及び映像復号器30の各々は、1つ以上の符号器又は復号器に含めることができ、それらのいずれも、各々のデバイスにおいて結合された符号器/復号器(CODEC)の一部として一体化することができる。
【0029】
[0037]JCT−VCでは、HEVC規格の策定作業中である。HEVC標準化努力は、HEVCテストモデル(HM)と呼ばれる映像コーディングデバイスの進化中のモデルに基づく。HMは、例えば、ITU−T H.264/AVC、による既存のデバイスに対する映像コーディングデバイスの幾つかの追加能力を想定している。例えば、H.264は9つのイントラ予測符号化モードを提供する一方で、HMは、33ものイントラ予測符号化モードを提供することができる。
【0030】
[0038]概して、HMのワーキングモデルでは、映像フレーム又はピクチャは、ルマサンプル及びクロマサンプルの両方を含むツリーブロック又は最大コーディングユニット(LCU)のシーケンスに分割することができると記述している。ツリーブロックは、H.264規格のマクロブロックと同様の目的を有する。スライスは、幾つかの連続するツリーブロックをコーディング順に含む。映像フレーム又はピクチャは、1つ以上のスライスに分割することができる。各ツリーブロックは、四分木(quadtree)に従ってコーディングユニット(CU)に分割することができる。例えば、ツリーブロックは、四分木の根ノードとして、4つの子ノードに分割することができ、各子ノードは、親ノードであることができ、及び他の4つの子ノードに分割することができる。最終的な、分割されない子ノードは、四分木の葉ノードとして、コーディングノード、すなわち、コーディングされた映像ブロック、を備える。コーディングされたビットストリームに関連する構文データは、ツリーブロックを分割することができる最大回数を定義することができ、及び、コーディングノードの最小サイズを定義することもできる。
【0031】
[0039]CUは、コーディングノードと、そのコーディングノードに関連する予測ユニット(PU)及び変換ユニット(TU)を含む。CUのサイズは、コーディングノードのサイズに対応し、形状は正方形でなければならない。CUのサイズは、8×8ピクセルからツリーブロックのサイズまでの範囲であることができ、最大サイズは64×64ピクセル以上である。各CUには、1つ以上のPU及び1つ以上のTUが入ることができる。CUに関連する構文データは、例えば、1つ以上のPUへのCUの分割を記述することができる。分割モードは、CUがスキップ又は直接モード符号化されるか、イントラ予測モード符号化されるか、又はインター予測モード符号化されるかの間で異なることができる。PUは、形状が非正方形に分割することができる。CUに関連する構文データは、例えば、四分木による1つ以上のTUへのCUの分割も記述することができる。TUの形状は、正方形であっても非正方形であってもよい。
【0032】
[0040]HEVC規格は、TUによる変換を考慮しており、異なるCUごとに異なることができる。TUは、典型的には、分割されたLCUに関して定義される所定のCU内のPUのサイズに基づいてサイズが設定されるが、常にそうであるわけではない。TUは、典型的には、PUと同じサイズであるか又はそれよりも小さい。幾つかの例においては、CUに対応する残差サンプルは、“残差四分木(RQT)”と呼ばれる四分木構造を用いてより小さいユニットに細分割することができる。RQTの葉ノードは、変換ユニット(TU)と呼ぶことができる。TUに関連するピクセル差分値は、変換係数を生成するために変換することができ、それらは量子化することができる。
【0033】
[0041]概して、PUは、予測プロセスに関連するデータを含む。例えば、PUがイントラモード符号化されるときには、PUは、PUに関するイントラ予測モードを記述するデータを含むことができる。他の例として、PUがインターモード符号化されるときには、PUは、PUに関する1つ以上の動きベクトルを定義するデータを含むことができる。PUに関する動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルに関する解像度(例えば、1/4サンプル精度又は1/8サンプル精度)、動きベクトルが指し示す基準ピクチャ、予測方向(双方向予測又は単一方向予測)及び/又は動きベクトルに関する基準ピクチャリスト(例えば、リスト0、リスト1、又はリストC)を記述することができる。
【0034】
[0042]概して、TUは、変換プロセス及び量子化プロセスのために使用される。1つ以上のPUを有する1つの所定のCUは、1つ以上の変換ユニット(TU)を含むこともできる。予測に引き続き、映像符号器20は、PUに対応する残差値を計算することができる。残差値は、変換係数に変換することができ、量子化することができ、及び、エントロピーコーディングのためのシリアライズされた(serialized)変換係数を生成するためにTUを用いて走査することができるピクセル差分値を備える。本開示は、典型的には、CUのコーディングノードを意味するために用語“映像ブロック”を使用する。幾つかの特定の事例においては、本開示は、ツリーブロック、すなわち、LCU、又はCUを意味するために用語“映像ブロック”を使用することもでき、コーディングノード及びPU及びTUを含む。
【0035】
[0043]映像シーケンスは、典型的には、一連の映像フレーム又はピクチャを含む。ピクチャのグループ(GOP)は、概して、映像ピクチャのうちの一連の1つ以上を備える。GOPは、GOP内に含まれるピクチャ数を記述する構文データをGOPのヘッダ、1つ以上のピクチャのヘッダ、又はその他の場所において含むことができる。ピクチャの各スライスは、各々のスライスに関する符号化モードを記述するスライス構文データを含むことができる。映像符号器20は、典型的には、映像データを符号化するために個々の映像スライス内の映像ブロックに対して動作する。映像ブロックは、CU内のコーディングノードに対応することができる。映像ブロックは、固定された又は可変のサイズを有することができ、及び、指定されたコーディング規格によりサイズが異なることができる。
【0036】
[0044]一例として、HMは、様々なPUサイズの予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HMは、2N×2N又はN×NのPUサイズでのイントラ予測、及び2N×2N、2N×N、N×2N、又はN×Nの対称的PUサイズでのインター予測をサポートする。HMは、2N×nU、2N×nD、nL×2N、及びnR×2NのPUサイズでのインター予測に関する非対称的な分割もサポートする。非対称的な分割では、CUの1方の方向が分割されず、他方の方向が25%及び75%に分割される。25%の分割に対応するCUの部分は、“n”によって示され、“上(Up)”、“下(Down)”、“左(Left)”、又は“右(Right)”の表示文字によって後続される。従って、例えば、“2N×nU”は、水平に分割され、最上部が2N×0.5N PU、最下部が2N×1.5N PUである2N×2N CUを意味する。
【0037】
[0045]本開示においては、“N×N”及び“N by N”は、垂直及び水平の寸法に関する映像ブロックのピクセル寸法を意味するために互換可能な形で使用することができ、例えば、16×16ピクセル又は16 by 16ピクセル。概して、16×16ブロックは、垂直方向に16ピクセル(y=16)及び水平方向に16ピクセル(x=16)を有することになる。同様に、N×Nブロックは、概して、垂直方向にNのピクセル及び水平方向にNのピクセルを有し、ここで、Nは、負でない整数値を表す。ブロック内のピクセルは、行及び列で配列することができる。さらに、ブロックは、水平方向と垂直方向で必ずしも同じピクセル数を有する必要がない。例えば、ブロックは、N×Mサンプルを備えることができ、ここで、Mは必ずしもNと等しくない。
【0038】
[0046]CUのPUを用いたイントラ予測又はインター予測コーディングに引き続き、映像符号器20は、CUのTUに関する残差データを計算することができる。PUは、空間領域(ピクセル領域とも呼ばれる)においてピクセルデータを備えることができ、及び、TUは、変換、例えば、離散コサイン変換(DCT)、整数変換、ウェーブレット変換、又は概念的に類似する変換を残差映像データに適用後に変換領域において係数を備えることができる。残差データは、符号化されないピクチャのピクセルとPUに対応する予測値との間のピクセル差分に対応することができる。映像符号器20は、CUに関する残差データを含むTUを形成することができ、次に、CUに関する変換係数を生成するためにTUを変換することができる。
【0039】
[0047]変換係数を生成するための変換に引き続き、映像符号器20は、それらの変換係数の量子化を行うことができる。量子化は、概して、係数を表すために使用されるデータ量を低減させ、さらなる圧縮を提供するために変換係数が量子化されるプロセスを意味する。量子化プロセスは、係数の一部又は全部に関連するビット深度を小さくすることができる。例えば、量子化中にnビット値が切り捨てられてmビット値になり、ここで、nはmよりも大きい。
【0040】
[0048]幾つかの例においては、映像符号器20は、エントロピー符号化することができるシリアライズされたベクトルを生成するために量子化された変換係数を走査するために予め定義された走査順序を利用することができる。その他の例においては、映像符号器20は、適応型走査を行うことができる。一次元ベクトルを形成するために量子化された変換係数走査後は、映像符号器20は、例えば、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、構文に基づくコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔分割エントロピー(PIPE)コーディング、又はその他のエントロピーコーディング技法に従って一次元ベクトルをエントロピー符号化することができる。映像符号器20は、映像データを復号する際に映像符号器20によって使用するために符号化された映像データに関連する構文要素をエントロピー符号化することもできる。
【0041】
[0049]CABACを行うために、映像符号器20は、コンテキストモデル内のコンテキストを送信されるべきシンボルに割り当てることができる。コンテキストは、例えば、シンボルの近隣値がゼロでないかどうかに関連することができる。CAVLCを行うために、映像符号器20は、送信されるべきシンボルに関する可変長コードを選択することができる。VLCにおけるコードワードは、相対的により短いコードがより確率の高いシンボルに対応し、より長いコードがより確率の低いシンボルに対応するような形で構築することができる。このように、VLCの使用は、例えば、送信されるべき各シンボルに関して等しい長さのコードワードを使用することと比較してビットの節約を達成することができる。確率決定は、シンボルに割り当てられたコンテキストに基づくことができる。
【0042】
[0050]上述されるように、映像符号器20は、イントラ予測を行うことができる。イントラ予測を行うときには、従来の映像符号器は、しばしば、複数の異なるイントラ予測モード(例えば、
図4Aにおいてさらに例示)の各々に関するレート歪み解析を行うことによって、これらのモードの中から選択することができる。レート−歪みコストを計算することは、典型的には、映像符号器がイントラ予測モードの各々を用いて予測されるブロックを計算すること及び予測されるブロックの各々と現在のブロックとの間の差分(上記の残差ピクセル値を指定する“残差ブロック”と共通して呼ばれる)を決定することを要求する。次に、映像符号器は、係数の対応する符号化された映像ブロックを生成するために空間領域からの残差ブロックの各々を周波数領域に変換し、変換された残差ブロックの各々の中の係数値を量子化する。最後に、映像符号器は、符号化された映像ブロックを復号し、歪みメトリックを決定するために復号された映像ブロックの各々を現在のブロックと比較することができる。さらに、このレート−歪み解析は、量子化レベルが与えられている場合に、イントラ予測モードの各々に関して、符号化された映像ブロックの各々をシグナリングするために使用されるビットの量を計算することを含むことができる。
【0043】
[0051]本開示において説明される技法により、映像符号器20は、1つ以上の選択技法に基づいて、予め定義された予測モードの第1の組、及び追加で、予測モードの第2の組を決定することができる。総じて、第1の組及び第2の組は、すべての可能性のある予測モードの部分組を備える。映像コーダは、所定のブロックをコーディングするときののちの使用のために部分組の1つ以上のモードに対応する近似コスト値を格納することができる。部分組内の予測モードの近似コスト値に基づき、映像コーダは、所定のブロックをコーディングするための予測モードを後続して選択する。技法のさらなる詳細が例えば以下の
図2において示される。
【0044】
[0052]映像復号器30は、コーディングされたデータを備えるビットストリームを受信し、映像符号器20から受信された対応する構文要素に従ってそのデータを復号することができる。映像復号器30は、概して、映像符号器20に関して上述される動作と相互的なそれらを実行することができる。すなわち、映像復号器30は、符号化された映像データの各ブロックをエントロピー復号し、符号化された映像データのブロックを量子化解除するために逆量子化を行い、符号化された映像データの量子化解除されたブロックを周波数領域から空間領域に変換するための逆変換を適用することができる。符号化された映像データのこの変換されたブロックは、残差データの再構築されたバージョンを表すことができる。予測プロセスにおいて、映像復号器30は、予測モードをシグナリングする構文要素に基づいて所定のブロックを復号するために対応する予測モードを選択することができる。すなわち、映像符号器20は、本開示の技法により、所定のブロックに関する予測モードをシグナリングする1つ以上の構文要素を送信することができ、それは、映像復号器30が所定のブロックを復号するために後続して使用することができる。
【0045】
[0053]
図2は、複数の、異なる予測モードから選択するときにレート歪み値を格納するために要求されるスペースを縮小することが可能な技法を実装することができる映像符号器20の例を示すブロック図である。映像符号器20は、映像スライス内の映像ブロックのイントラコーディング及びインターコーディングを行うことができる。イントラコーディングは、所定の映像フレーム又はピクチャ内の映像の空間的冗長性を低減又は除去するために空間的予測に依存する。インターコーディングは、映像シーケンスの隣接するフレーム又はピクチャ内の映像の時間的冗長性を低減又は除去するために時間的予測に依存する。イントラモード(Iモード(登録商標))は、幾つかの空間に基づく圧縮モードのうちのいずれかを意味することができる。インターモード、例えば、単一方向性予測(Pモード)又は両方向性予測(Bモード)は、幾つかの時間に基づく圧縮モードのうちのいずれかを意味することができる。
【0046】
[0054]
図2の例においては、映像符号器20は、分割ユニット40と、予測ユニット41と、基準ピクチャメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56と、を含む。予測ユニット41は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測ユニット46と、を含む。映像ブロック再構築に関して、映像符号器20は、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62と、も含む。再構築された映像からブロッキネスアーティファクトを除去するためにブロック境界をフィルタリングするためのデブロッキングフィルタ(
図2に示されていない)を含めることもできる。希望される場合は、デブロッキングフィルタは、典型的には、加算器62の出力をフィルタリングする。デブロッキングフィルタに加えて追加のループフィルタ(ループ内又はループ後)も使用することができる。映像符号器20は、モード選択ユニット43も含む。モード選択ユニット43は、例えば、誤り結果に基づいて、コーディングモードのうちの1つ、イントラ又はインター、を選択することができる。
図2においてさらに示されるように、モード選択ユニット43は、複数の、異なる予測モードから選択するときにレート歪み値を格納するために要求されるスペースを縮小するための技法を実装することができる。
【0047】
[0055]
図2において示されるように、映像符号器20が映像データを受信し、分割ユニット40がそのデータを映像ブロックに分割する。この分割は、映像ブロック分割に加えて、例えば、LCU及びCUの四分木構造に従って、スライス、タイル、又はその他のより大きいユニットに分割することも含むことができる。映像符号器20は、概して、符号化されるべき映像スライス内の映像ブロックを符号化するコンポーネントを例示する。概して、スライスは、複数の映像ブロック(及びおそらく、タイルと呼ばれる映像ブロックの組)に分割することができる。
【0048】
[0056]モード選択ユニット43は、誤り結果(例えば、コーディングレート及び歪みレベル)に基づいて現在の映像ブロックに関する複数の可能性のあるコーディングモードのうちの1つ、例えば、複数のイントラコーディングモードのうちの1つ又は複数のインターコーディングモードのうちの1つ、を選択することができる。予測ユニット41は、結果的に得られたイントラ又はインターコーディングされたブロックを、残差ブロックデータを生成するために加算器50に及び基準フレームとして使用するための符号化されたブロックを再構築するために加算器62に提供することができる。幾つかの例においては、モード選択ユニット43は、“RDO”として省略することができる“レート−歪み最適化”と共通して呼ばれるプロセスを通じて最良のレート対歪み比を選択するために再構築された映像ブロックの各々を解析することができる。以下において説明される
図2のさらなる詳細は、本開示の1つ以上の態様によるモード選択技法を例示する。
【0049】
[0057]本開示の態様は、概して、イントラコーディングに関するものである。従って、本開示の幾つかの技法は、モード選択ユニット43によって実行することができる。すなわち、例えば、モード選択ユニット43は、以下の
図2乃至8に関して説明される本開示の技法を実行することができる。その他の例においては、映像符号器20の1つ以上のその他のユニット、例えば、イントラ予測ユニット46、は、追加で、全体で、又は代替で、本開示の技法を実行することを担当することができる。
【0050】
[0058]予測ユニット41内の動き推定ユニット42及び動き補償ユニット44は、時間的圧縮を提供するために1つ以上の基準ピクチャ内の1つ以上の予測ブロックに関して現在の映像ブロックのインター予測コーディングを行う。動き推定ユニット42は、映像シーケンスに関する予め決定されたパターンに従って映像スライスに関するインター予測モードを決定するように構成することができる。予め決定されたパターンは、シーケンス内の映像スライスをPスライス、Bスライス又はGPBスライスとして指定することができる。動き推定ユニット42及び動き補償ユニット44は、高度に一体化することができるが、概念上の目的で別々に例示される。動き推定は、動き推定ユニット42によって行われ、映像ブロックに関する動きを推定する動きベクトルを生成するプロセスである。例えば、動きベクトルは、基準ピクチャ内の予測ブロックに対する現在の映像フレーム又はピクチャ内の映像ブロックのPUの変位を示すことができる。
【0051】
[0059]予測ブロックは、ピクセル差分の点でコーディングされるべき映像ブロックのPUに密接にマッチングすることが判明しているブロックであり、差分絶対値和(SAD)、差分二乗和(SSD)、又はその他の差分メトリックによって決定することができる。幾つかの例では、映像符号器20は、基準ピクチャメモリ64に格納された基準ピクチャの整数未満のピクセル位置に関する値を計算することができる。例えば、映像符号器20は、基準ピクチャの1/4ピクセル位置、1/8ピクセル位置、又はその他の分数のピクセル位置の値を内挿することができる。従って、動き推定ユニット42は、完全ピクセル位置及び分数ピクセル位置に関する動き探索を行い、分数のピクセル精度を有する動きベクトルを出力することができる。
【0052】
[0060]動き推定ユニット42は、PUの位置を基準ピクチャの予測ブロックの位置と比較することによってインターコーディングされたスライス内の映像ブロックのPUに関する動きベクトルを計算する。基準ピクチャは、第1の基準ピクチャリスト(リスト0)又は第2の基準ピクチャリスト(リスト1)から選択することができ、それらの各々は、基準ピクチャメモリ64に格納された1つ以上の基準ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56及び動き補償ユニット44に送信する。
【0053】
[0061]動き補償は、動き補償ユニット44によって行われ、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチ又は生成することを含むことができ、サブピクセル精度に合わせた内挿を行うことができる。現在の映像ブロックのPUに関する動きベクトルを受信した時点で、動き補償ユニット44は、基準ピクチャリストのうちの1つにおいて動きベクトルが指し示す予測ブロックの位置を突き止めることができる。映像符号器20は、コーディング中の現在の映像ブロックのピクセル値から予測ブロックのピクセル値を減じることによって残差映像ブロックを形成し、ピクセル差分値を形成する。ピクセル差分値は、ブロックに関する残差データを形成し、及び、ルマ及びクロマ差分コンポーネントの両方を含むことができる。加算器50は、この減算動作を行うコンポーネント又はコンポーネント(複数)を代表する。動き補償ユニット44は、映像スライスの映像ブロックを復号する際に映像復号器30によって使用するために映像ブロック及び映像スライスと関連付けられた構文要素を生成することもできる。
【0054】
[0062]予測ユニット41内のイントラ予測ユニット46は、空間的圧縮を提供するためにコーディングされるべき現在のブロックと同じピクチャ又はスライス内の1つ以上の近隣ブロックに関する現在の映像ブロックのイントラ予測コーディングを行うことができる。従って、イントラ予測ユニット46は、上述されるように、動き推定ユニット42及び動き補償ユニット44によって行われるインター予測の代替として、現在のブロックをイントラ予測することができる。
【0055】
[0063]特に、モード選択ユニット43は、所定のモード及びブロックに対応するレート歪みの量に基づいて現在のブロックを符号化するために使用するためのイントラ予測モードを決定することができる。幾つかの例においては、イントラ予測ユニット46は、例えば、別々の符号化パス(encoding pass)中に、モード選択ユニット43から受信された様々なイントラ予測モードを用いて現在のブロックを符号化することができる。
【0056】
[0064]モード選択ユニット43は、様々な試験されたイントラ予測モードに関するレート−歪み解析を用いてレート−歪み値を計算すること、及び、試験されたモードの中で最良のレート−歪み特性を有するイントラ予測モードを選択することができる。レート−歪み解析は、概して、符号化されたブロックを生成するために符号化されたブロックとオリジナルの符号化されないブロックとの間の歪み(又は誤り)の量、及び符号化されたブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定することを含む。モード選択ユニット43は、いずれのイントラ予測モードがブロックに関する最良のレート−歪み値を呈するかを決定するために様々な符号化されたブロックに関する歪み及びレートから比率を計算することができる。提案されるHEVC規格によれば、最高で35のイントラ予測モードが存在することができ、及び、各イントラ予測モードは、インデックスと関連付けることができる。
【0057】
[0065]イントラ予測を行うときには、モード選択ユニット43は、フルレート歪み解析を行うのではなく各々の可能性のあるイントラ予測モードに関連する近似コストを解析することができる。この近似コストは、レート−歪みコストの近似値であることができる。レート−歪みコストを計算することは、典型的には、映像符号器が、イントラ予測モードのうちの各々を用いて予測されるブロックを計算すること、予測されるブロックの各々と(上記の残差ピクセル値を指定する“残差ブロック”と共通して呼ばれる)現在のブロックとの間の差分を決定すること、残差ブロックの各々を空間的領域から周波数領域に変換すること、係数の対応する符号化された映像ブロックを生成するために変換された残差ブロックの各々における係数値を量子化すること、及び、符号化された映像ブロックを復号し、復号された映像ブロックの各々を現在のブロックと比較して歪みメトリックを決定することを要求する。さらに、このレート−歪み解析は、イントラ予測モードの各々に関して、量子化レベルが与えられている場合に、符号化された映像ブロックの各々をシグナリングするために使用されるビットの量を計算することを含むことができる。
【0058】
[0066]上述されるように、35のイントラ予測モードのうちの対応する1つを用いて予測された予測ブロックの各々に関してフルレート−歪み解析を行うのではなく、モード選択ユニット43は、1つ以上のイントラ予測モードに関する近似コストを計算することができる。モード選択ユニット43は、フルレート−歪み解析コストを概算するための1つ以上の技法例を実装することができる。幾つかの技法例は、概して、ラグランジュレート歪み近似と呼ぶことができる。大量の可能性のあるモードの中から最良のモードを決定するために、各々の異なるコストを測定するためにラグランジュ乗数を適用することができる。ラグランジュ乗数は、歪み尺度D、及びレート尺度Rに基づくことができる。歪み尺度は、異なる実装に関して異なる方法で定義することが可能であり、例えば、二乗和誤差(SSE)、絶対差和(SAD)、又は絶対変換差和(SATD)である。レート尺度は、現在のモード情報を符号化するためにどれだけの数のビットが必要であるかを表す。例えば、レート尺度は、予測モードタイプ、イントラモードインデックス、動きベクトル、等をシグナリングするために使用されるビットを含むことができる。D及びRの値がいったん入手された時点で、方程式(1)において示されるようにコストCを計算することができ、ここで、λは、予め定義された定数である。
【数1】
【0059】
モード選択ユニット43は、最小のCを提供するモードを選択することによって最良のモードを選択することができる。
【0060】
[0067]一例として、モード選択ユニット43は、二乗歪み和(SSD)、絶対差和(SAD)、及び絶対変換差和(SATD)を計算するための技法を実装することができる。モード選択ユニット43は、レート−歪みコストの近似値を求めるための方法としてSATDを実装することができ、及び、モード選択ユニット43は、以下の方程式(2)に従ってSATDを計算することができる。
【数2】
【0061】
方程式(1)において、X^は、現在のブロックXに関する予測されるブロックを表し、T
N×N(・)は、N×N変換(例えば、アダマール変換)であり、λは、(実験によって選択することができる)ラグランジュ乗数であり、R
modeは、モードを符号化するために使用されるビット数である。
【0062】
[0068]モード選択ユニット43は、イントラ予測コーディング中に可能性のあるイントラ予測モードの各々に関する近似コストを計算するのを回避することができ、その代わりに、1つ以上のいわゆる“最も可能性が高い”イントラ予測モードを識別することができる。最も可能性が高いモードを識別するために、モード選択ユニット43は、前に符号化されたブロック(現在のブロックに隣接する近隣ブロックであることがしばしばである)のイントラ予測モードを識別することができる。これらのいわゆる近隣ブロックのイントラモードは、現在のブロックに対する近隣ブロックの空間的な近接性に起因して現在のブロックと同じである又は類似する確率が相対的に高いことができる。この点において、モード選択ユニット43は、近似コストの計算数を、これらの最も可能性が高いモード又はこれらの最も可能性が高いモード及びイントラ予測を行うときにその他のモードと比較して使用される可能性が統計的により高いその他の可能性のあるモード(例えば、プレナー(planar)モード及びDCモード)のみに減らすことができる。
【0063】
[0069]幾つかの実装においては、映像符号器は、幾つかのブロックに関するイントラ予測を平行して行うことができ、それは、映像符号器がこれらの最も可能性が高いモードを決定するのを可能にすることができない。例えば、映像符号器は、幾つかの異なるサイズのコーディングユニットに分割することができる最大のコーディングユニット(LCU)に関するイントラ予測を行うことができる。これらのCUの各々が同時並行してイントラ予測又はインター予測中である場合は、映像符号器は、現在のブロックに関する最も可能性が高いモードを決定するためにそれらを使用することができない。イントラ予測を行うときに最も可能性が高いモードを利用することができない結果として、映像符号器は、上記のSATDコストを用いて、LCU内の各CUに関する各々のイントラ予測モードに関して近似コストを計算するのを試みることができる。上記のプロセスは、並列性が高い映像符号器がフルレート歪み解析を用いて解析される予測されるブロックの数を減少させることによってイントラ予測をより効率的に行うのを可能にすることができる一方で、このプロセスは、その結果として、近似コストを計算するために要求されるメモリに起因して高価な映像符号器になってしまうおそれがある。
【0064】
[0070]要求される記憶域を縮小するために、本開示は、すべての可能性のあるイントラ予測モードの部分組の近似コスト値に基づいて現在のブロックに関するイントラ予測モードを決定するための技法を提案する。例えば、映像符号器は、すべての可能性のあるイントラ予測モードの中からのイントラ予測モードの部分組を形成することができる。部分組内のそれらのイントラ予測モードに関して、映像符号器は、歪み尺度、例えば、本開示において説明される近似コスト値、を格納することができる。例えば、映像符号器は、ラグランジュ乗数を使用することから、1つ以上の最良のモード、例えば、近似コスト値があるスレショルドを下回るモード、を選択的に格納することができる。
【0065】
[0071]
図2を参照し、モード選択ユニット43は、本開示の技法により、すべてのイントラ予測モードの部分組のみに関する近似コストを格納することができ、それによって、オンチップメモリに関する要求を軽減させること及び映像符号器の生産に関するコストの節約を提供することができる。例えば、モード選択ユニット43は、最初に、分割ユニット40から符号化するための現在のブロックを決定することができる。モード選択ユニット43は、イントラ予測ユニット46によって符号化されるべき映像データの現在のブロックに関するイントラ予測モードの第1の組を決定することができる。イントラ予測モードの第1の組は、現在のブロックを符号化するためにイントラ予測ユニット46によって使用することが可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含むことができる。幾つかの例においては、イントラ予測モード(例えば、モード0、1及び26)のこの第1の予め定義された組は、イントラ予測モードのうちの残りのそれらよりも頻繁に生じるとして統計的に識別されている1つ以上のイントラ予測モードを備える。すなわち、幾つかの例においては、イントラ予測ユニット46は、1つ以上のモードがモード選択ユニット43によって選択される発生回数を示す1つ以上の統計値を決定することができ、及び、それらの統計値に少なくとも部分的に基づいて、モード選択ユニット43は、イントラ予測モードの第1の組に含まれるモードを選択することができる。
【0066】
[0072]モード選択ユニット43は、幾つかの例においては、映像データ、例えば、LCU、CU、スライス、ピクチャ、シーケンス、等、の個別の数量に関するイントラ予測モードの第1の組を決定することができる。幾つかの例においては、モード選択ユニット43は、映像データ、例えば、LCU、CU、スライス、ピクチャ、シーケンス、等、の個別の数量にわたって変化する予め定義されたイントラ予測モードの異なる第1の組を決定することができる。例えば、モード選択ユニット43は、異なる、各々のLCUに関して予め定義されたイントラ予測モードの異なる第1の組を選択することができる。他の例として、モード選択ユニット43は、異なる、各々のスライス、ピクチャ、シーケンス、等に関して予め定義されたイントラ予測モードの異なる第1の組を選択することができる。
【0067】
[0073]モード選択ユニット43は、イントラ予測モードの第1の予め定義された組に加えて現在のブロックに関するイントラ予測モードの第2の組を決定することもできる。モードの第2の組は、予め定義することができない。その代わりに、モード選択ユニット43は、1つ以上の選択技法により第2の組を決定することができる。例えば、モード選択ユニット43は、モード選択ユニット43が1つ以上のモードをランダムに選択するランダム選択技法を実装することができる。幾つかの例においては、モード選択ユニット43によってランダムに選択されるモードの数は、スレショルド値よりも小さいことができる。その他の例においては、モード選択ユニット43によってランダムに選択されるモードの数は、スレショルド値よりも大きいことができる。
【0068】
[0074]選択技法のその他の例においては、モード選択ユニット43は、1つ以上のモードを選択するためのサンプリング技法を実装することができる。例えば、モード選択ユニット43は、現在のブロックの近隣ブロックである1つ以上のサンプルブロックをサンプリングすることができる。現在のブロックの近隣ブロックであるサンプルブロックに関連するモードに基づいて、モード選択ユニット43は、現在のブロックに関する1つ以上のモードを選択することができる。近隣ブロックは、現在のブロックを含むピクチャ内で現在のブロックに隣接するブロックであることができる。幾つかの例においては、近隣ブロックは、現在のブロックと同じ水平上、垂直上及び/又は対角上の次元における前の隣接するブロックであることができる。その他の例においては、近隣ブロックは、ラスター順序で現在のブロックの前のブロックであることができる。いずれの場合も、1つ以上のサンプルブロックに関するモードを決定した時点で、モード選択ユニット43は、スレショルド値よりも大きい発生数を有するモード選択ユニット43によって選択されるサンプルブロックの1つ以上のモードを決定することができる。幾つかの例においては、サンプルブロックに基づいてモード選択ユニット43によって選択されるモード数は、スレショルド値よりも小さいことができる。幾つかの例においては、統計値に基づいてモード選択ユニット43によって選択されるモードの数量は、スレショルド値よりも大きいことができる。その他の例においては、統計値に基づいてモード選択ユニット43によって選択されるモードの数量は、スレショルド値よりも小さいことができる。
【0069】
[0075]選択技法のその他の例においては、モード選択ユニット43は、前に符号化されたイントラ予測されたピクチャに基づいて1つ以上のモードを選択するためのサンプリング技法を実装することができる。例えば、モード選択ユニット43は、前に符号化されたイントラ予測されたピクチャ、すなわち、現在のブロックを含むピクチャよりも小さい表示順序及び復号順序を有するイントラ予測されたピクチャ、においてモード選択ユニット43によって選択されたモードに関する統計値を生成することができる。例えば、モード選択ユニット43は、1つ以上のイントラ予測モードに対応する1つ以上のカウンタを含むことができる。モード選択ユニット43は、ピクチャのブロックをイントラ予測するために選択されたときに各々のモードのカウンタを増分することができる。幾つかの例においては、統計値に基づいて、モード選択ユニット43は、予測モードの第2の組内に含めるための1つ以上のモードを選択することができる。例えば、モード選択ユニット43は、スレショルド値よりも大きい値を有する対応するカウンタを有する1つ以上のモードを選択することができる。幾つかの例においては、統計値に基づいてモード選択ユニット43によって選択されるモードの数は、スレショルド値よりも小さいことができる。幾つかの例においては、統計値に基づいてモード選択ユニット43によって選択されるモードの数は、スレショルド値よりも大きいことができる。その他の例においては、統計値に基づいてモード選択ユニット43によって選択されるモードの数量は、スレショルド値よりも小さいことができる。
【0070】
[0076]予め定義された予測モードの第1の組及び決定された予測モードの第2の組の各々におけるモード数は、幾つかの例においては同じであることができる。その他の例においては、予め定義された予測モードの第1の組内のモード数は、決定された予測モードの第2の組内のモード数と異なることができる。例えば、予め定義された予測モードの第1の組内のモード数は、決定された予測モードの第2の組内のモード数よりも少ないことができる。その他の例においては、予め定義された予測モードの第1の組内のモード数は、決定された予測モードの第2の組内のモード数よりも多いことができる。幾つかの例においては、イントラ予測モードの第2の組は、現在のブロックを符号化するために使用することが可能な予測モードの総数よりも少ないイントラ予測モードを含むことができる。イントラ予測モードの第1の組は、現在のブロックを符号化するために使用することが可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含むことができる。
【0071】
[0077]上述されるように、モード選択ユニット43は、従って、予め定義されるイントラ予測モードの第1の組、及び、1つ以上の選択技法に基づくイントラ予測モードの第2の組を決定することができる。総じて、イントラ予測モードの第1の組及び第2の組は、すべての可能性のある予測モードの部分組を備えることができる。幾つかの例においては、モード選択ユニット43は、イントラ予測モードの第1の組に含まれる各イントラ予測モード及びイントラ予測モードの第2の組に含まれる各イントラ予測モードに関する近似コストを計算することができる。その他の例においては、モード選択ユニット43は、各々の可能性のあるイントラ予測モードに関する近似コストを計算すること及びイントラ予測モードの第2の組内にイントラ予測モードの部分組を格納することができる。モード選択ユニット43は、上述される1つ以上の歪み測定技法例、例えば、二乗歪み和(SSD)、差分絶対値和(SAD)、及び絶対変換差和(SATD)、を用いて近似コストを計算することができる。近似コストは、イントラ予測モードの第1及び/又は第2の組に含まれるイントラ予測モードのうちの対応する1つを用いて映像データの現在のブロックを符号化するレート歪みコストの近似値である。
【0072】
[0078]各イントラ予測モードに関する近似コストを決定した時点で、モード選択ユニット43は、イントラ予測モードの第1の組において識別された各イントラ予測モード及びイントラ予測モードの第2の組において識別されたイントラ予測モードの一部又は全部に関する近似コストをメモリに格納することができる。その他の例においては、モード選択ユニット43は、イントラ予測モードの第1の組において識別されたイントラ予測モードのうち1つ以上及び/又はイントラ予測モードの第2の組において識別されたイントラ予測モードのうちの1つ以上に関する近似コストの部分組を格納することができる。モード選択ユニット43が近似コストを格納することができるメモリは、オンチップメモリであることができる。すなわち、オンチップメモリ(例えば、レジスタ、オンチップキャッシュ、等)は、映像符号器20の一部分又は全体を実装するマイクロプロセッサ内に含めること又はマイクロプロセッサと一体化することができる。その他の例においては、モード選択ユニット43が近似コストを格納することができるメモリは、オフチップメモリであることができる。オフチップメモリは、例えば、マイクロプロセッサが外部のメモリインタフェースを介してアクセスするダイナミックランダムアクセスメモリ(DRAM)を含むことができる。いずれの場合も、並列映像符号器のすべてのイントラ予測モードの部分組に関する近似コストを格納することのみによって、モード選択ユニット43は、オンチップメモリに関する要求を軽減させることができ、及びそれによって映像符号器の生産に関するコストの節約を提供することができる
[0079]モード選択ユニット43は、モード選択ユニット43が近似コストを生成している対象であるイントラ予測モードの第1の組及び/又は第2の組からモードを選択することができる。例えば、モード選択ユニット43は、最低の近似コストに関連するモードを選択することができる。その他の例においては、モード選択ユニット43は、第1の組及び第2の組に含まれている1つ以上のモードの直近に使用された組を決定することができる。モード選択ユニット43は、1つ以上のモードの直近に使用された組内の最低の近似コストに関連するモードを選択することができる。直近に使用された組内に含まれているモードは、モード選択ユニット43による直近の選択の前数内で選択されたモードであることができる。1つ以上のモードの直近に使用された組は、第1及び第2の組内に含まれているすべてのモードの部分組であることができる。1つ以上のモードの近似コストに基づいて現在のブロックをコーディングするためのモードを選択した時点で、モード選択ユニット43は、選択されたモードを用いて現在のブロックを符号化するためにイントラ予測ユニット46にデータを送信することができる。幾つかの例においては、本開示の技法は、映像符号器20によって平行して実行することができる。すなわち、映像符号器20は、現在のブロックを符号化するためにイントラ予測を行うことと同時並行して現在のブロックに隣接する映像データの1つ以上の近隣ブロックに関してイントラ予測又はインター予測のいずれかを行うことができる。
【0073】
[0080]イントラ予測ユニット46は、イントラ予測モードの第1の組又はイントラ予測モードの第2の組によって識別されたイントラ予測モードのうちの1つ、すなわち、現在のブロックに関するモード選択ユニット43によって選択されたモード、に従って現在のブロックを符号化するためのイントラ予測を行うことができる。このように、イントラ予測46は、イントラ予測モードの第1の組及びイントラ予測モードの第2の組において識別された各イントラ予測モードに関して計算された近似コストに基づいて現在のブロックを符号化することができる。モード選択ユニット43によって示された選択されたモードを使用することによって、イントラ予測ユニット46は、現在のブロックを符号化するための予測ブロックを決定することができる。例えば、予測モードは、イントラ予測モードが予測ブロックを選択するためにいずれのブロック又はブロックのグループを評価するかを示すことができる。
【0074】
[0081]イントラ予測ユニット46が現在の映像ブロックに関する予測ブロックを決定した後は、加算器50は、現在の映像ブロックから予測ブロックを減じることによって残差映像ブロックを形成することができる。残差ブロック内の残差映像データは、1つ以上のTUに含めることができ及び変換処理ユニット52に適用することができる。変換処理ユニット52は、変換、例えば、離散コサイン変換(DCT)又は概念的に類似の変換、を用いて残差映像データを残差変換係数に変換する。変換処理ユニット52は、残差映像データをピクセル領域から変換領域、例えば、周波数領域、に変換することができる。
【0075】
[0082]変換処理ユニット52は、結果的に得られた変換係数を量子化ユニット54に送信することができる。量子化ユニット54は、ビットレートをさらに低下させるために変換係数を量子化する。量子化プロセスは、それらの係数の一部又は全部に関連するビット深度を小さくすることができる。量子化度は、量子化パラメータを調整することによって変更することができる。幾つかの例においては、量子化ユニット54は、量子化された変換係数を含む行列の走査を行うことができる。代替として、エントロピー符号化ユニット56は、その走査を行うことができる。
【0076】
[0083]量子化に引き続き、エントロピー符号化ユニット56は、量子化された変換係数をエントロピーコーディングする。例えば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、構文に基づくコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔分割エントロピー(PIPE)コーディング、又はその他のエントロピーコーディング方法又は技法を実行することができる。エントロピーエントロピー符号化ユニット56は、コーディング中の現在の映像スライスに関する動きベクトル及びその他の構文要素をエントロピー符号化することもできる。エントロピー符号化ユニット56によるエントロピーコーディングに引き続き、符号化されたビットストリームは、映像復号器30に送信すること、又は、映像復号器30によるのちの送信又は取り出しのためにアーカイブに保存することができる。
【0077】
[0084]エントロピーコーディングユニット56は、本開示の技法により選択されたイントラ予測モードを示す情報を符号化することができる。映像符号器20は、1つ以上のイントラ予測モードインデックステーブルと複数の修正されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)、様々なブロックに関するコンテキストを符号化することの定義、符号化された映像データ、等を送信されるビットストリーム構成データ内に含めることができる。映像符号器20が送信されるビットストリーム内に含めることができる。映像符号器20が送信されるビットストリーム内に含めることができるこれらのタイプの情報は、典型的であり、その他の数多くのタイプの情報もビットストリームに含めることができる。
【0078】
[0085]逆量子化ユニット58及び逆変換処理ユニット60は、基準ピクチャの基準ブロックとしてののちの使用のためにピクセル領域において残差ブロックを再構築するために逆量子化及び逆変換をそれぞれ適用する。動き補償ユニット44は、基準ピクチャリストのうちの1つ内の基準ピクチャのうちの1つの予測ブロックに残差ブロックを加えることによって基準ブロックを計算することができる。動き補償ユニット44は、動き推定における使用のために整数未満のピクセル値を計算するために1つ以上の内挿フィルタを再構築された残差ブロックに適用することもできる。加算器62は、基準ピクチャメモリ64内での格納のために基準ブロックを生成するために動き補償ユニット44によって生成された動き補償された予測ブロックに再構築された残差ブロックを加える。基準ブロックは、後続する映像フレーム又はピクチャにおいてブロックをインターコーディングするための基準ブロックとして動き推定ユニット42及び動き補償ユニット44によって使用することができる。
【0079】
[0086]
図3は、本開示において説明される技法を実装することができる映像復号器例30を示したブロック図である。
図3の例においては、映像復号器30は、エントロピー復号ユニット70と、予測ユニット73と、逆量子化ユニット76と、逆変換処理ユニット78と、加算器80と、基準ピクチャメモリ82と、を含む。予測ユニット73は、動き補償ユニット72と、イントラ予測ユニット74と、を含む。映像復号器30は、幾つかの例では、
図2からの映像符号器20に関して説明された符号化パスと概して相互的な復号パスを行う。
【0080】
[0087]復号プロセス中には、映像復号器30は、符号化された映像スライスの映像ブロックを表す符号化された映像ビットストリーム及び関連付けられた構文要素を映像符号器20から受信する。符号化されたビットストリームは、とりわけ、ブロックに対応し及び本開示の技法による
図2に関して前述されるようにモード選択ユニット43によって選択された予測モードを含むことができる。映像復号器30のエントロピー復号ユニット70は、量子化された係数、動きベクトル、及びその他の構文要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット70は、動きベクトル及びその他の構文要素を動き補償ユニット72に転送することができる。映像復号器30は、映像スライスレベル及び/又は映像ブロックレベルで構文要素を受信することができる。
【0081】
[0088]映像スライスがイントラコーディングされた(I)スライスとしてコーディングされるときには、予測ユニット73のイントラ予測ユニット74は、シグナリングされたイントラ予測モード及び現在のフレーム又はピクチャの以前に復号されたブロックからのデータに基づいて現在の映像スライスの映像ブロックに関する予測データを生成することができる。イントラ予測ユニット74は、現在のブロックに関するイントラ予測モードに対応するインデックスに基づいて映像データの現在のブロックを復号するための該当するイントラ予測モードを決定することができる。イントラ予測モードは、
図2に関して前述されるようにモード選択ユニット43によって予め選択しておくことができ、インデックスは、映像符号器20によって映像復号器30に送信される符号化されたビットストリーム内に含めておくことができる。イントラ予測ユニット74は、インデックスに対応するイントラ予測モードに基づいて予測ブロックを選択することができる。加算器80は、復号された現在のブロックを生成するために逆変換処理ユニット78からの予測ブロックデータ及び残差ブロックデータを加えることができる。メモリ82は、復号された現在のブロックを格納することができ、それは、表示装置によって後続して出力すること又は他のコンピューティングデバイスに送信することができる。
【0082】
[0089]上記のように、本開示の態様は、概して、イントラコーディングに関するものである。従って、本開示の幾つかの技法は、イントラ予測ユニット74によって実行することができる。すなわち、例えば、イントラ予測ユニット74は、以下の
図4A乃至8に関して説明される本開示の技法を実行することができる。その他の例においては、映像復号器30の1つ以上のその他のユニットは、さらに加えて又は代替として、本開示の技法を実行することを担当することができる。
【0083】
[0090]映像ピクチャがインターコーディングされた(すなわち、B、P又はGPB)スライスとしてコーディングされるときには、予測ユニット73の動き補償ユニット72は、動きベクトル及びエントロピー復号ユニット70から受信されたその他の構文要素に基づいて現在の映像スライスの映像ブロックに関する予測ブロックを生成する。予測ブロックは、基準ピクチャリストのうちの1つ内の基準ピクチャのうちの1つから生成することができる。映像復号器30は、基準ピクチャメモリ82に格納された基準ピクチャに基づいてデフォルト構築技法を用いて基準フレームリスト、リスト0及びリスト1、を構築することができる。
【0084】
[0091]動き補償ユニット72は、動きベクトル及びその他の構文要素を構文解析することによって現在の映像スライスの映像ブロックに関する予測情報を決定し、復号中の現在の映像ブロックに関する予測ブロックを生成するために予測情報を使用する。例えば、動き補償ユニット72は、映像スライス、インター予測スライスタイプ(例えば、Bスライス、Pスライス、又はGPBスライス)、スライスに関する基準ピクチャリストのうちの1つ以上に関する構築情報、スライスの各インター符号化された映像ブロックに関する動きベクトル、スライスの各インターコーディングされた映像ブロックに関する動きベクトル、スライスの各インター符号化された映像ブロックに関するインター予測状態、及び現在の映像スライス内の映像ブロックを復号するためのその他の情報、の映像ブロックをコーディングするために使用される予測モード(例えば、イントラ又はインター予測)を決定するために受信された構文要素の一部を使用する。
【0085】
[0092]動き補償ユニット72は、内挿フィルタに基づいて内挿を行うこともできる。動き補償ユニット72は、基準ブロックの整数未満のピクセルに関する内挿値を計算するために映像ブロックの符号化中に映像符号器20によって使用される内挿フィルタを使用することができる。この場合は、動き補償ユニット72は、受信された構文要素から映像符号器20によって使用される内挿フィルタを決定すること及び予測ブロックを生成するために内挿フィルタを使用することができる。
【0086】
[0093]逆量子化ユニット76は、ビットストリーム内で提供され、エントロピー復号ユニット70によって復号された量子化された変換係数を逆量子化する、すなわち、量子化解除する。逆量子化プロセスは、量子化度、そして同様に、適用されるべき逆量子化度、を決定するために映像スライス内の各映像ブロックに関して映像符号器20によって計算された量子化パラメータを使用することを含むことができる。逆変換処理ユニット78は、ピクセル領域において残差ブロックを生成するために逆変換、例えば、逆DCT、逆整数変換、又は概念的に類似する逆変換プロセスを変換係数に適用する。
【0087】
[0094]動き補償ユニット72が動きベクトル及びその他の構文要素に基づいて現在の映像ブロックに関する予測ブロックを生成した後は、映像復号器30は、逆変換処理ユニット78からの残差ブロックを、動き補償ユニット72によって生成された対応する予測ブロックと加算することによって復号された映像ブロックを形成する。加算器80は、この加算動作を行うコンポーネント又はコンポーネント(複数)を表す。希望される場合は、ブロッキネスアーティファクトを除去するために復号されたブロックをフィルタリングするためにデブロッキングフィルタを適用することもできる。ピクセル遷移を平滑化するか、又は映像品質を向上するために(コーディングループ内又はコーディングループ後の)その他のループフィルタを使用することもできる。所定のフレーム又はピクチャ内の復号された映像ブロックは、基準ピクチャメモリ92に格納され、それは、後続する動き補償のために使用される基準ピクチャを格納する。基準ピクチャメモリ82は、表示装置、例えば、
図1の表示装置32、でののちの提示のために復号された映像も格納する。
【0088】
[0095]
図4Aは、本開示において説明される技法による、映像コーダが選択することができるイントラ予測モードの概念上の表現を例示したブロック図である。映像コーディング規格、例えば、H.264/AVC、MPEG2、及びHEVC、は、ブロックに基づくハイブリッド映像コーディングフレームワークを使用する。該フレームワークでは、ピクチャは、異なるサイズのブロックに分割され、それらは、HEVCでは、CU(コーディングユニット)と呼ばれる。前述されるように、各CUは、予測(PU)又は変換(TU)のためにより小さいブロックに分割することができる。各PUは、イントラモードの場合は現在のスライス内において又はインターモードの場合は時間的に近隣のスライスから予測することができる。予測誤差は、
図1乃至3において示されるように、可変長コーディング技法を用いて変換、量子化及びコーディングされる。
【0089】
[0096]映像データ内では、長方形エリア内のサンプルとそのエリアに隣接するサンプルとの間には相対的に高い相関関係が存在することができる。幾つかの例においては、HEVC、等の映像コーディング技法は、隣接する、前にコーディングされたPU内のサンプルから現在のPUを予測するためにイントラ予測を使用する。HEVCでは、イントラ予測は、異なるPUに関して35のモードを提供する。それらの35のモードは、プレナーモード(planar mode)(モード0)、DCモード(モード1)及び角度±[0,2,5,9,13,17,21,26,32]/32の33の予測方向に対応する33の角(angular)予測モードを含む。
【0090】
[0097]
図4Aは、HEVCにおいて定義されるすべてのモードに関する35の角予測方向を例示する。プレナーモード(“モード0”又は“0”で表される)では、映像符号器20は、現在のブロックの左カラムに隣接するカラム内のピクセル値から現在のブロックに関するピクセル値を予測することができる。DCモード(“モード1”又は“1”で表される)では、映像符号器20は、現在のブロックの最上ローの上方のロー内のピクセルの値及び現在のブロックの左端のカラムに隣接するカラム内のピクセルの値の和の平均から予測ブロックを計算することができる。角予測モードでは、映像符号器20は、典型的には現在のブロックの最上ローの上方のローからのピクセル値又は現在のブロックの左端のカラムに隣接するカラムのピクセル値から(上においてイントラ予測モード2乃至34として示される)ある所定の角度に沿ってピクセルを予測することができる。
【0091】
[0098]幾つかの実装においては、映像符号器は、従属する近隣ブロックのうちの一部に関して予測モードが決定される前でも現在のブロックに関する異なるイントラ予測モードに関連するレート歪み値が利用可能であることを要求することができる。この要求は、実装の複雑さ(又はコスト)とコーディング性能、例えば、コーディング効率、スループット、等との間での設計上のトレードオフに起因して必要になることがある。例えば、映像符号器は、イントラモードコスト及びインターモードコストをそれぞれ検査する際に幾つかのブロック、例えば、LCU内のすべての可能性のあるブロック、を平行して取り扱わなければならないことがある。この場合は、それらのブロック間での現在のブロックに関して、映像符号器は、従属する近隣ブロックの予測モード、例えば、イントラ又はインター、を決定することができる前に異なるイントラ予測モードを用いて現在のブロックの歪み値を計算することが必要になることがある。
【0092】
[0099]該実装においては、現在のブロックに関する、ビット数の点でのイントラ予測モードのシグナリングコストは、その時に決定されない近隣ブロックの予測モードに依存するため入手することができない。その結果、歪みのレートは、現在のブロックに関しても利用できないことがある。映像符号器は、LCU内の各ブロックに関する各イントラ予測モードに関するすべての歪み値を格納することができる。映像符号器が従属する近隣ブロックの予測モードを決定するのちの段階において、映像符号器は、各イントラ予測モードに関連する現在のブロックに関する歪み値レートをその場で決定することができ及び取り出された関連する歪み値を用いてコストを計算することができる。該方式は、各ブロックに関するすべての可能性のあるイントラ予測モードに関してラグランジュ乗数を用いたコスト評価を可能にする一方で、1つのLCU内のすべての可能性のあるブロックに関するすべての歪み値を保持するために要求される記憶量が大きくなる可能性がある。例えば、LCUサイズが32×32であると仮定し、及び、各歪み値を格納するために32ビット及び各モードインデックスに6ビットを要すると仮定し、LCU内のすべての可能性のあるブロックに関する各イントラ予測モードのために必要な記憶量が表1に示される。
【表1】
【0093】
[0100]表1に示される3230ビットのうちで、2720ビットは、歪み尺度値、510ビットはモードインデックス値を格納するために使用される。
図1に示されるすべての35モードがLCU内の各PU(又はブロック)に関して格納される場合は、歪み尺度値を格納するために合計2720
*35=95200ビットが必要である。該記憶サイズは、実際にはコスト高になる可能性がある。
図4Bにおいてさらに説明されるように、映像符号器は、イントラ予測コーディング中に35のイントラ予測モードの各々に関する近似コストを計算するのを回避することができ、その代わりに、1つ以上の“最も可能性が高い”イントラ予測モードを識別することができる。しかしながら、幾つかの実装においては、映像符号器は、幾つかのブロックに関するイントラ予測を平行して行うことができ、それは、映像符号器がこれらの最も可能性が高いモードを決定するのを可能にしない。
【0094】
[0101]本開示の技法により、各々の可能性のある予測モードに関する近似コスト値を決定するのではなく、映像符号器20は、すべての可能性のある予測モードの部分組に関する近似コスト値を決定することができる。すなわち、映像符号器20は、選択されたモードに関する近似の歪みレートを表す対応する近似コスト値に基づいてモードを選択することができる。各々の可能性のある予測モードに関する近似コスト値を決定するではなく、映像符号器20は、すべての可能性のある予測モードの部分組に関する近似コスト値を決定することができる。例えば、映像符号器20は、
図2において説明される1つ以上の選択技法に基づいて、予め定義された予測モードの第1の組、及び追加で、予測モードの第2の組を決定することができる。総じて、第1及び第2の組は、すべての可能性のある予測モードの部分組を備える。映像符号器20は、所定のブロックをコーディングするときにのちに使用するために部分組の1つ以上のモードに対応する近似コスト値を格納することができる。部分組内の予測モードの近似コスト値に基づいて、映像符号器20は、引き続いて、所定のブロックをコーディングするための予測モードを選択する。第1の組及び第2の組の両方において指定される予測モードの総数は、すべての可能性のある予測モードの総数よりも少ないため、これらの近似コスト値を格納するために映像符号器23によって要求されるオンチップメモリの量は、すべての可能性のある予測モードに関する近似コスト値を計算するよりも小さいことができる。
【0095】
[0102]
図4Bは、本開示において説明される技法による、イントラ予測コーディングされるべき現在のブロック及び近隣ブロックの概念的表現を例示したブロック図である。
図4Bは、イントラコーディング中に考慮することができる、現在のコーディングユニット(“現在のCU”)と呼ぶことができる現在のブロック100及び2つの近隣ブロック、ブロック102(“ブロックA”)及びブロック104(“ブロックB”)、の例を示す。例えば、映像符号器は、(現在のブロックの左に位置する)近隣ブロック102及び(現在のブロックの上方に位置する)近隣ブロック104をコーディングするために使用されるイントラ予測モードを現在のブロックの最も可能性が高いイントラモードとみなすことができる。
【0096】
[0103]
図2及び4Aにおいて前述されるように、映像符号器は、フルレート−歪みコストを計算するのではなく、レート−歪みコストの近似値を求めることができる近似コストを計算することができる。可能性のあるイントラ予測モードの各々に関する近似コストを計算する代わりに、映像符号器は、イントラ予測コーディング中に1つ以上のいわゆる“最も可能性が高い”イントラ予測モードを識別することができる。最も可能性が高いモードを識別するために、映像符号器は、(現在のブロックに隣接する近隣ブロックでしばしばある)前に符号化されたブロックのイントラ予測モードを識別することができる。これらのいわゆる近隣ブロックのイントラモードは、現在のブロックに対する近隣ブロックの空間的な近接性に起因して現在のブロックと同じである又は類似する確率が相対的に高いことができる。映像符号器は、近似コストの計算数を、これらの最も可能性が高いモード又はこれらの最も可能性が高いモード及びイントラ予測を行うときにその他のモードと比較して使用される可能性が統計的により高いその他の可能性のあるモード(例えば、プレナー(planar)モード及びDCモード)のみに減らすことができる。
【0097】
[0104]しかしながら、幾つかの実装においては、映像符号器は、幾つかのブロックに関するイントラ予測を平行して行うことができ、それは、映像符号器がこれらの最も可能性が高いモードを決定するのを可能にしない。例えば、映像符号器は、幾つかの異なるサイズのコーディングユニットに分割することができる最大のコーディングユニット(LCU)に関するイントラ予測を行うことができる。これらのCUのうちの各々が同時並行してイントラ予測又はインター予測中である場合は、映像符号器は、現在のブロックに関する最も可能性が高いモードを決定するためにそれらを使用することができない。例示を目的として、映像符号器は、現在のブロック100に関するイントラ予測を行う一方で、
図4Bに示される近隣ブロック102及び104の両方をイントラ予測していることができる。映像符号器がブロック102及び104のイントラ予測を完了していないことを考慮した場合、映像符号器は、ブロック102及び104を符号化するために使用されるイントラ予測モードをまだ知らず、従って、現在のブロック100に関してイントラ予測を行うことを試みるときに最も可能性が高いモードを決定することができる。
【0098】
[0105]イントラ予測を行うときに最も可能性が高いモードを利用することができない結果として、映像符号器は、LCU内の各CUに関して各イントラ予測モードに関する近似コストを計算するのを試みることができる。映像符号器は、32ビット近似コストがいずれのモードに対応するかを示すために6ビットを用いて、これらの近似コストを例えば32ビット値として格納することができる。映像符号器が近隣ブロック102及び104の符号化を完了させた時点で、映像符号器は、様々なモードのうちのいずれがより複雑なレート歪み解析を用いてより完全に試験されるべきであるかを識別するために現在のブロックに関して計算された近似コストを用いて、現在のブロック100に関する最も可能性が高いモードを識別することができる。
【0099】
[0106]上記のプロセスは、(映像符号器が幾つかのブロックに関するイントラ予測及びインター予測を同時並行して行うという意味で)非常に並列的である映像コーダがフルレート歪み解析を用いて解析される予測ブロックの数を減少させることによってイントラ予測をより効率的に行うのを可能にすることができる一方で、このプロセスは、結果的には、近似コストを格納するために要求されるメモリに起因してコストが高い映像符号器になってしまうおそれがある。
【0100】
[0107]本開示において説明される技法により、並列映像符号器、例えば、幾つかの例における映像符号器20、(現在のブロック100を符号化するのと同時並行して近隣ブロック102及び104を符号化する映像符号器を意味する)、は、
図4Aにおいて例示されるように、合計35のイントラ予測モードの部分組のみに関する近似コストを格納することができ、それによって、オンチップメモリに関する要求を軽減させること及び映像符号器の生産に関するコストの節約を提供することができる。動作上は、映像符号器20は、現在のブロック100に関するイントラ予測モードの第1の予め定義された組を決定することができる。第1の予め定義された組内のイントラ予測モードのこの数は、現在のブロックを符号化するために映像符号器20によって使用することが可能なイントラ予測モードの総数(例えば、
図4Aにおいて示される35のイントラ予測モード)よりも少ない。しばしばであるが、イントラ予測モードのこの第1の予め定義された組は、イントラ予測モードのうちの残りのそれら(例えば、モード0、1及び26)よりも頻繁に生じるとして統計的に識別されている1つ、2つ又は3つのイントラ予測モードを備える。
【0101】
[0108]映像符号器20は、イントラ予測モードの第1の予め定義された組に加えて現在のブロック100に関するイントラ予測モードの第2の組を決定することもできる。繰り返すと、イントラ予測モードのこの第2の組は、現在のブロックを符号化するために使用することが可能なイントラ予測モードの総数以下のイントラ予測モード数を含むことができる。モードの第2の組は、予め定義することができない。換言すると、
図2において前述されるように、イントラ予測モードの第1の予め定義された組は、設定することができ(ただし、特定のモードリストは、LCU、スライス、ピクチャ、シーケンス、等の間で変化することができる)、他方、第2の組は、サンプリング、又はその他のプロセスによって、導き出されるか又はランダムに決定される。
【0102】
[0109]映像符号器20は、イントラ予測モードの第1の予め定義された組内で識別された各イントラ予測モード及びイントラ予測モードの第2の組内で識別された各イントラ予測モードに関する近似コストを計算することができる。映像符号器20は、イントラ予測モードの第1の予め定義された組内で識別された各イントラ予測モード及びイントラ予測モードの第2の組内で識別されたイントラ予測モードの一部に関する近似コストをメモリに格納することができる。第1の予め定義された組内で指定されたイントラ予測モード及び第2の組内で選択されたそれらの総数(すなわち、和)は、現在のブロック100を符号化するために使用可能なイントラ予測モードの総数よりも少ないことを考慮した場合、映像符号器20は、これらの近似コストを格納するために要求されるオンチップメモリの量を低減させることができる。
【0103】
[0110]
図5は、本開示の技法による、複数の、異なる予測モードから選択するときにレート歪み値を格納するために要求されるスペースを縮小する態様を行う際の映像コーダ、例えば、
図2に示される映像符号器20、の典型的な動作を例示したフローチャートである。幾つかの例においては、映像符号器20は、各PUに関して、Mの予め定義されたイントラ予測モードに関連する歪み尺度を格納することができる。幾つかの例においては、映像符号器20は、映像符号器20によって決定された及び/又は格納された歪み尺度を有するすべての可能性のある残りのモードからNのモードをさらに選択することができる。このように、映像符号器20は、合計M+Nのモードをすべての可能性のあるモードの部分組として格納することができる。一例として、映像符号器20は、Mをモード1に設定することができ、それは、プレナーモードとして固定される。映像符号器20は、Nをモード2又はモード3のいずれかに設定することができる。映像符号器20は、利用可能なレート情報に基づいてラグランジュ乗数を用いて部分組から“最良の”モードを選択することができる。例えば、映像符号器20は、最低の近似コストを有するモードとして部分組から“最良の”モードを選択することができる。今度は、これらの技法例をさらに示すために
図5のフローチャートが参照される。
【0104】
[0111]最初に、映像符号器20を最初に参照し、予測ユニット41は、映像データの1つ以上の映像ブロックを符号化のために受信することができる。コーディングされるべき現在のブロックを決定したことに応答して、モード選択ユニット43は、上述されるように、符号化されるべき映像データの現在のブロックに関するイントラ予測モードの第1の組を決定することができる(120)。幾つかの例においては、イントラ予測モードの第1の組は、イントラ予測モードの予め定義されたグループを含む。イントラ予測モード(例えば、モード0、1及び26)の予め定義されたグループは、イントラ予測モードのうちの残りのそれらよりも頻繁に生じるとして統計的に識別されているイントラ予測モードを含むことができる。幾つかの例においては、イントラ予測モードの第1の組は、現在のブロックを符号化するために使用することが可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含む。
【0105】
[0112]モード選択ユニット43は、次に、イントラ予測モードの第1の予め定義された組に加えて現在のブロックに関するイントラ予測モードの第2の組を決定することができる(122)。
図2において示されるように、モード選択ユニット43は、1つ以上のイントラ予測モードを選択するために、1つ以上の選択技法、例えば、ランダム選択、サンプリング選択、等、を実装することができる。イントラ予測モードの第2の組は、現在のブロックを符号化するために使用することが可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含むことができる。さらに、第1の組及び第2の組の両方は、合計して、現在のブロックを符号化するために使用することが可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含むことができる。
【0106】
[0113]幾つかの例においては、モード選択ユニット43は、イントラ予測モードの第1の組に含まれる各イントラ予測モード及びイントラ予測モードの第2の組に含まれる各イントラ予測モードに関する近似コストを計算する(124)。
図2において示されるように、近似コストは、イントラ予測モードのうちの対応する1つを用いて映像データの現在のブロックを符号化するレート歪みコストの近似値であることができる。モード選択ユニット43は、1つ以上の歪み尺度例、例えば、二乗歪み和(SSD)、差分絶対値和(SAD)、及び絶対変換差和(SATD)、を用いて、1つ以上のコスト近似技法例を実装することができる。
【0107】
[0114]モード選択ユニット43は、イントラ予測モードの第1の組において識別された各イントラ予測モードに関する及びイントラ予測モードの第2の組において識別されたイントラ予測モードの一部又は全部に関する近似コストをメモリに格納することができる(126)。メモリは、映像符号器20を実装するマイクロプロセッサ内に含められる又はマイクロプロセッサと一体化されるオンチップメモリ(例えば、レジスタ、オンチップキャッシュ、等)内に存在することができる。従って、第1及び第2の組に含まれるイントラ予測モードに関する近似コストは、のちの使用のために映像符号器20によって取り出すことができる。
【0108】
[0115]モード選択ユニット43は、イントラ予測モードの第1の組及び/又は第2の組からモードを選択することができ、それは、イントラ予測ユニット46が現在のブロックをイントラコーディングするために使用することができる(128)。例えば、モード選択ユニット43は、最低の近似コストに関連する最良のモードを第1及び第2の組から選択することができる。そのモードを選択した時点で、モード選択ユニット43は、選択されたモードを指定するデータをイントラ予測ユニット46に送信することができる。
【0109】
[0116]
図2の例においてさらに説明されるように、イントラ予測ユニット46は、モード選択ユニット43から受信されたモードを用いて、選択されたモードに従って現在のブロックを符号化するためにイントラ予測を行うことができる(130)。このように、イントラ予測は、最良のモードがモード選択ユニット43によって選択されたイントラ予測モードの第1の組及びイントラ予測モードの第2の組において識別された各イントラ予測モードに関して計算された近似コストに基づく。
【0110】
[0117]
図6は、本開示の技法による、複数の、異なる予測モードから選択するときにレート歪み値を格納するために要求されるスペースを縮小する態様を行う際の映像コーダ、例えば、
図2に示される映像符号器、の典型的な動作を例示したフローチャートである。幾つかの例においては、映像符号器20は、各PUに関して、Mの予め定義されたイントラ予測モードに関連する歪み尺度、例えば、近似コスト、を格納することができる。幾つかの例においては、映像符号器20は、ここにおいて説明される1つ以上の選択技法を用いて、部分組を形成するために歪み尺度に基づいて残りの可能性のあるモードの中からNのモードを選択することができる。映像符号器20は、これらのNのモードの歪み尺度をMの予め定義されたモードの重みが付けられた歪み尺度と比較することができる。重み付け係数は、1よりも小さく、0よりも大きいことができ、その場合は、所定の予め定義されたモードの歪み尺度とそれらのNのモードの各々の歪み尺度との間の差分がスレショルド値よりも小さい場合は(すなわち、所定の予め定義されたモードの歪み尺度がNのモードのそれらの歪み尺度よりもはるかに大きすぎる)、映像符号器20は、所定の予め定義されたモードを選択し、映像符号器20が現在のブロックをイントラ予測するための最良のモードをのちに選択するモードの結合された部分組内にそれを加えることができる。このように、映像符号器20は、モードの結合された部分組内にTのモードの総数を格納することができ、ここで、Tは、N乃至N+Mの間のうちの1つに等しい。映像符号器20は、入手可能なレート情報に基づいてラグランジュ乗数を用いて部分組から“最良の”モードを選択することができる。例えば、映像符号器20は、最低の近似コストを有するモードとして“最良の”モードを部分組から選択することができる。今度は、これらの技法例をさらに示すために
図6のフローチャートが参照される。
【0111】
[0118]最初に、映像符号器20を最初に参照し、予測ユニット41は、映像データの1つ以上の映像ブロックを符号化のために受信することができる。コーディングされるべき現在のブロックを決定したことに応答して、モード選択ユニット43は、上述されるように、符号化されるべき映像データの現在のブロックに関するイントラ予測モードの第1の組を決定することができる(140)。幾つかの例においては、イントラ予測モードの第1の組は、イントラ予測モードの予め定義されたグループを含む。イントラ予測モードの予め定義されたグループは、イントラ予測モードのうちの残りのそれらよりも頻繁に生じるとして統計的に識別されているイントラ予測モードを含むことができる。幾つかの例においては、イントラ予測モードの第1の組は、現在のブロックを符号化するために使用することが可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含む。
【0112】
[0119]モード選択ユニット43は、次に、イントラ予測モードの第1の予め定義された組に加えて現在のブロックに関するイントラ予測モードの第2の組を決定することができる(142)。
図2において示されるように、モード選択ユニット43は、1つ以上のイントラ予測モードを選択するために、1つ以上の選択技法、例えば、ランダム選択、サンプリング選択、等、を実装することができる。イントラ予測モードの第2の組は、現在ブロックを符号化するために使用することが可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含むことができる。さらに、第1の組及び第2の組の両方は、合計して、現在のブロックを符号化するために使用することが可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含むことができる。
【0113】
[0120]モード選択ユニット43は、幾つかの例においては、イントラ予測モードの第2の組に含まれる各イントラ予測モードに関する近似コストを計算する(144)。
図2において示されるように、近似コストは、イントラ予測モードのうちの対応する1つを用いて映像データの現在のブロックを符号化するレート歪みコストの近似値であることができる。モード選択ユニット43は、1つ以上の歪み尺度例、例えば、二乗歪み和(SSD)、差分絶対値和(SAD)、及び絶対変換差和(SATD)、を用いて、1つ以上のコスト近似技法例を実装することができる。
【0114】
[0121]モード選択ユニット43は、幾つかの例においては、イントラ予測モードの第1の組に含まれる各イントラ予測モードに関する重みが付けられた近似コストを計算する(146)。すなわち、モード選択ユニット43は、イントラ予測モードの第1の組において識別された各イントラ予測モードに関する重み付き近似コストを計算するためにイントラ予測モードの第1の予め定義された組において識別された各イントラ予測モードに関して計算された近似コストの各々に重みを加えることができる。例えば、モード選択ユニット43は、イントラ予測モードの第1の組において最低のコストを有する2つ以上のモードの平均に少なくとも部分的に基づく重み付け係数を決定することができる。すなわち、モード選択ユニット43は、その平均がより大きいときにはより大きい重み付け係数、その平均がより小さいときにはより小さい重み付け係数を適用することができる。重み付け係数の大きさは、2つ以上のモードの平均に比例することができる。その他の例においては、イントラ予測モードの第1の組内の2つ以上のモードのコストの分散を同様に使用することができる。幾つかの例においては、重み付け係数は、0乃至1の範囲内に含めることができるが、連続する値及び/又は個別の値のあらゆる適切な範囲が可能である。一例として、重み付け係数を適用するために、モード選択ユニット43は、所定のイントラ予測モードに関する重み付け係数及び近似コストの積として所定のイントラ予測モードに関する重み付き近似コストを生成することができる。その他の例においては、モード選択ユニット43は、所定のイントラ予測モードに関する重み付け係数及び近似コストの和として所定のイントラ予測モードに関する重み付き近似コストを生成することができる。
【0115】
[0122]モード選択ユニット43は、次に、第1の組からの所定のモードに関連する重み付き近似コストを選択することができる(148)。重み付き近似コストを選択した時点で、モード選択ユニット43は、第2の組内のモードの重み付き近似コストと近似コストの間の差分がスレショルド値よりも小さいかどうかを決定することができる(147)。すなわち、モード選択ユニット43は、イントラ予測モードの第2の組内において識別された各イントラ予測モードに関して計算された近似コストの各々と重み付き近似コストを比較することができる。幾つかの例においては、モード選択ユニット43は、第2の組内の複数のモードの重み付き近似コストと近似コストの間の差分がスレショルド値よりも小さいかどうかを決定することができる。例えば、モード選択ユニット43は、第2の組内の複数の近似コストの平均又は複数の近似コストに基づくその他の適切な計算された値を決定することができる。
【0116】
[0123]いずれの場合も、第2の組の重み付き近似コストと近似コストとの間の差分がスレショルド値よりも小さい場合は(152)、モード選択ユニット43は、少なくとも選択されたモードと第2の組の1つ以上のモードとを含む結合されたモードの組内にモードを格納することができる(154)。モード選択ユニット43は、モードに関連する近似コスト値も格納することができる。代替として、第2の組の重み付き近似コストと近似コストとの間の差分がスレショルド値よりも小さくない場合は(150)、モード選択ユニット43は、結合されたモードの組内にモードを格納することができない。すなわち、モード選択ユニット43は、上述されて(147)において例示される比較に基づいてイントラ予測モードの第1の予め定義された組において識別されたイントラ予測モードに関して計算された近似コストをメモリに格納することができる。幾つかの例においては、モード選択ユニット43は、モード選択ユニット43によってまだ評価されていない重み付き近似コストに関連する第1の組内の追加のモードが存在するかどうかを決定することができる(155)。
【0117】
[0124]追加の評価されないモードが第1の組内に存在する場合は、モード選択ユニット43は、次の評価されていないモードを選択し(156)、選択されたモードを評価することができる(148)。代替として、モード選択ユニット43が第1の組内の各モードを評価済みである場合は(158)、モード選択ユニット43は、次に、モードに関連する近似コスト値に基づいて結合されたモードの組からモードを選択することができる(160)。幾つかの例においては、モード選択ユニット43は、最低のコスト値に関連するモードを選択することができる。選択されたモードの表示をモード選択ユニット43から受信した時点で、イントラ予測ユニット46は、選択されたモードに従って現在のブロックを符号化するためのイントラ予測を行うことができる(162)。
【0118】
[0125]
図7は、本開示の技法による、複数の、異なる予測モードから選択するときにレート歪み値を格納するために要求されるスペースを縮小する態様を行う際の映像コーダ、例えば、
図2に示される映像符号器20、の典型的な動作を例示したフローチャートである。幾つかの例においては、映像符号器20は、各PUに関して、部分組を形成するために(レートRのない歪み尺度Dのみに関して)最良のNのノードのみを選択することができ、及び、モード選択ユニット43は、対応する歪み尺度を格納することができる。すなわち、幾つかの例においては、モード選択ユニット43は、イントラ予測モードのヌル又は空の組を備えるイントラ予測モードの第1の予め定義された組を決定することができ、イントラ予測モードの第2の組のみがレート−歪み解析によって試験されることを意味する。これは、映像符号器に関するオンチップメモリ上の要求をさらに軽減することができる。モード選択ユニット43は、レート情報が利用可能であるときにラグランジュ乗数を用いて部分組から最良のモードを選択することができる。例えば、映像符号器20は、最低の近似コストを有するモードとして部分組から“最良の”モードを選択することができる。今度は、これらの技法例をさらに示すために
図7のフローチャートが参照される。
【0119】
[0126]最初に、モード選択ユニット43は、1つ以上の選択技法を用いてすべての可能性のあるイントラ予測モードの部分組を決定することができる(180)。例えば、
図2において説明されるように、モード選択ユニット43は、1つ以上のイントラ予測モードを選択するために、1つ以上の選択技法、例えば、ランダム選択、サンプリング選択、等、を実装することができる。幾つかの例においては、モード選択ユニット43は、スレショルド値より小さいモード数量を選択することができる。その他の例においては、モード選択ユニット43は、スレショルド値より大きいモード数量を選択することができる。
【0120】
[0127]モード選択ユニット43は、次に、イントラ予測モードの部分組内に含まれる各イントラ予測モードに関する近似コストを計算することができる(182)。本開示において前述されるように、モード選択ユニット43は、1つ以上の歪み尺度、例えば、二乗歪み和(SSD)、差分絶対値和(SAD)、及び絶対変換差和(SATD)、を用いて1つ以上のコスト近似技法を実装することができる。モード選択ユニットは、各近似コストを計算するために1つ以上のコスト近似技法を使用することができる。
【0121】
[0128]モード選択ユニット43は、部分組において識別された各イントラ予測モードに関する近似コストをメモリに格納することができる(184)。メモリは、映像符号器20を実装するマイクロプロセッサ内に含められる又はマイクロプロセッサと一体化されるオンチップメモリ(例えば、レジスタ、オンチップキャッシュ、等)内に存在することができる。従って、部分組内に含まれるイントラ予測モードに関する近似コストは、のちの使用のために映像符号器20によって取り出すことができる。
【0122】
[0129]モード選択ユニット43は、イントラ予測モードの部分組からモードを選択することができ、それは、イントラ予測ユニット46が現在のブロックをイントラコーディングするために使用することができる(186)。例えば、モード選択ユニット43は、最低の近似コストに関連する最良のモードを第1及び第2の組から選択することができる。そのモードを選択した時点で、モード選択ユニット43は、選択されたモードを指定するデータをイントラ予測ユニット46に送信することができる。
【0123】
[0130]イントラ予測ユニット46は、
図2の例においてさらに説明されるように、モード選択ユニット43から受信されたモードを用いて、選択されたモードに従って現在のブロックを符号化するためにイントラ予測を行うことができる(188)。このように、イントラ予測は、最良のモードがモード選択ユニット43によって選択されたイントラ予測モードの部分組において識別された各イントラ予測モードに関して計算された近似コストに基づく。
【0124】
[0131]
図8は、本開示の技法による、複数の、異なる予測モードから選択するときにレート歪み値を格納するために要求されるスペースを縮小する態様を行う際の映像コーダ、例えば、
図2に示される映像符号器、の典型的な動作を例示したフローチャートである。幾つかの例においては、幾つかのPUに関して、映像符号器20は、現在のブロックの近隣ブロックのうちの一部を既に符号化していることができる。映像符号器20は、並列性が高いことができ、映像符号器は、このイントラ予測を行うのと同時並行して近隣ブロックを符号化中であることを意味する。従って、映像符号器20は、所定のモードのコストの推定を向上させるために近隣ブロックの情報を現在のブロックの歪み尺度とともに利用することができる。例えば、現在のブロックがLCU境界上にある場合は、それの近隣ブロックを符号化することができ、従って、近隣ブロックに関する情報のうちの一部又は全部を利用可能である。近隣ブロックのイントラモードは既知であるため、映像符号器20は、近隣ブロックの情報を用いて歪みレートをより正確に推定すること及び現在のブロックに関して各モードに関するラグランジュ乗数を入手することができる。近隣ブロックが完全に符号化及び再構築されないその他のブロック、例えば、現在のブロックを含むLCU内部のそれら、に関しては、映像復号器20は、現在のブロックをイントラ予測するためのモードを選択するために
図1乃至7において前述される1つ以上の技法を使用することに戻ることができる。
【0125】
[0132]このように、イントラ予測モードの第1の組の決定、イントラ予測モードの第2の組の決定、イントラ予測モードの第1の組において識別された各イントラ予測モード及びイントラ予測モードの第2の組において識別された各イントラ予測モードに関する近似コストの計算及び近似コストの格納は、現在のブロックに隣接する映像データの近隣ブロックを符号化するために使用されるイントラ予測モードが現在のブロックに関する最も可能性が高いイントラ予測モードを決定する際に使用するために利用可能であるかどうかに基づいて動的に生じることができる。今度は、これらの技法例をさらに示すために
図8のフローチャートが参照される。
【0126】
[0133]最初に、モード選択ユニット43は、符号化されるべき現在のブロックの少なくとも1つの近隣ブロックを決定することができる(200)。例えば、現在のブロックは、少なくとも1つの近隣ブロックを含む隣接LCUの垂直なブロック境界に沿って存在することができる。他の例においては、現在のブロックは、少なくとも1つの近隣ブロックを含む隣接LCUの水平のブロック境界に沿って存在することができる。いずれの場合も、少なくとも1つの近隣ブロックを決定した時点で、モード選択ユニット43は、少なくとも1つの近隣ブロックが既に符号化されているかどうかを決定することができる(202)。
【0127】
[0134]近隣ブロックが既に符号化されている場合は(206)、モード選択ユニット43は、近隣ブロックのイントラ予測モードを決定することができる(208)。モード選択ユニット43は、現在のブロックに関する歪みレート(例えば、
図2において説明されるR)が、近隣ブロックの歪みレートの推定値又は近隣ブロックの実際の歪みレート値に等しいと決定することができる。現在のブロックの歪み尺度(例えば、
図2において説明されるD)及び近隣ブロックの歪みレートに基づいて、モード選択ユニット43は、現在のブロックに関する選択されたモードのコストを決定することができる(210)。すなわち、モード選択ユニット43は、近隣ブロックのモード及び歪みレート、及び現在のブロックの歪み尺度に基づいて現在のブロックに関するコストを決定することができる。
【0128】
[0135]幾つかの例においては、モード選択ユニット43は、複数の近隣ブロックの各モードに関するコストを決定することができる。その他の例においては、モード選択ユニット43は、近隣ブロックを符号化するためにモード選択ユニット43によって実際に適用されたモードを用いて現在のブロックのコストを決定することができる。いずれの場合も、モード選択ユニット43は、すべての可能性のあるイントラ予測モードの部分組内の近隣ブロックの情報に基づいて1つ以上のモードを格納する。幾つかの例においては、部分組は、1つ以上の予め定義されたイントラ予測モード及び/又はここにおいて説明される選択技法を用いて決定された1つ以上のモードを含むこともできる。次に、モード選択ユニット43は、モード選択ユニット43によって決定された1つ以上のモードのコストに基づいて現在のブロックに関するモードを選択することができる(218)。幾つかの例においては、モード選択ユニット43は、最低のコスト値に関連するモードを選択することができる。選択されたモードの表示をモード選択ユニット43から受信した時点で、イントラ予測ユニット46は、選択されたモードに従って現在のブロックを符号化するためのイントラ予測を行うことができる(220)。
【0129】
[0136]動作に戻り(202)、少なくとも1つの近隣ブロックが符号化されないとモード選択ユニット43が決定した場合は(204)、モード選択ユニット43は、現在のブロックをイントラ予測するための最良のモードを選択するために
図1乃至7において説明される1つ以上の技法を使用することに戻ることができる。例えば、モード選択ユニット43は、すべての可能性のあるイントラ予測モードの少なくとも1つの部分組を決定することができる。例えば、少なくとも1つの部分組は、1つ以上の予め定義されたモードを含むことができる。その他の例においては、部分組は、ここにおいて前述される選択技法を用いてモード選択ユニット43によって選択された1つ以上のモードを含むことができる。さらにその他の例においては、モード選択ユニット43は、予め定義されたモードと1つ以上の選択技法を用いて選択されたモードとをそれぞれ含む予測モードの2つの部分組を決定することができる(212)。
【0130】
[0137]いずれの場合も、モード選択ユニット43は、次に、イントラ予測モードの少なくとも1つの部分組に含まれている各イントラ予測モードに関する近似コストを決定することができる(214)。モード選択ユニット43は、1つ以上の歪み尺度、例えば、二乗歪み和(SSD)、差分絶対値和(SAD)、及び絶対変換差和(SATD)、を用いて、1つ以上のコスト近似技法例を実装することができる。近似コスト値を決定した時点で、モード選択ユニット43は、すべての可能性のあるイントラ予測モードの少なくとも1つの部分組において識別された各イントラ予測モードに関する近似コストをメモリに格納することができる(216)。メモリは、映像符号器20を実装するマイクロプロセッサ内に含められる又はマイクロプロセッサと一体化されるオンチップメモリ(例えば、レジスタ、オンチップキャッシュ、等)内に存在することができる。従って、第1及び第2の組に含まれるイントラ予測モードに関する近似コストは、のちの使用のために映像符号器20によって取り出すことができる。
【0131】
[0138]モード選択ユニット43は、イントラ予測モードの少なくとも1つの部分組からモードを選択することができ、それは、イントラ予測ユニット46が現在のブロックをイントラコーディングするために使用することができる(218)。例えば、モード選択ユニット43は、最低の近似コストに関連する最良のモードを第1及び第2の組から選択することができる。そのモードを選択した時点で、モード選択ユニット43は、選択されたモードを指定するデータをイントラ予測ユニット46に送信することができる。
【0132】
[0139]モード選択ユニット43から受信されたモードを用いて、イントラ予測ユニット46は、
図2の例においてさらに説明されるように、選択されたモードに従って現在のブロックを符号化するためにイントラ予測を行うことができる(220)。このように、イントラ予測は、最良のモードがモード選択ユニット43によって選択されたイントラ予測モードの第1の組及びイントラ予測モードの第2の組において識別された各イントラ予測モードに関して計算された近似コストに基づく。
【0133】
[00140]1つ以上の例において、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらのあらゆる組み合わせにおいて実装することができる。ソフトウェアにおいて実装される場合は、それらの機能は、コンピュータによって読み取り可能な媒体において1つ以上の命令又はコードとして格納又は送信することができる。コンピュータによって読み取り可能な媒体は、コンピュータデータ記憶媒体又は1つの場所から他へのコンピュータプログラムの転送を容易にするあらゆる媒体を含む通信媒体を含むことができる。データ憶媒体は、本開示において説明される技法の実装のために命令、コード及び/又はデータ構造を取り出すために1つ以上のコンピュータ又は1つ以上のプロセッサによってアクセスすることができるあらゆる利用可能な媒体であることができる。一例により、及び制限することなしに、該コンピュータによって読み取り可能な媒体は、希望されるプログラムコードを命令又はデータ構造の形態で搬送又は格納するために使用することができ及びコンピュータによってアクセス可能であるRAM、ROM、EEPROM、CD−ROM又はその他の光学ディスク記憶装置、磁気ディスク記憶装置、又はその他の磁気記憶デバイス、フラッシュメモリ、又はその他のいずれかの媒体を備えることができる。さらに、どのような接続も、コンピュータによって読み取り可能な媒体であると適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバケーブル、より対線、デジタル加入者ライン(DSL)、又は無線技術、例えば、赤外線、無線、及びマイクロ波、を用いてウェブサイト、サーバ、又はその他の遠隔ソースから送信される場合は、該同軸ケーブル、光ファイバケーブル、より対線、DSL、又は無線技術、例えば赤外線、無線、及びマイクロ波、は、媒体の定義の中に含まれる。ここにおいて用いられるときのディスク(disk及びdisc)は、コンパクトディスク(CD)(disc)と、レーザディスク(disc)と、光ディスク(disc)と、デジタルバーサタイルディスク(DVD)(disc)と、フロッピー(登録商標)ディスク(disk)と、Blu−rayディスク(disc)と、を含み、ここで、diskは、通常は磁気的にデータを複製し、discは、レーザを用いて光学的にデータを複製する。上記の組み合わせも、コンピュータによって読み取り可能な媒体の適用範囲内に含められるべきである。
【0134】
[0141]コードは、1つ以上のプロセッサ、例えば、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、又はその他の同等の集積又はディスクリート論理回路によって実行することができる。従って、ここにおいて用いられる場合の用語“プロセッサ”は、上記の構造又はここにおいて説明される技法の実装に適するあらゆるその他の構造のうちのいずれかを意味することができる。さらに、幾つかの態様では、ここにおいて説明される機能は、符号化および復号のために構成された専用のハードウェア及び/又はソフトウェアモジュール内において提供されること、又は組み合わされたコーデック内に組み入れることができる。さらに、技法は、1つ以上の回路又は論理素子内に完全に実装することが可能である。
【0135】
[0142]本開示の技法は、無線ハンドセット、集積回路(IC)又は一組のIC(例えば、チップセット)を含む非常に様々なデバイス又は装置内に実装することができる。本開示では、開示される技法を実施するように構成されたデバイスの機能上の態様を強調するために様々なコンポーネント、モジュール、又はユニットが説明されるが、異なるハードウェアユニットによる実現は必ずしも要求しない。むしろ、上述されるように、様々なユニットは、適切なソフトウェア及び/又はファームウェアと関係させて、コーデックハードウェアユニット内において結合させること又は上述されるように1つ以上のプロセッサを含む相互運用的なハードウェアユニットの集合によって提供することができる。
【0136】
[0126]様々な例が説明されている。これらの及びその他の例は、以下の請求項の範囲内である。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1] 映像データを符号化する方法であって、
符号化されるべき前記映像データの現在のブロックに関するイントラ予測モードの第1の組を決定することであって、イントラ予測モードの前記第1の組は、前記現在のブロックを符号化するために使用することが可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含むことと、
イントラ予測モードの前記第1の予め定義された組に加えて前記現在のブロックに関するイントラ予測モードの第2の組を決定することであって、イントラ予測モードの前記第2の組は、前記現在のブロックを符号化するために使用することが可能なイントラ予測モードの前記総数以下のイントラ予測モード数を含み、前記第1の組及び前記第2の組の両方は、合計して、前記現在のブロックを符号化するために使用することが可能なイントラ予測モードの前記総数よりも少ないイントラ予測モードを含むことと、
イントラ予測モードの前記第1の組に含まれる各イントラ予測モード及びイントラ予測モードの前記第2の組に含まれる各イントラ予測モードに関する近似コストを計算することであって、前記近似コストは、前記イントラ予測モードのうちの前記対応する1つを用いて映像データの前記現在のブロックを符号化するレート歪みコストの近似値であることと、
イントラ予測モードの前記第1の組において識別された各イントラ予測モードに関する及びイントラ予測モードの前記第2の組において識別された各イントラ予測モードに関する前記近似コストをメモリに格納することと、
イントラ予測モードの前記第1の組及びイントラ予測モードの前記第2の組において識別された各イントラ予測モードに関して計算された前記近似コストに基づいてイントラ予測モードの前記第1の組又はイントラ予測モードの前記第2の組によって識別された前記イントラ予測モードのうちの1つに従って前記現在のブロックを符号化するためにイントラ予測を行うことと、を備える、方法。
[C2] 前記現在のブロックを符号化するためにイントラ予測を行うことと同時並行して前記現在のブロックに隣接する前記映像データの1つ以上の近隣ブロックに関するイントラ予測又はインター予測を行うことをさらに備えるC1に記載の方法。
[C3] イントラ予測モードの前記第1の組において識別された各イントラ予測モード及びイントラ予測モードの前記第2の組において識別された各イントラ予測モードに関する前記近似コストを格納することは、
イントラ予測モードの前記第1の組において識別された各イントラ予測モードに関する重み付き近似コストを計算するためにイントラ予測モードの前記第1の予め定義された組において識別された各イントラ予測モードに関して計算された前記近似コストの各々に重みを加えることと、
イントラ予測モードの前記第2の組において識別された各イントラ予測モードに関して計算された前記近似コストの各々と前記重み付き近似コストを比較することと、
前記比較に基づいてイントラ予測モードの前記第1の予め定義された組において識別されたイントラ予測モードに関して計算された前記近似コストを前記メモリに格納することと、を備えるC1に記載の方法。
[C4] イントラ予測モードの前記第2の組において識別された各イントラ予測モードに関して計算された前記近似コストの各々と前記重み付き近似コストを比較することは、
前記重み付き近似コストから1つの重み付き近似コストを選択することと、
前記重み付き近似コストと各イントラ予測されたモードに関して計算された前記近似コストのうちの1つの近似コストとの間の差分を決定することと、
前記差分はスレショルド値よりも小さいと決定することと、をさらに備えるC3に記載の方法。
[C5] イントラ予測モードの前記第1の組を決定することは、イントラ予測モードのヌルの組を決定することを備えるC1に記載の方法。
[C6] イントラ予測モードの前記第1の組の前記決定、
イントラ予測モードの前記第2の組の前記決定、
イントラ予測モードの前記第1の組において識別された各イントラ予測モード及びイントラ予測モードの前記第2の組において識別された各イントラ予測モードに関する前記近似コストの前記計算、及び
前記近似コストの前記格納のうちの少なくとも1つは、
前記現在のブロックに隣接する映像データの近隣ブロックを符号化するために使用されるイントラ予測モードが、前記現在のブロックに関する最も可能性が高いイントラ予測モードを決定する際に使用するために利用可能であるかどうかに少なくとも部分的に基づいて動的に生じるC1に記載の方法。
[C7] 前記現在のブロックの近隣ブロックを決定することと、
前記近隣ブロックが符号化されたと決定したことに応答して、前記近隣ブロックの前記イントラ予測モードを決定することと、
前記近隣ブロックの前記イントラ予測モードに少なくとも部分的に基づいて前記現在のブロックに関するレート歪みコストを決定することと、をさらに備えるC6に記載の方法。
[C8] 符号化されるべき前記映像データの前記現在のブロックに関するイントラ予測モードの前記第1の組を決定することは、符号化されるべき前記映像データの前記現在のブロックに関するイントラ予測モードの第1の予め定義された組を決定することを備えるC1に記載の方法。
[C9] 前に予測されたブロックを符号化するためにイントラ予測モードが以前に選択されたことの発生数を示す少なくとも1つの統計値を生成することと、
前記発生数がスレショルド値よりも大きいと決定したことに応答して、前記イントラ予測モードをイントラ予測モードの前記第2の組に含めることと、をさらに備えるC1に記載の方法。
[C10] 前記現在のブロックを符号化するためにイントラ予測を行うことは、
イントラ予測モードに関連する近似コストを決定することであって、前記決定された近似コストは、前記近似コストのうちの最低の近似コストを有することと、
前記最低の近似コストを有する前記決定された近似コストに関連するモードを用いて前記現在のブロックをイントラ予測することと、をさらに備えるC1に記載の方法。
[C11] 映像データをコーディングするためにイントラ予測プロセスを実行するように構成された映像コーディングデバイスであって、
符号化されるべき前記映像データの現在のブロックに関するイントラ予測モードの第1の組を決定するように構成され、イントラ予測モードの前記第1の組は、前記現在のブロックを符号化するために使用することが可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含み、
イントラ予測モードの前記第1の予め定義された組に加えて前記現在のブロックに関するイントラ予測モードの第2の組を決定するように構成され、イントラ予測モードの前記第2の組は、前記現在のブロックを符号化するために使用することが可能なイントラ予測モードの前記総数以下のイントラ予測モード数を含み、前記第1の組及び前記第2の組の両方は、合計して、前記現在のブロックを符号化するために使用することが可能なイントラ予測モードの前記総数よりも少ないイントラ予測モードを含み、
イントラ予測モードの前記第1の組に含まれる各イントラ予測モード及びイントラ予測モードの前記第2の組に含まれる各イントラ予測モードに関する前記近似コストを計算するように構成され、前記近似コストは、前記イントラ予測モードのうちの前記対応する1つを用いて映像データの前記現在のブロックを符号化するレート歪みコストの近似値であり、
イントラ予測モードの前記第1の組において識別された各イントラ予測モードに関する及びイントラ予測モードの前記第2の組において識別された各イントラ予測モードに関する前記近似コストをメモリに格納するように構成され、
イントラ予測モードの前記第1の組及びイントラ予測モードの前記第2の組において識別された各イントラ予測モードに関して計算された前記近似コストに基づいてイントラ予測モードの前記第1の組又はイントラ予測モードの前記第2の組によって識別された前記イントラ予測モードのうちの1つに従って前記現在のブロックを符号化するためにイントラ予測を行うように構成されるプロセッサ、を備える、映像コーディングデバイス。
[C12] 前記プロセッサは、前記現在のブロックを符号化するためにイントラ予測を行うことと同時並行して前記現在のブロックに隣接する前記映像データの1つ以上の近隣ブロックに関するイントラ予測又はインター予測を行うようにさらに構成されるC11に記載の映像コーディングデバイス。
[C13] 前記プロセッサは、
イントラ予測モードの前記第1の組において識別された各イントラ予測モードに関する重み付き近似コストを計算するためにイントラ予測モードの前記第1の予め定義された組において識別された各イントラ予測モードに関して計算された前記近似コストの各々に重みを加え、
イントラ予測モードの前記第2の組において識別された各イントラ予測モードに関して計算された前記近似コストの各々と前記重み付き近似コストを比較し、及び
前記比較に基づいてイントラ予測モードの前記第1の予め定義された組において識別されたイントラ予測モードに関して計算された前記近似コストを前記メモリに格納するようにさらに構成されるC11に記載の映像コーディングデバイス。
[C14] 前記プロセッサは、
前記重み付き近似コストから1つの重み付き近似コストを選択し、
前記重み付き近似コストと各イントラ予測されたモードに関して計算された前記近似コストのうちの1つの近似コストとの間の差分を決定し、及び
前記差分はスレショルド値よりも小さいと決定するようにさらに構成されるC13に記載の映像コーディングデバイス。
[C15] 前記プロセッサは、イントラ予測モードのヌルの組を決定するようにさらに構成されるC11に記載の映像コーディングデバイス。
[C16] イントラ予測モードの前記第1の組の前記決定、
イントラ予測モードの前記第2の組の前記決定、
イントラ予測モードの前記第1の組において識別された各イントラ予測モード及びイントラ予測モードの前記第2の組において識別された各イントラ予測モードに関する前記近似コストの前記計算、及び
前記近似コストの前記格納のうちの少なくとも1つは、
前記現在のブロックに隣接する映像データの近隣ブロックを符号化するために使用されるイントラ予測モードが、前記現在のブロックに関する最も可能性が高いイントラ予測モードを決定する際に使用するために利用可能であるかどうかに少なくとも部分的に基づいて動的に生じるC11に記載の映像コーディングデバイス。
[C17] 前記プロセッサは、
前記現在のブロックの近隣ブロックを決定し、
前記近隣ブロックが符号化されたと決定したことに応答して、前記近隣ブロックの前記イントラ予測モードを決定し、及び
前記近隣ブロックの前記イントラ予測モードに少なくとも部分的に基づいて前記現在のブロックに関するレート歪みコストを決定するようにさらに構成されるC16に記載の映像コーディングデバイス。
[C18] 前記プロセッサは、符号化されるべき前記映像データの前記現在のブロックに関するイントラ予測モードの第1の予め定義された組を決定するようにさらに構成されるC11に記載の映像コーディングデバイス。
[C19] 前記プロセッサは、
前に予測されたブロックを符号化するためにイントラ予測モードが以前に選択されたことの発生数を示す少なくとも1つの統計値を生成し、
前記発生数がスレショルド値よりも大きいと決定したことに応答して、前記イントラ予測モードをイントラ予測モードの前記第2の組に含めるようにさらに構成されるC11に記載の映像コーディングデバイス。
[C20] 前記プロセッサは、
イントラ予測モードに関連する近似コストを決定するようにさらに構成され、前記決定された近似コストは、前記近似コストのうちの最低の近似コストを有し、
前記最低の近似コストを有する前記決定された近似コストに関連するモードを用いて前記現在のブロックをイントラ予測するようにさらに構成されるC11に記載の映像コーディングデバイス。
[C21] 映像データをコーディングするためのイントラ予測プロセスを行うように構成された映像コーディングデバイスであって、
符号化されるべき前記映像データの現在のブロックに関するイントラ予測モードの第1の組を決定するための手段であって、イントラ予測モードの前記第1の組は、前記現在のブロックを符号化するために使用することが可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含む手段と、
イントラ予測モードの前記第1の予め定義された組に加えて前記現在のブロックに関するイントラ予測モードの第2の組を決定するための手段であって、イントラ予測モードの前記第2の組は、前記現在のブロックを符号化するために使用することが可能なイントラ予測モードの前記総数以下のイントラ予測モード数を含み、前記第1の組及び前記第2の組の両方は、合計して、前記現在のブロックを符号化するために使用することが可能なイントラ予測モードの前記総数よりも少ないイントラ予測モードを含む手段と、
イントラ予測モードの前記第1の組に含まれる各イントラ予測モード及びイントラ予測モードの前記第2の組に含まれる各イントラ予測モードに関する近似コストを計算するための手段であって、前記近似コストは、前記イントラ予測モードのうちの前記対応する1つを用いて映像データの前記現在のブロックを符号化するレート歪みコストの近似値である手段と、
イントラ予測モードの前記第1の組において識別された各イントラ予測モードに関する及びイントラ予測モードの前記第2の組において識別された各イントラ予測モードに関する前記近似コストをメモリに格納するための手段と、
イントラ予測モードの前記第1の組及びイントラ予測モードの前記第2の組において識別された各イントラ予測モードに関して計算された前記近似コストに基づいてイントラ予測モードの前記第1の組又はイントラ予測モードの前記第2の組によって識別された前記イントラ予測モードのうちの1つに従って前記現在のブロックを符号化するためにイントラ予測を行うための手段と、を備える、映像コーディングデバイス。
[C22] 前記現在のブロックを符号化するためにイントラ予測を行うことと同時並行して前記現在のブロックに隣接する前記映像データの1つ以上の近隣ブロックに関するイントラ予測又はインター予測を行うための手段をさらに備えるC21に記載の映像コーディングデバイス。
[C23] イントラ予測モードの前記第1の組において識別された各イントラ予測モードに関する重み付き近似コストを計算するためにイントラ予測モードの前記第1の予め定義された組において識別された各イントラ予測モードに関して計算された前記近似コストの各々に重みを加えるための手段と、
イントラ予測モードの前記第2の組において識別された各イントラ予測モードに関して計算された前記近似コストの各々と前記重み付き近似コストを比較するための手段と、
前記比較に基づいてイントラ予測モードの前記第1の予め定義された組において識別されたイントラ予測モードに関して計算された前記近似コストを前記メモリに格納するための手段と、を備えるC21に記載の映像コーディングデバイス。
[C24] 前記重み付き近似コストから1つの重み付き近似コストを選択するための手段と、
前記重み付き近似コストと各イントラ予測されたモードに関して計算された前記近似コストのうちの1つの近似コストとの間の差分を決定するための手段と、
前記差分はスレショルド値よりも小さいと決定するための手段と、をさらに備えるC23に記載の映像コーディングデバイス。
[C25] イントラ予測モードのヌルの組を決定するための手段をさらに備えるC21に記載の映像コーディングデバイス。
[C26] イントラ予測モードの前記第1の組の前記決定、
イントラ予測モードの前記第2の組の前記決定、
イントラ予測モードの前記第1の組において識別された各イントラ予測モード及びイントラ予測モードの前記第2の組において識別された各イントラ予測モードに関する前記近似コストの前記計算、及び
前記近似コストの前記格納のうちの少なくとも1つは、
前記現在のブロックに隣接する映像データの近隣ブロックを符号化するために使用されるイントラ予測モードが、前記現在のブロックに関する最も可能性が高いイントラ予測モードを決定する際に使用するために利用可能であるかどうかに少なくとも部分的に基づいて動的に生じるC21に記載の映像コーディングデバイス。
[C27] 前記現在のブロックの近隣ブロックを決定するための手段と、
前記近隣ブロックが符号化されたと決定したことに応答して、前記近隣ブロックの前記イントラ予測モードを決定するための手段と、
前記近隣ブロックの前記イントラ予測モードに少なくとも部分的に基づいて前記現在のブロックに関するレート歪みコストを決定するための手段と、をさらに備えるC26に記載の映像コーディングデバイス。
[C28] 符号化されるべき前記映像データの前記現在のブロックに関するイントラ予測モードの第1の予め定義された組を決定するための手段をさらに備えるC21に記載の映像コーディングデバイス。
[C29] 前に予測されたブロックを符号化するためにイントラ予測モードが以前に選択されたことの発生数を示す少なくとも1つの統計値を生成するため手段と、
前記発生数がスレショルド値よりも大きいと決定したことに応答して、前記イントラ予測モードをイントラ予測モードの前記第2の組に含めるための手段と、をさらに備えるC21に記載の映像コーディングデバイス。
[C30] イントラ予測モードに関連する近似コストを決定するための手段であって、前記決定された近似コストは、前記近似コストのうちの最低の近似コストを有する手段と、
前記最低の近似コストを有する前記決定された近似コストに関連するモードを用いて前記現在のブロックをイントラ予測するための手段と、をさらに備えるC21に記載の映像コーディングデバイス。
[C31] 非一時的なコンピュータによって読み取り可能な記憶媒体であって、実行されたときに、
符号化されるべき前記映像データの現在のブロックに関するイントラ予測モードの第1の組を決定することを1つ以上のプロセッサに行わせる命令であって、イントラ予測モードの前記第1の組は、前記現在のブロックを符号化するために使用することが可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含む命令と、
イントラ予測モードの前記第1の予め定義された組に加えて前記現在のブロックに関するイントラ予測モードの第2の組を決定することを1つ以上のプロセッサに行わせる命令であって、イントラ予測モードの前記第2の組は、前記現在のブロックを符号化するために使用することが可能なイントラ予測モードの前記総数以下のイントラ予測モード数を含み、前記第1の組及び前記第2の組の両方は、合計して、前記現在のブロックを符号化するために使用することが可能なイントラ予測モードの前記総数よりも少ないイントラ予測モードを含む命令と、
イントラ予測モードの前記第1の組に含まれる各イントラ予測モード及びイントラ予測モードの前記第2の組に含まれる各イントラ予測モードに関する近似コストを計算することを1つ以上のプロセッサに行わせる命令であって、前記近似コストは、前記イントラ予測モードのうちの前記対応する1つを用いて映像データの前記現在のブロックを符号化するレート歪みコストの近似値である命令と、
イントラ予測モードの前記第1の組において識別された各イントラ予測モードに関する及びイントラ予測モードの前記第2の組において識別された各イントラ予測モードに関する前記近似コストをメモリに格納することを1つ以上のプロセッサに行わせる命令と、
イントラ予測モードの前記第1の組及びイントラ予測モードの前記第2の組において識別された各イントラ予測モードに関して計算された前記近似コストに基づいてイントラ予測モードの前記第1の組又はイントラ予測モードの前記第2の組によって識別された前記イントラ予測モードのうちの1つに従って前記現在のブロックを符号化するためにイントラ予測を行うことを1つ以上のプロセッサに行わせる命令、が格納されている、非一時的なコンピュータによって読み取り可能な記憶媒体
[C32] 前記命令は、実行されたときに、前記現在のブロックを符号化するためにイントラ予測を行うことと同時並行して前記現在のブロックに隣接する前記映像データの1つ以上の近隣ブロックに関するイントラ予測又はインター予測を行うことを前記1つ以上のプロセッサに行わせるC31に記載の非一時的なコンピュータによって読み取り可能な記憶媒体。
[C33] 前記命令は、実行されときに、
イントラ予測モードの前記第1の組において識別された各イントラ予測モードに関する重み付き近似コストを計算するためにイントラ予測モードの前記第1の予め定義された組において識別された各イントラ予測モードに関して計算された前記近似コストの各々に重みを加えること、
イントラ予測モードの前記第2の組において識別された各イントラ予測モードに関して計算された前記近似コストの各々と前記重み付き近似コストを比較すること、及び
前記比較に基づいてイントラ予測モードの前記第1の予め定義された組において識別されたイントラ予測モードに関して計算された前記近似コストを前記メモリに格納することを前記1つ以上のプロセッサに行わせるC31に記載の非一時的なコンピュータによって読み取り可能な記憶媒体。
[C34] 前記命令は、実行されたときに、
前記重み付き近似コストから1つの重み付き近似コストを選択すること、
前記重み付き近似コストと各イントラ予測されたモードに関して計算された前記近似コストのうちの1つの近似コストとの間の差分を決定すること、及び
前記差分はスレショルド値よりも小さいと決定することを前記1つ以上のプロセッサに行わせるC33に記載の非一時的なコンピュータによって読み取り可能な記憶媒体。
[C35] 前記命令は、実行されたときに、イントラ予測モードのヌルの組を決定することを前記1つ以上のプロセッサに行わせるC31に記載の非一時的なコンピュータによって読み取り可能な記憶媒体。
[C36] イントラ予測モードの前記第1の組の前記決定、
イントラ予測モードの前記第2の組の前記決定、
イントラ予測モードの前記第1の組において識別された各イントラ予測モード及びイントラ予測モードの前記第2の組において識別された各イントラ予測モードに関する前記近似コストの前記計算、及び
前記近似コストの前記格納のうちの少なくとも1つは、
前記現在のブロックに隣接する映像データの近隣ブロックを符号化するために使用されるイントラ予測モードが、前記現在のブロックに関する最も可能性が高いイントラ予測モードを決定する際に使用するために利用可能であるかどうかに少なくとも部分的に基づいて動的に生じるC31に記載の非一時的なコンピュータによって読み取り可能な記憶媒体。
[C37] 前記命令は、実行されたときに、
前記現在のブロックの近隣ブロックを決定すること、
前記近隣ブロックが符号化されたと決定したことに応答して、前記近隣ブロックの前記イントラ予測モードを決定すること、及び
前記近隣ブロックの前記イントラ予測モードに少なくとも部分的に基づいて前記現在のブロックに関するレート歪みコストを決定することを前記1つ以上のプロセッサに行わせるC36に記載の非一時的なコンピュータによって読み取り可能な記憶媒体。
[C38] 前記命令は、実行されたときに、符号化されるべき前記映像データの前記現在のブロックに関するイントラ予測モードの第1の予め定義された組を決定することを前記1つ以上のプロセッサに行わせるC31に記載の映像コーディングデバイス。
[C39] 前記命令は、実行されたときに、
前に予測されたブロックを符号化するためにイントラ予測モードが以前に選択されたことの発生数を示す少なくとも1つの統計値を生成すること、及び
前記発生数がスレショルド値よりも大きいと決定したことに応答して、前記イントラ予測モードをイントラ予測モードの前記第2の組に含めることを前記1つ以上のプロセッサに行わせるC31に記載の非一時的なコンピュータによって読み取り可能な記憶媒体。
[C40] 前記命令は、実行されたときに、
イントラ予測モードに関連する近似コストを決定すること、ここにおいて、前記決定された近似コストは、前記近似コストのうちの最低の近似コストを有し、及び
前記最低の近似コストを有する前記決定された近似コストに関連するモードを用いて前記現在のブロックをイントラ予測することを前記1つ以上のプロセッサに行わせるC31に記載の非一時的なコンピュータによって読み取り可能な記憶媒体。