Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/rms/lekcii.rms.rus.v1.0.pdf ·...

81
Министерство образования и науки , молодежи и спорта Украины ОДЕССКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ ХОЛОДА Ненов А . Л . РАЗРАБОТКА МУЛЬТИМЕДИА - СИСТЕМ Учебное пособие для студентов 4 курса специальности 091501 «Компьютерные системы и сети» Одесса 2012

Upload: others

Post on 11-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Министерство образования и науки ,

молодежи и спорта Украины ОДЕССКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ ХОЛОДА

Ненов А . Л .

РАЗРАБОТКА МУЛЬТИМЕДИА - СИСТЕМ

Учебное пособие

для студентов 4 курса специальности 091501 «Компьютерные системы и сети»

Одесса 2012

Page 2: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

2

Ненов А. Л. Разработка мультимедийных систем. Учебное пособие.— Одесская государственная академия холода, 2012.— 81 с.

Учебное пособие содержит изложение лекционного материала по курсу «Разработка мультимедийных систем». Рассмотрены общие понятия мультимедиа, основные форматы хранения различных мультимедийных данных, некоторые алгоритмы, которые находят широкое применение в реализации технологий мультимедиа. Отдельного рассмотрения заслуживает каждая из составляющих мультимедиа: текст, графика, анимация, звук, видео.

Пособие предназначено для студентов направления 050102 «Ком-пьютерная инженерия». Оно также может оказаться полезным для всех интересующихся вопросами мультимедиа.

Рецензент: Пособие рассмотрено и рекомендовано к изданию на заседании

кафедры информационных систем и сетей, протокол №10 от 14.06.2012 г. Заведующая кафедрой ИСС, д. т. н., проф. Князева Н. А. Председатель научно-методической комиссии по направлению подготовки «Компьютерная инженерия» Корниенко Ю. К.

ОГАХ, 2012

Page 3: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

3

СОДЕРЖАНИЕ

Предисловие ............................................................................................... 5 Тема 1. Введение в мультимедийные системы .................................... 6

Понятие мультимедиа и мультимедийной системы ............................ 6 Базовая архитектура мультимедийной системы .................................. 8 Виды мультимедийных данных ............................................................ 8 Какую систему считать мультимедийной? .......................................... 9 Линейное и нелинейное мультимедиа ................................................ 10 Классификация программного обеспечения мультимедиа............... 11 Виды прикладных мультимедийных систем...................................... 11 Контрольные вопросы .......................................................................... 13

Тема 2. Средства разработки мультимедийных систем .................. 14 Классификация средств разработки мультимедийных систем ........ 14 Концепция мультимедийной платформы ........................................... 15 Обзор распространенных мультимедийных платформ ..................... 16 Контрольные вопросы .......................................................................... 20

Тема 3. Основы кодирования графики ............................................... 22 Общие сведения о компьютерной графике ........................................ 22 Растровая двумерная графика ............................................................. 23 Векторная двумерная графика ............................................................ 23 Трехмерная графика ............................................................................. 24 Воксельные модели .............................................................................. 25 Обобщенный формат растровой графики .......................................... 25 Понятие глубины цвета. Кодирование пикселя при различных

глубинах цвета ................................................................................ 27 Краткий обзор популярных форматов изображений ........................ 30 Контрольные вопросы .......................................................................... 30

Тема 4. Сжатие мультимедийных данных ......................................... 32 Понятие сжатия данных ....................................................................... 32 Принципы сжатия данных ................................................................... 32 Виды сжатия данных ............................................................................ 33 Коэффициент сжатия ........................................................................... 33 Допустимость потерь при сжатии ....................................................... 35 Системные требования алгоритмов .................................................... 35 Алгоритмы сжатия данных неизвестного формата ........................... 36 Кодирование длин серий (RLE) .......................................................... 37 Словарное кодирование — алгоритмы семейства LZ ....................... 39 Контрольные вопросы .......................................................................... 40

Page 4: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Тема 5. Компьютерная анимация ........................................................ 41 Общие сведения .................................................................................... 41 Предопределенная анимация ............................................................... 41 Процедурная анимация ........................................................................ 42 Программируемая анимация ............................................................... 43 Конструкторы анимаций ...................................................................... 43 Хранение анимации .............................................................................. 44 Применение анимации ......................................................................... 44 Контрольные вопросы .......................................................................... 44

Тема 6. Кодирование аудиоданных ...................................................... 46 Основы цифрового представления звука ............................................ 46 Антіалайзинг і дитеринг....................................................................... 48 Якість звуку ........................................................................................... 48 Скорость потока (битрейт)................................................................... 49 Обзор форматов файлов, используемых для хранения цифрового

звука ................................................................................................. 49 Описание структуры формата RIFF WAVE ....................................... 51 Воспроизведение звука в программах Windows ................................ 58 Контрольные вопросы .......................................................................... 62

Тема 7. Кодирование видеоданных ...................................................... 64 Основные понятия компьютерного видео .......................................... 64 Понятие развертки видеосигнала ........................................................ 65 Понятие медиаконтейнера ................................................................... 66 Обзор распространенных медиаконтейнеров .................................... 67 Понятие кодека ..................................................................................... 72 Принципы сжатия видео. Технология компенсации движения ....... 72 Контрольные вопросы .......................................................................... 74

Тема 8. Стандарт описания мультимедийных данных MPEG-7 .... 75 Назначение стандарта MPEG-7 ........................................................... 75 Структурные составляющие MPEG-7 ................................................. 77 Контрольные вопросы .......................................................................... 78

Список рекомендуемой литературы .................................................... 79

Page 5: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Предисловие

Мультимедиа сегодня становится неотъемлемой составляющей нашей жизни. Благодаря мультимедиа мир информационных технологий преобразился совершенно чудесным образом: он стал ярким, увлекательным и легко воспринимаемым.

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

Появление систем мультимедиа обусловлено как требованиями практики, так и развитием теории в области информационных технологий. Однако, резкий рывок, произошедший в этом направлении за последние несколько лет, обеспечен прежде всего развитием технических и системных средств. Это и прогресс в развитии ПЭВМ: резко возросшие объемы оперативной и внешней памяти, быстродей-ствие, графические возможности, и достижения в области «некомпью-терной» видеотехники, лазерных дисков, а также их массовое внедрение. Важную роль сыграла также разработка методов быстрого и эффективного сжатия данных.

Современные персональные компьютеры в массе своей предо-ставляют аппаратную основу для большинства классических применений мультимедиа. Современные компьютерные приложения профессионального уровня стремятся как можно быстрее и увереннее завоевать популярность среди пользователей, привлечь их внимание, занять соответствующую часть рынка. И элементы мультимедиа очень этому способствуют. Поэтому изучение вопросов, связанных с мультимедийными технологиями, системами, средствами разработки чрезвычайно важны и актуальны для любых специалистов компьютер-ных отраслей.

Page 6: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Тема 1. Введение в мультимедийные системы

Понятие мультимедиа и мультимедийной системы Термин "мультимедиа" образован из латинских слов multum и

medium и может быть дословно переведен как "множество способов воздействия". Понятие мультимедиа многогранно: данным термином обозначается целый ряд разных его аспектов.

Первый аспект мультимедиа соответствует определенной концеп-ции работы потребителя с информацией. Мультимедиа в этом смысле представляет собой одновременное использование различных форм ее представления и обработки в некотором едином объекте-контейнере [Wiki (old)]. Наиболее типичным представителем мультимедийного программного обеспечения является компьютерная игра. Мультимедиа в указанном выше смысле представляет собой сам факт одновременной работы игрока с графической и звуковой информацией, а также интерактивности, обеспечивающей обратную связь игрока с игровым миром, его влияние на игровую ситуацию.

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

Третье — достаточно емкое и конкретное — понимание термина «мультимедиа» относится к комплексу аппаратных и программных средств, дающих возможность пользователю (потребителю информа-ции) работать в диалоговом режиме с разнородными данными, организованными в виде единой информационной среды (мультиме-

Page 7: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

дийными данными) [Новосельцев]. Это определение соответствует пониманию мультимедиа как мультимедийной системы (ММС).

Термин мультимедиа иногда используется также для обозначения собственно мультимедийной информации (мультимедиа-данных, ММД), а также ее носителей, позволяющих хранить значительные объемы данных и обеспечивать достаточно быстрый доступ к ним. В последнем случае термин мультимедиа может означать, что соответ-ствующее устройство (например, компьютер) может использовать такие носители и предоставлять информацию пользователю всеми доступными способами с требуемой производительностью.

С учетом изложенного, можно сформулировать два варианта интерпретации понятия мультимедиа-системы.

Первый вариант предполагает рассмотрение ММС как совокупно-сти программного и аппаратного обеспечения мультимедиа без включения в него самих ММД. Он описывается условной формулой

ММ = ММС + ММД = (ММПО + ММАО) + ММД, (1)

где ММПО — программное обеспечение мультимедиа (не включая мультимедиа-данные);

ММАО — аппаратное обеспечение мультимедиа; ММД — мультимедиа-данные.

Второй вариант предполагает рассмотрение ММД как составной части ММС и описывается условной формулой

ММ = ММС = ММД + ММПО + ММАО. (2)

ММС в этом случае выступает как более целостное, комплексное образование.

Необходимость учета интерактивности может сделать естествен-ным включение в ММС пользователя (П) как элемента человеко-машинной системы:

ММС = ММД + ММПО + ММАО + П. (3)

Однако в этом случае лишь часть ММС, не включающая пользова-теля, представляет собой самостоятельный объект проектирования.

Page 8: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Базовая архитектура мультимедийной системы В данном пособии рассматриваются ММС, в качестве основы

которых используется персональный компьютер. В соответствии с первичным принципом структурирования компьютерных вычисли-тельных систем, ММС может быть представлена совокупностью аппаратного обеспечения (АО) и программного обеспечения (ПО), которые имеют непосредственное отношение к мультимедиа.

Как аппаратное, так и программное обеспечение мультимедиа условно может рассматриваться как совокупность универсального и специализированного обеспечения. Универсальное обеспечение реализует первичную, базовую функциональность компьютера, без которой немыслимо активное существование любых компьютерных систем, в том числе ММС. К таким функциям относятся, в частности, накопление данных, обеспечение доступа к ним, загрузка и исполне-ние программ, вывод видеоданных, ввод текстовых данных, управле-ние графическим указателем и др. Специализированное обеспечение реализует сугубо мультимедийные функции, которые могут отсутство-вать в немультимедийных системах. К таким функциям относятся, например, воспроизведение многоканального звука, аппаратное декодирование видео высокой четкости, быстрая обработка сложной трехмерной графики, управление виртуальными объектами, например, путем изменения положения головы и др.).

В связи с нечеткостью границы между мультимедийными и не-мультимедийными данными и функциями, различение универсального и специализированного обеспечения ММС является в известной степени условным и может быть субъективным.

Виды мультимедийных данных К мультимедийным данным (ММД) традиционно относят следу-

ющие виды данных [Wiki]: • текст (в кодированном виде); • графика — статичные изображения искусственного и есте-

ственного происхождения;

Page 9: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

• анимация и видео — динамичные (движущиеся) изображения искусственного и естественного происхождения;

• звук (синтетической и волновой природы); • интерактивность — данные, характеризующие обратную связь с

пользователем.

Перечисленные виды ММД затрагивают такие чувства человека, как зрение, слух и, возможно, осязание. Принципиально возможно воздействовать на любые органы чувств человека, включая также запах и вкус. Эффектной и уже достаточно распространенной реализацией многообразного мультимедиа, включающего все виды ощущений, кроме вкуса и запаха, являются мини-кинотеатры 5D.

С точки зрения разработчика к ММД относятся не только данные, которые непосредственно соответствуют воздействиям на органы чувств человека, но также и служебные, вспомогательные, промежу-точные данные (заголовки, результаты расчетов моделей и пр.), которые могут быть необходимы для создания и структурированного оформления непосредственных ММД первого рода. Часто для обозначения непосредственных ММД первого рода используется термин «контент».

Какую систему считать мультимедийной? Само понятие мультимедиа появилось в русскоязычной компью-

терной среде в конце 80-х годов XX века. Тогда мультимедийные функции были чем-то экзотическим для большинства персональных компьютеров и их пользователей, и понятие мультимедиа было достаточно конкретным и обособленным (ПК, снабженный звуковой платой и приводом CD-ROM). Сейчас, когда мультимедиа глубоко

Page 10: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

проникло во все сферы компьютерной и некомпьютерной жизни, сами понятия мультимедиа и мультимедиа-системы приобрели некоторую размытость. Все современные персональные компьютеры (как настольные, так и портативные) с позиций начала 90-х годов прошлого века являются мультимедийными, поскольку обеспечивают возмож-ность работы со всеми видами ММД. Многие изначально немультиме-дийные системы получают мультимедийные возможности, что делает их более привлекательными в глазах пользователей. Таким образом, современное аппаратное и программное обеспечение может считаться мультимедийным в большей или меньшей степени. Можно предло-жить различные способы оценки степени мультимедийности, например, аддитивную функцию вида:

Кмм = Ст·Вт + Сг·Вг + Са·Ва + Св·Вв + Сз·Вз + Си·Ви, (4)

где Сi — степень присутствия в ММС ММД i-го вида (определяемая экспертным путем или при помощи некоторого формального метода);

Вi — весовые коэффициенты степени мультимедийности ММД i-го вида. В простейшем случае весовые коэффициенты можно принять

равными между собой. Однако логика подсказывает, что в большин-стве случаев одни виды ММД играют более значительную роль в ММС, чем другие. Например, видео и аудио играют более важную роль в мультимедиа, чем статичная графика, а последняя — более важную роль, чем текст. Тем не менее, конкретные значения весовых коэффициентов будут зависеть от множества частных условий, среди которых — мнение разработчиков и пользователей данной ММС, задачи, решаемые данной ММС, и пр.

Линейное и нелинейное мультимедиа Наличие в ММС последней категории ММД — интерактивности

— позволяет разделить ММС на две категории: линейные и нелиней-ные (гипермедиа). Линейные ММС обеспечивают потоковый вывод (воспроизведение) соответствующих ММД, так что пользователь играет роль пассивного приемника информации. Типовым примером линейной ММС является обычное кино: зритель не может влиять на

Page 11: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

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

Классификация программного обеспечения мультимедиа

Сходство мультимедиа как программно-аппаратных комплексов с универсальными вычислительными системами проявляется также в наличии схожей иерархии используемого программного обеспечения (ПО). Мультимедийное ПО (ММПО) можно, прежде всего, подразде-лить на системное и прикладное.

Задачей системного ММПО является создание инфраструктуры функционирования прикладного ММПО в виде реализации основных технологий мультимедиа (форматы контейнеров и потоков данных, алгоритмы кодирования и декодирования ММД, описательные структуры, интерфейсы доступа к мультимедийным устройствам и др.). Классическим примером системного ММПО являются мультиме-дийные кодеки.

Прикладное ММПО создается для решения конкретных, приклад-ных мультимедийных задач конечного пользователя. Виды прикладно-го ММПО рассмотрены далее.

