(58)【調査した分野】(Int.Cl.,DB名)
高ダイナミックレンジ・ビデオ・データを生成するためのデコーダであって、当該デコーダは一つまたは複数のプロセッサおよび非一時的メモリを有しており、当該デコーダにより出力画像を生成することは:
シーケンス・パラメータ・セット(SPS)データを含む入力ビットストリームを受け取り、前記SPSデータの少なくとも一部を前記非一時的メモリに記憶し;
前記SPSデータをパースし;パースされたSPSデータにおいてHDR拡張シンタックス構造が存在していることを検出すると:
前記HDR拡張シンタックス構造から、色空間有効フラグ、色向上有効フラグ、適応整形有効フラグ、ダイナミックレンジ変換フラグ、色補正有効フラグまたはSDR閲覧可能フラグの一つまたは複数を含む後処理情報を抽出し;
前記入力ビットストリームをデコードして、予備的な出力デコード信号を生成し;
前記予備的な出力信号および前記後処理情報に基づいて第二の出力信号を生成することを含む、
デコーダ。
0に等しい前記色空間IDフラグの値は、処理色空間が前記入力ビットストリームの別の部分において定義されていることを示し、前記色空間IDフラグの0でない値は前記処理色空間を示す、請求項4記載のデコーダ。
前記SDR閲覧可能フラグは、前記入力ビットストリームのデコードされたバージョンが標準ダイナミックレンジ(SDR)ディスプレイで直接閲覧可能であるかどうかを示す、請求項1記載のデコーダ。
前記入力ビットストリームにおけるスライス・ヘッダ・データをパースし;パースされたスライス・ヘッダ・データにおいてスライスHDR拡張シンタックス構造が存在していることを検出すると、
前記スライスHDR拡張シンタックス構造から前記入力ビットストリームにおける一つまたは複数のピクチャーについての後処理情報を抽出することをさらに含む、
請求項1記載のデコーダ。
【発明を実施するための形態】
【0015】
高ダイナミックレンジ(HDR)画像の信号整形および符号化のためのメッセージ伝達が本稿で記述される。以下の記述では、説明の目的で、本発明の十全な理解を与えるために、数多くの個別的詳細が記載されるが、本発明はそうした個別的詳細なしでも実施されうることは明白であろう。他方、よく知られた構造および装置は、本発明を無用に隠蔽したり、埋没させたり、曖昧にしたりするのを避けるために、網羅的な詳細さでは記述されていない。
【0016】
〈概観〉
本稿に記載される例示的実施形態は、高ダイナミックレンジ画像の整形および符号化のためのメッセージ伝達に関する。高ダイナミックレンジ(HDR)画像の符号化効率を改善する方法において、デコーダが、入力符号化ビットストリームからシーケンス処理セット(SPS: sequence processing set)データをパースして、パースされたSPSデータにおいてHDR拡張シンタックス構造が存在していることを検出する。デコーダは、HDR拡張シンタックス構造から、色空間有効フラグ、色向上有効フラグ、適応整形有効フラグ、ダイナミックレンジ変換フラグ、色補正有効フラグまたはSDR閲覧可能フラグの一つまたは複数を含む後処理情報を抽出する。デコーダは、入力ビットストリームをデコードして、予備的な出力デコード信号を生成し、該予備的な出力信号および前記後処理情報に基づいて第二の出力信号を生成する。
【0017】
〈例示的なビデオ送達処理パイプライン〉
図1は、ビデオ捕捉からビデオ・コンテンツ表示までのさまざまな段階を示す通常のビデオ送達パイプライン(100)の例示的なプロセスを描いている。ビデオ・フレーム(102)のシーケンスが画像生成ブロック(105)を使って捕捉または生成される。ビデオ・フレーム(102)は(たとえばデジタル・カメラによって)デジタル的に捕捉されても、あるいは(たとえばコンピュータ・アニメーションを使って)コンピュータによって生成されてもよいが、ビデオ・データ(107)を与える。あるいはまた、ビデオ・フレーム(102)はフィルム・カメラによってフィルム上で捕捉されてもよい。そのフィルムがデジタル・フォーマットに変換されてビデオ・データ(107)を与える。制作フェーズ(110)では、ビデオ・データ(107)は編集されて、ビデオ制作ストリーム(112)を与える。
【0018】
制作ストリーム(112)のビデオ・データは次いでブロック(115)でポストプロダクション編集のためにプロセッサに与えられる。ポストプロダクション編集(115)は、画質を高めるためまたはビデオ・クリエーターの創造的な意図に従って画像の特定の見え方を達成するために画像の特定の領域における色または明るさを調整または修正することを含んでいてもよい。これは時に「カラータイミング(color timing)」または「カラーグレーディング(color grading)」と呼ばれる。頒布のための制作物の最終版(117)を与えるために、他の編集(たとえばシーン選択およびつなぎ、画像クロッピング、コンピュータ生成された視覚特殊効果の付加など)がブロック(115)で実行されてもよい。ポストプロダクション編集(115)の間は、ビデオ画像は参照ディスプレイ(125)で閲覧される。
【0019】
ポストプロダクション(115)後、最終制作物(117)のビデオ・データがエンコード・ブロック(120)に送達されてもよい。テレビジョンセット、セットトップボックス、映画シアターなどといったデコードおよび再生装置に向けて下流に送達するためである。いくつかの実施形態では、符号化ブロック(120)は、符号化されたビットストリーム(122)を生成するために、ATSC、DVB、DVD、ブルーレイおよび他の送達フォーマットによって定義されるようなオーディオおよびビデオ・エンコーダを含んでいてもよい。レシーバーでは、符号化ビットストリーム(122)はデコード・ユニット(130)によってデコードされて、信号(117)と同一のまたは近い近似を表現するデコードされた信号(132)を生成する。レシーバーは、参照ディスプレイ(125)とは完全に異なる特性をもつことがあるターゲット・ディスプレイ(140)に取り付けられていてもよい。その場合、ディスプレイ・マッピングされた信号(137)を生成することによって、デコードされた信号(132)のダイナミックレンジをターゲット・ディスプレイ(140)の特性にマッピングするために、ディスプレイ管理ブロック(135)が使用されてもよい。
【0020】
〈IPT-PQ色空間〉
伝統的に、ビデオ処理はガンマ符号化されたルミナンス/クロマ色空間、たとえばYCbCr、YUVなどにおいて実行される。ある実施形態では、処理パイプラインの一部、たとえば符号化(120)、デコード(130)およびディスプレイ管理(135)は、これからIPT-PQ色空間と称されるものにおいて実行されてもよい。IPT-PQ色空間は、ディスプレイ管理アプリケーションについての特許文献1で最初に導入された。ここで参照によってその全体において組み込まれる非特許文献1(エブナー論文と称する)に記載されるIPTは、人間の視覚系における錐体の間の色差のモデルである。この意味で、これはYCbCrまたはCIE-Lab色空間に似ているが、いくつかの科学的研究で、これらの空間よりも人間の視覚処理をよりよく模倣することが示されている。CIE-Labと同様に、IPTは何らかの参照ルミナンスに対して規格化された空間である。ある実施形態では、規格化は、ターゲット・ディスプレイの最大ルミナンス(たとえば5000ニト)に基づく。
【0021】
用語「PQ」は本稿では知覚的量子化(perceptual quantization)を指すために使われる。人間の視覚系は、光レベルの増大に対して、非常に非線形な仕方で応答する。人間が刺激を見る能力は、その刺激のルミナンス、刺激のサイズ、刺激をなす空間周波数(単数または複数)および刺激を見ているその特定の時点において目が順応〔適応〕しているルミナンス・レベルに影響される。ある好ましい実施形態では、知覚的量子化器関数は、入力グレーレベルを、人間の視覚系におけるコントラスト感度閾値によりよくマッチする出力グレーレベルにマッピングする。PQマッピング関数の例は、ここに参照によってその全体において組み込まれる特許文献2('994特許と称する)に記載されており、その一部はSMPTE ST 2084規格によって採用されている。それによれば、固定した刺激サイズのもとで、すべてのルミナンス・レベル(すなわち刺激レベル)について、そのルミナンス・レベルにおける最小の可視コントラストきざみが、(HVSモデルに応じて)最も敏感な適応レベルおよび最も敏感な空間周波数に従って選択される。物理的な陰極線管(CRT)装置の応答曲線を表わし、たまたま人間の視覚系が応答する仕方と非常に大まかな類似性をもちうる伝統的なガンマ曲線に比べ、'994特許によって決定されたPQ曲線は、比較的単純な関数モデルを使って人間の視覚系の真の視覚的応答を模倣する。
【0022】
図2は、ある実施形態に基づく、IPT-PQ色空間への色変換のための例示的プロセス(200)をより詳細に描いている。
図2に描かれるように、第一の色空間(たとえばRGB)にある入力信号(202)を与えられるとき、知覚的に補正されたIPT色空間(IPT-PQ)への色空間変換は以下の段階を含んでいてもよい:
a)任意的な段階(210)が、入力信号(202)のピクセル値(たとえば0ないし4095)を0から1までの間のダイナミックレンジをもつピクセル値に規格化してもよい。
【0023】
b)入力信号(202)が(たとえばBT.1866またはSMPTE ST 2084により)ガンマ符号化またはPQ符号化されていたら、任意的な段階(215)が、(信号メタデータによって与えられる)信号のEOTFを使って、符号値からルミナンスへの、ソース・ディスプレイの変換を反転させるまたは取り消してもよい。たとえば、入力信号がガンマ符号化されていたら、この段階は逆ガンマ関数を適用する。入力信号が'SMPTE ST 2084に従ってPQエンコードされていたら、この段階は逆PQ関数を適用する。実際上は、規格化段階(210)および逆非線形エンコード(215)は、あらかじめ計算された1Dのルックアップテーブル(LUT)を使って実行されて、線形信号217を生成してもよい。
【0024】
c)段階(220)では、線形信号217がそのもとの色空間(たとえばRGB、XYZなど)からLMS色空間に変換される。たとえば、もとの信号がRGBであれば、この段階は二つの段階を含んでいてもよい:RGBからXYZの色変換と、XYZからLMSの色変換である。ある実施形態では、限定なしに、XYZからLMSの色変換は次式によって与えられてもよい。
【0025】
【数1】
ここに参照によってその全体において組み込まれる、2015年9月24日に出願された「Encoding and decoding perceptually-quantized video content」と題するPCT特許出願第PCT/US2015/051964号に記載されている別の実施形態では、IPT-PQ色空間における全体的な符号化効率は、XYZからLMSの変換後にクロストーク行列
【0026】
【数2】
を組み込めば、さらに向上されうる。たとえば、c=0.02については、式(1a)は次式を与える。
【0027】
【数3】
d)エブナー論文によれば、伝統的なLMSからIPTへの色空間変換は、LMSデータにまず非線形冪関数を適用し、次いで線形変換行列を適用することを含む。データをLMSからIPTに変換してからPQ関数を適用してIPT-PQドメインにすることもできるが、ある好ましい実施形態では、段階(225)において、LMSのIPTへの非線形エンコードのための伝統的な冪関数は、L、M、Sの各成分のPQ非線形エンコードによって置き換えられる。
【0028】
e)LMSからIPTへの線形変換(たとえばエブナー論文で定義されるもの)を使って、段階(230)は信号222のIPT-PQ色空間への変換を完了する。たとえば、ある実施形態では、L'M'S'からIPT-PQへの変換は次式によって与えられてもよい。
【0029】
【数4】
〈前方整形〉
MPEG-1、MPEG-2、AVC、HEVCなどのような既存のビデオ圧縮標準の大半はYCbCr色空間におけるガンマ符号化されたSDR画像について試験され、評価され、最適化されてきたが、実験結果は、追加的な前処理がHDRおよびWCG信号を効率的に符号化することに益することがあることを示している。
【0030】
図3は、ある実施形態に基づく、HDRおよびWCG信号のための信号整形および符号化のための例示的プロセスを描いている。
図3に描かれるように、HDR入力(302)を与えられると、前方整形ブロック(305)は必要に応じて色変換およびまたは整形関数を適用して、整形された信号(307)を生成する。整形に関係したメタデータ(309)も生成されて、エンコーダ(310)、デコーダ(315)、後方整形(320)のような符号化パイプラインのその後のブロックに伝えられてもよい。
【0031】
図3において、エンコード(310)の前に、整形された信号(307)は、エンコーダ(310)の前処理要求に従って前処理(図示せず)されてもよい。そのような前処理は、クロマ・サブサンプリング、スケーリング、クロッピング、追加的量子化および当業者に既知の他の画像処理動作を含んでいてもよい。いくつかの実施形態では、整形は、ある種の前処理動作(たとえばクロマ・サブサンプリング)後に実行されてもよい。レシーバーでは、符号化されたビットストリーム(312)はデコーダ(315)およびメタデータ(309)を使ってデコードされ、デコード信号(317)を生成する。デコード後、ブロック(320)は後方整形を、また必要な色変換があればそれも実行して、デコード信号(317)を、記憶および/または表示管理といったさらなる処理のために、整形されていない信号に変換し戻す。
【0032】
整形関数の例は、ここに参照によってその全体において組み込まれる特許文献3に記載されている。たとえば、PQ符号化された信号について、ある実施形態では、(305)における信号整形関数は次のように表わされてもよい。
【0033】
【数5】
ここで、v
Lおよびv
Hは入力HDR信号(302)の考えている色チャネルにおける最小値および最大値を表わし、c
Lおよびc
Hは対応する最小および最大出力値を表わす。αの値は一定だが、フレーム毎、シーン毎または他の好適な基準で、適応され変化させられてもよい。
【0034】
特に入力IPT-PQ信号のPおよびTクロマ成分を対象とするもう一つの整形関数が、それぞれここに参照によってその全体において組み込まれる、2015年4月22日に出願されたT.Luらによる「Signal reshaping and coding in the IPT-PQ color space」と題する米国仮特許出願第62/150,910号および対応するPCT出願第PCT/US2016/028261号において記載されている。
【0035】
整形に関係した情報がエンコーダからパイプラインの残りの部分に信号伝達されるのは、いくつもの代替的な実施形態がありうる。たとえば、符号化(310)がHEVCメイン10プロファイルを使うある実施形態では、前方(forward)整形関数(たとえば後方(backward)または逆(reverse)整形(320)の区分的な線形もしくは非線形近似)および使用される色空間(たとえばYCbCr、XYZまたはIPT-PQ)に関係した情報をデコーダに信号伝達するために、シーケンス・パラメータ・セット(SPS: sequence parameter set)および/またはピクチャー・シーケンス・セット(SPS: picture sequence set)のための既存のシンタックスを修正してもよい。
【0036】
〈高レベルのシンタックス〉
一般性を失うことなく、ここに参照によってその全体において組み込まれる最新のHEVC草案規格「HEVC Screen Coding Draft Text 3」、JCTVC-T1005、2015年2月、ジュネーヴ、を使う符号化システム(たとえば310、315)を、HDR信号(302)の符号化(310)および復号(315)のために考える。ある実施形態では、スライス・レベルより下位のHEVC仕様に変更がないとすると、表1が、ある実施形態に基づくHDRおよびWCGビデオ・エンコードをサポートするための、シーケンス・パラメータ・セット(SPS)における、例示的な向上された信号伝達を描いている。ボールド体にされたテキストは、HEVC仕様に呈示されているシンタックスの追加または修正である。
【0037】
【表1】
sps_hdrwcg_extension_flag〔SPS HDR WCG拡張フラグ〕が1に等しいことは、SPS RBSPシンタックス構造においてsps_hdrwcg_extension()シンタックス構造が存在していることを指定する。sps_hdrwcg_extension_flagが0に等しいことはこのシンタックス構造が存在しないことを指定する。存在しないとき、sps_hdrwcg_extension_flagの値は0に等しいと推定される。
【0038】
sps_extension_4bits〔SPS拡張4ビット〕が0に等しいことは、SBS RBSPシンタックス構造においてsps_extension_data_flagシンタックス要素が存在しないことを指定する。存在するときは、sps_extension_4bitsは、この仕様のこのバージョンに準拠するビットストリームにおいて0に等しいものとする。0に等しくないsps_extension_4bitsの値は、ITU-TやISO/IECによる将来の使用のためにリザーブされる。デコーダはsps_extension_4bitsの値が0に等しくないことを許容し、SPS NAL単位におけるすべてのsps_extension_data_flagシンタックス要素を無視するものとする。存在しないとき、sps_extension_4bitsの値は0に等しいと推定される。
【0039】
ある実施形態では、関数sps_hdrwcg_extension()は、HDRおよびWCGプロファイルに含まれている基本ツール・セットを指示する。たとえば、基本ツール・セットは、使用される色空間(たとえばYCbCrまたはIPT-PQ)に関する情報、色向上技法、適応整形情報およびHDR再マッピングおよび色補正情報を含んでいてもよい。いくつかの実施形態では、エンコーダによって使われるHDRからSDRへのマッピングに関係した情報も含んでいてもよい。そうすると、デコーダはそれを使って、SDR対応ディスプレイのためのSDRバージョンを生成することができる。基本ツール・セットは、デコードされたビットストリームがSDR閲覧可能であるかどうかをも指示することができる。よって、提案されるシンタックスは、単一層HDRストリームと、SDRディスプレイおよびHDRディスプレイのいずれによってもデコードできる単一もしくは複数層ストリームとの両方をサポートできる。表2は、ある実施形態に基づく例示的なシンタックスを与えている。
【0040】
【表2】
colour_space_enabled_flag〔色空間有効フラグ〕が1に等しいことは、色空間情報が存在することを指定する。colour_space_enabled_flagが0に等しいことは、色空間情報が存在しないことを指定する。存在するとき、このフラグはビデオ使用可能性情報(VUI: video usability information)における色記述(colour_primaries〔色原色〕、transfer_characteristics〔伝達特性〕、matrix_coeffs〔行列係数〕)の値をオーバーライドしうる。存在しないとき、colour_space_enabled_flagの値は0に等しいと推定される。
【0041】
colour_enhancement_enabled_flag〔色向上有効フラグ〕が1に等しいことは、デコードされたピクチャーについての色向上プロセスが符号化されたビデオ・シーケンス(CVS: coded video sequence)において使用されることがありうることを指定する。colour_enhancement_enabled_flagが0に等しいことは、デコードされたピクチャーについての色向上プロセスがCVSにおいて使われないことを指定する。存在しないとき、colour_enhancement_enabled_flagの値は0に等しいと推定される。
【0042】
ある実施形態では、colour_enhancement_enabled_flag=1のとき、ビットストリーム(たとえばsps_hdrwcg_extension()構造またはpps_hdrwcg_extension()構造)は、クロマ成分についての量子化およびダウンサンプリング誤差を減らして色パフォーマンスを改善する後処理のための追加的な情報(たとえばフィルタ係数)を含んでいてもよい。
【0043】
adaptive_reshaping_enabled_flag〔適応整形有効フラグ〕が1に等しいことは、デコードされたピクチャーについての適応整形プロセスがCVSにおいて使用されうることを指定する。adaptive_reshaping_enabled_flagが0に等しいことは、デコードされたピクチャーについての適応整形プロセスがCVSにおいて使用されないことを指定する。存在しないとき、adaptive_reshaping_enabled_flagの値は0に等しいと推定される。
【0044】
dynamic_range_conversion_enabled_flag〔ダイナミックレンジ変換有効フラグ〕が1に等しいことは、デコードされたピクチャーについてのダイナミックレンジ変換プロセスがCVSにおいて使用されうることを指定する。dynamic_range_conversion_enabled_flagが0に等しいことは、デコードされたピクチャーについてのダイナミックレンジ変換プロセスがCVSにおいて使用されないことを指定する。存在しないとき、dynamic_range_conversion_enabled_flagの値は0に等しいと推定される。
【0045】
ある実施形態では、dynamic_range_conversion_enabled_flag=1のとき、ビットストリーム(たとえばsps_hdrwcg_extension()構造またはpps_hdrwcg_extension()構造)はSMPTE ST 2094からのパラメータを含んでいてもよい。
【0046】
colour_correction_enabled_flag〔色補正有効フラグ〕が1に等しいことは、デコードされたピクチャーについて色補正プロセスがCVSにおいて使用されうることを指定する。colour_correction_enabled_flagが0に等しいことは、デコードされたピクチャーについての色補正プロセスがCVSにおいて使われないことを指定する。存在しないとき、colour_correction_enabled_flagの値は0に等しいと推定される。
【0047】
ある実施形態では、colour_correction_enabled_flag=1のとき、ビットストリーム(たとえばsps_hdrwcg_extension()構造またはpps_hdrwcg_extension()構造)はSMPTE ST 2094からのパラメータを含んでいてもよい。
【0048】
SDR_viewable_flag〔SDR閲覧可能フラグ〕が1に等しいことは、デコードされたピクチャーがSDRディスプレイ上で直接閲覧可能であることを指定する。SDR_viewable_flagが0に等しいことは、デコードされたピクチャーがSDRディスプレイ上で直接閲覧可能ではないことを指定する。存在しないとき、SDR_viewable_flagの値は0に等しいと推定される。
【0049】
典型的には、色空間はシーケンス・レベルにおいて示される。いくつかの実施形態では、色空間がVUIにおいて示されることができるので、SPS拡張において信号伝達される必要はないことがある。SPS拡張において信号伝達される場合、信号伝達シンタックス要素は使われる色空間を示してもよい。例として、表2において、colour_space_enabled_flagをcolour_space_idcフラグで置き換えてもよい。colour_space_idcが0に等しいことは、色空間がVUIにおいて示されていることを指定する。colour_space_idcが1に等しいことは、色空間がIPT-PQであることを指定する。colour_space_idcが2に等しいことは、色空間がY"u"v"であることを指定する、など。存在しないとき、colour_space_idcの値は0に等しいと推定される。そのような実装の例が表3に示されている。
【0050】
【表3】
いくつかの実施形態では、追加的なフラグおよびパラメータが、色空間変換に関係した明示的な情報を提供してもよい。たとえば、表4は、IPT-PQ色空間変換に関係した例を描いている。
【0051】
【表4】
XYZtoLMS_matrix_present_flag〔XYZからLMSへの行列存在フラグ〕が1に等しいことは、両端を含めて0から2までのの範囲のcおよびiについてシンタックス要素XYZtoLMS_coeffs[c][i]が存在することを示す。XYZtoLMS_matrix_present_flagが0に等しいことは、両端を含めて0から2までのの範囲のcおよびiについてシンタックス要素XYZtoLMS_coeffs[c][i]が存在しないことを示す。
【0052】
XYZtoLMS_coeffs[c][i]は、3かける3の、原色XYZから原色LMSへの行列の係数の値を指定する。XYZtoLMS_coeffs[c][i]の値は両端を含めて−2
15ないし2
15−1であるものとする。XYZtoLMS_coeffs[c][i]が存在しないときは、デフォルトのXYZからLMSへの行列が使われる。
【0053】
XYZtoLMS_matrix_present_flagが0に等しいとき、デフォルトのXYZからLMSの行列は浮動小数点で次のように指定される。
【0054】
【数6】
XYZtoLMS_matrix_present_flagが1に等しいとき、XYZからLMSの行列は浮動小数点で次のように変換される。
【0055】
【数7】
MatrixInputが両端を含めて[0,1]の範囲内の規格化されたXYZ入力データを表わすとすると、c=0,1,2についてのLMS matrixOutput[c]は次のように導出される。
【0056】
【数8】
LMStoIPT_matrix_present_flag〔LMSからIPTへの行列存在フラグ〕が1に等しいことは、両端を含めて0から2までのの範囲のcおよびiについてシンタックス要素LMStoIPT_coeffs[c][i]が存在することを示す。LMStoIPT_matrix_present_flagが0に等しいことは、両端を含めて0から2までのの範囲のcおよびiについてシンタックス要素LMStoIPT_coeffs[c][i]が存在しないことを示す。
【0057】
LMStoIPT_coeffs[c][i]は、3かける3の、LMSからIPTへの行列の係数の値を指定する。LMStoIPT_coeffs[c][i]の値は両端を含めて−2
15ないし2
15−1であるものとする。LMStoIPT_coeffs[c][i]が存在しないときは、デフォルトのLMSからIPTへの行列が使われる。
【0058】
LMStoIPT_matrix_present_flagが0に等しいとき、デフォルトのLMSからIPTへの行列は浮動小数点で次のように指定される。
【0059】
【数9】
LMStoIPT_matrix_present_flagが1に等しいとき、LMSからIPTの行列は浮動小数点で次のように変換される。
【0060】
【数10】
MatrixInputが両端を含めて[0,1]の範囲内の規格化されたLMS入力データを表わすとすると、c=0,1,2についてのIPT matrixOutput[c]は次のように導出される。
【0061】
【数11】
HDRデコードされた信号の適正な表示を保証するとともにCVS上だけでなく信号を適応させる(たとえばシーン/ピクチャー/スライス・レベルの適応を許容する)ために、表5の例によって示されるピクチャー・レベルでの追加的な信号伝達が提案される。
【0062】
【表5】
pps_hdrwcg_extension_flag〔PPS HDR WCG拡張フラグ〕が1に等しいことは、pps_hdrwcg_extension()シンタックス構造がPPS RBSPシンタックス構造において存在していることを指定する。pps_hdrwcg_extension_flagが0に等しいことは、このシンタックス構造が存在しないことを指定する。存在しないとき、pps_hdrwcg_extension_flagの値は0に等しいと推定される。
【0063】
pps_extension_4bits〔PPS拡張4ビット〕が0に等しいことは、PPS RBSPシンタックス構造においてpps_extension_data_flagシンタックス要素が存在しないことを指定する。存在するとき、pps_extension_4bitsはこの仕様のこのバージョンに準拠するビットストリームにおいて0に等しいものとする。0に等しくないpps_extension_4bitsの値は、ITU-TやISO/IECによる将来の使用のためにリザーブされる。デコーダはpps_extension_4bitsの値が0に等しくないことを許容し、PPS NAL単位におけるすべてのpps_extension_data_flagシンタックス要素を無視するものとする。存在しないとき、pps_extension_4bitsの値は0に等しいと推定される。
【0064】
各ツール・セットがさまざまなオプションを組み込んでいてもよい。表6は、adaptive_reshaping_enabled_flagが有効にされるとき(表2参照)の適応整形を記述するadaptive_reshaping_idcモードについての例示的なシンタックスを与えている。他のツールについても同様のシンタックス要素を開発することができる。
【0065】
【表6】
信号adaptive_reshaping_idc〔適応整形idc〕は種々の整形技法を示す。例として、表7は上記の'910出願において提案されたシンタックスを示している。HDRおよびSDR変換が可逆であれば、下記の整形シンタックスは、SDRからHDRまたはHDRからSDRの変換のどちらのマッピングを信号伝達することもできるはずである。ある実施形態では、マッピングは、一つまたは複数のルックアップテーブル(LUT)または複数区分の多項式を使って表わされてもよい。このアプローチは、ダイナミックレンジ変換および色補正に関係したシンタックスを含む必要をなくしうる。
【0066】
【表7】
signal_reshape_input_bit_depth_minus8〔信号整形入力ビット深さ引く8〕は、信号整形情報SEIメッセージの解釈のための、関連するピクチャーの色成分のビット深さを指定する。何らかの信号整形情報SEIメッセージが存在してsignal_reshape_input_bit_depthの値が符号化された色成分のビット深さに等しくない場合、そのSEIメッセージは、符号化されたビデオをsignal_reshape_input_bit_depthに等しいビット深さをもつ変換済みビデオに変換するために実行されたトランスコード動作の仮想的な結果を参照する。signal_reshape_input_bit_depth_minus8の値は両端を含めて0から8までの範囲内であるとする。
【0067】
signal_reshape_bit_depth〔信号整形ビット深さ〕は上記信号整形情報SEIメッセージによって記述される信号整形関数の出力のビット深さを指定する。
【0068】
signal_reshape_full_range_flag〔信号整形フルレンジ・フラグ〕はHEVC仕様書のE.3.1節においてvideo_full_range_flag〔ビデオ・フルレンジ・フラグ〕シンタックス要素について指定されているのと同じ意味内容をもつが、signal_reshape_full_range_flagはCLVSのために使われる色空間ではなく、整形された再構成されたピクチャーの色空間を指定する。
【0069】
signal_reshape_model_present_flag〔信号整形モデル存在フラグ〕が1に等しいことは、シンタックス要素coef_log2_denom_minus14、signal_reshape_model_id、signal_reshape_num_pivots_minus2、signal_reshape_coded_pivot_value、poly_order_minus1、poly_coef_int、poly_coef_frac、pow_coef_int、pow_coef_fracおよびsignal_reshape_target_pivot_valueが存在することを指定する。
signal_reshape_model_present_flagが0に等しいことは、シンタックス要素coef_log2_denom_minus14、signal_reshape_model_id、signal_reshape_num_pivots_minus2、signal_reshape_coded_pivot_value、poly_order_minus1、poly_coef_int、poly_coef_frac、pow_coef_int、pow_coef_fracおよびsignal_reshape_target_pivot_valueが存在しないことを指定する。
【0070】
coeff_log2_denom_minus14に14を加えたものは、信号整形に関係した係数についての半端なビットの数を指定する。coeff_log2_denom_minus14の値は両端を含めて0から9までの範囲内とする。存在しないとき、coeff_log2_denom_minus14の値は0に等しいと推定される。
【0071】
signal_reshape_model_id[c]〔信号整形モデルid[c]〕はc番目の成分について、符号化されたデータをターゲット値に整形するために利用されるモデルを指定する。3より大きい値は将来の使用のためにリザーブされ、この仕様のこのバージョンに準拠するビットストリームには存在しないものとする。デコーダは3より大きいsignal_reshape_model_id[c]の値を含むすべての信号整形SEIメッセージを無視する必要があり、ビットストリームはそのような値を含んではならない。存在しないとき、signal_reshape_model_id[c]の値は0であると推定される。
【0072】
signal_reshape_model_idの0は多項式整形に対応し;signal_reshape_model_idの1は冪関数整形に対応し;signal_reshape_model_idの2はユーザー定義されるテーブル・マッピングに対応する。signal_reshape_model_present_flagが0に等しいときは、整形モデルは、三つすべての成分について一つの区分をもつ恒等線形モデルに設定される。
【0073】
signal_reshape_num_pivots_minus2[c]〔信号整形ピボット数引く2[c]〕は、二つのデフォルトの端点0および2
signal_reshape_input_bit_depth−1を数えずに区分ごとの信号整形関数におけるピボット点の数を指定する。存在しないとき、signal_reshape_num_pivots_minus2[c]の値は0であると推定される。
【0074】
signal_reshape_coded_pivot_value[c][i]〔信号整形符号化ピボット値[c][i]〕はc番目の成分についてのi番目のピボット点の値を指定する。signal_reshape_coded_pivot_valueの表現のために使われるビット数は((signal_reshape_input_bit_depth_minus8+15)>>3)<<3である。デフォルトの二つの端点については、signal_reshape_coded_pivot_value[c][0]は0に設定され、signal_reshape_coded_pivot_value[c][signal_reshape_num_pivots_minus2[c]+1]は2signal_reshape_input_bit_depth−1に設定される。
【0075】
poly_order_minus1[c][i]〔多項式次数引く1[c][i]〕に1を加えたものは、c番目の成分におけるi番目の区分についての多項式関数の次数を指定する。poly_order_minus1[c][i]の値は両端を含めて0から1までの範囲内であるとする。存在しないときは、poly_order_minus1[c][i]の値は0であると推定される。
【0076】
poly_coef_int[c][i][j]〔多項式係数 整数[c][i][j]〕はfp_poly_coef[c][i][j]の整数部分を指定する。存在しないときは、poly_coef_int[c][0][0]の値は0であると推定され、poly_coef_int[c][0][1]の値は1であると推定される。
【0077】
poly_coef_frac[c][i][j]〔多項式係数 端数[c][i][j]〕はfp_poly_coef[c][i][j]の端数部分を指定する。存在しないときは、poly_coef_frac[c][0][0]の値は0であると推定され、poly_coef_frac[c][0][1]は0であると推定される。
fp_poly_coef[c][i][j]〔浮動小数点多項式係数[c][i][j]〕はc番目の成分におけるi番目の区分についてのj番目の次数の多項式係数の浮動小数点値を指定する。
【0078】
【数12】
ここで、s_inはc番目の色成分におけるi番目の区分についての入力サンプル値であり、s_outは整形後の、c番目の色成分におけるi番目の区分についての出力サンプル値である。
【0079】
pow_coef_int[c][i][j]はfp_pow_coef[c][i][j]の整数部分を指定する。
【0080】
pow_coef_frac[c][i][j]はfp_pow_coef[c][i][j]の端数部分を指定する。
fp_pow_coef[c][i][j]はc番目の成分におけるi番目の区分についてのj番目の係数の値を指定する。
【0081】
【数13】
ここで、s_inはc番目の色成分におけるi番目の区分についての入力サンプル値であり、s_outは整形後の、c番目の色成分におけるi番目の区分についての出力サンプル値である。
【0082】
signal_reshape_target_pivot_value][c][i]〔信号整形目標ピボット値[c][i]〕は、c番目の成分についてのi番目のピボット点の整形された値を指定する。signal_reshape_target_pivot_valueの表現のために使われるビット数は((signal_reshape_bit_depth_minus8+15)>>3)<<3である。
【0083】
例として、エンコーダがデフォルトのXYZからLMSおよびLMSからIPTの行列を使って単にPおよびT成分に2.0を乗算したことをデコーダに伝えるためには、表7の以下のパラメータが次のように定義されてもよい:
signal_reshape_video_signal_type_present_flag=0 //デフォルト行列を使用
signal_reshape_model_present_flag=1
signal_reshape_model_id[c]=0(c=0,1,2について) //多項式ベースの整形
signal_reshape_num_pivots_minus2[c]=0(c=0,1,2について) //一つの区分
poly_order_minus[c][i]=0(i=0、c=0,1,2について) //一次多項式(ax+b)
poly_coef_int[c][i][j]=1 (c=0、i=0、j=0について) //Iについてのスケーリングなし(a=1)
poly_coef_int[c][i][j]=2 (c=1,2、i=0、j=0について) //PおよびTを因子2でスケーリング(a=2)
poly_coef_int[c][i][j]=0 (c=0,1,2、i=0,1,2、j=1について) //I,P,Tについてのオフセット(b)は0
poly_coef_frac[c][i][j]=0 (c=0,1,2、i=0,1、j=0,1について) //スケーリング因子およびオフセットに端数なし。
【0084】
上記のシンタックスにおいて、係数の符号は係数の整数部分の一部として宣言されている。別の実施形態では、符号を明示的に信号伝達して、符号化をse(v)からue(v)に変えることができる。ここで、HEVCによって定義されるように、se(v)は符号付き整数0次Exp-Golomb-codedシンタックス要素(左ビットが先)を表わし、ue(v)は符号なし整数0次Exp-Golomb-codedシンタックス要素(左ビットが先)を表わす。
【0085】
同じツール・セットがシーケンス全体について使われる場合、インジケーターをsps_hdrwcg_extension()に移すことができる。例は下記の表8に示されている。
【0086】
【表8】
いくつかの実施形態では、HDR関係の拡張は、ピクチャー・スライス層でも許容されうる。その場合、各HDRツールのシンタックス情報を、たとえばスライス・ヘッダにおいて、HEVCのslice_segment_header()構造において信号伝達してもよい。
【0087】
別の実施形態では、HDRおよびWCG再構成プロセスを指示するために、新しいネットワーク抽象化層(NAL: Network Arbitration Layer)ユニットを使ってもよい。たとえば、VCL NALリザーブ番号(22〜31)または非VCL NALリザーブ番号(41〜47)からの一つのリザーブされている番号を使ってもよい。HEVC仕様への変更を最小限に保つため、非VCL NALを使うほうがいいかもしれない。新しいNALユニットは、その動作が必須であるべきだというほかは、PREFIX_SEI_NUTと同じ手順に従うことができる。それぞれの符号化ツールについての新しいNALユニットの伝送は、sps_hdrwcg_extension()内のフラグによって制御されてもよい。あるいはまた、補足向上情報(SEI: supplemental enhancement information)の仕方に従って、SPS層ではいかなる信号伝達も必要とせず、デコーダに新しいNALユニットをパースさせてどのツールが有効にされているかを判断させることができる。該新しいNALユニットはHRI(High Dynamic Range Reconstruction Information[高ダイナミックレンジ再構成情報])NALユニットと名付けられることができる。例として、NALユニットおよび符号化されたピクチャーの順序ならびにそれらの、HEVCの節7.4.2.4.4で定義されているアクセス・ユニットへの関連付けは、下記のように修正されてもよい。提案される変更を下線で示している。
・0に等しいnuh_layer_idをもつアクセス・ユニット・デリミタNALユニット(存在するとき)
・0に等しいnuh_layer_idをもつVPS NALユニット(存在するとき)
・0に等しいnuh_layer_idをもつSPS NALユニット(存在するとき)
・0に等しいnuh_layer_idをもつPPS NALユニット(存在するとき)
・0に等しいnuh_layer_idをもつHRI NALユニット(存在するとき)
・0に等しいnuh_layer_idをもつプレフィックスSEI NALユニット(存在するとき)
・0に等しいnuh_layer_idをもつ、RSV_NVCL41..RSV_NVCL44の範囲内のnal_unit_typeをもつNALユニット(存在するとき)
・0に等しいnuh_layer_idをもつ、UNSPEC48..UNSPEC55の範囲内のnal_unit_typeをもつNALユニット(存在するとき)。
【0088】
上記の諸オプションを与えられると、pps_hdrwcg_extension()の使用が、仕様における最小の変更をもつものと思われる。
【0089】
好ましくは、HDRデコードおよび再構成プロセスを記述するためにHEVC仕様書に新たな付属書が追加されるべきである。プロセスは、前記ツールのフルセットまたはサブセットを記述することができるべきである。固定小数点記述が好ましい。
【0090】
HEVCプロファイル定義の点では、HDR WCGプロファイルは、メイン10プロファイル内のすべてのツールおよびHDR再構成プロセスを含むべきである。レベル定義のためには、HDR再構成されたピクチャーをどのように記憶するかに依存して、MaxDpbSizeが影響されうる。
【0091】
HEVC仕様によれば、準拠ポイントはビットストリーム準拠およびデコーダ準拠を含む。ビットストリーム準拠はI型およびII型を含む。I型はVCL NALユニットおよび埋め草〔フィラー〕データNALユニットを含むだけである。II型はすべての種類のNALユニット型を含む。ビットストリーム準拠はいかなる修正も必要ないかもしれない。デコーダ準拠のためには、デコードされたピクチャーおよびHDR再構成されたピクチャーの両方を、出力するまで保持することが提案される。ある実施形態では、両方のバージョンをデコード・ピクチャー・バッファ(DPB: decoded picture buffer)に記憶することができる。別の実施形態では、デコードされたピクチャーのみをDPBに記憶し、デコードされたピクチャーがDPBから押し出された後に、対応するHDR再構成されたピクチャーを生成してもよい。
【0092】
考えるべきもう一つのポイントは、HDR再構成が符号化ループの外にあるということである。処理はおそらくは固定小数点またはLUT実装でなされることができる。プロセスを単純化するために異なる実装が使われる場合、準拠ポイントにおいて何らかの公差を許容することを考えてもよい。
【0093】
図4は、本発明のある実施形態に基づく、HDRビットストリーム・デコードのための例示的プロセスを描いている。
図4に描かれるように、段階(405)において、デコーダはまず、はいってくるビットストリーム(312)の特別なHDR扱いを示す、シーケンス・パラメータ・セット(SPS)レベルでの信号(たとえばsps_hdrwcg_extension_flag=1のフラグ)をビットストリームが含むかどうかを検出しようと探索してもよい。そのような信号がみつからない場合には、デコーダは通常のビデオ・デコード(425)およびデコード後ブロック(430)で進行する。なぜなら、後方整形のようなHDR関係の動作はスキップされるからである。そのような信号が検出される場合には、段階(410)において、デコーダは適切なツールおよびパラメータを抽出する(たとえばsps_hdrwcg_extension()のデコード)。HDR関係のパラメータ(309)は、HDR関係の後処理ブロック430によって使用されるために、必要に応じて、記憶され、更新される。
【0094】
いくつかの実施形態では、デコーダは、ピクチャー・パラメータ・セット(PPS)レベルでのHDR関係の扱い信号(たとえば、pps_hdrwcg_extension_flag=1のフラグ)を識別するよう探索してもよい(415)。そのような信号がみつからない場合には、デコーダは通常のデコード(425)に進み、それ以外の場合には段階(420)においてデコーダは適切なツールおよびパラメータ(309)を抽出する(たとえば、pps_hdrwcg_extension()のデコード)。
【0095】
(たとえばHEVCのメイン10プロファイルなどを使った)ビデオ・デコードの後、デコーダは抽出されたHDR関係のメタデータ(309)を使って、何らかのHDR関係の後処理(430)を実行する。
【0096】
〈整形関数の効率的な信号伝達〉
先に論じたように、ある実施形態では、整形関数がエンコーダからデコーダに区分的多項式として信号伝達されてもよい。整形関数および多項式パラメータは、シーン、フレーム、スライス、タイルなどの間隔ごとに変更されることがある。よって、符号化されたビットストリーム内での区分的な多項式の効率的な符号化は、ビデオ符号化において非常に重要である。
【0097】
図5は、N+1個のピボット点x
0,x
1,…,x
Nによって決定されるN=4個のセグメントをもつ区分的多項式の例を描いている。各ピボット点x
i(i=0,…,N−1)について、対応する多項式セグメントはp
iと記され、M
i次多項式
【0098】
【数14】
としてモデル化されうる。ここで、M
iは多項式セグメントp
iの次数であり、S
k(i)(k=0,1,2,…,M
i)はi番目のセグメントについての多項式係数を表わす。
【0099】
一般性を失うことなく、M
i=2とする。すると式(4)は次のように表わせる。
【0100】
【数15】
本稿に開示される方法は式(5)の表現のどちらにも適用されうる。
【0101】
先述したように、ある実施形態では、すべての多項式係数(たとえばa
i、b
i、c
i)がエンコーダからデコーダに明示的に送られてもよいが、整形関数(505)の特性に対していくつかの簡単な制約条件を加えることによって、デコーダはその部分的な集合だけを受け取るだけで、多項式パラメータを再構成できることがありうる。
【0102】
ある実施形態では、なめらかな整形曲線のために、二つの追加的制約条件が課されてもよい:
(1)0次の連続性:曲線はピボット点において連続である、すなわち、y
i-1(x
i)=y
i(x
i);
(2)一次の連続性:各ピボットx
iについて、p
i-1およびp
iの両方が二次の多項式であれば、一階微分はx
iにおいてなめらかでなければならない、すなわちy'
i-1(x
i)=y'
i(x
i)
これらの制約条件に基づくと、x=x
iにおいて、式(5)から、第一の制約条件については
a
i-1+b
i-1x
i+c
i-1x
i2=a
i+b
ix
i+c
ix
i2 (6a)
となり、第二の制約条件については、
b
i-1+2c
i-1x
i=b
i+2c
ix
i (6b)
となる。式(6a)および(6b)から、
a
i=a
i-1+(b
i-1−b
i)x
i+(c
i-1−c
i)x
i2 (7a)
b
i=b
i-1+2(c
i-1−c
i)x
i (7b)
となる。
【0103】
式(7a)および(7b)から、次のことが観察できる。
・a
iは常にa
i-1,b
i-1,b
i,c
i-1,c
i,x
iに基づいて再構成できる
・c
iはそのセグメントが二次多項式である(すなわちM
i=2)である場合にのみ信号伝達される必要がある
・b
iは一次連続性が満たされない、すなわちM
i=2だがM
i-1≠2であるときまたはM
i=1であるときにのみ信号伝達される必要がある。.
例として、八個の二次多項式を使って定義される整形関数を考える。典型的な慣行のもとでは、それぞれの多項式について三つの係数、合計24個の係数を送信しなければならないであろう。提案される方法を使えば、八つの多項式のどれも一次または零次多項式でない場合、10個の係数が送信される必要があるだけである(第零セグメントについて3個、残りの七個のセグメントについて一つの係数)。
【0104】
よって、整形に関係したパラメータを伝送するための、より効率的な仕方は、次の諸段階を含む:
【0105】
【数16】
図6は、ある実施形態に基づく整形関数の多項式係数を再構成するためのデコーダにおける例示的なプロセスを描いている。M
i≠2である場合には、c
i=0であることが含意される(612)。M
i=1である場合には、一次連続性を満たすことはできず、デコーダはb
iを受け取る必要があり(608)、そうでない場合には、M
i=0がb
i=0であることを含意する(616)。c
iおよびb
iを与えられると、零次連続性に基づき、a
iは式(7)のように計算できる(618)。
【0106】
M
i=2の場合には、デコーダはc
iを読む(604)。M
i-1≠2かつM
i=2であれば、一次連続性を満たすことはできず、デコーダはb
iを受け取る必要があり(608)、そうでない場合には、b
iは式(7)を使って推定できる(610)。いずれの場合にも、a
iは式(7)のように計算できる(618)。
【0107】
表9は、ある実施形態に基づいて、整形関数をN個のセグメントとして信号伝達するための例示的なHEVCシンタックスを描いている。
【0108】
【表9】
reshape_present_flag〔整形存在フラグ〕が1に等しいことは、シンタックス要素reshape_input_luma_bit_depth_minus8、reshape_input_chroma_bit_depth_minus8、reshape_output_luma_bit_depth_minus8、reshape_output_chroma_bit_depth_minus8、coef_log2_denom_minus14、reshape_num_pivots_minus2、reshape_coded_pivot_value、poly_order、poly_coef_int、poly_coef_fracおよびreshape_pps_idが存在することを指定する。reshape_present_flagが0に等しいことは、シンタックス要素reshape_input_luma_bit_depth_minus8、reshape_input_chroma_bit_depth_minus8、reshape_output_luma_bit_depth_minus8、reshape_output_chroma_bit_depth_minus8、coef_log2_denom_minus14、reshape_num_pivots_minus2、reshape_coded_pivot_value、poly_order、poly_coef_int、poly_coef_fracおよびreshape_pps_idが存在しないことを指定する。
【0109】
reshape_input_luma_bit_depth_minus8〔整形入力ルーマ・ビット深さ引く8〕は、HDR整形プロセスの入力ルーマ成分のサンプル・ビット深さを指定する。
【0110】
reshape_input_chroma_bit_depth_minus8〔整形入力クロマ・ビット深さ引く8〕は、HDR整形プロセスの入力クロマ成分のサンプル・ビット深さを指定する。
変数BitDepthReshapeInput[c]〔ビット深さ 整形入力[c]〕は次のように導出される:
BitDepthReshapeInput[c]=8+(c==0) ? reshape_input_luma_bit_depth_minus8 : reshape_input_chroma_bit_depth_minus8
。
【0111】
reshape_output_luma_bit_depth_minus8〔整形出力ルーマ・ビット深さ引く8〕は、HDR整形プロセスの出力ルーマ成分のサンプル・ビット深さを指定する。
【0112】
reshape_output_chroma_bit_depth_minus8〔整形出力クロマ・ビット深さ引く8〕は、HDR整形プロセスの出力クロマ成分のサンプル・ビット深さを指定する。
変数BitDepthReshapeOutput[c]〔ビット深さ 整形出力[c]〕は次のように導出される:
BitDepthReshapeOutput[c]=8+(c==0) ? reshape_output_luma_bit_depth_minus8 : reshape_output_chroma_bit_depth_minus8
。
【0113】
coef_log2_denom_minus14に14を加えたものは、色成分cについてHDR整形に関係した係数計算のための端数ビットの数を指定する。coef_log2_denom_minus14の値は両端を含めて0から9までの範囲内とする。変数ReshapeLog2Denomは次のように導出される:
ReshapeLog2Denom=14+coef_log2_denom_minus14
。
【0114】
reshape_num_pivots_minus2[c]〔整形ピボット数引く2[c]〕に2を加えたものは、二つの端点を含めた、区分的な整形関数におけるピボット点の数を指定する。存在しないとき、reshape_num_pivots_minus2[c]の値は0であると推定される。reshape_num_pivots_minus2[c]はルーマ成分については両端を含めて0ないし7の範囲内、クロマ成分については両端を含めて0ないし3の範囲内とする。
【0115】
reshape_coded_pivot_value[c][i]〔整形符号化ピボット値[c][i]〕は、c番目の成分についてのi番目のピボット点の値を指定する。reshape_coded_pivot_valueの表現のために使われるビット数は、ルーマ成分についてはBitDepthReshapeInputL〔ビット深さ 整形入力L〕であり、クロマ成分についてはBitDepthReshapeInputC〔ビット深さ 整形入力C〕である。存在しないとき、reshape_coded_pivots_value[c][0]およびreshape_coded_pivots_value[c][1]の値は、video_full_range_flagに基づいて推定される。両端を含めて0ないし2の範囲内のcおよび両端を含めて0ないしreshape_num_pivots_minus2[c]+1の範囲内のiについて、次式が成り立つことが、ビットストリーム準拠の要件である:
reshape_coded_pivots_value[c][i+1]>reshape_coded_pivots_value[c][i]
。
【0116】
reshape_poly_order_minus1[c][i]〔整形多項式次数引く1〕に1を加えたものは、c番目の成分についてのi番目の区分の最大次数を指定する。reshape_poly_order_minus1の値は両端を含めて−1ないし1の範囲内とする。
【0117】
poly_coef_int[c][i][j]〔多項式係数整数[c][i][j]〕は成分cについてのi番目の区分のj番目の次数の多項式係数の整数値を指定する。poly_coef_int[c][i][j]の値は両端を含めて−64ないし63の範囲内とする。
【0118】
poly_coef_frac[c][i][j]〔多項式係数端数[c][i][j]〕は成分cについてのi番目の区分のj番目の次数の多項式係数の端数値を指定する。
cは両端を含めて0ないし2の範囲内、jは両端を含めて0ないし2の範囲内として、変数PolyCoef[c][0][j]〔多項式係数[c][0][j]〕は次のように導出される:
【0119】
【数17】
cは0ないし2の範囲内、iは0ないしreshape_num_pivots_minus2[c]の範囲内、jは0ないし2の範囲内(両端含む)として、変数PolyCoef[c][i][j]は次のように導出される。
【0120】
【数18】
reshape_pps_id〔整形PPS ID〕は、整形情報を含む参照されたpps_pic_parameter_set_idの値を指定する。存在しないとき、reshape_pps_idの値は0であると推定される。reshape_pps_idをもつPPSは、1に等しいreshape_present_flagをもつことが必要である(注意:このシンタックスの目的は、すでに整形情報を含んでいるpps_idを再利用することである。これは、PPSが非常に頻繁に変わる何らかの機能を含んでいて、一方、整形はシーン変化の間に更新されるだけである場合に特に有用)。
【0121】
区分的関数のインデックスの同定
このプロセスへの入力はサンプル値Sおよび成分インデックスcである。
このプロセスの出力は、サンプルSが属するセグメントを同定するインデックスidxSである。
変数idxSは次のように導出される。
【0122】
【数19】
ルーマ・サンプル値のHDR整形プロセス
このプロセスへの入力は、現在のピクチャーの左上のルーマ・サンプルに対するルーマ・サンプル位置を指定するルーマ位置(xP,yP)である。
このプロセスの出力は、hdr整形されたルーマ・サンプル値reshapeLumaSampleである。
reshapeLumaSampleの値は次の順序付けされた段階を適用することによって導出される:
1.変数idxLが、成分0についてサンプル値recPicture
L[xP][yP]の入力を用いて上記の区分的関数のインデックスの同定を呼び出すことによって、導出される。
2.reshapeLumaSampleの値が次のように導出される。
【0123】
【数20】
クロマ・サンプル値のHDR整形プロセス
このプロセスへの入力は、現在のピクチャーの左上のクロマ・サンプルに対するクロマ・サンプル位置を指定するルーマ位置(xP
C,yP
C)およびクロマ成分インデックスを指定する変数cIdxである。
このプロセスの出力は、hdr整形されたクロマ・サンプル値reshapeChromaSampleである。
recPicture
Cは、cIdxが0に等しい場合にはrecPictureC0に等しく、それ以外の場合にはrecPictureC0に等しく設定される。
reshapeChromaSampleの値は次のように導出される。
1.変数idxCが、成分cIdx+1についてサンプル値recPicture
C[xP
C][yP
C]の入力を用いて上記の区分的関数のインデックスの同定を呼び出すことによって、導出される。
2.reshapeChromaSampleの値が次のように導出される。
【0125】
〈例示的なコンピュータ・システム実装〉
本発明の実施形態は、コンピュータ・システム、電気回路およびコンポーネントにおいて構成されたシステム、集積回路(IC)デバイス、たとえばマイクロコントローラ、フィールドプログラマブルゲートアレイ(FPGA)または他の構成可能もしくはプログラム可能な論理デバイス(PLD)、離散時間もしくはデジタル信号プロセッサ(DSP)、特定用途向けIC(ASIC)および/またはそのようなシステム、デバイスまたはコンポーネントの一つまたは複数を含む装置を用いて実装されうる。コンピュータおよび/またはICは、本稿に記載されるような、向上ダイナミックレンジをもつ画像の信号整形および符号化に関係する命令を実行、制御または執行してもよい。コンピュータおよび/またはICは、本稿に記載される信号整形および符号化プロセスに関係する多様なパラメータまたは値の任意のものを計算しうる。画像およびビデオ実施形態はハードウェア、ソフトウェア、ファームウェアおよびそのさまざまな組み合わせにおいて実装されうる。
【0126】
本発明のある種の実施形態は、プロセッサに本発明の方法を実行させるソフトウェア命令を実行するコンピュータ・プロセッサを有する。たとえば、ディスプレイ、エンコーダ、セットトップボックス、トランスコーダなどにおける一つまたは複数のプロセッサは、プロセッサにとってアクセス可能なプログラム・メモリ内のソフトウェア命令を実行することによって上記のようなHDR画像の信号整形および符号化に関係する方法を実装してもよい。本発明は、プログラム・プロダクトの形で提供されてもよい。プログラム・プロダクトは、データ・プロセッサによって実行されたときに、データ・プロセッサに本発明の方法を実行させる命令を有する一組のコンピュータ可読信号を担持するいかなる非一時的な媒体を含んでいてもよい。本発明に基づくプログラム・プロダクトは、幅広い多様な形のいずれであってもよい。プログラム・プロダクトはたとえば物理的な媒体を含んでいてもよい。物理的な媒体とは、フロッピーディスケット、ハードディスクドライブを含む磁気データ記憶媒体、CD-ROM、DVDを含む光学式データ記憶媒体、ROM、フラッシュRAMを含む電子的データ記憶媒体などといったものである。プログラム・プロダクト上のコンピュータ可読信号は、任意的に、圧縮または暗号化されていてもよい。
【0127】
あるコンポーネント(たとえばソフトウェア・モジュール、プロセッサ、アセンブリー、デバイス、回路など)が上記で言及される場合、特に断わりのない限り、そのコンポーネントへの言及(「手段」への言及を含む)は、そのコンポーネントの等価物として、記載されるコンポーネントの機能を実行する任意のコンポーネントを含むものとして解釈されるべきである。それには、開示される構造と構造的に等価ではないが、本発明の例解されている例示的実施形態における機能を実行するコンポーネントが含まれる。
【0128】
〈等価物、拡張、代替その他〉
HDR画像の効率的な信号整形および符号化に関係する例示的実施形態についてこのように記載されている。以上の明細書では、本発明の実施形態について、実装によって変わりうる数多くの個別的詳細に言及しつつ述べてきた。このように、何が本発明であり、出願人によって本発明であると意図されているかの唯一にして排他的な指標は、この出願に対して付与される特許の請求項の、その後の訂正があればそれも含めてかかる請求項が特許された特定の形のものである。かかる請求項に含まれる用語について本稿で明示的に記載される定義があったとすればそれは請求項において使用される当該用語の意味を支配する。よって、請求項に明示的に記載されていない限定、要素、属性、特徴、利点もしくは特性は、いかなる仕方であれかかる請求項の範囲を限定すべきではない。よって、明細書および図面は制約する意味ではなく例示的な意味で見なされるべきものである。
いくつかの態様を記載しておく。
〔態様1〕
高ダイナミックレンジ・ビデオ・データを生成するためのデコーダであって、当該デコーダは一つまたは複数のプロセッサおよび非一時的メモリを有しており、当該デコーダにより出力画像を生成することは:
シーケンス処理セット(SPS)データを含む入力ビットストリームを受け取り、前記SPSデータの少なくとも一部を前記非一時的メモリに記憶し;
前記SPSデータをパースし;パースされたSPSデータにおいてHDR拡張シンタックス構造が存在していることを検出すると:
前記HDR拡張シンタックス構造から、色空間有効フラグ、色向上有効フラグ、適応整形有効フラグ、ダイナミックレンジ変換フラグ、色補正有効フラグまたはSDR閲覧可能フラグの一つまたは複数を含む後処理情報を抽出し;
前記入力ビットストリームをデコードして、予備的な出力デコード信号を生成し;
前記予備的な出力信号および前記後処理情報に基づいて第二の出力信号を生成することを含む、
デコーダ。
〔態様2〕
前記色空間有効フラグは、色空間情報が存在することを示す、態様1記載のデコーダ。
〔態様3〕
前記色空間情報は、色変換行列に関係した情報を含む、態様2記載のデコーダ。
〔態様4〕
前記HDR拡張シンタックス構造は色空間IDフラグを含む、態様1記載のデコーダ。
〔態様5〕
0に等しい前記色空間IDフラグの値は、処理色空間が前記入力ビットストリームの別の部分において定義されていることを示し、前記色空間IDフラグの0でない値は前記処理色空間を示す、態様4記載のデコーダ。
〔態様6〕
前記適応整形有効フラグは、適応的な整形に関係した情報が存在することを示す、態様1記載のデコーダ。
〔態様7〕
前記適応的な整形に関係した情報は、一つまたは複数の多項式関数に基づいて整形関数を決定するための整形関数パラメータを含む、態様6記載のデコーダ。
〔態様8〕
前記整形関数パラメータが:
前記整形関数を定義するために使われる多項式関数の総数に基づく第一のパラメータを含み、前記整形関数におけるそれぞれの(pi)多項式関数について、さらに:
その多項式関数についての開始ピボット点と;
その多項式関数の次数に基づく第二のパラメータであって、その多項式関数の次数は値2を超えることができない、第二のパラメータと;
その多項式関数についての一つまたは複数の0でない係数とを含む、
態様7記載のデコーダ。
〔態様9〕
第二の隣接する多項式関数に後続する、前記整形関数における第一の多項式関数について、前記第一の多項式関数についての係数は:
その多項式の次数が2である場合、二次の係数(ci)と;
前記第一の多項式の次数が2であり、前記第二の多項式の次数が2でない場合または前記第一の多項式の次数が1である場合、一次の係数(bi)とを含む、
態様8記載のデコーダ。
〔態様10〕
前記第一の多項式関数についての係数が一次の係数(bi)を含まない場合、その多項式の次数が2であれば、一次の係数は前記第二の多項式関数の一次と二次の係数、前記第一の多項式関数の第三の次数係数および前記第一の多項式関数についての開始ピボット点に基づいて計算される、態様9記載のデコーダ。
〔態様11〕
前記第一の多項式関数についての零次の係数(ai)が前記第二の多項式関数の係数、前記第一の多項式関数の二次の係数および第三の次数係数および前記第一の多項式関数についての開始ピボット点に基づいて計算される、態様9記載のデコーダ。
〔態様12〕
前記SDR閲覧可能フラグは、前記入力ビットストリームのデコードされたバージョンが標準ダイナミックレンジ(SDR)ディスプレイで直接閲覧可能であるかどうかを示す、態様1記載のデコーダ。
〔態様13〕
前記入力ビットストリームにおけるピクチャー処理セット(PPS)データをパースし;パースされたPPSデータにおいてピクチャーHDR拡張シンタックス構造が存在していることを検出すると、
前記ピクチャーHDR拡張シンタックス構造から前記入力ビットストリームにおける一つまたは複数のピクチャーについての後処理情報を抽出することをさらに含む、
態様1記載のデコーダ。
〔態様14〕
前記入力ビットストリームにおけるスライス・ヘッダ・データをパースし;パースされたスライス・ヘッダ・データにおいてスライスHDR拡張シンタックス構造が存在していることを検出すると、
前記スライスHDR拡張シンタックス構造から前記入力ビットストリームにおける一つまたは複数のピクチャーについての後処理情報を抽出することをさらに含む、
態様1記載のデコーダ。
〔態様15〕
前記入力ビットストリームのデコードがHEVC標準の仕様に基づいて実行される、態様1記載のデコーダ。
〔態様16〕
準拠デコーダについてのデコーダ準拠ポイントが、前記第二の出力信号を生成した後のところに定義される、態様1記載のデコーダ。
〔態様17〕
デコーダで高ダイナミックレンジ・ビデオ・データを生成するための方法であって:
シーケンス処理セット(SPS)データを含む入力ビットストリームを受け取り、前記SPSデータの少なくとも一部を非一時的メモリに記憶し;
前記SPSデータをパースし;パースされたSPSデータにおいてHDR拡張シンタックス構造が存在していることを検出すると:
前記HDR拡張シンタックス構造から、色空間有効フラグ、色向上有効フラグ、適応整形有効フラグ、ダイナミックレンジ変換フラグ、色補正有効フラグまたはSDR閲覧可能フラグの一つまたは複数を含む後処理情報を抽出し;
前記入力ビットストリームをデコードして、予備的な出力デコード信号を生成し;
前記予備的な出力信号および前記後処理情報に基づいて第二の出力信号を生成することを含む、
方法。
〔態様18〕
一つまたは複数のプロセッサで態様17記載の方法を実行するためのコンピュータ実行可能命令を記憶した非一時的なコンピュータ可読記憶媒体。