説明

カラー情報データ構造体を使用するイメージ情報の処理の戦略

【課題】イメージ情報を処理する戦略を説明する。
【解決手段】カラー情報はイメージ情報に適用されるカラー関連フォーマッティングを記述する。データ構造体はビデオ処理パイプラインを介して渡され、パイプライン内の各コンポーネントはデータ構造体からカラー情報を引き出して、処理の精度を改善する。各コンポーネントはパイプライン内の他のコンポーネントによる使用のために、前に未知であったカラー情報をデータ構造体に供給する。データ構造体の例示的なフィールドは、ビデオ伝達関数フィールド;原色フィールド;イメージライトフィールド;伝達行列フィールド;公称範囲フィールド;およびビデオクロマサンプリングフィールドのうちの1つまたは複数を含む。伝達行列フィールドを使用してある色空間から別の色空間へイメージ情報を変換する。処理動作をプログレッシブ線形RGBイメージ情報に実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本願は、Stephen J.Estropを唯一の発明者とする2003年8月1日出願の米国特許仮出願第60/492029号明細書、名称「Bandwidth-Efficient Processing of Video Images」の優先権を主張するものである。米国特許仮出願第60/92029号は、参照によりその全体が本明細書に組み込まれている。
【0002】
本願は、Stephen J.Estropを唯一の発明者とする2003年10月27日出願の米国特許仮出願第10/694144号明細書、名称「Bandwidth-Efficient Processing of Video Images」の一部継続出願でもある。米国特許仮出願第10/694144号は、参照によりその全体が本明細書に組み込まれている。
【0003】
最後に、本願は、Stephen J.Estropを唯一の発明者とする同時係属の2002年10月18日出願の米国特許仮出願第10/273505号明細書、名称「Methods and Apparatuses for Facilitating Processing of Interlaced Images for Progressive Video Displays」に関連する。米国特許仮出願第10/273505号は、参照によりその全体が本明細書に組み込まれている。
【0004】
この主題は、イメージ情報の処理の戦略に関し、より具体的な実施形態では、イメージ情報のカラー内容が正しく複製されることを保証する改善された技法を使用するイメージ情報を処理する戦略に関する。
【背景技術】
【0005】
人間の視覚は、非常に低いレベルの光に反応する桿体光受容細胞と、色に反応する錐体光受容細胞に頼る。錐体細胞は、一般に、可視電磁スペクトルの3つの部分すなわち、長波長(例えば、一般に赤に対応する)、中波長(例えば、一般に緑に対応する)、および短波長(例えば、一般に青に対応する)に反応する。したがって、すべての色を、少なくとも3つの異なる色成分の異なる組合せとして表すことができる。一般に、色自体は、スペクトルの可視部分での電磁放射の物理的態様ならびにそのような情報を処理するのに使用される視覚関連「機序」および大脳「機序」の両方からおこる複雑な現象である。例えば、人間の視覚は、光の色(クロマ)成分よりも光の強度に、より反応する。
【0006】
カラーイメージを複製する電子装置は、3タイプの光源を提供することによって、人間の視覚の三色型色覚の性質を補足する。3タイプの光源は、人間の観察者に異なる色として知覚される異なるスペクトル応答を作る。例えば、陰極線管(CRT)は、赤、緑、および青の蛍光体を提供して、異なる色を作成する。他のテクノロジは、蛍光体を使用するのではなく、少なくとも3種類の光を発する光源を使用して、他の形で色を複製する。
【0007】
国際照明委員会(CIE)は、光のスペクトル特徴を異なる知覚される色に写像する包括的なシステムを示した。これに関して、用語「マッチング関数(matching function)」は、各波長の基準ランプの組に対する「平均的な」見る人の統計的に作表された応答曲線(通常は、短波長、中波長、および長波長に対する)を指す。赤、緑、および青について、この関数は、それぞれr(w)、g(w)、およびb(w)と表され、「w」は波長を表す。そのような基準ランプ(または原色)は、色内容を有するイメージ情報を複製する装置によって使用される光源(通常は、モニタ蛍光体)を定義する。用語「色空間」は、原色とマッチング関数の組によって定義される仕様を指す。
【0008】
絶対的な表色は、数学的に、上で説明した形で、色度のタプルを異なる色に写像することができる。しかし、複数の特定のコーディングシステムが、カラーイメージ情報の伝送および提示など、実世界の応用例に適用できるより効率的なコーディング方式を保証するために開発された。産業界が最初に直面した実世界の応用例は、アナログテレビジョン信号の放送および提示であった。より最近の応用例に、TCP/IPネットワーク(例えばインターネット)などのネットワークを介するデジタルビデオ情報の伝送および提示が含まれる。さらに、産業界は、標準品位(SD)ビデオ情報に加えて、高品位(HD)ビデオ情報の伝送および提示に対処する。したがって、コーディングシステムの特徴は、しばしば、ある時に産業界が直面したある問題までさかのぼることができる。
【0009】
手法が何であれ、コーディングシステムは、カラー内容を有するイメージ情報を複製する際に生じる問題の共通の組に対処する。次の議論で、コーディングシステムがある形で対処する可能性が高い一般的な問題の概要を示す(用語法に関して、用語「イメージ情報」は、この開示で、ユーザに表示できるすべての情報を表すのに使用される。この用語は、静止画像情報および動画ビデオ情報の両方を含むように広義に使用される)。
【0010】
・ 色空間と関連する考慮事項
色は、3つの成分を使用して指定することができる。離散色成分を使用するカラー内容の伝送に頼るイメージストリームを、コンポーネントビデオと呼ぶ。一般的なコーディング手法の1つでは、赤、緑、および青(RGB)成分を使用して色を指定する。より形式的には、RGB成分は、所与のスペクトルと知覚的に同等の色を作る基準ランプの比例する強度を記述する。例えば、R成分は、
【0011】
【数1】

