(57)【要約】  提供されたものは、ビデオデータのスライスの間の、視覚アーティファクトを減らすために、符号化されるべきビデオデータのブロックの量子化パラメータを調整するためのシステムおよび方法である。各スライスは、１つ以上のラインで編成された１つ以上のブロックを含み、ビデオデータの任意の他のスライスからの情報なしで独立してコード化されることができる。特定のライン上のスライスの最後のブロックに対応する現在のブロックの複雑性値が決定され、現在のブロックが複雑な領域から平坦な領域への遷移を含むかどうかを決定するために使用され、ここにおいて、複雑な領域は、平坦な領域と比較するとより高い複雑性を有するとして特徴付けられる。現在のブロックがそのような遷移を含むという決定に応答して、現在のブロックをコード化するためのＱＰは、低減され得る。
2018534875.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを符号化するための装置であって、
前記ビデオデータを記憶するためのメモリと、
集積回路を備えるハードウェアプロセッサと、
を備え、前記ハードウェアプロセッサは、前記メモリに動作的に結合され、
前記ビデオデータのフレームにおける空間的に異なる領域に対応する、コード化されるべきビデオデータのスライスを受信することと、前記スライスは、１つ以上のラインで編成された１つ以上のブロックを含み、ここにおいて、前記スライスは、ビデオデータの任意の他のスライスからの情報なしで独立してコード化されることができる、
特定のライン上の前記スライスの最後のブロックに対応する現在のブロックの複雑性値を決定することと、
前記現在のブロックの前記決定された複雑性値に少なくとも部分的に基づいて、前記現在のブロックが、複雑な領域から平坦な領域への第１の遷移を含むかどうかを決定することと、ここにおいて、複雑な領域は、平坦な領域と比較するとより高い複雑性を有するとして特徴付けられる、
前記現在のブロックが前記第１の遷移を含むという決定に応答して、前記現在のブロックをコード化するための量子化パラメータ（ＱＰ）を低減させることと、
を行うように構成される、装置。
【請求項２】
前記ハードウェアプロセッサは、前記現在のブロックが前記第１の遷移を含むという前記決定に応答して、既定の値に前記ＱＰを低減することを行うようにさらに構成される、請求項１に記載の装置。
【請求項３】
前記ハードウェアプロセッサは、前記現在のブロックが前記第１の遷移を含むかどうかを決定するために、しきい値と前記現在のブロックの前記決定された複雑性値を比較することを行うようにさらに構成される、請求項１に記載の装置。
【請求項４】
前記ハードウェアプロセッサは、
複雑な領域から平坦な領域への第２の遷移が、前記現在のブロックと、前記特定のラインに後続するラインにおける前記現在のスライスの最初のブロックに対応する次のブロックとの間に存在するかどうかを決定することと、
前記複雑な領域から前記平坦な領域への前記第２の遷移が、前記現在のブロックと前記次のブロックとの間に存在することを決定することに応答して、前記次のブロックをコード化するための前記ＱＰを低減することと、
を行うようにさらに構成される、請求項１に記載の装置。
【請求項５】
前記ハードウェアプロセッサは、
前記次のブロックの複雑性値を決定することと、
前記次のブロックの前記複雑性値が第１のしきい値より少ないかどうかを決定することと、
前記次のブロックの前記複雑性値が前記第１のしきい値より低いという決定に応答して、前記現在のブロックの前記複雑性値が第２のしきい値より大きいかどうかを決定することと、
前記現在のブロックの前記複雑性値が前記第２のしきい値より大きいという前記決定に応答して、前記第２の遷移が前記現在のブロックと前記次のブロックとの間に存在することを決定することと、
を行うようにさらに構成される、請求項４に記載の装置。
【請求項６】
前記ハードウェアプロセッサは、
前記現在のブロックが前記第１の遷移と関連付けられるという決定に応答して、前記現在のブロックに関して前のブロックをコード化するためのＱＰに少なくとも部分的に基づいて、前記特定のラインに後続するラインにおける前記現在のスライスの最初のブロックに対応する次のブロックをコード化するためのＱＰを決定すること、前記前のブロックは、前記特定のライン上の前記現在のスライスの第２から最後のブロックに対応する、
ことを行うようにさらに構成される、請求項１に記載の装置。
【請求項７】
前記次のブロックをコード化するための前記ＱＰは、前記前のブロックをコード化するために使用されるビットの数、前記現在のブロックの前記ＱＰ、または前記現在のブロックをコード化するために使用されるビットの数のうちの少なくとも１つにさらに基づく、請求項６に記載の装置。
【請求項８】
前記ハードウェアプロセッサは、複雑な領域から平坦な領域への遷移が、前記現在のブロックと、前記現在のブロックと同じライン上の前記現在のスライスに後続するスライスの中の最初のブロックに対応する次のブロックとの間に存在するかどうかを決定することによって、前記現在のブロックが前記第１の遷移と関連付けられるかどうかを決定することを行うようにさらに構成される、請求項１に記載の装置。
【請求項９】
前記ハードウェアプロセッサは、複雑な領域から平坦な領域への遷移が、前のブロック、前記現在のブロック、および次のブロックのうちの１つ以上の間に存在するかどうかを決定することを行うようにさらに構成され、ここにおいて、前記前のブロックは、前記現在のスライスの中の前記現在のラインにおける前記現在のブロックより前のブロックであり、前記次のブロックは、前記現在のブロックと同じライン上の前記現在のスライスに後続するスライスの中の最初のブロックである、請求項１に記載の装置。
【請求項１０】
前記ハードウェアプロセッサは、前記現在のブロックが複雑な領域から平坦な領域への遷移を含むかどうかは、前記特定のライン上の隣接するスライスの最初のブロックの複雑性値に基づくことを決定することを行うようにさらに構成される、請求項１に記載の装置。
【請求項１１】
ビデオデータを符号化するための、コンピュータによって実行される方法であって、
前記ビデオデータのフレームにおける空間的に異なる領域に対応する、コード化されるべきビデオデータのスライスを受信することと、前記スライスは、１つ以上のラインで編成された１つ以上のブロックを含み、ここにおいて、前記スライスは、ビデオデータの任意の他のスライスからの情報なしで独立してコード化されることができる、
特定のライン上の前記スライスの最後のブロックに対応する現在のブロックの複雑性値を決定することと、
前記現在のブロックの前記決定された複雑性値に少なくとも部分的に基づいて、前記現在のブロックが、複雑な領域から平坦な領域への第１の遷移を含むかどうかを決定することと、ここにおいて、複雑な領域は、平坦な領域と比較するとより高い複雑性を有するとして特徴付けられる、
前記現在のブロックが前記第１の遷移を含むという決定に応答して、前記現在のブロックをコード化するための量子化パラメータ（ＱＰ）を低減させることと、
を備える、コンピュータによって実行される方法。
【請求項１２】
前記現在のブロックが前記第１の遷移を含むという前記決定に応答して、既定の値に前記ＱＰを低減することをさらに備える、請求項１１に記載のコンピュータによって実行される方法。
【請求項１３】
前記現在のブロックが前記第１の遷移を含むかどうかを決定するために、しきい値と前記現在のブロックの前記決定された複雑性値を比較することをさらに備える、請求項１１に記載のコンピュータによって実行される方法。
【請求項１４】
複雑な領域から平坦な領域への第２の遷移が、前記現在のブロックと、前記特定のラインに後続するラインにおける前記現在のスライスの最初のブロックに対応する次のブロックとの間に存在するかどうかを決定することと、
前記複雑な領域から前記平坦な領域への前記第２の遷移が、前記現在のブロックと前記次のブロックとの間に存在することを決定することに応答して、前記次のブロックをコード化するための前記ＱＰを低減することと、
をさらに備える、請求項１１に記載のコンピュータによって実行される方法。
【請求項１５】
前記次のブロックの複雑性値を決定することと、
前記次のブロックの前記複雑性値が第１のしきい値より少ないかどうかを決定することと、
前記次のブロックの前記複雑性値が前記第１のしきい値より低いという決定に応答して、前記現在のブロックの前記複雑性値が第２のしきい値より大きいかどうかを決定することと、
前記現在のブロックの前記複雑性値が前記第２のしきい値より大きいという前記決定に応答して、前記第２の遷移が前記現在のブロックと前記次のブロックとの間に存在することを決定することと、
をさらに備える、請求項１４に記載のコンピュータによって実行される方法。
【請求項１６】
前記現在のブロックが前記第１の遷移と関連付けられるという決定に応答して、前記現在のブロックに関して前のブロックをコード化するためのＱＰに少なくとも部分的に基づいて、前記特定のラインに後続するラインにおける前記現在のスライスの最初のブロックに対応する次のブロックをコード化するためのＱＰを決定すること、前記前のブロックは、前記特定のライン上の前記現在のスライスの第２から最後のブロックに対応する、
をさらに備える、請求項１１に記載のコンピュータによって実行される方法。
【請求項１７】
前記次のブロックをコード化するための前記ＱＰは、前記前のブロックをコード化するために使用されるビットの数、前記現在のブロックの前記ＱＰ、または前記現在のブロックをコード化するために使用されるビットの数のうちの少なくとも１つにさらに基づく、請求項１６に記載のコンピュータによって実行される方法。
【請求項１８】
複雑な領域から平坦な領域への遷移が、前記現在のブロックと、前記現在のブロックと同じライン上の前記現在のスライスに後続するスライスの中の最初のブロックに対応する次のブロックとの間に存在するかどうかを決定することによって、前記現在のブロックが前記第１の遷移と関連付けられるかどうかを決定することをさらに備える、請求項１１に記載のコンピュータによって実行される方法。
【請求項１９】
複雑な領域から平坦な領域への遷移が、前のブロック、前記現在のブロック、および次のブロックのうちの１つ以上の間に存在するかどうかを決定することによって、前記現在のブロックが前記第１の遷移と関連付けられるかどうかを決定することをさらに備え、ここにおいて、前記前のブロックは、前記現在のスライスの中の前記現在のラインにおける前記現在のブロックより前のブロックであり、前記次のブロックは、前記現在のブロックと同じライン上の前記現在のスライスに後続するスライスの中の最初のブロックである、請求項１１に記載のコンピュータによって実行される方法。
【請求項２０】
前記現在のブロックが複雑な領域から平坦な領域への第１の遷移を含むかどうかはさらに、前記特定のライン上の隣接するスライスの最初のブロックの複雑性値に少なくとも部分的に基づく、請求項１１に記載のコンピュータによって実行される方法。
【請求項２１】
ビデオデータを復号するための装置であって、
前記ビデオデータを記憶するためのメモリと、
前記メモリに動作的に結合されるハードウェアプロセッサとを備え、前記ハードウェアプロセッサは、
前記ビデオデータのフレームにおける空間的に異なる領域に対応する、コード化されるべきビデオデータのスライスを受信することと、前記スライスは、１つ以上のラインで編成された１つ以上のブロックを含み、ここにおいて、前記スライスは、ビデオデータの任意の他のスライスからの情報なしで独立してコード化されることができる、
特定のライン上の前記スライスの最後のブロックに対応する現在のブロックのために、前記現在のブロックをコード化するための量子化パラメータ（ＱＰ）を調整するかどうかのインジケータを受信することと、ここにおいて、前記インジケータの値は、前記現在のブロックが複雑な領域から平坦な領域への遷移を含むかどうかの決定に基づく、
前記インジケータの前記値に少なくとも部分的に基づいて前記現在のブロックをコード化するための前記ＱＰを調整することと、
を行うように構成される、装置。
【請求項２２】
前記現在のブロックをコード化するための前記ＱＰを調整することは、既定の値に前記ＱＰを設定することを備える、請求項１０に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  この開示は、ビデオコード化および圧縮の分野に関し、具体的に、ディスプレイストリーム圧縮（ＤＳＣ：display stream compression）のような、ディスプレイリンクを介した送信のためのビデオ圧縮に関する。
【背景技術】
【０００２】
[0002]  デジタルビデオ機能は、デジタルテレビ、携帯情報端末（ＰＤＡ）、ラップトップコンピュータ、デスクトップモニタ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレイヤ、ビデオゲームデバイス、ビデオゲーム機、セルラ式または衛星無線電話、ビデオテレビ会議デバイス等を含む広範囲のディスプレイに組み込まれることができる。ディスプレイリンクは、適切なソースデバイスにディスプレイを接続するために使用される。ディスプレイリンクの帯域幅要件は、ディスプレイの解像度に比例し、よって高解像度のディスプレイは、広帯域のディスプレイリンクを要求する。いくつかのディスプレイリンクは、高解像度のディスプレイをサポートするための帯域幅を有さない。ビデオ圧縮は、より低い帯域幅ディスプレイリンクが高解像度のディスプレイにデジタルビデオを提供するために使用されることができるように帯域幅要件を減らすために使用されることができる。
【０００３】
[0003]  他のものは、ピクセルデータに対して画像圧縮を利用しようと試みられてきた。しかしながら、そのような方式（scheme）は、視覚的に無損失でないときがある、または従来のディスプレイデバイスにおいて実現するのに難しく、費用がかかり得る。
【０００４】
[0004]  ビデオエレクトロニクススタンダードアソシエーション（ＶＥＳＡ：Video Electronics Standards Association）は、ディスプレイリンクビデオ圧縮のための規格として、ディスプレイストリーム圧縮（ＤＳＣ）を開発した。ＤＳＣのような、ディスプレイリンクビデオ圧縮技法は、とりわけ、視覚的に無損失であるピクチャ品質（すなわち、ユーザが、圧縮がアクティブであると言うことができないような品質のレベルを有するピクチャ）を提供するべきである。ディスプレイリンクビデオ圧縮技法はまた、従来のハードウェアとともにリアルタイムで実現するために簡単であり、安価である方式を提供するべきである。
【発明の概要】
【０００５】
[0005]   この開示のシステム、方法、およびデバイスは各々、いくつかの革新的な態様を有し、それらのうちの１つとして、本明細書に開示される所望の属性に対して単独で責任を負うわけではない。
【０００６】
[0006]  一態様において、ビデオデータを符号化するための装置が提供される。装置は、ビデオデータを記憶するためのメモリを含むことができる。装置はまた、メモリに動作的に（operationally）結合されるハードウェアプロセッサを含むことができる。プロセッサは、複数のスライスを使用してコード化されるべきビデオデータを受信するように構成され得、各スライスは、１つ以上のラインで編成された（organized in）１つ以上のブロックを含み、ここにおいて、ラインは、複数のスライスについてのブロックを含むことができる。プロセスは、現在のブロックと現在のブロックの隣接するブロックとのうちの少なくともいくつかが複雑な領域から平坦な領域への遷移を含むかどうかを決定することを行うようにさらに構成され得る。プロセッサはまた、決定に基づいて現在のブロックをコード化するための量子化パラメータ（ＱＰ：quantization parameter）を調整することを行うように構成され得る。
【０００７】
[0007]  別の態様において、ビデオデータを復号するための装置が、提供される。装置は、ビデオデータを記憶するためのメモリを含むことができる。装置はまた、メモリに動作的に結合されるハードウェアプロセッサを含むことができる。プロセッサは、コード化されるべきビデオデータを受信するように構成され得、ビデオデータは、複数のスライスと関連付けられた情報を含み、各スライスは、１つ以上のラインで編成された１つ以上のブロックを含み、ここにおいて、ラインは、複数のスライスについてのブロックを含むことができる。プロセッサはまた、現在のブロックをコード化するための量子化パラメータ（ＱＰ）を調整するかどうかのインジケータを受信するように構成され得、ここにおいて、インジケータの値は、現在のブロックと現在のブロックの隣接するブロックとのうちの少なくともいくつかが複雑な領域から平坦な領域への遷移を含むかどうかの決定に基づく。プロセッサは、インジケータの値に少なくとも部分的に基づいて現在のブロックをコード化するためのＱＰを調整することを行うようにさらに構成され得る。
【０００８】
[0008]  別の態様において、ビデオデータを符号化するための装置が、提供される。装置は、ビデオデータを記憶するためのメモリを含むことができる。装置はまた、集積回路を備えるハードウェアプロセッサを含むことができ、ハードウェアプロセッサは、メモリに動作的に結合される。プロセッサは、ビデオデータのフレームにおける空間的に異なる（distinct）領域に対応する、コード化されるべきビデオデータのスライスを受信することを行うように構成され得、スライスは、１つ以上のラインで編成された１つ以上のブロックを含み、ここにおいて、スライスは、ビデオデータの任意の他のスライスからの情報なしで独立してコード化されることができる。プロセッサは、特定のライン上のスライスの最後のブロックに対応する現在のブロックの複雑性値を決定することを行うようにさらに構成され得る。プロセッサは、現在のブロックの決定された複雑性値に少なくとも部分的に基づいて、現在のブロックが、複雑な領域から平坦な領域への第１の遷移を含むかどうかを決定することを行うようにさらに構成され得、ここにおいて、複雑な領域は、平坦な領域と比較するとより高い複雑性を有するとして特徴付けられる。プロセッサは、現在のブロックが第１の遷移を含むという決定に応答して、現在のブロックをコード化するための量子化パラメータ（ＱＰ）を低減させることを行うようにさらに構成され得る。
【０００９】
[0009]  別の態様において、ビデオデータを符号化するための、コンピュータによって実行される方法が、提供される。方法は、ビデオデータのフレームにおける空間的に異なる領域に対応する、コード化されるべきビデオデータのスライスを受信することを備え、スライスは、１つ以上のラインで編成された１つ以上のブロックを含み、ここにおいて、スライスは、ビデオデータの任意の他のスライスからの情報なしで独立してコード化されることができる。方法は、特定のライン上のスライスの最後のブロックに対応する現在のブロックの複雑性値を決定することをさらに備える。方法は、現在のブロックの決定された複雑性値に少なくとも部分的に基づいて、現在のブロックが、複雑な領域から平坦な領域への第１の遷移を含むかどうかを決定することをさらに備え、ここにおいて、複雑な領域は、平坦な領域と比較するとより高い複雑性を有するとして特徴付けられる。方法は、現在のブロックが前記第１の遷移を含むという決定に応答して、現在のブロックをコード化するための量子化パラメータ（ＱＰ）を低減させることをさらに備える。
【００１０】
[0010]  別の態様において、ビデオデータを復号するための装置が、提供される。装置は、ビデオデータを記憶するためのメモリを含むことができる。装置はまた、メモリに動作的に結合されるハードウェアプロセッサを含むことができる。プロセッサは、ビデオデータのフレームにおける空間的に異なる領域に対応する、コード化されるべきビデオデータのスライスを受信することを行うように構成され得、スライスは、１つ以上のラインで編成された１つ以上のブロックを含み、ここにおいて、スライスは、ビデオデータの任意の他のスライスからの情報なしで独立してコード化されることができる。プロセッサは、特定のライン上のスライスの最後のブロックに対応する現在のブロックのために、現在のブロックをコード化するための量子化パラメータ（ＱＰ）を調整するかどうかのインジケータを受信することを行うようにさらに構成され得、ここにおいて、インジケータの値は、現在のブロックが複雑な領域から平坦な領域への遷移を含むかどうかの決定に基づく。プロセッサは、インジケータの値に少なくとも部分的に基づいて現在のブロックをコード化するためのＱＰを調整することを行うようにさらに構成され得る。
【図面の簡単な説明】
【００１１】
【図１Ａ】[0011]  図１Ａは、この開示に説明される態様に従う技法を利用し得る例示的なビデオ符号化および復号システムを例示するブロック図である。
【図１Ｂ】[0012]  図１Ｂは、この開示に説明される態様に従って技法を行い得る、別の例示的なビデオ符号化および復号システムを例示するブロック図である。
【図２Ａ】[0013]  図２Ａは、この開示に説明される態様に従って技法を実現し得るビデオエンコーダの例を例示するブロック図である。
【図２Ｂ】[0014]  図２Ｂは、この開示に説明される態様に従って技法を実現し得るビデオデコーダの例を例示するブロック図である。
【図３Ａ】[0015]  図３Ａは、この開示に説明される態様に従って（１つまたは複数の）スライス境界にわたる（１つまたは複数の）視覚アーティファクトを例示する。
【図３Ｂ】[0015]  図３Ｂは、この開示に説明される態様に従って（１つまたは複数の）スライス境界にわたる（１つまたは複数の）視覚アーティファクトを例示する。
【図４】[0016]  図４は、この開示に説明される態様に従って、スライス内の現在のラインにおける最初のブロック、および前のラインにおける最後のブロックを例示する。
【図５】[0017]  図５は、この開示に説明される態様に従って、スライス内の現在のラインにおける最後のブロックを例示する。
【図６】[0018]  図６は、この開示に説明される態様に従って、スライスの中の現在のラインにおける最後のブロックと、同じスライスの中の同じラインにおける前のブロックと、次のスライスの中の同じラインにおける最初のブロックとを例示する。
【図７】[0019]  図７は、いくつかの実施形態に従って、ビデオデータを符号化するときに量子化パラメータを調整するための例示的なプロセスのフローチャートを例示する。
【図８】[0020]  図８は、いくつかの実施形態に従って、ビデオデータを符号化するときに量子化パラメータを調整するための、別の例示的なプロセスについてのフローチャートを例示する。
【図９】[0021]  図９は、いくつかの実施形態に従って、ビデオデータを復号するための例示的なプロセスのフローチャートを例示する。
【詳細な説明】
【００１２】
[0022]  一般的に、この開示は、ディスプレイストリーム圧縮（ＤＳＣ）のようなビデオ圧縮技法を改善する方法に関する。より具体的には、本開示は、スライス境界にわたる視覚アーティファクトを処理するためのシステムおよび方法に関する。
【００１３】
[0023]  ある特定の実施形態がＤＳＣ規格との関連で本明細書に説明されるが、当業者は、本明細書に開示されるシステムおよび方法が任意の適切なビデオコード化規格に適用可能であり得ることを理解するであろう。例えば、本明細書に開示された実施形態は、以下の規格のうちの１つ以上に適用可能であり得る：国際電気通信連合（ＩＴＵ：International Telecommunication Union）電気通信標準化部門（Telecommunication Standardization Sector）（ＩＴＵ−Ｔ）Ｈ．２６１、国際標準化機構／国際電気標準会議（ＩＳＯ／ＩＥＣ：International Organization for Standardization/International Electrotechnical Commission）ムービングピクチャエキスパーツグループ−１（ＭＰＥＧ−１：Moving Picture Experts Group-1）Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４Ｖｉｓｕａｌ、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られている）ＩＴＵ−Ｔ  Ｈ．２６４、高効率ビデオコード化（ＨＥＶＣ：High Efficiency Video Coding）、およびそのような規格の任意の拡張。また、この開示に説明される技法は、今後開発される規格の一部となり得る。言い換えれば、この開示に説明される技法は、既に開発されたビデオコード化規格、現在開発中のビデオコード化規格、および今後のビデオコード化規格に適用可能であり得る。
【００１４】
[0024]  発展型（Advanced）ＤＳＣは、１つのラインにおいて複数のスライスを使用するように構成されることができる。例えば、パラメータＮは、１より大きい（すなわち、Ｎ＞１）。しかしながら、発展型ＤＳＣが１つのラインにおいて複数のスライスを使用するように構成されるとき、目に見えて分かる（noticeable）視覚アーティファクトが、垂直のスライス境界に現れることができる。
【００１５】
[0025]  これらのおよび他の課題（challenge）に対処するために、本開示の技法は、発展型ＤＳＣが１つのラインにおいて複数のスライスを使用するように構成されるとき、スライス境界にわたる視覚アーティファクトに対処することができる。例えば、ＱＰ値は、複雑な／ビジーな（busy）領域から平坦／スムーズな領域への遷移が１つ以上のブロックの間、または１つのブロック内に存在するかどうかに基づいて調整されることができる。技法は、様々なタイプの遷移についてチェックすることができる。例えば、技法は、遷移が、前のラインにおける最後のブロックと、同じスライス内の現在のラインにおける最初のブロックとの間に存在するかどうか、あるいは現在のスライスの中の各ラインにおける最後のブロック内に存在するかどうか、あるいは現在のブロックと、同じラインにおける同じスライスまたは次のスライスの中の空間的に隣接するブロックとの間に存在するかどうか等を決定し得る。複雑性値は、そのような遷移が存在するかどうかを決定するために１つ以上のブロックについて決定され得る。現在のブロックまたは他のブロックのＱＰ値は、遷移が存在するという決定に基づいて調整されることができる。例えば、ＱＰ値は、遷移が存在するとき低減されることができる。遷移を検出することおよびＱＰ値を調整することは、スライス境界にわたる視覚アーティファクトの出現を減らすことができる。
ビデオコード化規格
[0026]  ビデオ画像、ＴＶ画像、静止画、あるいはビデオレコーダまたはコンピュータによって生成される画像のような、デジタル画像は、水平および垂直なラインに配置されるピクセルまたはサンプルを含み得る。単一の画像におけるピクセルの数は、概して数万台である（in the tens of thousands）。各ピクセルは概して、輝度およびクロミナンス情報（luminance and chrominance information）を包含する。圧縮なしで、画像エンコーダから画像デコーダに搬送されるべき情報の純粋な量（sheer quantity）は、リアルタイム画像送信の実行を難しくすることとなる。送信されるべき情報の量を減らすために、ＪＰＥＧ、ＭＰＥＧ、およびＨ．２６３規格のような、いくつかの異なる圧縮方法が開発されてきた。
【００１６】
[0027]  ビデオコード化規格は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られている）ＩＴＵ−Ｔ  Ｈ．２６４、およびそのような規格の拡張を含むＨＥＶＣを含む。
【００１７】
[0028]  加えて、ビデオコード化規格、すなわちＤＳＣは、ＶＥＳＡによって開発されてきた。ＤＳＣ規格は、ディスプレイリンクを介した送信のためにビデオを圧縮することができるビデオ圧縮規格である。ディスプレイの解像度が増加するにつれて、ディスプレイを駆動するために要求されるビデオデータの帯域幅は、それに応じて増加する。いくつかのディスプレイリンクは、そのような解像度のためにディスプレイにビデオデータの全てを送信するための帯域幅を有していない可能性がある。それ故に、ＤＳＣ規格は、ディスプレイリンクを介して、相互運用可能な、視覚的に無損失である圧縮のための圧縮規格を特定する。
【００１８】
[0029]  ＤＳＣ規格は、Ｈ．２６４およびＨＥＶＣのような、他のビデオコード化規格とは異なる。ＤＳＣは、フレーム内圧縮を含むが、フレーム間圧縮を含まない。フレーム内圧縮を含むが、フレーム間圧縮を含まないことは、時間的情報（temporal information）がビデオデータをコード化する際にＤＳＣ規格によって使用されない可能性があることを意味する。その一方、他のビデオコード化規格は、それらのビデオコード化技法においてフレーム間圧縮を採用し得る。発展型ＤＳＣは、例えば、４：１またはそれより高い圧縮比率を提供するために、開発されている。４：１またはそれより高い圧縮比率は、モバイルデバイスのために、例えば、４Ｋのような高解像度ディスプレイのために、使用され得る。
ビデオコード化システム
[0030]  新規のシステム、装置、および方法の様々な態様が、添付の図面を参照して以下により十分に説明される。この開示は、しかしながら、多くの異なる形態で具現化され得、この開示全体を通じて提示される任意の特定の構造または機能に限定されると解釈されるべきではない。むしろ、これらの態様は、この開示が徹底的かつ完全となり、当業者に本開示の範囲を十分に伝達するように提供される。本明細書における教示に基づいて、当業者は、本開示の範囲が、本開示の任意の他の態様とは独立して、または組み合わされて実現されようとも、本明細書に開示される新規のシステム、装置、および方法の任意の態様をカバーするように意図されていることを認識するべきである。例えば、本明細書に記載される任意の数の態様を使用して、装置が実現され得る、または方法が実施され得る。加えて、本開示の範囲は、本明細書に記載される本開示の様々な態様に加えて、またはそれら以外の、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーするように意図されている。本明細書に開示される任意の態様が、請求項の１つ以上の要素によって具現化され得ることが理解されるべきである。
【００１９】
[0031]  特定の態様が本明細書に説明されるが、これらの態様の多くの変形および置換が、本開示の範囲内に含まれる。好ましい態様のいくつかの恩恵および利点が記述されるが、本開示の範囲は、特定の恩恵、使用法、または目的に限定されるように意図されたものではない。むしろ、本開示の態様は、異なるワイヤレス技術、システム構成、ネットワーク、および送信プロトコルに広く適用可能であるように意図されており、それらのうちのいくつかは、図面中および好ましい態様の以下の説明中に例として例示される。詳細な説明および図面は、限定ではなく本開示の単なる例示であり、本開示の範囲は、添付の特許請求の範囲およびそれらの同等物によって定義されている。
【００２０】
[0032]  添付の図面は、例を例示している。添付の図面において参照番号によって示されている要素は、以下の説明において同様の参照番号によって示されている要素に対応する。この開示において、順序を示す言葉（例えば、「第１の」、「第２の」、「第３の」等）で始まる名前を有する要素は、必ずしも、その要素が特定の順序を持つことを含意していない。むしろ、そのような順序を示す言葉は、単に、同じまたは同様のタイプの異なる要素を称するために使用される。
【００２１】
[0033]  図１Ａは、この開示に説明される態様に従う技法を利用し得る例示的なビデオコード化システム１０を例示するブロック図である。本明細書において使用され、説明されるように、「ビデオコーダ（video coder）」または「コーダ（coder）」という用語は、概して、ビデオエンコーダおよびビデオデコーダの両方を称する。この開示において、「ビデオコード化（video coding）」または「コード化（coding）」という用語は、概して、ビデオ符号化およびビデオ復号を称し得る。ビデオエンコーダおよびビデオデコーダに加えて、本願で説明される態様は、トランスコーダ（例えば、ビットストリームを復号し、別のビットストリームを再符号化することができるデバイス）およびミドルボックス（middleboxe）（例えば、ビットストリームを修正、変換、および／またはそうでなければ操作する（manipulate）することができるデバイス）のような他の関連するデバイスに拡張され得る。
【００２２】
[0034]  図１Ａに示されているように、ビデオコード化システム１０は、宛先デバイス１４によって後に復号されるべき符号化されたビデオデータを生成するソースデバイス１２を含む。図１Ａの例において、ソースデバイス１２および宛先デバイス１４は、個別のデバイスを構成する。しかしながら、ソースデバイス１２および宛先デバイス１４が、図１Ｂの例において示されているように、同じデバイス上にあり得る、または同じデバイスの一部であり得ることは、留意されたい。
【００２３】
[0035]  再び図１Ａを参照して、ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（例えば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンのような電話ハンドセット、いわゆる「スマート」パッド、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレイヤ、ビデオゲーム機、車載コンピュータ、ビデオストリーミングデバイス、アイウェアおよび／またはウェアラブルコンピュータのような、エンティティ（例えば、人間、動物、および／または別の制御されたデバイス）によって（に対して）ウェアラブルである（または取り外し可能に取り付けられる）デバイス、エンティティ内で消費され、取り込まれ、または置かれることができるデバイスまたは装置、および／または同様のものを含む、幅広いデバイスのうちのいずれかをそれぞれ備え得る。様々な実施形態において、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために備え付けられ得る。
【００２４】
[0036]  宛先デバイス１４は、復号されるべき符号化されたビデオデータを、リンク１６を介して受信し得る。リンク１６は、ソースデバイス１２から宛先デバイス１４に符号化されたビデオデータを移動させることができる任意のタイプの媒体またはデバイスを備え得る。図１Ａの例において、リンク１６は、ソースデバイス１２がリアルタイムで宛先デバイス１４に符号化されたビデオデータを送信することをイネーブルするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルのような通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ：radio frequency）スペクトルまたは１つ以上の物理送信線のような任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットのようなグローバルネットワークのような、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を容易にするのに役立ち得る任意の他の機器を含み得る。
【００２５】
[0037]  図１Ａの例において、ソースデバイス１２は、ビデオソース１８、ビデオエンコーダ２０、および出力インタフェース２２を含む。いくつかのケースにおいて、出力インタフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、ビデオキャプチャデバイス、例えば、ビデオカメラ、以前にキャプチャされたビデオを包含するビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインタフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、あるいはそのようなソースの組み合わせ、のようなソースを含み得る。１つの例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、図１Ｂの例に例示されているようないわゆる「カメラ電話」または「ビデオ電話」を形成し得る。しかしながら、この開示で説明された技法は、一般的にビデオコード化に適用可能であり得、ワイヤレスおよび／またはワイヤードアプリケーションに適用され得る。
【００２６】
[0038]  キャプチャされた、予めキャプチャされていた（pre-captured）、またはコンピュータにより生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化されたビデオデータは、ソースデバイス１２の出力インタフェース２２を介して、宛先デバイス１４に送信され得る。符号化されたビデオデータはまた（または代替として）、復号および／または再生のために、宛先デバイス１４または他のデバイスによる後のアクセスのために記憶デバイス３１上に記憶され得る。図１Ａおよび１Ｂに例示されているビデオエンコーダ２０は、図２Ａを例示したビデオエンコーダ２０または本明細書に説明される任意の他のビデオエンコーダを備え得る。
【００２７】
[0039]  図１Ａの例において、宛先デバイス１４は、入力インタフェース２８、ビデオデコーダ３０、およびディスプレイデバイス３２を含む。いくつかのケースにおいて、入力インタフェース２８は、受信機および／またはモデムを含み得る。宛先デバイス１４の入力インタフェース２８は、リンク１６を介しておよび／または記憶デバイス３１から、符号化されたビデオデータを受信し得る。リンク１６を介して通信された、または記憶デバイス３１上で提供された、符号化されたビデオデータは、ビデオデータを復号する際に、ビデオデコーダ３０のようなビデオデコーダによる使用のためにビデオエンコーダ２０によって生成された多様なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信されたか、記憶媒体上に記憶されたか、またはファイルサーバに記憶した、符号化されたビデオデータとともに含まれ得る。図１Ａおよび１Ｂに例示されるビデオデコーダ３０は、図２Ｂに例示されるビデオデコーダ３０または本明細書に説明される任意の他のビデオデコーダを備え得る。
【００２８】
[0040]  ディスプレイデバイス３２は、宛先デバイス１４と一体化され得る、あるいは宛先デバイス１４の外部にあり得る。いくつかの例において、宛先デバイス１４は、一体化されたディスプレイデバイスを含み得、また外部のディスプレイデバイスとインタフェースするように構成され得る。他の例において、宛先デバイス１４は、ディスプレイデバイスであり得る。概して、ディスプレイデバイス３２は、ユーザに、復号されたビデオデータを表示し、液晶ディスプレイ（ＬＣＤ：liquid crystal display）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ：organic light emitting diode）ディスプレイ、または別のタイプのディスプレイデバイスのような、様々なディスプレイデバイスのいずれのものも備え得る。
【００２９】
[0041]  関連する態様において、図１Ｂは、例示的なビデオコード化システム１０’を示し、ここにおいて、ソースデバイス１２および宛先デバイス１４は、デバイス１１上にある、またはデバイス１１の一部である。デバイス１１は、「スマート」フォンまたは同様のもののような、電話ハンドセットであり得る。デバイス１１は、ソースデバイス１２および宛先デバイス１４と動作的に通信状態にある（in operative communication with）プロセッサ／コントローラデバイス１３（オプション的に提示されている）を含み得る。図１Ｂのビデオコード化システム１０’およびそれのコンポーネントは、その他の点では、図１Ａのビデオコード化システム１０、およびそれのコンポーネントに類似している。
【００３０】
[0042]  ビデオエンコーダ２０およびビデオデコーダ３０は、ＤＳＣのような、ビデオ圧縮規格に従って動作し得る。代わりとして、ビデオエンコーダ２０およびビデオデコーダ３０は、ＭＰＥＧ−４、Ｐａｒｔ１０、ＡＶＣ、ＨＥＶＣ、またはそのような規格の拡張、と代わりに称される、ＩＴＵ−Ｔ  Ｈ．２６４規格のような、他の所有権または工業規格に従って動作し得る。しかしながらこの開示の技法は、いずれの特定のコード化規格にも限定されない。ビデオ圧縮規格の他の例は、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３を含む。
【００３１】
[0043]  図１Ａおよび１Ｂの例に示されていないが、ビデオエンコーダ２０およびビデオデコーダ３０は各々、音声エンコーダおよびデコーダと一体化され得、共通のデータストリームまたは別個のデータストリームにおける音声およびビデオの両方の符号化に対処するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能である場合、いくつかの例において、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３多重化プロトコル、またはユーザデータグラムプロトコル（ＵＤＰ：user datagram protocol）のような他のプロトコルに従い得る。
【００３２】
[0044]  ビデオエンコーダ２０およびビデオデコーダ３０は各々、１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ：digital signal processor）、特定用途向け集積回路（ＡＳＩＣ：application specific integrated circuit）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ：field programmable gate array）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせのような、様々な適したエンコーダ回路のいずれかとして実装され得る。技法が部分的にソフトウェアにおいて実現されるとき、デバイスは、適切な、非一時的なコンピュータ読み取り可能な媒体においてソフトウェアのための命令を記憶し、この開示の技法を行うために、１つ以上のプロセッサを使用してハードウェアにおいて命令を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、１つ以上のエンコーダまたはデコーダに含まれ得、それらのどちらかは、それぞれのデバイスにおいて、組み合わされたエンコーダ／デコーダの一部として一体化され得る。
ビデオコード化処理
[0045]  上記に簡単に触れたように、ビデオエンコーダ２０は、ビデオデータを符号化する。ビデオデータは、１つ以上のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画である。いくつかの事例において、ピクチャは、ビデオ「フレーム」と称され得る。ビデオエンコーダ２０がビデオデータを符号化するとき、ビデオエンコーダ２０は、ビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化された表現を形成するビットのシーケンスを含み得る。ビットストリームは、コード化されたピクチャおよび関連付けられたデータを含み得る。コード化されたピクチャは、ピクチャのコード化された表現である。
【００３３】
[0046]  ビットストリームを生成するために、ビデオエンコーダ２０は、ビデオデータにおける各ピクチャに対して符号化オペレーションを行い得る。ビデオエンコーダ２０がピクチャに対して符号化オペレーションを行うとき、ビデオエンコーダ２０は、一連のコード化されたピクチャおよび関連付けられたデータを生成し得る。関連付けられたデータは、量子化パラメータ（ＱＰ）のようなコード化パラメータのセットを含み得る。コード化されたピクチャを生成するために、ビデオエンコーダ２０は、ピクチャを同じ大きさのビデオブロックに区分化し得る。ビデオブロックは、サンプルの２次元配列（two-dimensional array）であり得る。コード化パラメータは、ビデオデータのブロックごとにコード化オプション（例えば、コード化モード）を定義し得る。コード化オプションは、所望のレートひずみ性能（desired rate-distortion performance）を達成するために選択され得る。
【００３４】
[0047]  いくつかの例において、ビデオエンコーダ２０は、ピクチャを複数のスライスに区分化し得る。スライスの各々は、画像またはフレームにおける残りの領域からの情報なしで独立して復号されることができる画像（例えば、フレーム）における空間的に異なる領域を含み得る。各画像またはビデオフレームは、単一のスライスに符号化され得、あるいは各画像またはビデオフレームは、いくつかのスライスに符号化され得る。ＤＳＣにおいて、各スライスを符号化するために割り当てられるターゲットビットは、実質的に一定であり得る。ピクチャに対して符号化オペレーションを行うことの一部として、ビデオエンコーダ２０は、ピクチャの各スライスに対して符号化オペレーションを行い得る。ビデオエンコーダ２０がスライスに対して符号化オペレーションを行うとき、ビデオエンコーダ２０は、スライスと関連付けられた符号化されたデータを生成し得る。スライスと関連付けられた符号化されたデータは、「コード化されたスライス」と称され得る。
ＤＳＣビデオエンコーダ
[0048]  図２Ａは、この開示に説明される態様に従って技法を実現し得るビデオエンコーダ２０の例を例示するブロック図である。ビデオエンコーダ２０は、この開示の技法のいくつかまたは全てを行うように構成され得る。いくつかの例において、この開示に説明される技法は、ビデオエンコーダ２０の様々なコンポーネントの間で共有され得る。いくつかの例において、追加としてまたは代替として、プロセッサ（示されていない）は、この開示に説明される技法のいくつかまたは全てを行うように構成され得る。
【００３５】
[0049]  説明の目的のために、この開示は、ＤＳＣコード化の関連でビデオエンコーダ２０を説明する。しかしながら、この開示の技法は、他のコード化規格または方法に適用可能であり得る。
【００３６】
[0050]  図２Ａの例において、ビデオエンコーダ２０は、複数の機能コンポーネントを含む。ビデオエンコーダ２０の機能コンポーネントは、色空間変換器（color-space converter）１０５、バッファ１１０、平面検出器（flatness detector）１１５、レートコントローラ１２０、予測子、量子化器、および再構成器コンポーネント（predictor, quantizer, and reconstructor component）１２５、ラインバッファ１３０、インデックス付けされた色履歴１３５、エントロピーエンコーダ１４０、サブストリーム多重化装置１４５、およびレートバッファ１５０を含む。他の例において、ビデオエンコーダ２０は、より多い、より少ない、または異なる機能的なコンポーネントを含み得る。
【００３７】
[0051]  色空間変換器１０５は、コード化実施において使用される色空間に入力色空間を変換し得る。例えば、例示的な一実施形態において、入力ビデオデータの色空間は、赤、緑、および青（ＲＧＢ）色空間であり、コード化は、輝度Ｙ、クロミナンス緑Ｃｇ、およびクロミナンス橙Ｃｏ（ＹＣｇＣｏ）色空間で実現される。色空間変換器は、ビデオデータへのシフトおよび追加を含む（１つまたは複数の）方法によって行われ得る。他の色空間における入力ビデオデータが処理され得、他の色空間への変換がまた行われ得ることに留意されたい。
【００３８】
[0052]  関連付した態様において、ビデオエンコーダ２０は、バッファ１１０、ラインバッファ１３０、および／またはレートバッファ１５０を含み得る。例えば、バッファ１１０は、ビデオエンコーダ２０の他の部分によるその使用の前に色空間変換されたビデオデータ（color-space converted video data）を保持し得る。別の例において、ビデオデータは、ＲＧＢ色空間に記憶され得、色空間変換は、色空間変換されたデータがより多いビットを要求し得るため、必要に応じて行われ得る。
【００３９】
[0053]  レートバッファ１５０は、ビデオエンコーダ２０におけるレートコントロールメカニズムの一部として機能し得、それは、レートコントローラ１２０に関連して以下により詳細に説明されることとなる。各ブロックを符号化することに充てられるビットは、ブロックの性質に基づいて極めて実質的に変わることができる。レートバッファ１５０は、圧縮されたビデオにおけるレート変動（rate variation）をスムーズにすることができる。いくつかの実施形態において、ビットが固定ビットレート（ＣＢＲ：constant bit rate）でバッファから取り出される、固定ビットレートバッファモデルが、採用される。ＣＢＲバッファモデルにおいて、ビデオエンコーダ２０がビットストリームにあまりに多すぎるビットを追加する場合、レートバッファ１５０は、オーバーフローし得る。他方では、ビデオエンコーダ２０は、レートバッファ１５０のアンダーフローを防ぐために、十分なビットを追加しなければならない。
【００４０】
[0054]  ビデオデコーダ側では、ビットは、固定ビットレートでビデオデコーダ３０のレートバッファ１５５（以下にさらに詳細に説明される図２Ｂを参照）に追加され得、ビデオデコーダ３０は、ブロックごとにビットの変数を取り除き得る。適切な復号を確実にするために、ビデオデコーダ３０のレートバッファ１５５は、圧縮されたビットストリームの復号の間、「アンダーフロー」または「オーバーフロー」すべきでない。
【００４１】
[0055]  いくつかの実施形態において、バッファ占有量（ＢＦ：buffer fullness）は、現在バッファにおけるビットの数を表すＢｕｆｆｅｒＣｕｒｒｅｎｔＳｉｚｅ、およびレートバッファ１５０のサイズを表すＢｕｆｆｅｒＭａｘＳｉｚｅ、すなわちいずれかの時点でレートバッファ１５０に記憶されることができるビットの最大数、の値に基づいて定義されることができる。ＢＦは、
ＢＦ＝（（ＢｕｆｆｅｒＣｕｒｒｅｎｔＳｉｚｅ＊１００）／ＢｕｆｆｅｒＭａｘＳｉｚｅ）のように算出され得る。
【００４２】
[0056]  平面検出器１１５は、ビデオデータにおける複雑な（すなわち、非平坦な（non-flat））エリアからビデオデータにおける平坦な（すなわち、単純な（simple）、または均一な（uniform））エリアへの変更を検出することができる。「複雑な（complex）」および「平坦な（flat）」という用語は概して、本明細書において、ビデオエンコーダ２０がビデオデータのそれぞれの領域を符号化する難しさを指すために使用されることとなる。よって、本明細書において使用される複雑なという用語は概して、ビデオエンコーダ２０が符号化するのに複雑であるビデオデータの領域を説明し、例えば、テスクチャードビデオデータ（textured video data）、高空間周波数、および／または符号化するために複雑である他の特徴を含み得る。例えば、ビデオデータの領域は、領域を符号化するために要求されるビットの数がしきい値より多いとき、複雑な領域であることを決定され得る。本明細書において使用される平坦なという用語は概して、ビデオエンコーダ２０が符号化するのに単純である、ビデオデータの領域を説明し、例えば、ビデオデータにおけるスムーズな階調度、低空間周波数、および／または符号化するのに単純である他の特徴を含み得る。例えば、ビデオデータの領域は、領域を符号化するために要求されるビットの数がしきい値より少ないとき、平坦な領域であることを決定され得る。
【００４３】
[0057]  しかしながら、実施に依存して、所与の領域が複雑であるか、または平坦であるかどうかの決定はまた、使用される符号化規格、ビデオエンコーダ２０に含まれる特定のハードウェア、符号化されるべきビデオデータのタイプ、等に基づいて決定され得る。さらに、ビデオデータ領域のある特定のプロパティー（properties）は、いくつのビットが領域を符号化するために要求されるかに影響を与え得、例えば、高テクスチャおよび／または高空間周波数領域は、より低いテクスチャおよび／またはより低い空間周波数領域より多くの符号化されるべきビットを要求し得る。同様に、ランダムノイズを備える領域は、ビデオデータのより構造化された領域に比べて、符号化されるべき多くの数のビットを要求され得る。よって、ある特定の実施において、ビデオデータの領域は、領域のテクスチャおよび／または空間周波数の測定値（measure）（例えば、複雑性値）を、複雑性しきい値と比較することによって、複雑な領域および／または平坦な領域として識別され得る。複雑な領域と平坦な領域との間の遷移は、符号化されたビデオデータにおける量子化アーティファクトを減らすために、ビデオエンコーダ２０によって使用され得る。具体的には、レートコントローラ１２０ならびに予測子、量子化器、および再構成器コンポーネント１２５は、複雑な領域から平坦な領域への遷移が識別されるとき、そのような量子化アーティファクトを減らすことができる。いくつかの実施形態において、複数の異なる複雑性レベル（例えば、「とても平坦」、「平坦」、「少し平坦」、「少し複雑」、「複雑」、「とても複雑」）は、定義され、各々異なるしきい値と関連付けられ得る。例えば、領域が第１のしきい値より低い複雑性値を有する場合、領域は、「とても平坦」であると考えられ得る。他方では、領域は、領域の複雑性値が第１のしきい値と、第１のしきい値より高い第２のしきい値との間である場合、「平坦」であると考えられ得る。いくつかの実施形態において、複雑性値は、ブロックのピクセル値の空間周波数および／またはテクスチャのインジケーションとしてビデオデータのブロックについて決定され得る。
【００４４】
[0058]  レートコントローラ１２０は、コード化パラメータのセット、例えば、ＱＰを決定する。ＱＰは、レートバッファ１５０がオーバーフローまたはアンダーフローしないことを確実にするターゲットビットレートについてのピクチャ品質を最大にするためにビデオデータの画像アクティビティおよびレートバッファ１５０のバッファ占有量に基づいてレートコントローラ１２０によって調整され得る。レートコントローラ１２０はまた、最適なレートひずみパフォーマンスを達成するために、ビデオデータのブロックごとに特定のコード化オプション（例えば、特定のモード）を選択する。レートコントローラ１２０は、それがビットレート制約を満たす、すなわち、全体の実際のコード化レートがターゲットビットレート内にフィットするように、再構成された画像のひずみを最小限にする。
【００４５】
[0059]  予測子、量子化器、および再構成器コンポーネント１２５は、ビデオエンコーダ２０の少なくとも３つの符号化オペレーションを行い得る。予測子、量子化器、および再構成器コンポーネント１２５は、いくつかの異なるモードにおいて予測を行い得る。例示的な一予測モードは、メディアン適応予測（median-adaptive prediction）の修正されたバージョンである。メディアン適応予測は、無損失ＪＰＥＧ規格（ＪＰＥＧ−ＬＳ）によって実施され得る。予測子、量子化器、および再構成器コンポーネント１２５によって行われ得るメディアン適応予測の修正されたバージョンは、３つの連続したサンプル値の並列予測を可能にし得る。別の例示的な予測モードは、ブロック予測である。ブロック予測において、サンプルはラインの上、または同じラインの左における、前に再構成されたピクセルから予測される。いくつかの実施形態において、ビデオエンコーダ２０およびビデオデコーダ３０は両方ともに、ブロック予測使用法を決定するために再構成されたピクセルに対して同一探索（identical search）を行い得、よってビットは、ブロック予測モードで送られる必要がない。他の実施形態において、ビデオエンコーダ２０は、ビデオデコーダ３０が別個の探索を行う必要がないように、ビットストリームにおいて探索および信号ブロック予測ベクトルを行い得る。サンプルがコンポーネント範囲の中点を使用して予測される中点予測モードもまた、実施され得る。中点予測モードは、最悪のケースのサンプルにおいてさえ圧縮されるビデオのために要求されるいくつかのビットの境界をつけることをイネーブルし得る。図３−６を参照して以下にさらに説明されるように、予測子、量子化器、および再構成器コンポーネント１２５は、図３−６に関連して例示または説明される方法を行うことによってビデオデータのブロック（または任意の他のユニットの予測値）を予測する（例えば、符号化するまたは復号する）ように構成され得る。
【００４６】
[0060]  予測子、量子化器、および再構成器コンポーネント１２５はまた、量子化を行う。例えば、量子化は、シフタを使用して実現され得る２の累乗量子化器（power-of-2 quantizer）を介して行われ得る。他の量子化技法は、２の累乗量子化器の代わりに実現され得ることに留意されたい。予測子、量子化器、および再構成器コンポーネント１２５によって行われる量子化は、レートコントローラ１２０によって決定されるＱＰに基づき得る。最後に、予測子、量子化器、および再構成器コンポーネント１２５はまた、予測された値に逆量子化された残差を加えることと、結果がサンプル値の有効な範囲外にならにことを確実することとを含む再構成を行う。
【００４７】
[0061]  予測子、量子化器、および再構成器コンポーネント１２５によって行われる、上述された、予測、量子化、および再構成への例示的なアプローチが、単に例示であること、および他のアプローチが実現され得ることに留意されたい。予測子、量子化器、および再構成器コンポーネント１２５が、予測、量子化、および／または再構成を行うための（１つまたは複数の）サブコンポーネントを含み得ることもまた、留意されたい。予測、量子化、および／または再構成が、予測子、量子化器、および再構成器コンポーネント１２５の代わりにいくつかの別個のエンコーダコンポーネントによって行われ得ることに、さらに留意されたい。
【００４８】
[0062]  ラインバッファ１３０は、予測子、量子化器、および再構成器コンポーネント１２５ならびにインデックス付けされた色履歴１３５がバッファされたビデオデータを使用することができるように、予測子、量子化器、および再構成器コンポーネント１２５からの出力を保持する。インデックス付けされた色履歴１３５は、直近に使用されたピクセル値を記憶する。これらの直近に使用されたピクセル値は、専用シンタックス（dedicated syntax）を介してビデオエンコーダ２０によって直接参照されることができる。
【００４９】
[0063]  エントロピーエンコーダ１４０は、平面検出器１１５によって識別された平面遷移（flatness transition）およびインデックス付けされた色履歴１３５に基づいて予測子、量子化器、および再構成器コンポーネント１２５から受信された予測残差および任意の他のデータ（例えば、予測子、量子化器、および再構成器コンポーネント１２５によって識別されたインデックス）を符号化する。いくつかの例において、エントロピーエンコーダ１４０は、サブストリームエンコーダごとのクロックにつき３つのサンプルを符号化し得る。サブストリーム多重化装置１４５は、ヘッダレスパケット多重化方式（headerless packet multiplexing scheme）に基づいてビットストリームを多重化し得る。このことは、ビデオデコーダ３０が並行して３つのエントロピーデコーダを作動させることを可能にし、クロックごとに３つのピクセルの復号を容易にする。サブストリーム多重化装置１４５は、パケットがビデオデコーダ３０によって効率的に復号されることができるように、パケット順序を最適化し得る。クロックごとに２の累乗ピクセル（例えば、２ピクセル／クロックまたは４ピクセル／クロック）の復号を容易にし得る、エントロピーコード化への異なるアプローチが実現され得ることに留意されたい。
ＤＳＣビデオデコーダ
[0064]  図２Ｂは、この開示に説明される態様に従って技法を実現し得るビデオデコーダ３０の例を例示するブロック図である。ビデオデコーダ３０は、この開示の技法のいくつかまたは全てを行うように構成され得る。いくつかの例において、この開示に説明される技法は、ビデオデコーダ３０の様々なコンポーネントの間で共有され得る。いくつかの例において、追加としてまたは代替として、プロセッサ（示されていない）は、本開示に説明される技法のいくつかまたは全てを行うように構成され得る。
【００５０】
[0065]  説明の目的のために、この開示は、ＤＳＣコード化の関連でビデオデコーダ３０を説明する。しかしながら、この開示の技法は、他のコード化規格または方法に適用可能であり得る。
【００５１】
[0066]  図２Ｂの例において、ビデオデコーダ３０は、複数の機能コンポーネントを含む。ビデオデコーダ３０の機能コンポーネントは、レートバッファ１５５、サブストリーム多重分離装置１６０、エントロピーデコーダ１６５、レートコントローラ１７０、予測子、量子化器、および再構成器コンポーネント１７５、インデックス付けされた色履歴１８０、ラインバッファ１８５、および色空間変換器１９０を含む。ビデオデコーダ３０の例示されたコンポーネントは、図２Ａのビデオエンコーダ２０を参照して上述された対応するコンポーネントに似ている。このようにして、ビデオデコーダ３０のコンポーネントの各々は、上述されたビデオエンコーダ２０の対応するコンポーネントに類似の方法で動作し得る。
量子化パラメータ（ＱＰ）
[0067]  上述されたように、ビデオコード化は、例えば、予測子、量子化器、および再構成器コンポーネント１２５を介したビデオデータの量子化を含み得る。量子化は、信号にロスを導入し得、ロスの量は、レートコントローラ１２０によって決定されるＱＰによって制御されることができる。ＱＰごとの量子化ステップサイズを記憶するよりはむしろ、スケーリング行列は、ＱＰの機能として特定され得る。ＱＰごとの量子化ステップサイズは、スケーリング行列から導かれ得、導かれた値は、必ずしも２の累乗であるというわけではない可能性があり、すなわち、導かれた値は、２の非累乗である可能性がある。
ＤＳＣにおけるスライス
[0068]  上記のように、スライスは概して、画像またはフレームにおける残りの領域からの情報を使用することなく独立して復号されることができる、画像またはフレームにおける空間的に異なる領域を指す。各画像またはビデオフレームは、単一のスライスに符号化され得、あるいは各画像またはビデオフレームは、いくつかのスライスに符号化され得る。ＤＳＣにおいて、各スライスを符号化するために割り当てられたターゲットビットは、実質的に一定であり得る。このことは、画像の高さがスライスの高さによって分けられない場合に生じることができる、部分スライスによって異なり得る。例えば、１０８のスライスの高さを持つサイズ１２８０×７２０の画像は、高さ１０８の６つのスライスと、高さ７２の１つの部分スライス（＝７２０−（６＊１０８））とを有することとなる。
【００５２】
[0069]  発展型ＤＳＣスライス寸法は、パラメータスライスＷｉｄｔｈ×スライスＨｅｉｇｈｔまたは変数を使用して特定されることができ、ここで、スライスＷｉｄｔｈおよびスライスＨｅｉｇｈｔは、設定可能である。スライスＨｅｉｇｈｔは、所望の値、例えば、１６、３２、１０８等に設定されることができる。スライスＷｉｄｔｈは、ラインにおけるスライスの数を決定するパラメータＮを使用して設定されることができ、各スライスの中のラインごとのピクセルの数が、同じ、例えば、スライスＷｉｄｔｈ＝画像Ｗｉｄｔｈ／Ｎであると仮定される。画像Ｗｉｄｔｈは、画像の幅を表すパラメータまたは変数であることができる。
スライス境界視覚アーティファクトを減らすための処理
[0070]  発展型ＤＳＣは、１つのラインにおいて複数のスライスを使用するように構成されることができる。例えば、パラメータＮは、１より大きい（すなわち、Ｎ＞１）。しかしながら、発展型ＤＳＣが１つのラインにおいて複数のスライスを使用するように構成されるとき、目に見えて分かる視覚アーティファクトは、垂直のスライス境界に現れることができる。例えば、図３Ａおよび３Ｂは、（１つまたは複数の）スライス境界にわたって生じ得る（１つまたは複数の）視覚アーティファクトを例示する。図３Ａにおいて、アーティファクト３０２は、（元のまたは再構成された画像に属さない）長円形によってマークされる。アーティファクト３０２は、図３Ｂに例示されているように、スライス境界３０４のうちの１つまたは複数の近くに生じる。いくつかの実施形態において、アーティファクト３０２は、色の不連続性（chromatic discontinuity）として現れ得る。例えば、図３Ａおよび３Ｂに例示される画像は、アーティファクト３０２のロケーションの近くの異なる陰影（different shade）の緑の階調度を示す。アーティファクト３０２は、階調度における不連続性を備え得る。
【００５３】
[0071]  これらのおよび他のチャレンジ（challenge）に対処するために、本開示の技法は、発展型ＤＳＣが１つのラインにおいて複数のスライスを使用するように設定されるとき、スライス境界にわたる視覚アーティファクトに対処することができる。例えば、ＱＰ値は、複雑な／ビジーな領域から平坦な／スムーズな領域への遷移が１つ以上のブロックの間に、または１つのブロック内に存在するかどうかに基づいて調整されることができる。技法は、様々なタイプの遷移についてチェックすることができる。例えば、技法は、遷移が、前のラインにおける最後のブロックと、同じスライス内の現在のラインにおける最初のブロックとの間に存在するか、あるいは現在のスライスの中の各ラインにおける最後のブロック内に存在するか、あるいは現在のブロックと、同じラインにおける同じスライスまたは次のスライスの中の空間的に隣接するブロックとの間に存在するかどうか等を決定し得る。複雑性値は、そのような遷移が存在するかどうかを決定するために１つ以上のブロックについて決定され得る。現在のブロックまたは他のブロックのＱＰ値は、遷移が存在するという決定に基づいて調整されることができる。例えば、ＱＰ値は、遷移が存在するとき低減されることができる。遷移を検出することおよびＱＰ値を調整することは、スライス境界にわたる視覚アーティファクトの出現を減らすことができる。ある特定の態様に関する詳細は、以下に、例えば、図３−６に関連して提供される。
【００５４】
[0072]  関連する態様において、本明細書に開示されるものは、低費用、固定レートの視覚的に無損失である圧縮（low cost, fixed rate visually lossless compression）を提供するＤＳＣコーダである。コーダは、ブロックベースのアプローチに基づいて（例えば、ブロックサイズＰ×Ｑを用いて）設計され、多くのコード化モードのうちの１つ以上を用いて実現され得る。例えば、ブロックごとに利用可能なコード化オプションは、変換モード（例えば、ＤＣＴ、アダマール）、ブロック予測モード、差分パルス符号変調（ＤＰＣＭ：differential pulse-code modulation）モード、パターンモード、中点予測（ＭＰＰ：mid-point prediction）モード、および／または中点予測フォールバック（ＭＰＰＦ：mid-point predication fall back）モードを含む。いくつかのコード化モードは、異なるタイプのコンテンツまたは画像を圧縮するためのコーダにおいて使用され得る。例えば、自然画像（natural image）が変換モードにより多く依存し得る一方、レンダリングされたテキストを包含する画像は、パターンモードを大いに利用し得る。
【００５５】
[0073]  さらに関連する態様において、コード化モードは、候補モードのレートとひずみとの両方を考慮することにより、ブロックごとに（１つまたは複数の）最適なモードを選択するためのレート制御技法に基づいて、複数の候補コード化モードの中からブロックごとに選択され、利用され得る。レート制御技法は、バッファモデルを利用することを含み得、コーデックの設計検討は、バッファが（例えば、バッファにおいて０ビットより少ない）アンダーフロー、または（例えば、バッファサイズが設定された／定義された最大のサイズを超えて増大した）オーバーフローの状態でないことを確実にすることを含み得る。
【００５６】
[0074]  様々な例が、スライス境界にわたる視覚アーティファクトに対処するために以下に提供される。いくつかの例は、スライスの左側における視覚アーティファクト、スライスの右側における視覚アーティファクト等に対処することができる。ある特定の例は、スライス内の情報（例えば、ブロックそれ自体に関連する情報、空間的に隣接するブロックに関連する情報等）を考慮し得、他の例は、スライスの外の情報（例えば、空間的に隣接するスライスに関連する情報）を考慮し得る。いくつかのケースにおいて、例は、１つ以上の前のブロックに関する情報（例えば、ＱＰ、コード化に充てたビット等）を考慮することができる。
【００５７】
[0075]  例えば、以下の例１は、スライスの左側における視覚アーティファクトに対処することができ、例２−６は、スライスの右側上の視覚アーティファクトに対処することができる。例１−２および４−６は、スライス内で利用可能な情報を考慮し得、例３はまた、スライスの外（例えば、次のスライス）からの利用可能な情報を考慮し得る。例５−６は、前の１つまたは２つのブロック（例えば、前のラインにおける最後の１つまたは２つのブロック）をコード化するために使用されるＱＰおよび／またはビットを考慮することができる。
【００５８】
[0076]  いくつかの実施形態において、ＱＰ値がより低い値に設定されるか否かのインジケータは、シグナリングされる。例えば、１の値は、ＱＰ値が下げられるべきであることを示すことができ、０の値は、ＱＰ値が下げられるべきでないことを示すことができる。そのようなケースにおいて、ＱＰ値は、例えば、既定の値に基づいて、エンコーダおよびデコーダで導かれることができる。他の実施形態において、ＱＰ値それ自体が、シグナリングされることができる。
例１
[0077]  一例において、スライス境界にわたる視覚アーティファクトを訂正するまたは直すために、各ラインにおける最初のブロックのＱＰ値は、遷移が（同じスライス内の）前のラインにおける最後のブロックでの複雑な／ビジーな領域から、（同じスライス内の）現在のラインにおける最初のブロックでの平坦な／スムーズな領域に存在する場合、低減またはドロップされる。ある特定の態様に従って、最後のブロックと、最初のブロックとの両方が、同じスライス内にあることに留意することが重要である。例えば、平坦な／スムーズな領域において、ビデオデータの色または陰影は、より均一であり得る。このようにして、量子化を通したロスによって生じるあらゆる偏差およびノイズは、可視のアーティファクト（visible artifact）をもたらし得る。他方では、画像の複雑な／ビジーな領域において、小さなロスおよび偏差は、可視でない可能性がある。それゆえに、一般的に、平坦／スムーズである領域についてより低いＱＰ値を有することが必要であり得、一方複雑／ビジーである領域は、より高いＱＰ値を有し得る。
【００５９】
[0078]  いくつかの実施形態において、ブロックについてのＱＰ値は、ブロックの複雑性、前のおよび／または次のブロックのＱＰ値、ならびに／あるいは、前のおよび／または次のブロックをコード化するために使用されるビットの数に基づいて設定され得る。例えば、前のブロックをコード化するために使用されるビットの数が、前のブロックのＱＰ値に基づくビットの予期された数より多かった場合、現在のブロックのＱＰ値は、現在のブロックをコード化するために必要とされるだろうビットの数を減らすために上げられ得る。他方では、前のブロックをコード化するために使用されるビットの数が、ビットの予期された数より少なかった場合、現在のブロックのＱＰ値は、下げられ得る。
【００６０】
[0079]  しかしながら、ライン上のスライスの最初のブロックまたは最後のブロックであるブロックについて、前のおよび／または次のブロックは、それらが異なるスライスの一部であるため、利用可能でない可能性がある。ブロックが、スライス境界遷移で位置する場合（例えば、特定のライン上のスライスの最初または最後のブロック）、視覚アーティファクトを防ぐために遷移にわたって均一のＱＰ値を維持することが重要である。スライスの境界ブロックおよびそれらの隣接するブロックが均一に平坦／スムーズまたは複雑／ビジーであるとき、境界ブロックのＱＰ値は、適切に低いまたは高い値に設定され得る。しかしながら、複雑／ビジーとスムーズ／平坦との間の遷移が境界ブロックの近くで生じる場合、ブロックのＱＰは、それが通常のＱＰ値設定方法を使用しているほど低く設定されない可能性がある。代わりに、ビデオデータにおける視覚アーティファクトの出現を避けるために、既定の低い値に境界ブロックのＱＰ値を設定する、特別なケースが、認識され得る。
【００６１】
[0080]  図４は、スライスにおける前のブロックおよび現在のブロックを示す。前のブロックは、前のラインにおける最後のブロックであり、現在のブロックは、現在のラインにおける最初のブロックである。各ラインにおける最初のブロック（Ｃｕｒ）のＱＰ値は、前のラインにおける最後のブロック（Ｐｒｅｖ）における複雑な領域から最初のブロック（Ｃｕｒ）における平坦な領域への視覚的な遷移（visual transition）が存在するとき、低い値に設定される。このことは、いくつかの実施形態において、ビデオデータにおいて空間的に前のブロック（例えば、前のスライスからの現在のライン上の最後のブロック）が、（例えば、各スライスがビデオデータにおける他のスライスからの任意の情報なしに独立して符号化されるため）利用可能でないため、なされ得る。
【００６２】
[0081]  視覚的な遷移を分析または決定するために、前のラインにおける最後のブロックおよび現在のラインにおける最初のブロックの複雑性値は、算出され得る。上述されたように、ブロックの複雑性値は、ブロック内のピクセル値の空間周波数および／またはテクスチャを代表し得る。一実施形態において、複雑性値は、２０１５年４月１３日に出願された米国特許出願第１４／６８５、４７９号（代理人整理番号：ＱＶＩＤ．２２１Ａ／１４４５６８）に説明されるように算出されることができ、それは、その全体が参照によって本明細書に組み込まれている。両方のブロックの複雑性値は、遷移が生じたか否かを決定するために比較されることができる。遷移が検出される場合、最初のブロックのＱＰ値は、コーデックによって、既定のより低い値に設定され、そうでなければ、ＱＰ値は、既定のより低い値に設定されない。
【００６３】
[0082]  遷移を識別するための疑似コードは、表１に説明され、ここで、ブール変数ｉｓＣｏｍｐｌｅｘＴｏＦｌａｔは、最終結果（end result）（例えば、遷移が生じたか否か）を記憶し、Ｔ１およびＴ２は、既定のしきい値パラメータである。変数ｃｕｒＢｌｏｃｋＣｏｍｐおよびｐｒｅｖＢｌｏｃｋＣｏｍｐは、現在のブロックおよび前のブロックの複雑性値である。
【００６４】
【表１】
2018534875.tif 000003
【００６５】
表１−例１についての疑似コード
上記の実施形態において、厳密な不等式（strict inequalities）の代わりに、非厳密な不等式が使用され得、例えば、「＜」は、「＜＝」によって置き換えられることができ、「＞」は、「＞＝」によって置き換えられることができる。
【００６６】
[0083]  いくつかの実施形態において、ラインにおける最初のブロックのＱＰ値は、Ｐｒｅｖブロックでなく、Ｃｕｒブロックの複雑性にのみ基づいて設定され得る。いくつかの実施形態において、異なるＱＰ値に対応する、異なるしきい値は、使用され得る。例えば、ブロックの複雑性が「とても平坦」に対応する第１のしきい値より低い場合、ブロックは、第１のＱＰ値に調整され得る。他方では、ブロックが、第１のしきい値より高いが、「やや平坦」に対応する第２のしきい値より低い複雑性値を有する場合、ブロックは、第１のＱＰ値より高い、第２の、異なるＱＰ値に調整され得る。
例２
[0084]  スライス境界アーティファクトを訂正するまたは直すために、例えば、画像境界で、またはスライスの中の各ラインにおける最後のブロックで、各ラインにおける最後のブロックのＱＰは、ある特定の条件が満たされるとき、低減される。一実施形態において、条件は、最後のブロックが複雑な領域から平坦な領域への遷移を包含するかどうかをチェックしている可能性がある。図５は、スライスの中のラインにおける最後のブロックである現在のブロックを示す。各ラインにおける最後のブロック（Ｃｕｒ）のＱＰ値は、Ｃｕｒブロックの複雑性値が、ある特定の既定のしきい値より低いとき、低い値に設定される。別の実施形態において、前のブロック（例えば、ラインにおける第２から最後のブロック）と最後のブロックとの両方は、遷移を識別するために使用され得る。
【００６７】
[0085]  各ラインにおける最後のブロックの複雑性値は、この遷移を検出するために使用される可能性がある。例えば、各ラインにおける最後のブロックの複雑性値がある特定のしきい値より少ない場合、それは、遷移が存在し得ると結論を出されることができる。さらに、遷移が検出される場合、各ラインにおける最後のブロックのＱＰ値は、コーデックによって既定のより低い値に設定されることができ、そうでなければ、ＱＰ値は、既定の値に設定されない。複雑性値は、例えば、変換係数に基づいて、２０１５年４月１３日に出願された米国特許出願第１４／６８５、４７９号（代理人整理番号：ＱＶＩＤ．２２１Ａ／１４４５６８）に説明されるように算出されることができる。ブロックの複雑性値が変換ドメインで算出され得る場合、ブロックにおける遷移は、算出された複雑性値に基づいて検出され得る。
【００６８】
[0086]  疑似コードは、表２に説明され、ここで、（例えば、遷移がブロック内で生じたか否かの）ブール変数ｉｓＬａｓｔＢｌｏｃｋＦｌａｔは、最終結果を記憶し、Ｔ３は、既定のしきい値パラメータである。変数ｃｕｒＢｌｏｃｋＣｏｍｐは、現在のブロックの複雑性値である。
【００６９】
【表２】
2018534875.tif 000004
【００７０】
表２−例２についての疑似コード
上記の実施形態において、厳密な不等式の代わりに、非厳密な不等式が使用され得る。
例３
[0087]  いくつかの実施形態において、各スライスは、フレーム内の他のスライスのあらゆる知識（knowledge）なしで、独立してコード化される。しかしながら、他の実施形態において、他のスライスからの情報は、現在のスライスをコード化するとき利用可能であり得る。そのようなケースにおいて、スライスの各ラインにおける最後のブロックの複雑性のみをチェックする代わりに、空間的に隣接するスライスの中の同じラインにおける最初のブロックの複雑性値はまた、複雑な領域から平坦な領域への遷移を識別するために使用され得る。図６は、現在のスライスにおける最後のブロック（Ｃｕｒ）および次のスライスにおける最初のブロック（Ｎｅｘｔ）を示す。スライス２における最初のブロック（Ｎｅｘｔ）は、スライス１における最後のブロック（Ｃｕｒ）とともに使用されることができる。各ラインにおける最後のブロック（Ｃｕｒ）のＱＰ値は、複雑／ビジーな領域と平坦な領域との間で遷移が存在するとき、低い値に設定される。「Ｎｅｘｔ」ブロックは、空間的に隣接するスライスの中の「Ｃｕｒ」ブロックと同じラインにおける最初のブロックを指す。「Ｃｕｒ」ブロックのＱＰを低減するための決定は、「Ｃｕｒ」および「Ｎｅｘｔ」ブロック複雑性値に基づいてなされることができる。ある特定の態様に従って、エンコーダだけが、隣接するスライスの中の「Ｎｅｘｔ」ブロックにアクセスする必要があることに留意することが重要である。例えば、デコーダは、それを必要とせず、一般的に、（例えば、ＱＰ値がより低い値に設定されているか否かの）決定がデコーダに明確にシグナリングされるため、「Ｎｅｘｔ」ブロックにおいて元のサンプル値を有することとならない。「Ｃｕｒ」ブロックのＱＰ値は、複雑な領域から平坦な領域への遷移が存在するとき、コーデックによる既定の値である、より低い値に設定されることができる。遷移は、２０１５年４月１３日に出願された米国特許出願第１４／６８５、４７９号（代理人整理番号：ＱＶＩＤ．２２１Ａ／１４４５６８）に説明されるような方法を使用して、「Ｎｅｘｔ」および「Ｃｕｒ」ブロック値の複雑性値に基づいて識別されることができる。空間的に隣接するスライスにおける「Ｎｅｘｔ」ブロックが、例えば、画像境界で利用可能でないケースにおいて、ＱＰを調整するかどうかの決定は、前に説明されたように「Ｃｕｒ」ブロックにのみ基づいてなされることができる。
例４
[0088]  いくつかの実施形態において、「Ｃｕｒ」および「Ｎｅｘｔ」ブロックに加えて、「Ｐｒｅｖ」ブロック情報もまた、複雑な領域から平坦な領域への遷移が検出される場合、最後のブロック（「Ｃｕｒ」）のＱＰ値がコーデックによって、既定されたより低い値に設定されるべきかどうかを決定するために使用され得る。図６は、現在のスライスにおける最後のブロック（Ｃｕｒ）より前であるブロック（Ｐｒｅｖ）も示す。「Ｐｒｅｖ」ブロックは、現在のスライスの中の各ラインにおける最後のブロック（「Ｃｕｒ」）の前の同じラインにおける空間的に隣接するブロックを指し得る。「Ｃｕｒ」ブロックのＱＰを低減するための決定は、「Ｐｒｅｖ」、「Ｃｕｒ」および「Ｎｅｘｔ」ブロック複雑性値に基づいてなされることができる。複雑な領域から平坦な領域への遷移は、２０１５年４月１３日に出願された米国特許出願第１４／６８５、４７９号（代理人整理番号：ＱＶＩＤ．２２１Ａ／１４４５６８）に説明される方法のように、Ｐｒｅｖ、Ｃｕｒ、およびＮｅｘｔブロックの複雑性値に基づいて決定されることができる。
例５
[0089]  ある特定の実施形態において、所与のラインにおける最後のブロックのＱＰ値が、より低い値に設定される場合、同じスライスの中の次のラインにおける最初のブロックのＱＰ値は、「Ｃｕｒ」ブロックをコード化することに充てられたビットおよびＱＰ値を使用する代わりに、「Ｐｒｅｖ」ブロックをコード化することに充てらされたビットおよび「Ｐｒｅｖ」ブロックのＱＰ値に基づいて算出され得る。「Ｐｒｅｖ」および「Ｃｕｒ」ブロックは、図６に示されているようであり得る。このことは、現在のラインにおける最初の数ブロックおよび前のラインにおける最後の数ブロックが複雑であるとき、または、スライスの各ラインにおける最後のブロックを除く全スライスが複雑であるとき、ビットを節約するために、またバッファオーバーフローを避けるためになされ得る。このようにして、次のラインの最初のブロックが現在のライン上の最後のブロックに基づいて低いＱＰ値を有することは、不必要であり得る。代わりに、「Ｐｒｅｖ」ブロック（現在のライン上の第２から最後のブロック）上の次のラインの最初のブロックのＱＰ値をバイアスすることによって、ブロックのＱＰ値は、より適切な値に設定されている可能性がある。
例６
[0090]  いくつかの実施形態において、同じスライスの中の次のラインにおける最初のブロックのＱＰ値は、例えば、所与のラインにおける最後のブロックのＱＰ値がより低い値に設定される場合、「Ｃｕｒ」ブロックと「Ｐｒｅｖ」ブロックとの両方に基づいて算出され得る。例えば、ＱＰ値は、「Ｐｒｅｖ」ブロックと「Ｃｕｒ」ブロックの平均ＱＰ値および「Ｐｒｅｖ」ブロックと「Ｃｕｒ」ブロックをコード化することに充てられた平均ビットに基づき得る。他の実施形態において、ＱＰ値は、「Ｐｒｅｖ」ブロックのＱＰ値および「Ｃｕｒ」ブロックをコード化することに充てられたビットに基づいて算出され得る。ある特定の態様に従って、バッファ占有量、スライス中にとどまるビット、平面情報等のような他の情報はまた、例えば、前にコード化されたブロックのＱＰ情報および充てられたビットを使用することに加えて、ＱＰを算出する間、または算出する際に使用され得る。
【００７１】
[0091]  この開示に説明された全ての例および実施形態は、実施形態に依存して、離れてまたは組み合わせて実現され得る。例および実施形態のある特定の特徴は、省略または変更され得、他の特徴は、実施形態に依存して、例および実施形態に追加され得る。
プロセスフロー
[0092]  図７は、いくつかの実施形態に従って、ビデオデータを符号化するときに量子化パラメータを調整するための例示的なプロセスのフローチャートを例示する。ブロック７０２において、エンコーダは、コード化されるべきビデオデータを受信する。ビデオデータは、複数のスライスを備え、スライスは、１つ以上のラインに配置される１つ以上のブロックを含む。各ラインは、複数のスライスからのブロックを含む。例えば、各ラインは、複数のスライスに及び得、複数のスライスの各々は、各ラインに沿って１つ以上のブロックを備える。ブロック７０４において、復号されるべき現在のブロックは、識別され、現在のブロックは、特定のライン上のスライスの最初または最後のブロックに対応する。例えば、図４に例示されているように、現在のブロックは、そのスライスにおける特定のライン上の最初のブロックに対応し得る。他方では、図５に例示されているように、現在のブロックは、特定のライン上のスライスの最後のブロックに対応し得る。
【００７２】
[0093]  ブロック７０６において、決定は、複雑な領域と平坦な領域との間の遷移が現在のブロックおよび／または現在のブロックの１つ以上の隣接するブロックに関連付けられるかどうかに関してなされる。いくつかの実施形態において、決定は、遷移が現在のブロック内で生じるかどうかを決定することを備え得る。例えば、遷移は、現在のブロックがしきい値より少ない複雑性値を有する（例えば、平坦である）場合、現在のブロック内で生じるとして検出され得る。いくつかの実施形態において、遷移は、現在のブロックが特定のライン上のスライスの最後のブロックに対応する場合にのみ現在のブロック内で検出され得る。
【００７３】
[0094]  いくつかの実施形態において、現在のブロックがライン上のスライスの最初のブロックである場合、決定は、現在のブロックと、前のライン上のスライスの最後のブロック（例えば、前のブロック）に対応する隣接するブロックとの間に遷移が存在するかどうかに関してなされ得る。遷移が生じているという決定は、現在のブロックの複雑性が第１のしきい値より低い（例えば、平坦である）こと、および隣接するブロックの複雑性が第２のしきい値より大きい（例えば、複雑である）ことを決定することを備え得る。
【００７４】
[0095]  いくつかの実施形態において、決定は、現在のブロックと、同じライン上の同じスライスの前のブロックに対応する隣接するブロック（例えば、前のブロック）との間に遷移が存在するかどうかを決定することを備え得る。例えば、現在のブロックが第１のしきい値より低い複雑性値を有し、前のブロックが第２のしきい値より高い複雑性値を有する場合、遷移は、生じていることを決定され得る。
【００７５】
[0096]  現在のスライスを符号化するときに他のスライスからの情報が利用可能である、および現在のブロックがライン上のスライスの最後のブロックである、いくつかの実施形態において、決定は、現在のブロックと、同じライン上の後続のスライスの最初のブロックに対応する隣接するブロック（例えば、次のブロック）との間に遷移が存在するかどうかを決定することを備え得る。いくつかの実施形態において、決定は、現在のブロック、前のブロック、および次のブロックのうちのいずれかの間で遷移を決定することを備え得る。
【００７６】
[0097]  現在のブロックと関連付けられる遷移が存在することが決定される場合、ブロック７０８において、現在のブロックのＱＰは、調整され（例えば、下げられ）得る。例えば、ブロックのＱＰは、既定の値に設定され得る。他方では、遷移が生じていないことが決定される場合、現在のブロックのＱＰは、（例えば、複雑性、ＱＰ値、および／または前のブロックをコード化するために使用されたビットの数に基づいて）正常に決定され得る。
【００７７】
[0098]  図８は、いくつかの実施形態に従って、ビデオデータを符号化するときに量子化パラメータを調整するための、別の例示的なプロセスについてのフローチャートを例示する。ブロック８０２において、エンコーダは、コード化されるべきビデオデータを受信する。ビデオデータは、複数のスライスを備え得、各スライスは、１つ以上のラインに配置される１つ以上のブロックを含む。
【００７８】
[0099]  ブロック８０４において、特定のライン上のスライスの最後のブロックのＱＰ値は、調整され得る。いくつかの実施形態において、最後のブロックのＱＰ値は、ライン上のスライスの最後のブロックと関連付けられる、検出された遷移（例えば、複雑な領域と平坦な領域との間の遷移）に基づいて調整され得る。いくつかの実施形態において、遷移は、ライン上のスライスの最後のブロックと、同じライン上の前のブロックとに基づいて、最後のブロックと、後続のスライスにおけるライン上の次のブロックとに基づいて、および／またはそれらのいくつかの組み合わせに基づいて、ライン上のスライスの最後のブロック内で決定され得る。
【００７９】
[0100]  ブロック８０６において、エンコーダは、ライン上のスライスの第２から最後のブロック（例えば、前のブロック）のＱＰ値、および／または第２から最後のブロックをコード化するために使用されたビットの数に基づいて、後続のライン上のスライスの最初のブロックのＱＰ値を設定する。ライン上のスライスの最後のブロックのＱＰ値が、遷移の検出のため、既定値に下げられたため、最後のブロック上の後続のラインの最初のブロックのＱＰ値をベースとすることは、必要とされるより低いＱＰ値をもたらし得、潜在的に、より多くのビットがブロックをコード化するときに使用される。それゆえに、後続のライン上の最初のブロックのＱＰ値は、最後のブロックの代わりにライン上の第２から最後のブロックのそれに基づき得る。いくつかの実施形態において、第２から最後のブロックをコード化するために使用されるビットの数もまた、考慮され得る。例えば、第２から最後のブロックをコード化するために使用されるビットの数が（例えば、第２から最後のブロックのＱＰ値および複雑性に基づいて）予期されるより高かった場合、後続のラインの最初のブロックについて決定されたＱＰ値は、より高い、およびその逆の場合も同じであり得る。
【００８０】
[0101]  いくつかの実施形態において、最初のブロックのＱＰ値は、最後のブロックと、ライン上のスライスの第２から最後のブロックとの両方に基づき得る。例えば、ＱＰ値は、最後のブロックと、第２から最後のブロックとをコード化するために使用されるビットの平均数および／または平均ＱＰ値に基づき得る。いくつかの実施形態において、最初のブロックのＱＰ値は、第２から最後のブロックのＱＰ値と、最後のブロックをコード化するために使用されるビットの数に基づき得る。
【００８１】
[0102]  図９は、いくつかの実施形態に従って、ビデオデータを復号するための例示的なプロセスのフローチャートを例示する。ブロック９０２において、デコーダは、復号されるべきビデオデータに対応するビットストリームを受信する。ビデオデータは、複数のスライスに対応し得、各スライスは、１つ以上のラインに配置される複数のブロックを含む。
【００８２】
[0103]  ブロック９０４において、デコーダは、ビデオデータのスライスの現在のブロックのＱＰを調整するかどうかのインジケーションを受信する。いくつかの実施形態において、現在のブロックは、特定のライン上のスライスの最後のブロック、または特定のライン上のスライスの最初のブロックに対応し得る。ブロック９０６において、デコーダは、受信されたインジケーションに基づいて現在のブロックのＱＰを調整する。
他の考察
[0104]  この開示の態様が、図２Ａのビデオエンコーダ２０のような、エンコーダの観点から説明されてきたことに留意されたい。しかしながら、当業者は、上述されたそれらに対する逆作動（reverse operation）が例えば、図２Ｂのビデオデコーダ３０によって、生成されたビットストリームを復号するために適用され得ることを理解するであろう。
【００８３】
[0105]  本明細書に開示された情報および信号は、様々な異なる技術および技法のうちのいずれかを使用して表され得る。例えば、上記の説明全体を通じて参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場または磁性粒子、光場または光粒子、あるいはそれらの任意の組み合わせによって表され得る。
【００８４】
[0106]  本明細書に開示された実施形態に関連して説明された様々な例示的な論理ブロック、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組み合わせとして実装され得る。ハードウェアおよびソフトウェアのこの互換性を明確に例示するために、様々な例示的なコンポーネント、ブロック、およびステップが、一般的にそれらの機能の観点から上述されてきた。このような機能が、ハードウェアまたはソフトウェアとして実装されるかどうかは、特定のアプリケーションおよびシステム全体に課せられる設計制約に依存する。当業者は、説明された機能を特定のアプリケーションごとに様々な方法で実現し得るが、そのような実現の決定は、本開示の範囲からの逸脱を生じるものと解釈されるべきではない。
【００８５】
[0107]  本明細書に説明された技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせにおいて実現され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセット、自動車、電気器具（appliance）、ウェアラブルなもの、および／または他のデバイスにおけるアプリケーションを含む複数の用途（multiple uses）を有する集積回路デバイスのような様々なデバイスのうちのいずれかにおいて実装され得る。デバイスまたはコンポーネントとして説明された任意の特徴は、集積論理デバイスにおいて共に、または離散的でありながらも相互運用可能な論理デバイスとして別々に、実装され得る。ソフトウェアで実装される場合、本技法は少なくとも一部が、実行されると上述された方法のうちの１つ以上を行う命令を含むプログラムコードを備える、コンピュータ読み取り可能なデータ記憶媒体によって実現され得る。コンピュータ読み取り可能なデータ記憶媒体は、パッケージングマテリアルを含み得る、コンピュータプログラム製品の一部を形成し得る。コンピュータ読み取り可能な媒体は、同期動的ランダムアクセスメモリ（ＳＤＲＡＭ：synchronous dynamic random access memory）、読み取り専用メモリ（ＲＯＭ：read-only memory）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ：non-volatile random access memory）、電気的に消去可能なプログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ（登録商標）：electrically erasable programmable read-only memory）、ＦＬＡＳＨメモリ、磁器または光学データ記憶媒体、および同様のもののような、ランダムアクセスメモリ（ＲＡＭ：random access memory）のような、メモリまたはデータ記憶媒体を備え得る。追加として、または代替として、本技法は少なくとも一部が、命令またはデータ構造の形式でプログラムコードを搬送または通信し、かつ、伝搬される信号または波動のような、コンピュータによってアクセスされ、読み取られ、および／または実行されることができるコンピュータ読み取り可能な通信媒体によって実現され得る。
【００８６】
[0108]  プログラムコードは、プロセッサによって実行され得、それは、１つ以上のデジタルシグナルプロセッサ（ＤＳＰ）のような、１つ以上のプロセッサ、汎用マイクロプロセッサ、特定用途集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ：field programmable logic array）、または他の同等な集積または離散論理回路を含み得る。そのようなプロセッサは、本開示に説明された技法のうちのいずれかを実行するように構成され得る。汎用プロセッサは、マイクロプロセッサであり得るが、代替において、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであり得る。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、ＤＳＰとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアと関連した１つ以上のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。それ故に、本明細書で使用される場合、「プロセッサ」という用語は、前述の構造、前述の構造の任意の組み合わせ、あるいは本明細書に説明された技法の実現に適した任意の他の構造または装置のうちのいずれかを指し得る。加えて、いくつかの態様において、本明細書に説明された機能は、符号化および復号のために構成された専用ソフトウェアまたはハードウェア内で提供され得る、または組み合わせられたビデオエンコーダ−デコーダ（ＣＯＤＥＣ）に組み込まれ得る。また、技法は、１つ以上の回路または論理要素において十分に実装されることができる。
【００８７】
[0109]  本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ：integrated circuit）またはＩＣのセット（例えば、チップセット）を含む、幅広い種類のデバイスまたは装置において実装され得る。様々なコンポーネント、またはユニットは、開示された技法を行うように構成されるデバイスの機能的な態様を強調するためにこの開示において説明されたが、必ずしも異なるハードウェアユニットによる実現を必要とするわけではない。むしろ、上述されたように、様々なユニットは、コデックハードウェアユニットに組み合わせられ得るか、適したソフトウェアおよび／またはファームウェアと併せて、上述された１つ以上のプロセッサを含む、相互運用するハードウェアユニットの集合によって提供され得る。
【００８８】
[0110]  前述のものは、様々な異なる実施形態に関連して説明されてきたが、１つの実施形態からの特徴、または要素は、この開示の教示から逸脱することなく他の実施形態と組み合わせられ得る。しかしながら、それぞれの実施形態の間の特徴の組み合わせは、必ずしも、それらに限定されるというわけではない。本開示の様々な実施形態が、説明されてきた。これらの実施形態および他の実施形態は、以下に続く特許請求の範囲の範囲内にある。
【図１Ａ】
2018534875.tif 000005
【図１Ｂ】
2018534875.tif 000006
【図２Ａ】
2018534875.tif 000007
【図２Ｂ】
2018534875.tif 000008
【図３Ａ】
2018534875.tif 000009
【図３Ｂ】
2018534875.tif 000010
【図４】
2018534875.tif 000011
【図５】
2018534875.tif 000012
【図６】
2018534875.tif 000013
【図７】
2018534875.tif 000014
【図８】
2018534875.tif 000015
【図９】
2018534875.tif 000016
【国際調査報告】
2018534875.tif 000017
2018534875.tif 000018
2018534875.tif 000019