gpt4 book ai didi

FFmpeg 色彩校正算法

转载 作者:行者123 更新时间:2023-12-04 23:10:34 24 4
gpt4 key购买 nike

我正在尝试同步 CSS 和 FFmpeg 颜色校正。目标是创建将 CSS bri-sat-con-gam 过滤器值转换为相应的 ffmpeg vals 的工具,反之亦然。
例如

-vf "eq=brightness=0.3:saturation=1.3:contrast=1.1"


filter="brightness(30%) saturate(130%) contrast(110%)"

虽然 W3C 提供了 CSS 属性的算法,但我没有找到 FFmpeg 的算法。我试图挖掘 GitHub。从 here开始我已经展开了函数调用,但它看起来“有点”在 20 年内难以导航,并且 104k 提交了旧项目。 :)
如果有人能帮助我找出亮度、饱和度、对比度和 Gamma 的精确公式,我将不胜感激。任何提示。谢谢。

最佳答案

这是核心功能:

static void create_lut(EQParameters *param)
{
int i;
double g = 1.0 / param->gamma;
double lw = 1.0 - param->gamma_weight;

for (i = 0; i < 256; i++) {
double v = i / 255.0;
v = param->contrast * (v - 0.5) + 0.5 + param->brightness;

if (v <= 0.0) {
param->lut[i] = 0;
} else {
v = v * lw + pow(v, g) * param->gamma_weight;

if (v >= 1.0)
param->lut[i] = 255;
else
param->lut[i] = 256.0 * v;
}
}

param->lut_clean = 1;
}
该过滤器仅在 8 位 YUV 输入上运行。此函数创建一个查找表,将所有 8 位输入值 0-255 映射到输出值。然后将该表应用于输入像素。
名称形式为 set_parameter 的函数,如 set_gamma将用户提供的参数转换为上述函数中使用的最终值。 contrast仅应用于亮度平面;色度平面的饱和度。

关于FFmpeg 色彩校正算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70139425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com