発明の詳細な説明
〔関連出願とのクロスレファレンス〕
本出願は、2017年11月17日に出願された「Intra Prediction Generation Method」という名称の米国特許仮出願第62/587,676号(以下、「US72311出願」という)の利益および優先権を主張する。US72311出願の開示は、参照により本出願に完全に組み込まれる。
〔技術分野〕
本開示は一般に、ビデオ符号化に関し、より詳細には、調整済みイントラモードリストに基づくイントラ予測のための技術に関する。
〔背景〕
イントラ予測は、ビデオ符号化方法における符号化ツールである。従来のビデオ符号化方法では、エンコーダおよびデコーダが符号化ブロックに隣接する最も近い画素ライン内の以前に再構成された画素のみを使用して、基準画素および方位に沿って符号化ブロックを予測または再構成するための予測子を生成する。しかしながら、方位は、所定のモードリストに含まれる複数のイントラモードから選択される。したがって、エンコーダは異なる符号化ブロックを適応させるために、予め定義されたモードリストを調整する必要がある。エンコーダが異なる符号化ブロックを適応させるために所定のモードリストを調整する場合、デコーダは、同じ方法で異なる符号化ブロックを適応させるために所定のモードリストを調整する必要がある。
〔発明の概要〕
本開示は、複数の基準線に基づいてビデオデータを符号化するためのデバイスおよび方法を対象とする。
〔図面の簡単な説明〕
例示的な開示の態様は添付の図面と共に読まれる場合、以下の詳細な説明から最も良く理解される。様々な特徴は一定の縮尺で描かれておらず、様々な特徴の寸法は議論を明確にするために任意に増減されてもよい。
図1は、本開示の1つまたは複数の技法に従ってビデオデータを符号化および復号するように構成されたシステムの例示的な実施形態のブロック図である。
図2は、図1のシステムにおける宛先デバイスのデコーダモジュールの例示的な実施形態のブロック図である。
図3は、イントラ予測のためのモードリスト調整の第1の例示的な実施形態によるフローチャートを示す。
図4は、イントラ予測のためのモードリスト調整の第2の例示的な実施形態によるフローチャートを示す。
図5は、イントラ予測のためのモードリスト調整の第3の例示的な実施形態によるフローチャートを示す。
図6A、図6B、および図6Cは、4つのイントラ予測領域と6つのイントラ予測領域とに分割されたブロックユニットのイントラモードの例示的な実施形態の概略図である。
図7は、イントラ予測のためのモードリスト調整の第4の例示的な実施形態によるフローチャートを示す。
図8は、ブロックユニットの6つのイントラ予測領域および2つの置換された領域の例示的な実施形態の概略図である。
図9Aおよび図9Bは、イントラ予測のためのモードリスト調整の第5および第6の例示的な実施形態によるフローチャートを示す。
図10は、図1のシステムにおけるソースデバイスのエンコーダモジュールの例示的な実施形態のブロック図である。
〔詳細な説明〕
以下の説明は、本開示における例示的な実施形態に関連する特定の情報を含む。本開示における図面およびそれらの添付の詳細な説明は、単に例示的な実施形態に向けられている。しかしながら、本開示は、単にこれらの例示的な実施形態に限定されるものではない。本開示の他の変形および実施形態は、当業者には想起されるであろう。特に断らない限り、図中の同様のまたは対応する要素は、同様のまたは対応する参照番号によって示され得る。さらに、本開示における図面および例示は、概して縮尺通りではなく、実際の相対的寸法に対応することを意図していない。
一貫性および理解を容易にするために、同様の特徴は例示的な図において数字によって識別される(ただし、いくつかの例では、図示されていない)。しかしながら、異なる実施形態における特徴は、他の点で異なってもよく、したがって、図面に示されるものに狭く限定されるべきではない。
本明細書では「1つの実施形態で」または「いくつかの実施形態で」という語句を使用し、それぞれが同じまたは異なった実施形態の1つまたは複数を指すことがある。「結合された」というタームは介在する成分を介して直接的または間接的に接続されたものとして定義され、必ずしも物理的な接続に限定されるものではない。「備える」というタームは「含むが必ずしもこれに限定されない」という手段を使用する場合、そのように説明された組み合わせ、群、系列、および同等物におけるオープンエンドの包含またはメンバーシップを具体的に示す。
さらに、説明および非限定の目的のために、機能エンティティ、技法、プロトコル、標準などの特定の詳細が、記載された技術の理解を提供するために記載される。他の実施例では周知の方法、技術、システム、アーキテクチャ等の詳細な説明は、不要な詳細で説明を不明瞭にしないように省略する。
当業者は、本開示で説明される任意の符号化機能またはアルゴリズムがハードウェア、ソフトウェア、またはソフトウェアとハードウェアの組合せによって実装され得ることを直ちに認識するのであろう。記述された機能は、モジュールに対応してもよく、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せであってもよい。ソフトウェア実装は、メモリまたは他のタイプの記憶装置のようなコンピュータ読み取り可能な媒体に記憶されたコンピュータ実行可能命令を含んでもよい。例えば、通信処理能力を有する1つ以上のマイクロプロセッサまたは汎用コンピュータは、対応する実行可能な命令でプログラムされ、記述されたネットワーク機能またはアルゴリズムを実行することができる。マイクロプロセッサまたは汎用コンピュータは、特定用途向け集積回路(ASIC)、プログラマブル論理アレイ、および/または1つまたは複数のデジタル信号プロセッサ(DSP)を使用して形成することができる。本明細書に記載される例示的な実施形態の一部はコンピュータハードウェア上にインストールされ、実行されるソフトウェアを指向しているが、それにもかかわらず、ファームウェアとして、またはハードウェアとして、あるいはハードウェアとソフトウェアの組合せとして実装される代替的な例示的な実施は本開示の範囲内である。
コンピュータ読取り可能媒体はランダムアクセスメモリ、読取り専用メモリ、消去可能プログラマブル読取り専用メモリ、電気的消去可能プログラマブル読取り専用メモリ、フラッシュメモリ、コンパクトディスク読取り専用メモリ、磁気カセット、磁気テープ、磁気ディスク記憶装置、またはコンピュータ読取り可能命令を記憶することができる他の任意の等価媒体を含むが、これらに限定されない。
図1は、本開示の1つまたは複数の技法に従ってビデオデータを符号化および復号するように構成され得るシステムの例示的な実施形態のブロック図である。この実施例では、システムがソースデバイス11と、宛先デバイス12と、通信媒体13とを含む。少なくとも1つの実施形態において、ソースデバイス11は、ビデオデータを符号化し、符号化されたビデオデータを通信媒体13に送信するように構成された任意の装置を含んでもよい。少なくとも1つの実施形態において、宛先デバイス12は、通信媒体13を介して符号化ビデオデータを受信し、符号化されたビデオデータを復号するように構成された任意の装置を含んでもよい。
少なくとも1つの実施形態において、ソースデバイス11は、通信媒体13を介して宛先デバイス12とワイヤレスおよび/またはワイヤレスで通信することができる。ソースデバイス11は、ソースモジュール111、エンコーダモジュール112、および第1のインターフェース113を含むことができる。宛先デバイス12は、表示モジュール121、デコーダモジュール122、および第2のインターフェース123を含むことができる。少なくとも1つの実施形態では、ソースデバイス11はビデオエンコーダであってもよく、宛先デバイス12はビデオデコーダであってもよい。
少なくとも1つの実施形態において、ソースデバイス11および/または宛先デバイス12は、携帯電話、タブレット、デスクトップ、ノートブック、または他の電子装置であってもよい。図1は、ソースデバイス11および宛先デバイス12の一例を示すにすぎず、ソースデバイス11および宛先デバイス12は他の実施形態では図示されるよりも多いまたは少ない成分を含むことができ、または様々な成分の異なる構成を有することができる。
少なくとも1つの実施形態において、ソースデバイス11のソースモジュール111は、新しいビデオを捕捉するためのビデオ捕捉装置、以前に捕捉されたビデオを記憶するビデオアーカイブ、および/または映像コンテンツ提供者からビデオを受信するためのビデオ供給インターフェースを含んでもよい。少なくとも1つの実施形態において、ソースデバイス11のソースモジュール111は、ソースビデオとして、またはライブビデオ、アーカイブビデオ、およびコンピュータ生成ビデオの組合せとして、コンピュータグラフィックスベースのデータを生成することができる。少なくとも1つの実施形態では、ビデオキャプチャ装置は、電荷結合素子(CCD)イメージセンサ、相補型金属酸化膜半導体(CMOS)イメージセンサ、またはカメラとすることができる。
少なくとも1つの実施形態では、エンコーダモジュール112およびデコーダモジュール122は各々、1つまたは複数のマイクロプロセッサ、中央処理装置(CPU)、グラフィック処理ユニット(GPU)、システムオンチップ(SoC)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなど、様々な適切なエンコーダ/デコーダ回路のいずれかとして実装され得る。技法が部分的にソフトウェアで実施される場合、装置はソフトウェアのための命令を適当な、一時的でないコンピュータ読取り可能媒体に格納し、この開示の技法を実行するために、1つ以上のプロセッサを使用して、命令をハードウェアで実行することができる。少なくとも1つの実施形態では、エンコーダモジュール112およびデコーダモジュール122の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてもよく、そのいずれも、それぞれの装置内の複合エンコーダ/デコーダ(CODEC)の一部として統合されてもよい。
少なくとも1つの実施形態において、第1のインターフェース113および第2のインターフェース123は、カスタマイズされたプロトコルを採用するか、既存の標準または事実上の標準に従うことができ、これらに限定されるものではないが、イーサネット(登録商標)、IEEE 802.11またはIEEE 802.15シリーズ、GSM(登録商標)、CDMA2000、TD-SCDMA、WiMAX、3GPP-LTEまたはTD-LTEを含むがこれらに限定されないワイヤレスUSBまたは通信標準を含む。少なくとも1つの実施形態において、第1のインターフェース113および第2のインターフェース123はそれぞれ、通信媒体13に準拠ビデオビットストリームを送信および/または保存し、通信媒体13から準拠ビデオビットストリームを受信するように構成された、任意の装置を含んでもよい。少なくとも1つの実施形態において、第1のインターフェース113および第2のインターフェース123は、準拠するビデオビットストリームを記憶装置に記憶するか、または記憶装置から受信することを可能にするコンピュータシステムインターフェースを含んでもよい。例えば、第1のインターフェース113および第2のインターフェース123は、末梢成分インターコネクト(PCI)および末梢成分インターコネクトエクスプレス(PCIe)バスプロトコルをサポートするチップセット、専用バスプロトコル、ユニバーサルシリアルバス(Universal Serial Bus)プロトコル、I2C、またはピアデバイスを相互接続するために使用され得る他の論理および物理構造を含むことができる。
少なくとも1つの実施形態では、ディスプレイモジュール121は液晶ディスプレイ(LCD)技術、プラズマディスプレイ技術、有機発光ダイオード(OLED)ディスプレイ技術、または発光ポリマーディスプレイ(LPD)技術を使用するディスプレイを含んでもよいが、他のディスプレイ技術を他の実施形態で使用してもよい。少なくとも1つの実施形態では、ディスプレイモジュール121は高精細ディスプレイまたは超高精細ディスプレイを含むことができる。
図2は、図1のシステムにおける宛先デバイス12のデコーダモジュール122の例示的な実施形態を表すデコーダモジュール222のブロック図である。少なくとも1つの実施形態において、デコーダモジュール222は、エントロピー復号部2221と、予測処理ユニット2222と、逆量子化/逆変換ユニット2223と、第1の加算器2224と、フィルタリングユニット2225と、復号画像バッファ2226とを含む。少なくとも1つの実施形態において、デコーダモジュール222の予測プロセスユニット2222は、イントラ予測ユニット22221と、インター予測ユニット22222とをさらに含む。少なくとも1つの実施形態において、デコーダモジュール222はビットストリームを受信し、復号されたビデオを出力するためにビットストリームを復号する。
少なくとも1つの実施形態において、エントロピー復号部2221は図1の第2のインターフェース123から複数の構文要素を含むビットストリームを受信し、ビットストリームから構文要素を抽出する構文解析動作をビットストリーム上で実行することができる。構文解析動作を実行する一部として、エントロピー復号ユニット2221は、ビットストリームをエントロピー復号して、量子化変換係数、量子化パラメータ、変換データ、動きベクトル、イントラモード、パーティション情報、および他の構文情報を生成することができる。少なくとも1つの実施形態では、エントロピー復号部2221が量子化変換係数を生成するために、コンテキスト適応可変長符号化(CAVLC)、コンテキスト適応2進算術符号化(CABAC)、構文ベースのコンテキスト適応2進算術符号化(SBAC)、確率間隔分割エントロピー(PIPE)符号化、または別のエントロピー符号化技法を実行することができる。少なくとも1つの実施形態では、エントロピー復号部2221が、量子化された変換係数、量子化パラメータ、および変換データを逆量子化/逆変換ユニット2223に提供し、動きベクトル、イントラモード、パーティション情報、および他の構文情報を予測処理ユニット2222に提供する。
少なくとも1つの実施形態では、予測処理ユニット2222は、エントロピー復号部2221から、動きベクトル、イントラモード、パーティション情報、および他の構文情報などの構文要素を受信することができる。少なくとも1つの実施形態において、予測処理部2222は、パーティション情報を含む構文要素を受け取り、パーティション情報に従って画像フレームを分割することができる。少なくとも1つの実施形態において、各画像フレームは、パーティション情報に従って、少なくとも1つの画像ブロックに分割されてもよい。少なくとも1つの画像ブロックは、複数の輝度サンプルを再構成するための輝度ブロックと、複数のクロミナンスサンプルを再構成するための少なくとも1つのクロミナンスブロックとを含むことができる。輝度ブロックおよび少なくとも1つのクロミナンスブロックは、マクロブロック、符号化ツリーユニット(CTU)、符号化ブロック(CB)、それらのサブディビジョン、および/または別の同等の符号化ユニットを生成するためにさらに分割され得る。
少なくとも1つの実施形態では、復号プロセス中に、予測プロセスユニット2222は、画像フレームのうちの特定の1つの現在の画像ブロックに関するイントラモードまたは動きベクトルを含む予測されたデータを受信する。現在の画像ブロックは、特定の画像フレーム内の輝度ブロックとクロミナンスブロックの少なくとも1つとのうちの1つであってもよい。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、イントラモードに関連する構文要素に基づいて、現在のブロックユニットと同じフレームにおいて1つまたは複数の隣接ブロックに対する現在のブロックユニットのイントラ予測符号化を実行して、予測されたブロックを生成することができる。少なくとも1つの実施形態では、イントラモードは、現在のフレーム内の隣接ブロックから選択された参照サンプルの位置を指定することができる。
少なくとも1つの実施形態において、イントラ予測ユニット22221は、現在のブロックの輝度成分が予測プロセスユニット2222によって再構成される場合、現在のブロックユニットの複数の輝度成分に基づいて、現在のブロックユニットの複数のクロマ成分を再構成してもよい。
少なくとも1つの実施形態では、インター予測ユニット22222は、予測されたブロックを生成するために、動きベクトルに関連する構文要素に基づいて、1つまたは複数の基準画像ブロックにおける1つまたは複数のブロックに対する現在のブロックユニットのインター予測符号化を実行することができる。少なくとも1つの実施形態では、動きベクトルは、基準画像ブロック内の参照ブロックユニットに対する現在の画像ブロック内の現在のブロックユニットの変位を示すことができる。基準ブロックユニットは、現在のブロックユニットに厳密に適合すると判断されるブロックである。少なくとも1つの実施形態では、インター予測ユニット22222は、復号画像バッファ2226に格納された基準画像ブロックを受信し、受信した基準画像ブロックに基づいて現在のブロックユニットを再構成する。
少なくとも1つの実施形態では、逆量子化/逆変換ユニット2223は、逆量子化および逆変換を適用して、画素領域における残差ブロックを再構築することができる。少なくとも1つの実施形態では、逆量子化/逆変換ユニット2223が残差量子化変換係数に逆量子化を適用して残差変換係数を生成し、次いで、残差変換係数に逆変換を適用して、画素領域内の残差ブロックを生成することができる。少なくとも1つの実施形態では、逆変換は、離散コサイン変換(DCT)、離散サイン変換(DST)、適応多重変換(AMT)、モード依存非分離可能二次変換(MDNSST)、ハイパーキューブ-ギブンス変換(HyGT)、信号依存変換、カルーネン-レーベ変換(KLT)、ウェーブレット変換、整数変換、サブバンド変換、または概念的に同様の変換などの変換プロセスにて適用され得る。少なくとも1つの実施形態では、逆変換は、周波数領域などの変換領域からの残差情報を画素領域に戻すように変換することができる。少なくとも1つの実施形態では、逆量子化の程度は、量子化パラメータを調整することによって修正され得る。
少なくとも1つの実施形態では、第1の加算器2224は、再構成された残差ブロックを、予測プロセスユニット2222から提供された予測されたブロックに加算して、再構成されたブロックを生成する。
少なくとも1つの実施形態では、フィルタリングユニット2225は、再構成されたブロックからブロックノイズアーチファクトを削除するために、デブロッキングフィルタ、サンプル適応オフセット(SAO)フィルタ、バイラテラルフィルタ、および/または適応ループフィルタ(ALF)を含み得る。デブロッキングフィルタ、SAOフィルタ、バイラテラルフィルタ、およびALFに加えて、追加のフィルタ(ループまたはポストループ)を使用することもできる。このようなフィルタは簡潔にするために示されていないが、所望であれば、第1の加算器2224の出力をフィルタリングすることができる。少なくとも1つの実施形態では、フィルタリングユニット2225は、フィルタリングユニット2225が特定の画像フレームの再構成されたブロックに対してフィルタリング処理を実行した後に、復号されたビデオを表示モジュール121または他のビデオ受信ユニットに出力することができる。
少なくとも1つの実施形態では、復号画像バッファ2226は、例えば、インター符号化モードにおいて、予測処理ユニット2222によってビットストリームを復号する際に使用するための参照ブロックを保存する参照画像メモリであり得る。復号画像バッファ2226は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)などの様々なメモリデバイスのいずれかによって形成され得る。少なくとも1つの実施形態では、復号画像バッファ2226は、デコーダモジュール222の他の成分とオンチップであってもよく、またはこれらの成分に対してオフチップであってもよい。
図3は、イントラ予測のためのモードリスト調整の第1の例示的な実施形態によるフローチャートを示す。例示的な方法は、本方法を実行する様々な方法があるので、単に例として提供される。以下に説明する方法は例えば、図1および図2に示す構成を用いて実施することができ、これらの図の様々な要素は、例示的な方法を説明する際に参照される。図3に示される各ブロックは、例示的な方法で実行される1つまたは複数のプロセス、方法、またはサブルーチンを表す。さらに、ブロックの順序は例示にすぎず、変更することができる。本開示から逸脱することなく、追加のブロックが追加されてもよく、またはより少ないブロックが利用されてもよい。
ブロック31において、デコーダモジュール222は、ビデオデータから画像フレーム内のブロックサイズを有するブロックユニットを決定する。
少なくとも1つの実施形態において、ビデオデータはビットストリームであってもよい。宛先デバイス12は、宛先デバイス12の第2のインターフェース123を介して、ソースデバイス11などのエンコーダからビットストリームを受信することができる。第2のインターフェース123は、デコーダモジュール222にビットストリームを提供する。デコーダモジュール222は、ビットストリームに基づいて画像フレームを決定し、画像フレームを分割して、ビットストリーム内の複数のパーティション表示に従ってブロックユニットを決定する。例えば、デコーダモジュール222は、複数の符号化ツリーユニットを生成するために画像フレームを分割し、さらに、任意のビデオ符号化規格に基づいてパーティション表示に従ってブロックサイズを有するブロックユニットを決定するために符号化ツリーユニットのうちの1つを分割することができる。少なくとも1つの実施形態では、ブロックサイズはブロック高さおよびブロック幅を含むことができる。
少なくとも1つの実施形態では、エントロピー復号部2221は、ブロックユニットのための複数の予測表示を決定するためにビットストリームを復号することができ、次いで、デコーダモジュール222は、予測表示に基づいてブロックユニットをさらに再構成することができる。少なくとも1つの実施形態では、予測表示は、複数のフラグおよび複数のインデックスを含むことができる。
ブロック32において、イントラ予測ユニット22221は、複数のイントラモードを含むモードリストを決定する。
少なくとも1つの実施形態において、モードリスト内のイントラモードは、宛先デバイス12およびソースデバイス11に予め定義されてもよい。例えば、イントラモードは、プレーナモード、DCモード、および/または複数の指向性モードとして予め定義されてもよい。少なくとも1つの実施形態では、デコーダモジュール222が高効率ビデオ符号化(HEVC)でビットストリームを復号する場合、指向性モードの数は33に等しくてもよい。少なくとも1つの実施形態では、デコーダモジュール222が汎用ビデオ符号化(VVC)テストモデル(VTM)においてビットストリームを復号する場合、指向性モードの数は65に等しくてもよい。
少なくとも1つの実施形態では、イントラモードの各々が第1のイントラ予測インデックスを有する。一実施形態では、デコーダモジュール222がHEVC内のビットストリームを復号する場合、イントラモードの第1のイントラ予測インデックスは0~34に等しくてもよい。この実施形態では、プレーナモードおよびDCモードの第1のイントラ予測インデックスは0および1に等しくてもよく、指向性モードの第1のイントラ予測インデックスは2~33に等しくてもよい。一実施形態では、デコーダモジュール222がVTM内のビットストリームを復号する場合、イントラモードの第1のイントラ予測インデックスは0~66に等しくてもよい。この実施形態では、プレーナモードおよびDCモードの第1のイントラ予測インデックスは0および1に等しくてもよく、指向性モードの第1のイントラ予測インデックスは2~66に等しくてもよい。
ブロック33において、イントラ予測ユニット22221は、ブロックサイズに基づいてイントラモードのうちの少なくとも1つを選択する。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、ブロックサイズに基づいて選択されたイントラモードを決定することができる。少なくとも1つの実施形態では、イントラ予測ユニット22221は、ブロックサイズを、予め定義されたサイズと比較し、ブロックサイズと所定のサイズとの間の比較に基づいて、選択されたイントラモードを決定することができる。ブロックサイズが、予め定義されたサイズより大きい場合、選択されたイントラモードは、イントラ予測部22221によって選択された少なくとも1つの第1の選択されたモードであってもよい。ブロックサイズが、予め定義されたサイズより小さい場合、選択されたイントラモードは、イントラ予測部22221によって選択された少なくとも1つの第2の選択されたモードであってもよい。この実施形態では、少なくとも1つの第2の選択されたモードの各々は、少なくとも1つの第1の選択されたモードとは異なることができる。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、ブロック幅をブロック高さと比較し、ブロック幅とブロック高さとの間の比較に基づいて選択されたイントラモードを決定することができる。ブロック幅がブロック高さよりも長い場合、選択されたイントラモードは、イントラ予測部22221によって選択された少なくとも1つの第3の選択されたモードであってもよい。ブロック幅がブロック高さよりも短い場合、選択されたイントラモードは、イントラ予測部22221によって選択された少なくとも1つの第4の選択されたモードであってもよい。この実施形態では、少なくとも1つの第4の選択されたモードの各々は、少なくとも1つの第3の選択されたモードとは異なることができる。
ブロック34において、イントラ予測ユニット22221は、モードリストからイントラモードのうちの選択された少なくとも1つを削除して、選択されていないイントラモードの各々を含む調整済みリストを生成する。
少なくとも1つの実施形態では、イントラ予測ユニット22221がモードリストから選択されたイントラモードのすべてを削除する場合、モードリスト内の複数の残存するイントラモードは選択されていないイントラモードであってもよい。この実施形態では、イントラ予測ユニット22221は、選択されていないイントラモードを含むように調整済みリストを生成することができる。少なくとも1つの実施形態では、イントラ予測ユニット22221は、ブロックサイズに基づいて複数の追加モードを調整済みリストに追加することができる。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、選択されていないイントラモードのそれぞれについて第2のイントラ予測インデックスを設定することができる。この実施形態では、選択されていないイントラモードの第2のイントラ予測インデックスは、選択されていないイントラモードの第1のイントラ予測インデックスと同一であっても異なっていてもよい。少なくとも1つの実施形態では、イントラ予測ユニット22221は、追加モードのそれぞれについて第2のイントラ予測インデックスを設定することができる。
ブロック35において、イントラ予測ユニット22221は、調整済みリストに基づいて、ブロックユニットの複数の予測子を生成する。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、ビットストリームから予測表示を決定することができる。一実施形態では、イントラ予測ユニット22221は、予測表示のうちの特定の1つに基づいて、ブロックサイズに従って導出された調整済みリスト内の選択されていないイントラモードのうちの1つを決定することができる。別の実施形態では、イントラ予測ユニット22221は、特定の予測表示に基づいて、ブロックサイズに従って導出された調整済みリスト内の選択されていないイントラモードおよび追加モードのうちの1つを決定することができる。少なくとも1つの実施形態では、具体的な予測表示は、決定されたモードの第2のイントラ予測インデックスと同一のモードインデックスを示す。これにより、イントラ予測部22221は、モードインデックスに基づいて決定されたモードを導出することができる。少なくとも1つの実施形態では、特定の予測指示によって示されるモードインデックスは、決定されたモードの第1のイントラ予測インデックスと同一であってもよい。
少なくとも1つの実施形態では、ブロックユニットは、複数のブロック要素を含むことができる。この実施形態では、ブロック要素の各々は、画素要素であってもよい。少なくとも1つの実施形態において、イントラ予測ユニット22221は、ブロックユニットについて導出された決定されたモードの方位に沿って、ブロック要素のそれぞれについて、ブロックユニットと隣接する複数の隣接ブロックに基づいて、予測子のうちの1つを決定してもよい。一実施形態では、決定されたモードは、ブロックサイズに従って導出された調整済みリスト内の選択されていないイントラモードのうちの決定された1つとすることができる。別の実施形態では、決定されたモードは、ブロックサイズに従って導出された調整済みリスト内の選択されていないイントラモードおよび追加モードのうちの決定された1つとすることができる。
少なくとも1つの実施形態では、宛先デバイス12内のデコーダモジュール222の第1の加算器2224は、ブロックユニットを再構成するために、決定されたモードに基づいて導出された予測子を、ビットストリームから決定された複数の残差サンプルに追加することができる。さらに、デコーダモジュール222は、画像フレームおよびビデオを再構成するために、画像フレーム内の他のブロックユニットのすべてを再構成することができる。
図4は、イントラ予測のためのモードリスト調整の第2の例示的な実施形態によるフローチャートを示す。例示的な方法は、本方法を実行する様々な方法があるので、単に例として提供される。以下に説明する方法は例えば、図1および図2に示す構成を用いて実施することができ、これらの図の様々な要素は、例示的な方法を説明する際に参照される。図4に示される各ブロックは、例示的な方法で実行される1つまたは複数のプロセス、方法、またはサブルーチンを表す。さらに、ブロックの順序は例示にすぎず、変更することができる。本開示から逸脱することなく、追加のブロックが追加されてもよく、またはより少ないブロックが利用されてもよい。
ブロック41において、デコーダモジュール222は、ビデオデータから画像フレーム内のブロックユニットを決定し、ブロックユニットに隣接する複数の隣接ブロックを決定する。
少なくとも1つの実施形態において、ビデオデータはビットストリームであってもよい。宛先デバイス12は、宛先デバイス12の第2のインターフェース123を介して、ソースデバイス11などのエンコーダからビットストリームを受信することができる。第2のインターフェース123は、デコーダモジュール222にビットストリームを提供する。デコーダモジュール222は、ビットストリームに基づいて画像フレームを決定し、画像フレームを分割して、ビットストリーム内の複数のパーティション表示に従ってブロックユニットを決定する。例えば、デコーダモジュール222は、複数の符号化ツリーユニットを生成するために画像フレームを分割し、さらに、任意のビデオ符号化規格に基づいてパーティション表示に従ってブロックサイズを有するブロックユニットを決定するために符号化ツリーユニットのうちの1つを分割することができる。
少なくとも1つの実施形態では、エントロピー復号部2221は、ブロックユニットのための複数の予測表示を決定するためにビットストリームを復号することができ、次いで、デコーダモジュール222は、予測表示に基づいてブロックユニットをさらに再構成することができる。少なくとも1つの実施形態では、予測表示は、複数のフラグおよび複数のインデックスを含むことができる。
少なくとも1つの実施形態では、宛先デバイス12の予測処理ユニット2222は、ブロックユニットに隣接する隣接ブロックを決定する。この実施形態において、隣接ブロックは、複数の基準線に含まれてもよい。この実施形態では、第1の基準線内の隣接ブロックはブロックユニットに隣接し、第2の基準線内の隣接ブロックは第1の基準線内の隣接ブロックに隣接する。少なくとも1つの実施形態において、隣接するブロックは、ブロックユニットを再構成する前に再構成されてもよく、したがって、隣接するブロックは、ブロックユニットを再構成するための複数の参照サンプルであってもよい。少なくとも1つの実施形態では、ブロックユニットは、隣接ブロックのうちの一部を再構成する前に再構成され得、したがって、イントラ予測ユニット22221は、再構成された隣接ブロックでパディングすることによって、再構成されていない隣接ブロックのためのブロックユニットの参照サンプルを生成し得る。
ブロック42において、イントラ予測部22221は、複数のイントラモードを含むモードリストを決定し、隣接ブロックの予測情報を決定する。
少なくとも1つの実施形態において、モードリスト内のイントラモードは、宛先デバイス12およびソースデバイス11に予め定義されてもよい。例えば、イントラモードは、プレーナモード、DCモード、および複数の指向性モードとして予め定義されてもよい。少なくとも1つの実施形態では、デコーダモジュール222がHEVC内のビットストリームを復号する場合、指向性モードの数は33に等しくてもよい。少なくとも1つの実施形態において、デコーダモジュール222がVTM内のビットストリームを復号する場合、指向性モードの数は65に等しくてもよい。
少なくとも1つの実施形態では、イントラモードの各々が第1のイントラ予測インデックスを有する。一実施形態では、デコーダモジュール222がHEVC内のビットストリームを復号する場合、イントラモードの第1のイントラ予測インデックスは0~34に等しくてもよい。この実施形態において、プレーナモードおよびDCモードの第1のイントラ予測インデックスは0および1に等しくてもよく、指向性モードの第1のイントラ予測インデックスは2~33に等しくてもよい。一実施形態では、デコーダモジュール222がVTM内のビットストリームを復号する場合、イントラモードの第1のイントラ予測インデックスは0~66に等しくてもよい。この実施形態において、プレーナモードおよびDCモードの第1のイントラ予測インデックスは0および1に等しくてもよく、指向性モードの第1のイントラ予測インデックスは2~66に等しくてもよい。
少なくとも1つの実施形態では、隣接ブロックの予測情報は、隣接ブロックの複数の復号されたモードを含むことができる。一実施形態では、隣接ブロックの復号されたモードがイントラ予測である場合、予測情報は、隣接ブロックの複数の予測モードをさらに含むことができる。この実施形態では、予測モードは、隣接ブロックを再構成するためのモードリスト内のイントラモードから選択される。少なくとも1つの実施形態において、イントラ予測ユニット22221は、隣接ブロックの予測モードをチェックし、ブロックユニットのための隣接ブロックの予測モードに基づいて、複数の最確モード(MPM)を決定してもよい。一実施形態では、特定の隣接ブロックの復号されたモードがインター予測である場合、イントラ予測ユニット22221は、隣接ブロックのうちの特定の1つをバイパスし、他の隣接ブロックの復号されたモードを検査することができる。
少なくとも1つの実施形態では、隣接ブロックの予測情報は、隣接ブロックが再構成されるかどうかを判定するために使用される任意の情報とすることができる。例えば、イントラ予測部22221は、第1の加算器2224によって生成された隣接ブロックの複数の再構成成分を直接受信してもよい。イントラ予測部22221が隣接ブロックの再構成成分を受信する場合、イントラ予測部22221は、ブロックユニットを再構成する前に隣接ブロックが再構成されると判定してもよい。また、イントラ予測部22221が隣接ブロックの再構成成分を受信しない場合、イントラ予測部22221は、ブロックユニットを再構成する前に隣接ブロックが再構成されていないと判定してもよい。一実施形態では、ブロックユニットを再構成する前に隣接ブロックのすべてが再構成された場合、隣接ブロックの再構成された成分を使用して、ブロックユニットの複数の参照サンプルを生成することができる。他の実施形態では、ブロックユニットを再構成する間に、特定の隣接ブロックが再構成されていない場合、隣接ブロックのうちの特定の1つは、参照サンプルを生成するために使用されなくてもよい。この実施形態において、イントラ予測部22221は、他の隣接ブロックでパディングすることによって、特定の隣接ブロックに対応する参照サンプルのうちの特定の1つを生成することができる。
ブロック43において、イントラ予測ユニット22221は、隣接ブロックの予測情報に基づいてイントラモードのうちの少なくとも1つを選択する。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、隣接ブロックの予測情報に基づいて選択されたイントラモードを決定することができる。この実施形態では、指向性モードの各々が方位を含む。少なくとも1つの実施形態では、イントラ予測ユニット22221は、MPMの方位を指向性モードの方位と比較し、MPMの方位と指向性モードの方位との間の比較に基づいて、選択されたイントラモードを決定することができる。例えば、特定の指向性モードがMPMから遠い場合、指向性モードのうちの特定の1つは、選択されたイントラモードのうちの1つであってもよい。一実施形態では、イントラモードの各々は、複数のモード群に分割されてもよい。また、特定のモード群の中にMPMが含まれていない場合には、イントラ予測部22221は、その特定のモード群の中から特定の指向性モードを選択し、その特定の指向性モードを、選択されたイントラモードとして設定してもよい。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、ブロックユニットを再構成する間に、隣接ブロックのうちのどれが再構成されていないかを決定することができる。この実施形態では、イントラ予測ユニット22221はさらに、イントラモードのうちのどれが、ブロックユニットから決定された隣接ブロックに向けられるかを決定することができる。少なくとも1つの実施形態では、イントラ予測ユニット22221は、決定されたイントラモードを選択されたイントラモードとして設定することができる。
ブロック44において、イントラ予測ユニット22221は、モードリストからイントラモードのうちの選択された少なくとも1つを削除して、選択されていないイントラモードの各々を含む調整済みリストを生成する。
少なくとも1つの実施形態では、イントラ予測ユニット22221がモードリストから選択されたイントラモードのすべてを削除する場合、モードリスト内の複数の残存するイントラモードは選択されていないイントラモードであってもよい。この実施形態では、イントラ予測ユニット22221は、選択されていないイントラモードを含むように調整済みリストを生成することができる。少なくとも1つの実施形態では、イントラ予測ユニット22221は、ブロックサイズに基づいて複数の追加モードを調整済みリストに追加することができる。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、選択されていないイントラモードのそれぞれについて第2のイントラ予測インデックスを設定することができる。この実施形態において、選択されていないイントラモードの第2のイントラ予測インデックスは、選択されていないイントラモードの第1のイントラ予測インデックスと同一であっても異なっていてもよい。少なくとも1つの実施形態では、イントラ予測ユニット22221は、追加モードのそれぞれについて第2のイントラ予測インデックスを設定することができる。
ブロック45において、イントラ予測ユニット22221は、調整済みリストに基づいて、ブロックユニットの複数の予測子を生成する。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、ビットストリームから予測表示を決定することができる。一実施形態では、イントラ予測ユニット22221は、予測表示のうちの特定の1つに基づいて、隣接ブロックの予測情報に従って導出された調整済みリスト内の選択されていないイントラモードのうちの1つを決定することができる。別の実施形態では、イントラ予測ユニット22221は、特定の予測指示に基づいて、選択されていないイントラモードのうちの1つと、隣接ブロックの予測情報に従って導出された調整済みリスト内の追加モードとを決定することができる。少なくとも1つの実施形態では、具体的な予測表示は、決定されたモードの第2のイントラ予測インデックスと同一のモードインデックスを示す。したがって、イントラ予測部22221は、モードインデックスに基づいて決定されたモードを導出してもよい。少なくとも1つの実施形態では、その特定の予測指示によって示されるモードインデックスは、決定されたモードの第1のイントラ予測インデックスと同一であってもよい。
少なくとも1つの実施形態では、ブロックユニットは、複数のブロック要素を含むことができる。この実施形態では、ブロック要素の各々は、画素要素であってもよい。少なくとも1つの実施形態では、イントラ予測ユニット22221は、ブロックユニットのために導出された決定されたモードの向きのうちの特定の1つに沿って、ブロック要素の各々のためのブロックユニットに隣接する隣接ブロックに基づいて、予測子のうちの1つを決定することができる。一実施形態では、決定されたモードは、隣接ブロックの予測情報に従って導出された、調整済みリスト内の選択されていないイントラモードのうちの決定された1つとすることができる。別の実施形態では、決定されたモードは、隣接ブロックの予測情報に従って導出された、調整済みリスト内の選択されていないイントラモードおよび追加モードのうちの決定された1つとすることができる。
少なくとも1つの実施形態では、宛先デバイス12内のデコーダモジュール222の第1の加算器2224は、ブロックユニットを再構成するために、決定されたモードに基づいて導出された予測子を、ビットストリームから決定された複数の残差サンプルに追加することができる。さらに、デコーダモジュール222は、画像フレームおよびビデオを再構成するために、画像フレーム内の他のブロックユニットのすべてを再構成することができる。
図5は、イントラ予測のためのモードリスト調整の第3の例示的な実施形態によるフローチャートを示す。例示的な方法は、方法を実行する様々な方法があるので、例として提供される。以下に説明する方法は例えば、図1および図2に示す構成を用いて実施することができ、これらの図の様々な要素は、例示的な方法を説明する際に参照される。図5に示される各ブロックは、例示的な方法で実行される1つまたは複数のプロセス、方法、またはサブルーチンを表す。さらに、ブロックの順序は例示にすぎず、変更することができる。本開示から逸脱することなく、追加のブロックが追加されてもよく、またはより少ないブロックが利用されてもよい。少なくとも1つの実施形態では、図5は、図3のブロック33および/または図4のブロック43の詳細な例示的な実施形態であり得る。
ブロック531において、イントラ予測ユニット22221は、複数のイントラモードを複数のイントラ予測領域に分割する。
少なくとも1つの実施形態において、モードリスト内のイントラモードは、宛先デバイス12およびソースデバイス11に予め定義され得る。例えば、イントラモードは、プレーナモード、DCモード、および複数の指向性モードとして予め定義されてもよい。少なくとも1つの実施形態では、デコーダモジュール222がHEVC内のビットストリームを復号する場合、指向性モードの数は33に等しくてもよい。少なくとも1つの実施形態において、デコーダモジュール222がVTM内のビットストリームを復号する場合、指向性モードの数は65に等しくてもよい。
少なくとも1つの実施形態では、イントラモードの各々が第1のイントラ予測インデックスを有する。一実施形態では、デコーダモジュール222がHEVC内のビットストリームを復号する場合、イントラモードの第1のイントラ予測インデックスは0~34に等しくてもよい。この実施形態において、プレーナモードおよびDCモードの第1のイントラ予測インデックスは0および1に等しくてもよく、指向性モードの第1のイントラ予測インデックスは2~33に等しくてもよい。一実施形態では、デコーダモジュール222がVTM内のビットストリームを復号する場合、イントラモードの第1のイントラ予測インデックスは0~66に等しくてもよい。この実施形態において、プレーナモードおよびDCモードの第1のイントラ予測インデックスは0および1に等しくてもよく、指向性モードの第1のイントラ予測インデックスは2~66に等しくてもよい。
少なくとも1つの実施形態では、指向性モードの各々が方位を有する。少なくとも1つの実施形態では、イントラ予測ユニット22221は、指向性モードをイントラ予測領域に分割することができる。この実施形態において、イントラ予測領域の数は、宛先デバイス12およびソースデバイス11において予め定義されてもよい。例えば、イントラ予測領域の数は、4、6、または13に等しくてもよい。図6A、図6B、および図6Cは、4つのイントラ予測領域631~634または6つのイントラ予測領域641~646に分割されたブロックユニット61のイントラモード62の例示的な実施形態の概略図である。少なくとも1つの実施形態では、イントラ予測領域631~634のうちの第1のイントラ予測領域は、イントラ予測インデックス2~17を有するイントラモードを含むことができ、イントラ予測領域631~634のうちの最後の1つは、イントラ予測インデックス51~66を有するイントラモードを含むことができ、イントラ予測領域631~634のうちの他の1つは、イントラ予測インデックス18~50を有するイントラモードを含むことができる。少なくとも1つの実施形態では、イントラ予測領域641~646のうちの第1のイントラ予測領域は、イントラ予測インデックス2~11を有するイントラモードを含むことができ、イントラ予測領域641~646のうちの最後の1つは、イントラ予測インデックス57~66を有するイントラモードを含むことができ、イントラ予測領域641~646のうちの他の1つは、イントラ予測インデックス12~56を有するイントラモードを含むことができる。少なくとも1つの実施形態では、イントラ予測領域632~633およびイントラ予測領域642~645は、複数の中間領域として設定され得る。
ブロック532において、イントラ予測ユニット22221は、ブロックユニットのブロックサイズおよび隣接ブロックの予測情報のうちの1つに基づいて、イントラ予測領域から選択されたリムーバブル領域を決定する。
少なくとも1つの実施形態では、イントラ予測ユニット22221がブロックユニットのブロックサイズに基づいてリムーバブル領域を決定する場合、ブロックサイズは、予め定義されたサイズと比較され得る。この実施形態では、イントラ予測部22221は、ブロックサイズとこの予め定義されたサイズとの比較に基づいて、リムーバブル領域を決定してもよい。一実施形態では、ブロックサイズがこの予め定義されたサイズよりも大きい場合、リムーバブル領域は、第1のイントラ予測領域および最後のイントラ予測領域のうちの少なくとも1つを含むように予め定義されてもよい。別の実施形態では、ブロックサイズがこの予め定義されたサイズよりも大きい場合、リムーバブル領域は、イントラ予測領域のうちの少なくとも1つを含むように予め定義され得る。さらに、ブロックサイズがこの予め定義されたサイズよりも小さい場合、リムーバブル領域は、中間領域のうちの少なくとも1つを含むように予め定義されてもよい。別の実施形態では、ブロックサイズがこの予め定義されたサイズよりも小さい場合、リムーバブル領域は、イントラ予測領域のうちの少なくとも1つを含むように予め定義され得る。
少なくとも1つの実施形態では、イントラ予測ユニット22221がブロックユニットのブロックサイズに基づいてリムーバブル領域を決定する場合、ブロックサイズのブロック幅はブロックサイズのブロック高さと比較されてもよい。少なくとも1つの実施形態では、イントラ予測ユニット22221は、ブロック幅とブロック高さとの間の比較に基づいて、リムーバブル領域を決定することができる。少なくとも1つの実施形態では、ブロック幅がブロック高さよりも長い場合、リムーバブル領域は、第1のイントラ予測領域641から第3のイントラ予測領域643のうちの少なくとも1つを含むように予め定義され得る。別の実施形態では、ブロック幅がブロック高さよりも短い場合、第4のイントラ予測領域644から第6のイントラ予測領域646のうちの少なくとも1つを含むように、取り外し可能領域を予め定義することができる。例えば、ブロック幅がブロック高さよりも長い場合、リムーバブル領域は、第1のイントラ予測領域641を含むように予め定義されてもよい。さらに、ブロック幅がブロック高さよりも短い場合、リムーバブル領域は、第6のイントラ予測領域646を含むように予め定義されてもよい。少なくとも1つの実施形態では、ブロック幅がブロック高さよりも長い場合、リムーバブル領域は、第1のイントラ予測領域631および第2のイントラ予測領域632のうちの少なくとも1つを含むように予め定義され得る。別の実施形態では、ブロック幅がブロック高さよりも短い場合、リムーバブル領域は、第3のイントラ予測領域633および第4のイントラ予測領域634のうちの少なくとも1つを含むように予め定義され得る。
少なくとも1つの実施形態ではブロック幅がブロック高さよりも長い場合、イントラ予測領域のうちの第1の特定の1つが、リムーバブル領域として予め定義され得る。また、ブロック幅がブロック高さよりも短い場合には、第1の特定のイントラ予測領域とは異なるイントラ予測領域のうちの第2の特定のイントラ予測領域がリムーバブル領域として予め定義されてもよい。この実施形態では、第1の特定のイントラ予測領域における水平方向と複数のイントラモードの各々との間の第1の角度は45度以下であり、第2の特定のイントラ予測領域における垂直方向と複数のイントラモードの各々との間の第2の角度は45度以下である。
少なくとも1つの実施形態において、イントラ予測ユニット22221は、イントラ予測ユニット22221が隣接ブロックの予測情報に基づいてリムーバブル領域を決定する場合、ブロックユニットで隣接する隣接ブロックの複数の予測モードに基づいて複数の最確モード(MPM)を決定してもよい。この実施形態において、予測情報は隣接ブロックの予測モードを含むことができ、予測モードの各々は方位を有する。少なくとも1つの実施形態において、イントラ予測ユニット22221は、MPMの方位を指向性モードの方位と比較し、MPMの方位と指向性モードの方位との間の比較に基づいて、リムーバブル領域を決定してもよい。一実施形態では、特定のイントラ予測領域がブロックユニットのMPMを含まない場合、イントラ予測領域のうちの特定の1つをリムーバブル領域として決定することができる。
少なくとも1つの実施形態において、イントラ予測ユニット22221は、イントラ予測ユニット22221が隣接ブロックの予測情報に基づいてリムーバブル領域を決定する場合、ブロックユニットを再構成する間に、どちらの隣接ブロックが再構成されていないかを決定してもよい。少なくとも1つの実施形態では、イントラ予測ユニット22221がイントラモードのうちのどれが、ブロックユニットから決定された隣接ブロックに向けられるか、およびイントラ予測領域のうちのどれが、決定されたイントラモードを含むかをさらに決定することができる。少なくとも1つの実施形態では、決定されたイントラ予測領域がリムーバブル領域として決定され得る。
ブロック533において、イントラ予測ユニット22221は、リムーバブル領域に含まれるイントラモードのうちの少なくとも1つを、イントラモードのうちの選択された少なくとも1つとして設定する。
少なくとも1つの実施形態において、イントラ予測部22221は、イントラモードのうちのどれがリムーバブル領域に含まれるかをチェックし、リムーバブル領域に含まれるイントラモードを複数のリムーバブルモードとして設定することができる。少なくとも1つの実施形態では、イントラ予測ユニット22221がモードリストから削除するためのイントラモードのうちの選択された少なくとも1つとして、リムーバブルモードのうちの少なくとも1つを設定することができる。少なくとも1つの実施形態において、リムーバブル領域から生成された選択されたイントラモードのうちの少なくとも1つは、宛先デバイス12およびソースデバイス11に予め定義されていてもよい。
少なくとも1つの実施形態において、ブロックユニットは、デコーダモジュール222がHEVC、VTMまたは他のビデオ符号化標準におけるビットストリームを復号する場合、クアッドツリー分割法およびバイナリツリー分割法の少なくとも1つによって分割される。したがって、ブロック幅がブロック高さよりも長い場合、ブロック幅をブロック高さで割った商は2以上であってもよい。また、ブロック幅がブロック高さよりも短い場合、商は1/2以下であってもよい。
少なくとも1つの実施形態では、ブロック幅をブロック高さで割った商が2以上である場合、第1の特定のイントラ予測領域に含まれるイントラモードは、イントラモードのうちの選択された少なくとも1つとして設定される。少なくとも1つの実施形態では、ブロック幅をブロック高さで割った商が1/2以下である場合、第2の特定のイントラ予測領域に含まれるイントラモードは、イントラモードのうちの選択された少なくとも1つとして設定される。
図7は、イントラ予測のためのモードリスト調整の第4の例示的な実施形態によるフローチャートを示す。例示的な方法は、方法を実行する様々な方法があるので、例として提供される。以下に説明する方法は例えば、図1および図2に示す構成を用いて実施することができ、これらの図の様々な要素は、例示的な方法を説明する際に参照される。図7に示される各ブロックは、例示的な方法で実行される1つまたは複数のプロセス、方法、またはサブルーチンを表す。さらに、ブロックの順序は例示にすぎず、変更することができる。本開示から逸脱することなく、追加のブロックが追加されてもよく、またはより少ないブロックが利用されてもよい。少なくとも1つの実施形態では、図7が図3のブロック34および/または図4のブロック44の詳細な例示的な実施形態であり得る。
ブロック741において、イントラ予測ユニット22221は、モードリストから複数の選択されたイントラモードを削除する。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、ブロックユニットのブロックサイズおよび隣接ブロックの予測情報のうちの1つに基づいて、イントラモードのうちの少なくとも1つを選択することができる。一実施形態では、イントラ予測ユニット22221は、ブロックサイズを、予め定義されたサイズと比較し、ブロックサイズと予め定義されたサイズとの間の比較に基づいて、選択されたイントラモードを決定することができる。一実施形態では、イントラ予測ユニット22221は、ブロックサイズのブロック幅をブロックサイズのブロック高さと比較し、ブロック幅とブロック高さとの間の比較に基づいて選択されたイントラモードを決定することができる。一実施形態では、イントラ予測ユニット22221は、モードリストから複数のMPMを決定し、MPMの方位をイントラモードに含まれる指向性モードの方位と比較し、MPMの方位と指向性モードの方位との間の比較に基づいて選択されたイントラモードを決定することができる。一実施形態では、イントラ予測ユニット22221は、どの隣接ブロックが再構成されていないかを決定し、どのイントラモードがブロックユニットから決定された隣接ブロックに向けられるかを決定し、決定されたイントラモードを選択されたイントラモードとして設定することができる。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、モードリストから選択されたイントラモードを削除することができる。少なくとも1つの実施形態では、イントラ予測ユニット22221がモードリストから選択されたイントラモードのすべてを削除する場合、選択されていないイントラモードはモードリスト内の残存するイントラモードである。
ブロック742において、イントラ予測ユニット22221は、調整済みモードリストを生成するために、選択されていないイントラモードと組み合わせるための複数の追加モードを決定する。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、ブロックユニットのブロックサイズに基づいて追加モードを決定する。少なくとも1つの実施形態では、イントラ予測ユニット22221は、隣接ブロックの予測情報に基づいて追加モードを決定する。少なくとも1つの実施形態では、削除されたモードの数が追加モードの数に等しい。したがって、モードリスト内のイントラモードの数は、調整済みリスト内の追加モードおよび残存するイントラモードの数に等しい。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、ブロックサイズと、予め定義されたサイズとの間の比較に基づいて追加モードを決定することができる。一実施形態では、ブロックサイズが、予め定義されたサイズよりも大きい場合、追加モードは複数の第1の置換されたモードであってもよい。別の実施形態では、ブロックサイズが、予め定義されたサイズよりも小さい場合、追加モードは複数の第2の置換されたモードであってもよい。この実施形態において、第2の置換されたモードの各々は、第1の置換されたモードとは異なっていてもよい。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、ブロック幅と予め定義された高さとの間の比較に基づいて追加モードを決定することができる。一実施形態では、ブロック幅がブロック高さよりも長い場合、追加モードは複数の第3の置換されたモードであってもよい。別の実施形態では、ブロック幅がブロック高さよりも短い場合、追加モードは複数の第4の置換されたモードであってもよい。この実施形態において、第3の置換されたモードの各々は、第4の置換されたモードとは異なっていてもよい。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、MPMの方位と指向性モードの方位との間の比較に基づいて、追加モードを決定することができる。一実施形態では、MPMモードに近い新しい指向性モードを作成することができる。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、隣接ブロックのうちのどれが再構成されていないかを決定し、イントラモードのうちのどれが、ブロックユニットから決定された隣接ブロックに向けられるかを決定することができる。この実施形態において、イントラ予測ユニット22221は、決定されたイントラモードの方位と指向性モードの方位との間の比較に基づいて、追加モードを決定してもよい。一実施形態では、決定されたイントラモードから遠い新しい指向性モードが生成されてもよい。
少なくとも1つの実施形態では、イントラモードの各々が第1のイントラ予測インデックスを有する。一実施形態では、デコーダモジュール222がHEVC内のビットストリームを復号する場合、イントラモードの第1のイントラ予測インデックスは0~34に等しくてもよい。この実施形態では、プレーナモードおよびDCモードの第1のイントラ予測インデックスが0および1に等しくてもよく、指向性モードの第1のイントラ予測インデックスは2~33に等しくてもよい。一実施形態では、デコーダモジュール222がVTM内のビットストリームを復号する場合、イントラモードの第1のイントラ予測インデックスは0~66に等しくてもよい。この実施形態において、プレーナモードおよびDCモードの第1のイントラ予測インデックスは0および1に等しくてもよく、指向性モードの第1のイントラ予測インデックスは2~66に等しくてもよい。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、指向性モードを複数のイントラ予測領域に分割することができる。この実施形態において、イントラ予測領域の数は、宛先デバイス12およびソースデバイス11において予め定義されてもよい。例えば、イントラ予測領域の個数は、4個、6個、または13個であってもよい。一実施形態では、図6Cにおいて、イントラ予測領域641~646のうちの最初の1つは第1のイントラ予測インデックス2~11を有するイントラモードを含むことができ、イントラ予測領域641~646のうちの最後の1つは第1のイントラ予測インデックス57~66を有するイントラモードを含むことができ、イントラ予測領域641~646のうちの他の1つは第1のイントラ予測インデックス12~56を有するイントラモードを含むことができる。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、ブロックサイズと予め定義されたサイズとの間の比較に基づいて挿入される領域を決定し、挿入される領域に基づいて追加モードを生成することができる。一実施形態では、ブロックサイズが、予め定義されたサイズよりも小さい場合、挿入される領域は、第1のイントラ予測領域641および最後のイントラ予測領域646のうちの少なくとも1つを含むように予め定義されてもよい。別の実施形態では、ブロックサイズが、予め定義されたサイズよりも大きい場合、挿入される領域は、第2のイントラ予測領域642から第5のイントラ予測領域645のうちの少なくとも1つを含むように予め定義され得る。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、ブロック幅とブロック高さとの間の比較に基づいて挿入される領域を決定し、挿入される領域に基づいて追加モードを生成することができる。一実施形態では、ブロック幅がブロック高さよりも短い場合、挿入される領域は、第1のイントラ予測領域641~第3のイントラ予測領域643のうちの少なくとも1つに基づいて予め定義されてもよい。別の実施形態では、ブロック幅がブロック高さよりも長い場合、挿入される領域は、第4のイントラ予測領域644から第6のイントラ予測領域646のうちの少なくとも1つに基づいて予め定義され得る。例えば、ブロック幅がブロック高さよりも短い場合、第1イントラ予測領域641に基づいて、挿入される領域を予め定義してもよい。また、ブロック幅がブロック高さよりも長い場合には、第6イントラ予測領域646に基づいて、挿入される領域を予め定義してもよい。少なくとも1つの実施形態では、ブロック幅がブロック高さよりも短い場合、第1のイントラ予測領域641に隣接する第1の置換された領域を、挿入される領域として予め定義することができる。また、ブロック幅がブロック高さよりも長い場合には、第6イントラ予測領域646に隣接する第1の置換された領域を挿入される領域として予め定義してもよい。この実施形態では、第2の置換された領域が第1の置換された領域とは異なる。図8は、ブロックユニット81の6つのイントラ予測領域841~846および2つの置換された領域851および856の例示的な実施形態の概略図である。少なくとも1つの実施形態では、ブロック幅がブロック高さよりも長い場合、第3の置換されたモードを置換された領域856内に生成することができる。また、ブロック幅がブロック高さよりも短い場合には、置換された領域851に第4の置換されたモードを生成してもよい。
少なくとも1つの実施形態では、イントラ予測ユニット22221がMPMの方位と指向性モードの方位との間の比較に基づいて挿入される領域を決定し、挿入される領域に基づいて追加モードを生成することができる。一実施形態では、挿入される領域が特定のイントラ予測領域がブロックユニットのMPMの大部分を含む場合、イントラ予測領域641~646のうちの特定の1つを含むように設定されてもよい。
少なくとも1つの実施形態では、イントラ予測ユニット22221が隣接ブロックのうちのどれが再構成されていないかを決定し、イントラモードのうちのどれが、ブロックユニットから決定された隣接ブロックに向けられるかを決定することができる。この実施形態において、イントラ予測ユニット22221は、決定されたイントラモードを含むイントラ予測領域を決定してもよい。一実施形態では、挿入される領域は、決定されたイントラ予測領域とは異なっていてもよい。例えば、ブロックユニット81が復号されている場合、ブロックユニット81の左側の隣接ブロックは復号されない。この実施形態において、ブロックユニットから隣接するブロックに向ける決定されたイントラモードの方位は、水平方位と同様であってもよい。したがって、水平方向から遠い挿入される領域を置換された領域851とすることができる。他の実施形態では、ブロックユニットから隣接するブロックに向けて決定されたイントラモードの方位が垂直方位と類似している場合、垂直方位から遠く離れた挿入される領域は置換された領域856であってもよい。
ブロック743で、イントラ予測ユニット22221は、調整済みモードリスト内の選択されていないイントラモードおよび追加モードのそれぞれにモードインデックスを設定する。
少なくとも1つの実施形態では、イントラモードの各々が第1のイントラ予測インデックスを有する。少なくとも1つの実施形態では、イントラモードは、0からN-1に設定された第1のイントラ予測インデックスを有するN個の無指向性モードと、Nから(N-1)+Mに設定された第1のイントラ予測インデックスを有するM個の指向性モードとを含むことができる。
少なくとも1つの実施形態では、Nが2に等しく、MがHEVCにおいて32に等しい場合、イントラモードは、0および1として設定された第1のイントラ予測インデックスを有する2つの無指向性モードと、2から33として第1のイントラ予測インデックスを有する32の指向性モードとを含み得る。少なくとも1つの実施形態では、Nが2に等しく、MがVTMにおいて65に等しい場合、イントラモードは、0および1として設定された第1のイントラ予測インデックスを有する2つの無指向性モードと、2から66までの第1のイントラ予測インデックスを有する65個の指向性モードとを含み得る。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、非選択のイントラモードの第1のイントラ予測インデックスを変更されないままにすることができる。したがって、選択されていないイントラモードのモードインデックスは、選択されていないイントラモードの第1のイントラ予測インデックスと同一であってもよい。一実施形態では、第1のイントラ予測インデックス2~11を有する選択されたイントラ予測モードが削除される場合、選択されていないイントラモードのモードインデックスは12~66に等しくてもよい。
少なくとも1つの実施形態では、追加モードの数がKに等しい場合、複数の第2のイントラ予測インデックスは、追加モードのためにN+Mから(N+M-1)+Kに設定されてもよく、1つの実施形態では、MがHEVCにおいて32に等しい場合、第2のイントラ予測インデックスは、N+32からN+K+31に設定されてもよい。一実施形態では、MがVTMにおいて65に等しい場合、第2のイントラ予測インデックスは、N+65からN+K+64に設定され得る。例えば、第1のイントラ予測インデックス2~11を有する選択されたイントラ予測モードが削除される場合、追加モードの数Kは10に等しくてもよい。したがって、Nが2に等しく、MがVTMにおいて65に等しい場合、追加モードの第2のイントラ予測インデックスは67~76に等しくてもよい。
少なくとも1つの実施形態では、M個の指向性モードの第1のイントラ予測インデックスがNから(N-1)+Mに設定されるので、指向性モードのうちのR番目のモードの第1のイントラ予測インデックスは(N-1)+Rに等しい。1つの実施形態では、NがVTMで2に等しい場合、R番目の指向性モードの第1のイントラ予測インデックスはR+1に等しい。少なくとも1つの実施形態では、複数の第2のイントラ予測インデックスが追加モードについてN+Mから(N+M-1)+Kに設定され得るので、指向性モードのうちのQ番目のモードの第2のイントラ予測インデックスは(N+M-1)+Qに等しい。一実施形態では、VTMにおいて、Nが2に等しく、Mが65に等しい場合、Q番目の追加モードの第2のイントラ予測インデックスは65+(Q+1)に等しい。
ブロック744において、イントラ予測ユニット22221は、ブロックユニット予測子を生成するためのモードインデックスのうちの特定の1つを決定する。
少なくとも1つの実施形態では、ブロックユニットが非選択のイントラモードのうちの特定の1つと、調整済みリスト内の特定のモードインデックスに対応する追加モードとに基づいて予測される場合、イントラ予測ユニット22221は、特定のモードインデックスを示す予測表示を受信することができる。一実施形態では、イントラ予測ユニット22221は、特定のモードの方位に沿って、ブロック要素のそれぞれについて、ブロックユニットに隣接する隣接ブロックに基づいて生成された参照サンプルから予測子のうちの1つを決定することができる。
少なくとも1つの実施形態では、予測指示によって示される特定のモードインデックスが選択されていないイントラモードの第1のイントラ予測インデックスのうちの1つと同一である場合、特定のモードインデックスは0以上N+M未満であり得る。少なくとも1つの実施形態では、特定のモードインデックスが選択されていないイントラモードの第1のイントラ予測インデックスと異なる場合、特定のモードインデックスはN+M以上である。
図9Aは、イントラ予測のためのモードリスト調整の第5の例示的な実施形態によるフローチャートを示す。例示的な方法は、本方法を実行する様々な方法があるので、単に例として提供される。以下に説明する方法は例えば、図1および図2に示す構成を用いて実施することができ、これらの図の様々な要素は、例示的な方法を説明する際に参照される。図9Aに示される各ブロックは、例示的な方法で実行される1つまたは複数のプロセス、方法、またはサブルーチンを表す。さらに、ブロックの順序は例示にすぎず、変更することができる。本開示から逸脱することなく、追加のブロックが追加されてもよく、またはより少ないブロックが利用されてもよい。
ブロック911において、デコーダモジュール222は、ビデオデータから画像フレーム内のブロックサイズを有するブロックユニットを決定する。
少なくとも1つの実施形態において、ビデオデータはビットストリームであってもよい。宛先デバイス12は、宛先デバイス12の第2のインターフェース123を介して、ソースデバイス11などのエンコーダからビットストリームを受信することができる。第2のインターフェース123は、デコーダモジュール222にビットストリームを提供する。デコーダモジュール222は、ビットストリームに基づいて画像フレームを決定し、画像フレームを分割して、ビットストリーム内の複数のパーティション指示に従ってブロックユニットを決定する。例えば、デコーダモジュール222は、複数の符号化ツリーユニットを生成するために画像フレームを分割し、さらに、任意のビデオ符号化規格に基づいてパーティション表示に従ってブロックサイズを有するブロックユニットを決定するために符号化ツリーユニットのうちの1つを分割することができる。少なくとも1つの実施形態では、ブロックサイズは、ブロック高さおよびブロック幅を含むことができる。
少なくとも1つの実施形態では、エントロピー復号部2221は、ブロックユニットのための複数の予測表示を決定するためにビットストリームを復号することができ、次いで、デコーダモジュール222は、予測表示に基づいてブロックユニットをさらに再構成することができる。少なくとも1つの実施形態では、予測表示は、複数のフラグおよび複数のインデックスを含むことができる。
ブロック912において、イントラ予測ユニット22221は、複数のイントラモードを含むモードリストを決定する。
少なくとも1つの実施形態において、モードリスト内のイントラモードは、宛先デバイス12およびソースデバイス11に予め定義されてもよい。例えば、イントラモードは、プレーナモード、DCモード、および複数の指向性モードとして予め定義されてもよい。少なくとも1つの実施形態では、デコーダモジュール222がHEVC内のビットストリームを復号する場合、指向性モードの数は33に等しくてもよい。少なくとも1つの実施形態において、デコーダモジュール222がVTM内のビットストリームを復号する場合、指向性モードの数は65に等しくてもよい。
少なくとも1つの実施形態では、イントラモードの各々が第1のイントラ予測インデックスを有する。一実施形態では、デコーダモジュール222がHEVC内のビットストリームを復号する場合、イントラモードの第1のイントラ予測インデックスは0~34に等しくてもよい。この実施形態では、プレーナモードおよびDCモードの第1のイントラ予測インデックスは0および1に等しくてもよく、指向性モードの第1のイントラ予測インデックスは2~33に等しくてもよい。一実施形態では、デコーダモジュール222がVTM内のビットストリームを復号する場合、イントラモードの第1のイントラ予測インデックスは0~66に等しくてもよい。この実施形態において、プレーナモードおよびDCモードの第1のイントラ予測インデックスは0および1に等しくてもよく、指向性モードの第1のイントラ予測インデックスは2~66に等しくてもよい。
ブロック913において、イントラ予測ユニット22221は、ブロックサイズに基づいて複数の追加モードを決定する。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、ブロックサイズを、予め定義されたサイズと比較し、ブロックサイズと予め定義されたサイズとの間の比較に基づいて追加モードを決定することができる。一実施形態では、ブロックサイズが、予め定義されたサイズよりも大きい場合、追加モードは複数の第1の追加されたモードであってもよい。別の実施形態では、ブロックサイズが、予め定義されたサイズよりも小さい場合、追加モードは複数の第2の追加されたモードであってもよい。この実施形態において、第2の追加されたモードの各々は、第1の追加されたモードとは異なっていてもよい。
一実施形態では、イントラ予測ユニット22221は、ブロックユニットのブロック幅をブロックユニットのブロック高さと比較し、ブロック幅とブロック高さとの間の比較に基づいて追加モードを決定することができる。一実施形態では、ブロック幅がブロック高さよりも長い場合、追加モードは複数の第3の追加されたモードであってもよい。別の実施形態では、ブロック幅がブロック高さよりも短い場合、追加モードは複数の第4の追加されたモードであってもよい。この実施形態において、の第3の追加されたモード各々は、第4の追加されたモードとは異なっていてもよい。
少なくとも1つの実施形態において、イントラ予測ユニット22221は、複数のイントラモードを複数のイントラ予測領域に分割してもよい。この少なくとも1つの実施形態において、イントラ予測ユニット22221は、指向性モードをイントラ予測領域に分割してもよい。一実施形態では、図6Cにおいて、イントラ予測領域641~646のうちの最初の1つはイントラ予測インデックス2~11を有するイントラモードを含むことができ、イントラ予測領域641~646のうちの最後の1つはイントラ予測インデックス57~66を有するイントラモードを含むことができ、イントラ予測領域641~646のうちの他の1つはイントラ予測インデックス12~56を有するイントラモードを含むことができる。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、ブロックサイズと予め定義されたサイズとの間の比較に基づいて挿入される領域を決定し、挿入される領域に基づいて追加モードを生成することができる。一実施形態では、ブロックサイズが、予め定義されたサイズよりも小さい場合、挿入される領域は、第1のイントラ予測領域641および最後のイントラ予測領域646のうちの少なくとも1つを含むように予め定義されてもよい。別の実施形態では、ブロックサイズが、予め定義されたサイズよりも大きい場合、挿入される領域は、第2のイントラ予測領域642から第5のイントラ予測領域645のうちの少なくとも1つを含むように予め定義され得る。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、ブロック幅とブロック高さとの間の比較に基づいて挿入される領域を決定し、挿入される領域内に追加モードを生成することができる。一実施形態では、ブロック幅がブロック高さよりも短い場合、挿入される領域は、第1のイントラ予測領域641~第3のイントラ予測領域643のうちの少なくとも1つに基づいて予め定義されてもよい。別の実施形態では、ブロック幅がブロック高さよりも長い場合、挿入される領域は第4のイントラ予測領域644から第6のイントラ予測領域646のうちの少なくとも1つに基づいて予め定義され得る。例えば、ブロック幅がブロック高さよりも短い場合、第1イントラ予測領域641に基づいて、挿入される領域を予め定義してもよい。また、ブロック幅がブロック高さよりも長い場合には、第6イントラ予測領域646に基づいて、挿入される領域を予め定義してもよい。少なくとも1つの実施形態では、ブロック幅がブロック高さよりも短い場合、第1のイントラ予測領域641に隣接する第1の追加された領域を、挿入される領域として予め定義することができる。また、ブロック幅がブロック高さよりも長い場合には、第6イントラ予測領域646に隣接する第2の追加された領域を挿入される領域として予め定義してもよい。この実施形態では、第2の追加された領域は第1の追加された領域とは異なる。少なくとも1つの実施形態では、図8において、ブロック幅がブロック高さよりも長い場合、第3の追加モードを追加された領域856内に生成することができる。また、ブロック幅がブロック高さよりも短い場合には、追加された領域851に第4の追加モードを生成してもよい。
ブロック914で、イントラ予測ユニット22221は、追加モードをモードリストに追加して、イントラモードの各々を含む調整済みリストを生成する。
少なくとも1つの実施形態では、追加モードがモードリストに追加される場合に、イントラ予測ユニット22221は、追加モードのそれぞれについて第2のイントラ予測インデックスを設定することができる。少なくとも1つの実施形態では、イントラモードの各々が第1のイントラ予測インデックスを有する。少なくとも1つの実施形態では、イントラモードは、0からN-1に設定された第1のイントラ予測インデックスを有するN個の無指向性モードと、NからN+M-1に設定された第1のイントラ予測インデックスを有するM個の指向性モードとを含むことができる。
少なくとも1つの実施形態では、Nが2に等しく、MがHEVCにおいて32に等しい場合、イントラモードは、0および1として設定された第1のイントラ予測インデックスを有する2つの無指向性モードと、2から33として第1のイントラ予測インデックスを有する32の指向性モードとを含み得る。少なくとも1つの実施形態では、Nが2に等しく、MがVTMにおいて65に等しい場合、イントラモードは、0および1として設定された第1のイントラ予測インデックスを有する2つの無指向性モードと、2から66までの第1のイントラ予測インデックスを有する65個の指向性モードとを含み得る。
少なくとも1つの実施形態では、追加モードの数がKに等しい場合、第2のイントラ予測インデックスはN+MからN+M+Kに設定されてもよく、1つの実施形態では、MがHEVCにおいて32に等しい場合、第2のイントラ予測インデックスは、N+32からN+K+32に設定されてもよい。一実施形態では、MがVTMにおいて65に等しい場合、第2のイントラ予測インデックスは、N+65からN+K+64に設定され得る。例えば、第1のイントラ予測インデックス2~11を有する選択されたイントラ予測モードが削除される場合、追加モードの数Kは10に等しくてもよい。したがって、Nが2に等しく、MがVTMにおいて65に等しい場合、追加モードの第2のイントラ予測インデックスは67~76に等しくてもよい。
ブロック915において、イントラ予測ユニット22221は、調整済みリストに基づいて、ブロックユニットの複数の予測子を生成する。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、ビットストリームから予測表示を決定することができる。少なくとも1つの実施形態では、イントラ予測ユニット22221は、予測指示のうちの特定の1つに基づいて、ブロックサイズに従って導出された調整済みリスト内のイントラモードおよび追加モードのうちの1つを決定することができる。少なくとも1つの実施形態では、具体的な予測表示は、決定されたモードの第2のイントラ予測インデックスと同一のモードインデックスを示す。これにより、イントラ予測部22221は、モードインデックスに基づいて決定されたモードを導出することができる。少なくとも1つの実施形態では、特定の予測指示によって示されるモードインデックスは、決定されたモードの第1のイントラ予測インデックスと同一であってもよい。
少なくとも1つの実施形態では、ブロックユニットは、複数のブロック要素を含むことができる。この実施形態では、ブロック要素の各々は、画素要素であってもよい。少なくとも1つの実施形態では、イントラ予測ユニット22221は、ブロックユニットについて導出された決定されたモードの方位に沿って、ブロック要素の各々ブロックユニットに隣接する複数の隣接ブロックに基づいて、予測子のうちの1つを決定することができる。一実施形態では、決定されたモードは、ブロックサイズに従って導出された調整済みリスト内のイントラモードおよび追加モードのうちの決定された1つとすることができる。
少なくとも1つの実施形態では、宛先デバイス12内のデコーダモジュール222の第1の加算器2224は、ブロックユニットを再構成するために、決定されたモードに基づいて導出された予測子を、ビットストリームから決定された複数の残差サンプルに追加することができる。さらに、デコーダモジュール222は、画像フレームおよびビデオを再構成するために、画像フレーム内の他のブロックユニットのすべてを再構成することができる。
図9Bは、イントラ予測のためのモードリスト調整の第6の例示的な実施形態によるフローチャートを示す。例示的な方法は、本方法を実行する様々な方法があるので、単に例として提供される。以下に説明する方法は例えば、図1および図2に示す構成を用いて実施することができ、これらの図の様々な要素は、例示的な方法を説明する際に参照される。図9Bに示される各ブロックは、例示的な方法で実行される1つまたは複数のプロセス、方法、またはサブルーチンを表す。さらに、ブロックの順序は例示にすぎず、変更することができる。本開示から逸脱することなく、追加のブロックが追加されてもよく、またはより少ないブロックが利用されてもよい。
ブロック921において、デコーダモジュール222は、ビデオデータから画像フレーム内のブロックユニットを決定し、ブロックユニットに隣接する複数の隣接ブロックを決定する。
少なくとも1つの実施形態において、ビデオデータはビットストリームであってもよい。宛先デバイス12は、宛先デバイス12の第2のインターフェース123を介して、ソースデバイス11などのエンコーダからビットストリームを受信することができる。第2のインターフェース123は、デコーダモジュール222にビットストリームを提供する。デコーダモジュール222は、ビットストリームに基づいて画像フレームを決定し、画像フレームを分割して、ビットストリーム内の複数のパーティション表示に従ってブロックユニットを決定する。例えば、デコーダモジュール222は、複数の符号化ツリーユニットを生成するために画像フレームを分割し、さらに、任意のビデオ符号化規格に基づいてパーティション表示に従ってブロックサイズを有するブロックユニットを決定するために符号化ツリーユニットのうちの1つを分割することができる。
少なくとも1つの実施形態では、エントロピー復号ユニット2221は、ブロックユニットのための複数の予測表示を決定するためにビットストリームを復号することができ、次いで、デコーダモジュール222は、予測表示に基づいてブロックユニットをさらに再構成することができる。少なくとも1つの実施形態では、予測表示は、複数のフラグおよび複数のインデックスを含むことができる。
少なくとも1つの実施形態では、宛先デバイス12の予測プロセスユニット2222は、ブロックユニットに隣接する隣接ブロックを決定する。この実施形態において、隣接ブロックは、複数の基準線に含まれてもよい。この実施形態では、第1の基準線内の隣接ブロックはブロックユニットに隣接し、第2の基準線内の隣接ブロックは第1の基準線内の隣接ブロックに隣接する。少なくとも1つの実施形態では、隣接ブロックは、ブロックユニットを再構成する前に再構成されてもよく、したがって、隣接ブロックは、ブロックユニットを再構成するための複数の参照候補であってもよい。少なくとも1つの実施形態では、ブロックユニットは、隣接ブロックのうちの一部を再構成する前に再構成され得、したがって、イントラ予測ユニット22221は、再構成された隣接ブロックでパディングすることによって、再構成されていない隣接ブロックのためのブロックユニットの参照サンプルを生成し得る。
ブロック922において、イントラ予測部22221は、複数のイントラモードを含むモードリストを決定し、隣接ブロックの予測情報を決定する。
少なくとも1つの実施形態において、モードリスト内のイントラモードは、宛先デバイス12およびソースデバイス11に予め定義されてもよい。例えば、イントラモードは、プレーナモード、DCモード、および複数の指向性モードとして予め定義されてもよい。少なくとも1つの実施形態では、デコーダモジュール222がHEVC内のビットストリームを復号する場合、指向性モードの数は33に等しくてもよい。少なくとも1つの実施形態において、デコーダモジュール222がVTM内のビットストリームを復号する場合、指向性モードの数は65に等しくてもよい。
少なくとも1つの実施形態では、イントラモードの各々が第1のイントラ予測インデックスを有する。一実施形態では、デコーダモジュール222がHEVC内のビットストリームを復号する場合、イントラモードの第1のイントラ予測インデックスは0~34に等しくてもよい。この実施形態では、プレーナモードおよびDCモードの第1のイントラ予測インデックスが0および1に等しくてもよく、指向性モードの第1のイントラ予測インデックスは2~33に等しくてもよい。一実施形態では、デコーダモジュール222がVTM内のビットストリームを復号する場合、イントラモードの第1のイントラ予測インデックスは0~66に等しくてもよい。この実施形態では、プレーナモードおよびDCモードの第1のイントラ予測インデックスが0および1に等しくてもよく、指向性モードの第1のイントラ予測インデックスは2~66に等しくてもよい。
少なくとも1つの実施形態では、隣接ブロックの予測情報は、隣接ブロックの複数の復号されたモードを含むことができる。一実施形態では、隣接ブロックの復号されたモードがイントラ予測である場合、予測情報は、隣接ブロックの複数の予測モードをさらに含むことができる。この実施形態では、予測モードは、隣接ブロックを再構成するためのモードリスト内のイントラモードから選択される。少なくとも1つの実施形態において、イントラ予測ユニット22221は、隣接ブロックの予測モードをチェックし、ブロックユニットのための隣接ブロックの予測モードに基づいて、複数の最確モード(MPM)を決定してもよい。一実施形態では、特定の隣接ブロックの復号されたモードがインター予測である場合、イントラ予測ユニット22221は、隣接ブロックのうちの特定の1つをバイパスし、他の隣接ブロックの復号されたモードを検査することができる。
少なくとも1つの実施形態では、隣接ブロックの予測情報は、隣接ブロックが再構成されるかどうかを判定するために使用される任意の情報とすることができる。例えば、イントラ予測部22221は、第1の加算器2224によって生成された隣接ブロックの複数の再構成成分を直接受信してもよい。イントラ予測ユニット22221は、隣接ブロックの再構成された成分を受信すると、ブロックユニットを再構成する前に隣接ブロックが再構成されると判定することができる。また、イントラ予測部22221が隣接ブロックの再構成成分を受信しない場合、イントラ予測部22221は、ブロックユニットを再構成する前に隣接ブロックが再構成されていないと判定してもよい。一実施形態では、ブロックユニットを再構成する前に、隣接するブロックのすべてが再構成された場合に、隣接するブロックの再構成された成分を使用して、ブロックユニットの複数の参照サンプルを生成することができる。他の実施形態では、ブロックユニットを再構成する間に、特定の隣接ブロックが再構成されていない場合、隣接ブロックのうちの特定の1つは、参照サンプルを生成するために使用されなくてもよい。この実施形態において、イントラ予測部22221は、他の隣接ブロックでパディングすることによって、特定の隣接ブロックに対応する参照サンプルのうちの特定の1つを生成することができる。
ブロック923において、イントラ予測ユニット22221は、隣接ブロックの予測情報に基づいて、複数の追加モードを決定する。
少なくとも1つの実施形態では、MPMおよび指向性モードを含むイントラモードの各々が、方位を含む。少なくとも1つの実施形態では、イントラ予測ユニット22221は、MPMの方位を指向性モードの方位と比較することができる。少なくとも1つの実施形態では、イントラ予測ユニット22221は、MPMの方位と指向性モードの方位との間の比較に基づいて、追加モードを決定することができる。一実施形態では、MPMモードに近い新しい指向性モードを作成することができる。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、隣接ブロックのうちのどれが再構成されていないかを決定し、イントラモードのうちのどれが、ブロックユニットから決定された隣接ブロックに向けられるかを決定することができる。この実施形態において、イントラ予測ユニット22221は、決定されたイントラモードの方位と指向性モードの方位との間の比較に基づいて、追加モードを決定してもよい。一実施形態では、決定されたイントラモードから遠い新しい指向性モードが生成されてもよい。
少なくとも1つの実施形態において、イントラ予測ユニット22221は、指向性モードを複数のイントラ予測領域に分割してもよい。この実施形態において、イントラ予測領域の数は、宛先デバイス12およびソースデバイス11において予め定義されてもよい。例えば、イントラ予測領域の個数は、4個、6個、または13個であってもよい。一実施形態では、図6Cにおいて、イントラ予測領域641~646のうちの最初の1つはイントラ予測インデックス2~11を有するイントラモードを含むことができ、イントラ予測領域641~646のうちの最後の1つはイントラ予測インデックス57~66を有するイントラモードを含むことができ、イントラ予測領域641~646のうちの他の1つはイントラ予測インデックス12~56を有するイントラモードを含むことができる。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、MPMの方位と指向性モードの方位との間の比較に基づいて挿入される領域を決定し、挿入される領域に基づいて追加モードを生成することができる。一実施形態では、特定のイントラ予測領域がブロックユニットのMPMの大部分を含む場合、挿入される領域は、イントラ予測領域641~646のうちの特定の1つを含むように設定されてもよい。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、隣接ブロックのうちのどれが再構成されていないかを決定し、イントラモードのうちのどれが、ブロックユニットから決定された隣接ブロックに向けられるかを決定することができる。この実施形態において、イントラ予測部22221は、決定されたイントラモードを含むイントラ予測領域をさらに決定することができる。一実施形態では、挿入される領域は、決定されたイントラ予測領域とは異なっていてもよい。別の実施形態では、挿入される領域は、決定されたイントラ予測領域から遠く離れていてもよい。例えば、ブロックユニット81が復号されている場合、ブロックユニット81の左側の隣接ブロックは復号されない。この実施形態において、ブロックユニットから隣接するブロックに向ける決定されたイントラモードの方位は、水平方位と同様であってもよい。したがって、水平方向から遠い挿入される領域は、図8の第1の追加された領域851であってもよい。他の実施形態では、ブロックユニットから隣接ブロックに向かう決定されたイントラモードの方位が垂直方位と同様である場合、垂直方位から遠く離れた挿入される領域は第2の追加された領域856であってもよい。
ブロック924で、イントラ予測ユニット22221は、追加モードをモードリストに追加して、イントラモードの各々を含む調整済みリストを生成する。
少なくとも1つの実施形態では、追加モードがモードリストに追加されるときに、イントラ予測ユニット22221は、追加モードのそれぞれについて第2のイントラ予測インデックスを設定することができる。少なくとも1つの実施形態では、イントラモードの各々が第1のイントラ予測インデックスを有する。少なくとも1つの実施形態では、イントラモードは、0からN-1に設定された第1のイントラ予測インデックスを有するN個の無指向性モードと、NからN+M-1に設定された第1のイントラ予測インデックスを有するM個の指向性モードとを含むことができる。
少なくとも1つの実施形態では、Nが2に等しく、MがHEVCにおいて32に等しい場合、イントラモードは、0および1として設定された第1のイントラ予測インデックスを有する2つの無指向性モードと、2から33としての第1のイントラ予測インデックスを有する32の指向性モードとを含み得る。少なくとも1つの実施形態では、Nが2に等しく、MがVTMにおいて65に等しい場合、イントラモードは、0および1として設定された第1のイントラ予測インデックスを有する2つの無指向性モードと、2から66としての第1のイントラ予測インデックスを有する65個の指向性モードとを含み得る。
少なくとも1つの実施形態では、追加モードの数がKに等しい場合、第2のイントラ予測インデックスはN+MからN+M+Kに設定されてもよく、1つの実施形態では、MがHEVCにおいて32に等しい場合、第2のイントラ予測インデックスはN+32からN+K+32に設定されてもよい。一実施形態では、MがVTMにおいて65に等しい場合、第2のイントラ予測インデックスはN+65からN+K+64に設定され得る。例えば、第1のイントラ予測インデックス2~11を有する選択されたイントラ予測モードが削除される場合、追加モードの数Kは10に等しい。したがって、追加モードの第2のイントラ予測インデックスは、67~76に等しくてもよい。
ブロック925において、イントラ予測ユニット22221は、調整済みリストに基づいて、ブロックユニットの複数の予測子を生成する。
少なくとも1つの実施形態では、イントラ予測ユニット22221は、ビットストリームから予測表示を決定することができる。一実施形態では、イントラ予測ユニット22221は、予測表示のうちの特定の1つに基づいて、隣接ブロックの予測情報に従って導出された調整済みリスト内のイントラモードおよび追加モードのうちの1つを決定することができる。少なくとも1つの実施形態では、具体的な予測表示は、決定されたモードの第2のイントラ予測インデックスと同一のモードインデックスを示す。これにより、イントラ予測部22221は、モードインデックスに基づいて決定されたモードを導出することができる。少なくとも1つの実施形態では、特定の予測指示によって示されるモードインデックスは、決定されたモードの第1のイントラ予測インデックスと同一であってもよい。
少なくとも1つの実施形態では、ブロックユニットは、複数のブロック要素を含むことができる。この実施形態では、ブロック要素の各々は、画素要素であってもよい。少なくとも1つの実施形態では、イントラ予測ユニット22221は、ブロックユニットのために導出された決定されたモードの向きのうちの特定の1つに沿って、ブロック要素の各々のためのブロックユニットに隣接する隣接ブロックに基づいて、予測子のうちの1つを決定することができる。一実施形態では、決定されたモードは、隣接ブロックの予測情報に従って導出された調整済みリスト内のイントラモードおよび追加モードのうちの決定された1つとすることができる。
少なくとも1つの実施形態では、宛先デバイス12内のデコーダモジュール222の第1の加算器2224は、ブロックユニットを再構成するために、決定されたモードに基づいて導出された予測子を、ビットストリームから決定された複数の残差サンプルに追加することができる。さらに、デコーダモジュール222は、画像フレームおよびビデオを再構成するために、画像フレーム内の他のブロックユニットのすべてを再構成することができる。
図10は、図1のシステムにおけるソースデバイス11のエンコーダモジュール1012の例示的な実施形態を表すエンコーダモジュール1012のブロック図である。少なくとも1つの実施形態では、エンコーダモジュール1012は、予測プロセスユニット10121と、第1の加算器10122と、変換/量子化ユニット10123と、逆量子化/逆変換ユニット10124と、第2の加算器10125と、フィルタリングユニット10126と、復号画像バッファ10127と、エントロピー符号化ユニット10128とを含む。少なくとも1つの実施形態において、エンコーダモジュール1012の予測プロセスユニット10121は、分割ユニット101211、イントラ予測ユニット101212、およびインター予測ユニット101213をさらに含む。少なくとも1つの実施形態では、エンコーダモジュール1012がソースビデオを受信し、ビットストリームを出力するためにソースビデオを符号化する。
少なくとも1つの実施形態では、エンコーダモジュール1012は、複数の画像フレームを含むソースビデオを受信し、次いで、符号化構造に従って画像フレームを分割することができる。少なくとも1つの実施形態では、画像フレームの各々が少なくとも1つの画像ブロックに分割されてもよい。少なくとも1つの画像ブロックは、複数の輝度サンプルを有する輝度ブロックと、複数のクロミナンスサンプルを有する少なくとも1つのクロミナンスブロックとを含むことができる。輝度ブロックおよび少なくとも1つのクロマブロックは、マクロブロック、符号化ツリーユニット(CTU)、符号化ブロック(CB)、それらのサブディビジョン、および/または別の同等の符号化ユニットを生成するために、さらに分割されてもよい。少なくとも1つの実施形態では、エンコーダモジュール1012は、ソースビデオの追加のサブ分割を実行することができる。本明細書で説明される開示は、符号化の前および/または符号化中にソースビデオがどのように分割されるかにかかわらず、一般にビデオ符号化に適用可能であることに留意されたい。
少なくとも1つの実施形態では、符号化プロセス中に、予測プロセスユニット10121は、画像フレームのうちの特定の1つの現在の画像ブロックを受信する。現在の画像ブロックは、特定の画像フレーム内の輝度ブロックとクロミナンスブロックの少なくとも1つとのうちの1つであってもよい。分割ユニット101211は、現在の画像ブロックを複数のブロックユニットに分割する。イントラ予測ユニット101212は、空間予測を提供するために、現在のブロックユニットフレーム内の1つまたは複数の隣接ブロックに対して、現在のブロックユニットのイントラ予測符号化を実行してもよい。インター予測ユニット101213は、時間予測を提供するために、1つまたは複数の基準画像ブロック内の1つまたは複数のブロックに対する現在のブロックユニットのインター予測符号化を実行することができる。
少なくとも1つの実施形態では、予測プロセスユニット10121は、コスト関数などのモード選択方法に基づいて、イントラ予測ユニット101212およびインター予測ユニット101213によって生成された符号化結果のうちの1つを選択することができる。少なくとも1つの実施形態では、モード選択方法は、レート歪み最適化(RDO)プロセスとすることができる。予測プロセスユニット10121は、選択された符号化結果を決定し、選択された符号化結果に対応する予測ブロックを、残差ブロックを生成するための第1の加算器10122と、符号化されたブロックユニットを再構成するための第2の加算器10125とに提供する。少なくとも1つの実施形態では、予測プロセスユニット10121は、動きベクトル、イントラモードインジケータ、パーティション情報、および他の構文情報などの構文要素をエントロピー符号化ユニット10128にさらに提供することができる。
少なくとも1つの実施形態では、イントラ予測ユニット101212は、現在のブロックユニットをイントラ予測することができる。少なくとも1つの実施形態では、イントラ予測ユニット101212は、現在のブロックユニットを符号化するために、現在のブロックユニットに隣接する再構成されたサンプルに向かうイントラ予測モードを決定することができる。少なくとも1つの実施形態では、イントラ予測ユニット101212は、様々な内部予測モードを使用して現在のブロックユニットを符号化することができ、イントラ予測ユニット101212または予測プロセスユニット10121は、テストされたモードから適切な内部予測モードを選択することができる。少なくとも1つの実施形態では、イントラ予測ユニット101212は、交差成分予測モードを使用して現在のブロックユニットを符号化して、現在のブロックユニットの輝度成分に基づいて、現在のブロックユニットの2つのクロマ成分のうちの1つを予測することができる。さらに、イントラ予測ユニット101212は、現在のブロックユニットの2つのクロマ成分のうちの他方に基づいて、現在のブロックユニットの2つのクロマ成分のうちの最初の1つを予測してもよい。
少なくとも1つの実施形態では、インター予測ユニット101213は、上述したように、イントラ予測ユニット101212によって実行されるイントラ予測の代替として、現在のブロックユニットをインター予測してもよい。インター予測ユニット101213は、動きベクトルを生成するための現在ブロックユニットの動きを推定する動き推定を行うことができる。動きベクトルは、基準画像ブロック内の参照ブロックユニットに対する現在の画像ブロック内の現在のブロックユニットの変位を示すことができる。少なくとも1つの実施形態では、インター予測ユニット101213は、復号画像バッファ10127に格納された少なくとも1つの基準画像ブロックを受信し、受信した基準画像ブロックに基づいて動きを推定して動きベクトルを生成する。
少なくとも1つの実施形態では、第1の加算器10122は、予測プロセスユニット10121によって決定された予測ブロックを元の現在のブロックユニットから減算することによって、残差ブロックを生成する。第1の加算器10122は、この減算演算を実行する1つまたは複数の成分を表す。
少なくとも1つの実施形態において、変換/量子化ユニット10123は、残差変換係数を生成するために、残差ブロックに変換を適用し、次いで、ビットレートをさらに低減するために、残差変換係数を量子化する。少なくとも1つの実施形態では、変換は、DCT、DST、AMT、MDNSST、HyGT、信号依存変換、KLT、ウェーブレット変換、整数変換、サブバンド変換、または概念的に同様の変換とすることができる。少なくとも1つの実施形態では、変換は、残差情報を画素値領域から周波数領域などの変換領域に変換することができる。少なくとも1つの実施形態では、量子化の程度は、量子化パラメータを調整することによって修正され得る。少なくとも1つの実施形態では、変換/量子化ユニット10123は、量子化された変換係数を含む行列の走査を実行することができる。また、エントロピー符号化ユニット10128がこの走査を行ってもよい。
少なくとも1つの実施形態では、エントロピー符号化ユニット10128は、予測プロセスユニット10121および変換/量子化ユニット10123から、量子化パラメータ、変換データ、動きベクトル、イントラモード、パーティション情報、および他の構文情報を含む複数の構文要素を受信し、構文要素をビットストリームに符号化することができる。少なくとも1つの実施形態では、エントロピー符号化ユニット10128は、量子化された変換係数をエントロピー符号化する。少なくとも1つの実施形態では、エントロピー符号化ユニット10128は、符号化ビットストリームを生成するために、CAVLC、CABAC、SBAC、PIPE符号化、または別のエントロピー符号化技法を実行することができる。少なくとも1つの実施形態において、符号化されたビットストリームは、別の装置(例えば、宛先デバイス12)に送信されてもよいし、後の送信または検索のためにアーカイブされてもよい。
少なくとも1つの実施形態では、逆量子化/逆変換ユニット10124は、逆量子化および逆変換を適用して、参照ブロックとして後で使用するために、画素領域内の残差ブロックを再構築することができる。少なくとも1つの実施形態では、第2の加算器10125は、再構成された残差ブロックを、予測プロセスユニット10121から供給された予測ブロックに加算して、復号画像バッファ10127に格納するための再構成されたブロックを生成する。
少なくとも1つの実施形態では、フィルタリングユニット10126は、再構成されたブロックからブロック歪みアーチファクトを削除するために、デブロッキングフィルタ、SAOフィルタ、バイラテラルフィルタ、および/またはALFを含むことができる。デブロッキングフィルタ、SAOフィルタ、バイラテラルフィルタ、およびALFに加えて、追加のフィルタ(ループまたはポストループ)を使用することもできる。このようなフィルタは簡潔にするために示されていないが、所望であれば、第2の加算器10125の出力をフィルタリングしてもよい。
少なくとも1つの実施形態では、復号画像バッファ10127は、例えばイントラ符号化モードまたはインター符号化モードでエンコーダモジュール1012によってビデオを符号化する際に使用するための参照ブロックを保存する参照画像メモリであってもよい。復号された画像バッファ10127は、SDRAM、MRAM、RRAM(登録商標)を含むDRAMなどの様々なメモリデバイス、または他のタイプのメモリデバイスのいずれかによって形成することができる。少なくとも1つの実施形態では、復号画像バッファ10127は、エンコーダモジュール1012の他の成分とオンチップであってもよく、またはこれらの成分に対してオフチップであってもよい。
少なくとも1つの実施形態において、エンコーダモジュール1012は、図3に示されるように、イントラ予測のためのモードリスト調整方法を実行してもよい。図3の方法は例えば、図1および図10に示す構成を用いて実施することができ、これらの図の様々な要素は、例示的な方法を説明する際に参照される。さらに、図3のブロックの順序は、例示的なものにすぎず、変更することができる。本開示から逸脱することなく、追加のブロックが追加されてもよく、またはより少ないブロックが利用されてもよい。
ブロック31において、エンコーダモジュール1012は、ビデオデータから画像フレーム内のブロックサイズを有するブロックユニットを決定する。
少なくとも1つの実施形態において、ビデオデータはビデオであってもよい。ソースデバイス11は、ソースモジュール111によってビデオを受信することができる。エンコーダモジュール1012は、ビデオから画像フレームを決定し、画像フレームを分割してブロックユニットを決定する。
少なくとも1つの実施形態において、ソースデバイス11の予測プロセスユニット10121は、分割ユニット101211を介してビデオからブロックユニットを決定し、次いで、エンコーダモジュール1012は、分割ユニット101211のパーティション結果に基づいて、複数のパーティション表示をビットストリームに提供する。少なくとも1つの実施形態では、ブロックサイズは、ブロック高さおよびブロック幅を含むことができる。
ブロック32において、イントラ予測ユニット101212は、複数のイントラモードを含むモードリストを決定する。
少なくとも1つの実施形態において、モードリスト内のイントラモードは、宛先デバイス12およびソースデバイス11に予め定義されてもよい。例えば、イントラモードは、プレーナモード、DCモード、および複数の指向性モードとして予め定義されてもよい。
ブロック33において、イントラ予測ユニット101212は、ブロックサイズに基づいてイントラモードのうちの少なくとも1つを選択する。
少なくとも1つの実施形態では、イントラ予測ユニット101212は、ブロックサイズと、予め定義されたサイズとの間の比較に基づいて、選択されたイントラモードを決定することができる。ブロックサイズが、予め定義されたサイズよりも大きい場合、選択されたイントラモードは、少なくとも1つの第1の選択されたモードであってもよい。ブロックサイズが、予め定義されたサイズよりも小さい場合、選択されたイントラモードは、少なくとも1つの第1の選択されたモードとは異なる少なくとも1つの第2の選択されたモードであってもよい。
少なくとも1つの実施形態では、イントラ予測ユニット101212は、ブロック幅とブロック高さとの間の比較に基づいて、選択されたイントラモードを決定することができる。ブロック幅がブロック高さよりも長い場合、選択されたイントラモードは、少なくとも1つの第3の選択されたモードであってもよい。ブロック幅がブロック高さよりも短い場合、選択されたイントラモードは、少なくとも1つの第3の選択されたモードとは異なる少なくとも1つの第4の選択されたモードであってもよい。
ブロック34において、イントラ予測ユニット101212は、モードリストからイントラモードのうちの選択された少なくとも1つを削除して、選択されていないイントラモードの各々を含む調整済みリストを生成する。
少なくとも1つの実施形態では、イントラ予測ユニット101212がモードリストから選択されたイントラモードのすべてを削除する場合、選択されていないイントラモードはモードリスト内の複数の残存するイントラモードであってもよい。この実施形態では、イントラ予測ユニット101212は、選択されていないイントラモードを含む調整済みリストを生成することができる。少なくとも1つの実施形態では、イントラ予測ユニット101212は、ブロックサイズに基づいて複数の追加モードを調整済みリストに追加することができる。少なくとも1つの実施形態では、イントラ予測ユニット101212は、選択されていないイントラモードおよび追加モードのそれぞれについて第2のイントラ予測インデックスを設定することができる。
ブロック35において、イントラ予測ユニット101212は、調整済みリストに基づいて、ブロックユニットの複数の予測子を生成する。
少なくとも1つの実施形態では、ブロックユニットは、複数のブロック要素を含むことができる。この実施形態では、ブロック要素の各々は、画素要素であってもよい。少なくとも1つの実施形態では、イントラ予測ユニット101212は、ブロックユニットのための調整済みリストから導出された方位に沿って、ブロック要素の各々のためのブロックユニットに隣接する複数の隣接ブロックに基づいて、予測子のうちの1つを決定することができる。一実施形態では、方位は、調整済みリスト内の選択されていないイントラモードのうちの1つから導出されてもよい。別の実施形態では、方位は、調整済みリスト内の選択されていないイントラモードおよび追加モードのうちの1つから導出されてもよい。この実施形態では、エンコーダモジュール1012は、ブロックユニットを予測して、予測子に基づいて複数の残差サンプルを生成し、残差サンプルに対応する複数の係数を含むビットストリームを提供する。
少なくとも1つの実施形態において、エンコーダモジュール1012は、図4に示されるように、イントラ予測のためのモードリスト調整方法を実行してもよい。図4の方法は例えば、図1および図10に示す構成を用いて実施することができ、これらの図の様々な要素は、例示的な方法を説明する際に参照される。さらに、図4のブロックの順序は、例示的なものにすぎず、変更することができる。本開示から逸脱することなく、追加のブロックが追加されてもよく、またはより少ないブロックが利用されてもよい。
ブロック41において、エンコーダモジュール1012は、ビデオデータから画像フレーム内のブロックユニットを決定し、ブロックユニットに隣接する複数の隣接ブロックを決定する。
少なくとも1つの実施形態において、ビデオデータはビデオであってもよい。ソースデバイス11は、ソースモジュール111によってビデオを受信することができる。エンコーダモジュール1012は、ビデオから画像フレームを決定し、分割ユニット101211を介してブロックユニットを決定するために画像フレームを分割し、次いで、エンコーダモジュール1012は、分割ユニット101211の分割結果に基づいて複数の分割表示をビットストリームに提供する。
少なくとも1つの実施形態では、ソースデバイス11の予測プロセスユニット10121は、ブロックユニットに隣接し、少なくとも1つの基準線に含まれる隣接ブロックを決定する。少なくとも1つの実施形態において、隣接するブロックは、ブロックユニット再構成する前に再構成されてもよく、したがって、隣接するブロックは、ブロックユニット再構成するための複数の参照サンプルであってもよい。少なくとも1つの実施形態では、ブロックユニットは、隣接ブロックのうちの一部を再構成する前に再構成され得、したがって、イントラ予測ユニット101212は、再構成された隣接ブロックでパディングすることによって、再構成されていない隣接ブロックのためのブロックユニットの参照サンプルを生成し得る。
ブロック42において、イントラ予測ユニット101212は、複数のイントラモードを含むモードリストを決定し、隣接ブロックの予測情報を決定する。
少なくとも1つの実施形態において、モードリスト内のイントラモードは、宛先デバイス12およびソースデバイス11に予め定義されてもよい。例えば、イントラモードは、プレーナモード、DCモード、および複数の指向性モードとして予め定義されてもよい。さらに、エンコーダモジュール1012がHEVCまたはVTMでビデオを符号化する場合、指向性モードの数は33または65に等しくてもよい。
少なくとも1つの実施形態では、隣接ブロックの予測情報は、隣接ブロックの複数の復号されたモードを含むことができる。一実施形態では、隣接ブロックの復号されたモードがイントラ予測である場合、予測情報は、隣接ブロックの複数の予測モードをさらに含むことができる。少なくとも1つの実施形態では、イントラ予測ユニット101212は、ブロックユニットの近隣ブロックの予測モードに基づいて、複数の最確モード(MPM)を決定することができる。
少なくとも1つの実施形態では、隣接ブロックの予測情報は、隣接ブロックが再構成されるかどうかを判定するために使用される任意の情報とすることができる。例えば、イントラ予測ユニット101212は、第2の加算器10125によって生成された隣接ブロックの複数の再構成された成分を直接受信して、隣接ブロックのうちのどれが再構成されたかを判定してもよい。一実施形態では、イントラ予測ユニット101212が特定の隣接ブロックの再構成された成分を受信しない場合、隣接ブロックのうちの特定の1つは、複数の参照サンプルを生成するために使用されなくてもよい。この実施形態において、イントラ予測ユニット101212は、他の隣接ブロックでパディングすることによって、特定の隣接ブロックに対応する参照サンプルを生成することができる。
ブロック43において、イントラ予測ユニット101212は、隣接ブロックの予測情報に基づいてイントラモードのうちの少なくとも1つを選択する。
少なくとも1つの実施形態では、指向性モードの各々が、方位を含む。少なくとも1つの実施形態では、イントラ予測ユニット101212は、MPMの方位を指向性モードの方位と比較し、MPMの方位と指向性モードの方位との間の比較に基づいて、選択されたイントラモードを決定することができる。例えば、特定の指向性モードがMPMから遠い場合、指向性モードのうちの特定の1つは、選択されたイントラモードのうちの1つであってもよい。
少なくとも1つの実施形態において、イントラ予測ユニット101212は、ブロックユニットを再構成する間に、隣接するブロックのうちのどれが再構成されていないかを決定してもよい。この実施形態では、イントラ予測ユニット101212は、さらに、イントラモードのうちのどれが、ブロックユニットから、決定された隣接ブロックに向けられるかを決定することができる。少なくとも1つの実施形態では、イントラ予測ユニット101212は、決定されたイントラモードを、選択されたイントラモードとして設定することができる。
ブロック44において、イントラ予測ユニット101212は、モードリストからイントラモードのうちの選択された少なくとも1つを削除して、選択されていないイントラモードの各々を含む調整済みリストを生成する。
少なくとも1つの実施形態では、イントラ予測ユニット101212がモードリストから選択されたイントラモードのすべてを削除する場合、モードリスト内の複数の残存するイントラモードは選択されていないイントラモードであってもよい。この実施形態では、イントラ予測ユニット101212は、選択されていないイントラモードを含むように調整済みリストを生成することができる。少なくとも1つの実施形態では、イントラ予測ユニット101212は、ブロックサイズに基づいて複数の追加モードを調整済みリストに追加することができる。少なくとも1つの実施形態では、イントラ予測ユニット101212は、選択されていないイントラモードのそれぞれについて第2のイントラ予測インデックスを設定することができる。
ブロック45において、イントラ予測ユニット101212は、調整済みリストに基づいて、ブロックユニットの複数の予測子を生成する。
少なくとも1つの実施形態では、ブロックユニットは、複数のブロック要素を含むことができる。この実施形態では、ブロック要素の各々は、画素要素であってもよい。少なくとも1つの実施形態では、イントラ予測ユニット101212は、ブロックユニットのための調整済みリストから導出された方位に沿って、ブロック要素の各々のためのブロックユニットに隣接する複数の隣接ブロックに基づいて、予測子のうちの1つを決定することができる。一実施形態では、方位は、調整済みリスト内の選択されていないイントラモードのうちの1つから導出されてもよい。別の実施形態では、方位は、ブロックサイズに従って導出された、調整済みリスト内の選択されていないイントラモードおよび追加モードのうちの1つから導出されてもよい。この実施形態では、エンコーダモジュール1012は、ブロックユニットを予測して、予測子に基づいて複数の残差サンプルを生成し、残差サンプルに対応する複数の係数を含むビットストリームを提供する。
少なくとも1つの実施形態では、エンコーダモジュール1012は、図5および図7に示すように、イントラ予測のためのマルチ基準線予測方法を実行することができる。図5および図7の方法は例えば、図1および図10に示す構成を用いて実施することができ、これらの図の様々な要素は、例示的な方法を説明する際に参照される。また、図1および図10に示す構成を用いて行われる図5の方法の手順および結果は、図1および図2に示す構成を用いて行われる図5の方法の手順および結果と同一であり、図1および図10に示す構成を用いて行われる図7の方法の手順および結果は、図1および図2に示す構成を用いて行われる図7の方法の手順および結果と同一である。さらに、エンコーダモジュール1012に関する図5および図7のブロックの順序は、例示に過ぎず、変更することができる。本開示から逸脱することなく、追加のブロックが追加されてもよく、またはより少ないブロックが利用されてもよい。
少なくとも1つの実施形態において、エンコーダモジュール1012は、図9Aに示されるように、イントラ予測のためのモードリスト調整方法を実行してもよい。図9Aの方法は例えば、図1および図10に示される構成を使用して実行されてもよく、これらの図の様々な要素は、例示的な方法を説明する際に参照される。さらに、図9Aのブロックの順序は、例示的なものにすぎず、変更することができる。本開示から逸脱することなく、追加のブロックが追加されてもよく、またはより少ないブロックが利用されてもよい。
ブロック911において、エンコーダモジュール1012は、ビデオデータから画像フレーム内のブロックサイズを有するブロックユニットを決定する。
少なくとも1つの実施形態において、ビデオデータはビデオであってもよい。ソースデバイス11は、ソースモジュール111によってビデオを受信することができる。エンコーダモジュール1012は、ビデオから画像フレームを決定し、画像フレームを分割してブロックユニットを決定する。
少なくとも1つの実施形態において、ソースデバイス11の予測プロセスユニット10121は、分割ユニット101211を介してビデオからブロックユニットを決定し、次いで、エンコーダモジュール1012は、分割ユニット101211のパーティション結果に基づいて、複数のパーティション表示をビットストリームに提供する。少なくとも1つの実施形態では、ブロックサイズは、ブロック高さおよびブロック幅を含むことができる。
ブロック912において、イントラ予測ユニット101212は、複数のイントラモードを含むモードリストを決定する。
少なくとも1つの実施形態において、モードリスト内のイントラモードは、宛先デバイス12およびソースデバイス11に予め定義されてもよい。例えば、イントラモードは、プレーナモード、DCモード、および複数の指向性モードとして予め定義されてもよい。
ブロック913において、イントラ予測ユニット101212は、ブロックサイズに基づいて複数の追加モードを決定する。
少なくとも1つの実施形態では、ブロックサイズが予め定義されたサイズよりも大きいとイントラ予測ユニット101212が判定した場合、イントラ予測ユニット101212によって決定された追加モードは、宛先デバイス12によって決定された追加モードと同一の複数の第1の追加されたモードとして設定され得る。少なくとも1つの実施形態では、ブロックサイズが、予め定義されたサイズよりも小さいとイントラ予測ユニット101212が判定した場合、イントラ予測ユニット101212によって決定された追加モードは、宛先デバイス12によって決定された追加モードと同一の複数の第2の追加されたモードとして設定され得る。この実施形態において、第2の追加されたモードの各々は、第1の追加されたモードとは異なっていてもよい。少なくとも1つの実施形態では、イントラ予測ユニット101212が、ブロック幅がブロック高さよりも長いと判定した場合、イントラ予測ユニット101212によって決定された追加モードは、宛先デバイス12によって決定された追加モードと同一の複数の第3の追加されたモードとして設定され得る。少なくとも1つの実施形態では、イントラ予測ユニット101212が、ブロックサイズが、予め定義されたサイズよりも短いと判定した場合、イントラ予測ユニット101212によって決定された追加モードは、宛先デバイス12によって決定された追加モードと同一の複数の第4の追加されたモードとして設定され得る。この実施形態において、第4の追加されたモードの各々は、第4の追加されたモードとは異なっていてもよい。
少なくとも1つの実施形態では、イントラ予測ユニット101212は、指向性モードを複数のイントラ予測領域に分割することができる。少なくとも1つの実施形態では、イントラ予測ユニット101212は、ブロックサイズと、予め定義されたサイズとの間の比較に基づいて、挿入される領域を決定し、挿入される領域に基づいて、追加モードを生成することができる。この実施形態では、イントラ予測部101212によって決定された挿入される領域は、宛先デバイス12によって決定された挿入される領域と同一である。少なくとも1つの実施形態では、図8において、ブロック幅がブロック高さよりも長い場合、第3の追加モードを第1の追加された領域856に生成することができる。また、ブロック幅がブロック高さよりも短い場合には、第2の追加された領域851に第4の追加モードを生成してもよい。
ブロック914で、イントラ予測ユニット101212は、追加モードをモードリストに追加して、イントラモードの各々を含む調整済みリストを生成する。
少なくとも1つの実施形態では、追加モードがモードリストに追加された場合に、イントラ予測ユニット101212は、追加モードのそれぞれについて第2のイントラ予測インデックスを設定することができる。少なくとも1つの実施形態では、イントラモードの各々が第1のイントラ予測インデックスを有する。少なくとも1つの実施形態では、イントラモードは、0からN-1に設定された第1のイントラ予測インデックスを有するN個の無指向性モードと、NからN+M-1に設定された第1のイントラ予測インデックスを有するM個の指向性モードとを含むことができる。少なくとも1つの実施形態では、Nが2に等しく、MがVTMにおいて65に等しい場合、イントラモードは、0および1として設定された第1のイントラ予測インデックスを有する2つの無指向性モードと、2から66までの第1のイントラ予測インデックスを有する65個の指向性モードとを含み得る。
少なくとも1つの実施形態では、Kに等しい場合に、第2のイントラ予測インデックスは、N+MからN+M+Kに設定されてもよく、1つの実施形態では、MがVTMにおいて65に等しい場合に、第2のイントラ予測インデックスは、N+65からN+K+64に設定されてもよい。
ブロック915において、イントラ予測ユニット101212は、調整済みリストに基づいて、ブロックユニットの複数の予測子を生成する。
少なくとも1つの実施形態では、ブロックユニットは、複数のブロック要素を含むことができる。この実施形態では、ブロック要素の各々は、画素要素であってもよい。少なくとも1つの実施形態では、イントラ予測ユニット101212は、ブロックユニットのための調整済みリストから導出された方位に沿って、ブロック要素の各々のためのブロックユニットに隣接する複数の隣接ブロックに基づいて、予測子のうちの1つを決定することができる。一実施形態では、方位は、調整済みリスト内のイントラモードおよび追加モードのうちの1つから導出されてもよい。この実施形態では、エンコーダモジュール1012は、ブロックユニットを予測して、予測子に基づいて複数の残差サンプルを生成し、残差サンプルに対応する複数の係数を含むビットストリームを提供する。
少なくとも1つの実施形態では、エンコーダモジュール1012は、図9Bに示すように、イントラ予測のためのモードリスト調整方法を実行することができる。図9Bの方法は例えば、図1および図10に示す構成を用いて実行されてもよく、これらの図の様々な要素は、例示的な方法を説明する際に参照される。さらに、図9Bのブロックの順序は、例示的なものにすぎず、変更することができる。本開示から逸脱することなく、追加のブロックが追加されてもよく、またはより少ないブロックが利用されてもよい。
ブロック921において、エンコーダモジュール1012は、ビデオデータから画像フレーム内のブロックユニットを決定し、ブロックユニットに隣接する複数の隣接ブロックを決定する。
少なくとも1つの実施形態において、ビデオデータはビデオであってもよい。ソースデバイス11は、ソースモジュール111によってビデオを受信することができる。エンコーダモジュール1012は、ビデオから画像フレームを決定し、分割ユニット101211を介してブロックユニットを決定するために画像フレームを分割し、次いで、エンコーダモジュール1012は、分割ユニット101211の分割結果に基づいて複数の分割表示をビットストリームに提供する。
少なくとも1つの実施形態では、ソースデバイス11の予測プロセスユニット10121は、ブロックユニットに隣接し、少なくとも1つの基準線に含まれる隣接ブロックを決定する。少なくとも1つの実施形態では、隣接ブロックは、ブロックユニットを再構成する前に再構成されてもよく、したがって、隣接ブロックは、ブロックユニットを再構成するための複数の参照サンプルであってもよい。少なくとも1つの実施形態では、ブロックユニットは、隣接ブロックのうちの一部を再構成する前に再構成され得、したがって、イントラ予測ユニット101212は、再構成された隣接ブロックでパディングすることによって、再構成されていない隣接ブロックのためのブロックユニットの参照サンプルを生成し得る。
ブロック922において、イントラ予測ユニット101212は、複数のイントラモードを含むモードリストを決定し、隣接ブロックの予測情報を決定する。
少なくとも1つの実施形態において、モードリスト内のイントラモードは、宛先デバイス12およびソースデバイス11に予め定義されてもよい。例えば、イントラモードは、プレーナモード、DCモード、および複数の指向性モードとして予め定義されてもよい。
少なくとも1つの実施形態では、隣接ブロックの予測情報は、隣接ブロックの複数の復号されたモードを含むことができる。一実施形態では、隣接ブロックの復号されたモードがイントラ予測である場合、予測情報は、隣接ブロックの複数の予測モードをさらに含むことができる。少なくとも1つの実施形態において、イントラ予測ユニット101212は、ブロックユニットのための隣接ブロックの予測モードに基づいて、複数の最確モード(MPM)を決定してもよい。
少なくとも1つの実施形態では、隣接ブロックの予測情報は、隣接ブロックが再構成されるかどうかを判定するために使用される任意の情報とすることができる。例えば、イントラ予測ユニット101212は、第2の加算器10125によって生成された隣接ブロックの複数の再構成された成分を直接受信することができる。一実施形態では、イントラ予測ユニット101212が、特定の隣接ブロックの再構成された成分を受信しない場合、隣接ブロックのうちの特定の1つは、複数の参照サンプルを生成するために使用されなくてもよい。この実施形態において、イントラ予測ユニット101212は、他の隣接ブロックでパディングすることによって、特定の隣接ブロックに対応する参照サンプルを生成することができる。
ブロック923において、イントラ予測ユニット101212は、隣接ブロックの予測情報に基づいて複数の追加モードを決定する。
少なくとも1つの実施形態では、MPMおよび指向性モードを含むイントラモードの各々が、方位を含む。少なくとも1つの実施形態において、イントラ予測ユニット101212は、MPMの方位を方位モードの方位と比較してもよい。少なくとも1つの実施形態では、イントラ予測ユニット101212は、MPMの方位と指向性モードの方位との間の比較に基づいて追加モードを決定することができる。一実施形態では、MPMモードに近い新しい指向性モードを作成することができる。
少なくとも1つの実施形態では、イントラ予測ユニット101212は、隣接ブロックのうちのどれが再構成されていないかを決定し、イントラモードのうちのどれが、ブロックユニットから決定された隣接ブロックに向けられるかを決定することができる。この実施形態では、イントラ予測ユニット101212は、決定されたイントラモードの方位と指向性モードの方位との間の比較に基づいて、追加モードを決定することができる。一実施形態では、決定されたイントラモードから遠い新しい指向性モードが生成されてもよい。
少なくとも1つの実施形態において、イントラ予測ユニット101212は、指向性モードを複数のイントラ予測領域に分割してもよい。少なくとも1つの実施形態では、イントラ予測ユニット101212は、MPMの方位と指向性モードの方位との間の比較に基づいて挿入される領域を決定し、挿入される領域に基づいて追加モードを生成することができる。一実施形態では、特定のイントラ予測領域がブロックユニットのMPMの大部分を含む場合、挿入される領域は、イントラ予測領域のうちの特定の1つを含むように設定されてもよい。
少なくとも1つの実施形態では、イントラ予測ユニット101212は、隣接ブロックのうちのどれが再構成されていないかを決定し、イントラモードのうちのどれが、ブロックユニットから決定された隣接ブロックに向けられるかを決定することができる。この実施形態において、イントラ予測ユニット101212は、イントラ予測領域のうちのどれが、決定されたイントラモードを含むかを決定してもよい。一実施形態では、挿入される領域は、決定されたイントラ予測領域とは異なっていてもよい。別の実施形態では、挿入される領域は、決定されたイントラ予測領域から遠く離れていてもよい。
ブロック924で、イントラ予測ユニット101212は、追加モードをモードリストに追加して、イントラモードの各々を含む調整済みリストを生成する。
少なくとも1つの実施形態では、追加モードがモードリストに追加されたときに、イントラ予測ユニット101212は、追加モードのそれぞれについて第2のイントラ予測インデックスを設定することができる。少なくとも1つの実施形態では、イントラモードの各々は、第1のイントラ予測インデックスを有する。少なくとも1つの実施形態では、イントラモードは、0からN-1に設定された第1のイントラ予測インデックスを有するN個の無指向性モードと、NからN+M-1に設定された第1のイントラ予測インデックスを有するM個の指向性モードとを含むことができる。少なくとも1つの実施形態では、Nが2に等しく、MがVTMにおいて65に等しい場合、イントラモードは、0および1として設定された第1のイントラ予測インデックスを有する2つの無指向性モードと、2から66までの第1のイントラ予測インデックスを有する65個の指向性モードとを含み得る。
少なくとも1つの実施形態では、追加モードの数がKに等しい場合に、第2のイントラ予測インデックスは、N+MからN+M+Kに設定されてもよい。1つの実施形態では、MがVTMにおいて65に等しい場合に、第2のイントラ予測インデックスは、N+65からN+K+64に設定されてもよい。
ブロック925において、イントラ予測ユニット101212は、調整済みリストに基づいて、ブロックユニットの複数の予測子を生成する。
少なくとも1つの実施形態では、ブロックユニットは、複数のブロック要素を含むことができる。この実施形態では、ブロック要素の各々は、画素要素であってもよい。少なくとも1つの実施形態では、イントラ予測ユニット101212は、ブロックユニットのための調整済みリストから導出された方位に沿って、ブロック要素の各々のためのブロックユニットに隣接する複数の隣接ブロックに基づいて、予測子のうちの1つを決定することができる。一実施形態では、方位は、調整済みリスト内のイントラモードおよび追加モードのうちの1つから導出されてもよい。この実施形態では、エンコーダモジュール1012は、ブロックユニットを予測して、予測子に基づいて複数の残差サンプルを生成し、残差サンプルに対応する複数の係数を含むビットストリームを提供する。
上記の説明から、様々な技術が、それらの概念の範囲から逸脱することなく、本出願に記載された概念を実施するために使用され得ることが明らかである。さらに、概念は特定の実施形態を特に参照して説明されてきたが、当業者はこれらの概念の範囲から逸脱することなく、形態および詳細において変更を行うことができることを認識するのであろう。したがって、説明された実施形態はすべての点で、例示的なものと見なされるべきであり、限定的なものと見なされるべきではない。また、本出願は、上述の特定の実施形態に限定されるものではなく、本開示の範囲から逸脱することなく、多くの再構成、修正、および置換が可能であることを理解されたい。
本開示の1つまたは複数の技法に従ってビデオデータを符号化および復号するように構成されたシステムの例示的な実施形態のブロック図である。
図1のシステムにおける宛先デバイスのデコーダモジュールの例示的な実施形態のブロック図である。
イントラ予測のためのモードリスト調整の第1の例示的な実施形態によるフローチャートを示す。
イントラ予測のためのモードリスト調整の第2の例示的な実施形態によるフローチャートを示す。
イントラ予測のためのモードリスト調整の第3の例示的な実施形態によるフローチャートを示す。
4つのイントラ予測領域と6つのイントラ予測領域とに分割されたブロックユニットのイントラモードの例示的な実施形態の概略図である。
4つのイントラ予測領域と6つのイントラ予測領域とに分割されたブロックユニットのイントラモードの例示的な実施形態の概略図である。
4つのイントラ予測領域と6つのイントラ予測領域とに分割されたブロックユニットのイントラモードの例示的な実施形態の概略図である。
イントラ予測のためのモードリスト調整の第4の例示的な実施形態によるフローチャートを示す。
ブロックユニットの6つのイントラ予測領域および2つの置換された領域の例示的な実施形態の概略図である。
イントラ予測のためのモードリスト調整の第5の例示的な実施形態によるフローチャートを示す。
イントラ予測のためのモードリスト調整の第6の例示的な実施形態によるフローチャートを示す。
図1のシステムにおけるソースデバイスのエンコーダモジュールの例示的な実施形態のブロック図である。