【0012】
によって定義することができ、ここで、L(w)は、所与のスペクトルに対応し、r(w)は、色空間のマッチング関数r(w)に対応する。一般に、RGB色空間は、その原色および白色点に関連する色の値によって指定することができる。白色点は、基準白色に関連する色度を指す。
【0013】
コンピュータモニタは、一般に、RGBモデルを使用して、ユーザにカラー内容を提示する。しかし、RGBコーディングモデルは、イメージ情報の伝送に関する非効率的な選択肢である可能性がある。したがって、イメージ情報は、一般に、RGB以外のあるコーディングモデルを使用してターゲット装置に伝送される。受け取りの際に、イメージ情報を、例えば3×3アフィン行列を使用して、表示のためにRGB色空間に変換することができる。下の見出し「ガンマの考慮事項」で説明するように、各R、G、またはBの成分データを、R’、G’、およびB’値と称する、ガンマ補正前の形に関して表現することもできる(一般に、規約により、アクセント記号は、この開示では非線形情報を表す)。
【0014】
これに関する一般的な方策は、輝度関連成分(Y)およびクロマ関連成分の参照によって色を定義することである。輝度は、一般的に、光の知覚される強度(明るさ)を指す。輝度を、ガンマ補正前の形(下の「ガンマの考慮事項」で説明する形)で表現して、「ルマ」(Y’)と称する非線形の対応物を作ることができる。クロマ成分は、ルマに関するイメージ情報の色内容を定義する。例えば、デジタル領域で、記号「Cb」は、差B’−Y’のnビット整数のスケーリングされた表現(通常は、8ビット値で−127...128の範囲から)に対応し、記号「Cr」は、差R’−Y’のnビット整数のスケーリングされた表現に対応する。記号「Pb」は、Cbのアナログ対応物を指し、記号「Pr」は、Crのアナログ対応物を指す。記号「Pb」および「Pr」は、公称範囲[−0.5...0.5]を有するCbまたはCrのデジタルな正規化された形を指すこともできる。CbCrおよびPbPrによって定義されるコンポーネントイメージ情報は、非線形情報を表す時に、形式的にアクセント記号をつけることができる(例えば、Cb’Cr’およびPb’Pr’)。
【0015】
カラー内容は、コンポジットビデオ(上で説明したコンポーネントビデオではなく)として通信することもできる。コンポジット信号では、ルマ情報とクロマ情報が1つの信号に組み合わされる。例えば、コーディングシステムY’UVで、Uは、B−Yのスケーリングされたバージョンを表し、Vは、R−Yのスケーリングされたバージョンを表す。このルマ成分およびクロマ成分が処理されて、単一の信号が提供される(例えば、NTSC(National Television System Committee)フォーマットまたはPAL(Phase Alternate Line)フォーマットで示される形で)。コーディングシステムY’IQでは、U成分およびV成分を指定された形で変換することによって形成される、もう1つのコンポジットコーディングシステムが定義される。一般に、産業界は、歴史的に、Y関連色空間(Y’CbCr、Y’PbPr、YUV、YIQなど)を奨励してきた。というのは、これらの色空間でカラーイメージ情報を減らすことが、RGB色空間で表現されたイメージ情報と比較してより簡単に実行できるからである。
【0016】
一般に、1つまたは複数の行列アフィン変換を使用することによって、カラー内容をある色空間から別の色空間に変換することが可能である。より形式的にいえば、条件等色の特性によって、マッチング関数の別の組に関して、色空間係数のある組を表すことが可能になる(「条件等色を示す色」は、色空間係数の同一の組に写像され、したがって知覚的に同一に見える、すなわち、同一の色のように見える2つのスペクトルを指す)。
【0017】
・ ガンマの考慮事項
陰極線管(CRT)は、線形の応答伝達関数を有しない。言い換えると、CRTに印加される電圧とCRTによって作られる結果の輝度の関係は、線形関数を定義しない。より具体的に言うと、CRTの予測された理論的応答は、5/2のべきに比例する応答を有する、すなわち、所与の入力電圧「V」について、CRTの結果の輝度「L」は、L=V2.5として計算される。
【0018】
応用例では、イメージ情報のソース(ビデオカメラなど)が、一般に、イメージ情報に伝達関数を適用することによって、イメージ情報を事前に補償する。「伝達関数」は、おおむね、CRT輝度応答の逆関数である。ソースで印加されるこの伝達関数(一般に、エンコーディング伝達関数(encoding transfer function)と称する)が、「ガンマ補正された」非線形イメージ情報を作る。この非線形信号がディスプレイデバイスを通過する時に、線形輝度が作られる。上で説明した表記によれば、非線形(または事前に補償された)イメージ情報が、そのコンポーネントにアクセント記号をつけることによって、例えばY’Cb’Cr’によって表される。
【0019】
イメージ情報を非線形の(補償された)形で伝送することが一般的である。受け取る装置のプレゼンテーションデバイス(例えば、CRT)は、それに固有の非線形性に起因して、エンコーディング伝達関数を補足して、消費に適当に変換されたカラー内容を提供する。
【0020】
エンコーディング伝達関数の指数を調整して、その下でイメージ情報が見られる可能性が高い条件を考慮に入れることが一般的である。例えば、普通のテレビジョンで表示されるビデオ情報は、通常は、家庭のセッティングで一般的な薄暗いビューイング環境で提示されるが、普通のコンピュータモニタに表示されるイメージ情報は、オフィスのセッティングで一般的な明るいビューイング環境で提示される。これらの異なるビューイング環境に、異なる伝達関数調整が適当である。この理由から、テレビジョンビデオソースでは、通常は、イメージ情報が薄暗いビューイング環境で提示されるという組込みの前提に基づく伝達関数が使用される。これは、ソースによって適用される伝達関数が、一般に、CRTの固有の非線形性を少なめに補償することを意味する。
【0021】
もう1つの特殊な考慮事項として、伝達関数を使用するイメージ情報のエンコードは、一般に、その関数の低電圧部分に特殊な近似関数を適用する。すなわち、エンコーディング技法は、一般に、イメージングセンサのノイズの影響を減らすために、この部分に線形セグメントを提供する。このセグメントを、定義された「トウスロープ(toe slope)」を有する「リニアテール(linear tail)」と称する。
【0022】
・ ルマ情報に関するクロマ情報のサンプリングおよびアライメント
上で注記したように、人間の視覚は、光の色成分よりも光の強度に反応する。コーディングシステムは、この事実を利用して、コーディングされるクロマ(Cb’Cr’)情報の量を、ルマ情報(Y’)の量に関して減らす。この技法を、クロマサブサンプリングと称する。一般にL:M:Nと表される数値表記を使用して、このサンプリング戦略を表すことができ、ここで、「L」は、ルマ成分(Y’)のサンプリング基準要因を表し、「M」および「N」は、ルマサンプリング(Y’)に関するクロマサンプリング(例えば、それぞれCbおよびCr)を指す。例えば、表記4:4:4は、ルマサンプルごとに1つのクロマサンプルがあるY’CbCrデータを表すことができる。表記4:2:2は、2つのルマサンプルごとに1つのクロマサンプルがある(水平方向で)Y’CbCrデータを表すことができる。表記4:2:0は、ルマサンプルの2×2クラスタごとに1つのクロマサンプルがあるY’CbCrデータを表すことができる。表記4:1:1は、4つのルマサンプルごとに1つのクロマサンプルがある(水平方向で)Y’CbCrデータを表すことができる。
【0023】
コーディング戦略がクロマ情報より多くのルマ情報を提供する状況では、デコーダが、供給されるクロマ情報に基づいて補間を実行することによって、「欠けている」クロマ情報を再構成することができる。より一般的にいえば、ダウンサンプリングは、イメージサンプルの最初のセットと比較してより少数のイメージサンプルを作るすべての技法を指す。アップサンプリングは、イメージサンプルの最初のセットと比較してより多数のイメージサンプルを作るすべての技法を指す。したがって、上で説明した補間は、あるタイプのアップサンプリングを定義する。
【0024】
コーディング戦略は、クロマサンプルを、対応するルマサンプルと空間的に「アライン」する形も指定する。コーディング戦略は、これに関して異なる。ある戦略は、クロマサンプルがルマサンプルの「上」に直接に位置決めされるようにルマサンプルにクロマサンプルをアラインする。これを、コサイティング(cositing)と称する。別の戦略では、ルマサンプルの2次元アレイ内の間隙の空間にクロマサンプルを位置決めする。図10〜12(下で順番に説明する)に、ルマ情報およびクロマ情報を提示する、異なるサンプリング戦略およびアライメント戦略を示す。
【0025】
・ 量子化の考慮事項
量子化は、色成分の信号振幅に離散数値を割り当てる方法論を指す。デジタル領域では、数値が、指定されたステップ数の色空間値の指定された範囲(色域)にまたがる。例えば、各成分値を記述するのに255ステップを使用することが一般的であり、各成分が、0から255までの値をとることができる。8ビットを使用して各色値を表すことが一般的であるが、色を、より高い精度で(例えば、10ビットなど)ならびにより低い精度で表すこともできる。
【0026】
コーディング戦略は、しばしば、それぞれバックレベルおよび白レベルを表すために、量子化レベルの範囲の両端の部分を割り当てる。すなわち、コーディング戦略は、しばしば、基準黒レベルおよび基準白レベルを定義するが、基準黒レベルおよび基準白レベルを超えてスイングする値を表すために、これらの基準レベルを超えるコーディングレベルも割り当てる。例えば、8ビットコーディング戦略で、レベル16を黒に、レベル235を白に割り当てることができる。16未満の残りのレベルが、いわゆる「トウルーム(toe room)」を定義し、235を超える残りのレベルが、いわゆる「ヘッドルーム(head room)」を定義する。
【0027】
・ インターレース表現対プログレッシブ表現の考慮事項
従来のテレビジョン信号は、インターレース式にスキャンされる。インターレースでは、ビデオフレームの最初のフィールドが、取り込まれ、その直後に、ビデオフレームの第2フィールドが続く(例えば、その1/50秒または1/60秒後に)。第2フィールドは、わずかな量だけ第1フィールドに対して垂直にオフセットしており、第2フィールドが、第1フィールドの走査線の間の隙間のスペースにある情報を取り込むようになっている。いわゆるボブインターレースが、インターリービング戦略の既知のタイプの1つである。完全なビデオフレームは、第1フィールドと第2フィールドを素早く連続して提示し、その結果、これらが人間の見る者に情報の単一のフレームとして知覚されるようにすることによって構成される。
【0028】
しかし、コンピュータモニタおよび他のプレゼンテーション機器は、インターリーブされた形ではなく、プログレッシブな形でイメージ情報を表示する。したがって、装置が、インターレース式情報をコンピュータモニタに提示するためには、反対のフィールドのデータを補間することによって、インターレース式フィールドレートでプログレッシブフレームを表示しなければならない(「デインターレース」と呼ばれる処理)。例えば、インターレース式フィールドを表示するためには、反対側のフィールドを調べることによって、走査線の間の空間的位置の「欠けている」データを補間しなければならない。ノンインターレース式イメージフォーマットを、「プログレッシブ」フォーマットと称する。
【0029】
上の話題のそれぞれに関する追加情報が、非特許文献1に記載されている。
【0030】
上で説明した複雑さを倍加させることに、産業界は、イメージ情報を表す多数の異なるフォーマット標準規格に適応する。標準規格が、国際電気通信連合(ITU)、欧州放送連合(EBU)(DVBまたはDigital Video Broadcastingを奨励する)、AES(Audio Engineering Society)、ATSC(Advanced Television Systems Committee, Inc.)、映画テレビ技術者協会(SMPTE)、SECAM(Sequential couleur avec mEmoire)、NTSC(National Television System Committee)などを含む複数の組織および委員会によって公布されてきた。
【0031】
これらの組織のそれぞれが、上で説明した可能なコーディングオプションの領域から、コーディング特徴の特定の組合せを切り取った。したがって、本発明人が諒解するところでは、標準規格は、一般に、原色;伝達関数;意図されたビューイング条件;伝達行列;トウルーム仕様およびヘッドルーム仕様;クロマサブサンプリング戦略およびアライメント戦略などの定義および適用に関して異なる。原色は(白色点基準と共に)、標準規格の基本的な色空間を定義する。伝達関数は、標準規格が、線形イメージ情報と非線形情報の間でどのように変換するかを決定する。意図されたビューイング条件は、イメージ情報が消費される可能性が高いビューイング環境に関して標準規格が行う仮定(テレビジョンが薄暗い照明の家庭セッティングで見られるという仮定など)を定義する。ビューイング条件は、イメージ情報の有効なガンマおよび明るさ(黒レベル)およびコントラスト(白レベル)を変化させる。伝達行列は、標準規格が、異なる色空間の間でどのように変換するか(例えば、Y’YbYr色空間からRGB色空間へ)を決定する。ヘッドルーム仕様およびトウルーム仕様は、標準規格が黒色と白色の範囲を表すのに割り当てる量子化レベルを決定する。クロマサブサンプリング戦略およびアライメント戦略は、クロマ情報がサブサンプリングされ、ルマ情報に関して位置決めされる形を指定する。
【0032】
既存の標準規格関連文書に、各標準規格の要件が精密に詳細に記載されている。代表的な標準規格に、下記が含まれる。
・ ITU−R勧告BT.470は、アナログモノクロームテレビジョン装置に関する仕様を提供する国際標準規格である。
・ ITU−R勧告BT.601は、イメージ情報のスタジオデジタルコーディングを定義する国際標準規格である。この標準規格では、イメージ情報のY’CbCrコーディングが使用される。
・ ITU−R勧告BT.709は、高品位ビデオ情報のスタジオコーディングを定義する国際標準規格である。高品位(HD)コンテンツは、標準品位(SD)より高いビデオコンテンツを表し、通常は、1920×1080、1280×720などである。
・ SMPTE 170Mは、コンポジットアナログビデオ情報(例えば、NTSC)のコーディングを定義する標準規格である。
・ SMPTE 240Mは、アナログ高品位ビデオ情報のコーディングを定義する標準規格である。
・ IEC 61966−2−1(sRGB)は、8ビット量子化方式を使用する255レベルへのイメージ情報のコーディングに関する標準規格である。
・ IEC 61966−2−2(scRGB)は、sRGBの線形形式を定義する標準規格であり、sRGBの色域を大きく拡張する。
・ ISO/IEC 13818(MPEG−2)は、圧縮形式でのオーディオ信号およびビデオ信号のコーディングに関する標準規格である。
・ ISO 10918−1(JPEG)は、静止画像情報のロッシイ圧縮に関する標準規格である。
【0033】
現在使用されているコーディング標準規格の高い多様性は、イメージ情報のコーディング、伝送、および処理の複数の問題に寄与する。概要として、特定の装置に関連するビデオ処理パイプラインは、しばしば、定義されたフォーマッティングを有する特定のタイプの信号を処理するように設計され、この制限された役割において、これらの装置は、信頼できる形でそのようなイメージ情報を正しく処理することができる。しかし、現在使用されているイメージ情報のより広い世界という文脈では、これらの装置は、他の種類のイメージ情報のカラーフォーマッティングを解釈する機構およびパイプラインを介してこのフォーマッティング情報を信頼性のある形で伝搬させる機構を欠く可能性がある。より正確にいえば、ビデオパイプラインは、受け取られたイメージ情報に適用されたカラーフォーマッティングのある態様を定義する情報を受け取ることができるが、本発明人の諒解するところでは、これらのビデオパイプラインは、パイプラインを通ってパイプラインの下流コンポーネントにこのカラー情報を信頼できる形で伝搬させる適切な機構を欠く場合がある。その結果、そのようなフォーマッティング情報は、「失われる」か「捨てられる」。下流コンポーネントは、フォーマッティング情報を「推測」することによって、カラーフォーマッティングに関する情報の不足に対処することができる。コンポーネントが、不正に推測する時に、そのパイプラインは、準最適または不正な形でイメージ情報を処理する。
【0034】
図1は、上の潜在的な問題をさらに説明するための媒体として提示されるものである。図1に、ビデオ処理パイプライン100の高水準表現を示す。パイプライン100に、入力ステージ102、処理ステージ104、および出力ステージ106によって定義される従来の処理ステージが含まれる。入力ステージ102で、入力ソース108が、イメージ情報の任意のソースを表す。ソース108に、一般に、新たに取り込まれたイメージ情報(例えば、カメラまたはスキャナによって作成された)、またはあるチャネルを介して入力ステージ102に提示される以前に取り込まれたイメージ情報(例えば、ディスクから、IPネットワークを介してなどで受け取られる)を含めることができる。前者の場合に、キャプチャ処理機能性110が、ソース108から受け取られるイメージ情報に対するすべての種類の予備処理を実行することができる。後者の場合に、デコーダ機能性112が、イメージデータを作るためのすべての種類のストリームベース情報抽出および圧縮解除を実行する。一般に、そのような処理に、受け取られた情報のイメージ情報をオーディオ情報から分離すること、情報を圧縮解除することなどを含めることができる。処理ステージ104に関して、処理機能性114が、イメージ情報の複数のストリームを一緒にコンポジット信号にミキシングすることなど、結果のイメージ情報に対するすべての種類の処理を実行する。出力ステージに関して、出力処理機能性116は、出力デバイス118への出力に備えた、処理されたイメージ情報に対して実行されるすべての種類の処理を表す。出力デバイス118は、テレビジョン、コンピュータモニタなどを表すことができる。出力デバイスは、ストレージデバイスも表すことができる。さらに、出力「デバイス」(または出力処理機能性116)は、デバイスへのストレージまたはネットワークを介する配布のために情報を準備する、圧縮およびフォーマッティングの機能性(マルチプレクサなど)を提供することができる。
【0035】
図1の一番下の行に、既知のシステムの上で説明した欠陥を要約する。ブロック120は、パイプライン機能性(110、112、114、116)が、入力信号に印加されたカラーフォーマッティングを正確に解釈できず、かつ/またはパイプラインを介して下流コンポーネントにカラー情報を信頼できる形で伝搬できないことを示す。例えば、パイプライン100が、指定されたフォーマットを使用してコーディングされたイメージ情報を受け取る場合がある。受け取られた情報に、使用されたフォーマッティングの特徴を識別するフィールドが含まれる場合があり、あるいは、これらの特徴を、受け取られた情報の他のテルテールプロパティに基づいて演繹することができる。しかし、使用される多数の標準規格のゆえに、パイプライン100の最初のステージに、この情報を正しく解釈し、ビデオパイプライン100内の下流コンポーネントに渡す機能性が欠けている。その結果、このコーディング情報が、即座に失われる。これは、イメージ情報が、下流コンポーネントがこのイメージ情報(本質的に1と0だけである)をどのように解釈すべきかに関するガイドラインなしで下流パイプラインコンポーネントに渡される状況をもたらす可能性がある。
【0036】
ブロック122は、ビデオパイプライン100が上の問題を扱う形を表す。すなわち、イメージ情報内のカラー内容を解釈する方法に関するガイドランを有しない機能コンポーネントは、しばしば、それを解釈する方法を「推測」する。推測は、正確な場合とそうでない場合がある。例えば、ビデオパイプラインは、イメージ情報に適用された伝達関数(多分イメージサイズに基づいて)、イメージ情報に固有のライティング条件仮定、イメージ情報によって使用されるクロマサブサンプリング方式(データフォーマットに基づいて)などに関する仮定を不正確に行う可能性がある。
【0037】
ブロック124は、不正な推測の潜在的な結果を表す。すなわち、不正な推測は、準最適表示品質または不正な表示品質をもたらす可能性がある。イメージプレゼンテーションが、「不自然な」色またはモーションアーチファクトを有するように見える可能性がある。あるいは、不当に「コントラストが強い」、歪んでいる、不正にクロッピングされて見えるなどの可能性がある。
【先行技術文献】
【非特許文献】
【0038】
【非特許文献1】Charles Poyton's well-regarded Digital Video and HDTV
【発明の概要】
【発明が解決しようとする課題】
【0039】
したがって、カラー内容を有するイメージ情報を処理するより満足な技法の必要がある。
【課題を解決するための手段】
【0040】
1つの例示的な実施形態によれば、指定されたフォーマットで表されたカラー内容を有するイメージ情報を処理する方法が説明される。この方法には、(a)前記指定されたフォーマットの少なくとも1つの態様を定義するカラー情報を含むカラー情報データ構造体を提供することと、(b)前記イメージ情報を処理するのに使用される少なくとも1つの機能コンポーネントに、前記イメージ情報と共に前記カラー情報データ構造体を渡すことと、(c)前記カラー情報データ構造体内の前記カラー情報に基づいて、前記少なくとも1つの機能コンポーネントで前記イメージ情報を処理することとを含むことを特徴とする方法が含まれる。
【0041】
もう1つの例示的な特徴によれば、カラー情報データ構造に、(a)線形イメージ情報を非線形イメージ情報に変換し、かつ/またはその逆を行うのに使用される伝達関数に関する情報を伝えるビデオ伝達関数フィールドと、(b)前記イメージ情報に関連する原色を伝える原色フィールドと、(c)前記イメージ情報に関連する所期のビューイング条件を伝えるイメージライトフィールドと、(d)前記イメージ情報の前記色空間を変更するのに使用できる伝達行列フィールドと、(e)前記イメージ情報に関連する潜在的なトウルームおよびヘッドルームに関する情報を伝える公称範囲フィールドと、(f)前記イメージ情報内のクロマサンプルが関連するルマサンプルに関してサンプリングされ、アラインされる形を示すビデオクロマサンプリングフィールドとが含まれる。
【0042】
もう1つの例示的な特徴によれば、上述の少なくとも1つの機能コンポーネントは、ビデオ処理パイプラインを定義する機能コンポーネントの群に属し、前記カラー情報データ構造体は、下流機能コンポーネントによる使用のために前記ビデオ処理パイプラインを介して渡される。
【0043】
もう1つの例示的な特徴によれば、上述の少なくとも1つの機能コンポーネントは、さらに、前記指定されたフォーマットの少なくとも1つの他の態様を判定し、前記少なくとも1つの他の態様を前記カラー情報データ構造内の少なくとも1つの未知のフィールドに追加する。
【0044】
もう1つの例示的な特徴によれば、前記カラー情報データ構造体の上述の渡しは、既存データ構造体の未使用フィールドで前記カラー情報データ構造体を渡すことを含む。
【0045】
もう1つの例示的な特徴によれば、この方法は、さらに、前記少なくとも1つの機能コンポーネントは前記カラー情報データ構造体を処理する能力を有することを示すフラグをセットすることを含む。
【0046】
(a)イメージ情報の主ビデオストリームを提供することと、(b)イメージ情報のビデオサブストリームを提供することと、(c) カラー情報データ構造体で指定されたカラー情報に基づいて、指定された色空間内で表される出力ビデオ情報を作るために、前記主ビデオストリームおよび前記ビデオサブストリームを用いる少なくとも2つのタスクを実行することとを含む、イメージ情報を処理するもう1つの例示的な方法を説明する。
【0047】
(a)ルマ関連色空間の入力イメージ情報をRGB関連色空間内の線形イメージ情報に変換することと、(b)処理された情報を作るために、前記RGB関連色空間内の前記線形イメージ情報に対する処理を実行することと、(c)前記処理された情報をルマ関連色空間内の非線形イメージ情報に変換することとを含む、イメージ情報を処理するもう1つの例示的な方法を説明する。
【0048】
上述した方法のもう1つの例示的な特徴によれば、前記変換は、前記処理動作の前に、前記入力イメージ情報をインターレースフォーマットからプログレッシブフォーマットに変換することと、処理の後に、前記処理された情報をプログレッシブフォーマットからインターレースフォーマットに変換することとを含む。
【0049】
追加の例示的実施形態を、次に説明する。
【図面の簡単な説明】
【0050】
この開示および図面の全体を通じて、同一の符号が、同一の構成要素および特徴を参照するのに使用される。100番台の数は、最初に図1に現れる特徴を参照し、200番台の数は、最初に図2に現れる特徴を参照し、300番台の数は、最初に図3に現れる特徴を参照し、以下同様である。
【図1】例示的なビデオパイプラインとそれに関連する問題を示す図である。
【図2】カラー情報を提供するデータ構造体を処理する機能性を有する改善された例示的なビデオパイプラインを示す図である。
【図3】図2で導入されたデータ構造体を使用してイメージ情報を処理する例示的な方法を示す流れ図である。
【図4】イメージ情報をプログレッシブ線形RGBフォーマットに変換し、その後、そのフォーマットのイメージ情報に対して処理を実行する新規の技法を示すブロック図である。
【図5】図2のシステムで使用される例示的なデータ構造体の概要を示す図である。
【図6】図5のデータ構造体が参照できる様々な例示的なフォーマッティング情報を示す図である。
【図7】図5のデータ構造体が参照できる様々な例示的なフォーマッティング情報を示す図である。
【図8】図5のデータ構造体が参照できる様々な例示的なフォーマッティング情報を示す図である。
【図9】図5のデータ構造体が参照できる様々な例示的なフォーマッティング情報を示す図である。
【図10】図5のデータ構造体が参照できる様々な例示的なフォーマッティング情報を示す図である。
【図11】図5のデータ構造体が参照できる様々な例示的なフォーマッティング情報を示す図である。
【図12】図5のデータ構造体が参照できる様々な例示的なフォーマッティング情報を示す図である。
【図13】図2の全般的な特徴を実施する1つの例示的なシステムを示す図である。
【図14】図13のシステムの動作の例示的な方法を示す流れ図である。
【図15】図13のシステムで使用できる例示的な合成機能性の詳細を示す図である。
【図16】図13のシステムで使用できる例示的な合成機能性の詳細を示す図である。
【図17】図2などに示されたシステムの諸態様を実施する例示的なコンピューティング環境を示す図である。
【発明を実施するための形態】
【0051】
次に、カラー内容を有するイメージ情報の処理を改善する例示的な機構および手続きを説明する。幅広い概要として、この機構および手続きは、イメージ情報に適用されたカラーフォーマッティングに関する情報を取り込むデータ構造体を提供する。この情報を、「カラー情報」と呼び、データ構造体自体は、「カラー情報(CI)データ構造体」と呼ぶ。1つの例示的な事例で、カラー情報に、特に、イメージ情報に関連する次の情報を伝えるフィールドを含めることができる:伝達関数情報;原色情報;ビデオライティング情報;伝達行列情報;公称範囲情報;およびクロマサブサンプリング情報。フィールドのこのグループ化は、制限的ではなく例示的であることを意図されたものである。他の実施形態は、追加のフィールドを含めることができ、上で識別されたあるフィールドを省略することなどができる。
【0052】
ビデオ処理パイプラインは、イメージ情報の処理を容易にする手助けとしてカラー情報を使用する。例えば、カラー情報は、パイプライン内の機能コンポーネントがイメージ情報を変換しなければならない形を指定することができる。さらに、既知のシステムと非常に対照的に、ビデオパイプラインに、パイプラインを介してCIデータ構造体を渡す機能性が含まれ、その結果、パイプライン内の下流コンポーネントが、CIデータ構造体から情報を引き出せるようになる。この備えによって、ビデオパイプラインが、イメージ情報の性質に関する誤った推測を行う可能性が減り、その結果、この備えが、表示されるイメージの品質を改善する潜在能力を有する。
【0053】
もう1つの例示的な特徴によれば、パイプライン内のコンポーネントに、イメージ情報を独立に解釈する機能性を含めることができる。コンポーネントが、カラーフォーマッティングの以前には指定されなかったカラー関連の態様を信頼性のある形で判定できる場合に、そのコンポーネントは、CIデータ構造体にこの情報を追加することができる。この補足カラー情報が、ビデオパイプラインの下流コンポーネントから使用可能になり、この下流コンポーネントが、新しい情報を追加することによってCIデータ構造を補足することができる。したがって、カラー情報データ構造体は、パイプラインを通過し、イメージ情報に適用されるフォーマッティングの異なる特性を演繹できるパイプライン内のコンポーネントから情報を集める際に、より「知識を与える」ものになることができる。
【0054】
もう1つの例示的特徴によれば、カラー情報は、イメージ情報をコーディングするのに使用できる多数の可能なフォーマットに関する情報を伝える「レセプタクル」を提供することを意図されている。したがって、CIデータ構造体は、ビデオパイプラインがあらゆる種類のイメージ情報を受け入れることを可能にし、CIデータ構造体によって伝えられるカラー情報を解釈することによってそれを正しく処理できるようにする、ある種の汎用インターフェースとみなすことができる。
【0055】
もう1つの例示的特徴によれば、CIデータ構造体は、特定の効率的な方式を使用して、異なるフォーマット標準規格に関する非常に様々な情報を少数のビットの情報にパックすることができる。1つの例示的な事例で、このデータ構造体は、非常に様々なカラー情報を少数のワード(例えば、16ビット構造体、24ビット構造体など)にパックする。
【0056】
もう1つの例示的特徴によれば、システムは、ビデオパイプラインで使用される1つまたは複数の既存のデータ構造体で提供される未使用フィールドを使用することによって、CIデータ構造体を伝えることができる。これによって、そのような既存のデータ構造体を使用するシステムが、システムの高価で複雑な再ツーリングなしで、カラー情報を利用できるようになる。さらに、これらのシステムが、CIデータ構造体を処理するように構成されていないが、そのようなシステムに供給される入力情報にCIデータ構造体が存在する場合に、これらのシステムは、システムを「破壊」せずに、CIデータ構造体を安全に無視することができる。
【0057】
もう1つの例示的な特徴によれば、ルマ関連色空間内のインターレース式イメージ情報(例えば、Y’Cb’Cr’)を、線形プログレッシブRGB色空間に変換することができる。その後、様々な処理(再スケーリングなど)を、線形/プログレッシブRGB色空間内でそのイメージ情報に対して実行することができる。その後、イメージ情報を、出力(例えば、テレビジョンでの表示)のために、ルマ関連色空間(例えば、Y’Pb’Pr’)に変換することができる。線形/プログレッシブRGB空間でのルマ関連情報の処理104は、上で要約した形での処理のために中間線形RGB色空間へのイメージ情報の変換104を行わない他の手法からはずれる。
【0058】
他の特徴および付随する利益を、次の詳細な仕様書で詳細に説明する。
【0059】
用語法に関して、用語「イメージ情報」は、なんらかの視覚的な形でユーザが消費できるすべての種類の情報を含むことが意図されている。イメージ情報は、アナログフォーマット、デジタルフォーマット、またはアナログフォーマットとデジタルフォーマットの組合せなど、すべてのフォーマットで表現された情報を表すことができる。イメージ情報は、静止画像情報(例えば、デジタル写真)および/または動く情報(例えば、ビデオ情報)を表すことができる。さらなる変形が、用語イメージ情報の使用によって企図されている。
【0060】
用語「カラー情報」は、イメージ情報のカラー内容を記述するすべての情報を表す。例えば、イメージ情報が、指定されたフォーマットのカラー内容を表す場合に、そのカラー情報は、そのフォーマットに関する情報を伝えることができる。用語「カラー情報データ構造体(CIデータ構造体)」は、カラー情報がビデオパイプライン内でコーディングされ、伝えられる形を指す。
【0061】
用語「ビデオパイプライン」は、イメージ情報を処理するすべての機能性を指す。パイプラインに、連続した形ですなわち次々にイメージ情報を操作する少なくとも2つの機能コンポーネントが含まれる。
【0062】
この開示に、次のセクションが含まれる。セクションAでは、例示的なカラー情報データ構造体と、ビデオパイプライン内でそれが使用される形の概要を説明する。セクションBでは、セクションAのビデオパイプライン内で実行できる例示的な変換動作を説明する。セクションCでは、セクションAで定義されたカラー情報データ構造体の例示的な構成を説明する。セクションDでは、セクションA〜Cで示した原理を実施するビデオパイプラインの1特定の例示的な実施形態を説明する。セクションEでは、セクションA〜Dで説明した特徴の諸態様を実施する例示的なコンピュータ環境を説明する。
【0063】
一般に、この主題の構造的態様に関して、本明細書に記載の機能のすべてを、ソフトウェア、ファームウェア(例えば、固定された論理回路)、手動処理、またはこれらの実施形態の組合せを使用して実施することができる。本明細書で使用される用語「モジュール」、「機能性」、および「論理」は、一般に、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアの組合せを指す。ソフトウェア実施形態の場合に、用語モジュール、機能性、または論理は、1つまたは複数の処理デバイス(例えば、1つまたは複数のCPU)で実行される時に特定のタスクを実行するプログラムコードを表す。このプログラムコードは、1つまたは複数の固定されたおよび/または取外し可能のコンピュータ可読メモリデバイスにストアすることができる。
【0064】
この主題の手続き態様に関して、ある動作を、ある順序で実行される、別個の構成ステップとして説明する。そのような実施形態は、例示的であり、非制限的である。本明細書に記載のあるステップを、一緒にグループ化し、単一の動作で実行することができ、またあるステップを、この開示で示される例で使用される順序と異なる順序で実行することができる。
【0065】
A.例示的なカラー情報(CI)データ構造体およびその適用の概要
図2に、カラー情報(CI)データ構造体202を使用するビデオ処理パイプライン200の例示的な概要を示す。CIデータ構造体202に、イメージ情報204内で色を表すのに使用されるフォーマッティングを記述する情報および/またはイメージ情報204が後にパイプライン200によってどのように処理されなければならないかを記述する情報が含まれる。CIデータ構造体202は、多数の異なるカラーコーディングフォーマットに関するカラー情報を受け取る均一な「レセプタクル」を提供する。CIデータ構造体202は、これによって、ある種類の汎用インターフェースを提供し、パイプライン200が異常のない形で成功裡に処理できるイメージ情報のタイプを拡張する。もう1つの有利な特徴によれば、このビデオパイプライン内のすべての機能コンポーネントが、CIデータ構造体202から引き出すことができ、潜在的に、これらのコンポーネントが演繹できるイメージ情報204に関する新しい情報によってCIデータ構造体202を補足することができる。
【0066】
ビデオパイプライン200自体に、入力ステージ206、処理ステージ208、および出力ステージ210を含む一連のステージが含まれる。入力ステージ206に関して、入力ソース212は、イメージ情報204のすべてのソースを表す。ソース212に、一般に、新たに取り込まれるイメージ情報(例えば、カメラまたはスキャナによって取り込まれる)または、例えば放送伝送を介して受け取られる(例えば衛星送信またはケーブル送信など)、あらゆる種類のネットワークを介して受け取られる(例えばインターネットなどのTCP/IPデジタルネットワークなど)、イメージ情報のローカルストレージを介して受け取られる(ビデオディスク、ローカルデータベースなど)など、なんらかのルートを介して入力ステージ206に提示される、前に取り込まれたイメージ情報を含めることができる。入力処理機能性214は、イメージ情報204に対するすべての種類の予備処理を実行するように構成され、この予備処理は、入力ソース212の性質に応じて異なる可能性がある(例えば、イメージ情報204が新たに取り込まれるか、事前に取り込まれた情報のソースから入力されるかに応じて。前に取り込まれた/ストアされた情報を入力する場合に、処理に、受け取られた信号内のイメージ情報のオーディオ情報からの分離、イメージ情報の圧縮解除などを含めることができる。処理ステージ208に関して、処理機能性216は、ビデオ情報の複数のストリームのコンポジット信号へのミキシング、取り込まれたイメージ情報204に対する色空間変換の実行など、取り込まれたイメージ情報204に対するすべての種類の処理を実行するように構成される。出力ステージ210に関して、出力処理機能性218は、出力デバイス220への出力に備えた、イメージ情報204のすべての処理を実行するように構成される。出力デバイスは、テレビジョン、コンピュータモニタ、ストレージデバイス(リモートとローカルの両方)、すべてのネットワークアクセス可能ターゲット位置などを表すことができる。機能コンポーネント(214、216、218)のそれぞれを、帰するタスクを実行する単一の装置または直列もしくは並列の形で一緒に結合される複数の装置として物理的に実施することができる。1つの事例で、パイプライン200内のコンポーネントを、動的に構成される論理モジュール(例えば、ソフトウェアモジュール)に対応するものとすることができる。
【0067】
機能コンポーネント(214、216、218)のそれぞれに、CIデータ構造体202を処理するように構成されためいめいの機能性(222、224、226)が含まれる。この機能性(222、224、226)に、CIデータ構造体202の情報を読み取る論理、CIデータ構造体202の情報を解釈する論理、およびCIデータ構造体202の解釈された情報をイメージ情報204の処理に適用する論理を含めることができる。機能性(222、224、226)に、イメージ情報204で使用されるカラーフォーマッティングに関連する追加情報を演繹する論理と、この演繹された情報をCIデータ構造体202に供給して、CIデータ構造体202の前に未知であったフィールドを満たす論理も含めることができる。例えば、機能性(222、224、226)は、あるフォーマットが使用されていることを判定することができる。これに基づいて、機能性(222、224、226)は、標準規格があるコーディング特性を有することを(例えば、所定のルックアップテーブルにアクセスすることによって)演繹することができる。次に、機能性(222、224、226)は、この演繹された特性に関する情報を、CIデータ構造体202の、前に未知であったフィールドに書き込むことができる。具体的に言うと、一実施形態で、パイプライン200内のコンポーネントが、CIデータ構造体202の未知の値を、0などの指定された値に自動的にセットすることができる。この動作は、CIデータ構造体の初期化を構成する。後続コンポーネントは、0がセットされた値によって、CIデータ構造体内のある値の未知という性質について警告される。次に、これらのコンポーネントは、欠けている値を供給できる場合に、そうすることができる。矢印228は、一般に、機能性(222、224、226)が、CIデータ構造体202から情報を引き出せることを示す。矢印230は、一般に、機能性(222、224、226)が、CIデータ構造体202に追加できることを示す。図2に、機能コンポーネント214が、CIデータ構造体202と相互作用することが具体的に示されている。しかし、上で述べたように、この同一のCIデータ構造体202が、ビデオパイプライン200を介して渡され、その結果、他の機能コンポーネント(214、216、218)のどれもが、示された形でCIデータ構造体202と相互作用することができる。
【0068】
異なる機能コンポーネント(214、216、218)が、使用される処理ステージ(206、208、210)、特定のアプリケーションの詳細、処理されるカラーフォーマットなどの多数の要因に応じて、異なる形でCIデータ構造体202を処理することができる。
【0069】
例えば、ソース212および入力処理機能性214に関連する機能性222は、受け取られたイメージ情報104で使用されるフォーマッティング標準規格に関する情報を判定し、パイプライン200の下流コンポーネントによる使用のためにその情報をCIデータ構造体202に供給する、助けになる役割を実行することができる。一般的な規則として、新しい取り込みの場合に、取り込みデバイスは、通常、それが作るイメージ情報に適用されるフォーマッティングを暗黙のうちに「知っている」。その一方で、他のソースによって取り込まれたイメージ情報を受け取るデバイスは、受け取られたイメージ情報に関連するフォーマット関連情報を調べることによって、または論理的で信頼できる推測を行うことによって、イメージ情報に適用されたカラーフォーマッティングを判定できる場合がある。具体的な例を続ける。例えば、アナログ取り込みデバイスは、一般に、それに関してデータが取り込まれるビデオ標準規格および色空間を知っている。もう1つの例として、DVDナビゲータは、それがNTSC内容を有するDVDを解析しているという事実によって、それが扱っているイメージ情報204の色空間を知っている。もう1つの例として、MPEG−2エレメンタリビデオストリームを受け取る取り込みデバイスは、MPEG−2がそのシーケンス表示拡張ヘッダ内でカラー情報を明示的にリストするので、使用されているフォーマッティングのある特性を演繹することができ;例えば、このヘッダは、イメージ情報204に関連する原色、伝達関数、および伝達行列を示す。もう1つの例として、高品位(HD)デジタルチューナは、それが709色空間内のHDデータをストリーミングしていることを知っていなければならない、などである。これらの事例のすべてにおいて、機能性222は、パイプライン200の下流機能コンポーネントによる使用のために、使用されているカラーフォーマッティングに関して「既に知っている」情報をCIデータ構造体202に供給することができる。既知のシステムでは、この情報が、すぐに捨てられ、したがって失われた。
【0070】
パイプライン200内の色空間コンバータは、CIデータ構造体202を使用して、受け取られたイメージ情報204に対して正確な変換動作が実行されることを保証する。言い換えると、例えば、色空間コンバータは、CIデータ構造体202から収集された情報を使用して、それが適用する変換アルゴリズムを決定するか、そのアルゴリズムで使用されるセッティング/パラメータを決定することなどができる。
【0071】
パイプライン200内のミキサは、異なるタイプのイメージ情報を一緒にミキシングする目的のために働き、そのような情報は、潜在的に、異なるカラーフォーマットを使用して表現される。例えば、あるアプリケーションが、デジタル写真を、重畳されたグラフィカル情報と組み合わせることなどを求める場合がある。パイプライン200は、CIデータ構造体202で供給される拡張されたフォーマッティング情報を使用して、組み合わされる情報のすべてが共通のフォーマット(例えば、共通の色空間)を有することを保証することができる。この動作は、情報がミキサによって受け取られる前に、例えば上流コンポーネント(パイプライン内でミキサに関して)によって実行することができる。
【0072】
あるいは、この動作を、グラフィカル処理ハードウェアに割り当てることができる。グラフィカル処理ハードウェアに、例えばビデオ処理カードによって提供される(図13に関して下で説明する)、1つまたは複数のグラフィカル処理ユニット(GPU)を含めることができる。この場合に、組み合わされる情報に関連するCIデータ構造体202を、パイプラインを介してグラフィカル処理ハードウェアに渡すことができ、このグラフィカル処理ハードウェアは、そのCIデータ構造体202を使用して、イメージ情報を共通のフォーマットに変換することができ、その後、この情報を組み合わせることができる。この実施形態では、CIデータ構造体202によって提供される補足カラー情報によって、ビデオパイプライン内のドライバが、もはや、意図された色空間またはクロマ方式を推測する必要がなくなり、したがって、ドライバ(またはグラフィックス処理ハードウェア)が誤って推測し、悪い出力結果を作る可能性が減る。
【0073】
要約して、図2のブロックの一番下の行に、ビデオパイプライン200に適用されるCIデータ構造体202の使用の例示的な利益を要約する。ブロック232に、CIデータ構造体202が、パイプライン200を介して渡される均一な構造を有することを示す。ブロック234に、パイプライン200の各機能コンポーネント(214、216、218)が、CIデータ構造体202から情報を引き出すことができ、CIデータ構造体202の未知のフィールドの値を供給できることを示す。これは、既知のシステムと比較して、機能コンポーネント(214、216、218)が、イメージ情報204を処理するために実行する必要がある正当化されない推測の量を減らすかなくすことができることを意味する。ブロック236に、この戦略の最終的な結果が、カラー複製の改善された品質をもたらせることであることが示されている。すなわち、不正確な推測の一部を減らすことによって、ビデオパイプライン200が、イメージが低いコントラストを有する、不自然に見える色を有するイメージ、様々なひずみ(動きのアーチファクト、クリッピングなど)を有するイメージなど、様々な異常を有する出力情報を提供する可能性が低くなる。
【0074】
もう1つの利益によれば、セクションD(下)でさらに詳細に説明するように、ビデオパイプライン200は、既存のデータ構造を使用してCIデータ構造体202を伝えることができる。例えば、CIデータ構造体202は、パイプライン200を介して情報を伝送するのに使用される既存のデータ構造の未使用フィールド(1つまたは複数)に「常駐」することができる。フラグを設けて、未使用フィールドにCIデータ構造体202が含まれるか否か(または、意味のない指定されない情報もしくは多分一連の0などのデフォルト情報が含まれるかどうか)を知らせることができる。この備えは、少なくとも2つの利益を有する。第1に、事前に存在するサイズの事前に存在するフィールドの使用は、新しいCIデータ構造体202の使用に対処するために既存の機能コンポーネント(214、216、218)を完全に再エンジニアリングする必要がないことを意味する。さらに、CIデータ構造体202を理解するか解釈する能力を有しない可能性があるこれらの機能コンポーネント(214、216、218)は、この情報を処理する必要がない。言い換えると、CIデータ構造体202を理解しないコンポーネントは、単純に、それによって影響されない。それと同時に、カラー情報が提供される控え目な性質は、これらのコンポーネントがパイプライン200に沿ってカラー情報を自動的に渡すことを可能にする。言い換えると、カラー情報は、既存のデータフィールド内に存在するので、通常は失われない。これによって、カラー情報を使用するように構成されている可能性がある下流コンポーネントが、そのようなCI未対応上流コンポーネントから、変更されていないカラー情報を受け取ることが可能になる。
【0075】
上の議論では、イメージ情報204が、CIデータ構造体202内のカラー情報に基づいて、ディスプレイデバイスに即座に表示されると仮定した。しかし、CIデータ構造体202は、イメージ情報204に関連するカラー情報をパックする効率的な技法も提供し、したがって、イメージ情報204および関連するCIデータ構造体202をスペース効率のよい形でストアする(イメージ情報204に適用されたフォーマッティングに関する大量の情報を保持しながら)アーカイブ技法として使用することができる。
【0076】
具体的に言うと、イメージ情報204と共にCI情報202を自動的にストアするように、コンポーネントを構成することができる。イメージ情報204が、後に取り出される時に、CI情報202を含むめいめいのフィールドを、アンパックし、パイプライン200に渡すことができ、したがって、下流コンポーネントの利益のために、イメージ情報204のカラー構造に関する大量の情報が保存される。
【0077】
さらに、上の議論では、パイプライン200内のコンポーネントが、パイプラインの下流コンポーネントだけの利益のために、欠けている色情報を供給できると仮定した。しかし、パイプライン内のコンポーネントは、後続のイメージ情報の処理で上流コンポーネントが使用するためにカラー情報を供給することができる。例えば、ビデオパイプラインが、未知のビデオソースからのムービーの処理および提示のタスクに適用されるケースを考慮されたい。パイプライン内の最初のコンポーネントの1つは、このビデオ情報に適用されたフォーマッティングのある特徴を判定できない場合があり、したがって、最初に、この情報を最適の形で処理することができない場合がある。しかし、パイプライン内の後のコンポーネントが、その後、未知のビデオソースによってビデオ情報に適用されたフォーマッティングを演繹することができる。これらの下流コンポーネントは、上流コンポーネントに、それが同一のソースから受け取る後続信号が指定されたフォーマッティングを有することを知らせるために上流コンポーネントと通信することができる。その後、上流コンポーネントは、よりエラーフリーの形でこのビデオ情報を処理することができる。
【0078】
さらに、用語「下流」は、必ずしも、システム内の動作の固定された順序を示さない。一般に、パイプラインを動的な形で作成して、異なる機能コンポーネントをつなぎ合わせることによってイメージ情報204に対する所望の動作を提供することができる。これに関して、カラー情報を、コンポーネントの間のネゴシエーションに使用されるメディアタイプデータ構造体で提供することができる。パイプラインが、まず「出力端」から作られる場合に、カラー情報は、コンポーネントが接続される時に「逆方向」に流れる。
【0079】
図3に、図2のパイプライン200の動作を流れ図の形で示す。ステップ302に、まず、1つまたは複数のソース212からイメージ情報204を取り込む/入力することが含まれる。ステップ304に、パイプライン200の適当な機能コンポーネント(214、216、218)によって、CIデータ構造体202から収集されたカラー情報に従ってイメージ情報204を処理することが含まれる。ステップ306に、任意選択として、パイプライン200の適当な機能コンポーネント(214、216、218)によって演繹されたカラー情報を、ビデオパイプライン200の下流コンポーネントによる使用のためにCIデータ構造体202に供給することが含まれる。例えば、ステップ304および306は、この流れ図によって定義されるループの最初の反復で、入力ステージ206によって実行される処理に対応する。ステップ308で、ステップ304および306を、ビデオパイプライン200の次の機能コンポーネント(214、216、218)について繰り返さなければならないかどうかを判定する。図3の処理は、CIデータ構造体202に基づく出力デバイス(例えば、テレビジョン、コンピュータモニタ、アーカイブデバイス、ネットワーク宛先位置など)へのイメージ情報204の最終的な出力で終了する。
【0080】
B.例示的な変換動作
図4に、図2のビデオパイプライン200を使用してまたは別の種類のパイプラインのコンテキストで、イメージ情報204を変換する変換動作400を示す。したがって、図4では、ビデオパイプライン内のカラー情報202の使用がさらに展開されている。図4に示された他の特徴は、カラー情報202を使用しない場合であっても、ビデオ処理技術の進歩を示す。すなわち、概要として、図4に、ルマ関連色空間(例えば、Y’Cb’Cr’)で表されたイメージ情報の線形プログレッシブRGB空間への変換と、その後の線形プログレッシブRGBデータに対する処理の実行の技法が示されている。その後、この技法は、この情報をルマ関連空間(例えば、Y’Pb’Pr’)に変換して、出力デバイス(ルマ関連色空間のイメージ情報204を表示するテレビジョンデバイス、ストレージデバイスなど)に出力することができる。線形/プログレッシブRGB色空間でのルマ関連情報204の処理は、上で要約した形での処理のために中間線形RGB色空間へのイメージ情報204の変換を行わない他の手法からはずれる。線形RGB処理は、複数の理由から有利である。例えば、線形RGB処理では、非線形RGB色空間または非線形YUV色空間のイメージ情報の処理によって引き起こされる可能性がある明るさおよび色のシフトのアーチファクトが除去される。
【0081】
図4の変換動作400に、上で述べた変換ステップを記述した例示的な一連のブロックが含まれる。具体的に言うと、この図のブロックの上の行は、処理のための、Y’Cb’Cr’イメージ情報の指定された色空間への変換を示す。ブロックの下の行は、処理されたデータのY’Pb’Prデータへの変換を示す(Y’Pb’Prは、Y’Cb’Cr’のアナログ対応物を定義することができる)。
【0082】
上の行に関して、ブロック402は、Y’Cb’Cr’4:2:0イメージ情報が受け取られ、Y’Cb’Cr’4:4:4イメージ情報にアップスケーリングされることを示す。4:2:0表記は、クロマ情報(Cb’Cr’)が、ルマ情報(Y’)に関してサブサンプリングされていることを示す。図4でブロック402の上に示された代表的サンプルは、異なるコーディング戦略が、異なるめいめいの形でルマサンプルに関してクロマサンプルを置くことができることを示す。アップサンプリング動作は、クロマ情報を補間して、ルマ情報と同一の量のクロマ情報を作る(例えば、入力イメージ情報の4:4:4:表現を提供する)。
【0083】
ブロック404は、Y’Cb’Cr’4:4:4イメージ情報に行列変換を適用して、これを別の色空間、すなわちR’G’B’色空間に変換する。
【0084】
ブロック406は、伝達行列を適用することによって、非線形R’G’B’イメージ情報を線形形式に変換する。上で注記したように、R’G’B’イメージ情報に関連するアクセント記号(’)は、それが非線形形式であることを示し、アクセント記号がないこと(例えば、RGB)は、通常は、線形データを表す(参照される信号が非線形情報を表すことが普通に理解される場合にアクセント記号を除去することも一般的であることを除く)。図4のブロック406の上に示されたモデル伝達関数は、使用される関数の一般的な形状を示し、これは、CRT(図示せず)に固有の伝達関数の一般的な形状でもある。このモデル伝達関数は、その曲線のV=0部分の近くで線形テールを使用できることも示している。
【0085】
ブロック408では、任意選択として、イメージ再スケーリング動作を正しく実行するために、インターレース形式からプログレッシブ形式に変換するために内容のデインターレースを実行する。
【0086】
ブロック410では、任意選択として、別の色空間で表すために、線形RGB情報の原色を変換する。この変換には、ビデオ処理パイプラインの下流コンポーネントで実行される処理にどのような原色が望まれる場合でも、その原色に対応するように原色を変更するためにRGB情報に行列変換を適用することを含めることができる。一例で、ブロック410に、イメージ情報をあるRGB関連色空間から別のRGB関連色空間(例えば、scRGB)に変換することを含めることができる。
【0087】
ブロック412は、一般に、変換された色空間を有するイメージ情報のすべての種類の処理を表す。これは、例えば、線形プログレッシブRGB関連色空間のイメージ情報に対する処理の実行を構成することができる。
【0088】
図4の下の行は、一般に、上の行の上で説明した動作を逆転したものである。すなわち、ブロック412での処理の後に、ブロック414で、任意選択として、RGB色空間に戻すなど、イメージ情報を別の色空間に変換する。ブロック416で、インターレース形式でのストアまたは表示が必要な場合に、内容の動作再インターレースを適用する。ブロック418で、伝達関数を適用して、RGBイメージ情報をもう一度非線形形式(R’G’B’)に変換する。ブロック420で、R’G’B’イメージ情報の色空間を、そのルマ成分(Y’)をそのクロマ成分(Pb’Pr’)から分離するフォーマットに変更する。最後に、ブロック422で、任意選択として、Y’Pb’Pr’イメージ情報をサブサンプリングして、ルマサンプル(Y’)の量に対してクロマサンプル(Pb’Pr’)の量を減らす。すなわち、このブロック422は、Y’Pb’Pr’4:4:4イメージ情報(ルマサンプルごとにクロマサンプルがある)をY’Pb’Pr’4:2:0イメージ情報(ルマサンプルより少数のクロマサンプルがある)に変換することができる。
【0089】
CIデータ構造体202は、処理ブロックのそれぞれがイメージ情報204を処理する形に関する指示を提供することによって、図4のコンテキストで役割を演じることができる。例えばパイプラインがルマ関連色空間からRGB関連色空間に変換する形などを指定するカラー情報を供給することができる。
【0090】
C.カラー情報データ構造体の例示的な構成
図5に、図2で導入されたCIデータ構造体202の1つの例示的な実施形態を示す。CIデータ構造体202に、潜在的にイメージ情報204に適用できるコーディング標準規格の様々な態様を定義する複数のフィールドが含まれる。図5に示されたフィールドは、CIデータ構造体202にパックできる情報のタイプに関する制限ではなく、その代表である。他の実施形態では、図5に示されたあるフィールドを省略することができ、または図5に示されていない他のフィールドを追加することができる。
【0091】
このセクションでは、図5に示されたフィールドの全般的な概要を提供し、その後、CIデータ構造体202の1つの例示的な実施形態の詳細な説明を続ける。
【0092】
まず、最初のフィールド502は、伝達関数情報を定義する。この情報は、(非線形)R’G’B’イメージ情報204を(線形)RGB情報に(および/またはその逆に)どのように変換するかを定義するのに使用される。
【0093】
第2のフィールド504は、イメージ情報204のエンコードに使用される原色を定義する。例えば、このフィールド504は、RGBイメージ情報204に関連するRGB応答関数を指定することができる。
【0094】
第3のフィールド506は、イメージ情報204にどのビデオライティング仮定が適用されるかを定義する。例えば、このフィールド506は、イメージ情報204が、薄暗く照明された家庭環境(家庭内のテレビジョンでのプレゼンテーションについて意図される情報について通常はそうである)ではなく、明るいオフィス環境(コンピュータモニタでのプレゼンテーションについて意図される情報について通常はそうである)でのプレゼンテーションのためにコーディングされたかどうかを指定することができる。
【0095】
第4のフィールド508は、イメージ情報204に適用可能な伝達行列を定義する。例えば、この行列は、Y’Cb’Cr’色空間とR’G’B’色空間の間で変換する方法などを定義することができる。
【0096】
第5のフィールド510は、イメージ情報204に関連する公称範囲情報を定義する。具体的に言うと、このフィールドは、イメージ情報204が、基準黒レベル未満の指定されたトウルームおよび/または基準白レベルを超える指定されたヘッドルームを提供するかどうかを定義する。
【0097】
最後に、第6のフィールド512は、クロマ情報が、ルマ情報に関してどのようにサンプリングされ、位置付けられるかを定義するクロマサブサンプリング情報を定義する。
【0098】
異なるコーディング方式を使用して、図5に示された6つのフィールドを表すことができる。1つの例示的で非制限的な手法によれば、ビットのコレクションが、CIデータ構造体202を表すために割り当てられる。このビットのコレクションは、事前定義のフィールド(またはカラー情報を受け取るスロット)を有する指定されたデータ構造体に配置される。1つの例示的な事例で、CIデータ構造体202を表すために、16ビットを割り当てることができる。もう1つの例示的な事例で、CIデータ構造体202を表すために、24ビットを割り当てることができる。他の実施形態は、16ビット未満のサイズおよび24ビット超のサイズなどを含む、さらに異なるCIデータ構造体サイズを提供する。
【0099】
24ビットが使用される、例示的で非制限的な事例で、フィールド(502〜512)を、次のように編成することができる。第1の「enum」(値の整数列挙)VideoTransferFunctionを使用して、第1フィールド502を表すことができ、これに5ビットを割り当てることができ、したがって、24ビットのCIデータ構造体202のビット23〜19を占めることができる。第2のenum VideoPrimariesを使用して、第2フィールド504を表すことができ、これに5ビットを割り当てることができ、したがって、CIデータ構造体202のビット18〜14を占めることができる。第3のenum VideoLightingを使用して、第3フィールド506を表すことができ、これに4ビットを割り当てることができ、したがって、CIデータ構造体202のビット13〜10を占めることができる。第4のenum TransferMatrixを使用して、第4フィールド508を表すことができ、これに3ビットを割り当てることができ、したがって、CIデータ構造体202のビット9〜7を占めることができる。第5のenum NominalRangeを使用して、第5フィールド512を表すことができ、これに3ビットを割り当てることができ、したがって、CIデータ構造体202のビット6〜4を占めることができる。最後に、第6のenum VideoChromaSubsamplingを使用して、第6フィールド512を表すことができ、これに4ビットを割り当てることができ、したがって、CIデータ構造体202のビット3〜0を占めることができる。
【0100】
このセクションの残りの部分では、上で説明した6つのenumの1つの例示的な実施形態に関する追加の詳細を提供する。提供される詳細は、制限的ではなく例示であり、異なる構文を有する他のデータ構造を使用することができる。
【0101】
・ DXVA_VideoTransferFunction
DXVA_VideoTransferFunction enumは、(非線形)R’G’B’から(線形)RGBへの変換関数を示す。これは、おおむね、イメージデータのガンマ関数に対応する。一部の伝達関数は、8ビット整数量子化効果を考慮するための訂正を有する。1つの例示的な実施形態では、5ビットを使用してこのenumを表すことができる(例えば、24ビットのCIデータ構造体202のビット23〜19)。
【0102】
DXVA_VideoTransferFunction enumの例示的な構文は、次のように指定される。
【0103】
【表1】

【0104】
このenumの最初のメンバは、このフィールドが未知であることを示す。計算を進めるのに必要な場合に、このフィールドに事前定義の値をセットすることができる。
【0105】
「10」の接尾辞によって表されるメンバは、ガンマ=1.0を有する線形RGBを識別する。
【0106】
「18」、「20」、「22」、「28」の接尾辞によって表されるメンバは、例えば、L=0...1に関するL’=pow(L,1/gamma)など、真の1.8、2.0、2.2、および2.8のガンマを表す。標準規格BT470−2 SysMで、ガンマ2.2が使用される。
【0107】
「22_709」の接尾辞によって表されるメンバは、BT1361、BT709、SMPTE296M、SMPTE170M、BT470、SMPTE274Mなどによって定義されるフォーマットに適当な、低い範囲で線形の範囲を有するガンマ2.2曲線に関する。
【0108】
接尾辞「22_204M」によって表されるメンバは、SMPTE240M、interim 274Mなどに適当な、低い範囲で線形の範囲を有するガンマ2.2曲線に関する。
【0109】
接尾辞「22_8bit_sRGB」によって表されるメンバは、正確な2.2ガンマ8ビット曲線に一致することができる、低い範囲で線形の範囲を有するガンマ2.4曲線に関する。
【0110】
図6に、DXVA_VideoTransferFunction enumに適当なさらなる例示的な詳細を示す。
【0111】
・ DXVA_VideoPrimaries
DXVA_VideoPrimaries enumは、原色をリストし、この原色は、どのRGB基礎関数がイメージ情報204で使用されるかを識別する。1つの例示的な実施形態で、5ビットを使用して、このenumを表すことができる(例えば、24ビットのCIデータ構造体202のビット18〜14)。
【0112】
DXVA_VideoPrimaries enumの例示的な構文は、次のように指定される。
【0113】
【表2】

【0114】
このenumの最初のメンバは、このフィールドが未知であることを示す。計算を進めるのに必要な場合に、このフィールドに事前定義の値をセットすることができる(例えば、デフォルト値に、標準規格BT 709で指定される原色をセットすることができる)。
【0115】
接尾辞「BT709」を有するメンバは、BT709標準規格に関連する原色を定義する(これは、標準規格sRGB、scRGBなどにも適用可能である)。
【0116】
接尾辞「BT470_2_SysM」を有するメンバは、オリジナルのNTSC原色を定義する。
【0117】
「BT601」、「BT470_2_SysBG」、「SMPTE240M」、および「EBU3213」の接尾辞を有するメンバは、これらの標準規格に関連する様々なめいめいの原色を定義する。
【0118】
接尾辞「SMPTE170M」を有するメンバは、アナログNTSC原色を定義する(これは現在、あまり使用されていない)。
【0119】
接尾辞「SMPTE_C」を有するメンバは、アナログ’79 NTSC原色を定義する。
【0120】
図7は、DXVA_VideoPrimaries enumに適当なさらなる例示的な詳細を提供する。
【0121】
・ DXVA_VideoLighting
DXVA_VideoLighting enumは、所期のビューイングライティング条件を記述する。この情報は、異なるライティング条件で匹敵する経験を生成するためにガンマを変更するのにも使用することができる。1つの例示的な実施形態で、4ビットを使用して、このenumを表すことができる(例えば、24ビットのCIデータ構造体202のビット13〜10)。
【0122】
DXVA_VideoLighting enumの例示的な構文は、次のように指定される。
【0123】
【表3】

【0124】
このenumの最初のメンバは、このフィールドが未知であることを示す。計算を進めるのに必要な場合に、このフィールドに事前定義の値をセットすることができる(例えば、デフォルト値を、薄暗いビューイング条件が意図されたことを前提とするようにセットすることができる。
【0125】
接尾辞「bright」を有するメンバは、戸外のライティング条件に対応することができる。
【0126】
接尾辞「office」を有するメンバは、ホームオフィス条件に関連する中程度の明るさのレベルに対応することができる。
【0127】
接尾辞「dim」を有するメンバは、薄暗く照明されたビューイング条件に関連する薄暗い明るさのレベルに対応することができる。
【0128】
接尾辞「dark」を有するメンバは、映画館のビューイング条件に関連する暗い明るさのレベルに対応することができる。
【0129】
・ DXVA_VideoTransferMatrix
DXVA_VideoTransferMatrix enumは、イメージ情報204をY’Cb’Cr’色空間から(スタジオ)R’G’B’色空間に変換するのに使用される変換行列を記述する。1つの例示的な実施形態で、3ビットを使用して、このenumを表すことができる(例えば、24ビットのCIデータ構造体202のビット9〜7)。
【0130】
DXVA_VideoTransferMatrix enumの例示的な構文は、次のように指定される。
【0131】
【表4】

【0132】
このenumの最初のメンバは、このフィールドが未知であることを示す。計算を進めるのに必要な場合に、このフィールドに事前定義の値をセットすることができる(例えば、デフォルト値に、標準品位イメージ情報204の標準規格BT601、および高品位イメージ情報204の標準規格BT709で使用される伝達行列をセットすることができる)。
【0133】
接尾辞「BT709」を有するメンバは、BT709標準規格で使用される伝達行列を定義する。
【0134】
接尾辞「BT601」を有するメンバは、BT601標準規格で使用される伝達行列を定義する。
【0135】
接尾辞「SMPTE204M」を有するメンバは、SMPTE204M標準規格で使用される伝達行列を定義する(これは、現在は一般的に使用されていない高品位標準規格である)。
【0136】
図8および9は、DXVA_VideoTransferMatrix enumに適当なさらなる例示的な詳細を提供する。
【0137】
・ DXVA_NominalRange
DXVA_NominalRange enumは、データにヘッドルーム(基準1.0白を超える値)およびトウルーム(基準0.0黒未満の「スーパーブラック」)が含まれるかどうかを記述する。例えば、イメージ情報204の正しい解釈を保証するために、広い色域R’G’B’(黒点16、16、16、白点235、235、235)と通常のsRGBを区別することが有用である。1つの例示的な実施形態で、3ビットを使用して、このenumを表すことができる(例えば、24ビットのCIデータ構造体202のビット6〜4)。
【0138】
DXVA_NominalRange enumの例示的な構文は、次のように指定される。
【0139】
【表5】

【0140】
このenumの最初のメンバは、このフィールドが未知であることを示す。計算を進めるのに必要な場合に、このフィールドに事前定義の値をセットすることができる。
【0141】
接尾辞「Normal」を有するメンバは、0...255(8ビット)または0...1023(10ビット)のイメージ情報204に写像される正規化されたクロマ[0...1]を定義する。
【0142】
接尾辞「Wide」を有するメンバは、16...235(8ビット)または64...940(10ビット)に写像される正規化されたクロマ[0...1]を定義する。
【0143】
・ DXVA_VideoChromaSubsampling
DXVA_VideoChromaSubsampling enumは、Y’Cb’Cr’データに適用されるクロマエンコーディング方式を記述する。「コサイト」変動は、クロマサンプルがルマサンプルとアラインされることを示す。4:2:0データは、通常、1つまたは複数の方向でルマデータにアラインされたクロマを有する。4:4:4、4:2:2、および4:1:1データは、両方の方向でコサイトされている。1つの例示的な実施形態で、3ビットを使用して、このenumを表すことができる(例えば、24ビットのCIデータ構造体202のビット3〜0)。
【0144】
DXVA_VideoChromaSubsampling enumの例示的な構文は、次のように指定される。
【0145】
【表6】

【0146】
このenumの最初のメンバは、このフィールドが未知であることを示す。計算を進めるのに必要な場合に、このフィールドに事前定義の値をセットすることができる。
【0147】
接尾辞「ProgressiveChroma」を有するメンバは、一時的にプログレッシブ内容と解釈されるクロマサンプルを定義する(例えば、2つの時間的にオフセットしたフィールドからではなく、同一のフレームから)。
【0148】
接尾辞「Horizontally_Cosited」を有するメンバは、複数のルマサンプルに対して水平にアラインされるクロマサンプルを定義する。
【0149】
接尾辞「Vertically_Cosited」を有するメンバは、複数のルマサンプルに対して垂直にアラインされるクロマサンプルを定義する。
【0150】
接尾辞「AlignedChromaPlanes」を有するメンバは、同一の位相アライメントを有するものとしてPbおよびPr(またはCbおよびCr)プレインを定義する。データが垂直にコサイトされている場合に、このフラグは0になる。
【0151】
図10〜12は、DXVA_VideoChromaSubsampling enumに適当なさらなる例示的な詳細を提供する。すなわち、これらの図は、通常のY’Cb’Cr’イメージ情報204でのルマサンプルに対するクロマサンプルの位置の要約を提供する。
【0152】
D.カラー情報データ構造体の1つの例示的な応用例
前の節で説明したコーディング戦略の多数の応用例がある。図13〜16に、DeinterlaceBltExと称するアプリケーションプログラミングインターフェース(API)を使用する1つの例示的な応用例を示す。
【0153】
概要として、DeinterlaceBltEx機能性は、合成動作をデインターレース動作と一緒に実行するなど、複数の動作を単一の動作として一緒に実行できるようにする論理を提供する。合成動作は、主イメージストリーム情報とイメージサブストリーム情報の組合せを指す。イメージストリーム情報は、イメージフレームの主シーケンスを指す。イメージサブストリーム情報は、主イメージストリーム情報のイメージストリームと共に提示できる補助イメージ情報を指す。1つの例で、イメージサブストリーム情報は、クローズキャプションデータに対応するものとすることができる。クローズキャプショニング情報が、主イメージストリーム情報と組み合わされて、表示用の合成イメージ情報が形成される。デインターレース動作は、インターレース動作で作成された連続するイメージフィールドを組み合わせて、イメージフレームのプログレッシブ(ノンインターレース)表現を提供する技法を指す。DeinterlaceBltEx機能性は、他の種類の動作を同時に実行することも可能にする(その代わりに、いわゆるDeinterlaceBlt機能性を使用することができ、これは、上で識別された動作を連続して実行するように構成されている)。
【0154】
1つの例示的な実施形態で、DeinterlaceBltEx機能性は、CIデータ構造体202を伝えるのに使用できる未使用部分(または部分的に未使用の部分)を有するデータ構造を提供する。すなわち、1つの例示的で比制限的な実施形態で、この部分が、32ビットワードを定義することができる。このワードの24ビット部分を使用して、図5に示された情報の6つのフィールドを伝えることができる。既存構造体のもう1つの部分(例えば、残りの8ビット)を使用して、イメージ情報204がインターレースフォーマットとプログレッシブフォーマットのどちらでコーディングされているかなど、イメージ情報204の他の態様を伝えることができる。
【0155】
具体的に言うと、カラー情報は、DeinterlaceBltEx動作のコンテキストで複数の役割のために働くことができる。色空間処理の問題に関して、CIデータ構造体202で指定されるカラー情報は、(a)どの色空間変換(ある場合に)を、DeinterlaceBltEx機能性に供給される入力イメージ情報に対して実行しなければならないか、(b)イメージ情報に対して様々な処理タスクを実行するためにどの色空間を使用しなければならないか、および(c)出力イメージ情報を供給するのにどの色空間を使用しなければならないか、などを指定することができる。これらのタスクのために選択できる可能な色空間に、すべての種類のRGB関連色空間、すべての種類のルマ関連色空間(例えば、YUV)などを含めることができる。さらに、可能な色空間は、線形形式または非線形(例えば、ガンマ補正された)形式のいずれかとすることができる。
【0156】
例えば、あるシナリオで、イメージ情報の1つまたは複数のストリームを、ルマ関連色空間から線形RGB関連色空間に変換する。次に、線形RGB関連色空間のイメージ情報に対していくつかの動作を実行して、やはり線形RGB関連色空間内の出力を供給する。したがって、この一連の動作は、図4(前に説明した)に示された技法を実施することができる。もう1つのシナリオで、イメージ情報の1つまたは複数のストリームを、ルマ関連色空間で受け取り、処理して、やはりルマ関連色空間内の出力を供給することができる。もう1つのシナリオで、イメージ情報の1つまたは複数のストリームを、ある種類のRGB関連色空間から別の種類のRGB色空間に、またはある種類のルマ関連色空間から別の種類のルマ関連色空間に変換することができる。これらは、単に、DeinterlaceBltEx機能性によって使用可能にされる様々な処理オプションの例示的な例である。これらの事例のどれにおいても、CIデータ構造体202のカラー情報は、DeinterlaceBltEx機能性によって適用される色空間選択を決定する指示を提供することができる。
【0157】
さらに、DeinterlaceBltEx機能性の独自の機能を用いると、色空間変換を、イメージ情報に対して実行される他の動作(デインターレースおよび合成など)と同一の動作で実行できるようになる。例えば、イメージ情報を、デインターレースし、ビデオサブストリームと合成するのと同一の動作で、ルマ関連色空間からRGB関連色空間に変換することができる。その代わりに、イメージ情報に対して実行されるある動作を、連続して実行することもできる。例えば、下で完全に説明する1つの例で、デインターレースおよび合成を、YUV色空間内で単一の動作で実行し、これに、出力結果のRGB関連色空間への変換を続けることができる。
【0158】
最後の前置きのコメントとして、DinterlaceBltEx機能性は、異なる色空間で表された別々のイメージ情報ストリーム(1つまたは複数の主ビデオストリームおよび/または1つまたは複数のビデオサブストリームなど)に作用することができる。このイメージ情報ストリームは、それ自体のCIデータ構造体202を関連付けられることができる。このCIデータ構造体202に、別々のストリームに対して動作(デインターレース、合成など)を実行するために、別々のストリームを共通の色空間にどのように変換できるかを定義する情報を含めることができる。
【0159】
上の前置きに関して、図13に、図2に示されたビデオパイプライン200の諸態様を実施するのに使用できる例示的なシステム1300の概要を示す。システム1300は、米国ワシントン州レッドモンドのMicrosoft(登録商標)Corporation社が作るDirectX(登録商標)ファミリのテクノロジに頼ることができる。DirectXファミリには、DirectX Video Acceleration(DirectX−VA)、Direct3D、DirectDrawなどが含まれる。しかし、上で説明した原理は、他の種類のテクニカルプラットフォームで動作する他の種類のレンダリングテクノロジを使用して実行することができる。システム1300は、パーソナルコンピュータ、ゲーム機(Microsoft(登録商標)Corporation社のXbox(商標)ゲーム機など)、または他の種類のデバイスを表すことができる。
【0160】
まず、システム1300は、複数のソースのうちの任意の1つからイメージ情報を受け入れる。例えば、装置1300は、ネットワーク1302(インターネットに結合されたリモートソースなど)、すべての種類のデータベース1304、すべての種類のコンピュータ可読ディスク媒体1306(光ディスク、DVDなど)、または他のソース1308(図204に示されたソース212に関連するソースの任意の1つなど)からイメージ情報を受け入れることができる。どの場合でも、受け取られた情報に、イメージ情報とオーディオ情報の組合せが含まれる場合がある。デマルチプレクサユニット1310が、オーディオ情報をイメージ情報から分離する。オーディオ処理機能性1312が、オーディオ情報を処理する。
【0161】
イメージデコーダ1314が、イメージ情報を処理する。イメージデコーダ1314は、圧縮されたイメージ情報を、その受け取られたフォーマットからある他のフォーマットに変換することができ、この情報に対する最初のサイズ変更動作または他の動作を実行することができる。イメージデコーダ1314の出力に、いわゆるピュアイメージ情報ならびにイメージサブストリーム情報を含めることができる。ピュアイメージ情報は、ディスプレイデバイスにレンダリングされる主イメージストリームを構成する。イメージサブストリーム情報は、クローズキャプショニング情報、すべての種類のグラフィカルオーバーレイ情報(様々なグラフィカル編集コントロールなど)、DVDプレイヤによって提示される様々な種類のサブイメージ、その他)など、ピュアイメージ情報に関連するすべての補足情報を構成することができる。
【0162】
1つの例示的な実施形態で、ビデオミキシングレンダラ(VMR)モジュール1316は、このように受け取られたイメージ情報の処理の中心的な役割を実行する。概要として、VMRモジュール1316は、グラフィックスインターフェース1318およびディスプレイドライバ1320と相互作用し、ディスプレイドライバ1320は、グラフィックスモジュール1322を制御する。下で詳細に説明するように、この相互作用に、グラフィックスモジュール1322の機能をプロービングすることが含まれる。この相互作用には、グラフィックスインターフェース1318、ディスプレイドライバ1320、およびグラフィックスモジュール1322によるイメージ情報の処理を調整することも含まれる。一実施形態で、グラフィックスインターフェース1318を、Microsoft(登録商標)Corporation社のDirectXによって提供されるDirectDraw機能性を使用して実施することができる。DirectDrawは、このコンテキストで、VMRモジュール1316をグラフィックスモジュール1322に通信的に結合するメッセージ導管として働く。グラフィックスモジュール1322自体は、コンピュータまたは類似するデバイス内の固定されたモジュールを構成するか、グラフィックスカードなどの取外し可能ユニットを構成することができる。VMRモジュール1316、グラフィックスインターフェース1318、ディスプレイドライバ1320、およびグラフィックスモジュール1322によって表される機能性の縦のチェーンは、ユーザモードとカーネルモードに分割することができる。ユーザモードは、様々なインターフェースを介してユーザが操作できるプログラミング機能性の態様を指す。カーネルモードは、ユーザが直接には操作できないプログラミング機能性の態様を表す。
【0163】
グラフィックスモジュール1322自体に、1つまたは複数のグラフィックス処理ユニット(GPU)1324が含まれる。GPU 1324は、一般に、CPUに似た処理デバイスである。GPU 1324は、一般に、実施する装置1300によって繰り返して実行される情報集中型レンダリングタスクに割り当てられる。これらの反復的タスクまたは情報集中型タスクをGPU 1324に割り当てることによって、CPU(図示せず)が、他のタスクを実行するために解放され、したがって、装置1300の性能が改善される。この実施形態がGPU 1324に割り当てる2つの例示的なタスクが、デインターレースおよびレート変換である。これらの機能は、デインターレース論理1326およびレートコンバータ論理1328によって表される。デインターレース論理1326は、イメージ情報の複数のフィールドを一緒に組み合わせて、イメージ情報のフレームを形成する。レートコンバータ論理1328は、イメージフレームのシーケンスのフレームレートを変更する。GPU 1324は、多数の追加の処理タスクを実行することができる。
【0164】
GPU 1324は、グラフィックスモジュール1322に関連するローカルメモリ1330と相互作用することができる。このローカルメモリ1330は、複数のストレージ関連目的のために働くことができる。例えば、このメモリ1330は、ディスプレイデバイス1332に転送される最終的なイメージサーフェスをストアすることができる。
【0165】
図13に、図2に関して説明したものに似た形で、図13に示された一連の機能コンポーネントに沿ってCIデータ構造体202を渡せることが示されている。すなわち、CIデータ構造体202は、システム1300によって定義されるパイプラインを介して渡される時に、均一な構造を有する。システム1300内の個々の機能コンポーネントは、CIデータ構造体202内のカラー情報を使用することができ、あるいは、潜在的に、下流機能コンポーネントの利益のためにCIデータ構造体202内のカラー情報を補足することができる。例えば、色空間処理の問題に関して、カラー情報は、(a)どの色空間変換(ある場合に)を実行しなければならないか(例えば、YUVからRGB)、およびこの変換をどのように実行できるか、(b)イメージ情報に対して様々な処理タスクを実行するのにどの色空間を使用しなければならないか、および(c)出力イメージ情報を供給するのにどの色空間を使用しなければならないか、などを定義することができる。図13には、複数のCIデータ構造体202が、システム1300で実行される処理で役割を演じることが示されており、例えば、システム1300によって処理されるイメージ情報の各ストリームが、それ自体のデータ構造体202を関連付けられることができる。これらのCIデータ構造体202は、イメージ情報の異なるストリームの共通色空間への変換を調整することができる。
【0166】
CIデータ構造体202をDeinterlaceBltExフレームワークに統合できる例示的な形に関するさらなる詳細を、下に示す。
【0167】
まず、図14に、図13の装置1300の動作の概要1400を示す。ステップ1402で、VMRモジュール1316が、どの処理モードをサポートするかに関してディスプレイドライバ1320およびグラフィックスモジュール1322に照会する。応答を受け取った後に、ステップ1404で、VMRモジュール1316は、もう1つの質問を送って、ディスプレイドライバ1320および関連するグラフィックスモジュール1322の機能に関するより具体的な情報を見つける。ステップ1402および1404は、下で、見出し「予備情報処理」の下でより詳細に説明する。
【0168】
接続されたハードウェアおよび関連するインターフェースの機能を調査した後に、VMRモジュール1316は、イメージストリームオブジェクトをオープンし(ステップ1408で)、その結果、イメージ情報および制御情報をハードウェアに転送できるようにする。その後、ステップ1408で、VMRモジュール1316は、ハードウェアによる1つまたは複数のイメージ処理機能の実行(例えば、グラフィックスモジュール1322による)を調整する。そのような機能の1つが、デインターレースである。もう1つのそのような機能が、サブストリーム合成である。受け取った情報に応じて、デインターレースを、上で説明したように合成と組み合わせることができ、あるいは、いずれかの機能を、別々に実行することができる。例えば、プログレッシブイメージ情報を受け取った場合に、デインターレースを実行する必要はなく、この場合に、VMRモジュール1316は、単に、オブジェクトのサイズを変更し、イメージサブストリーム情報を追加するか、他の機能または機能の組合せを実行することができる。デインターレースおよび合成の他に、多数の他の機能が実施される。
【0169】
最後に、ステップ1410で、VMRモジュールが、ステップ1406でオープンしたイメージストリームをクローズする。このステップ1410は、ユーザによって与えられるコマンドに応答するものとするか、ストリームイメージ情報を使い果たしたことに応答するものとすることができる。
【0170】
次の議論で、上で参照した選択されたステップに関するより詳細な情報を提示する。
【0171】
・ 初期化ステップ
上で説明したステップ1402で、VMRモジュール1316は、入力イメージフォーマットに関してどの処理機能性をサポートするかをディスプレイドライバ1320に尋ねる。ディスプレイドライバ1320が応答する時に、VMRモジュール1316は、特定のモードに関するディスプレイドライバ1320の要件に関するより具体的な情報の要求を送る。ディスプレイドライバ1320は、情報構造体内で様々な情報を指定することによって応答する。そのような情報は、必要な順方向基準サンプルの個数、必要な逆方向基準サンプルの個数、出力フレームのフォーマットなどを識別する。この情報構造体には、デインターレースおよび合成の組合せのサポートがグラフィックスモジュール1322および関連するインターフェースによってサポートされるかどうかを示すフラグも含まれる。このフラグを、1つの例示的な実施形態で、DXVA_ImageProcess_Sub−streamsフラグと称する。
【0172】
さらに、組み合わされたデインターレースおよび合成を正しくサポートするために、グラフィックスモジュール1322ならびに関連するインターフェースおよびドライバは、デインターレースされるイメージフレームならびに供給されるイメージサブフレームの両方を独立にストレッチ(水平におよび/または垂直に)できなければならない。これが一実施形態で要求されるのは、主イメージとビデオサブストリームのピクセルアスペクト比が、異なり、性質において正方形でない場合があるからである。ディスプレイドライバ1320は、DXVA_VideoProcess_Sub−streamsフラグの他に、イメージをストレッチする能力を伝えるDXVA_VideoProcess_StretchXフラグおよびDXVA_VideoProcess_StretchYフラグを返すことによって、この機能性を処理する能力を通信することができる。
【0173】
さらに、DeinterlaceBltEx DDIは、ソースサーフェスおよび宛先サーフェスのそれぞれに関する拡張カラー情報をサポートする(「ソースサーフェス」は、入力イメージ情報を定義し、「宛先サーフェス」または「ターゲットサーフェス」は、DeinterlaceBltEx動作によって作られる出力イメージ情報を定義する)。ディスプレイドライバ1320は、次のフラグなどの様々なカラー関連フラグを介して、この新しいカラー情報に関してそれが有するサポートのレベルを示すことができる。
【0174】
【表7】

【0175】
DXVA_VideoProcess_SubStreamsExtendedフラグのサポートは、ビデオ情報が、デインターレースされ、サブストリーム情報と合成され、宛先サーフェスに書き込まれる時に、システム1300が、ソースビデオ情報およびサブストリーム情報に対してカラー調整を実行できることを示す。
【0176】
DXVA_VideoProcess_YUV2RGBExtendedフラグのサポートは、イメージ情報のデインターレースされ合成されたピクセルが、ソースサーフェスおよび宛先サーフェスについて指定されたカラー情報を使用して宛先サーフェスに書き込まれる時に、システム1300が、色空間変換オプション(例えば、YUVからRGB)を実行できることを示す。
【0177】
DXVA_VideoProcess_AlphaBlendExtendedフラグのサポートは、イメージ情報のデインターレースされ合成されたピクセルが、宛先サーフェスに書き込まれる時に、システム1300が、宛先サーフェスとのアルファブレンド動作を実行できることを示す。
【0178】
・ デインターレースステップ
VMRモジュール1316は、上で説明したDeinterlaceBltEx機能性を使用して、グラフィックスモジュール1322によるデインターレースおよび合成の実行を調整する。具体的に言うと、このDeinterlaceBltEx機能性は、技術的に複数の基本的動作(色空間変換、デインターレース、合成など)を伴う場合であっても、ディスプレイドライバ1320への単一の呼び出しとして実施することができる。DeinterlaceBltEx機能性は、その動作の出力を指定された宛先サーフェスに書き込む。
【0179】
具体的に言うと、VMRモジュール1316は、次のデータ構造体をディスプレイドライバ1320に転送して、DeinterlaceBltEx機能性を実施する。
【0180】
【表8】

【0181】
この構造では、rtTargetFrameパラメータが、入力フレームのシーケンス内の出力フレームの時間的位置を識別する。デインターレースだけが実行されている場合に、ターゲット時刻は、基準サンプルのrtStart時刻、または中点時刻(rtStart+rtEnd)/2のうちの1つと一致しなければならない。フレームレート変換が要求されている場合に、rtTargetFrame時刻は、基準サンプルのrtStartまたは中点時刻のいずれとも異なるものとすることができる。
【0182】
prcTargetRectパラメータは、DeinterlaceBltEx動作が書き込む、宛先サーフェス内の位置を識別する。一実施形態で、出力は、この長方形内のピクセルに制限されなければならない。すなわち、どのような形でも、prcTargetRect内のすべてのピクセルが書き込まれなければならず、prcTargetRectの外のピクセルが変更されてはならない。
【0183】
BackgroundColorパラメータは、すべてのビデオストリームおよびサブストリームがその上で合成される背景の色を識別する。
【0184】
DestinationFormatパラメータには、宛先サーフェスに関する拡張カラー情報が含まれる。
【0185】
DestinationFlagsパラメータには、DeinterlaceBltExへの前の呼び出しからの、宛先関連パラメータでの変更を示すフラグの集合が含まれる。これらのフラグは、背景色、拡張カラー情報、ターゲット長方形、またはプレーナアルファパラメータに対する変更を反映し、ドライバコードの最適化を助けるために提供される。
【0186】
宛先サーフェスは、ビデオメモリ(例えばローカルメモリ1330)に置かれたオフスクリーンプレーンサーフェスとすることができる。宛先サーフェスのピクセルフォーマットは、初期化ステップでVMRモジュール1316に返されたデータ構造体のd3dOutputFormatフィールドで示されるものとすることができる。1つの例示的な実施形態で、この構造体で指定される宛先サーフェスを、Y関連色空間(例えば、YUV)にあるものとすることができる。
【0187】
lpDDSrcSurfacesパラメータは、DXVA_VideoSample2構造体の配列をポイントする。この構造体のSampleFormatフィールドは、サンプルが、デインターレース動作の基準であるか、デインターレースされたビデオフレームと組み合わされる必要があるビデオサブストリームサンプルであるかを示す。ビデオサブストリームサンプルは、そのサンプルフォーマットに関するDXVA_SampleSub−stream値を有しなければならない。
【0188】
具体的に言うと、例示的なVideoSample2構造体は、下で識別される。
【0189】
【表9】

【0190】
サンプルがインターレースまたはプログレッシブのどちらであるかを示すことの他に、上で識別されたデータ構造体のSampleFormatフィールドは、CIデータ構造体202を表すことができる場所を定義する。CIデータ構造体202をSampleFormatフィールドに追加することは、VideoSample2データ構造体のサイズを増やさず、他の形でもDeinterlaceBltEx機能性の再エンジニアリングを必要としない。したがって、CIデータ構造体202をこのデータ構造体に「押し込む」ことは、グラフィックスモジュール1322を含むビデオパイプラインを介してカラー情報を伝える特に効率的な形を表す。
【0191】
基準ビデオサンプルについて、rtStartフィールドおよびrtEndフィールドは、サンプルの時間的な位置を示す。ビデオサブストリームサンプルについて、これらのフィールドは、0にクリアされる。
【0192】
ソース長方形および宛先長方形は、サブレクタングルデインターレースまたはサブレクタングルストレッチングに使用される。ビデオサブストリームのストレッチングが、ビデオストリームと独立であることと、ストレッチングのサポートが、一実施形態で必須であることに留意されたい。パレット化されたビデオサブストリームピクセルフォーマットに関して、DXVA_VideoSample2構造体のPALフィールドに、サブストリームサンプルを合成する時に使用できる16個のパレットエントリが含まれる。非パレット化ピクセルフォーマットについて、これらのパレットは、0にクリアされ、無視することができる。
【0193】
各入力サンプルに、前のサンプルからの現在のサンプルでの変更を示すフラグの集合が含まれる。これらのフラグは、各サンプルのパレット、カラー情報、ソース長方形、および宛先長方形に対する変更を反映し、ドライバコードの最適化を助けるために提供される。
【0194】
DeinterlaceBltEx構造体の説明を続けると、dwNumSurfacesパラメータは、lpDDSrcSurface配列の要素数を示す。ビデオ基準サンプルは、配列の先頭であり、これに、ビデオサブストリームがZ順で続く。1つの例示的な実施形態では、ドライバに渡されるビデオサブストリームの数が、0から15までの範囲になる可能性がある。最もしばしば、DeinterlaceBltExが呼び出される時に、ドライバに、0個または1個のビデオサブストリームが渡される。
【0195】
最後に、Alphaパラメータは、宛先サーフェスに書き込まれる時に、合成背景色、ビデオストリーム、およびサブストリームイメージに適用できるプレーナ透明度値を示す。
【0196】
プログレッシブビデオおよび複数のイメージサブストリームが受け取られた時に、VMRモジュール1316がDeinterlaceBltEx機能性を呼び出すことができることに留意されたい。これは、例えば、VMRモジュール1316が、プログレッシブビデオとインターレース式ビデオの混合を含むDVD再生に使用される時に発生し得る。この場合に、ディスプレイドライバ1320は、ビデオストリームのデインターレースを試みず(すでにプログレッシブフォーマットなので)、VMRモジュール1316は、そのビデオストリームを所与のサブストリームと組み合わせ、望み通りにまたは必要に応じて各ストリームのサイズを変更するように構成することができる(複数の基準サンプルを必要とするデインターレースモードが、プログレッシブビデオと共に使用されている場合には、複数の基準サンプルが、ディスプレイドライバ1320に送られるが、各基準サンプルは、同一のプログレッシブビデオフレームを参照する)。
【0197】
DeinterlaceBltEx機能性の議論のしめくくりに、図15および16で、この機能性が、合成動作およびデインターレース動作を一緒に1つの動作に組み合わせる形を説明する。
【0198】
図15は、1つの例示的で非制限的なシナリオによる、図13のシステム1300によって提供できるある動作の概要である。この図には、圧縮されたイメージ情報1502をイメージデコーダ1504に供給して、CI情報と共に非圧縮イメージ情報の現在のフレームを作ることができることが示されている。さらに、非圧縮イメージ情報1506の現在のフレームおよびCI情報が、非圧縮イメージの1つまたは複数の前のサンプル(例えば、前の非圧縮イメージ1510および1512)と共に、デインターレース論理1508に送られる。図15の論理1508は、デインターレース中のイメージ情報にイメージサブストリーム情報(例えば、サブストリーム情報1514、1516などから)を追加するようにも機能する。言い換えると、論理1508は、デインターレース動作をサブストリーム合成動作と効果的に組み合わせる。さらに、下で詳細に説明するように、論理1508は、この2つの機能を、複数のパスではなく単一のメモリ読み取り/書き込み動作で実行できるように、この2つの機能を実行する。すなわち、図15のシステム1500は、単一のストレージ(例えば、単一のメモリ読み取り/書き込みトランザクション)だけを必要とする(すなわち、1つの例示的な事例で、メモリからの単一の読み取りだけを必要とする)。
【0199】
上で説明した帯域幅効率は、イメージ情報(例えば、イメージ情報1506、1510および1512など)およびイメージサブストリーム情報(例えば、1514、1516など)を、GPUモジュール1322によって使用される異なるめいめいのテクスチャリングユニットに割り当てることによって達成することができる。最も一般的な応用例で、テクスチャリングユニットに、3次元レンダリング適用の過程で操作されるイメージサーフェスが割り当てられる。例えば、「テクスチャ」は、一般に、レンダリングされる3次元シーンの一部を形成するジオメトリプリミティブ(例えば、三角形)のサーフェスに「貼り付けられる」イメージを指す。これらの異なるテクスチャサーフェスが、異なるいわゆるテクスチャリングユニットに割り当てられる。図15に示されたシステムは、イメージ情報(例えば、1506、1510および1512など)およびイメージサブストリーム情報(1514、1516など)をめいめいのテクスチャリングユニットに割り当て、したがって、デインターレース動作および合成動作の類似する効率的なパフォーマンスを達成する。具体的に言うと、GPU論理は、本質的に、互い違いのシリアルな形ではなく、テクスチャリングユニットのコレクションのそれぞれから同時に情報を読み取り、処理する。これによって、実施するデバイスでのバス輻輳が減り、実施するデバイスが、イメージ情報および関連するイメージサブストリーム情報を最適のフレームレートで提示することがよりよく可能になる。
【0200】
他の実施形態で、論理1508は、色空間変換など、他の動作を実行することができる。例えば、論理1508は、イメージ情報の1つまたは複数のストリームをルマ関連色空間(例えば、YUV)からRGB関連色空間(例えば、線形RGBまたは非線形RGB)に変換することができる。その代わりに、論理1508は、ある種類のルマ関連色空間から別の種類のルマ関連色空間へ、またはある種類のRGB関連色空間から別の種類のRGB関連色区間へなどの変換を行うことができる。1つの例示的なシナリオでは、論理1508を使用して、図4(上)に示された特徴の諸態様を実施することができ、ここで、イメージ情報が、ルマ関連色空間から線形RGBに変換され、その後、処理が、線形RGB色空間内でイメージ情報に対して実行される(デインターレースと、その後のまたはそれと結合された、線形RGB色空間での他の処理)。言い換えると、論理1508の出力サーフェスは、RGB関連色空間(線形RGBなど)で表すことができる。
【0201】
もう1つのシナリオでは、論理1508の出力が、ルマ関連色空間(例えば、YUV)内でイメージ情報を処理して、RGB色空間ではなく、ルマ関連色空間の合成されデインターレースされたイメージ情報1518を作ることができる。論理1508または他のモジュール(図示せず)は、その後、ルマ関連カラー情報をRGB関連情報に変換することができ、次に、このRGB関連情報をディスプレイにレンダリングして、レンダリングされたイメージ情報1520を作ることができる。ルマ関連色空間からRGB関連色空間への変換を遅らせることは、潜在的な帯域幅節約を有する。例えば、一実施形態で、ルマ関連カラー情報を、12ビットを使用して提示することができる。対照的に、一実施形態で、RGB情報は、表現に32ビットを必要とする。したがって、合成などのタスクをRGB情報ではなくルマ関連情報を使用して実行することによって、このトランザクションに関連するバストラフィックが削減される。
【0202】
論理1508は、イメージのサイズ変更など、他の種類の処理機能を実行することができる。それでも、論理1508は、上で説明した処理動作のそれぞれを実行する必要がない。例えば、イメージ情報が、既にプログレッシブフォーマットである場合に、論理1508は、単純にイメージ情報のサイズを変更することまたはイメージ情報に対する他の所望の動作(色空間変換など)を実行すること専用とすることができる。
【0203】
さらに、他の実施形態で、1つまたは複数の動作を、単一の動作ではなく、連続して、例えば別々の動作として、実行することができる。図15の代替の論理1508’が、そのような実施形態を表す。例えば、DeinterlaceBlt機能性を、この形でイメージ処理を実行するように適合させる。
【0204】
どの場合でも、CIデータ構造体202に含まれるカラー情報は、特定の応用例に望まれる形でのイメージ情報の変換に必要な指示を提供する。具体的に言うと、論理1508は、イメージ情報の複数のストリームを処理する場合に、イメージ情報のストリームのそれぞれに関連するCIデータ構造体202を調べることができる。そのようなストリームごとのCIデータ構造体202を使用して、イメージ情報の異なるストリーム(異なるめいめいの色空間で表されている可能性がある)を、線形RGB色空間などの共通の色空間に変換することができる。この特徴は、1つまたは複数の中間色空間で表された一時的なイメージ情報をストアする必要がなくなるか減るので、有益である。上で説明した技法では、論理1508が、入力イメージ情報を受け取り、変換し、メモリに書き込むことができ、例えば、これによって、情報が出力デバイスによって表示される(例えばパーソナルコンピュータによって提供されるデスクトップ)前に、追加の合成されたYUVイメージ情報を提供する必要がなくなる。
【0205】
色空間関連指示を供給するためのCI情報202の使用の強調は、例示にすぎない。CI情報202は、図15に示された動作を決定するのに使用できる様々な他の情報を提供する。例えば、CI情報202は、対応するプログレッシブイメージを正しく補間するために、デインターレース動作で使用することもできる。
【0206】
図16に、論理1508によって可能にされるジョイント処理機能性を達成するのに使用できる1つの例示的な技法を示す。すなわち、図16で、単一の動作でデインターレースおよび合成を実行する1つの技法を説明する。
【0207】
図16に、テクスチャリングユニットおよび関連するメモリの例示的な編成1600を示す。これらの要素は、イメージサブストリーム情報内の主イメージ情報を同時に処理するのに使用される。メモリおよびテクスチャリングユニットは、図13に示されたグラフィックスモジュール1322に関連するローカルメモリ1330および/または共有メモリ1334を使用して実施することができる。
【0208】
上で注記したように、インターリーブおよび合成のジョイント動作は、イメージ情報が、まだ、YUV形式など、Y関連色空間にある間に行うことができる。したがって、この例示的で非制限的なシナリオでは、VMRモジュール1316が、このY関連情報をストアするためにメモリの一部を割り当てる。第1ブロック1602を、Y情報をストアするために割り当てることができ、第2ブロック1604を、第1クロマ成分(例えば、U情報)をストアするために割り当てることができ、第3ブロック1606を、第2クロマ成分(例えば、V情報)をストアするために割り当てることができる。2つのクロマ成分より多数のビットを、Y情報に割り当てる。例えば、720×480ピクセルを含むイメージについて、720×480バイトのブロックを、Y情報のストアに割り当て、360×240バイトのブロックを、第1クロマ成分のストアに割り当て、360×240バイトのブロックを、第2クロマ成分のストアに割り当てることができる。最後に、メモリのブロック1608を、サブストリーム情報(クローズキャプショニング情報、DVDサブイメージ表示情報、様々な種類のグラフィカルアイコンなど)のストアに割り当てることができる。
【0209】
図16に示された例示的な編成1600に、4つのテクスチャリングユニットだけが示されている(1610、1612、1614、および1616)。しかし、他の実施形態に、4つを超えるユニットが含まれる。テクスチャリングユニット1610は、メモリブロック1602に関連するイメージ入力サーフェス(例えば、Y情報)の処理に割り当てられ、テクスチャリングユニット1612は、メモリブロック1604に関連するイメージ入力サーフェス(例えば、第1クロマ成分、例えば、U)の処理に割り当てられ、テクスチャリングユニット1614は、メモリブロック1606に関連するイメージ入力サーフェス(例えば、第2クロマ成分、例えば、V)の処理に割り当てられる。テクスチャリングユニット1616は、メモリブロック1608に関連するイメージ入力サーフェス(例えば、サブストリーム情報)の処理に割り当てられる。メモリブロック(Y、クロマ1、クロマ2、およびサブストリーム情報)は、別々であるが、メモリ内で連続する必要はない。追加のメモリブロックおよびテクスチャリングユニットを設けて、追加のイメージ基準サンプルおよび/または追加のイメージサブストリームを処理することができる。例えば、2つの以前の基準ストリームを含むアプリケーションは、少なくとも9個のテクスチャリングユニット(例えば、現在のサンプルに3つのユニット、2つの基準サンプルに6つのユニット)を要求するはずである。
【0210】
最後に、図16に、包括的に、図15のGPU 1324に関連するGPU処理論理1618を示す。GPU処理論理1618は、テクスチャリングユニットと相互作用する。GPU処理論理1618は、デインターレース、フレームレート変換、および/または他のタスクを実行することができる。
【0211】
図16の動作を説明するためのYUV関連情報の使用は、単なる例示である。線形RGBなど、RGB関連空間内で処理動作を実行することによって(例えば、図4に示された形で)、類似する利益を得ることができる。
【0212】
E.例示的なコンピュータ環境
1つの例示的な実施形態で、前の図に示された処理の諸態様を、コンピューティング機器によって実行することができる。この場合に、図17は、前の図面に示された処理の諸態様を実施するのに使用できる例示的なコンピュータ環境1700に関する情報を提供する。
【0213】
コンピューティング環境1700に、汎用タイプのコンピュータ1702およびディスプレイデバイス1704が含まれる。しかし、コンピューティング環境1700に、他の種類のコンピューティング機器を含めることができる。例えば、図示されてはいないが、コンピューティング環境1700に、ハンドヘルドデバイス、ラップトップデバイス、セットトップボックス、ゲーム機、ビデオ処理/プレゼンテーションデバイス(例えば、テレビジョン、DVRなど)に統合された処理機能性、メインフレームコンピュータなどを含めることができる。さらに、図17に、議論を容易にするために一緒にグループ化されたコンピュータ環境1700の要素が示されている。しかし、コンピューティング環境1700は、分散処理構成を使用することができる。分散コンピューティング環境では、コンピューティングリソースを、環境全体に物理的に分散させることができる。
【0214】
例示的なコンピュータ1702に、1つまたは複数のプロセッサまたは処理ユニット1706、システムメモリ1708、およびバス1710が含まれる。バス1710は、様々なシステムコンポーネントを一緒に接続する。例えば、バス1710は、プロセッサ1706をシステムメモリ1708に接続する。バス1710は、様々なバスアーキテクチャのいずれかを使用する、メモリバスまたはメモリコントローラ、周辺バス、accelerated graphics port、およびプロセッサバスまたはローカルバスを含む、すべての種類のバス構造またはバス構造の組合せを使用して実施することができる。
【0215】
コンピュータ1702に、それぞれを取外し可能または取り外し不能とすることができる、様々なタイプの揮発性媒体および不揮発性媒体を含む様々なコンピュータ可読媒体も含めることができる。例えば、システムメモリ1708に、ランダムアクセスメモリ(RAM)1712などの揮発性メモリ、および読取専用メモリ(ROM)1714などの不揮発性メモリの形のコンピュータ可読媒体が含まれる。ROM 1714に、スタートアップ中などにコンピュータ1702内の要素の間での情報の転送を助ける基本ルーチンを含む入出力システム(BIOS)1716が含まれる。RAM 1712に、通常は、処理ユニット1706によって素早くアクセスできる形のデータおよび/またはプログラムモジュールが含まれる。
【0216】
他の種類のコンピュータストレージ媒体に、取外し不能不揮発性磁気媒体から読み取り、これに書き込むハードディスクドライブ1718、取外し可能不揮発性磁気ディスク1722(例えば「フロッピー(登録商標)ディスク」)から読み取り、これに書き込む磁気ディスクドライブ1720、CD−ROM、DVD−ROM、または他の光媒体などの取外し可能不揮発性光ディスク1726から読み取り、かつ/またはこれに書き込む光ディスクドライブ1724が含まれる。ハードディスクドライブ1718、磁気ディスクドライブ1720、および光ディスクドライブ1724は、それぞれ、1つまたは複数のデータ媒体インターフェース1728によってシステムバス1710に接続される。その代わりに、ハードディスクドライブ1718、磁気ディスクドライブ1720、および光ディスクドライブ1724を、SCSIインターフェース(図示せず)または他の結合機構によってシステムバス1710に接続することができる。図示されていないが、コンピュータ1702に、磁気カセット、または他の磁気ストレージデバイス、フラッシュメモリカード、CD−ROM、デジタル多用途ディスク(DVD)、または他の光ストレージ、電気的消去可能プログラマブル読取専用メモリ(EEPROM)などの他のタイプのコンピュータ可読媒体を含めることができる。
【0217】
一般に、上で識別されたコンピュータ可読媒体は、コンピュータ1702による使用のために、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストレージを提供する。例えば、可読媒体に、オペレーティングシステム1730、アプリケーションモジュール1732、他のプログラムモジュール1734、およびプログラムデータ1736をストアすることができる。
【0218】
コンピュータ環境1700に、様々な入力デバイスを含めることができる。例えば、コンピュータ環境1700に、コンピュータ1702にコマンドおよび情報を入力する、キーボード1738およびポインティングデバイス1740(例えば、「マウス」)が含まれる。コンピュータ環境1700に、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、シリアルポート、スキャナ、カード読み取りデバイス、デジタルカメラ、ビデオカメラなどの他の入力デバイス(図示せず)を含めることができる。入出力インターフェース1742が、入力デバイスを処理ユニット1706に結合する。より一般的には、入力デバイスを、パラレルポート、シリアルポート、ゲームポート、USB(universal serial bus)ポートなど、あらゆる種類のインターフェースおよびバス構造を介してコンピュータ1702に結合することができる。
【0219】
コンピュータ環境1700に、ディスプレイデバイス1704も含まれる。ビデオアダプタ1744が、ディスプレイデバイス1704をバス1710に結合する。ディスプレイデバイス1704の他に、コンピュータ環境1700に、スピーカ(図示せず)、プリンタ(図示せず)など、他の出力周辺デバイスを含めることができる。
【0220】
コンピュータ1702は、リモートコンピューティングデバイス1746などの1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク化された環境で動作する。リモートコンピューティングデバイス1746に、汎用パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ゲーム機、ネットワーク拡張デバイスなどを含むすべての種類のコンピュータ機器を含めることができる。リモートコンピューティングデバイス1746に、上でコンピュータ1702に関して述べた特徴のすべてまたはそのサブセットを含めることができる。
【0221】
LAN、WANなど、任意のタイプのネットワーク1748を使用して、コンピュータ1702をリモートコンピューティングデバイス1746に結合することができる。コンピュータ1702は、ネットワークインターフェース1750を介してネットワーク1748に結合され、ネットワークインターフェース1750は、ブロードバンド接続性、モデム接続性、DSL接続性、または他の接続戦略を使用することができる。図示されていないが、コンピューティング環境1700は、リモートコンピューティングデバイス1746とコンピュータ1702を接続する無線通信機能性を提供することができる(例えば、変調されたラジオ信号、変調された赤外線信号などを介する)。
【0222】
最後に、複数の例を、この開示で代替案として提示した(例えば、事例Aまたは事例B)。さらに、この開示は、すべての場合に組合せ事例に明示的に言及していない場合があるが、単一の実施形態で代替案を組み合わせた事例(例えば、事例Aおよび事例B)を含む。
【0223】
さらに、本明細書で、複数の特徴を、これらの特徴が対処できる例示的な問題をまず識別することによって説明した。この説明の形は、本明細書で指定された形で他者がその問題を諒解し、かつ/または表現したことの容認を構成しない。ビデオコーディングの技術に存在する問題の諒解および表現は、本発明の一部として理解されなければならない。
【0224】
より一般的に、本発明を、構造的特徴および/または方法論的動作に固有のことばで説明したが、請求項で定義される本発明が、必ずしも説明された特定の特徴または動作に制限されないことを理解されたい。そうではなく、特定の特徴および動作は、請求される発明を実施する例示的形として開示されたものである。

【特許請求の範囲】
【請求項1】
めいめいのイメージ情報を格納した複数のユニットを含むデータ処理モジュール内でイメージ情報を処理する方法であって、
前記複数のユニットの少なくとも1つをイメージ情報の主ビデオストリームに割り当てるステップと、
前記複数のユニットの他の少なくとも1つをイメージ情報のビデオサブストリームに割り当てるステップと、
合成ビデオ情報を作るために、前記主ビデオストリームおよび前記ビデオサブストリームを用いる少なくとも2つのタスクを単一の動作で実行するステップと
を含むことを特徴とする方法。
【請求項2】
前記複数のユニットは、複数のグラフィックステクスチャユニットを含むことを特徴とする請求項1に記載の方法。
【請求項3】
請求項1に記載の方法をプロセッサに実行させるためのコンピュータ実行可能命令を格納したことを特徴とする1つまたは複数のコンピュータ可読記録媒体。
【請求項4】
プロセッサと、
請求項1に記載の前記割り当てるステップおよび前記実行するステップを前記プロセッサに実行させるためのコンピュータ実行可能命令を格納したコンピュータ可読記録媒体と
を含むことを特徴とする装置。
【請求項5】
イメージ情報を処理する方法であって、
イメージ情報の主ビデオストリームを提供するステップと、
イメージ情報のビデオサブストリームを提供するステップと、
カラー情報データ構造体で指定されたカラー情報に基づいて、指定された色空間内で表される出力ビデオ情報を作るために、前記主ビデオストリームおよび前記ビデオサブストリームを用いる少なくとも2つのタスクを実行するステップと
を含むことを特徴とする方法。
【請求項6】
前記指定された色空間は、RGB関連色空間であることを特徴とする請求項5に記載の方法。
【請求項7】
前記RGB関連色空間は、非線形RGBデータを定義することを特徴とする請求項6に記載の方法。
【請求項8】
前記RGB関連色空間は、線形RGBデータを定義することを特徴とする請求項6に記載の方法。
【請求項9】
前記指定された色空間は、ルマ関連色空間であることを特徴とする請求項5に記載の方法。
【請求項10】
前記指定された色空間は、イメージ情報の複数のストリームを処理するための共通の色空間を定義することを特徴とする請求項5に記載の方法。
【請求項11】
前記カラー情報は、前記指定された色空間を識別することを特徴とする請求項5に記載の方法。
【請求項12】
前記実行するステップは、それぞれがそれに関連するそれ自体のめいめいのカラー情報データ構造体を有する、イメージ情報の複数のストリームを操作することを特徴とする請求項5に記載の方法。
【請求項13】
前記少なくとも2つのタスクは、前記主ビデオストリームのデインターレースを含み、前記カラー情報データ構造体は、前記デインターレースを決定する情報を含むことを特徴とする請求項5に記載の方法。
【請求項14】
前記少なくとも2つのタスクは、イメージ情報を第1色空間から第2色空間に変換することを含むことを特徴とする請求項5に記載の方法。
【請求項15】
前記第1色空間は、ルマ関連色空間であり、前記第2色空間は、RGB関連色空間であることを特徴とする請求項14に記載の方法。
【請求項16】
前記カラー情報データ構造体内の前記カラー情報は、前記変換を決定することを特徴とする請求項14に記載の方法。
【請求項17】
前記少なくとも2つのタスクは、
(a)前記主ビデオストリームをデインターレースすることと、
(b)前記主ビデオストリームを前記ビデオサブストリームと組み合わせることと、
(c)第1色空間から第2色空間へイメージ情報を変換することと
のうちの少なくとも2つを含むことを特徴とする請求項5に記載の方法。
【請求項18】
前記少なくとも2つのタスクは、単一の動作で実行されることを特徴とする請求項5に記載の方法。
【請求項19】
請求項5に記載の方法をプロセッサに実行させるためのコンピュータ実行可能命令を格納したことを特徴とする1つまたは複数のコンピュータ可読記録媒体。
【請求項20】
プロセッサと、
請求項5に記載の前記主ビデオストリームを提供するステップ、前記サブストリームを提供するステップ、および前記実行するステップのそれぞれを前記プロセッサに実行させるためのコンピュータ実行可能命令を格納したコンピュータ可読記録媒体と
を含むことを特徴とする装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2011−239455(P2011−239455A)
【公開日】平成23年11月24日(2011.11.24)
【国際特許分類】
【出願番号】特願2011−154377(P2011−154377)
【出願日】平成23年7月13日(2011.7.13)
【分割の表示】特願2006−522101(P2006−522101)の分割
【原出願日】平成16年7月30日(2004.7.30)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】