PDFMove
Ses Kodekleri Nasıl Çalışır? Psikoakustik Model ve Bitrate Mantığı
Rehber

Ses Kodekleri Nasıl Çalışır? Psikoakustik Model ve Bitrate Mantığı

6 dk okuma

Bir WAV dosyası dakikada yaklaşık 10 MB tutar; aynı ses MP3 olarak 1 MB'a iner. Veri onda birine düşer ama çoğu insan farkı duymaz. Bu nasıl mümkün? Cevap, sıkıştırma matematiğinden çok insan kulağının nasıl çalıştığında. Bu yazıda kayıplı ses kodeklerinin mantığını ve dönüşüm kararlarınızı neyin belirlemesi gerektiğini anlatıyoruz.

Ham ses verisi nedir

Bir mikrofon havanın basıncındaki değişimi elektrik sinyaline çevirir. Bu sinyal dijitalleştirilirken iki parametre belirlenir:

Örnekleme hızı (sample rate): Saniyede kaç ölçüm alınacağı. CD standardı 44.100 Hz'dir. Bu sayı keyfi değil: Nyquist teoremine göre bir sinyali doğru yakalamak için en yüksek frekansının iki katı hızda örneklemek gerekir. İnsan kulağı yaklaşık 20.000 Hz'e kadar duyduğu için 44.100 yeterli bir üst sınır sağlar.

Bit derinliği (bit depth): Her ölçümün kaç bitle ifade edileceği. CD'de 16 bit kullanılır, bu da 65.536 farklı genlik seviyesi demektir. Stüdyo kayıtlarında 24 bit yaygındır.

Hesap basit: 44.100 örnek × 16 bit × 2 kanal = saniyede 1.411.200 bit, yani yaklaşık 1.411 kbps. Bir dakika stereo ses, sıkıştırılmamış hâlde yaklaşık 10 MB tutar.

WAV formatı tam olarak bu ham veriyi saklar. FLAC ise aynı veriyi kayıpsız sıkıştırma ile yaklaşık yarı boyutta tutar — açıldığında birebir aynı örnekler geri gelir.

Kayıplı kodlamanın temel fikri

MP3 gibi kayıplı kodlayıcılar farklı bir soru sorar: bu verinin ne kadarını gerçekten duyuyoruz?

Cevap: sanılandan çok azını. İnsan işitme sistemi mükemmel bir kayıt cihazı değildir; belirli koşullarda belirli sesleri hiç algılamaz. Kodlayıcı bu boşlukları bulup o bilgiyi atar.

Bu, psikoakustik model denen bir hesaplamayla yapılır.

Maskeleme: duyamadığımız sesler

Psikoakustik modelin temeli maskeleme olgusudur ve iki türü vardır.

Frekans maskelemesi (eşzamanlı maskeleme). Yüksek sesli bir bileşen, kendisine yakın frekanslardaki daha sessiz bileşenleri algılanamaz hâle getirir. Gürültülü bir ortamda fısıltıyı duyamamanız gibi — ama bu, frekans ekseninde çok daha ince bir ölçekte gerçekleşir.

Somut örnek: 1000 Hz'de güçlü bir ton varken, 1100 Hz'de belirli bir eşiğin altındaki bir ton duyulmaz. Kodlayıcı o bileşeni atabilir veya çok kaba kodlayabilir; kulak farkı algılamaz.

Zamansal maskeleme. Gürültülü bir andan hemen önce (yaklaşık 20 ms) ve hemen sonra (yaklaşık 100-200 ms) gelen zayıf sesler algılanmaz. Kulak, güçlü bir uyarandan sonra kısa süre "sağır" kalır.

Kodlayıcı bu iki olguyu birlikte kullanarak her an için bir maskeleme eşiği hesaplar: hangi frekansta, hangi seviyenin altındaki bilgi atılabilir.

Kodlama süreci adım adım

Bir MP3 kodlayıcının yaptığı iş kabaca şöyle:

1. Sesi bloklara ayır. Genellikle birkaç yüz ile bin örnek arası pencereler. Blok boyutu önemlidir: uzun bloklar frekans çözünürlüğü verir, kısa bloklar zaman çözünürlüğü. Kodlayıcı ani geçişlerde (davul vuruşu gibi) kısa bloklara geçer.

2. Frekans alanına dönüştür. Zaman ekseni verisi, frekans bileşenlerine ayrıştırılır (MP3'te alt bant filtreleme + MDCT, AAC'de doğrudan MDCT).

3. Psikoakustik modeli çalıştır. Her frekans bandı için maskeleme eşiği hesaplanır.