В отдельную категорию можно выделить инструментальное ММПО, задачей которого является поддержка процессов разработки прикладных ММС. Распространенными представителями инструмен-тального ММПО являются так называемые авторские системы (например, Adobe Director), которые могут быть ориентированы на создание конкретных ММС (специализированные) или ММС ряда различных категорий (универсальные).

Виды прикладных мультимедийных систем Мультимедиа находит свое применение в самых различных обла-

стях человеческой деятельности, включая рекламу, искусство,

Page 12: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

образование, индустрию развлечений, технику, медицину, математику, бизнес, научные исследования и др. Таким образом, ММС можно условно классифицировать по назначению.

Весьма распространенной категорией ММС являются информаци-онные, основной задачей которых является хранение и представление необходимой информации в наиболее наглядном и понятном виде. Такие ММС находят широчайшее применение в образовании, производстве, управлении персоналом. К таким ММС относятся компьютерные учебные курсы, мультимедийные справочники и энциклопедии, презентации.

В сфере обучения и развлечения широко применяются компью-терные симуляторы, задачей которых является имитация определенно-го окружения, внешних условий, обстановки с целью научить определенным навыкам.

Своего рода обучение наблюдается в компьютерных играх — пожалуй, наиболее распространенных и ярких представителях прикладных ММС.

В математических и научных исследованиях мультимедиа в ос-новном используется для моделирования. Например: ученый может взглянуть на молекулярную модель какого-либо вещества и манипу-лировать ею с тем, чтобы получить другое вещество. Описание подобных исследований можно найти в специализированных журналах, таких как Journal of Multimedia.

В связи с повсеместным распространением Интернета и веб-приложений появилось множество прикладных интернет-ММС: интернет-магазины и каталоги, интернет-университеты и центры тестирования знаний, программы для аудио- и видео-конференций, видео-хостинги и многие другие ресурсы.

Page 13: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Контрольные вопросы 1. Какова этимология термина «мультимедиа»?

2. Что по сути представляет собой мультимедийная система?

3. Каковы составляющие мультимедийной системы?

4. Какие задачи могут решать мультимедийные системы?

5. Какие существуют типы мультимедийных данных?

6. Какие существуют виды прикладных мультимедийных систем?

7. В чем заключается основное отличие нелинейных мультиме-дийных систем от линейных?

8. Как можно оценить степень мультимедийности приложения?

Page 14: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Тема 2. Средства разработки мультимедийных систем

Классификация средств разработки мультимедийных систем

Как отмечалось выше, в наиболее общем случае под ММС как объектом разработки понимается совокупность аппаратного и программного обеспечения, а также соответствующих мультимедий-ных данных. В качестве начальных условий примем для дальнейшего изложения, что имеется необходимое аппаратное обеспечение мультимедиа представляет собой некоторый набор стандартных устройств, соединенных стандартными аппаратными интерфейсами, и что обеспечивается необходимая поддержка со стороны самого низкоуровневого ПО: ОС и драйверов устройств. В этом случае объектом разработки становится более высокоуровневое ПО, реализующее необходимый программный функционал ММС.

Также, как и при разработке программных систем вообще, для разработки ММС могут применяться различные средства, реализую-щие необходимую мультимедиа-функциональность соответствующего уровня доступа. К этим средствам, в частности, можно отнести:

• функции и библиотеки мультимедийных функций; • классы и библиотеки классов, описывающих мультимедиа-

объекты; • компоненты и библиотеки компонентов мультимедийных

приложений; • мультимедийные платформы (фреймворки); • универсальные среды программирования; • дизайнерские средства создания мультимедиа-моделей; • среды высокоуровневого проектирования мультимедиа-

подсистем определенного вида; • приложения обработки ММД определенного вида;

Page 15: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

• авторские системы создания ММС различного назначения. Из перечисленных первые три вида средств реализуют так называ-

емую инфраструктуру мультимедиа — низкоуровневые функции и возможности (такие как кодирование-декодирование потоков, мультиплексирование-демультиплексирование потоков, фильтрация, обсчет моделей и др.), используемые более высокоуровневыми средствами.

Концепция мультимедийной платформы В основе современных систем и технологий разработки программ-

ных систем лежат важнейшие концепции повторного использования и грамотного структурирования программного кода. На современном этапе разработки эти концепции находят наиболее яркое воплощение в так называемых программных платформах (фреймворках). Программ-ная платформа в информационных системах представляет собой программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта [Wiki] путем структурирования информационной системы и ее поддержки в виде большого числа разнообразных библиотек, реализующих специфич-ную для данного типа информационных систем функциональную инфраструктуру.

Типичными представителями программных платформ являются библиотеки программных классов и компонентов, реализующие интерфейс прикладного программирования (API), снабженные визуальными средами разработки. К таким программным платформам относятся, например, связки MFC или .NET-Framework + Visual Studio, VCL + Delphi, JDK + NetBeans IDE и др. Также весьма распространен каркасный подход в веб-программировании (Symphony, Yii и др.) и веб-проектировании (системы управления сайтами (CMS) Drupal, Joomla и др.). Эти системы являются достаточно универсальными средствами разработки разнообразных информационных систем и, будучи снабжены соответствующими мультимедийными библиотека-ми, также могут выступать в роли средств разработки ММС.

Тем не менее, в области разработки мультимедиа также образова-лось немало специализированных программных каркасов различной

Page 16: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

направленности, предлагающих большую или меньшую степень поддержки разработки и функционирования ММС — так называемых мультимедийных платформ (мультимедийных фреймворков). Как правило, мультимедийная платформа состоит из системы подключае-мых модулей (кодеков, фильтров, мультиплексоров и демультиплексо-ров, модулей вывода на экран, работы с файлами и т. п.), которые можно объединить в цепочку для конвейерной обработки аудио- и видео-потоков. Полноценные мультимедийные платформы имеют удобный интерфейс прикладного программирования (API), обеспечи-вают возможность работы с различными мультимедийными формата-ми файлов и сетевых потоков, позволяют устанавливать и разрабаты-вать дополнительные подключаемые модули (плагины).

В системе классификации ММПО мультимедийные платформы являются представителями системного и инструментального ПО. Они могут быть кросс-платформенными или рассчитанными на одну конкретную платформу; проприетарными или свободными. Далее приводится обзор наиболее значимых представителей данной категории ПО. Вначале дан обзор мультимедийных платформ для операционных систем Windows и MacOS, затем проприетарных кросс-платформенных и, наконец, свободных кросс-платформенных.

Обзор распространенных мультимедийных платформ QuickTime

QuickTime представляет собой технологию, разработан-ную компанией Apple для воспроизведения цифрового видео, звука, текста, анимации, музыки и панорамных изображений в различных форматах на платформе Macintosh. После своего появления в 1991 году данная технология постоянно обновляется компанией Apple и по сей день остается актуальной и современной. QuickTime также является мультимедийным фреймворком, который могут использовать другие приложения для выполнения своих мультимедийных задач — например, iTunes, iMovie и Final Cut Pro производства самой Apple, а также различное программное обеспечение сторонних производителей (в частности, Adobe Photoshop CS4 и Ulead Video Studio).

Page 17: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

В состав продуктов QuickTime входят, в частности: • бесплатный мультимедийный плеер QuickTime Player, предна-

значенный для просмотра множества различных типов файлов, включая файлы видео, аудио, изображений, графики и фильмов виртуальной реальности (VR);

• расширенная версия плеера — QuickTime Pro — может созда-вать и редактировать видео, звук, сохранять и экспортировать в различные форматы, включая H.264;

• программное обеспечение QuickTime Broadcaster — позволяет осуществлять прямую трансляцию аудио- и видеоданных в Ин-тернете. [Wiki]

Video for Windows Программное обеспечение Video for Windows (VfW)

было представлено компанией Microsoft в ноябре 1992 года в качестве технологии, прежде всего, позволяющей системе Windows воспроизводить цифровое видео. Платформа была разработана в качестве ответа на технологию Apple QuickTime, которая реализовала поддержку цифрового видео в платформе Macintosh. Полный платный пакет программного обеспечения Video for Windows включал ряд программ для редактирования и кодирования видео, используемых в комплексе с платами нелинейного монтажа видео. Был доступен также вариант платформы, предназначенный только для просмотра видео. Первоначально выпущенная в качестве бесплатного дополнения к Windows 3.1 и Windows 3.11, платформа Video for Windows позже стала частью ОС Windows 95.

В качестве одной из технологий Video for Windows был представ-лен формат файла Audio Video Interleave (AVI), разработанный для хранения цифрового видео. Также был реализован прикладной программный интерфейс, который позволил разработчикам программ-ного обеспечения для Windows добавлять в приложения возможность воспроизводить цифровое видео и управлять им. Наконец, Video for Windows включала комплект программного обеспечения для игр и управления цифровым видео [enWiki]. Существенный недостаток технологии VfW заключался в сложности работы с MPEG-видео.

Page 18: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

ActiveMovie и DirectShow Перед выходом Windows 95 компания Microsoft стартовала новый

проект ActiveMovie для поддержки технологий MPEG, 32-битной архитектуры, а также потоковой передачи видео- и аудиодан-ных. Особенностью нового проекта явилось использование разработанной Microsoft компонентной объектной модели — Component Object Model (COM). Объектами в ActiveMovie являются фильтры, которые могут объединяться в общий граф-фильтр. Фильтры могут создаваться сторонними разработчиками для собственных нужд (например, для поддержания функциональности какого-либо устройства).

В 1997 году Microsoft интегрировала ActiveMovie в DirectX и изменила его название на DirectShow (DShow). В таком варианте данный мультимедийный фреймворк используется и сегодня. Как интерфейс программирования приложений потокового мультимедиа, он поддерживает различные форматы файлов (в основном, производства Microsoft) — WAV, AVI, Windows Media; позволяет Windows-приложениям управлять широким спектром устройств ввода-вывода аудио и видео, включая DV- и веб-камеры, DVD-устройства, ТВ-тюнеры и др. [Wiki] Будучи основан на COM, DirectShow предоставляет общий интерфейс работы с мультимедиа, поддерживаемый большинством языков программирования. Кроме того, DirectShow расширяем и позволяет поддерживать устройства, форматы и компоненты обработки сторонних производителей. Комплект средств разработки и докумен-тации ранее распространялся как часть DirectX SDK; в настоящее время эти средства распространяются совместно с Platform SDK, которая в свою очередь входит в состав Windows SDK. Microsoft планирует постепенную замену DirectShow на Media Foundation (см. далее).

Page 19: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Windows Media В обзоре мультимедийных платформ особого внимания

заслуживает мультимедийный набор Windows Media, разработанный компанией Microsoft с целью создания и распространения аудио и видеофайлов для ОС Windows. Данный набор предоставляет ряд приложений, средств разработки, а также интерфейс программирования приложений [Wiki]. В состав набора входят приложения Windows Media Encoder, Windows Media Player, Windows Media Center и Windows Media Services, а также комплект средств разработки Windows Media SDK. Поддерживаются форматы Advanced Systems Format (ASF), Windows Media Audio (WMA), Windows Media Video (WMV), Windows HD Photo (WDP). [Wiki]

Media Foundation Media Foundation (MF) представляет собой мультимедийный

фреймворк и интерфейс программирования приложений нового поколения, созданный корпорацией Microsoft для работы с цифровым мультимедиа под операционными системами семейства Windows, начиная с Vista. Согласно планам Microsoft, он заменит DirectShow, Windows Media SDK, DirectX Media Objects (DMOs) и более старые мультимедийные API, такие, как Audio Compression Manager (ACM) и Video for Windows (VfW). При этом в течение некоторого времени предполагается параллельное сосуществование DirectShow и Media Foundation. В Windows XP и более старых операционных системах использование MF не планируется.

В первом релизе Media Foundation, выпущенном с Windows Vista, основное внимание уделено качеству воспроизведения аудио и видео, поддержке видео высокой четкости (ТВЧ), а также более унифициро-ванному подходу в осуществлении контроля доступа к цифровым данным и взаимодействию средств защиты авторских прав (DRM) [Wiki].

Flash Adobe Flash (ранее Macromedia Flash) — это мультиме-

дийная платформа компании Adobe для создания веб-

Page 20: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

приложений или мультимедийных презентаций. Широко используется для создания рекламных баннеров, анимации, игр, а также воспроизве-дения на веб-страницах видео- и аудиозаписей.

Платформа включает в себя ряд средств разработки, прежде всего инструмент дизайнера Adobe Flash Professional и инструмент программиста Adobe Flash Builder (ранее Adobe Flex Builder), а также программу для воспроизведения flash-контента — Adobe Flash Player. Flash-контент также умеют воспроизводить многие плееры сторонних производителей.

Adobe Flash позволяет работать с векторной, растровой и ограни-ченно с трехмерной графикой, а также поддерживает двунаправлен-ную потоковую трансляцию аудио и видео. Для программирования во Flash используется язык программирования ActionScript, основанный на ECMAScript. Для КПК и других мобильных устройств выпущена специальная «облегченная» версия платформы Flash Lite, функцио-нальность которой ограничена в расчете на возможности мобильных устройств и их операционных систем. [Wiki]

Silverlight Microsoft Silverlight — это программная платформа,

включающая в себя подключаемый модуль для браузера, который позволяет запускать приложения, содержащие анимацию, векторную графику, и аудио- и видеоролики, что характерно для так называемых «насыщенных» Интернет-приложений — RIA (Rich Internet application). В версию Silverlight 2.0 была добавлена поддержка языков .NET и интеграция со средой разработки.

Платформа Silverlight реализована для всех современных версий Windows и Mac OS X, а также для большинства известных браузеров (Internet Explorer, Opera, Mozilla Firefox, Safari, Google Chrome). Silverlight включена в Windows Phone 7, планируется также поддержка мобильных ОС Windows Mobile 6, Symbian (Series 60) и, возможно, других платформ.

Контрольные вопросы 1. Какие существуют средства поддержки разработки мультиме-

диа-систем?

Page 21: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

2. По каким критериям можно классифицировать средства разра-ботки мультимедийных систем?

3. Что представляет собой мультимедийная платформа (фрейм-ворк)?

4. Какие существуют распространенные мультимедийные плат-формы?

Page 22: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Тема 3. Основы кодирования графики

Общие сведения о компьютерной графике Компьютерная графика (также машинная графика) — область

деятельности, в которой компьютеры используются как инструмент для синтеза (создания) изображений, а также для обработки визуаль-ной информации, полученной из реального мира. Также компьютер-ной графикой называют результат такой деятельности. [Wiki]

Первые компьютерные программы, активно использующие графи-ку, появились еще в начале 60-х годов XX века. В 1961 году под руководством программиста С. Рассела была разработана первая компьютерная игра с графикой; в 1963 году А. Сазерлендом создан первый векторный графический редактор, реализованный на компьютере; в 1964 году компания General Motors представила систему автоматизированного проектирования DAC-1, разработанную совместно с IBM.

Постепенно компьютерная графика прочно вошла в повседневную жизнь человека. К основным сферам применения технологий компьютерной графики относятся:

• графический интерфейс пользователя; • спецэффекты, визуальные эффекты (VFX), цифровая кинемато-

