Введение
Операция с данными, используемая в компьютерной графике.
Bit blit (также записывается как BITBLT, BIT BLT, BitBLT, Bit BLT, Bit Blt и т. д., что расшифровывается как передача блоком битов) — это операция с данными, часто используемая в компьютерной графике, при которой несколько растровых изображений объединяются в одно с помощью булевой функции. Графический чипсет Commodore Amiga (и другие) мог объединять три исходных растровых изображения, используя любую из 256 возможных 3-входных булевых функций. Современное графическое программное обеспечение почти полностью заменило побитовые операции более общими математическими операциями, используемыми для таких эффектов, как альфа-композитинг. Это объясняется тем, что побитовые операции на цветных дисплеях обычно не дают результатов, имитирующих физическое смешение света или красок. Некоторые программы по-прежнему используют XOR для отрисовки интерактивных выделяющих прямоугольников или границ областей; при применении к цветным изображениям необычные получающиеся цвета сразу бросаются в глаза.
Происхождение
Название происходит от процедуры BitBLT для компьютера Xerox Alto, обозначающей передачу блочных данных по битовой границе. Дэн Ингаллс, Ларри Теслер, Боб Спроулл и Диана Мерри запрограммировали эту операцию в Xerox PARC в ноябре 1975 года для системы Smalltalk 72. Дэн Ингаллс позже реализовал переработанную версию в микрокоде. Разработка быстрых методов для различных операций bit blit способствовала эволюции компьютерных дисплеев от использования символьной графики (текстового режима) к использованию растровой графики (растрового изображения) для всего. Устройства, которые сильно зависят от производительности 2D-графики (например, игровые консоли), часто оснащены специализированными схемами, называемыми блиттерами.
Блиттинг против аппаратных притов
Блитинг аналогичен аппаратному рисованию спрайтов, в том, что обе системы воспроизводят шаблон, обычно квадратную область, в различных местах на экране. Аппаратные спрайты имеют преимущество, заключающееся в хранении в отдельной памяти и, следовательно, не затрагивают основную память дисплея. Это позволяет им перемещаться по дисплею, перекрывая "фон", не оказывая на него влияния. Блитинг перемещает те же типы шаблонов по экрану, но делает это, записывая в ту же память, что и остальная часть дисплея. Это означает, что каждый раз, когда шаблон переднего плана помещается на экран, любые фоновые пиксели под ним перезаписываются или "повреждаются". Восстановление этого повреждения ложится на программное обеспечение, которое должно выполнить блит дважды: сначала восстановить измененные пиксели, а затем снова поместить шаблон переднего плана в новое местоположение. Один из способов – хранить необходимые шаблоны в VRAM за пределами экрана и зарезервировать другую область за пределами экрана в качестве своеобразного стека для временного хранения затронутого участка дисплея. Если графический чип имеет выделенную VRAM, это полезно для снижения нагрузки на системную оперативную память, а также для уменьшения ограничений пропускной способности шины ISA в старых ПК. Однако существует несколько способов оптимизации этого процесса. Если большие области экрана заняты шаблонами, может быть эффективнее выполнить блит фона на экран, чем стирать каждый шаблон по отдельности. Другой вариант заключается в разделении экрана на сегменты и удалении только тех сегментов, на которых были нарисованы шаблоны. Эта техника известна как "грязные прямоугольники".