УДК 004.96
РАСТЕРИЗАЦИЯ ТОЧЕЧНЫХ ГРАФИЧЕСКИХ ОБЪЕКТОВ НА ОСНОВЕ ПРОДУКЦИОННОЙ АЛГОРИТМИЧЕСКОЙ СХЕМЫ
©2012 Л. Б. Белов1, В. М. Довгаль2, В. В. Гордиенко3
1 генеральный директор e-mail: bell@ yandex.ru
ООО «Конус-Медик», г Курск
2докт. техн. наук, профессор каф. программного обеспечения и администрирования информационных систем e-mail: [email protected] 3канд. техн. наук, ст. науч. сотрудник МНМЦВИТ e-mail: [email protected]
Курский государственный университет
В статье рассмотрен подход для осуществления растеризации изображений документов в подсистемах хранения, создания и управления обменом документами в системах управления организациями с разной структурой. Создан продукционный алгоритм для растеризации, имеющий высокие показатели обработки файлов изображений документов и осуществлено его преобразование в параллельно-конвейерную форму реализации.
Ключевые слова: документ, управление, электронная форма, растеризация, продукция, алгоритм, параллельный, конвейерный.
В последнее время внимание в области управления в социально-экономических системах привлекают подсистемы управления потоками документов в организациях с различными типами структур. Основное внимание уделяется вопросам применения информационных технологий для документооборота в специфических условиях тех или иных организационных структур. Потоки электронных документов в организациях являются средством институциального и нормативно-распорядительного воздействия на социально-экономические подсистемы (дивизионы) и осуществления обратной связи. Особенностями потоков документов в организациях в сферах образования, государственного управления, здравоохранения является их непредсказуемый «пульсирующий» характер, тематическая разнородность электронных документов (в основном по классам организационно-распорядительного, финансово-экономического и кадрово-должностного характера), быстрые изменения приоритетов, существенные различия в трудоемкости подготовки документов. Эти особые обстоятельства порождают высокий уровень сложности задач и алгоритмов создания и хранения документов с применением компьютерных технологий и управления обменом документами. Доминирующее положение в этом классе занимает проблема создания новых методов, алгоритмов и инструментальных средств оперативного решения задач автоматизированного создания, хранения и управления потоками и структурнофункциональной организации системы управления документами. Особенно остро названные проблемы выступают в области здравоохранения с его спецификой документов в типовых лечебных учреждениях.
Любой документ в электронных формах представления или на твердых носителях представляет собой, казалось бы, векторный объект. Просмотр документа на мониторах или после распечатки создав иллюзию работы с векторным объектом, но экранная форма - это пиксельная сетка (решетка), то есть это каноническая пиксельная графика. На основе пиксельной графики функционируют также принтеры, фотонаборные автоматы, плоттеры и устройства цифровой офсетной печати и другие. Вполне очевидно, что векторная графика в любом случае замыкается на соответствующее пиксельное устройство.
Процесс непрерывного преобразования векторных изображений документов для получения форм представления, пригодных для пиксельных устройств, называется «растеризацией». Это скрытый процесс, но он всегда необходим на выходе в любом векторном или текстовом редакторе. Следует подчеркнуть, что пользователь не может управлять недоступной программной процедурой растеризации, встроенной в программный продукт графического редактора, что существенно снижает возможности редактирования.
Растеризация как процесс аппроксимации графических объектов на правильной решетке пикселей является актуальным научным направлением. В отличие от широко известных алгоритмов растеризации (Брезенхема, ЦДА и т.д.) [Довгаль 1998], предлагается унифицированный продукционный алгоритм растеризации, что является целью данной публикации.
Продукционные алгоритмы создавались нами для эффективной по времени обработки символьной информации [Довгаль 1996; Боу§а1 2008]. Впервые нами были созданы продукционные алгоритмы [Довгаль 1998], но их существенным недостатком является то, что их нужно отдельно создавать для разных графических конструктивов, например окружности отрезка и других. Ниже приводятся сущность предлагаемого подхода к созданию продукционных алгоритмов растеризации, продукционный алгоритм и его параллельно-конвейерная форма реализации, обеспечивающая высокую скорость создания экранных форм документов.
Введем форматы задания символов обрабатываемого слова в виде горизонтальных и вертикальных координат пикселей соответственно
а пары координат своей последовательностью образуют все обрабатываемое слово, # и «а» - символы-разделители.
В приведенном формате символов обрабатываемых слов (1) Gi, Ні+1 -вычисленные значения координат точек исходного графического объекта в двоичной системе счисления; Яг и Яи - конкретные значения старшего разряда дробной части его вычисленных значений координат в двоичной системе счисления, і - номер позиции вычисленной координаты в обрабатываемом слове, представляющем собой линейный конструктивный объект. При этом целая часть значений вычисленных координат соответствует координатам пиксельной решетки экрана.
Формат для задания образцов продукции имеет два типа для горизонтальных и вертикальных координат соответственно будет иметь вид
где Gn и Нт - алфавитные переменные, пробегающие значения целых частей значений координат пикселей на пиксельной решетке.
Разработаем продукционный алгоритм растеризации, исключая процедуру его синтеза, поскольку после приведения к шкале в единицах расстояния между пикселями
#Gi (Я§)аНі+і(Яи),
(1)
#Gn(0) при Яё = 0 или #Gn(1) при Яё = 1; аНт(0) при Яи = 0 или аНт(1) при Яи = 1,
(2)
(3)
Белов Л. Б., Довгаль В. М., Гордиенко В. В. Растеризация точечных графических объектов
на основе продукционной алгоритмической схемы
(например, из дюймовой шкалы) текущая точка, заданная вычисленными координатами, с необходимостью попадет в элемент пиксельной решетки, а соотнесенный с ней ближайший узел решетки однозначно определяется по значению логического параметра или Я = 0, или Я = 1.
#Оп (0) - *Оп , (4а)
#Оп (1) - *О+ (4Ь)
аНт (0) — вНт, (4с)
аНт (1) — вНт+1. (4й),
где значения алфавитных переменных О^1 и Нт+1 формируются путем прибавления единицы к младшему разряду целых частей О" и Нт, * и в - символы-разделители.
Выполним структурный анализ продукционного алгоритма.
Преобразование продукций (4а, 4Ь, 4с, 4ё) к акселерационным формам их реализации [Ооу§а1 2008] лишено практического смысла, поскольку в этом случае в продукциях появляются фрагменты образца в итерационных скобках, которые на заданных форматах слов (1) не могут повторяться. Действительно, рассматривая, например, продукцию (4а), получим ее акселерационную форму с использованием итерационных скобок в виде
{(0)}, 0"{(0)}г - О", (5)
где , и г - счетчики позиций итераций во входном слове. Очевидно, что при заданных форматах представления символов обрабатываемых слов (1) полученная продукция будет логически состоятельной только тогда, когда , и г принимают значение единицы, но для этого случая нет необходимости в изменении синтаксиса записи и семантики работы продукции. Такого рода изменения с необходимостью приводят к существенному усложнению символьных вычислений.
На том же основании не используется синтез вставочной продукции [Ооу§а1 2008], поскольку она будет иметь образец, не соответствующий форматам представления символов в обрабатываемом слове, что приведет к ее безусловному несрабатыванию. Проиллюстрируем это событие на примере. Пары продукций (4а), (4Ь) и (4с), (4ё) являются независимыми и структурно идентичными, поэтому проведем анализ только первой пары (4а) и (4Ь), используемой для обработки горизонтальных координат. Синтезируем вставочную продукцию, вычеркивая совпадающий фрагмент образца продукции (4а) и модификатора продукции (4Ь), и, выполняя соответствующие подстановки в строгом соответствии с алгоритмом синтеза [Боу§а1 2008, Довгаль 1996], получим продукцию (6б):
(0) О" (0) ^ О"; (6а)
(0) О"_(1)_ ^ О"+1 ; (6Ь)
(0)(0) О"б (1)(0) - О"б. (68)
Синтезированная продукция (4б) никогда не сработает, поскольку при заданных форматах элементов обрабатываемых слов в их последовательности нельзя обнаружить ни одного такого фрагмента, который был бы равен фрагменту (0)(0).
Между тем для анализируемых пар продукций (4а, 4Ь) и (4с, 4ё) выполняется условие параллельно-конвейерной реализации [Довгаль 2011], на основании того что их образцы не пересекаются друг с другом и отсутствует пересечение образцов предшествующей и модификатора последующих продукций в их парах. Следовательно,
результирующий продукционный алгоритм будет представлять собой конвейерный блок следующего вида:
г #Gn (0) ^ *Gn г (1) aHm (0) ^ ри“
* (7)
г #Gn(1) ^ *Gn+1 г (1) aHm (1) ^ pHm+1,
где г - обозначение продукций, входящих в параллельный блок; * - символ разделения конвейерных фрагментов продукционного алгоритма, * - символ-
разделитель.
Таким образом, при аппаратной поддержке продукционного алгоритма целесообразно использовать два параллельных ассоциативных процессора, каждый из которых независимо осуществляет горизонтальную и вертикальную аппроксимацию, но включен последовательно в общий конвейерный блок. При конкретизации переменных G и H каждый последовательный компонент конвейера может в свою очередь декомпозироваться на субкомпоненты детализированного конвейера с целью минимизации глубины адресного пространства ассоциативных процессоров.
В результате того что значения координат в продукциях из (7) являются алфавитными переменными, число пар продукций алгоритма в его параллельных блоках при полной форме записи будет равно сумме горизонталей и вертикалей пиксельной решетки. Конкретное число продукций однозначно определяется по формату монитора или принтера, то есть по его разрешающей способности, или размером рабочего фрагмента пиксельной решетки.
По результатам сопоставительного анализа установлено, что к числу преимуществ приведенного продукционного алгоритма следует отнести его высокую скорость работы и точность аппроксимации, но при высоком уровне емкостной сложности по числу байтов программы на языке C++. Уровень емкостной сложности разработанного алгоритма растеризации компенсируется тем, что он может эффективно использоваться для любого графического конструктива, заданного множеством вычисленных координат, а для известных алгоритмов растеризации для каждой отдельной разновидности конструктива требуется построение специфического алгоритма. При большом разнообразии графических объектов суммарная емкостная сложность специфических алгоритмов в два-три раза превышает емкостную сложность разработанного продукционного алгоритма.
Библиографический список
Довгаль В. М. Методы модификации формальных систем обработки символьной информации. Курск: Курск. гос. техн. ун-т, 1996. 115 с.
Довгаль В. М., Керекеша В. В., Титов В. С. Разложение в растр окружности с помощью системы продукционных правил // Информационные технологии моделирования и управления: межвуз. сб. науч. тр. Воронеж: ВГТУ, 1998. С. 133-136.
Довгаль В. М., Титенко Е. А., Корольков О. Ф. Методы и алгоритмы ветвящихся продукционных вычислений в инфокоммуникационных системах. Курск: Юго-
Западный гос. ун-т, 2011. 124 с.
Dovgal V. M. and Sorokin V. E. and Shantsev A. V. Acceleration of algorithmic diagrams and hardware architecture // Telecomunication and radio engineering. 2008. Vol. 12. Р. 34-38.