Kayıpsız sesin dönüştürülmesini ve (de) sıkıştırılmasını anlama


12

Kayıpsız ses ile ilgili birkaç sorum var. Tüm müzik koleksiyonumu kayıpsız .flac'a kopyalamayı düşünüyorum, ama önce bunun hakkında birkaç şey anlamak istiyorum.

.Flac olan bir dosyam varsa ve .wav dosyası haline getirmek istiyorsanız, bunu kalite kaybı yaşamamak için nasıl yapabilirim? Sıkıştırırsam, kaliteyi kaybetmeyeceğimi biliyorum. .Flac dosyasının .wav biçimine dönüştürülmesi, sıkıştırmanın açılmasıyla aynı mıdır?

Bu .ape formatı için de geçerli mi? .Ape'de indirdiğim birkaç kamuya açık alan kaydım var, ancak .flac yapmak istiyorum. .Wav'ı orta bir adam olarak kullanmadan .flac'a mümkün olur. Biraz bile kaybolmamasını sağlamak istiyorum.

Ayrıca, kayıpsız dünyasını kusursuz bir şekilde açıklayan herhangi bir rehber varsa, bir bağlantı paylaşmaya istekli olur mu? :)

Yanıtlar:


14

İlk:

Kodlama ve kapsayıcı biçimi arasındaki farkı anlayın . http://en.wikipedia.org/wiki/Digital_container_format

Kapsayıcı biçimi, diğer kodlanmış verileri "kapsülleyen" bir veri biçimidir. Genellikle kodlanmış verilerle ilgili "meta bilgi" içerir veya kodlanmış verilerin birden fazla ayrı akışını veya bunun gibi bir şeyi depolamanın bir yolu vardır.

Bir kodek tarafından üretilen bir kodlama, veri akışının gerçek "eti" dir.

Düşünebileceğim en yaygın örnek "Ogg / Vorbis" biçimidir. Ogg kap biçimidir ve Vorbis kodlamadır. Ogg biçimli bir dosyanız var ve içinde kodlanmış veriler içeren bu küçük kovalar var. Her bölümün içinde Vorbis kodlu bir veri akışı vardır ve başka bir şey yoktur. Grupta örneğin sanatçının adı ve şarkı adı damgalı olabilir.

Yani teknolojiye geri dönelim:

  1. Zaten mp3 veya ogg / vorbis gibi kayıplı bir formatta müziğiniz varsa, kayıpsız bir formata dönüştürmek sadece (çok) disk alanını tüketir ve KALMAZ - kesinlikle OLMAYACAKTIR - ses ne olursa olsun. Zaten kaybolduktan sonra sadakat yaratamazsınız. CSI adlı bazı hit TV şovlarında Visual Basic'te bir GUI arayüzü yazmıyorsanız, ama bu fantezi değil, gerçeklik.

  2. Başka kayıpsız formatlarda müziğiniz varsa ve bunu FLAC'e dönüştürmek istiyorsanız, bunu yapabilirsiniz.

  3. "WAV" terimi etrafında atma konusunda dikkatli olun. Wav'in kayıpsız olması gerekmez; aslında, WAV sadece çeşitli formatlar için bir kaptır. Bu anlamda AVI gibi. Yalnızca ham PCM verileriyse kayıpsız bir WAV'a sahip olabilirsiniz, ancak MPEG-1 Katman III verilerini (kayıplı) bir WAV dosyasına gömebilirsiniz.

  4. Verilerin aslına uygunluğunu azaltırsanız, kayıpsız bir formattan diğerine dönüştürürken veri kaybetmek mümkündür. Örneğin, 48000 Hz'de işaretsiz bir 16 bit PCM veri akışını 44100 Hz'de 8 bit PCM veri akışına dönüştürürseniz, iki şekilde aslına uygunluğunu kaybedersiniz: örnekler 48000'den yalnızca 44100'e birleştiriliyor (verilerin kaybıyla sonuçlanır) ve verilerin, numune başına 16 yerine yalnızca 8 bit içerisine sığması için verilerin karıştırılması gerekir, bu da kaliteye önemli ölçüde zarar verir.

