(57)【特許請求の範囲】
【請求項１】
ビデオデータを符号化する方法であって、
前記ビデオデータの現在のブロックを符号化するために利用可能な複数のイントラ予測モードを取得することと、
前記複数のイントラ予測モードのうちのイントラ予測モードの現在のセットであって、少なくとも１つのイントラ予測モードを有するイントラ予測モードの予め定義されたセットを含む、現在のセット中で識別されたイントラ予測モードごとに近似コストを計算することと、ここにおいて、イントラ予測モードの前記現在のセットが、前記ビデオデータの前記現在のブロックを符号化するために利用可能な前記複数のイントラ予測モードよりも少ないイントラ予測モードを含む、
前記現在のブロックに隣接するビデオデータの１つまたは複数の隣接ブロックを符号化するために使用されるイントラ予測モードに基づいて決定される前記現在のブロックのための１つまたは複数の最尤イントラ予測モードのための近似コストを計算することと、
前記１つまたは複数の最尤イントラ予測モードのために計算された前記近似コストの各々をしきい値と比較することと、
前記比較に基づいて、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの１つまたは複数を前記１つまたは複数の最尤イントラ予測モードと置き換えることと、
イントラ予測モードの前記現在のセット中で識別されたイントラ予測モードごとにレートひずみコストを決定するために、イントラ予測モードの前記現在のセット中で識別された各イントラ予測モードに対してレートひずみ分析を行うことと、
前記現在のブロックを符号化するために前記決定されたレートひずみコストに基づいて、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの１つに従って前記現在のブロックに対してイントラ予測符号化を行うことと
を備える方法。
【請求項２】
イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのための計算された近似コストに基づいて追加のイントラ予測モードを探索することと、
前記追加のイントラ予測モードの各々のための近似コストを計算することと、
イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの少なくとも１つのために計算された前記近似コストと、前記追加のイントラ予測モードのために計算された前記近似コストのうちの少なくとも１つとの比較に基づいて、イントラ予測モードの前記現在のセットに前記追加のイントラ予測モードを追加することと
をさらに備える、請求項１に記載の方法。
【請求項３】
前記現在のセット中に含まれる最低近似コストに関連するモードが角度モードであるかどうかを決定することと、
前記現在のセット中に含まれる前記最低近似コストに関連する前記モードが角度モードであると決定したことに応答して、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのために計算された前記近似コストに基づいて、追加のイントラ予測モードを探索することと
をさらに備える、請求項１に記載の方法。
【請求項４】
複数の角度モードから角度モードを選択することと、
前記角度モードがカットリスト中に含まれるかどうかを決定することと、ここにおいて、前記カットリストが、前記しきい値を満たさない確率で発生する少なくとも１つのイントラ予測モードを備える、
前記角度モードが前記カットリスト中に含まれると決定したことに応答して、前記角度モードのための近似コストを決定しないことと
をさらに備える、請求項１に記載の方法。
【請求項５】
前記角度モードが第１の角度モードであり、前記方法が、
前記第１の角度モードからのオフセットに少なくとも部分的に基づいて第２の角度モードを決定することと、
前記第２の角度モードが前記カットリスト中に含まれないと決定したことに応答して、
前記第２の角度モードに関連する近似コストを計算することと、
前記現在のセット中に前記第２の角度モードを挿入することと
をさらに備える、請求項４に記載の方法。
【請求項６】
複数の最尤モードから最低近似コストに関連する最尤モードを決定することと、
前記最尤モードの近似コストと前記現在のセット中の少なくとも１つのモードの近似コストとの間の差に少なくとも部分的に基づいて値を決定することと、
前記値が前記しきい値を満たすと決定したことに応答して、前記現在のセット中の前記少なくとも１つのモードを置き換えるために前記現在のセット中に前記最尤モードを挿入することと
をさらに備える、請求項１に記載の方法。
【請求項７】
前記現在のセット中の前記少なくとも１つのモードが、前記現在のセット中の最大近似コストに関連付けられ、
前記値は、前記値が前記しきい値よりも小さいときに前記しきい値を満たす、請求項６に記載の方法。
【請求項８】
前記現在のセット中の最低近似コストに関連する第１の角度モードを決定することと、ここにおいて、前記第１の角度モードが第１のモードインデックスに関連付けられる、
前記第１のモードインデックスとステップ値との和を備える第２のモードインデックスに関連する第２の角度モードを決定することと、
前記第１のモードインデックスと前記ステップ値との差を備える第３のモードインデックスに関連する第３の角度モードを決定することと
をさらに備える、請求項１に記載の方法。
【請求項９】
前記第１の角度モードに関連する前記最低近似コストが第１の近似コストであり、前記方法が、
前記第２の角度モードに関連する第２の近似コストを決定することと、
前記第３の角度モードに関連する第３の近似コストを決定することと、
前記第２の近似コストまたは前記第３の近似コストのうちの少なくとも１つが前記第１の近似コストよりも小さいと決定したことに応答して、前記第１の角度モードを置き換えるために前記現在のセット中に、前記第１の近似コストよりも小さい前記第２の近似コストまたは前記第３の近似コストのうちの前記少なくとも１つにそれぞれ関連する前記第２の角度モードまたは前記第３の角度モードを挿入することと
をさらに備える、請求項８に記載の方法。
【請求項１０】
前記現在のセット中に挿入された前記第２の角度モードまたは前記第３の角度モードのうちの前記少なくとも１つが選択モードであり、前記方法が、
前記ステップ値と前記選択モードとに少なくとも部分的に基づく更新ステップ値を決定することと、
前記更新ステップ値が前記しきい値を満たすと決定したことに応答して、前記現在のブロックに対してイントラ予測符号化を行うために前記現在のセット中で最低のフルレートひずみコストに関連するモードを選択することと、
前記更新ステップ値が前記しきい値を満たさないと決定したことに応答して、
前記選択モードに関連するインデックスと前記更新ステップ値との和を備える第４のモードインデックスに関連する第４の角度モードを決定することと、
前記選択モードに関連する前記インデックスと前記更新ステップ値との差を備える第５のモードインデックスに関連する第５の角度モードを決定することと、
前記第４の角度モードの第４の近似コストまたは前記第５の角度モードの第５の近似コストのうちの少なくとも１つが前記選択モードに関連する近似コストよりも小さいと決定したことに応答して、前記現在のセット中に、前記選択モードに関連する前記近似コストよりも小さい前記第４の近似コストまたは前記第５の近似コストのうちの前記少なくとも１つにそれぞれ関連する前記第４の角度モードまたは前記第５の角度モードを挿入することと
をさらに備える、請求項９に記載の方法。
【請求項１１】
ビデオデータを符号化するためにイントラ予測プロセスを行うように構成されたビデオ符号化デバイスであって、前記ビデオ符号化デバイスは、
ビデオデータの現在のブロックを記憶するように構成されたメモリと、
前記ビデオデータの前記現在のブロックを符号化するために利用可能な複数のイントラ予測モードを取得することと、
前記複数のイントラ予測モードのうちのイントラ予測モードの現在のセットであって、少なくとも１つのイントラ予測モードを有するイントラ予測モードの予め定義されたセットを含む、現在のセット中で識別されたイントラ予測モードごとに近似コストを計算することと、ここにおいて、イントラ予測モードの前記現在のセットが、前記ビデオデータの前記現在のブロックを符号化するために利用可能な前記複数のイントラ予測モードよりも少ないイントラ予測モードを含む、
前記現在のブロックに隣接するビデオデータの１つまたは複数の隣接ブロックを符号化するために使用されるイントラ予測モードに基づいて決定される前記現在のブロックのための１つまたは複数の最尤イントラ予測モードのための近似コストを計算することと、
前記１つまたは複数の最尤イントラ予測モードのために計算された前記近似コストの各々をしきい値と比較することと、
前記比較に基づいて、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの１つまたは複数を前記１つまたは複数の最尤イントラ予測モードと置き換えることと、
イントラ予測モードの前記現在のセット中で識別されたイントラ予測モードごとにレートひずみコストを決定するために、イントラ予測モードの前記現在のセット中で識別された各イントラ予測モードに対してレートひずみ分析を行うことと、
前記現在のブロックを符号化するために前記決定されたレートひずみコストに基づいて、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの１つに従って前記現在のブロックに対してイントラ予測符号化を行うことと
を行うように構成されたプロセッサ
を備えるビデオ符号化デバイス。
【請求項１２】
前記プロセッサが、
イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのための計算された近似コストに基づいて追加のイントラ予測モードを探索することと、
前記追加のイントラ予測モードの各々のための近似コストを計算することと、
イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの少なくとも１つのために計算された前記近似コストと、前記追加のイントラ予測モードのために計算された前記近似コストのうちの少なくとも１つとの比較に基づいて、イントラ予測モードの前記現在のセットに前記追加のイントラ予測モードを追加することと
を行うようにさらに構成された、請求項１１に記載のビデオ符号化デバイス。
【請求項１３】
前記プロセッサが、
前記現在のセット中に含まれる最低近似コストに関連するモードが角度モードであるかどうかを決定することと、
前記現在のセット中に含まれる前記最低近似コストに関連する前記モードが角度モードであると決定したことに応答して、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのために計算された前記近似コストに基づいて、追加のイントラ予測モードを探索することと
を行うようにさらに構成された、請求項１１に記載のビデオ符号化デバイス。
【請求項１４】
前記プロセッサが、
複数の角度モードから角度モードを選択することと、
前記角度モードがカットリスト中に含まれるかどうかを決定することと、ここにおいて、前記カットリストが、前記しきい値を満たさない確率で発生する少なくとも１つのイントラ予測モードを備える、
前記角度モードが前記カットリスト中に含まれると決定したことに応答して、前記角度モードのための近似コストを決定しないことと
を行うようにさらに構成された、請求項１１に記載のビデオ符号化デバイス。
【請求項１５】
前記角度モードが第１の角度モードであり、前記プロセッサが、
前記第１の角度モードからのオフセットに少なくとも部分的に基づいて第２の角度モードを決定することと、
前記第２の角度モードが前記カットリスト中に含まれないと決定したことに応答して、
前記第２の角度モードに関連する近似コストを計算することと、
前記現在のセット中に前記第２の角度モードを挿入することと
を行うようにさらに構成された、請求項１４に記載のビデオ符号化デバイス。
【請求項１６】
前記プロセッサが、
複数の最尤モードから最低近似コストに関連する最尤モードを決定することと、
前記最尤モードの近似コストと前記現在のセット中の少なくとも１つのモードの近似コストとの間の差に少なくとも部分的に基づいて値を決定することと、
前記値が前記しきい値を満たすと決定したことに応答して、前記現在のセット中の前記少なくとも１つのモードを置き換えるために前記現在のセット中に前記最尤モードを挿入することと
を行うようにさらに構成された、請求項１１に記載のビデオ符号化デバイス。
【請求項１７】
前記現在のセット中の前記少なくとも１つのモードが、前記現在のセット中の最大近似コストに関連付けられ、
前記値は、前記値が前記しきい値よりも小さいときに前記しきい値を満たす、請求項１６に記載のビデオ符号化デバイス。
【請求項１８】
前記プロセッサが、
前記現在のセット中の最低近似コストに関連する第１の角度モードを決定することと、ここにおいて、前記第１の角度モードが第１のモードインデックスに関連付けられる、
前記第１のモードインデックスとステップ値との和を備える第２のモードインデックスに関連する第２の角度モードを決定することと、
前記第１のモードインデックスと前記ステップ値との差を備える第３のモードインデックスに関連する第３の角度モードを決定することと
を行うようにさらに構成された、請求項１１に記載のビデオ符号化デバイス。
【請求項１９】
前記第１の角度モードに関連する前記最低近似コストが第１の近似コストであり、前記プロセッサが、
前記第２の角度モードに関連する第２の近似コストを決定することと、
前記第３の角度モードに関連する第３の近似コストを決定することと、
前記第２の近似コストまたは前記第３の近似コストのうちの少なくとも１つが前記第１の近似コストよりも小さいと決定したことに応答して、前記第１の角度モードを置き換えるために前記現在のセット中に、前記第１の近似コストよりも小さい前記第２の近似コストまたは前記第３の近似コストのうちの前記少なくとも１つにそれぞれ関連する前記第２の角度モードまたは前記第３の角度モードを挿入することと
を行うようにさらに構成された、請求項１８に記載のビデオ符号化デバイス。
【請求項２０】
前記現在のセット中に挿入された前記第２の角度モードまたは前記第３の角度モードのうちの前記少なくとも１つが選択モードであり、前記プロセッサが、
前記ステップ値と前記選択モードとに少なくとも部分的に基づく更新ステップ値を決定することと、
前記更新ステップ値が前記しきい値を満たすと決定したことに応答して、前記現在のブロックに対してイントラ予測符号化を行うために前記現在のセット中で最低のフルレートひずみコストに関連するモードを選択することと、
前記更新ステップ値が前記しきい値を満たさないと決定したことに応答して、
前記選択モードに関連するインデックスと前記更新ステップ値との和を備える第４のモードインデックスに関連する第４の角度モードを決定することと、
前記選択モードに関連する前記インデックスと前記更新ステップ値との差を備える第５のモードインデックスに関連する第５の角度モードを決定することと、
前記第４の角度モードの第４の近似コストまたは前記第５の角度モードの第５の近似コストのうちの少なくとも１つが前記選択モードに関連する近似コストよりも小さいと決定したことに応答して、前記現在のセット中に、前記選択モードに関連する前記近似コストよりも小さい前記第４の近似コストまたは前記第５の近似コストのうちの前記少なくとも１つにそれぞれ関連する前記第４の角度モードまたは前記第５の角度モードを挿入することと
を行うようにさらに構成された、請求項１９に記載のビデオ符号化デバイス。
【請求項２１】
ビデオデータを符号化するためにイントラ予測プロセスを行うように構成されたビデオ符号化デバイスであって、前記ビデオ符号化デバイスは、
前記ビデオデータの現在のブロックを符号化するために利用可能な複数のイントラ予測モードを取得するための手段と、
前記複数のイントラ予測モードのうちのイントラ予測モードの現在のセットであって、少なくとも１つのイントラ予測モードを有するイントラ予測モードの予め定義されたセットを含む、現在のセット中で識別されたイントラ予測モードごとに近似コストを計算するための手段と、ここにおいて、イントラ予測モードの前記現在のセットが、前記ビデオデータの前記現在のブロックを符号化するために利用可能な前記複数のイントラ予測モードよりも少ないイントラ予測モードを含む、
前記現在のブロックに隣接するビデオデータの１つまたは複数の隣接ブロックを符号化するために使用されるイントラ予測モードに基づいて決定される前記現在のブロックのための１つまたは複数の最尤イントラ予測モードのための近似コストを計算するための手段と、
前記１つまたは複数の最尤イントラ予測モードのために計算された前記近似コストの各々をしきい値と比較するための手段と、
前記比較に基づいて、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの１つまたは複数を前記１つまたは複数の最尤イントラ予測モードと置き換えるための手段と、
イントラ予測モードの前記現在のセット中で識別されたイントラ予測モードごとにレートひずみコストを決定するために、イントラ予測モードの前記現在のセット中で識別された各イントラ予測モードに対してレートひずみ分析を行うための手段と、
前記現在のブロックを符号化するために前記決定されたレートひずみコストに基づいて、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの１つに従って前記現在のブロックに対してイントラ予測符号化を行うための手段と
を備えるビデオ符号化デバイス。
【請求項２２】
イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのための計算された近似コストに基づいて追加のイントラ予測モードを探索するための手段と、
前記追加のイントラ予測モードの各々のための近似コストを計算するための手段と、
イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの少なくとも１つのために計算された前記近似コストと、前記追加のイントラ予測モードのために計算された前記近似コストのうちの少なくとも１つとの比較に基づいて、イントラ予測モードの前記現在のセットに前記追加のイントラ予測モードを追加するための手段と
をさらに備える、請求項２１に記載のビデオ符号化デバイス。
【請求項２３】
前記現在のセット中に含まれる最低近似コストに関連するモードが角度モードであるかどうかを決定するための手段と、
前記現在のセット中に含まれる前記最低近似コストに関連する前記モードが角度モードであると決定したことに応答して、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのために計算された前記近似コストに基づいて、追加のイントラ予測モードを探索するための手段と
をさらに備える、請求項２１に記載のビデオ符号化デバイス。
【請求項２４】
複数の角度モードから角度モードを選択するための手段と、
前記角度モードがカットリスト中に含まれるかどうかを決定するための手段と、ここにおいて、前記カットリストが、前記しきい値を満たさない確率で発生する少なくとも１つのイントラ予測モードを備える、
前記角度モードが前記カットリスト中に含まれると決定したことに応答して、前記角度モードのための近似コストを決定しないための手段と
をさらに備える、請求項２１に記載のビデオ符号化デバイス。
【請求項２５】
前記角度モードが第１の角度モードであり、前記ビデオ符号化デバイスが、
前記第１の角度モードからのオフセットに少なくとも部分的に基づいて第２の角度モードを決定するための手段と、
前記第２の角度モードが前記カットリスト中に含まれないと決定したことに応答して、
前記第２の角度モードに関連する近似コストを計算するための手段と、
前記現在のセット中に前記第２の角度モードを挿入するための手段と
をさらに備える、請求項２４に記載のビデオ符号化デバイス。
【請求項２６】
複数の最尤モードから最低近似コストに関連する最尤モードを決定するための手段と、
前記最尤モードの近似コストと前記現在のセット中の少なくとも１つのモードの近似コストとの間の差に少なくとも部分的に基づいて値を決定するための手段と、
前記値が前記しきい値を満たすと決定したことに応答して、前記現在のセット中の前記少なくとも１つのモードを置き換えるために前記現在のセット中に前記最尤モードを挿入するための手段と
をさらに備える、請求項２１に記載のビデオ符号化デバイス。
【請求項２７】
前記現在のセット中の前記少なくとも１つのモードが、前記現在のセット中の最大近似コストに関連付けられ、
前記値は、前記値が前記しきい値よりも小さいときに前記しきい値を満たす、請求項２６に記載のビデオ符号化デバイス。
【請求項２８】
前記現在のセット中の最低近似コストに関連する第１の角度モードを決定するための手段と、ここにおいて、前記第１の角度モードが第１のモードインデックスに関連付けられる、
前記第１のモードインデックスとステップ値との和を備える第２のモードインデックスに関連する第２の角度モードを決定するための手段と、
前記第１のモードインデックスと前記ステップ値との差を備える第３のモードインデックスに関連する第３の角度モードを決定するための手段と
をさらに備える、請求項２１に記載のビデオ符号化デバイス。
【請求項２９】
前記第１の角度モードに関連する前記最低近似コストが第１の近似コストであり、前記ビデオ符号化デバイスが、
前記第２の角度モードに関連する第２の近似コストを決定するための手段と、
前記第３の角度モードに関連する第３の近似コストを決定するための手段と、
前記第２の近似コストまたは前記第３の近似コストのうちの少なくとも１つが前記第１の近似コストよりも小さいと決定したことに応答して、前記第１の角度モードを置き換えるために前記現在のセット中に、前記第１の近似コストよりも小さい前記第２の近似コストまたは前記第３の近似コストのうちの前記少なくとも１つにそれぞれ関連する前記第２の角度モードまたは前記第３の角度モードを挿入するための手段と
をさらに備える、請求項２８に記載のビデオ符号化デバイス。
【請求項３０】
前記現在のセット中に挿入された前記第２の角度モードまたは前記第３の角度モードのうちの前記少なくとも１つが選択モードであり、前記ビデオ符号化デバイスが、
前記ステップ値と前記選択モードとに少なくとも部分的に基づく更新ステップ値を決定するための手段と、
前記更新ステップ値が前記しきい値を満たすと決定したことに応答して、前記現在のブロックに対してイントラ予測符号化を行うために前記現在のセット中で最低のフルレートひずみコストに関連するモードを選択するための手段と、
前記更新ステップ値が前記しきい値を満たさないと決定したことに応答して、
前記選択モードに関連するインデックスと前記更新ステップ値との和を備える第４のモードインデックスに関連する第４の角度モードを決定するための手段と、
前記選択モードに関連する前記インデックスと前記更新ステップ値との差を備える第５のモードインデックスに関連する第５の角度モードを決定するための手段と、
前記第４の角度モードの第４の近似コストまたは前記第５の角度モードの第５の近似コストのうちの少なくとも１つが前記選択モードに関連する近似コストよりも小さいと決定したことに応答して、前記現在のセット中に、前記選択モードに関連する前記近似コストよりも小さい前記第４の近似コストまたは前記第５の近似コストのうちの前記少なくとも１つにそれぞれ関連する前記第４の角度モードまたは前記第５の角度モードを挿入するための手段と
をさらに備える、請求項２９に記載のビデオ符号化デバイス。
【請求項３１】
実行されたとき、１つまたは複数のプロセッサに、
ビデオデータの現在のブロックを符号化するために利用可能な複数のイントラ予測モードを取得することと、
前記複数のイントラ予測モードのうちのイントラ予測モードの現在のセットであって、少なくとも１つのイントラ予測モードを有するイントラ予測モードの予め定義されたセットを含む、現在のセット中で識別されたイントラ予測モードごとに近似コストを計算することと、ここにおいて、イントラ予測モードの前記現在のセットが、前記ビデオデータの前記現在のブロックを符号化するために利用可能な前記複数のイントラ予測モードよりも少ないイントラ予測モードを含む、
前記現在のブロックに隣接するビデオデータの１つまたは複数の隣接ブロックを符号化するために使用されるイントラ予測モードに基づいて決定される前記現在のブロックのための１つまたは複数の最尤イントラ予測モードのための近似コストを計算することと、
前記１つまたは複数の最尤イントラ予測モードのために計算された前記近似コストの各々をしきい値と比較することと、
前記比較に基づいて、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの１つまたは複数を前記１つまたは複数の最尤イントラ予測モードと置き換えることと、
イントラ予測モードの前記現在のセット中で識別されたイントラ予測モードごとにレートひずみコストを決定するために、イントラ予測モードの前記現在のセット中で識別された各イントラ予測モードに対してレートひずみ分析を行うことと、
前記現在のブロックを符号化するために前記決定されたレートひずみコストに基づいて、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの１つに従って前記現在のブロックに対してイントラ予測符号化を行うことと
を行わせる命令を記憶したコンピュータ可読記憶媒体。
【請求項３２】
前記命令が、実行されたとき、前記１つまたは複数のプロセッサに、
イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのための計算された近似コストに基づいて追加のイントラ予測モードを探索することと、
前記追加のイントラ予測モードの各々のための近似コストを計算することと、
イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの少なくとも１つのために計算された前記近似コストと、前記追加のイントラ予測モードのために計算された前記近似コストのうちの少なくとも１つとの比較に基づいて、イントラ予測モードの前記現在のセットに前記追加のイントラ予測モードを追加することと
を行わせる、請求項３１に記載のコンピュータ可読記憶媒体。
【請求項３３】
前記命令が、実行されたとき、前記１つまたは複数のプロセッサに、
前記現在のセット中に含まれる最低近似コストに関連するモードが角度モードであるかどうかを決定することと、
前記現在のセット中に含まれる前記最低近似コストに関連する前記モードが角度モードであると決定したことに応答して、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのために計算された前記近似コストに基づいて、追加のイントラ予測モードを探索することと
を行わせる、請求項３１に記載のコンピュータ可読記憶媒体。
【請求項３４】
前記命令が、実行されたとき、前記１つまたは複数のプロセッサに、
複数の角度モードから角度モードを選択することと、
前記角度モードがカットリスト中に含まれるかどうかを決定することと、ここにおいて、前記カットリストが、前記しきい値を満たさない確率で発生する少なくとも１つのイントラ予測モードを備える、
前記角度モードが前記カットリスト中に含まれると決定したことに応答して、前記角度モードのための近似コストを決定しないことと
を行わせる、請求項３１に記載のコンピュータ可読記憶媒体。
【請求項３５】
前記角度モードが第１の角度モードであり、前記命令が、実行されたとき、前記１つまたは複数のプロセッサに、
前記第１の角度モードからのオフセットに少なくとも部分的に基づいて第２の角度モードを決定することと、
前記第２の角度モードが前記カットリスト中に含まれないと決定したことに応答して、
前記第２の角度モードに関連する近似コストを計算することと、
前記現在のセット中に前記第２の角度モードを挿入することと
を行わせる、請求項３４に記載のコンピュータ可読記憶媒体。
【請求項３６】
前記命令が、実行されたとき、前記１つまたは複数のプロセッサに、
複数の最尤モードから最低近似コストに関連する最尤モードを決定することと、
前記最尤モードの近似コストと前記現在のセット中の少なくとも１つのモードの近似コストとの間の差に少なくとも部分的に基づいて値を決定することと、
前記値が前記しきい値を満たすと決定したことに応答して、前記現在のセット中の前記少なくとも１つのモードを置き換えるために前記現在のセット中に前記最尤モードを挿入することと
を行わせる、請求項３１に記載のコンピュータ可読記憶媒体。
【請求項３７】
前記現在のセット中の前記少なくとも１つのモードが、前記現在のセット中の最大近似コストに関連付けられ、
前記値は、前記値が前記しきい値よりも小さいときに前記しきい値を満たす、請求項３６に記載のコンピュータ可読記憶媒体。
【請求項３８】
前記命令が、実行されたとき、前記１つまたは複数のプロセッサに、
前記現在のセット中の最低近似コストに関連する第１の角度モードを決定することと、ここにおいて、前記第１の角度モードが第１のモードインデックスに関連付けられる、
前記第１のモードインデックスとステップ値との和を備える第２のモードインデックスに関連する第２の角度モードを決定することと、
前記第１のモードインデックスと前記ステップ値との差を備える第３のモードインデックスに関連する第３の角度モードを決定することと
を行わせる、請求項３１に記載のコンピュータ可読記憶媒体。
【請求項３９】
前記第１の角度モードに関連する前記最低近似コストが第１の近似コストであり、前記命令が、実行されたとき、前記１つまたは複数のプロセッサに、
前記第２の角度モードに関連する第２の近似コストを決定することと、
前記第３の角度モードに関連する第３の近似コストを決定することと、
前記第２の近似コストまたは前記第３の近似コストのうちの少なくとも１つが前記第１の近似コストよりも小さいと決定したことに応答して、前記第１の角度モードを置き換えるために前記現在のセット中に、前記第１の近似コストよりも小さい前記第２の近似コストまたは前記第３の近似コストのうちの前記少なくとも１つにそれぞれ関連する前記第２の角度モードまたは前記第３の角度モードを挿入することと
を行わせる、請求項３８に記載のコンピュータ可読記憶媒体。
【請求項４０】
前記現在のセット中に挿入された前記第２の角度モードまたは前記第３の角度モードのうちの前記少なくとも１つが選択モードであり、前記命令が、実行されたとき、前記１つまたは複数のプロセッサに、
ステップ値と前記選択モードとに少なくとも部分的に基づく更新ステップ値を決定することと、
前記更新ステップ値が前記しきい値を満たすと決定したことに応答して、前記現在のブロックに対してイントラ予測符号化を行うために前記現在のセット中で最低のフルレートひずみコストに関連するモードを選択することと、
前記更新ステップ値が前記しきい値を満たさないと決定したことに応答して、
前記選択モードに関連するインデックスと前記更新ステップ値との和を備える第４のモードインデックスに関連する第４の角度モードを決定することと、
前記選択モードに関連する前記インデックスと前記更新ステップ値との差を備える第５のモードインデックスに関連する第５の角度モードを決定することと、
前記第４の角度モードの第４の近似コストまたは前記第５の角度モードの第５の近似コストのうちの少なくとも１つが前記選択モードに関連する近似コストよりも小さいと決定したことに応答して、前記現在のセット中に、前記選択モードに関連する前記近似コストよりも小さい前記第４の近似コストまたは前記第５の近似コストのうちの前記少なくとも１つにそれぞれ関連する前記第４の角度モードまたは前記第５の角度モードを挿入することと
を行わせる、請求項３９に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本開示は、ビデオコーディングに関し、より詳細には、ビデオコーディングのイントラ予測態様(intra prediction aspects)に関する。
【背景技術】
【０００２】
[0002]  デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信および受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。ＭＰＥＧとＩＴＵ−Ｔとのコラボレーションである「Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ−Ｖｉｄｅｏ  Ｃｏｄｉｎｇ」（ＪＣＴ−ＶＣ）によって開発されている高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格など、新しいビデオコーディング規格が開発されている。新生のＨＥＶＣ規格はＨ．２６５と呼ばれることがあるが、そのような名称は公式になされたものでない。
【発明の概要】
【０００３】
[0003]  概して、本開示では、複数の異なる予測モードから選択するときにモード選択の複雑さを低減するための技法について説明する。概して、ビデオコーダは、イントラモード符号化を使用して（例えば、同じピクチャの他のブロックに対して符号化される）、またはインターモード符号化を使用して（例えば、前にコーディングされたピクチャのブロックに対して符号化される）ピクチャのブロックをコーディングし得る。いくつかの例では、ビデオコーダは、多数の異なるモードから、所与のブロックをコーディングするためのモードを選択し得る。ビデオコーダは、選択モードのためのひずみのレートの近似を表す対応する近似コスト値に基づいてモードを選択し得る。可能な予測モードごとに近似コスト値を決定するのではなく、ビデオコーダは、最初に、低いひずみを与える可能性があるモードのサブセットを選択し、その後、低いひずみを与える追加のモードの探索を用いて選択サブセットを改善することによって、モードの数を低減し得る。
【０００４】
[0004]  一実施形態では、ビデオデータを符号化する方法は、少なくとも１つのイントラ予測モードを有するイントラ予測モードの予め定義されたセットを含むイントラ予測モードの現在のセット中で識別されたイントラ予測モードごとに近似コストを計算することを含む。イントラ予測モードの現在のセットは、ビデオデータの現在のブロックをコーディングするために利用可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含み得る。本方法はまた、現在のブロックに隣接するビデオデータの１つまたは複数の隣接ブロックを符号化するために使用されるイントラ予測モードに基づいて決定される現在のブロックのための１つまたは複数の最尤イントラ予測モードのための近似コストを計算することを含み得る。本方法は、１つまたは複数の最尤イントラ予測モードのために計算された近似コストの各々をしきい値と比較することをさらに含み得る。本方法はまた、比較に基づいて、イントラ予測モードの現在のセット中で識別されたイントラ予測モードのうちの１つまたは複数を１つまたは複数の最尤イントラ予測モードと置き換えることを含み得る。本方法は、イントラ予測モードの現在のセット中で識別されたイントラ予測モードごとにレートひずみコストを決定するために、イントラ予測モードの現在のセット中で識別された各イントラ予測モードに対してレートひずみ分析を行うことをさらに含み得る。本方法はまた、現在のブロックを符号化するために決定されたレートひずみコストに基づいて、イントラ予測モードの現在のセット中で識別されたイントラ予測モードのうちの１つに従って現在のブロックに対してイントラ予測コーディングを行うことを含み得る。
【０００５】
[0005]  一実施形態では、ビデオコーディングデバイスは、ビデオデータ、ビデオコーディングデバイスをコーディングするためにイントラ予測プロセスを行うように構成され得る。ビデオコーディングデバイスは、少なくとも１つのイントラ予測モードを有するイントラ予測モードの予め定義されたセットを含むイントラ予測モードの現在のセット中で識別されたイントラ予測モードごとに近似コストを計算することを行うように構成されたプロセッサを含み得る。ここにおいて、イントラ予測モードの現在のセットが、ビデオデータの現在のブロックをコーディングするために利用可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含む。ビデオコーディングデバイスは、現在のブロックに隣接するビデオデータの１つまたは複数の隣接ブロックを符号化するために使用されるイントラ予測モードに基づいて決定される現在のブロックのための１つまたは複数の最尤イントラ予測モードのための近似コストを計算することを行うようにさらに構成され得る。ビデオコーディングデバイスはまた、１つまたは複数の最尤イントラ予測モードのために計算された近似コストの各々をしきい値と比較することを行うように構成され得る。ビデオコーディングデバイスは、比較に基づいて、イントラ予測モードの現在のセット中で識別されたイントラ予測モードのうちの１つまたは複数を１つまたは複数の最尤イントラ予測モードと置き換えることを行うようにさらに構成され得る。ビデオコーディングデバイスはまた、イントラ予測モードの現在のセット中で識別されたイントラ予測モードごとにレートひずみコストを決定するために、イントラ予測モードの現在のセット中で識別された各イントラ予測モードに対してレートひずみ分析を行うように構成され得る。ビデオコーディングデバイスは、現在のブロックを符号化するために決定されたレートひずみコストに基づいて、イントラ予測モードの現在のセット中で識別されたイントラ予測モードのうちの１つに従って現在のブロックに対してイントラ予測コーディングを行うようにさらに構成され得る。
【０００６】
[0006]  一実施形態では、ビデオコーディングデバイスは、ビデオデータをコーディングするためにイントラ予測プロセスを行うように構成され得、ビデオコーディングデバイスは、少なくとも１つのイントラ予測モードを有するイントラ予測モードの予め定義されたセットを含むイントラ予測モードの現在のセット中で識別されたイントラ予測モードごとに近似コストを計算するための手段を含む。ここにおいて、イントラ予測モードの現在のセットが、ビデオデータの現在のブロックをコーディングするために利用可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含む。ビデオコーディングデバイスはまた、現在のブロックに隣接するビデオデータの１つまたは複数の隣接ブロックを符号化するために使用されるイントラ予測モードに基づいて決定される現在のブロックのための１つまたは複数の最尤イントラ予測モードのための近似コストを計算するための手段を含み得る。ビデオコーディングデバイスは、１つまたは複数の最尤イントラ予測モードのために計算された近似コストの各々をしきい値と比較するための手段をさらに含み得る。ビデオコーディングデバイスはまた、比較に基づいて、イントラ予測モードの現在のセット中で識別されたイントラ予測モードのうちの１つまたは複数を１つまたは複数の最尤イントラ予測モードと置き換えるための手段を含み得る。ビデオコーディングデバイスは、イントラ予測モードの現在のセット中で識別されたイントラ予測モードごとにレートひずみコストを決定するために、イントラ予測モードの現在のセット中で識別された各イントラ予測モードに対してレートひずみ分析を行うための手段をさらに含み得る。ビデオコーディングデバイスはまた、現在のブロックを符号化するために決定されたレートひずみコストに基づいて、イントラ予測モードの現在のセット中で識別されたイントラ予測モードのうちの１つに従って現在のブロックに対してイントラ予測コーディングを行うための手段を含み得る。
【０００７】
[0007]  一実施形態では、非一時的コンピュータ可読記憶媒体は、実行されたとき、１つまたは複数のプロセッサに、少なくとも１つのイントラ予測モードを有するイントラ予測モードの予め定義されたセットを含むイントラ予測モードの現在のセット中で識別されたイントラ予測モードごとに近似コストを計算することを行わせる命令を含む。ここにおいて、イントラ予測モードの現在のセットが、ビデオデータの現在のブロックをコーディングするために利用可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含む。非一時的コンピュータ可読記憶媒体はまた、実行されたとき、１つまたは複数のプロセッサに、現在のブロックに隣接するビデオデータの１つまたは複数の隣接ブロックを符号化するために使用されるイントラ予測モードに基づいて決定される現在のブロックのための１つまたは複数の最尤イントラ予測モードのための近似コストを計算することを行わせる命令を含み得る。非一時的コンピュータ可読記憶媒体はまた、実行されたとき、１つまたは複数のプロセッサに、１つまたは複数の最尤イントラ予測モードのために計算された近似コストの各々をしきい値と比較することを行わせる命令を含み得る。非一時的コンピュータ可読記憶媒体はまた、実行されたとき、１つまたは複数のプロセッサに、比較に基づいて、イントラ予測モードの現在のセット中で識別されたイントラ予測モードのうちの１つまたは複数を１つまたは複数の最尤イントラ予測モードと置き換えることを行わせる命令を含み得る。非一時的コンピュータ可読記憶媒体はまた、実行されたとき、１つまたは複数のプロセッサに、イントラ予測モードの現在のセット中で識別されたイントラ予測モードごとにレートひずみコストを決定するために、イントラ予測モードの現在のセット中で識別された各イントラ予測モードに対してレートひずみ分析を行わせる命令を含み得る。非一時的コンピュータ可読記憶媒体はまた、実行されたとき、１つまたは複数のプロセッサに、ビデオコーディングデバイスはまた、現在のブロックを符号化するために決定されたレートひずみコストに基づいて、イントラ予測モードの現在のセット中で識別されたイントラ予測モードのうちの１つに従って現在のブロックに対してイントラ予測コーディングを行わせる命令を含み得る。
【０００８】
[0008]  １つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、並びに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【０００９】
【図１】複数の異なる予測モードから選択するときにモード選択の複雑さを低減するための、本開示で説明する技法を利用するように構成され得る例示的なビデオ符号化および復号システムを示すブロック図である。
【図２】複数の異なる予測モードから選択するときにモード選択の複雑さを低減するための技法を実装し得るビデオエンコーダの一例を示すブロック図である。
【図３】本開示で説明される技法を実装し得る例示的なビデオデコーダを示すブロック図である。
【図４Ａ】本開示で説明する技法による、ビデオコーダが選択し得るイントラ予測モードの概念表現を示すブロック図である。
【図４Ｂ】本開示で説明する技法による、概念表現、イントラ予測コーディングされるべき現在のブロックと隣接ブロックとを示すブロック図である。
【図５】複数の異なる予測モードから選択するときにモード選択の複雑さを低減する、図２に示したビデオエンコーダなどのビデオコーダの例示的な動作を示すフローチャートである。
【図６】本開示の技法による、イントラ予測モードの現在のセットを最初に構築するために、図２に示したビデオエンコーダなどのビデオコーダの例示的な動作を示すフローチャートである。
【図７Ａ】イントラ予測モードの現在のセットを後処理するために、図２に示したビデオエンコーダなどのビデオコーダの例示的な動作を示すフローチャートである。
【図７Ｂ】イントラ予測モードの現在のセットを後処理するために、図２に示したビデオエンコーダなどのビデオコーダの例示的な動作を示すフローチャートである。
【図８】イントラ予測モードの現在のセットを改善するために、図２に示したビデオエンコーダなどのビデオコーダの例示的な動作を示すフローチャートである。
【発明を実施するための形態】
【００１０】
[0019]  複数の異なる予測モードから選択するときにモード選択の複雑さを低減することをビデオコーダ、そのようなビデオエンコーダが行うことを可能にし得る技法について、本開示で説明する。概して、符号化ビデオデータは予測データと残差データとを含み得る。例えば、ビデオエンコーダは、イントラ予測モード(intra-prediction mode)またはインター予測モード(inter-prediction mode)中に予測データを生成し得る。例えば、イントラ予測は、概して、あるピクチャのブロック中のピクセル値を、同じピクチャの隣接する、前にコーディングされたブロック中の参照サンプルに対して予測することを伴い、ここで、選択された前にコーディングされたブロックは、参照ブロック(reference block)と呼ばれることがある。選択された参照ブロックが予測されるべきブロックと同じピクチャからのものであるので、イントラ予測は空間的予測(spatial prediction)と呼ばれることもある。インター予測は、一般に、あるピクチャのブロック中のピクセル値を、時間的に除去されたピクチャ中の１つまたは複数の参照サンプルに対して予測することを伴う。このために、選択された参照ブロックが、予測されるべきブロックを有するピクチャとは異なる（従って、時間的に除去される）ので、インター予測は、時間的予測(temporal prediction)と呼ばれることがある。
【００１１】
[0020]  イントラ予測を行うとき、ビデオエンコーダは、複数の異なるイントラ予測モードの中から選択し得る。イントラ予測を行うとき、ビデオエンコーダは、しばしば、３５個のイントラ予測モードの各々に関連する近似コストを分析する。この近似コストは、フルレートひずみコストに近似し得る。フルレートひずみコストを計算することは、一般に、ビデオエンコーダがイントラ予測モードの各々を使用して予測ブロックを計算することを必要とする。ビデオエンコーダは、次いで、予測ブロックの各々と（上述の残差ピクセル値を指定する「残差ブロック(residual block)」と一般に呼ばれる）現在のブロックとの間の差を決定し、空間領域から周波数領域に残差ブロックの各々を変換する。次に、ビデオエンコーダは、変換された残差ブロックの各々を量子化して、対応する符号化ビデオブロックを生成し得る。最後に、ビデオエンコーダは、符号化ビデオブロックを復号して、ひずみメトリックを決定するために復号ビデオブロックの各々を現在のブロックと比較し得る。さらに、このフルレートひずみ分析は、イントラ予測モードの各々について、符号化ビデオブロックの各々をシグナリングするために使用されるビット量を計算することを伴う。従って、ビデオエンコーダは、３５個のイントラ予測モードのうちの対応する１つを使用して予測されたブロックの各々に対してこのレートひずみ分析を行うのではなく、近似コストを計算し得る。
【００１２】
[0021]  いくつかの例では、ビデオエンコーダは、イントラ予測モードの各々に対して予測された予測ブロックの各々のための近似コストを計算し得る。例えば、ビデオエンコーダは、３５個のイントラ予測モードの各々に対応する３５個の近似コストを最初に計算し得る。近似コストは、いくつかの状況では、レートひずみコストに間違って近似し得るので、ビデオエンコーダは、次いで、イントラ予測モードの何らかのサブセットに対してフルレートひずみ分析を行い得る。
【００１３】
[0022]  サブセットを使用した上記の簡略化は、ブルートフォースな探索と比較して必要とされる計算量を低減し得るが、そのような技法は、全体的に、３５個のイントラ予測モードの各々に対応する近似されたコストの３５回の計算を依然として必要とし得る。そのような技法は、ビデオエンコーダが計算集約的なフルレートひずみ分析を行う回数を低減し得るが、このプロセスは、３５個のモードの各々のための近似コストを計算するために必要な複雑さと時間とを考えると、ビデオデータのリアルタイムな符号化またはほぼリアルタイムな符号化に好適でないことがある。いくつかのリアルタイムビデオ符号化環境では、すべての可能なモードのための近似コストを計算する処理要件は、設計制約を超えることがある。
【００１４】
[0023]  本開示で説明する技法によれば、ビデオエンコーダは、近似、場合によっては、フルレートひずみ分析が行われるモードの数を低減し、それによって、イントラ予測プロセスを行うことに関連する時間と複雑さとを潜在的に低減し得る。イントラ予測プロセスを行うことに関連する時間と複雑さとを低減することによって、ビデオエンコーダは、リアルタイムのビデオ符号化またはほぼリアルタイムのビデオ符号化を行い得る。
【００１５】
[0024]  動作中、ビデオエンコーダは、１つ以上のイントラ予測モードを含むが、ビデオデータの現在のブロックをコーディングするために利用可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含むイントラ予測モードの予め定義されたセット中で識別されたイントラ予測モードごとに近似コストを計算し得る。しばしば、この予め定義されたセットは、イントラ予測を行うときに使用される可能性が統計的に高いことがわかっているモードを含む。いくつかの事例では、この予め定義されたセットは固定され得る。一例では、この予め定義されたセットは、モード０、１および２６を含む。この予め定義されたセットは、この時点で、現在のブロックのためのイントラ予測モードの現在のセットを備え得る。いくつかの事例では、予め定義されたセットは、サンプリングオフセットを用いてサンプリングされる平面モード(planar mode)、最尤モード(most probable modes)および角度モード(angular modes)によって形成され得る。
【００１６】
[0025]  ビデオエンコーダは、次いで、改良プロセスにおいて追加のイントラ予測モードを探索し、イントラ予測モードの現在のセットに追加のイントラ予測モードを追加し得る。いくつかの例では、この探索は、イントラ予測モードの予め定義されたセット中で識別されたモードごとに計算される近似コストの中で、最低相対計算近似コストを有するイントラ予測モードの予め定義されたセット中のモードから開始する二分探索に似ていることがある。
【００１７】
[0026]  例示のために、モード２６が本例において最低近似コストを有し得る。この仮定の下で、二分探索は、モード２６から開始し得、ここで、モード値、すなわち、２６が、何らかのオフセットＦだけ減分または増分されて、２６＋Ｆおよび２６−Ｆに至る。ビデオエンコーダは、次いで、モード２６＋Ｆおよび２６−Ｆの各々のための近似コストを計算し得、モード２６、２６＋Ｆおよび２６−Ｆの中で最低近似コストをもつモードを選択する。ビデオエンコーダは、次いで、この比較に基づいて現在のセット中のモードを置き換え、例えば、現在のセット中のモード２６を、モード２６、２６＋Ｆおよび２６−Ｆの中で最低近似コストを有する選択モードと置き換え得る。
【００１８】
[0027]  探索は、次いで、このようにして、ＦをＦ／２に半減させ、（モード２６＋Ｆとモード２６−Ｆのどちらもモード２６よりも小さい近似コストを有しない場合）モード２６に対して探索を再び集中させ、（モード２６＋Ｆが現在のセットに追加された場合）モード２６＋Ｆに対して探索を再び集中させ、または（モード２６−Ｆが現在のセットに追加された場合）モード２６−Ｆに対して探索を再び集中させて繰り返す。探索プロセスは、（Ｆが２のべき乗である値として始まったと仮定すると）Ｆが分数に除算されるまで継続する。従って、例えば、Ｆが４に設定される場合、プロセスは、Ｆ＝４で一度繰り返し、Ｆ＝２で一度繰り返し、Ｆ＝１で一度繰り返し、そして、Ｆ＝０．５のとき終了する。
【００１９】
[0028]  このようにして、ビデオエンコーダは、イントラ予測モードの現在のセット中で識別されたイントラ予測モードのための計算された近似コストに基づいて追加のイントラ予測モードを探索し得る。ビデオエンコーダは、次いで、追加のイントラ予測モードごとに近似コストを計算し、イントラ予測モードの現在のセット中で識別されたイントラ予測モードの各々のために計算された近似コストと、追加のイントラ予測モードのために計算された近似コストとの比較に基づいて、イントラ予測モードの現在のセットに追加のイントラ予測モードを追加し得る。従って、本開示の技法は、イントラ予測におけるモード決定を簡略化し得、同時に、予測の精度は、著しく低減され得ず、コーディング効率は、著しく犠牲にされ得ない。提案された技法は、いくつかの例では、近似コスト計算の数とフルレートひずみコスト計算の数とを１／２以上低減し得る。
【００２０】
[0029]  図１は、複数の異なる予測モードから選択するときにモード選択の複雑さを低減するための、本開示で説明する技法を利用するように構成され得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１の例に示すように、システム１０は、宛先デバイス１４によって復号するための符号化ビデオを生成するソースデバイス１２を含む。ソースデバイス１２は、通信チャネル１６を介して宛先デバイス１４に符号化ビデオを送信するか、あるいは、必要に応じて符号化ビデオが宛先デバイス１４によってアクセスされ得るように記憶媒体３４またはファイルサーバ３６に符号化ビデオを記憶し得る。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、（セルラー電話またはハンドセットおよびいわゆるスマートフォンを含む）電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソールなどを含む、多種多様なデバイスのいずれかを備え得る。
【００２１】
[0030]  多くの場合、そのようなデバイスはワイヤレス通信のために装備され得る。従って、通信チャネル１６はワイヤレスチャネルを備え得る。代替的に、通信チャネル１６は、ワイヤードチャネル、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、ワイヤレスチャネルおよびワイヤードチャネルまたは他のタイプの通信チャネルの組合せ、あるいは符号化ビデオデータの送信に好適な通信チャネルの組合せを備え得る。いくつかの例では、通信チャネル１６は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル１６は、従って、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス１２から宛先デバイス１４に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル１６は、ソースデバイス１２から宛先デバイス１４への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００２２】
[0031]  図１の例にさらに示すように、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、変調器／復調器２２（「モデム２２」）と、送信機２４とを含む。ソースデバイス１２において、ビデオソース１８は、ビデオキャプチャデバイスなどのソースを含み得る。ビデオキャプチャデバイスは、例として、ビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムのうちの１つまたは複数を含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明する技法は、ワイヤレスアプリケーションまたは設定に限定されず、ビデオ符号化および／または復号機能を含む非ワイヤレスデバイスに適用され得る。ソースデバイス１２および宛先デバイス１４は、従って、本明細書で説明する技法をサポートできるコーディングデバイスの例にすぎない。
【００２３】
[0032]  ビデオエンコーダ２０は、キャプチャされた、プリキャプチャされた、またはコンピュータ生成されたビデオを符号化し得る。符号化されると、ビデオエンコーダ２０が、この符号化されたビデオをモデム２２に出力し得る。モデム２２が、次いで、ワイヤレス通信プロトコルなどの通信規格に従って、符号化されたビデオを変調し得、その後、送信機２４が、変調された符号化ビデオデータを宛先デバイス１４に送信し得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【００２４】
[0033]  ビデオエンコーダ２０によって符号化される、キャプチャされた、プリキャプチャされた、またはコンピュータ生成されたビデオはまた、後の取出し、復号および消費のために、記憶媒体３４またはファイルサーバ３６上に記憶され得る。記憶媒体３４は、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化ビデオを記憶するための任意の他の好適なデジタル記憶媒体を含み得る。宛先デバイス１４は、記憶媒体３４またはファイルサーバ３６に記憶された符号化ビデオにアクセスし、この符号化ビデオを復号して、復号されたビデオを生成し、この復号されたビデオを再生し得る。
【００２５】
[0034]  ファイルサーバ３６は、符号化ビデオを記憶し、その符号化ビデオを宛先デバイス１４に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（例えば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、ローカルディスクドライブ、または符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイスに送信することとが可能な他のタイプのデバイスを含む。ファイルサーバ３６からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。宛先デバイス１４は、インターネット接続を含む、任意の標準のデータ接続に従ってファイルサーバ３６にアクセスし得る。この接続は、ワイヤレスチャネル（例えば、Ｗｉ−Ｆｉ（登録商標）接続またはワイヤレスセルラーデータ接続）、ワイヤード接続（例えば、ＤＳＬ、ケーブルモデムなど）、ワイヤードチャネルとワイヤレスチャネルの両方またはファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適な他のタイプの通信チャネルの組合せを含み得る。
【００２６】
[0035]  宛先デバイス１４は、図１の例では、受信機２６と、モデム２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。宛先デバイス１４の受信機２６は、チャネル１６を介して情報を受信し、モデム２８はその情報を復調して、ビデオデコーダ３０のために復調されたビットストリームを生成する。チャネル１６を介して通信される情報は、関連する符号化ビデオデータを復号する際にビデオデコーダ３０が使用するためにビデオエンコーダ２０によって生成される様々なシンタックス情報を含み得る。そのようなシンタックスはまた、記憶媒体３４またはファイルサーバ３６に記憶された符号化ビデオデータとともに含まれ得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、ビデオデータを符号化または復号することが可能であるそれぞれのエンコーダデコーダ（コーデック）の一部を形成し得る。
【００２７】
[0036]  宛先デバイス１４のディスプレイデバイス３２は、閲覧者による消費のためにビデオデータを提示することが可能な任意のタイプのディスプレイを表す。宛先デバイス１４に組み込まれるように示されているが、ディスプレイデバイス３２は、宛先デバイス１４に、またはその外部に組み込まれ得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み得、また外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス３２は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００２８】
[0037]  ビデオエンコーダ２０およびビデオデコーダ３０は、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格などのビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ：HEVC Test Model）に準拠し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ  ４，Ｐａｒｔ１０，アドバンストビデオコーディング（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例としては、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００２９】
[0038]  図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００３０】
[0039]  ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を行い得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００３１】
[0040]  ＪＣＴ−ＶＣは、ＨＥＶＣ規格の開発に取り組んでいる。ＨＥＶＣ規格化の取組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。ＨＭは、例えば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。例えば、Ｈ．２６４は９個のイントラ予測符号化モードを与えるが、ＨＭは３５個ものイントラ予測符号化モードを与え得る。
【００３２】
[0041]  概して、ＨＭの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット（ＬＣＵ：largest coding unit）に分割され得ることを記述する。ツリーブロックは、Ｈ．２６４規格のマクロブロックと同様の目的を有する。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、１つまたは複数のスライスに区分され得る。各ツリーブロックは、４分木（quadtree）に従ってコーディングユニット（ＣＵ）に分割され得る。例えば、４分木のルートノードとしてのツリーブロックは、４つの子ノードに分割され得、各子ノードは、次に、親ノードとなり、別の４つの子ノードに分割され得る。４分木のリーフノードとしての、最終的な、分割されていない子ノードは、コーディングノード、すなわち、コード化ビデオブロックを備える。コード化ビットストリームに関連するシンタックスデータは、ツリーブロックが分割され得る最大回数を定義し得、コーディングノードの最小サイズをも定義し得る。
【００３３】
[0042]  ＣＵは、コーディングノードと、コーディングノードに関連する予測ユニット（ＰＵ：prediction unit）および変換ユニット（ＴＵ：transform unit）とを含む。ＣＵのサイズは、コーディングノードのサイズに対応し、形状が方形でなければならない。ＣＵのサイズは、８×８ピクセルから最大６４×６４以上のピクセルを有するツリーブロックのサイズまでに及び得る。各ＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含み得る。ＣＵに関連するシンタックスデータは、例えば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵが、スキップモード符号化もしくはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかの間で異なり得る。ＰＵは、形状が非方形になるように区分され得る。ＣＵに関連するシンタックスデータは、例えば、４分木に従ってＣＵを１つまたは複数のＴＵに区分することも記述し得る。ＴＵは、形状が方形または非方形であり得る。
【００３４】
[0043]  ＨＥＶＣ規格は、ＣＵごとに異なり得るＴＵに従う変換を可能にする。ＴＵは、一般に、区分されたＬＣＵについて定義された所与のＣＵ内のＰＵのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。ＴＵは、一般に、ＰＵと同じサイズであるかまたはＰＵよりも小さい。いくつかの例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ：residual quad tree）として知られる４分木構造を使用して、より小さいユニットに再分割され得る。ＲＱＴのリーフノードは変換ユニット（ＴＵ）と呼ばれることがある。ＴＵに関連するピクセル差分値は、変換されて変換係数が生成され得、その変換係数は量子化され得る。
【００３５】
[0044]  概して、ＰＵは、予測プロセスに関係するデータを含む。例えば、ＰＵがイントラモード符号化されるとき、ＰＵは、ＰＵについてのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵのための１つまたは複数の動きベクトルを定義するデータを含み得る。ＰＵの動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（例えば、１／４ピクセル精度もしくは１／８ピクセル精度）、動きベクトルが指す参照ピクチャ、予測方向（双予測かそれとも単予測か）および／または動きベクトルの参照ピクチャリスト（例えば、リスト０、リスト１、もしくはリストＣ）を記述し得る。
【００３６】
[0045]  概して、ＴＵは、変換プロセスと量子化プロセスとのために使用される。１つまたは複数のＰＵを有する所与のＣＵは、１つまたは複数の変換ユニット（ＴＵ）をも含み得る。予測の後に、ビデオエンコーダ２０は、ＰＵに対応する残差値を計算し得る。残差値は、エントロピーコーディングのためのシリアル化変換係数（serialized transform coefficient）を生成するために、ＴＵを使用して変換係数に変換され、量子化され、走査され得るピクセル差分値を備える。本開示では、一般に、ＣＵのコーディングノードを指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合において、本開示では、コーディングノード並びにＰＵおよびＴＵを含む、ツリーブロック、すなわち、ＬＣＵまたはＣＵを指す「ビデオブロック」という用語をも使用し得る。
【００３７】
[0046]  ビデオシーケンスは、一般に、一連のビデオフレームまたはピクチャを含む。ピクチャグループ（ＧＯＰ）は、概して、ビデオピクチャのうちの一連の１つまたは複数を備える。ＧＯＰは、ＧＯＰ中に含まれるいくつかのピクチャを記述するシンタックスデータを、ＧＯＰのヘッダ中、ピクチャのうちの１つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ２０は、一般に、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、ＣＵ内のコーディングノードに対応し得る。ビデオブロックは、サイズを固定することも変更することもでき、指定のコーディング規格に応じてサイズが異なることがある。
【００３８】
[0047]  一例として、ＨＭは、様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２ＮまたはＮ×ＮのＰＵサイズでのイントラ予測をサポートし、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、またはＮ×Ｎの対称的なＰＵサイズでのインター予測をサポートする。ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズでのインター予測のための非対称区分をサポートする。非対称区分では、ＣＵの一方向は区分されないが、他の方向は２５％と７５％とに区分される。２５％の区分に対応するＣＵの部分は、「ｎ」とその後ろに付く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」、または「Ｒｉｇｈｔ」という表示によって示される。従って、例えば、「２Ｎ×ｎＵ」は、上部の２Ｎ×０．５Ｎ  ＰＵと下部の２Ｎ×１．５Ｎ  ＰＵとで水平方向に区分された２Ｎ×２Ｎ  ＣＵを指す。
【００３９】
[0048]  本開示では、「Ｎ×Ｎ（NxN）」および「Ｎ×Ｎ（N by N）」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、例えば、１６×１６（16x16）ピクセルまたは１６×１６（16 by 16）ピクセルを指すために互換的に使用され得る。概して、１６×１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、概して、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、ただし、Ｎは非負整数値を表す。ブロック中のピクセルは行と列に構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。例えば、ブロックは、ＮｘＭピクセルを備え得、ここで、Ｍは、必ずしもＮに等しいとは限らない。
【００４０】
[0049]  ＣＵのＰＵを使用したイントラ予測コーディングまたはインター予測コーディングの後に、ビデオエンコーダ２０は、ＣＵのＴＵのための残差データを計算し得る。ＰＵは、（ピクセル領域とも呼ばれる）空間領域においてピクセルデータを備え得、ＴＵは、変換、例えば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、ＰＵに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ２０は、ＣＵのための残差データを含むＴＵを形成し、次いで、ＴＵを変換して、ＣＵの変換係数を生成し得る。
【００４１】
[0050]  変換係数を生成するための任意の変換に続いて、ビデオエンコーダ２０は、変換係数の量子化を行い得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。例えば、量子化中にｎビット値がｍビット値に切り捨てられ得、ただし、ｎはｍよりも大きい。
【００４２】
[0051]  いくつかの例では、ビデオエンコーダ２０は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するために予め定義された走査順序を利用し得る。他の例では、ビデオエンコーダ２０は適応走査を行い得る。量子化変換係数を走査して１次元ベクトルを形成した後に、ビデオエンコーダ２０は、例えば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context-adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context-adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディング、または別のエントロピー符号化方法に従って１次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ２０はまた、ビデオデータを復号する際にビデオデコーダ３０が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
【００４３】
[0052]  ＣＡＢＡＣを行うために、ビデオエンコーダ２０は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、例えば、シンボルの隣接値が非０であるか否かに関係し得る。ＣＡＶＬＣを行うために、ビデオエンコーダ２０は、送信されるべきシンボルの可変長コードを選択し得る。ＶＬＣにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、ＶＬＣの使用は、例えば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
【００４４】
[0053]  前に説明したように、イントラ予測のためのモードを選択するとき、いくつかのプロセスは、可能な各イントラ予測モードに対応する近似されたコストの計算を必要とし得る。いくつかのプロセスは、ビデオエンコーダが計算集約的なフルレートひずみ分析を行う回数を低減し得るが、このプロセスは、可能なイントラ予測モードの各々のための近似コストを計算するために必要な複雑さと時間とを考えると、ビデオデータのリアルタイムな符号化またはほぼリアルタイムな符号化に好適でないことがある。
【００４５】
[0054]  本開示の技法によれば、ビデオエンコーダ２０は、イントラ予測のための高速モード決定技法を実装し得る。ビデオエンコーダ２０は、すべての可能なイントラ予測モードを一様にサンプリングし、カットリスト中の１つまたは複数の予測モードをフィルタ処理して除去することによって、予備モードの現在のセットを最初に構築し得る。ビデオエンコーダ２０は、次いで、現在のセットのモードにわたる改善探索（refinery search）を行い得る。最後に、ビデオエンコーダ２０は、最尤モードと非最尤モードとのそれぞれの近似コストの関係に基づいて、最大近似コストをもつ現在のセットの非最尤モードを、最低近似コストに関連する最尤モードと置き換え得る。本開示のそのような技法は、近似コスト計算の数を、いくつかの例では、１７よりも少ない数に低減し、フルレートひずみコスト計算の数を（４×４および８×８ものＰＵサイズについては）３に、（８×８よりも大きいＰＵサイズについては）２に低減し得る。
【００４６】
[0055]  一例では、ビデオエンコーダ２０は、イントラ予測を行うときに使用される可能性が統計的に高いことがある予め定義された予測モードのセットを最初に決定する。ビデオエンコーダ２０は、次いで、近似コストを与える追加のイントラ予測モードを探索すること、例えば、イントラ予測モードの現在のセット中で識別されたイントラ予測モードのための計算された近似コストに基づいて追加のイントラ予測モードを探索することによってサブセットを改善し得る。例えば、ビデオエンコーダ２０は、探索中により低い近似コストを与えるイントラ予測モードを識別し得る。識別されたイントラ予測モードに関連する近似ひずみコストに基づいて、ビデオエンコーダ２０は、（予め定義された予測モードを含む）現在のセットに識別されたモードを追加し、および／またはサブセット中の予め定義されたモードを識別されたモードと置き換え得る。
【００４７】
[0056]  このようにして、ビデオエンコーダ２０は、すべての可能なイントラ予測モードのサブセットだけのための近似コストを生成しながら、低い近似コストを与えるモードを含めるように予測モードの現在のセットを改善し得る。従って、ビデオエンコーダ２０は、すべての可能なイントラ予測モードに対してではなく、現在のセット（例えば、イントラ予測モードのサブセット）中で識別されたイントラ予測モードに対してのみフルレートひずみ分析を行い得る。現在のセット中のイントラ予測モードの数が、イントラ予測モードの総数よりも少なくなり、より低い近似コストを与え得るので、本開示の技法は、モード選択を行うための複雑さと処理要件とを低減し得る。いくつかの例では、そのような処理要件を低減することは、並列処理ビデオコーダおよび／または直列処理ビデオコーダにおけるビデオコーディング性能を改善し得る。
【００４８】
[0057]  ビデオデコーダ３０は、コード化データを備えるビットストリームを受信し、ビデオエンコーダ２０から受信した対応するシンタックス要素に従ってデータを復号し得る。ビデオデコーダ３０は、概して、ビデオエンコーダ２０に関して上記で説明した動作と相反する動作を行い得る。すなわち、ビデオデコーダ３０は、符号化ビデオデータの各ブロックをエントロピー復号し、逆量子化を行い、符号化ビデオデータのブロックを逆量子化（de-quantize）し、逆変換を適用して、符号化ビデオデータの逆量子化（de-quantized）ブロックを周波数領域から空間領域に変換し得る。符号化ビデオデータのこの変換ブロックは、残差データの再構成バージョンを表し得る。予測プロセスでは、ビデオデコーダ３０は、予測モードをシグナリングするシンタックス要素に基づいて所与のブロックを復号するために対応する予測モードを選択し得る。すなわち、ビデオエンコーダ２０は、本開示の技法に従って、ビデオデコーダ３０が所与のブロックを復号するために後で使用し得る、所与のブロックのための予測モードをシグナリングする１つまたは複数のシンタックス要素を送り得る。
【００４９】
[0058]  図２は、複数の異なる予測モードから選択するときにモード選択の複雑さを低減するための技法を実装し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを行い得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースの圧縮モードのいずれかを指し得る。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指すことがある。
【００５０】
[0059]  図２の例で、ビデオ符号器２０は、区分化ユニット４０と、予測ユニット４１と、参照ピクチャメモリ６４と、アナログ加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。予測ユニット４１は、動き推定ユニット４２と、動き補償ユニット４４と、イントラ予測ユニット４６とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換処理ユニット６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ（図２に図示せず）も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理することになる。追加のループフィルタ（ループ内またはループ後）もデブロッキングフィルタに加えて使用され得る。ビデオエンコーダ２０はモード選択ユニット４３をも含む。モード選択ユニット４３は、例えば、誤差結果に基づいて、コーディングモードのうちの１つ、すなわちイントラモードまたはインターモードを選択し得る。図２においてさらに説明するように、モード選択ユニット４３は、複数の異なる予測モードから選択するときにレートひずみ値を記憶するのに必要とされる空間を低減するための技法を実装し得る。
【００５１】
[0060]  図２に示すように、ビデオエンコーダ２０はビデオデータを受信し、区分ユニット４０はデータをビデオブロックに区分する。この区分は、例えば、ＬＣＵおよびＣＵの４分木構造に応じて、スライス、タイル、または他のより大きいユニットへの区分、並びにビデオブロック区分をも含み得る。ビデオエンコーダ２０は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示している。一般に、スライスは、複数のビデオブロックに（場合によっては、タイル(tiles)と呼ばれるビデオブロックのセットに）分割され得る。
【００５２】
[0061]  モード選択ユニット４３は、誤差結果（例えば、コーディングレートおよびひずみレベル）に基づいて現在ビデオブロックのために、複数のイントラコーディングモードのうちの１つ、または複数のインターコーディングモードのうちの１つなど、複数の可能なコーディングモードのうちの１つを選択し得る。予測ユニット４１は、得られたイントラコード化ブロックまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器５０に与え、参照ピクチャとして使用するための符号化ブロックを再構成するために加算器６２に与え得る。いくつかの例では、モード選択ユニット４３は、一般に「レートひずみ最適化」と呼ばれ、「ＲＤＯ」と略されることがあるプロセスを通じて最良のレート対ひずみ比を選択するために再構成されたビデオブロックの各々を分析し得る。以下で説明する図２のさらなる詳細は、本開示の１つまたは複数の態様によるモード選択技法を示す。
【００５３】
[0062]  本開示の態様は、概して、イントラコーディングに関する。従って、本開示のいくつかの技法は、モード選択ユニット４３によって行われ得る。すなわち、例えば、モード選択ユニット４３は、以下の図２〜図８に関して記載する本開示の技法を行い得る。他の例では、ビデオエンコーダ２０の１つまたは複数の他のユニット、例えば、イントラ予測ユニット４６は、追加、共同、または代替として、本開示の技法を行うことを担当し得る。
【００５４】
[0063]  予測ユニット４１内の動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を行うために、１つまたは複数の参照ピクチャ中の１つまたは複数の予測ブロックに対する現在ビデオブロックのインター予測コーディングを行う。動き推定ユニット４２は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するために構成され得る。所定のパターンは、シーケンス中のビデオスライスをＰスライス、ＢスライスまたはＧＰＢスライスに指定し得る。動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット４２によって行われる動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、参照ピクチャ内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示し得る。
【００５５】
[0064]  予測ブロックは、絶対差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのＰＵにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ２０は、参照ピクチャメモリ６４に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。例えば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を補間し得る。従って、動き推定ユニット４２は、フルピクセル位置と分数ピクセル位置とに関して動き探索を行い、分数ピクセル精度で動きベクトルを出力し得る。
【００５６】
[0065]  動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのＰＵのための動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択され得、それらの参照ピクチャリストの各々は、参照ピクチャメモリ６４に記憶された１つまたは複数の参照ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。
【００５７】
[0066]  動き補償ユニット４４によって行われる動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を行うことを伴い得る。現在ビデオブロックのＰＵのための動きベクトルを受信すると、動き補償ユニット４４は、動きベクトルが参照ピクチャリストのうちの１つにおいて指す予測ブロックの位置を特定し得る。ビデオエンコーダ２０は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって残差ビデオブロックを形成する。ピクセル差分値は、ブロックの残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器５０は、この減算演算を行う１つまたは複数の構成要素を表す。動き補償ユニット４４はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ３０が使用するための、ビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【００５８】
[0067]  予測ユニット４１内のイントラ予測ユニット４６は、コーディングすべき現在のブロックと同じピクチャまたはスライス中の１つまたは複数の隣接ブロックに対して現在のビデオブロックのイントラ予測コーディングを行い、空間圧縮を提供し得る。その結果、イントラ予測ユニット４６は、前述のように、動き推定ユニット４２および動き補正ユニット４４によって行われるインター予測の代替として、現在のブロックをイントラ予測し得る。
【００５９】
[0068]  特に、モード選択ユニット４３は、所与のモードおよびブロックに対応するレートひずみの量に基づいて現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット４６は、例えば、別個の符号化パス中にモード選択ユニット４３から受信した様々なイントラ予測モードを使用して、現在のブロックを符号化し得る。
【００６０】
[0069]  モード選択ユニット４３は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ（または誤差）の量、並びに符号化ブロックを生成するために使用されるビットレート（すなわち、ビット数）を決定する。モード選択ユニット４３は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを判断するために、様々な符号化ブロックのひずみおよびレートから比率を計算し得る。提案されたＨＥＶＣ標準によれば、最高３５個のイントラ予測モードが存在し得、各イントラ予測モードは、インデックスに関連付けられ得る。
【００６１】
[0070]  イントラ予測を行うとき、モード選択ユニット４３は、フルレートひずみ分析を行うのではなく、可能な各イントラ予測モードに関連する近似コストを分析し得る。この近似コストは、レートひずみコストに近似し得る。フルレートひずみコストを計算することは、ビデオエンコーダが、イントラ予測モードの各々を使用して予測ブロックを計算し、予測ブロックの各々と現在のブロックとの間の差（上述の残差ピクセル値を指定する「残差ブロック」と一般に呼ばれる）を決定し、空間領域から周波数領域に残差ブロックの各々を変換し、変換された残差ブロックの各々中の係数値を量子化して、係数の対応する符号化ビデオブロックを生成し、次いで、符号化ビデオブロックを復号して、復号ビデオブロックの各々を現在のブロックと比較してひずみメトリックを決定することを一般に必要とする。さらに、このフルレートひずみ分析は、量子化レベルを所与として、イントラ予測モードの各々について、符号化ビデオブロックの各々をシグナリングするために使用されるビット量を計算することを伴い得る。
【００６２】
[0071]  上記で説明したように、３５個のイントラ予測モードのうちの対応する１つを使用して予測される予測ブロックの各々に対してフルレートひずみ分析を行うのではなく、モード選択ユニット４３は、１つまたは複数のイントラ予測モードのための近似コストを計算し得る。モード選択ユニット４３は、様々な数学的プロセスを使用して、フルレートひずみコストの近似を計算し得る。いくつかの例示的なプロセスは、一般に、ラグランジュレートひずみ近似(Lagrangian rate distortion approximations)と呼ばれることがある。多数の可能なモードの中から最良のモードを決定するために、異なるモードごとにコストを測定するためにラグランジュ乗数が適用され得る。ラグランジュ乗数は、ひずみ測度Ｄとレート測度Ｒとに基づき得る。ひずみ測度は、異なる実装形態、例えば、２乗誤差和（ＳＳＥ：sum of square error）、絶対差分和（ＳＡＤ）または絶対変換差分和（ＳＡＴＤ：sum of absolute transform difference）によって別様に定義され得る。レート測度は、現在のモード情報を符号化するために何個のビットが必要とされるかを表す。例えば、レート測度は、予測モードタイプ、イントラモードインデックス、または動きベクトルなどをシグナリングするために使用されるビットを含み得る。ＤおよびＲの値が取得されると、コストＣが、式（１）示すように計算され得、ここで、λは、予め定義された定数である。
【数１】
0006284954.tif 000002
【００６３】
モード選択ユニット４３は、最小のＣをもたらすモードを選定することによって最良のモードを選択し得る。
【００６４】
[0072]  一例として、モード選択ユニット４３は、２乗ひずみ和（ＳＳＤ：sum of squared distortion）、絶対差分和（ＳＡＤ）および絶対変換差分和（ＳＡＴＤ）を計算し得る。モード選択ユニット４３は、レートひずみコストに近似する方法としてＳＡＴＤを計算し得る。モード選択ユニット４３は、次式（２）に従って、ＳＡＴＤを計算し得る。
【数２】
0006284954.tif 000003
【００６５】
式（２）では、
【数３】
0006284954.tif 000004
【００６６】
は、現在のブロックＸのための予測ブロックを表し、ＴNxN（・）は、Ｎ×Ｎ変換（アダマール変換など）であり、λは、（経験的に選択され得る）ラグランジュ乗数であり、Ｒmodeは、モードを符号化するために使用される数ビットである。従って、Ｊ（ＳＡＴＤ）コストは、複雑さを低減したフルレートひずみの近似であり得る。
【００６７】
[0073]  一般に、現在のブロックのサイズが４×４または８×８であるとき、ビデオエンコーダは、残りの２７〜２５個のイントラ予測モードと比較して、最低近似コストを有する８〜１０個のイントラ予測モードを分析し得る。現在のブロックが８×８よりも大きいとき、ビデオエンコーダは、残りの３２〜３０個のイントラ予測モードと比較して、最低近似コストを有する３〜５個のイントラ予測モードを分析し得る。いくつかの例では、ビデオエンコーダはまた、イントラ予測コーディング中にいわゆる「最尤」イントラ予測モードを考慮し得る。この最尤モードを識別するために、ビデオエンコーダは、（しばしば、現在のブロックに隣接する隣接ブロックである）前に符号化されたブロックのイントラ予測モードを識別し得る。最尤モードは、現在のブロックへの隣接ブロックの空間近接により、現在のブロックと同じまたは同様である比較的高い確率を有し得る。
【００６８】
[0074]  ＨＥＶＣでは、３つの最尤モードがある。最初の２つは、上のＰＵおよび左のＰＵが利用可能である場合、上のＰＵおよび左のＰＵのイントラ予測モードであり、イントラ予測モードを使用してコーディングされる。いかなる利用不可能な予測モードもイントラＤＣモードであると見なされる。２つの最尤モードが等しくないとき、第３の最尤モードは、これらのモードのうちのどれが、この順序で、最初の２つのモードである１つの重複でないかに従って、Ｉｎｔｒａ＿Ｐｌａｎａｒ、Ｉｎｔｒａ＿ＤＣまたはＩｎｔｒａ＿Ａｎｇｕｌａｒ［２６]（垂直）に等しくなるように設定される。最初の２つの最尤モードが同じであるとき、この第１のモードが値Ｉｎｔｒａ＿ＰｌａｎａｒまたはＩｎｔｒａ＿ＤＣを有する場合、第２の最尤モードと第３の最尤モードとは、これらのモードのうちのどれが、この順序で、重複でないかに従って、Ｉｎｔｒａ＿Ｐｌａｎａｒ、Ｉｎｔｒａ＿ＤＣ、またはＩｎｔｒａ＿Ａｎｇｕｌａｒ［２６］として割り当てられる。最初の２つの最尤モードが同じであり、第１のモードがＩｎｔｒａ＿Ａｎｇｕｌａｒ値を有するとき、第２の最尤モードと第３の最尤モードとは、第１の角度（すなわち値ｋ）に最も近い２つの角度予測モードとして選定される。
【００６９】
[0075]  いくつかの例では、ビデオエンコーダは、予測された予測ブロックの各々とイントラ予測モードの各々とのための近似コストを計算し得る。例えば、ビデオエンコーダは、３５個のイントラ予測モードの各々に対応する３５個の近似コストを最初に計算し得る。近似コストは、いくつかの状況では、レートひずみコストに間違って近似し得るので、ビデオエンコーダは、次いで、イントラ予測モードの何らかのサブセットに対してフルレートひずみ分析を行い得る。
【００７０】
[0076]  モードのサブセットに対してフルレートひずみ分析を行うことの簡略化が、ブルートフォースな探索と比較して必要とされる計算量を低減し得るが、そのような技法は、全体的に、３５個のイントラ予測モードの各々に対応する近似されたコストの３５回の計算を依然として必要とする。従って、これらの技法は、ビデオエンコーダが計算集約的なフルレートひずみ分析を行う回数を低減し得るが、このプロセスは、３５個のモードの各々のための近似コストを計算するために必要な複雑さと時間とを考えると、ビデオデータのリアルタイムな符号化またはほぼリアルタイムな符号化に好適でないことがある。
【００７１】
[0077]  モード選択の複雑さを低減するために、本開示では、最初に、低い近似コストを与える可能性が高いモードのサブセットを選択し、その後、より低い近似コストを与える追加のモードの探索を用いて選択サブセットを改善することによって、フルレートひずみ分析を使用して適用されるモードの数を低減するための技法について説明する。本技法により、ビデオエンコーダ２０などのビデオエンコーダは、最良のモード、例えば、現在のブロックを符号化するのに最低のレートひずみをもつモードを選択することが可能になり得る。イントラ予測プロセスを行うことに関連する時間と複雑さとを低減することによって、本技法は、リアルタイムのビデオ符号化および／またはほぼリアルタイムのビデオ符号化の改善を促進し得る。
【００７２】
[0078]  例示のために、モード選択ユニット４３は、区分ユニット４０から符号化するために現在のブロックを決定するために本開示で説明する技法を最初に行い得る。モード選択ユニット４３は、少なくとも１つのイントラ予測モードを有するイントラ予測モードの予め定義されたセットを含むイントラ予測モードの現在のセット中で識別されたイントラ予測モードごとに近似コストを計算し得る。イントラ予測モードの現在のセットは、ビデオデータの現在のブロックをコーディングするために利用可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含み得る。しばしば、イントラ予測モードの予め定義されたセットは、イントラ予測を行うときに使用される可能性が統計的に高いことがわかっているモードを含む。すなわち、いくつかの例では、モード選択ユニット４３は、１つまたは複数のモードが選択される発生回数を示す１つまたは複数の統計値を決定し得る。統計値に少なくとも部分的に基づいて、モード選択ユニット４３は、イントラ予測モードの第１のセット中に含まれるモードを選択し得る。
【００７３】
[0079]  いくつかの事例では、予め定義されたセットは固定され得る。一例では、この予め定義されたセットは、モード０、１および２６を含む。この予め定義されたセットは、この時点で、現在のブロックのためのイントラ予測モードの現在のセットを備え得る。いくつかの事例では、予め定義されたセットは、以下でさらに説明するように、サンプリングオフセットを用いてサンプリングされる平面モード、最尤モードおよび角度モードによって形成され得る。平面モードと最尤モードとが最終選択モードのようにしばしば見え得るので、モード選択ユニット４３は、これらのそれぞれのモードと現在のセットに対するモードとの近似コストを決定し得る。
【００７４】
[0080]  予め定義されたセットに含まれる最尤モードを識別するために、モード選択ユニット４３は、図４Ａ〜図４Ｂおよび図５に関してさらに説明するように、以前に符号化されたブロックの１つまたは複数のイントラ予測モードを識別し得る。以前に符号化されたブロックは、現在のブロックに隣接する隣接ブロックであり得る。これらのいわゆる隣接ブロックのイントラ予測モードは、現在のブロックへの隣接ブロックの空間近接により、現在のブロックに低いレートひずみを与えるイントラ予測モードと同じまたは同様である比較的高い確率を有し得る。従って、ビデオエンコーダ２０は、隣接ブロックのこれらのイントラモードを最尤モードとして識別し、最尤モードの近似コストを計算し、現在のセット中にそれらのモードを含め得る。
【００７５】
[0081]  サンプリングオフセットを使用して１つまたは複数の角度モードを識別するために、モード選択ユニット４３は、本開示の図６に関してさらに説明するように、すべての可能な角度イントラ予測モードのグループ中に含まれる１つまたは複数の角度モードをサンプリングし得る。モード選択ユニット４３は、近似コスト計算の数を低減するために、角度予測モードのすべてのための近似コストを計算しないことがある。代わりに、モード選択ユニット４３は、オフセットを使用して１つまたは複数の角度モードをサンプリングし得る。すなわち、近似コスト計算のためのモードを選択するためにオフセットを使用することによって、モード選択４３は、すべての可能な角度予測モードのサブセットを一様にサンプリングし得る。
【００７６】
[0082]  サンプリングプロセスでは、モード選択ユニット４３は、すべての可能な角度モードのサンプリングされたサブセットについて、それぞれのサンプリングされた角度モードがカットリスト中に含まれるかどうかを決定し得る。カットリストは、低確立または最小確率をもって見える１つまたは複数のイントラ予測モードを含み得る。例えば、１つまたは複数イントラ予測モードは、しきい値を満たさない（例えば、しきい値よりも小さい）それぞれの確率および／または頻度に関連付けられ得る。それぞれのサンプリングされた角度モードがカットリスト中に含まれる場合、モード選択ユニット４３は、それらのモードのための近似コストと現在のセットにそれらのモードを追加することとを計算しないことがある。さらに、いくつかの例では、モード選択ユニット４３が、それぞれのサンプリングされた角度モードのための近似コストをすでに計算していた場合、モード選択ユニット４３は、それらのモードのための近似コストを計算しないことがある。１つまたは複数の角度モードをサンプリングするこのプロセスを通して、モード選択ユニット４３は、イントラ予測モードの予め定義されたセット中に１つまたは複数のサンプリングされた角度モードを含め得る。
【００７７】
[0083]  現在のセットは、いくつかの例では、近似コスト（例えば、ＳＡＴＤコスト）の昇順で長さＮの予め定義されたモードを有し得る。ＨＭでは、Ｎは、４×４および８×８のＰＵサイズについては８に設定され、８×８よりも大きいＰＵサイズについては３に設定される。変数Ｎの値が小さくなればなるほど、モード選択ユニット４３が行い得るフルレートひずみコスト計算の数が少なくなる。複雑さとコーディング効率とのトレードオフのバランスをとるために、モード選択ユニット４３は、４×４および８×８のＰＵサイズについてはＮを３に設定し得、１６×１６および３２×３２のＰＵサイズについてはＮを２に設定し得る。
【００７８】
[0084]  以下でさらに説明するように、モードの予め定義されたセットを含む現在のセットを最初に構築すると、現在のセットの後処理より前に、モード選択ユニット４３は、現在のセットを改善するために探索を行い得る。現在のセットを改善する例示的な技法を図８にさらに示す。一例では、モード選択ユニット４３は、イントラ予測モードの予め定義されたセット中で識別されたモードごとに計算される近似コストの中で、最低相対近似コストを有するイントラ予測モードの予め定義されたセット中のモードを選択し得る。例示のために、モード２６がイントラ予測モードの予め定義されたセット中の最低近似コストを有し得る。従って、モード選択ユニット４３は、モード２６から探索を開始し得、ここで、モード値、すなわち、２６が、何らかのオフセットＦだけ減分または増分されて、２６＋Ｆおよび２６−Ｆに至る。モード選択ユニット４３は、次いで、モード２６＋Ｆおよび２６−Ｆの各々のための近似コストを計算し得、モード２６、２６＋Ｆおよび２６−Ｆの中で最低近似コストをもつモードを選択する。モード選択ユニット４３は、次いで、この比較に基づいて現在のセット中のモードを置き換え、例えば、現在のセット中のモード２６を、モード２６、２６＋Ｆおよび２６−Ｆの中で最低近似コストを有する選択モードと置き換え得る。
【００７９】
[0085]  モード選択ユニット４３は、次いで、このようにして、ＦをＦ／２に半分にし、（モード２６＋Ｆとモード２６−Ｆのどちらもモード２６よりも小さい近似コストを有しない場合）モード２６に対して探索を再び集中させ、（モード２６＋Ｆが現在のセットに追加された場合）モード２６＋Ｆに対して探索を再び集中させ、または（モード２６−Ｆが現在のセットに追加された場合）モード２６−Ｆに対して探索を再び集中させて探索を繰り返し得る。他の例では、モード選択ユニット４３は、任意の好適な値ｄでＦを除算し得、ここで、ｄは、本例では２に等しくなる。モード選択ユニット４３は、（Ｆが２のべき乗である値として始まったと仮定すると）Ｆが分数に除算されるまで探索プロセスを継続し得る。従って、例えば、Ｆが４に設定される場合、プロセスは、Ｆ＝４で一度繰り返し、Ｆ＝２で一度繰り返し、Ｆ＝１で一度繰り返し、そして、Ｆ＝０．５のとき終了する。
【００８０】
[0086]  改良プロセスを使用して選択される予め定義されたイントラ予測モードおよび／または角度イントラ予測モードを含む現在のセットを最初に生成すると、モード選択ユニット４３は、図７Ａ、図７Ｂにさらに示すように、現在リストに対して後処理を行い得る。最尤モードがイントラ予測ブロックに対するモードとしてより高い確率で発生し得るが、最尤モードは、必ずしも小さい近似コストを有するとは限らないことがある。従って、最尤モードを現在のセット中でのみ使用することは、実質的な性能損失を生じ得る。従って、モード選択ユニット４３は、現在のセットを後処理し、現在のブロックをイントラ予測するモードを選択するために、最尤モードと近似コストとの両方を使用し得る。すなわち、モード選択ユニット４３は、現在のセットが最尤モードと比較的小さい近似コストの両方をもつモードを含むように現在のセットに対して後処理を行い得る。
【００８１】
[0087]  現在のセットを後処理するために、モード選択ユニット４３は、すべての可能な最尤モードから最低近似コストをもつ最尤モードを決定し得る。モード選択ユニット４３は、最低概算コストを有するこの最尤イントラ予測モードをしきい値と比較し得る。いくつかの例では、しきい値比較は、以下の式に従って定義され得る。
【数４】
0006284954.tif 000005
【００８２】
上式では、変数Ｊは、現在のセット中の非最尤イントラ予測モードの近似コスト（例えば、ＳＡＴＤ）であり得、一方、変数ＪMは、すべての可能な最尤モードの最低近似コストを有する最尤イントラ予測モードの近似コストである。上式では、変数Ｔは、通常、０と１との間の値を有するしきい値を指す。式は、ＪMとＪとの間の差をＪで除算したものの絶対値がしきい値Ｔよりも小さい場合、最尤モードが比較された非最尤モードの代わりに最尤モードをモード選択ユニット４３が追加することを与える。このようにして、モード選択ユニット４３は、比較に基づいて、イントラ予測モードの現在のセット中で識別されたイントラ予測モードのうちの１つまたは複数を１つまたは複数の最尤イントラ予測モードと置き換え得る。
【００８３】
[0088]  本明細書に記載する技法によれば、モード選択ユニット４３は、従って、イントラ予測のための高速モード決定プロセスを与え得る。これらの技法は、近似コスト計算の数を１７回未満まで低減し得る。いくつかの例では、これらの技法は、フルレートひずみコスト計算の数を（４×４および８×８のＰＵサイズについては）３回まで、（８×８よりも大きいＰＵサイズについては）２回まで低減し得る。
【００８４】
[0089]  モード選択ユニット４３は、次いで、イントラ予測モードの現在のセット中で識別されたイントラ予測モードごとにフルレートひずみコストを決定するために、後処理されたイントラ予測モードの現在のセット中で識別された各イントラ予測モードに対してフルレートひずみ分析を行い得る。イントラ予測ユニット４６は、次いで、現在のブロックを符号化するために決定されたレートひずみコストに基づいて、イントラ予測モードの現在のセット中で識別されたイントラ予測モードのうちの１つに従って現在のブロックに対してイントラ予測を行い得る。しばしば、イントラ予測ユニット４６は、最低レートひずみコストを有するモードを行う。
【００８５】
[0090]  上記で説明したように、いくつかの例では、モード選択ユニット４３は、追加のイントラ予測モードの改良探索を行うべきか否かを決定し得る。一例として、改良探索より前の最初に構築された現在のセットは、モード０、１、および角度モード２６を含み得る。モード選択ユニット４３は、モード２６のために計算された近似コストがモード０およびモード１のための計算された近似コストに対する最低近似コストであるか否かに基づいて改良探索を行うべきかどうかを決定し得る。すなわち、モード選択ユニット４３は、現在のセット中の最低近似コストが、例えば、平面モードまたは最尤モードとは対照的に、角度モードに関連付けられているかどうかを決定し得る。この点において、最低近似コストが現在のセット中の角度モードに関連付けられている場合、モード選択ユニット４３は、イントラ予測モードの現在のセット中で識別されたイントラ予測モードのための計算された近似コストに基づいて追加のイントラ予測モードを探索し得る。対照的に、モード０、１および２６がすべて現在のセット中にあり、モード２６がモード０およびモード１のために計算された近似コストに対する最低近似コストに関連付けられない場合、モード選択ユニット４３は、現在のセットに対して改良探索を行い得ない。従って、いくつかの事例では、最低近似コストに関連するモードが角度モードであるとき、モード選択ユニット４３は、上記で説明した改良探索を行い得る。
【００８６】
[0091]  いくつかの例では、現在のセットを後処理すると、イントラ予測ユニット４６は、イントラ予測モードの後処理された現在のセットによって識別されるイントラ予測モードのうちの１つに従って現在のブロックを符号化するためにイントラ予測を行い得る。選択モードを使用して、イントラ予測ユニット４６は、現在のブロックを符号化するための予測ブロックを決定し得る。例えば、予測モードは、イントラ予測モードが予測ブロックを選択するためにどのブロックまたはブロックのグループを評価することになるかを示し得る。
【００８７】
[0092]  イントラ予測ユニット４６が現在のビデオブロックのための予測ブロックを決定した後、加算器５０は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、１つまたは複数のＴＵ中に含まれ、変換処理ユニット５２に適用され得る。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット５２は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
【００８８】
[0093]  変換処理ユニット５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット５４は、次いで、量子化変換係数を含む行列の走査を行い得る。代替的に、エントロピー符号化ユニット５６が走査を行い得る。
【００８９】
[0094]  量子化の後に、エントロピー符号化ユニット５６は、量子化変換係数をエントロピー符号化する。例えば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コーディングあるいは別のエントロピー符号化方法または技法を行い得る。エントロピー符号化ユニット５６はまた、コード化されている現在ビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。エントロピー符号化ユニット５６によるエントロピー符号化に続いて、符号化ビットストリームは、ビデオデコーダ３０に送信されるか、あるいはビデオデコーダ３０が後で送信するかまたは取り出すためにアーカイブされ得る。
【００９０】
[0095]  エントロピーコーディングユニット５６は、本開示の技法に従って、選択されたイントラ予測モードを指示する情報を符号化し得る。ビデオエンコーダ２０は、送信されるビットストリーム構成データ中に、１つまたは複数のイントラ予測モードインデックステーブルおよび（コードワードマッピングテーブルとも呼ばれる）複数の修正イントラ予測モードインデックステーブル、様々なブロックのためのコンテキストを符号化するための定義、符号化ビデオデータなどを含め得る。ビデオエンコーダ２０が送信されるビットストリーム中に含め得るこれらのタイプの情報は例示的なものであり、多くの他のタイプの情報もビットストリーム中に含められ得る。
【００９１】
[0096]  逆量子化ユニット５８および逆変換処理ユニット６０は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット４４は、残差ブロックを参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、再構成された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器６２は、再構築された残差ブロックを動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ６４に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット４２と動き補償ユニット４４とによって参照ブロックとして使用され得る。
【００９２】
[0097]  図３は本開示で説明される技法を実装し得る例示的なビデオデコーダ３０を示すブロック図である。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、予測ユニット７３と、逆量子化ユニット７６と、逆変換処理ユニット７８と、加算器８０と、参照ピクチャメモリ８２とを含む。予測ユニット７３は、動き補正ユニット７２と、イントラ予測ユニット７４とを含む。ビデオデコーダ３０は、いくつかの例では、図２のビデオエンコーダ２０に関して説明した符号化パスとは概して逆の復号パスを行い得る。
【００９３】
[0098]  復号プロセス中に、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。符号化ビットストリームは、本開示の技法に従って、情報の中でも、ブロックに対応する、図２に関して前に説明したようにモード選択ユニット４３によって選択された予測モードを含み得る。ビデオデコーダ３０のエントロピー復号ユニット７０は、量子化された係数と、動きベクトルと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号し得る。エントロピー復号ユニット７０は、予測ユニット７３に動きベクトルと他のシンタックス要素とを転送し得る。ビデオデコーダ３０は、ビデオスライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受信し得る。
【００９４】
[0099]  ビデオスライスがイントラコード化（Ｉ）スライスとしてコーディングされたとき、予測ユニット７３のイントラ予測ユニット７４は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。イントラ予測ユニット７４は、現在のブロックのためのイントラ予測モードに対応するインデックスに基づいて、ビデオデータの現在のブロックを復号するための適切なイントラ予測モードを決定し得る。イントラ予測モードは、図２に関して前に説明したように、モード選択ユニット４３によって以前に選択されていることがあり、インデックスは、ビデオデコーダ３０にビデオエンコーダ２０によって送られた符号化ビットストリーム中に含まれていることがある。イントラ予測ユニット７４は、インデックスに対応するイントラ予測モードに基づいて予測ブロックを選択し得る。加算器８０は、復号された現在のブロックを生成するために、逆変換処理ユニット７８からの予測ブロックデータと残差ブロックデータとを加算し得る。メモリ８２は、復号された現在のブロックを記憶し得、復号された現在のブロックは、その後、ディスプレイデバイスによって出力されるか、または別のコンピューティングデバイスに送られ得る。
【００９５】
[0100]  前述のように、本開示の態様は、概して、イントラコーディングに関する。従って、本開示のいくつかの技法は、イントラ予測ユニット７４によって行われ得る。すなわち、例えば、イントラ予測ユニット７４は、以下の図４Ａ〜図８に関して記載する本開示の技法を行い得る。他の例で、ビデオデコーダ３０の１つまたは複数の他のユニットは、追加または代替として、本開示の技法を行うことを担当し得る。
【００９６】
[0101]  ビデオピクチャが、インターコーディングされた（例えば、Ｂ、ＰまたはＧＰＢ）スライスとしてコーディングされるとき、予測ユニット７３の動き補正ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルと他のシンタックス要素とに基づいて現在のビデオスライスのビデオブロックの予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、参照ピクチャメモリ８２に記憶された参照ピクチャに基づいて、デフォルト構成技法を使用して、参照ピクチャリスト、リスト０およびリスト１を構成し得る。
【００９７】
[0102]  動き補償ユニット７２は、動きベクトルと他のシンタックス要素とをパースすることによって現在ビデオスライスのビデオブロックのための予測情報を決定し、その予測情報を使用して、復号されている現在ビデオブロックのための予測ブロックを生成する。例えば、動き補償ユニット７２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（例えば、イントラまたはインター予測）と、インター予測スライスタイプ（例えば、Ｂスライス、Ｐスライス、またはＧＰＢスライス）と、スライスの参照ピクチャリストのうちの１つまたは複数のための構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコーディングビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
【００９８】
[0103]  動き補償ユニット７２はまた、補間フィルタに基づいて補間を行い得る。動き補償ユニット７２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。この場合、動き補償ユニット７２は、受信されたシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【００９９】
[0104]  逆量子化ユニット７６は、ビットストリーム中で与えられ、エントロピー復号ユニット７０によって復号された量子化変換係数を逆量子化（inverse quantize）、例えば、逆量子化（de-quantize）する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ２０によって計算される量子化パラメータの使用を含み得る。逆変換ユニット７８は、ピクセル領域において残差ブロックを生成するために、逆変換、例えば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【０１００】
[0105]  動き補償ユニット７２が、動きベクトルと他のシンタックス要素とに基づいて現在ビデオブロックのための予測ブロックを生成した後に、ビデオデコーダ３０は、逆変換処理ユニット７８からの残差ブロックを動き補償ユニット７２によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器８０は、この加算演算を行う１つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するために、または場合によってはビデオ品質を改善するために、他のループフィルタも（コーディングループ中またはコーディングループ後のいずれかで）使用され得る。所与のフレームまたはピクチャ中の復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ８２に記憶される。参照ピクチャメモリ８２はまた、図１のディスプレイデバイス３２などのディスプレイデバイス上での後の表示のための、復号ビデオを記憶する。
【０１０１】
[0106]  図４Ａは、本開示で説明する技法による、ビデオコーダが選択し得るイントラ予測モードの概念表現を示すブロック図である。Ｈ．２６４／ＡＶＣ、ＭＰＥＧ−２、およびＨＥＶＣなどのビデオコーディング規格は、ブロックベースのハイブリッドビデオコーディングフレームワークを使用する。そのようなフレームワークでは、ピクチャは、ＨＥＶＣではＣＵ（コーディングユニット）と呼ばれる異なるサイズのブロックに分割される。前に説明したように、各ＣＵは、予測（ＰＵ）または変換（ＴＵ）のためのより小さいブロックに分割され得る。各ＰＵは、イントラモードの場合は現在のスライス内で予測され、またはインターモードの場合は時間的隣接スライスから予測され得る。予測誤差は、図１〜図３で説明したように、変換され、量子化され、可変長コーディング技法を使用してコーディングされる。
【０１０２】
[0107]  ビデオデータでは、矩形エリア中のサンプルとそのエリアにすぐ隣接するサンプルとの間に比較的高い相関が存在し得る。いくつかの例では、ＨＥＶＣなどのビデオコーディング技法は、隣接する前にコーディングされたＰＵ中のサンプルから現在のＰＵを予測するためにイントラ予測を使用する。ＨＥＶＣでは、イントラ予測は、異なるＰＵに対して３５個のモードを与える。３５のモードには、平面モード（モード０）と、ＤＣモード（モード１）と、角度＋／−［０，２，５，９，１３，１７，２１，２６，３２］／３２の３３個の予測方向に対応する３３個の角度予測モードとが含まれる。
【０１０３】
[0108]  図４Ａに、ＨＥＶＣにおいて定義されているすべてのモードの３５個の角度予測方向を示す。（「モード０」または「０」として示される）平面モードでは、ビデオエンコーダ２０は、現在のブロックの左列に隣接する列中のピクセル値と現在のブロックの上行に隣接する行中のピクセル値とから現在のブロックのピクセル値を予測し得る。（「モード１」または「１」として示される）ＤＣモードでは、ビデオエンコーダ２０は、現在のブロックの最上行の上の行中のピクセルの値と現在のブロックの最左列に隣接する列中のピクセルの値との和の平均から予測ブロックを計算し得る。角度予測モードでは、ビデオエンコーダ２０は、一般に、現在のブロックの最上行の上の行からのピクセル値、または現在のブロックの最左列に隣接する列のピクセル値からの（イントラ予測モード２〜３４として上記に示した）所与の角度に沿ってピクセルを予測し得る。
【０１０４】
[0109]  イントラ予測を行うとき、ビデオエンコーダは、複数の異なるイントラ予測モードの中から選択し得る。イントラ予測を行うとき、ビデオエンコーダは、しばしば、３５個のイントラ予測モードの各々に関連する近似コストを分析する。この近似コストは、レートひずみコストに近似し得る。レートひずみコストを計算することは、ビデオエンコーダが、イントラ予測モードの各々を使用して予測ブロックを計算し、予測ブロックの各々と現在のブロックとの間の差（上述の残差ピクセル値を指定する「残差ブロック」と一般に呼ばれる）を決定し、空間領域から周波数領域に残差ブロックの各々を変換し、変換された残差ブロックの各々を量子化して、対応する符号化ビデオブロックを生成し、次いで、符号化ビデオブロックを復号して、復号ビデオブロックの各々を現在のブロックと比較してひずみメトリックを決定することを一般に必要とする。さらに、このレートひずみ分析は、イントラ予測モードの各々について、符号化ビデオブロックの各々をシグナリングするために使用されるビット量を計算することを伴う。従って、ビデオエンコーダは、３５個のイントラ予測モードのうちの対応する１つを使用して予測された予測ブロックの各々に対してこのレートひずみ分析を行うのではなく、近似コストを計算し得る。
【０１０５】
[0110]  いくつかの例では、ビデオエンコーダは、イントラ予測モードの各々を使用して予測された予測ブロックの各々のための近似コストを計算し得る。例えば、ビデオエンコーダは、３５個のイントラ予測モードの各々に対応する３５個の近似コストを最初に計算し得る。近似コストは、いくつかの状況では、レートひずみコストに間違って近似し得るので、ビデオエンコーダは、次いで、イントラ予測モードの何らかのサブセットに対してフルレートひずみ分析を行い得る。
【０１０６】
[0111]  サブセットを使用した上記の簡略化は、ブルートフォースな探索と比較して必要とされる計算量を低減し得るが、そのような技法は、全体的に、３５個のイントラ予測モードの各々に対応する近似されたコストの３５回の計算を依然として必要とする。そのような技法は、ビデオエンコーダが計算集約的なレートひずみ分析を行う回数を低減し得るが、このプロセスは、３５個のモードの各々のための近似コストを計算するために必要な複雑さと時間とを考えると、ビデオデータのリアルタイムな符号化またはほぼリアルタイムな符号化に好適でないことがある。いくつかのリアルタイムビデオ符号化環境では、すべての可能なモードのための近似コストを計算する処理要件は、設計制約を超えることがある。
【０１０７】
[0112]  本開示で説明する技法によれば、ビデオエンコーダ２０は、さらに、レートひずみ分析が行われるモードの数を低減し、それによって、イントラ予測プロセスを行うことに関連する時間と複雑さとを潜在的に低減し得る。例えば、ビデオエンコーダ２０は、イントラ予測を行うときに使用される可能性が統計的に高い予め定義された予測モードのサブセットを最初に決定し得る。ビデオエンコーダ２０は、次いで、より低いレートひずみ近似コストを与える追加のイントラ予測モードを探索することによってサブセットを改善し得る。例えば、ビデオエンコーダ２０は、探索中により低いレートひずみ近似コストを与えるイントラ予測モードを識別し得る。
【０１０８】
[0113]  識別されたイントラ予測モードに関連する近似ひずみコストに基づいて、ビデオエンコーダ２０は、サブセットに識別されたモードを追加し、および／またはサブセット中の予め定義されたモードを識別されたモードと置き換え得る。このようにして、ビデオエンコーダ２０は、より低いレートひずみ近似コストを与えるモードを含めるように予測モードのサブセットを改善し得る。従って、ビデオエンコーダ２０は、すべての可能なイントラ予測モードに対してではなく、イントラ予測モードのサブセット中で識別されたイントラ予測モードに対してのみフルレートひずみ分析を行い得る。現在のセット中のイントラ予測モードの数が、イントラ予測モードの総数よりも少なくなり、より低いレートひずみ近似コストを与え得るので、本開示の技法は、モード選択を行うための複雑さと処理要件とを低減し得る。いくつかの例では、そのような処理要件を低減することは、並列処理ビデオコーダおよび／または直列処理ビデオコーダにおけるビデオコーディング性能を改善し得る。イントラ予測プロセスを行うことに関連する時間と複雑さとを低減することによって、ビデオエンコーダ２０は、リアルタイムのビデオ符号化またはほぼリアルタイムのビデオ符号化を行い得る。
【０１０９】
[0114]  図４Ｂは、本開示で説明する技法による、概念表現、イントラ予測コーディングされるべき現在のブロックと隣接ブロックとを示すブロック図である。図４Ｂに、現在のコーディングユニット（「現在のＣＵ」）と呼ばれることがある現在のブロック１００と、イントラコーディング中に考慮され得る２つの隣接ブロック、ブロック１０２（「ブロックＡ」）およびブロック１０４（「ブロックＢ」）との一例を示す。例えば、ビデオエンコーダは、（現在のブロックの左側に位置する）隣接ブロック１０２と（現在のブロックの上側に位置する）隣接ブロック１０４とをコーディングするために使用されるイントラ予測モードを、現在のブロックの最尤イントラモードと見なし得る。
【０１１０】
[0115]  図２および図４Ａ中で前に説明したように、ビデオエンコーダは、フルレートひずみコストを計算するのではなく、レートひずみコストに近似し得る近似コストを計算し得る。可能なイントラ予測モードの各々のための近似コストを計算する代わりに、ビデオエンコーダは、イントラ予測コーディング中に１つまたは複数のいわゆる「最尤(most probable)」イントラ予測モードを識別し得る。最尤モードを識別するために、ビデオエンコーダは、（しばしば、現在のブロックに隣接する隣接ブロックである）前に符号化されたブロックのイントラ予測モードを識別し得る。これらのいわゆる隣接ブロックのイントラモードは、現在のブロックへの隣接ブロックの空間近接により、その現在のブロックと同じまたは同様である比較的高い確率を有し得る。ビデオエンコーダは、近似コスト計算の数を、最尤モードのみに、または最尤モードと、イントラ予測を行うときに他のモードよりも使用される可能性が統計的に高い（平面モードおよびＤＣモードなどの）他の可能性があるモードとに低減し得る。
【０１１１】
[0116]  ビデオエンコーダは、上記で識別したサイズ（８×８よりも小さいサイズのブロックについては８〜１０、８×８よりも大きいサイズのブロックについては３〜５）のリストを形成し、それらのそれぞれのコストによってリスト中に最低近似コストを有するイントラ予測モードを順序付け得る。すなわち、最低コストモードが、リスト中で最初に位置し、２番目の最低コストモードがその後に位置し得る。ビデオエンコーダは、次いで、隣接ブロックを符号化するために使用されるイントラ予測モードに基づいて最尤モードを識別し、これらのモードをリストに追加し、いずれかが、これらのモードをリストに付加し得る。いくつかの事例では、これらの最尤モードは、リスト中にすでに存在していることがあり得、そこで、ビデオエンコーダは、リストにこの最尤モードを再追加しない。ビデオエンコーダは、次いで、リスト中のモードに対してフルレートひずみ分析を行い、それによって、ビデオエンコーダがフルレートひずみ分析を行う予測ブロックの数を低減し得る。
【０１１２】
[0117]  このプロセスは、ビデオエンコーダが計算集約的なレートひずみ分析を行う回数を低減し得るが、このプロセスは、３５個のモードの各々に対して近似コスト計算を行うために必要な複雑さと時間とを考えると、依然として、ビデオデータのリアルタイムな符号化またはほぼリアルタイムな符号化に好適でないことがある。本開示で説明する技法によれば、いくつかの例では、ビデオエンコーダ２０などの並列ビデオエンコーダ（すなわち、現在のブロック１００を符号化するのと同時に隣接ブロック１０２および１０４を符号化するビデオエンコーダ）は、図４Ａに示した合計３５個のイントラ予測モードのサブセットのための近似コストだけを計算し得、それによって、モード選択の複雑さを低減し、ビデオエンコーダ２０の成果の点でコスト削減を提供し得る。
【０１１３】
[0118]  動作中、ビデオエンコーダ２０は、１つ以上のイントラ予測モードを含むが、ビデオデータの現在のブロックをコーディングするために利用可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含むイントラ予測モードの予め定義されたセット中で識別されたイントラ予測モードごとに近似コストを計算し得る。しばしば、この予め定義されたセットは、イントラ予測を行うときに使用される可能性が統計的に高いことがわかっているモードを含む。いくつかの事例では、この予め定義されたセットは固定され得る。この予め定義されたセットは、この時点で、現在のブロックのためのイントラ予測モードの現在のセットを備え得る。いくつかの事例では、予め定義されたセットは、サンプリングオフセットを用いてサンプリングされる平面モード、モード可能モードおよび角度モードによって形成され得る。
【０１１４】
[0119]  ビデオエンコーダ２０は、次いで、（例えば、図４Ａに示すように）追加のイントラ予測モードを探索し、イントラ予測モードの現在のセットに追加のイントラ予測モードを追加し得る。いくつかの例では、この探索は、二分探索に似ていることがあり、ここにおいて、ビデオエンコーダ２０は、イントラ予測モードの予め定義されたセット中で識別されたモードごとに計算される近似コストの中で、最低相対計算近似コストを有するイントラ予測モードの予め定義されたセット中のモードから開始する。
【０１１５】
[0120]  例示のために、モード２６が最低近似コストを有し得る。この仮定の下で、ビデオエンコーダ２０は、モード２６から探索を開始し得、ここで、モード値、すなわち、２６が、何らかのオフセットＦだけ減分または増分されて、２６＋Ｆおよび２６−Ｆに至る。ビデオエンコーダ２０は、次いで、モード２６＋Ｆおよび２６−Ｆの各々のための近似コストを計算し得、モード２６、２６＋Ｆおよび２６−Ｆの中で最低近似コストをもつモードを選択する。ビデオエンコーダ２０は、次いで、この比較に基づいて現在のセット中のモードを置き換え、例えば、現在のセット中のモード２６を、モード２６、２６＋Ｆおよび２６−Ｆの中で最低近似コストを有する選択モードと置き換え得る。
【０１１６】
[0121]  ビデオエンコーダ２０は、次いで、このようにして、ＦをＦ／２に半分にし、（モード２６＋Ｆとモード２６−Ｆのどちらもモード２６よりも小さい概算コストを有しない場合）モード２６に対して探索を再び集中させ、（モード２６＋Ｆが現在のセットに追加された場合）モード２６＋Ｆに対して探索を再び集中させ、または（モード２６−Ｆが現在のセットに追加された場合）モード２６−Ｆに対して探索を再び集中させて探索を繰り返し得る。ビデオエンコーダ２０は、（Ｆが２のべき乗である値として始まったと仮定すると）Ｆが分数に除算されるまで探索プロセスを継続する。
【０１１７】
[0122]  このようにして、ビデオエンコーダ２０は、イントラ予測モードの現在のセット中で識別されたイントラ予測モードのための計算された近似コストに基づいて追加のイントラ予測モードを探索し、追加のイントラ予測モードの各々のための近似コストを計算し得る。ビデオエンコーダ２０は、イントラ予測モードの現在のセット中で識別されたイントラ予測モードの各々のために計算された近似コストと、追加のイントラ予測モードのために計算された近似コストとの比較に基づいて、イントラ予測モードの現在のセットに追加のイントラ予測モードを追加し得る。
【０１１８】
[0123]  図５は、複数の異なる予測モードから選択するときにモード選択の複雑さを低減する、図２に示したビデオエンコーダ２０などのビデオコーダの例示的な動作を示すフローチャートである。詳細には、ビデオエンコーダ２０は、予め定義されたモードを含む最初の候補セットを構築し、現在のセットを後処理し得る。図５には示されていないが、ビデオエンコーダ２０は、いくつかの例では、図８にさらに示すように、低近似コストをもつモードをさらに識別するために現在のセットを改善し得る。本開示のこれらの技法を行う際に、ビデオエンコーダ２０は、現在のセット中のモードの数を低減し得る。ビデオエンコーダ２０は、レートひずみ最適化プロセスにおいて後処理された候補リストを使用し、現在のブロックをイントラ予測するために最良のモード（例えば、最低レートひずみ）を選択し得る。
【０１１９】
[0124]  最初に、ビデオエンコーダ２０は、少なくとも１つのイントラ予測モードを有するイントラ予測モードの予め定義されたセットを含むイントラ予測モードの現在のセット中で識別されたイントラ予測モードごとに近似コストを計算し得る（１２０）。イントラ予測モードの現在のセットは、ビデオデータの現在のブロックをコーディングするために利用可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含み得る。イントラ予測モードの予め定義されたセットは、イントラ予測を行うときに使用される可能性が統計的に高いことがわかっているモードを含み得る。すなわち、いくつかの例では、ビデオエンコーダ２０は、１つまたは複数のモードが選択される発生回数を示す１つまたは複数の統計値を決定し得、その統計値に少なくとも部分的に基づいて、ビデオエンコーダ２０は、イントラ予測モードの第１のセット中に含まれるモードを選択し得る。
【０１２０】
[0125]  図２中で前に説明したように、予め定義されたセットは、サンプリングオフセットを用いてサンプリングされる平面モード、モード可能モードおよび角度モードによって形成され得る。平面モードと最尤モードとが最終選択モードのようにしばしば見え得るので、ビデオエンコーダ２０は、以下でさらに説明するように、現在のセット中のこれらのそれぞれのモードの近似コストを決定し得る。
【０１２１】
[0126]  最尤モードを含む予め定義されたセットを識別するために、ビデオエンコーダ２０は、以前に符号化されたブロックの１つまたは複数のイントラ予測モードを識別し得る。前の符号化ブロックは、図４Ｂに示すように、現在のブロックに隣接する隣接ブロックであり得る。最尤モードは、現在のブロックへの隣接ブロックの空間近接により、現在のブロックと同じまたは同様である比較的高い確率を有し得る。従って、ビデオエンコーダ２０は、最尤モードを識別し、最尤モードの近似コストを計算し、現在のセット中にそれぞれのモードを含め得る（１２２）。
【０１２２】
[0127]  サンプリングオフセットを使用して１つまたは複数の角度モードを識別するために、ビデオエンコーダ２０は、図６に関してさらに説明するように、すべての可能な角度イントラ予測モードのグループ中に含まれる１つまたは複数の角度モードをサンプリングし得る。ビデオエンコーダ２０は、近似コスト計算の数を低減するために、角度予測モードのすべてのための近似コストを計算しないことがある。代わりに、ビデオエンコーダ２０は、オフセットを使用して１つまたは複数の角度モードをサンプリングし得る。いくつかの例では、近似コスト計算のためのモードツーを選択するためにオフセットを使用することによって、ビデオエンコーダ２０は、すべての可能な角度予測モードのサブセットを一様にサンプリングし得る。図２および図６で説明するようにカットリストを使用して、ビデオエンコーダ２０は、現在のセットから１つまたは複数のサンプリングされた角度モードを除外し得る。
【０１２３】
[0128]  予め定義されたイントラ予測モードおよび／または角度イントラ予測モードを含む現在のセットを最初に生成すると、ビデオエンコーダ２０は、（図７Ａ、図７Ｂにさらに示す）現在リストに対して後処理を行い得る。最尤モードがイントラ予測ブロックに対するモードとしてより高い確率で発生し得るが、最尤モードは、必ずしも小さい近似コストを有するとは限らないことがある。
【０１２４】
[0129]  現在のセットを後処理するために、ビデオエンコーダ２０は、すべての可能な最尤モードから最低近似コストをもつ最尤モードを決定し得る。例えば、ビデオエンコーダ２０は、すべての可能な最尤モードのグループから最低近似コストに関連するモードを選択し得る（１２４）。モード選択ユニット４３は、最低概算コストを有するこの最尤イントラ予測モードをしきい値と比較し得る。
【０１２５】
[0130]  ビデオエンコーダ２０は、比較がしきい値を満たすかどうかを決定し得る（１２６）。例えば、最低近似コストを有する最尤イントラ予測モードの近似コストと、現在のセット中の非最尤イントラ予測モードの近似コストとの間の差がしきい値よりも小さいとビデオエンコーダ２０が決定する場合（１３０）、ビデオエンコーダ２０は、最尤モードが比較された非最尤モードの代わりに、最尤モードを追加し得る（１３２）。いくつかの例では、ビデオエンコーダ２０は、比較を行うとき、非最尤モードの近似コストで差をさらに除算し得る。他の例では、近似コストの比較がしきい値を満たさないとビデオエンコーダ２０が決定する場合（１２８）、ビデオエンコーダ２０は、別の最尤モードを選択すべきかどうかを決定し得る。
【０１２６】
[0131]  ビデオエンコーダ２０は、すべての可能な最尤モードから別の最尤モードを選択すべきかどうかを決定し得る（１２４）。例えば、ビデオエンコーダ２０によってまだ評価されていない別の最尤モード（例えば、次に最も低い近似コストをもつ最尤モード）が存在するとビデオエンコーダ２０が決定する場合、ビデオエンコーダ２０は、その新たに選択された最尤モードに関連する近似コストを選択し（１２４）、動作（１２４）〜（１３４）のうちの１つまたは複数を繰り返し得る。代替的に、検査されていない最尤モードが存在しないおよび／またはビデオエンコーダ２０が別の最尤モードを選択しない場合（１３８）、ビデオエンコーダ２０は、現在のセット中で識別されたイントラ予測モードごとにフルレートひずみコストを生成し得る（１４０）。
【０１２７】
[0132]  現在のセットのそれぞれのイントラ予測モードのためのフルレートひずみコストを生成すると、ビデオエンコーダ２０メイは、フルレートひずみコストに基づいて現在のセットからイントラ予測モードを選択した（１４２）。代替例では、ビデオエンコーダ２０は、現在のセットのフルレートひずみ分析の１つまたは複数のモードを行わず、近似コストに基づいて現在のセットからイントラ予測モードを選択し得る。いずれの場合も、ビデオエンコーダ２０は、例えば、イントラ予測モードを選択し得る。他の例では、ビデオエンコーダ２０は、最低近似コストに関連付けられていないイントラ予測モードを選択し得る。
【０１２８】
[0133]  イントラ予測モードを選択すると、ビデオエンコーダ２０は、イントラ予測を行い、選択モードを使用して現在のブロックを符号化し得る（１４４）。このようにして、本明細書に記載する技法は、イントラ予測のための高速モード決定プロセスを与え得る。これらの技法は、いくつかの事例では、近似コスト計算の数を１７回未満まで低減し得る。いくつかの例では、これらの技法は、フルレートひずみコスト計算の数を（４×４および８×８のＰＵサイズについては）３回まで、（８×８よりも大きいＰＵサイズについては）２回まで低減し得る。
【０１２９】
[0134]  図６は、本開示の技法による、イントラ予測モードの現在のセットを最初に構築するために、図２に示したビデオエンコーダ２０などのビデオコーダの例示的な動作を示すフローチャートである。詳細には、図６では、ビデオエンコーダ２０は、１つまたは複数の予め定義されたモードおよび／または角度モードを含む最初の現在のセットを構築し得る。
【０１３０】
[0135]  最初に、ビデオエンコーダ２０は、１つまたは複数の予め定義されたイントラ予測モードを決定し、モードごとに近似コストを計算し得る（１６０）。モード０（平面モード）およびモード１は、最終的に選択されるイントラ予測モード中にしばしば見られるので、そのような予め定義されたイントラ予測モードの例としては、これらのモードがあり得る。ビデオエンコーダ２０は、モードの近似コストを決定し、長さＮを有し得る現在のセット中にモードを挿入し得る。いくつかの例では、ビデオエンコーダ２０は、近似コストの昇順で現在のセット中にモードを挿入する。ＨＭでは、Ｎは、４×４および８×８のＰＵサイズについては８に設定され、８×８よりも大きいＰＵサイズについては３に設定される。数Ｎが小さくなればなるほど、ビデオエンコーダ２０が行い得るレートひずみコスト計算の数が少なくなる。複雑さとコーディング効率とのトレードオフを改善するために、ビデオエンコーダ２０は、４×４および８×８のＰＵサイズについてはＮを３に設定し、１６×１６および３２×３２のＰＵサイズについてはＮを２に設定し得る。
【０１３１】
[0136]  ビデオエンコーダ２０は、次に、１つまたは複数の最尤モードを決定し、モードごとに近似コストを計算し得る（１６２）。最尤モードを識別するために、ビデオエンコーダ２０は、以前に符号化されたブロックのイントラ予測モードを識別し得る。前の符号化ブロックは、現在のブロックに隣接する隣接ブロックであり得る。いくつかの事例では、３つの最尤モードがある。最初の２つは、上のＰＵおよび左のＰＵが利用可能である場合、上のＰＵおよび左のＰＵのイントラ予測モードであり、イントラ予測モードを使用してコーディングされる。いかなる利用不可能な予測モードもイントラＤＣモードであると見なされる。２つの最尤モードが等しくないとき、第３の最尤モードは、これらのモードのうちのどれが、この順序で、最初の２つのモードである１つの重複でないかに従って、Ｉｎｔｒａ＿Ｐｌａｎａｒ、Ｉｎｔｒａ＿ＤＣまたはＩｎｔｒａ＿Ａｎｇｕｌａｒ［２６］（垂直）に等しくなるように設定される。最初の２つの最尤モードが同じであるとき、この第１のモードが値Ｉｎｔｒａ＿ＰｌａｎａｒまたはＩｎｔｒａ＿ＤＣを有する場合、第２の最尤モードと第３の最尤モードとは、これらのモードのうちのどれが、この順序で、重複でないかに従って、Ｉｎｔｒａ＿Ｐｌａｎａｒ、Ｉｎｔｒａ＿ＤＣ、またはＩｎｔｒａ＿Ａｎｇｕｌａｒ［２６］として割り当てられる。最初の２つの最尤モードが同じであり、第１のモードがＩｎｔｒａ＿Ａｎｇｕｌａｒ値を有するとき、第２の最尤モードと第３の最尤モードとは、第１の角度（すなわち値ｋ）に最も近い２つの角度予測モードとして選定される。
【０１３２】
[0137]  最尤モードは、現在のブロックへの隣接ブロックの空間近接により、現在のブロックと同じまたは同様である比較的高い確率を有し得る。従って、ビデオエンコーダ２０は、最尤モードの近似コストを決定し、現在のセット中にモードを挿入し得る。いくつかの例では、ビデオエンコーダ２０は、近似コストの昇順で現在のセット中にモードを挿入する。
【０１３３】
[0138]  ビデオエンコーダ２０はまた、現在のセットに１つまたは複数の角度イントラ予測モードを追加し得る。近似コスト計算の数を低減するために、ビデオエンコーダ２０は、可能な角度イントラ予測モードごとに近似コストを計算し得ない。代わりに、ビデオエンコーダ２０は、オフセットを用いて角度イントラ予測モードを一様にサンプリングし得る。いくつかの例では、ビデオエンコーダ２０はまた、以下でさらに説明するカットリスト中に含まれる１つまたは複数のイントラ予測モードのための近似コストを計算しないことがある。
【０１３４】
[0139]  １つまたは複数の角度モードをサンプリングするために、ビデオエンコーダ２０は、最初の角度モードを選択し得る（１６４）。いくつかの例では、最初の角度モードは、２のモードインデックスをもつ角度モードであり得る。他の例では、ビデオエンコーダ２０は、オフセットに基づいて最初の角度を決定し得る。例えば、ビデオエンコーダ２０は、最初のモードとして、オフセットに等しいインデックスを有するか、またはオフセットに少なくとも部分的に基づいた値を有するモードを選択し得る。
【０１３５】
[0140]  ビデオエンコーダ２０は、次に、選択された角度モードのインデックスが可能な角度モードの総数よりも大きいかどうかを決定し得る（１６６）。例えば、角度モードの総数は、３３個に等しくなり得、ビデオエンコーダ２０は、選択された角度モード（例えば、イントラ予測モード２）が３３よりも小さいかどうかを決定し得る。選択された角度モードのインデックスが可能な角度モードの総数よりも小さいと決定すると（１６８）、ビデオエンコーダ２０は、選択された角度モードがカットリスト中にあるかどうかを決定し得る。カットリストカットリストは、低確立または最小確率を用いて選択されたイントラ予測モードを含み得る。いくつかの例では、ビデオエンコーダ２０は、収集された統計値に基づいてカットリストを決定し得る。例えば、ビデオエンコーダ２０は、３３個の角度モード中で冗長性を決定し得る。一例として、ビデオエンコーダ２０は、モード２とモード３４とを使用して、画像中で同じエッジ方向を予測できる。ビデオエンコーダ２０が昇順で角度モードを選択するとき、ビデオエンコーダ２０がモード２を最初に検査し得るので、ビデオエンコーダ２０は、現在のセット中にモード３４を挿入する可能性は低い。いくつかの例では、モード３４は、極めて低い確率で発生し得る。
【０１３６】
[0141]  いくつかの例では、ビデオエンコーダ２０は、フルレートひずみ最適化によって選択されたモードの数を決定することによって、カットリストを取得できる。このようにして、ビデオエンコーダ２０は、イントラ予測モードの分布を導出できる。例えば、ビデオエンコーダ２０によって選択されるイントラ予測モードの確率は、１つまたは複数の最尤モード、すなわち、現在のＰＵの左側および上側のＰＵなど、前にコーディングされた隣接ＰＵのイントラ予測モードに依存し得る。
【０１３７】
[0142]  １つまたは複数の最尤モードに基づくカットリストの一例として、ビデオエンコーダは、オフセットとして４の値を使用し得る。３２×３２のＰＵの場合、ビデオエンコーダ２０によって選択されるカットリストは、左側のＰＵの予測モードに依存し得、複数のカットリストを含むカットリストテーブルは、次のように定義され得る。
【０１３８】
ＵＩｎｔ  Ｍｏｄｅｓ２Ｃｕｔ［３５］［６］＝｛｛３４，１４，１８，２２，２，３０｝，｛３４，１４，１８，３０，２２，２｝，｛１４，２２，１８，３４，３０，１０｝，｛１８，２２，１４，３０，３４，２｝，｛２２，１４，１８，３４，３０，２｝，｛２２，１８，１４，３０，３４，２｝，｛２２，３４，１８，３０，１４，２｝，｛２２，３４，１８，１４，３０，２｝，｛２２，１８，３４，３０，１４，２｝，｛２２，１８，３４，２，１４，３０｝，｛３４，１８，２２，２，１４，３０｝，｛１８，２２，３４，２，３０，１４｝，｛２２，３４，２，１８，３０，１４｝，｛３４，２２，２，１８，３０，６｝，｛３４，３０，２，１８，２２，６｝，｛３４，２，２２，３０，１０，１８｝，｛３４，２，２２，３０，１０，１４｝，｛３４，２，２２，３０，１４，１０｝，｛３４，３０，２，１４，２２，１０｝，｛３４，１４，２，３０，１０，２２｝，｛１４，３４，３０，２，１０，６｝，｛３４，１４，３０，２，１０，１８｝，｛３４，１４，１８，２，１０，３０｝，｛１４，３４，１８，２，１０，３０｝，｛１４，１８，３４，２，６，３０｝，｛３４，１４，１８，２，３０，２２｝，｛３４，１８，１４，２２，２，３０｝，｛１４，３４，１８，２，２２，３０｝，｛１４，３４，１８，２２，２，６｝，｛１４，１８，３４，２２，２，６｝，｛１８，１４，２２，３４，６，２｝，｛１４，１８，２２，３４，６，１０｝，｛１４，１８，２２，３４，６，１０｝，｛２２，１４，１８，１０，６，３０｝，｛２２，１４，１８，３０，１０，６｝｝。
【０１３９】
従って、左側の隣接ＰＵのイントラ予測モードが２である場合、ビデオエンコーダ２０によって選択されるカットリストは、｛１４，２２，１８，３４，３０，１０｝になる。上記の表では、モード｛３４，１４，１８，２２｝が最も多い回数に見える。従って、いくつかの例では、隣接ブロックとは無関係のカットリストは、｛３４，１４，１８，２２｝であり得る。
【０１４０】
[0143]  いくつかの例では、ビデオエンコーダ２０は、隣接ＰＵの予測モードと最尤モードとに基づいてカットリストを構築し得る。例えば、左側の隣接ＰＵの予測モードと上側の隣接ＰＵの予測モードとが同じである場合、ビデオエンコーダ２０は、それらのモードが高確率で関連していると決定し得るが、高確率モードと直交する（例えば、９０度の角度）モードが選択される可能性は低い。従って、ビデオエンコーダ２０は、隣接ブロックのモードに基づいて選択される可能性が低いモードを含むカットリストを構築し得る。
【０１４１】
[0144]  ビデオエンコーダ２０はまた、いくつかの例では、可能性が低いモードのインデックスと隣接モードまたは最尤モードのインデックスとの間の差が概算的に１１〜１３の間の値またはそれに等しい値であると決定し得る。ビデオエンコーダ２０は、カットリスト中に、そのモードインデックスが概算的に１１〜１３の間の値またはそれに等しい値だけ最尤モードインデックスとは異なるモードを含め得る。従って、２つの隣接モードが等しくはないがほとんど同じであるとビデオエンコーダ２０が決定する場合、ビデオエンコーダ２０は、カットリスト中に、Ｖ以上の差でそれらのモードの数値的に両側にあるモードを含め得る。いくつかの例では、Ｖは、８と１２との間の値（例えば、１０）に等しくなり得る。代替的に、２つの隣接モードが遠くに離れている（例えば、２つのモードのモードインデックス間の差が大きい）とビデオエンコーダ２０が決定する場合、ビデオエンコーダ２０は、２つの隣接モードのそれぞれのモードインデックスの中間にある１つまたは複数のモードおよび／または２つの隣接モードのそれぞれのモードインデックスの間のモードインデックスを有するモードにあるインを含め得る。
【０１４２】
[0145]  図５の例では、ビデオエンコーダ２０は、選択された角度モードがカットリスト中にあるかどうかを決定し得る（１７０）。選択された角度モードがカットリスト中にある場合（１７２）、ビデオエンコーダ２０は、そのモードの近似コストを決定せず、現在のセット中に選択された角度モードを挿入し得ない。ビデオエンコーダ２０は、次いで、ビデオエンコーダ２０によって選択されたオフセットに基づいて次の角度インデックスを決定し得る。例えば、ビデオエンコーダ２０は、一例では、選択された角度モードのインデックスをオフセットだけ増分し得る。別の例では、ビデオエンコーダ２０は、次の角度モードインデックスを決定するためにオフセットを使用して選択された角度のインデックスに関数を適用し得る。
【０１４３】
[0146]  選択された角度モードがカットリスト中にないとビデオエンコーダ２０が決定する場合（１７４）、ビデオエンコーダは次に、選択された角度モードのための近似コストが以前に計算されているかどうかを決定し得る（１７６）。選択された角度モードのための近似コストが以前に計算されている場合（１７８）、ビデオエンコーダ２０は、次いで、上記で説明したように、ビデオエンコーダ２０によって選択されるオフセットに基づいて次の角度モードインデックスを決定し得る。しかしながら、選択された角度モードのための近似コストが計算されていない場合（１８０）、ビデオエンコーダ２０は、選択モードのための近似コストを計算し得る（１８２）。ビデオエンコーダ２０は、次に、現在のセット中に角度モードを挿入し得る（１８４）。いくつかの例では、ビデオエンコーダ２０は、次いで、上記で説明したように、ビデオエンコーダ２０によって選択されたオフセットに基づいて次の角度インデックスを決定する。図６に示すように角度モードがカットリスト中になく、まだ検査されていない場合のみ、ビデオエンコーダ２０は、そのモードの近似コストを計算し得る。従って、近似コスト計算の数Ｎ1は、以下の通りになり得る。
【数５】
0006284954.tif 000006
【０１４４】
ここで、ｏｆｆｓｅｔは、角度モードのためのサンプリングオフセットであり、Ｋは、カットリストの長さである。
【０１４５】
[0147]  いくつかの例では、次に生成される角度モードインデックスが、可能な角度モードの総数よりも大きい場合（１６７）、ビデオエンコーダ２０は、現在のセット中の最低近似コストが角度モードに関連付けられるかどうかを決定し得る（１８８）。現在のセット中の最低近似コストが角度モードに関連付けられる場合（１９０）、ビデオエンコーダ２０は、現在のセット中のイントラ予測モードをさらに改善し得る。改良動作のさらなる詳細について、図８において説明する。代替的に、現在のセット中の最低近似コストが角度モードに関連付けられない（例えば、最低近似コストが、現在のセット中に含まれる平面モードまたはＤＣモードなどの予め定義されたモードのうちの１つに関連付けられる）とビデオエンコーダ２０が決定する場合、ビデオエンコーダ２０は、現在のセットをさらに改善することなしに、図７Ａおよび図７Ｂにおいてさらに説明するように、現在のセットを後処理し得る（１９４）。
【０１４６】
[0148]  図７Ａは、イントラ予測モードの現在のセットを後処理するために、図２に示したビデオエンコーダ２０などのビデオコーダの例示的な動作を示すフローチャートである。詳細には、図５中で、ビデオエンコーダ２０は、ビデオエンコーダ２０によって以前に生成されたイントラ予測モードのセット（例えば、現在のセット）の後処理を行い得る。
【０１４７】
[0149]  いくつかの例では、ビデオエンコーダ２０は、高い確率および／または発生回数で選択される最尤モードを識別し得る。近似コストがフルレートひずみコストの近似にすぎないので、最尤モードは、小さい近似コストを有し得ない。一方、フルレートひずみ分析を行うために候補モードとして最尤モードのみを使用すると、いくつかの例では、パフォーマンスの低下を生じ得る。従って、ビデオエンコーダ２０によって実装される本開示の技法は、図７Ａおよび図７Ｂにさらに示すように、１つまたは複数のイントラ予測モードを選択するときに最尤モードと近似コストの両方を採用し得る。すなわち、いくつかの例では、イントラ予測モードの現在のセットは、最尤モードと小さい近似コストを有するモードとを含み得る。図７Ａおよび図７Ｂに、近似コストと最尤モードとに基づく現在のセットの後処理を示す。いくつかの例では、現在のセットは、図６に示す技法に従って生成されるイントラ予測モードの現在のセットであり得る。いくつかの例では、現在のセットは、図８に示す技法に従って改善されるイントラ予測モードの現在のセットであり得る。
【０１４８】
[0150]  図６の例において前に説明したように、ビデオエンコーダ２０は、現在リスト中に含まれない１つまたは複数の最尤モードが、現在のセット中の１つまたは複数のモードよりも低い近似コスト値を有するかどうかを決定し得る。現在のセット中に含まれない最尤モードと現在のセット中の非最尤モードとの間の近似コストの差がしきい値よりも小さいとビデオエンコーダ２０が決定する場合、ビデオエンコーダ２０は、例えば、非最尤モードを置き換えることによって、現在のセット中に最尤モードを含め得る。
【０１４９】
[0151]  最初に、ビデオエンコーダ２０は、すべての可能な最尤モードから、最低近似コストを有する最尤モードを決定し得る。例えば、ビデオエンコーダ２０は、最尤モードリストからモードを最初に選択し得る（２１０）。ビデオエンコーダ２０によって選択される第１の最尤モードは、最尤モードインデックスに関連する最尤モードであり得る。最尤モードを選択すると、ビデオエンコーダ２０は、選択された最尤モードが現在のセット（例えば、図６および／または図８に示す技法を使用して生成される現在のセット）中にあるかどうかを決定し得る（２１２）。
【０１５０】
[0152]  選択された最尤モードが現在のセット中に含まれるとビデオエンコーダ２０が決定する場合（２１４）、ビデオエンコーダ２０は、すべての可能な最尤モードのグループ中の任意の追加の最尤モードがまだ評価されていないかどうかを決定し得る（２２６）。追加の最尤モードがまだ評価されていない場合（２２８）、ビデオエンコーダ２０は、すべての可能な最尤モードのグループ中に含まれる次の未評価最尤モードを選択し得る（２１０）。
【０１５１】
[0153]  選択された最尤モードが現在のセット中に含まれていないとビデオエンコーダ２０が決定する場合（２１６）、ビデオエンコーダ２０は、選択された最尤モードに関連する近似コストを決定し得る。ビデオエンコーダ２０は、選択された最尤モードに関連する近似コストが、ビデオエンコーダ２０によって以前に検査された最尤モードの最低近似コストであるかどうかを決定し得る（２１８）。すなわち、ビデオエンコーダ２０は、図７Ａの動作を行う間に、最低近似コスト（および、いくつかの例では、モードの対応する近似コスト）をもつモードのインデックスを保持し得る。選択された最尤モードに関連する近似コストが任意の以前に検査された最尤モードの近似コストよりも小さくないとビデオエンコーダ２０が決定する場合（２２２）、ビデオエンコーダ２０は、すべての可能な最尤モードのグループ中の任意の追加の最尤モードがまだ検査されていないかどうかを決定し得る（２２６）。すなわち、ビデオエンコーダ２０は、すべての可能な最尤モードの中で最低の近似コストを有するモードとして、選択された最尤モードを保持し得ない。
【０１５２】
[0154]  しかしながら、選択された最尤モードの近似コストが、すべての以前に検査された最尤モードの近似コストよりも小さいとビデオエンコーダ２０が決定する場合（２２０）、ビデオエンコーダ２０は、最低近似コストをもつモードとして、選択された最尤モードを設定し得る（２２４）。例えば、ビデオエンコーダ２０は、すべての評価された最尤モードの中で最低の近似コストをもつモードとして、選択された最尤モードのインデックスを記憶し得る。このようにして、ビデオエンコーダ２０は、すべての可能なモード可能モードのグループ中の各最尤モードを繰り返し処理するとき、最低近似コストに関連する最尤モードを更新し得る。従って、ビデオエンコーダ２０は、最低近似コストをもつ最尤モードを選択するために、すべての可能なモード可能モードのグループを探索するためにこれらの技法を使用し得る。
【０１５３】
[0155]  上記で説明したように、ビデオエンコーダ２０は、次いで、すべての可能な最尤モードのグループ中の任意の追加の最尤モードがまだ評価されていないかどうかを決定し得る（２２６）。追加の最尤モードがまだ評価されていない場合（２２８）、ビデオエンコーダ２０は、次の検査されていない最尤モードを選択し得る（２１０）。しかしながら、すべての最尤モードが評価されたとビデオエンコーダ２０が決定する場合（２３０）、ビデオエンコーダ２０は、次に、最大近似コストに関連するモードが現在のセットを含むと決定し得る（２３２）。
【０１５４】
[0156]  図７Ｂでは、ビデオエンコーダ２０は、現在のセットからこのモード（例えば、最大近似コストに関連するモードが現在のセットを含む）を選択し得る（２３４）。モードを選択すると、ビデオエンコーダ２０は、現在のセットからの選択モードが最尤モードであるかどうかを決定し得る（２３４）。選択モードが最尤モードである場合（２４０）、ビデオエンコーダ２０は、現在のセット中で次のモードを選択し得る。例えば、モードの現在のセットが、近似コストに基づいて降順で順序付けられ、ビデオエンコーダ２０が、最高近似コストに関連するモードを最初に選択した場合、ビデオエンコーダ２０は、次に高い近似コストに関連する、現在のセット中の次の未評価モードを選択し得る（２３４）。
【０１５５】
[0157]  選択モードが最尤モードでないとビデオエンコーダ２０が決定する場合（２３８）、ビデオエンコーダ２０は、現在のセットからの選択モード（すなわち、非最尤モード）の近似コストと、最低近似コストを有しているとして（２２４）においてビデオエンコーダ２０によって以前に選択された最尤モードの近似コストとの間の差を決定し得る（２４２）。ビデオエンコーダ２０は、差がしきい値を満たすかどうかを決定し得る（２４４）。例えば、ビデオエンコーダは、以下のようにして、差がしきい値を満たすかどうかを決定し得る。
【数６】
0006284954.tif 000007
【０１５６】
ここで、Ｊは、非最尤モードの近似コストであり、ＪMは、最低近似コストを有しているとして（２２４）においてビデオエンコーダ２０によって以前に選択された最尤モードの近似コストであり、Ｔは、しきい値である。例えば、差は、商（例えば、値）がしきい値よりも小さいとき、しきい値を満たし得る。異なる例では、差は、商がしきい値以上であるとき、しきい値を満たし得る。
【０１５７】
[0158]  差がしきい値を満たすとビデオエンコーダ２０が決定する場合（２４６）、ビデオエンコーダ２０は、現在のセットの選択モードを、最低近似コストを有しているとして（２２４）においてビデオエンコーダ２０によって以前に選択された最尤モードと置き換え得る（２５０）。差がしきい値を満たさないとビデオエンコーダ２０が決定する場合（２４８）、ビデオエンコーダ２０は、選択モードを、最低近似コストを有しているとして（２２４）においてビデオエンコーダ２０によって以前に選択された最尤モードと置き換え得ない。
【０１５８】
[0159]  ビデオエンコーダ２０は、次いで、現在のブロックをイントラ予測するために現在のセットからモードを選択し得る（２５２）。すなわち、ビデオエンコーダ２０は、図７Ａおよび図７Ｂに示す動作に従って後処理された現在のセット中に含まれるモードを使用して現在のブロックに対してレートひずみ分析を行い得る。例えば、ビデオエンコーダ２０は、現在のブロックをイントラ予測するために、後処理された現在のセットからモードを選択し得る。いくつかの例では、ビデオエンコーダ２０は、現在のセットから、最低近似コストに関連付けられた最良のモードを選択し得る。モードを選択すると、ビデオエンコーダ２０は、図２の例においてさらに説明したように、選択モードに従って現在のブロックを符号化するためにイントラ予測を行い得る。このようにして、イントラ予測は、ビデオエンコーダ２０によって最良のモードが選択されるモードの後処理された現在のセット中で識別されるイントラ予測モードごとに計算される近似コストに基づく。
【０１５９】
[0160]  いくつかの例では、ＳＳＤ、ＳＡＤまたは推定ビットレートなど、ＳＡＴＤコスト以外の近似コストも使用され得る。いくつかの例では、ビデオエンコーダ２０は、現在のセットがもはや変化しなくなるまで、上記の技法のいくつかの反復を行い得る。さらに他の例では、ビデオエンコーダ２０は、探索プロセスの複雑さを低減するために、（左側のＰＵのイントラモードが上側のＰＵのイントラモードに等しくなるとき）評価を１つのＭＰＭに制限するか、または（左側のＰＵのイントラモードが上側のＰＵのイントラモードに等しくないとき）２つのＭＰＭに制限するなど、最尤モードのすべてを評価しない。
【０１６０】
[0161]  図８は、複数の異なる予測モードから選択するときにモード選択の複雑さを低減する、図２に示したビデオエンコーダ２０などのビデオコーダの例示的な動作を示すフローチャートである。詳細には、図８中で、ビデオエンコーダ２０は、ビデオエンコーダ２０によって以前に生成されたイントラ予測モードのセット（例えば、現在のセット）を改善し得る。図６に以前に示したように、ビデオエンコーダは、予め定義されたイントラ予測モードの現在のセットを最初に生成する。しかしながら、現在のセット中のモードは、１つには角度モードの近似サンプリングので、すべての可能なイントラ予測モードの最小近似コストを必ずしも有するとは限らない。図８の例示的な動作では、ビデオエンコーダ２０は、最初に構築された現在のセット中に含まれるモードよりも低い近似コストをもつ１つまたは複数のモードを取り出す改良プロセスを実装し得る。
【０１６１】
[0162]  最初に、ビデオエンコーダ２０は、現在のセットから、最低近似コストをもつ角度モードＭである最初のモードを選択し得る。例えば、ビデオエンコーダ２０は、改良プロセスにおいてモードを選択するためのステップ値を最初に決定し得る（２７０）。いくつかの例では、ステップ値は、図６中で角度モードをサンプリングするためにビデオエンコーダ２０によって使用されるオフセット値に等しくなり得る。ビデオエンコーダ２０は、次いで、現在のセットからモードを選択し得る（２７２）。選択モードが最尤モードでないとビデオエンコーダ２０が決定する場合（２７６）、ビデオエンコーダ２０は、現在のセット中で次のモードを選択し得る（２７２）。選択モードが角度モードであり、現在のセット中に現在含まれる角度モードの最低近似コストを有するとビデオエンコーダ２０が決定する場合（２７８）、ビデオエンコーダ２０は、ステップ値を更新することに進み得る。例えば、更新ステップ値は、現在のステップ値をある数で除算したものに等しくなり得る。例えば、更新ステップ値は、現在のステップ値を２で除算したもの、すなわち、更新設定値＝（現在のステップ値／２）に等しくなり得る。
【０１６２】
[0163]  ビデオエンコーダ２０は、次に、更新ステップ値がしきい値を満たすかどうかを決定し得る。例えば、ビデオ２０は、しきい値が０であると決定し得る。更新ステップ値がしきい値よりも小さいとき、ビデオエンコーダ２０は、図７Ａおよび図７Ｂにさらに示すように、イントラ予測を行うために現在のセットの後処理に進み得る（２９６）。
【０１６３】
[0164]  ステップ値がしきい値を満たす（例えば、ステップ値が０よりも大きい）場合（２８４）、ビデオエンコーダ２０は、２つの隣接モードＭ−ｓｔｅｐおよびＭ＋ｓｔｅｐの近似コストを決定し得、ここで、Ｍは、（２７４）において以前に選択されたモードのインデックスを指し得る。例えば、ビデオエンコーダ２０は、ステップ値と、現在選択されているモード（すなわち、最初に生成された現在のセット中の最低近似コストに関連する以前に選択された角度モード）のモードインデックスとの差に等しいモードインデックスを有するモードのための近似コストを決定し得る（２８８）。例えば、最初に生成された現在のセット中の最低近似コストに関連する以前に選択された角度モードのインデックスがＭである場合、ビデオエンコーダ２０は、インデックスＭ−ｓｔｅｐ（すなわち、モードインデックスＭとステップ値ｓｔｅｐとの間の差）を有するモードのための近似コストを決定し得る。
【０１６４】
[0165]  ビデオエンコーダ２０はまた、ステップ値と、現在選択されているモード（すなわち、最初に生成された現在のセット中の最低近似コストに関連する以前に選択された角度モード）のモードインデックスとの和に等しいモードインデックスを有するモードのための近似コストを決定し得る（２９０）。例えば、最初に生成された現在のセット中の最低近似コストに最も関連する以前に選択された角度のインデックスがＭである場合、ビデオエンコーダ２０は、インデックスＭ＋ｓｔｅｐ（すなわち、モードインデックスＭとステップ値ｓｔｅｐとの間の和）を有するモードのための近似コストを決定し得る。
【０１６５】
[0166]  モードＭのインデックスが、２または３４などの境界モードであるとき、ビデオエンコーダ２０は、隣接モードのうちの１つまたは複数をクリップし（すなわち、選択せず）、代わりに、モードＭ自体を選択し得る。代替的に、ビデオエンコーダ２０は、反対数値方向にモードを選択し得る。例えば、モードＭ＝２である場合、ビデオエンコーダ２０は、２にクリップされるか、または隣接するモードを反対方向に選択して、モード３４に至ることによって隣接モードＭ−ｓｔｅｐを取得し得る。そのような例では、ビデオエンコーダ２０は、それらの近似コストが現在のセット中の近似コストよりも小さいかどうかに応じて近似コストの昇順で現在のセット中に２つの隣接モード２および３４を挿入し得る。
【０１６６】
[0167]  モードＭ＋ｓｔｅｐおよびＭ−ｓｔｅｐのための近似コストを決定すると、ビデオエンコーダ２０は、現在のセット中に２つのそれぞれのモードの各々を記憶し得る。いくつかの例では、ビデオエンコーダ２０は、現在のセット中にそれぞれのモードに関連する近似コストをさらに記憶し得る。いずれの場合も、ビデオエンコーダ２０は、ビデオエンコーダ２０によって評価されるべき次の選択モードとして、モードＭ、Ｍ＋ｓｔｅｐ、およびＭ−ｓｔｅｐの中で、最低近似コストを有するモードを選択し得る（２９４）。すなわち、ビデオエンコーダ２０は、以下の式を使用して次の選択モードを決定し得る。
【数７】
0006284954.tif 000008
【０１６７】
ある実装形態では、近似コストを取得する際の計算数をさらに低減するために、Ｍ−ｓｔｅｐ（Ｍ＋ｓｔｅｐ）の近似コストが最初に計算され、Ｍ−ｓｔｅｐ（Ｍ＋ｓｔｅｐ）の近似コストがモードＭの近似コストよりも小さいことが発見される場合、Ｍ＋ｓｔｅｐ（Ｍ−ｓｔｅｐ）の近似コストのさらなる計算がスキップされ得、モードＭが、Ｍ−ｓｔｅｐ（Ｍ＋ｓｔｅｐ）と置き換えられる。ある実装形態では、改良探索より前の最初に構築された現在のセットは、モード０、１および角度モード２６を含み得、モード２６は、平面モード０およびＤＣモード１のために計算された近似コストに対する最低近似コストに関連付けらず、次いで、上記の改良探索は、スキップされ得る。
【０１６８】
[0168]  モードＭ、Ｍ＋ｓｔｅｐ、およびＭ−ｓｔｅｐの中で最低近似コストを有するモードを選択すると、ビデオエンコーダ２０は、ステップ値を更新し得る（２８０）。例えば、更新ステップ値は、（現在のステップ値／２）に等しくなり得る。上記で説明したように、更新ステップ値がしきい値を満たさない（例えば、０よりも小さい）とビデオエンコーダ２０が決定する場合（２８６）、ビデオエンコーダ２０は、現在のブロックに対してイントラ予測を行うために現在のセットを後処理することに進む（２９６）。更新ステップ値がしきい値を満たす（例えば、０よりも大きい）とビデオエンコーダ２０が決定する場合（２８４）、ビデオエンコーダ２０は、選択モードとして、モードＭ、Ｍ＋ｓｔｅｐ、およびＭ−ｓｔｅｐ中で最低近似コストを有するモードを使用して、図８に再び示すプロセスを行い得る。
【０１６９】
[0169]  図８の例示的な技法は、近似コスト計算数Ｎ2（ＳＡＴＤ）＝２ｌｏｇ2（ｏｆｆｓｅｔ）を生じ得る。ビデオエンコーダ２０は、従って、しきい値が満たされなくなるまで、１つまたは複数の角度モードを繰り返し処理して、より低い近似コストを有する角度モードで現在のセットを改善し得る。図６中でサンプリングオフセットが４である例示的な事例では、現在のセットの角度イントラ予測モードを繰り返し処理するとき、図８の動作（２８０）〜（２９４）において４回の近似コスト計算があり得る。従って、近似計算の総数Ｎ（ＳＡＴＤ）は、次のように表され得る。
【数８】
0006284954.tif 000009
【０１７０】
ｏｆｆｓｅｔ＝４である例では、３２×３２のＰＵサイズの場合、カットリストの長さは４であり得、従って、本開示の技法は、近似コスト（例えば、ＳＡＴＤ）計算の総数を１３に低減し得る。このようにして、本開示の技法は、他の実装形態（例えば、ＨＭ）では３５回の近似コスト計算を行うことと比較して、複雑さの低減を与え得る。
【０１７１】
[0170]  いくつかの例では、平均してより小さい近似コストをもつモードの現在のセットを生成するために、ビデオエンコーダ２０は、図８の技法を繰り返し得る。例えば、最初に評価されるモードの前のモードが前のステップで更新される場合、ビデオエンコーダ２０は、候補リスト中の（現在、最小近似コストをもつ角度モードである）この更新モードについて動作（２８０）〜（２９４）を繰り返し得る。最初に評価されるモードの前のモードが（２９４）において前のステップで更新されない場合、符号化されるビデオ２０は、次に最も小さい近似コストをもつ角度モードについて動作（２８０）〜（２９４）を繰り返し得る。
【０１７２】
[0171]  １つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータデータ記憶媒体または通信媒体を含み得る。データ記憶媒体は、本開示で説明された技法を実装するための命令、コードおよび／またはデータ構造を取り出すために、１つもしくは複数のコンピュータ、または１つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびｂｌｕ−ｒａｙディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１７３】
[0172]  コードは、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な他の構造のいずれかを指す。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／もしくはソフトウェアモジュール内に与えられ得、または複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１７４】
[0173]  本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、もしくはＩＣのセット（例えば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を行うように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０１７５】
[0174]  様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを符号化する方法であって、
少なくとも１つのイントラ予測モードを有するイントラ予測モードの予め定義されたセットを含むイントラ予測モードの現在のセット中で識別されたイントラ予測モードごとに近似コストを計算することと、ここにおいて、イントラ予測モードの前記現在のセットが、前記ビデオデータの現在のブロックをコーディングするために利用可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含む、
前記現在のブロックに隣接するビデオデータの１つまたは複数の隣接ブロックを符号化するために使用されるイントラ予測モードに基づいて決定される前記現在のブロックのための１つまたは複数の最尤イントラ予測モードのための近似コストを計算することと、
前記１つまたは複数の最尤イントラ予測モードのために計算された前記近似コストの各々をしきい値と比較することと、
前記比較に基づいて、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの１つまたは複数を前記１つまたは複数の最尤イントラ予測モードと置き換えることと、
イントラ予測モードの前記現在のセット中で識別されたイントラ予測モードごとにレートひずみコストを決定するために、イントラ予測モードの前記現在のセット中で識別された各イントラ予測モードに対してレートひずみ分析を行うことと、
前記現在のブロックを符号化するために前記決定されたレートひずみコストに基づいて、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの１つに従って前記現在のブロックに対してイントラ予測コーディングを行うことと
を備える方法。
［Ｃ２］
イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのための計算された近似コストに基づいて追加のイントラ予測モードを探索することと、
前記追加のイントラ予測モードの各々のための近似コストを計算することと、
イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの少なくとも１つのために計算された前記近似コストと、前記追加のイントラ予測モードのために計算された前記近似コストのうちの少なくとも１つとの比較に基づいて、イントラ予測モードの前記現在のセットに前記追加のイントラ予測モードを追加することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ３］
前記現在のセット中に含まれる最低近似コストに関連するモードが角度モードであるかどうかを決定することと、
前記現在のセット中に含まれる前記最低近似コストに関連する前記モードが角度モードであると決定したことに応答して、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのために計算された前記近似コストに基づいて、追加のイントラ予測モードを探索することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ４］
複数の角度モードから角度モードを選択することと、
前記角度モードがカットリスト中に含まれるかどうかを決定することと、ここにおいて、前記カットリストが、しきい値を満たさない確率で発生する少なくとも１つのイントラ予測モードを備える、
前記角度モードが前記カットリスト中に含まれると決定したことに応答して、前記角度モードのための近似コストを決定しないことと
をさらに備える、Ｃ１に記載の方法。
［Ｃ５］
前記角度モードが第１の角度モードであり、前記方法が、
前記第１の角度モードからのオフセットに少なくとも部分的に基づいて第２の角度モードを決定することと、
前記第２の角度モードがカットリスト中に含まれないと決定したことに応答して、
前記第２の角度モードに関連する近似コストを計算することと、
前記現在のセット中に前記第２の角度モードを挿入することと
をさらに備える、Ｃ４に記載の方法。
［Ｃ６］
複数の最尤モードから最低近似コストに関連する最尤モードを決定することと、
前記最尤モードと前記現在のセット中の少なくとも１つのモードとの間の差に少なくとも部分的に基づいて値を決定することと、
前記値がしきい値を満たすと決定したことに応答して、前記現在のセット中の前記少なくとも１つのモードを置き換えるために前記現在のセット中に前記最尤モードを挿入することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ７］
前記現在のセット中の前記少なくとも１つのモードが、前記現在のセット中の最大近似コストに関連付けられ、
前記値が前記しきい値よりも小さいとき、前記値が前記しきい値を満たす、Ｃ６に記載の方法。
［Ｃ８］
前記現在のセット中の最低近似コストに関連する第１の角度モードを決定することと、ここにおいて、前記第１の角度モードが第１のモードインデックスに関連付けられる、
前記第１の角度モードインデックスとステップ値との和を備える第２のモードインデックスに関連する第２の角度モードを決定することと、
前記第１の角度モードインデックスと前記ステップ値との差を備える第３のモードインデックスに関連する第３の角度モードを決定することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ９］
前記第１の角度モードに関連する前記最低近似コストが第１の近似コストであり、前記方法が、
前記第２の角度モードに関連する第２の近似コストを決定することと、
前記第３の角度モードに関連する第３の近似コストを決定することと、
前記第２の近似コストまたは前記第３の近似コストのうちの少なくとも１つが前記第１の近似コストよりも小さいと決定したことに応答して、第１のモードを置き換えるために前記現在のセット中に、前記第１の近似コストよりも小さい前記第２の近似コストまたは前記第３の近似コストのうちの前記少なくとも１つにそれぞれ関連する前記第２のモードまたは前記第３のモードを挿入することと
をさらに備える、Ｃ８に記載の方法。
［Ｃ１０］
前記現在のセット中に挿入された前記第２のモードまたは前記第３のモードのうちの前記少なくとも１つが選択モードであり、前記方法が、
前記ステップ値と前記選択モードとに少なくとも部分的に基づく更新ステップ値を決定することと、
前記更新ステップ値が前記しきい値を満たすと決定したことに応答して、前記現在のブロックに対してイントラ予測コーディングを行うために前記現在のセット中で最低フルレートひずみコストに関連するモードを選択することと、
前記更新ステップ値が前記しきい値を満たさないと決定したことに応答して、
前記選択モードに関連するインデックスと前記更新ステップ値との和を備える第４のモードインデックスに関連する第４の角度モードを決定することと、
前記選択モードに関連する前記インデックスと前記更新ステップ値との差を備える第５のモードインデックスに関連する第５の角度モードを決定することと、
前記第４の角度モードの第４の近似コストまたは前記第５の角度モードの第５の近似コストのうちの少なくとも１つが前記選択モードに関連する近似コストよりも小さいと決定したことに応答して、前記現在のセット中に、前記選択モードに関連する前記近似コストよりも小さい前記第４の近似コストまたは前記第５の近似コストのうちの前記少なくとも１つにそれぞれ関連する前記第４のモードまたは前記第５のモードを挿入することと
をさらに備える、Ｃ９に記載の方法。
［Ｃ１１］
ビデオデータをコーディングするためにイントラ予測プロセスを行うように構成されたビデオコーディングデバイスであって、
少なくとも１つのイントラ予測モードを有するイントラ予測モードの予め定義されたセットを含むイントラ予測モードの現在のセット中で識別されたイントラ予測モードごとに近似コストを計算することと、ここにおいて、イントラ予測モードの前記現在のセットが、前記ビデオデータの現在のブロックをコーディングするために利用可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含む、
前記現在のブロックに隣接するビデオデータの１つまたは複数の隣接ブロックを符号化するために使用されるイントラ予測モードに基づいて決定される前記現在のブロックのための１つまたは複数の最尤イントラ予測モードのための近似コストを計算することと、
前記１つまたは複数の最尤イントラ予測モードのために計算された前記近似コストの各々をしきい値と比較することと、
前記比較に基づいて、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの１つまたは複数を前記１つまたは複数の最尤イントラ予測モードと置き換えることと、
イントラ予測モードの前記現在のセット中で識別されたイントラ予測モードごとにレートひずみコストを決定するために、イントラ予測モードの前記現在のセット中で識別された各イントラ予測モードに対してレートひずみ分析を行うことと、
前記現在のブロックを符号化するために前記決定されたレートひずみコストに基づいて、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの１つに従って前記現在のブロックに対してイントラ予測コーディングを行うことと
を行うように構成されたプロセッサ
を備えるビデオコーディングデバイス。
［Ｃ１２］
前記プロセッサが、
イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのための計算された近似コストに基づいて追加のイントラ予測モードを探索することと、
前記追加のイントラ予測モードの各々のための近似コストを計算することと、
イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの少なくとも１つのために計算された前記近似コストと、前記追加のイントラ予測モードのために計算された前記近似コストのうちの少なくとも１つとの比較に基づいて、イントラ予測モードの前記現在のセットに前記追加のイントラ予測モードを追加することと
を行うようにさらに構成された、Ｃ１１に記載のビデオコーディングデバイス。
［Ｃ１３］
前記プロセッサが、
前記現在のセット中に含まれる最低近似コストに関連するモードが角度モードであるかどうかを決定することと、
前記現在のセット中に含まれる前記最低近似コストに関連する前記モードが角度モードであると決定したことに応答して、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのために計算された前記近似コストに基づいて、追加のイントラ予測モードを探索することと
を行うようにさらに構成された、Ｃ１１に記載のビデオコーディングデバイス。
［Ｃ１４］
前記プロセッサが、
複数の角度モードから角度モードを選択することと、
前記角度モードがカットリスト中に含まれるかどうかを決定することと、ここにおいて、前記カットリストが、しきい値を満たさない確率で発生する少なくとも１つのイントラ予測モードを備える、
前記角度モードが前記カットリスト中に含まれると決定したことに応答して、前記角度モードのための近似コストを決定しないことと
を行うようにさらに構成された、Ｃ１１に記載のビデオコーディングデバイス。
［Ｃ１５］
前記角度モードが第１の角度モードであり、前記プロセッサが、
前記第１の角度モードからのオフセットに少なくとも部分的に基づいて第２の角度モードを決定することと、
前記第２の角度モードがカットリスト中に含まれないと決定したことに応答して、
前記第２の角度モードに関連する近似コストを計算することと、
前記現在のセット中に前記第２の角度モードを挿入することと
を行うようにさらに構成された、Ｃ１４に記載のビデオコーディングデバイス。
［Ｃ１６］
前記プロセッサが、
複数の最尤モードから最低近似コストに関連する最尤モードを決定することと、
前記最尤モードと前記現在のセット中の少なくとも１つのモードとの間の差に少なくとも部分的に基づいて値を決定することと、
前記値がしきい値を満たすと決定したことに応答して、前記現在のセット中の前記少なくとも１つのモードを置き換えるために前記現在のセット中に前記最尤モードを挿入することと
を行うようにさらに構成された、Ｃ１１に記載のビデオコーディングデバイス。
［Ｃ１７］
前記現在のセット中の前記少なくとも１つのモードが、前記現在のセット中の最大近似コストに関連付けられ、
前記値が前記しきい値よりも小さいとき、前記値が前記しきい値を満たす、Ｃ１６に記載のビデオコーディングデバイス。
［Ｃ１８］
前記プロセッサが、
前記現在のセット中の最低近似コストに関連する第１の角度モードを決定することと、ここにおいて、前記第１の角度モードが第１のモードインデックスに関連付けられる、
前記第１の角度モードインデックスとステップ値との和を備える第２のモードインデックスに関連する第２の角度モードを決定することと、
前記第１の角度モードインデックスと前記ステップ値との差を備える第３のモードインデックスに関連する第３の角度モードを決定することと
を行うようにさらに構成された、Ｃ１１に記載のビデオコーディングデバイス。
［Ｃ１９］
前記第１の角度モードに関連する前記最低近似コストが第１の近似コストであり、前記プロセッサが、
前記第２の角度モードに関連する第２の近似コストを決定することと、
前記第３の角度モードに関連する第３の近似コストを決定することと、
前記第２の近似コストまたは前記第３の近似コストのうちの少なくとも１つが前記第１の近似コストよりも小さいと決定したことに応答して、第１のモードを置き換えるために前記現在のセット中に、前記第１の近似コストよりも小さい前記第２の近似コストまたは前記第３の近似コストのうちの前記少なくとも１つにそれぞれ関連する前記第２のモードまたは前記第３のモードを挿入することと
を行うようにさらに構成された、Ｃ１８に記載のビデオコーディングデバイス。
［Ｃ２０］
前記現在のセット中に挿入された前記第２のモードまたは前記第３のモードのうちの前記少なくとも１つが選択モードであり、前記プロセッサが、
前記ステップ値と前記選択モードとに少なくとも部分的に基づく更新ステップ値を決定することと、
前記更新ステップ値が前記しきい値を満たすと決定したことに応答して、前記現在のブロックに対してイントラ予測コーディングを行うために前記現在のセット中で最低フルレートひずみコストに関連するモードを選択することと、
前記更新ステップ値が前記しきい値を満たさないと決定したことに応答して、
前記選択モードに関連するインデックスと前記更新ステップ値との和を備える第４のモードインデックスに関連する第４の角度モードを決定することと、
前記選択モードに関連する前記インデックスと前記更新ステップ値との差を備える第５のモードインデックスに関連する第５の角度モードを決定することと、
前記第４の角度モードの第４の近似コストまたは前記第５の角度モードの第５の近似コストのうちの少なくとも１つが前記選択モードに関連する近似コストよりも小さいと決定したことに応答して、前記現在のセット中に、前記選択モードに関連する前記近似コストよりも小さい前記第４の近似コストまたは前記第５の近似コストのうちの前記少なくとも１つにそれぞれ関連する前記第４のモードまたは前記第５のモードを挿入することと
を行うようにさらに構成された、Ｃ１９に記載のビデオコーディングデバイス。
［Ｃ２１］
ビデオデータをコーディングするためにイントラ予測プロセスを行うように構成されたビデオコーディングデバイスであって、
少なくとも１つのイントラ予測モードを有するイントラ予測モードの予め定義されたセットを含むイントラ予測モードの現在のセット中で識別されたイントラ予測モードごとに近似コストを計算するための手段と、ここにおいて、イントラ予測モードの前記現在のセットが、前記ビデオデータの現在のブロックをコーディングするために利用可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含む、
前記現在のブロックに隣接するビデオデータの１つまたは複数の隣接ブロックを符号化するために使用されるイントラ予測モードに基づいて決定される前記現在のブロックのための１つまたは複数の最尤イントラ予測モードのための近似コストを計算するための手段と、
前記１つまたは複数の最尤イントラ予測モードのために計算された前記近似コストの各々をしきい値と比較するための手段と、
前記比較に基づいて、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの１つまたは複数を前記１つまたは複数の最尤イントラ予測モードと置き換えるための手段と、
イントラ予測モードの前記現在のセット中で識別されたイントラ予測モードごとにレートひずみコストを決定するために、イントラ予測モードの前記現在のセット中で識別された各イントラ予測モードに対してレートひずみ分析を行うための手段と、
前記現在のブロックを符号化するために前記決定されたレートひずみコストに基づいて、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの１つに従って前記現在のブロックに対してイントラ予測コーディングを行うための手段と
を備えるビデオコーディングデバイス。
［Ｃ２２］
イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのための計算された近似コストに基づいて追加のイントラ予測モードを探索するための手段と、
前記追加のイントラ予測モードの各々のための近似コストを計算するための手段と、
イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの少なくとも１つのために計算された前記近似コストと、前記追加のイントラ予測モードのために計算された前記近似コストのうちの少なくとも１つとの比較に基づいて、イントラ予測モードの前記現在のセットに前記追加のイントラ予測モードを追加するための手段と
をさらに備える、Ｃ２１に記載のビデオコーディングデバイス。
［Ｃ２３］
前記現在のセット中に含まれる最低近似コストに関連するモードが角度モードであるかどうかを決定するための手段と、
前記現在のセット中に含まれる前記最低近似コストに関連する前記モードが角度モードであると決定したことに応答して、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのために計算された前記近似コストに基づいて、追加のイントラ予測モードを探索するための手段と
をさらに備える、Ｃ２１に記載のビデオコーディングデバイス。
［Ｃ２４］
複数の角度モードから角度モードを選択するための手段と、
前記角度モードがカットリスト中に含まれるかどうかを決定するための手段と、ここにおいて、前記カットリストが、しきい値を満たさない確率で発生する少なくとも１つのイントラ予測モードを備える、
前記角度モードが前記カットリスト中に含まれると決定したことに応答して、前記角度モードのための近似コストを決定しないための手段と
をさらに備える、Ｃ２１に記載のビデオコーディングデバイス。
［Ｃ２５］
前記角度モードが第１の角度モードであり、前記ビデオコーディングデバイスが、
前記第１の角度モードからのオフセットに少なくとも部分的に基づいて第２の角度モードを決定するための手段と、
前記第２の角度モードがカットリスト中に含まれないと決定したことに応答して、
前記第２の角度モードに関連する近似コストを計算するための手段と、
前記現在のセット中に前記第２の角度モードを挿入するための手段と
をさらに備える、Ｃ２４に記載のビデオコーディングデバイス。
［Ｃ２６］
複数の最尤モードから最低近似コストに関連する最尤モードを決定するための手段と、
前記最尤モードと前記現在のセット中の少なくとも１つのモードとの間の差に少なくとも部分的に基づいて値を決定するための手段と、
前記値がしきい値を満たすと決定したことに応答して、前記現在のセット中の前記少なくとも１つのモードを置き換えるために前記現在のセット中に前記最尤モードを挿入するための手段と
をさらに備える、Ｃ２１に記載のビデオコーディングデバイス。
［Ｃ２７］
前記現在のセット中の前記少なくとも１つのモードが、前記現在のセット中の最大近似コストに関連付けられ、
前記値が前記しきい値よりも小さいとき、前記値が前記しきい値を満たす、Ｃ２６に記載のビデオコーディングデバイス。
［Ｃ２８］
前記現在のセット中の最低近似コストに関連する第１の角度モードを決定するための手段と、ここにおいて、前記第１の角度モードが第１のモードインデックスに関連付けられる、
前記第１の角度モードインデックスとステップ値との和を備える第２のモードインデックスに関連する第２の角度モードを決定するための手段と、
前記第１の角度モードインデックスと前記ステップ値との差を備える第３のモードインデックスに関連する第３の角度モードを決定するための手段と
をさらに備える、Ｃ２１に記載のビデオコーディングデバイス。
［Ｃ２９］
前記第１の角度モードに関連する前記最低近似コストが第１の近似コストであり、前記ビデオコーディングデバイスが、
前記第２の角度モードに関連する第２の近似コストを決定するための手段と、
前記第３の角度モードに関連する第３の近似コストを決定するための手段と、
前記第２の近似コストまたは前記第３の近似コストのうちの少なくとも１つが前記第１の近似コストよりも小さいと決定したことに応答して、第１のモードを置き換えるために前記現在のセット中に、前記第１の近似コストよりも小さい前記第２の近似コストまたは前記第３の近似コストのうちの前記少なくとも１つにそれぞれ関連する前記第２のモードまたは前記第３のモードを挿入するための手段と
をさらに備える、Ｃ２８に記載のビデオコーディングデバイス。
［Ｃ３０］
前記現在のセット中に挿入された前記第２のモードまたは前記第３のモードのうちの前記少なくとも１つが選択モードであり、前記ビデオコーディングデバイスが、
前記ステップ値と前記選択モードとに少なくとも部分的に基づく更新ステップ値を決定するための手段と、
前記更新ステップ値が前記しきい値を満たすと決定したことに応答して、前記現在のブロックに対してイントラ予測コーディングを行うために前記現在のセット中で最低フルレートひずみコストに関連するモードを選択するための手段と、
前記更新ステップ値が前記しきい値を満たさないと決定したことに応答して、
前記選択モードに関連するインデックスと前記更新ステップ値との和を備える第４のモードインデックスに関連する第４の角度モードを決定するための手段と、
前記選択モードに関連する前記インデックスと前記更新ステップ値との差を備える第５のモードインデックスに関連する第５の角度モードを決定するための手段と、
前記第４の角度モードの第４の近似コストまたは前記第５の角度モードの第５の近似コストのうちの少なくとも１つが前記選択モードに関連する近似コストよりも小さいと決定したことに応答して、前記現在のセット中に、前記選択モードに関連する前記近似コストよりも小さい前記第４の近似コストまたは前記第５の近似コストのうちの前記少なくとも１つにそれぞれ関連する前記第４のモードまたは前記第５のモードを挿入するための手段と
をさらに備える、Ｃ２９に記載のビデオコーディングデバイス。
［Ｃ３１］
実行されたとき、１つまたは複数のプロセッサに、
少なくとも１つのイントラ予測モードを有するイントラ予測モードの予め定義されたセットを含むイントラ予測モードの現在のセット中で識別されたイントラ予測モードごとに近似コストを計算することと、ここにおいて、イントラ予測モードの前記現在のセットが、前記ビデオデータの現在のブロックをコーディングするために利用可能なイントラ予測モードの総数よりも少ないイントラ予測モードを含む、
前記現在のブロックに隣接するビデオデータの１つまたは複数の隣接ブロックを符号化するために使用されるイントラ予測モードに基づいて決定される前記現在のブロックのための１つまたは複数の最尤イントラ予測モードのための近似コストを計算することと、
前記１つまたは複数の最尤イントラ予測モードのために計算された前記近似コストの各々をしきい値と比較することと、
前記比較に基づいて、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの１つまたは複数を前記１つまたは複数の最尤イントラ予測モードと置き換えることと、
イントラ予測モードの前記現在のセット中で識別されたイントラ予測モードごとにレートひずみコストを決定するために、イントラ予測モードの前記現在のセット中で識別された各イントラ予測モードに対してレートひずみ分析を行うことと、
前記現在のブロックを符号化するために前記決定されたレートひずみコストに基づいて、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの１つに従って前記現在のブロックに対してイントラ予測コーディングを行うことと
を行わせる命令を記憶した非一時的コンピュータ可読記憶媒体。
［Ｃ３２］
前記命令が、実行されたとき、前記１つまたは複数のプロセッサに、
イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのための計算された近似コストに基づいて追加のイントラ予測モードを探索することと、
前記追加のイントラ予測モードの各々のための近似コストを計算することと、
イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのうちの少なくとも１つのために計算された前記近似コストと、前記追加のイントラ予測モードのために計算された前記近似コストのうちの少なくとも１つとの比較に基づいて、イントラ予測モードの前記現在のセットに前記追加のイントラ予測モードを追加することと
を行わせる、Ｃ３１に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ３３］
前記命令が、実行されたとき、前記１つまたは複数のプロセッサに、
前記現在のセット中に含まれる最低近似コストに関連するモードが角度モードであるかどうかを決定することと、
前記現在のセット中に含まれる前記最低近似コストに関連する前記モードが角度モードであると決定したことに応答して、イントラ予測モードの前記現在のセット中で識別された前記イントラ予測モードのために計算された前記近似コストに基づいて、追加のイントラ予測モードを探索することと
を行わせる、Ｃ３１に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ３４］
前記命令が、実行されたとき、前記１つまたは複数のプロセッサに、
複数の角度モードから角度モードを選択することと、
前記角度モードがカットリスト中に含まれるかどうかを決定することと、ここにおいて、前記カットリストが、しきい値を満たさない確率で発生する少なくとも１つのイントラ予測モードを備える、
前記角度モードが前記カットリスト中に含まれると決定したことに応答して、前記角度モードのための近似コストを決定しないことと
を行わせる、Ｃ３１に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ３５］
前記角度モードが第１の角度モードであり、前記命令が、実行されたとき、前記１つまたは複数のプロセッサに、
前記第１の角度モードからのオフセットに少なくとも部分的に基づいて第２の角度モードを決定することと、
前記第２の角度モードがカットリスト中に含まれないと決定したことに応答して、
前記第２の角度モードに関連する近似コストを計算することと、
前記現在のセット中に前記第２の角度モードを挿入することと
を行わせる、Ｃ３４に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ３６］
前記命令が、実行されたとき、前記１つまたは複数のプロセッサに、
複数の最尤モードから最低近似コストに関連する最尤モードを決定することと、
前記最尤モードと前記現在のセット中の少なくとも１つのモードとの間の差に少なくとも部分的に基づいて値を決定することと、
前記値がしきい値を満たすと決定したことに応答して、前記現在のセット中の前記少なくとも１つのモードを置き換えるために前記現在のセット中に前記最尤モードを挿入することと
を行わせる、Ｃ３１に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ３７］
前記現在のセット中の前記少なくとも１つのモードが、前記現在のセット中の最大近似コストに関連付けられ、
前記値が前記しきい値よりも小さいとき、前記値が前記しきい値を満たす、Ｃ３６に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ３８］
前記命令が、実行されたとき、前記１つまたは複数のプロセッサに、
前記現在のセット中の最低近似コストに関連する第１の角度モードを決定することと、ここにおいて、前記第１の角度モードが第１のモードインデックスに関連付けられる、
前記第１の角度モードインデックスとステップ値との和を備える第２のモードインデックスに関連する第２の角度モードを決定することと、
前記第１の角度モードインデックスと前記ステップ値との差を備える第３のモードインデックスに関連する第３の角度モードを決定することと
を行わせる、Ｃ３１に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ３９］
前記第１の角度モードに関連する前記最低近似コストが第１の近似コストであり、前記命令が、実行されたとき、前記１つまたは複数のプロセッサに、
前記第２の角度モードに関連する第２の近似コストを決定することと、
前記第３の角度モードに関連する第３の近似コストを決定することと、
前記第２の近似コストまたは前記第３の近似コストのうちの少なくとも１つが前記第１の近似コストよりも小さいと決定したことに応答して、第１のモードを置き換えるために前記現在のセット中に、前記第１の近似コストよりも小さい前記第２の近似コストまたは前記第３の近似コストのうちの前記少なくとも１つにそれぞれ関連する前記第２のモードまたは前記第３のモードを挿入することと
を行わせる、Ｃ３１に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ４０］
前記現在のセット中に挿入された前記第２のモードまたは前記第３のモードのうちの前記少なくとも１つが選択モードであり、前記命令が、実行されたとき、前記１つまたは複数のプロセッサに、
前記ステップ値と前記選択モードとに少なくとも部分的に基づく更新ステップ値を決定することと、
前記更新ステップ値が前記しきい値を満たすと決定したことに応答して、前記現在のブロックに対してイントラ予測コーディングを行うために前記現在のセット中で最低フルレートひずみコストに関連するモードを選択することと、
前記更新ステップ値が前記しきい値を満たさないと決定したことに応答して、
前記選択モードに関連するインデックスと前記更新ステップ値との和を備える第４のモードインデックスに関連する第４の角度モードを決定することと、
前記選択モードに関連する前記インデックスと前記更新ステップ値との差を備える第５のモードインデックスに関連する第５の角度モードを決定することと、
前記第４の角度モードの第４の近似コストまたは前記第５の角度モードの第５の近似コストのうちの少なくとも１つが前記選択モードに関連する近似コストよりも小さいと決定したことに応答して、前記現在のセット中に、前記選択モードに関連する前記近似コストよりも小さい前記第４の近似コストまたは前記第５の近似コストのうちの前記少なくとも１つにそれぞれ関連する前記第４のモードまたは前記第５のモードを挿入することと
を行わせる、Ｃ３９に記載の非一時的コンピュータ可読記憶媒体。
【図１】
0006284954.tif 000010
【図２】
0006284954.tif 000011
【図３】
0006284954.tif 000012
【図４Ａ】
0006284954.tif 000013
【図４Ｂ】
0006284954.tif 000014
【図５】
0006284954.tif 000015
【図６】
0006284954.tif 000016
【図７Ａ】
0006284954.tif 000017
【図７Ｂ】
0006284954.tif 000018
【図８】
0006284954.tif 000019