Cтраница 2
Этот адаптер поддерживает несколько графических режимов, в которых значения пикселов представлены двоичными полями длиной 1, 2 или 4 бита. Дешифрирование значений пикселов производится аналогично текстовым режимам в два этапа. [16]
![]() |
Значения масштабных коэффициентов. [17] |
Значения пикселов в видеобуфере определяют, как выглядят пикселы на экране. Способ дешифрирования значений пикселов в графических режимах аналогичен способу дешифрирования атрибутов символов в текстовых режимах. Однако в графических режимах зна чения пикселов представляются 1 - 8 битами, а атрибуты символов всегда описываются 4 битами. [18]
В адаптере MCGA воспринимаются только значения ВН 07h и BL - 12h, а все остальные игнорируются. После этого бит 3 всех 4-битных значений пикселов или символьных атрибутов при обращении к регистрам цвета ЦАП считается неопределенным. В результате обеспечивается доступ только к первым восьми регистрам цвета ЦАП. Такой прием удобен при индикации в текстовых режимах двух полных ( по 256) символьных наборов. [19]
В процессе сравнения участвует также регистр безразличного цвета ( номер 07Ю, в котором задействованы только четыре младших бита. Они объединяются по И со значениями пикселов и содержимым регистра сравнения цвета. Следовательно, когда бит в регистре безразличного цвета находится в состоянии, 0, соответствующая двоичная плоскость ( регистр-защелка) исключается из процесса сравнения и в данном разряде обеспечивается постоянное равенство независимо от состояний бит в регистре-защелке и регистре сравнения цвета. Если же бит в регистре безразличного цвета содержит 1, он не влияет на результат сравнения. [20]
Чтобы избежать возникновения проблем, связанных с обра боткой стыков зон, обрабатываемых двумя различными процес сорами, необходимо предусмотреть возможность осмотра каждым процессором части зоны, обрабатываемой соседним процессором, однако процессоры не должны производить какие бы то ни было изменения в чужих зонах. Следовательно, алгоритм должен иметь возможность изменять значение текущего обрабатываемого пик села, но не значения соседних пикселов. Это требование суще ственно для всех параллельных алгоритмов, следует избегать си туации, когда два или более процессоров пытаются вводить ин формацию в одну и ту же ячейку памяти. Статус текущего пик села может, однако, меняться в зависимости от типа алгорит ма) Для того чтобы ограничить объем обмена между процессора ми, можно также ввести условие, предусматривающее осмотр про цессором только пикселов, расположенных вокруг текущего. [21]
В данном режиме, имеющемся только в адаптере VGA, пикселы модифицируются с помощью объединения значений пикселов из регистров-защелок со значением в регистре установки / сброса. По-прежнему регистр сдвига данных / выбора функции определяет логическую операцию, которая используется для объединения значений пикселов. [22]
Имеется еще одна интересная особенность рассматриваемой функции. Во всех графических режимах ( кроме 256-цветного режима 320x200) при установке в единицу старшего бита регистра BL значения пикселов переднего плана записываемого символа объединяются по исключающему ИЛИ ( операция XOR) с текущим содержимым видеобуфера в соответствующей символьной позиции. Поскольку повторное выполнение опепяиии XOR восстанавливает прежнее состояние пикселов, ее можно использовать для вывода символов и их последующего стирания. Аналогичная возможность предусмотрена также в процедурах функций ОАп и ОСЬ. [23]
![]() |
Пример дуги, являющейся одновременно частью внешнего контура и частью контура отверстия ( а, порядок просмотра вложенных областей ( б.| Порядок просмотра внутренней части области. [24] |
Алгоритм 7.2 является эффективным, поскольку элементы изображения, не входящие ни в один из контуров, должны просматриваться лишь однократно, а элементы, принадлежащие одному из контуров, - лишь дважды. Так как нет необходимости помечать пикселы значениями, превышающими 3, алгоритм можно видоизменить таким образом, чтобы исключить приращение значений пикселов, после того как оно становится равным трем. В этом случае для хранения одного пиксела достаточно затрачивать два бита. [25]
![]() |
Пример контура, правильное заполнение которого с помощью алгоритма S3 невозможно. [26] |
В этом случае верхняя вершина характеризуется порядками ( 0 2), в то время как соответствующий интервал содержит четыре дуги границы. Отметим, что единственный способ правильно заполнить такой контур с помощью алгоритма заполнения области по критерию четности на основе анализа значений пикселов состоит в более чем однократном обходе контура. Правильное заполнение произвольной области R достижимо при условии, что ее контур рассматривается как область и его обход осуществляется с целью отыскания нового контура, в процессе которого пикселы снабжаются метками, указывающими их кратность ( см. разд. [27]
Для этого в регистр сравнения цвета загружается это значение, а в регистр безразличного цвета - значение XFh. После производства считывания по конкретному адресу в регистр процессора возвращается байт, который содержит единицы в тех битах ( пикселах), где значения пикселов равны отыскиваемому значению. [28]
Можно подразделить пути на 4 -, 8 -, т-мерные в зависимости от типа используемого примыкания. Когда имеют дело с m - связностью, величина расстояния ( длина пути) между двумя пикселами зависит не только от координат, но и от значений пикселов вдоль пути, а также от их соседей. [29]
В адаптерах CGA и MCGA программа может обращаться к пикселам, осуществляя прямое считывание или запись байта в видеобуфер. Однако в естественных графических режимах адаптеров EGA и VGA, когда видеобуфер организован в виде двоичных плоскостей, прямой доступ в видеобуфер невозможен. Доступом к значениям пикселов, хранящимся в двоичных плоскостях, управляют специальные схемы, входящие в состав адаптеров. [30]