Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:
реклама
Банкротство что такое банкротство www.patent-law.ru.

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

MPEG для чайников.


Авторские права: Константин Пакулин

MPEG: Общая информация

Стандарт сжатия MPEG разработан Экспертной группой кинематографии (Moving Picture Experts Group - MPEG). MPEG это стандарт на сжатие звуковых и видео файлов в более удобный для загрузки или пересылки, например через интернет, формат.

Существуют разные стандарты MPEG (как их еще иногда называют фазы - phase): MPEG-1, MPEG-2, MPEG-3, MPEG-4, MPEG-7.

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

MPEG-1

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

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

Как MPEG работает:

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

  • I (Intra) frame - кодируется как обыкновенная картинка.
  • P (Predicted) frame - при кодировании используется информация от предыдущих I или P кадров.
  • B (Bidirectional) frame - при кодировании используется информация от одного или двух I или P кадров

Последовательность кадров может быть например такая: IBBPBBPBBPBBIBBPBBPB...

Последовательность декодирования: 0312645...

Нужно заметить, что прежде чем декодировать B кадр требуется декодировать два I или P кадра. Существуют разные стандарты на частоту, с которой должны следовать I кадры, приблизительно 1-2 в секунду, соответствуюшие стандарты есть и для P кадров (каждый 3 кадр должен быть P кадром). Существуют разные относительные разрешения Y, Cb, Cr плоскостей (Таблица 1), обычно Cb и Cr кодируются с меньшим разрешением чем Y.

Таблица 1

Вид Формата Отношения разрешений по горизонтали (Cb/Y): Отношение разрешений по вертикали (Cb/Y):
4:4:4 1:1 1:1
4:2:2 1:2 1:1
4:2:0 1:2 1:2
4:1:1 1:4 1:1
4:1:0 1:4 1:4

Для применения алгоритмов кодировки происходит разбивка кадров на макроблоки каждый из которых состоит из определенного количества блоков (размер блока - 8*8 пикселей). Количество блоков в макроблоке в разных плоскостях разное и зависит от используемого формата

Техника кодирования:

Для большего сжатия в B и P кадрах используется алгоритм предсказания движения (что позволяет сильно уменьшить размер P и B кадров -- Таблица 2) на выходе которого получается:

  • Вектор смещения (вектор движения) блока который нужно предсказать относительно базового блока.
  • Разница между блоками (которая затем и кодируется).

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

Таблица 2

Вид кадра I P B Средний размер
Размер кадра для стандарта SIF (kilobit) 150 50 20 38

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

  • Discrete Cosine Transforms (DCT - дискретное преобразование косинусов).
  • Quantization (преобразование данных из непрерывной формы в дискретную).
  • Кодировка полученного блока в последовательность.

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

Звук в MPEG:

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

В Layer III части разбитого спектра самые маленькие, что обеспечивает самое хорошее сжатие. MPEG Audio поддерживает совместимость Layer'ов снизу вверх, т.е. decoder (декодировщик) для Layer II будет также распознавать Layer I.

Синхронизация и объединение звука и видео, осуществляется с помощью System Stream , который включает в себя:

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

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

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

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

Параметры MPEG-1 (Утверждены в 1992)

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

Таблица 3

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

Параметры Видео: в принципе с помощью MPEG-1 можно передавать разрешение вплоть до 4095x4095x60 fps (в этих границах кадр может быть произвольного размера), но так как существует Constrained Parameters Bitstream (CPB, неизменяемые параметры потока данных; другие стандарты для MPEG-1 поддерживаются далеко не всеми декодерами) которые ограничивают общее число макроблоков в картинке (396 для скорости <= 25 fps и 330 для скорости <= 30 fps) то MPEG-1 кодируется стандартом SIF /352*240*30 - (получено урезанием стандарта CCIR-601) или 352*288*25 - (урезанный PAL, SECAM) формат 4:2:0, 1.15 MBPS (мегабит в сек.), 8 bpp (бит на точку) - в каждой плоскости/.

Существует более высокое разрешение для MPEG-1 - так называемый MPEG-1 Plus, разрешение как у MPEG-2 ML@MP (Main Level, Main Profile) - этот стандарт часто используется в Set-Top-Box для улучшения качества.

