Неопределенность в пространстве L,a,b сжатых изображений JPEG

Моя команда хочет рассчитать контраст между двумя фотографиями, сделанными во влажной среде.

Мы рассчитаем контраст по формуле

Контрастность = SQRT((ΔL)^2 + (Δa)^2 + (Δb)^2)

где ΔL - это разность в яркости, Δa - это разность (покраснение-зеленоватость), а Δb - (покраснение-синеватость), которые представляют собой размеры пространства лаборатории.

Наш (пока успешный) подход состоял в том, чтобы преобразовать каждый пиксель из RGB в пространство Lab и взять в качестве переменных A и B средние значения соответствующих разделов изображения.

Однако окружающая среда ограничивает нас в использовании (водонепроницаемой) камеры GoPro, которая сжимает изображения в формат JPEG, а не в виде TIFF, поэтому мы не используем изображение в истинном цвете.

Теперь нам нужно количественно оценить неопределенность в контрасте - для чего нам нужно знать неопределенность в A и B и, соответственно, расширить неопределенности (или среднюю / типичную неопределенность) в каждом значении a и b для каждого пикселя RGB. Мы можем рассчитать это, только если мы знаем типичную / максимальную неопределенность, возникающую при преобразовании из истинного цвета в JPEG.

Поэтому нам нужно знать максимально возможную разницу в каждом из каналов RGB при сохранении в формате JPEG.

НАПРИМЕР. если пиксель RGB истинного цвета (5, 7, 9) станет (2, 9, 13) после сжатия, неопределенность в каждом канале будет (+/- 3, +/- 2, +/- 4).

Мы считаем, что камера сжимает цвет в соотношении сторон 4:2:0 - есть ли способ проверить это?

Однако наш главный вопрос: Есть ли способ узнать максимально возможную ошибку в каждом канале или рассчитать неопределенность по сжатому результату RGB?

Примечание: мы знаем, что невозможно конвертировать обратно из JPEG в TIFF, так как сжатие JPEG с потерями. Нам просто нужно количественно оценить степень этой потери цвета.

1 ответ

Решение

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

Вы хорошо выделяете один из этих пунктов. Когда данные изображения кодируются с использованием стандарта JPEG, они сначала преобразуются в цветовое пространство YCbCr.

Находясь в этом цветовом пространстве, каналы цветности (Cb и Cr) подвергаются пониженной дискретизации, поскольку зрительная система человека менее чувствительна к артефактам в информации цветности, чем к информации яркости.

Введенная здесь ошибка зависит от содержимого; область очень быстро изменяющихся цветности и оттенка будет иметь значительно большую потерю контента, чем область постоянного оттенка / цветности. Даже зная сжатие 4:2:0, которое описывает количество и геометрию понижающей дискретизации (более подробную информацию здесь), контент по-прежнему диктует ошибку, внесенную на этом этапе.

Другая проблема заключается в квантовании, выполняемом в формате JPEG.

Полученная информация кодируется с использованием дискретного косинусного преобразования. В преобразованном пространстве результаты снова квантуются в зависимости от желаемого качества. Это квантование устанавливается во время генерации файла, которая выполняется в камере. Опять же, даже если вы знали точное квантование DCT, выполняемое камерой, фактическое влияние на цифровые отсчеты RGB в конечном итоге зависит от содержимого.

Еще одной трудностью является шум, создаваемый артефактами блока DCT, который (опять же) зависит от содержимого.

Эти зависимости сцены делают алгоритм очень хорошим для сжатия визуального изображения, но очень трудно его абсолютно точно охарактеризовать.

Тем не менее, есть немного света в конце туннеля. Сжатие JPEG приведет к значительно большей ошибке в областях с быстро меняющимся содержимым изображения. Области с постоянным цветом и текстурой будут иметь значительно меньше ошибок сжатия и артефактов. В зависимости от вашего приложения вы можете использовать это в своих интересах.

Другие вопросы по тегам