Видеоадаптеры

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

Прежде всего, это функции по ускорению вывода видео в форматах AVI, Indeo, MPEG-1 и других. Проблема в том, что видеофильм в формате NTSC идет со скоростью 30 кадров в секунду, PAL и SECAM — 25 кадр/с. Скорость смены кадров в цифровом видео перечисленных форматов также меньше или равна 30 кадр/с, однако разрешение изображения редко превышает 320 x 240 пикселов. При этих параметрах скорость поступления информации составляет порядка 6 Мбайт/с и процессор успевает выполнить ее декомпрессию и пересылку по шине в видеопамять. Однако такой размер изображения слишком мал для комфортного просмотра на экране, поэтому его обычно масштабируют на весь экран. В этом случае скорость потока данных возрастает до десятков и сотен мегабайт в секунду. Это обстоятельство привело к появлению видеоакселераторов, которые умеют самостоятельно масштабировать видео в форматах AVI и MPEG-1 на весь экран, а также выполнять сглаживание отмасштабированного изображения, чтобы оно не выглядело, как набор квадратиков. Подавляющее большинство современных 2D-ускорителей являются в то же время и видеоускорителями, а некоторые, например ATI Rage128, умеют воспроизводить и видео в формате MPEG-2 (т. е. с исходным разрешением 720 х 480).

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

Видеоакселераторы

3D-акселераторы

Когда в роли двигателя прогресса выступили компьютерные игры, 2D-ускорители (см. Видеоакселераторы) почти исчерпали свои возможности, и эволюция видеокарт пошла по пути наделения их все более мощными средствами ускорения трехмерной машинной графики. Видеоадаптеры, способные ускорять операции трехмерной графики, получили название 3D-ускорителей (синонимом является 3D-акселератор, а также часто встречаемое жаргонное «3Dfx» для обозначения всех 3D-ускорителей, а не только произведенных компанией 3Dfx Interactive). Вообще, 3D-ускорители существовали и раньше, но областью их применения было трехмерное моделирование и САПР, стоили они очень дорого (от 1 до 15 тыс. долларов) и были практически недоступны массовому пользователю.

Какие же действия ускоряет 3D-акселератор? В компьютере трехмерные объекты представляются с помощью геометрических моделей, состоящих из сотен и тысяч элементарных геометрических фигур, обычно треугольников. Задаются также пространственное положение источников света, отражательные свойства материала поверхности объекта, степень его прозрачности и т. п. При этом некоторые объекты могут частично загораживать друг друга, между ними может переотражаться свет; пространство может быть не абсолютно прозрачным, а затянутым туманом или дымкой. Для большего реализма необходимо учесть и эффект перспективы. Чтобы поверхность смоделированного объекта не выглядела искусственной, на нее наносится текстура — двухмерная картинка небольшого размера, передающая цвет и фактуру поверхности. Все перечисленные трехмерные объекты с учетом примененных к ним эффектов должны в конечном итоге быть преобразованы в плоское изображение. Эту операцию, называемую рендерингом, и выполняет 3D-ускоритель.

Перечислим наиболее распространенные операции, которые 3D-ускоритель выполняет на аппаратном уровне:

Удаление невидимых поверхностей. Обычно выполняется по методу Z-буфера, который заключается в том, что проекции всех точек трехмерной модели объекта на плоскость изображения сортируются в специальной памяти (Z-буфере) по расстоянию от плоскости изображения. В качестве цвета изображения в данной точке выбирается цвет той точки в Z-буфере, которая наиболее близка к плоскости изображения, а остальные точки считаются невидимыми (если не включен эффект прозрачности), так как они загорожены от нас самой первой точкой. Эта операция выполняется подавляющим большинством 3D-ускорителей. В большинстве современных ускорителей предусмотрены 16-разрядные Z-буферы, размещаемые в видеопамяти на плате.

Закрашивание (Shading) придает треугольникам, составляющим объект, определенный цвет, зависящий от освещенности. Бывает равномерным (Flat Shading), когда каждый треугольник закрашивается равномерно, что вызывает эффект не гладкой поверхности, а многогранника; по Гуро (Gouraud Shading), когда интерполируются значения цвета вдоль каждой грани, что придает криволинейным поверхностям более гладкий вид без видимых ребер; по Фонгу (Phong Shading), когда интерполируются векторы нормали к поверхности, что позволяет добиться максимальной реалистичности, однако требует больших вычислительных затрат и в массовых 3D-ускорителях пока не используется. Большинство 3D-ускорителей умеет выполнять закрашивание по Гуро.

Отсечение (Clipping) определяет часть объекта, видимую на экране, и обрезает все остальное, чтобы не выполнять лишних расчетов.

Расчет освещения. Для выполнения этой процедуры часто применяют метод трассировки лучей (Ray Tracing), позволяющий учесть переотражения света между объектами и их прозрачность. Эту операцию с разным качеством умеют выполнять все 3D-ускорители.

Наложение текстур (Texture Mapping), или наложение плоского растрового изображения на трехмерный объект с целью придания его поверхности большей реалистичности. Например, в результате такого наложения деревянная поверхность будет выглядеть именно как сделанная из дерева, а не из неизвестного однородного материала. Качественные текстуры обычно занимают много места. Для работы с ними применяют 3D-ускорители на шине AGP, которые поддерживают технологию сжатия текстур. Наиболее совершенные карты поддерживают мультитекстурирование — одновременное наложение двух текстур.

Фильтрация (Filtering) и сглаживание (Anti-aliasing). Под сглаживанием понимается уменьшение искажений текстурных изображений с помощью их интерполяции, особенно на границах, а под фильтрацией понимается способ уменьшения нежелательной «зернистости» при изменении масштаба текстуры при приближении к 3D-объекту или при удалении от него. Известна билинейная фильтрация (Bilinear Filtering), в которой цвет пиксела вычисляется путем линейной интерполяции цветов соседних пикселов, а также более качественная трилинейная фильтрация с использованием MIP-карт (Trilinear MIP Mapping). Под MIP-картами (от лат. Multum in Parvum — «многое в одном») понимается набор текстур с разными масштабами, что позволяет в процессе трилинейной фильтрации выполнять усреднение между соседними пикселами и между соседними MIP-картами. Трилинейная фильтрация дает особенный эффект при наложении текстур на протяженный объект, удаляющийся от наблюдателя. Современные платы поддерживают трилинейную фильтрацию.

Прозрачность, или альфа-канал изображения (Transparency, Alpha Blending) — это информация о прозрачности объекта, позволяющая строить такие прозрачные и полупрозрачные объекты, как вода, стекло, огонь, туман и дымка. Наложение тумана (Fogging) часто выделяется в отдельную функцию и вычисляется отдельно.


Страница: