Время, вперед!
АрхивТехнологизмы (архив)QuickTime – одна из лидирующих мультимедийных технологий. Как она устроена изнутри?
Что такое QuickTime?
Если говорить коротко и скучно… Это мультимедийная технология. Признанная рядом международных организаций в качестве стандарта отрасли. Реализованная как для MacOS, так и для Windows.
А если подробнее и интереснее…
Мультимедийных технологий много. Мир все более и более "оцифряется". Цифровые видеокамеры, цифровые фотоаппараты, цифровые магнитофоны, цифровые диктофоны, флэш-карты… Тысячи и тысячи гигабайт цифровой информации производится в мире в каждую секунду. Распоряжаться этими потоками по-хозяйски - редактировать, соединять, накладывать друг на друга, разъединять, добавлять эффекты - до некоторых пор было очень непросто. Форматы! Тысячи форматов! Форматы, как языковые барьеры на пути строителей вавилонской башни, стояли на страже скучного, скованного условностями и нелепыми сложностями мира…
Некогда, едва ли не во времена "компьютерного палеолита", что-то похожее происходило с, как их тогда называли, устройствами вывода данных - плоттерами, принтерами, фотонаборными машинами, в общем, всеми девайсами, на которые из призрачных недр электронного представления можно было вывести данные для "материализации". Каждое техническое устройство, по понятным причинам, требовало для изображения одной и той же картинки совершенно различное представление данных. Правила детального управление любым принтером, с которым некоторая программа на некотором компьютере желала работать, должны были быть вколочены в ее код подробно и тщательно. Время шло, все новые и новые печатающие устройства появлялись на рынке - однако воспользоваться ими было нелегко. Проблему решил PostScript. На рынке появился стандарт. Гибкий и мощный (способный выразить практически все богатство электронно-печатных фантазий), универсальный (понятный каждому серьезному принтеру), да еще и открытый, язык превратился в средство "межплатформного общения", позволив разработчикам принтеров работать без оглядки на разработчиков конкретных программ, а разработчикам программ сконцентрироваться на поддержке одного универсального стандарта, и поддерживать его действительно хорошо.
QuickTime задумывался как ответ на буйное "оцифрение" мира, как своего рода PostScript мультимедийных потоков, метаязык, с помощью которого должно соединиться все, что теоретически можно соединить. Единственным пределом должен быть предел фантазии человека. Удался ли великий замысел? Если судить по числу сгруженных с сайта Apple версий только для Windows (а уже в 1998 году, когда QuickTime только перешагнул границы родной платформы, в самые первые месяцы свободного доступа, его сгрузили 5 миллионов писишных пользователей), продукт пользуется успехом. На "Маках" начиная с MacOS 8.0 эта технология просто поставляется вместе с системой (правда, ее можно не устанавливать и отключать, что редко кто делает).
Архитектура QuickTime
Основной структурой в QuickTime является фильм (movie) - название достаточно правильно отражает "потребительское" восприятие данной структуры. Внутри все немного не так. В жизни любой фильм (на целлулоиде или на магнитной ленте) всегда представляет собой поток данных. В случае QuickTime, фильм - это скорее принцип организации данных. Каждый фильм состоит из теоретически неограниченного числа "дорожек" или треков (track). Каждая дорожка представляет собой ссылку на определенный тип мультимедийной среды, например, бывают аудиодорожки, видеодорожки и тому подобное. При "воспроизведении" фильма все эти дорожки исполняются одновременно, плюс любая дорожка может быть отключена, скопирована или удалена.
Особая гибкость QuickTime берет свое начало в системе компонентов. Компоненты - это кодовые ресурсы (фрагменты кода), которые регистрируются на системном уровне. В MacОS части системы, занимающиеся некоторым подмножеством задач, традиционно называются "менеджерами" - например, Menu manager. Соответственно, существует и QuickTime Component Manager. Программа, использующая QuickTime, оперирует универсальными, общими для всех случаев вызовами - именно компоненты определяют, как те или иные данные, попавшие на вход, будут преобразованы и использованы. Правила написания компонентов подробно опубликованы, и ознакомиться с ними можно по книгам Inside Macintosh: QuickTime и Inside Macintosh: QuickTime Component Manager, которые можно найти в бесплатной библиотеке Apple Computer. В составе QuickTime поставляется несколько сотен различных компонентов, например, переводчики с форматов GIF, MPEG, MOV, WAV, JPG, BMP. Существуют тысячи компонентов самых разных авторов, реализующих, например, технологии шифрации данных. QuickTime успешно применяется и для обработки всевозможных научных (например, медицинских) данных.
Поскольку мультимедийная информация, особенно видео, занимает огромные объемы дисковой памяти, в QuickTime реализованы быстрые алгоритмы сжатия и восстановления информации. Видео хранится на диске в сжатом виде, и в реальном времени поток сжатых данных восстанавливается перед показом.
Для потоков данных (видео, звук - особенно речь и музыка) чрезвычайно важной является координата времени. В обычном мире длительность фрагментов и их скорость следования установить довольно несложно. В многодорожечном фильме QuickTime это несколько труднее. Например, одна из дорожек может представлять собой статичную картинку или изображение электронной таблицы, в которую вносятся изменения. К тому же, у разных машин разная производительность, различная тактовая частота. Поэтому в QuickTime каждая дорожка имеет собственную временную координатную систему, определяющую шкалу перехода между единицами потока информации и общепринятыми временными единицами (секундами). Например, в некотором потоке шкала может устанавливать соответствие 25 единиц одной секунде. Естественно, имея "профессиональную" версию QuickTime, временные шкалы можно перенастраивать, изменяя тем самым длительности соответствующих треков. Помимо аудио и видеопотоков, технология QuickTime 4 поддерживает и спрайты, и видеоэффекты в реальном времени, и стриминг (QuickTime TV), и виртуальную реальность (QuickTime VR), и множество других интереснейших возможностей. Увы, они пока остались за пределами нашего повествования. Но чем сто раз прочитать, лучше один раз попробовать. Добавить к способностям своего компьютера (даже если это и не "Мак") владение этой технологией можно просто и задаром, заглянув по адресу www.apple.com/quicktime. По мере появления новых версий продукта его не менее бесплатно можно обновлять. Правда, бесплатно сгружается базовая, пассивная поддержка QuickTime. Все, что создано в форматах, которые понимает QuickTime, - а их список занял бы несколько страниц - становится доступно для просмотра, прослушивания, рассмотрения, копирования… А потратив некоторое количество у. е., можно получить ключ для превращения пассивной версии QuickTime в "активную". И… созидать!