Bir kod çözülmüş MP3'ten kodlanan bir FLAC neden MP3'ten daha büyük?


13

Başlıktakinden daha kesin olmak gerekirse, 320 kbps'lik bir MP3 dosyam olduğunu varsayalım. Sıkıştırırsam, mantıksal olarak, sesin her saniyesinden kabaca 320 kilobit dışındaki tüm veriler, sıkıştırılabilen yedek veriler olmalıdır. Sıkıştırılmış dosyayı FLAC veya başka bir kayıpsız codec bileşenine kodladığımda neden bu kadar büyük?

İlgili bir notta, kaynak mp3 sesini dekomprese edilmiş bir wav'dan kayıpsız bir şekilde kurtarmak teorik olarak mümkün mü? (MP3'ün kendisinin kayıp olduğunu biliyorum . Başka bir kayıp olmadan yeniden kodlamanın mümkün olup olmadığını soruyorum .)

DÜZENLEME: İlgili soruyu ve arkasındaki mantığı açıklığa kavuşturayım. Bir MP3 dosyasından açılmış bir wav'um olduğunu varsayalım (ve nedense mp3'ün kendisinde olmadığını varsayalım). Daha fazla kalite kaybetmek istemiyorsam, FLAC veya başka bir kayıpsız kodlayıcı ile yeniden kodlayabilir ve aynı kaliteyi korumak için daha büyük bir dosya alabilirim . Ya da tekrar mp3'e yeniden kodlayabilir ve orijinalle aynı boyutta alabilirim, ancak daha fazla veri kaybedebilirim. Açıkçası, bu vakaların hiçbiri ideal değildir. Orijinal boyuta veya orijinal kaliteye sahip olabilirim, ama her ikisi de değil (Orijinal kayıpsız kaynağın değil, orijinal mp3'ün kalitesini kastediyorum). Sorum şu: İkisini de alabilir miyiz? Teorik olarak kayıplı sıkıştırılmış verileri kayıplı dekomprese edilmiş verilerden daha fazla kaybetmeden kurtarmak mümkün müdür?

Mümkünse, sesi FLAC ile sıkıştıran kayıpsız bir sıkıştırma algoritması hayal edebiliyorum. Daha sonra sesi önceki kayıplı sıkıştırma belirtileri için tarar ve algılanırsa, kayıpsız olarak orijinal kayıplı dosyaya yeniden sıkıştırır. Sonra hangi dosya küçükse o tutar.


İşte ses kopyalamak ve kodlamak için en sevdiğim rehber. keyfini çıkarın, mükemmel bir okuma: mp3.radified.com

2
Kod çözücü 320kb'yi 1411kb'ye kadar anlamsız bitlerle doldurmaz, bir PCM dosyasının bit hızı örnek başına bit değeri, kanal sayısı ve örnekleme oranı ile verilir. Standart CD sesi için bu (2 kanal) * (44.1KHz örnekleme hızı) * (örnek başına 16 bit) = 1411kbps'dir.
skelly

Basit, MP3 sıkıştırılmış, FLAC sıkıştırılmamış. Dönüştürdüğünüzde, MP3 verilerini açar.
Moab

2
Bu yanlış. FLAC bir ses sıkıştırma formatıdır.
Ryan

Yanıtlar:


31

FLAC'ın aynı verilerin MP3'ünden daha büyük olmasının nedeni, farklı kodlamalarıdır. :) MP3 sadece algısal bilgileri kodlarken FLAC her veri parçasını daha kompakt bir formatta saklar.

  • WAV'yi FLAC'ye dönüştürmek, BMP'yi PNG'ye dönüştürmek gibidir.
    • Tam olarak aynı pikseller, ancak ZIP dosyası gibi kayıpsız bir şekilde daha küçük bir boyuta sıkıştırılır.
  • WAV'ı MP3'e dönüştürmek, BMP'yi JPEG'e dönüştürmek gibidir.
    • Tam pikselleri saklamak yerine , orijinaline benzeyen renk dalgalarıyla kareler oluşturmak için talimatları saklamak gerçekten .

Benzer şekilde, MP3 sadece bir araya getirildiğinde orijinaline benzeyen dalgalanmalar oluşturmak için talimatları saklar. Ancak, gerçek sinyal ile üretilen sinyal (hata sinyali) arasındaki fark, JPEG jaggies gibi rastgele gürültülü artefaktlardan oluşur . Daha sonra bunu FLAC gibi mükemmeliyetçi bir formatta sakladığınızda, tüm bu jaggy'leri saklaması gerekir ve rastgele gürültü kayıpsız sıkıştırmak daha zordur, bu nedenle dosyanın boyutunu artırır. (Gerçekten rastgele gürültü sıkıştırılamaz. Bir dosyayı kayıpsız bir şekilde sıkıştırdığınızda, gereksiz yinelenen kalıpları ortadan kaldırırsınız ve rastgele gürültü gibi görünmesini sağlarsınız.)

JPEG'i PNG'ye dönüştürürseniz, MP3'ü FLAC'a dönüştürürken gördüğünüzle aynı boyutta artış görürsünüz, çünkü mükemmeliyetçi kayıpsız codec'in orijinal bmp'de olmayan her küçük jaggy ve eseri hatırlaması gerekir.

Bu benzetme mükemmel değildir, çünkü ses bir hat sanatı diyagramından ziyade bir fotoğraf gibidir, ancak bu fikrin karşılanmasına yardımcı olur:

Orijinal BMP boyutu: 29 kB

PNG formunda mavi noktalar

PNG boyutu: 629 B

Jaggies ile JPEG biçiminde mavi noktalar

JPEG boyutu: 1,7 kB

Jaggies ile PNG'ye yeniden kodlanmış mavi noktalar

JPEG'den oluşturulan PNG: 6,2 kB


3
Ancak elbette bir dosya JPG'ye dönüştürüldüğünde veriler kaybolur ve PNG'ye dönüştürülerek kurtarılamaz. FLAC / PNG'de daha fazla veri varsa, bunların çoğu hayali olacaktır.
pavium

1
Evet. Anlamlı veriler kaybolur ve hatalı veriler oluşturulur.
Endolit

1
Bu, endolitin örnek şemalarında açıkça gösterilmiştir.
09:17

1
Bu inanılmaz kapsamlı bir cevap. İyi iş!
cowgod

1
Haklısın. Ne düşündüğümü bilmiyorum.
Kevin Panko

2

Bir MP3 kodunu çözdüğünüzde, hangi bit hızı ne olursa olsun, kayıplı kodlama işleminin tüm belirgin ve fark edilir etkilerine sahip standart 1411kbps / 44100Hz 16bit (veya kaynak ne olursa olsun) PCM ses elde edersiniz, bu format çalma için gereklidir ve kodlama / yeniden kodlama, herhangi bir codec bileşeninin herhangi bir dosyası bilgisayarınızda, MP3 çalarınızda vb.

FLAC kodlayıcı, sıkıştırdığı sesin kodu çözülmüş bir MP3 veya yepyeni bir CD'den gelip gelmediğini umursamıyor, ses dosyasında herhangi bir değişiklik yapmadan kaynak dosyanın boyutunu küçülterek kaynağın tamamen kurtarılmasını mümkün kılar, kayıpsız bir süreç.

Bir MP3'ten yapılan bir FLAC dosyası tam olarak MP3'e, bir CD parçasından yapılan bir FLAC dosyası da tam olarak CD'ye benzer.


0

Sonra bir kayıpsız kodlayıcı almak, MP3 bir WAV geri dönüştürmek eğer parçayı iki cevaplamak için gereken İşiniz bittiğinde aynı kalitede dosya var.

FLAC'ın neden MP3'ten daha büyük olduğuna gelince, daha sıkıştırılmış formatlardan birini alıyorsunuz, sıkıştırmasını açıyorsunuz, daha sonra daha az verimli bir sıkıştırma aracında (daha yüksek kaliteli bir çalma kalitesinde olsa da) yeniden sıkıştırıyorsunuz.

Bir JPG'yi neden PNG'ye dönüştürmenin onu büyüttüğünü sormak gibidir - dosyayı [kısmen] açıyorsunuz, sonra kayıpsız bir şekilde yeniden sıkıştırıyorsunuz. PNG gibi FLAC, alan için değil, kalite için optimize edilmiştir .


FLAC (ve PNG) kayıpsızdır, bu yüzden bunların kalite için optimize edildiğini söylemek mantıklı değildir.
Joakim Elofsson

3
@Joakim: kayıpsız == maksimum kalite, dolayısıyla kayıpsız formatlar tanım gereği kalite için optimize edilmiştir .
quack quixote

2
benim açımdan bu, tanımı gereği optimizasyon yok. eğer tanım maksimum kalite ise, o zaman optimize edilecek bir şey yoktur
Joakim Elofsson

0

mp3, bir kod çözücünün oynatılabilmesini sağlar, kod çözücünün sonucu orijinal parçanın (genellikle bir CD'den) yaklaşık değeridir. Ortaya çıkan yaklaşım, orijinal iz ile aynı bit hızına sahipti. Mp3 kodunu çözmeden bilgi bir anlam ifade etmez, bu yüzden başka bir şeye dönüştürülemez (stereo-mp3'den 2X mono-mp3 gibi çok benzer kodlama olmadığı sürece). Ve FLAC ve mp3 bile buna yakın değil. Bir FLAC'ın kodunu çözerken sonuç, FLAC'ye kodlanan orignal verilerin bir tahmini değildir, ancak tam olarak aynıdır.

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.