SlideShare a Scribd company logo
1 of 10
Download to read offline
LZ77
(Lempel-Ziv Algoritması)
@veysiertekin
TARİHÇE
* Abraham Lempel and Jacob Ziv
tarafından 1977-78 yılları arasında
yapılan çalışmanın ürünü olduğu için
LZ77 adı verilmiştir. [1]
* Algoritmaya kod adının
verilmesindeki neden birçok
varyasyonu arasından ayırt etmek.
* Sınırsız veri akışının (yani verinin
gerçek boyutu bilinmeden) daha az
yer kaplayacak şekilde kodlanmasını
sağlar.
* Kayıpsız bir sıkıştırma algoritmasıdır.
[1] J.Ziv and A.Lempel,“Compression of individual sequences by variable rate coding,“IEEETrans. InformationTheory, 1978.
Verinin ilk defa verimli şekilde aktarımının yolunu açması, günümüz
internetinin yaygınlaşmasındaki ivmeyi beraberinde getirdi
• Günümüzde duyduğumuz/kullandığımız birçok
sıkıştırma-kodlama algoritmasının temelinde yer
almakta:
zip, bzip, gzip,WinRAR, LZMA,LZO, LZ4, 

JPEG, PNG, GIF …
1- LZ ile başlayanlar hemen hemen aynı algoritmayı farklı yöntemler kullanarak uyguluyorlar (ör: direk dönüşüm yerine
binary hale çevirip algoritmayı uygulamak yada verinin işleniş sıralamalarında değişiklik yapmak gibi)


2- Diğer algoritmalar (zip, JPEG vs) bu algoritma üzerine Huffman kodlaması gibi ek yöntemlere başvuruyorlar
Algoritma Oran Sıkıştırma Açma
memcopy 1.000 4200 MB/s 4200 MB/s
LZ4* 2.101 385 MB/s 1850 MB/s
LZO 2.06 2.108 350 MB/s 510 MB/s
QuickLZ 1.5.1.b6 2.238 320 MB/s 380 MB/s
Snappy 1.1.0 2.091 250 MB/s 960 MB/s
LZF v3.6 2.073 175 MB/s 500 MB/s
zlib 1.2.8 -1 2.730 59 MB/s 250 MB/s
LZ4* HC 2.720 22 MB/s 1830 MB/s
zlib 1.2.8 -6 3.099 18 MB/s 270 MB/s
Kaynak: https://github.com/Cyan4973/lz4
Benchmark;
*LZ4Yann Collet tarafından 2011 yılında tanıtıldı
Benchmark;
Yahoo’da Hadoop Cluster'larında kullanılan sıkıştırma algoritmalarının oranları
Algoritma (Pseudo Code)
begin
görünümü gelen veri ile doldur
while (görünüm boş olmadığı sürece) do
begin
görünümün başındaki veriden arama tamponundaki en uzun
eşleşmeyi bul
i := arama tamponunda bulunan kaydın indeksi
j := eşleşme uzunluğu
X := eşleşen veriden hemen sonraki veri
çıktıyaAktar(i,j,X)
arama tamponunun başlangıç indeksini eşleşen veriden
sonrasına taşı
end
end
Örnek
Arama önbelleği Gelen veri
Satır
121110 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 … Çıktı
1 a a b b c a b c b b (0,0,a)
2 a a b b c a b c b b c (1,1,b)
3 a a b b c a b c b b c a c (1,1,c)
4 a a b b c a b c b b c a c b c (4,2,c)
5 a a b b c a b c b b c a c b c c a ∅ (6,4,c)
6 a a b b c a b c b b c a c b c c a ∅ (4,2,c)
7 b c a b c b b c a c b c c a ∅ (5,1,null)

More Related Content

Similar to Lz77 / Lempel-Ziv Algorithm

İleri Seviye Programlama 2
İleri Seviye Programlama 2İleri Seviye Programlama 2
İleri Seviye Programlama 2Caner Bovatekin
 
Pig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri AnaliziPig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri AnaliziHakan Ilter
 
Network101 murat arslan
Network101 murat arslanNetwork101 murat arslan
Network101 murat arslanMURAT ARSLAN
 
Ag konf scriptleri_mseml
Ag konf scriptleri_msemlAg konf scriptleri_mseml
Ag konf scriptleri_msemlmimarsinantl
 
Roket Yazılımı Eğitimi Hafta 1
Roket Yazılımı Eğitimi Hafta 1Roket Yazılımı Eğitimi Hafta 1
Roket Yazılımı Eğitimi Hafta 1Uğurkan Ateş
 
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma son
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma   sonAçık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma   son
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma sonBGA Cyber Security
 
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleri
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleriLog yönetimi ve siem projelerindeki en önemli kriter EPS değerleri
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleriErtugrul Akbas
 
Veri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan SarıbıyıkVeri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan SarıbıyıkHakan Sarıbıyık
 
Ahmet Visual basic
Ahmet Visual basicAhmet Visual basic
Ahmet Visual basicahsen1971
 
Hadoop @ devveri.com
Hadoop @ devveri.comHadoop @ devveri.com
Hadoop @ devveri.comHakan Ilter
 
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMISINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMIErtugrul Akbas
 
Bilgisayar Mimarisi 06, Feza BUZLUCA
Bilgisayar Mimarisi 06, Feza BUZLUCABilgisayar Mimarisi 06, Feza BUZLUCA
Bilgisayar Mimarisi 06, Feza BUZLUCAFeza BUZLUCA
 
Python programlama
Python programlamaPython programlama
Python programlamaMurat KARA
 

Similar to Lz77 / Lempel-Ziv Algorithm (16)

İleri Seviye Programlama 2
İleri Seviye Programlama 2İleri Seviye Programlama 2
İleri Seviye Programlama 2
 
Pig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri AnaliziPig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri Analizi
 
Network101 murat arslan
Network101 murat arslanNetwork101 murat arslan
Network101 murat arslan
 
Ag konf scriptleri_mseml
Ag konf scriptleri_msemlAg konf scriptleri_mseml
Ag konf scriptleri_mseml
 
Roket Yazılımı Eğitimi Hafta 1
Roket Yazılımı Eğitimi Hafta 1Roket Yazılımı Eğitimi Hafta 1
Roket Yazılımı Eğitimi Hafta 1
 
Fonksiyonlar
FonksiyonlarFonksiyonlar
Fonksiyonlar
 
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma son
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma   sonAçık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma   son
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma son
 
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleri
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleriLog yönetimi ve siem projelerindeki en önemli kriter EPS değerleri
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleri
 
Veri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan SarıbıyıkVeri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan Sarıbıyık
 
Ahmet Visual basic
Ahmet Visual basicAhmet Visual basic
Ahmet Visual basic
 
Hadoop @ devveri.com
Hadoop @ devveri.comHadoop @ devveri.com
Hadoop @ devveri.com
 
VERİTABANI SIZMA TESTLERİ
VERİTABANI SIZMA TESTLERİVERİTABANI SIZMA TESTLERİ
VERİTABANI SIZMA TESTLERİ
 
Network
NetworkNetwork
Network
 
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMISINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
 
Bilgisayar Mimarisi 06, Feza BUZLUCA
Bilgisayar Mimarisi 06, Feza BUZLUCABilgisayar Mimarisi 06, Feza BUZLUCA
Bilgisayar Mimarisi 06, Feza BUZLUCA
 
Python programlama
Python programlamaPython programlama
Python programlama
 

More from Veysi Ertekin

BruteForce ve Horspool Algoritmalarının Karşılaştırılmalı Analizi
BruteForce ve Horspool Algoritmalarının Karşılaştırılmalı AnaliziBruteForce ve Horspool Algoritmalarının Karşılaştırılmalı Analizi
BruteForce ve Horspool Algoritmalarının Karşılaştırılmalı AnaliziVeysi Ertekin
 
Siralama algoritmalari ileri algoritma analizi
Siralama algoritmalari   ileri algoritma analiziSiralama algoritmalari   ileri algoritma analizi
Siralama algoritmalari ileri algoritma analiziVeysi Ertekin
 
Kablosuz Sensör Ağlarda Konumlandırma - Locatization in WSNs
Kablosuz Sensör Ağlarda Konumlandırma - Locatization in WSNsKablosuz Sensör Ağlarda Konumlandırma - Locatization in WSNs
Kablosuz Sensör Ağlarda Konumlandırma - Locatization in WSNsVeysi Ertekin
 
Kablosuz sensör Ağlarda Konumlandırma (Locatization in WSNs)
Kablosuz sensör Ağlarda Konumlandırma (Locatization in WSNs)Kablosuz sensör Ağlarda Konumlandırma (Locatization in WSNs)
Kablosuz sensör Ağlarda Konumlandırma (Locatization in WSNs)Veysi Ertekin
 

More from Veysi Ertekin (7)

Knight's Tour
Knight's TourKnight's Tour
Knight's Tour
 
BruteForce ve Horspool Algoritmalarının Karşılaştırılmalı Analizi
BruteForce ve Horspool Algoritmalarının Karşılaştırılmalı AnaliziBruteForce ve Horspool Algoritmalarının Karşılaştırılmalı Analizi
BruteForce ve Horspool Algoritmalarının Karşılaştırılmalı Analizi
 
VoIP
VoIPVoIP
VoIP
 
VoIP
VoIPVoIP
VoIP
 
Siralama algoritmalari ileri algoritma analizi
Siralama algoritmalari   ileri algoritma analiziSiralama algoritmalari   ileri algoritma analizi
Siralama algoritmalari ileri algoritma analizi
 
Kablosuz Sensör Ağlarda Konumlandırma - Locatization in WSNs
Kablosuz Sensör Ağlarda Konumlandırma - Locatization in WSNsKablosuz Sensör Ağlarda Konumlandırma - Locatization in WSNs
Kablosuz Sensör Ağlarda Konumlandırma - Locatization in WSNs
 
Kablosuz sensör Ağlarda Konumlandırma (Locatization in WSNs)
Kablosuz sensör Ağlarda Konumlandırma (Locatization in WSNs)Kablosuz sensör Ağlarda Konumlandırma (Locatization in WSNs)
Kablosuz sensör Ağlarda Konumlandırma (Locatization in WSNs)
 

Lz77 / Lempel-Ziv Algorithm

  • 2. TARİHÇE * Abraham Lempel and Jacob Ziv tarafından 1977-78 yılları arasında yapılan çalışmanın ürünü olduğu için LZ77 adı verilmiştir. [1] * Algoritmaya kod adının verilmesindeki neden birçok varyasyonu arasından ayırt etmek. * Sınırsız veri akışının (yani verinin gerçek boyutu bilinmeden) daha az yer kaplayacak şekilde kodlanmasını sağlar. * Kayıpsız bir sıkıştırma algoritmasıdır. [1] J.Ziv and A.Lempel,“Compression of individual sequences by variable rate coding,“IEEETrans. InformationTheory, 1978.
  • 3. Verinin ilk defa verimli şekilde aktarımının yolunu açması, günümüz internetinin yaygınlaşmasındaki ivmeyi beraberinde getirdi
  • 4. • Günümüzde duyduğumuz/kullandığımız birçok sıkıştırma-kodlama algoritmasının temelinde yer almakta: zip, bzip, gzip,WinRAR, LZMA,LZO, LZ4, 
 JPEG, PNG, GIF … 1- LZ ile başlayanlar hemen hemen aynı algoritmayı farklı yöntemler kullanarak uyguluyorlar (ör: direk dönüşüm yerine binary hale çevirip algoritmayı uygulamak yada verinin işleniş sıralamalarında değişiklik yapmak gibi) 
 2- Diğer algoritmalar (zip, JPEG vs) bu algoritma üzerine Huffman kodlaması gibi ek yöntemlere başvuruyorlar
  • 5. Algoritma Oran Sıkıştırma Açma memcopy 1.000 4200 MB/s 4200 MB/s LZ4* 2.101 385 MB/s 1850 MB/s LZO 2.06 2.108 350 MB/s 510 MB/s QuickLZ 1.5.1.b6 2.238 320 MB/s 380 MB/s Snappy 1.1.0 2.091 250 MB/s 960 MB/s LZF v3.6 2.073 175 MB/s 500 MB/s zlib 1.2.8 -1 2.730 59 MB/s 250 MB/s LZ4* HC 2.720 22 MB/s 1830 MB/s zlib 1.2.8 -6 3.099 18 MB/s 270 MB/s Kaynak: https://github.com/Cyan4973/lz4 Benchmark; *LZ4Yann Collet tarafından 2011 yılında tanıtıldı
  • 7. Yahoo’da Hadoop Cluster'larında kullanılan sıkıştırma algoritmalarının oranları
  • 8.
  • 9. Algoritma (Pseudo Code) begin görünümü gelen veri ile doldur while (görünüm boş olmadığı sürece) do begin görünümün başındaki veriden arama tamponundaki en uzun eşleşmeyi bul i := arama tamponunda bulunan kaydın indeksi j := eşleşme uzunluğu X := eşleşen veriden hemen sonraki veri çıktıyaAktar(i,j,X) arama tamponunun başlangıç indeksini eşleşen veriden sonrasına taşı end end
  • 10. Örnek Arama önbelleği Gelen veri Satır 121110 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 … Çıktı 1 a a b b c a b c b b (0,0,a) 2 a a b b c a b c b b c (1,1,b) 3 a a b b c a b c b b c a c (1,1,c) 4 a a b b c a b c b b c a c b c (4,2,c) 5 a a b b c a b c b b c a c b c c a ∅ (6,4,c) 6 a a b b c a b c b b c a c b c c a ∅ (4,2,c) 7 b c a b c b b c a c b c c a ∅ (5,1,null)