Jump to content

Кадровый буфер

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

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

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

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

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

Образец памяти на SWAC Williams в 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 системы Ричардом Шупом из Xerox PARC в 1972 году. [10] Шупу удалось использовать кадровый буфер SuperPaint для создания первой системы цифрового видеозахвата. Синхронизировав выходной сигнал с входным сигналом, Шуп смог перезаписать каждый пиксель данных по мере их смещения. Шуп также экспериментировал с изменением выходного сигнала с помощью таблиц цветов. Эти таблицы цветов позволяли системе 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 цветов.

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

Оперативная память видеокарты [ править ]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. ^ «Что такое кадровый буфер? Определение в вебпедии» . webopedia.com . Июнь 1998 года.
  2. ^ «Часто задаваемые вопросы о кадровом буфере» . Проверено 14 мая 2014 г.
  3. ^ Мюллер, Дж. (2002). Решения .NET Framework: в поисках утраченного Win32 API . Уайли. п. 160. ИСБН  9780782141344 . Проверено 21 апреля 2015 г.
  4. ^ «Запись в словаре интеллектуальных вычислений — видеобуфер» . Архивировано из оригинала 24 марта 2012 г. Проверено 21 апреля 2015 г.
  5. ^ Jump up to: Перейти обратно: а б Габури, Дж. (01 марта 2018 г.). «Произвольное изображение: Память и история экрана компьютера» . Серая комната . 70 (70): 24–53. дои : 10.1162/GREY_a_00233 . hdl : 21.11116/0000-0001-FA73-4 . ISSN   1526-3819 . S2CID   57565564 .
  6. ^ Уильямс, ФК; Килберн, Т. (март 1949 г.). «Система хранения для использования с двоично-цифровыми вычислительными машинами» . Труды IEE - Часть III: Радиотехника и связь . 96 (40): 81–. дои : 10.1049/пи-3.1949.0018 .
  7. ^ «Примечания к обложке отчета Килберна за 1947 год (Digital 60)» . curation.cs.manchester.ac.uk . Проверено 26 апреля 2019 г.
  8. ^ Д. Офир; С. Ранковиц; Би Джей Шеперд; Р. Дж. Спинрад (июнь 1968 г.), «БРЭД: Растровый дисплей Брукхейва», Communications of the ACM , vol. 11, нет. 6, стр. 415–416, doi : 10.1145/363347.363385 , S2CID   11160780
  9. ^ Нолл, А. Майкл (март 1971 г.). «Сканированная компьютерная графика» . Коммуникации АКМ . 14 (3): 145–150. дои : 10.1145/362566.362567 . S2CID   2210619 .
  10. ^ Jump up to: Перейти обратно: а б Ричард Шуп (2001). «SuperPaint: ранняя графическая система с кадровым буфером» (PDF) . Анналы истории вычислительной техники . IEEE. Архивировано из оригинала (PDF) 12 июня 2004 г.
  11. ^ Гольдвассер, С.М. (июнь 1983 г.). Компьютерная архитектура для интерактивного отображения сегментированных изображений . Компьютерные архитектуры для пространственно распределенных данных. Springer Science & Business Media . стр. 75–94 (81). ISBN  9783642821509 .
  12. ^ Система изображений (PDF) , Evans & Sutherland , получено 31 декабря 2017 г.
  13. ^ «История графической лаборатории Нью-Йоркского технологического института» . Проверено 31 августа 2007 г.
  14. ^ http://tldp.org/HOWTO/XFree86-Video-Timings-HOWTO/overd.html HOWTO по синхронизации видео XFree86: перегрузка вашего монитора
  15. ^ «Иллюстрированный справочник по видеокартам» . karbosguide.com .

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

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b0dcce6ede60492e5b82a11d80b74c45__1706828460
URL1:https://arc.ask3.ru/arc/aa/b0/45/b0dcce6ede60492e5b82a11d80b74c45.html
Заголовок, (Title) документа по адресу, URL1:
Framebuffer - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)