Kayıpsız Sıkıştırma
Kayıpsız sıkıştırma, hiçbir verinin kaybolmadığı yerdir. Girilen her şey mükemmel bir şekilde alınabilir. Bu, en küçük hatanın fark edileceği metin veya ikili dosyalar için iyi çalışır.
Dosya sıkıştırma, dosyayı alıp kalıpları tarayarak ve bu kalıpları daha az yer kaplayan başka bir şeye çevirerek çalışır.
Örneğin "AAAAAAAA", "8A" ya dönüştürülebilir.
Verilen tam olarak böyle çalışmadığı için, o zaman "8A" nın düz metinde olup olmadığı sorununa sahipsiniz. Dosyayı açarsınız ve yanlış olur. Başlamak için iyi bir yer Wikipedia veya LZW Veri Sıkıştırma Algoritmasıdır .
Aşağıda kopyalananlar için basitçe psuedo kodu vardır:
STRING = get input character
WHILE there are still input characters DO
CHARACTER = get input character
IF STRING+CHARACTER is in the string table then
STRING = STRING+character
ELSE
output the code for STRING
add STRING+CHARACTER to the string table
STRING = CHARACTER
END of IF
END of WHILE
output the code for STRING
Tüm sıkıştırma, dosyayı sıkıştırmak ve açmak için kullanılan bir arama sözlüğü kullanır. Sözlük ne kadar büyük olursa, o kadar fazla sıkıştırabilirsiniz, ancak Azalan İade Yasası'na girersiniz .
Sıkıştırmanın her zaman daha küçük bir dosya sağlamadığını da belirtmek gerekir. Sıkıştırmadan sonra daha küçük bir dosya elde edemeyeceğiniz durumlar (küçük dosyalarla veya rasgele verileri sıkıştırırken ) vardır . Rasgele verileri sıkıştırma yeteneği ile ilgili bazı eğlenceli zorluklar olmuştur .
"Kayıplı" Sıkıştırma
Yukarıdakiler çoğunlukla kayıpsız sıkıştırma ile ilgilidir . MP3 / JPG ve h.264 gibi video / ses uygulamalarında kullanılan diğer sıkıştırma türleri kayıplı sıkıştırma örnekleridir .
Kayıplı sıkıştırma, en az fark edilmesi muhtemel verileri atarak çalışır. Ses olarak bu, diğer çeşitli şeylerle birlikte yaklaşık 30.000 Hrz ve 100 Hrz'nin altında. Resimde (statik), verileri atarken çeşitli şeyleri kaldırır ve pikselleri birleştirir.
Kayıplı sıkıştırma bir tür dönüşüm kodlamasıdır . Toplam boyutu azaltmak için verilerin ortalamasını alır. Örneğin, bir görüntüde 10 piksellik bir blok, biraz farklı renklerin tümü bir renkle birleştirilebilir ve böylece sıkıştırılabilir.
Video sıkıştırmasında genellikle talimatlar yalnızca son kareden veya ana kareden bu yana değişen pikselleri yeniden çizmeye yerleştirilir .