Чому FLAC, закодований з декодованого MP3, більший, ніж MP3?


13

Якщо точніше, ніж у заголовку, припустимо, у мене є MP3-файл, що має 320 кбіт / с. Якщо я декомпресую його, то, логічно, всі дані, за винятком приблизно 320 кілобітів на кожну секунду аудіо, повинні бути надмірними даними, здатними стискатись. Отже, коли я кодую декомпресований файл до FLAC або будь-якого іншого кодека без втрат, чому він настільки більший?

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

EDIT: Дозвольте мені уточнити відповідне питання та обґрунтування його. Припустимо, у мене є 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 буде більше даних, значна частина цього буде фіктивним.
pavium

1
Так. Змістовні дані втрачаються, і створюються помилкові дані.
ендоліт

1
Це чітко проілюстровано на прикладних схемах ендоліту.
hplbsh

1
Це надзвичайно ґрунтовна відповідь. Хороша робота!
cowgod

1
Ти правий. Я не знаю, що я думав.
Кевін Панько

2

Розшифровуючи MP3, незалежно від бітрейта, ви отримуєте стандартний 16-бітний 1411 кбіт / 44100 Гц 16-бітовий (або як би не було джерело) аудіо PCM, який має всі помітні та непомітні ефекти процесу кодування втрат, цей формат необхідний для відтворення та кодування / перекодування, будь-який файл будь-якого кодека декомпресується під час відтворення на комп'ютері, MP3-програвачі тощо.

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

Файл FLAC, створений з MP3, буде звучати точно так само, як MP3, файл FLAC, зроблений із композиції CD, буде звучати точно так само, як і компакт-диск.


0

Щоб відповісти на другу частину, якщо ви перетворюєте назад в WAV з MP3, а потім вибираєте кодер без втрат, вам слід мати файл однакової якості, коли ви закінчите.

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

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


FLAC (і PNG) без втрат, тому говорити, що оптимізовані якості не мають сенсу.
Йоаким Елофссон

3
@Joakim: lossless == макс. Якість, тому формати без втрат оптимізовані для якості за визначенням .
шарлатаний кіхот

2
це моя думка, за визначенням, тому оптимізації немає. якщо визначення є максимальною якістю, то оптимізувати нічого не можна
Йоаким Елофссон,

0

mp3 вимагає відтворення декодера для відтворення, результатом декодера є наближення початкової доріжки (як правило, з компакт-диска), тому декодер додає дані, щоб зробити його відтворюваним (і це не дурничі дані). Отримане наближення отримало такий же бітрейт, як і вихідний трек. Без розшифровки mp3 інформація не має сенсу, тому її не можна перетворити ні на що інше (хіба що дуже схоже кодування, як стерео-mp3 в 2X моно-mp3). І FLAC і mp3 навіть не близькі до подібних. При розшифровці FLAC результат не є наближенням вихідних даних, закодованих у FLAC, але він точно такий же.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.