|
Особенности современных видеокарт
Современная видеокарта (видеоадаптер) - это, по сути, второй самостоятельный компьютер внутри персонального компьютера. Причем, когда человек играет в любимую 3D-игpy, процессор видеокарты фактически выполняет большую часть работы, а центральный процессор, Pentium или Athlon, отступает на второй план. То есть, реализуется многопроцессорная архитектура, что, если смотреть в корень, есть отступление от основной идеологии персональных компьютеров PC, где центральный процессор выполняет все и вся. Но это итог того, что человек стал требовать от компьютера не просто умения вычислять, а создавать среду общения, где можно было комфортно работать и отдыхать. Если сравнить современные видеокарты со старыми, то особой разницы и не увидишь. Ну, появился новый интерфейс AGP, чип на печатной плате обзавелся вентилятором, вот, внешне, и все отличительные особенности. Если работать только с офисными пакетами программ, то и по скорости работы разницы между видеокартами практически нет. Но все меняется, когда запускается трехмерная игра или программа графического моделирования. Вот тут, не говоря о скорости работы, невооруженным взглядом видно, что современный видеоадаптер создает на экране монитора настолько реалистичное изображение, что не всегда можно поверить, что люди и предметы смоделированы математически, а не скопированы с фотографий. Правда, если поэкспериментировать с различными видеокартами, приглядываясь к мелким деталям на изображении, то можно заметить, что в одном случае картинка нравится, а в другом не очень, тут линии какие-то зазубренные, а здесь ровная поверхность воздушного шарика покрыта некими разводами. Иногда в играх пропадают какие-то детали игрового поля или оружие выглядит совсем по-другому. Причина здесь заключается в том, что видеокарта, являясь периферийным устройством, только по интерфейсу должна полностью соответствовать системной плате и монитору, а вот как внутри нее будет моделироваться трехмерное изображение - это остается прерогативой разработчиков. Более мощный (быстрый и с большим набором функций) графический процессор создаст более реалистическое изображение. Соответственно, разработчики графических процессоров, особенно в последнее время, значительно превосходя корпорацию Intel по части внедрения новинок, совершенствуют видеосистему персонального компьютера, превращая ее чуть ли не в самостоятельное устройство, хотя при этом сохраняется старая и архаичная система построения видеоизображения, которая появилась в первых компьютерах IBM PC.
Режимы работы видеокарты
Как это и ни странно звучит сегодня, но основной видеорежим у персональных компьютеров - это текстовый режим. В этом режиме графические элементы - линии и прямоугольники - создаются с использованием псевдографических символов. И лишь по командам операционной системы видеокарта переключается в графический режим. Это хорошо заметно, когда после включения питания компьютер работает под управлением программ BIOS. Во время начальной загрузки вывод информации на экран осуществляется в текстовом режиме с разрешением 720 х 400 (частота строк - 31,5 кГц, частота кадров - 70 Гц). Лишь изредка, во время тестирования самого видеоадаптера, происходит переключение в графический режим с разрешением 640 х 480 (частота строк - 31,5 кГц, частота кадров - 60 Гц). Отметим, что пользователи используют текстовый режим работы видеоподсистемы только в режиме MS-DOS или, например, в операционной системе Linux в режиме терминала. Появление двух различных принципов построения изображения на экране монитора возникло исторически. Текстовый режим достался персональному компьютеру IBM PC от вычислительных машин, где графический режим в то время являлся весьма уникальной особенностью, для поддержки которой требовалось необычайно много ресурсов. При этом чтобы рисовать на экране или печатающем устройстве, использовались различные ухищрения, например, создавали изображение с помощью набора символов букв, цифр и знаков препинания. Кстати, тогда активно использовался термин "средства машинной графики". На заре компьютерной эпохи текстовый режим был выгоден тем, что для хранения изображения экрана нужно было всего 4 Кбайта оперативной памяти (80 знаков в строке и 25 строк). Для каждого символа требовалось всего 2 байта видеопамяти (1-й байт - код символа, 2-й байт - яркость, цвет, мигание). После удешевления микросхем памяти и повышения производительности процессоров текстовый режим перестал пользоваться популярностью у пользователей, которые теперь предпочитают работать в графической оболочке, например, операционной системы Windows. Но в таком случае компьютеру приходится помнить о каждой точке на экране, т. е. один байт управляет не группой точек, как в текстовом режиме, а всего лишь одной. Причем, когда требуется выводить на экран монитора более качественное изображение, для хранения информации о цвете и яркости точки необходимо отводить 2, 3 или 4 байта. Так как пользователи после непродолжительного восторга от новейшего компьютера очень скоро снова становятся недовольными возможностями вывода графической информации на монитор, то разработчики компьютерного "железа" систематически вводят все новые и новые стандарты построения изображения. Вначале человеку приходилось работать за черно-белым монитором, потом появились цветные с довольно скромными характеристиками. Далее последовательно увеличивалось число выводимых на экран точек и количество цветов, которые можно было отобразить. Соответственно, каждый стандарт характеризовался разрешением и глубиной цвета (одновременно менялись значения кадровой и строчной развертки монитора, а также способ синхронизации изображения). Для того чтобы видеоадаптер и монитор могли корректно работать в любом стандарте, введены номера режимов, которые однозначно характеризуют разрешение, глубину цветности, частоту развертки, а также режим работы - текстовый или графический (номер режима используется программистами для работы с видеоадаптерами). Для старых стандартов MDA, CGA, HGC и EGA предназначены режимы работы видеокарты от 0 до 13h. Для стандарта VGA были введены режимы от 18h до 27h. Для современных режимов работы, согласно стандарту VESA VGA, определены номера от 10 lh до llAh (это также и режимы SVGA). Немного нужно сказать об условных обозначениях режимов. После режима VGA следует режим SVGA, точнее, все разрешения выше 640 х 480 и 16 цветов относят к SVGA (Super VGA). В принципе, для каждой комбинации разрешения и количества цветов существует собственное обозначение, но широко эти аббревиатуры не используются, т. к. фирмы-изготовители присваивают своим новым изделиям названия, чаще всего, с учетом рекламной привлекательности. Периодически делаются попытки ввести единую классификацию, но особых успехов пока ни одна международная организация не добилась (вопрос осложняется тем, что приходится учитывать и режимы работы дисплеев самых разнообразных устройств, например, дисплеев сотовых телефонов). Для ряда применений, например LCD-дисплеев и проекторов, популярна следующая классификация:
-
VGA - 640 x 480;
-
SVGA - 800 x 600;
-
XGA - 1024 x 768;
-
SXGA- 1280 x 1024.
Глубина цвета и разрешение
Первые компьютерные мониторы оперировали только двумя значениями яркости точки на экране: изображение точки есть - точка погашена. В настоящее время наиболее популярные режимы - это SVGA с разрешением 800 х 600 для 14- и 15-дюймовых мониторов и 1024 х 768 для 17-дюймовых. То есть при разрешении 800 х 600 изображение на экране монитора состоит из 480 000 точек, а при 1024 х 768 - из 786 432. Для каждой точки изображения указывается строго определенный цвет, который получается из смеси трех первичных цветов - красного, зеленого и синего. Общее количество оттенков может достигать миллионов цветов, но для самых простых режимов используется 16 или 256 цветов. Объем необходимой видеопамяти определяется в зависимости от разрешения (числа строк, умноженного на число точек в строке) и глубины цвета (необходимого числа байтов для хранения информации о каждой точке). Соответственно, формула, связывающая объем видеопамяти с разрешением и количеством воспроизводимых цветов, выглядит так:
Объем ОЗУ = (число точек в строке) х (число строк) х х (число байт на одну точку).
Первые два значения определяются желаемым вам режимом, а число битов (байтов) на одну точку или количество цветов выбирается из табл. 1. Возможные варианты выбора приведены в табл. 2 (указаны только те режимы, которые позволяют использовать современное программное обеспечение).
Tab.1.
Количество цветов |
Число битов |
2 |
1 |
4 |
2 |
16 |
4 |
256 |
8 |
32768 |
15 |
65536 |
16 |
16777216 |
24 |
Tab.2.
Разрешение |
Количество цветов |
Объем видеопамяти |
640-480 |
256 |
512 Mb |
800-600 |
256 |
1 Mb |
800-600 |
65 536 |
1 Mb |
800-600 |
16 777 216 |
2 Mb |
1024-768 |
256 |
1 Mb |
1024-768 |
65 536 |
2 Mb |
1024-768 |
16 777 216 |
4 Mb |
1280-1024 |
256 |
2 Mb |
1280-1024 |
65 536 |
4 Mb |
1280-1024 |
16 777 216 |
8 Mb |
Для работы современных офисных приложений и просмотра видеофильмов вполне хватает 8 Мбайт видеопамяти для разрешения 800 х 600 или 16 Мбайт для разрешения 1024 х 768. Использование 32, 64 и 128 Мбайт видеопамяти связано, в первую очередь, с интересами "игроманов", которым даже 128 Мбайт, честно говоря, не так уж много. Следует сказать, что стремительное увеличение объема видеопамяти в настоящее время не связано с таким же прогрессом повышения разрешения изображения на экране. Практически уже достигнут потолок для традиционных систем отображения видеоинформации. Основная же причина все большего наращивания оперативной памяти видеоадаптера состоит в том, что на плате видеоадаптера теперь находится видеопроцессор (графический процессор), который может самостоятельно, по управляющим командам центрального процессора, строить объемные изображения (они же - 3D), а это требует необычайно много ресурсов для хранения промежуточных результатов вычислений и образцов текстур, которыми заливаются условные плоскости моделируемых фигур.
Аппаратное ускорение графических функций
Стандартная видеокарта VGA персонального компьютера, как и ее предшественники MDA, CGA и EGA, по сути, представляет собой набор жесткой логики и видеопамяти. Все, что записывается центральным процессором в видеопамять, по строго определенным алгоритмам преобразуется в аналоговый видеосигнал, который подается на монитор. То есть, центральный процессор должен сам рассчитать параметры всех точек, которые должны быть в данный момент отражены на экране, и загрузить все данные в видеопамять. Любое изменение на экране, даже если это след мыши, это результат работы центрального процессора. Соответственно, чем больше используемое разрешение и количество цветов, тем больше процессор должен затрачивать времени на расчет всех точек формируемого растра. Например, в трехмерных играх, если используется простая видеокарта, видно, что экранные герои при повышении разрешения экрана начинают передвигаться рывками, а при изменении размеров окон в Windows заметно запаздывание прорисовки изменяемых экранных областей. Так как персональный компьютер с течением времени стал неразрывно связываться с графическим интерфейсом Windows и различными двух- и трехмерными играми, то разработчики "железа" предприняли ряд шагов по совершенствованию стандартной видеокарты, чтобы избавить центральный процессор от лишней работы по прорисовке элементарных изображений. Подобные устройства получили название ускорителей, или акселераторов. Вначале использовались аппаратные ускорители на отдельных платах. По мере совершенствования полупроводниковой технологии удалось разместить все элементы аппаратных ускорителей на самой плате видеокарты. Ныне чип на видеокарте самостоятельно рассчитывает новые параметры точек на экране по командам центрального процессора. Например, переместить окно Windows в другое место на экране, нарисовать и закрасить круг или прямоугольник. Уделим немного внимания терминологии:
-
2D Graphics - это двумерная графика, которая позволяет рисовать в одной плоскости. Например, пользовательский интерфейс операционной системы Windows является ярким примером двумерной графики;
-
3D Graphics - это трехмерная графика, которая позволяет создавать визуальное отображение трехмерного объекта на плоскости экрана. При этом видеопроцессор создает (математически рассчитывает) в видеопамяти трехмерный объект.
При описании способов построения 2- и 3-мерных изображений используются специальные термины, которые часто являются так называемыми "кальками" с соответствующих английских терминов (заметим, что не для всех английских терминов есть удачные русские варианты). Например, рендеринг (Rendering) - это термин, обозначающий процесс создания изображения на экране с использованием математической модели объекта и формул для добавления цвета и тени. Термин растеризация (Rasterization) обозначает процесс разделения объекта на пикселы. Часто упоминающийся термин текстура (Texture) обозначает двумерное изображение какой-то поверхности, например бумаги или металла, хранящееся в памяти в одном из стандартных пиксельных форматов. С точки зрения схемотехники графические ускорители двумерной графики представляют собой простые контроллеры, которые принимают от цен- трального процессора команды и строят те или иные фигуры в видеопамяти. При работе с трехмерной графикой вначале использовались те же принципы. Но требование повышения качества изображения привело к тому, что постепенно простенький контроллер на видеокарте превратился в мощный специализированный процессор со своей особой системой команд. Кроме того, поскольку расчет трехмерных изображений - это множество математических расчетов с плавающей запятой, то наиболее совершенные видеопроцессоры обзавелись и математическим сопроцессором. То есть, сейчас на современной видеокарте устанавливается процессор, мало уступающий по производительности современному Pentium. Следует отметить, что графический видеопроцессор умеет моделировать не только дву- и трехмерные изображения, но и, например, выполнять декомпрессию сжатых видеоданных при воспроизведении видеофильмов.
ЗD-конвейер
Так как современные видеокарты - это, в первую очередь, широкие возможности моделирования реалистических изображений объектов, то при покупке новой видеокарты надо понимать, что имеют в виду под тем или иным термином разработчики. Ведь у каждого разработчика чипов для видеокарт есть собственные фирменные технологии моделирования объектов. Кроме того, не следует забывать, что, в отличие от простых вычислений, методы построения объектов у каждой видеокарты чуть-чуть свои. Поэтому далее объясняются основы функционирования ЗD-конвейера или процесса расчета трехмерного изображения (точнее, его двумерной проекции). В процессе синтеза трехмерного объекта существуют несколько основных этапов (их количество зависит от типа видеокарты, используемого видеопроцессора):
-
построение геометрической модели - на этом этапе задаются координаты опорных точек и уравнения связывающих их линий, что приводит к созданию каркасной модели объекта (wireframe);
-
деление поверхности объекта на плоские элементарные элементы - работать со сложным объектом очень трудно, поэтому криволинейные поверхности превращают в набор прямоугольников или треугольников, создавая граненый объект. Процесс деления называется тесселяцией (tessellation);
-
трансформация - простые объекты чаще всего необходимо определен ным образом изменить или трансформировать (transformation), чтобы по лучился более естественный объект, или имитировать его перемещение в пространстве. Для этого координаты вершин граней объекта (вертексов) пересчитывают с использованием операций матричной алгебры и гео метрических преобразований. В современных видеокартах для этого ин- тенсивно используется геометрический сопроцессор, а в более старых - этим должен заниматься центральный процессор;
-
расчет освещенности и затенения - для того чтобы объект был виден на экране, надо рассчитать освещенность (lighting) и затенение (shading) каждого элементарного прямоугольника или треугольника. Причем необ ходимо имитировать реальное распределение освещенности, т. е. требу ется скрыть изменения освещенности между прямоугольниками или тре угольниками. Для этого используют различные методы интерполяции, например Гуро (Gouraud Shading) или Фонга (Phong Shading);
-
проецирование - трехмерный объект преобразуется в двумерный, но запоминаются расстояния вершин граней до поверхности экрана (координата z, г-буфер), на который проецируется объект;
-
обработка координат вершин - на этапах моделирования объекта все ко ординаты вершин граней получаются в виде чисел с плавающей запятой, но поскольку в видеопамять можно занести только целые числа, необхо димо осуществить этап преобразования. На этом же этапе может прово диться сортировка вершин, чтобы отбросить невидимые грани. При рас четах используется субпиксельная коррекция, когда каждый пиксел представляется в виде матрицы субпикселов, с которой проводятся вы числения;
-
удаление скрытых поверхностей - из двумерной проекции трехмерного объекта удаляются все невидимые поверхности. Этот процесс обычно проводится в несколько стадий на разных этапах ЗО-конвейера;
-
наложение текстур - т. к. возможности процессора видеокарты не бес конечны, поверхность объекта моделируется с помощью ограниченного количества прямоугольников или треугольников, поэтому, чтобы создать реалистичное изображение, на каждую элементарную поверхность накла дывают текстуру (texture), имитирующую реальную поверхность. Тексту ры хранятся в памяти в виде растровых картинок. Минимальный эле мент растровой картинки носит название тексел (texel - TEXture Element). Этап наложения текстур наиболее трудоемок и сложен, причем здесь возникает множество проблем с совмещением краев текстур сосед них плоскостей. Кроме того, при масштабировании изображения имеет место проблема согласования величины разрешения используемой тек стуры с разрешением монитора, т. к. при использовании текстуры с ма лым разрешением изображение на экране получается в виде набора цветных квадратиков, а при использовании текстур с большим разреше нием может не хватить памяти для их хранения;
-
создание эффектов прозрачности и полупрозрачности - на этом этапе проводится коррекция цвета пикселов (альфа-смешение, затуманивание) с учетом прозрачности смоделированных объектов, учитываются свойст ва окружающей объекты среды;
-
коррекция дефектов - смоделированные линии и границы объектов, если они не вертикальны или горизонтальны, на экране выглядят угловатыми, поэтому проводят коррекцию изображения, называемую антиалиасинг (anti-aliasing);
-
интерполяция недостающих цветов - если при моделировании объектов использовалось другое количество цветов, нежели чем в текущем режиме видеокарты, то необходимо рассчитать недостающие цвета или удалить избыточные. Этот процесс называется дизеринг (dithering).
После расчета всех точек кадра информация о каждом пикселе перемещается в видеопамять. Несмотря на все усилия разработчиков, моделирование фотореалистичного изображения до сих пор остается сложной проблемой. В частности, очень трудно моделировать такие, казалось бы, простые элементы, как волосы. Прогресс же в области моделирования можно увидеть, если сравнивать старые и новые кинофильмы, в которых использовалась компьютерная графика. Для того чтобы дать пример построения трехмерного изображения, на рис. 7.2 показана модель скелетного каркаса Wolfman, в котором используется 61 кость. Данное изображение строится видеопроцессором GeForce4 компании NVIDIA с использованием ряда фирменных технологий для трехмерной графики.
Мультимониторные системы
Пока не появилась шина PCI, персональный компьютер мог полноценно работать только с одной видеокартой, выводя изображение на один монитор, тогда как вторая видеокарта на шине ISA могла параллельно работать только в текстовом режиме. Шина PCI позволила устанавливать в системе произвольно число видеокарт. Учитывая это, начиная с Windows 98, корпорация Microsoft стала разрабатывать программное обеспечение с поддержкой мультимониторных систем. При установке в персональный компьютер двух видеокарт или одной видеокарты с двумя видеовыходами можно организовать более удобную работу с рядом приложений - чаще всего подобная возможность требуется при работе с графическими редакторами. В этом случае, скажем, на первичном мониторе (на него выводится информация BIOS при старте компьютера) осуществляется редактирование изображения, а на вторичном мониторе располагаются окна используемых в работе палитр. Но можно применить второй монитор и для дублирования изображения. Кроме того, в системе может быть установлено до 9 видеокарт, что позволяет, например, растянуть одно окно Windows на все мониторы для создания видеостенки. Мониторы можно группировать любым образом. Так как в современных компьютерах для установки видеокарты имеется только один слот AGP, а видеокарты для шины PCI стали редкостью, то ряд фирм выпускает двухканальные видеокарты. Наибольшей же известностью в России пользуется продукция компании Matrox. Верхний разъем DB-15 у этих видеокарт является выходом на первичный монитор. Нижний разъем предназначен для вторичного монитора, причем в ряде случаев устанавливается разъем типа DVI-I для подключения плоского монитора с цифровым управлением (мониторы VGA и SVGA являются аналоговыми).
Телевизионный прием
Для просмотра телепередач на персональном компьютере традиционно используются карты видеозахвата и карты TV-тюнеров, устанавливаемые в PCI-слот. Карты видеозахвата предназначены для оцифровки аналогового видеосигнала, который поступает с видеомагнитофона или видеокамеры, и, соответственно, работать с эфирным сигналом не могут. Карты TV-тюнеров используются для приема сигналов эфирного и кабельного телевидения, и для этого на карте устанавливается высокочастотный приемник. Наилучшее качество изображения обеспечивают карты видеозахвата, но цена этих карт достаточно велика, примерно от 500 до 1000 долларов. TV-тюнеры имеют более демократическую цену, но качество оцифровки не может удовлетворить вкусы любителей видеофильмов. TV-тюнер Aver TV и TV-тюнер MIRO являются наиболее доступными по цене для большинства пользователей (от 60 до 100 долларов). Это довольно типичные представители устройств, предназначенных для просмотра информационных передач телевидения и записей с аналоговых видеокамер бытового класса. При покупке TV-тюнеров следует обращать внимание на их возможности обрабатывать сигналы телевизионных стандартов, список которых приведен в табл. 3. Редко, но можно встретить продукцию других компаний. Так, компания ASUSTeK Computer Inc. выпускает две карты тюнеров - ASUS TV Tuner Card и ASUS TV FM Card. Компания ATI предлагает TV WONDER, TV WONDER PRO и TV WONDER VE. Существует и более удачный способ ввода/вывода телевизионного сигнала в компьютер - это использование современной видеокарты, в которой мощный видеопроцессор дополнительно может обрабатывать ТВ-сигнал. При рассмотрении телевизионных возможностей видеокарт следует учитывать, что есть две функции, которые обеспечивают сопряжение компьютера с телевизором:
-
первая - это формирование телевизионного сигнала для подачи на бытовой телевизор. Проблема достаточно сложная, т. к. ни один современный видеорежим монитора не совместим с телевизионными стандартами, но мощности видеопроцессоров ныне вполне хватает для осуществления преобразования компьютерной картинки в телевизионную. Правда, не все видеокарты могут похвастаться этим свойством;
-
вторая, наиболее интересная функция, - это оцифровка телевизионного изображения. Производители видеокарт, не желая увеличивать габариты печатных плат и заниматься достаточно сложными проблемами, связанными с многочисленными телевизионными стандартами, чаще предпочитают обрабатывать уже частично обработанный телевизионный сигнал. В этом случае на вход видеокарты через 4-контактный разъем DIN подается компонентный сигнал формата S-VHS (раздельная подача сигналов яркости и цветности). Такие выходы есть у ряда видеомагнитофонов и видеокамер. Но, скажем, на платах ALL-IN-WONDER с чипсетом RADEON производства компании ATI устанавливается полноценный высокочастотный блок.
При покупке видеокарты с телевизионными функциями обязательно надо обращать внимание на то, какие стандарты цветного телевидения может обрабатывать видеокарта. В частности, может ли она обрабатывать сигнал стандарта SEKAM. Кроме того, необходимо следить, чтобы программное обеспечение телевизионной части было разработано под операционную систему, которая установлена на вашем компьютере, иначе вы столкнетесь с проблемами настройки видеокарты в режиме приема телевизионного сигнала. В табл. 3 приведен перечень телевизионных форматов, которые используются в различных странах. Данные форматы поддерживает продукция фирмы NVIDIA. Правда, надо отметить, что число действующих стандартов для передачи телевизионного изображения несколько больше.
Таб. 3.
Формат |
Страна |
PAL-B |
Бельгия, Дания, Германия, Гвинея, Гонконг, Индия, Индонезия, Италия, Малайзия, Нидерланды, Норвегия, Португалия, Сингапур, Испания, Швеция, Швейцария |
PAL-D |
Китай, Северная Корея |
PAL-G |
Дания, Германия, Финляндия, Италия, Малайзия, Нидерланды, Норвегия, Португалия, Испания, Швеция, Швейцария |
PAL-H |
Бельгия |
PAL-I |
Гонконг, Великобритания |
PAL-K1 |
Гвинея |
PAL-M |
Бразилия |
PAL-N |
Франция, Парагвай, Уругвай |
PAL-NC |
Аргентина |
NTSC-J |
Япония |
NTSC-M |
Канада, Чили, Колумбия, Коста-Рика, Эквадор, Гаити, Гондурас, Мексика, Панама, Пуэрто-Рико, Южная Корея, Тайвань, США, Венесуэла |
|