Из Википедии, бесплатной энциклопедии
  (Перенаправлено из буфера кадра )
Перейти к навигации Перейти к поиску
Буфер кадра Sun TGX

Фреймбуфера ( буфер кадра , а иногда Framestore ) представляет собой часть памяти с произвольным доступом (RAM) [1] , содержащий битовую карту , что диски видео дисплея. Это буфер памяти, содержащий данные, представляющие все пиксели в полном видеокадре . [2] Современные видеокарты содержат схемы фреймбуфера в своих ядрах. Эта схема преобразует растровое изображение в памяти в видеосигнал, который может отображаться на мониторе компьютера.

В вычислениях , A экранный буфер является частью памяти компьютера , используемой компьютерным приложением для представления содержимого , которое должны быть показано на дисплее компьютера . [3] Буфер экран также можно назвать видео буфер , в буфер регенерации или рекуперации буфера для краткости. [4] Буферы экрана следует отличать от видеопамяти . С этой целью также используется термин « внеэкранный буфер» .

Информация в буфере обычно состоит из значений цвета для каждого пикселя, отображаемого на дисплее. Значения цвета обычно сохраняются в 1-битном двоичном (монохромном), 4-битном форматах с палитрой , 8-битном палитре, 16-битном высоком цвете и 24-битном истинном цветовом формате. Дополнительный альфа-канал иногда используется для хранения информации о прозрачности пикселей. Общий объем памяти, необходимый для буфера кадра, зависит от разрешения выходного сигнала, а также от глубины цвета или размера палитры .

История [ править ]

Образец памяти на ЭЛТ-трубке Вильямса SWAC в 1951 году

Компьютерные исследователи [ кто? ] долго обсуждали теоретические преимущества фреймбуфера, но не смогли создать машину с достаточным объемом памяти по экономически приемлемой цене. [ необходима цитата ] [5] В 1947 году компьютер Manchester Baby использовал трубку Вильямса , позже трубку Вильямса-Килбурна, для хранения 1024 битов в памяти электронно-лучевой трубки (ЭЛТ) и отображения на втором ЭЛТ. [6] [7] Другие исследовательские лаборатории изучали эти методы, а в 1950 году лаборатория Линкольна Массачусетского технологического института достигла 4096 дисплеев. [5]

В конце 1960-х годов был реализован цветной дисплей со сканированием, названный Brookhaven RAster Display (BRAD), который использовал память барабана и телевизионный монитор. [8] В 1969 году А. Майкл Нолл из Bell Labs реализовал отсканированный дисплей с кадровым буфером с использованием памяти на магнитных сердечниках . [9] Позже система Bell Labs была расширена для отображения изображения с глубиной цвета в три бита на стандартном цветном телевизионном мониторе.

В начале 1970-х годов разработка микросхем интегральной схемы МОП-памяти ( память на основе оксидов металлов и полупроводников ) , в частности микросхем DRAM (динамической памяти с произвольным доступом ) высокой плотности с объемом памяти не менее 1 КБ , сделала практичным создание впервые - цифровая система памяти с буферами кадров, способная хранить стандартное видеоизображение. [10] [11] Это привело к развитию SuperPaint системы, Ричард Shoup в Xerox PARC в 1972 г. [10]  Shoup смог использовать кадровый буфер SuperPaint для создания ранней системы цифрового видеозахвата. Синхронизируя выходной сигнал с входным, Shoup смог перезаписать каждый пиксель данных по мере его сдвига. Shoup также экспериментировал с изменением выходного сигнала, используя таблицы цветов. Эти таблицы цветов позволили системе SuperPaint воспроизводить широкий спектр цветов за пределами диапазона ограниченных 8-битных данных, которые она содержала. Эта схема позже станет обычным явлением в кадровых буферах компьютеров.

В 1974 году Evans & Sutherland выпустили первый коммерческий кадровый буфер Picture System [12] стоимостью около 15 000 долларов. Он был способен обеспечивать разрешение до 512 на 512 пикселей в 8-битной шкале серого и стал благом для исследователей графики, у которых не было ресурсов для создания собственного буфера кадра. Нью - Йорк технологический институт позже будет создать первую 24-разрядную систему цвета , используя три из фреймбуферов Evans & Sutherland. [13] Каждый буфер кадра был подключен к цветовому выходу RGB (один для красного, один для зеленого и один для синего) с помощью миникомпьютера Digital Equipment Corporation PDP 11/04, управляющего тремя устройствами как одним.

В 1975 году британская компания Quantel выпустила первый коммерческий полноцветный вещательный фреймбуфер Quantel DFS 3000. Впервые он был использован в телевизионных репортажах об Олимпийских играх 1976 года в Монреале для создания вставки « картинка в картинке» с изображением пылающего олимпийского факела. Остальная часть изображения изображает бегуна, входящего на стадион.

Быстрое совершенствование технологии интегральных схем сделало возможным для многих домашних компьютеров конца 1970-х годов содержать кадровые буферы с низкой глубиной цвета. Сегодня почти все компьютеры с графическими возможностями используют кадровый буфер для генерации видеосигнала. Компьютеры Amiga , созданные в 1980-х, отличались особым вниманием к дизайну и графической производительности и включали уникальный фреймбуфер Hold-And-Modify, способный отображать 4096 цветов.

Framebuffers также стали популярными в высокопроизводительных рабочих станциях и платах для игровых автоматов на протяжении 1980-х годов. SGI , Sun Microsystems , HP , DEC и IBM в этот период выпустили фреймбуферы для своих компьютеров рабочих станций. Эти кадровые буферы обычно были гораздо более высокого качества, чем можно было найти в большинстве домашних компьютеров, и регулярно использовались на телевидении, печати, компьютерном моделировании и трехмерной графике. Буферы кадров также использовались Sega для своих игровых плат высокого класса , которые также были более высокого качества, чем на домашних компьютерах.

Режимы отображения [ править ]

Фреймбуфер Sun cgsix

Буферы кадра, используемые в персональных и домашних компьютерах, часто имеют наборы определенных режимов, в которых может работать буфер кадра. Эти режимы изменяют конфигурацию оборудования для вывода различных разрешений, глубины цвета, разметки памяти и таймингов частоты обновления .

В мире Unix- машин и операционных систем от таких удобств обычно отказывались в пользу прямого управления настройками оборудования. Эта манипуляция была гораздо более гибкой в ​​том смысле, что можно было получить любое разрешение, глубину цвета и частоту обновления - ограничиваясь только памятью, доступной для фреймбуфера.

К сожалению, побочным эффектом этого метода было то, что устройство отображения могло выходить за пределы своих возможностей. В некоторых случаях это приводило к аппаратному повреждению дисплея. [14] Чаще всего это просто искаженное и непригодное для использования изображение. Современные ЭЛТ-мониторы решают эту проблему за счет введения схемы защиты. При изменении режима отображения монитор пытается получить блокировку сигнала на новой частоте обновления. Если монитору не удается получить блокировку сигнала или если сигнал выходит за рамки его проектных ограничений, монитор проигнорирует сигнал буфера кадра и, возможно, представит пользователю сообщение об ошибке.

ЖК-мониторы, как правило, содержат похожие схемы защиты, но по разным причинам. Поскольку ЖК-дисплей должен выполнять цифровую выборку сигнала дисплея (тем самым имитируя электронный луч), любой сигнал, выходящий за пределы допустимого диапазона, не может быть физически отображен на мониторе.

Цветовая палитра [ править ]

Фреймбуфер традиционно поддерживает большое количество цветовых режимов. Из-за дороговизны памяти в большинстве ранних буферов кадра использовалась 1-битная (2-цветная), 2-битная (4-цветная), 4-битная (16-цветная) или 8-битная (256-цветная) глубина цвета. Проблема с такой маленькой глубиной цвета заключается в том, что невозможно воспроизвести полный диапазон цветов. Решением этой проблемы стал индексированный цвет, который добавляет таблицу поиска в буфер кадра. Каждый цвет, хранящийся в памяти фреймбуфера, действует как индекс цвета. Таблица поиска представляет собой палитру с ограниченным количеством различных цветов.

Вот типичное индексированное 256-цветное изображение и его собственная палитра (показанная в виде прямоугольника образцов):

В некоторых проектах также можно было записывать данные в LUT (или переключаться между существующими палитрами) на ходу, что позволяло разделить изображение на горизонтальные полосы с их собственной палитрой и, таким образом, визуализировать изображение с гораздо более широкой палитрой. Например, при просмотре фотографии, сделанной на открытом воздухе, изображение можно разделить на четыре полосы: верхняя с акцентом на тона неба, следующая с оттенками листвы, следующая с оттенками кожи и одежды и нижняя с основными цветами. Это требовало, чтобы каждая палитра имела перекрывающиеся цвета, но тщательно выполненная, обеспечивала большую гибкость.

Доступ к памяти [ править ]

Хотя доступ к кадровым буферам обычно осуществляется через отображение памяти непосредственно в пространство памяти ЦП, это не единственный метод, с помощью которого к ним можно получить доступ. Фреймбуферы широко варьируются в методах доступа к памяти. Вот некоторые из наиболее распространенных:

  • Отображение всего фреймбуфера в заданный диапазон памяти.
  • Команды порта для установки каждого пикселя, диапазона пикселей или элемента палитры.
  • Отображение диапазона памяти меньшего, чем память буфера кадра, а затем переключение банка по мере необходимости.

