Работает ли коррекция цвета в FFmpeg видеофильтре (eq filter) так же, как функция sws_setColorspaceDetails? - PullRequest
0 голосов
/ 25 октября 2019

Мне нужно использовать цветной фильтр с двумя разными реализациями. Первый использует функцию ниже. с преобразованием

double m_brightness = -0.18;
double m_contrast = 1.45;
double m_saturation = 1.2;
SwsContext *swsctx = sws_getCachedContext(NULL, vStreams[1]->codec->width, vStreams[1]->codec->height, vStreams[1]->codec->pix_fmt, dst_width, dst_height, dst_pix_fmt, SWS_BICUBIC, NULL, NULL, NULL);
    int *inv_table, srcrange, *table, dstrange, b, c, s;
    sws_getColorspaceDetails(swsctx, &inv_table, &srcrange, &table, &dstrange, &b, &c, &s);
    b = int((1 << 16) * m_brightness);
    c = int(c * m_contrast);
    s = int(s * m_saturation);
    ret = sws_setColorspaceDetails(swsctx, table, srcrange, inv_table, dstrange, b, c, s);

, а другой использует FFmpeg -vf eq цветокоррекцию в командной строке.

ffmpeg -i original.jpg -vf "eq=brightness=-0.18:contrast=1.45:saturation=1.2" -c:a copy original_filter.jpg

проблема в том, что мне нужен тот же результат (отфильтрованный)с этим двумя инструментами. с теми же параметрами яркости / контрастности / насыщенности, он показал разные результаты, поэтому я попытался преобразовать эти параметры между этими двумя инструментами.

Я думал, что эти две коррекции цвета работают одинаково, читая ссылку ниже. Я пытался преобразовать параметр фильтра swscale в параметр фильтра ffmpeg -vf eq на основе ссылки, но, похоже, это не преобразование между ними. но это больше похоже на преобразование m_brightness <-> b. (в коде, который я прикрепил) https://github.com/google/sagetv/blob/71d122229105e164cd410fafed2a5e7483869913/third_party/mplayer/libmpcodecs/vf_scale.c#L393

вы можете увидеть каждый результат с другим параметром.

https://drive.google.com/drive/folders/181_LhkvpB4XbEf05_ecuLoy5nSSEcRiX?usp=sharing

Как я могу преобразовать параметры так, чтобы они дали тот же отфильтрованный результат? или это совершенно другой алгоритм?

...