Memahami konversi dan (de) kompresi audio lossless

12

Saya punya beberapa pertanyaan tentang audio lossless. Saya sedang mempertimbangkan merobek seluruh koleksi musik saya ke .flac lossless, tetapi saya ingin memahami beberapa hal tentangnya terlebih dahulu.

Jika saya memiliki file yang .flac, dan saya ingin membuatnya menjadi, katakanlah, .wav, bagaimana saya bisa melakukan ini untuk tidak kehilangan kualitas? Jika saya mendekompresnya, saya tahu bahwa saya tidak akan kehilangan kualitas. Apakah mengkonversi .flac ke .wav sama dengan mendekompresi?

Apakah ini juga berlaku untuk format .ape? Saya memiliki beberapa rekaman domain publik yang telah saya unduh di .ape, tetapi saya ingin membuatnya .flac. Apakah .ape ke .flac dimungkinkan tanpa menggunakan .wav sebagai perantara. Saya ingin memastikan bahwa tidak sedikit pun hilang dengan cara apa pun.

Juga, jika ada panduan yang menjelaskan dunia lossless tanpa cacat, adakah yang mau berbagi tautan? :)

Ryan McClure
sumber

Jawaban:

14

Pertama:

Memahami perbedaan antara pengodean dan format wadah . http://en.wikipedia.org/wiki/Digital_container_format

Format wadah adalah format data yang "mengenkapsulasi" data yang disandikan lainnya. Ini sering berisi "meta-informasi" tentang data yang disandikan, atau memiliki cara untuk menyimpan beberapa aliran terpisah dari data yang disandikan, atau sesuatu seperti itu.

Pengkodean, yang diproduksi oleh codec, adalah "daging" sebenarnya dari aliran data.

Contoh paling umum yang dapat saya pikirkan adalah format "Ogg / Vorbis". Ogg adalah format wadah, dan Vorbis adalah penyandiannya. Jadi Anda memiliki file berformat Ogg dan di dalamnya ada ember kecil ini yang berisi data yang disandikan. Di dalam setiap ember adalah aliran data yang disandikan Vorbis dan tidak ada yang lain. Di ember mungkin dicap nama artis dan judul lagu, misalnya.

Jadi kembali ke teknologi:

  1. Jika Anda sudah memiliki musik dalam format lossy, seperti mp3 atau ogg / vorbis, mengonversinya menjadi format lossless hanya akan memakan ruang disk (banyak), dan TIDAK AKAN - benar-benar TIDAK AKAN - meningkatkan kualitas audio apa pun. Anda tidak dapat membuat kesetiaan begitu sudah hilang. Kecuali Anda sedang menulis antarmuka GUI dalam Visual Basic di beberapa acara TV terkenal bernama CSI, tapi itu fantasi, bukan kenyataan.

  2. Jika Anda memiliki musik dalam format lossless lainnya dan Anda ingin mengubahnya menjadi FLAC, Anda dapat melakukannya.

  3. Hati-hati dengan melemparkan istilah "WAV". Wav tidak HARUS menjadi lossless; sebenarnya, WAV hanyalah sebuah wadah untuk berbagai format yang memungkinkan. Ini semacam AVI dalam pengertian itu. Anda BISA memiliki WAV lossless jika itu hanya data PCM mentah, tetapi Anda juga dapat menanamkan data MPEG-1 Layer III (lossy) ke dalam file WAV.

  4. Dimungkinkan untuk kehilangan data saat mengonversi dari satu format lossless ke format lain, jika Anda mengurangi keakuratan data. Misalnya, jika Anda mengubah aliran data PCM 16-bit yang tidak ditandatangani pada 48000 Hz menjadi aliran data PCM 8-bit pada 44100 Hz, Anda kehilangan kesetiaan dalam dua cara: sampel digabung dari 48000 menjadi hanya 44100 per kedua (mengakibatkan hilangnya data), dan data harus dicampur-campur agar sesuai dengan informasi menjadi hanya 8 bit, bukan 16 per sampel, yang secara dramatis akan merusak kualitas.

