Mengapa FLAC dikodekan dari MP3 yang diterjemahkan lebih besar dari MP3?

13

Untuk lebih tepatnya daripada di judul, misalkan saya memiliki file MP3 yaitu 320 kbps. Jika saya mendekompresnya, maka secara logis, semua data kecuali sekitar 320 kilobit dari setiap detik audio harus berupa data yang berlebihan, yang dapat dikompres. Jadi, ketika saya menyandikan file dekompresi ke FLAC, atau codec lossless lainnya, mengapa itu jauh lebih besar?

Pada catatan yang terkait, apakah secara teoritis dimungkinkan untuk memulihkan audio mp3 sumber tanpa kehilangan dari wav yang terkompresi? (Saya tahu mp3 itu sendiri lossy. Saya bertanya apakah mungkin untuk menyandikan ulang tanpa kehilangan lebih lanjut .)

EDIT: Izinkan saya mengklarifikasi pertanyaan terkait, dan alasan di baliknya. Misalkan saya memiliki wav yang didekompresi dari file MP3 (dan anggap saya tidak memiliki mp3 itu sendiri karena suatu alasan). Jika saya tidak ingin kehilangan kualitas lagi, saya dapat menyandikannya kembali dengan FLAC atau encoder lossless lainnya dan mendapatkan file yang lebih besar hanya untuk menjaga kualitas yang sama . Atau, saya dapat menyandikan ulang ke mp3 lagi dan mendapatkan ukuran yang sama seperti aslinya tetapi kehilangan lebih banyak data. Jelas, tidak satu pun dari kasus ini yang ideal. Saya dapat memiliki ukuran asli atau kualitas asli, tetapi tidak keduanya (maksud saya kualitas mp3 asli, bukan sumber lossless asli). Pertanyaan saya adalah: Bisakah kita mendapatkan keduanya? Apakah secara teori dimungkinkan untuk memulihkan data terkompresi yang hilang dari data yang terkompresi yang hilang, tanpa kehilangan lebih banyak lagi?

Jika mungkin, saya bisa membayangkan algoritma kompresi lossless yang kompres audio dengan FLAC. Kemudian ia juga memindai audio untuk mencari tanda-tanda kompresi lossy sebelumnya, dan jika terdeteksi, kompres kembali lossless ke file lossy asli. Kemudian ia menyimpan file mana yang lebih kecil.

Ryan C. Thompson
sumber
inilah panduan favorit saya untuk menyalin dan menyandikan audio. menikmati, itu dibaca baik: mp3.radified.com
2
Dekoder tidak hanya mengisi 320kb hingga 1411kb dengan bit yang tidak berarti, bitrate dari file PCM diberikan oleh nilai bit per sampel, jumlah saluran dan laju sampling. Untuk audio CD standar, ini adalah (2 saluran) * (laju sampel 44.1KHz) * (16 bit per sampel) = 1411kbps.
Skelly
Sederhana, MP3 dikompresi, FLAC tidak terkompresi. Saat Anda mengonversi, itu akan mengompresi data MP3.
Moab
2
Itu salah. FLAC adalah format kompresi audio.
Ryan C. Thompson

Jawaban:

31

Alasan FLAC lebih besar dari MP3 dari data yang sama adalah karena mereka menyandikan berbeda. :) MP3 hanya menyandikan informasi persepsi, sementara FLAC menyimpan setiap setitik data, hanya dalam format yang lebih ringkas.

  • Mengubah WAV ke FLAC sama seperti mengubah BMP menjadi PNG.
    • Pixel yang persis sama, tetapi dikompresi tanpa kehilangan seperti file ZIP ke ukuran yang lebih kecil.
  • Mengubah WAV ke MP3 sama seperti mengubah BMP menjadi JPEG.
    • Alih-alih menyimpan piksel yang tepat, itu benar-benar menyimpan instruksi untuk menghasilkan kotak dengan riak warna yang terlihat seperti aslinya.

Demikian pula, MP3 hanya menyimpan instruksi untuk menghasilkan riak yang, ketika ditambahkan bersama, terdengar seperti aslinya. Tetapi perbedaan antara sinyal sebenarnya dan sinyal yang dihasilkan (sinyal kesalahan) terdiri dari artefak berisik acak, seperti JPEG jaggies . Ketika Anda kemudian menyimpan ini dalam format perfeksionis seperti FLAC, ia perlu menyimpan semua jaggies itu, dan noise acak lebih sulit untuk dikompresi tanpa kehilangan, sehingga meningkatkan ukuran file. (Kebisingan acak yang sebenarnya tidak bisa dimampatkan. Saat Anda mengompres file tanpa kehilangan, Anda menghilangkan pola berulang yang berlebihan dan membuatnya lebih seperti suara acak.)

