Программирование вывода изображений
Персональный компьютер смог стать привлекательным вычислительным средством благодаря интерактивности взаимодействия с пользователем. Интерактивность подразумевает наличие устройств оперативного ввода и вывода информации. Основной поток выходной информации визуальный, причем информация представляется как в текстовом, так и в графическом виде. Визуальная формация может выводиться на экран, возможно получение и ее «твердой копии» (Hard Copy) — на бумаге, пленке и т. п. Для интерактивного режима вывод на бумагу малоинтересен, хотя в далекой истории компьютеров интерактив режим впервые был реализован именно на телетайпе (грубо говоря, электрической пишущей машинке, подключенной к компьютеру). Активные средства вывода визуальной информации в видеосистеме PC. ; активность подразумевает возможность изменения изображения без смены носителя. Пассивные средства вывода визуальной информации (принтеры, плоттеры).
В первые годы существования PC его видеосистемой называли средства Ввода текстовой или графической информации на какой-либо экран. В качестве оконечного устройства чаще всего использовали и продолжают использовать мониторы с электронно-лучевыми трубками, адаптеры, позволяющие подключать монитор к шине компьютера, называли видеоадаптерами и подразделяли алфавитно-цифровые и графические. Последние, естественно, кроме графической, позволяли выводить и текстовую информацию. Вся выводимая информация формировалась в результате действия и под управлением системных и прикладных программ.
1. Видеосистема
По мере «взросления», на PC стали взваливать и казавшуюся ранее неподъемной ношу воспроизведения и обработки движущихся телевизионных изображений — так называемого «живого видео». Так назрела необходимость корректировки терминологии. Видеосистема современного компьютера состоит из обязательной графической (формирующей изображение программно) и дополнительной подсистемы обработки видеоизображений. Обе эти составляющие части обычно используют общий монитор, а соответствующие аппаратные средства системного блока могут располагаться на раздельных картах различного функционального назначения или объединяться на одном комбинированном адаптере, который можно назвать адаптером дисплея (Display Adapter).
Графический адаптер служит для программного формирования графических и текстовых изображений и является промежуточным элементом между монитором и шиной компьютера. Изображение строится по программе, исполняемой центральным процессором, в чем ему могут помогать графические акселераторы и сопроцессоры. В BIOS имеется поддержка функций формирования текстовых и графических изображений, по старинке называемая видеосервисом (BIOS Int 10h). Существует ряд классов адаптеров (MDA, CGA, EGA, VGA, SVGA. В монитор адаптер посылает сигналы управления яркостью лучей RGB (Red, Green, Blue — красный, зеленый и синий — базисные цвета) и синхросигналы строчной и кадровой разверток. Кроме этих сигналов, относящихся только к формированию изображения, интерфейс с монитором может содержать и сигналы обмена конфигурационной информацией между монитором и компьютером. Средства работы с видеоизображениями, передаваемыми в стандартах PAL, SECAM или NTSC, относятся уже к мультимедийному оборудованию. От программно-управляемых графических средств они отличаются тем, что оперируют с «живым» изображением, поступающим в компьютер извне (с видеокамеры, TV-тюнера) или воспроизводимым с какого-либо носителя информации (например, CD-ROM или DVD).
С самого начала появления персонального компьютера его видеосистему стремились строить для максимального приближения к идеалу WYSIWYG (What You See Is What You Get) — что видишь, то и имеешь, или наоборот. Поскольку под словом «имеешь» чаще всего подразумевается некоторая отпечатанная продукция, то имеется и идеал WYSIWYP (What You See Is What You Print) — что видишь на мониторе, то и будет напечатано. Стремление к этим идеалам, подкрепленное техническим прогрессом, приводит к неуклонному росту качественных показателей видеосистемы и проникновению компьютерных технологий в такие области, как, например, хранение точных (!) копий произведений искусства в электронном виде.
2. Принципы вывода изображений
Видеосистема PC ориентирована на растровый метод вывода изображения. Растровый метод подразумевает, что некий рисующий инструмент, способный оставлять видимый след, сканирует всю поверхность, на которую выводится изображение. Траектория движения инструмента постоянна и не зависит от выводимого изображения, но инструмент может рисовать, а может и не рисовать отдельные точки траектории. Видимым изображением являются оставленные им точки. Каждая строка растра разбивается на некоторое количество точек — пикселов (Pixel -сокращение от Picture Element — элемент изображения), засветкой каждой из которых по отдельности может управлять устройство, формирующее изображение (например, графическая карта). Видеомонитор является растровым устройством вывода динамически изменяемых изображений. Его луч сканирует экран с частотой, которая не должна позволять глазу видеть мерцание изображения. Растровыми устройствами вывода статических изображений являются принтеры, в которых сканирование листа производится однократно (хотя возможны и многократные проходы).
Альтернатива растровым устройствам — векторные устройства вывода изображений. В этих устройствах инструмент прорисовывает только изображаемые фигуры, и его траектория движения определяется выводимым изображением. Изображение состоит из графических примитивов, которыми могут быть отрезки прямых векторы (откуда и название метода вывода), дуги, окружности. К векторным устройствам вывода статических изображений относятся перьевые плоттеры.Существуют два основных режима вывода информации — графический и символьный (текстовый). Хотя исторически первые видеосистемы работали в сим-вольном режиме, начать объяснение работы удобнее с графического.
3. Графический режим
В графическом режиме имеется возможность индивидуального управления свечением каждой точки экрана монитора независимо от состояния остальных. Этот режим обозначают как Gr (Graphics) или АРА (АН Points Addressable все точки адресуемы). В графическом режиме каждой точке экрана пикселю соответствует ячейка специальной памяти, которая сканируется схемами адаптера синхронно с движением луча монитора. Точнее было бы сказать наоборот физически движение луча вторично, так как монитор можно и не подключать, а графический адаптер все равно будет сканировать память, но логически вся конструкция строится, исходя именно из поведения монитора.
Процесс постоянного сканирования видеопамяти называется регенерацией изображения, и, к счастью, этого же сканирования оказывается достаточно для регенерации информации микросхемам динамической памяти, применяемой в этом узле. Для программно-управляемого построения изображений к видеопамяти также должен обеспечиваться доступ со стороны системной магистрали компьютера, причем как по записи, так и по чтению. Количество бит видеопамяти, отводимое на каждый пиксел, определяет возможное число состояний пиксела — цветов, градаций яркости или иных атрибутов (например, мерцание).
Растровый формат хранения изображений, при котором биты так или иначе отображают пикселы, называется битовой картой (BitMap). С точки зрения плотности хранения графической информации этот формат не самый эффективный, но в видеопамяти растрового дисплея вследствие высокого темпа вывода информации при регенерации изображения иной формат неприемлем.
Формирование битовой карты изображения в видеопамяти графического адаптера производится под управлением программы, исполняемой центральным процессором. Сама по себе задача формирования процессору вполне по силам, но при ее решении требуется пересылка большого объема информации в видеопамять, а для многих построений еще и чтение видеопамяти со стороны процессора
Команды рисования (Drawing Commands) обеспечивают построение графических примитивов точки, отрезка прямой, прямоугольника, дуги, эллипса. Примитивы такого типа в командах описываются в векторном виде, что гораздо компактнее, чем их растровый образ. Таким образом, удается значительно сократить объем передаваемой графической информации за счет применения более эффективного способа описания изображений. К командам рисования относится и заливка замкнутого контура, заданного в растровом виде, некоторым цветом или узором (pattern).
Копирование блока с одного места экрана на другое применяется для «прокрутки» изображения экрана в разных направлениях. Эта команда сводится к пересылке блока бит BitBlT (Bit Block Transferring), и эта операция интеллектуальным адаптером может быть сильно ускорена.
Аппаратная поддержка окон (Hardware Windowing) упрощает и ускоряет работу с экраном в многозадачных (многооконных) системах. На традиционном графическом адаптере при наличии нескольких, возможно, перекрывающих друг друга окон программе приходится отслеживать координаты обрабатываемых точек с тем, чтобы не выйти за пределы своего окна. Аппаратная поддержка окон упрощает вывод изображений: каждой задаче выделяется свое окно — область видеопамяти требуемого размера, в котором она работает монопольно.
Если объем видеопамяти превышает необходимый для данного формата экрана и глубины цветов, то в ней можно строить изображение, превышающее по размеру отображаемую часть.
По отношению к центральному процессору и оперативной памяти компьютера различают графические сопроцессоры и акселераторы. Графический сопроцессор представляет собой специализированный процессор с соответствующим аппаратным окружением, который подключается к шине компьютера и имеет доступ к его оперативной памяти. В процессе своей работы сопроцессор пользуется оперативной памятью, конкурируя с центральным по доступу и к памяти, и к шине. Графический акселератор работает автономно и при решении своей задачи со своим огромным объемом данных может и не выходить на системную шину. Акселераторы являются традиционной составляющей частью практически всех современных графических адаптеров. Акселераторы двумерных операций (2D-accelerators), необходимых для реализации графического интерфейса пользователя GUI (Graphic User Interface), часто называют Windows-акселераторами, поскольку их команды обычно ориентированы на функции этой популярной операционной системы. Более сложные акселераторы выполняют и трехмерные построения, их называют ЗО-акселераторами.
4. Обработка видеоизображений
Слово «видео» в современном толковании подразумевает привычное всем видеоизображение, которое мы видим на телевизионных экранах. Это изображение, в отличие от компьютерной графики, может получаться в результате видеосъемки естественных объектов. Чтобы подчеркнуть естественность происхождения, а также непредсказуемую подвижность изображения, ввели термин «живое видео». Растровая система отображения информации на экране монитора PC имеет глубокие корни в телевидении, но объединить компьютерную графику с телевизионным изображением оказывается непросто. Для понимания сложностей и путей решения этой задачи кратко поясним принципы передачи цветных телевизионных изображений.
В цветном мониторе экран сканируется одновременно тремя лучами базисных цветов, и каждый луч модулируется входным сигналом. Также мы знаем, что отображение мелких элементов (большого количества пикселов в строке) требует полосы сигнала в десятки мегагерц. В телевидении широкополосные RGB-сигналы существуют только в пределах студии, передавать же их по радиоканалам в таком виде технически невозможно. Кроме того, телевизионный сигнал должен быть совместим с черно-белыми телеприемниками. В нашей стране традиционно используется система французского происхождения SECAM. В этой системе вместо квадратурной модуляции поднесущей применены две поднесущие цветоразностных сигналов с частотной модуляцией. Частота кадров — 25 Гц (при частоте полей 50 Гц), количество строк — 625.
Говоря о телевизионных стандартах, не следует забывать и о канале звукового сопровождения. Во всех этих системах для звука используется частотная модуляция дополнительной поднесущей частоты 6,5 МГц для SECAM; 5,5 МГц для PAL (но иногда и 6,5 МГц); 4,5 МГц для NTSC и PAL-M; может встречаться и 6 МГц.
Все перечисленные системы в цветном режиме между собой несовместимы, хотя для них и существуют устройства-конверторы. Устройства обработки видеосигналов в PC могут поддерживать все системы или только некоторые из них, на что следует обращать внимание при их приобретении.
5.Возможные точки соприкосновения компьютерной графики и телевизионного видеосигнала.
Вывод компьютерной графики на экран обычного телевизора представляет интерес как средство презентаций: телевизоры с большим экраном применяются достаточно широко и имеют умеренную цену, чего не скажешь о больших мониторах. Кроме того, транслировать один и тот же сигнал на несколько телевизоров проще, чем на несколько компьютерных мониторов. Ряд моделей современных графических карт имеют выход телевизионного сигнала, причем независимый от выхода на основной монитор. Есть и преобразователи форматов (например, конвертор VGA-TV) в виде отдельных внешних устройств со стандартным интерфейсом компьютерного монитора на входе и каким-либо телевизионным сигналом на выходе. В простейшем варианте конвертор только преобразует сигналы из RGB в один из интерфейсов телеприемника, но при этом требуется установка разрешения и частот синхронизации графического адаптера, совпадающих со стандартом телеприемника. Для пользователя PC эти ограничения малоприятны, а иногда и невыполнимы. Более сложные конверторы имеют собственную буферную память, которая заполняется вновь оцифрованным видеосигна-лом, снятым с выхода графического адаптера. На телевизионный выход информация из буфера выдается уже с телевизионной частотой. Буфер может хранить одну, несколько или все строки экрана. От этого зависят ограничения на режим разрешения и соотношения частот регенерации графического адаптера и телевизионного монитора (в последнем случае они вообще могут быть несвязанными). Естественно, эти варианты сильно отличаются по сложности и цене (конвертор с полноэкранным буфером самый дорогой). Однако когда графический адаптер выводит движущееся изображение, смена которого привязана к кадровой синхронизации, при несовпадении кадровых частот на телевизионном экране движение будет искажаться. Общей проблемой конверторов является необходимость борьбы с мерцанием (flickering): поскольку в телеприемниках используется чересстрочная развертка, горизонтальная полоса шириной в пиксел будет отображаться с частотой 25 или 30 Гц, что улавливается глазом. Возможны и варианты внутренних адаптеров (карт расширения), подключаемых к шине расширения PC и внутреннему разъему графической карты (VFC или VAFC). И наконец, соседние кадры движущегося изображения между собой в большинстве случаев тоже сильно связаны, что наводит на мысль о применении дифференциального описания кадров. Все эти рассуждения подводят нас к пониманию возможностей сжатия видеоинформации и принципов действия кодеков компрессоров-декомпрессоров видеосигнала. Как и в случае программного сжатия и восстановления данных, задача компрессии оказывается сложнее задачи восстановления (легко заметить, что распаковка файлов, например, архиватором ARJ, происходит гораздо быстрее упаковки). Процедура сжатия может выполняться как одноступенчатым, так и двухступенчатым способом. В первом случае сжатие выполняется одновременно с записью в реальном масштабе времени. Во втором случае поток несжатых данных интенсивностью в несколько десятков мегабайт в секунду записывается на специальный (очень большой и очень быстрый) диск. По окончании записи фрагмента выполняется его сжатие, которое может занимать на порядок больше времени, чем сама запись. Декомпрессия, естественно, представляет интерес лишь в том случае, если она выполняется в реальном масштабе времени (к счастью, она и реализуется проще). Ряд кодеков позволяет осуществлять декомпрессию в реальном времени чисто программными способами, используя стандартный графический адаптер SVGA. Однако программная декомпрессия сильно загружает процессор, что неблагоприятно сказывается на многозадачном использовании компьютера. Ряд современных дисплейных адаптеров имеют специальные аппаратные средства декомпрессии, разгружающие центральный процессор. На долю процессора остается лишь организация доставки сжатого потока данных к плате адаптера.
Сжатие движущихся изображений включает внутрикадровое (intraframe compression) и межкадровое (interframe compression) сжатие. Для внутрикадрового сжатия используются методы, применяемые для сжатия неподвижных изображений. В межкадровом сжатии применяется система ключевых кадров (key frame), содержащих полную информацию о кадре, и дельта-кадров (delta frame), содержащих информацию о последовательных изменениях кадров относительно ключевых. Благодаря корреляции соседних кадров дельта-кадры в общем случае несут гораздо меньше информации, чем ключевые, и, следовательно, поток их данных не так интенсивен. Периодическое вкрапление ключевых кадров позволяет избежать накопления ошибки в изображении, а также начинать прием потока в любой момент (дождавшись ближайшего ключевого кадра).
При съемке различных сюжетов межкадровая корреляция, конечно же, будет существенно варьироваться. Поэтому, чтобы оценить качество работы кодека, применяют, например, сюжеты типа «говорящие головы» (Talking heads) с высокой степенью корреляции кадров и более сложные полнодвижущиеся изображения (Actions) например, карусель, где все элементы перемещаются. Оценка качества ведется как по объективным показателем, так и по субъективному восприятию. Объективными показателями является максимальная частота кадров (Frame Rate), которая обеспечивается без отбрасывания кадров, и процент отбрасываемых кадров (Drop Frames) при обработке потока со стандартной частотой кадров. Эти показатели характеризует производительность декомпрессора, которая может оказаться и недостаточной для обработки потока данных без потерь. Интересен также и коэффициент загрузки центрального процессора (CPU Utilization) при отработке стандартного потока, по которому можно судить о возможности исполнения других задач во время воспроизведения видео.
В процессе декомпрессии может потребоваться масштабирование кадров, для того чтобы вписать изображение в окно заданного размера. В простейшем случае декомпрессия производится в масштабе 1:1, при этом видеоизображение обычно занимает лишь часть экрана. Примитивное масштабирование достигается дублированием пиксела один пиксел видео копируется в несколько (например, 4) смежных пикселов графического экрана. Однако при этом качество изображения заметно падает крупные «кирпичики», из которых строится изображение, с небольшого расстояния выглядят плохо. Более тонкий механизм масштабирования выполняет интерполяцию цветов пикселов, при этом качество изображения заметно улучшается. Однако такое масштабирование уже требует значительных затрат вычислительных ресурсов, и если их недостаточно, то вывод видеоизображения в окно большого размера будет сопровождаться потерями кадров и, возможно, перебоями звукового сопровождения. Так что, говоря о качестве вывода видео, следует всегда оговаривать масштаб или размер видеоэкрана.
Для сжатия изображений применяются различные кодеки:
- JPEG (Joint Photographic Expert Group) метод сжатия неподвижных изображений, основанный на одновременной обработке информации матрицы пикселов (например, 8 х 8) в пространстве Y-U-V с приоритетом сохранения яркостной информации. Метод почти универсален: он позволяет обеспечивать и максимальную степень сжатия, правда, при этом информация восстанавливается с некоторыми потерями, и обеспечивать сжатие без потерь, но, конечно, в меньшей степени. Кроме того, возможен послойный прием изображения, когда сначала приходит грубое описание всей картинки, затем следуют постепенные уточнения (утончения) деталей. Такая передача представляет ценность при использовании каналов связи с ограниченной производительностью, например в Интернете: быстро получив общий вид, можно отказаться от приема полного описания изображения, если оно не заинтересовало получателя. Конечно, все достоинства JPEG не могут использоваться одновременно чем-то приходится жертвовать. Степень сжатия зависит от характера изображения лучше всего сжимается цветное изображение, несколько хуже полутоновое серое. Черно-белое изображение для JPEG должно представляться в полутоновом формате, что, конечно, снижает эффективность его сжатия.
- M-JPEG (Motion JPEG) метод сжатия движущихся изображений. Суть этого метода заключается в том, что каждый кадр обрабатывается как отдельное статическое изображение, то есть выполняется только внутрикадровое сжатие. M-JPEG не получил широкого распространения из-за больших затрат времени на компрессию и декомпрессию.
- DVI (Digital Video Interactive) система аппаратного сжатия движущихся видеоизображений с коэффициентом сжатия до 160:1 и записи звукового сопровождения по методу ADPCM. Indeo (INtel viDEO) — одноступенчатый кодек на базе набора микросхем i82750, развитие системы DVI. Позволяет воспроизводить видеозаписи и с программным декодированием (необходим PC не ниже 486SX-25, SVGA 256 цветов и звуковая карта с ADPCM для звукового сопровождения).
- Cinepak — программный кодек для воспроизведения «живого» видео в окне 320 х 240 пикселов.
- MPEG - ряд кодеков (MPEG-1, MPEG-2, MPEG-4, MPEG-7...) для передачи аудио-видеоинформации, каждый из которых соответствует определенному этапу развития цифровых технологий. Эти кодеки стали общепринятыми и заслуживают более подробного описания.
Видеосигнал в сжатом формате может быть сохранен на вполне рядовом носителе информации (винчестер, CD) и воспроизведен с него на мониторе компьютера. С этой цифровой записью могут выполняться любые операции нелинейного монтажа (монтажа с произвольным доступом к кадрам). Возможности такого монтажа определяются программным обеспечением и, по сути, безграничны (конечно, они определяются и производительностью компьютера если монтаж одной минуты потребует, скажем, недели работы, то мало кто им будет пользоваться).
Для обмена видеоданными с другими устройствами сжатый поток может быть передан, например, по шине Fire Wire (см. главу 14) или через средства телекоммуникаций (см. главу 10). Если компьютер оборудован телекамерой со средствами компрессии и передачи изображений по телекоммуникационным каналам, то появляется возможность организации видеотелефона и даже видеоконференций.
Список использованной литературы:
Энциклопедия Аппаратные средства IBM PC Второе издание Издательский дом “ Питер” 2003 год
ГУК М Интерфейсы ПК. Справочник СПБ Питер Ком 1999
Рекомендуем посмотреть:
Что такое технология потоковых данных
Использование облачного хранилища данных в образовательном пространстве
Восьмеричный переход
Конспект урока информатики по теме «Разветвляющие алгоритмы», 10 класс
Похожие статьи:
Оценка достижений учащихся на уроках информатики
Конспект открытого урока по информатике в 9 классе
Конспект урока информатики в 8 классе
Конспект урока информатики в 3 классе
Конспект урока информатики во 2 классе