Видеосистема РС

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

Графический режим

В графическом режиме имеется возможность индивидуального управление свечением каждой точки экрана монитора независимо от состояния остальных. Этот режим обозначают как Gr (Graphics) или APA (All Points Addressable я все точки адресуемы). В графическом режиме каждой точке экрана я пикселу я соответствует ячейка специальной памяти, которая сканируется схемами адаптера синхронно с движением луча монитора. Эта постоянно циклически сканируемая (с кадровой частотой) память называется видеопамятью (Video Memory), или VRAM (Video RAM). Последнее сокращение можно спутать с названием специализированных микросхем динамической памяти, оптимизированной именно под данное применение. Процесс постоянного сканирования видеопамяти называется регенерацией изображения, и, к счастью, этого же сканирования оказывается достаточным для регенерации информации микросхемам динамической памяти, применяемой в этом узле. Для программно-управляемого построения изображений к видеопамяти также должен обеспечиваться доступ и со стороны системной магистрали компьютера, причем как по записи, так и по чтению. Количество бит видеопамяти, отводимое на каждый пиксел, определяет возможное число состояний пиксела я цветов, градаций яркости или иных атрибутов (например, мерцание). Так при одном бите на пиксел возможно лишь два состояния я светится или не светится. Два бита на пиксел доставляли немало удовольствия любителям цветных игрушек даже на адаптерах CGA я можно было иметь одновременно четыре цвета на экране. Четыре бита на пиксел (16 цветов), обеспечиваемые адаптером EGA, были достаточны для многих графических приложений (например, графика в САПРах). Пределом мечтаний в свое время было 256 цветов (8 бит на пиксел) адаптера VGA я цветная фотография розы на экране монитора казалась великолепной. Сейчас остановились на режимах High Color (15 бит я 32768 цветов или 16 бит я 65536 цветов), а для профессионалов я True Color - "верный цвет" (24 бит я 16.7 млн. цветов), реализуемых современными адаптерами и мониторами SVGA. 15 и 24ябита распределяются между базисными цветами R:G:B поровну (5:5:5 и 8:8:8), 16ябит я с учетом особенностей цветовосприятия неравномерно (5:6:5 или 6:6:4).
Логически видеопамять может быть организована по-разному, в зависимости от количества бит на пиксел, но в любом случае имеет место отображение матрицы пикселов экрана на биты видеопамяти я Bit Mapping. Растровый формат хранения изображений, при котором биты так или иначе отображают пикселы, называется битовой картой (Bit-Map). С точки зрения плотности хранения графической информации этот формат не самый эффективный, но в видеопамяти растрового дисплея из-за напряженности со временем при регенерации изображения иной формат неприемлем. Объем видеопамяти (в битах), требуемый для хранения образа экрана, определяется как произведение количества пикселов в строке на количество строк и на количество бит на пиксел. Так для режима 800 x 600 x 256 цветов требуется 480000 бит или около 469 Кб, а для режима 1024 x 768 True Color я 2.25 Мб. Если физический объем видеопамяти превышает необходимый для отображения матрицы всего экрана, видеопамять можно разбить на страницы яобласти видеопамяти, в которых умещаются образы целого экрана.
Формирование битовой карты изображения в видеопамяти графического адаптера производится под управлением программы, исполняемой центральным процессором. Сама по себе задача формирования процессору вполне по силам, но при ее решении требуется пересылка большого объема информации в видеопамять, а для многих построений еще и чтение видеопамяти со стороны процессора. Видеопамять большую часть времени занята выдачей информации схемам регенерации изображения в довольно напряженном темпе. От этого процесса она свободна только во время обратного хода луча по строке и кадру, но это меньшая часть времени. Если обращение к активной странице видеопамяти со стороны процессора происходит во время прямого хода, и быстродействия схем адаптера недостаточно для того, чтобы это обращение вписалось между соседними выборками процесса регенерации, на экране появится штрих от несчитанной информации пикселов. Если такое обращение происходит часто, на экране появляется "снег", что неприятно. Дожидаться обратного хода по строке или кадру накладно: строчный период коротких (несколько микросекунд) интервалов обратного хода имеет порядок 25 мкс, а кадровый период длинного (миллисекунды) обратного хода имеет порядок 20 мс, в то время как цикл обращения процессора к обычной памяти не превышает сотен (а у современных компьютеров я десятков) наносекунд. Так что канал связи процессора с видеопамятью представляет собой узкое горлышко, через которое пытаются протолкнуть немалый поток данных, причем чем более высокое разрешение экрана и чем больше цветов (бит на пиксел), тем этот поток должен быть интенсивнее. Конечно, при выводе статической картинки это вроде и не страшно, но "оживить" изображение оказывается проблематично. Выходов из этого затруднения имеется несколько. Во-первых, повышают быстродействие видеопамяти. Во-вторых, расширяют разрядность шин графического адаптера, причем как внутренней (шины видеопамяти), так и интерфейсной, и применяют высокопроизводительные шины (локальную VLB, PCI или AGP). Расширение разрядности позволяет за один цикл обращения передать большее количество бит данных я повысить производительность. Однако если у адаптера, к примеру VGA, разрядность интерфейсной шины 16 бит, а установлен минимальный объем памяти, при котором используется только 8 бит, то эффективная разрядность интерфейса окажется всего 8 бит. Этим объясняется не совсем очевидный факт, что производительность графического адаптера зависит от объема установленной видеопамяти. В-третьих, повысить скорость видеопостроений можно применением кэширования видеопамяти или теневой видеопамяти, что по сути почти одно и то же. В этом случае при записи в область видеопамяти данные будут записаны как в видеопамять, так и в ОЗУ (или даже в кэш), а при считывании из этой области обращение будет только к быстродействующему ОЗУ. И в-четвертых, можно принципиально сократить объем информации, передаваемой графическому адаптеру, но для этого графический адаптер должен быть наделен "интеллектом". В современных компьютерах используются все эти решения.
Под интеллектом графического адаптера подразумевается наличие на его плате собственного процессора, способного формировать растровое изображение в видеопамяти (bit-map) по командам, полученным от центрального процессора. Команды ориентируются на наиболее часто используемые методы описания изображений, которые строятся из отдельных графических элементов более высокого уровня, чем пикселы.
Команды рисования (Drawing Commands) обеспечивают построение графических примитивов я точки, отрезка прямой, прямоугольника, дуги, эллипса. Примитивы такого типа в командах описываются в векторном виде, что гораздо компактнее, чем их растровый образ. Таким образом удается значительно сократить объем передаваемой графической информации за счет применения более эффективного способа описания изображений. К командам рисования относится и заливка замкнутого контура, заданного в растровом виде, некоторым цветом или узором (pattern). Она ускоряется особенно эффективно: при программной реализации процессор должен просмотреть содержимое видеопамяти вокруг заданной точки, двигаясь по всем направлениям до обнаружения границы контура и изменяя цвет пикселов на своем пути. При этом требуется чтение большого объема данных видеопамяти, их анализ и запись модифицированных данных обратно в видеопамять. Процессор интеллектуального адаптера способен выполнить эту операцию быстро и не выходя с этим потоком данных на внешнюю магистраль.
Копирование блока с одного места экрана на другое применяется для "прокрутки" изображения экрана в разных направлениях. Эта команда сводится к пересылке блока бит я BitBlT (Bit Block Transferring), и эта операция интеллектуальным адаптером может быть сильно ускорена.
Для формирования курсора на графическом экране применяют команды работы со спрайтами. Спрайт (Sprite) я небольшой прямоугольный фрагмент изображения, который может перемещаться по экрану как единое целое. Перед использованием его программируют я определяют размер и его растровое изображение, после чего он может перемещаться по экрану, для чего достаточно только указывать его координаты.
Аппаратная поддержка окон (Hardware Windowing) упрощает и ускоряет работу с экраном в многозадачных (многооконных) системах. На традиционном графическом адаптере при наличии нескольких, возможно перекрывающих друг друга окон программе приходится отслеживать координаты обрабатываемых точек с тем, чтобы не выйти за пределы своего окна. Аппаратная поддержка окон упрощает вывод изображений: каждой задаче выделяется свое окно я область видеопамяти требуемого размера, в котором она работает монопольно. Взаимное расположение окон сообщается интеллектуальному адаптеру, и он для регенерации изображения синхронно с движением луча по растру сканирует видеопамять не линейно, а перескакивая с области памяти одного окна на другое. Если объем видеопамяти превышает необходимый для данного формата экрана и глубины цветов, то в ней можно строить изображение, превышающее по размеру отображаемую часть. Интеллектуальному адаптеру можно поручить панорамирование (Panning) я отображение заданной области. При этом горизонтальная и вертикальная прокрутка изображения не потребует операций блочных пересылок (конечно, в пределах сформированного большого изображения) я для перемещения достаточно лишь изменить указатель положения (этакий "большой спрайт").
Вышеописанные функции интеллектуального адаптера относятся к двумерной графике (2D). Современные графические адаптеры берут на себя и многие функции построения трехмерных изображений. Не вдаваясь в подробности (это может быть темой отдельного разговора), можно сказать, что трехмерное изображение должно состоять из ряда поверхностей различной формы. Эти поверхности "собираются" из отдельных элементов, чаще треугольников, каждый из которых имеет трехмерные координаты вершин и описание поверхности (цвет, узор). Перемещение объектов (или наблюдателя) приводит к необходимости пересчета всех координат. Для создания реалистичных изображений учитывается перспектива я пространственная и атмосферная (дымка или туман), освещенность поверхностей и отражение света от них, прозрачность и многие факторы. Конечно, для построения сложных изображений графическому адаптеру будет явно тесно в ограниченном объеме видеопамяти. Для обеспечения доступа к основной памяти компьютера он должен иметь возможность управления шиной (bus mastering). Специально для таких адаптеров в 1996 г. появился новый канал связи с памятью я AGP (Accelerated Graphic Port, который будет описан позже.
Ускорение построений в интеллектуальном адаптере обеспечивается несколькими факторами. Во-первых, это сокращение объема передачи по магистрали. Во-вторых, во время работы процессора адаптера центральный процессор свободен, что ускоряет работу программ даже в однозадачном режиме. В-третьих, процессор адаптера, в отличие от процессора с самой сложной в мире системой команд я представителя семейства x86, ориентирован на выполнение меньшего количества инструкций, а потому способен выполнять их гораздо быстрее центрального. И в-четвертых, скорость обмена данных внутри адаптера может повышаться за счет лучшего согласования обращений к видеопамяти для операций построения с процессом регенерации изображения, а также за счет расширения разрядности внутренней шины данных адаптера. В современных графических адаптерах широко применяется двухпортовая видеопамять VRAM и WRAM, а разрядность внутренней шины 64 бит (при 32-битной внешней шины) считается нормой. На подходе и адаптеры со 128-разрядной внутренней шиной. Правда, и здесь полная разрядность шины (но уже внутренней) может и не использоваться при малом объеме установленной видеопамяти.
По отношению к центральному процессору и оперативной памяти компьютера различают графические сопроцессоры и акселераторы. Графический сопроцессор представляе собой специализированный процессор с соответствующим аппаратным окружением, который подключается к системной шине компьютера и имеет доступ к его оперативной памяти. В процессе своей работы сопроцессор пользуется оперативной памятью, конкурируя с центральным по доступу и к памяти, и к шине. Графический акселератор работает автономно, и при решении своей задачи со своим огромным объемом данных может и не выходить на системную шину. Акселераторы являются уже традиционной составляющей частью практически всех современных графических адаптеров. Акселераторы двумерных операций (2D-accelerators), необходимых для реализации графического интерфейса пользователя GUI (Graphic User Interface) часто называют Windows-акселераторами, поскольку их команды обычно ориентированы на функции этой популярной оболочки и операционной системы. Более сложные акселераторы выполняют и трехмерные построения, их называют 3D-акселераторами. Итак, мы рассмотрели варианты организации видеопамяти и кратко обсудили способы формирования в ней битовой карты изображения. При регенерации на выходе видеопамяти (или сдвиговых регистров) имеется некоторое количество бит, отвечающих за раскраску текущего выводимого пиксела. Количеством этих бит N определяется максимальное число цветов, присутствующих на экране C=2N. Однако трактовать эти биты можно по-разному. При одном бите на пиксел и монохромном мониторе трактовка в принципе однозначна (светится - не светится), хотя были мониторы, допускающие реверс изображения. При двух битах на точку возможности цветного монитора, у которого можно управлять тремя цветами, используются ограниченно: монитор обеспечивает по крайней мере 8 цветов, а адаптер может выдать только 4. Для смягчения этого дисбаланса применили так называемую технику палитр (Pallette). Ее суть заключается в том, что биты одного пиксела, поступающие с видеопамяти, перед выходом в интерфейс монитора проходят через некоторый управляемый преобразователь. Выход этого преобразователя имеет разрядность, поддерживаемую интерфейсом монитора, и биты видеопамяти задают номер цвета в выбранной палитре цветов. Переключив палитру (или перепрограммировав ее набор цветов), можно получить другую гамму цветов на экране, но опять-таки одновременно будет присутствовать не более 2N цветов.

Текстовый режим

В символьном, или текстовом режиме формирование изображения происходит несколько иначе. Если в графическом режиме (APA) каждой точке экрана соответствует своя ячейка видеопамяти, то в текстовом режиме ячейка видеопамяти хранит информацию о символе, занимающем на экране знакоместо определенного формата. Знакоместо представляет собой матрицу точек, в которой может быть отображен один из символов из определенного набора. Здесь умышленно применяется слово "точка" а не "пиксел", поскольку пиксел является сознательно используемым элементом изображения, в то время как точки разложения символа программиста, в общем-то, не интересуют. В ячейке видеопамяти хранится код символа, определяющий его индекс в таблице символов, и атрибуты символа, определяющие вид его отображения. К атрибутам относится цвет фона, цвет символа, инверсия, мигание и подчеркивание символа. Поскольку изначально в дисплеях использовали только алфавитно-цифровые символы, такой режим работы иногда сокращенно называют AN (Alpha-Numerical я алфавитно-цифровой). Чаще его все-таки называют текстовым я TXT, что корректнее: символы псевдографики, которые широко применяются для оформления текстовой информации, к алфавитно-цифровым не отнесешь.
В текстовом режиме экран организуется в виде матрицы знакомест, образованной горизонтальными линиями LIN (Line) и вертикальными колонками COL (Column). Этой матрице соответствует аналогичным образом организованная видеопамять. Адаптер, работающий в текстовом режиме, имеет дополнительный блок я знакогенератор, который хранит растровые образы всех отображаемых символов. Эти образы представляются в виде битовых матриц размерностью от 8 x 8 до 9 x 16 бит, соответствующи точкам экрана знакоместа.
Текстовый адаптер также имеет аппаратные средства управления курсором: знакоместо, на которое указывают регистры координат курсора, оформляется особым образом. Обычно его выделяют мигающей полоской, размер и положение которой относительно знакоместа программируется. Подчеркнем, что к такому выделению байт атрибутов символа не имеет отношения. Несмотря на большее количество узлов текстового адаптера по сравнению с чисто графическим, его цена оказывалась гораздо ниже. Дело в том, что для текстового режима с форматом 25 строк по 80 символов (максимального для существующих чисто текстовых адаптеров) требуется всего 2 кб видеопамяти для символов и 2 кб для их атрибутов. При этом символы могут иметь хорошо читаемую матрицу разложения 9 x 14 и по 8 бит для атрибутов, определяющих цветовое оформление знакоместа. Частота считывания видеопамяти для регенерации изображения невысока: за время прямого хода по строке должно быть считано всего 80 слов. Графический режим (720 x 350) для отображения такой же матрицы символов потребует уже около 32 кб видеопамяти в монохромном варианте, а в 16-цветном уже 128 кб. Конечно в настоящее время экономия видеопамяти в таких объемах уже не играет роли в цене адаптера, но не следует забывать и о том, что при выводе изображения эту память нужно заполнять. Поскольку в текстовом режиме в адаптер передаются только коды символов, заполнение всего экрана займет в десятки раз меньше времени, чем в построение того же изображения в графическом режиме. Программный код вывода символов в текстовом режиме проще и компактнее, чем при программном формировании его растрового изображения. По этим причинам все графические адаптеры имеют знакогенератор, дающий возможность работы и в текстовом режиме, а при переходе в графический режим знакогенератор отключается. Интеллектуальные адаптеры позволяют выводить символы (формировать их растровое изображение с заданным форматом знакоместа) и в графическом режиме. При этом адаптер получает только команду с указанием координат отображаемых символов и сам поток кодов символов, после чего быстро строит их изображение, не отвлекая центральный процессор.

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

Компьютер и телевидение

Слово "видео" в современном толковании подразумевает привычное всем видеоизображение, которое мы видим на телевизионных экранах. Это изображение, в отличие от компьютерной графики, может получаться в результате видеосъемки естественных объектов. Чтобы подчеркнуть естественность происхождения а также непредсказуемую подвижность изображения, ввели термин "живое видео". Растровая система отображения информации на экране монитора PC имеет глубокие корни в телевидении, но объединить компьютерную графику с телевизионным изображением оказывается непростой задачей. Для понимания сложностей и путей ее решения кратко поясним особенности передачи цветных телевизионных изображений.
В телевидении сигналы трех первичных цветов R, G, B проходят через преобразователь координат, на выходе которого получают сигнал Y, несущий информацию о яркости точек (luminance), и два цветоразностных сигнала U и V, несущих информацию о цвете (chrominance) я о соотношениях яркостей красного и синего цвета относительно зеленого. Зеленый выбран основным, поскольку зрение людей к нему наиболее чувствительно. Далее, эти сигналы "путешествуют" по телевизионному тракту до телеприемника разными путями, в зависимости от используемого вещательного стандарта. Сигнал Y всегда передается на основной (несущей) частоте телевизионного канала, цветоразностные сигналы, специальным образом закодированные, передаются на поднесущей частоте канала. Поскольку проблема полосы пропускания видеотракта стоит остро, во всех вещательных системах принята чересстрочная развертка. В первой системе цветного телевещания NTSC принята частота кадров 30 Гц (частота полей я 60 Гц), а количество строк я 525, из которых видимых я 480. При полосе канала яркости в 4.5 Мгц в строке может быть различимо до 640 пикселов (вот откуда формат 640 x 480). Однако для передачи цветоразностных сигналов используется поднесущая 3.58 МГц, и горизонтальное разрешение снижается до 400я450 пикселов. Реально же домашний телеприемник обеспечивает примерно половину этого разрешения. Напомним, что это разрешение лишь по яркостному каналу. Цветоразностная информация (два сигнала) втискивается в подканал с поднесущей 3.58 МГц, да еще для экономии полосы, оставляемой яркостному каналу, после модуляции подавляют саму поднесущую и нижнюю часть спектра сигнала. Так что цветовые сигналы после таких преобразований, передачи по радиоканалу и обратного восстановления в телеприемнике поступят на входы видеоусилителей R, G, B с существенно урезаной, по сравнению даже с яркостным каналом, полосой частот. Видеосигнал, состоящий из яркостной составляющей и поднесущей, модулированной цветоразностными сигналами, называется композитным (Composite Video). Поскольку наибольшие потери информации цветоразностного сигнала происходят при модуляции и демодуляции его поднесущей, лучшее качество передачи изображения даст сигнал, взятый сразу после цветоразностного преобразователя на приемной стороне. Интерфейс S-Video (Separate Video) использует раздельные сигнальные линии для яркостного и немодулированных цветоразностных сигналов. S-Video используется как интерфейс высококачественных видеосистем.
Кроме стандарта NTSC, существуют еще два более широко используемых в мире: PAL и SECAM.
В стандарте PAL частота кадров я 25 Гц (при частоте полей 50 Гц), количество строк я 625. Стандарт PAL обеспечивает разрешение 800 x 600. В варианте PAL-M принят формат кадра NTSC (60 Гц и 525 строк). В нашей стране традиционно используется система французского происхождения SECAM: частота кадров я 25 Гц (при частоте полей 50 Гц), количество строк я 625. Говоря о телевизионных стандартах, не следует забывать и о канале звукового сопровождения. Во всех этих системах для звука используется частотная модуляция дополнительной поднесущей с частотой 4.5 МГц для NTSC и PAL-M и 6 МГц для остальных систем. Все перечисленные системы в цветном режиме между собой несовместимы, хотя для них и существуют устройства-конверторы. Устройства обработки видеосигналов в PC могут подерживать все системы или только некоторые из них, на что следует обращать внимание при их приобретении.

Телевизор я дисплей компьютера

Вывод компьютерной графики на экран обычного телевизора представляет интерес как средство презентаций: телевизоры с большим экраном применяются достаточно широко и имеют умеренную цену, чего не скажешь о больших мониторах. Кроме того, транслировать один и тот же сигнал на несколько телевизоров проще, чем на несколько мониторов. Преобразователи форматов (например, VGAяTV конвертор) могут представлять собой отдельные внешние устройства со стандартным интерфейсом компьютерного монитора на входе и каким-либо телевизионным сигналом на выходе. Возможны и варианты встроенных адаптеров (ISA-карта), подключаемых к шине расширения PC. Некоторые модели конверторов позволяют накладывать графическое изображение на внешний видеосигнал (например, для создания титров). Ввиду ограниченной горизонтальной разрешающей способности телеприемников (полоса пропускания шире 5 МГц для телевизора как такового бессмысенна), возможность замены монитора телевизором для регулярной работы сомнительна. В стандарте NTSC обеспечивается разрешение 640 x 480, в PAL и SECAM я 800 x 600. Однако такое разрешение реально достижимо только при использовании интерфейса S-Video. Композитный сигнал, как было сказано выше, не обеспечивает столь высокого разрешения. Выход телевизионного сигнала имели адаптеры CGA и EGA, с приходом VGA этот интерфейс на графических картах применять перестали. Однако на новом витке развития техники об интерфейсе с телевизионным приемником снова вспомнили. Microsoft рекомендует устанавливать на новых графических картах кроме стандартного интерфейса VGA (RGB-Analog) выход композитного сигнала и S-Video. Более того, рекомендуется предусмотреть возможность одновременной работы VGA-монитора и TV-приемника, что не так-то просто обеспечить из-за различия параметров синхронизации.

Видео на экране монитора

Больше распростран вывод видеоизображения на экран компьютерного монитора. Видеоизображение выводится в окно, занимающее весь экран или его часть. Поскольку вывод видео перекрывает часть графического изображения, такой способ вывода называют видеооверлеем (Video Overlay), а платы, обеспечивающие данный режим, называют видеоверлейными. К устройсвам этого класса относится, например, видеобластер SE100. Эти платы позволяют изменять размер окна видео так же, как и размер любого окна в Windows. В оверлейной плате для видеоизображения имеется специальный "слой" видеопамяти, независимой от видеобуфера графического адаптера. В этом слое содержится оцифрованное растровое отображение каждого кадра видеосигнала. Поскольку для видеосигнала принято цветовое пространство в координатах Y-U-V, в этом слое памяти пикселы также отображаются в пространстве Y-U-V, а не в R-G-B, свойственном графическим адаптерам. В такой системе движущееся видеоизображение, видимое на экране монитора, существует лишь в оверлейном буфере, но никак не попадает в видеопамять графического адаптера и не передается ни по каким внутренним цифровым шинам компьютера. В видеопамяти графического адаптера "расчищается" окно, через которое "выглядывает" видеоизображение из оверлейного буфера. Некоторый цвет (комбинация бит RGB) принимается за прозрачный. Оверлейная логика сравнивает цвет очередного пиксела графического буфера с этим прозрачным, и если он совпадает, вместо данного пиксела выводится соответствующий пиксел видеооверлея. Если цвет не совпадает с прозрачным, то выводится пиксел из графического буфера. Таким образом, имея доступ к пикселам графического буфера, можно на видеоизображение накладывать графику для организации видеоэффектов или вывода в видеоокне "всплывающих" (PopUp) меню. Наложение производится на уровне потока бит сканируемых пикселов, который может передаваться в оверлейную плату через разъем Feature Connector (см. ниже). Оверлейная плата обычно имеет несколько входов для источников аналогового видеосигнала и программно-управляемые средства выбора одного из них. Такое устройство обычно имеет в своем составе и фрейм-граббер (Frame Grabber) я средство захвата видеокадра. По команде оператора движущееся изображение может быть мнгновенно зафиксировано в оверлейном буфере, после чего захваченный кадр может быть записан на диск в каком-либо графическом формате для последующей обработки и использования. Более совершенные устройства позволяют записывать в реальном времени последовательность видеокадров, выполняя их компрессиют по методам M-JPEG, DVI или INDEO (MPEG-кодирование требует слишком больших ресурсов для выполнения преобразования в реальном времени), но об этом чуть позже.
TV-тюнер я устройство приема видеосигналов с радиочастотного входа (антеннны), в сочетании с оверлейной платой позволяет просматривать телепрограммы на обычном мониторе компьютера. Тюнер может поддерживать стандарты цветопередачи PAL, SECAM и NTSC, но из-за несовпадения стандартов на промежуточную частоту звукового сопровождения некоторые карты не принимают звуковое сопровождение отечественных телепрограмм.

Цифровая передача изображений

Теперь посмотрим, во что выльется попытка передачи видеоизображения в естественном для компьютера цифровом виде (Bitmap). Пусть разрешение видеоэкрана составит 640 x 480 я максимально возможное для телевизионного изображения. Поскольку аналоговый телевизионный сигнал позволяет передавать в принципе неограниченное число цветов, примем глубину цвета True Color я 24 бита на пиксел. Тогда одному кадру изображения будет соответствовать битовый образ объемом 640 x 480 x 24 = 7372800 бит или около 7 Мбит на кадр. В телевидении полные кадры сменяются с частотой 25 Гц (30 Гц в NTSC), так что для непосредственной передачи телевизионного изображения в формате Bitmap требуется обеспечить поток данных в 7 x 25 = 175 Мбит/с, или около 22 Мб/с. О том, чтобы записывать такой поток данных даже на самый быстрый винчестер пока не может быть и речи: то, что интерфейс, например, Ultra DMA позволяет передавать данные со скоростью 33 Мб/с вовсе не означает, что винчестер может поддерживать такой поток записи на физический носитель (см. главу 8). Кроме того, этот поток "исписал" бы диск емкостью 1 Гб всего за 44 секунды. Конечно, если пожертвовать количеством цветов и "опуститься", например, до режима High Color (16 бит на пиксел), то требуемый поток уменьшится до 116 Мбит/с. Но и такой поток не под силу выдержать компонентам современного компьютера.
Выходом может быть только сжатие передаваемой информации.
Выше уже отмечалось, что формат Bitmap является довольно расточительным способом описания изображений. Соседние (по вертикали и горизонтали) элементы реального изображения обычно между собой сильно взаимосвязаны (коррелированы), поэтому имеются богатые возможности сжатия описания. Иллюстрация этому я очень большой коэффициент сжатия файлов .BMP любым архиватором. Если сжатие файлов данных при архивации обязательно требует возможности точного восстановления исходных данных при распаковке, то при сжатии изображений в большинстве случаев можно позволить некоторые вольности, когда восстановленное изображение будет не совсем точно соответствовать оригиналу. И, наконец, соседние кадры движущегося изображения между собой в большинстве случаев сильно связаны, что наводит на мысль о применении дифференциального описания кадров. Все эти рассуждения подводят нас к пониманию возможностей сжатия видеоинформации и принципов действия кодеков я компрессоров-декомпрессоров видеосигнала. Как и в случае программного сжатия и восстановления данных, задача компрессии оказывается сложнее задачи восстановления (легко заметить, что распаковка файлов, например, архиватором ARJ, происходит гораздо быстрее упаковки). Процедура сжатия может выполняться как одноступенчатым, так и двухступенчатым способом. В первом случае сжатие выполняется одновременно с записью в реальном масштабе времени. Во втором случае поток несжатых данных интенсивностью в несколько десятков Мб/с записывается на специальный (очень большой и очень быстрый) диск. По окончании записи фрагмента выполняется его сжатие, которое может занимать на порядок больше времени, чем сама запись. Декомпрессия, естественно, представляет интерес лишь в том случае, если она выполняется в реальном масштабе времени (к счастью, она и реализуется проще). Ряд кодеков позволяет осуществлять декомпрессию в реальном времени чисто программными способами, используя стандартный графический адаптер SVGA. Однако программная декомпрессия сильно загружает процессор, что неблагоприятно сказывается на многозадачном использовании компьютера. Ряд современных дисплейных адаптеров имеют специальные аппаратные средства декомпрессии, разгружающие центральный процессор. На долю процессора остается лишь организация доставки сжатого потока данных к плате адаптера.
Подробнее о видеосистеме и других подсистемах PC можно узнать в книге М. Гука "Аппаратные средства IBM PC. Энциклопедия".

Михаил Гук (Mgook@stu.neva.ru)
Опубликовано в газете "КомпьютерИнфо" (СПб.) 34-36, 1997 г.
Публикация в печатных изданиях только с разрешения автора, ссылка обязательна.
Книги | Статьи | Начало | Продолжение


Copyright (c) М. Гук, 1999. Дизайн (с) О. Гук, 1999.