Veri Sıkıştırma Algoritmaları Ders 3: Ses Sıkıştırma Yöntemleri Yrd. Doç. Dr. Altan MESUT Ses Kodlama Yöntemleri Ses dalgası kodlaması (waveform coding) Ses dalgaları belirli aralıklar ile örneklenerek sayısal hale getirilir Ses dalgası kodlaması ile her türde ses (insan sesi, makine sesi, müzik, vs.) kaliteli bir şekilde sıkıştırabilir. Konuşma kodlaması (speech coding) Konuşmanın analizine dayalı bir model oluşturularak, bu model üzerinden parametreler üretilmesi ile kodlama yapılır. Konuşma kodlaması, ses dalgası kodlamasına göre daha yüksek oranda sıkıştırma sağlar. Ama konuşma kodlaması ile müzik gibi farklı yapıya sahip ses verileri sıkıştırıldığında çok düşük kalitede sonuç elde edilir. 2 PCM (Pulse Code Modulation) Ses sinyali belirli zaman aralıklarında örneklenir ve her örnek için dalganın yüksekliği elde edilir. Bu yükseklik değerleri belirli bir bit oranı ile nicelenerek bit katarı oluşturulur. CD kalitesi: Örnekleme hızı: 1/44100 sn (44.1 kHz) Niceleme adım büyüklüğü: 16 bit 3 Sayısal Ses Dalgası Sıkıştırma Yöntemleri Kayıpsız sıkıştırma yöntemleri: DPCM (Differential Pulse Code Modulation) ADPCM (Adaptive DPCM) ALS (Audio Lossless Coding) Kayıplı sıkıştırma yöntemleri: MP3 (MPEG-1 Layer III) AAC (Advanced Audio Coding) WMA (Windows Media Audio) 4 DPCM (Differential PCM) DPCM, kodlanacak örnek değeri önceki örneklerin yardımı ile tahmin ederek, örneğin gerçek değeri ile tahmin edilen değer arasındaki farkı kodlar (artık değer kodlaması). Eğer önceki 3 sembol 2, 5 ve 8 ise, Doğrusal Öngörü modeline göre her seferinde 3 birimlik artış olduğu ve bir sonraki değerin 11 olabileceği tahmin edilebilir. Eğer bir sonraki değer 12 çıkarsa, +1 değeri kodlanır. Klasik fark kodlaması yapılsaydı 8 ile 12 arasındaki fark olan 4 değeri kodlanacaktı. Bu örnekte görüldüğü gibi, öngörü modeli sayesinde daha küçük değerler kodlanır. 5 ADPCM (Adaptive DPCM) DPCM’de yer alan niceleme ve öngörme aşamalarının, kodlanan ses verisinin karakteristik özelliklerine göre uyarlanabilir olmasıdır. İleri yönde uyarlanır öngörüde bir çerçeve işlenmeden önce, o çerçeve için en uygun öngörü ve niceleme katsayıları belirlenir ve bu değerler öngörü işleminin sonuç değerleri ile birlikte yan bilgi olarak aktarılır. Geri yönde uyarlanır öngörüde ise, en uygun öngörü ve niceleme bir önceki çerçeveye dayalı olarak belirlendiği için, kod çözücü de aynı öngörüyü yapabileceğinden, sadece çerçeve bilgisinin gönderilmesi yeterlidir. Geri yönde uyarlanır öngörüde yan bilgi gönderilmediği için veri oranı daha düşüktür, fakat bir önceki çerçeve düşünülerek tahmin yapıldığı için tahmin hataları daha büyüktür. 6 ALS (Audio Lossless Coding) MPEG-4 ALS standardı 2005 yılında tamamlanmıştır. 32-bit PCM çözünürlüğünü ve 192 kHz frekansı destekler. (CD-DA'da 16-bit ve 44.1 kHz) 65536 kanala kadar çoklu kanal desteği vardır. (CDDA’da 2) 32-bit kayan noktalı ses verisini destekler. (CD-DA'da tamsayı) wav, aiff, au, bwf ve raw gibi birçok sıkıştırılmamış ses formatını sıkıştırabilir. Kodlanmış verinin her bölgesine hızlı erişim sağlar. MPEG-4 Video sıkıştırması ile kullanılabilir. 7 ALS (Audio Lossless Coding) Giriş Çerçeve / Blok Bölümlemesi Veri Kontrol Uzun-Vadeli Öngörü Birleştirilmiş Kanal Kodlaması Bit Katarı Oluşturucu (Kısa-Vadeli) Öngörü Sıkıştırılmış Bit Katarı Entropi Kodlaması 8 ALS (Audio Lossless Coding) Ses verisi önce çerçevelere ayrılır. Daha sonra, çerçevelerin içindeki tüm kanallar ses örneklerinden oluşan bloklara bölünür. Her blok için ileri yönde uyarlanır öngörü yapılarak, öngörünün hatası hesaplanır. Temel (kısa-vadeli) öngörü, uzun-vadeli öngörü ile birleştirilebilir. Birleştirilmiş Kanal Kodlaması aşamasında ise kanallar arasındaki benzerliklerden faydalanılarak sıkıştırma oranı arttırılır. En son aşamada ise geriye kalan tahmin farkı Huffman benzeri bir entropi kodlaması ile sıkıştırılır. Oluşturulan bit katarının çerçeveleri arasında rasgele erişim mümkündür. 9 MP3 (MPEG-1 Layer III) 1987’de Almanya’da bir enstitüde EUREKA geliştirilmiştir. 1992’de bu algoritma ISO/IEC tarafından MPEG-1 standardına dâhil edilmiştir. (Bir yıl sonra MPEG-1 standardı yayınlandı.) Günümüzde, taşınabilir müzik çalarlarda ve Internet üzerinde müzik paylaşımında en çok kullanılan standarttır. 10 MP3 Kodlayıcısı PCM Giriş Analiz çok fazlı filtre bankası 0 1024 noktalı FFT 31 Pencereleme ve MDCT 0 Pencere tipleri Psikoakustik Model zaman etki alanı frekans etki alanı 575 Düzgün Olmayan Sayıl Niceleme Huffman Kodlaması Kenar bilginin kodlanması Bit akış düzeninin ve CRC kelimelerinin oluşturulması Yardımcı Veri Kodlanmış Ses Sinyali 11 Filtreleme Düşük frekanslı içerik sinyalin kimliğini verir. Yüksek frekanslı içerik ise sadece ayrıntıyı verir. İnsan sesi kaydedildikten sonra yüksek frekanslı bileşenleri atılırsa, ses farklılaşacak ama hala ne söylendiği anlaşılabilecektir. Ama düşük frekanslı bileşenler atılırsa, sinyalin asıl kimliği bozulacak ve anlamsız sesler duyulacaktır. 12 MP3’te Filtreleme Tüm MP3 dosyaları çerçeve (frame) adı verilen küçük parçalardan oluşmaktadır. Her çerçeve 1152 ses örneğinden oluşur (44.1 kHz örnekleme için 26 ms’lik zaman dilimine denk gelir.) Analiz çok fazlı filtre bankası kısmında, her bir çerçeveyi oluşturan 1152 örnek 32 eşit uzunlukta frekans alt bandına bölünerek her alt banda 36 örnek yerleştirilir. 13 Psiko-akustik model Sinyal Analiz çok fazlı filtre bankası ile işlenirken, aynı zaman diliminde sinyale Hızlı Fourier Dönüşümü (FFT) de uygulanır. FFT ile zaman etki alanından frekans etki alanına geçirilen sinyal daha sonra Psiko-akustik model’e gönderilir. Bu model, insan kulağının hangi sesleri algılayabileceğini hangilerini algılayamayacağını belirleyebilen bir yapıdır. İnsan kulağı duyma eşik değerlerinin dışında kalan sesleri veya kuvvetli bir ses tarafından maskelenen zayıf sesleri duyamaz. Bu nedenle bu sesler kodlamaya dâhil edilmezler. 14 Pencereleme Psiko-akustik model ile elde edilen bilgiler, MDCT’nin hangi pencere tipini seçmesi gerektiğine ve bir biçimsiz (nonuniform) niceleme işleminin frekans çizgilerini ne şekilde nicelemesi gerektiğine karar vermede yardımcı olur. Normal (uzun), kısa, başlangıç ve bitiş olmak üzere 4 farklı pencere tipi vardır. 15 Modified Discrete Cosine Transform Filtreleme işleminden sonra, her alt banda ait örnekler halen zaman etki alanındadır. Bu örnekleri frekans etki alanına geçirmek için her alt banda MDCT uygulanır. Aşağıda MDCT dönüşümünün formülü verilmiştir: 16 Düzgün Olmayan Sayıl Niceleme En çok zaman alan kısım olan düzgün olmayan niceleme işlemi, 576 değer için tekrarlanan iç içe iki döngü ile gerçekleştirilir. Bozunum kontrol döngüsü (dıştaki döngü), oran kontrol döngüsü (içteki döngü) içinde frekans etki alanı örneklerinin nicelenmesi ile üretilen niceleme gürültüsünü kontrol eder. Amaç, her ölçek çarpanı bandı için niceleme gürültüsünü maskeleme eşik değerinin altında tutmaktır. Eğer niceleme gürültüsünün maskeleme eşik değerini aştığı tespit edilirse, o bant için niceleme gürültüsünü azaltacak şekilde ölçek çarpanı ayarlanır. 17 Variable Bit Rate - VBR MP3 standardı, değişken bit oranı (Variable Bit Rate VBR) kullanarak ta sıkıştırma yapabilir. Bu sayede bir ses örneğinin karmaşık olan kısımları yüksek bit oranı ile, durağan olan kısımları daha düşük bit oranı ile sıkıştırılarak ses kalitesi arttırılabilir. VBR’nin dezavantajları da vardır: Müzik çalarların zamanı yanlış göstermelerine veya hiç gösterememelerine neden olan zamanlama sorunu yaşatır En önemli kullanım alanlarından olan radyo veya televizyon yayınları için elverişli değildir. 18 Kanal Tipleri MP3, tek kanal (mono), çift kanal, stereo ve birleşik stereo olmak üzere 4 farklı kanal tipini destekler. Çift kanal tipinin stereo’dan farkı, aynı yayın içinde iki farklı dilin iletilmesi gibi durumlarda kullanılabilmesidir. Birleşik stereo ise, sol ve sağ kanallar arasındaki benzerlikten faydalanarak daha etkin kodlama yapan bir kanal tipidir. M/S (middle/side) Stereo ve Intensity Stereo olarak adlandırılan iki farklı teknik ile gerçekleştirilir. 19 Birleşik Stereo MS Stereo tekniğinde sol (L) ve sağ (R) kanalları yerine middle (L+R) ve side (L-R) kanalları kullanılır. İki kanal birbirine yüksek oranda benzer ise side kanalı sürekli sıfıra yakın seyredeceği için sıkıştırmanın etkinliği artacaktır. Intensity Stereo tekniği ise, insan kulağının stereo etkinsi fark edemeyeceği kadar düşük veya yüksek frekanslı bölümlerin mono gibi kodlanması prensibine dayanır. 20 AAC (Advanced Audio Coding) MPEG tarafından geliştirilen AAC, 1997 yılında tamamlanarak MPEG-2 standardına dâhil edilmiştir. Daha sonra biraz daha geliştirilerek MPEG-4 hareketli görüntü sıkıştırma sisteminde de kullanılmıştır. AAC, MP3 ile geriye doğru uyumlu değildir (Bir AAC kod çözücüsü bir MP3 dosyasını açamaz). 21 AAC’nin Temel Özellikleri AAC, MP3’te olan kodlama tekniklerini daha etkili bir şekilde kullanır: Daha iyi frekans çözünürlüğü sağlamak amacıyla uzun pencereler MP3’tekilerden yaklaşık iki kat daha büyük hale getirilmiştir. Daha az ön-yankı ve daha iyi pencere değiştirme idaresi sağlamak için kısa pencereler MP3’tekilerden daha küçük hale getirilmiştir. M/S stereo çerçevenin tamamı yerine alt bant temelli yapılabilmektedir. Yoğunluk stereo sadece bitişik alt bant gruplarında kullanılmak yerine alt bant temelli yapılabilmektedir. 22 TNS & Frekans etki alanı öngörüsü AAC, MP3’te olmayan TNS ve frekans etki alanı öngörüsü araçlarını da içermektedir. TNS (Temporal Noise Shaping): Filtrelenmiş katsayıların iletimi sayesinde niceleme gürültüsünün yerini kontrol etmek amacıyla tasarlanmış bir araçtır. Frekans etki alanı öngörüsü: Durağan sinyallerin sıkıştırılabilirliğini arttırmak amacıyla tasarlanmış bir araçtır. 23 PNS & LTP MPEG-4 AAC, MPEG-2 AAC’de olmayan PNS ve LTP araçlarını içermektedir. PNS (Perceptual Noise Substitution): Sinyalin gürültüye benzer kısımları kodlanmayıp, bu gürültü yerine kod çözücü tarafında üretilen bir gürültü kullanılır. LTP (Long Term Prediction): Frekans etki alanı öngörüsüne göre daha az işlem gücü ile çalışan bir tahmin aracıdır. 24 AAC Profilleri Ana (Main) Profil: Tüm veri oranlarında en iyi ses kalitesinin elde edildiği, buna karşılık işlem gücü ve bellek gereksinimi en çok olan profildir. Düşük-Karmaşıklık (LC: Low-complexity) Profili: Çok iyi ses kalitesi sağladığı gibi, fazla bellek ve işlem gücü de gerektirmediği için birçok uygulama için uygun bir profildir. Ölçeklenebilir örnekleme oranı (SSR: Scalable sampling rate) Profili: Dört eşit parçaya bölünmüş olan bant genişliği ile frekans ölçeklenebilirliği sağlar. 25 AAC-HE Profili (MPEG-4) AAC LC profili ile SBR (Spectral Band Replication) bant genişliği arttırma aracının birleştirilmesi ile oluşan HE (High Efficiency) profili, 48 kbit/s bit oranında bile iyi stereo ses kalitesi sunar. 2003 Mart ayında yapılan MPEG toplantısında son hali verilmiştir. Çoklu kanal işlemlerinde de kullanılabilen HE-AAC, aacPlus adıyla da bilinir. 2004 yılında parametrik stereo özelliğinin de eklenmesi ile oluşturulan ikinci sürümü (HE-AAC v2) sayesinde sıkıştırma etkinliği daha da arttırılmıştır 26 SBR (Spectral Band Replication) SBR, yüksek frekansları daha düşük miktarda veri ile temsil ederek, düşük ve yüksek frekanslar arasındaki korelasyonu azaltır. SBR ile temsil edilen yüksek frekans verileri, daha sonra AAC kodlayıcısı tarafından sıkıştırılmış olan düşük frekans verileri ile birleştirilir. Örneğin HE-AAC ile 48 kbit/s bit oranında stereo kodlama yaptığımızda, bunun 42 kbit/s büyüklüğündeki kısmı AAC ile kodlanırken, yüksek frekansların yer aldığı 6 kbit/s büyüklüğündeki kısım ise SBR ile kodlanır. Bu sinyaller bit katarının oluşturulması aşamasında birleştirilir. SBR Verisi Ses Girişi Düşük SBR AAC Bit katarı HE AAC Kodlayıcı frekans Kodlayıcı birleştirici Bit katarı SBR Verisi Bit katarı ayırıcı AAC Düşük Ses SBR Ters Kodlayıcı Çıkışı Kodlayıcı frekans 27 PS (Parametrik Stereo) Sol ve sağ ses kanallarında sesler farklı zamanlarda oluşuyorsa, PS bu iki kanalı üst üste bindirip mono sinyal haline getirebilir ve hangi aralığın hangi kanala ait olduğunu da az miktarda yan bilgi ile kodlayabilir. Sol kanal Sol kanal Mono sinyal ters kodlama kodlama Sağ kanal 2-3kbit/s PS yan bilgisi Sağ kanal 28 MPEG Ses Kodlayıcılarının Özelliklerinin Karşılaştırılması 29 WMA (Windows Media Audio) WMA 9 temel kodlayıcı haricinde 3 kodlayıcı daha içermektedir: Pro kodlayıcı: Temel kodlayıcıya göre çok daha fazla özelliğe sahiptir. Temel kodlayıcı en fazla 48 kHz frekansı, 16 bit örneklemeyi, 192 kbit/s veri oranını ve 2 ses kanalını desteklerken, Pro kodlayıcı 96 kHz frekansı, 24 bit örneklemeyi, 768 kbit/s veri oranını ve 5.1 ve 7.1 kanal sayısını (surround sound) destekleyebilmektedir. Voice kodlayıcı: Konuşma kodlaması için tasarlanmıştır. Karma kip desteği sayesinde istenirse müzik türü sesleri de temel kodlayıcı kullanarak sıkıştırma özelliğine sahiptir. Kayıpsız (Lossless) kodlayıcı: Orijinal sesi 1/2- 1/3 oranında sıkıştırabilmektedir. 30 Kayıplı Ses Sıkıştırma Yöntemlerinin Karşılaştırılması EBU (European Broadcasting Union) tarafından 2003 yılında yapılan kayıplı ses kodlayıcıların 48 kbit/s veri oranında stereo kodlama performansları ile ilgili dinleme testinin sonuçları: 31 Kayıplı Ses Sıkıştırma Yöntemlerinin Karşılaştırılması Microsoft firması tarafından, WMA 9 Pro kodlayıcısı ile HE-AAC kodlayıcısının performansını karşılaştırmak amacıyla NTSL (National Software Testing Labs) kuruluşuna yaptırılan ve 2005 yılının Aralık ayında yayınlanan dinleme testinin sonuçları: 32