графия; • цифровая фотография и живопись; • визуализация научных и деловых данных; • компьютерные игры, системы виртуальной реальности (напри-

мер, тренажеры управления самолетом); • системы автоматизированного проектирования; • компьютерная томография. По числу измерений пространства, в котором размещено изобра-

жение, графику разделяют на двумерную и трехмерную.

Page 23: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

По способам задания (представления, хранения) изображений графику разделяют векторную и растровую, хотя иногда обособляют еще и фрактальный тип представления изображений.

Двумерная графика (2D — от англ. two dimensions, два измерения) оперирует с графическими объектами в двумерном пространстве, а трехмерная (3D), соответственно, — в трехмерном пространстве.

Растровая двумерная графика Растровое двумерное изображение представляется в памяти ком-

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

В растровом виде представимо любое изображение, однако этот способ хранения имеет свои недостатки, которые более явственны при работе с графикой «диаграммного» типа (схемами, чертежами и пр.): зачастую больший объем памяти, необходимый для работы с изображениями, нарастающие потери при многоэтапном редактирова-нии. Без особых потерь растровые изображения можно лишь уменьшать, хотя некоторые детали изображения при этом исчезают, не давая возможность точно восстановить оригинальное изображение.

Несмотря на недостатки, растровая графика активно используется, особенно при работе с фотографиями или другими художественными изображениями, созданными человеком и впоследствии оцифрован-ными с помощью сканера.

Векторная двумерная графика Векторная двумерная графика представляет изображение в виде

набора геометрических примитивов. Обычно в качестве примитивов выбираются точки, прямые, окружности, прямоугольники, а также как общий случай, сплайны некоторого порядка. Объектам присваиваются некоторые атрибуты, например, толщина линий, цвет заполнения замкнутых фигур. Рисунок хранится как набор координат, векторов и других чисел, характеризующих набор примитивов. При воспроизве-дении перекрывающихся объектов имеет значение относительный порядок их расположения.

Page 24: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Изображение в векторном виде может без потерь масштабировать-ся, поворачиваться, деформироваться. Каждое преобразование векторного изображения выполняется путем стирания старого изображения (или его фрагмента) и построения вместо него нового. Математическое описание векторного рисунка при этом остается прежним, изменяются только значения некоторых переменных, например, коэффициентов.

Вместе с тем, как уже отмечалось, не всякое изображение можно представить как набор из примитивов. Векторный способ представле-ния хорош для схем и чертежей, масштабируемых шрифтов, деловой графики, широко используется для создания «рисованных» мульт-фильмов. К недостаткам при работе исключительно с векторными изображениями относится также необходимость перерисовывать (заново строить) изображение даже при простом сдвиге, когда можно было бы просто скопировать часть растрового массива.

Трехмерная графика Как уже отмечалось, трехмерная графика оперирует с объектами в

трехмерном пространстве. При этом обычно говорят не о трехмерных изображениях, а о трехмерных моделях объектов и их видимых проекциях-изображениях. Трехмерный объект представляется в памяти компьютера как набор небольших участков поверхностей — полигонов (векторная 3D-графика), или как набор элементарных пространственных частиц — вокселей (растровая 3D-графика). В качестве полигонов чаще всего используются треугольники, а в качестве вокселей — кубы.

Визуальные преобразования полигональных 3D-моделей осу-ществляются с помощью матриц трех видов (в основном): поворота, сдвига и масштабирования. Каждый полигон представляется в виде набора из координат его вершин. Координаты каждой вершины представляют собой трехкомпонентный вектор (x, y, z). Умножение вектора на соответствующую матрицу дает новый вектор. Результатом такого преобразования со всеми вершинами полигона является новый полигон, а результатом преобразования всех полигонов — новый

Page 25: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

объект, повернутый, сдвинутый или масштабированный относительно исходного.

Воксельные модели Воксельные трехмерные модели состоят из отдельных элементов

— вокселей. Слово «воксель» (voxel) образовано из слов «объемный» (англ. volumetric) и «пиксель» (англ. pixel). Воксели являются аналогами пикселей для трехмерного пространства. Воксельные модели часто используются для визуализации и анализа медицинской и научной информации.

Как и в случае с пикселями, сами по себе воксели не содержат информации о своих координатах в пространстве. Их координаты вычисляются из их позиции в трехмерной матрице — структуре, моделирующей объемный объект или поле значений параметра в трехмерном пространстве. Этим воксели отличаются от объектов векторной графики, для которых известны координаты их опорных точек (вершин) и прочие параметры. Воксельные модели имеют определенное разрешение. Каждый воксель имеет определенное значение, например, цвет.

Для хранения воксельной модели применяют массив размерами X×Y×Z. Несжатые воксельные модели (по сравнению с векторными) потребляют гораздо больше места в памяти для обработки. К примеру, одна несжатая модель размером 256×256×256 вокселей будет занимать память объемом от 16 Мбайт, в то время как векторной модели может потребоваться в десятки или даже сотни раз меньше памяти.

Обобщенный формат растровой графики Файлы растровой графики могут иметь различную структуру,

представленную совокупностью блоков определенного назначения. Однако ряд блоков являются необходимыми для кодирования любого растрового изображения, и потому они присутствуют в любом из форматов. Набор таких блоков можно рассматривать как обобщенный формат растровой графики:

Page 26: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Заголовок [Палитра цветов] Растровый массив

Заголовок описывает характеристики файла растровой графики и,

собственно, растрового изображения, такие как логические ширина и высота изображения, глубина цвета, используемая цветовая система, наличие альфа-канала и др.

Растровый массив описывает данные самого изображения. Каж-дый элемент растрового массива соответствует одному пикселю изображения и содержит информацию о его цвете. Если палитра цветов отсутствует, то эта информация непосредственно кодирует цвет в соответствии с используемой цветовой системой; при этом говорят о полноцветом кодировании изображения. Полноцветное кодирование целесообразно применять для представления изображений фотографи-ческого типа, где редки либо вообще отсутствуют пиксели одного цвета. Эта ситуация типична в случае, когда число возможных цветов намного превышает число пикселей изображения.

Палитра, если она присутствует, определяет набор используемых в изображении цветов; при этом говорят о палитровой графике. Использование палитры особенно эффективно при кодировании диаграммной графики, когда число используемых цветов намного меньше числа пикселей изображения и, таким образом, в изображении могут многократно встречаться пиксели одного цвета. При этом в растровом массиве содержатся относительно короткие индексы (номера) цветов из палитры вместо соответствующих длинных цветовых кодов.

Палитра может быть полной, когда она содержит все возможные цвета, которые можно получить при использовании конкретной цветовой системы с определенными параметрами, и неполной, когда она представляет только часть возможных цветов. Полная палитра по определению является фиксированной и изначально определенной независимо от кодируемых изображений. В случае использования неполной палитры целесообразно формировать ее на основе анализа конкретного кодируемого изображения, заполняя используемыми цветами.

Page 27: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Понятие глубины цвета. Кодирование пикселя при различных глубинах цвета

Глубиной цвета называется количество двоичных бит, отводимых на кодированное представление цвета. Чем больше глубина цвета, тем большее число цветов можно закодировать. Зависимость между числом цветов Ц и глубиной цвета Г описывается простыми выраже-ниями:

Ц = 2Г,

Г = (log2Ц)↑,

где символом ↑ обозначена операция округления до целого в большую сторону.

При полноцветном кодировании изображения элемент растрового массива полностью отводится для кодирования цветовых компонент пикселя. В простейшем случае полноцветного кодирования глубина цвета совпадает с размером этого элемента в битах. В общем случае в элементе растрового массива может также содержаться дополнитель-ная информация, например, об уровне прозрачности пикселя.

Возможные варианты представления цветовых палитр: • 1-битный цвет (21 = 2 цвета) — бинарный цвет, чаще всего

представляется черным и белым цветами (или черный и зеле-ный);

• 2-битный цвет (2² = 4 цвета) — CGA, градации серого цвета NeXTstation;

• 3-битный цвет (2³ = 8 цветов) — Множество устаревших персо-нальных компьютеров с TV-выходом;

• 4-битный цвет (24 = 16 цветов) — известен как EGA и в мень-шей степени как стандарт VGA с высоким разрешением;

• 5-битный цвет (25 = 32 цвета) Original Amiga chipset; • 6-битный цвет (26 = 64 цвета) Original Amiga chipset; • 8-битный цвет (28 = 256 цветов) — Устаревшие рабочие станции

Unix, VGA низкого разрешения, Super VGA, AGA;

Page 28: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

• 12-битный цвет (212 = 4096 цветов) — некоторые системы Silicon Graphics, цвет систем NeXTstation и Amiga-систем HAM-режима.

С увеличением количества бит в представлении цвета количество отображаемых цветов становится непрактично большим для цветовых палитр (при 20-битной глубине цвета, как правило, требуется больше памяти для сохранения полной цветовой палитры, чем памяти для сохранения самих пикселей изображения).

8-битная глубина цвета позволяет сформировать сильно ограни-ченную, однако «реальную» цветовую схему, в которой 3 бита (8 возможных значений) для красной (R) и зеленой (G) составляющих, и два оставшихся бита на пиксель для кодирования синей (B) составля-ющей (4 возможных значения), позволяют представить 256 (8 × 8 × 4) различных цвета. Нормальный человеческий глаз менее чувствителен к синей составляющей, чем к красной и зеленой, поэтому синяя составляющая представляется одним битом меньше. Такая схема использовалась в MSX2-серии компьютеров в 1990-х годах.

12-битный «реальный» цвет кодируется 4 битами (16 возможных значений) для каждой R, G и B-составляющих, что позволяет представить 4096 (16×16×16) различных цветов. Такая глубина цвета иногда используется в простых устройствах с цветными дисплеями (например, в мобильных телефонах).

Цвет HighColor или HiColor разработан для представления оттен-ков «реальной жизни», то есть наиболее удобно воспринимаемый человеческим глазом. Такой цвет кодируется 15 или 16 битами. 15-битный цвет использует 5 бит для представления красной составляю-щей, 5 для зеленой и 5 для синей, то есть 25 = 32 возможных значения каждого цвета, которые дают 32768 (32×32×32) объединенных цвета. 16-битный цвет использует 5 бит для представления красной составляющей, 5 для синей, но 6 бит для представления зеленой (так как человеческий глаз более чувствителен при восприятии зеленой составляющей), соответственно 64 возможных значения. Таким образом получаются 65536 (32×64×32) цвета. 16-битный цвет упоминается как «тысячи цветов» («thousands of colors») в системах Macintosh.

Page 29: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Большинство современных LCD-дисплеев отображают 18-битный цвет (64×64×64 = 262144 комбинации), но благодаря технологии dithering разница с TrueColor-дисплеями на глаз незначительна.

24-битная глубина цвета и соответствующие изображения получи-ли название TrueColor. Такой набор цветов приближен к цветам «реального мира», предоставляя 16,7 миллионов различных цветов. Такой цвет наиболее приятен для восприятия человеческим глазом различных фотографий, для обработки изображений. 24-битный Truecolor-цвет использует по 8 бит для представления красной, синей и зеленой составляющих, 28 = 256 различных варианта представления цвета для каждого канала, или всего 16 777 216 цветов (256×256×256). 24-битный цвет упоминается как «миллионы цветов» («millions of colors») в системах Macintosh.

«32-битный цвет» — это пример неправильного употребления термина при описании глубины цвета. Заблуждением является то, что 32-битный цвет позволяет представить 2³² = 4 294 967 296 различных оттенков. В реальности 32-битный цвет является 24-битным (TrueColor) с дополнительным 8-битным каналом, который либо заполнен нулями (не влияет на цвет), либо представляет собой альфа-канал, который задает прозрачность изображения для каждого пикселя. Причиной, по которой используют «пустой» канал, является стремление оптимизировать работу с видеопамятью, которая у большинства современных компьютеров имеет 32-битную адресацию и 32-битную шину данных.

В конце 1990-х некоторые high-end графические системы, напри-мер SGI, начали использовать более 8 бит на канал, например 12 или 16 бит. Разумеется, такое количество оттенков не является востребо-ванным при отображении цветов, однако программы профессиональ-ного редактирования изображений стали сохранять по 16 бит на канал, предоставляя «защиту» от накапливания ошибок округления и погрешностей при вычислении в условиях ограниченной разрядной сетки чисел.

Page 30: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Краткий обзор популярных форматов изображений BMP (Windows Device Independent Bitmap) — самый простой

растровый формат, представляющий в большинстве случаев несжатое изображение, хотя и поддерживает алгоритм сжатия RLE. Разработан компанией Microsoft для хранения графики. Является «родным» форматом в системах Windows.

GIF (Graphics Interchange Format) — разработан в 80-х годах XX в. специально для передачи цветных изображений по компьютер-ным сетям. Способен хранить сжатые данные без потери качества в формате не более 256 цветов. Благодаря своим преимуществам — малый размер файла, поддержка прозрачного фона и анимации — продолжает использоваться по сей день.

PNG (Portable Network Graphics) — формат хранения графической информации, использующий сжатие без потерь. Был разработан с целью заменить формат GIF, так как имеет лучшее сжатие данных, поддерживает цветные изображения вплоть до 48-битных, а также обеспечивает множество уровней прозрачности пикселей благодаря поддержке альфа-канала.

JPEG (Joint Photographic Experts Group) позволяет сжимать дан-ные полноцветных изображений (до 24 бит) с достаточно высокой скоростью и эффективностью. В отличие от GIF и PNG использует алгоритм сжатия с потерями.

RAW (англ. raw — cырой) — формат данных, содержащий необ-работанные графические данные, получаемые с датчиков сканирую-щего устройства. В таких файлах содержится полная информация о хранимом сигнале, что позволяет избежать первоначальных потерь информации.

PSD (Photoshop Document) — растровый формат хранения графи-ческой информации, использующий сжатие без потерь, используется программой Adobe Photoshop. Сохраняет изображение со многими слоями, дополнительными цветовыми каналами, масками и прочей информацией.

Контрольные вопросы 1. Какие существуют виды компьютерной графики?

Page 31: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

2. В чем заключается принцип кодирования растровой графики?

3. В чем заключается принцип кодирования векторной графики?

4. Что представляют собой воксельные модели?

5. Какова структура обобщенного формата растровой графики?

6. Что такое глубина цвета?

7. Как осуществляется кодирование пикселя при различных глу-бинах цвета?

8. Каково назначение цветовой палитры при кодировании растро-вой графики?

9. В чем заключается суть канального представления графической мультимедийной информации?

10. Какие существуют распространенные графические форматы?

11. Что такое альфа-канал? Какие распространенные графические форматы его поддерживают?

Page 32: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Тема 4. Сжатие мультимедийных данных

Понятие сжатия данных Сжатие данных (англ. data compression) — алгоритмическое

преобразование данных, производимое с целью уменьшения их объема. Применяется для более рационального использования устройств хранения и передачи данных. Синонимы — упаковка данных, компрессия, сжимающее кодирование, кодирование источника. Обратная процедура называется восстановлением данных (распаковкой, декомпрессией).

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

Принципы сжатия данных В основе любого способа сжатия лежит модель избыточности

исходных данных. Иными словами, для сжатия данных используются некоторые априорные сведения о том, какого рода данные сжимаются. Не обладая такими сведениями об источнике, невозможно сделать никаких предположений о преобразовании, которое позволило бы уменьшить объем сообщения. Модель избыточности может быть статической, неизменной для всего сжимаемого сообщения, либо

Page 33: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

строиться или параметризоваться на этапе сжатия (и восстановления). Методы, позволяющие на основе входных данных изменять модель избыточности информации, называются адаптивными. Неадаптивны-ми являются обычно узкоспециализированные алгоритмы, применяе-мые для работы с данными, обладающими хорошо определенными и неизменными характеристиками. Подавляющая часть достаточно универсальных алгоритмов являются в той или иной мере адаптивны-ми.

Виды сжатия данных Все методы сжатия данных делятся на два основных класса: • сжатие без потерь (lossless) — при котором возможно полное

восстановление исходных данных; • сжатие с потерями (lossy) — позволяет восстановить данные с

искажениями, обычно несущественными с точки зрения воспри-ятия пользователем и дальнейшего использования восстанов-ленных данных.

Сжатие без потерь обычно используется для передачи и хранения текстовых данных, компьютерных программ, реже — для сокращения объема аудио- и видеоданных, цифровых фотографий и т. п., в случаях, когда искажения недопустимы или нежелательны. Сжатие с потерями играет более важную роль в мультимедиа, поскольку, как правило, обладает значительно большей эффективностью, позволяя, таким образом, сильнее упаковывать мультимедийный контент, сохраняя при этом показатели его качества на необходимом уровне. Сжатие с потерями обычно применяется для сокращения объема аудио- и видеоданных и цифровых фотографий в тех случаях, когда такое сокращение является приоритетным, а полное соответствие исходных и восстановленных данных не требуется.

Коэффициент сжатия Коэффициент сжатия — основная характеристика любого алго-

ритма сжатия. Она обычно определяется как отношение объема исходных несжатых данных к объему сжатых:

Page 34: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

с

о

SSk = ,

где k — коэффициент сжатия, So — объем исходных данных, а Sc — объем сжатых.

При таком определении коэффициент сжатия показывает число раз, в которое удалось сжать данные с использованием определенного алгоритма. Чем выше коэффициент сжатия, тем алгоритм эффектив-нее. Следует отметить: если k = 1, то алгоритм не производит сжатия, то есть выходное сообщение оказывается по объему равным входному; если k < 1, то алгоритм порождает сообщение большего размера, нежели несжатое, то есть, совершает «вредную» работу.

Ситуация с k < 1 вполне возможна при сжатии. Но даже когда алгоритм сжатия увеличивает размер исходных данных, легко добиться того, чтобы их объем гарантировано не мог увеличиться более, чем на 1 бит. То есть сделать так, чтобы даже в самом худшем случае имело место неравенство:

1+

≥о

оS

Sk ,

Делается это следующим образом: если объем сжатых данных меньше объема исходных, нужно возвратить сжатые данные, добавив к ним «1», иначе возвратить исходные данные, добавив к ним «0».

Коэффициент сжатия может быть постоянным или переменным. Во втором случае он может быть определен либо для каждого конкретного сообщения, либо оценен по некоторым критериям:

• средний (обычно по некоторому тестовому набору данных); • максимальный (случай наилучшего сжатия); • минимальный (случай наихудшего сжатия);

или каким-либо другим. Коэффициент сжатия с потерями при этом сильно зависит от допустимой погрешности сжатия или качества, которое обычно выступает как параметр алгоритма. В общем случае постоянный коэффициент сжатия способны обеспечить только методы сжатия данных с потерями.

Page 35: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Допустимость потерь при сжатии Основным критерием различия между алгоритмами сжатия явля-

ется описанное выше наличие или отсутствие потерь. В общем случае алгоритмы сжатия без потерь универсальны в том смысле, что их применение безусловно возможно для данных любого типа, в то время как возможность применения сжатия с потерями должна быть обоснована. Для некоторых типов данных искажения не допустимы в принципе. В их числе

• символические данные, изменение которых неминуемо приво-дит к изменению их семантики: программы и их исходные тек-сты, двоичные массивы и т. п.;

• жизненно важные данные, изменения в которых могут привести к критическим ошибкам: например, получаемые с медицинской измерительной аппаратуры или контрольных приборов лета-тельных, космических аппаратов и т. п.;

• многократно подвергаемые сжатию и восстановлению проме-жуточные данные при многоэтапной обработке (графические, звуковые и видеоданные) (наличие потерь, несущественных в случае однократной обработки, при многократной обработке приводит к накоплению потерь и превращению их в существен-ные).

Системные требования алгоритмов Различные алгоритмы сжатия могут требовать различного количе-

ства ресурсов вычислительной системы, на которых они реализованы: • оперативной памяти (под промежуточные данные); • постоянной памяти (под код программы и константы); • процессорного времени. В целом, эти требования зависят от сложности и «интеллектуаль-

ности» алгоритма. Общая тенденция такова: чем эффективнее и универсальнее алгоритм, тем большие требования к вычислительным ресурсам он предъявляет. Тем не менее, в специфических случаях простые и компактные алгоритмы могут работать не хуже сложных и универсальных. Системные требования определяют их потребитель-

Page 36: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

ские качества: чем менее требователен алгоритм, тем на более простой, а следовательно, компактной, надежной и дешевой системе он может быть реализован.

Поскольку алгоритмы сжатия и восстановления работают в паре, имеет значение соотношение системных требований к ним. Нередко можно, усложнив один алгоритм, значительно упростить другой. Таким образом, возможны три варианта:

1) Алгоритм сжатия требует больших вычислительных ресурсов, нежели алгоритм восстановления — это наиболее распространенное соотношение, характерное для случаев, когда однократно сжатые данные (звук, видео) будут использоваться многократно.

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

3) Алгоритм сжатия существенно менее требователен, чем алго-ритм восстановления — такая ситуация характерна для случаев, когда процедура сжатия реализуется простым, часто портативным устрой-ством, для которого объем доступных ресурсов весьма критичен, например, космический аппарат или большая распределенная сеть датчиков. Это могут быть также данные, распаковка которых требуется в очень малом проценте случаев, например запись камер видеонаблюдения.

Алгоритмы сжатия данных неизвестного формата Имеется два основных подхода к сжатию данных неизвестного

формата: 1) На каждом шаге алгоритма сжатия либо очередной сжимаемый

символ помещается в выходной буфер сжимающего кодера как есть (со специальным флагом, помечающим, что он не был сжат), либо группа из нескольких сжимаемых символов заменяется ссылкой на совпадающую с ней группу из уже закодированных символов. Поскольку восстановление сжатых таким образом данных выполняет-ся очень быстро, такой подход часто используется для создания самораспаковывающихся программ.

Page 37: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

2) Для каждой сжимаемой последовательности символов одно-кратно либо в каждый момент времени собирается статистика ее встречаемости в кодируемых данных. На основе этой статистики вычисляется вероятность появления очередного кодируемого символа (либо последовательности символов). После этого применяется та или иная разновидность энтропийного кодирования, например, арифмети-ческое кодирование или кодирование Хаффмана, для представления часто встречающихся последовательностей короткими кодовыми словами, а редко встречающихся — более длинными.

Кодирование длин серий (RLE) Кодирование длин серий (англ. Run-length encoding, RLE) —

простой алгоритм сжатия данных, который оперирует сериями данных, то есть последовательностями, в которых один и тот же символ встречается несколько раз подряд. При кодировании строка одинаковых символов, составляющих серию, заменяется строкой, которая содержит сам повторяющийся символ и количество его повторов.

Рассмотрим, например, изображение, содержащее простой черный текст на сплошном белом фоне. Здесь будет много серий белых пикселей в пустых местах, и много коротких серий черных пикселей в тексте. В качестве примера приведена некая произвольная строка изображения в черно-белом варианте. Здесь B представляет черный пиксель, а W обозначает белый:

WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW

Если мы применим простое кодирование длин серий к этой строке, то получим следующее:

12W1B12W3B24W1B14W Последняя запись интерпретируется как «двенадцать W», «одна

B», «двенадцать W», «три B» и т. д. Таким образом, код представляет исходные 67 символов в виде всего лишь 18.

Однако, в случае, если строка состоит из большого количества неповторяющихся символов, ее объем может вырасти:

Page 38: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

ABCABCABCABCDDEFFFFFFFF 1A1B1C1A1B1C1A1B1C1A1B1C2D1E8F Проблема решается достаточно просто. Алфавит, в котором запи-

саны длины серий, разделяется на две (обычно равные) части. Алфавит целых чисел можно, например, разделить на две части: положительные и отрицательные. Положительные используют для записи количества повторяющихся одинаковых символов, а отрицательные — для записи количества неодинаковых.

-12ABCABCABCABC2D1E8F Так как численные типы данных на компьютере всегда имеют

некоторый предел, возникает еще одна проблема. Предположим, мы используем для записи длин серий тип Signed Char. Тогда мы не можем записать серию длиннее 127 символов одной парой "длина-символ". Если подряд записано 256 символов A, их разделяют на минимальное количество групп:

127A127A2A Кодирование, которое используется для хранения изображений,

оперирует с двоичными данными, а не с символами ASCII, как в рассмотренном примере, однако принцип остается тот же.

Очевидно, что такое кодирование эффективно для данных, содер-жащих большое количество серий, например, для простых графиче-ских изображений, таких как иконки и графические рисунки. Однако это кодирование плохо подходит для изображений с плавным переходом тонов, таких как фотографии.

Распространенные форматы для упаковки данных с помощью RLE включают в себя PackBits, PCX и ILBM.

Методом кодирования длин серий могут быть сжаты произволь-ные файлы с двоичными данными, поскольку спецификации на форматы файлов часто включают в себя повторяющиеся байты в области выравнивания данных. Тем не менее, современные системы сжатия (например, DEFLATE) чаще используют алгоритмы на основе LZ77, которые являются обобщением метода кодирования длин серий и оперируют с последовательностями символов вида «BWWBWWBWWBWW».

Page 39: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Звуковые данные, которые имеют длинные последовательные серии байт (такие как низкокачественные звуковые семплы) могут быть сжаты с помощью RLE после того, как к ним будет применено дельта-кодирование.

Словарное кодирование — алгоритмы семейства LZ LZ (LZ*) — семейство алгоритмов словарного сжатия данных,

получившее название по инициалам двух исследователей — Абрахама Лемпэла (Abraham Lempel) и Якоба Зива (Jacob Ziv), разработавших в 1970-х годах алгоритмы LZ77 и LZ78. На базе LZ77 и LZ78, изменяя и комбинируя их с другими методами, исследователями был создан ряд других алгоритмов семейства LZ — LZO, LZS, LZW, LZC, LZMA.

Оба первоначальных алгоритма — LZ77 и LZ78 — относятся к словарным методам, в отличие от других методов уменьшения избыточности, таких как RLE и арифметическое сжатие. LZ77 является алгоритмом со «скользящим окном», что эквивалентно неявному использованию словарного подхода, впервые предложенно-го в LZ78. Можно сказать, что алгоритмы семейства LZ представляют собой более сложное обобщение простого и интуитивного способа сжатия данных, используемого в RLE.

Принцип скользящего окна заключается в том, что алгоритм кодирования учитывает уже ранее встречавшуюся информацию, то есть информацию, которая уже известна для кодировщика и декоди-ровщика (второе и последующие вхождения некоторой строки символов в сообщении заменяются ссылками на ее первое вхождение). Благодаря этому принципу алгоритмы LZ иногда называются методами сжатия с использованием скользящего окна. Скользящее окно можно представить в виде буфера, который организован так, чтобы запоминать «сказанную» ранее информацию и предоставлять к ней доступ. Таким образом, сам процесс сжимающего кодирования согласно LZ77 напоминает написание программы, команды которой позволяют обращаться к элементам «скользящего окна», и вместо значений сжимаемой последовательности вставлять ссылки на эти значения в «скользящем окне». Размер скользящего окна может динамически изменяться и составлять 2, 4 или 32 Кбайта. Следует

Page 40: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

также отметить, что размер окна кодировщика может быть менее или равен размеру окна декодировщика, но не наоборот.

В отличие от LZ77, работающего с уже полученными данными, LZ78 ориентируется на данные, которые только будут получены (LZ78 не использует «скользящее» окно, он хранит словарь из уже просмот-ренных фраз). Алгоритм считывает символы сообщения до тех пор, пока накапливаемая подстрока входит целиком в одну из фраз словаря. Как только эта строка перестанет соответствовать хотя бы одной фразе словаря, алгоритм генерирует код, состоящий из индекса строки в словаре, которая до последнего введенного символа содержала входную строку, и символа, нарушившего совпадение. Затем в словарь добавляется введенная подстрока. Если словарь уже заполнен, то из него предварительно удаляют менее всех используемую в сравнениях фразу.

Контрольные вопросы 1. Каково назначение операции сжатия данных?

2. Какова роль сжатия при обработке мультимедийных данных?

3. Каковы принципы сжатия данных?

4. Какие существуют виды сжатия данных?

5. Что такое коэффициент сжатия и как он вычисляется?

6. Когда допустимы потери при сжатии мультимедийных данных?

7. Каковы системные требования алгоритмов сжатия?

8. Какие существуют алгоритмы сжатия данных неизвестного формата?

9. Каков принцип алгоритма кодирования длин серий (RLE)?

10. Каковы принципы словарного кодирования (алгоритмов семей-ства LZ)?

Page 41: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Тема 5. Компьютерная анимация

Общие сведения Компьютерная анимация — вид анимации, создаваемый при

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

Являясь производной от компьютерной графики, анимация под-разделяется на аналогичные виды: векторная и растровая анимация; двумерная и трехмерная (3D) анимация.

Кадры, из которых создается анимация, могут быть заранее подго-товлены (предопределенная анимация, линейная ММС) либо порождаться во время самой анимации (процедурная анимация и, как правило, нелинейная ММС).

Предопределенная анимация Существует два основных способа создания предопределенной

анимации: анимация по ключевым кадрам и запись движения. В первом случае создание анимации предполагает выполнение

двух этапов: создание ключевых кадров и создание промежуточных кадров. Создание и расстановка ключевых кадров производится аниматором в ручном или полуавтоматическом режиме, а промежу-точные кадры генерирует специальная программа-фазовщик. Этот способ наиболее близок к традиционной рисованной анимации, только роль фазовщика берет на себя компьютер, а не человек.

При использовании записи движения данные анимации записыва-ются специальным оборудованием с реально двигающихся объектов и переносятся на их имитацию в компьютере. Распространенный пример такой техники — Motion capture (захват движений). Актеры в специальных костюмах с датчиками совершают движения, которые

Page 42: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

записываются камерами и анализируется специальным программным обеспечением. Итоговые данные о перемещении суставов и конечно-стей актеров применяют к трехмерным скелетам виртуальных персонажей, чем добиваются высокого уровня достоверности их движения. Такой же метод используют для переноса мимики живого актера на его трехмерный аналог в компьютере.

