OGG, Ses Verisi Sıkıştırma Yöntemi

1. Giriş

Ogg, Xiph.org tarafından geliştirilen ve ses, video dosyaları için oluşturulan içerici biçime (container format) verilen addır.

Xiph.Org Kuruluşu, ücretsiz çoklu ortam biçimleri ve yazılım araçları üreten ve kar gütmeyen bir organizasyon olarak, Chris Montgomery tarafından kurulmuştur. İlk Ogg içerik biçimleyicisi üzerine yapılan çalışmalara 1994 yılında başlanmıştır.  Kuruluş, özellikle, Mp3 (MPEG-1 Audio Layer 3) ve AAC (Advanced Audio Coding-Gelişmiş Ses Kodlaması) ses verisi kodlama yöntemleri ile yarışabilecek açık, ücretsiz ve patent hakkı ücretsiz olarak tasarlanmış Ogg biçim ailesi, üzerine odaklanmıştır.

Ogg ismi, bir bilgisayar oyunu olan Netrek’te geçen “ogging” ifadesinden türemiştir ve herhangi bir ifadenin kısaltması olmadığı şeklinde, kuruluş tarafından ifade edilmektedir.

Bir içerici biçim olmasına rağmen, Ogg genellikle bir sıkıştırma/kodlama yöntemi olan Vorbis / Ogg Vorbis ile karıştırılmaktadır.

Xiph.org Kuruluşu, Ogg içerici biçim üzerine geliştirilen Vorbis, Flac, Speex, Theora ve Tremor gibi açık olarak geliştirdiği ve patent ücretsiz olarak sunduğu dosya biçimleri üzerinde çalışmaktadır.

2. Ogg İçerici Biçim (Container Format)

İçerici biçim, farklı çoklu ortam dosyalarının ve dosya bilgilerinin nasıl depolanacağını tanımlayan ve içerisinde depolayabilen bir yapıdır. İçerici biçim içerisine farklı kodlama teknikleri ile oluşturulmuş dosyala ve bilgiler eklenebilir. (Örneğin, Vorbis, Divx, Mp3, Ac3 v.b.)

Ogg içerici biçimi, Ogg Page olarak adlandırılan veri yığınlarından oluşmaktadır. Her bir sayfa, kendini tanımlayan OggS karakter dizisi ile başlar. Bu karakter dizisi, Ogg dosyalarını ayrıştırırken eşzamanlılığı sağlamak için kullanılan ve 4 bayt’tan oluşan bir dizisidir. Bu dizi aynı zamanda kodlama ve kod çözme işlemleri sırasında, ortaya çıkabilecek verinin kaybolması yada bozulması durumlarda yeniden eşzamanlılığın sağlanmasına yardımcı olur.

Veriye ait paketler, sayfa içerisinde kodlanmadan önce mantıksal çoklu parçalara ayrılmaktadır. Ham paket, mantıksal olarak 255 baytlık parçalara ayrılır ve son parçanın boyutu 255 bayttan daha küçüktür. Eğer parçanın uzunluğu 255 bayt olarak işaret edilirse, takip eden bölümün bahse konu bölüme bağlanacağı ve aynı paketin parçası olduğunu belirtir. Parçanın uzunluğunun, 0-254 bayt arasında olması, paket içerisinde son bölüm olduğu işaret eder. Paketin uzunluğunun 255’in katları olduğu durumlarda, son bölümün uzunluğu “0” dır.

|______________packet data__________________| 753 bytes
 segment table: 255,255,243

Şekil 1- Parça Tablosu Örneği

Ayrıca, bahse konu sayfa sahip olduğu, 8 bitlik bayrak alanı yardımı ile sayfanın içeriği hakkında bilgi vermektedir. Bu sayede, veri akışı içerisinde hangi sayfanın nasıl bir işlem gerçekleştireceği hakkında bilgi edinilmektedir.

Bit Değer Bayrak Sayfa Türü
0 0x01 Devam Belirtilen değer, veri akışı içindeki bir önceki paketin devam etmesi gerektiğini belirtir.
1 0x02 BOS (Beginning Of Stream) Bu sayfa, veri akışı içindeki ilk sayfadır. Akış başlangıç bayrağı, her bir veri akışının ilk sayfasında yer almalı ve diğer sayfalarda yer almamalıdır.
2 0x04 EOS

(End Of Stream)

Veri akışı içerisindeki son sayfadır. Akış bitiş bayrağı, her bir veri akışının son sayfasında yer almalı ve diğer sayfalarda yer almamalıdır.

Tablo 1 – Başlık Türü Bilgi Tablosu

3. Vorbis/Ogg Vorbis

Vorbis, kayıplı bir ses sıkıştırma/kodlama biçimidir. MP3, VQF, AAC gibi sayısal ses biçimleri ile rekabet edebilecek şekilde geliştirilmiştir. Bahsedilen biçimlerden farkı ise tamamen ücretsiz, açık ve patent ücretsiz olmasıdır.

Genel olarak, orta yada yüksek kalitedeki ses ve müzikler için kodlanmış bir ses biçimi olarak ifade edilmektedir. Teknik olarak, 8kHz’den 192kHz’e kadar örnekleme oranına sahiptir. 16 ve artı bitlik, tek ve çoksesli, iki kanallı ve 255 farklı kanala sahip ses dosyalarını desteklemektedir. Bu sayede Vorbis, MPEG-4 (AAC) yakın fakat, MPEG-1/2 audio layer 3, MPEG-4 audio(TwinVQ), WMA ve PAC’dan daha iyi bir performansa sahip olmaktadır.

Ses dosyaları için yapılan kodlama işlemleri genellikle, ihtiyaç duyulan kaliteye uygun şekilde bit oranı ile belirlenmektedir. (Örneğin, 128kbps,64kbps v.b.) Buna karşın, Vorbis biçimi, -1’den başlayan ve 10’a kadar devam eden ve ifade edilen kalite oranlarına göre kodlama işlemlerini yapmaktadır. Bahse konu oran tablosu aşağıda verilmiştir.

Kalite Değeri (Quality) Bit Oranı (Bit Rate) Kalite Değeri (Quality) Bit Oranı (Bit Rate) Kalite Değeri (Quality) Bit Oranı (Bit Rate)
-1 45 kbit/s 3 112 kbit/s 7 224 kbit/s
0 64 kbit/s 4 128 kbit/s 8 256 kbit/s
1 80 kbit/s 5 160 kbit/s 9 320 kbit/s
2 96 kbit/s 6 192 kbit/s 10 500 kbit/s

Tablo 1– Vorbis Sıkıştırma Biçimi Kalite Değer Tablosu

Örneğin, Vorbis biçimi seviye 3 kalite değeri ile kodlanmış bir dosyanın, ortama bit oranı 112kbps olarak karşımıza çıkmaktadır. Fakat, bu değer 128kbps bit oranı ile kodlanmış bir Mp3 biçiminden daha iyi sonuç vermekte, %10 kadar daha az dosya boyutuna sahip olmakta  ve 160kbps bit oranı ile kodlanmış Mp3 biçimi kadar kaliteye sahip olmaktadır.  Ayrıca, kalite değeri 2 ile yapılan kodlama, 128kbps’lik bit oranı yapılan Mp3 kodlama kalitesine denk gelmekte ve yaklaşık %20 daha az yer kaplamaktadır.

Belirtilen sebepten dolayı, Vorbis topluluğu, “bit rate” şeklindeki oranlamalar ile kodlama yerine, kalite oranlarına göre işlem yapılmasını tavsiye etmektedir. Ayrıca, Vorbis “bitrate peeling” olarak adlandırılan, daha önce kodlama işlemi yapılmış yüksek bit oranına sahip dosyadan daha düşük bit oranına sahip dosya üretilmesine olanak sağlamaktadır.

Vorbis dosyaları, sadece iki kanallı ses ile sınırlı kalmamaktadır. 255 farklı kanal yardımı ile, örneğin 6 kanallı DVD ses dosyalarını destekleyebilmektedir.

Konu ile ilgili, olarak StreamIt Şirketi tarafından gerçekleştirilen çalışmada, m-original.wav (12Mb) ses dosyası, farklı kodlayıcılar ile sıkıştırılma işlemine tabi tutulmuş ve sonuçlar aşağıda sunulmuştur. Şekilde, kodlanmış dosyaya ait, örnekleme sayısı, bit oranı ve kanal sayısı verilmiştir. Seçilen kodlayıcılar sırası ile aşağıda belirtilmiştir.

– MP3 – Lame Encoder v3.98.2<
– AAC+ (HE-AACv2 for stereo and HE-AAC v1 for mono) – Nero Encoder v1.3.3.0
– Ogg Vorbis – oggenc2.exe (OggEnc v2.84)

Şekil 2 – Karşılaştırma Tablosu

Songbird, Winamp, MediaPlayer, Mplayer, VLC Media player, OggPlay v.b. pek çok oynatıcı Vorbis ses dosyalarını desteklemekle birlikte, Iphone, PocketPc, ve çok sayıda Linux dağıtımı oynatıcı eklentileri ile Ogg uzantılı dosyaları desteklemektedir.

Kaynaklar

An Introduction to Ogg Vorbis, StreamIT. Eylül 2009
http://tr.wikipedia.org/wiki/Ogg, Ogg Vorbis
http://en.wikipedia.org/wiki/Container_format(digital), İçerici Biçim
http://shiftdelete.net/xiph.org-754.html , Xiph.org: Özgür Çoklu Ortam
http://www.vorbis.com/faq/
http://www.cs.columbia.edu/~coms6181/slides/6/audio.ppt, Henning Schulzrinne
Dept. of Computer Science Columbia University Fall 2003 – Audio
Bilim ve Teknik Dergisi, Eylül 2002. Ogg Vorbis Sahnede
http://www.xiph.org/ogg/doc/rfc3533.txt, The Ogg Encapsulation Format Version

Not: Bu yazı Murat Türkoğlu tarafından derlenmiştir.
Print Friendly, PDF & Email

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir