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

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

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

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

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

13
задан 10.11.2014, 11:32

4 ответа

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

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

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

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

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

Исходный размер BMP: 29 КБ

Blue dots in PNG form

Размер PNG: 629 B

Blue dots in JPEG form with jaggies

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

Blue dots with jaggies re-encoded to PNG

PNG создал из JPEG: 6,2 КБ

31
ответ дан 07.12.2019, 11:28
  • 1
    Но конечно после того как файл преобразовывается в JPG, данные потеряны и не могут быть восстановлены путем преобразования в PNG. Если будет больше данных в FLAC/PNG, то большая часть его будет фиктивной. – pavium 30.10.2009, 08:38
  • 2
    Да. Значимые данные потеряны, и ошибочные данные создаются. – endolith 30.10.2009, 18:34
  • 3
    Это ясно проиллюстрировано в схемах endolith в качестве примера. – hplbsh 30.10.2009, 19:17
  • 4
    Это - удивительно полный ответ. Хорошее задание! – cowgod 30.10.2009, 22:47

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

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

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

2
ответ дан 07.12.2019, 11:28

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

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

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

0
ответ дан 07.12.2019, 11:28
  • 1
    FLAC (и PNG) без потерь, так говорит, что они оптимизированы по качеству, не имеют смысла. – Joakim Elofsson 30.10.2009, 19:01
  • 2
    @Joakim: без потерь == макс. качество, таким образом, форматы без потерь оптимизированы по качеству по определению. – quack quixote 30.10.2009, 21:43
  • 3
    это - моя точка, по определению таким образом, нет никакой оптимизации. если определением является макс. качество, то нет ничего для оптимизации – Joakim Elofsson 31.10.2009, 02:34

mp3 reqiures декодер, чтобы быть играемым, результатом декодера является приближение исходной дорожки (обычно с CD), таким образом, декодер добавляет данные для создания этого играемым (и это не данные ерунды). Получающееся приближение получило ту же скорость передачи как исходная дорожка. Не декодируя mp3 информация не имеет никакого смысла, так не может быть преобразован ни во что больше (если не очень похожий encodeing, как stereo-mp3 к 2X mono-mp3). И FLAC и mp3 даже не близко к подобному. Когда decodig FLAC, результатом не является приближение orignal данных, закодированных в FLAC, но это точно то же.

0
ответ дан 07.12.2019, 11:28

Теги

Похожие вопросы