G.711.0 Nedir ve Hangi Problemi Çözer?
VoIP (IP üzerinden ses iletimi) dünyasında yıllardır kullandığımız klasik bir G.711 standardı var. Çok güvenilir ve nettir; ancak bant genişliği konusunda biraz savurgandır. Siz konuşsanız da, sussanız da, hatta hatta arkadan sadece hafif bir dip gürültüsü gelse bile saniyede sabit 64 kbps veri üretmeye devam eder.
İşte G.711.0, bu sabit bit hızlı (CBR) paketleri, kaliteden tek bir bit bile feda etmeden (bit-exact / birebir kayıpsız) değişken bit hızlı (VBR) paketlere dönüştürmek için tasarlanmış bir sıkıştırma standardıdır.
Buradaki en kritik nokta “kayıpsız” olması. MP3 veya AAC gibi formatlarda dosya boyutunu küçültmek için kulağın duymayacağı sesler silinir (kayıplı sıkıştırma). G.711.0’da ise karşı tarafa ulaşan ses verisi, gönderilen verinin matematiksel olarak %100 birebir aynısıdır.
Üstelik bunu yaparken cihazın işlemcisini veya belleğini neredeyse hiç yormaz. Bir akıllı saatin bile hissetmeyeceği kadar düşük bir işlem gücü ve bellek kullanımıyla çalışır.
Arka Plandaki Temel Mantık: Durumsuz ve Akıllı Paketler
G.711.0’ın temel felsefesi durumsuz (stateless) ve kendini açıklayan bir yapıya dayanır.
- Durumsuz olması ne demek? Bir ses paketini açmak için kendinden önceki veya sonraki paketlere ihtiyaç duymaz. Ağda bir paket kaybolsa bile diğer paketler bundan etkilenmeden çözülebilir.
- Kendini açıklaması ne demek? Gönderilen her paket kendi içinde ne tür bir sıkıştırmadan geçtiğini beyan eder.
Sistem, yaklaşık 10-20 milisaniyelik her bir ses dilimini alıp analiz eder. Elindeki sıkıştırma araçlarından o anki ses için en verimli olanını seçer. Paketin en başına da 1 baytlık “Önek Kod” (Prefix Code) ekler. Karşı taraftaki alıcı, paketin başındaki bu bayta bakarak “Aha, bu paket şu yöntemle sıkıştırılmış, o zaman şöyle açayım” der.
İki Farklı Senaryo: Sessizlik ve Konuşma Anları
G.711.0’ın sağladığı devasa bant genişliği tasarrufu iki temel durumda kendini gösterir:
1. Sessizlik Anları (Sabit Değer Modu)
Bir telefon görüşmesinin neredeyse yarısı karşı tarafı dinlemekle, yani sessizlikle geçer. Klasik G.711’de bu sessizlik anında bile 160 baytlık veri paketleri gönderilmeye devam eder.
G.711.0 ise paketin tamamen aynı değerlerden (sessizlikten) oluştuğunu fark ettiği an, 160 baytlık paketin tamamını çöpe atar. Karşı tarafa sadece 1 baytlık önek kodu gönderir. 160 bayttan 1 bayta düşen veri, bant genişliğinde %99’un üzerinde bir tasarruf sağlar.
2. Konuşma Anları (Doğrusal Öngörü ve Entropi)
Peki ya birisi konuşurken ne olur? Ses dalgaları sürekli değiştiği için paketleri 1 bayta düşürmek mümkün değildir. G.711.0 burada çok akıllı bir matematiksel tahmin yöntemi kullanır:
- Tahmin Yapar: Sistem, sesin gidişatına bakarak bir sonraki ses örneğinin ne olacağını tahmin eder.
- Farkı Bulur: Gerçek ses ile kendi yaptığı tahmin arasındaki minik farkı (hatayı) hesaplar.
- Farkı Paketler: Gerçek ses verisini uzun uzun göndermek yerine, sadece aradaki bu minik farkları özel sıkıştırma tablolarıyla paketleyip gönderir.
Bu sayede aktif olarak konuşulan anlarda bile ses verisi %50 ile %65 arasında küçültülmüş olur.
Özetle
G.711.0; ses kalitesine hiç dokunmadan, ağ trafiğini yarı yarıya azaltan, sistem kaynaklarını neredeyse hiç tüketmeyen son derece zarif bir mühendislik çözümüdür. Özellikle binlerce eşzamanlı çağrı taşıyan santral sistemlerinde ve kurumsal VoIP altyapılarında devasa bant genişliği tasarrufu sağlar.