Setiap aliran audio digital, bahkan yang dikodekan oleh pengkodean kompresi (lossy atau lossless), memiliki "Sample Format Properties" berikut, yang merupakan elemen penting yang menggambarkan sifat-sifat aliran:

  1. Sampel bit lebar dan kedalaman bit, yaitu 8 bit, 16 bit, dll. Lebar dan kedalaman bit sedikit berbeda, dan ada juga sedikit-endian / big-endian (yang tidak mempengaruhi kualitas) dan ditandatangani atau tidak ditandatangani (yang juga tidak memengaruhi kualitas, tetapi memengaruhi cara pembuat enkode / dekoder menangani data). Poin kunci yang perlu diingat adalah "lebih banyak bit lebih baik". Jadi 32-bit lebih baik dari 16-bit, dll.

  2. Frekuensi, juga dikenal sebagai laju sampling. Lebih banyak lebih baik karena Anda memiliki lebih banyak "sampel" audio yang diputar ulang per detik. Bayangkan dengan cepat menyikat jari Anda di atas setumpuk kartu dan menonton kartu berlalu dengan kabur - itulah bagaimana audio digital pada dasarnya terjadi. Setiap sampel adalah kartu, dan jika Anda memiliki lebih banyak kartu terbang per detik, audio lebih mulus. Seperti, Anda akan benar-benar memperhatikan jika Anda hanya membalik 5 kartu per detik, tetapi semuanya akan kabur bersama jika Anda membalik ribuan kartu per detik. Jadi, lebih banyak lebih baik, karena lebih alami dan lebih dekat dengan kenyataan, yang analog dan habis dibagi (well, turun ke unit Planck tapi itu masih bisa diperdebatkan dan di luar topik).

"Lossless" hanya berarti bahwa jika Anda menggunakan format sampel yang sama atau lebih baik dalam output seperti yang Anda gunakan dalam input, Anda tidak akan kehilangan data apa pun.

Jadi, jika Anda beralih dari format sampel 16 bit ke 32 bit, Anda tidak kehilangan data. Tetapi jika Anda beralih dari 32 bit ke 16 bit, Anda kehilangan data.

Jadi jawaban untuk pertanyaan Anda apakah menggunakan FLAC masuk akal tergantung pada data sumber: Jika Anda memiliki file WAV 64-bit yang awalnya direkam pada format sampel itu, dengan 192000 Hz (alias 192KHz), dan Anda mengonversinya menjadi " standar "format sampel FLAC 16-bit dan 44,1 KHz, Anda akan kehilangan TON data. Tetapi jika file WAV Anda adalah 8-bit dengan hanya 22100 sampel per detik dan Anda mengubahnya menjadi FLAC 16-bit dengan 44100 sampel per detik, Anda tidak akan kehilangan data. Dan Anda bahkan mungkin akhirnya meningkatkan ukuran file, tergantung pada apakah kompresi lossless atau format sampel yang lebih kecil menang.

Format sampel akan memengaruhi seberapa banyak ruang yang digunakan file, sehingga bit "lebih besar" dan laju pengambilan sampel "lebih cepat" akan menempati lebih banyak ruang.

Sejauh menyangkut masalah praktis dan telinga manusia: Anda tidak akan benar-benar memperhatikan jika Anda mengonversi dokumen asli dengan ketelitian tinggi ke FLAC 16.1KHz 16 bit. Tetapi Anda juga tidak akan melihat peningkatan jika Anda mengonversi MP3 ke FLAC. Jadi Anda perlu mengevaluasi format sampel apa sumber data Anda sebelum Anda memutuskan apa yang harus dilakukan.

Sekarang saya telah memberikan Anda semua informasi ini, inilah jawaban langsung dan tidak ada penjelasan saya untuk pertanyaan Anda:

Saya punya beberapa pertanyaan tentang audio lossless. Saya sedang mempertimbangkan merobek seluruh koleksi musik saya ke .flac lossless, tetapi saya ingin memahami beberapa hal tentangnya terlebih dahulu.

Jika koleksi musik Anda ada di CD dan Anda ingin menyalinnya ke FLAC, itu sangat cocok menurut saya. Audio kualitas CD akan berada pada 44,1 KHz dan pada 16 bit per sampel. Ini cocok persis dengan pengaturan default FLAC (setidaknya, default di encoders yang saya gunakan). Karenanya Anda tidak akan kehilangan data apa pun dan secara matematis akan identik dengan data input saat diterjemahkan.

