(57)【要約】【課題】  ４：２：２のカラーフォーマットにおいて色差チャネルのためのイントラ予測処理を可能とする。【解決手段】生成するビットストリームのカラーフォーマットが４：２：２のカラーフォーマットであるか判定し、４：２：２のカラーフォーマットであった場合に、他のカラーフォーマットの場合とは異なる所定の方法を用いて、色差チャネルのためのイントラ予測処理における角度であるＩｎｔｒａＰｒｅｄＡｎｇｌｅを、イントラ予測モードを示す値を用いて導出する。イントラ予測処理における予測ユニットとして、対応するコーディングユニットと同じ大きさの予測ユニット、及び、対応するコーディングユニットを４つに分割した予測ユニットを使用可能である。【選択図】  図１１
2018157587.tif 000002
【特許請求の範囲】
【請求項１】
色差チャネルのためのイントラ予測処理を行って、画像データに基づくビットストリームを生成する符号化方法であって、
生成するビットストリームのカラーフォーマットが４：２：２のカラーフォーマットであるか判定し、４：２：２のカラーフォーマットであった場合に、他のカラーフォーマットの場合とは異なる所定の方法を用いて、前記色差チャネルのためのイントラ予測処理における角度であるＩｎｔｒａＰｒｅｄＡｎｇｌｅを、イントラ予測モードを示す値を用いて導出する導出工程と、
前記導出工程によって導出された角度を用いて、前記色差チャネルのイントラ予測処理を行う予測工程と
を有し、
前記  カラーフォーマットが前記他のカラーフォーマットであった場合、前記イントラ予測モードを示す値と、前記導出工程において導出される前記ＩｎｔｒａＰｒｅｄＡｎｇｌｅとは下記のような関係となり、
2018157587.tif 000019
前記カラーフォーマットが前記４：２：２のカラーフォーマットであった場合、前記イントラ予測モードを示す値と、前記導出工程において導出される前記ＩｎｔｒａＰｒｅｄＡｎｇｌｅとは下記のような関係となり、
2018157587.tif 000020
前記イントラ予測処理における予測ユニットとして、対応するコーディングユニットと同じ大きさの予測ユニット、及び、対応するコーディングユニットを４つに分割した予測ユニットを使用可能である
ことを特徴とする符号化方法。
【請求項２】
前記４つに分割した予測ユニットは正方形である
ことを特徴とする請求項１記載の符号化方法。
【請求項３】
対応するコーディングユニットと同じ大きさの予測ユニットを使用するか、又は、対応するコーディングユニットを４つに分割した予測ユニットを使用するかを示すｐａｒｔ＿ｍｏｄｅを前記ビットストリームにおいて符号化する符号化工程
を有することを特徴とする請求項１又は２に記載の符号化方法。
【請求項４】
色差チャネルのためのイントラ予測処理を行って、ビットストリームから画像を復号する復号方法であって、
前記ビットストリームのカラーフォーマットが４：２：２のカラーフォーマットであるか判定し、４：２：２のカラーフォーマットであった場合に、他のカラーフォーマットの場合とは異なる所定の方法を用いて、前記色差チャネルのためのイントラ予測処理における角度であるＩｎｔｒａＰｒｅｄＡｎｇｌｅを、イントラ予測モードを示す値を用いて導出する導出工程と、
前記導出工程によって導出された角度を用いて、前記色差チャネルのイントラ予測処理を行う予測工程と
を有し、
前記カラーフォーマットが前記他のカラーフォーマットであった場合、前記イントラ予測モードを示す値と、前記導出工程において導出される前記ＩｎｔｒａＰｒｅｄＡｎｇｌｅとは下記のような関係となり、
2018157587.tif 000021
前記カラーフォーマットが前記４：２：２のカラーフォーマットであった場合、前記イントラ予測モードを示す値と、前記導出工程において導出される前記ＩｎｔｒａＰｒｅｄＡｎｇｌｅとは下記のような関係となり、
2018157587.tif 000022
前記イントラ予測処理における予測ユニットとして、対応するコーディングユニットと同じ大きさの予測ユニット、及び、対応するコーディングユニットを４つに分割した予測ユニットを使用可能である
ことを特徴とする復号方法。
【請求項５】
前記４つに分割した予測ユニットは正方形である
ことを特徴とする請求項１記載の復号方法。
【請求項６】
対応するコーディングユニットと同じ大きさの予測ユニットを使用するか、又は、対応するコーディングユニットを４つに分割した予測ユニットを使用するかを示すｐａｒｔ＿ｍｏｄｅを前記ビットストリームから復号する復号工程
を有することを特徴とする請求項１記載の復号方法。
【請求項７】
色差チャネルのためのイントラ予測処理を行って、画像データに基づくビットストリームを生成する符号化装置であって、
生成するビットストリームのカラーフォーマットが４：２：２のカラーフォーマットであるか判定し、４：２：２のカラーフォーマットであった場合に、他のカラーフォーマットの場合とは異なる所定の方法を用いて、前記色差チャネルのためのイントラ予測処理における角度であるＩｎｔｒａＰｒｅｄＡｎｇｌｅを、イントラ予測モードを示す値を用いて導出する導出手段と、
前記導出手段によって導出された角度を用いて、前記色差チャネルのイントラ予測処理を行う予測手段と
を有し、
前記カラーフォーマットが前記他のカラーフォーマットであった場合、前記イントラ予測モードを示す値と、前記導出手段において導出される前記ＩｎｔｒａＰｒｅｄＡｎｇｌｅとは下記のような関係となり、
2018157587.tif 000023
前記カラーフォーマットが前記４：２：２のカラーフォーマットであった場合、前記イントラ予測モードを示す値と、前記導出手段において導出される前記ＩｎｔｒａＰｒｅｄＡｎｇｌｅとは下記のような関係となり、
2018157587.tif 000024
前記イントラ予測処理における予測ユニットとして、対応するコーディングユニットと同じ大きさの予測ユニット、及び、対応するコーディングユニットを４つに分割した予測ユニットを使用可能である
ことを特徴とする符号化装置。
【請求項８】
色差チャネルのためのイントラ予測処理を行って、ビットストリームから画像を復号する復号装置であって、
前記ビットストリームのカラーフォーマットが４：２：２のカラーフォーマットであるか判定し、４：２：２のカラーフォーマットであった場合に、他のカラーフォーマットの場合とは異なる所定の方法を用いて、前記色差チャネルのためのイントラ予測処理における角度であるＩｎｔｒａＰｒｅｄＡｎｇｌｅを、イントラ予測モードを示す値を用いて導出する導出手段と、
前記導出手段によって導出された角度を用いて、前記色差チャネルのイントラ予測処理を行う予測手段と
を有し、
前記カラーフォーマットが前記他のカラーフォーマットであった場合、前記イントラ予測モードを示す値と、前記導出手段において導出される前記ＩｎｔｒａＰｒｅｄＡｎｇｌｅとは下記のような関係となり、
2018157587.tif 000025
前記カラーフォーマットが前記４：２：２のカラーフォーマットであった場合、前記イントラ予測モードを示す値と、前記導出手段において導出される前記ＩｎｔｒａＰｒｅｄＡｎｇｌｅとは下記のような関係となり、
2018157587.tif 000026
前記イントラ予測処理における予測ユニットとして、対応するコーディングユニットと同じ大きさの予測ユニット、及び、対応するコーディングユニットを４つに分割した予測ユニットを使用可能である
ことを特徴とする復号装置。
【請求項９】
請求項１〜３のいずれか１項に記載の符号化方法を、コンピュータに実行させることを特徴とするプログラム。
【請求項１０】
請求項４〜６のいずれか１項に記載の復号方法を、コンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、デジタルビデオ信号処理に関し、より詳細には、ビデオデータのビデオフレーム用のイントラ予測されたサンプルを生成するための方法、装置、およびシステムに関する。本発明はまた、ビデオデータのビデオフレーム用のイントラ予測されたサンプルを生成するためのコンピュータプログラムを記録したコンピュータ可読媒体を含む、コンピュータプログラム製品に関する。
【背景技術】
【０００２】
現在、ビデオデータの送信および記憶のためのアプリケーションを含む、多くのビデオコーディング用のアプリケーションが存在する。多くのビデオコーディング規格もまた既に開発されており、現在、他のビデオコーディング規格が開発中である。ビデオコーティングの標準化における最近の開発は、「ビデオコーディング共同研究部会」（ＪＣＴ−ＶＣ）と呼ばれるグループの編成につながっている。ビデオコーディング共同研究部会（ＪＣＴ−ＶＣ）は、ビデオコーディングエキスパートグループ（ＶＣＥＧ）として知られる、国際電気通信連合（ＩＴＵ）の電気通信標準化セクタ（ＩＴＵ−Ｔ）の研究グループ１６議題６（ＳＧ１６／Ｑ６）のメンバと、同様に動画エキスパートグループ（ＭＰＥＧ）として知られる、国際標準化機構／国際電気標準会議共同技術委員会１／分科委員会２９／作業グループ１１（ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１）のメンバとを含む。
【０００３】
ビデオコーディング共同研究部会（ＪＣＴ−ＶＣ）は、「Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ」として知られる、現存するビデオコーディング規格より著しく優れている、新しいビデオコーディング規格を作成するという目標を有している。ビデオコーディング規格のパフォーマンスは複数の方法で測定される。ビデオコーディング規格に存在する、またはビデオコーディング規格用に提案されるアルゴリズムの複雑さの測定値は、ビデオコーディング規格に特定のアルゴリズムを導入する増分コストまたは節約を推定するために使用される。複雑さの１つの簡単な測定値は、ビデオコーディング規格のソフトウェア実装形態のランタイムである。非圧縮ビデオデータを簡潔に表現するビデオコーディング規格の実装形態の能力の測定値は、「コーディング効率」として知られる。ビデオコーディング規格の実装形態は、通常、解凍されたビデオデータにひずみを発生させる。これは「不可逆」圧縮として知られ、より高いコーディング効率が達成されることを可能にする。結果として、コーディング効率の測定値は、圧縮されたビデオデータ（「ビットストリーム」）についてのひずみ（たとえばＰＳＮＲ）の測定値とビットレートの測定値の両方を考慮しなければならない。Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ規格は、それ自体、ＭＰＥＧ−４およびＩＴＵ−Ｔ  Ｈ．２６３などの以前のビデオコーディング規格に対する大きい改善である。開発中の新しいビデオコーディング規格は、「高効率ビデオコーディング（ＨＥＶＣ）」と命名されている。高効率ビデオコーディング（ＨＥＶＣ）の今後の開発は、「クロマフォーマット」として知られる、ビデオデータ内に存在するクロマ情報の様々な表現のサポートを導入することに向けられている。ビデオコーディング共同研究部会（ＪＣＴ−ＶＣ）はまた、リアルタイムまたは高フレームレートで高い解像度で動作するように規格の実装形態をスケーリングするときの困難さをもたらす、高効率ビデオコーディング（ＨＥＶＣ）用に提案された技術から生じる実装形態の課題を考慮する。高効率ビデオコーディング（ＨＥＶＣ）に存在するアルゴリズムの複雑さは、実装形態、たとえばハードウェア実装形態の回路サイズに影響を及ぼす。
【０００４】
特定のビデオコーディング規格によって達成可能なコーディング効率の一態様は、利用可能な予測方法の特性である。２次元ビデオフレームの圧縮シーケンスを対象とするビデオコーディング規格の場合、２つのタイプの予測：イントラ予測およびインター予測が存在する。イントラ予測方法は、ビデオフレームの一部分のコンテンツが同じビデオフレームの他の部分から予測されることを可能にする。イントラ予測方法は、通常、指向性テクスチャを有するブロックを生成し、イントラ予測モードは、テクスチャ、およびテクスチャを生成する基礎として使用されるフレーム内の隣接サンプルの方向を指定する。インター予測方法は、ビデオフレーム内のブロックのコンテンツが前のビデオフレーム内のブロックから予測されることを可能にする。前のビデオフレームは、「参照フレーム」と呼ばれる場合がある。ビデオフレームのシーケンス内の最初のビデオフレームは、参照用に利用可能な前のフレームがないので、通常、フレーム内の全ブロックに対してイントラ予測を使用する。後続のビデオフレームは、そこからブロックを予測する１つ以上の前のビデオフレームを使用しても良い。最も高いコーディング効率を達成するために、元のビデオデータに最も近い予測ブロックを生成する予測方法が通常使用される。予測ブロックと元のビデオデータとの間に残っている差異は、「残留物」として知られる。「残差」として知られる残留物の不可逆表現は、ビットストリームに記憶されても良い。残差内の不可逆量は、元のビデオデータおよびビットストリームのサイズと比較して、ビットストリームから復号されたビデオデータのひずみに影響を及ぼす。
【０００５】
ビデオデータを表現するために使用される「クロマフォーマット」は、ビデオデータのルーマチャネルと複数のクロマチャネルとの間のサンプルアスペクト比を指定する。アスペクト比は、クロマフォーマットごとのルーマおよびクロマ用のコロケートされたブロックサイズ間の固定関係と言う意味を含む。固定関係はまた、コロケートされたブロックのルーマチャネルおよびクロマチャネルに使用される利用可能な変換サイズに影響を及ぼす。ビデオデータが「４：２：２」のクロマフォーマットを使用して表現されるとき、ルーマサンプルとクロマサンプルとの間に非正方形の関係が存在する。
【０００６】
「４：２：２」のクロマフォーマット用のクロマチャネルで使用される非正方形ブロックサイズの１つの帰結は、イントラ予測動作の指向性テクスチャが、ルーマチャネルと比較してクロマチャネルでひずむことである。ひずみにより、クロマチャネル用の予測ブロックの確度が低下する。ひずみを補償するために、クロマチャネル用の残差のサイズが増大することが必要である。残差のサイズが増大すると、ビデオコーディング規格の実装形態によって達成されるコーディング効率が望ましくない低下を引き起こす。
【発明の概要】
【０００７】
本開示の一態様によれば、色差チャネルのためのイントラ予測処理を行って、画像データに基づくビットストリームを生成する符号化方法であって、
生成するビットストリームのカラーフォーマットが４：２：２のカラーフォーマットであるか判定し、４：２：２のカラーフォーマットであった場合に、他のカラーフォーマットの場合とは異なる所定の方法を用いて、前記色差チャネルのためのイントラ予測処理における角度であるＩｎｔｒａＰｒｅｄＡｎｇｌｅを、イントラ予測モードを示す値  を用いて導出する導出工程と、
前記導出工程によって導出された角度を用いて、前記色差チャネルのイントラ予測処理を行う予測工程と
を有し、
前記  カラーフォーマットが前記他のカラーフォーマットであった場合、前記イントラ予測モードを示す値と、前記導出工程において導出される前記ＩｎｔｒａＰｒｅｄＡｎｇｌｅとは下記のような関係となり、
【０００８】
2018157587.tif 000003
【０００９】
前記カラーフォーマットが前記４：２：２のカラーフォーマットであった場合、前記イントラ予測モードを示す値と、前記導出工程において導出される前記ＩｎｔｒａＰｒｅｄＡｎｇｌｅとは下記のような関係となり、
【００１０】
2018157587.tif 000004
【００１１】
前記イントラ予測処理における予測ユニットとして、対応するコーディングユニットと同じ大きさの予測ユニット、及び、対応するコーディングユニットを４つに分割した予測ユニットを使用可能である。
【００１２】
また、本開示の一態様によれば、  色差チャネルのためのイントラ予測処理を行って、ビットストリームから画像を復号する復号方法であって、
前記ビットストリームのカラーフォーマットが４：２：２のカラーフォーマットであるか判定し、４：２：２のカラーフォーマットであった場合に、他のカラーフォーマットの場合とは異なる所定の方法を用いて、前記色差チャネルのためのイントラ予測処理における角度であるＩｎｔｒａＰｒｅｄＡｎｇｌｅを、イントラ予測モードを示す値を用いて導出する導出工程と、
前記導出工程によって導出された角度を用いて、前記色差チャネルのイントラ予測処理を行う予測工程と
を有し、
前記カラーフォーマットが前記他のカラーフォーマットであった場合、前記イントラ予測モードを示す値と、前記導出工程において導出される前記ＩｎｔｒａＰｒｅｄＡｎｇｌｅとは下記のような関係となり、
【００１３】
2018157587.tif 000005
【００１４】
前記カラーフォーマットが前記４：２：２のカラーフォーマットであった場合、前記イントラ予測モードを示す値と、前記導出工程において導出される前記ＩｎｔｒａＰｒｅｄＡｎｇｌｅとは下記のような関係となり、
【００１５】
2018157587.tif 000006
【００１６】
前記イントラ予測処理における予測ユニットとして、対応するコーディングユニットと同じ大きさの予測ユニット、及び、対応するコーディングユニットを４つに分割した予測ユニットを使用可能である。
【００１７】
本開示の一態様によれば、４：２：２のクロマフォーマット用に構成されたビデオビットストリームのクロマチャネルのためのイントラ予測されたサンプルを生成する方法が提供され、前記方法は、
クロマチャネル用のイントラ予測モードからイントラ予測角度を決定することであって、前記イントラ予測モードは複数の水平イントラ予測モードのうちの１つである、決定することと、
４：２：２のクロマフォーマットに起因してイントラ予測角度を調整することと、
調整された角度が所定の値を超える場合、水平イントラ予測モードと垂直イントラ予測モードとの間の変化しきい値を修正することであって、前記修正された変化しきい値は、複数の水平イントラ予測モードのうちの１つから垂直イントラ予測モードに、調整されたイントラ予測角度を変換するために構成されている、修正することと、
調整されたイントラ予測角度および変化しきい値に従う垂直イントラ予測モードを使用して、イントラ予測されたサンプルを生成すること、
と、を含む。
【００１８】
本開示の別の態様によれば、４：２：２のクロマフォーマット用に構成されたビデオビットストリームのクロマチャネルのためのイントラ予測されたサンプルを生成するためのシステムが提供され、前記システムは、
データおよびコンピュータプログラムを記憶するためのメモリと、
前記コンピュータプログラムを実行するための、メモリに結合されたプロセッサと、を備え、前記コンピュータプログラムは、
クロマチャネル用のイントラ予測モードからイントラ予測角度を決定することであって、前記イントラ予測モードは複数の水平イントラ予測モードのうちの１つである、決定することと、
４：２：２のクロマフォーマットに起因してイントラ予測角度を調整することと、
調整された角度が所定の値を超える場合、水平イントラ予測モードと垂直イントラ予測モードとの間の変化しきい値を修正することであって、前記修正された変化しきい値は、複数の水平イントラ予測モードのうちの１つから垂直イントラ予測モードに、調整されたイントラ予測角度を変換するために構成されている、修正することと、
調整されたイントラ予測角度および変化しきい値による垂直イントラ予測モードを使用して、イントラ予測されたサンプルを生成すること、と
を行うための命令を備える。
【００１９】
本開示の別の態様によれば、４：２：２のクロマフォーマット用に構成されたビデオビットストリームのクロマチャネルのためのイントラ予測されたサンプルを生成するための装置が提供され、前記装置は、
クロマチャネル用のイントラ予測モードからイントラ予測角度を決定するための手段であって、前記イントラ予測モードは複数の水平イントラ予測モードのうちの１つである、手段と、
４：２：２のクロマフォーマットに起因してイントラ予測角度を調整するための手段と、
調整された角度が所定の値を超える場合、水平イントラ予測モードと垂直イントラ予測モードとの間の変化しきい値を修正するための手段であって、前記修正された変化しきい値は、複数の水平イントラ予測モードのうちの１つから垂直イントラ予測モードに、調整されたイントラ予測角度を変換するために構成されている、手段と、
調整されたイントラ予測角度および変化しきい値による垂直イントラ予測モードを使用して、イントラ予測されたサンプルを生成するための手段と
を備える。
【００２０】
本開示のさらに別の態様によれば、４：２：２のクロマフォーマット用に構成されたビデオビットストリームのクロマチャネルのためのイントラ予測されたサンプルを生成するためのコンピュータプログラムを備えるコンピュータ可読媒体が提供され、プログラムは、
クロマチャネル用のイントラ予測モードからイントラ予測角度を決定するためのコードであって、前記イントラ予測モードは複数の水平イントラ予測モードのうちの１つである、コードと、
４：２：２のクロマフォーマットに起因してイントラ予測角度を調整するためのコードと、
調整された角度が所定の値を超える場合、水平イントラ予測モードと垂直イントラ予測モードとの間の変化しきい値を修正するためのコードであって、前記修正された変化しきい値は、複数の水平イントラ予測モードのうちの１つから垂直イントラ予測モードに、調整されたイントラ予測角度を変換するために構成されている、コードと、
調整されたイントラ予測角度および変化しきい値による垂直イントラ予測モードを使用して、イントラ予測されたサンプルを生成するためのコード、と
を備える。
【００２１】
本開示のさらに別の態様によれば、４：２：２のクロマフォーマット用に構成されたビデオビットストリームのクロマチャネルのためのイントラ予測されたサンプルを生成する方法が提供され、前記方法は、
クロマチャネル用のイントラ予測モードからイントラ予測角度を決定することであって、前記イントラ予測モードは複数の水平イントラ予測モードのうちの１つである、決定することと、
４：２：２のクロマフォーマットに起因してイントラ予測角度を調整することと、
ビットストリームが４：２：２のクロマフォーマット用に構成されている場合、水平イントラ予測モードと垂直イントラ予測モードとの間の変化しきい値を修正することであって、前記修正された変化しきい値は、複数の水平イントラ予測モードのうちの１つから垂直イントラ予測モードに、調整されたイントラ予測角度を変換するために構成されている、修正することと、
調整されたイントラ予測角度および変化しきい値による垂直イントラ予測モードを使用して、イントラ予測されたサンプルを生成すること、と
を含む。
【００２２】
本開示のさらに別の態様によれば、４：２：２のクロマフォーマット用に構成されているビデオビットストリームのクロマチャネルのためのイントラ予測されたサンプルを生成するためのシステムが提供され、前記システムは、
データおよびコンピュータプログラムを記憶するためのメモリと、
前記コンピュータプログラムを実行するための、メモリに結合されたプロセッサと、を備え、前記コンピュータプログラムは、
クロマチャネル用のイントラ予測モードからイントラ予測角度を決定することであって、前記イントラ予測モードは複数の水平イントラ予測モードのうちの１つである、決定することと、
４：２：２のクロマフォーマットに起因してイントラ予測角度を調整することと、
ビットストリームが４：２：２のクロマフォーマット用に構成されている場合、水平イントラ予測モードと垂直イントラ予測モードとの間の変化しきい値を修正することであって、前記修正された変化しきい値が、複数の水平イントラ予測モードのうちの１つから垂直イントラ予測モードに、調整されたイントラ予測角度を変換するために構成されている、修正することと、
調整されたイントラ予測角度および変化しきい値による垂直イントラ予測モードを使用して、イントラ予測されたサンプルを生成すること、と
を行うための命令を備える。
【００２３】
本開示のさらに別の態様によれば、４：２：２のクロマフォーマット用に構成されているビデオビットストリームのクロマチャネルのためのイントラ予測されたサンプルを生成するための装置が提供され、前記装置は、
クロマチャネル用のイントラ予測モードからイントラ予測角度を決定するための手段であって、前記イントラ予測モードは複数の水平イントラ予測モードのうちの１つである、手段と、
４：２：２のクロマフォーマットに起因してイントラ予測角度を調整するための手段と、
ビットストリームが４：２：２のクロマフォーマット用に構成されている場合、水平イントラ予測モードと垂直イントラ予測モードとの間の変化しきい値を修正するための手段であって、前記修正された変化しきい値が、複数の水平イントラ予測モードのうちの１つから垂直イントラ予測モードに、調整されたイントラ予測角度を変換するために構成されている、手段と、
調整されたイントラ予測角度および変化しきい値による垂直イントラ予測モードを使用して、イントラ予測されたサンプルを生成するための手段と、
を備える。
【００２４】
本開示のさらに別の態様によれば、４：２：２のクロマフォーマット用に構成されているビデオビットストリームのクロマチャネルのためのイントラ予測されたサンプルを生成するためのコンピュータプログラムを備えるコンピュータ可読媒体が提供され、前記プログラムは、
クロマチャネル用のイントラ予測モードからイントラ予測角度を決定するためのコードであって、前記イントラ予測モードは複数の水平イントラ予測モードのうちの１つである、コードと、
４：２：２のクロマフォーマットに起因してイントラ予測角度を調整するためのコードと、
ビットストリームが４：２：２のクロマフォーマット用に構成されている場合、水平イントラ予測モードと垂直イントラ予測モードとの間の変化しきい値を修正するためのコードであって、前記修正された変化しきい値は、複数の水平イントラ予測モードのうちの１つから垂直イントラ予測モードに、調整されたイントラ予測角度を変換するために構成されている、コードと、
調整されたイントラ予測角度および変化しきい値による垂直イントラ予測モードを使用して、イントラ予測されたサンプルを生成するためのコードと、
を備える。
【００２５】
本開示のさらに別の態様によれば、ビデオビットストリームのクロマチャネルのためのイントラ予測されたサンプルを生成する方法が提供され、前記方法は、
ビデオビットストリームのクロマフォーマットを復号することと、
角度パラメータを決定する前にイントラ予測モードを調整することであって、前記調整は復号されたクロマフォーマットに依存する、調整することと、
調整されたイントラ予測モードから角度パラメータを決定することと、
決定された角度パラメータを使用して参照サンプルを生成することと、
決定された角度パラメータおよび生成された参照サンプルを使用して、イントラ予測されたサンプルを生成すること、と
を含む。
【００２６】
本開示のさらに別の態様によれば、ビデオビットストリームのクロマチャネルのためのイントラ予測されたサンプルを生成するためのシステムが提供され、前記システムは、
データおよびコンピュータプログラムを記憶するためのメモリと、
前記コンピュータプログラムを実行するための、メモリに結合されたプロセッサと、を備え、前記コンピュータプログラムは、
ビデオビットストリームのクロマフォーマットを復号することと、
角度パラメータを決定する前にイントラ予測モードを調整することであって、前記調整が復号されたクロマフォーマットに依存する、調整することと、
調整されたイントラ予測モードから角度パラメータを決定することと、
決定された角度パラメータを使用して参照サンプルを生成することと、
決定された角度パラメータおよび生成された参照サンプルを使用して、イントラ予測されたサンプルを生成すること、と
を行うための命令を備える。
【００２７】
本開示のさらに別の態様によれば、ビデオビットストリームのクロマチャネルのためのイントラ予測されたサンプルを生成するための装置が提供され、前記方法は、
ビデオビットストリームのクロマフォーマットを復号するための手段と、
角度パラメータを決定する前にイントラ予測モードを調整するための手段であって、前記調整が復号されたクロマフォーマットに依存する、手段と、
前記調整されたイントラ予測モードから角度パラメータを決定するための手段と、
前記決定された角度パラメータを使用して参照サンプルを生成するための手段と、
決定された角度パラメータおよび生成された参照サンプルを使用して、イントラ予測されたサンプルを生成すること、と
を備える。
【００２８】
本開示のさらに別の態様によれば、ビデオビットストリームのクロマチャネルのためのイントラ予測されたサンプルを生成するためのコンピュータプログラムを備えるコンピュータ可読媒体が提供され、前記コンピュータプログラムは、
ビデオビットストリームのクロマフォーマットを復号するためのコードと、
角度パラメータを決定する前にイントラ予測モードを調整するためのコードであって、前記調整が復号されたクロマフォーマットに依存する、コードと、
調整されたイントラ予測モードから角度パラメータを決定するためのコードと、
決定された角度パラメータを使用して参照サンプルを生成するためのコードと、
決定された角度パラメータおよび生成された参照サンプルを使用して、イントラ予測されたサンプルを生成すること、と
を備える。
【００２９】
他の態様も開示される。
【００３０】
次に、以下の図面および付録を参照して、本開示の少なくとも１つの実施形態が記載される。
【図面の簡単な説明】
【００３１】
【図１】ビデオ符号化および復号システムを示す概略ブロック図である。
【図２Ａ】図１のビデオ符号化および復号システムの一方または両方が実践され得る汎用コンピュータシステムの概略ブロック図である。
【図２Ｂ】図１のビデオ符号化および復号システムの一方または両方が実践され得る汎用コンピュータシステムの概略ブロック図である。
【図３】ビデオエンコーダの機能モジュールを示す概略ブロック図である。
【図４】ビデオデコーダの機能モジュールを示す概略ブロック図である。
【図５Ａ】フレームデータを表現するためのクロマフォーマットを概略的に示す図である。
【図５Ｂ】フレームデータを表現するためのクロマフォーマットを概略的に示す図である。
【図６】複数のコーディングユニット（ＣＵ）、予測ユニット（ＰＵ）、および変換ユニット（ＴＵ）へのコーディングツリーユニット（ＣＴＢ）の再分割を概略的に示す図である。
【図７】指向性のイントラ予測モードを概略的に示す図である。
【図８Ａ】例示的なイントラ予測方向のためのイントラ予測プロセスを概略的に示す図である。
【図８Ｂ】さらなる例示的なイントラ予測方向のためのイントラ予測プロセスを概略的に示す図である。
【図９Ａ】４：２：２のクロマフォーマットを使用するように構成されているフレームのルーマサンプルグリッド上のイントラ予測された予測ユニット（ＰＵ）を概略的に示す図である。
【図９Ｂ】図９Ａの４：２：２のクロマフォーマットを使用するように構成されているフレームのクロマサンプルグリッド上のイントラ予測された予測ユニット（ＰＵ）を概略的に示す図である。
【図１０】図４のフレーム内予測モジュールの機能モジュールを示す概略ブロック図である。
【図１１】図３のビデオエンコーダおよび図４のビデオデコーダにおいてイントラ予測されたサンプルを生成する方法を示す概略ブロック図である。
【図１２】イントラ予測モードをイントラ予測角度および逆角度に変換し、イントラ予測角度および逆角度を量子化するための表である。
【図１３】イントラ予測モードをイントラ予測角度および逆角度に変換し、イントラ予測角度および逆角度ならびにブロックタイプによって決定された水平イントラ予測モードと垂直イントラ予測モードとの間の境界を量子化するための表である。
【図１４】イントラ予測モードをイントラ予測角度および逆角度に変換し、イントラ予測角度および逆角度を代替量子化するための表である。
【図１５】イントラ予測モードをイントラ予測角度および逆角度に変換し、イントラ予測角度および逆角度ならびにブロックタイプによって決定された水平イントラ予測モードと垂直イントラ予測モードとの間の境界を代替量子化するための表である。
【００３２】
付録Ａは、図１２と合致する、イントラ予測されたサンプルを生成する方法の一例を示す。
付録Ｂは、図１３と合致する、イントラ予測されたサンプルを生成する方法の一例を示す。
付録Ｃは、図１４と合致する、イントラ予測されたサンプルを生成する方法の一例を示す。
付録Ｄは、図１５と合致する、イントラ予測されたサンプルを生成する方法の一例を示す。
【発明を実施するための形態】
【００３３】
添付図面の任意の１つ以上の同じ参照番号を有するステップおよび／または特徴に対して参照が行われた場合、逆の意図が明白でない限り、それらのステップおよび／または特徴は、この説明の目的で同じ機能または動作を有する。
【００３４】
図１は、ビデオ符号化および復号システム１００の機能モジュールを示す概略ブロック図である。システム１００は、カラーチャネル用の利用可能な変換ロジックの改善された選択をもたらす残差４分木変換選択のための技法を利用することができる。カラーチャネルは、システム１００によってサポートされるすべてのクロマフォーマット用のいずれかのクロマチャネルを含む場合がある。システム１００は、ソースデバイス１１０および宛先デバイス１３０を含む。通信チャネル１２０は、ソースデバイス１１０から宛先デバイス１３０に符号化されたビデオ情報を通信するために使用される。ソースデバイス１１０および宛先デバイス１３０は、それぞれの携帯電話ハンドセットを備える場合があり、その場合、通信チャネル１２０はワイヤレスチャネルである。または、ソースデバイス１１０および宛先デバイス１３０は、ビデオ会議機器を備える場合があり、その場合、通信チャネル１２０は、通常、インターネット接続などの有線チャネルである。さらに、ソースデバイス１１０および宛先デバイス１３０は、テレビジョン放送、ケーブルテレビジョンアプリケーション、インターネットビデオアプリケーション、および符号化されたビデオが何らかの記憶媒体またはファイルサーバ上で取り込まれるアプリケーションをサポートするデバイスを含む、広範囲のデバイスのうちいかなるデバイスを備えていても良い。
【００３５】
図１に示されたように、ソースデバイス１１０は、ビデオソース１１２、ビデオエンコーダ１１４、および送信機１１６を含む。ビデオソース１１２は、通常、イメージングセンサ、非一時的記録媒体に記憶された以前に取り込まれたビデオシーケンス、またはリモートイメージングセンサからのビデオフィードなどの、取り込まれたビデオフレームデータのソースを備える。ビデオソース１１２としてイメージングセンサを含むであろうソースデバイス１１０の例には、スマートフォン、ビデオカムコーダ、およびネットワークビデオカメラが含まれる。ビデオエンコーダ１１４は、ビデオソース１１２から取り込まれたフレームデータを符号化ビデオデータに変換するが、さらに図３を参照して後述する。符号化ビデオデータは、通常、符号化ビデオデータ（または「符号化ビデオ情報」）として、通信チャネル１２０を介して送信機１１６によって送信される。符号化ビデオデータが、後で通信チャネル１２０を介して送信されるまで、「フラッシュ」メモリまたはハードディスクドライブなどの何らかのストレージデバイスに記憶されることも可能である。
【００３６】
宛先デバイス１３０は、受信機１３２、ビデオデコーダ１３４、およびディスプレイデバイス１３６を含む。受信機１３２は、通信チャネル１２０から符号化ビデオデータを受信し、受信されたビデオデータをビデオデコーダ１３４に渡す。次いで、ビデオデコーダ１３４は、復号されたフレームデータをディスプレイデバイス１３６に出力する。ディスプレイデバイス１３６の例には、スマートフォン、タブレットコンピュータ、コンピュータモニタ、またはスタンドアロンテレビ受信機などの中の、陰極線管、液晶ディスプレイが含まれる。ソースデバイス１１０および宛先デバイス１３０の各々の機能が単一のデバイス内で具現化されることも可能である。
【００３７】
上述された例示的なデバイスにもかかわらず、ソースデバイス１１０および宛先デバイス１３０の各々は、通常、ハードウェア構成要素とソフトウェア構成要素の組合せを介して、汎用コンピューティングシステム内で構成されても良い。図２Ａはそのようなコンピュータシステム２００を示し、コンピュータシステム２００は、コンピュータモジュール２０１と、入力デバイスである、キーボード２０２、マウスポインタデバイス２０３、スキャナ２２６、ビデオソース１１２として構成されていても良いカメラ２２７、およびマイクロフォン２８０などや、出力デバイスである、プリンタ２１５、ディスプレイデバイス１３６として構成しても良いディスプレイデバイス２１４、およびラウドスピーカ２１７と、を含む。外部変調器−復調器（モデム）トランシーバデバイス２１６は、接続２２１を介して通信ネットワーク２２０との間で通信するために、コンピュータモジュール２０１によって使用されても良い。通信チャネル１２０を代表するであろう通信ネットワーク２２０は、インターネットなどのワイドエリアネットワーク（ＷＡＮ）、セルラー電気通信ネットワーク、またはプライベートＷＡＮであり得る。接続２２１が電話回線である場合、モデム２１６は従来の「ダイヤルアップ」モデムで良い。または、接続２２１が高容量（たとえば、ケーブル）接続である場合、モデム２１６はブロードバンドモデムであり得る。通信ネットワーク２２０へのワイヤレス接続のために、ワイヤレスモデムが使用される場合もある。トランシーバデバイス２１６は、送信機１１６と受信機１３２の機能を供給し、通信チャネル１２０は接続２２１内で具現化され得る。
【００３８】
コンピュータモジュール２０１は、通常、少なくとも１つのプロセッサユニット２０５およびメモリユニット２０６を含む。たとえば、メモリユニット２０６は、半導体のランダムアクセスメモリ（ＲＡＭ）および半導体の読取り専用メモリ（ＲＯＭ）を有していても良い。コンピュータモジュール２０１はまた、以下を含むいくつかの入力／出力（Ｉ／Ｏ）インターフェースを含む。つまり、ビデオディスプレイ２１４、ラウドスピーカ２１７、およびマイクロフォン２８０に結合するオーディオ−ビデオインターフェース２０７と、キーボード２０２、マウス２０３、スキャナ２２６、カメラ２２７、および場合によってはジョイスティックまたは他のヒューマンインターフェースデバイス（図示せず）に結合するＩ／Ｏインターフェース２１３と、外部モデム２１６およびプリンタ２１５用のインターフェース２０８である。いくつかの実装形態では、モデム２１６は、コンピュータモジュール２０１内、たとえばインターフェース２０８内に組み込まれても良いであろう。コンピュータモジュール２０１はローカルネットワークインターフェース２１１も有し、ローカルネットワークインターフェース２１１は、ローカルエリアネットワーク（ＬＡＮ）として知られるローカルエリア通信ネットワーク２２２に、接続２２３を介してコンピュータシステム２００を結合することを可能にする。図２Ａに示されたように、ローカル通信ネットワーク２２２は、接続２２４を介してワイドネットワーク２２０に結合する場合もあり、接続２２４は、通常、いわゆる「ファイアウォール」デバイスまたは同様の機能のデバイスを含むはずである。ローカルネットワークインターフェース２１１は、Ｅｔｈｅｒｎｅｔ（商標）回路カード、Ｂｌｕｅｔｏｏｔｈ（商標）ワイヤレス構成、またはＩＥＥＥ８０２．１１ワイヤレス構成を備えていても良いが、多数の他のタイプのインターフェースがインターフェース２１１用に実施されても良い。ローカルネットワークインターフェース２１１は、送信機１１６と受信機１３２の機能を提供することもでき、通信チャネル１２０はローカル通信ネットワーク２２２内でも具現化され得る。
【００３９】
Ｉ／Ｏインターフェース２０８および２１３は、シリアル接続とパラレル接続のいずれかまたは両方を提供することができ、前者は、通常、ユニバーサルシリアルバス（ＵＳＢ）規格に従って実装され、対応するＵＳＢコネクタ（図示せず）を有する。ストレージデバイス２０９が備えられ、通常ハードディスクドライブ（ＨＤＤ）２１０を含む。フロッピーディスクドライブおよび磁気テープドライブ（図示せず）などの他のストレージデバイスが使用されても良い。光ディスクドライブ２１２は、通常、データの不揮発性ソースとして働くために備えられている。ポータブルメモリデバイス、たとえば、光ディスク（たとえば、ＣＤ−ＲＯＭ、ＤＶＤ、ブルーレイディスク（商標））、ＵＳＢ−ＲＡＭ、ポータブル外部ハードドライブ、およびフロッピーディスクなどは、コンピュータシステム２００へのデータの適切なソースとして使用されても良い。通常、ＨＤＤ２１０、光ドライブ２１２、ネットワーク２２０、およびネットワーク２２２どれでも、ビデオソース１１２として、またはディスプレイ２１４を介して表示するために記憶されるべき復号ビデオデータ用の宛先として動作するように構成される。
【００４０】
コンピュータモジュール２０１の構成要素２０５〜２１３は、通常、相互接続されたバス２０４を介して、かつ当業者に知られたコンピュータシステム２００の従来の動作モードとなる方式で通信する。たとえば、プロセッサ２０５は、接続２１８を使用してシステムバス２０４に結合される。同様に、メモリ２０６および光ディスクドライブ２１２は、接続２１９によってシステムバス２０４に結合される。記載された構成が実践され得るコンピュータの例には、ＩＢＭ−ＰＣおよびその互換製品、Ｓｕｎ  ＳＰＡＲＣｓｔａｔｉｏｎｓ、Ａｐｐｌｅ  Ｍａｃ（商標）、または同様のコンピュータシステムが含まれる。
【００４１】
適切な場合、または望まれる場合は、ビデオエンコーダ１１４およびビデオデコーダ１３４、ならびに下記に記載される方法は、コンピュータシステム２００を使用して実装されても良く、ビデオエンコーダ１１４、ビデオデコーダ１３４、および以下に述べる図１１のプロセスは、コンピュータシステム２００内で実行可能な、１つ以上のソフトウェアアプリケーションプログラム２３３として実装されても良い。特に、ビデオエンコーダ１１４、ビデオデコーダ１３４、および記載される方法のステップは、コンピュータシステム２００内で遂行されるソフトウェア２３３の中の命令２３１（図２Ｂ参照）によって達成される。ソフトウェア命令２３１は、各々が１つ以上の特定のタスクを実行するための、１つ以上のコードモジュールとして形成されても良い。ソフトウェアは２つの個別の部分に分割されても良く、その中で、第１の部分および対応するコードモジュールは、記載される方法を実行し、第２の部分および対応するコードモジュールは、第１の部分とユーザとの間のユーザインターフェースを管理する。
【００４２】
ソフトウェアは、たとえば、下記に記載されるストレージデバイスを含む、コンピュータ可読媒体に記憶されても良い。ソフトウェアは、コンピュータ可読媒体からコンピュータシステム２００にロードされ、次いで、コンピュータシステム２００によって実行される。そのようなソフトウェアを有するコンピュータ可読媒体、またはコンピュータ可読媒体に記録されたコンピュータプログラムは、コンピュータプログラム製品である。コンピュータシステム２００においてコンピュータプログラム製品を使用すると、好ましくは、ビデオエンコーダ１１４、ビデオデコーダ１３４、および記載される方法を実装するための有利な装置がもたらされる。
【００４３】
ソフトウェア２３３は、通常、ＨＤＤ２１０またはメモリ２０６に記憶される。ソフトウェアは、コンピュータ可読媒体からコンピュータシステム２００にロードされ、コンピュータシステム２００によって実行される。このように、たとえば、ソフトウェア２３３は、光ディスクドライブ２１２によって読み取られる光学的に読取り可能なディスク記憶媒体（たとえば、ＣＤ−ＲＯＭ）２２５に記憶されても良い。
【００４４】
場合によっては、アプリケーションプログラム２３３は、１つ以上のＣＤ−ＲＯＭ２２５上で符号化され、対応するドライブ２１２を介して読み取られて、ユーザに提供されても良いが、または代わりに、ネットワーク２２０もしくは２２２からユーザによって読み取られても良い。またさらに、ソフトウェアは、他のコンピュータ可読媒体からコンピュータシステム２００にロードすることもできる。コンピュータ可読記憶媒体は、実行および／または処理のためにコンピュータシステム２００に記録された命令および／またはデータを提供する、任意の非一時的有形記憶媒体を指す。そのような記憶媒体の例には、フロッピーディスク（登録商標）、磁気テープ、ＣＤ−ＲＯＭ、ＤＶＤ、ブルーレイディスク、ハードディスクドライブ、ＲＯＭもしくは集積回路、ＵＳＢメモリ、光磁気ディスク、またはＰＣＭＣＩＡなどのコンピュータ可読カードなどが、そのようなデバイスがコンピュータモジュール２０１の内部または外部にあるか否かにかかわらず、含まれる。ソフトウェア、アプリケーションプログラム、命令および／またはビデオデータもしくは符号化ビデオデータのコンピュータモジュール２０１への提供に関与する場合もある、一時的または非有形のコンピュータ可読伝送媒体の例には、無線または赤外線送信チャネルならびに別のコンピュータまたはネットワークデバイスへのネットワーク接続、ならびに、電子メール送信およびウェブサイトに記録された情報を含むインターネットまたはイントラネットなどが含まれる。
【００４５】
上述されたアプリケーションプログラム２３３の第２の部分および対応するコードモジュールは、ディスプレイ２１４上にレンダリングまたは場合によっては表示されるべき１つ以上のグラフィカルユーザインターフェース（ＧＵＩ）を実装するために実行されても良い。通常、キーボード２０２およびマウス２０３の操作を介して、コンピュータシステム２００およびアプリケーションのユーザは、機能的に適応可能な方式でインターフェースを操作して、ＧＵＩに関連付けられたアプリケーションに制御コマンドおよび／または入力を提供する。ラウドスピーカ２１７を介した音声プロンプト出力、およびマイクロフォン２８０を介したユーザボイスコマンド入力を利用するオーディオインターフェースなどの、機能的に適応可能なユーザインターフェースの他の形態が実装されても良い。
【００４６】
図２Ｂは、プロセッサ２０５および「メモリ」２３４の詳細な概略ブロック図である。メモリ２３４は、図２Ａのコンピュータモジュール２０１によってアクセスできる、（ＨＤＤ２０９および半導体メモリ２０６を含む）すべてのメモリモジュールの論理集合を表す。
【００４７】
コンピュータモジュール２０１が最初に電源投入されると、パワーオンセルフテスト（ＰＯＳＴ）プログラム２５０が実行される。ＰＯＳＴプログラム２５０は、通常、図２Ａの半導体メモリ２０６のＲＯＭ２４９に記憶される。ソフトウェアを記憶するＲＯＭ２４９などのハードウェアデバイスは、ファームウェアと呼ばれる場合がある。ＰＯＳＴプログラム２５０は、コンピュータモジュール２０１内のハードウェアを検査して適正に機能することを確認し、通常、プロセッサ２０５、メモリ２３４（２０９、２０６）、および基本入出力システムソフトウェア（ＢＩＯＳ）モジュール２５１をチェックし、また通常、正常な動作のためにＲＯＭ２４９に記憶される。ＰＯＳＴプログラム２５０が正常に動作すると、ＢＩＯＳ２５１は、図２Ａのハードディスクドライブ２１０をアクティブ化する。ハードディスクドライブ２１０のアクティブ化は、ハードディスクドライブ２１０に常駐するブートストラップローダプログラム２５２を、プロセッサ２０５を介して実行させる。ブートストラップローダプログラム２５２は、オペレーティングシステム２５３をＲＡＭメモリ２０６にロードし、そこでオペレーティングシステム２５３は動作を開始する。オペレーティングシステム２５３は、プロセッサ管理、メモリ管理、デバイス管理、ストレージ管理、ソフトウェアアプリケーションインターフェース、および汎用ユーザインターフェースを含む、様々な高水準の機能を実現する、プロセッサ２０５によって実行可能なシステムレベルのアプロケーションである。
【００４８】
オペレーティングシステム２５３は、メモリ２３４（２０９、２０６）を管理して、コンピュータモジュール２０１で動作する各プロセスまたはアプリケーションが、他のプロセスに割り振られたメモリと衝突することなく実行するのに十分なメモリを有することを確認する。さらに、図２Ａのコンピュータシステム２００において利用可能な様々なタイプのメモリは、各プロセスが効果的に動作することができるように、適切に使用されなければならない。したがって、集合メモリ２３４は、（別段に明記されていない限り）メモリの特定のセグメントがどのように割り振られるかを示すものではなく、むしろ、コンピュータシステム２００によってアクセス可能なメモリの全体図、およびメモリがどのように使用されるかを提供するものである。
【００４９】
図２Ｂに示されたように、プロセッサ２０５は、制御ユニット２３９、算術論理ユニット（ＡＬＵ）２４０、および、キャッシュメモリと呼ばれるローカルメモリまたは内部メモリ２４８を含む、いくつかの機能モジュールを含む。キャッシュメモリ２４８は、通常、レジスタセクション内のいくつかのストレージレジスタ２４４〜２４６を含む。１つ以上の内部バス２４１は、これらの機能モジュールを機能的に相互接続する。プロセッサ２０５は、通常、接続２１８を使用して、システムバス２０４を介して外部デバイスと通信するための１つ以上のインターフェース２４２も有する。メモリ２３４は、接続２１９を使用してバス２０４に結合される。
【００５０】
アプリケーションプログラム２３３は、条件分岐およびループの命令を含む場合がある、命令のシーケンス２３１を含む。プログラム２３３は、プログラム２３３の実行時に使用されるデータ２３２を含む場合もある。命令２３１およびデータ２３２は、それぞれ、メモリロケーション２２８、２２９、２３０および２３５、２３６、２３７に記憶される。命令２３１とメモリロケーション２２８〜２３０の相対サイズに応じて、特定の命令は、メモリロケーション２３０に記憶された命令によって描写されたように、単一のメモリロケーションに記憶されても良い。または、命令はいくつかの部分にセグメント化されても良く、それらの各々は、メモリロケーション２２８および２２９に示された命令セグメントによって描写されたように、別々のメモリロケーションに記憶される。
【００５１】
一般に、プロセッサ２０５は、その中で実行される命令のセットを与えられる。プロセッサ２０５は次の入力を待機し、それに対して、プロセッサ２０５は命令の別のセットを実行することによって反応する。各入力は、すべて図２Ａに描写された、入力デバイス２０２、２０３のうちの１つ以上によって生成されたデータ、ネットワーク２２０、２２２のうちの１つにわたって外部ソースから受信されたデータ、ストレージデバイス２０６、２０９のうちの１つから取り出されたデータ、または対応する読取り機２１２の中に挿入された記憶媒体２２５から取り出されたデータを含む、いくつかのソースのうちの１つまたは複数から供給されても良い。命令のセットの実行により、場合によってはデータが出力される場合が有る。実行により、メモリ２３４にデータまたは変数を記憶することを必要とする場合もある。
【００５２】
ビデオエンコーダ１１４、ビデオデコーダ１３４、および記載される方法は、対応するメモリロケーション２５５、２５６、２５７内のメモリ２３４に記憶された入力変数２５４を使用すても良い。ビデオエンコーダ１１４、ビデオデコーダ１３４、および記載される方法は、対応するメモリロケーション２６２、２６３、２６４内のメモリ２３４に記憶される出力変数２６１を生成する。中間変数２５８は、メモリロケーション２５９、２６０、２６６、および２６７に記憶されても良い。
【００５３】
図２Ｂのプロセッサ２０５を参照すると、レジスタ２４４、２４５、２４６、算術論理ユニット（ＡＬＵ）２４０、および制御ユニット２３９は、連携して、プログラム２３３を構成する命令セット内の命令ごとに、「フェッチ、復号、および実行」サイクルを実行するために必要なマイクロ動作のシーケンスを実行する。各フェッチ、復号、および実行サイクルは、以下を含む。
（ａ）メモリロケーション２２８、２２９、２３０から命令２３１をフェッチする、すなわち読み取るフェッチ動作、
（ｂ）どの命令がフェッチされたかを制御ユニット２３９が判定する復号動作、および
（ｃ）制御ユニット２３９および／またはＡＬＵ２４０が命令を実行する実行動作
その後、次の命令用のさらなるフェッチ、復号、および実行サイクルが実行されるであろう。同様に、それにより制御ユニット２３９がメモリロケーション２３２に値を記憶する、すなわち書き込む記憶サイクルが実行されるであろう。
【００５４】
以下に述べる図１１のプロセス内の各ステップまたはサブステップは、プログラム２３３の１つ以上のセグメントに関連付けられ、通常、プロセッサ２０５内のレジスタセクション２４４、２４５、２４７、ＡＬＵ２４０、および制御ユニット２３９によって連携して実行され、プログラム２３３の上記のセグメント用の命令セット内の命令ごとにフェッチ、復号、および実行サイクルを実行する。
【００５５】
図３は、ビデオエンコーダ１１４の機能モジュールを示す概略ブロック図である。図４は、ビデオデコーダ１３４の機能モジュールを示す概略ブロック図である。ビデオエンコーダ１１４およびビデオデコーダ１３４は、図２Ａおよび図２Ｂに示されたように、汎用コンピュータシステム２００を使用して実装されても良く、ここで、様々な機能モジュールは、コンピュータシステム２００内の専用ハードウェアにより、ハードディスクドライブ２０５に常駐し、プロセッサ２０５によってその実行が制御されるソフトウェアアプリケーションプログラム２３３の１つ以上のソフトウェアコードモジュールなどの、コンピュータシステム２００内で実行可能なソフトウェアにより実行されても良いし、または、専用ハードウェアとコンピュータシステム２００内で実行可能なソフトウェアの組合せによって実装されても良い。ビデオエンコーダ１１４、ビデオデコーダ１３４、および上記の方法は、代替として、上記方法の機能または副機能を実行する１つ以上の集積回路などの、専用ハードウェアで実現されても良い。専用ハードウェアとしては、グラフィックプロセッサ、デジタル信号プロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または１つ以上のマイクロプロセッサおよび関連メモリがあるであろう。特に、ビデオエンコーダ１１４はモジュール３２０〜３４６を備え、ビデオデコーダ１３４はモジュール４２０〜４３４を備え、モジュール３２０〜３４６およびモジュール４２０〜４３４は、各々ソフトウェアアプリケーションプログラム２３３の１つ以上のソフトウェアコードモジュールとして実装されても良い。
【００５６】
図３のビデオエンコーダ１１４は高効率ビデオコーディング（ＨＥＶＣ）のビデオ符号化パイプラインの一例であるが、本明細書に記載される処理段階を実行するために、他のビデオコーデックを使用しても良い。ビデオエンコーダ１１４は、各フレームが１つ以上のカラーチャネルを含む一連のフレームなどの、取り込まれたフレームデータを受信する。各フレームは、カラーチャネル当たり１つのサンプルグリッドを備える。色情報は、勧告ＩＴＵ−Ｒ  ＢＴ．７０９（「ＹＵＶ」）などの「色空間」を使用して表されるが、他の色空間も可能である。ＹＵＶ色空間などの色空間が使用されるとき、カラーチャネルは、ルーマカラーチャネル（「Ｙ」）と２つのクロマカラーチャネル（「Ｕ」および「Ｖ」）とを含む。さらに、画像のサンプリングに応じて、または取り込まれたフレームデータを再サンプリングするためにフィルタリングするアプリケーションを介して、異なる量の情報が、取り込まれたフレームデータの各カラーチャネルのサンプルグリッドに含まれても良い。「クロマフォーマット」として知られるいくつかの使用可能なサンプリング方法が存在し、それらのうちのいくつかを、図５Ａおよび図５Ｂを参照して説明する。
【００５７】
ビデオエンコーダ１１４は、フレームデータ３１０などの取り込まれたフレームデータの各フレームを、一般に「コーディングツリーブロック」（ＣＴＢ）と呼ばれる領域に分割する。各コーディングツリーブロック（ＣＴＢ）は、フレームの部分の階層的な４分木細区分をコーディングユニット（ＣＵ）の集合に含める。コーディングツリーブロック（ＣＴＢ）は、一般に、６４×６４のルーマサンプルの面積を占めるが、１６×１６または３２×３２などの他のサイズが可能である。場合によっては、１２８×１２８のルーマサンプルなどの、コーディングツリーブロック（ＣＴＢ）用のさらに大きいサイズを使用しても良い。コーディングツリーブロック（ＣＴＢ）は、４つの同じサイズの領域に分割されることによって再分割されて、新しい階層レベルを作成しても良い。分割は再帰的に適用されても良く、結果として４分木階層をもたらす。コーディングツリーブロック（ＣＴＢ）の面寸法は常に２のべき乗であり、４分木分割は常に幅と高さを半分にする結果になり、領域の面寸法も常に２のべき乗である。これ以上の領域の分割が実行されないとき、「コーディングユニット」（ＣＵ）は領域内を出ると言われる。コーディングツリーブロックのトップレベル（または通常「最上位レベル」）で分割が実行されないとき、コーディングツリーブロック全体を占める領域は、一般に「最大コーディングユニット」（ＬＣＵ）と呼ばれる１つのコーディングユニット（ＣＵ）を含む。８×８のルーマサンプルによって占められる面積などの最小サイズもコーディングユニット（ＣＵ）ごとに存在するが、他の最小サイズも可能である。最小サイズのコーディングユニットは、一般に、「最小コーディングユニット」（ＳＣＵ）と呼ばれる。４分木階層の結果として、コーディングツリーブロック（ＣＴＢ）の全体は、１つ以上のコーディングユニット（ＣＵ）によって占められる。
【００５８】
ビデオエンコーダ１１４は、コーディングユニット（ＣＵ）ごとに、一般に「予測ユニット」（ＰＵ）と呼ばれる、データサンプルの１つ以上のアレイを生成する。予測ユニット（ＰＵ）が重複しないこと、およびコーディングユニット（ＣＵ）の全体が１つ以上の予測ユニット（ＰＵ）によって占められることの要件を満たせば、各コーディングユニット（ＣＵ）内の予測ユニット（ＰＵ）の様々な構成が可能である。予測ユニット（ＰＵ）が重複しないこと、およびコーディングユニット（ＣＵ）の全体が１つ以上の予測ユニット（ＰＵ）によって占められることの要件により、予測ユニット（ＰＵ）がフレームの面積全体をカバーすることが保証される。
【００５９】
ビデオエンコーダ１１４は、マルチプレクサモジュール３４０から予測ユニット（ＰＵ）３８２を出力することによって動作する。差分モジュール３４４は、予測ユニット（ＰＵ）３８２と、対応するデータサンプルの２Ｄアレイとの間の差分を、空間領域内で、フレームデータ３１０のコーディングツリーブロック（ＣＴＢ）のコーディングユニット（ＣＵ）から出力する。差分は「残差サンプルアレイ」３６０として知られている。残差サンプルアレイ３６０は、変換モジュール３２０において周波数領域に変換されても良い。差分モジュール３４４からの残差サンプルアレイ３６０は変換モジュール３２０によって受信され、変換モジュール３２０は、「順方向変換」を適用することによって、残差サンプルアレイ３６０を空間表現から周波数領域表現に変換（または「符号化」）する。変換モジュール３２０は変換係数を作成する。変換係数は、コーディングユニット（ＣＵ）の階層細区分内の変換ユニット（ＴＵ）内の変換ごとに、残差変換アレイ３６２として構成される。コーディングユニット（ＣＵ）は１つ以上の変換ユニット（ＴＵ）に再分割される。再分割されたコーディングユニット（ＣＵ）は、「残差４分木」または「残差４分木（ＲＱＴ）」と呼ばれる場合がある。コーディングユニット（ＣＵ）の残差データの残差４分木（ＲＱＴ）への再分割は、変換制御モジュール３４６の制御下で実行される。
【００６０】
変換制御モジュール３４６は、「レートひずみ基準」に従って現在のコーディングユニット（ＣＵ）の残差４分木内の変換ユニット（ＴＵ）の様々な考えられる構成について、符号化ビットストリーム３１２内で必要なビットレートをテストすることができる。レートひずみ基準は、符号化ビットストリーム３１２またはそのローカル領域のビットレートと、ひずみ間の、または、フレームバッファ３３２に存在するフレームと取り込まれたフレームデータと間の差分の許容可能なトレードオフの測定値である。いくつかの構成では、レートひずみ基準は、ルーマについてのレートおよびひずみのみを考慮し、したがって、ルーマチャネルの特性のみに基づいて、符号化決定が行われる。一般に、残差４分木（ＲＱＴ）は、ルーマとクロマとの間で共有され、クロマ情報の量は、ルーマと比較して相対的に小さくいので、レートひずみ基準においてルーマのみを考慮することが適切である。クロマのみに固有の決定が行われる必要がある場合、レートひずみ基準は、クロマのビットコストおよびレートコストを考慮するように拡張されても良い。または代替として、ルーマについてのレートひずみ基準に基づいて、クロマからの妥当な決定を行うために、ルールまたは「ヒューリスティック」が導入されても良い。したがって、変換制御モジュール３４６は、残差４分木として変換ユニット（ＴＵ）の構成を選択しても良い。選択された構成は、考えられる変換ユニット（ＴＵ）のセットから、現在のコーディングユニット（ＣＵ）の残差サンプルアレイ３６０を符号化するために構成される。コーディングユニット（ＣＵ）の残差４分木（ＲＱＴ）の構成は、分割変換フラグ３８６のセットによって指定される。残差４分木（ＲＱＴ）は、図５Ａおよび図５Ｂを参照してさらに以下で説明する。
【００６１】
残差４分木用の考えられる変換ユニットは、利用可能な変換サイズおよびコーディングユニット（ＣＵ）のサイズに依存する。残差４分木を用いると、符号化ビットストリーム３１２においてより低いビットレートとなる、したがって、より高いコーディング効率を達成できるであろう。より大きいサイズの変換ユニット（ＴＵ）により、ルーマとクロマの両方について、より大きい変換を使用することになる。一般に、より大きい変換は、残差サンプルアレイにわたって拡散したサンプルデータ（または「残差エネルギー」）を有する残差サンプルアレイのよりコンパクトな表現をもたらす。より小さい変換ユニット（ＴＵ）は、残差サンプルアレイの特定の領域に局所化した残差エネルギーを有する残差サンプルアレイのよりコンパクトな表現をもたらす。したがって、残差４分木の多くの考えられる構成は、開発中の高効率ビデオコーディング（ＨＥＶＣ）規格において、残差サンプルアレイ３６０の高いコーディング効率を達成するための有用な手段を提供する。
【００６２】
開発中の高効率ビデオコーディング（ＨＥＶＣ）規格の場合、残差サンプルアレイ３６０の周波数領域表現への変換は、離散コサイン変換（ＤＣＴ）がシフトおよび加算を使用して実施されるように修正された、修正ＤＣＴを使用して実施される。サポートされる変換サイズにしたがって、残差サンプルアレイ３６０および変換係数３６２の様々なサイズが可能である。開発中の高効率ビデオコーディング（ＨＥＶＣ）規格では、変換は、３２×３２、１６×１６、８×８、および４×４などのサイズを有するデータサンプルの２Ｄアレイ上で実行される。したがって、変換サイズの所定のセットは、ビデオエンコーダ１１４に利用可能である。さらに、変換サイズのセットは、ルーマチャネルとクロマチャネルとの間で異なっていても良い。
【００６３】
２次元変換は、一般に「分離可能」であるように構成され、一方向の（たとえば行上の）データサンプルの２Ｄアレイ上で動作する１Ｄ変換の第１のセットとしての実装を可能にする。１Ｄ変換の第１のセットの後に、他の方向の（たとえば列上の）１Ｄ変換の第１のセットから出力されたデータサンプルの２Ｄアレイ上で動作する１Ｄ変換の第２のセットが続く。同じ幅と高さとを有する変換は、一般に「正方形変換」と呼ばれる。異なる幅と高さとを有するさらなる変換も使用される場合があり、一般に「非正方形変換」と呼ばれる。行と列の１次元変換は、４×４変換モジュールまたは８×８変換モジュールなどの、特定のハードウェアまたはソフトウェアに組み込まれても良い。
【００６４】
より大きい寸法を有する変換は、そのようなより大きい寸法の変換がまれにしか使用されない場合でも、大量の回路を必要とする。したがって、開発中の高効率ビデオコーディング（ＨＥＶＣ）規格は、３２×３２のルーマサンプルの最大変換サイズを定義する。開発中の高効率ビデオコーディング（ＨＥＶＣ）規格用に定義された変換実装の統合的性質により、サポートされる非正方形変換の数を低減することも優先される。非正方形変換のサイズは、通常、非正方形変換のサイズごとに実装されるべき完全に新しいハードウェア、または、様々な１Ｄ変換ロジックを特定の非正方形変換のサイズに再構成することを可能にするさらなる選択ロジックのいずれかを必要とする。加えて、非正方形変換のサイズは、サポートされる非正方形変換のサイズごとに変換および逆変換の動作を実行するためにさらなる方法を導入することによって、ソフトウェア実装形態の複雑さを増大させ、さらなる変換サイズの必要なバッファ管理機能を実装する複雑さを増大させる場合もある。
【００６５】
変換は、ルーマチャネルとクロマチャネルの両方に適用されても良い。変換ユニット（ＴＵ）に関してルーマチャネルを扱うこととクロマチャネルを扱うことの間の差異が存在し、図５Ａおよび図５Ｂを参照して下記に論じる。各残差４分木は、１つのコーディングユニット（ＣＵ）を占め、残差４分木階層の各リーフノードで１つの変換ユニット（ＴＵ）を含む階層へのコーディングユニット（ＣＵ）の４分木分解として定義され、各変換ユニット（ＴＵ）は、サポートされる変換サイズの特定の変換を使用することができる。コーディングツリーブロック（ＣＴＢ）と同様に、コーディングユニット（ＣＵ）の全体が１つ以上の変換ユニット（ＴＵ）によって占められることが必要である。残差４分木階層の各レベルで、「コード化ブロックフラグ値」は各カラーチャネル内の存在の可能性のある変換を現在の階層レベルで（これ以上の分割が存在しないとき）通知し、また、より低い階層レベルが、生じた変換ユニット（ＴＵ）の間で少なくとも１つの変換を含む場合があることを通知する。コード化ブロックフラグ値がゼロであるとき、現在のレベルまたはより低いレベルにあるすべての残差係数は、ゼロであると知られ、したがって、（現在の階層レベルまたはより低い階層レベルのいずれかにある）残差４分木の任意の変換ユニット（ＴＵ）の対応するカラーチャネルのために変換が実行される必要はない。コード化ブロックフラグ値が１であるとき、現在の領域がこれ以上再分割されない場合、領域は、少なくとも１つの非ゼロ残差係数を必要とする変換を含む。現在の領域がさらに再分割される場合、１のコード化ブロックフラグ値は、各々の生じた再分割された領域が非ゼロ残差係数を含む場合があることを示す。このようにして、カラーチャネルごとに、ゼロ以上の変換は、何もないところからコーディングユニット（ＣＵ）の全体まで変化する、コーディングユニット（ＣＵ）の面積の一部分をカバーする場合がある。カラーチャネルごとに別々のコード化ブロックフラグ値が存在する。ただ１つの可能なコード化ブロックフラグ値があるケースが存在するので、各コード化ブロックフラグ値は符号化される必要がない。
【００６６】
変換係数３６２は、スケーリングおよび量子化モジュール３２２に入力され、そこで、そのデータサンプル値は、決定された量子化パラメータ３８４に従ってスケーリングおよび量子化されて、残差データアレイ３６４を生成する。スケーリングおよび量子化によって、決定された量子化パラメータ３８４の値に応じて、予測の損失が発生する。決定された量子化パラメータ３８４がより高い値だと、より大きい情報が残差データから失われることになる。失われた情報は、ビデオデコーダ１３４からの出力の視覚的品質の低下を犠牲にして、ビデオエンコーダ１１４によって達成される圧縮を増大させる。決定された量子化パラメータ３８４は、フレームデータ３１０の各フレームの符号化中に適用されても良い。また、決定された量子化パラメータ３８４は、フレームデータ３１０の各フレームの部分用に固定化されても良い。さらに、決定された量子化パラメータ３８４は、フレームデータ３１０の全フレーム用に固定化されても良い。別々の値で様々な残差係数を量子化することなど、決定された量子化パラメータ３８４の他の適用も可能である。
【００６７】
残差データアレイ３６４および決定された量子化パラメータ３８４は、逆スケーリングモジュール３２６への入力になる。逆スケーリングモジュール３２６は、スケーリングおよび量子化モジュール３２２によって実行されたスケーリングを逆転させて、残差データアレイ３６４の再スケーリングバージョンである再スケーリングデータアレイ３６６を生成する。残差データアレイ３６４、決定された量子化パラメータ３８４、および分割変換フラグ３８６は、エントロピーエンコーダモジュール３２４への入力にもなる。エントロピーエンコーダモジュール３２４は、符号化ビットストリーム３１２（または「ビデオビットストリーム」）内で残差データアレイ３６４の値を符号化する。スケーリングおよび量子化モジュール３２２から生じた予測の損失に起因して、再スケーリングデータアレイ３６６は、アレイ３６３内の元の値と同一ではない。次いで、逆スケーリングモジュール３２６からの再スケーリングデータアレイ３６６は、逆変換モジュール３２８に出力される。逆変換モジュール３２８は、周波数領域から空間領域への逆変換を実行して、再スケーリング変換係数アレイ３６６の空間領域表現３６８を生成する。空間領域表現３６８は、ビデオデコーダ１３４で生成される空間領域表現と実質的に同一である。次いで、空間領域表現３６８は加算モジュール３４２に入力される。
【００６８】
動き推定モジュール３３８は、一般にメモリ２０６内に構成されるフレームバッファモジュール３３２に記憶されたフレームの１つ以上のセットからの以前のフレームデータと、フレームデータ３１０を比較することによって、動きベクトル３７４を生成する。フレームのセットは「参照ピクチャリスト」として知られる。次いで、動きベクトル３７４は動き補償モジュール３３４に入力され、動き補償モジュール３３４は、フレームバッファモジュール３３２に記憶されたデータサンプルをフィルタリングし、動きベクトル３７４から導出された空間オフセットを考慮に入れることによって、インター予測された予測ユニット（ＰＵ）３７６を生成する。図３には示されていないが、動きベクトル３７４はまた、符号化ビットストリーム３１２内で符号化するために、エントロピーエンコーダモジュール３２４にシンタックス要素として渡される。フレーム内予測モジュール３３６は、加算モジュール３４２から取得されたサンプル３７０を使用して、イントラ予測された予測ユニット（ＰＵ）３７８を生成し、加算モジュール３４２は、マルチプレクサモジュール３４０からの予測ユニット（ＰＵ）３８２とマルチプレクサ３６９の空間領域出力とを加算する。フレーム内予測モジュール３３６はまた、符号化ビットストリーム３１２内に符号化するために、エントロピーエンコーダモジュール３２４に送られるイントラ予測モード３８０を生成する。
【００６９】
予測ユニット（ＰＵ）は、イントラ予測方法またはインター予測方法のいずれかを使用して生成されても良い。イントラ予測方法は、予測ユニット（ＰＵ）内の参照データサンプルを生成するために、（通常、予測ユニットの上および左に）以前に復号された予測ユニット（ＰＵ）に隣接するデータサンプルを使用する。イントラ予測の様々な方向が可能であり、「イントラ予測モード」と呼ばれる。イントラ予測方法は、動きベクトルを使用して、選択された参照フレームからのブロックを参照する。動き推定モジュール３３８および動き補償モジュール３３４は、動きベクトル３７４に対して動作し、ルーマサンプルの８分の１（１／８）の精度を有し、フレームデータ３１０内のフレーム間の動きの精密なモデル化を可能にする。イントラ予測方法またはインター予測方法のどちらを使用するかの決定は、生じる符号化ビットストリーム３１２の所望のビットレートと、イントラ予測方法またはインター予測方法のいずれかによって導入される画像品質のひずみ量との間のレートひずみのトレードオフに従って行われる。イントラ予測が使用される場合、同様にレートひずみのトレードオフに従って、可能なイントラ予測モードのセットから１つのイントラ予測モードが選択される。マルチプレクサモジュール３４０は、レートひずみアルゴリズムによって行われた決定に応じて、フレーム内予測モジュール３３６からのイントラ予測された参照サンプル３７８、または動き補償ブロック３３４からのインター予測された予測ユニット（ＰＵ）３７６のいずれかを選択する。
【００７０】
加算モジュール３４２は、デブロッキングフィルタモジュール３３０に入力される総和３７０を生成する。デブロッキングフィルタモジュール３３０は、ブロック境界に沿ってフィルタリングし、メモリ２０６内に構成されているフレームバッファモジュール３３２に書き込まれる、デブロッキングされたサンプル３７２を生成することを実行する。フレームバッファモジュール３３２は、参照ピクチャリストの一部として将来の参照用に、１つ以上の過去のフレームからのデータを保持するために十分な容量を有するバッファである。
【００７１】
開発中の高効率ビデオコーディング（ＨＥＶＣ）規格の場合、エントロピーエンコーダ３２４によって生成された符号化ビットストリーム３１２は、ネットワークアブストラクションレイヤ（ＮＡＬ）ユニットの中に描写される。一般に、フレームの各スライスは１つのＮＡＬユニットに含まれる。エントロピーエンコーダ３２４は、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）アルゴリズムを実行することによって、「シンタックス要素」と総称して呼ばれる、残差アレイ３６４、イントラ予測モード３８０、動きベクトル、および他のパラメータを、符号化ビットストリーム３１２に符号化する。シンタックス要素は、「シンタックス構造」の中に一緒にグループ化される。グループ化は、階層構造を記述するために再帰を含む場合がある。イントラ予測モードなどの序数値、または動きベクトルなどの整数値に加えて、シンタックス要素はまた、たとえば４分木分割を示すためにフラグを含む。
【００７２】
図４のビデオデコーダ１３４は高効率ビデオコーディング（ＨＥＶＣ）のビデオ復号パイプラインを参照して記載されるが、他のビデオコーデックがモジュール４２０〜４３４の処理段階を利用する場合もある。符号化されたビデオ情報は、メモリ２０６、ハードディスクドライブ２１０、ＣＤ−ＲＯＭ、ブルーレイ（商標）ディスク、または他のコンピュータ可読記憶媒体から読み取られても良い。また、符号化されたビデオ情報は、通信ネットワーク２２０に接続されたサーバまたは無線周波受信機などの外部ソースから受信されても良い。
【００７３】
図４に見られるように、符号化ビットストリーム３１２などの受信されたビデオデータが、ビデオデコーダ１３４に入力される。符号化ビットストリーム３１２は、メモリ２０６、ハードディスクドライブ２１０、ＣＤ−ＲＯＭ、ブルーレイ（商標）ディスク、または他のコンピュータ可読記憶媒体から読み取られても良い。または、符号化ビットストリーム３１２は、通信ネットワーク２２０に接続されたサーバまたは無線周波受信機などの外部ソースから受信されても良い。符号化ビットストリーム３１２は、復号されるべき取り込まれたフレームデータを表す符号化されたシンタックス要素を含む。
【００７４】
符号化ビットストリーム３１２は、エントロピーデコーダモジュール４２０に入力され、エントロピーデコーダモジュール４２０は、符号化ビットストリーム３１２からシンタックス要素を抽出し、シンタックス要素の値をビデオデコーダ１３４内の他のブロックに渡す。エントロピーデコーダモジュール４２０は、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）アルゴリズムを適用して、符号化ビットストリーム３１２からのシンタックス要素を復号する。復号されたシンタックス要素は、ビデオデコーダ１３４内でパラメータを再構成するために使用される。パラメータは、ゼロ以上の残差データアレイ４５０、動きベクトル４５２、予測モード４５４、および分割変換フラグ４６８を含む。残差データアレイ４５０は逆スケーリングモジュール４２１に渡され、動きベクトル４５２は動き補償モジュール４３４に渡され、予測モード４５４はフレーム内予測モジュール４２６およびマルチプレクサ４２８に渡される。逆スケーリングモジュール４２１は、残差データに対して逆スケーリングを実行して、変換係数の形態で再構成されたデータ４５５を作成する。逆スケーリングモジュール４２１は、再構成されたデータ４５５を逆変換モジュール４２２に出力する。逆変換モジュール４２２は、「逆変換」を適用して再構成されたデータ４５５（すなわち、変換係数）を、周波数領域表現から空間領域表現に変換（または「復号」）し、マルチプレクサモジュール４２３を介して残差サンプルアレイ４５６を出力する。逆変換モジュール４２２は、逆変換モジュール３２８と同じ動作を実行する。逆変換モジュール４２２は、分割変換フラグ４６８によって指定された残差４分木に従って変換を実行するように構成される。逆変換モジュール４２２によって実行される変換は、開発中の高効率ビデオコーディング（ＨＥＶＣ）規格に準拠する、符号化ビットストリーム３１２を復号するために必要な変換サイズの所定のセットから選択される。
【００７５】
動き補償モジュール４３４は、メモリ２０６内に構成されたフレームバッファブロック４３２からの参照フレームデータ４６０と組み合わせて、エントロピーデコーダモジュール４２０からの動きベクトル４５２を使用して、出力復号フレームデータの予測である、予測ユニット（ＰＵ）のためのインター予測された予測ユニット（ＰＵ）４６２を生成する。現在の予測ユニットがイントラ予測を使用してコード化されたことを、予測モード４５４が示すとき、フレーム内予測モジュール４２６は、予測ユニット（ＰＵ）に空間的に隣接するデータサンプルと、同様に予測モード４５４によって供給された予測方向とを使用して、予測ユニット（ＰＵ）のためのイントラ予測された予測ユニット（ＰＵ）４６４を生成する。空間的に隣接するデータサンプルは、加算モジュール４２４から出力された総和４５８から取得される。マルチプレクサモジュール４２８は、現在の予測モード４５４に応じて、予測ユニット（ＰＵ）４６６のための、イントラ予測された予測ユニット（ＰＵ）４６４またはインター予測された予測ユニット（ＰＵ）４６２を選択する。マルチプレクサモジュール４２８からの出力である予測ユニット（ＰＵ）４６６は、加算モジュール４２４により、逆スケーリングおよび変換モジュール４２２からの残差サンプルアレイ４５６に加算されて、総和４５８を生成する。次いで、総和４５８は、デブロッキングフィルタモジュール４３０およびフレーム内予測モジュール４２６の各々に入力される。デブロッキングフィルタモジュール４３０は、変換ユニット（ＴＵ）境界などのデータブロック境界に沿ってフィルタリングを実行して、可視アーテファクトを平滑化する。デブロッキングフィルタモジュール４３０の出力は、メモリ２０６内に構成されたフレームバッファモジュール４３２に書き込まれる。フレームバッファモジュール４３２は、将来の参照用の１つ以上の復号フレームを保持するために十分なストレージを提供する。復号フレーム４１２は、フレームバッファモジュール４３２から、ディスプレイデバイス１３６などのディスプレイデバイスにも出力される（たとえば、ディスプレイデバイス２１４の形態）。
【００７６】
図５Ａは、４：２：０のクロマフォーマットを使用して符号化されたフレーム部分５００のサンプルグリッドを示す。図５Ｂは、４：２：２のクロマフォーマットを使用して符号化されたフレーム部分５１０を示す。クロマフォーマットは、ビデオエンコーダ１１４への構成パラメータとして指定され、ビデオエンコーダ１１４は、クロマフォーマットを指定する「ｃｈｒｏｍａ＿ｆｏｒｍａｔ＿ｉｄｃ」シンタックス要素を、符号化ビットストリーム３１２に符号化する。ビデオデコーダ１３４は、符号化ビットストリーム３１２からの「ｃｈｒｏｍａ＿ｆｏｒｍａｔ＿ｉｄｃ」シンタックス要素を復号して、使用されているクロマフォーマットを特定する。たとえば、４：２：０のクロマフォーマットが使用されているとき、ｃｈｒｏｍａ＿ｆｏｒｍａｔ＿ｉｄｃの値は１であり、４：２：２のクロマフォーマットが使用されているとき、ｃｈｒｏｍａ＿ｆｏｒｍａｔ＿ｉｄｃの値は２であり、４：４：４のクロマフォーマットが使用されているとき、ｃｈｒｏｍａ＿ｆｏｒｍａｔ＿ｉｄｃの値は３である。図５Ａおよび図５Ｂでは、ルーマサンプルロケーション５０１などのルーマサンプルロケーションは「Ｘ」のシンボルを使用して示され、クロマサンプルロケーション５０２などのクロマサンプルロケーションは「Ｏ」のシンボルを使用して示される。４：２：０のクロマフォーマットが適用されるとき、示されたポイントでフレーム部分５００をサンプリングすることによって、カラーチャネルごとにサンプルグリッドが取得される。各ルーマサンプルロケーションＸでルーマチャネル（「Ｙ」）がサンプリングされ、各クロマサンプルロケーションＯで両方のクロマチャネル（「Ｕ」および「Ｖ」）がサンプリングされる。図５Ａに示されたように、クロマサンプルロケーションごとに、ルーマサンプルロケーションの２×２の配列が存在する。
【００７７】
４：２：２のクロマフォーマットが適用されるとき、フレーム部分５１０に示された、ルーマサンプルロケーションでルーマサンプルをサンプリングし、クロマサンプルロケーションでクロマサンプルをサンプリングすることによって、カラーチャネルごとにサンプルグリッドが取得される。フレーム部分５００の場合と同じカラーチャネルに対するデータサンプルの割り振りが、フレーム部分５１０に対して行われる。フレーム部分５００と対比して、２倍多いクロマサンプルロケーションがフレーム部分５１０に存在する。フレーム部分５１０では、クロマサンプルロケーションは、１つおきのルーマサンプルロケーションとコロケートされる。したがって、図５Ｂでは、クロマサンプルロケーションごとに、２×１のルーマサンプルロケーションの配列が存在する。
【００７８】
ルーマサンプル単位での変換ユニットの様々な許容可能な寸法が上述された。ルーマチャネルに適用される変換によってカバーされる領域は、したがって、変換ユニットの寸法と同じ寸法を有する。変換ユニットはクロマチャネルも符号化するので、各クロマチャネルに適用される変換は、使用されている特定のクロマフォーマットに従って適応された寸法を有する。たとえば、４：２：０のクロマフォーマットが使用されているとき、１６×１６の変換ユニット（ＴＵ）は、ルーマチャネル用の１６×１６の変換と、各クロマチャネル用の８×８の変換とを使用する。
【００７９】
「残差４分木（ＲＱＴ）」は「ルートノード」で始まる階層を定義し、階層の各「リーフノード」で１つ以上の変換ユニット（ＴＵ）を含む領域をカバーする。非ルーフノードで、領域は、「４分木分割」として知られる分割で、４つの等しいサイズの「下位領域」に分割される。各変換ユニット（ＴＵ）は、一般に、ルーマサンプルグリッド上の変換ユニット（ＴＵ）を含む領域の寸法として記述される、関連するサイズ（または「変換サイズ」）を有するが、領域は、クロマサンプルグリッド上の寸法として記述される場合もある。サイズは、コーディングユニット（ＣＵ）のサイズおよび変換深度に依存する。ゼロの変換深度を有する変換ユニット（ＴＵ）は、対応するコーディングユニット（ＣＵ）のサイズに等しいサイズを有する。変換深度の増加毎に、所与の変換深度で残差４分木内に存在する変換ユニット（ＴＵ）の寸法（すなわち、面の幅と高さ）は半減する。フレームはルーマチャネルおよびクロマチャネルを含むので、コーディングユニット（ＣＵ）は、ルーマサンプルグリッドとクロマサンプルグリッドの両方上の領域を占め、したがって、各変換ユニット（ＴＵ）は、ルーマサンプルグリッド上のルーマサンプルとクロマサンプルグリッドのクロマサンプルの両方を記述する情報を含む。変換ユニット（ＴＵ）ごとの情報の性質は、ビデオエンコーダ１１４またはビデオデコーダ１３４の処理段階に依存する。変換モジュール３２０への入力、ならびに逆スケーリングおよび変換モジュール４２２の出力で、残差サンプルアレイ３６０および４５６は、それぞれ、空間領域内の変換ユニット（ＴＵ）ごとの情報を含む。残差サンプルアレイ３６０および４５６は、ルーマチャネルとクロマチャネルとの間の処理における差異に起因して、「クロマ残差サンプルアレイ」および「ルーマ残差サンプルアレイ」にさらに分割される場合がある。スケーリングおよび量子化モジュール３２２の出力、ならびに逆スケーリングおよび変換モジュール４２２の入力で、残差データアレイ３６４および４５０は、それぞれ、周波数領域内の変換ユニット（ＴＵ）ごとの情報を含む。残差データアレイ３６４および４５０は、ルーマチャネルとクロマチャネルとの間の処理における差異に起因して、「クロマ残差データアレイ」および「ルーマ残差データアレイ」にさらに分割される場合がある。
【００８０】
図６は、複数のコーディングユニット（ＣＵ）、予測ユニット（ＰＵ）、および変換ユニット（ＴＵ）へのコーディングツリーブロック（ＣＴＢ）６０２の再分割を示す図である。４分木階層は、コーディングツリーブロック（ＣＴＢ）６０２などのコーディングツリーブロック（ＣＴＢ）の、１つ以上のコーディングユニット（ＣＵ）への分割を記述する。４分木階層は、符号化ビットストリーム３１２内に存在する１つ以上の「分割コーディングユニットフラグ」（または「ｓｐｌｉｔ＿ｃｕ＿ｆｌａｇ」シンタックス要素）によって定義される。
【００８１】
図６では、コーディングツリーブロック（ＣＴＢ）６０２は、４つの等しいサイズの正方形領域に分割され、それらの各々はこれ以上再分割されない。その結果、コーディングツリーブロック（ＣＴＢ）６０２は、コーディングユニット（ＣＵ）６０４などの４つのコーディングユニット（ＣＵ）を含む。各コーディングユニット（ＣＵ）は、１つ以上の予測ユニット（ＰＵ）と、１つ以上の変換ユニット（ＴＵ）とを含む。
【００８２】
１つ以上の予測ユニット（ＰＵ）へのコーディングユニット（ＣＵ）の分解は、「区分化」と呼ばれ、一般に、符号化ビットストリーム３１２内に存在する「パーティションモード」（または「ｐａｒｔ＿ｍｏｄｅ」シンタックス要素）によって指定される。パーティションモードは、単一の予測ユニット（ＰＵ）がコーディングユニット（ＣＵ）全体を占めるか、または複数の重複しない予測ユニット（ＰＵ）がコーディングユニット（ＣＵ）全体を占めるかを指定することができる。たとえば、図６に見られるように、コーディングユニット（ＣＵ）は、コーディングユニット（ＣＵ）６０４の面積を予測ユニット（ＰＵ）６０８などの４つの正方形予測ユニット（ＰＵ）に分割する区分化６０６を含む。
【００８３】
各インター予測された予測ユニット（ＰＵ）は動きベクトルを有し、各イントラ予測された予測ユニット（ＰＵ）は方向を有する。従って、異なる動きベクトル、方向、または異なる動きベクトルと方向の組合せに起因して、隣接する予測ユニット（ＰＵ）間の境界で、視覚的不連続性の可能性がある。所与の区分化の場合、１つ以上の生じた予測ユニット（ＰＵ）は、すべてイントラ予測されるか、すべてインター予測されるかのいずれかであるが、イントラ予測とインター予測の組合せではない。
【００８４】
１つ以上の変換ユニット（ＴＵ）へのコーディングユニット（ＣＵ）の分解は、「残差４分木」（ＲＱＴ）と呼ばれる４分木分解である。残差４分木（ＲＱＴ）は、一般に、符号化ビットストリーム３１２内に存在する１つ以上の「分割変換フラグ」（または「ｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇ」シンタックス要素）によって指定される。たとえば、コーディングユニット（ＣＵ）６０４は、コーディングユニット（ＣＵ）６０４の面積を４つの等しいサイズの領域に分割する残差４分木（ＲＱＴ）６１０を含む。４つの等しいサイズの領域の各々は、これ以上再分割されず、変換ユニット（ＴＵ）６１２などの４つの変換ユニット（ＴＵ）になる。各変換ユニット（ＴＵ）は、ルーマチャネル用の変換および各クロマチャネル用の変換を含む。ビデオエンコーダ１１４およびビデオデコーダ１３４が４：２：０のクロマフォーマット向けに構成されているとき、ルーマチャネルおよび各クロマチャネルについての変換の境界（または「エッジ」）は、変換ユニット（ＴＵ）の境界に位置合わせされる。対照的に、ビデオエンコーダ１１４およびビデオデコーダ１３４が４：２：２のクロマフォーマット向けに構成され、正方形変換が各クロマチャネルに使用されるとき、各クロマチャネルについてさらなる変換の境界が存在する。変換の境界で不連続性が見える可能性がある。不連続性は、フレームデータ３１０と比較して復号フレーム４１２の知覚品質を低下させる。スケーリングおよび量子化ブロック３２２、ならびに逆スケーリングモジュール４２１によって適用される量子化パラメータは、変換ユニット（ＴＵ）間で変化する可能性がある。従って、空間的に隣接する変換は、異なる量子化パラメータが適用される可能性がある。一般に、隣接する変換に適用されるより大きい量子化パラメータおよび量子化パラメータ内の差異により、増大する変換ブロックのエッジアーテファクトに起因して、視覚的品質がより低くなる。
開発中の高効率ビデオコーディング（ＨＥＶＣ）規格は、３５個のイントラ予測モードを定義する。３５個のイントラ予測モードのうち、１つのイントラ予測モードは「ＤＣ」モードとして知られ、１つは「平面」モード、３３個は指向性モードとして知られる。
【００８５】
図７は、すべての指向性（または「角度」）イントラ予測モードを概略的に示す。イントラ予測方向７０４などの３３個の考えられるイントラ予測方向の各々が、矢印を使用して図７に示される。イントラ予測方向の各々はまた、イントラ予測方向７０４に対応する、図７で７０２として参照されるイントラ予測モード２などのイントラ予測モードとともに列挙される。指向性イントラ予測モードは、イントラ予測モード２〜３４を割り当てられる。イントラ予測モード０および１は、ＤＣモードおよび平面モードのために確保される。図７の矢印はすべて中心点から放射するイントラ予測方向を示すが、イントラ予測の実際の「方向」は正反対であり、図７に示された方向から１８０度回転している。イントラ予測の方向は、予測ユニット（ＰＵ）の（上と左に位置する）参照サンプルを取り、予測ユニット（ＰＵ）の各サンプルを占めるテクスチャを作成するために参照サンプルを使用する、前記イントラ予測方法１１００に起因して１８０度回転している。図７に示された回転した方向は、単一の図で３３個のイントラ予測方向の各々を明瞭に示す。イントラ予測モード２〜１７は、主として水平方向であり、水平イントラ予測モード７１２として知られる。イントラ予測モード１８〜３４は、主として垂直方向であり、垂直イントラ予測モード７１０として知られる。水平イントラ予測モード７１２を垂直イントラ予測モード７１０から分別するしきい値は、存在すると言えるだろう。イントラ予測モード１８は４５度の角度に対応し、したがって主として水平または垂直ではないことに留意されたい。しかしながら、慣例により、高効率ビデオコーディング（ＨＥＶＣ）規格では、イントラ予測モード１８は、主に垂直のカテゴリに入ると考えられる。イントラ予測モード１８についての角度パラメータおよび逆角度用の対応する値が、垂直または水平のカテゴリ化にかかわらず同じ予測されたサンプルを生成するはずなので、イントラ予測モード１８が主に垂直のカテゴリに入るはずと考えることは、予測されたサンプルに対する影響をもたない任意の選定である。各角度は、角度パラメータ（または「ｉｎｔｒａＰｒｅｄａｎｇｌｅ」）によって指定される。
【００８６】
角度パラメータは、−３２から＋３２までの整数である。角度パラメータは、垂直イントラ予測モードの場合の水平軸、または水平イントラ予測モードの場合の垂直軸のいずれかに沿ったオフセットとして解釈されても良い。たとえば、角度パラメータ７０６は、３０の値を有し、すべての水平イントラ予測モード７１２を含む垂直軸に沿って存在する。図７に示されるように、イントラ予測モード２は、３２の角度パラメータを有する。２本の軸の間に対称性が存在し、各軸内で、正の角度パラメータと負の角度パラメータとの間に対称性が存在する。２つの対称性により、ハードウェアおよびソフトウェアの実装形態の簡略化が可能になる。これらの対称性の結果として、［０、２、５、９、１３、１７、２１、２６、３２］の角度パラメータの縮小されたセットは、すべての水平イントラ予測モードおよび垂直イントラ予測モードにわたって使用されるすべての角度パラメータを合成するために使用されても良い。
【００８７】
ビデオエンコーダ１１４またはビデオデコーダ１３４においてイントラ予測されたサンプルを生成する方法１１００を、図１１を参照して下記に詳細に説明する。図８Ａは、ビデオエンコーダ１１４内のフレーム内予測モジュール３３６、またはビデオデコーダ１３４内のフレーム内予測モジュール４２６によって実行されるような、例示的なイントラ予測方向についてのイントラ予測方法１１００を概略的に示す。イントラ予測方法１１００は、予測されたサンプルを有する予測ユニット（ＰＵ）８０２などの予測ユニット（ＰＵ）を埋めるために使用され、下記に詳細に述べる。予測されたサンプルは、参照サンプルを使用して生成される。図８Ａでは、参照サンプルは、「上」参照サンプル８０４、「左」参照サンプル８０６、および「左上」参照サンプル８０８（総称して、「参照サンプル」）を含む。左上参照サンプル８０８は、一般に、上参照サンプル８０４と左参照サンプル８０６の両方に含まれる。上参照サンプル８０４、左参照サンプル８０６、および左上参照サンプル８０８は、一般に、ビデオエンコーダ１１４内の総和３７０、およびビデオデコーダ１３４内の総和４５８から取得される。総和３７０および総和４５８は、一般に、フレームの以前に復号されたサンプルを出力する。上参照サンプル８０４、左参照サンプル８０６、および左上参照サンプル８０８は、一般に、「隣接サンプル」で埋められる。隣接サンプルは、総和３７０または総和４５８から取得され、図８Ａに示された参照サンプルの位置決めに従って、予測ユニット（ＰＵ）８０２に対して空間的に位置する。フレーム内の予測ユニット（ＰＵ）８０２の位置およびフレーム内の以前に復号された予測ユニットに応じて、隣接サンプルのうちのすべてが利用可能であるとは限らない場合がある。利用可能ではない隣接サンプルの場合、参照サンプル内の対応するサンプルは、代わりにデフォルトサンプル値で埋められる場合がある。デフォルトサンプル値は、利用可能な他の隣接サンプルから決定されるか、または各々が定数値でも良い。
【００８８】
指向性イントラ予測モードは、予測されたサンプルがテクスチャであり、特定の方向を有し、参照サンプル８０４などの参照サンプルから決定されるという特性を有する。指向性イントラ予測モードが選択されたとき、参照サンプルバッファからのサンプルは、イントラ予測の方向内の予測ユニット（ＰＵ）にコピーされる。たとえば、イントラ予測方向８１０は、右上の方向を有する、予測ユニット（ＰＵ）８０２用に生成されているテクスチャをもたらす。テクスチャは、イントラ予測の方向内の予測ユニット（ＰＵ）８０２にわたって、参照サンプル８１２などの参照サンプル内の各参照サンプルをコピーすることによって生成され、対応する参照サンプルに等しい値を割り当てられている予測されたサンプル（たとえば、予測されたサンプル８１４）をもたらす。明確にするために、図８Ａは、少ない参照サンプルと予測されたサンプルとの間の関係を示すだけだが、予測ユニット（ＰＵ）内のすべての予測されたサンプルが生成される。３３個の指向性イントラ予測モードをサポートする細粒度に起因して、滑らかなテクスチャを生成するために、予測ユニット内のサンプル値の補間が必要である。滑らかなテクスチャにより、対応する変換ユニット（ＴＵ）に必要とされるより小さい残差がもたらされ、したがって、より大きいコーディング効率がもたらされる。イントラ予測プロセスは、ビデオエンコーダ１１４とビデオデコーダ１３４の両方によって実行される。ビデオエンコーダ１１４は、イントラ予測モードのセットから予測ユニット（ＰＵ）用の１つのイントラ予測モードを選択し、選択されたイントラ予測モードを符号化ビットストリーム３１２の中に符号化する。最も高いコーディング効率を達成するために、ビデオエンコーダ１１４によってすべての考えられるイントラ予測モードを探索したり、またはコーディング効率を犠牲にして、時間量を削減して選択を行うために、考えられるイントラ予測モードのサブセットを探索しても良い。ビデオエンコーダ１１４は、エントロピーエンコーダ３２４を使用して、符号化ビットストリーム３１２内で選択されたイントラ予測モードを符号化する。ビデオデコーダ１３４は、エントロピーデコーダ４２０を使用して、符号化ビットストリーム３１２からの選択されたイントラ予測モードを決定する。
【００８９】
イントラ予測モード２６〜３４の場合、上参照サンプル（たとえば、８０４）のみが必要である。イントラ予測モード２〜１０の場合、左参照サンプル（たとえば、８０６）のみが必要である。イントラ予測モード１１〜２５の場合、上参照サンプル（たとえば、８０４）と左参照サンプル（たとえば、８０６）の両方が必要である。イントラ予測モード１１〜２５の場合、「逆角度」または「ｉｎｖＡｎｇｌｅ」という名称のさらなるパラメータが定義される。主として垂直イントラ予測モードの場合、逆角度は左参照サンプルの占有数を制御し、主として水平イントラ予測モードの場合、逆角度は上参照サンプル（たとえば、８０４）の占有数を制御する。逆角度が定義されたとき、逆角度の値は、それぞれイントラ予測モード１１〜２５の場合、［−４０９６、−１６３８、−９１０、−６３０、−４８２、−３９０、−３１５、−２５６、−３１５、−３９０、−４８２、−６３０、−９１０、−１６３８、−４０９６］のうちの１つである。イントラ予測モード１８での対称性は、逆角度の値のリストから認識できる。実装形態は、対称性を使用して複雑さを低減することができる。複雑さをそのように低減すると、コーディング効率における損失が無視できるか、またはない状態がもたらされる場合、複雑さを低減することが望ましい。さらに、逆角度の範囲は−２５６から−４０９６まで変化するが、８つの離散値のみが定義される。逆角度は、個々の隣接サンプルへのアクセスの間隔を変更することによって、隣接サンプルを有する参照サンプルバッファの占有数を制御するために使用される。各隣接サンプルにアクセスするためのオフセットを決定するとき、８ビットの右シフトが逆角度に適用される。これに起因して、−２５６の逆角度の値により、参照サンプルが近傍の隣接サンプルで埋められる結果になる。−４０９６の逆角度の値により、参照サンプルが１５個おきの隣接サンプルで埋められる結果になる。
【００９０】
主として垂直イントラ予測モードの場合、左参照サンプルが上参照サンプルの拡張であるかのように左参照サンプルが埋められ、左参照サンプルは、イントラ予測の反対方向（すなわち、図８に示された方向）内の上参照サンプルの拡張上に投影される。主として水平イントラ予測モードの場合、上参照サンプルが左参照サンプルの拡張であるかのように上参照サンプルが埋められ、上参照サンプルは、イントラ予測の反対方向（すなわち、図８Ａに示された方向）内の左参照サンプルの拡張上に投影される。
【００９１】
図８Ｂは、逆角度が上参照サンプルを埋めるために使用される場合の、例示的なイントラ予測方向８２２についてのイントラ予測方法１１００を概略的に示す。図８Ｂの例では、イントラ予測方向８２２は、主として水平イントラ予測方向であるが、右下の方向（たとえば、図７のイントラ予測モード１４）を有する。上隣接サンプル８１６などの上隣接サンプル８２０は、逆角度に従って、上参照サンプル８０４（たとえば、上参照サンプル８１８）を埋めるために使用される。逆角度の値はイントラ予測モードに依存し、イントラ予測モード１４の場合、逆角度の値は−６３０である。この逆角度の場合、１つおきまたは２つおきの上隣接サンプル８２０が上参照サンプル８０４に埋められる。
【００９２】
図９Ａおよび図９Ｂは、４：２：２の色差フォーマットを使用して、ビデオデータ内のフレームのそれぞれ輝度サンプルグリッド９００および色差サンプルグリッド９１０上のイントラ予測された予測ユニット（ＰＵ）９０１を概略的に示す。輝度サンプルグリッド９００上で、予測ユニット（ＰＵ）９０１は８×８のサンプル領域を占め、図９Ａの矢印によって表されたように、イントラ予測モードは１８であり、−３２の角度パラメータがもたらされる。輝度サンプルグリッド９００上で、この角度パラメータにより、４５度の有効角度がもたらされる。しかしながら、色差サンプルグリッド９１０上で、同じ角度パラメータにより、２２．５度への有効角度の水平方向の拡張がもたらされる。水平方向の拡張は、色差サンプルグリッド９１０上の各色差サンプルの１×２のサイズに起因する。
【００９３】
ルーマサンプルグリッド９００およびクロマサンプルグリッド９１０にまたがる所与の角度パラメータ用の有効角度間の不一致により、コーディング効率が低下する。ビデオデータがルーマチャネルとクロマチャネルにまたがって相関する特徴をしばしば含むので、コーディング効率が低下し、したがって、これはイントラ予測についての共通のシナリオである。
【００９４】
図１０は、ビデオデコーダ１３４のフレーム内予測モジュール４２６の機能モジュールを示す概略ブロック図である。ビデオエンコーダ１１４のフレーム内予測モジュール３３６は、ビデオデコーダ１３４のフレーム内予測モジュール４２６と同様に動作し、したがって、図１０の機能モジュールの説明は、フレーム内予測モジュール３３６にも適用可能である。図１０の機能モジュールは、コンピュータシステム２００内の専用ハードウェアにより、ハードディスクドライブ２０５に常駐し、プロセッサ２０５によってその実行が制御されるソフトウェアアプリケーションプログラム２３３の１つ以上のソフトウェアコードモジュールなどの、コンピュータシステム２００内のソフトウェア実行ファイルにより、または、コンピュータシステム２００内の専用ハードウェアとソフトウェア実行ファイルの組合せによって実装されても良い。
【００９５】
総和４５８は加算モジュール４２４から受信され、隣接ブロックからの残差と予測の総和である。隣接サンプルバッファ１００２は、左隣接バッファ１００４内の左隣接サンプルおよび上隣接バッファ１００６内の上隣接サンプルを保持するために十分なストレージを提供する。総和４５８は、デブロッキングフィルタモジュール４３０によって実行されるループ内フィルタリングの前に生成される。左隣接バッファ１００４は左隣接サンプル１０２０を出力し、上隣接バッファ１００６は上隣接サンプル１０２２を出力する。参照サンプル生成器モジュール１００８は、角度パラメータ１０２４および逆角度１０２６に従って、一括して参照サンプル１０２８である左参照サンプル（たとえば、８０６）および上参照サンプル（たとえば、８０４）を生成する。参照サンプル生成器モジュール１００８は、隣接サンプルバッファ１００２から隣接サンプルをコピーすることによって、参照サンプルを生成することができる。コピー動作は、図８Ａはおよび図８Ｂの説明に従って動作することができる。参照サンプルブロック生成器１００８は、主として垂直イントラ予測モード（すなわち、ｐｒｅｄＭｏｄｅＩｎｔｒａが１８以上である）と、主として水平イントラ予測モード（すなわち、ｐｒｅｄＭｏｄｅＩｎｔｒａが１８未満である）との間を区別する。値１８は、主として水平イントラ予測モードと主として垂直イントラ予測モードとの間のしきい値を定義する。ＤＣモードおよび平面モードは、方向を有するとは考えられないので、別個に扱われる。サンプルブロック生成器１０１０は、参照サンプル１０２８、角度パラメータ１０２４、および予測モード４５４を使用して、イントラ予測されたサンプルのアレイの形態で、イントラ予測された予測ユニット（ＰＵ）４６４を生成する。参照サンプルブロック生成器１００８と同様に、サンプルブロック生成器１０１０は、（予測モード４５４によって提供された）イントラ予測モードを１８のしきい値と比較して、主として垂直イントラ予測モード（すなわち、ｐｒｅｄＭｏｄｅＩｎｔｒａが１８以上である）と、主として水平イントラ予測モード（すなわち、ｐｒｅｄＭｏｄｅＩｎｔｒａが１８未満である）との間を区別する。
【００９６】
角度パラメータおよび（定義された場合）逆角度の任意の所与の値の場合、主として垂直イントラ予測モードについての参照サンプルブロック生成器１００８による左参照サンプルおよび上参照サンプルのアクセスは、主として水平イントラ予測モードについてのアクセスの転置である。この対称性は、これら２つのケース間のしきい値を使用して転置演算の動作を制御することによって、参照サンプル生成の複雑さを低減するために活用しても良い。
【００９７】
サンプルブロック生成器１０１０は、参照サンプル１０２８からサンプルをコピーすることによって動作して、イントラ予測された予測ユニット（ＰＵ）４６４を生成する。たとえば、１８のイントラ予測モードにより、−３２の角度パラメータがもたらされる。−３２の角度パラメータにより、参照サンプル１０２８からの各参照サンプルが対角線の右下パターンで予測ユニット（ＰＵ）にコピーされる結果になる。予測ユニット（ＰＵ）内の各ロケーションは、このようにして、角度パラメータに従って参照サンプルのコピーで埋められて、テクスチャを含むサンプルのブロックを生成する。
【００９８】
角度パラメータの任意の所与の値の場合、主として垂直イントラ予測モードについてのサンプルブロック生成器１０１０の出力は、主として水平イントラ予測モードについてのサンプルブロック生成器１０１０の出力の（イントラ予測モード１８によって定義された軸に沿った）転置である。この対称性は、これら２つのケース間のしきい値を使用して転置演算の動作を制御することによって、複雑さを低減するために活用できる。
【００９９】
サンプルブロック生成器１０１０の複雑さは、角度パラメータ用の値に存在する対称性を活用することによって低減できる。イントラ予測された予測ユニット（ＰＵ）４６４内の各サンプルは、参照サンプル１０２８および角度パラメータ１０２４にのみ依存するので、サンプルブロック生成器１０１０の並列実装が可能である。
【０１００】
並列実装により、（たとえば、クロックサイクル当たり生成されるサンプルの数によって測定される）「スループット」が、最大サポートフレームレートでのリアルタイム動作をサポートするために十分になるので、サンプルブロック生成器１０１０の並列実装は、より高い解像度のために有利である。
【０１０１】
一般に、並列実装は、ロジックを重複させる欠点を有し、回路サイズを増大させる。並列化される動作を簡略化して、サンプルブロック生成器１０１０の実装に並列化を加えることの増分コストを低減することは有益である。
【０１０２】
サンプルブロック生成器１０１０の実装に並列化を加えることの増分コストを低減する構成が、図１１〜図１３を参照して下記に説明する。制御ロジック１０１２は、予測モード４５４を使用して角度パラメータ１０２４および逆角度１０２６を生成し、図１１〜図１３を参照して説明する。
【０１０３】
図１１は、クロマサンプルアレイ用の４：２：２のクロマフォーマット向けに構成されているビデオエンコーダ１１４またはビデオデコーダ１３４において、イントラ予測されたサンプルを生成する方法１１００を示す概略ブロック図である。方法１１００は、符号化ビットストリーム３１２などのビデオビットストリームのクロマチャネル用のイントラ予測されたサンプルを生成するために使用されても良い。方法１１００は、イントラ予測された予測ユニット（ＰＵ）用のサンプルのアレイを生成し、図１０および図１１を参照して説明する。方法１１００は、たとえば、ハードウェアまたはソフトウェアとして実装される可能性があるビデオエンコーダ１１４またはビデオデコーダ１３４の一部として実装されるであろう。方法１１００は、方法１１００がハードディスクドライブ２１０とともに常駐するソフトウェアアプリケーションプログラム２３３の１つ以上のコードモジュールとして実装され、プロセッサ２０５によってその実行が制御される例として説明する。
【０１０４】
方法１１００は、イントラ予測モードを選択するためにプロセッサ２０５が使用される、ステップ決定ステップ１１０２で始まる。選択ステップ１１０２の動作は、下記に記載されるように、ビデオエンコーダ１１４とビデオデコーダ１３４との間で異なる。
【０１０５】
ステップ１１０４〜１１２６は、ビデオエンコーダ１１４とビデオデコーダ１３４との間で同じ動作を有する。図１１に示されたように、ステップ１１３０は、イントラ予測モードから角度パラメータおよび逆角度を決定するために使用される集合ステップ１１０４〜１１２２を表す。ステップ１１３０のステップ１１０６〜１１２２では、詳細には、４：２：２のクロマフォーマットが使用されているときのクロマチャネル処理に起因して、イントラ予測角度を調整する。ステップ１１３０のステップ１１０６〜１１２２では、角度パラメータ１０２４、および水平イントラ予測モードと垂直イントラ予測モードとの間のしきい値（または「変化しきい値」）を調整する。調整により、クロマサンプルグリッド上のイントラ予測がルーマサンプルグリッド上のイントラ予測と一貫して動作することが可能になる。（「ｐｒｅｄＭｏｄｅＩｎｔｒａ」によって列挙される）水平イントラ予測モードと垂直イントラ予測モードとの間の変化しきい値は、図７に示されたように主として水平イントラ予測モードと主として垂直イントラ予測モードとの間の境界を示す。変化しきい値は、ルーマサンプルグリッドについて、（かつ４：２：２以外のクロマフォーマットが使用されているときのクロマチャネルについて）１８の値を有する。４：２：２のクロマフォーマットが使用されているときのクロマチャネルの場合、変化しきい値は１５の値を有する。ステップ１１３０のステップ１１０６〜１１２２は、調整された角度が所定の値を超える場合、変化しきい値を修正するために構成される。修正された変化しきい値は、修正されたイントラ予測角度を、複数の水平イントラ予測モードのうちの１つから垂直イントラ予測モードに変換するために構成されている。
【０１０６】
ビデオエンコーダ１１４では、ステップ１１０２で、どのイントラ予測モードが予測ユニット（ＰＵ）に使用されるべきかを選択するために、プロセッサ２０５が使用される。ステップ１１０２で選択されたイントラ予測モードは、複数の水平イントラ予測モードのうちの１つであろう。一般に、ステップ１１０２で、プロセッサ２０５は、入力されたフレームデータ３１０上のコロケートされたブロックと比較して、最も低いひずみを与えるイントラ予測モードを選択する。選択されたイントラ予測モードは、エントロピーエンコーダ３２４によって符号化ビットストリーム３１２内で符号化され、メモリ２０６および／またはＨＤＤ２１０に記憶されるであろう。ビデオデコーダ１３４では、エントロピーデコーダ４２０を使用して符号化ビットストリーム３１２からのシンタックス要素を復号することによって、イントラ予測モードがステップ１１０２で決定される。
【０１０７】
決定ステップ１１０４で、クロマチャネル用のイントラ予測モードについてイントラ予測の角度パラメータおよび逆角度によって表されるイントラ予測角度を決定するために、プロセッサ２０５が使用される。角度パラメータは図８に従って決定される。決定された角度パラメータおよび逆角度は、メモリ２０６および／またはＨＤＤ２１０に記憶されても良い。
【０１０８】
次いで、クロマ４：２：２テストステップ１１０５で、生成されるべき予測されたサンプルのブロックがクロマチャネル用であり、クロマチャネルが４：２：２のクロマフォーマットを使用しているかどうかを判定するために、プロセッサ２０５が使用される。そうである場合、制御はテストステップ１１０６に移る。そうでない場合、制御は参照サンプル生成ステップ１１２４に移る。
【０１０９】
次いで、テストステップ１１０６で、ステップ１１０２で選択されたイントラ予測モードの主な方向が垂直か水平かを判定するために、プロセッサ２０５が使用される。テストステップ１１０６は、イントラ予測モードｐｒｅｄＭｏｄｅＩｎｔｒａを１８のしきい値と比較し、ｐｒｅｄＭｏｄｅＩｎｔｒａがしきい値以上である場合、主な方向は垂直であり、そうでない場合、主な方向は水平である。
【０１１０】
イントラ予測モードの主な方向が垂直である場合、制御は角度半減ステップ１１０８に移る。イントラ予測モードの主な方向が水平である場合、制御は角度倍増ステップ１１１２に移る。以下のステップ１１０８、１１１０、１１１２、および１１１４において、方法１１００は、４：２：２のクロマフォーマットに起因してイントラ予測角度を調整するために使用される。イントラ予測角度は、選択されたイントラ予測モードの主な方向に応じて調整される。主として垂直イントラ予測モードの場合、ステップ１１０４で決定された角度パラメータは、クロムサンプルグリッドを補償するために低減される。角度半減ステップ１１０８で、ステップ１１０４で決定された角度パラメータを（たとえば、１ビットだけ右シフトを実行することによって）半減することによって、イントラ予測角度を半減するために、プロセッサ２０５が使用される。加えて、（逆角度が定義される）イントラ予測モード１８〜２５の場合、ステップ１１０８は逆角度を倍増する。ステップ１１０８により、ルーマサンプルグリッド上で実現される角度と最も近く一致する新しい角度がもたらされる。たとえば、ステップ１１０８は、角度パラメータを［０、２、５、９、１３、１７、２１、２６、３２］から［０、１、２、４、６、８、１０、１３、１６］にマッピングすることができ、逆角度を［−２５６、−３１５、−３９０、−４８２、−６３０、−９１０、−１６３８、−４０９６］から［−５１２、−６３０、−７８０、−９６４、−１２６０、−１８２０、−３２７６、−８１９２］にマッピングすることができる。または、常に角度パラメータは下向きに、逆角度パラメータは上向きに量子化されてもよく、その逆も同様である。
【０１１１】
角度半減ステップ１１０８からもたらされた角度パラメータを、下記の参照サンプル生成ステップ１１２４およびイントラ予測サンプル生成ステップ１１２６に適用することの１つの欠点は、角度パラメータおよび逆角度用のさらなる可能値が今や存在することである。さらなる可能値により、ステップ１１２４およびステップ１１２６における複雑さが増大する結果になる。図１０のサンプルブロック生成器１０１０を参照して述べたような、ステップ１１２６用の並列実装を提供する構成は、したがって、さらなる可能値をサポートするために複雑さを増大したはずである。
【０１１２】
方法１１００は角度量子化ステップ１１１０で引き続き、ステップ１１０８で決定された半減角度パラメータを角度パラメータ用の最も近い既存の値に量子化するために、プロセッサ２０５が使用される。同様にステップ１１１０で、逆角度を逆角度用の最も近い既存の値に量子化するために、プロセッサ２０５が使用される。
【０１１３】
イントラ予測モード２５の場合、角度パラメータは−２から−１に調整され、逆角度はステップ１１１０で−４０９６から−８１９２に倍増されている。次いで、ステップ１１１２は、角度パラメータを−１から０に量子化しても良い。そのような場合、イントラ予測モード２５がイントラ予測モード２６（純粋な垂直イントラ予測）と同一になるので、逆角度はイントラ予測モード２５についてもはや定義されない。イントラ予測モード２６は、図８Ｂを参照して記載された逆角度を使用して参照サンプルを生成するための機構を必要としない。
【０１１４】
一構成では、角度半減ステップ１１０８および角度量子化ステップ１１１０は、複雑さを低減するための単一の表参照動作に組み合わされても良い。たとえば、組み合わされたステップ１１０８と１１１０は、角度パラメータを［０、２、５、９、１３、１７、２１、２６、３２］から［０、０、２、５、５、９、９、１３、１７］にマッピングすることができ、逆角度を［−２５６、−３１５、−３９０、−４８２、−６３０、−９１０、−１６３８、−４０９６］から［−４８２、−６３０、−９１０、−９１０、−１６３８、−１６３８、−４０９６、Ｎ／Ａ］にマッピングすることができる。
【０１１５】
角度パラメータの半減中の丸めの差異に起因して、他の構成が異なるマッピングを生成しても良い。角度パラメータの半減中の丸めの差異に起因して異なるマッピングを生成する構成では、量子化から異なる出力が生成されるが、角度パラメータおよび逆角度用に既存の値のみを使用する特性は保持される。
【０１１６】
主として水平イントラ予測モードの場合、角度パラメータは、クロムサンプルグリッドを補償するために増加される。角度倍増ステップ１１１２で、ステップ１１０４で決定された角度パラメータを（たとえば、１ビットだけ左シフトを実行することによって）倍増することによって、イントラ予測角度を倍増するために、プロセッサ２０５が使用される。ステップ１１１２により、ルーマサンプルグリッド上で実現された角度と厳密に一致する新しい角度がもたらされる。さらにまた、角度倍増ステップ１１１２でからの角度パラメータを、参照サンプル生成ステップ１１２４およびイントラ予測サンプル生成ステップ１１２６に適用することの１つの欠点は、角度パラメータおよび逆角度用のさらなる可能値が今や存在することである。さらなる可能値により、ステップ１１２４およびステップ１１２６における複雑さが増大する結果になる。さらにまた、図１０のサンプルブロック生成器１０１０を参照して前述したような、ステップ１１２６用の並列実装を提供する構成は、したがって、さらなる可能値をサポートするために複雑さを増大したはずである。次いで、角度量子化ステップ１１１０で、ステップ１１１２で決定された倍増角度パラメータを角度パラメータ用の最も近い既存の値に量子化するために、プロセッサ２０５が使用される。同様にステップ１１１４で、逆角度を逆角度用の最も近い既存の値に量子化するために、プロセッサ２０５が使用される。
【０１１７】
角度パラメータを倍増することのさらなる欠点は、角度パラメータ用の許容可能範囲が＋／−３２であり、角度パラメータを倍増すると、許容可能範囲からはずれる値がもたらされることである。許容可能範囲は、左参照サンプルの範囲を決定する。
【０１１８】
左参照サンプル（たとえば、８０６）のサイズを増大させると、イントラ予測用の予測ユニット（ＰＵ）から空間的にかなり離れるサンプルを使用する結果になる。使用されるサンプルは、予測ユニット（ＰＵ）のコンテンツと相関しないはずであり、したがってコーディング効率に寄与しない。その代わりに、角度パラメータおよび逆角度の調整が可能である。
【０１１９】
方法１１００は角度パラメータ最大値超過テストステップ１１１６に引き続き、そこで、（倍増後の）角度パラメータが３２より大きいかどうかをテストするために、プロセッサ２０５が使用される。または、ステップ１１１６で、プロセッサ２０５は、角度パラメータが倍増前に１６より大きいかどうかをテストすることができ、これは、（倍増後の）角度パラメータが３２より大きいかどうかをテストすることと同じ結果をもたらす。
【０１２０】
ステップ１１１６で最大角度パラメータを超えたケースは、主として水平イントラ予測モード２〜５に対応し、制御は角度調整ステップ１１１８に移る。角度調整ステップ１１１８で、角度パラメータを３２に設定し、逆角度を−２５６に設定するために、プロセッサ２０５が使用される。ステップ１１１６の条件が満足されなかったケースでは、制御は角度パラメータ最小値未満テストステップ１１２０に移る。
【０１２１】
角度倍増ステップ１１１２、角度量子化ステップ１１１４、ならびにステップ１１１６および１１１８は、複雑さを低減するための単一の表参照動作に組み合わされても良い。たとえば、組み合わされたステップ１１１２と１１１４は、角度パラメータを［０、２、５、９、１３、１７、２１、２６、３２］から［０、５、９、１７、２６、３２、３２、３２、３２］にマッピングすることができ、逆角度を［−２５６、−３１５、−３９０、−４８２、−６３０、−９１０、−１６３８、−４０９６］から［−２５６、−２５６、−２５６、−２５６、−３１５、−４８２、−９１０、−１６３８］にマッピングすることができる。
【０１２２】
逆角度の半減中の丸めの差異に起因して、他の構成により異なるマッピングを生成される場合がある。逆角度の半減中の丸めの差異に起因して異なるマッピングを生成する構成では、量子化から異なる出力が生成されるが、角度パラメータおよび逆角度用に既存の値のみを使用する特性は保持される。または、いくつかの構成では、常に角度パラメータは下向きに、逆角度パラメータは上向きに量子化されてもよく、その逆も同様である。
【０１２３】
角度パラメータ最小値未満テストステップ１１２０で、（倍増後の）角度パラメータが−３２より小さいかどうかをテストするために、プロセッサ２０５が使用される。または、ステップ１１２０は、角度パラメータが倍増前に−１６より小さいかどうかをテストすることもでき、これは、（倍増後の）角度パラメータが−３２より小さいかどうかをテストすることと同じ結果をもたらす。低しきい値超過条件が満足されたケースは、主として水平イントラ予測モード１５〜１７に対応する。低しきい値を超えた場合、方法１１００は、角度および方向調整ステップ１１２２に進む。そうでない場合、方法１１００はステップ１１２４に進む。
【０１２４】
ステップ１１２２で、角度パラメータ、逆角度、およびしきい値を調整するために、プロセッサ２０５が使用される。ステップ１１２２はイントラ予測モード１８〜２０の角度パラメータおよび逆角度に対応するように、角度パラメータおよび逆角度を設定する。ステップ１１２２はまた、しきい値を１８から１５に調整する。イントラ予測モード１８〜２０は主として垂直であり、したがって、調整されたしきい値により、イントラ予測モード１５、１６、および１７の方向が主として水平から主として垂直に変化する結果になる。
【０１２５】
上述したように、変化しきい値は、主として水平イントラ予測モードと主として垂直イントラ予測モードとの間の境界を示す。変化しきい値は、ルーマサンプルグリッドについて、（かつ４：２：２以外のクロマフォーマットが使用されているときのクロマチャネルについて）１８の値を有する。４：２：２のクロマフォーマットが使用されているときのクロマチャネルの場合、変化しきい値は１５の値を有する。同様に上述したように、調整されたイントラ予測の角度パラメータが所定の値（たとえば、３２）を超えた場合、変化しきい値は修正されても良い。
【０１２６】
参照サンプル生成ステップ１１２４で、参照サンプル生成器１００８は、プロセッサ２０５の実行下で、角度パラメータおよび（定義された場合）逆角度を使用して、参照サンプルを生成する。調整されたしきい値は、参照サンプルを生成するために使用されても良い。
【０１２７】
次いで、イントラ予測サンプル生成ステップ１１２６で、サンプルブロック生成器１０１０は、プロセッサ２０５の実行下で、ステップ１１２４で決定された参照サンプルおよび角度パラメータ１０２４を使用して、イントラ予測されたサンプルのアレイの形態で予測ユニット（ＰＵ）４６４を生成するために使用される。イントラ予測されたサンプルは、ステップ１１１８および１１２２のいずれかで調整されたイントラ予測角度に従って、かつ上述された変化しきい値に従って、垂直イントラ予測モードを使用して、ステップ１１２６で生成される。
【０１２８】
図１２は、イントラ予測モード（ｐｒｅｄＭｏｄｅＩｎｔｒａ）をイントラ予測角度（ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）および逆角度（ｉｎｖＡｎｇｌｅ）に変換し、イントラ予測角度および逆角度を量子化するための表を示す。図１２の表は、図１１のステップ１１３０からの結果（すなわち、ステップ１１２４に入力される角度パラメータ値および逆角度値）と一致し、ステップ１１２０および１１２２は省略される。また、（ステップ１１２０および１１２２を除く）ステップ１１３０は、表１２を使用してイントラ予測モード用の角度パラメータおよび逆角度を決定する表参照動作によって置き換えられても良い。図１２と一致する構成についての例示的な「作業ドラフト」テキストが付録Ａに含まれる。
【０１２９】
図１３は、イントラ予測モード（ｐｒｅｄＭｏｄｅＩｎｔｒａ）をイントラ予測角度（ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）および逆角度（ｉｎｖＡｎｇｌｅ）に変換し、イントラ予測角度および逆角度、ならびにブロックタイプによって決定された水平イントラ予測モードと垂直イントラ予測モードとの間の境界またはしきい値を量子化するための表を示す。図１３の表は、図１１のステップ１１３０からの結果（すなわち、ステップ１１２４に入力される角度パラメータ値および逆角度値）と一致する。ステップ１１３０は、表１３の表を使用してイントラ予測モード用の角度パラメータおよび逆角度を決定する表参照動作によって置き換えられても良い。図１３と一致する構成についての例示的な「作業ドラフト」テキストが付録Ｂに含まれる。
【０１３０】
図１４は、イントラ予測モード（ｐｒｅｄＭｏｄｅＩｎｔｒａ）をイントラ予測角度（ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）および逆角度（ｉｎｖＡｎｇｌｅ）に変換し、イントラ予測角度および逆角度を代替的に量子化するための表を示す。図１４の表は、図１１のステップ１１３０からの結果（すなわち、ステップ１１２４に入力される角度パラメータ値および逆角度値）と一致し、ステップ１１２０および１１２２は省略され、角度半減ステップ１１０８において代替的にマッピングする。代替的なマッピングは、（正／負の対称性が活用され、角度パラメータ用の正の値が列挙されるが、代替的なマッピングは負の角度パラメータを含むように明示的に拡張され得ると仮定すると、）［０、２、５、９、１３、１７、２１、２６、３２］の角度パラメータを、［０、２、２、５、５、９、９、１３、１７］の角度パラメータにマッピングする。方法１１００の一構成では、（ステップ１１２０および１１２２を除く）ステップ１１３０は、表１４の表を使用してイントラ予測モード用の角度パラメータおよび逆角度を決定する表参照動作によって置き換えられても良い。図１４と一致する構成についての例示的な「作業ドラフト」テキストが付録Ｃに含まれる。
【０１３１】
図１５は、イントラ予測モード（ｐｒｅｄＭｏｄｅＩｎｔｒａ）をイントラ予測角度（ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）および逆角度（ｉｎｖＡｎｇｌｅ）に変換し、イントラ予測角度および逆角度、ならびにブロックタイプによって決定された水平イントラ予測モードと垂直イントラ予測モードとの間の境界またはしきい値を代替的に量子化するための表を示す。図１５の表は、図１１のステップ１１３０からの結果（すなわち、ステップ１１２４に入力される角度パラメータ値および逆角度値）と一致し、角度半減ステップ１１０８において代替的にマッピングする。代替的なマッピングは、（正／負の対称性が活用され、角度パラメータ用の正の値が列挙されるが、代替的なマッピングは負の角度パラメータを含むように明示的に拡張され得ると仮定すると、）［０、２、５、９、１３、１７、２１、２６、３２］の角度パラメータを、［０、２、２、５、５、９、９、１３、１７］の角度パラメータにマッピングする。方法１１００の一構成では、ステップ１１３０は、表１３の表を使用してイントラ予測モード用の角度パラメータおよび逆角度を決定する表参照動作によって置き換えられても良い。図１５と一致する構成についての例示的な「作業ドラフト」テキストが付録Ｄに含まれる。
【０１３２】
図１４の表および図１５の表のうちのいずれかと一致する構成は、逆角度が定義されるイントラ予測モードの範囲（すなわち、イントラ予測モード１１〜２５）が、４：２：２のクロマフォーマットを有するクロマチャネルのケースと、ルーマチャネルまたは４：２：２ではないクロマフォーマットのケースとの間で同じであるという利点を有する。図１４の表および図１５の表のうちのいずれかと一致する構成は、参照サンプル生成ステップ１１２４で逆角度が適用されるべきかどうかを判定する条件チェックを導入する必要性を回避する。
【０１３３】
図１２〜図１５の表のうちのいずれかと一致する構成は、任意のイントラ予測モード用の角度パラメータおよび逆角度を決定するために単一の表参照のみが必要であり、さらなる中間の（または「調整された」）パラメータが必要ではないという利点を有する。
【０１３４】
一構成では、イントラ予測モードは、角度パラメータおよび逆角度を決定する前に、調整されたイントラ予測モードに再マッピングされても良い。調整されたイントラ予測モードは、方法１１００のステップ１１０４〜１１２６で使用される。イントラ予測モードを調整されたイントラ予測モードに再マッピングすると、再マッピングから生じる中間の（すなわち「調整された」）イントラ予測モードが導入される。イントラ予測モードを調整されたイントラ予測モードに再マッピングすると、イントラ予測モードを調整されたイントラ予測モードに再マッピングするさらなる表も導入され、（たとえば、ステップ１１０２の一部として）再マッピングを実行するためにさらなる表参照が必要になる。イントラ予測モードが調整されたイントラ予測モードに再マッピングされる構成では、角度パラメータおよび逆角度のさらなる調整は必要ではなく、したがって、ステップ１１０５〜１１２２は必要ではない。
【０１３５】
本明細書に記載された構成により、イントラ予測される予測ユニット（ＰＵ）について高いコーディング効率を維持しながら、複雑さが低減された、４：２：２のクロマフォーマットをサポートするビデオエンコーダ１１４およびビデオデコーダ１３４の実装形態が可能になる。
【産業上の利用可能性】
【０１３６】
上述の構成は、コンピュータ業界およびデータ処理業界に適用可能であり、特に、ビデオ信号などの信号の符号化および復号のためのデジタル信号処理に適用可能である。
【０１３７】
上記は本開示のいくつかの実施形態を記載するにすぎず、本発明の範囲および趣旨から逸脱することなく、それらに対して修正および／または変更が可能であり、実施形態は限定的ではなく例示的である。
【０１３８】
本明細書のコンテキストでは、「備えるｃｏｍｐｒｉｓｉｎｇ）」という単語は、「必ずしも単独ではないが主に含む」または「有する」または「含む」を意味し、「のみから構成される」を意味しない。「備える（ｃｏｍｐｒｉｓｅ）」および「備える（ｃｏｍｐｒｉｓｅｓ）」などの「備える（ｃｏｍｐｒｉｓｉｎｇ）」という単語の変形は、対応的に変化する意味を有する。
【０１３９】
付録Ａ
イントラ予測されたサンプルを生成する実装形態
８．４．４．２．６  ＩＮＴＲＡ＿ＡＮＧＵＬＡＲ２〜ＩＮＴＲＡ＿ＡＮＧＵＬＡＲ３４の範囲のイントラ予測モードの仕様
このプロセスへの入力は、
−イントラ予測モードｐｒｅｄＭｏｄｅＩｎｔｒａ
−隣接サンプルｐ［ｘ］［ｙ］、ｘ＝−１、ｙ＝−１〜ｎＴｂＳ＊２−１、およびｘ＝０〜ｎＴｂＳ＊２−１、ｙ＝−１
−変換ブロックサイズを指定する変数ｎＴｂＳ
−現在ブロックの色成分を指定する変数ｃＩｄｘ
である。
このプロセスの出力は、予測されたサンプルｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］、ｘ、ｙ＝０〜ｎＴｂＳ−１である。
図８−２は、合計３３個のイントラ角度を示し、表８−４は、ｐｒｅｄＭｏｄｅＩｎｔｒａと角度パラメータｉｎｔｒａＰｒｅｄＡｎｇｌｅとの間のマッピングテーブルを指定する。
【０１４０】
2018157587.tif 000007
図８−２−イントラ予測角度定義（情報）
【０１４１】
表８−４−ｉｎｔｒａＰｒｅｄＡｎｇｌｅの仕様
【０１４２】
【表１】
2018157587.tif 000008
【０１４３】
表８−５はさらに、ｐｒｅｄＭｏｄｅＩｎｔｒａと逆角度パラメータｉｎｖＡｎｇｌｅとの間のマッピングテーブルを指定する。
【０１４４】
表８−５−ｉｎｖＡｎｇｌｅの仕様
【０１４５】
【表２】
2018157587.tif 000009
【０１４６】
−ＣｈｒｏｍａＡｒｒａｙＴｙｐｅが２に等しくないか又はｃＩｄｘが０に等しいときにｐｒｅｄＭｏｄｅＩｎｔｒａが１８以上である場合、または、ＣｈｒｏｍａＡｒｒａｙＴｙｐｅが２に等しく且つｃＩｄｘが０に等しくないときにｐｒｅｄＭｏｄｅＩｎｔｒａが１５以上である場合に、以下の順序付けられたステップが適用される：
【０１４７】
１．参照サンプルアレイｒｅｆ［ｘ］が以下のように指定される：
−以下が適用される：
ｒｅｆ［ｘ］＝ｐ［−１＋ｘ］［−１］、ｘ＝０〜ｎＴｂＳ  （８−４７）
−ｉｎｔｒａＰｒｅｄＡｎｇｌｅが０より小さい場合、主要な参照サンプルアレイが以下のように拡張される：
−（ｎＴｂＳ＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５が−１より小さいとき、
ｒｅｆ［ｘ］＝ｐ［−１］［−１＋（（ｘ＊ｉｎｖＡｎｇｌｅ＋１２８）＞＞８）］、ｘ＝−１〜（ｎＴｂＳ＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５  （８−４８）
−そうでない場合、
ｒｅｆ［ｘ］＝ｐ［−１＋ｘ］［−１］、ｘ＝ｎＴｂＳ＋１〜２＊ｎＴｂＳ  （８−４９）
【０１４８】
２．予測サンプルの値ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］、ｘ、ｙ＝０〜ｎＴｂＳ−１が、以下のように導出される：
ａ．インデックス変数ｉＩｄｘおよび倍率ｉＦａｃｔが以下のように導出される：
ｉＩｄｘ＝（（ｙ＋１）＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５  （８−５０）
ｉＦａｃｔ＝（（ｙ＋１）＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＆３１  （８−５１）
ｂ．ｉＦａｃｔの値に応じて、以下が適用される：
−ｉＦａｃｔが０に等しくない場合、予測サンプルｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］の値が以下のように導出される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝（（３２−ｉＦａｃｔ）＊ｒｅｆ［ｘ＋ｉＩｄｘ＋１］＋ｉＦａｃｔ＊ｒｅｆ［ｘ＋ｉＩｄｘ＋２］＋１６）＞＞５  （８−５２）
−そうでない場合、予測サンプルｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］の値が以下のように導出される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝ｒｅｆ［ｘ＋ｉＩｄｘ＋１］  （８−５３）
ｃ．ｐｒｅｄＭｏｄｅＩｎｔｒａが２６に等しく（垂直）、ｃＩｄｘが０に等しく、ｎＴｂＳが３２より小さい場合、ｘ＝０、ｙ＝０〜ｎＴｂＳ−１で以下のフィルタリングが適用される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝Ｃｌｉｐ１Ｙ（ｐ［ｘ］［−１］＋（（ｐ［−１］［ｙ］−ｐ［−１］［−１］）＞＞１））  （８−５４）
−そうでない場合、以下の順序付けられたステップが適用される：
【０１４９】
１．参照サンプルアレイｒｅｆ［ｘ］が以下のように指定される：
−以下が適用される：
ｒｅｆ［ｘ］＝ｐ［−１］［−１＋ｘ］、ｘ＝０〜ｎＴｂＳ  （８−５５）
−ｉｎｔｒａＰｒｅｄＡｎｇｌｅが０より小さい場合、主要な参照サンプルアレイが以下のように拡張される：
−（ｎＴｂＳ＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５が−１より小さいとき、
ｒｅｆ［ｘ］＝ｐ［−１＋（（ｘ＊ｉｎｖＡｎｇｌｅ＋１２８）＞＞８）］［−１］、ｘ＝−１〜（ｎＴｂＳ＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５  （８−５６）
−そうでない場合、
ｒｅｆ［ｘ］＝ｐ［−１］［−１＋ｘ］、ｘ＝ｎＴｂＳ＋１〜２＊ｎＴｂＳ  （８−５７）
【０１５０】
２．予測サンプルの値ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］、ｘ、ｙ＝０〜ｎＴｂＳ−１が、以下のように導出される：
ａ．インデックス変数ｉＩｄｘおよび倍率ｉＦａｃｔが以下のように導出される：
ｉＩｄｘ＝（（ｘ＋１）＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５  （８−５８）
ｉＦａｃｔ＝（（ｘ＋１）＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＆３１  （８−５９）
ｂ．ｉＦａｃｔの値に応じて、以下が適用される：
−ｉＦａｃｔが０に等しくない場合、予測サンプルｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］の値が以下のように導出される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝（（３２−ｉＦａｃｔ）＊ｒｅｆ［ｙ＋ｉＩｄｘ＋１］＋ｉＦａｃｔ＊ｒｅｆ［ｙ＋ｉＩｄｘ＋２］＋１６）＞＞５  （８−６０）
−そうでない場合、予測サンプルｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］の値が以下のように導出される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝ｒｅｆ［ｙ＋ｉＩｄｘ＋１］  （８−６１）
ｃ．ｐｒｅｄＭｏｄｅＩｎｔｒａが１０に等しく（水平）、ｃＩｄｘが０に等しく、ｎＴｂＳが３２より小さい場合、ｘ＝０〜ｎＴｂＳ−１、ｙ＝０で以下のフィルタリングが適用される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝Ｃｌｉｐ１Ｙ（ｐ［−１］［ｙ］＋（（ｐ［ｘ］［−１］−ｐ［−１］［−１］）＞＞１））  （８−６２）
付録Ａの終了
【０１５１】
付録Ｂ
イントラ予測されたサンプルを生成する代替実装形態
８．４．４．２．６  ＩＮＴＲＡ＿ＡＮＧＵＬＡＲ２〜ＩＮＴＲＡ＿ＡＮＧＵＬＡＲ３４の範囲のイントラ予測モードの仕様
このプロセスへの入力は、
−イントラ予測モードｐｒｅｄＭｏｄｅＩｎｔｒａ
−隣接サンプルｐ［ｘ］［ｙ］、ｘ＝−１、ｙ＝−１〜ｎＴｂＳ＊２−１、およびｘ＝０〜ｎＴｂＳ＊２−１、ｙ＝−１
−変換ブロックサイズを指定する変数ｎＴｂＳ
−現在ブロックの色成分を指定する変数ｃＩｄｘ
である。
このプロセスの出力は、予測されたサンプルｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］、ｘ、ｙ＝０〜ｎＴｂＳ−１である。
図８−２は、合計３３個のイントラ角度を示し、表８−４は、ｐｒｅｄＭｏｄｅＩｎｔｒａと角度パラメータｉｎｔｒａＰｒｅｄＡｎｇｌｅとの間のマッピングテーブルを指定する。
【０１５２】
2018157587.tif 000010
【０１５３】
図８−２−イントラ予測角度定義（情報）
【０１５４】
表８−４−ｉｎｔｒａＰｒｅｄＡｎｇｌｅの仕様
【０１５５】
【表３】
2018157587.tif 000011
【０１５６】
表８−５はさらに、ｐｒｅｄＭｏｄｅＩｎｔｒａと逆角度パラメータｉｎｖＡｎｇｌｅとの間のマッピングテーブルを指定する。
表８−５−ｉｎｖＡｎｇｌｅの仕様
【０１５７】
【表４】
2018157587.tif 000012
【０１５８】
−ＣｈｒｏｍａＡｒｒａｙＴｙｐｅが２に等しくないか、もしくはｃＩｄｘが０に等しいときにｐｒｅｄＭｏｄｅＩｎｔｒａが１８以上である場合、または、ＣｈｒｏｍａＡｒｒａｙＴｙｐｅが２に等しく且つｃＩｄｘが０に等しくないときに、ｐｒｅｄＭｏｄｅＩｎｔｒａが１５以上である場合、以下の順序付けられたステップが適用される：
【０１５９】
３．参照サンプルアレイｒｅｆ［ｘ］が以下のように指定される：
−以下が適用される：
ｒｅｆ［ｘ］＝ｐ［−１＋ｘ］［−１］、ｘ＝０〜ｎＴｂＳ  （８−４７）
−ｉｎｔｒａＰｒｅｄＡｎｇｌｅが０より小さい場合、主要な参照サンプルアレイが以下のように拡張される：
−（ｎＴｂＳ＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５が−１より小さいとき、
ｒｅｆ［ｘ］＝ｐ［−１］［−１＋（（ｘ＊ｉｎｖＡｎｇｌｅ＋１２８）＞＞８）］、ｘ＝−１〜（ｎＴｂＳ＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５  （８−４８）
−そうでない場合、
ｒｅｆ［ｘ］＝ｐ［−１＋ｘ］［−１］、ｘ＝ｎＴｂＳ＋１〜２＊ｎＴｂＳ  （８−４９）
【０１６０】
４．予測サンプルの値ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］、ｘ、ｙ＝０〜ｎＴｂＳ−１が、以下のように導出される：
ａ．インデックス変数ｉＩｄｘおよび倍率ｉＦａｃｔが以下のように導出される：
ｉＩｄｘ＝（（ｙ＋１）＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５  （８−５０）
ｉＦａｃｔ＝（（ｙ＋１）＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＆３１  （８−５１）
ｂ．ｉＦａｃｔの値に応じて、以下が適用される：
−ｉＦａｃｔが０に等しくない場合、予測サンプルｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］の値が以下のように導出される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝（（３２−ｉＦａｃｔ）＊ｒｅｆ［ｘ＋ｉＩｄｘ＋１］＋ｉＦａｃｔ＊ｒｅｆ［ｘ＋ｉＩｄｘ＋２］＋１６）＞＞５  （８−５２）
−そうでない場合、予測サンプルｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］の値が以下のように導出される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝ｒｅｆ［ｘ＋ｉＩｄｘ＋１］  （８−５３）
ｃ．ｐｒｅｄＭｏｄｅＩｎｔｒａが２６に等しく（垂直）、ｃＩｄｘが０に等しく、ｎＴｂＳが３２より小さい場合、ｘ＝０、ｙ＝０〜ｎＴｂＳ−１で以下のフィルタリングが適用される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝Ｃｌｉｐ１Ｙ（ｐ［ｘ］［−１］＋（（ｐ［−１］［ｙ］−ｐ［−１］［−１］）＞＞１））  （８−５４）
−そうでない場合、以下の順序付けられたステップが適用される：
【０１６１】
３．参照サンプルアレイｒｅｆ［ｘ］が以下のように指定される：
−以下が適用される：
ｒｅｆ［ｘ］＝ｐ［−１］［−１＋ｘ］、ｘ＝０〜ｎＴｂＳ  （８−５５）
−ｉｎｔｒａＰｒｅｄＡｎｇｌｅが０より小さい場合、主要な参照サンプルアレイが以下のように拡張される：
−（ｎＴｂＳ＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５が−１より小さいとき、
ｒｅｆ［ｘ］＝ｐ［−１＋（（ｘ＊ｉｎｖＡｎｇｌｅ＋１２８）＞＞８）］［−１］、ｘ＝−１〜（ｎＴｂＳ＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５  （８−５６）
−そうでない場合、
ｒｅｆ［ｘ］＝ｐ［−１］［−１＋ｘ］、ｘ＝ｎＴｂＳ＋１〜２＊ｎＴｂＳ  （８−５７）
【０１６２】
４．予測サンプルの値ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］、ｘ、ｙ＝０〜ｎＴｂＳ−１が、以下のように導出される：
ｄ．インデックス変数ｉＩｄｘおよび倍率ｉＦａｃｔが以下のように導出される：
ｉＩｄｘ＝（（ｘ＋１）＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５  （８−５８）
ｉＦａｃｔ＝（（ｘ＋１）＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＆３１  （８−５９）
ｅ．ｉＦａｃｔの値に応じて、以下が適用される：
−ｉＦａｃｔが０に等しくない場合、予測サンプルｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］の値が以下のように導出される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝（（３２−ｉＦａｃｔ）＊ｒｅｆ［ｙ＋ｉＩｄｘ＋１］＋ｉＦａｃｔ＊ｒｅｆ［ｙ＋ｉＩｄｘ＋２］＋１６）＞＞５  （８−６０）
−そうでない場合、予測サンプルｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］の値が以下のように導出される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝ｒｅｆ［ｙ＋ｉＩｄｘ＋１］  （８−６１）
ｆ．ｐｒｅｄＭｏｄｅＩｎｔｒａが１０に等しく（水平）、ｃＩｄｘが０に等しく、ｎＴｂＳが３２より小さい場合、ｘ＝０〜ｎＴｂＳ−１、ｙ＝０で以下のフィルタリングが適用される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝Ｃｌｉｐ１Ｙ（ｐ［−１］［ｙ］＋（（ｐ［ｘ］［−１］−ｐ［−１］［−１］）＞＞１））  （８−６２）
付録Ｂの終了
【０１６３】
付録Ｃ
イントラ予測されたサンプルを生成する代替実装形態
８．４．４．２．６  ＩＮＴＲＡ＿ＡＮＧＵＬＡＲ２〜ＩＮＴＲＡ＿ＡＮＧＵＬＡＲ３４の範囲のイントラ予測モードの仕様
このプロセスへの入力は、
−イントラ予測モードｐｒｅｄＭｏｄｅＩｎｔｒａ
−隣接サンプルｐ［ｘ］［ｙ］、ｘ＝−１、ｙ＝−１〜ｎＴｂＳ＊２−１、およびｘ＝０〜ｎＴｂＳ＊２−１、ｙ＝−１
−変換ブロックサイズを指定する変数ｎＴｂＳ
−現在ブロックの色成分を指定する変数ｃＩｄｘ
である。
このプロセスの出力は、予測されたサンプルｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］、ｘ、ｙ＝０〜ｎＴｂＳ−１である。
図８−２は、合計３３個のイントラ角度を示し、表８−４は、ｐｒｅｄＭｏｄｅＩｎｔｒａと角度パラメータｉｎｔｒａＰｒｅｄＡｎｇｌｅとの間のマッピングテーブルを指定する。
【０１６４】
2018157587.tif 000013
【０１６５】
図８−２−イントラ予測角度定義（参考情報）
【０１６６】
表８−４−ｉｎｔｒａＰｒｅｄＡｎｇｌｅの仕様
【０１６７】
【表５】
2018157587.tif 000014
【０１６８】
表８−５はさらに、ｐｒｅｄＭｏｄｅＩｎｔｒａと逆角度パラメータｉｎｖＡｎｇｌｅとの間のマッピングテーブルを指定する。
【０１６９】
表８−５−ｉｎｖＡｎｇｌｅの仕様
【０１７０】
【表６】
2018157587.tif 000015
【０１７１】
−ＣｈｒｏｍａＡｒｒａｙＴｙｐｅが２に等しくないか又はｃＩｄｘが０に等しいときでｐｒｅｄＭｏｄｅＩｎｔｒａが１８以上である場合、または、ＣｈｒｏｍａＡｒｒａｙＴｙｐｅが２に等しく且つｃＩｄｘが０に等しくないときでｐｒｅｄＭｏｄｅＩｎｔｒａが１５以上である場合、以下の順序付けられたステップが適用される：
【０１７２】
５．参照サンプルアレイｒｅｆ［ｘ］が以下のように指定される：
−以下が適用される：
ｒｅｆ［ｘ］＝ｐ［−１＋ｘ］［−１］、ｘ＝０〜ｎＴｂＳ  （８−４７）
−ｉｎｔｒａＰｒｅｄＡｎｇｌｅが０より小さい場合、主要な参照サンプルアレイが以下のように拡張される：
−（ｎＴｂＳ＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５が−１より小さいとき、
ｒｅｆ［ｘ］＝ｐ［−１］［−１＋（（ｘ＊ｉｎｖＡｎｇｌｅ＋１２８）＞＞８）］、ｘ＝−１〜（ｎＴｂＳ＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５  （８−４８）
−そうでない場合、
ｒｅｆ［ｘ］＝ｐ［−１＋ｘ］［−１］、ｘ＝ｎＴｂＳ＋１〜２＊ｎＴｂＳ  （８−４９）
【０１７３】
６．予測サンプルの値ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］、ｘ、ｙ＝０〜ｎＴｂＳ−１、が以下のように導出される：
ａ．インデックス変数ｉＩｄｘおよび倍率ｉＦａｃｔが以下のように導出される：
ｉＩｄｘ＝（（ｙ＋１）＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５  （８−５０）
ｉＦａｃｔ＝（（ｙ＋１）＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＆３１  （８−５１）
ｂ．ｉＦａｃｔの値に応じて、以下が適用される：
−ｉＦａｃｔが０に等しくない場合、予測サンプルｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］の値が以下のように導出される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝（（３２−ｉＦａｃｔ）＊ｒｅｆ［ｘ＋ｉＩｄｘ＋１］＋ｉＦａｃｔ＊ｒｅｆ［ｘ＋ｉＩｄｘ＋２］＋１６）＞＞５  （８−５２）
−そうでない場合、予測サンプルｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］の値が以下のように導出される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝ｒｅｆ［ｘ＋ｉＩｄｘ＋１］  （８−５３）
ｃ．ｐｒｅｄＭｏｄｅＩｎｔｒａが２６に等しく（垂直）、ｃＩｄｘが０に等しく、ｎＴｂＳが３２より小さい場合、ｘ＝０、ｙ＝０〜ｎＴｂＳ−１で以下のフィルタリングが適用される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝Ｃｌｉｐ１Ｙ（ｐ［ｘ］［−１］＋（（ｐ［−１］［ｙ］−ｐ［−１］［−１］）＞＞１））  （８−５４）
−そうでない場合、以下の順序付けられたステップが適用される：
【０１７４】
５．参照サンプルアレイｒｅｆ［ｘ］が以下のように指定される：
−以下が適用される：
ｒｅｆ［ｘ］＝ｐ［−１］［−１＋ｘ］、ｘ＝０〜ｎＴｂＳ  （８−５５）
−ｉｎｔｒａＰｒｅｄＡｎｇｌｅが０より小さい場合、主要な参照サンプルアレイが以下のように拡張される：
−（ｎＴｂＳ＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５が−１より小さいとき、
ｒｅｆ［ｘ］＝ｐ［−１＋（（ｘ＊ｉｎｖＡｎｇｌｅ＋１２８）＞＞８）］［−１］、ｘ＝−１〜（ｎＴｂＳ＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５  （８−５６）
−そうでない場合、
ｒｅｆ［ｘ］＝ｐ［−１］［−１＋ｘ］、ｘ＝ｎＴｂＳ＋１〜２＊ｎＴｂＳ  （８−５７）
【０１７５】
６．予測サンプルの値ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］、ｘ、ｙ＝０〜ｎＴｂＳ−１が以下のように導出される：
ｇ．インデックス変数ｉＩｄｘおよび倍率ｉＦａｃｔが以下のように導出される：
ｉＩｄｘ＝（（ｘ＋１）＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５  （８−５８）
ｉＦａｃｔ＝（（ｘ＋１）＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＆３１  （８−５９）
ｈ．ｉＦａｃｔの値に応じて、以下が適用される：
−ｉＦａｃｔが０に等しくない場合、予測サンプルｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］の値が以下のように導出される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝（（３２−ｉＦａｃｔ）＊ｒｅｆ［ｙ＋ｉＩｄｘ＋１］＋ｉＦａｃｔ＊ｒｅｆ［ｙ＋ｉＩｄｘ＋２］＋１６）＞＞５  （８−６０）
−そうでない場合、予測サンプルｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］の値が以下のように導出される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝ｒｅｆ［ｙ＋ｉＩｄｘ＋１］  （８−６１）
ｉ．ｐｒｅｄＭｏｄｅＩｎｔｒａが１０に等しく（水平）、ｃＩｄｘが０に等しく、ｎＴｂＳが３２より小さい場合、ｘ＝０〜ｎＴｂＳ−１、ｙ＝０で以下のフィルタリングが適用される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝Ｃｌｉｐ１Ｙ（ｐ［−１］［ｙ］＋（（ｐ［ｘ］［−１］−ｐ［−１］［−１］）＞＞１））  （８−６２）
付録Ｃの終了
【０１７６】
付録Ｄ
イントラ予測されたサンプルを生成する代替実装形態
８．４．４．２．６  ＩＮＴＲＡ＿ＡＮＧＵＬＡＲ２〜ＩＮＴＲＡ＿ＡＮＧＵＬＡＲ３４の範囲のイントラ予測モードの仕様
このプロセスへの入力は、
−イントラ予測モードｐｒｅｄＭｏｄｅＩｎｔｒａ
−隣接サンプルｐ［ｘ］［ｙ］、ｘ＝−１、ｙ＝−１〜ｎＴｂＳ＊２−１、およびｘ＝０〜ｎＴｂＳ＊２−１、ｙ＝−１
−変換ブロックサイズを指定する変数ｎＴｂＳ
−現在ブロックの色成分を指定する変数ｃＩｄｘ
である。
このプロセスの出力は、予測されたサンプルｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］、ｘ、ｙ＝０〜ｎＴｂＳ−１である。
図８−２は、合計３３個のイントラ角度を示し、表８−４は、ｐｒｅｄＭｏｄｅＩｎｔｒａと角度パラメータｉｎｔｒａＰｒｅｄＡｎｇｌｅとの間のマッピングテーブルを指定する。
【０１７７】
2018157587.tif 000016
【０１７８】
図８−２−イントラ予測角度定義（参考情報）
【０１７９】
表８−４−ｉｎｔｒａＰｒｅｄＡｎｇｌｅの仕様
【０１８０】
【表７】
2018157587.tif 000017
【０１８１】
表８−５はさらに、ｐｒｅｄＭｏｄｅＩｎｔｒａと逆角度パラメータｉｎｖＡｎｇｌｅとの間のマッピングテーブルを指定する。
表８−５−ｉｎｖＡｎｇｌｅの仕様
【０１８２】
【表８】
2018157587.tif 000018
【０１８３】
−ＣｈｒｏｍａＡｒｒａｙＴｙｐｅが２に等しくないか又はｃＩｄｘが０に等しいときでｐｒｅｄＭｏｄｅＩｎｔｒａが１８以上である場合、または、ＣｈｒｏｍａＡｒｒａｙＴｙｐｅが２に等しく且つｃＩｄｘが０に等しくないときでｐｒｅｄＭｏｄｅＩｎｔｒａが１５以上である場合、以下の順序付けられたステップが適用される：
【０１８４】
７．参照サンプルアレイｒｅｆ［ｘ］が以下のように指定される：
−以下が適用される：
ｒｅｆ［ｘ］＝ｐ［−１＋ｘ］［−１］、ｘ＝０〜ｎＴｂＳ  （８−４７）
−ｉｎｔｒａＰｒｅｄＡｎｇｌｅが０より小さい場合、主要な参照サンプルアレイが以下のように拡張される：
−（ｎＴｂＳ＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５が−１より小さいとき、
ｒｅｆ［ｘ］＝ｐ［−１］［−１＋（（ｘ＊ｉｎｖＡｎｇｌｅ＋１２８）＞＞８）］、ｘ＝−１〜（ｎＴｂＳ＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５  （８−４８）
−そうでない場合、
ｒｅｆ［ｘ］＝ｐ［−１＋ｘ］［−１］、ｘ＝ｎＴｂＳ＋１〜２＊ｎＴｂＳ  （８−４９）
【０１８５】
８．予測サンプル値ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］、ｘ、ｙ＝０〜ｎＴｂＳ−１が以下のように導出される：
ａ．インデックス変数ｉＩｄｘおよび倍率ｉＦａｃｔが以下のように導出される：
ｉＩｄｘ＝（（ｙ＋１）＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５  （８−５０）
ｉＦａｃｔ＝（（ｙ＋１）＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＆３１  （８−５１）
ｂ．ｉＦａｃｔの値に応じて、以下が適用される：
−ｉＦａｃｔが０に等しくない場合、予測サンプルｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］の値が以下のように導出される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝（（３２−ｉＦａｃｔ）＊ｒｅｆ［ｘ＋ｉＩｄｘ＋１］＋ｉＦａｃｔ＊ｒｅｆ［ｘ＋ｉＩｄｘ＋２］＋１６）＞＞５  （８−５２）
−そうでない場合、予測サンプルｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］の値が以下のように導出される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝ｒｅｆ［ｘ＋ｉＩｄｘ＋１］  （８−５３）
ｃ．ｐｒｅｄＭｏｄｅＩｎｔｒａが２６に等しく（垂直）、ｃＩｄｘが０に等しく、ｎＴｂＳが３２より小さい場合、ｘ＝０、ｙ＝０〜ｎＴｂＳ−１で以下のフィルタリングが適用される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝Ｃｌｉｐ１Ｙ（ｐ［ｘ］［−１］＋（（ｐ［−１］［ｙ］−ｐ［−１］［−１］）＞＞１））  （８−５４）
−そうでない場合、以下の順序付けられたステップが適用される：
【０１８６】
７．参照サンプルアレイｒｅｆ［ｘ］が以下のように指定される：
−以下が適用される：
ｒｅｆ［ｘ］＝ｐ［−１］［−１＋ｘ］、ｘ＝０〜ｎＴｂＳ  （８−５５）
−ｉｎｔｒａＰｒｅｄＡｎｇｌｅが０より小さい場合、主要な参照サンプルアレイが以下のように拡張される：
−（ｎＴｂＳ＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５が−１より小さいとき、
ｒｅｆ［ｘ］＝ｐ［−１＋（（ｘ＊ｉｎｖＡｎｇｌｅ＋１２８）＞＞８）］［−１］、ｘ＝−１〜（ｎＴｂＳ＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５  （８−５６）
−そうでない場合、
ｒｅｆ［ｘ］＝ｐ［−１］［−１＋ｘ］、ｘ＝ｎＴｂＳ＋１〜２＊ｎＴｂＳ  （８−５７）
【０１８７】
８．予測サンプル値ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］、ｘ、ｙ＝０〜ｎＴｂＳ−１が以下のように導出される：
ｊ．インデックス変数ｉＩｄｘおよび倍率ｉＦａｃｔが以下のように導出される：
ｉＩｄｘ＝（（ｘ＋１）＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＞＞５  （８−５８）
ｉＦａｃｔ＝（（ｘ＋１）＊ｉｎｔｒａＰｒｅｄＡｎｇｌｅ）＆３１  （８−５９）
ｋ．ｉＦａｃｔの値に応じて、以下が適用される：
−ｉＦａｃｔが０に等しくない場合、予測サンプルｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］の値が以下のように導出される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝（（３２−ｉＦａｃｔ）＊ｒｅｆ［ｙ＋ｉＩｄｘ＋１］＋ｉＦａｃｔ＊ｒｅｆ［ｙ＋ｉＩｄｘ＋２］＋１６）＞＞５  （８−６０）
−そうでない場合、予測サンプルｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］の値が以下のように導出される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝ｒｅｆ［ｙ＋ｉＩｄｘ＋１］  （８−６１）
ｌ．ｐｒｅｄＭｏｄｅＩｎｔｒａが１０に等しく（水平）、ｃＩｄｘが０に等しく、ｎＴｂＳが３２より小さい場合、ｘ＝０〜ｎＴｂＳ−１、ｙ＝０で以下のフィルタリングが適用される：
ｐｒｅｄＳａｍｐｌｅｓ［ｘ］［ｙ］＝Ｃｌｉｐ１Ｙ（ｐ［−１］［ｙ］＋（（ｐ［ｘ］［−１］−ｐ［−１］［−１］）＞＞１））  （８−６２）
付録Ｄの終了
【図１】
2018157587.tif 000027
【図２Ａ】
2018157587.tif 000028
【図２Ｂ】
2018157587.tif 000029
【図３】
2018157587.tif 000030
【図４】
2018157587.tif 000031
【図５Ａ】
2018157587.tif 000032
【図５Ｂ】
2018157587.tif 000033
【図６】
2018157587.tif 000034
【図７】
2018157587.tif 000035
【図８Ａ】
2018157587.tif 000036
【図８Ｂ】
2018157587.tif 000037
【図９Ａ】
2018157587.tif 000038
【図９Ｂ】
2018157587.tif 000039
【図１０】
2018157587.tif 000040
【図１１】
2018157587.tif 000041
【図１２】
2018157587.tif 000042
【図１３】
2018157587.tif 000043
【図１４】
2018157587.tif 000044
【図１５】
2018157587.tif 000045