(57)【特許請求の範囲】
【請求項１】
クロマダウンサンプリングされた4:2:0のYCbCrのビデオデータをビットストリームに符号化するために、4:4:4のRGBのビデオデータからLuma値を決定する装置によって実行される方法であって、
前記RGBのビデオデータから、線形の輝度と非線形の4:2:0のChroma値により定義される色空間における位置を決定することと、
当該決定された位置を含む領域であって、前記色空間に配置された複数の領域のうちの一つの領域であり、複数の関連付けられた係数を有する領域を決定することと、
前記決定された領域に関連付けられた一つ以上の前記係数を選択することであって、当該選択された係数は、線形の輝度と非線形の4:2:0のChroma値を、非線形の4:2:0のChroma値のクロマダウンサンプリングにより導入される輝度の偏差を補償するLuma値にマッピングするために使用され、
前記選択された係数の関数と前記決定された位置に応じて、前記ビットストリームに符号化するための前記Luma値を決定する、ことを含む、方法。
【請求項２】
前記YCbCrのビデオデータをR'G'B'に変換することにより線形の輝度の値を決定することを更に含む、請求項１に記載の方法。
【請求項３】
前記4:4:4のRGBのビデオデータのChroma値をサブサンプリングすることを更に含む、請求項１に記載の方法。
【請求項４】
前記色空間の線形の輝度の値とサブサンプリングされたChroma値に基づいて、前記位置は決定される、請求項１に記載の方法。
【請求項５】
前記色空間は、前記領域の階層に分割される、請求項１に記載の方法。
【請求項６】
前記階層は、八分の階層である、請求項５に記載の方法。
【請求項７】
前記決定された領域に関連付けられた前記係数の前記関数を選択することを更に含む、請求項１に記載の方法。
【請求項８】
前記関数は、表から選択される、請求項７に記載の方法。
【請求項９】
前記関数は、前記領域内の前記色空間を、前記決定されたLuma値にマッピングする、請求項１に記載の方法。
【請求項１０】
前記関連付けられた係数を決定するために最小平均二乗アルゴリズムが使用される、請求項１に記載の方法。
【請求項１１】
クロマダウンサンプルされた4:2:0のYCbCrのビデオデータをビットストリームに符号化するために、4:4:4のRGBのビデオデータからLuma値を決定するためのシステムであって、
データとコンピュータプログラムを格納するメモリと、
前記コンピュータプログラムを実行するために、前記メモリに接続されたプロセッサを有し、当該コンピュータプログラムは、
前記RGBのビデオデータから、線形の輝度と非線形の4:2:0のChroma値により定義される色空間における位置を決定することと、
前記決定された位置を含む領域であって、前記色空間に配置された複数の領域のうちの一つの領域であり、複数の関連付けられた係数を有する領域を決定することと、
前記決定された領域に関連付けられた一つ以上の前記係数を選択することであって、当該選択された係数は、線形の輝度と非線形の4:2:0のChroma値を、非線形の4:2:0のChroma値のクロマダウンサンプリングにより導入される輝度の偏差を補償するLuma値にマッピングするために使用され、
前記選択された係数の関数と前記決定された位置に応じて、前記ビットストリームに符号化するための前記Luma値を決定する、ことを含む、システム。
【請求項１２】
クロマダウンサンプルされた4:2:0のYCbCrのビデオデータをビットストリームに符号化するために、4:4:4のRGBのビデオデータからLuma値を決定するための装置であって、
前記RGBのビデオデータから、線形の輝度と非線形の4:2:0のChroma値により定義される色空間における位置を決定する手段と、
前記決定された位置を含む領域であって、前記色空間に配置された複数の領域のうちの一つの領域であり、複数の関連付けられた係数を有する領域を決定する手段と、
前記決定された領域に関連付けられた一つ以上の前記係数を選択する手段であって、当該選択された係数は、線形の輝度と非線形の4:2:0のChroma値を、非線形の4:2:0のChroma値のクロマダウンサンプリングにより導入される輝度の偏差を補償するLuma値にマッピングするために使用される、手段と、
前記選択された係数の関数と前記決定された位置に応じて、前記ビットストリームに符号化するための前記Luma値を決定する手段と、を有する装置。
【請求項１３】
クロマダウンサンプルされた4:2:0のYCbCrのビデオデータをビットストリームに符号化するために、4:4:4のRGBのビデオデータからLuma値を決定するために、コンピュータ読み取り可能な媒体に格納されたコンピュータプログラムを有するコンピュータ読み取り可能な媒体であって、前記プログラムは、
前記RGBのビデオデータから、線形の輝度と非線形の4:2:0のChroma値により定義される色空間における位置を決定するためのコードと、
前記決定された位置を含む領域であって、前記色空間に配置された複数の領域のうちの一つの領域であり、複数の関連付けられた係数を有する領域を決定するためのコードと、
前記決定された領域に関連付けられた一つ以上の前記係数を選択するためのコードであって、当該選択された係数は、線形の輝度と非線形の4:2:0のChroma値を、非線形の4:2:0のChroma値のクロマダウンサンプリングにより導入される輝度の偏差を補償するLuma値にマッピングするために使用される、コードと、
前記選択された係数の関数と前記決定された位置に応じて、前記ビットストリームに符号化するためのLuma値を決定する、ためのコードを含む、コンピュータ読み取り可能な媒体。
【請求項１４】
コンピュータに、請求項１から１０のいずれか１項に記載の方法を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、デジタルビデオ信号処理に関し、具体的には、4:4:4RGBビデオデータからluma値を決定するための方法、装置、およびシステムに関する。本発明はまた、4:4:4RGBビデオデータからluma値を決定するためのコンピュータプログラムが記憶されたコンピュータ読み取り可能な媒体を含むコンピュータプログラム製品に関連する。
【背景技術】
【０００２】
高ダイナミックレンジ（High Dynamic Range（HDR））と広色域（Wide Colour Gamut（WCG））のビデオデータを伝達するための標準化の開発、およびHDRビデオデータを表示することが可能なディスプレイの開発が進行中である。MPEG（Moving Picture Experts Group）としても知られる国際標準化組織／国際電気標準会議の合同技術委員会1／分科会29／ワーキンググループ11（ＩＳＯ／ＩＥＣ  ＪＴＣ１／SC29／WF11）、国際電気通信連合-無線通信セクタ（ITU-R）、国際電気通信連合-電気通信セクタ（ITU-T）、および映画テレビ専門家協会（SMPTE）等の標準化団体は、HDRビデオデータの表現と符号化に対する標準の開発を探求している。
【０００３】
HDRビデオデータは、伝統的な標準ダイナミックレンジ（SDR）で使用されるものをはるかに超えて、広い範囲の輝度強度をカバーする。例えば、SMPTE ST2084として標準化されている知覚量子化器（Perceptual Quantizer （PQ））電子工学伝達関数（EQTE）が、最大10000カンデラ／（メートル）2（nits）のピーク輝度をサポートするために定義されているのに対し、従来のテレビジョンサービスは、（より現代の設定は、これを超えたピーク輝度に増加させているが）100nitのピーク輝度で定義されている。サポートされる最小の輝度は、ゼロnitsであるが、ダイナミックレンジを計算する目的に対しては、最小の非ゼロの輝度が使用される（すなわち、10ビットに量子化された、PQに対する4*10-5nits）。光源の物理的な強度は、カンデラ／（メートル）2で測定され、「輝度」または「線形光（linear light）」とも参照される。輝度がPQ（または他の伝達関数）を用いて符号化される場合、符号化された空間は「Luma」と参照される。Lumaは、より知覚的には一様（すなわち、Luma値における所与の変化は、開始点にかからわず、明るさにおいて同じく知覚される変化となる）であることが意図される。SDRテレビジョンの「ガンマ」等の従来の電力関数（power function）は、知覚的にはいくらか一様である。PQ等の伝達関数は、より知覚的に一様となるために、人間の視覚のモデルに従って設計される。あらゆる場合において、Lumaと輝度の関係は、非常に非線形である。
【０００４】
ビデオデータは、一般的に3つの色要素を含み、ここで、各フレームは、サンプルの3つのプレーン（plane）を含み、各プレーンは一つの色要素（colour component）に対応する。プレーンのサンプリングレート間の関係は、「クロマ（色差、Chroma）フォーマット」として知られる。各プレーンが同じレートでサンプリングされた場合、ビデオデータは「4:4:4」のクロマフォーマットにおけるものとなると言われる。4:4:4のクロマフォーマットでは、配置されたサンプルの各3つ組（triplet）は、当該配置された3つ組の値から導かれる色と輝度を有する「画素」を形成する。ガンマ修正または伝達関数が既に適用されたサンプルを参照する場合、色要素の値は「本当の」色および輝度ではないという事実を反映するため、色要素は「クロマ」として参照され、輝度要素は「Luma」として参照される。ダッシュのシンボル（'）は、Lume値を示す変数名の後に用いられる（例えばY'）。3つのプレーンの第2と第3のプレーンが、第1のプレーンと比較して水平的および垂直的に半分のレートでサンプリングされる場合、ビデオデータは「4:2:0」クロマフォーマットにおけるものとなると言われる。4:2:0の使用により、4:4:4と比較して処理するサンプルが少なくなるため、結果はビデオ符号化において複雑性が低いものとなる。そして、各ピクセルは1つのLumaサンプルを有し、4つのピクセルのグループはクロマサンプルのペアを共有する。さらに、そのような場合では、典型的には、第1のプレーンに格納され、サンプリングレートが最も高いLuma（Y）チャネルと、第2と第3のプレーンにそれぞれ格納される第2と第3のクロマチャネル（CbとCr）を伴い、「YCbCr」色空間が使用される。ここでクロマ情報に対してより低いサンプリングレートは、復号化されたビデオデータの視聴者に対して、主観的に影響はほとんどない、より低いデータレートをもたらす。
【０００５】
ビデオデータを表示する際、LCDパネル等の現代のディスプレイ技術に、ビデオデータをマップするために、4:4:4に戻す変換が必要となる。例えば、クロマサンプルのペア（すなわち、CbサンプルおよびCrサンプル）は、4つのLuma（Y）サンプルと結合される。CbサンプルとCrサンプルに存在する残りの輝度情報は、各Yサンプルに存在する輝度情報に干渉するとして知られ、4:2:0から4:4:4変換処理の4:4:4出力において、シフトがもたらされる。Lumaサンプルおよびクロマサンプルの符号化ための電力関数である伝達関数（すなわち「ガンマ関数」）を用いる、先の「標準ダイナミックレンジ（SDR）」システムでは、伝達関数の非線形性は、知覚量子化器（Perceptual Quantizer（PQ））電子工学伝達関数（EQTE）の場合よりも小さい。
【発明の概要】
【０００６】
本発明の目的は、現存の構成の一つ以上の欠点を実質的に解決、または少なくとも改良することである。
【０００７】
本開示の一つの観点によれば、クロマダウンサンプリングされた4:2:0のYCbCrのビデオデータをビットストリームに符号化するために、4:4:4のRGBのビデオデータからLuma値を決定する装置によって実行される方法が提供される。当該方法は、
RGBのビデオデータから、線形の輝度と非線形の4:2:0のChroma値により定義される色空間における位置を決定することと、
当該決定された位置を含む領域であって、当該色空間に配置された複数の領域のうちの一つの領域であり、関連付けられた複数の係数を有する領域を決定することと、
前記決定された領域に関連付けられた一つ以上の前記係数を選択することであって、当該選択された係数は、線形の輝度と非線形の4:2:0のChroma値を、非線形の4:2:0のChroma値のクロマダウンサンプリングにより導入される輝度の偏差を補償するLuma値にマッピングするために使用され、
当該選択された係数の関数と当該決定された位置に応じて、ビットストリームに符号化するためのLuma値を決定すること、を含む。
【０００８】
本開示の別の観点によれば、クロマダウンサンプリングされた4:2:0のYCbCrのビデオデータをビットストリームに符号化するために、4:4:4のRGBのビデオデータからLuma値を決定するためのシステムが提供される。当該システムは、
データとコンピュータプログラムを格納するメモリと、
当該コンピュータプログラムを実行するために、当該メモリに接続されたプロセッサを有し、当該コンピュータプログラムは、
RGBのビデオデータから、線形の輝度と非線形の4:2:0のChroma値により定義される色空間における位置を決定することと、
当該決定された位置を含む領域であって、当該色空間に配置された複数の領域のうちの一つの領域であり、複数の関連付けられた係数を有する領域を決定することと、
前記決定された領域に関連付けられた一つ以上の前記係数を選択することであって、当該選択された係数は、線形の輝度と非線形の4:2:0のChroma値を、非線形の4:2:0のChroma値のクロマダウンサンプリングにより導入される輝度の偏差を補償するLuma値にマッピングするために使用され、
当該選択された係数の関数と当該決定された位置に応じて、ビットストリームに符号化するためのLuma値を決定する、ための命令を含む。
【０００９】
本開示のさらに別の観点によれば、クロマダウンサンプルされた4:2:0のYCbCrのビデオデータをビットストリームに符号化するために、4:4:4のRGBのビデオデータからLuma値を決定するための装置が提供される。当該装置は、
RGBのビデオデータから、線形の輝度と非線形の4:2:0クロマ値により定義される色空間における位置を決定する手段と、
当該決定された位置を含む領域であって、当該色空間に配置された複数の領域のうちの一つの領域であり、複数の関連付けられた係数を有する領域を決定する手段と、
前記決定された領域に関連付けられた一つ以上の前記係数を選択する手段であって、当該選択された係数は、線形の輝度と非線形の4:2:0のChroma値を、非線形の4:2:0のChroma値のクロマダウンサンプリングにより導入される輝度の偏差を補償するLuma値にマッピングするために使用される、手段と、
当該選択された係数の関数と当該決定された位置に応じて、ビットストリームに符号化するためのLuma値を決定する、ための命令を含む。
【００１０】
本開示のさらに別の観点によれば、クロマダウンサンプリングされた4:2:0のYCbCrのビデオデータをビットストリームに符号化するために、4:4:4のRGBのビデオデータからLuma値を決定するために、コンピュータ読み取り可能な媒体に格納されたコンピュータプログラムが提供される。当該プログラムは、
RGBのビデオデータから、線形の輝度と非線形の4:2:0のChroma値により定義される色空間における位置を決定するためのコードと、
当該決定された位置を含む領域であって、当該色空間に配置された複数の領域のうちの一つの領域であり、複数の関連付けられた係数を有する領域を決定するためのコードと、
前記決定された領域に関連付けられた一つ以上の前記係数を選択するためのコードであって、当該選択された係数は、線形の輝度と非線形の4:2:0のChroma値を、非線形の4:2:0のChroma値のクロマダウンサンプリングにより導入される輝度の偏差を補償するLuma値にマッピングするために使用される、コードと、
当該選択された係数の関数と当該決定された位置に応じて、ビットストリームに符号化するためのLuma値を決定する、ためのコードを含む。
【００１１】
他の観点もまた開示される。
【図面の簡単な説明】
【００１２】
本発明の少なくとも一つの実施形態は、以下の図面と付録を参照して説明される。
【図１】図1は、ビデオキャプチャーとビデオ符号器とビデオ復号器を含む再生システムを示す概略的なブロック図である。
【図２Ａ】図2Aは、図1のビデオ符号化と復号化のうちの一方または両方が実装され得る汎用コンピュータシステムの概略的なブロック図である。
【図２Ｂ】図2Bは、図1のビデオ符号化と復号化のうちの一方または両方が実装され得る汎用コンピュータシステムの概略的なブロック図である。
【図３Ａ】図3Aは、同じ位置でない（non-co-sited）クロマサンプルを用いた4:2:0クロマフォーマットを用いたビデオデータに対する例示的なサンプリングアプローチを示す。
【図３Ｂ】図3Bは、同じ位置の（co-sited）クロマサンプルを用いた4:2:0クロマフォーマットを用いたビデオデータに対する例示的なサンプリングアプローチを示す。
【図４】図4は、知覚量子化器（Perceptual Quantizer （PQ））電子工学伝達関数（EQTE）を示すグラフを示す。
【図５】図5は、線光RGB表現から「非一定の輝度」を用いたPQ符号化YCbCr表現へのビデオデータの変換を示す概略的なブロック図である。
【図６】図6は、サブサンプリングのアーチファクトを低減するためにLumaサンプルを調節するための反復アプローチを示す。
【図７Ａ】図7Aは、「八分の階層」を用いて領域に分割された三次元の色空間を示す。
【図７Ｂ】図7Bは、「八分の階層」構造の例である。
【図８】図8は、図7Aの八分の階層の領域に関連付けられたモデルを決定する方法を示す。
【図９】図9は、図1のクロマダウンサンプラの概略的なブロック図を示す。
【図１０】図10は、クロマダウンサンプリングを実行するための方法を示す。
【図１１】図11は、色空間領域の例示的な構成を示す概略図である。
【図１２Ａ】図12Aは、RGB色空間のYlinearCbCr色空間へのマッピングを示す概略図である。
【図１２Ｂ】図12Bは、RGB色空間のYlinearCbCr色空間へのマッピングを示す概略図である。
【発明を実施するための形態】
【００１３】
一つ以上の付随する図面において、同じ参照番号を有するステップおよび／または特徴が参照され、それらのステップおよび／または特徴は、反対の意図が表示されない限り、本説明の目的のために、同じ機能または動作を有する。
【００１４】
上述したように、クロマアップコンバージョンに起因する明るさおよび色のひずみ（distortion）はSDRシステムに存在するが、知覚量子化器（Perceptual Quantizer （PQ））電子工学伝達関数（EQTE）が使用される場合と比較して、やや非線形の伝達関数はそのようなアーチファクトの拡大を低減させる。ビデオ処理システムの「画素レート」において作用するそのようなアーチファクトを緩和させるための方法等、比較的または少なくとも複雑性が小さく、一定の複雑性の方法が必要となる。現在のビデオ処理システムにおいて、画素レートはかなり高く（例えば、60フレームにおいて4／秒）、ここで、3840 x 2160 x 60 = 498 x 106ピクセル／秒を処理する必要がある。このように、リアルタイム処理に対しては、ハードウェア実装に適した実装についての必要性が存在する。
【００１５】
図1は、ビデオ符号化および復号化システム100の機能モジュールを示す概略ブロック図である。システム100は、デジタルビデオカメラ等の符号化装置110、ディスプレイ装置160、およびそれら2つを相互接続する通信チャネル150を含む。一般的に、符号化装置110は、ディスプレイ装置160に対して別の場所（および時間）で動作する。このように、システム100は、一般的に、異なる時間と場所で動作する別々の装置を含む。（ビデオ符号化および復号化システム100の一部としても考慮される）ディスプレイ装置160の追加的な例は、ビデオストリーミングサービスの顧客またはエアブロードバンドサービスが自在の視聴者等の符号化ビデオデータの各受益者に対しても存在すると考えられる。
【００１６】
符号化装置110は、ソースマテリアル112を符号化する。ソースマテリアル112は、従来のイメージングセンサより広いレンジの輝度レベルを受信することが可能なビデオカメラの相補性金属酸化膜半導体（complementary metal oxide semiconductor（CMOS））イメージングセンサから取得され得る。また、ソースマテリアル112は、電荷結合素子（charged coupled device（CCD））の技術等の他の技術を用いて取得され、またはコンピュータグラフィックソフトウェアから生成され、またはこれらのソースのいくつかの組み合わせであり得る。また、ソースマテリアル112は、単に前に撮像されて格納されたビデオデータを表し得る。
【００１７】
ソースマテリアル112は、一連のフレーム122を含む。集合的に、フレーム122は未圧縮のビデオデータ130を形成する。分配するためのビデオビットストリームを準備するという状況で、ソースマテリアル112は、一般的には、4:4:4クロマフォーマットに存在し、符号化の前に4:2:0クロマフォーマットへダウンコンバートする必要がある。例えば、ソースマテリアル112がイメージセンサから取得される場合、4:4:4ビデオデータとなるように「デバイヤリング（debayering）」処理が適用される。さらに、ビデオデータはRGBでサンプリングされる。ビデオデータ130は、コードワード（codeword）の3つのプレーンが各フレームに対して存在するように、フレーム122に対するコードワードを含む。ソースマテリアル112は、一般的には、線光レベルを表す、RGB領域における三刺激値（tri-stimulus values）としてサンプリングされる。線光RGBのより知覚的に一様な区間への変換は、非線形伝達関数のアプリケーションにより達成され、結果としてR'G'B'表現は、R'G'B'値を含む。R'G'B'値がオリジナルのシーンの物理的光レベルを表す場合、伝達関数は、光電気伝達関数（OETF）であり得る。伝達関数が光電気伝達関数（OETF）である場合の配置において、ビデオ処理システム100は、「シーン参照の」システムと呼ばれ得る。また、R'G'B'値が表示される物理的光レベルを表す場合、伝達関数は、光電気伝達関数（EOTF）の逆関数であり得る。伝達関数が光電気伝達関数（OETF）の逆数である場合の配置において、ビデオ処理システム100は、「ディスプレイ参照の」システムと呼ばれ得る。
【００１８】
図1においてわかるように、色空間変換モジュール114は、R'G'B'表現を、Y'CbCrのような、R'G'B'それぞれからのLumaと若干非相関の色空間に変換するために使用される。色空間変換モジュール114は、行列変換を適用し、線形動作となる。RGB（すなわち輝度）よりむしろR'G'B'（すなわちLuma）上の色空間変換のアプリケーションは、利用可能な伝達関数の非線形な性質に起因して、いくらかのひずみがみられるが、「非一定輝度」（NCL）として知られるSDRテレビジョンおよびビデオシステムにおいて許容される。HDRの状況では、特に、PQ等の伝達関数を使用する場合、ひずみはより著しく、処理は劣化を補償するために行われる。Y'CbCr表現はしたがって、特定のビット深度に対して量子化され、個別の「コードワード」となる。Y'チャネルのコードワードは、特定のビット深度を用いて表されるLuma値としての伝達関数に従って、近似的に、ソースマテリアル112に存在する輝度レベルを符号化する。輝度情報は、CbおよびCrチャネルから完全には無相関ではないため、いくらかの輝度の大きさは、CbおよびCrチャネルに存在する。CbおよびCrチャネルに存在する輝度の大きさを視覚化する一つの方法は、YCbCrにおいて、CbおよびCrチャネルに対する有効なコードワードの範囲がY'の大きさに依存することである。Y'がゼロに近づくにつれて、CbおよびCrの範囲は小さくなる。そのように、提供された色の忠実度（colour fidelity）は、低い輝度において小さくなる。同じ現象は、Yが、サポートされる最大の値に増大する際に観察される。ソースマテリアル112は、RGB値として表され、3つの個別の構成要素を有し、それらの重み付けされた合計は輝度を形成する。そして、ディスプレイ装置160の各ディスプレイの原色（すなわち、R、G、およびB）は、ディスプレイ装置160の全てのディスプレイの原色が最大の許容される出力を提供している場合よりも、必然的に少ない明るさとなる。個別のコードワードの範囲は、使用するビット深度により示される（したがって、暗示的に、コードワードの量子化は使用するビット深度に依存する。）一般的に、ビデオ処理システム100は、10ビット等の特定のビット深度で動作する。この特定のビット深度での動作は、1024の個別のコードワードの利用可能性を示す。また、利用可能なサンプルの範囲における更なる制限が示され得る。例えば、非圧縮のビデオデータ130が符号化装置110内で「シリアルデジタルインタフェース（SDI）」プロトコルを用いて伝送された場合、コードワードの範囲は、1016の個別のコードワード値を与える、4-1019を含んだ範囲に限定される。また、TV放送システムは、10ビットビデオデータのために、64-940のコードワードの範囲に限定し得る。
【００１９】
また、図1からわかるように、クロマダウンサンプラ116は、ソースマテリアル112を、4:4:4クロマフォーマットから変換し、4:2:0クロマフォーマットにおける非圧縮のビデオデータ130を生成する。クロマダウンサンプラ116は、リアルタイムで動作し、図7A〜図12Bを参照して以下に説明する「Lumaサンプル調整」として参照される機能を実行する。
【００２０】
ビデオ符号器118は、「符号木ユニット（coding tree units）」として知られる一連の四角い範囲として各フレームを符号化し、符号化したビットストリーム132を生成する。ビデオ符号器118は、高効率ビデオ符号化（HEVC）等のビデオ符号化の規格に適合する。しかし、H.264/AVC, VC-1 またはMPEG-2等の他の規格も使用され得る。符号化されたビットストリーム132は、通信チャネル150を介した送信の前に、例えば非一時的な記憶装置または同様の構成140に記憶される。
【００２１】
符号化されたビットストリーム132は、ディスプレイ装置160に伝達される（例えば、送信、または、伝えられる）。ディスプレイ装置160の例は、LCDテレビジョン、モニタ、またはプロジェクタを含む。ディスプレイ装置160は、符号化されたビットストリーム132を復号し、復号化されたコードワード170を生成するためのビデオ復号器162を有する。復号化されたコードワード170は、非圧縮ビデオデータ130のコードワードに近似的に対応する。復号されたコードワード170は、ビデオ符号化器118に適用される不可逆圧縮（lossy compression）技術により、非圧縮データ130のコードワードと正確に等しくはない。復号化されたコードワード170は、復号化された4:4:4ビデオデータ172を生成するために、アップサンプラモジュール164に伝えられる。クロマアップサンプラモジュール164は、特定のフィルタのセットを適用し、図3Aと図3Bを参照してさらに説明するように、4:2:0から4:4:4へアップサンプリングを実行する。復号かされた4:4:4ビデオデータ172はその後、色空間変換モジュール165においてYCbCrからRGBへ変換され、RGBビデオデータ174が生成される。RGBビデオデータ174は、ビデオデータの視覚再生のために、パネルディスプレイ166へ入力として伝えられる。例えば、再生は、LCDパネルを通過するバックライト照明の量を調節し得る。パネル装置166は、一般的には、LEDバックライトを伴うLCDパネルである。LEDバックライトは、最大の達成可能な輝度を、空間的に局所的にある程度制御できるように、一連のLEDを有し得る。代替的に、パネル装置166は、「オーガニックLED（OLEDs）」を使用してもよい。
【００２２】
復号化されたコードワード170のうちの所与のコードワードと、パネル装置166における対応する画素から放射される対応する光出力との関係は、名目上は、伝達関数の逆関数である。ディスプレイ参照のシステムに対しては、伝達関数の逆関数は、EOTFである。スクリーン参照のシステムに対しては、伝達関数の逆関数は、OETFの逆関数である。「相対輝度」を用いるシステムに対しては、光出力はコードワードと伝達関数の逆関数にのみ制御されることはない。光出力は、ディスプレイのコントラストまたは明るさの設定のユーザ制御によりさらに修正され得る。
【００２３】
ビデオ処理システム100の一つの構成において、使用しているEOTFは、PQ-EOTF (すなわち、SMPTE ST.2084)であり、これは図4を参照して以下に説明される。HDRビデオデータを伝達するために構成された伝達関数の別の例は、ARIB STD B-67.として標準化されている、ハイブリッドログガンマ（HLG）光電気伝達関数（OETF）である。HLG-OETEは、名目上は1200nitsのピーク輝度をサポートすると定義される。しかしながら、HLG-OETFは、相対輝度伝達関数であるため、視聴者は、ディスプレイのコントラストと明るさの設定を、名目上のピーク輝度より明るい輝度を表示するように調整し得る。
【００２４】
上述した例示的な装置に関わらず、ソース装置110およびディスプレイ装置160のそれぞれは、汎用のコンピューティングシステム内で構成され、典型的には、ハードウェアとソフトウェアの構成要素の組み合わせを介して構成され得る。図2Aは、コンピュータモジュール201、キーボード等の入力装置202、マウスポインティング装置203、スキャナ226、HDR撮像素子112として構成され得るデジタルビデオカメラ227、カメラと統合され得るマイクロフォン280、プリンタ215とディスプレイ装置160として構成され得るディスプレイ装置214とラウドスピーカ217を含む出力装置を含む、コンピュータシステム200を示す。外部変復調装置（モデム（Modem））送受信装置216は、コンピュータモジュール201により、接続221を介して通信ネットワーク220へ通信を行うため、または、通信ネットワーク220からの通信を行うために使用され得る。通信チャネル150を表す通信ネットワーク220は、インターネット等のワイド・エリアネットワーク（WAN）、セルラ電気通信ネットワーク、または、プライベートWANであり得る。ここで、接続221は電話線であり、モデム216は従来の「ダイアルアップ」モデムであり得る。また、接続221は、大容量（例えばケーブル）接続であり、モデム216はブロードバンドモデムであり得る。通信ネットワーク220への無線接続のために、無線モデムも使用され得る。送受信装置216は、撮像装置110およびディスプレイ装置160において追加的に提供され得る。また、通信チャネル150は、接続221に組み込まれ得る。
【００２５】
さらに、図1の通信チャネル150は、典型的には、有線または無線の通信ネットワークにより実装されるが、ビットストリーム132は、代替的に符号化装置110とディスプレイ装置160との間をCDやDVD等の非一時的メモリ記憶媒体により伝達されてもよい。このように、ネットワーク150は、別のそのようなパスとなる記憶媒体を伴い、ビットストリーム132が符号化装置110とディスプレイ装置160との間を伝達される一つのパスを単に表すに過ぎない。
【００２６】
コンピュータモジュール201は、典型的には、少なくとも一つのプロセッサ205とメモリ部206を有する。例えば、メモリ部206は、半導体ランダムアクセスメモリ（RAM）および半導体読み取り専用メモリ（ROM）を有する。コンピュータモジュール201はまた、ビデオディスプレイ214とラウドスピーカ217とマイクロフォン280に接続されたオーディオ・ビデオインタフェース207、キーボード202とマウス203とスキャナ226とカメラ227とオプション的にはジョイスティックまたは他のヒューマンインタフェース装置（不図示）に接続されたI/Oインタフェース213、および外部モデム216とプリンタ215のためのインタフェース208を有する。オーディオ・ビデオインタフェース207からコンピュータモジュール214までの信号は、一般的には、コンピュータグラフィックカードの出力である。ある実装では、モデム216は、コンピュータモジュール201内、例えばインタフェース208内に組み込まれ得る。コンピュータモジュール201はまた、ローカル・エリアネットワーク（LAN）として知られるローカル・エリア通信ネットワーク222への接続223を介してコンピュータシステム200の接続を許容するローカルネットワークインタフェース211を有する。図2Aに示すように、ローカル通信ネットワーク222はまた、典型的には「ファイヤウォール」と呼ばれる装置や同様の機能の装置を含む接続224を介してワイドネットワーク220へ接続し得る。ローカルネットワークインタフェース211は、Ethernet（登録商標）回路カード、Bluetooth（登録商標）の無線構成、またはIEEE 802.11の無線構成を含み得る。しかしながら多数の他の種類のインタフェースがインタフェース211に対して実施され得る。ローカルネットワークインタフェース211はまた、ローカル通信ネットワーク222において具現化され得る通信チャネル120の機能性を提供し得る。
【００２７】
I/Oインタフェース208および213は、シリアル接続およびパラレル接続のいずれかまたは両方を提供し得る。前者は、典型的にはユニバーサルシリアルバス（USB）規格に従って実装され、対応するUSBコネクタ（不図示）を有する。記憶装置209が提供され、典型的にはハードディスクドライブ（HDD）210を含む。フロッピーディスクや磁気タイプのドライブ（不図示）等の他の記憶装置も使用され得る。光学ディスクドライブ212は、典型的には、非揮発性のデータのソースとして動作するように提供される。光学ディスク（例えば、CD-ROM、DVD、Blue-rayディスク（登録商標））、USB-RAM等のポータブルメモリ装置、ポータブルな外部ハードディスク、およびフロッピーディスクが、例えばコンピュータシステム200へのデータの適切なソースとして使用され得る。典型的には、HDD210、光学ディスク212、ネットワーク220、222のいずれかはまた、HDR撮像素子112として動作するように、または、ディスプレイ214を介した再生のために格納される復号されたビデオデータの送り先として動作し得る。システム100の撮像装置110およびディスプレイ装置160は、コンピュータシステム200において具現化され得る。
【００２８】
コンピュータモジュール210の構成要素205〜213は、典型的には、当業者に既知のコンピュータシステム200の動作の従来のモードとなるように、相互接続されたバス210を介して通信する。例えば、プロセッサ205は、接続218を用いてシステムバス204に接続される。同様に、メモリ206および光学ディスクドライブ212は、接続219によりシステムバス204に接続される。説明した構成を実施可能なコンピュータの例は、IBM-PCおよび互換品、Sun SPARCステーション、Apple Mac（登録商標）、および同様のコンピュータシステムを含む。
【００２９】
適切には、または望ましくは、ビデオ符号器118とビデオ復号器162、並びに、以下に説明する方法は、コンピュータシステム200を用いて実装され得る。ここで、説明するビデオ符号器118、ビデオ復号器162および方法は、コンピュータシステム200内で実行可能な一つ以上のソフトウェアアプリケーションプログラム233として実装され得る。特に、ビデオ符号器118、ビデオ復号器162および説明する方法のステップは、コンピュータシステム200内で実行されるソフトウェア233における命令231（図2Bを参照）により達成される。ソフトウェアの命令231は、それぞれが一つ以上の特定のタスクを実行する、一つ以上のコードモジュールとして形成され得る。ソフトウェアはまた、2つの個別のパートの分割され得る。第1のパートおよび対応するコードモジュールは、説明する方法を実行し、第2のパートおよび対応するコードモジュールは、当該第1のパートとユーザとの間のユーザインタフェースを管理する。
【００３０】
ソフトウェアは、例えば、以下に説明する記憶装置を含むコンピュータ読み取り可能な媒体において格納され得る。ソフトウェアは、コンピュータシステム200へコンピュータ読み取り可能な媒体からロードされ、コンピュータシステム200により実行される。そのようなソフトウェアを有するコンピュータ読み取り可能な媒体またはコンピュータ読み取り可能な媒体に記憶されたコンピュータプログラムは、コンピュータプログラム製品である。コンピュータシステム200においてコンピュータプログラム製品を利用することにより、ビデオ符号器118、ビデオ復号器162、および説明する方法を実装するための有益な装置がもたらされる。
【００３１】
ソフトウェア233は、典型的には、HDD210またはメモリ206に保存される。ソフトウェアは、コンピュータシステム200へコンピュータ読み取り可能な媒体からロードされ、コンピュータシステム200により実行される。したがって、例えば、ソフトウェア233は、光学ディスクドライブ212により読み取られる光学的に読み取り可能なディスク記憶媒体（例えばCD-ROM）225に保存され得る。
【００３２】
いくつかの例では、アプリケーションプログラム233は、一つ以上のCD-ROMで符号化されてユーザに提供され得る。または、対応するドライブ212を介して読み取られ得る。または、ネットワーク220または222からユーザにより読み取られ得る。さらに、ソフトウェアはまた、他のコンピュータ読み取り可能な媒体からコンピュータシステム200へロードされ得る。コンピュータ読み取り可能な媒体は、記憶された命令および／またはデータを実行および／または処理するためにコンピュータシステム200へ供給する非一時的な有形の記憶媒体であり得る。そのような記憶媒体の例は、コンピュータモジュール201の内部または外部に関係なく、フロッピーディスク、磁気テープ、CD-ROM、DVD、Blu-rayディスク（登録商標）、ハードディスクドライブ、ROMまたは集積回路、USBメモリ、光磁気ディスク、PCMCIA等のコンピュータ読み取り可能なカード等を含む。ソフトウェア、アプリケーションプログラム、命令および／またはビデオデータまたは符号ビデオデータをコンピュータモジュール201へ提供することに関与し得る一時的または非有形のコンピュータ読み取り可能な送信媒体の例は、無線または赤外線伝送チャネル、並びに、別のコンピュータまたはネットワーク装置へのネットワーク接続、および、電子メール送信およびウェブサイト等に記憶された情報を含むインターネットまたはイントラネットを含む。
【００３３】
上述したように、アプリケーションプログラム233の第2のパートおよび対応するコードモジュールは、描写するまたはそれ以外にディスプレイ214上で表現するための一つ以上のグラフィカルユーザインタフェース（GUIs）を実装するための実行され得る。典型的にキーボード202およびマウス203の操作を介して、コンピュータシステム200のユーザおよびアプリケーションは、機能的に適応可能な手法でインタフェースを操作し、制御コマンドおよび／またはGUIに関連付けられたアプリケーションへの入力を提供する。機能的に適応可能なユーザインタフェースの他の形態はまた、ラウドスピーカ217を介したスピーチプロンプト出力およびマイクロフォン280を介した音声コマンド入力を利用するオーディオインタフェース等のように、実装され得る。
【００３４】
図2Bは、プロセッサ205および「メモリ」234の詳細な概略的ブロック図である。メモリ234は、図2Aにおけるコンピュータモジュール201によりアクセス可能な（HDD209および半導体メモリ206を含む）全てのメモリモジュールの論理的な集合を表す。
【００３５】
コンピュータモジュール201は、まず電力の供給を受け、パワーオン・セルフテスト（POST）プログラム250を実行する。POSTプログラム250は、典型的には、図2Aの半導体メモリ206のROM249に格納される。ソフトウェアを格納するROM249等のハードウェア装置は、ときにファームウェアとして参照される。POSTプログラム250は、適切な機能を保証するためにコンピュータモジュール201内のハードウェアを検査し、典型的には、一般的にROMに格納されるプロセッサ205、メモリ234（209、206）、および基本的な入力・出力システムソフトウェア（BIOS）モジュール251を、正しく動作するためにチェックする。POSTプログラム250が正しく動作すると、BIOS251は図2Aのハードディスクドライブを起動する。ハードディスクドライブ210の起動により、プロセッサ205を介して実行するために、ハードディスクドライブ210に内在するブートストラップ・ローダー252が起動する。これにより、オペレーティングシステム253がRAMメモリ206にロードされ、オペレーティングシステム253は動作を開始する。オペレーティングシステム253は、プロセッサ管理、メモリ管理、装置管理、記憶管理、ソフトウェアアプリケーションインタフェースおよび汎用ユーザインタフェースを含むシステムレベルアプリケーションであり、多様な高レベル機能を満たすためにプロセッサ205により実行可能である。
【００３６】
オペレーティングシステム253は、メモリ234（209、206）を管理し、各プロセッサまたはコンピュータモジュール201上で動作するアプリケーションが別の処理のために割り当てられたメモリと衝突しないように実行できるように十分なメモリを有するように保証する。さらに、図2Aのコンピュータシステム200異なる種類のメモリは、各処理が効率的になされるように適切に使用される必要がある。したがって、統合されたメモリ234は、メモリの特定のセグメントがどのように割り当てられるかを図示するようには意図されず、コンピュータシステム200によりアクセス可能なメモリの一般的な概念と、どのように使用されるかが示すように意図される。
【００３７】
図2Bに示すように、プロセッサ205は、制御部239、算術論理演算部（ALU）240、および局所的なまたは内部のメモリ248（ときにキャッシュメモリと呼ばれる）を含む複数の機能モジュールを含む。キャッシュメモリ248は、典型的には、レジスタのセクションにおいて、複数の記憶レジスタ244〜246を有する。一つ以上の内部バス241は、これらの機能モジュールを機能的に相互接続する。プロセッサ205は、接続218を用いてシステムバス204を介して外部装置と通信を行うために、典型的には、一つ以上のインタフェース242を有する。メモリ234は、接続219を用いてバス204に接続される。
【００３８】
アプリケーションプログラム233は、条件分岐またはループの命令を含み得る一連の命令231を含む。プログラム233は、プログラム233の実行の際に使用されるデータ232も含み得る。命令231およびデータ232は、メモリ位置228、229、230、および、235、236、237にそれぞれ格納される。命令231の相対的なサイズとメモリの位置228〜230に依存して、特定の命令は、メモリの位置230に示される命令により示される単一のメモリの位置において格納される。また、命令は、複数のパートに分割され、各パートは、メモリの位置228と229に示されるメモリの分割により示されるように、個別のメモリ位置に格納される。
【００３９】
一般的に、プロセッサ205には、実行される命令のセットが与えられる。プロセッサ205は、続く入力を待機し、プロセッサ205は別の命令のセットを実行することによりそれに反応する。各入力は、図2Aに示す、一つ以上の入力装置202、203により生成されたデータ、ネットワーク202、202の一つに渡る外部のソースから受信したデータ、記憶装置206、209の一つから受信したデータ、または、対応するリーダー212に挿入される記憶媒体225から読み出されたデータを含む、一つ以上のソースから供給され得る。命令のセットの実行は、あるケースでは、データの出力をもたらす。実行はまた、メモリ234へのデータまたは変数を格納することも含み得る。
【００４０】
ビデオ符号器118、ビデオ復号器162、および説明する方法は、対応するメモリ位置255、256、257においてメモリ234に格納される入力変数243を使用し得る。ビデオ符号器118、ビデオ復号器142、および説明する方法は、対応するメモリ位置262、263、264においてメモリ234に格納される出力変数261を使用し得る。中間変数258は、メモリ位置259、260、266、267において格納され得る。
【００４１】
図2Bのプロセッサ205を参照して、レジスタ244、245、246、算術論理演算部（ALU）240および制御部239は、プログラム233を構成する命令のセットにおける全ての命令に対して「フェッチ、復号、および実行」のサイクルを実行するために必要な一連のマイクロオペレーションを実行するために協働する。各フェッチ、復号、および実行サイクルは、
（a）フェッチオペレーション、メモリ位置228、229、230から命令231をフェッチまたは読み出す
（b）復号オペレーション、制御部239はどの命令がフェッチされたかを判定する
（c）実行オペレーション、制御部239および／またはALU240は命令を実行する、
を含む。
【００４２】
その後、次の命令に対する更なるフェッチ、復号、および実行サイクルが実行される。同様に、制御部239が値をメモリ位置232に格納または書き込むことにより、記憶サイクルが実行される。
【００４３】
図3Aは、同じ位置でない（non-co-sited）クロマサンプルを用いた4:2:0クロマフォーマットを用いたビデオデータに対する例示的なサンプリングアプローチを示す。図3Aは、3つの色平面を含む非圧縮ビデオデータ130のフレーム300を示す。第1の色平面は、図3Aで「×」で示されるLumaサンプル304等のLumaサンプルを有する。各「X」は、一つのLumaサンプルに対応する。なお、フレーム300は、一般的には、YCbCr色空間においてビデオデータを符号化する。このように、Y、Cb、Crの値は実際にはサンプリングプロセスの結果ではない。代わりに、Y、Cb、Crの値は、「コードワード」としても参照され、Y、Cb、Crの値は図5を参照して説明するような色変換を適用する結果である。そして、クロマサンプルのペア306は、CbサンプルとCrサンプルの2つのクロマサンプルを含む。CbサンプルとCrサンプルは、Lumaサンプルと比較して、水平方向および垂直方向に半分の周波数で存在するのみである。さらに、図3Aの例では、クロマサンプルは、特定のLumaサンプルと併置されない。クロマサンプルがLumaサンプルに関連して異なるように位置するような4:2:0クロマフォーマットの他の構成も考えられる。クロマサンプルがLumaサンプル（すなわち、水平方向または垂直方向全ての第2のLumaサンプル）と重なる構成は、「同じ位置の（co-sited）」サンプリングとして参照される。
【００４４】
図3Aに示されるように、Lumaサンプル302（図示する四角に含まれる）は、クロマサンプル306に関連付けられた4つのLumaサンプルである。そのようなパターンがフレーム300に渡って繰り返される。クロマサンプル306は、4:4:4クロマフォーマットにアップコンバートする際に、同じクロマサンプルが各4つのLumaサンプルと共に使用される（例えば、4:4:4クロマサンプルを生成するための一番隣接するものとの補間を使用する際）という意味で、「共有」される。別のアップサンプリングフィルタも利用可能であり、これにより、4:2:0クロマサンプルと4:4:4クロマサンプルの間の異なる関係が得られる。一つの例は、双線形（bilinear）フィルタリングであり、この場合、追加的なクロマサンプルが4:2:0クロマサンプルから合成され、同じサンプリングレートに表れるクロマサンプルがLumaサンプルとして生成される。所与のクロマサンプルのペアの大きさ（magnitude）の補間は、関連付けられたLumaサンプルの大きさに依存する。よって、クロマサンプルのペアを関連付けられた複数のLumaサンプルを有することは、符号化装置110に存在するクロマダウンサンプリングの前の4:4:4ビデオデータに対応する、復号器において再構築された4:4:4ビデオデータに対して問題があるといえる。
【００４５】
図3Bは、同じ位置の（co-sited）クロマサンプルを用いた4:2:0クロマフォーマットを用いたビデオデータに対する例示的なサンプリングアプローチを示す。図3Bにおいて、フレーム320は、4:2:0クロマフォーマットを用いた、Lumaサンプル（「×」）、およびクロマサンプル（「○」）のペアを含む。フレーム300と対称的に、図3Bのクロマサンプルは「同じ位置」であり、これは、各クロマ値がLumaサンプル（水平方向および垂直方向の全ての第2のLumaサンプル）と同じ位置にサンプリングされることを意味する。図3Aでは、クロマサンプルは、同じ位置になく、あらゆるLumaサンプルとは重ならない。同じ位置にあるクロマサンプルと同じ位置にないクロマサンプルの区別は、ビデオデータの個別のサンプルを生成するために適用されたサンプリング処理を伴い、輝度およびクロミナンスの連続関数として基調的な（underlying）ビデオを可視化することにより理解することができる。サンプリング処理は、各色要素において存在する各サンプルの位置を考慮する必要がある。一般的に、撮像素子を有する符号化装置（例えば110）は、撮像素子におけるセルの物理的構成に従って、撮像素子によって既にサンプリングされたデータを受信する。「デバイヤリング（debayering）」処理は、サンプルを、このフォーマットから、一般的には4:4:4クロマフォーマットに変換し、当該4:4:4ビデオデータのサンプルは、撮像素子からのサンプルを外して効率的に合成される。
【００４６】
クロマサンプルに対する別の位置も考えられ得る。符号化されたビットストリーム132は、「ビデオユーザビリティ情報（VUI）」として知られるパケットを含む。VUIは、ディスプレイ装置160に、どのようにビデオ復号器162から復号されたサンプルの補間を行うかを示すものである。VUIは、クロマサンプリングの位置を示すシンタックス要素である「chroma_sample_loc_type_top_field」を含み得る。 一般的にはビデオデータは「インターレースされた」フォーマットのものであるが、上記のシンタックス要素は、ビデオデータが「プログレッシブフォーマット」のものである場合にも使用され得る。chroma_sample_loc_type_top_fieldが存在しない場合、クロマサンプルは（図3Aに示されるように）同じ位置にないと想定される。ビデオデータがインターレースされたフォーマットのものである場合、代わりの「下部（bottom）」のフィールドに対するクロマサンプルの位置が、chroma_sample_loc_type_top_fieldシンタックス要素により特定される。
【００４７】
符号化されたビットストリーム132はまた、クロマ再サンプリングフィルタヒント補助強化情報（SEI）メッセージとして知られるパケットを含む。クロマ再サンプリングフィルタヒントSEIメッセージにより、あるクロマフォーマットから別のクロマフォーマットへビデオデータを再サンプリングするためにクロマフィルタのシグナリングを行うことが可能となる。所定のフィルタも、Rec.ITU-T T.800 | ISO/IEC 15444-1に定義されるようにシグナリングされ得る。
【００４８】
図4は、知覚量子化器（Perceptual Quantizer （PQ））電子工学伝達関数（EQTE）442を10ビットの量子化で示すグラフ440である。PQ-EOTF442は、「バートンモデル」として知られる人間の視覚認識のモデルから導出される複数の顕著な差（f*JND）の繰り返しの加算から得られる曲線に近接的に合致するように構成される。PQ-EOTF442は、一番小さいコードワードが、図4において漸近的に示されない0nitsの輝度に対応することにおいて、バートンモデルとは異なる。グラフ400は、X軸に沿った10ビットの量子化での、コードワード値と、PQ-EOTF442によりサポートされる範囲でのY軸上の絶対的な輝度を表す。使用が意図される可能なコードワードの範囲は、「ビデオ範囲」として知られる、64から940限定される。そのような可能なコードワードの範囲は、10ビットのビット深度において動作するビデオシステムに対する一般的な手法に合致する。しかしながら、他の伝達関数は、あるケースにおいては、64から940の範囲の外側への進出を許容する。64から940のコードワードの範囲は、0nits（図4の深度において不図示）から104nitsの輝度に対応する。隣接するコードワードは、完全に適合された人間の眼に対するJND閾値を上回るステップに対応する。
【００４９】
図5は、線形の光RGB表現から「非固定の輝度」を用いたPQ-EOTF符号化YCｂCr表現へのビデオデータの変換を示す概略的なブロック図である。図5の例では、色空間変換モジュール114は、ソースマテリアル112等のRGB線形光入力を受け入れる。各要素は、伝達関数モジュール502、504、506を用いて、R'、G'およびB'にマップされる。伝達関数モジュール502、504、506は、ITU-R BT.709等のOETFまたは、逆PQ-EOTF等の逆EOTFを実装し得る。また、RGBからYCbCrモジュール508は、以下の式（1）を実行することにより、R'G'B'をY'CbCrに変換する。
0006472429.tif 000002
【００５０】
正規化された入力を考慮すると、R'、G'、およびB'のそれぞれは、[0、1]の間にある。これにより、ビデオデータを含むR'G'B'空間における体積（cubic volume）となる。クロマサンプリングの課題の一つの観点は、線形の領域（すなわちRGB）より知覚の領域（すなわち、R'G'B'）におけるフィルタリングを実施することにより、伝達関数の非線形な性質がフィルタフィルタリングから強度のシフトをもたらすことである。サンプリングされるR'G'B'（例えば、G' は主要色要素として割り当てられ、R'とB'はサブサンプリングされる）のケースでは、4:4:4クロマフォーマットのより高いサンプリングレートにおけるB'とR'における複数のサンプルが、4:2:0クロマフォーマットのより低いサンプリングレートでのサンプルを生成するためにフィルタリングされる。そして、より低いサンプリングレートでのB'とR'に結合された、より高いサンプリングレートでのB'とR'のサンプルにおいて存在するする明るさの情報に起因して、近接する画素間で干渉が発生する。式（1）から、干渉の重大性が、R'とB'のY'への相対的な寄与から分かるだろう。
【００５１】
Y'CbCr が、クロマ（CbとCr）からLuma（Y'）を「非相関」にするとしても、当該非相関は完全ではなく、いくらかの輝度情報はまだCb値とCr値に存在する。例えば、式（1）をY'CbCr値を生成するために適用する場合、有効なCb値とCr値の範囲が収束するように、有効なR'G'B'値の体積（volume）は、有効なY'CbCr の値の異なる値となる。Y'値の真ん中で、許容されるCb値とCr値の範囲は最大化される。したがって、Y'CbCrは、輝度情報と完全に非相関の色情報とはならないことがわかる。したがって、クロマサブサンプリングがCbとCrのサンプルに独立に適用された場合、輝度に関して隣接する画素間の干渉は、サンプルに渡って発生し、かなり異なる明るさを有することとなる。この干渉は、「範囲外（out of gamut）」の色をもたらす。すなわち、4:4:4に変換され、 R'G'Bとなる場合に、[0、1]の間の外側の値を有する4:2:0Y'CbCr値となる。
【００５２】
RGBからYCbCrへの変換は、入力としてのR'G'B'より、入力としてのより線形なのRGBで実行され得る。しかしながら、多くのシステムでは、線形光のデータは利用可能でないこと、または、浮動小数点表現を必要とする線形光のデータを扱うことの複雑性は、複雑性の検討および／またはリアルタイムオペレーションに対してふさわしくないので、そのような手法は不可能である。RGBビデオデータの代わりにR'G'B'を用いた、RGBからYCbCrへの色変換の適用は、「非一定輝度」のアプローチとして知られている。また、色空間変換モジュール114は、後続のステップ（符号化の前）として 4:2:0へのダウンコンバージョンを伴い、4:4:4クロマフォーマットで動作する。
【００５３】
図6は、サブサンプリングのアーチファクトを低減するためにLumaサンプルを調節するための反復（iterative）アプローチを示す。図6の例では、Lumaサンプル調整器600は、フレーム300の各Yサンプルを生成するために、反復の方法を実行する。ソースマテリアル112のRGBサンプルは、線形光のフォーマットにおいて、RGBからXYZ色変換モジュール612に供給される。色空間「XYZ」は、CIE1931 XYZ 色空間を参照する。R'G'B'が利用可能である場合のみ、伝達関数は、線形光の値を復元するために「そのまま（undone）」となる。XYZ領域において、線形の輝度Ylinearのみが使用される。値Ylinearは、ソースマテリアル112の「正しい」輝度に対応し、ディスプレイ装置160が検討された画素に対して望ましく出力する輝度である。初期のYの値および、CbとCrの値は、ソースマテリアルのRGBから計算され、CbとCrの値は、YCbCrから RGBへの変換モジュール602へ供給される。初めに、推定のY値も、YCbCrから RGBへの変換モジュール602へ供給される。推定のYは初期のYの値であり得る。YCbCr 変換モジュール602は、Yの値およびCbとCrの値を、R'G'B'に変換し、得られたR'G'B'はその後、逆伝達関数モジュール604、606、608を用いて、線形の光R、G、Bへ変換される。RGBからXYZの変換モジュール610はその後、線形の光のRGB値を、線形の光のXYZ値へ変換し、ここで、値Ycandidateのみがさらに検討される。モジュール602〜610は、推定のY値が使用される場合は、ディスプレイ装置160から放射された線形の光における実際の輝度を決定する。決定された実際の輝度は、（例えば、「一番近い」アプローチが使用された場合に、4つのYサンプルのセット間で共有される）複数のYサンプルに関連付けられたCbとCrサンプルに起因して、意図される光のレベルYlinearと異なると予想される。図6において分かるように、比較モジュール614は、Ylinearと Ycandidateとを比較し、例えば全単射の（bijective）検索を利用して、新しいY値を計算する。新しいY値は、モジュール602〜610により再度処理され、新しいYcandidateが生成される。
【００５４】
図6を参照した上述のステップは、Ycandidateが十分にYlinearに近づいて、更なる反復が必要ないと見なされるまで、反復的に適用される。現段階では、値Ycandidateを、伝達関数（例えば、PQまたはBT.709）の適用により、Y'に変換することが可能である。結果として得られるY'はその後、関連付けられたサンプルCbとCrに沿って、ビデオ符号器に渡ることができる。図6を参照した上述のステップは、広範な色空間変換、伝達関数アプリケーションを用いて、線形（例えば浮動小数点）データにおいて動作可能であり、フレーム300において、各Lumaサンプルに対して反復的に行われることが可能である。このように、非リアルタイムのシステム（例えば、オフラインのシミュレーション）に対して実用的ではあるが、図6に対して定義したように、当該アプローチは、リアルタイムの実装に対して非常に複雑である。リアルタイムのオペレーションは、ビデオ処理システムの画素レートにおける動作を意味する。画素レートの動作は、一般的にハードウェアにおいて行われ、反復の手法は、最悪なケース（すなわち、各画素に対して起こる反復の最大数）が設定されると実装に過剰にコストがかかることから、反復ステップにより、実装の困難性が生じる。
【００５５】
Lumaサンプル調整器600が、線形の光のRGB入力を操作するものとして示されるが、Lumaサンプル調整器600は、例えば色空間変換モジュール114から生じるY'CbCrに対しても動作し得る。そのようなケースでは、Y'CbCr の非一定の輝度の表現は、放置できない、いくらかのひずみを導入する。それにより、ソースマテリアル112上のRGBからXYZへの色空間変換のアプローチからYlinearに完全に合致するYlinearが導出される。しかしながら、密接な合致はまだ得られる。また、3つの入力（Y、Cb、およびCr）の関数として動作し、改良されたYの値であるYfinalを生成する、改良したLumaサンプル調整器が考えられる。
【００５６】
Lumaサンプル調整器600の結果は、全ての可能な入力値に対するルックアップテーブルに組み込まれるが、そのようなルックアップテーブルのサイズは、リアルタイムの実装に対して禁止され得る。
【００５７】
図7Aは、「八分の階層（octant hierarchy）」を用いて領域に分割された3次元の色空間を示す。色空間700は、図7Aにおける軸を有し、Ylinear、CbおよびCrの要素により形成される。3次元の空間700は、「八分の階層」として知られる領域の階層に分割される。各分割は、1つの大きい領域を8つの小さい領域に分離する。（例えば、境界が制御され得る）非一様の分割の仕様が許容されるオフセットが導入され得るが、示される領域の形状は立方体である。図7Aの軸は、Ylinear、 Cb および Cr.のそれぞれに対するコードワードの空間に対応する。八分の階層は、一般的には、階層の深度は限定され、それにより、一番小さい領域（すなわち、境界は常に各次元の親の領域の半分と想定される）は、特定のサイズに限定される。
【００５８】
図7Aにおいて、例示的な領域702は、各次元の全長さの半分のサイズを有する。図7Aにおいて分かるように、例示的な領域704は、親の領域である領域704の各次元の全長さの半分のサイズを有する。
【００５９】
図7Bは、色空間700の「八分の階層」に対応する構造750の例である。「根（root）」ブロックとしても知られるブロック751は、構造上、完全なYlinearCbCr 空間700に対応する。図7Bの例において、ブロック751は、階層的に、8つの「子（child）」ブロックのセット752に分割される。当該分割は、色空間700の階層的な分割に対応する。セット752における各ブロックは、各次元において「親」領域の長さの半分の長さを有する色空間700の領域に対応する。図7Aと図7Bの例において、ブロック753は、領域702に対応する。セット752のブロックのそれぞれは、さらに、子ブロックのセットに分割される。図7Bの例において、ブロック754は、8つの子ブロックのセット755に分割される。図7Aと図7Bの例において、ブロック756は、領域704に対応する。さらに子ブロックのセットに分割されていないブロックは、「葉（leaf）」ブロックとして知られる。
【００６０】
構造750のブロックのそれぞれにモデルが関連付けられる。また、当該モデルは、色空間700の領域に関連付けられるともいえる。モデルは、入力値（すなわち、Ylinear、Cbおよび Cr）を出力のY値にマップするために使用される。各モデルは、複数の係数（coefficient）を含む。「2次（second order）」のモデルでは、当該モデルを実装するために7つの係数が使用される。
【００６１】
図7Bの例では、モデル770がブロック756に関連付けられる。YlinearCbCr値がブロック756に対応する領域に位置する場合、ブロック754はブロック756に関連付けられた領域を含む領域から導出されたので、ブロック754に関連付けられたモデルも適用可能であるが、モデル770が適用される。ブロック754」に関連付けられた領域に対するモデル（「親モデル」）を決定すると、（最悪のケースのエラーが減少したという意味で）実質的により良いモデルが存在するあらゆる子の領域を除外するブロック754に関連付けられた領域に対するモデルを修正（再計算）することが可能となる。しかしながら、この手法で親モデルを再導出することが、あらゆるサブ領域の排除により、より複雑な領域の形状となる領域において「顔（face）」の数が増加することから、最悪のケースのエラーが増加する傾向となることがわかる。
【００６２】
単一のモデルが一つ以上のブロック、ゆえに一つ以上の領域に関連付けられ得る。図7Bの例では、モデル771はブロック754その子ブロック757に関連付けられ、モデル772はブロック758と759に関連付けられる。モデル771は、ブロック754に関連付けられた領域の全体の体積（ボリューム）を用いることにより導出することが可能である。そのような場合では、ブロック754はサブブロック（例えば757〜760）を含むものの、各サブブロックに対して個別のモデルを有することは必要ではない。モデル772は、「兄弟（sibling）」ブロック758、759の間で共有される。この共有をサポートするために、構造750は、「マージモデル」を含み、ここで、759等の所与のブロックに、近隣のブロック（例えば758）のモデルを使用することを示すことが可能となる。そのようなアプローチはまた、メモリ206に格納される必要のある、複数のモデル、すなわち係数における削減を許容する。ブロックは、例えば、関連付けられた領域は有効なYlinearCbCr 値を有さないことから、それに関連付けられたモデルを有さなくても良い。図7Bの例では、ブロック760は関連付けられたモデルを有さない。
【００６３】
モデルは、入力値（すなわち、Ylinear、Cbおよび Cr）を出力のY値にマップするために使用される。各モデルは、複数の係数（coefficient）を含む。「2次（second order）」のモデルでは、7つの係数が、以下の式（2）に従うモデルに入力される。
0006472429.tif 000003
ここで、Yfinalは、出力のYのLuma値であり、a, b, c, d, e, f およびgは、領域に関連付けられた、モデル入力係数であり、 Ylinear、 Cb およびCrは、領域内における点の座標である。
【００６４】
線形のモデル（すなわち、係数 a, c および eは常にゼロを有する）は、反復のループに存在する伝達関数の非常に非線形な性質により、Lumaサンプル調整器600がもたらす比較的不十分な関数の近似を提供する。2次（すなわち、2次式）の項（terms）の導入により、改良されたモデリングが可能となる。そのように、2次のモデルを用いてLumaサンプル調整器600の接近した近似（close approximation）を得るために必要な複数の領域は、線形のモデルに対するケースよりも小さい。2次式の項を実装するために、追加的な乗算ロジックの存在はトレードオフである。3次または4次を含むより高い次数のモデルを用いて実験が行われたが、追加的な改善は、追加的な乗算ロジックの観点、および、各モデルに関連付けられる係数の増加した数のための保管の観点において、複雑性の増加を正当化するのには不十分と見なされた。
【００６５】
図8は、図7Aの八分の階層の領域に関連付けられたモデルを決定する方法を示す。方法800は、（例えば図7Bに示したような）領域の階層、および、各領域に関連付けられたモデルのセットをもたらす。方法800は、ハードディスクドライブ210に存在し、プロセッサ205による実行において制御されるソフトウェアアプリケーションプログラム233の一つ以上のソフトウェアコードモジュールとして実装され得る。
【００６６】
方法800は、初期設定のステップとして、または、個別の時間と位置において（例えば、設計時間において）、実行時間で後の利用のためにメモリ206に格納された結果を伴い、実行され得る。
【００６７】
方法800は、1つの立方体（すなわち、全体の色空間を占める「現在の領域」）としての全体の色空間を検討することにより開始する。方法800は、生成するステップ802で開始し、ここで現在の領域に対してモデルを生成する。検討される領域を占める点（point）のセットは、ステップ802においてプロセッサ205の制御下で試験される。利用可能な点の総数は大量であることから、領域は（例えば、各次元において等しく間隔をとった点を試験することにより）疎らに試験される。なお、点のセットは、領域の全てを占めなくともよい。なぜならば、いくつかのYlinearCbCr 点は、無効（すなわち、有効なR'G'B'入力からもたらされない）であることから達し得ず、無効の点は、モデル生成から除外されるからである。試験された点を用いて、また、Yfinalに対する目標値としてのLumaサンプル調整器600の結果を用いて、領域の係数を導出するために、ステップ802で最小平均二乗アルゴリズムが利用される。プロセッサ205における制御は、その後決定するステップ804へ進む。
【００６８】
決定するステップ804では、プロセッサ205の制御下で、ステップ802で生成されたモデルに対してモデルエラーを決定する。モデルエラーは、図6を参照して説明したように、モデルにより生成される値と反復検索の結果との間の相違の測定値である。モデルエラーの正確な測定値を得るために、モデルが適用する領域内（およびその境界上）の多くの点に対して試験を行う必要がある。したがって、ステップ802からのモデルが、現在検討する領域において、ステップ804における点の更なるセットに適用される。点の更なるセットは、試験の点のセットと一致し得る、または、現在検討する領域のより細かな粒度のサンプリングを表し得る。試験の点のセットの各点に対して、Yfinalの値と現在の点に対するLumaサンプル調整器600からの結果との間の絶対的な差に対応して、エラー値が測定される。また、現在検討する領域に対して、最悪のケースのエラーが、現在検討する領域に対する全体のエラー値として決定される。代替的には、全ての試験される点の平均エラーのような、他の、より厳しい、エラの値が使用され得る。プロセッサ205における制御は、その後エラー閾値試験ステップ806へ進む。
【００６９】
ステップ806では、ステップ804からのエラーが、プロセッサ205の制御下で、閾値と比較される。閾値は、所与のモデルと領域に対する最大の許容エラーを示す所定の値である。一つの構成では、閾値は、丁度可知歪み（just noticeable （JND））の値と等しくなるように選択される。ステップ806において閾値が超える場合、モデルは Yfinalに対して使用可能な値を生成するのに十分でないと見なされる。このケースでは、制御は領域分割ステップ808に進む。それ以外のケースでは、制御は最終領域試験ステップ810に進む。過度の分割を避けるために、分割の最大の許容深度に制限される。このケースでは、最小の許容領域（例えば、64x64x64）が、閾値を超えるエラー値を有する。
【００７０】
領域分割ステップ808において、現在検討される領域は、「八分の階層」に従って、8つのより小さな領域に分割される。8つのより小さい領域は、各次元において半分に現在の立方体の領域が分割されることにより実現される。また、半分にする以外の分割も可能である。その場合、領域の閾値はまた、所与の点が属する領域を後に識別することが可能なようにメモリ206における保存のために、領域分割ステップ808により出力される。方法800は、もたらされる領域のそれぞれに対して呼び出される。ステップ808が完了すると、プロセッサ205における制御はステップ810に進む。
【００７１】
ステップ810において、図7の色空間の体積のいずれに対しても、領域および関連付けられたモデルが割り当てられない場合、方法800は終了する。それ以外の場合は、処理に対する次の領域が選択ステップ812で選択され、プロセッサ205における制御はステップ802に戻る。
【００７２】
方法800は、モデルと領域を決定することを経るので、図7Aの色空間におけるあらゆる点が、当該点が含まれる領域に関連付けられるように、マップが（例えばメモリ206内で）維持される。一様に分割する（すなわち、各領域は各次元において常に等しく分割される）場合は、Ylinear、Cb および Crのそれぞれの最上位ビットを検査することが、YlinearCbCr空間における点の領域を識別するのに十分である。非一様の分割の場合、8分の階層を通じて最終的な領域に落とすために、分割の境界を伴い、YとCbとCr の値を再帰的に比較する必要がある。八分の階層の深さの限度は、所与の点が属する領域を識別する複雑性において、一番悪いケースの限度を定める。方法800の結果として、モデルのセットが生成され、各モデルは、色空間における特定の領域に関連付けられる。決定された方法と関連付けは、メモリ206に格納されるか、リアルタイム実装のための速いアクセスのためのオンチップSRAMに格納され得る。さらに、決定された方法と関連付けは、設計時間において決定され、クロマダウンサンプリングを実行する際に使用するための符号化装置110に格納される。
【００７３】
方法800の一つの構成では、八分の階層における一つの領域は、さらにより小さい領域に分割される領域を含む、「アクティブ領域」フラグに関連付けられる。アクティブ領域フラグは、モデルがアクティブ領域に関連付けられることを示す。点が関連付けられたモデルを有さない領域内にあると決定された場合、関連付けられたモデルを有する最初の上位（ancestor）の領域が使用される。そのように、反復のプロセスが、領域が分割されるべきと決定した場合、もたらされる領域のいくらかは、以前の領域に対して導出されたモデルに対して実質的に改善を行わないとすることが可能である。この場合、子領域は、上位の領域が代わりに使用されることを示すために設定された「アクティブ領域」フラグを有することが出来る。ステップ804からのエラーが領域のうちのごく一部においてしばしば集中する場合に、この状況は起こり、領域をサブ領域に分割するための要件は、領域のうちのごく一部における改善だけとなり得る。上位の領域を使用することにより、領域に関連付けられたモデルもサブ領域により使用されることから、かなり多くのモデルをメモリ206に格納する必要は低減する。そのような構成により、必要なモデルの数が削減されることから、係数の保管のために消費するメモリが削減される。
【００７４】
図9は、クロマダウンサンプラ116の概略的なブロック図を示す。クロマダウンサンプラ116は、YCbCr入力データをとるフレーム300の各サンプルにおいて動作する。図9においてわかるように、輝度ドライバモジュール901は、YCbCr入力データの画像の線形の輝度を決定する。しかしながら、輝度を取得するために、「Y」チャネルだけを考慮するのでは不十分である。CbチャネルとCrチャネルも考慮する必要がある。輝度ドライバモジュール901の出力は、線形の光のレベルを表し、そのため、整数の精度を用いて完全にサポートされたダイナミックレンジ（例えば、PQに対して10000まで）の符号化となり得る。クロマダウンサンプラ116の一つの構成において、輝度ドライバモジュール901の出力はPQ伝達関数を用いてそれ自身が符号化される。
【００７５】
領域識別モジュール902は、YlinearCbCr色空間において、所与のクロマサンプルがどの領域に属するかを決定する。領域識別モジュール902への入力は、輝度ドライバ901からの線形の光の値であり、クロマサブサンプラモジュール912からのサブサンプリングされたクロマサンプルである。クロマサブサンプラモジュール912は、「鋭さ（sharpness）」（すなわち、周波数領域におけるロール・オフ）の異なる度合いを有する様々なフィルタを提供することが可能である。クロマサブサンプラモジュール912からのサブサンプリングされたクロマ出力は、その後、クロマアップサンプラモジュール914に渡される。
【００７６】
クロマアップサンプラモジュール914は、4:2:0クロマフォーマットから4:4:4クロマフォーマットへクロマをアップサンプリングするための補間フィルタを適用する。クロマ再サンプリングフィルタヒントSEIメッセージを用いて、符号化されたビットストリーム132において、特定のフィルタがシグナリングされる。結果として、クロマアップサンプラモジュール914から出力されるアップサンプリングされたクロマサンプルは、復号された4:4:4クロマフォーマットビデオデータ172に対応する。また、線形の光の値Ylinearとともに、アップサンプリングされたクロマが、八分の階層において点を識別するために使用される。八分の階層における非一様な分割に対して、八分の階層における点は、各コードワードに対して降順に最上位のビットを検査することにより識別され、サンプルが属する領域を決定する。結果は、領域識別子（ID）であり、それは、モデルマッパーモジュール904に渡される。領域識別モジュール902はまた、領域の境界を生成する。領域の境界は、単純に、コードワードの深さによりもたらされる3次元の空間上の領域の座標である。
【００７７】
モデルマッパーモジュール904は、領域IDをモデル識別子（ID）にマッピングするルックアップテーブル（LUT）を生成する。LUTは、複数の領域に対して同じモデルを有することを許容する。いくつかの構成において、領域IDとモデルIDとの関係は、一対一対応の関係である。領域IDとモデルIDとの関係が一対一対応の関係である構成において、モデルマッパーモジュール904は、当該モジュール904から何ら機能性が供給されないため、効果的に考慮されない、または、存在しない。
【００７８】
他の構成において、領域IDは、サポートされる八分の（または立方体の）一番小さいサイズであり、より大きい効果的な領域が、単一のモデルID値に複数の領域ID値をマッピングすることにより得られる。領域IDがサポートされる八分の（または立方体の）一番小さいサイズの構成により、一番小さい8分のサイズのそれぞれに対するモデルを格納することと比較してより少ないモデルが格納されるため、メモリの消費が削減されるという利益がもたらされる。
【００７９】
モジュール904の構成では、領域がそれに関連付けられたモデルを有さない場合、モジュール904は、親領域からのモデルを使用し得る。
【００８０】
モデルLUTモジュール906は、モデルIDを介して選択可能な、各モデルに対する係数を有する。一般的に、モデルLUTモジュール906は、速いアクセス（例えば、符号化装置110の画僧レート）でオンチップSRAM内にも構成され得るが、モデルLUTモジュール906は、メモリ206内に構成される。
【００８１】
領域オフセットモジュール908は、選択された領域（すなわち、領域識別モジュール902により生成された領域の境界に関連する領域）内でYlinearCbCr点のオフセットを決定する。当該オフセットは、各次元（すなわち、Yregion、 Cbregion、 Crregion）における領域（立方体）の境界に関連する各次元（Ylinear、CboffsetおよびCroffset)）におけるオフセットである。入力は、サブサンプリングされたクロマサンプルおよびYlinearである。
【００８２】
もたらされるオフセットは、Lumaサンプルドライバ910へ渡され、当該オフセットに、モデルLUT906からのモデル係数が適用される。2次モデルを使用することにより、出力Yfinalを導出するために、以下の式（3）がもたらされる。
0006472429.tif 000004
【００８３】
一般的に、Lumaサンプルドライバ910は、複雑性を低減するために、整数演算を用いて実装される。よって、最終的な値を、コードワードのビット深度によりもたらされる正規化した範囲に拡大縮小するためのビットシフトも存在する。Yfinalのビット深度は、ビデオ符号器118のビット深度に合致する。しかしながら、中間データ（すなわち上記の（3）の評価からの結果）に対するビット深度は、中間の結果の精度の低下によるエラーを低減するために、ビデオ符号器118のビット深度よりも広いものとなる。4:2:0クロマフォーマットを使用する場合、クロマダウンサンプラは、出力サンプルのペア（すなわち、一つのCbサンプルと一つのCrサンプル）を生成するために、一般的に2x2 Cb入力サンプルと 2x2 Cr入力サンプルに適用される。クロマダウンサンプラは、サブサンプリング動作の選択したフィルタタップ係数に基づいて、2x2より広いエリアからCbサンプルとCrサンプルのソースセットを取る。
【００８４】
クロマダウンサンプラモジュールの残りのモジュールは、画素レートにおいて動作し、ここで、4:2:0におけるYCbCrのケースでは、Yサンプルが到着するレートに対応する。クロマダウンサンプラ116において、各画素の「正しい（true）」または意図される輝度は既知であり、この情報は、最終的なYサンプル出力を調整して、ダウンサンプリングされたCbサンプルとCrサンプルにおいて存在し、4つのLumaサンプル間で共有される残りの輝度情報に対して適合させるために使用される。
【００８５】
図10は、クロマダウンサンプリングを実行するための方法1000を示す。方法1000は、ハードディスクドライブ210に存在し、符号化装置110を実装するソフトウェアアプリケーションプログラム233の一つ以上のソフトウェアコードモジュールとして実装され得る。 
【００８６】
方法100は、図9を参照して説明したような、ハードウェアモジュールに対する例で説明される。しかしながら、図10のステップはまた、制御フローを示し、ここで、図9のモジュールがソフトウェアルーチンとして実装される。方法1000は、図3Aのフレーム300等のフレームにおける各Lumaサンプルに対して呼び出される。方法1000は、クロマダウンサンプリングされた4:2:0YCbCrビデオデータをビットストリームに符号化するために、4:4:4RGBビデオデータからLuma値を決定するために使用され得る。
【００８７】
方法1000は、フレーム300を参照した例で説明される。方法1000は、線形の輝度を決定するステップ1001で開始し、ここで、線形の輝度の値Ylinearが決定される。線形の輝度は、プロセッサ205の制御下で、輝度ドライバ901により決定される。線形の輝度は、クロマダウンサンプラ116への所与の画素入力（例えば、4:4:4クロマフォーマットにおけるYCbCrデータ）に対して決定される。線形の輝度は、YCbCrデータをR'G'B'に変換することにより決定され、RGBを生成するために各要素にPQ-EOTFを適用する。RGBはその後 CIE1931 XYZに変換される。最終的なXYZの値について、輝度だけがさらに考慮される。プロセッサ205における制御は、その後サブサンプリングされたクロマ値を決定するステップ1002へ進む。
【００８８】
ステップ1002では、クロマダウンサンプラ912は、プロセッサ205の制御下で、4:2:0クロマフォーマットにおけるCbサンプルとCrサンプルの形式でサブサンプルされたクロマ値と生成するために、クロマフォーマットにおけるCbサンプルとCrサンプル上でサンプリング動作を行う。ステップ1002は、単純な線形フィルタの適用を通じて達成され得る。また、ステップ1002では、クロマサンプル値が続くことを考慮する場合、一般的には、より鋭いロール・オフを有する、より複雑な（すなわち、より多くのフィルタタップの）フィルタが、あるクロマ値から別のクロマ値への遷移を加速するために使用され得る。そのような加速は、実際は4:4:4ビデオデータにおいて存在しない「新しい」色を表す中間のクロマサンプル値の量を削減するために有益である。方法1000は、各Luma（Y）サンプルに対して呼び出されるが、ステップ1002は、Lumaサンプルの全 2x2グループに対して実行され得る。例えば、図3Aの例において、ステップ1002の結果は、Lumaサンプル302のグループ間で共有される。プロセッサ205における制御は、その後アップサンプリングされたクロマ値を決定するステップ1003へ進む。
【００８９】
ステップ1003では、クロマアップサンプラモジュール914は、プロセッサ205の制御下で、アップサンプリングされたクロマ値を決定する。定義されたクロマアップサンプリングフィルタのセットが、クロマサブサンプラ912からの4:2:0ビデオデータを4:4:4ビデオデータに変換するために適用される。クロマアップサンプラ914から出力された4:4:4ビデオデータは、中間の4:2:0表現からもたらされる損失により、クロマサブサンプラ912に入力された4:4:4ビデオデータとは異なる。クロマアップサンプラ914において適用されたフィルタリングは、符号化されたビットストリーム132に存在し、クロマ再サンプリングフィルタヒントSEIメッセージに含まれるシグナリングに一致する。アップサンプラのアプローチの例は、「一番近隣」の双線形（bilinear）フィルタリングを含む。使用されるアプローチにかかわらず、ディスプレイ装置160におけるクロマアップサンプラ164は、クロマアップサンプラモジュール914において使用されるものと同じアプローチを使用するべきである。同じアプローチを使用することにより、Lumaサンプラドライバ910が、ディスプレイ装置160に見られるものと同じクロマサンプル値を用いて動作することが保証される。幾つかのアプリケーションシナリオにおいて、クロマサンプルフィルタは、予め定義され、その場合、符号化されたビットストリーム132におけるクロマ再サンプリングフィルタヒントSEIメッセージを明示的にシグナリングする必要はない。プロセッサ205における制御は、その後色彩点を決定するステップ1004へ進む。
【００９０】
色彩点を決定するステップ1004において、色彩点は、プロセッサ205の制御下で、決定される。ステップ1001で決定されたYlinear値、および、ステップ1002からのサブサンプリングされたクロマ値は、空間linearCbCr（ここでは「色空間」と称するが、YCbCr等の他のよく知られた色空間に直接的に対応する）における点を表す値Yを生成するために、ステップ1004で集められる。色空間は、線形の輝度および非線形の4:2:0クロマ値により定義され得る。
【００９１】
Ylinear 値は、一般的には、浮動小数点の保存の使用を要求する大きいダイナミックレンジを有するように構成される。しかしながら、（例えば、PQ-EOTFの使用で得られるような）圧縮された表現により、整数のフォーマットを使用することが可能となる。4:4:4入力ビデオデータおよび4:2:0出力に対して、ステップ1004は、クロマアップサンプラモジュール914からのアップサンプリングされたクロマサンプルに関連付けられた4つのYlinear 値のそれぞれに適用される。「4:2:2」クロマフォーマットをサポートする構成に対して、サブサンプリングされたCbCr値の一部に関連付けられた2つのYlinear 値が存在し、それに従って、クロマサンプラモジュール912のように、反復が修正される。プロセッサ205における制御は、その後領域を決定するステップ1006へ進む。
【００９２】
決定するステップ1006では、領域識別モジュール906は、プロセッサ205の制御下で、値YlinearCbCrを含む、方法800からもたらされる領域の階層内の領域を決定する。決定された領域は、色空間に配置された複数の領域のうちの一つの領域であり、図8を参照して上述したような関連付けられた複数の係数を有する。プロセッサ205における制御は、その後領域に対するモデルを選択するステップ1008へ進む。
【００９３】
ステップ1008では、モデルマッパー904は、プロセッサ205の制御下で、ステップ1006から識別された領域に関連付けられたモデル識別子（ID）を選択する。モデルIDは、例えばメモリ206内に構成されたモデルの表（table）へのインデックスである。各モデルは、係数のセット（例えば、2次モデルに対する7つの係数）を含む。適用可能なモデルに対する係数は、メモリ206から利用可能であるので、ステップ1006とステップ1008は、所与の領域に対して係数を選択するといえる。プロセッサ205における制御は、その後領域内で色彩点の位置を決定するステップ1010へ進む。
【００９４】
領域内で色彩点の位置を決定する際、領域モジュール908は、プロセッサ205の制御下で、ステップ1006から決定された領域において、色彩点YlinearCbCrの位置（または「オフセット」）を決定する。ステップ1010では、ステップ1006の領域内で、YlinearCbCrの点のオフセットが決定される。オフセットは、Ylinear、CbおよびCrに対応する3次元を有するベクトルである。一般的に、オフセットベクトルの各構成要素の単位は、1つのコードワードである。プロセッサ205における制御は、その後モデルを適用するステップ1012へ進む。
【００９５】
モデルを適用するステップ1012では、モデルLUT906およびLumaサンプルドライバ910が、プロセッサ205の制御下で、ビデオ符号器118による使用のための出力LumaサンプルYfinalを決定するために使用される。ステップ1008からのモデルIDは、モデルLU906からの選択されたモデルにインデックスを付けるために使用される。決定された係数は、Ylinear、CbおよびCrの入力ベクトルからの選択された領域内の空間を、出力のYfinal値にマップするモデルを表す。決定された係数は、検索プロセス（例えば、図8を参照して説明したような反復の最小平均アルゴリズム）の結果であるので、係数により、Yfinalを得るための低速の反復の手法への接近した近似が提供される。その後、Lumaサンプルドライバ910は、モデルの係数をオフセットベクトルに適用する。もたらされる値Yfinalは、関連付けられたCrサンプルとCbサンプルと共に、ビデオ符号器118に渡される。プロセッサ205における制御は、その後Lumaサンプルを符号化するステップ1014へ進む。
【００９６】
Lumaサンプルを符号化するステップ1014では、ビデオ符号器118は、プロセッサ205の制御下で、ステップ1012からもたらされるLumaサンプル値を、符号化されたビットストリーム132へ符号化するために用いられる。ステップ1002からもたらされる、関連付けられた、サブサンプリングされたクロマサンプルも、ビデオ符号器118へ渡される。方法1000は、その後終了する。
【００９７】
方法1000の他の構成を、図11を参照して以下に説明する。 
【００９８】
図11は、中心1110、1112、1114、1116をそれぞれ有する色空間領域1102、1104、1106、1108の例示的な構成1100を示す概略図である。領域1104、1106、および1108は、領域1102に隣接する。YlinearCbCr点1118は、領域1102内に位置する。
【００９９】
図11の構成において、ステップ1006では、領域識別モジュール902は、プロセッサ205の制御下で、値YlinearCbCrを含む、方法800からもたらされる領域の階層内の領域を決定する。ステップ1006において決定される領域は、図11の例において領域1102である。領域識別モジュール906は、プロセッサ205の制御下で、点1118に最も近い領域、図11の例では領域1104、を決定する。次に、領域識別モジュール902は、プロセッサ205の制御下で、点1118から、点1118を含む領域の中心1110、および近接の領域1104の中心1112までの距離L1およびL2を決定するために、近接距離（proximity metric）（例えばユークリッド距離）を、用いる。プロセッサ205における制御は、その後領域のためのモデルを選択するステップ1008へ進む。
【０１００】
図11の構成に対して、領域に対して設定されるモデル入力係数を選択するステップ11108では、モデルマッパー904は、プロセッサ205の制御下で、ステップ1006から識別された領域に関連付けられた全てのモデルのモデルIDを選択する。プロセッサ205における制御は、その後領域内で色彩点の位置を決定するステップ1010へ進む。
【０１０１】
領域内で色彩点の位置を決定するステップ1010において、図11の構成に対して、領域オフセットモジュール908は、プロセッサ205の制御下で、点を含む領域において、色彩点YlinearCbCrの位置を決定する。ステップ1010では、当該含む領域（図11の例では領域1102）内でYlinearCbCrの点のオフセットが決定される。オフセットは、Ylinear、CbおよびCrに対応する3次元を有するベクトルである。一般的に、オフセットベクトルの各構成要素の単位は、1つのコードワードである。プロセッサ205における制御は、その後モデルを適用するステップ1012へ進む。
【０１０２】
モデルを適用するステップ1012では、図11の構成に対して、モデルLUT906およびLumaサンプルドライバ910は、プロセッサ205の制御下で、ビデオ符号器118による使用のための出力LumaサンプルYfinalを生成するために使用される。ステップ1008からのモデル入力係数のセットのIDは、領域1102と1104に関連付けられた係数を取得するモデルLUT906からの選択されたモデルにインデックスを付けるために使用される。次に、Lumaサンプルドライバ910は、領域1102と1104それぞれに対して、2つの結果の値Yfinal-1とYfinal-2を得るために、領域1102と1104に関連付けれたモデルそれぞれを、オフセットベクトルに適用する。モデルLUT906およちLumaサンプルドライバ910は、プロセッサ205の制御下で、その後、Yfinal値を決定するために、以下の式（4）に従って、重み付けされた合計を使用する。
0006472429.tif 000005
【０１０３】
もたらされる値Yfinalは、関連付けられたCrサンプルとCbサンプルと共に、ビデオ符号器118に渡される。プロセッサ205における制御は、その後Lumaサンプルを符号化するステップ1014へ進む。
【０１０４】
図12Aは、RGB色空間1201のYlinearCbCr色空間へのマッピングを示す概略図である。RGB色空間1201の境界1202および1203は、YlinearCbCr色空間の軸1204に揃ってはいない。結果として、八分の階層の領域に関連付けれたモデルを決定する方法800は、ステップ808において、過度な領域分割を実行し得る。他の構成では、図12Bに示すように、YlinearCbCr色空間は、回転され、YlinearCbCr色空間の軸1205は、RGB色空間1201の境界1202および1203と良く揃うものとなる。図12Bの構成において、YlinearCbCr色空間は回転され、方法800により実行される領域分割の数を、モデルエラーを増加させずに削減することができる。それにより、領域に関連付けられるモデルを格納する必要のあるメモリ206の量を削減するにつながる。
【０１０５】
本開示の構成により、例えば4:2:0クロマフォーマットにサブサンプリングされたビデオコンテンツを符号化および復号化するビデオシステムに対して、従来のクロマダウンサンプラに存在する各画素の輝度における偏差を補償することができる。PQ-EOTF等の非常に非線形な伝達関数を用いたHDRアプリケーションに対して、従来のSDRアプリケーションの場合よりも偏差がより顕著である。さらに、本方法は、画素毎の固定の複雑性、および（例えばリアルタイムシステムに対する）ハードウェア実装に見合う複雑性を有して作動する。
【０１０６】
4:4:4クロマフォーマットにおけるソースマテリアル112と、4:2:0クロマフォーマットにおけるビデオデータを符号化するように構成されたビデオ符号器118を伴ったシステムの運用の上述の説明にかからわず、4:2:2等の他のクロマフォーマットにおけるソースマテリアル112も使用され得る。さらに、上位と下位のフィールドを行き来するクロマアップサンプリングフィルタを伴い、インターレースされたフォーマットにおけるソースマテリアル112も使用され得る。
【産業上の利用可能性】
【０１０７】
説明した構成は、コンピュータおよびデータ処理の産業、特に、ビデオ信号等の信号の符号化および復号化のためのデジタル信号のために適用可能である。
【０１０８】
上記では、本発明のいくつかの実施形態のみを説明したが、改良および／または変更も、本発明の範囲および精神を逸脱しない限り、実例となり、制限されない実施形態に対して行うことが可能である。
【０１０９】
本明細書において、「含む／有する（comprising）」は、「主にそれを含むが、必ずそれだけを含む（有する）」という意味ではなく、または、「もつ（having）」または「含む（including）」という意味であるが、「それだけにより構成される」という意味ではない。「comprise」および「comprises」等の「oomprising」の変形の言葉は、相応に、多様な意味を有する。
【図１】
0006472429.tif 000006
【図２Ａ】
0006472429.tif 000007
【図２Ｂ】
0006472429.tif 000008
【図３Ａ】
0006472429.tif 000009
【図３Ｂ】
0006472429.tif 000010
【図４】
0006472429.tif 000011
【図５】
0006472429.tif 000012
【図６】
0006472429.tif 000013
【図７Ａ】
0006472429.tif 000014
【図７Ｂ】
0006472429.tif 000015
【図８】
0006472429.tif 000016
【図９】
0006472429.tif 000017
【図１０】
0006472429.tif 000018
【図１１】
0006472429.tif 000019
【図１２Ａ】
0006472429.tif 000020
【図１２Ｂ】
0006472429.tif 000021