Технологии программирования миди

 Навигация:

 Поиск:

 Новости:

17.02.2007
Полностью переработан дизайн сайта.

6.01.2007
Добавлен раздел Наработки Полезные и интересные программы и их исходники от автора.

19.11.2006
Функции WriteVarLen и ReadVarLen портированы с СИ на Delphi читать

14.11.2006
Появилась cтатья Midi-протокол глазами программиста

24.10.2006
Написана вторая часть MMSystem Функции midiOutGetVolume midiOutSetVolume midiOutMessage midiOutShortMsg и midiOutLongMsg

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

1.09.2006
Добавлен раздел MMSystem в котором находятся
подробные опсания функций winmm.dll, определенных в модуле mmSystem.pas,
с примерами их использования в Delphi.

13.08.2006
Опубликован исходник приложения, записывающего игру на клавиатуре
в стандартный midi-файл SMF - 0

4.07.2006
Добавлен раздел Структура формата миди-файла

 Счетчики:
Rambler's Top100 Яндекс цитирования Rambler's Top100
 Контент:

Сжатие и распаковка видеоданных

Согласно современным понятиям видео представляет собой последова-тельность статических изображений, сменяющих друг друга с частотой не менее 25 ? 30 раз в секунду, при этом поток данных для видео весьма велик. Например, для разобранного в подразделе 3.2 случая (изображение 640? 480 пикселов, глубина цвета 16 бит) видеопоток при 25 кадрах/сек (FPS – Frame Rep Second) равен 50 Мбайт/сек ! Ясно, что в случае видео сжатие данных еще более важно, чем для статических изображений.

Концепция одновременной записи видео и звука была предложена еще MS в формате AVI (Audio Video Interleave), принципом является запись аудио-и видеосигналов в одном файле отдельно для каждого кадра (frame)

– сначала звук первого видеокадра, затем изображение, затем звук сле-дующего кадра и т.д. При этом информация внутри кадров или последова-тельности кадров может быть не сжата вообще (в прошлом применялось часто вследствие ограниченной мощности процессоров для сжатия в ре-альном времени) или скомпрессована любым известным методом (при со-хранении расширения AVI). Одним из распространенных ПО конвертации несжатых AVI в MPEG-1 является XingMPEG Encoder (www.xingtech.com). Аппаратные методы компрессации видео в настоя-щее время применяются не столь часто (можно упомянуть, например, мощный аппаратно-программный комплекс miroVideo DC1000 фирмы Pinnacle Systems, www.pinnaclesys.com, подробнее см. раздел 6). В на-стоящее время обычным является сохранение в файлах с расширением AVI сильно скомпрессированных видеофайлов DivX (см. ниже).

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

На сегодняшний день повсеместно распространенным является стан-дарт MPEG сжатия видеоинформации. Термин MPEG является аббревиа-турой Moving Picture Expert Group – название международной экспертной группы, действующая в направлении разработки стандартов кодирования и сжатия видео-и аудио-данных. MPEG состоит из трех частей: Audio, Video и System (объединение и синхронизация двух других).

Алгоритм MPEG-компрессии принципиально ориентирован на обработ-ку последовательностей кадров и использует высокую избыточность ин-формации в изображениях, разделенных малым временным интервалом. Между смежными изображениями обычно меняется только малая часть сцены – например, происходит плавное смещение небольшого объекта на фоне фиксированного заднего плана. В этом случае полную информацию о сцене достаточно сохранять только выборочно -для опорных изображе-ний. Для остальных изображений достаточно передавать только разност-ную информацию: о положении объекта, направлении и величине смеще-ния, о новых элементах фона (открывающихся за объектом по мере его движения). Эти разности можно формировать не только по сравнению с предыдущими изображениями, но и с последующими (поскольку именно в них по мере движения объекта открывается часть фона, ранее скрытая за объектом). Таким образом, в MPEG-кодировке принципиально формиру-ются три типа кадров: I (Intra), выполняющие роль опорных и сохраняю-щие полный объем информации о структуре изображения; P (Predictive), несущие информацию об изменениях в структуре изображения по сравне-нию с предыдущим кадром (типов I или P); B (Bi-directional), сохраняющие только самую существенную часть информацию об отличиях от предыду-щего и последующего изображений (только I или P). Последовательности I-, P-и B-кадров объединяются в фиксированные по длине и структуре группы кадров -GOP (Group of Pictures). Каждая GOP обязательно начи-нается с I-кадра и с определенной периодичностью содержит P-кадры. Ее структуру описывают как M/N, где M – общее число кадров в группе, а N – интервал между P-кадрами. Так, типичная для Video CD и DVD IPB груп-па 15/3 имеет следующий вид: IBBPBBPBBPBBPBB. Здесь каждый B-кадр восстанавливается по окружающим его P-кадрам (в начале и конце группы

-по I и Р), а в свою очередь каждый Р-кадр – по предыдущему Р- (или I) кадру. В то же время I-кадры самодостаточны и могут быть восстановлены независимо от других, однако являются опорными для всех P и тем более B-кадров группы. Соответственно у I наименьшая степень компрессии, у В -наибольшая. Установлено, что по размеру типичный Р-кадр составляет 1/3 от I, а B – 1/8 часть. В результате MPEG последовательность IPPP (GOP 4/1) обеспечивает 2-кратное уменьшение требуемого потока данных (при том же качестве) по сравнению с последовательностью только из I кадров, а использование GOP 15/3 позволяет достичь 4-кратного сжатия.