Sıkıştırma (kayıplı veya kayıpsız) bir kodlayıcı tarafından kodlananlar bile her dijital ses akışı, akışın özelliklerini tanımlayan temel öğeler olan aşağıdaki "Örnek Format Özellikleri" ne sahiptir:

  1. Örnek bit genişliği ve bit derinliği, yani 8 bit, 16 bit, vb. Bit genişliği ve derinliği çok farklıdır ve ayrıca küçük endian / big-endian (kaliteyi etkilemez) ve imzalı veya imzasız (ayrıca kaliteyi etkiler, ancak kodlayıcının / kod çözücünün verilerle nasıl başa çıktığını etkiler). Hatırlanması gereken kilit nokta, "daha fazla bit daha iyidir" dir. 32-bit, 16-bit'den daha iyidir, vb.

  2. Frekans, örnekleme hızı olarak da bilinir. Daha fazlası daha iyidir, çünkü saniyede çalınan daha fazla "ses" örneğine sahipsiniz. Parmağınızı bir kart destesinin üzerinde hızlı bir şekilde fırçaladığınızı ve kartların bulanık bir şekilde geçtiğini hayal edin - dijital ses aslında böyle olur. Her örnek bir karttır ve saniyede daha fazla uçan kartınız varsa, ses daha kesintisiz olur. Sanki, saniyede sadece 5 kart çevirdiyseniz gerçekten fark edersiniz, ancak saniyede binlerce kart çevirirseniz hepsi bulanıklaşır. Daha fazlası daha iyidir, çünkü daha doğal ve gerçekliğe daha yakın, ki bu analog ve sonsuz bölünebilir (Planck birimlerine kadar ama tartışmalı ve konu dışı).

"Kayıpsız", çıktıda kullandığınızla aynı veya daha iyi örnek biçimini kullanırsanız, veri kaybetmeyeceğiniz anlamına gelir.

Dolayısıyla, 16 bit ila 32 bit örnek formatına giderseniz veri kaybetmezsiniz. Ancak 32 bit'ten 16 bit'e giderseniz veri kaybedersiniz.

Bu nedenle, FLAC kullanmanın mantıklı olup olmadığı sorunuzun cevabı kaynak verilere bağlıdır: 192000 Hz (aka 192KHz) ile orijinal olarak o örnek biçiminde kaydedilmiş 64 bit WAV dosyalarınız varsa ve bunları " standart "FLAC örnek formatı 16-bit ve 44.1 KHz, bir TON veri kaybedeceksiniz. Ancak WAV dosyanız saniyede yalnızca 22100 örnekle 8 bitse ve saniyede 44100 örnekle 16 bit FLAC'ye dönüştürürseniz, veri kaybetmezsiniz. Kayıpsız sıkıştırmanın veya daha küçük örnek formatının kazanıp kazanmadığına bağlı olarak dosya boyutunu da artırabilirsiniz.

Örnek format, dosyanın ne kadar yer kapladığını etkileyeceğinden, "daha büyük" bitler ve "daha hızlı" örnekleme oranları daha fazla yer kaplar.

Pratik kaygılar ve insan kulağına gelince: gerçekten yüksek kaliteli orijinalleri 16 bit 44.1KHz FLAC'a dönüştürdüğünüzde gerçekten fark etmeyeceksiniz. Ancak, MP3'ü FLAC'ye dönüştürürseniz de bir gelişme fark etmezsiniz. Bu nedenle, ne yapacağınıza karar vermeden önce kaynak verilerinizin hangi örnek formatta olduğunu değerlendirmeniz gerekir.

Şimdi size tüm bu bilgileri sağladığım için, işte sorularınıza doğrudan ve boş, sıfır açıklama cevaplarım:

Kayıpsız ses ile ilgili birkaç sorum var. Tüm müzik koleksiyonumu kayıpsız .flac'a kopyalamayı düşünüyorum, ama önce bunun hakkında birkaç şey anlamak istiyorum.

Müzik koleksiyonunuz CD'lerde ise ve FLAC'a kopyalamak istiyorsanız, bu bence çok uygun. CD kalitesinde ses, 44.1 KHz ve örnek başına 16 bit olacaktır. Bu, FLAC'ın varsayılan ayarlarıyla tam olarak eşleşir (en azından kullandığım kodlayıcılardaki varsayılanlar). Bu nedenle herhangi bir veri kaybetmezsiniz ve kod çözüldüğünde veri girişiyle matematiksel olarak aynı olur.

