図1は、例示的な使用シナリオにおける、ある単一層高ダイナミックレンジ(HDR)画像コーデック100を示す。この使用シナリオでは、同じ画像の標準ダイナミックレンジ(SDR)およびHDRバージョンが、通信リンク120を介して、プロダクション・システム110からHDR対応の閲覧システム130に中継される。プロダクション・システム110はエンコーダ112を含む。閲覧システム130は、デコーダ132およびディスプレイ136を含む。コーデック100は、逐次反復的な再整形関数最適化器114と、HDR再構成器134とを含む。ディスプレイ136は、コーデック100の一部ではなく、コーデック100に依拠する。逐次反復的再整形関数最適化器114は、エンコーダ112において実装され、HDR再構成器134は、デコーダ132において実装される。
動作では、プロダクション・システム110は、同じ画像の2つの異なるバージョンを表す入力SDR画像180および入力HDR画像182を生成または受領する。別のシナリオでは、入力SDR画像180は、オリジナルの画像コンテンツを表し、入力HDR画像182は、入力SDR画像180の、HDR互換で、可能性としては向上されたバージョンとして、入力SDR画像180から生成される。エンコーダ112は、入力SDR画像180および入力HDR画像182を処理して前方および後方再整形関数を最適化するために、逐次反復的再整形関数最適化器114を実行する。これらの最適化された再整形関数に基づいて、エンコーダ112は、メタデータ190とともに再整形されたSDR画像184を生成する。メタデータ190は、少なくとも、デコーダ132のHDR再構成器134によって使用される、最適化された後方再整形関数の仕様を、エンコードする。
プロダクション・システム110は、再整形されたSDR画像184およびメタデータ190を、通信リンク120を介して閲覧システム130に中継する。通信リンク120は、そのネイティブなビット深さではHDR画像の方向伝送を許容しないビット深さに制限されることがある。一例では、通信リンク120は、8ビットまたは10ビットに制限された一つまたは複数のインターフェースおよび/または記憶媒体を含む。通信リンク120は、たとえば映画ストリーミングに使用されるような、一つまたは複数の無線または有線伝送経路を含んでいてもよい。あるいはまた、通信リンク120は、DVDまたはブルーレイディスクのような物理的な記憶媒体を利用してもよい。閲覧システム130は、デコーダ132が内蔵されたテレビジョン、DVD/ブルーレイプレーヤーに組み込まれたデコーダ132を有するDVD/ブルーレイプレーヤーに結合されたテレビジョン(または他のディスプレイ)、またはデコーダ132が内蔵されたコンピュータ(たとえば、デスクトップ、ラップトップ、スマートフォン、またはタブレット)でありうる。
再整形されたSDR画像184およびメタデータ190を受領した後、デコーダ132は、再整形されたSDR画像184に、メタデータ190によって指定された後方再整形関数を適用することによって、再構成されたHDR画像186を生成するために、HDR再構成器134を実行する。次いで、閲覧システム130は、再構成されたHDR画像186をディスプレイ136に表示してもよい。
代替的な使用シナリオにおいて、HDR対応でない閲覧システムが再整形されたSDR画像184およびメタデータ190を受領する場合、このHDR対応でない閲覧システムは、メタデータ190に含まれる後方再整形関数仕様を無視し、その代わりに、再整形されたSDR画像184をそのまま表示するか、または再整形されたSDR画像184から生成されるSDR画像を表示することができる。
逐次反復的な再整形関数最適化器114は、前方および後方再整形関数を決定するために逐次反復プロセスを実行するように構成される。各反復工程において、逐次反復的再整形関数最適化器114は、(a)再整形されたSDR画像184と入力SDR画像180との間の偏差を最小化するよう前方再整形関数を、(b)再構成されたHDR画像186と入力HDR画像182との間の偏差を最小化するよう後方再整形関数を最適化する。従来の単一層HDRコーデックの最適化プロセスが、前方および後方再整形関数の特性を調整することにのみ依拠するところ、逐次反復的再整形関数最適化器114は、入力SDR画像180への後方誤差伝搬を利用する。より具体的には、終了条件が満たされるまで、逐次反復的再整形関数最適化器114は、SDR入力画像180を補正し、SDR入力画像180の補正されたバージョンに基づいて前方および後方再整形関数の最適化を繰り返す。入力SDR画像180への後方誤差伝搬を伴うこの逐次反復プロセスは、再整形関数を最適化する個々の反復工程の複雑さを軽減し、結果として生じる再整形関数の性能を改善し、コーデック100を従来の単一層HDRコーデックよりも広い範囲のアプリケーションに適したものとすることができる。
エンコーダ112は、プロセッサと、非一時メモリとを含んでいてもよく、逐次反復的再整形関数最適化器114は、非一時なメモリに格納されるソフトウェアとして実装される。このソフトウェアは、サードパーティーのプロセッサ(たとえばプロダクション・システムの一部であるサードパーティーのコンピュータ上にある)と一緒に実装されるよう、スタンドアローン製品として提供されてもよい。
図2は、(a)入力HDR画像を再整形されたSDR画像に圧縮するための前方再整形関数、および(b)再整形されたSDR画像を再構成されたHDR画像に圧縮解除するための後方再整形関数を生成するための1つの方法200を示す。方法200は、入力SDR画像180および入力HDR画像182を入力として受ける。方法200は、入力SDR画像180への後方誤差伝搬を伴う再整形関数の逐次反復的最適化を利用し、単一層HDR画像コーデックにおける使用のために構成される。逐次反復的再整形関数最適化器114は、入力SDR画像180および入力HDR画像182を処理する方法200を実施して、再整形されたSDR画像184および後方再整形関数を指定するメタデータ190の一部を生成してもよい。方法200は、ステップ210、220、230、および240のいくつかの反復工程を含む。
各反復工程において、ステップ210は、再整形されたSDR画像184と入力SDR画像180との間の偏差を最小化するよう前方再整形関数を最適化し、ステップ220は、再構成されたHDR画像186と入力HDR画像182との間の偏差を最小化するよう後方再整形関数を最適化する。ステップ210および220のそれぞれは、多様な最適化方法、たとえば、多変量多重回帰(multivariate multiple regression、MMR)、テンソル積bスプライン(tensor product b-spline、TPBS)近似、または当技術分野で既知の他の最適化方法を利用することができる。ステップ220は、同じ反復工程のステップ210で最適化された前方再整形関数によって生成される再整形されたSDR画像184に後方再整形関数を適用するステップ222を実装してもよい。ステップ210の一例では、逐次反復的再整形関数最適化器114は、入力SDR画像180および入力HDR画像182を受領し、(a)入力SDR画像180と(b)入力HDR画像182に前方再整形関数を適用することによって生成される再整形されたSDR画像184との間の偏差を最小化するよう、前方再整形関数を最適化する。ステップ220の関連する例では、逐次反復的再整形関数最適化器114は、入力HDR画像182および再整形されたSDR画像184(最適化された前方再整形関数を入力SDR画像180に適用することによって生成される)を処理する。この処理において、逐次反復的再整形関数最適化器114は、(a)入力HDR画像182と、(b)再整形されたSDR画像184に後方再整形関数を適用することによって生成される再構成されたHDR画像186との間の偏差を最小化するよう、後方再整形関数を最適化する。
ステップ230は、ステップ210および220の後に実行される判断ステップであり、終了条件が満たされるかどうかを評価する。終了条件が満たされない場合、方法200はステップ240に進む。終了条件が満たされる場合、方法200は、ステップ250および252の一方または両方を実行するように進行してもよい。ステップ230は、逐次反復的再整形関数最適化器114によって実行されてもよい。ある実施形態では、終了条件は、再構成されたHDR画像186と入力HDR画像182との間の偏差指標(以下、HDRのみの偏差指標と称する)が閾値量以下であることである。別の実施形態では、終了条件は、複合偏差指標が満たされることであり、複合偏差指標は、(i)再構成されたHDR画像186と入力HDR画像182との間の偏差、および(ii)再整形されたSDR画像184と入力SDR画像180との間の偏差の重み付けされた組み合わせである。これらの2つの実施形態のいずれも、反復回数に制限を加えるように拡張されてもよい。たとえば(1)偏差指標(HDRのみまたは複合)が関連する閾値量以下である、および(2)あらかじめ定義された最大反復回数が実行された、の2つの状況のいずれかが正規した場合に、終了条件が満たされる。
入力SDR画像180および入力HDR画像182は、複数の色成分チャネルを有するカラー画像であってもよい。カラー画像に関するある実施形態では、偏差指標(たとえば、HDRのみの偏差指標および複合偏差指標のいずれか)は、複数の色成分チャネルのすべてに基づく。カラー画像に関する別の実施形態では、偏差指標は、複数の色成分チャネルのサブセットのみに基づく。たとえば、色成分チャネルがルーマ・チャネル、第1のクロマ・チャネル、および第2のクロマ・チャネルである場合、偏差指標は、ルーマ・チャネルが逐次反復プロセスのためのガイドとして使用されるように、唯一のルーマ・チャネルに基づいてもよく、偏差指標は、クロマ・チャネルが逐次反復プロセスのためのガイドとして使用されるように、クロマ・チャネルのみに基づいてもよい。ルーマ・チャネルおよび2つのクロマ・チャネルを有するカラー画像に関する方法200の別の実施形態では、逐次反復的最適化はクロマ・チャネルに適用され、一方、ルーマ・チャネルのための前方および後方の再整形関数は、ステップ210および220の単一反復工程においてのみ最適化される。
ステップ240は、入力SDR画像180に補正を適用する。ステップ240の一例では、逐次反復的再整形関数最適化器114は、入力SDR画像180に補正を適用し、しかるのちに、補正された入力SDR画像180をステップ210、220、および240の次の反復工程に供給する。ある実施形態では、ステップ230は、偏差指標(たとえば、HDRのみの偏差指標)を評価し、ステップ240は、入力SDR画像180を、偏差指標の関数である量だけ補正する。たとえば、ステップ240は、入力SDR画像180をHDRのみの偏差指標に比例する量だけ補正することができ、その量は、任意的には、入力SDR画像にあまりに大きな変化が生じないように、所定の最大補正量未満に任意に制限される。代替例のステップ240では、補正量を偏差指標に関係付ける関数は、逐次反復的最適化を所望の仕方でガイドするために、より複雑である。ステップ240は、ピクセル毎に入力SDR画像180を補正することができ、入力SDR画像180の各ピクセルは、そのピクセルに関連する偏差指標に依存する量だけ補正される。
ステップ250は、ステップ210の最後の反復工程において、この反復工程において最適化された前方再整形関数を使用して生成された再整形されたSDR画像を、出力する。ステップ250の一例では、逐次反復的再整形関数最適化器114は、再整形されたSDR画像184を出力する。ステップ252は、ステップ220の最後の反復工程において最適化された後方再整形関数を特徴付ける一つまたは複数のパラメータを出力する。ステップ252の一例では、逐次反復的再整形関数最適化器114は、メタデータ190の一部としてこれらの一つまたは複数のパラメータを出力する。
図2には示されていないが、方法200は、入力SDR画像180の未補正バージョンを維持することを含むことができる。そのような実施形態では、ステップ240の逐次反復における入力SDR画像180のすべての補正は、入力SDR画像180のローカル・コピーに対して実行されうる。
方法200がビデオを処理するために利用される場合、方法200は、ビデオの各フレームについて繰り返されてもよい。あるいはまた、方法200は、前方および後方再整形関数をより低頻度で再最適化してもよく、たとえば、いくつかの相続くフレームについて同じ前方および後方再整形関数を使用してもよい。
方法200の一実施形態の数学的記述:
ここでは、t個のフレームを有する入力信号に適用される方法200の一実施形態を議論する目的で、記法を導入する。ここで、tは1以上であり、各フレームは入力SDR画像180および入力HDR画像182によって表される。v
t,i
chが入力HDR信号についてのchチャネルにおけるtフレームにおけるi番目のピクセルを表すとする。s
t,i
chが入力SDR信号についてのchチャネルにおけるtフレームのi番目のピクセルを表すとする。k回目の反復工程については、前方再整形関数のk回目の反復をFR
t
ch,(k)()で表すものとし、FR
t
ch,(k)()におけるパラメータ集合のk回目の反復をFP
t
ch,(k)で表すものとし、後方再整形関数のk回目の反復をBR
t
ch,(k)()で表すものとし、BR
t
ch,(k)()におけるパラメータ集合のk回目の反復をBP
t
ch,(k)で表すものとし、
は再整形されたSDR信号についてのchチャネルにおけるtフレームにおけるi番目のピクセルを表すものとし、
は再構成されたHDR信号についてのchチャネルにおけるtチャネルにおけるi番目のピクセルを表すものとし、
は補正された入力SDR信号についてのchチャネルにおけるtチャネルにおけるi番目のピクセルを表すものとする。
最初の反復工程(k=0)において、方法200のこの実施形態は、補正された入力SDR信号をもとの入力SDR信号として設定する。すなわち、
方法200のこの実施形態の各反復工程kにおいて、ステップ210は、再整形されたSDR信号と補正された入力SDR信号との間の差を最小化する前方再整形関数のパラメータを見つける:
方法200のこの実施形態の各反復工程kにおいて、ステップ210は、再構成されたHDR信号と入力HDR信号との間の差を最小化する後方再整形関数のパラメータ、すなわちBP
t
ch,(k)を見つける:
各反復工程kの終わりに、再整形されたHDR信号および入力HDR信号に基づいて、方法200のこの実施形態におけるステップ240は、反復工程k+1において使用されるべき入力SDR信号
を補正する量
を決定する。この量は
の関数である:
g関数は、単純な減算関数
が、任意的には補正スケーリング因子によってスケーリングされ、および/または、さらに後方再整形関数の勾配の追加的な考慮を組み込んだものであってもよい。すると、ステップ240は、次の反復工程のための補正された入力SDR信号を
のように設定する。
方法200のこの実施形態は、HDRおよびSDRにおける偏差指標をそれぞれ次のように定義する
この実施形態では、ステップ230は、事前設定された最大反復数および閾値以下の複合偏差指標
のいずれかに達するまで、方法200の逐次反復を継続する。ここで、w
vおよびw
sは組み合わせの重みである。ある実装では、w
vは1に等しく、w
sは0に等しく、複合偏差指標はHDRのみの偏差指標に帰着する。別の実装では、組み合わせ重みw
vおよびw
sは、HDR歪みとSDR歪みとの間の所望のトレードオフを定義するように設定される。これについては、下記で「例1:多項式再整形関数」において詳細に論じられる。これは、4次多項式整形関数を使用する例において、方法200を用いて得られた結果を提示する。
図3は、入力SDR画像への後方誤差伝搬を伴う再整形関数の逐次反復的最適化の各反復工程において実装されうる、前方および後方再整形関数を最適化するための1つの方法300を示す。方法300は、方法200のステップ210および220の実施形態であり、逐次反復的再整形関数最適化器114によって実行されてもよい。方法300は、それぞれステップ210および220の実施形態であるステップ310および320を含む。ステップ310は、前方予測モデルを使用して、(a)入力SDR画像180と、(b)入力HDR画像182から前方再整形関数によって生成される再整形SDR画像184との間の偏差を最小化するよう、前方再整形関数の一つまたは複数のパラメータ390、たとえばFPt
ch,(k)を最適化する。ステップ320は、後方予測モデルを使用して、(a)入力HDR画像182と、(b)再整形されたSDR画像184から後方再整形関数によって生成された再構成されたHDR画像186との間の偏差を最小化するよう、後方再整形関数の一つまたは複数のパラメータ392、たとえばBPt
ch,(k)を最適化する。
ステップ310および320のそれぞれにおいて、予測モデルは、MMRまたはTPBS近似を組み込んでもよい。
方法300が方法200において実装される場合、方法200のステップ252が(もし含まれれば)パラメータ392を出力することができる。ある実装では、ステップ310の各反復工程で生成されるパラメータ390は、その後のどのステップでも使用されない。別の実施形態では、ステップ310のある反復工程で生成されるパラメータ390は、ステップ310のその後の反復工程のための開始点として使用されてもよい。ステップ320の各反復工程において生成された再構成されたHDR画像186は、(a)ステップ230において、終了条件が満たされているかどうかを評価するために、および(b)ステップ240において、入力SDR画像180が補正される量を決定するために、使用されてもよい。
図4は、単一層HDR画像コーデックにおいて入力SDRとHDR画像対をエンコードするための1つのエンコーダ400を示す。エンコーダ400は、方法200を実行するように構成されたエンコーダ112の実施形態である。エンコーダ400は、プロセッサ410と、インターフェース412と、非一時的な機械読み取り可能メモリ420とを含む。メモリ420は、前方最適化命令440、後方最適化命令450、SDR画像補正命令460、および逐次反復制御命令470を含む機械読み取り可能な命令430を記憶する。メモリ420は、エンコーダ400によって使用される画像、パラメータ、および/または他のデータを記憶するように構成されたデータ記憶480をさらに含んでいてもよい。
エンコーダ400は、入力SDR画像180および入力HDR画像182をインターフェース412を介して受領する。エンコーダ400は、入力SDR画像180および入力HDR画像182をデータ記憶480に記憶することができる。ひとたびエンコーダ400が方法200を実行したら、エンコーダ400は、再整形されたSDR画像184およびメタデータ190をインターフェース412を介して出力することができ、メタデータ190は、エンコーダ400によって最適化された後方再整形関数の仕様を含む。インターフェース412は、入力インターフェースと出力インターフェースの両方を含んでいてもよい。
前方最適化命令440は、プロセッサ410によって実行されると、方法200のステップ210を実行するようにプロセッサ410を制御するように構成される。ステップ210を実行するために、プロセッサ410は、入力SDR画像180および入力HDR画像182をデータ記憶装置480から取り出し、結果として得られた再整形されたSDR画像184をデータ記憶480に記憶するまたは更新することができる。プロセッサ410は、さらに、ステップ210における最適化の間の、前方再整形パラメータ390の一時的な記憶のために、データ記憶480を使用してもよい。
後方最適化命令450は、プロセッサ410によって実行されると、方法200のステップ220を実行するようにプロセッサ410を制御するように構成される。ステップ220を実行するために、プロセッサ410は、再整形されたSDR画像184および入力HDR画像182をデータ記憶480から取り出し、結果として得られた後方再整形パラメータ392および再構成されたHDR画像186をデータ記憶480に記憶するまたは更新することができる。
逐次反復制御命令470は、プロセッサ410によって実行されると、方法200のステップ230を実行するようにプロセッサ410を制御するように構成される。逐次反復制御命令470は、終了条件472を含んでいてもよい。逐次反復制御命令470を実行するとき、プロセッサ410は、入力HDR画像182、再構成されたHDR画像186、入力SDR画像180、および再整形されたSDR画像184のうちの一つまたは複数をデータ記憶480から取り出して、終了条件472が満たされているかどうかを判定することができる。終了条件472は、偏差閾値474(たとえば、δ)を含んでいてもよい。終了条件472はまた、最大反復数476を含んでいてもよい。
SDR画像補正命令460は、プロセッサ410によって実行されると、方法200のステップ240を実行するようにプロセッサ410を制御するように構成される。プロセッサ410は、入力HDR画像182および再構成されたHDR画像186をデータ記憶480から取り出して、入力SDR画像180が補正される量を決定し、次いで、データ記憶480において入力SDR画像180を更新することができる。
命令430は、MMR命令442およびTPBS命令444の一方または両方をさらに含んでいてもよい。MMR命令442は、MMRに基づいて関連する最適化を実行するために、前方最適化命令440および/または後方最適化命令450によって呼び出されてもよい。TPBS命令444は、前方最適化命令440および/または後方最適化命令450によって呼び出されて、TPBS近似に基づいて関連する最適化を実行することができる。
図5Aおよび図5Bは、クロマ・チャネルにおいてのみ後方誤差伝搬を伴うカラー画像のための前方および後方再整形関数を生成するための1つの方法500を示し、ここで、クロマ・チャネルにおける各最適化の反復工程はMMRを利用する。方法500は、方法200の実施形態であり、方法300を実装してもよい。方法500は、たとえば、エンコーダ400において実装されるように、逐次反復的再整形関数最適化器114によって実行されてもよい。図5Aは、入力のSDRおよびHDR画像対のルーマ成分について、前方および後方再整形関数を生成するためのフローチャートである。図5Bは、入力のSDRおよびHDR画像対の各クロマ成分について、前方および後方再整形関数を生成するためのフローチャートである。
入力のSDR画像180および入力HDR画像182のカラー・バージョンのルーマ成分について、方法500は、それぞれステップ210および220のルーマ・チャネル固有の実施形態であるステップ510Lおよび520Lを含む。ルーマ・チャネルについては、方法500は、入力SDR画像580および入力HDR画像582を入力として取る。入力SDR画像580および入力HDR画像582はカラー画像である。入力SDR画像580は、入力SDR画像ルーマ成分580Lと呼ばれるルーマ成分と、入力SDR画像クロマ成分580C0および580C1と呼ばれる2つのクロマ成分とを有する。入力HDR画像582は、入力HDR画像ルーマ成分582Lと入力HDR画像クロマ成分582C0および582C1と呼ばれる2つのクロマ成分とを有する。ステップ510Lは、入力SDR画像ルーマ成分580Lおよび入力HDR画像ルーマ成分582Lを処理する。ステップ510Lは、再整形されたSDR画像ルーマ成分584Lと入力SDR画像ルーマ成分580Lとの間の偏差を最小化するよう、ルーマ成分についての前方再整形パラメータ590Lによって特徴付けられる前方再整形関数を最適化する。ステップ520Lは、再構成されたHDR画像ルーマ成分586Lと入力HDR画像ルーマ成分582Lとの間の偏差を最小化するよう、ルーマ成分についての後方再整形パラメータ592Lによって特徴付けられる後方再整形関数を最適化する。
ひとたびステップ510Lが完了すると、方法500は、再整形されたSDR画像ルーマ成分584Lを出力するステップ550Lを実行することができる。ひとたびステップ520Lが完了すると、方法500は、ルーマ成分についての後方再整形パラメータ592Lを出力するステップ552Lを実行することができる。
関連するクロマ・チャネルについて、方法500は、それぞれステップ210、220、230、および240のクロマ固有の実施形態であるステップ510C、520C、530C、および540Cを含む。
ステップ510Cは、(a)再整形されたSDR画像クロマ成分584C0と入力SDR画像クロマ成分580C0との間の偏差、および(b)再整形されたSDR画像クロマ成分584C1と入力SDR画像クロマ成分580C1との間の偏差を最小化するよう、第1のクロマ成分についての590C0および第2のクロマ成分についての590C1という前方再整形パラメータによって特徴付けられる前方再整形関数を最適化するためにMMRを利用する。ステップ510CのMMRプロセスは、(a)再整形されたSDRクロマ成分584C0および584C1の両方を予測し、(b)それぞれの前方再整形パラメータ590C0および590C1によって特徴付けられるクロマ・チャネルについての前方再整形関数を最適化するために、入力として、入力HDR画像582のすべての色成分を取る。
次に、ステップ520Cは、(a)再構成されたHDR画像クロマ成分586C0と入力HDR画像クロマ成分582C0との間の偏差、および(b)再構成されたHDR画像クロマ成分586C1と入力HDR画像クロマ成分582C1との間の偏差を最小化するよう、第1のクロマ成分についての後方再整形パラメータ592C0および第2のクロマ成分についての後方再整形パラメータ592C1によって特徴付けられる後方再整形関数を最適化するためにMMRを利用する。再構成されたHDRクロマ成分を予測し、両方のクロマ・チャネルについての後方再整形関数を生成するための入力として、ステップ520のMMRプロセスは、再整形されたSDRクロマ成分584C0および584C1(同じ反復工程のステップ510Cで生成)およびステップ510Lで生成された再整形されたSDRルーマ成分584Lを取る。
ステップ530Cは、クロマ成分について終了条件が満たされているかどうかを評価する判断ステップである。終了条件が満たされない場合、方法500は、ステップ540Cと、ステップ510C、520C、および530Cの次の反復に進む。ステップ540Cは、入力SDR画像クロマ成分580C0および580C1の一方または両方に補正を適用する。ステップ530Cおよび540Cは、それぞれステップ230および240のクロマ固有の実施形態である。ステップ530Cが、終了条件が満たされていることを見出した場合、方法500は、ステップ550Cおよび552Cを実行してもよい。ステップ550Cは、ステップ510Cの最後の反復工程で生成された、再整形されたSDR画像クロマ成分584C0および584C1を出力する。ステップ552Cは、ステップ520Cの最後の反復工程において最適化されるように、クロマ成分のための後方再整形パラメータ592C0および590C1を出力する。
あるクラスの実施形態では、ステップ510C、520C、510L、および520Lにおける最適化は、関わっている画像の個々のピクセルに基づく。1つのそのような実施形態は、図6Aおよび6Bを参照して後述される。別のクラスの実施形態では、ステップ510C、520C、510L、および520Lにおける最適化は、関わっている画像の量子化された値の三次元(3D)ビンに基づく。これらの実施形態では、再整形されたSDR画像クロマ成分584C、再整形されたSDR画像ルーマ成分584L、再構成されたHDR画像クロマ成分586C、および再構成されたHDR画像ルーマ成分586Cは、少なくとも方法500による処理の一部または全部の間、それらのより従来のピクセル表現ではなく、それらの3Dビン表現で表現されうる。同様に、パラメータ590C、592C、590L、および592Lの再整形は、個々のピクセルではなく3Dビンに関係してもよい。方法500の1つの3Dビン・ベースの実施形態は、図7Aおよび7Bを参照して後述される。3Dビンは、図7Aおよび7Bを参照してさらに詳細に後述される。
図6Aおよび6Bは、クロマ・チャネルにおいてのみ後方誤差伝搬を有するカラー画像についての前方および後方再整形関数を生成するための1つのピクセル・ベースの方法600を示し、クロマ・チャネルにおける各最適化反復工程はMMRベースである。方法600は、方法500の実施形態である。方法600は、たとえば、エンコーダ400において実装されるように、逐次反復的再整形関数最適化器114によって実行されてもよい。図6Aは、入力のSDRおよびHDR画像対のルーマ成分について、前方および後方再整形関数を生成するためのフローチャートである。図6Bは、入力のSDRおよびHDR画像対の各クロマ成分について、前方および後方の再整形関数を生成するためのフローチャートである。
ルーマ成分については、方法600は、それぞれステップ510Lおよび520Lの実施形態であるステップ610Lおよび620Lを含む。
ステップ610Lは、ルーマ成分についての前方再整形関数を最適化し、ステップ612Lおよび614Lを含む。ステップ612Lは、再整形されたSDR画像ルーマ成分684Lおよび入力SDR画像ルーマ成分580Lの個々のピクセルを処理し、再整形されたSDR画像ルーマ成分684Lと入力SDR画像ルーマ成分580Lとの間の第1の集合的(全ピクセルにわたる)偏差を決定する。ステップ614Lは、第1の集合的偏差を最小化するよう、ルーマ・チャネルについての前方再整形関数のピクセル・ベースのパラメータ690Lを最適化する。ステップ614Lは、再整形されたSDR画像ルーマ成分684Lのヒストグラムと入力SDR画像ルーマ成分580Lのヒストグラムとの間の累積分布関数(CDF)マッチングに従ってルーマ・チャネル前方再整形関数を決定することができる。
ステップ620Lは、ルーマ成分についての後方再整形関数を最適化し、ステップ622Lおよび624Lを含む。ステップ622Lは、再構成されたHDR画像ルーマ成分686Lおよび入力HDR画像ルーマ成分582Lの個々のピクセルを処理し、再構成されたHDR画像ルーマ成分686Lと入力HDR画像ルーマ成分582Lとの間の第2の集合的(全ピクセルにわたる)偏差を決定する。ステップ624Lは、第2の集合的偏差を最小化するよう、ルーマ・チャネルについての後方再整形関数のピクセル・ベースのパラメータ692Lを最適化する。ステップ624Lは、再構成されたHDR画像ルーマ成分686Lのヒストグラムと入力HDR画像ルーマ成分582Lのヒストグラムとの間のCDFマッチングに従って、ルーマ・チャネル前方再整形関数を決定することができる。
ひとたびステップ610Lが完了すると、方法600はステップ550Lを実行して、再整形されたSDR画像ルーマ成分684Lを出力することができる。ひとたびステップ620Lが完了すると、方法600は、ステップ552Lを実行して、ピクセル・ベースのパラメータ692Lを出力することができる。
クロマ・チャネルについては、方法600は、それぞれステップ510C、520C、530C、および540Cの実施形態であるステップ610C、620C、630C、および640Cを含む。
ステップ610Cは、クロマ成分についての前方再整形関数を最適化し、ステップ612Cおよび614Cを含む。各クロマ成分について、ステップ612Cは、再整形されたSDR画像クロマ成分684C0/C1および入力SDR画像クロマ成分580C0/C1の個々のピクセルを処理し、再整形されたSDR画像クロマ成分684C0/C1と入力SDR画像クロマ成分580C0/C1との間の第1の集合的(全ピクセルにわたる)偏差を決定する。よって、ステップ612Cは、各クロマ・チャネルについて第1の集合的偏差を計算する。ステップ614Cは、(a)第1のクロマ・チャネルについての第1の集合的偏差を最小化するよう、第1のクロマ・チャネルについての前方再整形関数のピクセル・ベースのパラメータ690C0、および(b)第2のクロマ・チャネルについての第1の集合的偏差を最小化するよう、第2のクロマ・チャネルについての前方再整形関数のピクセル・ベースのパラメータ690C1を最適化するために、MMRを利用する。
ステップ620Cは、クロマ成分についての後方再整形関数を最適化し、ステップ622Cおよび624Cを含む。各クロマ成分について、ステップ622Cは、再構成されたHDR画像クロマ成分686C0/C1および入力HDR画像クロマ成分582C0/C1の個々のピクセルを処理し、再構成されたHDR画像クロマ成分686C0/C1と入力HDR画像クロマ成分582C0/C1との間の第2の集合的(全ピクセルにわたる)偏差を決定する。よって、ステップ622Cは、各クロマ・チャネルについて第2の集団的偏差を計算する。ステップ624Cは、(a)第1のクロマ・チャネルについての第2の集合的偏差を最小化するよう、第1のクロマ・チャネルについての後方再整形関数のピクセル・ベースのパラメータ692C0、および(b)第2のクロマ・チャネルについての第2の集合的偏差を最小化するよう、第2のクロマ・チャネルについての後方再整形関数のピクセル・ベースのパラメータ692C1を最適化するために、MMRを利用する。
ステップ630Cは、クロマ成分について終了条件が満たされているかどうかを評価する判断ステップである。終了条件が満たされない場合、方法600は、ステップ640Cと、ステップ610C、620C、および630Cの次の反復とに進む。ステップ640Cは、入力SDR画像クロマ成分580C0および580C1の一方または両方に補正を適用する。ステップ630Cおよび640Cは、それぞれ、ピクセル毎の処理に基づく、ステップ530Cおよび540Cの実施形態である。ステップ630Cが終了条件が満たされていることを見出した場合、方法600は、ステップ550Cおよび552Cに進んで、それぞれ、再整形されたSDR画像クロマ成分684C0および684C1、ならびにピクセル・ベースのパラメータ692C0および692C1を出力してもよい。
方法600の一例は、「例2:ピクセル・ベースMMR」においてより詳細に後述される。
図7A~Cは、クロマ・チャネルにおいてのみ後方誤差伝搬を有するカラー画像について前方および後方再整形関数を生成するための1つの3Dビン・ベースの方法700を示し、ここで、クロマ・チャネルにおける各最適化反復工程はMMRベースである。方法700は、方法500の実施形態である。方法700は、たとえば、エンコーダ400において実装される、逐次反復的再整形関数最適化器114によって実行されてもよい。図7Aは、3Dビンを作成するためのフローチャートである。図7Bは、入力のSDRおよびHDR画像対のルーマ成分について、前方および後方再整形関数を生成するためのフローチャートである。図7Cは、入力のSDRおよびHDR画像対の各クロマ成分について、前方および後方再整形関数を生成するためのフローチャートである。
方法700は、ステップ702および704(図7A参照)を含む。ステップ702は、ルーマ・チャネル、第1のクロマ・チャネル、および第2のクロマ・チャネルのそれぞれを量子化する。ステップ704は、ルーマ成分582L、第1のクロマ成分582C0、および第2のクロマ成分582C1を有する入力HDR画像582をビン分けする。より具体的には、ステップ704は、入力HDR画像582において、ルーマ成分582L、第1のクロマ成分582C0、および第2のクロマ成分582C1のそれぞれにおいて同じ量子化された値を有する諸ピクセルを、3Dビンにおいてグループ化する。たとえば、ステップ702は、各色成分チャネルを、ビン番号0~99を有する100個のピクセル値ビンにおいて量子化し、次いで、ステップ704は、ルーマ成分582Lのピクセル値がルーマ・チャネルについてのビン番号12内にあり、第1のクロマ成分582C0のピクセル値が第1のクロマ・チャネルについてのビン番号46内にあり、第2のクロマ成分582C1のピクセル値が第2のクロマ・チャネルについてのビン番号33内にある、入力HDR画像582のすべてのピクセルを、3Dビン番号12,46,33を割り当てられた3Dビン内にグループ化することができる。ステップ704はまた、入力HDR画像582によって定義される、ピクセルの3Dビニングを、入力SDR画像580のピクセルにも適用する。方法700の後続ステップにおいては、同じ3Dビニングが、方法700によって生成された再整形されたSDR画像について使用される。
まとめると、ステップ704は、入力HDR 3Dビニング画像データ782および入力SDR 3Dビニング画像データ780を生成する。入力HDR 3Dビニング画像データ782は、入力HDR 3Dビニング・ルーマ成分782L、入力HDR 3Dビニング・クロマ成分782C0、および入力HDR 3Dビニング・クロマ成分782C1を含む。入力HDR 3Dビニング・クロマ成分782Cという用語は、入力HDR 3Dビニング・クロマ成分782C0および782C1のうちの1つを非特定的に指す。入力SDR 3Dビニング画像データ780は、入力SDR 3Dビニング・ルーマ成分782L、入力SDR 3Dビニング・クロマ成分780C0、および入力SDR 3Dビニング・クロマ成分780C1を含む。入力SDR 3Dビニング・クロマ成分780Cという用語は、入力SDR 3Dビニング・クロマ成分780C0および780C1のうちの1つを非特定的に参照する。
ピクセル・ベースの方法600と比較して、3Dビン・ベースの方法700は、メモリ空間を節約し、より高速な処理を提供し、および/または、計算資源に対する要件を低減することができる。なぜなら、すべての同様に見えるピクセルが一緒にグループ化されるからである。ステップ702および704は、図4のエンコーダ400の機械読み取り可能な命令430においてエンコードされてもよい。
ステップ704の完了後、方法700は、図7Bに示されるようなルーマ・チャネルの最適化および図7Cに示されるようなクロマ・チャネルの最適化に進む。
ルーマ成分については、方法700は、それぞれステップ510Lおよび520Lの実施形態であるステップ710Lおよび720Lを含む。
ステップ710Lは、ルーマ成分について前方再整形関数を最適化し、ステップ712Lおよび714Lを含む。ステップ712Lおよび714Lは、個々のピクセルではなく3Dビンに対して作用することを除いて、ステップ612Lおよび614Lと同様である。結果として、ステップ710Lは、再整形されたSDR画像ルーマ成分684Lの代わりに、3Dビニングされた再整形されたSDRルーマ成分データ784Lを生成し、ルーマ・チャネルについての前方再整形関数の3Dビン・ベースのパラメータ790Lを最適化する。
ステップ720Lは、ルーマ成分についての後方再整形関数を最適化し、ステップ722Lおよび724Lを含む。ステップ722Lおよび724Lは、個々のピクセルの代わりに3Dビンに対して作用することを除いて、ステップ622Lおよび624Lと同様である。結果として、ステップ720Lは、ルーマ・チャネルについての後方再整形関数の3Dビン・ベースのパラメータ792Lを生成し、再構成されたHDR画像ルーマ成分686Lの代わりに、3Dビニングされた再構成されたHDRルーマ成分データ786Lに関して作用する。
ひとたびステップ710Lが完了すると、方法700はステップ550Lを実行して、再整形された3Dビニングされた再整形されたSDRクロマ成分データ784Cを出力することができる。本明細書の範囲から逸脱することなく、方法700は、再整形された3Dビニングされた再整形されたSDRルーマ成分データ784Lを、再整形されたSDRルーマ成分のピクセル・ベースの表現に変換し、ステップ550Lにおいてこのピクセル・ベースの表現を出力することを含むことができる。ステップ720Lが完了すると、方法700は、ステップ552Lを実行して3Dビン・ベースのパラメータ792Lを出力することができる。
クロマ・チャネルについては、方法700は、それぞれステップ510C、520C、530C、および540Cの実施形態であるステップ710C、720C、730C、および740Cを含む。
ステップ710Cは、クロマ成分についての前方再整形関数を最適化し、ステップ712Cおよび714Cを含む。ステップ712Cおよび714Cは、個々のピクセルではなく3Dビン上に対して作用することを除いて、ステップ612Cおよび614Cと同様である。結果として、ステップ710Cは、再整形されたSDR画像クロマ成分684C0および684C1の代わりに、3Dビニングされた再整形されたSDRクロマ成分データ784C0および784C1を生成し、第1および第2のクロマ・チャネルについての前方再整形関数の3Dビン・ベースのパラメータ790C0および790C1をそれぞれ最適化する。
ステップ720Cは、クロマ成分のための後方再整形関数を最適化し、ステップ722Cおよび724Cを含む。ステップ722Cおよび724Cは、個々のピクセルではなく3Dビンに対して作用することを除いて、ステップ622Cおよび624Cと同様である。結果として、ステップ720Cは、第1のクロマ・チャネルのための後方再整形関数の3Dビン・ベースのパラメータ792C0と、第2のクロマ・チャネルのための後方再整形関数の3Dビン・ベースのパラメータ792C1とを生成し、再構成されたHDR画像クロマ成分686C0および686C1の代わりに、3Dビニングされた再構成されたHDRクロマ成分データ786C0および786C1に関して作用する。
ステップ730Cは、クロマ成分について終了条件が満たされているかどうかを評価する判断ステップである。終了条件が満たされない場合、方法700はステップ740Cに進み、ステップ710C、720C、および730Cの次の反復工程に進む。ステップ740Cは、入力SDR 3Dビニング・クロマ成分780C0および780C1の一方または両方に補正を適用する。ステップ730Cおよび740Cは、ピクセル毎の処理ではなく、3Dビン毎の処理に基づくことを除いて、それぞれステップ630Cおよび640Cと同様である。ステップ730Cが終了条件が満たされていることを見出した場合、方法700は、ステップ550Cおよび552Cに進んで、それぞれ、再整形された3Dビニングされた再整形されたSDRクロマ成分データ784C0および784C1、ならびに3Dビン・ベースのパラメータ792C0および782C1を出力することができる。本明細書の範囲から逸脱することなく、方法700は、ステップ550Cにおいて、再整形された3Dビニングされた再整形されたSDRクロマ成分データ784C0および784C1を、再整形されたSDRクロマ成分のピクセル・ベースの表現に変換し、これらのピクセル・ベースの表現を出力することを含んでいてもよい。
方法700の一例は、「例3:3Dビン・ベースのMMR」においてより詳細に後述される。
本明細書の範囲から逸脱することなく、クロマ・チャネルは、3Dビン・ベースの方法700(図7Aおよび7Bに概説されるフローチャートに基づく)によって処理されてもよく、ルーマ・チャネルは、ピクセル・ベースの方法600(図6Bに概説されるフローチャートに基づく)によって処理されてもよい。
図8は、各色成分チャネルにおける逐次反復的なTPBS近似ベースの最適化および後方誤差伝搬を用いる、カラー画像のための前方および後方再整形関数を生成するための1つのピクセル・ベースの方法800を示す。方法800は、方法200の実施形態であり、方法300を実装してもよい。方法800は、たとえば、エンコーダ400において実装されるように、逐次反復的再整形関数最適化器114によって実行されてもよい。方法800は、それぞれステップ210、220、230、および240の実施形態であるステップ810、820、830、および840を含む。
各色成分チャネルについて、方法800は、入力SDR画像580および入力HDR画像582を入力として取り、ステップ810、820、830、および840の一つまたは複数の反復を実行して、考察対象の色成分チャネルについて、前方および後方再整形関数、ならびに関連する再整形されたSDR画像データを生成する。ある色成分チャネルについて、1つの反復工程のみが実行される場合、ステップ840は、この色成分チャネルの処理から省略される。
ステップ810は、考察対象の色成分チャネルについての前方再整形関数を最適化し、ステップ812および814を含む。ステップ812は、再整形されたSDR画像色成分784および入力SDR画像580の関連する色成分、すなわち色成分580L、580C0および580C1のうちの1つの個々のピクセルを処理し、再整形されたSDR画像色成分784と入力SDR画像580の当該色成分との間の第1の集合的(全ピクセルにわたる)偏差を決定する。ステップ814は、TPBS近似を利用して、第1の集合的偏差を最小化するよう、当該色成分チャネルについての前方再整形関数のピクセル・ベースのパラメータ790を最適化する。
ステップ820は、考察対象の色成分チャネルのための後方再整形関数を最適化し、ステップ822および824を含む。ステップ822は、再構成されたHDR画像色成分786の個々、および入力HDR画像582の関連する色成分、すなわち色成分582L、582C0、および582C1のうちの1つの個々のピクセルを処理し、再構成されたHDR画像色成分786と入力HDR画像582の色成分との間の第2の集合的(全ピクセルにわたる)偏差を決定する。ステップ824は、TPBS近似を利用して、第2の集合的偏差を最小化するよう、当該色成分チャネルのための後方再整形関数のピクセル・ベースのパラメータ792を最適化する。
ステップ830は、色成分について終了条件が満たされているかどうか評価する判断ステップである。終了条件が満たされない場合、方法800はステップ840に進み、ステップ810、820、および830の次の反復工程に進む。ステップ840は、考察対象の入力SDR画像580の色成分に補正を適用する。ステップ830および840は、それぞれステップ230および240の実施形態である。ステップ830が、終了条件が満たされていることを見出した場合、方法800は、ステップ850および852に進んでもよい。ステップ850は、ステップ810の最後の反復において最適化された、考察対象の色成分チャネルについての再整形されたSDR画像色成分784を出力する。ステップ852は、ステップ820の最後の反復において最適化された、考察対象の色成分チャネルについてのピクセル・ベースのパラメータ792を出力する。
方法800の一例は、「例4:ピクセル・ベースTPBS近似」において以下にさらに詳細に議論される。
方法700がピクセル・ベースの方法600に対する3Dビン・ベースの代替であるのと同様に、方法800は、代わりに3Dビニングされた画像データを処理するように修正されてもよい。そのような方法の一例は、「例5:3Dビン・ベースのTPBS近似」においてより詳細に後述される。
例1:多項式再整形関数
この例では、方法200が実行される。前方再整形関数FRt
ch,(k)および後方再整形関数BRt
ch,(k)のそれぞれが4次多項式であり、よってステップ210および220のそれぞれが5つの多項式係数を最適化する。この最適化は、最小二乗法による最小化に従って行うことができる。より高度な最適化アルゴリズムは、より良い性能を提供することが期待されるが、ここではこの例は例解として使用され、計算の容易さが性能より重きをなすシナリオにおいて実施されうる。方法200のこの例において処理される入力データは、ルーマ成分、単一クロマ成分、またはグレースケール画像データと等価な単一の色成分のみを有する。
入力HDR画像182は、ランダムなピクセル値で生成される。入力SDR画像180は、ダイナミックレンジをクリッピングし、多項式歪みを導入し、ノイズを加えることによって、入力HDR画像182から生成される。HDRピクセル値とSDRピクセル値との間の結果として得られる対応900は、図9にプロットされる。方法200は、入力SDR画像180および入力HDR画像182のこれらの例に適用され、100回の反復が実行される。
図10は、入力HDR画像182の250番目のピクセル毎に、逐次反復回数の関数として、入力HDR画像182とステップ220で生成された再構成されたHDR画像186との間の偏差をプロットする。図10の各曲線は、異なるピクセルに対応する。図11は、ステップ240で補正されている入力SDR画像180の250番目のピクセル毎のピクセル値を、逐次反復回数の関数としてプロットする。図12は、入力SDR画像180の250番目のピクセル毎に、逐次反復回数の関数として、入力SDR画像180とステップ240で補正された再整形されたSDR画像184との間の偏差をプロットする。図14は、逐次反復回数の関数として、図12にプロットされたSDR偏差の合計として計算された全SDR歪みをプロットする。図13は、逐次反復回数の関数として、図10にプロットされたHDR歪みの合計として計算された全HDR歪みをプロットする。図10および図13から、方法200における逐次反復的最適化は、入力HDR画像182と再構成HDR画像186との間の不一致を収束させ、低減することが明らかである。同時に、図11、図12、および図14から、入力HDR画像182と再構成HDR画像186との間の改良された一致は、再整形SDR画像184に導入される何らかの歪みを代償として得られることが明らかである。応用シナリオおよび関連する要件に依存し、HDR歪みとSDR歪みの間の望ましいトレードオフを定義するために、組み合わせ重みwvおよびwsが調整されてもよい。
図15は、ステップ210の最後の反復工程で生成された前方再整形関数1500を、対応900と一緒にプロットする。前方再整形関数1500は、対応900のクリッピングされていない部分との合理的な一致を達成しつつ、対応900におけるクリッピング問題を解決する。前方再整形関数はクリッピングを回避するので、再整形されたSDR画像184は、ディスプレイ・システムがSDR画像を表示するように構成されるシナリオにおいて、入力SDR画像180よりも好ましい場合がある。図16は、ステップ220の最後の反復工程で生成された後方再整形関数1600を、対応900と一緒にプロットする。後方再整形関数1600は、間接的には入力SDR画像180に部分的に基づいているものの、やはり、対応900においてクリッピング問題を示さず、さらに、対応900のクリッピングされない部分との合理的な一致を達成する。前方再整形関数および後方再整形関数の両方とも、対応900のクリッピングされていない部分について、幾らかの残留歪みを示す。この歪みは、少なくとも部分的には、本例で適用される最適化の比較的単純な(4次多項式)性質の結果でありうる。
例2:ピクセル・ベースのMMR
以下では、方法600の一例を概説する。
ルーマ・チャネル:
この例では、ルーマチャネル(yと記される)は単一チャネル予測子である。ステップ620Lにおける前方再整形関数は、一次元(1D)ルックアップテーブル(LUT)であり、ステップ610Lにおける後方再整形関数は、8片の2次元多項式予測子である。後方再整形関数も1D-LUTとして表現される。予測子は1D-LUTであり、可逆的な仕方で容易に得ることができるので、ルーマ・チャネルには逐次反復は含まれないことに注意されたい。以下の記法を定義する:
クロマ・チャネル:
クロマ・チャネル(c0およびc1)は、MMR予測を使用する。ステップ610CにおけるMMR前方再構成では、HDRドメインからの3つの色成分チャネル(v
t,i
y,v
t,i
c0,v
t,i
c1)すべてをSDRクロマ成分st,ic0,st,ic1を予測するための入力として取る。予測された(再整形された)値は、k回目の反復工程で
である。HDRクロマ値(v
t,i
c0,v
t,i
c1)を予測するために、ステップ620Cにおける後方再整形最適化のための入力として、これらの3つのSDR予測値を使用する。k回目の反復工程における予測された(再構成された)値は、
である。各反復工程で使用される行列の中には、変化せず、事前に計算できるものがいくつかあることに注意されたい。
初期化:
最初の反復工程(k=0)では、3チャネル(ch=y,c0,c1)すべてについて、補正された入力SDR画像をオリジナル入力SDR画像として設定する、すなわち、
i番目の入力HDRピクセルについてのMMR展開形式を次のように表す:
展開された行列を得るためにP個のピクセルすべてを収集する:
係数最適化プロセスで使用される次の行列も定義できる:
入力HDRクロマ成分もベクトル形式で準備する:
v
t
c0,v
t
c1,V
t,B
t
V,(B
t
V)
-1は、入力HDR画像を表すので、逐次反復の間に変化しないことに注意されたい。これらは、再計算することなく、事前計算され、メモリに記憶されることができる。
前方再整形:
c0およびc1チャネルにおける前方MMR係数m
t
F,c0,(k)およびm
t
F,c1,(k)を用い、k回目の反復工程での予測されるSDR値は次式を介して見出せる:
各反復工程において、前の反復工程からの補正されたSDR値をベクトル
として収集する。これらの2つのベクトルは、前方予測が反復工程kで達成する目標値となる。各反復工程においてルーマの予測される値は変化しないことに注意されたい。
係数最適化の議論を容易にするために、次の2つのベクトルを定義する:
係数最適化の目的は、補正された入力SDR信号と反復工程kでの予測された(再整形された)SDR信号との間の平均二乗誤差(MSE)を最小化するためのMMR係数を見つけることである:
前方再整形における最適なMMR係数は、最小二乗解で求められる:
反復工程kでの最適な予測されるSDR値は次のように表すことができる:
後方再整形:
k回目の反復工程で、予測されるSDRピクセルについてのMMR展開形式を次のように記す
P個のピクセルすべてを収集して、行列を構築することができる。
係数最適化プロセスにおいて使用される次の行列を定義する:
c0およびc1チャネルにおける後方MMR係数m
t
B,c0,(k),m
t
B,c1,(k)を用い、k回目の反復工程における予測されるHDR値は次式を介して見出せる:
また、係数最適化を容易にするために、次のベクトルを定義する:
最適化の目的は、反復工程kにおいて、もとの入力HDR信号と予測された(再構成された)HDR信号との間のMSEを最小化するようMMR係数を見つけることである:
後方再整形における最適なMMR係数は、最小二乗解として求められる:
予測されるHDR値は、次のように表すことができる。
ステップ630Cおよび640Cにおける、逐次反復制御および補正された入力SDR信号の計算:
各反復工程の終わりに、再構成されたHDR信号と入力HDR信号に基づいて、入力SDR信号
をそれぞれ補正する量
を決定する。これらの補正量は
の関数である:
εは、ステップ640Cでの入力SDR画像の補正に進むかどうかを決定する閾値である。α
chは収束スケーリング因子であり、収束速度と歪みの間のトレードオフのはたらきをする。入力SDR信号の大きすぎる変化を避けるために、次のように補正上限を設定することができる。
補正された入力SDR値は、ステップ640Cで、次の反復工程のために更新される:
逐次反復の終了:
逐次反復の終了は、セクション「方法200の一実施形態の数学的記述」において図2を参照して上述したように実行される。
例3:3Dビン・ベースのMMR
以下では、方法700の一例を概説する。
3Dビニングの基礎:
は、t番目のフレームについての入力HDR信号からのi番目のピクセルの3つの色値を示すものとする。
は、t番目のフレームについてのi番目のピクセルにおける入力SDR画像における対応するピクセルを示すものとする。3つのチャネル値(Y,C
0およびC
1)をもつHDR画像を、各色成分について固定数のビンQ
y,Q
C0,Q
C1を用いて、量子化する。各次元における最小/最大(v
t,i
ch,min,v
t,i
ch,max)値をカバーする一様な分割境界を用いて(Q
y×Q
C0×Q
C1の)3Dヒストグラムを計算する。各チャネルにおける量子化間隔は次のとおり
3Dヒストグラム・ビンをΩ
t
Q,vとして表す。ここで、Q=[Q
y,Q
C0,Q
C1]である。よって、Ω
t
Q,vは全部で(Q
y,Q
C0,Q
C1)個のビンを含み、各3Dビンはビン・インデックスq=(q
y,q
C0,q
C1)によって指定される。それは、これらの3チャネルの量子化された値を有するピクセルの数を表す。記法を簡略化するために、3Dビン・インデックス{q}を1Dインデックス{q}にベクトル化する。
また、各3DビンについてのSDRでの各色成分の合計を計算する。
を、SDR画像ドメインでのマップされたルーマおよびクロマの値であるとする。よって、これらの各ビンは、対応するピクセル値がそのビンにあるところのHDRルーマおよびクロマ(それぞれ、C
0とC
1)ピクセル値すべての和を含む。
P個のピクセルがあるとすると、動作は、以下のように擬似コードにまとめることができる:
// ステップ1:初期化
// ステップ2:入力画像における各ピクセルについてスキャン;ヒストグラムと和を計算
次のステップは、ピクセル数がゼロでない3Dヒストグラム・ビンを見つけることである。言い換えれば、すべてのゼロでない項目を集合Φ
t
Qに収集する。
の平均を、以下の擬似コードで概説されるように計算する:
PtはΦ
t
Qにおける要素数を表すとする。
すると、Φ
t
Q内の要素についてのマッピング対
をもつ。
最適化:
次いで、方法700のこの例は、逐次反復的なMMRベースの最適化を、3Dマッピング対
に適用する。ここで、q∈Φ
t
Qである。前方再整形では、
におけるクロマ
を予測するための入力としてすべての
を取る。予測された(再整形されたSDR)値は、k回目の反復工程での
である。これらの3つのSDR予測3D値を、HDRクロマ値
を予測するための後方再整形のための入力として使用する。k回目の反復工程における予測値は
である。各反復工程において使用される行列の中には、変化せず、事前計算されることができるものがいくつかあることに注意されたい。
初期化:
最初の反復工程(k=0)では、補正された入力3DビニングされたSDRをもとの入力SDRとして設定する。すなわち、
i番目の入力HDR項目についてのMMR拡張形式を次のように表す。
すべてのP
t個の項目を収集し、展開された行列を得る。
また、係数最適化プロセスにおいて使用される以下の行列をも定義する:
入力3DビニングされたHDRクロマ値もベクトル形式で準備する。
v
t
c0,v
t
c1,V
t,B
t
V,(B
t
V)
-1は、HDR入力値を表すので、逐次反復の間に変化しないことに注意されたい。これらは、再計算することなく、事前計算され、メモリに記憶されることができる。
前方再整形:
c0およびc1チャネルにおける前方MMR係数m
t
F,c0,(k)およびm
t
F,c1,(k)を用い、k回目の反復工程での予測されるSDR値は次式を介して見出せる:
各反復工程において、前の反復工程からの補正されたSDR値をベクトルとして収集する。
これらの2つのベクトルは、前方予測プロセスが反復工程kにおいて達成する目標値となる。ルーマ予測値は、各反復工程のいて変化しないことに注意されたい。
係数最適化の議論を容易にするために、次の2つのベクトルを定義する:
係数最適化の目的は、補正された入力SDR信号と反復工程kにおける予測されるSDR信号との間のMSEを最小化するMMR係数を見つけることである:
前方再整形における最適なMMR係数は、最小二乗解により解くことができる:
反復工程kでの最適な予測されたSDR値は次のように表すことができる
後方再整形:
k回目の反復工程では、予測されるSDRピクセルに対ついてのMMR展開形式を次のように表す。
すべてのP個のピクセルをまとめて、行列を構築することができる。
係数最適化プロセスにおいて使用される次の行列を定義する:
c0およびc1チャネルにおける後方MMR係数m
t
B,c0,(k)およびm
t
B,c1,(k)を用いると、k回目の反復工程での予測されるHDR値は次式を介して見出すことができる。
係数最適化を容易にするために、以下のベクトルをも定義する:
最適化の目的は、もとの入力HDR項目と反復工程kでの予測されるHDR項目との間のMSEを最小化するようなMMR係数を見出すことである:
後方再整形における最適なMMR係数は、最小二乗解として求められる:
予測されるHDR値は、次のように表すことができる。
逐次反復制御および補正された入力SDR信号の計算:
各反復工程の終了時に、再整形されたHDR信号およびもとの入力HDR信号に基づいて、入力SDR信号
を補正する量
を決定する。これらの補正量は
の関数である:
補正された入力SDR値は次の反復工程のために次ように更新される:
逐次反復の終了:
逐次反復の終了は、セクション「方法200の一実施形態の数学的記述」において図2を参照して上述したように実行される。
例4:ピクセル・ベースのTPBS近似
以下では、方法800の一例を概説する。
初期化:
最初の反復工程(k=0)では、補正された入力SDRをもとの入力SDRとして設定する。すなわち、
TPBSが反復工程kにおいてチャネルchについて次のように定義されていることを想起されたい。
ここで、B
t,k
FTPB,ch(v
t,i
y,v
t,i
c0,v
t,i
c1)は、前方TPBS基底関数であり、m
t,k
F,ch,(k)は対応する前方係数である。1フレーム内のすべてのP個のピクセルを用いて、設計行列のための行列形式を構築することができる:
係数最適化プロセスで使用される次の行列も定義することができる:
入力HDRクロマ値もベクトル形式で準備する:
v
t
ch,V
t
TPB,ch,B
t
TPB,V,ch,(B
t
TPB,V,ch)
-1はHDR入力値を表すため、逐次反復中に変化しないことに注意されたい。それらは、再計算することなく、事前に計算され、メモリに記憶することができる。
前方再整形:
チャネルchにおける前方TPBS係数m
t
F,ch,(k)を用いて、k回目の反復工程における予測されるSDR値は次式を介して見出せる。
各反復工程において、前の反復工程からの補正されたSDR値を各チャネルについてのベクトルとして収集する:
これらの3つのベクトルは、前方予測が反復工程kで達成する目標値となる。係数最適化の議論を容易にするために、3つのチャネルについて次のベクトルを定義する:
係数最適化の目的は、補正された入力SDR信号と反復工程kにおける予測SDR信号との間のMSEを最小化するようなTPBS係数を見つけることである。各チャネルについて、次の最適化問題を解く:
前方再整形における最適なTPB係数は、最小二乗解で求められる:
反復工程kでの最適な予測SDR値は次のように表すことができる
後方再整形:
k回目の反復工程において、HDRにおける予測されるTPBSの値を次のように表す。
ここで、
は後方TPBS基底関数であり、m
t,k
B,chは対応する後方係数である。1つのフレームにおけるすべてのP個のピクセルを用いて、設計行列についての行列形式を構築することができる:
係数最適化プロセスで使用される次の行列を定義する:
チャネルchにおける後方TPBS係数m
t
B,ch,(k)では、k回目の反復工程での予測されるHDR値は次式を介して見出せる
係数最適化を容易にするために、次のベクトルをも定義する:
最適化の目的は、もとの入力HDR信号と反復工程kでの予測HDR信号との間のMSEを最小化するようなTPBS係数を見つけることである:
後方再整形における最適なMMR係数は、最小二乗解として求められる:
予測されるHDR値は、次のように表すことができる。
逐次反復制御と補正された入力SDR信号の計算:
各反復工程の終了時に、再整形されたHDR信号ともとの入力HDR信号に基づいて、入力SDR信号
を補正する量
を決定する。この補正量は、
の関数である:
入力SDR信号の大きすぎる変化を避けるために、補正上限を次のように設定することができる。
補正された入力SDR値は次の反復工程のために次ように更新される:
逐次反復の終了:
逐次反復の終了は、セクション「方法200の一実施形態の数学的記述」において図2を参照して上述したように実行される。
例5:3Dビン・ベースのTPBS近似
以下では、3Dビンの処理に基づくように修正された方法800の一例を概説する。3Dビニングは、「例3:3Dビン・ベースのMMR」と同じである。この3Dビニング手順に従い、マッピング対
をもつ。ここで、i∈Φ
t
Qである。前方再編成では、
におけるすべてのチャネル
を予測するためにすべての
を入力として取る。予測される値はk回目の反復工程において
である。これらの3つのSDR予測3Dビニング値を、HDR値
を予測するための後方再整形のための入力として使用する。k回目の反復工程における予測される値は
である。各反復工程で使用される行列の中には、変化せず、事前に計算できるものがいくつかあることに注意されたい。
初期化:
最初の反復工程(k=0)では、補正された3Dビニングされた入力SDR信号をもとの3Dビニングされた入力SDR信号として設定する。すなわち、
予測される値は次のとおり
1フレーム内のすべてのP
t個の項目を用いて、設計行列のたえの行列形式を構築することができる:
係数最適化プロセスで使用される次の行列を定義することもできる:
入力HDR chチャネルもベクトル形式で準備する:
v
t
ch,V
t
TPB,ch,B
t
TPB,V,ch,(B
t
TPB,V,ch)
-1は入力HDR値を表すため、逐次反復中に変更されないことに注意されたい。それらは、再計算することなく、事前に計算され、メモリに記憶することができる。
前方再整形:
チャネルchの前方TPBS係数を用いて、k回目の反復工程での予測されるSDR値は次式を介して見出せる。
各反復工程において、前の反復工程からの補正されたSDR値をベクトルとして収集する。
これら3つのベクトルは、前方予測が反復工程kで達成する目標値となる。係数最適化の議論を容易にするために、3つのチャネルについて次のベクトルを定義する:
係数最適化の目的は、補正された入力SDR信号と反復工程kにおける予測SDR信号との間のMSEを最小化するTPBS係数を見つけることである:
前方再整形における最適なTPBS係数は、最小二乗解として見出すことができる:
反復工程kでの最適な予測SDR値は次のように表すことができる。
後方再整形:
k回目の反復工程において、HDRでの予測されるTPB値を次のように表す。
ここで、
は、後方TPBS基底関数であり、m
t,k
B,chは対応する後方係数である。1フレーム内のすべてのP
t個の項目を用いて、設計行列のための行列形式を構築することができる:
係数最適化プロセスで使用される次の行列を定義する:
チャネルchにおける後方TPBS係数を用いて、k回目の反復工程での予測されるHDR値は次式を介して見出せる。
係数最適化を容易にするために、次のベクトルも定義する:
最適化の目的は、もとの入力HDR信号と反復工程kでの予測HDR信号との間のMSEを最小化するためのTPBS係数を見つけることである:
後方再整形における最適なTPBS係数は最小二乗解により解くことができる:
予測されるHDR値は、次のように表すことができる。
逐次反復制御と補正された入力SDR信号の計算:
各反復工程の終了時に、再整形されたHDR信号ともとの入力HDR信号に基づいて、入力SDR信号
を補正する量
を決定する。この補正量は、
の関数である:
補正された入力SDR値は次の反復工程のために次のように更新される:
逐次反復の終了:
逐次反復の終了は、セクション「方法200の一実施形態の数学的記述」において図2を参照して上述したように実行される。
特徴の組み合わせ
本明細書の範囲から逸脱することなく、上述の特徴、および特許請求の範囲に記載される特徴はさまざまな仕方で組み合わせることができる。たとえば、本願に記載される1つの画像再整形方法またはプロダクトの諸側面は、本願に記載される別の画像再整形方法またはプロダクトの特徴を組み込むかまたは交換することができることが理解されるであろう。以下の例は、上述の実施形態のいくつかの可能な非限定的な組み合わせを例解する。本発明の精神および範囲から逸脱することなく、本明細書中の方法、プロダクト、およびシステムに対して多くの他の変更および修正を行うことができることは明らかであるはずである。
(A1)(a)入力高ダイナミックレンジ(HDR)画像を再整形された標準ダイナミックレンジ(SDR)画像に圧縮するための前方再整形関数、および(b)再整形されたSDR画像を再構成されたHDR画像に圧縮解除するための後方再整形関数を生成するための方法は、(i)再整形されたSDR画像と入力HDR画像に対応する入力SDR画像との間の偏差を最小化するよう、前方再整形関数を最適化するステップと、(ii)再構成されたHDR画像と入力HDR画像との間の偏差を最小化するよう、後方再整形関数を最適化するステップと、(iii)終了条件が満たされるまで、入力SDR画像に補正を適用し、補正された入力SDR画像に基づいて、前方および後方再整形関数を最適化するステップを逐次反復するステップとを含む。
(A2)(A1)として示される方法において、補正を適用するステップは、入力SDR画像の一つまたは複数の色成分チャネルの各チャネルのそれぞれのピクセルに、対応するピクセルおよび対応する色成分チャネルについての再構成されたHDR画像と入力HDR画像との間の偏差に比例する偏差ベースの補正値を、少なくとも該偏差ベースの補正値が所定の最大補正値未満である限り、適用することを含んでいてもよい。
(A3)(A2)として示される方法において、入力SDR画像の前記一つまたは複数の色成分チャネルの各チャネルのそれぞれのピクセルについて、前記偏差ベースの補正値は、対応するピクセルおよび対応する色成分チャネルについての再構成されたHDR画像と入力HDR画像との間の偏差に比例してもよい。
(A4)(A2)および(A3)として示される方法のいずれかにおいて、終了条件は、少なくとも前方および後方再整形関数を最適化する諸ステップの所定の最大反復回数に達するまでは、少なくとも再構成されたHDR画像と入力HDR画像との間の偏差指標が閾値量以下であることでありうる。
(A5)(A4)と示される方法において、偏差指標は、(i)再構成されたHDR画像と入力HDR画像との間の偏差、および(ii)再整形されたSDR画像と入力SDR画像との間の偏差の重み付けされた組み合わせであってもよい。
(A6)(A4)および(A5)で示される方法のいずれかにおいて、偏差指標は、入力のSDRおよび入力HDR画像のそれぞれを定義する色成分チャネルのサブセットのみに基づいていてもよい。
(A7)(A6)として示される方法において、色成分チャネルはルーマ・チャネルと2つのクロマ・チャネルとを含んでいてもよく、前記サブセットは該ルーマ・チャネルであってもよい。
(A8)(A6)として示される方法において、色成分チャネルはルーマ・チャネルと2つのクロマ・チャネルとを含んでいてもよく、前記サブセットは該2つのクロマ・チャネルであってもよい。
(A9)(A1)ないし(A8)として示される方法のいずれかにおいて、後方再整形関数を最適化するステップは、最適化された前方再整形関数によって生成される再整形されたSDR画像に後方再整形関数を適用することを含んでいてもよい。
(A10)(A1)ないし(A9)として示される方法のいずれかにおいて、前方再整形関数を最適化し、入力SDR画像に補正を適用するステップは、入力SDR画像のローカル・コピーを利用してもよく、この方法は、入力SDR画像の未補正バージョンを維持することをさらに含んでいてもよい。
(A11)(A1)ないし(A10)として示される方法の任意のものは、複数の色成分チャネルのそれぞれについて前方再整形関数を最適化するステップおよび後方再整形関数を最適化するステップを実行することを含んでいてもよい。
(A12)(A11)として示される方法において、色成分チャネルは、ルーマ・チャネル、第1のクロマ・チャネル、および第2のクロマ・チャネルを含んでいてもよく、ここで、(a)ルーマ・チャネルについては、この方法は、前方および後方再整形関数を最適化するステップの単一の反復工程においてのみ、前方および後方再整形関数を最適化し、(b)第1および第2のクロマ・チャネルのそれぞれについては、前方および後方再整形関数を最適化するステップは、多変量多重回帰を利用する。
(A13)HDR画像をエンコードする方法は、入力HDR画像および入力SDR画像を受領した後に、(A1)ないし(A12)として示される方法のいずれかを実行して、逐次反復的に最適化された前方再整形関数および逐次反復的に最適化された後方再整形関数を生成することを含んでいてもよい。この方法は、(i)前方再整形関数を最適化するステップの最後の反復工程において生成された再整形されたSDR画像と、(ii)後方再整形関数を最適化するステップの最後の反復工程において最適化された後方再整形関数を特徴付けるパラメータとを出力することをさらに含んでいてもよい。
(B1)入力高ダイナミックレンジ(HDR)画像を再整形された標準ダイナミックレンジ(SDR)画像に圧縮するための前方再整形関数、および(b)再整形されたSDR画像を再構成されたHDR画像に圧縮解除するための後方再整形関数を生成するためのソフトウェア・プロダクトは、機械読み取り可能な命令を記憶している非一時的なコンピュータ読み取り可能な媒体を含む。命令は、(i)プロセッサによって実行されたときに、プロセッサに、再整形されたSDR画像と入力HDR画像に対応する入力SDR画像との間の偏差を最小化するよう、前方再整形関数を最適化させる前方最適化命令と、(ii)プロセッサによって実行されたときに、プロセッサに、再構成されたHDR画像と入力HDR画像との間の偏差を最小化するよう、後方再整形関数を最適化させる後方最適化命令と、(iii)プロセッサによって実行されたときに、プロセッサに、入力SDR画像に補正を適用させるSDR画像補正命令と、(iv)プロセッサによって実行されたときに、プロセッサに、終了条件が満たされたかどうかを評価し、終了条件が満たされていない間は、前記SDR画像補正命令を実行し、補正された入力SDR画像に基づいて、前記前方最適化命令および前記後方最適化命令を再実行することをさせる逐次反復制御命令とを含む。
(B2)(B1)として示されるソフトウェア・プロダクトにおいて、前記SDR画像補正命令は、プロセッサによって実行されると、プロセッサに、入力SDR画像の一つまたは複数の色成分チャネルの各チャネルのそれぞれのピクセルに、対応するピクセルおよび対応する色成分チャネルについての再構成されたHDR画像と入力HDR画像との間の偏差に比例する偏差ベースの補正値を適用させるように構成されていてもよい。
(B3)(B1)および(B2)として示されるソフトウェア・プロダクトのいずれかにおいて、終了条件は閾値量を含んでいてもよく、逐次反復制御命令は、プロセッサによって実行されると、プロセッサに、少なくとも再構成されたHDR画像と入力HDR画像との間の偏差指標が前記閾値量より小さいかどうかを評価させるように構成されていてもよい。
(B4)(B3)として示されるソフトウェア・プロダクトにおいて、前記終了条件は、最大逐次反復回数をさらに含んでいてもよく、前記逐次反復制御命令は、プロセッサによって実行されると、プロセッサに、最大逐次反復回数に達した場合に、(a)前記SDR画像補正命令、前記前方最適化命令、および前記後方最適化命令の再実行を停止させ、(b)前記後方再整形関数を特徴付けるパラメータを出力し、再整形されたSDR画像を出力させるように構成されてもよい。
(B5)(B3)および(B4)として示されるソフトウェア・プロダクトのいずれかにおいて、前記偏差指標は、(i)再構成されたHDR画像と入力HDR画像との間の偏差、および(ii)再整形されたSDR画像と入力SDR画像との間の偏差の重み付けされた組み合わせであってもよい。
(B6)エンコーダは、(B1)ないし(B5)として示されるソフトウェア・プロダクトのいずれかと、該ソフトウェア・プロダクトの機械読み取り可能命令を実行するためのプロセッサと、入力HDR画像および入力SDR画像を受領するための入力インターフェースと、(i)最適化された前方再整形関数を使用して生成された再整形されたSDR画像、および(ii)最適化された後方再整形関数を特徴付けるパラメータを出力するための出力インターフェースと含んでいてもよい。
本願の範囲から逸脱することなく、上記のシステム、プロダクトおよび方法に変更を加えてもよい。よって、上記の説明に含まれ、添付の図面に示されている事項は、例示的なものとして解釈されるべきであり、限定的な意味で解釈されるべきではないことに留意されたい。以下の特許請求の範囲は、本明細書に記載される一般的および個別的な特徴、ならびに本願のシステム、プロダクト、および方法の範囲のすべての陳述であって、言葉の問題としてそれらの間に入ると言うことができるものをカバーすることが意図されている。