устройство отображения графической информации
Классы МПК: | G09G1/16 в которых изображение в прямоугольной системе координат занимает всю площадь экрана, например телевизионный растр |
Автор(ы): | Топунов А.И., Птаховский И.Г. |
Патентообладатель(и): | Акционерное общество открытого типа "Счетное машиностроение" |
Приоритеты: |
подача заявки:
1996-01-16 публикация патента:
20.04.1998 |
Устройство отображения графической информации относится к вычислительной технике и автоматике. Его использование в системах отображения графической информации позволяет повысить быстродействие. Устройство содержит графический процессор 1, блок 2 запоминания видеоинформации, блок 3 отображения и блок 5 запоминания признаков переключения. Технический результат достигается благодаря введению блока 4 обработки границ и блока 6 заполнения карты. Блок 4 обработки границ состоит из формирователя 7 кода переключения заполнения, формирователя 8 признака самопересечения и "слипания" границ и формирователя 9 признака монотонности границ. Блок 6 заполнения карты состоит из формирователя 10 цвета заполнения, регистра-аккумулятора 11 и формирователя 12 признака абсолютных границ. 2 з.п.ф-лы, 13 ил.
Рисунок 1, Рисунок 2, Рисунок 3, Рисунок 4, Рисунок 5, Рисунок 6, Рисунок 7, Рисунок 8, Рисунок 9, Рисунок 10, Рисунок 11, Рисунок 12, Рисунок 13
Формула изобретения
1. Устройство отображения графической информации, содержащее графический процессор, блок запоминания видеоинформации, блок запоминания признаков переключения и блок отображения, причем первый выход графического процессора соединен с входом блока запоминания видеоинформации, выход которого соединен с входом блока отображения, отличающееся тем, что оно содержит блок обработки границ карты и блок заполнения карты, причем первый и второй входы блока обработки границ карты соединены соответственно с первым и вторым выходами графического процессора, первый вход/выход соединен двунаправленной шиной с первым входом/выходом блока запоминания видеоинформации, а второй вход/выход соединен двунаправленной линией связи с первым входом/выходом блока запоминания признаков переключения, вход которого соединен с первым выходом графического процессора, а второй вход/выход блока запоминания признаков переключения соединен двунаправленной шиной с первым входом/выходом блока заполнения карты, вход которого соединен с вторым выходом графического процессора, а второй вход/выход блока заполнения карты соединен двунаправленной шиной с вторым входом/выходом блока запоминания видеоинформации. 2. Устройство по п.1, отличающееся тем, что блок обработки границ карты содержит формирователь кода переключения заполнения, формирователь признака самопересечения и "слипания" границ, формирователь признака монотонности границ, причем первый и второй входы/выходы формирователя кода переключения заполнения соединены соответственно с первым и вторым входами/выходами блока, первый и второй входы соединены соответственно с выходами формирователя признака самопересечения и "слипания" границ и формирователя признака монотонности границ, а третий вход соединен с вторым входом блока и первым входом формирователя признака самопересечения и "слипания" границ, второй вход которого соединен с первым входом/выходом блока, первый вход которого соединен с входом формирователя признака монотонности границ. 3. Устройство по п.1, отличающееся тем, что блок заполнения карты содержит формирователь цвета заполнения, формирователь признака абсолютных границ и регистр-аккумулятор, причем первый и второй входы/выходы формирователя цвета заполнения соединены соответственно с первым и вторым входами/выходами блока, первый вход соединен с входом блока, второй и третий входы соединены соответственно с выходами регистра-аккумулятора и формирователя признака абсолютных границ, вход которого соединен с выходом регистра-аккумулятора, вход которого соединен с выходом формирователя цвета заполнения.Описание изобретения к патенту
Изобретение относится к вычислительной технике и автоматике и предназначено для использования в системах отображения графической информации. При решении различных задач в ряде применений таких систем возникает необходимость обработки:- больших объемов визуальной информации, состоящей из перекрывающихся областей и заданных в виде карт изолиний (автоматизация научных исследований);
- сложных изображений, характеризующихся сохранением взаимосвязей их элементов, модифицируемых во времени (компьютерная мультипликация);
- "истинно-печатных" (True Type) шрифтов, заданных периметрами (издательские системы);
- графических данных, представленных в виде цепочно-узловых структур (картография);
- сети многоугольников, апроксимирующих поверхности (автоматизация проектирования). Для формирования подобных изображений в современных графических дисплейных системах данные представляются как наборы закрашенных областей (областей заполнения) (см. фиг. 1a). При этом должно быть обеспечено выделение отдельных областей (области ABC, ACD на фиг. 1b) с замкнутыми (односвязными или многосвязными) контурами. Общие сегменты границ двух смежных областей должны быть заданы дважды (как элементы периметров каждой из областей) и могут иметь противоположное направление (в рамках каждого из периметров). На фиг. 1b дважды задается сегмент границы AC, причем этот сегмент в рамках области ABC в общем случае может иметь противоположное направление по отношению к сегменту CA в рамках области ACD. Кроме того, в большинстве современных устройств отображения графической информации требуются дополнительные преобразования исходных данных, связанные с сортировкой границ и вычислением начальных и конечных точек отрезков, принадлежащих закрашиваемым областям, с последующей их прорисовкой. Поэтому отображение областей заполнения является трудоемкой операцией. Для повышения производительности графических систем при выполнении операций закраски (заполнения) областей используются аппаратно реализованные акселераторы закраски. Известны устройства отображения графической информации, в акселераторах закраски которых применяются флатовые алгоритмы. Эти алгоритмы основаны на использовании принципа сканирования и не требуют преобразования исходных данных, связанных с сортировкой границ и вычислением начальных и конечных точек отрезков, принадлежащих закрашиваемым областям, а также допускают параллельную обработку группы точек при выполнении процедуры заполнения, что позволяет повысить производительность графической системы при выполнении операций закраски (см. пат. европейский N 0145821 кл. G 09 G 1/16 от 22.12.83 г., пат. США N 4626838, кл. G 09 G 1/00, кл. 340-744 от 2.12.86 г., пат. США N 5040130, кл. G 06 F 15/62, кл. 364-521 от 13.08.91 г.). Однако в указанных устройствах также требуется выделение отдельных областей с замкнутыми (односвязными или многосвязными) контурами, а общие сегменты границ двух смежных областей должны быть также заданы дважды как элементы периметров каждой из областей. Из-за неоднозначности выполнения процедуры интерполяции и правил установки флагов в зависимости от ориентации этих сегментов в таких устройствах могут возникать погрешности отображения в виде "просвечивания" фоновых точек, а при выделении границ - их утолщение на некоторых участках. Фиг. 1c и 1d иллюстрируют возможные различия растровых представлений сегмента границы AC в зависимости от направления интерполяции. На фиг. 1e показано "просвечивание" фоновых точек на стыке двух смежных областей после их закраски, а на фиг. 1f - утолщение границ при их выделении. Формирование изображения в этих устройствах осуществляется последовательно область за областью. Закраска каждой области производится путем сканирования прямоугольника, охватывающего область. Время, необходимое для закраски области, однозначно связано с площадью прямоугольника сканирования. При этом суммарная площадь всех охватывающих прямоугольников как правило тем больше, чем сложнее формируемое изображение, поэтому время закраски конечного изображения зависит от его сложности. Например, для изображения, представленного на фиг. 1a, суммарная площадь прямоугольников, охватывающих каждую треугольную область, в два раза больше площади прямоугольника, охватывающего все изображение. Кроме этого, в таких устройствах требуется многократное перекрашивание одних и тех же участков областей при их наложении, даже в тех случаях, когда границы областей не пересекаются (карты изолиний). Например, изображение, представленное на фиг. 1g, является результатом последовательного отображения областей A, B и C. При этом точки, принадлежащие области B, будут перекрашены дважды (в рамках области A и области B), а точки, принадлежащие области C, - трижды (в рамках областей A, B и C). Изобретение позволяет устранить перечисленные недостатки. В нем на аппаратном уровне обеспечивается возможность использования нового представления графических данных, задающих изображение как единое целое в виде топологической карты - "карты заполнения". (А.И.Топунов. Карты заполнения. Журнал "Интерфейс" N 1, 1991 г.), "Карта заполнения" является дополнением к традиционным способам представления графических данных и обобщением известного графического примитива - область заполнения. Графический примитив "карта заполнения" задается сетью абсолютных (между областями и фоном) и относительных (между смежными областями) границ. При этом каждая из относительных границ задается один раз, а не дважды, как часть периметров каждой из смежных областей в традиционных способах представления графических данных. В качестве границ карты можно использовать любые линейные примитивы (отрезки прямых, дуги кривых, сплайны и т. д.), которые могут быть заданы в любом порядке и с любой ориентацией. Использование относительных границ позволяет исключить многократное перекрашивание одних и тех же точек при наложении нескольких областей, а однократная интерполяция границ, разделяющих смежные области, позволяет повысить не только скорость, но и точность формирования изображения за счет устранения погрешностей в виде "просвечивания" фоновых точек и утолщения участков границ при их выделении. Наиболее близким к предлагаемому изобретению является устройство, содержащее графический процессор (блок генерации линейных сегментов), блок запоминания видеоинформации (память регенерации), блок отображения (средства отображения), блок генерации начальных и конечных точек заполнения, блок заполнения, блок запоминания признаков переключения (память начальных и конечных точек заполнения) и память контура, причем первый и второй выходы графического процессора соединены с первым и вторым входами блока запоминания видеоинформации, выход которого соединен с входом блока отображения, второй выход графического процессора соединен также с входами памяти контура и блока генерации начальных и конечных точек заполнения, выход которого соединен со входом блока запоминания признаков переключения, выход которого соединен с первым входом блока заполнения, второй вход которого соединен с выходом памяти контура, первый выход графического процессора соединен с третьим входом блока заполнения, выход которого соединен с третьим входом блока запоминания видеоинформации (см. заявку Японии 57-181311 от 82 г.) Патенты-аналоги заявка 57-181311: пат. США N 4626838, кл. G 09 G 1/00, кл. 340-744 от 2.12.86 г., пат. ФРГ N 3337677 от 1985 г. Цель изобретения - увеличение быстродействия устройства. Цель достигнута тем, что в устройство, содержащее графический процессор, блок запоминания видеоинформации, блок запоминания признаков переключения и блок отображения, причем первый выход графического процессора соединен с входом блока запоминания видеоинформации, выход которого соединен с входом блока отображения, введены блок обработки границ карты и блок заполнения карты, причем первый и второй входы блока обработки границ карты соединены соответственно с первым и вторым выходами графического процессора, первый вход/выход блока соединен двунаправленной шиной с первым входом/выходом блока запоминания видеоинформации, а второй вход/выход соединен двунаправленной линией связи с первым входом/выходом блока запоминания признаков переключения, вход которого соединен с первым выходом графического процессора, а второй вход/выход блока запоминания признаков переключения соединен двунаправленной шиной с первым входом/выходом блока заполнения карты, вход которого соединен со вторым выходом графического процессора, а второй вход/выход блока заполнения карты соединен двунаправленной шиной с вторым входом/выходом блока запоминания видеоинформации. Цель достигнута также тем, что блок обработки границ карты содержит три формирователя: формирователь кода переключения заполнения, формирователь признака самопересечения и "слипания" границ, формирователь признака монотонности границ, причем первый и второй входы/выходы формирователя кода переключения заполнения соединены соответственно с первым и вторым входами/выходами блока, первый и второй входы соединены соответственно с выходами формирователя признака самопересечения и "слипания" границ и формирователя признака монотонности границ, а третий вход соединен с вторым входом блока и первым входом формирователя признака самопересечения и "слипания" границ, второй вход которого соединен с первым входом/выходом блока, первый вход которого соединен с входом формирователя признака монотонности. Цель достигнута также тем, что блок заполнения карты содержит формирователь цвета заполнения, формирователь признака абсолютных границ и регистр-аккумулятор, причем первый и второй входы/ выходы формирователя цвета заполнения соединены соответственно с первым и вторым входами/выходами блока, первый вход соединен с входом блока, второй и третий входы соединены соответственно с выходами регистра-аккумулятора и формирователя признака абсолютных границ, вход которого соединен с выходом регистра-аккумулятора, вход которого соединен с выходом формирователя цвета заполнения. На фиг. 1 даны особенности формирования изображений, состоящих из набора закрашенных областей; на фиг. 2 - структурная схема устройства; на фиг. 3 - блок-схема алгоритма работы формирователя кода переключения цвета заполнения; на фиг. 4 - блок-схема алгоритма работы формирователя признака монотонности; на фиг. 5 - блок-схема алгоритма работы формирователя цвета заполнения; на фиг. 6 - режимы работы устройства; на фиг.7 - варианты отображения "карты заполнения"; на фиг. 8 - растровое представление линий, соответствующих границам карты; на фиг. 9 - состояние блока запоминания видеоинформации при отображении карты без выделения границ; на фиг. 10 - состояние блока запоминания признаков переключения при отображениии карты без выделения границ; на фиг. 11 - состояние блока запоминания видеоинформации при отображении карты с выделением границ; на фиг. 12 - состояние блока запоминания признаков переключения при отображении карты с выделением границ; на фиг. 13 - состояние блока запоминания видеоинформации при отображении карты с выделением границ без заполнения областей. На фиг. и в тексте приняты следующие обозначения: 1 - графический процессор, 2 - блок запоминания видеоинформации, 3 - блок отображения, 4 - блок обработки границ карты, 5 - блок запоминания признаков переключения, 6 - блок заполнения карты, 7 - формирователь кода переключения цвета заполнения, 8 - формирователь признака самопересечения и "слипания" границ, 9 - формирователь признака монотонности границ, 10 - формирователь цвета заполнения, 11 - регистр-аккумулятор цвета, 12 - формирователь признака абсолютных границ, a - двунаправленная шина данных блока обработки границ карты 4, b - двунаправленная линия передачи признака переключения блока обработки границ карты 4, A - двунаправленная шина данных блока заполнения карты 6,
В - двунаправленная шина передачи признаков переключения блока заполнения карты 6, P0 - разряд кода режима, предназначенный для задания режима выделения границу, P1 - разряд кода режима, предназначенный для задания режимов закраски, P2 - разряд кода режима, предназначенный для задания режима оконтуривания (0) или закраски (1), M - код маски, задающий не подлежащие обработке битовые плоскости блока запоминания видеоинформации, CT - код приоритетного цвета границ, CA - код цвета границ, CO - код цвета, считываемый из блока запоминания видеоинформации, RO - бит признака переключения, считываемый из блока запоминания признаков переключения, CO* - код цвета, записываемый в блок запоминания видеоинформации, RO* - бит признака переключения, записываемый в блок запоминания признаков переключения, П - признак монотонности, G - признак абсолютных границ, CP - признак самопересечения и "слипания" границ, AC - код цвета, считываемый из аккумулятора цвета, AC* - код цвета, записываемый в аккумулятор цвета, di, di+1 - значения приращений по координате X (Y) при сканировании по координате Y (X). Первый выход графического процессора 1 (выход адреса и сигналов управления) соединен с первым входом блока запоминания видеоинформации 2 и входом блока запоминания признаков переключения 5. Второй выход графического процессора 1 (выход данных) соединен с входом блока заполнения карты 6. Выход блока запоминания видеоинформации 2 соединен с входом блока отображения 3. Первый и второй входы блока обработки границ карты 4 соединены соответственно с первым и вторым выходами графического процессора 1. Первый вход/выход блока 4 соединен двунаправленной шиной с первым входом/выходом блока запоминания видеоинформации 2. Второй вход/выход блока 4 соединен двунаправленной линией связи с первым входом/выходом блока запоминания признаков переключения 5. Второй вход/выход блока запоминания признаков переключения 5 соединен двунаправленной шиной с первым входом/выходом блока заполнения карты 6. Второй вход/выход блока заполнения карты 6 соединен двунаправленной шиной с вторым входом/выходом блока запоминания видеоинформации 2. Блок обработки границ карты 4 содержит три формирователя 7, 8 и 9. Первый и второй входы/выходы формирователя 7 соединены соответственно с первым и вторым входами/выходами блока обработки границ карты 4. Первый вход блока 4 соединен с входом формирователя 9. Выход формирователя 9 соединен со вторым входом формирователя 7. Первый вход формирователя 7 соединен с выходом формирователя 8. Третий вход формирователя 7 соединен соответственно со вторым входом блока 4 и первым входом формирователя 8. Второй вход формирователя 8 соединен с первым входом/выходом блока 4. Блок заполнения карты 6 содержит два формирователя 10 и 12 и регистр 11. Первый и второй входы/выходы формирователя 10 соединены соответственно с первым и вторым входами/выходами блока заполнения карты 6. Первый вход формирователя 10 соединен с входом блока заполнения 6. Второй и третий входы формирователя 10 соединены соответственно с выходами регистра-аккумулятора 11 и формирователя 12. Вход формирователя 12 соединен с выходом регистра-аккумулятора 11, а вход регистра-аккумулятора 11 соединен с выходом формирователя 10. Формирователь кода переключения цвета заполнения 7 выполнен в виде логического блока (см. фиг. 3). Формирователь признака самопересечения и "слипания" границ 8 выполнен в виде блока сравнения. Формирователь признака монотонности границ 9 выполнен в виде логического блока (см. фиг. 4). Формирователь цвета заполнения 10 выполнен в виде логического блока (см. фиг. 5). Формирователь признака абсолютных границ 12 выполнен в виде блока сравнения с нулевым кодом. На блок-схемах, представленных на фиг. 3 и 5, показана последовательность обработки данных в битовых плоскостях, соответствующих нулевому значению битов позиционного кода маски. Битовые плоскости, соответствующие единичному значению битов кода маски, остаются неизменными. Устройство работает следующим образом. Обработка графических данных может выполняться графическим процессором как с активизацией, так и без активизации режима отображения "карты заполнения". При работе без активизации режима отображения "карты заполнения" (в "прозрачном" режиме, см. таблицу на фиг. 6) обработка графических данных, соответствующих линиям, дугам, областям заполнения и т. д., а также формирование изображения выполняются непосредственно графическим процессором. В этом случае данные в блок запоминания видеоинформации 2 передаются из графического процессора 1 через блок обработки границ карты 4. Активизация режима отображения "карты заполнения" осуществляется загрузкой ненулевого трехразрядного кода режима в блок обработки границ карты 4 и блок заполнения карты 6. Устройство оперирует со следующими компонентами результирующего изображения: фон, сеть границ и области карты. При этом отображение карты может выполняться как со стиранием, так и без стирания фона, с выделением или без выделения границ, с заполнением (закраской) или без заполнения областей. Вид отображения карты определяется кодами режима, передаваемыми из графического процессора перед выполнением процедур оконтуривания и закраски. Разряды кода режима имеют следующее назначение:
P - признак вида выполняемой процедуры (0 - оконтуривание, 1 -закраска);
P1 - признак заполнения для процедуры оконтуривания (0 - нет заполнения, 1 - есть заполнение) или признак стирания фона для процедуры закраски (0 - нет стирания, 1 - есть стирание);
P0 - признак выделения границ (0 - нет выделения, 1 - есть выделение). Формирование карты осуществляется путем последовательного выполнения процедур оконтуривания и закраски. Для выполнения этих процедур графический процессор передает в блок обработки границ карты 4 и блок заполнения карты 6,кроме кода режима, значения следующих параметров: позиционного кода маски, код приоритетного цвета, в блок обработки границ карты 4 передаются также код цвета абсолютной или относительной границы. Позиционный код маски задает не подлежащие обработке битовые плоскости блока запоминания видеоинформации 2. Код маски остается неизменным при выполнении процедур оконтуривания и закраски для каждой карты. Код приоритетного цвета зависит от режима отображения границ "карты заполнения" (с выделением или без выделения). В случае выделения границ он соответствует коду цвета выделения и остается неизменным при выполнении процедур оконтуривания и закраски для каждой карты. В режиме отображения без выделения границ для каждой границы он равен коду цвета области, отделяемой абсолютной границей, или коду цвета одной из двух смежных областей, выбираемой пользователем в качестве приоритетной, для относительной границы. Код цвета абсолютной границы равен коду цвета закрашиваемой области, а код цвета относительной границы равен поразрядной сумме по модулю два кодов цвета смежных закрашиваемых областей. Их значения не зависят от режима выделения границ. В блоке запоминания признаков переключения 5 запоминаются одноразрядные признаки изменения цвета на границах карты, служащие для идентификации точек пересечения сети границ со сканирующими линиями. Этот блок имеет такое же адресное пространство, как и блок запоминания видеоинформации 2. Каждый его разряд однозначно связан с многоразрядным пикселем, записанным в блоке запоминания видеоинформации 2 и имеющим такой же адрес. Единичное значение разряда соответствует наличию признака, а нулевое - отсутствию. При выполнении процедуры оконтуривания активизируется блок обработки границ карты 4. Формирователь признака самопересечения и "слипания" границ 8 определяет совпадение цветового кода границы, поступающего из графического процессора 1, и кода, считываемого из блока запоминания видеоинформации 2, обеспечивая выявление точек самопересечения и "слипания" границ. Единичное значение признака соответствует точкам самопересечения и "слипания" границ. Формирователь признака монотонности границ 9 при выполнении процедуры оконтуривания, используя приращения координат, получаемые из графического процессора 1 во время интерполяции, и выбранное для закраски направление линий сканирования, вычисляет признак монотонности и устанавливает его равным нулю для точек перегибов и экстремумов или единице - для остальных точек границ. Единичное значение признака монотонности соответствует точкам пересечения границ с линиями сканирования. Формирователь кода переключения цвета заполнения 7 в соответствии с заданным режимом преобразует данные, получаемые из блока запоминания видеоинформации 2, графического процессора 1, блока запоминания признаков переключения 5, формирователя признака самопересечения и "слипания" границ 8 и формирователя признака монотонности границ 9, в цветовые коды и признаки переключения, необходимые для формирования границ "карты заполнения". При выполнении процедуры закраски активизируется блок заполнения карты 6. В регистр-аккумулятор цвета 11 перед началом выполнения процедуры закраски записывается нулевой код. Содержимое этого регистра модифицируется в процессе выполнения процедуры закраски в точках пересечения сети границ со сканирующими линиями. Формирователь признака абсолютных границ 12 на основе сравнения содержимого регистра-аккумулятора цвета 11 с нулем идентифицирует абсолютную границу. Формирователь цвета заполнения 10 в соответствии с заданным режимом преобразует данные, получаемые из блока запоминания видеоинформации 2, графического процессора 1, регистра-аккумулятора цвета 11, блока запоминания признаков переключения 5, формирователя признака абсолютных границ 12, в цветовые коды, необходимые для формирования "карты заполнения" и устанавливает нулевые коды для записи в блок запоминания признаков переключения 5. Формирование "карты заполнения" выполняется по следующему алгоритму. При выполнении процедуры оконтуривания начальные (X0,Y0) и конечные (Xn, Yn) координаты элементов сети границ загружаются в интерполятор графического процессора 1. Интерполятор на основе этих данных формирует текущие адреса блока запоминания видеоинформации 2, соответствующие координатам интерполяции Xi, Yi (i=0...n, где n - число шагов интерполяции) и текущие приращения dxi+1, dyi+1 по каждой из координат, используемые им для вычисления координат Xi+1, Yi+1следующей точки. Перед началом интерполяции графический процессор 1 устанавливает приращения dx0 и dy0 равными нулю. Затем для каждой точки интерполируемой границы графический процессор 1 передает значения dxi+1, dyi+1 в формирователь признака монотонности границ 9. Для последней интерполируемой точки графический процессор 1 устанавливает значения текущих приращений dxn+1, dyn+1 равными нулю. Формирователь признака монотонности границ 9 использует приращение (diи di+1) по одной из осей координат (по оси координат Y, если сканирование при закраске производится по оси X, или X для сканирования по оси Y), вычисляя признак монотонности П по следующей формуле:
П = (((di+1 < 0) or (di+1 = 0)) and (di < 0)) or ((di+1 > 0) and ((Di > 0) or (di = 0)))
Для передачи значения приращения используются два разряда, один из которых знаковый. Если интерполяция для всех границ "карты заполнения" выполняется без изменения знака приращения по оси координат, ортогональной оси сканирования, признак монотонности П может быть получен путем проверки на равенство нулю только приращения di. Значение di без учета знака соответствует изменению младшего разряда координаты текущей точки интерполяции по отношению к предыдущей. В этом случае из интерполятора вместо значения приращения со знаком в формирователь признака монотонности границ 9 достаточно передавать значение младшего разряда соответствующей координаты текущей точки интерполяции. На входе знакового разряда должна быть установлена константа, а перед началом интерполяции младший разряд текущей координаты должен быть установлен в формирователе признака монотонности границ 9 равным младшему разряду одной из координат Y0 или X0 в зависимости от направления сканирования при закраске (X или Y). Для каждой интерполируемой точки графический процессор 1 формирует цикл чтение-модификация-запись по текущему адресу блока запоминания видеоинформации 2. Цикл чтение-модификация-запись распространяется как на блок запоминания видеоинформации 2, так и на блок запоминания признаков переключения 5. При этом чтение и запись производятся по одному и тому же текущему адресу. Данные для записи вычисляются формирователем кода переключения цвета заполнения 7 на основе данных, считанных из блока запоминания видеоинформации 2 (CO), блока запоминания признаков переключения 5 (RO), значения признака монотонности (П), выходного сигнала формирователя признака самопересечения и "слипания" границ 8 (Cp) и передаваемых из графического процессора 1 кода цвета границы (CA), управляющих битов режима (P2,P1,P0), кода приоритетного цвета (CT), позиционного кода маски (M) по следующим формулам:
для j = 1...m, где m = число битовых плоскостей блока запоминания видеоинформации;
После завершения каждого цикла записи значение приращения (или значение младшего разряда текущей координаты) запоминается формирователем признака монотонности границ 9 и используется им для формирования признака монотонности в следующем цикле чтение-модификация-запись. Процедура оконтуривания завершается после выполнения обработки по этому алгоритму всех границ "карты заполнения". Перед началом выполнения процедуры закраски в регистре-аккумуляторе цвета 11 устанавливается нулевое значение. Процедура закраски активизируется передачей из графического процессора 1 кода режима с единичным значением разряда P2. Формирователь признака абсолютных границ 12 используется только в режимах закраски с наложением карты на фон. Признак абсолютных границ (G) равен нулю, когда содержимое регистра-аккумулятора цвета 11 равно нулю, а в остальных случаях - единице. При нулевом значении признака абсолютных границ формирователь цвета заполнения 10 осуществляет блокировку записи содержимого регистра-аккумулятора цвета 11 в блок запоминания видеоинформации 2. При выполнении процедуры закраски графический процессор 1 формирует циклы чтение-модификация-запись для каждой точки прямоугольника, охватывающего "карту заполнения". Перебор точек прямоугольника осуществляется графическим процессором 1 в соответствии с ориентацией сканирующих линий. Так как обработка информации по каждой из сканирующих линий не зависит от обработки других сканирующих линий, алгоритм процедуры закраски допускает распараллеливание вплоть до одновременной обработки по всем сканирующим линиям прямоугольника, охватывающего "карту заполнения". Если в устройстве предусмотрено распараллеливание, то шины данных A и B (см. фиг. 2) должны обеспечивать передачу, а блок заполнения карты 6 обработку информации одновременно по нескольким точкам, количество которых определяется степенью распараллеливания. Если распараллеливание не предусмотрено, то шины данных A и B могут быть совмещены с шинами данных a и b соответственно. Цикл чтение-модификация-запись распространяется как на блок запоминания видеоинформации 2, так и на блок запоминания признаков переключения 5. При этом чтение и запись производятся по одному и тому же текущему адресу. Данные для записи вычисляются формирователем цвета заполнения 10 на основе данных, считанных из блока запоминания видеоинформации 2 (CO), блока запоминания признаков переключения 5 (RO), содержимого регистра-аккумулятора цвета 11 (AC), выходного сигнала формирователя признака абсолютной границы 12 (G) и получаемых из графического процессора 1 управляющих битов режима (P2,P1,P0), регистра приоритетного цвета (CT) и позиционного кода маски (M) по следующим формулам:
Содержимое регистра-аккумулятора цвета 11 (AC) соответствует кодам цвета закрашиваемых областей и модифицируется на границах "карты заполнения" следующим образом:
В формулах (4), (5) и (6) значение j меняется от 1 до m, а k от 1 до n (где m - число битовых плоскостей блока запоминания видеоинформации 2, а n - число точек, обрабатываемых параллельно). Процедура закраски завершается после выполнения обработки всех точек прямоугольника охватывающего "карту заполнения". Пример работы устройства. Принцип работы устройства показан на примере отображения карты, состоящей из трех областей (см. фиг. 7a). В описании примера не рассматривается маскирование и принято следующее соответствие используемых на иллюстрациях цветов и индексов цвета: белый цвет - 0, светлосерый - 1, серый - 2, темносерый - 3, черный - 4. В зависимости от кода режима возможны шесть типов отображения:
- наложение карты на фон с закраской областей без выделения границ (фиг. 7c);
- наложение карты на фон с закраской областей с выделением границ (фиг. 7d);
- наложение карты на фон без закраски областей с выделением границ (фиг. 7e);
- отображение карты со стиранием фона с закраской областей без выделения границ (фиг. 7f);
- отображение карты со стиранием фона с закраской областей с выделением границ (фиг. 7g);
- отображение карты со стиранием фона без закраски областей с выделением границ (фиг. 7h). В качестве фонового изображения в примере будет рассматриваться изображение, представленное на фиг. 7b. На фиг. 8 дано растровое представление границ карты, полученное в результате их интерполяции. На фиг. 9 и 10 представлена последовательность формирования карты в режиме без выделения границ. Фрагменты a, b, c, d, e и f фиг. 9 и 10 иллюстрируют состояние блока запоминания видеоинформации (фиг. 9) и блока запоминания признаков переключения (фиг. 10) после выполнения процедуры оконтуривания для абсолютных границ AB, BC, CA и относительных границ AD, BD и CD соответственно. При формировании абсолютных границ код цвета и код приоритетного цвета соответствуют значениям индекса цвета 1 (для границы AB), 2 (для границы BC), 3 (для границы CA). При формировании относительных границ код цвета соответствует значению поразрядной суммы по модулю два индексов цвета смежных областей, соответственно, 2 (для границы AD), 3 (для границы BD), 1 (для границы CD), а код приоритетного цвета - значению индекса цвета приоритетной области 1 (для границы AD), 2 (для границы BD), 1 (для границы CD). Фрагменты g и h фиг. 9 и 10 иллюстрируют состояние блока запоминания видеоинформации и блока запоминания признаков переключения после выполнения процедуры закраски без стирания (фрагмент g) и со стиранием (фрагмент h). Перед выполнением процедуры закраски в регистре-аккумуляторе цвета устанавливается нулевой код. Значение кода приоритетного цвета произвольно. Фиг. 11 и 12 иллюстрируют отображение карты с выделением границ. В отличие от режима без выделения значение кода приоритетного цвета соответствует индексу цвета выделения 4, который остается неизменным при оконтуривании и закраске. На фиг. 13 представлено состояние блока запоминания видеоинформации при отображении карты в режиме выделения границ без заполнения областей. В отличие от предыдущего случая при выполнении процедуры оконтуривания в блок запоминания видеоинформации записываются нулевые коды независимо от значений кода цвета границ. Состояние блока запоминания признаков переключения для этого режима соответствует режиму отображения карты с выделением границ (см. фиг.12). Использование представления графической информации с помощью "карт заполнения" позволяет повысить быстродействие за счет:
- исключения преобразований исходных данных, связанных с выделением отдельных областей;
- сокращения объема входных данных при задании границ, разделяющих смежные области;
- однократной интерполяции границ, разделяющих смежные области;
- исключения многократного перекрашивания одних и тех же точек при наложении нескольких областей. При этом время выполнения процедуры закраски (заполнения) не зависит от сложности изображения и совпадает с временем закраски прямоугольника, охватывающего карту. Изобретение было реализовано на элементах средней степени интеграции в графическом адаптере, предназначенном для работы в составе ПЭВМ типа IBM PC, который имеет следующие технические характеристики:
- количество адресуемых точек растра - 1024768,
- количество битовых плоскостей блока запоминания видеоинформации (разрядов в пикселе) - 8,
- время выполнения операции закраски, независимо от сложности отображаемой карты не превышает 0,1 с. Изобретение может быть реализовано непосредственно в микросхемах блока запоминания видеоинформации, в которых процедуру заполнения целесообразно совместить с процессом регенерации изображения, что позволит полностью исключить временные затраты, необходимые на выполнение операций закраски.
Класс G09G1/16 в которых изображение в прямоугольной системе координат занимает всю площадь экрана, например телевизионный растр