Индексированный цвет
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
В вычислительной технике индексированный цвет — это метод цифровых изображений ограниченного управления цветами с целью экономии памяти компьютера и хранилища файлов , а также ускорения обновления дисплея и передачи файлов. Это форма сжатия векторного квантования .
Когда изображение кодируется таким способом, информация о цвете не передается напрямую в данных пикселей изображения , а сохраняется в отдельной части данных, называемой таблицей поиска цвета (CLUT) или палитрой : массивом характеристик цвета. Каждый элемент массива представляет цвет, индексированный по его положению в массиве. Каждый пиксель изображения содержит не полную спецификацию своего цвета, а только его индекс в палитре . Эту технику иногда называют псевдоцветом. [1] или косвенный цвет , [2] поскольку цвета затрагиваются косвенно.
История
[ редактировать ]Ранние системы графического отображения, которые использовали 8-битный индексированный цвет с буферами кадров и таблицами поиска цветов, Шупа включают SuperPaint (1973) и буфер видеокадра, описанный в 1975 году Каджией, Сазерлендом и Чидлом. [3] [4] Они поддерживали палитру из 256 цветов RGB. SuperPaint использовал кадровый буфер со сдвиговым регистром , а Kajiya et al. система использовала кадровый буфер с произвольным доступом .
В нескольких более ранних системах использовался 3-битный цвет, но обычно эти биты рассматривались как независимые биты включения/выключения красного, зеленого и синего, а не совместно как индекс в CLUT.
Размер палитры
[ редактировать ]Сама палитра хранит ограниченное количество различных цветов; 4, 16 или 256 являются наиболее распространенными случаями. Эти ограничения часто налагаются целевой архитектуры видеоадаптера аппаратное обеспечение , поэтому не случайно эти цифры точные степени двойки ( двоичный код ): 2 2 = 4, 2 4 = 16 и 2 8 = 256. Хотя 256 значений могут уместиться в один 8- битный байт (а затем в один индексированный цвет).пиксель также занимает один байт), индексы пикселей с 16 (4-битные, nibble ) или меньшее количество цветов может быть упаковано в один байт (два полубайта на байт, если используется 16 цветов, или четыре 2-битных пикселя за байт при использовании 4 цветов). Иногда 1-битные (2-цветные) значения могут быть используется, и тогда в один байт можно упаковать до восьми пикселей; такойизображения считаются двоичными изображениями (иногда называемыми растровое или двухуровневое изображение ), а не индексированное цветное изображение.
Глубина цвета |
---|
Связанный |
Если простое наложение видео предполагается через прозрачный цвет , один запись палитры специально зарезервирована для этой цели, и она со скидкой как доступный цвет. Некоторые машины, такие как MSX серия имела прозрачный цвет, зарезервированный аппаратное обеспечение. [5]
Индексированные цветные изображения с размерами палитры, превышающими 256 записей, встречаются редко.Практический предел составляет около 12 бит на пиксель, 4096 различных индексов. Киспользование индексированного бита на пиксель 16 или более не дает преимуществ индексированногохарактер цветных изображений, поскольку размер цветовой палитры в байтах больше, чем сами необработанные данные изображения. Также полезен прямой RGB Режимы Highcolor можно использовать из 15 бит на пиксель и выше.
Если изображение имеет много тонких цветовых оттенков, необходимо выбрать ограниченный репертуар цветов для аппроксимации изображения с помощью квантование цвета . Такой палитры зачастую недостаточно для представления изображение точно; трудно воспроизводимые функции, такие как градиенты будут выглядеть блочными или полосками ( цвет бандаж ). В таких случаях обычно используется дизеринг , которыйсмешивает пиксели разного цвета в шаблоны, используя тенденцию человеческое зрение, чтобы размыть близлежащие пиксели, давая результат визуально ближе к оригиналу.
Вот типичное проиндексированное 256-цветное изображение и собственная палитра (показана в видепрямоугольник образцов):
Цвета и палитры
[ редактировать ]То, как цвета кодируются в карте цветовой палитры данного индексированного цветового изображения, зависит от целевой платформы.
Ранние техники окраски
[ редактировать ]Многие ранние персональные и домашние компьютеры имели очень ограниченные аппаратные палитры , которые могли воспроизводить очень небольшой набор цветов. В этих случаях значение каждого пикселя отображается непосредственно на один из этих цветов. Хорошо известные примеры включают Apple II , Commodore 64 и IBM PC CGA , все из которых включали оборудование, способное воспроизводить фиксированный набор из 16 цветов. В этих случаях изображение может кодировать каждый пиксель с помощью 4 бит, напрямую выбирая цвет для использования. Однако в большинстве случаев аппаратное обеспечение дисплея поддерживает дополнительные режимы, в которых в одном изображении можно использовать только подмножество этих цветов, что является полезным методом экономии памяти. Например, режим разрешения CGA 320×200 мог одновременно отображать только четыре из 16 цветов. Поскольку палитры были полностью запатентованными, изображение, созданное на одной платформе, не может быть правильно просмотрено на другой.
Другие машины той эпохи имели возможность генерировать больший набор цветов, но, как правило, позволяли использовать только их подмножество в одном изображении. Примеры включают 256-цветную палитру на 8-битных машинах Atari или 4096 цветов терминала VT241 в графическом режиме ReGIS . В этих случаях обычно изображение допускало одновременное отображение только небольшого подмножества от общего количества цветов, до 16 одновременно на Atari и VT241. В целом эти системы работали идентично своим менее красочным собратьям, но ключевым отличием было то, что в палитре было слишком много цветов, чтобы их можно было напрямую закодировать в пиксельных данных, учитывая ограниченный объем видеопамяти . Вместо этого они использовали справочную таблицу цветов (CLUT), где данные каждого пикселя указывали на запись в CLUT, а CLUT настраивалась под управлением программы. Это означало, что данные CLUT изображения должны были храниться вместе с необработанными данными изображения, чтобы иметь возможность правильно воспроизвести изображение.
RGB
[ редактировать ]Аппаратные палитры, основанные на компонентах видеоцветов , таких как YPbPr и т.п., были обычно заменены в середине 1980-х годов более гибкой цветовой моделью RGB , в которой заданный цвет можно получить путем смешивания различных количеств трех основных цветов: красного, зеленого и желтого. синий. Хотя общее количество различных цветов зависит от количества уровней в каждом основном элементе и от конкретной аппаратной реализации ( 9-битный RGB обеспечивает 512 комбинаций, 12-битный RGB — 4096 и т. д.), в этой модели цифровой Аналоговые преобразователи (DAC) могут генерировать цвета, упрощая конструкцию оборудования, в то время как программное обеспечение может абстрактно обрабатывать число на уровне и управлять цветами RGB независимо от устройства. Благодаря цветам, хранящимся в формате RGB в палитрах индексированных файлов изображений, любое изображение может отображаться (посредством соответствующих преобразований) в любой такой системе, независимо от глубины цвета, используемой в аппаратной реализации.
Сегодня аппаратное обеспечение дисплеев и форматы файлов изображений , которые работают с индексированными цветными изображениями, почти исключительно управляют цветами в формате RGB, причем стандартной кодировкой де-факто является так называемый truecolor или 24-битный RGB с 16 777 216 различными возможными цветами . Однако индексированные цветные изображения на самом деле не ограничены 24-битной цветовой кодировкой RGB; палитры изображений могут содержать любой тип цветовой кодировки. Например, формат файла PDF поддерживает индексированный цвет в других цветовых пространствах, в частности CMYK , а Adobe Distiller по умолчанию преобразует изображения в индексированный цвет всякий раз, когда общее количество цветов в изображении равно или меньше 256. При использовании RGB Форматы файлов TIFF . и PNG могут дополнительно хранить триплеты RGB с точностью до 16 бит (65 536 уровней на компонент), что в общей сложности дает 48 бит на пиксель Предлагаемое расширение стандарта TIFF позволяет [6] цветовые палитры, отличные от RGB, но это никогда не было реализовано в программном обеспечении по техническим причинам. Таблица цветовой карты индексированного цветового режима формата файла BMP хранит свои записи в порядке BGR, а не в RGB, и имеет (в текущей версии) дополнительный неиспользуемый байт для заполнения, чтобы соответствовать 32-битному выравниванию слов во время обработки, но это по сути, это все еще 24-битная цветовая кодировка RGB. (Более ранняя версия формата BMP использовала три байта на запись 24-битной таблицы цветовой карты, и многие файлы в этом формате все еще находятся в обращении, поэтому многие современные программы, читающие файлы BMP, поддерживают оба варианта.)
Расположение пиксельных битов
[ редактировать ]За исключением графических режимов с очень низким разрешением, ранние домашние и персональные компьютеры редко реализовывали дизайн с «всепиксельной адресацией», то есть возможность независимо менять один пиксель на любой из доступных цветов. Их ограничения связаны с использованием отдельных цветовых атрибутов или цветовых областей оперативной памяти, что приводит к конфликта атрибутов эффектам . Кроме того, биты пикселей и/или строки развертки видеопамяти обычно располагались необычным образом, удобным для аппаратного обеспечения видеогенератора (таким образом экономя затраты на оборудование на конкурентном рынке), но иногда создавая трудности для людей, пишущих графические программы. . Биты пикселей в изображениях с индексированными цветами и адресацией всех пикселей не всегда располагаются подряд в видеопамяти или файлах изображений (т. е. не всегда используется фрагментарная организация). Некоторое видеооборудование, такое как 16-цветные графические режимы Enhanced Графический адаптер (EGA) и видеографическая матрица (VGA) для совместимых с IBM PC [7] или Amiga видеобуфер [8] организованы как серия битовых плоскостей (в конфигурации, называемой планарной ), в которой связанные биты одного пикселя разделены между несколькими независимыми растровыми изображениями . Таким образом, биты пикселей концептуально выровнены вдоль трехмерной оси Z. (Понятие «глубина» здесь не то же самое, что и глубина пикселя .)
Ранние форматы файлов изображений, такие как PIC , хранили не более чем пустой дамп памяти видеобуфера данной машины.
Некоторые форматы файлов изображений с индексированными цветами, такие как Graphics Interchange Format (GIF), позволяют располагать строки сканирования в чередующемся порядке (а не в линейном порядке), что позволяет отображать версию изображения с низким разрешением на экране во время его загрузки. , чтобы пользователь компьютера мог получить представление о его содержимом за несколько секунд до того, как будет получено все изображение. Вот пример типичной загрузки с вертикальным чередованием, состоящей из четырех шагов:
Как видно здесь, изображение разделено на четыре группы строк: группа A содержит каждую четвертую строку, группа B содержит строки, следующие сразу за строками в группе A, группа C также содержит строки, следующие сразу за строками в группе B, а группа D содержит строки. остальные линии, которые находятся между линиями группы С (сразу вверху) и линиями группы А (сразу внизу). Они сохраняются в файле в порядке A, C, B, D, так что при передаче файла вторая полученная группа строк (C) располагается по центру между строками первой группы, что дает наиболее пространственно однородный и узнаваемый файл. Возможно изображение, состоящее только из двух групп линий. Тот же метод можно применить и к большему количеству групп (например, к восьми), и в этом случае на каждом этапе следующая отправляемая группа содержит строки, лежащие в центрах оставшихся полос или рядом с ними, которые еще не заполнены данными изображения. Этот метод с четырьмя или восемью группами строк широко использовался в ранней Всемирной паутине во второй половине 1990-х годов. Вместо того, чтобы оставлять фон (черный), как на иллюстрации выше, часть изображения часто отображалась на экране путем дублирования каждой строки, чтобы заполнить пространство под ней до следующей полученной строки изображения. Конечным результатом было непрерывное изображение с уменьшенным вертикальным разрешением, которое увеличивалось до полного разрешения в течение нескольких секунд по мере поступления более поздних частей данных изображения.
Преимущества
[ редактировать ]Индексированный цвет экономит много памяти, места для хранения и времени передачи: при использовании truecolor каждому пикселю требуется 24 бита или 3 байта. Типичное несжатое полноцветное изображение с разрешением VGA 640×480 требует 640×480×3 = 921 600 байт (900 КиБ). Ограничив количество цветов изображения до 256, каждому пикселю потребуется только 8 бит или по 1 байту каждый, поэтому для примера изображения теперь требуется только 640 × 480 × 1 = 307 200 байт (300 КиБ), плюс 256 × 3 = 768 дополнительных байтов для хранения сама карта палитры (при условии RGB) составляет примерно треть исходного размера. Меньшие палитры (4-битные 16 цветов, 2-битные 4 цвета) могут упаковывать пиксели еще больше (до одной шестой или одной двенадцатой), очевидно, за счет точности цветопередачи.
Индексированный цвет широко использовался в первых персональных компьютерах и аппаратном обеспечении видеоадаптеров для снижения затрат (в основном за счет меньшего количества дорогих на тот момент оперативной памяти чипов ), а также для удобного управления изображениями с помощью процессоров с ограниченной мощностью (порядка от 4 до 8 МГц). ), хранилище файлов ( кассеты низкой плотности и дискеты ). Известные компьютерные графические системы, широко (или даже исключительно) использующие псевдоцветовые палитры в 1980-х годах, включают CGA , EGA и VGA (для совместимых с IBM PC ), Atari ST , а также Amiga от OCS и AGA .
Файлы изображений, которыми обменивались через сеть CompuServe в начале 1990-х годов, были инкапсулированы в формат GIF . Позже веб-страницы HTML использовали GIF вместе с другими индексированными форматами файлов с поддержкой цвета, такими как PNG , для быстрого обмена изображениями с ограниченным цветом и хранения их в ограниченном пространстве памяти.
Большинство форматов файлов изображений , поддерживающих индексированные цветные изображения, также обычно поддерживают некоторую схему сжатия , что расширяет возможности хранения изображений в файлах меньшего размера.
Интересных цветовых и художественных эффектов можно легко добиться, изменяя цветовую палитру индексированных цветных изображений, например, для создания цветных изображений в тонах сепии . Из-за отдельного характера связанного элемента палитры индексированных цветных изображений они идеально подходят для переназначения в оттенках серого изображений в изображения ложных цветов за счет использования палитр ложных цветов .
Простого наложения видео можно легко добиться с помощью техники прозрачного цвета .
Путем манипулирования аппаратными регистрами цвета ( таблица поиска цветов или CLUT) адаптера дисплея в графических режимах с индексированными цветами можно добиться полноэкранных эффектов цветовой анимации без перерисовки изображения, то есть с низкими затратами времени ЦП; однократное изменение значений регистров влияет сразу на весь экран. Анимация с цветовой картой, также известная как Color Cycling , широко используется в демосцене . Экран логотипа загрузки Microsoft Windows в Windows 95, 98, ME и 2000 Professional (который использует режим цветного отображения VGA 320x200x256, поскольку это наибольший общий знаменатель на всех ПК) использует этот метод для прокрутки градиентной полосы в нижней части экрана. ; изображение представляет собой статическое изображение без перезаписи пикселей после его первоначального отображения. Пользовательские изображения загрузочного экрана могут использовать циклически повторяющиеся цвета для анимации других частей изображений.
Недостатки
[ редактировать ]Основным недостатком использования индексированного цвета является ограниченный набор одновременных цветов на изображение. Небольшие 4- или 16-цветные палитры все еще приемлемы для небольших изображений ( значков ) или очень простой графики, но для воспроизведения реальных изображений они становятся практически бесполезными. Некоторые методы, такие как квантование цвета , сглаживание и сглаживание, объединенные вместе, могут создавать индексированные 256-цветные изображения, сравнимые с оригиналом до приемлемого уровня.
Индексированные цветные изображения сильно зависят от собственных цветовых палитр. За исключением нескольких хорошо известных палитр с фиксированными цветами (таких как палитра цветного графического адаптера — CGA), необработанные данные изображения и/или таблицы карт цветов не могут быть надежно обменены между различными файлами изображений без какого-либо промежуточного сопоставления. Кроме того, если исходная цветовая палитра для данного индексированного изображения утеряна, восстановить ее будет практически невозможно. Вот пример того, что происходит, когда индексированное цветное изображение (предыдущий попугай) связано с неправильной цветовой палитрой:
Графические режимы с индексированными цветами для видеоадаптеров имеют ограничение в 16 или 256 цветов, налагаемое аппаратным обеспечением. Индексированные цветные изображения с богатыми, но несовместимыми палитрами можно точно отображать только по одному, как в слайд-шоу . Когда необходимо показать несколько изображений вместе, например, в мозаике миниатюр общая или основная палитра , часто используется , которая объединяет как можно больше различных оттенков в один набор, тем самым ограничивая общую точную доступность цвета.
Следующее изображение представляет собой мозаику из четырех изображений с различными индексированными цветами, визуализированных с помощью одной общей основной палитры из 6–8–5 уровней RGB плюс 16 дополнительных оттенков серого. Обратите внимание на ограниченный диапазон цветов, используемых для каждого изображения, и на то, сколько элементов палитры осталось неиспользованными.
Многие устройства отображения индексированных цветов не достигают 24-битного предела для полной палитры RGB. 18 с 262 144 различными возможными цветами как в 16- , Например, VGA для IBM PC-совместимых устройств обеспечивает только -битную палитру RGB так и в 256-индексированных графических режимах.
Некоторые программы для редактирования изображений позволяют гамма-коррекцию применять к палитре файлов изображений с индексированными цветами. В общем, применять гамма-коррекцию непосредственно к цветовой карте — плохая практика, поскольку исходные значения цветов RGB теряются. Гамма-коррекцию лучше применять с помощью аппаратного обеспечения дисплея (большинство современных видеоадаптеров поддерживают эту функцию) или в качестве активного промежуточного этапа программного обеспечения рендеринга посредством управления цветом , сохраняющего исходные значения цвета. Только если индексированные цветные изображения предназначены для систем, в которых отсутствует какая-либо калибровка цвета , и они не предназначены для кроссплатформенности, гамма-коррекция может быть применена к самой таблице цветов.
Форматы файлов изображений, поддерживающие индексированный цвет
[ редактировать ]Это одни из наиболее типичных форматов файлов изображений, поддерживающих индексированные цветовые режимы. Некоторые из них поддерживают другие режимы (например, truecolor), но здесь перечислены только режимы индексированного цвета.
- ПРИМЕЧАНИЕ. Большинство форматов также поддерживают таблицу цветов с меньшим количеством цветов, чем максимальное количество цветов, которое может предложить данная битовая глубина.
Акроним | Полное имя | Создатель | Расширение DOS | 1 бит (2) | 2-битный (4) | 3-битный (8) | 4-битный (16) | 5-битный (32) | 6-битный (64) | 7-битный (128) | 8-битный (256) | Сжатие |
---|---|---|---|---|---|---|---|---|---|---|---|---|
ПКХ | кисти для ПК Файл изображения | Корпорация ZSoft | .pcx | Да | Да | Нет | Да | Нет | Нет | Нет | Да | РЛЭ |
БРДМ | Межлистное растровое изображение | Электронное искусство | .lbm , .iff | Да | Да | Да | Да | Да | Да* ( режим EHB , 64 цвета) | Да* | Да* | Несжатый, RLE |
гифка | Формат графического обмена | Компьютерный компьютер | .gif | Да | Да | Да | Да | Да | Да | Да | Да | ЛЗВ |
ТГА | ТАРГА Формат файла | Truevision | .tga , .vda , .icb , .vst | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Да | Несжатый, RLE |
TIFF | Тег(ged) Формат файла изображения | Таким образом | .tif | Да | Да | Да | Да | Да | Да | Да | Да | Несжатый, DEFLATE , LZW , PackBits , факс CCITT группы 3 , факс CCITT группы 4 , JPEG , другие менее распространенные (**) |
БМП | Независимое от устройства растровое изображение | Майкрософт | .bmp , .dib , .rle | Да | Нет | Нет | Да | Нет | Нет | Нет | Да | Без сжатия, RLE (***) |
PSD | Photoshop Документ | Adobe Системы | .psd | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Да | PackBits |
PNG | Портативная сетевая графика | Группа развития ПНГ | .png | Да | Да | Нет | Да | Нет | Нет | Нет | Да | СДУТЬ |
- * 64- (правда, не EHB), 128- и 256-цветовые режимы доступны только для чипсета AGA Amiga.
- ** Встроенная поддержка собственных схем сжатия.
- *** RLE с дополнительными фирменными дельта-прыжками.
Примечания
[ редактировать ]- ^ Чарльз А. Пойнтон (2003). Цифровое видео и HDTV: алгоритмы и интерфейсы . Морган Кауфманн. ISBN 1-55860-792-7 .
- ^ Компьютерная графика, профессор Р. Эккерт, лектор. № 5, февраль 2001 г., Бингемтонский университет, штат Нью-Йорк.
- ^ «Буфер видеокадра с произвольным доступом». Оригинальная графика: новаторские усилия, которые сформировали эту область . Том. 1. Ассоциация вычислительной техники. Июль 1998 г., стр. 315–320. ISBN 9781581130522 .
- ^ Джеймс Каджия; Иван Сазерленд; Эдвард Чидл (1975), «Буфер видеокадра с произвольным доступом», Конференция IEEE по компьютерной графике, распознаванию образов и структурам данных : 1–6
- ^ Интернет-описание видеочипа Texas Instruments TMS9918, используемого в MSX.
- ^ «Спецификация формата файла изображения TIFF» (PDF) . Архивировано из оригинала (PDF) 17 октября 2006 г. Проверено 16 октября 2006 г.
- ^ Ричард Уилтон, Руководство программиста по ВИДЕОСИСТЕМАМ ПК и PS/2, 1987, Microsoft Press. ISBN 1-55615-103-9
- ^ Inc. Commodore-Amiga, Справочное руководство по оборудованию Amiga, 1991, Addison-Wesley. ISBN 0-201-56776-8
См. также
[ редактировать ]Ссылки
[ редактировать ]- Хулио Санчес и Мария П. Кантон (2003). Справочник по графике для ПК. ЦРК Пресс. ISBN 0-8493-1678-2 .