(57)【要約】  複数のビデオサンプルを有するビデオ情報をコーディングするための方法および装置が開示される。ビデオデータに対するブロックは、ブロックごとに量子化パラメータ(QP)に基づいてエンコーダによってコーディングされる。ビデオデータは、YCoCgなどの特定の色空間においてコーディングされてよく、ビデオデータの異なる色成分をコーディングするために異なるQP値が使用されてよい。人間の目は、一般に、クロマと比較してルーマにおける差に対してもっと敏感であり、また色彩の橙色よりも色彩の緑色における差に対してより敏感であるので、ビデオデータをコーディングするためにYCoCg色空間が使用されるとき、色成分チャネルごとに異なるQP値が決定されてよい。異なるQP値を使用して各色成分をコーディングすることによって、コーディングされたビデオデータにおける視覚的なアーティファクトの出現も低減しながら、量子化に由来する損失が低減され得る。
2019514290.tif 000002
【特許請求の範囲】
【請求項１】
ディスプレイストリーム圧縮を使用してビデオデータをコーディングするための装置であって、
ルーマチャネル、クロミナンスオレンジ(Co)チャネル、およびクロミナンスグリーン(Cg)チャネルを備えるYCoCg色空間を使用して、ビデオデータの現在ブロックをコーディングするように構成されたエンコーダと、
ハードウェアプロセッサを備えるレートコントローラとを備え、前記レートコントローラが、
ビデオデータの前記現在ブロックの前記ルーマチャネルを量子化するためのルーマ量子化パラメータ(QP)を決定し、
前記決定されたルーマQPに基づいて、ビデオデータの前記現在ブロックの前記Cgチャネルを量子化するためのCg QPおよびビデオデータの前記現在ブロックの前記Coチャネルを量子化するためのクロミナンスオレンジCo QPを決定するように構成され、前記Cg QPおよび前記Co QPが前記ルーマQPよりも大きくかつ互いに異なり、
前記エンコーダが、表示または送信のためのビデオデータビットストリームを形成するために、前記決定されたルーマQP、Co QP、およびCg QPに基づいてビデオデータの前記現在ブロックを符号化するように構成される、
装置。
【請求項２】
前記Co QPが前記Cg QPよりも大きい、請求項1に記載の装置。
【請求項３】
前記Cg QPが前記ルーマQPよりも大きい、請求項1に記載の装置。
【請求項４】
前記エンコーダが、前記決定されたルーマQP、Co QP、およびCg QPに基づいてルーマ量子化ステップサイズ、Co量子化ステップサイズ、およびCg量子化ステップサイズを決定することによって、ビデオデータの前記現在ブロックを符号化し、前記Co量子化ステップサイズが前記Cg量子化ステップサイズよりも大きく、前記Cg量子化ステップサイズが前記ルーマ量子化ステップサイズよりも大きい、請求項1に記載の装置。
【請求項５】
前記ルーマQPが、ビデオデータの、前にコーディングされたブロックのルーマQP値を調整値だけ調整することによって決定され、前記調整値が、前記前にコーディングされたブロックをコーディングするために使用されたビット数、およびビデオデータの前記現在ブロックをコーディングするためのターゲットビット数に基づく、請求項1に記載の装置。
【請求項６】
前記調整値がさらに、より大きいバッファフルネス値に対して前記ルーマQPがより大きくなるような、バッファのバッファフルネス状態に少なくとも部分的に基づく、請求項5に記載の装置。
【請求項７】
前記調整値が、前記前にコーディングされたブロックをコーディングするために使用された前記ビット数と前記ターゲットビット数との間の差分に比例する、請求項5に記載の装置。
【請求項８】
ビデオデータの前記現在ブロックが複雑領域から平坦領域への遷移を備えるかどうかという決定に応答して、前記ルーマQPが所定の値に設定される、請求項1に記載の装置。
【請求項９】
前記レートコントローラが、複数のルーマQP値から複数の対応するCo QP値およびCg QP値への所定のマッピングを備えるデータ構造にアクセスするように構成される、請求項1に記載の装置。
【請求項１０】
前記データ構造が、ルーマQP値をCo QP値にマッピングする第1の列、およびルーマQP値をCg QP値にマッピングする第2の列を備える、少なくとも1つのルックアップテーブル(LUT)を備える、請求項9に記載の装置。
【請求項１１】
前記エンコーダが、ディスプレイデバイス上に表示されるべき前記ビデオデータビットストリームをデコーダに送信するようにさらに構成される、請求項1に記載の装置。
【請求項１２】
ディスプレイストリーム圧縮を使用してビデオデータをコーディングするための方法であって、
ルーマチャネル、クロミナンスオレンジ(Co)チャネル、およびクロミナンスグリーン(Cg)チャネルを備えるYCoCg色空間を使用してコーディングされるべきビデオデータの現在ブロックを受信するステップと、
ビデオデータの前記現在ブロックの前記ルーマチャネルを量子化するためのルーマ量子化パラメータ(QP)を決定するステップと、
前記決定されたルーマQPに基づいて、ビデオデータの前記現在ブロックの前記Cgチャネルを量子化するためのCg QPおよびビデオデータの前記現在ブロックの前記Coチャネルを量子化するためのクロミナンスオレンジCo QPを決定するステップであって、前記Cg QPおよび前記Co QPが前記ルーマQPよりも大きくかつ互いに異なる、ステップと、
表示または送信のためのビデオデータビットストリームを形成するために、前記決定されたルーマQP、Co QP、およびCg QPに基づいてビデオデータの前記現在ブロックを符号化するステップと
を備える方法。
【請求項１３】
前記Co QPが前記Cg QPよりも大きい、請求項12に記載の方法。
【請求項１４】
前記Cg QPが前記ルーマQPよりも大きい、請求項12に記載の方法。
【請求項１５】
ビデオデータの前記現在ブロックが、前記決定されたルーマQP、Co QP、およびCg QPに基づいてルーマ量子化ステップサイズ、Co量子化ステップサイズ、およびCg量子化ステップサイズを決定することによって符号化され、前記Co量子化ステップサイズが前記Cg量子化ステップサイズよりも大きく、前記Cg量子化ステップサイズが前記ルーマ量子化ステップサイズよりも大きい、請求項12に記載の方法。
【請求項１６】
前記ルーマQPが、ビデオデータの、前にコーディングされたブロックのルーマQP値を調整値だけ調整することによって決定され、前記調整値が、前記前にコーディングされたブロックをコーディングするために使用されたビット数、およびビデオデータの前記現在ブロックをコーディングするためのターゲットビット数に基づく、請求項12に記載の方法。
【請求項１７】
前記調整値がさらに、より大きいバッファフルネス値に対して前記ルーマQPがより大きくなるような、バッファのバッファフルネス状態に少なくとも部分的に基づく、請求項16に記載の方法。
【請求項１８】
前記調整値が、前記前にコーディングされたブロックをコーディングするために使用された前記ビット数と前記ターゲットビット数との間の差分に比例する、請求項16に記載の方法。
【請求項１９】
ビデオデータの前記現在ブロックが複雑領域から平坦領域への遷移を備えるかどうかという決定に応答して、前記ルーマQPを所定の値に設定するステップをさらに備える請求項12に記載の方法。
【請求項２０】
複数のルーマQP値から複数の対応するCo QP値およびCg QP値への所定のマッピングを備えるデータ構造にアクセスするステップをさらに備える請求項12に記載の方法。
【請求項２１】
前記データ構造が、ルーマQP値をCo QP値にマッピングする第1の列、およびルーマQP値をCg QP値にマッピングする第2の列を備える、少なくとも1つのルックアップテーブル(LUT)を備える、請求項20に記載の方法。
【請求項２２】
エンコーダが、ディスプレイデバイス上に表示されるべき前記ビデオデータビットストリームをデコーダに送信するようにさらに構成される、請求項12に記載の方法。
【請求項２３】
ディスプレイストリーム圧縮を使用してビデオデータをコーディングするための装置であって、
ルーマチャネル、クロミナンスオレンジ(Co)チャネル、およびクロミナンスグリーン(Cg)チャネルを備えるYCoCg色空間を使用してコーディングされるべきビデオデータの現在ブロックを受信するための手段と、
ビデオデータの前記現在ブロックの前記ルーマチャネルを量子化するためのルーマ量子化パラメータ(QP)を決定するための手段と、
前記決定されたルーマQPに基づいて、ビデオデータの前記現在ブロックの前記Cgチャネルを量子化するためのCg QPおよびビデオデータの前記現在ブロックの前記Coチャネルを量子化するためのクロミナンスオレンジCo QPを決定するための手段であって、前記Cg QPおよび前記Co QPが前記ルーマQPよりも大きくかつ互いに異なる、手段と、
表示または送信のためのビデオデータビットストリームを形成するために、前記決定されたルーマQP、Co QP、およびCg QPに基づいてビデオデータの前記現在ブロックを符号化するための手段と
を備える装置。
【請求項２４】
前記Co QPが前記Cg QPよりも大きく、前記Cg QPが前記ルーマQPよりも大きい、請求項23に記載の装置。
【請求項２５】
ビデオデータの前記現在ブロックを符号化するための前記手段が、前記決定されたルーマQP、Co QP、およびCg QPからそれぞれ導出されたルーマ量子化ステップサイズ、Co量子化ステップサイズ、およびCg量子化ステップサイズに基づいてビデオデータの前記現在ブロックを符号化し、前記Co量子化ステップサイズが前記Cg量子化ステップサイズよりも大きく、前記Cg量子化ステップサイズが前記ルーマ量子化ステップサイズよりも大きい、請求項23に記載の装置。
【請求項２６】
前記ルーマQPを決定するための手段が、ビデオデータの、前にコーディングされたブロックのルーマQP値を調整値だけ調整することによって前記ルーマQPを決定するように構成され、前記調整値が、前記前にコーディングされたブロックをコーディングするために使用されたビット数、およびビデオデータの前記現在ブロックをコーディングするためのターゲットビット数に基づく、請求項23に記載の装置。
【請求項２７】
前記調整値がさらに、より大きいバッファフルネス値に対して前記ルーマQPがより大きくなるような、バッファのバッファフルネス状態に少なくとも部分的に基づく、請求項26に記載の装置。
【請求項２８】
前記ルーマQPを決定するための前記手段が、ビデオデータの前記現在ブロックが複雑領域から平坦領域への遷移を備えるかどうかという決定に応答して、前記ルーマQPを所定の値に設定する、請求項23に記載の装置。
【請求項２９】
複数のルーマQP値から複数の対応するCo QP値およびCg QP値への所定のマッピングを備えるデータ構造にアクセスするための手段をさらに備える請求項23に記載の装置。
【請求項３０】
ディスプレイデバイス上に表示されるべき前記ビデオデータビットストリームをデコーダに送信するための手段をさらに備える請求項23に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ビデオコーディングおよび圧縮の分野に関し、詳細には、ディスプレイリンクを介した送信用のビデオの圧縮に関する。
【背景技術】
【０００２】
デジタルビデオ能力は、デジタルテレビジョン、携帯情報端末(PDA)、ラップトップコンピュータ、デスクトップモニタ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲のディスプレイに組み込まれ得る。ディスプレイを適切なソースデバイスに接続するために、ディスプレイリンクが使用される。ディスプレイリンクの帯域幅要件は、ディスプレイの解像度に比例し、したがって、高解像度ディスプレイは大帯域幅ディスプレイリンクを必要とする。いくつかのディスプレイリンクは、高解像度ディスプレイをサポートするための帯域幅を有しない。より小さい帯域幅のディスプレイリンクが高解像度ディスプレイにデジタルビデオを提供するために使用され得るように、ビデオ圧縮が使用されて帯域幅要件を低減することができる。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示のシステム、方法、およびデバイスは各々、いくつかの発明的態様を有し、それらの態様はどれも、本明細書で開示する望ましい属性を単独で担うものでない。
【０００４】
一実施形態では、ビデオ情報のディスプレイストリーム圧縮における視覚的品質を改善するための装置および方法が提供される。方法は、ビデオ情報のクロミナンスオレンジ(Co)チャネルを量子化するためのCoステップサイズを規定することを備える。方法は、ビデオ情報のクロミナンスグリーン(Cg)チャネルを量子化するためのCgステップサイズを規定することをさらに備える。CoステップサイズはCgステップサイズよりも大きい。方法は、CoステップサイズおよびCgステップサイズに基づいて、Co QP用の第1のルックアップテーブルおよびCg QP用の第2のルックアップテーブルの中で、CoチャネルまたはCgチャネルのいずれかにルーマ量子化パラメータ(QP:quantization parameter)をマッピングすることをさらに備える。
【０００５】
いくつかの実施形態では、ディスプレイストリーム圧縮を使用してビデオデータをコーディングするための装置が提供される。装置は、ルーマチャネル、クロミナンスオレンジ(Co)チャネル、およびクロミナンスグリーン(Cg)チャネルを備えるYCoCg色空間を使用して、ビデオデータの現在ブロックをコーディングするように構成されたエンコーダを備える。装置は、ハードウェアプロセッサを備えるレートコントローラをさらに備える。レートコントローラは、ビデオデータの現在ブロックのルーマチャネルを量子化するためのルーマ量子化パラメータ(QP)を決定するように構成される。レートコントローラは、決定されたルーマQPに基づいて、ビデオデータの現在ブロックのCgチャネルを量子化するためのCg QPおよびビデオデータの現在ブロックのCoチャネルを量子化するためのクロミナンスオレンジCo QPを決定するようにさらに構成される。レートコントローラによって決定されるCg QPおよびCo QPは、ルーマQPよりも大きくかつ互いに異なる。エンコーダは、表示または送信のためのビデオデータビットストリームを形成するために、決定されたルーマQP、Co QP、およびCg QPに基づいてビデオデータの現在ブロックを符号化するように構成される。
【０００６】
いくつかの実施形態では、ディスプレイストリーム圧縮を使用してビデオデータをコーディングするための方法が提供される。方法は、ルーマチャネル、クロミナンスオレンジ(Co)チャネル、およびクロミナンスグリーン(Cg)チャネルを備えるYCoCg色空間を使用してコーディングされるべきビデオデータの現在ブロックを受信することを備える。方法は、ビデオデータの現在ブロックのルーマチャネルを量子化するためのルーマ量子化パラメータ(QP)を決定することをさらに備える。方法は、決定されたルーマQPに基づいて、ビデオデータの現在ブロックのCgチャネルを量子化するためのCg QPおよびビデオデータの現在ブロックのCoチャネルを量子化するためのクロミナンスオレンジCo QPを決定することをさらに備え、Cg QPおよびCo QPは、ルーマQPよりも大きくかつ互いに異なる。方法は、表示または送信のためのビデオデータビットストリームを形成するために、決定されたルーマQP、Co QP、およびCg QPに基づいてビデオデータの現在ブロックを符号化することをさらに備える。
【０００７】
いくつかの実施形態では、ディスプレイストリーム圧縮を使用してビデオデータをコーディングするための装置が提供される。装置は、ルーマチャネル、クロミナンスオレンジ(Co)チャネル、およびクロミナンスグリーン(Cg)チャネルを備えるYCoCg色空間を使用してコーディングされるべきビデオデータの現在ブロックを受信するための手段を備える。装置は、ビデオデータの現在ブロックのルーマチャネルを量子化するためのルーマ量子化パラメータ(QP)を決定するための手段をさらに備える。装置は、決定されたルーマQPに基づいて、ビデオデータの現在ブロックのCgチャネルを量子化するためのCg QPおよびビデオデータの現在ブロックのCoチャネルを量子化するためのクロミナンスオレンジCo QPを決定するための手段をさらに備え、Cg QPおよびCo QPは、ルーマQPよりも大きくかつ互いに異なる。装置は、表示または送信のためのビデオデータビットストリームを形成するために、決定されたルーマQP、Co QP、およびCg QPに基づいてビデオデータの現在ブロックを符号化するための手段をさらに備える。
【図面の簡単な説明】
【０００８】
【図１Ａ】本開示で説明する態様による技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図である。
【図１Ｂ】本開示で説明する態様による技法を実行し得る別の例示的なビデオ符号化および復号システムを示すブロック図である。
【図２Ａ】本開示で説明する態様による技法を実施し得るビデオエンコーダの一例を示すブロック図である。
【図２Ｂ】本開示で説明する態様による技法を実施し得るビデオデコーダの一例を示すブロック図である。
【図３】ビデオデータの現在ブロックに対するQP値を決定するように構成された例示的なレートコントローラを示すブロック図である。
【図４】ビデオデータのブロックに対する別個のルーマQP値およびクロマQP値を決定するように構成された例示的なレートコントローラを示すブロック図である。
【図５】いくつかの実施形態による、クロマQPとルーマQPとの間の例示的な関係を示すグラフである。
【図６】ビデオデータのブロックに対する別個のルーマQP値およびクロマQP値を決定するように構成された例示的なレートコントローラを示すブロック図である。
【図７】いくつかの実施形態による、Co QP値およびCg QP値へのルーマQP値の例示的なマッピングを示す表である。
【図８】いくつかの実施形態による、ルーマQP値とマッピングされたCo QP値およびCg QP値との間の例示的な関係を示すグラフである。
【図９】いくつかの実施形態による、別個のルーマQP値およびクロマQP値、ならびに別個のルーマQP値、Co QP値、およびCg QP値を使用してコーディングされた再構成画像の中に存在するS-CIELABデルタE誤差の量を示す棒グラフである。
【図１０】別個のルーマQP値およびクロマQP値を使用して、また別個のルーマQP値、Co QP値、およびCg QP値を使用してコーディングされた画像に対するS-CIELABデルタE誤差マップを示す図である。
【図１１】ビデオデータのブロックをコーディングするためにQP値を決定するための例示的なプロセスを示すフローチャートである。
【発明を実施するための形態】
【０００９】
概して、本開示は、ディスプレイストリームを圧縮するために使用されるビデオ圧縮技法などのビデオ圧縮技法を改善する方法に関する。より詳細には、本開示は、量子化パラメータ(QP)調整値を計算するための適切な技法の選択により、量子化パラメータ(QP)の更新を改善するためのシステムおよび方法に関する。
【００１０】
いくつかの実施形態がディスプレイストリーム圧縮(DSC)規格のコンテキストにおいて本明細書で説明されるが、本明細書で開示するシステムおよび方法が、任意の適切なビデオコーディング規格に適用可能であり得る。たとえば、本明細書で開示する実施形態は、以下の規格、すなわち、国際電気通信連合(ITU)電気通信規格化部門(ITU-T)H.261、国際標準化機構/国際電気標準会議(ISO/IEC)ムービングピクチャエキスパートグループ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:constant bit rate)バッファモデルを組み込む規格に適用可能であり得る。また、本開示で説明する技法は、将来において開発される規格の一部になり得る。言い換えれば、本開示で説明する技法は、以前に開発されたビデオコーディング規格、現在開発中のビデオコーディング規格、および次のビデオコーディング規格に適用可能であり得る。
【００１１】
ビデオエレクトロニクス規格協会(VESA:Video Electronics Standards Association)によって最近確定された3:1ディスプレイストリーム圧縮(DSC:display stream compression)v1.0ソリューションの世代は、特に4Kなどの高解像度ディスプレイにとって、将来のモバイル市場要件を推進するのに不十分である。したがって、将来の需要に対処するために、VESAは、4:1以上の圧縮比をターゲットにする次世代DSCソリューションを開発するためにCfT(技術要請(call for technology))をリリースした。
【００１２】
概して、DSCコーダは、低コストで固定レートの視覚的ロスレス圧縮をもたらす。コーダは、(ブロックサイズがP×Qの)ブロックベースの手法に基づいて設計され、多数のコーディングモードから構成される。たとえば、ブロックごとに利用可能なコーディングオプションは、変換(たとえば、DCT、アダマール)モード、ブロック予測モード、DPCMモード、パターンモード、中間点予測(MPP:mid-point prediction)モード、および中間点条件付き実行制御フォールバック(MPPF:mid-point predication fall back)モードである。異なるタイプのコンテンツまたは画像を効果的に圧縮するために、コーダの中でいくつかのコーディングモードが使用される。たとえば、テキスト画像はパターンモードによって効果的に圧縮され得、自然画像は変換モードによって効果的にキャプチャされ得る。
【００１３】
各ブロックは、モードのレートとひずみの両方を検討することによってブロックごとに最良モードを選択することを目的とするレート制御機構に基づいて、複数のコーディングモードの中から1つのコーディングモードを選ぶことができる。レート制御機構はバッファモデルによってサポートされ、バッファが絶対にアンダーフロー(バッファの中の0個よりも少ないビット)またはオーバーフロー(設定された最大サイズを超えてバッファサイズが増大している)の状態にないことがコーデックの設計要件である。
【００１４】
ビデオコーディング方法は、前に計算された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は、ソースデバイス12および宛先デバイス14がデバイス11上にあるかまたはその一部である、例示的なビデオコーディングシステム10'を示す。デバイス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の他の部分によるバッファ110の使用の前に保持し得る。別の例では、色空間変換されたデータはより多くのビットを必要とし得るので、ビデオデータがRGB色空間において記憶されてよく、色空間変換は必要に応じて実行されてよい。
【００４５】
レートバッファ150は、レートコントローラ120に関して以下でより詳細に説明する、ビデオエンコーダ20の中のレート制御機構の一部として機能し得る。各ブロックを符号化するのに費やされるビットは、ブロックの性質に基づいてかなり大幅に変わることがある。レートバッファ150は、圧縮ビデオにおけるレート変動を平滑化することができる。いくつかの実施形態では、ビットが固定ビットレートでバッファから取り出されるCBRバッファモデルが採用される。CBRバッファモデルでは、ビデオエンコーダ20がビットストリームにあまりにも多くのビットを追加した場合、レートバッファ150はオーバーフローし得る。一方、ビデオエンコーダ20は、レートバッファ150のアンダーフローを防止するために、十分なビットを追加しなければならない。
【００４６】
ビデオデコーダ側において、ビットは、ビデオデコーダ30のレートバッファ155(以下でさらに詳細に説明する図2Bを参照)に固定ビットレートで追加されてよく、ビデオデコーダ30は、ブロックごとに可変数のビットを除去してよい。適正な復号を確実にするために、ビデオデコーダ30のレートバッファ155は、圧縮ビットストリームの復号中に「アンダーフロー」も「オーバーフロー」もすべきでない。
【００４７】
いくつかの実施形態では、バッファフルネス(BF:buffer fullness)は、現在バッファの中にあるビットの数を表す値BufferCurrentSizeと、レートバッファ150のサイズを表すBufferMaxSize、すなわち、任意の時点においてレートバッファ150に記憶され得るビットの最大数とに基づいて、規定され得る。BFは、次のように計算され得る。
BF=((BufferCurrentSize*100)/BufferMaxSize)
【００４８】
BFを計算するための上記の手法は例にすぎず、BFが、特定の実装形態またはコンテキストに応じて任意の数の異なる方法で計算され得ることに留意されたい。
【００４９】
平坦度検出器115は、ビデオデータの中の複雑(すなわち、非平坦)エリアから、ビデオデータの中の平坦(すなわち、単純または均一)エリアへの変化を検出することができ、および/またはその逆も同様である。「複雑」および「平坦」という用語は、概して、ビデオエンコーダ20がビデオデータのそれぞれの領域を符号化することの難しさを指すために本明細書で使用される。したがって、本明細書で使用する複雑という用語は、概して、ビデオエンコーダ20が符号化するのが複雑であるものとしてビデオデータの領域を記述し、たとえば、テクスチャードビデオデータ、高い空間周波数、および/または符号化するのが複雑である他の特徴を含み得る。本明細書で使用する平坦という用語は、概して、ビデオエンコーダ20が符号化するのが簡単であるものとしてビデオデータの領域を記述し、たとえば、ビデオデータにおける平滑勾配、低い空間周波数、および/または符号化するのが簡単である他の特徴を含み得る。複雑領域から平坦領域への遷移は、符号化ビデオデータにおける量子化アーティファクトを低減するためにビデオエンコーダ20によって使用され得る。詳細には、複雑領域から平坦領域への遷移が識別されると、レートコントローラ120ならびに予測器、量子化器、および再構成器構成要素125が、そのような量子化アーティファクトを低減することができる。同様に、平坦領域から複雑領域への遷移は、現在のブロックをコーディングするのに必要な予想レートを下げるために、QPを増大させるためにビデオエンコーダ20によって使用され得る。
【００５０】
レートコントローラ120は、コーディングパラメータのセット、たとえば、QPを決定する。QPは、レートバッファ150がオーバーフローもアンダーフローもしないことを確実にするターゲットビットレートに対してピクチャ品質を最大にするために、レートバッファ150のバッファフルネスおよびビデオデータの画像活動度(たとえば、複雑領域から平坦領域への遷移、またはその逆の遷移)に基づいて、レートコントローラ120によって調節され得る。レートコントローラ120はまた、最適なレートひずみ性能を達成するために、ビデオデータのブロックごとに特定のコーディングオプション(たとえば、特定のモード)を選択する。レートコントローラ120は、ビットレート制約を満たすように、すなわち、実際のコーディングレート全体がターゲットビットレート内に収まるように、再構成画像のひずみを最小限に抑える。したがって、レートコントローラ120の1つの目的は、レートひずみ性能を最大にしながら、レートにおける瞬間的および平均的な制約を満たすために、QP、コーディングモードなどのコーディングパラメータのセットを決定することである。
【００５１】
予測器、量子化器、および再構成器構成要素125は、ビデオエンコーダ20の少なくとも3つの符号化動作を実行し得る。予測器、量子化器、および再構成器構成要素125は、いくつかの異なるモードで予測を実行し得る。1つの例示的な予測モードが、メディアン適応予測の修正バージョンである。メディアン適応予測は、ロスレスJPEG規格(JPEG-LS)によって実施され得る。予測器、量子化器、および再構成器構成要素125によって実行され得るメディアン適応予測の修正バージョンは、3つの連続するサンプル値の並列予測を可能にし得る。別の例示的な予測モードは、ブロック予測である。ブロック予測では、サンプルは、上のラインの中の、または同じラインの中で左の、前に再構成されたピクセルから予測される。いくつかの実施形態では、ビデオエンコーダ20およびビデオデコーダ30は両方とも、ブロック予測の使用を決定するために再構成ピクセルにおいて同一の探索を実行し得、したがって、ビットがブロック予測モードで送られる必要はない。他の実施形態では、ビデオデコーダ30が別個の探索を実行する必要がないように、ビデオエンコーダ20が探索を実行し得るとともにブロック予測ベクトルをビットストリームの中でシグナリングし得る。成分範囲の中間点を使用してサンプルが予測される、中間点予測モードも実施されてよい。中間点予測モードは、ワーストケースサンプルにおいてさえ、圧縮ビデオにとって必要なビット数のバウンディングを可能にし得る。
【００５２】
予測器、量子化器、および再構成構成要素125はまた、量子化を実行する。たとえば、量子化は、シフタを使用して実施され得る2のべき乗量子化器により実行され得る。2のべき乗量子化器の代わりに他の量子化技法が実施され得ることに留意されたい。予測器、量子化器、および再構成器構成要素125によって実行される量子化は、レートコントローラ120によって決定されたQPに基づき得る。最後に、予測器、量子化器、および再構成器構成要素125はまた、逆量子化残差を予測値に加算すること、および結果がサンプル値の有効範囲の外にならないことを確実にすることを含む、再構成を実行する。
【００５３】
予測器、量子化器、および再構成器構成要素125によって実行される予測、量子化、および再構成のための上記の例示的な手法が例示にすぎないこと、ならびに他の手法が実施され得ることに留意されたい。予測器、量子化器、および再構成器構成要素125が、予測、量子化、および/または再構成を実行するための下位構成要素を含み得ることにも留意されたい。予測、量子化、および/または再構成は、予測器、量子化器、および再構成器構成要素125の代わりに、いくつかの別個のエンコーダ構成要素によって実行され得ることにさらに留意されたい。
【００５４】
予測器、量子化器、および再構成器構成要素125ならびにインデックス付き色履歴135が、バッファリングされたビデオデータを使用できるように、ラインバッファ130は、予測器、量子化器、および再構成器構成要素125からの出力を保持する。インデックス付き色履歴135は、最近使用されたピクセル値を記憶する。これらの最近使用されたピクセル値は、専用シンタックスを介して、ビデオエンコーダ20によって直接参照され得る。
【００５５】
エントロピーエンコーダ140は、予測器、量子化器、および再構成器構成要素125から受信された予測残差および任意の他のデータ(たとえば、予測器、量子化器、および再構成器構成要素125によって識別されたインデックス)を、インデックス付き色履歴135、および平坦度検出器115によって識別された平坦度遷移に基づいて符号化する。いくつかの例では、エントロピーエンコーダ140は、サブストリームエンコーダごとにクロックあたり3サンプルを符号化し得る。サブストリームマルチプレクサ145は、ヘッダレスパケット多重化方式に基づいてビットストリームを多重化し得る。このことにより、ビデオデコーダ30は、3つのエントロピーデコーダを並行して動作させることができ、クロックあたり3ピクセルの復号を容易にする。サブストリームマルチプレクサ145は、ビデオデコーダ30によってパケットが効率的に復号され得るようにパケット順序を最適化し得る。クロックあたり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の対応する構成要素と同様に動作し得る。
【００５９】
ビデオコーデック
いくつかの実施形態では、エンコーダ20は、様々なタイプのコンテンツを視覚的ロスレス性能を伴って符号化することを目的とした多くの要素(モード)を有するコーデックを使用してビデオデータをコーディングし得る。いくつかの実施形態では、エンコーダ20は、アドバンストディスプレイストリーム圧縮(ADSC:Advanced Display Stream Compression)アルゴリズムなどのDSCアルゴリズムを使用してビデオデータをコーディングし得る。いくつかの実施形態では、エンコーダ20によって使用されるDSCアルゴリズムは、デコーダ30によって再構成されるときのコーディングされたビデオデータのS-CIELABデルタEカラーメトリック(CIELAB色差メトリックの空間拡張)における誤差の量を低減するように構成され得る。他の実施形態では、エンコーダ20によって使用されるDSCアルゴリズムは、再構成ビデオデータのピーク信号対雑音比(PSNR)を最大にすることに焦点を当てるように調整されてよい。
【００６０】
いくつかの実施形態では、エンコーダ20によって使用されるDSCコーデックはブロックベースであってよく、各々が異なるタイプのビデオコンテンツを圧縮することを目的とした多数のコーディングモードを備える。モード選択は、モードのレートとひずみの両方を検討することによってブロックごとに最良モードを選択することを目的とする(ソフトウェアまたはハードウェアにおける)レートコントローラ120などのレート制御機構によって処理され得る。レート制御機構は、仮想参照デコーダ(HRD:hypothetical reference decoder)バッファモデル(たとえば、レートバッファ150)によってサポートされ得る。レートコントローラ120は、アンダーフロー(バッファの中の0個よりも少ないビット)またはオーバーフロー(設定された最大サイズを超えてバッファサイズが増大している)の状態を回避するために、バッファ150をサポートするように構成されたコーデックを選択し得る。
【００６１】
いくつかの実施形態では、入力ビデオデータとエンコーダ20によってコーディングされたビデオデータとの間の誤差が、S-CIELABアルゴリズムを使用して測定され得る。S-CIELABアルゴリズムとは、デジタル画像における色差にとっての誤差メトリック(デルタE)を与えるCIELABカラーメトリックの拡張である。S-CIELABは、人間の視覚系の空間的な感度を取り入れる、CIELABカラーメトリックの空間拡張である。したがって、S-CIELABアルゴリズムは、空間的なフィルタ処理ステップのおかげで、CIELABと比較してデコーダ30による再構成画像において知覚される色差をもっと正確に予測できる場合がある。S-CIELABメトリックは知覚される色差と良好な相関関係があるので、S-CIELABはDSCコーデックの主観的な性能を分析するために使用され得る。詳細には、S-CIELABデルタE値が大きいコーディングされたビデオデータから再構成された画像のエリアは、人間の観察者によって気づかれる可能性が高い。したがって、コーディングされたビデオデータの性能を改善するために、エンコーダ20は、コーディングされたビデオデータの再構成画像におけるS-CIELABデルタEの量が低減されるようなビデオデータをコーディングするように構成され得る。
【００６２】
上記で説明したように、エンコーダ20によってコーディングされたビデオデータからデコーダ30によって復号された再構成画像における色誤差は、符号化プロセス中の量子化損失に起因して生じ得る。エンコーダ20は、コーディングされるべきビデオデータのブロックごとにQP値を決定することによって量子化損失の量を制御し得る。いくつかの実施形態では、いくつかの色成分における量子化損失は、人間の観察者によってもっと容易に気づかれることがある。たとえば、いくつかの実施形態では、YCoCg色空間を使用してコーディングされたビデオデータの場合、ルーマY成分における量子化損失は、クロマCoおよびCg成分における量子化損失と比較して、人間の観察者によってもっと容易に観測され得る。
【００６３】
QP値の決定
図3は、ビデオデータの現在ブロックに対するQP値を決定するように構成された例示的なレートコントローラ120を示すブロック図を示す。いくつかの実施形態では、レートコントローラ120は、ビデオデータの、前にコーディングされたブロックに対して使用されたQP値に対応するprevQP304、およびQP調整値QpAdj306に基づいて、ビデオデータの現在ブロックをコーディングするためのQP値に対応するcurrQP302を計算し得る。たとえば、いくつかの実施形態では、レートコントローラ120は、ターゲットビットレート310と前のブロックをコーディングするために使用されたビット数312(以下、前のブロックビット312と呼ぶ)との間の(たとえば、比較器308を使用する)比較に基づいて、prevQP304からQP調整値QpAdj306をインクリメントまたはデクリメントしてcurrQP302を決定してよい。本明細書で使用するとき、ターゲットビットレート310は、ビデオデータの現在ブロックをコーディングするためのターゲットビット数を示し得る。いくつかの実施形態では、比較器308が、前のブロックビット312がターゲットビットレート310よりも大きいと決定する場合、レートコントローラ120は、prevQP304をQpAdj306だけデクリメントしてよい。一方、比較器308が、前のブロックビット312がターゲットビットレート310よりも小さいと決定する場合、レートコントローラ120は、prevQP304をQpAdj306だけインクリメントしてよい。
【００６４】
いくつかの実施形態では、QpAdj306は所定の値に対応し得る。いくつかの実施形態では、QpAdj306の値は、ターゲットビットレート310と前のブロックビット312との間の差分に基づいて決定されてよい。たとえば、いくつかの実施形態では、比較器308が、ターゲットビットレート310と前のブロックビット312との間の差分が第1のしきい値を上回ると決定する場合、レートコントローラ120は、比較器308がターゲットビットレート310と前のブロックビット312との間の差分が第1のしきい値を上回らないと決定する場合よりも大きい、QpAdj306に対する値を決定してよい。
【００６５】
いくつかの実施形態では、レートコントローラ120は、バッファ150のバッファフルネスの測定に基づいてQpAdj306の値を決定してよい。バッファ150のバッファフルネスは、バッファ150の中に現在記憶されているデータの量(たとえば、ビット数)とバッファ150の現在の全容量との比として表現され得る。たとえば、いくつかの実施形態では、バッファ150のバッファフルネスが高い(たとえば、バッファ150がいっぱいに近い)場合、レートコントローラ120は、currQP302がもっと大きくなるような(エンコーダ20がより少ないビット数を使用してビデオデータの現在ブロックを符号化するような)QpAdj306の値を設定してよい。一方、バッファ150のバッファフルネスが低い(たとえば、バッファ150がほぼ空である)場合、レートコントローラ120は、currQP302がもっと小さい値になるような(エンコーダ20がより多くのビットを使用して現在ブロックを符号化するような)QpAdj306の値を設定してよい。
【００６６】
いくつかの実施形態では、レートコントローラ120は、ビデオデータの現在ブロックが平坦領域と複雑領域との間の遷移を含むかどうかという平坦度検出器115による決定に基づいて、QpAdj306の値を決定してよい。たとえば、いくつかの実施形態では、平坦度検出器115が、ビデオデータの現在ブロックが平坦領域、または複雑領域から平坦領域への遷移を含むと決定する場合、レートコントローラ120は、currQP302を所定の値に設定してよい。
【００６７】
決定されたcurrQP302は、ビデオデータの現在ブロックをコーディングするためにエンコーダ20の予測器、量子化器、および再構成器構成要素125によって使用され得る。レートコントローラ120はまた、ビデオデータの後続のブロックに対するcurrQP302を決定するためのprevQP304として、決定されたcurrQP302を使用し得る。
【００６８】
別個のルーマQP値およびクロマQP値
いくつかの実施形態では、エンコーダ20によって使用されるDSCコーデックは、いくつかのモードに対してYCoCg色空間を利用し得る。YCoCg色空間のY成分はルーマ成分またはルミナンス成分と呼ばれることがあり、Co成分およびCg成分はクロマ成分またはクロミナンス成分と呼ばれることがある。Co成分はクロミナンスオレンジと呼ばれることがあり、Cg成分はクロミナンスグリーンと呼ばれることがある。
【００６９】
いくつかの実施形態では、エンコーダ20は、受信されたビデオデータのルーマ成分をルーマチャネルの一部として、またクロマ成分をクロマチャネルの一部として符号化し得る。エンコーダ20は、ビデオデータの現在ブロックをコーディングするとき、ビデオデータのルーマチャネル成分およびクロマチャネル成分を異なって(たとえば、ルーマチャネルおよびクロマチャネルが異なるQP値に関連付けられるように)量子化し得る。たとえば、エンコーダ20は、異なる量子化ステップサイズ(たとえば、隣接するコード化値の間の増分)を使用して、ビデオデータのルーマチャネル成分およびクロマチャネル成分に値を割り当ててよい。
【００７０】
いくつかの実施形態では、ルミナンスが概して人間の視覚系にとってクロミナンスよりも重要であるので、エンコーダ20は、異なるQP値を使用してルーマ成分およびクロマ成分を異なってコーディングしてよい。たとえば、人間の目は、クロマ成分よりもルーマ成分において細部に対してより敏感であり得、したがって、クロマ成分よりもルーマ成分において誤差をより容易に検出できる場合がある。
【００７１】
したがって、エンコーダ20は、ルーマ成分(Y)よりもアグレッシブに(たとえば、より大きいQP値を使用して)クロマ成分(Co/Cg)を量子化してよい。ルーマ成分と比較してクロマ成分をコーディングするためにもっと大きいQP値を使用することによって、エンコーダ20は、より大きい量子化ステップサイズを使用してクロマ成分を、またより小さい量子化ステップサイズを使用してルーマ成分をコーディングしてよい。ビデオデータのルーマ成分をコーディングするときに、より小さい量子化ステップサイズを使用することによって、ルーマ成分をコーディングすることからの損失の量が低減され得、コーディングされたビデオデータにおける検出可能誤差を潜在的に低減する。一方、より大きい量子化ステップサイズを使用してクロマ成分をコーディングすることによって、エンコーダ20は、より少ないビットを使用してビデオデータのクロマ成分をコーディングできる場合があり、ルーマ成分のコーディングにおいてもっと多くのビットを使用することが可能になる。
【００７２】
したがって、ビデオデータの所与のブロックに対して、エンコーダ20は、ルーマ成分と比較してもっと大きいQP値を使用してクロマ成分をコーディングしてよい。本明細書で使用するとき、ビデオデータのブロックのルーマ成分に関連するQP値は、一般に、ルーマQPまたはルーマチャネルQPと呼ばれ、ビデオデータのブロックのクロマ成分に関連するQP値は、一般に、クロマQPまたはクロマチャネルQPと呼ばれる。
【００７３】
図4は、ビデオデータのブロックに対する別個のルーマQP値およびクロマQP値を決定するように構成された例示的なレートコントローラ420を示すブロック図を示す。レートコントローラ420は、図3のレートコントローラ120と類似であってよい。図3のレートコントローラ120とは異なり、レートコントローラ420は、ビデオデータの現在ブロックに対する単一のcurrQP値302を計算するのではなく、ルーマチャネルに固有の、現在ブロックに対するルーマQP402を代わりに計算し得る。いくつかの実施形態では、レートコントローラ420は、currQP値302を計算するためにレートコントローラ120によって使用される同じ技法を使用してルーマQP402を計算してよい。
【００７４】
加えて、レートコントローラ420は、計算されたルーマQP402からビデオデータの現在ブロックに対するクロマQP406を計算または推測するために使用され得るルックアップテーブル(LUT)もしくは他のデータ構造404(以下、LUT404と呼ぶ)を記憶し得るか、またはそれへのアクセスを有し得る。LUT404は、ルーマQP402とクロマQP406との間の所定の関係を使用して構築され得る。いくつかの実施形態では、LUT404は、所与のルーマQP402に対してクロマQP406がルーマQP402以上となるように構成される。いくつかの実施形態では、クロマQP406に対して導出される値は、ビデオデータのブロックをコーディングするときにCoクロマ成分とCgクロマ成分の両方を量子化するために、エンコーダ20によって使用され得る。図4はレートコントローラ120内に記憶されるものとしてLUT404を示すが、いくつかの実施形態では、LUT404がレートコントローラ120から外部のメモリの中に記憶されてよく、ただしレートコントローラ120によってアクセス可能であることが理解される。
【００７５】
図5は、いくつかの実施形態による、クロマQPとルーマQPとの間の例示的な関係を示すグラフを示す。図5のグラフは、16と72との間に及ぶルーマQP値に対応するx軸、および16と72との間に及ぶクロマQP値に対応するy軸を示す。グラフは、クロマQPとルーマQPとの間の1:1関係(たとえば、ルーマQPおよびクロマQPが同じである場合)を示す第1の曲線502(破線として示す)を示す。加えて、図5のグラフは、ルーマQPをクロマQP値にマッピングするためにレートコントローラ320によって使用され得る例示的な方式を示す第2の曲線504(実線として示す)を示す。
【００７６】
図5に示すように、レートコントローラ320は、対応するルーマQP以上になるようにクロマQPを設定し得る。たとえば、ルーマQPが16という最小値にあるとき、マッピングされたクロマQP値は24であり得る。ルーマQPが56にあるとき、マッピングされたクロマQPは72という最大値にあり得る。いくつかの実施形態では、クロマQP値が最大値(たとえば、72)に達しているとき、クロマQPは、さらに増大するルーマQP値に対して最大値にマッピングされてよく、その結果、56を超えるルーマQP値に対してクロマQPは72という最大値にとどまる。いくつかの実施形態では、第2の曲線504に示すルーマQPからクロマQPへのマッピング方式は、図4に示すレートコントローラ420のLUT404のマッピング方式に相当し得る。
【００７７】
別個のCo QP値およびCg QP値
上述のように、S-CIELABデルタEは、人間の目によって検出され得る再構成画像における誤差のレベルに関するメトリックとして使用され得る。いくつかの実施形態では、S-CIELABデルタEメトリックは、閲覧距離および人間の視覚系(HVS:human visual system)のモデルなどのパラメータを(たとえば、メトリックの空間拡張の一部として)考慮に入れてよい。したがって、S-CIELABデルタEは、(たとえば、動きテストまたはフリッカーテスト中に)再構成画像のどの空間領域の中で人間の観察者がひずみに気づき得るのかを予測するために使用され得る。エンコーダ20によって使用されるDSCコーデックを、デルタEを最小限に抑えるように構成することによって、エンコーダ20は、視覚テスト中に観測可能なアーティファクトの量が低減され得るビデオデータをコーディングできる場合がある。
【００７８】
図6は、ビデオデータのブロックに対する別個のルーマQP値およびクロマQP値を決定するように構成された例示的なレートコントローラ620を示すブロック図を示す。レートコントローラ620は、図3のレートコントローラ120および図4のレートコントローラ420と類似であってよい。レートコントローラ420と同様に、レートコントローラ620は、ビデオデータのブロックの単一のQP値を計算するのではなく、ビデオデータのブロックに対するルーマQP402を代わりに計算してよい。
【００７９】
加えて、レートコントローラ620は、ルーマQP値402を別個のCg QP値606およびCo QP値608にマッピングするLUTまたは他のデータ構造604を備え得る。いくつかの実施形態では、Cg QP値606およびCo QP値608は、対応するルーマQP値402以上となる。加えて、所与のルーマQP値402に対して、対応するCo QP値608は、対応するCg QP値606以上となる。
【００８０】
上記で説明したように、いくつかの色成分における量子化損失は、人間の観察者によってより容易に気づかれることがある。たとえば、人間の観察者は、クロマCo色成分およびクロマCg色成分と比較してルーマY色成分における量子化損失をもっと容易に検出できる場合がある。したがって、いくつかの実施形態では、レートコントローラ420は、ルーマチャネルおよびクロマチャネルに対して別個のQP値を決定してよく、クロマカラーチャネルは、ルーマカラーチャネルよりもアグレッシブに量子化されてよい。
【００８１】
加えて、いくつかの実施形態では、人間の観察者は、クロマCo色成分と比較してクロマCg成分における量子化損失をもっと容易に検出できる場合がある。したがって、レートコントローラ620は、ルーマY色成分、クロマCo色成分、およびクロマCg色成分に対して別個のQP値を決定してよい。レートコントローラ620は、所与のルーマQP値に対して、対応するCoクロマQP値が、対応するCgクロマQP値以上になり得るように、Cg色成分よりもアグレッシブにCo色成分を量子化してよい。このことにより、エンコーダ20は、ビデオデータのクロマCo成分をコーディングするとき、より少ないビットおよびより大きい量子化ステップサイズを、またビデオデータのクロマCg成分をコーディングするとき、より多くのビットおよびより小さい量子化ステップサイズを使用することが可能になり得、ビデオデータのCg成分をコーディングするときの損失に起因する誤差の量を潜在的に低減する。ビデオデータのルーマ成分およびCg成分をコーディングするときの損失に起因する誤差の量を低減することによって、コーディングされたビデオデータにおける検出可能誤差の総量が低減され得る。
【００８２】
図6はルーマQP値402をCo QP値606およびCg QP値608にマッピングするための単一のLUT604を示すが、他の実施形態では、他のタイプのデータ構造が使用されてよいことが理解される。たとえば、いくつかの実施形態では、レートコントローラ620は、2つのLUT(たとえば、ルーマQP値402をCo QP値608にマッピングする第1のLUT、およびルーマQP値をCg QP値606にマッピングする第2のLUT)にアクセスしてよい。いくつかの実施形態では、Co成分およびCg成分に対応する、LUT604または2つの別個のLUTの列は、LUTCoおよびLUTCgと呼ばれることがある。
【００８３】
いくつかの実施形態では、所与のルーマQP値402(QPY)、Coに対するQP606、およびCgに対するQP608は、次のように導出され得る。
QPCo=LUTCo[QPY-MinQP]
QPCg=LUTCg[QPY-MinQP]
ただし、MinQPは、ビデオデータをコーディングするために使用されるコーデックによって使用される最小QP(たとえば、1という量子化ステップサイズに対応するQP)を表す。たとえば、いくつかのDSCコーデック(たとえば、ADSCコーデック)では、MinQP=16である。
【００８４】
いくつかの実施形態では、エンコーダ20の予測器、量子化器、および再構成器構成要素125は、異なるQP値を異なる量子化ステップサイズにマッピングし得る。たとえば、特定のADSCコーデックでは、16、24、32、40、48、56、および64というQP値は、それぞれ、1、2、4、8、16、32、および64という量子化ステップサイズに対応し得る。いくつかの実施形態では、エンコーダ20は、QPごとに量子化ステップサイズを記憶し得る。他の実施形態では、エンコーダ20は、そこから量子化ステップサイズがQPから導出され得るスケーリング行列または他のデータ構造を指定し得る。いくつかの実施形態では、量子化ステップサイズは2のべき乗であってよく、他の実施形態では、量子化ステップサイズは2のべき乗でなくてもよい。
【００８５】
いくつかの実施形態では、レートコントローラ620は、コーディングされるべきビデオデータの圧縮ビットレートに基づいて、決定されたQP値402、606、608をさらに調整してよい。たとえば、いくつかの実施形態では、ビデオデータは、8bpc(成分当りのビット)というデフォルト圧縮ビットレートを有し得る。デフォルトの8bpcレベルにおけるビデオデータに対して、上で計算したような決定されたQP値は未調整であってよい。しかしながら、8bpcを超える圧縮ビットレートを有するビデオデータに対して、レートコントローラ620は、決定されたQP値を次のように調整してよい。
QP=QP+((bpc-8)≪3)
【００８６】
図7は、いくつかの実施形態による、Co QP値608およびCg QP値606へのルーマQP値402の例示的なマッピングを示す表を示す。図7に示すCo QP値608およびCg QP値606へのルーマQP値402のマッピングは、図6に示すLUT604の中に記憶されたマッピングに相当し得る。図7は、0という最小値から56という最大値まで、minQP(QPY-MinQP)だけ減算されたルーマQP402の値に対応する第1の列702を表が有することを示す。加えて、表は、マッピングされたCo QP値608に対応する第2の列704、およびマッピングされたCg QP値606に対応する第3の列706を有する。たとえば、ルーマQP402が16という最小値にあるとき、Co QP値608およびCg QP値606は両方とも24という値を有し得る。しかしながら、ルーマQP402が増大するにつれて、Co QP値608はCg QP値606よりも速く増大し得る。
【００８７】
一例として、レートコントローラ620が40というQPをルーマチャネルに割り当てる場合、クロマ成分に対して図7に示すマッピング方式に基づいて以下のQPが使用され得る。
QPCo=LUTCo[40-16]=55
QPCg=LUTCg[40-16]=49
【００８８】
図8は、いくつかの実施形態による、ルーマQP値とマッピングされたCo QP値およびCg QP値との間の例示的な関係を示すグラフを示す。図5と同様に、図8のグラフは、16と72との間に及ぶルーマQP値に対応するx軸、および16と72との間に及ぶクロマQP値に対応するy軸を示す。グラフは、クロマQPとルーマQPとの間の1:1関係を示す第1の曲線502、および図5に示すルーマQP値からクロマQP値へのマッピング方式を示し第1の曲線502よりも高く現れる第2の曲線504を示す。グラフは、様々なルーマQP値に対応するマッピングされたCo QP値を示す第3の曲線802、および様々なルーマQP値に対応するマッピングされたCg QP値を示す第4の曲線804をさらに備える。図8に示すように、Co QP値に対応する第3の曲線802は、概して第2の曲線504よりも高くてよく、Cg QP値に対応する第4の曲線804は、概して第2の曲線504よりも低くてよい。第3の曲線802と第4の曲線804の両方が、概して第1の曲線502よりも高くてよく、所与のルーマQP値に対して、Co QPおよびCg QPに対する対応する値が概してルーマQP値よりも大きいことを示す。
【００８９】
第3の曲線802および第4の曲線804は、それぞれ、図7の列704および列706のマッピングされたCo QP値およびCg QP値に対応する。図8に示すように、所与のルーマQPに対して、Co QPおよびCg QPに対する値はルーマQP以上となる傾向がある。加えて、Co QPはCg QP以上となる傾向がある。第3の曲線802上に示すCo QP値は、図5に示すマッピング方式を使用して決定されるように、対応するクロマQP値504以上であり得る。一方、第4の曲線804によって示すCg QP値は、対応するクロマQP値504以下であり得る。
【００９０】
上記で説明したように、レートコントローラ620は、Cg QP値608と比較してCo QP値608をもっとアグレッシブにスケーリングしてよい。たとえば、Co QP値608は、Cg QP値606と比較してもっと大きいQP値を使用して量子化されてよい(たとえば、予測器、量子化器、および再構成器構成要素125がもっと大きい量子化ステップサイズを使用して値を量子化させる結果となる)。より詳細には、ブロックにおいて色成分CoおよびCgを量子化しながら、レートコントローラ620は、Co成分とCg成分の両方に対して同じ量子化ステップサイズを設定する代わりに、Cgチャネルのステップサイズと比較するとCoチャネルに対してより大きいステップサイズを使用してよい。このことは、人間の目が、通常、Cgカラーチャネルと比較してCoカラーチャネルにおける差分に対してさほど敏感でないという事実に起因し得る。したがって、Coカラーチャネルにおけるアーティファクトは、Cgカラーチャネルと比較して気づかれる可能性が低いことがある。加えて、典型的な最悪の画像コンテンツにとってのいくつかの実施形態では、Cgチャネルと比べてCoチャネルの中により大きいエネルギーがあり得る。したがって、レートコントローラ620は、よりアグレッシブにCoを量子化できるおかげで、予想されるビットレートを著しく増大させることなく、さほどアグレッシブでなく(たとえば、もっと小さいQP値を使用して)Cgを量子化することができる。
【００９１】
結果
ビデオデータをコーディングするときにルーマチャネルならびにCo成分チャネルおよびCg成分チャネルに対して異なるQP値を使用することによって、エンコーダ20は、エンコーダ20からのコーディングされたビデオデータを使用してデコーダ30によって復号された再構成画像の中に存在するS-CIELABデルタE誤差の量を低減できる場合がある。
【００９２】
図9は、いくつかの実施形態による、別個のルーマQP値およびクロマQP値、ならびに別個のルーマQP値、Co QP値、およびCg QP値を使用してコーディングされた再構成画像の中に存在するS-CIELABデルタE誤差の量を示す棒グラフを示す。図9のグラフは、3つの異なるS-CIELABデルタE誤差範囲、すなわち、第1の範囲[2,4)、第2の範囲[4,8)、および第3の範囲[8,∞)をx軸が有することを示す。スケーリング目的のために、誤差範囲[0,2)は図9のグラフから割愛されている。グラフはまた、x軸上に示される様々な誤差範囲内でS-CIELABデルタE誤差が下降するコーディングされたビデオ画像の全ピクセルのパーセンテージを示すy軸を示す。
【００９３】
本明細書で使用するとき、再構成画像とは、概して、(レートコントローラ120、420、または620によって決定されるようなQP値を使用して)元のソース画像からエンコーダ20によって符号化されたビデオデータビットストリームから、デコーダ30によって再構成された画像を指す。図9のグラフの棒902は、(たとえば、レートコントローラ420によって決定されるような)別個のルーマQP値402およびクロマQP値406を使用する、x軸上に示される誤差範囲の各々の中にS-CIELABデルタE値を有する特定のソース画像からの再構成画像のピクセルのパーセンテージを示す。棒904は、x軸上に示される誤差範囲の各々の中にS-CIELABデルタE値を有する同じソース画像からの再構成画像のピクセルのパーセンテージを示し、(たとえば、レートコントローラ620によって決定されるような)別個のルーマQP値402、Cg QP値606、およびCo QP値608が使用される。図9のグラフからわかるように、棒902は、それぞれ、誤差範囲[2,4)、[4,8)、および[8,∞)に対して、10.68%、3.17%、および0.53%という値を有する。一方、棒904は、8.95%、2.33%、および0.33%というそれぞれの値を有する。したがって、レートコントローラ620を使用してCo QP値およびCg QP値を別個に決定することによって、コーディングされたビデオデータにおけるS-CIELABデルタEの総量が低減され得る。
【００９４】
図10は、別個のルーマQP値およびクロマQP値を使用して、また別個のルーマQP値、Co QP値、およびCg QP値を使用してコーディングされた画像に対するS-CIELABデルタE誤差マップを示す。誤差マップ1002は、(たとえば、図4のレートコントローラ420によって決定されるような)別個のルーマQP値およびクロマQP値を使用するコーディングされたビデオデータに対応する。誤差マップ1004は、(たとえば、図6のレートコントローラ620によって決定されるような)別個のルーマQP値、Co QP値、およびCg QP値を使用するコーディングされたビデオデータに対応する。誤差マップ1002および1004は、異なる色の領域を備える。たとえば、青色領域は、デルタE誤差が小さいコーディングされたビデオデータの再構成画像のエリアを表し、赤色エリアは、デルタE誤差が大きい再構成画像のエリアを表す。図10からわかるように、誤差マップ1004は、誤差マップ1002と比較して小さい赤色エリアしか含み得ない。このことは、エンコーダ20が、別個のCo QP値およびCg QP値を使用してビデオデータをコーディングするとき、より小さいS-CIELABデルタE誤差を有する再構成画像をもたらすビデオデータをコーディングできる場合があることを示す。
【００９５】
プロセスフロー
図11は、ビデオデータのブロックをコーディングするためのQP値を決定するための例示的なプロセスを示すフローチャートを示す。ブロック1102において、エンコーダ20は、コーディングされるべきビデオデータのブロックを受信する。いくつかの実施形態では、エンコーダ20は、YCoCg色空間を使用してビデオデータのブロックをコーディングしてよく、Y成分はルーマ成分と呼ばれることがあり、Co成分およびCg成分はクロマ成分と呼ばれることがある。
【００９６】
ブロック1104において、エンコーダ20のレートコントローラ620は、ビデオデータの、前にコーディングされたブロックに対する決定されたQP値に基づいて、ビデオデータのブロックに対するルーマQPを決定する。いくつかの実施形態では、レートコントローラ620は、さらにバッファ150のバッファフルネスの測定、現在ブロックの中に複雑から平坦への遷移が存在するかどうかという決定(平坦度検出器115によって決定されるような)などに基づいて、ルーマQPを決定してよい。
【００９７】
ブロック1106において、レートコントローラ620は、ルーマQP値をクロマQP値にマッピングするLUTまたは他のデータ構造604を識別する。いくつかの実施形態では、LUT604は、ルーマQP値をCo QP値にマッピングするマッピングの第1のセット、およびルーマQP値をCg QP値にマッピングするマッピングの第2のセットを備え得る。いくつかの実施形態では、Co QP値およびCg QP値は、対応するルーマQP値よりも粗くてよい(たとえば、QP値がもっと大きくてよい)。いくつかの実施形態では、所与のルーマQP値に対して、対応するCo QP値は、対応するCg QP値以上となる。
【００９８】
ブロック1108において、レートコントローラ620は、決定されたルーマQP値および識別されたLUT604を使用して、ビデオデータのブロックに対するCo色成分およびCg色成分のQP値を決定する。決定されたルーマQP、Co QP、およびCg QPは、次いで、ビデオデータのブロックをコーディングするためにエンコーダ20によって使用され得る。エンコーダ20は、決定されたルーマQP値、Co QP値、およびCg QP値を使用してコーディングされたビデオデータを、ビデオデータビットストリームの一部として(たとえば、宛先デバイス14上のデコーダ30へリンク16を介して)送信し得る。たとえば、デコーダは、決定されたルーマQP値、Co QP値、およびCg QP値を使用してコーディングされたビデオデータを含むビデオデータビットストリームを受信し得、受信されたビデオデータを表示のために復号し得る。
【００９９】
加えて、いくつかの実施形態では、決定されたルーマQPは、ビデオデータの後続のブロックに対するルーマQP値を決定するために、前のQP値としてレートコントローラ620によって使用され得る。
【０１００】
上記の実施形態は、DSCにおける最悪のコンテンツに対する静的なフリッカーテストにおいて可視のアーティファクトを低減することを含む、いくつかの利点および利益をもたらし得る。加えて、提案される解決策は、既存のDSCコーデックへの最小限の変更しか必要としなくてよく、ハードウェア複雑度の無視できる増大しか引き起こし得ない。
【０１０１】
本明細書で開示する情報および信号は、様々な異なる技術および技法のいずれかを使用して表され得る。たとえば、上記の説明全体にわたって参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
【０１０２】
本明細書で開示する実施形態に関して説明した様々な例示的な論理ブロック、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、およびステップは、概して、それらの機能の観点から上記で説明された。そのような機能をハードウェアとして実装するのか、それともソフトウェアとして実装するのかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は説明した機能を特定の適用例ごとに様々な方法で実施し得るが、そのような実装決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきでない。
【０１０３】
本明細書で説明した技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセット、自動車、アプライアンス、ウェアラブル、および/もしくは他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのいずれかにおいて実装され得る。デバイスまたは構成要素として説明した任意の特徴は、集積論理デバイスの中で一緒に実装されてよく、または個別であるが相互運用可能な論理デバイスとして別々に実装されてもよい。ソフトウェアで実装する場合、技法は、実行されたとき、上記で説明した方法のうちの1つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含み得るコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリ、磁気データ記憶媒体または光データ記憶媒体などの、メモリまたはデータ記憶媒体を備え得る。技法は、追加または代替として、伝搬される信号または波などの、命令またはデータ構造の形態でプログラムコードを搬送または通信し、コンピュータによってアクセスされてよく、読み取られてよく、かつ/または実行されてよいコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【０１０４】
プログラムコードはプロセッサによって実行されてよく、プロセッサは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の同等の集積論理回路もしくは個別論理回路などの、1つまたは複数のプロセッサを含み得る。そのようなプロセッサは、本開示で説明した技法のいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであってよいが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。したがって、本明細書で使用する「プロセッサ」という用語は、本明細書で説明した技法の実施にとって適した上記の構造、上記の構造の任意の組合せ、または任意の他の構造もしくは装置のうちのいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアもしくはハードウェア内で提供され得るか、または複合ビデオエンコーダ/デコーダ(コーデック)に組み込まれ得る。また、技法は、1つまたは複数の回路または論理要素で完全に実装されてもよい。
【０１０５】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実施され得る。様々な構成要素またはユニットは、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために本開示で説明されるが、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニットの中で組み合わせられてよく、あるいは好適なソフトウェアおよび/またはファームウェアとともに、上記で説明したような1つまたは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてよい。
【０１０６】
上記のことは様々な異なる実施形態に関して説明されたが、1つの実施形態からの特徴または要素が、本開示の教示から逸脱することなく他の実施形態と組み合わせられてよい。ただし、それぞれの実施形態の間での特徴の組合せは、必ずしもそれらに限定されるとは限らない。本開示の様々な実施形態が説明された。これらおよび他の実施形態は、以下の特許請求の範囲に入る。
【符号の説明】
【０１０７】
10  ビデオコーディングシステム
10'  ビデオコーディングシステム
11  デバイス
12  ソースデバイス
13  プロセッサ/コントローラデバイス
14  宛先デバイス
16  リンク
18  ビデオソース
20  ビデオエンコーダ
22  出力インターフェース
28  入力インターフェース
30  ビデオデコーダ
32  ディスプレイデバイス
105  色空間変換器
110  バッファ
115  平坦度検出器
120  レートコントローラ
125  予測器、量子化器、および再構成器構成要素
130  ラインバッファ
135  インデックス付き色履歴
140  エントロピーエンコーダ
145  サブストリームマルチプレクサ
150  レートバッファ
155  レートバッファ
160  サブストリームデマルチプレクサ
165  エントロピーデコーダ
170  レートコントローラ
175  予測器、量子化器、および再構成器構成要素
180  インデックス付き色履歴
185  ラインバッファ
190  色空間変換器
308  比較器
310  ターゲットビットレート
312  前のブロックビット
404  ルックアップテーブル
420  レートコントローラ
【図１Ａ】
2019514290.tif 000003
【図１Ｂ】
2019514290.tif 000004
【図２Ａ】
2019514290.tif 000005
【図２Ｂ】
2019514290.tif 000006
【図３】
2019514290.tif 000007
【図４】
2019514290.tif 000008
【図５】
2019514290.tif 000009
【図６】
2019514290.tif 000010
【図７】
2019514290.tif 000011
【図８】
2019514290.tif 000012
【図９】
2019514290.tif 000013
【図１０】
2019514290.tif 000014
【図１１】
2019514290.tif 000015
【手続補正書】
【提出日】平成30年10月16日(2018.10.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータをコーディングするための装置であって、
ルーマチャネル、クロミナンスオレンジ(Co)チャネル、およびクロミナンスグリーン(Cg)チャネルを備えるYCoCg色空間を使用して、ビデオデータの現在ブロックをコーディングするように構成されたエンコーダと、
ハードウェアプロセッサを備えるレートコントローラとを備え、前記レートコントローラが、
ビデオデータの前記現在ブロックの前記ルーマチャネルを量子化するためのルーマ量子化パラメータ(QP)を決定し、
前記決定されたルーマQPに基づいて、ビデオデータの前記現在ブロックの前記Cgチャネルを量子化するためのCg QPおよびビデオデータの前記現在ブロックの前記Coチャネルを量子化するためのクロミナンスオレンジCo QPを決定するように構成され、前記Cg QPおよび前記Co QPが前記ルーマQPよりも大きくかつ互いに異なり、
前記エンコーダが、ビデオデータビットストリームを形成するために、前記決定されたルーマQP、Co QP、およびCg QPに基づいてビデオデータの前記現在ブロックを符号化するように構成され、前記エンコーダが、ルーマ量子化ステップサイズ、Co量子化ステップサイズ、およびCg量子化ステップサイズを決定することによって、ビデオデータの前記現在ブロックを符号化し、前記Co量子化ステップサイズおよび前記Cg量子化ステップサイズが、前記ルーマ量子化ステップサイズよりも大きい、
装置。
【請求項２】
前記Co QPが前記Cg QPよりも大きい、請求項1に記載の装置。
【請求項３】
前記Cg QPが前記ルーマQPよりも大きい、請求項1に記載の装置。
【請求項４】
前記ルーマ量子化ステップサイズ、前記Co量子化ステップサイズ、および前記Cg量子化ステップサイズが、前記決定されたルーマQP、Co QP、およびCg QPに基づいて決定され、前記Co量子化ステップサイズが前記Cg量子化ステップサイズよりも大きい、請求項1に記載の装置。
【請求項５】
前記ルーマQPが、ビデオデータの、前にコーディングされたブロックのルーマQP値を調整値だけ調整することによって決定され、前記調整値が、前記前にコーディングされたブロックをコーディングするために使用されたビット数、およびビデオデータの前記現在ブロックをコーディングするためのターゲットビット数に基づく、請求項1に記載の装置。
【請求項６】
前記調整値がさらに、より大きいバッファフルネス値に対して前記ルーマQPがより大きくなるような、バッファのバッファフルネス状態に少なくとも部分的に基づく、請求項5に記載の装置。
【請求項７】
前記調整値が、前記前にコーディングされたブロックをコーディングするために使用された前記ビット数と前記ターゲットビット数との間の差分に比例する、請求項5に記載の装置。
【請求項８】
ビデオデータの前記現在ブロックが複雑領域から平坦領域への遷移を備えるかどうかという決定に応答して、前記ルーマQPが所定の値に設定される、請求項1に記載の装置。
【請求項９】
前記レートコントローラが、複数のルーマQP値から複数の対応するCo QP値およびCg QP値への所定のマッピングを備えるデータ構造にアクセスするように構成される、請求項1に記載の装置。
【請求項１０】
前記データ構造が、ルーマQP値をCo QP値にマッピングする第1の列、およびルーマQP値をCg QP値にマッピングする第2の列を備える、少なくとも1つのルックアップテーブル(LUT)を備える、請求項9に記載の装置。
【請求項１１】
前記エンコーダが、ディスプレイデバイス上に表示されるべき前記ビデオデータビットストリームをデコーダに送信するようにさらに構成される、請求項1に記載の装置。
【請求項１２】
ビデオデータをコーディングするための方法であって、
ルーマチャネル、クロミナンスオレンジ(Co)チャネル、およびクロミナンスグリーン(Cg)チャネルを備えるYCoCg色空間を使用してコーディングされるべきビデオデータの現在ブロックを受信するステップと、
ビデオデータの前記現在ブロックの前記ルーマチャネルを量子化するためのルーマ量子化パラメータ(QP)を決定するステップと、
前記決定されたルーマQPに基づいて、ビデオデータの前記現在ブロックの前記Cgチャネルを量子化するためのCg QPおよびビデオデータの前記現在ブロックの前記Coチャネルを量子化するためのクロミナンスオレンジCo QPを決定するステップであって、前記Cg QPおよび前記Co QPが前記ルーマQPよりも大きくかつ互いに異なる、ステップと、
ビデオデータビットストリームを形成するために、前記決定されたルーマQP、Co QP、およびCg QPに基づいてビデオデータの前記現在ブロックを符号化するステップとを備え、
ビデオデータの前記現在ブロックが、ルーマ量子化ステップサイズ、Co量子化ステップサイズ、およびCg量子化ステップサイズを決定することによって符号化され、前記Co量子化ステップサイズおよび前記Cg量子化ステップサイズが、前記ルーマ量子化ステップサイズよりも大きい、
方法。
【請求項１３】
前記Co QPが前記Cg QPよりも大きい、請求項12に記載の方法。
【請求項１４】
前記Cg QPが前記ルーマQPよりも大きい、請求項12に記載の方法。
【請求項１５】
前記ルーマ量子化ステップサイズ、前記Co量子化ステップサイズ、および前記Cg量子化ステップサイズが、前記決定されたルーマQP、Co QP、およびCg QPに基づいて決定され、前記Co量子化ステップサイズが前記Cg量子化ステップサイズよりも大きい、請求項12に記載の方法。
【請求項１６】
前記ルーマQPが、ビデオデータの、前にコーディングされたブロックのルーマQP値を調整値だけ調整することによって決定され、前記調整値が、前記前にコーディングされたブロックをコーディングするために使用されたビット数、およびビデオデータの前記現在ブロックをコーディングするためのターゲットビット数に基づく、請求項12に記載の方法。
【請求項１７】
前記調整値がさらに、より大きいバッファフルネス値に対して前記ルーマQPがより大きくなるような、バッファのバッファフルネス状態に少なくとも部分的に基づく、請求項16に記載の方法。
【請求項１８】
前記調整値が、前記前にコーディングされたブロックをコーディングするために使用された前記ビット数と前記ターゲットビット数との間の差分に比例する、請求項16に記載の方法。
【請求項１９】
ビデオデータの前記現在ブロックが複雑領域から平坦領域への遷移を備えるかどうかという決定に応答して、前記ルーマQPを所定の値に設定するステップをさらに備える請求項12に記載の方法。
【請求項２０】
複数のルーマQP値から複数の対応するCo QP値およびCg QP値への所定のマッピングを備えるデータ構造にアクセスするステップをさらに備える請求項12に記載の方法。
【請求項２１】
前記データ構造が、ルーマQP値をCo QP値にマッピングする第1の列、およびルーマQP値をCg QP値にマッピングする第2の列を備える、少なくとも1つのルックアップテーブル(LUT)を備える、請求項20に記載の方法。
【請求項２２】
エンコーダが、ディスプレイデバイス上に表示されるべき前記ビデオデータビットストリームをデコーダに送信するようにさらに構成される、請求項12に記載の方法。
【請求項２３】
ビデオデータをコーディングするための装置であって、
ルーマチャネル、クロミナンスオレンジ(Co)チャネル、およびクロミナンスグリーン(Cg)チャネルを備えるYCoCg色空間を使用してコーディングされるべきビデオデータの現在ブロックを受信するための手段と、
ビデオデータの前記現在ブロックの前記ルーマチャネルを量子化するためのルーマ量子化パラメータ(QP)を決定するための手段と、
前記決定されたルーマQPに基づいて、ビデオデータの前記現在ブロックの前記Cgチャネルを量子化するためのCg QPおよびビデオデータの前記現在ブロックの前記Coチャネルを量子化するためのクロミナンスオレンジCo QPを決定するための手段であって、前記Cg QPおよび前記Co QPが前記ルーマQPよりも大きくかつ互いに異なる、手段と、
ビデオデータビットストリームを形成するために、前記決定されたルーマQP、Co QP、およびCg QPに基づいてビデオデータの前記現在ブロックを符号化するための手段とを備え、
ビデオデータの前記現在ブロックが、ルーマ量子化ステップサイズ、Co量子化ステップサイズ、およびCg量子化ステップサイズを決定することによって符号化され、前記Co量子化ステップサイズおよび前記Cg量子化ステップサイズが、前記ルーマ量子化ステップサイズよりも大きい、
装置。
【請求項２４】
前記Co QPが前記Cg QPよりも大きく、前記Cg QPが前記ルーマQPよりも大きい、請求項23に記載の装置。
【請求項２５】
前記ルーマ量子化ステップサイズ、前記Co量子化ステップサイズ、および前記Cg量子化ステップサイズが、前記決定されたルーマQP、Co QP、およびCg QPからそれぞれ導出され、前記Co量子化ステップサイズが前記Cg量子化ステップサイズよりも大きい、請求項23に記載の装置。
【請求項２６】
前記ルーマQPを決定するための手段が、ビデオデータの、前にコーディングされたブロックのルーマQP値を調整値だけ調整することによって前記ルーマQPを決定するように構成され、前記調整値が、前記前にコーディングされたブロックをコーディングするために使用されたビット数、およびビデオデータの前記現在ブロックをコーディングするためのターゲットビット数に基づく、請求項23に記載の装置。
【請求項２７】
前記調整値がさらに、より大きいバッファフルネス値に対して前記ルーマQPがより大きくなるような、バッファのバッファフルネス状態に少なくとも部分的に基づく、請求項26に記載の装置。
【請求項２８】
前記ルーマQPを決定するための前記手段が、ビデオデータの前記現在ブロックが複雑領域から平坦領域への遷移を備えるかどうかという決定に応答して、前記ルーマQPを所定の値に設定する、請求項23に記載の装置。
【請求項２９】
複数のルーマQP値から複数の対応するCo QP値およびCg QP値への所定のマッピングを備えるデータ構造にアクセスするための手段をさらに備える請求項23に記載の装置。
【請求項３０】
ディスプレイデバイス上に表示されるべき前記ビデオデータビットストリームをデコーダに送信するための手段をさらに備える請求項23に記載の装置。
【国際調査報告】
2019514290.tif 000016
2019514290.tif 000017
2019514290.tif 000018