(57)【特許請求の範囲】
【請求項１】
ビデオデータをエントロピー符号化する方法であって、
ビデオデータのブロックの色成分に関連する複数のサンプルを受信することと、
前記複数のサンプルがスキップモードを使用して符号化されるべきであるかどうかを決定すること、ここにおいて、前記決定は、前記色成分に対応する前記複数のサンプルのすべてが所定の値に等しい値を有するかどうかを決定することを備え、前記スキップモードは、前記複数のサンプルを符号化することを控えることを備える、と、
前記複数のサンプルが前記スキップモードを使用して符号化されるべきでないと決定したことに応答して、
前記ブロックのクロマサブサンプリング画像フォーマットを決定すること、ここにおいて、前記決定されたブロックの前記クロマサブサンプリング画像フォーマットは、４：２：２、または４：２：０のうちの少なくとも１つを含む、と、
前記ビデオデータの前記ブロックの前記複数のサンプルをサンプルの１つまたは複数のグループにグループ化すること、ここにおいて、前記１つまたは複数のグループのグループの数は、前記ブロックのコーディングモードと、前記ブロックの前記決定されたクロマサブサンプリング画像フォーマットと、前記複数のサンプルに関連する前記色成分とに少なくとも部分的に基づき、
前記ブロックの前記クロマサブサンプリング画像フォーマットが４：２：２であるとき、前記グループの数は、前記複数のサンプルに関連する前記色成分がルーマ色成分である場合、Ｎであり、前記複数のサンプルに関連する前記色成分がクロマ色成分である場合、Ｎ／２であり、
前記ブロックの前記クロマサブサンプリング画像フォーマットが４：２：０であるとき、前記グループの数は、前記複数のサンプルに関連する前記色成分がルーマ色成分である場合、Ｎであり、前記複数のサンプルに関連する前記色成分がクロマ色成分である場合、Ｎ／４である、と、
前記サンプルの１つまたは複数のグループの各グループをエントロピー符号化することと
を備える、方法。
【請求項２】
前記エントロピー符号化することは、プレフィックスと複数のサフィックスとを使用して前記サンプルの１つまたは複数のグループのうちのグループをコーディングすることを備え、前記プレフィックスは、前記複数のサフィックスの各々の長さを示し、各サフィックスは、前記グループのサンプルに対応する、
請求項１に記載の方法。
【請求項３】
前記エントロピー符号化することは、前記サンプルの１つまたは複数のグループのうちのグループ中の前記サンプルのすべてが所定の値に等しい値を有することに応答して、前記グループに対してグループ単位スキップを実行することを備え、前記グループ単位スキップは、前記グループに関連する前記サンプルを符号化することを控えることを備える、
請求項１に記載の方法。
【請求項４】
前記サンプルの１つまたは複数のグループの各サンプルは、前記ビデオブロックの量子化残差値の色成分に対応する、
請求項１に記載の方法。
【請求項５】
前記サンプルの１つまたは複数のグループの各サンプルは、前記ブロックの前記コーディングモードに基づいて、前記ビデオブロックの複数の残差値色成分に対して変換を適用することによって決定された係数に対応する、
請求項１に記載の方法。
【請求項６】
有意値を有する前記サンプルの１つまたは複数のグループの最後のサンプルの位置をシグナリングすることと、
前記係数の絶対値を１の所定の値だけ減算することによって、前記最後のサンプルの前記位置に対応する前記係数を調整することと、
前記シグナリングされた位置より前の位置を有する１つまたは複数のサンプルをエントロピーコーディングすることと、
前記シグナリングされた位置の後の位置を有する１つまたは複数の残りのサンプルをコーディングしないことと
をさらに備える、請求項５に記載の方法。
【請求項７】
前記調整された最後有意係数値が０であるときのみ、前記最後のサンプルの前記位置に対応するサインビットをシグナリングすることをさらに備える、
請求項６に記載の方法。
【請求項８】
前記スキップモードは、前記複数のサンプルがクロマ成分に対応する場合のみ、適用され、前記複数のサンプルがルミナンス成分に対応する場合、適用されない、
請求項１に記載の方法。
【請求項９】
ビデオデータをエントロピー符号化するためのデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信しており、
ビデオデータのブロックの色成分に関連する複数のサンプルを受信することと、
前記複数のサンプルがスキップモードを使用して符号化されるべきであるかどうかを決定すること、ここにおいて、前記決定は、前記色成分に対応する前記複数のサンプルのすべてが所定の値に等しい値を有するかどうかを決定することを備え、前記スキップモードは、前記複数のサンプルを符号化することを控えることを備える、と、
前記複数のサンプルが前記スキップモードを使用して符号化されるべきでないという決定に応答して、
前記ビデオデータのブロックのクロマサブサンプリング画像フォーマットを決定すること、ここにおいて、前記決定されたブロックの前記クロマサブサンプリング画像フォーマットは、４：２：２、または４：２：０のうちの少なくとも１つを含む、と、
前記ビデオデータの前記ブロックの前記複数のサンプルをサンプルの１つまたは複数のグループにグループ化すること、ここにおいて、前記１つまたは複数のグループのグループの数は、前記ブロックのコーディングモードと、前記ブロックの前記決定されたクロマサブサンプリング画像フォーマットと、前記複数のサンプルに関連する前記色成分とに少なくとも部分的に基づき、
前記ブロックの前記クロマサブサンプリング画像フォーマットが４：２：２であるとき、前記グループの数は、前記複数のサンプルに関連する前記色成分がルーマ色成分である場合、Ｎであり、前記複数のサンプルに関連する前記色成分がクロマ色成分である場合、Ｎ／２であり、
前記ブロックの前記クロマサブサンプリング画像フォーマットが４：２：０であるとき、前記グループの数は、前記複数のサンプルに関連する前記色成分がルーマ色成分である場合、Ｎであり、前記複数のサンプルに関連する前記色成分がクロマ色成分である場合、Ｎ／４である、と、
前記サンプルの１つまたは複数のグループの各グループをエントロピー符号化することと
を行うように構成されたプロセッサと
を備える、デバイス。
【請求項１０】
前記プロセッサは、プレフィックスと複数のサフィックスとを使用して前記サンプルの１つまたは複数のグループのうちのグループをコーディングすることによって前記サンプルの１つまたは複数のグループをエントロピー符号化するように構成され、前記プレフィックスは、前記複数のサフィックスの各々の長さを示し、各サフィックスは、前記グループのサンプルに対応する、
請求項９に記載のデバイス。
【請求項１１】
前記プロセッサは、前記サンプルの１つまたは複数のグループのうちのグループ中の前記サンプルのすべてが所定の値に等しい値を有することに応答して、前記グループに対してグループ単位スキップを実行することによって前記サンプルの１つまたは複数のグループをエントロピー符号化するように構成され、前記グループ単位スキップは、前記グループに関連する前記サンプルを符号化することを控えることを備える、
請求項９に記載のデバイス。
【請求項１２】
前記サンプルの１つまたは複数のグループの各サンプルは、前記ビデオブロックの量子化残差値の色成分に対応する、
請求項９に記載のデバイス。
【請求項１３】
前記サンプルの１つまたは複数のグループの各サンプルは、前記ブロックの前記コーディングモードに基づいて、前記ビデオブロックの複数の残差値色成分に対して変換を適用することによって決定された係数に対応する、
請求項９に記載のデバイス。
【請求項１４】
前記プロセッサは、
有意値を有する前記サンプルの１つまたは複数のグループの最後のサンプルの位置をシグナリングすることと、
前記係数の絶対値を１の所定の値だけ減算することによって、前記最後のサンプルの前記位置に対応する前記係数を調整することと、
前記シグナリングされた位置より前の位置を有する１つまたは複数のサンプルをエントロピーコーディングすることと、
前記シグナリングされた位置の後の位置を有する１つまたは複数の残りのサンプルをコーディングしないことと
を行うようにさらに構成された、請求項１３に記載のデバイス。
【請求項１５】
前記プロセッサは、前記調整された最後有意係数値が０であるときのみ、前記最後のサンプルの前記位置に対応するサインビットをシグナリングするようにさらに構成された、
請求項１４に記載のデバイス。
【請求項１６】
ブロック単位スキップは、前記サンプルがクロマ成分に対応する場合のみ、適用され、前記サンプルがルミナンス成分に対応する場合、適用されない、
請求項９に記載のデバイス。
【請求項１７】
ビデオデータをエントロピー復号する方法であって、
前記ビデオデータのブロックを表すビットストリームを受信することと、
前記ブロックの色成分に対応するサンプルが前記ビットストリーム中に含まれないことを示す、前記ブロックの色成分のためのスキップモードフラグが示されたかどうかを決定することと、
前記スキップモードフラグが示されなかったという決定に応答して、
前記ブロックのクロマサブサンプリング画像フォーマットを決定すること、ここにおいて、前記ブロックの前記決定されたクロマサブサンプリング画像フォーマットは、４：２：２、または４：２：０のうちの少なくとも１つを含む、と、
前記ビットストリームをエントロピー復号することを介して前記ブロックのサンプルの１つまたは複数のグループを生成すること、ここにおいて、前記１つまたは複数のグループの数は、前記決定されたクロマサブサンプリング画像フォーマットと、前記サンプルに関連する色成分とに基づき、
前記ブロックの前記クロマサブサンプリング画像フォーマットが４：２：２であるとき、前記グループの数は、前記複数のサンプルに関連する前記色成分がルーマ色成分である場合、Ｎであり、前記複数のサンプルに関連する前記色成分がクロマ色成分である場合、Ｎ／２であり、
前記ブロックの前記クロマサブサンプリング画像フォーマットが４：２：０であるとき、前記グループの数は、前記複数のサンプルに関連する前記色成分がルーマ色成分である場合、Ｎであり、前記複数のサンプルに関連する前記色成分がクロマ色成分である場合、Ｎ／４である、と、
前記サンプルの１つまたは複数のグループと、前記ブロックのコーディングモードと、前記決定されたクロマサブサンプリング画像フォーマットとに少なくとも部分的に基づいて、前記ブロックを再構成することと
を備える、方法。
【請求項１８】
前記サンプルの１つまたは複数のグループの各サンプルは、前記ブロックの残差値の色成分に対応する、
請求項１７に記載の方法。
【請求項１９】
有意値を有する前記サンプルの１つまたは複数のグループの最後のサンプルの位置を示す前記ビットストリーム中の信号を識別することと、
前記受信されたビットストリームを使用して、前記最後のサンプルの前記位置より前の位置を有する１つまたは複数のサンプルを再構成することと、
前記最後のサンプルの前記位置の後の位置を有する１つまたは複数の残りのサンプルを所定の値を有するものとして再構成することと
をさらに備える、請求項１７に記載の方法。
【請求項２０】
前記受信されたビットストリームから、前記サンプルの１つまたは複数のグループのうちのサンプルのグループに対応するプレフィックスと１つまたは複数のサフィックスとを識別することと、
前記１つまたは複数のサフィックスの各々の長さを決定するために前記プレフィックスを復号することと、
前記サンプルのグループのうちの１つまたは複数の対応するサンプルの値を決定するために、前記１つまたは複数のサフィックスを並列に復号することと
をさらに備える、請求項１７に記載の方法。
【請求項２１】
ビデオデータをエントロピー復号するためのデバイスであって、
前記ビデオデータのブロックを表すビットストリームの少なくとも一部分を記憶するように構成されたメモリと、
前記メモリと通信しており、
前記ブロックの色成分に対応するサンプルが前記ビットストリーム中に含まれないことを示す、前記ブロックの色成分のためのスキップモードフラグが示されたかどうかを決定することと、
前記スキップモードフラグが示されなかったという決定に応答して、
前記ブロックのクロマサブサンプリング画像フォーマットを決定すること、ここにおいて、前記ブロックの前記クロマサブサンプリング画像フォーマットは、４：２：２、または４：２：０のうちの少なくとも１つを含む、と、
前記ビットストリームをエントロピー復号することを介して前記ブロックのサンプルの１つまたは複数のグループを生成すること、ここにおいて、前記１つまたは複数のグループの数は、前記決定されたクロマサブサンプリング画像フォーマットと、前記サンプルに関連する色成分とに基づき、
前記ブロックの前記クロマサブサンプリング画像フォーマットが４：２：２であるとき、前記グループの数は、前記複数のサンプルに関連する前記色成分がルーマ色成分である場合、Ｎであり、前記複数のサンプルに関連する前記色成分がクロマ色成分である場合、Ｎ／２であり、
前記ブロックの前記クロマサブサンプリング画像フォーマットが４：２：０であるとき、前記グループの数は、前記複数のサンプルに関連する前記色成分がルーマ色成分である場合、Ｎであり、前記複数のサンプルに関連する前記色成分がクロマ色成分である場合、Ｎ／４である、と、
前記サンプルの１つまたは複数のグループと、前記ブロックのコーディングモードと、前記決定されたクロマサブサンプリング画像フォーマットとに少なくとも部分的に基づいて、前記ブロックを再構成することと
を行うように構成されたプロセッサと
を備える、デバイス。
【請求項２２】
前記サンプルの１つまたは複数のグループの各サンプルは、前記ブロックの残差値の色成分に対応する、
請求項２１に記載のデバイス。
【請求項２３】
前記プロセッサは、
有意値を有する前記サンプルの１つまたは複数のグループの最後のサンプルの位置を示す前記ビットストリーム中の信号を識別することと、
前記受信されたビットストリームを使用して、前記最後のサンプルの前記位置より前の位置を有する１つまたは複数のサンプルを再構成することと、
前記最後のサンプルの前記位置の後の位置を有する１つまたは複数の残りのサンプルを所定の値を有するものとして再構成することと
を行うようにさらに構成された、請求項２１に記載のデバイス。
【請求項２４】
前記プロセッサは、
前記受信されたビットストリームから、前記サンプルの１つまたは複数のグループのうちのサンプルのグループに対応するプレフィックスと１つまたは複数のサフィックスとを識別することと、
前記１つまたは複数のサフィックスの各々の長さを決定するために前記プレフィックスを復号することと、
前記サンプルのグループのうちの１つまたは複数の対応するサンプルの値を決定するために、前記１つまたは複数のサフィックスを並列に復号することと
を行うようにさらに構成された、請求項２１に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本開示は、ビデオコーディングおよび圧縮の分野に関し、詳細には、ディスプレイストリーム圧縮（ＤＳＣ：display stream compression）など、ディスプレイリンクを介した送信のためのビデオ圧縮に関する。
【背景技術】
【０００２】
[0002]デジタルビデオ機能は、デジタルテレビジョン、携帯情報端末（ＰＤＡ）、ラップトップコンピュータ、デスクトップモニタ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるディスプレイに組み込まれ得る。適切なソースデバイスにディスプレイを接続するために、ディスプレイリンクが使用される。ディスプレイリンクの帯域幅要件はディスプレイの解像度に比例し、したがって、高解像度ディスプレイは、大きい帯域幅のディスプレイリンクを必要とする。いくつかのディスプレイリンクは、高解像度ディスプレイをサポートするための帯域幅を有しない。高解像度ディスプレイにデジタルビデオを与えるためにより低い帯域幅のディスプレイリンクが使用され得るように帯域幅要件を低減するために、ビデオ圧縮が使用され得る。
【０００３】
[0003]他のものが、ピクセルデータに対して画像圧縮を利用することを試みた。しかしながら、そのような方式は、時々視覚的ロスレスでないか、または従来のディスプレイデバイスにおいて実装することが困難で費用がかかることがある。
【０００４】
[0004]ビデオエレクトロニクス規格協会（ＶＥＳＡ：Video Electronics Standards Association）は、ディスプレイリンクビデオ圧縮のための規格として、ディスプレイストリーム圧縮（ＤＳＣ）を開発した。ＤＳＣなど、ディスプレイリンクビデオ圧縮技法は、特に、視覚的ロスレスであるピクチャ品質（すなわち、圧縮がアクティブであることをユーザがわからないような品質のレベルを有するピクチャ）を与えるべきである。ディスプレイリンクビデオ圧縮技法はまた、従来のハードウェアを用いてリアルタイムに実装することが容易で費用がかからない方式を与えるべきである。
【発明の概要】
【０００５】
[0005]本開示のシステム、方法およびデバイスは、それぞれいくつかの発明的態様を有し、それらのうちの単一の態様が、本明細書で開示される望ましい属性を単独で担当するとは限らない。
【０００６】
[0006]一態様では、ビデオデータをエントロピー符号化する方法は、ビデオデータのブロックのクロマサブサンプリング画像フォーマットを決定することを伴い得る。本方法は、ブロックのコーディングモードと、サンプルのクロマサブサンプリング画像フォーマットとに少なくとも部分的に基づいて、ビデオデータのブロックをサンプルの１つまたは複数のグループに区分することを伴い得る。本方法は、１つまたは複数のグループのうちの少なくとも１つのグループ中のサンプルのすべてが所定の値に等しい値を有することに応答して、少なくとも１つのグループに対してグループ単位スキップを実行することを介してブロックをエントロピー符号化することを伴い得、グループ単位スキップは、少なくとも１つのグループに関連するサンプルを符号化することを控えることを備える。また、本方法のいくつかの態様を実行するためのデバイスが提供される。
【０００７】
[0007]別の態様では、ビデオデータをエントロピー復号する方法は、ビデオデータのブロックを表すビットストリームを受信することを伴い得、ブロックは、サンプルの１つまたは複数のグループを備え、ビットストリームは、ブロックのサンプルの対応するグループがビットストリーム中に含まれないことを示す少なくとも１つのグループ単位スキップ値を含む。本方法は、グループ単位スキップ値に少なくとも部分的に基づいてビットストリームをエントロピー復号することを介してサンプルの１つまたは複数のグループを生成することを伴い得る。本方法は、サンプルのクロマサブサンプリング画像フォーマットを決定することを伴い得る。本方法は、サンプルの１つまたは複数のグループと、ブロックのコーディングモードと、クロマサブサンプリング画像フォーマットとに少なくとも部分的に基づいて、ブロックを再構成することを伴い得る。また、本方法のいくつかの態様を実行するためのデバイスが提供される。
【０００８】
[0008]別の態様では、ビデオデータをエントロピー符号化する方法が提供される。本方法は、ビデオデータのブロックの色成分に関連する複数のサンプルを受信することを備える。本方法は、サンプルがブロック単位スキップを使用して符号化されるべきであるかどうかを決定することをさらに備え得る。その決定は、色成分に対応するすべてのサンプルが所定の値に等しい値を有するかどうかを決定することを備え得、ブロック単位スキップは、複数のサンプルを符号化することを控えることを備える。本方法は、サンプルがブロック単位スキップを使用して符号化されるべきでないと決定したことに応答して、ブロックのクロマサブサンプリング画像フォーマットを決定することをさらに備え得る。本方法は、ビデオデータのブロックをサンプルの１つまたは複数のグループに区分することをさらに備え得、ここにおいて、１つまたは複数のグループのグループの数が、ブロックのコーディングモードと、サンプルのクロマサブサンプリング画像フォーマットと、サンプルに関連する色成分とに少なくとも部分的に基づく。本方法は、サンプルの１つまたは複数のグループをエントロピー符号化することをさらに備え得る。
【０００９】
[0009]別の態様では、ビデオデータをエントロピー符号化するためのデバイスが提供される。本デバイスは、ビデオデータを記憶するように構成されたメモリを備える。本デバイスは、メモリと通信しているプロセッサをさらに備える。プロセッサは、ビデオデータのブロックの色成分に関連する複数のサンプルを受信するように構成される。プロセッサは、サンプルがブロック単位スキップを使用して符号化されるべきであるかどうかを決定するようにさらに構成され、ブロック単位スキップは、複数のサンプルを符号化することを控えることを備える。その決定は、色成分に対応するすべてのサンプルが所定の値に等しい値を有するかどうかを決定することを備える。プロセッサは、サンプルがブロック単位スキップを使用して符号化されるべきでないという決定に応答して、ビデオデータのブロックのクロマサブサンプリング画像フォーマットを決定するようにさらに構成される。プロセッサは、ビデオデータのブロックをサンプルの１つまたは複数のグループに区分するようにさらに構成される。１つまたは複数のグループのグループの数が、ブロックのコーディングモードと、サンプルのクロマサブサンプリング画像フォーマットと、サンプルに関連する色成分とに少なくとも部分的に基づく。プロセッサは、サンプルの１つまたは複数のグループをエントロピー符号化するようにさらに構成される。
【００１０】
[0010]別の態様では、ビデオデータをエントロピー復号する方法が提供される。本方法は、ビデオデータのブロックを表すビットストリームを受信することを備える。本方法は、ブロックの色成分に対応するサンプルがビットストリーム中に含まれないことを示す、ブロックの色成分のためのブロック単位スキップフラグが示されたかどうかを決定することをさらに備える。本方法は、ブロック単位スキップフラグが示されなかったという決定に応答して、サンプルのクロマサブサンプリング画像フォーマットを決定することをさらに備える。本方法は、ビットストリームをエントロピー復号することを介してサンプルの１つまたは複数のグループを生成することをさらに備える。１つまたは複数のグループの数が、クロマサブサンプリング画像フォーマットと、サンプルに関連する色成分とに基づく。本方法は、サンプルの１つまたは複数のグループと、ブロックのコーディングモードと、クロマサブサンプリング画像フォーマットとに少なくとも部分的に基づいて、ブロックを再構成することをさらに備える。
【００１１】
[0011]別の態様では、ビデオデータをエントロピー復号するためのデバイスが提供される。本デバイスは、ビデオデータのブロックを表すビットストリームの少なくとも一部分を記憶するように構成されたメモリを備える。本デバイスは、メモリと通信しているプロセッサをさらに備える。プロセッサは、ブロックの色成分に対応するサンプルがビットストリーム中に含まれないことを示す、ブロックの色成分のためのブロック単位スキップフラグが示されたかどうかを決定するように構成される。プロセッサは、ブロック単位スキップフラグが示されなかったという決定に応答して、サンプルのクロマサブサンプリング画像フォーマットを決定するようにさらに構成される。プロセッサは、ビットストリームをエントロピー復号することを介してサンプルの１つまたは複数のグループを生成するようにさらに構成され、ここにおいて、１つまたは複数のグループの数が、クロマサブサンプリング画像フォーマットと、サンプルに関連する色成分とに基づく。プロセッサは、サンプルの１つまたは複数のグループと、ブロックのコーディングモードと、クロマサブサンプリング画像フォーマットとに少なくとも部分的に基づいて、ブロックを再構成するようにさらに構成される。
【図面の簡単な説明】
【００１２】
【図１Ａ】[0012]本開示で説明される態様による技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図１Ｂ】本開示で説明される態様による技法を実行し得る別の例示的なビデオ符号化および復号システムを示すブロック図。
【図２Ａ】本開示で説明される態様による技法を実装し得るビデオエンコーダの一例を示すブロック図。
【図２Ｂ】本開示で説明される態様による技法を実装し得るビデオデコーダの一例を示すブロック図。
【図３】本開示で説明される態様による、予測コーディングモードのためのブロックを区分する方法を示す図。
【図４】本開示で説明される態様による、変換係数コーディングモードのためのブロックを区分する方法を示す図。
【図５】本開示で説明される態様による、変換係数コーディングモードのためのブロックを区分する方法を示す図。
【図６】本開示で説明される態様による、変換係数コーディングモードのためのブロックを区分する方法を示す図。
【図７】本開示で説明される態様による、変換係数コーディングモードのためのブロックを区分する方法を示す図。
【図８】本開示で説明される態様による、変換係数コーディングモードのためのブロックを区分する別の方法を示す図。
【図９】本開示で説明される態様による、ブロックを区分する方法を示す図。
【図１０】本開示で説明される態様による、ブロックを区分する方法を示す図。
【図１１】本開示で説明される態様による、ブロックを区分する方法を示す図。
【図１２Ａ】量子化変換係数のコーディングのためのクロマ成分のための例示的なグルーピング技法を示す図。
【図１２Ｂ】量子化変換係数のコーディングのためのクロマ成分のための例示的なグルーピング技法を示す図。
【図１３Ａ】量子化ブロック残差のコーディングのためのクロマ成分のための例示的なグルーピング技法を示す図。
【図１３Ｂ】量子化ブロック残差のコーディングのためのクロマ成分のための例示的なグルーピング技法を示す図。
【図１４】いくつかの実施形態による、本明細書で説明される技法を使用してビデオデータのブロックを符号化するための例示的なプロセスのフローチャート。
【図１５】いくつかの実施形態による、プレフィックス予測のための例示的な方法のフローチャート。
【図１６】いくつかの実施形態による、ビデオデータのブロックをエントロピー符号化するための例示的な方法のフローチャート。
【図１７】いくつかの実施形態による、ビデオデータのブロックをエントロピー復号するための例示的な方法のフローチャート。
【発明を実施するための形態】
【００１３】
[0026]概して、本開示は、ディスプレイストリーム圧縮（ＤＳＣ）などのビデオ圧縮技法を改善する方法に関する。より詳細には、本開示は、非４：４：４クロマサブサンプリング画像フォーマットを含む、ビデオデータブロックをサンプルの複数のグループに区分することを含むエントロピーコーディングのためのシステムおよび方法に関する。
【００１４】
[0027]いくつかの実施形態は、ＤＳＣ規格のコンテキストにおいて本明細書で説明されるが、本明細書で開示されるシステムおよび方法が任意の好適なビデオコーディング規格に適用可能であり得ることを、当業者は諒解されよう。たとえば、本明細書で開示される実施形態は、以下の規格、すなわち、国際電気通信連合（ＩＴＵ）電気通信標準化部門（ＩＴＵ−Ｔ）Ｈ．２６１、国際標準化機構／国際電気標準会議（ＩＳＯ／ＩＥＣ）ムービングピクチャエキスパートグループ１（ＭＰＥＧ−１）Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４、高効率ビデオコーディング（ＨＥＶＣ）のうちの１つまたは複数、およびそのような規格に対する任意の拡張に適用可能であり得る。また、本開示で説明される技法は、将来開発される規格の一部になり得る。言い換えれば、本開示で説明される技法は、前に開発されたビデオコーディング規格、現在開発中のビデオコーディング規格、および次のビデオコーディング規格に適用可能であり得る。
【００１５】
[0028]エントロピーコーディングは、概して、情報の各一意のシンボルを可変長コードワードで表すことを含む、情報をコーディングする方法である。エントロピーコーディングでは、より一般的なシンボルは、一般に、より短いコードワードを使用して表される。したがって、より一般的なシンボルは、より短いコードワードの使用に基づいてより少数のビットを使用して表されるので、情報は圧縮され得る。
【００１６】
[0029]ＤＳＣ規格のバージョン１．０は、デルタサイズユニット可変長コーディング（ＤＳＵ−ＶＬＣ：delta size unit-variable length coding）セマンティクスを提案する。ＤＳＣ規格のバージョン１．０では、各ＤＳＵ−ＶＬＣユニットは、プレフィックス部分とサフィックス部分とを使用して、ピクセルのグループの残差値をコーディングする。本開示の少なくとも１つの態様は、（以下では一般にＤＳＵ−ＶＬＣと互換的に呼ばれる）ＤＳＵ−ＶＬＣスタイルコーディングセマンティクスへのエントロピーコーディング原理の組込みに関する。したがって、本開示の少なくとも１つの態様は、エントロピーコーディングに関連するコーディング効率をＤＳＵ−ＶＬＣセマンティクスに統合することができる。
【００１７】
[0030]ハフマンコード、算術コード、指数ゴロムコード、ライスコードなど、いくつかの普及しているエントロピーコーディング技法が存在する。しかしながら、これらの技法は、一般に、高解像度ディスプレイおよびパネルなど、いくつかの適用例にはあまりに低いことがある１サンプル／クロックの限られたスループットを有する。すなわち、従来のコーディングハードウェアは、ＤＳＣ規格など、あるコーディング規格において望ましいように、視覚的ロスレスコーディングレートを維持しながら、普及しているエントロピーコーディング技法を利用することが可能であるほど十分なクロックレートを有しないことがある。したがって、本開示の少なくとも１つの態様は、より高いスループット、たとえば、４サンプル／クロックのスループットを有するエントロピーコーディング技法に関する。本開示の別の態様は、非４：４：４クロマサブサンプリング画像フォーマットのための高スループットエントロピーコーディング技法の拡張に関する。たとえば、本明細書で開示される技法は、４：２：２および４：２：０クロマサブサンプリングに適用可能である。  
ビデオコーディング規格
【００１８】
[0031]ビデオ画像、ＴＶ画像、静止画像、あるいはビデオレコーダまたはコンピュータによって生成された画像など、デジタル画像は、水平ラインおよび垂直ラインで構成されたピクセルまたはサンプルを含み得る。単一の画像中のピクセルの数は一般に数万個である。各ピクセルは、一般に、ルミナンス情報とクロミナンス情報とを含んでいる。圧縮がなければ、画像エンコーダから画像デコーダに搬送されるべき情報の甚だしい量は、リアルタイム画像送信を実行不可能にするであろう。送信されるべき情報の量を低減するために、ＪＰＥＧ、ＭＰＥＧおよびＨ．２６３規格など、いくつかの異なる圧縮方法が開発された。
【００１９】
[0032]ビデオコーディング規格は、ＩＴＵ−Ｔ  Ｈ．２６１と、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌと、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌと、ＩＴＵ−Ｔ  Ｈ．２６３と、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌと、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４と、そのような規格の拡張を含むＨＥＶＣとを含む。
【００２０】
[0033]さらに、ＶＥＳＡによって、あるビデオコーディング規格、すなわち、ＤＳＣが開発された。ＤＳＣ規格は、ディスプレイリンクを介した送信のためにビデオを圧縮することができるビデオ圧縮規格である。ディスプレイの解像度が増加するにつれて、ディスプレイを駆動するために必要とされるビデオデータの帯域幅は、対応して増加する。いくつかのディスプレイリンクは、そのような解像度についてディスプレイにビデオデータのすべてを送信するための帯域幅を有しないことがある。したがって、ＤＳＣ規格は、ディスプレイリンクを介した相互運用可能な、視覚的ロスレス圧縮のための圧縮規格を規定する。
【００２１】
[0034]ＤＳＣ規格は、Ｈ．２６４およびＨＥＶＣなど、他のビデオコーディング規格とは異なる。ＤＳＣは、フレーム内圧縮を含むが、フレーム間圧縮を含まず、これは、ビデオデータをコーディングする際にＤＳＣ規格によって時間的情報が使用されないことがあることを意味する。対照的に、他のビデオコーディング規格は、それらのビデオコーディング技法においてフレーム間圧縮を採用し得る。  
ビデオコーディングシステム
【００２２】
[0035]添付の図面を参照しながら、新規のシステム、装置、および方法の様々な態様が以下でより十分に説明される。ただし、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示される任意の特定の構造または機能に限定されるものと解釈されるべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるように与えられる。本明細書の教示に基づいて、本開示の範囲は、本開示の他の態様とは無関係に実装されるにせよ、本開示の他の態様と組み合わせられるにせよ、本明細書で開示される新規のシステム、装置、および方法のいかなる態様をもカバーするものであることを、当業者は諒解されたい。たとえば、本明細書に記載される態様をいくつ使用しても、装置は実装され得、または方法は実施され得る。さらに、本開示の範囲は、本明細書に記載される本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーするものとする。本明細書で開示されるいかなる態様も請求項の１つまたは複数の要素によって実施され得ることを理解されたい。
【００２３】
[0036]本明細書では特定の態様が説明されるが、これらの態様の多くの変形および置換は本開示の範囲内に入る。好適な態様のいくつかの利益および利点が説明されるが、本開示の範囲は特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、様々なワイヤレス技術、システム構成、ネットワーク、および伝送プロトコルに広く適用可能であるものとし、それらのうちのいくつかが例として、図および好適な態様についての以下の説明において示される。発明を実施するための形態および図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。
【００２４】
[0037]添付の図面は例を示す。添付の図面中の参照番号によって示される要素は、以下の説明における同様の参照番号によって示される要素に対応する。本開示では、序数語（たとえば、「第１の」、「第２の」、「第３の」など）で始まる名前を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。むしろ、そのような序数語は、同じまたは同様のタイプの異なる要素を指すために使用されるにすぎない。
【００２５】
[0038]図１Ａは、本開示で説明される態様による技法を利用し得る例示的なビデオコーディングシステム１０を示すブロック図である。本明細書で使用され説明される「ビデオコーダ」または「コーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化とビデオ復号とを総称的に指すことがある。ビデオエンコーダおよびビデオデコーダに加えて、本出願で説明される態様は、トランスコーダ（たとえば、ビットストリームを復号し、別のビットストリームを再符号化することができるデバイス）およびミドルボックス（たとえば、ビットストリームを変更、変換、および／または場合によっては操作することができるデバイス）など、他の関係するデバイスに拡張され得る。
【００２６】
[0039]図１Ａに示されているように、ビデオコーディングシステム１０は、宛先デバイス１４によって後で復号されるべき符号化ビデオデータを生成するソースデバイス１２を含む。図１Ａの例では、ソースデバイス１２および宛先デバイス１４は、別個のデバイスを構成する。ただし、ソースデバイス１２および宛先デバイス１４は、図１Ｂの例に示されているように、同じデバイス上にあるかまたはそれの一部であり得ることに留意されたい。
【００２７】
[0040]もう一度図１Ａを参照すると、ソースデバイス１２および宛先デバイス１４は、それぞれ、デスクトップコンピュータ、ノートブック（たとえば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータ、ビデオストリーミングデバイス、アイウェアおよび／またはウェアラブルコンピュータなど、エンティティ（たとえば、人間、動物、および／または別の被制御デバイス）によって（に）装着可能な（または着脱自在に取付け可能な）デバイス、エンティティ内で消費、摂取、または配置され得るデバイスまたは装置などを含む、広範囲にわたるデバイスのいずれかを備え得る。様々な実施形態では、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され得る。
【００２８】
[0041]宛先デバイス１４は、復号されるべき符号化ビデオデータをリンク１６を介して受信し得る。リンク１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。図１Ａの例では、リンク１６は、ソースデバイス１２が符号化ビデオデータをリアルタイムで宛先デバイス１４に送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得る任意の他の機器を含み得る。
【００２９】
[0042]図１Ａの例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。いくつかの場合には、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、ビデオキャプチャデバイス、たとえばビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、図１Ｂの例に示されているように、いわゆる「カメラフォン」または「ビデオフォン」を形成し得る。ただし、本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例に適用され得る。
【００３０】
[0043]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオデータは、ソースデバイス１２の出力インターフェース２２を介して宛先デバイス１４に送信され得る。符号化ビデオデータは、さらに（または代替として）、復号および／または再生のための宛先デバイス１４または他のデバイスによる後のアクセスのためにストレージデバイス３１上に記憶され得る。図１Ａおよび図１Ｂに示されているビデオエンコーダ２０は、図２Ａに示されているビデオエンコーダ２０、または本明細書で説明される他のビデオエンコーダを備え得る。
【００３１】
[0044]図１Ａの例では、宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。いくつかの場合には、入力インターフェース２８は受信機および／またはモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、リンク１６を介しておよび／またはストレージデバイス３１から符号化ビデオデータを受信し得る。リンク１６を介して通信された、またはストレージデバイス３１上に与えられた符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ３０などのビデオデコーダが使用するための、ビデオエンコーダ２０によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体上に記憶された、またはファイルサーバに記憶された符号化ビデオデータに含まれ得る。図１Ａおよび図１Ｂに示されているビデオデコーダ３０は、図２Ｂに示されているビデオデコーダ３０、または本明細書で説明される他のビデオデコーダを備え得る。
【００３２】
[0045]ディスプレイデバイス３２は、宛先デバイス１４と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス３２は、復号ビデオデータをユーザに表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００３３】
[0046]関係する態様では、図１Ｂは例示的なビデオコーディングシステム１０’を示し、ここにおいて、ソースデバイス１２および宛先デバイス１４はデバイス１１上にあるかまたはそれの一部である。デバイス１１は、「スマート」フォンなどの電話ハンドセットであり得る。デバイス１１は、ソースデバイス１２および宛先デバイス１４と動作可能に通信している（随意に存在する）プロセッサ／コントローラデバイス１３を含み得る。図１Ｂのビデオコーディングシステム１０’およびそれの構成要素は、場合によっては図１Ａのビデオコーディングシステム１０およびそれの構成要素と同様である。
【００３４】
[0047]ビデオエンコーダ２０およびビデオデコーダ３０は、ＤＳＣなど、ビデオ圧縮規格に従って動作し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ１０，ＡＶＣと呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格、ＨＥＶＣなど、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例としては、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００３５】
[0048]図１Ａおよび図１Ｂの例には示されていないが、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００３６】
[0049]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するために１つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダの一部として統合され得る。  
ビデオコーディングプロセス
【００３７】
[0050]上記で手短に述べられたように、ビデオエンコーダ２０はビデオデータを符号化する。ビデオデータは１つまたは複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。いくつかの事例では、ピクチャはビデオ「フレーム」と呼ばれることがある。ビデオエンコーダ２０がビデオデータを符号化するとき、ビデオエンコーダ２０はビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化表現を形成するビットのシーケンスを含み得る。ビットストリームは、コード化ピクチャと関連データとを含み得る。コード化ピクチャはピクチャのコード化表現である。
【００３８】
[0051]ビットストリームを生成するために、ビデオエンコーダ２０は、ビデオデータ中の各ピクチャに対して符号化演算を実行し得る。ビデオエンコーダ２０がピクチャに対して符号化演算を実行するとき、ビデオエンコーダ２０は、一連のコード化ピクチャと関連データとを生成し得る。関連データは、量子化パラメータ（ＱＰ）などのコーディングパラメータのセットを含み得る。コード化ピクチャを生成するために、ビデオエンコーダ２０は、ピクチャを等しいサイズのビデオブロックに区分し得る。ビデオブロックはサンプルの２次元アレイであり得る。コーディングパラメータは、ビデオデータのあらゆるブロックについてコーディングオプション（たとえば、コーディングモード）を定義し得る。コーディングオプションは、所望のレートひずみ性能を達成するために選択され得る。
【００３９】
[0052]いくつかの例では、ビデオエンコーダ２０はピクチャを複数のスライスに区分し得る。スライスの各々は、画像またはフレーム中の領域の残りからの情報なしに独立して復号され得る、画像（たとえば、フレーム）中の空間的に別個の領域を含み得る。各画像またはビデオフレームは単一のスライス中で符号化され得るか、あるいは各画像またはビデオフレームはいくつかのスライス中で符号化され得る。ＤＳＣでは、各スライスを符号化するために割り振られるターゲットビットは、実質的に一定であり得る。ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ２０は、ピクチャの各スライスに対して符号化演算を実行し得る。ビデオエンコーダ２０がスライスに対して符号化演算を実行するとき、ビデオエンコーダ２０は、スライスに関連付けられた符号化データを生成し得る。スライスに関連付けられた符号化データは「コード化スライス」と呼ばれることがある。  
ＤＳＣビデオエンコーダ
【００４０】
[0053]図２Ａは、本開示で説明される態様による技法を実装し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、本開示の技法の一部または全部を実行するように構成され得る。いくつかの例では、本開示で説明される技法は、ビデオエンコーダ２０の様々な構成要素間で共有され得る。いくつかの例では、追加または代替として、プロセッサ（図示せず）が、本開示で説明される技法の一部または全部を実行するように構成され得る。
【００４１】
[0054]説明の目的で、本開示は、ＤＳＣコーディングのコンテキストにおいてビデオエンコーダ２０について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【００４２】
[0055]図２Ａの例では、ビデオエンコーダ２０は複数の機能構成要素を含む。ビデオエンコーダ２０の機能構成要素は、色空間変換器１０５と、バッファ１１０と、平坦度検出器１１５と、レートコントローラ１２０と、予測器、量子化器、および再構成器構成要素１２５と、ラインバッファ１３０と、インデックスカラー履歴１３５と、エントロピーエンコーダ１４０と、サブストリームマルチプレクサ１４５と、レートバッファ１５０とを含む。他の例では、ビデオエンコーダ２０は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【００４３】
[0056]色空間変換器１０５は、入力色空間をコーディング実装形態において使用される色空間に変換し得る。たとえば、例示的な一実施形態では、入力ビデオデータの色空間は、赤、緑、および青（ＲＧＢ）色空間中にあり、コーディングは、ルミナンスＹ、クロミナンスグリーンＣｇ、およびクロミナンスオレンジＣｏ（ＹＣｇＣｏ）色空間において実装される。色空間変換は、ビデオデータへのシフトおよび追加を含む（１つまたは複数の）方法によって実行され得る。他の色空間中の入力ビデオデータが処理され得、他の色空間への変換も実行され得ることに留意されたい。
【００４４】
[0057]関係する態様では、ビデオエンコーダ２０は、バッファ１１０、ラインバッファ１３０、および／またはレートバッファ１５０を含み得る。たとえば、バッファ１１０は、色空間変換されたビデオデータを、ビデオエンコーダ２０の他の部分によるそれの使用に先立って保持し得る。別の例では、色空間変換されたデータはより多くのビットを必要とし得るので、ビデオデータはＲＧＢ色空間中で記憶され得、色空間変換が必要に応じて実行され得る。
【００４５】
[0058]レートバッファ１５０は、ビデオエンコーダ２０においてレート制御機構の一部として機能し得、このことは、レートコントローラ１２０に関して以下でより詳細に説明される。各ブロックを符号化することに費やされるビットは、大いに、実質的に、ブロックの性質に基づいて変動することがある。レートバッファ１５０は、圧縮されたビデオにおけるレート変動を平滑化することができる。いくつかの実施形態では、ビットが固定ビットレート（ＣＢＲ）でバッファから取り出されるＣＢＲバッファモデルが採用される。ＣＢＲバッファモデルでは、ビデオエンコーダ２０がビットストリームにあまりに多くのビットを加えた場合、レートバッファ１５０はオーバーフローし得る。一方、ビデオエンコーダ２０は、レートバッファ１５０のアンダーフローを防ぐために、十分なビットを加えなければならない。
【００４６】
[0059]ビデオデコーダ側では、ビットは、固定ビットレートでビデオデコーダ３０のレートバッファ１５５（以下でさらに詳細に説明される図２Ｂを参照）に加えられ得、ビデオデコーダ３０は、各ブロックについて可変数のビットを削除し得る。適切な復号を保証するために、ビデオデコーダ３０のレートバッファ１５５は、圧縮されたビットストリームの復号中に「アンダーフロー」または「オーバーフロー」すべきでない。
【００４７】
[0060]いくつかの実施形態では、バッファフルネス（ＢＦ）は、バッファに現在あるビットの数を表す値ＢｕｆｆｅｒＣｕｒｒｅｎｔＳｉｚｅと、レートバッファ１５０のサイズ、すなわち、任意の時点においてレートバッファ１５０に記憶され得るビットの最大数を表すＢｕｆｆｅｒＭａｘＳｉｚｅとに基づいて定義され得る。ＢＦは次のように計算され得る。  
ＢＦ＝（（ＢｕｆｆｅｒＣｕｒｒｅｎｔＳｉｚｅ＊１００）／ＢｕｆｆｅｒＭａｘＳｉｚｅ）
【００４８】
[0061]平坦度検出器１１５は、ビデオデータ中の複雑な（すなわち、平坦でない）エリアからビデオデータ中の平坦な（すなわち、単純なまたは均一な）エリアへの変化を検出することができる。「複雑な」および「平坦な」という用語は、本明細書では、概して、ビデオエンコーダ２０がビデオデータのそれぞれの領域を符号化することの困難さを指すために使用される。したがって、本明細書で使用される複雑なという用語は、概して、ビデオデータの領域が、ビデオエンコーダ２０が符号化することが複雑であることを表し、たとえば、テクスチャードビデオデータ、高い空間周波数、および／または符号化することが複雑である他の特徴を含み得る。本明細書で使用される平坦なという用語は、概して、ビデオデータの領域が、ビデオエンコーダ２０がエンコーダすることが単純であることを表し、たとえば、ビデオデータ中の滑らかな勾配、低い空間周波数、および／または符号化することが単純である他の特徴を含み得る。複雑な領域と平坦な領域との間の遷移が、符号化ビデオデータ中の量子化アーティファクトを低減するために、ビデオエンコーダ２０によって使用され得る。詳細には、レートコントローラ１２０、ならびに予測器、量子化器、および再構成器構成要素１２５は、複雑な領域から平坦な領域への遷移が識別されたとき、そのような量子化アーティファクトを低減することができる。
【００４９】
[0062]レートコントローラ１２０は、コーディングパラメータのセット、たとえば、ＱＰを決定する。ＱＰは、レートバッファ１５０がオーバーフローまたはアンダーフローしないことを保証するターゲットビットレートについてピクチャ品質を最大にするために、レートバッファ１５０のバッファフルネスとビデオデータの画像アクティビティとに基づいて、レートコントローラ１２０によって調整され得る。レートコントローラ１２０はまた、最適レートひずみ性能を達成するために、ビデオデータの各ブロックについて特定のコーディングオプション（たとえば、特定のモード）を選択する。レートコントローラ１２０は、再構成された画像のひずみを、それがビットレート制約を満たすように、すなわち、全体的実コーディングレートがターゲットビットレート内に収まるように最小限に抑える。
【００５０】
[0063]予測器、量子化器、および再構成器構成要素１２５は、ビデオエンコーダ２０の少なくとも３つの符号化演算を実行し得る。予測器、量子化器、および再構成器構成要素１２５は、いくつかの異なるモードで予測を実行し得る。１つの例示的な予測モードは、メディアン適応予測の変更バージョンである。メディアン適応予測はロスレスＪＰＥＧ規格（ＪＰＥＧ−ＬＳ）によって実装され得る。予測器、量子化器、および再構成器構成要素１２５によって実行され得るメディアン適応予測の変更バージョンは、３つの連続するサンプル値の並列予測を可能にし得る。別の例示的な予測モードはブロック予測である。ブロック予測では、サンプルは、上のライン中の、または同じライン中の左側の前に再構成されたピクセルから予測される。いくつかの実施形態では、ビデオエンコーダ２０およびビデオデコーダ３０は、両方とも、ブロック予測使用を決定するために、再構成されたピクセルに対して同じ探索を実行し得、したがって、ビットはブロック予測モードで送られる必要がない。他の実施形態では、ビデオエンコーダ２０は、探索を実行し、ビットストリーム中でブロック予測ベクトルをシグナリングし得、したがって、ビデオデコーダ３０は、別個の探索を実行する必要がない。成分範囲の中点を使用してサンプルが予測される中点予測モードも実装され得る。中点予測モードは、ワーストケースサンプルにおいてさえも、圧縮されたビデオに必要なビットの数の制限を可能にし得る。図３〜図６を参照しながら以下でさらに説明されるように、予測器、量子化器、および再構成器構成要素１２５は、図３〜図６に示されている方法を実行することによってビデオデータのブロック（または予測の他のユニット）を予測（たとえば、符号化または復号）するように構成され得る。
【００５１】
[0064]予測器、量子化器、および再構成器構成要素１２５はまた、量子化を実行する。たとえば、量子化は、シフタを使用して実装され得る２のべき乗量子化器（power-of-2 quantizer）を介して実行され得る。２のべき乗量子化器の代わりに他の量子化技法が実装され得ることに留意されたい。予測器、量子化器、および再構成器構成要素１２５によって実行される量子化は、レートコントローラ１２０によって決定されたＱＰに基づき得る。最終的に、予測器、量子化器、および再構成器構成要素１２５はまた、予測値に逆量子化残差を加算することと、結果がサンプル値の有効範囲の外側にないことを保証することとを含む再構成を実行する。
【００５２】
[0065]予測器、量子化器、および再構成器構成要素１２５によって実行される予測、量子化、および再構成に対する上記で説明された例示的な手法は、例示的なものにすぎず、他の手法が実装され得ることに留意されたい。また、予測器、量子化器、および再構成器構成要素１２５は、予測、量子化、および／または再構成を実行するための（１つまたは複数の）副構成要素を含み得ることに留意されたい。さらに、予測、量子化、および／または再構成は、予測器、量子化器、および再構成器構成要素１２５の代わりにいくつかの別個のエンコーダ構成要素によって実行され得ることに留意されたい。
【００５３】
[0066]ラインバッファ１３０は、予測器、量子化器、および再構成器構成要素１２５ならびにインデックスカラー履歴１３５が、バッファされたビデオデータを使用することができるように、予測器、量子化器、および再構成器構成要素１２５からの出力を保持する。インデックスカラー履歴１３５は、最近使用されたピクセル値を記憶する。これらの最近使用されたピクセル値は、専用シンタックスを介してビデオエンコーダ２０によって直接参照され得る。
【００５４】
[0067]エントロピーエンコーダ１４０は、インデックスカラー履歴１３５と、平坦度検出器１１５によって識別された平坦度遷移とに基づいて、予測器、量子化器、および再構成器構成要素１２５から受信された予測残差および他のデータ（たとえば、予測器、量子化器、および再構成器構成要素１２５によって識別されたインデックス）を符号化する。いくつかの例では、エントロピーエンコーダ１４０は、サブストリームエンコーダごとにクロックごとに３つのサンプルを符号化し得る。サブストリームマルチプレクサ１４５は、ヘッダレスパケット多重化方式に基づいてビットストリームを多重化し得る。これは、ビデオデコーダ３０が並列に３つのエントロピーデコーダを動作させることを可能にし、クロックごとの３つのピクセルの復号を可能にする。サブストリームマルチプレクサ１４５は、パケットがビデオデコーダ３０によって効率的に復号され得るようにパケット順序を最適化し得る。クロックごとの２のべき乗個のピクセル（たとえば、２ピクセル／クロックまたは４ピクセル／クロック）の復号を可能にし得る、エントロピーコーディングに対する異なる手法が実装され得ることに留意されたい。  
ＤＳＣビデオデコーダ
【００５５】
[0068]図２Ｂは、本開示で説明される態様による技法を実装し得るビデオデコーダ３０の一例を示すブロック図である。ビデオデコーダ３０は、本開示の技法の一部または全部を実行するように構成され得る。いくつかの例では、本開示で説明される技法は、ビデオデコーダ３０の様々な構成要素間で共有され得る。いくつかの例では、追加または代替として、プロセッサ（図示せず）が、本開示で説明される技法の一部または全部を実行するように構成され得る。
【００５６】
[0069]説明の目的で、本開示では、ＤＳＣコーディングのコンテキストにおいてビデオデコーダ３０について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【００５７】
[0070]図２Ｂの例では、ビデオデコーダ３０は複数の機能構成要素を含む。ビデオデコーダ３０の機能構成要素は、レートバッファ１５５と、サブストリームデマルチプレクサ１６０と、エントロピーデコーダ１６５と、レートコントローラ１７０と、予測器、量子化器、および再構成器構成要素１７５と、インデックスカラー履歴１８０と、ラインバッファ１８５と、色空間変換器１９０とを含む。ビデオデコーダ３０の図示された構成要素は、図２Ａ中のビデオエンコーダ２０に関して上記で説明された対応する構成要素に類似する。したがって、ビデオデコーダ３０の構成要素の各々は、上記で説明されたビデオエンコーダ２０の対応する構成要素と同様の様式で動作し得る。  
ＤＳＣにおけるスライス
【００５８】
[0071]上述のように、スライスは、概して、画像またはフレーム中の領域の残りからの情報を使用することなしに独立して復号され得る、画像またはフレーム中の空間的に別個の領域を指す。各画像またはビデオフレームは単一のスライス中で符号化され得るか、あるいは各画像またはビデオフレームはいくつかのスライス中で符号化され得る。ＤＳＣでは、各スライスを符号化するために割り振られるターゲットビットは、実質的に一定であり得る。  
量子化パラメータ（ＱＰ）
【００５９】
[0072]上記で説明されたように、ビデオコーディングは、たとえば、予測器、量子化器、および再構成器構成要素１２５を介した、ビデオデータの量子化を含み得る。量子化は信号に損失をもたらし得、損失の量は、レートコントローラ１２０によって決定されるＱＰによって制御され得る。各ＱＰのための量子化ステップサイズを記憶するのではなく、ＱＰの関数としてスケーリング行列が指定され得る。各ＱＰのための量子化ステップサイズはスケーリング行列から導出され得、導出された値は必ずしも２のべき乗とは限らず、すなわち、導出された値は２のべき乗でないこともある。  
スキップモード
【００６０】
[0073]所与のブロック中の単一の色座標のすべての値が０であるとき、ブロックの色座標値は、スキップモードを使用して効果的にコーディングされ得る。スキップモードコーディングのいくつかの実装形態では、現在ブロックの色成分の値が、スキップモードを使用してコーディングされるのか（現在ブロックの色成分のすべての値が０である場合）、スキップモードにないのか（現在ブロック色成分の値のうちの少なくとも１つが非０である場合）を示すために、１ビットフラグまたはスキップ値がデコーダにシグナリングされ得る。スキップモードでは、現在ブロックの色成分の値のすべてが０であるとき、１ビットフラグがデコーダにシグナリングされ得、コーダは、ブロックの色成分の値をコーディングすることを控え得る（すなわち、ブロックの色成分の値のコーディングがスキップされ得る）。スキップモードはまた、ブロックよりも小さいサイズを有する色成分の値のグループに、または複数のブロックのグループに適用され得る。スキップモードはまた、ブロックの各色成分について別々に適用され得、たとえば、現在ブロックの色成分の値のすべてが０であるとき、スキップモードは現在ブロックの色成分の値に適用され得る。いくつかの実装形態では、スキップモードは、グループまたはブロックの色成分のすべてに適用され得る。以下でより詳細に説明されるように、スキップモードはまた、ブロックよりも小さいユニットに適用され得る。  
ＤＳＣ  ｖ１．０におけるエントロピーコーディング
【００６１】
[0074]上記で説明されたように、ＤＳＣ  ｖ１．０では、ＤＳＵ−ＶＬＣが提案されている。ＤＳＵ−ＶＬＣでは、各ユニット（各グループが３つのピクセルを有する、１つのグループの色成分のサンプルを含むユニット）の残差値が、プレフィックス部分とサフィックス部分とを使用してコーディングされる。プレフィックス部分は、サフィックス部分において後続する残差値のサイズ（たとえば、ビットの数）を示し、サフィックス部分は、ユニット中の３つのサンプルの実際の残差値を示す。グループ中のすべての３つの残差値が、プレフィックス部分によって示される同じ数のビットを使用して２の補数でコーディングされる。
【００６２】
[0075]プレフィックス部分について、現在ユニットの残差値の実際のサイズをコーディングする代わりに、プレフィックス値が予測コーディングされ、ここで、現在ユニットの残差値のサイズは、同じ成分の前のユニットの残差値のサイズに基づいて、また、現在ユニットと前のユニットとの間の量子化パラメータの変化を考慮することによって、予測される。たとえば、値ｒｅｑｕｉｒｅｄＳｉｚｅ［０］、ｒｅｑｕｉｒｅｄＳｉｚｅ［１］およびｒｅｑｕｉｒｅｄＳｉｚｅ［２］が、それぞれ前のグループの量子化残差値の所要サイズを表すとする。このことから、予測サイズは次のように計算され得る。  
ｐｒｅｄｉｃｔｅｄＳｉｚｅ＝（ｒｅｑｕｉｒｅｄＳｉｚｅ［０］＋ｒｅｑｕｉｒｅｄＳｉｚｅ［１］＋２＊ｒｅｑｕｉｒｅｄＳｉｚｅ［２］＋２）＞＞２  
【００６３】
[0076]現在ユニットと前のユニットとの間の量子化パラメータの差を考慮することによって、予測サイズは次のように調整され得る。  
ａｄｊＰｒｅｄｉｃｔｅｄＳｉｚｅ＝ＣＬＡＭＰ（ｐｒｅｄｉｃｔｅｄＳｉｚｅ−ｑＬｅｖｅｌＣｈａｎｇｅ，０，ｍａｘＳｉｚｅ−１）  
【００６４】
[0077]ここで、値ｍａｘＳｉｚｅは現在色座標の最大可能残差値であり、ＣＬＡＭＰ関数は次のように定義される。  
ＣＬＡＭＰ（Ｘ，ＭＩＮ，ＭＡＸ）（（Ｘ）＞（ＭＡＸ）？（ＭＡＸ）：（（Ｘ）＜（ＭＩＮ）？（ＭＩＮ）：（Ｘ））
【００６５】
[0078]最終的に、現在ユニットの残差のサイズと予測サイズとの間の非負の差が単項コーディングされ得る。０値をコーディングすることによって負の差が示され、たとえば、残差のサイズの変化なし。
【００６６】
[0079]このコンテキストでは、ハフマンコード、算術コード、指数ゴロムコード、ライスコードなど、既存のエントロピーコーディング技法は、いくつかの適用例、たとえば、高解像度ディスプレイおよびパネルにはあまりに低いことがある１サンプル／クロックの限られたスループットを有する。すなわち、従来のハードウェアを使用する、高解像度ディスプレイおよびパネル、たとえば、４Ｋディスプレイのためのビデオデータの視覚的ロスレスエントロピーコーディングは、経済的に実現可能でないことがある。
【００６７】
[0080]ＤＳＣのための既存の手法に関する上記で説明された問題を克服するために、本開示は、以下で改善について説明する。本開示では、以下の説明される技法および手法は、単独でまたは互いとの任意の組合せで使用され得る。
【００６８】
[0081]本開示の１つまたは複数の態様によれば、より高いスループット（たとえば、４サンプル／クロック）を与えるエントロピーコーディング技法が本明細書で説明される。一例では、本明細書で開示される技法は、４：４：４画像フォーマットに適用可能であり得る。ただし、他のスループット値も、特定の実装形態に基づいて達成され得る。
【００６９】
[0082]関係する態様では、低コスト、固定レートの視覚的ロスレス圧縮を与えるＤＳＣコーダが本明細書で開示される。本コーダは、（たとえば、ブロックサイズＰ×Ｑを用いる）ブロックベース手法に基づいて設計され、多数のコーディングモードのうちの１つまたは複数とともに実装され得る。たとえば、各ブロックのための利用可能なコーディングオプションは、変換モード（たとえば、ＤＣＴ、アダマール）、ブロック予測モード、差分パルスコード変調（ＤＰＣＭ：differential pulse-code modulation）モード、パターンモード、中点予測（ＭＰＰ：mid-point prediction）モード、および／または中点プレディケーションフォールバック（ＭＰＰＦ：mid-point predication fall back）モードを含む。異なるタイプのコンテンツまたは画像を圧縮するために、いくつかのコーディングモードが本コーダにおいて使用され得る。たとえば、テキスト画像はパターンモードを介して圧縮され得、加工していない画像（natural image）は変換モードを介してキャプチャされ得る。
【００７０】
[0083]さらなる関係する態様では、候補モードのレートとひずみの両方を考慮することによって各ブロックのための（１つまたは複数の）最適モードを選択するためのレート制御技法に基づいて、複数の候補コーディングモードの中から各ブロックのためのコーディングモードが選択され、利用され得る。レート制御技法は、バッファモデルを利用することを伴い得、コーデックの設計考慮事項は、バッファがアンダーフロー（たとえば、バッファ中で０ビットよりも少ない）またはオーバーフロー（たとえば、バッファサイズが、設定／定義された最大サイズを超えて増加した）の状態にないことを確実にすることを含み得る。
【００７１】
[0084]ＤＳＣ  ｖ１．０において実装されたＤＳＵ−ＶＬＣと比較して、本開示のエントロピーコーディング技法の特徴は、限定はしないが、以下を含み得る。
【００７２】
[0085]量子化ブロック残差のコーディング：スキップおよびＤＳＵ−ＶＬＣコーディングの原理は、各グループが少なくとも１つの非０値を有する場合のみ、各グループがＤＳＵ−ＶＬＣコーディングされるような方法で組み合わせられ得る。
【００７３】
[0086]変換係数のコーディング：各ブロックの量子化変換係数（たとえば、ディスクリートコサイン変換（ＤＣＴ））は、最初に量子化変換係数からグループを構成し、次いで、ＤＳＵ−ＶＬＣの同様の原理を使用して各グループをコーディングすることによって、コーディングされ得る。さらに、各グループの量子化変換係数をコーディングするために、スキップおよびＤＳＵ−ＶＬＣコーディングが組み合わせられ得る。
【００７４】
[0087]プレフィックス予測：現在グループのサイズは、たとえば、前のグループの最大所要サイズのみに基づいて予測され得る。さらに、サイズを予測するとともに、エントロピーコーディング技法は、特に量子化ステップサイズが２のべき乗でないとき、ＱＰの影響を監視し、考慮し、および／または要因として含め得る。
【００７５】
[0088]プレフィックスコーディング：現在サイズと予測サイズの負と正の両方の差がコーディングされ得る。
【００７６】
[0089]上記の態様に関するさらなる詳細が以下で与えられる。本明細書で説明されるエントロピーコーディング技法は、たとえば、ブロック中の各色成分をコーディングするために独立して適用され得ることに留意されたい。  
量子化ブロック残差のコーディング
【００７７】
[0090]図３は、本開示で説明される態様による、予測コーディングモード、たとえば、ブロックプレディケーションモードまたはＤＰＣＭモードのためのブロックを区分する方法を示す図である。図３の例では、ブロックは１６個のサンプル２０１〜２３１を含み、ここで、各サンプルは、たとえば、量子化残差である。一実装形態では、ブロック中の量子化残差２０１〜２３１の各成分は、たとえば、以下のステップに従ってエントロピーコーディングされ得る。図３に示された図はまた、予測コーディングモードのための複数の区分されたグループに基づいてブロックを再構成することに適用され得る。
【００７８】
[0091]ブロック中のサンプル２０１〜２３１は、図３の例に示されているように、４つのグループに区分され得る。ただし、ブロックは、任意の数のグループに区分され得る任意の数のサンプルを有し得る。さらに、本開示で説明されるエントロピーコーディング技法のスループットは、ブロック中のグループの数に関係し得る。実装形態に応じて、サンプル２０１〜２３１は、たとえば、１Ｄ予測残差、および／またはブロック予測残差、および／またはイントラ予測残差、および／または２Ｄメディアン適応予測残差（2D median adaptive predicted residual）であり得る。ただし、実施形態によっては、サンプルは他のタイプの残差を表すことがある。
【００７９】
[0092]図３の例には均一グルーピングストラテジーが示されているが、さらなる関係する態様では、各グループ中のサンプルの数が同じではない不均一グルーピングストラテジーが構成され得る。
【００８０】
[0093]以下の説明では、サンプルのグループは、中括弧で囲まれることによって示される。図３に示された例では、グループ１、２、３、および４は、それぞれサンプル｛２０１〜２０７｝、｛２０９〜２１５｝、｛２１７〜２２３｝、および｛２２５〜２３１｝で構成される。（図示されていない）別の例では、グループ１、２、３、および４は、それぞれサンプル｛２０１〜２０３｝、｛２０５〜２０９｝、｛２１１〜２１９｝、および｛２２１〜２３１｝で構成され得る。（図示されていない）また別の例では、グループ１、２、３、および４は、それぞれサンプル｛２０１｝、｛２０３〜２０７｝、｛２０９〜２１７｝、および｛２１９〜２３１｝で構成され得る。（図示されていない）また別の例では、グループ１、２、３、および４は、それぞれサンプル｛２０１｝、｛２０３および２０５｝、｛２０７〜２１７｝、および｛２１９〜２３１｝で構成され得る。（図示されていない）また別の例では、グループ１、２、３、および４は、それぞれサンプル｛２０１｝、｛２０３〜２０９｝、｛２１１〜２１９｝、および｛２２１〜２３１｝で構成され得る。ただし、サンプルの上記のグルーピングは例にすぎず、複数のグループへのブロックの区分の他の方法が実行され得る。
【００８１】
[0094]上記の説明は、ブロックを区分する際に使用され得るいくつかのグルーピング技法を例示および説明したが、ブロックを再構成するときには逆の技法が適用され得る。たとえば、ブロックが、図３に示されているようにサンプルの４つのグループに区分されたとき、ブロックは、サンプル２０１〜２３１を含むように再構成され得る。これは、各グループ中に同じ数のサンプルを有しない他の上記で説明されたグルーピングストラテジーにも適用される。
【００８２】
[0095]ブロック中の特定の色座標に関連するすべてのサンプルが０の値を有するとき、ブロックのその色座標に関連するそれらのサンプルはスキップモードを使用してコーディングされ得、たとえば、ブロック中の現在色座標がスキップモードを使用して符号化されるか否かを示すために、ブロックごとの（色座標ごとの）１ビットフラグがシグナリングされ得る。したがって、ブロックの対応する色座標がスキップモードを使用してコーディングされるかどうかを示すために、ブロックの各色座標について１ビットフラグがシグナリングされ得る。他の実装形態では、ブロック中の色座標のすべてについて、単一の１ビットフラグがシグナリングされ得る。本開示では、スキップモードを介したブロック中の現在色座標の符号化は、ブロック単位スキップモードと呼ばれる。
【００８３】
[0096]たとえば、ブロック単位スキップモードは、すべての３つの色座標に適用されるとは限らない。一実装形態では、ブロック単位スキップモードは、クロマ色座標のために適用されるが、ルーマ色座標のためには適用されない。
【００８４】
[0097]いくつかの実装形態では、少なくとも１つの非０値がブロック中の１つの色座標内に含まれているとき、エントロピーコーディング技法は、グループが１つの非０値を有する場合のみ、ＤＳＵ−ＶＬＣを使用して各グループをコーディングすることを伴い得る。たとえば、グループに関連する１ビットフラグまたはグループスキップ値が、そのグループがスキップモードを使用して符号化されるか否かを示すためにシグナリングされ得る。本開示では、スキップモードを介した各グループの符号化は、グループ単位スキップモードと呼ばれる。同様に、１ビットフラグまたはグループスキップ値の復号も、グループ単位スキップモードと呼ばれることがある。
【００８５】
[0098]いくつかの実装形態では、各グループについて、グループ内のサンプルのすべての値が０であるかどうかを決定するために探索が行われる。一例では、グループ中のすべての値が０であるとき、関連するグループ中のサンプルのすべての値が０に等しいことを示す対応するフラグ（たとえば、上記で参照された１ビットフラグ）を介して、値（たとえば、「１」の値）がデコーダにシグナリングされ得る。グループ中の少なくとも１つのサンプルが非０値を有するとき、対応するフラグを介して、値（たとえば、「０」の値）がデコーダにシグナリングされ、その後にグループのＤＳＵ−ＶＬＣコーディングが続き得る。言い換えれば、グループに関連する対応するフラグは、グループ内の少なくとも１つのサンプルが非０値を所有することを示す値とともにシグナリングされ得る。別の例では、グループ内のサンプルのすべての値が０であるとき、「０」の値がシグナリングされ得、グループが、非０値をもつ少なくとも１つのサンプルを含んでいるとき、「１」の値がシグナリングされ得る。ただし、実施形態によっては、グループ単位スキップモードが現在グループのために採用されたかどうかのシグナリングは、他の好適な様式で、たとえば、複数のビットを介して、グループ単位スキップが現在グループによって採用されたかどうかの指示をシグナリングすることによって、シグナリングされ得る。  
変換係数のコーディング
【００８６】
[0099]図４〜図７は、本開示で説明される態様による、変換係数コーディングモードのためのブロックを区分するための例示的な技法を示す図である。図４の例では、ブロックは１６個のサンプル２０１〜２３１を含み、ここで、各サンプルは、たとえば、イントラ予測残差またはブロック予測残差である。複数の変換係数Ｃ００〜Ｃ１５を取得するために、サンプル２０１〜２３１に変換が適用され得る。一実装形態では、ブロック中の量子化変換係数の各成分は、たとえば、以下のステップに従ってエントロピーコーディングされ得る。図４〜図７に示された図は、概して、変換コーディングモードのためのブロックを区分することに関して説明されるが、変換係数の図示されたグループを復号する際に逆のプロシージャが同じく実行され得る。
【００８７】
[0100]単一の成分のブロック中の量子化変換係数はＮ個のグループに区分され得る。一例では、Ｎは４であり、１×１６のブロックサイズを生じる。ブロックは、単一の１×１６ＤＣＴ変換（図４の要素３００）を使用して変換され得るか、あるいはブロックは、たとえば、１×８ＤＣＴ変換または１×４ＤＣＴ変換（図５〜図７を参照）など、（１つまたは複数の）異なる変換サイズを使用して変換され得る。これらの実装形態の各々において、Ｎ＝４グループの構成が以下で示される。ただし、他の実施形態では、グループＮの数は、変換係数の任意の好適な区分になるように選択され得る。
【００８８】
[0101]図４中の１６個のサンプル２０１〜２３１は、イントラ予測残差またはブロック予測残差を表し得ることに留意されたい。
【００８９】
[0102]本開示で説明される態様による、変換係数コーディングモードのためのブロックの区分の実施形態が、図４に示されている。図４の例では、１×１６ＤＣＴ変換３００を使用して変換される１６個のブロックサンプル２０１〜２３１から４つのグループが構成される。いくつかの実装形態では、サンプルに適用される変換は、アダマール変換などの任意の好適な変換であり得る。
【００９０】
[0103]図４に示されているように、ＤＣＴ変換は複数の変換係数Ｃ００〜Ｃ１５を生成する。いくつかの実装形態では、変換係数は、０周波数係数である直流（ＤＣ）係数Ｃ００から開始し、最高周波数係数Ｃ１５まで順序付けられる。図４に示されているように、変換係数は、４つのグループに区分またはグルーピングされる。本明細書で使用される「区分」および「グルーピング」という用語は、概して、サンプルまたは変換係数を一緒にグループに関連付けるプロセスを指し、必ずしもサンプルまたは変換係数を物理的に分離することを含むとは限らない。別段に記載されていない限り、本開示では、変換係数を表すために同様の順序付けが使用され得、ここで、グループ１中の第１の係数はＤＣ値を表し、複数の変換係数のうちの最後の変換係数は最高周波数成分に関連付けられ、残りの変換係数は、ＤＣ値と最高周波数成分との間で（関連付けられた周波数成分に関して）低から高に順序付けられる。図４の例では、グループ１は変換係数Ｃ００を含み、グループ２は変換係数Ｃ０１〜Ｃ０３を含み、グループ３は変換係数Ｃ０４〜Ｃ０７を含み、グループ４は変換係数Ｃ０８〜Ｃ１５を含む。したがって、値が「近い」周波数成分に関連付けられた周波数変換係数が一緒にグルーピングされ得る。たとえば、各グループは、対応するグループに関連付けられた周波数範囲内に入る周波数成分を表す変換係数を含めることによって定義され得る。どの周波数成分が一緒にグルーピングされるか（すなわち、どの変換係数が一緒にグルーピングされるか）の選択は、より高効率のコーディングを生じるグルーピングを決定するためのテストなど、様々な基準に基づいて選択され得る。
【００９１】
[0104]図５は、別の例による変換係数の区分（またはグルーピング）を示す図である。図５の例では、２つの１×８ＤＣＴ変換３０１および３０３がブロックサンプル２０１〜２３１に適用される。ただし、上記で説明されたように、他のタイプの変換が、本開示の態様から逸脱することなく適用され得る。
【００９２】
[0105]第１の１×８ＤＣＴ変換３０１は、第１の複数の変換係数Ｃ００〜Ｃ０７を生成し、第２の１×８ＤＣＴ変換３０３は、第２の複数の変換係数Ｃ１０〜Ｃ１７を生成する。各１×８ＤＣＴ変換から生じた、位置順序での対応する変換係数は、同じ周波数成分に関連付けられ得る。たとえば、変換係数Ｃ００およびＣ１０は両方ともＤＣ係数であり得、変換係数Ｃ０７およびＣ１７は最高周波数成分に関連付けられ得る。図５の例では、グループ１は変換係数Ｃ００およびＣ１０を含み、グループ２は変換係数Ｃ０１、Ｃ０２、Ｃ１１、およびＣ１２を含み、グループ３は変換係数Ｃ０３、Ｃ０４、Ｃ１３およびＣ１４を含み、グループ４は変換係数Ｃ０５〜Ｃ０７およびＣ１５〜Ｃ１７を含む。
【００９３】
[0106]図６は、別の例による変換係数の区分を示す図である。図６の例では、４つの１×４ＤＣＴ変換３０５〜３１１がブロックサンプル２０１〜２３１に適用される。ただし、上記で説明されたように、他のタイプの変換が、本開示の態様から逸脱することなく適用され得る。
【００９４】
[0107]第１の１×４ＤＣＴ変換３０５は第１の複数の変換係数Ｃ００〜Ｃ０３を生成し、第２の１×４ＤＣＴ変換３０７は第２の複数の変換係数Ｃ１０〜Ｃ１３を生成し、第３の１×４ＤＣＴ変換３０９は第３の複数の変換係数Ｃ２０〜Ｃ２３を生成し、第４の１×４ＤＣＴ変換３１１は第４の複数の変換係数Ｃ３０〜Ｃ３３を生成する。各１×４ＤＣＴ変換３０５〜３１１からの対応する変換係数は、同じ周波数に関連付けられ得る。たとえば、変換係数Ｃ００、Ｃ１０、Ｃ２０、およびＣ３０はＤＣ係数であり得、変換係数Ｃ０３、Ｃ１３、Ｃ２３、およびＣ３３は最高周波数係数に関連付けられ得る。図６の例では、グループ１は変換係数Ｃ００、Ｃ１０、Ｃ２０、およびＣ３０を含み、グループ２は変換係数Ｃ０１、Ｃ１１、Ｃ２１、およびＣ３１を含み、グループ３は変換係数Ｃ０２、Ｃ１２、Ｃ２２、およびＣ３２を含み、グループ４は変換係数Ｃ０３、Ｃ１３、Ｃ２３、およびＣ３３を含む。
【００９５】
[0108]図７は、別の例による変換係数の区分またはグルーピングを示す図である。図７の例では、２つの１×４ＤＣＴ変換３０５および３０７、ならびに１つの１×８ＤＣＴ変換３０３がブロックサンプル２０１〜２３１に適用される。ただし、上記で説明されたように、他のタイプの変換が、本開示の態様から逸脱することなく適用され得る。
【００９６】
[0109]第１の１×４ＤＣＴ変換３０５は第１の複数の変換係数Ｃ００〜Ｃ０３を生成し、第２の１×４ＤＣＴ変換３０７は第２の複数の変換係数Ｃ１０〜Ｃ１３を生成し、１×８ＤＣＴ変換３０３は第３の複数の変換係数Ｃ２０〜Ｃ２７を生成する。各ＤＣＴ変換３０５〜３０７からの対応する変換係数は、同じまたは同様の周波数を有し得る。たとえば、変換係数Ｃ００、Ｃ１０、およびＣ２０はＤＣ係数であり得る。図７の例では、グループ１は変換係数Ｃ００、Ｃ１０、およびＣ２０を含み、グループ２は変換係数Ｃ０１、Ｃ１１、Ｃ２１、およびＣ２２を含み、グループ３は変換係数Ｃ０２、Ｃ１２、Ｃ２３、およびＣ２４を含み、グループ４は変換係数Ｃ０３、Ｃ１３、Ｃ２５、Ｃ２６、およびＣ２７を含む。
【００９７】
[0110]いくつかの例が図５〜図７に関して説明されたが、変換係数の他の変換および区分も実装され得る。たとえば、１×８、１×４、および１×４変換が［８  ４  ４］などの順序で適用され得、または１×４、１×８、および１×４変換が［４  ８  ４］などの順序で適用され得る。さらに、図７の例と同様の方法を使用してグループが構成され得る。
【００９８】
[0111]他の実装形態では、４つのグループを構成するために線形グルーピング方法が使用され得、ここで、各グループは、グループごとに４つの変換係数を有することができる。たとえば、図４の例の一代替では、１×１６ＤＣＴ変換２００の適用の後、グループ１は第１の４つの変換係数Ｃ０〜Ｃ３を含んでいることがあり、グループ２は次の４つの変換係数Ｃ４〜Ｃ７を含んでいることがある、などである。図５の例の一代替では、１×８ＤＣＴ変換３０１および３０３の適用の後、各グループは、変換係数Ｃ００〜Ｃ０７およびＣ１０〜Ｃ１７の各セットから２つの係数を取ることによって構成され得る。たとえば、グループ１はＣ００、Ｃ１０、Ｃ０１、およびＣ１１を含んでいることがあり、グループ２はＣ０２、Ｃ０３、Ｃ１２、およびＣ１３を含んでいることがある、などである。図７の例の一代替では、１×４ＤＣＴ変換３０５および３０７、ならびに１×８ＤＣＴ変換３０３の適用の後、各グループは、変換係数Ｃ００〜Ｃ０３およびＣ１０〜Ｃ１３の２つのセットから各々１つの係数を取り、変換係数Ｃ２０〜Ｃ２７のセットから２つの係数を取ることによって、構成され得る。たとえば、グループ１はＣ００、Ｃ１０、Ｃ２０、およびＣ２１を含んでいることがあり、グループ２はＣ０１、Ｃ１１、Ｃ２２、およびＣ２３を含んでいることがある、などである。同様のグルーピングストラテジーが、たとえば、［８  ４  ４］、［４  ８  ４］など、他の区分変換選定のグループを構成するために実装され得る。
【００９９】
[0112]符号化のためのいくつかのグルーピング技法が図４〜図７に関して説明されたが、グループの復号は、図４〜図７を参照しながら説明された符号化技法の逆順で実行され得る。たとえば、変換係数のグループが、サンプル２０１〜２３１に適用された変換の数に基づいて再編成され得、同数の逆変換が、再編成された変換係数に適用され得る。再編成は、たとえば、各グループ中の変換係数の数、または変換係数を生成するために適用された変換のタイプおよび数のシグナリングに基づき得る。
【０１００】
[0113]いくつかの実装形態では、グルーピング構成の後、少なくとも１つの非０値を含んでいるグループのインデックスが逆方向スキャン順序で見つけられ得、たとえば、探索はグループ４、３、２、および１の順序で進む。少なくとも１つの非０値を含んでいるグループ（「有意」グループと呼ばれることもある）のインデックスは、デコーダにシグナリングされ得る。一例では、インデックスは、２ビット固定長コードを使用してシグナリングされ得る。別の例では、ハフマンなどの可変長コード（ＶＬＣ）あるいは指数ゴロムコードまたはライスコードなどの構造化ＶＬＣコードが使用され得る。
【０１０１】
[0114]（１つの非０値を有するグループを含む）残りのグループは、プレフィックス部分とサフィックス部分とを使用するＤＳＵ−ＶＬＣを使用してコーディングされ得、ここで、プレフィックスは、後続するサフィックスのサイズを示す。サフィックス部分では、グループ中の係数は、たとえば、同数のビットを使用してコーディングされ得る。
【０１０２】
[0115]別の手法では、上記の手法の代替またはそれに加えて、グループは、グループ単位スキップモードを使用してコーディングされ得、ここで、各グループについてスキップフラグまたはスキップ値がシグナリングされ得、各グループは、グループが少なくとも１つの非０値を有する場合のみ、ＤＳＵ−ＶＬＣコーディングされる。
【０１０３】
[0116]また別の手法では、上記の手法のうちの１つまたは複数の組合せがブロック単位スキップモードと組み合わせられ得、ここで、上記で説明された技法は、１６個の係数Ｃ００〜Ｃ１５のうちの少なくとも１つが非０値を含んでいる場合のみ適用され得る。
【０１０４】
[0117]一例では、ブロック単位スキップモードは、すべての３つの色座標に適用されるとは限らない。別の例では、ブロック単位スキップモードは、クロマ色座標にのみ適用され、ルーマ色座標には適用されない。
【０１０５】
[0118]さらに別の手法では、上記のステップを適用する前に、最後有意変換係数位置（たとえば、変換係数の絶対値が１よりも大きいかまたはそれに等しい位置）が最初に識別される。位置情報は、デコーダに明示的にシグナリングされ得る。さらに、最後有意位置の絶対値が１だけ減算され得る。たとえば、Ｃを、最後有意位置に対応する係数値の大きさを表すとする。係数は、Ｃnew＝（｜Ｃ｜−１）＊ｓｉｇｎ（Ｃ）によって置き換えられ得、ただし、ｓｉｇｎ（Ｃ）は係数Ｃのサイン値を表す。最後有意位置に対応するサイン情報ｓｉｇｎ（Ｃ）がシグナリングされ得る。次いで、第１の係数から開始し最後有意係数位置までの（両端値を含む）すべてのサンプルが、グループ単位スキップモードを使用してコーディングされ得る。その後、グループ内のサンプルのうちの少なくとも１つが非０である場合、グループはＤＳＵ−ＶＬＣコーディングされ得る。グループ内のサンプルのいずれも非０でない場合、グループは、グループ単位スキップモードを使用してコーディングされ得る。最後有意係数位置がグループ境界と重ならないとき、最後有意係数位置までのグループ内のサンプルのサブセットのみがコーディングされ、（０の値を有する）残りのサンプルはコーディングされないことに留意されたい。デコーダにおいて、（０の値を有する）残りのサンプルは最後有意係数位置から直接推論され得る。
【０１０６】
[0119]一例では、最後有意位置に対応するサイン情報は、１だけ減算された最後有意係数値の絶対値が０に等しい、すなわち、｜Ｃ｜−１＝＝０であるときのみシグナリングされ得、ただし、Ｃは、最後有意位置に対応する係数値の大きさを表す。係数は、２の補数を使用してコーディングされ得、たとえば、−（２N-1）〜＋（２N-1−１）における値を表すためにＮビットが使用され得る。
【０１０７】
[0120]一態様では、最後有意位置は、固定長コードを使用してコーディングされ得、ここで、ビットの数は、ｌｏｇ２（ｎｕｍｂｅｒＯｆＳａｍｐｌｅｓＩｎＢｌｏｃｋ）に等しく設定される。
【０１０８】
[0121]別の態様では、最後有意位置は、たとえば、指数ゴロムコード、ハフマンコード、ライスコードと指数ゴロムコードとの混合など、可変長コードを使用してコーディングされ得る。また別の態様では、上記で説明されたブロック単位スキップモードは、最後有意位置をコーディングするために可変長コードを使用する技法を適用する前に適用され得る。
【０１０９】
[0122]また別の手法では、ブロック単位スキップモードは、最後有意位置をコーディングするために可変長コードを使用する技法を適用する前に適用されない。ブロック中のすべてのサンプルが０であるシナリオでは、最後有意位置のデフォルト値がデコーダにシグナリングされ得る。
【０１１０】
[0123]一例では、デフォルト最後有意位置は、グループ１中の第１のサンプル位置を表す０である。ブロック中のすべてのサンプルが０である場合、（０の）デフォルト最後有意位置をシグナリングした後、グループ１がグループ単位スキップモードを使用してコーディングされ得る。一方、デフォルト最後有意位置における値が非０である場合、グループ１中の第１のサンプルがＤＳＵ−ＶＬＣコーディング原理を使用してコーディングされ得る。
【０１１１】
[0124]別の例では、デフォルト最後有意位置に対応する絶対値は１だけ減算されない。係数値が１だけ減算されないとき、デフォルト最後有意位置に対応するサイン情報はシグナリングされない。
【０１１２】
[0125]また別の例では、デフォルト最後有意位置に対応する絶対値は１だけ減算され得る。たとえば、２つの場合、すなわち、（ｉ）デフォルト最後有意位置に非０値がある、および（ｉｉ）デフォルト位置における値が０である、があり得る。最後有意係数値が１だけ減算されるとき、デフォルト最後有意位置に対応するサイン情報は、｜Ｃ｜−１＝＝０であるときにシグナリングされ得、ただし、Ｃは、最後有意位置に対応する係数値の大きさを表す。
【０１１３】
[0126]最後有意位置がデフォルト位置（０）と同じでないシナリオでは、最後有意位置をコーディングするために可変長コードを使用する（１つまたは複数の）技法が適用され得ることに留意されたい。  
プレフィックス予測
【０１１４】
[0127]一実装形態では、各成分のプレフィックス値は、以下で説明されるように予測され得る。
【０１１５】
[0128]値ｐｒｅｖＢｉｔｓおよびｃｕｒｒＢｉｔｓは、それぞれ、前のグループおよび現在グループをコーディングするために必要とされるビットの数（たとえば、それぞれ、前のグループのプレフィックス値および現在グループのプレフィックス値）を表し得る。値ｐｒｅｖＱＰおよびｃｕｒｒＱＰは、それぞれ、（スキップモードでコーディングされていない前のグループである）前のグループおよび現在グループをコーディングするために使用される量子化パラメータを表し得る。
【０１１６】
[0129]値ｐｒｅｖＢｉｔｓは、以下のように、値ｃｕｒｒＱＰと値ｐｒｅｖＱＰとの間の差に基づいて調整され得る（ここでは値ａｄｊＰｒｅｖＢｉｔｓとして示される）。  
ｄｅｌＳｉｚｅ＝｜ｃｕｒＱｐ−ｐｒｅｖＱｐ｜＞＞ｋ  
ｄｅｌＳｉｚｅ＝（ｃｕｒＱｐ＞ｐｒｅｖＱｐ）？−ｄｅｌＳｉｚｅ：ｄｅｌＳｉｚｅ  
ａｄｊＰｒｅｖＢｉｔｓ＝ｐｒｅｖＢｉｔｓ＋ｄｅｌＳｉｚｅ  
ａｄｊＰｒｅｖＢｉｔｓ＝Ｍａｘ（１，ａｄｊＰｒｅｖＢｉｔｓ）  
【０１１７】
[0130]ここで、ｋは任意の正の整数であり得る。一例では、ｋは３に等しい。
【０１１８】
[0131]別の例では、値ｐｒｅｖＢｉｔｓは、値ｃｕｒｒＱＰと値ｐｒｅｖＱＰとの間の差に基づいて調整されない、すなわち、値ｐｒｅｖＢｉｔｓは、調整なしにプレフィックス予測のために使用される。
【０１１９】
[0132]変換係数をコーディングするとともに、現在グループプレフィックス値（たとえば、値ｃｕｒｒＢｉｔｓ）が、変換モードを使用して前にコーディングされたブロックの同じグループインデックス（および同じ成分）のプレフィックス値に基づいて予測され得る。すなわち、グループｉ、ｉ∈｛１，２，３，４｝からの値ｃｕｒｒＢｉｔｓが、前にコーディングされた変換ブロック中のそれぞれのグループｉ、ｉ∈｛１，２，３，４｝のプレフィックス値（およびそれぞれの量子化パラメータ）に基づいて予測され得る。前のブロック中のそれぞれの色成分がブロック単位スキップモードを使用してコーディングされた場合、ブロック単位スキップモードを使用してコーディングされていない同じ色成分をもつ変換ブロックの最後の発生が、予測のために考慮され得る。前のブロック中の特定のグループｉがグループ単位スキップモードでコーディングされた場合、値ｐｒｅｖＢｉｔｓ＝１および／または値ａｄｊＰｒｅｖＢｉｔｓ＝１が使用され得る。
【０１２０】
[0133]プレフィックス予測では、現在ブロックのモードと同じモードを使用してコーディングされた前のブロックのプレフィックス値が使用され得る。一例では、現在ブロックが変換を使用せずに残差を直接コーディングする場合、変換を使用して（またブロック単位モードを使用して）コーディングされていない前のブロックのプレフィックス値および量子化パラメータが予測のために考慮され得る。特に、ブロック中で各グループについて１つずつの、４つのプレフィックス値のうち、グループ単位スキップモードを使用してコーディングされていないグループの最後の発生に対応するプレフィックス値が予測のために使用され得る。
【０１２１】
[0134]別の例では、別個のプレフィックス予測関数が各コーディングモードについて維持され得、たとえば、現在ブロックが、変換を適用した後にコーディングされる場合、変換を用いてコーディングされたブロックの前の発生に関連するプレフィックス値が予測のために使用される。同様にして、現在ブロック残差がブロック予測から生成された残差を表す場合、ブロック予測残差を含んでいるブロックの前の発生に関連するプレフィックス値が使用される。
【０１２２】
[0135]また別の例では、プレフィックス予測関数は、変換を用いてコーディングされたブロックのためにある関数が維持され、残差、たとえば、１Ｄ予測残差、および／またはブロック予測残差、および／またはイントラ予測残差、および／または２Ｄメディアン適応予測残差を表すブロックのために別の関数が維持され得るような方法で、モードにわたって共有され得る。
【０１２３】
[0136]さらに別の例では、現在ブロック中のすべてのグループのプレフィックス値が、前にコーディングされたブロック中の単一のプレフィックス値に基づいて予測され得る。単一のプレフィックス値は、４つのグループのいずれかに関連付けられ得る。１つの手法では、単一のプレフィックス値は、前のブロック中の最後のグループ、たとえば、ｉ＝４に関連付けられ得る。前のブロック中の最後のグループがグループ単位スキップモードを使用してコーディングされた場合、グループ単位スキップモードを使用してコーディングされていないグループｉ−１に関連付けられたプレフィックス値が使用される。別の手法では、最後のグループまたは特定のグループがグループ単位スキップモードを使用してコーディングされた場合、ｐｒｅｖＢｉｔｓ＝１および／またはａｄｊＰｒｅｖＢｉｔｓ＝１が使用される。
【０１２４】
[0137]現在ブロックのコーディングモードと同じコーディングモードを用いて前のブロックが識別され得ないシナリオでは、予測は、エンコーダのデフォルト初期値に等しく設定された量子化パラメータとともに、値ｐｒｅｖＢｉｔｓ＝１および／または値ａｄｊＰｒｅｖＢｉｔｓ＝１のデフォルト値に基づき得る。  
プレフィックスコーディング
【０１２５】
[0138]プレフィックスコーディングの一実装形態では、各成分について、値ｃｕｒｒＢｉｔｓと値ａｄｊＰｒｅｖＢｉｔｓとの間の絶対差が単項コーディングを使用してコーディングされ得、サインが追加の１ビットによって示され得る。サインビットは、たとえば、絶対差が０よりも厳密に大きいときのみシグナリングされ得ることに留意されたい。
【０１２６】
[0139]別の実装形態では、各成分について、値ｃｕｒｒＢｉｔｓと値ｐｒｅｖＢｉｔｓとの間の絶対差が単項コーディングを使用してコーディングされ得、サインが追加の１ビットによって示され得る。
【０１２７】
[0140]また別の実装形態では、各成分について、値ｃｕｒｒＢｉｔｓが、予測なしに単項コードを使用してコーディングされ得る。
【０１２８】
[0141]さらに別の実装形態では、各成分について、値ｃｕｒｒＢｉｔｓ−１が、予測なしに単項コードを使用してコーディングされ得る。
【０１２９】
[0142]別の実装形態では、プレフィックス値（たとえば、値ｃｕｒｒＢｉｔｓ−１）を直接コーディングする代わりに、プレフィックス値は、（たとえば、マッピング関数またはテーブルを使用して）値にマッピングされ得、マッピングされた値がコーディングされ得る。テーブル／関数は、平均予想コード長が小さくなる（たとえば、定義されたコード長値よりも小さくなる）方法で設計され得る。プレフィックス値のコーディングは、プレフィックス値（たとえば、値ｃｕｒｒＢｉｔｓ−１）を降順でソートすることと、優勢（most probable）プレフィックス値が、コード長が小さい値にマッピングされ、劣勢（least probable）プレフィックス値が、コード長が大きい（たとえば、定義されたコード長値に等しいかまたはそれよりも大きい）値にマッピングされるように、特定の値を割り当てることとによって行われ得る。
【０１３０】
[0143]また別の実装形態では、単項コードの代わりに、たとえばハフマンなどのＶＬＣ、または指数ゴロムコード、ライスコードなどの構造化ＶＬＣコードが使用され得る。
【０１３１】
[0144]さらに別の実装形態では、固定長コードがプレフィックスコーディングのために使用され得る。  
２Ｄブロックへの拡張
【０１３２】
[0145]このサブセクションでは、２ＤブロックサイズＰ×Ｑへのエントロピーコーディングの拡張が開示され、ここにおいて、ＰおよびＱは、それぞれブロック高さおよびブロック幅を表す。
【０１３３】
[0146]量子化ブロック残差のコーディングに関して、量子化ブロック残差は、一般に、元のブロックから予測ブロックを減算することと、残差ブロックの上に量子化を適用することとによって生成された残差を指す。予測は、空間的に近隣するサンプルから行われ得る。空間予測の例としては、ブロック予測、メディアン適応予測（ＭＡＰ：median adaptive prediction）、イントラ予測、および／または中点予測がある。量子化ブロック残差のコーディングのために変換が適用されないことに留意されたい。
【０１３４】
[0147]２ＤブロックＰ×Ｑの量子化ブロック残差の各成分は、Ｎ個のグループに区分され得、ただし、Ｎは正の整数である。一例では、Ｎは４に設定される。
【０１３５】
[0148]グループは、各量子化残差サンプルが唯一無二の１つのグループに属するように形成され得る。
【０１３６】
[0149]各グループ中のサンプルの数は等しいことがあり、たとえば、各グループは（Ｐ×Ｑ）／Ｎ個のサンプルを有し得る。グループは、ブロックＰ×Ｑを（Ｐ×Ｑ）／Ｎ個のパーティションに区分することによって構成され得、各パーティション中のサンプルは１つのグループと見なされ得る。一例では、区分は垂直方向においてのみ行われ得、たとえば、各パーティションサイズは、Ｐ×（Ｑ／Ｎ）である。別の例では、区分は水平方向においてのみ行われ得、ここにおいて、各パーティションサイズは、（Ｐ／Ｎ）×Ｑ。別の例では、区分は、垂直方向と水平方向の両方において行われ得る。一例として、各パーティションサイズは（Ｐ／（Ｎ／２））×（Ｑ／（Ｎ／２））であり得る。
【０１３７】
[0150]別の例では、各グループ中のサンプルの数は等しくなく、ここにおいて、サブブロックへの区分は不均一な様式で行われ得る。
【０１３８】
[0151]グループを構成した後、グループは、「量子化ブロック残差のコーディング」に関するセクションにおいて上記で説明された（１つまたは複数の）技法を使用してコーディングされ得る。
【０１３９】
[0152]量子化変換係数のコーディングに関して、サイズＰ×Ｑの２Ｄブロックの量子化変換係数の各成分は、Ｎ個のグループに区分され得、ただし、Ｎは正の整数である。一例では、Ｎは４に設定される。
【０１４０】
[0153]グループは、各量子化係数サンプルが１つのグループのみに属するように形成され得る。
【０１４１】
[0154]各グループ中のサンプルの数は等しくないことがある。同様の周波数を表す量子化変換係数は１つのグループを形成し得る。
【０１４２】
[0155]図８は、本開示の態様による、変換係数コーディングモードのためのブロックを区分するための別の例示的な技法を示す図である。図８は、ブロックサイズが４×４であるときにサンプルの２Ｄブロックをグループに区分することの一例を示す。図８では、Ｐ＝４およびＱ＝４であり、グループの数Ｎ＝４である。たとえば、第１のシェーディングは、変換係数Ｃ００を含む第１のグループにを表す。第２のシェーディングは、Ｃ０１、Ｃ０２、Ｃ０４、およびＣ０８を含む第２のグループを表す。第３のシェーディングは、Ｃ０５、Ｃ０６、Ｃ０９、およびＣ１０を含む第３のグループを表す。第４のシェーディングは、Ｃ０３、Ｃ０７、Ｃ１１、Ｃ１２、Ｃ１３、Ｃ１４、およびＣ１５を含む第４のグループを表す。
【０１４３】
[0156]図８に示されているグルーピング構成は、本明細書で説明される技法の態様を示す一例にすぎず、サイズＰ×Ｑの所与のブロックのためのグループを構成する多数の他の方法があることに留意されたい。
【０１４４】
[0157]別の手法では、係数は特定のスキャン順序でスキャンされ得、得られた１Ｄ係数スキャンがＮ個のグループに区分され得る。たとえば、スキャンはジグザグ順序で実行され得る。別の例では、（１つまたは複数の）垂直および／または水平スキャン順序が使用され得る。
【０１４５】
[0158]変換区分が適用される（たとえば、ブロック内の各サブブロックについて変換が適用される）とき、異なるパーティションにわたって同様の周波数を表す変換係数は同じグループ中に含まれ得る。たとえば、ブロック内の異なるパーティションに対応するＤＣ値は、第１のグループを形成するために考慮され得る。
【０１４６】
[0159]別の手法では、各グループ中のサンプルの数は等しいことがあり、グループは、「量子化ブロック残差のコーディング」に関するセクション上記で説明された（１つまたは複数の）技法を使用して構成され得る。
【０１４７】
[0160]グループを構成した後、グループは、「変換係数のコーディング」という見出しの付いたセクションにおいて上記で説明された（１つまたは複数の）技法を使用してコーディングされ得る。
【０１４８】
[0161]別の例示的な手法に従ってグループを構成するための技法の一実装形態が、以下で説明される。
【０１４９】
[0162]説明の目的で、ブロックサイズは、Ｐ＝２およびＱ＝８である、Ｐ×Ｑであり得、グループの数Ｎ＝４である。ここで、Ｐ、Ｑ、およびＮは、上記で説明されたように定義され得る。
【０１５０】
[0163]図９〜図１１は、本開示で説明される態様による、ブロックを区分する方法を示す図である。
【０１５１】
[0164]「量子化ブロック残差のコーディング」という見出しの付いた上記のセクションにおいて説明されたように、量子化ブロック残差のグルーピングは、垂直方向にブロックを区分することを介して行われ得、ここで、２×２の各サブブロックサイズが、図９に示されているように１つのグループと見なされ得る。この実施形態では変換が適用されないことに留意されたい。
【０１５２】
[0165]「量子化変換係数のコーディング」という見出しの付いた上記のセクションにおいて説明されたように、サイズ２×８のブロックの量子化変換係数のグルーピングは、図１０に示されているように構成され得る。図１０の例では、２×８変換３１３が適用される。
【０１５３】
[0166]変換区分が適用されるとき（たとえば、２つの２×４変換３１５および３１７が２×８のブロックサイズのために適用されるとき）、グループは、図１１に示されているように構成され得る。  
非４：４：４クロマサブサンプリング画像フォーマットのＤＳＣのためのエントロピーコーディング
【０１５４】
[0167]本開示の１つまたは複数の態様によれば、非４：４：４クロマサブサンプリング画像フォーマットのための高スループットエントロピーコーディング技法の拡張が本明細書で説明される。たとえば、本明細書で開示される技法は、４：２：２および４：２：０クロマサブサンプリング画像フォーマットに適用可能であり得る。
【０１５５】
[0168]高スループット（たとえば、４ピクセル／クロック）を達成するために、４：２：２画像フォーマットの場合、Ｎ個のグループおよびＮ／２個のグループが、それぞれルーマ成分およびクロマ成分のために生成され得る。４：２：０画像フォーマットの場合、Ｎ個のグループおよびＮ／４個のグループが、それぞれルーマ成分およびクロマ成分のために生成され得る。４：２：２および４：２：０画像フォーマットでは、ルーマ成分は、上記で前に説明されたように扱われ得ることに留意されたい。非４：４：４クロマサブサンプリング画像フォーマット（たとえば、４：２：０および４：２：２）のクロマ成分を扱うための変更および／または追加のステップが、以下で説明される。
【０１５６】
[0169]一例では、ブロックサイズが２×８であり、ルーマ成分について、グループの数Ｎ＝４であるとき、クロマ成分中のグループのそれぞれの数は、４：２：２画像フォーマットの場合には２であり、４：２：０画像フォーマットの場合には１であり得る。  
非４：４：４クロマ画像フォーマットのための量子化変換係数のコーディング
【０１５７】
[0170]現在ブロックが変換モード（たとえば、ＤＣＴまたはアダマール）に基づいてコーディングされるとき、４：２：２および４：２：０画像フォーマット（または他の非４：４：４画像フォーマット）の場合、各グループ中のサンプルの数は、クロマ成分について同じでないことがある。他の実施形態では、４：２：２および４：２：０画像フォーマットの場合、各グループ中のサンプルの数は、クロマ成分については同じであるが、ルーマ成分については同じでないことがあることに留意されたい。
【０１５８】
[0171]図１２Ａは、（２×８の例示的なブロックサイズについて）４：２：２画像フォーマットの場合のクロマ成分のサンプルをグルーピングするための例示的な技法を示す。図１２Ａに示されているように、４：２：２画像フォーマット、２×８のブロックサイズ、およびグループの数Ｎ＝４である場合、クロマ成分係数の２つのグループがあり得（Ｎ／２＝２）、ここにおいて、同様の周波数帯域が、２つのグループのうちの１つ中に集められ得る。図１２Ａは、係数Ｃ００〜Ｃ００７を、Ｃ００が第１のグループ中にあり、係数の残りが第２のグループ中にある、２つのグループに区分されるものとして示しているが、係数は、他の実施形態では、異なるグループに区分され得ることを理解されたい。たとえば、いくつかの実施形態では、第１のグループは係数Ｃ００およびＣ０１を備え得、係数の残りは第２のグループ中にある。
【０１５９】
[0172]いくつかの実施形態では、グルーピングを実行するとき、異なる変換スキャン順序が使用され得る。たとえば、Ｃ００、Ｃ０１、Ｃ０２、Ｃ０３、Ｃ０４、Ｃ０５、Ｃ０６、Ｃ０７などの順序で係数を出力する水平スキャン順序が使用され得る。別の例では、Ｃ００、Ｃ０４、Ｃ０１、Ｃ０２、Ｃ０５、Ｃ０６、Ｃ０３、Ｃ０７のような、またはＣ００、Ｃ０１、Ｃ０４、Ｃ０５、Ｃ０２、Ｃ０３、Ｃ０６、Ｃ０７のような係数の順序を出力するジグザグスキャン順序が使用され得る。別の例では、Ｃ００、Ｃ０４、Ｃ０１、Ｃ０５、Ｃ０２、Ｃ０６、Ｃ０３、Ｃ０７の順序で係数を出力する垂直スキャン順序が使用され得る。いくつかの実施形態では、係数がどのようにグループに区分されるかは、使用される変換スキャン順序に基づき得る。たとえば、ジグザグスキャン順序が使用される実施形態では、第１のグループは係数Ｃ００およびＣ０４を備え得、残りの係数は第２のグループに区分される。別の実施形態では、第１のグループは係数Ｃ００、Ｃ０４、Ｃ０１、およびＣ０２を備え得、第２のグループは残りの係数を備える。
【０１６０】
[0173]図１２Ｂは、（２×８の例示的なブロックサイズについて）４：２：０画像フォーマットの場合のクロマ成分のサンプルをグルーピングするための例示的な技法を示す。図１２Ｂに示されているように、４：２：０画像フォーマットの場合、グループの数は１であり得（Ｎ／４＝１）、ここにおいて、（ＤＣ係数Ｃ００を含む）すべての４つの係数は、それらの係数のすべてが同様の周波数帯域を有するとは限らない場合でも、同じグループ中に集められる。エントロピーコーディンググループが構成されると、クロマ成分は、上記で説明されたエントロピーコーディング技法を使用してコーディングされ得る。  
非４：４：４クロマ画像フォーマットのための量子化ブロック残差のコーディング
【０１６１】
[0174]現在ブロックが、たとえば、ブロック予測モード、ＤＰＣＭモード、または変換スキップモードに基づいてなど、変換を使用せずにコーディングされるとき、４：２：２および４：２：０画像フォーマット（または他の非４：４：４画像フォーマット）の場合、各グループ中のサンプルの数は、クロマ成分について同じであり得る。
【０１６２】
[0175]図１３Ａは、（２×８の例示的なブロックサイズについて）４：２：２画像フォーマットの場合のクロマ成分のサンプルをグルーピングするための例示的な技法を示す。図１３Ｂは、（２×８の例示的なブロックサイズについて）４：２：０画像フォーマットの場合のクロマ成分のサンプルをグルーピングするための例示的な技法を示す。たとえば、第１のグループはサンプル｛Ｓ０，Ｓ１，Ｓ２，Ｓ３｝を備え得、第２のグループはサンプル｛Ｓ４，Ｓ５，Ｓ６，Ｓ７｝を備える。４：２：２画像フォーマットの場合、他のグルーピング技法が適用され得る。たとえば、サンプル｛Ｓ０，Ｓ１，Ｓ４，Ｓ５｝が１つのグループを形成し得、サンプル｛Ｓ２，Ｓ３，Ｓ６，Ｓ７｝が第２のグループを形成し得る。エントロピーコーディンググループが形成されると、クロマ成分は、上記で説明されたエントロピーコーディング技法を使用してコーディングされ得る。  
プロセスフロー
【０１６３】
[0176]図１４は、いくつかの実施形態による、変換モード（たとえば、ＤＣＴ、アダマールなど）を使用してビデオデータのブロックを符号化するための例示的なプロセスのフローチャートを示す。ブロック１４０２において、エンコーダが、ビデオデータのブロックの残差値の色成分に対応するビデオデータのサンプルを識別する。
【０１６４】
[0177]ブロック１４０４において、エンコーダは、複数の係数を生成するために、識別されたビデオデータサンプルに対して変換および量子化を実行する。変換は、ＤＣＴ変換、アダマール変換、または他のタイプの変換を備え得る。いくつかの実施形態では、ブロックのビデオデータサンプルは、単一の変換（たとえば、図４に示されている１×１６ＤＣＴ変換、または２×８ＤＣＴ変換）を使用して、または異なる変換サイズの複数の変換（たとえば、図５に示されている２つの１×８ＤＣＴ変換、または２つの２×４ＤＣＴ変換）を使用して変換され得る。いくつかの実施形態では、各係数は特定の周波数成分に対応し得る。
【０１６５】
[0178]ブロック１４０６において、エンコーダは、係数の位置に少なくとも部分的に基づいて、係数を複数のグループに区分する。いくつかの実施形態では、係数は、等しいサイズのグループに区分され、他の実施形態では、係数は、異なるサイズのグループに区分され得る。いくつかの実施形態では、係数は、１つまたは複数の周波数成分範囲によって係数を順序付けることによって区分され得る（たとえば、第１の係数はＤＣ値を表し、最後の係数は、最高周波数成分に関連付けられを表し、残りの係数は、関連付けられた周波数成分に関して低から高に順序付けられる）。いくつかの実施形態では、変換係数は、特定のスキャン方法、たとえば、水平、垂直、ジグザグなどに基づいて順序付けられ得、さらにグループに区分される。いくつかの実施形態では、係数が区分されるグループの数は、ビデオデータに関連するクロマサブサンプリング画像フォーマットに基づき得る。たとえば、ビデオデータのブロックは、４：４：４、４：２：２、または４：２：０画像フォーマットを使用してコーディングされ得る。各成分のためのグループの数は、ブロックサイズと、クロマサブサンプリング画像フォーマットと、変換サイズと、サンプルがルーマサンプルであるのかクロマサンプルであるのかとに基づき得る。
【０１６６】
[0179]ブロック１４０８において、エンコーダは、複数の係数のうちの最後有意係数の位置を識別する。いくつかの実施形態では、その係数は、所定の値（たとえば、１）よりも大きいかまたはそれに等しい絶対値を有する最後の係数に対応し得る。識別された係数の位置は、（たとえば、デコーダによって受信されるために）ビットストリーム中でシグナリングされ得る。変換から生じる係数の値は、減衰する値（たとえば、指数関数的減衰）を呈し得るので、最後有意係数が識別されると、最後有意係数の後のすべての残りの係数は０の値を有し得る。いくつかの実施形態では、最後有意係数は、ブロックの最後の係数から開始し、最後有意係数が見つかるまで、各係数の値を逆順で検査することによって識別され得る。
【０１６７】
[0180]いくつかの実施形態では、複数の係数のうちの有意係数をコーディングするために必要とされるビットの数を低減するために、エンコーダは、最後有意係数の絶対値を１だけ減算し得る。さらに、最後有意係数が１の絶対値を有する場合、識別された係数のサイン値もビットストリーム中でシグナリングされ、デコーダが最後有意係数のサインを決定することを可能にし得る。
【０１６８】
[0181]ブロック１４１０において、エンコーダによって、エントロピーコーディングを使用して、第１の係数から、識別された有意係数の位置までの係数をコーディングする。たとえば、各グループは、プレフィックスといくつかのサフィックスとを使用してコーディングされ得、ここにおいて、プレフィックスは、グループの各サフィックスのサイズを示し、サフィックスの数はグループ中の係数の数に等しい。ビットストリームが復号されるとき、デコーダは、サフィックスの長さを決定するためにプレフィックスを復号し、グループの各サフィックスの位置が決定されることを可能にし得る。グループのサフィックスの各々の位置は、プレフィックスを復号することによって決定され得るので、グループのサフィックスは並列に復号され、復号プロセスのスループットを潜在的に増加させ得る。
【０１６９】
[0182]ブロック１４１２において、エンコーダによって、残りの係数（たとえば、識別された最後有意係数の位置の後の位置を有する係数）をスキップする。デコーダが符号化ビデオデータを復号するとき、デコーダが最後有意係数の位置を決定すると、デコーダは、ブロックのすべての後続の係数が０の値を有すると仮定し得る。したがって、残りの係数がコーディングされる必要はない。
【０１７０】
[0183]図１５は、いくつかの実施形態による、プレフィックス予測のための例示的な方法のフローチャートを示す。ブロック１５０２において、エンコーダが、現在ビデオブロック中でコーディングされるべきサンプルまたは係数のグループを識別する。いくつかの実施形態では、サンプルのグループは、非変換コーディングモードを使用してコーディングされるべきビデオブロックの色成分に対応し得る。いくつかの実施形態では、係数のグループは、変換コーディングモードの一部として変換されたサンプルに対応し得る。いくつかの実施形態では、グループはグループインデックスに関連付けられ得、グループインデックスは、識別されたグループが、ビデオデータのブロックのどのグループに対応するかを識別する。
【０１７１】
[0184]いくつかの実施形態では、エンコーダは、グループ中のすべての成分が所定の値（たとえば、０値）を有するか否かを決定し得る。所定の値を有する場合、グループは、プレフィックス予測を実行する必要なしに、ブロック単位スキップモードを使用して符号化され得る。
【０１７２】
[0185]ブロック１５０４において、エンコーダは、ビデオデータの前にコーディングされたブロックの対応するグループを識別する。いくつかの実施形態では、対応するグループは、識別されたグループと同じグループインデックスを有する、前にコーディングされたビデオブロックのグループに対応し得る。
【０１７３】
[0186]いくつかの実施形態では、ビデオデータの前にコーディングされたブロックは、時間的に現在ブロックの直前にコーディングされたビデオデータのブロックに対応し得る。いくつかの実施形態では、前にコーディングされたビデオブロックは、現在ビデオブロックと同じモードを使用してコーディングされたビデオデータの前のブロックに対応し得る。
【０１７４】
[0187]ブロック１５０６において、エンコーダは、前にコーディングされたブロックの対応するグループがグループ単位スキップモードを使用してコーディングされたかどうかに関する決定を行う。グループ単位スキップモードを使用してコーディングされた場合、プロセスはブロック１５０４に戻り得、ここで、前にコーディングされたブロックの別の対応するグループを識別する。一方、対応するグループがグループ単位スキップを使用してコーディングされなかった場合、プロセスはブロック１５０８に進み得、ここにおいて、対応するグループのプレフィックス値を識別する。プレフィックス値は、前のグループをコーディングするために必要とされたビットの数に対応し得る。
【０１７５】
[0188]ブロック１５１０において、エンコーダは、対応するグループの識別されたプレフィックス値を調整する。いくつかの実施形態では、プレフィックス値は、前にコーディングされたブロックの量子化パラメータと、現在ブロックの量子化パラメータとに少なくとも部分的に基づいて調整され得る。ブロック１５１２において、対応するグループの（調整された）プレフィックス値に基づいて、現在ビデオブロックの識別されたグループのためのプレフィックス値を予測する。
【０１７６】
[0189]図１６は、いくつかの実施形態による、ビデオデータのブロックをエントロピー符号化するための例示的な方法のフローチャートを示す。ブロック１６０２において、エンコーダが、ブロックの量子化色成分残差値のサンプルに対応するビデオデータを受信する。変換コーディングモードが使用されるいくつかの実施形態では、ビデオデータのサンプルは、ブロックの色成分残差の変換された係数値に対応し得る。エンコーダは、ブロックのすべてのサンプルが所定の値（たとえば、０）を有するかどうかを決定する。所定の値を有する場合、プロセスはブロック１６１４に進み得る。ブロック１６１４において、エンコーダは、色成分に対応するブロックのためのサンプルが（成分スキップモードとも呼ばれる）ブロック単位スキップモードを使用してコーディングされるべきであることを示すフラグをシグナリングする。
【０１７７】
[0190]いくつかの実施形態では、ビデオデータのサンプルがブロックのルーマ成分に対応する場合、ブロック単位スキップモードを使用してブロックをコーディングすべきかどうかの決定はスキップされ得る。一方、ビデオデータのサンプルがブロックのクロマ成分に対応する場合、決定は実行され得る。
【０１７８】
[0191]ブロックのためのビデオデータがブロック単位スキップモードを使用してコーディングされるべきでないと決定された場合、プロセスはブロック１６０４に進み得る。ブロック１６０４において、エンコーダは、ビデオデータのブロックのクロマサブサンプリング画像フォーマットを決定する。いくつかの実施形態では、クロマサブサンプリング画像フォーマットは、４：４：４、４：２：２、または４：２：０に対応し得る。
【０１７９】
[0192]ブロック１６０６において、エンコーダは、ブロックのコーディングモードと、クロマサブサンプリング画像フォーマットとに基づいて、ビデオデータのブロックをサンプルの１つまたは複数のグループに区分する。いくつかの実施形態では、サンプルは、ビデオデータのブロックの残差値の色成分に対応し得る。サンプルがクロマ成分に対応する実施形態では、成分ごとのサンプルの数、各グループ中のサンプルの数、および／またはグループの数は、ブロックに関連するクロマサブサンプリング画像フォーマットに応じて異なり得る。たとえば、４：２：２画像フォーマットを使用してコーディングされるブロックは、ルーマ成分サンプルをＮ個のグループに、およびクロマ成分サンプルをＮ／２個のグループに分割し得、４：２：０画像フォーマットを使用してコーディングされるブロックは、ルーマ成分サンプルをＮ個のグループに、およびクロマ成分サンプルをＮ／４個のグループに分割し得る。
【０１８０】
[0193]変換コーディングモードが使用される、いくつかの実施形態では、サンプルのグループは、ブロックの残差値の色成分に対して１つまたは複数の変換を実行することによって決定された１つまたは複数の係数に対応し得る。実行される変換のタイプは、ビデオブロックに関連する変換コーディングモードのタイプに基づき得る。変換コーディングモードが使用されるいくつかの実施形態では、エンコーダは、（たとえば、図１５に関して説明されたように）ブロックの係数の最後有意係数を識別し、シグナリングし得る。いくつかの実施形態では、エンコーダはまた、最後有意係数の値を調整し得る。
【０１８１】
[0194]ブロック１６０８において、サンプルの１つまたは複数のグループのうちのグループについて、グループ中のすべてのサンプルが所定の値を有するかどうかに関する決定を行う。いくつかの実施形態では、所定の値は０値であり得る。さらに、いくつかの実施形態では、特定の色成分に対応するブロック中のすべてのサンプルが所定の値（たとえば、０）のものであるかどうかに関する決定が行われ得る。所定の値のものである場合、特定の成分のブロックのすべてのサンプルはブロック単位スキップモードを使用してコーディングされ得る。一例では、ブロック単位スキップモードは、クロマ成分のためにのみ適用され、ルミナンス成分のためには適用されない。
【０１８２】
[0195]グループ中のすべてのサンプルが所定の値を有すると決定された場合、プロセスはブロック１６１０に進み得、ここにおいて、グループ単位スキップを使用してサンプルのグループをコーディングする。いくつかの実施形態では、エンコーダは、グループのためのスキップフラグの値またはスキップ値を設定し得る。
【０１８３】
[0196]一方、グループ中のすべてのサンプルが所定の値を有するとは限らないと決定された場合、ブロック１６１２において、グループのサンプルをエントロピーコーディングする。いくつかの実施形態では、グループは、１つまたは複数のプレフィックスと１つまたは複数のサフィックスとを使用してコーディングされ得、ここにおいて、プレフィックスは、対応するサフィックスをコーディングするために使用されるビットの数を示す。
【０１８４】
[0197]図１７は、いくつかの実施形態による、ビデオデータのブロックをエントロピー復号するための例示的な方法のフローチャートを示す。ブロック１７０２において、デコーダが、ビデオデータのブロックのための色成分を表すビットストリームを受信する。ブロック１７０４において、デコーダは、ブロックのためのブロック単位スキップフラグが示されたかどうかを決定する。ブロックのためのブロック単位スキップフラグが示された場合、ブロック１７１６において、デコーダは、ビデオデータのブロックを再構成し、ここにおいて、ブロックの特定の色成分のためのすべてのサンプルが所定の値（たとえば、０）を有する。いくつかの実施形態では、ブロックのいくつかの色成分（たとえば、ルーマ成分）のためのブロック単位スキップフラグは存在しないことがある。
【０１８５】
[0198]一方、ブロック単位スキップフラグが示されなかった（または存在しない）場合、プロセスはブロック１７０６に進み得る。ブロック１７０６において、デコーダは、ビデオデータのブロックに関連するサンプルの１つまたは複数のグループを識別する。上記で説明されたように、サンプルのグループは、コーディングモードを使用してコーディングされ、ビデオデータのブロックの色成分に対応し得る。他の実施形態では、サンプルのグループは、ビデオブロックの色成分に対して１つまたは複数の変換が実行されることを介して取得された１つまたは複数の係数に対応し得る。
【０１８６】
[0199]ブロック１７０８において、デコーダは、１つまたは複数のグループのうちのグループについて、グループのためのグループ単位スキップが示されたかどうかを決定する。いくつかの実施形態では、デコーダは、グループがグループ単位スキップを使用して符号化されたかどうかを示す、グループに関連するフラグの値を検査する。
【０１８７】
[0200]グループのためのグループ単位スキップが示されたと決定された場合、ブロック１７１０において、デコーダは、グループ単位スキップに基づいてサンプルのグループを生成する。たとえば、デコーダは、所定の値（たとえば、０値）をすべてが有するサンプルのグループを生成し得る。
【０１８８】
[0201]一方、グループのためのグループ単位スキップが示されなかったと決定された場合、ブロック１７１２において、デコーダは、サンプルのグループを復号するためにエントロピー復号を使用する。たとえば、いくつかの実施形態では、サンプルのグループは、プレフィックスと１つまたは複数のサフィックスとを使用してコーディングされていることがある。デコーダは、グループの各サフィックスのビットの数を決定するためにグループのプレフィックスを復号し得、各サフィックスは１つまたは複数のサンプルの値を示す。プレフィックスを復号することによって、ビットストリーム中のグループのすべてのサフィックスの位置が決定され、グループのサフィックスが並列に復号されることを可能にし、潜在的にビデオ復号スループットを増加させ得る。
【０１８９】
[0202]ブロック１７１４において、デコーダは、サンプルの復号されたグループと、コーディングモードと、クロマサブサンプリング画像フォーマットとに基づいて、ビデオデータのブロックを再構成する。  
他の考慮事項
【０１９０】
[0203]本開示の態様は、図２Ａ中のビデオエンコーダ２０など、エンコーダの観点から説明されたことに留意されたい。しかしながら、上記で説明された動作の逆の動作が、たとえば、図２Ｂ中のビデオデコーダ３０によって、生成されたビットストリームを復号するために適用され得ることを、当業者は諒解されよう。
【０１９１】
[0204]本明細書で開示される情報および信号は、多種多様な技術および技法のいずれかを使用して表され得る。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
【０１９２】
[0205]本明細書で開示される実施形態に関して説明された様々な例示的な論理ブロック、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、およびステップが、概してそれらの機能に関して上記で説明された。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈されるべきではない。
【０１９３】
[0206]本明細書で説明された技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセット、自動車、アプライアンス、ウェアラブル、および／または他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなど、様々なデバイスのいずれかにおいて実装され得る。デバイスまたは構成要素として説明された特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装された場合、本技法は、実行されたとき、上記で説明された方法のうちの１つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュメモリ、磁気または光学データ記憶媒体など、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、伝搬信号または電波など、命令またはデータ構造の形態でプログラムコードを搬送または伝達し、コンピュータによってアクセスされ、読み取られ、および／または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【０１９４】
[0207]プログラムコードは、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の等価の集積回路またはディスクリート論理回路など、１つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明された技法のいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明された技法の実装に好適な他の構造または装置のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のソフトウェアまたはハードウェア内に提供され得、あるいは複合ビデオエンコーダ／デコーダ（コーデック）に組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素で十分に実装され得る。
【０１９５】
[0208]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素またはユニットが説明されたが、それらの構成要素またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【０１９６】
[0209]上記のことは、様々な異なる実施形態に関して説明されたが、一実施形態からの特徴または要素は、本開示の教示から逸脱することなく他の実施形態と組み合わせられ得る。ただし、それぞれの実施形態間の特徴の組合せは、必ずしもそれに限定されるとは限らない。本開示の様々な実施形態が説明された。これらおよび他の実施形態は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータをエントロピー符号化する方法であって、
ビデオデータのブロックの色成分に関連する複数のサンプルを受信することと、
前記サンプルがブロック単位スキップを使用して符号化されるべきであるかどうかを決定すること、ここにおいて、前記決定は、前記色成分に対応するすべてのサンプルが所定の値に等しい値を有するかどうかを決定することを備え、前記ブロック単位スキップは、前記複数のサンプルを符号化することを控えることを備える、と、
前記サンプルがブロック単位スキップを使用して符号化されるないと決定したことに応答して、
前記ブロックのクロマサブサンプリング画像フォーマットを決定することと、
前記ビデオデータの前記ブロックをサンプルの１つまたは複数のグループに区分すること、ここにおいて、前記１つまたは複数のグループのグループの数は、前記ブロックのコーディングモードと、前記サンプルの前記クロマサブサンプリング画像フォーマットと、前記サンプルに関連する前記色成分とに少なくとも部分的に基づく、と、
前記サンプルの１つまたは複数のグループをエントロピー符号化することと
を備える、方法。
［Ｃ２］
前記ブロックの前記クロマサブサンプリング画像フォーマットは、４：２：２であり、前記グループの数は、前記サンプルがルーマ成分に対応する場合、Ｎであり、前記サンプルがクロマ成分に対応する場合、Ｎ／２である、
［Ｃ１］に記載の方法。
［Ｃ３］
前記ブロックの前記クロマサブサンプリング画像フォーマットは、４：２：０であり、前記グループの数は、前記サンプルがルーマ成分に対応する場合、Ｎであり、前記サンプルがクロマ成分に対応する場合、Ｎ／４である、
［Ｃ１］に記載の方法。
［Ｃ４］
前記エントロピー符号化することは、プレフィックスと複数のサフィックスとを使用して前記サンプルの１つまたは複数のグループのうちのグループをコーディングすることを備え、前記プレフィックスは、前記複数のサフィックスの各々の長さを示し、各サフィックスは、前記グループのサンプルに対応する、
［Ｃ１］に記載の方法。
［Ｃ５］
前記エントロピー符号化することは、前記サンプルの１つまたは複数のグループのうちのグループ中の前記サンプルのすべてが所定の値に等しい値を有することに応答して、前記グループに対してグループ単位スキップを実行することを備え、前記グループ単位スキップは、前記グループに関連する前記サンプルを符号化することを控えることを備える、
［Ｃ１］に記載の方法。
［Ｃ６］
前記サンプルの１つまたは複数のグループの各サンプルは、前記ビデオブロックの量子化残差値の色成分に対応する、
［Ｃ１］に記載の方法。
［Ｃ７］
前記サンプルの１つまたは複数のグループの各サンプルは、前記ブロックの前記コーディングモードに基づいて、前記ビデオブロックの複数の残差値色成分に対して変換を適用することによって決定された係数に対応する、
［Ｃ１］に記載の方法。
［Ｃ８］
有意値を有する前記サンプルの１つまたは複数のグループの最後のサンプルの位置をシグナリングすることと、
前記係数の絶対値を１の所定の値だけ減算することによって、前記最後有意位置に対応する前記係数を調整することと、
前記シグナリングされた位置より前の位置を有する１つまたは複数のサンプルをエントロピーコーディングすることと、
前記シグナリングされた位置の後の位置を有する１つまたは複数の残りのサンプルをコーディングしないことと
をさらに備える、［Ｃ７］に記載の方法。
［Ｃ９］
前記調整された最後有意係数値が０であるときのみ、前記最後有意位置に対応するサインビットをシグナリングすることをさらに備える、
［Ｃ８］に記載の方法。
［Ｃ１０］
ブロック単位スキップは、前記サンプルがクロマ成分に対応する場合のみ、適用され、前記サンプルがルミナンス成分に対応する場合、適用されない、
［Ｃ１］に記載の方法。
［Ｃ１１］
ビデオデータをエントロピー符号化するためのデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信しており、
ビデオデータのブロックの色成分に関連する複数のサンプルを受信することと、
前記サンプルがブロック単位スキップを使用して符号化されるべきであるかどうかを決定すること、ここにおいて、前記決定は、前記色成分に対応するすべてのサンプルが所定の値に等しい値を有するかどうかを決定することを備え、前記ブロック単位スキップは、前記複数のサンプルを符号化することを控えることを備える、と、
前記サンプルがブロック単位スキップを使用して符号化されるないという決定に応答して、
前記ビデオデータのブロックのクロマサブサンプリング画像フォーマットを決定することと、
前記ビデオデータの前記ブロックをサンプルの１つまたは複数のグループに区分すること、ここにおいて、前記１つまたは複数のグループのグループの数は、前記ブロックのコーディングモードと、前記サンプルの前記クロマサブサンプリング画像フォーマットと、前記サンプルに関連する前記色成分とに少なくとも部分的に基づく、と、
前記サンプルの１つまたは複数のグループをエントロピー符号化することと
を行うように構成されたプロセッサと
を備える、デバイス。
［Ｃ１２］
前記ブロックの前記クロマサブサンプリング画像フォーマットは、４：２：２であり、前記グループの数は、前記サンプルがルーマ成分に対応する場合、Ｎであり、前記サンプルがクロマ成分に対応する場合、Ｎ／２である、
［Ｃ１１］に記載のデバイス。
［Ｃ１３］
前記ブロックの前記クロマサブサンプリング画像フォーマットは、４：２：０であり、前記グループの数は、前記サンプルがルーマ成分に対応する場合、Ｎであり、前記サンプルがクロマ成分に対応する場合、Ｎ／４である、
［Ｃ１１］に記載のデバイス。
［Ｃ１４］
前記プロセッサは、プレフィックスと複数のサフィックスとを使用して前記サンプルの１つまたは複数のグループのうちのグループをコーディングすることによって前記サンプルの１つまたは複数のグループをエントロピー符号化するように構成され、前記プレフィックスは、前記複数のサフィックスの各々の長さを示し、各サフィックスは、前記グループのサンプルに対応する、
［Ｃ１１］に記載のデバイス。
［Ｃ１５］
前記プロセッサは、前記サンプルの１つまたは複数のグループのうちのグループ中の前記サンプルのすべてが所定の値に等しい値を有することに応答して、前記グループに対してグループ単位スキップを実行することによって前記サンプルの１つまたは複数のグループをエントロピー符号化するように構成され、前記グループ単位スキップは、前記グループに関連する前記サンプルを符号化することを控えることを備える、
［Ｃ１１］に記載のデバイス。
［Ｃ１６］
前記サンプルの１つまたは複数のグループの各サンプルは、前記ビデオブロックの量子化残差値の色成分に対応する、
［Ｃ１１］に記載のデバイス。
［Ｃ１７］
前記サンプルの１つまたは複数のグループの各サンプルは、前記ブロックの前記コーディングモードに基づいて、前記ビデオブロックの複数の残差値色成分に対して変換を適用することによって決定された係数に対応する、
［Ｃ１１］に記載のデバイス。
［Ｃ１８］
前記プロセッサは、
有意値を有する前記サンプルの１つまたは複数のグループの最後のサンプルの位置をシグナリングすることと、
前記係数の絶対値を１の所定の値だけ減算することによって、前記最後有意位置に対応する前記係数を調整することと、
前記シグナリングされた位置より前の位置を有する１つまたは複数のサンプルをエントロピーコーディングすることと、
前記シグナリングされた位置の後の位置を有する１つまたは複数の残りのサンプルをコーディングしないことと
を行うようにさらに構成された、［Ｃ１７］に記載のデバイス。
［Ｃ１９］
前記プロセッサは、前記調整された最後有意係数値が０であるときのみ、前記最後有意位置に対応するサインビットをシグナリングするようにさらに構成された、
［Ｃ１８］に記載のデバイス。
［Ｃ２０］
ブロック単位スキップは、前記サンプルがクロマ成分に対応する場合のみ、適用され、前記サンプルがルミナンス成分に対応する場合、適用されない、
［Ｃ１１］に記載のデバイス。
［Ｃ２１］
ビデオデータをエントロピー復号する方法であって、
前記ビデオデータのブロックを表すビットストリームを受信することと、
前記ブロックの色成分に対応するサンプルが前記ビットストリーム中に含まれないことを示す、前記ブロックの前記色成分のためのブロック単位スキップフラグが示されたかどうかを決定することと、
前記ブロック単位スキップフラグが示されなかったという決定に応答して、
前記サンプルのクロマサブサンプリング画像フォーマットを決定することと、
前記ビットストリームをエントロピー復号することを介して前記サンプルの１つまたは複数のグループを生成すること、ここにおいて、前記１つまたは複数のグループの数は、前記クロマサブサンプリング画像フォーマットと、前記サンプルに関連する色成分とに基づく、と、
サンプルの１つまたは複数のグループと、前記ブロックのコーディングモードと、前記クロマサブサンプリング画像フォーマットとに少なくとも部分的に基づいて、前記ブロックを再構成することと
を備える、方法。
［Ｃ２２］
前記ブロックの前記クロマサブサンプリング画像フォーマットが４：２：２である場合、前記グループの数は、前記サンプルがルーマ成分に対応する場合、Ｎであり、前記サンプルがクロマ成分に対応する場合、Ｎ／２であり、
前記ブロックの前記クロマサブサンプリング画像フォーマットが４：２：０である場合、前記グループの数は、前記サンプルがルーマ成分に対応する場合、Ｎであり、前記サンプルがクロマ成分に対応する場合、Ｎ／４である、
［Ｃ２１］に記載の方法。
［Ｃ２３］
前記サンプルの１つまたは複数のグループの各サンプルは、前記ビデオブロックの残差値の色成分に対応する、
［Ｃ２１］に記載の方法。
［Ｃ２４］
有意値を有する前記サンプルの１つまたは複数のグループの最後のサンプルの位置を示す前記ビットストリーム中の信号を識別することと、
前記受信されたビットストリームを使用して、前記シグナリングされた位置より前の位置を有する１つまたは複数のサンプルを再構成することと、
前記シグナリングされた位置の後の位置を有する１つまたは複数の残りのサンプルを所定の値を有するものとして再構成することと
をさらに備える、［Ｃ２１］に記載の方法。
［Ｃ２５］
前記受信されたビットストリームから、前記サンプルの１つまたは複数のグループのうちのサンプルのグループに対応するプレフィックスと１つまたは複数のサフィックスとを識別することと、
前記１つまたは複数のサフィックスの各々の長さを決定するために前記プレフィックスを復号することと、
前記サンプルのグループのうちの１つまたは複数の対応するサンプルの値を決定するために、前記１つまたは複数のサフィックスを並列に復号することと
をさらに備える、［Ｃ２１］に記載の方法。
［Ｃ２６］
ビデオデータをエントロピー復号するためのデバイスであって、
前記ビデオデータのブロックを表すビットストリームの少なくとも一部分を記憶するように構成されたメモリと、
前記メモリと通信しており、
前記ブロックの色成分に対応するサンプルが前記ビットストリーム中に含まれないことを示す、前記ブロックの前記色成分のためのブロック単位スキップフラグが示されたかどうかを決定することと、
前記ブロック単位スキップフラグが示されなかったという決定に応答して、
前記サンプルのクロマサブサンプリング画像フォーマットを決定することと、
前記ビットストリームをエントロピー復号することを介して前記サンプルの１つまたは複数のグループを生成すること、ここにおいて、前記１つまたは複数のグループの数は、前記クロマサブサンプリング画像フォーマットと、前記サンプルに関連する色成分とに基づく、と、
前記サンプルの１つまたは複数のグループと、前記ブロックのコーディングモードと、前記クロマサブサンプリング画像フォーマットとに少なくとも部分的に基づいて、前記ブロックを再構成することと
を行うように構成されたプロセッサと
を備える、デバイス。
［Ｃ２７］
前記ブロックの前記クロマサブサンプリング画像フォーマットが４：２：２である場合、前記グループの数は、前記サンプルがルーマ成分に対応する場合、Ｎであり、前記サンプルがクロマ成分に対応する場合、Ｎ／２であり、
前記ブロックの前記クロマサブサンプリング画像フォーマットが４：２：０である場合、前記グループの数は、前記サンプルがルーマ成分に対応する場合、Ｎであり、前記サンプルがクロマ成分に対応する場合、Ｎ／４である、
［Ｃ２６］に記載のデバイス。
［Ｃ２８］
前記サンプルの１つまたは複数のグループの各サンプルは、前記ビデオブロックの残差値の色成分に対応する、
［Ｃ２６］に記載のデバイス。
［Ｃ２９］
前記プロセッサは、
有意値を有する前記サンプルの１つまたは複数のグループの最後のサンプルの位置を示す前記ビットストリーム中の信号を識別することと、
前記受信されたビットストリームを使用して、前記シグナリングされた位置より前の位置を有する１つまたは複数のサンプルを再構成することと、
前記シグナリングされた位置の後の位置を有する１つまたは複数の残りのサンプルを所定の値を有するものとして再構成することと
を行うようにさらに構成された、［Ｃ２６］に記載のデバイス。
［Ｃ３０］
前記プロセッサは、
前記受信されたビットストリームから、前記サンプルの１つまたは複数のグループのうちのサンプルのグループに対応するプレフィックスと１つまたは複数のサフィックスとを識別することと、
前記１つまたは複数のサフィックスの各々の長さを決定するために前記プレフィックスを復号することと、
前記サンプルのグループのうちの１つまたは複数の対応するサンプルの値を決定するために、前記１つまたは複数のサフィックスを並列に復号することと
を行うようにさらに構成された、［Ｃ２６］に記載のデバイス。
【図１Ａ】
0006710755.tif 000002
【図１Ｂ】
0006710755.tif 000003
【図２Ａ】
0006710755.tif 000004
【図２Ｂ】
0006710755.tif 000005
【図３】
0006710755.tif 000006
【図４】
0006710755.tif 000007
【図５】
0006710755.tif 000008
【図６】
0006710755.tif 000009
【図７】
0006710755.tif 000010
【図８】
0006710755.tif 000011
【図９】
0006710755.tif 000012
【図１０】
0006710755.tif 000013
【図１１】
0006710755.tif 000014
【図１２Ａ】
0006710755.tif 000015
【図１２Ｂ】
0006710755.tif 000016
【図１３Ａ】
0006710755.tif 000017
【図１３Ｂ】
0006710755.tif 000018
【図１４】
0006710755.tif 000019
【図１５】
0006710755.tif 000020
【図１６】
0006710755.tif 000021
【図１７】
0006710755.tif 000022