Вывод изображения на экран

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

Лишь в редких случаях захватом изображения и его выводом на экран занимается одно и то же устройство: речь идет о видеоплатах с функцией захвата изображения, например ATI All-In-Wonder. В большинстве случаев видеоплата отвечает за вывод на экран, а видеоввод является функцией другого устройства. В этой ситуации для получения на экране видеоизображения нормального качества видеоадаптер должен обладать некоторыми существенными особенностями.

Наверное, многие из вас, просматривая спецификации плат видеоввода, обращали внимание на один из пунктов требований к видеокарте. Этот пункт формулируется как «поддержка [спецификации] DirectDraw». При установке многие устройства захвата кадра, а также программные модули для кодировки/декодирования (например, изображений в MPEG-форматах) предлагают поставить драйверы DirectDraw, DirectVideo и другие.

Вывод графического изображения видеоадаптером осуществляется в одном из видеоформатов. К числу характеристик видеоформата относятся разрешение и глубина цвета: число бит информации на пиксел изображения. (До сих пор мы, следуя дизайнерской традиции, именовали последний параметр палитрой, так же мы будем поступать в главе, посвященной ретуши изображения, однако в литературе, посвященной аппаратным проблемам видеовывода, термин «палитра» имеет несколько иное значение, поэтому сохраним неуклюжее, на взгляд автора, словосочетание «глубина цвета»). Итак, видеокарта осуществляет вывод изображения в одном из стандартных видеоформатов.

Драйверы DirectDraw, говоря упрощенно, позволяют выводить на экран прямоугольный фрагмент изображения в любом из видеорежимов, возможных для данной видеокарты. При этом, например, глубина цвета может не совпадать с видеорежимом экрана. Характеристики изображения в процессе вывода на экран хранятся как в системной памяти, так и в памяти видеоплаты (которую будем называть видеопамятью). Если изображение находится на экране (экранная поверхность), информация о нем всегда хранится в видеопамяти. Информация о поверхности, не отображенной в данный момент на экране (внеэкранной), располагается как в системной, так и в видеопамяти. В свою очередь, экранные поверхности могут состоять из слоев, называемых страницами. Страница, изображение которой в данное время не присутствует на экране, хранится в видеопамяти, выводится на экран практически мгновенно. Область хранения этой, невидимой, поверхности называется «вторичным буфером». Поверхности могут описываться при помощи палитры (для восьмибитного цвета), когда задается палитра цветов и соответствующим пикселам приписываются значения палитры. При большей, чем 8, глубине цвета используется так называемое беспалитровое представление, когда нет заранее заданной палитры изображения, а данные о цвете хранятся в определенном формате описания. (Оба пути имеют преимущества – в случае с палитрой необходимо хранить информацию о ней, иначе цвета изображения могут исказиться. Однако, переключая палитру, можно мгновенно изменять цвет больших областей изображения. При беспалитровом представлении не надо заботиться о наличии палитры, но необходимо кодировать цвет каждого пиксела картинки).

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

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

Видеоплаты, не поддерживающие DirectDraw, не могут создавать оверлейное (наложенное) окно при работе с программами захвата изображений (см. главу 5).

Программный интерфейс DirectDraw обходит в своей работе стандартный для Windows механизм вывода изображений: GDI (Graphic Device Interface), отличающийся низкими качеством и быстродействием. Если в интерфейсе какой-либо программы (это случается, например, для программных MPEG-плееров) встречается выбор между DirectDraw и GDI, не задумываясь, выбирайте первое.

Форматы компьютерного видео

Существует несколько форматов компьютерного видео, из которых наиболее известны AVI (фирма Microsoft), QuickTime (фирма Apple).

Большая часть систем захвата кадров и нелинейного монтажа имеют дело с форматом AVI (Audio Video Interleave – чередование аудио и видео). Этот формат позволяет одновременно хранить изображение и звук. Они записываются попеременно, так что после кадра идет запись звукового сопровождения к нему.

По структуре AVI-формат представляет собой вариант формата RIFF. Файл этого формата состоит из блоков (chunks), которые, в свою очередь, могут содержать другие вложенные блоки. Самый «верхний» блок – RIFF – содержит идентификатор формы «avi_», который собственно и обозначает, что мы имеем дело с AVI-файлом. Для идентификатора отведено четыре символа, но один из них не используется.

В AVI-файле есть по крайней мере два подблока: заголовка и данных. Первый содержит общую информацию о фильме: разрешение изображения, частота кадров, формат аудио и т. д. В заголовке для записи длины файла отводится 32 байта. Это значит, что максимально возможный размер файла – около четырех гигабайт. На самом деле реальная длина AVI-файла стандартного формата, с которой могут работать программы монтажа, не превышает 2 Гбайт. Во времена возникновения формата это казалось достаточным, поскольку FAT 16 не допускал существования разделов диска, превышающих 2 Гбайт, а длина файла, естественно, не может превышать размер логического диска. С появлением FAT 32 верхняя граница размера раздела значительно отодвинулась. И теперь ограничение на размер AVI-файла стало «костью в горле» операторов видеомонтажа. Дело в том, что такого размера недостаточно для какого-нибудь мало-мальски приличного ролика. При полном разрешении (768x576) с компрессией 4,5:1 в два гигабайта помещается всего около 7 минут видеозаписи. Поэтому приходится идти на всевозможные хитрости. Расширенный AVI-формат, который поддерживают многие современные платы видеозахвата и монтажа, дает возможность обойти ограничение при монтаже, записывая только измененные фрагменты исходных клипов. Конечно, это не всегда удобно. Один из российских специалистов предлагает оригинальную программу, которая автоматически создает файлы требуемой длины. Если затем в видеоредакторе расположить файлы последовательно, то получается сплошной поток без потери кадров на стыках. Размер и количество видеофайлов изменяемое. Процесс ввода автоматически завершается, если заполнено указанное количество файлов или закончилось свободное место на диске. Программу можно получить, связавшись с автором по E-mail p.boris@usa.net.

Подблок данных организован в виде последовательностей записей, каждая из которых состоит из одного кадра и соответствующего звукового сопровождения. Для видео деление на кадры совершенно естественно, но звук представляет собой непрерывный поток, искусственно расчленяемый на фрагменты, соответствующие кадрам. Если для записи как видео, так и звука используется устройство видеоввода, проблем обычно не возникает. Если звук пишется через звуковую карту, точная синхронизация изображения и звука отсутствует и звук может «уходить от изображения. Способ борьбы с этим злом (к сожалению, весьма трудоемкий) приведен по адресу: www.hardware.ru/ixbt/multimedia/vIDEmputonpc.html.


Перейти на страницу:
Изменить размер шрифта: