СПОСОБ ГЕНЕРАЦИИ ПРИМИТИВОВ ИЗОБРАЖЕНИЯ
METHOD OF GENERATION OF IMAGE PRIMITIVES

Изобретение относится к конфигурации вычислительных систем (ВС) и машинной графике (МГ).
Уровень техники
Аналогом предлагаемого способа является любой известный способ, содержащий машинные вычисления координат и визуализацию [1] пикселей, составляющих примитивы вывода и/или сегменты [1} (далее ПС) закодированных изображений [1].
К недостаткам аналогов относятся низкая эффективность вычислений, обусловленная низкой производительностью, а также высоким расходом транзисторов и энергии.
Раскрытие изобретения
Задача, на решение которой направлено изобретение способа, заключается в получении следующих технических результатов (TP):
ТР1. повышение производительности ВС,
ТР2. снижение количества транзисторов,
ТР3. снижение потребления электроэнергии,
ТР4. Повышение эффективности работы ВС.
ТР1-ТР4 основаны на следующих существенных признаках (СП):
СП 1 разделение процесса генерации ПС на этапы вычисления и воспроизведения (визуализации),
СП 2 двоично-цифровое кодирование ПС и сохранение кодов на сигналограммах (СГ) [2], СП 3 применение нелинейной ячейки памяти по патенту №2401467.
«Нелинейная ячейка памяти, содержащая запоминающие элементы произвольного типа, отличающаяся произвольным порядком электрического соединения с линиями шины данных (один ЗЭ с одной линией); а также электрически соединенных с одной линией шины адресов (все ЗЭ ячейки с одной линией); а также произвольным числом и произвольным расположением запоминающих элементов» для декодирования (визуализации) ПС в нелинейный буфер кадра (НБК) с возможностью наращивания количества ячеек в составе НБК.
СП 4 сетевой процесс производства, хранения, распределения и использования видеоинформации на СГ.
Краткое описание чертежей
На фиг. 1 представлена блок-схема алгоритма вычисления, кодирования и записи сигналограммы векторов.
На фиг. 2 представлена функциональная схема генератора векторов.
Осуществление изобретения
Изобретение предназначено для генерации любых ПС: векторов, кривых поверхностей и объемных тел, а также фона. В качестве примера применения предлагаемого способа приводится изложение процесса генерации векторов.
Главной причиной низкой производительности (число выводимых в буфер кадра (БК) векторов и пикселей растрового фона в единицу времени) существующих ВС на задачах МГ является, по мнению заявителя, медленное и неэффективное заполнение БК. Действительно, за один цикл обращения к памяти ВС в состоянии вывести в БК целиком один горизонтальный вектор. Если выводимый вектор не горизонтален, то для пикселей с вертикальным смещением относительно соседнего пикселя (относительная вертикальная координата) ЦП необходимо затрачивать такты на операции вычисления смещения. Имеет место прямая зависимость количества тактов, затрачиваемых на вывод вектора в БК, от угла наклона вектора к горизонтали.
Цель изобретения состоит в том, чтобы предоставить ВС возможность выводить в БК за одно обращение требуемое количество любых векторов, за счет чего возрастает производительность. Для достижения этой цели предлагается разделение процесса генерации ПС на два этапа, используя при этом известные устройства - Нелинейная ячейка памяти по патенту №2401467 в качестве нелинейного буфера кадра и СГ. Разделение процесса генерации означает, что сначала нужно вычислить все координаты пикселей всех необходимых пользователям ПС, закодировать изображения ПС, упаковать и сохранить цифровую запись в СГ один раз, а впоследствии визуализировать ПС (декодировать СГ) столько раз, сколько будет нужно любому числу пользователей путем распространения сигналограмм при помощи периферийных устройств ВС и/или через информационно-вычислительную сеть.
Процесс вычисления и кодирования состоит в следующем. Двоичным вектором назовем последовательность относительных координат его пикселей, выраженных двоичными цифрами. На фиг. 1 показан процесс вычисления и кодирования всех векторов, расположенных в первом октанте, начинающихся в начале системы координат и оканчивающихся на противоположной от начала стороне экрана (после визуализации). Рассматриваются только значимые операторы.
Оператор inc(x) (118), выполняющийся на каждом проходе алгоритма Брезенхема, гарантирует, что координата x в двоичной записи содержит только одну из двоичных цифр - единицу, поэтому x в запоминании в СГ не нуждается. Оператор inc(y) (117), выполняется при условии (116), поэтому координата у зависит от направления вектора, принимает значения 0 и 1 и записывается в СГ. Оператор inc(y) графически означает переход по вертикали (по оси у) от одного пикселя к соседнему пикселю. Аппаратный код этого перехода inc(Stb).
inc(x) графически - это переход от пикселя к соседнему по горизонтали пикселю (по оси х). Аппаратный код перехода inc(Stb, V+1). Возможен вопрос:
Почему не inc(Str+1)? Ответ ниже.
Запись кода вектора - Primitive[Str, Stb]: =1.
переход к следующему вектору - inc(Str).
На втором этапе генерации (фиг. 2) производится декодирование, сущность которого заключается в обратном аппаратном преобразовании двоично-цифрового представления вектора в его геометрическое представление в виде отрезка прямой. Декодирование осуществляется одним аппаратным действием - посылкой единичного сигнала по линиям, отмеченным в СГ единицей. При этом аппаратно Stb - это номер сигнальной линии.
Ответ на вопрос: Потому что у нелинейной ячейки нет горизонтальных сигнальных линий (поэтому ее заполнение и происходит за 1 цикл обращения). Показано декодирование в НБК (203) строки №5 сигналограммы (200) через системную шину (201), командой копирования, подаваемой ЦП (202).
На фиг. 2 показана сигналограмма (200) графическим размером 8×8 пикселей информативным размером 512 бит, в которой построчно записаны сигналы декодирования, обозначенные символом «1». Горизонтальный вектор размещен в 1 строке, диагональный - в строке 8. Номера сигнальных линий - это номера столбцов Stb, а номера векторов, отличающихся друг от друга направлением, - это номера строк Str СГ. Все векторы оставшейся части плоскости и не охваченные СГ (200) генерируются при помощи той же СГ с привлечением программных средств, которые здесь не рассматриваются.
Производительность группы и/или независимых одновременно работающих ВС может быть существенно повышена путем распараллеливания второго этапа генерации ПС по информационно-вычислительной сети; при этом М генераторов (серверов) осуществляют N-канальное воспроизведение [2] информации на N клиентских терминалах. Пиковая производительность такой информационно-вычислительной сети составит, ориентировочно, H*V*M*N пикселей за такт.
Обоснования технических результатов
Заявленные выше технические результаты обосновываются существенными признаками изобретения.
TP 1. Повышение производительности предлагаемой ВС, по сравнению с наиболее производительными в настоящее время графическими процессорами, происходит за счет:
1) исключения операций вычисления координат пикселей на втором этапе генерации вследствие (СП1).
2) повышения разрядности двоичных ПС до значений более 64 бит, вследствие (СП2), а также повышения разрешения НБК путем наращивания числа нелинейных ячеек вследствие (СП3). Сравнивается 1 конвейер с 1 ячейкой НБК как устройства, непосредственно обеспечивающие выход ПС. Пусть 1 конвейер за 1 такт генерирует в буфер кадра 1 пиксель. По предлагаемому способу 1 нелинейная ячейка НБК за 1 такт получает h*v пикселей, составляющих примитивы, сегменты и фон кадра (h*v - разрешение ячейки) вследствие СП3. Значит производительность 1 ячейки при заполнения НБК в h*v раз превышает производительность 1 конвейера конвейера. На фиг. 2 h*v=64.
3) сетевого распараллеливания процесса генерации ПС вследствие (СП4).
TP 2. Уменьшение количества транзисторов происходит, потому что:
1) вычисления ПС производятся один раз, а результаты вычислений ПС на сигналограммах используются многократно, вследствие (СП1), значит при осуществлении предлагаемого изобретения парк ВС разделяется на три группы. Первая группа только производит СГ, вторая группа только использует готовые СГ, а третья группа, то есть существующие ВС, и производит, и использует. Из-за упрощения функциональности первой и второй групп количество транзисторов, необходимое для этих групп ВС, а значит и в целом, сокращается,
2) для того чтобы графический процессор имел производительность заявляемого генератора, он должен иметь в своем составе h*v универсальных кон вейеров, вследствие (СП2), суммарное количество транзисторов в которых составит h*v*n (n - количество транзисторов в одном конвейере), то есть в п раз больше, чем имеет одна нелинейная ячейка памяти, вследствие (СП3).
TP3. Меньшее количество транзисторов, вследствие (СП2, СП3), затрачивает в процессе вычислений меньшее количество энергии на переключения и меньше рассеивает тепло, что повышает эффективность энергопотребления.
TP4. Помимо ТР1, ТР2, ТР3 эффективность предлагаемого способа и устройств для генерации ПС по сравнению с существующими вычислительными технологиями повышается за счет:
1) использования всей площади нелинейной ячейки, позволяющей за два цикла ее заполнения совмещать растровое изображение монохромного или цветного фона с СГ фона и векторное изображение геометрической фигуры с соответствующей СГ. (СП1, СП2, СП3).
2) отсутствия потерь времени при конфликтах конвейеров объясняется отсутствием конвейеров, вследствие (СП2, СП3, СП4),
3) отсутствия необходимости изменять программное обеспечение (ПО) для различных ПС на втором этапе генерации, где вычисления не производятся, вследствие (СП1) и при распараллеливании, вследствие (СП4). (Усложнение ПО при распараллеливании, векторизации, кластеризации и т.п. способов повышения производительности существующих ВС неизбежны.)
4) присутствия эффекта совместного повышения производительности (ТР1), повышения эффективности энергопотребления и (ТР3) понижения количества транзисторов (ТР2).
Существующие способы и системы таким эффектом не обладают.
Библиографический список
1. ГОСТ 27459-87 Системы обработки информации. Машинная графика.
2. ГОСТ 13699-91 Запись и воспроизведение информации.