MPEG2 - upgrade для MPEG1

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

Изменения в Audio:

  • Появились новые виды частот 16, 22.05, 24 КГц.
  • Поддержка многоканальности - возможность иметь 5 полноценных каналов (left, center, right, left surround, right surround) + 1 низкочастотный (subwoofer).
  • Появился AAC (Advanced Audio Coding - прогрессивное кодирование звука) стандарт - обеспечивает очень высокое качество звука со скоростью 64 kbps per channel (килобит в сек. на канал), возможно использовать 48 основных каналов, 16 низкочастотных каналов для звуковых эффектов, 16 многоязыковых каналов и 16 каналов данных. До 16 программ может быть описано используя любое количество элементов звуковых и других данных. Для AAC существуют три вида профиля - Main (используется когда нет лишней памяти), Low Complexity (LC), Scalable Sampling Rate (SSR, требуется декодер с изменяемой скоростью приема данных).

Декодеры должны быть:

  1. "forwards compatible" (вперед совместимыми) - MPEG-2 Audio Decoder понимает любые MPEG-1 аудио каналы.
  2. "backward compatible" (обратно совместимыми) - MPEG-1 Audio Decoder должен понимать ядро MPEG-2 Audio (L-канал, R-канал)
  3. "matrixing" (матрицируемыми) - MPEG1 Audio Decoder должен понимать 5-ти канальный MPEG-2 (L = left signal + a * center signal + b * left surround signal, R = right signal + a * center signal + b * right surround signal)
  4. MPEG-1 Звуковой декодер не обязан понимать MPEG-2 AAC.

В следствии зтого совершенно спокойно можно использовать MPEG-1 Vidio + MPEG-2 Audio или наоборот MPEG-2 Audio + MPEG-1 Video.

Изменения в Видео:

  • Требуется чтобы разрешение по вертикали и горизонтали было кратно 16 в кодировщике кадров (frame-encoder) стандартах (покадровое кодирование), и 32 по вертикали в кодировщике полей (field-encoder, каждое поле состоит из двух кадров) стандартах (interlaced video).
  • Возможность форматов 4:4:4, 4:2:2 (Next profile).
  • Введены понятия Profile (форма, профиль) и Levels (уровни).
  • Размер frame до 16383*16383.
  • Возможность кодировать interlaced video.
  • Наличие режимов масштабирования (Scalable Modes)
  • Pan&Scanning вектор (вектор панорамировани и масштабирования), который говорит декодеру как преобразовывать, например 16:9 в 4:3.

Изменения связаные с алгоритмами кодирования:

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

Scalable Modes (доступно только в Next и Main+ Profile) делят MPEG-2 на три слоя (base, middle, high) для того чтобы организовать уровни приоритета в видеоданных (на пример более приоритетный канал кодируется с большим количеством информации по коррекции ошибок чем менее):

  1. Spatial scalability (пространственное масштабирование) - основной слой кодируется с меньшим разрешением и затем он используется как предсказание для более приоритетных.
  2. Data Partitioning (дробление данных) - разбивает блок из 64 quantization коэффициентов в два потока из которых более приоритетный переносит низкочастотные (наиболее критичные к качеству), а менее приоритетный (высокочастотные).
  3. SNR (Signal to Noise Ratio) Scalability (масштабировние соотношения сигна/шум) - каналы кодируются с одинаковой скоростью, но с разным качеством (менее приоритетный слой содержит плохую картинку - более дискретные шаги, а высокоприоритетный слой содержит довесок позволяющий построить качественную картинку)
  4. Temporal Scalability (временное масштабирование) - менее приоритетный слой содержит канал с низкой скоростью передачи кадров, а высокоприоритетный содержит информацию позволяющую восстановить промежуточные кадры используя для предсказания менее приоритетные.



Таблица 4, Уровни

Уровень Максимальное разрешение Максимальная скорость Примечание
Low 352*240*30 4 Mbps CIF, кассеты
Main 720*480*30 15 Mbps CCIR 601, студийное TV
High 1440 1440*1152*30 60 Mbps 4x601, бытовое HDTV
High 1920*1080*30 80 Mbps Продукция SMPTE 240M std



Таблица 5, Профили