Процедурная анимация Процедурная анимация полностью или частично рассчитывается

компьютером в режиме реального времени согласно установленным правилам, законам и ограничениям. Сюда можно включить следующие ее виды:

• Симуляция физического взаимодействия твердых тел. • Имитация движения систем частиц, жидкостей и газов. • Имитация взаимодействия мягких тел (ткани, волос). • Расчет движения иерархической структуры связей (скелета

персонажа) под внешним воздействием (Ragdoll). • Имитация автономного (самостоятельного) движения персона-

жа. Примером такой системы является программа Euphoria. В отличие от предопределенной анимации, когда аниматор вруч-

ную определяет каждый кадр и все параметры создаваемой анимации, при процедурной анимации результат может быть в некоторой мере непредсказуем и при каждом запуске может генерировать разнообраз-ную анимацию.

Процедурная анимация используется для создания и моделирова-ния системы частиц (дым, огонь, вода), ткани и одежды, динамики твердых тел, динамики волос и меха, а также для анимации гуманоид-ных и негуманоидных персонажей.

Одним из видов процедурной анимации является физика Ragdoll (рус. физика «тряпичной куклы»). При использовании физики Ragdoll персонаж состоит из последовательности связанных твердых тел, которые запрограммированы с использованием системы действующих на них сил.

Еще одним явным примером процедурной анимации является технология «Dynamic Motion Synthesis» (рус. синтез динамических

Page 43: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

движений), которая разработана компанией NaturalMotion и использу-ется в продуктах Euphoria и Endorphin. Синтез движений основан на моделировании биомеханики и моторной нервной системы в режиме реального времени, при этом используются элементы из биологии и теории управления роботами. Синтез движений позволяет создавать модели полностью интерактивных трехмерных персонажей, которые не используют заранее просчитанную анимацию. Euphoria использует технологию DMS для генерации анимации в режиме реального времени в компьютерных играх или других интерактивных приложе-ниях.

Программируемая анимация Компьютерная анимация находит широкое применение в среде

Web. При реализации анимации для этой среды возможны два варианта:

• предварительная подготовка анимированного изображения, размещение его на стороне сервера и копирование на клиент в готовом виде;

• написание программы генерации анимации, выполняемой на стороне клиента и создающей необходимую анимацию по мере доступа к информации (без учета либо с учетом интерактивно-сти).

Преимущество второго варианта (программируемой анимации) перед первым заключается в уменьшении размера исходного файла анимации, загружаемого на компьютер клиента, а недостаток — в повышенной нагрузке на процессор клиента.

Широкое применение в сети получили языки, с помощью которых программируются движения анимируемых объектов. Наибольшее распространение из них получили:

• Java-Script — браузерный язык; • Action-Script — язык работы с приложениями Flash.

Конструкторы анимаций Для создания анимированных изображений существует множество

программ, более или менее специализированных. Среди них можно

Page 44: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

упомянуть Adobe Photoshop, GIMP, Adobe Flash Professional, CoffeeCup, Blender и другие.

Также возможно создание анимации с помощью цифрового фото-аппарата. Для этого используются специализированные программы, обеспечивающие управление цифровым фотоаппаратом через компьютер и работу с полученными кадрами.

Хранение анимации Компьютерная анимация может храниться в универсальных гра-

фических файлах (например, в формате GIF или APNG) в виде набора независимых изображений, либо в специализированных файлах соответствующих пакетов анимации (3ds Max, Blender, Maya и т. п.) в виде текстур и отдельных элементов, либо в форматах, предназначен-ных для просмотра (FLIC) и применения в играх (Bink). Также, анимация может сохраняться в форматах, предназначенных для хранения видео (например, MPEG-4).

Применение анимации Компьютерная анимация может применяться в компьютерных

играх, мультимедийных приложениях (например, энциклопедиях), а также для «оживления» отдельных элементов оформления, например, веб-страниц и рекламы (анимированные баннеры).

Трехмерная компьютерная анимация получает все более широкое применение в киноиндустрии.

Контрольные вопросы 1. В чем заключаются характерные особенности анимации как

вида мультимедийных данных?

2. Какие существуют разновидности компьютерной анимации?

3. В чем заключается сущность предопределенной анимации?

4. В чем заключается сущность процедурной анимации?

5. Какие виды процедурной анимации получили самостоятельное развитие?

6. В чем заключается сущность программируемой анимации?

Page 45: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

7. Какие применяются средства создания анимации?

8. Какие языки программирования применяются для создания анимации в среде Web?

9. В каких форматах может храниться компьютерная анимация?

10. Каковы сферы применения анимации?

Page 46: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Тема 6. Кодирование аудиоданных

Основы цифрового представления звука Цифровий звук (англ. Digital audio) — термін, що вживається на

окреслення цифрових технологій роботи зі звуком. У вузькому сенсі слова, цифровий звук являє собою цифровий сигнал, в якому закодовано звук. В більш широкому сенсі поняття цифровий звук охоплює також цифрові технології обробки, зберігання та відтворення звуку.

Цифровий звук принципово відрізняється від аналогового. В аналогових звукових системах (наприклад при запису на грамофонні платівки, магнітофонні касети тощо), акустичні коливання повітря перетворюються на аналогічні за формою електричні за допомогою мікрофона та зберігаються, а відтворення звуку відбувається зворотнім шляхом — через підсилювач та конвертацію в акустичні коливання через гучномовець.

Натомість цифровий звук починається з перетворення аналогового сигналу на електричний імпульсний («on/off») сигнал, що відрізняєть-ся від електромеханічного формою. Цей сигнал перекодовується для запобігання помилок при зберіганні чи передачі сигналу.

Як правило, цифровий сигнал отримують з аналогового шляхом його конвертації у цифровий. Цей процес називається оцифруванням (оцифровуванням) і здійснюється за допомогою аналогово-цифрового перетворювача (АЦП). В музичній практиці використовують однак і сигнали, що мають винятково цифрове походження, наприклад, згенеровані на цифрових синтезаторах, в цьому випадку аналогово-цифрове перетворення не здійснюється.

Page 47: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Рисунок 6.1 – Звукова хвиля (сіра лінія), представлена в цифровому вигляді (червона лінія)

АЦП здійснює заміри амплітуди звукового сигналу з певною частотою дискретизації (sample rate) та з певною роздільністю (bit resolution).

Частота дискретизації f визначає частоту, з якою здійснюються заміри амплітуди сигналу, вимірюється у герцах або кілогерцах (кГц). Згідно з теоремою Котельникова, частота дискретизація повинна бути щонайменше вдвічі більшою за найвищу частоту корисного сигналу. Оскільки людина сприймає звуки частотою до 20 кГц, то для якісного аудіо мінімальне значення частоти дискретизації становить 40 кГц.

Амплітудна роздільність (дискретність квантування) д — визначає точність, з якою здійснюються заміри амплітуди сигналу. Амплітудна роздільність вимірюється у кількості бітів, що відводяться для запису значення амплітуди. Оскільки 1 біт відповідає одному розряду у двійковій системі, ця величина також називається розрядністю і грає у кодуванні ту ж роль, що і глибина кольору у графіці. Кількість можливих значень амплітуди x та відповідна до неї кількість розрядів д знаходяться у залежності, що описується співвідношенням х = 2д. Таким чином, наприклад, 16-бітова розрядність забезпечує запис 216 = 65 536 рівнів амплітуди.

Підвищення обох параметрів уможливлюють більш якісне оциф-рування звуку, проте збільшують і обсяги даних. Тому на практиці вживаються різні стандарти дискретизації та розрядності. Наприклад, стандартний Audio CD має частоту дискретизації 44,1 кГц (44 100

Page 48: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

семпли в секунду) та 16-бітову розрядність для кожного каналу (стерео). Натомість DVD-Audio може використовувати частоту дискретизації до 192 кГц, а розрядність — до 24 біт.

Антіалайзинг і дитеринг Якщо записуваний сигнал включає частоти, вищі за максимально

припустиму граничну частоту (англ. Nyquist frequency), при його оцифруванні виникає ефект накладання спектрів частот (англ. aliasing). Для запобігання цього ефекту необхідний фільтр захисту накладання спектрів, що обмежує спектр сигналу граничною частотою.

Іншим небажаним ефектом при оцифруванні звуку є кореляція шуму квантування з квантованим сигналом. При цьому шум квантування сприймається як доволі неприємне спотворення на частоті 3-5 кГц. Для зменшення цього ефекту використовується дитеринг — ефект додавання до сигналу псевдовипадкового сигналу. Хоча загальний рівень шумів при дитерингу збільшується, суб'єктивно сприйманий неприємний ефект зменшується. Сприйману гучність шуму квантування можна зменшити, застосовуючи дітеринг спільно з нойз-шейпінгом (noise shaping). В якості шуму дітеринга найчастіше використовується білий шум з трикутним розподілом амплітуд (TPDF) між –1 і +1 LSB (крок квантування). Дітеринг застосовується, зокрема, для запису дисків CD, коли цифровий звук високої роздільності (24 біта) знижується до розрядності CD (16 біт) в процесі мастерингу.

Якість звуку Завданням як аналогової, так і цифрової систем є відтворення

звуку з максимальною якістю. Проте існують ряд перешкод для досягнення бажаного результату. Серед них:

• аналоговий рівень власних шумів, який залежить від ємності та індуктивності, що обмежують смугу пропускання системи, а також опору, що обмежує амплітуду;

• цифровий шум квантування, який залежить від частоти дискре-тизації, що обмежує смуги пропускання, а також розрядності, що обмежує динамічний діапазон.

Page 49: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Скорость потока (битрейт) Цифровий звук має потокову природу. Одним з характеристик

цифрового потоку є бітрейт (англ. bitrate) — швидкість проходження бітів інформації в одиницю часу. Бітрейт прийнято використовувати при вимірюванні ефективної швидкості передачі інформації з каналу, тобто швидкості передачі «корисної інформації» (крім такої по каналу може передаватися службова інформація, наприклад, стартові й стопові символи при асинхронній передачі або контрольні символи при надлишковому кодуванні).

Бітрейт виражається бітами на секунду (біт/c, bps), а також похід-ними величинами з префіксами кіло-, мега- і т. д.

Бітрейт може також виступати характеристикою каналу або при-строю — максимальна кількість біт, яку можна передати в одиницю часу.

Бітрейт також є характеристикою стиснених форматів потокового відео і аудіо (наприклад MPEG і MP3), яка виражає ступінь стиснення потоку, і, тим самим, визначає розмір каналу, для якого стиснено потік даних. Найчастіше бітрейт звуку й відео вимірюють у кілобітах у секунду (англ. kilobit per second — kbps).

Існує три рідновиди бітрейту, які відповідають трьом режимам стиску потокових даних:

• з постійним бітрейтом (англ. Constant BitRate - CBR) • зі змінним бітрейтом (англ. Variable BitRate - VBR) • з усреденим бітрейтом (англ. Average BitRate - ABR) Розвинений кодек може вибирати потрібний режим стиску, вихо-

дячи з параметрів, які задають рівень бажаної якості. При стиску звуку потрібний бітрейт визначається на основі психоакустичної моделі. ABR — різновид VBR, у якій кодек при стисненні дотримується заданого середнього значення з тим, щоб отримати на виході файл заданого розміру.

Обзор форматов файлов, используемых для хранения цифрового звука

Існує три основні групи аудіофайлів.

Page 50: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

• нестиснені формати — такі як WAV, AIFF, AU, PCM; • формати із стисненням без втрат — FLAC, Monkey's Audio

(розширення APE), Shorten, Tom's lossless Audio Kompressor (TAK), TTA, ATRAC Advanced Lossless, Apple Lossless, MPEG-4 SLS, MPEG-4 ALS, MPEG-4 DST, WMA Lossless;

• формати із стисненням з втратами, наприклад MP3, Ogg Vorbis, Musepack, AAC, ATRAC, lossy WMA.

Слід мати на увазі, що до аудіофайлів не відносяться такі музичні формати як MIDI або файли нотних редакторів, які являють собою лише послідовність команд для музичного інструменту, однак не містять інформації власне про звук.

Формат аудіофайлу також слід відрізняти від аудіокодеку. Кодек здійснює кодування чи розкодування звукових даних, тоді як самі дані зберігаються у файлі відповідного звукового формату. Більшість форматів підтримують лише один тип кодування звукових даних, проте мультимедійні контейнери (наприклад, MKV або AVI) можуть підтримувати різні типи аудіо- і відео-даних.

WAV WAV (от англ. wave — волна) — формат файла-контейнера, ши-

роко используемого для хранения записи оцифрованного аудиопотока. Первая версия формата представлена компанией Microsoft в 1991 г. Формат WAV основывается на структуре универсального контейнер-ного формата RIFF (см. далее). В системе Windows этот формат чаще всего используется в качестве оболочки для несжатого звука (PCM), когда для каждого отсчета амплитуды сигнала выделяется определен-ное число бит [Wiki]. Менее распространены случаи, когда в контейнере WAV размещается звук, сжатый каким-либо кодеком (например, MP3).

Вследствие того, что формат WAV является надстройкой над универсальным многоплатформенным контейнером RIFF, существует несколько разновидностей формата WAV для различных платформ и с некоторыми различиями в структуре.

Page 51: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

MP3 MP3 (более точно, англ. MPEG-1/2/2.5 Layer 3; но не MPEG-3) —

третий слой формата кодирования звуковой дорожки MPEG, лицензируемый формат файла для хранения аудиоинформации [Wiki]. MP3 является одним из самых распространенных и популярных форматов цифрового кодирования звуковой информации с потерями. Звук в данном формате может воспроизводиться практически во всех популярных операционных системах, на большинстве портативных аудиоплееров, а также поддерживается всеми современными моделями музыкальных центров и DVD-плееров.

Важным отличием формата MP3 от WAV является то, что MP3 не является медиаконтейнером, поскольку данный формат специфициру-ет как способ описания параметров аудиоданных, так и формат представления самого аудиопотока (но не алгоритм его кодирования) в пределах одного файла.

Описание структуры формата RIFF WAVE Общие сведения о формате WAV

Формат WAV изначально использовался в системе Windows для сохранения цифровых аудиоданных. Это самый известный и широко поддерживаемый формат благодаря популярности платформы Windows и большому количеству написанных для нее программ. Почти любая современная программа, работающая со звуком, может прочитать или записать формат WAV. Далее подробно описываются основные структуры данных формата WAV.

Поскольку формат WAV-файла пришел от операционной системы Windows, в которой традиционно использовались процессоры Intel, все значения данных формата хранятся как Little-Endian, т. е. самый младший значащий байт идет первым.

WAV-файлы могут содержать строки текста, например метки секций, информационные комментарии и т. д. Строки сохраняются таким образом, что первый байт указывает количество байт текста ASCII в строке. Пример формата строки Wave — 7 'e' 'x' 'a' 'm' 'p' 'l' 'e'.

Page 52: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Общая структура файла WAV-файл использует стандартную структуру RIFF, которая

