U-kanunu algoritması

Vikipedi, özgür ansiklopedi
Bir giriş sinyalinde (yeşil) A-yasası (mavi) ve μ-yasası (kırmızı) sıkıştırmasının karşılaştırılması. Her iki eksen de desibel cinsinden logaritmik ölçeği kullanır.

μ-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]

μ-kanunu fonksiyonu
Ters μ-kanunu fonksiyonu

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.

Nicelenmiş μ-yasası algoritması
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. .

Dosya:Ulaw.JPG
İnternette yaygın olarak bulunan Sun Microsystems C dili rutini g711.c ile oluşturulan μ-yasası kod çözme.

μ-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]

Kaynaklar[değiştir | kaynağı değiştir]

  1. ^ "Video/Voice/Speech Codecs". Grandstream=. 20 Eylül 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 19 Temmuz 2020. 
  2. ^ 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. 
  3. ^ a b "Waveform Coding Techniques - Cisco". 2 Şubat 2006. 28 Şubat 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Aralık 2020. 
  4. ^ "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. 

Dış bağlantılar[değiştir | kaynağı değiştir]

Şablon:Compression Methods