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.
sumber
Jawaban:
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.
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
Ukuran PNG: 629 B
Ukuran JPEG: 1,7 kB
PNG dibuat dari JPEG: 6.2 kB
sumber
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.
sumber
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 .
sumber
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.
sumber