Содержание | Видеокарты


Видеокарты





Внешний вид типичной видеокарты

Видеокарта (video card), очень часто называемая графической картой (graphics card) или видео-адаптером (video adapter), представляет собой компонент, предназначенный для формирования визуального вывода РС. Практически все программы формируют визуальный вывод и видеокарта воспринимает этот вывод и "командует" монитору, какие пикселы на экране и каким цветом должны светиться, чтобы пользователь увидел изображение (image), или "картинку" (picture). На фотографии слева показана типичная видеокарта современного РС.

Видеокарта является частью видеосистемы (video system) РС, с помощью которой на экране отображаются изображения. Видеосистема состоит из трех компонентов, характеристики которых должны быть согласованы для получения на экране высококачественных изображений:

  • Видеокарта представляет собой карту расширения (expansion card), хотя иногда видеокарта размещается на материнской плате, которая формирует электрические сигналы, подаваемые по кабелю в монитор. При желании можно считать видеокарту специализированным процессором, ориентированным только на управление формированием изображений на экране монитора.
  • Собственно монитор (monitor), подключенный кабелем к видеокарте.
  • Драйвер устройства (device driver), который операционная система, например Windows 95/98/2000, использует для управления видеокартой, чтобы она посылала в монитор необходимые сигналы.

Главная функция видеокарты довольно проста - она воспринимает то, что процессор подготовил для вывода, и отображает это на экране. В прошлом это был простой текст, даже не цветной. Современные видеокарты больше похожи на сопроцессоры (coprocessors), так как выполняют значительный объем работы, который в противном случае должен был бы выполнять центральный процессор. Необходимость введения в видеокарты "интеллекта" объясняется огромным объемом данных, который сейчас подается на монитор, и сложными расчетами для определения того, что мы увидим на экране. Особенно это относится к графическим операционным системам и трехмерной графике (3D graphics). За рубежом сформировалась целая отрасль по производству видеокарт и крупнейшие производители видеокарт - компании 3dfx, ATI, Matrox, nVidia и S3 - разрабатывают новые видеокарты практически каждые полгода.

Видеокарта играет значительную роль в следующих важнейших аспектах компьютерной системы:

  • Производительность: Видеокарта является одним из компонентов, которые прямо влияют на производительность РС. Для некоторых пользователей (и приложений) это влияние не столь велико, а для других качество и эффективность видеокарты могут влиять на производительность сильнее любого другого компонента РС. Например, многие игры, которые для которых важна частота кадров (сколько раз в секунду экран обновляется новой информацией) для получения плавной анимации, больше зависят от выбора видеокарты, чем от выбора центрального процессора.
  • Поддержка программ: Некоторые программы, особенно игровые и графические, требуют поддержки от видеокарты. Есть программы, например трехмерные "продвинутые" игры, которые не работают вовсе, если их не поддерживает видеокарта.
  • Надежность и устойчивость: Хотя видеокарта и не вносит основной вклад в надежность РС, выбор неверной видеокарты может вызвать неустойчивое поведение системы. Например, известно, что некоторые типы видеокарт имеют неустойчивые драйверы, которые могут вызвать массу трудностей.
  • Комфорт и эргономика: Видеокарта совместно с монитором определяет качество изображений при работе на РС, а это прямо влияет на комфорт при использовании РС. Видеокарты плохого качества не обеспечивают достаточно высокие частоты регенерации, что вызывает напряжение и усталость глаз.

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

На следующем большом рисунке показаны основные компоненты современной видеокарты.


Обзор видеокарт


Начнем с общего описания работы видеокарт, включая их основные функции. Несмотря на то, что видеокарты постоянно становятся все более сложными и мощными, их базовые компоненты изменяются намного медленнее. Общая схема, показывающая место видеокарты в видеосистеме РС, приведена на следующем рисунке:


Ускоренные и неускоренные видеокарты


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

Старые видеокарты выполняли только это преобразование, т.е. воспринимали данные от процессора и направляли их в монитор. Всю остальную работу по определению того, что должно отображаться на экране, выполнял процессор. Такое положение подходило для старой рабочей среды типа MS-DOS и особенно текстового вывода с небольшим объемом информации. После широкого распространения графических операционных систем типа Windows в выводе стал участвовать огромный объем информации и процессор расходовал массу времени на перемещение окон, формирование боксов, курсоров и фреймов. В результате производительность РС резко снижалась.

Что справиться с этой проблемой, компании стали выпускать карты, названные ускорителями (accelerators), причем часто более конкретно Windows-ускорителями. На такие карты с внутренним "интеллектом" стало возможным возложить ту работу, которую ранее выполнял процессор. При наличии акселератора и необходимости вывести на экране окно процессору стало не нужно вычислять позицию и цвет всех пикселов окна на экране; он посылает видеокарте команду "сформируй окно с такими-то параметрами" и видеокарта формирует его. В результате процессор разгружается и может выполнить больше полезной работы. Сам акселератор специализирован только на одну конкретную работу и оказывается в ней намного эффективнее процессора.


Такая разгрузка процессора от видео-обработки привела к многократному повышению производительности видео-подсистемы в современных РС. Практически все современные видеокарты имеют средства ускорения, причем довольно сложные. По существу, видеокарта превратилась в сопроцессор, работающий параллельно с центральным процессором. В настоящее время стали широко применяться трехмерные ускорители (3D-ускорители), освобождающие процессор от сложнейших операций трехмерной анимации.

Видео-чипсет


Почти все современные видеокарты являются ускорителями, т.е. наряду с формированием выходного сигнала для монитора выполняют различные функции видео-обработки. Возможности видеокарты определяются ее внутренним процессором, выполняющим вычислительные задачи. Логическая схема, которая управляет видеокартой, называется видео-чипсетом (video chipset), но иногда ее называют ускорителем (accelerator) или видео-сопроцессором (video coprocessor).

Обычно термин чипсет подразумевает системный чипсет (system chipset), который управляет материнской платой, а видео-чипсет выполняет аналогичные функции для видеокарты. Материнские платы выполняют самые разнообразные функции, для которых в прошлом требовалось множество микросхем; сейчас эти функции встроены в небольшой набор микросхем (set of chips), который называется чипсетом (chipset). То же самое произошло и с видеокартами, причем большинство видео-чипсетов представляют собой всего одну микросхему.

Производители видеокарт придерживаются двух подходов. Некоторые производят видеокарты полностью, включая и микросхемы чипсетов. Например, компания Matrox разрабатывает свои видеокарты "с нуля", что позволяет написать более эффективный BIOS и программные драйверы. Другие крупные производители видеокарт используют чипсеты других компаний и встраивают их в свои изделия. Например, компания Diamond Multimedia применяет чипсеты компании S3.

Видео-BIOS


Во многом аналогично тому, как системный BIOS предоставляет набор функций, используемый программами для доступа к аппаратным средствам РС, видео-BIOS обеспечивает набор видео-функций, используемых программами для доступа к аппаратным средствам видеосистемы. Видео-BIOS образует интерфейс программ с видео-чипсетом так же, как системный BIOS делает это для системного чипсета.

Функции видео-BIOS согласованы с системным чипсетом, но собственно код BIOS может отличаться для разных видеокарт, которые используют один и тот же видео-чипсет (такая же ситуация характерна и для системного BIOS). Фактически многие видеокарты, в которых применяется один и тот же чипсет, имеют, в основном, только программные отличия: видео-BIOS и программные драйверы, которые используют BIOS.

Так как системы BIOS различных видеокарт требуют для своей поддержки разный код, программирование оказывается довольно сложным из-за обилия видеокарт. Ассоциация VESA разработала стандарт для кода BIOS, рассчитанного на высокую разрешающую способность, который называется VESA BIOS Extensions (VBE). Этот стандарт можно реализовать аппаратно или программными драйверами, что обеспечивает более стандартизованное управление видеосистемой.

Видеопамять (буфер кадра)


Изображение на экране может содержать огромный объем информации, например при разрешении 1600х1200 и TrueColor (32 бита на пиксел) получается 12 МБ В прошлом объем информации был намного меньше. Например, для черно-белого текста при формате экрана 80х25 (2000 символьных позиций) требуется всего 4000 байтов (байт ASCII-кода символа и байт атрибутов для каждой символьной позиции). Для хранения видеоданных выделялись специальные области верхней памяти (Upper Memory Area - UMA). Процессор определяет, что должно отображаться, помещает данные в эту область, а видеокарта считывает и отображает данные.

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

Разрешающая способность

Число байтов для изображения

Емкость видеопамяти

640х480

614 400

1 МБ

800х600

960 000

1.5 МБ

1024х768

1 572 864

2 МБ

1280х1024

2 621 440

3 МБ

1600х1200

3 840 000

4 МБ

В таблице слева приведена минимальную емкость видеопамяти для различных разрешающих способностей, когда для кодирования значений пикселов используются два байта (High Color, 65 536 цветов).

Для поддержки высококачественных трехмерных изображений большинство современных видеокарт поставляются с видеопамятью емкость 16 МБ, 32 МБ и даже больше. Кроме того, для быстрого доступа к системой памяти применяется ускоренный графический порт (Accelerated Graphics Port - AGP).

В некоторых материнских платах видео-чипсет встроен в саму плату и использует часть системной памяти RAM для буфера кадра. Такой прием называется унифицированной архитектурой памяти (Unified Memory Architecture - UMA), или архитектурой разделенного буфера в памяти (Shared Memory Buffer Architecture - SMBA), и применяется только для снижения стоимости. В результате производительность видеосистемы снижается, так как для достижения высокой разрешающей способности и большой частоты регенерации видеопамять должна иметь намного большее быстродействие, чем системная память RAM. Новая разновидность этого приема реализована в чипсете 810 фирмы Intel, который также интегрирует графический контроллер и использует области системной памяти в качестве буфера кадра. Такая система называется технологией динамической видеопамяти (Dynamic Video Memory Technology - D.V.M.T.). В аналогичном, но все же отличающемся, способе используется ускоренный графический порт (Accelerated Graphics Port - AGP). Он позволяет видеопроцессору обращаться к системной памяти для производства видео-обработки, но поддерживает отдельную память для буфера кадра. AGP обеспечивает более гибкое использование памяти и фактически превратился в новый стандарт для мира РС.

RAMDAC


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

Однако современные мониторы являются аналоговыми. Чтобы отобразить изображение на экране информацию из видеопамяти необходимо преобразовать в аналоговые сигналы и подать их в монитор. Устройство для выполнения такого преобразования называется RAMDAC (Random Access Memory Digital-Analog Converter). Много раз в секунду RAMDAC считывает содержание видеопамяти, преобразует информацию и посылает аналоговые сигналы по видеокабелю в монитор. Тип и быстродействие RAMDAC прямо влияют на качество экранного изображения - сколько раз в секунду может обновляться экран, каковы максимальная разрешающая способность и число одновременно отображаемых цветов.


Хороший RAMDAC выполнен в виде отдельной микросхемы, а не встроен в графический процессор, и работает с частотой синхронизации 250 - 360 МГц.

Интерфейсы видеосистемы


Современные видеосистемы оперируют огромными объемами пересылаемой информации, особенно между видеокартой, процессором и системной памятью. Под интерфейсом видеосистемы понимается метод подключения видео-сопроцессора и видеопамяти к другим компонентам РС.

Видеокарта требует более широкую полосу пропускания ввода-вывода с процессором и памятью, чем любое другое устройство в РС. Поэтому повышение видео-производительности традиционно было "движущей силой" для разработки все более быстрых системных шин. Были разработаны локальные шины, чтобы устранить узкое место в передачах данных между процессором и видеокартой, которое стало препятствием при широком применении графических операционных систем. Первой локальной шиной стала VESA Local Bus (VLB).

Шина ISA


Шина ISA (Industry Standard Architecture) представляет собой стандартную (медленную) шину ввода-вывода, которая применяется почти во всех современных РС для медленных периферийных устройств, например модемов. До 1993 г. эта шина использовалась и для видеокарт. Видеокарты с шиной ISA сейчас устарели, так как непригодны для графических операционных систем, например Windows. Они сильно ограничены по функциям ускорения и имеют небольшую видеопамять. ISA-видеокарты подходят только для пользователей MS-DOS, символьных приложений и некоторых игр.

К сожалению, РС с ISA-видеокартами должны использовать только шину ISA, так как только ее поддерживают старые материнские платы. Переход к видеокарте с шиной VESA Local Bus (VLB) или PCI требует замены материнской платы. Необходимо учитывать также, что и шина VLB сейчас устарела.

Однако ISA-видеокарты могут оказать помощь при отладке. Современные очень сложные видеокарты могут иногда вызывать конфликты с другими аппаратными средствами при загрузке системы. В этом случае замена современной видеокарты на простейшую ISA-видеокарту может помочь определить, вызвана ли проблема видеокартой или другим компонентом.

Локальная шина VESA


Локальная шина VESA (VESA Local Bus - VL-Bus или VLB) была первой локальной шиной для РС. Она разработана в 1992 г. и быстро стала весьма популярной в РС с процессором 486. VLB-видеокарты легко определить по более широкому слоту по сравнению со стандартными слотами шины ISA.

VLB-видеокарты, в общем, обеспечивают намного более высокую производительность, чем ISA-видеокарты. Объясняется это тем, что 32-битовая локальная шина, используемая в VLB-видеокартах, обеспечивает более высокую скорость передач данных между процессором и видеокартой. Однако шина VLB породила свои особенные проблемы, например VLB-видеокарты могут вызвать проблемы при использовании материнских плат с рабочей частотой 40 или 50 МГц.

Многие VLB-видеокарты обеспечивают довольно хорошую производительность, но устарели вместе с самой шиной VLB. Но все же VLB ближе к современной шине PCI, чем к шине ISA. В любом РС, который поддерживает шину VLB, именно ее необходимо использовать для видеокарты.

Локальная шина PCI


Локальная шина PCI (Peripheral Component Interconnect), разработанная в 1993 г., сейчас превратилась в стандарт для РС с процессорами Pentium. Она обеспечивает производительность локальной шины и решает большинство проблем, связанных с шиной VLB, а также предлагает множество новых возможностей, включая технологию Plug and Play и мастеринг шины.

PCI-видеокарты имеют самую высокую производительность среди современных видеокарт, хотя появление AGP изменяет такое их положение. Несмотря на то, что PCI-видеокарты не являются радикальным обновлением VLB-видеокарт, они оказываются быстрее просто потому, что в них применяются более современные и быстрые чипсеты. Кроме того, они имеют больше средств ускорения.

Ускоренный графический порт




Ускоренный графический порт (Accelerated Graphics Port - AGP) представляет собой новую "шину" (хотя это не шина), специально предназначенную для скоростного интерфейса между процессором и видеокартой. Она появилась в ответ на требования повышения видео-производительности для трехмерной графики. Скорость передач данных AGP в четыре раза выше, чем шины PCI, и имеются потенциальные возможности ее повышения. Общая схема, показывающая функции AGP, приведена на рисунке слева.

AGP считается портом, а не шиной, потому что шина может поддерживать несколько устройств, а AGP обеспечивает соединение типа "точка-точка" (point-to-point) только между видеокартой и процессором. Порт AGP опирается на 64-битовое расширение шины PCI 2.1. Сейчас AGP считается наиболее перспективным интерфейсом для видео-приложений.

Мастеринг шины


Мастеринг шины (bus mastering) позволяет видеокарте управлять системной шиной, благодаря чему она может прямо осуществлять передачи в системную память и из системной памяти. Этот прием повышает производительность в некоторых видео-операциях, в частности, реализации функций трехмерного ускорения, которые используют системную память. Однако большинство видео-операций привлекает память самой видеокарты, поэтому в них мастеринг шины повышения производительности не дает. В современных РС мастеринг шины поддерживает только на шине PCI.

Дополнительный разъем


Многие видеокарты имеют так называемый дополнительный разъем (feature connector), который применяется для подключения видеокарты к другим видео-устройствам, например трехмерные ускорители, декодеры MPEG и карт захвата видео (video capture card). Этот разъем обеспечивает прямую передачу видео-информации от этих устройств в видеокарту без использования основной системной шины. Даже скоростные локальные шины не справляются с огромным объемом информации, например полноэкранного "живого" видео (full-screen full-motion video).

Имеется несколько стандартов на дополнительный разъем:

  • Video Feature Connector (VFC): Этот разъем был частью спецификации VGA. Стандартный VFC представляют собой 8-битовый порт с 26-контактным разъемом. Сейчас этот стандарт устарел и не применяется.
  • VESA Advanced Feature Connector (VAFC): Разработан Ассоциацией VESA как расширение VFC и и увеличивает ширину порта с 8 битов до 16/32 битов. Обеспечивает скоростной тракт видеокарты и использует 80-контактный разъем.
  • VESA Media Channel (VMC): Это более совершенный стандарт, который определяет в РС еще одну шину и позволяет объединить несколько устройств. Использует 68-контактный разъем.

Битовая ширина видеокарты и ширина системной шины


Принято характеризовать видеокарты, указывая их битовую ширину (bit width), например 32 бита, 64 бита и даже 128 битов. Необходимо отчетливо понимать, что эти числа относятся только к ширине данных для внутренней обработки видеокартой. Обычно они показывают ширину шины между видеопроцессором и видеопамятью. Для интерфейса с системным процессором видеокарта использует ширину той шины, к которой она подключена: 16 битов для ISA-видеокарт, 32 бита для VLB-видеокарт и 32/64 бита для PCI- и AGP-видеокарт. Разумеется, можно использовать 32-, 64- или 128-битовую видеокарту с любой системной шиной, на слот которой она рассчитана.

Использование ресурсов видеокартой


По сравнению с другими устройствами РС большинство видеокарт не используют много системных ресурсов, поэтому конфликты устройств с видеокартой возникают довольно редко. VGA-совместимые видеокарты используют адреса ввода-вывода 3B0-3BBh и 3C0-3DFh, поэтому эти адреса никогда не применяются для других устройств.

Некоторые видеокарты используют линию запроса прерывания IRQ, а другие - нет. PCI-видеокарты используют одну из линий IRQ, предназначенную для PCI-устройств, обычно IRQ11 или IRQ12. В старых EGA-видеокартах использовалась линия 2/9 IRQ.

Видеорежимы, разрешающая способность и цвет


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

Текстовые и графические режимы


За исключением самых старых видеокарт середины 80-х годов все видеокарты могут отображать информацию в текстовом или графическом режимах. В текстовом режиме видео-информация хранится как символы из символьного набора, обычно кода ASCII. Типичный текстовый экран РС имеет 25 строк по 80 символов в каждой. В видеокарту встроены точечные (пикселные) определения всех символов, которые используются для отображения содержимого экрана. Невозможно обратиться к отдельным точкам (пикселам), которые образуют на экране, например, букву "М" (ситуация напоминает печать на точечно-матричном принтере).

Графические режимы совершенно отличаются от текстового режима; здесь допускается оперирование непосредственно точками (пикселами) на экране, благодаря чему можно отображать текст и рисунки. Преобразование букв, цифр и другой информации в видимые изображения осуществляется программно. Графические режимы обеспечивают большую гибкость в отношении того, что можно отображать на экране, но при этом приходится обрабатывать намного больше информации и иметь больше памяти для хранения экранного изображения. Обычно коэффициент "увеличения" составляет 100 и более раз! Все это заставляет повышать возможности аппаратных средств РС.

В большинстве РС применяются текстовые и графические режимы, причем переключение между ними можно производить программно. Обычно РС загружаются в текстовом режиме или режиме эмуляции текста.

Цветные и монохроматические режимы


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

Пикселы и разрешающая способность




Отображаемое на экране изображение состоит из сотен тысяч и даже миллионов небольших точек, называемых пикселами (pixel от picture element). Пиксел - это минимальная единица экрана, которой можно управлять индивидуально. Для каждого пиксела можно установить свои цвет и яркость (интенсивность - brightness).

Число пикселов, которое можно отобразить на экране, называется разрешающей способностью, или просто разрешением (resolution); иногда употребляется синонимический термин адресуемость (addressability). Разрешение обычно определяется как пара чисел, например 640x480. Первое число показывает число пикселов по горизонтали, а второе - по вертикали. Чем выше разрешение, тем больше пикселов можно отобразить и тем больше информации представить на экране. Обычно имеется несколько стандартных значений разрешающей способности.

Коэффициент формы (aspect ratio) изображения представляет собой отношение числа пикселов по оси X (горизонтали) к числу пикселов по оси Y (вертикали). Стандартный коэффициент формы для мониторов РС равен 4:3, но при некоторых разрешающих способностях он равен 5:4. Мониторы калибруются под этот стандарт, поэтому на экране окружность выглядит окружностью, а не эллипсом. Отображение рисунка, который использует коэффициент формы 5:4, будет несколько искаженным; этот коэффициент формы применяется только при разрешающей способности 1280x1024.

Разрешающая способность

Число пикселов

Коэффициент формы

320x200

64 000

8:5

640x480

307 200

4:3

800x600

480 000

4:3

1024x768

786 432

4:3

1280x1024

1 310 720

5:4

1600x1200

1 920 000

4:3

Имеется некоторая путаница в трактовке термина разрешение (resolution), или разрешающая способность, так как он может означать разные понятия. Во-первых, разрешение наблюдаемого изображения зависит от того, что выводит видеокарта, и что способен отображать монитор; для просмотра изображения с высоким разрешением, например 1280x1024, требуется, чтобы видеокарта могла формировать такое изображение и чтобы монитор мог отобразить его. Во-вторых, поскольку каждый отображаемый на экране пиксел есть набор из трех отдельных точек (красной, зеленой и синей), некоторые пользователи относят термин разрешение к разрешению монитора, а термином адресуемость пикселов (pixel addressability) называют число дискретных элементов, которое формирует видеокарта. На практике большинство пользователей полагают, что термин разрешение относится к изображению. В таблице слева приведены наиболее распространенные разрешающие способности для РС и число пикселов для каждой разрешающей способности.

Цвет пикселов, глубина цвета и цветовая палитра


Каждый пиксел на экранного изображения отображается на мониторе с использованием комбинации трех цветовых сигналов: красного (Red), зеленого (Green) и синего (Blue), т.е. примерно так, как изображение формируется на экране цветного телевизора. Внешним видом каждого пиксела управляет интенсивность трех испускаемых световых лучей. Когда все они установлены на высший уровень, получается белый цвет, а когда установлены на нуль, получается пиксел черного цвета.

Объем информации, который хранится о пикселе, определяет глубину цвета (color depth), которая задает точность указания цвета пиксела. Иногда глубину цвета называют битовой глубиной (bit depth), так как глубина цвета определяется в битах. Чем больше битов используется для пиксела, тем точнее цветовая детальность изображения. Однако увеличение глубины цвета требует соответственного увеличения емкости памяти для хранения изображения и увеличения объема обрабатываемых видеокартой данных, что снижает максимальную частоту регенерации.

Глубина цвета

Число отображаемых цветов

Байтов для хранения пиксела

Название глубины цвета

4-битовая

16

0.5

Стандартный VGA

8-битовая

256

1.0

256-цветный режим

16-битовая

65 536

2.0

High Color (HiColor)

24-битовая

16 777 216

3.0

TrueColor

В таблице слева приведены типичные значения глубины цвета для современных РС. В режиме TrueColor цвет пиксела определяют три байта - по одному для сигналов красного, зеленого и синего цветов. Отображение более 16 млн цветов обеспечивает реалистическое воспроизведение любых изображений (глаз человека различает примерно 2 млн оттенков цветов). Режим TrueColor необходим для тех, кто занимается редактированием фотографий, высококачественным графическим дизайном и др. Отметим, что при работе в режиме TrueColor большинство видеокарт фактически использует 32 бита (4 байта) видеопамяти для каждого пиксела. Четвертый (старший) байт обычно показывает некоторую другую характеристику пиксела, обычно его прозрачность.

В режиме HighColor для хранения цвета пиксела используются два байта. Обычно 16 битов разбиваются на 5 битов для красного цвета, 6 битов для зеленого цвета и 5 битов для синего цвета. В результате качество изображения по сравнению с режимом TrueColor несколько снижается. Для режима HighColor требуется на 33% (или 50%) меньше видеопамяти, чем для режима TrueColor, и видеокарта работает быстрее. В некоторых видеорежимах применяется незначительная модификация режима HighColor, в которой для каждого цвета отводится по 5 битов (всего для цвета пиксела используется 15 битов). Уменьшение значения цвета на один бит практически не сказывается на качестве изображений.

В 256-цветном режиме пиксел представлен всего восемью битами, обычно два бита отводятся для синего цвета и по три бита для красного и зеленого цветов. Выбор для каждого цвета всего четырех или восьми значений приводит к тому, что изображение приобретает "блоковую" цветную структуру. Поэтому для этого режима разработан другой подход, заключающийся в использовании палитры. При это создается палитра, содержащая 256 различных цветов. Каждый цвет определяется с использованием 3-байтового значения TrueColor: по 256 интенсивностей для красного, зеленого и синего цветов. Затем каждому пикселу разрешается выбирать один из 256 цветов палитры, который можно считать своеобразным "номером цвета" (color number). Таким образом, в каждом изображении можно использовать полный диапазон цветов, но каждое изображение может содержать только 256 цветов из 16 млн различных цветов. При отображении каждого пиксела видеокарта отыскивает реальные значения красного, зеленого и синего цветов в палитре по "номеру цвета", присвоенного каждому пикселу.

Палитра оказалась прекрасным компромиссом: она позволяет использовать только 8 битов для определения каждого цвета в изображении, но позволяет создателю изображения определить, какие 256 цветов должны быть в изображении. Поскольку практически нет изображений с плавным распределением всех цветов, палитра обеспечивает более качественное воспроизведение изображений по сравнению с тем, что получалось бы при присваивании каждому пикселу 2-битового значения для синего цвета и 3-битовых значений для красного и зеленого цветов. Например, изображение неба с облаками (стандартный фон Windows) имеет множество оттенков синего, белого и серого цветов, но практически не содержит красного, зеленого, желтого и других цветов.

Конечно, качество 256-цветных изображений заметно хуже изображений TrueColor, но большинство людей не замечают разницы между 256-цветным изображением и изображений HighColor.

Клишированием (dithering) называется процесс замены тех цветов, которые карта воспроизводить не может, цветами, которые она способна воспроизводить. Если, например, видеосистема рассчитана на поддержку 256 цветов и необходимо отображать изображение, содержащее 65 536 цветов, недоступные цвета заменяются на цвета, являющиеся комбинациями доступных цветов. Цветовое качество клишированного изображения оказывается лучше, чем неклишированного изображения. Клишированием называется также способ использования двух цветов для создания третьего цвета с целью сглаживания резких цветовых переходов. Другими словами, это метод использования узоров для имитации градаций серого или цветовых оттенков.

Частота регенерации и чересстрочная развертка


RAMDAC - это устройство на видеокарте, которое считывает содержание видеопамяти, преобразует цифровые значения из памяти в аналоговые видеосигналы и подает их по видеокабелю в монитор. Возможность RAMDAC преобразовывать и передавать эту информацию прямо влияет на частоту регенерации (refresh rate) видеорежима, в котором он работает. Частота регенерации показывает, сколько раз в секунду RAMDAC может посылать сигналы в монитор, а монитор может обновлять экран.

Частота регенерации (ее часто называют кадровой частотой) измеряется в герцах (Гц). Поддержка данной частоты регенерации F требует, чтобы видеокарта могла формировать видео-изображение F раз в секунду, а монитор мог отображать F кадров в секунду. Частоты регенерации стандартизованы и обычно имеют значения 50, 60, 65, 70, 72, 75, 80, 85, 90, 95, 100, 110 и 120 Гц. Такой набор повышает вероятность совместимости видеокарт и мониторов.

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

Частота регенерации имеет важное значение, потому что она прямо влияет на восприятие экранного изображения. Слишком малая частота регенерации вызывает раздражающее мерцание (flicker), которое вызывает усталость глаз. Значение частоты регенерации, при которой мерцание незаметно, индивидуально для каждого человека; очень мало людей замечают мерцание при частоте регенерации выше 72 Гц. Отметим также, что пороговая частота регенерации зависит также от размера монитора и мерцание сильнее заметно на больших мониторах. Объясняется это тем, что в этом случае привлекается периферийное зрение, которое более чувствительно к восприятию мерцания. Считается, что частота регенерации 85 Гц более чем достаточна для всех людей.

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

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

Частота регенерации обычно определяется для работы с прогрессивной разверткой (нечересстрочной - non-interlaced), которая применяется в современных видеосистемах. Чересстрочная развертка (interlaced) в старых мониторах позволяет удвоить частоту регенерации, попеременно отображая в кадрах четные и нечетные строки. Обычная чересстрочная развертка имеет частоту 87 Гц (фактически 43.5 Гц) и на экране появляется заметное большинству людей мерцание.

В следующей таблице показана взаимосвязь между разрешающей способностью экрана, частотой регенерации и объемом данных, который должен обработать RAMDAC. Числа в таблице показывают, сколько миллионов пикселов в секунду (МГц) RAMDAC должен выводить для поддержки данной разрешающей способности при заданной частоте регенерации. Многие видеокарты характеризуют RAMDAC в МГц. В таблице принят коэффициент преобразования 1.32, который учитывает обратный ход (retrace time):

Разрешение

43.5 Гц
(87 Гц чересстрочной)

60 Гц

72 Гц

80 Гц

85 Гц

90 Гц

100 Гц

320x200

3.7

5.1

6.1

6.8

7.2

7.6

8.4

640x480

17.6

24.3

29.2

32.4

34.5

36.5

40.6

800x600

27.6

38.0

45.6

50.7

53.9

57.0

63.4

1024x768

45.2

62.3

74.7

83.0

88.2

93.4

103.8

1280x1024

75.3

103.8

124.6

138.4

147.1

155.7

173.0

1600x1200

110.2

152.1

182.5

202.8

215.4

228.1

253.4

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

Требования к памяти буфера кадра


Буфер кадра (frame buffer) представляет собой видеопамять, которая применяется для хранения видео-изображения, отображаемого на экране. Емкость его зависит от разрешающей способности экрана и глубины цвета пикселов:

  • Память в МБ = (X-разрешение * Y-разрешение * Битов-на-пиксел) / (8 * 1 048 576)

На практике обычно требуется больше памяти, чем дает расчет по приведенной формуле. Главна причина этого объясняется тем, что видеокарты имеют определенные конфигурации памяти; например, невозможно приобрести видеокарту, имеющую видеопамять 1.7 МБ. Из-за особенностей производства микросхем памяти и обращения к памяти нецелесообразно выпускать видеокарты, емкость видеопамяти которых не является целым числом байтов. Например, имеются несколько популярных комбинаций разрешающей способности и глубины цвета, которые требуют память немного более 2 МБ; фактически же придется использовать видеокарту с видеопамятью 4 МБ. (Новая технология MDRAM позволяет использовать много меньших банков памяти, что позволяет производить видеокарты с различной емкостью видеопамяти.) Необходимость большей видеопамяти объясняется еще и тем, что многие видеокарты используют ее не только как буфер кадра, но и для обработки данных.

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

Разрешение

4 бита

8 битов

16 битов

24 бита

32 бита

320x200

0.03 (256 КБ)

0.06 (256 КБ)

0.12 (256 КБ)

0.18 (256 КБ)

--

640x480

0.15 (256 КБ)

0.29 (512 КБ)

0.59 (1 МБ)

0.88 (1 МБ)

1.17 (2 МБ)

800x600

--

0.46 (512 КБ)

0.92 (1 МБ)

1.37 (2 МБ)

1.83 (2 МБ)

1024x768

--

0.75 (1 МБ)

1.50 (2 МБ)

2.25 (4 МБ)

3.00 (4 МБ)

1280x1024

--

1.25 (2 МБ)

2.50 (4 МБ)

3.75 (4 МБ)

5.00 (6 МБ)

1600x1200

--

1.83 (2 МБ)

3.66 (4 МБ)

5.49 (6 МБ)

7.32 (8 МБ)


Функции и быстродействие видеопамяти


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

Технологии видеопамяти


Видеопамять является столь важным компонентом видеокарты и, косвенно, всего РС, что для нее разработано несколько новых технологий динамических RAM (DRAM), обеспечивающих высокую скорость считывания/записи данных. В этом разделе рассмотрены различные технологии видеопамяти.

Стандартная (Fast Page Mode) память DRAM


Это самая старая технология, которая применялась для видеопамяти. Память FPM считается "стандартной", потому что впоследствии в базовую технологию было внесено несколько улучшений, направленных на повышение быстродействия. Обычно микросхемы FPM DRAM использовались для системной памяти и, в общем, не подходят для сверхбыстрой видеопамяти современных РС.

Ограничения стандартной памяти DRAM объясняются двумя основными причинами: она является однопортовой (т.е. одновременно к ней можно выполнять только одно обращение) и имеет относительно невысокое быстродействие. Новые технологии повышают быстродействие благодаря двухпортовой организации (VRAM), повышению полосы пропускания (SGRAM, MDRAM) или обоих способов (WRAM).

Память EDO DRAM


Память EDO DRAM (Extended Data Out) представляет собой стандартную память FPM DRAM, но в цикл обращения введена небольшая модификация, позволяющая несколько повысить быстродействие. В памяти EDO DRAM считывание можно начать до окончания предыдущего считывания, что повышает быстродействие на 5 - 20 %.

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

