Московский государственный университет печати

Гасов В.М.
Цыганенко А.М.


         

Методы и средства подготовки электронных изданий

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


Гасов В.М.
Методы и средства подготовки электронных изданий
Начало
Печатный оригинал
Об электронном издании
Оглавление

Введение

1.

Глава 1. Основные компоненты электронных изданий

1.1.

Текстовая информация

1.2.

Полутоновые и цветные иллюстрации

1.3.

Анимационная графика

1.4.

Видеоинформация

1.5.

Аудиоинформация

2.

Глава 2. Технологии гипертекстовых изданий

2.1.

Функции гипертекстовых электронных изданий

2.2.

Принципы построения гипертекстовых изданий

2.3.

Математическая модель гипертекста

2.4.

Гипертекстовые Web-документы

2.5.

Подготовка публикаций в среде Adobe Acrobat

2.6.

Технология Help-файлов

2.7.

Средства доставки электронных изданий

2.8.

Классификация и общие принципы оформления электронных изданий

3.

Глава 3. Цифровое представление текстовой информации

3.1.

Стандарты кодирования символов ASCII, ANSI, КОИ-8 и UNICODE

3.2.

Формат PDF

3.3.

Формат разметки текста RTF

4.

Глава 4. Графические форматы

4.1.

Растровый формат GIF

4.2.

Формат графических файлов PNG

4.3.

Графический формат JPEG

4.4.

Формат TIFF

4.5.

Программные средства преобразования форматов

5.

Глава 5. Представление анимационной, видео- и звуковой информации

5.1.

Семейство форматов MPEG

5.1.1.

Компрессия видеоданных в MPEG

5.1.2.

Формат MPEG-1

5.1.3.

Формат MPEG-2

5.1.4.

Формат MPEG-4

5.1.5.

Формат MPEG-7

5.2.

Звуковые форматы

5.3.

Анимационные файловые форматы FLI, FLC, CEL

6.

Глава 6. Программы просмотра Web-публикаций

6.1.

Доступ к Web-странице в Internet

6.2.

Программа просмотра MS Internet Explorer

6.3.

Программа просмотра Netscape Navigator

7.

Глава 7. Языки разметки гипертекста и программирования скриптов

7.1.

Язык разметки гипертекста НТМL

7.2.

Расширенный язык разметки XML

7.3.

Язык Java

7.4.

Язык JavaScript

7.5.

Язык программирования сценариев PHP

7.6.

Язык Perl

7.7.

Язык моделирования виртуальной реальности VRML

8.

Глава 8. Программирование Web-страниц в языковой среде HTML

8.1.

Структура и форматирование HTML-документа

8.2.

Таблицы

8.3.

Изображения и навигационные карты

8.4.

Формы

8.5.

Фреймы

8.6.

Фреймы и таблицы

8.7.

Объекты

8.8.

Гиперссылки

8.9.

Таблицы стилей

9.

Глава 9. Автоматизация создания Web-публикаций. Программный пакет Macromedia Dreamweaver

9.1.

Назначение и функциональные возможности пакета

9.2.

Структурная схема программного пакета

9.3.

Интерфейс пользователя и принципы его организации

9.4.

Некоторые типовые процедуры пакета Dreamweaver

9.4.1.

Работа с текстом

9.4.2.

Вставка изображений

9.4.3.

Создание карты изображения

9.4.4.

Работа с таблицами

9.4.5.

Создание форм

9.4.6.

Работа с фреймами

9.4.7.

Работа со слоями

9.5.

Использование интерактивных возможностей и анимации

9.6.

Создание Web-сайта

10.

Глава 10. Программный пакет MS FrontPage

10.1.

Функциональные возможности программного пакета

10.2.

Структурная схема пакета

10.3.

Пользовательский интерфейс FrontPage

10.4.

Типовые процедуры работы с пакетом

10.5.

Пример создания Web-страницы

11.

Глава 11. Создание мультимедийных изданий. Программный пакет Macromedia Director

11.1.

Функциональные возможности программной среды

11.2.

Интерфейс пользователя

11.3.

Работа с мультимедийными элементами

11.3.1.

Элементы труппы

11.3.2.

Спрайты

11.3.3.

Изображения

11.3.4.

Текст

11.3.5.

Анимация

11.3.6.

Аудиоинформация

11.3.7.

Создание проекторов

11.3.8.

Цифровая видеоинформация

11.4.

Пример мультимедийного гиперграфического издания

Заключение

Библиографический список

Указатели
695   предметный указатель
434   указатель иллюстраций
45   указатель компаний
Рис. 05.01. Структура кадра видеоданных Рис. 05.02. Порядок формирования линейного массива Рис. 05.03. Методы прямого и двунаправленного предсказания Рис. 05.03. Методы прямого и двунаправленного предсказания Рис. 05.04. Порядок следования кадров при воспроизведении и в потоке Рис. 05.05. Дискретно-косинусное преобразование блоков изображения Рис. 05.06. Структура процесса преобразования видео- и аудиоинформации Рис. 05.06. Структура процесса преобразования видео- и аудиоинформации Рис. 05.07. Структура процесса преобразования видео- и аудиоинформации в MPEG-2 Рис. 05.08. Структура анимационного формата FLI

При работе с цифровым видеосигналом возникает необходимость обработки, передачи и хранения очень больших объемов информации. На современных носителях, таких, как компакт-диск (CD-ROMCD-ROM, 650 Мбайт) или жесткий диск (порядка тысячи мегабайт), сохранить полноценный по времени видеоролик, записанный в поэлементном формате, не удается. С другой стороны, Видеоинформациявидеоинформация должна передаваться со cкоростью ее воспроизведения на экране компьютера. Так, полноцветное (24 бит/пиксел) изображение размером 720 × 576 пикселов из расчета 25 кадр/с требует скорости передачи видеоданных 240 Мбит/с. Однако пропускная способность каналов ЛВС FDDI - порядка 100-200 Мбит/с, а Ethernet - всего 10 Мбит/с. Поэтому использование видеоданных в составе электронных изданий оказывается невозможным.

Развитие технологий перевода видеоинформации в цифровой формат и их дальнейшее применение в цифровом ТВ поставили проблему сжатия видеоданных в ряд наиболее важных. Ее положительное решение оказалось возможным лишь на базе разработки эффективных методов и алгоритмов сжатия видеоданных.

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

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

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

Реальным решением проблемы стало сжатие всего видеоряда, включающего последовательность видеокадров.

Стандартным методом цифрового кодирования на компьютере является PCMPCM (Pulse Code Modulation). Наиболее популярным форматом, используемым для хранения несжатых аудиоданных, является Microsoft PCMMicrosoft PCM (WAV). Для видеороликов стандартным для компьютера считается Microsoft Audio/Video InterleavedMicrosoft Audio/Video Interleaved (AVI). Сжатие аудио- или видеоданных как процесс подразумевает конвертацию соответственно несжатого WAV- или AVI- файла в другой формат с использованием алгоритма сжатия (поэтому программы для компрессии/декомпрессии данных называют конверторами). При этом может быть использован любой формат (даже WAV и AVI), если он поддерживает этот алгоритм.

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

Разработанный этой группой метод сжатия и соответствующие форматы семейства MPEG унаследовали многое в своей структуре от JPEG. Однако противоположность графическим форматам MPEG использовал кодирование отличий последующих кадров от некоторых опорных изображений кадров. В 1990 г. был создан формат MPEG-1, который ориентировался на сжатие видео- и Аудиоинформацияаудиоинформации.

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

В дальнейшем были созданы форматы MPEG-3, MPEG-4, MPEG-7, MPEG-J.

Сегодня MPEG - единый формат представления данных спецификации United States Grand Alliance HDTV, группы European Digital Video Broadcasting и Digital Versital Disc (DVD).

