Почему FLAC кодируется из декодированного MP3 больше, чем MP3?


13

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

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

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

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


Вот мое любимое руководство по копированию и кодированию аудио. наслаждайтесь, это отлично читается: mp3.radified.com

2
Декодер не просто дополняет бессмысленные биты от 320 КБ до 1411 КБ, битрейт файла PCM задается значением бита на выборку, количеством каналов и частотой дискретизации. Для стандартного аудио CD это (2 канала) * (частота дискретизации 44,1 кГц) * (16 бит на выборку) = 1411 кбит / с.
Skelly

Просто, MP3 сжимается, FLAC - без сжатия. Когда вы конвертируете, он распаковывает данные MP3.
Моав

2
Это не правильно. FLAC - это формат сжатия звука.
Райан Томпсон

Ответы:


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 кБ


3
Но, разумеется, после преобразования файла в формат JPG данные теряются и не могут быть восстановлены путем преобразования в формат PNG. Если в FLAC / PNG будет больше данных, большая часть будет фиктивной.
павильон

1
Да. Значимые данные теряются, и создаются ошибочные данные.
эндолит

1
Это наглядно показано на примере диаграмм эндолита.
hplbsh

1
Это удивительно тщательный ответ. Хорошая работа!
пастушка

1
Вы правы. Я не знаю, о чем я думал.
Кевин Панко

2

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

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

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


0

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

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

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


FLAC (и PNG) без потерь, поэтому говорить, что они оптимизированы по качеству, не имеет смысла.
Йоаким Элофссон

3
@Joakim: без потерь == максимальное качество, поэтому форматы без потерь оптимизированы для качества по определению .
Квик-кихот

2
это моя точка зрения, по определению, поэтому нет оптимизации. если определение - максимальное качество, то оптимизировать нечего
Йоаким Элофссон,

0

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.