Память видео-RAM (Video RAM - VRAM)


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

Для преодоления этого принципиального ограничения был разработан новый тип памяти, названный видео-RAM (Video RAM или VRAM) и специально предназначенный для видеосистем. Основное различие между VRAM и стандартной DRAM заключается в том, что память VRAM является двухпортовой (dual-ported). Это означает, что она имеет два тракта (порта) доступа, допуская одновременное выполнение двух операций. В результате новое экранное изображение записывается в память, а содержание памяти много раз в секунду считывается для передачи в монитор. Двухпортовая организация памяти позволяет выполнять эти операции без их влияния друг на друга.

Запоминающая ячейка VRAM состоит из двух "связанных" ячеек обычной памяти RAM. Собственно, именно этим объясняется высокая стоимость микросхем RAM. Наличие двух ячеек позволяет видеопроцессору одновременно считывать старое содержание и записывать новые данные по одному и тому же адресу памяти. Следовательно, VRAM работает значительно быстрее.

Примечание: Не путайте VRAM с общим названием "видеопамять", который обозначает память видео-подсистемы.

Память VRAM обеспечивает намного более широкую полосу пропускания (примерно в два раза) по сравнению со стандартной DRAM или EDO DRAM. Ее можно применять в видеосистемах с высокой разрешающей способностью и большой глубиной цвета. Единственная причина того, что она пока полностью не заменила стандартную память DRAM, заключается только в ее более высокой стоимости. Микросхемы VRAM сложнее и требуют на бит больше кремния, что удорожает ее производство.

Память Window RAM (WRAM)


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

Память WRAM можно использовать в мощных графических картах и впервые она была использована в популярной серии видеокарт Millennium компании Matrox. Видеокарта с памятью WRAM и достаточно быстрым RAMDAC может поддерживать очень высокую разрешающую способность (1600x1200) в режиме TrueColor.

Примечание: Память Window RAM не имеет ничего общего с операционной системой Windows.

Память Synchronous Graphics RAM (SGRAM)


Синхронная графическая RAM (Synchronous Graphics RAM - SGRAM) улучшает производительность обычной памяти DRAM, значительно повышая скорость передач данных памяти. В ней реализованы также возможности работы со средствами ускорения видеокарт, которые значительно повышают скорость видео-обработки. Память SGRAM в отличие от VRAM и WRAM является однопортовой, но по скорости ближе к памяти VRAM, чем в DRAM, благодаря более совершенной схеме.

