VERİ SIKIŞTIRMA YÖNTEMLERİ



Benzer belgeler
Dosya Sıkıştırma (File Compression) Kütük Organizasyonu 1

Dosya Sıkıştırma (File Compression) Kütük Organizasyonu 1

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

NB Ekran Seri Port Üzerinden Veri Okuma/Yazma. Genel Bilgi Protokol Oluşturma Veri Okuma Veri Yazma

ALGORİTMA VE PROGRAMLAMA II


ELN1002 BİLGİSAYAR PROGRAMLAMA 2

SIMAN KULLANIM KILAVUZU

ALGORİTMA VE PROGRAMLAMA II

Merkezi İşlem. Birimi

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

SAYISAL ELEKTRONİK. Ege Ü. Ege MYO Mekatronik Programı

Bilgilerin Uzun Vadeli Saklanması

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR SİSTEMLERİ LABORATUVARI

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Eln 1002 Bilgisayar Programlama II

#$% &'#(# Konular. Bits of Information. Binary Özellikler Superimposed Coding Signature Formation Deerlendirme

SAYI VE KODLAMA SİSTEMLERİ. Teknoloji Fakültesi/Bilgisayar Mühendisliği

DOSYA İŞLEMLERİ Programlama dilleri hafta -

İMGE İŞLEME Ders-9. İmge Sıkıştırma. Dersin web sayfası: (Yrd. Doç. Dr. M.

Algoritma ve Akış Diyagramları

Temel Bilgisayar Programlama

HSancak Nesne Tabanlı Programlama I Ders Notları

Belirteç Seçiminin Huffman Kodlaması Üzerine Etkisi

Fatura Dosyalarını Yükleme ile ilgili Detaylar. 14 Temmuz 2014

Genel Programlama II

Akış Kontrol Mekanizmaları

4 Front Page Sayfası Özellikleri

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Eln 1001 Bilgisayar Programlama I

Bilgisayarların Gelişimi

Pascalda oluşturulacak dosyalar değişkenler gibi programın başında tanımlanır.

Sıralı bir dosyayı açmak için FileOpen komutundan faydalanılır. Bu komutun genel kullanılış biçimi aşağıdaki gibidir:

BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ 6. SINIF DERS NOTLARI

WINDOWS VE PARDUS İÇİN İMZAGER KURULUM TALİMATI

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

DesignCad Basit İmalat Adımları

Dosyaların Özellikleri (Attribute) Dosya İşlemleri. İki Seviyeli Katalog Sistemleri. Tek Seviyeli Katalog Sistemleri. Hiyerarşik Katalog Sistemleri

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

T.C. KIRIKKALE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ YAPAY SİNİR AĞLARI. Doç.Dr. Necaattin BARIŞÇI FİNAL PROJESİ

3.3. İki Tabanlı Sayı Sisteminde Dört İşlem

BLG 312 Bilgisayar İşletim Sistemleri 2006 BLG 312. Bilgilerin Uzun Vadeli Saklanması. Dosya Sistemi Görevleri. Dosya Sistemi Özellikleri

String ve Karakter Dizileri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü

BİLGİSAYAR UYGULAMALARI Şırnak Üniversitesi Mühendislik Fakültesi Güz Dönemi Arş.Gör. Eren DEMİR ve Arş.Gör. Veysel KIŞ (

BMB204. Veri Yapıları Ders 12. Dizgi Eşleme (String Matching) Algoritmaları İleri Veri Yapıları

VERİ TABANI YÖNETİM SİSTEMLERİ I

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Dosya, disk üzerinde depolanmış verilerin bütününe verilen isimdir. İşletim sistemi genel olarak iki çeşit dosya içerir.

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

VERİ TABANI YÖNETİM SİSTEMLERİ I

13 Aralık Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz

BMB1002 Bilgisayar Programlamaya Giriş. Dosyalar. Prof. Dr. Necmettin Kaya

2. SAYI SİSTEMLERİ. M.İLKUÇAR - imuammer@yahoo.com

ALGORİTMA VE PROGRAMLAMA II

Yrd. Doç. Dr. Caner ÖZCAN

KODLAMA SİSTEMLERİ ve VERİLERİN BİLGİSAYARDA TEMSİLİ

Ürün Ekleme Kitapçığı

CUMHURİYET MESLEKİ VE TEKNİK ANADOLU LİSESİ BİLİŞİM TEKNOLOJİLERİNİN TEMELLERİ DERSİ DERS NOTLARI BELLEKLER

Dosyalarda Farklı Yaklaşımlar. Kütük Organizasyonu 1

Teknik Resim TEKNİK BİLİMLER MESLEK YÜKSEKOKULU. 9. Alıştırma Toleransları. Yrd. Doç. Dr. Garip GENÇ. [ ES (es) = EBÖ AÖ ]

Veritabanı Tasarımı. Tablo Oluşturma

B.Ç. / E.B. MİKROİŞLEMCİLER

İşletim Sistemlerine Giriş

NESNEYE YÖNELİK PROGRAMLAMA

Mühendislikte Veri Tabanları Dersi Uygulamaları (ArcGIS-SQL)

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Print Komutu ile Değişkenleri Yazdırmak

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 5 Veri Tabanı İşlemleri

A.Ü. GAMA MYO. Elektrik ve Enerji Bölümü ALGORİTMA VE PROGRAMLAMA 1.HAFTA

Bilgisayar Programlama

C Dosyalama. Öğr. Gör. M. Ozan AKI. Rev 1.0

Ekle sekmesindeki Tablolar grubundaki Tablo seçeneği ile tablo oluşturulur.

BMRD.exe dosyası ile yapılır (BMDE.EXE kurulumunda c:\byte\entegre\bmrd:exe olarak gelir.)

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR SİSTEMLERİ LABORATUVARI LİNEER KRİPTANALİZ

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Sayılar Teorisi SAYILAR TEORİSİ VE SAYILAR

E-UYGULAMALAR VE DOKÜMAN YÖNETİM SİSTEMİ PROJESİ (EUP)

C Dersi Bölüm 1. Bilgisayar Donanımı

Access e Nasıl Ulaşılır. Araç çubuklarını yeniden düzenlemek için Görünüm komutunun Araç çubukları seçeneği kullanılır.

Sayısal İşaret İşleme Dersi Laboratuvarı

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

Mantıksal Operatörlerin Semantiği (Anlambilimi)

NACA PROFİL AİLE GEOMETRİSİ HESAP PROGRAMI KULLANMA KILAVUZU

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

XC8 ile PİC uygulamaları

Programlama Dilleri 1. Ders 4: Diziler

MİCROSOFT WORD. Araç çubukları: menü çubuğundan yapabileceğimiz işlemleri daha kısa zamanda araç çubukları ile yapabiliriz.

Veritabanı Yönetim Sistemleri I HAFTA 1

KODLAMA SİSTEMLERİNİN TANIMI :

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Elektronik sistemlerde dört farklı sayı sistemi kullanılır. Bunlar;

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

ELEKTRİK ELEKTRONİK MÜHENDİSLİĞİ SAYISAL TASARIM LABORATUVARI DENEY 6 ANALOG/DİGİTAL DÖNÜŞTÜRÜCÜ. Grup Numara Ad Soyad RAPORU HAZIRLAYAN:

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

BM-311 Bilgisayar Mimarisi

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Buna göre, eşitliği yazılabilir. sayılara rasyonel sayılar denir ve Q ile gösterilir. , -, 2 2 = 1. sayıdır. 2, 3, 5 birer irrasyonel sayıdır.

Transkript:

Karadeniz Teknik Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Bilgisayar Sistemleri Laboratuarı 1. Giriş VERİ SIKIŞTIRMA YÖNTEMLERİ Veri sıkıştırma (data compression) gelen verilerin daha küçük boyutlarda saklanması olarak tanımlanabilir. Burda sıkıştırılacak veriler herhangi bir dosyadan, bellekten veya haberleşme kanalından geliyor olabilir. 1980 ler ve 1990 lar veri kaydetme ortamlarında fiyat olarak üstel bir düşüşün yaşanmasına karşın veri sıkıştırma yöntemleri üzerine yapılan araştırmaların yoğun olarak yapıldığı yıllar olmuştur. Bunun temel nedenleri şöyle sıralanabilir: Çoğu kişi gereksiz de olsa verileri depolamaktan hoşlanmaktadır. Bu durumda kısa sürede kullanılan disk gereksiz veriler yüzünden dolmaktadır. Veri sıkıştırma bunu geciktirdiği için faydalıdır. Veri kaydetme ortamları ucuzladıkça yüksek çözünürlükte resimler gibi daha büyük kapasitede veriler kaydetme imkanı da artmaktadır. Veri transferinin hızlı olması istenir. O yüzden gönderilmeden önce sıkıştırılmalıdır. Son yıllarda veri depolama kapasitesinde üstel bir artış olsa da depolama yapan ünitenin hızında yeterli miktarda artış henüz söz konusu değildir. Örneğin günümüzde yaygın olarak kullanılan sabit disklerin hızı en fazla 10.000 rpm dir ve oldukça pahalı fiyatlardan satılmaktadır. Veri sıkıştırma yöntemleri farklı temellere, farklı tipte verilere göre farklı sonuçlar üretse de temelde hepsi gereksiz (redundant) verileri yok etme prensibine dayanmaktadır. Örneğin kelimelerde E harfine Z den daha çok rastlanmaktadır. Buna alfabetik gereksizlik (alphabetic redandancy) denir ve veri sıkıştırma yaparken sık rastlanan harf olan E ye en kısa; Z ye de en uzun kod verilmelidir. Resimlerdeki gereksizlik komşu piksellerde kendini gösterir. Herhangi bir pikselin komşusu da genelde benzeri renge sahiptir. Dolayısıyla gereksiz verileri yok ederek veri sıkıştırmada genel kural sık tekrarlanan verilere kısa; az tekrarlanlara da uzun kodlar vermek tir. Yüzlerce veri sıkıştırma yöntemi 4 temel sınıf altında toplanabilir [1]: 1. Tekrarlama Sayısı Kodlama (Run Length Coding). 2. İstatiksel Yöntemler (Statistical Methods). 3. Sözlük-Tabanlı Yöntemler (Dictionary-Based Methods). 4. Transformasyonlar (Transforms). Bu deneyde sözlük-tabanlı yöntemlerden LZW incelenecektir.

2. LZW Yöntemi Genel olarak sözlük tabanlı veri sıkıştırma yöntemleri, text içeren dosyalar kullanırlar. Bu yöntemlerden LZW, ilk olarak 1978 yılında A. Lempel ve J. Ziv tarafından ortaya atılan LZ78 isimli yöntemin 1984 yılında T. Welch tarafından geliştirilmiş halidir. UNIX işletim sistemindeki compress emri bu yönteme göre çalışmaktadır. 2.1. LZW Kodlama (Encoding) Veri sıkıştırma işlemine kodlama (encoding), sıkıştırılmış veriyi açma işlemine de dekodlama (decoding) denir. LZW yönteminde sıkıştırma işlemi boyunca dictionary adı verilen bir tablo tutulur. Başlangıçta dictionary tablosunun ilk 256 elemanı (0-255) ASCII tablodaki karakterler için ayrılmıştır. Veriler giriş dosyasından byte byte okunup I stringine eklenirken tabloda bu string aranır. Her bir byte eklendikçe I nın son hali tabloda bakılarak ilerlenir. Herhangi bir noktada I tabloda varken ona eklenen x isimli byte ile birlikte Ix tabloda olmayabilir. Bu durumda I çıkış dosyasını yazılır, Ix tabloya eklenir, giriş dosyasından yeni okunacak y isimli byte x e eklenir ve I=xy tabloda aranır. sir sid eastman easily teases sea sick seals verisinin LZW yöntemine göre nasıl kodlandığı Tablo-1 de gösterilmiştir [1]. Burada, boşluk semboludür. Dolayısıyla bu verinin boyu 44 bytetır. Tablo-1 de LZW kodlamaya I=s olarak giriş dosyasından ilk karakter okunarak başlanır. s ASCII tabloda olduğundan aynı zamanda dictionary tablosunda da olduğunu gösteren Y (Yes) cevabı alınmıştır. Arkasından okunan i karakteri I ya eklenmiş ve si tekrar dictionary tablosunda sorgulanmıştır. Olmadığı için N (No) cevabı alınmış, si dictionary tablosunun 257. Eleman olarak (256-si) eklenmiş ve s çıkış (output) dosyasına (giriş dosyasının sıkıştırılmış hali) yazılıp i ve ardından gelen r için yukarıdaki işlemler tekrarlanmıştır. Tablo-1 in 10. satırında I=si olduğu görülür. si yukarıda dictionary tablosuna eklendiğinden Y cevabı alınır. Sonra gelen d karakteri ile birlikte I=sid olur ve dictionary tablosunda olmadığından 261. eleman (260-sid) olarak tabloya eklenir. si de çıkış dosyasına yazılır ve dosyadan okunan ile birlikte I=d için aynı işlemler tekrarlanır. Dictionary tablosunun ilk 256 elemanı ASCII tablo için ayrılmış olduğundan çıkış dosyasına yazılacak her bir verinin boyu en az 9 bit (8 bitten fazla) olmak zorundadır. 12 bit için çıkış dosyasına yazılabilecek kodlar 256-4095 arası değişir. 4095 ten sonra gelen veriler kodlanmaksızın çıkış dosyasına yazılır ki bu sıkıştırma oranını düşürür. Çıkış dosyasına veriler 12 şer bit yazıldığı varsayıldığında output sütunundaki 281( se) kodu ile, s ve e olmak üzere 3 karakter yani 3 byte yerine se stringini temsil eden 281 kodu 12 bit olarak yazılmıştır. Bu 12 bitin pratikte dosyaya byte a çevrilmeksizin yazılması imkansızdır. Dolayısıyla 12 bit LZW kodlama yapılırken peşpeşe gelen 12 şer bitler birleştirilip bytelara çevrilerek çıkış dosyasına yazılır. Örneğin peşpeşe gelen iki adet 12 bitlik veri 3 adet 8 bitlik (byte) veri olarak kodlanır. Çıkış dosyasına yazılacak verinin toplam boyu bit cinsinden 8 in tam katı olmazsa artık olan bitler bir byte olarak kodlanır.

I in new in new output I dict.? entry dict.? entry output s Y y Y si N 256-si 115(s) y N 274-y 121(y) i Y Y ir N 257-ir 105(i) t N 275-t 32( ) r Y t Y r N 258-r 114(r) te N 276-te 116(t) Y e Y s N 259- s 32( ) ea Y s Y eas N 277-eas 263(ea) si Y s Y sid N 260-sid 256(si) se N 278-se 115(s) d Y e Y d N 261-d 100(d) es N 279-es 101(e) Y s Y e N 262- e 32( ) s N 280-s 115(s) e Y Y ea N 263-ea 101(e) s Y a Y se N 281- se 259( s) as N 264-as 97(a) e Y s Y ea Y st N 265-st 115(s) ea N 282-ea 263(ea) t Y Y tm N 266-tm 116(t) s Y m Y si N 283- si 259( s) ma N 267-ma 109(m) i Y a Y ic N 284-ic 105(i) an N 268-an 97(a) c Y n Y ck N 285-ck 99(c) n N 269-n 110(n) k Y Y k N 286-k 107(k) e Y Y ea N 270- ea 262( e) s Y a Y se Y as Y sea N 287- sea 281( se) asi N 271-asi 264(as) a Y i Y al N 288-al 97(a) il N 272-il 105(i) l Y l Y ls N 289-ls 108(l) ly N 273-ly 108(l) s Y s,eof N 115(s) Tablo-1 : sir sid eastman easily teases sea sick seals verisinin kodlanışı Tablonun son satırında s,eof ile verinin son karakteri s ve dosya sonunu gösteren eof sembolü birlikte dictionary tablosunda olmadığından s çıkış dosyasına yazılır. Bu noktada girişteki verilerin tamamı LZW yöntemine göre kodlanmış ve çıkış dosyasına yazılmıştır. Başka bir deyişle veri sıkıştırma işlemi tamamlanmıştır. Yalnız sıkıştırılmış dosya açılırken son veriyi okuduktan sonra açma işleminin sonlanması için dosyanın sonuna gelindiğini gösteren özel bir sembol koymakta fayda vardır. eof sembolü olarak 12 bit için 4095 seçilebilir. Yalnız veri sıkıştırma yaparken bu sembol (4095) kullanılmamalıdır.

0 NULL 110 262 e 276 te 1 SOH... 263 ea 277 eas... 115 264 as 278 se 32 116 265 st 279 es...... 266 tm 280 s 97 a 121 y 267 ma 281 se 98 b... 268 an 282 ea 99 c 255 255 269 n 283 si 100 d 256 si 270 ea 284 ic 101 e 257 ir 271 asi 285 ck... 258 r 272 il 286 k 107 k 259 s 273 ly 287 sea 108 l 260 sid 274 y 288 al 109 m 261 d 275 t 289 ls Tablo-2 : sir sid eastman easily teases sea sick seals için dictionary tablosu Tablo-1 de output sütunundaki kodlar örnek verinin sıkıştırılmış halini tutan çıkış (output) dosyasına yazılacaktır. Burda toplam 35 tane kod vardır. Dolayısıyla veriler 12 bit olarak kodlandığında sıkıştırılmış dosyanın boyutu 35x12+12 = 432 bit = 54 byte olacaktır. 35x12+12 ifadesindeki son +12 bit eof sembolü içindir. Tablo-2 de LZW dictionary tablosunun ilk 256 elemanın bir kısmı ve yukarıdaki sir sid eastman easily teases sea sick seals verisi kodlanırken oluşturulan yeni elemanların (new entry) tamamı gösterilmiştir. Kaynak kod içindeki compress fonksiyonu LZW kodlama yapmaktadır. while döngüsü içindeki if(code_value[index]!=-1) şartı sağlanıyorsa okunan veri dictionary tablosunda var demektir. if(next_code<=max_code) şartı da dictionary tablosunda olmayan veriyi next_code ile tabloya eklemeye çalışır. MAX_CODE, 12 bitlik kodlama için 4094 tür (4095, eof sembolü için ayrılmıştı). Eğer bu şart sağlanmıyorsa tablo dolu demektir. Dolayısıyla bu noktadan sonra sıkıştırılacak dosyadan okunan verilerin hiçbiri dictionary tablosuna eklenemeyecektir. Bu yüzden de veri sıkıştırma oranı düşecektir. 2.1. LZW Dekodlama (Decoding) Veriler sıkıştırılırken yapılan işlemlerin tersi açılırken yapılır. Sıkıştırılmış örnek sir sid eastman easily teases sea sick seals verisinin açılması (decoding) işlemi yapılırken dosyadan ilk veri 115 (s) okunur ve I=s olur. Dictionary tablosuna bakılır. İlk 256 eleman ASCII karakterler için ayrıldığından s tabloda vardır. İkinci veri i okunur ve I=si tabloda aranır. Tabloda olmadığından eklenir açılan (decoded) verinin yazılacağı dosyaya s yazılır. Şimdi I=i olur ve tabloda olduğu için üçüncü veri r okunarak I=ir olur. ir dictionary tablosunda olmadığından eklenir ve i dosyaya yazılır. I=r tabloda olduğundan okunan veri ile birlikte I=r tabloda aranır. Olmadığı için eklenir ve r dosyaya yazılır. I= tabloda olduğundan okunan veri s ile birlikte I= s tabloda aranır. Olmadığı için eklenir ve dosyaya yazılır. I=s tabloda olduğundan okunan veri i ile birlikte I=si tabloda aranır. Yukarıda ilk iki veriyi okurken si yi tabloya eklemiştik. I=si tabloda olduğundan tekrar bir veri okunur ve I=sid olur. sid tabloda olmadığından eklenir ve dosyaya si yazılır. Sonraki veriler için aynı işlemler tekrarlanır.

3. Deneye Hazırlık dilim seni dilim dilim dileyim cümlesini 16 bitlik veriler olarak kodlayınız. Cevabınızı kaynak kodların olduğu klasördeki Rapor.docx e yazınız. Ayrıca sıkıştırılmış dosyanın byte cinsinden boyunu hesaplayınız. Örnek LZW programının exesi komut satırından şu şekilde çalıştırılmalıdır [2] : LZW c/d input output Yani yukarıdaki emir DOS ekranında LZW\LZW\LZW\Debug klasörüne gidildikten sonra koşulmalıdır. Burada c : compress, d : decompress demektir. Sıkıştırma işleminde c, açmada d yazılmalıdır. Sıkıştırmada input, sıkıştırılacak dosya; output da sıkıştırılmış verilerin yazılacağı dosyadır. Veri açılırken tersi söz konusudur. Kaynak kodların olduğu klasördeki testsize.exe ile if(next_code<=max_code) şartının sağlanıp sağlanmadığına bakılarak dictionary tablosunun ne zaman dolduğu test edilmektedir. Böylece en yüksek oranda sıkıştırma sağlayacak bit uzunluğu ve tablo boyu hesaplanıp size.txt ye yazılmaktadır. lzwtested.exe de size.txt den optimum bit uzunluğunu okuyup veriyi maksimum oranda sıkıştırır. testsize.exe ve lzwtested.exe nin programlarını yazınız. Veri.txt, Sozluk.txt, Dictionary.txt, DataCompression.txt ve Wikipedia dosyalarını testsize.exe ile test ederek en fazla sıkıştırma sağlayacak bit uzunlukları ve veri sıkıştırma oranlarını bulup Rapor.docx e yazınız. 4. Deneyin Yapılışı aaa... şeklinde peşpeşe gelen n tane a harfi 16 bitlik veriler şeklinde LZW kodlandığında çıkış dosyası kaç byte olur? Çıkış dosyasının boyu m byte olduğunda maksimum kaç tane a harfi giriş dosyasına yazılabilir? Kaynak kodlardaki VS2008 ve VS2010 destekli aaa adlı şablon projeyi kullanarak bu iki soruyu çözen bir program yazınız. LZW\LZW\LZW\Debug içindeki aaa.exe doğru değerleri üretmektedir. Bu exeden yardım alabilirsiniz. 5. Deney Raporu Deney Raporu, Rapor.docx adlı şablon belge ile hazırlanacak ve en geç sonraki hafta deney saatine kadar teslim edilecektir. Rapor, grup olarak hazırlanacaktır. Varsa Deneye Hazırlık veya Deneyin Yapılışındaki eksikler tamamlanıp rapora eklenecek ve USB bellekte getirilen programlar ile birlikte teslim edilecektir. 6. Kaynaklar [1] Handbook of Data Compression, D. Salomon, G. Motta, Fifth Edititon, 2010. [2] http://marknelson.us/1989/10/01/lzw-data-compression/