"ビデオエンコーダのプロセッサによって実行されるコンピュータ実行可能ステップを含むビデオ符号化方法であって、水平境界ピクセルの配列と垂直境界ピクセルの配列の一方から少なくともいくつかのピクセルを取り出すステップと、取り出されたピクセルを他方の境界ピクセルに追加して他方の境界ピクセルの配列を拡張するステップと、境界ピクセルの前記拡張された配列だけに基づいて、イントラ予測を実行するステップと、を、前記プロセッサによって実行する、ビデオ符号化方法。前記水平境界ピクセルの配列と垂直境界ピクセルの配列の一方から少なくともいくつかのピクセルを取り出すステップが、垂直境界ピクセルから少なくともいくつかのピクセルを取り出す処理、を含み、前記取り出されたピクセルを他方の境界ピクセルに追加して他方の境界ピクセルの配列を拡張するステップが、前記取り出されたピクセルを前記水平境界ピクセルに追加して前記水平境界ピクセルの前記配列を拡張する処理、を含む、請求項1に記載のビデオ符号化方法。前記垂直境界ピクセルから少なくともいくつかのピクセルを取り出す処理が、によって表される垂直ピクセル識別子を使用して前記垂直境界ピクセルの中から前記少なくともいくつかのピクセルを識別することであって、ここで、sizeが、予測される対象ブロックのサイズを表し、angleが予測方向を表し、colが、-1からangleまで1ずつデクリメントされるカウンタである、当該識別すること、を含み、前記取り出されたピクセルを前記水平境界ピクセルに追加する処理が、前記垂直ピクセル識別子によって識別されたピクセルを、水平ピクセル識別子[col]によって識別される位置で前記水平ピクセルに追加すること、を含む、請求項2に記載のビデオ符号化方法。前記垂直境界ピクセルから少なくともいくつかのピクセルを取り出す処理が、InvAngleをから計算することであって、ここで、sizeが、予測される対象ブロックのサイズを表し、angleが予測方向を表し、Nが2の整数乗である、当該計算することと、[col×InvAngle>>log2N]によって表される垂直ピクセル識別子を使用して、前記垂直境界ピクセルの中から前記少なくともいくつかのピクセルを識別することであって、ここで、colが、-1からangleまで1ずつデクリメントされるカウンタである、当該識別することと、を含み、前記取り出されたピクセルを前記水平境界ピクセルに追加する処理が、前記垂直ピクセル識別子によって識別されたピクセルを、水平ピクセル識別子[col]によって識別される位置で前記水平ピクセルに追加すること、を含む、請求項2に記載のビデオ符号化方法。前記垂直境界ピクセルから少なくともいくつかのピクセルを取り出す処理が、angleの値に関連付けられたInvAngleの値を列挙するルックアップテーブルからInvAngleを獲得することであって、ここで、angleが予測方向を表す、当該獲得することと、[col×InvAngle]によって表される垂直ピクセル識別子を使用して、前記垂直境界ピクセルの中から前記少なくともいくつかのピクセルを識別することであって、ここで、colが、-1からangleまで1ずつデクリメントされるカウンタである、当該識別することと、を含み、前記取り出されたピクセルを前記水平境界ピクセルに追加する処理が、前記垂直ピクセル識別子によって識別されたピクセルを、水平ピクセル識別子[col]によって識別される位置で前記水平ピクセルに追加すること、を含む、請求項2に記載のビデオ符号化方法。前記垂直境界ピクセルから少なくともいくつかのピクセルを取り出す処理が、垂直ピクセル識別子[row]を使用して、前記垂直境界ピクセルの中からピクセルを識別することであって、ここで、rowが、0からsizeまで1ずつインクリメントされるカウンタであり、sizeが、予測される対象ブロックのサイズを表す、当該識別すること、を含み、前記取り出されたピクセルを前記水平境界ピクセルに追加する処理が、前記垂直ピクセル識別子によって識別されたピクセルを、[int1]によって表される水平ピクセル識別子によって識別される位置で前記水平ピクセルに追加することであって、ここで、intが、予測方向と交差するピクセルの位置の整数表現である、当該追加すること、を含む、請求項2に記載のビデオ符号化方法。ビデオデコーダのプロセッサによって実行されるコンピュータ実行可能ステップを含むビデオ復号方法であって、水平境界ピクセルの配列と垂直境界ピクセルの配列の一方から少なくともいくつかのピクセルを取り出すステップと、取り出されたピクセルを他方の境界ピクセルに追加して他方の境界ピクセルの配列を拡張するステップと、境界ピクセルの前記拡張された配列だけに基づいて、イントラ予測を実行するステップと、を、前記プロセッサによって実行する、ビデオ復号方法。前記水平境界ピクセルの配列と垂直境界ピクセルの配列の一方から少なくともいくつかのピクセルを取り出すステップが、垂直境界ピクセルから少なくともいくつかのピクセルを取り出す処理、を含み、前記取り出されたピクセルを他方の境界ピクセルに追加して他方の境界ピクセルの配列を拡張するステップが、前記取り出されたピクセルを前記水平境界ピクセルに追加して前記水平境界ピクセルの前記配列を拡張する処理、を含む、請求項7に記載のビデオ復号方法。前記垂直境界ピクセルから少なくともいくつかのピクセルを取り出す処理が、によって表される垂直ピクセル識別子を使用して前記垂直境界ピクセルの中から前記少なくともいくつかのピクセルを識別することであって、ここで、sizeが、予測される対象ブロックのサイズを表し、angleが予測方向を表し、colが、-1からangleまで1ずつデクリメントされるカウンタである、当該識別すること、を含み、前記取り出されたピクセルを前記水平境界ピクセルに追加する処理が、前記垂直ピクセル識別子によって識別されたピクセルを、水平ピクセル識別子[col]によって識別される位置で前記水平ピクセルに追加すること、を含む、請求項8に記載のビデオ復号方法。前記垂直境界ピクセルから少なくともいくつかのピクセルを取り出す処理が、InvAngleをから計算することであって、ここで、sizeが、予測される対象ブロックのサイズを表し、angleが予測方向を表し、Nが2の整数乗である、当該計算することと、[col×InvAngle>>log2N]によって表される垂直ピクセル識別子を使用して、前記垂直境界ピクセルの中から前記少なくともいくつかのピクセルを識別することであって、ここで、colが、-1からangleまで1ずつデクリメントされるカウンタである、当該識別することと、を含み、前記取り出されたピクセルを前記水平境界ピクセルに追加する処理が、前記垂直ピクセル識別子によって識別されたピクセルを、水平ピクセル識別子[col]によって識別される位置で前記水平ピクセルに追加すること、を含む、請求項8に記載のビデオ復号方法。前記垂直境界ピクセルから少なくともいくつかのピクセルを取り出す処理が、angleの値に関連付けられたInvAngleの値を列挙するルックアップテーブルからInvAngleを獲得することであって、ここで、angleが予測方向を表す、当該獲得することと、[col×InvAngle]によって表される垂直ピクセル識別子を使用して、前記垂直境界ピクセルの中から前記少なくともいくつかのピクセルを識別することであって、ここで、colが、-1からangleまで1ずつデクリメントされるカウンタである、当該識別することと、を含み、前記取り出されたピクセルを前記水平境界ピクセルに追加する処理が、前記垂直ピクセル識別子によって識別されたピクセルを、水平ピクセル識別子[col]によって識別される位置で前記水平ピクセルに追加すること、を含む、請求項8に記載のビデオ復号方法。前記垂直境界ピクセルから少なくともいくつかのピクセルを取り出す処理が、垂直ピクセル識別子[row]を使用して、前記垂直境界ピクセルの中からピクセルを識別することであって、ここで、rowが、0からsizeまで1ずつインクリメントされるカウンタであり、sizeが、予測される対象ブロックのサイズを表す、当該識別すること、を含み、前記取り出されたピクセルを前記水平境界ピクセルに追加する処理が、前記垂直ピクセル識別子によって識別されたピクセルを、[int1]によって表される水平ピクセル識別子によって識別される位置で前記水平ピクセルに追加することであって、ここで、intが、予測方向と交差するピクセルの位置の整数表現である、当該追加すること、を含む、請求項8に記載のビデオ復号方法。コンピュータシステムのプロセッサとメモリとを備えるビデオエンコーダであって、前記メモリは、前記プロセッサによって実行可能なプログラムであって、水平境界ピクセルの配列と垂直境界ピクセルの配列の一方から少なくともいくつかのピクセルを取り出すステップと、取り出されたピクセルを他方の境界ピクセルに追加して他方の境界ピクセルの配列を拡張するステップと、境界ピクセルの前記拡張された配列だけに基づいて、イントラ予測を実行するステップと、を実行させるための当該プログラム、を記憶する、ビデオエンコーダ。コンピュータシステムのプロセッサとメモリとを備えるビデオデコーダであって、前記メモリは、前記プロセッサによって実行可能なプログラムであって、水平境界ピクセルの配列と垂直境界ピクセルの配列の一方から少なくともいくつかのピクセルを取り出すステップと、取り出されたピクセルを他方の境界ピクセルに追加して他方の境界ピクセルの配列を拡張するステップと、境界ピクセルの前記拡張された配列だけに基づいて、イントラ予測を実行するステップと、を実行させるための当該プログラム、を記憶する、ビデオデコーダ。0027図1は、本発明を実施できるコンピュータ100の例示的なハードウェアアーキテクチャを示している。図1に示されるハードウェアアーキテクチャは、本発明の実施形態を実施するビデオエンコーダとビデオデコーダの両方に共通して使用することができる。コンピュータ100は、ローカルインタフェース107を介して通信可能に結合される、プロセッサ101、メモリ102、記憶デバイス105、及び、1つ又は複数の入出力I/Oデバイス106又は周辺装置を含む。ローカルインタフェース107は、例えば、当該技術分野で知られているような、1つ若しくは複数のバス接続、又は、他の有線若しくは無線の接続とすることができるが、これらに限定されない。0028プロセッサ101は、ソフトウェア、特にメモリ102に記憶されたソフトウェアを実行するためのハードウェアデバイスである。プロセッサ101は、任意のカスタムメイド若しくは市販のプロセッサ、中央処理装置CPU、コンピュータ100に関連するいくつかのプロセッサ間の補助プロセッサ、マイクロチップ若しくはチップセットの形態を取る半導体ベースのマイクロプロセッサ、又は一般にソフトウェア命令を実行するための任意のデバイスとすることができる。0029メモリ102は、揮発性メモリ要素例えば、ランダムアクセスメモリDRAM、SRAM、SDRAMなどのRAMと不揮発性メモリ要素例えば、ROM、ハードドライブ、テープ、CDROMなどのいずれか一方又は両方の組み合わせを含むことができる、コンピュータ可読媒体を含む。さらに、メモリ102は、電子、磁気、光、及び/又は他のタイプの記憶媒体を含むことができる。コンピュータ可読媒体は、命令実行システム、装置、又はデバイスが使用するプログラム、又はそれらに関連したプログラムを記憶、伝達、伝搬、又は輸送できる任意の手段とすることができる。メモリ102は分散アーキテクチャを有することができ、その場合、様々なコンポーネントは互いに遠く離れて配置されるが、プロセッサ101によってアクセスできる。0030メモリ102内のソフトウェア103は、1つ又は複数の別個のプログラムを含むことができ、その各々は、以下で説明されるような、コンピュータ100の論理機能を実施するための実行可能命令の順序付けられたリストを含む。図1の例では、メモリ102内のソフトウェア103は、本発明によるコンピュータ100のビデオ符号化又はビデオ復号機能を具現化するする。加えて、必ずしも必要ではないが、メモリ102は、オペレーティングシステムO/S104を含むことが可能である。基本的に、オペレーティングシステム104は、コンピュータプログラムの実行を制御し、スケジューリング、入出力制御、ファイル及びデータ管理、メモリ管理、並びに、通信制御及び関連サービスを提供する。0031コンピュータ100の記憶デバイス105は、1つのタイプ又は多くの異なるタイプの記憶デバイスとすることができ、固定型記憶デバイス又はポータブル記憶デバイスを含む。一例として、記憶デバイス105は、磁気テープ、ディスク、フラッシュメモリ、揮発性メモリ、又は異なる記憶デバイスとすることができる。加えて、記憶デバイス105は、セキュアデジタルメモリカード又は他の任意の着脱可能記憶デバイス105とすることができる。0032I/Oデバイス106は、例えば、タッチスクリーン、キーボード、マウス、スキャナ、マイクロフォン、又は他の入力デバイスなどの、しかしそれらに限定されない、入力デバイスを含むことができる。さらに、I/Oデバイス106は、例えば、ディスプレイ、又は他の出力デバイスなどの、しかしそれらに限定されない、出力デバイスを含むこともできる。さらに、I/Oデバイス106は、例えば、別のデバイス、システム、若しくはネットワークにアクセスするための変復調器モデム、無線周波数RF、ワイヤレス、若しくは他のトランシーバ、電話インタフェース、ブリッジ、ルータ、又は入力と出力の両方として機能する他のデバイスなどの、しかしそれらに限定されない、入力と出力の両方を介して通信するデバイスを含むことができる。0033当業者によってよく知られているように、ビデオ圧縮は、ビデオシーケンス内の冗長情報を除去することによって達成される。多くの異なるビデオ符号化規格が存在し、それらの例として、MPEG-1、MPEG-2、MPEG-4、H.261、H.263、及びH.264/AVCがある。本発明は特定のビデオ符号化規格いすれにも限定的に適用されるものではないが、本発明は、参照により本明細書に組み込まれるH.264/AVC規格の例を使用し、以下に説明する。H.264/AVCは、最新のビデオ符号化規格であり、MPEG-1、MPEG-2、H.261、及びH.263などのこれまでの符号化規格と比べて、著しい性能改善を達成する。0034H.264/AVCでは、ビデオの各フレーム又はピクチャは、いくつかのスライスに分解することができる。次に、スライスは、マクロブロックと呼ばれる16×16ピクセルのブロックに分割され、次に、マクロブロックは、8×16、16×8、8×8、4×8、8×4、最小では4×4ピクセルのブロックにさらに分割することができる。H.264/AVCによってサポートされるスライスには5つのタイプがある。Iスライスでは、すべてのマクロブロックが、イントラ予測を使用して符号化される。Pスライスでは、マクロブロックは、イントラ予測又はインター予測を使用して符号化することができる。Pスライスは、マクロブロック当たりただ1つの動き補償予測MCP:motioncompensatedprediction信号を使用することを可能にする。Bスライスでは、マクロブロックは、イントラ予測又はインター予測を使用して符号化することができる。予測当たり2つのMCP信号を使用することができる。SPスライスは、Pスライスを異なるビデオストリーム間で効率的に切り換えることを可能にする。SIスライスは、ランダムアクセス又はエラー回復を行うためのもので、SPスライスに完全に対応しているが、イントラ予測だけを使用する。0035図2は、本発明を適用できるビデオエンコーダの概観を示している。図示されるブロックは、メモリ102内のソフトウェア103を実行するプロセッサ101によって実現される機能モジュールを表す。ビデオフレームのピクチャ200が、ビデオエンコーダ201に供給される。ビデオエンコーダは、マクロブロック200Aを単位として、ピクチャ200を処理する。各マクロブロックは、ピクチャ200のいくつかのピクセルを含む。各マクロブロック上で、変換係数への変換が実行され、それに続いて、変換係数レベルへの量子化が実行される。さらに、イントラ予測又はインター予測を使用して、符号化ステップをピクセルデータに対して直接的に実行せず、ピクセルデータの差分に対して実行して、予測ピクセル値を得る。それによって、小さな値がより容易に圧縮される。0036エンコーダ201は、スライス毎に多くのシンタックス要素を生成し、シンタックス要素は、それぞれのスライスのマクロブロックの符号化バージョンを生成する。変換係数レベル、又はスキップされる変換係数レベルを示す有意性マップsignificancemapなど、変換係数の符号化に関連する、シンタックス要素内のすべての残差データ要素は、残差データシンタックス要素と呼ばれる。これらの残差データシンタックス要素に加えて、エンコーダ201によって生成されるシンタックス要素は、各マクロブロックをどのように符号化するかに関する情報と、どのように復号しなければならないかに関する情報をそれぞれ含んだ制御情報シンタックス要素を含む。言い換えると、シンタックス要素は、2つのカテゴリに分けることができる。第1のカテゴリである制御情報シンタックス要素は、例えば、マクロブロックタイプ、サブマクロブロックタイプ、及び空間タイプと時間タイプ両方の予測モードについての情報、並びにスライスベース及びマクロブロックベースの制御情報に関する要素を含む。第2のカテゴリでは、量子化変換係数のブロック内のすべての有意係数の位置と、量子化ステップに対応するレベルを単位として表される有意係数の値とを示す有意性マップなど、すべての残差データ要素が、組み合わされ、残差データシンタックス要素になる。0037エンコーダ201は、スライス毎にシンタックス要素を符号化し、算術符号を生成する、エントロピコーダを備える。スライスについての算術符号を生成する場合、エントロピコーダは、ビデオ信号ビットストリーム内のシンタックス要素のデータ値の間の統計的依存性を利用する。エンコーダ201は、ピクチャ200のスライスについての符号化ビデオ信号を、図3に示されるビデオデコーダ301に出力する。0038図3は、本発明を適用できるビデオデコーダの概観を示している。同様に、図示されるブロックは、メモリ102内のソフトウェア103を実行するプロセッサ101によって実現される機能モジュールを表す。ビデオデコーダ301は、符号化ビデオ信号を受信し、最初に信号をエントロピ復号して、シンタックス要素に戻す。デコーダ301は、マクロブロックを順々に、その後、スライスを順々に処理して、ピクチャ300内のピクセルからなるピクチャサンプル300Aを再構成するために、シンタックス要素を使用する。0039図4は、ビデオエンコーダ201の機能モジュールを示している。これらの機能モジュールは、メモリ102内のソフトウェア103を実行するプロセッサ101によって実現される。入力ビデオピクチャは、クロミナンスクローマ及びルミナンスルーマなど例えば、色相、彩度、及び色値など、他の成分も可能である、元の色の成分を表すサンプル点によって定義される自然な非圧縮のビデオイメージのフレーム又はフィールドである。入力ビデオピクチャは、ピクチャ色のルーマ成分の16×16ピクセルから成る正方形のピクチャ領域を各々が表す、マクロブロック400に分割される。入力ビデオピクチャは、ピクチャ色の2つのクローマ成分の各々についての8×8ピクセルを各々が表す、マクロブロックにも区分される。一般的なエンコーダ操作では、入力されるマクロブロックは、インター予測又はイントラ予測を使用して、時間的又は空間的に予測することができる。しかし、本願発明の説明の目的のため、マクロブロック400は、すべてIスライスタイプのマクロブロックであり、イントラ予測だけが行われると仮定する。0040イントラ予測は、イントラ予測モジュール401において達成され、その動作が、以下で詳細に説明される。イントラ予測モジュール401は、先に符号化及び再構成が行われ、フレームメモリ403に記憶された、近隣ブロックの水平及び垂直境界ピクセルから、予測ブロック402を生成する。対象ブロック400と予測ブロック402の間の差である予測ブロック402の残差404は、ビデオ符号化分野の当業者に知られた方法及び技法を使用して、変換/量子化モジュール405において変換され、スケーリングされ、量子化される。その後、量子化変換係数406は、エントロピ符号化モジュール407においてエントロピ符号化され、符号化ビデオ信号408としてイントラ予測に関する他の情報と一緒に送信される。0041ビデオエンコーダ201は、対象ブロックにおいてイントラ予測を実行するために、復号の機能性を有する。復号の機能性として、逆量子化/逆変換モジュール409を備え、逆量子化/逆変換モジュール409は、量子化変換係数406に対して逆量子化及び逆変換を実行して、復号予測残差410を生成し、復号予測残差410は、予測ブロック402に加算される。復号予測残差410と予測ブロック402の合算が、再構成ブロック411であり、再構成ブロック411は、フレームメモリ403に記憶され、次の対象ブロック400を符号化するための予測ブロック402を生成するために、イントラ予測モジュール401によってフレームメモリ403から読み出され、使用される。0042図5は、イントラ予測モジュール401によって実行されるプロセスを示すフローチャートである。H.264/AVC規格によれば、イントラ予測は、先に符号化され及びその後複合された近隣ブロックの境界ピクセル参照ピクセルを補間して、複数の予測モードの下で対象ブロック400の各ピクセルを予測することを含む。予測モードは、正の整数番号0、1、2、...によって識別され、各々は、対象ブロック400内の特定のピクセルを予測するための異なる命令又はアルゴリズムに関連付けられる。イントラ予測モジュール401は、それぞれの予測モードの下でイントラ予測を実行し、異なる予測ブロックを生成する。フルサーチFSアルゴリズムの下では、生成された予測ブロックの各々が、対象ブロック400と比較されて、予測残差404を最小化する、又はより小さな予測残差404を生成する最適予測モードを予測モードの中から見つける。最適予測モードを識別する情報は、圧縮され、他の制御情報シンタックス要素とともにデコーダ301に送信される。0043各予測モードは、予測のおおよその方向、すなわち、水平上方、垂直、及び対角線左下方の語によって呼ばれる。予測方向は、図7に示されるような矢印を備えた図を用いて表現される角度方向によって、図式的に記述することができる。このタイプの図では、各矢印は、予測方向又は予測モードを表していると見なすことができる。予測モードに対応する角度は、対象ピクセルを予測するために使用される参照ピクセルの加重平均位置から対象ピクセル位置に向かう方向とおおよその関係がある。予測モードは、どの予測方向とも関連せず、したがって、図に他の予測モードのようには図式的に記述できない、DC予測モードを含む。DC予測モードでは、予測ブロック402の各ピクセルが参照ピクセルの平均値に一律に設定されるように、予測ブロック402が生成される。0044図5に戻ると、ステップ501において、予測モードが初期化される。その後、ステップ502において、予測モードがDC予測を示しているかどうかが判定される。DC予測を示している場合、フローはステップ503に進み、ステップ503において、DC予測ブロック402が、参照ピクセルの平均値を用いて生成される。予測モードがDC予測を示していない場合、ステップ504において、予測モードに関連付けられた命令又はアルゴリズムに従って、予測ブロック402が生成されるが、そのプロセスは、以下で詳細に説明される。ステップ503又はステップ504の後、フローはステップ505に進み、予測モードのすべてについて予測ブロックが生成されたかどうかが判定される。予測モードのすべての下でイントラ予測が実行された場合、フローはステップ506に進む。すべてにおいて実行されていない場合、ステップ507において、予測モードがインクリメントされ、フローはステップ502に戻る。ステップ506において、生成された予測ブロックの各々が対象ブロック400と比較されて、予測残差404を最小化する最適予測モードが決定される。0045図6は、ビデオデコーダ301の機能モジュールを示している。これらの機能モジュールは、メモリ102内のソフトウェア103を実行するプロセッサ101によって実現される。最初に、エンコーダ201からの符号化ビデオ信号は、エントロピデコーダ600によって受信され、エントロピ復号が施されて量子化変換係数601に戻される。量子化変換係数601は、逆量子化/逆変換モジュール602によって逆量子化及び変換されて、予測残差603が生成される。エンコーダ201によって選択された予測モードが、イントラ予測モジュール604に通知される。選択された予測モードに従って、イントラ予測モジュール604は、先に複合化され、フレームメモリ606に記憶された近隣ブロックの境界ピクセルを使用して、図5のステップ502、503、504で実行されたプロセスと類似したイントラ予測プロセスを実行して、予測ブロック605を生成する。予測ブロック605は、予測残差603に加算されて、復号ビデオ信号のブロック607が複合化される。複合化されたブロック607は、次のブロックの予測で使用するために、フレームメモリ606に記憶される。0046予測モードDC予測モードを除くの1つの下で予測ブロックを生成するために、イントラ予測モジュール401及び604によって実行されるステップ504のプロセスについての以下に詳細に説明する。H.264/AVCは、Intra_4x4予測、Intra_8×8予測、及びIntra_16×16予測をサポートする。Intra_4x4予測は、通常、ピクチャ内に重要な細部が存在する場合に使用される。Intra_4x4予測は、1つのマクロブロック内の16個の4×4ルーマブロックを個々に予測する。Intra_4x4予測は、1つのDC予測モードを含む、9つの予測モードの下で実行される。Intra_4x4予測がそれに沿って実行される空間予測方向が、図7に示されている。Intra_8×8予測は、1つのDC予測モードを含む、9つの予測モードの下で実行される。Intra_16×16予測は、1つのDC予測モードを含む、4つの予測モードの下で実行される。0047最近の研究により、予測方向の数を増加させれた、又は予測モードの数を増加させれば、一般に、ビデオ符号化における圧縮効率が改善することが判っている。例えば、ともに参照により本明細書に組み込まれる、ビデオ符号化共同研究部会JCT-VC:JointCollaborativeTeamonVideoCodingに提出された文書番号JCT-VCA119AngularIntraPrediction及びJCT-VCA124ArbitraryDirectionIntraを参照されたい。予測方向の数の増加することは、利用可能な予測方向の角度間隔の数が増加することを意味する。したがって、これにより予測ブロック候補の数も増加する。予測ブロック候補の数を増加させることにより、単純に、符号化される対象ブロックとほぼ同じ予測ブロックを得る可能性を高めることができる。図8は、文書番号JCT-VCA119において提案される予測方向を示す図である。図8では、参照ピクセルは、17個の水平ピクセルと17個の垂直ピクセルとから成り、左上隅のピクセルは、水平境界と垂直境界の両方に共通である。したがって、8×8ブロックにおいて予測ピクセルを生成するために、33個の異なる予測方向が利用可能である。JCT-VCA124は、予測されるブロックのサイズに応じて予測方向の数が調整される、任意方向イントラ予測を提案している。0048図9は、図8に示される予測方向の1つに沿って予測ブロックを生成する、JCT-VCA119において提案される、プロセスを示すフローチャートである。説明を容易にするため、プロセスについての以下の説明では、いくつかのアルゴリズムは簡略化されて説明されている。また、プロセスは、主に垂直の予測方向に沿ったイントラ予測に限定して説明されている。主に水平の予測方向に沿ったイントラ予測は、JCT-VCA119によって提供されるソフトウェアにおいて示されるように、図9に示されるプロセスを用いて対称的に実施することができる。図8は予測される8×8ブロックを示しているが、図9に示されるプロセスは、異なる構成に配置された様々な数のピクセルに適用されるように拡張可能である。例えば、予測されるブロックは、4×4配列のピクセルを含むことができる。予測ブロックは、8×8配列のピクセル、16×16配列のピクセル、又はより大きな配列のピクセルを含むこともできる。正方形配列と長方形配列の両方を含む他のピクセル構成も、予測ブロックを構成することができる。0049図9のステップ900において、対象ブロックのそれぞれ直上及び直左に存在する、水平境界及び垂直境界における参照ピクセルが、先に符号化及びその後複合化され、図4に示されるメモリ403などのフレームメモリに記憶された近隣ブロックから読み取られる。水平境界からのピクセルは、refHと呼ばれるメモリ領域に記憶される。垂直境界からのピクセルは、refVと呼ばれる別のメモリ領域に記憶される。図8に戻ると、参照ピクセルは、8×8ブロックの左上隅のピクセル位置に原点を有する座標系における座標によって識別される。したがって、水平境界ピクセルは、p[x,y]によって表される座標を有し、x=0,1,...,16、y=0である。垂直境界ピクセルは、p[x,y]によって表される座標を有し、x=0、y=0,-1,-2,...,-16である。0050メモリ領域refHに記憶される水平境界ピクセルは、論理アドレスx、x=0,1,...,16によって識別され、同様に、メモリ領域refVに記憶される垂直境界ピクセルは、論理アドレスy、y=0,-1,-2,...,-16によって識別され、各ピクセルは、それが読み取られた座標の数値を有するアドレスに記憶されると仮定する。したがって、図8に水平ピクセル及び垂直ピクセルが図式的に表されているように、メモリ領域refH及びrefVは、直線的に互いに直交して延びていると考えることができ、各々は、2×size1の長さを有する。ここで、sizeは、対象ブロックのサイズを表すパラメータである。sizeは、4、8、16...など、2の整数乗に等しい値を有すると仮定される。H.264/AVCのセクション83221で説明されているようなローパスフィルタを、refH及びrefV内のピクセルに任意選択的に適用することができる。0051ステップ901において、rowと呼ばれるカウンタが、ゼロ0に設定される。カウンタrowは、0からsizeまでの値を取り、予測ブロック内における予測ピクセルの行位置を表す。ステップ902において、posと呼ばれるパラメータが、angle×row1によって計算される。angleは、固定小数点表現の分数を有するパラメータである。そのため、angleは、整数部と小数部から形成され、小数部は、固定数の2進数から成る。angleは、図8に示される予測方向の1つを表す。例えば、angle=-sizeは、図8における座標[x=0,y=0]を通過する予測方向を識別する。正の値を有するangleは、水平境界だけと交差する予測方向を識別し、一方、負の値を有するangleは、水平境界と垂直境界の両方と交差する予測方向を識別する。angleは、使用するのが望ましい予測方向の数によって決定される範囲内で変化する。JCT-VCA124で提案されたように、使用される予測方向の数は、予測されるブロックのサイズに従って決定することができる。以下の説明では、angleは、-sizeからsizeまでの範囲内で変化する分数値を取ると仮定される。angleの範囲限界は他の値を用いても定義できることに留意されたい。0052angle同様、パラメータposも、整数部と小数部から成り、posの小数部は、固定された数の2進数から成る。ここで上述したようにangleの範囲限界はsizeの値に設定されている。これによれば、固定された数はangleの範囲限界の底が2の対数に等しい。即ち、log2_sizeによって表すことができる。posは、水平境界とangleによって表される予測方向とが交差する位置を識別する。ステップ902に戻ると、演算pos>>log2_sizeは、posの整数部を識別し、posの整数部は、パラメータintに記憶され、演算possize-1は、posの小数部を識別し、posの小数部は、パラメータfracに記憶される。演算子>>は、2進数の算術右シフトを意味する。演算子は、ビット毎のand演算を求める。0053ステップ903において、angleがゼロ0以上の値を有するかどうかが判定される。angleがゼロ以上の値を有する場合、フローはステップ904に進む。さもなければ、フローはステップ913に進む。ゼロ以上のangleは、水平境界内に配置された参照ピクセル、即ちrefHに記憶された参照ピクセルだけを用いて予測ブロック内の予測ピクセルを導出することができることを意味する。他方、ゼロよりも小さいangleは、予測ブロック内の予測ピクセルを導出するために、垂直境界内に配置された参照ピクセル即ちはrefVに記憶された参照ピクセルが必要とされることを意味する。0054ステップ904において、fracがゼロでないかどうかが判定される。fracがゼロでない場合、フローはステップ905に進む。fracがゼロである場合、フローはステップ906に進む。ゼロに等しいfracは、予測ブロック内の予測ピクセルを、水平境界内の参照ピクセルから直接的にコピーできることを示唆する。非ゼロfracは、予測方向が非整数位置で水平境界と交差し、予測ブロック内の予測ピクセルを導出するために、2つ以上の参照ピクセルの補間が必要とされることを示唆する。0055ステップ905において、colと呼ばれるカウンタが、ゼロ0に設定される。カウンタcolは、refH内の参照ピクセルをアドレッシングするために使用される。ステップ907において、intcol1とintcol2によって識別される2つの参照ピクセルが、refHから取り出される。これら2つの参照ピクセルは、予測ピクセルvを導出するために、加重平均され、即ちfracを用いて補間される。具体的には、intcol1によって識別されるrefH内の参照ピクセルには、size-fracが乗算され、パラメータaに記憶される。intcol2によって識別されるrefH内の参照ピクセルには、fracが乗算され、パラメータbに記憶される。その後、パラメータa及びbは加算され、size、すなわちsize-fracfracによって除算される。sizeによる除算は、log2_size回の右シフトで置き換えることができる。導出された予測ピクセルvは、特定の予測方向の下での対象ブロックのための予測ブロックを表す、predと呼ばれるメモリ領域の配列に記憶される。pred内の各メモリ領域は、パラメータrow及びcolによって識別される。その後、colは、ステップ908において、1だけインクリメントされ、ステップ909において、sizeと比較される。colがsizeよりも小さい限り、ステップ907及びステップ908が繰り返される。colがsizeと等しくなったとき、フローはステップ920に進む。0056ステップ904において、fracがゼロであると判定された場合、ステップ906において、カウンタcolが、ゼロに設定される。ステップ910において、予測ピクセルvが、refHintcol1から直接的にコピーされ、その後、pred内の対応するメモリ領域に記憶される。その後、colは、ステップ911において、1だけインクリメントされ、ステップ912において、sizeと比較される。colがsizeよりも小さい限り、ステップ910及びステップ911が繰り返される。colがsizeと等しくなったとき、フローはステップ920に進む。0057ステップ903に戻ると、ゼロよりも小さいangleは、予測ブロック内の予測ピクセルを導出するために、refVからの参照ピクセルを必要とする。ステップ913において、カウンタcolが、ゼロに設定される。その後、ステップ914において、intcol1がゼロよりも低いかどうかが判定され、ゼロ以上のintcol1は、予測ブロック内の予測ピクセルを導出するために、refHに記憶された参照ピクセルだけにまだ依存できることを意味し、フローはステップ915に進む。ステップ915で実行されるプロセスは、ステップ907のプロセスと同様であり、その説明はここでは繰り返さない。その後、colは、ステップ916において、1だけインクリメントされ、ステップ917において、sizeと比較される。colがsizeよりも小さい限り、ステップ914、ステップ915、及びステップ916が繰り返される。colがsizeと等しくなったとき、フローはステップ920に進む。0058ステップ914において、intcol1がゼロよりも小さいと判定された場合、予測ブロック内の予測ピクセルを導出するために、refVに記憶された参照ピクセルが必要とされる。ステップ918において、最初に、垂直境界と予測方向が交差する位置が決定される。ステップ918において、位置はpos2によって表される。ステップ902では、pos、すなわち、水平境界と予測方向が交差する位置は、angle×row1によって決定されることに留意されたい。angleが水平差と垂直差の比を表すことを考慮して、垂直境界と予測方向が交差する位置を決定するために、angle×row1の代わりに、angle-1×col1が計算される。上で仮定したように、angleは、-sizeからsizeまでの範囲内にある-size≦angle≦size。したがって、angleとsizeの間の比αは、によって定義される。その場合、angle-1は、によって定義される。そのため、ステップ918において、pos2は、以下のように、sizeの2乗にcol1を乗算し、その後、angleの絶対値で除算することで決定される。0059pos同様、pos2は、整数部と小数部から形成される、固定小数点表現の分数を有する。小数部は、log2_sizeによって決定される数の2進数から成る。pos2の整数部は、パラメータint2に記憶され、pos2の小数部は、パラメータfrac2に記憶される。ステップ919において、int2row1とint2row2によって識別される2つの参照ピクセルが、refVから取り出される。これら2つの参照ピクセルは、予測ピクセルvを導出するために、加重平均され、即ちfrac2を用いて補間される。具体的には、refVint2row1からの参照ピクセルには、size-frac2が乗算され、パラメータaに記憶される。refVint2row2からの参照ピクセルには、frac2が乗算され、パラメータbに記憶される。その後、パラメータa及びbは加算され、sizeによって除算され、又はlog2_sizeだけ右シフトされる。導出された予測ピクセルvは、predの対応するメモリ領域に記憶される。ステップ917において、colがsizeに等しくなるまで、ステップ914、ステップ918、ステップ919、及びステップ916が繰り返される。0060ステップ920において、rowが1だけインクリメントされる。ステップ921において、rowがsizeよりも小さいかどうかが判定される。rowがsizeよりも小さい限り、予測ブロック内の予測ピクセルを導出するために、ステップ902からのステップが繰り返される。ステップ921において、rowがsizeと等しくなったときに、フローは終了する。0061上述したように、予測ブロック候補の数を増加させると、符号化効率が改善する。一方で、予測ブロック候補の数を増加させると、計算作業負荷も増加する。したがって、予測ブロック候補の数を増加させ、それによって、符号化効率を改善するために、予測ブロック候補を生成するプロセスを検討して、さらにプロセスの効率を改善する必要がある。図9に示されるプロセスを検討すると、2つの計算ボトルネックがあることが判る。第1の計算ボトルネックは、ループ内で繰り返される、ステップ914の比較及び分岐操作である。第2の計算ボトルネックは、やはりループ内で繰り返される、ステップ918の除算操作である。0062昨今は、単一命令複数データSIMDを使用して効率的なコンピューティングが可能である。SIMDでは、複数の処理要素を備えるコンピュータが、複数のデータに対して同じ操作を同時に実行することが可能である。しかし、SIMDアーキテクチャは、通常、ループ内における除算及び計算/分岐の実施をサポートしてない。したがって、ステップ907及びステップ910から開始するループは、SIMDを用いて実施するのに十分なロバスト性を有するけれども、ループ内にはステップ914及びステップ918が含まれるので、図9に示されるプロセスを実施するために、SIMDアーキテクチャを使用することができない。したがって、本発明の目的は、図9に示されるプロセスから計算上のボトルネックを取り除き、典型的なSIDMアーキテクチャが、図8に示される予測方向のすべてに沿って、並列処理を実施することを可能にする、簡素化されたイントラ予測を提供することである。0063図10は、図5のステップ504におけるプロセスを実施する際に、図9のプロセスを置き換えるように設計された、本発明の一実施形態による簡素化されたイントラ予測のプロセスを示すフローチャートである。図10では、ステップ900、901、902、904、905、906、907、908、909、910、911、912、920、921など、図9で実行されるのと同じプロセスステップは、図9で使用されるのと同じステップ番号によって識別される。これら共通のステップについての説明は、ここでは繰り返さない。ステップ1000及びステップ1001が、図10のプロセスに特有のステップである。図9に示されるプロセスとの比較から明らかなように、図10のプロセスは、ステップ903の比較ステップと、angleがゼロよりも小さいときに実行される、ステップ903から左に分岐したステップのすべてとを除去しており、それによって、ステップ914及びステップ918の計算上のボトルネックを除去している。0064追加されたステップ1000及びステップ1001において、angleが-1以上であるかどうかが判定される。angleが-1以上である場合、予測ブロック内の予測ピクセルを生成するには、水平境界内に配置された参照ピクセルがあれば十分であり、垂直境界内の参照ピクセルは必要とされない。他方、angleが-1よりも小さい場合、予測ブロック内の予測ピクセルを生成するために、垂直境界内の参照ピクセルが必要とされる。ステップ1001では、refVに記憶されたピクセルの少なくともいくつかを使用して、refHに記憶された参照ピクセルが負の方向に拡張される。図11A及び図11Bは、ステップ1001で実行されるrefHの拡張を示す概略図である。図11Aでは、refHに記憶される参照ピクセル1102は、対象ブロック1101の上に配置された水平境界からのものである。refVに記憶される参照ピクセル1103は、対象ブロック1101の左に配置された垂直境界からのものである。図11Bに示されるように、図10のステップ1001の後、refV内の参照ピクセルのいくつかが、refHにコピーされ、refHは、負の方向に拡張された拡張部1104を有する。0065図12は、ステップ1001で実行されるプロセスの詳細を示すフローチャートである。ステップ1201において、カウンタcolが、-1に設定される。colは、refHの拡張部のアドレスを識別するために使用される。ステップ1202において、refHの拡張部にコピーされるrefV内の参照ピクセルは、によって識別される。上の式における除算は整数除算であり、式の結果は整数である。この式は、図9に示されるステップ918のプロセスと同様に機能する。ステップ918において、pos2の整数値は、によって計算される。log2_size回の右シフトはsizeによる除算と等価である。0066ステップ1203において、colが1だけデクリメントされる。その後、ステップ1204において、colがangleと等しいかどうかが判定される。colがangleと等しくない場合、フローはステップ1202に戻る。colがangleと等しくなるまで、ステップ1202及びステップ1203が繰り返される。したがって、参照ピクセルは、昇順、又は垂直境界の最上部から最下部に向かってrefVから読み取られ、やはり降順、又は水平境界の右から左に向かってrefHにコピーされる。また、refV内の必ずしもすべてのピクセルが、refHにコピーされるわけではない。最上部から予測方向の交差部までの範囲内に配置された参照ピクセルだけが、refVからrefHにコピーされる。0067図10に戻ると、ステップ902から開始するプロセスは、図9からコピーしたものであり、図9のステップ903の比較ステップから右に分岐する予測ピクセルを生成するためのステップを含む。しかし、予測ピクセルを生成するための図10のステップは、拡張されたrefH図11Bの部分1102と部分1104の総和を使用し、一方、図9の対応するステップは、元のrefH図11Aの部分1102を使用することに留意されたい。refHは負の方向に拡張されているので、図9においてステップ903から左に分岐する、refVに記憶された参照ピクセルを使用するように特に設計された別個のイントラ予測操作は、angleの符号に係わらず必要とされない。0068図13は、refVの参照ピクセルを使用して、refHを拡張するためのプロセスの別の実施形態を示している。図11A、図11B及び図12に示されるプロセスは、図9に示されるステップ914及びステップ918のボトルネックステップを除去し、したがって、イントラ予測プロセスの効率を改善することが期待される。図13に示されるプロセスは、参照ピクセルをrefVからrefHにコピーするためのループから、図12のステップ1202で実行される除法演算を除去する。ループから除法演算を除去することによって、図13に示されるプロセスは、イントラ予測プロセスの効率をさらに改善することが期待される。0069図13に示されるプロセスは、図12のステップ1202をステップ1301及び1302で置き換える。ステップ1302は、参照ピクセルをrefVからrefHにコピーするためのループの内側にあり、一方、ステップ1301は、ループの外側にある。ステップ1301は、InvAngleと呼ばれる新しいパラメータを導入する。InvAngleは、によって定義される。256による乗算は、8回の左シフトと等価であり、size/angleの演算から得られるすべてのビットが、refVの参照ピクセルを識別する計算に係わることを保証する。ステップ1302では、refHの拡張部にコピーされるrefVの参照ピクセルのアドレスが、によって識別される。col×InvAngleの結果は、ステップ1301で実行された左シフト演算を取り消すために、8だけ右シフトされる。ステップ1302における右シフト演算は、col×InvAngleの結果の端数を切り捨てるように機能することに留意されたい。最も近い整数に丸めるために、右シフト演算を実行する前に、丸めオフセットである128をcol×InvAngleの結果に加算することができる。数256は一例にすぎず、ステップ1301は、その数がsize/angleの演算の結果であるすべてのビットを保存するのに十分な大きさである限り、別のオフセット数、好ましくは2の整数乗を採用できることに留意されたい。例えば、ステップ1301において、数は、256の代わりに、64とすることができ、ステップ1302における右シフトの回数は、8回の代わりに、6回である。64が採用された場合、丸めオフセットは32としなければならない。0070ステップ1301で実行される計算は、計算作業負荷をさらに低減させるために、検索操作で置き換えることができる。言い換えると、angleの値に関連付けられたInvAngleの値を記憶するルックアップテーブルが準備される。以下に提供される表1は、ステップ1301における検索のための例示的なテーブルである。上の表では、sizeは8であり、angleは1から8までの整数値を取ると仮定される。しかし、sizeは8に限定されず、4及び16などの別の値を取ることもできる。また、angleは、上で定義されたように、固定小数点表現の分数とすることができる。0071参照ピクセルが、図12のステップ1202又は図13のステップ1302において、refVからrefHにコピーされる場合、参照ピクセルは、予測ブロック内に存在し得るエイリアシングを低減させるために、ローパスフィルタを通過することができる。ローパスフィルタの強度は、angleの値に応じて様々とすることができる。例えば、angleが-sizeに等しい場合、弱いローパスフィルタリングを適用することができ、angleが-2に等しい場合、強いローパスフィルタリングを適用することができる。0072上で説明したように、refVの参照ピクセルの必ずしもすべてがrefHにコピーされるわけではない。refVの参照ピクセルの必ずしもすべてがコピーされるわけではないので、ピクセルがコピーされるときに、いくつかの情報が失われる。情報の喪失を緩和するため、refH及びrefVが、先に符号化及び再構成されたブロックからのピクセルばかりでなく、2つの隣接するピクセルを補間することによって生成される、2つの隣接する再構成ピクセルの間の1つのピクセルも含むように、refH及びrefVの参照ピクセルの解像度を2倍にすることができる。補間ピクセルを生成するために、2つの隣接するピクセルを単純に平均することができる。補間プロセスは、参照ピクセルが図9のステップ900において読み取られたときに実行することができる。refH及びrefVにおいてピクセルの解像度が2倍にされた場合、図9のステップ907、910、915、919、及び図10のステップ1001において実行される、refH及びrefVに記憶される参照ピクセルのアドレスの識別をスケーリングする必要がある。例えば、ステップ907、910、915において実行されるintcol1は、int2×col2に変更する必要がある。ステップ907、910、915において実行されるintcol2は、int2×col3に変更する必要がある。ステップ919において実行されるint2row1及びint2row2は、それぞれint22×row2及びint22×row3に変更する必要がある。0073別の実施形態では、図12のステップ1202のプロセスは、コピープロセスをさらに簡略化するために、refH[col]←refV[-col]に単純に変更することができる。予測の精度を低下させるものの、この実施形態は、イントラ予測操作を最も簡素化することができる。0074図11Bは、refHに追加される拡張部1104を示している。拡張部1104は、refVからの参照ピクセルを用いて形成する必要はない。拡張部1104は、拡張部1104の位置と空間的に対応する、先に複合化されたブロックの領域に属するピクセルを用いて形成することができる。図11Bでは、負の方向に拡張されるので、拡張refH部分1102及び部分1104は、-size1から2×sizeまでの範囲にわたる。拡張refHの範囲は、拡張refH内の参照ピクセルをアドレッシングするときに、適切なオフセットを追加することによって、0から3×size-1までの範囲に再スケーリングすることができる。refVの範囲を再スケーリングする場合も同じことが言える。0075別の実施形態では、angleの範囲限界は、自由に選択することができる。上述の実施形態では、angleは-sizeからsizeまでの範囲内-size≦angle≦sizeの値を取ると仮定される。言い換えると、上述の実施形態では、angleの範囲限界は、対象ブロックのsizeを用いて定義される。log2_rangelimitが正の整数であり、式rangelimit=1<<log2_rangelimitが成り立つように、範囲限界を2の整数乗を用いて定義することがやはり好ましいが、angleの範囲限界は、対象ブロックのsizeとは独立に定義できることに留意されたい。rangelimitのための適切な大きさの数を選択することによって、多数の予測方向を確立し、十分に広い角度間隔を取るangleの値によって表すことができる。0076angleの範囲限界が、対象ブロックのsizeとは独立に定義される場合、ステップ909、912、917、921を除き、図9及び図10に現れるsizeは、rangelimitで置き換える必要があり、log2_sizeは、log2_rangelimitで置き換える必要がある。図10のステップ1000において実行される比較angle≧-1も、angle×size/rangelimit≧-1又はangle×size≧-rangelimitで置き換える必要がある。さらに、図12及び図13のステップ1202及びステップ1301に現れるsizeは、rangelimitで置き換える必要があり、ステップ1204において実行される比較col=angleは、col=angle×size/rangelimitで置き換える必要がある。0077angleの範囲限界としてrangelimitが導入される場合、上で提供された表1は、以下のように変更することができる。表2では、rangelimitは、32に設定される。Angleは、rangelimit×tanπ×angle/8の整数近似に等しく、ここで、angle=1、2、3、4、5、6、7、8である。InvAngleは、256×rangelimit/angleに等しい。表2の値はすべて、切り上げによって導出される整数である。切り上げを行う代わりに、数値の端数を切り捨てることもできる。以下で提供される表3では、InvAngleは、32×rangelimit/angleに等しい。256の代わりに32が使用されるので、予測の精度は、表2の精度よりも必然的に低い。0078図14は、図10に示されるプロセスをさらに簡略化する別の実施形態を示すフローチャートである。参照ピクセルをrefVからrefHにコピーする図10に示されるプロセスは、フローがメイン予測ループに入る前に実行されるが、図14に示されるコピープロセスは、メイン予測ループの内側で実行される。また、図14に示されるプロセスでは、変数InvAngleが除去されている。図14に示されるステップ900、902、921は、図10の対応するステップからのものである。0079ステップ1401において、カウンタlastIntが、-1に初期化される。lastIntは、refHに追加された最終ピクセルのインデックスを表す。ステップ902において、posが、angle×row1によって計算される。上で説明したように、posは、境界とangleによって表される予測方向との交差の位置を識別する。図9の文脈では、ステップ902は、水平境界とangleによって表される予測方向との交差の位置を識別するposを生成する。さらに、ステップ902では、posの整数部がintに記憶され、posの小数部がfracに記憶される。ステップ1402において、intがlastIntよりも小さいかどうかが判定される。intがlastIntよりも小さい場合、rowによって識別されるrefVの参照ピクセルが、refHのint1によって識別されるアドレスにコピーされる。ステップ1404は、図9及び図10に示されるステップ904、905、906、907、908、909、910、911、912から成り、それらの説明はここでは繰り返さない。ステップ1405において、intがlastIntにコピーされる。intをlastIntにコピーする操作は、ステップ1405の代わりに、ステップ1403において実行することができる。0080ステップ1403におけるコピー操作は、ステップ1202及びステップ1302においてコピーされるのと同じピクセルのコピーをもたらし、これらのステップでは、切り捨てが使用される。ステップ1403は、ステップ902において計算された小数部fracが、rangelimitangle>>1によって定義されるオフセットよりも大きいという条件が成り立つ場合に、ステップ1403においてrowの代わりにrow1を使用することによって、最も近い整数に丸めるように変更することができる。angleは-veであり、fracはveであることに留意されたい。row1の使用は、切り上げをもたらす。rowを条件付きで1だけインクリメントするため、32ビット算術では、offset-fracの右シフトは、fracがoffsetよりも大きい場合は、-1をもたらし、それ以外の場合は、0をもたらすことを前提して、ステップ1403において実行されるプロセスは、refH[int1]←refV[row-offset-frac>>31]に変更される。したがって、アドレス識別子row-offset-frac>>31は、fracがoffsetよりも大きい場合は、row1になり、それ以外の場合は、rowになる。offsetがrangelimitになるように設定される場合、offset-fracは常に正であり、したがって、丸めは行われない。0081図14に示されるプロセスを実施する、Cプログラミング言語で開発したソースコードが、以下に示されている。ソースコードは、httphevckwbbccouksvnjctvcal24tags07から入手可能なJCT-VCによって開発されたTMuC0.7ソフトウェアの部分であるTComPredictioncppファイル内に見出される、TComPredictionxPredIntraAng関数から変更したものである。0082上述の説明を読んだ後では、本発明の多くの代替形態及び変更形態が、当業者に明白になることは疑いないが、例によって示され、説明された特定の実施形態はいずれも、限定的なものと見なされることは決して意図していない。したがって、様々な実施形態の細部についての言及は、特許請求の範囲を限定することを意図しておらず、特許請求の範囲それ自体が、本発明に必須と見なされる特徴をもっぱら列挙する。"