Иллюстрированный самоучитель по SVGA

Максимальное цветовое разрешение

Максимальное цветовое разрешение обеспечивают видеорежимы VESA, которые в англоязычной литературе принято называть True color или 24-bit Color, последнее название указывает размер кода цвета, а не кода точки. В этих режимах базовые цвета имеет 256 градаций, а общая палитра содержит 256x256x256 = 16 777 216 (пли 16М) цветов.

Кодирование цвета

Код точки обычно занимает в видеопамяти 32 разряда (4 байта или двойное слово), кроме базовых цветов в него входит дополнительный (резервный) пустой байт. Расположение базовых цветов и пустого байта в разрядах двойного слова показано в табл. 7.2.

Таблица 7.2. Расположение базовых цветов в 32-разрядном слове.

Байт 3
Разряды 24-31
Байт 2
Разряды 16-23
Байт 1
Разряды 8-15
Байт 0
Разряды 0-7
1F 18 17 10 F 8 7 0
Резервный байт Красный цвет Зеленый цвет Синий цвет

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

Код в памяти и в регистре

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

При сравнении содержимого памяти и регистров у неискушенного человека может сложиться впечатление, что базовые цвета переставлены. На самом деле это не так, просто одни и те же данные представлены двумя разными способами. Сказанное иллюстрирует табл. 7.3.

Таблица 7.3. Расположение кодов цвета в памяти и в регистре.

Название цвета Байты памяти Байты памяти
0 1 2 3 3 2 1 0
Черный 00 00 00 00 00 00 00 00
Синий FF 00 00 00 00 00 00 FF
Зеленый 00 FF 00 00 00 bD FF 00
Красный 00 00 FF 00 00 FF 00 00
Белый FF FF FF 00 00 FF FF FF

Как уже говорилось, после установки видеорежима его основные характеристики можно прочитать в массиве info. В нем, начиная со смешения IF. расположены четыре пары байтов, содержащие размер кода и адрес его младшего бита для красного, зеленого, синего цветов и резервного пространства. Обычно в них находятся следующие коды: 08, 10h, 08, 08, 08, 00, 08, 18h, что соответствует табл. 7.2.

После установки режимов True Color задача обязательно должна проверять байт массива info со смещением I9h, содержащий размер точки в битах. Если этот байт содержит код 20h, то видеокарта поддерживает 32-разрядный код точки. Не все видеокарты устанавливают код такого размера, одно из исключений описано в следующем разделе.

Возможность работы в режимах True Color зависит от объема памяти, расположенной на видеокарте. При объеме видеопамяти 1 Мбайт эти режимы не поддерживаются. При объеме видеопамяти 2 Мбайт памяти доступны видеорежимы H2h и ush, имеющие разрешения 640x480 и 800x600 точек. При объеме видеопамяти 4 Мбайт к ним добавляется режим ush с разрешением 1024x768 точек. Напоминаем, что перечень режимов приведен в Табл. 1.1.

Сравнение с режимом Hi-Color

В режимах True color код базового цвета увеличился на три разряда, соответственно количество градаций базовых цветов увеличилось в 8 раз, а общее количество цветовых оттенков – в 256 раз. Поэтому передача цвета в режимах True Color существенно улучшается по сравнению с режимами Hi-color. Однако последние в два раза сокращают необходимый объем видеопамяти и во столько же раз или больше ускоряют манипуляции с графическими объектами. Поэтому во многих случаях, например при работе графических акселераторов, основным является режим Hi-Color. Тем более, что способность человеческого глаза различать 256 градаций базовых цветов весьма сомнительна.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.