(57)【要約】  画像の複雑な領域を検出するための方法及び装置が開示される。一例では、本方法は、現在ブロック、次のブロック及び前のブロックの複雑さ値を計算することを伴い得る。本方法は、（ｉ）前の複雑さ値が第１の閾値よりも小さいことと、次の複雑さ値が第２の閾値よりも大きいこととを検出すること、及び（ｉｉ）現在ブロックへの遷移も前のブロックへの遷移も平坦−複雑領域遷移ではないと決定することを伴い得る。本方法は、（ｉ）及び（ｉｉ）に応答して、次のブロックに遷移するときに平坦−複雑領域遷移を検出することを伴い得る。
2018515016.tif 000002
【特許請求の範囲】
【請求項１】
画像の複雑な領域を検出するための方法であって、前記画像のスライスが、現在ブロックと、次のブロックと、前のブロックとを備え、前記方法が、
前記現在ブロックの現在複雑さ値と、前記次のブロックの次の複雑さ値と、前記前のブロックの前の複雑さ値とを計算することと、
前記前の複雑さ値が第１の閾値よりも小さいことと、前記次の複雑さ値が第２の閾値よりも大きいこととを検出することと、ここにおいて、前記第２の閾値が前記第１の閾値よりも大きい、
前記現在ブロックへの遷移も前記前のブロックへの遷移も平坦−複雑領域遷移ではないと決定することと、
（ｉ）前記前の複雑さ値が前記第１の閾値よりも小さいことと、前記次の複雑さ値が前記第２の閾値よりも大きいこととを検出すること、及び（ｉｉ）前記現在ブロックへの前記遷移も前記前のブロックへの前記遷移も平坦−複雑領域遷移ではないと決定することに応答して、前記次のブロックに遷移するときに平坦−複雑領域遷移を検出することと
を備える、方法。
【請求項２】
前記現在ブロックの前記現在複雑さ値と、前記次のブロックの前記次の複雑さ値と、前記前のブロックの前記前の複雑さ値とを計算することが、前記現在ブロック、前記次のブロック及び前記前のブロックのうちの各ブロックについて、（ｉ）変換係数を決定するために変換を適用することと、（ｉｉ）前記変換係数の定義された絶対和を決定することとを備える、請求項１に記載の方法。
【請求項３】
前記変換を適用することが、離散コサイン変換（ＤＣＴ）及びアダマール変換のうちの１つを適用することを備える、請求項２に記載の方法。
【請求項４】
前記ＤＣＴ変換及び前記アダマール変換のうちの１つを適用する前に、前記現在ブロック、前記次のブロック及び前記前のブロックの各々に色変換を適用することを更に備える、請求項３に記載の方法。
【請求項５】
前記定義された絶対和を決定することが、前記変換係数の少なくともサブセットの絶対和及び絶対２乗和のうちの１つを決定することを備える、請求項２に記載の方法。
【請求項６】
絶対和及び絶対２乗和のうちの１つを決定することが、前記変換係数のサブセットの絶対和及び絶対２乗和のうちの１つを計算することを備え、前記サブセットが、直流（ＤＣ）係数に関する第１の変換係数及び低周波数係数に関する第２の変換係数のうちの少なくとも１つを含まない、請求項５に記載の方法。
【請求項７】
平坦−複雑領域遷移を検出することに応答して、量子化パラメータ（ＱＰ）を調整することを更に備える、請求項１に記載の方法。
【請求項８】
前記ＱＰを調整することが、平坦−複雑領域遷移を検出することに応答して、ＱＰ調整値だけ前記ＱＰを増加させることを備える、請求項７に記載の方法。
【請求項９】
前記現在ブロックへの前記遷移も前記前のブロックへの前記遷移も平坦−複雑領域遷移ではないと前記決定することが、現在ブロック時間における前記現在ブロック、前記次のブロック及び前記前のブロックの前記複雑さ値に基づく、請求項１に記載の方法。
【請求項１０】
前記現在ブロックへの前記遷移も前記前のブロックへの前記遷移も平坦−複雑領域遷移ではないと前記決定することが、1つ以上前のブロック時間における前記現在ブロック、前記次のブロック及び前記前のブロックの前記複雑さ値に基づく、請求項１に記載の方法。
【請求項１１】
前記次のブロックに遷移するときに平坦−複雑領域遷移を検出することに応答して、前記遷移の指示をコーデックのエンコーダからデコーダに信号伝達することを更に備える、請求項１に記載の方法。
【請求項１２】
固定レートコーデックのパラメータに基づいて、前記第１の閾値及び前記第２の閾値のうちの少なくとも１つをチューニングすることを更に備える、請求項１に記載の方法。
【請求項１３】
画像の複雑な領域を検出するための機器であって、前記機器が、
前記画像に関係するビデオ情報を記憶するように構成されたメモリと、前記画像のスライスが、現在ブロックと、次のブロックと、前のブロックとを備える、
前記メモリに結合された少なくとも１つのプロセッサ回路と
を備え、前記少なくとも１つのプロセッサ回路が、
前記現在ブロックの現在複雑さ値と、前記次のブロックの次の複雑さ値と、前記前のブロックの前の複雑さ値とを計算することと、
前記前の複雑さ値が第１の閾値よりも小さいことと、前記次の複雑さ値が第２の閾値よりも大きいこととを検出することと、ここにおいて、前記第２の閾値が前記第１の閾値よりも大きい、
前記現在ブロックへの遷移も前記前のブロックへの遷移も平坦−複雑領域遷移ではないと決定することと、
（ｉ）前記前の複雑さ値が前記第１の閾値よりも小さいことと、前記次の複雑さ値が前記第２の閾値よりも大きいこととを検出すること、及び（ｉｉ）前記現在ブロックへの前記遷移も前記前のブロックへの前記遷移も平坦−複雑領域遷移ではないと決定することに応答して、前記次のブロックに遷移するときに平坦−複雑領域遷移を検出することと
を行うように構成された、
機器。
【請求項１４】
前記少なくとも１つのプロセッサ回路が、前記現在ブロック、前記次のブロック及び前記前のブロックのうちの各ブロックについて、（ｉ）変換係数を決定するために変換を適用することと、（ｉｉ）前記変換係数の定義された絶対和を決定することとを介してを備える、前記現在ブロックの前記現在複雑さ値と、前記次のブロックの前記次の複雑さ値と、前記前のブロックの前記前の複雑さ値とを計算するように更に構成された、請求項１３に記載の機器。
【請求項１５】
前記少なくとも１つのプロセッサ回路が、離散コサイン変換（ＤＣＴ）及びアダマール変換のうちの１つを適用することを介して、前記変換を適用するように更に構成された、請求項１４に記載の機器。
【請求項１６】
前記少なくとも１つのプロセッサ回路が、前記ＤＣＴ変換及び前記アダマール変換のうちの１つを適用する前に、前記現在ブロック、前記次のブロック及び前記前のブロックの各々に色変換を適用するように更に構成された、請求項１５に記載の機器。
【請求項１７】
前記少なくとも１つのプロセッサ回路が、前記変換係数の少なくともサブセットの絶対和及び絶対２乗和のうちの１つを決定することを介して、前記定義された絶対和を決定するように更に構成された、請求項１４に記載の機器。
【請求項１８】
前記少なくとも１つのプロセッサ回路が、前記変換係数のサブセットの絶対和及び絶対２乗和のうちの１つを計算することを介して、絶対和及び絶対２乗和のうちの１つを決定するように更に構成され、前記サブセットが、直流（ＤＣ）係数に関する第１の変換係数及び低周波数係数に関する第２の変換係数のうちの少なくとも１つを含まない、請求項１７に記載の機器。
【請求項１９】
前記少なくとも１つのプロセッサ回路が、平坦−複雑領域遷移を検出することに応答して、量子化パラメータ（ＱＰ）を調整するように更に構成された、請求項１３に記載の機器。
【請求項２０】
前記少なくとも１つのプロセッサ回路が、平坦−複雑領域遷移を検出することに応答して、ＱＰ調整値だけ前記ＱＰを増加させることを介して、前記ＱＰを調整するように更に構成された、請求項１９に記載の機器。
【請求項２１】
前記少なくとも１つのプロセッサ回路が、現在ブロック時間における前記現在ブロック、前記次のブロック及び前記前のブロックの前記複雑さ値に基づいて、前記現在ブロックへの前記遷移も前記前のブロックへの前記遷移も平坦−複雑領域遷移ではないと決定するように更に構成された、請求項１３に記載の機器。
【請求項２２】
前記少なくとも１つのプロセッサ回路が、1つ以上前のブロック時間における前記現在ブロック、前記次のブロック及び前記前のブロックの前記複雑さ値に基づいて、前記現在ブロックへの前記遷移も前記前のブロックへの前記遷移も平坦−複雑領域遷移ではないと決定するように更に構成された、請求項１３に記載の機器。
【請求項２３】
画像の複雑な領域を検出するための装置であって、前記画像のスライスが、現在ブロックと、次のブロックと前のブロックとを備え、前記装置が、
前記現在ブロックの現在複雑さ値と、前記次のブロックの次の複雑さ値と、前記前のブロックの前の複雑さ値とを計算するための手段と、
前記前の複雑さ値が第１の閾値よりも小さいことと、前記次の複雑さ値が第２の閾値よりも大きいこととを検出するための手段と、ここにおいて、前記第２の閾値が前記第１の閾値よりも大きい、
前記現在ブロックへの遷移も前記前のブロックへの遷移も平坦−複雑領域遷移ではないと決定するための手段と、
（ｉ）前記前の複雑さ値が前記第１の閾値よりも小さいことと、前記次の複雑さ値が前記第２の閾値よりも大きいこととを検出すること、及び（ｉｉ）前記現在ブロックへの前記遷移も前記前のブロックへの前記遷移も平坦−複雑領域遷移ではないと決定することに応答して、前記次のブロックに遷移するときに平坦−複雑領域遷移を検出するための手段と
を備える、装置。
【請求項２４】
前記現在ブロックの前記現在複雑さ値と、前記次のブロックの前記次の複雑さ値と、前記前のブロックの前記前の複雑さ値とを計算するための前記手段が、前記現在ブロック、前記次のブロック及び前記前のブロックのうちの各ブロックについて、変換係数を決定するために変換を適用するための手段と、前記変換係数の定義された絶対和を決定するための手段とを備える、請求項２３に記載の装置。
【請求項２５】
前記変換を適用するための前記手段が、離散コサイン変換（ＤＣＴ）及びアドマール変換のうちの１つを適用するための手段と、前記現在ブロック、前記次のブロック及び前記前のブロックの各々に色変換を適用するための手段とを備える、請求項２４に記載の装置。
【請求項２６】
平坦−複雑領域遷移を検出することに応答して、量子化パラメータ（ＱＰ）を調整するための手段を更に備える、請求項２３に記載の装置。
【請求項２７】
画像に関係するビデオ情報を記憶した非一時的コンピュータ可読記憶媒体であって、ここにおいて、前記画像のスライスが、現在ブロックと、次のブロックと、前のブロックとを備え、ここにおいて、前記記憶媒体は、実行されたとき、機器のプロセッサに、
前記現在ブロックの現在複雑さ値と、前記次のブロックの次の複雑さ値と、前記前のブロックの前の複雑さ値とを計算することと、
前記前の複雑さ値が第１の閾値よりも小さいことと、前記次の複雑さ値が第２の閾値よりも大きいこととを検出することと、ここにおいて、前記第２の閾値が前記第１の閾値よりも大きい、
前記現在ブロックへの遷移も前記前のブロックへの遷移も平坦−複雑領域遷移ではないと決定することと、
（ｉ）前記前の複雑さ値が前記第１の閾値よりも小さいことと、前記次の複雑さ値が前記第２の閾値よりも大きいこととを検出すること、及び（ｉｉ）前記現在ブロックへの前記遷移も前記前のブロックへの前記遷移も平坦−複雑領域遷移ではないと決定することに応答して、前記次のブロックに遷移するときに平坦−複雑領域遷移を検出することと
を行わせる命令を更に記憶した、非一時的コンピュータ可読記憶媒体。
【請求項２８】
実行されたとき、前記プロセッサに、前記現在ブロック、前記次のブロック、及び前記前のブロックのうちの各ブロックについて、変換係数を決定するために変換を適用することと、前記変換係数の定義された絶対和を決定することとを介して、前記現在ブロックの前記現在複雑さ値と、前記次のブロックの前記次の複雑さ値と、前記前のブロックの前記前の複雑さ値とを計算させる命令を更に記憶した、請求項２７に記載の非一時的コンピュータ可読記憶媒体。
【請求項２９】
実行されたとき、前記プロセッサに、離散コサイン変換（ＤＣＴ）及びアドマール変換のうちの１つを適用することと、前記現在ブロック、前記次のブロック及び前記前のブロックの各々に色変換を適用することとを介して、前記変換を適用させる命令を更に記憶した、請求項２８に記載の非一時的コンピュータ可読記憶媒体。
【請求項３０】
実行されたとき、前記プロセッサに、平坦−複雑領域遷移を検出することに応答して、量子化パラメータ（ＱＰ）を調整させる命令を更に記憶した、請求項２７に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本開示は、ビデオコード化及び圧縮の分野に関し、詳細には、表示ストリーム圧縮（ＤＳＣ：display stream compression）など、表示リンクを介した送信のためのビデオ圧縮に関する。
【背景技術】
【０００２】
[0002]デジタルビデオ機能は、デジタルテレビジョン、携帯情報端末（ＰＤＡ）、ラップトップコンピュータ、デスクトップモニタ、デジタルカメラ、デジタル記録機器、デジタルメディアプレーヤ、ビデオゲーム機器、ビデオゲームコンソール、セルラー電話又は衛星無線電話、ビデオ遠隔会議機器などを含む、広範囲にわたる表示器に組み込まれ得る。適切な発信源機器に表示器を接続するために、表示リンクが使用される。表示リンクの帯域幅要件は表示器の解像度に比例し、従って、高解像度表示器は、大きい帯域幅の表示リンクを必要とする。幾つかの表示リンクは、高解像度表示器をサポートするための帯域幅を有しない。高解像度表示器にデジタルビデオを与えるためにより低い帯域幅の表示リンクが使用され得るように帯域幅要件を低減するために、ビデオ圧縮が使用され得る。
【０００３】
[0003]他のものが、画素データに対して画像圧縮を利用することを試みた。しかしながら、そのような方式は、時々視覚的ロスレスでないか、又は従来の表示装置において実装することが困難で費用がかかることがある。
【０００４】
[0004]ビデオエレクトロニクス規格協会（ＶＥＳＡ：Video Electronics Standards Association）は、表示リンクビデオ圧縮のための規格として、表示ストリーム圧縮（ＤＳＣ）を開発した。ＤＳＣなど、表示リンクビデオ圧縮技法は、特に、視覚的ロスレスであるピクチャ品質（即ち、圧縮がアクティブであることをユーザがわからないような品質のレベルを有するピクチャ）を与えるべきである。表示リンクビデオ圧縮技法はまた、従来のハードウェアを用いてリアルタイムに実装することが容易で費用がかからない方式を与えるべきである。
【発明の概要】
【０００５】
[0005]本開示のシステム、方法及び機器は、それぞれ幾つかの発明的態様を有し、それらのうちの単一の態様が、本明細書で開示する望ましい属性を単独で担当するとは限らない。
【０００６】
[0006]一態様では、画像の複雑な領域を検出するための方法が提供され、ここにおいて、画像のスライスが、現在ブロックと、次のブロックと、前のブロックとを含む。本方法は、現在ブロックの現在複雑さ（complexity）値と、次のブロックの次の複雑さ値と、前のブロックの前の複雑さ値とを計算することを伴い得る。本方法は、前の複雑さ値が第１の閾値よりも小さいことと、次の複雑さ値が第２の閾値よりも大きいこととを検出することと、ここにおいて、第２の閾値は第１の閾値よりも大きい、及び現在ブロックへの遷移も前のブロックへの遷移も平坦−複雑領域遷移（flat-to-complex region transition）ではないと決定することとを伴い得る。本方法は、（ｉ）前の複雑さ値が第１の閾値よりも小さいことと、次の複雑さ値が第２の閾値よりも大きいこととを検出すること、及び（ｉｉ）現在ブロックへの遷移も前のブロックへの遷移も平坦−複雑領域遷移ではないと決定することに応答して、次のブロックに遷移するときに平坦−複雑領域遷移を検出することを伴い得る。
【０００７】
[0007]別の態様では、現在ブロックの現在複雑さ値と、次のブロックの次の複雑さ値と、前のブロックの前の複雑さ値とを計算することが、現在ブロック、次のブロック、及び前のブロックのうちの各ブロックについて、（ｉ）変換係数を決定するために変換（例えば、離散コサイン変換（ＤＣＴ）又はアダマール変換）を適用することと、（ｉｉ）変換係数の定義された絶対和を決定することとを伴い得る。また別の態様では、本方法は、平坦−複雑領域遷移を検出することに応答して、量子化パラメータ（ＱＰ：quantization parameter）を調整することを更に伴い得る。
【０００８】
[0008]更に別の態様では、画像の複雑な領域を検出するための機器が提供され、ここにおいて、画像のスライスは、現在ブロックと、次のブロックと、前のブロックとを含む。本機器は、画像に関係するビデオ情報を記憶するように構成されたメモリを含み得る。本機器は、メモリに結合され、現在ブロックの現在複雑さ値と、次のブロックの次の複雑さ値と、前のブロックの前の複雑さ値とを計算することと、前の複雑さ値が第１の閾値よりも小さいことと、次の複雑さ値が第２の閾値よりも大きいこととを検出することと、ここにおいて、第２の閾値が第１の閾値よりも大きい、現在ブロックへの遷移も前のブロックへの遷移も平坦−複雑領域遷移ではないと決定することと、（ｉ）前の複雑さ値が第１の閾値よりも小さいことと、次の複雑さ値が第２の閾値よりも大きいこととを検出すること、及び（ｉｉ）現在ブロックへの遷移も前のブロックへの遷移も平坦−複雑領域遷移ではないと決定することに応答して、次のブロックに遷移するときに平坦−複雑領域遷移を検出することとを行うように構成された、少なくとも１つのプロセッサ（例えば、集積回路（ＩＣ）及び／又はグラフィックス処理ユニット（ＧＰＵ）の部分）を含み得る。
【図面の簡単な説明】
【０００９】
【図１Ａ】[0009]本開示で説明する態様による技法を利用し得る例示的なビデオ符号化及び復号システムを示すブロック図。
【図１Ｂ】[0010]本開示で説明する態様による技法を実行し得る別の例示的なビデオ符号化及び復号システムを示すブロック図。
【図２Ａ】[0011]本開示で説明する態様による技法を実装し得るビデオエンコーダの一例を示すブロック図。
【図２Ｂ】[0012]本開示で説明する態様による技法を実装し得るビデオデコーダの一例を示すブロック図。
【図３】[0013]（１つ又は複数の）量子化パラメータ（ＱＰ）調整値（adjustment value）を決定することへの例示的な手法を示す図。
【図４】[0014]画像内の平坦な領域から複雑な領域への例示的な遷移を示す図。
【図５】[0015]平坦−複雑領域遷移を検出するための例示的なシステムを示す図。
【図６】[0016]平坦−複雑領域検出のための記憶ユニットを示す図。
【図７】[0017]本開示で説明する態様による、画像中の複雑な領域を検出するための例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００１０】
[0018]概して、本開示は、表示ストリーム圧縮（ＤＳＣ）などのビデオ圧縮技法を改善する技法に関する。より詳細には、本開示は、コード化されるべき画像の平坦な又は滑らかな（smooth）領域から複雑な領域への遷移を検出するためのシステム及び方法に関する。本明細書では、例えばＤＳＣなど、ビデオ圧縮技法のコンテキストにおいて、ビデオデータ中の複雑領域検出のための技法が説明される。本開示の態様は、コード化中のレートバッファのアンダーフロー又はオーバーフローが回避されることを保証することに関する。
【００１１】
[0019]幾つかの実施形態について、ＤＳＣ規格のコンテキストにおいて本明細書で説明するが、本明細書で開示するシステム及び方法が任意の好適なビデオコード化規格に適用可能であり得ることを、当業者は諒解されよう。例えば、本明細書で開示する実施形態は、以下の規格、即ち、国際電気通信連合（ＩＴＵ）電気通信標準化部門（ＩＴＵ−Ｔ）Ｈ．２６１、国際標準化機構／国際電気標準会議（ＩＳＯ／ＩＥＣ）ムービングピクチャエキスパートグループ１（ＭＰＥＧ−１）Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２又はＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４、高効率ビデオコード化（ＨＥＶＣ）のうちの１つ又は複数、及びそのような規格に対する任意の拡張に適用可能であり得る。本明細書で説明する技法は、特に、固定ビットレート（ＣＢＲ：constant bit rate）バッファモデルを組み込む規格に適用可能であり得る。また、本開示で説明する技法は、将来開発される規格の一部になり得る。言い換えれば、本開示で説明する技法は、前に開発されたビデオコード化規格、現在開発中のビデオコード化規格、及び次のビデオコード化規格に適用可能であり得る。
【００１２】
[0020]本開示の概念は、実質的に視覚的ロスレス性能をもつ様々なタイプのコンテンツを符号化／復号することを目的とした幾つかの要素及び／又はモードを含む、コーデック（例えば、ＤＳＣ）中に組み込まれるか、又はそれの一部になり得る。本開示は、滑らかな／平坦な領域（例えば、コード化することが容易である領域）から、複雑な領域（例えば、コード化することが比較的困難であるか、又はコード化するためにより高い数のビットを必要とする領域）への遷移を検出する、複雑領域検出アルゴリズムを提供する。そのような遷移が検出されたとき、コーデックにおいて使用される量子化パラメータ（ＱＰ）は、現在ブロックをコード化するために必要とされる予想レートを低減するために、高い値に増加される。このことは、複雑な領域中の視覚情報の複雑さが、滑らかな／平坦な領域の場合に生じるよりも多くアーティファクトをマスキングし得るので、望ましい。更に、低レートは、コーダが複雑なブロックに対してあまりに多くのビットを（例えば、ターゲットビットレートをかなり超えて）費やすのを防ぐために望ましい。
ビデオコード化規格
[0021]ビデオ画像、ＴＶ画像、静止画像又はビデオレコーダ若しくはコンピュータによって生成された画像など、デジタル画像は、水平ライン及び垂直ラインで構成された画素又はサンプルを含み得る。単一の画像中の画素の数は一般に数万個である。各画素は、一般に、ルミナンス情報とクロミナンス情報とを含んでいる。圧縮がなければ、画像エンコーダから画像デコーダに搬送されるべき情報の甚だしい量は、リアルタイム画像送信を実行不可能にするであろう。送信されるべき情報の量を低減するために、ＪＰＥＧ、ＭＰＥＧ及びＨ．２６３規格など、幾つかの異なる圧縮方法が開発された。
【００１３】
[0022]ビデオコード化規格は、ＩＴＵ−Ｔ  Ｈ．２６１と、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌと、ＩＴＵ−Ｔ  Ｈ．２６２又はＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌと、ＩＴＵ−Ｔ  Ｈ．２６３と、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌと、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４と、そのような規格の拡張を含むＨＥＶＣとを含む。
【００１４】
[0023]更に、ＶＥＳＡによって、あるビデオコード化規格、即ち、ＤＳＣが開発された。ＤＳＣ規格は、表示リンクを介した送信のためにビデオを圧縮することができるビデオ圧縮規格である。表示器の解像度が増加するにつれて、表示器を駆動するために必要とされるビデオデータの帯域幅は、対応して増加する。幾つかの表示リンクは、そのような解像度について表示器にビデオデータの全てを送信するための帯域幅を有しないことがある。従って、ＤＳＣ規格は、表示リンクを介した相互運用可能な、視覚的ロスレス圧縮のための圧縮規格を規定する。
【００１５】
[0024]ＤＳＣ規格は、Ｈ．２６４及びＨＥＶＣなど、他のビデオコード化規格とは異なる。ＤＳＣは、フレーム内圧縮を含むが、フレーム間圧縮を含まず、これは、ビデオデータをコード化する際にＤＳＣ規格によって時間的情報が使用されないことがあることを意味する。対照的に、他のビデオコード化規格は、それらのビデオコード化技法においてフレーム間圧縮を採用し得る。
【００１６】
ビデオコード化システム
[0025]添付の図面を参照しながら新規のシステム、装置及び方法の様々な態様について以下でより十分に説明する。但し、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示する任意の特定の構造又は機能に限定されるものと解釈されるべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるために与えるものである。本明細書の教示に基づいて、本開示の範囲は、本開示の他の態様とは無関係に実装されるにせよ、本開示の他の態様と組み合わせて実装されるにせよ、本明細書で開示する新規のシステム、装置、及び方法のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。例えば、本明細書に記載する態様をいくつ使用しても、装置は実装され得、又は方法は実施され得る。更に、本開示の範囲は、本明細書に記載する本開示の様々な態様に加えて又はそれらの態様以外に、他の構造、機能、又は構造及び機能を使用して実施されるそのような装置又は方法をカバーするものとする。本明細書で開示するどの態様も請求項の１つ又は複数の要素によって実施され得ることを理解されたい。
【００１７】
[0026]本明細書では特定の態様について説明するが、これらの態様の多くの変形及び置換は本開示の範囲内に入る。好適な態様の幾つかの利益及び利点について説明するが、本開示の範囲は特定の利益、使用、又は目的に限定されるものではない。むしろ、本開示の態様は、様々なワイヤレス技術、システム構成、ネットワーク、及び伝送プロトコルに広く適用可能であるものとし、それらの幾つかを例として、図及び好適な態様について以下の説明において示す。発明を実施するための形態及び図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲及びそれの均等物によって定義される。
【００１８】
[0027]添付の図面は例を示している。添付の図面中の参照番号によって示される要素は、以下の説明における同様の参照番号によって示される要素に対応する。本開示では、序数語（例えば、「第１の」、「第２の」、「第３の」など）で始まる名前を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。むしろ、そのような序数語は、同じ又は同様のタイプの異なる要素を指すために使用されるにすぎない。
【００１９】
[0028]図１Ａは、本開示で説明する態様による技法を利用し得る例示的なビデオコード化システム１０を示すブロック図である。本明細書で使用し説明する「ビデオコーダ」又は「コーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコード化」又は「コード化」という用語は、ビデオ符号化とビデオ復号とを総称的に指すことがある。ビデオエンコーダ及びビデオデコーダに加えて、本出願で説明する態様は、トランスコーダ（例えば、ビットストリームを復号し、別のビットストリームを再符号化することができる機器）及びミドルボックス（例えば、ビットストリームを変更、変換及び／又は場合によっては操作することができる機器）など、他の関係する機器に拡張され得る。
【００２０】
[0029]図１Ａに示されているように、ビデオコード化システム１０は、宛先機器１４によって後で復号されるべき符号化ビデオデータを生成する発信源機器１２を含む。図１Ａの例では、発信源機器１２及び宛先機器１４は、別個の機器を構成する。但し、発信源機器１２及び宛先機器１４は、図１Ｂの例に示されているように、同じ機器上にあるか、又はそれの一部であり得ることに留意されたい。
【００２１】
[0030]もう一度図１Ａを参照すると、発信源機器１２及び宛先機器１４は、それぞれ、デスクトップコンピュータ、ノートブック（例えば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、所謂「スマート」フォンなどの電話ハンドセット、所謂「スマート」パッド、テレビジョン、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータ、ビデオストリーミング機器、アイウェア及び／又はウェアラブルコンピュータなど、エンティティ（例えば、人間、動物及び／又は別の被制御機器）によって（に）装着可能な（又は着脱自在に取付け可能な）機器、エンティティ内で消費、摂取、又は配置され得る機器又は装置などを含む、広範囲にわたる機器のいずれかを備え得る。様々な実施形態では、発信源機器１２及び宛先機器１４は、ワイヤレス通信のために装備され得る。
【００２２】
[0031]宛先機器１４は、復号されるべき符号化ビデオデータをリンク１６を介して受信し得る。リンク１６は、発信源機器１２から宛先機器１４に符号化ビデオデータを移動することが可能な任意のタイプの媒体又は機器を備え得る。図１Ａの例では、リンク１６は、発信源機器１２が符号化ビデオデータをリアルタイムで宛先機器１４に送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先機器１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトル又は１つ以上の物理伝送線路など、任意のワイヤレス又はワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク又はインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局又は発信源機器１２から宛先機器１４への通信を可能にするために有用であり得る任意の他の機器を含み得る。
【００２３】
[0032]図１Ａの例では、発信源機器１２は、ビデオ発信源１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。場合によっては、出力インターフェース２２は、変調器／復調器（モデム）及び／又は送信機を含み得る。発信源機器１２において、ビデオ発信源１８は、撮像装置、例えばビデオカメラ、以前に撮られたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース及び／又は発信源ビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどの発信源、若しくはそのような発信源の組合せを含み得る。一例として、ビデオ発信源１８がビデオカメラである場合、発信源機器１２及び宛先機器１４は、図１Ｂの例に示されているように、所謂「カメラフォン」又は「ビデオフォン」を形成し得る。但し、本開示で説明する技法は、概してビデオコード化に適用可能であり得、ワイヤレス及び／又はワイヤード適用例に適用され得る。
【００２４】
[0033]撮られたビデオ、以前に撮られたビデオ、又はコンピュータ生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオデータは、発信源機器１２の出力インターフェース２２を介して宛先機器１４に送信され得る。符号化ビデオデータは、更に（又は代替として）、復号及び／又は再生のための宛先機器１４又は他の機器による後のアクセスのために記憶装置３１上に記憶され得る。図１Ａ及び図１Ｂに示されているビデオエンコーダ２０は、図２Ａ示されているビデオエンコーダ２０、又は本明細書で説明する他のビデオエンコーダを備え得る。
【００２５】
[0034]図１Ａの例では、宛先機器１４は、入力インターフェース２８と、ビデオデコーダ３０と、表示装置３２とを含む。場合によっては、入力インターフェース２８は、受信機及び／又はモデムを含み得る。宛先機器１４の入力インターフェース２８は、リンク１６を介して及び／又は記憶装置３１から符号化ビデオデータを受信し得る。リンク１６を介して通信され、又は記憶装置３１上に与えられた符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ３０などのビデオデコーダが使用するためのビデオエンコーダ２０によって生成される様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体上に記憶された、又はファイルサーバ記憶された符号化ビデオデータに含まれ得る。図１Ａ及び図１Ｂに示されているビデオデコーダ３０は、図２Ｂに示されているビデオデコーダ３０、又は本明細書で説明する他のビデオデコーダを備え得る。
【００２６】
[0035]表示装置３２は、宛先機器１４と一体化されるか、又はその外部にあり得る。幾つかの例では、宛先機器１４は、一体型表示装置を含み、また、外部表示装置とインターフェースするように構成され得る。他の例では、宛先機器１４は表示装置であり得る。概して、表示装置３２は、復号ビデオデータをユーザに対して表示し、液晶表示器（ＬＣＤ）、プラズマ表示器、有機発光ダイオード（ＯＬＥＤ）表示器、又は別のタイプの表示装置など、様々な表示装置のいずれかを備え得る。
【００２７】
[0036]関係する態様では、図１Ｂは例示的なビデオコード化システム１０’を示し、ここにおいて、発信源機器１２及び宛先機器１４は機器１１上にあるか、又はそれの一部である。機器１１は、「スマート」フォンなどの電話ハンドセットであり得る。機器１１は、発信源機器１２及び宛先機器１４と動作可能に通信している（随意に存在する）プロセッサ／コントローラ機器１３を含み得る。図１Ｂのビデオコード化システム１０’及びそれの構成要素は、場合によっては図１Ａのビデオコード化システム１０及びそれの構成要素と同様である。
【００２８】
[0037]ビデオエンコーダ２０及びビデオデコーダ３０は、ＤＳＣなど、ビデオ圧縮規格に従って動作し得る。代替的に、ビデオエンコーダ２０及びビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ１０，ＡＶＣと呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格、ＨＥＶＣなど、他のプロプライエタリ規格又は業界規格、あるいはそのような規格の拡張に従って動作し得る。但し、本開示の技法は、いかなる特定のコード化規格にも限定されない。ビデオ圧縮規格の他の例としては、ＭＰＥＧ−２及びＩＴＵ−Ｔ  Ｈ．２６３がある。
【００２９】
[0038]図１Ａ及び図１Ｂの例には示されていないが、ビデオエンコーダ２０及びビデオデコーダ３０は、それぞれオーディオエンコーダ及びデコーダと統合され得、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、又は他のハードウェア及びソフトウェアを含み得る。適用可能な場合、幾つかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、又はユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００３０】
[0039]ビデオエンコーダ２０及びビデオデコーダ３０はそれぞれ、１つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、又はそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、機器は、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するために１つ又は複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ２０及びビデオデコーダ３０の各々は１つ又は複数のエンコーダ又はデコーダ中に含まれ得、そのいずれも、それぞれの機器において複合エンコーダ／デコーダの一部として統合され得る。
【００３１】
ビデオコード化プロセス
[0040]上記で手短に述べたように、ビデオエンコーダ２０はビデオデータを符号化する。ビデオデータは１つ又は複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。幾つかの事例では、ピクチャはビデオ「フレーム」と呼ばれることがある。ビデオエンコーダ２０がビデオデータを符号化するとき、ビデオエンコーダ２０はビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化表現を形成するビットのシーケンスを含み得る。ビットストリームはコード化ピクチャと関連データとを含み得る。コード化ピクチャはピクチャのコード化表現である。
【００３２】
[0041]ビットストリームを生成するために、ビデオエンコーダ２０は、ビデオデータ中の各ピクチャに対して符号化演算を実行し得る。ビデオエンコーダ２０がピクチャに対して符号化演算を実行するとき、ビデオエンコーダ２０は、一連のコード化ピクチャと関連データとを生成し得る。関連データは、ＱＰなどのコード化パラメータのセットを含み得る。コード化ピクチャを生成するために、ビデオエンコーダ２０は、ピクチャを等しいサイズのビデオブロックに区分し得る。ビデオブロックはサンプルの２次元アレイであり得る。コード化パラメータは、ビデオデータのあらゆるブロックについてコード化オプション（例えば、コード化モード）を定義し得る。コード化オプションは、所望のレート歪み性能を達成するために選択され得る。
【００３３】
[0042]幾つかの例では、ビデオエンコーダ２０はピクチャを複数のスライスに区分し得る。スライスの各々は、画像又はフレーム中の領域の残りからの情報なしに独立して復号され得る、画像（例えば、フレーム）中の空間的に別個の領域を含み得る。各画像又はビデオフレームは単一のスライス中で符号化され得るか、若しくは各画像又はビデオフレームは幾つかのスライス中で符号化され得る。ＤＳＣでは、各スライスを符号化するために割り振られるターゲットビットは、実質的に一定であり得る。ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ２０は、ピクチャの各スライスに対して符号化演算を実行し得る。ビデオエンコーダ２０がスライスに対して符号化演算を実行するとき、ビデオエンコーダ２０は、スライスに関連付けられた符号化データを生成し得る。スライスに関連付けられた符号化データは「コード化スライス（coded slice）」と呼ばれることがある。
【００３４】
ＤＳＣビデオエンコーダ
[0043]図２Ａは、本開示で説明する態様による技法を実装し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、本開示の技法の一部又は全部を実行するように構成され得る。幾つかの例では、本開示で説明する技法は、ビデオエンコーダ２０の様々な構成要素間で共有され得る。幾つかの例では、追加又は代替として、プロセッサ（図示せず）が、本開示で説明する技法の一部又は全部を実行するように構成され得る。
【００３５】
[0044]説明の目的で、本開示では、ＤＳＣコード化のコンテキストにおいてビデオエンコーダ２０について説明する。但し、本開示の技法は、他のコード化規格又は方法に適用可能であり得る。
【００３６】
[0045]図２Ａの例では、ビデオエンコーダ２０は複数の機能構成要素を含む。ビデオエンコーダ２０の機能構成要素は、色空間変換器１０５と、バッファ１１０と、平坦度検出器１１５と、レートコントローラ１２０と、予測器、量子化器、及び再構成器構成要素１２５と、ラインバッファ１３０と、インデックスカラー履歴１３５と、エントロピーエンコーダ１４０と、サブストリームマルチプレクサ１４５と、レートバッファ１５０とを含む。他の例では、ビデオエンコーダ２０は、より多数の、より少数の、又は異なる機能構成要素を含み得る。
【００３７】
[0046]色空間変換器１０５は、入力色空間をコード化実施形態において使用される色空間に変換し得る。例えば、例示的な一実施形態では、入力ビデオデータの色空間は、赤、緑及び青（ＲＧＢ）色空間中にあり、コード化は、ルミナンスＹ、クロミナンスグリーンＣｇ及びクロミナンスオレンジＣｏ（ＹＣｏＣｇ）色空間において実装される。色空間変換は、ビデオデータへのシフト及び追加を含む（１つ又は複数の）方法によって実行され得る。他の色空間中の入力ビデオデータが処理され得、他の色空間への変換も実行され得ることに留意されたい。
【００３８】
[0047]関係する態様では、ビデオエンコーダ２０は、バッファ１１０、ラインバッファ１３０及び／又はレートバッファ１５０を含み得る。例えば、バッファ１１０は、色空間変換されたビデオデータを、ビデオエンコーダ２０の他の部分によるそれの使用に先立って保持し得る。別の例では、色空間変換されたデータはより多くのビットを必要とし得るので、ビデオデータはＲＧＢ色空間中で記憶され得、色空間変換が必要に応じて実行され得る。
【００３９】
[0048]レートバッファ１５０はビデオエンコーダ２０においてレート制御機構の一部として機能し得、このことについて、レートコントローラ１２０に関して以下でより詳細に説明する。各ブロックを符号化することに費やされるビットは、大いに、実質的に、ブロックの性質に基づいて変動することがある。レートバッファ１５０は、圧縮されたビデオにおけるレート変動を平滑化することができる。幾つかの実施形態では、ビットがＣＢＲでバッファから取り出されるＣＢＲバッファモデルが採用される。ＣＢＲバッファモデルでは、ビデオエンコーダ２０がビットストリームにあまりに多くのビットを加えた場合、レートバッファ１５０はオーバーフローし得る。一方、ビデオエンコーダ２０は、レートバッファ１５０のアンダーフローを防ぐために、十分なビットを加えなければならない。
【００４０】
[0049]ビデオデコーダ側では、ビットは、固定ビットレートでビデオデコーダ３０のレートバッファ１５５（以下で更に詳細に説明する図２Ｂを参照）に加えられ得、ビデオデコーダ３０は、各ブロックについて可変数のビットを削除し得る。適切な復号を保証するために、ビデオデコーダ３０のレートバッファ１５５は、圧縮されたビットストリームの復号中に「アンダーフロー」又は「オーバーフロー」すべきでない。
【００４１】
[0050]幾つかの実施形態では、バッファフルネス（ＢＦ）は、バッファに現在あるビットの数を表す値ＢｕｆｆｅｒＣｕｒｒｅｎｔＳｉｚｅと、レートバッファ１５０のサイズ、即ち、任意の時点においてレートバッファ１５０に記憶され得るビットの最大数を表すＢｕｆｆｅｒＭａｘＳｉｚｅとに基づいて定義され得る。ＢＦは次のように計算され得る。  
BF = ((BufferCurrentSize * 100) / BufferMaxSize)
【００４２】
[0051]ＢＦを計算することへの上記の手法は、例にすぎず、ＢＦは、特定の実施形態又はコンテキストに応じて、任意の数の異なる方法で計算され得ることに留意されたい。
【００４３】
[0052]平坦度検出器１１５は、ビデオデータ中の複雑な（即ち、平坦でない）エリアからビデオデータ中の平坦な（即ち、単純な又は均一な（uniform））エリアへの変化、及び／又はその逆の変化を検出することができる。「複雑な」及び「平坦な」という用語は、本明細書では、概して、ビデオエンコーダ２０がビデオデータのそれぞれの領域を符号化することの困難さを指すために使用する。従って、本明細書で使用する複雑なという用語は、概して、ビデオデータの領域が、ビデオエンコーダ２０が符号化することが複雑であることを表し、例えば、テクスチャードビデオデータ、高い空間周波数、及び／又は符号化することが複雑である他の特徴を含み得る。本明細書で使用する平坦なという用語は、概して、ビデオデータの領域が、ビデオエンコーダ２０がエンコーダすることが単純であることを表し、例えば、ビデオデータ中の滑らかな勾配、低い空間周波数、及び／又は符号化することが単純である他の特徴を含み得る。複雑な領域から平坦な領域への遷移が、符号化ビデオデータ中の量子化アーティファクトを低減するために、ビデオエンコーダ２０によって使用され得る。詳細には、レートコントローラ１２０、並びに予測器、量子化器、及び再構成器構成要素１２５は、複雑な領域から平坦な領域への遷移が識別されたとき、そのような量子化アーティファクトを低減することができる。同様に、平坦な領域から複雑な領域への遷移が、現在ブロックをコード化するために必要とされる予想レートを低減するためにＱＰを増加させるために、ビデオエンコーダ２０によって使用され得る。
【００４４】
[0053]レートコントローラ１２０は、コード化パラメータのセット、例えば、ＱＰを決定する。ＱＰは、レートバッファ１５０がオーバーフロー又はアンダーフローしないことを保証するターゲットビットレートについてピクチャ品質を最大にするために、レートバッファ１５０のバッファフルネスとビデオデータの画像アクティビティ（例えば、複雑な領域から平坦な領域への遷移又はその逆の遷移）とに基づいて、レートコントローラ１２０によって調整され得る。レートコントローラ１２０はまた、最適レート歪み性能を達成するために、ビデオデータの各ブロックについて特定のコード化オプション（例えば、特定のモード）を選択する。レートコントローラ１２０は、再構成された画像の歪みを、それがビットレート制約を満たすように、即ち、全体的実コード化レートがターゲットビットレート内に収まるように最小限に抑える。従って、レートコントローラ１２０の１つの目的は、レート歪み性能を最大にしながらレートに対する瞬間的及び平均的な制約を満たすように、（１つ又は複数の）ＱＰ、（１つ又は複数の）コード化モードなど、コード化パラメータのセットを決定することである。
【００４５】
[0054]予測器、量子化器、及び再構成器構成要素１２５は、ビデオエンコーダ２０の少なくとも３つの符号化演算を実行し得る。予測器、量子化器、及び再構成器構成要素１２５は、幾つかの異なるモードで予測を実行し得る。１つの例示的なプレディケーションモードは、メディアン適応予測の変更バージョンである。メディアン適応予測はロスレスＪＰＥＧ規格（ＪＰＥＧ−ＬＳ）によって実装され得る。予測器、量子化器、及び再構成器構成要素１２５によって実行され得るメディアン適応予測の変更バージョンは、３つの連続するサンプル値の並列予測を可能にし得る。別の例示的な予測モードはブロック予測である。ブロック予測では、サンプルは、上のライン中の、又は同じライン中の左側の前に再構成された画素からに予測される。幾つかの実施形態では、ビデオエンコーダ２０及びビデオデコーダ３０は、両方とも、ブロック予測使用を決定するために、再構成された画素に対して同じ探索を実行し得、従って、ビットはブロック予測モードで送られる必要がない。他の実施形態では、ビデオエンコーダ２０は、探索を実行し、ビットストリームでブロック予測ベクトルを信号伝達(signal)し得、従って、ビデオデコーダ３０は、別個の探索を実行する必要がない。成分範囲の中点を使用してサンプルが予測される中点予測モードも実装され得る。中点予測モードは、ワーストケースサンプルにおいてさえも、圧縮されたビデオに必要なビットの数の制限を可能にし得る。
【００４６】
[0055]予測器、量子化器、及び再構成器構成要素１２５はまた、量子化を実行する。例えば、量子化は、シフタを使用して実装され得る２のべき乗量子化器（power-of-2 quantizer）を介して実行され得る。２のべき乗量子化器の代わりに他の量子化技法が実装され得ることに留意されたい。予測器、量子化器、及び再構成器構成要素１２５によって実行される量子化は、レートコントローラ１２０によって決定されたＱＰに基づき得る。最終的に、予測器、量子化器、及び再構成器構成要素１２５はまた、予測値に逆量子化された残差を加算することと、結果がサンプル値の有効範囲の外側にないことを保証することとを含む再構成を実行する。
【００４７】
[0056]予測器、量子化器、及び再構成器構成要素１２５によって実行される予測、量子化、及び再構成に対する上記で説明した例示的な手法は、例示的なものにすぎず、他の手法が実装され得ることに留意されたい。また、予測器、量子化器、及び再構成器構成要素１２５は、予測、量子化、及び／又は再構成を実行するための（１つ又は複数の）副構成要素を含み得ることに留意されたい。更に、予測、量子化、及び／又は再構成は、予測器、量子化器、及び再構成器構成要素１２５の代わりに幾つかの別個のエンコーダ構成要素によって実行され得ることに留意されたい。
【００４８】
[0057]ラインバッファ１３０は、予測器、量子化器、及び再構成器構成要素１２５並びにインデックスカラー履歴１３５が、バッファされたビデオデータを使用することができるように、予測器、量子化器、及び再構成器構成要素１２５からの出力を保持する。インデックスカラー履歴１３５は、最近使用された画素値を記憶する。これらの最近使用された画素値は、専用シンタックスを介してビデオエンコーダ２０によって直接参照され得る。
【００４９】
[0058]エントロピーエンコーダ１４０は、インデックスカラー履歴１３５と、平坦度検出器１１５によって識別された平坦度遷移とに基づいて、予測器、量子化器、及び再構成器構成要素１２５から受信された予測残差及び他のデータ（例えば、予測器、量子化器、及び再構成器構成要素１２５によって識別されたインデックス）を符号化する。幾つかの例では、エントロピーエンコーダ１４０は、サブストリームエンコーダごとにクロックごとに３つのサンプルを符号化し得る。サブストリームマルチプレクサ１４５は、ヘッダレスパケット多重化方式に基づいてビットストリームを多重化し得る。これは、ビデオデコーダ３０が並列に３つのエントロピーデコーダを動作させることを可能にし、クロックごとの３つの画素の復号を可能にする。サブストリームマルチプレクサ１４５は、パケットがビデオデコーダ３０によって効率的に復号され得るようにパケット順序を最適化し得る。クロックごとの２のべき乗個の画素（例えば、２つの画素／クロック又は４つの画素／クロック）の復号を可能にし得る、エントロピーコード化に対する異なる手法が実装され得ることに留意されたい。
【００５０】
ＤＳＣビデオデコーダ
[0059]図２Ｂは、本開示で説明する態様による技法を実装し得るビデオデコーダ３０の一例を示すブロック図である。ビデオデコーダ３０は、本開示の技法の一部又は全部を実行するように構成され得る。幾つかの例では、本開示で説明する技法は、ビデオデコーダ３０の様々な構成要素間で共有され得る。幾つかの例では、追加又は代替として、プロセッサ（図示せず）が、本開示で説明する技法の一部又は全部を実行するように構成され得る。
【００５１】
[0060]説明の目的で、本開示では、ＤＳＣコード化のコンテキストにおいてビデオデコーダ３０について説明する。但し、本開示の技法は、他のコード化規格又は方法に適用可能であり得る。
【００５２】
[0061]図２Ｂの例では、ビデオデコーダ３０は複数の機能構成要素を含む。ビデオデコーダ３０の機能構成要素は、レートバッファ１５５と、サブストリームデマルチプレクサ１６０と、エントロピーデコーダ１６５と、レートコントローラ１７０と、予測器、量子化器、及び再構成器構成要素１７５と、インデックスカラー履歴１８０と、ラインバッファ１８５と、色空間変換器１９０とを含む。ビデオデコーダ３０の図示された構成要素は、図２Ａ中のビデオエンコーダ２０に関して上記で説明した対応する構成要素に類似する。従って、ビデオデコーダ３０の構成要素の各々は、上記で説明したビデオエンコーダ２０の対応する構成要素と同様の様式で動作し得る。
【００５３】
ＱＰ計算
[0062]１つの手法では、（ｃｕｒｒＱＰとして示される）現在ブロックのためのＱＰは、以下の式に基づいて導出又は計算され得る。  
currQP = prevQ + QpAdj * (diffBits > 0 ? 1: -1),
【００５４】
[0063]ここで、ｐｒｅｖＱＰは、前のブロックに関連付けられたＱＰであり、ｄｉｆｆＢｉｔｓは、ｐｒｅｖｉｏｕｓＢｌｏｃｋＢｉｔｓとｔａｒｇｅｔＢｉｔｓとの間の差を表し、ＱｐＡｄｊは、ｄｉｆｆＢｉｔｓの大きさに基づいて計算されるＱＰオフセット値（例えば、ＱＰ調整値）であり、ｐｒｅｖｉｏｕｓＢｌｏｃｋＢｉｔｓは、前のブロックをコード化するために使用されるビットの数を表し、ｔａｒｇｅｔＢｉｔｓは、現在ブロックをコード化するためのビットのターゲット数を表す。ｐｒｅｖｉｏｕｓＢｌｏｃｋＢｉｔｓ＞ｔａｒｇｅｔＢｉｔｓであるとき、ｄｉｆｆＢｉｔｓは正であり、現在ブロックＱＰは、ｐｒｅｖＱＰ値にオフセット値ＱｐＡｄｊを加算することによって導出され得る。言い換えれば、ＱＰ値は、ｄｉｆｆＢｉｔｓが正であるとき、ｐｒｅｖＱＰ値から値が減少しない。ｐｒｅｖｉｏｕｓＢｌｏｃｋＢｉｔｓ≦ｔａｒｇｅｔＢｉｔｓであるとき、ｄｉｆｆＢｉｔｓは負又は０であり、ｃｕｒｒＱＰはｐｒｅｖＱＰ値から増加しない。オフセット値ＱｐＡｄｊは、例えば、ｄｉｆｆＢｉｔｓの大きさが増加するにつれてＱｐＡｄｊが単調に増加するような方法で、ｄｉｆｆＢｉｔｓの関数として計算され得ることに留意されたい。
【００５５】
[0064]次に、本明細書ではデフォルトの技法と呼ぶ、ＱＰ調整値ＱｐＡｄｊを計算するための１つの技法について、図３を参照しながら説明する。図３は、０を始めるｄｉｆｆＢｉｔｓの値がプロットされる軸を含む、グラフ３００を与える。デフォルトの技法では、ｄｉｆｆＢｉｔｓ＞０であるとき、ｄｉｆｆＢｉｔｓは、Ｋ個の閾値を使用してＫ＋１個の範囲に分類され得る。これらの閾値は、ラベル、閾値１、閾値２、閾値３、．．．、及び閾値Ｋによって示され、範囲は、ラベル、範囲１、範囲２、範囲３、．．．、及び範囲Ｋ＋１によって示される。図３のデフォルト技法では、Ｋ個の閾値を使用して、ｄｉｆｆＢｉｔｓをＫ＋１個の範囲にセグメント化することへの１つの手法が示されている。各範囲は、特定のＱｐＡｄｊ値に関連付けられ得、ここで、ＱｐＡｄｊ値は、範囲インデックスが増加するにつれて増加する。ｄｉｆｆＢｉｔｓ≦０であるとき、ｄｉｆｆＢｉｔｓの絶対値は、Ｊ個の閾値を使用してＪ＋１個の範囲に分類され得（図示せず）、Ｊ＋１個の範囲の各々のために割り当てられた特定のＱｐＡｄｊ値があり得る。
【００５６】
[0065]他の態様では、ｃｕｒｒＱＰ値は、バッファのアンダーフロー及び／又はオーバーフローを防ぐために、（バッファフルネスＢＦとして表され得る）バッファのフルネスに基づいて調整され得る。特に、ＢＦがある閾値（例えば、Ｐ1）を超えるとき、ｃｕｒｒＱＰは固定オフセット値（例えば、ｐ1）だけ増分され得る。例えば、ｃｕｒｒＱＰは次のように調整され得、即ち、ｃｕｒｒＱＰ＋＝ｐ1である。更に、ＢＦがある閾値（例えば、Ｑ1）を下回るとき、ｃｕｒｒＱＰはｑ1だけ減分され得、例えば、ｃｕｒｒＱＰ−＝ｑ1である。ある態様では、複数の閾値が採用され得、各閾値について、ｃｕｒｒＱＰを調整するための対応するオフセット値があり得る。
【００５７】
[0066]複雑な領域から平坦な領域への遷移が識別されるとき、又は平坦な領域が識別されるとき、以下で更に詳細に説明するように、ｃｕｒｒＱＰは低い値（例えば、定義されたｃｕｒｒＱＰ値を下回る値）に設定され得る。
平坦な領域から複雑な領域への遷移を検出すること
[0067]図４を参照すると、１つ又は複数の技法が、平坦な／滑らかな領域から複雑な領域への遷移を検出するために利用され得る。図４は、フレーム、又は、例えばフレームのスライスのような、それの部分であり得る、例示的な関心領域４００を示す。領域４００は、及び３つの連続するブロック４０５、４１０及び４１５を含み得る。この例では、ブロック４０５は領域４００の平坦な領域／部分に対応し、ブロック４１０は領域４００の遷移領域／部分に対応し、ブロック４１５は領域４００の複雑な領域／部分に対応する。図示のように、ブロック４０５のコンテンツは、平坦、滑らか、又は均一である。ブロック４１５のコンテンツは、テクスチャードであり、全体を通して均一ではないパターンを呈する。ブロック４１０は、均一なコンテンツから均一でないコンテンツへの遷移を含む。以下で説明するように、複雑さ計算がブロック４０５、４１０及び４１５の各々について実行されなされる。
【００５８】
[0068]本明細書で使用する、平坦なブロックは、複雑さ閾値よりも低い複雑さ値を有するブロックを指すことがある。そこにおいてブロックが平坦であると決定される閾値は、ブロックをコード化するために必要とされるビットの数などの様々な設計基準に基づいて設定され得る。同様に、平坦でない又は複雑なブロックは、平坦でない、例えば、複雑さ閾値よりも大きいか、又はそれに等しい複雑さ値を有するブロックを指すことがある。ブロックの関連付けられた複雑さに基づいてブロックの様々な他のカテゴリー分類が採用され得、そのようなカテゴリー分類は、ブロックの複雑さ値における閾値によって定義される範囲であり得る。
【００５９】
[0069]平坦な及び複雑なという用語は、ブロック以外の領域にも適用され得る。この場合、領域は、ブロックと同じサイズでないことがあり、例えば、領域は、個別に符号化／復号されるサイズではないことがあるが、領域はまた、領域の複雑さに基づいて平坦又は複雑としてカテゴリー分類され得る。例えば、領域は、その領域内の各ブロックが平坦なブロックである場合、平坦な領域と呼ばれることがある。但し、平坦な領域は、その中に含まれているブロックと同じ境界を有しないことがあり、得る領域の複雑さは、領域全体にわたって計算され得る。複雑な領域が、同様に定義され得る。従って、領域は、領域の複雑さ値を、ブロックの複雑さ閾値とは異なり得る複雑さ閾値と比較することによって、平坦又は複雑としてカテゴリー分類され得る。更に、コード化のために領域がブロックに分割され得るので、領域という用語は、本明細書では、本開示の様々な態様の理解を可能にするために概念的に使用され得る。
【００６０】
[0070]上記で説明したように、ブロックを平坦又は複雑としてカテゴリー分類するために、ブロックの複雑さ値が決定され得る。ブロックの複雑さ値は、複雑さ値が、ブロックを符号化することの困難を表す限り、様々な技法、例えば、可視アーティファクトを導入することなしにブロックをコード化するために必要とされ得るビットの数に従って決定され得る。
【００６１】
[0071]提案される平坦度検出技法のフレームワークが、図５の例示的な複雑さ検出システム５００に示されている。システム５００は、図４のブロック４０５、４１０及び４１５、又はそのようなブロックに関する情報を入力として受信し得る。一実装形態では、システム５００は、Ｃcur、Ｃnext及びＣprevとして示されるブロックごとの複雑さ値を計算するために、ブロック４０５、４１０及び４１５の各々について複雑さ計算を実行し得る。例えば、システム５００は、それぞれブロック４０５、４１０及び４１５の各々に対応する複雑さ計算ユニット５０５、５１０及び５１５を含み得、それぞれ計算する複雑さ値Ｃprev、Ｃcur及びＣnextを検出器５２０に出力し得る。別の実施形態では、３つよりも少ない複雑さ値が各ブロックについて計算され得る。例えば、エンコーダは、次のブロック時間についてそれぞれ「前の」及び「現在」複雑さ値になる、所与の時間ブロックにおける「現在」及び「次の」ブロック複雑さ値をバッファ又は記憶し得る。このようにして、次の時間ブロックについて「次の」ブロック複雑さ値のみが計算される必要があることになる。言い方を変えれば、エンコーダは、第２のブロック時間においてそれぞれ「前の」及び「現在」複雑さ値になる、第１の時間ブロックにおける「現在」及び「次の」ブロック複雑さ値をバッファ又は記憶し得、従って、「次の」ブロック複雑さ値のみが第２の時間ブロックにおいて計算される。
【００６２】
[0072]関係する態様では、複雑さ計算ユニット５０５、５１０及び５１５及び／又は検出器５２０は、別個の構成要素、コーデックの同じ構成要素又はプロセッサの部分若しくは１つ以上のプロセッサによって実行されソフトウェアモジュールであり得る。システム５００の特徴は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。更なる関係する態様では、システム５００は、関心画像又は領域のための任意の数の連続ブロック（例えば、スライス中の４つの連続ブロック）に関する、又は関係する情報を受信し得、連続ブロックの各々について複雑さ計算を実行し得る。
【００６３】
[0073]一態様では、ブロックの複雑さは、ブロック中の画素の周波数変換（例えば、離散コサイン変換（ＤＣＴ）、アダマール変換など）を受けることによって計算され得る。周波数変換は、複雑さ値を生成するために合計され得る、幾つかの周波数係数を生じ得る。別の態様では、直流（ＤＣ又はゼロ周波数）係数及び／又は１つ以上の低周波数係数が、合計に含まれないことがある。周波数変換の前に色変換を適用することなど、複雑さ値を決定するための様々な他の技法も実装され得る。
【００６４】
[0074]関係する態様では、ブロックの複雑さ値を計算するために、変換係数の絶対値又は絶対２乗値が合計され得る。更なる関係する態様では、複雑さ値を計算するためにルーマチャネルが使用され得、又は複雑さ値を計算するためにルーマチャネル／クロマチャネルの両方が使用され得る。
【００６５】
[0075]また更なる関係する態様では、絶対和又は絶対２乗和を計算する間、変換係数のサブセットが考慮され得、即ち、ブロック中の全てよりも少ない変換係数が、幾つかの例示的な手法において考慮され得る。
【００６６】
[0076]また更なる態様では、各変換係数が重みで乗算され得、ここで、各係数に適用される重みは変動するか又は一定であり得る。次いで、重み付けされた係数の絶対値又は絶対２乗値が計算され得る。
【００６７】
[0077]もう一度図５の例を参照すると、検出器５００は、Ｃprev、Ｃcur及びＣnextに基づいて、ブロック４０５、４１０及び４１５が平坦な領域から複雑な領域への遷移を含むかどうかを決定し得る。例えば、検出器５００の出力は、平坦−複雑領域遷移がないことを示すための０、及び平坦−複雑領域遷移があることを示すための１など、バイナリ結果であり得る。
【００６８】
[0078]平坦な領域から複雑な領域への遷移があるかどうかの決定は、関心領域（例えば、領域４００）中の連続ブロック（例えば、ブロック４０５、４１０及び４１５）の複雑さ値に基づいて、１つ又は複数の条件を検査することによって実行され得る。一実施形態では、平坦−複雑領域遷移があるかどうかの決定は、以下の条件１及び条件２を検査することを介して実行される。  
条件１：（Ｃｐｒｅｖ＜Ｔ０）＆＆（Ｃｎｅｘｔ＞Ｔ１）
【００６９】
[0079] [0081]条件１に関して、閾値Ｔ0及びＴ1は、コーデックのパラメータに基づいて調整され得る。好ましくは、順序付けＴ0＜Ｔ1が従われるべきである。関係する態様では、平坦な領域から複雑な領域への遷移があることを検出することは、（ｉ）前のブロック４０５が平坦な領域に対応することを示す、前のブロック４０５の複雑さ値が第１の閾値（例えば、Ｔ0）よりも小さい（又は、それよりも小さいか、若しくはそれに等しい）こと、及び（ｉｉ）次のブロック４１５が複雑な領域に対応することを示す、次のブロック４１５の複雑さ値が第２の閾値（例えば、Ｔ1）よりも大きい（又は、それよりも大きいか、若しくはそれに等しい）ことを決定することを含み得る。ここで、前のブロックが平坦な領域に対応すること、及び次のブロック４１５が複雑な領域に対応することの指示は、現在ブロック４１０中に平坦な領域から複雑な領域への遷移があること、即ち、現在ブロック４１０が遷移ブロックであることを更に示す。  
条件２：Ｃ０＝ｆａｌｓｅ，Ｃ１＝ｆａｌｓｅ
【００７０】
[0080]条件２に関して、条件２中の値Ｃ0及びＣ1は、本質的にブーリアンであり、図６に示されているように、平坦−複雑領域検出の前の履歴を表す。例えば、前のブロック時間の値Ｃ0及びＣ1並びに現在ブロック時間のＣ２が、メモリ記憶ユニット６００に記憶され得る。一態様では、各ブロック時間において、複雑さ値は１だけ左にシフトされる。別の態様では、平坦−複雑領域検出の前の履歴、即ち、前のブロック時間の値Ｃ0及びＣ1は、上記の条件２を検査するために使用される。また別の態様では、条件１の両方の部分が満たされた場合、図６中の値Ｃ２は、真に設定されることになる。平坦−複雑領域遷移が検出されたときでも、使用されるＱＰは、現在／次のブロックをコード化するために必要とされる予想レートを低減するために、遷移ブロック又は遷移ブロックの後の次のブロックにおいて（前の平坦なブロックと比較して）増加させられ得る。但し、遷移ブロックは、部分的に平坦な情報と部分的に複雑な情報の両方を含んでいるので、遷移ブロックにおけるＱＰ値は、あまりに高くなる（例えば、定義されたＱＰ値を超える）ことができないことに留意されたい。例えば、遷移ブロックのためのＱＰ値が、定義されたＱＰ値を超えるとき、遷移ブロックから再構成された画像内で顕著であり得るブロックの平坦なポションにおけるアーティファクトが生成されることがある。
【００７１】
[0081]従って、ＱＰを増加させることを遷移ブロックの後まで遅延させることが、望ましいことがある。例えば、ＱＰは、検出された遷移ブロックの直後のブロックのために（例えば、ブロック４１０に続くブロック４１５のために）増加させられ得る。ＱＰが第１の完全に複雑なブロック（例えば、ブロック４１５）にとって高い場合、複雑さがアーティファクトの存在をマスキングし得る。
【００７２】
[0082]従って、ＱＰが現在ブロックのために調整されるべきであるかどうかの次の決定は、Ｃ1のブール値に依存する。Ｃ1が真である場合、現在ブロックのためのＱＰは、高い値に増加されるべきである。
【００７３】
[0083]エンコーダ側において、各新しいブロックを処理することの始めに、検出結果の履歴が更新される。即ち、Ｃ1→Ｃ0，Ｃ2→Ｃ1，Ｃ2＝偽である。これは、現在ブロックの検出結果を計算するより前に行われる。本質的に、これは、平坦−複雑遷移を検出することとＱＰを調整することとの間に１つのブロックのオフセットを追加する。上記で説明したように、これは、ＱＰが遷移ブロックのために低い値にとどまることを保証する。更に、これは、連続する複数のブロックが平坦−複雑遷移として検出され得ないことを保証する。
【００７４】
[0084]別の例では、条件１中の比較演算子が、異なる比較演算子と置き換えられ得る。例えば、Ｃprev＜Ｔ0の代わりに、代わりにＣprev≦Ｔ0が代わりに使用され得る。
【００７５】
[0085]上記実施形態の１つの利点は、平坦−複雑領域遷移の検出が、エンコーダが複雑な領域のためにＱＰを増加させることを可能にすることである。これは、ブロックをコード化するために必要とされる予想レートを減少させることになり、生じるアーティファクトは、領域の複雑さによってマスキングされることになる。また、平坦−複雑遷移検出の結果は、１ビット／ブロックを使用して符号化ビットストリームでデコーダに明示的に信号伝達され得る。これは、デコーダが、エンコーダにおいて行われるように複雑さ値を計算する必要なしに、ＱＰを調整することを可能にする。更に、平坦−複雑領域遷移を検出するための本技法において利用される複雑さ計算及びルックアヘッドデータは、複雑−平坦領域遷移（complex-to-flat region transition）を検出するためにも利用され、それにより、ＤＳＣなど、固定レートコーデックのための効率性を実現し得る。一実施形態では、１ビットを使用して平坦−複雑遷移を信号伝達すること（signaling）を含み得る技法が提供される。関係する態様では、平坦−複雑は、一緒にグループ化され得る可能な平坦度検出又は分類のセットのうちの１つである。例えば、平坦度の４つのクラス（例えば、平坦−複雑、複雑−平坦、やや平坦（somewhat flat）及び極めて平坦（very flat））がある場合、結果は、２ビットコードのセットのうちの１つを用いて信号伝達され得る。
【００７６】
[0086]一実施形態では、平坦−複雑遷移が識別されたとき、ブロックのＱＰ値は、予め定義された値（例えば、固定の高い値）に設定され得るか、又は、ＱＰは、予め定義された増分又は値（例えば固定調整値）だけ増加させられ得る。
画像の複雑な領域を検出するための例示的なフローチャート
[0087]図７を参照しながら、画像の平坦な領域から複雑な領域への遷移を検出するための例示的なプロシージャについて説明する。画像のスライスが、現在ブロックと、次のブロックと、前のブロックとを含み得る。
【００７７】
[0088]図７は、本開示の一実施形態による、ビデオデータをコード化するための方法７００を示すフローチャートである。図７に示されているステップは、ビデオエンコーダ（例えば、図２Ａ中のビデオエンコーダ２０）、ビデオデコーダ（例えば、図２Ｂ中のビデオデコーダ３０）又は、例えば、平坦度検出器１１５、レートコントローラ１２０、予測器、量子化器及び再構成器構成要素１２５、エントロピーエンコーダ１４０及びレートバッファ１５０など、それらの（１つ又は複数の）構成要素によって実行され得る。便宜上、方法７００について、ビデオエンコーダ２０、ビデオデコーダ３０、又は別の構成要素であり得る、（単にコーダとも呼ばれる）ビデオコーダによって実行されるものとして説明する。
【００７８】
[0089]コーダ又はそれの（１つ又は複数の）構成要素は、バッファを含む複数のプログラマブル計算ユニットによって共有される集積グローバルメモリを含む、機器上に実装され得、ここにおいて、バッファは先入れ先出し（ＦＩＦＯ）バッファを含み得る。機器は、少なくとも１つのプロセッサ又はプロセッサ回路（例えば、中央処理ユニット（ＣＰＵ））及び／又はグラフィックス処理ユニット（ＧＰＵ）を含み得る集積回路（ＩＣ）を更に含み得、ここにおいて、ＧＰＵは１つ又は複数のプログラマブル計算ユニットを含み得る。
【００７９】
[0090]方法７００は、ブロック７１０において開始する。ブロック７１０において、コーダは、現在ブロックの現在複雑さ値と、次のブロックの次の複雑さ値と、前のブロックの前の複雑さ値とを計算する。ブロック７１０は、コーダが、現在ブロック、次のブロック及び前のブロックのうちの各ブロックについて、（ｉ）変換係数を決定するために変換を適用することと、（ｉｉ）変換係数の定義された絶対和を決定することとを伴い得る。変換を適用することは、ＤＣＴ及びアダマール変換のうちの１つを適用することを伴い得る。定義された絶対和を決定することは、変換係数の絶対和及び絶対２乗和のうちの１つを決定することを伴い得る。
【００８０】
[0091]ブロック７２０において、コーダは、前の複雑さ値が第１の閾値よりも小さいことと、次の複雑さ値が第２の閾値よりも大きいこととを検出し、ここにおいて、第２の閾値は第１の閾値よりも大きい。
【００８１】
[0092]ブロック７３０において、コーダは、現在ブロックへの遷移も前のブロックへの遷移も平坦−複雑領域遷移ではないと決定する。ここにおいて、コーダは、現在ブロック時間における現在ブロック、次のブロック及び前のブロックの複雑さ値及び／又は１つ以上の前のブロック時間における現在ブロック、次のブロック及び前のブロックの複雑さ値に基づいて、ブロック７３０を実行する。
【００８２】
[0093]ブロック７４０において、コーダは、（ｉ）前の複雑さ値が第１の閾値よりも小さいことと、次の複雑さ値が第２の閾値よりも大きいこととを検出すること、及び（ｉｉ）現在ブロックへの遷移も前のブロックへの遷移も平坦−複雑領域遷移ではないと決定することに応答して、次のブロックに遷移するときに平坦−複雑領域遷移を検出する。
【００８３】
[0094]ブロック７５０において、コーダは、随意に、平坦−複雑領域遷移を検出することに応答して、ＱＰを調整し、及び／又は、次のブロックに遷移するときに平坦−複雑領域遷移を検出することに応答して、遷移の指示をコーデックのエンコーダからデコーダに信号伝達し得る。方法７００は、ブロック７４０において又はブロック７５０において、終了し得る。
他の考慮事項
[0095]本開示の態様について、図２Ａ中のビデオエンコーダ２０など、エンコーダの観点から説明したことに留意されたい。しかしながら、上記で説明した動作の逆の動作が、例えば、図２Ｂ中のビデオデコーダ３０によって、生成されたビットストリームを復号するために適用され得ることを、当業者は諒解されよう。
【００８４】
[0096]本明細書で開示する情報及び信号は、多種多様な技術及び技法のいずれかを使用して表され得る。例えば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル及びチップは、電圧、電流、電磁波、磁界又は磁性粒子、光場又は光学粒子、若しくはそれらの任意の組合せによって表され得る。
【００８５】
[0097]本明細書で開示する実施形態に関して説明した様々な例示的な論理ブロック及びアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、又はその両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック及びステップについて、概してそれらの機能に関して上記で説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例及び全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈されるべきではない。
【００８６】
[0098]本明細書で説明した技法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信機器ハンドセット又はワイヤレス通信機器ハンドセット、自動車、アプライアンス、ウェアラブル及び／又は他の機器における適用例を含む複数の用途を有する集積回路機器など、様々な機器のいずれかにおいて実装され得る。機器又は構成要素として説明した特徴は、集積論理機器に一緒に、又は個別であるが相互運用可能な論理機器として別々に実装され得る。ソフトウェアで実装された場合、本技法は、実行されたとき、上記で説明した方法のうちの１つ又は複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュメモリ、磁気又は光学データ記憶媒体など、メモリ又はデータ記憶媒体を備え得る。本技法は、追加又は代替として、伝搬信号又は電波など、命令又はデータ構造の形態でプログラムコードを搬送又は伝達し、コンピュータによってアクセスされ、読み取られ、及び／又は実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【００８７】
[0099]プログラムコードは、１つ又は複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）又は他の等価の集積回路若しくはディスクリート論理回路など、１つ又は複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明した技法のいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ又は状態機械であり得る。プロセッサはまた、コンピューティング機器の組合せ、例えば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つ以上のマイクロプロセッサ又は任意の他のそのような構成として実装され得る。従って、本明細書で使用する「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、又は本明細書で説明した技法の実装に好適な他の構造又は装置のいずれかを指すことがある。更に、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用のソフトウェア若しくはハードウェア内に提供され得、又は複合ビデオエンコーダ／デコーダ（コーデック）に組み込まれ得る。また、本技法は、１つ又は複数の回路又は論理要素で十分に実装され得る。
【００８８】
[0100]本開示の技法は、ワイヤレスハンドセット、ＩＣ又はＩＣのセット（例えば、チップセット）を含む、多種多様な機器又は装置で実装され得る。本開示では、開示する技法を実行するように構成された機器の機能的態様を強調するために、様々な構成要素又はユニットについて説明したが、それらの構成要素又はユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び／又はファームウェアとともに、上記で説明した１つ又は複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作可能なハードウェアユニットの集合によって与えられ得る。
【００８９】
[0101]上記について様々な異なる実施形態に関して説明したが、一実施形態からの特徴又は要素は、本開示の教示から逸脱することなく他の実施形態と組み合わせられ得る。但し、それぞれの実施形態間の特徴の組合せは、必ずしもそれに限定されるとは限らない。本開示の様々な実施形態について説明した。これら及び他の実施形態は以下の特許請求の範囲内に入る。
【図１Ａ】
2018515016.tif 000003
【図１Ｂ】
2018515016.tif 000004
【図２Ａ】
2018515016.tif 000005
【図２Ｂ】
2018515016.tif 000006
【図３】
2018515016.tif 000007
【図４】
2018515016.tif 000008
【図５】
2018515016.tif 000009
【図６】
2018515016.tif 000010
【図７】
2018515016.tif 000011
【国際調査報告】
2018515016.tif 000012
2018515016.tif 000013