Перейти к основному содержимому

PCM

Кодек PCM (Pulse Code Modulation) — это метод цифрового представления аналогового сигнала путем дискретизации и квантования амплитуды сигнала. В отличие от других форматов, таких как MP3 или AAC, PCM является несжатым аудиоформатом, который сохраняет все данные исходного сигнала без потерь.

Основные параметры:

  • Частота дискретизации: Обычно варьируется от 8 кГц до 192 кГц. Стандартные частоты включают 44.1 кГц (CD-качество), 48 кГц (стандарт для видео) и 96 кГц/192 кГц (высококачественное аудио).
  • Разрядность: От 8 бит до 32 бит. Наиболее распространенные значения — 16 бит (для CD-аудио) и 24 бита (для профессионального аудио). Чем больше разрядность, тем выше точность представления амплитуды звука.
  • Каналы: Моно (один канал), стерео (два канала) и многоканальные конфигурации (например, 5.1 или 7.1).

Области применения:

  • Профессиональная звукозапись: Благодаря отсутствию потерь при сжатии, PCM часто используется в студийной работе, где важно сохранить максимальную верность оригиналу.
  • Цифровое вещание: PCM применяется в системах передачи цифрового аудио, включая Blu-ray диски, DVD-Audio и цифровые радиосистемы DAB/DVB.
  • Потоковая передача данных: В некоторых случаях, когда требуется максимальная точность воспроизведения, может использоваться потоковый формат PCM, особенно в локальных сетях или высокоскоростных соединениях.

Сравнение с другими кодеками:

  • MP3/AAC: Эти кодеки используют алгоритмы сжатия с потерями, удаляя части звукового спектра, которые считаются малозначительными для человеческого слуха. Они обеспечивают значительное уменьшение размера файла, но за счет качества звука.
  • FLAC/WAVPACK: Кодеки без потерь, которые позволяют сжимать файлы PCM без потери информации. FLAC обеспечивает компрессию примерно на 50–60%, сохраняя оригинальную точность.

Принцип работы:

PCM работает следующим образом:

  1. Дискретизация: Аналоговый сигнал разбивается на отдельные временные отсчеты (samples) с определенной частотой (частотой дискретизации).
  2. Квантование: Каждый отсчет преобразуется в цифровую форму путем присвоения ему ближайшего возможного уровня (кванта) из диапазона значений, определяемого разрядностью.
  3. Кодирование: Полученные значения сохраняются в цифровой форме, представляя собой последовательность чисел.

Пример кодирования через FFmpeg:

Для конвертации WAV-файла в PCM с помощью FFmpeg можно использовать следующую команду:

ffmpeg -i input.wav -acodec pcm_s16le output.pcm

Где:

  • input.wav — входной файл,
  • pcm_s16le — формат PCM с 16-битным разрешением и little-endian байтовым порядком,
  • output.pcm — выходной файл.

Пример использования GStreamer:

В GStreamer можно создать конвейер для записи PCM-потока с микрофона:

gst-launch-1.0 alsasrc ! audioconvert ! audio/x-raw,format=S16LE,channels=2,rate=44100 ! filesink location=output.pcm

Здесь:

  • alsasrc — источник звука (микрофон),
  • audioconvert — преобразователь формата аудио,
  • filesink — запись в файл.

Таким образом, PCM является простым и эффективным способом хранения и передачи высококачественного аудио, хотя он требует значительно большего объема памяти по сравнению с кодеками с потерями.

Вложения