色調補正「色相・彩度・明度」の彩度の計算につきまして | CLIP STUDIO PAINTの要望・不具合ボード | CLIP STUDIO
よくある質問
教えて!Q&A
要望・不具合


CLIP STUDIO PAINTの要望・不具合ボード

更新日:2019/08/28 22:24:16
反対数:0
賛成数:1
返信数:5
閲覧数:3695
ID:101052
from kirinos さん
2019/08/24 20:52:12
 
その他

色調補正「色相・彩度・明度」の彩度の計算につきまして

  いつもお世話になっております。

・「CLIP STUDIO PAINTの色調補正で彩度を変更すると何か変な色になる」
・「Photoshopと色が違う」
等を耳にしたため、実際に計算してみたところ
CLIP STUDIO PAINTの色調補正「色相・彩度・明度」の彩度の計算が自分の意図したものと異なる結果になるため、
CLIP STUDIO PAINTの仕様なのかそれとも不具合なのか判別できないので質問させていただきます。

------------------------------------------------------------
■バージョン:1.9.3
※Windowsは、[ヘルプ]メニュー → [バージョン情報]で確認できます。
※MacOSXは、[CLIP STUDIO PAINT]メニュー → [バージョン情報]で確認できます。
※iPadは、[CLIP STUDIO PAINT]アイコン → [バージョン情報]で確認できます。

■グレード
DEBUT(   ) PRO(   ) EX( 〇 )

■OS
Windows 7 (   ) Windows 8(   ) Windows 8.1(   )
Windows 10( 〇 ) MacOS X 10.10(   ) MacOS X 10.11(   )
macOS 10.12(   ) macOS 10.13(   ) macOS 10.14(   )
iOS 11(   ) iOS 12(   ) その他(   )
------------------------------------------------------------
賛成数:1   反対数:0   
from
スレ主
kirinos
さん
2019/08/24 20:53:17
例1:

・R,G,Bの各値が [R=255, G=0, B=0]であるものに対して、色調補正「色相(H)=0°・彩度(S)=-50%・明度(V)=0%」を適用したいとします。

 このままでは計算しにくいため、かつ今回は彩度が純色のマイナス%だけの変更なのでRGB色空間をHSL色空間に変換します。
 RGB色空間の [R=255, G=0, B=0] は HSL色空間では [H=0°, S=100%, L=50%] になります。