Организация кадрового буфера может быть пиксельной или плоской . Буфер кадра может быть адресуемым для всех точек или иметь ограничения на то, как он может обновляться.

RAM на видеокарте [ править ]

Видеокарты всегда имеют определенный объем оперативной памяти. В этой ОЗУ растровое изображение данных изображения «буферизуется» для отображения. Таким образом, термин буфер кадра часто используется взаимозаменяемо при обращении к этому ОЗУ.

ЦП отправляет обновления изображения на видеокарту. Видеопроцессор на карте формирует изображение изображения на экране и сохраняет его в буфере кадра в виде большого растрового изображения в ОЗУ. Растровое изображение в ОЗУ используется картой для постоянного обновления изображения на экране. [15]

Виртуальные буферы кадра [ править ]

Многие системы пытаются эмулировать функцию устройства фреймбуфера, часто из соображений совместимости. Два наиболее распространенных виртуальных буфера кадра - это устройство буфера кадра Linux (fbdev) и виртуальный буфер кадра X ( Xvfb ). Xvfb был добавлен в дистрибутив X Window System, чтобы предоставить метод для запуска X без графического буфера кадра. Устройство фреймбуфера Linux было разработано, чтобы абстрагировать физический метод доступа к нижележащему фреймбуферу в гарантированную карту памяти, к которой легко получить доступ программам. Это увеличивает переносимость, поскольку программы не требуются для работы с системами с несвязанными картами памяти или с переключением банков .

Переворачивание страницы [ править ]

Буфер кадра может быть спроектирован с достаточным объемом памяти для хранения двух кадров видеоданных. В методе, обычно известном как двойная буферизация или, более конкретно, как переворачивание страницы , буфер кадра использует половину своей памяти для отображения текущего кадра. Пока отображается эта память, другая половина памяти заполняется данными для следующего кадра. Как только вторичный буфер заполнен, фреймбуфер получает указание вместо этого отображать вторичный буфер. Первичный буфер становится вторичным буфером, а вторичный буфер становится первичным. Это переключение часто выполняется после интервала вертикального гашения, чтобы избежать разрывов экрана, когда половина старого кадра и половина нового кадра отображаются вместе.

Переворот страниц стал стандартной техникой, используемой программистами компьютерных игр .

Графические ускорители [ править ]

Поскольку потребность в улучшенной графике возросла, производители оборудования создали способ уменьшить количество процессорного времени, необходимого для заполнения буфера кадра. Это обычно называется графическим ускорением . Общие команды рисования графики (многие из них геометрические) отправляются в графический ускоритель в необработанном виде. Затем ускоритель преобразует результаты команды в буфер кадра. Этот метод освобождает ЦП для выполнения другой работы.

Ранние ускорители были ориентированы на повышение производительности систем с 2D графическим интерфейсом . Сохраняя эти 2D-возможности, большинство современных ускорителей сосредоточены на создании 3D-изображений в реальном времени. Обычный дизайн использует графическую библиотеку, такую ​​как OpenGL или Direct3D, которая взаимодействует с графическим драйвером для преобразования полученных команд в инструкции для графического процессора (GPU) ускорителя . Графический процессор использует эти инструкции для вычисления растеризованных результатов, и результаты побитно воспроизводятся.в фреймбуфер. Затем сигнал фреймбуфера создается в сочетании со встроенными устройствами наложения видео (обычно используемыми для создания курсора мыши без изменения данных фреймбуфера) и любыми окончательными специальными эффектами, которые создаются путем изменения выходного сигнала. Примером таких финальных спецэффектов была техника пространственного сглаживания , используемая картами 3dfx Voodoo . Эти карты добавляют небольшое размытие к выходному сигналу, что делает наложение растровой графики менее очевидным.

В свое время было много производителей графических ускорителей, в том числе: 3dfx Interactive ; ATI ; Геркулес ; Трезубец ; Nvidia ; Радиус ; S3 Graphics ; SiS и Silicon Graphics . По состоянию на 2015 год на рынке графических ускорителей для систем на базе x86 доминируют Nvidia (приобрела 3dfx в 2002 году), AMD (которая приобрела ATI в 2006 году) и Intel (которая в настоящее время производит только интегрированные графические процессоры, а не дискретные видеокарты).

Сравнения [ править ]

С помощью фреймбуфера электронный луч (если он используется в технологии отображения) получает команду выполнить растровое сканирование , подобно тому, как телевизор передает широковещательный сигнал. Информация о цвете для каждой точки, отображаемой таким образом на экране, извлекается непосредственно из кадрового буфера во время сканирования, создавая набор дискретных элементов изображения, то есть пикселей.

