図面全体を通して、同様の要素または対応する要素については同じ参照番号が使用される。
本実施形態は、一般的に、ピクチャ内の画素の前処理および符号化に関し、特に、画素のクロミナンス値を改善する前処理および符号化に関する。
従来の圧縮の連鎖は、典型的には0〜10,000cd/m2の入来する線形RGB光の画素を逆トランスファ関数に与えることを伴い、これによって、0〜1の新しい画素値が生じる。この後に、画素に対して色変換が行われ、これによって、輝度成分(Y’)および2つのクロマ成分(Cb’,Cr’)が生じる。その後、2つのクロマ成分は、4:2:0または4:2:2など、サブサンプリングされる。展開後、4:2:0または4:2:2のシーケンスは、逆色変換される4:4:4にアップサンプリングされ、最終的に、トランスファ関数によってモニタ上で出力できる線形光の画素に戻される。
非常に非線形のトランスファ関数、クロマサブサンプリング、および非一定輝度順序の組み合わせは、特に飽和色について、ビデオデータに対して極度のアーティファクトを引き起こす。
実施形態による画素の前処理は、アーティファクトの強い影響を抑制するまたは少なくとも低減するために使用可能であり、それによって、入来する画素の「真の」色により近い色が生じる。
色空間または色ドメインは、色モデルの色成分の組み合わせから生じる色のタイプおよび数である。色モデルは、色が数のタプル、すなわち色成分として表され得る様式を描写する抽象構成である。色成分は、成分のタイプ、例えば色相、およびその単位、例えば度またはパーセンテージ、または、スケールのタイプ、例えば線形または非線形、および、色の深さまたはビット深さと呼ばれる値のその意図される数などのいくつかの際立った特徴を有する。
ピクチャおよびビデオにおける画素に対して通常使用される、非限定的であるが例示的な色空間は、赤、緑、青(RGB)色空間、輝度、クロマ青、およびクロマ赤(YCbCr、時にはY’CbCr、Y’Cb’Cr’、YCBCR、Y’CBCR、またはY’CB’CR’と表記される)の色空間、ならびに輝度およびクロミナンス(XYZ)色空間を含む。
本書では、以下の専門用語が使用されることになる。
RGB:それぞれの値がcd/m2に比例する(「光子数」)、線形RGB値。
XYZ:それぞれの値がRGBの線形結合である、線形XYZ値。Yは「輝度」と呼ばれ、おおざっぱに言うと、目には「明るさ」として感知されるものを良好に反映する。
pq(Y):非線形関数pq(Y)が線形輝度Yに適用されている、非線形表現。pq(Y)はY’と混同されるべきではない。pq(.)はBarten曲線に類似しているため、pq(Y)における小ステップは感知された輝度における小ステップに相当する。
R’G’B’:非線形RGB値。R’=pq(R)、G’=pq(G)、B’=pq(B)であり、pq(.)は非線形関数である。非線形関数の例は知覚量子化器(PQ)トランスファ関数である。
Y’Cb’Cr’:それぞれの値がR’、G’、およびB’の線形結合である、非線形表現。Y’は「輝度」と呼ばれ、Cb’およびCr’は「クロマ」と総称される。これは、Y’があるクロミナンスも含有し、Cb’およびCr’がある輝度も含有するため、Y’を輝度と区別するものとする。
ICtCp:HDRおよび広色域(WCG)イメージに対して設計される色の表現であり、Y’Cb’Cr’の代案として意図される。Iは強度を表し、輝度情報の表現であるのに対して、CtCpはクロマ情報を保持する。
xy:これは、x=X/(X+Y+Z)、y=Y/(X+Y+Z)によって「明るさ」に対して正規化されているため、クロミナンスの非線形表現である。単色レーザは、強度が何であろうとxyにおいて同じ座標を常に有することになる。これは、xyがクロミナンスの良好な尺度であることを意味する。
u’v’:xyの非線形関数である、クロミナンスの非線形表現。より知覚的に一様であると思われ、u’v’における小ステップはどのクロミナンスにあるかにかかわらず、等しく感知可能になることを意味する。xyに関してだけ、単色レーザは、どんな強度であろうと、同じu’v’座標を常に有することになる。
pq(Y)xy:pq(Y)が輝度全てを含有し、xyがクロミナンス全てを含有する色の表現。pq(Y)からYを抽出することが可能であり、Y、x、およびyから、RGBに変換されることが可能であるXYZを抽出することが可能である。
図1は、ピクチャ内の画素を前処理する方法を示す図である。方法は、ステップS1において、第1の色空間におけるサブサンプリングされた線形色を得るために第1の色空間における線形色をサブサンプリングすることを含む。次のステップS2は、第1の色空間におけるサブサンプリングされた非線形色を得るために第1の色空間におけるサブサンプリングされた線形色に第1のトランスファ関数(TF:transfer function)を適用することを含む。方法はステップS3に続くが、このステップは、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値および第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値のうちの少なくとも1つを得るために、第1の色空間におけるサブサンプリングされた非線形色に第1の色変換(CT:color transform)を適用することを含む。方法は、ステップS4において、画素の第2の色空間における非線形輝度成分値を導出することをさらに含む。画素の色は、第2の色空間における、非線形輝度成分値、サブサンプリングされた第1の非線形クロマ成分値、および、サブサンプリングされた第2の非線形クロマ成分値によって表される。
図1の前処理は、HDRまたはWCGビデオシーケンスを含む複数のピクチャを含むビデオシーケンスのピクチャといったピクチャ内の少なくとも1つの画素に適用される。一実施形態では、前処理は、図1における線L1によって概略的に示される、ピクチャ内の画素全てといった、複数の、すなわち少なくとも2つの画素に適用可能である。
図1に示されるような前処理は、それによって、第1の色空間における線形色から、第2の色空間における少なくとも1つのサブサンプリングされた非線形クロマ成分値がもたらされる。先行技術の前処理とは明らかに対照的に、本実施形態は、線形色をサブサンプリングすることを伴う、すなわち、線形色ドメインにおいて行われる。非線形色の生成は、次いで、サブサンプリング後に行われる、すなわち、第1のトランスファ関数はサブサンプリングされた線形色に適用される。
先行技術は代わりに、最初に、非線形色を得るために線形色にトランスファ関数を適用する。色変換はその後、非線形色に適用された後、サブサンプリングが行われる。
一実施形態では、第1の色空間はRGB色空間であり、線形色は、それによって、本明細書ではROGOBOと表記されるRGB色である。初期の色は、サブサンプリングされないまたは元のフォーマット、すなわち4:4:4フォーマットにある。このROGOBO4:4:4色は、次いで、ステップS1においてサブサンプリングされてサブサンプリングされたRGB色、すなわちRGB2:2:2色を捕えるのが好ましい。ステップS2は、サブサンプリングされた非線形色R’G’B’2:2:2を得るためにRGB2:2:2色に第1のトランスファ関数を適用することを含む。「’」は、赤、緑、および青色成分が非線形色成分であることを指示するために使用される。一実施形態では、第1のトランスファ関数は付録Aに示される式A1におけるトランスファ関数の逆関数である。線形色の値を非線形色の値に転換するために従来より採用される他のトランスファ関数も使用可能である。結果として生じるサブサンプリングされた非線形色R’G’B’2:2:2は次いで、第1の色変換を使用して、R’G’B’色空間から第2の色空間に色変換される。この第2の色空間はY’Cb’Cr’色空間であるのが好ましく、第1の色変換は、式1において特定される、かつITU−R BT.709に規定されるような色変換とすることができ、これは、高精細度テレビ(HDTV)に対して主に使用される。使用可能である別の色変換は以下の式2において、かつITU−R BT.601に規定されるように示され、これは、標準画質テレビ(SDTV)に対して主に使用される。
Y’=0.299000R’+0.587000G’+0.114000B’
Cb’=−0.168736R’−0.331264G’+0.500000B’
Cr’=0.500000R’−0.418688G’−0.081312B’
(式2)
式2は一般的に、BT.709におけるRGBを検討するときに使用される。RGBがBT.2020から生じるときの対応する式は以下に提示される。
Y’=0.262700R’+0.678000G’+0.059300B’
Cb’=−0.139630R’−0.360370G’+0.500000B’
Cr’=0.500000R’−0.459786G’−0.040214B’
(式3)
第1の色変換によってY’Cb’Cr’2:2:2色がもたらされる。一実施形態では、YCbCr色空間における、サブサンプリングされた非線形輝度成分値Y’、サブサンプリングされた第1の非線形クロマ成分値Cb’、およびサブサンプリングされた第2の非線形クロマ成分値Cr’全ては、ステップS3において得られる。代替的な実施形態では、サブサンプリングされた非線形クロマ成分値Cb’、Cr’のみがステップS3において算出され、それによって、基本的に、上の式1〜3における輝度成分Yに関連している第1行を省略する。このようなアプローチでは、ステップS3は、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値を得るために、第1の色空間におけるサブサンプリングされた非線形色に第1の色変換を適用することを含む。さらなる実施形態は、非線形クロマ成分値のうちの1つ、すなわち、Cb’またはCr’を算出することのみを含む。このような実施形態では、式1〜3の色変換における第2行または第3行における算出のみがステップS3において行われる。
ステップS3における前処理の結果は、Cb’値、Cr’値、またはCb’値およびCr’値など、第2の色空間における少なくとも1つのサブサンプリングされた非線形クロマ成分値である。
実施形態は、それによって、ビデオシーケンスなど、ピクチャの画素を処理するとき、サブサンプリングされたクロマ値またはサンプルCb’およびCr’に想到する新規のやり方を提案する。
本明細書においてアンカーの連鎖と表記される先行技術の前処理は、Cb’およびCr’値を導出するために下記のプロセスを使用する。
RGB4:4:4 → (第1のトランスファ関数) → R’G’B’4:4:4(第1の色変換) → Y’Cb’Cr’4:4:4 → (Cb’およびCr’のサブサンプリング) → Y’Cb’Cr’4:2:0
この場合、4:4:4の全ての色成分に対するフル解像度から、4:2:0の垂直方向および水平方向両方におけるクロマ成分のサブサンプリングまでのサブサンプリングが、前処理の連鎖の最終ステップにおいて行われる。
一実施形態によると、下記の前処理の連鎖が提案される。
RGB4:4:4 → (RGBのサブサンプリング) → RGB2:2:2 → (第1のトランスファ関数) → R’G’B’2:2:2 → (第1の色変換) → Y’Cb’Cr’2:2:2
この場合、サブサンプリングは、代わりに、前処理の連鎖の最初の部分であり、線形ドメインにおいて行われる。ここで、3つのサンプル全てが、垂直方向および水平方向、すなわち、x次元およびy次元両方におけるハーフ解像度であることを指示するために、2:2:2という用語が使用されている。このように、最終ステップにおけるY’成分が2:2:2フォーマット、すなわち、両方の方向におけるハーフ解像度であるため、フル解像度の非線形輝度Y’成分を捕えない。
一実施形態では、ステップS1は、第1の色空間におけるサブサンプリングされた線形色を得るために垂直方向および水平方向両方において第1の色空間における線形色をサブサンプリングすることを含む。このようなアプローチによって、第2の色フォーマットにおけるフル解像度の非線形輝度成分によって、4:2:0フォーマットにおけるY’Cb’Cr’色がもたらされる。別の実施形態では、ステップS1は、第1の色空間におけるサブサンプリングされた線形色を得るために水平方向または垂直方向といった1つの方向のみにおいて第1の色空間における線形色をサブサンプリングすることを含む。この実施形態は、代わりに、第2の色フォーマットにおけるフル解像度の非線形輝度成分によって、4:2:2:フォーマットにおけるY’Cb’Cr’色がもたらされる。
ステップS1におけるサブサンプリングは、既知のサブサンプリング技法に従って行われることが可能である。例えば、フィルタリング演算または最近傍演算が使用可能である。実施形態に従って使用できるサブサンプリング技法の一例は、International Organization for Standardization、ISO/IEC JTC1/SC29/WG11、Coding of moving pictures and audio、MPEG2013/M35255、2014年10月、ストラスブール、フランスのFrancoisらの「About using a BT.2020 container for BT.709 content」の文献[1]における、セクションB.1.5.5、「Chroma downsampling from 4:4:4 to 4:2:0」に開示されている。
フル解像度の非線形輝度成分値Y’は、図1のステップS4においてさまざまな実施形態に従って導出可能である。第1の実施形態では、非線形輝度成分値Y’は、第1の色空間における非線形色を得るために、第1の色空間における線形色に第1のトランスファ関数を適用する追加のステップによって導出される。第1の色変換は次いで、第2の色空間における非線形輝度成分値を得るために第1の色空間における非線形色に適用される。
この実施形態は、それによって、次のステップを伴う。
RGB4:4:4 → (第1のトランスファ関数) → R’G’B’4:4:4 → (第1の色変換) → Y’Cb’Cr’4:4:4
第1の色変換は、4:4:4フォーマットにおける、非線形輝度成分値Y’だけでなく非線形クロマ成分値Cb’、Cr’も全て、算出するために適用可能である。しかしながら、図1における方法ステップS1〜S3に従ってサブサンプリングされた非線形クロマ成分値Cb’、Cr’が得られるため、非線形輝度成分値Y’だけが必要とされる。これは算出を行うこと、すなわち、式1〜3における第1行のみに対応する。
Y’=0.212600R’+0.715200G’+0.072200B’、または
Y’=0.299000R’+0.587000G’+0.114000B’、または
Y’=0.262700R’+0.678000G’+0.059300B’
上記に従って、この実施形態において得られた(フル解像度)の非線形輝度成分値Y’は次いで、画素の色の表現である、4:2:0または4:2:2フォーマットの表現Y’Cb’Cr’を捕えるために、ステップS1〜S3に従って、サブサンプリングされた非線形クロマ成分値Cb’、Cr’と組み合わせ可能である。
一実施形態では、図1に示されるような前処理方法は、サブサンプリングされた非線形クロマ成分値Cb’、Cr’のうちの1つを導出するために使用される。このような場合、2つのサブサンプリングされた非線形クロマ成分値のうちのもう1つは、先行技術のアンカー処理から得られ得る。
別の実施形態では、フル解像度の非線形輝度成分値Y’は本明細書においてAjustyと表記され、かつ、以下におよび付録Aにおいてさらに説明される方法に従って導出される。
簡単に言えば、Ajusty方法は、図2におけるステップS11を参照すると、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値、および、第3の色空間における元の線形輝度成分値に基づいて、画素の第2の色空間における非線形輝度成分値を導出することを含む。
一実施形態では、上で述べられる第3の色空間はXYZ色空間である。したがって、第3の色空間における画素の線形輝度は、この実施形態ではY成分である。
一実施形態では、方法は、図2に示されるような追加ステップS10を含む。このステップS10は、第1の色空間における画素の線形色に基づいて第3の色空間における画素の元の線形輝度成分値を決定することを含む。
よって、非線形輝度成分値を導出することは、第1の色空間における画素の線形色に基づいて第3の色空間における画素の元の線形輝度成分値の決定を伴う。この元の線形輝度成分値は、好ましくは、画素の真の輝度、すなわち、任意のサブサンプリング、トランスファ関数および色変換の適用の前の画素の元の輝度を反映する。この元の線形輝度成分値は、第1の色空間における画素の線形色に基づいて決定される。一実施形態では、第1の色空間における画素のこの線形色は、画素の、入来する元の色である。特定の実施形態では、入来する元の色は、先に述べたROGOBOであり、元の線形輝度成分はYOと表記される。
よって、元の線形輝度は、多くの種々なやり方で算出可能な目標輝度である。この元の線形輝度は、ピクチャを撮るまたはビデオ録画するカメラにおける、またはディスプレイのパネルにおけるセンサの実際の輝度に直接必ずしも対応しなくてもよい。
第3の色空間における元の線形輝度成分値は、あらかじめ決定されるまたはあらかじめ算出される形態で、好ましくはYO値である元の線形輝度成分値として前処理および符号化機能に対して得られることが可能である。これは、第1の色空間における線形色に基づく、元の線形輝度成分値の決定が既に行われており、前処理および符号化機能にはその決定の結果のみが提供されることを意味する。
代替的な実施形態では、実施形態の前処理は、RGBがBT.2020から生じるときの式4、またはRGBがBT.709から生じるときの式5における色変換といった、RGBからXYZへの色変換が好ましい、第3の色変換を使用する、ステップS10における元の線形輝度成分値の決定または算出を含む。
X=0.636958R+0.144617G+0.168881B
Y=0.262700R+0.677998G+0.059302B
Z=0.000000R+0.028073G+1.060985B (式4)
X=0.412391R+0.357584G+0.180481B
Y=0.212639R+0.715169G+0.072192B
Z=0.019331R+0.119195G+0.950532B (式5)
実際、第1の色空間(ROGOBO)における線形色から元の線形輝度値(YO)を得るために算出される必要があるのは、式4または5における第2行のみであり、つまり、YO=0.262700RO+0.677998GO+0.059302BOまたはYO=0.212639RO+0.715169GO+0.072192BOである。
次いで、第2の色空間における非線形輝度成分値は、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値および第2の非線形クロマ成分値、ならびに、第3の色空間における元の線形輝度成分値に基づいて、ステップS11において画素に対して導出される。故に、一実施形態では、YCbCr色空間における非線形輝度成分Y’は、YCbCr色空間におけるCb’およびCr’成分、ならびに、XYZ色空間におけるYO成分の関数、すなわち、Y’=f(Cb’,Cr’,YO)である。次に、YO成分は、RGB色空間における画素のROGOBO色に基づいて決定される、すなわち、YO=g(RO,GO,BO)になる。したがって、Y’=f(Cb’,Cr’,g(RO,GO,BO))である。
前処理された画素は、次いで、導出された非線形輝度成分(Y’)、および、第2の色空間における2つサブサンプリングされた非線形クロマ成分(Cb’,Cr’)、すなわち、Y’Cb’Cr’によって表される。よって、タプルY’Cb’Cr’は、前処理された画素の色を、好ましくは4:2:0または4:2:2フォーマットで、すなわち、サブサンプリングされない輝度成分を除くサブサンプリングされたクロマ成分で表す。
一実施形態では、図2のステップS11は、第2の色空間における非線形輝度成分値、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、および、第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値に基づいて決定される、第3の色空間における元の線形輝度成分値と第3の色空間における線形輝度成分値との間の差異を最小化する第2の色空間における非線形輝度成分値を導出することを含む。
故に、この実施形態では、ステップS11は、第3の色空間(XYZ)における、元の線形輝度成分値(YO)と線形輝度成分値(Y)との間の差異を最小化する第2の色空間(YCbCr)における非線形輝度成分値(Y’)を見つけることを伴う。第3の色空間(XYZ)における線形輝度成分値(Y)は、次に、第2の色空間(YCbCr)における、非線形輝度成分値(Y’)および2つのサブサンプリングされた非線形クロマ成分値(Cb’Cr’)に基づいて得られる。
よって、この実施形態は、差異|YO−Y|または(YO−Y)2を最小化するY’成分値を見つけることを伴う。この場合、Y=h(Y’,Cb’,Cr’)であり、h(.)はYがY’、Cb’、およびCr’に基づいて決定されることを規定する。
代替的であるが関連の実施形態では、ステップS11は、第3の色空間における元の輝度成分値の関数と第3の色空間における線形輝度成分値の関数との間の差異を最小化する第2の色空間における非線形輝度成分値を導出することを伴う。第3の色空間におけるこの線形輝度成分値は、第2の色空間における非線形輝度成分値、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値に基づいて決定される。
よって、この実施形態は、差異|k(YO)−k(Y)|または(k(YO)−k(Y))2を最小化するY’成分値を見つけることを伴う。式中、Y=h(Y’,Cb’,Cr’)である。
関数(k(.))は、付録Aに示されるような式A1におけるトランスファ関数の逆関数といった逆トランスファ関数であるのが好ましい。
図3は、図2に示される方法の追加の任意選択のステップを示すフローチャートである。これらのステップは、ピクチャ内の画素の最適な非線形輝度成分値を導出するための追加の処理を示す。方法は、図1におけるステップS3から続く。方法は、ステップS20における、第2の色空間におけるアップサンプリングされた第1の非線形クロマ成分値および第2の色空間におけるアップサンプリングされた第2の非線形クロマ成分値を捕えるために、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値および第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値をアップサンプリングすることによって、続行する。次のステップS21は、第1の色空間における非線形色を捕えるために、第2の色空間における候補の線形輝度成分値、第2の色空間におけるアップサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるアップサンプリングされた第2の非線形クロマ成分値に第2の色変換を適用することを含む。次のステップS22は、第1の色空間における非線形色を捕えるために第2の色空間における非線形色に第2のトランスファ関数を適用することを含む。最終的に、第3の色変換は、ステップS23において、第3の色空間における線形輝度成分値を捕えるために第1の色空間における線形色に適用される。方法はその後、図2におけるステップS11に続き、このステップは、第3の色空間における元の線形輝度成分値と第3の色空間における線形輝度成分値との比較に基づいて非線形輝度成分値を導出することを含む。
よって、一実施形態では、4:2:0または4:2:2フォーマットのサブサンプリングされたCb’およびCr’成分値は、初めに4:4:4フォーマットにアップサンプリングされる。ステップS20におけるアップサンプリングは、既知のアップサンプリング技法に従って行われることが可能である。例えば、アップサンプリングは、双線形フィルタまたはより長いフィルタを使用することによって行うことができる。実施形態に従って使用可能であるアップサンプリング技法の一例は、文献[1]における、セクションB.1.5.6、「Chroma upsampling from 4:2:0 to 4:4:4(Y’CbCrドメイン)」に開示されている。
これらの2つのアップサンプリングされたCb’およびCr’成分値は、次いで、色変換などの非線形R’G’B’色を捕えるために、候補のY’成分値と共に、第2の色変換に入力される。
R’=Y’+a13Cr’
G’=Y’−a22b’−a23Cr’
B’=Y’+a32Cb’
Rec.709の色空間については、a13=1.57480、a22=0.18732、a23=0.46812、a32=1.85560であり、BT.2020の色空間については、a13=1.47460、a22=0.16455、a23=0.57135、a32=1.88140である。
一般的に、R’、G’、およびB’は、間隔[0,1]内の値を仮定できる。したがって、第2の色変換は、R’成分に対するR’=clip(Y’+a13Cr’ ,0,1)などのクランプまたはクリップ演算を含むこともできる。この場合、clip(x,a,b)は、x<aである場合はaに等しく、x>bである場合はbに等しく、その他の場合はxに等しい。
このR’G’B’色は次いで、線形RGB色を捕えるために、付録Aにおけるトランスファ関数[1]といった第2のトランスファ関数に入力される。このRGB色は次いで、式4または5における色変換など、第3の色変換を使用して、RGB色空間からXYZ色空間に変換される。
第3の色変換から出力された線形輝度成分Y値は、次いで、ステップS11における画素の元の線形輝度成分YO値と比較される。
一実施形態では、図2のステップS11は、第3の色空間における元の線形輝度成分値と第3の色空間における線形輝度成分値との間の差異を低減する、第2の色空間における候補の非線形輝度成分値を選択することを含む。
よって、ステップS11は、好ましくは、元の線形輝度成分値とステップS23において得られた線形輝度成分値との間の差異の少なくとも低減をもたらす、第2の色空間における候補の非線形輝度成分値を選択することを含む。特定の実施形態では、ステップS11は、第3の色空間における、元の線形輝度成分値と線形輝度成分値との間の差異を最小化する、第2の色空間における候補の非線形輝度成分値を選択することを含む。
この差異は、前述されるように、|YO−Y|または(YO−Y)2として表すことが可能である。この場合、Yは図3のステップS23で得られる。
代替的ではあるが関連の実施形態では、ステップS11は、第3の色空間における元の輝度成分値の関数と第3の色空間における線形輝度成分値の関数との間の差異を、低減する、好ましくは最小化する、第2の色空間における候補の非線形輝度成分値を選択すること、すなわち、差異|k(YO−)−k(Y)|または(k’−k(Y))2を最小化する候補のY’成分値を選択することを伴う。
一実施形態では、図3におけるステップS21〜S23は、第2の色空間における種々な候補の非線形輝度成分値に対して行われ、これは線L2によって概略的に示される。このような場合、ステップS11は、好ましくは、第3の色空間における元の線形輝度成分値と第3の色空間における線形輝度成分値との間の最小差異、または、第3の色空間における元の線形輝度成分値の関数と第3の色空間における線形輝度成分値の関数との間の最小差異を生じさせる、第2の色空間における種々な候補の非線形輝度成分値の中から候補の非線形輝度成分値を選択することを含む。
これは、ステップS21〜S23のループが複数回行われ、かつ、ステップS21における種々な候補のY’成分値を使用することを意味する。後に、YOとYとの間またはk(YO)とk(Y)との間の最小差異をもたらす候補のY’成分値は選択され、かつ、画素の色表現としてのサブサンプリングされたCb’およびCr’成分値と共に使用される。
続く実施形態では、第3の色空間における元の線形輝度成分値(YO)と第3の色空間における線形輝度成分値(Y)との間の差異に関してより詳細に説明される。これらの実施形態はまた、第3の色空間における元の線形輝度成分値(k(YO))の関数と第3の色空間における線形輝度成分値(k(Y))の関数との間の差異を包含する。関数は、本明細書に先に述べられるように、付録Aにおける式A1におけるトランスファ関数の逆関数といったトランスファ関数の逆関数であるのが好ましい。
複数の候補のY’成分値の中からの最適な候補のY’成分値の選択は、本明細書にさらに説明されるようにさまざまな実施形態に従って行うことが可能である。
第1の実施形態は二分探索を行うことを伴う。それ故に、この実施形態では、方法は、図4におけるステップS24を参照すると、第3の色空間における元の線形輝度成分値と第3の色空間における線形輝度成分値との間の差異を最小化する第2の色空間における候補の非線形輝度成分値を選択するために二分探索を行うことを含む。
二分探索は、最適な候補の非線形輝度成分値を見つけるために使用可能である効率的な技法である。一般的に、二分探索アルゴリズムは、第3の色空間における元の輝度成分値と、第2の色空間における可能な候補の非線形輝度成分値の分類されたアレイの中間要素を使用して得られる第3の色空間における線形輝度成分値とを比較することによって始める。第3の色空間における線形輝度成分値が第3の色空間における元の線形輝度成分値に等しい、または、既定量未満で、第3の色空間における元の線形輝度成分値と異なっている場合、中間要素の位置に戻され、この探索を終える。線形輝度成分値が元の線形輝度成分値を上回る場合、この探索は該アレイの下半分について続行する、または、線形輝度成分値が元の線形輝度成分値を下回る場合、この探索は該アレイの上半分について続行する。このプロセスは、要素の半分を削除すること、および、生じる線形輝度成分値と元の線形輝度成分値とを、その間の差異がゼロになるまで、またはアレイ全体が探索されるまで、すなわち、1以外の全ての要素が削除されるまで比較することを続行する。これは、log2(N)ステップのみに保証され、この場合、Nはアレイにおける可能な候補の非線形輝度成分値の数である。例えば、候補の非線形輝度成分値が[0,1023]のアレイから選択可能であると仮定する。すると、N=1024であり、log2(1024)=10である。
一実施形態では、二分探索は、探索間隔の中ほどで第2の色空間における候補の非線形輝度成分値に対して図3におけるステップS21〜S23を行うことによって行われる。その後、探索間隔の中ほどにおける候補の非線形輝度成分値は、第3の色空間における元の輝度成分値と第3の色空間における線形輝度成分値との間の差異がゼロに等しい場合に選択される。その他の場合、すなわち、差異がゼロに等しくない場合、方法は、上で使用される探索間隔と比較するとサイズが半分の探索間隔を選択すること、および、第3の色空間における線形輝度成分値が第3の色空間における元の線形輝度成分値より大きい場合、上で使用される候補の非線形輝度成分値で終了すること、または、上で使用される探索間隔と比較するとサイズが半分の探索間隔を選択すること、および、第3の色空間における線形輝度成分値が第3の色空間における元の線形輝度成分値より小さい場合、上で使用される候補の非線形輝度成分値で開始することによって続行する。
ループL2を伴うステップは、その後、第3の色空間における元の線形輝度成分値と第3の色空間における線形輝度成分値との間の差異がゼロに等しくなる、もしくは少なくとも規定された閾値より小さくなる、探索間隔がこれ以上半分にすることができなくなる、ループが既定回数繰り返されている、または探査間隔があらかじめ定められた間隔のサイズに到達している、すなわち、探索間隔があらかじめ定められた間隔のサイズより小さくなる、または等しくなるまで、繰り返される。
探索間隔の選択は、一般的に、上で使用される探索間隔と比較すると、サイズがおよそ半分の探索間隔を選択することを伴う。例えば、探索間隔が値100、101、102、103を含有する場合、「中央値」として101または102のどちらかを選定することができ、これによって、[100,101](探索間隔の真の半減)もしくは[101,103](探索間隔のほぼ半減)の「半減した」探索間隔、または、[100,102](探索間隔のほぼ半減)もしくは[102,103](探索間隔の真の半減)の「半減した」探索間隔が生じる。
別の実施形態は非線形輝度成分値の選択を最適化問題と見なすことであり、Y’に対する誤差E=(YO−Y)2またはE=|YO−Y|を最小化する。これは、例えば、Y’に対するEの勾配を算出すること、すなわち、dE/dY’による、勾配降下によって行うことができ、勾配の反対方向に少量Y’を更新すること、すなわち、式中、αは小定数として、Y’n+1=Y’n−α(dE/dY’)が可能である。
勾配降下は低速になり得るため、二階微分値d2E/dY’2を算出するまたは概算する二次最適化アルゴリズムを使用するより迅速なやり方を取ることができる。ガウス−ニュートンはかかるアルゴリズムの一例である。
さらなる実施形態は、非線形輝度成分値を選択するとき、ルックアップテーブル(LUT)を使用することを伴う。このようなLUTは、例えば、Cb’、Cr’、およびYO成分値のあらゆる可能な組み合わせに対する最良のY’成分値を含むことができる。例えば、Cb’およびCr’成分が10ビットまで量子化され、かつ、YO成分も10ビットまで量子化されると仮定する。さらに、LUTは、210×210×210異なるY’成分値を含有するものとする。これは、230のY’成分値と同等である。各このようなY’成分値が2バイトである場合、LUTは231バイトまたは2Gbを有することになる。
より小さいLUTを使用することも可能とすることができる。例えば、YO、Cb’、およびCr’成分をより小さいサイズ、例えば6ビットに量子化可能とすることができる。さらに、LUTは、218Y’成分値、または512kbに等しい219バイトとなる。
YO成分は線形であるため、該成分をただ量子化することは非効率である場合がある。むしろ、最適なY’成分を捕えるためにLUTへの入力としてCb’およびCr’と共にYOの関数を使用することがより良い場合がある。該関数は、好ましくは、YO成分の非線形表現を出力し、例えば、付録Aにおけるトランスファ関数[1]の逆関数などの逆トランスファ関数(TF−1(.))とすることができる。最適なY’成分値は、その後、Y’=LUT(Cb’,Cr’,TF−1(YO))としてLUTから導出される。
図5は、LUTを使用するときの、図2におけるステップS11の一実施形態を示すフローチャートである。方法は、図1のステップS3から続行する。次のステップS30は、第2の色空間におけるアップサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるアップサンプリングされた第2の非線形クロマ成分値を捕えるために、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値をアップサンプリングすることを含む。
次のステップS31は、ルックアップテーブルへの入力として、第3の色空間における元の非線形輝度成分値、またはこの非線形バージョン、第2の色空間におけるアップサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるアップサンプリングされた第2の非線形クロマ成分値、またはこの量子化バージョンを使用して、ルックアップテーブルから第2の色空間における非線形輝度成分値を検索することを含む。
一実施形態では、方法は、第3の色空間における元の非線形輝度成分値を捕えるために第3の色空間における元の線形輝度成分値に第1の逆トランスファ関数を適用することも含む。方法は次いで、図5におけるステップS31に続行する。この実施形態では、ステップS31は、ルックアップテーブルへの入力として、第3の色空間における元の非線形輝度成分値、第2の色空間におけるアップサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるアップサンプリングされた第2の非線形クロマ成分値、またはこの量子化バージョンを使用して、ルックアップテーブルから第2の色空間における非線形成分値を検索することを含む。
一実施形態では、ルックアップテーブルは、第3の色空間における元の非線形輝度成分値、またはこの非線形バージョン、第2の色空間におけるアップサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるアップサンプリングされた第2の非線形クロマ成分値、またはこの量子化バージョンの各組み合わせに対して、第2の色空間における最適な非線形輝度成分値、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値に基づいて決定される、第3の色空間における元の非線形輝度成分値と第3の色空間における非線形輝度成分値との間の差異を最小化する、第2の色空間における最適な非線形輝度成分値を含む。
図3におけるステップS20および図5におけるステップS30で行われる際の、第2の色空間における非線形クロマ成分値のアップサンプリングは、好ましくは、第2の色空間における非線形輝度成分値と同じ数のサンプルに、非線形クロマ成分値をアップサンプリングする。
非線形輝度成分値Y’を導出するAjusty方法は、一実施形態において、下記の前処理ステップを伴う。
RGB4:4:4 → (第3の色変換) → XYZ4:4:4 → Y4:4:4――+―→ Y’=Ajusty(Y4:4:4,Cb’Cr’4:4:4)
Y’Cb’Cr’2:2:2 → Cb’Cr’2:2:2 → (アップサンプリング) → Cb’Cr’4:4:4――/
この場合、Y4:4:4はXYZ4:4:4の輝度成分であり、Cb’Cr’4:4:4はY’Cb’Cr’のアップサンプリングされたクロマ成分である。要するに、目標輝度Y4:4:4は、最初に、RGB4:4:4からXYZ4:4:4に転換後、Y4:4:4を使用することによって見出される。次いで、Y’Cb’Cr’2:2:2から4:4:4のフォーマットをアップサンプリングし、かつCb’Cr’4:4:4を使用することによってCb’Cr’4:4:4が得られる。最終的に、上述され、かつ付録Aにさらに示されるAjusty方法は、最良のY’4:4:4を見出すためにY4:4:4およびCb’Cr’4:4:4に対して使用される。
図10は、線形RGBにおけるサブサンプリングを行うことによってCb’およびCr’を得る、およびAjustyを使用することによってY’を得る一実施形態を示す。前処理への入力は、高解像度の画像またはピクチャ、すなわち、HDRまたはWCGピクチャといった、線形RGB(4:4:4フォーマット)における画像またはピクチャである。図10、また図11および図12において、例示の目的で2×2画素もしくはサンプルの画像またはピクチャが使用されているが、実際の画像またはピクチャは当然ながらよりもっと大きい。図10〜図12に示される実施形態は、組み合わせてまたは別個に使用可能である。
図10に示される第1の実施形態は、Y’およびCb’Cr’の良好な値を見出すために使用される前処理を示す。第1のステップは、サブサンプリングされたRGB画像を得る(B)ためにRGB画像をサブサンプリングする(A)ことである。この例では、サブサンプリングはx次元およびy次元両方におけるものである。次に、最初に非線形トランスファ関数TF(.)を適用してR’G’B’を得た(C)後、これをY’Cb’Cr’に転換してCb’Cr’を保有する(D)ことによって、Cb’Cr’係数の第1のバージョンが作成される。そのとき、正しく低い解像度、すなわち2:2:2フォーマットのCb’Cr’がある。
正しい、高解像度、すなわち4:4:4フォーマットのY’も捕えるために、それぞれの画素に対する基準線形輝度Yを必要とし、これを、フル解像度RGB入力(A)からXYZに転換し、かつYを保有する(E)ことによって捕える。また、Cb’Cr’のアップサンプリングを行う(F)。ここで、Y’を捕える(G)ためにY(E)およびCb’Cr’(F)に対してAjustyを使用することができる。そのとき、出力はCb’Cr’(D)およびY’(G)である。
2×2画素の画像による説明的な例において、それぞれの画素は、それ自体が導出した、4:4:4フォーマットの非線形輝度成分値Y1〜Y4を有するが、サブサンプリングされる、2:2:2フォーマットの非線形クロマ成分値Cb’Cr’は、x次元およびy次元両方におけるサブサンプリングによって、2×2画素に対して導出されることに留意されたい。
Y’Cb’Cr’4:2:0または4:2:2表現に想到すると、上記をさらに改善することが可能である。その理由は、フル解像度ではないそれぞれのCb’および/またはCr’値がいくつかのY’値に使用されることになることである。しかしながら、Y’Cb’Cr’空間の非線形性質によって、Y’成分を変更することは画素の輝度だけでなくクロミナンスにも影響しない。1つのY’値だけで正しいクロミナンス、すなわち、Y’Cb’Cr’2:2:2からのY’が与えられることになり、このY’値からずれる場合、クロミナンスはわずかにシフトすることになる。いくつかの画素はY’2:2:2値より大きくなり、それらの画素ではクロミナンスは1つの向きにシフトされることになる。いくつかの他の画素は、Y’2:2:2値より小さくなり、それらのクロミナンスは反対の向きにシフトされることになる。伴う非線形性によって、これらのシフトは、打ち消せない場合がある。従って、Cb’および/またはCr’を、集約したクロミナンスがシフトした向きとは反対の向きに補正することは有利である場合がある。
図6は、このような改良を伴う追加のステップを示すフローチャートである。方法は、図1におけるステップS3から続く。次のステップS40は、画素の高解像度の非線形輝度成分値による、第2の色空間における低解像度の非線形輝度成分値の置き換えを防ぐために、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値のうちの少なくとも1つを改良することを含む。方法はその後、図1におけるステップS4に続く。
サブサンプリングされたCb’および/またはCr’値の改良は、さまざまな実施形態に従って行われることが可能であり、これらはさらに本明細書において説明される。
図7は、このような改良の例を示すフローチャートである。方法は、図1のステップS3からステップS50へ続く。このステップS50は、第3の色空間における線形輝度成分値を得るために第1の色空間における線形色に第3の色変換を適用することを含む。第4の色変換は、ステップS51において、第4の色空間におけるクロミナンスのサブサンプリングされた非線形表現を得るために第1の色空間におけるサブサンプリングされた線形色に適用される。第4の色空間におけるクロミナンスのサブサンプリングされた非線形表現は、ステップS52において、第4の色空間におけるクロミナンスのアップサンプリングされた非線形表現を得るためにアップサンプリングされる。下記のステップS53は、第1の色空間における基準線形色を得るために、第3の色空間における線形輝度成分値、および第4の色空間におけるクロミナンスのアップサンプリングされた非線形表現に第5の色変換を適用することを含む。次のステップS54は、第1の色空間における基準非線形色を得るために第1の色空間における基準線形色に第1のトランスファ関数を適用することを含む。第1の色変換は、ステップS55において、第2の色空間における第1の基準非線形クロマ成分値、および第2の色空間における第2の基準非線形クロマ成分値を得るために、第1の色空間における基準非線形色に適用される。次のステップS56は、第2の色空間におけるアップサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるアップサンプリングされた第2の非線形クロマ成分値を得るために、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値をアップサンプリングすることを含む。第1のクロマ差は、ステップS57において、第2の色空間における第1の基準非線形クロマ成分値と、第2の空間におけるアップサンプリングされた第1の非線形クロマ成分値との間で算出される。ステップS57は、第2の色空間における第2の基準非線形クロマ成分値と、第2の色空間におけるアップサンプリングされた第2の非線形クロマ成分値との間の第2のクロマ差を算出することも含む。第1のクロマ差および第2のクロマ差は次いで、サブサンプリングされた第1のクロマ差およびサブサンプリングされた第2のクロマ差を得るためにサブサンプリングされる。サブサンプリングされた第1のクロマ差は、第2の色空間における更新済みのサブサンプリングされた第1の非線形クロマ成分値を得るために、ステップS59において、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値に追加される。対応して、サブサンプリングされた第2のクロマ差は、第2の色空間における更新済みのサブサンプリングされた第2の非線形クロマ成分値を得るために、第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値に追加される。
上述された改良において、Cb’値およびCr’値は両方共、ステップS50〜S59に従って改良されている。代替的な実施形態では、Cb’値のみまたはCr’値のみが改良される。このような場合、ステップS55〜S59などにおいて、第1の非線形クロマ成分値および第2の非線形クロマ成分値のうちの1つのみが使用される必要がある。
一実施形態では、方法は、図2におけるステップS11に続く。この実施形態では、ステップS11は、第2の色空間におけるサブサンプリングされた更新済みの第1の非線形クロマ成分値、第2の色空間におけるサブサンプリングされた更新済みの第2の非線形クロマ成分値、および、第3の色空間における元の線形輝度成分値に基づいて、画素の第2の色空間における非線形輝度成分値を導出することを含む。
それ故に、この実施形態では、更新済みのCb’Cr’値は、Ajusty方法において入力されることで、非線形クロマ成分値だけでなく、非線形輝度成分値も改善する。
このアプローチは、図11および図12においてさらに開示される。
この実施形態において、第1の実施形態からのCb’Cr’値は、図10を参照すると、強度に対して不変の表現におけるアップサンプリングから導出されるCb’Cr’値と、第1の実施形態からのアップサンプリングされたCb’Cr’値との間の差異によって更新される。更新済みのCb’Cr’値は次いで、線形輝度Yと共に使用されて、Ajusty方法を使用して新しいY’値を導出する。
図11は、強度に対して不変の表現におけるクロマアップサンプリングによる基準を作成する一実施形態を示す。
Cb’Cr’値を改善するために、最初に、いくつかの基準を作成する必要がある。線形RGB入力(A’)で開始するが、これは図10における(A)と同じである。第1の基準は、単なるフル解像度の線形輝度Yであり、これは、RGB(A’)をXYZに転換し、XZを捨てて、Yを保有する(F’)ことによって得られる。これは図10における(E)と同じである。これによって、第1の基準またはY基準が与えられる。
その後、RGB4:4:4(A’)からRGB2:2:2(B’)にサブサンプリングするが、これは図10における(B)と同じである。次のステップは、RGB(B’)からXYZに、次いでxyzに転換し、zを捨てて、xyを保有する(C’)ことである。xy値はその後、アップサンプリングされ、かつYxyを形成する(D’)ためにYと組み合わせられる(F’)。それぞれのYxy値(D’)は次いで、好ましくは、XYZに転換し戻された後、R’G’B’に、最後にY’Cb’Cr’に転換される(E’)ことによって、Y’Cb’Cr’に転換される。これは第2の基準またはY’Cb’Cr’基準である。
図12は次いで、図11からの基準を使用してCb’およびCr’の反復改良の一実施形態を示す。
Cb’Cr’データ(H)について挙げる。最初の反復の場合、これは図10における(D)と同じである。反復kの場合、これは、反復k−1の(M)と同じである。アップサンプリングして(H)を捕える(I)。
Y’Cb’Cr’基準を捕える(J)が、これは図11における(E’)と同じであり、Y’を捨てて、それぞれの画素に対してCb’およびCr’を保有する。次いで、(I)からのCb’およびCr’を減じて、それぞれの画素における差異ΔCb’Cr’である(K)を得る。(K)における差分信号は次いで、サブサンプリング(L)された後、(H)におけるCb’Cr’信号に追加されて、Cb’Cr’の更新バージョンがもたらされる(M)。
そのとき、正しい解像度のY’だけを必要とする。これを、Cb’Cr’(M)をより高い解像度(N)にアップサンプリングすることによって行う。アップサンプリングされたCb’Cr’(N)は、図11からのY基準(F’)と共に、Ajusty方法によって使用されてY’を生じさせる(O)。出力はそのとき、Cb’Cr’(M)およびY’(O)になる。
「RGBをXYZに転換してYを保有する」というとき、3つの成分全てを転換することが必要でなく、1つだけを保有することが多いことは留意されるべきである。典型的には、これらのケースでは、保有することを望む成分1つのみを算出することが可能である。XYZからのYであり、Y’Cb’Cr’からのY’ではないことを意味することを強調するように書き込むこのやり方が使用されている。
一実施形態では、それによって、図7におけるステップS50は、XYZ色空間におけるYの4:4:4成分値を得るために、RGBの4:4:4色に第3の色変換を適用することを含む。ステップS51は、RGBの2:2:2色に第4の色変換を適用してRGB2:2:2からXYZ2:2:2にした後、xyz2:2:2にして、xyz色空間におけるクロミナンスのサブサンプリングされた非線形表現としてxy2:2:2を保有することを含む。xy2:2:2表現は、ステップS52においてxy4:4:4を捕えるためにアップサンプリングされる。第5の色変換は、YxyからXYZへの色変換およびXYZからRGBへの色変換によって、RGBの4:4:4基準色を得るために、ステップS53において、F’からのYの4:4:4成分値およびD’からのxyの4:4:4成分値に適用される。よって、第5の色変換は、YxyからXYZへの色変換およびXYZからRGBへの色変換から成ると見なされることが可能である。第1のトランスファ関数はその後、R’G’B’の4:4:4基準色を得るために、ステップS54において、RGBの4:4:4基準色に適用される。第1の色変換(RGBからYCbCrへの色変換)は次いで、ステップS55において、Y’Cb’Cr’基準色4:4:4を捕えるために、R’G’B’の4:4:4基準色に適用される。
サブサンプリングされたCb’Cr’2:2:2値は、ステップS56において、アップサンプリングされたCb’Cr’4:4:4値にアップサンプリングされ、ステップS55からのCb’Cr’4:4:4基準値と共に使用されて、ステップS57においてΔCb’Cr’4:4:4差を算出する。ΔCb’Cr’4:4:4差は、ΔCb’Cr’2:2:2にサブサンプリングされ、サブサンプリングされたCb’Cr’2:2:2値に追加されて、更新済みのCb’Cr’2:2:2値を捕える。これらは次いで、Ajusty方法に対する入力としてYの4:4:4基準と共に、アップサンプリングされかつ使用されてよい。
代替的な実施形態では、「Y’およびCb’Cr’に対する良好な値を見出す」ことは、アンカー処理の連鎖:RGB4:4:4 → R’G’B’4:4:4 → Y’Cb’Cr’4:4:4 → (サブサンプリング) → Y’Cb’Cr’4:2:0によって置き換えられる。そして、新しい基準Yは、Y’Cb’Cr’4:2:0 → (Cb’およびCr’をアップサンプリングする) → Y’Cb’Cr’4:4:4 → R’G’B’4:4:4 → RGB4:4:4 → XYZ4:4:4 → Y4:4:4を行うことによるそれぞれの反復で作成されなければならない。このYは、その後、(F’)の代わりに図11における(D’)において使用される。これでは、良好な輝度となるような作成は行われないが、例えば、複雑な理由で、アンカー処理の連鎖を開始時にそのままにしておきたいときのある特定の状況下では良好である可能性がある。
任意の目標画像またはピクチャが使用可能であることは明確である。上記において、最初にRGBでサブサンプリングされた後、xyに転換されたクロミナンスを、XYZに転換されたサブサンプリングされないRGBから生じる輝度Yと共に有する目標画像またはピクチャが使用される。しかしながら、別の目標画像またはピクチャを使用することは等しく簡易であると思われる。例として、最初に画像またはピクチャをRGBからXYZに転換してからxyに転換後、これをサブサンプリングしてサブサンプリングされたxyを捕えたい場合がある。これは、同じ輝度Yと組み合わせ可能である。この詳細な実施形態は、明るさにかかわらずクロミナンスを維持したかったら良好であると思われる。また、他の目標画像が使用可能である。
別の実施形態では、上記の実施形態におけるサブサンプリングは、人間の視覚に従って、表現空間における誤差を低減するように最適化される適応フィルタから成る。
別の実施形態では、Cb’およびCr’のうちの1つまたはその両方は、元の表現または色空間におけるより良い表現、または、人間の視覚に従った表現空間を捕えるように修正される。この修正は、Cb’またはCr’値+1または−1で修正後、Cb’およびCr’の修正された値および修正されない値をアップサンプリングする反復テスト、R’G’B’への転換、非線形トランスファ関数の適用、および、人間の視覚に従った表現または色空間への転換によって行われ得る。修正されたCb’/Cr’値が、Cb’に対するZおよびCr’に対するXと同様の(輝度ではない)クロマ特有の色成分表現空間における空間域に対する絶対誤差または2乗誤差が少ない場合、修正が選択される。空間域はアップサンプリングフィルタのサイズに関連している。双線形フィルタが4:2:0から4:4:4へのCb’またはCr’改良をアップサンプリングするために使用される場合、その空間域のサイズは、水平方向に3、垂直方向に4になる。4タップフィルタがアップサンプリングに使用される場合、該空間域のサイズは、水平方向に7、垂直方向に8になる。誤差はまた、修正された値が4:4:4における3×4または7×8の近傍サンプルのそれぞれにどのように影響し得るかによって重み付け可能である、または、ただ単に、該空間域の中央部分(3×2)を含むことができる。
別の実施形態では、Cb’またはCr’改良の大きさは、修正されるべきサンプルまたは画素の周りの中央の3×2の区域におけるAjusty方法の平均値の大きさに初期化される。Cb’またはCr’改良の標示は、Cb’に対するZおよびCr’に対するXと同様の(輝度ではない)クロマ特有の色成分表現空間における改良前の誤差平均から標示を取り出すことによって導出される。よって、Cb’改良の初期値は、Cb’+標示(誤差)*abs(平均(Ajusty前のY’−Ajusty後のY’)/N)である。式中、Nは約2である。修正されたCb’によってCb’に対するZと同様の(輝度ではない)クロマ特有の色成分表現空間における空間域に対する絶対誤差または2乗誤差が少ない場合、修正が選択され、方法がCr’に対して適用される場合、同様に適用される。別の実施形態では、Cb’またはCr’改良の大きさは、修正されるべきサンプルの周りの中央の3×2の区域における4:4:4のCb’またはCr’の平均値に初期化される。よって、Cb’改良の初期値は平均(4:4:4のCb’)になる。修正されたCb’によってCb’に対するZと同様の(輝度ではない)クロマ特有の色成分表現空間における空間域に対する絶対誤差または2乗誤差が少ない場合、修正が選択され、方法がCr’に対して適用される場合、同様に適用される。
別の実施形態では、Ajusty方法によるY’からYmod’への調節は、XYZにおけるZと同様のクロマ特有の色成分表現空間における誤差(輝度以外のメトリック)を低減する場合、Y’の方へ1ステップごとに修正されるが、輝度Yのいずれの視覚的劣化も引き起こさない。これによって、クロマ特有の色表現空間における性能の改善に加えて、場合によってはまた、Y’を容易に符号化することができる。
本明細書に説明される実施形態は、クロマ成分が垂直方向および水平方向両方においてサブサンプリングされる場合の、RGB4:4:4からY’Cb’Cr’4:2:0への転換について開示している。実施形態の方法は、当然ながら、クロマ成分が水平方向のみにサブサンプリングされた場合に、RGB4:4:4から別のサブサンプリングされたY’Cb’Cr’フォーマット、例えばY’Cb’Cr’4:2:2へ転換するときに等しくうまくいくと思われる。さらに、クロマ成分のうちの1つのみをサブサンプリングすることも可能であると思われる。
図9は、1つの実施形態による方法のフローチャートを示す。方法は、第1の色表現または空間における少なくとも第1の画素を表現するビットストリームを受信することを含む。次のステップでは、有意である第2の色表現または空間における変動を生じさせ得る人間の目で見ることが難しい向きに画素が変動しているかどうかを究明する。この究明によってこのような有意な変動が生じ得ると結論付けられる場合、画素はこのような変動性を除去するように処理される。方法は、任意選択で、第2の色表現に少なくとも第1の画素を転換することを含む。
実施形態による画素の前処理は、種々な応用例で、特に、ビデオ符号化を含む種々なビデオ応用例で使用可能である。
したがって、一実施形態は、ピクチャ内の画素を符号化する方法に関する。方法は、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値、および、第2の色空間における非線形輝度成分値を導出するために、本明細書に開示されるような実施形態のいずれかに従って画素を前処理することを含む。方法はまた、図8に示されるステップS12において、非線形輝度成分値、サブサンプリングされた第1の非線形クロマ成分値、および、サブサンプリングされた第2の非線形クロマ成分値を符号化することを含む。
よって、画素の前処理は、ビデオシーケンスのピクチャを符号化することなどに関連して、ピクチャの画素の符号化中の追加の処理として使用可能である。
4:2:0または4:2:2フォーマットなどにおける前処理の出力、すなわちY’Cb’Cr’は、次いで、H.264ビデオエンコーダ、高効率ビデオエンコーダ(HEVC)、H.265ビデオエンコーダ、または、別のビデオエンコーダなどのビデオエンコーダに入力される。ビデオエンコーダによって行われる符号化は、インター予測、イントラ予測、モード判断、残留変換、および、例えば、コンテキスト適応型二値算術符号化方式(CABAC)エンコーダといった、エントロピーエンコーダなどにおいて、変換されかつ量子化された残差の量子化および符号化などの従来のビデオ符号化ステップを含むことができる。
実施形態を前処理する利点は、ビデオエンコーダまたはピクチャエンコーダにおけるいずれの調節も、または対応するビデオデコーダまたはピクチャデコーダにおけるいずれの調節も行う必要なく、いずれのビデオまたはピクチャ符号化プロセスにも適用可能であることである。明確な対照をなして、前処理は、追加の処理、すなわち、トランスファ関数の適用、色変換の適用、およびクロマサブサンプリングを伴う、Y’Cb’Cr’色への、符号化されるべきピクチャ内の画素のROGOBO色といった、元の色の従来の転換の代わりに、入力されたピクチャに適用される前処理として、理解できる。
ビデオシーケンスなどのピクチャ内の画素の前処理はまた、ビデオ符号化以外の他の応用例で使用可能である。例えば、実施形態は、高精細マルチメディアインターフェース(HDMI)、ディスプレイポート、またはサンダーボルトといった、インターフェース上でビデオを転送する前に適用される前処理として使用可能である。例えば、HDMI2.0aにおいて、毎秒50または60フレーム(fps)で4K解像度を伝達するただ1つのやり方は、4:2:0または4:2:2のYCbCrサブサンプリングを使用することである。ビデオデータが完全なクロマサンプリングフォーマット(4:4:4)である場合、サブサンプリング前処理ステップは、HDMIケーブル上でビデオデータを送る前に適用されなければならない。4:2:0または4:2:2のビデオデータは、次いで、さらなる圧縮なくインターフェース上で転送される。実施形態の前処理を適用することによって、ビデオ品質は非線形ドメインにおける従来の4:2:0または4:2:2サブサンプリング、すなわち、Cb’Cr’値のサブサンプリングと比較して改善されている。
前述では、線形色の好ましい例として、RGB4:4:4色をRGB2:2:2色にサブサンプリング後、サブサンプリングされた非線形色の好ましい例として、トランスファ関数を適用してR’G’B’2:2:2色を得ることに関する実施形態が説明されている。次いで、サブサンプリングされた非線形クロマ成分値および非線形輝度成分値それぞれの好ましい例として、Cb’および/またはCr’値を得るために色変換が適用され、Y値が導出される。
しかしながら、実施形態はこれらに限定されない。ICtCpは代替的な色空間であり、ここで、I値は輝度情報を保持し、CtCp値はクロマ情報を保持する。一実施形態では、LMS色空間におけるLMS値は、式6に従って、RGB値および色変換から得られることが可能である。
L=(1688*R+2146*G+262*B)/4096
M=(683*R+2951*G+462*B)/4096
S=(99*R+309*G+3688*B)/4096 (式6)
EOTFPQの逆関数といったトランスファ関数は、次いで、非線形L’M’S’値を得るためにLMS値に適用可能である。最後に、ICtCP値を得るためにこれらのL’M’S’値に色変換が適用される。
I=0.5*L’+0.5*M’
Ct=(6610*L−13613*M’+7003*S’)/4096
Cp=(17933*L’−17390*M’−543*S’)/4096 (式7)
実施形態は次いで、以下に従ってこのケースに適用可能である。第1のアプローチでは、図1のステップS1において、画素の線形RGB4:4:4色は、サブサンプリングされた線形RGB2:2:2色を得るためにサブサンプリングされる。方法はまた、サブサンプリングされた線形LMS2:2:2色を得るために、上記の式6などに従って、色変換をサブサンプリングされた線形RGB2:2:2色に適用することを含む。EOTFPQの逆関数といったトランスファ関数は、ステップS2において、非線形L’M’S’2:2:2色を得るために線形LMS2:2:2色に適用される。上記の式7などの色変換は、ステップS3において、サブサンプリングされた非線形クロマ成分値Ctおよび/またはCpを得るために非線形L’M’S’2:2:2色に適用される。ステップS4において、非線形輝度成分値としてY’を使用して先に説明された実施形態と同様の非線形輝度成分値Iが導出される。
代替的なアプローチでは、図1の方法は、ステップS1において、画素の線形LMS4:4:4色を線形LMS2:2:2色にサブサンプリングすることによって開始する。それ故に、この実施形態では、第1の色空間における画素の線形色はLMS色空間におけるLMS4:4:4色である。下記のステップS2〜S4は上述されるように行われる。
実施形態によると、Y’Cb’Cr’に転換する前に線形空間においてサブサンプリングすることによって、アンカープロセスと比較して、シーンにおける真のクロミナンスをより良く反映するクロマサンプルを捕えることができる。しかしながら、連鎖において早期にサブサンプリングすることは、何か他のやり方でY’成分を見つけ出す必要があることを意味する。これは、一実施形態において、Cb’およびCr’を前提として所与の輝度Yを適合させるようにY’を使用するためにAjusty方法を使用することによって、解決される。
別の態様では、Cb’およびCr’サンプルは、低解像度のY’成分が高解像度のY’成分と置き換えられるときに発生するシフトを防ぐためにさらに改良される。これはさらに色忠実度を改善する。
さらに別の態様では、Ajusty方法後のY’サンプルは、輝度のいずれの視覚的劣化も引き起こさずに、輝度以外の別のメトリックにおける誤差を低減する場合、Ajusty方法前のY’値に対して修正される。
第1の態様によると、第1の解像度の画素RGB表現をサブサンプリングされたクロマサンプルCb’およびCr’に転換するための方法が提供される。これは、x次元およびy次元両方においてRGB表現をサブサンプリングすること、および、最初に非線形トランスファ関数tf(.)を適用してR’G’B’を得た後、これをY’Cb’Cr’に転換することによってCb’Cr’サンプルの第1のバージョンを作成することによって、達成される。
したがって、デバイスが、サブサンプリングされたCb’Cr’成分を捕えるために線形ドメインにおける画素のRGB表現をサブサンプリングするように構成される、および、デバイスが、Y’成分を捕えるためにAJUSTY方法を使用するようにさらに構成される場合の、デバイスおよびその方法が提供される。
任意選択のステップは、次いで、Cb’Cr’値を補正してY’値をより良く合わせることである。
実施形態の別の態様は、ピクチャ内の画素を前処理するためのデバイスに関する。デバイスは、第1の色空間におけるサブサンプリングされた線形色を得るために第1の色空間における画素の線形色をサブサンプリングするように構成される。デバイスはまた、第1の色空間におけるサブサンプリングされた非線形色を得るために第1の色空間におけるサブサンプリングされた線形色に第1のトランスファ関数を適用するように構成される。デバイスは、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値のうちの少なくとも1つを得るために、第1の色空間におけるサブサンプリングされた非線形色に第1の色変換を適用するようにさらに構成される。デバイスは、さらには、画素の第2の色空間における非線形輝度成分値を導出するように構成される。画素の色は、第2の色空間における、非線形輝度成分値、サブサンプリングされた第1の非線形クロマ成分値、および、サブサンプリングされた第2の非線形クロマ成分値によって表される。
一実施形態では、デバイスは、第1の色空間における非線形色を得るために第1の色空間における線形色空間に第1のトランスファ関数を適用すること、および、非線形輝度成分値を得るために第1の色空間における非線形色空間に第1の色変換を適用することによって、画素の第2の色空間における非線形輝度成分値を導出するように構成される。
別の実施形態では、デバイスは、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値、および、第3の色空間における元の線形輝度成分値に基づいて、画素の第2の色空間における非線形輝度成分値を導出するように構成される。
一実施形態では、デバイスは、第1の色空間における画素の線形色に基づいて第3の色空間における画素の元の線形輝度成分値を決定するように構成される。
一実施形態では、デバイスは、第2の色空間における非線形輝度成分値、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、および、第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値に基づいて決定される、第3の色空間における元の線形輝度成分値と第3の色空間における線形輝度成分値との間の差異を最小化する第2の色空間における非線形輝度成分値を導出するように構成される。
一実施形態では、デバイスは、第2の色空間におけるアップサンプリングされた第1の非線形クロマ成分値および第2の色空間におけるアップサンプリングされた第2の非線形クロマ成分値を得るために、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値および第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値をアップサンプリングするように構成される。デバイスはまた、第1の色空間における非線形色を得るために、第2の色空間における候補の非線形輝度成分値、第2の色空間におけるアップサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるアップサンプリングされた第2の非線形クロマ成分値に第2の色変換を適用するように構成される。デバイスは、第1の色空間における線形色を得るために第1の色空間における非線形色に第2のトランスファ関数を適用するようにさらに構成される。デバイスは、さらに、第3の色空間における線形輝度成分値を得るために第1の色空間における線形色に第3の色変換を適用するように構成される。デバイスはまた、第3の色空間における元の線形輝度成分値と第3の色空間における線形輝度成分値との比較に基づいて非線形輝度成分値を導出するように構成される。
一実施形態では、デバイスは、第3の色空間における元の線形輝度成分値と第3の色空間における線形輝度成分値との間の差異を低減する、第2の色空間における候補の非線形輝度成分値を選択するように構成される。
一実施形態では、デバイスは、第2の色空間における候補の非線形輝度成分値、第2の色空間におけるアップサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるアップサンプリングされた第2の非線形クロマ成分値への第2の色変換の適用と、第1の色空間における非線形色への第2のトランスファ関数の適用と、第2の色空間における種々な候補の非線形輝度成分値のための第1の色空間における線形色への第3の色変換の適用とを行うように構成される。この実施形態では、デバイスはまた、第3の色空間における元の線形輝度成分値と第3の色空間における線形輝度成分値との間に最小の差異を生じさせる、第2の色空間における種々な候補の非線形輝度成分値の中から候補の非線形輝度成分値を選択するように構成される。
一実施形態では、デバイスは、第3の色空間における元の線形輝度成分値と第3の色空間における線形輝度成分値との間の差異を最小化する第2の色空間における候補の非線形輝度成分値を選択するために二分探索を行うように構成される。
一実施形態では、デバイスは、第2の色空間におけるアップサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるアップサンプリングされた第2の非線形クロマ成分値を得るために、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値をアップサンプリングするように構成される。デバイスはまた、第3の色空間における元の非線形輝度成分値、またはこの非線形バージョン、第2の色空間におけるアップサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるアップサンプリングされた第2の非線形クロマ成分値、またはこの量子化バージョンに基づいて、ルックアップテーブルから第2の色空間における非線形輝度成分値を検索するように構成される。
一実施形態では、デバイスは、画素の高解像度の非線形輝度成分値による、第2の色空間における低解像度の非線形輝度成分値の置き換えを防ぐために、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値のうちの少なくとも1つを改良するように構成される。
一実施形態では、デバイスは、第3の色空間における線形輝度成分値を得るために第1の色空間における線形色に第3の色変換を適用するように構成される。デバイスはまた、第4の色空間におけるクロミナンスのサブサンプリングされた非線形表現を得るために、第1の色空間におけるサブサンプリングされた線形色に第4の色変換を適用するように構成される。デバイスは、第4の色空間におけるクロミナンスのアップサンプリングされた非線形表現を得るために、第4の色空間におけるクロミナンスのサブサンプリングされた非線形表現をアップサンプリングするようにさらに構成される。デバイスはさらには、第1の色空間における基準線形色を得るために、第3の色空間における線形輝度成分値、および第4の色空間におけるクロミナンスのアップサンプリングされた非線形表現に第5の色変換を適用するように構成される。デバイスはまた、第1の色空間における基準非線形色を得るために第1の色空間における基準線形色に第1のトランスファ関数を適用するように構成される。デバイスは、第2の色空間における第1の基準非線形クロマ成分値、および第2の色空間における第2の基準非線形クロマ成分値を得るために、第1の色空間における基準非線形色に第1の色変換を適用するようにさらに構成される。デバイスはさらには、第2の色空間におけるアップサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるアップサンプリングされた第2の非線形クロマ成分値を得るために、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値をアップサンプリングするように構成される。デバイスはまた、第2の色空間における第1の基準非線形クロマ成分値と、第2の色空間におけるアップサンプリングされた第1の非線形クロマ成分値との間の第1のクロマ差、および、第2の色空間における第2の基準非線形クロマ成分値と、第2の色空間におけるアップサンプリングされた第2の非線形クロマ成分値との間の第2のクロマ差を算出するように構成される。デバイスは、サブサンプリングされた第1のクロマ差およびサブサンプリングされた第2のクロマ差を得るために、第1のクロマ差および第2のクロマ差をサブサンプリングするようにさらに構成される。デバイスはさらには、第2の色空間における更新済みのサブサンプリングされた第1の非線形クロマ成分値を得るために、サブサンプリングされた第1のクロマ差を第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値に追加するように、および、第2の色空間における更新済みのサブサンプリングされた第2の非線形クロマ成分値を得るために、サブサンプリングされた第2のクロマ差を第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値に追加するように構成される。
一実施形態では、デバイスは、第2の色空間におけるサブサンプリングされた更新済みの第1の非線形クロマ成分値、第2の色空間におけるサブサンプリングされた更新済みの第2の非線形クロマ成分値、および、第3の色空間における元の線形輝度成分値に基づいて、画素の第2の色空間における非線形輝度成分値を導出するように構成される。
図13Aおよび図13Bは、実施形態に従って、デバイス100Aおよびコンバータ100Bの特定のハードウェア実装形態をそれぞれ示す。一実施形態では、図13Aを参照すると、デバイス100Aは、サブサンプリングされたCb’Cr’成分を捕えるために線形ドメインにおける画素のRGB表現をサブサンプリングするように構成されるサブサンプリング部106を含む。デバイス100Aはまた、Y’成分を捕えるためにAjusty方法を使用するように構成される画素プロセッサ102を含む。
一実施形態では、デバイス100Aはまた、符号化されるべきビデオを受信するように構成される入力部104と、Y’Cb’Cr’データを出力するように構成される出力部105とを含む。
入力部104は、特に、外部デバイスへの有線接続の場合、一般的な入力部の形態とすることができる。代替的には、入力部104は、特に、外部デバイスへの無線接続の場合、受信機またはトランシーバの形態とすることができる。それに応じて、出力部105は、特に、外部デバイスへの有線接続の場合、一般的な出力部の形態とすることができる。代替的には、出力部105は、特に、外部デバイスへの無線接続の場合、送信機またはトランシーバの形態とすることができる。
入力部104は、好ましくは、出力部105に接続される画素プロセッサ102に接続されるサブサンプリング部106に接続される。出力部は、Y’Cb’Cr’表現をエンコーダに送付することができる。デバイス100Aがまた、エンコーダの一部分とすることができる、またはエンコーダ107を含むことができることは留意されるべきである。
図13Bにおいて、デバイスの実装例として示されるコンバータ100Bは、RGB色4:4:4をサブサンプリングされたRGB色2:2:2にサブサンプリングするように、かつ、サブサンプリングされた非線形R’G’B’色2:2:2を捕えるためにサブサンプリングされたRGB色2:2:2に第1のトランスファ関数を適用するように構成される決定部101を含む。コンバータ100Bはまた、第1の色変換を適用して、R’G’B’色2:2:2をサブサンプリングされた非線形クロマ成分値Cb’Cr’2:2:2に転換するように構成されるコンバータ103を含む。コンバータ100Bの画素プロセッサ102は、Ajusty方法を使用してサブサンプリングされた非線形クロマ成分値に基づいて非線形輝度成分値Y’4:4:4を導出するために使用するように構成される。コンバータ10B0は、任意選択に、前述された入力部104および出力105を含むこともできる。
一実施形態では、デバイス100Aまたはコンバータ100Bは、決定部101またはサブサンプリング部106、画素プロセッサ102およびコンバータ103、ならびに、任意選択に入力部104および出力部105を含む。このような場合、決定部101またはサブサンプリング部106は、第1の色空間におけるサブサンプリングされた線形色を得るために第1の色空間における線形色をサブサンプリングするように構成される。画素プロセッサ102は、第1の色空間におけるサブサンプリングされた非線形色を得るために、第1の色空間におけるサブサンプリングされた線形色に第1のトランスファ関数を適用するように構成される。コンバータ103または画素プロセッサ102は、そして、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値のうちの少なくとも1つを得るために、第1の色空間におけるサブサンプリングされた非線形色に第1の色変換を適用するように構成される。
適したハードウェア回路構成の特定の例は、1つまたは複数の適当に構成された、または場合によっては再構成可能な電子回路構成、例えば、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または適したレジスタ(REG)および/またはメモリ部(MEM)と接続した専門機能を果たすように相互接続された離散論理ゲートおよび/またはフリップフロップに基づいた回路などの任意の他のハードウェア論理を含む。
代替的には、本明細書に説明されるステップ、関数、手順、モジュール、および/またはブロックの少なくともいくつかは、1つまたは複数のプロセッサもしくは処理部などの適した処理回路構成によって実行するためにコンピュータプログラムなどのソフトウェアに実装されてよい。
処理回路構成の例は、1つまたは複数のマイクロプロセッサ、1つまたは複数のデジタル信号プロセッサ(DSP)、1つまたは複数の中央処理装置(CPU)、ビデオアクセラレーションハードウェア、および/または、1つもしくは複数のFPGA、または1つもしくは複数のプログラマブルロジックコントローラ(PLC)などの任意の適したプログラマブル論理回路構成を含むが、これらに限定されない。
提案された技術が実装される任意の従来のデバイスまたはユニットの一般的な処理機能を再利用することを可能とすることができることも理解されるべきである。また、例えば、既存のソフトウェアの再プログラミングによって、または新しいソフトウェア構成要素を追加することによって、既存のソフトウェアを再利用可能とすることができる。
特定の例では、デバイス110(図14を参照)は、プロセッサ111、および、プロセッサ111によって実行可能な命令を含むメモリ112を備える。プロセッサ111は、サブサンプリングされたCb’Cr’成分を捕えるために線形ドメインにおける画素のRGB表現をサブサンプリングするように、および、好ましくは、Y’成分を捕えるためにAjusty方法を使用するように動作可能である。
一実施形態では、デバイス110は、処理されるべき画素を表すビットストリームを受信するように構成される入力部113も含む。このような場合、プロセッサ111は、入力部113からビットストリームを受信するように動作可能である。
一実施形態では、デバイス110はまた、プロセッサ111から受信されるようなY’Cb’Cr’ビットストリームを出力するように構成される出力部114を含む。
特定の実施形態では、プロセッサ111は、上述される動作を行うためにメモリ112に記憶された命令を実行するとき、動作可能である。そのため、プロセッサ111は、通常のソフトウェアによる実行を可能にするためにメモリ112に相互接続される。
よって、一実施形態では、図14においてコンバータで表される、ピクチャ内の画素を前処理するためのデバイス110は、プロセッサ111と、プロセッサ111によって実行可能な命令を含むメモリ112とを含む。プロセッサ111は、第1の色空間における線形色をサブサンプリングするように動作可能である。プロセッサ111はまた、第1の色空間におけるサブサンプリングされた線形色に第1のトランスファ関数を適用するように動作可能である。プロセッサ111はさらには、第1の色空間におけるサブサンプリングされた非線形色に第1の色変換を適用するように動作可能である。プロセッサ111は、第2の色空間における非線形輝度成分値を導出するようにさらに動作可能である。
図15は、プロセッサ210、関連付けられたメモリ220、および通信回路構成230を含むユーザ機器またはデバイス200の一例を示す概略ブロック図である。
この特定の例では、本明細書に説明されるステップ、関数、手順、モジュール、および/またはブロックの少なくともいくつかは、コンピュータプログラム240に実装され、このコンピュータプログラム240は、1つまたは複数のプロセッサ210を含む処理回路構成による実行のためにメモリ220にロードされる。プロセッサ210およびメモリ220は、通常のソフトウェアによる実行を可能にするために互いに相互接続される。通信回路構成230はまた、前処理されるべきピクチャを含む、ビデオデータの入力および/または出力を可能にするために、プロセッサ210および/またはメモリ220に相互接続される。
ユーザ機器200は、ビデオデータを受信しかつ処理することができる任意のデバイスまたは装置とすることができる。例えば、ユーザ機器200は、ラップトップ、スマートフォン、タブレット、セットトップボックスといった、固定型または携帯型のどちらのコンピュータとすることができる。
「プロセッサ」という用語は、特定の処理、決定、またはコンピューティングタスクを行うためのプログラムコードまたはコンピュータプログラム命令を実行可能である任意のシステムまたはデバイスとしての一般的な意味で解釈されるべきである。
よって、1つまたは複数のプロセッサを含む処理回路構成は、コンピュータプログラムを実行するとき、本明細書に説明されるものなどの明確に定義された処理タスクを行うように構成される。
処理回路構成は、上述されるステップ、関数、手順、および/またはブロックのみを実行する専用のものとする必要はなく、他のタスクも実行してよい。
一実施形態では、コンピュータプログラム240は、プロセッサ210によって実行されたとき、プロセッサ210に、サブサンプリングされたCb’Cr’成分を捕えるために線形ドメインにおける画素のRGB表現をサブサンプリングさせる命令を含み、ユーザ機器200は、Y’成分を捕えるためにAjusty方法を使用するようにさらに構成される。
よって、一実施形態では、コンピュータプログラム240は、プロセッサ210によって実行されたとき、プロセッサに、第1の色空間におけるサブサンプリングされた線形色を得るために第1の色空間における線形色をサブサンプリングさせる命令を含む。プロセッサ210にはまた、第1の色空間におけるサブサンプリングされた非線形色を得るために第1の色空間におけるサブサンプリングされた線形色に第1のトランスファ関数を適用させる。プロセッサ210にはさらに、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値を得るために、第1の色空間におけるサブサンプリングされた非線形色に第1の色変換を適用させる。プロセッサ210はさらには、画素の第2の色空間における非線形輝度成分値を導出させる。画素の色は、第2の色空間における、非線形輝度成分値、サブサンプリングされた第1の非線形クロマ成分値、およびサブサンプリングされた第2の非線形クロマ成分値によって表される。
一実施形態では、コンピュータプログラムは、プロセッサ210によって実行されたとき、プロセッサ210に、好ましくは、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値、および、第3の色空間における元の線形輝度成分値に基づいて画素に対して導出された、サブサンプリングされた第1の非線形クロマ成分値、サブサンプリングされた第2の非線形クロマ成分値、および第2の色空間における非線形輝度成分値を符号化させる命令をさらに含む。
提案された技術はまた、コンピュータプログラム240を含むキャリア250を提供する。キャリア250は、電子信号、光信号、電磁信号、磁気信号、電気信号、無線信号、マイクロ波信号、または、コンピュータ可読記憶媒体250のうちの1つである。
例として、ソフトウェアまたはコンピュータプログラム240は、通常は、コンピュータ可読媒体240、好ましくは、不揮発性コンピュータ可読記憶媒体250上に保持されるまたは記憶されるコンピュータプログラム製品として実現されてよい。コンピュータ可読媒体250は、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイディスク、ユニバーサルシリアルバス(USB)メモリ、ハードディスクドライブ(HDD)記憶デバイス、フラッシュメモリ、磁気テープ、または、任意の他の従来のメモリデバイスを含むがこれらに限定されない、1つまたは複数の取り外し可能なまたは取り外し不可能なメモリデバイスを含むことができる。よって、コンピュータプログラム240は、図15におけるデバイス200によって表される、コンピュータまたは同等の処理デバイスのオペレーティングメモリに、このプロセッサ210による実行のためにロードされてよい。
実施形態のさらなる態様は、ピクチャ内の画素の符号化バージョンを表す信号にも関する。符号化バージョンは、第2の色フォーマットにおけるサブサンプリングされた第1の非線形クロマ成分値の符号化バージョンと、第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値と、実施形態のいずれかに従って導出された、第2の色フォーマットにおける非線形輝度成分値の符号化バージョンとを含む。
一実施形態では、信号は、電子信号、光信号、電磁信号、磁気信号、電気信号、無線信号、およびマイクロ波信号のうちの1つである。
したがって、本明細書に提示されるフロー図または図表は、1つまたは複数のプロセッサによって行われるときの、コンピュータフロー図または図表と見なされてよい。対応するデバイスは、関数モジュールのグループとして規定されてよい。この場合、プロセッサによって行われる各ステップは関数モジュールに対応する。この場合、関数モジュールは、プロセッサ上で起動しているコンピュータプログラムとして実装される。故に、デバイスは、代替的には、関数モジュールのグループとして規定されてよく、この場合、関数モジュールは、少なくとも1つのプロセッサ上で起動しているコンピュータプログラムとして実装される。
よって、メモリに常駐するコンピュータプログラムは、プロセッサによって実行されたとき、本明細者に説明されるステップおよび/またはタスクの少なくとも一部を行うように構成される適切な関数モジュールとして組織化可能である。このような関数モジュールの一例は図16に示されている。
図16は、関数モジュールによる配置構成またはデバイス120の概略的ブロック図である。配置構成120は、サブサンプリングされたCb’Cr’成分を捕えるために線形ドメインにおける画素のRGB表現をサブサンプリングするための決定部またはサブサンプリング部121を含む。デバイス120は、Y’成分を捕えるためにAjusty方法を使用する画素プロセッサ122も含む。
デバイス120は、Y’Cb’Cr’を表すビットストリームを符号化するためのビデオエンコーダ123をさらに含む。デバイス120はコンバータ124も含んでよい。
一実施形態では、決定部またはサブサンプリング部121は、第1の色空間におけるサブサンプリングされた線形色を得るために第1の色空間における線形色をサブサンプリングするためのものである。画素プロセッサ122は、第1の色空間におけるサブサンプリングされた非線形色を得るために第1の色空間におけるサブサンプリングされた線形色に第1のトランスファ関数を適用するためのものである。コンバータ124は、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、および第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値のうちの少なくとも1つを得るために、第1の色空間におけるサブサンプリングされた非線形色に第1の色変換を適用するためのものである。任意選択のエンコーダ123はまた、第2の色空間における、サブサンプリングされた第1の非線形クロマ成分値および第2の非線形クロマ成分値、ならびに、非線形輝度成分値を符号化するためのものである。
さらなる態様は、ピクチャ120内の画素を前処理するためのデバイス120に関する。デバイス120は、第1の色空間におけるサブサンプリングされた線形色を得るために第1の色空間における線形色をサブサンプリングするための決定部121を含む。デバイス120は、第1の色空間におけるサブサンプリングされた非線形色を得るために第1の色空間におけるサブサンプリングされた線形色に第1のトランスファ関数を適用する、および第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値および第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値のうちの少なくとも1つを得るために、第1の色空間におけるサブサンプリングされた非線形色に第1の色変換を適用するための画素プロセッサ122も含む。デバイスは、画素の第2の色空間における非線形輝度成分値を導出するためのコンバータ124をさらに含む。画素の色は、第2の色空間における、非線形輝度成分値、サブサンプリングされた第1の非線形クロマ成分値、および、サブサンプリングされた第2の非線形クロマ成分値によって表される。
実施形態のさらに別の態様は、図14を参照すると、ピクチャ内の画素を符号化するためのデバイス110に関する。デバイス110は、プロセッサ111と、プロセッサ111によって実行可能な命令を含むメモリ112とを含む。プロセッサ111は、第1の色空間におけるサブサンプリングされた線形色を得るために第1の色空間における線形色をサブサンプリングするように動作可能である。プロセッサ111はまた、第1の色空間におけるサブサンプリングされた非線形色を得るために第1の色空間におけるサブサンプリングされた線形色に第1のトランスファ関数を適用するように動作可能である。プロセッサ111は、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値および第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値を得るために、第1の色空間におけるサブサンプリングされた非線形色に第1の色変換を適用するようにさらに動作可能である。プロセッサ111は、さらには、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値、および、第3の色空間における元の線形輝度成分値に基づいて、画素の第2の色空間における非線形輝度成分値を導出するように動作可能である。プロセッサ111はまた、非線形輝度成分値、サブサンプリングされた第1の非線形クロマ成分値、および、サブサンプリングされた第2の非線形クロマ成分値を符号化するように動作可能である。
実施形態の別のさらなる態様は、図16を参照すると、ピクチャ内の画素を符号化するためのデバイス120に関する。デバイス120は、第1の色空間におけるサブサンプリングされた線形色を得るために第1の色空間における線形色をサブサンプリングするための決定部121を含む。デバイス120は、第1の色空間におけるサブサンプリングされた非線形色を得るために第1の色空間におけるサブサンプリングされた線形色に第1のトランスファ関数を適用する、および第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値および第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値を得るために、第1の色空間におけるサブサンプリングされた非線形色に第1の色変換を適用するための画素プロセッサ122も含む。デバイス120は、第2の色空間におけるサブサンプリングされた第1の非線形クロマ成分値、第2の色空間におけるサブサンプリングされた第2の非線形クロマ成分値、および、第3の色空間における元の線形輝度成分値に基づいて、画素の第2の色空間における非線形輝度成分値を導出するためのコンバータ124をさらに含む。デバイス120はさらには、非線形輝度成分値、サブサンプリングされた第1の非線形クロマ成分値、および、サブサンプリングされた第2の非線形クロマ成分値を符号化するためのエンコーダ123を含む。
本実施形態はまた、実施形態による、画素を前処理するためのデバイス、または画素を符号化するためのデバイスを含むユーザ機器に関する。ユーザ機器は、好ましくは、ビデオデータを受信しかつ処理するように構成されるデバイスまたは装置である。ユーザ機器は、例えば、HDMIなどのインターフェース上でビデオデータを送付するように構成されるデバイスまたは装置とすることができる。
別の実施形態は、実施形態による、画素を前処理するためのデバイス、または画素を符号化するためのデバイスを含むユーザ機器に関する。この実施形態では、ユーザ機器は、コンピュータ、ラップトップ、スマートフォン、タブレット、およびセットトップボックスから成るグループから選択されるのが好ましい。
ネットワーク上での遠隔地へのサービスなどのリソースがもたらされる、ネットワークノードおよび/またはサーバなどのネットワークデバイスにおけるハードウェアおよび/またはソフトウェアなどのコンピューティングサービスを提供することがますます普及してきている。例として、これは、機能が、本明細書に説明されるように、1つまたは複数の別個の物理ノードもしくはサーバに分散または再配置可能であることを意味する。機能は、別個の物理ノードに、すなわち、いわゆるクラウドに位置付け可能である1つまたは複数の共同で作動する物理および/または仮想マシンに再配置または分散されてよい。これは時にクラウドコンピューティングとも呼ばれ、ネットワーク、サーバ、記憶域、アプリケーション、および、一般サービスまたはカスタマイズされたサービスなどの構成可能なコンピューティングリソースのプールへのユビキタスオンデマンドネットワークアクセスを可能にするモデルである。
図17は、機能が、一般的なケースにおける、異なるネットワークデバイス300、301、302の間でどのように分散または区分可能であるかの一例を示す概略図である。この例では、少なくとも2つの個別ではあるが相互接続されたネットワークデバイス300、301があり、これらは、ネットワークデバイス300、301の間で区分される、異なる機能、または同じ機能の一部を有することができる。このような分散実装形態の一部である追加のネットワークデバイス302があってよい。ネットワークデバイス300、301、302は、同じワイヤレス通信システムの一部であってよく、または、ネットワークデバイスの1つまたは複数は、ワイヤレス通信システムの外部に位置するいわゆるクラウドベースのネットワークデバイスであってよい。
図18は、1つまたは複数のクラウドベースのネットワークデバイス300と協働する、アクセスネットワーク1および/またはコアネットワーク2および/または運用支援システム(OSS)3を含む、ワイヤレス通信システムの一例を示す概略図である。図はまた、実施形態による、アクセスネットワーク1のネットワークノード4、およびユーザ機器5も示す。
付録A
本付録Aは、第2の色空間における非線形輝度成分値を導出するために実施形態に従って使用可能であるAjusty方法の説明を含む。
非常に非線形のトランスファ関数、4:2:0または4:2:2サブサンプリング、および非一定輝度順序の組み合わせは、飽和色における極度のアーティファクトを引き起こす。一例が付録Bに記載されており、ここで、同様の輝度の2つの色の間の変化は、非常に異なる輝度を有する再構成画像をもたらす可能性がある。
デジタルビデオ信号において、サンプル、すなわち画素のそれぞれの成分は、整数または浮動小数点値によって表される。ビデオをレンダリングするスクリーン、テレビ、またはモニタなどのディスプレイは、ビデオ信号のデジタル値に基づいて可視光を除外する。デジタル値Vを可視光Yに変える関数は、光電気トランスファ関数(EOTF)である。従来、EOTFは、ガンマ関数と呼ばれる指数関数として表現されており、この場合、ガンマ(γ)は指数値である。これは典型的には、2.4(他の値の可能性もある):Y=Vγである。
ガンマ関数を使用することは、低輝度信号にはうまくいくが、輝度が100ニト(cd/m2)を超えるとき、ガンマ関数は、人間の視覚系のコントラスト感度とうまく整合しない。したがって、より非線形であるトランスファ関数は例えば以下のように規定される。
このトランスファ関数は、0から1までの範囲を超えるその一次導関数の最大値がガンマ関数の最大値より大きいという意味でガンマ関数よりも非線形である。
クロマサブサンプリングは、典型的には、データ量を低減する最初のステップとして圧縮前に行われる。4:2:2において、クロマ信号は、垂直方向において解像度が半分に低減される。4:2:0において、クロマ信号は、垂直方向および水平方向両方において解像度が半分に低減される。これは、典型的には、良質の信号を捕えるようにあるフィルタリング演算によって行われるが、最近傍法を使用して行うこともできる。
4:2:0または4:2:2のビデオを表示するために、デコーダはクロマ信号のアップサンプリングを行い、これは、双線形フィルタまたはより長いフィルタを使用して行うことが可能である。
しかしながら、非常に非線形のトランスファ関数、4:2:0または4:2:2サブサンプリング、および非一定輝度順序の組み合わせは、特に、飽和色、すなわち、色域の縁に近い色について、ビデオデータに対して極度のアーティファクトを引き起こす。
この問題に対処するいくつかのやり方がある。1つのやり方は、4:2:0または4:2:2のサブサンプリングを使用せずに代わりに4:4:4のサブサンプリングを使用することである。しかしながら、それは高価となり、なぜなら、4:2:0は圧縮前のビット数を半減させ、4:2:2はビット数を3分の2に低減するからである。別のやり方は、非常に非線形のトランスファ関数を使用しないことである。しかしながら、これは、暗い領域にバンディングを有することなしには非常に高いピーク明るさのコンテンツを表現することが難しいことを意味する。第3のやり方は、一定の輝度を使用する、すなわち、CIE1931 XYZ色空間に変換後にトランスファ関数を適用することである。しかしながら、このような解決策は、放送産業内で一般的な慣行に合わず、いくつかのシナリオでは、実現するのが困難であり、かつ費用がかかる恐れがある。
典型的な圧縮の連鎖について後述されている。0から10,000までの範囲の入来する線形光画素(R,G,B)は、初めにトランスファ関数に与えられ、それによって、0〜1の新しい画素(R’,G’,B’)がもたらされる。この後、画素は色変換され、これによってY’、Cb’、Cr’がもたらされる。次いで、Cb’およびCr’成分は4:2:0にサブサンプリングされる。
展開後、4:2:0のシーケンスは、再び4:4:4にアップサンプリングされ、逆色空間転換によって(R’,G’,B’)がもたらされ、最終的に、逆トランスファ関数によってモニタ上で出力できる線形光画素(R,G,B)に戻される。
Cb’およびCr’成分が補間されるのに対し、Y’成分は補間されないことから問題が生じる。故に、画素におけるY’成分の急激なシフトがあり得るが、Cb’およびCr’成分は補間されないためそうならない。いくつかの色、とりわけ飽和色について、完全に誤った強度の画素が生じ、これは、明確に可視である。
これらの場合では、補間された色から生成されたタプル(Y’Cb’Cr’)が元のものとそれほど異ならないようにY’成分を変更することが提案される。理想的には、その差異は、はっきりしないくらい小さいものとする。
基本的に、Cb’およびCr’成分が偽であるという認識が生じることで、Y’成分も偽とし、それによって(Y’Cb’Cr’)は真の色により近くなる。換言すれば、Y’に誤差を導入することによって、Cb’およびCr’に既に存在している誤差を補償して、実際の画素により近づけることができる。例えば、初めにクロマ(4:2:0)をサブサンプリング後(4:4:4へ)アップサンプリングすることから捕えるCb’を比較することによって、Cb’−CbおよびCr−Crを閾値と比較することによって、Cb’およびCr’成分が偽であると決定することができる。
第1の態様によると、Ajusty方法が提供される。該方法は、エンコーダで、またはエンコーダに対する前処理で行われることが可能である。方法において、Cb’成分および/またはCr’成分が誤差を含むと決定されるとき、補正されたY’成分は、Cb’成分および/またはCr’成分における誤差を補償するために導出される。
第2の態様によると、プリプロセッサまたはエンコーダなどのユニットが提供される。ユニットは、Cb’および/またはCr’成分が誤差を含むかを決定するように構成され、Cb’および/またはCr’成分が誤差を含むと決定されたとき、該ユニットは、Cb’およびCr’成分における誤差を補償するために、補正されたY’成分を導出するように構成される。
補正されたY’成分は後述される異なる実施形態に従って導出可能である。故に、補正されたY’成分、Cb’およびCr’は次いで圧縮されることで、画像またはビデオがより高い品質で感知されることになる。
Y’成分を変更する、すなわち、補正されたY’成分を導出することによって、もたらされる輝度値を補償できる。目は、クロミナンス変化よりも輝度変化に対してはるかにずっと敏感であるため、第1のルールは、輝度が元の値からそれほど多くずれていないことを常に確認しなければならない。
上述されるように、非線形輝度Y’は、画素の線形輝度Yがその補正値により近くなるように、圧縮前に調節される。これはさらに後述される。
例えば0〜96画素のスクリーンの左部分が値(2142,0,138)を有し、例えば97〜1920画素のスクリーンの右部分が値(2142,4,138)を有するピクチャを仮定する。従来の処理の連鎖によって、表A1の結果がもたらされることになる。
ここで、Y値は線形輝度である。すなわち、元のY値は、元の線形光RGB(2142,4,138)を捕え、かつこれをXYZに転換するときに捕えられる値である。例えば、RGBがBT.2020色空間にある場合、以下を使用して転換できる。
X=0.636958×R+0.144617×G+0.168881×B
Y=0.262700×R+0.677998×G+0.059302×B
Z=0.000000×R+0.028073×G+1.060985×B
(式4)
このY成分は、目に最も敏感な輝度である。該Y成分は、R、GおよびBに非線形的に依存する、上記のY’成分と混同しないようにすべきである。
表A1においてわかるように、Y値は、RGB4:2:0のサブサンプリングおよびアップサンプリングを使用するとき、画素97に対して大きく誤っている。この例では、圧縮は行われておらず、10ビットに対する量子化のみが行われ、しかも、Y値は85%の相対誤差を有する。目で見ることができる差異がどれほど大きいかを予測するBartenのモデルを使用して、この誤差が195のBartenステップである、または、ただ目につくこととなるであろうものより195倍大きいことがわかる。
表A2を見ると、何が起こっているかがわかる。
Cb’成分を見る場合、この成分は値607を有し、これは、不連続点、すなわち画素94の前の650と、不連続点の後の575との間のほぼ中間であるが、正しい値は575である。その誤差は画素のクロミナンスだけでなく輝度にも影響を及ぼし、画素を大きくし過ぎることになるという問題がある。本発明者らの着想は、これを、画素のY’成分を変更することによって補償することである。実施形態によると、Y成分を、画素に対して422とせずに、代わりに値363を選択する。表A3では、その結果を示す。
ここで、新しい色がその正しい値にさらに一層類似していることがわかる。緑成分は誤った方向に向かっているが、1.72cd/m2のみである。しかしながら、同時に、赤成分はその正しい値のほぼ半分であって、動きが1849cd/m2あり、青成分は同様に変化している。表A4では、輝度に何が起こるかを示す。
表A4に見られるように、輝度Yにおいてよりはるかに小さい誤差が生じる。相対誤差は0.2465%であり、これは、Bartenステップの0.5602と同等である、すなわち、見ることは不可能である。
誤差は、ここではむしろクロミナンスにあるが、人間の視覚系が輝度ほどクロミナンスにおいては誤差に敏感ではないことを考えると、これは大した問題ではない。さらに、サブサンプリングが行われるため、いずれにしてもクロミナンスに誤差が生じることになる。また、Y’成分を変更して、輝度における誤差とクロミナンスにおける誤差との間で良好なトレードオフを生じさせることが可能である。
さらに、クロミナンスの変化ははっきりしない場合さえあり、その差異は、緑成分が3.9750cd/m2ではなく0.7008cd/m2だけであるが、これは、ほぼ1000倍大きい2145であるため、たいがいは、いずれにしても赤成分によって小さくされる。この変化を見るための別のやり方では、緑成分と赤成分との間の割合が、正しい3.9750/2142.6617=0.001855ではなく、0.7008/2145.11=0.000327となる。色相のこのわずかなシフトを人間の目で見ることが可能であるかは明らかでない。故に、ただ目につくものより200倍大きい輝度の誤差を、見ることができないかもしれない程小さいクロミナンスの誤差と交換されている。
良い点としては、変更されたY’値のみが個々の画素に影響することである。故に、Y’成分を変更することによって他の画素が犠牲になることはない。
一実施形態では、値Y’は、Cb’およびCr’の特有の値に対して最適化されない。むしろ、Y’値は、Cb’およびCr’のいくつかの異なる値に対する、または、Cb’およびCr’値の範囲に対する輝度誤差を最小化するように選択される。これは、クロマアップサンプリング方法が未知であるシナリオで行われる可能性がある。
1つの変形は、一定の数のクロマアップサンプリング方法を行い、次いで、種々なアップサンプリング方法のための平均2乗誤差を最小化するY’値を選択することである。別のバージョンでは、Y’値は、最悪のケース、すなわち最大誤差が最小化されるように選択される。
別の変形は、Cb’およびCr’の2つ以上の近傍値を使用し、かつ、それらを直接的に使用して、可能なCb’およびCr’値の範囲を算出することである。
Y’の最良値を見つけるためのいくつかのやり方があり、これらのうちのいくつかを行うようにする。1つのやり方が図19に示されている。
最初に最適化対象の値YOを見つける必要がある。元の画素RO、GO、BOは、上記のようにRGBからXYZに変換される。これによって、XO、YO、ZOが生じ、この中ではYOのみに関心がある。実際、XOおよびZOを算出する必要はない。このYOは線形光における元の輝度であり、これは目に敏感なものである。テストケースでは、YOは573.5991に等しい(表A1を参照)。
第2に、Cb’およびCr’値と共に既存のY’値を採り入れる。上のケースでは(422、607、812)を与えることになる(表2を参照)。ここで、Y’Cb’Cr’からR’G’B’への色変換を行うようにする。これは以下を使用して行われる。
R=Y’+1.47460×Cr’
G=Y’−0.16455×Cb’−0.57135×Cr’
B=Y’+1.88140×Cb’ (式A2)
次に、トランスファ関数を呼び出す。この場合、PQ−EOTFを使用し、これは、例えば、以下のMatlabコードを使用して実装できる。
その結果は、線形光における色(R,G,B)である。ここで、これを上記のようにXYZに転換する、または、実際には、Yを算出することだけが必要である。このYは画素の線形輝度であり、YOにできるだけ近づけさせたいのはこの輝度である。Yは1066.4311から始まる(表A1を参照)。
ここで、YとYOとを比較する。YがYOより大きい場合、Y’値を422からより小さいものに縮小する。例えば、1つのステップを行って421を試みることができる。次いで、算出全体が再び行われて、新しいY値を生成する。これは再びYOと比較され、これが依然大きすぎる場合、Y’をさらに小さくする。最終的に、363に到達し、結果としてのY値が生じ、すなわち、572.1852がここでYOより小さくなる、すなわち、573.5991になる。プロセスはここで停止する。
上の実施形態では、422−363=59を繰り返し行って、最良値に到達する。これには費用がかかる場合がある。
したがって、一実施形態として、最良のY’値を見つけるために二分探索を行う。任意選択で、まず、最大Y’値、例えば1023を試みる。任意選択で、最小Y’値、例えば0を試みる。次いで、中間の値、例えば512を試みる。Y’=512から生じるY値がYOより大きい場合、間隔[0,512]で探索するものとする。Y値がYOより小さい場合、代わりに間隔[512,1023]を探索するものとする。次に進んで、選択された間隔の中ほどで新しい値を算出し、かつ、その間隔のみが[363,363]または[363,364]などの単一数を含有するまで進む。これは、log2(N)ステップだけを取ることを保証し、この場合、Nは可能な値の数であり、この場合1024である。故に、log2(1024)=10のステップで十分である。
最良値を算出する別のやり方は、最適化問題として図8を参照して、誤差E=(Y−YO)2をY’に対して最小化することである。これは、Y’に対するEの勾配を算出すること、すなわち、dE/dY’による、勾配降下によって行うことができ、勾配の反対方向に少量Y’を更新すること、つまり、式中αは小定数として、Y’n+1=Y’n−α×dE/dY’が可能である。
勾配降下は低速になり得るため、より迅速なやり方として、二階微分値d2E/dY’2を算出するまたは概算する二次最適化アルゴリズムを使用することが可能である。ガウス−ニュートンはかかるアルゴリズムの一例である。
別の実施形態では、Y’を算出するために以下のプロセスが適用される:
−X、YO、およびZはXYZ/RGB転換によって転換されて、新しい値R1、G1およびB1がもたらされる
−R1、G1、およびB1は逆トランスファ関数によって転換されて、R1’、G1’、およびB1’がもたらされる
−R1’、G1’、およびB1’は逆色変換によって転換されてY’がもたらされる
一実施形態では、ある画像またはピクチャにおける全ての画素のY’値は補正される。代替的な実施形態では、可視の輝度誤差を有する危険性がある画素のみが補正される。これは、色域の縁に近い画素を含むことができるが、色域三角形の中間により近い画素を除くことができる。
図19における最下行を見ると、処理の第1のステップは以下になる。
R’=Y’+1.47460×Cr’
G’=Y’−0.16455×Cb’−0.57135×Cr’
B’=Y’+1.88140×Cb’ (式A2)
しかしながら、Cr’およびCb’は固定され、補間されて、送られないため、Y’の右側の全てを定数に置き換えることができる。
R’=Y’+c1
G’=Y’+c2
B’=Y’+c3
次のステップとして、色成分のトランスファ関数を行う:
R=TF(R’)
G=TF(G’)
B=TF(B’)
これらは次いで以下になる
R=TF(Y’+c1)
G=TF(Y’+c2)
B=TF(Y’+c3)
処理の最後のステップはRGBからXYZまで行う。これは以下を使用して行われる。
X=0.636958×R+0.144617×G+0.168881×B
Y=0.262700×R+0.677998×G+0.059302×B
Z=0.000000×R+0.028073×G+1.060985×B
(式4)
このうち、Y成分のみに関心があるため、以下を使用する。
Y=0.262700×R+0.677998×G+0.059302×B
先の式をこれに挿入すると、以下になる。
Y=0.262700×TF(Y’+c1)+0.677998×TF(Y’+c2)+0.059302×TF(Y’+c3)、または短くすると、
Y=f(Y’)になる。
この式の出力された値Yを元のYOに適合させることが望まれる。非線形の形態では、Yは3つの異なる場所におけるY’に依存するため、Y’=f−1(Y)を捕えることができるように、関数を逆関数にする容易なやり方があるようには思われない。
しかしながら、非線形のTF(x)〜kx+mを線形にすることが可能である。3つの異なる場所でこれを行うと、
Y〜k1×Y’+m1+k2×Y’+m2+k3×Y’+m3になり、これは、
Y〜(k1+k2+k3)×Y’+(m1+m2+m3)と同等である。
これは、以下のような逆関数にすることができる。
Y’〜Y’k=(YO−(m1+m2+m3))/(k1+k2+k3)
よって、Y’kは前よりもYOに近い値Ykを生じさせる可能性がある。関数はこの新しい点Y’kで再び線形にすることができ、これによって新しい値、Y’k+1などが生じる。
これらの反復技法全てについて、YO値に最も近いY値を生成する絶対的に最良の10ビット値を見つける必要はないことは留意されるべきである。反復法を数回または1回でも使用するだけで十分な場合がある。1回の反復から生じる補正されたY値は、全く補正されていないものよりもはるかに良好なものになる可能性が最も高くなる。
いくつかの線形化は前もって行われてもよい。上で指摘されるように、最悪の問題は、色域の縁上で生じる。故に、赤色原色を緑色原色に連結する線に対する1つの線形化、赤色原色を青色原色に連結する線に対する1つの線形化、および、緑色原色を青色原色に連結する線に対する1つの線形化を有することが可能である。別のやり方として、赤色原色に近い線形化、緑色原色に近い別の線形化、および青色原色に近い第3の線形化を使用させるようにすることができる。さらにまた、図20に示されるように、色域の線に沿っていくつかの線形化を有することができる。
よって、種々な領域において種々な線形化があるようにすることができる。色が実線による円の中にある場合、緑色原色に近くなり、1つの線形化を使用できる。赤色原色にさらに沿ってそれに向かって、すなわち破線ボックス内の場合、第2の線形化を使用できる。色域の縁、および、おおむね、赤色原色と緑色原色との中間、すなわち点線ボックス内部の場合、第3の線形化が使用可能である。赤色原色により一層近い、すなわち、実線によるボックス内部の場合、第4の線形化が使用可能である。点線の円内部にある、すなわち、赤色原色に近い場合、第4の線形化が使用可能である。三角形における他の2つの線の同じ仕切りも使用可能である。最終的に、三角形内部であるがボックスまたは円内ではない領域は、1つまたは複数の領域に区分されることが可能であり、各領域は異なる線形化を有する。
別のやり方は、ルックアップテーブル(LUT)を作成することである。上の公式化からわかるように、Cb’、Cr’、および望まれるY’値を有する場合、上記の反復技法のいずれかを使用して最良のY’を見つけることができる。故に、Cb’、Cr’、およびYの全ての可能な組み合わせについてルックアップテーブルを作成できる。例えば、Cb’およびCr’が10ビットに量子化されると仮定する。さらに、Yの10ビットへの量子化も仮定する。すると、ルックアップテーブルにおいて210×210×210の異なる値が必要とされる。それは、230の値と同等である。各値が2バイトである場合、これは、231バイト、すなわち2Gbを意味する。これは大きい値であるが、恐らくは、特に将来的に実行不可能ではない。
Yを量子化するときに慎重になる必要がある場合がある。Yが完全に線形であるためこれをただ量子化することは非効率的である場合がある。その代わりに、入力される変数として、Cb’、Cr’、およびYnonlinearを使用して、Ynonlinear=TF(Y)を作成し、かつ代わりにYのためのLUTを作成する方がより良い場合がある。Cb’、Cr’、Y’として、初めに、Ynonlinear=TF(Y)を算出後、Y’=LUT(Cb’,Cr’,Ynonlinear)を見つけるようにする。
また、より小さいLUTを使用することが可能である。例えば、Y(またはYnonlinear)、Cb’、およびCr’を、例えば6ビットに量子化可能とすることができる。次いで、テーブルサイズは、2(6+6+6)=218の値、または512kバイトに等しい219バイトとなる。これは現在のハードウェアでも合理的なサイズである。
真の値に最も近い量子化された値Cb’、Cr’、およびYを捕えて、それらを補間可能とすることができる。例として、Cb’の実際の値が6ビットに量子化されたCb’より大きいが、6ビット+1に量子化されたCb’より小さい場合、以下は良好な近似となる場合がある。
Y’=(LUT(Cb’6bit,Cr’6bit,Y6bit)+(LUT(Cb’6bit+1,Cr’6bit,Y6bit))/2
2つ以上の値の間での補間も可能である。
一実施形態では、ルックアップテーブルはY’の値を導出するために使用される。1つのバージョンでは、ルックアップテーブルは、YO、Cb’、およびCr’の全ての可能な値を含有する。これによって、10ビットのビデオに対して、1024×1024×1024のエントリが生じることになり、いくつかの応用例では、このサイズは受け入れ可能である。別のバージョンでは、ルックアップテーブル(LUT)は、例えば、YO、Cb’、およびCr’のうちの1つまたは複数を例えば8ビットに丸めることによって簡潔にされる。簡潔にされたルックアップテーブルが使用される場合、アルゴリズムは、LUTから検索されたY’から最良のY’を見つける改良ステップによって拡張可能である。あるバージョンでは、Cb’値および/またはCr’値によってY’がYOとあまりにも異なってくる可能性があるとき、すなわち、最初に算出されたY’によってYOとはあまりにも異なっている線形Y値が与えられるときだけにLUTが使用され、それによって、LUTのサイズは、Cb’およびCr’の多くの値がいずれの問題も引き起こさないため、実質的に低減可能である。
一実施形態では、YO、Cb’、およびCr’の関数、例えば、一次結合、多項式関数、指数関数、対数関数、三角関数などは、Y’を導出するために使用される。該関数は、YO、Cb’、およびCr’のいずれの値に対しても、YとYOとの間の差異がある特定の閾値を下回る、または、導出されたY’と最適なY’との間の差異がある特定の閾値を下回るように規定できる。
一実施形態では、YO、Cb’、およびCr’のいくつかの異なる関数はY’を導出するために規定される。どの関数を使用するかについての選択は、YO、Cb’、およびCr’の値に基づく。
本明細書に説明される各実施形態について、Y’を導出するための方法が、Y’とYOとの間の差異が開始するためのある特定の閾値を上回る場合にだけ呼び出される場合があり得る。
付録B
この付録Bでは、4:2:0のサブサンプリングによる色のアーティファクトを究明する。最初に、照合が試みられるが、最悪の値は再生できず、これは、既に固定されているHDRToolsにおけるバグによる可能性がある。次に、4:2:0のサブサンプリングから生じる、輝度の最悪の相対誤差についての探索が行われる。4000ニトに限定されるスクリーン上で表示される場合でも、86%の相対誤差(195のBartenステップ)が生じ得ることがわかる。データがRec709に制限され、かつBT.2020コンテナにおいて保有されている場合でも、30のBartenステップの誤差が生じる可能性がある。BT.2020コンテナにおけるP3コンテンツについて、40のBartenステップの誤差が生じ得る。
1.概論
圧縮が発生しない場合でも、4:2:0のサブサンプリングが使用されるとき、色の小さな変更が驚くほど大きなアーティファクトを導入する可能性があることが記されている。
1.1 照合不一致
この究明は、m35255[1]の照合で開始し、以下の表B1に転写される、スライド13上の結果を再現することを試みる。その結果はテスト画像から生じ、ここで画素95に至るまでの画像の左部分は色(3000,0,100)を有し、画素96に至るまでの画像の右部分および前方は色(3000,4,100)を有する。
アンカー(n14548、International Organization for Standardization、ISO/IEC JTC1/SC29/WG11、Coding of moving pictures and audio、MPEG2014/N14548、2014年7月、札幌、日本のLuthraらの「Test sequences and anchor generation for HDR and Wide Gamut Content Distribution」[2])についてと同じ手順を使用した照合時に、表B2に示される結果が得られる。ダウンサンプリングについて、[2]のセクション2.4.7に記載されるフィルタが採り入れられ(2および3タップ)、アップサンプリングについて、[2]のセクション2.4.8に記載されるフィルタが採り入れられる(フィルタを4タップ)。
見られるように、この適合は実に不十分であり、画素番号94および98のみが適合するのに対し、画素番号95〜97、または99については適合が見出されない。しかしながら、この不連続点を代わりに画素97に移動させることで、表B3に示されるように、はるかに良好に適合する。
表B3において、画素番号96のみが適合しない。これはまた、最も奇妙な値(10000,1.57,402.25)の画素であり、正しい解答は(3000,0,100)または(3000,4,100)であり、これは不連続点を入れた場所に左右される。
照合における不適合は、HDRtoolsにおいて既に補正されている誤差によるものであるかのように思われる。改訂492に戻る場合、m35255[1]と同じ値がもたらされる可能性がある。HDRtoolsのより新しいバージョン(改訂573)が正しいことを確認するために、Matlabにおける処理の連鎖が独立して実施されており、表B3と同じ結果が得られる。不連続点を適合のために移動しなければならなかった理由は、現在のバージョンに固定されている改訂492における間違ったフィルタリングによる恐れがある。
1.2 丸めの問題点
Matlab照合を実施するとき、HDRtoolsにおけるEXRへの浮動の転換は丸めが欠如している。仮数の23ビットを10ビットへ丸める代わりに、単に右にシフトさせて、基本的に丸め()をフロア()に置き換える。これは最終結果に影響を及ぼす。例として、3008.0がはるかに近い値であっても、3007.9の浮動は3006.0に転換されることになる。適合させるために、Matlabコードによって、HDRtoolsの現在のバージョンにおけるフロア()タイプの転換をエミュレートする(https://wg11.sc29.org/svn/repos/Explorations/XYZ/HDRTools/branches/0.9−dev[3]の改訂587)。
1.3 色の外れ値
画素96がもはや極端な外れ値でない場合でも、画素97は依然、(3000,4,100)ではなく正しい(5860,2.58,199)からは程遠い。これに対して、4:2:0のサブサンプリングが生成するのはどれほど悪い外れ値の可能性があるか、かつこれはどこで発生するのかに関する疑問点が生じる。この疑問点に解答するために、最初に「悪い」が何を意味するのかを規定する必要がある。人間の視覚系はクロミナンスより輝度の変化により敏感であるため、輝度に集中させた。故に、入力されたEXR画像および出力されたEXR画像両方の線形光両方をXYZに変換させ、かつ、Yの差異を形成した。相対誤差を捕えるために、次いで、元の成分のY成分で除算した。次いで、画素97に対するこの相対誤差を、正にm35255[1]で行われたように、左部分が1つの色であり、右部分が同じ色であり、加えて、小さいデルタが長さ4であるタイプの全ての可能な画像にわたって最大化するように小プログラムを書き込んだ。
このプログラムを起動することによって、表B4に示されるように、左部分における色(2142,0,138)および右部分における色(2142,4,138)を有することで、最大の可視誤差が生じるという解答が得られた。「最悪」の誤差を探す最適化ソフトウェアは最大値を見つけることは保証していないため、色域におけるさらに悪い位置が存在する場合がある。
2142より高い赤成分を有することはより大きい相対誤差も生成することになることは留意されるべきである。しかしながら、4000を上回るRGB値はモニタによって4000にクリッピングされると仮定したため、実際の画面上の差異はより高い値が使用されたとしたら減少し始めることになると考えられる。
表B4に見られるように、RGB4:4:4の相対誤差は0.0304%である。これを全体的に見るために、コントラスト感度に対するBarten曲線を示す図21に見られるように、これとBarten曲線とを比較した。曲線より下のコントラストははっきりしない。表B5は曲線を図21にプロットするために使用される値を示す。
図21に見られるように、相対誤差の許容範囲は輝度が増すにつれ減少する。100ニトで、0.44%の誤差がただ目につくことになる可能性があるのに対し、1000ニトで、0.40%の誤差がただ目につくことになる可能性がある。これらのちょうど間に455ニトあるため、0.44%のより高い値が使用される。これによって0.069のBartenステップが示され、これははっきりしないことを意味する。
一方、4:2:0のサブサンプリングについて、相対誤差は85.92%である。これは、195を超えるBartenステップと同等であるため、明確に可視になるはずである。したがって、4:2:0のサブサンプリングが、アンカー生成時の場合のように、少なくとも、非一定輝度および非常に非線形のトランスファ関数と共に、明確に可視のアーティファクトをもたらす可能性があると結論付けることは妥当であると思われる。
緑色がゼロであり、色(2142,0,138)が赤色原色と緑色原色との間の線上にあるため、最悪の誤差は正に色域の境界上にあることに留意されたい。これは、m35255[1]において報告されたことと一致しており、また、これによって、色域の縁上の色は問題があるとして指摘されている。
1.4 入力が709のデータであるとき
表B1に提示されるデータは、BT.2020原色についてであった。入力データがRec709原色によるものであるがコンテナがBT.2020である場合、色域境界線に到達することは不可能となる。これは、図22に見られるように、Rec709色域三角形が色域境界線に触れずにBT.2020三角形内部にあることによる。したがって、相対誤差がより小さくなると仮定することは妥当である。
BT.2020の転換後に最大の相対誤差を生じさせることになるRec709色を見つけるための最適化ソフトウェアを起動させる。結果として生じる2つの色は、スクリーンの左部分が(0,0,50)で右部分が(2,3,49)である。これは表B6に提示されている。
ここでは、10ニトでBartenステップを使用しており、これは0.54%に等しい。次いで、RGB4:4:4について、1.2305のBartenステップにおいてただ目につく誤差が生じるのに対し、RGB4:2:0における誤差は33のBartenステップに等しく、これは明確に可視になるはずである。また、Rec709データで始めることは色がBT.2020の色域の縁の部分全てに到達するのを妨げるため、誤差はより小さい(195のBartenステップに対して33のBartenステップ)ことが妥当である。
最悪の誤差が青色原色近くで利用可能であることが最適化による結果でどのように見つけられるのかについても注目されたい。これは、可能性として、図22に見られるように、青のREC709原色がBT.2020の色域の縁に最も近いことによると思われる。
1.5 入力がP3データであるとき
BT.2020コンテナにおいて含有されるP3ソースデータについて同じテストが実行可能である。そして、最悪の色は、表B7に示されるように、(2.48,3.32,4.63)および(3.29,0,6.71)である。
誤差がRec709とBT.2020との間のどこかにあり、これがまたそのケースであると仮定し、ここで、40.38のBartenステップと同等の誤差が生じる。Barten値が変化するため、ループにおいて最悪の値を探索するときにこの誤差を含むことが重要であることは留意されたい。0.85%に等しい、1cd/m2のBarten値が使用されている。
1.6 おわりに
この付録では、4:2:0のサブサンプリングによる輝度の誤差が究明されている。m35255[1]からの最悪の外れ値の適合は可能ではないが、一般データについてほぼ200のBartenステップに到達する最悪のケースの誤差は依然甚大である。ソースデータがRec709に拘束され、かつBT.2020コンテナに入れられる場合でも、誤差は依然甚大で30を上回るBartenステップがあり、BT.2020コンテナにおけるP3データについては、40を上回るBartenステップがある。
上述される実施形態は、本発明の数個の説明的な例として理解されるべきである。本発明の範囲から逸脱することなく、該実施形態に対するさまざまな修正、組み合わせ、および変更が可能であることは、当業者には理解されるであろう。特に、種々な実施形態における種々な部分的な解決策は、技術的に可能である場合、他の構成で組み合わせ可能である。しかしながら、本発明の範囲は添付の特許請求の範囲によって規定される。
引用文献
[1]International Organization for Standardization, ISO/IEC JTC1/SC29/WG11, Coding of moving pictures and audio, MPEG2013/M35255, October 2014, Strasbourg, France, Francois et al., About using a BT.2020 container for BT.709 content
[2]International Organization for Standardization, ISO/IEC JTC1/SC29/WG11, Coding of moving pictures and audio, MPEG2014/N14548, July 2014, Sapporo, Japan, Luthra et al., Test sequences and anchor generation for HDR and Wide Gamut Content Distribution
[3]https://wg11.sc29.org/svn/repos/Explorations/XYZ/HDRTools/branches/0.9-dev
[4]International Organization for Standardization, ISO/IEC JTC1/SC29/WG11, Coding of moving pictures and audio, MPEG2014/N15083, February 2015, Geneva, Switzerland, Luthra et al., Call for Evidence (CfE) for HDR and WCG Video Coding