Реферат Эволюция компьютерных видеосистем
Работа добавлена на сайт bukvasha.net: 2015-10-28Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
от 25%
договор
ВОРОНЕЖСКИЙ ИНСТИТУТ ВЫСОКИХ ТЕХНОЛОГИЙ
Факультет заочного и послевузовского обучения
КОНТРОЛЬНАЯ РАБОТА № ___
по дисциплине: __________________________________________________
Выполнил(а) студент(ка): __________________________________________
Адрес: __________________________________________________________
Группа: _________ (_______________________________________________)
Курс: ______ Шифр: _____________
Проверил преподаватель: __________________________________________
Эволюция
компьютерных видеосистем
Компьютерные видеосистемы рассмотрим на примере персональных компьютеров класса IBM PC. Первый персональный компьютер фирмы IBM появился в 1981 году. Сейчас уже можно сказать, что появление как раз этого компьютера привело к значительному распространению персональных компьютеров. Некоторые особенности архитектуры IBM PC сохранены и по сей день (рис. 1,49).
Рис. 1.49. Общая упрощенная структура персонального компьютера
Одной из таких особенностей, которые выгодно отличали его от других персональных компьютеров, является открытость архитектуры. Это означает гибкие возможности подключения разнообразных устройств, простоту модернизации компьютера. Важным фактором была цена — для IBM PC она была меньшей, чем, например, для компьютеров Apple, которые были лучше по другим показателям (в первую очередь, по графическим возможностям). Кроме того, с самого начала пользователям компьютеров семейства IBM PC были доступны разнообразные средства программирования — миллионы пользователей получили возможность сами разрабатывать программное обеспечение. Все это привело к массовому распространению таких компьютеров, использованию в разнообразных областях.
Важная черта архитектуры персонального компьютера с позиций графики — то, что контроллер видеосистемы (видеоадаптер) расположен рядом с процессором и оперативной памятью, так как подключен к системной шине через скоростную локальную шину. Это дает возможность быстро вести обмен данными между оперативной памятью и видеопамятью. Для вывода графических изображений, в особенности в режиме анимации, нужна самая высокая скорость передачи данных. В отличие от этого в больших компьютерах (мэйнфреймах) данные к дисплеям передавались через интерфейс канала ввода-вывода, который работает намного медленнее, чем системная шина. Большие компьютеры, как правило, работают со многими дисплеями, расположенными на значительном расстоянии.
Первый компьютер IBM PC был оснащен видеоадаптером MDA (Monochrome Display Adapter). Видеосистема была предназначена для работы в текстовом режиме — отображалось 25 строк по 80 символов в каждой строке.
Год спустя небольшая фирма Hercules выпустила видеоадаптер Hercules Graphic Card. Он поддерживал также и графический черно-белый режим 720x348.
Следующим шагом был видеоадаптер CGA (Color Graphic Adapter). Это первая цветная модель для IBM PC. Адаптер CGA позволял работать в цветном текстовом или графическом режимах. Далее мы будем рассматривать только графические режимы видеоадаптеров. Графических режимов для CGA было два: черно-белый 640*200 и цветной 320x200. В цветном режиме можно было отображать только четыре цвета одновременно (2 бита на пиксель).
В 1984 году появился адаптер EGA (Enhanced Graphic Adapter). Это было значительное достижение для персональных компьютеров этого типа. Появился графический 16-цветный видеорежим 640x350 пикселов. Цвета можно выбирать из палитры 64 цветов. В это время уже получили распространение компьютерные игры с более или менее качественной графикой и графические программы для работы. Однако шестнадцати цветов явно мало для показа изображений типа фотографий, а разрешающая способность недостаточна для графических пакетов типа САПР. Кроме того, видеорежим 640x350 имеет еще один недостаток — различная разрешающая способность по горизонтали и вертикали — "не квадратные пиксели".
В 1987 году появились видеоадаптеры MCGA (Multi-Color Graphic Array) и VGA (Video Graphic Array). Они обеспечивали уже 256-цветные видеорежимы.
Более совершенным был адаптер VGA— он стал наиболее популярным. Адаптер VGA имел 256-цветный графический видеорежим с размерами растра 320 х200. Цвета можно выбирать из палитры в 256 тысяч цветов. Это дало возможность полностью удовлетворить потребности отображения полутоновых черно-белых фотографий. Цветные фотографии отображались достаточно качественно, однако 256 цветов мало, поэтому в компьютерных играх и графических пакетах, активно использовался дизеринг. Кроме того, режим 320x200 тоже имеет различную разрешающую способность по горизонтали и вертикали. Для мониторов, которые используются в персональных компьютерах типа IBM PC, необходимо, чтобы количество пикселов по горизонтали и вертикали была в пропорции 4:3. То есть, не 320x200, а 320x240. Такого документированного видеорежима для VGA нет, однако в литературе [39] приведен пример, как создать 256-цветный видеорежим 320х240 на видеосистеме VGA. Можно запрограммировать видеоадаптер, записав в его регистры соответствующие значениями получить видеорежим "X" (не путать с XGA). Несколько лет тому назад автор этой книги проверял сведения, приведенные в статье [39], и может подтвердить, что действительно, "X — видеорежим" 256 цветов 320x240 может быть установлен для любой видеосистемы VGA (во всяком случае, не было найдено ни одной, где этого делать нельзя).
Видеоадаптер VGA также имеет 16-цветный видеорежим 640х480. Это соответствует "квадратным пикселям". Рост разрешающей способности в сравнении с EGA не очень большой, но ощутимый, что дает новый толчок для развития графических программ на персональных компьютерах.
Дальнейшее развитие видеоадаптеров для компьютеров типа IBM PC связано с повышением разрешающей способности и количества цветов. Можно отметить видеосистему IBM 8514, которая была предназначена для работы с пакетами САПР. Стали появляться видеоадаптеры различных фирм, которые обеспечивали на первых порах видеорежимы 800х600, а потом и 1024x768 цветов при 16-ти цветах, и видеорежимы 640x480, 800x600 и больше для 256 цветов. Эти видеоадаптеры стали называть SuperVGA. Чуть позже появился видеоадаптер IBM XGA.
Первой достигла глубины цвета в 24 бит фирма Targa с видеоадаптером Targa24, что позволило получить на персональных компьютерах IBM PC видеорежим True Color. Такое достижение можно считать началом профессиональной графики на персональных компьютерах этого типа. Там, где ранее использовались графические рабочие станции или персональные компьютеры Apple Macintosh, отныне постепенно переходили на более дешевые компьютеры IBM PC. Одной из таких областей является компьютерное настольное издательство.
Сейчас на компьютерах IBM PC с процессором Pentium используется много типов видеоадаптеров. Все видеосистемы растрового типа. Некоторые из них позволяют устанавливать глубину цвета 32 бит на пиксель при размерах растра 1600x1200 и более. Существуют стандарты на видеорежимы, установленные VESA (Video Electronic Standards Association).
Параметры отображения обусловливаются не только моделью видеоадаптера, но и объемом установленной видеопамяти. Видеопамять персонального компьютера (VRAM — Video RAM) хранит растровое изображение, которое показывается на экране монитора. Изображение на мониторе полностью соответствует текущему содержанию видеопамяти. Видеопамять постоянно сканируется с частотой кадров монитора. Запись новых данных в видеопамять немедленно изменяет изображение на мониторе. Необходимый объем видеопамяти вычисляется как площадь растра экрана в пикселях, умноженная на количество бит (или байтов) на пиксель. Например, для 24-битного видеорежима 1024x768 нужна видеопамять 24x1024x768 = 18 874 368 бит = - 2.25 Мбайт.
В видеоадаптерах первых образцов количество видеопамяти вычислялось в килобайтах, например, адаптер CGA имел 16 Кбайт [6, 29]. В современных видеоадаптерах счет идет на мегабайты. Как правило, объем видеопамяти кратен степени двойки— 1, 2, 4, 8 Мбайт, встречаются также видеоадаптеры с 16 Мбайт и более. Наблюдается тенденция увеличения объемов видеопамяти — соответственно увеличению разрешающей способности и глубины цвета видеосистем. В видеопамяти могут храниться несколько кадров изображения — это может быть использовано при анимации. Кроме того, в некоторых видеоадаптерах предусмотрена возможность использования видеопамяти для хранения другой информации, например Z-буфера, растров текстур.
Адреса, по которым процессор обращается к видеопамяти, находятся в общем адресном пространстве. Например, для видеорежимов VGA 256 цветов 320х200, 16 цветов 640x480, а также для некоторых других, адрес первого байта видеопамяти равен А000:0000 (сегмент: смещение) или АОООО (абсолютный адрес) (рис. 1.50).
Рис. 1.50. Адрес видеопамяти для графических видеорежимов VGA
Для некоторых видеорежимов (старых образцов) используется другой адрес, например, В800:0000 для CGA 320x200. Современные видеоадаптеры обычно поддерживают видеорежимы, которые использовались ранее. Это делается для обеспечения возможности функционирования старых программ. Каждый видеорежим имеет собственный номер (код).
Кроме физической организации памяти компьютера — в виде одномерного вектора байтов в общем адресном пространстве, необходимо учитывать логическую организацию видеопамяти. Следует отметить, что названия "физическая" и "логическая" организация могут означать разные вещи для различных уровней рассмотрения. Например, если говорить о физической организации памяти, то она в микросхемах выглядит совсем не как одномерный вектор байтов, а как матрица бит. Логическая организация видеопамяти зависит от видеорежима. В качестве примера на рис. 1.51 приведен видеорежим VGA 256 цветов 320 х200 (его код 13h).
Рис. 1.51. Один байт на пиксель для видеорежима VGA 320*200
Намного сложнее логическая организация видеопамяти для видеорежима VGA 16 цветов 640х480 (код 12h), показанная на рис 1.52.
Рис. 1.52. Четыре битовые плоскости видеорежима 16 цвета 640*480
В этом видеорежиме используются четыре массива байтов памяти. Каждый массив назван битовой плоскостью, для каждого пикселя используются одинаковые биты данных различных плоскостей. Каждая битовая плоскость имеет 80 байтов в одной строке. Плоскости имеют одинаковый адрес в памяти, для доступа к отдельной плоскости необходимо устанавливать индекс плоскости в соответствующем регистре видеоадаптера. Подобный способ организации видеопамяти используется во многих других видеорежимах, он позволяет, например, быстро копировать массивы пикселов.
Для сохранения нескольких кадров изображения в некоторых видеорежимах предусматриваются отдельные страницы видеопамяти с одинаковой логической организацией. Тогда можно изменять стартовый адрес видеопамяти — это приводит к сдвигу изображения на экране. Во всех графических видеорежимах стартовый адрес видеопамяти соответствует левому верхнему пикселю на экране. Поэтому координатная система с центром координат (0,0) в левом верхнем углу растра часто используется в качестве основной (или устанавливается по умолчанию) во многих графических интерфейсах программирования, например, в API Windows.
Обмен данными по системной шине для видеосистемы обеспечивают процессор, видеоадаптер и контроллер локальной шины. До недавнего времени для подключения видеоадаптеров использовалась локальная шина PCI (Peripheral Component Interconnect local bus). Шина PCI предназначена не только для графики, она является стандартом подключения самых разнообразных устройств, например, модемов, сетевых контроллеров, контроллеров интерфейсов. Эта шина— 32-битная, работает на частоте 33 МГц, скорость обмена до 132 Мбайт/с.
В настоящее время видеоадаптеры подключаются через локальную шину AGP (Accelerated Graphics Port). Разрядность — 64 бит. На частоте 66 МГц обеспечивала скорость обмена 528 Мбайт/с. Сейчас AGP работает и на более высоких частотах. Шина AGP была разработана для повышения скорости обмена данными между видеоадаптером и оперативной памятью в сравнении с возможностями шины PCI. Это позволяет достичь большей частоты кадров при работе графических ЗD-акселераторов. Высокая скорость обмена с оперативной памятью также позволяет хранить в этой памяти растровые текстуры (ранее для этого часто использовалась видеопамять, однако ока обычно имеет недостаточную для этого емкость). Наличие AGP-порта также приводит к возрастанию быстродействия компьютера в целом благодаря уменьшению нагрузки на шину PCI, что дает возможность эффективнее использовать последнюю для работы с сетью, мультимедиа.
Современные видеоадаптеры представляют собой сложные электронные устройства. Кроме видеопамяти, на плате видеоадаптера (сейчас его часто называют видеокартой) располагается мощный специализированный графический процессор, который по сложности уже приближается к центральному процессору. Кроме визуализации содержимого видеопамяти графический процессор видеоадаптера выполняет как относительно простые растровые операции — копирование массивов пикселов, манипуляции с цветами пикселов, так и более сложные. Там, где ранее использовался исключительно центральный процессор, в данное время все чаще применяется графический процессор видеоадаптера, например, для выполнения операций графического вывода линий, полигонов. Первые графические процессоры видеоадаптеров выполняли преимущественно операции рисования плоских элементов. Современные графические процессоры выполняют уже много базовых операций ЗD-графики, например, поддержку Z-буфера, наложение текстур и тому подобное. Видеоадаптер выполняет эти операции аппаратно, что позволяет намного ускорить их в сравнении с программной реализацией данных операций центральным процессором. Так появился термин графические акселераторы. Быстродействие таких видеоадаптеров часто измеряется в количестве графических элементов, которые рисуются за одну секунду. Современные графические акселераторы способны рисовать миллионы треугольников за секунду. Возможности графических акселераторов сейчас активно используются разработчиками компьютерных игр.
Широка номенклатура видеоадаптеров для персональных компьютеров. Несколько примеров. Видеоадаптеры Matrox (качественная двумерная графика), NVidia GeForce (игровые ЗD-акселераторы), 3Dlabs Wildcat (для профессионального ЗD-моделирования).
Использование программистами графических возможностей видеосистемы может осуществляться различно. Во-первых, простейшие операции, такие как определение графического видеорежима, вывод пикселя на экран и некоторые другие, поддерживаются BIOS. Во-вторых, можно использовать функции операционной системы. Различные операционные системы могут предоставлять различные возможности. Например, в MS-DOS графических функций почти не было, однако программисту был разрешен свободный доступ ко всем аппаратным ресурсам компьютера. В быстродействующих графических программах часто использовался непосредственный доступ к видеопамяти. В отличие от этого, операционная система Windows запрещает прикладным программам непосредственный доступ к аппаратным ресурсам, однако можно применять несколько сотен графических функций операционной системы — интерфейс API. В-третьих, можно использовать специализированные графические интерфейсы, которые поддерживают аппаратные возможности современных графических процессоров.
Одним из наиболее известных графических интерфейсов является OpenGL. Этот интерфейс в виде библиотеки графических функций был разработан Silicon Graphics, и поддерживается многими операционными системами (в том числе Windows), а также производителями графических акселераторов. Интерфейс OpenGL для графического отображения использует взаимодействие типа клиент-сервер.
Другим известным графическим интерфейсом является DirectX с подсистемой трехмерной графики Direct3D, а также подсистемой Direct Draw, которая обеспечивает, в частности, непосредственный доступ к видеопамяти. Этот интерфейс разработан Microsoft и предназначен только для Windows.
Известны также другие разработки графических интерфейсов для видеоадаптеров. Например, интерфейс GLide, разработанный 3Dfx для графических видеоадаптеров семейства Voodoo (впрочем, это уже история, поскольку фирма 3Dfx недавно прекратила свое существование как изготовитель видеоадаптеров).