(57)【要約】  本開示は、ビデオブロックの係数、たとえば量子化され変換された係数をスキャンする技法を説明する。通常のジグザグスキャンを使用するのではなく、本開示の技法は、同一の予測モードでコーディングされた以前にコーディングされたブロックに関連する統計に基づいて、スキャン順序を適合させる。予測モードごとに、たとえば所与の係数がゼロまたは非ゼロである確率を示す、係数の統計が格納される。周期的に、非ゼロ係数が一緒にグループ化され、ゼロ係数が一緒にグループ化される（これは、エントロピコーディングの有効性を改善することができる）ことをよりよく保証するために、スキャン順序に対する調整を行うことができる。本開示の技法は、スキャン順序調整が発生する頻度を減らすことができ、なおかつそのようなスキャン順序調整に起因する圧縮の所望の改善を達成する、しきい値およびしきい値調整を提供する。
2010530183.tif 000002
【特許請求の範囲】
【請求項１】
ビデオブロックの係数をコーディングする方法であって、
複数の予測モードのそれぞれについて前記ビデオブロックの係数値に関連する統計を格納することと、
前記予測モードのそれぞれに関連する前記ビデオブロックをカウントすることと、
前記予測モードのそれぞれについて定義されるスキャン順序に基づいて前記ビデオブロックの前記係数値をスキャンすることと、
前記予測モードの所与の１つに関連するカウント値が前記予測モードの前記所与の１つのしきい値を満足するときに、前記予測モードの前記所与の１つの前記統計に基づいて前記予測モードの前記所与の１つに関連する所与のスキャン順序を評価することと、
前記係数値をエントロピコーディングすることと
を備える方法。
【請求項２】
前記予測モードの前記所与の１つに関連する前記カウント値が前記予測モードの前記所与の１つの前記しきい値を満足するときに、前記予測モードの前記所与の１つの前記統計に基づいて前記予測モードの前記所与の１つに関連する新しいスキャン順序を判定すること
をさらに備える、請求項１に記載の方法。
【請求項３】
前記予測モードの前記所与の１つの前記所与のスキャン順序を調整するときに前記予測モードの前記所与の１つの前記しきい値を調整すること
をさらに備える、請求項２に記載の方法。
【請求項４】
前記統計を格納することが、前記複数の予測モードのそれぞれについて、
前記係数値がゼロまたは非ゼロである確率を示す統計を格納すること
を備える、請求項１に記載の方法。
【請求項５】
前記予測モードの前記所与の１つの前記統計に基づいて前記予測モードの前記所与の１つに関連する新しいスキャン順序を判定することと、
前記新しいスキャン順序が前のスキャン順序と同一である場合に、前記予測モードの前記所与の１つの前記しきい値を増やすことと、
前記新しいスキャン順序が前記前のスキャン順序と異なる場合に、前記予測モードの前記所与の１つの前記しきい値を減らすことと、
前記予測モードの前記所与の１つに関連する前記カウント値をリセットすることと
をさらに備える、請求項１に記載の方法。
【請求項６】
前記複数の予測モードが、複数のイントラ予測モードおよび複数のインター予測モードを備える、請求項１に記載の方法。
【請求項７】
前記イントラ予測モードが、複数の４×４輝度イントラ予測モード、複数の８×８輝度イントラ予測モード、複数の１６×１６輝度イントラ予測モード、および複数の８×８クロマイントラ予測モードを備え、
前記インター予測モードが、４×４ブロックサイズおよび８×８ブロックサイズに対応するインター予測モードを備える
請求項６に記載の方法。
【請求項８】
エントロピコーディングすることが、可変長コーディング（ＣＡＶＬＣ）またはｃｏｎｔｅｘｔ  ａｄａｐｔｉｖｅ  ｂｉｎａｒｙ  ａｒｉｔｈｍｅｔｉｃ  ｃｏｄｉｎｇ（ＣＡＢＡＣ）を備える、請求項１に記載の方法。
【請求項９】
ピクセル領域から変換された領域への前記ビデオブロックの変換を介して前記係数値を生成することをさらに備える、請求項１に記載の方法。
【請求項１０】
コーディングすることが、符号化することを備え、
前記ビデオブロックの前記係数値をスキャンすることが、前記予測モードのそれぞれについて定義されるスキャン順序に基づいて係数の２次元ブロックから係数の１次元ベクトルを生成することを備え、
エントロピコーディングすることが、前記係数値をスキャンした後に前記１次元ベクトルをエントロピ符号化することを備える
請求項１に記載の方法。
【請求項１１】
コーディングすることが、復号することを備え、
前記ビデオブロックの前記係数値をスキャンすることが、前記予測モードのそれぞれについて定義されるスキャン順序に基づいて係数の１次元ベクトルから係数の２次元ブロックを生成することを備え、
エントロピコーディングすることが、前記係数値をスキャンする前に前記１次元ベクトルをエントロピ復号することを備える
請求項１に記載の方法。
【請求項１２】
プリセット更新インターバルで前記予測モードのそれぞれについて定義される前記スキャン順序を調べることをさらに備える、請求項１に記載の方法。
【請求項１３】
前記方法が、ビデオシーケンスを形成する複数のコーデッドユニットのそれぞれについて繰り返され、
前記方法が前記複数のコーデッドユニットのそれぞれについて繰り返される前に、前記予測モードのそれぞれの前記スキャン順序、前記統計、およびしきい値を初期化すること
をさらに備える、請求項１に記載の方法。
【請求項１４】
ビデオブロックの係数をコーディングする装置であって、
複数の予測モードのそれぞれについて前記ビデオブロックの係数値に関連する統計を格納し、
前記予測モードのそれぞれに関連する前記ビデオブロックをカウントし、
前記予測モードのそれぞれについて定義されるスキャン順序に基づいて前記ビデオブロックの前記係数値をスキャンし、
前記予測モードの所与の１つに関連するカウント値が前記予測モードの前記所与の１つのしきい値を満足するときに、前記予測モードの前記所与の１つの前記統計に基づいて前記予測モードの前記所与の１つに関連する所与のスキャン順序を評価する
スキャンユニットと、
前記係数値をエントロピコーディングするエントロピコーディングユニットと
を備える装置。
【請求項１５】
前記スキャンユニットが、
前記予測モードの前記所与の１つに関連する前記カウント値が前記予測モードの前記所与の１つの前記しきい値を満足するときに、前記予測モードの前記所与の１つの前記統計に基づいて前記予測モードの前記所与の１つに関連する新しいスキャン順序を判定する
請求項１４に記載の装置。
【請求項１６】
前記スキャンユニットが、
前記予測モードの前記所与の１つの前記所与のスキャン順序を調整するときに前記予測モードの前記所与の１つの前記しきい値を調整する
請求項１５に記載の装置。
【請求項１７】
前記スキャンユニットが、前記複数の予測モードのそれぞれについて、
前記係数値がゼロまたは非ゼロである確率を示す統計を格納する
請求項１４に記載の装置。
【請求項１８】
前記スキャンユニットが、
前記予測モードの前記所与の１つの前記統計に基づいて前記予測モードの前記所与の１つに関連する新しいスキャン順序を判定し、
前記新しいスキャン順序が前のスキャン順序と同一である場合に、前記予測モードの前記所与の１つの前記しきい値を増やし、
前記新しいスキャン順序が前記前のスキャン順序と異なる場合に、前記予測モードの前記所与の１つの前記しきい値を減らし、
前記予測モードの前記所与の１つに関連する前記カウント値をリセットする
請求項１４に記載の装置。
【請求項１９】
前記複数の予測モードが、複数のイントラ予測モードおよび複数のインター予測モードを備える、請求項１４に記載の装置。
【請求項２０】
前記イントラ予測モードが、複数の４×４輝度イントラ予測モード、複数の８×８輝度イントラ予測モード、複数の１６×１６輝度イントラ予測モード、および複数の８×８クロマイントラ予測モードを備え、
前記インター予測モードが、４×４ブロックサイズおよび８×８ブロックサイズに対応するインター予測モードを備える
請求項１９に記載の装置。
【請求項２１】
前記エントロピコーディングユニットが、可変長コーディング（ＣＡＶＬＣ）またはｃｏｎｔｅｘｔ  ａｄａｐｔｉｖｅ  ｂｉｎａｒｙ  ａｒｉｔｈｍｅｔｉｃ  ｃｏｄｉｎｇ（ＣＡＢＡＣ）を実行する、請求項１４に記載の装置。
【請求項２２】
ピクセル領域から変換された領域への前記ビデオブロックの変換を介して前記係数値を生成する変換ユニットをさらに備える、請求項１４に記載の装置。
【請求項２３】
前記装置が、前記ビデオブロックを符号化し、
前記スキャンユニットが、前記予測モードのそれぞれについて定義されるスキャン順序に基づいて係数の２次元ブロックから係数の１次元ベクトルを生成し、
前記エントロピコーディングユニットが、前記スキャンユニットが前記係数値をスキャンした後に前記１次元ベクトルをエントロピ符号化する
請求項１４に記載の装置。
【請求項２４】
前記装置が、前記ビデオブロックを復号し、
前記スキャンユニットが、前記予測モードのそれぞれについて定義されるスキャン順序に基づいて係数の１次元ベクトルから係数の２次元ブロックを生成し、
前記エントロピコーディングユニットが、前記スキャンユニットが前記係数値をスキャンする前に前記１次元ベクトルをエントロピ復号する
請求項１４に記載の装置。
【請求項２５】
前記スキャンユニットが、プリセット更新インターバルで前記予測モードのそれぞれについて定義される前記スキャン順序を調べる、請求項１４に記載の装置。
【請求項２６】
前記スキャンユニットは、ビデオシーケンスを形成する複数のコーデッドユニットのそれぞれに関してその格納動作、カウント動作、スキャン動作、および評価動作を繰り返し、前記スキャンユニットは、前記スキャンユニットが前記複数のコーデッドユニットのそれぞれについてその格納動作、カウント動作、スキャン動作、および評価動作を繰り返す前に、前記予測モードのそれぞれの前記スキャン順序、前記統計、およびしきい値を初期化する、請求項１４に記載の装置。
【請求項２７】
集積回路を備える、請求項１４に記載の装置。
【請求項２８】
マイクロプロセッサを備える、請求項１４に記載の装置。
【請求項２９】
ビデオコーディングデバイス内での実行時に前記デバイスにビデオブロックの係数をコーディングさせる命令を備えるコンピュータ可読媒体であって、前記命令が、前記デバイスに、
複数の予測モードのそれぞれについて前記ビデオブロックの係数値に関連する統計を格納させ、
前記予測モードのそれぞれに関連する前記ビデオブロックをカウントさせ、
前記予測モードのそれぞれについて定義されるスキャン順序に基づいて前記ビデオブロックの前記係数値をスキャンさせ、
前記予測モードの所与の１つに関連するカウント値が前記予測モードの前記所与の１つのしきい値を満足するときに、前記予測モードの前記所与の１つの前記統計に基づいて前記予測モードの前記所与の１つに関連する所与のスキャン順序を評価させ、
前記係数値をエントロピコーディングさせる
コンピュータ可読媒体。
【請求項３０】
前記命令が、前記デバイスに、
前記予測モードの前記所与の１つに関連する前記カウント値が前記予測モードの前記所与の１つの前記しきい値を満足するときに、前記予測モードの前記所与の１つの前記統計に基づいて前記予測モードの前記所与の１つに関連する新しいスキャン順序を判定させる
請求項２９に記載のコンピュータ可読媒体。
【請求項３１】
前記命令が、前記デバイスに、
前記予測モードの前記所与の１つの前記所与のスキャン順序を調整するときに前記予測モードの前記所与の１つの前記しきい値を調整させる
請求項３０に記載のコンピュータ可読媒体。
【請求項３２】
前記複数の予測モードのそれぞれについて、前記命令が、前記デバイスに、
前記係数値がゼロまたは非ゼロである確率を示す統計を格納させる
請求項２９に記載のコンピュータ可読媒体。
【請求項３３】
前記命令が、前記デバイスに、
前記予測モードの前記所与の１つの前記統計に基づいて前記予測モードの前記所与の１つに関連する新しいスキャン順序を判定させ、
前記新しいスキャン順序が前のスキャン順序と同一である場合に、前記予測モードの前記所与の１つの前記しきい値を増やさせ、
前記新しいスキャン順序が前記前のスキャン順序と異なる場合に、前記予測モードの前記所与の１つの前記しきい値を減らさせ、
前記予測モードの前記所与の１つに関連する前記カウント値をリセットさせる
請求項２９に記載のコンピュータ可読媒体。
【請求項３４】
前記複数の予測モードが、複数のイントラ予測モードおよび複数のインター予測モードを備える、請求項２９に記載のコンピュータ可読媒体。
【請求項３５】
前記イントラ予測モードが、複数の４×４輝度イントラ予測モード、複数の８×８輝度イントラ予測モード、複数の１６×１６輝度イントラ予測モード、および複数の８×８クロマイントラ予測モードを備え、
前記インター予測モードが、４×４ブロックサイズおよび８×８ブロックサイズに対応するインター予測モードを備える
請求項３４に記載のコンピュータ可読媒体。
【請求項３６】
前記エントロピコーディングユニットが、可変長コーディング（ＣＡＶＬＣ）またはｃｏｎｔｅｘｔ  ａｄａｐｔｉｖｅ  ｂｉｎａｒｙ  ａｒｉｔｈｍｅｔｉｃ  ｃｏｄｉｎｇ（ＣＡＢＡＣ）を実行する、請求項２９に記載のコンピュータ可読媒体。
【請求項３７】
前記命令が、前記デバイスに、
ピクセル領域から変換された領域への前記ビデオブロックの変換を介して前記係数値を生成させる
請求項２９に記載のコンピュータ可読媒体。
【請求項３８】
前記命令が、前記デバイスに、前記ビデオブロックを符号化させ、前記命令が、前記デバイスに、
前記予測モードのそれぞれについて定義されるスキャン順序に基づいて係数の２次元ブロックから係数の１次元ベクトルを生成させ、
前記係数値をスキャンした後に前記１次元ベクトルをエントロピ符号化させる
請求項２９に記載のコンピュータ可読媒体。
【請求項３９】
前記命令が、前記デバイスに、前記ビデオブロックを復号させ、前記命令が、前記デバイスに、
前記予測モードのそれぞれについて定義されるスキャン順序に基づいて係数の１次元ベクトルから係数の２次元ブロックを生成させ、
前記係数値をスキャンする前に前記１次元ベクトルをエントロピ復号させる
請求項２９に記載のコンピュータ可読媒体。
【請求項４０】
前記命令が、前記デバイスに、
プリセット更新インターバルで前記予測モードのそれぞれについて定義される前記スキャン順序を調べさせる
請求項２９に記載のコンピュータ可読媒体。
【請求項４１】
前記命令は、前記デバイスに、ビデオシーケンスを形成する複数のコーデッドユニットのそれぞれに関してその格納動作、カウント動作、スキャン動作、および評価動作を繰り返させ、前記命令は、前記デバイスに、前記命令が前記デバイスに前記複数のコーデッドユニットのそれぞれについてその格納動作、カウント動作、スキャン動作、および評価動作を繰り返させる前に、前記予測モードのそれぞれの前記スキャン順序、前記統計、およびしきい値を初期化させる、請求項２９に記載のコンピュータ可読媒体。
【請求項４２】
ビデオブロックの係数をコーディングするデバイスであって、
複数の予測モードのそれぞれについて前記ビデオブロックの係数値に関連する統計を格納するための手段と、
前記予測モードのそれぞれに関連する前記ビデオブロックをカウントするための手段と、
前記予測モードのそれぞれについて定義されるスキャン順序に基づいて前記ビデオブロックの前記係数値をスキャンするための手段と、
前記予測モードの所与の１つに関連するカウント値が前記予測モードの前記所与の１つのしきい値を満足するときに、前記予測モードの前記所与の１つの前記統計に基づいて前記予測モードの前記所与の１つに関連する所与のスキャン順序を評価するための手段と、
前記係数値をエントロピコーディングするための手段と
を備えるデバイス。
【請求項４３】
前記予測モードの前記所与の１つに関連する前記カウント値が前記予測モードの前記所与の１つの前記しきい値を満足するときに、前記予測モードの前記所与の１つの前記統計に基づいて前記予測モードの前記所与の１つに関連する新しいスキャン順序を判定するための手段
をさらに備える、請求項４２に記載のデバイス。
【請求項４４】
前記予測モードの前記所与の１つの前記所与のスキャン順序を調整するときに前記予測モードの前記所与の１つの前記しきい値を調整するための手段
をさらに備える、請求項４３に記載のデバイス。
【請求項４５】
前記統計を格納するための手段が、前記複数の予測モードのそれぞれについて、
前記係数値がゼロまたは非ゼロである確率を示す統計を格納するための手段
を備える、請求項４２に記載のデバイス。
【請求項４６】
前記予測モードの前記所与の１つの前記統計に基づいて前記予測モードの前記所与の１つに関連する新しいスキャン順序を判定するための手段と、
前記新しいスキャン順序が前のスキャン順序と同一である場合に、前記予測モードの前記所与の１つの前記しきい値を増やすための手段と、
前記新しいスキャン順序が前記前のスキャン順序と異なる場合に、前記予測モードの前記所与の１つの前記しきい値を減らすための手段と、
前記予測モードの前記所与の１つに関連する前記カウント値をリセットするための手段と
をさらに備える、請求項４２に記載のデバイス。
【請求項４７】
前記複数の予測モードが、複数のイントラ予測モードおよび複数のインター予測モードを備える、請求項４２に記載のデバイス。
【請求項４８】
前記イントラ予測モードが、複数の４×４輝度イントラ予測モード、複数の８×８輝度イントラ予測モード、複数の１６×１６輝度イントラ予測モード、および複数の８×８クロマイントラ予測モードを備え、
前記インター予測モードが、４×４ブロックサイズおよび８×８ブロックサイズに対応するインター予測モードを備える
請求項４７に記載のデバイス。
【請求項４９】
エントロピコーディングするための手段が、可変長コーディング（ＣＡＶＬＣ）するための手段またはｃｏｎｔｅｘｔ  ａｄａｐｔｉｖｅ  ｂｉｎａｒｙ  ａｒｉｔｈｍｅｔｉｃ  ｃｏｄｉｎｇ（ＣＡＢＡＣ）の手段を備える、請求項４２に記載のデバイス。
【請求項５０】
ピクセル領域から変換された領域への前記ビデオブロックの変換を介して前記係数値を生成するための手段をさらに備える、請求項４２に記載のデバイス。
【請求項５１】
前記デバイスが、ビデオブロックを符号化し、
前記ビデオブロックの前記係数値をスキャンするための手段が、前記予測モードのそれぞれについて定義されるスキャン順序に基づいて係数の２次元ブロックから係数の１次元ベクトルを生成するための手段を備え、
エントロピコーディングするための手段が、前記係数値をスキャンした後に前記１次元ベクトルをエントロピ符号化するための手段を備える
請求項４２に記載のデバイス。
【請求項５２】
前記デバイスが、ビデオブロックを復号し、
前記ビデオブロックの前記係数値をスキャンするための手段が、前記予測モードのそれぞれについて定義されるスキャン順序に基づいて係数の１次元ベクトルから係数の２次元ブロックを生成するための手段を備え、
エントロピコーディングするための手段が、前記係数値をスキャンする前に前記１次元ベクトルをエントロピ復号するための手段を備える
請求項４２に記載のデバイス。
【請求項５３】
プリセット更新インターバルで前記予測モードのそれぞれについて定義される前記スキャン順序を調べるための手段をさらに備える、請求項４２に記載のデバイス。
【請求項５４】
格納動作、カウント動作、スキャン動作、および評価動作が、ビデオシーケンスを形成する複数のコーデッドユニットのそれぞれについて繰り返され、前記デバイスが、前記格納動作、カウント動作、スキャン動作、および評価動作が前記複数のコーデッドユニットのそれぞれについて繰り返される前に、前記予測モードのそれぞれの前記スキャン順序、前記統計、およびしきい値を初期化するための手段をさらに備える、請求項４２に記載のデバイス。
【請求項５５】
複数の予測モードのそれぞれについてビデオブロックの係数値に関連する統計を格納し、
前記予測モードのそれぞれに関連する前記ビデオブロックをカウントし、
前記予測モードのそれぞれについて定義されるスキャン順序に基づいて前記ビデオブロックの前記係数値を２次元ブロックから１次元ベクトルにスキャンし、
前記予測モードの所与の１つに関連するカウント値が前記予測モードの前記所与の１つのしきい値を満足するときに、前記予測モードの前記所与の１つの前記統計に基づいて前記予測モードの前記所与の１つに関連する所与のスキャン順序を評価する
スキャンユニットと、
前記１次元ベクトルの前記係数値をエントロピ符号化するエントロピコーディングユニットと、
前記エントロピ符号化された係数値を備えるビットストリームを送る無線送信器と
を備えるデバイス。
【請求項５６】
無線通信送受話器を備える、請求項５５に記載のデバイス。
【請求項５７】
１次元ベクトル内のビデオブロックのエントロピコーディングされた係数値を備えるビットストリームを受け取る無線受話器と、
前記ビデオブロックの前記係数値をエントロピ復号するエントロピコーディングユニットと、
複数の予測モードのそれぞれについて前記ビデオブロックの係数値に関連する統計を格納し、
前記予測モードのそれぞれに関連する前記ビデオブロックをカウントし、
前記予測モードのそれぞれについて定義されるスキャン順序に基づいて前記ビデオブロックの前記係数値を前記１次元ベクトルから２次元ブロックにスキャンし、
前記予測モードの所与の１つに関連するカウント値が前記予測モードの前記所与の１つのしきい値を満足するときに、前記予測モードの前記所与の１つの前記統計に基づいて前記予測モードの前記所与の１つに関連する所与のスキャン順序を評価する
スキャンユニットと
を備えるデバイス。
【請求項５８】
無線通信送受話器を備える、請求項５７に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、次の米国仮出願の利益を主張する。
【０００２】
２００８年２月２１日出願の米国仮出願第６１／０３０４４３号、２００７年６月１５日出願の米国仮出願第６０／９４４４７０号、および２００７年１０月１２日出願の米国仮出願第６０／９７９７６２号
これらの特許出願のそれぞれの内容全体が、参照によって本明細書に組み込まれている。
【０００３】
本開示は、ディジタルビデオコーディングに関し、より具体的には、変換されたビデオブロックの変換係数など、ビデオブロックの係数のエントロピコーディングに関する。
【背景技術】
【０００４】
ディジタルビデオ機能を、ディジタルテレビジョン、ディジタル直接放送システム（digital direct broadcast system）、無線電話送受話器などの無線通信デバイス、無線放送システム、携帯情報端末（ＰＤＡ）、ラップトップコンピュータまたはデスクトップコンピュータ、ディジタルカメラ、ディジタル記録デバイス、ビデオゲーミングデバイス、ゲーム機、および類似物を含む広範囲のデバイスに組み込むことができる。ディジタルビデオデバイスは、ディジタルビデオをより効率的に送信し、受信するためにＭＰＥＧ−２、ＭＰＥＧ−４、またはＨ．２６４／ＭＰＥＧ−４，Ｐａｒｔ  １０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）などのビデオ圧縮技法を実施する。ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を減らすか除去するために、空間予測および時間予測を実行する。
【０００５】
ビデオ圧縮は、一般に、空間予測および／または時間予測を含む。具体的に言うと、イントラ符号化は、所与のコーデッドユニット（coded unit）内のビデオブロックの間の空間冗長度を減らすか除去するために空間予測に頼り、このコーデッドユニットは、ビデオフレーム、ビデオフレームのスライス、または類似物を含む場合がある。対照的に、インター符号化は、ビデオシーケンスの連続するコーデッドユニットのビデオブロックの間の時間冗長度を減らすか除去するのに時間予測に頼る。イントラ符号化について、ビデオ符号器は、同一のコーデッドユニット内の他のデータに基づいてデータを圧縮するために、空間予測を実行する。インター符号化について、ビデオ符号器は、複数の隣接するコーデッドユニットの対応するビデオブロックの動きを追跡するために、動き推定および動き補償を実行する。
【０００６】
コーディングされたビデオブロックを、予測モード、予測ブロックサイズ、およびコーディングされるブロックと予測ブロックとの間の差を示すデータの残差ブロックを備える予測情報によって表すことができる。インターコーディングの場合には、１つまたは複数の動きベクトルが、データの予測ブロックを識別するのに使用されるが、イントラコーディングの場合には、予測モードを使用して、予測ブロックを生成することができる。イントラコーディングとインターコーディングとの両方が、複数の異なる予測モードを定義することができ、これらの予測モードは、コーディングに使用される異なるブロックサイズおよび／または予測技法を定義することができる。
【０００７】
ビデオ符号器は、残差ブロックの通信に関連するビットレートをさらに減らすために、変換プロセス、量子化プロセス、およびエントロピコーディングプロセスを適用することができる。変換技法は、離散コサイン変換または、ウェーブレット変換、整数変換、もしくは他のタイプの変換など、概念的に類似するプロセスを備えることができる。一例として、離散コサイン変換（ＤＣＴ）プロセスでは、変換プロセスは、ピクセル値のセットを変換係数に変換し、この変換係数は、周波数領域でのピクセル値のエネルギを表す。量子化は、変換係数に適用され、一般に、任意の所与の変換係数に関連するビットの個数を制限するプロセスを伴う。エントロピコーディングは、量子化された変換係数のシーケンスを集合的に比較する１つまたは複数のプロセスを備える。
【０００８】
エントロピコーディングプロセスの前に、変換係数の変換されたビデオブロックを、変換係数を２次元ブロックから１次元ベクトルにスキャンすることによって直列化することができる。通常、スキャンは、ジグザグの形で実行され、ビデオブロックの左上部分の変換係数が、１次元ベクトルにより早く現れ、ビデオブロックの右下部分の変換係数が、より遅く現れるようになっている。高エネルギの変換係数は、通常、変換の後に左上角付近に存在し、したがって、ジグザグスキャンは、１次元ベクトルの始め付近に非ゼロの変換係数をグループ化するのに有効である。スキャンの順序は、エントロピコーディングで達成できる圧縮のレベルに大きく影響する可能性がある。
【０００９】
エントロピコーディングプロセスの例は、ｃｏｎｔｅｎｔ  ａｄａｐｔｉｖｅ  ｖａｒｉａｂｌｅ  ｌｅｎｇｔｈ  ｃｏｄｉｎｇ（ＣＡＶＬＣ）およびｃｏｎｔｅｘｔ  ａｄａｐｔｉｖｅ  ｂｉｎａｒｙ  ａｒｉｔｈｍｅｔｉｃ  ｃｏｄｉｎｇ（ＣＡＢＡＣ）を含む。ＣＡＶＬＣは、ＩＴＵ  Ｈ．２６４／ＭＰＥＧ４  Ｐａｒｔ  １０  ＡＶＣ標準規格によってサポートされるエントロピコーディング技法の１タイプである。ＣＡＶＬＣは、量子化された変換係数の直列化された「ラン」を効果的に圧縮する形で可変長コーディング（ＶＬＣ）テーブルを使用する。ＣＡＢＡＣは、ＩＴＵ  Ｈ．２６４／ＭＰＥＧ４  Ｐａｒｔ  １０  ＡＶＣ標準規格によってサポートされるエントロピコーディング技法のもう１つのタイプである。ＣＡＢＡＣは、２進化、コンテキストモデル選択、および２進算術コーディングを含む複数のステージを含む場合がある。多数の他のタイプのエントロピコーディング技法も存在し、新しいエントロピコーディング技法が、将来に現れる可能性が高い。
【００１０】
ビデオ復号器は、変換係数の１次元ベクトルを再構成するために、符号化プロセスで使用されたタイプのエントロピコーディングに対応する逆エントロピコーディング動作を実行することができる。逆スキャンを復号器で実行して、変換係数の受け取られた１次元ベクトルから２次元ブロックを形成することもできる。その後、ビデオ復号器は、残差ピクセルデータを再構成するために、ブロック内の変換係数を逆量子化し、逆変換する。ビデオ復号器は、予測ビデオブロックを得るために、予測モード、予測サイズ、およびインターコーディングの場合に動き情報を備える復号された予測情報を使用することができる。その後、ビデオ復号器は、ビデオの復号されたシーケンスを生成するために、予測ブロックを対応する再構成された残差ブロックと組み合わせることができる。
【発明の概要】
【００１１】
一般に、本開示は、ビデオブロックの係数、たとえば量子化された変換係数をスキャンする技法を説明する。符号化する側では、スキャンが、係数の２次元ブロックから係数の１次元ベクトルを作成し、復号する側では、逆スキャンが、１次元ベクトルから係数の２次元ブロックを作成する。通常のジグザグスキャンを使用するのではなく、本開示で説明されるスキャン技法は、同一の予測モードでコーディングされた係数の以前にコーディングされたブロックに関連する統計に基づいて、ブロック内の係数のスキャン順序を適合させる。予測モードごとに、たとえば所与の係数がゼロ値または非ゼロ値を有する確率を示す、係数の統計が格納される。周期的に、非ゼロ係数が１次元ベクトルの始めに向かって一緒にグループ化され、ゼロ係数が１次元ベクトルの終りに向かって一緒にグループ化される（これは、エントロピコーディングの有効性を改善することができる）ことをよりよく保証するために、スキャン順序に対する調整を行うことができる。
【００１２】
スキャン順序の調整は、計算集中型になり得る。したがって、本開示の技法は、スキャン順序調整が発生する頻度を減らすことができ、なおかつスキャン順序調整に起因する圧縮の所望の改善を達成する、しきい値およびしきい値調整を課すことができる。この技法は、符号器および復号器によって、相反する形で実行することができる。すなわち、符号器は、ビデオブロックの係数を２次元フォーマットから１次元ベクトルフォーマットにスキャンするために、エントロピ符号化の前に適応スキャン技法を使用することができる。復号器は、ビデオブロックの係数の受け取られた１次元ベクトルをスキャンして、係数の２次元ブロックを形成することができる。したがって、ビデオブロックの係数を、２次元ブロックフォーマットまたは１次元ベクトルフォーマットで表すことができる。本開示のスキャン技法は、一般に、ビデオブロックの係数が２次元ブロックフォーマットから１次元ベクトルフォーマットへおよびその逆へどのように変換されるのかを定義する。本開示は、主に量子化された変換係数のスキャンに焦点を合わせるが、類似する技法を、たとえば、ピクセル値のスキャンが実施される場合に、量子化されていない係数、または変換されていないビデオブロックのピクセル値のような他のタイプの係数をスキャンするのに使用することができる。
【００１３】
一例で、本開示は、ビデオブロックの係数をコーディングする方法であって、複数の予測モードのそれぞれについてビデオブロックの係数値に関連する統計を格納することと、予測モードのそれぞれに関連するビデオブロックをカウントすることと、予測モードのそれぞれについて定義されるスキャン順序に基づいてビデオブロックの係数値をスキャンすることと、予測モードの所与の１つに関連するカウント値が予測モードの所与の１つのしきい値を満足するときに、予測モードの所与の１つの統計に基づいて予測モードの所与の１つに関連する所与のスキャン順序を評価することと、係数値をエントロピコーディングすることとを備える方法を提供する。
【００１４】
もう１つの例で、本開示は、ビデオブロックの係数をコーディングする装置であって、スキャンユニットと、エントロピコーディングユニットとを備える装置を提供する。スキャンユニットは、複数の予測モードのそれぞれについてビデオブロックの係数値に関連する統計を格納し、予測モードのそれぞれに関連するビデオブロックをカウントし、予測モードのそれぞれについて定義されるスキャン順序に基づいてビデオブロックの係数値をスキャンし、予測モードの所与の１つに関連するカウント値が予測モードの所与の１つのしきい値を満足するときに、予測モードの所与の１つの統計に基づいて予測モードの所与の１つに関連する所与のスキャン順序を評価する。エントロピコーディングユニットは係数値をエントロピコーディングする。
【００１５】
もう１つの例で、本開示は、ビデオブロックの係数をコーディングするデバイスであって、複数の予測モードのそれぞれについてビデオブロックの係数値に関連する統計を格納するための手段と、予測モードのそれぞれに関連するビデオブロックをカウントするための手段と、予測モードのそれぞれについて定義されるスキャン順序に基づいてビデオブロックの係数値をスキャンするための手段と、予測モードの所与の１つに関連するカウント値が予測モードの所与の１つのしきい値を満足するときに、予測モードの所与の１つの統計に基づいて予測モードの所与の１つに関連する所与のスキャン順序を評価するための手段と、係数値をエントロピコーディングするための手段とを備えるデバイスを提供する。
【００１６】
もう１つの例で、本開示は、複数の予測モードのそれぞれについてビデオブロックの係数値に関連する統計を格納し、予測モードのそれぞれに関連するビデオブロックをカウントし、予測モードのそれぞれについて定義されるスキャン順序に基づいてビデオブロックの係数値を２次元ブロックから１次元ベクトルにスキャンし、予測モードの所与の１つに関連するカウント値が予測モードの所与の１つのしきい値を満足するときに、予測モードの所与の１つの統計に基づいて予測モードの所与の１つに関連する所与のスキャン順序を評価するスキャンユニットを備えるデバイスを提供する。このデバイスは、１次元ベクトルの係数値をエントロピ符号化するエントロピコーディングユニットと、エントロピ符号化された係数値を備えるビットストリームを送る無線送信器とをも含む。
【００１７】
もう１つの例で、本開示は、１次元ベクトル内のビデオブロックのエントロピコーディングされた係数値を備えるビットストリームを受け取る無線受話器と、ビデオブロックの係数値をエントロピ復号するエントロピコーディングユニットと、スキャンユニットとを備えるデバイスを提供する。この場合に、スキャンユニットは、複数の予測モードのそれぞれについてビデオブロックの係数値に関連する統計を格納し、予測モードのそれぞれに関連するビデオブロックをカウントし、予測モードのそれぞれについて定義されるスキャン順序に基づいてビデオブロックの係数値を１次元ベクトルから２次元ブロックにスキャンし、予測モードの所与の１つに関連するカウント値が予測モードの所与の１つのしきい値を満足するときに、予測モードの所与の１つの統計に基づいて予測モードの所与の１つに関連する所与のスキャン順序を評価する。
【００１８】
本開示で説明される技法を、ハードウェア、ソフトウェア、ファームウェア、またはその組合せで実施することができる。ハードウェアで実施される場合に、装置を、集積回路、プロセッサ、ディスクリートロジック、またはその組合せで実施することができる。ソフトウェアで実施される場合に、ソフトウェアを、マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、またはディジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ内で実行することができる。本技法を実行するソフトウェアを、当初にコンピュータ可読媒体に格納し、プロセッサ内にロードし、実行することができる。
【００１９】
したがって、本開示は、ビデオコーディングデバイス内での実行時にデバイスにビデオブロックの係数をコーディングさせる命令を備えるコンピュータ可読媒体であって、命令が、デバイスに、複数の予測モードのそれぞれについてビデオブロックの係数値に関連する統計を格納させ、予測モードのそれぞれに関連するビデオブロックをカウントさせ、予測モードのそれぞれについて定義されるスキャン順序に基づいてビデオブロックの係数値をスキャンさせ、予測モードの所与の１つに関連するカウント値が予測モードの所与の１つのしきい値を満足するときに、予測モードの所与の１つの統計に基づいて予測モードの所与の１つに関連する所与のスキャン順序を評価させ、係数値をエントロピコーディングさせるコンピュータ可読媒体をも企図する。
【００２０】
本開示の１つまたは複数の態様の詳細を、添付図面および下の説明に示す。本開示で説明される技法の他の特徴、目的、および利益は、説明および図面からならびに特許請求の範囲から明白になるであろう。
【図面の簡単な説明】
【００２１】
【図１】ビデオ符号化および復号システムを示す例示的ブロック図。
【図２】本開示と一貫するビデオ符号器の例を示すブロック図。
【図３】本開示と一貫するビデオ復号器の例を示すブロック図。
【図４】４×４ビデオブロックのジグザグスキャンを示す概念図。
【図５】８×８ビデオブロックのジグザグスキャンを示す概念図。
【図６】特定のモードのブロックに関連する統計および本開示の技法と一貫するアルゴリズムを示す概念図。
【図７】本開示と一貫する仮説の例を示す概念図。
【図８】本開示と一貫する技法を示す流れ図。
【図９】本開示と一貫する技法を示す流れ図。
【発明を実施するための形態】
【００２２】
本開示は、ビデオブロックの係数、たとえば量子化された変換係数をスキャンする技法を説明する。本開示では、用語「係数ブロック」は、一般に、ビデオブロックに関連する変換係数のセットを指す。係数ブロックを、２次元ブロックフォーマットまたは１次元ベクトルフォーマットで表すことができる。本開示のスキャン技法は、係数ブロックが２次元ブロックフォーマットから１次元ベクトルフォーマットに符号器によってどのように変換されるのか、および係数ブロックが１次元ベクトルフォーマットから２次元ブロックフォーマットに復号器によってどのように変換されるのかを定義する。本開示は、主に変換され量子化されたビデオブロックに適用されるものとしてスキャン技法を説明するが、本明細書で説明されるスキャン技法を適用して、他のタイプのビデオデータ（たとえば、ピクセル領域のビデオブロック）を２次元ブロックフォーマットから１次元ベクトルフォーマットに変換することもできる。
【００２３】
従来、２次元ブロックフォーマットから１次元ベクトルフォーマットへの係数ブロックのスキャンは、ジグザグスキャン順序に従う。この場合に、係数ブロックの左上の係数は、１次元ベクトル内でより早く現れ、係数ブロックの右下の係数は、より遅く現れる。高エネルギの変換係数は、通常、変換の後に左上角付近に存在する。この理由から、ジグザグスキャンは、１次元ベクトルの始め付近に非ゼロの係数をグループ化する有効な形である。その後、エントロピコーディングユニットは、通常、１次元ベクトルをランおよびレベルの形でエントロピコーディングし、ここで、ランは、２つの非ゼロ変換係数の間のゼロ値変換係数の個数であり、レベルは、非ゼロ変換係数の値を表す。さらに、最後の非ゼロ変換係数が所与の係数ブロックについて（たとえば、１次元ベクトルフォーマットで）送られた後に、エントロピコーダは、これがブロック内の最後の非ゼロ変換係数であることを示すために、通常、ブロックの終り（ＥＯＢ）記号または最終係数フラグを送る。非ゼロ変換係数を１次元ベクトルの始めに向かってグループ化することによって、ランのより小さい値をコーディングできるので、また、ＥＯＢ記号もしくは最終係数フラグをよりすばやく送ることができるので、より高い圧縮を達成することができる。残念ながら、ジグザグスキャンは、必ず係数の最も効果的なグループ化を達成するわけではない。
【００２４】
従来のジグザグスキャンを使用するのではなく、本開示の技法は、同一の予測モードでコーディングされた以前にコーディングされたブロックに関連する統計に基づいてスキャン順序を適合させる。予測モードごとに、たとえば所与の位置の変換係数がゼロまたは非ゼロである確率を示す、変換係数の統計が格納される。周期的に、非ゼロ変換係数が１次元ベクトルの始めに向かって一緒にグループ化され、ゼロ値係数が１次元ベクトルの終りに向かって一緒にグループ化される（これは、エントロピコーディングの有効性を改善することができる）ことをよりよく保証するために、スキャン順序に対する調整を行うことができる。この適応スキャン技法は、別々のコーデッドユニットごとに、たとえば、各フレーム、スライス、または他のタイプのコーデッドユニットごとに行うことができる。コーデッドユニットの係数ブロックを、当初は固定された形（たとえば、ジグザグスキャン順序または別の固定スキャン順序）でスキャンすることができるが、所与の予測モードの係数ブロックの統計が、異なるスキャン順序が非ゼロ値係数およびゼロ値係数をグループ化するのにより効果的であることを示す場合に、異なるスキャン順序にすばやく適合することができる。
【００２５】
しかし、スキャン順序の調整は、計算集中型になり得る。したがって、本開示の技法は、スキャン順序調整が発生する頻度を減らすことができ、なおかつそのようなスキャン順序調整に起因する圧縮の所望の改善を達成する、しきい値およびしきい値調整を課す。この技法は、符号器および復号器によって、相反する形で実行することができる。すなわち、符号器は、ビデオブロックの係数を２次元フォーマットから１次元ベクトルにスキャンするために、エントロピ符号化の前に適応スキャン技法を使用することができる。復号器は、ビデオブロックの係数の受け取られた１次元ベクトルを逆スキャンし、２次元フォーマットで係数ブロックを再作成するためのエントロピ復号プロセスを続けることができる。やはり、句「係数ブロック」は、一般に、２次元ブロックフォーマットまたは１次元ベクトルフォーマットのいずれかで表された変換された係数のセットを指す。
【００２６】
図１は、本開示の教示を実施できる例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示されているように、システム１０は、通信チャネル１５を介して符号化ビデオを宛先デバイス１６に送るソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１６は、広範囲のデバイスのいずれをも備えることができる。いくつかの場合に、ソースデバイス１２および宛先デバイス１６は、いわゆるセル無線電話機または衛星無線電話機などの無線通信デバイス送受話器を備える。しかし、より一般的に係数の適応スキャンを適用する本開示の技法は、必ずしも無線応用例または無線セッティングに限定されない。
【００２７】
図１の例では、ソースデバイス１２は、ビデオソース２０、ビデオ符号器２２、変調器／復調器（モデム）２３、および送信器２４を含むことができる。宛先デバイス１６は、受話器２６、モデム２７、ビデオ復号器２８、およびディスプレイデバイス３０を含むことができる。本開示によれば、ソースデバイス１２のビデオ符号器２２を、データの１次元セットを形成するためにエントロピ符号化の前に係数の適応スキャンを実行するように構成することができる。同様に、宛先デバイス１６のビデオ復号器２８を、データの２次元セットを作るためにエントロピ復号の後に係数の適応スキャンを実行するように構成することができる。ビデオ復号器２８は、ビデオ符号器２２によって適用されるスキャン順序のいかなる表示をも受け取る必要はない。そうではなく、スキャン順序を、ビデオ符号器２２とビデオ復号器２８との両方で本質的に同一の形で導出することができる。
【００２８】
図１に示されたシステム１０は、単に例示的である。本開示のスキャン技法は、ｃｏｎｔｅｎｔ  ａｄａｐｔｉｖｅ  ｖａｒｉａｂｌｅ  ｌｅｎｇｔｈ  ｃｏｄｉｎｇ（ＣＡＶＬＣ）、ｃｏｎｔｅｘｔ  ａｄａｐｔｉｖｅ  ｂｉｎａｒｙ  ａｒｉｔｈｍｅｔｉｃ  ｃｏｄｉｎｇ（ＣＡＢＡＣ）、または他のエントロピコーディング方法論など、さまざまなエントロピコーディング方法論のいずれをもサポートする任意の符号化デバイスまたは復号デバイスによって実行することができる。ソースデバイス１２および宛先デバイス１６は、そのようなコーディングデバイスの単なる例である。
【００２９】
本開示によれば、ビデオ符号器２２およびビデオ復号器２８は、複数の予測モードのそれぞれについてビデオブロックの係数値に関連する統計を格納することができ、予測モードのそれぞれに関連するビデオブロックをカウントすることができる。ビデオ符号器２２およびビデオ復号器２８は、予測モードのそれぞれについて定義されたスキャン順序に基づいてビデオブロックの係数値をスキャンし、予測モードの所与の１つに関連するカウント値が予測モードの所与１つのしきい値を満足するときの予測モードの所与の１つの統計と、係数値をエントロピコーディングすることとに基づいて、予測モードの所与の１つに関連する所与のスキャン順序を評価する。やはり、符号化する側では、スキャンがエントロピ符号化に先立ち、復号する側では、スキャンがエントロピ復号に続く。
【００３０】
一般に、ソースデバイス１２は、宛先デバイス１６への伝送のためにコーディングされたビデオデータを生成する。しかし、いくつかの場合には、デバイス１２、１６が、実質的に対称の形で動作することができる。たとえば、デバイス１２、１６のそれぞれが、ビデオ符号化コンポーネントおよびビデオ復号コンポーネントを含む場合がある。したがって、システム１０は、たとえばビデオストリーミング、ビデオ再生、ビデオ放送、またはビデオ電話のための、ビデオデバイス１２と１６との間の一方向または二方向のビデオ伝送をサポートすることができる。
【００３１】
ソースデバイス１２のビデオソース２０は、ビデオカメラなどのビデオ取込デバイス、以前に取り込まれたビデオを含むビデオアーカイブ、またはビデオコンテンツプロバイダからのビデオフィードを含むことができる。さらなる代替案として、ビデオソース２０は、ソースビデオとして、コンピュータグラフィックスベースのデータ、または生ビデオ、アーカイブされたビデオ、およびコンピュータ生成されたビデオの組合せを生成することができる。いくつかの場合に、ビデオソース２０がビデオカメラである場合には、ソースデバイス１２および宛先デバイス１６は、いわゆるカメラ付き携帯電話機またはテレビ電話を形成することができる。各場合に、取り込まれるビデオ、事前に取り込まれたビデオ、またはコンピュータ生成されたビデオを、ビデオ符号器２２によって符号化することができる。次に、符号化ビデオ情報を、通信標準規格、たとえば、符号分割多元接続（ＣＤＭＡ）または別の通信標準規格もしくは通信技法に従ってモデム２３によって変調し、送信器２４を介して宛先デバイス１６に送ることができる。
【００３２】
宛先デバイス１６の受話器２６は、チャネル１５を介して情報を受け取り、モデム２７は、その情報を復調する。ビデオ復号器２８によって実行されるビデオ復号プロセスは、ビデオシーケンスの再構成の一部として、エントロピ復号および適応スキャンを実行することができる。復号プロセスは、符号化プロセスに似て、データ圧縮の改善されたレベルをサポートするために本開示の技法を使用する。ディスプレイデバイス２８は、復号されたビデオデータをユーザに表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、さまざまなディスプレイデバイスのいずれをも備えることができる。
【００３３】
図１の例では、通信チャネル１５は、ラジオ周波数（ＲＦ）スペクトルまたは１つもしくは複数の物理伝送路などの任意の無線または有線の通信媒体、あるいは無線媒体および有線媒体の任意の組合せを備えることができる。通信チャネル１５は、ローカルエリアネットワーク、広域ネットワーク、またはインターネットなどのグローバルネットワークなどのパケットベースネットワークの一部を形成することができる。通信チャネル１５は、一般に、ソースデバイス１２から宛先デバイス１６にビデオデータを送るための、任意の適切な通信媒体または異なる通信媒体の集合を表す。
【００３４】
ビデオ符号器２２およびビデオ復号器２８は、ＣＡＶＬＣ、ＣＡＢＡＣ、またはＭＰＥＧ−４，Ｐａｒｔ  １０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）とも称するＩＴＵ−Ｔ  Ｈ．２６４標準規格などの別のエントロピコーディング方法論をサポートするビデオ圧縮標準規格に従って動作することができる。しかし、この技法は、単に例示のためにこの標準規格を参照して説明される。そのような技法は、Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）によってＭＰＥＧ−１、ＭＰＥＧ−２、およびＭＰＥＧ−４で定義されるもの、ＩＴＵ−Ｔ  Ｈ．２６３標準規格、米国映画テレビ技術者協会（ＳＭＰＴＥ）４２１Ｍ  ｖｉｄｅｏ  ＣＯＤＥＣ標準規格（一般に「ＶＣ−１」と称する）、中国のＡｕｄｉｏ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｓｔａｎｄａｒｄ  Ｗｏｒｋｇｒｏｕｐによって定義される標準規格（一般に「ＡＶＳ」と称する）、ならびに標準化団体によって定義されるかプロプライエタリ標準規格として組織によって開発される任意の他のビデオコーディング標準規格など、さまざまな他のビデオコーディング標準規格のいずれにもすぐに適用することができる。
【００３５】
図１には示されていないが、いくつかの態様で、ビデオ符号器２２およびビデオ復号器２８は、それぞれ、オーディオ符号器およびオーディオ復号器と一体化されてもよく、共通データストリームまたは別々のデータストリーム内のオーディオとビデオとの両方の符号化を処理するために、適当なＭＵＸ−ＤＥＭＵＸユニットまたは他のハードウェアおよびソフトウェアを含むことができる。適用可能な場合に、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコルまたはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに従うことができる。
【００３６】
ＩＴＵ  Ｈ．２６４／ＭＰＥＧ−４  Ｐａｒｔ  １０  ＡＶＣ標準規格は、ＩＳＯ／ＩＥＣ  Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）と一緒にＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）によって、Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）として知られる集団パートナーシップの成果として考案された。いくつかの態様で、本開示で説明される技法を、全般的にＨ．２６４標準規格に従うデバイスに適用することができる。Ｈ．２６４標準規格は、ＩＴＵ−Ｔ  Ｓｔｕｄｙ  Ｇｒｏｕｐ著、ＩＴＵ−Ｔ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  Ｈ．２６４、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ、２００５年３月に記載されており、これを本明細書ではＨ．２６４標準規格もしくはＨ．２６４仕様書、またはＨ．２６４／ＡＶＣ標準規格もしくは仕様書と称する場合がある。Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）は、Ｈ．２６４／ＡＶＣの拡張に取り組み続けている。
【００３７】
ビデオ符号器２２およびビデオ復号器２８を、それぞれ、１つまたは複数のマイクロプロセッサ、ディジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、またはその任意の組合せとして実施することができる。ビデオ符号器２２およびビデオ復号器２８のそれぞれを、１つまたは複数の符号器または復号器に含めることができ、この符号器または復号器のいずれをも、それぞれのモバイルデバイス、サブスクライバデバイス、放送デバイス、サーバ、または類似物内の組み合わされた符号器／復号器（コーデック）の一部として一体化することができる。
【００３８】
ビデオシーケンスは、一連のビデオフレームを含む。いくつかの場合に、ビデオシーケンスを、ｇｒｏｕｐ  ｏｆ  ｐｉｃｔｕｒｅｓ（ＧＯＰ）として配置することができる。ビデオ符号器２２は、ビデオデータを符号化するために、個々のビデオフレーム内のビデオブロックに作用する。ビデオブロックは、固定サイズまたは変化するサイズを有することができ、指定されたコーディング標準規格に従って、サイズにおいて異なる場合がある。各ビデオフレームは、一連のスライスを含むことができる。各スライスは、一連のマクロブロックを含むことができ、マクロブロックは、より小さいブロックにさえ配置され得る。マクロブロックは、通常、データの１６×１６ブロックを指す。ＩＴＵ−Ｔ  Ｈ．２６４標準規格は、輝度成分について１６×１６、８×８、または４×４、およびクロマ成分について８×８などのさまざまなブロックサイズでのイントラ予測、ならびに輝度成分について１６×１６、１６×８、８×１６、８×８、８×４、４×８、および４×４とクロマ成分について対応するスケーリングされたサイズなどのさまざまなブロックサイズでのインター予測をサポートする。本開示では、用語ビデオブロックは、係数、たとえば離散コサイン変換またはピクセル値のセットが周波数領域に変換される概念的に類似する変換プロセスなどの変換プロセスの後の変換係数のブロックを指すことができる。変換係数は、量子化されたものとすることができる。本開示のスキャン技法は、通常、量子化された変換係数に関して適用されるが、いくつかの実施形態では、量子化されていない変換係数に適用可能とすることができる。さらに、本開示のスキャン技法を、ピクセル値の量子化されたブロックであってもなくてもよいピクセル値のブロック（すなわち、変換プロセスなし）に適用可能とすることもできる。用語「係数」は、係数ブロックの変換係数だけではなく、変換されていないビデオブロックのピクセル値をも含む、ビデオブロックの値を表すのに、本明細書で広義に使用される。
【００３９】
マクロブロックなどのより大きいビデオブロックを、より小さいサイズのビデオブロックに分割することができる。より小さいビデオブロックは、よりよい解像度をもたらすことができるが、ビデオフレームのうちで高いレベルの詳細を含む位置に使用することができる。一般に、マクロブロック（ＭＢ）およびさまざまなより小さいブロックを、すべて、ビデオブロックと考えることができる。ビデオフレームは、復号可能単位を備えることができ、あるいは、「スライス」など、より小さい復号可能単位に分割され得る。すなわち、スライスを、ＭＢおよび／またはより小さいサイズのブロックなど、一連のビデオブロックと考えることができ、各スライスを、ビデオフレームの独立に復号可能な単位とすることができる。
【００４０】
予測の後に、変換を、ピクセルの８×８残差ブロックまたはピクセルの４×４残差ブロックに対して実行することができ、追加の変換を、クロマ成分またはｉｎｔｒａ＿１６ｘ１６予測モードが使用される場合には輝度成分のピクセルの４×４ブロックのＤＣ係数に適用することができる。変換の後に、データを、係数ブロックまたは変換されたビデオブロックと呼ぶことができる。変換の後に、係数ブロックは、ピクセル値ではなく変換係数を含む。やはり、用語「係数」は、一般に、変換係数を指すが、その代わりに、他のタイプの係数または値（たとえば、変換プロセスなしのピクセル値）を指すことができる。
【００４１】
イントラベースまたはインターベースの予測コーディング技法および変換技法（Ｈ．２６４／ＡＶＣで使用される４×４もしくは８×８の整数変換または離散コサイン変換ＤＣＴなど）の後に、量子化を実行することができる。ウェーブレットベースの圧縮などの他の変換技法を使用することができる。量子化は、一般に、係数を表すのに使用されるデータの量をおそらくは減らすために係数が量子化されるプロセスを指す。量子化プロセスは、係数の一部またはすべてに関連するビット深さを減らすことができる。たとえば、８ビット値を、量子化中に７ビット値に丸めることができる。
【００４２】
量子化の後に、スキャンおよびエントロピコーディングを、本明細書に記載の技法に従って実行することができる。具体的に言うと、４×４ビデオブロック、８×８ビデオブロック、またはおそらくは１６×１６ビデオブロックなどの他のサイズのブロックなどの、変換係数のビデオブロックを、２次元フォーマットから１次元フォーマットにスキャンすることができる。スキャン順序は、コーデッドユニットごとに初期化することができ、従来の形（たとえば、ジグザグスキャン順序）で開始することができる。本開示によれば、スキャン順序を適応式とすることができる。具体的に言うと、スキャン順序は、１つまたは複数の予測モードのビデオブロックに関連する統計に基づいて、そのようなビデオブロックについて適合させることができる。統計は、各めいめいの予測モードで符号化されたビデオブロックの個数のカウントと、各予測モードで符号化されたビデオブロックに係数に関連する確率のセットとを備えることができる。確率は、ビデオブロックの各位置の所与の係数値がゼロの値または非ゼロの値を有する尤度の表示を備えることができる。代替案では、確率は、各位置の実際の値を示すより詳細な確率、または係数値に関連する別のタイプの統計確率尺度を備えることができる。
【００４３】
１つまたは複数のしきい値を、カウント値に対して相対的に定義することができる。周期的インターバル（マクロブロック境界に出会うときなど）に、ビデオブロックの異なるモードに関連するスキャン順序を評価することができる。スキャン順序が評価されるときには、所与の予測モードに関連するカウント値が所与の予測モードのしきい値を満足する場合に、そのモードのスキャン順序を調べ、おそらくは、所与の予測モードでコーディングされたビデオブロックの統計を反映するように変更することができる。具体的に言うと、スキャン順序を、係数が非ゼロ値を有する確率の順番でスキャンされるようにするために定義することができる。すなわち、非ゼロであることのより高い確率を有する係数位置は、非ゼロであることのより低い確率を有する係数位置の前にスキャンされる。この形で、従来のスキャン順序（ジグザグスキャン順序など）を、係数ブロックの１次元ベクトル表現のより始めに向かって非ゼロ係数をグループ化するスキャン順序に適合させることができる。復号器は、同一の統計を計算することができ、これによって、符号化プロセスで使用されたスキャン順序を判定することができる。したがって、係数ブロックの１次元ベクトル表現を２次元ブロックフォーマットに戻って変換するために、相反する適応スキャン順序を、復号器によって適用することができる。
【００４４】
注記したように、スキャン順序（およびそれに対する適応変更）は、異なる予測モードごとに異なる場合がある。すなわち、統計は、異なる予測モードごとに維持される。本開示は、モードのどの特定の個数またはモードのタイプにも限定されない。異なるモードは、コーディングプロセスで使用されるビデオブロックのサイズおよび予測のタイプを定義することができる。複数の予測モードが、複数のイントラ予測モードおよび複数のインター予測モードを備えることができる。
【００４５】
例として、インターコーディングは、４×４変換ブロックサイズに対応するインター予測モードおよび８×８変換ブロックサイズに対応するインター予測モードなど、複数のモードをサポートすることができる。いくつかの場合に、予測（Ｐ）モードおよび両方向予測（Ｂ）モードなどの複数の４×４モードをサポートすることができる。インターコーディングは、８×８Ｐモードおよび８×８Ｂモードをサポートすることもできる。さらに、異なるモードを、輝度情報およびクロマ情報のインターコーディングされるブロックについて定義することもできる。さまざまな異なるインターコーディング予測モードを定義することができ、本開示は、モードのどの特定のセットにも限定されない。
【００４６】
イントラコーディングも、広範囲の予測モードをサポートすることができる。たとえば、イントラ予測モードは、複数の４×４輝度イントラ予測モード、複数の８×８輝度イントラ予測モード、複数の１６×１６輝度イントラ予測モード、および複数の８×８クロマイントラ予測モードを備えることができる。一例として、イントラ予測モードは、予測ブロックが同一コーデッドユニット内の隣接データの異なるタイプの伝搬、適合、および／または保管に基づいて生成される、２６個の異なるモードを備えることができる。
【００４７】
イントラコーディングモードは、垂直、水平、ＤＣ、対角線左下、対角線右下、垂直右、水平下、垂直左、および水平上などのモードを備えることができる。これらの異なるモードのそれぞれが、予測ブロックが同一コーデッドユニット内の隣接データに基づいて生成される形を定義する。イントラコーディングモードは、垂直＋水平、ＤＣ＋垂直、ＤＣ＋水平、対角線左下＋水平、対角線右下＋垂直、垂直右＋水平、水平下＋垂直、垂直左＋水平、および水平上＋垂直など、上で述べたモードの組合せをも定義することができる。これらの特定のモードの詳細は、参照によって本明細書に組み込まれている、Ｙ．ＹｅおよびＭ．Ｋａｒｃｚｅｗｉｃｚ、「Ｉｍｐｒｏｖｅｄ  Ｉｎｔｒａ  Ｃｏｄｉｎｇ」、ＩＴＵ−Ｔ  Ｑ．６／ＳＧ１６  ＶＣＥＧ，Ｃ２５７、スイス国ジュネーブ、２００７年６月に示されている。どの場合でも、本開示は、モードのどの特定の個数またはモードのタイプに限定されない。基本的に、予測モードは、符号化ブロックのサイズ、予測ブロックのサイズ、使用される変換のサイズ、および予測ブロックのデータが配置されるか生成される形を定義することができる。
【００４８】
図２は、ビデオブロックを２次元ブロックフォーマットから１次元ベクトルフォーマットにスキャンするために本開示の技法を実行する適応スキャンユニット４５を含むビデオ符号器５０の例を示すブロック図である。図２に示されているように、ビデオ符号器５０は、符号化されるビデオフレーム内の現在のビデオブロックを受け取る。図２の例では、ビデオ符号器５０は、予測ユニット３２、基準フレームストア３４、ブロック変換ユニット３８、量子化ユニット４０、逆量子化ユニット４２、逆変換ユニット４４、適応スキャンユニット４５、およびエントロピ符号化ユニット４６を含む。デブロッキングフィルタ（図示せず）をも含めて、ブロッキネスアーティファクト（blockiness artifact）を除去するためにブロック境界をフィルタリングすることができる。ビデオ符号器５０は、合計器４８および合計器５１をも含む。
【００４９】
インターコーディングについて、予測ユニット３２は、符号化されるビデオブロックを１つまたは複数のビデオ基準フレーム内のさまざまなブロックと比較する。インターコーディングについて、予測ユニット３２は、同一コーデッドユニットの既にコーディングされた隣接ビデオブロックから、符号化されるビデオブロックを予測する。予測されたデータは、基準フレームストア３４から取り出すことができ、この基準フレームストア３４は、前に符号化されたブロックから再構成されたビデオブロックを格納するために任意のタイプのメモリまたはデータストレージデバイスを備えることができる。予測ユニット３２は、現在のビデオブロックをコーディングするのに使用される予測ブロックを識別するのに使用できる構文要素を備える、予測モードおよび予測ベクトルを生成することができる。イントラコーディングについて、予測ユニット３２は、空間予測ユニットを備えることができ、インターコーディングについて、予測ユニット３２は、動き推定ユニットおよび動き補償ユニットを含むことができる。
【００５０】
ビデオ符号器５０は、符号化されるオリジナルビデオブロックから予測ユニット３２によって作られた予測ブロックを減算することによって、残差ビデオブロックを形成する。合計器４８は、この減算演算を実行するユニットまたはモジュールを表す。ブロック変換ユニット３８は、離散コサイン変換（ＤＣＴ）または概念的に類似する変換などの変換を残差ブロックに適用し、残差変換ブロック係数を備えるビデオブロックを作る。ブロック変換ユニット３８は、たとえば、概念的にＤＣＴに類似する、Ｈ．２６４標準規格によって定義された他の変換を実行することができる。
【００５１】
量子化ユニット４０は、ビットレートをさらに減らすために、残差変換係数を量子化する。量子化ユニット４０は、たとえば、係数のそれぞれをコーディングするのに使用されるビットの個数を制限することができる。量子化の後に、適応スキャンユニット４５は、量子化された係数ブロックを２次元表現から１次元ベクトルにスキャンする。その後、このスキャンプロセスの後に、エントロピ符号化ユニット４６は、データをさらに圧縮するために、ＣＡＶＬＣまたはＣＡＢＡＣなどのエントロピコーディング方法論に従って、量子化された変換係数を符号化する。本開示と一貫する、適応スキャンユニット４５によって実行される適応スキャンの概要を、下でより詳細に説明する。
【００５２】
短く言うと、適応スキャンユニット４５は、複数の予測モードのそれぞれについてビデオブロックの係数値に関連する統計を格納し、予測モードのそれぞれに関連するビデオブロックをカウントし、予測モードのそれぞれについて定義されたスキャン順序に基づいてビデオブロックの係数値をスキャンし、予測モードの所与の１つに関連するカウント値が予測モードの所与の１つのしきい値を満足するときに、予測モードの所与の１つの統計に基づいて予測モードの所与の１つに関連する所与のスキャン順序を評価する。その後、このスキャンプロセスの後に、エントロピ符号化ユニット４６は、エントロピコーディング方法論に従って、量子化された変換係数を符号化する。
【００５３】
適応スキャンユニット４５は、予測モードの所与の１つに関連するカウント値が予測モードの所与の１つのしきい値を満足するときに、予測モードの所与の１つの統計に基づいて予測モードの所与の１つに関連する新しいスキャン順序を判定することができる。さらに、適応スキャンユニット４５は、所与のスキャン順序を調整するときにしきい値を調整することができる。適応スキャンユニット４５によって格納される統計は、係数値がゼロまたは非ゼロである確率を示す統計を備えることができる。一例では、適応スキャンユニット４５は、予測モードの所与の１つの統計に基づいて予測モードの所与の１つに関連する新しいスキャン順序を判定し、新しいスキャン順序が前のスキャン順序と同一であるどうかに基づいてしきい値を増減する。たとえば、新しいスキャン順序が前のスキャン順序と同一である場合には、適応スキャンユニット４５は、たとえば上限の支配下で２倍だけ、予測モードの所与の１つのしきい値を増やすことができる。同様に、新しいスキャン順序が前のスキャン順序とは異なる場合には、適応スキャンユニット４５は、たとえば下限の支配下で２倍だけ、予測モードの所与の１つのしきい値を減らすことができる。予測モードの所与の１つのスキャン順序を判定する際に、適応スキャンユニット４５は、予測モードの所与の１つに関連するカウント値をリセットすることができる。係数ブロックが１次元フォーマットにスキャンされた後に、エントロピ符号化ユニット４６は、量子化された変換係数をエントロピ符号化する。
【００５４】
エントロピ符号化ユニット４６によるエントロピコーディングの後に、符号化されたビデオを、後の伝送または取出のために別のデバイスに送るかアーカイブすることができる。逆量子化ユニット４２および逆変換ユニット４４は、ピクセル領域で残差ブロックを再構成するために、それぞれ逆量子化および逆変換を適用する。合計器５１は、基準フレームストア３４での格納のために再構成されたビデオブロックを作るために、予測ユニット３２によって作られた予測ブロックに再構成された残差ブロックを加算する。望まれる場合に、再構成されたビデオブロックを、基準フレームストア３４に格納される前に、デブロッキングフィルタユニット（図示せず）に通すこともできる。再構成されたビデオブロックを、後続ビデオフレーム内のブロックをインターコーディングするために、または同一のコーデッドユニット内の将来の隣接ブロックをイントラコーディングするために、予測ユニット３２によって基準ブロックとして使用することができる。
【００５５】
図３は、本明細書で説明される形で符号化されるビデオシーケンスを復号するビデオ復号器６０の例を示すブロック図である。ビデオ復号器６０は、図２のエントロピ符号化ユニット４６によって実行される符号化の相反する復号機能を実行するエントロピ復号ユニット５２を含む。ビデオ復号器６０は、図２の適応スキャンユニット４５によって実行されるスキャンに相反する逆スキャンを実行する適応スキャンユニット５５をも含む。
【００５６】
ビデオ復号器６０は、ビデオフレーム内のブロックのイントラ復号およびインター復号を実行することができる。図３の例では、ビデオ復号器６０は、予測ユニット５４、逆量子化ユニット５６、逆変換ユニット５８、および基準フレームストア６２をも含む。ビデオ復号器６０は、合計器６４をも含む。オプションで、ビデオ復号器６０は、合計器６４のアウトプットをフィルタリングするデブロッキングフィルタ（図示せず）をも含むことができる。
【００５７】
イントラコーディングについて、予測ユニット５４は、空間予測ユニットを備えることができ、インターコーディングについて、予測ユニット５４は、動き補償ユニットを備えることができる。逆量子化ユニット５６は、逆量子化を実行し、逆変換ユニット５８は、ビデオブロックの係数をピクセル領域に戻って変更するために逆変換を実行する。合計器は、基準フレームストア６２に格納される再構成されたブロックを生成するために、ユニット５４からの予測ブロックを逆変換ユニット５８からの再構成された残差ブロックと組み合わせる。望まれる場合に、再構成されたビデオブロックを、基準フレームストア６２に格納される前に、デブロッキングフィルタユニット（図示せず）に通すこともできる。復号されたビデオは、基準フレームストア６２からアウトプットされ、後続予測での使用のために予測ユニット５４にフィードバックすることもできる。
【００５８】
注記したように、エントロピ復号ユニット５２は、図２のエントロピ符号化ユニット４６によって実行される符号化の相反する復号機能を実行し、適応スキャンユニット５５は、図２の適応スキャンユニット４５によって実行されるスキャンの相反する逆スキャンを実行する。図２の適応スキャンユニット４５に似て、図３の適応スキャンユニット５５は、複数の予測モードのそれぞれについてビデオブロックの係数値に関連する統計を格納し、予測モードのそれぞれに関連するビデオブロックをカウントし、予測モードのそれぞれについて定義されたスキャン順序に基づいてビデオブロックの係数値をスキャンし、予測モードの所与の１つに関連するカウント値が予測モードの所与の１つのしきい値を満足するときに、予測モードの所与の１つの統計に基づいて予測モードの所与の１つに関連する所与のスキャン順序を評価する。基本的に、適応スキャンユニット５５は、適応スキャンユニット４５に類似する機能を実行するが、逆の形でそれを行う。したがって、適応スキャンユニット４５は、エントロピ符号化の前に係数ブロックを２次元フォーマットから１次元フォーマットにスキャンするが、適応スキャンユニット５５は、エントロピ復号の後に係数ブロックを１次元フォーマットから２次元フォーマットにスキャンする。
【００５９】
図４は、４×４係数ブロックのジグザグスキャンを示す概念図である。図５は、８×８係数ブロックのジグザグスキャンを示す概念図である。図４および５に示されたジグザグスキャンを、コーデッドユニットのコーディングプロセスの始めに適応スキャンユニット４５によって実行することができる。しかし、下でより詳細に述べるように、スキャン順序は、既にコーディングされた係数ブロックに関連する実際の統計に基づいて適合させることができる。
【００６０】
図４および５に示されたそのようなジグザグスキャンのスキャン順序は、ビデオブロック８０および９０を通る矢印に従い、係数は、スキャン順序でラベルを付けられている。具体的に言うと、図４および５に示された数値は、順次１次元ベクトル内の係数の位置を示し、係数の値を表すのではない。初期化時に、本開示の技法は、どの特定のスキャン順序または技法にも限定されない。たとえば、本開示で使用される初期スキャン順序を、図４および５に示されたジグザグスキャン順序とすることができる。あるいは、その代わりに、本開示で使用される初期スキャン順序を、複数の予測モードの各１つのために特別にトレーニングすることのできる固定されたスキャン順序のセットとすることができる。ジグザグスキャンは、非常に典型的なので、本開示の適応スキャンの議論のよい出発点を与える。やはり、本開示によれば、スキャン順序は、既にコーディングされた係数ブロックに関連する実際の統計に基づいて経時的に適合する。コーデッドユニットごとに、スキャン順序は、ジグザグスキャンなど、従来のスキャン順序から始まることができるが、そのコーデッドユニット内の異なる予測モードでコーディングされる係数ブロックについて統計が累積されるときに適合することができる。しかし、上で注記したように、ジグザグスキャンは、適応スキャンの唯一の可能な出発点ではない。水平スキャン技法、垂直スキャン技法、または任意の初期スキャン技法を、本明細書で説明する適応スキャン技法の出発点として使用することができる。
【００６１】
図６は、特定の予測モードのブロックに関連する統計（Ｓ１〜Ｓ１６）の例示的セットおよび本開示の技法と一貫するアルゴリズムを示す概念図である。図示されているように、モードＸでのビデオブロックの初期スキャン順序は、次のジグザグスキャンプロセスによって定義することができる：（Ｓ１，Ｓ２，Ｓ５，Ｓ９，Ｓ６，Ｓ３，Ｓ４，Ｓ７，Ｓ１０，Ｓ１３，Ｓ１４，Ｓ１１，Ｓ８，Ｓ１２，Ｓ１５，Ｓ１６）。この場合に、番号付きの係数は、図６の統計ブロック６９で番号を付けられた統計に対応する。Ｃｏｕｎｔ（ｍｏｄｅ  Ｘ）は、所与のコーデッドユニットについてモードＸでコーディングされるブロックの個数のカウントを定義する。Ｃｏｕｎｔ（ｍｏｄｅ  Ｘ）の各インクリメントに伴って、統計（Ｓ１〜Ｓ１６）は、モードＸの新しいブロックによって影響されて、係数の統計を反映するように変化することができる。
【００６２】
図６のアルゴリズム６０は、マクロブロック境界に出会うときなど、コーデッドユニット（たとえば、フレームまたはスライス）のコーディングで事前定義の更新インターバルに呼び出され得る。本開示によれば、アルゴリズム６０が呼び出された後に、Ｃｏｕｎｔ（ｍｏｄｅ  Ｘ）が事前定義のしきい値以上である場合には、スキャンユニット４５または５５（図２または３）が、統計Ｓ１〜Ｓ１６に基づいてスキャン順序を選択し、その後、Ｃｏｕｎｔ（ｍｏｄｅ  Ｘ）をリセットする。スキャン順序が変化する場合には、スキャンユニット４５または５５は、しきい値を下に調整することができ、スキャン順序が変化しない場合には、スキャンユニット４５または５５は、しきい値を上に調整することができる。
【００６３】
しきい値は、基本的に、通常は計算集中型のソートプロセスを必要とするスキャン順序変化の発生を制限できる機構であり、スキャン順序を評価する前にビデオブロックの所与のモードについて十分な統計が累積されることを保証することができる。具体的に言うと、新しいスキャン順序は、所与のモードのカウントが所与のモードのしきい値を満足するときに限ってビデオブロックの所与のモードについて選択され得る。さらに、しきい値を、新しいスキャン順序が前のスキャン順序と異なるときにスキャン順序評価の発生を加速するため、または新しいスキャン順序が前のスキャン順序と同一のままであるときにスキャン順序評価の発生を減らすために、経時的に調整することができる。この形で、複数の予測モードのそれぞれについて、本明細書で説明する技法は、スキャン順序が安定した望ましい状態に達するまでコードユニットの始めにより頻繁にスキャン順序評価を実行でき、その後、スキャン順序の変化がよりありそうでなくなるときに、より低い頻度でスキャン順序選択を実行することができる。
【００６４】
図７は、本開示と一貫する仮説の例を示す概念図である。この例では、係数が、アイテム７１Ａおよび７１Ｂではｃ１〜ｃ１６としてラベルを付けられている。実際の係数値は、ブロック１（７２）、ブロック２（７３）、ブロック３（７４）、およびブロック４（７５）に示されている。ブロック１〜４は、同一の予測モードに関連するブロックを備えることができる。ブロック１〜４を、順番にコーディングすることができる。
【００６５】
当初は、ジグザグスキャンを使用することができる。この場合に、ブロックは、図４の図と一貫する、次の順序でスキャンされる。
【００６６】
（ｃ１，ｃ２，ｃ５，ｃ９，ｃ６，ｃ３，ｃ４，ｃ７，ｃ１０，ｃ１３，ｃ１４，ｃ１１，ｃ８，ｃ１２，ｃ１５，ｃ１６）
係数ブロックの統計が、すべてゼロに初期化されると仮定すると、統計１（７６）は、たとえば非ゼロであるすべての係数について１の値、ゼロの値を有するすべての係数についてゼロの値を有する、ブロック１の統計を表す。統計２（７７）は、たとえば、係数位置がブロック１および２で１または０のどちらであったかを示す正規化された確率値を有する、ブロック１および２の組み合わされた統計を表す。この場合に、位置ｃ６の正規化された確率は、ブロック１がその位置で非ゼロ係数を有したが、ブロック２がその位置でゼロ値係数を有したので、０．５である。統計３（７８）は、正規化された確率としてブロック１、２、および３の組み合わされた確率を表し、統計４（７９）は、正規化された確率としてブロック１、２、３、および４の組み合わされた確率を表す。正規化された確率は、すべての所与の位置の１または０の値の平均を備えることができ、１の値は、ブロックの特定の位置が非ゼロ係数を定義する場合に、ブロックのその位置について与えられる。上の説明では、ジグザグスキャンが、初期スキャン順序として使用され、係数ブロックの統計は、すべて０に初期化される。そのような初期化は、例としてのみ与えられ、スキャン順序および係数統計の代替初期化を使用することができる。
【００６７】
図７の例では、しきい値に４の値がセットされると仮定することができる。この場合に、第４ブロック７５をコーディングするときに、プリセット更新インターバルに出会った後に（たとえば、マクロブロック境界に出会った後に）、４ブロックのカウントが判定されて、４のしきい値を満足する。この場合に、ソートアルゴリズムが呼び出され、スキャンユニット４５（図２）は、統計４（７９）に基づいて新しいスキャン順序を定義することができる。したがって、新しいスキャン順序は、次のようになる。
【００６８】
（ｃ１，ｃ５，ｃ９，ｃ２，ｃ１３，ｃ６，ｃ３，ｃ４，ｃ７，ｃ１０，ｃ１４，ｃ１１，ｃ８，ｃ１２，ｃ１５，ｃ１６）
具体的に言うと、スキャン順序は、初期スキャン順序（たとえば、ジグザグスキャン）から、１次元ベクトルの始めに非ゼロ係数を、終りにゼロ係数を進める新しいスキャン順序に変化する。たとえば、位置ｃ５およびｃ９の確率は、統計４（７９）ではｃ２での確率より高いので、ｃ５およびｃ９は、両方とも、新しいスキャン順序ではｃ２の前にスキャンされる。水平次元と垂直次元との間で同等に交番するジグザグスキャンとは異なって、新しいスキャン順序は、垂直次元でより強い指向性を示す。すなわち、新しいスキャン順序は、垂直次元の係数を水平次元の係数より高速に通過し、これは、所与の予測モードでコーディングされるビデオブロック１〜４（７２、７３、７４、７５）の係数の統計的分布と一貫する。したがって、スキャン順序を定義するのに過去の統計を使用することによって、本開示の技法は、スキャンされる１次元ベクトルの始め付近での非ゼロ係数の、およびスキャンされる１次元ベクトルの終り付近でのゼロ値係数のグループ化を促進することができる。これは、エントロピコーディング中に達成できる圧縮のレベルを高めることができる。
【００６９】
さらに、スキャン順序変化が計算集中型のソートプロセスを必要とするので、そのような変化の発生を制限するため、およびスキャン順序を評価する前にビデオブロックの所与のモードについて十分な統計が累積されることを保証するのを助けるために、しきい値が定義される。この場合に、新しいスキャン順序は、所与のモードのカウントが所与のモードのしきい値を満足するときに限ってビデオブロックの所与のモードについて選択され得る。しきい値を、経時的に上にまたは下に（上限および下限の支配下で）調節することができる。たとえば、スキャン順序評価がスキャン順序変化をもたらす場合に、後続スキャン順序評価がよりすばやく発生するようにするために、しきい値を減らすことができる。この場合に、スキャン順序が変化しつつあるので、スキャン順序を安定した状態にするために将来の変化の発生を急がせることが望ましい可能性がある。その一方で、スキャン順序評価がスキャン順序変化をもたらさない場合に、後続スキャン順序評価が発生により長い時間を要するようにするために、しきい値を増やすことができる。この場合に、スキャン順序は変化していないので、可能なスキャン順序変化の評価が処理リソースの使用を必要とするのでこれらの評価の頻度を下げることが望ましい可能性がある。これらのタイプのしきい値調整は、スキャン順序が安定した望ましい状態に達するまでより頻繁にスキャン順序変化を評価することができ、その後、変化がよりありそうにないものになるので、スキャン順序評価の頻度を制限することができる。
【００７０】
図８は、本開示と一貫するコーディング（すなわち、符号化または復号）技法を示す流れ図である。図８は、エントロピコーディングのステップ（ステップ８５）がスキャンのステップ（ステップ８３）の後である限り、ビデオ符号器５０の展望から示されている。ビデオ復号器６０の展望からは、エントロピコーディングのステップ（ステップ８５）は、スキャンのステップ（ステップ８３）に先行するはずである。たとえば、ビデオ復号器６０の展望からは、図８に示されたステップを、（ステップ８５、ステップ８３、ステップ８１、ステップ８２、ステップ８４）という順序で実行することができる。説明を単純にするために、図８を、下ではビデオ符号器５０の展望から説明する。
【００７１】
図８に示されているように、適応スキャンユニット４５は、複数の予測モードのそれぞれについてビデオブロックの係数値に関連する統計を更新し（８１）、予測モードのそれぞれに関連するビデオブロックをカウントする（８２）。次に、適応スキャンユニット４５は、予測モードのそれぞれについて定義されたスキャン順序に従ってビデオブロックの係数値を１次元係数ベクトルにスキャンし（８３）、予測モードの所与の１つに関連するカウント値が予測モードの所与の１つのしきい値を満足するときに、予測モードの所与の１つの統計に基づいて予測モードの所与の１つに関連する所与のスキャン順序を評価する（８４）。その後、このスキャンプロセスの後に、エントロピ符号化ユニット４６は、エントロピコーディング方法論に従って１次元係数ベクトルを符号化する（８５）。
【００７２】
適応スキャンユニット４５は、予測モードの所与の１つに関連するカウント値が予測モードの所与の１つのしきい値を満足するときに、予測モードの所与の１つの統計に基づいて、予測モードの所与の１つに関連する新しいスキャン順序を判定することができる。さらに、適応スキャンユニット４５は、所与のスキャン順序を判定するときにしきい値を調整することができる。本開示で述べたように、適応スキャンユニット４５によって格納される統計は、係数値がゼロまたは非ゼロである確率を示す統計、またはおそらくは係数値の確率を示す他のタイプの統計を備えることができる。一例では、適応スキャンユニット４５は、予測モードの所与の１つの統計に基づいて予測モードの所与の１つに関連する新しいスキャン順序を判定し、新しいスキャン順序が前のスキャン順序と同一であるどうかに基づいてしきい値を増減する。
【００７３】
たとえば、新しいスキャン順序が前のスキャン順序と同一である場合には、適応スキャンユニット４５は、たとえば上限の支配下で２倍だけ、しきい値を増やすことができる。同様に、新しいスキャン順序が前のスキャン順序とは異なる場合には、適応スキャンユニット４５は、たとえば下限の支配下で２倍だけ、しきい値を減らすことができる。新しいスキャン順序を判定する際に、適応スキャンユニット４５は、予測モードの所与の１つに関連するカウント値をリセットすることができる。１次元フォーマットにスキャンした後に、エントロピ符号化ユニット４６は、係数ベクトルをエントロピ符号化する。
【００７４】
図９は、ビデオ符号器５０（図２）のスキャンユニット４５およびビデオ復号器６０（図３）のスキャンユニット５５によって実行できる適応スキャンプロセスを示す例示的な流れ図である。図９のプロセスを、コーデッドユニットごとに繰り返すことができる。やはり、コーデッドユニットは、ビデオシーケンスの個々のフレーム、フレームの一部（スライスなど）、またはビデオシーケンスの別の独立に復号可能な単位を備えることができる。
【００７５】
図９に示されているように、スキャンユニット４５は、新しいコーデッドユニットに関してそのスキャン順序を初期化する（９１）。言い換えると、フレームまたはスライスの始めに、スキャン順序が初期化される。すべてのモードのカウント値は、０にセットされ、しきい値は、４×４ブロックに対応するモードについて４の値および８×８ブロックに対応するモードについて２の値などの初期値にセットされる。新しいコーデッドユニットの始めに、すべてのモードの係数ブロックの統計も、すべて０または経験的トレーニングに基づく他の統計のいずれかに初期化される。スキャンユニット４５は、その初期スキャン順序（たとえば、ジグザグスキャン）を適用する。それを行う際に、スキャンユニット４５は、スキャンされるブロックについて識別されるモードごとに、ブロック係数統計を収集し、ｃｏｕｎｔ（ｍｏｄｅ）をインクリメントする（９２）。このプロセスは、プリセット更新インターバルに達するまで継続される（９３）。たとえば、プリセット更新インターバルは、マクロブロック境界または別の事前に決定されるインターバルとすることができる。
【００７６】
プリセット更新インターバルが識別されるとき（「ｙｅｓ」９３）には、スキャンユニット４５は、スキャン順序を評価する。具体的に言うと、スキャンユニット４５は、ｃｏｕｎｔ（ｍｏｄｅ）がしきい値ｔｈｒｅｓｈ（ｍｏｄｅ）を満足するかどうかを判定する（９４）。そうではない場合（「ｎｏ」９４）には、スキャンユニット４５は、たとえばすべてのモードを調べるまで（１００）、他のモードを検討する。任意の所与のモードについて、ｃｏｕｎｔ（ｍｏｄｅ）がしきい値を満足する場合（「ｙｅｓ」９４）には、スキャンユニット４５は、そのモードの累積された統計に基づいてスキャン順序を更新する（９５）ソート機能を呼び出す。スキャン順序が、スキャン順序のこの更新の結果として変化する場合（「ｙｅｓ」９６）には、スキャンユニット４５は、そのモードのｔｈｒｅｓ（ｍｏｄｅ）を減らす（９７）。スキャン順序が、スキャン順序のこの更新の結果としては変化しない場合（「ｎｏ」９６）には、スキャンユニット４５は、そのモードのｔｈｒｅｓ（ｍｏｄｅ）を増やす（９８）。一例として、しきい値のこれらの増加（９８）または減少（９７）を、下限および上限の支配下で２倍だけ変更することができる（たとえば、２をかけるか２で割る）。下限および上限は、４×４ブロックに対応するモードについては４、そして８×８ブロックに対応するモードについては２の値にセットすることができる。この例では、初期しきい値を、初期化の後にできる限りすばやくソートを呼び出すために、下限でセットすることができる。
【００７７】
所与のモードのスキャン順序を更新した（９５）後に、そのモードのｃｏｕｎｔ（ｍｏｄｅ）をゼロにリセットする（９９）。その後、このプロセスは、追加のモードを調べる必要があるかどうかを判定する（１００）。このプロセスは、所与のコーデッドユニット（たとえば、フレームまたはスライス）がコーディングされるときに継続される。すなわち、次のコーデッドユニットに出会うときには、新しい初期化（９１）を行うことができる。
【００７８】
本開示の技法を、無線送受話器および集積回路（ＩＣ）またはＩＣのセット（すなわち、チップセット）を含むさまざまなデバイスまたは装置で実現することができる。すべてのコンポーネント、モジュール、またはユニットは、機能的態様を強調するために説明され提供されたものであり、必ずしも異なるハードウェアユニットによる実現を必要としない。
【００７９】
したがって、本明細書で説明された技法を、ハードウェア、ソフトウェア、ファームウェア、またはその組合せで実施することができる。モジュールまたはコンポーネントとして説明されたすべての特徴を、一体化された論理デバイス内で一緒にまたは別個だがインターオペラブルな論理デバイスとして別々に実施することができる。ソフトウェアで実施される場合に、本技法を、実行された時に上で説明した方法のうちの１つまたは複数を実行する命令を備えるコンピュータ可読媒体によって少なくとも部分的に実現することができる。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことができるコンピュータプログラム製品の一部を形成することができる。コンピュータ可読媒体は、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、磁気または光のデータ記憶媒体、および類似物を備えることができる。本技法を、それに加えてまたはその代わりに、命令またはデータ構造の形のコードを担持するか通信し、コンピュータによってアクセスし、読み取り、かつ／または実行することのできる、コンピュータ可読通信媒体によって少なくとも部分的に実現することができる。
【００８０】
コードを、１つまたは複数のディジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または他の同等の集積回路もしくはディスクリート論理回路など、１つまたは複数のプロセッサによって実行することができる。したがって、用語「プロセッサ」は、本明細書で使用されるときに、本明細書で説明される技法の実施形態に適切な、前述の構造または任意の他の構造のいずれをも指すことができる。さらに、いくつかの態様では、本明細書で説明した機能性を、符号化および復号のために構成され、または組み合わされたビデオ符号器−復号器（コーデック）内に組み込まれる、専用のソフトウェアモジュールまたはハードウェアモジュール内で提供することができる。また、本技法を、１つまたは複数の回路または論理要素内で完全に実施することができる。
【００８１】
本開示のさまざまな態様を説明した。本技法は、変換されたビデオブロックの変換された係数のスキャンの文脈で説明されたが、ビデオブロックの他のタイプの係数のスキャンにも適用することができる。たとえば、ピクセル値またはビデオブロックに関連する他のタイプの変換されない係数もしくは値のスキャンが実施される場合に、本開示の技法を、そのようなスキャンに適用することができる。上記および他の態様は、添付の特許請求の範囲の範囲に含まれる。
【符号の説明】
【００８２】
１０  ビデオ符号化および復号システム
１２  ソースデバイス
１５  通信チャネル
１６  宛先デバイス
２０  ビデオソース
２２  ビデオ符号器
２３  変調器／復調器（モデム）
２４  送信器
２６  受話器
２７  モデム
２８  ビデオ復号器
３０  ディスプレイデバイス
３２  予測ユニット
３４  基準フレームストア
３８  ブロック変換ユニット
４０  量子化ユニット
４２  逆量子化ユニット
４４  逆変換ユニット
４５  適応スキャンユニット
４６  エントロピ符号化ユニット
４８  合計器
５０  ビデオ符号器
５１  合計器
５２  エントロピ復号ユニット
５４  予測ユニット
５５  適応スキャンユニット
５６  逆量子化ユニット
５８  逆変換ユニット
６０  ビデオ復号器
６２  基準フレームストア
６４  合計器
７１Ａ  アイテム
７１Ｂ  アイテム
７２  ブロック１
７３  ブロック２
７４  ブロック３
７５  ブロック４
７６  統計１
７７  統計２
７８  統計３
７９  統計４
【図１】
2010530183.tif 000003
【図２】
2010530183.tif 000004
【図３】
2010530183.tif 000005
【図４】
2010530183.tif 000006
【図５】
2010530183.tif 000007
【図６】
2010530183.tif 000008
【図７】
2010530183.tif 000009
【図８】
2010530183.tif 000010
【図９】
2010530183.tif 000011
【国際調査報告】
2010530183.tif 000012
2010530183.tif 000013
2010530183.tif 000014