Geri Dön
Regresif JPEG'ler: tek bir görüntü dosyasına saklanan video
SiTech AI Team2 წთ. საკითხავი

Regresif JPEG'ler: tek bir görüntü dosyasına saklanan video

Bir blog yazısı, JPEG'in progresif taramalarının zincirlenmesiyle tek bir görüntü dosyasının indirilirken görüntüler arasında geçiş yapabildiğini ya da kısa bir video oynatabildiğini gösteriyor. Pratik bir kullanımı yok.

maurycyz.com'da yayımlanan bir yazı, JPEG biçiminin progresif modunun — kısmen indirilmiş bir görüntünün kesik bir görüntü yerine düşük çözünürlüklü bir önizleme olarak görünmesini sağlayan özelliğin — tek bir dosyada koca bir kısa videoyu ya da birkaç farklı resmi saklamanın yoluna nasıl dönüştürülebileceğini gösteriyor.

Progresif taramalar nasıl çalışır

Progresif JPEG, sıkıştırılmış veriyi her biri kendi başlığını taşıyan bir dizi taramaya böler. İlk tarama, üç renk kanalının yalnızca en düşük (DC) Fourier bileşenini taşır; bu, görüntünün çok düşük çözünürlüklü bir önizlemesini çizmeye yeter. Ardından gelen sekiz tarama geri kalanı tamamlar: önce parlaklığa ilişkin ek ayrıntılar, sonra düşük duyarlılıkta tam veri, en sonunda eksik kalan bitler. Renk, YCbCr uzayında yarım çözünürlükte saklanır; bu yüzden bir görüntünün tüm renklilik verisi, tek başına parlaklık verisi kadar yer kaplar.

İndirilirken resmin üzerine yazmak

Her tarama kendi spektral aralığını bildirdiği için, sonraki taramaların hâlihazırda çizilmiş verinin üzerine yazdığı bir JPEG kurmak mümkün. Yöntem kaba: aynı çözünürlükteki birkaç JPEG'i uç uca ekleyip görüntü başlangıcı, çerçeve başlangıcı ve görüntü sonu işaretçilerini silmek gerekiyor; yazar bunu kısa bir C programıyla yapmış. Yavaş bir bağlantıda böyle bir dosya indirilirken gözle görülür biçimde bir resimden diğerine dönüşüyor. Ne var ki çözücülerin çoğu belirli sayıda taramadan sonra duruyor — görünüşe göre sıkıştırma bombası türü saldırılara karşı bir önlem olarak — ve bu yüzden basit yaklaşım yaklaşık dokuz kareyle sınırlı kalıyor.

Tek dosyada doksan kare

Daha fazla kare sığdırmak için her karenin olabildiğince küçük olması gerekiyor. Bir progresif tarama AC (sıfırın üstündeki bileşenler) ve DC verisini aynı anda içeremez, temel mod ise ilk taramadan sonra durur; dolayısıyla olası en küçük progresif JPEG tek bir DC taramasıdır. Dönüşüm 16×16 bloklar üzerinde çalıştığı için böyle bir kare düz bir renk değildir: özgün çözünürlüğün on altıda biri kadar ayrıntıyla çizilir. Chrome yaklaşık doksan kareden sonra pes ediyor, Firefox ise daha sabırlı. Kareler standarda tamamen uygun ve jpegtran aracıyla bir tarama dosyası bildirilerek üretilebiliyor.

Pratik bir uygulaması yok: JPEG zamanlama bilgisi taşımadığı için oynatma hızı tamamen ağ gecikmesine bağlı. Yazar, tekniğin en çok alışılmadık rickroll'lar için işe yaradığını belirtiyor ve benzer deneylere bağlantı veriyor: yalnızca dialog öğelerinden kurulmuş bir HTML videosu ve CSS ile JavaScript olmadan çalışan etkileşimli bir tek sayfa uygulaması. Kareleri birleştiren program yazının yanında yayımlandı.

SSiTech

SiTech — AI destekli web geliştirme

Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.