Для вывода на видеомониторы разложенный в растр образ необходимо представить в виде того шаблона, который требует дисплей. Это преобразование называется растровой разверткой. В отличие от дисплейного списка для векторного дисплея, содержащего информацию только об отрезках или литерах, в данном случае дисплейный список должен содержать информацию о каждом пикселе на экране. Необходимо, кроме того, чтобы эта информация организовывалась и выводилась со скоростью видеогенерации в порядке сканирования строк, т.е. сверху вниз и слева направо. Существует четыре способа достижения такого результата:
- растровая развертка в реальном времени;
- групповое кодирование;
- клеточная организация;
- память буфера кадра.
При развёртке в реальном времени сцена произвольно представляется в терминах визуальных атрибутов и геометрических характеристик. Типичными визуальными атрибутами являются цвет, оттенок и интенсивность, тогда как координаты x,y, углы наклона и текст относятся к геометрическим характеристикам. Последние упорядочены по координате y. Во время воспроизведения каждого кадра процессор сканирует эту информацию и вычисляет интенсивность каждого пикселя на экране. При такой развертке не нужны большие количества памяти. Требования к памяти обычно ограничиваются необходимостью хранить дисплейный список плюс одну сканирующую строку. Более того, поскольку информация о сцене хранится в произвольно организованном дисплейном списке, добавление или удаление информации из списка осуществляется легко, а это удобно для динамических приложений. Однако сложность выводимого изображения ограничивается скоростью дисплейного процессора. Обычно это означает, что ограничено число отрезков или многоугольников в картине, количество пересечений со сканирующей строкой или число цветов или полутонов серого. Поэтому использовать данный метод можно только для рисования несложных изображений.
В методе группового кодирования сделана попытка воспользоваться тем, что большие области изображения имеют одинаковую интенсивность или цвет. При простейшем групповом кодировании определяется только интенсивность и количество последовательных пикселов с этой интенсивностью на данной сканирующей строке. Кодирующие данные следует рассматривать группами по два. Первое число – интенсивность, второе - число последовательных пикселов на сканирующей строке с этой интенсивностью:
Интенсивность
Длина участка
Для добавления цвета это простая схема группового кодирования может быть легко расширена. На данной сканирующей строке для цвета приводятся интенсивности красной, зеленой и синей цветовых пушек, а за ними - количество последних пикселов с этим цветом; например,
Интенсивность красного
Интенсивность зеленого
Интенсивность синего
Длина участка
Сжатие данных для изображений, закодированных группами, может приближаться к 10:1. Это существенно не только потому, что групповое кодирование просто экономит память, но и потому, что оно экономит память для машинно-синтезированных последовательностей кадров или фильма. Оно также экономит время передачи изображения по сети.
У группового кодирования есть и недостатки:
- добавление или удаление отрезков или текста из изображения является трудоемкой операцией и занимает много времени из-за последовательного хранения длин участков;
- кодирование и декодирование изображения влечет за собой дополнительные затраты времени;
- для коротких участков одинаковой интенсивности может потребоваться в 2 раза больше памяти, чем при пиксельном хранении, например, когда изображение состоит из чередующихся черных и белых вертикальных отрезков шириной в 1 пиксель.