(57)【特許請求の範囲】
【請求項１】
画像サンプルと合成するためのフィルム粒子サンプルをランダムに生成する方法であって：
少なくとも一つのフィルム粒子パラメータの受領に際して擬似乱数発生器のシードを初期化する段階と、
前記シードで初期化された前記擬似乱数発生器により乱数を発生させる段階と、
フィルム粒子パターンのデータベースにアクセスしてフィルム粒子パターンを取得し、前記擬似乱数発生器によって発生された前記乱数に基づいて、取得されたフィルム粒子パターン内のランダムな位置にある、少なくとも一つのフィルム粒子サンプルを含むフィルム粒子ブロックを選択する段階、
とを有する方法。
【請求項２】
前記少なくとも一つのフィルム粒子パラメータの受領に際して、前記シードをある固定値に初期化する段階をさらに有する、請求項１記載の方法。
【請求項３】
前記少なくとも一つのフィルム粒子パラメータの受領に際して、前記シードを可変値に初期化する段階をさらに有する、請求項１記載の方法。
【請求項４】
前記シードを，受領されたビットストリームから抽出される少なくとも一つのパラメータに基づいて初期化する段階をさらに有する、請求項１記載の方法。
【請求項５】
あらかじめ定義されたシードの探索表にアクセスするために前記少なくとも一つのパラメータを使う段階をさらに有する、請求項３記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
〈関連出願への相互参照〉
本出願は米国特許法第１１９条（ｅ）のもとで、2004年11月24日に出願された米国仮特許出願第60/630,756号の優先権を主張するものであり、該文献の教示はここに組み込まれる。
〈技術分野〉
本発明は画像におけるフィルム粒子をシミュレートするための技法に、より詳細にはメディア装置による再生のための画像におけるフィルム粒子をシミュレートするための技法に関係する。
【背景技術】
【０００２】
動画のフィルムはハロゲン化銀の結晶を乳剤中に分散させたものをフィルムベース上に薄い層としてコーティングしたものである。それらの結晶の露光と現像が、ばらばらな銀の微小粒子からなる写真像を形成する。カラーネガでは、銀は現像後、化学的な除去を受け、銀結晶が形成される場所には色素の小さなしみが生じる。これらの色素の小さな斑点は普通、カラーフィルムにおける「粒子（grain）」と呼ばれる。もとの乳剤上で銀の結晶がランダムに形成されるため、結果として得られる像の上で粒子はランダムに分布しているように見える。一様に露光された領域内でも、露光後に現像される結晶もあれば、現像されない結晶もある。
【０００３】
粒子は大きさと形がさまざまである。フィルムが高速なほど、形成される銀のかたまりおよび生成される色素のしみは大きく、それらはより、ランダムなパターンでまとまる傾向をもつ。粒子パターンは典型的には「粒状性（granularity）」として知られる。個々の粒子は0.0002mmから約0.002mmとさまざまであり、裸眼で見分けることはできないが、その代わり、目は粒子のグループを解像する。これは小滴（blob）と称される。観察者はそれらの小滴の集まりをフィルムの粒子として識別する。像の解像度が大きくなるほど、フィルムの粒子の知覚は高くなる。フィルムの粒子は映画および高精細度画像では明瞭に認識できる一方、標準精細度テレビでは漸次重要性を失い、それより小さなフォーマットでは知覚できなくなる。
【０００４】
動画フィルムは典型的には、写真フィルムの露光および現像という物理的プロセスから、あるいは画像のその後の編集から帰結する画像依存のノイズを含んでいる。写真フィルムは、写真乳剤の物理的な粒状性から帰結する、特徴的な準ランダムなパターンすなわちきめ（texture）を有する。あるいはまた、計算により生成した画像を写真フィルムに合成するために同様のパターンをシミュレートすることもできる。いずれの場合でも、この画像依存ノイズは粒子と呼ばれる。しばしば、ほどほどの粒子のきめが動画における望ましい特徴を呈する。いくつかの事例では、フィルム粒子は二次元映像の正しい知覚を容易にする視覚的手がかりを与える。フィルム粒子はしばしば、時間基準、視点などについてのさまざまな手がかりを与えるために単一のフィルム内で変化をつけられる。動画産業では粒子のきめを制御するための他の多くの技術的および芸術的使用が存在している。したがって、画像処理および配送チェーンを通じて、画像の、粒子のある見かけを保存することは、動画産業における要件となっている。
【０００５】
商業的に入手可能ないくつかの製品は、フィルム粒子をシミュレートする機能をもつ。これはしばしばコンピュータ生成されたオブジェクトを自然の場面に合成するためである。米国ニューヨーク州ロチェスターのイーストマン・コダック社からのCineon（登録商標）は、粒子シミュレーションを実装した最初のデジタルフィルムアプリケーションの一つであるが、多くの粒子タイプについて非常にリアルな結果を生じる。しかし、Cineon（登録商標）アプリケーションは、多くの高速フィルムについては良好なパフォーマンスを与えない。これは、高い粒子サイズ設定については該アプリケーションは認識できる斜めの縞を生じてしまうからである。さらに、Cineon（登録商標）アプリケーションは、たとえば画像がコピーまたはデジタル処理されるなど、画像が前処理にかけられるときには十分な忠実度をもった粒子をシミュレートできない。
【０００６】
フィルム粒子をシミュレートするもう一つの商業製品はビジュアル・インフィニティ社からのGrain  Surgery（商標）である。これはAdobe（登録商標）After  Effects（登録商標）のプラグインとして使用される。Grain  Surgery（商標）製品は、乱数の組をフィルタ処理することによって人工的な粒子を生成するように見える。このアプローチは計算量が多いという欠点がある。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
これらの過去の方式はいずれも、圧縮されたビデオにおいてフィルム粒子を復元する問題は解決しない。フィルム粒子は高周波数の準ランダムな現象をなし、それは典型的には、ビデオシーケンスにおける冗長性を利用する通常の空間的および時間的方法を使った圧縮にはかけられない。フィルム由来の画像をMPEG-2またはITU-T/ISO  H.264圧縮技法を使って処理する試みは、通常、受け容れられないほど低い圧縮率か、粒子のきめの完全な消失につながる。
こうして、メディアプレーヤーによる再生のための画像におけるフィルム粒子をシミュレートする技法の必要性が存在する。
【課題を解決するための手段】
【０００８】
ひとことで言うと、本原理によれば、通常再生モードおよびトリック再生モードでの画像再生の際にビット精確性〔ビット精度〕（bit  accuracy）を保証するために画像のブロックに加えるためのフィルム粒子ブロックをシミュレートする方法が提供される。該方法は、少なくとも一つのパラメータを少なくとも部分的に前記ブロックのある属性に基づいて確立することによって開始される。その後、フィルム粒子の少なくとも一つのブロックが、前記少なくとも一つのパラメータに基づいてビット精確性をもって確立される。
【図面の簡単な説明】
【０００９】
【図１】本原理の技法を実施するために有用な、フィルム粒子処理チェーンにおける送信機および受信機の組み合わせのブロック概略図である。
【図２】本原理に基づくフィルム粒子をシミュレートするためのシステムのブロック概略図である。
【図３】図２の方法に基づいてフィルム粒子をシミュレートするための、2を法とする原始多項式を生成するためのシフトレジスタのブロック図である。
【図４】図２の方法に基づいてフィルム粒子を生成することにおける乱数の使用を示すピクセルグリッドを描いた図である。
【発明を実施するための形態】
【００１０】
個々のフィルム粒子ブロックからなるビット精確な（bit-accurate）フィルム粒子パターンをシミュレートするための本原理の技術を理解するため、フィルム粒子シミュレーションの手短な概観が役立つだろう。図１は送信機１０のブロック概略図を描いている。送信機１０は入力ビデオ信号を受け取り、その出力に圧縮されたビデオストリームを生成する。さらに、送信機１０は、サンプル中に存在するフィルム粒子（もし存在すれば）を示す情報をも生成する。実際上、送信機１０は、ケーブルテレビシステムまたは圧縮されたビデオを一つもしくは複数の下流の受信機１１に配信する他のそのようなシステムの、ヘッドエンド・アレイの一部をなすことができる。図１では受信機は一つだけ示されている。送信機１０は、DVD１２のような媒体を呈示するエンコーダの形をとることもできる。受信機１１は、符号化されたビデオストリームを復号し、前記のフィルム粒子情報および復号されたビデオに基づいてフィルム粒子をシミュレートする。これらはいずれも、送信機１０から、あるいはDVDなどの場合には媒体そのものから直接、受け取られる。こうして受信機１１は、シミュレートされたフィルム粒子をもつ出力ビデオストリームを生じる。受信機１１は、セットトップボックスまたは圧縮されたビデオを復号してそのビデオ中にフィルム粒子をシミュレートするはたらきをする他のそのような機構の形をとることもできる。特に、受信機１１は、再生のために画像を復号し、そのような画像中にフィルム粒子を合成し、通常再生スピードおよびトリック再生スピードでその画像を再生する機能のあるDVD再生装置の形をとることができる。
【００１１】
フィルム粒子の全体的な管理は、送信機１０（すなわちエンコーダ）が入力ビデオにおけるフィルム粒子に関する情報を提供することを必要とする。換言すれば、送信機１０がフィルム粒子を「モデル化する」。さらに、受信機１１（すなわちデコーダ）は、送信機１０から受信されたフィルム粒子情報に従ってフィルム粒子をシミュレートする。送信機１０は、ビデオ符号化プロセスの間、フィルム粒子を保持することに困難があるときに、受信機１１がビデオ信号中のフィルム粒子をシミュレートできるようにすることによって、圧縮されたビデオの品質を高めるのである。
【００１２】
図１の図示された実施形態では、送信機１０はビデオエンコーダ１３を含んでいる。ビデオエンコーダ１３はITU-T  Rec.H.264|ISO/IEC14496-10ビデオ圧縮規格のようなよく知られたビデオ圧縮技法のいずれかを使ってビデオストリームをエンコードする。任意的に、エンコードの前に入力ビデオストリームにおける一切のフィルム粒子を除去するために、エンコーダ１３の上流にフィルム粒子除去器１４が存在していてもよい。これは図１では破線で描かれているフィルタなどの形である。入力ビデオがフィルム粒子を含まない限りでは、フィルム粒子除去器１４の必要性は存在しない。
【００１３】
フィルム粒子モデル化器１６は、入力ビデオストリームおよびフィルム粒子除去器１４（存在しているとき）の出力信号を受容する。そのような入力情報を使って、該フィルム粒子モデル化器１６は入力ビデオ信号中のフィルム粒子を確立する。最も単純な形では、フィルム粒子モデル化器１６は、種々のフィルム材のためのフィルム粒子モデルを含む探索表を有することができる。入力ビデオ信号における情報は、ビデオ信号への変換前に画像を記録するのにもともと使われた特定のフィルム材を指定し、それによりフィルム粒子モデル化器１６がそのようなフィルム材についての適切なフィルム粒子モデルを選択することを許容する。あるいはまた、フィルム粒子モデル化器１６は、入力ビデオをサンプリングして存在するフィルム粒子パターンを決定するための一つまたは複数のアルゴリズムを実行するプロセッサまたは専用論理回路を有することもできる。これについては以下で論じる。
【００１４】
受信機１１は典型的にはビデオデコーダ１８を含む。ビデオデコーダ１８は送信機１０から受信される圧縮されたビデオストリームを復号するはたらきをする。デコーダ１８の構造は、送信機１０内のエンコーダ１３によって実行される圧縮の種別に依存する。よって、たとえば、送信機１０内で出ていくビデオを圧縮するのにITU-T  Rec.H.264|ISO/IEC14496-10ビデオ圧縮規格を用いるエンコーダ１３を使えば、H.264準拠のデコーダ１８の必要性が命じられる。受信機１１内では、フィルム粒子シミュレータ２０がフィルム粒子モデル化器１６からフィルム粒子情報を受け取る。フィルム粒子シミュレータ２０はプログラムされたプロセッサまたはフィルム粒子をシミュレートする機能をもつ専用論理回路の形をとることができる。シミュレートされたフィルム粒子は組み合わせ器２２を介して復号されたビデオストリームと組み合わされる。
【００１５】
フィルム粒子シミュレーションは、もとのフィルム内容の見え方をシミュレートするフィルム粒子サンプルを人工的に生成することをねらいとする。前述のように、フィルム粒子のモデル化は図１の送信器１０で行われるのに対し、フィルム粒子シミュレーションは受信機１１で行われる。具体的には、フィルム粒子シミュレーションは、ビデオデコーダの上流にある送信機１０からの入力ビデオストリームの復号とともに受信機１１で行われる。受信機１１において行われる復号プロセスが、フィルム粒子が加えられた画像は使用しないことを注意しておく。むしろ、フィルム粒子シミュレーションは、復号された画像においてシミュレートされたフィルム粒子を表示のために人工生成するための後処理方法をなす。その理由で、ITU-T  Rec.H.264|ISO/IEC14496-10ビデオ圧縮規格は、フィルム粒子シミュレーション・プロセスについては何の規定も含んでいない。しかし、フィルム粒子シミュレーションは入力ビデオ信号における粒子パターンに関する情報を必要とする。そのような情報は典型的には、ITU-T  Rec.H.264|ISO/IEC14496-10ビデオ圧縮規格を使うときは該圧縮規格の補正１（忠実度範囲拡張［Fidelity  Range  Extensions］）によって規定される補足向上情報（SEI:  Supplemental  Enhancement  Information）メッセージでの送信をされる。
【００１６】
本原理のフィルム粒子シミュレーション技法は、ビット精確な粒子シミュレーションを可能にし、たとえばHD  DVDプレーヤーのような消費者製品への用途をもつ。他の潜在的な用途としては、セットトップボックス、テレビおよびカムコーダーなどといった記録装置さえをも含みうる。シミュレーション技法仕様はITU-T  Rec.H.264|ISO/IEC14496-10規格に準拠する。フィルム粒子シミュレーションは、ビデオビットストリームの復号後、ピクセル表示の前に起こる。フィルム粒子シミュレーション・プロセスは、最終的には、ITU-T  Rec.H.264|ISO/IEC14496-10規格[1]の補正１（忠実度範囲拡張）によって規定されるフィルム粒子特性SEIメッセージで送信されるフィルム粒子補足情報の復号を必要とする。フィルム粒子特性SEIメッセージに影響する仕様は、本技術が品質および計算量の点で高精細度システムの要件を満たすことを保証する。
【００１７】
〈フィルム粒子特性SEIメッセージ仕様〉
論じたように、フィルム粒子特性は、画像に伴うITU-T  Rec.H.264|ISO/IEC14496-10フィルム粒子特性SEIメッセージにおいて現れる。フィルム粒子特性メッセージにおけるパラメータの値は次のように制約される：
model_idはシミュレーションモデルを指定する。示される実施形態では、この値は0に等しい。これはこのフィルム粒子シミュレーションモデルを周波数フィルタ処理として識別する。
【００１８】
separate_colour_description_present_flagは、フィルム粒子パラメータが推定される色空間が、ビデオシーケンスがエンコードされた色空間と異なっているかどうかを指定する。示される実施形態では、この値は0に等しい。これはフィルム粒子シミュレーションについての色空間がエンコードのものと同じままであることを示す。
【００１９】
blending_mode_idは、シミュレートされたフィルム粒子を復号された画像に合成するために使われる合成モードを指定する。示される実施形態では、この値は0に等しい。これは加法的合成モードに対応する。
【００２０】
パラメータlog2_scale_factorは、SEIメッセージ中でフィルム粒子パラメータを表すのに使われる対数スケール因子を指定する。示される実施形態では、この値は、フィルム粒子シミュレーションが16ビット演算を使ってできることを保証するよう[2,7]の範囲にある。
【００２１】
intensity_interval_lower_bound[c][i]およびintensity_interval_upper_bound[c][i]は、フィルム粒子パラメータがすでにモデル化されている色成分cの強度区間iの限界を指定する。すべてのcおよび任意の強度値vについて、intensity_interval_lower_bound[c][i]≦vかつintensity_interval_upper_bound[c][i]≧vを検証する単一の強度区間iがある。多重生成（multi-generational）フィルム粒子が許容されないためである。
【００２２】
num_model_values_minus1[c]は、色成分cについての各強度区間において存在するモデル値の数を指定する。すべてのcについて、この値は[0,2]の範囲にあり、帯域通過フィルタ処理および色間（cross-color）相関がサポートされていないことを指定する。
【００２３】
comp_model_value[c][i][0]は色成分cおよび強度区間iについてのフィルム粒子強度を指定する。すべてのcおよびiについて、この値は、フィルム粒子シミュレーションが16ビット演算を使って実行できることを保証するよう[0,255]の範囲にある。
【００２４】
comp_model_value[c][i][1]は、水平方向の上カット周波数を指定する。これは色成分cおよび強度区間iについてのフィルム粒子の形を特徴付ける。すべてのcおよびiについて、この値は[2,14]の範囲にある。これはすべての必要とされる粒子パターンを含む範囲である。
【００２５】
comp_model_value[c][i][2]は、垂直方向の上カット周波数を指定する。これは色成分cおよび強度区間iについてのフィルム粒子の形を特徴付ける。すべてのcおよびiについて、このパラメータは[2,14]の範囲にある。これはすべての必要とされる粒子パターンを含む範囲である。
【００２６】
film_grain_characteristics_repetition_periodは、ビットストリーム中に別のフィルム粒子特性SEIメッセージが存在すべきかどうかを示し、別のフィルム粒子特性SEIメッセージが存在する画像順番号（picture  order  count）区間を指定する。示される実施形態では、この値は0に等しい。これは、フィルム粒子特性SEIメッセージが現在の復号される画像のみに適用されることを指定する。
【００２７】
本原理によれば、フィルム粒子の挿入を要求するあらゆる画像にフィルム粒子特性SEIメッセージが先行しなければならない。このアプローチは、DVDプレーヤーのようなメディア再生装置について通常の再生モードと同様トリックモードにおいてもビット精確性を保証し、フィルム粒子シミュレーションがビット精確な技法で行われる限り、復号順および表示順の両方においてビット精確なフィルム粒子挿入を許容する。
【００２８】
SEIメッセージにおけるすべての色成分cおよび強度区間を組み合わせても、異なる対（comp_model_value[c][i][1]とcomp_model_value[c][i][2]）の数は10を超えない。ITU-T  Rec.H.264|ISO/IEC14496-10規格によって規定されているフィルム粒子特性SEIメッセージにおける他のすべてのパラメータは本原理に従う制約条件をもたない。
【００２９】
〈ビット精確なフィルム粒子シミュレーション〉
現在の映像において、フィルム粒子シミュレーションは、パラメータfilm_grain_characteristics_cancel_flagが1でない限り行われる。現行のITU-T  Rec.H.264|ISO/IEC14496-10ビデオ圧縮規格の仕様は、すべての色成分におけるフィルム粒子のシミュレーションを許容する。フィルム粒子特性SEIメッセージにおいてcomp_model_present_flag[c]が1に等しい場合に、フィルム粒子のシミュレーションと、復号された画像の色成分cへのシミュレートされたフィルム粒子の付加が行われる。本原理によれば、ビット精確なフィルム粒子シミュレーションは、まずフィルム粒子パターンのデータベースを指定することによって行われる。その後、フィルム粒子パターンの擬似ランダムな選択がその目的のための一様擬似乱数発生器を使って行われる。選択されたパターンは次いで、精密な動作シーケンスを受ける。フィルム粒子シミュレーションは典型的には、各色成分について独立して行われる。
【００３０】
〈フィルム粒子シミュレーションの動作シーケンス〉
図２には、フィルム粒子をシミュレートして復号された画像に加えるために実行される動作のシーケンスが見られる。三原色のうち特定の一つへの本シミュレーション・プロセスの個別化は、cを0、1または2に設定することによってできる。例示的な実施形態では、フィルム粒子シミュレーションは、8×8ピクセルのブロックサイズによるラスタスキャン順で行われるが、他の実装もやはり可能である。
【００３１】
動作シーケンスは、フィルム粒子パラメータを確立するためのステップ１００の実行で開始される。シミュレートされるフィルム粒子についてのフィルム粒子パラメータを確立するプロセスの一部は、入力ビデオ信号によって担われるフィルム粒子情報を抽出することを含む。入力ビデオ情報はDVD１２の再生に際して発生したもの、あるいはセットトップボックス２００から発生するものである。ITU-T  Rec.H.264|ISO/IEC14496-10ビデオ符号化規格を使ってエンコードされた入力ビデオ信号については、フィルム粒子情報はSEIメッセージ中に現れる。SEIメッセージを抽出するには、図２に示すようなH.264|MPEG-4  AVC準拠デコーダ１０１を使ってH-264符号化された入力ビデオ信号を復号することが必要となる。実際上は、デコーダ１０１は、セットトップボックス２００内に、あるいはDVD１２上の情報を再生するためのDVDプレーヤー内に存在する。
【００３２】
SEIメッセージはいくつかのパラメータを含む。それにはintensity_interval_lower_bound[c][i]およびintensity_interval_upper_bound[c][i]が含まれる。ここで、iの範囲は0からパラメータnum_intensity_intervals_minus1[c]の値までである。これらのSEIメッセージパラメータは、デコーダ１０１による復号に続いて表示バッファ１０２に保存された復号された画像中の重ならない8×8ピクセルブロックのそれぞれの色成分cについて計算された平均ピクセル強度値に対して比較を受ける。復号された画像の色成分cからの重ならない8×8ピクセルブロックのそれぞれについて、平均値の計算は、ステップ１０３の間に次のようにして行われる：
avg=0
for(k=0;k<8;k++)
for(l=0;l<8;l++)
avg+=decoded_picture[c][m+k][n+l]
avg=(avg+32)>>6
ここで、(m,n)はブロックの左上の座標であり、decoded_picture[c][m+k][n+l]は色成分cの座標(m+k,n+l)における復号されたピクセル値である。
【００３３】
0からnum_intensity_intervals_minus1[c]までの範囲のiの値について、平均値がSEIメッセージintensity_interval_lower_bound[c][i]およびintensity_interval_upper_bound[c][i]のパラメータと比較される。ブロック平均値がintensity_interval_lower_bound[c][i]以上かつintensity_interval_upper_bound[c][i]以下であるiの値は、sと表すが、これはステップ１００の間に確立された現在のブロックについてのフィルム粒子パラメータを選択するはたらきをする。先の条件を満たす値が存在しなければ、現在のブロックについてフィルム粒子シミュレーションは行われない。そのような場合、フィルム粒子ブロック生成プロセスがステップ１０４の間に行われる。そのような条件下では、以下に述べるブロッキング除去ステップ１０８は、すべてのピクセルが0に等しい8×8ブロックを入力として受け取る。
【００３４】
例示的な実施形態では、SEIメッセージは、水平方向の上カット周波数および垂直方向の上カット周波数（時にカットオフ周波数と称される）を含んでいる。これらの周波数は、所望のフィルム粒子パターンを特徴付ける二次元フィルタの属性を記述するものである。SEIメッセージ中に記述される色成分（c＝1,2）のカット周波数が4:4:4の色フォーマットに設定されていると、4:2:0の色フォーマットに適応するために次のようなスケーリングを受ける：
comp_model_value[c][s][1]=Clip(2,14,(comp_model_value[c][s][1]<<1))
comp_model_value[c][s][2]=Clip(2,14,(comp_model_value[c][s][2]<<1))
ステップ１０４は、フィルム粒子ブロックを確立するプロセスを開始する。ただし、該フィルム粒子ブロックは典型的には必ずしも8×8ピクセルの大きさではない。8×8ピクセルのフィルム粒子ブロックを確立するステップは、フィルム粒子データベース１０５から8×8のフィルム粒子サンプルのブロックを取得し、該サンプルを適切な強度にスケーリングすることを含む。ただし、スケーリングは望ましいが、必ずしも行われる必要はない。データベース１０５は典型的には4096のフィルム粒子サンプルの169のパターンを有している。それぞれが64×64のフィルム粒子パターンを表す。データベース１０５は値を2の補数の形で保存する。その範囲は−127から127である。各フィルム粒子パターンの人工生成は、典型的には、フィルム粒子パターンを定義する二次元フィルタを確立する特定の一対のカット周波数を使って行われる。SEIメッセージ中で送信されたカット周波数がフィルム粒子シミュレーションの際にフィルム粒子パターンのデータベース１０５へのアクセスを可能にする。
【００３５】
8×8ピクセルのフィルム粒子ブロックの生成は、データベースからの8×8フィルム粒子サンプルのブロックの取得のみならず、それらのサンプルの適正な強度へのスケーリングをも含む。カット周波数comp_model_value[c][s][1]およびcomp_model_value[c][s][2]は、データベースのどのパターンがフィルム粒子サンプルの源として使われるかを決定する。二つのランダム発生された値が、該パターンから8×8ブロックを選択するはたらきをする。これらのランダムな値は、64×64ピクセルのパターン内で水平方向および垂直方向のオフセットを表すもので、次のような手順を使って生成される：
k_offset=(MSB16(x(r,ec))%52)
k_offset&=0xFFFC
k_offset+=m&0x0008
l_offset=(LSB16(x(r,ec))%56)
l_offset&=0xFFF8
l_offset+=n&0x0008
ここで、x(r,ec)は、図３に描かれている乱数発生器１１４がシードecによって開始されるときに生成される擬似乱数列xのr番目のシンボルを示す。図３に見られるように、乱数発生器１１４は32ビットシフトレジスタで、その上位16ビットおよび下位16ビットが上出のMSB16およびLSB16をなす。(m,n)は復号された画像における現在の8×8ブロックの座標である。k_offsetについて、最初の式が[0,51]の範囲に一様分布値した擬似乱数を発生させ、第二の式がその値を4の倍数に制限し、最後の式はm%16が8に等しいときにk_offsetに8を足す。同等な演算がl_offsetについても実行される。
【００３６】
実際上は、図３の擬似乱数発生器１１４は、2を法とした原始多項式演算子x31+x3+1を32ビットシフトレジスタとの関連で利用する。データベース１０５中に保存されている64×64ピクセルのフィルム粒子パターンから8×8ピクセルのフィルム粒子ブロックをランダムに選択するためのものである。示されている実施形態では、擬似乱数発生器１１４のシードの初期化は次式に従って行われる：
ec＝Seed_LUT[(ABS(POC)+idr_pic_id<<5+offset[c])%173]
ここで、
ABS(.)は絶対値を表し；
POCは現在の画像の画像順番号（picture  order  count）を表し、ITU-T  Rec.H.264|ISO/IEC14496-10規格で指定されているビデオストリームから導出されるべきもので；
idr_pic_idはIDR画像を同定するために、ITU-T  Rec.H.264|ISO/IEC14496-10ビデオストリームのスライスヘッダから読まれるべきものである。
【００３７】
適正なフィルム粒子シミュレーションを保証するため、HD  DVD規格は、idr_pic_idが各エンコードされたIDRについて変わることを規定している。一方、offset[3]＝{0,58,115}は各色成分についての異なるオフセットを与える。Seed_LUTは補遺Aの従節A.3に掲げる。ポーズの間に、擬似乱数発生器１１４のシードは画像のはじめにおける同じ値への初期化を受ける。代替的に、シードは次のように初期化されることもできる。
【００３８】
ec＝Seed_LUT[(PicOrderCnt+PicOrderCnt_offset<<5+color_offset[c])%256]
ここで、color_offset[3]＝{0,85,170}であり、Seed_LUTは173ではなく256個の値を含んでいる。
【００３９】
図３擬似乱数発生器１１４を介して生成された擬似乱数値x(r,ec)は、16ピクセルごと（水平方向）および16行ごと（垂直方向）に更新を受ける。復号された画像の16×16ピクセルの重ならない各領域は、同じ擬似乱数x(r,ec)を使う。図４に示されるように、結果として得られる擬似乱数値x(r,ec)の列は、16×16ピクセルグリッド上でのラスタスキャン順に従い、先に論じたように8×8ピクセルのブロックのラスタスキャン順を可能にする。
【００４０】
示されている実施形態では、フィルム粒子ブロック生成ステップ１０４の一部として、ランダムなオフセットの計算に続いて、データベースから抽出される64個のフィルム粒子値のスケーリングが次のように行われる：
scale_factor=(BIT0(x(r,ec))==0)?comp_model_value[c][s][0]:
-comp_model_value[c][s][0]
scale_factor>>=(c==0)?0:1
for(k=0;k<8;k++)
for(l=0;l<8;l++)
{
g=scale_factor*database[h][v][k+k_offset][l+l_offset]
film_grain_block[k][l]=(((g+2log2_scale_factor-1)>>log2_scale_factor)+32)>>6
}
ここで、hはcomp_model_value[c][s][1]−2に等しく、vはcomp_model_value[c][s][2]−2に等しく、因子6は補遺Aの付録A.3で与えられるフィルム粒子値をスケーリングする。BIT0はLSBを表す。
【００４１】
ステップ１０８の間に、フィルム粒子パターンのシームレスな形成を保証するため、隣接するフィルム粒子ブロック間でブロッキング除去フィルタ（deblocking  filter）（図示せず）が適用される。示されている実施形態では、ブロッキング除去フィルタは、隣接ブロックどうしの間の垂直方向の辺にのみ適用される。フィルム粒子ブロックはラスタスキャン順にシミュレートされると想定し、current_fg_blockの左端ピクセルがprevious_fg_blockの右端ピクセルに隣接していると想定すると、ブロッキング除去フィルタは、3タップのフィルタによって次のように行われる：
for(k=0;k<8;k++){
l1=previous_fg_block[6][k]
l0=previous_fg_block[7][k]
r0=current_fg_block[0][k]
r1=current_fg_block[1][k]
current_fg_block[0][k]=(l0+(r0<<1)+r1+2)>>2
previous_fg_block[7][k]=(l1+(l0<<1)+r0+2)>>2
}
フィルム粒子シミュレーション・プロセスの終わりには、ブロッキング除去されたフィルム粒子ブロックは、合成ブロック１１０を介して、対応する復号された画像ブロックとの合成を受け、その結果が表示に先立って[0,255]にクリッピングされる：
for(k=0;k<8;k++)
for(l=0;l<8;l++)
display_picture[c][m+k][n+l]
=Clip(0,255,decoded_picture[c][m+k][n+l]+fg_block[k][l])
ここで、(m,n)はブロックの左上の座標であり、decoded_ picture[c][m+k][n+l]は色成分cの座標(m+k,n+l)における復号されたピクセル値であり、display_picture[c][m+k][n+l]は前記座標におけるビデオ出力である。
【００４２】
切り換え要素１１１が、制御要素１１２の制御のもとで、ブロッキング除去されたフィルム粒子ブロックのブロック１１０への通過を制御する。制御要素１１２は前記切り換え要素の制御を、SEIメッセージパラメータfilm_grain_characteristics_cancel_flagが1に等しいか、パラメータfilm_grain_characteristics_repetition_periodによって指定されるフレーム範囲を超えたかに応じて行う。先に論じたようにこれらが、フィルム粒子シミュレーションが行われるかどうかを指定するのである。
【００４３】
セットトップボックス２００とは別個に示されているが、ステップ１００、１０３、１０４および１０８を含む全体的なプロセスならびに要素１０１、１０２、１０５、１０６、１０９、１１１および１１２はセットトップボックス内に存在することも容易である。同じことは、DVD１２のコンテンツを再生するDVDプレーヤー（図示せず）についてもいえる。
【００４４】
〈補遺Ａ〉
フィルム粒子パターンデータベース１０５のビット精確な表現を達成することは、事前計算された値のリストを保存することによっても、あるいは初期化プロセスを通じて値を計算することによっても行える。
【００４５】
データベース１０５のビット精確な生成は、（１）ガウス乱数の探索表LUT；（２）発生器１０６のような一様擬似乱数発生器、整数変換を提供することにより、および以下に述べる動作のシーケンスを実行することにより行える。水平カット周波数h＋2および垂直カット周波数v＋2をもつ64×64フィルム粒子パターンの生成は、database[h][v]と印されるデータベースを生じる。データベース生成プロセスは、database[h][v]中のあらゆる可能なパターンの生成を要求する。ここで、hおよびvは0ないし12の範囲にある。
【００４６】
個々の64×64ブロック画像を形成するために、4096までの値がガウス乱数の探索表から読まれる。付録A.3において与えられているガウス乱数のLUTは、2の補数の形で格納された、−127ないし127の範囲の2048個の値からなる。ガウス乱数のLUTにランダムにアクセスするために、節２で定義される一様擬似乱数発生器（PRNG）が使われる。
【００４７】
初期化ステップでは、64×64ブロック画像の値は0に設定され、PRNGのシードは次のように初期化される：
ehv＝Seed_LUT[h+v*13]                    (A-1)
64×64ブロック画像の生成は次のように行われる：
fh=((h+3)<<2)-1
fv=((v+3)<<2)-1
for(l=0,r=0;l<=fv;l++)
for(k=0;k<=fh;k+=4){
B[k][l]=Gaussian_LUT[x(r,ehv)%2048]
B[k+1][l]=Gaussian_LUT[x(r,ehv+1)%2048]
B[k+2][l]=Gaussian_LUT[x(r,ehv+2)%2048]
B[k+3][l]=Gaussian_LUT[x(r,ehv+3)%2048]
r++
}
B[0][0]=0
ここで、x(r,ehv)はシードehvで初期化された多項式xの反復rにおいて生成される擬似乱数値である。
64×64逆整数変換の計算
係数の64×64行列の逆変換は、フィルム粒子パターンdatabase[h][v]を生じる。逆変換の計算は次のように行われる：
database[h][v]=(((R64T×B+128)>>8)×R64+128)>>8
水平な8×8ブロック辺のブロッキング除去
64×64フィルム粒子パターンの生成プロセスの最終ステップは、水平な8×8ブロック辺のブロッキング除去を含む。ブロッキング除去は、次の式に従ったピクセル値の減衰によって実行される。
for(l=0;l<64;l+=8){
for(k=0;k<64;k++){
database[h][v][k][l]=(database[h][v][k][l]*deblock_factor[v])>>7
database[h][v][k][l+7]=(database[h][v][k][l+7]*deblock_factor[v])>>7
ここで、deblock_factor[v]は好ましい実施形態については次のように定義される：
deblock_factor[v]＝{66,71,77,84,90,96,103,109,116,122,128,128,128}
以上は、画像中のフィルム粒子をシミュレートするための技法を、より詳細にはメディア装置による再生のための画像中のフィルム粒子をシミュレートするための技法を記載する。
【００４８】
本願の原出願の出願当初の特許請求の範囲を記載しておく。
〔請求項１〕
フィルム粒子ブロックをシミュレートする方法であって：
少なくとも部分的にはある画像ブロックの属性に従って、少なくとも一つのパラメータを確立する段階と、
前記少なくとも一つのパラメータに従って少なくとも一つのフィルム粒子パターンから少なくとも一つのフィルム粒子のブロックをシミュレートする段階、
とを有する方法。
〔請求項２〕
フィルム粒子のブロックを前記画像ブロックと合成する段階をさらに含む、請求項１記載の方法。
〔請求項３〕
前記シミュレートする段階に先立って、前記画像ブロックに付随する補足的なフィルム粒子情報メッセージが受領される、請求項１記載の方法。
〔請求項４〕
前記フィルム粒子のブロックを前記画像ブロックと、復号順に合成する段階をさらに含む、請求項３記載の方法。
〔請求項５〕
前記フィルム粒子のブロックを前記画像ブロックと、表示順に合成する段階をさらに含む、請求項３記載の方法。
〔請求項６〕
少なくとも一つのフィルム粒子のブロックを、復号順にシミュレートする段階をさらに含む、請求項１記載の方法。
〔請求項７〕
少なくとも一つのフィルム粒子のブロックを、表示順にシミュレートする段階をさらに含む、請求項１記載の方法。
〔請求項８〕
前記確立する段階がさらに：
前記画像ブロックに伴っており、それぞれが前記画像ブロック中でシミュレートされるべきフィルム粒子の属性を示す複数のパラメータを含んでいるフィルム粒子情報メッセージを受領する段階と；
前記複数のパラメータのうちの少なくとも一つを選択する段階、
とを有する、請求項１記載の方法。
〔請求項９〕
前記シミュレートする段階がさらに：
前記画像ブロックのクロマ成分についてカット周波数をスケーリングする段階と；
前記画像ブロックについて平均ピクセル値を計算する段階と；
前記ブロックに対する前記平均ピクセル値を、当該フィルム粒子ブロックと合成されるべき画像ブロックに伴うフィルム粒子情報メッセージ中の対応する強度値と比較する段階と；
フィルム粒子ブロックのデータベースからフィルム粒子のブロックを取得する段階と；
隣接するブロック間の縦方向のエッジをブロッキング除去する段階、
とを有する、請求項１記載の方法。
〔請求項１０〕
4:4:4クロマフォーマットでの前記少なくとも一つのパラメータの受領に際して、前記クロマ成分についてのカット周波数が4:2:0のフォーマットにスケーリングされる、請求項９記載の方法。
〔請求項１１〕
フィルム粒子のブロックを取得する前記段階がさらに、該フィルム粒子のブロックをランダムに取得する段階を含む、請求項９記載の方法。
〔請求項１２〕
前記取得する段階がさらに、事前に計算されたフィルム粒子ブロックのデータベースからフィルム粒子のブロックを取得する段階を含む、請求項９記載の方法。
〔請求項１３〕
4096個の事前計算されたフィルム粒子サンプルの169個のパターンを−127ないし127の範囲の２の補数の形で保存することによってフィルム粒子ブロックのデータベースを確立する段階を含む、請求項１２記載の方法。
〔請求項１４〕
ガウス乱数値の探索表を指定する段階と；
前記探索表にランダムにアクセスする段階と；
前記探索表からのランダムにアクセスされた値に対して整数逆変換を実行する段階と；
前記整数逆変換から得られたパターンの水平な辺をブロッキング解除する段階、
によってフィルム粒子ブロックのデータベースを確立する段階をさらに含む、請求項９記載の方法。
〔請求項１５〕
前記画像ブロックに伴うフィルム粒子メッセージがシミュレーションの禁止を指定している場合、フィルム粒子のシミュレーションが行われない、請求項１記載の方法。
〔請求項１６〕
ピクセル値があらゆる規定の帯域の外にある場合にフィルム粒子シミュレーションを禁止する段階をさらに有する、請求項９記載の方法。
〔請求項１７〕
ある画像ブロックのためのフィルム粒子ブロックをシミュレートする方法であって：
少なくとも部分的には前記画像ブロックの属性に従って、少なくとも一つのパラメータを確立する段階と；
前記少なくとも一つのパラメータに従ってビット精確性をもって少なくとも一つのフィルム粒子のブロックをシミュレートする段階と；
フィルム粒子のブロックを前記画像ブロックと合成する段階、
とを有する方法。
〔請求項１８〕
前記シミュレートする段階に先立って、前記画像ブロックに付随する補足的なフィルム粒子情報メッセージが受領される、請求項１７記載の方法。
〔請求項１９〕
前記フィルム粒子のブロックを前記画像ブロックと、復号順に合成する段階をさらに含む、請求項１８記載の方法。
〔請求項２０〕
前記フィルム粒子のブロックを前記画像ブロックと、表示順に合成する段階をさらに含む、請求項１７記載の方法。
〔請求項２１〕
少なくとも一つのフィルム粒子のブロックを、復号順にシミュレートする段階をさらに含む、請求項１７記載の方法。
〔請求項２２〕
少なくとも一つのフィルム粒子のブロックを、表示順にシミュレートする段階をさらに含む、請求項１７記載の方法。
〔請求項２３〕
画像ブロックと合成するためのフィルム粒子ブロックをシミュレートする装置であって：
少なくとも部分的には前記画像ブロックの属性に従って、少なくとも一つのパラメータを確立する手段と、
前記少なくとも一つのパラメータに従って少なくとも一つのフィルム粒子パターンを生成することによって少なくとも一つのフィルム粒子のブロックをシミュレートする手段、
とを有する装置。
〔請求項２４〕
少なくともフィルム粒子のあるブロックを前記画像ブロックと合成する手段をさらに含む、請求項２３記載の装置。
〔請求項２５〕
前記合成する手段が、前記フィルム粒子のブロックを前記画像ブロックと、復号順に合成する、請求項２３記載の装置。
〔請求項２６〕
前記合成する手段が、前記フィルム粒子のブロックを前記画像ブロックと、表示順に合成する、請求項２３記載の装置。
〔請求項２７〕
フィルム粒子をシミュレートする前記手段が、少なくとも一つのフィルム粒子のブロックを、復号順にシミュレートする、請求項２３記載の装置。
〔請求項２８〕
フィルム粒子をシミュレートする前記手段が、少なくとも一つのフィルム粒子のブロックを、復号順にシミュレートする、請求項２３記載の装置。
〔請求項２９〕
前記確立する手段がさらに：
前記画像ブロックに伴っており、それぞれが前記画像ブロック中でシミュレートされるべきフィルム粒子の属性を示す複数のパラメータを含んでいるフィルム粒子情報メッセージを受領する手段と；
前記複数のパラメータのうちから前記少なくとも一つのパラメータを選択する手段、
とを有する、請求項２３記載の装置。
〔請求項３０〕
前記シミュレートする手段がさらに：
前記画像ブロックのクロマ成分についてカット周波数をスケーリングする手段と；
前記画像ブロックについて平均ピクセル値を計算する手段と；
前記ブロックの前記平均ピクセル値を、当該フィルム粒子ブロックと合成されるべき画像ブロックに伴うフィルム粒子情報メッセージ中の対応する強度値と比較する手段と；
フィルム粒子ブロックのデータベースと；
前記フィルム粒子ブロックのデータベースからフィルム粒子のブロックを取得する手段と；
隣接するブロック間の縦方向のエッジをブロッキング除去する手段、
とを有する、請求項２３記載の装置。
〔請求項３１〕
4:4:4クロマフォーマットでの前記少なくとも一つのパラメータの受領に際して、スケーリング手段が、前記クロマ成分についてのカット周波数を4:2:0のフォーマットにスケーリングする、請求項３０記載の装置。
〔請求項３２〕
フィルム粒子のブロックを取得する前記手段が、該フィルム粒子ブロックをランダムに取得する、請求項３０記載の装置。
〔請求項３３〕
前記データベースが事前に計算されたフィルム粒子ブロックを含んでいる、請求項３０記載の装置。
〔請求項３４〕
前記データベースが、4096個の事前計算されたフィルム粒子サンプルの169個のパターンを−127ないし127の範囲の２の補数の形で含んでいる、請求項３０記載の装置。
〔請求項３５〕
コンピュータをして、画像ブロックと合成するためのフィルム粒子をシミュレートさせるコンピュータ可読媒体であって：
前記コンピュータをして、少なくとも部分的には前記画像ブロックの属性に従って、少なくとも一つのパラメータを確立させる第一の手段と；
前記コンピュータをして、前記少なくとも一つのパラメータに従ってビット精確性をもって少なくとも一つのフィルム粒子のブロックをシミュレートさせる第二の手段、
の段階を有する媒体。
〔請求項３６〕
ある画像ブロックと合成するためのフィルム粒子ブロックをシミュレートする方法であって：
少なくとも部分的には前記画像ブロックの属性に従って、少なくとも一つのパラメータを確立する段階と；
フィルム粒子パターンのデータベースにアクセスすることによって前記少なくとも一つのパラメータに従って少なくとも一つのフィルム粒子のブロックをシミュレートする段階、
とを有する方法。
〔請求項３７〕
前記フィルム粒子パターンデータベースを不揮発性記憶に格納する段階をさらに有する、請求項３６記載の方法。
〔請求項３８〕
システム初期化に際して前記フィルム粒子パターンデータベースを生成する段階をさらに有する、請求項３６記載の方法。
〔請求項３９〕
画像サンプルと合成するためのフィルム粒子サンプルをランダムに生成する方法であって：
少なくとも一つのフィルム粒子パラメータの受領に際して擬似乱数発生器のシードを初期化する段階と、
前記乱数に基づいてフィルム粒子パターンのデータベースにランダムにアクセスすることによって少なくとも一つのフィルム粒子サンプルを生成する段階、
とを有する方法。
〔請求項４０〕
前記少なくとも一つのフィルム粒子パラメータの受領に際して、前記シードをある固定値に初期化する段階をさらに有する、請求項３９記載の方法。
〔請求項４１〕
前記少なくとも一つのフィルム粒子パラメータの受領に際して、前記シードを可変値に初期化する段階をさらに有する、請求項３９記載の方法。
〔請求項４２〕
前記シードを，受領されたビットストリームから抽出される少なくとも一つのパラメータに基づいて初期化する段階をさらに有する、請求項３９記載の方法。
〔請求項４３〕
あらかじめ定義されたシードの探索表にアクセスするために前記少なくとも一つのパラメータを使う段階をさらに有する、請求項４１記載の方法。
【００４９】
〈付録Ａ〉
【表１】
0005400185.tif 000002
【表２】
0005400185.tif 000003
【表３】
0005400185.tif 000004
【表４】
0005400185.tif 000005
【表５】
0005400185.tif 000006
【表６】
0005400185.tif 000007
【表７】
0005400185.tif 000008
【表８】
0005400185.tif 000009
【表９】
0005400185.tif 000010
〈A2.2  PRNGシードのLUT〉
【表１０】
0005400185.tif 000011
【表１１】
0005400185.tif 000012
【００５０】
〈A2.3  変換行列〉
【表１２】
0005400185.tif 000013
【表１３】
0005400185.tif 000014
【表１４】
0005400185.tif 000015
【表１５】
0005400185.tif 000016
【表１６】
0005400185.tif 000017
【表１７】
0005400185.tif 000018
【表１８】
0005400185.tif 000019
【表１９】
0005400185.tif 000020
【図１】
0005400185.tif 000021
【図２】
0005400185.tif 000022
【図３】
0005400185.tif 000023
【図４】
0005400185.tif 000024