Преобразование частоты дискретизации

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

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

Ресемплеры используются в нескольких местах Android. Например, файл MP3 может быть закодирован с частотой дискретизации 44,1 кГц, но его необходимо воспроизвести на устройстве Android, поддерживающем внутреннюю частоту звука 48 кГц. В этом случае ресэмплер будет использоваться для повышения частоты дискретизации выходного аудио MP3 с частоты дискретизации источника 44,1 кГц до частоты дискретизации приемника 48 кГц, используемой на устройстве Android.

Характеристики ресэмплера можно выразить с помощью показателей, в том числе:

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

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

Android включает в себя множество преобразователей аудио, поэтому можно найти соответствующие компромиссы в зависимости от варианта использования и нагрузки приложения. Доступные ресэмплеры описаны в разделе «Реализация Resampler».

Реализации ресэмплера

Доступные реализации ресемплера часто меняются и могут быть настроены OEM-производителями. Ресемплеры по умолчанию, в порядке убывания искажения сигнала и возрастания вычислительной сложности, включают:

  • линейный
  • кубический
  • sinc с исходными коэффициентами
  • sinc с пересмотренными коэффициентами

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

Конкретная выбранная реализация ресэмплера зависит от варианта использования, нагрузки и значения системного свойства af.resampler.quality . Подробности см. в исходном коде аудиоресемплера в AudioFlinger .