MP3 dosya biçimi çerçevelerden oluşur. Her kare onbir "1" bit ve bit hızını kontrol eden ve diğer bazı özellikleri tanımlayan birkaç bayt meta veri ile başlar. Her kare bağımsızdır, akışı destekleyecek şekilde tasarlanmıştır.
Çerçevelerin CRC'si olabilir - hata kontrolü. İsteğe bağlıdır.
Bir CD'de kötü sektörlerle karşılaşırsa, işletim sistemi büyük olasılıkla okumayı yeniden dener (MP3 donanımının herhangi bir şey görmeden önce CD donanımının kendi hata kontrolü mechansim'i vardır). Kod çözücünün bir tampondan çalışmadığını varsayarsak, kod çözücü bu işlem sırasında yeni veri almaz ve durması gerekir. İşletim sistemi verileri okuyamazsa, işletim sistemine bir hata bildirebilir ve bu da sonunda MP3 kodlayıcıyı barındıran işleme rapor edilir. Yazılıma tam olarak burada ne olduğuna bağlı.
CD'deki veriler yanlış okunduysa ve yine de kod çözücüye yapıyorsa birkaç olası şey olabilir (bu muhtemelen bir PC'de olmaz, ancak bir araba stereo veya PC dışı bir cihazda olabilir):
Bir MP3 kod çözücü bir çerçevenin başlangıcını bulmak için on bir adet 1 bit arar - eğer bulamazsa, muhtemelen bir sonraki çerçeveye kadar kod çözmeyi durduracaktır.
Üstbilgi verileri bozuksa, hangi bit hızının yanlış olabileceğini gösteren bayt olduğundan kareyi yanlış bit hızında oynatabilir.
Başlık CRC biti ayarlanırsa ve CRC eşleşmezse, kod çözücü muhtemelen çerçeveyi dışarı atar ve oynatmaz. Çoğu MP3 dosyasında CRC biti ayarlanmamıştır.
Yük (başlıktan sonraki veriler) yanlışsa, MP3 kod çözücü bunu oynatmaya çalışacaktır.
Bir kod çözücünün işi, sıkıştırılmış verileri almak ve bir "üst" seviyeye teslim etmek için sıkıştırılmamış veri oluşturmaktır. Bu üst seviye, bir ses cihazını sürmek için sıkıştırılmamış verileri kullanır. Çoğu kodlayıcı / ses sürücüsü kurulumunun, MP3 kod çözücünün ses sürücüsü için bazı veriler oluşturabileceği ve okumaların yeniden denenmesine izin verebileceği bir yapılandırılabilir boyuta sahip bir tamponu olduğunu tahmin ediyorum.
Her neyse, kod çözücü veri almadığı için durduysa, aslında sesi süren üst seviye aşağıdakilerden herhangi birini yapabilir:
- Üst seviye sessizlik verir. Seste bir ara duyarsınız.
- Kod çözücü, verileri bir ses arabelleğine doldurmayı durdurur, ancak üst düzey orada olanları çalmaya devam eder. Ses arabellekleri genellikle "daireseldir", yani sıfırlanmadıkları ancak sürekli olarak yeni verilerle üzerine yazıldıkları anlamına gelir. Önceki ses çalmanın bir parçası olan bir atlama sesi duyacaksınız.
- Üst düzey akıllıdır ve orada ne olması gerektiğine enterpolasyon yapmaya çalışır. Bunun çok yaygın olduğunu düşünmüyorum.
Kod çözücü kötü veriler çıkarırsa, statik veya ses çıkarır.
Referans .