SatPrevSA:
SatPreSALuma=SatPrevHighPCTLLuma
SatPrevSATarget=[setparam/tr:lux+lux]
SatPrevSAAdjRatioFSAATgt=SatPrevTarget*FrameSALuma/(SatPrevSALuma*FrameSATarget)
SatPrevSAAdjRatio.Start=0
SatPrevSAAdjRatio.End=[setparam/tr:lux+SatPrevSAAdjRatioFSATgt*FrameSATarget/FrameSALuma
在SatPrevSA的計(jì)算中砰苍,我們首先定義亮部預(yù)覽的亮度(Luma)為SatPrevHighPCTLLuma褥芒。目標(biāo)飽和度(SATarget)通過(guò)參數(shù)設(shè)置獲取宇攻,形式為[setparam/tr:lux+lux](這里假設(shè)lux為變量占位符抱虐,實(shí)際使用中需替換為具體值)亩鬼。
接著驹针,我們計(jì)算調(diào)整比率(Adjustment Ratio)的幀內(nèi)平均目標(biāo)值(FSATgt)烘挫,該值基于目標(biāo)飽和度、當(dāng)前幀與目標(biāo)幀的亮度比牌捷。調(diào)整比率的起始值設(shè)為0墙牌,結(jié)束值則根據(jù)FSATgt、當(dāng)前幀與目標(biāo)幀的飽和度與亮度計(jì)算得出暗甥,具體公式為:
SatPrevSAAdjRatio.End = [setparam/tr:lux + (SatPrevTarget * FrameSATarget) / (SatPrevSALuma * FrameSALuma) * FrameSATarget / FrameSALuma]
DarkPrevSA:
DarkPrevSALuma= [set param/tr:lux+DarkPrevLowPCTLLuma]
DarkPrevSATarget= [set param/tr: lux+lux]
DarkPrevSAAdjRatioStartFSATgt=(DarkPrevSATarget*FrameSALuma)/(DarkPrevSALuma*FrameSATarget)
DarkPrevSAAdjRatioEndFSATgt=(DarkPrevSATarget*FrameSALuma)/(DarkPrevSALuma*FrameSATarget)
DarkPrevSAAdjRatio.Start=[setparam/tr:lux+DarkPrevSAAdjRatioStartFSATgt]*FrameSATarget/FrameSALuma
DarkPrevSAAdjRatio.End=[setparam/tr:lux+DarkPrevSAAdjRatioEndFSATgt]*FrameSATarget/FrameSALuma
對(duì)于暗部預(yù)覽(DarkPrevSA)喜滨,我們類(lèi)似地定義了暗部預(yù)覽的亮度(DarkPrevLowPCTLLuma)和目標(biāo)飽和度([setparam/tr:lux+lux])。調(diào)整比率的起始和結(jié)束值計(jì)算采用了相同的邏輯撤防,但分別基于暗部預(yù)覽的參數(shù):
DarkPrevSAAdjRatioStartFSATgt = (DarkPrevSATarget * FrameSALuma) / (DarkPrevSALuma * FrameSATarget)
DarkPrevSAAdjRatio.Start = [setparam/tr:lux + DarkPrevSAAdjRatioStartFSATgt] * FrameSATarget / FrameSALuma
DarkPrevSAAdjRatio.End = 同上邏輯虽风,但通常暗部調(diào)整范圍較小或固定,可能無(wú)需變化寄月,故這里也使用相同公式或設(shè)定為固定值辜膝。
LongDarkPrevSA:
LongDarkPrevSALuma= [set param/tr: lux+LongDarkPrevLowPCTLLuma]
LongDarkPrevSATarget= [set param/tr: lux]
LongDarkPrevSAAdjRatioFSATgt= (LongDarkPrevSATarget * FrameSALuma) / (LongDarkPrevSALuma * FrameSATarget)
LongDarkPrevSA3HDRLongExp= LongDarkPrevSATarget * TriggerCtrlShortExp / LongDarkPrevSALuma
LongDarkPrevSA3HDRRealDRCGain= LongDarkPrevSA3HDRLongExp / ShortSatPrevSA3HDRShortExp
LongDarkPrevSAAdjRatio.Start= [set param/tr:lux+LongDarkPrevSAAdjRatioFSATgt] * FrameSATarget / FrameSALuma
LongDarkPrevSAAdjRatio.End= 256
長(zhǎng)期暗部預(yù)覽(LongDarkPrevSA)的計(jì)算考慮了更長(zhǎng)時(shí)間的暗部信息。我們定義了長(zhǎng)期暗部預(yù)覽的亮度(LongDarkPrevLowPCTLLuma)和目標(biāo)飽和度([setparam/tr:lux])漾肮。此外厂抖,還計(jì)算了與HDR相關(guān)的曝光時(shí)間(LongDarkPrevSA3HDRLongExp)和動(dòng)態(tài)范圍控制增益(LongDarkPrevSA3HDRRealDRCGain)。
調(diào)整比率的起始值基于FSATgt計(jì)算克懊,結(jié)束值固定為256(或根據(jù)具體需求調(diào)整):
LongDarkPrevSAAdjRatioFSATgt = (LongDarkPrevSATarget * FrameSALuma) / (LongDarkPrevSALuma * FrameSATarget)
LongDarkPrevSAAdjRatio.Start = [setparam/tr:lux + LongDarkPrevSAAdjRatioFSATgt] * FrameSATarget / FrameSALuma
LongDarkPrevSAAdjRatio.End = 256
ShortSatPrevSA:
ShortSatPrevSALuma= ShortSatPrevHighPCTLLuma
ShortSatPrevSATarget= [set param/tr:lux]
ShortSatPrevSAAdjRatioFSATgt= (ShortSatPrevSATarget*FrameSALuma)/(ShortSatPrevSALuma*FrameSATarget)
ShoartSatPrevSA3HDRShortExp= ShortSatPrevSATarget*TriggerCtrlShortExp/ShortSatPrevSALuma
ShortSatPrevSAAdjRatio.Start= 0.0
ShortSatPrevSAAdjRatio.End= [set param/tr:lux+ShortSatPrevSAAdjRatioFSATgt]*FrameSATarget/FrameSALuma
短期亮部預(yù)覽(ShortSatPrevSA)的計(jì)算較為直接忱辅,定義了短期高亮度區(qū)域的亮度(ShortSatPrevHighPCTLLuma)和目標(biāo)飽和度([setparam/tr:lux])七蜘。調(diào)整比率的起始值設(shè)為0.0,結(jié)束值根據(jù)FSATgt計(jì)算得出:
ShortSatPrevSAAdjRatioFSATgt = (ShortSatPrevSATarget * FrameSALuma) / (ShortSatPrevSALuma * FrameSATarget)
ShortSatPrevSAAdjRatio.Start = 0.0
ShortSatPrevSAAdjRatio.End = [setparam/tr:lux + ShortSatPrevSAAdjRatioFSATgt] * FrameSATarget / FrameSALuma