Память SGRAM обычно применяется в видеокартах со среднего и высокого качества, в которых важна высокая производительность, но очень высокая разрешающая способность не нужна. Микросхемы SGRAM широко применяются в видеокартах Matrox Graphics (http://www.matrox.com.

Память Multibank DRAM (MDRAM)


Новая технология памяти Multibank DRAM (MDRAM), в которой предпринята попытка решить две проблемы обычной видеопамяти, разработана компанией MoSys специально для графических видеокарт. Организация и конструкция MDRAM существенно отличаются от других типов видеопамяти. Обычная видеопамять для буфера кадра реализуется как "монолитный блок" памяти, а MDRAM разбивает память на множество банков по 32 КБ, к которым можно обращаться независимо. Такой подход обеспечивает следующие преимущества:

  • Расслоение (interleaving): Обращения к памяти можно расслаивать между банками, т.е. совмещать обращения для достижения более высокой производительности даже без наличия двух портов.
  • Гибкость задания емкости памяти: В случае обычной памяти удобнее выпускать видеокарты, емкость видеопамяти которых равна целому числу мегабайтов, например 1 МБ, 2 МБ, 4 МБ и т.д., а это приводит к неэффективному использованию памяти. Например, для разрешающей способности 1024x768 и режима TrueColor (24 бита) требуется видеопамять буфера кадра емкостью 2.25 МБ, а приходится использовать видеопамять 4 МБ. Благодаря MDRAM это ограничение снимается и при желании можно получить видеокарту с памятью точно 2.25 МБ.
  • Отсутствие влияния на производительность емкости памяти: В некоторых обычных видеокартах скорость обращения к памяти зависит от емкости памяти, т.е. карта с памятью 1 МБ DRAM работает медленнее карты с памятью 2 МБ. Это ограничение в памяти MDRAM отсутствует.

Сравнение технологий видеопамяти


В следующей таблице приведены основные характеристики различных технологий видеопамяти:

Технология

Число портов обращения

Примерная полоса пропускания

Относительная
стоимость

Качество видеокарт

Стандартная (FPM) DRAM

Один

Малая

Низкая

Низкое

EDO DRAM

Один

Малая

Низкая

Низкое

VRAM

Два

Широкая

Большая

Среднее - высокое

WRAM

Два

Широкая

Большая

Высокое

SGRAM

Один

Очень широкая

Средняя

Среднее

MDRAM

Один

Очень широкая

Большая

Среднее - высокое


Видео-стандарты


Поскольку имеется много способов определения возможностей видеокарты и множество ее параметров, "на заре" РС компания IBM установила видео-стандарты. Они предназначались для согласования разрешающих способностей, цветовых режимов и других характеристик для того, чтобы обеспечить совместную работу РС, мониторов и программного обеспечения различных компаний.

В последние годы доминирующее положение компании IBM в области видео ослабло и определенного лидера в определении стандартов нет. Вместе с тем стремление производителей выпускать все более новые и мощные видеокарты породило множество различных стандартов. В свое время была организована Ассоциация по стандартам видео-злектроники (Video Electronics Standards Association - VESA) (http://www.vesa.org), которая разработала несколько стандартов, получивших широкое распространение. В этом разделе рассмотрены стандарты прошлые и настоящие видео-стандарты.

Монохроматический дисплейный адаптер


Видеокарты для первых РС были разработаны в соответствии со стандартом монохроматического дисплейного адаптера (Monochrome Display Adapter - MDA). Этот стандарт рассчитан на отображение только черно-белого текста в формате экрана 25 строк по 80 символов в каждой (80х25). Каждый символ отображался на матрице в 9 пикселов шириной и 14 пикселов высотой, обеспечивая разрешающую способность 720х350 при частоте регенерации 50 Гц. Разумеется, адресовать отдельные пикселы в этом стандарте было невозможно. В настоящее время стандарт MDA безнадежно устарел.

Графическая карта Hercules Graphics Card


Одним из серьезных недостатков стандарта MDA было то, что он совсем не поддерживал графику. В начале 80-х годов компания Hercules разработала MDA-совместимую видеокарту, которая наряду со стандартными текстовыми режимами поддерживала монохроматическую графику.

Фактически в середине 80-х годов прошлого века видеокарта Hercules превратилась в общепринятый стандарт. Поддержка этой видеокарты была включена в такие популярные программные пакеты, как электронная таблица Lotus 1-2-3, и позволяла отображать на экране РС графики и диаграммы. Конечно, вскоре видеокарту Hercules вытеснили цветные графические адаптеры.

Цветной графический адаптер


Первым широко распространенным стандартом для поддержки цветной графики стал стандарт цветного графического адаптера (Color Graphics Adapter - CGA) компании IBM. CGA поддерживал несколько режимов, например текстовый режим 80х25 и 16 цветами. Поддерживались также такие графические режимы, как монохроматическая графика с разрешающей способностью 640x200 и 16-цветная графика с разрешающей способностью 160x200. Частота регенерации составляла 60 Гц. Адресация пикселов допускалась только в графическом режиме, а в текстовом режиме изображения символов формировались на матрице 8х8, т.е. качество отображения текста было даже хуже, чем в адаптере MDA (9x14). Стандарт CGA был вскоре вытеснен более совершенным стандартом EGA.

Улучшенный графический адаптер


Следующим стандартом компании IBM стал улучшенный графический адаптер (Enhanced Graphics Adapter - EGA). Он был значительно совершеннее CGA по разрешающей способности и числу цветов, но, разумеется, значительно уступает современным видеокартам. Поддерживались графика с 16 цветами, выбираемыми из палитры в 64 цвета при разрешающей способности 640х350, а также 16-цветный текст в формате 80х25. Частота регенерации составляла 60 Гц.

Стандарт EGA является минимальным требованием для поддержки операционной системы Windows 3.x, поэтому этот адаптер еще можно встретить в старых РС с Windows 3.0. Однако по современным меркам стандарт EGA безнадежно устарел.

Видеографический адаптер


На смену стандарту EGA появился очень широко распространенный ранее стандарт видеографического адаптера (Video Graphics Adapter, или Array, - VGA). Сейчас стандарт VGA и его расширения являются основой практически всех видеокарт, используемых в РС. Этот стандарт появился в модели PS/2 компании IBM, а затем был склонирован и скопирован многими производителями видеокарт. VGA стал первым стандартом, рассчитанным на аналоговые мониторы. Впоследствии стандарт VGA был расширен многочисленными способами.

Большинство современных видеокарт по своим характеристикам намного превосходят VGA, но все они ради совместимости поддерживают оригинальные режимы VGA. Многие современные видеокарты называются VGA-совместимыми. Многие пользователи не понимают, насколько ограничен оригинальный стандарт VGA, и 99% пользователей любого варианта операционной системы Windows работают с разрешающей способностью, которая превышает стандарт VGA. Оригинальный стандарт VGA поддерживает 16 цветов с разрешающей способностью 640x480 или 256 цветов с разрешающей способностью 320x200 (а не 256 цветов с разрешающей способностью 640x480, как полагают многие пользователи). Отображаемые цвета выбираются из палитры, содержащей 262 144 цветов, потому что для определения каждого базового цвета в VGA используются 6 битов, а не 8 битов, которые сейчас стали стандартными.

Стандарт VGA отличается от предшественников еще в одном отношении: если в прежних стандартах реализована подача на монитор цифровых сигналов RGB, то здесь применяются аналоговые сигналы. Переход к аналоговым сигналам потребовался для того, чтобы уменьшить число проводников в кабеле от корпуса РС к монитору. В конце 80-х годов выпускались мониторы с переключателем, который позволял выбирать цифровые или аналоговые сигналы.

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

Стандарт Super VGA (SVGA) и другие стандарты


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

Большинство современных видеокарт (и мониторов) рекламируются как Super VGA (SVGA). Что же практически означает SVGA-видеокарта? К сожалению, четкого определения этого понятия нет. Термин SVGA подразумевает все разрешающие способности, цветовые режимы и нечетко сформулированные псевдостандарты, которые превосходят возможности VGA. Поэтому знание того, что видеокарта поддерживает "Super VGA", практически ничего не говорит о ее возможностях. В современном мире множества видеостандартов пользователь сам должен разбираться в том, какие разрешающие способности, глубины цвета и частоты регенерации поддерживает каждая карта. Необходимо также обеспечить поддержку монитором всех режимов видеокарты; монитор должен быть SVGA-совместимым.

Чтобы совсем запутать ситуацию, иногда употребляется термин Ultra VGA (UVGA), который тоже не обозначает ничего конкретного. Некоторые пользователи полагают, что VGA подразумевает разрешающую способность 640x480, SVGA - 800x600 и 1024x768. Однако это слишком упрощенный подход.

Множество видео-чипсетов и стандартов породило также обилие программных драйверов, о которых должны знать пользователи РС. Если, например, операционная система Windows имеет общий VGA-драйвер, который работает практически с любой видеокартой, использование видеокартой более высоких разрешающих способностей требует конкретный драйвер, написанный для работы с видеокартой. (Стандарты Ассоциации VESA несколько изменили эту ситуацию, но не полностью.)

Компания IBM после стандарта VGA разработала несколько новых, более совершенных видеостандартов. Однако они не получили широкого распространения, потому что были реализованы на видеокартах, рассчитанных на шину Micro Channel Architecture, которая сейчас не применяется. Приведем краткие характеристики этих стандартов:

  • 8514/A: Этот стандарт поддерживает 256-цветную графику с разрешающей способностью 1024x768, но только с частотой регенерации 43.5 Гц (чересстрочная развертка), или с разрешающей способностью 640x480 с частотой развертки 60 Гц (прогрессивная развертка).
  • Extended Graphics Array (XGA): XGA-видеокарты поддерживали мастеринг шина МСА и имели видеопамять VRAM емкостью 512 КБ или 1 МБ. В конфигурации 1 МБ XGA-видеокарта поддерживала 256-цветную графику с разрешающей способностью 1024x768 или графику HighColor (16 битов на пиксел) с разрешающей способностью 640x480.
  • XGA-2: Эти видеокарты поддерживают графику HighColor с разрешающей способностью 1024x768, а также более высокие частоты регенерации по сравнению с XGA и 8514/A.

Ближе всего к истинному стандарту SVGA подходит набор стандартов, разработанный Ассоциацией VESA.

Стандарты Super VGA Ассоциации VESA


В попытках навести хоть какой-то порядок в хаосе конкурирующих и несовместимых стандартов Super VGA Ассоциация VESA разработала несколько стандартов видеоинтерфейса. Цель их разработки состояла в том, чтобы предоставить стандартизованный интерфейс прикладных программ (Application Program Interface - API) между аппаратными средствами видеокарты и прикладными программами. Такой подход позволяет программистам писать код для работы с одной стандартной моделью видеосистемы, а не писать код для поддержки множества выпускаемых сейчас видеокарт. Вначале поддержку стандартов VESA многие производители игнорировали, но со временем она стала общепринятой и почти обязательной.

Стандарт VESA SVGA называется VESA BIOS Extension (VBE), причем имеется несколько версий этого стандарта. Интересно отметить, что стандарт VBE можно реализовать аппаратно или программно и некоторые видеокарты поддерживают конкретный стандарт VBE аппаратно. Видеокарты без аппаратной поддержки могут использовать небольшую резидентную программу (она иногда называется "VESA-драйвером", даже хотя она и не является драйвером в обычном понимании), которая обеспечивает поддержку стандарта VBE для многих видеокарт, не имеющих естественной поддержки VBE. Такая гибкость способствовала широкому распространению стандарта, так как даже специализированные видеокарты могли "прозрачно" работать со стандартными программами.

Стандарт

Разрешающая способность

Число пикселов

Рекомендуемый
размер экрана

VGA

640x480

307 200

14"

SVGA

800x600

480 000

15", 17"

SVGA

1024x768

786 432

17", 19"

XGA

1152x864

995 328

17", 19", 21"

VESA 1280

1280x1024

1 310 720

19", 21"

VESA 1600

1600x1200

1 920 000

21"

Сейчас применяются два стандарта VBE: версия 1.2 и версия 2.0. Версия 1.2 больше рассчитана на аппаратную реализацию. Многие новые видеокарты обеспечивают естественную поддержку VBE 2.0. Для тех видеокарт, которые не имеют этого, для поддержки VBE 2.0 можно использовать резидентную программу, например Display Doctor компании SciTech (http://www.scitechsoft.com/sdd.html). Для более старых видеокарт программа Display Doctor фактически может повысить производительность, так как она управляет аппаратными средствами более эффективно, чем имеющийся на видеокарте BIOS. В таблице приведены суммарные сведения о современных видеостандартах.

Ускорение трехмерного видео (3D Video)


Так как экран монитора является двумерным, все, что отображает РС, также должно быть двумерным. В прошлом это означало, что программисты и пользователи даже и не пытались работать на РС с трехмерными объектами (3D-объектами). Чтобы работать с 3D-объектами, необходимо преобразовать их в двумерные изображения (2D-изображения). Для этого требовалась специальная обработка и огромная вычислительная мощность, которая до недавнего времени была недоступна в мире РС.

Для удовлетворения требований реалистических игр, которые позволяли бы пользователю "двигаться" в виртуальном 3D-мире, были разработаны новые видеокарты, способные отображать 3D-объекты. Область трехмерной графики сейчас развивается очень динамично - новые видеокарты со все более широкими возможностями появляются практически каждый месяц, и уже появилось несколько стандартов. В этом разделе рассмотрены некоторые принципы формирования 3D-объектов, а также организация 3D-ускорителей (акселераторов). Подробнее о трехмерном видео можно узнать на сайте http://www.dimension3d.com.

Необходимость 3D-ускорения


Можно задать резонный вопрос - почему сейчас потребовались 3D-видеокарты? Ведь все, что отображается на экране монитора, является двумерным и даже трехмерные изображения проецируются как двумерные. Кроме того, трехмерная графика уже давно используется в компьютерах.

Причина широкой популярности специализированных 3D-ускорителей в наше время объясняется тем, что сейчас программы пытаются выполнять в трехмерном мире все больше операций. Требования большего реализма, более четкой графики и все более высокой скорости в таких программах, как интерактивные игры, авиационные тренажеры и автоматизированное проектирование, означают, что необходимо выполнять все больше трехмерных операций за небольшие временные интервалы.

Имеется очевидная параллель между современными трудностями воспроизведения трехмерных изображений и появлением в начале 90-х годов графических операционных систем. В то время большинство видеокарт не имело никаких средств ускорения. При запуске Windows всю работу по формированию графики на экране выполнял центральный процессор, что резко снижало производительность РС. Для преодоления этой проблемы были разработаны ускорители, в которых многие задачи трехмерного отображения решали специализированные схемы без привлечения центрального процессора.

И в наше время совершенно необязательно иметь 3D-видеокарту для воспроизведения трехмерной графики. Однако огромный объем вычислительной работы, необходимый для реалистического преобразования трехмерных изображений в двумерные, означает, что без специализированных схем эту работу должен выполнять центральный процессор, привлекая намного более медленные программные средства. Использование 3D-ускорителя позволяет программам, особенно игровым, отображать трехмерные миры с такими детальностью и цветом, которые невозможны в стандартной 2D-видеокарте.

Трехмерные изображения и операции


3D-изображения намного сложнее 2D-изображений из-за намного большего объема информации, которую необходимо использовать для того, чтобы создать реалистический трехмерный мир. Кроме того, необходимо использовать несколько математических операций для преобразования этого трехмерного мира в то, что можно отобразить на экране РС.

Когда вы смотрите на мир, ваши глаза и мозг все это выполняют автоматически. Большинство операций, которые позволяют воспринимать трехмерный мир, реализуются столь незаметно, что вы даже не понимаете, что происходит. Можете ли вы объяснить, каким образом, глядя на природную сцену с горами, лесом и озером, вы узнаете, что горы дальше, чем озеро? Это происходит благодаря сложному взаимодействию визуальных эффектов (уровней освещенности, теней, относительного движения), которые объединяются в вашим знанием того, как устроен мир. Функция трехмерного графического процессора (3D graphics engine) заключается в максимальном дублировании всего этого процесса, чтобы все отображаемое на экране казалось глазам реалистическим.

Компьютер обрабатывает 3D-изображения с привлечением абстрактных моделей. Обычно каждый 3D-объект составляется из сотен и тысяч небольших треугольников (или других многоугольников), которые описывают структуру объекта. Когда программе требуется переместить объект, для создания движения она оперирует вершинами треугольников. (Такое объяснение звучит несколько упрощенно, но передает общий смысл.) Разумеется, реальные объекты не состоят из тысяч треугольников, но такой прием необходим для создания анимации.

Для преобразования крошечных треугольников в сплошные поверхности необходимо выполнить огромную вычислительную работу. В реальном мире объекты не являются изолированными "островками", а взаимодействуют друг с другом. Они перекрывают друг друга, бросают тени, отражают свет, а на удалении выглядят расплывчатыми. Требуются реализовать очень сложные математические зависимости, чтобы определить, когда объект виден на сцене при данном угле зрения, какого цвета он должен быть и др. Если в трехмерной игре нужна плавная анимация, все эти вычисления требуется выполнять не менее 20 раз в секунду! Именно поэтому используются 3D-ускорители - они специализированы на производство вычислений, требующих много ресурсов.

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

  • Тонирование Гуро (Gourad shading): Это алгоритм, который используется для придания 3D-поверхностям реалистических оттенков. Эффект помогает придать объекту глубину и лучше определить его форму. Данное вычисление применяется во многих трехмерных играх.
  • Клиппирование (clipping), или отсечение: Эта операция определяет, какая часть объекта видна на экране и отсекает (clips out) любую часть, которую пользователь не может видеть. Это экономит время, так как части объектов, находящиеся вне экрана, игнорируются.
  • Освещение: Внешний вид объектов в реальном мире определяется источниками света на сцене. Эффекты освещения вызывают изменение цвета, отражение света, тени и другие эффекты, которые добавляются к объектам в зависимости от их позиции и позиции источников света. Источниками света могут быть электролампочки в комнате, солнце, луна и даже взрыв.
  • Прозрачность (транспарентность - transparency): Некоторые объекты в реальном мире оказываются прозрачными или полупрозрачными. Например, можно выполнить специальные вычисления для определения того, какие объекты видны через стеклянную дверь.
  • Отображение текстуры (texture mapping): Для реальных объектов необходимо наложить на них рисунки для придания объектам текстуры. Например, большинство стен не сделаны из сплошного монолита. Они сделаны из кирпичей, досок или пластика и могут быть покрыты обоями, тканью или содержать рисунки. Отображение текстуры позволяет отобразить объекты так, что они выглядят объемными, а не плоским монолитом. На практике имеется несколько типов отображения текстуры, которые используются различными аппаратными и программными средствами.
  • Клиширование (dithering): Этот эффект фактически применяется в различных областях, включая обычную двумерную графику и печать. Клиширование представляет собой процесс смешивания небольшого числа цветов в конкретные узоры для создания иллюзии наличия большего числа цветов. Например, в цветных струйных принтерах клиширование используется для создания широкого спектра цветов, хотя каждая точка печатается только одним из трех (или четырех) реальных цветов. В трехмерной графике клиширование привлекается для показа более реалистического цвета без необходимости увеличения глубины цвета изображения (что потребовало бы больше времени на вычисления и большей емкости видеопамяти).
  • Расплывчатость (fogging): Этот эффект как бы "размывает" объекты, находящиеся на удалении. Например, в реальном мире удаленные объекты выглядят расплывчатыми из-за загрязнений атмосферы. Кроме того, затуманивание ускоряет вычисления, так как удаленные объекты можно "прорисовывать" менее детально.
  • Фильтрация: Имеется несколько типов фильтрации, которые можно применить к изображению. Фильтрация применяется для "очистки" изображения, а также сглаживания текстур и фигур. В частности, билинейная фильтрация (bilinear filtering) применяется при показе текстур вблизи, чтобы удалить "блоковость" при увеличении объекта.
  • Буферирование: Фактически буферирование не является трехмерной операцией, как приведенные ранее, поскольку она не предполагает никаких операций над данными. Однако высококачественные видеокарты имеют буферную память, которая привлекается для решения разных задач в процессе сложных вычислений. Чем больше буферов имеет видеокарта, тем большую гибкость обеспечивает она в сложных операциях. Именно поэтому видеокартам обычно требуется больше памяти по сравнению с той памятью, которая необходима просто для хранения изображения. Видеокарты с ускоренным графическим портом (Accelerated Graphics Port - AGP) могут использовать для буферов системную память.

Производительность в трехмерной графике


Различные 3D-видеокарты реализуют разные типы средств 3D-ускорения, причем некоторые видеокарты реализуют их лучше других. В значительной степени это зависит от компромисса между качеством и стоимостью: в мире РС лучше и больше почти всегда означает дороже.

Чем больше визуальных эффектов вводится в изображение, тем более реалистическим оно выглядит на экране. Однако большее число эффектов немедленно приводит к увеличению емкости памяти и времени обработки. При увеличении времени приведения изображения снижается частота кадров (frame rate). Частота кадров показывает, сколько раз в секунду должно вычисляться новое 3D-изображение. (Не путайте частоту кадров с частотой регенерации (refresh rate), которая показывает, сколько раз в секунду текущее изображение передается из видеокарты в монитор.)

Когда частота кадров становится слишком малой, движение в 3D-программе становится "дергающимся", что нарушает реализм 3D-эффектов. Большинство людей считают, что частоты кадров 20 Гц вполне достаточно для передачи плавного движения, но некоторые полагают что частота кадров должна составлять 30 Гц и даже 40 Гц. Из-за этого обстоятельства некоторые видеокарты намеренно не поддерживают часть 3D-функций для обеспечения приемлемой частоты кадров.

3D-видеокарты


Быстро развивающийся рынок 3D-ускорителей и средств 3D-ускорения привел к появлению множества 3D-видеокарт с различающимися возможностями. Имеется несколько способов достижения в системе 3D-возможностей. Несмотря на то, что современные видеокарты и технологии быстро изменяются, можно классифицировать видеокарты следующим образом:

  • 2D-видеокарты (обычные видеокарты): В эту группу попадают обычные видеокарты, не имеющие никаких функций 3D-ускорения. Обычно это либо старые видеокарты, либо более новые видеокарты, оптимизированные на обработку двумерных изображений. При использовании такой видеокарты для реализации функций 3D-ускорения приходится "спаривать" ее с 3D-видеокартой.
  • Специализированные 3D-видеокарты: Эти видеокарты представляют собой ускорители, которые рассчитаны только на аппаратную реализацию 3D-функций. Поскольку они не выполняют обычное 2D-ускорение, в большинстве случаев они должны работать с 2D-видеокартой для обеспечения хорошей совместной производительности 2D+3D. Большинство высококачественных 3D-видеокарт попадают в этот класс и обычно подключаются к 2D-видеокарте с помощью дополнительного разъема (feature connector). Это позволяет 3D-видеокарте реализовать функции ускорения с формированием видео-потока без собственных RAMDAC или схем управления шиной. Такое решение оказывается оптимальным для получения высококачественной графики, но при этом необходимо приобретать две видеокарты.
  • Комбинированные 2D+3D видеокарты: Чтобы снизить расходы на дополнительную видеокарту для 3D-ускорения, многие компании разработали видеокарты, которые реализуют 2D- и 3D-функции. Этот вариант для большинства пользователей оказывается приемлемым экономичным компромиссом. Многие видеокарты из этой группы обеспечивают хорошую 2D-производительность и поддерживают многие (но не все) средства 3D-ускорения. Однако, как и любые компромиссные решения, эти видеокарты не обеспечивают тех уровня производительности и средств, которые характерны для специализированных 3D-видеокарт.

Программная поддержка 3D-видео


Для использования преимуществ 3D-ускорения необходимо, чтобы программа знала о них и поддерживала их. К сожалению, поскольку 3D-видео является новым направлением, появилось множество различающихся и несовместимых видеокарт. Чтобы программа использовала преимущества 3D-средств видеокарты, программа должна поддерживать конкретную видеокарту. В противном случае программа не сможет воспользоваться возможностями специализированных аппаратных средств видеокарты.

Разработка значительной части этих специализированных аппаратных средств видеокарты стимулируется играми. Появляются специальные версии игр, которые адаптируются под различные видеокарты. В дополнение к обычной версии популярной игры компания может выпустить версию, рассчитанную на конкретный 3D-чипсет. Эта версия может обеспечивать лучшие графические возможности и/или более высокую производительность. Но, разумеется, она не работает с другими типами 3D-видеокарт.

К счастью, для решения этой проблемы созданы новые стандартные библиотеки. Аналогично тому, как обычные видео-драйверы абстрагируются от конкретных деталей аппаратных средств, так и программа не должна заботиться о конкретной видеокарте, имеющейся в РС. Разработаны библиотеки драйверов, например Direct3D и OpenGL, позволяющие разрабатывать обобщенные программы, не подстраивая их на каждый 3D-чипсет.

В играх, рассчитанных на использование этих библиотек, можно избежать необходимости их адаптации. Однако такие системы пока находятся на ранней стадии и имеют свои проблемы, среди которых и вопросы производительности: программа не может работать столь быстро, как специализированные схемы. По-видимому, через некоторое время появится стандарт, который несколько упростит практическое использование 3D-видео.

"Живое" (full-motion) видео


Первые РС отображали только текст, но мере роста запросов пользователей и совершенствования технологии на экранах появилась и стала доминирующей цветная графика. Растущие запросы пользователей привели к новому модному понятию - мультимедиа (multimedia). Большинство современных РС могут не только отображать графику, но и воспроизводить звук, анимацию и "живое" видео (full-motion video).

Применения "живого" видео


По мере расширения возможностей РС в них все более широко стало применяться "живое" видео. Приведем некоторые области его применения:

  • Игры: Во многих современных играх видео применяется для добавления реализма в игровые сцены. В частности, многие игры с помощью видео превращаются в "кинематографические", т.е. они представляют собой своеобразный симбиоз фильма и компьютерной игры и часто называются "интерактивными фильмами".
  • Воспроизведение фильмов: Некоторые кино-компании создают версии фильмов и записывают их на компакт-диск для воспроизведения на экране РС. По-видимому, эта тенденция в будущем будет расширяться.
  • Документация и обучение: Многие программные пакеты сейчас поставляются с обучающими видео-сегментами, которые более наглядно показывают работу программы и выполнение различных операций, что значительно ускоряет освоение программы пользователем.
  • Телевидение на РС: Просмотр телепрограммы в окне экрана РС. Фактически телевидение и РС все больше смыкаются и уже появились так называемые WebTV, которые могут работать и как телевизор, и как броузер Internet.

Производительность видео и формат MPEG


Воспроизведение фильма или телепрограммы на экране РС предъявляет очень жесткие требования к производительности РС, что объясняется просто чудовищным объемом участвующих в воспроизведении данных. Предположим, что требуется воспроизвести двухчасовой фильм, используя высококачественную графику с высокой разрешающей способностью. Для простоты примем разрешающую способность всего 640x480 и режим HighColor (16 битов на пиксел), а не разрешение 1024x768 и режим TrueColor. "Живое" видео обычно подразумевает 30 кадров в секунду. Для хранения двухчасового фильма с указанными характеристиками потребуется примерно 133 ГБ, причем без звука. Для поддержки такого видео-потока данные необходимо подавать на видеокарту со скоростью примерно 150 млн битов в секунду.

К счастью, имеется изящное решение проблемы хранения и обработки огромного объема данных - сжатие данных (data compression). Благодаря самой природе данных видео можно относительно легко сжать с большим коэффициентами сжатия. Имеется несколько важных моментов, объясняющих хорошее сжатие видеоданных:

  • Каждое отображаемое изображение имеет большую избыточность и его можно представить меньшим объемом данных, применяя алгоритм кодирования. Если, например, нижняя половина экрана в конкретном кадре черная, ее можно представить небольшим числом байтов; совсем не обязательно иметь 150 000 двухбайтовых пикселов, заполненных нулями.
  • Глаз человека не чувствителен к некоторым деталям в видео и их можно удалить без значительного ухудшения качества изображения.
  • Если взять два любых соседних кадра, то изменения следующего кадра относительно предыдущего обычно малы. Например, в сцене с лицом человека в центре фоновое изображение остается статическим в сотнях или тысячах последовательных кадров. Разработаны специальные алгоритмы, позволяющие описать кадр только его изменениями от предыдущего кадра, что резко сокращает объем требуемой памяти и время передачи каждого кадра данных.

Самым популярным форматом сжатия видео является MPEG - по названию организации, определившей стандарт (Motion Pictures Expert Group, http://www.mpeg.org). Сжатие MPEG обычно позволяет получить коэффициент сжатия до 100:1, что уменьшает размер двухчасового фильма до 1.33 ГБ. Видео необходимо закодировать с помощью MPEG-кодера (encoder или просто coder), а затем просматривать, используя MPEG-декодер (decoder). Разумеется, MPEG имеет и свои собственные проблемы, главная из которых заключается в том, что процесс кодирования и декодирования требует огромной вычислительной мощности. Именно поэтому для приложений, требующих высокую производительность, применяются специализированные схемы кодирования и и декодирования.

Аппаратные и программные средства декодирования видео


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

Как и в случае видеокарт с 3D-ускорителями, можно приобрести специализированную видеокарту для MPEG-декодирования или обычную видеокарту со встроенным в нее MPEG-декодером. Специализированные MPEG-декодеры обладают различными возможностями. Они часто используют дополнительный видео-разъем (video feature connector) на обычной видеокарте для того, чтобы подавать видеоинформацию непосредственно на видеокарту и не загружать системную шину огромным объемом видеоданных.

Предупреждение: Остерегайтесь некоторых видеокарт, для которых сообщается о том, что они поддерживают MPEG-декодирование, а на самом деле они просто будут работать с программным MPEG-декодером. Многие из таких видеокарт вообще не выполняют аппаратного декодирования.

Качество MPEG-декодеров варьируется, но, как и всегда, более дорогие декодеры обеспечивают больше возможностей. Высококачественный декодер отображает полноэкранную плавную анимацию, практически не расходуя на это времени центрального процессора. Дешевый декодер или программный пакет могут "не успевать" передавать данные в видеокарту, что приводит к выпадающим кадрам. Иногда этот недостаток компенсируется воспроизведением видео в небольшом окне, а не на полном экране, а также снижением частоты кадров и/или уменьшением разрешающей способности.

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

TV-тюнеры


Сейчас выпускаются видеокарты со встроенным TV-тюнером. Совместно с придаваемыми программными средствами они позволяют просматривать телепрограммы в окне РС. Конечно, для обычного пользователя такие видеокарты не представляют особенного интереса, но со временем они могут стать весьма популярными. Имеются два варианта TV-тюнеров: встроенные в стандартную видеокарту и в виде дополнительной карты.






Наверх