4. Bit bütçesini dağıt. Mevcut bitrate bütçesi, hangi bandın kaç bitle kodlanacağına dağıtılır. Maskelenen bantlara az bit veya hiç bit verilmez.

5. Nicemleme (quantization). Her bileşen, kendisine ayrılan bit sayısına göre kabalaştırılır. İşte kayıp burada gerçekleşir — orijinal değerin tam yerine yaklaşık bir değer saklanır.

6. Entropi kodlaması. Kalan veriye kayıpsız bir sıkıştırma (Huffman gibi) uygulanır.

Kod çözerken bu adımlar tersine işletilir ama 5. adımda atılan bilgi geri gelmez. Nicemleme geri dönüşsüzdür.

Bitrate: bütçe ne kadar sıkışırsa

Bitrate, kodlayıcıya verdiğiniz bütçedir. Düşük bitrate'te kodlayıcı daha çok bilgi atmak zorunda kalır ve kaybın duyulur hâle gelmesi başlar.

Düşük bitrate'te en çok bozulan şeyler:

| Sorun | Nerede duyulur | |---|---| | Yüksek frekans kesme | Zil, tiz enstrümanlar, "s" sesleri sönükleşir | | Ön yankı (pre-echo) | Davul vuruşundan önce hafif bir "hışırtı" | | Stereo bozulması | Geniş stereo görüntü daralır | | Metalik tını | Alkış, kalabalık sesleri "sulu" duyulur | | Nicemleme gürültüsü | Sessiz pasajlarda arka plan hışırtısı |

Kabaca bir referans (MP3 için, iyi bir kodlayıcıyla):

| Bitrate | Algılanan kalite | |---|---| | 64 kbps | Konuşma için kabul edilir, müzikte belirgin bozulma | | 96 kbps | Podcast, sesli kitap için yeterli | | 128 kbps | Genel dinleme, dikkatli kulakta fark edilir | | 192 kbps | Çoğu kullanım için iyi | | 256 kbps | Çoğu dinleyici için şeffafa yakın | | 320 kbps | Pratik üst sınır, çoğu kulak için şeffaf |

"Şeffaflık" terimi, kodlanmış sesin orijinalinden kör dinleme testinde ayırt edilememesi demektir. Kişiden kişiye, içerikten içeriğe ve ekipmandan ekipmana değişir.

Sabit ve değişken bitrate

CBR (sabit bitrate): Her saniye aynı miktarda veri kullanılır. Basit ve öngörülebilir; akış (streaming) için avantajlıdır.

VBR (değişken bitrate): Kodlayıcı her ana ihtiyacı kadar bit ayırır. Sessiz bir piyano pasajında tasarruf eder, yoğun bir orkestra bölümünde harcar.

VBR genellikle daha iyidir çünkü müziğin karmaşıklığı sabit değildir. Aynı ortalama bitrate'te VBR, CBR'den daha iyi algılanan kalite verir. Tek dezavantajı, dosya boyutunun önceden kestirilememesi ve bazı eski oynatıcılarda süre/ileri sarma sorunlarıdır.

ABR (ortalama bitrate) ikisinin arasında bir uzlaşmadır.

Kodekler neden farklı verimlilikte

Aynı bitrate'te AAC, MP3'ten daha iyi ses verir. Sebepleri:

  • Daha esnek blok boyutları. Ani geçişleri daha iyi ele alır, ön yankı azalır.
  • Daha iyi stereo kodlama. Kanallar arası benzerlikten daha verimli yararlanır.
  • Daha verimli entropi kodlaması.
  • Daha gelişmiş psikoakustik model.
  • Tasarım özgürlüğü. MP3, geriye dönük uyumluluk kısıtlarıyla tasarlanmıştı; AAC sıfırdan başladı.

Opus daha da ileri gider ve özellikle düşük bitrate'lerde (32-64 kbps) belirgin biçimde iyidir; sesli görüşme ve podcast için tasarlanmış bileşenler taşır.

Pratik karşılık: 128 kbps AAC yaklaşık 160-192 kbps MP3'e denk algılanır. Bu, dönüşüm yaparken hedef bitrate seçiminin neden kaynak formata bağlı olduğunu açıklar.

Transkod kaybı neden birikiyor

Kayıplı bir dosyayı başka bir kayıplı formata çevirdiğinizde şu olur:

  1. Kaynak dosya çözülür. Elde edilen ses, orijinalin zaten kayıplı bir yaklaşımıdır.
  2. Yeni kodlayıcı bu sese kendi psikoakustik modelini uygular ve yeniden bilgi atar.

Sorun şu ki ikinci kodlayıcı, birinci kodlayıcının ne attığını bilmez. Kendi modeline göre karar verir ve bu kararlar birinciyle örtüşmez. Sonuçta iki farklı "atma" birbirinin üzerine biner.

