Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Компьютеры -> Видео -> О видеокартах простым языком


О видеокартах простым языком

Автор: Олег Нечай,

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

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

Что представляет собой типичная современная видеокарта? Это печатная плата, на которой смонтированы несколько микросхем, транзисторы и конденсаторы, а также разъемы для подключения монитора (одного или двух) и, во многих случаях, телевизора. Функционально видеокарта состоит из нескольких обязательных блоков: прежде всего - графического процессора, который иногда называют графическим чипсетом1, микросхемы BIOS2, нескольких микросхем видеопамяти, одного или двух цифро-аналоговых преобразователей (RAMDAC) и различных разъемов. За что же отвечает каждый из этих компонентов?

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

Помимо внутренней архитектуры, которая у разных графических процессоров может существенно отличаться, они характеризуются такими параметрами, как тактовая частота работы ядра (у современных чипов она достигает 500 МГц) и технологический процесс, по которому изготовлен чип (основная масса GPU в настоящее время выпускается или по 0,15-, или по 0,13-микронной технологии). Как правило, чем совершеннее (миниатюрнее) технология, тем больше транзисторов умещается на кристалле одной и той же площади, что означает более высокую производительность.

Второй важнейший компонент графического ускорителя - видеопамять3, она как раз и исполняет роль кадрового буфера, о котором мы говорили выше. Центральный процессор компьютера направляет видеоданные в эту память, а затем графический процессор видеокарты считывает переданную информацию. Для обеспечения эффективной передачи данных между локальной видеопамятью и GPU чрезвычайно важным параметром является пропускная способность видеопамяти, или скорость ее работы. Она складывается из двух составляющих: разрядности и частоты шины, передающей данные из видеопамяти к графическому процессору; а также так называемой латентности4 самих чипов памяти. Такие ультрасовременные карты, как Radeon 9800 Pro, имеют шину разрядностью 256 бит, работающую на частоте 680 МГц, а массовые модели - 128-разрядную шину, работающую на частотах выше 400 МГц. С латентностью памяти дела обстоят не так просто: как правило, многие производители видеокарт сами определяют, какую память установить на ту или иную карту, поэтому на дорогих моделях может использоваться более <быстрая> память, чем на дешевых модификациях на основе того же самого GPU. Средние значения латентности видеопамяти DDR сегодня - не превышают 4 нс, а у лучших образцов (Samsung, Nanya, Infineon) - 2 нс. Объем памяти, установленной на видеокарте, влияет не столько на производительность самой карты, сколько на скорость ее работы с трехмерными изображениями в высоких разрешениях и большой глубиной цвета5. Теоретически, даже видеокарта с 32 Мбайт памяти (что сегодня уже большая редкость) позволяет выводить двухмерное изображение на 21-дюймовом мониторе с разрешением 1600х1200 пикселов при глубине цвета 32 бита. Однако 32 Мбайт явно недостаточно для вывода трехмерного изображения с тем же самым качеством и разрешением, поскольку в видеопамять при этом загружается гораздо больше информации.

Итак, графический процессор получил из памяти видеокарты информацию об изображении, после чего она передается в цифро-аналоговый преобразователь, и он, в свою очередь, отвечает за конвертацию цифровых данных об изображении в аналоговый сигнал, который будет <понятен> монитору. Правда, достаточно давно существуют жидкокристаллические мониторы, способные работать и с цифровым сигналом, однако повсеместного распространения цифровой интерфейс пока не получил. Главные характеристики RAMDAC - тактовая частота и разрядность. Многие современные видеокарты поддерживают одновременную работу с двумя мониторами, поэтому в такие карты устанавливаются по два RAMDAC и, соответственно, по два разъема для подключения мониторов6. В подавляющем большинстве видеокарт имеется также выход на телевизор, позволяющий просматривать мультимедийные программы, игры или фильмы на телеэкране. Правда, работать с компьютерными программами на экране телевизора некомфортно из-за скромного разрешения телеприемника (максимум 800х600) и низкой частоты развертки (50-60 Гц), поэтому высокого качества изображения при работе с типовыми приложениями на ТВ-экране ожидать не стоит.

Максимальная детализация в игре. Анизотропная фильтрация и аппаратное сглаживание включены.Стоит упомянуть и об интерфейсе видеокарты, посредством которого она связывается с другими компонентами компьютера. На смену универсальной шине PCI пришел специализированный интерфейс AGP7, освободивший шину PCI от передачи видеоданных и обеспечивший приоритетный, а значит, максимально быстрый доступ к системной памяти (через чипсет), необходимый для работы современных видеокарт. Массовые карты для передачи данных сегодня пользуются интерфейсом AGP 4х с пропускной способностью 1,06 Гбайт/с, а самые мощные модели - интерфейсом AGP 8x (2,1 Гбайт/с).

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

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


1 (назад) Чипсет (chip set) - набор микросхем.
2 (назад)  BIOS (Basic Input/Output System) - базовая система ввода-вывода.
3 (назад)  Видеопамять зачастую называют локальной памятью видеокарты.
4 (назад)  Латентность (latency) - здесь время задержки при передаче данных. Измеряется, как правило, в наносекундах (нс).
5 (назад)  Глубина цвета - параметр, определяющий, сколько памяти задействовано для отображения одного пиксела: например, 32-битный цвет означает, что для хранения информации об одном пикселе используется 4 байта.
6 (назад)  Как правило, один аналоговый и один цифровой.
7 (назад)  AGP (Accelerated Graphic Port) - ускоренный (по сравнению с PCI) графический порт.

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