Буфер кадра значительно отличается от векторных дисплеев, которые были распространены до появления растровой графики (и, следовательно, от концепции буфера кадра). При векторном отображении сохраняются только вершины графических примитивов. Электронный пучок на выходном дисплее затем приказано перейти от вершины к вершине, трассировка линии поперек области между этими точками.

Точно так же кадровые буферы отличаются от технологии, используемой в ранних текстовых режимах отображения, где буфер хранит коды для символов, а не отдельных пикселей. Устройство отображения видео выполняет то же растровое сканирование, что и с буфером кадра, но генерирует пиксели каждого символа в буфере по мере направления луча.

См. Также [ править ]

  • Битовая плоскость
  • Рендеринг строки сканирования
  • Видеоигра на основе плитки
  • Плиточный рендеринг

Ссылки [ править ]

  1. ^ «Что такое буфер кадра? Определение Webopedia» . webopedia.com .
  2. ^ "Часто задаваемые вопросы о буфере кадров" . Дата обращения 14 мая 2014 .
  3. Перейти ↑ Mueller, J. (2002). Решения .NET Framework: в поисках утраченного API Win32 . Вайли. п. 160. ISBN 9780782141344. Проверено 21 апреля 2015 .
  4. ^ «Интеллектуальная запись словаря вычислений - видеобуфер» . Архивировано из оригинала на 2012-03-24 . Проверено 21 апреля 2015 .
  5. ^ a b Габури, Дж. (2018-03-01). «Изображение с произвольным доступом: память и история экрана компьютера» . Серая комната . 70 (70): 24–53. DOI : 10.1162 / GREY_a_00233 . ISSN 1526-3819 . S2CID 57565564 .  
  6. ^ Уильямс, ФК; Килбурн, Т. (март 1949 г.). «Система хранения для использования с двоично-цифровыми вычислительными машинами» . Труды IEE - Часть III: Радио и коммуникационная техника . 96 (40): 81–. DOI : 10,1049 / пи-3.1949.0018 .
  7. «Примечания к обложке отчета Килбурна за 1947 год (цифровой 60)» . curation.cs.manchester.ac.uk . Проверено 26 апреля 2019 .
  8. ^ Д. Офир; С. Ранковиц; Би Джей Шеперд; RJ Спинрад (июнь 1968), "БРЭД Brookhave растровый Display", коммуникаций АСМ , 11 . (6), стр 415-416, DOI : 10,1145 / 363347,363385 , S2CID 11160780 
  9. Нолл, А. Майкл (март 1971 г.). "Компьютерная графика со сканированным дисплеем". Коммуникации ACM . 14 (3): 145–150. DOI : 10.1145 / 362566.362567 . S2CID 2210619 . 
  10. ^ a b Ричард Шоуп (2001). «SuperPaint: графическая система с буферизацией ранних кадров» (PDF) . Анналы истории вычислительной техники . IEEE. Архивировано из оригинального (PDF) 12 июня 2004 года.
  11. ^ Гольдвасера, SM (июнь 1983). Компьютерная архитектура для интерактивного отображения сегментированных изображений . Компьютерные архитектуры для пространственно распределенных данных. Springer Science & Business Media . С. 75-94 (81). ISBN 9783642821509.
  12. ^ Picture System (PDF) , Evans & Sutherland , извлекаться 2017-12-31
  13. ^ "История лаборатории графики Нью-Йоркского технологического института" . Проверено 31 августа 2007 .
  14. ^ http://tldp.org/HOWTO/XFree86-Video-Timings-HOWTO/overd.html XFree86 Video Timings HOWTO: перегрузка монитора
  15. ^ «Иллюстрированное руководство по видеокартам» . karbosguide.com .
  • Элви Рэй Смит (30 мая 1997 г.). «Цифровые системы окраски: исторический обзор» (PDF) . Техническая записка Майкрософт 14 . Архивировано из оригинального (PDF) 7 февраля 2012 года.
  • Уэйн Карлсон (2003). «Аппаратные достижения» . Критическая история компьютерной графики и анимации . Государственный университет Огайо. Архивировано из оригинала на 2012-03-14.
  • Элви Рэй Смит (2001). «Цифровые системы окраски: анекдотический и исторический обзор» (PDF) . IEEE Annals of the History of Computing. Архивировано из оригинального (PDF) 05 февраля 2012 года.

Внешние ссылки [ править ]

  • Интервью с исследователем NYIT, обсуждающим 24-битную систему
  • История кадровых буферов Sun Microsystems