.Flac olan bir dosyam varsa ve .wav dosyası haline getirmek istiyorsanız, bunu kalite kaybı yaşamamak için nasıl yapabilirim? Sıkıştırırsam, kaliteyi kaybetmeyeceğimi biliyorum. .Flac dosyasının .wav biçimine dönüştürülmesi, sıkıştırmanın açılmasıyla aynı mıdır?

Girdi verileriyle aynı veya daha geniş bir örnek biçimine sahip bir .wav dosyasına dönüştürebilirsiniz ve kalite kaybınız olmaz.

Bir medya oynatıcı sesi flac dosyanızda oynattığında, o PCM verilerini ses kartına göndermeden önce flac verilerinin bir PCM formatına çözülmesi esastır. Girilen verilerle aynı şekilde açar; yani 16 bit 44,1 KHz PCM verileri girerse, çıkacak olan şey budur ve hoparlörlerinize gidebilirsiniz.

Bu etkinlik ile sesi WAV dosyasına dönüştürme arasındaki tek fark , bir WAV dosyasına dönüştürdüğünüzde, uygun dolgu bitleri, vb. İle bir WAV kabı oluşturması ve ayrıca örnek formatı seçmenize izin vermesidir. WAV dosyasının. Ancak örnek formatın aynı olduğunu varsayarsak, FLAC ve WAV dosyalarınız arasındaki tek fark dosya boyutu olacaktır: WAV dosyaları önemli ölçüde daha büyük olacaktır.

Bu .ape formatı için de geçerli mi? .Ape'de indirdiğim birkaç kamuya açık alan kaydım var, ancak .flac yapmak istiyorum. .Wav'ı orta bir adam olarak kullanmadan .flac'a mümkün olur. Biraz bile kaybolmamasını sağlamak istiyorum.

Hayır, kullanmadan bunu yapmak mümkün değildir bazı bir aracı olarak PCM biçimi. Ama evet, olan bir WAV dosyasını kullanarak olmadan bunu yapmak mümkün. Farkı not edin. PCM veri akışı. WAV dosyası. Eğer ayrım sizin için net değilse, yazımın başlangıcını tekrar okuyun. "Biraz bile" kaybolduğundan emin olmak istiyorsanız, APE dosyalarınızı incelemeniz ve hangi örnek formatta olduklarını anlamanız ve FLAC kodlayıcınızın aynı ayarları kodlayacak şekilde ayarlandığından emin olmanız gerekir.

Dahili olarak, herhangi bir ses dönüştürme programı, kaynak formattan bir tür kayıpsız PCM örnek formatına çözülecek ve daha sonra bu PCM örneklerini alıp hedef formatta yeniden kodlayacaktır.

Ayrıca, kayıpsız dünyasını kusursuz bir şekilde açıklayan herhangi bir rehber varsa, bir bağlantı paylaşmaya istekli olur mu? :)

Benim düşünceme göre, öğrenmenin en iyi yolu yapmaktır. Gstreamer çerçevesini, nasıl kullanılacağını ve örnek formatın çeşitli ayarlanabilirlerinin anlamlarını ve bir boru hattının nasıl oluşturulacağını öğrenmek için zaman ayırırsanız, gerçekten güçlü bir dijital ses anlayışı ile ortaya çıkacaksınız. Bunu kontrol et. http://gstreamer.freedesktop.org/ Gstreamer SDK'sını http://code.entropywave.com/gstreamer-sdk/ adresinden de alabilir (Windows desteklenir) ve hiçbir şey derlemek zorunda kalmadan gst-launch-0.10 ile deneme yapabilirsiniz kaynaktan.

Birkaç şey açıklıyor:

gst-inspect-0.10 vorbisenc gst-inspect-0.10 vorbisdec gst-inspect-0.10 ses dönüştürme gst-inspect-0.10 audioresample

Sonra kapaklar hakkında bilgi edinin, boru hatları inşa edin, vb.

* Not: PCM'nin ne olduğunu açıklamadığımı fark ettim. Wikipedia benden daha iyi bir iş çıkarıyor: http://en.wikipedia.org/wiki/Pulse-code_modulation


Vay canına, bu her şeyi ne kadar net ve ne kadar mükemmel açıkladığınız inanılmaz. Daha önce bu şeylerin yarısını hiç düşünmemiştim, iyi düşünülmüş yiyecekler. Cevabınız için teşekkürler - ve bunu yazmanız için geçen süre! 1!
Ryan McClure