В литературе MPEG может подразделяться на фазы (MPEG-1, MPEG -2, MPEG-4 и т.д.), а в области аудиоинформации - еще и на уровни (layers). Фазы обозначаются арабскими цифрами, уровни - римскими. Некоторые фазы MPEG так и не были закончены. Например, разработка MPEG-3, предназначенного для телевидения высокой четкости (HDTV) с размерами кадров 1920 × 1080 при частоте смены 30 кадр/с и силой сжатия 20-40 Мбит/с, не была завершена, поскольку оказалось, что эта область поддерживается форматом MPEG -2. Нет информации о разработке MPEG -6, который предназначался для беспроводной передачи данных; MPEG -8, цель которого - четырехмерное описание объектов.

Экспертная группа по мультимедиа и гипермедиа MHEG (Multimedia Hypermedia Expert Group) определила стандарт для обмена мультимедийными объектами (видео, звук, текст и другие произвольные данные) между приложениями и передачи их разными способами (локальная сеть, сети телекоммуникаций и вещания) с использованием MHEG object classes. Этот стандарт позволил программным объектам включать в себя любую систему кодирования (например, MPEG), которая определена в базовом приложении. MHEG был принят советом по цифровому видео и звуку (DAVIC - Digital Audio-Visual Council). MHEG-объекты создаются мультимедийными приложениями.

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

Наряду с указанными стандартными форматами имеется конечное множество форматов кодирования видео- и аудиоинформации, предложенных фирмами, производящими различные программные приложения. К ним можно отнести: формат RealAudio, разработанный фирмой RealNetworks, для хранения сжатых голосовых аудиоданных (речи); формат аудиоданных SoundVQ, разработанный компанией Yamaha; формат Windows Media Technology 4.0, представленный фирмой MicrosoftMicrosoft, поддерживает потоковую передачу данных в InternetInternet и имеет продвинутую систему сжатия аудио- и видеоданных; формат QuickTimeQuickTime фирмы AppleApple был разработан для использования в мультимедийных приложениях на компьютерах Macintosh и т.п.

В данной главе представлен материал по наиболее популярным форматам и методам сжатия видео- и аудиоинформации.

В последнее время в составе электронных изданий все более широко используется цифровая Видеоинформация цифроваявидеоинформация. Это стало возможным благодаря разработке эффективных алгоритмов сжатия видеоданных, которые позволяют разместить в относительно небольшом объеме современных цифровых запоминающих устройств длительные видеоролики со звуковым сопровождением. Основные алгоритмы сжатия построены на базе методов MPEG, предложенных экспертной группой по кинематографии Moving Picture Expert Group (MPEG).

В январе 1992 г. этой группой была представлена первая версия стандарта для сжатия видео- и звуковых файлов, получившая название MPEG phase 1, или просто MPEG 1 (ISO 11172). Данный стандарт определял методы компрессии, позволяющие довести скорости передачи видео- и аудиоданных до 1,5 Мбит/с, что соответствует скоростям обмена обычных приводов CD-ROM и стримеров. В качестве отправной точки отсчета принято изображение размером 352 × 288 пикселов (для PAL-сигнала) с частотой 30 кадров (Фреймфреймов) в секунду. С помощью MPEG-сжатия объем видеоинформации можно заметно снизить и часовая видеопрограмма уместится в 2 Гбайт.

Затем по мере расширения задач передачи видеоинформации, повышения пропускной способности каналов и роста требований к визуальному качеству получаемых изображений появилось несколько версий стандартных форматов - MPEG-2, MPEG-3, MPEG-4, MPEG-7, MPEG-J, оптимизированных под определенные условия.

MPEG-1. Стандарт MPEG-1 был принят в качестве стандарта ISO в конце 1992 г. и официально опубликован в 1993 г. Он предназначен для сжатия видеофайлов средних размеров и аудиофайлов с частотой дискретизации 32, 44,1 и 48 кГц и использовался в основном для записи на диски Video-CD. Этот стандарт обеспечивал качество изображения на уровне видеокассеты VHS и позволял записать на один компакт-диск более часа видеоинформации и воспроизводить его на устройстве с двукратной скоростью.

В области аудио существуют три уровня MPEG -1 (первый - от 32 до 448 Кбит/с, второй - от 32 до 384 Кбит/с, третий - от 32 до 320 Кбит/с).

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

Используется в технологиях цифрового видео и телевидения, в цифровом спутниковом вещании, телевидении высокой четкости и дисках DVD. MPEG-2, как определено в документе ISO/IEC 13818-2, объединяет семейство взаимосогласованных и совместимых сверху вниз цифровых стандартов сжатия телевизионных сигналов. Точнее, он допускает четыре уровня (Levels) разрешения кадра и пять базовых профилей (Profiles) кодирования сигналов яркости и цветности. Формат поддерживает пять аудиодорожек (плюс одна низкочастотная) с силой сжатия до 1 Мбит/с.

MPEG-3. Был разработан для использования в системах телевидения высокой четкости (HDTV- high-defenition television) с параметрами: максимальное разрешение 1920 × 1080 × 30, скорость потока данных 20-40 Мбит/с. Позже этот формат стал частью стандарта MPEG-2 и отдельно не упоминается. Заметим, что известен формат MP3, который иногда путают с MPEG-3. Он предназначен только для сжатия Аудиоинформацияаудиоинформации (полное название - MPEG Audio Layer III).

MPEG-4. Этот формат задает принципы работы с цифровым представлением медиа-данных для трех областей: интерактивного мультимедиа, графических приложений и цифрового телевидения. MPEG-4 в основном предназначен для цифровой передачи видеоданных по телефонным линиям (Internet, видеоконференции) в условиях жестко ограниченной пропускной способности (до 28,8 Kбит/c). Он использует схему кодирования с разделением изображения на такие независимые объекты, как фон, текст, 2D/3D-графика, «разговаривающие» человеческие лица, двигающиеся тела и т.д. Ввиду определенной сложности этот стандарт пока не получил широкого распространения.

MPEG-7. Это стандарт для описания различных типов мультимедийной информации. Он призван обеспечить эффективный и быстрый поиск мультимедийных данных по заданному произвольному фрагменту или ограниченному набору элементов.

MPEG-J. Стандартное расширение формата MPEG-4, в котором используются Java-элементы.

MPEG состоит из трех частей: Audio, Video, System (объединение и синхронизация двух других).

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

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

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

Алгоритмы сжатия видеоданных ориентированы на следующие Носители информацииносители информации:

  1. Носители информации. CD-ROMCD-ROM. Диски характеризуются высокой плотностью записи информации, что делает их перспективными для хранения цифровой видеоинформации. Обладает низким отношением стоимости диска к его объему. В качестве недостатка следует отметить низкую скорость считывания информации (для односкоростных устройств - 1,5 Мбит/с) и большое время поиска информации (порядка 0,3 с).

  2. Носители информации. Стример DATСтример DAT (Digital Audio Таре). В этом носителе запись информации и считывание осуществляются с помощью последовательного доступа. Характеризуется достаточно большими размерами и относительно низкой скоростью считывания видеоинформации.

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

  4. Носители информации. Перезаписываемые оптические дискиПерезаписываемые оптические диски. Это одно из наиболее перспективных устройств, способное сочетать в себе достоинства CD-ROM (низкая себестоимость хранения информации, большой объем, произвольный доступ) и накопителей на жестких магнитных дисках (возможность перезаписи).

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

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

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

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

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

Такой подход позволяет использовать следующий алгоритм сжатия. Кадр разбивается на блоки размером 16 × 16 пикселов (размеру 720 × 576 пикселов соответствует 45 × 36 блоков), каждый из которых ДКП переводится в частотную область. Затем соответствующие частотные коэффициенты подвергаются квантованию (округлению значений с задаваемым интервалом). Если само по себе ДКП не приводит к потере данных, то квантование коэффициентов, очевидно, вызывает огрубление изображения. Операция квантования выполняется с переменным интервалом - наиболее точно передается низкочастотная информация, в то время как многие высокочастотные коэффициенты принимают нулевые значения. Это обеспечивает значительное сжатие потока данных, но приводит к снижению эффективного разрешения и возможному появлению незначительных ложных деталей (в частности, на границе блоков). Очевидно, что чем более грубое квантование используется, тем больше степень сжатия, но и тем ниже качество результирующего сигнала.

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