Jika saya memiliki file yang .flac, dan saya ingin membuatnya menjadi, katakanlah, .wav, bagaimana saya bisa melakukan ini untuk tidak kehilangan kualitas? Jika saya mendekompresnya, saya tahu bahwa saya tidak akan kehilangan kualitas. Apakah mengkonversi .flac ke .wav sama dengan mendekompresi?

Anda dapat mengonversinya menjadi file .wav dengan format sampel yang sama atau lebih luas daripada data input dan Anda tidak akan kehilangan kualitas.

Ketika pemutar media memutar audio dalam file flac Anda, pada dasarnya decoding data flac ke format PCM sebelum mengirim data PCM ke kartu suara. Ini akan mendekompresnya ke data yang sama persis yang masuk; jadi jika 16-bit 44.1 KHz data PCM masuk, itu yang akan keluar, dan pergi ke speaker Anda.

Satu-satunya perbedaan antara aktivitas ini dan mengonversi audio ke file WAV adalah bahwa, ketika Anda mengubahnya menjadi file WAV, itu harus membuat wadah WAV dengan bit pengisi yang sesuai, dll. Dan itu juga memungkinkan Anda memilih format sampel dari file WAV. Tetapi dengan asumsi bahwa format sampel adalah sama, maka satu-satunya perbedaan antara file FLAC dan WAV Anda akan menjadi ukuran file: file WAV akan jauh lebih besar.

Apakah ini juga berlaku untuk format .ape? Saya memiliki beberapa rekaman domain publik yang telah saya unduh di .ape, tetapi saya ingin membuatnya .flac. Apakah .ape ke .flac dimungkinkan tanpa menggunakan .wav sebagai perantara. Saya ingin memastikan bahwa tidak sedikit pun hilang dengan cara apa pun.

Tidak, ini tidak mungkin dilakukan tanpa menggunakan beberapa format PCM sebagai perantara. Tapi ya, itu adalah mungkin untuk melakukannya tanpa menggunakan file WAV. Perhatikan perbedaannya. Datastream PCM. File WAV. Jika perbedaannya tidak jelas bagi Anda, baca kembali awal posting saya. Jika Anda ingin memastikan bahwa "tidak sedikitpun" hilang, maka Anda perlu memeriksa file APE Anda dan memahami format sampel apa yang ada di dalamnya, dan pastikan bahwa encoder FLAC Anda diatur untuk menyandikan untuk pengaturan yang sama.

Secara internal, setiap program konversi audio akan menjadi decoding dari format sumber ke semacam format sampel PCM lossless, dan kemudian mengambil sampel-sampel PCM dan pengkodean ulang mereka dalam format tujuan.

Juga, jika ada panduan yang menjelaskan dunia lossless tanpa cacat, adakah yang mau berbagi tautan? :)

Menurut pendapat saya, cara terbaik untuk belajar adalah melakukan. Jika Anda meluangkan waktu untuk mempelajari kerangka kerja Gstreamer, cara menggunakannya, dan arti dari berbagai merdu dari format sampel, dan bagaimana membangun saluran pipa, Anda akan keluar dengan pemahaman yang sangat kuat tentang audio digital. Coba lihat. http://gstreamer.freedesktop.org/ Anda juga dapat mengambil SDK Gstreamer dari http://code.entropywave.com/gstreamer-sdk/ (Windows didukung) dan bereksperimen dengan gst-launch-0.10 tanpa harus mengkompilasi apa pun dari sumber.

Beberapa hal yang mengungkapkan:

gst-inspect-0.10 vorbisenc gst-inspect-0.10 vorbisdec gst-inspect-0.10 audioconvert gst-inspect-0.10 audioresample

Kemudian pelajari tentang topi, membangun saluran pipa, dll dan Anda akan terus berjalan.

* Catatan: Saya sadar saya tidak menjelaskan apa itu PCM. Wikipedia melakukan pekerjaan yang lebih baik daripada saya: http://en.wikipedia.org/wiki/Pulse-code_modulation

