U-kanunu algoritması
μ-kanunu algoritması (bazen mu -kanunu olarak yazılır, genellikle u-kanunu olarak yaklaşılır ), öncelikle Kuzey Amerika ve Japonya'daki 8 bitlik PCM dijital telekomünikasyon sistemlerinde kullanılan bir sıkıştırma algoritmasıdır. ITU-T'nin G.711 standardında yer alan iki sıkıştırma algoritmasından biridir, zaten diğeri ise benzer A kanunudur . A-kanunu, Avrupa gibi dijital telekomünikasyon sinyallerinin E-1 devreleri üzerinde taşındığı bölgelerde kullanılmaktadır.
G711 μ-yasası için PCMU, G711u veya G711MU terimleri kullanılmaktadır.[1]
Sıkıştırma algoritmaları bir ses sinyalinin dinamik aralığını azaltır. Analog sistemlerde bu, iletim sırasında elde edilen sinyal-gürültü oranını (SNR) artırabilir; dijital alanda niceleme hatasını azaltabilir (böylece sinyal-niceleme-gürültü oranını artırabilir). Bu SNR artışları, eşdeğer SNR için azaltılmış bant genişliği ile takas edilebilir.
Azaltılmış tepe SNR pahasına, μ-yasasının doğrusal olmayan kuantizasyonunun dinamik aralığı 33 dB kadar etkili bir şekilde arttırdığı matematiksel olarak gösterilebilir. İşte bu yüzden 8bit ulaw şuna karşılık gelir: 14bit doğrusal pcm.[2]
Algoritma türleri
[değiştir | kaynağı değiştir]μ-kanunu algoritması analog formda ve nicelenmiş dijital formda tanımlanabilir.
Sürekli
[değiştir | kaynağı değiştir]Belirli bir x girişi için μ-kanunu kodlama denklemi [3]burada Kuzey Amerika ve Japon standartlarında μ = 255 olup, sgn(x) işaret fonksiyonudur . Bu fonksiyonun aralığının -1 ile 1 arasında olduğuna dikkat etmek önemlidir.
μ-yasası açılımı daha sonra ters denklemle verilir:[3]
Ayrık
[değiştir | kaynağı değiştir]G.711, bir aralığın sınırındaki değerlerin nasıl kodlanacağı konusunda net değildir (örneğin +31'in 0xEF'ye mi yoksa 0xF0'a mı kodlanacağı).[kaynak belirtilmeli] Ancak G.191, μ-yasası kodlayıcı için C dilinde örnek kod sağlar.[4] Pozitif ve negatif aralıklar arasındaki fark, örneğin +30 ila +1'e karşılık gelen negatif aralık, −31 ila −2'dir. Bu, kodlama sırasında negatif bir değeri pozitif bir değere dönüştürmek için 2'nin tamamlayıcısı yerine 1'lerin tamamlayıcısının (basit bit ters çevirme) kullanılmasıyla açıklanır.
14 bit ikili doğrusal giriş kodu | 8 bitlik sıkıştırılmış kod |
---|---|
256'lık 16 aralıkta +8158'den +4063'e | 0x80 + aralık numarası |
128'lik 16 aralıkta +4062'den +2015'e | 0x90 + aralık numarası |
64'lük 16 aralıkta +2014'ten +991'e | 0xA0 + aralık numarası |
32'lik 16 aralıkta +990'dan +479'a | 0xB0 + aralık numarası |
16'lık 16 aralıklarla +478'den +223'e | 0xC0 + aralık numarası |
8'lik 16 aralıkta +222'den +95'e | 0xD0 + aralık numarası |
4'erli 16 aralıklarla +94'ten +31'e | 0xE0 + aralık numarası |
15'er 2 aralıklarla +30'dan +1'e | 0xF0 + aralık numarası |
0 | 0xFF |
−1 | 0x7F |
−31'den −2'ye, 2'lik 15 aralıkta | 0x70 + aralık numarası |
−95 ila −32, 16 4'lük aralıklarla | 0x60 + aralık numarası |
−223 ila −96, 8'lik 16 aralıkta | 0x50 + aralık numarası |
−479'dan −224'e, 16'lık 16 aralıkta | 0x40 + aralık numarası |
−991 ila −480, 32'lik 16 aralıkta | 0x30 + aralık numarası |
−2015'ten −992'ye, 64'lük 16 aralıkta | 0x20 + aralık numarası |
−4063 ila −2016, 128'lik 16 aralıkta | 0x10 + aralık numarası |
−8159'dan −4064'e, 256'lık 16 aralıkta | 0x00 + aralık numarası |
Uygulama
[değiştir | kaynağı değiştir]μ-yasası algoritması çeşitli şekillerde uygulanabilir:
- Analog
- Tamamen analog alanda sıkıştırma elde etmek için doğrusal olmayan kazançlı bir amplifikatör kullanarak.
- Doğrusal olmayan ADC
- μ-yasası algoritmasına uyacak şekilde eşit olmayan aralıklara sahip nicemleme düzeylerine sahip bir analogdan dijitale dönüştürücü kullanarak.
- Dijital
- Verileri dijital alana girdikten sonra dönüştürmek için μ-yasası algoritmasının nicelenmiş dijital versiyonunu kullanarak.
- Yazılım/DSP
- Sıkıştırılmış değerleri hesaplamak için μ-yasası algoritmasının sürekli versiyonunu kullanarak.
Kullanım gerekçesi
[değiştir | kaynağı değiştir]Konuşmanın geniş bir dinamik aralığa sahip olması nedeniyle μ-yasası kodlaması kullanılır. Analog sinyal iletiminde, nispeten sabit arka plan gürültüsünün varlığında, daha ince ayrıntılar kaybolur. Detayın kesinliğinin zaten tehlikeye atıldığı göz önüne alındığında ve sinyalin bir insan tarafından algılanacağı varsayıldığında, sinyali logaritmik bir sıkıştırma yöntemi kullanarak sıkıştırarak algılanan akustik yoğunluk seviyesinin veya ses yüksekliğinin logaritmik olması gerçeğinden yararlanılabilir. Telekomünikasyon devrelerinde gürültünün büyük bir kısmı hatlara enjekte edilir, dolayısıyla kompresörden sonra amaçlanan sinyal, sıkıştırılmamış bir kaynağa kıyasla statik sinyalden önemli ölçüde daha yüksek olarak algılanır. Bu ortak bir çözüm haline geldi ve böylece ortak dijital kullanımdan önce, birlikte çalışabilir bir standardı tanımlamak için μ-yasası spesifikasyonu geliştirildi.
Bu önceden var olan algoritma, dijital sistemlerde tanınabilir bir insan sesini kodlamak için gereken bit miktarını önemli ölçüde azaltma etkisine sahipti. Bir örnek, yaygın bilgisayarların çoğunun sembol boyutuna uygun bir şekilde eşleşen 8 bit kadar küçük bir μ-yasası kullanılarak etkili bir şekilde kodlanabiliyordu.
μ-yasası kodlaması, sinyalin dinamik aralığını etkili bir şekilde azalttı, böylece kodlama verimliliğini arttırırken sinyali, belirli sayıda bit için doğrusal kodlamayla elde edilenden daha büyük bir sinyal- bozulma oranıyla sonuçlanacak şekilde yönlendirir.
μ-law algoritması, Unix'te ses için fiili bir standart olarak yaygın olarak kullanılan /dev/audio arayüzü tarafından kullanılan yerel yöntem olarak en azından Sun Microsystems'in SPARCstation 1'ine kadar uzanan .au formatında da kullanılır. sistemler. Au formatı ayrıca Java 1.1'deki sun.audio Java paketindeki sınıflar ve bazı C# yöntemleri gibi çeşitli yaygın ses API'lerinde de kullanılır.
Bu çizim μ-yasasının örneklemeyi daha küçük (daha yumuşak) değerlerde nasıl yoğunlaştırdığını gösterir. Yatay eksen 0-255 bayt değerlerini temsil eder ve dikey eksen μ-yasa kodlamasının 16 bitlik doğrusal kodu çözülmüş değeridir.
A kanunu ile karşılaştırma
[değiştir | kaynağı değiştir]μ-yasası algoritması, küçük sinyaller için daha kötü orantısal bozulmalar pahasına A-yasası'ndan biraz daha geniş bir dinamik aralık sağlar. Sözleşmeye göre, en az bir ülkenin kullanması durumunda uluslararası bağlantı için A kanunu kullanılır.
Ayrıca bakınız
[değiştir | kaynağı değiştir]- Ses seviyesi sıkıştırma
- Sinyal sıkıştırma (belirsizliği giderme)
- G.711, A-yasası veya μ-yasası kodlamasını kullanan bir dalga biçimi konuşma kodlayıcısı
- Taperlenmiş kayan nokta
Kaynaklar
[değiştir | kaynağı değiştir]- ^ "Video/Voice/Speech Codecs". Grandstream=. 20 Eylül 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 19 Temmuz 2020.
- ^ Ess, David Van (29 Aralık 2014). "Cypress Semiconductor AN2095: Algorithm - Logarithmic Signal Companding - Not Just a Good Idea - It Is μ-Law" (PDF). Infineon Technologies. 6 Ekim 2022 tarihinde kaynağından (PDF) arşivlendi. Erişim tarihi: 28 Haziran 2023.
- ^ a b "Waveform Coding Techniques - Cisco". 2 Şubat 2006. 28 Şubat 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Aralık 2020.
- ^ "G.191 : Software tools for speech and audio coding standardization". www.itu.int. 1 Haziran 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Kasım 2023.