(57)【要約】  複雑度測定に基づくディスプレイストリーム圧縮(DSC)のための量子化パラメータ(QP)のための技法を開示する。一態様では、QP値を決定するための方法は、複数の前のブロックの複雑度値を決定するステップと、決定された複雑度値に基づいて、現在のブロックに対してQP調整値を計算するための複数の定義された技法からある技法を選択するステップとを含む。方法は、選択された技法により現在のブロックに対するQP調整値を計算するステップと、QP調整値に基づいて現在のブロックに対するQP値を決定するステップとをさらに含み得る。
2018515014.tif 000002
【特許請求の範囲】
【請求項１】
量子化パラメータ(QP)値を決定するための方法であって、
複数の前のブロックの複雑度値を決定するステップと、
前記決定された複雑度値に基づいて、現在のブロックに対するQP調整値を計算するための複数の定義された技法からある技法を選択するステップと、
前記選択された技法により、前記現在のブロックに対する前記QP調整値を計算するステップと、
前記QP調整値に基づいて、前記現在のブロックに対する前記QP値を決定するステップと
を含む、方法。
【請求項２】
前記前のブロックの前記複雑度値を前記決定するステップが、前記前のブロックの平均複雑度を決定するステップを含み、前記方法が、
前記前のブロックの前記平均複雑度が、上限平均複雑度閾値以上であるかどうかを決定するステップ
をさらに含み、
前記技法の前記選択が、前記前のブロックの前記平均複雑度が前記上限平均複雑度閾値以上であるかどうかの前記決定にさらに基づく、請求項1に記載の方法。
【請求項３】
前記前のブロックをコーディングするために必要とされるビット数および前記現在のブロックのためのターゲットビット数の差分を決定するステップ
をさらに含み、
前記ビット数の前記差分がゼロよりも大きいことに応じて、前記選択された技法により計算される前記QP調整値がデフォルト技法により計算されるQP調整値以上となる、請求項2に記載の方法。
【請求項４】
負またはゼロの差分に関しては、前記選択された技法によって計算される前記QP調整値が、デフォルト技法によって計算されるQP調整値以下である、請求項3に記載の方法。
【請求項５】
前記前のブロックの前記複雑度値を前記決定するステップが、(i)前記前のブロックの平均複雑度を決定すること、および(ii)下限複雑度閾値未満である複雑度を有する前記前のブロックの比率を決定することを含み、前記方法が、
前記前のブロックの前記平均複雑度が、下限平均複雑度閾値以下であるかどうかを決定するステップと、
前記下限複雑度閾値未満である複雑度を有する前記前のブロックの前記比率が、比率閾値以上であるかどうかを決定するステップと
をさらに含み、
前記技法を前記選択するステップが、(i)前記前のブロックの前記平均複雑度が前記下限平均複雑度閾値以下であるかどうかの前記決定、および(ii)前記下限複雑度閾値未満である複雑度を有する前記前のブロックの前記比率が前記比率閾値以上であるかどうかの前記決定にさらに基づく、請求項1に記載の方法。
【請求項６】
前記選択された技法により計算される前記QP調整値が、前記前のブロックをコーディングするために必要とされる前記ビット数および前記現在のブロックのためのターゲットビット数の所与の差分に対して、デフォルト技法によって計算されるQP調整値以下である、請求項5に記載の方法。
【請求項７】
前記技法を前記選択するステップが、現在のラインに対する技法を選択するステップを含み、前記方法が、前記現在のラインに対する前記選択された技法により、前記現在のライン中の前記ブロックの各々に対して前記QP調整値を計算するステップをさらに含む、請求項1に記載の方法。
【請求項８】
前記現在のラインに対する前記選択された技法が、ビットストリームにおいて明示的にシグナリングされる、請求項7に記載の方法。
【請求項９】
前記前のブロックの前記複雑度値の前記決定が、前記前のブロックをコーディングするために使用されるビット数および前記前のブロックに対するQP値に基づく、請求項1に記載の方法。
【請求項１０】
前記前のブロックの前記複雑度値を前記計算するステップが、
前記前のブロックの変換を行うことにより、複数の変換係数を決定するステップと、
前記変換係数の絶対値を加算するステップと
を含む、請求項1に記載の方法。
【請求項１１】
前記変換係数の前記絶対値の前記加算が、DC値変換係数を除外する、請求項10に記載の方法。
【請求項１２】
前記前のブロックの前記変換を行う前に前記前のブロックに色変換を適用するステップをさらに含む、請求項10に記載の方法。
【請求項１３】
量子化パラメータ(QP)値を決定するためのデバイスであって、
i)現在のブロックおよび複数の前のブロックを含むビデオデータ、ならびにii)QP調整値を計算するための複数の定義された技法を記憶するように構成されたメモリと、
前記メモリに結合され、
前記前のブロックの複雑度値を決定すること、
前記決定された複雑度値に基づいて、現在のブロックに対するQP調整値を計算するための前記定義された技法からある技法を選択すること、
前記選択された技法により、前記現在のブロックに対する前記QP調整値を計算すること、および
前記QP調整値に基づいて、前記現在のブロックに対する前記QP値を決定すること
を行うように構成された、少なくとも1つのプロセッサ回路と
を備える、デバイス。
【請求項１４】
前記プロセッサ回路が、
前記前のブロックの平均複雑度を決定することにより、前記前のブロックの前記複雑度値を決定することと、
前記前のブロックの前記平均複雑度が、上限平均複雑度閾値以上であるかどうかを決定することと、
前記前のブロックの前記平均複雑度が前記上限平均複雑度閾値以上であるかどうかの前記決定にさらに基づいて前記技法を選択することと
を行うようにさらに構成される、請求項13に記載のデバイス。
【請求項１５】
前記プロセッサ回路が、
前記前のブロックをコーディングするために必要とされるビット数および前記現在のブロックのためのターゲットビット数の差分を決定する
ようにさらに構成され、
前記ビット数の前記差分がゼロよりも大きいことに応じて、前記プロセッサ回路が、デフォルト技法により計算されるQP調整値以上であるように、前記選択された技法により前記QP調整値を計算するようにさらに構成される、請求項14に記載のデバイス。
【請求項１６】
負またはゼロの差分に関しては、前記プロセッサ回路が、デフォルト技法によって計算されるQP調整値以下であるように前記QP調整値を計算するようにさらに構成される、請求項15に記載のデバイス。
【請求項１７】
前記プロセッサ回路が、
(i)前記前のブロックの平均複雑度を決定すること、および(ii)下限複雑度閾値未満である複雑度を有する前記前のブロックの比率を決定することにより、前記前のブロックの前記複雑度値を決定することと、
前記前のブロックの前記平均複雑度が、下限平均複雑度閾値以下であるかどうかを決定することと、
前記下限複雑度閾値未満である複雑度を有する前記前のブロックの前記比率が、比率閾値以上であるかどうかを決定することと、
(i)前記前のブロックの前記平均複雑度が前記下限平均複雑度閾値以下であるかどうかの前記決定、および(ii)前記下限複雑度閾値未満である複雑度を有する前記前のブロックの前記比率が前記比率閾値以上であるかどうかの前記決定に基づいて、前記技法を選択することと
を行うようにさらに構成される、請求項13に記載のデバイス。
【請求項１８】
前記プロセッサ回路が、前記前のブロックをコーディングするために必要とされる前記ビット数および前記現在のブロックのためのターゲットビット数の所与の差分に対するデフォルト技法によって計算されるQP調整値以下であるように、前記選択された技法により前記QP調整値を計算するようにさらに構成される、請求項17に記載のデバイス。
【請求項１９】
前記プロセッサ回路が、
現在のラインに対する技法を選択することと、
前記現在のラインに対する前記選択された技法により、前記現在のライン中の前記ブロックの各々に対して前記QP調整値を計算することと
を行うようにさらに構成される、請求項13に記載のデバイス。
【請求項２０】
前記現在のラインに対する前記選択された技法が、ビットストリームにおいて明示的にシグナリングされる、請求項19に記載のデバイス。
【請求項２１】
複数の前のブロックの複雑度値を決定するための手段と、
前記決定された複雑度値に基づいて、現在のブロックに対するQP調整値を計算するための複数の定義された技法からある技法を選択するための手段と、
前記選択された技法により、前記現在のブロックに対する前記QP調整値を計算するための手段と、
前記QP調整値に基づいて、前記現在のブロックに対する前記QP値を決定するための手段と
を備える、装置。
【請求項２２】
前記前のブロックの前記複雑度値を決定するための前記手段が、前記前のブロックの平均複雑度を決定するための手段を含み、前記装置が、
前記前のブロックの前記平均複雑度が、上限平均複雑度閾値以上であるかどうかを決定するための手段
をさらに備え、
前記技法を選択するための手段が、前記前のブロックの前記平均複雑度が前記上限平均複雑度閾値以上であるかどうかの前記決定に基づいて前記技法を選択するための手段をさらに備える、請求項21に記載の装置。
【請求項２３】
前記前のブロックをコーディングするために必要とされるビット数および前記現在のブロックのためのターゲットビット数の差分を決定するための手段
をさらに備え、
前記ビット数の前記差分がゼロよりも大きいことに応じて、前記選択された技法により計算される前記QP調整値がデフォルト技法により計算されるQP調整値以上となる、請求項22に記載の装置。
【請求項２４】
負またはゼロの差分に関しては、前記選択された技法によって計算される前記QP調整値が、デフォルト技法によって計算されるQP調整値以下である、請求項23に記載の装置。
【請求項２５】
前記前のブロックの前記複雑度値を前記決定することが、(i)前記前のブロックの平均複雑度を決定すること、および(ii)下限複雑度閾値未満である複雑度を有する前記前のブロックの比率を決定することを含み、前記装置が、
前記前のブロックの前記平均複雑度が、下限平均複雑度閾値以下であるかどうかを決定するための手段と、
前記下限複雑度閾値未満である複雑度を有する前記前のブロックの前記比率が、比率閾値以上であるかどうかを決定するための手段と
をさらに備え、
前記技法を前記選択することが、(i)前記前のブロックの前記平均複雑度が前記下限平均複雑度閾値以下であるかどうかの前記決定、および(ii)前記下限複雑度閾値未満である複雑度を有する前記前のブロックの前記比率が前記比率閾値以上であるかどうかの前記決定にさらに基づく、請求項21に記載の装置。
【請求項２６】
実行されると、デバイスのプロセッサに、
複数の前のブロックの複雑度値を決定することと、
前記決定された複雑度値に基づいて、現在のブロックに対するQP調整値を計算するための複数の定義された技法からある技法を選択することと、
前記選択された技法により、前記現在のブロックに対する前記QP調整値を計算することと、
前記QP調整値に基づいて、前記現在のブロックに対する前記QP値を決定することと
を行わせる命令を記憶したコンピュータ可読記憶媒体。
【請求項２７】
前記前のブロックの前記複雑度値を前記決定することが、前記前のブロックの平均複雑度を決定することを含み、前記コンピュータ可読記憶媒体が、実行されると、前記プロセッサに、
前記前のブロックの前記平均複雑度が、上限平均複雑度閾値以上であるかどうかを決定すること
を行わせる命令をさらに記憶し、
前記技法の前記選択が、前記前のブロックの前記平均複雑度が前記上限平均複雑度閾値以上であるかどうかの前記決定にさらに基づく、請求項26に記載のコンピュータ可読記憶媒体。
【請求項２８】
実行されると、前記プロセッサに、
前記前のブロックをコーディングするために必要とされるビット数および前記現在のブロックのためのターゲットビット数の差分を決定すること
を行わせる命令をさらに記憶し、
前記ビット数の前記差分がゼロよりも大きいことに応じて、前記選択された技法により計算される前記QP調整値がデフォルト技法により計算されるQP調整値以上となる、請求項27に記載のコンピュータ可読記憶媒体。
【請求項２９】
負またはゼロの差分に関しては、前記選択された技法によって計算される前記QP調整値が、デフォルト技法によって計算されるQP調整値以下である、請求項28に記載のコンピュータ可読記憶媒体。
【請求項３０】
前記前のブロックの前記複雑度値を前記決定することが、(i)前記前のブロックの平均複雑度を決定すること、および(ii)下限複雑度閾値未満である複雑度を有する前記前のブロックの比率を決定することを含み、前記コンピュータ可読記憶媒体が、実行されると、前記プロセッサに、
前記前のブロックの前記平均複雑度が、下限平均複雑度閾値以下であるかどうかを決定することと、
前記下限複雑度閾値未満である複雑度を有する前記前のブロックの前記比率が、比率閾値以上であるかどうかを決定することと
を行わせる命令をさらに記憶し、
前記技法を前記選択することが、(i)前記前のブロックの前記平均複雑度が前記下限平均複雑度閾値以下であるかどうかの前記決定、および(ii)前記下限複雑度閾値未満である複雑度を有する前記前のブロックの前記比率が前記比率閾値以上であるかどうかの前記決定にさらに基づく、請求項26に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ビデオコーディングおよび圧縮の分野に関し、詳細には、ディスプレイストリーム圧縮(DSC)など、ディスプレイリンクを介した送信のためのビデオ圧縮に関する。
【背景技術】
【０００２】
デジタルビデオ能力は、デジタルテレビジョン、携帯情報端末(PDA)、ラップトップコンピュータ、デスクトップモニタ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲のディスプレイに組み込まれ得る。ディスプレイリンクは、ディスプレイを適切なソースデバイスに接続するのに使われる。ディスプレイリンクの帯域幅要件は、ディスプレイの解像度に比例し、したがって、高解像度ディスプレイは広帯域幅ディスプレイリンクを要する。いくつかのディスプレイリンクは、高解像度ディスプレイをサポートするための帯域幅をもたない。ビデオ圧縮は、高解像度ディスプレイにデジタルビデオを提供するのにより低帯域幅のディスプレイリンクを使えばよいように、帯域幅要件を削減するのに使われ得る。
【０００３】
他のやり方では、ピクセルデータに対して画像圧縮を使用することを試みた。ただし、そのような方式は、視覚的に無損失ではないこともあり、または従来のディスプレイデバイスにおいて実装するのが難しく、コストがかかる場合がある。
【０００４】
ビデオエレクトロニクススタンダーズアソシエーション(VESA:Video Electronics Standards Association)が、ディスプレイリンクビデオ圧縮のための規格としてディスプレイストリーム圧縮(DSC)を開発した。DSCなどのディスプレイリンクビデオ圧縮技法は、特に、視覚的に無損失である(すなわち、圧縮がアクティブであることがユーザにわからないようなレベルの品質をピクチャが有する)ピクチャ品質を提供するべきである。ディスプレイリンクビデオ圧縮技法は、従来のハードウェアを用いてリアルタイムで実装するのが容易であり、コストがかからない方式も提供するべきである。
【発明の概要】
【課題を解決するための手段】
【０００５】
本開示のシステム、方法、およびデバイスは、それぞれ、複数の革新的態様を有し、それらの態様のうちのどれ1つ本明細書に開示されている望ましい属性に単独で関与することはない。
【０００６】
一態様では、方法が、複数の前のブロックの複雑度値を決定するステップと、決定された複雑度値に基づいて、現在のブロックに対するQP調整値を計算するための複数の定義された技法からある技法を選択するステップと、選択された技法により現在のブロックに対するQP調整値を計算するステップと、QP調整値に基づいて現在のブロックに対するQP値を決定するステップとを含む。
【０００７】
別の態様では、デバイスが、i)現在のブロックおよび複数の前のブロックを含むビデオデータ、ならびにii)QP調整値を計算するための複数の定義された技法を、記憶するように構成されたメモリと、メモリに結合され、前のブロックの複雑度値を決定すること、決定された複雑度値に基づいて、現在のブロックに対するQP調整値を計算するための定義された技法からある技法を選択すること、選択された技法により現在のブロックに対するQP調整値を計算すること、およびQP調整値に基づいて現在のブロックに対するQP値を決定することを行うように構成された、少なくとも1つのプロセッサ回路とを含む。
【０００８】
別の態様では、装置が、複数の前のブロックの複雑度値を決定するための手段と、決定された複雑度値に基づいて、現在のブロックに対するQP調整値を計算するための複数の定義された技法からある技法を選択するための手段と、選択された技法により現在のブロックに対するQP調整値を計算するための手段と、QP調整値に基づいて現在のブロックに対するQP値を決定するための手段とを含む。
【０００９】
また別の態様では、非一時的コンピュータ可読記憶媒体がその上に、実行されるとデバイスのプロセッサに、複数の前のブロックの複雑度値を決定することと、決定された複雑度値に基づいて、現在のブロックに対するQP調整値を計算するための複数の定義された技法からある技法を選択することと、選択された技法により現在のブロックに対するQP調整値を計算することと、QP調整値に基づいて現在のブロックに対するQP値を決定することとを行わせる命令を記憶している。
【図面の簡単な説明】
【００１０】
【図１Ａ】本開示で説明する態様による技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図である。
【図１Ｂ】本開示で説明する態様による技法を実施し得る別の例示的なビデオ符号化および復号システムを示すブロック図である。
【図２Ａ】本開示で説明する態様による技法を実装し得るビデオエンコーダの例を示すブロック図である。
【図２Ｂ】本開示で説明する態様による技法を実装し得るビデオデコーダの例を示すブロック図である。
【図３】量子化パラメータ(QP)調整値を決定するための例示的な手法を示す図である。
【図４】ピクチャ内の平坦領域から複雑領域への例示的な遷移を示す図である。
【図５】QP調整値を計算するための例示的な手法を示す図である。
【図６】本開示に記載する態様による、QP調整値を計算するための方法を示すフローチャートである。
【発明を実施するための形態】
【００１１】
概して、本開示は、ディスプレイストリーム圧縮(DSC)などのビデオ圧縮技法を改善する方法に関する。より詳細には、本開示は、QP調整値を計算するための適切な技法の選択により量子化パラメータ(QP)の更新を改善するためのシステムおよび方法に関する。
【００１２】
いくつかの実施形態は、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つまたは複数、およびそのような規格へのいかなる拡張にも適用可能であり得る。本明細書で説明する技法は、詳細には、固定ビットレート(CBR)バッファモデルを組み込む規格に適用可能であり得る。また、本開示に記載する技法は、将来開発される規格の一部になる可能性がある。言い換えると、本開示に記載する技法は、以前開発されたビデオコーディング規格、現在開発中のビデオコーディング規格、および今度のビデオコーディング規格に適用可能であり得る。
【００１３】
ビデオコーディング方法は、前に計算されたQP値をQP調整値で更新することによってQP値を計算し得る。QP調整値は、前のブロックと現在のブロックとの間の差分、たとえば、前のブロックをコーディングするのに必要とされたビットと現在のブロックをコーディングするためのターゲットビット数との差分に基づいて計算され得る。
【００１４】
しかしながら、従来の技法によって決定されるQP調整値は、コーディングの非効率性をもたらす場合があり、またはいくつかの状況では顕著なアーチファクトを引き起こす場合がある。たとえば、QP調整値を決定するための従来の技法は、画像の平坦領域から複雑領域への遷移には十分にアグレッシブではない場合がある(たとえば、QP調整値は、顕著なアーチファクトのない、より優れたコーディング効率をもたらす、より望ましいQP調整値よりも小さい場合がある)。平坦領域および複雑領域の概念については、以下でより詳細に説明する。
【００１５】
さらに、バッファのフルネスが、エンプティまたはフルであるという閾値以内であるとき、QP調整値を計算するための従来の技法はアグレッシブすぎ、デコーダによって再構築された画像にアーチファクトを生じる場合がある。たとえば、従来の技法によって計算されるQP調整値は、再構築された画像においてアーチファクトが目立たないようにマスクする、より望ましいQP調整値よりも大きい場合がある。
【００１６】
したがって、本開示の態様は、少なくとも上記で示した問題を解決することを対象とする。いくつかの態様において、これは、上記で示した問題に関連し得る条件の検出または決定、および検出された条件の下でQP調整値を計算するための1つまたは複数の代替技法を適用することにより実現され得る。
【００１７】
ビデオコーディング規格
ビデオ画像、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)
【００４７】
BFを算出する上記の手法は例にすぎず、BFは、特定の実装形態またはコンテキストに応じて、いかなる数の異なる方法でも算出され得ることに留意されたい。
【００４８】
平坦度検出器115は、ビデオデータ中の複雑(すなわち、非平坦)エリアから、ビデオデータ中の平坦(すなわち、単純または均一)エリアへの、および/またはその逆の変更を検出し得る。「複雑」および「平坦」という用語は、本明細書において、概して、ビデオエンコーダ20がビデオデータのそれぞれの領域を符号化するための難しさを指すのに使われる。したがって、本明細書において使われる複雑という用語は概して、ビデオデータの領域を、ビデオエンコーダ20が符号化するのが複雑なものとして記述し、たとえば、テクスチャ化ビデオデータ、高い空間周波数、および/または符号化するのには複雑な他の特徴を含み得る。本明細書において使われる平坦という用語は概して、ビデオデータの領域を、ビデオエンコーダ20が符号化するのに簡単なものとして記述し、たとえば、ビデオデータ中の平滑勾配、低い空間周波数、および/または符号化するのが簡単な他の特徴を含み得る。複雑領域から平坦領域への遷移は、ビデオエンコーダ20によって、符号化ビデオデータにおける量子化乱れを削減するのに使うことができる。具体的には、複雑領域から平坦領域への遷移が識別されると、レートコントローラ120ならびに予測器、量子化器、および再構築器構成要素125がそのような量子化乱れを削減することができる。同様に、平坦領域から複雑領域への遷移は、現在のブロックをコーディングするために必要な予想レートを下げるために、ビデオエンコーダ20によってQPを上げるように使用され得る。
【００４９】
レートコントローラ120は、コーディングパラメータのセット、たとえば、QPを決定する。QPは、レートバッファ150がオーバーフローもアンダーフローもしないことを確実にするターゲットビットレートに対するピクチャ品質を最大限にするために、レートバッファ150のバッファフルネスおよびビデオデータの画像活動度(たとえば、複雑領域から平坦領域へのまたはその逆の遷移)に基づいて、レートコントローラ120によって調節され得る。レートコントローラ120は、最適レート歪み特性を達成するために、ビデオデータの各ブロック向けの特定のコーディングオプション(たとえば、特定のモード)も選択する。レートコントローラ120は、歪みがビットレート制約を満足するように、すなわち、全体的な実際の符号化レートがターゲットビットレート内に収まるように、再構築画像の歪みを最小限にする。したがって、レートコントローラ120の1つの目的は、レート歪特性を最大にしながら、レートに関する瞬間的および平均的な制約を満たすために、QP、コーディングモードなどのコーディングパラメータのセットを決定することである。
【００５０】
予測器、量子化器、および再構築器構成要素125は、ビデオエンコーダ20の少なくとも3つの符号化動作を実施することができる。予測器、量子化器、および再構築器構成要素125は、いくつかの異なるモードで予測を実施することができる。1つの例示的な予測モードが、中央値適応予測の修正バージョンである。中央値適応予測は、無損失JPEG規格(JPEG-LS)によって実装することができる。予測器、量子化器、および再構築器構成要素125によって実施することができる中央値適応予測の修正バージョンは、3つの連続するサンプル値の並列予測を可能にし得る。別の例示的予測モードはブロック予測である。ブロック予測において、サンプルは、前に再構築された上のラインのピクセルから、または同じライン上の左に向かって予測される。いくつかの実施形態では、ビデオエンコーダ20およびビデオデコーダ30は両方とも、再構築ピクセルに対して同一の探索を実施して、ブロック予測の使用を決定し得、したがって、どのビットも、ブロック予測モードで送られる必要はない。他の実施形態では、ビデオエンコーダ20は、ビデオデコーダ30が別個の探索を実施する必要がないように、探索を実施し、ビットストリーム中のブロック予測ベクトルをシグナリングすることができる。成分範囲の中間点を使ってサンプルが予測される中間点予測モードも実装されてよい。中間点予測モードは、ワーストケースサンプルにおいてさえも圧縮ビデオに求められるビットの数のバウンディングを可能にし得る。
【００５１】
予測器、量子化器、および再構築器構成要素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の対応する構成要素と同様に動作し得る。
【００５８】
QP計算
1つの手法では、現在のブロック用のQP(currQPとして示す)は、以下の式を使用して導出または算出され得る。
currQP=prevQ+QpAdj*(diffBits>0?1:-1)
【００５９】
上式で、prevQPは前のブロックに関連するQPであり、diffBitsは、previousBlockBitsとtargetBitsとの差分を表し、QpAdjは、diffBitsの大きさに基づいて計算されるQPオフセット値(たとえば、QP調整値)であり、previousBlockBitsは、前のブロックをコーディングするために使用されるビット数を表し、targetBitsは、現在のブロックをコーディングするために割り振られるターゲットビット数を表す。previousBlockBits>targetBitsのとき、diffBitsは正数であり、現在のブロックのQPは、オフセット値QpAdjをprevQPに加算することによって導出され得る。言い換えれば、diffBitsが正数であるとき、QP値は、prevQPから値が下がらない。previousBlockBits≦targetBitsのとき、diffBitsは負数またはゼロであり、currQPはprevQP値から増えない。オフセット値QpAdjは、たとえば、diffBitsの大きさが増えるにつれてQpAdjが単調に増加するようにdiffBitsの関数として算出され得ることに留意されたい。
【００６０】
QP調整値QpAdjを計算するための、本明細書ではデフォルト技法と呼ぶ1つの技法について、図3を参照しながら次に説明する。図3は、ゼロから始まるdiffBitsの値が描かれる軸を含むグラフ50を提供する。デフォルト技法では、diffBits>0のとき、diffBitsは、K個の閾値を使用してK+1個の範囲に分類され得る。これらの閾値は、閾値1、閾値2、閾値3、……、および閾値Kというラベルによって示され、範囲は、範囲1、範囲2、範囲3、……、および範囲K+1というラベルによって示される。図3のデフォルト技法では、diffBitsを、K個の閾値を使用してK+1個の範囲に分ける1つの手法が示されている。各範囲は、特定のQpAdj値に関連付けられてもよく、QpAdj値は、範囲指標が増えるにつれて増える。diffBits≦0のとき、diffBitsの絶対値は、J個の閾値を使用してJ+1個の範囲に分類されてもよく(図示せず)、J+1個の範囲の各々に割り当てられた特定のQpAdj値があってもよい。
【００６１】
他の態様では、currQP値は、バッファのアンダーフローおよび/またはオーバーフローを防ぐために、バッファのフルネス(バッファフルネス(BF)として表され得る)に基づいて調整されてもよい。詳細には、BFがある閾値(たとえば、P1)を超えるとき、currQPは固定オフセット値(たとえば、p1)だけインクリメントされ得る。たとえば、currQPは、次のように調整され得る:currQP+=p1。さらに、BFがある閾値(たとえば、Q1)を下回るとき、currQPはq1だけデクリメントされ、たとえば、currQP-=q1であり得る。ある態様では、複数の閾値が用いられてもよく、各閾値に対して、currQPを調整するための対応するオフセット値があってもよい。
【００６２】
最後に、複雑領域から平坦領域への遷移が識別されるとき、または平坦領域が識別されるとき、currQPは、低い値(たとえば、定義されたcurrQP値を下回る値)に設定されてもよい。
【００６３】
平坦から複雑への検出
図4を参照すると、DSCのための平坦/平滑領域から複雑領域への遷移を検出するために、1つまたは複数の技法が利用され得る。複雑領域への遷移を検出するためにどの技法が使用されるか、そのような遷移がいつ検出されるかにかかわらず、使用されるQPは、現在のブロックをコーディングするのに必要とされる予想レートを下げるために、遷移ブロックにおいて(前の平坦ブロックと比較して)上げられ得る。しかしながら、遷移ブロックは平坦領域と複雑領域の両方を含むので、遷移ブロックにおけるQP値は、(たとえば、定義されたQP値を超えて)高すぎてはならないことに留意されたい。
【００６４】
図4は、フレーム、またはたとえば、フレームのスライスなどその一部である場合がある例示的な関心領域200を示す。領域200は、3つの連続するブロック205、210、および215を含み得る。この例では、ブロック205が、領域200の平坦領域/部分に対応し、ブロック210が、領域200の遷移領域/部分に対応し、ブロック215が、領域200の複雑領域/部分に対応する。図示のように、ブロック205の内容は平坦、平滑、または均一である。ブロック215の内容は、テクスチャ処理され、全体にわたって均一でないパターンを示す。ブロック210は、均一な内容から均一でない内容への遷移を含む。ブロック205、210、および215の各々に対して、複雑度計算が実行され得る。
【００６５】
「QP計算」の節で前述したように、技法は、視覚情報における局所変化を考慮するprevBlockBitsに基づいてQPを計算するために実施され得る。すなわち、高程度にテクスチャ処理された領域をコーディングする間、QPは上がる傾向があり、平滑領域をコーディングする間、QPは下がる傾向がある。わかっているまたは予測される場合がある後のブロック中に存在する視覚情報を利用するQP計算技法について、以下で説明する。
【００６６】
後のブロック中の視覚情報の複雑度に基づいてQPを調整する
本明細書で説明する技法は、どんな画像にも、または有限レートバッファでレート制御を使用するビデオコーダで適用され得る。
【００６７】
本開示の1つまたは複数の態様によれば、QPは、すでに処理されたブロックの視覚情報に基づいて、後のブロック中に存在する視覚情報の複雑度を推定することによって調整され得る。
【００６８】
たとえば、エンコーダ20が現在、高周波数/テクスチャ領域を符号化しており、エンコーダ20が、次の領域は平滑であると予測するとき、非常に複雑な領域用のQP値はアグレッシブに上げられる必要はない。
【００６９】
後のブロック中の視覚情報のタイプ(たとえば、後のブロックの複雑度)は、前に符号化されたブロックの視覚情報に基づいて推定され得る。
【００７０】
ブロック(またはより一般的には画像の領域)の複雑度は、ブロック/領域をコーディングする際にエンコーダ20またはデコーダ30によって使用され得るいくつかの情報を含む場合がある。
【００７１】
一例では、ブロックの周波数変換(離散コサイン変換(DCT)、アダマール変換など)を行うこと、次いで周波数変換係数の全部または一部のサブセットの絶対値を加算することによって、複雑度値が計算される場合がある。一実装形態では、直流(DC、たとえば、ゼロ周波数)係数は、複雑度値の計算から省略される場合がある。他の実装形態では、DC係数を省略することに加えて、1つまたは複数の低周波数変換係数が省略される場合がある。いくつかの実装形態では、周波数変換をブロックに適用する前に、色変換がブロックに適用される場合がある。
【００７２】
別の例では、複雑度値は、ブロックをコーディングするのに使用されたビット数およびブロックのそれぞれのQP値に基づいて導出されてもよい。別の例では、複雑度値は、元のブロックと予測ブロックとの間の残差エネルギーに基づいて導出されてもよい。予測は、隣接する再構築サンプルから空間的に行われてもよい。周波数変換の前に色変換を適用するなど、複雑度値を決定するための様々な他の技法もまた、適用され得る。
【００７３】
1つまたは複数のブロックの複雑度値は、ブロックおよび/または他のブロックのコーディングに影響を及ぼす様々な決定を行うために使用されてもよい。たとえば、前に符号化されたブロックの複雑度値は、後のブロックの複雑度の推定に使用されてもよい。詳細には、後のブロックが前のブロックに空間的に近い(たとえば、垂直方向に隣接する)とき、後のブロックの複雑度は、前のブロックの複雑度に相関する可能性がある。したがって、本開示のいくつかの態様は、後のブロックの複雑度を推定するために、前のブロックの複雑度間の相関を活用してもよい。この推定は、いくつかのDSCコーディング環境などにおいて、限られたリソース(たとえば、処理能力、メモリサイズなど)を有するビデオコーディング環境に特に望ましい場合がある。
【００７４】
ブロックはまた、ブロックの複雑度値を1つまたは複数の閾値と比較することに基づいて分類されてもよい。たとえば、ブロックが平坦複雑度閾値未満である複雑度値を有するとき、ブロックは「平坦」ブロックとして分類されてもよい。したがって、エンコーダ20および/またはデコーダ30は、平坦(たとえば、平坦ブロックは下限QP値を有していてもよい)と分類されるブロックに対して、平坦と分類されないブロックとは異なるように、QP値を決定するように構成されてもよい。しかしながら、実装形態に応じて、エンコーダ20および/またはデコーダ30は、対応するQP値を決定するために、ブロックを平坦または平坦でないと明示的に分類する必要がない場合がある。
【００７５】
いくつかの態様では、エンコーダ20および/またはデコーダ30は、導出された複雑度値(たとえば、前のブロックの複雑度値)に基づいて現在のブロックのQPを更新するために特定の技法(「代替技法」とも呼ばれる)を選択してもよい。一例では、特定の技法が、「N」ブロックごとに実行されてもよく、ここでNは整数である。一実装形態では、特定の技法は、スライス中の各ラインに対して選択されてもよい。たとえば、現在のラインに対するQP技法は、前のラインの複雑度値の少なくともいくつかに基づいて決定されてもよい。
【００７６】
QPを更新するために使用される各技法は、コーディングされなければならない視覚情報のタイプに応じて異なってもよい。たとえば、コーディングされなければならないN個のブロックのすべてが、高程度にテクスチャ処理されているとき、「デフォルト技法」(たとえば、図3に関して上記で説明した技法)と比べてアグレッシブにQPを更新するために、代替技法が選ばれてもよい。代替的に、N個のブロックのうちのブロックのサブセットがテクスチャ処理され(たとえば、ブロックのサブセットの複雑度が閾値よりも大きい)、残りのブロックが複雑ではない(たとえば、残りのブロックの複雑度が閾値未満である)、またはN個のブロックの第1のセットがテクスチャ処理され、N個のブロックの次のセットが複雑ではないとき、エンコーダ20および/またはデコーダ30は、テクスチャ処理された領域(たとえば、N個のブロックの第1のセット)をコーディングする間にQP値をインクリメントするとき、デフォルト技法と比較してそれほどアグレッシブでない代替技法を選択してもよい。代替的に、平坦領域をコーディングする間、エンコーダ20および/またはデコーダ30は、デフォルト技法と比べてQP値を下げる際に控えめな代替技法を選択してもよい。
【００７７】
一実装形態では、下記のように前のライン複雑度値から特定のQP技法が決定されてもよい。この技法について、以下に定義するいくつかの変数を使用して説明する。
【００７８】
prevLineAvgComplexityは、前のラインの平均複雑度値を表す変数である。複雑度値は、上記で説明した技法のいずれかにより導出され得る。
【００７９】
numBlksSmallComplexityは、小さい複雑度値を有する、前のライン中のブロック数を表す変数である。たとえば、ある閾値T以下の複雑度値をもつブロックであり、ここでTは、設定可能パラメータである。
【００８０】
TotalNumBlksInPrevLineは、前のライン中の総ブロック数を表す変数である。
【００８１】
percentageBlksSmallComplexityは、小さい複雑度値を有するブロックのパーセンテージを表す変数である。一実装形態では、percentageBlksSmallComplexity=(numBlksSmallComplexity/TotalNumBlksInPrevLine)*100である。
【００８２】
Techniqueは、QPを算定するための選択された技法を表す変数である。
【００８３】
したがって、Table 1(表1)において以下に示す次の例示的な擬似コードは、QP値またはQP調整値を計算する際に採用される代替技法を選択するために使用され得る。
【００８４】
【表１】
2018515014.tif 000003
【００８５】
上記の擬似コードでは、[T1, T2, …, Tn]、[P1, P2, …, Pm]、および[Q1, Q2, …, Qm]は閾値である。technique-B1、technique-B2、……、technique-Bnは、N個のブロックが概して複雑であるまたはテクスチャ処理されている(たとえば、N個のブロックが閾値T1、T2、……、Tnのうちの少なくとも1つ以上である平均複雑度を有する)と決定されるとき、使用され得る代替技法(第2の代替技法のセットとも呼ばれる)である。technique-A1、technique-A2、……、technique-Amは、N個のブロックのうちのブロックの少なくともいくつかが複雑であり(たとえば、N個のブロックが、P1、P2、……、Pmのうちの少なくとも1つ以上である平均複雑度を有する)、N個のブロックのうちの残りのブロックが複雑ではない(たとえば、小さいN個のブロックのパーセンテージが、P1、P2、……、Pm閾値に対応するQ1、Q2、……、Qm以上である)とき使用され得る代替技法(第1の代替技法のセットとも呼ばれる)である。
【００８６】
そこから代替技法が選ばれ得る代替技法の数は、複雑度対パフォーマンスのトレードオフによって決まり得る。たとえば、中程度にテクスチャ処理されている、非常にテクスチャ処理されている、極端にテクスチャ処理されているなど、複雑度のいくつかの度合いが、前のブロックを分類するために決定されてもよい。複雑度の各度合いについて、QP調整値を計算するための対応する技法があってもよい。
【００８７】
一実装形態では、m=1である。別の実装形態では、n=2である。別の実装形態では、閾値[P1, P2, …, Pm]および[Q1, Q2, …, Qm]のどれが満たされるかにかかわらず、第1の代替技法の1つが、残りの第1の代替技法の代わりに選択される。たとえば、technique-A1は、「第mの」条件(たとえば、prevLineAvgComplexity<=Pm && percentageBlksSmallComplexity>=Qm)のいずれが満たされても、たとえば、technique-Amを選択する代わりに、選択され得、技法は、technique-A1 315を使用することを含む。「第nの」条件(prevLineAvgComplexity>=Tn)のどれが満たされるかにかかわらず、technique-B1が選択される、同様の技法が適用されてもよい。
【００８８】
デフォルト技法および代替技法すなわちtechnique-A1、technique-A2、…… technique-Amについての、変数delta Qp(たとえば、diffBitsの値に基づいて1または-1を掛けたQP調整値)と変数diffBitsとの間の関係の一態様について、図5に関して説明する。図5に示すグラフは、代替技法すなわちtechnique-A1 315およびtechnique-B1 305とともにデフォルト技法310を示す。変数diffBitsは、x軸上にプロットされ、変数delta Qpは、y軸上にプロットされる。
【００８９】
図5の実装形態では、デフォルト技法は、以下の式に基づいて表され得る。
delta Qp=QpAdj*(diffBits>0?1:-1)
【００９０】
N個のブロックのうちのブロックのサブセットが複雑であり、残りが複雑ではない、(または)N個のブロックのうちの第1のセットが複雑であり、N個のブロックの後続のセットが複雑ではないとき、delta Qpは、代替技法technique-A1 315に基づいて決定され得る。たとえば、diffBits>0の所与の値に対するtechnique-A1 315では、technique-A1 315に対するdelta Qpの値は、デフォルト技法310の対応するdelta Qp以下である。すなわち、複雑な、またはテクスチャ処理された領域に対して、QPは、デフォルト技法310と比較してアグレッシブに上げられない。したがって、technique-A1 315の場合、複雑なまたはテクスチャ処理された領域に対するQP値は、デフォルト技法310に基づいて計算される対応するQP値以下である。しかしながら、diffBits<=0のとき(たとえば、平坦/平滑領域またはテクスチャ処理されていない領域の場合)、technique-A1 315は、QPデクリメントがたとえば、diffBitsの所与の値に対して、控えめに実行され得るように、QP調整値を決定してもよく、technique-A1 315の場合のdelta Qp(たとえば、QP調整値)の絶対値は、デフォルト技法310に従って計算されるQP調整値以下である。したがって、複雑でない領域に対して、technique-A1 315によって決定されるQP値は、デフォルト技法310に基づいて決定される対応するQP値以上である。
【００９１】
一実装形態では、diffBitsの値> 0の場合、diffBitsの所与の値について、technique-A1 315に対するdelta Qp値<=technique-A2に対するdelta Qp値<=…… technique-Amに対するdelta Qp値<=デフォルト技法310に対するdelta Qp値である。一代替形態では、以下(<=)は、より真に小さい(<)に置き換えられ得る。
【００９２】
一実装形態では、デフォルト技法で使用されるように(図3に関して上記で説明したように)K+1個の範囲を分類するために、同じK個の閾値が使用されるとき、各範囲について、technique-A1 315に対するdelta Qp値<=technique-A2に対するdelta Qp値<=…… technique-Amに対するdelta Qp値<=デフォルト技法310に対するdelta Qp値である。
【００９３】
diffBitsの値<=0の場合、diffBitsの所与の値について、technique-A1 315に対するdelta Qpの絶対値(たとえば、QP調整値)<=technique-A2に対する|delta Qp|値<=…… technique-Amに対する|delta Qp|値<=デフォルト技法310に対する|delta Qp|値である。一代替形態では、以下(<=)は、より真に小さい(<)に置き換えられ得る。一実装形態では、デフォルト技法310は、diffBits<=0の場合のdelta Qpを計算するために使用されてもよく、たとえば、以下(<=)が等しい(=)に置き換えられ得る。
【００９４】
一実装形態では、デフォルト技法310で使用されるようにJ+1個の範囲を分類するために、同じ閾値J値が使用されるとき、各範囲について、technique-A1 315に対する|delta Qp|値<=technique-A2に対する|delta Qp|値<=……technique-Amに対する|delta Qp|値<=デフォルト技法310に対する|delta Qp|値である。
【００９５】
デフォルト技法、technique-B1、technique-B2、…… technique-Bnについての、変数delta Qp(たとえば、diffBitsの値に基づいて1または-1を掛けたQP調整値)と変数diffBitsとの関係の一態様について、図5に関して説明する。
【００９６】
コーディングされるN個のブロックが高程度にテクスチャ処理されている(複雑度閾値よりも大きい複雑度を有する)とき、delta Qpは、technique-B1 305に基づいて決定することができ、diffBits>0の所与の値について、technique-B1 305に対するdelta Qpの値は、デフォルト技法310の対応するdelta Qp以上である。すなわち、複雑領域に対して、QPは、デフォルト技法310と比較するとアグレッシブに上げられる。diffBits<=0のとき、diffBitsの所与の値について、technique-B1 305に対する値|delta Qp|(たとえば、QP調整値)は、デフォルト技法310により決定される対応する値以下である。
【００９７】
diffBitsの値>0のとき、diffBitsの所与の値について、technique-B1 305に対するdelta Qp値>=technique-B2に対するdelta Qp値>=…… technique-Bnに対するdelta Qp値>=デフォルト技法310に対するdelta Qp値である。一代替形態では、以上(>=)は、より真に大きい(>)に置き換えられ得る。一実装形態では、デフォルト技法310は、diffBitsの値>0の場合のdelta Qpを計算するために使用されてもよく、すなわち、以上(>=)が等しい(=)に置き換えられ得る。
【００９８】
一実装形態では、デフォルト技法で使用されるように(図3に関して上記で説明したように)K+1個の範囲を分類するために、同じK閾値が使用されるとき、各範囲について、technique-B1 305に対するdelta Qp値>=technique-B2に対するdelta Qp値>=…… technique-Bnに対するdelta Qp値>=デフォルト技法310に対するdelta Qp値である。
【００９９】
diffBitsの値<=0のとき、diffBitsの所与の値について、technique-B1 305に対する|delta Qp|値<=technique-B2に対する|delta Qp|値<=…… technique-Bnに対する|delta Qp|値<=デフォルト技法310に対する|delta Qp|値である。一代替形態では、以下(<=)は、より真に小さい(<)に置き換えられ得る。一実装形態では、デフォルト技法310は、diffBits<=0の場合の値delta Qpを計算するために使用されてもよく、たとえば、以下(<=)が等しい(=)に置き換えられ得る。
【０１００】
一実装形態では、デフォルト技法310で使用されるようにJ+1個の範囲を分類するために、同じ閾値J値が使用されるとき、各範囲について、technique-B1 305に対する|delta Qp|値<=technique-B2に対する|delta Qp|値<=…… technique-Bnに対する|delta Qp|値<=デフォルト技法310に対する|delta Qp|値である。
【０１０１】
図5の例示的な手法は、説明のためであること、および各技法についてのdiffBits対delta Qpの実際の関数および関係は、特定の実装形態またはコンテキストに応じて異なる場合があることに留意されたい。
【０１０２】
一実装形態では、上記で説明した技法について、diffBits<=0の場合の決定されたdelta Qp値は、たとえば、デフォルト技法310と比較して変わらず、デフォルト技法で使用されるものとまったく同じであってもよい。しかしながら、diffBits>0の場合、delta Qpは上記で説明したように決定されてもよい。
【０１０３】
本明細書で説明する技法は、(1)明示的QP導出、および/または(2)暗黙的QP導出に適用され得る。明示的QP導出では、QP値は、エンコーダ20で導出され得る。暗黙的QP導出では、エンコーダ20とデコーダ30の両方が、QP値を導出し得る。しかしながら、デコーダ30は、たとえば、QP技法のタイプまたはQP値を決定するために使用される特定の代替技法など、QP値を導出するために追加情報を利用する場合がある。しかしながら、デコーダ30は、たとえば、エンコーダ20によってビットストリームでシグナリングされ得るQP技法のタイプなど、QP値を導出するために追加情報を利用する場合がある。デコーダ30がQP値を導出するのを支援するために使用することができる他の情報は、実装形態に応じてエンコーダ20によってビットストリームでシグナリングされ得る。
【０１０４】
第1の例では、本明細書で提案する技法は、適切なQP適合曲線(adaptation curve)を選ぶことによってQPを計算するためにエンコーダ20によって使用され得る。エンコーダ20は、たとえば、現在のブロックのQPと前のブロックのQPとの差分をシグナリングすることにより、QPを明示的にシグナリングしてもよい。エンコーダ20はまた、選ばれたQP適合曲線をシグナリングしてもよい。
【０１０５】
第2の例では、本明細書で提案する技法は、エンコーダ20とデコーダ30の両方によって使用され得る。QP適合曲線のタイプは、エンコーダ20によって選ばれてもよく、明示的にシグナリングされてもよい。しかしながら、デコーダ30は、QPを導出するために追加情報を必要とし得る。たとえば、QP適合曲線のタイプおよび/または特定の技法は、やはりエンコーダ20によって選ばれてもよく、明示的にシグナリングされてもよい。エンコーダ20は、たとえば、「N」ブロックごとに選ばれた選択QP技法をシグナリングしてもよい。
【０１０６】
別の実装形態では、QP技法のタイプはシグナリングされなくてもよい。すなわち、エンコーダ20とデコーダ30の両方が、すでに符号化されたブロックからの情報を使用してQP技法を導出してもよい。
【０１０７】
量子化パラメータ(QP)値を決定するための例示的なフローチャート
図6を参照して、QP値を決定するための例示的な手順について説明する。図6は、本開示の一実施形態による、ビデオデータをコーディングするための方法600を示すフローチャートである。図6に示すステップは、ビデオエンコーダ(たとえば、図2A中のビデオエンコーダ20)、ビデオデコーダ(たとえば、図2B中のビデオデコーダ30)、または、それらの構成要素によって実行され得る。便宜上、方法600については、ビデオエンコーダ20、ビデオデコーダ30、または他の構成要素であってもよいビデオコーダ(単にコーダとも呼ばれる)によって実施されるものとして説明する。
【０１０８】
方法600は、ブロック601から開始する。ブロック605において、コーダは、複数の前のブロックの複雑度値を決定する。いくつかの実装形態では、コーダは、周波数変換を実行することにより、前のブロックの各々に対して複雑度値を決定してもよい。ブロック610において、コーダは、決定された複雑度値に基づいて、現在のブロックに対するQP調整値を計算するための複数の定義された技法からある技法を選択する。
【０１０９】
ブロック615において、コーダは、選択された技法により、現在のブロックに対するQP調整値を計算する。ブロック620において、コーダは、QP調整値に基づいて、現在のブロックに対するQP値を決定する。この方法は、ブロック625において終了する。
【０１１０】
方法600において、図6に示すブロックのうちの1つもしくは複数は削除されても(たとえば、実施されなくても)よく、かつ/または方法が実施される順序は入れ換えられてもよい。いくつかの実施形態では、追加ブロックが方法600に追加されてもよい。本開示の実施形態は、図6に示す例にも、その例によっても限定されず、本開示の趣旨から逸脱することなく、他の変形形態が実装されてよい。
【０１１１】
他の検討事項
本開示の態様は、図2Aのビデオエンコーダ20などのエンコーダの観点から説明してきたことに留意されたい。ただし、たとえば図2Bのビデオデコーダ30によって、生成されたビットストリームを復号するために、上記で説明した動作と逆の動作が適用され得ることを当業者は諒解されよう。
【０１１２】
本明細書で開示する情報および信号は、種々の異なる技術および技法のいずれかを使用して表すことができる。たとえば、上記の説明全体にわたって参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光学場もしくは光学粒子、またはそれらの任意の組合せによって表すことができる。
【０１１３】
本明細書において開示された実施形態に関して記載された様々な例示的な論理ブロック、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装される場合がある。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、およびステップは、それらの機能性の点から一般的に上に説明されている。そのような機能性がハードウェアとして実装されるかソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課された設計制約に依存する。当業者は、説明された機能性を特定の適用例ごとに様々な方式で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
【０１１４】
本明細書で説明した技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装することができる。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセット、自動車、アプライアンス、ウェアラブル、および/もしくは他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのいずれかにおいて実装され得る。デバイスまたは構成要素として記載された任意の特徴は、集積論理デバイス内で一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアに実装された場合、本技法は、実行されると、上記で説明された方法のうちの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  ビデオデコーダ
32  ディスプレイデバイス
50  グラフ
105  色空間コンバータ
110  バッファ
115  平坦度検出器
120  レートコントローラ
125  予測器、量子化器、および再構築器構成要素
130  ラインバッファ
135  索引付き色履歴
140  エントロピーエンコーダ
145  サブストリームマルチプレクサ
150  レートバッファ
155  レートバッファ
160  サブストリームデマルチプレクサ
165  エントロピーデコーダ
170  レートコントローラ
175  予測器、量子化器、および再構築器構成要素
180  索引付き色履歴
185  ラインバッファ
200  領域
205  ブロック
210  ブロック
215  ブロック
305  technique-B1
310  デフォルト技法
315  technique-A1
600  方法
【図１Ａ】
2018515014.tif 000004
【図１Ｂ】
2018515014.tif 000005
【図２Ａ】
2018515014.tif 000006
【図２Ｂ】
2018515014.tif 000007
【図３】
2018515014.tif 000008
【図４】
2018515014.tif 000009
【図５】
2018515014.tif 000010
【図６】
2018515014.tif 000011
【手続補正書】
【提出日】平成29年10月16日(2017.10.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
量子化パラメータ(QP)値を決定するための方法であって、
複数の前のブロックの複雑度値を決定するステップと、
(a)下限複雑度閾値未満である複雑度値を有する前記前のブロックの数の、(b)前記前のブロックの総数に対する比率を決定するステップと、
前記決定された複雑度値および前記比率に基づいて、現在のブロックに対するQP調整値を計算するための複数の定義された技法からある技法を選択するステップと、
前記選択された技法により、前記現在のブロックに対する前記QP調整値を計算するステップと、
前記QP調整値に基づいて、前記現在のブロックに対する前記QP値を決定するステップと
を含む、方法。
【請求項２】
前記前のブロックの平均複雑度値を決定するステップと、
前記前のブロックの前記平均複雑度値が、上限平均複雑度閾値以上であるかどうかを決定するステップと
をさらに含み、
前記技法の前記選択が、前記前のブロックの前記平均複雑度値が前記上限平均複雑度閾値以上であるかどうかの前記決定にさらに基づく、請求項1に記載の方法。
【請求項３】
前記前のブロックをコーディングするために必要とされるビット数および前記現在のブロックのためのターゲットビット数の差分を決定するステップ
をさらに含み、
i)前記ビット数の前記差分がゼロよりも大きいこと、およびii)前記前のブロックの前記平均複雑度値が前記上限平均複雑度閾値以上であると決定することに応じて、前記選択された技法により計算される前記QP調整値が、i)前記ビット数の前記差分がゼロよりも大きくないこと、またはii)前記前のブロックの前記平均複雑度値が前記上限平均複雑度閾値以上ではないと決定することに応じて選択されるデフォルト技法により計算されるQP調整値以上となる、請求項2に記載の方法。
【請求項４】
負またはゼロの差分に関しては、前記選択された技法によって計算される前記QP調整値の絶対値が、前記デフォルト技法によって計算されるQP調整値の絶対値以下である、請求項3に記載の方法。
【請求項５】
前記前のブロックの平均複雑度値を決定するステップと、
前記前のブロックの前記平均複雑度値が、下限平均複雑度閾値以下であるかどうかを決定するステップと、
前記比率が比率閾値以上であるかどうかを決定するステップと
をさらに含み、
前記技法を前記選択するステップが、(i)前記前のブロックの前記平均複雑度値が前記下限平均複雑度閾値以下であるかどうかの前記決定、および(ii)前記比率が前記比率閾値以上であるかどうかの前記決定にさらに基づく、請求項1に記載の方法。
【請求項６】
前記選択された技法により計算される前記QP調整値の絶対値が、前記前のブロックをコーディングするために必要とされる前記ビット数および前記現在のブロックのためのターゲットビット数の所与の差分に対して、デフォルト技法によって計算されるQP調整値の絶対値以下であり、前記デフォルト技法が、(i)前記前のブロックの前記平均複雑度値が前記下限平均複雑度閾値よりも大きいこと、または(ii)前記比率が前記比率閾値未満であることに応じて選択される、請求項5に記載の方法。
【請求項７】
前記技法を前記選択するステップが、現在のラインに対する技法を選択するステップを含み、前記方法が、前記現在のラインに対する前記選択された技法により、前記現在のライン中の前記ブロックの各々に対して前記QP調整値を計算するステップをさらに含む、請求項1に記載の方法。
【請求項８】
前記現在のラインに対する前記選択された技法が、ビットストリームにおいて明示的にシグナリングされる、請求項7に記載の方法。
【請求項９】
前記前のブロックの前記複雑度値の前記決定が、前記前のブロックをコーディングするために使用されるビット数および前記前のブロックに対するQP値に基づく、請求項1に記載の方法。
【請求項１０】
前記前のブロックの前記複雑度値を前記計算するステップが、
前記前のブロックの変換を行うことにより、複数の変換係数を決定するステップと、
前記変換係数の絶対値を加算するステップと
を含む、請求項1に記載の方法。
【請求項１１】
前記変換係数の前記絶対値の前記加算が、DC値変換係数を除外する、請求項10に記載の方法。
【請求項１２】
前記前のブロックの前記変換を行う前に前記前のブロックに色変換を適用するステップをさらに含む、請求項10に記載の方法。
【請求項１３】
量子化パラメータ(QP)値を決定するためのデバイスであって、
i)現在のブロックおよび複数の前のブロックを含むビデオデータ、ならびにii)QP調整値を計算するための複数の定義された技法を記憶するように構成されたメモリと、
前記メモリに結合され、
前記前のブロックの複雑度値を決定すること、
(a)下限複雑度閾値未満である複雑度値を有する前記前のブロックの数の、(b)前記前のブロックの総数に対する比率を決定すること、
前記決定された複雑度値および前記比率に基づいて、現在のブロックに対するQP調整値を計算するための前記定義された技法からある技法を選択すること、
前記選択された技法により、前記現在のブロックに対する前記QP調整値を計算すること、ならびに
前記QP調整値に基づいて、前記現在のブロックに対する前記QP値を決定すること
を行うように構成された、少なくとも1つのプロセッサ回路と
を備える、デバイス。
【請求項１４】
前記プロセッサ回路が、
前記前のブロックの平均複雑度値を決定することと、
前記前のブロックの前記平均複雑度値が、上限平均複雑度閾値以上であるかどうかを決定することと、
前記前のブロックの前記平均複雑度値が前記上限平均複雑度閾値以上であるかどうかの前記決定にさらに基づいて前記技法を選択することと
を行うようにさらに構成される、請求項13に記載のデバイス。
【請求項１５】
前記プロセッサ回路が、
前記前のブロックをコーディングするために必要とされるビット数および前記現在のブロックのためのターゲットビット数の差分を決定する
ようにさらに構成され、
i)前記ビット数の前記差分がゼロよりも大きいこと、およびii)前記前のブロックの前記平均複雑度値が前記上限平均複雑度閾値以上であると決定することに応じて、前記プロセッサ回路が、i)前記ビット数の前記差分がゼロよりも大きくないこと、またはii)前記前のブロックの前記平均複雑度値が前記上限平均複雑度閾値以上ではないと決定することに応じて選択されるデフォルト技法により計算されるQP調整値以上であるように、前記選択された技法により前記QP調整値を計算するようにさらに構成される、請求項14に記載のデバイス。
【請求項１６】
負またはゼロの差分に関しては、前記プロセッサ回路が、デフォルト技法によって計算されるQP調整値の絶対値以下であるように前記QP調整値の絶対値を計算するようにさらに構成される、請求項15に記載のデバイス。
【請求項１７】
前記プロセッサ回路が、
前記前のブロックの平均複雑度値を決定することと、
前記前のブロックの前記平均複雑度値が、下限平均複雑度閾値以下であるかどうかを決定することと、
前記比率が比率閾値以上であるかどうかを決定することと、
前記技法を前記選択することが、(i)前記前のブロックの前記平均複雑度値が前記下限平均複雑度閾値以下であるかどうかの前記決定、および(ii)前記比率が前記比率閾値以上であるかどうかの前記決定に基づいて、前記技法を選択することと
を行うようにさらに構成される、請求項13に記載のデバイス。
【請求項１８】
前記プロセッサ回路が、前記前のブロックをコーディングするために必要とされる前記ビット数および前記現在のブロックのためのターゲットビット数の所与の差分に対するデフォルト技法によって計算されるQP調整値の絶対値以下であるように、前記選択された技法により前記QP調整値の絶対値を計算するようにさらに構成され、前記デフォルト技法が、(i)前記前のブロックの前記平均複雑度値が前記下限平均複雑度閾値よりも大きいこと、または(ii)前記比率が前記比率閾値未満であることに応じて選択される、請求項17に記載のデバイス。
【請求項１９】
前記プロセッサ回路が、
現在のラインに対する技法を選択することと、
前記現在のラインに対する前記選択された技法により、前記現在のライン中の前記ブロックの各々に対して前記QP調整値を計算することと
を行うようにさらに構成される、請求項13に記載のデバイス。
【請求項２０】
前記現在のラインに対する前記選択された技法が、ビットストリームにおいて明示的にシグナリングされる、請求項19に記載のデバイス。
【請求項２１】
複数の前のブロックの複雑度値を決定するための手段と、
(a)下限複雑度閾値未満である複雑度値を有する前記前のブロックの数の、(b)前記前のブロックの総数に対する比率を決定するための手段と、
前記決定された複雑度値および前記比率に基づいて、現在のブロックに対するQP調整値を計算するための複数の定義された技法からある技法を選択するための手段と、
前記選択された技法により、前記現在のブロックに対する前記QP調整値を計算するための手段と、
前記QP調整値に基づいて、前記現在のブロックに対する前記QP値を決定するための手段と
を備える、装置。
【請求項２２】
前記前のブロックの平均複雑度値を決定するための手段と、
前記前のブロックの前記平均複雑度値が、上限平均複雑度閾値以上であるかどうかを決定するための手段と
をさらに備え、
前記技法を選択するための手段が、前記前のブロックの前記平均複雑度値が前記上限平均複雑度閾値以上であるかどうかの前記決定に基づいて前記技法を選択するための手段をさらに備える、請求項21に記載の装置。
【請求項２３】
前記前のブロックをコーディングするために必要とされるビット数および前記現在のブロックのためのターゲットビット数の差分を決定するための手段
をさらに備え、
i)前記ビット数の前記差分がゼロよりも大きいこと、およびii)前記前のブロックの前記平均複雑度値が前記上限平均複雑度閾値以上であると決定することに応じて、前記選択された技法により計算される前記QP調整値が、i)前記ビット数の前記差分がゼロよりも大きくないこと、またはii)前記前のブロックの前記平均複雑度値が前記上限平均複雑度閾値以上ではないと決定することに応じて選択されるデフォルト技法により計算されるQP調整値以上となる、請求項22に記載の装置。
【請求項２４】
負またはゼロの差分に関しては、前記選択された技法によって計算される前記QP調整値の絶対値が、デフォルト技法によって計算されるQP調整値の絶対値以下である、請求項23に記載の装置。
【請求項２５】
前記前のブロックの平均複雑度値を決定するための手段と、
前記前のブロックの前記平均複雑度値が、下限平均複雑度閾値以下であるかどうかを決定するための手段と、
前記比率が比率閾値以上であるかどうかを決定するための手段と
をさらに備え、
前記技法を前記選択するための手段が、(i)前記前のブロックの前記平均複雑度値が前記下限平均複雑度閾値以下であるかどうかの前記決定、および(ii)前記比率が前記比率閾値以上であるかどうかの前記決定に基づいて前記技法を選択するための手段をさらに備える、請求項21に記載の装置。
【請求項２６】
実行されると、デバイスのプロセッサに、
複数の前のブロックの複雑度値を決定することと、
(a)下限複雑度閾値未満である複雑度値を有する前記前のブロックの数の、(b)前記前のブロックの総数に対する比率を決定することと、
前記決定された複雑度値および前記比率に基づいて、現在のブロックに対するQP調整値を計算するための複数の定義された技法からある技法を選択することと、
前記選択された技法により、前記現在のブロックに対する前記QP調整値を計算することと、
前記QP調整値に基づいて、前記現在のブロックに対する前記QP値を決定することと
を行わせる命令を記憶したコンピュータ可読記憶媒体。
【請求項２７】
実行されると、前記プロセッサに、
前記前のブロックの平均複雑度値を決定することと、
前記前のブロックの前記平均複雑度値が、上限平均複雑度閾値以上であるかどうかを決定することと
を行わせる命令をさらに記憶し、
前記技法の前記選択が、前記前のブロックの前記平均複雑度値が前記上限平均複雑度閾値以上であるかどうかの前記決定にさらに基づく、請求項26に記載のコンピュータ可読記憶媒体。
【請求項２８】
実行されると、前記プロセッサに、
前記前のブロックをコーディングするために必要とされるビット数および前記現在のブロックのためのターゲットビット数の差分を決定すること
を行わせる命令をさらに記憶し、
i)前記ビット数の前記差分がゼロよりも大きいこと、およびii)前記前のブロックの前記平均複雑度値が前記上限平均複雑度閾値以上であると決定することに応じて、前記選択された技法により計算される前記QP調整値が、i)前記ビット数の前記差分がゼロよりも大きくないこと、またはii)前記前のブロックの前記平均複雑度値が前記上限平均複雑度閾値以上ではないと決定することに応じて選択されるデフォルト技法により計算されるQP調整値以上となる、請求項27に記載のコンピュータ可読記憶媒体。
【請求項２９】
負またはゼロの差分に関しては、前記選択された技法によって計算される前記QP調整値の絶対値が、デフォルト技法によって計算されるQP調整値の絶対値以下である、請求項28に記載のコンピュータ可読記憶媒体。
【請求項３０】
実行されると、前記プロセッサに、
前記前のブロックの平均複雑度値を決定することと、
前記前のブロックの前記平均複雑度値が、下限平均複雑度閾値以下であるかどうかを決定することと、
前記比率が比率閾値以上であるかどうかを決定することと
を行わせる命令をさらに記憶し、
前記技法を前記選択することが、(i)前記前のブロックの前記平均複雑度値が前記下限平均複雑度閾値以下であるかどうかの前記決定、および(ii)前記比率が前記比率閾値以上であるかどうかの前記決定にさらに基づく、請求項26に記載のコンピュータ可読記憶媒体。
【国際調査報告】
2018515014.tif 000012
2018515014.tif 000013
2018515014.tif 000014