Ayrıca birinci kodlamanın bıraktığı nicemleme gürültüsü, ikinci kodlayıcı için "gerçek ses" gibi görünür ve onu korumaya çalışarak bütçe harcar.

Bu yüzden zincirleme dönüşümler hızla bozulur. MP3 → AAC → MP3 → OGG gibi bir yolda her adımda yüksek frekanslar biraz daha solar, geçişler biraz daha bulanıklaşır.

Kural: her zaman elinizdeki en iyi kaynaktan tek adımda hedefe gidin.

Kayıpsız formatlara geri dönmek

MP3'ü FLAC'a çevirmek yaygın bir yanlış anlamadır. FLAC kayıpsızdır ama bu, "kendisine verileni bozmadan saklar" demektir — "kaybolanı geri getirir" demek değildir.

MP3 kodlanırken atılan frekans bileşenleri kalıcı olarak yok olmuştur. FLAC'a çevirdiğinizde o eksik sesi kayıpsız olarak saklarsınız. Sonuç: MP3 kalitesinde, beş kat büyük bir dosya.

Tek meşru istisna: bir dosyayı düzenleyecekseniz. Kesme, birleştirme, efekt uygulama gibi işlemler sırasında her kaydetmede yeniden kodlama olmasın diye geçici olarak WAV'a çevirmek mantıklıdır. İş bitince hedef formata bir kez kodlarsınız.

Özetle

Kayıplı ses kodekleri, insan kulağının maskeleme özelliklerinden yararlanarak duyulmayan bilgiyi atar; kayıp, nicemleme adımında gerçekleşir ve geri dönüşsüzdür. Bitrate bu işlemin bütçesidir — düşük bütçede ilk feda edilenler yüksek frekanslar, stereo genişliği ve geçiş netliğidir. Farklı kodekler farklı verimliliktedir; AAC ve Opus, MP3'ten aynı bitrate'te daha iyi sonuç verir, bu yüzden dönüşümde hedef bitrate'i kaynağın bir kademe üstünde tutmak gerekir. Ve en önemli pratik sonuç: kayıplı dönüşümler birikimlidir, kayıpsıza geri dönüş kalite kazandırmaz — her zaman en iyi kaynaktan tek adımda hedefe gidin.

Sıkça Sorulan Sorular

Kayıplı kodlayıcı hangi sesi atacağına nasıl karar veriyor?

Psikoakustik bir model kullanır. İnsan kulağının belirli koşullarda hangi sesleri duyamadığını hesaplar: yüksek bir ses hemen yanındaki frekanslarda daha sessiz sesleri maskeler, ayrıca gürültülü bir andan hemen önce ve sonra gelen zayıf sesler de algılanmaz. Kodlayıcı bu maskelenen bileşenleri düşük hassasiyetle kodlar veya tamamen atar.

Neden aynı bitrate'te AAC, MP3'ten daha iyi ses veriyor?

Çünkü AAC daha yeni tasarım kararları içerir: daha esnek blok boyutları, daha iyi stereo kodlama teknikleri, daha verimli entropi kodlaması ve daha gelişmiş bir psikoakustik model. MP3'ün tasarımı 1990'ların başına dayanır ve bazı yapısal sınırları vardır. Pratikte 128 kbps AAC, 160-192 kbps MP3'e yakın algılanan kalite verir.

Değişken bitrate (VBR) sabit bitrate'ten (CBR) neden daha iyi?

Çünkü müziğin karmaşıklığı zaman içinde değişir. Sessiz bir piyano pasajı ile yoğun bir orkestra bölümü aynı miktarda veriye ihtiyaç duymaz. VBR, her ana ihtiyacı kadar bit ayırır: basit bölümlerde tasarruf eder, karmaşık bölümlerde harcar. Aynı ortalama bitrate'te VBR genellikle CBR'den daha iyi algılanan kalite verir.

Şeffaflık ne demek, hangi bitrate'te ulaşılır?

Şeffaflık, kodlanmış sesin orijinalinden kör dinleme testinde ayırt edilememesi demektir. Bu kişiden kişiye, içerikten içeriğe ve ekipmandan ekipmana değişir. Genel kabul, iyi bir kodlayıcıyla 256-320 kbps MP3'ün ve 192-256 kbps AAC'nin çoğu dinleyici için şeffaf olduğudur. Ancak bazı zorlu içerikler (alkış, zil sesleri, elektronik glitch) daha yüksek bitrate gerektirir.

Bu konuyu Ses Format Dönüştür aracıyla hemen deneyin.

Ses Format Dönüştür aracını dene