Смекни!
smekni.com

Реализация трехмерной графики (стр. 9 из 10)

Сжатие движущихся изображений включает впутрикадровое (intraframe com­pression) и межкадровое (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) — одноступенчатый кодек на базе набора микросхем 182750, развитие системы DVI. Позволяет воспроизводить видеозаписи и с программным декодированием (необходим PC не ниже 486SX-25, SVGA 256 цветов и звуковая карта с ADPCM для звукового сопровождения).

· Cinepak — программный кодек для воспроизведения «живого» видео в окне 320 х 240 пикселов.

· MPEG - ряд кодеков (MPEG-1, MPEG-2, MPEG-4, MPEG-7...) для пере­дачи аудио-видеоинформации, каждый из которых соответствует опреде­ленному этапу развития цифровых технологий. Эти кодеки стали обще­принятыми и заслуживают более подробного описания.

Видеосигнал в сжатом формате может быть сохранен на вполне рядовом но­сителе информации (винчестер, CD) и воспроизведен с него на мониторе компь­ютера. С этой цифровой записью могут выполняться любые операции нелиней­ного монтажа (монтажа с произвольным доступом к кадрам). Возможности та­кого монтажа определяются программным обеспечением и, по сути, безгранич­ны (конечно, они определяются и производительностью компьютера — если мон­таж одной минуты потребует, скажем, недели работы, то мало кто им будет пользоваться).

Для обмена видеоданными с другими устройствами сжатый поток может быть передан, например, по шине Fire Wire (см. главу 14) или через средства телеком­муникаций (см. главу 10). Если компьютер оборудован телекамерой со средства­ми компрессии и передачи изображений по телекоммуникационным каналам, то появляется возможность организации видеотелефона и даже видеоконференций.

5.1. Стандарты MPEG

Разработкой кодеков, предназначенных для работы (по крайней мере, декомп­рессии) в реальном масштабе времени, занимается MPEG (Motion Picture Expert Group — группа экспертов в области движущихся изображений). Поскольку ви­део без звука «живым» представить трудно, MPEG занимается и аудиокодека­ми. Кодеки MPEG работают в пространстве Y-U-V, причем яркостная информа­ция обрабатывается с большим разрешением, чем цветовая. В сжатом потоке дан­ных присутствуют кадры нескольких типов:

· I (intra)-кадры — ключевые кадры, кодированные без ссылок на другие (то есть содержащие полное описание статического изображения).

· Р (predicted) — кадры содержат описание различий текущего кадра с пре­дыдущим.

· В (bi-directional) — кадры являются двунаправленными: они ссылаются и на кадр вперед, и на кадр назад.

Наличие двунаправленных кадров подразумевает, что декодер должен иметь буфер, по крайней мере, на три принятых кадра, а изображение будет выводить­ся с некоторым отставанием от входного потока. Для того чтобы кодек мог быс­тро включиться в работу с любого места потока, I-кадры должны включаться в поток регулярно (в MPEG-1 — не реже, чем через 0,4 с).

MPEG-1 — стандарт ISO/IEC 11172, принятый в 1992 году. Полное название — «Coding of Moving Pictures and Associated Audio for Digital Storage Media at up to about 1,5 MBit/s» — раскрывает его суть: кодек предназначен для записи и воспроизведения движущихся изображений и связанного с ними аудиосопро-вождения на цифровом носителе с потоком данных до 1,5 Мбит/с. При этом обес­печивается качество изображения на уровне кассетного видеомагнитофона VHS (Video Home System) со стереофоническим звуковым сопровождением. Стан­дарт состоит из 5 частей, описывающих систему, видео, аудио, методику тести­рования на соответствие и программы кодера и декодера на языке С. Для полу­чения столь низкой скорости потока из исходного видеопотока берется лишь одно поле (полукадр), а в каждой строке — только половина пикселов, что дает формат кадра 352x240 пикселов с прогрессивной разверткой, 30 кадров в секун­ду. Поток этих кадров и подлежит сжатию. Увеличение размера декодированно­го изображения до полного экрана особого смысла не имеет, поскольку может выполняться только масштабированием (размножением пикселов), правда, в бо­лее сложных реализациях декодера можно улучшить качество изображения, при­меняя методы интерполяции. Аудиопоток по сравнению с РСМ сжимается при­мерно в 6 раз (типовая скорость 256 Кбит/с). Декодер MPEG-1 содержит де-мультиплексор, разделяющий аудио- и видеопотоки, и раздельные декодеры для них. Скорость потока данных позволяет использовать в качестве носителя ви­деоинформации обыкновенный CD-ROM, поэтому MPEG-1 применяется в дис­ках CD-i и VideoCD (VCD). Однако декомпрессия требовала большой (по тем временам) мощности процессора (Pentium 133), из-за чего диски CD-i и VCD без специальной платы аппаратного декодера маломощные компьютеры воспро­изводить не могли.