Из Википедии, бесплатной энциклопедии
  (Перенаправлено из CLUT )
Перейти к навигации Перейти к поиску
Палитра, используемая в изображении, вращается вокруг цветового пространства RGB .

В компьютерной графике , А палитра , которая также называется цветом таблица поиска (CLUT), является таблицей соответствия , в которой выбраны цвета из определенного цветового пространства «ы диапазон воспроизведения цветов назначен индекс, с помощью которого они могут ссылаться. Ссылаясь на цвета через индекс, который требует меньше информации, чем та, которая необходима для описания фактических цветов в указанном цветовом пространстве, этот метод направлен на сокращение использования данных, будь то полезная нагрузка обработки, пропускная способность передачи, использование ОЗУ или постоянное хранилище. Изображения, в которых цвета обозначены ссылками на CLUT, называются индексированными цветными изображениями.

Описание [ править ]

По состоянию на 2019 год наиболее распространенным цветовым пространством изображения в вычислениях является цветовая модель RGB с глубиной цвета 8 бит на пиксель . Используя этот метод, 8 бит на пиксель используются для описания уровня яркости в каждом из каналов RGB , поэтому для полного описания цвета каждого пикселя необходимо 24 бита памяти. Целью использования палитр является снижение требований к хранению за счет сокращения набора возможных цветов, которые должны обрабатываться одновременно (часто с использованием адаптивных методов), присвоению каждому возможному цвету присваивается индекс, который позволяет ссылаться на каждый цвет. используя меньше информации, чем необходимо для полного описания цвета. Типичный пример - 256-цветная палитра, обычно используемая в GIF.формат файла, в котором 256 цветов, которые будут использоваться для представления изображения, выбираются из всего цветового пространства 24 бит на пиксель, каждому назначается 8-битный индекс. Таким образом, хотя система потенциально может воспроизводить любой цвет в цветовом пространстве RGB (при условии, что ограничение на 256 цветов), требования к хранению на пиксель снижаются с 24 до 8 бит на пиксель.

Мастер палитра [ править ]

Адаптивная цветовая палитра расширяется с 2 до 256 цветов, демонстрируя, как изменяется изображение (щелкните, чтобы просмотреть анимацию).

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

Это делается путем выбора цветов таким образом, чтобы основная палитра содержала полное цветовое пространство RGB «в миниатюре», ограничивая возможные уровни, которые могут иметь красный, зеленый и синий компоненты. Такое расположение иногда называют единой палитрой . [1] Нормальный человеческий глаз в разной степени чувствителен к трем основным цветам: чем больше к зеленому, тем меньше к синему. Таким образом, схемы RGB могут воспользоваться этим, назначив больше уровней для зеленого компонента и меньше - для синего.

Созданная таким образом основная палитра может быть заполнена до 8R × 8G × 4B = 256 цветов , но это не оставляет места в палитре для зарезервированных цветов, цветовых индексов, которые программа могла бы использовать для специальных целей. Более общим является использование только 6R × 6G × 6B = 216 (как в случае веб-цветов ), 6R × 8G × 5B = 240 или 6R × 7G × 6B = 252 , что оставляет место для некоторых зарезервированных цветов.

Затем, при загрузке мозаики из миниатюр изображений (или других разнородных изображений), программа просто сопоставляет каждый исходный индексированный цветной пиксель с его наиболее приближенным значением в основной палитре (после выгрузки его в аппаратные регистры цвета) и записывает результат в видеобуфер. Вот образец простой мозаики из четырех миниатюр изображений с использованием основной палитры из 240 упорядоченных цветов RGB плюс 16 дополнительных промежуточных оттенков серого; все изображения скомпонованы без существенной потери точности цветопередачи:

Адаптивная палитра [ править ]

При использовании методов индексированного цвета реальные изображения представляются с большей точностью по сравнению с исходным истинным цветом за счет использования адаптивных палитр (иногда называемых адаптивными палитрами ), в которых цвета выбираются или квантуются с помощью некоторого алгоритма непосредственно из исходного изображения (путем выбора наиболее частые цвета). Таким образом и при дальнейшем сглаживании индексированное цветное изображение может почти совпадать с оригиналом.

Но это создает сильную зависимость между пикселями изображения и его адаптивной палитрой. Предполагая графический дисплей с ограниченной 8-битной глубиной, необходимо загрузить адаптивную палитру данного изображения в аппаратные регистры цвета до загрузки самой поверхности изображения в буфер кадра . Чтобы отображать разные изображения с разными адаптивными палитрами, их нужно загружать по одному, как в слайд-шоу . Вот образцы четырех различных индексированных цветных изображений с цветовыми пятнами, чтобы показать их соответствующие (и в значительной степени несовместимые) адаптивные палитры:

Прозрачность палитр [ править ]

Отдельная запись палитры в индексированном цветном изображении может быть обозначена как прозрачный цвет, чтобы выполнить простое наложение видео : наложение данного изображения на фон таким образом, чтобы некоторая часть перекрывающегося изображения закрывала фон, а оставшаяся - нет. . Наложение титров фильмов / телепрограмм и титров - типичное применение наложения видео.

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

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

Некоторые ранние компьютеры, такие как Commodore 64 , MSX и Amiga , аппаратно поддерживают спрайты и / или полноэкранное наложение видео . В этих случаях номер записи прозрачной палитры определяется аппаратным обеспечением, и раньше это был номер 0.

Некоторые форматы файлов индексированных цветных изображений, такие как GIF, изначально поддерживают обозначение данной записи палитры как прозрачной , свободно выбираемой среди любых записей палитры, используемых для данного изображения.
Формат файла BMP резервирует пространство для значений альфа-канала в своей таблице цветов [2], однако в настоящее время это пространство не используется для хранения каких-либо данных прозрачности и установлено на ноль. Напротив, PNG поддерживает альфа-каналы в записях палитры, обеспечивая полупрозрачность изображений с палитрой.

При работе с полноцветных изображений, некоторые видео оборудование для смешивания может использовать триплет RGB (0,0,0) (не красный, не зеленый, не синий: самый темный оттенок черного, иногда называют superblack в этом контексте) в качестве прозрачного цвета . Во время разработки его заменяют на так называемый волшебный розовый . Точно так же типичное программное обеспечение для настольных издательских систем может предполагать, что чистый белый цвет, триплет RGB (255,255,255) из фотографий и иллюстраций должен быть исключен, чтобы абзацы текста могли вторгаться в ограничивающую рамку изображения для нерегулярного расположения текста вокруг предметов изображения.

Программы 2-D рисования , такие как Microsoft Paint и Deluxe Paint , могут использовать указанный пользователем цвет фона в качестве прозрачного цвета при выполнении операций вырезания, копирования и вставки .

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

Программные палитры [ править ]

Microsoft Windows [ править ]

Приложения Microsoft Windows управляют палитрой 4-битных или 8-битных индексированных цветных устройств отображения с помощью специализированных функций Win32 API . Применимость палитр в режимах отображения Highcolor и Truecolor вызывает сомнения. Эти API имеют дело с так называемой «системной палитрой» и множеством «логических палитр».

«Системная палитра» - это копия в ОЗУ аппаратных регистров цветного дисплея, в первую очередь физической палитры, и это уникальный общий общий ресурс системы. При загрузке загружается системная палитра по умолчанию (в основном «основная палитра», которая достаточно хорошо работает с большинством программ).

Когда данное приложение намеревается выводить раскрашенную графику и / или изображения, оно может установить свою собственную «логическую палитру», то есть свой собственный частный выбор цветов (до 256). Предполагается, что каждый графический элемент, который приложение пытается отобразить на экране, использует цвета своей логической палитры. Каждая программа может свободно управлять одной или несколькими логическими палитрами без дальнейшего ожидаемого вмешательства (заранее).

Перед тем как вывод будет выполнен эффективно, программа должна реализовать свою логическую палитру: система пытается сопоставить «логические» цвета с «физическими». Если предполагаемый цвет уже присутствует в системной палитре, система внутренне сопоставляет логические индексы системной палитры (потому что они редко совпадают). Если предполагаемый цвет еще не указан, система применяет внутренний алгоритм, чтобы отбросить наименее используемый цвет в системной палитре (обычно тот, который используется другим окном в фоновом режиме) и заменяет его новым цветом. Из-за ограниченного пространства для цветов в системной палитре алгоритм также пытается переназначить похожие цвета вместе и всегда избегает создания избыточных цветов.

Конечный результат зависит от того, сколько приложений одновременно пытаются отображать свои цвета на экране. Окно переднего плана всегда предпочтительнее, поэтому фоновые окна могут вести себя по-разному: от повреждения до быстрой перерисовки. При изменении системной палитры система запускает определенное событие, чтобы проинформировать каждое приложение. При получении окно может быстро перерисоваться с помощью одной функции Win32 API. Но это должно быть сделано явно в программном коде; отсюда тот факт, что многие программы не могут обработать это событие, и их окна будут повреждены в этой ситуации.

Приложение может заставить системную палитру загружаться определенными цветами (даже в определенном порядке), «обманывая» систему, сообщая ей, что это элементы цвета, предназначенные для анимации (быстрое изменение цвета цветов в физической палитре в определенных записях ). Затем система предположит, что эти записи аппаратной палитры больше не являются свободными для ее алгоритма управления цветом палитры. Конечный результат зависит от навыков программы коррекции цвета и поведения других программ (хотя эта проблема такая же, как и в обычном случае), а также от самой операционной системы.

См. Также [ править ]

  • Список цветовых палитр

Заметки [ править ]

  1. ^ Руководство пользователя алхимии изображений Handmade Software .
  2. ^ MSDN. «Запись в таблице цветов RGBQUAD»

Ссылки [ править ]

  • Хулио Санчес и Мария П. Кантон (2003). Справочник по графике для ПК. CRC Press. ISBN  0-8493-1678-2 .
  • Цветовые палитры в Microsoft Developer Network (MSDN)
  • Запись таблицы цветов RGBQUAD в структуре BITMAPINFO в Microsoft Developer Network (MSDN)