11 Kasım, 2007
Kategori:
yazılım |
|
Kaba bir hesap yapalım;
Elimizde 7.2 megapiksel boyutunda bir fotoğrafımız var. 3072*2304 piksel boyutlarında. Ve kendisinin derinliği 24 bit.
Yani 1 piksel için 24 bit=3 byte veri.
RGB bileşenleri için bir piksel eder sana 9 byte.
3072*2304=7.077.888 piksel eder. (7.2 mp ama etkin mp değeri buymuş demekki)
Tanesi 9 byte’dan 7.077.888 tane piksel 63700992 byte veri eder. Bu da 63700992/1024= 62208 kb o da 62208/1024= 60.75 mb eder.
Evet bakın hesaba, 60 megabyte’lık fotoğraf.
Halbuki bakıyorum, elimde 2.4 mb’lik olan da var 3.5 mb’lik te var.
Evet jpeg sıkıştırma. Bildiniz efenim.
JPEG: Joint Photographic Experts Group
Kabaca mantık şu;
İmge içerisinde birbirini tekrar eden yapıları tespit edip o veriyi bir kez barındırmak.
Daha bir kabaca şöyle örnek vereyim: yandan çekilmiş bir araba fotoğrafında ön ve arka lastik aynıysa ben o verileri 2 kere kaydetmektense 1 kez kaydedip öne ve arkaya koyayım. (yok artık)
Şöyle ki; farklı yapılar için kodlamalar yapılacak. Şu tabloyu inceleyelim.
X ekseninde pikseller y ekseninde ışıklılık değerleri var. İşte imgemizde bunlara benzer bloklar arıyoruz. Kayıplı sıkıştırma için, bunlara çok benzeyenlerde kuantalama yapıp bunlarla aynı yapıyoruz. Buradan da şunu görebiliriz ki bunlara benzemeyecek kadar karmaşık ve çok farklı yapılar içeren imgelerin sıkıştırma oranları düşük olacaktır. Bu sebepledir ki düz zeminli (genelde kapalı alanda çekilen), çok farklı yapıları olmayan fotoğraflar çok sıkıştırılıp düşük boyuta getirilebilir. Ama mesela bir manzara fotoğrafı, çok farklı desenler içeren fotoğrafların jpeg çıktı boyutları diğerleri kadar küçük olmayacaktır.
Ayrıca: ne demiştik blok yapılarından aynı olanları tekrar tekrar kaydetmiyorduk, yani bu demek oluyor ki bir imgeyi küçük imgelere bölerseniz aynı olan blokları küçük imgeler için ayrı ayrı kaydedeceksiniz yani sıkıştırma verimi düşecektir, toplamda veri boyutu artacaktır. 100 kb’lık bir fotoğrafı 4’e bölerseniz her birinin 25 kb olmasını beklemeyin, toplam 100 kb’den daha büyük olur bu şekilde…
Tabi bu anlattığım sadece jpeg için değil. Çoğu sıkıştırma tekniğinin mantığı aynıdır. (videolarda bile) (videolarda bir de o araba lastiğini alıp sağa sola götürme bilgisi var tabi, divx, h264 codec) (vay be gavurlar neler yapıyor) (biz de maç izleyelim, nargile içelim)
Oldu iyi sıkıştırmalar…
|
3 Ocak, 2008 saat 15:07
[...] 4 renk bileşeni vardır. Her ne kadar JPEG yapılabilse de RGB’deki JPEG kadar verimli bir sıkıştırma olmayacaktır. Dosya boyutu [...]
21 Mart, 2008 saat 01:50
jpeg derki once imgeyi bloklara böl sonra bu bloklar icin dct al. yani dekorelasyon yap. sonra bunlari kuantala ve kuantalanmis katsaylari kayipsiz kodla. sikistirma temelde dct nin alcak frekans bilesenlerine fazla enerji sikistirilabilmesi sayesinde gerceklesir. yani 3-5 dct katsayisi ile orijinal blogu kabaca elde etmek mumkundur. duz zeminli kisimlarin daha fazla sikistirilabilmesinin temel nedeni, bu bolgerin zaten yuksek frekans bileseni icermemesi ve dct nin daha etkin calistigi dusuk frekans bolgelerinde katsayilara sahip olmasidir.. falan filan..