Профиль Комментарии
Simple Такой же как и Main только без B - картинок. Используется в программах и CATV (кабельное ТВ)
Main Стандартный MPEG-1, 95% пользователей, CATV, спутники
Main+ Main со Spatial и SNR Scalability
Next Main+ c форматом 4:2:2



Таблица 6, Допустимые комбинации Профилей и Уровней

Simple Main Main+ Next
High No No 4:2:2
High 1440 No Main c Spatial Scalability 4:2:2
Main 90% от всех Main c SNR Scalability 4:2:2
Low No Main c SNR Scalability No



Таблица 7, Наиболее популярные стандарты.

Разрешение Комментарии
352*480*24 (progressive) VHS, хорош для фильмов
544*480*30 (interlaced) Laserdisc (LD), D-2, Качество как у PAL
704*480*30 (interlaced) Качество CCIR 601.Studio D-1

Системный уровень MPEG-2, обеспечивает два уровня объединения данных:

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

MPEG-3 - ненужный формат

Был разработан для HDTV приложений с параметрами - максимальное разрешение (1920*1080*30), скорость 20 - 40 Mbps. Так как он не давал принципиальных улучшений по сравнению с MPEG-2 (да и к тому же MPEG-2 стал широко использоваться в разных вариантах, в том числе и для HDTV), то он благополучно вымер.

MPEG-4 - очень мощный формат

MPEG-4 - стандарт для низкоскоростной передачи (64 kbps), находящийся еще в стадии разработки. Первую версию планируется закончить в 1999 году.

Краткое описание:

  • Разделяет картинку на различные элементы, называемые media objects (медиа объекты).
  • Описывает структуру этих объектов и их взаимосвязи чтобы затем собрать их в видеозвуковую сцену.
  • Позволяет изменять сцену, что обеспечивает высокий уровень интерактивности для конечного пользователя .


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

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

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

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

MPEG-J

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

MPEG-7

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

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

  • Музыка. Сыграв несколько нот на клавиатуре можно получить список музыкальных произведений, которые содержат такую последовательность.
  • Графика. Нарисовав несколько линий на экране, получим набор рисунков содержащих данный фрагмент.
  • Картины. Определив объект (задав его форму и текстуру) получим список картин, содержащих оный.
  • Видео. Задав объект и движение получим набор видео или анимации.
  • Голос. Задав фрагмент голоса певца, получим набор песен и видео роликов где он поет.

MHEG

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

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

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
98K
04 марта 2017 года
Жуст Йобик
0 / / 04.03.2017
+11 / -16
Мне нравитсяМне не нравится
4 марта 2017, 23:15:12
вот читаеш такое и думаеш.какой умный придурок это все придумаюл вот дать ему в дыню что-бы больше ничего не придумывал.это и интернета касается тоже логи,пароль,э-мейл,пароль вот если чесно отпаролил-бы я етого имейла и заставил бы его всю оставшуюся жизнь логины паред глазами видеть смотрели себе люди телик нет придумали какие то мпег 1-2-3-4 уже говорят и где-то и7 есть и на хер оно все это создается и самое главное,кто за эту хренотень им платит.ну да ладно если-бы одно подходило к другому,так хрен с ним но увы не походит вот и думай теперь что простому человеку делать
2.
Аноним
+6 / -3
Мне нравитсяМне не нравится
15 ноября 2005, 18:41:14

Ну что же интересно почитать сказоку на ночь... однако ничего конкретного
3.
Аноним
+2 / -1
Мне нравитсяМне не нравится
20 августа 2005, 20:20:53
Программер - это кипящий чайник :)
4.
Аноним
+3 / -1
Мне нравитсяМне не нравится
4 апреля 2005, 23:29:15
Жаль конечно без исходников...
------------------------------------------------
поищу ка я что нить ещё :)
5.
Аноним
+4 / -1
Мне нравитсяМне не нравится
25 марта 2005, 12:28:31
Эй, товарищи, а где инфа про декодирование? Где исходники? как посмотреть видео из-под TASM или С++?
Досовский Quick Wiev не очень-то устраивает.
6.
Аноним
+4 / -2
Мне нравитсяМне не нравится
5 января 2005, 18:28:57
Чайник смотрит формат MPEG???
А кто тогда программеры?!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог