(57)【要約】  いくつかの色空間中の、フレームまたはブロックのひずみ値を計算し、計算されたひずみ値に基づいて最適コーディングモードを決定するためのシステムおよび方法が開示される。一実施形態は、ビデオカメラ、または前に記憶されたビデオコンテンツを含んでいるビデオアーカイブを含む、ビデオソースと、記憶されたビデオコンテンツを符号化するように構成されたプロセッサとを有するシステムを含む。
2019507530.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータをコーディングするための装置であって、
複数のコーディングモードに関する情報と前記ビデオデータとを記憶するためのメモリと、前記ビデオデータが複数のビデオブロックを備える、
前記メモリに動作可能に結合されたハードウェアプロセッサとを備え、前記ハードウェアプロセッサは、
前記複数のビデオブロックのうちのビデオブロックについて複数の色空間のうちの１つを選択することと、
前記選択された色空間中にない、前記複数のビデオブロックのうちのあらゆるビデオブロックに色変換を適用し、前記複数のビデオブロックのうちのビデオブロックのすべてが、前記選択された色空間中にあることを検証することと、
前記選択された色空間に基づいて、前記複数のビデオブロックの各々のひずみ値を決定することと
を行うように構成された、
装置。
【請求項２】
前記ハードウェアプロセッサは、
前記複数のビデオブロックのうちの各ビデオブロックの初期色空間を決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
前記複数のコーディングモードのうちのどのコーディングモードが前記初期色空間に適合するかを決定することと、
符号化されたブロックを与えるために、前記適合するコーディングモードを用いて、前記複数のビデオブロックのうちの前記ビデオブロックを符号化することと
を行うようにさらに構成された、請求項１に記載の装置。
【請求項３】
前記ハードウェアプロセッサは、
前記複数のコーディングモードのうちのどのコーディングモードが初期色空間に適合しないかを決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
適合する色ブロックを与えるために、前記初期色空間に前記色変換を適用することと、
符号化されたブロックを与えるために、前記初期色空間に適合しない前記コーディングモードを用いて、前記適合する色ブロックを符号化することと
を行うようにさらに構成された、請求項１に記載の装置。
【請求項４】
前記ハードウェアプロセッサが、前記ビデオブロックと前記符号化されたブロックとから残差ブロックを計算するようにさらに構成され、前記残差ブロックが、前記ビデオブロックと前記符号化されたブロックとの間の差分を示す、請求項２に記載の装置。
【請求項５】
前記ひずみ値を決定することが、前記残差ブロックの前記ひずみ値を決定することを備える、請求項４に記載の装置。
【請求項６】
前記選択された色空間がルーマクロマ色空間を備え、ここにおいて、前記ひずみ値を決定することが、前記ルーマクロマ色空間の各クロマ成分を正規化することを備える、請求項１に記載の装置。
【請求項７】
前記ビデオブロックがある数の色平面を備え、ここにおいて、前記ビデオブロックの前記ひずみ値を決定することが、
前記数の色平面のうちの各色平面の絶対差分和と、
前記数の色平面のうちの各色平面の２乗誤差和と
のうちの少なくとも１つを備える、請求項１に記載の装置。
【請求項８】
前記色変換が変換行列に基づき、前記変換行列が、前記選択された色空間の色平面の数を示す数の列によって定義され、ここにおいて、前記ハードウェアプロセッサが、前記数の列のうちの列のユークリッドノルムに基づいて重み値を決定するようにさらに構成された、請求項１に記載の装置。
【請求項９】
前記変換されたビデオブロックの前記ひずみ値は、
前記数の色平面のうちの各色平面の絶対差分和と、ここにおいて、各色平面が、ある数の重み値のうちの対応する重み値を乗算される、
前記数の色平面のうちの各色平面の２乗誤差和と、ここにおいて、各色平面が、前記数の重みのうちの前記対応する重みを乗算される、
のうちの少なくとも１つに基づく、請求項８に記載の装置。
【請求項１０】
前記選択された色空間が、ルーマクロマ色空間とＲＧＢ色空間とのうちの少なくとも１つ中にある、請求項１に記載の装置。
【請求項１１】
ひずみ値を決定することが、（ｉ）前記複数のビデオブロックの各々の前記ひずみ値、（ｉｉ）ラムダ値、および（ｉｉｉ）前記ビデオブロックを通信するためのビットストリームレートに基づいて、前記複数のコーディングモードのうちのコーディングモードを決定することをさらに備える、請求項１に記載の装置。
【請求項１２】
前記複数のビデオブロックのうちの各ビデオブロックが、前記複数のコーディングモードのうちのあらゆるコーディングモードを使用して符号化された単一のビデオブロックを示す、請求項１に記載の装置。
【請求項１３】
ビデオデータをコーディングする方法であって、
複数のビデオブロックのうちのビデオブロックについて複数の色空間のうちの１つを選択することと、
前記選択された色空間中にない、前記複数のビデオブロックのうちのあらゆるビデオブロックに色変換を適用し、前記複数のビデオブロックのうちのビデオブロックのすべてが、前記選択された色空間中にあることを検証することと、
前記選択された色空間に基づいて、前記複数のビデオブロックの各々のひずみ値を決定することと
を備える、方法。
【請求項１４】
前記複数のビデオブロックのうちの各ビデオブロックの初期色空間を決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
複数のコーディングモードのうちのどのコーディングモードが前記初期色空間に適合するかを決定することと、
符号化されたブロックを与えるために、適合するコーディングモードを用いて、前記複数のビデオブロックのうちの前記ビデオブロックを符号化することと
をさらに備える、請求項１３に記載の方法。
【請求項１５】
複数のコーディングモードのうちのどのコーディングモードが初期色空間に適合しないかを決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
適合する色ブロックを与えるために、前記初期色空間に前記色変換を適用することと、
符号化されたブロックを与えるために、前記初期色空間に適合しないコーディングモードを用いて、前記適合する色ブロックを符号化することと
をさらに備える、請求項１３に記載の方法。
【請求項１６】
前記ビデオブロックと前記符号化されたブロックとから残差ブロックを計算することをさらに備え、前記残差ブロックが、前記ビデオブロックと前記符号化されたブロックとの間の差分を示す、請求項１４に記載の方法。
【請求項１７】
ひずみ値を決定することが、（ｉ）前記複数のビデオブロックの各々の前記ひずみ値、（ｉｉ）ラムダ値、および（ｉｉｉ）前記ビデオブロックを通信するためのビットストリームレートに基づいて、前記複数のコーディングモードのうちのコーディングモードを決定することをさらに備える、請求項１３に記載の方法。
【請求項１８】
デバイスによって実行されたとき、前記デバイスに、
複数のビデオブロックのうちのビデオブロックについて複数の色空間のうちの１つを選択することと、
前記選択された色空間中にない、前記複数のビデオブロックのうちのあらゆるビデオブロックに色変換を適用し、前記複数のビデオブロックのうちのビデオブロックのすべてが、前記選択された色空間中にあることを検証することと、
前記選択された色空間に基づいて、前記複数のビデオブロックの各々のひずみ値を決定することと
を行わせる、命令を備える非一時的コンピュータ可読媒体。
【請求項１９】
前記複数のビデオブロックのうちの各ビデオブロックの初期色空間を決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
複数のコーディングモードのうちのどのコーディングモードが前記初期色空間に適合するかを決定することと、
符号化されたブロックを与えるために、適合するコーディングモードを用いて、前記複数のビデオブロックのうちの前記ビデオブロックを符号化することと
をさらに備える、請求項１８に記載の非一時的コンピュータ可読媒体。
【請求項２０】
複数のコーディングモードのうちのどのコーディングモードが初期色空間に適合しないかを決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
適合する色ブロックを与えるために、前記初期色空間に前記色変換を適用することと、
符号化されたブロックを与えるために、前記初期色空間に適合しないコーディングモードを用いて、前記適合する色ブロックを符号化することと
をさらに備える、請求項１８に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本開示は、ビデオコーディングおよび圧縮の分野に関し、詳細には、ディスプレイストリーム圧縮（ＤＳＣ：display stream compression）など、ディスプレイリンクを介した送信のためのビデオ圧縮に関する。
【背景技術】
【０００２】
[0002]デジタルビデオ機能は、デジタルテレビジョン、携帯情報端末（ＰＤＡ）、ラップトップコンピュータ、デスクトップモニタ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるディスプレイに組み込まれ得る。適切なソースデバイスにディスプレイを接続するために、ディスプレイリンクが使用される。ディスプレイリンクの帯域幅要件はディスプレイの解像度に比例し、したがって、高解像度ディスプレイは、大きい帯域幅のディスプレイリンクを必要とする。いくつかのディスプレイリンクは、高解像度ディスプレイをサポートするための帯域幅を有しない。高解像度ディスプレイにデジタルビデオを与えるためにより低い帯域幅のディスプレイリンクが使用され得るように帯域幅要件を低減するために、ビデオ圧縮が使用され得る。
【０００３】
[0003]他のものが、ピクセルデータに対して画像圧縮を利用することを試みた。しかしながら、そのような方式は、時々視覚的ロスレスでないか、または従来のディスプレイデバイスにおいて実装することが困難で費用がかかることがある。
【０００４】
[0004]ビデオエレクトロニクス規格協会（ＶＥＳＡ：Video Electronics Standards Association）は、ディスプレイリンクビデオ圧縮のための規格として、ディスプレイストリーム圧縮（ＤＳＣ）を開発した。ＤＳＣなど、ディスプレイリンクビデオ圧縮技法は、特に、視覚的ロスレスであるピクチャ品質（すなわち、圧縮がアクティブであることをユーザがわからないような品質のレベルを有するピクチャ）を与えるべきである。ディスプレイリンクビデオ圧縮技法はまた、従来のハードウェアを用いてリアルタイムに実装することが容易で費用がかからない方式を与えるべきである。
【発明の概要】
【０００５】
[0005]本開示のシステム、方法、およびデバイスは、それぞれいくつかの発明的態様を有し、それらのうちの単一の態様が、本明細書で開示される望ましい属性を単独で担当するとは限らない。
【０００６】
[0006]１つの革新は、ビデオデータをコーディングするための装置を含む。本装置は、複数のコーディングモードに関する情報とビデオデータとを記憶するためのメモリを含み得、ビデオデータが複数のビデオブロックを備える。本装置はまた、メモリに動作可能に結合されたハードウェアプロセッサを含み得る。プロセッサは、複数のビデオブロックのうちのビデオブロック（a video block）について複数の色空間のうちの１つを選択することと、選択された色空間中にない、複数のビデオブロックのうちのあらゆる（every）ビデオブロックに色変換を適用し、複数のビデオブロックのうちのビデオブロックのすべて（all）が、選択された色空間中にあることを検証することと、選択された色空間に基づいて、複数のビデオブロックの各々のひずみ値を決定することとを行うように構成され得る。
【０００７】
[0007]いくつかの実施形態では、本装置は、複数のビデオブロックのうちの各ビデオブロックの初期色空間を決定することと、初期色空間が、色変換の適用より前の各ビデオブロックの色空間である、複数のコーディングモードのうちのどのコーディングモードが初期色空間に適合するかを決定することと、符号化されたブロックを与えるために、適合する（compatible）コーディングモードを用いて、複数のビデオブロックのうちのビデオブロックを符号化することとを行うように構成され得る。
【０００８】
[0008]いくつかの実施形態では、本装置は、複数のコーディングモードのうちのどのコーディングモードが初期色空間に適合しないかを決定することと、初期色空間が、色変換の適用より前の各ビデオブロックの色空間である、適合する色ブロックを与えるために、初期色空間に色変換を適用することと、符号化されたブロックを与えるために、初期色空間に適合しないコーディングモードを用いて、適合する色ブロックを符号化することとを行うように構成され得る。
【０００９】
[009]いくつかの実施形態では、本装置は、ビデオブロックと符号化されたブロックとから残差ブロックを計算するように構成され得、残差ブロックが、ビデオブロックと符号化されたブロックとの間の差分を示す。
【００１０】
[0010]いくつかの実施形態では、ひずみ値を決定することは、残差ブロックのひずみ値を決定することを備える。
【００１１】
[0011]いくつかの実施形態では、選択された色空間はルーマクロマ色空間を備え、ここにおいて、ひずみ値を決定することは、ルーマクロマ色空間の各クロマ成分を正規化することを備える。
【００１２】
[0012]いくつかの実施形態では、ビデオブロックはある数の色平面（a number of color planes）を備え、ここにおいて、ビデオブロックのひずみ値を決定することは、上記数の色平面（the number of color planes）のうちの各色平面の絶対差分和と、上記数の色平面のうちの各色平面の２乗誤差和とのうちの少なくとも１つを備える。
【００１３】
[0013]いくつかの実施形態では、色変換は変換行列に基づき、変換行列は、選択された色空間の色平面の数を示す数の列（a number of columns）によって定義され、ここにおいて、ハードウェアプロセッサは、上記数の列のうちの列のユークリッドノルムに基づいて重み値を決定するようにさらに構成される。
【００１４】
[0014]いくつかの実施形態では、変換されたビデオブロックのひずみ値は、上記数の色平面のうちの各色平面の絶対差分和と、ここにおいて、各色平面が、ある数の重み値のうちの対応する重み値を乗算される、上記数の色平面のうちの各色平面の２乗誤差和と、ここにおいて、各色平面が、上記数の重みのうちの対応する重みを乗算される、のうちの少なくとも１つに基づく。
【００１５】
[0015]いくつかの実施形態では、選択された色空間は、ルーマクロマ色空間とＲＧＢ色空間とのうちの少なくとも１つ中にある。
【００１６】
[0016]いくつかの実施形態では、ひずみ値を決定することは、（ｉ）複数のビデオブロックの各々のひずみ値、（ｉｉ）ラムダ値、および（ｉｉｉ）ビデオブロックを通信するためのビットストリームレートに基づいて、複数のコーディングモードのうちのコーディングモード（a coding mode）を決定することをさらに備える。
【００１７】
[0017]いくつかの実施形態では、複数のビデオブロックのうちの各ビデオブロックは、複数のコーディングモードのうちのあらゆるコーディングモードを使用して符号化された単一のビデオブロックを示す。
【図面の簡単な説明】
【００１８】
【図１Ａ】[0018]本開示で説明される態様による技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図１Ｂ】[0019]本開示で説明される態様による技法を実行し得る別の例示的なビデオ符号化および復号システムを示すブロック図。
【図２】[0020]本開示で説明される態様による技法を実装し得るビデオエンコーダの一例を示すブロック図。
【図３】[0021]ひずみ回路の例示的な実装形態を示すブロック図。
【図４】[0022]ひずみ回路の代替実装形態を示すブロック図。
【図５】[0023]本開示で説明される態様による技法を実装し得るビデオデコーダの一例を示すブロック図。
【図６】[0024]符号化モードを決定するための例示的な方法を示す流れ図。
【発明を実施するための形態】
【００１９】
[0025]固定レートおよび視覚的ロスレス圧縮を与えるＤＳＣコーダが本明細書で開示される。コーダは、（たとえば、ブロックサイズがＰ×Ｑである）ブロックまたはスライスベースの手法に関して設計され、多数の（a multitude of）コーディングモードのうちの１つまたは複数を用いて実装され得る。たとえば、各ブロックのための利用可能なコーディングオプションは、変換モード（たとえば、ＤＣＴ、アダマール）、ブロック予測モード、差分パルスコード変調（ＤＰＣＭ：differential pulse-code modulation）モード、パターンモード、中点予測（ＭＰＰ：mid-point prediction）モード、および／または中点プレディケーションフォールバック（ＭＰＰＦ：mid-point predication fall back）モードを含む。いくつかのコーディングモードが、異なるタイプのコンテンツまたは画像を圧縮するためにコーダにおいて使用され得る。たとえば、テキスト画像はパターンモードを介して圧縮され得、自然画像は変換モードを介してキャプチャされ得る。
【００２０】
[0026]いくつかの実施形態は、ＤＳＣ規格のコンテキストにおいて本明細書で説明されるが、本明細書で開示されるシステムおよび方法が任意の好適なビデオコーディング規格に適用可能であり得ることを、当業者は諒解されよう。たとえば、本明細書で開示される実施形態は、以下の規格、すなわち、国際電気通信連合（ＩＴＵ）電気通信標準化部門（ＩＴＵ−Ｔ）Ｈ．２６１、国際標準化機構／国際電気標準会議（ＩＳＯ／ＩＥＣ）ムービングピクチャエキスパートグループ１（ＭＰＥＧ−１）Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４、高効率ビデオコーディング（ＨＥＶＣ）のうちの１つまたは複数、およびそのような規格に対する任意の拡張に適用可能であり得る。また、本開示で説明される技法は、将来開発される規格の一部になり得る。言い換えれば、本開示で説明される技法は、前に開発されたビデオコーディング規格、現在開発中のビデオコーディング規格、および次のビデオコーディング規格に適用可能であり得る。
【００２１】
[0027]いくつかの態様によるＤＳＣコーダでは、各モードのレートひずみ（「ＲＤ：rate distortion」）性能は、様々な色空間、たとえば、ＹＣｏＣｇまたはＹＣｂＣｒなどの任意のルーマクロマ表現において、あるいはＲＧＢまたはＣＭＹＫ色空間中で評価され得る。
【００２２】
[0028]いくつかの態様によれば、本開示で説明される技法は、たとえば、各モードが異なる色空間中で評価される場合の（where）、コーディングモードのひずみを計算するために、様々な方法を与えることができる。たとえば、すべてのコーディングモードのひずみは、たとえば、適切な色変換を適用することによって、同じ色空間中で計算され得る。色変換は、残差ブロックに適用され得るか、ここで、残差ブロックは、元のビデオブロックと（本明細書では符号化されたブロックまたはエラーブロックとも呼ばれる）再構成されたビデオブロックとの間の差分を表し、または色変換は、残差を計算する前の、元のブロックと再構成されたブロックの両方に適用され得る。
ビデオコーディング規格
[0029]ビデオ画像、ＴＶ画像、静止画像、あるいはビデオレコーダまたはコンピュータによって生成された画像など、デジタル画像は、水平ラインおよび垂直ラインで構成されたピクセルまたはサンプルを含み得る。単一の画像中のピクセルの数は一般に数万個である。各ピクセルは、一般に、ルミナンス情報とクロミナンス情報とを含んでいる。圧縮がなければ、画像エンコーダから画像デコーダに搬送されるべき情報の甚だしい量は、リアルタイム画像送信を実行不可能にするであろう。送信されるべき情報の量を低減するために、ＪＰＥＧ、ＭＰＥＧおよびＨ．２６３規格など、いくつかの異なる圧縮方法が開発された。
【００２３】
[0030]ビデオコーディング規格は、ＩＴＵ−Ｔ  Ｈ．２６１と、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌと、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌと、ＩＴＵ−Ｔ  Ｈ．２６３と、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌと、（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られる）ＩＴＵ−Ｔ  Ｈ．２６４と、そのような規格の拡張を含むＨＥＶＣとを含む。
【００２４】
[0031]さらに、ＶＥＳＡによって、あるビデオコーディング規格、すなわち、ＤＳＣが開発された。ＤＳＣ規格は、ディスプレイリンクを介した送信のためにビデオを圧縮することができるビデオ圧縮規格である。ディスプレイの解像度が増加するにつれて、ディスプレイを駆動するために必要とされるビデオデータの帯域幅は、対応して増加する。いくつかのディスプレイリンクは、そのような解像度についてディスプレイにビデオデータのすべてを送信するための帯域幅を有しないことがある。したがって、ＤＳＣ規格は、ディスプレイリンクを介した相互運用可能な、視覚的ロスレス圧縮のための圧縮規格を規定する。
【００２５】
[0032]ＤＳＣ規格は、Ｈ．２６４およびＨＥＶＣなど、他のビデオコーディング規格とは異なる。ＤＳＣは、フレーム内圧縮を含むが、フレーム間圧縮を含まず、これは、ビデオデータをコーディングする際にＤＳＣ規格によって時間的情報が使用されないことがあることを意味する。対照的に、他のビデオコーディング規格は、それらのビデオコーディング技法においてフレーム間圧縮を採用し得る。４：１のまたはより高い圧縮比を与えるために、たとえば、アドバンストＤＳＣが開発されている。４：１のまたはより高い圧縮比は、モバイルデバイスのために、たとえば、４Ｋなどの高解像度ディスプレイのために使用され得る。
ＤＳＣにおけるスライス
[0033]上述のように、スライスは、概して、画像またはフレーム中の領域の残りからの情報を使用することなしに独立して復号され得る、画像またはフレーム中の空間的に別個の領域を指す。各画像またはビデオフレームは単一のスライス中で符号化され得るか、あるいは各画像またはビデオフレームはいくつかのスライス中で符号化され得る。ＤＳＣでは、各スライスを符号化するために割り振られるターゲットビットは、実質的に一定であり得る。これは部分スライスについて異なり得、これは、画像高さがスライス高さで割り切れない場合に起こることがある。たとえば、１０８のスライス高さをもつサイズ１２８０×７２０の画像は、高さ１０８の６つのスライスと高さ７２（＝７２０−（６＊１０８））の１つの部分スライスとを有する。
【００２６】
[0034]アドバンストＤＳＣスライス寸法は、変数またはパラメータスライス幅×スライス高さを使用して指定され得、ここで、スライス幅およびスライス高さは構成可能である。スライス高さは所望の値、たとえば、１６、３２、１０８などに構成され得る。スライス幅は、ライン中のスライスの数を決定する、パラメータＮを使用して構成され得、各スライス中のラインごとのピクセルの数が等しい、たとえば、スライス幅＝画像幅／Ｎであると仮定される。画像幅は画像の幅を表す変数またはパラメータであり得る。
ビデオコーディングシステム
[0035]添付の図面を参照しながら、新規のシステム、装置、および方法の様々な態様が以下でより十分に説明される。ただし、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示される任意の特定の構造または機能に限定されるものと解釈されるべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるように与えられる。本明細書の教示に基づいて、本開示の範囲は、本開示の他の態様とは無関係に実装されるにせよ、本開示の他の態様と組み合わせられるにせよ、本明細書で開示される新規のシステム、装置、および方法のいかなる態様をもカバーするものであることを、当業者は諒解されたい。たとえば、本明細書に記載される態様をいくつ使用しても、装置は実装され得、または方法は実施され得る。さらに、本開示の範囲は、本明細書に記載される本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーするものとする。本明細書で開示されるいかなる態様も請求項の１つまたは複数の要素によって実施され得ることを理解されたい。
【００２７】
[0036]本明細書では特定の態様が説明されるが、これらの態様の多くの変形および置換が本開示の範囲内に入る。好適な態様のいくつかの利益および利点が説明されるが、本開示の範囲は特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、異なるワイヤレス技術、システム構成、ネットワーク、および伝送プロトコルに広く適用可能であるものとし、それらのうちのいくつかが、例として、図において、および好適な態様の以下の説明において示される。発明を実施するための形態および図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。
【００２８】
[0037]添付の図面は例を示す。添付の図面中の参照番号によって示される要素は、以下の説明における同様の参照番号によって示される要素に対応する。本開示では、序数語（たとえば、「第１の」、「第２の」、「第３の」など）で始まる名前を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。むしろ、そのような序数語は、同じまたは同様のタイプの異なる要素を指すために使用されるにすぎない。
【００２９】
[0038]図１Ａは、本開示で説明される態様による技法を利用し得る例示的なビデオコーディングシステム１０を示すブロック図である。本明細書で使用され説明される「ビデオコーダ」または「コーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化とビデオ復号とを総称的に指すことがある。ビデオエンコーダおよびビデオデコーダに加えて、本出願で説明される態様は、トランスコーダ（たとえば、ビットストリームを復号し、別のビットストリームを再符号化することができるデバイス）およびミドルボックス（たとえば、ビットストリームを変更、変換、および／または場合によっては操作することができるデバイス）など、他の関係するデバイスに拡張され得る。
【００３０】
[0039]図１Ａに示されているように、ビデオコーディングシステム１０は、宛先デバイス１４によって後で（at a later time）復号されるべき、ソースビデオデータ１３と符号化ビデオデータ１６とを生成するソースデバイス１２を含む。図１Ａの例では、ソースデバイス１２および宛先デバイス１４は、別個のデバイスを構成する。ただし、ソースデバイス１２および宛先デバイス１４は、図１Ｂの例に示されているように、同じデバイス上にあるかまたはそれの一部であり得ることに留意されたい。
【００３１】
[0040]もう一度図１Ａを参照すると、ソースデバイス１２および宛先デバイス１４は、それぞれ、デスクトップコンピュータ、ノートブック（たとえば、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータ、ビデオストリーミングデバイス、アイウェアおよび／またはウェアラブルコンピュータなど、エンティティ（たとえば、人間、動物、および／または別の被制御デバイス）によって（に）装着可能な（または着脱自在に取付け可能な）ビデオデバイス、エンティティ内で消費、摂取、または配置され得るデバイスまたは装置などを含む、広範囲にわたるデバイスのいずれかを備え得る。様々な実施形態では、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され得る。
【００３２】
[0041]宛先デバイス１４は、復号されるべき符号化ビデオデータ１６をリンク１７を介して受信し得る。リンク１７は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータ１６を移動することが可能な任意のタイプの媒体またはデバイスを備え得る。図１Ａの例では、リンク１７は、ソースデバイス１２が符号化ビデオデータ１６をリアルタイムで宛先デバイス１４に送信することを可能にするための通信媒体を備え得る。符号化ビデオデータ１６は、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得る任意の他の機器を含み得る。
【００３３】
[0042]図１Ａの例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。いくつかの場合には、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、ビデオキャプチャデバイス、たとえばビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、図１Ｂの例に示されているように、いわゆる「カメラフォン」または「ビデオフォン」を形成し得る。ビデオソース１８は、キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ生成ビデオを、ソースビデオデータ１３のビットストリーム（a source video data 13 bitstream）としてビデオエンコーダ２０に出力し得る。ただし、本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例に適用され得る。たとえば、ビデオソース１８は、ビデオソース１８とビデオエンコーダ２０との間の接続を介して、ソースビデオデータ１３を生成し、出力し得る。接続は、任意の好適なワイヤード接続（たとえば、ユニバーサルシリアルバス（ＵＳＢ）、ＦｉｒｅＷｉｒｅ（登録商標）、Ｔｈｕｎｄｅｒｂｏｌｔ、Ｌｉｇｈｔ  Ｐｅａｋ、デジタルビデオインターフェース（ＤＶＩ）、高精細度マルチメディアインターフェース（ＨＤＭＩ（登録商標））、ビデオグラフィックスアレイ（ＶＧＡ）など）を含み得る。接続は、任意の好適なワイヤレス接続（たとえば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、３Ｇ、４Ｇ、ＬＴＥ（登録商標）、ＬＴＥアドバンスト、５Ｇなど）をも含み得る。
【００３４】
[0043]ソースビデオデータ１３は、ビデオエンコーダ２０によって受信および符号化され得る。符号化ビデオデータ１６は、ソースデバイス１２の出力インターフェース２２を介して宛先デバイス１４に送信され得る。符号化ビデオデータ１６は、さらに（または代替として）、復号および／または再生のための宛先デバイス１４または他のデバイスによる後のアクセスのためにストレージデバイス（図示せず）上に記憶され得る。図１Ａおよび図１Ｂに示されているビデオエンコーダ２０は、図２示されているビデオエンコーダ２０、または本明細書で説明される他のビデオエンコーダを備え得る。
【００３５】
[0044]図１Ａの例では、宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。いくつかの場合には、入力インターフェース２８は受信機および／またはモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、リンク１７を介しておよび／またはストレージデバイスから符号化ビデオデータ１６を受信し得る。リンク１７を介して通信された、またはストレージデバイス上に与えられた符号化ビデオデータ１６は、ビデオデータ１６を復号する際に、ビデオデコーダ３０などのビデオデコーダが使用するための、ビデオエンコーダ２０によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体上に記憶された、またはファイルサーバ記憶された符号化ビデオデータ１６に含まれ得る。図１Ａおよび図１Ｂに示されているビデオデコーダ３０は、図５に示されているビデオデコーダ３０、または本明細書で説明される他のビデオデコーダを備え得る。
【００３６】
[0045]ディスプレイデバイス３２は、宛先デバイス１４と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス３２は、復号ビデオデータをユーザに表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００３７】
[0046]関係する態様では、図１Ｂは例示的なビデオコーディングシステム１０’を示し、ここにおいて、ソースデバイス１２および宛先デバイス１４はデバイス１１上にあるかまたはそれの一部である。デバイス１１は、「スマート」フォンなどの電話ハンドセットであり得る。デバイス１１は、ソースデバイス１２および宛先デバイス１４と動作可能に通信している（随意に存在する）プロセッサ／コントローラデバイス１３を含み得る。図１Ｂのビデオコーディングシステム１０’およびそれの構成要素は、場合によっては図１Ａのビデオコーディングシステム１０およびそれの構成要素と同様である。
【００３８】
[0047]ビデオエンコーダ２０およびビデオデコーダ３０は、ＤＳＣなど、ビデオ圧縮規格に従って動作し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ１０，ＡＶＣと呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格、ＨＥＶＣなど、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例としては、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００３９】
[0048]図１Ａおよび図１Ｂの例には示されていないが、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００４０】
[0049]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するために１つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダの一部として統合され得る。
ビデオコーディングプロセス
[0050]上記で手短に述べられたように、ビデオエンコーダ２０はソースビデオデータ１３を符号化する。ソースビデオデータ１３は１つまたは複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。いくつかの事例では、ピクチャはビデオ「フレーム」と呼ばれることがある。ビデオエンコーダ２０がソースビデオデータ１３を符号化するとき、ビデオエンコーダ２０はビットストリームを生成し得る。ビットストリームは、ビデオデータ１６のコード化表現を形成するビットのシーケンスを含み得る。ビットストリームは、コード化ピクチャと関連データとを含み得る。コード化ピクチャはピクチャのコード化表現である。
【００４１】
[0051]ビットストリームを生成するために、ビデオエンコーダ２０は、ビデオデータ中の各ピクチャに対して符号化演算を実行し得る。ビデオエンコーダ２０がピクチャに対して符号化演算を実行するとき、ビデオエンコーダ２０は、一連のコード化ピクチャと関連データとを生成し得る。関連データは、量子化パラメータ（ＱＰ）などのコーディングパラメータのセットを含み得る。量子化は信号にロスをもたらし得、ロスの量は、レートコントローラ１２０によって決定されたＱＰによって制御され得る。レートコントローラ１２０は図２でより詳細に説明される。各ＱＰについての量子化ステップサイズを記憶するのではなく、スケーリング行列がＱＰの関数として指定され得る。各ＱＰについての量子化ステップサイズはスケーリング行列から導出され得、導出された値は必ずしも２のべき乗であるとは限らず、すなわち、導出された値は２のべき乗でないこともある。
【００４２】
[0052]コード化ピクチャを生成するために、ビデオエンコーダ２０は、ピクチャを等しいサイズのビデオブロックに区分し得る。ビデオブロックはサンプルの２次元アレイであり得る。コーディングパラメータは、ビデオデータのあらゆるブロックについてコーディングオプション（たとえば、コーディングモード）を定義し得る。コーディングオプションは、所望のレートひずみ性能を達成するために選択され得る。
【００４３】
[0053]いくつかの例では、ビデオエンコーダ２０はピクチャを複数のスライスに区分し得る。スライスの各々は、画像またはフレーム中の領域の残りからの情報なしに独立して復号され得る、画像（たとえば、フレーム）中の空間的に別個の領域を含み得る。各画像またはビデオフレームは単一のスライス中で符号化され得るか、あるいは各画像またはビデオフレームはいくつかのスライス中で符号化され得る。ＤＳＣでは、各スライスを符号化するために割り振られるターゲットビットは、実質的に一定であり得る。ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ２０は、ピクチャの各スライスに対して符号化演算を実行し得る。ビデオエンコーダ２０がスライスに対して符号化演算を実行するとき、ビデオエンコーダ２０は、スライスに関連付けられた符号化データを生成し得る。スライスに関連付けられた符号化データは「コード化スライス」と呼ばれることがある。
ＤＳＣビデオエンコーダ
[0054]図２は、本開示で説明する態様による技法を実装し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、本開示の技法の一部または全部を実行するように構成され得る。いくつかの例では、本開示で説明される技法は、ビデオエンコーダ２０の様々な構成要素間で共有され得る。いくつかの例では、追加または代替として、プロセッサ（図示せず）が、本開示で説明される技法の一部または全部を実行するように構成され得る。
【００４４】
[0055]説明の目的で、本開示は、ＤＳＣコーディングのコンテキストにおいてビデオエンコーダ２０について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【００４５】
[0056]図２の例では、ビデオエンコーダ２０は複数の機能構成要素を含む。ビデオエンコーダ２０の機能構成要素は、色空間コンバータ１０５と、バッファ１１０と、平坦度検出器１１５と、レートコントローラ１２０と、予測器、量子化器、および再構成器（ＰＱＲ：predictor, quantizer, and reconstructor）構成要素１２５と、ひずみ回路１８８と、ラインバッファ１３０と、インデックス色履歴１３５と、エントロピーエンコーダ１４０と、サブストリームマルチプレクサ１４５と、レートバッファ１５０とを含む。他の例では、ビデオエンコーダ２０は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【００４６】
[0057]色空間１０５コンバータは、ソースビデオデータ１３の入力色空間を特定のコーディング実装形態において使用される色空間にコンバートし得る。たとえば、ソースビデオデータ１３の色空間は、赤、緑、および青（ＲＧＢ）色空間中にあり得、コーディングは、ルミナンスＹ、クロミナンスグリーンＣｇ、およびクロミナンスオレンジＣｏ（ＹＣｇＣｏ）色空間中で実装され得る。色空間コンバージョンは、ビデオデータへのシフトおよび追加を含む（１つまたは複数の）方法によって実行され得る。他の色空間中の入力ビデオデータが処理され得、他の色空間へのコンバージョンも実行され得ることに留意されたい。いくつかの実装形態では、ビデオデータは、入力ビデオデータの色空間がすでに、特定のコーディングモードについての正しいフォーマットでのものである場合、色空間コンバータ１０５をバイパスし得る。たとえば、入力色空間がＲＧＢである場合、ビデオデータは、ＲＧＢまたはルーマクロマ表現のいずれかにおいてビデオデータを符号化し得る、中点予測モードによってコーディングするために、色空間コンバータ１０５をバイパスし得る。
【００４７】
[0058]関係する態様では、ビデオエンコーダ２０は、バッファ１１０、ラインバッファ１３０、および／またはレートバッファ１５０を含み得る。たとえば、バッファ１１０は、色空間コンバートされたビデオデータを、ビデオエンコーダ２０の他の部分によるそれの使用に先立って保持し得る。別の例では、色空間コンバートされたデータはより多くのビットを必要とし得るので、ビデオデータはＲＧＢ色空間中で記憶され得、色空間コンバージョンが必要に応じて実行され得る。
【００４８】
[0059]レートバッファ１５０はビデオエンコーダ２０においてレート制御機構の一部として機能し得、このことは、レートコントローラ１２０に関して以下でより詳細に説明される。各ブロックを符号化することに費やされるビットは、大いに、実質的に、ブロックの性質に基づいて変動することがある。レートバッファ１５０は、圧縮されたビデオにおけるレート変動を平滑化することができる。いくつかの実施形態では、ビットが固定ビットレート（ＣＢＲ）でバッファから取り出されるＣＢＲバッファモデルが採用される。ＣＢＲバッファモデルでは、ビデオエンコーダ２０がビットストリームにあまりに多くのビットを加えた場合、レートバッファ１５０はオーバーフローし得る。一方、ビデオエンコーダ２０は、レートバッファ１５０のアンダーフローを防ぐために、十分なビットを加えなければならない。
【００４９】
[0060]ビデオデコーダ側では、ビットは、固定ビットレートでビデオデコーダ３０のレートバッファ１５５（以下でさらに詳細に説明される図５を参照）に加えられ得、ビデオデコーダ３０は、各ブロックについて可変数のビットを削除し得る。適切な復号を保証するために、ビデオデコーダ３０のレートバッファ１５５は、圧縮されたビットストリームの復号中に「アンダーフロー」または「オーバーフロー」すべきでない。
【００５０】
[0061]いくつかの実施形態では、バッファフルネス（ＢＦ）は、バッファに現在あるビットの数を表す値ＢｕｆｆｅｒＣｕｒｒｅｎｔＳｉｚｅと、レートバッファ１５０のサイズ、すなわち、任意の時点においてレートバッファ１５０に記憶され得るビットの最大数を表すＢｕｆｆｅｒＭａｘＳｉｚｅとに基づいて定義され得る。以下の式１は、ＢＦを計算するために使用され得る。
【００５１】
【数１】
2019507530.tif 000003
【００５２】
[0062]平坦度検出器１１５は、ビデオデータ中の複雑な（すなわち、平坦でない）エリアからビデオデータ中の平坦な（すなわち、単純なまたは均一な）エリアへの変化を検出することができる。「複雑な」および「平坦な」という用語は、本明細書では、概して、ビデオエンコーダ２０がビデオデータのそれぞれの領域を符号化することの困難さを指すために使用される。したがって、本明細書で使用される複雑なという用語は、概して、ビデオデータの領域が、ビデオエンコーダ２０が符号化することが複雑であることを表し、たとえば、テクスチャードビデオデータ、高い空間周波数、および／または符号化することが複雑である他の特徴を含み得る。本明細書で使用される平坦なという用語は、概して、ビデオデータの領域が、ビデオエンコーダ２０がエンコーダすることが単純であることを表し、たとえば、ビデオデータ中の滑らかな勾配、低い空間周波数、および／または符号化することが単純である他の特徴を含み得る。複雑な領域と平坦な領域との間の遷移が、符号化ビデオデータ１６中の量子化アーティファクトを低減するために、ビデオエンコーダ２０によって使用され得る。詳細には、レートコントローラ１２０およびＰＱＲ構成要素１２５は、複雑な領域から平坦な領域への（from complex to flat regions）遷移が識別されたとき、そのような量子化アーティファクトを低減することができる。
【００５３】
[0063]レートコントローラ１２０は、コーディングパラメータのセット、たとえば、ＱＰを決定する。ＱＰは、レートバッファ１５０がオーバーフローまたはアンダーフローしないことを保証するターゲットビットレートについてピクチャ品質を最大にするために、レートバッファ１５０のバッファフルネスとビデオデータの画像アクティビティとに基づいて、レートコントローラ１２０によって調整され得る。レートコントローラ１２０はまた、最適レートひずみ性能を達成するために、ビデオデータの各ブロックについて特定のコーディングオプション（たとえば、特定のモード）を選択する。レートコントローラ１２０は、再構成された画像のひずみを、それがビットレート制約を満たすように、すなわち、全体的実コーディングレートがターゲットビットレート内に収まるように最小限に抑える。したがって、レートコントローラ１２０の１つの目的は、レートひずみ性能を最大にしながらレートに対する瞬間的および平均的な制約を満たすように、（１つまたは複数の）ＱＰ、（１つまたは複数の）コーディングモードなど、コーディングパラメータのセットを決定することである。ＰＱＲ構成要素１２５は、レート制御技法に基づいて複数の候補コーディングモードの中から各ブロックについてのコーディングモードを選択し得る。レート制御技法は、バッファモデルを利用することを伴い得、コーデックの設計考慮事項は、レートバッファ１５０がアンダーフロー（たとえば、バッファ中で０ビットよりも少ない）またはオーバーフロー（たとえば、バッファサイズが、設定／定義された最大サイズを超えて増加した）の状態にないことを確実にすることを含み得る。一実施形態では、レートコントローラ１２０は、レートとひずみとの間のトレードオフ、たとえば、コストＤ＋λ・Ｒで表される低コストコーディングオプションに基づいて各ブロックについて最も良好なコーディングモードを選択するように設計され得る。ここで、パラメータＲは、現在ブロックについてエンコーダ２０とデコーダ３０との間で送信される総ビット数であり得る、現在ブロックのビットレートを指し、パラメータＤは、元のブロックと再構成されたブロック（または符号化されたブロック）との間の差分であり得る、現在ブロックのひずみを指す。パラメータＤは、たとえば、元のブロックと再構成されたブロックとの間の絶対差分和（ＳＡＤ）（たとえば、式４、６、８、１０、および１２）、２乗誤差和（たとえば、式５、７、９、１１、および１３）など、いくつかの（a number of）異なる方法で算出され得る。パラメータλ、またはラムダ値は、パラメータＲとパラメータＤとの間のトレードオフであり得る、ラグランジュパラメータである。ラグランジュパラメータλは様々な方法で計算され得、λ計算に対する選択された手法は、コンテキストおよび適用例に応じて変化し得ることに留意されたい。たとえば、ラグランジュパラメータλは、レートバッファ（１５０、１５５）状態（すなわち、バッファフルネス）、ブロックの第１のラインのまたは第１でないラインの状況など、いくつかのファクタに基づいて算出され得る。スライス状況の第１でないラインの場合でさえ、空間予測モードが、多数のタイプの画像コンテンツについて選定され得る。
【００５４】
[0064]ＰＱＲ構成要素１２５は、ビデオエンコーダ２０の少なくとも３つの符号化演算を実行し得る。ＰＱＲ構成要素１２５は、いくつかの異なるモードで予測を実行し得る。１つの例示的なプレディケーションモードは、メディアン適応予測の変更バージョンである。メディアン適応予測はロスレスＪＰＥＧ規格（ＪＰＥＧ−ＬＳ）によって実装され得る。ＰＱＲ構成要素１２５によって実行され得るメディアン適応予測の変更バージョンは、３つの連続するサンプル値の並列予測を可能にし得る。別の例示的な予測モードはブロック予測である。ブロック予測では、サンプルは、上のライン中の、または同じライン中の左側の前に再構成されたピクセルから予測される。いくつかの実施形態では、ビデオエンコーダ２０およびビデオデコーダ３０は、両方とも、ブロック予測使用を決定するために、再構成されたピクセルに対して同じ探索を実行し得、したがって、ビットはブロック予測モードで送られる必要がない。他の実施形態では、ビデオエンコーダ２０は、探索を実行し、ビットストリーム中でブロック予測ベクトルをシグナリングし得、したがって、ビデオデコーダ３０は、別個の探索を実行する必要がない。成分範囲の中点を使用してサンプルが予測される中点予測モードも実装され得る。中点予測モードは、ワーストケースサンプルにおいてさえも、圧縮されたビデオに必要なビットの数の制限を可能にし得る。ＰＱＲ構成要素１２５は、本開示の方法および技法を実行することによってビデオデータのブロック（または予測の他のユニット）を予測（たとえば、符号化または復号）するように構成され得る。
【００５５】
[0065]ＰＱＲ構成要素１２５はまた、量子化を実行する。たとえば、量子化は、シフタを使用して実装され得る２のべき乗量子化器（power-of-2 quantizer）を介して実行され得る。２のべき乗量子化器の代わりに他の量子化技法が実装され得ることに留意されたい。ＰＱＲ構成要素１２５によって実行される量子化は、レートコントローラ１２０によって決定されたＱＰに基づき得る。最終的に、ＰＱＲ構成要素１２５はまた、予測値に逆量子化残差を加算することと、結果がサンプル値の有効範囲の外側にないことを保証することとを含む再構成を実行する。本明細書では、「残差（residual）」という用語は、「残差（residue）」と互換的に使用され得る。
【００５６】
[0066]ＰＱＲ構成要素１２５によって実行される予測、量子化、および再構成に対する上記で説明された例示的な手法は、例示的なものにすぎず、他の手法が実装され得ることに留意されたい。また、ＰＱＲ構成要素１２５は、予測、量子化、および／または再構成を実行するための（１つまたは複数の）副構成要素を含み得ることに留意されたい。さらに、予測、量子化、および／または再構成は、ＰＱＲ構成要素１２５の代わりにいくつかの別個のエンコーダ構成要素によって実行され得ることに留意されたい。
【００５７】
[0067]まだ図２を参照すると、ＰＱＲ構成要素１２５はひずみ回路１８８を含み得る。ひずみ回路は、以下で説明される機能に関係する命令を実行するためのコンピューティングデバイスに対応し得る。ひずみ回路１８８は、タスクの通信および実行を管理するようにまとめて構成された、プロセッサ、たとえば、ビデオ処理ユニットまたは汎用処理ユニットと、メモリとを含み得る。ひずみ回路１８８は、ビデオデータの入力を受信し、ビデオデータは、様々な色空間のものであり得る。たとえば、入力ビデオデータの色空間は、ＲＧＢまたはＲＣＴ色空間、あるいは、ＹＣｂＣｒ、ＹＣｏＣｇ、またはロスレスＹＣｏＣｇ−Ｒなどのルーマクロマ表現であり得る。ひずみ回路１８８は、入力ビデオデータに適用されるとき、いくつかのコーディングモードのひずみを計算し得る。ひずみ回路１８８は、計算されたひずみおよびコスト関数に従って入力ビデオデータの特定のスライスまたはブロック上で使用されるべき最適コーディングモードを決定し、ＰＱＲ構成要素１２５にこの情報を与え得る。コスト関数は、デコーダにおいてレートひずみ性能を制御する。たとえば、比較的最小のひずみを生成するコーディングモードは、レートがあまりに高い場合、バッファがオーバーフローすることを引き起こし得る。代替的に、比較的高いレートは許容できるが（may be acceptable）、画像の品質が犠牲になり得る。したがって、ひずみ回路１８８は、画像品質とバッファレートとが許容できるレベルに維持されるように、レート制御技法を使用して受信される画像データのあらゆるブロックまたはスライスについて最適コーディングモードを決定することの利点を提供する。
【００５８】
[0068]ラインバッファ１３０は、ＰＱＲ構成要素１２５およびインデックス色履歴１３５が、バッファされたビデオデータを使用することができるように、ＰＱＲ構成要素１２５からの出力を保持する。インデックス色履歴１３５は、最近使用されたピクセル値を記憶する。これらの最近使用されたピクセル値は、専用シンタックスを介してビデオエンコーダ２０によって直接参照され得る。
【００５９】
[0069]エントロピーエンコーダ１４０は、インデックス色履歴１３５と、平坦度検出器１１５によって識別された平坦度遷移とに基づいて、ＰＱＲ構成要素１２５から受信された予測残差および他の（any other）データ（たとえば、ＰＱＲ構成要素１２５によって識別されたインデックス）を符号化する。いくつかの例では、エントロピーエンコーダ１４０は、サブストリームエンコーダごとにクロックごとに３つのサンプルを符号化し得る。サブストリームマルチプレクサ１４５は、ヘッダレスパケット多重化方式に基づいてビットストリームを多重化し得る。これは、ビデオデコーダ３０が並列に３つのエントロピーデコーダを動作させることを可能にし、クロックごとの３つのピクセルの復号を可能にする。サブストリームマルチプレクサ１４５は、パケットがビデオデコーダ３０によって効率的に復号され得るようにパケット順序を最適化し得る。クロックごとの２のべき乗個のピクセル（たとえば、２ピクセル／クロックまたは４ピクセル／クロック）の復号を可能にし得る、エントロピーコーディングに対する異なる手法が実装され得ることに留意されたい。
ひずみの計算
[0070]いくつかの実施形態では、ビデオエンコーダ２０のひずみ回路１８８は、同じ色空間中のすべてのコーディングモードのひずみを計算し得る。たとえば、ひずみ回路は、適切な色変換を適用することによって、同じ色空間中のすべてのコーディングモードのひずみを計算し得る。適切な色変換は、上記で開示された様々な色変換を指すことがある。色変換の例は、入力ＲＧＢ信号をルーマクロマ表現にコンバートすること、およびルーマクロマ表現をＲＧＢ信号にコンバートすることを含む。一実装形態では、ひずみ回路１８８は、残差ブロック３４０ａ〜ｎのセットに色変換を実行し得、ここで、残差ブロック３４０ａ〜ｎは、元のブロック（３１０、３１５）と、再構成されたブロック３３０、または符号化されたブロックとの間の差分を表す。たとえば、元のブロック（３１０、３１５）は、符号化より前の（prior to）、いくつかのブロックまたはスライスに区分された（has been partitioned）入力フレームの区分された表現であり得る。再構成されたブロック３３０は、複数のコーディングモード３２５使用され符号化された（encoded used a plurality of coding modes 325）、いくつかの異なる色空間中の元のブロックのうちの１つを表し得る。別の実装形態では、ひずみ回路１８８は、残差ブロック３４０ａ〜ｎを計算する前に、元のブロック（３１０、３１５）と再構成されたブロック３３０の両方に色変換を実行し得る。
【００６０】
[0071]図３は、図２のひずみ回路１８８の例示的な実装形態を示す。ひずみ回路は複数の機能構成要素を含む。ひずみ回路の機能構成要素は、ブロックエンコーダ３２０と、差分計算３３５ａ〜ｎ構成要素と、ひずみ計算３４５ａ〜ｎ構成要素とを含む。他の例では、ひずみ回路１８８は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【００６１】
[0072]まだ図３を参照すると、ひずみ回路１８８は、バッファ１１０からのソースビデオデータ１３、ならびに（as well as）色空間コンバータ１０５から出力されたビデオデータを受信し得る。ソースビデオデータ１３のフォーマットがＲＧＢ色空間中にあるとき、色空間コンバータ１０５は、線形色変換を使用してデータを無相関化し得る。色空間コンバータ１０５は様々な色変換を使用し得る。たとえば、ＲＧＢをルーマクロマ表現（たとえば、ＪＰＥＧにおいて使用されるＹＣｂＣｒ、ＹＣｏＣｇ、またはＲＣＴ）にコンバートする変換。また、ＹＣｏＣｇへのＲＧＢのロッシー（ＹＣｏＣｇ）およびロスレス（ＹＣｏＣｇ−Ｒ）バージョンを使用する色変換。一実装形態では、色空間コンバータ１０５は、色変換がいかなるロスをももたらさないように、ソースビデオデータ１３の色空間（たとえば、ＹＣｏＣｇＲ）の可逆バージョンに適合する。可逆変換は、クロマ成分についてデータの追加のビットを必要とすることがある。たとえば、８ビットＲＧＢの場合、ルーマ成分またはチャネルは８ビットを必要とし、クロマ成分（ＣｏおよびＣｇ）の各々は９ビットを必要とする。ＹＣｏＣｇ−Ｒのための順方向色変換が次のように与えられ得る。
【００６２】
【数２】
2019507530.tif 000004
【００６３】
ＹＣｏＣｇ−Ｒのための逆方向色変換が次のように与えられ得る。
【００６４】
【数３】
2019507530.tif 000005
【００６５】
上記の例示的な式では、ＲＧＢ色空間とＹＣｏＣｇ色空間とは各々、３つの色平面（すなわち、Ｒ、Ｇ、およびＢ、またはＹ、Ｃｏ、およびＣｇ）を含む。ビデオエンコーダ２０では、各モードのレートひずみ（「ＲＤ」）性能は、ＹＣｏＣｇまたはＲＧＢ色空間のいずれか中で評価され得る。たとえば、ビデオエンコーダ２０は、パターンモード、ＭＰＰモード、およびＭＰＰフォールバックモードを使用してＲＧＢ色空間中のＲＤ性能を評価し得るが、ルーマクロマ色空間中のＲＤ性能は他のモードを使用し得る。ビデオエンコーダ２０から受信されたソースビデオデータ１３と、色空間コンバータ１０５から受信された色変換されたデータとは両方とも、ブロックまたはスライスに区分され得る。一実施形態では、ソースビデオデータ１３は、ひずみ回路１８８による受信より前の任意のポイントにおいて、たとえば、ビデオソース１８において区分され得る。別の実施形態では、ひずみ回路１８８は、ＲＧＢブロック３１０とＹＣｏＣｇブロック３１５とを生成するために、ソースビデオデータ１３を区分し得る。
【００６６】
[0073]まだ図３を参照すると、ひずみ回路１８８はまた、ブロックエンコーダ３２０を含み得る。ブロックエンコーダ３２０は、命令を記憶し、タスクを実行するようにまとめて構成された、プロセッサ、たとえば、ビデオ処理ユニットまたは汎用処理ユニットとメモリとを含み得る。ブロックエンコーダ３２０は、各ブロックの色空間に基づいて、（本明細書では「モード１」、「モード２」、または「モードｎ」とも呼ばれる）いくつかのコーディングモード３２５を各ブロックに適用し得る。たとえば、各ブロック（３１０、３１５）についてのコーディングモード３２５は、変換モード（たとえば、ＤＣＴ、アダマール）、ブロック予測モード、差分パルスコード変調（ＤＰＣＭ）モード、パターンモード、中点予測（ＭＰＰ）モード、および／または中点プレディケーションフォールバック（ＭＰＰＦ）モードを含むことができる。ブロックエンコーダ３２０は、ＲＧＢブロック３１０とＹＣｏＣｇブロック３１５とを受信し、いくつかのコーディングモード３２５のうちのいずれかを用いて、各ブロックを符号化し得る。一実施形態では、ブロックエンコーダ３２０は、各受信されたブロックに関連付けられた色空間に適したコーディングモードのすべてを用いて、各受信されたブロックを符号化する。ブロックエンコーダ３２０は、いくつかの再構成されたブロック３３０を出力し、再構成されたブロック３３０は、いくつかのモードを使用して符号化された、受信されたブロック（３１０、３１５）のうちの１つを表し得る。たとえば、ＲＧＢブロック３１０のブロック１が、コーディングモード３２５からの中点予測モードと変換モードとを使用して符号化され得る。ブロックエンコーダ３２０は、ブロック１に対応する２つのブロックを出力し得、各々は、中点予測モードまたは変換モードのいずれかによって符号化され、各符号化されたブロックは、ＲＧＢブロック３１０のブロック１の符号化表現である。ブロックエンコーダ３２０は、ひずみ回路１８８が、受信されると、ＲＧＢブロック３１０とＹＣｏＣｇブロック３１５の両方と、各モードについての再構成されたブロック３３０との間の差分を計算することができるように、いくつかの再構成されたブロック３３０を生成する。
【００６７】
[0074]まだ図３を参照すると、ひずみ回路１８８は差分計算３３５ａ〜ｎ構成要素をさらに含み得る。差分計算３３５ａ〜ｎ構成要素は、命令を記憶し、タスクを実行するようにまとめて構成された、プロセッサ、たとえば、ビデオ処理ユニットまたは汎用処理ユニットとメモリとを含み得る。差分計算３３５ａ〜ｎ構成要素は、再構成されたブロック３３０と、それらの対応する元のブロック（３１０、３１５）との間の差分を計算し得る。たとえば、ブロックエンコーダ３２０は、ＲＧＢブロック３１０のブロック１を、コーディングモード３２５からの中点予測モードと変換モードとを使用して符号化し得る。ブロックエンコーダ３２０は、ブロック１に対応する２つのブロックを出力し得、各々は、中点予測モードまたは変換モードのいずれかによって符号化され、各符号化されたブロックは、ＲＧＢブロック３１０のブロック１の符号化表現である。差分計算３３５ａモジュールは、再構成されたブロック３３０の対応する符号化された（すなわち、中点予測モードによって符号化された）ブロックモード１とＲＧＢブロック３１０のブロック１との間の差分を計算し得る。差分計算３３５ｂモジュールは、再構成されたブロック３３０の対応する符号化された（すなわち、変換モードによって符号化された）ブロックモード２とＲＧＢブロック３１０のブロック１との間の差分を計算し得る。差分計算３３５ａ〜ｎは、残差ブロック３４０ａ〜ｎを生成し得、ここで、残差ブロック３４０ａ〜ｎは、ＲＧＢブロック３１０およびＹＣｏＣｇブロック３１５と、それらの対応する再構成されたブロック３３０との間の差分を表す。
【００６８】
[0075]まだ図３を参照すると、ひずみ回路１８８はひずみ計算３４５ａ〜ｎを実行し得る。ひずみ計算３４５ａ〜ｎは、各残差ブロック３４０ａ〜ｎのひずみを計算し得る。ひずみ計算３４５ａ〜ｎは、残差ブロック３４０ａ〜ｎのひずみを計算する前に、受信された残差ブロック３４０ａ〜ｎを均等（uniform）色空間にコンバートする色空間変換関数を含み得る。ひずみ回路１８８は、計算されたひずみに基づいて、特定のブロックについての最も良好な（best）モードを決定し、最も良好なモードを用いて符号化されたブロックをＰＱＲ構成要素１２５に出力し得る。たとえば、ひずみ回路１８８に入力されているソースビデオデータ１３が、ＲＧＢ色空間中にある場合、ブロックエンコーダ３２０は、両方の中点予測モードを使用してＲＧＢ色空間３１０のブロック１を符号化し、それにより、ＲＧＢ色空間のブロック１の１つの符号化されたバージョンを生成し得る。しかしながら、複数のコーディングモード３２５のうちのいくつかの（certain）コーディングモードは、ルーマクロマ色空間中のビデオブロックのみを符号化することができる（can only encode video blocks）。したがって、色空間コンバータ１０５は、ＲＧＢ色空間からＹＣｏＣｇなどのルーマクロマ表現にソースビデオデータ１３の色空間をコンバートし得る。ブロックエンコーダ３２０は、変換モードとパターンモードの両方を用いて、ＹＣｏＣｇ色空間３１５のブロック１を符号化し、それにより、ＹＣｏＣｇ色空間のブロック１の２つの符号化されたバージョンを生成し得る。差分計算３３５ａ〜ｎは、各モードにおけるブロック１について、残差ブロック３４０ａ〜ｎを生成し得る。ひずみ計算３４５ａ〜ｎは、ブロック１上で使用される各モードのひずみが、同じ色空間中で計算され得るように、ＲＧＢ色空間中の残差ブロック３４０ａ〜ｎ、またはＹＣｏＣｇ色空間中の残差ブロック３４０ａ〜ｎのいずれかに対して色空間変換関数を実行し得る。
【００６９】
[0076]一例では、すべてのモードについて、ひずみ回路１８８は、ＲＧＢ色空間またはルーマクロマ色空間のいずれか中で、ひずみ計算３４５ａ〜ｎを実行し得、ここで、ひずみ計算は、ＳＡＤ（絶対差分和）またはＳＳＥ（２乗誤差和）を含む。たとえば、ＹＣｏＣｇ−Ｒ変換が、ひずみを計算するために色空間として使用されるとき、クロマ成分のひずみは、１つの追加のビットを考慮する（account for）ために正規化され得る。たとえば、ＹＣｏＣｇ−Ｒは、ルーマ成分ごとに８ビットと、クロマ成分の各々について９ビットとを使用し得る。ＹＣｏＣｇ色空間中のＳＡＤは、式４において以下のように計算され得る。
【００７０】
【数４】
2019507530.tif 000006
【００７１】
ここで、
ＳＡＤ（Ｙ）：  ブロックのルーマ成分についての絶対差分和、
ＳＡＤ（Ｃｏ）：  ブロックのＣｏクロマ成分についての絶対差分和、
ＳＡＤ（Ｃｇ）：  ブロックのＣｇクロマ成分についての絶対差分和、および
オフセット：  最も近い整数に丸めるために使用され得る任意の（optional）値、たとえば、オフセットは、値０または１であり得る。
【００７２】
ルーマ成分（Ｙ）またはルーマ平面と、クロマ成分（Ｃｏ、Ｃｇ）またはクロマ平面とは、分析されているブロックまたはスライス中のあらゆるピクセルについて、ルーマおよびクロマ値を表すことに留意されたい。たとえば、式４を１６個のピクセルを含んでいるブロックに適用することは、ルーマ値の１６個のサンプル、Ｃｏ値の１６個のサンプル、およびＣｇ値の１６個のサンプルの各々についてのＳＡＤの計算を生じるだろう。得られたＳＡＤYCoCg値は、各成分中の１つの余分のビットを考慮するためにクロマ成分を効果的に正規化するために１だけ右にシフトされる。
【００７３】
[0077]ＳＳＥがひずみを計算するためにメトリックとして使用されるとき、式５が使用され得る。
【００７４】
【数５】
2019507530.tif 000007
【００７５】
ここで、
ＳＳＥ（Ｙ）：  ブロックのルーマ成分についての２乗誤差和、
ＳＳＥ（Ｃｏ）：  ブロックのＣｏクロマ成分についての２乗誤差和、
ＳＳＥ（Ｃｇ）：  ブロックのＣｇクロマ成分についての２乗誤差和、および
オフセット：  最も近い整数に丸めるために使用され得る任意の値、たとえば、オフセットは、値０または１であり得る。
【００７６】
ルーマ成分（Ｙ）またはルーマ平面と、クロマ成分（Ｃｏ、Ｃｇ）またはクロマ平面とは、分析されているブロックまたはスライス中のあらゆるピクセルについて、ルーマおよびクロマ値を表すことに留意されたい。たとえば、式５を１６個のピクセルを含んでいるブロックに適用することは、ルーマ値の１６個のサンプル、Ｃｏ値の１６個のサンプル、およびＣｇ値の１６個のサンプルの各々についてのＳＳＥの計算を生じる。得られたＳＳＥYCoCg値は、各成分中の１つの余分のビットを考慮するためにクロマ成分を効果的に正規化するために１だけ右にシフトされる。
【００７７】
[0078]代替的に、ひずみ回路１８８は、人間のコントラスト視覚感度について効果的に考える（consider）ために、ＹＣｏＣｇ色空間中の各色平面に重み付けを適用し得る。人間の視覚が、クロミナンスよりもルミナンスにより反応することができるので、ひずみ回路１８８は、ルーマ成分により大きい重みを適用し、ルーマ成分に対して、クロマ成分により小さい重みを適用し得る。たとえば、ＳＡＤの計算は以下の通りである。
【００７８】
【数６】
2019507530.tif 000008
【００７９】
ここで、ＷY、ＷCoおよびＷCgは、それぞれのルーマおよびクロマ成分に適用される重みである。同様の視覚的重みは、ＳＳＥがひずみメトリックとして使用されるときに使用され得る。
【００８０】
【数７】
2019507530.tif 000009
【００８１】
[0079]たとえば、ひずみ計算３４５ａ〜ｎにおいて残差ブロック３４０ａ〜ｎに色変換を適用する代わりに、ひずみ回路１８８は、式２および式３の色変換行列から重みを導出し得、各ルーマおよびクロマ成分中のひずみが、ひずみを計算するために重み付けされ得る。この方法は、ひずみ計算３４５ａ〜ｎにおいて実行される色変換のための算出を回避し、それにより、プロセスを簡略化する。ひずみ回路１８８は、変換行列における値の３つの列の各々の列ノルム（たとえば、ｌ2ノルム（ユークリッドノルム））に基づいて、各成分について重みを計算し得る。たとえば、コーディングモードのひずみがＲＧＢ色空間中で計算されるとき、ＹＣｏＣｇ色空間中で動作するコーディングモードのひずみは、式８および式９のいずれかにおいて以下のように式３の変換行列を使用して計算される。
【００８２】
【数８】
2019507530.tif 000010
【００８３】
ここで、重み
【００８４】
【数９】
2019507530.tif 000011
【００８５】
は、逆方向変換行列（ＹＣｏＣｇからＲＧＢ）における列のｌ2ノルムを表す。
【００８６】
【数１０】
2019507530.tif 000012
【００８７】
ここで、重み（３、０．５、０．７５）は、逆方向変換行列（ＹＣｏＣｇからＲＧＢ）におけるそれぞれの列のｌ2ノルムの２乗を表す。さらに、ひずみを計算するために、浮動小数点計算を使用する代わりに、固定小数点計算が使用され得る。たとえば、重み
【００８８】
【数１１】
2019507530.tif 000013
【００８９】
は、
【００９０】
【数１２】
2019507530.tif 000014
【００９１】
として８ビット分数精度で表され得る。
【００９２】
[0080]代替的に、ＹＣｏＣｇ色空間が、ひずみを計算するための色空間として設定されるとき、重みは、Ｒ、ＧおよびＢひずみの重みを計る（weigh）ために、順方向変換行列の列に基づいて導出され得る。たとえば、ＳＡＤは次のように計算され得る。
【００９３】
【数１３】
2019507530.tif 000015
【００９４】
ここで、ＷR、ＷGおよびＷBは、それぞれのルーマおよびクロマ成分に適用される重みである。同様の視覚的重みは、ＳＳＥがひずみメトリックとして使用されるときに使用され得る。
【００９５】
【数１４】
2019507530.tif 000016
【００９６】
[0081]Ｒ成分（Ｒ）と、Ｇ成分（Ｇ）と、Ｂ成分（Ｂ）とは、分析されているブロックまたはスライス中のあらゆるピクセルについて、赤値、緑値、および青値を表すことに留意されたい。たとえば、式１０および式１１を１６個のピクセルを含んでいるブロックに適用することは、赤値の１６個のサンプル、緑値の１６個のサンプル、および青値の１６個のサンプルの各々についてのＳＡＤおよびＳＳＥの計算を生じるだろう。各成分についての重みは、順方向変換行列における値の３つの列の各々の列ノルム（たとえば、ｌ2ノルム（ユークリッドノルム））に基づいて計算され得る。たとえば、コーディングモードのひずみがＹＣｏＣｇ色空間中で計算されるとき、ＲＧＢ色空間中で動作するコーディングモードのひずみは、式１２および式１３のいずれかにおいて以下のように式２の順方向変換行列を使用して計算され得る。
【００９７】
【数１５】
2019507530.tif 000017
【００９８】
ここで、重み
【００９９】
【数１６】
2019507530.tif 000018
【０１００】
は、順方向変換行列（ＲＧＢからＹＣｏＣｇ）における列のｌ2ノルムを表す。
【０１０１】
【数１７】
2019507530.tif 000019
【０１０２】
ここで、重み
【０１０３】
【数１８】
2019507530.tif 000020
【０１０４】
は、逆方向変換行列（ＲＧＢからＹＣｏＣｇ）におけるそれぞれの列のｌ2ノルムの２乗を表す。さらに、ひずみを計算するために、浮動小数点計算を使用する代わりに、固定小数点計算が使用され得る。
【０１０５】
[0082]上記で説明された技法および方法は、ＲＧＢからＹＣｏＣｇへのロスレス色変換に限定されるだけでなく、それらは、任意の線形色変換、たとえば、ＹＣｂＣｒ、ＹＣｏＣｇロッシー変換に適用され得る。このようにして、本技法は、様々なコーディングモード（たとえば、すべてのコーディングモード）についてのひずみを計算するために、同じ色空間を使用することができる。同じ色空間を使用することは、計算をより効率的にし、性能を改善することができる。本開示で説明される例および実施形態は、実施形態に応じて、別々にまたは組合せで実装され得る。実施形態に応じて、例および実施形態のいくつかの特徴が省略または変更され得、他の特徴が例および実施形態に追加され得る。
【０１０６】
[0083]図４は、図３と実質的に同様のひずみ回路１８８の代替実施形態を示す。この実施形態では、色変換およびひずみ計算３４５ａ〜ｎが、差分計算３３５ａ〜ｎと残差ブロック３４０ａ〜ｎの生成との前に、元のブロックと再構成されたブロックの両方に適用され得る。図３中のひずみ回路１８８のすべての他の機能ブロックは、図４のひずみ回路１８８の機能ブロックと同様の様式で機能する。図４は、差分計算３３５ａ〜ｎがひずみ計算３４５ａ〜ｎに基づいて行われることを示しているが、代替実施形態は、図３と同様の様式で行われる差分計算を含み得ることに留意されたい。
ＤＳＣビデオデコーダ
[0084]図５は、本開示で説明される態様による技法を実装し得るビデオデコーダ３０の一例を示すブロック図である。ビデオデコーダ３０は、本開示の技法の一部または全部を実行するように構成され得る。いくつかの例では、本開示で説明される技法は、ビデオデコーダ３０の様々な構成要素間で共有され得る。いくつかの例では、追加または代替として、プロセッサ（図示せず）が、本開示で説明される技法の一部または全部を実行するように構成され得る。
【０１０７】
[0085]説明の目的で、本開示では、ＤＳＣコーディングのコンテキストにおいてビデオデコーダ３０について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【０１０８】
[0086]図５の例では、ビデオデコーダ３０は複数の機能構成要素を含む。ビデオデコーダ３０の機能構成要素は、レートバッファ１５５と、サブストリームデマルチプレクサ１６０と、エントロピーデコーダ１６５と、レートコントローラ１７０と、予測器、量子化器、および再構成器（ＰＱＲ）構成要素１７５と、インデックス色履歴１８０と、ラインバッファ１８５と、色空間コンバータ１９０とを含む。ビデオデコーダ３０の図示された構成要素は、図２中のビデオエンコーダ２０に関して上記で説明された対応する構成要素に類似する。したがって、ビデオデコーダ３０の構成要素の各々は、上記で説明されたビデオエンコーダ２０の対応する構成要素と同様の様式で動作し得る。
【０１０９】
[0087]まだ図５を参照すると、ビデオデコーダ３０のレートバッファ１５５は、図１Ｂの入力インターフェース２８から受信された圧縮されたビデオデータを記憶するために使用される、物理メモリの一部分であり得る。レートバッファ１５５は、圧縮されたビデオデータをビットレートで（at a bit rate）受信し、圧縮されたビデオストリームを固定ビットレートで出力し得る。適切な復号を保証するために、ビデオデコーダ３０のレートバッファ１５５は、圧縮されたビットストリームの復号中に「アンダーフロー」または「オーバーフロー」すべきでない。いくつかの実施形態では、バッファフルネス（ＢＦ）は、上記の式１に示されているように、バッファに現在あるビットの数を表す値ＢｕｆｆｅｒＣｕｒｒｅｎｔＳｉｚｅと、レートバッファ１５０のサイズ、すなわち、任意の時点においてレートバッファ１５０に記憶され得るビットの最大数を表すＢｕｆｆｅｒＭａｘＳｉｚｅとに基づいて定義され得る。レートバッファ１５５は、圧縮されたビデオにおけるレート変動を平滑化することができる。レートバッファ１５５はビデオデコーダ３０においてレート制御機構の一部として機能し得、このことは、レートコントローラ１７０に関して以下でより詳細に説明される。
【０１１０】
[0088]ＢＦは他の方法で計算され得、ＢＦ計算に対する選択された手法は、コンテキストおよび適用例に応じて変化し得る。別の例では、ＢＦは、ＢＦを１００で除算することによって０から１に正規化され得る。正規化されたＢＦ値は、λ値を計算するために使用され得る。バッファフルネスに基づくλ値は、以下の式に基づいて計算され得る。
【０１１１】
【数１９】
2019507530.tif 000021
【０１１２】
ここで、｛Λ，ａ1，ｂ1，ｃ1，ｄ1｝は同調可能パラメータである。ｘ∈［０，１］であり、ｘは
【０１１３】
【数２０】
2019507530.tif 000022
【０１１４】
として計算され、ここで、ＢＦはここでは割合（たとえば、バッファ中で占有されるビットの割合）として表される。
【０１１５】
[0089]まだ図５を参照すると、サブストリームデマルチプレクサ１６０は、レートバッファ１５５から、圧縮されたビデオデータを受信し、エントロピーデコーダ１６５に接続され、選択入力によって決定された、いくつかの出力ラインを使用してデータを出力する、集積回路デバイスを含み得る。サブストリームデマルチプレクサ１６０は、１つまたは複数のチャネルを介した送信のために、受信された圧縮されたビデオデータを、１つまたは複数のｄｅｍｕｘビットストリームに分割するように構成され得る。１つまたは複数のビットストリームは、復号のために１つまたは複数のエントロピーデコーダ１６５に出力され得る。サブストリームデマルチプレクサ１６０は、ビデオエンコーダ２０のサブストリームマルチプレクサ１４５から出力された多重データを、デマルチプレクスするための相補的（complementary）デバイスとして使用され得る。
【０１１６】
[0090]まだ図５を参照すると、エントロピーデコーダ１６５は、電子回路、たとえば、ビデオ処理ユニット、または汎用処理ユニットを含み得る。エントロピーデコーダ１６５は、サブストリームデマルチプレクサ１６０から、圧縮されたビデオデータを受信し得る。エントロピー復号ユニット１６５は、ビットストリームからシンタックス要素を取得するために圧縮されたビデオデータをパースし得る。エントロピー復号ユニット１６５は、エントロピー符号化シンタックス要素をエントロピー復号し得る。受信された圧縮されたビデオデータは、コード化スライスデータを含み得る。ビットストリームを復号することの一部として、エントロピー復号ユニット１６５は、コード化スライスデータからシンタックス要素を抽出し、エントロピー復号し得る。コード化スライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含んでいることがある。エントロピーデコーダ１６５は、ＰＱＲ構成要素１７５に動きベクトルと他のシンタックス要素とをフォワーディングし得る。ビデオデコーダ３０は、ビデオスライスレベルおよび／またはビデオブロックレベルのシンタックス要素を受信し得る。エントロピーデコーダ１６５は、ビデオエンコーダ２０のエントロピーエンコーダ１４０によって符号化されたデータを復号するための相補的デバイスとして使用され得る。ＰＱＲ構成要素１７５は、ビットストリームから抽出されたシンタックス要素に基づいて、復号されたビデオデータを生成し得る。
【０１１７】
[0091]まだ図５を参照すると、レートコントローラ１７０は、電子回路、たとえば、ビデオ処理ユニット、または汎用処理ユニットを含み得る。レートコントローラ１７０は、エントロピーデコーダ１６５からの入力としてエントロピー復号されたビットストリームを受信し得る。レートコントローラ１７０は、コーディングパラメータのセット、たとえば、ＱＰを決定する。ＱＰは、レートバッファ１５５がオーバーフローまたはアンダーフローしないことを保証するターゲットビットレートについてピクチャ品質を最大にするために、レートバッファ１５５のバッファフルネスとビデオデータの画像アクティビティとに基づいて、レートコントローラ１７０によって調整され得る。レートコントローラ１７０はまた、最適レートひずみ性能を達成するために、ビデオデータの各ブロックについて特定のコーディングオプション（たとえば、特定のモード）を選択する。レートコントローラ１７０は、再構成された画像のひずみを、それがビットレート制約を満たすように、すなわち、全体的実コーディングレートがターゲットビットレート内に収まるように最小限に抑える。言い換えれば、レートコントローラは、ブロックレートが利用可能なリソースを越えること（overwhelming）を防ぐことによって、バッファ障害（buffer failure）を防ぐ。
【０１１８】
[0092]まだ図５を参照すると、インデックス色履歴１８０は、電子回路、たとえば、ビデオ処理ユニット、または汎用処理ユニットを含み得、それらのいずれかはメモリを含む。インデックス色履歴１８０は、１つまたは複数のエントロピーデコーダ１６５から、圧縮されたビデオのビットストリームを受信し得、また、ＰＱＲ構成要素１７５からデータを受信し得る。インデックス色履歴１８０は、最近使用されたピクセル値を記憶し得る。これらの最近使用されたピクセル値は、専用シンタックスを介してＰＱＲ構成要素１７５によって直接参照され得る。インデックス色履歴１８０を使用することの利点は、ディスプレイリフレッシュとデータ転送との速度を上げる（speed up）ために、デジタル画像の色を管理することを含む。
【０１１９】
[0093]まだ図５を参照すると、ラインバッファ１８５は、電子回路、たとえば、集積回路上に実装されたストレージデバイスを含み得る。ラインバッファ１８５は、ＰＱＲ構成要素１７５およびインデックス色履歴１８０が、バッファされたビデオデータを使用することができるように、ＰＱＲ構成要素１７５からの出力を保持する。インデックス色履歴１８０は、最近使用されたピクセル値を記憶する。これらの最近使用されたピクセル値は、専用シンタックスを介してビデオデコーダ３０によって直接参照され得る。
【０１２０】
[0094]まだ図５を参照すると、ＰＱＲ構成要素１７５は、電子回路、たとえば、ビデオ処理ユニット、または汎用処理ユニットを含み得る。ＰＱＲ構成要素１７５は、ビデオデコーダ３０の少なくとも３つの符号化演算を実行し得る。たとえば、ＰＱＲ構成要素１７５は、いくつかの異なるモードで予測を実行し得る。たとえば、ビデオスライスがイントラコード化スライスとしてコーディングされる場合、ＰＱＲ構成要素１７５は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。別の例では、ビデオフレームがインターコード化スライスとしてコーディングされる場合、ＰＱＲ構成要素１７５は、エントロピーデコーダ１６５から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成し得る。予測処理は、残差ブロックデータを生成するために、および復号されたブロックを再構成するために、加算器または再構成器に、得られた（resulting）イントラコード化ブロックまたはインターコード化ブロックを与え得る。
【０１２１】
[0095]ＰＱＲ構成要素１７５はまた、量子化を実行する。残差ブロックは、逆量子化を介して決定され得る。たとえば、逆量子化処理は、ビットストリーム中で与えられ、エントロピーデコーダ１６５によって復号された量子化された変換係数を量子化（すなわち、量子化解除（de-quantize））する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ２０によって計算される量子化パラメータの使用を含み得る。ＰＱＲ構成要素１７５は、ピクセル領域において残差ブロックを生成するために、逆変換（たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセス）を変換係数に適用する、逆変換プロセスを含み得る。ＰＱＲ構成要素１７５は、ビデオエンコーダ２０のＰＱＲ構成要素１２５から出力されたデータの逆量子化のための相補的デバイスとして使用され得る。
【０１２２】
[0096]ＰＱＲ構成要素１７５はまた、再構成を実行する。ＰＱＲ構成要素１７５は、参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構成し得る。たとえば、ルーマクロマ表現では、再構成器は、コーディングユニット（ＣＵ）のルーマコーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロックを再構成するために、適用可能なとき、ＣＵの変換ユニット（ＴＵ）に関連付けられたルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロック、ならびにＣＵの予測ユニット（ＰＵ）のＰＵルーマブロック、ＰＵ  Ｃｂブロック、およびＰＵ  Ｃｒブロック、すなわち、イントラ予測データまたはインター予測データのいずれかからの残差値を使用し得る。たとえば、ＰＱＲ構成要素１７５の再構成器は、ＣＵのルーマコーディングブロック、Ｃｂコーディングブロック、およびＣｒコーディングブロックを再構成するために、ルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロックのサンプルを、予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックの対応するサンプルに加算し得る。
【０１２３】
[0097]再び図５を参照すると、色空間コンバータ１９０は、電子回路、たとえば、ビデオ処理ユニット、または汎用処理ユニットを含み得る。色空間コンバータ１９０は、コーディング実装形態において使用される色空間を、ディスプレイ実装形態において使用される色空間にコンバートし得る。たとえば、色空間コンバータ１９０によって受信された色空間は、コーディング実装形態によって使用される、ルミナンスＹ、クロミナンス緑Ｃｇ、およびクロミナンスオレンジＣｏ（ＹＣｇＣｏ）色空間中にあり得、ディスプレイ実装形態は、赤、緑、および青（ＲＧＢ）色空間を含み得る。色空間コンバージョンは、上記の式２および式３に示された、ビデオデータへのシフトおよび追加を含む（１つまたは複数の）方法によって実行され得る。他の色空間中の入力ビデオデータが処理され得、他の色空間へのコンバージョンも実行され得ることに留意されたい。
【０１２４】
[0098]関係する態様では、ビデオデコーダ３０は、レートバッファ１５５および／またはラインバッファ１８５を含み得る。たとえば、レートバッファ１５５は、色空間コンバートされたビデオデータを、ビデオデコーダ３０の他の部分によるそれの使用に先立って保持し得る。別の例では、色空間コンバートされたデータはより多くのビットを必要とし得るので、ビデオデータはルーマクロマ色空間中で記憶され得、色空間コンバージョンが必要に応じて実行され得る。
【０１２５】
[099]図６は、第１のビデオブロック（３１０、３１５）についてのコーディングモードを決定するためのプロセス４００の一例を示すフローチャートである。ブロック４０５において、ビデオエンコーダ２０のひずみ回路１８８は、少なくとも１つの色空間中で第１のビデオブロック（３１０、３１５）を受信する。いくつかの実装形態では、第１のビデオブロック（３１０、３１５）は、いくつかの異なる色空間中で受信され得る。たとえば、第１のビデオブロック（３１０、３１５）は、ＲＧＢ色空間およびルーマクロマ色空間中で受信され得る。
【０１２６】
[0100]まだ図６を参照すると、ブロック４１０において、ひずみ回路１８８のブロックエンコーダ３２０は、複数の再構成されたビデオブロック３３０を生成する。複数の再構成されたビデオブロック３３０は、複数のコーディングモード３２５を使用して符号化された、第１のビデオブロック（３１０、３１５）を示す。言い換えれば、複数の再構成されたビデオブロック３３０の各々は、いくつかのコーディングモードのうちの１つを使用して再構成された、第１のビデオブロック（３１０、３１５）のコピーである。いくつかの実装形態では、ブロックエンコーダ３２０は、第１のビデオブロック（３１０、３１５）の色空間に適合するいくつかのコーディングモードを使用して、第１のビデオブロック（３１０、３１５）を符号化し得る。たとえば、ブロックエンコーダ３２０は、中点予測モードを使用してＲＧＢ色空間３１０の第１のビデオブロックを符号化し得る。ブロックエンコーダ３２０はまた、変換モードを使用してＹＣｏＣｇ色空間３１５の第１のビデオブロックを符号化し得る。この例では、ブロックエンコーダ３２０は、複数の再構成されたビデオブロック３３０を生成し、ここで、複数の再構成されたビデオブロック３３０は、異なる色空間中で表され、第１のビデオブロック（３１０、３１５）を示す。
【０１２７】
[0101]まだ図６を参照すると、ブロック４１５において、ひずみ回路１８８は、複数の色空間のうちの１つの色空間を選択する。一実装形態では、ひずみ回路１８８は、複数の再構成されたビデオブロック３３０のうち、ＲＧＢ色空間中のいくつかの再構成されたブロックと、ルーマクロマ表現における、いくつかの再構成されたブロックとを決定し得る。ひずみ回路１８８は、再構成されたビデオブロック３３０の大部分を表す色空間を選択することによって、ブロック４２０において計算を低減し得る。別の実装形態では、ユーザが色空間を選択し得るか、またはひずみ回路１８８が特定の色空間を選択するために事前プログラムされ得る。
【０１２８】
[0102]まだ図６を参照すると、ブロック４２０において、ひずみ回路１８８は、選択された色空間中にない、複数の再構成されたビデオブロック３３０のうちのあらゆる符号化されたビデオブロックに色変換を適用する。色変換は、式２および式３の色変換行列を含み得、ここで、色変換行列は、色空間中の色平面の数に等しい数の列を含む。一実装形態では、ひずみ回路１８８は、いくつかの残差ブロック３４０ａ〜ｎに色変換を適用し、ここで、各残差ブロックは、第１のビデオブロック（３１０、３１５）と、複数の再構成されたビデオブロック３３０の各々との間の差分を表す。別の実装形態では、ひずみ回路１８８は、残差ブロック３４０ａ〜ｎを計算する前に、第１のビデオブロック（３１０、３１５）と複数の再構成されたビデオブロック３３０の各々の両方に色変換を適用する。
【０１２９】
[0103]まだ図６を参照すると、ブロック４２５において、ひずみ回路１８８は、複数の残差ブロック３４０ａ〜ｎの各々のひずみ値を決定する。別の実装形態では、ひずみ回路１８８は、複数の再構成されたビデオブロック３３０の各々のひずみ値を決定する。いずれかの実装形態では、ひずみ回路１８８は、ＲＧＢ色空間またはルーマクロマ色空間のいずれか中で、ひずみ値を計算し得、ここで、ひずみ値は、（ｉ）再構成されたブロック３３０の各々、または（ｉｉ）残差ブロック３４０ａ〜ｎの各々のいずれかのＳＡＤまたはＳＳＥであり得る。別の実装形態では、選択された色空間がルーマクロマ色空間であるとき、ひずみ回路１８８は、クロマ成分中の余分のビットを考慮するために、計算されたひずみ値を正規化し得る。たとえば、ひずみ回路１８８は、ＳＡＤまたはＳＥＥによって計算されたひずみ値を１だけ右にシフトし得る。また別の実装形態では、ひずみ回路１８８は、ルーマクロマ色空間においてＳＡＤおよびＳＳＥ計算重み付け値（weighting values the SAD and SSE calculations）を適用し得る。たとえば、ひずみ回路１８８は、色変換行列における各列の列ノルム、またはユークリッドノルムに基づいて、ルーマクロマ色空間中の各色平面について重みを計算し得る。
【０１３０】
[0104]まだ図６を参照すると、ブロック４３０において、ひずみ回路１８８は、ビットレートひずみ値の両方を考慮するコスト関数に基づいて、複数のコーディングモード３２５の最適コーディングモードを決定する。一実装形態では、ひずみ回路１８８は、コスト値関数を使用してコーディングモードを決定する。たとえば、ひずみ回路１８８は、コスト関数、すなわち、Ｄ＋λ×Ｒで表される、ビットレートとひずみとの間のトレードオフに基づいて最適コーディングモードを決定し得る。ここで、パラメータＲは、第１のビデオブロック（３１０、３１５）についてエンコーダ２０とデコーダ３０との間で送信される総ビット数であり得る、第１のビデオブロック（３１０、３１５）のビットレートを指す。パラメータＤは、第１のビデオブロック（３１０、３１５）のひずみを指す。パラメータλは、パラメータＲとパラメータＤとの間のトレードオフであり得る、ラグランジュパラメータである。ラグランジュパラメータλは様々な方法で計算され得、λ計算に対する選択された手法は、コンテキストおよび適用例に応じて変化し得ることに留意されたい。たとえば、ビデオエンコーダは、レートバッファ（１５０、１５５）状態（state）、第１のビデオブロック（３１０、３１５）の状況（conditions）など、いくつかのファクタに基づいて、ラグランジュパラメータλを算出し得る。
【０１３１】
[0105]まだ図６を参照すると、ブロック４３５において、ビデオエンコーダ２０は、第１の符号化されたビデオブロックを宛先デバイスに通信し、第１の符号化されたビデオブロックは、決定された最適コーディングモードを使用して符号化された第１のビデオブロック（３１０、３１５）を示す。
他の考慮事項
[0106]本開示の態様は、図２中のビデオエンコーダ２０など、エンコーダの観点から説明されたことに留意されたい。しかしながら、上記で説明された動作の逆の動作が、たとえば、図５中のビデオデコーダ３０によって、生成されたビットストリームを復号するために適用され得ることを、当業者は諒解されよう。
【０１３２】
[0107]本明細書で開示される情報および信号は、多種多様な技術および技法のいずれかを使用して表され得る。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
【０１３３】
[0108]本明細書で開示される実施形態に関して説明された様々な例示的な論理ブロック、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、およびステップが、概してそれらの機能に関して上記で説明された。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈されるべきではない。
【０１３４】
[0109]本明細書で説明された技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、または複数の用途を有する集積回路デバイスなど、様々なデバイスのいずれかで実装され得る。デバイスまたは構成要素として説明された特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装された場合、本技法は、実行されたとき、上記で説明された方法のうちの１つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュメモリ、磁気または光学データ記憶媒体など、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、伝搬信号または電波など、命令またはデータ構造の形態でプログラムコードを搬送または伝達し、コンピュータによってアクセスされ、読み取られ、および／または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【０１３５】
[0110]プログラムコードは、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の等価の集積回路またはディスクリート論理回路など、１つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明された技法のいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、ＤＳＰとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと併用される１つまたは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明された技法の実装に好適な他の構造または装置のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のソフトウェアまたはハードウェア内に提供され得、あるいは複合ビデオエンコーダ／デコーダ（コーデック）に組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素で十分に実装され得る。
【０１３６】
[0111]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素またはユニットが説明されたが、それらの構成要素またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【０１３７】
[0112]上記のことは、様々な異なる実施形態に関して説明されたが、一実施形態からの特徴または要素は、本開示の教示から逸脱することなく他の実施形態と組み合わせられ得る。ただし、それぞれの実施形態間の特徴の組合せは、必ずしもそれに限定されるとは限らない。本開示の様々な実施形態が説明された。これらおよび他の実施形態は以下の特許請求の範囲内に入る。
【図１Ａ】
2019507530.tif 000023
【図１Ｂ】
2019507530.tif 000024
【図２】
2019507530.tif 000025
【図３】
2019507530.tif 000026
【図４】
2019507530.tif 000027
【図５】
2019507530.tif 000028
【図６】
2019507530.tif 000029
【手続補正書】
【提出日】平成30年9月21日(2018.9.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータをコーディングするための装置であって、
複数のコーディングモードに関する情報と前記ビデオデータとを記憶するためのメモリと、前記ビデオデータが複数のビデオブロックを備える、
前記メモリに動作可能に結合されたハードウェアプロセッサとを備え、前記ハードウェアプロセッサは、
前記ビデオブロックの複数の色空間に基づいて、前記複数のコーディングモードを使用して符号化された前記複数のビデオブロックのうちの１つのビデオブロックを表す複数の再構成されたビデオブロックを生成することと、
前記複数の再構成されたビデオブロックのうちの再構成されたビデオブロックについて前記複数の色空間のうちの１つを選択することと、
前記選択された色空間中にない、前記複数の再構成されたビデオブロックのうちのあらゆる再構成されたビデオブロックに色変換を適用し、前記複数の再構成されたビデオブロックのうちの前記再構成されたビデオブロックのすべてが、前記選択された色空間中にあることを検証することと、
前記選択された色空間に基づいて、前記複数の再構成されたビデオブロックの各々のひずみ値を決定することと
を行うように構成された、装置。
【請求項２】
前記ハードウェアプロセッサは、
前記複数のビデオブロックのうちの各ビデオブロックの初期色空間を決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
前記複数のコーディングモードのうちのどのコーディングモードが前記初期色空間に適合するかを決定することと、
符号化されたブロックを与えるために、前記適合するコーディングモードを用いて、前記複数のビデオブロックのうちの前記ビデオブロックを符号化することと
を行うようにさらに構成された、請求項１に記載の装置。
【請求項３】
前記ハードウェアプロセッサは、
前記複数のコーディングモードのうちのどのコーディングモードが初期色空間に適合しないかを決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
適合する色ブロックを与えるために、前記初期色空間に前記色変換を適用することと、
符号化されたブロックを与えるために、前記初期色空間に適合しない前記コーディングモードを用いて、前記適合する色ブロックを符号化することと
を行うようにさらに構成された、請求項１に記載の装置。
【請求項４】
前記ハードウェアプロセッサが、前記ビデオブロックと前記再構成されたビデオブロックとから残差ブロックを計算するようにさらに構成され、前記残差ブロックが、前記ビデオブロックと前記再構成されたビデオブロックとの間の差分を示す、請求項１に記載の装置。
【請求項５】
前記ひずみ値を決定することが、前記残差ブロックの前記ひずみ値を決定することを備える、請求項４に記載の装置。
【請求項６】
前記選択された色空間がルーマクロマ色空間を備え、ここにおいて、前記ひずみ値を決定することが、前記ルーマクロマ色空間の各クロマ成分を正規化することを備える、請求項１に記載の装置。
【請求項７】
前記ビデオブロックがある数の色平面を備え、ここにおいて、前記再構成されたビデオブロックの前記ひずみ値を決定することが、
前記数の色平面のうちの各色平面の絶対差分和と、
前記数の色平面のうちの各色平面の２乗誤差和と
のうちの少なくとも１つを備える、請求項１に記載の装置。
【請求項８】
前記色変換が変換行列に基づき、前記変換行列が、前記選択された色空間の色平面の数を示す数の列によって定義され、ここにおいて、前記ハードウェアプロセッサが、前記数の列のうちの列のユークリッドノルムに基づいて重み値を決定するようにさらに構成された、請求項１に記載の装置。
【請求項９】
前記変換された、再構成されたビデオブロックの前記ひずみ値は、
前記数の色平面のうちの各色平面の絶対差分和と、ここにおいて、各色平面が、ある数の重み値のうちの対応する重み値を乗算される、
前記数の色平面のうちの各色平面の２乗誤差和と、ここにおいて、各色平面が、前記数の重みのうちの前記対応する重みを乗算される、
のうちの少なくとも１つに基づく、請求項８に記載の装置。
【請求項１０】
前記選択された色空間が、ルーマクロマ色空間とＲＧＢ色空間とのうちの少なくとも１つ中にある、請求項１に記載の装置。
【請求項１１】
ひずみ値を決定することが、（ｉ）前記複数の再構成されたビデオブロックの各々の前記ひずみ値、（ｉｉ）ラムダ値、および（ｉｉｉ）前記１つのビデオブロックを通信するためのビットストリームレートに基づいて、前記複数のコーディングモードのうちのコーディングモードを決定することをさらに備える、請求項１に記載の装置。
【請求項１２】
ビデオデータをコーディングする方法であって、
前記ビデオブロックの複数の色空間に基づいて、複数のコーディングモードを使用して符号化された複数のビデオブロックのうちの１つのビデオブロックを表す複数の再構成されたビデオブロックを生成することと、
前記複数の再構成されたビデオブロックのうちの再構成されたビデオブロックについて前記複数の色空間のうちの１つを選択することと、
前記選択された色空間中にない、前記複数の再構成されたビデオブロックのうちのあらゆる再構成されたビデオブロックに色変換を適用し、前記複数の再構成されたビデオブロックのうちの前記再構成されたビデオブロックのすべてが、前記選択された色空間中にあることを検証することと、
前記選択された色空間に基づいて、前記複数の再構成されたビデオブロックの各々のひずみ値を決定することと
を備える、方法。
【請求項１３】
前記複数のビデオブロックのうちの各ビデオブロックの初期色空間を決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
複数のコーディングモードのうちのどのコーディングモードが前記初期色空間に適合するかを決定することと、
符号化されたブロックを与えるために、適合するコーディングモードを用いて、前記複数のビデオブロックのうちの前記ビデオブロックを符号化することと
をさらに備える、請求項１２に記載の方法。
【請求項１４】
複数のコーディングモードのうちのどのコーディングモードが初期色空間に適合しないかを決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
適合する色ブロックを与えるために、前記初期色空間に前記色変換を適用することと、
符号化されたブロックを与えるために、前記初期色空間に適合しないコーディングモードを用いて、前記適合する色ブロックを符号化することと
をさらに備える、請求項１２に記載の方法。
【請求項１５】
前記ビデオブロックと前記再構成されたビデオブロックとから残差ブロックを計算することをさらに備え、前記残差ブロックが、前記ビデオブロックと前記再構成されたビデオブロックとの間の差分を示す、請求項１２に記載の方法。
【請求項１６】
ひずみ値を決定することが、（ｉ）前記複数の再構成されたビデオブロックの各々の前記ひずみ値、（ｉｉ）ラムダ値、および（ｉｉｉ）前記１つのビデオブロックを通信するためのビットストリームレートに基づいて、前記複数のコーディングモードのうちのコーディングモードを決定することをさらに備える、請求項１２に記載の方法。
【請求項１７】
デバイスによって実行されたとき、前記デバイスに、
前記ビデオブロックの複数の色空間に基づいて、複数のコーディングモードを使用して符号化された複数のビデオブロックのうちの１つのビデオブロックを表す複数の再構成されたビデオブロックを生成することと、
前記複数の再構成されたビデオブロックのうちの再構成されたビデオブロックについて前記複数の色空間のうちの１つを選択することと、
前記選択された色空間中にない、前記複数の再構成されたビデオブロックのうちのあらゆる再構成されたビデオブロックに色変換を適用し、前記複数の再構成されたビデオブロックのうちの前記再構成されたビデオブロックのすべてが、前記選択された色空間中にあることを検証することと、
前記選択された色空間に基づいて、前記複数の再構成されたビデオブロックの各々のひずみ値を決定することと
を行わせる、命令を備える非一時的コンピュータ可読媒体。
【請求項１８】
前記複数のビデオブロックのうちの各ビデオブロックの初期色空間を決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
複数のコーディングモードのうちのどのコーディングモードが前記初期色空間に適合するかを決定することと、
符号化されたブロックを与えるために、適合するコーディングモードを用いて、前記複数のビデオブロックのうちの前記ビデオブロックを符号化することと
をさらに備える、請求項１７に記載の非一時的コンピュータ可読媒体。
【請求項１９】
複数のコーディングモードのうちのどのコーディングモードが初期色空間に適合しないかを決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
適合する色ブロックを与えるために、前記初期色空間に前記色変換を適用することと、
符号化されたブロックを与えるために、前記初期色空間に適合しないコーディングモードを用いて、前記適合する色ブロックを符号化することと
をさらに備える、請求項１７に記載の非一時的コンピュータ可読媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１３７
【補正方法】変更
【補正の内容】
【０１３７】
[0112]上記のことは、様々な異なる実施形態に関して説明されたが、一実施形態からの特徴または要素は、本開示の教示から逸脱することなく他の実施形態と組み合わせられ得る。ただし、それぞれの実施形態間の特徴の組合せは、必ずしもそれに限定されるとは限らない。本開示の様々な実施形態が説明された。これらおよび他の実施形態は以下の特許請求の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータをコーディングするための装置であって、
複数のコーディングモードに関する情報と前記ビデオデータとを記憶するためのメモリと、前記ビデオデータが複数のビデオブロックを備える、
前記メモリに動作可能に結合されたハードウェアプロセッサとを備え、前記ハードウェアプロセッサは、
前記複数のビデオブロックのうちのビデオブロックについて複数の色空間のうちの１つを選択することと、
前記選択された色空間中にない、前記複数のビデオブロックのうちのあらゆるビデオブロックに色変換を適用し、前記複数のビデオブロックのうちのビデオブロックのすべてが、前記選択された色空間中にあることを検証することと、
前記選択された色空間に基づいて、前記複数のビデオブロックの各々のひずみ値を決定することと
を行うように構成された、
装置。
［Ｃ２］
前記ハードウェアプロセッサは、
前記複数のビデオブロックのうちの各ビデオブロックの初期色空間を決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
前記複数のコーディングモードのうちのどのコーディングモードが前記初期色空間に適合するかを決定することと、
符号化されたブロックを与えるために、前記適合するコーディングモードを用いて、前記複数のビデオブロックのうちの前記ビデオブロックを符号化することと
を行うようにさらに構成された、Ｃ１に記載の装置。
［Ｃ３］
前記ハードウェアプロセッサは、
前記複数のコーディングモードのうちのどのコーディングモードが初期色空間に適合しないかを決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
適合する色ブロックを与えるために、前記初期色空間に前記色変換を適用することと、
符号化されたブロックを与えるために、前記初期色空間に適合しない前記コーディングモードを用いて、前記適合する色ブロックを符号化することと
を行うようにさらに構成された、Ｃ１に記載の装置。
［Ｃ４］
前記ハードウェアプロセッサが、前記ビデオブロックと前記符号化されたブロックとから残差ブロックを計算するようにさらに構成され、前記残差ブロックが、前記ビデオブロックと前記符号化されたブロックとの間の差分を示す、Ｃ２に記載の装置。
［Ｃ５］
前記ひずみ値を決定することが、前記残差ブロックの前記ひずみ値を決定することを備える、Ｃ４に記載の装置。
［Ｃ６］
前記選択された色空間がルーマクロマ色空間を備え、ここにおいて、前記ひずみ値を決定することが、前記ルーマクロマ色空間の各クロマ成分を正規化することを備える、Ｃ１に記載の装置。
［Ｃ７］
前記ビデオブロックがある数の色平面を備え、ここにおいて、前記ビデオブロックの前記ひずみ値を決定することが、
前記数の色平面のうちの各色平面の絶対差分和と、
前記数の色平面のうちの各色平面の２乗誤差和と
のうちの少なくとも１つを備える、Ｃ１に記載の装置。
［Ｃ８］
前記色変換が変換行列に基づき、前記変換行列が、前記選択された色空間の色平面の数を示す数の列によって定義され、ここにおいて、前記ハードウェアプロセッサが、前記数の列のうちの列のユークリッドノルムに基づいて重み値を決定するようにさらに構成された、Ｃ１に記載の装置。
［Ｃ９］
前記変換されたビデオブロックの前記ひずみ値は、
前記数の色平面のうちの各色平面の絶対差分和と、ここにおいて、各色平面が、ある数の重み値のうちの対応する重み値を乗算される、
前記数の色平面のうちの各色平面の２乗誤差和と、ここにおいて、各色平面が、前記数の重みのうちの前記対応する重みを乗算される、
のうちの少なくとも１つに基づく、Ｃ８に記載の装置。
［Ｃ１０］
前記選択された色空間が、ルーマクロマ色空間とＲＧＢ色空間とのうちの少なくとも１つ中にある、Ｃ１に記載の装置。
［Ｃ１１］
ひずみ値を決定することが、（ｉ）前記複数のビデオブロックの各々の前記ひずみ値、（ｉｉ）ラムダ値、および（ｉｉｉ）前記ビデオブロックを通信するためのビットストリームレートに基づいて、前記複数のコーディングモードのうちのコーディングモードを決定することをさらに備える、Ｃ１に記載の装置。
［Ｃ１２］
前記複数のビデオブロックのうちの各ビデオブロックが、前記複数のコーディングモードのうちのあらゆるコーディングモードを使用して符号化された単一のビデオブロックを示す、Ｃ１に記載の装置。
［Ｃ１３］
ビデオデータをコーディングする方法であって、
複数のビデオブロックのうちのビデオブロックについて複数の色空間のうちの１つを選択することと、
前記選択された色空間中にない、前記複数のビデオブロックのうちのあらゆるビデオブロックに色変換を適用し、前記複数のビデオブロックのうちのビデオブロックのすべてが、前記選択された色空間中にあることを検証することと、
前記選択された色空間に基づいて、前記複数のビデオブロックの各々のひずみ値を決定することと
を備える、方法。
［Ｃ１４］
前記複数のビデオブロックのうちの各ビデオブロックの初期色空間を決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
複数のコーディングモードのうちのどのコーディングモードが前記初期色空間に適合するかを決定することと、
符号化されたブロックを与えるために、適合するコーディングモードを用いて、前記複数のビデオブロックのうちの前記ビデオブロックを符号化することと
をさらに備える、Ｃ１３に記載の方法。
［Ｃ１５］
複数のコーディングモードのうちのどのコーディングモードが初期色空間に適合しないかを決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
適合する色ブロックを与えるために、前記初期色空間に前記色変換を適用することと、
符号化されたブロックを与えるために、前記初期色空間に適合しないコーディングモードを用いて、前記適合する色ブロックを符号化することと
をさらに備える、Ｃ１３に記載の方法。
［Ｃ１６］
前記ビデオブロックと前記符号化されたブロックとから残差ブロックを計算することをさらに備え、前記残差ブロックが、前記ビデオブロックと前記符号化されたブロックとの間の差分を示す、Ｃ１４に記載の方法。
［Ｃ１７］
ひずみ値を決定することが、（ｉ）前記複数のビデオブロックの各々の前記ひずみ値、（ｉｉ）ラムダ値、および（ｉｉｉ）前記ビデオブロックを通信するためのビットストリームレートに基づいて、前記複数のコーディングモードのうちのコーディングモードを決定することをさらに備える、Ｃ１３に記載の方法。
［Ｃ１８］
デバイスによって実行されたとき、前記デバイスに、
複数のビデオブロックのうちのビデオブロックについて複数の色空間のうちの１つを選択することと、
前記選択された色空間中にない、前記複数のビデオブロックのうちのあらゆるビデオブロックに色変換を適用し、前記複数のビデオブロックのうちのビデオブロックのすべてが、前記選択された色空間中にあることを検証することと、
前記選択された色空間に基づいて、前記複数のビデオブロックの各々のひずみ値を決定することと
を行わせる、命令を備える非一時的コンピュータ可読媒体。
［Ｃ１９］
前記複数のビデオブロックのうちの各ビデオブロックの初期色空間を決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
複数のコーディングモードのうちのどのコーディングモードが前記初期色空間に適合するかを決定することと、
符号化されたブロックを与えるために、適合するコーディングモードを用いて、前記複数のビデオブロックのうちの前記ビデオブロックを符号化することと
をさらに備える、Ｃ１８に記載の非一時的コンピュータ可読媒体。
［Ｃ２０］
複数のコーディングモードのうちのどのコーディングモードが初期色空間に適合しないかを決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
適合する色ブロックを与えるために、前記初期色空間に前記色変換を適用することと、
符号化されたブロックを与えるために、前記初期色空間に適合しないコーディングモードを用いて、前記適合する色ブロックを符号化することと
をさらに備える、Ｃ１８に記載の非一時的コンピュータ可読媒体。
【国際調査報告】
2019507530.tif 000030
2019507530.tif 000031
2019507530.tif 000032