AEC10 SA计算整理 --- YHistSA & BrightenImgSA

YHistSA

YHistClampValue=YHistLowPctlLuma- [set param/tr:lux+lux]
YHistClampValue=Max(YHistClampValue,0.0)
YHistClampValue=Min(YHistClampValue,[setparam/tr:lux+lux])
HighPctlLumaTarget=Max(YHistHighPctlLuma,[setparam/tr:lux+lux])
HighPctlLumaRemoveOffset=YHistHighPctlLuma- YHistClampValue
YHistScaleValue=HighPctlLumaTarget/HighPctlLumaRemove
YHistScaleValue=Min(YHistScaleValue,1.25)

在YHistSA部分,我们主要对图像的亮度直方图进行动态调整,以适应不同的光照条件。具体步骤如下:

  1. 计算亮度钳制值:
    YHistClampValue = YHistLowPctlLuma - [set param/tr:lux+lux]
    YHistClampValue = Max(YHistClampValue, 0.0)
    YHistClampValue = Min(YHistClampValue, [set param/tr:lux+lux])
    这里,我们根据设定的光照参数调整亮度直方图的低阈值,并确保其值在合理范围内。
  2. 确定高亮目标值:
    HighPctlLumaTarget = Max(YHistHighPctlLuma, [set param/tr:lux+lux])
    设定高亮部分的目标亮度值,确保图像的高光部分不会过曝。
  3. 计算亮度缩放比例:
    HighPctlLumaRemoveOffset = YHistHighPctlLuma - YHistClampValue
    YHistScaleValue = HighPctlLumaTarget / HighPctlLumaRemoveOffset
    YHistScaleValue = Min(YHistScaleValue, 1.25)
    通过计算高亮部分的缩放比例,调整图像的亮度分布,同时限制最大缩放比例以防止失真。

BrightenImgSA:

BrightenImgSALuma=BrightenImgPCTLLuma
BrightenImgSATarget=[setparam/tr:lux+lux]
BrightenImgSAAdjRatioBright=BrightenImgSATarget/BrightenImgSALuma
BrightenImgSAAdjRatioSat=[setparam/tr:lux+lux]/BrightenImgSatPCTLLuma
BrightenImgSAAdjRatioMin=Min(BrightenImgSAAdjRatioBright,BrightenImgSAAdjRatioSat)
BrightenImgSAAdjRatioFSATgt=BrightenImgSAAdjRatioMin*FrameSALum/FrameSATarget
BrightenImgSAAdjInc=BrightenImgSAMinRatio*((BrightenImgSAAdjRatioFSATgt-1)*[setparam/tr:lux+CtrlLuma])+1
BrightenImgSAMinRatio=Min([setparam/tr:lux+BrightenImgStatsRoughness],[setparam/tr:lux+BrightenImgFlatRatio])
BrightenImgSAAdjRatioFSATgt=(BrightenImgSAAdjRatioFSATgt>1)?BrightenImgSAAdjInc:BrightenImgSAAdjRatioFSATgt
BrightenImgSAAdjRatio.Start=[setparam/tr:lux+BrightenImgSAAdjRatioFSATgt]*FrameSATarget/FrameSALum
BrightenImgSAAdjRatio.End=256

在BrightenImgSA部分,我们专注于根据光照条件动态调整图像的亮度和饱和度,以提升视觉质量。

  1. 初始化亮度和饱和度调整比例:
    BrightenImgSALuma = BrightenImgPCTLLuma
    BrightenImgSATarget = [set param/tr:lux+lux]
    BrightenImgSAAdjRatioBright = BrightenImgSATarget / BrightenImgSALuma
    BrightenImgSAAdjRatioSat = [set param/tr:lux+lux] / BrightenImgSatPCTLLuma
    分别计算基于亮度和饱和度的调整比例。

  2. 确定最小调整比例:
    BrightenImgSAAdjRatioMin = Min(BrightenImgSAAdjRatioBright, BrightenImgSAAdjRatioSat)
    取亮度和饱和度调整比例中的较小值,作为最终的调整基准。

  3. 计算帧级别的调整目标和增量:
    BrightenImgSAAdjRatioFSATgt = BrightenImgSAAdjRatioMin * FrameSALum / FrameSATarget
    BrightenImgSAMinRatio = Min([set param/tr:lux+BrightenImgStatsRoughness], [set param/tr:lux+BrightenImgFlatRatio])
    BrightenImgSAAdjInc = BrightenImgSAMinRatio * ((BrightenImgSAAdjRatioFSATgt - 1) * [set param/tr:lux+CtrlLuma]) + 1
    根据帧级别的亮度和目标值,计算调整增量。

  4. 应用调整比例:
    BrightenImgSAAdjRatioFSATgt = (BrightenImgSAAdjRatioFSATgt > 1) ? BrightenImgSAAdjInc : BrightenImgSAAdjRatioFSATgt
    BrightenImgSAAdjRatio.Start = [set param/tr:lux+BrightenImgSAAdjRatioFSATgt] * FrameSATarget / FrameSALum
    BrightenImgSAAdjRatio.End = 256
    如果调整后的目标比例大于1,则应用调整增量;否则保持原比例。最后,设置调整比例的起始和结束值。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容