Kayıpsız ideal olarak özdeş PCM verilerini ima ettiğinden, her zaman bit hızlarını ve örnek oranlarını sağlam tutmayı hedeflemelisiniz. Örnekleme oranının iki katından başka bir şeyle örnekleme hiç kayıpsız olmaz (eşit olarak sıfır ekleyemezsiniz) ve disk alanını boşa harcar. Her durumda, örnek başına 4 ila 32 bit arasında herhangi bir PCM bit çözünürlüğü, 1 Hz'lik artışlarla 1 Hz ila 655,350 Hz arasında herhangi bir örnekleme hızı ve 1 ila 1 arasında herhangi bir sayıda kanal işleyebileceğinden FLAC ile ilgili bir sorun olmamalıdır. 8 ( en.wikipedia.org/wiki/FLAC#Design )
mtone

WAV her zaman PCM içerir. CD kalitesinde PCM olmayabilir (ancak pratik olarak, bunu neredeyse her zaman olduğu için genellikle kabul edebilirsiniz), ancak PCM olacak, mpeg 3 katman 2 gibi başka bir şey olmayacak.
psusi

@psusi: Üzgünüm ama yanılıyorsun. Lütfen WAV ile ilgili wikipedia makalesini okuyun: en.wikipedia.org/wiki/WAV . İsterseniz, MP3 ses içeren bir WAV dosyasına bir bağlantı gönderebilirim. WAV dosyaları hakkında akılda tutulması gereken şey, bunların sadece bir RIFF dosyası olması ve bir RIFF dosyasının bir medya kapsayıcı formatının oldukça ilkel bir revizyonudur. Ancak en azından temel amacı, videoyu değil sadece sesi desteklemenin yanı sıra Ogg veya Matroska'dan son derece farklı değildir. Düzenleme: Bir wav / mp3 dosyası yapmak zorunda değilim; Yaşasın! Aslında Wikipedia'dan bağlantılı! nch.com.au/acm/8kmp316.wav
allquixotic

Bu cevapta bazı yanlışlıklar var. "Frekans, örnekleme hızı olarak da bilinir. Saniyede tekrar çalınan daha fazla" örnek "olduğundan daha fazlası daha iyidir." - Örnekleme oranları bu şekilde çalışmaz. Bit derinliği söz konusu olmasaydı, 48 khz örnekleme hızına sahip veriler, 24 khz'a kadar olan sinyalleri kayıpsız bir şekilde temsil edebilir ve daha fazla örnek eklemek bunu değiştirmezdi. Daha fazla örnek yalnızca hangi frekansları temsil edebileceğinizi etkiler. 44.1khz'den 48khz'ye dönüştürmek, getirilen hata delicesine küçük olsa bile kesinlikle kayıpsız konuşmuyor.
cooky451

1

Allquixotic'in ifadesine katılmam gerekiyor.

Zaten mp3 veya ogg / vorbis gibi kayıplı bir formatta müziğiniz varsa, kayıpsız bir formata dönüştürmek sadece (çok) disk alanını tüketir ve KALMAYACAKTIR - kesinlikle OLMAYACAKTIR - kalitesini ses ne olursa olsun. Zaten kaybolduktan sonra sadakat yaratamazsınız. CSI adlı bazı hit TV şovlarında Visual Basic'te bir GUI arayüzü yazmıyorsanız, ama bu fantezi değil, gerçeklik.

Ses mühendisliği ve yanlış ifadeyle insanları besleme konusunda bilgi eksikliğiniz var.

  1. Ogg ve Vorbis'in her ikisinin de orijinal dalga veri bilgilerini kaydeden kapları vardır ve bu verilerle kayıpsız hale getirilebilir. Lütfen Google'ı yeterince yapın.

  2. Kayıpsız dönüşüme düşük kaliteli MP3 bile çok fazla ses iyileştirmesi yapar, orijinal kadar mükemmel değildir, ancak dinamik ve titreme ile kolayca sabitlenebilir. https://www.izotope.com/en/products/master-and-deliver/ozone.html/OzoneDitheringGuide.pdf

Ses 10100110101001 verisi değildir, dolayısıyla daha küçük dosya boyutu kaliteyi kaybettiği anlamına gelmez. On yıllar önce 128kbps ile 320kbps arasında deneyim yaşayabilirsiniz ve 128kbps'yi kayıpsız olarak tahmin etmek imkansızdır. Lütfen bu basit görevi kendiniz test ettirin ve gerçekleştirin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.