Затем графический процессор извлекает из Z-буфера данные, обрабатывает их и в цифровом виде передает в кадровый буфер данные о готовом изображении, которое уже можно выводить на экран. Процесс обработки текстур и информации кадрового буфера называется рендерингом (или процессом закраски). Если сильно упростить, то число конвейеров рендеринга, которым часто хвастаются разработчики, - это просто количество специализированных блоков наложения текстур, работающих параллельно.
Минимальная детализация в игре. Анизотропная фильтрация и аппаратное сглаживание по-прежнему включены.Для повышения реалистичности отображения текстур, наложенных на полигоны, используются разные технологии. Одна из самых распространенных -  MIP mapping9, основная задача которой сводится к созданию набора текстур с различной степенью детализации. При этом по мере удаления от точки наблюдения текстура будет выглядеть все более размытой. Текстуры хранятся в видеопамяти и могут динамически подгружаться, поэтому технология MIP mapping позволяет снизить нагрузку на графический процессор. Как правило, MIP mapping используется в сочетании с технологиями фильтрации (точнее было бы сказать, интерполяции), призванными исправить чрезмерную размытость изображения, возникающую из-за того, что при некоторых углах обзора текстура на полигоне слишком растягивается или сжимается.

Суть фильтрации в том, что цвет пикселов растянутого или сжатого объекта рассчитывается по соседним точкам текстуры (текселам), за счет чего у изображения исчезает чрезмерная зернистость. Самая прогрессивная на сегодняшний день технология фильтрации - анизотропная, когда один-единственный пиксел может рассчитываться по 8-32 текселам. Для сравнения: в простейшем варианте фильтрации - билинейной - для расчета цвета пиксела используются четыре ближайших тексела. Естественно, анизотропная фильтрация предъявляет повышенные требования к ресурсам всей графической системы, поэтому для определения реальной производительности той или иной новинки специалисты любят оценивать скорость работы карты с включенной анизотропной фильтрацией.

Другой способ повышения качества изображения - сглаживание10, прежде всего способное устранить эффект <лестницы>, проявляющийся при отображении ровных наклонных краев объектов, а также позволяющее избавиться от прочих искажений, одновременно повысив детальность картинки. Первоначально технологии сглаживания применялись только к отдельным объектам, однако с повышением мощности графических процессоров получила широкое распространение технология полноэкранного сглаживания, или FSAA11. Суть полноэкранного сглаживания довольно проста: графический процессор рассчитывает изображение с большим разрешением, нежели установленное для выводимой картинки. К примеру, при использовании FSAA расчет картинки для отображения с разрешением 800х600 пикселов может производиться с разрешением 1600х1200. Затем полученное изображение уменьшается на установленное число пикселов, при этом, в соответствии с используемым алгоритмом, окончательные цвета <сглаженных> пикселов рассчитываются по значениям нескольких соседних пикселов. В результате мы получаем плавные цветовые переходы, поэтому <лесенки> и другие нежелательные эффекты становятся малозаметными.

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

Для реализации возможностей, заложенных в графические процессоры, используются прикладные программные библиотеки или программные интерфейсы (API12). Программный интерфейс - промежуточная ступенька между прикладными программами и низкоуровневыми командами драйвера видеокарты. API позволяет не только повысить эффективность использования аппаратного потенциала графического ускорителя, но и дает возможность программно эмулировать некоторые функции, не поддерживаемые видеокартой. Кроме того, благодаря API обеспечивается максимальная совместимость программных продуктов и систем команд графических процессоров. Различные чипы поддерживают разные API, причем по версии поддерживаемого программного интерфейса можно определить класс и поколение видеокарты. Например, в популярных в свое время картах серии Voodoo использовался API Glide, разработанный компанией 3Dfx. Прочие производители видеокарт проигнорировали эту библиотеку, поэтому с исчезновением с рынка карт серии Voodoo можно считать, что этого API больше нет.

Увеличенные фрагменты изображения с включенными (1) и выключенными (2) фильтрацией и сглаживанием. Хорошо заметно, что качество картинки не спасает даже максимальная детализация.Двум другим массовым программным интерфейсам повезло больше. OpenGL, созданный компанией Silicon Graphics (ныне - SGI), предназначался для профессиональных видеокарт, однако упрощенная версия этого API использовалась при написании культовой игры Quake, благодаря чему все современные графические процессоры в той или иной степени поддерживают OpenGL.

Творение вездесущей Microsoft - API Direct 3D, входящий в состав <общего> мультимедийного API DirectX. Поначалу Direct 3D во многом уступал OpenGL, однако на сегодняшний день это самая развитая технология, поддерживаемая всеми графическими процессорами для настольных ПК, и практически все компьютерные игры ориентированы именно на эту технологию. Последняя версия DirectX имеет индекс 9.0, хотя до сих пор далеко не во всех компьютерных играх реализованы возможности DirectX 8.0 (поставляемой вместе с операционной системой Windows XP). Среди таких невостребованных, но перспективных возможностей находятся и вершинные и пиксельные шейдеры - специализированные программы, позволяющие эффективно изменять геометрию формируемой трехмерной сцены и изображения. К сожалению, создатели программного обеспечения (читай - компьютерных игр) пока не уделяют достаточного внимания вершинным и пиксельным шейдерам, в то время как спецификации этих программ постоянно совершенствуются.

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

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


8 (назад)  В некоторых случаях текстуры могут быть и трехмерными, например, воксельные текстуры, состоящие из одноцветных кубов.
9 (назад)  MIP mapping (лат. multum in parvo - множество в малом, и англ. map - поверхность) - множественное отображение.
10 (назад)  Нередко в русскоязычных публикациях пишут по-английски: anti-aliasing.
11 (назад)  FSAA ( Full Screen Anti-Aliasing) - полноэкранное сглаживание.
12 (назад)  API (Application Programming Interface) - буквально интерфейс для программирования приложений.



 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.