Указанные выше концепции использованы и в MPEG-сжатии.

В данном стандарте изображение состоит из макроблоков (16 × 16 пикселов). В свою очередь, каждый макроблок состоит из шести блоков (размером 8 × 8 пикселов), четыре из которых несут информацию о яркости изображения (Y-блоки), а два (Сr- и Cb-блоки) определяют цветовые компоненты (рис. 5.1Рис. 05.01. Структура кадра видеоданных).

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

Блоки являются базовыми структурными единицами, над которыми осуществляются основные операции кодирования.

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

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

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

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

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

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

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

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

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

  3. Bi-directional Interpolated (B) - двунаправленные кадры, содержащие только самую существенную часть информации об отличиях от предыдущего и последующего изображений (только I или P) в виде отсылки к предыдущим или последующим изображениям с учетом перемещений отдельных фрагментов изображения. B-кадры обеспечивают наибольший коэффициент сжатия, но при этом для их привязки к видеопоследовательности необходимо использовать не только предыдущее, но и последующее изображение. Сами B-кадры никогда не используются для сравнения.

Следует заметить, что прежде чем декодировать B-кадр, требуется декодировать два I- или P-кадра.

Кадры I-типа выступают в виде первых кадров последовательности. С них начинается новый видеоряд. Существуют разные стандарты на частоту, с которой должны следовать I-кадры: приблизительно 1-2 в секунду. Обычно между двумя I-кадрами может находиться не более 12 кадров других типов Соответствующие стандарты есть и для P-кадров (каждый третий кадр должен быть P-кадром).

Изображения кадров объединяются в группы (GOP - Group of Pictures), представляющие собой минимальный повторяемый набор последовательных изображений.

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

I B B P B B P B B P B B I B B P B B P B

Кадры P-типа, или предсказанные кадры, обычно следуют через два B-кадра. Для увеличения степени сжатия они не содержат информации, которая может быть получена из предыдущего P- или I- кадра с использованием алгоритма компенсации движения (рис. 5.3Рис. 05.03. Методы прямого и двунаправленного предсказания, а).

Кадры B-типа содержат ссылки как на предыдущие, так и на последующие кадры I- или P-типа и обрабатываются методом двунаправленного предсказания (рис. 5.3Рис. 05.03. Методы прямого и двунаправленного предсказания, б). Они имеют наибольший уровень сжатия и не вносят дополнительных ошибок, поскольку на них не ссылаются никакие кадры.

Поскольку B-кадры используют ссылки как на последующие, так и на предшествующие кадры в последовательности, для оптимизации процесса воспроизведения кадры в потоке перераспределяются следующим образом (рис. 5.4Рис. 05.04. Порядок следования кадров при воспроизведении и в потоке): компенсация движения является методом увеличения степени сжатия Р- и В- кадров путем использования информации из предыдущих кадров.

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

  • кодирование без компенсации движения;

  • компенсация с прямым предсказанием;

  • компенсация с обратным предсказанием;

  • компенсация с двунаправленным предсказанием.

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

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

