2010-03-26 3 views
18

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

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

+0

google it .. переполнение стека не поможет. – raj

+0

Вы изучили википедию? – SteelBytes

+0

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

ответ

2

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

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

Удачи.

  • Дирак http://diracvideo.org/specifications/
  • MPEG-4: http://en.wikipedia.org/wiki/MPEG-4
  • JPEG: HTTP: // JPEG .org/государственные/jfif.pdf
22

Ваш заголовок спрашивает о сжатии A/V, но остальные ваши комментарии переговоры о разборе медиа-файл & идентифицирующую его кодека. Это очень разные задачи: spec'd &, реализованный различными организациями, выполняемый различными API-интерфейсами в большинстве мультимедийных библиотек и, прежде всего, требующий очень разных наборов навыков.

Формат файлов A/V не слишком отличается от любого другого формата файла, который, в свою очередь, равен formal grammars. Анализ, проверка и результирующие графы объектов концептуально ничем не отличаются от любой другой грамматики - и на практике они, как правило, намного проще, чем грамматики, с которыми вы сталкиваетесь в стандартной учебной программе CS (компиляторы, конечные автоматы). AVI file format является своего рода устаревает в этот момент, но я по-прежнему рекомендую начинать там, потому что:

  • многие из сегодняшних более сложных форматов напоминают AVI в целом или частично, или, как минимум, предположим, что вы уже знакомы с его основные структуры
  • AVI является членом большого семейства мультимедийных форматов, известных как RIFF, которые вы найдете, используемые во многих других местах such as WAVs

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

  • information theory
  • общих entropy coding алгоритмов
  • Fourier analysis (а также многое другое DSP, насколько это возможно)
  • psychoacoustic/psychovisual моделирование
  • практические ограничения, налагаемые жизненным циклом производства/вещания, устаревшее видеооборудование & стандарты и досадная старая физика, в том числе:
  • практические ограничения, налагаемые современных архитектур процессоров, особенно:
    • SIMD оптимизация
    • cache line сглаживание, упреждающая выборка и т.д.

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

  • x264 (MPEG-4, часть 10, также известный как AVC)
  • LAME (MPEG-1 слой 3, также известный как mp3)
  • Xvid (MPEG-4, часть 2, то же самое как Divx и многие другие)
  • Vorbis (альтернатива, нелецензированный аудиокодек)
  • Dirac (альтернатива, нелецензированный видео кодек на основе вейвлет-преобразования)
9

В общем, сжатия видео касается выбрасывая как можно больше информации возможно, в то же время минимально влияя на опыт просмотра для конечного пользователя. Например, использование подвыборного YUV вместо RGB сокращает размер видео вдвое. Это возможно, так как человеческий глаз менее чувствителен к цвету, чем к яркости. В YUV значение Y является яркостью, а значения U и V представляют цвет. Поэтому вы можете выбросить часть информации о цвете, которая уменьшает размер файла, без возможности просмотра зрителя.

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

Временная избыточность отмечает, что последовательные кадры в видеопоследовательности очень похожи. Обычно видео должно составлять порядка 20-30 кадров в секунду, и ничто не меняется в 1/30 секунды. Возьмите любой DVD и приостановите его, затем переместите его на один кадр и обратите внимание на то, насколько похожи 2 изображения.Таким образом, вместо того, чтобы кодировать каждый кадр независимо друг от друга, в формате MPEG-4 (и другие стандарты сжатия) кодировать только разность между последовательными кадрами (с использованием motion estimation, чтобы найти разницу между кадрами)

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

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

Для дальнейшего чтения this book неплохо, если немного тяжело на математике.

Смежные вопросы