GPUImage: уменьшение глубины цвета

Я хотел бы уменьшить глубину цвета входного видео и изображений (например, до 16 бит) при использовании GPUImage на iOS, и мне было просто любопытно, есть ли простой способ сделать это с помощью существующих фильтров.

Похоже, что GPUImageColorMatrixFilter или GPUImageRGBFilter могут быть подходящими инструментами; так ли это? Я тоже сейчас начну экспериментировать. Спасибо.


person KeithComito    schedule 05.06.2013    source источник


Ответы (1)


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

GPUImagePosterizeFilter уменьшает уровни цвета, уменьшая динамический диапазон красного, зеленого и синего каналов по отдельности с помощью свойства colorLevels. При значении 10 это должно уменьшить ваше изображение до 1000-цветного.

Однако, поскольку это действует на каждый цветовой канал индивидуально и единообразно, это может не уменьшить ваше цветовое пространство так, как вам хотелось бы. Я видел, как люди используют таблицы сопоставления цветов для настройки такого сокращения цветового пространства. Если вы хотите пойти по этому пути, я бы порекомендовал GPUImageLookupFilter, где вы можете выполнить операцию сокращения изображения таблицы поиска, а затем использовать ее для переназначения. Это может привести к более качественному результату.

person Brad Larson    schedule 06.06.2013
comment
Спасибо; все еще экспериментирую с этим - отвечу позже с результатами. - person KeithComito; 10.06.2013