Известны следующие стандарты (или фазы) общего стандарта: MPEG1, MPEG-2, MPEG-3, MPEG-4, MPEG-7.

MPEG-1 предназначен для записи синхронизированных видео-и зву-кового сопровождения на CD ROM с учетом скорости считывания 1,5-3,5 Мбит/сек (при большей пропускной способности канала желателен пе-реход к MPEG-2).

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

Форматы кодирования звука в MPEG разделяются на три части – Layer I, Layer II и Layer III. Прообразом для Layer I и Layer II явился стан-дарт MUSICAM, также иногда называют Layer II. Наибольшее сжатие дос-тигается в Layer III, однако требует больших ресурсов на кодирование.

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

Синхронизация и объединение звука и видео, осуществляется с помо-щью системных потоков (system stream, рис. 4.1), который включает в се-бя:
=>Системный слой, содержащий временную и иную информацию с целью разделения и синхронизации видео и аудио
=>Компрессионный слой, содержащий видео и аудио потоки

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

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

MPEG-2 предназначен для обработки видеоизображения, соизмеримо-го по качеству с телевизионным при пропускной способности системы пе-редачи данных в пределах 3 ? 15 Мбит/сек (в профессиональной аппаратуре используют потоки скоростью до 50 Мбит/сек). На базирующиеся на стан-дарт MPEG-2 переходят многие телеканалы, сжатый в соответствии с этим стандартом сигнал транслируется через телевизионные спутники, исполь-зуется для архивации больших объемов видеоматериала. Метод столь эф-фективен, что позволяет ‘убирать’ до 97% цифровых данных, являющихся избыточными вследствие дублирования.

