Форматы анимированной графики и видео
История компьютерного видео насчитывает всего лет десять. И это понятно: чтобы хранить полноразмерные фильмы, нужно очень много дискового пространства, а чтобы его нормально обрабатывать, нужны исключительно мощные компьютеры. Если вы смотрите фильмы в формате MPEG 4 (это могут быть как фильмы на дисках DVD, так и фильмы, записанные на обычных CD в формате DivX), то знаете, что, не имея современного компьютера, о компьютерном видео лучше забыть. Иначе вы рискуете смотреть не фильм, а слайд-шоу со скоростью один кадр секунд этак в пять.
Как раз десять лет назад появились достаточно быстродействующие компьютеры и достаточно емкие жесткие диски, чтобы обрабатывать и хранить компьютерное видео. И именно в то время возникло понятие "мультимедиа" (multimedia), обозначавшее совокупность текстовых, цифровых, звуковых и видеоданных, объединенных в единое целое.
Давайте выясним, почему для хранения и обработки видео нужно больше ресурсов, чем для обычной компьютерной графики. Вероятно, вы знаете, что кино- или видеофильм можно представить как набор множества неподвижных изображений (кадров), очень быстро, несколько раз в секунду, сменяющих друг друга. Так как человеческий глаз не может уследить за сменой одного изображения другим, субъективно этот непрерывный "поток" изображений выглядит как одна движущаяся картинка. Для достижения такого эффекта частота кадров фильма должна быть довольно велика.
Каждый фильм фактически представляет собой огромное количество статичных изображений. Чтобы сохранить их в цифровом виде, нужен носитель весьма большой емкости. Поэтому для сохранения фильмов используют алгоритмы сжатия с потерями. Но здесь первопроходцев компьютерного кино подстерегает другой подводный камень: для распаковки таких фильмов и вывода изображения на экран нужны огромные вычислительные мощности. А такие мощности появились в распоряжении рядовых пользователей только десять лет назад. Да и то, тогдашние фильмы не блистали качеством.
Вероятно, самым первым форматом записи фильмов был QuickTime, разработанный фирмой Apple для компьютеров Macintosh и позднее перенесенный на MicrosoftWindows. Фирма Microsoft в ответ разработала программный пакет VideoforWindows и формат записи фильмов AVI, позволяющий использовать различные алгоритмы сжатия. Несколькими годами позднее, когда мощности персональных компьютеров еще возросли, независимая группа MPEG разработала очень сильный для своего времени алгоритм сжатия MPEG 1. Именно в этом формате записывались диски VideoCD - первый и не слишком удачный опыт создать цифровое кино "для народа".
Вероятно, вы видели эти диски, не могли не видеть. VideoCD - это обычный компакт-диск, на который записывался один огромный файл формата MPEG 1 с расширением dat; на одном таком диске помещалось около часа видео, поэтому полноразмерные фильмы поставлялись на двух дисках. Качество видео было очень плохим, фильмы смотрели на компьютерах с помощью специальных программ, открывая их в маленьком окошке, или на особых проигрывателях, похожих на видеомагнитофоны. Бизнес по продаже дисков VideoCD был развит вольно сильно: автор припоминает, что видел в Волгограде магазин, торгующий фирменными дисками с отечественным кино. Но все, же VideoCD - один из тех многочисленных блинов, что, будучи первыми, выходят комом.
Настоящую жизнь компьютерному кино дали появившиеся во второй половине девяностых годов лазерные диски DVD. Эти лазерные диски высокой плотности позволяют записывать до 6 гигабайт информации, чего вполне хватает не только на полноразмерный фильм высокого качества, но и на несколько звуковых дорожек, интерактивные меню и прочие "бонусы". Для записи фильмов на такие диски используется алгоритм MPEG 2.
Существуют также альтернативные форматы записи видео на обычные компакт-диски. Разработан SuperVideoCO на который помещается до двух часов видео, сжатого по алгоритму MPEG 2 создан великий и ужасный DivX альтернативная реализация алгоритма MPEG 4 - позволяющий записывать полноразмерный фильм отличного качества на один CD. Эти форматы, в основном DivX, составляют серьезную конкуренцию DVD, будущее которого сегодня выглядит не так уж и безоблачно.
Покадровая и трансформационная анимация
Эти два способа создания движущегося изображения почти аналогичны двум разновидностям компьютерной графики. Рассмотрим их подробнее.
Покадровая анимация
Покадровая анимация (ее еще называют классической) представляет собой набор изображений различных фаз движения - кадров, прокручиваемых с большой скоростью. Это самый старый и самый надежный способ сохранения движущегося изображения на каком-либо носителе (пленке, бумаге, магнитной ленте, жестком диске, CD). Пример покадровой анимации из пяти кадров показан на рис. 12.1.
Каждый из множества кадров, составляющих фильм, занимает при хранении определенное пространство на диске. Предположим, что это пространство составляет 100 килобайт - для хранения полноцветного изображения высокого разрешения в формате JPEG этого даже маловато. Теперь предположим, что таких изображений у нас 100 000 - такой длинный у нас фильм. Умножаем 100 на 100 000 и получаем 10 000 000, т. е. примерно 10 гигабайт. (Примерно, потому что гигабайт - это не 1 000 000 000, а 1 073 741 824 байт.) Выходит, для хранения фильма нам нужен целый жесткий диск, а уж сколько для этого понадобится компакт-дисков, просто страшно подумать. Этот фильм даже на DVD не влезет!
Что делать?
Конечно же, надо сжать фильм посильнее. И, если можно, сжать не только сами кадры, но и саму их последовательность, выбросив часть информации, без которой можно и обойтись. И, разумеется, сжать звуковое сопровождение.
Для сжатия фильмов используются специальные алгоритмы, реализующие сжатие с потерями. В этом случае при сжатии какая-то часть информации, не очень нужная при воспроизведении, действительно выбрасывается из фильма, за счет чего последний становится заметно меньше. Более того, эти алгоритмы анализируют каждый кадр фильма и сохраняют в результирующем файле только данные о разнице между соседними кадрами. Это еще сильнее уменьшает размер сжатого фильма.
Вот поэтому для сохранения покадровой анимации и применяются только растровые форматы. Если же сохранить такую анимацию в векторном формате, ее будет очень трудно, практически невозможно сжать с применение одного из обычно применяемых для этого алгоритмов.
Такие алгоритмы, как MPEG 4 и DivX, позволяют поместить полноразмерный фильм на обычный компакт-диск, т. е. размер сжатого с их помощью видеофайла составляет 600-720 мегабайт. Это уже вполне приемлемые параметры, учитывая объемы современных жестких дисков. Именно эти два алгоритма, как нам кажется, и совершили "компьютерно-киношную" революцию, создав высококачественное цифровое кино "для народа". То есть, сделали то, чего не удалось сделать VideoCD.
Но здесь возникает другая проблема. Сжатые сильными алгоритмами фильмы могут "осилить" только достаточно мощные компьютеры. Если вы попробуете просмотреть фильм DivX на компьютере пятилетней давности, то увидите не нормальный фильм, а слайд-шоу. Это происходит потому, что слабосильный процессор не успевает распаковывать данные и выдавать их на экран и поэтому вынужден пропускать целые кадры. К счастью, никому в голову не приходит запускать цифровое кино на старых компьютерах. А современная компьютерная техника сейчас достаточно дешева.