"ビデオデータを符号化する方法であって、所定の関数と前記関数の1つ以上のパラメータ値とに少なくとも部分的に基づいて、残差ビデオデータのブロックに関連する変換係数の走査順序を定義することと、ビデオ符号化プロセスにおいて使用するために、前記走査順序に従って前記変換係数を走査することと、を備える、方法。前記変換係数が2次元アレイ内に存在し、前記変換係数を走査することが、前記走査順序に従ってビデオエンコーダにおいて前記変換係数を1次元アレイに走査することを備える、請求項1に記載の方法。コード化ビデオ中で、前記1次元アレイ内の走査された前記変換係数を与えることと、前記走査順序を定義するための前記関数の前記1つ以上のパラメータ値を信号伝達することとを更に備える、請求項2に記載の方法。前記変換係数が1次元アレイ内に存在し、前記変換係数を走査することが、前記走査順序に従ってビデオデコーダにおいて前記変換係数を2次元アレイに走査することを備える、請求項1に記載の方法。コード化ビデオ中で、前記1次元アレイ内の走査された前記変換係数と、前記走査順序を定義するための前記関数の前記1つ以上のパラメータ値を示す信号とを受信することを更に備える、請求項4に記載の方法。コード化ビデオ中で、前記1次元アレイ内の走査された前記変換係数を受信することと、前記走査順序を定義するための前記関数の1つ以上のパラメータ値を推論することとを更に備える、請求項4に記載の方法。残差ビデオデータの前記ブロックが、ビデオデータの符号化ブロックの画素値とビデオデータの予測ブロックの画素値との間の差を示す残差値を含み、前記変換係数が、残差ビデオデータの前記ブロックに適用される変換によって生成される係数を含み、前記1つ以上のパラメータ値が残差データの前記ブロックのサイズを含む、請求項1に記載の方法。残差ビデオデータの前記ブロックが、ビデオデータの符号化ブロックの画素値とビデオデータの予測ブロックの画素値との間の差を示す残差値を含み、前記変換係数が、残差ビデオデータの前記ブロックに適用される変換によって生成される係数を含み、前記1つ以上のパラメータ値が前記走査順序の方向を含む、請求項1に記載の方法。前記1つ以上のパラメータ値が前記走査順序の方向強度を更に含む、請求項8に記載の方法。前記方向が、水平走査方向及び垂直走査方向のうちの1つを含む、請求項9に記載の方法。残差ビデオデータの前記ブロックが、ビデオデータの符号化ブロックの画素値とビデオデータの予測ブロックの画素値との間の差を示す残差値を含み、前記変換係数が、残差ビデオデータの前記ブロックに適用される変換によって生成される係数を含み、前記1つ以上のパラメータ値が、残差データの前記ブロックのサイズと、前記走査順序の方向と、前記走査順序の方向強度とを含む、請求項1に記載の方法。前記1つ以上のパラメータ値が前記走査順序の方向強度を含み、所定の関数に少なくとも部分的に基づいて走査順序を定義することが、前記方向強度に少なくとも部分的に基づいて閾値を決定することを備え、前記走査順序を定義することが、前記閾値に基づいて、前記ブロックの後の行又は列に関して走査されるべき変換係数を走査する前に前記ブロックの複数の行又は列の各々に関して走査されるべき前記変換係数の数を定義することを備える、請求項1に記載の方法。前記ブロック中で走査される前記行又は前記列のうちの各連続する行又は列の前記閾値を固定値に設定することを更に備える、請求項12に記載の方法。前記ブロック中で走査される前記行又は前記列のうちの先行する行又は列の前記閾値の値に対して、前記ブロック中で走査される前記行又は前記列のうちの各連続する行又は列の前記閾値の値を低減することを更に備える、請求項12に記載の方法。前記走査順序に従って前記変換係数を走査することは、前記ブロックの第1の行又は列に関して、前記閾値に等しい数の前記係数を走査することと、前記第1の行又は列中の変換係数の数が前記閾値よりも大きい場合、前記第1の行又は列に関する未走査係数と交互に、第2の行又は列に関する前記係数のうちの1つ以上を走査することと、前記第2の行又は列の前記閾値を低減することと、第3の行又は列に関する未走査係数を走査する前に、前記低減された閾値に等しい数の、前記第2の行又は列に関する未走査係数を走査することとを備える、請求項12に記載の方法。前記走査順序に従って前記変換係数を走査することが、前記走査順序で前記変換係数のレベル又は符号のうちの少なくとも1つを符号化することを備える、請求項1に記載の方法。ビデオデータを符号化するための装置であって、前記装置が、所定の関数と前記関数の1つ以上のパラメータ値とに少なくとも部分的に基づいて、残差ビデオデータのブロックに関連する変換係数の走査順序を定義することと、ビデオ符号化プロセスにおいて使用するために、前記走査順序に従って前記変換係数を走査することとを行うように構成されたビデオコーダを備える、装置。前記変換係数が2次元アレイ内に存在し、前記ビデオコーダが、前記走査順序に従って前記変換係数を1次元アレイに走査するように構成されたビデオエンコーダを備える、請求項17に記載の装置。前記ビデオエンコーダが、コード化ビデオ中で、前記1次元アレイ内の走査された前記変換係数を与えることと、前記走査順序を定義するための前記関数の前記1つ以上のパラメータ値を信号伝達することとを行うように構成された、請求項18に記載の装置。前記変換係数が1次元アレイ内に存在し、前記ビデオコーダが、前記走査順序に従って前記変換係数を2次元アレイに走査するように構成されたビデオデコーダを備える、請求項17に記載の装置。前記ビデオデコーダが、コード化ビデオ中で、前記1次元アレイ内の走査された前記変換係数と、前記走査順序を定義するための前記関数の前記1つ以上のパラメータ値を示す信号とを受信するように構成された、請求項20に記載の装置。前記ビデオデコーダが、コード化ビデオ中で、前記1次元アレイ内の走査された前記変換係数を受信することと、前記走査順序を定義するための前記関数の1つ以上のパラメータ値を推論することとを行うように構成された、請求項20に記載の装置。残差ビデオデータの前記ブロックが、ビデオデータの符号化ブロックの画素値とビデオデータの予測ブロックの画素値との間の差を示す残差値を含み、前記変換係数が、残差ビデオデータの前記ブロックに適用される変換によって生成される係数を含み、前記1つ以上のパラメータ値が残差データの前記ブロックのサイズを含む、請求項17に記載の装置。残差ビデオデータの前記ブロックが、ビデオデータの符号化ブロックの画素値とビデオデータの予測ブロックの画素値との間の差を示す残差値を含み、前記変換係数が、残差ビデオデータの前記ブロックに適用される変換によって生成される係数を含み、前記1つ以上のパラメータ値が前記走査順序の方向を含む、請求項17に記載の装置。前記1つ以上のパラメータ値が前記走査順序の方向強度を更に含む、請求項24に記載の装置。前記方向が、水平走査方向及び垂直走査方向のうちの1つを含む、請求項24に記載の装置。残差ビデオデータの前記ブロックが、ビデオデータの符号化ブロックの画素値とビデオデータの予測ブロックの画素値との間の差を示す残差値を含み、前記変換係数が、残差ビデオデータの前記ブロックに適用される変換によって生成される係数を含み、前記1つ以上のパラメータ値が、残差データの前記ブロックのサイズと、前記走査順序の方向と、前記走査順序の方向強度とを含む、請求項17に記載の装置。前記1つ以上のパラメータ値が前記走査順序の方向強度を含み、前記符号化ユニットが、前記方向強度に少なくとも部分的に基づいて閾値を決定することと、前記閾値に基づいて、前記ブロックの後の行又は列に関して走査されるべき変換係数を走査する前に前記ブロックの複数の行又は列の各々に関して走査されるべき前記変換係数の数を定義することとを行うように構成された、請求項17に記載の装置。前記ビデオコーダが、前記ブロック中で走査される前記行又は前記列のうちの各連続する行又は列の前記閾値を固定値に設定するように構成された、請求項28に記載の装置。前記ビデオコーダが、前記ブロック中で走査される前記行又は前記列のうちの先行する行又は列の前記閾値の値に対して、前記ブロック中で走査される前記行又は前記列のうちの各連続する行又は列の前記閾値の値を低減するように構成された、請求項28に記載の装置。前記ビデオコーダが、前記ブロックの第1の行又は列に関して、前記閾値に等しい数の前記係数を走査することと、前記第1の行又は列中の変換係数の数が前記閾値よりも大きい場合、前記第1の行又は列に関する未走査係数と交互に、第2の行又は列に関する前記係数のうちの1つ以上を走査することと、前記第2の行又は列の前記閾値を低減することと、第3の行又は列に関する未走査係数を走査する前に、前記低減された閾値に等しい数の、前記第2の行又は列に関する未走査係数を走査することとを行うように構成された、請求項28に記載の装置。前記ビデオコーダがビデオデコーダを備える、請求項28に記載の装置。前記ビデオコーダがビデオエンコーダを備える、請求項28に記載の装置。前記ビデオコーダが、前記走査順序で前記変換係数のレベル又は符号のうちの少なくとも1つを符号化するように構成された、請求項17に記載の装置。ビデオデータを符号化するための装置であって、所定の関数と前記関数の1つ以上のパラメータ値とに少なくとも部分的に基づいて、残差ビデオデータのブロックに関連する変換係数の走査順序を定義するための手段と、ビデオ符号化プロセスにおいて使用するために、前記走査順序に従って前記変換係数を走査するための手段とを備える、装置。前記変換係数が2次元アレイ内に存在し、前記変換係数を走査するための前記手段が、前記走査順序に従ってビデオエンコーダにおいて前記変換係数を1次元アレイに走査するための手段を備える、請求項35に記載の装置。コード化ビデオ中で、前記1次元アレイ内の走査された前記変換係数を与えるための手段と、前記走査順序を定義するための前記関数の前記1つ以上のパラメータ値を信号伝達するための手段とを更に備える、請求項36に記載の装置。前記変換係数が1次元アレイ内に存在し、前記変換係数を走査するための前記手段が、前記走査順序に従ってビデオデコーダにおいて前記変換係数を2次元アレイに走査するための手段を備える、請求項35に記載の装置。コード化ビデオ中で、前記1次元アレイ内の走査された前記変換係数と、前記走査順序を定義するための前記関数の前記1つ以上のパラメータ値を示す信号伝達とを受信するための手段を更に備える、請求項38に記載の装置。残差ビデオデータの前記ブロックが、ビデオデータの符号化ブロックの画素値とビデオデータの予測ブロックの画素値との間の差を示す残差値を含み、前記変換係数が、残差ビデオデータの前記ブロックに適用される変換によって生成される係数を含み、前記1つ以上のパラメータ値が前記走査順序の方向と前記走査順序の方向強度とを含む、請求項35に記載の装置。前記方向が、水平走査方向及び垂直走査方向のうちの1つを含む、請求項40に記載の装置。残差ビデオデータの前記ブロックが、ビデオデータの符号化ブロックの画素値とビデオデータの予測ブロックの画素値との間の差を示す残差値を含み、前記変換係数が、残差ビデオデータの前記ブロックに適用される変換によって生成される係数を含み、前記1つ以上のパラメータ値が、残差データの前記ブロックのサイズと、前記走査順序の方向と、前記走査順序の方向強度とを含む、請求項35に記載の装置。前記1つ以上のパラメータ値が前記走査順序の方向強度を含み、所定の関数に少なくとも部分的に基づいて走査順序を定義するための前記手段が、前記方向強度に少なくとも部分的に基づいて閾値を決定するための手段を備え、前記走査順序を定義するための前記手段が、前記閾値に基づいて、前記ブロックの後の行又は列に関して走査されるべき変換係数を走査する前に前記ブロックの複数の行又は列の各々に関して走査されるべき前記変換係数の数を定義するための手段を備える、請求項35に記載の装置。前記ブロック中で走査される前記行又は前記列のうちの先行する行又は列の前記閾値の値に対して、前記ブロック中で走査される前記行又は前記列のうちの各連続する行又は列の前記閾値の値を低減するための手段を更に備える、請求項43に記載の装置。前記走査順序に従って前記変換係数を走査するための前記手段は、前記ブロックの第1の行又は列に関して、前記閾値に等しい数の前記係数を走査するための手段と、前記第1の行又は列中の変換係数の数が前記閾値よりも大きい場合、前記第1の行又は列に関する未走査係数と交互に、第2の行又は列に関する前記係数のうちの1つ以上を走査するための手段と、前記第2の行又は列の前記閾値を低減するための手段と、第3の行又は列に関する未走査係数を走査する前に、前記低減された閾値に等しい数の、前記第2の行又は列に関する未走査係数を走査するための手段とを備える、請求項43に記載の装置。所定の関数と前記関数の1つ以上のパラメータ値とに少なくとも部分的に基づいて、残差ビデオデータのブロックに関連する変換係数の走査順序を定義することと、ビデオ符号化プロセスにおいて使用するために、前記走査順序に従って前記変換係数を走査することとをビデオコーダに行わせるための命令を備えるコンピュータ可読媒体。前記変換係数が2次元アレイ内に存在し、前記命令が、前記走査順序に従ってビデオエンコーダにおいて前記変換係数を1次元アレイに走査することを前記ビデオコーダに行わせ、前記命令が、コード化ビデオ中で、前記1次元アレイ内の走査された前記変換係数を与えることと、前記走査順序を定義するための前記関数の前記1つ以上のパラメータ値を信号伝達することとを前記ビデオコーダに行わせる、請求項46に記載のコンピュータ可読媒体。前記変換係数が1次元アレイ内に存在し、前記命令が、前記走査順序に従ってビデオデコーダにおいて前記変換係数を2次元アレイに走査することを前記ビデオコーダに行わせ、前記命令が、コード化ビデオ中で、前記1次元アレイ内の走査された前記変換係数と、前記走査順序を定義するための前記関数の前記1つ以上のパラメータ値を示す信号伝達とを受信することを前記ビデオコーダに行わせる、請求項46に記載のコンピュータ可読媒体。残差ビデオデータの前記ブロックが、ビデオデータの符号化ブロックの画素値とビデオデータの予測ブロックの画素値との間の差を示す残差値を含み、前記変換係数が、残差ビデオデータの前記ブロックに適用される変換によって生成される係数を含み、前記1つ以上のパラメータ値が残差データの前記ブロックのサイズを含む、請求項46に記載のコンピュータ可読媒体。残差ビデオデータの前記ブロックが、ビデオデータの符号化ブロックの画素値とビデオデータの予測ブロックの画素値との間の差を示す残差値を含み、前記変換係数が、残差ビデオデータの前記ブロックに適用される変換によって生成される係数を含み、前記1つ以上のパラメータ値が前記走査順序の方向を含み、前記1つ以上のパラメータ値が前記走査順序の方向強度を更に含み、前記方向が、水平走査方向及び垂直走査方向のうちの1つを含む、請求項46に記載のコンピュータ可読媒体。デジタルビデオ機器は、デジタルビデオ情報をより効率的に送信及び受信するためのビデオ圧縮技術を実装する。ビデオ圧縮は、ビデオシーケンスに固有の冗長性を低減又は除去するために空間的フレーム内予測及び/又は時間的フレーム間予測技術を適用し得る。一例として、JointCooperativeTeamforVideoCodingJCT-VCによって現在開発中の高効率ビデオ符号化HEVC規格に従うビデオ符号化では、ビデオフレームが符号化ユニットに区分され得る。符号化ユニットは、概して、ビデオ圧縮のために様々な符号化ツールが適用される基本ユニットとして働く画像領域を指す。符号化ユニットは、一般に方形であり、例えば、ITU-TH.264などの他のビデオ符号化規格の下での所謂マクロブロックと同様であると見なされ得る。本出願では、例示のために、開発中のHEVC規格の現在提案されている態様の幾つかに従う符号化について説明する。但し、本開示で説明する技術は、H.264又は他の規格に従って定義されるビデオ符号化プロセス若しくはプロプライエタリビデオ符号化プロセスなど、他のビデオ符号化プロセスのために有用であり得る。望ましい符号化効率を達成するために、HEVCによれば、符号化ユニットCUはビデオコンテンツに応じて可変サイズを有し得る。更に、符号化ユニットは、予測又は変換のためにより小さいブロックに分割され得る。具体的には、各符号化ユニットは、予測ユニットPUと変換ユニットTUとに更に区分され得る。予測ユニットは、H.264規格などの他のビデオ符号化規格の下での所謂パーティションと同様であると見なされ得る。TUは、概して、変換係数を生成するために変換が適用される残差データのブロックを指す。符号化ユニットは、通常、Yとして示されるルミナンス成分と、U及びVとして示される2つのクロマ成分とを有する。ビデオサンプリングフォーマットに応じて、サンプル数で表されるU及びV成分のサイズは、Y成分のサイズと同じであるか又はそれとは異なり得る。ブロック例えば、ビデオデータの予測ユニットPUを符号化するために、ブロックの予測子が最初に導出される。予測ブロックとも呼ばれる予測子は、イントラI予測即ち、空間的予測又はインターP又はB予測即ち時間的予測のいずれかを通して導出され得る。従って、幾つかの予測ユニットは、同じフレーム中の隣接参照ブロック中の参照サンプルに関する空間的予測を使用してイントラ符号化Iされ得、他の予測ユニットは、他のフレーム中の参照サンプルのブロックに関して単方向にインター符号化Pされるか又は双方向にインター符号化Bされ得る。各場合において、参照サンプルは、符号化されるべきブロックの予測ブロックを形成するために使用され得る。予測ブロックの識別時に、元のビデオデータブロックとそれの予測ブロックとの間の差分が決定される。この差分は残差データと呼ばれることがあり、符号化されるべきブロック中の画素値と、コード化ブロックを表すように選択された予測ブロック中の画素値との間の画素差分を示す。より良好な圧縮を達成するために、残差データは、例えば、離散コサイン変換DCT、整数変換、カルーネンレーベKarhunenLoeveK-L変換、又は別の変換を使用して変換され得る。TUなどの変換ブロック中の残差データは、空間的画素領域に存在する画素差分値の2次元2Dアレイで構成され得る。変換は、周波数領域などの変換領域において残差画素値を変換係数の2次元アレイに変換する。さらなる圧縮のために、変換係数は、エントロピー符号化に先立って量子化され得る。次いで、エントロピーコーダは、量子化された変換係数にコンテキスト適応型可変長符号化CAVLC:ContextAdaptiveVariableLengthCoding、コンテキスト適応型バイナリ算術符号化CABAC:ContextAdaptiveBinaryArithmeticCodingなどのエントロピー符号化を適用する。量子化された変換係数のブロックをエントロピー符号化するために、ブロック中の量子化された変換係数の2次元2Dアレイが、特定の走査順序に従って変換係数の順序付き1次元1Dアレイ、即ちベクトルに再構成されるように、走査プロセスが通常実行される。次いで、変換係数のベクトルにエントロピー符号化が適用される。変換ユニット中の量子化された変換係数の走査は、エントロピーコーダのために変換係数の2Dアレイをシリアル化する。有効即ち、非0係数の位置を示すための有効性マップsignificancemapが生成され得る。他の例では、有効性マップは生成されないことがある。走査は、有効即ち、非0係数のレベルなど、係数のレベルを走査するため、及び/又は有効係数の符号を符号化するために適用され得る。レベルは係数の絶対値を指し得る。係数の走査は、係数有効性を符号化するため、係数レベルを符号化するため、係数符号を符号化するため、又は他の関連する係数情報を符号化するために係数を走査すること指し得る。幾つかの例では、走査は、例えば、CAVLC符号化プロセスに従って、係数レベル、符号、非0係数間のゼロランレングスなどの情報のエントロピー符号化をサポートし得る。また、幾つかの例では、走査は、例えば、CABAC符号化プロセスに従って、有効性マップ、係数レベル、係数符号などについての有効性情報など、変換係数情報のエントロピー符号化をサポートし得る。従って、CAVLCプロセス又はCABACプロセスなど、異なるタイプのエントロピー符号化技術に応じた変換係数情報の符号化をサポートするために、本開示で説明する技術に従って生成される走査順序が適用され得る。一例として、DCTでは、しばしば、2D変換ユニットの左上隅即ち、低周波数領域のほうが非0係数の確率がより高くなる。係数のシリアル化ランの始端において非0係数を一緒にグループ化する確率を増加させる方法で係数を走査して、0値係数がシリアル化ベクトルの終端のほうへ一緒にグループ化され、ゼロのランとしてより効率的に符号化されることを可能にすることが望ましいことがある。この理由で、走査順序は効率的なエントロピー符号化のために重要であり得る。一例として、量子化された変換係数を走査するために、所謂ジグザグ走査順序が広く使用されている。代替的に、水平、垂直、又は他の走査順序が使用され得る。場合によっては、ジグザグ、水平、及び/又は垂直走査順序の態様を組み合わせた走査順序が使用され得る。対角走査順序などの他の走査順序も使用され得る。変換及び量子化を介して、上述のように、例えば、変換がDCTである例では、非0変換係数は、概して、ブロックの左上領域のほうの低周波数エリアに位置する。その結果、最初に左上領域を横断し得るジグザグ走査プロセスの後に、非0変換係数は、通常、1Dアレイの前部分に位置する可能性が高くなる。より高い周波数において低減されたエネルギーにより、また量子化の効果により、通常、1Dアレイの終端において、幾つかの0係数が続き、これにより、ビット深度の低減時に幾つかの非0係数が0値係数になり得る。シリアル化1Dアレイ内の係数分布のこれらの特性は、符号化効率を改善するためにエントロピーコーダ設計において利用され得る。言い換えれば、何らかの適切な走査順序を介して1Dアレイの前部分に非0係数が効果的に構成され得る場合、より良好な符号化効率が、多くのエントロピーコーダの設計により期待され得る。例えば、エントロピー符号化は0値係数のランを符号化して、符号化のためのより効率的なシンボルを与え得る。1Dアレイの前セクションにより多くの非0係数を配置するこの目的を達成するために、ビデオエンコーダデコーダコーデックにおいて、変換係数を符号化するための異なる走査順序が使用され得る。ある場合には、ジグザグ走査が有効であり得る。他の場合には、垂直走査又は水平走査などの異なるタイプの走査が、1Dアレイの前セクションに非0係数を配置する際により有効であり得る。異なる走査順序は様々な方法で生成され得る。1つの例は、変換係数の各ブロックについて、幾つかの利用可能な走査順序から最良の走査順序が選定され得ることである。次いで、ビデオエンコーダが、各ブロックについて、それぞれのインデックスによって示される、デコーダに記憶された走査順序のセットのうちの最良の走査順序のインデックスをエンコーダに信号伝達し得る。最良の走査順序の選択は、幾つかの走査順序を適用することと、1Dベクトルの始端の近くに非0係数を配置する際に最も効果的である走査順序を選択することとによって決定され、それにより効率的なエントロピー符号化が促進され得る。別の例では、現在のブロックの走査順序は、予測モードI、B、P、又は他のファクタなど、関連する予測ユニットの符号化に関係する様々なファクタに基づいて決定され得る。この場合、エンコーダ側とデコーダ側の両方において同じ情報、例えば、予測モードが推測又は場合によっては決定され得るので、エンコーダからデコーダに走査順序インデックスを信号伝達する必要はないことがある。代わりに、ビデオデコーダは、ブロックの予測モードの知識と、予測モードを特定の走査順序にマッピングする1つ以上の基準とが与えられれば、適切な走査順序を知り得る。符号化効率を更に改善するために、利用可能な走査順序は常に一定であるとは限らない。代わりに、例えば、すでに符号化された係数に基づいて走査順序が適応的に調整されるように、何らかの適応が可能にされ得る。概して、走査順序適応は、選択された走査順序に従って、非0値を有する可能性が高い係数位置が、非0係数を有する可能性が低い位置の前に走査される方法で行われ得る。幾つかのビデオコーデックでは、使用のために利用可能である初期走査順序は、純水平、純垂直又は純ジグザグ走査など、極めて規則的な形態であり得る。代替的に、走査順序はトレーニングプロセスを通して導出され得、従って、いくぶんランダムであるように見え得る。トレーニングプロセスは、例えば、上述のように、非0係数と0値係数との効率的な配置に関して望ましい結果を生成する走査順序を識別するための、ブロック又は一連のブロックへの異なる走査順序の適用を伴い得る。走査順序がトレーニングプロセスから導出される場合、又は走査順序が順序構成に関して規則的なパターンを有しない場合、エンコーダ側とデコーダ側の両方において特定の走査順序を保存することが必要であり得る。残念ながら、場合によっては、そのような走査順序を指定するデータはかなりの量になり得る。例えば、32×32変換ブロックでは、1つの走査順序は1024個の変換係数位置を含んでいることがある。別様にサイズ決定されたブロックがあり得、変換ブロックの各サイズについて、幾つかの異なる走査順序があり得るので、保存される必要があるデータの総量は無視できない。水平、垂直又はジグザグ順序などの規則的走査順序は、記憶を必要としないか又は最小の記憶を必要とし得る。しかしながら、水平、垂直又はジグザグ順序は、トレーニングされた走査順序と同等である符号化性能を与えるのに十分な多様性を与え得ない。本開示の例によれば、変換係数のブロック中の変換係数を走査するための走査順序は、関数を使用して効率的に定義され得る。単一の関数を使用して、異なる関数パラメータ値に基づいて異なる走査順序を生成し得る。代替的に、複数の関数を使用して、例えば、同じ又は異なるパラメータ又はパラメータ値を用いて異なる走査順序を生成し得る。従って、異なるパラメータ値、異なる関数、又は両方の組合せを選択することによって異なる走査順序が生成され得る。このようにして、例えば、複雑な走査順序を定義するためにエンコーダ及びデコーダにおいて必要とされる記憶されたデータの量を低減する方法で、そのような複雑な走査順序が定義され得る。走査順序の関数ベース定義の使用は、幾つかの例では、エンコーダ及び/又はデコーダにおいて走査順序をメモリに記憶する必要なしに様々な走査順序が生成されることを可能にし得る。例えば、所与のブロック又はブロックのグループの走査順序を生成するためにエンコーダ及び/又はデコーダにおいて関数が適用され得る。異なるパラメータ値の使用は、エンコーダ及び/又はデコーダが、ジグザグ、水平及び垂直走査順序などの単純な走査順序に対してよりフレキシブルに走査順序を調整することを可能にする。しかも、走査順序を定義するための関数を使用して、エンコーダ及び/又はデコーダは、幾つかの異なる走査順序を直接表すために一般に必要とされるであろうデータよりも大幅に少ないデータを記憶し得る。ビデオエンコーダ又はビデオデコーダなどのビデオコーダは、所定の関数predefinedfunctionとその関数の1つ以上のパラメータ値とに少なくとも部分的に基づいて変換係数の走査順序を定義し得る。例えば、ビデオエンコーダが、コード化ビデオデータを生成する際に使用する変換係数の1次元アレイを生成するために、関数ベース走査順序を使用して変換係数の2次元アレイを走査し得る。別の例として、ビデオデコーダが、復号ビデオデータを生成する際に使用する変換係数の2次元アレイを再生するために、関数ベース走査順序を逆に使用して変換係数の1次元アレイを走査し得る。変換係数は、変換係数のレベル、即ち、絶対値として表され得る。走査順序は、例えば、CABACプロセスの場合、有効係数の有効性マップを符号化すること、有効係数のレベルを符号化すること、及び/又は有効係数の符号を符号化すること、及び/又は他の関連する変換情報を符号化することにおいて使用され得る。他の例では、走査順序は、例えば、CAVLCプロセスの場合、係数のレベルを符号化すること、有効係数の符号を符号化すること、非0係数間のゼロランレングスを符号化すること、及び/又は他の関連する変換情報を符号化することにおいて使用され得る。従って、走査順序に従って変換係数を走査することは、様々な例では、走査順序に従って残差ビデオデータ例えば、TU中の変換係数のブロックに関連する変換係数の有効性即ち、非0係数又は0値係数としての係数のステータス、レベル、符号、又はゼロランレングスのうちの少なくとも1つを符号化することを備え得る。ビデオコーダ、即ち、ビデオエンコーダ又はビデオデコーダによって定義される走査順序は、パラメータ値に応じて変化し得る。幾つかの例では、パラメータ値は、変換ユニットサイズ、即ち、ブロックサイズ、走査方向、及び/又は走査方向強度を含み得る。ビデオエンコーダが、明示的に、又はデコーダによって記憶された異なるパラメータ値をポイントするインデックス値によって、パラメータ値をビデオデコーダに信号伝達し得る。幾つかの例では、ビデオエンコーダは、例えば、インデックス値によって複数の利用可能な関数のうちの特定の関数を信号伝達し得る。従って、ビデオエンコーダ及びビデオデコーダは単一の関数又は複数の関数を使用し得る。各場合において、走査順序を生成するために、パラメータ値の異なるセットが入力として関数に適用され得る。本開示では、概して、例示のために、異なるパラメータ値をもつ単一の関数の使用について説明する。但し、本開示で説明する技術は、概して、ビデオエンコーダ及び/又はビデオデコーダにおいて走査順序を定義するための、パラメータ値の異なるセットをもつ単一の関数又は複数の関数の使用に適用可能であり得る。更に、本開示では、走査順序の関数ベース定義について概括的に説明し、また開発中のHEVC規格の幾つかの態様に関して説明する。例示のためにHEVC規格について説明するが、本開示で説明する技術は、概して、変換係数の走査が望ましい、任意のビデオ符号化プロセスに適用可能であり得る。図1は、残差ビデオデータのブロックに関連する変換係数を走査するために、走査順序の関数ベース定義のための技術を利用する例示的なビデオ符号化及び復号システム10を示すブロック図である。図1に示すように、システム10は、通信チャネル16を介して符号化ビデオを宛先機器14に送信する信号源12を含む。信号源12及び宛先機器14は、デスクトップコンピュータ、ノートブック即ち、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、所謂スマートフォンなどの電話ハンドセット、テレビジョン、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソールなどを含む、広範囲にわたる機器のいずれかを備え得る。多くの場合、そのような機器はワイヤレス通信が可能であり得る。従って、通信チャネル16は、コード化ビデオデータの送信に好適なワイヤレスチャネル、ワイヤードチャネル、又はワイヤレスチャネルとワイヤードチャネルとの組合せを備え得る。本開示の例による、走査変換係数に対する走査順序の関数ベース定義のための技術は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、又は他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオ符号化に適用され得る。幾つかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、及び/又はビデオテレフォニーなどの適用例をサポートするために、一方向又は双方向のビデオ送信をサポートするように構成され得る。図1の例では、信号源12は、ビデオソース18と、ビデオエンコーダ20と、変調器/復調器22と、送信機24とを含む。信号源12において、ビデオソース18は、ビデオカメラなどの撮像装置、以前に撮影されたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、及び/又はソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、若しくはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、信号源12及び宛先機器14は、所謂カメラ付き携帯電話又はビデオ電話を形成し得る。但し、本開示で説明する技術は、概してビデオ符号化に適用可能であり得、ワイヤレス及び/又はワイヤード適用例に適用されるか、又はコード化ビデオデータを記憶するローカルメディアへのアクセスに適用され得る。撮影されたビデオ、以前に撮影されたビデオ、又はコンピュータ生成ビデオはビデオエンコーダ20によって符号化され得る。符号化されたビデオ情報は、ワイヤレス通信プロトコルなどの通信規格に従ってモデム22によって変調され、送信機24を介して宛先機器14に送信され得る。モデム22は、信号変調のために設計された様々なミキサ、フィルタ、増幅器又は他の構成要素を含み得る。送信機24は、増幅器、フィルタ、及び1つ以上のアンテナを含む、データを送信するために設計された回路を含み得る。図1の例では、宛先機器14は、受信機26と、モデム28と、ビデオデコーダ30と、表示装置32とを含む。宛先機器14の受信機26はチャネル16を介して情報を受信し、モデム28はその情報を復調して、ビデオデコーダ30のための復調されたビットストリームを生成する。チャネル16を介して通信される情報は、ビデオデータを復号する際にビデオデコーダ30が使用する、ビデオエンコーダ20によって生成された様々なシンタックス情報を含み得る。ビデオエンコーダ20及びビデオデコーダ30の各々は、ビデオデータを符号化又は復号することが可能であるそれぞれのエンコーダデコーダコーデックの一部を形成し得る。表示装置32は、宛先機器14と一体化されるか又はその外部にあり得る。幾つかの例では、宛先機器14は、一体型表示装置を含み、また、外部表示装置とインターフェースするように構成され得る。他の例では、宛先機器14は表示装置であり得る。概して、表示装置32は、復号されたビデオデータをユーザに対して表示し、液晶表示器LCD、プラズマ表示器、有機発光ダイオードOLED表示器、又は別のタイプの表示装置など、様々な表示装置のいずれかを備え得る。図1の例では、通信チャネル16は、無線周波数RFスペクトル又は1つ以上の物理伝送線路など、任意のワイヤレス又はワイヤード通信媒体、若しくはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル16は、概して、ワイヤード媒体又はワイヤレス媒体の任意の好適な組合せを含む、ビデオデータを信号源12から宛先機器14に送信するのに好適な任意の通信媒体、又は様々な通信媒体の集合体を表す。通信チャネル16は、信号源12から宛先機器14への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、又は任意の他の機器を含み得る。ビデオエンコーダ20及びビデオデコーダ30は、現在開発中の高効率ビデオ符号化HEVC規格などのビデオ圧縮規格に従って動作し得、HEVCテストモデルHMに準拠し得る。代替的に、ビデオエンコーダ20及びビデオデコーダ30は、代替的にMPEG-4、Part10、AdvancedVideoCodingAVCと呼ばれるITU-TH.264規格、又はそのような規格の拡張など、他のプロプライエタリ又は業界標準に従って動作し得る。但し、本開示の技術は、いかなる特定の符号化規格にも限定されない。他の例には、MPEG-2及びITU-TH.263がある。図1には示されていないが、幾つかの態様では、ビデオエンコーダ20及びビデオデコーダ30は、それぞれオーディオエンコーダ及びオーディオデコーダと統合され得、また、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なMUX-DEMUXユニット、又は他のハードウェア及びソフトウェアを含み得る。適用可能な場合、幾つかの例では、MUX-DEMUXユニットはITUH.223マルチプレクサプロトコル、又はユーザデータグラムプロトコルUDPなどの他のプロトコルに準拠し得る。ビデオエンコーダ20及びビデオデコーダ30はそれぞれ、1つ以上のマイクロプロセッサ、デジタル信号プロセッサDSP、特定用途向け集積回路ASIC、フィールドプログラマブルゲートアレイFPGA、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、又はそれらの任意の組合せとして実施され得る。本技術がソフトウェアで部分的に実施されるとき、機器は、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つ以上のプロセッサを使用してその命令をハードウェアで実行して、本開示の技術を実行し得る。ビデオエンコーダ20及びビデオデコーダ30の各々は1つ以上のエンコーダ又はデコーダ中に含まれ得、そのいずれも、それぞれの機器において複合エンコーダ/デコーダコーデックの一部として統合され得る。ビデオエンコーダ20は、符号化ユニットの変換ユニットの符号化を改善するために本開示の技術のいずれか又は全てを実装し得る。同様に、ビデオデコーダ30は、符号化ユニットの変換ユニットの復号を改善するためにこれらの技術のいずれか又は全てを実装し得る。概して、本開示の技術は、走査順序の関数ベース定義を使用して、残差ビデオデータのブロックに関連する変換係数を走査する、ビデオ符号化のための機器及び方法に関する。本開示で説明するビデオコーダは、ビデオエンコーダ又はビデオデコーダを指し得る。従って、ビデオエンコーダ20及びビデオデコーダ30は、それぞれ概括的にビデオコーダと呼ばれることがある。同様に、ビデオ符号化はビデオ符号化又はビデオ復号を指し得る。コーダ、エンコーダ及びデコーダという用語は、ビデオデータの符号化例えば、符号化、復号又は両方のために構成された特定の機械を指す。概して、走査順序を定義するための関数は、入力として関数に適用される1つ以上のパラメータ値の所与のセットについて特定の走査順序を生成するアルゴリズム、プロセス、等式equation、シーケンス、又は公式formulaであり得る。走査順序は、エンコーダが、変換係数の1次元アレイを生成する例えば、レベル及び/又は符号など、そのような変換係数に関連する情報を符号化するために、変換ユニット中の変換係数の2次元アレイを走査する順序、又はデコーダが変換係数の1次元アレイを変換係数の2次元アレイに走査する順序を指し得る。変換係数の2次元アレイは変換領域に存在し得る。変換係数の1次元アレイは、変換係数の2次元アレイのシリアル化表現であり得る。各場合において、走査された係数は量子化又は非量子化変換係数であり得る。ビデオエンコーダは、走査順序を適用して、2次元アレイから1次元アレイに変換係数を走査し得、ビデオデコーダは、例えば、エンコーダとは逆に走査順序を適用して、1次元アレイから2次元アレイに変換係数を走査し得る。代替的に、ビデオデコーダは、走査順序を適用して、1次元アレイから2次元アレイに変換係数を走査し得、ビデオエンコーダは、例えば、デコーダとは逆に走査順序を適用して、2次元アレイから1次元アレイに変換係数を走査し得る。従って、コーダによる走査は、エンコーダによる2D-1D走査又はデコーダによる1D-2D走査を指し得る。更に、走査順序に従う走査は、2D-1D走査のための走査順序での走査、1D-2D走査のための走査順序での走査、1D-2D走査のための走査順序の逆での走査、又は2D-1D走査のための走査順序の逆での走査を指し得る。従って、走査順序は、エンコーダによる走査又はデコーダによる走査のために確立され得る。HEVC符号化の例では、ビデオエンコーダ20は、最大符号化ユニットLCUを受信し、そのLCUを、各々がサブCUを備える、4つのクワドラントquadrantに分割すべきかどうか、又はそのLCUを分割せずに符号化すべきかどうかを決定し得る。LCUをサブCUに分割すると決定した後に、ビデオエンコーダ20は、各サブCUを、各々がサブCUを備える、4つのクワドラントに分割すべきかどうかを決定し得る。ビデオエンコーダ20は、CUを分割すべきかどうかを再帰的に決定し続け得、分割の最大数はLCU深さによって示される。ビデオエンコーダ20は、LCUとそのLCUのサブCUとの分割を示す4分木データ構造を与え得る。LCUは4分木のルートノードに対応し得る。4分木の各ノードはLCUのCUに対応し得る。その上、各ノードは、対応するCUが分割されるかどうかを示す分割フラグ値を含み得る。LCUが分割される場合、例えば、ビデオエンコーダ20は、LCUが分割されることを示すためにルートノードにおいて分割フラグの値を設定し得る。次いで、ビデオエンコーダ20は、もしあれば、LCUのサブCUのうちのどれが分割されるのかを示すためにルートノードの子ノードの値を設定し得る。分割されないCUは4分木データ構造のリーフノードに対応し得、リーフノードは子ノードを有しない。リーフノードに対応する各CUについて、ビデオエンコーダ20は、CUと同じサイズを有する1つのPUを形成すべきか、又はCUの部分を表す4つのPUを形成すべきかを決定し得る。各PUについて、予測ブロックは、イントラ予測モードに従って、隣接する前に符号化されたCUから取り出された予測データを用いて形成され得るか、又はインター予測モードに従って、前に符号化された参照フレーム中の予測ブロックから取り出された予測データを用いて形成され得る。各場合において、イントラ予測符号化又はインター予測符号化を行ってCUのPUの予測値を生成した後、ビデオエンコーダ20は、残差データを計算して、CUのための1つ以上の変換ユニットTUを生成し得る。残差データは、符号化されるべきPUの画素とPUの予測値との間の画素差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを含む1つ以上のTUを形成し得る。ビデオエンコーダ20は、次いで、例えば、離散コサイン変換DCT、整数変換、カルーネンレーベK-L変換、又は別の変換を使用してTUを変換し得る。幾つかの例では、ビデオエンコーダ20は、例えば、カスケード様式で2つ以上の変換をTUに適用するように構成され得る。TUのための残差データを変換することによって、ビデオエンコーダ20は変換係数の2次元アレイを生成する。2次元アレイは、概して、変換への入力ブロック、即ちTUと同じサイズを有する。概して、変換プロセスは、データを更に圧縮する量子化のための残差データを準備する。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、TU中の係数の一部又は全部に関連するビット深度を低減し得る。例えば、量子化中にnビット値がmビット値に切り捨てられ得、nはmよりも大きい。ビデオエンコーダ20は、量子化変換係数を走査し、それにより、エントロピー符号化のための変換係数のシリアル化ベクトルを生成するために、定義済走査順序を適用するか又は特定の走査順序を生成し得る。幾つかの例では、ビデオエンコーダ20は、特定のブロックのために1つ以上の基準に基づいて異なる走査順序を選択し得る。例えば、ビデオエンコーダ20は、特定のブロックのために異なる符号化モード、例えば、全般的にI、P、又はBモード、若しくはI、P又はBの特定のモードに基づいて、若しくは異なるタイプの変換、異なるTUサイズ、又は他の基準に基づいて異なる走査順序を選択し得る。追加又は代替として、走査順序は、例えば、より高いエネルギーの係数、即ち、非0係数が変換係数のシリアル化ベクトルの前のほうへ圧縮されるように、ベクトル中の変換係数の配置を最適化するために、走査の経験的テストに基づいて定義され得る。幾つかの例では、ビデオエンコーダ20は、異なる走査を経験的にテストし、様々な関数ベース走査順序を評価し、変換係数の所望の配置を生成する走査順序を選択し得る。例えば、ビデオエンコーダ20は、異なる走査順序を生成するために、関数の1つ以上のパラメータ値を調整し、例えば、1Dベクトルの前のほうへの非0変換係数の効率的な圧縮に関して走査順序の結果を評価し得る。ビデオエンコーダ20は、様々な所定のテスト方式のいずれかに従ってパラメータ値の範囲をテストし得る。関数が複数のパラメータ値を有する場合、テストは、パラメータの1次元変更例えば、他のパラメータの値を固定したまま1つのパラメータの値を変更すること又はパラメータの多次元変更例えば、複数のパラメータの値を一括して変更することを評価し得る。走査順序を定義するための関数は、入力としての単一のパラメータ値又は複数のパラメータ値に応答するように構成され得る。幾つかの例では、関数は、異なるブロックサイズ例えば、TUサイズ、走査方向及び/又は走査方向強度に基づいて異なる走査順序を定義するように構成され得る。走査方向は、TU中の変換係数のブロックの行又は列にわたる走査に関して、走査が主に水平方向に方向されるのか、垂直方向に方向されるのか、又は別の方向に方向されるのかを指定し得る。走査方向強度は、例えば、走査順序が走査方向のほうへバイアスされる程度として、走査順序の方向の強度を示し得る。例えば、極めて強い水平方向をもつ走査順序は、次の行中の係数の走査に進む前に、ある行中の全ての係数を走査し得る。より弱い水平方向をもつ走査順序は、第1の行中の係数のサブセットを走査し、次いで、1つ以上の他の行中の係数のサブセットを引き続き走査してから、第1の行中の残りの係数を走査するために戻り得る。場合によっては、走査順序は、他の行中の係数のサブセットと交互に残りの係数の幾つかのサブセットを走査するために、第1の行に複数回戻ることができる。本開示の例によれば、ビデオエンコーダ20及びビデオデコーダ30は、関数に基づいて、変換係数のブロック中の変換係数を走査するための走査順序を効率的に定義し得る。同じく、ビデオエンコーダ20及びビデオデコーダ30は、単一の関数を利用して、異なる関数パラメータ値を用いて異なる走査順序を生成し得る。代替又は追加として、ビデオエンコーダ20及びビデオデコーダ30は、複数の関数を使用して、例えば、同じパラメータ値又は異なるパラメータ値を用いて異なる走査順序を生成し得る。従って、これらの例では、異なるパラメータ値、異なる関数、又は両方の組合せを選択することによって異なる走査順序が生成され得る。幾つかの例では、ビデオエンコーダ20は、関数に従って走査順序を定義するために、所与の関数の1つ以上の関数パラメータの値を指定し、次いで、1つ以上のパラメータ値のうちの少なくとも幾つかをビデオデコーダ30に信号伝達し得る。上述のように、ビデオデコーダ30に信号伝達されるパラメータの値は、パラメータの異なるセットの評価と、シリアル化ベクトルの開始点の近くの非0係数の効率的な圧縮に関して最良の又は少なくとも満足な結果を生じるパラメータの選択とに基づいて、ビデオエンコーダ20によって選択され得る。本開示で説明する信号伝達は、必ずしも、ビデオエンコーダ20を組み込んだ機器とビデオデコーダ30を組み込んだ機器との間の対話型リアルタイム通信を指すとは限らないことに留意されたい。そうではなく、信号伝達は符号化ビデオビットストリーム中で提示され得る。符号化ビデオビットストリームは、ビデオエンコーダ20を組み込んだ信号源からビデオデコーダ30を組み込んだ宛先機器に送信され得る。多くの場合、代替的に、符号化ビデオビットストリームは、例えば、ディスク又はサーバ上のデータ記憶アーカイブに単に記録され、データ記憶アーカイブ上のデータにアクセスするか又はデータ記憶アーカイブにデータを要求する機器によって取り出され得る。例えば、符号化ビデオは、例えば、コンピュータ、メディアプレーヤ、スマートフォンなどの中のビデオデコーダ30に送信されるか、又はビデオデコーダ30によってアクセスされるローカル記憶装置に記憶され得る。関数は、ビデオエンコーダ20とビデオデコーダ30の両方において記憶された命令によって定義される単一の関数であり得る。この場合、ビデオエンコーダ20は、1つ以上のパラメータ値のうちの少なくとも幾つかをビデオデコーダ30に信号伝達し得る。代替的に、関数は、ビデオエンコーダ20とビデオデコーダ30とにおいて記憶された命令によって定義される複数の関数のうちの1つであり得る。この場合、ビデオエンコーダ20は、ビデオデコーダ30によって受信又はアクセスされる符号化ビデオ中で、選択された関数の識別情報とその関数の1つ以上のパラメータ値のうちの少なくとも幾つかとを信号伝達し得る。この信号伝達は、個々のTUのために又はCU内の複数のTUのために異なる走査順序が指定され得るように、例えば、個々のTU、PU又はCUのためのビットストリーム中で送信され得る。しかしながら、幾つかの適用例では、個々のTUのために特定の走査順序を指定する能力が望ましいことがある。ビデオエンコーダ20は、適用可能なとき、明示的に又は関数若しくはパラメータ値を識別するインデックス値を参照して関数及び/又はパラメータ値を信号伝達し得る。ビデオエンコーダ20は、例えば、個々に又はパラメータ値のセットについて、ビデオデコーダ30によって記憶されたパラメータ値の1つ以上のインデックス、及び/又はビデオデコーダによって記憶された命令又はデータによって定義される特定の関数を信号伝達し得る。幾つかの例では、ビデオエンコーダ20は、パラメータ値とともに、例えば、関数を定義するための値のテーブルを使用して関数の特定の特性をも信号伝達し得る。場合によっては、ビデオデコーダ30は、関数の1つ以上のパラメータを推論するように構成され得る。一例として、ビデオデコーダ30は、ビデオエンコーダ20によって送信されたシンタックス要素からTUサイズを決定し、そのTUサイズに基づいて、関数又はその関数の1つ以上のパラメータ値を選択し得る。幾つかの例では、幾つかのパラメータ値は推測され得、幾つかのパラメータ値は、符号化ビットストリーム中のシンタックス要素によって信号伝達され得る。他の例では、走査順序関数の全てのパラメータ値がビデオエンコーダ20によって信号伝達され得る。関数及び/又はパラメータ値は、例えば、シーケンスレベル、ピクチャレベル、スライスレベル、符号化ユニットレベルLCUレベルとCUレベルの両方を含む、TUレベル又は他の符号化レベルなど、ビデオデータの様々なレベルにおいてシンタックス要素として信号伝達され得る。異なるTUのための異なる走査順序の定義を可能にするために、TUレベルにおいて、例えば、TU4分木ヘッダ中でそのようなシンタックス要素を信号伝達することが望ましいことがある。ビデオエンコーダ20は、符号化ビデオビットストリーム中でパラメータ値を信号伝達し得る。ビデオデコーダ20は、符号化ビデオビットストリームを受信するか又は場合によってはそれにアクセスすると、信号伝達されたパラメータ値を既知の関数に適用して、その関数に従って走査順序を構築し得る。関数は、ビデオデコーダ20に関連するメモリに記憶された命令又はデータによって定義され得る。他の例では、関数又は関数のセットは、ビデオエンコーダ20及びビデオデコーダ30の両方に知られていることがあり、パラメータ値は、例えば、ブロックサイズなど、変換ユニットの特性に基づいて、エンコーダ側とデコーダ側の両方において推測され得る。この場合、ビデオエンコーダ20及びビデオデコーダ30は、両方とも、走査順序の関数ベース定義において使用するパラメータ値及び/又は関数を記憶し得る。従って、幾つかの例では、ビデオエンコーダ20は、パラメータ値又は関数を信号伝達する必要がないことがある。上記の例の各々において、関数を使用してビデオエンコーダ20及び/又はビデオデコーダ30において走査順序を構成することは、さもなければ大量のデータ記憶を必要とするであろう、エンコーダ及びデコーダにおいて位置ごとの厳密な走査順序を保存する必要なしに、高性能でフレキシブルな走査順序を生成する能力を与え得る。メモリから広範な走査順序定義を取り出す代わりに、例えば、ビデオデコーダ30は、ビデオエンコーダ20によって信号伝達されたか又はデコーダによって推測された関数とパラメータ値とを使用して走査順序を構築することができる。1つ以上のパラメータ値に基づいて走査順序を定義するために使用される関数のための命令又はデータを記憶することは、複数の実際の走査順序を記憶することよりも、ビデオデコーダ30において著しく少ないメモリを消費し得る。変換係数走査順序を生成するために1つ以上の特定のパラメータをもつ関数が使用され得る。一例では、上述のように、関数パラメータは、変換ユニットサイズと走査方向と走査方向強度とのうちの1つ以上を含み得る。これらのパラメータは、ビデオエンコーダ20とビデオデコーダ30とによって使用される走査順序を定義するために、個々に又は組合せで使用され得る。これらのパラメータの値が与えられれば、関数を使用してビデオエンコーダ20及びビデオデコーダ30によって走査が生成され得る。あるサイズの変換ブロックについて、例えば、異なる走査方向と方向強度とを与えることによって、異なるパラメータ値をもつ関数を使用してビデオエンコーダ20において複数の走査順序が生成され得る。ビデオエンコーダ20は、所望の結果を与える走査順序のうちの1つを選択し、次いで、その走査順序を生成するために使用される関連するパラメータ値をビデオデコーダ30に信号伝達し得る。上述のように、幾つかの例では、エンコーダとデコーダの両方にとって同じ関数が利用可能であり得る。従って、ビデオエンコーダとビデオデコーダの両方に同じ関数パラメータ値が知られている限り、エンコーダ側とデコーダ側の両方において同じ走査順序が生成され得る。選択された走査順序を適用して、変換ユニットの変換係数の2次元行列を1次元ベクトルに走査した後、ビデオエンコーダ20は、例えば、コンテンツ適応型可変長符号化CAVLC、コンテキスト適応型バイナリ算術符号化CABAC、シンタックスベースコンテキスト適応型バイナリ算術符号化SBAC:syntaxbasedcontextadaptivebinaryarithmeticcoding、又は他のエントロピー符号化プロセスを使用して1次元ベクトルをエントロピー符号化し得る。ベクトルの開始点のほうへ非0係数を配置する際に有効である走査順序の選択は、特定のエントロピーエンコーダの設計を仮定すれば、符号化効率の改善を助けることができる。CAVLCを実行するために、一例として、ビデオエンコーダ20は、送信されるべきシンボルのための可変長コードを選択し得る。VLCのコードワードは、相対的により短いコードがより可能性が高いシンボルに対応し、より長いコードがより可能性が低いシンボルに対応するように構築され得る。このようにして、VLCの使用は、例えば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。別の例として、CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルを符号化するために、あるコンテキストに適用すべきコンテキストモデルを選択し得る。コンテキストは、例えば、隣接値が非0か否かに関係し得る。ビデオエンコーダ20はまた、適応走査を実行するときに生成される有効係数フラグ及び最後係数フラグなど、シンタックス要素をエントロピー符号化し得る。ビデオデコーダ30は、ビデオエンコーダ20の動作と本質的に対称的な形で動作し得る。例えば、ビデオデコーダ30は、符号化されたPUデータとTUデータとを含む符号化されたCUを表す、エントロピー符号化されたデータを受信し得る。ビデオデコーダ30は、その受信データをエントロピー復号して、復号された量子化係数を形成し得る。ビデオエンコーダ20が、例えば、可変長コードアルゴリズムを使用してデータをエントロピー符号化したとき、ビデオデコーダ30は、受信コードワードに対応するシンボルを決定するために1つ以上のVLCテーブルを使用し得る。ビデオエンコーダ20が算術符号化アルゴリズムを使用してデータをエントロピー符号化したとき、ビデオデコーダ30は、データを符号化するためにビデオエンコーダ20によって使用されたのと同じコンテキストモデルに対応し得るデータを復号するために、コンテキストモデルを使用し得る。ビデオデコーダ30は、次いで、ビデオエンコーダ20によって使用された走査をミラーリングする逆走査を使用して、復号された係数を逆走査し得る。係数を逆走査するために、ビデオデコーダ30は、デコーダにおいて記憶されたか又はエンコーダによって信号伝達された命令又はデータによって定義され得る、ビデオエンコーダ20によって使用された関数に従って、また、関数の指定された1つ以上のパラメータ値に従って走査順序を生成し得る。詳細には、ビデオデコーダ30は、関数とともに使用する、ビデオエンコーダ20からの1つ以上のパラメータ値の信号伝達を受信し、及び/又は1つ以上のパラメータ値を推論し、パラメータ値に基づいて走査順序を生成し得る。この走査順序を使用して、ビデオデコーダ30は、それによって、エントロピー復号プロセスから得られた量子化変換係数の1次元ベクトルから2次元行列を形成する。次に、ビデオデコーダ30は、関数ベース走査順序に従って実行される逆走査によって生成された2次元行列中の係数を逆量子化し得る。ビデオデコーダ30は、次いで、2次元行列に1つ以上の逆変換を適用し得る。逆変換は、ビデオエンコーダ20によって適用された変換に対応し得る。ビデオデコーダ30は、例えば、現在復号されているCUに対応する4分木のルートにおいて信号伝達された情報に基づいて、又は適切な逆変換を示す他の情報を参照して、適用すべき逆変換を決定し得る。1つ以上の逆変換の適用時に、ビデオデコーダ30は、画素領域において残差ビデオデータを復元し、適用可能なとき、イントラ予測復号又はインター予測復号を適用して元のビデオデータを再構成する。図2は、本開示で説明するように、変換係数の走査順序の関数ベース定義のための技術を使用し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20について、例示のためにHEVC符号化のコンテキストにおいて説明するが、変換係数の走査を必要とし得る他の符号化規格又は方法に関して本開示を限定するものではない。ビデオエンコーダ20は、ビデオフレーム内のCUのイントラ符号化及びインター符号化を実行し得る。イントラ符号化は、所与のビデオフレーム内のビデオの空間的冗長性を低減又は除去するために空間的予測に依拠する。インター符号化は、ビデオシーケンスの現在のフレームと前に符号化されたフレームとの間の時間的冗長性を低減又は除去するために時間的予測に依拠する。イントラモードIモードは、幾つかの空間ベースのビデオ圧縮モードのいずれかを指し得る。単方向予測Pモード又は双方向予測Bモードなどのインターモードは、幾つかの時間ベースのビデオ圧縮モードのいずれかを指し得る。図2に示すように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、参照フレームバッファ64と、加算器50と、変換ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。エントロピー符号化ユニット56は、エントロピー符号化を適用するビデオエンコーダ20の部分を指し、CUと混同されるべきでない。同様に、図2に示す変換ユニット52は、残差データのブロックに実際の変換を適用するユニットであり、CUの変換ユニットTUと呼ばれることもある変換係数のブロックと混同されるべきでない。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ図2に図示せずも含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。符号化プロセス中に、ビデオエンコーダ20は、符号化されるべきビデオフレーム又はスライスを受信する。フレーム又はスライスは、複数のビデオブロック、例えば、最大符号化ユニットLCUに分割され得る。動き推定ユニット42及び動き補償ユニット44は、時間圧縮を行うために、1つ以上の参照フレーム中の1つ以上のブロックに対する受信したビデオブロックのインター予測符号化を実行する。イントラ予測ユニット46は、空間圧縮を行うために、符号化されるべきブロックと同じフレーム又はスライス中の1つ以上の隣接ブロックに対する受信したビデオブロックのイントラ予測符号化を実行し得る。モード選択ユニット40は、例えば、各モードについての誤差即ち、ひずみ結果に基づいて、符号化モードのうちの1つ、即ち、イントラ又はインターを選択し得、残差ブロックデータを生成するために、得られたイントラ又はインター符号化ブロックを加算器50に与え、参照フレーム中で使用する符号化ブロックを再構成するために、得られたイントラ又はインター符号化ブロックを加算器62に与える。幾つかのビデオフレームはIフレームに指定され得、Iフレーム中の全てのブロックはイントラ予測モードで符号化される。場合によっては、例えば、動き推定ユニット42によって実行された動き探索によって得られたブロックの予測が十分に良好でなかったとき、イントラ予測ユニット46は、Pフレーム又はBフレーム中のブロックのイントラ予測符号化を実行し得る。動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、参照フレームの参照サンプルに対する、現在のフレーム中の予測ユニットの変位を示し得る。参照サンプルは、絶対値差分和SAD:sumofabsolutedifference、2乗差分和SSD:sumofsquaredifference、又は他の差分メトリックによって決定され得る画素差分に関して、符号化されているPUを含むCUの部分にぴったり一致することがわかるブロックであり得る。動き補償ユニット44によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ユニットの値をフェッチ又は生成することを伴い得る。この場合も、幾つかの例では、動き推定ユニット42と動き補償ユニット44とは機能的に統合され得る。動き推定ユニット42は、予測ユニットを参照フレームバッファ64に記憶された参照フレームの参照サンプルと比較することによってインター符号化フレームの予測ユニットの動きベクトルを計算する。幾つかの例では、ビデオエンコーダ20は、参照フレームバッファ64に記憶された参照フレームのサブ整数画素位置の値を計算し得る。例えば、ビデオエンコーダ20は、参照フレームの1/4画素位置、1/8画素位置、又は他の分数画素位置の値を計算し得る。従って、動き推定ユニット42は、フル画素位置と分数画素位置とに対する動き探索を実行し、分数画素精度で動きベクトルを出力し得る。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。動きベクトルによって識別される参照フレームの部分は画素データの参照ブロックと呼ばれることがある。動き補償ユニット44は、例えば、PUの動きベクトルによって識別される参照ブロックを取り出すことによって、現在のCUの予測ユニットについての予測ブロックを計算し得る。イントラ予測ユニット46は、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、受信ブロックをイントラ予測符号化し得る。イントラ予測ユニット46は、隣接する前に符号化されたブロック、例えば、ブロックについての左から右へ、上から下への符号化順序を仮定すると、現在のブロックの上、右上、左上、又は左のブロックに対して受信ブロックを符号化し得る。イントラ予測ユニット46は多種多様なイントラ予測モードで構成され得る。例えば、イントラ予測ユニット46は、符号化されているCUのサイズに基づいて、一定数の方向性予測モード、例えば、33個の方向性予測モードで構成され得る。イントラ予測ユニット46は、例えば、様々なイントラ予測モードの誤差値を計算し、最も低い誤差値を生じるモードを選択することによって、イントラ予測モードを選択し得る。方向性予測モードは、空間的に隣接する画素の値を合成し、その合成された値をPU中の1つ以上の画素位置に適用するための機能を含み得る。PU中の全ての画素位置の値が計算されると、イントラ予測ユニット46は、PUと符号化されるべき受信ブロックとの間の画素差分に基づいて予測モードの誤差値を計算し得る。イントラ予測ユニット46は、許容できる又は最小の誤差値を生じるイントラ予測モードが発見されるまでイントラ予測モードをテストし続け得る。イントラ予測ユニット46は、次いで、PUの予測ブロックを加算器50に送り得る。ビデオエンコーダ20は、符号化されている元のビデオブロックから、動き補償ユニット44又はイントラ予測ユニット46によって計算された予測データを減算することによって残差ブロックを形成する。加算器50は、この減算演算を実行する1つ以上の構成要素を表す。残差ブロックは画素差分値の2次元行列に対応し得、残差ブロック中の値の数は、残差ブロックに対応するPU中の画素の数と同じである。残差ブロック中の値は、PUの予測ブロック中のコロケート画素の値と、符号化されるべき元のブロック中のコロケート画素の値との間の差分、即ち、誤差に対応し得る。差分は、符号化されるブロックのタイプに応じてクロマ差分又はルーマ差分になり得る。変換ユニット52は、残差ブロックから1つ以上の変換ユニットTUを形成し得る。変換ユニット52は、離散コサイン変換DCT、方向性変換、又は概念的に同様の変換などの変換をTUに適用して、変換係数を備えるビデオブロックを生成する。変換ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、次いで、その変換係数を量子化し得る。次いで、エントロピー符号化ユニット56が、指定された走査順序に従って、行列中の量子化された変換係数の走査を実行し得る。本開示では、エントロピー符号化ユニット56が走査を実行するものとして説明する。但し、他の例では、量子化ユニット54などの他の処理ユニットが走査を実行することができることを理解されたい。ビデオエンコーダ20は、エントロピー符号化ユニット56又は量子化ユニット54などの別の機能ユニットを介して、走査順序を定義する所与の関数にパラメータの異なるセットを適用することによって、及び/又は異なる関数にパラメータの異なるセットを適用することによって、複数の異なる走査順序を生成し得る。例えば、ビデオエンコーダ20は、異なる走査順序を生成するために単一の関数又は関数のセットを利用し得る。異なる関数は、関数の構成に応じて、同じパラメータ又は異なるパラメータを受信し得る。ビデオエンコーダ20は、異なる関数又は異なるパラメータ値を適用して異なる走査順序を生成し、次いで、例えば、走査から生じる1Dアレイの前のほうへより高いエネルギーの係数を圧縮することに関して、走査順序の結果を評価し得る。ビデオエンコーダ20は、次いで、例えば、エントロピー符号化ユニット56を介して、最良の結果を生成するか、又は幾つかの基準に対して少なくとも満足な結果を生成する走査順序のうちの1つを選択し、エントロピー符号化のために、走査順序を適用して1Dアレイを生成し得る。エントロピー符号化ユニット56は、次いで、変換係数の1Dアレイをエントロピー符号化してエントロピーコード化ビットストリームを生成する。ビデオエンコーダ20は、走査順序関数のために使用されるパラメータ値と、場合によっては、複数の関数が可能である場合、関数の識別情報とを信号伝達するために、ビットストリーム中で1つ以上のシンタックス要素を送信し得る。このようにして、ビデオエンコーダ20から信号伝達を受信することによって、ビデオデコーダ30は、ビデオエンコーダによって使用されたパラメータ値及び/又は関数を決定し、それによって走査順序を再生することができる。後述するように、ビデオデコーダ30は、次いで、変換係数の1Dアレイを変換係数の2Dアレイに変換するために走査順序を逆に適用し得る。この場合も、係数は、量子化ユニット54によって量子化されるか、又は代替例では量子化されないことがある。幾つかの例では、エントロピー符号化ユニット56は、前に符号化されたTUの統計値に基づいて走査順序関数の1つ以上のパラメータの値を選択するように構成され得る。例えば、統計値は、特定の位置における変換係数が非0になる確率を示し得る。幾つかの例では、統計値は、TUサイズ又は形状、例えば、同じサイズ及び形状の他のTU中の有効係数の数又は構成、例えば、同じサイズ及び形状の他のTU中の係数のレベル又は有効係数の数、若しくは他の情報に基づき得る。そのような確率を使用して、エントロピー符号化ユニット56は、走査順序関数の1つ以上のパラメータを、例えば、開始点として選択し、次いで、例えば、走査の前のほうへ非0係数を配置することに関して、望ましい結果を生成する走査順序を識別するために、他のパラメータ値をテストし得る。エントロピー符号化ユニット56は、様々な統計値及び計算を使用して経時的に確率を決定し得る。その上、エントロピー符号化ユニット56は、異なる予測モード及び/又は変換のための別々の統計値を追跡し得る。変換係数が走査されると、エントロピー符号化ユニット56は、それらの係数にCAVLC又はCABACなどのエントロピー符号化を適用し得る。更に、エントロピー符号化ユニット56は、動きベクトルMV情報と、ビデオデコーダ30においてビデオデータを復号する際に有用な様々なシンタックス要素のいずれかとを符号化し得る。幾つかの例では、シンタックス要素は、特定の係数が有効例えば、非0であるかどうかを示す有効係数フラグをもつ有効性マップ、特定の係数が最後有効係数であるかどうかを示す最後有効係数フラグ、及び/又は他の情報を含み得る。他の例では、シンタックス要素は、ゼロランレングス情報、係数レベル情報、最後有効係数位置、及び/又は他の情報を含み得る。ビデオデコーダ30は、これらのシンタックス要素を使用してコード化ビデオデータを再構成し得る。エントロピー符号化ユニット56によるエントロピー符号化の後に、得られた符号化ビデオは、ビデオデコーダ30などの別の機器に送信されるか、又は後で送信するか又は取り出すためにアーカイブされ得る。シンタックス要素をエントロピー符号化するために、エントロピー符号化ユニット56は、CABACを実行し、例えば、前に走査されたN個の係数の中の有効係数の数に基づいてコンテキストモデルを選択し得、但し、Nは、走査されているブロックのサイズに関係し得る整数値である。エントロピー符号化ユニット56はまた、変換係数のブロックに変換された残差データを計算するために使用される予測モードと、その残差データを変換係数のブロックに変換するために使用される変換のタイプとに基づいてコンテキストモデルを選択し得る。対応する予測ユニットPUがイントラ予測モードを使用して予測されたとき、エントロピー符号化ユニット56は更に、イントラ予測モードの方向に基づいてコンテキストモデルの選択を行い得る。幾つかの例では、変換ユニット52は、幾つかの変換係数即ち、幾つかのロケーションにおける変換係数をゼロアウトするように構成され得る。例えば、変換ユニット52は、変換後のTUの左上クワドラントの外部にある全ての変換係数をゼロアウトするように構成され得る。別の例として、エントロピー符号化ユニット56は、アレイ内のある位置の後に来るアレイ内の変換係数をゼロアウトするように構成され得る。いずれの場合も、ビデオエンコーダ20は、例えば、走査の前又は後に、変換係数のある部分をゼロアウトするように構成され得る。ゼロアウトするという句は、係数の値を0に等しく設定することを意味するために使用されるが、必ずしも係数をスキップ又は廃棄することを意味するとは限らない。幾つかの例では、0への係数のこの設定は、量子化から生じ得るゼロアウトに加えて行われ得る。場合によっては、エントロピー符号化ユニット56又はビデオエンコーダ20の別のユニットは、エントロピー符号化に加えて他の符号化機能を実行するように構成され得る。例えば、エントロピー符号化ユニット56はCU及びPUのコード化ブロックパターンCBP値を決定するように構成され得る。また、場合によっては、エントロピー符号化ユニット56は係数のランレングス符号化を実行し得る。逆量子化ユニット58及び逆変換ユニット60は、それぞれ逆量子化及び逆変換を適用して、例えば参照ブロックとして後で使用するために、画素領域において残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照フレームバッファ64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つ以上の補間フィルタを適用して、動き推定において使用するサブ整数画素値を計算し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照フレームバッファ64に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインター符号化するために動き推定ユニット42及び動き補償ユニット44によって参照ブロックとして使用され得る。図3は、符号化ビデオシーケンスを復号するビデオデコーダ30の一例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、参照フレームバッファ82と、加算器80とを含む。ビデオデコーダ30は、幾つかの例では、ビデオエンコーダ20図2に関して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて予測データを生成し得る。イントラ予測ユニット74は、信号伝達されたイントラ予測モードと、現在のフレームの前に復号されたブロックからのデータとに基づいて現在のフレームの現在のブロックについての予測データを生成し得る。幾つかの例では、エントロピー復号ユニット70又は逆量子化ユニット76は、ビデオエンコーダ20のエントロピー符号化ユニット56又は量子化ユニット54によって使用された走査順序を反映する走査を使用して受信値を走査し得る。係数の走査は逆量子化ユニット76において実行され得るが、走査については、例示のために、エントロピー復号ユニット70によって実行されるものとして説明する。更に、説明しやすいように別個の機能ユニットとして示されているが、ビデオデコーダ30のエントロピー復号ユニット70、逆量子化ユニット76、及び他のユニットの構造及び機能は互いに高度に統合され得る。図3の例では、ビデオデコーダ30は、関数とその関数の1つ以上のパラメータ値とに基づいて走査順序を定義し得る。同じく、関数は、ビデオデコーダ30によって記憶された命令又はデータによって定義される単一の関数であるか、又は複数の関数のうちの1つであり得る。ビデオデコーダ30は、関数の1つ以上のパラメータ値を識別し、複数の関数の場合、使用されるべき関数のうちの1つを識別する信号伝達をビデオエンコーダ20から受信し得る。追加又は代替として、関数の選択又は1つ以上のパラメータ値の選択は、TUサイズ、インター又はイントラ符号化モード、若しくは他の特性など、コード化ビデオの特性に基づいてビデオデコーダ30によって推測され得る。例示のために、ビデオエンコーダ20及びビデオデコーダ30が単一の関数を使用し、ビデオエンコーダ30が関数の1つ以上のパラメータ値を信号伝達する例について説明する。エントロピー復号ユニット70は、関数と1つ以上の関連するパラメータ値とに基づいて走査順序を生成することと、次いで、走査順序を適用して、変換係数の1Dベクトルを変換係数の2Dアレイに変換することとを行うように構成され得る。例えば、関数を使用して、エントロピー復号ユニット70は、特定の変換ブロックのためにビデオエンコーダ20によって使用された走査順序を決定するか、又はビデオエンコーダによって使用された走査順序の逆である走査順序を決定し得る。いずれの場合も、エントロピー復号ユニット70は、走査順序の逆を使用して1Dベクトルを2Dアレイに走査する。エントロピー復号ユニット70によって生成された変換係数の2Dアレイは、量子化され得、変換係数の1Dベクトルを生成するためにビデオエンコーダ20のエントロピー符号化ユニット56によって走査された変換係数の2Dアレイに概して一致し得る。逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された量子化変換係数を逆量子化inversequantize、即ち、逆量子化dequantizeする。逆量子化プロセスは、例えば、HEVCのために提案されたプロセス又はH.264復号規格によって定義されたプロセスと同様の、従来のプロセスを含み得る。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、CUについてビデオエンコーダ20によって計算される量子化パラメータQPYの使用を含み得る。逆量子化ユニット76は、係数が1Dベクトルから2Dアレイに変換される前又は変換された後に変換係数を逆量子化し得る。逆変換ユニット58は、逆変換、例えば、逆DCT、逆整数変換、逆KLT、逆回転変換、逆方向性変換、又は別の逆変換を適用する。幾つかの例では、逆変換ユニット78は、ビデオエンコーダ20からの信号伝達に基づいて、又はブロックサイズ、符号化モードなどの1つ以上の符号化特性から変換を推論することによって、逆変換を決定し得る。幾つかの例では、逆変換ユニット78は、現在のブロックを含むCUのための4分木のルートノードにおける信号伝達された変換に基づいて、現在のブロックに適用すべき変換を決定し得る。幾つかの例では、逆変換ユニット78はカスケード逆変換を適用し得る。動き補償ユニット72は動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブ画素精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用される補間フィルタを使用して、参照ブロックのサブ整数画素の補間値を計算し得る。動き補償ユニット72は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。動き補償ユニット72及びイントラ予測ユニット74は、HEVCの例では、例えば、4分木によって与えられるシンタックス情報の一部を使用して、符号化ビデオシーケンスの1つ又は複数のフレームを符号化するために使用されるLCUのサイズと、符号化ビデオシーケンスのフレームの各CUがどのように分割されるか及び、同様に、サブCUがどのように分割されるかを記述する分割情報と、各分割がどのように符号化されるかを示すモード例えば、イントラ予測又はインター予測、及びイントラ予測の場合はイントラ予測符号化モードと、各インター符号化PUについての1つ以上の参照フレーム及び/又はそれらの参照フレームの識別子を含んでいる参照リストと、符号化ビデオシーケンスを復号するための他の情報とを決定し得る。加算器80は、残差ブロックを、動き補償ユニット72又はイントラ予測ユニット74によって生成される対応する予測ブロックと合成して、復号ブロックを形成する。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。復号ビデオブロックは、次いで、参照フレームバッファ82に記憶され、参照フレームバッファ82は、参照ブロックを後続の動き補償に与え、また、図1の表示装置32などの表示装置上での提示のために復号ビデオを生成する。図4は、図2のビデオエンコーダ20において使用するエントロピー符号化ユニット56の一例を示すブロック図である。図4には、関数に基づいて走査順序を決定することと、ビデオデータを符号化する際に使用するために、走査順序を適用して、変換係数の2Dアレイを変換係数の1Dアレイに変換することとのためのエントロピー符号化ユニット56の様々な機能的態様が示されている。図1に示すように、エントロピー符号化ユニット56は、関数ベース走査制御ユニット90と、2D-1D走査ユニット92と、エントロピー符号化エンジン94と、関数メモリ96とを含み得る。走査制御ユニット90は、関数に1つ以上のパラメータ値を適用して走査順序を生成する。関数メモリ96は、走査順序の生成のための関数を定義する命令及び/又はデータを記憶する。例えば、関数メモリ96は、走査順序を生成するために実行すべき動作を指定するコンピュータコードを記憶し得る。関数ベース走査制御ユニット90は、関数メモリ96から命令を取り出し、関数を実行するために命令を適用する。特に、関数ベース走査制御ユニット90は、1つ以上のパラメータ値を入力として関数に適用し、関数に従って走査順序を生成する。関数メモリ96は、単一の関数のための命令及び/又はデータを記憶し得る。代替的に、関数メモリ96は、複数の関数のための命令及び/又はデータを記憶し得る。場合によっては、関数は、パラメータの同じセット、若しくはより多い又はより少ない数のパラメータを含むパラメータの異なるセットを入力として受け付けるように構成され得る。幾つかの例では、走査制御ユニット90は、ブロックサイズ、インター又はイントラ符号化モード、変換などの様々な符号化特性に基づいて複数の関数のうちの1つを選択するように構成され得る。走査制御ユニット90は、効率的な係数符号化をサポートするために、パラメータ値の様々なセットをもつ単一の関数又は複数の関数をテストして、1Dベクトルにおける係数の配置についての、例えば、テストされた走査順序のうちの最良の結果、又は少なくとも満足な結果を生成する走査順序を識別し得る。図4の例では、走査制御ユニット90は、変換ユニットサイズと、走査方向と、走査方向強度とを入力パラメータとして受信する。走査制御ユニット90は、それらのパラメータの値を関数に適用して走査順序を生成する。幾つかの例では、走査制御ユニット90は、関数とパラメータの単一のセットとに基づいて単一の走査順序を生成し得る。他の例では、パラメータの値のうちの1つ以上は、ブロックサイズ、インター又はイントラ符号化モード、変換などの様々な符号化特性に基づいて選択され得る。追加の例では、エントロピー符号化性能をサポートするために、関数によって生成される複数の異なる走査順序をテストし、それによって、1Dベクトルにおける係数の効率的な配置を与える走査順序を識別するために、パラメータの値が、例えば、制御された方法で調整され得る。入力パラメータ及び/又は関数の複数のセットが評価される例では、エントロピー符号化ユニット56は、1Dベクトルにおける係数の効率的な配置に関係する様々な基準のいずれかに基づいて走査順序のうちの1つを選択するように構成され得る。走査順序は、テストされた複数の走査順序のうちの、係数の最も効率的な配置を生成することがわかった特定の走査順序であるか、又は効率閾値を満たす走査順序であり得る。例えば、走査制御ユニット100は、満足な走査順序が生成されるまで、即ち、係数の効率的な配置に関して、異なる走査順序をテストし得る。走査ユニット92は、走査制御ユニット90から走査順序を受信し、走査順序を適用して、係数の2Dアレイを係数のシリアル化1Dベクトルに変換する。この場合も、変換係数の2Dアレイは量子化変換係数を含み得る。同様に、1Dベクトルは量子化変換係数を含み得る。代替的に、係数は量子化されないことがある。エントロピー符号化エンジン94は、例えば、CAVLC、CABAC又は他のプロセスを使用して、走査された係数にエントロピー符号化プロセスを適用する。エントロピー符号化プロセスは、係数が1Dベクトルに完全に走査された後に、又は各係数が1Dベクトルに追加されるときに、係数に適用され得る。場合によっては、エントロピー符号化エンジン94は、速度及び効率を上げるためにエントロピー符号化プロセスの並列化を促進するために、1Dベクトルの異なるセクションを並列に符号化するように構成され得る。エントロピー符号化エンジン94は、符号化ビデオを搬送するビットストリームを生成する。ビットストリームは、別の機器に送信されるか、又は後で取り出すためにデータ記憶アーカイブに記憶され得る。残差変換係数データに加えて、ビットストリームは、動きベクトルデータと、ビットストリーム中の符号化ビデオを復号する際に有用な様々なシンタックス要素とを搬送し得る。更に、エントロピー符号化ユニット56は、変換係数の2Dアレイを変換係数の1Dアレイに変換するために使用される走査順序を生成するために関数に適用されるパラメータ値を示すために、符号化ビデオビットストリーム中で信号伝達を与え得る。幾つかの例では、信号伝達は、代替又は追加として、走査順序を生成するために使用される特定の関数を示し得る。例として、信号伝達は、パラメータ値又は関数を明示的に信号伝達するか、又はビデオデコーダ30がパラメータ値をルックアップするためのインデックス値を信号伝達し得る。関数及び/又はパラメータ値は、例えば、フレーム、スライス、LCU、CUレベル又はTUレベルなど、様々なレベルにおいてシンタックス要素として信号伝達され得る。単一の関数を使用する場合、関数を信号伝達する必要はないことがある。また、幾つかの例では、ビデオデコーダ30は、信号伝達なしにパラメータ値の幾つかを推論することが可能であり得る。異なるTUのための異なる走査順序の定義を可能にするために、TUレベルにおいて、例えば、TU4分木ヘッダ中でそのようなシンタックス要素を信号伝達することが望ましいことがある。例示のために符号化ビデオビットストリーム中の信号伝達について説明するが、パラメータ値又は関数を示す情報はサイド情報内で帯域外信号伝達され得る。図5は、図3のビデオデコーダにおいて使用するエントロピー復号ユニットの一例を示すブロック図である。図5には、関数に基づいて走査順序を決定することと、ビデオデータを復号する際に使用するために、走査順序を適用して、変換係数の1Dアレイを変換係数の2Dアレイに変換することとのためのエントロピー復号ユニット70の様々な例示的な機能的態様が示されている。図1に示すように、エントロピー復号ユニット70は、関数ベース走査制御ユニット100と、1D-2D走査ユニット102と、エントロピー符号化エンジン104と、関数メモリ106とを含み得る。エントロピー復号エンジン104は、ビデオデコーダ30に送信されたか又は記憶装置からビデオデコーダ30によって取り出された符号化ビデオをエントロピー復号する。例えば、エントロピー復号エンジン104は、符号化ビデオを搬送するビットストリームにエントロピー復号プロセス、例えば、CAVLC、CABAC又は別のプロセスを適用して、変換係数の1Dベクトルを復元し得る。残差変換係数データに加えて、エントロピー復号エンジン104は、エントロピー復号を適用して、動きベクトルデータと、ビットストリーム中の符号化ビデオを復号する際に有用な様々なシンタックス要素とを再生し得る。エントロピー復号エンジン104は、符号化ビデオビットストリーム中の信号伝達に基づいて、又はビットストリーム中の他の情報から適切なプロセスを推論することによって、どのエントロピー復号プロセス、例えば、CAVLC、CABAC又は別のプロセスを選択すべきかを決定し得る。エントロピー復号ユニット70は、符号化ビデオビットストリーム中の信号伝達に基づいて、走査順序関数のパラメータ値、及び/又は使用された特定の関数の指示を決定し得る。例えば、エントロピー復号ユニット70は、パラメータ値及び/又は関数識別情報を明示的に信号伝達するシンタックス要素、若しくはそのような情報のルックアップを可能にするインデックス値を受信し得る。この場合も、例示のために符号化ビデオビットストリーム中の信号伝達について説明するが、パラメータ値又は関数を示す情報は帯域外サイド情報としてエントロピー復号ユニット70によって受信され得る。単一の関数を使用する場合、関数を信号伝達する必要はないことがある。代わりに、エントロピー復号ユニット70は、ビデオデコーダにおいて、例えば、関数メモリ106に記憶された単一の関数に依拠し得る。また、幾つかの例では、ビデオデコーダ30は、信号伝達なしにパラメータ値の幾つかを推論することが可能であり得る。図4のメモリ96のように、図5のメモリ106は、走査順序の生成のための関数を定義する命令及び/又はデータを記憶し得る。関数メモリ106は、単一の関数のための命令及び/又はデータを記憶し得る。代替的に、関数メモリ106が複数の関数のための命令及び/又はデータを記憶する場合、符号化ビデオは、走査順序を生成するために関数のうちのどれが使用されるべきかを示す信号伝達を含み得るか、又はエントロピー復号ユニット70は、1つ以上の符号化特性に基づいて特定の関数を推論し得る。関数ベース走査制御ユニット100は、関数メモリ106から命令を取り出し、関数を実行するために命令を適用して、走査順序を生成する。関数ベース走査制御ユニット100は、その一部又は全部が符号化ビデオビットストリーム中で信号伝達され得る、1つ以上のパラメータ値を入力として関数に適用し、関数に従って走査順序を生成する。走査制御ユニット100は、指定された関数にパラメータ値を適用して走査順序を生成する。走査ユニット102は、走査制御ユニット100から走査順序を受信し、走査順序を直接又は逆に適用して、係数の走査を制御する。図5の例では、走査制御ユニット100は、変換ユニットサイズと、走査方向と、走査方向強度とを入力パラメータとして受信する。これらのパラメータ値と、関数メモリ106によって与えられた関数とを使用して、ビデオデコーダ30は、ビデオエンコーダ20によって使用された走査順序を再生することができる。概して、ビデオデコーダ30のエントロピー復号ユニット70において、関数及びパラメータ値を使用して、ビデオエンコーダ20のエントロピー符号化ユニット56によって適用された同じ又は実質的に同じ走査順序、若しくは逆の走査順序を再生する。走査ユニット102は、次いで、走査順序を直接又は逆に適用して、所与のTUについて、ビデオエンコーダ20によって1Dアレイに変換された変換係数の2Dアレイを再構成し得る。この場合も、走査ユニット102によって生成された1Dアレイ内の変換係数は量子化され得る。ビデオデコーダ30における逆変換の適用に先立って、係数に逆量子化が適用され得る。ビデオエンコーダ20及びビデオデコーダ30における走査順序を定義するための関数の使用により、関数パラメータの異なる値に従って様々な走査順序が生成されることが可能になり得る。このようにして、ビデオエンコーダ20及びビデオデコーダ30は、ジグザグ、水平及び垂直走査順序などの固定走査順序に対して、走査順序を構築する際の少なくともある程度の柔軟性を与え得る。更に、走査順序の関数ベース定義は、走査順序の生成のための情報を記憶するために必要なメモリの量を低減し得る。走査順序におけるあらゆる係数の位置を記憶する代わりに、幾つかの例では、ビデオエンコーダ20及びビデオデコーダ30は、単に関数のための命令及び/又はデータを記憶し、関数とその関数のために指定されたパラメータに従って走査順序をオンザフライで生成し得る。図6は、例示的な変換ユニットTU中の変換係数のジグザグ走査順序を示す図である。図6では、文字a~pは係数の識別情報を示し、番号1~15は、そのような係数が走査される順序を示す。図6に示すように、量子化変換係数のブロックのエントロピー符号化をサポートするために、ジグザグ走査順序は、概して、対角方向往復パターンでブロックの左上隅から右下隅に進んで、変換係数の2Dアレイを変換係数の1Dベクトルに変換する。DCTでは、特に量子化の後に、非0係数が変換ユニットの左上隅のほうへ即ち、低周波数領域に配置され、0値係数が右下隅のほうへ即ち、より高い周波数領域に配置される確率がより高くなる。従って、図6に示すジグザグ走査は、係数のシリアル化ランの最初に非0係数を一緒にグループ化する確率を増加させる。図7は、例示的な変換ユニット中の変換係数の水平走査順序を示す図である。図7では、文字a~pは係数の識別情報を示し、番号1~15は、そのような係数が走査される順序を示す。図7に示すように、水平走査順序は、概して、左上隅から右上隅まで最上行に沿って進み、次いで、TUの上から下まで続く各後続の行において左から右に引き続き走査する。図8は、例示的な変換ユニット中の変換係数の垂直走査順序を示す図である。図8では、文字a~pは係数の識別情報を示し、番号1~15は、そのような係数が走査される順序を示す。図8に示すように、垂直走査順序は、概して、左上隅から左下隅まで左側列に沿って進み、次いで、TUの左から右まで続く各後続の行において上から下に引き続き走査する。図6~図8の例では、ジグザグ、水平及び垂直走査順序は、変換係数の4×4ブロックに適用される。例示のために、変換係数の4つの行と4つの列とを有する4×4ブロックが示されている。幾つかの例では、変換ユニットは、はるかに大きいことがある。例えば、変換ユニットは、サイズが8×8であるか、16×16であるか、又はより大きいことがある。図6、図7及び図8の各方形は、16個の変換係数のうちの1つを表し、各方形内の番号例えば、0、1、2などは、走査順序における変換係数の位置を示す。言い換えれば、方形中の番号の昇順は、係数のシリアル化シーケンスを形成するために係数が走査される順序を示す。本開示の例によれば、例えば、レベル及び符号などの変換係数情報を符号化するために変換係数のブロック中の変換係数を走査するための走査順序が関数によって効率的に定義され得る。幾つかの例では、上記で説明したように、ビデオエンコーダ20は、関数に従って走査順序を定義するために関数パラメータの値を指定し、それらの値をビデオデコーダ30に信号伝達し得る。関数の使用は、走査順序を構築する際の、より高い洗練度及びフレキシビリティを与え得る。異なるサイズの変換ブロック、即ち、変換ユニットの変換係数走査順序を生成するために、特定のパラメータをもつ関数が使用され得る。一例では、関数パラメータは、変換ブロックサイズと走査方向と走査方向強度とのうちの1つ以上を含み得る。これらのパラメータの値が与えられれば、関数を使用してビデオエンコーダ及びビデオデコーダによって走査が生成され得る。例示のために、走査順序の構成のための関数の一例として、これらのパラメータを使用する関数について説明する。但し、異なるパラメータをもつ他の関数も有用であり得る。図9は、水平走査方向をもつ走査順序を示す図である。図9では、文字a~pは係数の識別情報を示し、番号1~15は、そのような係数が走査される順序を示す。走査順序は、水平又は垂直などの特定の方向と、走査順序が方向のほうへバイアスされる程度を示す方向強度とを有し得る。図9の例では、走査が次の行に進む前に各行の全体が走査される、即ち、行中の係数の全てが走査されるという点で、走査順序は水平方向のほうへ強くバイアスされる。詳細には、例示のために4×4TUを使用して、走査順序は、最上行にわたって進み、順序0~3において左から右に全ての位置を走査し、次いで、順序4~7において左から右に第2の行中の全ての位置を引き続き走査し、次いで、順序8~11において左から右に第3の行中の全ての位置を引き続き走査し、次いで、順序12~15において左から右に第4の行中の全ての位置を引き続き走査する。図10は、図9の走査順序よりも小さい水平走査方向強度をもつ走査順序を示す図である。図10では、文字a~pは係数の識別情報を示し、番号1~15は、そのような係数が走査される順序を示す。図9の走査順序のように、図10の走査順序は水平方向を有する。従って、図9と図10の走査順序の走査方向パラメータは両方とも水平である。しかしながら、水平方向強度は、図9の水平方向強度に対して低減される。言い換えれば、図9の走査順序は、図10の走査順序よりも水平方向のほうへの強い方向を有する。上記で説明したように、図9の走査順序によれば、現在行の係数が全て符号化されてから、下側の次の行にある係数が符号化される。詳細には、各行中の全ての係数例えば、図9の係数0、1、2、3が連続的に走査されてから、より下の行中の係数が走査される。しかしながら、図10の走査順序によれば、現在行、即ち、より前の行にある全ての係数が符号化される前に、後の行にある幾つかの係数が符号化される。例えば、図10では、第1の最上行中の最後の右端係数dが走査順序位置4において走査される前に、第2の行からの第1左端の係数eが走査順序位置3において走査される。また、第2の行中の左から右に第3及び第4の係数が、それぞれ走査順序位置7及び10において走査される前に、第3の行中の第1の係数が走査順序位置6において走査される。また、第2の行中の最後係数hが走査順序位置10において走査される前に、第3の行中の第2の係数jが走査順序位置8において走査され、第4の行中の第1の係数mが走査順序位置9において走査される。残りの走査順序は、図10に提示されている番号から明白である。また、図10の走査順序は水平方向に有利であるが、それの方向は図9の走査順序の方向ほど強くない。図9では、方向パラメータ値は水平であり、方向強度パラメータ値は高として特徴づけられるか、若しくは数字スケール上のより高い又は最も高い数として提示され得る。図10では、方向パラメータ値は水平であり、方向強度パラメータ値は中として、又は数字スケール上の中位の数として特徴づけられ得る。ビデオエンコーダ20による信号伝達では、方向パラメータ値についての水平又は垂直指示は1ビットフラグによって表され得、例えば、水平の場合には1であり、垂直の場合には0であるか、又はその逆である。方向強度パラメータ値の強度は、例えば、明示的に、又は、例えば、ビデオデコーダ30において記憶されたテーブル又は他のデータ構造中の複数の数値のうちの1つに対するインデックスとして、ビットストリーム中で信号伝達される数値によって表され得る。上記の図9及び図10の例は、水平方向に方向された走査順序の事例を説明している。4×4TU中の左から右に続く列の代わりに、行に関する説明が適用される場合、垂直方向に方向された走査順序にも実質的に同じ説明が適用され得る。従って、簡潔のために、垂直に方向された走査順序が、異なる垂直方向強度を有する事例については示していないが、そのような事例は、本開示で説明する技術によって対処され得る。概して、変換係数のブロックの走査は左上隅位置から開始し得る。本開示によれば、走査方向パラメータが、走査順序が水平に方向されることを示す場合、走査順序は行方向に沿って水平に続く。そうではなく、方向が垂直である場合、走査順序は列方向に沿って垂直に続く。更に、方向強度パラメータに基づいて、水平方向の場合は行ごとに又は垂直方向の場合は列ごとに閾値が導出され得るように走査順序関数が構成され得る。以下の説明では、水平に方向された走査の事例を取り上げるが、単に行を列と入れ替えることによって、垂直に方向された走査にも同じ説明が適用され得る。方向強度パラメータから導出された閾値は、次の行において係数を符号化する前に、現在行において何個の係数が符号化されるべきかを指定するために使用され得る。係数の閾値数に達した後、現在行にある係数の走査と次の行にある係数の走査とがインターリーブ式に順序付けられ得る。図11は、走査方向パラメータと走査方向強度パラメータとに基づいて定義された関数ベース走査順序の一例を示す図である。図11では、文字a~pは係数の識別情報を示し、番号1~15は、そのような係数が走査される順序を示す。図11の例では、走査方向パラメータに基づいて走査方向を決定することと、正確な走査順序を決定するために、方向強度パラメータ値に基づいて閾値を生成することとを行うように関数が構成される。幾つかの例では、異なるブロックサイズ、例えば、TUサイズのために異なる走査順序関数が選択され得る。代替的に、走査順序を調整するために所与の走査順序関数がブロックサイズを適用し得る。この場合も、例示のために4×4TUを示しているが、より大きいTUへの関数ベース走査順序定義の適用に関して限定するものではない。図11の例では、走査方向は水平であり、方向強度パラメータ値は値4になるように指定されると仮定する。方向強度パラメータ値に基づいて、ビデオエンコーダ20又はビデオデコーダ30は、関数に従って各行の閾値を導出し得る。この例では、第1の最上行の閾値が方向強度値に等しくなる、即ち、4に等しくなるように設定されるように関数が構成される。次いで、関数に従って、TU中で上から下に、後続の行の各々の閾値に、徐々に減少する値が割り当てられ得る。他の例では、閾値は、走査順序関数への入力パラメータとしてのブロックサイズ例えば、TUサイズに従って、又はブロックサイズと方向強度との組合せに従って設定され得る。更に、方向は、走査の全般的方向を決定し、走査順序関数への別の入力パラメータとして働き得る。例示のために、図11を参照しながら、方向強度パラメータに従う閾値の調整について説明する。図11の例では、閾値は、各行の後に、即ち、最上行の下の連続する行ごとに1だけ減少する。但し、行ごとに閾値を割り当てるための他の関数も可能であることに留意されたい。例えば、関数は、各行に同じ閾値を割り当て得るか、又は閾値が行ごとに2だけ減少すべきであることを指定し得るなどである。また、連続する行の閾値の減少は、異なる走査方式を定義する関数に従って線形又は非線形であり得る。上述のように、所与の走査順序関数に従って、各行の導出された閾値は、次の行にある係数を走査する前に、現在行にある何個の係数が走査されるべきかを指定するために使用され得る。この場合も、閾値は方向強度パラメータの値の関数であり得る。この例では、所与の現在行の閾値に達した後、即ち、現在行において閾値に等しい数の係数が走査された後、現在行にある係数と次の行にある係数とがインターリーブ式に走査される。図11では、第1、第2、第3及び第4の行の閾値は、それぞれ、Thres[0]、Thres[1]、Thres[2]、及びThres[3]としてインデックス付けされる。図11に示す例では、閾値は、行ごとに走査の進行によって変化する。第1の行の閾値は4に等しいが、第2、第3及び第4の行の閾値は、それぞれ、値3、2及び1に漸進的に減少する。第1の行の閾値は4であり、第1の行の下の他の行にある係数が走査される前に、第1の行中の4つの係数a、b、c及びdの全てが走査される。図11の第1の行中のこれらの係数a、b、c及びdは、走査順序において0、1、2、3と番号付けされる。第2の行では、閾値は3である。従って、後続の行中の係数が符号化される前に、第2の行にある最初の3つの係数が符号化され、走査順序において4、5、6と番号付けされる。第2の行の閾値3によって設定された限界に従って、第2の行のこれらの3つの係数e、f、及びgのみを走査した後、走査は第3の行に進む。詳細には、第3の行中の第1の係数iが符号化され、走査順序において7と番号付けされる。第3の行の閾値は2であり、第3の行中には、この時点でまだ符号化された2つの係数がないので、図11に示すように、走査は、第2の行に戻り、次の係数即ち、第2の行中の第4の係数hを符号化し、走査順序においてこの係数を番号8として番号付けする。次に、第2の行中の係数の全ての走査を完了して、関数は、走査が第3の行に進み、この行にある次の係数即ち、第3の行中の第2の係数jを符号化することを指定する。この走査された係数jは、図11によって示すように走査順序において9と番号付けされる。この時点で、第3の行には符号化された2つの係数走査順序位置7の第3の行中の第1の係数i及び走査順序位置9の第3の行中の第2の係数jがある。第3の行の閾値2に基づいて、走査は、第4の行にある第1の係数mに進む。第4の行中の第1の係数mの位置は、走査順序において10として番号付けされる。この位置から続けて、第4の行の閾値1を仮定すれば、走査は第3の行に戻る。詳細には、走査は、図11に示すように、インターリーブ式に交互に第3の行と第4の行との間を往復し、走査順序位置11において第3の行中の第3の係数kを走査し、次いで、走査順序位置12において第4の行中の第2の係数nを走査し、次いで、第3の行に戻って、走査順序位置13において第4の係数lを走査し、次いで、走査順序位置14及び15において第4の行中の第3及び第4の係数o、pを走査する。図11の例では、先行する行において、先行する行の閾値に等しい数の変換係数が走査されるまで、走査は後の行に進まない。図11の走査順序を生成する関数に従って、閾値は、行ごとに変化し、上から下に漸進的に減少する。図12は、走査方向パラメータと走査方向強度パラメータとに基づいて定義された関数ベース走査順序の別の例を示す図である。図12では、文字a~pは係数の識別情報を示し、番号1~15は、そのような係数が走査される順序を示す。図11の走査順序に関連する関数について上記で説明したルールに基づいて、各行又は列の閾値が、得られた走査順序パターンを決定することがわかり得る。図12には、各行の閾値が固定値3になるように設定された代替例が与えられている。言い換えれば、図12では、あらゆる行が、方向強度パラメータに基づいて決定され得る同じ閾値3を有する。図12の例では、方向強度パラメータ値は3であり、走査順序関数は、方向強度パラメータ値を適用して、TUの各行の固定閾値を生成する。この場合、固定閾値を用いて、走査順序は、走査順序位置0、1及び2において第1の行中の最初の3つの係数a、b、cを走査し始め、第1の行の閾値3を満たす。次いで、走査順序位置3において第2の行中の第1の係数eを走査してから、走査順序位置4において第1の行中の第4の係数dを走査する。走査は、次いで第2の行に戻って、第2の行中の第2及び第3の係数f、gを走査し、この時点で、第2の行の閾値3が満たされる。この時点で、第2の行の閾値3が満たされる。従って、走査は次の行、即ち、第3の行に進み、第1の係数iを走査する。走査は、次いで第2の行に戻り、第4の係数hを走査する。プロセスは、第3及び第4の行を通して同様の方法で続く。各場合において、行に適用可能な閾値に従って、先行する行において3つの変換係数が走査されるまで、走査は後の行に進まない。走査の結果、変換ブロック中の係数の2Dアレイが係数の1Dアレイ、即ち、ベクトルに変換される。また、図12の例では、行の全てについて、閾値は3に固定される。図11及び図12の例では、走査順序を導くために使用される閾値は、走査方向強度パラメータに基づいて決定される。方向強度をパラメータとして使用することの代替として、関数はまた、走査順序を生成するパラメータとして閾値のアレイを直接とり得る。従って、ビデオエンコーダ20は、関数の方向強度パラメータ又は関数の閾値のアレイを指定し得る。各場合において、関数は、走査を導くために各行の閾値を設定し得る。走査順序関数のための入力パラメータとして閾値のアレイを使用する手法は、上記で説明したルールに基づいて走査順序を生成する際に、より多くの自由を与え得る。しかしながら、実際には、方向強度値に基づいて、各行又は列の徐々に減少する閾値は、ビデオ符号化のための効率的な走査順序を生成するのに十分良好であり得ることがわかる。図11及び図12の例は4×4ブロックの事例を示している。但し、この概念は、8×8、16×16、32×32など、他のサイズのブロックに直接拡張され得ることが明らかである。これらの事例では、ブロックサイズが、走査されるべき係数の数を決定し、例えば、方向強度パラメータ値とともに、閾値を設定するために使用され得るという点で、ブロックサイズは、複数の利用可能な走査順序関数の中での走査順序関数の選択のための、又は走査順序関数への入力としての、パラメータのうちの1つであり得る。ビデオエンコーダ20において、図11に示す走査順序は、厳密な水平走査又はラスタ走査の場合、abcdefghijklmnopと順序付けられた係数の2Dアレイを、abcdefgihjmknlopと順序付けられた1Dアレイに再構成するであろう。図12に示す走査順序は、ビデオエンコーダ20において、厳密な水平走査の場合、abcdefghijklmnopと順序付けられた係数の2Dアレイを、abcedfgihjkmlnopと順序付けられた1Dアレイに再構成するであろう。図11及び図12の例では、ビデオデコーダ30は、1Dアレイを2Dアレイに走査するために走査順序を逆に適用するであろう。図12では、例えば、ビデオデコーダ30は各行に閾値3を適用し、最初に係数abcを第1の行に走査し、次いで、eを第2の行に走査してから次の係数dを第1の行に走査し、次いで、係数f及びgを第2の行に走査し、次いで、係数iを第3の行に走査してから係数hを第2の行に走査するなどであろう。従って、走査方向強度に基づいて走査順序関数によって生成された閾値は、ビデオエンコーダ20による2D-1D走査とビデオデコーダ30による1D-2D走査とに対して同様の方法で適用され得る。いずれの場合も、関数と関連するパラメータとに従って生成された走査順序は、適用可能なとき、ビデオエンコーダ又はビデオデコーダによる係数の走査を制御する。以下は、本開示に示す関数ベース走査順序技術のCコード実装形態の一例である。関数パラメータのうち、order1Dは、2D変換ブロックから走査されるべき係数の走査順序位置を記憶する走査順序アレイである。パラメータblkSizeは、変換ブロックのサイズ、即ち、N×Nブロックを形成する行と列の数Nで表されるサイズである。パラメータdirは走査方向であり、例えば、1は水平を示し、0は垂直を示す。パラメータwは方向強度パラメータである。関数内のアレイiThres[]は、変換ブロックの各行又は列の導出された閾値を保存する。関数Minは、2つの入力値のうちの小さいほうの入力値を戻す。上記のコードでは、走査方向が水平であるのか垂直であるのかに応じて、iLineNumは、ブロック中の現在係数位置の行又は列インデックスを示し、iLinePos[iLineNum]は、現在係数位置の列又は行インデックスを示す。このコードでは、iPosIdxは走査順序インデックスを示す。各行又は列の閾値サイズを割り当てるために、iThres[i]が、走査方向強度パラメータに従って指定される重みwに等しくなるように初めに設定される。この例では、走査方向が水平であるのか垂直であるのかに応じて、走査の行又は列の中で走査が進むにつれて、重みwは減分される。他の例では、重みwは固定のままであり得る。上記の例示的なコードでは、wが2よりも大きいままである限り、重みは、連続する行又は列ごとに減分される。各連続する行において左から右に係数を走査する水平走査の場合の例について説明する。この例では、重みwは、第1の行0ではnであり、次いで、重みwが2に達し、その時点で、重みwが、残りの行では2に固定されたままになるまで、第2の行1ではn-1に減分され、第3の行2ではn-2に減分されるなどであり得る。各連続する行又は列iでは、その行iの閾値は、最小w値2を条件として行ごとに減分されるwに等しくなるように設定される。プロセスは、iがブロックサイズblksizeよりも小さいままである間、iの値を増分するために連続する行に沿って続き、ブロックサイズは、N×N方形ブロック中の行と列の数Nに対応する。他の例では、プロセスは、矩形例えば、N×Mブロック形状のために適応され得る。走査が第1の行にあるiLineNum=0か、又は、前の行中の現在係数の位置iLinePos[iLineNum-1]が、前の行の適用可能な閾値iThres[iLineNum-1]とブロックサイズblkSize、ブロックのN×Nサイズに従って最後係数位置を示すとの最小値よりも大きいかそれに等しく、現在行中の現在係数の位置iLinePos[iLineNum]がブロックサイズblkSize、ブロックのN×Nサイズに従って最後係数位置を示すよりも小さい場合、プロセスは、引き続き、位置iLineNum,iLinePos[iLineNum]に位置する現在係数を係数の1次元アレイに走査する。アレイorder1D[iPosIdx]は、走査順序に基づく係数ラスタ走査位置を記憶する。走査方向が水平dir==1である場合、走査順序中の現在位置order1D[iPosIdx]は、現在行の番号×ブロックサイズ即ち、行当たりの係数と現在行内の現在係数の列インデックスとに従って決定される位置にある係数に対応するように設定される。例えば、走査が行n内にあり、ブロックサイズがm×mである場合、走査順序アレイ中の現在位置は、order1D[iPosIdx]=nm行中の現在係数の列インデックスである。行中の現在係数の列インデックスがpである場合、走査順序アレイ内の現在位置は、水平ラスタスキャンを仮定して、左上隅から現在位置まで全体でnmp番目の係数をポイントするであろう。同様のプロセスが垂直走査dir==0に適用され得る。しかしながら、アレイorder1D[iPosIdx]内の位置は、iLinePos[iLineNum]blkSizeiLineNumに対応するラスタ走査位置をもつ係数になるように設定され、但し、iLineNumとiLinePos[iLineNum]の物理的意味は、水平走査における物理的意味に対して交換される。より詳細には、iLinePos[iLineNum]は現在係数位置の行インデックスを示し、iLineNumは現在係数の列インデックスを示す。この例では、iPosIdx及びiLinePos[iLineNum]は、ループを通る各パス中にそれぞれ増分される。最後の行及びその行中の最後係数に達した場合iLineNum==blkSize-1iLinePos[iLineNum]≧blockSize、走査プロセスは停止するブレーク。そうでない場合、行番号は増分されiLineNum、ループは繰り返す。行インデックスiLineNumがブロックサイズよりも大きいかそれに等しい場合、iLineNumは0に設定される。本開示では、ある方向及び方向強度をもつ走査順序を生成するための関数の使用について説明する。実際には、生成された走査順序は、しばしば標準ジグザグ走査とともに使用され得る。例えば、イントラ予測ブロックでは、自然で効率的な符号化方式は、それのイントラ予測方向又は予測モードに基づいてブロックの走査順序を選択することであり得る。イントラ予測の方向に基づいて、ある対応する方向をもつ走査順序が選択され、ブロックの変換係数を符号化する際に使用され得る。エンコーダ側では、変換係数の符号化は、変換係数の1次元アレイを形成するために、走査順序に従って変換係数を符号化することを備え得る。デコーダ側では、変換係数を符号化することは、変換ブロック中の変換係数の2次元アレイを再構成するために、走査順序に従って変換係数を復号することを備え得る。関数ベース走査順序を使用することの利点は信号伝達の便宜である。エンコーダによって新しい走査順序がデコーダに信号伝達される必要がある場合、厳密な順序自体を信号伝達する代わりに、エンコーダからデコーダに関数パラメータ値のみを信号伝達する必要がある。なお一層の簡単のために、エンコーダ側とデコーダ側の両方において関数パラメータのルックアップテーブルが使用され得る。この場合、走査順序を信号伝達するために、エンコーダからデコーダに、関数パラメータルックアップテーブルに対するインデックスのみが信号伝達される必要がある。そのような信号伝達は、シーケンスレベル、ピクチャレベル、スライスレベル、符号化ユニットレベル、又は他の符号化レベルなど、ビデオデータの異なるレベルにおいて与えられ得る。本開示で説明するように、定義済走査順序関数を使用して、ビデオデータを符号化するための方法又は装置は、所定の関数とその関数の1つ以上のパラメータ値とに少なくとも部分的に基づいて、残差ビデオデータのブロックに関連する変換係数の走査順序を定義し、ビデオ符号化プロセスにおいて使用するために、走査順序に従って変換係数を走査する。関数は、事前記憶されるか又は動的に生成され得るが、走査順序を生成する際にビデオコーダが使用するために関数が定義されるという意味で定義済みである。エンコーダ側では、変換係数は2Dアレイ内に存在し、例えば、TUなどの変換ブロック中に構成され、走査順序関数は、変換係数を1Dアレイに走査するための走査順序を定義する。デコーダ側では、変換係数は1次元アレイ内に存在し、例えば、1次元アレイに従って編成され、走査順序関数は、1Dアレイから2Dアレイに変換係数を走査するための走査順序を定義する。例えば、デコーダは、TUからの変換係数の構成を再生するために変換係数を走査し得る。符号化装置がビデオエンコーダ20である場合、ビデオエンコーダは、符号化ビデオ中で、1次元アレイ内の走査された変換係数と、走査順序を定義するための関数の1つ以上のパラメータ値とを信号伝達するように構成され得る。符号化装置がビデオデコーダ30である場合、ビデオデコーダは、符号化ビデオ中で、1Dアレイ内の走査された変換係数と、走査順序を定義するための関数の1つ以上のパラメータ値を示す信号伝達とを受信するように構成され得る。残差ビデオデータのブロックは、ビデオデータのコード化ブロックの画素値とビデオデータの予測ブロックの画素値との間の差を示す残差値を含む。変換係数は、残差ビデオデータのブロックに適用される変換によって生成される係数を含み得る。1つ以上のパラメータ値は、残差データのブロックのサイズ、走査方向、及び走査方向強度を含み得る。走査方向は、例えば、垂直又は水平であり得、走査方向強度は、走査が方向のほうへどのくらい強くバイアスされるかを示す値又は数字スケールであり得る。所定の関数に少なくとも部分的に基づいて走査順序を定義することは、方向強度に少なくとも部分的に基づいて閾値を決定することと、閾値に基づいて、ブロックの後の行又は列に関して走査されるべき変換係数を走査する前にブロックの複数の行又は列の各々に関して走査されるべき変換係数の数を定義することとを含み得る。この閾値は、行ごと又は列ごとに固定又は可変であり得、例えば、図11及び図12を参照しながら説明した方法で実装され得る。従って、ブロック中で走査される行又は列のうちの各連続する行又は列の閾値は、固定値に設定され得るか、又はブロック中で走査される行又は列のうちの各連続する行又は列の閾値の値は、ブロック中で走査される行又は列のうちの先行する行又は列の閾値の値に対して低減され得る。行に関して走査することは、例えば、ビデオエンコーダ20において、係数の2Dアレイ内の行から係数の1Dアレイに走査すること、又は、例えば、ビデオデコーダ30において、係数の1Dアレイから係数の2Dアレイ内の行に走査することを指し得る。1D-2D変換のためにビデオデコーダ30によって適用される走査順序は、事実上、2D-1D変換のためにビデオエンコーダ20によって適用される走査順序に対して反転され得る。係数は、必ずしも、適用可能なとき、メモリ中の2D又は1Dアレイ内に物理的に保存される必要があるとは限らない。そうではなく、エンコーダ又はデコーダが、既知の走査順序を用いて、例えば、TU中の係数の構成に対して適切な順序で係数を符号化することができれば十分であり得る。閾値を使用して、走査順序に従って変換係数を走査することは、ブロックの第1の行又は列に関して、閾値に等しい数の係数を走査することを含み得る。第1の行又は列中の変換係数の数が閾値よりも大きい場合、走査順序は、第1の行又は列に関する未走査係数と交互に、第2の行又は列に関する係数のうちの1つ以上を走査することを含み得る。第2の行又は列の閾値は、第1の行又は列の閾値に対して低減され得、走査順序は、第3の行又は列に関する未走査係数を走査する前に、低減された閾値に等しい数の、第2の行又は列に関する未走査係数を走査することを含み得る。従って、所与の行の全ての係数の走査が、別の行中の係数を走査する前に完了する必要はない。所与の行の閾値が満たされた場合、所与の行中の全ての係数の走査が完全に完了していなくても、次の行の走査が開始され得る。このプロセスは、2D-1D変換又は1D-2D変換のいずれかのために、2Dアレイ内の残りの行又は列について続き得る。図13は、ビデオエンコーダ20における変換係数の走査順序の関数ベース定義のための例示的な方法を示すフローチャートである。概して、ビデオエンコーダ20は、所定の関数とその関数の1つ以上のパラメータ値とに少なくとも部分的に基づいて、残差ビデオデータのブロックに関連する変換係数の走査順序を定義することと、ビデオ符号化プロセスにおいて使用するために、走査順序に従って変換係数を走査することとを行うように構成され得る。図13に示すように、ビデオエンコーダ20は、符号化基準、例えば、ブロックサイズ、符号化モード、変換など、1つ以上の基準に基づいて走査順序関数を選択するか、又は、全てのブロックのために全体的に使用されるべきデフォルト関数を選択する120。従って、ビデオエンコーダ20は、複数の関数のうちの1つを選択するか、又は、場合によっては単一の関数であり得るデフォルト関数を使用し得る。ビデオエンコーダは、走査順序関数の走査順序パラメータの値を決定する122。走査順序パラメータの値は固定又は調整可能であり得る。幾つかの例では、走査順序パラメータは、ビデオエンコーダ20による走査順序パラメータの異なる組合せの評価に基づいて選択され得る。詳細には、ビデオエンコーダ20は、トライアルベースでパラメータの様々な組合せを適用し、エントロピー符号化のための係数の効率的な走査を生成する際の、そのようなパラメータの効果を評価し得る。例えば、ビデオエンコーダ20は、効率的なエントロピー符号化をサポートするために、非0係数と0値係数との最も効率的な配置を生じるパラメータの組合せを選択するか、又は、例えば、所定の閾値に対する、満足な程度の効率を生じるテストされた組合せのうちの第1の組合せを選択し得る。ビデオエンコーダ20によるパラメータの異なる組合せの評価は、網羅的である必要はないが、パラメータの効率的なセットを識別するための作業においてパラメータの様々な組合せをサンプリングし得る。他の例では、1Dベクトルにおける係数の効率的な配置を表す何らかの関数を最大にするか又は最小にするために、パラメータの様々な組合せが選択され得る。パラメータの様々な組合せは、1次元で、即ち、他のパラメータを固定したまま、個々のパラメータを個々に調整することによって調整されるか、又は、多次元で、即ち、複数のパラメータを同時に調整することによって調整され得る。ビデオエンコーダ20は、ブロックごとに、スライスごとに、フレームごとに、又はパラメータ値を調整するため及び/又は走査順序関数を選択するための何らかの他の基準に従って、パラメータの値及び/又は選択された関数を更新し得る。また、幾つかの例では、走査順序パラメータは、ブロックサイズ、符号化モード、変換など、様々な符号化基準のいずれかに少なくとも部分的に従って調整可能であり得る。追加又は代替として、幾つかの例では、ビデオエンコーダ20は、前に符号化されたブロックについて収集された統計値、例えば、1Dベクトルの開始点のほうへの非0係数の効率的な圧縮に関係する統計値に基づいて、走査順序パラメータの値を選択し得る。このようにして、ビデオエンコーダ20は、走査順序関数によって生成される得られた走査順序が、係数の効率的な配置のほうへバイアスされるように、パラメータを選択し得る。場合によっては、符号化基準及び/又は統計値に基づいて選択されたパラメータ値は、関数とともに使用するために選択されるか、又は、上記で説明したように、異なるパラメータの評価のための開始点として働き得る。選択された走査パラメータ値と走査順序関数とに基づいて、ビデオエンコーダ20は、変換係数のブロック、例えば、HEVCにおけるTU又は他の符号化規格におけるブロックの走査順序を定義する124。ビデオエンコーダ20は、走査順序に従って変換係数の2Dアレイを走査して、係数の1Dアレイを生成する126。1Dアレイは概念的であり得る。特に、1Dアレイは、物理的に生成される必要はないことがあり、及び/又はビデオエンコーダ又はデコーダにおいてメモリに保存される必要はないことがある。むしろ、係数は異なる構成で記憶され得る。エンコーダ又はデコーダが、例えば、1Dアレイに対して、2Dアレイからの各係数を符号化すべき順序を知っているように、エンコーダ及び/又はデコーダが走査順序を知っていれば十分であり得る。例えば、エントロピー符号化ユニット56又は量子化ユニット54は、走査順序を生成し、それを適用して係数を走査し得る。ビデオエンコーダ、例えば、ビデオエントロピー符号化ユニット56は、選択された走査順序パラメータのうちの1つ以上及び/又は選択された関数をデコーダに通信するために信号伝達を生成する128。信号伝達は、別の機器に送信されるか、又は別の機器によって後で取り出すためにデータ記憶装置に記録される、符号化ビデオビットストリーム中の1つ以上のシンタックス要素としてビデオエンコーダ20によって符号化され得る。図14は、ビデオデコーダ30における変換係数の走査順序の関数ベース定義のための例示的な方法を示すフローチャートである。図14に示すように、ビデオデコーダ130は、符号化されたビットストリーム中で走査順序関数の信号伝達を受信するか、又はデフォルト関数を使用する130。ビデオデコーダ30はまた、関数とともに使用する1つ以上の走査順序パラメータの信号伝達を受信する132。前述のように、幾つかの例では、走査順序パラメータのうちの1つ以上は、ビデオデコーダ30によって推測され得、その結果、例えば、符号化されたビットストリーム中で、パラメータを明示的に信号伝達する必要はないことがある。しかしながら、他の例では、符号化ビデオビットストリーム中で走査順序パラメータの全てがビデオデコーダ30に信号伝達され得る。エントロピー復号ユニット70は、符号化ビデオを復号する際に使用する信号伝達されたパラメータを取得するために、符号化ビデオビットストリームをエントロピー復号し得る。図14を更に参照すると、ビデオデコーダ30は、走査順序関数と1つ以上のパラメータとに基づいて走査順序を定義し134、1つ以上のパラメータは、走査順序を生成するために関数に適用される。ビデオデコーダ30は、走査順序に従って、符号化ビデオビットストリーム中で受信された変換ブロックのための変換係数の1Dアレイを走査して、ビデオ復号の際に使用する係数の2Dアレイを生成する136。このようにして、ビデオデコーダ30は、所定の関数とその関数の1つ以上のパラメータ値とに少なくとも部分的に基づいて、残差ビデオデータのブロックに関連する変換係数の走査順序を定義し、ビデオ符号化プロセスにおいて使用するために、走査順序に従って変換係数を走査する。図15は、ビデオエンコーダ20における変換係数の走査順序の関数ベース定義のための別の例示的な方法を示すフローチャートである。図15の例では、ビデオエンコーダ20は、走査順序関数を選択するか又はデフォルト関数を使用し140、パラメータ値としてブロックサイズを決定し142、さらなるパラメータ値として変換方向144と変換方向強度146とを選択する。走査順序関数とこれらのパラメータとに基づいて、ビデオエンコーダ20は走査順序を定義し148、走査順序をブロック中の変換係数の2Dアレイに適用して、変換係数の1Dアレイを生成する150。ビデオエンコーダ20は、パラメータのうちの1つ以上及び/又は走査順序関数の信号伝達を生成し152、信号伝達された情報を、例えば、1つ以上のシンタックス要素として符号化ビデオビットストリーム中に符号化する。図16は、ビデオデコーダ30における変換係数の走査順序の関数ベース定義のための別の例示的な方法を示すフローチャートである。図16の例では、ビデオデコーダ30は、走査順序関数の信号伝達を受信するか、又はデフォルト関数を使用する160。ビデオデコーダ30は、変換ブロックサイズ例えば、TUサイズ、走査方向、走査方向強度などの走査順序パラメータの値の信号伝達を受信する162。走査順序関数とパラメータとに基づいて、ビデオデコーダ30は、走査順序を定義し164、走査順序に従って1Dアレイ内の変換係数を走査して、ビデオ復号の際に使用する係数の2Dアレイを生成する166。パラメータの値及び/又は選択された関数は、ブロックごとに、スライスごとに、フレームごとに、又はパラメータ値を更新するため及び/又は走査順序関数を選択するための何らかの他の基準に従って、信号伝達に従って及び/又は1つ以上のパラメータの推測に基づいて更新され得る。1つ以上の例では、本開示において説明した機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実施され得る。ソフトウェアで実施した場合、機能は、1つ以上の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、若しくはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従ってある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体又は通信媒体など、有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、1非一時的である有形コンピュータ可読記憶媒体、又は2信号若しくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技術の実施のための命令、コード及び/又はデータ構造を取り出すために1つ以上のコンピュータ若しくは1つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM又は他の光ディスクストレージ、磁気ディスクストレージ、又は他の磁気ストレージ機器、フラッシュメモリ、又は命令若しくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。但し、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスクdisk及びディスクdiscは、コンパクトディスクdiscCD、レーザーディスク登録商標disc、光ディスクdisc、デジタル多用途ディスクdiscDVD、フロッピー登録商標ディスクdisk、及びブルーレイ登録商標ディスクdiscを含み、ディスクdiskは、通常、データを磁気的に再生し、ディスクdiscは、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。命令は、1つ以上のデジタル信号プロセッサDSPなどの1つ以上のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路ASIC、フィールドプログラマブル論理アレイFPGA、若しくは他の等価な集積回路又はディスクリート論理回路によって実行され得る。従って、本明細書で使用するプロセッサという用語は、前述の構造、又は本明細書で説明した技術の実装に好適な他の構造のいずれかを指し得る。更に、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用ハードウェア及び/又はソフトウェアモジュール内に与えられ得、若しくは複合コーデックに組み込まれ得る。また、本技術は、1つ以上の回路又は論理要素において完全に実装され得る。本開示の技術は、ワイヤレスハンドセット、集積回路IC、又はICのセット例えば、チップセットを含む、多種多様な機器又は装置において実装され得る。本開示では、開示した技術を実行するように構成された機器の機能的態様を強調するために、様々な構成要素、モジュール、又はユニットについて説明したが、それらの構成要素、モジュール、又はユニットを必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び/又はファームウェアとともに、上記で説明した1つ以上のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作ハードウェアユニットの集合によって与えられ得る。様々な例について説明した。これら及び他の例は以下の特許請求の範囲内に入る。"