В компьютерной графике планарность — это метод размещения пиксельных данных в нескольких битовых плоскостях ОЗУ . Каждый бит в битовой плоскости связан с одним пикселем на экране. В отличие от упакованной , высокоцветной или полноцветной графики, весь набор данных для отдельного пикселя не находится в одном определенном месте в ОЗУ, а распределен по битовым плоскостям, составляющим дисплей. Планарное расположение определяет, как пиксельные данные размещаются в памяти, а не как интерпретируются данные для пикселя; пиксельные данные в планарном расположении могут кодировать как индексированный , так и прямой цвет.
Эта схема возникла в ранние дни компьютерной графики. Микросхемы памяти этой эпохи не могут поставлять данные достаточно быстро самостоятельно, чтобы генерировать изображение на экране телевизора или монитора из большого кадрового буфера . [1] Разделив данные на несколько плоскостей, каждую плоскость можно хранить на отдельной микросхеме памяти. Затем эти микросхемы можно считывать параллельно с более низкой скоростью, что позволяет отображать графику на скромном оборудовании, таком как игровые консоли третьего и четвертого поколений и домашние компьютеры 80-х годов. Видеоадаптер EGA на ранних компьютерах IBM PC использует планарное расположение в цветных графических режимах по этой причине. Более поздний VGA включает один непланарный режим , который жертвует эффективностью памяти ради более удобного доступа. [2]
Игровые консоли с планарной организацией дисплея включают Master System и Game Gear от Sega , NES / SNES от Nintendo и PC Engine . [3]
Британский 8-битный BBC Micro имеет частичные элементы планарного расположения пикселей. Словацкий PP 01 включает 24-килобайтный 8-цветный графический режим на основе плоскости с разрешением 256x256 пикселей. 16-битные платформы Atari ST и Amiga 80-х и 90-х годов были основаны исключительно на планарной графической конфигурации вместе с мощным блиттером . Графический чипсет Amiga OCS работает с 5 битовыми плоскостями, что позволяет использовать 2^5=32 цвета на пиксель, в то время как более поздние модели с чипсетом AGA могут обрабатывать восемь битовых плоскостей (2^8=256 цветов).
Для семейства компьютеров Sinclair (Amstrad) ZX Spectrum и совместимых с ним систем в 2019 году было разработано графическое расширение под названием HGFX. В 2022 году оно было реализовано на базе оборудования FPGA . HGFX обеспечивает организацию памяти, совместимую с оригинальной системой ZX Spectrum, занимая при этом всего 6144 байта исходной видеопамяти. Кроме того, оно обеспечивает два видеобуфера, 256 индексированных цветов, палитру TrueColor и выход HDMI. HGFX работает с восемью битовыми плоскостями. [4] В настоящее время оно реализовано как часть компьютера eLeMeNt ZX. [5]
На кусковом дисплее с 4 битами на пиксель и палитрой RGBI каждый байт представляет два пикселя, с 16 различными цветами, доступными для каждого пикселя. Четыре последовательных пикселя хранятся в двух последовательных байтах следующим образом:
В то время как планарная схема могла бы использовать 2 битовые плоскости, обеспечивая 4-цветный дисплей. Восемь пикселей будут храниться в памяти как 2 байта, не смежных друг с другом:
В плоскостном примере 2 байта представляют 8 пикселей с 4 доступными цветами, тогда как в примере упакованных пикселей 2 байта используются для представления меньшего количества пикселей, но большего количества цветов. Добавление плоскостей увеличит количество доступных цветов за счет увеличения объема памяти. Например, использование 4 плоскостей делает доступными 2 4 = 16 цветов, но тогда потребуется 4 байта для представления 8 пикселей (что делает его эквивалентным с точки зрения использования памяти и доступных цветов примеру упакованного расположения).
Планарные расположения обеспечивают пространственную и временную эффективность по сравнению с упакованными расположениями при битовой глубине, которая не является степенями 2. В качестве примера рассмотрим 3 bpp , что позволяет использовать 8 цветов. При планарных расположениях для этого требуется всего 3 плоскости. При упакованных расположениях поддержка ровно 3 bpp потребовала бы либо разрешения пикселям пересекать границы байтов (что влечет за собой временные затраты из-за сложностей с адресацией и распаковкой пикселей), либо заполнения (что влечет за собой затраты пространства, поскольку каждый байт будет хранить 2 пикселя и иметь 2 неиспользуемых бита); исторически это одна из причин (хотя и не обязательно главная), по которой упакованные пиксели использовали битовую глубину, которая равномерно укладывается в байты.
Планарные расположения позволяют быстрее переключать глубину цвета: плоскости добавляются или отбрасываются, а (если цвета индексируются) палитра расширяется или усекается. Следовательно, поддержка более высоких глубин цвета может быть добавлена с небольшим или нулевым влиянием на старое программное обеспечение. Простота переключения глубины цвета также позволяет легко использовать элементы с разной глубиной цвета вместе.
Недостатком планарных расположений является то, что для прокрутки и анимации требуется больше циклов адресации ОЗУ .