По сравнению с MPEG-1 внесены изменение в аудиоканал:
=> Реализованы новые виды частот 16 kГц, 22,05 kГц, 24 kГц
=> Добавлена поддержка многоканальности (возможно иметь 5 полноцен-ных каналов -left, center, right, left surround, right surround + 1 низкочас-тотный (subwoofer)
=> Появился стандарт AAC (Advanced Audio Coding, прогрессивное коди-рование звука), обеспечивающий очень высокое качество звука со ско-ростью 64 Кбит/сек на канал; возможно использовать 48 основных кана-лов, 16 низкочастотных каналов для звуковых эффектов, 16 многоязыко-вых каналов и 16 каналов данных. Может быть использовано до 16 про-грамм с использованием любого количества элементов звуковых и иных данных

Системный уровень MPEG-2 обеспечивает два уровня объединения дан-ных:
PES (Packetized Elementary Stream) -разбивает звук и видео на пакеты. Второй уровень делится на:
MPEG-2 Program Stream (совместим с MPEG-1 System) - для локаль-ной передачи в среде с низким уровнем ошибок
MPEG-2 Transport Stream (рис. 5.3) -внешнее вещание в среде с вы-соким уровнем ошибок; передает транспортные пакеты (длиной 188 или 188+16 бит) двух типов (сжатые данные - PES -и сигнальную таб-лицу PSI -Program Specific Information)

MPEG-3 предназначался для использования в системах телевидения высокой четкости HDTV (High-Defenition Television) при разрешении 19201080 при 30 кадр/сек со скоростью потока данных 20 ? 40 Мбит/сек, но позже фактически стал частью стандарта MPEG-2 и отдельно теперь не упоминается. Формат MP3 (который иногда путают с MPEG-3), предна-значен только для сжатия аудиоинформации и полное название MP3 зву-чит как MPEG-Audio Layer-3.

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

При функционировании MPEG-4 позволяет:
Разделять картинку на различные элементы, называемые media objects (медиа-объекты)
Описывать структуру этих объектов и их взаимосвязи чтобы затем со-брать их в видеозвуковую сцену .
Изменять сцену, обеспечивая этим высокий уровень интерактивности для конечного пользователя .
Синтетических объектов – объектов, которых не было изначально в за-писываемой сцене, но которые туда добавляются при демонстрации ко-нечному пользователю (например, синтезируется ‘говорящая голова’)

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

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

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

Картины. Определив объект (задав его форму и текстуру), получим список картин, содержащих такой объект

Видео. Задав объект и движение, получим набор видео или анимации

Голос. Задав фрагмент голоса певца, получим набор песен и видео ро-ликов, где он является исполнителем

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

Базовым объектом кодирования в стандарте MPEG является кадр те-левизионного изображения. Поскольку в большинстве фрагментов фон изображения остается достаточно стабильным, а действие происходит только на переднем плане, сжатие начинается с создания исходного кадра. Исходные (Intra) кадры кодируются только с применением внутрикадрово-го сжатия по алгоритмам, аналогичным описанным для формата JPEG (см. подраздел 2.3). Кадр разбивается на блоки 8? 8 пикселов, над каждым бло-ком производится дискретно-косинусное преобразование (ДКП) с после-дующим квантованием полученных коэффициентов. Вследствии высокой пространственной корелляции яркости между соседними пикселами изо-бражения ДКП приводит к концентрации сигнала в низкочастотной части спектра, который после квантования эффективно сжимается с использова-нием кодирования кодами переменной длины. Обработка предсказуемых (Predicted) кадров производится с использованием предсказания вперед по предшествующим исходным или предсказуемым кадрам. Кадр разбивается на макроблоки 16? 16 пикселов, каждому макроблоку ставится в соответст-вие наиболее похожий участок изображения из опорного кадра, сдвинутый на вектор перемещения. Эта процедура называется анализом и компенса-цией движения. Допустимая степень сжатия для предсказуемых кадров превышает возможную для исходных в 3 раза. В зависимости от характера видеоизображения, кадры двунаправленной интерполяции (Bi-directional Interpolated) кодируются одним из четырех способов: предсказание вперед, обратное предсказание с компенсацией движения (используется в том слу-чае, когда в кодируемом кадре появляются новые объекты изображения), двунаправленное предсказание с компенсацией движения, внутрикадровое предсказание (применяется при резкой смене сюжета или при высокой скорости перемещения злементов изображения). С двунаправленными кадрами связано наиболее значительное сжатие видеоданных, но посколь-ку высокая степень сжатия снижает точность восстановления исходного изображения, двунаправленные кадры не используются в качестве опор-ных. В случае точной передачи коэффициентов ДКП восстановленное изо-бражение полностью совпадало бы с исходным. Однако связанные с кван-тованием ошибки восстановления коэффициентов ДКП приводят к иска-жениям изображения. Чем грубее производится квантование, тем меньший объем занимают коэффициенты и тем сильнее сжатие сигнала, но и тем больше визуальных искажений.

Наиболее эффективным в настоящее время можно считать DivX (один из кодеков с таким названием разработан MS, технология сжатия является несколько измененным методом MPEG-4). Благодаря DivX стало возмож-ным размещать видеоинформацию вместе со звуком при высоких разре-шениях и с высоким качеством и при этом добиться приемлемых размеров файлов. Для просмотра таких фильмов достаточно установить в систему DivX кодек, выгрузить который можно с адреса www.3dnews.ru/download/dvd/divx-codec. В настоящее время действуют версии кодека до 5.2; кодеки интенсивно используют процессорные техно-логии MMX/SSE (см. раздел 5). Процесс перекодировки в DivX весьма ре-сурсоемок и (даже на мощных ПЭВМ) может длиться несколько часов (именно поэтому DivX-кодирование в реальном времени в высшей степени затруднительно).

Реально качество DivX-фильмов хуже DVD, однако оно зачастую вы-ше того, что встречается на видеокассетах. Windows Media Player легко детектирует присутствие DivX-кодека в системе и успешно применяет его (расширения файлов AVI, DIVX, MP4), из специализированных плееров можно рекомендовать Playa и DivX Player (оба производства фирмы DivXNetworks, Inc, www.divx.com).

Технологии сжатия изображений не ограничиваются вышеперечислен-ными; напр., фирма AT&T (www.att.com) продвигает метод эффективного сжатия Wavelet transform. Ряд фирм активно ведет разработку алгоритмов сжатия видеоинформации, стремясь достичь коэффициента сжатия порядка 200:1 и выше. В основе наиболее эффективных алгоритмов лежат различ-ные адаптивные варианты: DOT (Discrete Cosine Transform, дискрет-ное косинус-преобразование), DPCM (Differential Pulse Code Modulation, разностная импульсно-кодовая модуляция), а также фрактальные методы. Алгоритмы реализуются аппаратно — в виде специальных мик-росхем или записанной в ПЗУ программы, либо чисто программным пу-тем.

Содержание
 Bash.org.ru:

 Реклама:

 ©Copyright:
http://www.last.h16.ru - программирование миди. Идея, разработка и поддержка : Mo-skin © 2006-2007
X