Saya yakin jika Anda mengkonversi JPEG ke PNG Anda akan melihat jenis peningkatan yang sama seperti yang Anda lihat ketika mengkonversi MP3 ke FLAC, karena codec lossless perfeksionis perlu mengingat setiap jaggy dan artefak kecil yang tidak ada dalam bmp asli.

Analogi ini tidak sempurna, karena audio lebih seperti foto daripada diagram garis-seni, tetapi membantu menjelaskannya:

Ukuran BMP asli: 29 kB

Titik biru dalam bentuk PNG

Ukuran PNG: 629 B

Titik-titik biru dalam bentuk JPEG dengan jaggies

Ukuran JPEG: 1,7 kB

Titik-titik biru dengan jaggies disandikan ulang ke PNG

PNG dibuat dari JPEG: 6.2 kB

endolit
sumber
3
Tapi tentu saja begitu file dikonversi ke JPG, data hilang, dan tidak dapat dipulihkan dengan mengonversi ke PNG. Jika ada lebih banyak data di FLAC / PNG, sebagian besar akan menjadi fiktif.
pavium
1
Iya. Data yang berarti hilang, dan data yang salah dibuat.
endolith
1
Itu diilustrasikan dengan jelas dalam contoh diagram endolith.
hplbsh
1
Ini adalah jawaban yang sangat teliti. Pekerjaan yang baik!
cowgod
1
Kamu benar. Saya tidak tahu apa yang saya pikirkan.
Kevin Panko
2

Ketika Anda men-decode MP3, apa pun bitratenya, Anda mendapatkan standar 1411kbps / 44100Hz 16bit (atau apa pun sumbernya) audio PCM yang memiliki semua efek proses encode lossy yang terlihat dan tidak terlihat, format ini diperlukan untuk pemutaran dan pengodean / pengodean ulang, file apa pun dari codec apa pun sedang didekompresi saat Anda memutarnya di komputer, pemutar MP3, dll.

Encoder FLAC tidak peduli jika audio yang dikompresinya berasal dari MP3 yang didekodekan atau CD baru, itu hanya akan mengurangi ukuran file sumber tanpa ada perubahan pada data audio, membuat pemulihan penuh dari sumber mungkin, sebuah proses lossless.

File FLAC yang dibuat dari MP3 akan terdengar persis seperti MP3, file FLAC yang dibuat dari trek CD akan terdengar persis seperti CD.

bau
sumber
0

Untuk menjawab bagian kedua, jika Anda mengonversi kembali ke WAV dari MP3, lalu pilih pembuat enkode lossless, Anda harus memiliki file berkualitas identik setelah selesai.

Mengenai mengapa FLAC lebih besar daripada MP3, Anda mengambil salah satu format yang lebih dikompresi, mendekompresinya, lalu mengompresnya kembali dalam alat kompresi yang kurang efisien (walaupun dengan kualitas pemutaran yang lebih tinggi).

Ini seperti bertanya mengapa mengonversi JPG ke PNG membuatnya lebih besar - Anda [sebagian] mendekompresi file, lalu mengompres ulang dengan cara lossless. FLAC, seperti PNG, tidak dioptimalkan untuk ruang , tetapi untuk kualitas .

warren
sumber
FLAC (dan PNG) adalah lossless, jadi mengatakan bahwa mereka dioptimalkan untuk kualitas tidak masuk akal.
Joakim Elofsson
3
@ Joakim: lossless == kualitas max, jadi format lossless dioptimalkan untuk kualitas menurut definisi .
Quack quixote
2
itu maksud saya, menurut definisi sehingga tidak ada optimasi. jika definisi adalah kualitas max, maka tidak ada yang mengoptimalkan
Joakim Elofsson
0

mp3 me-reqiures decoder agar dapat dimainkan, hasil decoder adalah perkiraan trek asli (biasanya dari CD), sehingga decoder menambahkan data untuk membuatnya dapat dimainkan (dan ini bukan data yang tidak masuk akal). Perkiraan yang dihasilkan mendapat bitrate yang sama dengan trek aslinya. Tanpa mendekodekan mp3 informasinya tidak masuk akal, jadi tidak dapat dikonversi ke hal lain (kecuali penyandian yang sangat mirip, seperti stereo-mp3 ke 2X mono-mp3). Dan FLAC dan mp3 bahkan tidak mirip. Saat mendekodigasikan FLAC, hasilnya bukanlah perkiraan data orignal yang dikodekan ke dalam FLAC, tetapi hasilnya persis sama.

Joakim Elofsson
sumber