группирует содержимое файла из отдельных секций (chunks) — формат выборок аудиоданных, сами аудиоданные и т. п. Каждая секция имеет свой заголовок секции и данные секции. Заголовок секции указывает тип секции и количество содержащихся в секции байт. Такой принцип организации позволяет программам анализиро-вать только необходимые секции, пропуская остальные секции, которые неизвестны или не требуют обработки. Некоторые опреде-ленные секции могут иметь в своем составе подсекции (sub-chunks). Например, как можно увидеть на диаграмме, описывающей основной формат WAV-файла, секции "fmt " и "data" являются подсекциями секции "RIFF". Chunk ID "RIFF" Chunk Data Size RIFF Type ID "WAVE" Chunk ID "fmt " Chunk Data Size Sample Format Info Chunk ID "data" Chunk Data Size Digital Audio Samples Заголовок секции (Chunk Header) Данные секции (Chunk Data Bytes)

Одна из особенностей, связанная с секциями файла RIFF, состоит

в том, что адреса начала секций должны быть выровнены на размер слова (2 байта). Это означает, что общий размер секции должен быть кратен 2. Если секция содержит нечетное число байт данных (невыравненное до 2 байт), то добавляется дополнительный нулевой байт данных в конец данных секции. Этот дополнительный байт не учитывается в размере секции заголовка, таким образом, программа всегда должна учитывать выравнивание для расчета смещения начала следующей секции.

Page 53: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Заголовок WAV-файла, секция типа RIFF Первые 8 байт WAV-файла содержат стандартный заголовок

секции RIFF, который имеет ID секции "RIFF" и размер секции, равный размеру файла минус 8 байт, используемых для RIFF-заголовка. Первые 4 байта данных в секции "RIFF" определяют тип ресурса, который можно найти в секции. WAV-файлы всегда используют тип ресурса "WAVE". После типа ресурса (ID "WAVE") идут все секции звукового файла, которые определяют аудиосигнал.

Таблица 6.1 – Значения полей секции RIFF

Смещение Размер Описание Значение 0x00 4 Chunk ID "RIFF" (0x52494646) 0x04 4 Chunk Data Size (file size) — 8 0x08 4 RIFF Type "WAVE" (0x57415645) 0x10 Wave chunks (секции WAV-файла)

Секции WAV-файла Существует довольно много типов секций, заданных для файлов

WAV, но большинство WAV-файлов содержат только две из них — секцию формата ("fmt ") и секцию данных ("data"). Это именно те секции, которые необходимы для описания формата выборок аудиоданных и для хранения самих аудиоданных. Хотя официальная спецификация не задает жесткий порядок следования секций, наилучшей практикой будет размещение секции формата перед секцией данных. Многие программы ожидают именно такой порядок секций, и он наиболее разумен для передачи аудиоданных через медленные последовательные каналы святи, например, в Интернете.

Все секции формата RIFF и соответственно секции Wave сохра-няются в формате, показанном в таблице 6.2:

Таблица 6.2 – Формат секций RIFF и Wave

Смещение Размер Описание 0x00 4 Chunk ID 0x04 4 Chunk Data Size 0x08 Chunk Data Bytes

Page 54: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Далее описаны некоторые наиболее важные типы секций Wave, формат и значение содержащихся в них данных.

Секция формата — "fmt " Секция формата содержит информацию о том, как сохранены

аудиоданные и как они должны воспроизводиться. Информация включает в себя тип используемой компрессии, количество каналов, скорость выдачи выборок (sample rate), количество бит в выборке (bits per sample) и другие атрибуты.

Таблица 6.3 – Значения полей секции формата (Wave Format Chunk)

Смещение Размер Описание Значение 0x00 4 Chunk ID "fmt " (0x666D7420) 0x04 4 Chunk Data Size 16 + extra format

bytes 0x08 2 Compression code 1 - 65,535 0x0a 2 Number of channels 1 - 65,535 0x0c 4 Sample rate 1 - 0xFFFFFFFF 0x10 4 Average bytes per second 1 - 0xFFFFFFFF 0x14 2 Block align 1 - 65,535 0x16 2 Significant bits per sample 2 - 65,535

0x18 2 Extra format bytes 0 - 65,535 0x1a Дополнительные данные формата (Extra format bytes) Идентификатор секции (Chunk ID) всегда содержит значение

"fmt " (0x666D7420) и объем данных равен размеру стандартного формата WAV (16 байт) плюс размер всех дополнительных байт формата, необходимых для поддержки специфических форматов звука, если он не содержит несжатых данных PCM.

Код сжатия (Compression code) — первое слово данных формата указывает на тип сжатия, используемого для аудиоданных. В таблице 6.4 содержится список кодов сжатия, используемых в настоящее время.

Page 55: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Таблица 6.4 – Коды сжатия (Compression Codes)

Код Описание 0 (0x0000) Unknown 1 (0x0001) PCM/uncompressed 2 (0x0002) Microsoft ADPCM 6 (0x0006) ITU G.711 a-law 7 (0x0007) ITU G.711 µ-law

17 (0x0011) IMA ADPCM 20 (0x0016) ITU G.723 ADPCM (Yamaha) 49 (0x0031) GSM 6.10 64 (0x0040) ITU G.721 ADPCM 80 (0x0050) MPEG

65536 (0xFFFF) Experimental Количество каналов (Number of Channels) указывает, сколько

отдельных аудиосигналов закодировано в секции данных звука (wave data chunk). Значение 1 означает монофонический сигнал, 2 означает стерео, и т. п.

Скорость выборок (Sample Rate) — это число выборок аудиосиг-нала, приходящихся на секунду. На эту величину не влияет количество каналов.

Среднее количество байт в секунду (Average Bytes Per Second) — величина, показывающая, сколько байт за секунду данных должно быть пропущено через цифроаналоговый преобразователь (D/A converter, DAC) во время воспроизведения файла. Эта информация полезна, чтобы определить, могут ли данные поступать от источника с нужной скоростью, чтобы не отставать от воспроизведения. Эта величина вычисляется по формуле:

AvgBytesPerSec = SampleRate · BlockAlign

Выравнивание блока (Block Align) — количество байт на одну выборку. Эта величина может быть вычислена по формуле:

BlockAlign = SignificantBitsPerSample · NumChannels / 8

Количество используемых бит на выборку (Significant Bits Per Sample) — количество бит, формирующих каждую выборку сигнала. Обычно эта величина равна 8, 16, 24 или 32. Если число бит не

Page 56: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

выравнено по байту (не делится нацело на 8), количество используе-мых байт на выборку округляется вверх к наименьшему количеству байт. Неиспользуемые биты устанавливаются в 0 и игнорируются. Такие форматы (с числом бит на выборку, не кратным 8) встречаются редко.

Дополнительные данные формата (Extra Format Bytes) — данная величина указывает, сколько далее идет дополнительных данных, описывающих формат. Она обычно отсутствует, если код сжатия равен 1 (uncompressed PCM file), но может присутствовать и иметь любую другую величину для других типов сжатия, зависящую от количества необходимых для декодирования данных. Если величина не выровнена на слово (не делится нацело на 2), должен быть добавлен дополни-тельный байт в конец данных, но величина должна оставаться невыровненной.

Секция данных — "data" Секция данных Wave (Wave Data Chunk) содержит данные цифро-

вых выборок аудиосигнала, которые можно декодировать с использо-ванием формата и метода компрессии, указанных в секции формата Wave (Wave Format Chunk). Если код компрессии равен 1 (несжатый PCM, Pulse Code Modulation), то данные представлены в виде сырых, непреобразованных (raw) величин выборок.

WAV-файлы обычно содержат только одну секцию данных, но секций может быть несколько, если они содержатся в секции списка Wave (Wave List Chunk "wavl").

Таблица 6.5 – Формат секции данных "data"

Смещение Длина Тип Описание Значение 0x00 4 char[4] chunk ID "data" (0x64617461)

0x04 4 dword chunk size зависит от количества выборок и компрессии

0x08 данные выборок (sample data) Аудиовыборки многоканального цифрового аудио сохраняются

как чередуемые (interlaced) данные: выборки каналов, относящиеся к некоторому моменту времени, сохраняются последовательно друг за другом, перед тем как произойдет переход к следующему времени

Page 57: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

выборки. Это сделано с целью возможности последовательного проигрывания файла даже тогда, когда еще не весь файл прочитан целиком. Это удобно, когда проигрывается большой файл с диска (который не может быть размещен целиком в памяти) или файл передается в последовательном потоке данных через сетевое соединение. Значения в диаграмме ниже были бы сохранены в WAV-файле в том порядке, как они перечислены в столбце значений (от начала до конца).

Таблица 6.6 – Чередуемые выборки стерео Wave

Время Канал Значение

0 1 (левый) 0x0053 2 (правый) 0x0024

1 1 (левый) 0x0057 2 (правый) 0x0029

2 1 (левый) 0x0063 2 (правый) 0x003C

8-битные выборки определены как значения без знака (unsigned).

Двоичное значение 0 (0х00) соответствует значению сигнала максимальной отрицательной амплитуды, значение 255 (0хFF) — максимальной положительной амплитуды, а значение 128 (0х80) — отсутствию сигнала. Все другие битовые размеры указываются как величины со знаком (signed). Например, выборка длиной 16 бит может принимать значение в диапазоне от –32768 (0x8000) до +32767 (0x7FFF), значение 0 соответствует отсутствию сигнала.

Как уже было указано ранее, все секции RIFF (включая секции WAVE "data") должны быть выровнены по размеру на слово (2 байта). Если данные выборок содержатся в нечетном количестве байт, в конец данных выборок должен быть добавлен выравнивающий нулевой байт. В заголовке секции "data" размер не должен учитывать этот выравни-вающий байт.

Другие дополнительные секции WAV-файла используются до-вольно редко, поэтому для реализации простейшего программного анализа WAV-файла обработку этих секций можно опустить.

Page 58: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Воспроизведение звука в программах Windows Процедура Beep

Наиболее простой процедурой, управляющей звуком, является процедура Beep. Она не имеет параметров и воспроизводит стандарт-ный звуковой сигнал, установленный в Windows, если компьютер имеет звуковую карту и стандартный сигнал задан (в Windows XP он устанавливается с помощью апплета «Звуки и аудиоустройства» в Панели управления). Если звуковой карты нет или стандартный сигнал не установлен, звук воспроизводится через динамик (PC speaker) компьютера в виде короткого щелчка.

Функция MessageBeep Несколько более развитой является функция MessageBeep из

подсистемы API Win32. Определение данной функции на Object Pascal выглядит так: function MessageBeep(uType: Word): Boolean;

Параметр uType указывает воспроизводимый звук как идентифи-катор раздела [sounds] реестра, в котором записаны звуки, сопровож-дающие те или иные события в Windows. С помощью апплета «Звуки и аудиоустройства» в Панели управления Windows пользователь может удалить или установить соответствующие звуки.

Возможные значения параметра uType приведены в таблице 6.7. После запроса звука функция MessageBeep возвращает управление

вызвавшей функции и воспроизводит звук асинхронно, то есть во время воспроизведения приложение продолжает выполняться. Эта асинхронность, однако, не распространяется на собственно воспроиз-ведение звука: при вызове Beep или MessageBeep текущее воспроизве-дение прерывается, так что наложения звуков не происходит.

Page 59: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

. Таблица 6.7 – Возможные значения параметра uType функции

MessageBeep Значение параметра Соответствующий звук

MB_ICONASTERISK SystemAsterisk — звездочка MB_ICONEXCLAMATION SystemExclamation — восклицание MB_ICONHAND SystemHand — критическая ошибка MB_ICONQUESTION SystemQuestion — вопрос MB_OK SystemDefault — стандартный звук $FFFFFFFF стандартный звук с динамика PC

Если невозможно воспроизвести указанный в функции звук,

делается попытка воспроизвести стандартный системный звук, установленный по умолчанию. Если и это невозможно, то воспроизво-дится стандартный сигнал через динамик. При успешном выполнении возвращается ненулевое значение. При аварийном завершении возвращается нуль.

Добавим в наше тестовое приложение еще одну кнопку и напишем для нее обработчик: MessageBeep(MB_OK);

Приложение воспроизведет тот же стандартный звук Windows, что и при выполнении процедуры Beep (или тихий щелчок, если стандартный звук не установлен). Рекомендуем попробовать установить различные звуки с помощью «Панели управления» и проверить работу функции MessageBeep при различных значениях ее параметра.

Функция PlaySound Рассмотрим теперь более серьезную функцию PlaySound, которая

позволяет воспроизводить не только звуки событий Windows, но и любые волновые файлы. Как и MessageBeep, PlaySound является функцией API Windows. Ее параметры описаны в модуле mmsystem, поэтому для использования этой функции в приложении необходимо включить в его оператор uses ссылку на mmsystem.

Функция PlaySound определена следующим образом:

Page 60: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

function PlaySound(pszSound: PChar; hmod: HINST; fdwSound: Cardinal): Boolean;

Параметр pszSound представляет собой строку с нулевым симво-лом в конце и определяет воспроизводимый звук.

Параметр hmod используется, если звук берется из ресурса. Если не предполагается пользоваться звуками из ресурсов, hmod следует задать равным nil или 0.

Параметр fdwSound является множеством флагов, которые опре-деляют режим воспроизведения и тип источника звука. Некоторые из этих флагов, наиболее важные для воcпроизведения произвольных волновых файлов, приведены в таблице 6.8. Флаги могут комбиниро-ваться операцией or.

Звук, указанный параметром pszSound, должен помещаться в доступную память и должен подходить для установленного драйвера устройства воспроизведения волновых файлов. Функция PlaySound ищет файл звука в следующих каталогах: текущем, каталоге Windows, системном каталоге Windows, каталогах, перечисленных в переменной среды PATH, а также в списке каталогов, предоставляемых сетью.

Если указанный звук не обнаруживается, функция PlaySound воспроизводит системный звук по умолчанию. Если функция не может найти и его, то воспроизведения не будет, а вернется значение False.

Приведем несколько примеров использования функции PlaySound. Оператор PlaySound('c:\windows\media\Bxoд в Windows XP.wav', 0, SND_ASYNC);

воспроизводит асинхронно и однократно стандартный звук Microsoft, который обычно можно слышать при запуске Windows. В процессе воспроизведения продолжается выполнение приложения.

Page 61: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Таблица 6.8 – Флаги параметра fdwSound функции PlaySound

Флаг Описание SND_ASYNC Звук воспроизводится асинхронно: функция PlaySound

возвращает управление немедленно после начала воспроизведения. Чтобы прекратить асинхронное воспроизведение волнового файла, надо вызвать PlaySound с параметром pszSound, равным 0.

SND_LOOP Воспроизведение звука постоянно повторяется, пока не вызовется PlaySound с параметром pszSound, равным 0. Одновременно надо установить флаг SND_ASYNC асинхронного воспроизведения звука.

SND_NOSTOP Если заданный звук не может быть воспроизведен, поскольку ресурсы, необходимые для воспроизведе-ния, заняты воспроизведением другого звука, функция PlaySound немедленно вернет False, не воспроизводя заданного звука. Если данный флаг не указан, функция PlaySound пытается остановить воспроизведение другого звука, чтобы устройство могло быть использовано для воспроизведения нового звука.

SND_NOWAIT Если драйвер занят, функция сразу вернет управление без воспроизведения заданного звука.

SND_PURGE Останавливается воспроизведение любых звуков, вызванных в данной задаче. Если параметр pszSound не равен 0, останавливаются все экзем-пляры указанного звука. Если pszSound равен 0, то останавливаются все звуки, связанные с данной задачей.

SND_SYNC Синхронное воспроизведение звука события. Функция PlaySound возвращает управление только после окончания воспроизведения.

В предыдущем примере звук задавался именем его волнового

файла. Функция PlaySound позволяет воспроизводить и системные звуки, просто называя их псевдонимы. Например, оператор PlaySound('SystemStart', 0, SND_ASYNC); воспроизведет тот же звук входа в Windows, что и приведенный ранее оператор, указывавший имя и путь к нему.

Page 62: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

Оператор PlaySound('c:\windows\media\Bxoд в Windows XP.wav', 0, SND_ASYNC or SND_LOOP); многократно асинхронно воспроизводит стандартный звук входа, начиная его снова и снова, как только он заканчивается. Вводя в приложение подобный оператор, следует предусмотреть на форме еще и какую-нибудь кнопку, по которой воспроизведение прервется заданием нового звука или выполнением оператора PlaySound(0, 0, SND_PURGE);

Оператор PlaySound('c:\windows\media\Bxод в Windows XP.wav', 0, SND_SYNC); будет воспроизводить звук синхронно, то есть функция PlaySound не вернет управление, пока воспроизведение не завершится. На это время пользовательское приложение будет блокировано. Впрочем, действия пользователя во время этого вынужденного простоя запомнятся системой. И если, слушая музыку, он щелкнет на той же кнопке повторно, то после окончания звука он будет повторен, так как щелчок встал в очередь событий.

Все рассмотренные ранее операторы прерывали при своем выпол-нении звук, который асинхронно воспроизводился в момент вызова PlaySound. Если же выполнить оператор с флагом SND_NOSTOP, например: PlaySound('c:\windows\media\Bxoд в Windows XP.wav', 0, SND_SYNC or SND_NOSTOP); то в случае, если в этот момент драйвер занят воспроизведением другого звука, это воспроизведение не будет прерываться, а функция PlaySound сразу вернет False. Заказанного этим оператором звука в этом случае слышно не будет, так как в очередь он не встанет [Арх].

Контрольные вопросы 1. В чем заключается сущность импульсно-кодовой модуляции?

Page 63: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

2. В чем заключаются сущность и назначение операций антиали-асинга и дитеринга?

3. Какие параметры характеризуют качество цифрового звука?

4. Что такое битрейт? Какие существуют разновидности битрейта?

5. Какие форматы файлов используются для хранения цифрового звука?

6. Какова общая структура формата RIFF WAVE?

7. Какие функции предназначены для воспроизведения звука в программах ОС Windows?

8. В каких режимах может воспроизводиться волновой звук при использовании функции PlaySound?

Page 64: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

64

Тема 7. Кодирование видеоданных

Основные понятия компьютерного видео Напомним, что видео как вид ММД имеет много общего с анима-

цией: в обоих этих видах ММД имеет место «движущееся изображе-ние», получаемое частой сменой отдельных кадров. Однако, в отличие от анимации, которая, в большинстве случаев, имеет искусственную природу (основана на двумерных или трехмерных моделях), классическое видео получается путем съемки на камеру реальных объектов окружающего мира («естественное» видео).

Видео, таким образом, имеет более выраженную, чем анимация, потоковую природу, роднящую видео со звуком. Еще одной важной отличительной особенностью видео является то, что в большинстве случаев оно не является самостоятельным видом ММД. Как правило, видеопоток записывается, хранится и воспроизводится параллельно с одним или несколькими аудиопотоками, а также, возможно, текстовы-ми дорожками субтитров. Эта особенность является причиной того, что большинство соответствующих форматов файлов — медиаконтей-неров (см. далее) — предназначены для хранения как раз таких множественных потоков, включая видео.

Видео существует в различных областях применения, в каждой из которых сложились свои принципы, средства и стандарты формирова-ния, хранения, воспроизведения потока данных. Традиционно различают кинотеатральное, телевизионное, бытовое и компьютерное видео.

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

Page 65: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

65

оснащен платой нелинейного видеомонтажа или ТВ-тюнера, способной выполнять захват аналогового видеосигнала в реальном времени. Во втором случае необходима плата с аналоговым видео-выходом, композитным или компонентным (в период повсеместного распространения аналоговых источников и приемников видеосигнала были распространены модели видеокарт, оснащенные такими выходами). Композитный видеовыход смешивает сигналы цветности и яркости в общий аналоговый сигнал, а компонентный передает эти сигналы раздельно по самостоятельным аналоговым линиям.

Постепенно аналоговое видео заменяется цифровым во всех областях развития и распространения видео. Цифровое видео образуется из первичного сигнала, получаемого и оцифровываемого сканирующим устройством — цифровой видеокамерой, после чего хранится и выводится на устройства видеовывода в цифровом виде. Поскольку видеоданные, в сравнении с другими видами ММД, отличаются наиболее значительными объемами, для их хранения и пересылки по каналам связи необходимо применять эффективные алгоритмы сжатия. Если в области хранения и воспроизведения звука уже достаточно широко применяются алгоритмы сжатия без потерь, в области видео для хранения и передачи конечного видеопродукта используются только алгоритмы сжатия с потерями, и эта ситуация, по-видимому, изменится еще не скоро (хотя алгоритмы сжатия видео постоянно развиваются в направлении повышения качества, то есть уменьшения потерь при кодировании).

Понятие развертки видеосигнала Растровая развертка представляет собой метод преобразования

плоского движущегося изображения в сигнал, при котором происхо-дит его разложение на отдельные элементы последовательным построчным считыванием. Такая же технология используется для преобразования сигнала обратно в изображение. Главная область применения растровой развертки — телевидение, поэтому она часто называется телевизионной, хотя используется также для отображения информации компьютеров и радиолокационных станций. Телевизион-

Page 66: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

66

ная растровая развертка состоит из строчной и кадровой разверток и может быть как механической, так и электронной.

В телевизионном вещании принята прямоугольная горизонтально-строчная развертка (слева направо и сверху вниз) и она может быть двух видов: чересстрочная и прогрессивная (построчная).

При прогрессивной развертке кадр формируется сканированием элементов изображения в каждой строке слева направо и считыванием подряд каждой строки сверху вниз. После каждой строки и каждого кадра передаются сигналы синхронизации.

При чересстрочной развертке каждый кадр разбивается на два полукадра (или поля), составленные из строк, выбранных через одну. Чересстрочная развертка применяется в тех или иных случаях для ускорения вывода изображений при ограниченной полосе пропускания (в аналоговой технике) или ширине канала (в цифровой технике). В видеосигнале, при сохранении количества строк изображения, применение чересстрочной развертки в 2 раза повышает кадровую частоту по сравнению с прогрессивной. Это важно для растровых устройств вывода на электронно-лучевых трубках (таких как классические телевизоры), поскольку позволяет существенно снизить мерцание видеоизображения.

Понятие медиаконтейнера Медиаконтейнер (англ. Media container) — формат файла или

потока, спецификации которого определяют способ сохранения подготовленных ММД и не определяют способ их кодирования и представления. Способ представления самих ММД определяется форматом потоковых ММД, который, в свою очередь, может не определять алгоритм кодирования потока.

Таким образом, медиаконтейнер определяет, сколько ММД фак-тически может быть сохранено в его пределах, вместе с тем он не определяет никакую кодификацию самих ММД. Медиаконтейнер фактически является метаформатом, так как он хранит данные и информацию о том, как эти данные будут сохраняться непосредствен-но в файле или потоке. Вследствие этого программа, которая способна корректно идентифицировать и открыть файл медиаконтейнера,

Page 67: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

67

впоследствии может быть не способна декодировать фактические данные, записанные внутри медиаконтейнера, поскольку либо метаданных в медиаконтейнере недостаточно для этого, либо программное обеспечение неспособно декодировать данные, закодированные в медиаконтейнере [Wiki].

В теории формат-контейнер способен хранить любой тип данных, однако на практике для каждого типа данных существуют отдельные группы контейнеров. Эти группы «настроены» для специфических требований и информации, которая будет сохраняться в них. Большинство медиаконтейнеров предназначены для сохранения потоковых ММД типа фильмов, включающих в себя, в общем случае, видео, аудио, изображения и текст. В случае фильмов медиаконтейнер должен не только должным образом сохранять видео- и аудиопоток, но и при воспроизведении обеспечивать их синхронизацию. Также в медиаконтейнере может сохраняться несколько однотипных потоков, например фильм (видео-поток) с несколькими звуковыми дорожками (аудиопотоками) и субтитрами (текстовыми потоками).

Обзор распространенных медиаконтейнеров AVI

Медиаконтейнер AVI (англ. Audio Video Interleave — «чередова-ние аудио и видео») был впервые использован Microsoft в 1992 году в пакете Video for Windows и предназначен для хранения мультиплекси-рованных видео- и аудиоданных. Основой структуры контейнера AVI является формат — RIFF. Видео и аудио данные, хранящиеся в формате AVI, могут быть сжаты с использованием разных комбинаций кодеков. Как и DVD (VOB), AVI файлы поддерживают многопотоко-вое аудио в одном контейнере.

На начало 2012 года этот контейнер является самым распростра-ненным среди медиаконтейнеров, предназначенных для хранения видео на компьютере (в файловых системах компьютеров). Однако, вследствие исторических ограничений формата RIFF максимальный размер файла AVI не превышает 2 Гбайт, что делает его весьма неудобным для работы с видеоданными большого объема. По мере развития компьютерного видео и увеличения его объемов указанное

Page 68: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

68

ограничение становится со временем все более существенным, что создает предпосылки для развития и распространения более современ-ных медиаконтейнеров.

VOB VOB (DVD-Video Object или Versioned Object Base) — формат

файлов, используемый для хранения DVD-Video. Данный медиакон-тейнер основан на стандарте MPEG-2 и способен содержать в себе несколько потоков видео и аудио, субтитры, а также меню фильма. Всего возможно не более 9 различных аудиопотоков и 32 потока субтитров.

Битрейт сжатого видео варьируется от 2000 до 9800 Кбит/с, часто является переменным (VBR). Размер видеокадра для стандарта PAL равен 720×576 точек, а для стандарта NTSC — 720×480 точек. Данное разрешение обеспечивает так называемую «стандартную четкость» кадра (SD, Standard-definition). Более высокую четкость стандарт DVD не поддерживает, что приводит к постепенному снижению его распространенности.

Аудиоданные в контейнере VOB могут быть сохранены в формате PCM, DTS, MPEG или Dolby Digital (AC-3). В странах, использующих стандарт NTSC, все фильмы на DVD должны содержать звуковую дорожку в формате PCM или AC-3, а все NTSC-проигрыватели должны эти форматы поддерживать. Таким образом, любой стандарт-ный диск может быть воспроизведен на любом стандартном оборудо-вании.

В странах, использующих стандарт PAL (большинство стран Европы), сначала хотели ввести в качестве стандарта звука для DVD форматы PCM и MPEG-2, но под общественным давлением и вразрез с пожеланиями Philips DVD-Forum включил Dolby AC-3 в список опциональных форматов звука на дисках и обязательных форматов в проигрывателях.

Matroska (MKV) Matroska (Матрешка) — это целый проект, нацеленный на созда-

ние одноименного открытого, гибкого, кроссплатформенного (включая аппаратные платформы) формата мультимедийного

Page 69: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

69

контейнера, а также набора инструментов и библиотек для работы с данными в этом формате.

Проект Matroska является прямой открытой альтернативой кон-тейнерам AVI, ASF, MOV, RealMedia, MP4, MPG. Он является развитием проекта MCF, но значительно отличается от последнего тем, что основан на расширяемом двоичном метаязыке EBML (Extensible Binary Meta Language) — двоичном аналоге языка XML. Использование EBML позволяет расширять формат без потери совместимости со старыми программами.

Кроме, собственно, контейнера MKV для видео в проекте Matroska имеются специальные контейнеры для аудио — MKA, и для субтитров — MKS.

Возможности формата, закладываемые в Matroska: • поддержка видеопотока высокой (HD) и сверхвысокой (Full HD)

четкости; • трансляция через Интернет (протоколы HTTP и RTP); • быстрая перемотка по файлу; • устойчивость к ошибкам; • экранные меню (как на DVD-дисках); • разбиение файла на главы (Chapters); • переключаемые «на лету» субтитры; • переключаемые звуковые дорожки; • переключаемые видео дорожки; • модульная расширяемость. Matroska является открытым проектом (open standard). Это означа-

ет, что для персонального использования она абсолютно бесплатна, а техническая спецификация формата битового потока доступна любому, даже компаниям, желающим встроить поддержку формата в свои продукты (для этого потребуется специальная лицензия). Исходный код всех библиотек, созданных группой разработчиков проекта Matroska, распространяется на условиях LGPL; библиотека для проигрывания, написанная на Си с использованием целочисленной арифметики, распространяется на условиях лицензии BSD.

Page 70: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

70

Поддерживается адаптация и реализация библиотек Matroska для OpenBeOS Mediakit и GStreamer (кроссплатформенной мультимедий-ной среды, похожей на DirectShow для Windows) и набора фильтров DirectShow для воспроизведения и создания файлов Matroska в ОС Windows.

Flash Video (FLV) Медиаконтейнер Flash Video получил основное распространение в

качестве средства передачи видео через Интернет. Используется он такими сервисами видеохостинга как YouTube, Google Video, Вконтакте, RuTube и другими. Хотя описание формата контейнера было открыто, кодеки защищены патентами и остаются собственниче-скими.

FLV-файл содержит битовый поток, который является вариантом видеостандарта H.263. Flash Player 8 и более новые редакции поддерживают потоковое видео On2 TrueMotion VP6. On2 VP6 обеспечивает более качественное изображение, особенно при использовании низкого битрейта. С другой стороны, этот формат более сложен, что может создать трудности при просмотре на устаревших машинах.

Опциональный альфа-канал, представляющий собой попиксель-ную прозрачность, поддерживается с помощью дополнительного видеопотока, который кодирует только альфа-канал. Реализация предполагает, что YUV-данные основного On2 VP6 видео потока всегда конвертируются клиентом в RGB. Эта возможность доступна только для видео On2 VP6.

Начиная с Flash Player 9 Update 3 поддерживается новый формат мультимедиафайла ISO Base MPEG-4 Part 12, с новым видеокодеком — H.264. Этот стандарт видеосжатия при том же низком битрейте выдает значительно более детализированное и четкое изображение, особенно в динамических сценах. Недостатками являются, опять-таки, повышение требований к вычислительным ресурсам и платные патенты.

Звук в FLV, как правило, закодирован в MP3, однако иногда могут использоваться Nellymoser codec, несжатое аудио или ADPCM

Page 71: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

71

