CELT - CELT

CELT
Tarafından geliştirilmiş Xiph.Org Vakfı
Biçim türü Ses
İçeriği: Ogg
Genişletilmiş başyapıt
Standart belgeler
libcelt
Geliştirici(ler) Xiph.org Vakfı , Jean-Marc Valin
Önizleme sürümü
0.11.1 / 15 Şubat 2011 ; 10 yıl önce ( 2011-02-15 )
Tip Ses codec bileşeni , referans uygulaması
Lisans 2 tümceli BSD
İnternet sitesi opus-codec .org

Constrained Energy Lapped Transform ( CELT ) açık, telif ücretsiz kayıplı bir ses sıkıştırma formatı ve düşük gecikmeli sesli iletişimde kullanım için özellikle düşük algoritmik gecikmeye sahip ücretsiz bir yazılım codec bileşenidir . Algoritmalar açıkça belgelenmiştir ve yazılım patent kısıtlamaları olmaksızın kullanılabilir . Formatın geliştirilmesi Xiph.Org Vakfı ( Ogg kodek ailesinin bir parçası olarak ) tarafından sürdürüldü ve daha sonra İnternet Mühendisliği Görev Gücü'nün (IETF) Opus çalışma grubu tarafından koordine edildi .

CELT, hem yüksek kaliteli sesin hem de düşük gecikmenin istendiği uygulamalar için Vorbis ve Speex arasındaki boşluğu kapatmayı amaçlıyordu . Hem konuşma hem de müzik için uygundur. CELP algoritmasından fikirler alır , ancak yalnızca frekans alanında çalışarak bazı sınırlamalarından kaçınır .

Orijinal bağımsız CELT, Opus ile birleştirildi . Bu nedenle, tek başına biçim olarak CELT artık terk edilmiş ve modası geçmiştir. SILK ile bütünleşmiş bir Opus katmanı olarak sadece melezleştirilmiş formu için geliştirme devam etmektedir . Bu makale, tarihi, bağımsız biçimi kapsar; Opus'a entegrasyondan bu yana entegre form ve evrimi için Opus hakkındaki makaleye bakın.

Özellikler

CELT'in temel özelliği düşük algoritmik gecikmedir. Tipik olarak 3 ila 9 ms'lik gecikmelere izin verir, ancak benzer bir ses kalitesine ulaşmak için daha fazla bit hızı karşılığında 2 ms'nin altına yapılandırılabilir. CELT, mono ve stereo sesi destekler ve hem konuşma hem de müzik için geçerlidir. Bu kullanabilir örnekleme oranı 24 kbit / s ile 128 kbit / s kanal başına ve yukarıdan bir uyarlanabilir bit 48 kHz ve yukarıda 32 kHz.

CELT algoritmasıyla ilgili bilinen hiçbir fikri mülkiyet sorunu yoktur ve referans uygulaması, izin verilen bir açık kaynak lisansı ( 2 maddeli BSD ) altında yayınlanır .

Gibi Vorbis , CELT bir fullband (tüm insan olan işitme aralığı ) genel amaçlı codec, yani ses sinyallerinin özel tipleri için uzmanlaşmış ve onun kardeş projesinden dolayısıyla farklı değil Speex . Biçim, yüksek bit hızlarında şeffaf sonuçlar ve düşük bit hızlarında çok iyi kalite sağlar. Sonuçta, sıkıştırma yetenekleri kıyasla önemli ölçüde daha üstün olduğu söylenen MP3 ve telefon gibi gerçek zamanlı uygulamalar için başka kullanışlı özellik olarak, daha düşük bit hızlarında Kelt ses kalitesi bile eşit seviyede yer alıyor HE-AAC , v1 bant katlanması sayesinde . Karşılaştırmalı çift kör dinleme testlerinde, ~64 kBit/s'de HE-AACv1'den belirgin şekilde üstün olduğu kanıtlanmıştır.

AAC'nin (AAC-LD) düşük gecikmeli varyantına benzeyen ve Vorbis'in karmaşıklığının önemli ölçüde altında kalan, nispeten düşük bir hesaplama karmaşıklığına sahiptir .

Bu için olanak sabiti ve değişken bit hızı. Konuşma duraklamaları ve benzeri durumlarda sinyal gürültü zemininde kaybolursa, iletim, konfor gürültüsü çıkışını dekodere sinyal vermek üzere sınırlandırılabilir . Doğal olarak akış özellikli formatın çoğu ayarı, iletimi kesintiye uğratmadan anında değiştirilebilir.

Biçim, iletim hatalarına karşı dayanıklıdır. Bit hataları kadar tüm paketlerin kaybı da ses kalitesinde ( paket kaybı gizleme , PLC) sabit bir düşüşle maskelenebilir .

teknoloji

codec bileşeninin blok şeması

CELT, değiştirilmiş ayrık kosinüs dönüşümüne (MDCT) ve CELP'den (uyarma için bir kod kitabıyla, ancak frekans alanında) kavramlara dayanan bir dönüşüm kodeğidir .

İlk PCM kodlu sinyal, MDCT ( pencere işlevi ) için nispeten küçük, örtüşen bloklarda işlenir ve frekans katsayılarına dönüştürülür. Özellikle kısa bir blok boyutu seçmek, bir yandan düşük gecikme süresi sağlar, ancak aynı zamanda telafi edilmesi gereken zayıf frekans çözünürlüğüne de yol açar. Ses kalitesinde küçük bir fedakarlık pahasına algoritmik gecikmenin daha da azaltılması için, doğası gereği bloklar arasındaki örtüşmenin %50'si, sırasıyla bir bloğun her iki ucunda bir sekiz sırasında sinyal susturularak pratik olarak yarıya indirilir. .

Katsayılar , insan işitsel sisteminin kritik bantlarına benzeyecek şekilde gruplandırılmıştır . Her grubun tüm enerji miktarı analiz edilir ve değerler , veri indirgemesi için nicelenir ve yalnızca farkı tahmin edilen değerlere ileterek ( delta kodlaması ) tahmin yoluyla sıkıştırılır .

(Kuantize edilmemiş) bant enerji değerleri, ham DCT katsayılarından (normalizasyon) çıkarılır. Elde edilen artık sinyalin katsayıları ("bant şekli" olarak adlandırılır), Piramit Vektör Niceleme (PVQ, küresel vektör niceleme ) tarafından kodlanır . Bu kodlama, sabit (öngörülebilir) uzunluktaki kod sözcüklerine yol açar, bu da bit hatalarına karşı sağlamlık sağlar ve entropi kodlamasına gerek bırakmaz . Son olarak, kodlayıcının tüm çıktıları, bir aralık kodlayıcı tarafından bir bit akışına kodlanır . PVQ ile bağlantılı olarak, CELT, bant katlama olarak bilinen ve daha yüksek bantlar için düşük bant katsayılarını yeniden kullanarak spektral bant çoğaltmaya (SBR) benzer bir etki sağlayan , ancak algoritmik gecikme ve hesaplama karmaşıklığı üzerinde daha az etkiye sahip olan bir teknik kullanır. SBR. Bu , uygun frekans bantlarında daha fazla zenginlik koruyarak "birdie" artefaktlarına karşı çalışır .

Kod çözücü, aralık kodlu bit akışından tek tek bileşenleri açar, bant enerjisini bant şekli katsayılarıyla çarpar ve bunları (iMDCT aracılığıyla) PCM verilerine geri dönüştürür. Bireysel bloklar, ağırlıklı örtüşme ekleme (WOLA) kullanılarak yeniden birleştirilir . Birçok parametre açıkça kodlanmaz, bunun yerine kodlayıcı ile aynı işlevler kullanılarak yeniden oluşturulur.

İçin bağlama kanalı kullanabilir CELT M / stereo S veya yoğunluk stereo . Bloklar, bitişik çerçevelerden bağımsız olarak tanımlanabilir (Çerçeve içi ); örneğin bir kod çözücünün çalışan bir akışa atlamasını sağlamak için. Dönüştürme kodekleriyle, yankı öncesi eserler olarak adlandırılanlar duyulabilir hale gelebilir, çünkü keskin, enerji açısından yoğun seslerin ( geçiciler ) nicemleme hatası tüm DCT bloğuna yayılabilir ve geçici, onları zamanda geriye ve ileriye doğru maskelemez. . CELT ile her blok, bu tür artefaktları engellemek için daha fazla bölünebilir.

Tarih

Bir Vorbis halefi için planlar ve taslaklar üzerindeki ilk çalışma, 2005 yılında Ghost projesinin bir parçası olarak Xiph.org'da yapıldı (başlangıçta “Vorbis II” olarak konuşuldu). Vorbis'in yaratıcısı Christopher Montgomery ile birlikte yapılan bu tartışma , Jean-Marc Valin'in özellikle düşük gecikmeli bir codec bileşenine ilgi duymasına yol açtı. Valin 2007'den beri CELT üzerinde çalışmaktadır. Aralık 2007'de, libcelt'in ilk taslak versiyonu 0.0.1 versiyonu olarak yayınlandı ve başlangıçta “Code-Excited Lapped Transform” olarak adlandırıldı. CELT, Temmuz 2009'da "ietfcodec" çalışma grubu altında bir IETF teknolojisi olarak kuruldu . Mayıs 2009'da, CELT Codec için bir RTP yük formatı taslağı yayınlandı.

Sürüm 0.9'da, o zamana kadar kullanılan frekans alanında çalışan perde tahmini, Broadcom'dan Raymond Chen tarafından katkıda bulunulan zaman alanında bir ön ve son filtre çifti ile daha az karmaşık bir çözümle değiştirildi .

4 Şubat 2011'den itibaren CELT 0.11 ile biçim geçici olarak donduruldu ("yumuşak dondurma") - beklenmedik bir şekilde gerekli olan son değişikliklerin olasılığı saklı tutuldu.

CELT/ SILK hibrit kodek Opus'un (eski adıyla Harmony) ortaya çıkmasından kısa bir süre sonra, CELT'in ayrı bir proje olarak geliştirilmesi durduruldu, bunun yerine spektral aralığın alt kısmını tedavi etmeyi amaçlayan Opus temelinde yaşıyordu. doğrusal tahmin (SILK) ile zaman alanı ve MDCT ile frekans alanında daha yüksek kısım . Opus taslağı, Eylül 2010'dan beri IETF'de kayıtlıdır.

Yazılım

Yazılım kütüphanesi libcelt olarak hizmet veren referans uygulanması Celt için, yazılı C ve olarak yayınlanan ücretsiz yazılım Xiph kendi 3-maddeli BSD-imsi lisansı altında.

Formatın tam olarak dondurulmamasına rağmen Ocak 2009'da soft- freeze'a girerek CELT'e geçen Ekiga ve FreeSWITCH gibi birçok VoIP uygulamasında , Mumble , TeamSpeak ve diğer yazılımlarda kullanılıyordu. Nisan 2011'de, Celt desteği dahil edilmiştir FFmpeg'den .

CELT ayrıca aşağıdakiler tarafından desteklenir veya kullanılır:

Ayrıca bakınız

Referanslar

Dış bağlantılar