2015-08-07 2 views
2

В этой статье о sRGB (https://en.wikipedia.org/wiki/SRGB) указано, что гамма-преобразование имеет линейную часть вблизи нуля, чтобы «избежать бесконечного наклона при K = 0, что может вызвать численные проблемы». Я хотел бы знать, в чем проблема с этим.линейный сегмент sRGB, чтобы избежать бесконечного наклона - почему?

ответ

1

Есть два ответа, как обычно для гаммы. Современный вариант:

Проблема заключается в том, что с бесконечным наклоном вам нужно «бесконечное» разрешение (много бит памяти), чтобы получить линейное представление, которое может быть обратимо без гамма-кодирования. Другими словами, он позволяет небольшой таблице поиска создавать обратимое линейное кодирование (8 бит -> 10 бит -> 8 бит).

Численная проблема наиболее легко понятна на первом этапе (8 бит -> 10 бит). С бесконечным наклоном около нуля вам нужен гораздо больший диапазон кодирования, чтобы оставаться верным и обратимым, т. Е. Вам понадобится более 16 бит (при условии целочисленного кодирования, у половины нет этой проблемы).

Линейный эквивалент № 010101 или 1/255th с квадратным (гамма = 2,0) кодированием равен 1/(255 * 255) тыс. Вам понадобится 16 бит, чтобы точно представлять это, и использование 2,2 не 2,0 в качестве экспонента ухудшило бы его. Эти довольно малые числа являются всего лишь следствием функции кодирования, и на практике вам не нужно много разрешения в диапазоне яркости, грубо говоря, черного цвета. Таким образом, линейный сегмент помогает кодировать, не теряя разрешения на детализацию вокруг черного (или почти нулевого).

Немного старше ответ, взятый из

http://www.poynton.com/notes/colour_and_gamma/GammaFAQ.html#gamma_correction

является то, что в каком-то оборудовании этот линейный сегмент будет менее чувствителен к шуму. Это, вероятно, в основном относится к пути аналогового сигнала.

+0

к первому ответу: до сих пор не понимаю. в любом случае, это не таблица поиска фиксированного размера? я как-то понял намек на линейное приближение - бесконечный коэффициент можно было бы с трудом поддаться, но как он здесь применяется? не является ли таблица поиска, созданная путем вычисления f (n) для каждого целого? У меня есть колокольчик с именем taylor, на котором он звонит в затылок, хотя ... но он не может действительно помнить. второй ответ я вообще не получаю. шум датчика не должен влиять на то, что вы делаете с сигналом позже. но я мог бы как-то предположить, что бесконечные склоны очень хорошо играют роль в аналоговых усилителях. –

+0

Ну, у вас будет две таблицы поиска: одна с 256 элементами, 10 бит каждая и одна с 1024 элементами, по 8 бит каждая. Дело в том, что они исправлены и относительно малы. Линейный эквивалент # 010101 или 1/255th с кодировкой sqaure равен 1/(255 * 255) th. Вам понадобится 16 бит, чтобы точно представлять это, и использование 2,2 не 2,0 в качестве экспонента ухудшило бы его. Эти довольно малые числа являются всего лишь следствием функции кодирования, и на практике вам не нужно много разрешения в диапазоне яркости, грубо говоря, черного цвета. Таким образом, линейный сегмент помогает кодировать. –

+0

Что касается аналогового пути, да, шум датчика не изменяется. Но как видимый шум на самом деле зависит от пути сигнала и его кодирования. К сожалению, у меня нет более подробной информации, но я уверен, что в работах Чарльза Понтияна вы можете их найти. –