Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Dijital medyayı yeni kullanıyorsanız, bu konu bir Media Foundation uygulaması yazmadan önce anlamanız gereken bazı kavramları tanıtır.
Akarsu
akış, tekdüzen türe sahip bir medya veri dizisidir. En yaygın türler ses ve video türleridir, ancak bir akış metin, betik komutları ve hareketsiz görüntüler de dahil olmak üzere neredeyse her tür veri içerebilir. Bu belgedeki akış terimi, ağ üzerinden teslim anlamına gelmez. Yerelde oynatma için tasarlanmış bir medya dosyası da akışlar içerir.
Genellikle, medya dosyası tek bir ses akışı veya tam olarak bir video akışı ve bir ses akışı içerir. Ancak, bir medya dosyası aynı türde birkaç akış içerebilir. Örneğin, bir video dosyası birkaç farklı dilde ses akışları içerebilir. Uygulama, çalışma zamanında hangi akışın kullanılacağını seçer.
Sıkıştırma
Sıkıştırma, yedekli bilgileri kaldırarak veri akışının boyutunu azaltan tüm işlemleri ifade eder. Sıkıştırma algoritmaları iki geniş kategoriye ayrılır:
- Kayıpsız sıkıştırma. Kayıpsız algoritma kullanıldığında, yeniden yapılandırılmış veriler özgün veriyle aynıdır.
- Kayıplı sıkıştırma. Kayıplı bir algoritma kullanarak, yeniden yapılandırılan veriler özgün verilerin yaklaşık bir sonucudur, ancak tam olarak eşleşmez.
Diğer etki alanlarının çoğunda kayıplı sıkıştırma kabul edilemez. (Elektronik tablonun "yaklaşık" bir kısmını geri almayı düşünün!) Ancak kayıplı sıkıştırma düzenleri, birkaç nedenden dolayı ses ve videoya çok uygundur.
İlk neden insan algısının fiziğiyle ilgilidir. Müzik kaydı gibi karmaşık bir ses dinlediğimizde, bu seste yer alan bazı bilgiler kulağa algılanamaz. Sinyal işleme teorisinin yardımıyla algılanamayan frekansları analiz etmek ve ayırmak mümkündür. Bu frekanslar algısal bir etki olmadan kaldırılabilir. Yeniden yapılandırılmış ses orijinal sesle tam olarak eşleşmese de, dinleyiciye aynı şekilde ses verecektir. Video için de benzer ilkeler geçerlidir.
İkincisi, amaçlanan amaca bağlı olarak ses veya görüntü kalitesinde bir miktar düşüş kabul edilebilir. Örneğin telefonlarda ses genellikle yüksek oranda sıkıştırılmıştır. Sonuç, telefon görüşmesi için yeterlidir ancak telefon üzerinden bir senfoni orkestrasını dinlemek istemezsiniz.
Sıkıştırma, kodlama olarak da adlandırılır ve kodlayan bir cihaz kodlayıcı olarak adlandırılır. Ters işlem, kodunu çözme'dir ve cihaz doğal olarak kod çözücüolarak adlandırılır. Hem kodlayıcılar hem de kod çözücüler için genel terim, codec'tir. Codec'ler donanım veya yazılımda uygulanabilir.
Dijital medyanın ortaya çıkmasından bu yana sıkıştırma teknolojisi hızla değişti ve günümüzde çok sayıda sıkıştırma şeması kullanılıyor. Bu gerçek, dijital medya programlamanın başlıca zorluklarından biridir.
Medya Kapsayıcıları
Ham ses veya video akışını bilgisayar dosyası olarak depolamak veya doğrudan ağ üzerinden göndermek nadirdir. Bir kere, hangi codec bileşeninin kullanılacağını önceden bilmeden böyle bir akışın kodunu çözmek mümkün olmazdı. Bu nedenle, medya dosyaları genellikle aşağıdaki öğelerden en az bazılarını içerir:
- Akış sayısını, her akışın biçimini vb. açıklayan dosya üst bilgileri.
- İçeriğe rastgele erişim sağlayan bir dizin.
- İçeriği açıklayan meta veriler (örneğin, sanatçı veya başlık).
- Ağ iletimini veya rastgele erişimi etkinleştirmek için paket üst bilgileri.
Bu belgede akışlar, üst bilgiler, dizinler, meta veriler vb. paketinin tamamını açıklamak için kapsayıcı terimi kullanılır. dosya yerine kapsayıcı terimini kullanmanın nedeni, bazı kapsayıcı biçimlerinin canlı yayın için tasarlanmış olmasıdır. Bir uygulama kapsayıcıyı gerçek zamanlı olarak oluşturabilir ve hiçbir zaman bir dosyaya depolamaz.
Medya kapsayıcısının ilk örneklerinden biri AVI dosya biçimidir. Diğer örnekler arasında MP4 ve Gelişmiş Sistemler Biçimi (ASF) sayılabilir. Kapsayıcılar dosya adı uzantısıyla (örneğin, .mp4) veya MIME türüne göre tanımlanabilir.
Aşağıdaki diyagramda bir medya kapsayıcısı için tipik bir yapı gösterilmektedir. Diyagram belirli bir biçimi temsil etmez; her biçimin ayrıntıları büyük ölçüde farklılık gösterir.
Tipik bir medya kapsayıcısıdiyagramı
Diyagramda gösterilen yapının hiyerarşik olduğuna ve üst bilgi bilgilerinin kapsayıcının başında gösterildiğine dikkat edin. Bu yapı birçok kapsayıcı biçimine (ancak tümüne değil) özgüdür. Ayrıca, veri bölümünün araya kaydedilen ses ve video paketleri içerdiğine de dikkat edin. Bu tür ara ekleme, medya kapsayıcılarında yaygındır.
çoğullama terimi, ses ve video akışlarını paket haline getirme ve paketleri kapsayıcıya ekleme işlemini ifade eder. Paketlenmiş verilerden akışları yeniden birleştiren ters işlem, demultiplekslemeolarak adlandırılır.
Biçim
Dijital medyada biçim terimi belirsizdir. Biçim, H.264 video gibi kodlama türüne veya MP4 gibi kapsayıcıya başvurabilir. Bu fark genellikle sıradan kullanıcılar için kafa karıştırıcıdır. Medya biçimlerine verilen adlar her zaman yardımcı olmaz. Örneğin MP3 hem kodlama biçimine (MPEG-1 Ses Katmanı 3) hem de dosya biçimine başvurur.
Ancak, bir medya dosyasının okunması aslında iki aşamadan oluştuğundan bu ayrım önemlidir:
- İlk olarak kapsayıcı ayrıştırılmalıdır. Çoğu durumda, bu adım tamamlanana kadar akış sayısı ve her akışın biçimi bilinmez.
- Ardından, eğer akışlar sıkıştırılmışsa, uygun kod çözücüler kullanılarak kodları çözülmelidir.
Bu durum oldukça doğal bir şekilde kapsayıcıları ayrıştırmak ve akışların kodunu çözmek için ayrı bileşenlerin kullanıldığı bir yazılım tasarımına yol açar. Ayrıca bu yaklaşım, üçüncü tarafların kendi ayrıştırıcılarını ve codec bileşenlerini sağlayabilmesi için bir eklenti modeline de olanak sağlar. Windows'da, Bileşen Nesne Modeli (COM), api'yi uygulamadan ayırmak için standart bir yol sağlar. Bu, herhangi bir eklenti modeli için bir gereksinimdir. Bu nedenle (diğerlerinin arasında), Media Foundation COM arabirimlerini kullanır.
Aşağıdaki diyagramda bir medya dosyasını okumak için kullanılan bileşenler gösterilmektedir:
Medya dosyası yazmak için de iki adım gerekir:
- Sıkıştırılmamış ses/video verilerini kodlama.
- Sıkıştırılmış verileri belirli bir kapsayıcı biçimine yerleştirme.
Aşağıdaki diyagramda, medya dosyası yazmak için kullanılan bileşenler gösterilmektedir:
İlgili konular