(0°<= H <= 360°、0% <= S <= 100%、0% <= L <= 100%とする)

   ※備考:RGB色空間の [R=255, G=0, B=0] は HSV色空間では [H=0°, S=100%, V=100%]です。

 つまり、HSL色空間 [H=0°, S=100%, L=50%] に対して色調補正「色相(H)=0°・彩度(S)=-50%・明度(V)=0%」を適用することになるので、
 元のS値をS1=100%、変動するS値をS'=-50%、変更後のS値をS2とおくと、
 S'<0 であるため、
  S2 = S1 * (100% + S') = 100% * (100% - 50%))
  S2 = 100% * 50%
  S2 = 50%  (条件1:S<=0 であれば S=0 とする。条件2: S=>100 であれば S=100 とする)
 ゆえに計算結果は、[H=0°, S=50%, L=50%] となります。

 この計算で得られた結果をRGB色空間に変換するとおよそ、 [H=0°, S=50%, L=50%] ≒ [R=192, G=64, B=64]という数値が得られます。
 (HSV色空間に変換するとおよそ、[R=192, G=64, B=64] ≒ [H=0°, S=67%, V=75%]になります)
 Photoshop、Paint Shop Pro、After Effects、VEGAS Pro等、多くのグラフィック映像系ソフトでは
 小数点以下の処理で多少の誤差は生じるものの、この計算が成立します。


 しかしながら、CLIP STUDIO PAINTでは
 R,G,Bの各値が [R=255, G=0, B=0]に、色調補正「色相(H)=0°・彩度(S)=-50%・明度(V)=0%」を適用すると、
 R,G,Bの各値が [R=192, G=96, B=96]となり、これをHSL色空間に変換するとおよそ [H=0°, S=43%, L=56%]であるため、
 意図した計算結果、[H=0°, S=50%, L=50%]とは全く異なる結果になってしまいます。
 (このときのHSV色空間は、[R=192, G=96, B=96] ≒ [H=0°, S=50%, V=75%]です)

from
スレ主
kirinos
さん
2019/08/24 20:53:45
例2:

・R,G,Bの各値が [R1=255, G1=123, B1=0]であるものに対して、色調補正「色相(H)=0°・彩度(S)=-50%・明度(V)=0%」を適用したいとします。
 (例1と同様の例ですが今回はRGB色空間で計算します)

 まず、彩度が0%(色調補正の彩度(S)=-100%)であるときのR,G,Bの各値がどの値に収束するのかを求め、そのときのR,G,B値をRc,Gc,Bcとします。
 R,G,Bの中で最も最大のものをMax(RGB)、R,G,Bの中で最も最小のものをMin(RGB)、彩度が0%のときに収束する値をcntと定義すると、
 彩度0%では、cnt =  ( Max(RGB) + Min(RGB) ) ÷ 2、に収束することが成り立ちます。

 R,G,Bの中で最も最大のものはR1であるため、Max(RGB) = R1 = 255
 R,G,Bの中で最も最小のものはB1であるため、Min(RGB) = B1 = 0
 よって、収束値 cnt = (255 + 0) ÷ 2 = 127.5
 Rc,Gc,Bcの各値は整数値をとるため、小数点以下を四捨五入して、
 Rc = Gc = Bc ≒ 128
 [Rc=128,Gc=128,Bc=128]が彩度0%のおよその値になります。

 つぎに、彩度が-50%変化する場合を求めます。
 変化する彩度をS'、変化後のR,G,Bの各値をR2,G2,B2とします。
 先ほど彩度0%のとき128に収束することを求めました。
 彩度S'=-50%に変位するので、元の値から、元の値と収束値の差分の彩度のパーセント分を減算したものが求める値になります。
 つまり、
 R2 = R1 + ( (R1 - Rc) *  (S') )
 G2 = G1 + ( (G1 - Gc) *  (S') )
 B2 = B1 + ( (B1 - Bc) *  (S') )

 各数値を代入して、
 R2 = 255 + ( (255 - 128) * (-50%) ) = 255 + (127 * (-50%)) = 255 - 63.5 = 191.5 ≒ 192
 G2 = 123 + ( (123 - 128) * (-50%) ) = 123 + (-5 * (-50%)) = 123 + 2.5 = 125.5 ≒ 126
 G2 = 0 + ( (0 - 128) * (-50%) ) = 0 + (-128 * (-50%)) = 0 + 64 = 64
 よって、
 [R2=192, G2=126, B2=64]が意図した求める結果になります。



 一方、CLIP STUDIO PAINTでは、
 R,G,Bの各値が [R=255, G=123, B=0]に、色調補正「色相(H)=0°・彩度(S)=-50%・明度(V)=0%」を適用すると、
 R,G,Bの各値が [R=192, G=142, B=96]となり、 意図した計算結果、[R2=192, G2=126, B2=64]とは異なる結果になってしまいます。
 (特に、G値は142と、収束するべき値128を完全に超えてしまっており、何かしら釈然といたしません)

from
スレ主
kirinos
さん
2019/08/24 20:54:31
このことから、
上記例1や例2の処理をCLIP STUDIO PAINTの色調補正レイヤーを使っておこない、
色調補正レイヤーの状態を保ったままで保存することのできるPSD形式のファイルで書き出し、
その書き出したPSD形式のファイルをPhotoshopで開くと、
上記処理により相互互換性がないため、両者で色が異なってしまう問題が生じてしまいます。


これはCLIP STUDIO PAINTの仕様なのでしょうか。
もし仕様であれば、計算式をお教えいただければ幸いです。

もしも不具合であるならば今後のバージョンアップにて解消される可能性はありますでしょうか。
解消されたとして、現バージョンよりも以前のバージョンとのCLIPファイルの互換性はどのようになりますでしょうか。
(バージョンアップしたら、色調補正レイヤーを使っていたために色が変わってしまった等、
ユーザー側が混乱する事態もあるため)

from
CLIP
サポート担当
さん
2019/08/27 19:00:25
お時間を頂いており、申し訳ありません。

頂きました内容につきまして確認いたしましたが、仕様でございます。

こちらのページの[プラグインSDKダウンロード]をクリックして頂き、
表示される[フィルタープラグインSDK使用許諾]ページの使用許諾契約書に
同意いただいた上で、フィルタープラグインSDKをダウンロードしていただき、
解凍して頂いた上で作成されたフォルダを以下の順で開き、そこにある
[PIHSVFilter.h]を開いて頂きますとフィルターサンプルをご確認頂く事が
出来ます。

 [FilterPlugIn]→[FilterPlugIn]→[Source]→[PlugInCommon]

色調補正の[色相・彩度・明度]で使用されている計算式はこのフィルター
サンプルに含まれている計算式と同じものとなります。

本件に関するPhotoshopとの互換性については要望として承り、
今後の開発にて対応を検討してまいります。

よろしくお願いいたします。
from
スレ主
kirinos
さん
2019/08/28 22:24:16
いつもお世話になっております。
返事が遅くなり申し訳ありません。

[PIHSVMain.cpp]および[PIHSVFilter.h]のフィルターサンプルのソースコードを拝見いたしましたところ、
仕様ということで納得いたしました。
(例1および例2をサンプルソースコードにそって計算しますと、HSV色空間の結果が仕様と一致することを確認いたしました。)


Photoshopとの互換性につきましては、開発に余裕があればご検討のほどよろしくお願いいたします。


お忙しい中、調査のほどありがとうございました。
以上をもちまして本件は解決済みとさせていただきます。

2019年11月28日に本サービスの投稿受付は終了いたしました。「CLIP STUDIO SUPPORT」をご利用ください。

よくある質問
教えて!Q&A
要望・不具合