13

Если быть более точным, чем в названии, предположим, что у меня есть файл MP3, который составляет 320 кбит / с. Если я распакую его, то, по логике, все данные, кроме примерно 320 килобит из каждой секунды аудио, должны быть избыточными данными, которые можно сжать. Итак, когда я кодирую распакованный файл в FLAC или любой другой кодек без потерь, почему он намного больше?

В связи с этим, возможно ли теоретически восстановить без потерь исходный mp3-файл из распакованного wav-файла? (Я знаю, что mp3 сам по себе с потерями. Я спрашиваю, возможно ли перекодировать без дальнейших потерь.)

РЕДАКТИРОВАТЬ: Позвольте мне уточнить связанный вопрос и обоснование этого. Предположим, у меня есть wav, который был распакован из файла MP3 (и предположим, что у меня нет самой mp3 по какой-то причине). Если я не хочу больше терять качество, я могу перекодировать его с помощью FLAC или любого другого кодера без потерь и получить файл большего размера, чтобы сохранить то же качество. Или я могу снова перекодировать его в mp3 и получить тот же размер, что и оригинал, но потерять больше данных. Очевидно, что ни один из этих случаев не идеален. У меня может быть как оригинальный размер, так и оригинальное качество, но не оба (я имею в виду качество оригинального mp3, а не оригинального источника без потерь). Мой вопрос: можем ли мы получить оба? Возможно ли теоретически восстановить сжатые с потерями данные из распакованных данных с потерями, не теряя еще больше?

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

4 ответа4

31

Причина, по которой FLAC больше, чем MP3 тех же данных, заключается в том, что они кодируются по-разному. :) MP3 просто кодирует воспринимаемую информацию, в то время как FLAC хранит каждую частичку данных, только в более компактном формате.

  • Преобразование WAV в FLAC похоже на преобразование BMP в PNG.
    • Точно такие же пиксели, но без потерь сжаты как ZIP-файл в меньший размер.
  • Преобразование WAV в MP3 похоже на преобразование BMP в JPEG.
    • Вместо того, чтобы хранить точные пиксели, на самом деле хранятся инструкции для создания квадратов с рябью цвета, которые выглядят как оригинал.

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

Бьюсь об заклад, если вы конвертируете JPEG в PNG, вы увидите такое же увеличение размера, какое вы видите при конвертации MP3 в FLAC, поскольку перфекционистский кодек без потерь должен помнить каждый маленький зазубрин и артефакт, который не был в оригинальном bmp.

Эта аналогия не идеальна, поскольку звук больше похож на фотографию, чем на линейную диаграмму, но он помогает понять идею:

Оригинальный размер BMP: 29 кБ

Синие точки в виде PNG

Размер PNG: 629 B

Синие точки в формате JPEG с зазубринами

Размер JPEG: 1,7 кБ

Синие точки с зазубринами перекодированы в PNG

PNG создан из JPEG: 6,2 кБ

2

Когда вы декодируете MP3, независимо от того, какой битрейт, вы получаете стандартный звук PCM 1411 кбит / с / 44100 Гц (или каким бы то ни было источником), который имеет все заметные и незаметные эффекты процесса кодирования с потерями, этот формат необходим для воспроизведения и кодирование / перекодирование, любой файл любого кодека распаковывается при его воспроизведении на компьютере, MP3-плеере и т. д.

Кодировщик FLAC не заботится о том, исходит ли сжатый звук из декодированного MP3 или с нового компакт-диска, он просто уменьшит размер исходного файла без каких-либо изменений в аудиоданных, делая возможным полное восстановление источника, процесс без потерь.

Файл FLAC, созданный из MP3, будет звучать точно так же, как MP3, файл FLAC, созданный из дорожки CD, будет звучать точно так же, как CD.

0

Чтобы ответить на вторую часть, если вы преобразуете обратно в формат WAV из MP3, а затем выбираете кодировщик без потерь, у вас должен быть файл идентичного качества, когда вы закончите.

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

Это все равно, что спросить, почему преобразование JPG в PNG делает его больше - вы [частично] распаковываете файл, а затем повторно сжимаете без потерь. FLAC, как и PNG, оптимизирован не для пространства, а для качества.

0

Для mp3 требуется, чтобы декодер был пригоден для воспроизведения, результатом декодера является аппроксимация исходной дорожки (обычно с компакт-диска), поэтому декодер добавляет данные, чтобы сделать ее воспроизводимой (и это не бессмысленные данные). Полученное приближение получило тот же битрейт, что и исходная дорожка. Без декодирования mp3 информация не имеет смысла, поэтому не может быть преобразована во что-либо еще (если только не очень похожее кодирование, например, стерео-mp3 в 2X моно-mp3). И FLAC и mp3 даже близко не похожи. При декодировании FLAC результат не является аппроксимацией оригинальных данных, закодированных в FLAC, но он точно такой же.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .