(57)【要約】ディスプレイストリーム圧縮（ＳＣ）のための量子化パラメータ（ＱＰ）更新分類技法が開示される。一態様では、量子化パラメータ（ＱＰ）値を決定するための方法は、現在ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定することと、前ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定することとを含む。方法はまた、前ブロック及び現在ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかに基づいて、現在ブロックについてのＱＰ調整値を算出するためにデフォルト技法又は代替技法を選択することを含み得る。【選択図】  図１１
2018515015.tif 000002
【特許請求の範囲】
【請求項１】
量子化パラメータ（ＱＰ）値を決定するための方法であって、
現在ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定することと、
前ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定することと、
前記現在ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのうちの少なくとも１つであると決定することに応答して、前記現在ブロックについてのＱＰ調整値を算出するためにデフォルト技法を選択することと、
（ｉ）前記現在ブロックが平坦領域から複雑領域への遷移を含まず平坦ブロックでもないこと、かつ、（ｉｉ）前記前ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのどちらか一方であることを決定することに応答して、前記現在ブロックについての前記ＱＰ調整値を算出するために代替技法を選択することと、
前記選択された技法を介して、前記現在ブロックについての前記ＱＰ調整値を算出することと、
前記ＱＰ調整値に基づいて、前記現在ブロックについての前記ＱＰ値を決定することと
を備える方法。
【請求項２】
前記前ブロック、前記現在ブロック、及び前記次ブロックの各々についての複雑性値を決定すること
を更に備え
前記現在ブロックが平坦領域から複雑領域への遷移を含むかどうかを前記決定することは、前記前ブロック、前記現在ブロック、及び前記次ブロックの前記複雑性値に基づく、
請求項１に記載の方法。
【請求項３】
前記現在ブロックが平坦領域から複雑領域への遷移を含むかどうかを前記決定することは、（ｉ）前記前ブロックの前記複雑性値が複雑性閾値未満であること、かつ、（ｉｉ）前記現在ブロックの前記複雑性値が前記複雑性閾値以上であることに基づく、請求項２に記載の方法。
【請求項４】
（ｉ）前記現在ブロックが平坦領域から複雑領域への遷移を含まず平坦ブロックでもないこと、かつ、（ｉｉ）前記前ブロックが少なくとも平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのうちの１つであることを決定することに応答して、前記代替技法を介して、規定数の連続したブロックについての複数のＱＰ調整値を決定すること
を更に備える、請求項１に記載の方法。
【請求項５】
前記規定数の連続したブロックのうちの１つが平坦ブロックであるか又は複雑領域から平坦領域への遷移を含むかどうかを決定することと、
前記規定数の連続したブロックのうちの前記１つが平坦ブロックである又は複雑領域から平坦領域への遷移を含むと決定することに応答して、前記代替技法を介した前記規定数の連続したブロックについての前記ＱＰ調整値の前記決定を終了することと
を更に備える、請求項４に記載の方法。
【請求項６】
前記方法は、
前記前ブロックをコード化するのに必要とされたビット数と、前記現在ブロックについてのターゲットビット数との差分を決定すること
を更に備え、
前記ビット数の差分が正の場合、前記代替技法を介して算出される前記ＱＰ調整値は、前記デフォルト技法を介して算出される前記ＱＰ調整値よりも大きい、
請求項１に記載の方法。
【請求項７】
前記ビット数の差分が負又はゼロの場合、前記代替技法によって算出される前記ＱＰ調整値は、前記デフォルト技法によって算出される前記ＱＰ調整値未満である、
請求項６に記載の方法。
【請求項８】
固定レートバッファでビデオデータをコード化するための量子化パラメータ（ＱＰ）値を決定するための方法であって、
前記バッファのフルネスが（ｉ）第１の上位フルネス閾値以上であるか、（ｉｉ）第１の下位フルネス閾値以下であるかを決定することと、
前記バッファの前記フルネスが前記第１の上位フルネス閾値以上であると決定することに応答して、現在ブロックについてのＱＰ調整値を算出するために第１の技法を選択することと、
前記バッファの前記フルネスが前記第１の下位フルネス閾値以下であると決定することに応答して、前記現在ブロックについての前記ＱＰ調整値を算出するために第２の技法を選択することと、
前記選択された技法を介して、前記現在ブロックについての前記ＱＰ調整値を算出することと、
前記ＱＰ調整値に基づいて、前記現在ブロックについての前記ＱＰ値を決定することと
を備える方法。
【請求項９】
前記バッファの前記フルネスが前記第１のフルネス閾値未満であり、かつ、前記第２のフルネス閾値よりも大きいと決定することに応答して、前記現在ブロックについての前記ＱＰ調整値を算出するためにデフォルト技法を選択することを更に備える、請求項８に記載の方法。
【請求項１０】
前記バッファの前記フルネスが複数の漸増する上位フルネス閾値以上であると決定することと、前記上位フルネス閾値はそれぞれ、第１のタイプの複数の技法に対応する、
前ブロックをコード化するのに必要とされたビット数と、前記現在ブロックに割り当てられたターゲットビット数との差分を決定することと
を更に備え、
前記ビット数の前記差分がゼロよりも大きいことに応答して、前記ＱＰ調整値は、前記第１の技法によって算出される、前記対応する上位フルネス閾値が漸増する順序で漸増する、
請求項８に記載の方法。
【請求項１１】
前記ビット数の前記差分がゼロ以下であることに応答して、前記ＱＰ調整値は、前記第１の技法によって算出される、前記対応する上位フルネス閾値が漸増する順序で漸減する、請求項１０に記載の方法。
【請求項１２】
前記バッファの前記フルネスが、複数の漸減する下位フルネス閾値以上であるかどうかを決定することと、前記下位フルネス閾値はそれぞれ、第２にタイプの複数の技法に対応する、
前ブロックをコード化するのに必要とされたビット数と、前記現在ブロックについてのターゲットビット数との差分を決定することと
を更に備え、
前記ビット数の前記差分がゼロよりも大きいことに応答して、前記ＱＰ調整値は、前記第２の技法によって算出される、前記対応する下位フルネス閾値が漸減する順序で漸増する、
請求項８に記載の方法。
【請求項１３】
前記ビット数の前記差分がゼロ以下であることに応答して、前記ＱＰ調整値は、前記第２の技法によって算出される、前記対応する下位フルネス閾値が漸減する順序で漸減する、請求項１２に記載の方法。
【請求項１４】
前記現在ブロックについての前記ＱＰ値を前記決定することは、
前ブロックについてのＱＰ値を受けることと、
前ブロックをコード化するのに必要とされたビット数と、前記現在ブロックについてのターゲットビット数との差分を決定することと、
前記前ブロックをコード化するのに必要とされた前記ビット数と、前記現在ブロックについての前記ターゲットビット数との前記差分が０よりも大きいことに応答して、前記前ブロックについての前記ＱＰ値と前記ＱＰ調整値との合計に基づいて、前記現在ブロックについての前記ＱＰ値を決定することと、
前記前ブロックをコード化するのに必要とされた前記ビット数と、前記現在ブロックについての前記ターゲットビット数との前記差分が０よりも大きくないことに応答して、前記前ブロックについての前記ＱＰ値と前記ＱＰ調整値との差分に基づいて、前記現在ブロックについての前記ＱＰ値を決定することと
を更に備える、請求項８に記載の方法。
【請求項１５】
前記バッファの前記フルネスを、前記第１の上位フルネス閾値と最大バッファフルネスとの間の複数の上位範囲へと分類することと、
前記バッファの前記フルネスを、前記第１の下位フルネス閾値と最小バッファフルネスとの間の複数の下位範囲へと分類することと、
前記上位範囲又は前記下位範囲のどちらに前記バッファの前記フルネスが対応するかを決定することと
を備え、
前記現在ブロックについての前記ＱＰ調整値の前記算出は、前記決定された上位範囲又は下位範囲に更に基づく、
請求項８に記載の方法。
【請求項１６】
前ブロックをコード化するのに必要とされたビット数と、前記現在ブロックについてのターゲットビット数との差分を決定することと
を更に備え、
前記現在ブロックについての前記ＱＰ調整値の前記算出は、前記前ブロックをコード化するのに必要とされた前記ビット数と、前記現在ブロックについての前記ターゲットビット数との前記差分に更に基づく、
請求項８に記載の方法。
【請求項１７】
量子化パラメータ（ＱＰ）値を決定するためのデバイスであって、
前ブロック及び現在ブロックを含むビデオデータを記憶するように構成されたメモリと、
前記メモリに結合された少なくとも１つのプロセッサ回路と
を備え、前記少なくとも１つのプロセッサ回路は、
前記現在ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定することと、
前記前ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定することと、
前記現在ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのうちの少なくとも１つであると決定することに応答して、前記現在ブロックについてのＱＰ調整値を算出するためにデフォルト技法を選択することと、
（ｉ）前記現在ブロックが平坦領域から複雑領域への遷移を含まず平坦ブロックでもないこと、かつ、（ｉｉ）前記前ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのどちらか一方であることを決定することに応答して、前記現在ブロックについての前記ＱＰ調整値を算出するために代替技法を選択することと、
前記選択された技法を介して、前記現在ブロックについての前記ＱＰ調整値を算出することと、
前記ＱＰ調整値に基づいて、前記現在ブロックについての前記ＱＰ値を決定することと
を行うように構成される、デバイス。
【請求項１８】
前記プロセッサ回路は、
前記前ブロック、前記現在ブロック、及び前記次ブロックの各々についての複雑性値を決定すること
を行うように更に構成され、
前記現在ブロックが平坦領域から複雑領域への遷移を含むかどうかを前記決定することは、前記前ブロック、前記現在ブロック、及び前記次ブロックの前記複雑性値に基づく、
請求項１７に記載のデバイス。
【請求項１９】
前記プロセッサ回路は、（ｉ）前記前ブロックの前記複雑性値が複雑性閾値未満であること、かつ、（ｉｉ）前記現在ブロックの前記複雑性値が前記複雑性閾値以上であることに基づいて、前記現在ブロックが平坦領域から複雑領域への遷移を含むかどうかを決定するように更に構成される、請求項１８に記載のデバイス。
【請求項２０】
前記プロセッサ回路は、
（ｉ）前記現在ブロックが平坦領域から複雑領域への遷移を含まず平坦ブロックでもないこと、かつ、（ｉｉ）前記前ブロックが少なくとも平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのうちの１つであることを決定することに応答して、前記代替技法を介して、規定数の連続したブロックについての複数のＱＰ調整値を決定すること
を行うように更に構成される、請求項１７に記載のデバイス。
【請求項２１】
前記プロセッサ回路は、
前記規定数の連続したブロックのうちの１つが平坦ブロックであるか又は複雑領域から平坦領域への遷移を含むかどうかを決定することと、
前記規定数の連続したブロックのうちの前記１つが平坦ブロックである又は複雑領域から平坦領域への遷移を含むと決定することに応答して、前記代替技法を介した前記規定数の連続したブロックについての前記ＱＰ調整値の前記決定を終了することと
を行うように更に構成される、請求項２０に記載のデバイス。
【請求項２２】
前記プロセッサ回路は、
前記前ブロックをコード化するのに必要とされたビット数と、前記現在ブロックについてのターゲットビット数との差分を決定すること
を行うように更に構成され、
前記ビット数の差分が正の場合、前記代替技法を介して算出される前記ＱＰ調整値は、前記デフォルト技法を介して算出される前記ＱＰ調整値よりも大きい、
請求項１７に記載のデバイス。
【請求項２３】
ビデオデータをコード化するための量子化パラメータ（ＱＰ）値を決定するためのデバイスであって、
固定レートバッファ回路と、
現在ブロックを含む前記ビデオデータを記憶するように構成されたメモリと、
前記メモリに結合された少なくとも１つのプロセッサ回路と
を備え、前記少なくとも１つのプロセッサ回路は、
前記バッファ回路のフルネスが（ｉ）第１の上位フルネス閾値以上であるか、（ｉｉ）第１の下位フルネス閾値以下であるかを決定することと、
前記バッファの前記フルネスが前記第１の上位フルネス閾値以上であると決定することに応答して、現在ブロックについてのＱＰ調整値を算出するために第１の技法を選択することと、
前記バッファの前記フルネスが前記第１の下位フルネス閾値以下であると決定することに応答して、前記現在ブロックについての前記ＱＰ調整値を算出するために第２の技法を選択することと、
前記選択された技法を介して、前記現在ブロックについての前記ＱＰ調整値を算出することと、
前記ＱＰ調整値に基づいて、前記現在ブロックについての前記ＱＰ値を決定することと
を行うように構成される、デバイス。
【請求項２４】
前記プロセッサ回路は、前記バッファの前記フルネスが前記第１のフルネス閾値未満であり、かつ、前記第２のフルネス閾値よりも大きいと決定することに応答して、前記現在ブロックについての前記ＱＰ調整値を算出するためにデフォルト技法を選択することを行うように更に構成される、請求項２３に記載のデバイス。
【請求項２５】
前記プロセッサ回路は、
前記バッファの前記フルネスが複数の漸増する上位フルネス閾値以上であると決定することと、前記上位フルネス閾値はそれぞれ、第１のタイプの複数の技法に対応する、
前ブロックをコード化するのに必要とされたビット数と、前記現在ブロックに割り当てられたターゲットビット数との差分を決定することと
を行うように更に構成され、
前記ビット数の前記差分がゼロよりも大きいことに応答して、前記プロセッサ回路は、前記第１の技法によって前記ＱＰ調整値を算出することを行うように更に構成される、前記対応する上位フルネス閾値が漸増する順序で漸増する、
請求項２３に記載のデバイス。
【請求項２６】
前記ビット数の前記差分がゼロ以下であることに応答して、前記プロセッサ回路は、前記第１の技法によって前記ＱＰ調整値を算出することを行うように更に構成される、前記対応する上位フルネス閾値が漸増する順序で漸減する、請求項２５に記載のデバイス。
【請求項２７】
前記プロセッサ回路は、
前記バッファの前記フルネスが、複数の漸減する下位フルネス閾値以上であるかどうかを決定することと、前記下位フルネス閾値はそれぞれ、第２にタイプの複数の技法に対応する、
前ブロックをコード化するのに必要とされたビット数と、前記現在ブロックについてのターゲットビット数との差分を決定することと
を行うように更に構成され、
前記ビット数の前記差分がゼロよりも大きいことに応答して、前記プロセッサ回路は、前記第２の技法によって前記ＱＰ調整値を算出することを行うように更に構成される、前記対応する下位フルネス閾値が漸減する順序で漸増する、
請求項２３に記載のデバイス。
【請求項２８】
前記ビット数の前記差分がゼロ以下であることに応答して、前記プロセッサ回路は、前記第２の技法によって前記ＱＰ調整値を算出することを行うように更に構成される、前記対応する下位フルネス閾値が漸減する順序で漸減する、請求項２７に記載のデバイス。
【請求項２９】
前記プロセッサ回路は、
前ブロックについてのＱＰ値を受け取ることと、
前ブロックをコード化するのに必要とされたビット数と、前記現在ブロックについてのターゲットビット数との差分を決定することと、
前記前ブロックをコード化するのに必要とされた前記ビット数と、前記現在ブロックについての前記ターゲットビット数との前記差分が０よりも大きいことに応答して、前記前ブロックについての前記ＱＰ値と前記ＱＰ調整値との合計に基づいて、前記現在ブロックについての前記ＱＰ値を決定することと、
前記前ブロックをコード化するのに必要とされた前記ビット数と、前記現在ブロックについての前記ターゲットビット数との前記差分が０よりも大きくないことに応答して、前記前ブロックについての前記ＱＰ値と前記ＱＰ調整値との差分に基づいて、前記現在ブロックについての前記ＱＰ値を決定することと
を行うように更に構成される、請求項２３に記載のデバイス。
【請求項３０】
前記プロセッサ回路は、
前記バッファの前記フルネスを、前記第１の上位フルネス閾値と最大バッファフルネスとの間の複数の上位範囲へと分類することと、
前記バッファの前記フルネスを、前記第１の下位フルネス閾値と最小バッファフルネスとの間の複数の下位範囲へと分類することと、
前記上位範囲又は前記下位範囲のどちらに前記バッファの前記フルネスが対応するかを決定することと
を行うように更に構成され、
前記プロセッサ回路は、前記決定された上位範囲又は下位範囲に基づいて、前記現在ブロックについての前記ＱＰ調整値を算出するように更に構成される、
請求項２３に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本開示は、ビデオコード化及び圧縮の分野に関し、そして特に、ディスプレイストリーム圧縮（ＤＳＣ）のような、ディスプレイリンクでの送信のためのビデオ圧縮に関する。
【背景技術】
【０００２】
[0002]デジタルビデオ機能は、デジタルテレビ、携帯情報端末（ＰＤＡ）、ラップトップコンピュータ、デスクトップモニタ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングデバイス、ビデオゲームコンソール、セルラ又は衛星無線電話、ビデオ電話会議デバイス、等を含む、広範囲のディスプレイに組み込まれることができる。ディスプレイリンクは、好適な発信源デバイスにディスプレイを接続するために使用される。ディスプレイリンクの帯域幅要件は、ディスプレイの解像度に比例し、故に、高解像度ディスプレイは、広帯域幅のディスプレイリンクを必要とする。いくつかのディスプレイリンクは、高解像度ディスプレイをサポートする帯域幅を有さない。より低い帯域幅のディスプレイリンクが、高解像度ディスプレイにデジタルビデオを提供するのに使用されることができるように、ビデオ圧縮が、帯域幅要件を低減するために使用されることができる。
【０００３】
[0003]画素データに対して画像圧縮を利用しようともした。しかしながら、そのようなスキームは、時に、視覚的にロスレスでなく、従来のディスプレイデバイスで実施するのが困難かつ高価であり得る。
【０００４】
[0004]ＶＥＳＡ（Video Electronics Standards Association）は、ディスプレイリンクビデオ圧縮のための規格として、ディスプレイストリーム圧縮（ＤＳＣ）を開発した。ＤＳＣのようなディスプレイリンクビデオ圧縮技法は、とりわけ、視覚的にロスレスなピクチャ品質（即ち、圧縮がアクティブであることをユーザに悟られないような品質レベルを有するピクチャ）を提供するべきである。ディスプレイリンクビデオ圧縮技法はまた、従来のハードウェアで、リアルタイムで実施するのが容易かつ高価でないスキームを提供するべきである。
【発明の概要】
【０００５】
[0005]本開示のシステム、方法、及びデバイスは各々、いくつかの革新的な態様を有し、それらのいずれもが、本明細書で開示される所望の属性を単独で担うわけではない。
【０００６】
[0006]一態様では、量子化パラメータ（ＱＰ）値を決定するための方法は、現在ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定することと、前ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定することと、現在ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのうちの少なくとも１つであると決定することに応答して、現在ブロックについてのＱＰ調整値を算出するためにデフォルト技法を選択することとを備える。方法は、（ｉ）現在ブロックが平坦領域から複雑領域への遷移を含まず平坦ブロックでもないこと、かつ（ｉｉ）前ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのどちらか一方であることを決定することに応答して、現在ブロックについてのＱＰ調整値を算出するために代替技法を選択することを更に含み得る。方法は、選択された技法を介して、現在ブロックについてのＱＰ調整値を算出することと、そのＱＰ調整値に基づいて、現在ブロックについてのＱＰ値を決定することとを更に含み得る。
【０００７】
[0007]別の態様では、固定レートバッファでビデオデータをコード化するための量子化パラメータ（ＱＰ）値を決定するための方法は、バッファのフルネスが（ｉ）第１の上位フルネス閾値以上であるか、（ｉｉ）第１の下位フルネス閾値以下であるかを決定することと、バッファのフルネスが第１の上位フルネス閾値以上であると決定することに応答して、現在ブロックについてのＱＰ調整値を算出するために第１の技法を選択することと、バッファのフルネスが第１の下位フルネス閾値以下であると決定することに応答して、現在ブロックについてのＱＰ調整値を算出するために第２の技法を選択することと、選択された技法を介して、現在ブロックについてのＱＰ調整値を算出することと、そのＱＰ調整値に基づいて、現在ブロックについてのＱＰ値を決定することとを備える。
【０００８】
[0008]別の態様では、量子化パラメータ（ＱＰ）値を決定するためのデバイスは、前ブロック及び現在ブロックを含むビデオデータを記憶するように構成されたメモリと、メモリに結合された少なくとも１つのプロセッサ回路とを備え、少なくとも１つのプロセッサ回路は、現在ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定することと、前ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定することと、現在ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのうちの少なくとも１つであると決定することに応答して、現在ブロックについてのＱＰ調整値を算出するためにデフォルト技法を選択することと、（ｉ）現在ブロックが平坦領域から複雑領域への遷移を含まず平坦ブロックでもないこと、かつ（ｉｉ）前ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのどちらか一方であることを決定することに応答して、現在ブロックについてのＱＰ調整値を算出するために代替技法を選択することと、選択された技法を介して、現在ブロックについてのＱＰ調整値を算出することと、そのＱＰ調整値に基づいて、現在ブロックについてのＱＰ値を決定することとを行うように構成される。
【０００９】
[0009]更に別の態様では、ビデオデータをコード化するための量子化パラメータ（ＱＰ）値を決定するためのデバイスは、固定レートバッファ回路と、現在ブロックを含むビデオデータを記憶するように構成されたメモリと、メモリに結合された少なくとも１つのプロセッサ回路とを備え、少なくとも１つのプロセッサ回路は、バッファ回路のフルネスが（ｉ）第１の上位フルネス閾値以上であるか、（ｉｉ）第１の下位フルネス閾値以下であるかを決定することと、バッファのフルネスが第１の上位フルネス閾値以上であると決定することに応答して、現在ブロックについてのＱＰ調整値を算出するために第１の技法を選択することと、バッファのフルネスが第１の下位フルネス閾値以下であると決定することに応答して、現在ブロックについてのＱＰ調整値を算出するために第２の技法を選択することと、選択された技法を介して、現在ブロックについてのＱＰ調整値を算出することと、そのＱＰ調整値に基づいて、現在ブロックについてのＱＰ値を決定することとを行うように構成される。
【図面の簡単な説明】
【００１０】
【図１Ａ】[0010]図１Ａは、本開示で記述される態様に係る、技法を利用し得る例となるビデオ符号化及び復号システムを例示するブロック図である。
【図１Ｂ】[0011]図１Ｂは、本開示で記述される態様に係る、技法を実行し得る別の例となるビデオ符号化及び復号システムを例示するブロック図である。
【図２Ａ】[0012]図２Ａは、本開示で記述される態様に係る、技法を実施し得るビデオエンコーダの例を例示するブロック図である。
【図２Ｂ】[0013]図２Ｂは、本開示で記述される態様に係る、技法を実施し得るビデオデコーダの例を例示するブロック図である。
【図３】[0014]図３は、量子化パラメータ（ＱＰ）調整値を決定するための例となるアプローチを示す。
【図４】[0015]図４は、画像内での例となる平坦領域から複雑領域への遷移を例示する。
【図５】[0016]図５は、ＱＰを算出するための例となる技法を例示する。
【図６】[0017]図６は、ＱＰを算出するための別の例となる技法を例示する
【図７】[0018]図７は、ＱＰを算出するための更に別の例となる技法を例示する。
【図８】[0019]図８は、ＱＰ調整値を算出する例となるアプローチを示す。
【図９】[0020]図９は、ＱＰ調整値を算出する別の例となるアプローチを示す。
【図１０】[0021]図１０は、ＱＰ調整値を算出する更に別の例となるアプローチを示す。
【図１１】[0022]図１１は、本開示で記述される態様に係る、ＱＰ調整値を算出するための方法を例示するフローチャートである。
【図１２】[0023]図１２は、本開示で記述される態様に係る、ＱＰ調整値を算出するための方法を例示するフローチャートである。
【発明の詳細な説明】
【００１１】
[0024]一般に、本開示は、ディスプレイストリーム圧縮（ＤＳＣ）のようなビデオ圧縮技法を改善する方法に関する。より具体的には、本開示は、ＱＰ調整値を算出するための好適な技法の選択を介して量子化パラメータ（ＱＰ）の更新を改善するためのシステム及び方法に関する。
【００１２】
[0025]特定の実施形態は本明細書ではＤＳＣ規格のコンテキストにおいて記述されているが、当業者であれば、本明細書で記述されるシステム及び方法が、任意の好適なビデオコード化規格に適用可能であり得ることは認識するであろう。例えば、本明細書で開示される実施形態は、国際電気通信連合（ＩＴＵ）電気通信標準化部門（ＩＴＵ−Ｔ）Ｈ．２６１、国際標準化機構／国際電気標準会議（ＩＳＯ／ＩＥＣ）ＭＰＥＧ−１（Moving Picture Experts Group-1）ビジュアル、ＩＴＵ−Ｔ Ｈ．２６２即ちＩＳＯ／ＩＥＣ ＭＰＥＧ−２ビジュアル、ＩＴＵ−Ｔ Ｈ．２６３、ＩＳＯ／ＩＥＣ ＭＰＥＧ−４ビジュアル、（ＩＳＯ／ＩＥＣ ＭＰＥＧ−４ ＡＶＣとしても知られている）ＩＴＵ−Ｔ Ｈ．２６４、高効率ビデオコード化（ＨＥＶＣ）、及びそのような規格に対する任意の拡張のうちの１つ又は複数に適用可能であり得る。本明細書で記述される技法は、固定ビットレート（ＣＢＲ）バッファモデルを組み込む規格に特に適用可能であり得る。また、本開示で記述される技法は、将来開発される規格の一部になり得る。換言すると、本開示で記述される技法は、前に開発されたビデオコード化規格、現在開発中のビデオコード化規格、及び今度のビデオコード化規格に適用可能であり得る。
【００１３】
[0026]ビデオコード化方法は、前に算出されたＱＰをＱＰ調整値で更新することで、ＱＰ値を算出し得る。ＱＰ調整値は、前ブロックと現在ブロックとの間の差分、例えば、前ブロックをコード化するのに必要とされたビットと、現在ブロックをコード化するためのターゲットビット数との間の差分、に基づいて算出され得る。
【００１４】
[0027]しかしながら、従来の技法によって決定されるＱＰ調整値は、コード化非効率をもたらし得るか、特定の状況下で顕著なアーティファクトを引き起こし得る。例えば、ＱＰ調整値を決定するための従来の技法は、画像の平坦領域から複雑領域への遷移に十分な程度にはアグレッシブではないであろう（例えば、ＱＰ調整値は、顕著なアーティファクトのないより良好なコード化効率に帰着することとなるより望ましいＱＰ調整値よりも小さいであろう）。平坦領域及び複雑領域の概念が以下でより詳細に記述されるであろう。
【００１５】
[0028]追加的に、バッファのフルネスが空であること又はフルであることの閾値内であるとき、ＱＰ調整値を算出するための従来の技法は、過度にアグレッシブであり得、これは、デコーダによって再構築される画像中にアーティファクトを引き起こす。例えば、従来の技法によって算出されるＱＰ調整値は、再構築画像中でアーティファクトが顕著になることをマスクする（mask）こととなるより望ましいＱＰ調整値よりも大きいであろう。
【００１６】
[0029]従って、本開示の態様は、少なくとも、上で示された問題を解決することに向けられている。特定の態様では、これは、上で示された問題に関連付けられ得る条件の検出又は決定と、この検出された条件下でＱＰ調整値を算出するための１つ又は複数の代替技法を適用することととを介して達成され得る。
【００１７】
ビデオコード化規格
[0030]ビデオ画像、ＴＶ画像、静止画像、又はビデオレコーダ若しくはコンピュータによって生成された画像のようなデジタル画像は、水平線状又は垂直線状に配列された画素又はサンプルを含み得る。単一画像中の画素数は典型的に、数万である。各画素は典型的に、輝度及びクロミナンス情報を含む。圧縮なしの場合、画像エンコーダから画像デコーダに伝達されるべき膨大な量の情報は、リアルタイムの画像送信を実現困難にするであろう。送信されるべき情報量を低減するために、ＪＰＥＧ、ＭＰＥＧ、及びＨ．２６３規格のような多数の異なる圧縮方法が開発されてきた。
【００１８】
[0031]ビデオコード化規格には、ＩＴＵ−Ｔ Ｈ．２６１、ＩＳＯ／ＩＥＣ ＭＰＥＧ−１ビジュアル、ＩＴＵ−Ｔ Ｈ．２６２即ちＩＳＯ／ＩＥＣ ＭＰＥＧ−２ビジュアル、ＩＴＵ−Ｔ Ｈ．２６３、ＩＳＯ／ＩＥＣ ＭＰＥＧ−４ビジュアル、（ＩＳＯ／ＩＥＣ ＭＰＥＧ−４ ＡＶＣとしても知られている）ＩＴＵ−Ｔ Ｈ．２６４、及びＨＥＶＣと、それらの規格の拡張とが含まれる。
【００１９】
[0032]加えて、ビデオコード化規格、即ちＤＳＣ、は、ＶＥＳＡによって開発されてきた。ＤＳＣ規格は、ディスプレイリンクでの送信のためにビデオを圧縮することができるビデオ圧縮規格である。ディスプレイの解像度が増加するにつれ、このディスプレイを駆動するのに必要とされるビデオデータの帯域幅が相応して増加する。いくつかのディスプレイリンクは、そのような解像度のためのディスプレイに、ビデオデータの全てを送信するだけの帯域幅を有さない可能性がある。従って、ＤＳＣ規格は、ディスプレイリンクでの相互利用可能で視覚的にロスレスな圧縮のための圧縮規格を規定する。
【００２０】
[0033]ＤＳＣ規格は、Ｈ．２６４及びＨＥＶＣのような他のビデオコード化規格とは異なる。ＤＳＣは、イントラフレーム圧縮を含むが、インターフレーム圧縮は含まず、これは、ビデオデータをコード化する際に時間情報がＤＳＣ規格によって使用されないであろうことを意味する。対照的に、他のビデオコード化規格は、それらのビデオコード化技法においてインターフレーム圧縮を用い得る。
【００２１】
ビデオコード化システム
[0034]新規なシステム、装置、及び方法の様々な態様が、添付の図面に関連して以下でより十分に記述される。しかしながら、本開示は、多くの異なる形式で具現化され得、本開示全体にわたって提示される任意の特定の構造又は機能に限定されるものとして解釈されるべきではない。むしろ、これらの態様は、本開示が徹底的かつ完全となり得、本開示の範囲を当業者に十分に伝達し得るように提供される。本明細書における教示に基づき、当業者は、本開示の範囲が、本明細書で開示される新規なシステム、装置、及び方法の任意の態様をカバーすることを、本発明の任意の他の態様から独立して実施されようとそれと組み合わせられようと、意図されることは認識するべきである。例えば、本明細書で示される任意の数の態様を使用して、装置が実施され得るか、方法が実践され得る。加えて、本開示の範囲は、本明細書で示される開示の様々な態様に加えて、又は、それ以外に、他の構造、機能性、又は構造と機能性を使用して実践されるこのような装置又は方法をカバーすることが意図されている。本明細書で開示される任意の態様が、請求項の１つ又は複数の要素によって具現化され得ることは理解されるべきである。
【００２２】
[0035]特定の態様が本明細書で記述されるが、これらの態様の多くの変形及び置換が本開示の範囲内である。好ましい態様のいくつかの利益及び利点が述べられるが、本開示の範囲は、特定の利益、用途、又は目的に限定されることを意図されない。むしろ、本開示の態様は、異なるワイヤレス技術、システム構成、ネットワーク、及び送信プロトコルに広く適用可能であることが意図されており、それらのうちのいくつかは、図において及び好ましい態様の以下の記述において例として例示される。詳細な説明及び図面は、限定するものというよりはむしろ、本開示の単なる例示であり、本開示の範囲は、添付の特許請求の範囲及びそれらの同等物によって定義されている。
【００２３】
[0036]添付の図面は例を例示している。添付の図面において参照番号で示されている要素は、以下の記述において同様の参照番号で示されている要素に対応する。本開示では、順序を示す言葉（例えば、「第１の」、「第２の」、「第３の」、等）で始まる名前を有する要素は、必ずしも、その要素が特定の順序を持つことを意味するものではない。むしろ、そのような順序を示す言葉は単に、同じ又は同様のタイプの異なる要素を参照するために使用され得る。
【００２４】
[0037]図１Ａは、本開示で記述される態様に係る、技法を利用し得る例となるビデオコード化システム１０を例示するブロック図である。本明細書で記述される使用されるように、「ビデオコーダ」又は「コーダ」という用語は、概して、ビデオエンコーダ及びビデオデコーダの両方を指す。本開示では、「ビデオコード化」又は「コード化」という用語は、概して、ビデオ符号化及びビデオ復号を指し得る。ビデオエンコーダ及びビデオデコーダに加えて、本願で記述される態様は、トランスコーダ（例えば、ビットストリームを復号し、別のビットストリームを再符号化することができるデバイス）及びミドルボックス（例えば、ビットストリームを修正、変換、及び／又は他の方法で操作することができるデバイス）のような他の関連デバイスに拡張され得る。
【００２５】
[0038]図１Ａに示されるように、ビデオコード化システム１０は、宛先デバイス１４によって後に復号されることとなる符号化済みビデオデータを生成する発信源デバイス１２を含む。図１Ａの例では、発信源デバイス１２及び宛先デバイス１４は、別個のデバイスを構成する。しかしながら、図１Ｂの例で示されるように、発信源デバイス１２及び宛先デバイス１４が同じデバイス上にあり得ること又はその一部であり得ることに留意されたい。
【００２６】
[0039]図１Ａを再度参照すると、発信源デバイス１２及び宛先デバイス１４は、それぞれ、デスクトップコンピュータ、ノートブック（例えば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンのような電話ハンドセット、いわゆる「スマート」パッド、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、車載コンピュータ、ビデオストリーミングデバイス、エンティティ内に配置されている、取り込まれている、又は消費されること（consumed）ができるアイウェア（眼鏡類）及び／又はウェアラブルなコンピュータ、デバイス、又は装置のようなエンティティ（例えば、人間、動物、及び／又は別の被制御デバイス）によって（に）ウェアラブルな（又は、取り外し可能に取り付けられる）デバイス、及び／又は同様のものを含む広範囲のデバイスのうちの任意のものを備え得る。様々な実施形態では、発信源デバイス１２及び宛先デバイス１４は、ワイヤレス通信に対応し得る。
【００２７】
[0040]宛先デバイス１４は、復号されることとなる符号化済みビデオデータを、リンク１６を介して、受信し得る。リンク１６は、符号化済みビデオデータを発信源デバイス１２から宛先デバイス１４に移動することができる任意のタイプの媒体又はデバイスを備え得る。図１Ａの例では、リンク１６は、発信源デバイス１２が符号化済みビデオデータを宛先デバイス１４にリアルタイムで送信することを可能にする通信媒体を備え得る。符号化済みビデオデータは、ワイヤレス通信プロトコルのような通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトル又は１つ又は複数の物理伝送線のような任意のワイヤレス又はワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、広域ネットワーク、又はインターネットのようなグローバルネットワークといった、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、又は発信源デバイス１２から宛先デバイス１４への通信を容易にするのに有益であり得る任意の他の機器を含み得る。
【００２８】
[0041]図１Ａの例では、発信源デバイス１２は、ビデオ発信源１８、ビデオエンコーダ２０、出力インターフェース２２を含む。いくつかのケースでは、出力インターフェース２２は、変調器／復調器（モデム）及び／又は送信機を含み得る。発信源デバイス１２では、ビデオ発信源１８は、ビデオカメラのような撮影装置、前に撮られたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受けるためのビデオフィードインターフェース、及び／又は、発信源ビデオとしてコンピュータグラフィックデータを生成するためのコンピュータグラフィックシステムのような発信源又はそのような発信源の組み合わせを含み得る。１つの例として、ビデオ発信源１８がビデオカメラである場合、発信源デバイス１２及び宛先デバイス１４は、図１Ｂの例で例示されるような、いわゆる「カメラ付電話」又は「ビデオ電話」を形成し得る。しかしながら、本開示で記述される技法は、概して、ビデオコード化に適用可能であり、ワイヤレス及び／又はワイヤードアプリケーションに適用され得る。
【００２９】
[0042]撮られた、予め撮られている（pre-captured）、又はコンピュータにより生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化済みビデオデータは、発信源デバイス１２の出力インターフェース２２を介して、宛先デバイス１４に直接送信され得る。符号化済みビデオデータはまた（又は、代替的に）、復号及び／又は再生のための、宛先デバイス１４又は他のデバイスによる後のアクセスのために記憶デバイス３１上に記憶され得る。図１Ａ及び１Ｂに例示されるビデオエンコーダ２０は、図２Ａに例示されるビデオエンコーダ２０又は本明細書で記述される任意の他のビデオエンコーダを備え得る。
【００３０】
[0043]図１Ａの例では、宛先デバイス１４は、入力インターフェース２８、ビデオデコーダ３０、及びディスプレイデバイス３２を含む。いくつかのケースでは、入力インターフェース２８は、受信機及び／又はモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、リンク１６を介して及び／又は記憶デバイス３１から符号化済みビデオデータを受け得る。リンク１６を介して通信される又は記憶デバイス上で提供される符号化済みビデオデータは、ビデオデータを復号する際に、ビデオデコーダ３０のようなビデオデコーダによる使用のためにビデオエンコーダ２０によって生成される多様なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信される、記憶媒体に記憶される、又はファイルサーバに記憶される符号化済みビデオデータと共に含まれ得る。図１Ａ及び１Ｂに例示されるビデオデコーダ３０は、図２Ｂに例示されるビデオデコーダ３０又は本明細書で記述される任意の他のビデオデコーダを備え得る。
【００３１】
[0044]ディスプレイデバイス３２は、宛先デバイス１４と一体化され得るか、それに外付けであり得る。いくつかの例では、宛先デバイス１４は、統合ディスプレイデバイスを含み得、同じく、外部のディスプレイデバイスとインターフェース接続するように構成され得る。他の例では、宛先デバイス１４は、ディスプレイデバイスであり得る。一般に、ディスプレイデバイス３２は、復号済みビデオデータをユーザに表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、又は別のタイプのディスプレイデバイスのような、様々なディスプレイデバイスのうちの任意のものを備え得る。
【００３２】
[0045]関連する態様では、図１Ｂは、例となるビデオコード化システム１０’を示し、ここにおいて、発信源デバイス１２及び宛先デバイス１４は、デバイス１１上にあるか、その一部である。デバイス１１は、「スマート」フォンのような電話ハンドセット又は同様のものであり得る。デバイス１１は、発信源デバイス１２及び宛先デバイス１４と動作可能に通信状態にある（オプションで存在する）プロセッサ／コントローラデバイス１３を含み得る。図１Ｂのビデオコード化システム１０’及びその構成要素は、他の点では（otherwise）、図１Ａのビデオコード化システム１０及びその構成要素に類似し得る。
【００３３】
[0046]ビデオエンコーダ２０及びビデオデコーダ３０は、ＤＳＣのような、ビデオ圧縮規格に従って動作し得る。代替的に、ビデオエンコーダ２０及びビデオデコーダ３０は、別名、ＭＰＥＧ―４，Ｐａｒｔ１０，ＡＶＣ，ＨＥＶＣと呼ばれるＩＴＵ−Ｔ Ｈ．２６４規格又はそのような規格の拡張のような、他の専有又は工業規格に従って動作し得る。しかしながら、本開示の技法は、いずれの特定のコード化規格にも限定されない。ビデオ圧縮規格の他の例には、ＭＰＥＧ−２及びＩＴＵ−Ｔ Ｈ．２６３が含まれる。
【００３４】
[0047]図１Ａ及び１Ｂの例では示されていないが、ビデオエンコーダ２０及びビデオデコーダ３０は、各々、オーディオエンコーダ及びデコーダと一体化され得、共通のデータストリーム又は別個のデータストリームにおけるオーディオ及びビデオの両方の符号化に対処するために、適切なＭＵＸ−ＤＥＭＵＸユニット又は他のハードウェア及びソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ Ｈ．２２３マルチプレクサプロトコル、又はユーザデータグラムプロトコル（ＵＤＰ）のような他のプロトコルに準拠し得る。
【００３５】
[0048]ビデオエンコーダ２０及びビデオデコーダ３０は、各々、１つ又は複数のマイクロプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせのような、様々な好適なエンコーダ回路の任意のものとして実施され得る。本技法が部分的にソフトウェアで実施される場合、デバイスは、このソフトウェアのための命令を、好適で非一時的なコンピュータ読取可能な媒体に記憶し、１つ又は複数のプロセッサを使用してハードウェアで命令を実行して、本開示の技法を実行し得る。ビデオエンコーダ２０及びビデオデコーダ３０の各々は、１つ又は複数のエンコーダ又はデコーダに含まれ得、それらのどちらも、それぞれのデバイスにおける複合エンコーダ／デコーダの一部として一体化され得る。
【００３６】
ビデオコード化プロセス
[0049]簡単に上述したように、ビデオエンコーダ２０は、ビデオデータを符号化する。ビデオデータは、１つ又は複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。いくつかの事例では、ピクチャは、ビデオ「フレーム」と呼ばれ得る。ビデオエンコーダ２０がビデオデータを符号化するとき、ビデオエンコーダ２０は、ビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化表現を形成する一連のビットを含み得る。ビットストリームは、コード化ピクチャと関連データとを含み得る。コード化ピクチャは、ピクチャのコード化表現である。
【００３７】
[0050]ビットストリームを生成するために、ビデオエンコーダ２０は、ビデオデータ中の各ピクチャに対して符号化動作を実行し得る。ビデオエンコーダ２０がピクチャに対して符号化動作を実行するとき、ビデオエンコーダ２０は、一連のコード化ピクチャと関連データとを生成し得る。関連データは、ＱＰのようなコード化パラメータのセットを含み得る。コード化ピクチャを生成するために、ビデオエンコーダ２０は、ピクチャを、サイズが等しいビデオブロックへと区分化し得る。ビデオブロックは、２次元アレイのサンプルであり得る。コード化パラメータは、ビデオデータの全てのブロックについてコード化オプション（例えば、コード化モード）を定義し得る。所望のレート−歪み性能(optimal rate-distortion performance)を達成するために、コード化オプションが選択され得る。
【００３８】
[0051]いくつかの例では、ビデオエンコーダ２０は、ピクチャを、複数のスライスへと区分化し得る。スライスの各々は、画像（例えば、フレーム）中に空間的に異なる領域を含み得、それは、画像又はフレーム中の残りの領域からの情報なく独立して復号されることができる。各画像又はビデオフレームが単一のスライスにおいて符号化され得るか、各画像又はビデオフレームがいくつかのスライスにおいて符号化され得る。ＤＳＣでは、各スライスを符号化するために割り振られるターゲットビットは、略一定であり得る。ピクチャに対して符号化動作を実行することの一部として、ビデオエンコーダ２０は、ピクチャの各スライスに対して符号化動作を実行し得る。ビデオエンコーダ２０がスライスに対して符号化動作を実行するとき、ビデオエンコーダ２０は、このスライスに関連付けられた符号化済みデータを生成し得る。スライスに関連付けられた符号化済みデータは、「コード化済みスライス」と呼ばれ得る。
【００３９】
ＤＳＣビデオエンコーダ
[0052]図２Ａは、本開示で記述される態様に係る、技法を実施し得るビデオエンコーダ２０の例を例示するブロック図である。ビデオエンコーダ２０は、本開示の技法のうちのいくつか又は全てを実行するように構成され得る。いくつかの例では、本開示で記述される技法は、ビデオエンコーダ２０の様々な構成要素の間で共有され得る。いくつかの例では、追加的又は代替的に、プロセッサ（図示されない）は、本開示で記述された技法のうちのいくつか又は全てを実行するように構成され得る。
【００４０】
[0053]記述の目的のために、本開示は、ＤＳＣコード化のコンテキストにおいてビデオエンコーダ２０を記述する。しかしながら、本開示の技法は、他のコード化規格又は方法に適用可能であり得る。
【００４１】
[0054]図２Ａの例では、ビデオエンコーダ２０は、複数の機能的な構成要素を含む。ビデオエンコーダ２０の機能的な構成要素は、色空間コンバータ１０５と、バッファ１１０と、平坦度検出器１１５と、レートコントローラ１２０と、予測器、量子化器、及び再構築器構成要素１２５と、ラインバッファ１３０と、インデックス付き色履歴１３５と、エントロピーエンコーダ１４０と、サブストリームマルチプレクサ１４５と、レートバッファ１５０とを含む。他の例では、ビデオエンコーダ２０は、より多い、より少ない、又は異なる機能的な構成要素を含み得る。
【００４２】
[0055]色空間コンバータ１０５は、入力された色空間を、コード化実施で使用される色空間に変換し得る。例えば、１つの例示的な実施形態では、入力ビデオデータの色空間は、赤、緑、青（ＲＧＢ）色空間であり、コード化は、輝度Ｙ、クロミナンス緑Ｃｇ、及びクロミナンスオレンジＣｏ（ＹＣｇＣｏ）色空間において実施される。色空間変換は、ビデオデータへの追加及びシフトを含む方法によって実行され得る。他の色空間にある入力ビデオデータが処理され得、他の色空間への変換もまた実行され得ることに留意されたい。
【００４３】
[0056]関連する態様では、ビデオエンコーダ２０は、バッファ１１０、ラインバッファ１３０、及び／又はレートバッファ１５０を含み得る。例えば、バッファ１１０は、ビデオエンコーダ２０の他の部分による使用より前、色空間変換されたビデオデータを保持し得る。別の例では、ビデオデータは、ＲＧＢ色空間に記憶され得、色空間変換は、色空間変換されたデータがより多くのビットを必要とし得るため、必要に応じて実行され得る。
【００４４】
[0057]レートバッファ１５０は、ビデオエンコーダ２０においてレート制御メカニズムの一部として機能し得、これは、レートコントローラ１２０に関連して以下でより詳細に記述されるであろう。各ブロックを符号化するのに費やされるビットは、極めて実質的にブロックの性質に基づいて、変動することができる。レートバッファ１５０は、圧縮ビデオにおけるレート変動を滑らかにすることができる。いくつかの実施形態では、固定ビットレートでバッファからビットが取り出されるＣＢＲバッファモデルが用いられる。ＣＢＲバッファモデルでは、ビデオエンコーダ２０が過度に多くのビットをビットストリームに追加する場合、レートバッファ１５０はオーバーフローし得る。他方で、ビデオエンコーダ２０は、レートバッファ１５０のアンダーフローを防ぐために、十分なビットを追加しなければならない。
【００４５】
[0058]ビデオデコーダ側では、ビットが、固定ビットレートでビデオデコーダ３０のレートバッファ１５５（以下でより詳細に記述される図２Ｂを参照）に追加され得、ビデオデコーダ３０は、ブロックごとに可変の数のビットを取り除き得る。適切な復号を確実にするために、ビデオデコーダ３０のレートバッファ１５５は、圧縮ビットストリームの復号中、「アンダーフロー」又は「オーバーフロー」するべきではない。
【００４６】
[0059]いくつかの実施形態では、バッファフルネス（ＢＦ）は、バッファ中に現在あるビット数を表す値BufferCurrentSizeと、レートバッファ１５０のサイズを表すBufferMaxSize、即ち、いずれかの時点でレートバッファ１５０に記憶されることができる最大ビット数、とに基づいて定義され得る。ＢＦは、次のように算出され得る：
ＢＦ＝（（BufferCurrentSize×１００）／BufferMaxSize）
【００４７】
[0060]ＢＦを算出する上記アプローチが単なる例示であること、及び、ＢＦが、特定の実施又はコンテキストに依存して、任意の数の異なる方法で算出され得ることが留意されたい。
【００４８】
[0061]平坦度検出器１１５は、ビデオデータ中の複雑な（即ち、平坦でない）エリアからビデオデータ中の平坦な（即ち、単純な又は均一の）エリアへの、及び／又は、その逆への変化を検出することができる。「複雑（な）」及び「平坦（な）」という用語は、一般に、ビデオエンコーダ２０がビデオデータのそれぞれの領域を符号化することの難しさを示すために本明細書で使用されるであろう。故に、複雑（な）という用語は、本明細書で使用される場合、一般に、ビデオデータの領域を、ビデオエンコーダ２０が符号化し難いものとして記述し、例えば、テキスチャ化されたビデオデータ、高空間周波数、及び／又は符号化し難い他の特徴を含み得る。平坦（な）という用語は、本明細書で使用される場合、一般に、ビデオデータの領域を、ビデオエンコーダ２０が符号化し易いものとして記述し、例えば、ビデオデータ中の滑らかな勾配、低空間周波数、及び／又は符号化し易い他の特徴を含み得る。符号化済みビデオデータ中の量子化アーティファクトを低減するために、複雑領域から平坦領域への遷移が、ビデオエンコーダ２０によって使用され得る。具体的には、レートコントローラ１２０及び予測器、量子化器、及び再構築器構成要素１２５は、複雑領域から平坦領域への遷移が識別されるときに、そのような量子化アーティファクトを低減することができる。同様に、平坦領域から複雑領域への遷移は、現在ブロックをコード化するのに必要とされる期待レートを低減するためにＱＰを増加するため、ビデオエンコーダ２０によって使用され得る。
【００４９】
[0062]レートコントローラ１２０は、コード化パラメータ、例えば、ＱＰ、のセットを決定する。ＱＰは、レートバッファ１５０がオーバーフロー又はアンダーフローしないことを確実にするターゲットビットレートのピクチャ品質を最大化するために、レートバッファ１５０のバッファフルネスとビデオデータの画像アクティビティ（例えば、複雑領域から平坦領域への遷移又はその逆）とに基づいて、レートコントローラ１２０によって調整され得る。レートコントローラ１２０はまた、最適なレート歪み性能を達成するために、ビデオデータの各ブロックについて特定のコード化オプション（例えば、特定のモード）を選択する。レートコントローラ１２０は、ビットレート制約を満たすように、即ち、実際のコード化レート全体がターゲットビットレート内に収まるように、再構築画像の歪みを最小化する。故に、レートコントローラ１２０の１つの目的は、レート歪み性能を最大化しつつレートに対する瞬間的及び平均的な制約を満たすために、ＱＰ、コード化モード、等のコード化パラメータのセットを決定することである。
【００５０】
[0063]予測器、量子化器、及び再構築器構成要素１２５は、少なくとも、ビデオエンコーダ２０の３つの符号化動作を実行し得る。予測器、量子化器、及び再構築器構成要素１２５は、多数の異なるモードで予測を実行し得る。１つの例となる断定モードは、中央値適応予測の修正バージョンである。中央値適応予測は、ロスレスなＪＰＥＧ規格（ＪＰＥＧ−ＬＳ）によって実施され得る。予測器、量子化器、及び再構築器構成要素１２５によって実行され得る中央値適応予測の修正バージョンは、３つの連続したサンプル値の並行予測を可能にし得る。別の例となる予測モードは、ブロック予測である。ブロック予測では、上の線又は同じ線の左にある、前に再構築された画素からサンプルが予測される。いくつかの実施形態では、ビデオエンコーダ２０及びビデオデコーダ３０は、再構築画素に対して同一探索を実行して、ブロック予測用法を決定し得るため、ブロック予測モードではいずれのビットも送られる必要はない。他の実施形態では、ビデオエンコーダ２０は、ビデオデコーダ３０が別個の探索を実行する必要がないように、探索を実行し、ビットストリームにおいてブロック予測ベクトルを信号伝達し得る。構成要素範囲（component range）の中間点を使用してサンプルが予測される中間点予測モードもまた実施され得る。中間点予測モードは、ワーストケースのサンプルであっても、圧縮ビデオに必要とされるビット数の制限（bounding）を可能にし得る。
【００５１】
[0064]予測器、量子化器、及び再構築器構成要素１２５もまた、量子化を実行する。例えば、量子化は、シフタを使用して実施され得る２のべき乗量子化器（power-of-2 quantizer）を介して実行され得る。２のべき乗量子化器の代わりに他の量子化技法が実施され得ることに留意されたい。予測器、量子化器、及び再構築器構成要素１２５によって実行される量子化は、レートコントローラ１２０によって決定されるＱＰに基づき得る。最後に、予測器、量子化器、及び再構築器構成要素１２５はまた、逆量子化残差を予測値に加えることと、その結果がサンプル値の有効範囲外にならないことを確実にすることとを含む再構築を実行する。
【００５２】
[0065]予測器、量子化器、及び再構築器構成要素１２５によって実行される予測、量子化、及び再構築への上述した例となるアプローチは単なる例示であり、他のアプローチが実施され得ることに留意されたい。予測器、量子化器、及び再構築器構成要素１２５が、予測、量子化、及び再構築を実行するための従属構成要素を含み得ることも留意されたい。予測、量子化、及び／又は再構築が、予測器、量子化器、及び再構築器構成要素１２５の代わりに、いくつかの別個のエンコーダ構成要素によって実行され得ることに更に留意されたい。
【００５３】
[0066]ラインバッファ１３０は、予測器、量子化器、及び再構築器構成要素１２５とインデックス付き色履歴１３５とが、バッファされたビデオデータを使用することできるように、予測器、量子化器、及び再構築器構成要素１２５からの出力を保持する。インデックス付き色履歴１３５は、最近使用された画素値を記憶する。これらの最近使用された画素値は、専用シンタックスを介して、ビデオエンコーダ２０によって直接参照されることができる。
【００５４】
[0067]エントロピーエンコーダ１４０は、インデックス付き色履歴１３５と、平坦度検出器１１５によって識別される平坦度遷移とに基づいて、予測器、量子化器、及び再構築器構成要素１２５から受けた予想残差及び任意の他のデータ（例えば、予測器、量子化器、及び再構築器構成要素１２５によって識別されるインデックス）を符号化する。いくつかの例では、エントロピーエンコーダ１４０は、サブストリームエンコーダにつき１クロックあたり３つのサンプルを符号化し得る。サブストリームマルチプレクサ１４５は、ヘッダーレスパケット多重化スキームに基づいて、ビットストリームを多重化し得る。これは、ビデオデコーダ３０が、並列に３つのエントロピーデコーダを稼働させることを可能にし、これは、１クロックあたり３つの画素の復号を容易にする。サブストリームマルチプレクサ１４５は、パケットがビデオデコーダ３０によって効率的に復号されることができるようにパケット順序を最適化し得る。エントロピーコード化への異なるアプローチが実施され得、これは、１クロックあたり２のべき乗個の画素（例えば、２画素／クロック又は４画素／クロック）の復号を容易にし得ることに留意されたい。
【００５５】
ＤＳＣビデオデコーダ
[0068]図２Ｂは、本開示で記述される態様に係る、技法を実施し得るビデオデコーダ３０の例を例示するブロック図である。ビデオデコーダ３０は、本開示の技法のうちのいくつか又は全てを実行するように構成され得る。いくつかの例では、本開示で記述される技法は、ビデオデコーダ３０の様々な構成要素の間で共有され得る。いくつかの例では、追加的又は代替的に、プロセッサ（図示されない）は、本開示で記述される技法のうちのいくつか又は全てを実行するように構成され得る。
【００５６】
[0069]記述の目的のために、本開示は、ＤＳＣコード化のコンテキストにおいてビデオデコーダ３０を記述する。しかしながら、本開示の技法は、他のコード化規格又は方法に適用可能であり得る。
【００５７】
[0070]図２Ｂの例では、ビデオデコーダ３０は、複数の機能的な構成要素を含む。ビデオデコーダ３０の機能的な構成要素は、レートバッファ１５５と、サブストリームデマルチプレクサ１６０と、エントロピーデコーダ１６５と、レートコントローラ１７０と、予測器、量子化器、及び再構築器構成要素１７５と、インデックス付き色履歴１８０と、ラインバッファ１８５と、色空間コンバータ１９０とを含む。ビデオデコーダ３０の例示される構成要素は、図２Ａのビデオエンコーダ２０に関連して上述した対応する構成要素に類似する。このように、ビデオデコーダ３０の構成要素の各々は、上述したようなビデオエンコーダ２０の対応する構成要素と同様の方式で動作し得る。
【００５８】
ＱＰ算出
[0071]１つのアプローチでは、現在ブロックについてのＱＰ（currQPと表される）は、以下の式を使用して導出又は算出され得る：
currQP＝prevQ＋QpAdj＊（diffBits＞０？１：−１），
【００５９】
[0072]ここで、prevQPは、前ブロックに関連付けられたＱＰであり、diffBitsは、previousBlockBitsとtargetBitsとの間の差分を表し、QpAdjは、diffBitsの大きさに基づいて算出されるＱＰオフセット値（例えば、ＱＰ調整値）であり、previousBlockBitsは、前ブロックをコード化するのに使用されたビット数を表し、targetBitsは、現在ブロックをコード化するために割り振られるターゲットビット数を表す。previousBlockBits＞targetBitsであるとき、diffBitsは正であり、現在ブロックＱＰは、オフセット値QpAdjをprevQP値に加えることで導出され得る。換言すると、ＱＰ値は、diffBitsが正であるとき、prevQP値から値が減少しない。previousBlockBits≦targetBitsであるとき、diffBitsは負又はゼロであり、currQPは、prevQP値から増加しない。オフセット値QpAdjは、例えば、QpAdjがdiffBitsの大きさの増加に伴って単調に増加する方法でdiffBitsの関数として算出され得ることに留意されたい。
【００６０】
[0073]本明細書でデフォルト技法と呼ばれる、ＱＰ調整値QpAdjを算出するための１つの技法が、ここから、図３を参照して記述されるであろう。図３は、ゼロから始まってdiffBitsの値が描かれている軸を含むグラフ５０を提供する。デフォルト技法では、diffBits＞０であるとき、diffBitsは、Ｋ個の閾値を使用してＫ＋１個の範囲へと分類され得る。これらの閾値は、閾値１、閾値２、閾値３…及び閾値Ｋというラベルで例示され、範囲は、範囲１、範囲２、範囲３、…及び範囲Ｋ＋１というラベルで例示されている。図３のデフォルト技法では、Ｋ個の閾値を使用してdiffBitsをＫ＋１個の範囲へとセグメント化する１つのアプローチが示される。各範囲は、特定のQpAdj値に関連付けられ得、ここで、QpAdj値は、範囲インデックが増加するに伴い増加する。diffBits≦０であるとき、diffBitsの絶対値は、Ｊ個の閾値を使用してＪ＋１個の範囲へと分類され得（図示されない）、Ｊ＋１個の範囲の各々に割り当てられた特定のQpAdj値が存在し得る。
【００６１】
[0074]他の態様では、currQP値は、バッファのアンダーフロー及び／又はオーバーフローを防ぐために、（バッファフルネスＢＦの観点で表され得る）バッファのフルネスに基づいて調整され得る。特に、ＢＦが特定の閾値（例えば、Ｐ１）を超えるとき、currQPは、固定オフセット値（例えば、ｐ１）だけインクリメントされ得る。例えば、currQPは、次のように調整され得る：currQP＝currQP＋ｐ１。更に、ＢＦが特定の閾値（例えば、Ｑ１）を下回る（fall below）と、currQPは、ｑ１ぶんデクリメントされ得、例えば、currQP＝currQP−ｑ１である。特定の態様では、複数の閾値が用いられ得、閾値ごとに、currQPを調整するための対応するオフセット値が存在し得る。
【００６２】
[0075]最後に、複雑領域から平坦領域への遷移が識別されるとき、又は、平坦領域が識別されるとき、currQPは、低値（例えば、定義されたcurrQP値を下回る値）に設定され得る。
【００６３】
平坦から複雑領域検出に基づいて量子化パラメータ（ＱＰ）を決定するための技法
[0076]図４を参照すると、１つ又は複数の技法が、ＤＳＣについて平坦／滑らかな領域から複雑領域への遷移を検出するために利用され得る。複雑領域への遷移を検出するためにどの技法が使用されるかに関わらず、そのような遷移が検出されると、使用されるＱＰは、現在ブロック／次ブロックをコード化するのに必要とされる期待レートを低減するために、遷移ブロック又は遷移ブロックの後の次ブロックにおいて（前の平坦ブロックと比べて）増加され得る。しかしながら、遷移ブロックが平坦領域及び複雑領域の両方を含むため、遷移ブロックにおけるＱＰ値が過度に高くなる（例えば、定義されたＱＰ値を超える）ことができないことに留意されたい。例えば、遷移ブロックについてのＱＰ値が、定義されたＱＰ値を超えるとき、遷移ブロックから再構築される画像内で顕著であり得るアーティファクトがブロックの平坦部分で生じ得る。
【００６４】
[0077]図４は、フレーム又はその一部、例えば、フレームのスライス、であり得る例となる関心領域２００を例示する。領域２００は、３つの連続的なブロック２０５、２１０、及び２１５を含み得る。この例では、ブロック２０５は、領域２００の平坦領域／部分に対応し、ブロック２１０は、領域２００の遷移領域／部分に対応し、ブロック２１５は、領域２００の複雑領域／部分に対応する。示されるように、ブロック２０５のコンテンツは、平坦、滑らか、又は均一である。ブロック２１５のコンテンツは、テキスチャ化されており、全体にわたって均一でないパターンを示す。ブロック２１０は、均一コンテンツから非均一コンテンツへの遷移を含む。以下で記述されるように、複雑性算出が、ブロック２０５、２１０、及び２１５の各々について実行され得る。
【００６５】
[0078]本明細書で使用される場合、平坦ブロックは、複雑性閾値よりも低い複雑性値を有するブロックを指し得る。ブロックが平坦であると決定される閾値は、このブロックをコード化するのに必要とされるビット数のような様々な設計基準に基づいて設定され得る。同様に、非平坦又は複雑なブロックは、平坦でない、例えば、複雑性閾値以上である複雑性値を有するブロックを指し得る。ブロックの様々な他の分類は、ブロックの関連する複雑性に基づいて用いられ得、そのような分類は、ブロックの複雑性値における閾値によって定義される範囲であり得る。
【００６６】
[0079]平坦及び複雑という用語は、ブロック以外の領域にも適用され得る。このケースでは、領域は、ブロックと同じサイズではない可能性がある、例えば、領域は、離散的に符号化／復号されるサイズではない可能性がある、が、領域もまた、この領域の複雑性に基づいて、平坦又は複雑に分類され得る。例えば、領域は、この領域内の各ブロックが平坦ブロックである場合、平坦領域と呼ばれ得る。しかしながら、平坦領域は、それに含まれるブロックと同じ境界を有さない場合があり、この領域の複雑性は、領域全体にわたって算出され得る。複雑領域は、同様に定義され得る。故に、領域は、この領域についての複雑性値を、ブロックについての複雑性閾値とは異なり得る複雑性閾値と比較することで、平坦又は複雑に分類され得る。更に、領域がコード化のためにブロックへと分割され得るため、領域という用語は、本明細書では概念的に、本開示の様々な態様の理解を容易にするために使用され得る。
【００６７】
[0080]上述したように、ブロックを平坦又は複雑に分類するために、このブロックについての複雑性値が決定され得る。ブロックについての複雑性値は、この複雑性値がブロックを符号化する難しさ、例えば、可視のアーティファクトをもたらすことなくこのブロックをコード化するのに必要とされ得るビット数、を表現する限り、様々な技法に従って決定され得る。一態様では、ブロックの複雑性が、ブロック内の画素の周波数変換（例えば、離散コサイン変換（ＤＣＴ）、アダマール変換、等）を使って算出され得る。周波数変換は、複雑性値を生成するために合計され得る多数の周波数係数をもたらし得る。特定の態様では、直流（ＤＣ又はゼロ周波数）係数及び／又は１つ又は複数の低周波数係数は、この合計には含まれないであろう。複雑性値を決定するための様々な他の技法、例えば、周波数変換の前に色変換を適用すること、もまた適用され得る。
【００６８】
[0081]「ＱＰ算出」というセクションにおいて上で説明したように、現在ブロックが平坦ブロックである又は平坦領域から複雑領域への遷移を含むブロックであるとき、currQPは、低値（例えば、定義されたcurrQP値を下回る値）に減少され得る。次ブロックが平坦でないとき、currQPは、diffBitsの大きさに依存して、増加又は減少され得る。例えば、エンコーダが、高度にテキスチャ化された又は高周波数のコンテンツ（例えば、複雑領域）を含む領域を処理していることときに、この領域内に平坦ブロックが位置しているときには、エンコーダは、ＱＰ値を減少させ得る。この平坦ブロックの後のブロックから開始して、エンコーダは、再度、この領域の高複雑性により、ＱＰ値を増加させ得る。しかしながら、ＱＰ値が平坦ブロックにおいて低値に減少されるため、この高い複雑性領域にとって望ましい高いＱＰ値に戻るためには数ブロックかかり得る。換言すると、ＱＰ値が更新されるレートは、ビットが無駄になるのを防ぐのに十分にアグレッシブではないであろう。例えば、所望のＱＰ値よりも低いものでの複雑なブロックのコード化は、必要とされるコード化品質を維持するのに必要とされるより大きなビット数を必要とし得る。
【００６９】
[0082]更に、これも「ＱＰ算出」というセクションで述べているが、currQPは、バッファのフルネスに基づいて、固定オフセット値だけ更にインクリメント又はデクリメントされ得る。固定値だけＱＰ値をインクリメント又はデクリメントとすることは、currQPが、連続したブロック間でＱＰ値に大きな差分をもたらし得る比較的大きい値（例えば、閾値よりも大きい値）だけインクリメント又はデクリメントされ得るため、望まれないであろう。これは、再構築画像中に顕著なアーティファクトをもたらし得る。
【００７０】
[0083]本明細書で開示される技法は、ＣＢＲバッファでレート制御を利用又は実施する任意の画像又はビデオコーダに適用され、少なくとも、上述した２つの問題に対処するために使用され得る。
【００７１】
平坦領域の検出に基づくＱＰ更新技法
[0084]１つのアプローチでは、変数isFlatは、所与のブロックＢが平坦ブロックであるかどうかを示し得る。別の変数isFlatToComplexは、所与のブロックＢが平坦領域から複雑領域への遷移を含むかどうかを示し得る。実施に依存して、エンコーダ２０又はデコーダ３０は、各ブロックＢについて、変数isFlat及び／又はisFlatToComplexを明示的に決定し得るが、しかしながら、エンコーダ２０又はデコーダ３０はまた、変数isFlat及び／又はisFlatToComplexを明示的に決定することなく、ブロックＢが平坦であるか又は平坦領域から複雑領域への遷移を含むかどうかを暗示的に決定し得る。明確さのため、本開示は、これらの変数がエンコーダ２０及び／又はデコーダ３０によって決定されるかのように、それらを説明するであろう。
【００７２】
[0085]一実施では、前ブロックについてisFlatが真であり、かつ、現在ブロックについてisFlatが偽であるとき、代替技法（例えば、アグレッシブな技法）がＱＰ値をランプ又は更新するために使用され得る。即ち、前ブロックが平坦であり、かつ、現在ブロックが複雑であるとき、エンコーダ２０及び／又はデコーダ３０は、現在ブロックが平坦領域から複雑領域への遷移を含むと推論し、ＱＰ値を更新するために、デフォルト技法の代わりに代替技法を適用し得る。
【００７３】
[0086]代替技法が適用され得る１つの条件は、前ブロックについてのisFlatが真であり、かつ、現在ブロックについてのisFlatが偽であるときである。この位置において（例えば、現在ブロックにおいて）、（本明細書では技法−Ｆとも呼ばれ得る）代替技法が、QpAdjを算出するために、デフォルト技法の代わりに利用され得る。デフォルト技法は、図３に関連して上述されている。デフォルト技法に代わる１つ又は複数の技法が存在し得ることに留意されたい。
【００７４】
[0087]一例では、代替技法が、Ｎ個の連続したブロックに使用され得、例えば、Ｎ個の連続したブロックについて、QpAdjが、技法−Ｆに基づいて算出又は決定され、Ｎ個のブロックをコード化した後、レート制御は、デフォルト技法へと切に替わり得る。ここで、Ｎは、正の整数である。
【００７５】
[0088]別の例では、次のＮ個の連続したブロックの中で、ブロックのうちの任意の１つが平坦であるとわかると、レート制御は、デフォルト技法に切り替わり得るか、ＱＰを低値に設定し得る。従って、技法−Ｆは、Ｎ個の連続したブロックに対して又はＮ個の連続したブロックの中から平坦ブロックを検出／ヒットするまでの何れか早い方に適用され得る。
【００７６】
[0089]図５は、ブロックＡ−Ｅを含む、複数のブロック３００を含む例を例示し、ここで、Ｎ＝５である。図５に示されるこのシナリオでは、ブロックＥが平坦であるため、技法−ＦはブロックＢ、Ｃ、及びＤ、即ち、３つのブロックに対してのみ使用され得る。
【００７７】
[0090]表１における以下の例となる疑似コードは、ＱＰ更新技法を決定するために使用され得る実施を示す：
【表１】
2018515015.tif 000003
【００７８】
[0091]１つの代替技法では、前ブロックについて、isFlatが真であり、かつ、現在ブロックが、平坦領域から複雑領域への遷移を有するとき、技法−Ｆは、すぐには、現在ブロックについてのＱＰを算出するために適用されないであろう。代わりに、次ブロックから代替技法が適用され得る。このシナリオの例は、図６に示されており、これは、ブロックＡ−Ｄを含む複数のブロック３１０を含む。図６の例では、ブロックＡについて、isflat＝真であり、ブロックＢについて、isflat＝偽である（従って、ブロックＢは、平坦領域から複雑領域への遷移を含み、例えば、isFlatToComplex＝真である）。これらの条件下では、ＱＰを算出するためにブロックＣから代替技法が使用され得る。
【００７９】
[0092]従って、表２の以下の例となる疑似コードは、ＱＰ更新技法を決定するために使用され得る：
【表２】
2018515015.tif 000004
【００８０】
[0093]別の代替例では、前ブロックについての（isFlat || isFlatToComplex）が真であり、かつ、現在ブロックについての（isFlat || isFlatToComplex）が偽であるとき、例えば、前ブロックが平坦ブロックであるか、平坦領域から複雑領域への遷移を含むかのどちらか一方であり、現在ブロックが平坦ブロックでなくかつ平坦領域から複雑領域への遷移を含まない場合、ＱＰをランプ又は更新するために代替技法が利用され得る。
【００８１】
[0094]更に別の代替例では、代替技法が適用され得るＮ個の連続したブロックの中で、ブロックの何れか１つが、平坦であるか、平坦領域から複雑領域への遷移を含む場合、レート制御は、デフォルト技法に切り替わり得る。
【００８２】
[0095]従って、表３における以下の例となる疑似コードが、実施されるべき技法を決定するために使用され得る：
【表３】
2018515015.tif 000005
【００８３】
[0096]別の代替例では、前ブロックについての（isFlatToComplex）が真であり、かつ、現在ブロックについての（isFlatToComplex）が偽であるとき、例えば、前ブロックが平坦であるか否かに関わらず、ＱＰをランプ又は更新するために代替技法が利用され得、特定のＱＰ技法を選ぶ決定は、isFlatToComplexに基づく。
【００８４】
[0097]別の代替例では、代替技法が適用され得るＮ個の連続したブロックの中で、ブロックのうちの何れか１つが平坦領域から複雑領域への遷移を含むとわかると、レート制御は、デフォルト技法に切り替わり得る。
【００８５】
[0098]従って、表４における以下の例となる疑似コードは、実施されるべき技法を決定するために使用され得る：
【表４】
2018515015.tif 000006
【００８６】
[0099]１つのアプローチでは、isFlat＝真を検出する直前のこのブロックについてのＱＰ値が記憶され得、記憶されたＱＰ値は、isFlat＝偽のときのブロックのＱＰ値を導出するために使用され得る。この実施では、平坦領域よりも前のブロックの複雑性は、平坦領域の後のブロックの複雑性を推定するために使用され得る。図７は、ブロックＡ−Ｄを含む複数のブロック３２０を含み、現在のアプローチに従ってブロックＤについてのＱＰ値を導出するためにブロックＡのＱＰ値が使用され得るシナリオを例示する。
【００８７】
[0100]一態様では、ブロックＤについてのＱＰ値は、ブロックＡについてのＱＰ値と同じであり得る。別の態様では、ブロックＤについてのＱＰ値は、技法−Ｆに基づいて調整され得る。更に別の態様では、ブロックＤについてのＱＰ値は、デフォルト技法に基づいて調整され得る。更に別の態様では、ブロックＡについてのＱＰ値が、固定オフセットだけインクリメントされ得、ブロックＤについてのＱＰ値として使用され得る。
【００８８】
[0101]別の態様では、ブロックＡについてのＱＰ値が、固定オフセットだけデクリメントされ得、ブロックＤについてのＱＰ値として使用され得る。
【００８９】
[0102]別のアプローチでは、表１−４の各々における疑似コード行：distCount≦Ｎが、疑似コード行：distCount＜Ｎと置き換えられ得る。更に別のアプローチでは、Ｎが、Ｎ−１と置き換えられ得る。
【００９０】
[0103]一実施形態に従って、（ｉ）diffBits＞０及び（ｉｉ）diffBits≦０という２つの領域についてのQpAdjの算出が以下で記述される。
【００９１】
ケース（ｉ）：diffBits＞０
[0104]一実施では、diffBitsの所与の値について、技法−ＦのQpAdj値は、デフォルト技法の対応するQpAdj値よりも真に大きい（＞）。図８は、デフォルト技法及び代替技法の一実施の例示を示す。図８のグラフは、デフォルト技法４１０及び代替技法４０５という２つの線を含む。図８の例では、delta Qpは、デフォルト技法４１０及び技法−Ｆ、例えば、代替技法４０５、についてのdiffBitsの関数として示されている。技法−Ｆ４０５の場合、所与のdiffBits＞０について、技法−Ｆ４０５のQpAdj値（即ち、delta Qp）は、デフォルト技法４１０の対応するQpAdj値（即ち、delta Qp）以上である。関数が重複するとき、例えば、実線及び点線の関数が重複する所では、QpAdjの値が同じであり得ることは留意されたい。
【００９２】
[0105]一実施では、（図３に関連して上述したような）デフォルト技法４１０で使用されるのと同じＫ個の閾値がＫ＋１個の範囲を分類するために使用されるとき、各範囲について、技法−Ｆ４０５のQpAdjは、デフォルト技法４１０の対応するQpAdj値よりも真に大きいであろう。
【００９３】
[0106]再度図８の例を参照すると、両方の技法について、範囲（ｘ軸）を分類するために同じ閾値が使用され得る。１つの代替例では、〜よりも真に大きい（＞）は、〜以上（≧）と置き換えられ得る。
【００９４】
ケース（ｉｉ）：diffBits≦０
[0107]一実施では、diffBitsの所与の値について、技法−Ｆ４０５のQpAdj値は、デフォルト技法４１０の対応するQpAdj値よりも真に小さい（＞）。図８に示されるように、diffBits≦０の所与の値の場合、技法−Ｆ４０５のQpAdj（即ち、|delta Qp|）は、デフォルト技法４１０の対応するQpAdj（即ち、|deltaQp|）よりも真に小さい。より正確に言うと、diffBits≦０（例えば、previousBlockBits≦targetBits）であるとき、技法−Ｆ４０５の場合、現在ブロックについてのＱＰ currQP＝prevQP−QpAdjは、デフォルト技法４１０と比べたとき、より控えめに減少される。これは、ＱＰがすぐには低値に減少されないため、数ビットを確保するであろう。
【００９５】
[0108]一態様では、デフォルト技法４１０で使用されるのと同じＪ個の閾値がＪ＋１範囲を分類するために使用されるとき、各範囲について、技法−Ｆ４０５のQpAdj（即ち、|delta Qp|）は、デフォルト技法４１０の対応するQpAdj値よりも真に小さい。続けて図８に示される例を参照すると、同じ閾値が範囲を分類するために使用され得る。関連する態様では、〜よりも真に小さい（＜）は、〜以下（≦）と置き換えられ得る。
【００９６】
[0109]図８に示される例は例示目的にすぎず、各技法についてのdiffBitsとdelta Qpとの間の実際の関係性が特定の実施又はコンテキストに依存して異なり得ることに留意されたい。
【００９７】
[0110]一態様では、diffBits≦０の場合に、デフォルト技法４１０が、QpAdjを算出するために使用され得、diffBits＞０の場合に、技法−Ｆ４０５が、QpAdjを算出するために使用され得る。関連する態様では、diffBits＞０の場合に、デフォルト技法４１０が、QpAdjを算出するために使用され得、diffBits≦０の場合に、技法−Ｆ４０５が、QpAdjを算出するために使用され得る。
【００９８】
バッファが上位閾値限界又は下位閾値限界を超える又は下回るときのＱＰ更新技法
[0111]ＢＦが上位閾値限界を超えるとき、QpAdj算出するためにデフォルト技法を使用し、固定オフセット値を加える代わりに、代替技法が、QpAdjを算出するために使用され得る。換言すると、QpAdjは、ＢＦ及びdiffBitsに基づいて、代替技法を介して算出され得る。ＢＦが下位閾値を下回るとき、同様の調整が実施され得る。
【００９９】
バッファフルネスが閾値限界を超える
[0112]［Ｐ１，Ｐ２，…Ｐｎ］がｎ個の閾値であり、［技法−Ｐ１，技法−Ｐ２，…技法−Ｐｎ］が、QpAdjを算出するために使用され得るそれぞれの代替技法であるとする。レート制御は、以下に基づいて、代替技法から特定の技法を選択し得、その選択された技法が、QpAdjを算出するために使用され得る：
（バッファフルネス≧Ｐ１）である場合、
QpAdjを算出するために技法−Ｐ１が使用される；
そうではなく、（バッファフルネス≧Ｐ２）である場合、
QpAdjを算出するために技法−Ｐ２が使用される；
…
そうではなく、（バッファフルネス≧Ｐｎ）である場合、
QpAdjを算出するために技法−Ｐｎが使用される；
【０１００】
[0113]即ち、バッファのフルネス、例えば、ＢＦ、は、複数の漸減する閾値Ｐ１からＰｎと比較され得る。ＢＦが閾値のうちの１つ、例えば、Ｐｉ、よりも大きいとき、対応する技法、技法−Ｐｉ、が、ＱＰ調整値QpAdjを決定するために使用され得る。
【０１０１】
ケース（ｉ）：diffBits＞０
[0114]一実施では、diffBitsの所与の値について、技法−Ｐ１のQpAdj値≧技法−Ｐ２のQpAdj値≧…技法−ＰｎのQpAdj値≧デフォルト技法のQpAdj値である。
【０１０２】
[0115]図９は、デフォルト技法及び代替技法、技法−Ｐ１、の一実施の例示を示す。図９のグラフは、デフォルト技法４２０及び技法−Ｐ１ ４１５という２本の線を含み、ここで、diffBits＞０の所与の値について、技法−Ｐ１ ４１５のQpAdj値は、デフォルト技法４２０のQpAdj値以上である。
【０１０３】
[0116]一実施では、（図３に関連して説明されたように）デフォルト技法４２０で使用されるのと同じＫ個の閾値がＫ＋１個の範囲を分類するために使用され得、各範囲について、技法−Ｐ１ ４１５のQpAdj値≧技法−Ｐ２のQpAdj値≧…技法−ＰｎのQpAdj値≧デフォルト技法４２０のQpAdj値である。
【０１０４】
[0117]一態様では、図９の例を参照して、同じ閾値が範囲を分類するために使用され得る。別の態様では、〜以上（≧）は、〜よりも真に大きい（＞）と置き換えられ得る。更に別の態様では、デフォルト技法４２０は、QpAdjを算出するために使用される唯一の技法であり得る。
【０１０５】
ケース（ｉｉ）：diffBits≦０
[0118]一実施では、diffBitsの所与の値について、技法−Ｐ１ ４１５のQpAdj値≦技法−Ｐ２のQpAdj値≦…技法−ＰｎのQpAdj値≦デフォルト技法４２０のQpAdj値である。
【０１０６】
[0119]続けて図９の例を参照すると、diffBits≦０の所与の値について、技法−Ｐ１ ４１５のQpAdj（即ち、|delta Qp|）は、デフォルト技法４２０の対応するQpAdj（即ち、|deltaQp|）と比べたとき、真に小さい。
【０１０７】
[0120]一実施では、デフォルト技法４２０で使用されるのと同じＪ個の閾値がＪ＋１個の範囲を分類するために使用され得、各範囲について、技法−Ｐ１ ４１５のQpAdj値≦技法−Ｐ２のQpAdj値≦…技法−ＰｎのQpAdj値≦デフォルト技法４２０のQpAdj値である。
【０１０８】
[0121]一態様では、〜以下（≦）は、〜よりも真に小さい（＜）と置き換えられ得る。別の態様では、デフォルト技法４２０は、QpAdjを算出するために使用される唯一の技法であり得る。
【０１０９】
バッファフルネスが閾値限界を下回る
[0122]［Ｑ１，Ｑ２，…Ｑｍ］がｍ個の閾値であり、［技法−Ｑ１，技法−Ｑ２，…技法−Ｑｍ］が、QpAdjを算出するために使用されるそれぞれの代替技法であるとする。換言すると、レート制御は、以下に基づいて、代替技法から特定の技法を選択し得、その選択された技法が、QpAdjを算出するために使用され得る：
（バッファフルネス≦Ｑ１）である場合、
QpAdjを算出するために技法−Ｑ１が使用される；
そうではなく、（バッファフルネス≦Ｑ２）である場合、
QpAdjを算出するために技法−Ｑ２が使用される；
…
そうではなく、（バッファフルネス≦Ｑｍ）である場合、
QpAdjを算出するために技法−Ｑｍが使用される；
【０１１０】
[0123]即ち、バッファのフルネス、例えば、ＢＦ、は、複数の漸増する閾値Ｑ１からＱｎと比較され得る。ＢＦが閾値のうちの１つ、例えば、Ｑｉ、未満であり、かつ、前の閾値、例えば、Ｑｉ−１、よりも大きいとき、対応する技法、技法−Ｑｉが、ＱＰ調整値QpAdjを決定するために使用され得る。
【０１１１】
ケース（ｉ）：diffBits＞０
[0124]一実施では、diffBitsの所与の値について、デフォルト技法のQpAdj値≧技法−Ｑ１のQpAdj値≧…技法−Ｑ２のQpAdj値≧技法−ＱｍのQpAdj値である。
【０１１２】
[0125]図１０は、デフォルト技法及び２つの代替技法、技法−Ｑ１及び技法−Ｑ２の一実施の例示を示す。図１０のグラフは、デフォルト技法４２５、技法−Ｑ１ ４３０、及び技法−Ｑ２ ４３５について、delta QpがdiffBitsの関数である例を示す。図１０を参照すると、ｍ＝２である場合の関係性が示されており、diffBits＞０の所与の値について、デフォルト技法４２５のQpAdj値≧技法−Ｑ１ ４３０のQpAdj値≧技法−Ｑ２４３０のQpAdj値である。
【０１１３】
[0126]一実施では、（図３に関連して上で説明された）デフォルト技法で使用されるのと同じＫ個の閾値がＫ＋１個の範囲を分類するために使用されるとき、各範囲について、デフォルト技法４２５のQpAdj値≧技法−Ｑ１ ４３０のQpAdj値≧技法−Ｑ２ ４３５のQpAdj値…≧技法−ＱｍのQpAdj値である。
【０１１４】
[0127]一態様では、〜以上（≧）は、〜よりも真に大きい（＞）と置き換えられ得る。別の態様では、デフォルト技法４２５は、QpAdjを算出するために使用される唯一の技法であり得る。
【０１１５】
ケース（ｉｉ）：diffBits≦０
[0128]一実施では、diffBitsの所与の値について、デフォルト技法４２５のQpAdj値≦技法−Ｑ１ ４３０のQpAdj値≦技法−Ｑ２ ４３５のQpAdj値…≦技法−ＱｍのQpAdj値である。
【０１１６】
[0129]図１０を参照すると、関数が重複するとき、例えば、実線及び点線が重複する所では、QpAdjの値が同じであることに留意されたい。
【０１１７】
[0130]一実施では、デフォルト技法４２５で使用されるのと同じＪ個の閾値がＪ＋１個の範囲を分類するために使用されるとき、各範囲について、デフォルト技法４２５のQpAdj値≦技法−Ｑ１ ４３０のQpAdj値≦技法−Ｑ２ ４３５のQpAdj値…≦技法−ＱｍのQpAdj値である。
【０１１８】
[0131]一態様では、〜以下（≦）は、〜よりも真に小さい（＜）と置き換えられ得る。図９−１０に示される例は例示目的にすぎず、技法ごとにdiffBitsに基づいてdelta Qpを導出するための実際の技法又は関数は、特定の実施又はコンテキストに依存して異なり得ることに留意されたい。別の態様では、デフォルト技法４２５は、QpAdjを算出するために使用される唯一の技法であり得る。
【０１１９】
[0132]最後に、本明細書で記述される技法が、（１）明示的なＱＰ導出及び／又は（２）暗示的なＱＰ導出に適用され得ることに留意されたい。例えば、明示的なＱＰ導出では、ＱＰは、エンコーダ２０において導出され得、ビットストリームにおいてデコーダ３０に明示的に信号伝達され得る。暗示的なＱＰ導出では、エンコーダ２０及びデコーダ３０の両方がＱＰを導出し得る。しかしながら、デコーダ３０は、例えば、ＱＰ技法のタイプのような、ＱＰを導出するために付加情報を利用し得、これは、エンコーダ２０によってビットストリームで信号伝達され得る。デコーダ３０がＱＰ値を導出するのを支援するために使用されることができる他の情報が、実施に依存して、エンコーダ２０によってビットストリームで信号伝達され得る。
【０１２０】
[0133]第１の例では、本明細書で提案される技法は、適切なＱＰ適応カーブを選ぶことで、ＱＰを算出するためにエンコーダ２０によって使用され得る。エンコーダ２０は、例えば、現在ブロックのＱＰと前ブロックのＱＰとの間の差分を信号伝達することを介して、ＱＰを明示的に信号伝達し得る。エンコーダ２０はまた、選ばれたＱＰ適応カーブを信号伝達し得る。
【０１２１】
[0134]第２の例では、本明細書で提案される技法は、エンコーダ２０及びデコーダ３０の両方によって使用され得る。ＱＰ適応カーブのタイプは、エンコーダ２０によって選ばれ得、ビットストリームで明示的に信号伝達され得る。
【０１２２】
量子化パラメータ（ＱＰ）値を決定するための例となるフローチャート
[0135]図１１を参照すると、ＱＰ値を決定するための例となるプロシージャが記述されるであろう。図１１は、本開示の実施形態に係る、ビデオデータをコード化するための方法５００を例示するフローチャートである。図１１に例示されているステップは、ビデオエンコーダ（例えば、図２Ａのビデオエンコーダ２０）、ビデオデコーダ（例えば、図２Ｂのビデオデコーダ３０）、又はそれらの構成要素によって実行され得る。便宜上、方法５００は、ビデオエンコーダ２０、ビデオデコーダ３０、又は別の構成要素であり得る、（単にコーダとも呼ばれる）ビデオコーダによって実行されると記述されている。
【０１２３】
[0136]コーダ又はその構成要素は、バッファを含む複数のプログラマブル計算ユニットによって共有される統合グローバルメモリを含むデバイスで実施され得、ここにおいて、バッファは、先入先出（ＦＩＦＯ）バッファを含み得る。デバイスは、少なくとも１つのプロセッサ（例えば、中央処理ユニット（ＣＰＵ））及び／又はグラフィックス処理ユニット（ＧＰＵ）を含み得る集積回路（ＩＣ）を更に含み得、ここにおいて、ＧＰＵは、１つ又は複数のプログラマブル計算ユニットを含み得る。
【０１２４】
[0137]方法５００は、ブロック５１０から開始する。ブロック５０５において、コーダは、現在ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定する。特定の実施では、この決定は、前ブロック、現在ブロック、及び次ブロックの各々についての複雑性値を決定することと、これらの複雑性値を複雑性閾値と比較することとを含み得る。現在ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるとコーダが決定する場合、方法は、ブロック５１５に進む。現在ブロックが平坦領域から複雑領域への遷移を含まず平坦ブロックでもないとコーダが決定する場合、方法５００はブロック５１０に進む。ブロック５１０において、コーダは、前ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定する。前ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるとコーダが決定する場合、方法５００はブロック５２０に進む。透過ブロックが平坦領域から複雑領域への遷移を含まず平坦ブロックでもないとコーダが決定する場合、方法５００はブロック５３５に進む。例示されてはいないが、特定の実施では、前ブロックが平坦領域から複雑領域への遷移を含まず平坦ブロックでもないとコーダが決定する場合、方法は、ブロック５１５に進み得る。ブロック５１５において、コーダは、現在ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのどちらか一方であると決定することに応答して、現在ブロックについてのＱＰ調整値を算出するためにデフォルト技法を選択し得る。
【０１２５】
[0138]ブロック５２０において、コーダは、少なくとも部分的に、現在ブロックが平坦領域から複雑領域への遷移を含まず平坦ブロックでもないと決定することに応答して、現在ブロックについてのＱＰ調整値を算出するために代替技法を選択し得る。コーダはまた、少なくとも部分的に、前ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのどちらか一方であると決定することに応答して、現在ブロックについてのＱＰ調整値を算出するために代替技法を選択し得る。ブロック５２５において、コーダは、選択された技法を介して、現在ブロックについてのＱＰ調整値を算出する。ブロック５３０において、コーダは、そのＱＰ調整値に基づいて、現在ブロックについてのＱＰ値を決定する。方法は、ブロック５３５で終了する。
【０１２６】
[0139]方法５００では、図１１に示されるブロックのうちの１つ又は複数は、除去され得（例えば、実行されず）、及び／又は、方法が実行される順序が交換され得る。いくつかの実施形態では、追加のブロックが、方法５００に追加され得る。本開示の実施形態は、図１１に示される例に限られるものでもそれらによって制限されるものでもなく、他の変形が、本開示の精神から逸脱することなく実施され得る。
【０１２７】
[0140]図１２を参照して、ＱＰ値を決定するための別の例となるプロシージャが記述されるであろう。図１２は、本開示の実施形態に係る、ビデオデータをコード化するための方法６００を例示するフローチャートである。図１２に例示されているステップは、ビデオエンコーダ（例えば、図２Ａのビデオエンコーダ２０）、ビデオデコーダ（例えば、図２Ｂのビデオデコーダ３０）、又はそれらの構成要素によって実行され得る。便宜上、方法５００は、ビデオエンコーダ２０、ビデオデコーダ３０、又は別の構成要素であり得る、（単にコーダとも呼ばれる）ビデオコーダによって実行されると記述されている。
【０１２８】
[0141]方法６００は、ブロック６０１から開始する。ブロック６０５において、コーダは、バッファのフルネスが第１の上位フルネス閾値以上であるかどうかを決定する。バッファのフルネスが第１の上位フルネス閾値以上であるとコーダが決定すると、方法６００は、ブロック６１５に進む。バッファのフルネスが第１の上位フルネス閾値未満であるとコーダが決定すると、方法は、ブロック６１０に進む。ブロック６１０において、コーダは、バッファのフルネスが第１の下位フルネス閾値以下であるかどうかを決定する。バッファのフルネスが第１の下位フルネス閾値以下であるとコーダが決定すると、方法６００は、ブロック６２０に進む。バッファのフルネスが第１の下位フルネス閾値よりも大きいとコーダが決定すると、方法６００は、ブロック６３５に進む。
【０１２９】
[0142]ブロック６１５において、コーダは、バッファのフルネスが第１の上位フルネス閾値以上であると決定することに応答して、現在ブロックについてのＱＰ調整値を算出するために第１の技法を選択する。特定の実施では、コーダは、バッファのフルネスが第１の上位フルネス閾値未満であり、かつ、第１の下位フルネス閾値よりも大きいと決定することに応答して、現在ブロックについてのＱＰ調整値を算出するためにデフォルト技法を選択し得る。これらの実施では、方法６００は、ブロック６１０からブロック６２５に進み得る。
【０１３０】
[0143]ブロック６２０において、コーダは、バッファのフルネスが第１の下位フルネス閾値以下であると決定することに応答して、現在ブロックについてのＱＰ調整値を算出するために第２の技法を選択する。ブロック６２５において、コーダは、選択された技法を介して、現在ブロックについてのＱＰ調整値を算出する。ブロック６３０において、コーダは、そのＱＰ調整値に基づいて、現在ブロックについてのＱＰ値を決定する。方法６００は、ブロック６３５で終了する。
【０１３１】
[0144]方法６００では、図１２に示されるブロックのうちの１つ又は複数は、除去され得（例えば、実行されず）、及び／又は、方法が実行される順序が交換され得る。いくつかの実施形態では、追加のブロックが、方法６００に追加され得る。本開示の実施形態は、図１２に示される例に限られるものでもそれらによって制限されるものでもなく、他の変形が、本開示の精神から逸脱することなく実施され得る。
【０１３２】
他の検討事項
[0145]本開示の態様は、図２Ａのビデオエンコーダ２０のようなエンコーダの観点から記述されていることに留意されるべきである。しかしながら、当業者であれば、上述したものの逆動作が、例えば、図２Ｂのビデオデコーダによって、生成されたビットストリームを復号するために適用され得ることは認識するであろう。
【０１３３】
[0146]本明細書で開示された情報及び信号は、多種多様な技術及び技法のうちの任意のものを使用して表わされ得る。例えば、上の記述全体にわたって参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、及びチップは、電圧、電流、電磁波、磁場又は磁性粒子、光場又は光粒子、又はこれらの任意の組み合わせによって表され得る。
【０１３４】
[0147]本明細書で開示された実施形態と関連して記述されている実例となる様々な論理ブロック及びアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、又は両方の組み合わせとして実施され得る。このハードウェア及びソフトウェアの互換性を明確に例示するために、実例となる様々な構成要素、ブロック、及びステップが、概してそれらの機能性の観点から上に記述されている。このような機能性がハードウェアとして実施されるかソフトウェアとして実施されるかは、特定のアプリケーション及びシステム全体に課せられる設計制約に依存する。当業者は、記述した機能性を特定のアプリケーションごとに様々な方法で実施し得るが、このような実施の決定は、本開示の範囲からの逸脱をさせるものとして解釈されるべきでない。
【０１３５】
[0148]本明細書で記述された技法は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの任意の組み合わせで実施され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、又は、ワイヤレス通信デバイスハンドセット、自動車、電気器具、ウェアラブルなもの、及び／又は他のデバイスへのアプリケーションを含む複数の用途を有する集積回路デバイスのような様々なデバイスの任意のもので実施され得る。デバイス又は構成要素として記述された任意の特徴は、集積論理デバイスで纏めて、又は、ディスクリートではあるが相互動作可能な論理デバイスとして別々に実施され得る。ソフトウェアで実施される場合、この技法は、少なくとも部分的に、命令を含むプログラムコードを備えるコンピュータ読取可能なデータ記憶媒体によって実現され得、これらの命令は、実行されると、上述した方法のうちの１つ又は複数を実行する。コンピュータ読取可能なデータ記憶媒体は、パッケージングマテリアルを含み得る、コンピュータプログラム製品の一部分を形成し得る。コンピュータ読取可能な媒体は、同期動的ランダムアクセスメモリ（ＳＤＭＡＭ）のようなランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、不揮発ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的消去可能なプログラマブル読取専用メモリ（ＥＥＰＲＯＭ（登録商標））、ＦＬＡＳＨメモリ、磁気又は光学データ記憶媒体、等のメモリ又はデータ記憶媒体を備え得る。技法は、追加的に又は代替的に、少なくとも部分的に、伝播される信号又は波のような、コンピュータによってアクセス、読取、及び／又は実行されることができ、かつ、データ構造又は命令の形式でプログラムコードを搬送又は通信するコンピュータ読取可能な通信媒体によって実現され得る。
【０１３６】
[0149]プログラムコードは、１つ又は複数のデジタルシグナルプロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、又は他の同等の集積回路又はディスクリート論理回路のような１つ又は複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で記述された技法のうちの任意のものを実行するように構成され得る。汎用プロセッサは、マイクロプロセッサであり得るが、代替的に、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、又はステートマシンであり得る。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、ＤＳＰと、１つのマイクロプロセッサ、複数のマイクロプロセッサ、ＤＳＰコアに連結した１つ又は複数のマイクロプロセッサ、又は任意の他のそのような構成との組み合わせとして実施され得る。従って、「プロセッサ」という用語は、本明細書で使用される場合、前述の構造の任意のもの、前述の構造の任意の組み合わせ、又は本明細書で記述された技法の実施に適した任意の他の構造又は装置を指し得る。加えて、いくつかの態様では、本明細書で記述された機能性は、符号化及び復号のために構成された専用のソフトウェア及び／又はハードウェアモジュール内に提供され得るか、又は、複合ビデオエンコーダ−デコーダ（ＣＯＤＥＣ）に組み込まれ得る。また、本技法は、１つ又は複数の回路又は論理要素で完全に実施され得る。
【０１３７】
[0150]本開示の技法は、ワイヤレスハンドセット、ＩＣ、又はＩＣのセット（例えば、チップセット）を含む、幅広い種類のデバイス又は装置で実施され得る。様々な構成要素又はユニットは、開示された技法を実行するように構成されたデバイスの機能的な態様を強調するように本開示では記述されているが、必ずしも異なるハードウェアユニットによる実現を必要とするわけではない。むしろ、上述したように、様々なユニットは、コデックハードウェアユニットへと組み合わせられるか、又は、上述された１つ又は複数のプロセッサを含む、相互動作するハードウェアユニットの一群によって、好適なソフトウェア及び／又はファームウェアと併せて提供され得る。
【０１３８】
[0151]前述のものは、様々な異なる実施形態に関連して記述されているが、１つの実施形態からの特徴又は要素は、本開示の教示から逸脱することなく、他の実施形態と組み合わせられる。しかしながら、それぞれの実施形態間の特徴の組み合わせは、必ずしもそれらに限られるわけではない。本開示の様々な実施形態が記述されている。これらの実施形態及び他の実施形態は、以下の特許請求の範囲の範囲内である。
【図１Ａ】
2018515015.tif 000007
【図１Ｂ】
2018515015.tif 000008
【図２Ａ】
2018515015.tif 000009
【図２Ｂ】
2018515015.tif 000010
【図３】
2018515015.tif 000011
【図４】
2018515015.tif 000012
【図５】
2018515015.tif 000013
【図６】
2018515015.tif 000014
【図７】
2018515015.tif 000015
【図８】
2018515015.tif 000016
【図９】
2018515015.tif 000017
【図１０】
2018515015.tif 000018
【図１１】
2018515015.tif 000019
【図１２】
2018515015.tif 000020
【国際調査報告】
2018515015.tif 000021
2018515015.tif 000022
2018515015.tif 000023
2018515015.tif 000024
2018515015.tif 000025