allquixotic
sumber
Wow, ini sungguh luar biasa betapa jelas dan baiknya Anda menjelaskan ini semua. Tidak pernah memikirkan setengah dari hal-hal ini sebelumnya, makanan yang baik untuk dipikirkan. Terima kasih atas jawabannya - dan waktu yang Anda gunakan untuk mengetik ini juga! +1!
Ryan McClure
Anda harus selalu bertujuan untuk menjaga bitrate dan laju sampel tetap utuh, karena lossless idealnya menyiratkan data PCM yang identik. Upsampling ke apa pun selain dua kali lipat laju sampel tidak akan pernah lossless (Anda tidak dapat menambahkan nol secara merata), dan membuang ruang disk. Dalam hal apa pun, itu seharusnya tidak menjadi masalah dengan FLAC karena dapat menangani resolusi bit PCM dari 4 hingga 32 bit per sampel, laju pengambilan sampel dari 1 Hz hingga 655.350 Hz dalam peningkatan 1 Hz, dan sejumlah saluran dari 1 hingga 8 ( en.wikipedia.org/wiki/FLAC#Design )
mtone
WAV selalu mengandung PCM. Itu mungkin bukan CD berkualitas PCM (tetapi secara praktis, Anda umumnya dapat menganggap ini karena hampir selalu terjadi), tetapi itu akan menjadi PCM, bukan sesuatu yang lain seperti mpeg 3 layer 2.
psusi
@psusi: Maaf, tetapi Anda salah. Silakan baca artikel wikipedia di WAV: en.wikipedia.org/wiki/WAV . Jika Anda mau, saya dapat memposting tautan ke file WAV yang berisi audio MP3. Yang perlu diingat tentang file WAV adalah bahwa mereka hanya file RIFF, dan file RIFF adalah revisi yang cukup primitif dari format wadah media. Tetapi setidaknya dalam tujuan fundamentalnya, itu tidak jauh berbeda dari Ogg atau Matroska, selain hanya mendukung audio dan bukan video. Sunting: Saya tidak harus membuat file wav / mp3; yay! Bahkan itu ditautkan dari Wikipedia! nch.com.au/acm/8kmp316.wav
allquixotic
Ada beberapa ketidakakuratan dalam jawaban ini. "Frekuensi, juga dikenal sebagai laju sampling. Lebih banyak lebih baik karena Anda memiliki lebih banyak" sampel "audio yang diputar per detik." - Ini bukan cara kerja tingkat sampel. Jika kedalaman bit tidak terlibat, data dengan sample rate 48khz dapat mewakili sinyal hingga 24khz lossless, dan menambahkan lebih banyak sampel tidak akan mengubah itu. Lebih banyak sampel hanya memengaruhi frekuensi yang dapat Anda wakili. Mengubah dari 44.1khz ke 48khz juga tidak sepenuhnya berbicara lossless, bahkan jika kesalahan yang diperkenalkan sangat kecil.
cooky451
1

Saya harus tidak setuju dengan pernyataan allquixotic.

Jika Anda sudah memiliki musik dalam format lossy, seperti mp3 atau ogg / vorbis, mengonversinya menjadi format lossless hanya akan memakan ruang disk (banyak), dan TIDAK AKAN - benar-benar TIDAK AKAN - meningkatkan kualitas audio apa pun. Anda tidak dapat membuat kesetiaan begitu sudah hilang. Kecuali Anda sedang menulis antarmuka GUI dalam Visual Basic di beberapa acara TV terkenal bernama CSI, tapi itu fantasi, bukan kenyataan.

Anda kekurangan pengetahuan teknik audio dan memberi makan orang-orang dengan pernyataan yang salah.

  1. Ogg dan Vorbis keduanya memiliki wadah yang menyimpan informasi data gelombang asli, dan dapat dikonversi menjadi lossless dengan data itu. Silakan lakukan google secukupnya.

  2. bahkan MP3 berkualitas rendah untuk konversi tanpa kerugian membuat BANYAK peningkatan suara, itu tidak sesempurna aslinya, tetapi dapat diperbaiki dengan dinamika dan dithering dengan mudah. https://www.izotope.com/en/products/master-and-deliver/ozone.html/OzoneDitheringGuide.pdf

Audio bukan data 10100110101001 sehingga ukuran file yang lebih kecil tidak berarti kualitasnya hilang. Anda mungkin memiliki pengalaman dengan 128kbps hingga 320kbps dekade lalu dan menebak 128kbps menjadi lossless adalah hal yang mustahil. Silakan uji sendiri tugas sederhana ini dan sadari.

Seandex
sumber