Сжатие движущихся изображений включает впутрикадровое (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) — одноступенчатый кодек на базе набора микросхем 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 без специальной платы аппаратного декодера маломощные компьютеры воспроизводить не могли.