аудиоформат. В версии Flash Player 9 Update 3, в соответствии с внедрением Adobe формата ISO Base (MPEG-4 Part 12), добавлена поддержка AAC аудио (профили AAC-LC, Main Profile, и HE-AAC). В версии Flash Player 10 Beta добавлен открытый кодек SPEEX.

MPEG-4 Part 14 (MP4) Формат медиаконтейнера MPEG-4 Part 14 (или MP4), официально

известный как ISO/IEC 14496-14:2003, является частью стандарта MPEG-4. Он используется для упаковки цифровых видео- и аудиопо-токов, субтитров, постеров и метаданных, которые определены группой разработчиков. Как и большинство современных медиакон-тейнеров, MPEG-4 Part 14 предусматривает возможность осуществлять потоковое вещание через Интернет, дополнительно к файлу передают-ся метаданные, содержащие необходимую для вещания информацию.

Контейнер MP4 поддерживает следующие форматы данных: Видеопотоки: MPEG-4 SP/ASP, MPEG-4 AVC/H.264, MPEG-2,

MPEG-1 (за исключением DivX3/MS Mpeg-4, WM9, RV9 и VP6). Аудиопотоки: AAC, MP3, MP2, MP1. Субтитры: MPEG-4 Timed Text. Статичные изображения: JPEG, PNG. В настоящее время наибольшее применение получила связка из

MPEG-4 AVC/H.264 и AAC, так как большинство проигрывателей имеет аппаратные возможности декодирования этих потоков.

Контейнер MP4 активно использует компания Apple, применяя при этом собственные, не предусмотренные стандартом, расширения файла: .m4a (аудио-файл с потоком в формате AAC или ALAC), m4v (файл с аудио- и видеопотоками), m4b (файл AAC, поддерживающий закладки), m4p (защищенный файл AAC), m4r (файл рингтона).

TS (MPEG-TS) TS — формат медиаконтейнера, который инкапсулирует пакеты

элементарных потоков транспортного потока MPEG-TS и, возможно, других данных. Транспортный поток MPEG-TS (TS, TP, M2TS) является протоколом для передачи аудио и видео данных, описанным в стандарте MPEG2, Часть 1 [1]. Цель разработки этого формата — мультиплексирование аудио и видео данных и синхронизация их

Page 72: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

72

вывода. Поток MPEG-TS широко используется в цифровом телевиде-нии, предоставляя возможности для усовершенствования (в том числе, исправления ошибок) других телевизионных транспортных средств, таких как DVB и ATSC [Wiki].

Понятие кодека Кодек (англ. codec, от coder/decoder — шифратор/дешифратор —

кодировщик/декодировщик или compressor/decompressor) — устройство или программа, способная выполнять преобразование данных или сигнала.

Кодеки могут как кодировать поток/сигнал (часто для передачи, хранения или шифрования), так и раскодировать (для просмотра или внесения изменений) в формате, более подходящем для этих операций. Кодеки часто используются при цифровой обработке видео и звука.

Большинство кодеков для звуковых и визуальных данных исполь-зуют сжатие с потерями, чтобы получать приемлемый размер готового (сжатого) файла. Существуют также кодеки, сжимающие без потерь (англ. lossless codecs). Но для большинства применений выгоднее кодеки с потерями информации, так как малозаметное ухудшение качества оправдывается значительным уменьшением объема данных. Почти единственное исключение — ситуация, когда данные будут подвергаться дальнейшей обработке: в этом случае накаплливающиеся потери при многократном кодировании/декодировании могут оказать существенное влияние на качество.

Принципы сжатия видео. Технология компенсации движения

Для кодека видеопоток, по существу, представляет собой трех-мерный массив цветных пикселей. Два измерения соответствуют вертикальной и горизонтальной координатам кадра, а третье измерение — это время. Кадр — это массив всех пикселей, видимых камерой в данный момент времени, или просто изображение.

Одна из наиболее мощных технологий, позволяющих повысить степень сжатия видео, является технология компенсации движения. В любой современной системе сжатия видео последующие кадры в

Page 73: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

73

потоке используют похожесть областей в предыдущих кадрах для увеличения степени сжатия. Технология компенсации движения позволяет находить похожие участки, даже если они сдвинуты относительно предыдущего кадра.

Сейчас практически все алгоритмы сжатия видео (например, стандарты, принятые ITU-T или ISO) используют дискретное косинусное преобразование (DCT) или его модификации для устранения пространственной избыточности. Использование большинства методов сжатия (таких, как дискретное косинусное преобразование) влечет также использование процесса квантования. Квантование может быть как скалярным, так и векторным, тем не менее, большинство схем сжатия на практике используют скалярное квантование вследствие его простоты.

Современное цифровое телевещание стало доступным именно благодаря видео-компрессии. Телевизионные станции могут транслировать не только видео высокой четкости (HDTV), но и несколько телеканалов в одном физическом телеканале (частотном диапазоне).

Хотя большая часть цифрового видеоконтента сегодня транслиру-ется с использованием стандарта сжатия видео MPEG-2, тем не менее в телевещании уже используются новые и более эффективные стандарты сжатия видео, например MPEG-4 H.264 и VC-1.

Для кодирования и хранения информации об очередном кадре могут использоваться разные способы, отличающиеся друг от друга наличием или отсутствием зависимостей этого кадра от предыдущих и последующих.

Обычно кадр разбивается на квадратные макроблоки, и тип ссыл-ки для каждого из макроблоков определяется индивидуально, однако с ограничением, заданным типом всего кадра:

• I-кадры (также называются ключевыми (keyframes) или «опор-ными») могут содержать только независимо сжатые макробло-ки;

Page 74: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

74

• P-кадры («разностные» кадры) могут содержать как независимо сжатые макроблоки, так и макроблоки со ссылкой на другой кадр;

• B-кадры («двунаправленные», «обратные» кадры) могут содер-жать следующие макроблоки: независимые (intra), со ссылкой на один кадр (predicted) или со ссылкой на 2 кадра (bi-predicted).

В новом стандарте MPEG-4 AVC/H.264 также вводится понятие SI- и SP-кадров.

Контрольные вопросы 1. В чем проявляются сходство и различие между компьютерным

видео и анимацией?

2. В чем заключается сущность понятия развертки видеосигнала?

3. Что такое медиаконтейнер? Какую роль он играет в представле-нии видеоданных?

4. Какие медиаконтейнеры получили наиболее широкое распро-странение?

5. Что такое мультимедийный кодек?

6. Каковы принципы сжатия видео?

7. В чем заключается суть технологии компенсации движения?

Page 75: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

75

Тема 8. Стандарт описания мультимедийных данных MPEG-7

Назначение стандарта MPEG-7 MPEG-7 — стандарт ISO/IEC, разработанный Moving Picture

Experts Group (MPEG) — автором всех известных MPEG-стандартов (MPEG-1, MPEG-2, MPEG-4). MPEG-7 выступает в роли стандарта, объединяющего стандарты кодирования MPEG (1, 2 и 4) и описываю-щего контент, полученный с их помощью. Этим объясняется номер 7 в названии стандарта — это сумма номеров стандартов 1, 2 и 4.

MPEG-7 стандартизирует описание различных типов мультиме-диа-информации. Описания ассоциированы с мультимедиа-контентом, тем самым позволяя производить удобный ассоциативный поиск. Формально MPEG-7 называется Интерфейсом Описания Мультиме-диа-Контента (Multimedia Content Description Interface).

Кроме стандартизации описаний предопределенных типов контен-та, MPEG-7 стандартизует механизм создания подобных описаний. Изначально предполагается, что мультимедиа-контент может содержать следующие типы информации: изображения (растровые статические изображения, векторную графику), 3D-модели, аудио, речь, видео, а также информацию о комбинации элементов этих типов в едином мультимедиа-потоке или презентации (в виде своеобразных сценариев).

Главной областью применения и позиционирования MPEG-7 является сеть Интернет как основное хранилище разрозненной информации с весьма затрудненным поиском и навигацией в ней.

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

Page 76: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

76

Особенно проблематичным представляется поиск в мультимедий-ном контенте различных типов. Универсальные поисковые машины достаточно успешно справляются с поиском в текстовых массивах, но осуществлять поиск в графическом, аудио- и видео-контенте с их помощью весьма затруднительно — в общем случае поисковики ограничиваются поиском в текстовых описаниях к мультимедийным файлам.

На сайте MPEG представлен такой пример поисковых запросов: 1. Музыка. Пользователь играет несколько нот на мультимедий-

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

2. Графика. Пользователь рисует несколько линий на экране и получает набор картинок, содержащих похожие линии.

3. Изображение. Пользователь определяет набор объектов, вклю-чающих световые схемы или текстуры, и получает некоторые примеры или шаблоны, которые он может использовать для построения своего изображения.

4. Анимация. На определенном множестве объектов пользователь задает их движения и отношения между ними и получает набор анимационных роликов, в которых присутствуют заданные временные и пространственные отношения.

5. Сценарии. На некотором контенте пользователь задает некото-рые действия и получает список сценариев, в которых имеются схожие действия.

6. Голосовая информация. Имея звуковые отрывки с голосом определенного исполнителя (певца), пользователь получает список записей, видеоклипов, в которых поет данный певец, или видеоклипов, в которых он присутствует.

MPEG-7 не стандартизует сами методы анализа мультимедиа-контента (например, распознавания речи), а лишь специфицирует принципы формирования описания такого контента. Создание самих средств распознавания отводится фирмам, которые будут создавать продукты, базирующиеся на технологии MPEG-7.

Page 77: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

77

Структурные составляющие MPEG-7 MPEG-7 состоит из следующих частей: • MPEG-7 Systems — бинарный формат кодирования описаний

(дескрипторов) в MPEG-7; • MPEG-7 Description Definition Language (DDL) — язык описа-

ния дескрипторов, дескрипторных средств, а также новых де-скрипторных схем;

• MPEG-7 Visual — дескрипторная схема, отвечающая исключи-тельно за визуальные дескрипторы;

• MPEG-7 Audio — дескрипторная схема, отвечающая исключи-тельно за аудио-дескрипторы;

• MPEG-7 Multimedia Description Schemes (MDS) — схема описа-ния мультимедиа, работающая с общими свойствами и мульти-медиа-дескрипторами;

• MPEG-7 Reference Software — программная реализация суще-ственных частей MPEG-7;

• MPEG-7 Conformance Testing — правила и процедуры тестиро-вания соответствия стандарту MPEG-7;

• MPEG-7 Extraction — технические описания средств работы с дескрипторами.

Язык описания дескрипторов (DDL) базируется на языке XML и, в частности, XML Schema, созданного для описания структурных элементов. Однако, т.к. XML Schema изначально не предусмотрен для описания аудио-визуальной информации, MPEG-7 немного его расширяет.

Схема описания мультимедиа (MDS) включает в себя набор де-скрипторных средств, работающих с мультимедиа-элементами в целом, которые могут быть разделены на пять составляющих:

• описание контента: представление воспринимаемой информа-ции;

• управление контентом: информация о свойствах, создании и использовании аудио-визуального контента;

Page 78: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

78

• организация контента: представление анализа и классификации различных аудио-визуальных составляющих контента;

• навигация и доступ: обобщенная спецификация составляющих аудиовизуального контента;

• взаимодействие с пользователем: описание пользовательских настроек и истории использования мультимедиа-материала.

Контрольные вопросы 1. Каково назначение стандарта MPEG-7?

2. Почему стандарт MPEG-7 получил номер 7 в своем обозначе-нии?

3. Каковы структурные составляющие стандарта MPEG-7?

Page 79: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

79

Список рекомендуемой литературы

1. Алексеев Е. Р. Free Pascal и Lazarus: Учебник по программиро-ванию / Е. Р. Алексеев, О. В. Чеснокова, Т. В. Кучер. — М. : ALT Linux ; Издательский дом ДМК-пресс, 2010. — 440 с. : ил. (Библиотека ALT Linux).

2. Андрианов С. Формат Bmp-файла // Мир ПК, #10/2001. — С. 99.

3. Архангельский А. Я. Приемы программирования в Delphi на основе VCL. — М.: ООО «Бином-Пресс», 2006. — 944 с.

4. Боровский А. Н. Программирование в Delphi 2005. — СПб.: БХВ-Петербург, 2005. — 448 с.

5. Ватолин Д., Ратушняк А., Смирнов М., Юкин В. Методы сжатия данных. Устройство архиваторов, сжатие изображений и ви-део. — М.: Диалог-МИФИ, 2003. — 384 с.

6. Есенин С. А. DirectX и Delphi. Разработка графических и муль-тимедийных приложений. — СПб.: БХВ-Петербург, 2006. — 512 с.

7. Залогова Л. А. Компьютерная графика. Практикум. 2-е изд. — М.: Лаборатория Базовых Знаний, 2005. — 320 с.

8. Кинтцель Т. Руководство программиста по работе со звуком. — М.: ДМК, 2000. — 432 с.

9. Краснов М. В. DirectX. Графика в проектах Delphi. — СПб.: БХВ-Петербург, 2003. — 416 с.

10. Кречман Д., Пушков А. Мультимедиа своими руками. — СПб.: BHV, 1999. — 528 с.

11. Культин Н. Программирование в Turbo Pascal и Delphi, 3-е изд. — СПб.: BHV, 2007. — 400 с.

12. Миано Дж. Сжатие изображений в действии. Форматы и алго-ритмы. — М.: Триумф, 2003. — 336 с.

13. Мюррей Дж. Д., Ван Райпер У. Энциклопедия форматов графи-ческих файлов. — К.: BHV, 2001. — 672 с.

Page 80: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

80

14. Осипов Д. Графика в проектах Delphi. — СПб: Символ Плюс, 2008. — 648 с.

15. Разработка мультимедийных систем. Учебное пособие / Сост. А. Л. Максимов.— Одесса: ОГАХ, 2008.

16. Розробка мультимедіа-систем. Завдання до контрольних робіт і методичні вказівки до їх виконання. Для студентів IV курсу спеціальності 091501 «Комп’ютерні системи і мережі» заочної форми навчання / Уклад. О. Л. Нєнов. — Одеса: ОДАХ, 2011. — 40 с.

17. Рош У. Л. Библия мультимедиа. — К.: ДиаСофт, 1998. — 800 с.

18. Тюкачев Н., Свиридов Ю. Delphi 5. Создание мультимедийных приложений. Учебный курс. — СПб: Питер, 2001. — 400 с.

19. Фролов А. В., Фролов Г. В. Мультимедиа для Windows. — М.: Диалог-МИФИ, 1995. — 284 с.

Page 81: Лекции РМС v1.0 - nenov.narod.runenov.narod.ru/RMS/Lekcii.RMS.rus.v1.0.pdf · мультимедиа, основные форматы хранения различных

81

Ненов Алексей Леонидович

РАЗРАБОТКА МУЛЬТИМЕДИА-СИСТЕМ

Подписано в печать 2012 г. Формат 60×84 1/16. Усл. печ. лист. 5,1. Тираж экз.

Напечатано издательский центром ОГАХ. 65082, Одесса, ул. Дворянская, 1/3