(57)【特許請求の範囲】
【請求項１】
ビデオデータをエントロピー符号化する方法であって、
複数のコーディングモードから、前記ビデオデータの第1のブロックのための第1のコーディングモードを選択するステップと、
前記複数のコーディングモードから、前記ビデオデータの第2のブロックのための第2のコーディングモードを選択するステップと、
前記第1のブロックのための前記選択されたコーディングモードが前記第1のコーディングモードであることに応答して、第1の区分化技法を介して、前記ビデオデータの前記第1のブロックを前記ブロックのコーディングモードに少なくとも部分的に基づいてサンプルの第1の複数のグループに区分化するステップと、
前記第2のブロックのための前記選択されたコーディングモードが前記第2のコーディングモードであることに応答して、第2の区分化技法を介して、前記ビデオデータの前記第2のブロックをサンプルの第2の複数のグループに区分化するステップであって、前記第1の区分化技法および前記第2の区分化技法は異なる、ステップと、
前記第1のブロックと前記第2のブロックの各々に対して、
前記第1のブロックまたは前記第2のブロックの前記サンプルの前記複数のグループのうちの1つにおけるサンプルの符号化を、前記1つのグループにおける前記サンプルのすべてが所定の値に等しい値を有することに応答してスキップし、前記第1のブロックまたは前記第2のブロックの前記サンプルの前記複数のグループのうちの残存グループの各々を、対応する残存グループのサンプルの値を示すサフィックスおよび前記サフィックスのサイズを示すプレフィックスを使用して、前記対応する残存グループにおける前記サンプルのうちの少なくとも1つが前記所定の値に等しくない値を有することに応答してコーディングするステップと
を含む方法。
【請求項２】
前記第1のブロックおよび前記第2のブロックの各々の前記サンプルは複数の色座標を含み、前記ビデオデータの前記ブロックの前記区分化は、
前記第1のブロックまたは前記第2のブロックの前記サンプルを、それらの色座標に少なくとも部分的に基づいて分離するステップと、
色座標ごとに、同じ色座標を有する前記第1のブロックまたは前記第2のブロックの前記サンプルをサンプルの前記複数のグループに区分化するステップと
を含む、請求項1に記載の方法。
【請求項３】
前記第1のブロックおよび前記第2のブロックの各々の前記区分化は、色座標ごとに、前記第1のブロックおよび前記第2のブロックの前記第1のコーディングモードまたは前記第2のコーディングモードがブロック予測モードまたは差分パルス符号変調(DPCM)モードであることに応答して、同じ数のサンプルを有する前記複数のグループに前記第1のブロックおよび前記第2のブロックを区分化するステップをさらに含む、請求項2に記載の方法。
【請求項４】
前記第1のブロックおよび前記第2のブロックの前記エントロピー符号化は、前記第1のブロックおよび前記第2のブロックにおける同じ色座標を有する前記サンプルに対して、前記第1のブロックおよび前記第2のブロックにおける同じ色座標に関連する前記サンプルのすべてが前記所定の値に等しい値を有することに応答してブロック単位スキップを実施するステップをさらに含み、前記ブロック単位スキップは、前記第1のブロックおよび前記第2のブロックにおける同じ色座標に関連する前記サンプルを符号化するのを控えることを含む、請求項3に記載の方法。
【請求項５】
前記第1のブロックの前記区分化は、色座標ごとに、前記第1のブロックの前記第1のコーディングモードが変換モードであることに応答して、前記ブロックを第1のグループおよび第2のグループに区分化するステップをさらに含み、前記第1のグループおよび前記第2のグループは異なる数のサンプルを有する、請求項2に記載の方法。
【請求項６】
前記第1のブロックに少なくとも1つの変換を適用することを介して、前記複数のサンプルを生成するステップであって、前記サンプルの各々は、対応する周波数に関連する異なる周波数係数を表す、ステップと、
対応する周波数範囲内にある周波数に関連するサンプルを収集することによって、各第1のグループを形成するステップと
をさらに含む、請求項5に記載の方法。
【請求項７】
最低周波数に関連するサンプルのグループは、最高周波数に関連するサンプルのグループよりも少ないサンプルを含む、請求項6に記載の方法。
【請求項８】
前記サンプルを、最低周波数から最高周波数までの対応する周波数に基づいて順序付けるステップと、
前記所定の値に等しくない前記最高周波数に関連するサンプルを判定するステップと、
前記所定の値に等しくない前記最高周波数に関連する前記サンプルの位置をシグナリングするステップと
をさらに含む、請求項6に記載の方法。
【請求項９】
以下の式、すなわち、
Cnew=(|C|-1)*sign(C)
を介して前記所定の値に等しくない最高周波数に関連する前記サンプルの値を調整するステップをさらに含み、
ここで、Cnewは調整された値であり、Cは、前記所定の値に等しくない最高周波数に関連する前記サンプルの前記値であり、sign(C)は、前記所定の値に等しくない最高周波数に関連する前記サンプルの符号値である、請求項8に記載の方法。
【請求項１０】
前記調整された値Cnewがゼロに等しいときに、前記所定の値に等しくない最高周波数に関連する前記サンプルの前記符号値をシグナリングするステップをさらに含む、請求項9に記載の方法。
【請求項１１】
ビデオデータをエントロピー符号化するためのデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信しているプロセッサと
を備え、前記プロセッサは、
複数のコーディングモードから、前記ビデオデータのブロックのためのコーディングモードを選択するステップと、
前記選択されたコーディングモードが第1のコーディングモードであることに応答して、第1の区分化技法を介して、前記ビデオデータの前記ブロックをサンプルの複数のグループに区分化するステップと、
前記選択されたコーディングモードが第2のコーディングモードであることに応答して、第2の区分化技法を介して、前記サンプルをサンプルの前記複数のグループに区分化するステップと、
前記サンプルの前記複数のグループのうちの1つにおけるサンプルの符号化を、前記1つのグループにおける前記サンプルのすべてが所定の値に等しい値を有することに応答してスキップし、前記サンプルの前記複数のグループのうちの残存グループの各々を、対応する残存グループのサンプルの値を示すサフィックスおよび前記サフィックスのサイズを示すプレフィックスを使用して、前記対応する残存グループにおける前記サンプルのうちの少なくとも1つが前記所定の値に等しくない値を有することに応答してコーディングするステップと
を行うように構成される、デバイス。
【請求項１２】
前記ブロックの前記サンプルは複数の色座標を含み、前記プロセッサは、
前記ブロックの前記サンプルを、それらの色座標に少なくとも部分的に基づいて分離することと、
色座標ごとに、同じ色座標を有する前記ブロックの前記サンプルをサンプルの前記複数のグループに区分化することと
を行うようにさらに構成される、請求項11に記載のデバイス。
【請求項１３】
前記プロセッサは、色座標ごとに、前記ブロックの前記コーディングモードがブロック予測モードまたは差分パルス符号変調(DPCM)モードであることに応答して、同じ数のサンプルを有する前記複数のグループに前記ブロックを区分化するようにさらに構成される、請求項11に記載のデバイス。
【請求項１４】
前記プロセッサは、前記ブロックにおける同じ色座標を有する前記サンプルに対して、前記ブロックにおける同じ色座標に関連する前記サンプルのすべてが前記所定の値に等しい値を有することに応答してブロック単位スキップを実施するようにさらに構成され、前記ブロック単位スキップは、ブロック単位スキップ値をシグナリングすること、および前記ブロックにおける同じ色座標に関連する前記サンプルを符号化するのを控えることを含む、請求項13に記載のデバイス。
【請求項１５】
前記プロセッサは、色座標ごとに、前記ブロックの前記コーディングモードが変換モードであることに応答して、前記ブロックを第1のグループおよび第2のグループに区分化するようにさらに構成され、前記第1のグループおよび前記第2のグループは異なる数のサンプルを有する、請求項12に記載のデバイス。
【請求項１６】
前記プロセッサは、
前記ブロックに少なくとも1つの変換を適用することを介して、前記複数のサンプルを生成することであって、前記サンプルの各々は、対応する周波数に関連する異なる周波数係数を表す、生成することと、
対応する周波数範囲内にある周波数に関連するサンプルを収集することによって、各グループを形成することと
を行うようにさらに構成される、請求項15に記載のデバイス。
【請求項１７】
最低周波数に関連するサンプルのグループは、最高周波数に関連するサンプルのグループよりも少ないサンプルを含む、請求項16に記載のデバイス。
【請求項１８】
前記プロセッサは、
前記サンプルを、最低周波数から最高周波数までの対応する周波数に基づいて順序付けることと、
前記所定の値に等しくない前記最高周波数に関連するサンプルを判定することと、
前記所定の値に等しくない前記最高周波数に関連する前記サンプルの位置をシグナリングすることと
を行うようにさらに構成される、請求項16に記載のデバイス。
【請求項１９】
ビデオデータをエントロピー復号する方法であって、
前記ビデオデータの第1のブロックと第2のブロックを表すビットストリームを受信するステップであって、前記第1のブロックはサンプルの第1の複数のグループを含み、前記第2のブロックはサンプルの第2の複数のグループを含み、前記ビットストリームは、前記第1のブロックまたは前記第2のブロックのサンプルの対応するグループが前記ビットストリームに含まれないかどうかを示す1つのグループ単位スキップ値を含む、ステップと、
前記グループ単位スキップ値に少なくとも部分的に基づいて前記ビットストリームをエントロピー復号することを介して前記サンプルの前記第1の複数のグループと前記サンプルの前記第2の複数のグループを生成するステップと、
前記サンプルの前記第1の複数のグループが第1のコーディングモードを介して符号化され、前記サンプルの前記第2の複数のグループが第2のコーディングモードを介して符号化されると判定するステップと、
前記サンプルの前記第1の複数のグループのための前記コーディングモードが前記第1のコーディングモードであることに応答して、前記サンプルの前記第1の複数のグループを、第1のグループ化技術を用いて前記第1のブロックにグループ化するステップと、
前記サンプルの前記第2の複数のグループのための前記コーディングモードが前記第2のコーディングモードであることに応答して、前記サンプルの前記第2の複数のグループを、第2のグループ化技術を用いて前記第2のブロックにグループ化するステップであって、前記第1のグループ化技術と前記第2のグループ化技術は異なる、ステップと、
を含む方法。
【請求項２０】
前記ブロックの前記サンプルは複数の色座標を含み、前記方法は、
サンプルの前記複数のグループを、それらの色座標に少なくとも部分的に基づいてグループ化するステップと、
前記ブロックを、サンプルの前記複数のグループを組み合わせることを介して再構築するステップと
をさらに含む、請求項19に記載の方法。
【請求項２１】
前記ブロックの前記コーディングモードが変換モードであることに応答して、前記サンプルに少なくとも1つの逆変換を適用するステップをさらに含み、サンプルの前記複数のグループのうちの第1のグループは、サンプルの前記複数のグループのうちの第2のグループとは異なる数のサンプルを有する、請求項19に記載の方法。
【請求項２２】
所定の値を有するように前記グループ単位スキップ値に対応するサンプルの前記グループにおける前記サンプルの各々を生成するステップをさらに含む、請求項19に記載の方法。
【請求項２３】
前記所定の値に等しくない最高周波数に関連するサンプルの位置を受信するステップと、
前記所定の値を有するように、前記所定の値に等しくない前記最高周波数よりも高い周波数に関連するサンプルの前記複数のグループの前記サンプルを生成するステップと
をさらに含む、請求項22に記載の方法。
【請求項２４】
ビデオデータをエントロピー復号するためのデバイスであって、
前記ビデオデータのブロックを表すビットストリームの少なくとも一部分を記憶するように構成されたメモリであって、前記ブロックは、サンプルの複数のグループを含み、前記ビットストリームは、前記ブロックのサンプルの対応するグループが前記ビットストリームに含まれないかどうかを示す少なくとも1つのグループ単位スキップ値を含む、メモリと、
前記メモリと通信しているプロセッサと
を備え、前記プロセッサは、
前記グループ単位スキップ値に少なくとも部分的に基づいて前記ビットストリームをエントロピー復号することを介して前記サンプルの前記複数のグループを生成するステップと、
前記サンプルの前記複数のグループが複数のコーディングモードのうち1つを介して符号化されると判定するステップと、
前記コーディングモードが第1のコーディングモードであることに応答して、前記サンプルの前記複数のグループを、第1のグループ化技術を用いて第1のブロックにグループ化するステップと、
前記コーディングモードが第2のコーディングモードであることに応答して、前記サンプルの前記第2の複数のグループを、第2のグループ化技術を用いて第2のブロックにグループ化するステップであって、前記第1のグループ化技術と前記第2のグループ化技術は異なる、ステップと、
を行うように構成される、デバイス。
【請求項２５】
前記ブロックの前記サンプルは複数の色座標を含み、前記プロセッサは、
サンプルの前記複数のグループを、それらの色座標に少なくとも部分的に基づいてグループ化することと、
前記ブロックを、サンプルの前記複数のグループを組み合わせることを介して再構築することと
を行うようにさらに構成される、請求項24に記載のデバイス。
【請求項２６】
前記プロセッサは、前記ブロックの前記コーディングモードが変換モードであることに応答して、前記サンプルに少なくとも1つの逆変換を適用するようにさらに構成され、サンプルの前記複数のグループのうちの第1のグループは、サンプルの前記複数のグループのうちの第2のグループとは異なる数のサンプルを有する、請求項24に記載のデバイス。
【請求項２７】
前記プロセッサは、所定の値を有するように前記グループ単位スキップ値に対応するサンプルの前記グループにおける前記サンプルの各々を生成するようにさらに構成される、請求項24に記載のデバイス。
【請求項２８】
前記プロセッサは、
前記所定の値に等しくない最高周波数に関連するサンプルの位置を受信することと、
前記所定の値を有するように、前記所定の値に等しくない前記最高周波数よりも高い周波数に関連するサンプルの前記複数のグループの前記サンプルを生成することと
を行うようにさらに構成される、請求項27に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ビデオコーディングおよび圧縮の分野に関し、詳細には、ディスプレイストリーム圧縮(DSC)など、ディスプレイリンクを介した送信のためのビデオ圧縮に関する。
【背景技術】
【０００２】
デジタルビデオ能力は、デジタルテレビジョン、携帯情報端末(PDA)、ラップトップコンピュータ、デスクトップモニタ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲のディスプレイに組み込まれ得る。ディスプレイリンクは、ディスプレイを適切なソースデバイスに接続するのに使われる。ディスプレイリンクの帯域幅要件は、ディスプレイの解像度に比例し、したがって、高解像度ディスプレイは広帯域幅ディスプレイリンクを要する。いくつかのディスプレイリンクは、高解像度ディスプレイをサポートするための帯域幅を持たない。ビデオ圧縮は、高解像度ディスプレイにデジタルビデオを提供するのにより低い帯域幅のディスプレイリンクを使えばよいように、帯域幅要件を削減するのに使われ得る。
【０００３】
他のやり方では、ピクセルデータに対して画像圧縮を利用することを試みた。ただし、そのような方式は、視覚的に無損失ではないこともあり、または従来のディスプレイデバイスにおいて実装するのが難しく、コストがかかる場合がある。
【０００４】
ビデオエレクトロニクススタンダーズアソシエーション(VESA:Video Electronics Standards Association)が、ディスプレイリンクビデオ圧縮のための規格としてディスプレイストリーム圧縮(DSC)を開発した。DSCなどのディスプレイリンクビデオ圧縮技法は、特に、視覚的に無損失である(すなわち、圧縮がアクティブであることがユーザにわからないようなレベルの品質をピクチャが有する)ピクチャ品質を提供するべきである。ディスプレイリンクビデオ圧縮技法は、従来のハードウェアを用いてリアルタイムで実装するのが容易であり、コストがかからない方式も提供するべきである。
【発明の概要】
【課題を解決するための手段】
【０００５】
本開示のシステム、方法、およびデバイスは、いくつかの革新的態様をそれぞれ有し、それらの態様のいずれの1つも、本明細書で開示する望ましい属性を単独では担わない。
【０００６】
一態様では、ビデオデータをエントロピー符号化する方法は、ビデオデータのブロックをサンプルの複数のグループに、ブロックのコーディングモードに少なくとも部分的に基づいて区分化するステップと、複数のグループのうちの少なくとも1つに対して、少なくとも1つのグループにおけるサンプルのすべてが所定の値に等しい値を有することに応答してグループ単位スキップを実施することを介して、ブロックをエントロピー符号化するステップであって、グループ単位スキップは、グループ単位スキップ値をシグナリングすること、および少なくとも1つのグループにおけるサンプルを符号化するのを控えることを含む、ステップとを含む。
【０００７】
別の態様では、ビデオデータをエントロピー符号化するためのデバイスは、ビデオデータを記憶するように構成されたメモリと、メモリと通信しているプロセッサとを備え、プロセッサは、ビデオデータのブロックをサンプルの複数のグループに、ブロックのコーディングモードに少なくとも部分的に基づいて区分化することと、複数のグループのうちの少なくとも1つに対して、少なくとも1つのグループにおけるサンプルのすべてが所定の値に等しい値を有することに応答してグループ単位スキップを実施することを介して、ブロックをエントロピー符号化することであって、グループ単位スキップは、グループ単位スキップ値をシグナリングすること、および少なくとも1つのグループにおけるサンプルを符号化するのを控えることを含む、エントロピー符号化することとを行うように構成される。
【０００８】
別の態様では、ビデオデータをエントロピー復号する方法は、ビデオデータのブロックを表すビットストリームを受信するステップであって、ブロックは、サンプルの複数のグループを含み、ビットストリームは、ブロックのサンプルの対応するグループがビットストリームに含まれないことを示す少なくとも1つのグループ単位スキップ値を含む、ステップと、サンプルの複数のグループを、グループ単位スキップ値に少なくとも部分的に基づいてビットストリームをエントロピー復号することを介して生成するステップと、ブロックを、サンプルの複数のグループおよびブロックのコーディングモードに少なくとも部分的に基づいて再構築するステップとを含む。
【０００９】
また別の態様では、ビデオデータをエントロピー復号するためのデバイスは、ビデオデータのブロックを表すビットストリームを記憶するように構成されたメモリであって、ブロックは、サンプルの複数のグループを含み、ビットストリームは、ブロックのサンプルの対応するグループがビットストリームに含まれないことを示す少なくとも1つのグループ単位スキップ値を含む、メモリと、メモリと通信しているプロセッサとを備え、プロセッサは、サンプルの複数のグループを、グループ単位スキップ値に少なくとも部分的に基づいてビットストリームをエントロピー復号することを介して生成することと、ブロックを、サンプルの複数のグループおよびブロックのコーディングモードに少なくとも部分的に基づいて再構築することとを行うように構成される。
【図面の簡単な説明】
【００１０】
【図１Ａ】本開示で説明する態様による技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図である。
【図１Ｂ】本開示で説明する態様による技法を実施し得る別の例示的なビデオ符号化および復号システムを示すブロック図である。
【図２Ａ】本開示で説明する態様による技法を実装し得るビデオエンコーダの例を示すブロック図である。
【図２Ｂ】本開示で説明する態様による技法を実装し得るビデオデコーダの例を示すブロック図である。
【図３】本開示で説明する態様による、予測コーディングモードのブロックを区分化する方法を示す図である。
【図４】本開示で説明する態様による、変換係数コーディングモードのブロックを区分化する方法を示す図である。
【図５】本開示で説明する態様による、変換係数コーディングモードのブロックを区分化する方法を示す図である。
【図６】本開示で説明する態様による、変換係数コーディングモードのブロックを区分化する方法を示す図である。
【図７】本開示で説明する態様による、変換係数コーディングモードのブロックを区分化する方法を示す図である。
【図８】本開示で説明する態様による、変換係数コーディングモードのブロックを区分化する別の方法を示す図である。
【図９】本開示で説明する態様による、ブロックを区分化する方法を示す図である。
【図１０】本開示で説明する態様による、ブロックを区分化する方法を示す図である。
【図１１】本開示で説明する態様による、ブロックを区分化する方法を示す図である。
【図１２】本開示で説明する態様による、ビデオデータをエントロピー符号化するための方法を示すフローチャートである。
【図１３】本開示で説明する態様による、ビデオデータをエントロピー復号するための方法を示すフローチャートである。
【発明を実施するための形態】
【００１１】
概して、本開示は、ディスプレイストリーム圧縮(DSC)などのビデオ圧縮技法を改良する方法に関する。より具体的には、本開示は、ビデオデータブロックをサンプルの複数のグループに区分化することを含むエントロピーコーディングするためのシステムおよび方法に関する。
【００１２】
いくつかの実施形態は、DSC規格のコンテキストにおいて本明細書で説明されるが、本明細書で開示するシステムおよび方法は、どの適切なビデオコーディング規格にも適用可能であり得ることが当業者には諒解されよう。たとえば、本明細書で開示する実施形態は、国際電気通信連合(ITU)電気通信規格化部門(ITU-T)H.261、国際標準化機構/国際電気標準会議(ISO/IEC)Moving Picture Experts Group-1(MPEG 1)Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG 4 Visual、ITU-T H.264(ISO/IEC MPEG-4 AVCとしても知られる)、高効率ビデオコーディング(HEVC)という規格のうちの1つまたは複数、およびそのような規格の拡張に適用可能であり得る。また、本開示で説明する技法は、将来的に開発される規格の一部になり得る。言い換えれば、本開示で説明する技法は、以前開発されたビデオコーディング規格、現在開発中のビデオコーディング規格、および今後のビデオコーディング規格に適用可能であり得る。
【００１３】
エントロピーコーディングは、可変長コードワードにより情報の各固有シンボルを表すことを一般に含む情報をコーディングする方法である。エントロピーコーディングでは、より一般的なシンボルは通常、より短いコードワードを使用して表される。したがって、より一般的なシンボルは、より短いコードワードの使用に基づいてより少ないビットを使用して表されるので、情報は圧縮され得る。
【００１４】
DSC規格のバージョン1.0は、デルタサイズユニット可変長コーディング(DSU-VLC:delta size unit-variable length coding)セマンティクスを提案している。DSC規格のバージョン1.0では、各DSU-VLCユニットは、プレフィックス部分およびサフィックス部分を使用して、ピクセルのグループの残差値をコーディングする。本開示の少なくとも1つの態様は、DSU-VLCスタイルコーディングセマンティクス(以下では一般に、DSU-VLCと互換的に呼ばれる)へのエントロピーコーディング原理の組込みに関する。したがって、本開示の少なくとも1つの態様は、エントロピーコーディングに関連するコーディング効率をDSU-VLCセマンティクスに統合することができる。
【００１５】
ハフマン符号、算術符号、指数ゴロム符号、ライス符号などのような、いくつかの普及しているエントロピーコーディング技法が存在する。だが、これらの技法は通常、1サンプル/クロックの限られたスループットを有し、このスループットは、高解像度ディスプレイおよびパネルなど、用途によっては低すぎることがある。すなわち、従来のコーディングハードウェアは、DSC規格など、ある種のコーディング規格において望まれるような、視覚的に無損失なコーディングレートを維持する一方で、普及しているエントロピーコーディング技法を利用することが可能なほど十分なクロックレートを有しないことがある。したがって、本開示の少なくとも1つの態様は、より高いスループット、たとえば4サンプル/クロックのスループットを有するエントロピーコーディング技法に関する。
【００１６】
ビデオコーディング規格
ビデオ画像、TV画像、静止画像またはビデオレコーダもしくはコンピュータによって生成された画像などのデジタル画像は、水平および垂直ライン中に配列されたピクセルまたはサンプルを含み得る。単一の画像中のピクセルの数は通常、数万である。各ピクセルは通常、ルミナンスおよびクロミナンス情報を含む。圧縮なしだと、画像エンコーダから画像デコーダへ伝えられるべき莫大な量の情報により、リアルタイムの画像送信が非現実的になる。送信されるべき情報の量を削減するために、JPEG、MPEGおよびH.263規格など、いくつかの異なる圧縮方法が開発されている。
【００１７】
ビデオコーディング規格は、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、ITU-T H.264(ISO/IEC MPEG-4 AVCとしても知られる)、およびHEVC(そのような規格の拡張を含む)を含む。
【００１８】
さらに、ビデオコーディング規格、すなわちDSCが、VESAによって開発されている。DSC規格は、ビデオを、ディスプレイリンクを介した送信用に圧縮することができるビデオ圧縮規格である。ディスプレイの解像度が増大すると、ディスプレイを駆動するのに求められるビデオデータの帯域幅が対応して増大する。いくつかのディスプレイリンクは、そのような解像度向けのディスプレイにビデオデータのすべてを送信するための帯域幅を持たない場合がある。したがって、DSC規格は、ディスプレイリンクを介した、相互動作可能な、視覚的に無損失な圧縮のための圧縮規格を規定する。
【００１９】
DSC規格は、H.264およびHEVCなど、他のビデオコーディング規格とは異なる。DSCは、フレーム内圧縮を含むが、フレーム間圧縮は含まず、これは、ビデオデータをコーディングする際に、DSC規格によって時間情報を使うことができないことを意味する。対照的に、他のビデオコーディング規格は、ビデオコーディング技法においてフレーム間圧縮を利用し得る。
【００２０】
ビデオコーディングシステム
新規のシステム、装置、および方法の様々な態様について、添付の図面を参照しながら以下にさらに十分に説明する。しかしながら、本開示は、多くの異なる形態で具現化され得るものであり、本開示の全体を通して示される任意の特定の構造または機能に限定されるものと解釈されるべきでない。むしろ、これらの態様は、本開示が、完全で完璧となるように、また当業者に本開示の範囲を十分に伝えるように提供される。本明細書の教示に基づいて、本開示の範囲は、本開示の他の態様とは無関係に実装されるにせよ、本開示の他の態様と組み合わせて実装されるにせよ、本明細書で開示する新規のシステム、装置、および方法のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。たとえば、本明細書に記載される任意の数の態様を使用して、装置が実装されてよく、または方法が実践されてよい。さらに、本開示の範囲は、本明細書に記載の本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能性、または構造および機能性を使用して実施されるそのような装置または方法をカバーするものとする。本明細書で開示する任意の態様は、特許請求の範囲の1つまたは複数の要素によって具現化され得ることを理解されたい。
【００２１】
特定の態様について本明細書で説明するが、これらの態様の数多くの変形および変更が本開示の範囲内に入る。好ましい態様のいくつかの利益および利点について述べるが、本開示の範囲は、特定の利益、用途、または目的に限定されることは意図していない。むしろ、本開示の態様は、異なるワイヤレス技術、システム構成、ネットワーク、および送信プロトコルに広く適用可能であることを意図しており、それらのうちのいくつかが例として図および好ましい態様の以下の説明において示される。詳細な説明および図面は、限定的ではなく本開示の例示にすぎず、本開示の範囲は、添付の特許請求の範囲およびその均等物によって定義される。
【００２２】
添付の図面は、例を示す。添付の図面において参照番号によって示される要素は、以下の説明において同様の参照番号によって示される要素に対応する。本開示において、順序を示す言葉(たとえば、「第1の」、「第2の」、「第3の」など)で始まる名称を有する要素は、それらの要素が特定の順序を有することを必ずしも含意するわけではない。そうではなく、そのような順序を示す言葉は単に、同じまたは類似したタイプの異なる要素を指すのに使われる。
【００２３】
図1Aは、本開示で説明する態様による技法を利用し得る例示的なビデオコーディングシステム10を示すブロック図である。本明細書で使用し、説明する「ビデオコーダ」または「コーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化およびビデオ復号を総称的に指す場合がある。ビデオエンコーダおよびビデオデコーダに加えて、本出願で説明する態様は、トランスコーダ(たとえば、ビットストリームを復号し、別のビットストリームを再符号化することができるデバイス)およびミドルボックス(たとえば、ビットストリームを修正し、変換し、かつ/またはさもなければ操作することができるデバイス)など、他の関連デバイスに拡張され得る。
【００２４】
図1Aに示すように、ビデオコーディングシステム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを生成するソースデバイス12を含む。図1Aの例において、ソースデバイス12および宛先デバイス14は別個のデバイスを構成する。ただし、ソースデバイス12および宛先デバイス14は、図1Bの例に示すように、同じデバイスの上にあるか、またはその一部であってよいことに留意されたい。
【００２５】
図1Aをもう一度参照すると、ソースデバイス12および宛先デバイス14は、それぞれ、デスクトップコンピュータ、ノートブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータ、ビデオストリーミングデバイス、アイウェアおよび/またはウェアラブルコンピュータなどのエンティティ(たとえば、人間、動物、および/または別の制御されたデバイス)によって(エンティティに)装着可能である(または取外し可能な形で取付け可能な)デバイス、エンティティ内で消費され、取り込まれ、または配置され得るデバイスまたは装置などを含む、広範囲のデバイスのいずれかを含むことができる。様々な実施形態において、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備されてもよい。
【００２６】
宛先デバイス14は、リンク16を介して、復号されるべき符号化ビデオデータを受信し得る。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備えてもよい。図1Aの例では、リンク16は、ソースデバイス12がリアルタイムで宛先デバイス14に符号化ビデオデータを送信することを可能にする通信媒体を備えてもよい。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信されてもよい。通信媒体は、無線周波数(RF)スペクトル、または1つもしくは複数の物理的伝送線など、任意のワイヤレス通信媒体またはワイヤード通信媒体を備えてもよい。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワークのようなパケットベースネットワーク、またはインターネットのようなグローバルネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【００２７】
図1Aの例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。いくつかの場合には、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含んでもよい。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそのようなソースの組合せ、などのソースを含んでもよい。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、図1Bの例に示すように、いわゆる「カメラフォン」または「ビデオフォン」を形成し得る。しかしながら、本開示で説明する技法は、一般にビデオコーディングに適用可能であってもよく、ワイヤレス用途および/またはワイヤード用途に適用されてもよい。
【００２８】
キャプチャされた、事前にキャプチャされた、またはコンピュータによって生成されたビデオは、ビデオエンコーダ20によって符号化されてもよい。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に送信され得る。符号化ビデオデータは、さらに(または代替的に)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのために記憶デバイス31上に記憶され得る。図1Aおよび図1Bに示すビデオエンコーダ20は、図2Aに示すビデオエンコーダ20または本明細書で説明する他のどのビデオエンコーダも含み得る。
【００２９】
図1Aの例では、宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。いくつかの場合には、入力インターフェース28は、受信機および/またはモデムを含んでもよい。宛先デバイス14の入力インターフェース28は、リンク16を介して、かつ/または記憶デバイス31から、符号化ビデオデータを受信し得る。リンク16を介して通信され、または記憶デバイス31上に与えられた符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ30などのビデオデコーダが使用するための、ビデオエンコーダ20によって生成される様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体上に記憶された、またはファイルサーバ上に記憶された符号化ビデオデータとともに含まれてもよい。図1Aおよび図1Bに示すビデオデコーダ30は、図2Bに示すビデオデコーダ30または本明細書で説明する他のどのビデオデコーダも含み得る。
【００３０】
ディスプレイデバイス32は、宛先デバイス14と一体化されてよく、またはその外部にあってよい。いくつかの例では、宛先デバイス14は、集積ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。一般に、ディスプレイデバイス32は、復号ビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを含み得る。
【００３１】
関連態様において、図1Bは、例示的なビデオコーディングシステム10'を示し、ここで、ソースデバイス12および宛先デバイス14は、デバイス11の上にあるか、またはその一部である。デバイス11は、「スマート」フォンなどのような電話ハンドセットであってよい。デバイス11は、ソースデバイス12および宛先デバイス14と動作可能に通信するプロセッサ/コントローラデバイス13(随意で存在する)を含み得る。図1Bのビデオコーディングシステム10'、およびその構成要素は、場合によっては、図1Aのビデオコーディングシステム10、およびその構成要素と同様である。
【００３２】
ビデオエンコーダ20およびビデオデコーダ30は、DSCなどのビデオ圧縮規格に従って動作し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG-4、Part 10、AVC、HEVCと呼ばれるITU-T H.264規格など、他のプロプライエタリ規格もしくは業界規格、またはそのような規格の拡張に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例には、MPEG-2およびITU-T H.263がある。
【００３３】
図1Aおよび図1Bの例には示されていないが、ビデオエンコーダ20およびビデオデコーダ30は各々、オーディオエンコーダおよびオーディオデコーダと一体化され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX-DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)のような他のプロトコルに準拠し得る。
【００３４】
ビデオエンコーダ20およびビデオデコーダ30は各々、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなど、様々な適切なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアに実装されるとき、デバイスは、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実施するために1つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてもよく、これらのいずれもが、それぞれのデバイス内の複合エンコーダ/デコーダの一部として統合されてもよい。
【００３５】
ビデオコーディングプロセス
上で手短に言及したように、ビデオエンコーダ20はビデオデータを符号化する。ビデオデータは、1つまたは複数のピクチャを含み得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。いくつかの事例では、ピクチャはビデオ「フレーム」と呼ばれ得る。ビデオエンコーダ20がビデオデータを符号化するとき、ビデオエンコーダ20はビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化表現を形成するビットのシーケンスを含み得る。ビットストリームは、コード化ピクチャおよび関連データを含み得る。コード化ピクチャは、ピクチャのコード化表現である。
【００３６】
ビットストリームを生成するために、ビデオエンコーダ20は、ビデオデータ中の各ピクチャに対して符号化動作を実施し得る。ビデオエンコーダ20がピクチャに対して符号化動作を実施するとき、ビデオエンコーダ20は、一連のコード化ピクチャおよび関連データを生成し得る。関連データは、量子化パラメータ(QP)などのコーディングパラメータのセットを含み得る。コード化ピクチャを生成するために、ビデオエンコーダ20は、ピクチャを、等しいサイズのビデオブロックに区分化すればよい。ビデオブロックは、サンプルの2次元アレイであり得る。コーディングパラメータは、ビデオデータのすべてのブロックについてコーディングオプション(たとえば、コーディングモード)を定義し得る。コーディングオプションは、所望のレート歪み特性を達成するために選択されてよい。
【００３７】
いくつかの例では、ビデオエンコーダ20は、ピクチャを複数のスライスに区分化し得る。スライスの各々は、画像またはフレーム中の領域の残りからの情報なしで単独で復号できる、画像(たとえば、フレーム)中の空間的に別個の領域を含み得る。各画像またはビデオフレームは、単一のスライス中で符号化されてもよく、各画像またはビデオフレームは、いくつかのスライス中で符号化されてもよい。DSCにおいて、各スライスを符号化するために割り振られるターゲットビットは、実質的に固定であり得る。ピクチャに対して符号化動作を実施することの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化動作を実施し得る。ビデオエンコーダ20がスライスに対して符号化動作を実施するとき、ビデオエンコーダ20は、スライスに関連する符号化データを生成することができる。スライスに関連する符号化データは、「コード化スライス」と呼ばれ得る。
【００３８】
DSCビデオエンコーダ
図2Aは、本開示で説明する態様による技法を実装し得るビデオエンコーダ20の例を示すブロック図である。ビデオエンコーダ20は、本開示の技法のうちの一部または全部を実施するように構成され得る。いくつかの例では、本開示で説明する技法は、ビデオエンコーダ20の様々な構成要素の間で共有され得る。いくつかの例では、追加的または代替的に、プロセッサ(図示せず)が本開示で説明する技法のうちの一部または全部を実施するように構成され得る。
【００３９】
説明のために、本開示は、DSCコーディングのコンテキストにおいてビデオエンコーダ20について説明する。ただし、本開示の技法は他のコーディング規格または方法に適用可能であり得る。
【００４０】
図2Aの例において、ビデオエンコーダ20は複数の機能構成要素を含む。ビデオエンコーダ20の機能構成要素は、色空間コンバータ105、バッファ110、平坦度検出器115、レートコントローラ120、予測器、量子化器、および再構築器構成要素125、ラインバッファ130、索引付き色履歴135、エントロピーエンコーダ140、サブストリームマルチプレクサ145、ならびにレートバッファ150を含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【００４１】
色空間コンバータ105は、入力色空間を、コーディング実装において使われる色空間にコンバートし得る。たとえば、例示的な一実施形態では、入力ビデオデータの色空間は、赤、緑、および青(RGB)色空間にあり、コーディングは、ルミナンスY、クロミナンス緑Cg、およびクロミナンス橙Co(YCgCo)色空間において実装される。色空間コンバージョンは、ビデオデータへのシフトおよび加算を含む方法によって実施され得る。他の色空間中の入力ビデオデータを処理することができ、他の色空間へのコンバージョンも実施できることに留意されたい。
【００４２】
関連態様において、ビデオエンコーダ20は、バッファ110、ラインバッファ130、および/またはレートバッファ150を含み得る。たとえば、バッファ110は、色空間コンバートされたビデオデータを、ビデオエンコーダ20の他の部分によるそれの使用に先立って、保持することができる。別の例では、ビデオデータはRGB色空間中に記憶されることがあり、色空間コンバートされたデータはより多くのビットを要し得るので、色空間コンバージョンは必要に応じて実施されればよい。
【００４３】
レートバッファ150は、レートコントローラ120に関連して以下でより詳細に説明する、ビデオエンコーダ20内のレート制御機構の一部として機能し得る。各ブロックを符号化するのに費やされるビットは、ブロックの性質に基づいてかなり大幅に変わり得る。レートバッファ150は、圧縮ビデオにおけるレート変動を平滑化することができる。いくつかの実施形態では、バッファからビットが固定ビットレートで取り出される固定ビットレート(CBR)バッファモデルが利用される。CBRバッファモデルにおいて、ビデオエンコーダ20が、ビットストリームにあまりにも多くのビットを追加した場合、レートバッファ150はオーバーフローし得る。一方、ビデオエンコーダ20は、レートバッファ150のアンダーフローを防止するために、十分なビットを追加しなければならない。
【００４４】
ビデオデコーダ側において、ビットは、ビデオデコーダ30のレートバッファ155(以下でさらに詳細に説明する図2Bを参照)に固定ビットレートで追加されてよく、ビデオデコーダ30は、各ブロックについて可変数のビットを削除してよい。適正な復号を確実にするために、ビデオデコーダ30のレートバッファ155は、圧縮ビットストリームの復号中に「アンダーフロー」も「オーバーフロー」もするべきでない。
【００４５】
いくつかの実施形態では、バッファフルネス(BF)は、バッファ中に現在あるビットの数を表す値BufferCurrentSizeと、レートバッファ150のサイズを表すBufferMaxSize、すなわち、任意の時点でレートバッファ150中に記憶することができるビットの最大数とに基づいて定義され得る。BFは、次のように算出され得る。
BF=((BufferCurrentSize*100)/BufferMaxSize)
【００４６】
平坦度検出器115は、ビデオデータ中の複雑(すなわち、非平坦)エリアから、ビデオデータ中の平坦(すなわち、単純または均一)エリアへの変更を検出し得る。「複雑」および「平坦」という用語は、本明細書において、概して、ビデオエンコーダ20がビデオデータのそれぞれの領域を符号化することの難しさを指すのに使われる。したがって、本明細書において使われる「複雑」という用語は概して、ビデオデータの領域を、ビデオエンコーダ20が符号化するのが複雑なものとして記述し、たとえば、テクスチャ化ビデオデータ、高い空間周波数、および/または符号化するのが複雑な他の特徴を含み得る。本明細書において使われる「平坦」という用語は概して、ビデオデータの領域を、ビデオエンコーダ20が符号化するのが簡単なものとして記述し、たとえば、ビデオデータ中の平滑勾配、低い空間周波数、および/または符号化するのが簡単な他の特徴を含み得る。複雑領域と平坦領域との間の遷移は、ビデオエンコーダ20によって、符号化ビデオデータにおける量子化乱れを削減するのに使うことができる。具体的には、複雑領域から平坦領域への遷移が識別されると、レートコントローラ120ならびに予測器、量子化器、および再構築器構成要素125がそのような量子化乱れを削減することができる。
【００４７】
レートコントローラ120は、コーディングパラメータのセット、たとえば、QPを決定する。QPは、レートバッファ150がオーバーフローもアンダーフローもしないことを確実にするターゲットビットレートに対するピクチャ品質を最大限にするために、レートバッファ150のバッファフルネスおよびビデオデータの画像活動度に基づいて、レートコントローラ120によって調節され得る。レートコントローラ120は、最適レート歪み特性を達成するために、ビデオデータの各ブロック向けの特定のコーディングオプション(たとえば、特定のモード)も選択する。レートコントローラ120は、再構築画像の歪みを、それがビットレート制約を満足させるように、すなわち、全体的な実際のコーディングレートがターゲットビットレート内に収まるように、最小限にする。
【００４８】
予測器、量子化器、および再構築器構成要素125は、ビデオエンコーダ20の少なくとも3つの符号化動作を実施することができる。予測器、量子化器、および再構築器構成要素125は、いくつかの異なるモードで予測を実施することができる。1つの例示的な予測モードが、中央値適応予測の修正バージョンである。中央値適応予測は、無損失JPEG規格(JPEG-LS)によって実施され得る。予測器、量子化器、および再構築器構成要素125によって実施され得る中央値適応予測の修正バージョンは、3つの連続するサンプル値の並列予測を可能にし得る。別の例示的な予測モードはブロック予測である。ブロック予測では、サンプルは、ライン中の上または同じライン中の左にある以前再構築されたピクセルから予測される。いくつかの実装形態では、ビデオエンコーダ20およびビデオデコーダ30は両方とも、再構築ピクセルに対して同一の探索を実施して、ブロック予測の使用を決定する場合があり、したがって、どのビットも、ブロック予測モードで送られる必要はない。他の実施形態では、ビデオエンコーダ20は、ビデオデコーダ30が別個の探索を実施する必要がないように、探索を実施し、ビットストリーム中のブロック予測ベクトルをシグナリングすることができる。成分範囲の中間点を使ってサンプルが予測される中間点予測モードも実装されてよい。中間点予測モードは、ワーストケースサンプルにおいてさえも圧縮ビデオに求められるビットの数のバウンディングを可能にし得る。図3〜図6を参照して下でさらに論じるように、予測器、量子化器、および再構築器構成要素125は、図3〜図6に示す方法を実施することによって、ビデオデータのブロック(または任意の他の予測単位)を予測する(たとえば、符号化または復号する)ように構成されてよい。
【００４９】
予測器、量子化器、および再構築器構成要素125は、量子化も実施する。たとえば、量子化は、シフタを使って実装され得る2のべき乗量子化器を介して実施され得る。2のべき乗量子化器の代わりに、他の量子化技法が実装されてもよいことに留意されたい。予測器、量子化器、および再構築器構成要素125によって実施される量子化は、レートコントローラ120によって決定されるQPに基づき得る。最後に、予測器、量子化器、および再構築器構成要素125は、逆量子化残差を予測値に加算すること、および結果がサンプル値の有効範囲の外にならないことを確実にすることを含む再構築も実施する。
【００５０】
予測器、量子化器、および再構築器構成要素125によって実施される予測、量子化、および再構築のための上記の例示的な手法は例示にすぎないこと、ならびに他の手法が実装されてよいことに留意されたい。予測器、量子化器、および再構築器構成要素125は、予測、量子化、および/または再構築を実施するための下位構成要素を含み得ることにも留意されたい。予測、量子化、および/または再構築は、予測器、量子化器、および再構築器構成要素125の代わりに、いくつかの別個のエンコーダ構成要素によって実施されてよいことにさらに留意されたい。
【００５１】
ラインバッファ130は、予測器、量子化器、および再構築器構成要素125ならびに索引付き色履歴135が、バッファリングされたビデオデータを使うことができるように、予測器、量子化器、および再構築器構成要素125からの出力を保持する。索引付き色履歴135は、最近使われたピクセル値を記憶する。これらの最近使われたピクセル値は、専用シンタックスを介して、ビデオエンコーダ20によって直接参照され得る。
【００５２】
エントロピーエンコーダ140は、予測器、量子化器、および再構築器構成要素125から受信された予測残差ならびに他のどのデータ(たとえば、予測器、量子化器、および再構築器構成要素125によって識別された索引)も、索引付き色履歴135と、平坦度検出器115によって識別された平坦度遷移とに基づいて符号化する。いくつかの例では、エントロピーエンコーダ140は、サブストリームエンコーダごとに、1クロックあたり3つのサンプルを符号化することができる。サブストリームマルチプレクサ145は、ヘッダなしパケット多重化方式に基づいてビットストリームを多重化することができる。こうすることにより、ビデオデコーダ30は、3つのエントロピーデコーダを並行して稼働させることができ、1クロックあたり3つのピクセルの復号を容易にする。サブストリームマルチプレクサ145は、ビデオデコーダ30によってパケットが効率的に復号され得るように、パケット順序を最適化することができる。1クロックあたり2のべき乗ピクセル(たとえば、2ピクセル/クロックまたは4ピクセル/クロック)の復号を容易にし得る、エントロピーコーディングのための異なる手法が実装されてよいことに留意されたい。
【００５３】
DSCビデオデコーダ
図2Bは、本開示で説明する態様による技法を実装し得るビデオデコーダ30の例を示すブロック図である。ビデオデコーダ30は、本開示の技法のうちの一部または全部を実施するように構成され得る。いくつかの例では、本開示で説明する技法は、ビデオデコーダ30の様々な構成要素間で共有され得る。いくつかの例では、追加的または代替的に、プロセッサ(図示せず)が本開示で説明する技法のうちの一部または全部を実施するように構成され得る。
【００５４】
説明のために、本開示は、DSCコーディングのコンテキストにおいてビデオデコーダ30について説明する。ただし、本開示の技法は他のコーディング規格または方法に適用可能であり得る。
【００５５】
図2Bの例において、ビデオデコーダ30は複数の機能構成要素を含む。ビデオデコーダ30の機能構成要素は、レートバッファ155、サブストリームデマルチプレクサ160、エントロピーデコーダ165、レートコントローラ170、予測器、量子化器、および再構築器構成要素175、索引付き色履歴180、ラインバッファ185、ならびに色空間コンバータ190を含む。ビデオデコーダ30の図示する構成要素は、図2Aのビデオエンコーダ20に関連して上述した対応する構成要素に類似している。したがって、ビデオデコーダ30の構成要素の各々は、上述したビデオエンコーダ20の対応する構成要素と同様に動作し得る。
【００５６】
DSCにおけるスライス
上述したように、スライスは概して、画像またはフレーム中の領域の残りからの情報を使わずに単独で復号できる、画像またはフレーム中の空間的に別個の領域を指す。各画像またはビデオフレームは、単一のスライス中で符号化されてもよく、各画像またはビデオフレームは、いくつかのスライス中で符号化されてもよい。DSCにおいて、各スライスを符号化するために割り振られるターゲットビットは、実質的に固定であり得る。
【００５７】
量子化パラメータ
上記で説明したように、ビデオコーディングは、たとえば、予測器、量子化器、および再構築器構成要素125を介した、ビデオデータの量子化を含むことができる。量子化は、信号に損失をもたらすことがあり、損失の量は、レートコントローラ120によって決定されるQPによって制御され得る。QPごとの量子化ステップサイズを記憶するのではなく、QPの関数としてスケーリングマトリックスが指定され得る。QPごとの量子化ステップサイズは、スケーリングマトリックスから導出されてよく、導出された値は、必ずしも2のべき乗とは限らない、すなわち、導出された値は、2のべき乗ではないこともある。
【００５８】
スキップモード
所与のブロックにおける単一の色座標の値すべてがゼロであるとき、ブロックの色座標値は、スキップモードを使用して効果的にコーディングされ得る。スキップモードコーディングのいくつかの実装形態では、現在のブロックの色成分の値がスキップモードを使用してコーディングされること(現在のブロックの色成分の値すべてがゼロである場合)またはスキップモードにないこと(現在のブロックの色成分の値の少なくとも1つが非ゼロである場合)を示すために、1ビットフラグまたはスキップ値がデコーダにシグナリングされ得る。スキップモードでは、現在のブロックの色成分の値のすべてがゼロであるとき、1ビットフラグがデコーダにシグナリングされ得、コーダは、ブロックの色成分の値をコーディングするのを控え得る(すなわち、ブロックの色成分の値のコーディングがスキップされ得る)。ブロックよりも小さいサイズを有する色成分の値のグループに、または複数のブロックからなるグループに、スキップモードが適用されることもある。ブロックの色成分ごとに別個にスキップモードが適用されることもあり、たとえば、現在のブロックの色成分の値のすべてがゼロであるときに、現在のブロックの色成分の値にスキップモードが適用され得る。いくつかの実装形態では、グループまたはブロックの色成分のすべてにスキップモードが適用され得る。以下でより詳細に説明するように、ブロックよりも小さいユニットにスキップモードが適用されることもある。
【００５９】
DSC v1.0におけるエントロピーコーディング
上記で説明したように、DSC v1.0では、DSU-VLCが提案されている。DSU-VLCでは、各ユニット(各グループが3ピクセルを有する、1つのグループの色成分のサンプルを含むユニット)の残差値は、プレフィックス部分およびサフィックス部分を使用してコーディングされる。プレフィックス部分は、サフィックス部分において後続する残差値のサイズ(たとえば、ビット数)を示し、サフィックス部分は、ユニットにおける3つのサンプルの実際の残差値を示す。グループにおける3つの残差値すべてが、プレフィックス部分によって示される同じ数のビットを使用して2の補数でコーディングされる。
【００６０】
プレフィックス部分に関して、現在のユニットの残差値の実際のサイズをコーディングする代わりに、プレフィックス値が予測コーディングされ、その場合に、現在のユニットの残差値のサイズが、同じ成分の以前のユニットの残差値のサイズに基づいて、かつ現在のユニットと以前のユニットとの間の量子化パラメータの変化を考慮することによって、予測される。たとえば、それぞれ値requiredSize[0]、requiredSize[1]およびrequiredSize[2]が、以前のグループの量子化残差値の必要サイズを表すとする。これから、予測サイズは次のように算出され得る。
predictedSize=(requiredSize[0]+requiredSize[1]+2*requiredSize[2]+2)>>2
【００６１】
現在のユニットと以前のユニットとの間の量子化パラメータの差を考慮することによって、予測サイズは次のように調整され得る。
adjPredictedSize=CLAMP(predictedSize-qLevelChange,0,maxSize-1)
【００６２】
ここで、値maxSizeは現在の色座標の最大可能残差値であり、CLAMP関数は、次のように定義される。
CLAMP(X,MIN,MAX)((X)>(MAX)?(MAX):((X)<(MIN)?(MIN):(X))
【００６３】
最後に、現在のユニットの残差のサイズと予測サイズとの間の非負の差が単項コーディングされ得る。たとえば、残差のサイズの変化なしの場合、ゼロ値をコーディングすることによって負の差が示される。
【００６４】
このコンテキストでは、ハフマン符号、算術符号、指数ゴロム符号、ライス符号などのような、既存のエントロピーコーディング技法は、1サンプル/クロックの限られたスループットを有し、このスループットは、用途によっては、たとえば高解像度ディスプレイおよびパネルの場合、低すぎることがある。すなわち、従来のハードウェアを使用する、高解像度ディスプレイおよびパネル、たとえば4Kディスプレイのためのビデオデータの視覚的に無損失なエントロピーコーディングは、経済的に実現可能ではないことがある。
【００６５】
DSCのための既存の手法による上記問題を克服するために、本開示は、以下で改良について説明する。本開示では、以下で説明する技法および手法は、単独で、または互いに組み合わせて使用され得る。
【００６６】
本開示の1つまたは複数の態様に従って、本明細書では、より高いスループット(たとえば、4サンプル/クロック)をもたらすエントロピーコーディング技法について説明する。ただし、他のスループット値が特定の実装形態に基づいて達成されることもある。
【００６７】
DSC v1.0において導入されたDSU-VLCと比較して、本開示のエントロピーコーディング技法の特徴は、限定はしないが以下を含み得る。
【００６８】
量子化ブロック残差のコーディング:スキップおよびDSU-VLCコーディングの原理は、各グループが少なくとも1つの非ゼロ値を有する場合のみ各グループがDSU-VLCコーディングされるような方法で組み合わせられ得る。
【００６９】
変換係数のコーディング:各ブロックの量子化変換係数(たとえば、離散コサイン変換(DCT))は、最初に量子化変換係数からグループを構築し、次いでDSU-VLCの同様の原理を使用して各グループをコーディングすることによって、コーディングされ得る。さらに、各グループの量子化変換係数をコーディングするために、スキップおよびDSU-VLCコーディングが組み合わせられ得る。
【００７０】
プレフィックス予測:現在のグループのサイズは、たとえば、以前のグループの最大必要サイズにのみ基づいて予測され得る。さらに、サイズを予測する一方で、エントロピーコーディング技法は、特に量子化ステップサイズが2のべき乗ではないときに、QPの影響を監視、考慮および/または斟酌し得る。
【００７１】
プレフィックスコーディング:現在のサイズと予測サイズの負と正の両方の差がコーディングされ得る。
【００７２】
上記の態様に関するさらなる詳細を以下で提供する。本明細書で説明するエントロピーコーディング技法は、たとえば、ブロックにおける各色成分をコーディングするために単独で適用され得ることに留意されたい。
【００７３】
量子化ブロック残差のコーディング
図3は、本開示で説明する態様による、予測コーディングモード、たとえば、ブロック予測モードまたは差分パルス符号変調(DPCM)モードのブロックを区分化する方法を示す図である。図3の例では、ブロックは16個のサンプル201〜231を含み、各サンプルは、たとえば量子化残差である。一実装形態では、ブロックにおける量子化残差201〜231の各成分は、たとえば、以下のステップに従ってエントロピーコーディングされ得る。図3に示す図はまた、ブロックを、予測コーディングモードの複数の区分化されたグループに基づいて再構築するために適用され得る。
【００７４】
ブロックにおけるサンプル201〜231は、図3の例に示すように、4つのグループに区分化され得る。ただし、ブロックは、任意の数のグループに区分化され得る任意の数のサンプルを有し得る。さらに、本開示で説明するエントロピーコーディング技法のスループットは、ブロックにおけるグループの数に関係し得る。実装形態に応じて、サンプル201〜231は、たとえば、1D予測残差、および/またはブロック予測残差、および/またはイントラ予測残差、および/または2D中央値適応予測残差であり得る。ただし、実施形態に応じて、サンプルは、任意の他のタイプの残差を表し得る。
【００７５】
図3の例には均一グループ化戦略が示されているが、さらなる関連態様では、各グループにおけるサンプルの数が同じではない不均一グループ化戦略が構築されることがある。
【００７６】
以下の説明では、サンプルのグループは、中括弧で囲まれることによって示される。図3に示す例では、グループ1、2、3、および4は、それぞれサンプル{201〜207}、{209〜215}、{217〜223}、および{225〜231}により構築される。(図示されていない)別の例では、グループ1、2、3、および4は、それぞれサンプル{201〜203}、{205〜209}、{211〜219}、および{221〜231}により構築され得る。(図示されていない)また別の例では、グループ1、2、3、および4は、それぞれサンプル{201}、{203〜207}、{209〜217}、および{219〜231}により構築され得る。(図示されていない)また別の例では、グループ1、2、3、および4は、それぞれサンプル{201}、{203および205}、{207〜217}、および{219〜231}により構築され得る。(図示されていない)また別の例では、グループ1、2、3、および4は、それぞれサンプル{201}、{203〜209}、{211〜219}、および{221〜231}により構築され得る。ただし、サンプルの上記グループ化は例にすぎず、複数のグループへのブロックの区分化の他の方法が実施されてよい。
【００７７】
上記の説明は、ブロックを区分化する際に使用され得るいくつかのグループ化技法を示し、述べているが、ブロックを再構築するときに逆の技法が適用されてよい。たとえば、ブロックが図3に示すようにサンプルの4つのグループに区分化されているとき、ブロックは、サンプル201〜231を含むように再構築され得る。これは、各グループに同じ数のサンプルを有しない他の上記のグループ化戦略にも当てはまる。
【００７８】
ブロックにおける特定の色座標に関連するサンプルすべてがゼロの値を有するとき、ブロックのその色座標に関連するそれらのサンプルは、スキップモードを使用してコーディングされてよく、たとえば、ブロックにおける現在の色座標がスキップモードを使用して符号化されるかどうかを示すために、1ブロックあたり(1色座標あたり)1ビットフラグがシグナリングされ得る。したがって、ブロックの色座標ごとに、ブロックの対応する色座標がスキップモードを使用してコーディングされるかどうかを示すために、1ビットフラグがシグナリングされ得る。他の実装形態では、ブロックにおける色座標のすべてに関して、単一の1ビットフラグがシグナリングされ得る。本開示では、スキップモードを介したブロックにおける現在の色座標の符号化は、ブロック単位スキップモードと呼ばれる。
【００７９】
たとえば、ブロック単位スキップモードは、3つの色座標すべてには適用されないことがある。一実装形態では、ブロック単位スキップモードは、クロマ色座標のために適用されるが、ルーマ色座標のためには適用されない。
【００８０】
いくつかの実装形態では、ブロックにおける1つの色座標内に少なくとも1つの非ゼロ値が含まれるとき、エントロピーコーディング技法は、各グループを、そのグループが1つの非ゼロ値を有する場合のみ、DSU-VLCを使用してコーディングすることを伴い得る。たとえば、グループに関連する1ビットフラグまたはグループスキップ値が、そのグループがスキップモードを使用して符号化されるかどうかを示すためにシグナリングされ得る。本開示では、スキップモードを介した各グループの符号化は、グループ単位スキップモードと呼ばれる。同様に、1ビットフラグまたはグループスキップ値の復号も、グループ単位スキップモードと呼ばれ得る。
【００８１】
いくつかの実装形態では、グループごとに、そのグループ内のサンプルの値すべてがゼロであるかどうかを判断するために探索が実行される。一例では、グループにおける値すべてがゼロであるとき、関連グループにおけるサンプルの値すべてがゼロに等しいことを示す対応するフラグ(たとえば、上記の1ビットフラグ)を介して、デコーダに値(たとえば、「1」の値)がシグナリングされ得る。グループにおける少なくとも1つのサンプルが非ゼロ値を有するとき、対応するフラグを介して、デコーダに値(たとえば、「0」の値)がシグナリングされ、その後にグループのDSU-VLCコーディングが続くことがある。言い換えれば、グループに関連する対応するフラグは、グループ内の少なくとも1つのサンプルが非ゼロ値を有することを示す値によりシグナリングされ得る。別の例では、グループ内のサンプルの値すべてがゼロであるときに「0」の値がシグナリングされ得、非ゼロ値を有する少なくとも1つのサンプルをグループが含むときに「1」の値がシグナリングされ得る。ただし、実施形態に応じて、現在のグループにグループ単位スキップモードが用いられているかどうかのシグナリングは、任意の他の適切な方法で、たとえば、複数のビットを介して現在のグループによってグループ単位スキップが用いられているかどうかの指示をシグナリングすることによって、シグナリングされ得る。
【００８２】
変換係数のコーディング
図4〜図7は、本開示で説明する態様による、変換係数コーディングモードのブロックを区分化するための例示的な技法を示す図である。図4の例では、ブロックは16個のサンプル201〜231を含み、各サンプルは、たとえば、イントラ予測残差またはブロック予測残差である。複数の変換係数C00〜C15を取得するために、サンプル201〜231に変換が適用され得る。一実装形態では、ブロックにおける量子化変換係数の各成分は、たとえば、以下のステップに従ってエントロピーコーディングされ得る。図4〜図7に示す図は、一般に、変換係数コーディングモードのブロックを区分化することに関して記述されているが、変換係数の図示のグループを復号する際に逆の手順が実施されてもよい。
【００８３】
単一の成分のブロックにおける量子化変換係数は、N個のグループに区分化され得る。一例では、Nは4であり、1×16のブロックサイズが生じる。ブロックは、単一の1×16のDCT-変換(図4の要素300)を使用して変換されることがあり、またはブロックは、たとえば、1×8のDCT-変換または1×4のDCT-変換(図5〜図7参照)など、異なる変換サイズを使用して変換されることがある。これらの実装形態の各々において、N=4個のグループの構築を以下に示す。ただし、他の実施形態では、グループの数Nは、変換係数の任意の適切な区分化になるように選択され得る。
【００８４】
図4における16個のサンプル201〜231は、イントラ予測残差またはブロック予測残差を表し得ることに留意されたい。
【００８５】
本開示で説明する態様による変換係数コーディングモードのブロックの区分化の実施形態が図4に示されている。図4の例では、16個のブロックサンプル201〜231から4つのグループが構築され、これらのブロックサンプル201〜231は、1×16のDCT変換300を使用して変換される。いくつかの実装形態では、サンプルに適用される変換は、アダマール変換などの任意の適切な変換であり得る。
【００８６】
図4に示すように、DCT変換は複数の変換係数C00〜C15を生成する。いくつかの実装形態では、変換係数は、ゼロ周波数係数である直流(DC)係数C00から始まり、最高周波数係数C15まで順序付けられる。図4に示すように、変換係数は、4つのグループに区分化またはグループ化される。本明細書で使用する「区分化」および「グループ化」という用語は、一般に、サンプルまたは変換係数を一緒にグループに結び付けるプロセスを指しており、必ずしもサンプルまたは変換係数を物理的に分離するとは限らない。別段に記載されていない限り、本開示では、変換係数を表すために同様の順序付けが使用されてよく、その場合に、グループ1における第1の係数はDC値を表し、複数の変換係数のうちの最後の変換係数は最高周波数成分に関連付けられ、残存する変換係数は、DC値と最高周波数成分との間で(関連する周波数成分に関して)低から高へと順序付けられる。図4の例では、グループ1は変換係数C00を含み、グループ2は変換係数C01〜C03を含み、グループ3は変換係数C04〜C07を含み、グループ4は変換係数C08〜C15を含む。したがって、値が「近い」周波数成分に関連付けられる周波数変換係数は、一緒にグループ化され得る。たとえば、各グループは、対応するグループに関連する周波数範囲内に入る周波数成分を表す変換係数を含めることによって定義され得る。どの周波数成分が一緒にグループ化されるか(すなわち、どの変換係数が一緒にグループ化されるか)の選択は、より高効率のコーディングをもたらすグループ化を決定するためのテストなど、様々な基準に基づいて選択され得る。
【００８７】
図5は、別の例による変換係数の区分化(またはグループ化)を示す図である。図5の例では、2つの1×8のDCT変換301および303がブロックサンプル201〜231に適用される。ただし、上記で述べたように、本開示の態様から逸脱することなく他のタイプの変換が適用されてよい。
【００８８】
第1の1×8のDCT変換301は、第1の複数の変換係数C00〜C07を生成し、第2の1×8のDCT変換303は、第2の複数の変換係数C10〜C17を生成する。各1×8のDCT変換から生じた、位置順序で対応する変換係数は、同じ周波数成分に関連付けられ得る。たとえば、変換係数C00およびC10は両方ともDC係数であり得、変換係数C07およびC17は最高周波数成分に関連付けられ得る。図5の例では、グループ1は変換係数C00およびC10を含み、グループ2は変換係数C01、C02、C11およびC12を含み、グループ3は変換係数C03、C04、C13およびC14を含み、グループ4は変換係数C05〜C07およびC15〜C17を含む。
【００８９】
図6は、別の例による変換係数の区分化を示す図である。図6の例では、4つの1×4のDCT変換305〜311がブロックサンプル201〜231に適用される。ただし、上記で述べたように、本開示の態様から逸脱することなく他のタイプの変換が適用されてよい。
【００９０】
第1の1×4のDCT変換305は第1の複数の変換係数C00〜C03を生成し、第2の1×4のDCT変換307は第2の複数の変換係数C10〜C13を生成し、第3の1×4のDCT変換309は第3の複数の変換係数C20〜C23を生成し、第4の1×4のDCT変換311は第4の複数の変換係数C30〜C33を生成する。各1×4のDCT変換305〜311からの対応する変換係数は、同じ周波数に関連付けられ得る。たとえば、変換係数C00、C10、C20およびC30はDC係数であり得、変換係数C03、C13、C23およびC33は最高周波数成分に関連付けられ得る。図6の例では、グループ1は変換係数C00、C10、C20およびC30を含み、グループ2は変換係数C01、C11、C21およびC31を含み、グループ3は変換係数C02、C12、C22およびC32を含み、グループ4は変換係数C03、C13、C23およびC33を含む。
【００９１】
図7は、別の例による変換係数の区分化またはグループ化を示す図である。図7の例では、2つの1×4のDCT変換305および307、ならびに1つの1×8のDCT変換303がブロックサンプル201〜231に適用される。ただし、上記で述べたように、本開示の態様から逸脱することなく他のタイプの変換が適用されてよい。
【００９２】
第1の1×4のDCT変換305は第1の複数の変換係数C00〜C03を生成し、第2の1×4のDCT変換307は第2の複数の変換係数C10〜C13を生成し、1×8のDCT変換303は第3の複数の変換係数C20〜C27を生成する。各DCT変換305〜307からの対応する変換係数は、同じまたは同様の周波数を有し得る。たとえば、変換係数C00、C10およびC20はDC係数であり得る。図7の例では、グループ1は変換係数C00、C10およびC20を含み、グループ2は変換係数C01、C11、C21およびC22を含み、グループ3は変換係数C02、C12、C23およびC24を含み、グループ4は変換係数C03、C13、C25、C26およびC27を含む。
【００９３】
いくつかの例が図5〜図7に関して説明されているが、変換係数の他の変換および区分化が実施されてもよい。たとえば、1×8、1×4、および1×4の変換が[8 4 4]などの順序で適用されてよく、または1×4、1×8、および1×4の変換が[4 8 4]などの順序で適用されてよい。さらに、グループは、図7の例と同様の方法を使用して構築され得る。
【００９４】
他の実装形態では、4つのグループを構築するために線形グループ化方法が使用され得、その場合に各グループは、1グループあたり4つの変換係数を有し得る。たとえば、図4の例の代替では、1×16のDCT変換300の適用後、グループ1が第1の4つの変換係数C0〜C3を含むこと、グループ2が次の4つの変換係数C4〜C7を含むこと、などがある。図5の例の代替では、1×8のDCT変換301および303の適用後、各グループは、変換係数C00〜C07およびC10〜C17の各セットから2つの係数を取ることによって構築され得る。たとえば、グループ1がC00、C10、C01およびC11を含むこと、グループ2がC02、C03、C12およびC13を含むこと、などがある。図7の例の代替では、1×4のDCT変換305および307、ならびに1×8のDCT変換303の適用後、各グループは、変換係数C00〜C03およびC10〜C13の2つのセットからそれぞれ1つの係数を取り、変換係数C20〜C27のセットから2つの係数を取ることによって構築され得る。たとえば、グループ1がC00、C10、C20およびC21を含むこと、グループ2がC01、C11、C22およびC23を含むこと、などがある。同様のグループ化戦略は、たとえば、[8 4 4]、[4 8 4]などのような、他の区分化変換選択のグループを構築するように実施され得る。
【００９５】
図4〜図7に関して符号化するためのいくつかのグループ化技法について説明したが、グループの復号は、図4〜図7を参照しながら説明した符号化順序の逆の順序で実施され得る。たとえば、変換係数のグループは、サンプル201〜231に適用される変換の数に基づいて再編成されてよく、同じ数の逆変換が、再編成された変換係数に適用され得る。再編成は、たとえば、各グループにおける変換係数の数、または変換係数を生成するために適用される変換のタイプおよび数のシグナリングに基づき得る。
【００９６】
いくつかの実装形態では、グループ化構築の後、少なくとも1つの非ゼロ値を含むグループの索引が、逆走査順序で発見されることがあり、たとえば、探索はグループ4、3、2、1の順序で進む。少なくとも1つの非ゼロ値を含むグループ(「有意」グループとも呼ばれ得る)の索引は、デコーダにシグナリングされ得る。一例では、索引は2ビット固定長符号を使用してシグナリングされ得る。別の例では、ハフマンなどの可変長符号(VLC)または指数ゴロム符号もしくはライス符号などの構造化VLC符号が使用され得る。
【００９７】
(1つの非ゼロ値を有するグループを含む)残存するグループは、プレフィックス部分およびサフィックス部分を使用するDSU-VLCを使用してコーディングされ得、この場合にプレフィックスは、後続するサフィックスのサイズを示す。サフィックス部分では、グループにおける係数は、たとえば、同じ数のビットを使用してコーディングされ得る。
【００９８】
別の手法では、上記の手法の代替または追加として、グループはグループ単位スキップモードを使用してコーディングされ得、その場合にグループごとにスキップフラグまたはスキップ値がシグナリングされ、各グループは、そのグループが少なくとも1つの非ゼロ値を有する場合のみDSU-VLCコーディングされる。
【００９９】
また別の手法では、上記の手法のうちの1つまたは複数の組合せが、ブロック単位スキップモードと組み合わせられてよく、その場合に上記で説明した技法は、16個のC00〜C15のうちの少なくとも1つが非ゼロ値を含む場合のみ適用され得る。
【０１００】
一例では、ブロック単位スキップモードは、3つの色座標すべてには適用されない。別の例では、ブロック単位スキップモードは、クロマ色座標にのみ適用されるが、ルーマ色座標には適用されない。
【０１０１】
さらに別の手法では、上記のステップを適用する前に、最後有意変換係数位置(たとえば、変換係数の絶対値が1以上である位置)が最初に識別される。位置情報は、デコーダに明示的にシグナリングされ得る。さらに、最後有意位置の絶対値が1だけ差し引かれ得る。たとえば、Cは、最後有意位置に対応する係数値の大きさを表すとする。係数は、Cnew=(|C|-1)*sign(C)によって置き換えられ、ここで、sign(C)は係数Cの符号値を表す。最後有意位置に対応する符号情報sign(C)がシグナリングされ得る。次いで、第1の係数から始まり、最後有意係数位置(両端値を含む)までのサンプルすべてが、グループ単位スキップモードを使用してコーディングされ得る。その後、グループ内のサンプルの少なくとも1つが非ゼロである場合、グループはDSU-VLCコーディングされ得る。グループ内のサンプルのいずれも非ゼロではない場合、グループは、グループ単位スキップモードを使用してコーディングされ得る。最後有意係数位置がグループ境界と重ならないとき、最後有意係数位置までのグループ内のサンプルのサブセットのみがコーディングされ、(ゼロの値を有する)残存するサンプルはコーディングされないことに留意されたい。デコーダにおいて、(ゼロの値を有する)残存するサンプルは、最後有意係数位置から直接推測され得る。
【０１０２】
一例では、最後有意位置に対応する符号情報は、最後有意係数値の絶対値から1だけ差し引かれた値がゼロに等しいとき、すなわち、|C|-1==0のときのみシグナリングされ得、ここで、Cは、最後有意位置に対応する係数値の大きさを表す。係数は、2の補数を使用してコーディングされ得、たとえば、-(2N-1)〜+(2N-1-1)の値を表すためにNビットが使用され得る。
【０１０３】
一態様では、最後有意位置は、固定長符号を使用してコーディングされ得、その場合にビット数は、log2(numberOfSamplesInBlock)に等しく設定される。
【０１０４】
別の態様では、最後有意位置は、たとえば、指数ゴロム符号、ハフマン符号、ライス符号と指数ゴロム符号との混合などのような、可変長符号を使用してコーディングされ得る。また別の態様では、上記で説明したブロック単位スキップモードは、最後有意位置をコーディングするために可変長符号を使用する技法を適用する前に適用され得る。
【０１０５】
また別の手法では、ブロック単位スキップモードは、最後有意位置をコーディングするために可変長符号を使用する技法を適用する前には適用されない。ブロックにおけるサンプルすべてがゼロであるシナリオでは、最後有意位置のデフォルト値がデコーダにシグナリングされ得る。
【０１０６】
一例では、デフォルト最後有意位置は、グループ1における第1のサンプル位置を表すゼロである。ブロックにおけるサンプルすべてがゼロである場合に、(ゼロの)デフォルト最後有意位置をシグナリングした後、グループ単位スキップモードを使用してグループ1がコーディングされ得る。他方では、デフォルト最後有意位置の値が非ゼロである場合、グループ1における第1のサンプルは、DSU-VLCコーディング原理を使用してコーディングされ得る。
【０１０７】
別の例では、デフォルト最後有意位置に対応する絶対値が1だけ差し引かれることはない。係数値が1だけ差し引かれることはない場合、デフォルト最後有意位置に対応する符号情報はシグナリングされない。
【０１０８】
また別の例では、デフォルト最後有意位置に対応する絶対値は、1だけ差し引かれ得る。たとえば、以下の2つの場合があり得る。(i)デフォルト最後有意位置に非ゼロ値がある、および(ii)デフォルト位置の値がゼロである。最後有意係数値が1だけ差し引かれる場合、デフォルト最後有意位置に対応する符号情報は、|C|-1==0のときにシグナリングされ得、ここで、Cは、最後有意位置に対応する係数値の大きさを表す。
【０１０９】
最後有意位置がデフォルト位置(ゼロ)と同じではないシナリオでは、最後有意位置をコーディングするために可変長符号を使用する技法が適用され得ることに留意されたい。
【０１１０】
プレフィックス予測
一実装形態では、各成分のプレフィックス値は、以下で説明するように予測され得る。
【０１１１】
値prevBitsおよびcurrBitsは、それぞれ、以前のグループおよび現在のグループをコーディングするために必要なビット数(たとえば、それぞれ、以前のグループのプレフィックス値および現在のグループのプレフィックス値)を表し得る。値prevQPおよびcurrQPは、それぞれ、以前のグループ(スキップモードでコーディングされていない以前のグループ)および現在のグループをコーディングするために使用される量子化パラメータを表し得る。
【０１１２】
値prevBitsは、次のように、値currQPと値prevQPとの間の差に基づいて調整され得る(ここでは値adjPrevBitsとして示され得る)。
delSize=|curQp-prevQp|>>k
delSize=(curQp>prevQp)?-delSize:delSize
adjPrevBits=prevBits+delSize
adjPrevBits=Max(1,adjPrevBits)
【０１１３】
ここで、kは任意の正の整数であり得る。一例では、kは3に等しい。
【０１１４】
別の例では、値prevBitsは、値currQPと値prevQPとの間の差に基づいて調整されることはない、すなわち、値prevBitsは、いかなる調整もなしにプレフィックス予測に使用される。
【０１１５】
変換係数をコーディングする一方で、現在のグループのプレフィックス値(たとえば、値currBits)が、変換モードを使用して以前コーディングされたブロックの同じグループ索引(および同じ成分)のプレフィックス値に基づいて予測され得る。すなわち、グループi、i∈{1,2,3,4}からの値currBitsは、以前コーディングされた変換ブロックにおけるそれぞれのグループi、i∈{1,2,3,4}のプレフィックス値(およびそれぞれの量子化パラメータ)に基づいて予測され得る。以前のブロックにおけるそれぞれの色成分がブロック単位スキップモードを使用してコーディングされた場合、ブロック単位スキップモードを使用してコーディングされていない同じ色成分を有する変換ブロックの最後の発生が、予測のために考慮され得る。以前のブロックにおける特定のグループiがブロック単位スキップモードでコーディングされた場合、値prevBits=1および/または値adjPrevBits=1が使用され得る。
【０１１６】
プレフィックス予測では、現在のブロックの場合と同じモードを使用してコーディングされた以前のブロックのプレフィックス値が使用され得る。一例では、現在のブロックが変換を使用せずに残差を直接コーディングする場合、変換を使用して(また、ブロック単位モードを使用して)コーディングされていない以前のブロックのプレフィックス値および量子化パラメータが、予測のために考慮され得る。特に、ブロック内のグループごとに1つである、4つのプレフィックス値のうち、グループ単位スキップモードを使用してコーディングされていないグループの最後の発生に対応するプレフィックス値が、予測に使用され得る。
【０１１７】
別の例では、別個のプレフィックス予測機能がコーディングモードごとに維持され得、たとえば、現在のブロックが変換を適用した後にコーディングされる場合、変換によりコーディングされたブロックの以前の発生に関連するプレフィックス値が予測に使用され得る。同様の方法で、現在のブロック残差がブロック予測から生成された残差を表す場合、ブロック予測残差を含むブロックの以前の発生に関連するプレフィックス値が使用される。
【０１１８】
また別の例では、プレフィックス予測機能は、変換によりコーディングされたブロックのために1つの機能が維持され、残差、たとえば、1D予測残差、および/またはブロック予測残差、および/またはイントラ予測残差、および/または2D中央値適応予測残差を表すブロックのために別の機能が維持され得るような方法で、モード間で共有され得る。
【０１１９】
さらに別の例では、現在のブロックにおけるグループすべてのプレフィックス値が、以前コーディングされたブロックにおける単一のプレフィックス値に基づいて予測され得る。単一のプレフィックス値は、4つのグループのいずれかに関連付けられ得る。1つの手法では、単一のプレフィックス値は、以前のブロックにおける最後のグループ、たとえば、i=4に関連付けられ得る。以前のブロックにおける最後のグループがグループ単位スキップモードを使用してコーディングされた場合、グループ単位スキップモードを使用してコーディングされていないグループi-1に関連するプレフィックス値が使用される。別の手法では、最後のグループまたは特定のグループがグループ単位スキップモードを使用してコーディングされた場合、prevBits=1および/またはadjPrevBits=1が使用される。
【０１２０】
現在のブロックの場合と同じコーディングモードによる以前のブロックが識別できないシナリオでは、予測は、エンコーダのデフォルト初期値に等しく設定された量子化パラメータとともに値prevBits=1および/または値adjPrevBits=1のデフォルト値に基づき得る。
【０１２１】
プレフィックスコーディング
プレフィックスコーディングの一実装形態では、成分ごとに、値currBitsと値adjPrevBitsとの間の絶対差が、単項コーディングを使用してコーディングされ得、符号が追加の1ビットによって示され得る。符号ビットは、たとえば、絶対差がゼロよりも完全に大きいときのみシグナリングされ得ることに留意されたい。
【０１２２】
別の実装形態では、成分ごとに、値currBitsと値prevBitsとの間の絶対差が、単項コーディングを使用してコーディングされ得、符号が追加の1ビットによって示され得る。
【０１２３】
また別の実装形態では、成分ごとに、値currBitsが、いかなる予測もなく単項コードを使用してコーディングされ得る。
【０１２４】
さらに別の実装形態では、成分ごとに、値currBits-1が、いかなる予測もなく単項コードを使用してコーディングされ得る。
【０１２５】
別の実装形態では、プレフィックス値(たとえば、値currBits-1)を直接コーディングする代わりに、プレフィックス値は(たとえば、マッピング関数またはテーブルを使用して)値にマッピングされ得、マッピングされた値はコーディングされ得る。テーブル/関数は、平均予想コード長が小さくなる(たとえば、定められたコード長値を下回る)ように設計され得る。プレフィックス値のコーディングは、降順でプレフィックス値(たとえば、値currBits-1)をソートすることと、コード長が小さい値に優勢プレフィックス値(most probable prefix value)がマッピングされ、コード長が大きい(たとえば、定められたコード長値以上である)値に劣勢プレフィックス値(least probable prefix value)がマッピングされるように特定の値を割り当てることとによって行われ得る。
【０１２６】
また別の実装形態では、単項コードの代わりに、たとえばハフマンなどのVLCまたは指数ゴロム符号、ライス符号などの構造化VLC符号が使用され得る。
【０１２７】
さらに別の実装形態では、固定長符号がプレフィックスコーディングに使用され得る。
【０１２８】
2Dブロックへの拡張
このサブセクションでは、2DブロックサイズP×Qへのエントロピーコーディングの拡張が開示され、ここにおいて、PおよびQはそれぞれ、ブロックの高さおよびブロックの幅を表す。
【０１２９】
量子化ブロック残差のコーディングに関して、量子化ブロック残差は一般に、予測されるブロックを元のブロックから差し引くことと、残差ブロックの上に量子化を適用することとによって生成された残差を指す。予測は、空間的に隣接するサンプルから実行され得る。空間予測の例としては、ブロック予測、中央値適応予測(MAP)、イントラ予測、および/または中間点予測がある。量子化ブロック残差のコーディングのために変換が適用されないことに留意されたい。
【０１３０】
2DブロックP×Qの量子化ブロック残差の各成分は、N個のグループに区分化され得、ここで、Nは正の整数である。一例では、Nは4に設定される。
【０１３１】
グループは、各量子化残差サンプルが唯一無二のグループに属するように形成され得る。
【０１３２】
各グループにおけるサンプルの数は等しいことがあり、たとえば、各グループは(P×Q)/N個のサンプルを有し得る。グループは、ブロックP×Qを(P×Q)/N個の区分に区分化することによって構築され得、各区分におけるサンプルは1つのグループと考えられ得る。一例では、区分化は垂直方向においてのみ実行されてよく、たとえば、各区分サイズはP×(Q/N)である。別の例では、区分化は水平方向においてのみ行われてよく、その場合に各区分サイズは(P/N)×Qである。別の例では、区分化は垂直方向と水平方向の両方において行われ得る。一例として、各区分サイズは(P/(N/2))×(Q/(N/2))であり得る。
【０１３３】
別の例では、各グループにおけるサンプルの数が等しくなく、その場合にサブブロックへの区分化は、不均一に実行され得る。
【０１３４】
グループを構築した後、グループは、「量子化ブロック残差のコーディング」に関するセクションで上述した技法を使用してコーディングされ得る。
【０１３５】
量子化変換係数のコーディングに関して、サイズP×Qの2Dブロックの量子化変換係数の各成分は、N個のグループに区分化され得、ここで、Nは正の整数である。一例では、Nは4に設定される。
【０１３６】
グループは、各量子化係数サンプルがたった1つのグループに属するように形成され得る。
【０１３７】
各グループにおけるサンプルの数は等しくないことがある。同様の周波数を表す量子化変換係数は、1つのグループを形成することができる。
【０１３８】
図8は、本開示の態様による、変換係数コーディングモードのブロックを区分化するための別の例示的な技法を示す図である。図8は、ブロックサイズが4×4であるときにサンプルの2Dブロックをグループに区分化する例を示す。図8では、P=4およびQ=4、ならびにグループの数N=4である。たとえば、第1の陰影は、変換係数C00を含む第1のグループを表す。第2の陰影は、C01、C02、C04およびC08を含む第2のグループを表す。第3の陰影は、C05、C06、C09およびC10を含む第3のグループを表す。第4の陰影は、C03、C07、C11、C12、C13、C14およびC15を含む第4のグループを表す。
【０１３９】
図8に示すグループ化構築は、本明細書で説明する技法の態様を示す一例にすぎず、サイズP×Qの所与のブロックのためのグループを構築する多数の他の方法があることに留意されたい。
【０１４０】
別の手法では、係数は特定の走査順序で走査され得、結果としての1D係数走査がN個のグループに区分化され得る。たとえば、走査はジグザグ順序で実施され得る。別の例では、垂直および/または水平走査順序が使用され得る。
【０１４１】
変換区分化が適用される(たとえば、ブロック内の各サブブロックのために変換が適用される)とき、異なる区分にわたって同様の周波数を表す変換係数は、同じグループに含まれ得る。たとえば、ブロック内の異なる区分に対応するDC値は、第1のグループを形成するために考慮され得る。
【０１４２】
別の手法では、各グループにおけるサンプルの数は等しくてよく、グループは、「量子化ブロック残差のコーディング」に関するセクションで上述した技法を使用して構築され得る。
【０１４３】
グループを構築した後、グループは、「変換係数のコーディング」という見出しの付いたセクションで上述した技法を使用してコーディングされ得る。
【０１４４】
別の例示的な手法に従ってグループを構築するための技法の実装形態について、以下で説明する。
【０１４５】
説明のために、ブロックサイズはP×Qであり得、その場合にP=2およびQ=8、ならびにグループの数N=4である。ここでは、P、QおよびNは、上記で説明したように定められ得る。
【０１４６】
図9〜図11は、本開示で説明する態様による、ブロックを区分化する方法を示す図である。
【０１４７】
「量子化ブロック残差のコーディング」という見出しの付いた上記のセクションで説明したように、量子化ブロック残差のグループ化は、垂直にブロックを区分化することを介して行われ得、その場合に図9に示すように、2×2の各サブブロックサイズが1つのグループと考えられる。この実施形態では変換は適用されないことに留意されたい。
【０１４８】
「量子化変換係数のコーディング」という見出しの付いた上記のセクションで説明したように、サイズ2×8のブロックの量子化変換係数のグループ化が、図10に示すように構築され得る。図10の例では、2×8の変換313が適用される。
【０１４９】
変換区分化が適用されるとき(たとえば、2×4の変換315および317が2×8のブロックサイズのために適用されるとき)、グループは図11に示すように構築され得る。
【０１５０】
エントロピー符号化のための例示的なフローチャート
図12を参照して、エントロピー符号化のための例示的な手順について説明する。図12は、本開示の実施形態による、ビデオデータを符号化するための方法400を示すフローチャートである。図12に示すステップは、ビデオエンコーダ(たとえば、図2Aのビデオエンコーダ20)またはその構成要素によって実施され得る。便宜上、方法400は、ビデオエンコーダ20または別の構成要素であり得るビデオコーダ(単にコーダとも呼ばれる)によって実施されるものとして説明される。
【０１５１】
方法400は、ブロック401において始まる。ブロック405においてコーダは、ビデオデータのブロックをサンプルの複数のグループに、ビデオデータのコーディングモードに少なくとも部分的に基づいて区分化する(またはグループ化する)。たとえば、ビデオデータのコーディングモードは、量子化ブロック残差コーディングモード、変換係数コーディングモードまたは別のコーディングモードであり得る。また、ビデオデータのブロックのサンプルは、複数の色座標を含むことができ、各色座標のサンプルはサンプルの複数のグループに、色座標のコーディングモードに少なくとも部分的に基づいて区分化され得る。
【０１５２】
ブロック410においてコーダは、グループのうちの少なくとも1つに対して、少なくとも1つのグループにおけるサンプルのすべてが所定の値に等しいことに応答してグループ単位スキップを実施することを介して、ブロックをエントロピー符号化する。グループ単位スキップは、少なくとも1つのグループにおけるサンプルを符号化するのを控えることを含み得る。いくつかの実装形態では、ブロックは、DSU-VLCコーディングを使用してコーディングされる。方法は、ブロック415において終了する。
【０１５３】
方法400において、図12に示すブロックのうちの1つもしくは複数は取り除かれて(たとえば、実施されなくて)よく、かつ/または方法が実施される順序は入れ換えられてよい。いくつかの実施形態では、追加ブロックが方法400に追加されてよい。本開示の実施形態は、図12に示す例にも、その例によっても限定されず、本開示の趣旨から逸脱することなく、他の変形形態が実装されてよい。
【０１５４】
エントロピー復号のための例示的なフローチャート
図13を参照して、エントロピー復号のための例示的な手順について説明する。図13は、本開示の実施形態による、ビデオデータを復号するための方法500を示すフローチャートである。図13に示すステップは、ビデオデコーダ(たとえば、図2Bのビデオデコーダ30)またはその構成要素によって実施され得る。便宜上、方法500は、ビデオデコーダ30または別の構成要素であり得るビデオコーダ(単にコーダとも呼ばれる)によって実施されるものとして説明される。
【０１５５】
方法500は、ブロック501において始まる。ブロック505においてコーダは、ビデオデータのブロックを表すビットストリームを受信する。ブロックは、サンプルの複数のグループを含み得る。ビットストリームは、ブロックのサンプルの対応するグループがビットストリームに含まれないことを示す少なくとも1つのグループ単位スキップ値を含み得る。
【０１５６】
ブロック510においてコーダは、サンプルの複数のグループを、グループ単位スキップ値に少なくとも部分的に基づいてビットストリームをエントロピー復号することを介して生成する。ブロック515においてコーダは、ブロックを、サンプルの複数のグループおよびブロックのコーディングモードに少なくとも部分的に基づいて再構築する。たとえば、ビデオデータのコーディングモードは、量子化ブロック残差コーディングモード、変換係数コーディングモードまたは別のコーディングモードであり得る。また、ビデオデータのブロックのサンプルは、複数の色座標を含むことができ、各色座標のサンプルはサンプルの複数のグループに、色座標のコーディングモードに少なくとも部分的に基づいて区分化され得る。方法500は、ブロック520において終了する。
【０１５７】
方法500において、図13に示すブロックのうちの1つもしくは複数は取り除かれて(たとえば、実施されなくて)よく、かつ/または方法が実施される順序は入れ換えられてよい。いくつかの実施形態では、追加ブロックが方法500に追加されてよい。本開示の実施形態は、図13に示す例にも、その例によっても限定されず、本開示の趣旨から逸脱することなく、他の変形形態が実装されてよい。
【０１５８】
他の検討事項
本開示の態様は、図2Aのビデオエンコーダ20などのエンコーダの観点から説明してきたことに留意されたい。ただし、たとえば図2Bのビデオデコーダによって、生成されたビットストリームを復号するために、上記で説明した動作と逆の動作が適用され得ることを当業者は諒解されよう。
【０１５９】
本明細書で開示する情報および信号は、種々の異なる技術および技法のいずれかを使用して表され得る。たとえば、上記の説明全体にわたって参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光学場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
【０１６０】
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装される場合がある。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、およびステップは、それらの機能性の点から一般的に上に説明されている。そのような機能性がハードウェアとして実装されるかソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課された設計制約に依存する。当業者は、説明された機能性を特定の適用例ごとに様々な方式で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
【０１６１】
本明細書で説明する技術は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセット、自動車用、アプライアンス、ウェアラブルおよび/もしくは他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのいずれかにおいて実装され得る。デバイスまたは構成要素として記載された任意の特徴は、集積論理デバイス内で一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアに実装された場合、本技法は、実行されると、上記で説明した方法のうちの1つまたは複数を実施する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、ランダムアクセスメモリ(RAM)、たとえば同期式ダイナミックランダムアクセスメモリ(SDRAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、FLASHメモリ、磁気または光学データ記憶媒体などのようなメモリまたはデータ記憶媒体を含み得る。本技法は、追加または代替として、伝搬信号または電波などの、命令またはデータ構造の形態でプログラムコードを搬送または伝達し、コンピュータによってアクセスされ、読み取られ、かつ/または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【０１６２】
プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価の集積論理回路もしくはディスクリート論理回路のような、1つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明する技法のいずれかを実施するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替実施形態では、プロセッサは、任意の従来型プロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成としても実装され得る。したがって、本明細書で使用する「プロセッサ」という用語は、本明細書で説明する技法の実装に適した、前述の構造、前述の構造または任意の他の構造もしくは装置の任意の組合せのうちの任意のものを指し得る。さらに、いくつかの態様では、本明細書で説明する機能性は、符号化および復号のために構成された専用のソフトウェアもしくはハードウェア内に提供され得るか、または複合ビデオエンコーダ/デコーダ(コーデック)に組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素において完全に実装され得る。
【０１６３】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装されてもよい。開示する技法を実施するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、またはユニットについて本開示で説明したが、これらの構成要素、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。そうではなくて、上で説明されたように、様々なユニットは、コーデックハードウェアユニットの中で組み合わされてよく、または適切なソフトウェアおよび/もしくはファームウェアとともに、前述のような1つもしくは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてよい。
【０１６４】
上記は、異なる様々な実施形態に関連して説明されてきたが、本開示の教示から逸脱することなく、ある実施形態からの特徴または要素が、他の実施形態と組み合わされてよい。ただし、それぞれの実施形態の間での特徴の組合せは、必ずしもそれらに限定されるとは限らない。本開示の様々な実施形態が説明されてきた。これらおよび他の実施形態は、以下の特許請求の範囲内に入る。
【符号の説明】
【０１６５】
10  ビデオコーディングシステム
10'  ビデオコーディングシステム
11  デバイス
12  ソースデバイス
13  プロセッサ/コントローラデバイス
14  宛先デバイス
16  リンク
18  ビデオソース
20  ビデオエンコーダ
22  出力インターフェース
28  入力インターフェース
30  ビデオデコーダ
31  記憶デバイス
32  ディスプレイデバイス
105  色空間コンバータ
110  バッファ
115  平坦度検出器
120  レートコントローラ
125  予測器、量子化器、および再構築器構成要素
130  ラインバッファ
135  索引付き色履歴
140  エントロピーエンコーダ
145  サブストリームマルチプレクサ
150  レートバッファ
155  レートバッファ
160  サブストリームデマルチプレクサ
165  エントロピーデコーダ
170  レートコントローラ
175  予測器、量子化器、および再構築器構成要素
180  索引付き色履歴
185  ラインバッファ
190  色空間コンバータ
201〜231  サンプル、量子化残差、ブロックサンプル
300  要素、1×16のDCT変換
301  1×8のDCT変換、第1の1×8のDCT変換
303  1×8のDCT変換、第2の1×8のDCT変換
305  第1の1×4のDCT変換、1×4のDCT変換
307  第2の1×4のDCT変換、1×4のDCT変換
309  第3の1×4のDCT変換
311  第4の1×4のDCT変換、1×4のDCT変換
313  2×8の変換
315  2×4の変換
317  2×4の変換
400  方法
500  方法
C00〜C15  変換係数
【図１Ａ】
0006518701.tif 000002
【図１Ｂ】
0006518701.tif 000003
【図２Ａ】
0006518701.tif 000004
【図２Ｂ】
0006518701.tif 000005
【図３】
0006518701.tif 000006
【図４】
0006518701.tif 000007
【図５】
0006518701.tif 000008
【図６】
0006518701.tif 000009
【図７】
0006518701.tif 000010
【図８】
0006518701.tif 000011
【図９】
0006518701.tif 000012
【図１０】
0006518701.tif 000013
【図１１】
0006518701.tif 000014
【図１２】
0006518701.tif 000015
【図１３】
0006518701.tif 000016