Метод кодирования блоков (либо разницы, получаемой при методе предсказания движения) содержит в себе:

  • DCT - дискретно-косинусное преобразование (Discrete Cosine Transforms;

  • преобразование данных из непрерывной формы в дискретную (Quantization);

  • кодирование данных полученного блока в кодовую последовательность.

Дискретно-косинусное преобразование (ДКП) реализуется поблочно (рис. 5.5Рис. 05.05. Дискретно-косинусное преобразование блоков изображения), для чего ТВ изображение разбивается на блоки размером 8 × 8 пикселов. Таким образом, получается матрица, которая содержит 8 × 8 = 64 пиксела (отсчета) видеосигнала. Она называется сигнальной матрицей. При этом в ТВ кадре создается: 576/8 = 72 зоны по вертикали и 704/8 = 88 зон по горизонтали, что в общей сложности дает: 72 × 88 = 6336 блоков, подлежащих дискретно-косинусному преобразованию в реальном масштабе времени. В результате ДКП исходная сигнальная матрица преобразуется в матрицу частотных коэффициентов ДКП такого же размера (8 × 8 = 64).

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

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

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

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

Следует отметить, что при кодировании динамический интервал коэффициентов ДКП возрастает в 8 раз.

После выравнивания динамического диапазона коэффициенты ДКП подвергаются взвешенному квантованию для сокращения избыточности в высокочастотной области. Точность кодирования зависит от шага квантования. Он выбирается различным для разных коэффициентов матрицы ДКП. Его масштаб в процессе кодирования может изменяться в пределах от 1 до 31.

После этого осуществляется кодирование данных полученного блока в кодовую последовательность.

Полноцветное цифровое изображение из сжимаемой последовательности переводится в цветовое пространство Y,U,V (Y, Cb, Cr).Y - интенсивность цвета, U и V - цветность. Как известно, человеческий глаз менее восприимчив к цветности, чем к интенсивности, поэтому Cb и Cr кодируются с меньшим разрешением, чем Y.

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

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

Для сокращения статистической избыточности в MPEG применяются различные методы и алгоритмы. Чаще всего используются два метода: кодирование ТВ отсчетов с предсказанием и дискретно-косинусное преобразование.

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

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

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

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

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

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

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

Компрессия звука в MPEGКомпрессия звука в MPEG. Полноценные видеофрагменты требуют использования звуковой информации. Считается, что звук CD-качества требует оцифровки с частотой 44,1 кГц при глубине 16 бит на канал, что соответствует потоку в 706 Kбит/с на канал (1,4 Мбит/с - для стерео). При повышении качества сигнала используется частота оцифровки 48 кГц (полоса частот 4-24000 Гц), что увеличивает поток до 768 Kбит/с на канал.

Форматы кодирования звука делятся на три уровня: Layer I, Layer II, Layer III (прообразом для Layer I и Layer II стал стандарт MUSICAM, этим именем сейчас иногда называют Layer II). Layer III достигает самого большого сжатия, но требует больше ресурсов на кодирование.

Уровень Layer I использует наиболее простой алгоритм с минимальной компрессией, что предполагает скорость передачи звуковой информации 192 Kбит/с на канал.

Алгоритм Layer II более сложный, однако и степень компрессии больше (требуемая скорость 128 Kбит/с на канал). Мощный алгоритм сжатия цифрового звука CD-качества (в 11 раз без различаемых человеческим ухом потерь) Layer III обеспечивает максимально возможное качество звука при жестких ограничениях потока (скорость - не более 64 Kбит/с на канал). Этот формат в основном используется в Internet. Следует отметить, что в среде пользователей он получил сокращенное наименование MP3 (MPEG Layer III).

Принципы кодирования основаны на том факте, что в несжатом звуке (CD-audio) передается много избыточной для нашей слуховой системы информации. Применяемые методы сжатия используют эффект маскировки некоторых звуков для слухового анализатора человека (например, если поступает сильный звук на частоте 1000 Гц, то более слабый звук на частоте 1100 Гц уже не будет слышен человеку, также будет ослаблена чувствительность человеческого уха в течение 100 мс после и 5 мс до возникновения сильного звука).

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

В Layer III части разбиваемого спектра самые маленькие, что обеспечивает самое высокое сжатие.

MPEG Audio поддерживает информационную совместимость уровней снизу вверх, т.е. декодировщик (decoder) для Layer II будет также распознавать Layer I.

Синхронизация и объединение звука и видео осуществляются с помощью системы (System Stream) (рис. 5.6Рис. 05.06. Структура процесса преобразования видео- и аудиоинформации), которая включает в себя:

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

    компрессионный слой, содержащий видео- и аудиопотоки.

    Видеопоток (рис. 5.6Рис. 05.06. Структура процесса преобразования видео- и аудиоинформации) содержит заголовок, затем несколько групп кадров. Этим достигается произвольный доступ к кадрам в группе независимо от их порядка.

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

Для синхронизации аудио- и видеопотоков в системном потоке используется специальный таймер (работающий с частотой 90 кГц). В качестве синхронизирующих сигналов используются SCR-метки (System Clock Reference), с помощью которых изменяется состояние счетчика декодера, и PDS-метки (Presentation Data Stamp), встраиваемые в видео- или звуковой кадр для синхронизации их воспроизведения. Разрядность PDS-метки составляет 33 бит, что обеспечивает возможность представления любого временного цикла длительностью до 24 ч.

По стандарту MPEG-1MPEG-1 потоки видео- и звуковых данных передаются со скоростью 150 Кбайт/с (с такой же скоростью, как и односкоростной CD-ROM проигрыватель) и управляются путем выборки ключевых видеокадров и заполнением только областей, изменяющихся между кадрами. MPEG-1 обеспечивает качество видеоизображения более низкое, чем передаваемое по телевизионному стандарту.

MPEG-1 был разработан и оптимизирован для работы с кадрами с разрешением 352 ppl (point per line - точек на линии) × 240 lpf (line per frame - линий в кадре) [ 30 fps (frame per second -кадров в секунду), что соответствует скорости передачи CD-звука высокого качества. Используется цветовая схема - YCbCr (где Y - яркостная плоскость, Cb и Cr - цветовые плоскости).

Параметры MPEG-1 (утверждены в 1992 г.):

Параметры Аудиоинформацияаудиоинформации: 48, 44,1, 32 кГц, mono, dual (два моноканала), стерео, интенсивное стерео (объединяются сигналы с частотой выше 2000 Гц), m/s stereo (один канал переносит сумму, другой - разницу). Сжатие и скорость передачи звука для одного канала для частоты 32 кГц представлены в табл. 5.1.

Таблица 5.1

Способ кодирования    Скорость передачи, Kбит/с    Kоэффициент сжатия
Layer I 192 1 : 4
Layer II 128...96 1 : (6...8)
Layer III 64...56 1 : (10...12)

Параметры видеоинформации: с помощью MPEG-1 можно передавать изображения с разрешением вплоть до 4095 × 4095 × 60. В этих пределах кадр может быть произвольного размера. Общее число макроблоков в изображении кадра: 396 для скорости < 25 fps и 330 для скорости < 30 fps.

Существует более высокое разрешение для MPEG-1 - так называемый MPEG-1 Plus, разрешение которого приближается к формату MPEG-2.

Стандарт MPEG-2MPEG-2 был разработан как развитие формата MPEG-1 и является методом сжатия видеоинформации с широким диапазоном скоростей потоков и высоким качеством изображения. Рассматриваемое семейство стандартов обладает информационной совместимостью, т.е. любое декодирующее устройство MPEG-2 способно корректно воспроизводить и потоки MPEG-1.

Основным форматом изображения в данном стандарте является 720 × 480 пикселов. Изменения в алгоритме кодирования коснулись возможностей использования форматов кадра 16 × 9 и 4 × 3, а также поддержки чересстрочной развертки, т.е. деления кадра на два полукадра (поля) с нечетными и четными строками соответственно. Изменено соотношение между яркостным и цветовыми компонентами - 4:2:2 вместо 4:1:1. Все это отразилось на требуемой полосе пропускания (для фильмов формата VHS - 3 Мбит/с, а для HDTV - 60 Мбит/с). Поэтому основную сферу использования данного стандарта в настоящее время составляют устройства DVD, которые имеют соответствующие скорость и емкость, а также цифровое спутниковое телевидение.

Алгоритм сжатия оцифрованной видеоинформации MPEG-2 обеспечивает скорость передачи видеоданных от 3 до 80 Мбит/с. При разработке MPEG был создан алгоритм перевода видеоданных из формата CCIR-601. Как известно, CCIR-601 - это стандарт цифровой видеоинформации с размером передаваемого изображения 720 × 486 при 60 полукадрах в секунду. Этот формат учитывает, что строки телевизионного изображения передаются с чередованием (четные и нечетные), и два полукадра составляют кадр. Хроматические каналы (U и V в YUV) передаются размером 360 × 243 пикселов 60 раз в секунду и чередуются уже между собой. Подобное деление обозначают 4:2:2. Оно позволяет уменьшить избыточность в 2 раза только за счет перевода в другое цветовое пространство.

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

Особенности компенсации движения в MPEG-2. В стандарте MPEG-2 используется метод компенсации движения, основанный на макроблоках. Два смежных кадра, содержащих только активные строки сигнала яркости (576 активных строк), разбиваются на макроблоки. Размеры макроблока согласовываются со структурой дискретизации кадра ТВ изображения. В стандарте MPEG-2 блок - это квадратная матрица отсчетов размером 16 строк по вертикали и 16 столбцов (отсчетов) по горизонтали. Отметим, что при таком формате блока ТВ кадр разбивается на целое число зон. По вертикали (576 активных строк/16) - это 36 зон, по горизонтали (704 активных отсчета/16) - 44 зоны. Зона поиска должна быть достаточно большой, чтобы быстро движущийся макроблок изображения первого кадра не вышел из зоны поиска второго кадра. Размеры зоны поиска ограничиваются объемом вычислений, которые необходимо выполнить в реальном масштабе времени. Эти размеры также должны быть согласованы с принятой структурой дискретизации ТВ кадра. Обычно они в 4 раза больше размеров отдельного макроблока. Таким образом, в ТВ кадре создается 9 зон (576/64) поиска по вертикали и 11 (704/64) зон по горизонтали.

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

Уровни, профили и слои. Стандарт MPEG-2 допускает четыре уровня (Levels) разрешения кадра и пять базовых профилей (Profiles) кодирования сигналов яркости и цветности.

Уровни: низкий (LL - Low Level) с разрешением кадра 352 × 288 (соответствует MPEG-1), основной (ML - Main Level) 720 × 576, высокий 1440 (HL - High Level) - 1440 × 1152 и высокий 1920 - 1920 × 1152. Отметим, что если в соответствии с рекомендацией ITU-R BT.601 (International Telecommunications Union - Recommendation) основной уровень определяет разрешение стандартного телевизионного кадра, то высокие уровни ориентированы на телевидение высокой четкости.

Профили. В формат MPEG-2 введены профили. Различают пять базовых профилей:

  • простой (SP - Simple Profile);

  • основной (MP - Main Profile);

  • два масштабируемых - по отношению сигнал-шум (SNR - Scalable Profile) и по разрешению (Spatially Scalable Profile);

  • высокий (HP - High Profile).

Важное место также занимает не определенный стандартом, но активно используемый в практике так называемый основной профессиональный профиль MPEG 422. Его обозначают как 422Р.

Поясним суть и различия профилей.

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

Пространственно масштабируемый профиль (Spatially Scalable Profile) в определенной степени усложняет схему кодирования. В нем поток разделяется уже на три части по критерию разрешения. Первая часть - основной сигнал, обеспечивает передачу устойчивой к помехам информации об изображении стандартного разрешения (625 строк, из них активных 576). Вторая часть дополняет информацию до изображения высокой четкости (1250 строк, 1152 активных), а декодирование третьего сигнала позволяет повысить отношение сигнал-шум.

Профиль HP, высший, включает в себя все функции предыдущих, но использует YUV-представление и передает цветоразностные сигналы в 2 раза чаще (в каждой строке, в каждом элементе строки). Известно, что телевизионный сигнал представляет собой совокупность сигнала яркости Y и двух цветоразностных сигналов U и V. При кодировании используются 256 градаций их значений (от 0 до 255 для Y, и от -128 до 127 для U и V), что в двоичном исчислении соответствует 1 байт. Теоретически каждый элемент кадра имеет собственные значения YUV, т.е. при кодировании требует 3 байт. Такое представление, когда яркость и сигналы цветности имеют равное число независимых значений, обычно записывают как 4:4:4. Но зрительная система человека менее чувствительна к цветовым пространственным изменениям, чем к яркостным. И без видимой потери качества число цветовых отсчетов в каждой строке можно уменьшить вдвое. Именно такое представление, обозначаемое как 4:2:2, было принято в вещательном телевидении. При этом для передачи полного значения телевизионного сигнала в каждом отсчете кадра достаточно 2 байт (чередуя через отсчет независимые значения U и V). Более того, для целей потребительского видео признано допустимым уменьшение вдвое вертикального цветового разрешения, т.е. переход к представлению 4:2:0. Это уменьшает приведенное число байтов на отсчет до 1,5. Отметим, что именно такое представление было заложено в DV-формат цифровых камер, а также формат DVD-видео. Однако в профессиональных задачах цифрового редактирования и монтажа Видеоинформациявидеоинформации, когда возможны многократное и многослойное использование фрагментов отснятого материала и включение в него компьютерной анимационной графики, во избежание результирующего накапливания ошибок изначально требуется более высокое качество цифровой видеоинформации. Поэтому здесь считается обязательным представление 4:2:2. Именно этим отличается профиль 422P от основного.

Слои. В MPEG-2 предусмотрена возможность использования трех слоев: base, middle и high. С их помощью организуется приоритетная обработка видеоданных. При этом канал с более высоким приоритетом кодируется с большим количеством информации с целью коррекции ошибок. Так, в процессе пространственного масштабирования (Spatial scalability) основной слой кодируется с меньшим разрешением и затем используется как основа предсказания для более приоритетных. При дроблении данных (Data Partitioning) блок разбивается на два потока, из которых более приоритетный переносит низкочастотные (наиболее критичные к качеству), а менее приоритетный - высокочастотные компоненты изображения кадров.

В стандарте MPEG-2 предусмотрено использование вектора панорамирования и масштабирования (PanScanning), который предоставляет видеодекодеру информацию об особенностях преобразования видеоданных, например 16 : 9 в 4 : 3. Точность частотных коэффициентов может выбираться пользователем (8, 9, 10, 11 бит на одно значение; в MPEG-1 фиксирован размер в 8 бит). Введены новые режимы предсказания движения (16x8 MC, field MC, Dual Prime). Предусмотрена возможность загружать матрицу преобразований непрерывных данных в дискретные (quantization matrix) перед каждым кадром.

В области аудиоинформации введены новые частоты 16, 22,05, 24 кГц.

MPEG-2 поддерживает многоканальность.Имеется возможность использовать пять полноценных каналов (left, center, right, left surround, right surround) и один низкочастотный (subwoofer).

MPEG-2 AAC. MPEG-2 Advanced Audio Coding, выпущенный в 1995 г., был разработан для сжатия многоканальной (до 42 каналов) аудиоинформации высокого качества (от 8 до 96 кГц). Формат поддерживает силу сжатия от 8 до 160 Кбит/с. Он несовместим с предыдущими форматами MPEG. ААС используется в MPEG -2 и возможно будет применяться в последующих разработках MPEG.

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

Системный уровень MPEG-2 обеспечивает два уровня объединения данных. Первый уровень разбивает звуковую и Видеоинформациявидеоинформацию на пакеты (Packetized Elementary Stream).

Второй уровень делится на:

    MPEG-2 Program Stream (совместим с MPEG-1 System) - для локальной передачи в среде с небольшим уровнем ошибок;

    MPEG-2 Transport Stream (рис. 5.7Рис. 05.07. Структура процесса преобразования видео- и аудиоинформации в MPEG-2) ориентирован на внешнее вещание в среде с высоким уровнем ошибок. В этом случае осуществляется передача транспортных пакетов (длиной 188 либо 188+16 бит) двух типов (сжатые данные - PES и сигнальная таблица - Program Specific Information).

MPEG-2 информационно совместим с MPEG-1.

MPEG-4MPEG-4 является стандартным форматом для низкоскоростной передачи (64 Кбит/с) и хранения мультимедийных данных, включая аудио, видео, анимацию, неподвижные изображения, синтезированную музыку и речь. Основным свойством формата является отделение одного типа мультимедийных данных от другого и сжатие их отдельно разными способами. Например, отделение фона от переднего плана, речи от музыки и т.д. MPEG-4 имеет сложную систему хранения синтетической музыки.

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

Видеозвуковая сцена состоит из медиа-объектов, которые объединены в иерархическую структуру:

    Неподвижные изображения (например, фон).

    Видеообъекты (например, говорящий человек).

    Аудиообъекты (голос, связанный с этим человеком).

    Текст, связанный с данной сценой.

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

Такой способ представления данных позволяет:

  • перемещать и размещать медиа-объекты в любое место сцены;

  • трансформировать объекты и изменять их геометрические размеры;

  • собирать из отдельных объектов составной объект и выполнять над ним какие-либо операции;

  • изменять текстуру объекта, манипулировать объектами в процессе синтеза очередной сцены;

  • изменять точку наблюдения за сценой.

Предполагается, что для сжатия аудиоданных высокого качества в формате будут использоваться алгоритмы ААС и TwinVQ, для низкого качества и малых размеров результирующего файла - LPC (Linear Predictive Coding) и PAR.

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

Таким образом, MPEG-4 - это стандарт на сжатие звуковых и видеофайлов в удобный для загрузки или пересылки, например через Internet, формат.

MPEG-7MPEG-7, по всей видимости, нельзя рассматривать как продолжение разработок технологии MPEG. Он стал разрабатываться сравнительно недавно и планируется завершение работ над ним в 2001 г. MPEG-7 будет стандартом для описания различных типов мультимедийной информации, а не для ее кодирования и сжатия. Он призван обеспечивать эффективный и быстрый поиск мультимедийных данных. MPEG-7 официально называют Интерфейс описания мультимедиа данных (Multimedia Content Description Interface).Формат MPEG-7 должен определять стандартный набор дескрипторов для различных типов мультимедийной информации. Он также стандартизует способ определения (идентификации) дескрипторов и их взаимосвязи (description schemes). Для этой цели MPEG-7 вводит язык описания определений (DDL - Description Definition Language). Основная цель применения MPEG-7 - это поиск мультимедийной информации по заданному фрагменту или даже по отдельным элементам.

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

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

Цифровой интерфейс и формат MIDI-данных. Musical Instrument Digital Interface (MIDI) - MIDIцифровой интерфейс музыкальных инструментов - был создан в 1982 г. ведущими производителями электронных музыкальных инструментов. Первоначально этот формат предназначался для замены принятых в то время аналоговых способов управления музыкальными инструментами. Впоследствии он стал стандаpтом де-факто в области электpонных музыкальных инстpументов и воспроизведения музыки в компьютеpных аудиосистемах.

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

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

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

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

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

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

Для хpанения MIDI-паpтитуp на носителях данных pазpабо-таны фоpматы SMF (Standard MIDI File - стандаpтный MIDI-файл) тpех типов:

    0 - непосpедственно MIDI-поток в том виде, в каком он пеpедается по интеpфейсу.

    1 - совокупность паpаллельных «доpожек», каждая из котоpых обычно пpедставляет собой отдельную паpтию пpоизведения, исполняемую на одном MIDI-канале.

    2 - совокупность нескольких пpоизведений, каждое из котоpых размещено на нескольких доpожках.

В основном пpименяется фоpмат 1, позволяющий хpанить одно пpоизведение в файле.

Кpоме MIDI-событий файл содеpжит также «фиктивные события» (Meta Events), используемые только для офоpмления файла и не пеpедаваемые по интеpфейсу. К ним относят инфоpмацию о метpике и темпе, описание пpоизведения, названия паpтий, слова песни и т.п.

Характерной особенностью этого формата является нотная система описания аудиоинформации. Hомеp ноты задается абсолютным номеpом полутона в диапазоне 0-127. Например, центpальной фоpтепианной клавише - ноте «до» пеpвой октавы - соответствует десятичный номеp 60.

Спецификация фоpмата данных MIDI. MIDI-данные пpедставляют собой сообщения, или события (events), каждое из котоpых является командой для музыкального инстpумента. Стандаpт пpедусматpивает 16 независимых и pавнопpавных логических каналов, в каждом из котоpых действуют свои pежимы pаботы. Такой подход ориентировался на однотембpовые инстpументы, способные в каждый момент вpемени воспpоизводить звук только одного тембpа. Каждому инстpументу пpисваивался свой номеp канала, что обеспечивало многотембpовое исполнение музыкального произведения. С появлением многотембpовых (multi-timbral) инстpументов возникла необходимость поддеpживать несколько каналов (совpеменные инстpументы поддеpживают 16 каналов и могут иметь более одного MIDI-интеpфейса). Поэтому каждому каналу обычно назначается свой тембp, называемый по тpадиции инстpументом, хотя возможна комбинация нескольких тембpов в одном канале. Канал 10 по тpадиции используется для удаpных инстpументов: pазличные ноты в нем соответствуют pазличным удаpным звукам фиксиpованной высоты; остальные каналы используются для мелодических инстpументов.

Поскольку MIDI-сообщения пpедставляют собой поток данных в pеальном вpемени, их кодиpование облегчает синхpонизацию сигналов. Для этого пеpвый байт каждого сообщения, называемый также байтом состояния (status byte), содеpжит «1» в стаpшем pазpяде, а все остальные байты содеpжат в нем «0» и называются байтами данных (data bytes). Если после получения всех байтов данных, на вход пpиемника поступает байт, не содеpжащий «1» в стаpшем pазpяде, - это тpактуется как повтоpение инфоpмаци-онной части сообщения. Такой метод пеpедачи носит название «Running Status» и шиpоко используется для уменьшения объ-ема пеpедаваемых данных.

Виды MIDI-сообщений. MIDI-сообщения делятся:

  • на канальные - относящиеся к конкpетному каналу;

  • на системные - относящиеся к системе в целом.

Кодиpование MIDI-сообщений осуществляется в шестнад-цатеpичной системе исчисления. Символ n в пеpвом байте обозначает номеp канала.

Канальные сообщения имеют следующий вид:

    8n nn vv - выключение ноты (Note Off);

    9n nn vv - включение ноты (Note On);

    An nn pp - давление на клавишу (Key Pressure);

    Bn cc vv - смена значения контpоллеpа (Control Change),…

Системные сообщения:

    F0 - системное исключительное сообщение (System Exclusive);

    F1 - pезеpв;

    F2 ll mm - указатель позиции в паpтитуpе (Song Position Pointer );

    F3 ss - выбоp паpтитуpы (Song Select);

    F4 - pезеpв;

    F5 - pезеpв;

    F6 - запpос подстpойки (Tune Request);

    F7 - конец системного исключительного сообщения (EOX - End Of SysEx);

    F8 - синхpонизация по вpемени (Timing Clock);

    F9 - pезеpв;

    FA - запуск игpы по паpтитуpе (Start);

    FB - пpодолжение игpы по паpтитуpе (Continue);

    FC - остановка игpы по паpтитуpе (Stop);…

Hа основе MIDI был pазpаботан стандаpт GM (General MIDI), устанавливающий условия обязательной совместимости инстpументов и интеpпpетации номеpов пpогpамм и контpоллеpов, а затем и дpугие стандаpты (GS, XG), pасши-pяющие функциональные возможности GM. Однако общность инстpументов внутpи каждого стандаpта подpазумевает только основные звуковые хаpактеpистики. «Одинаковые» тембpы на pазличных инстpументах почти всегда имеют pазличную окpаску, динамику, гpомкость по умолчанию и дpугие особенности, а «синтетические» тембpы могут совеpшенно отличаться дpуг от дpуга.

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

Формат МР3. МР3 (MPEG Layer III), часто именуемый MPEG-3MPEG-3, является форматом хранения аудиоданных. Он использует алгоритмы МPEG-1, MPEG-2 и его модификацию MPEG-2.5 и обеспечивает сжатие от 8 до 320 Кбит/с (в зависимости от использованного алгоритма). В формате МР3 предусмотрено три вида сжатия двухканальной аудиоинформации: «объединенное стерео», «стерео» и «двойной канал» (join stereo, stereo, dual channel). При использования режима объединенного стерео каналы аудиоинформации сжимаются совместно (кроме низких частот), что обеспечивает наибольшее сжатие при определенной потере качества стереоэффекта. Режим стерео подразумевает независимые каналы, однако количество битов, отводимых тому или иному каналу, может изменяться. Режим двойного канала создает два абсолютно независимых друг от друга канала, делящих пополам общее количество битов, которое используется для записи одной секунды аудиоролика.

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

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

Популярность WAV-формата обусловлена масштабами распространения операционной системы Windows и авторитетом фирмы MicrosoftMicrosoft. Этот формат похож на AIFF-формат для платформы Apple, однако они программно-информационно несовместимы.

Заголовок файла включает:

typedef struct {

char id; - идентификатор = "WAVE" = 0x45564157

char fmt; - идентификатор = "fmt " = 0x20746D66

long len; - длина этого блока WAV-файла,

} IDChuckWave;

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

typedef struct {

int type; - тип звуковых данных,

1 - просто выборка;

0x101 - IBM mu-law;

0x102 - IBM a-law;

0x103 - ADPCM.

int channels; - число каналов 1/2;

long SamplesPerSec; - частота выборки;

long AvgBytesPerSec; - частота выдачи байтов;

int align; - выравнивание;

int bits; - число битов на выборку;

} IDWave;

Далее следует идентификатор выборки:

typedef struct {

char id; - идентификатор ="data" =0x61746164;

long len; - длина выборки (кратна 2);

} IDSampleWave;

В обобщенном виде структура формата иллюстрируется данными табл. 5.2.

Таблица 5.2

Смещение от начала файла   Длина   

Описание

0h 4h Идентификатор формата (‘RIFF‘)
4h 4h Длина блока данных (длина файла — 8h)
8h 4h Идентификатор блока звуковых данных (‘WAVE‘)
0ch 4h Индентификатор подблока заголовка (‘fmt‘ — с пробелом в конце)
10h 4h 000ch/0010h — длина подблока заголовка
14h 2h 01h — тип формата представления данных
16h 2h Число каналов (1 — моно, 2 — стерео)
18h 2h/4h Частота дискретизации, Гц
1ah/1ch 2h/4h Скорость передачи данных, байт/с (произведение числа каналов, частоты дискретизации и разрядности в байтах)
1ch/20h 2h Число байтов для представления одного отсчета (1—8 бит — моно, 1—16 бит — стерео)
1eh/22h 2h Разрядность, бит (8, 16)
20h/24 4h Индентификатор подблока данных (‘data‘)
h24h/28h 4h Длина звуковых данных
28h/2ch   Звуковые данные

 RealMedia G2, формат Формат RealMedia G2. Формат RealAudio был разработан фирмой RealNetworks для хранения сжатых голосовых аудиоданных (речи), но с выходом версии 3 стал стандартом де-факто для трансляции видео- и аудиоинформации в сети. Последняя, 6-я версия формата называется RealMedia G2.

Технология трансляции мультимедийных данных RealMedia заключается в том, что сервер, кодируя «свежеоцифрованные» данные или считывая заранее подготовленный и хранящийся звуковой файл, передает аудиоинформацию по сети, используя особый протокол в виде потока данных, которые декодируются проигрывателем (клиентом). Последняя версия данного формата (RealServer) обеспечивает хранение в одном файле аудио- и видеоданных, сжатых с разной силой. Подходящий для пользователя коэффициент сжатия выбирается с учетом скорости передачи данных от сервера к клиенту. Таким образом, один и тот же файл звучит с разным качеством в зависимости от пропускной способности используемого канала связи. Трансляция может осуществляться с обычных Web-серверов (по протоколу HTTP). Однако при этом уменьшаются качество и функциональность трансляции.

SoundVQ, формат Формат SoundVQ. Этот формат появился около двух лет назад. Формат был разработан компанией Yamaha. Второе его название - VQF. Буквенное сочетание используется как расширение звукового файла. Этот формат использует алгоритм сжатия TwinVQ (Transform-domain Weighted Interleave Vector Quantization), разработанный в лаборатории Nippon Telephone Telegraph Human Laboratories.

Формат обеспечивает более сильное, чем МР3, сжатие при высоком качестве результата. По качеству при силе сжатия 96 Кбит/с VQF, по результатам проводившегося тестирования, не уступает МР3. Считается, что в области низкокачественной аудиоинформации и сильного сжатия формат превосходит все аналоги.

Вместе с тем конвертирование аудиоданных в формат VQF происходит значительно медленнее, чем в формат МР3. Формат SoundVQ не предусматривает мгновенного перехода в любую точку записи. Кроме того, требования к используемой аппаратуре, в частности к производительности процессора, у формата SoundVQ выше, чем у МР3.

 Windows Media Technology, формат Формат Windows Media Technology. Формат WMT4 (называемый также MS Audio 4.0 и имеющий аббревиатуру ASF -Advanced Streaming Format) был представлен фирмой-разработчиком MicrosoftMicrosoft как аналог RealAudio и МР3. По мнению создателей, WMT4 превосходит оба эти формата и обеспечивает аналогичное МР3 качество при вдвое меньшем размере результирующего файла. Фактически формат поддерживает потоковую передачу данных в Internet и имеет прогрессивную систему сжатия аудио- и видеоданных, базирующуюся на алгоритмах MPEG -4 (используя, в том числе, кодеки Microsoft Audio).

Формат QuickTimeQuickTime . Формат QuickTime фирмы Apple был разработан для использования в мультимедийных приложениях на компьютерах Macintosh, но впоследствии приобрел огромную популярность на ПК и, кстати, был выбран «оболочкой» для формата MPEG-4.

QuickTime поддерживает потоковую передачу данных через Internet и протоколы RTP (Real Time Protocol) и RTSP (Real Time Streaming Protocol). Компания AppleApple открыла исходные коды своего потокового Internet -сервера по модели Open Source.

QuickTime - универсальный формат, его можно использовать для хранения видео, аудио, Векторная графикавекторной графики и Анимацияанимации (интеграция с Macintosh), MIDI-музыки, 3D-объектов, неподвижной графики и даже панорамных изображений.

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

Таблица 5.3

Расширение

Область применения/фирма-разработчик

.aiff, .aif Типа AIFF и AIFC, компьютеры Apple, SGI
.au Kомпьютеры Sun, NeXT, DEC
.avr Предложен фирмой Audio Visual Research (заголовок 128 байт)
.hcom Kомпьютеры Macintosh
.iff Типа IFF/8SVX, компьютеры Amiga
.nsp Записаны на аппаратуре CSL, Model 4300B (фирма Kay Elemetrics)
.sf IRCAM Sound Files; программы CSound, Mix View
.smp Программа SampleVision (фирма Turtle Beach)
.snd Kомпьютеры Sun, NeXT
.voc Voice File (фирма Creative Labs)
.wav Waveform Audio (фирма Microsoft)

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

  1. Цифроаналоговый преобразователь (ЦАП):

    ЦАП подключается к параллельному (LPT) порту. На восьми выходных линиях данных (D0-D7) параллельного порта собирается взвешивающий сумматор - схема, суммирующая логические уровни 0/1 с весами 1, 2, 4, ..., 128. Это дает для каждой из комбинаций восьми цифровых сигналов 0-255 линейно изменяющийся аналоговый сигнал с уровнем 0 - X (максимальный уровень X зависит от параметров сумматора). Простейший сумматор выполняется на резисторах, более сложный - на микросхемах ЦАП (например, 572ПА). При записи в регистр данных параллельного порта на выходе ЦАП устанавливается уровень, пропорциональный записанному значению, и сохраняется до записи следующего значения. Таким образом, получается 8-разрядный преобразователь с частотой дискретизации до нескольких десятков килогерц. Добавив два регистра хранения и логику выбора, можно сделать стереоЦАП, коммутируя каналы с помощью служебных сигналов порта.

    Собирается на вставляемой в разъем расширения плате. В этом случае можно получить 12- и 16-разрядный ЦАП (моно или стерео). Он может содержать таймер, генерирующий запросы прерывания, и/или логику поддержки прямого доступа к памяти (DMA), которая позволяет равномерно и без участия процессора передавать данные из памяти на преобразователь.

  2. Специальные звуковые карты:

    Используют ЦАП. В этом случае карта программируется на вывод оцифрованного звука напрямую или через DMA, а подготовка оцифровки в памяти осуществляется так же, как и при выводе на ЦАП.

    Используют синтезатор, который имеется почти на всех картах. Большинство карт оснащено простейшими 2- или 4-операторными FM-синтезаторами. Почти на всех современных картах установлены также WT-синтезаторы. При наличии обоих синтезаторов ими можно управлять одновременно, увеличивая набор тембров и число голосов. Параллельно можно задействовать и ЦАП карты, через который можно выводить различные звуковые эффекты.

  3. Встроенный громкоговоритель (PC Speaker):

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

    Используют прямое управление громкоговорителем через системный порт 61, подавая на него серию импульсов меняющейся частоты и скважности (соотношения длительности 1/0). В результате можно получать различные звуковые эффекты: шум, модуляцию, изменение окраски тона.

  4. Внешний синтезатор, управляемый от компьютера:

    Используют MIDI-порт, который имеется практически на всех звуковых картах. Выход MIDI Out (обычно при помощи MIDI-адаптера) соединяется со входом MIDI In синтезатора, и через порт подаются MIDI-команды синтезатору. Одновременно можно принимать MIDI-сообщения от синтезатора, подключив его MIDI Out к MIDI In звуковой карты.

Используют стандартный последовательный порт, если в BIOS Setup есть возможность переключить его в режим MIDI-совместимости.

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

В качестве примера рассмотрим анимационные файловые форматы FLI, FLC и CEL, которые используются в анимационной программе Autodesk Animator Pro.

Эти форматы обеспечивают хранение анимационной графики и позволяют проигрывать на экране компьютера анимационные ролики. В них не предусмотрена возможность хранения аудиоинформации и обеспечивается лишь 256 градаций цветов. Но простота и быстрота воспроизведения анимаций сделали данный формат популярным среди художников-аниматоров и разработчиков компьютерных игр. Файловые форматы FLI использовались первоначально в программе Animator. Формат FLC затем стал использоваться в программе Animator Pro.

Формат файлов анимационных фильмов (flic) был опубликован в 1993 г. в журнале «The Doctor Dobb's Journal».

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

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

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

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

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

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

На рис. 5.8Рис. 05.08. Структура анимационного формата FLI представлена обобщенная схема анимационного файлового формата FLI.

Заголовок файла имеет длину 128 байт. Его структура представлена в табл. 5.4.

Таблица 5.4

Смещение от начала, байт    Размер, байт        Название Описание
0 4 Size Размер файла в байтах
4 2 Type Идентификатор файла. Всегда 0xAF11 для FLI и 0xAF12 для FLC и CEL
6 2 Frames Число фреймов, максимум 4000. Не включая кольцевой фрейм
8 2 Width Ширина экрана для воспроизведения
10 2 Height Высота экрана для воспроизведения
12 2 Depth Бит на пиксел (всегда 8, для CEL равно 0)
14 2 Flags Флажки, всегда 3. Если первый бит не установлен, то нет кольцевого фрейма
16 4 Speed Задержка между фреймами. Для FLI в единицах 1/70 с, для FLC в единицах 1/1000 с
20 2 Reserv Резерв, всегда 0

Для формата FLC структура заголовка представлена в табл. 5.5.

Таблица 5.5

Смещение от начала, байт    Размер, байт        Название Описание
22 4 Created Дата создания файла в формате MsDOS
26 4 Creator Серийный номер программы Animator Pro, создавшей файл
30 4 Updated Дата последнего изменения файла
34 4 Updater Серийный номер программы, изменившей файл
38 2 Aspectx Kоэффициент пропорциональности по оси X
40 2 Aspecty Kоэффициент пропорциональности по оси Y
42 38 Reserved Резерв, всегда 0
80 4 Oframe1 Смещение от начала файла на первый фрейм
84 4 Oframe2 Смещение от начала файла на второй фрейм. Это значение можно использовать при циклическом проигрывании фильма
88 40 Reserved Резерв, всегда 0

Для форматов FLI и FLC используются различные единицы задержки между кадрами. Для FLI задержка исчисляется относительно частоты регенерации изображения на экране монитора (в данном случае - 70). Для FLC задержка исчисляется в единицах миллисекунд (1/1000 с).

Для FLI максимальный размер экрана 320 × 200, для FLC - 1280 × 1024.

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

Затем идут фреймы. Каждый фрейм ( в том числе и префиксный блок ) имеет заголовок длиной 16 байт.

Заголовок фрейма. Ниже представлена табл. 5.6, иллюстрирующая структуру заголовка фрейма.

Таблица 5.6

Смещение от начала, байт    Размер, байт        Название Описание
0 4 Size Размер фрейма, включая заголовок, в байтах
4 2 Type Тип фрейма
6 2 Chunks Число блоков в данном фрейме. Максимум 4000 блоков
8 8 Reserv Резерв, всегда 0

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

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

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

Блок фрейма имеет свой заголовок размером 6 байт, за которым идут данные (табл. 5.7).

Таблица 5.7

Смещение от начала, байт    Размер, байт        Название

Описание

0 4 Size Размер блока, включая этот заголовок, в байтах
4 2 Type Тип блока

Размер блока для FLI никогда не превышает 64007 байт. Размер фрейма для FLC может быть вычислен по следующей формуле:

Размер_фрейма = (Ширина_экрана) × (Высота_экрана )+82 байт

Основные типы блоков представлены в табл. 5.8.

Таблица 5.8

Значение         Имя

Описание

4 COLOR_256 Настройка палитры, значения цветов от 0 до 255 (только FLC)
7 DELTA_FLC Блок дельта-сжатия по словам (только FLC)
11 COLOR_64 Настройка палитры, значения цветов от 0 до 64 (только FLI)
12 DELTA_FLI Блок дельта-сжатия по байтам (только FLI)
13 BLACK Заполнение всего экрана нулевым цветом
15 BYTE_RUN Побайтное сжатие данных групповым кодированием
16 FLI_COPY Несжатое изображение
18 PSTAMP Небольшое изображение для предвари-тельного просмотра, содержится только в первом фрейме и первом блоке. Оно может быть пропущено

Остановимся кратко на описании указанных в табл. 5.8 типов блоков.

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

Блок типа 15 - сжатие RLE ( BYTE_RUN ). Данный блок содержит все изображение кадра. В основном применяется в первом фрейме или внутри блока изображения для предварительного просмотра.

Начинается с первой строки вывода анимации на экран, затем записывается последовательность данных по всем строкам кадра для вывода на экран. Число строк определяется разрешением экрана в режиме воспроизведения. Первый байт в строке содержит число серий пикселов в строке. Этот байт может игнорироваться. Возможно, что количество серий в строке будет больше, чем 255. Ширина вывода на экран используется для обнаружения конца строки и перехода на следующую строку. Формат данных представлен в табл. 5.9.

Таблица 5.9

Смещение, байт    Размер, байт        Название

Описание

0 1 Size_count Число байтов для копирования и тип копирования данных (либо повтор одного байта, либо копирование строки байтов)
1 128 Data Данные

Если значение size_count больше нуля, то данные состоят из одного байта, который необходимо size_count раз вывести на экран. Если size_count меньше нуля, то необходимо вычислить абсолютное значение size_count. И столько байтов должно быть скопировано на экран из закодированных данных (data). Таким образом, число байтов для копирования не может быть больше 128.

Данный блок имеет размер не более 64000 байт (только для FLI). Для FLC размер данного блока не больше, чем ширина экрана, умноженная на высоту экрана.

Блок типа 13 - заполнение экрана нулевым цветом (BLACK). Не содержит никаких данных, кроме заголовка. При воспроизведении кадра экран заполняется нулевым цветом.

Блок типа 12 - блок дельта-сжатия по байтам ( DELTA_FLI ). Наиболее часто встречающийся блок во FLI-файлах. Содержит различия между текущим и предыдущим кадром. Этот тип блока встречается и в формате FLC. Каждая строка кодируется отдельно. Первый байт в строке - число серий пикселов в этой строке. Если строка не изменялась относительно последнего фрейма, то этот байт равен нулю. В этом байте размещается положительное число, так как данный блок используется только для FLI-файлов.

Пропуск столбцов пикселов (табл. 5.10) обозначает, сколько столбцов пикселов необходимо пропустить относительно текущего пиксела. Если необходимо пропустить больше чем 255 пикселов, то они будут разбиты на две серии. Число байтов для вывода знаковое. При этом отрицательные и положительные значения имеют обратный смысл по сравнению с значениями в блоке типа 15. Если данный байт больше нуля, то далее следуют байты для копирования на экран. Если данный байт меньше нуля, то следующий байт должен быть повторен в соответствии со значением size_count.

Таблица 5.10

Смещение, байт   Размер, байт    Название    Описание
0 1 Skip_count Пропуск столбцов
1 1 Size_count Число байтов для копирования и тип копирования
2 128 Data Данные

Блок типа 11 - настройки палитры (COLOR_64). Данные в этом блоке организованы в серии. Применяется только в FLI-файлах.

Первое слово после заголовка - число серий в этом блоке. Далее следуют серии. Первый байт серии указывает, сколько цветов палитры необходимо пропустить без изменения. Следующий байт - сколько цветов палитры надо изменить. Если данное число равно 0, то необходимо изменить все 256 цветов. Затем идут значения красной, зеленой и синей составляющей цвета - триады RGB (три байта ). Это значения цветов для настройки палитры, они изменяются от 0 до 63.

Блок типа 7 - блок дельта-сжатия по словам (DELTA_FLC). Это наиболее часто встречающийся блок в FLC-файлах. Используется только в Animator Pro. Содержит различия между последовательными фреймами. В отличие от блока DELTA_FLI здесь осуществляется сжатие по словам. Данные организованы в строки, в каждой строке серии пикселов. Первое слово (16 бит) - число сжатых строк, выводящихся на экран. Затем данные для каждой строки отдельно, всегда начинающиеся с первой строки. Каждая строка сжимается индивидуально.

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

Блок типа 4 - настройки палитры (COLOR_256). Данные в этом блоке организованы в серии. Применяется только в FLC-файлах.

Первое слово после заголовка - число серий в этом блоке. Далее следуют атрибуты серий. Первый байт серии - сколько цветов палитры пропустить без изменения. Следующий байт - сколько цветов палитры надо изменить. Если данное число равно 0, то необходимо изменить все 256 цветов. Затем идут значения красной, зеленой и синей составляющей цвета - триады цветовой модели RGB (три байта). Это значения цветов для настройки палитры, они изменяются от 0 до 255.

Блок типа 18 - миниатюрное изображение (PSTAMP). Данные используются в режиме предварительного просмотра. Этот блок не влияет на воспроизведение анимационного ролика.

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

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

© Центр дистанционного образования МГУП