Huffman Encoding. by Snowblind. Teknoloji Fakültesi / Bilgisayar Mühendisliği

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


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

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

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

ISSN: El-Cezerî Fen ve Mühendislik Dergisi Cilt: 3, No: 2, 2016 ( )

9.Hafta Veri sıkıştırma ve Aç gözlü algoritmalar

VERİ SIKIŞTIRMA YÖNTEMLERİ

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

KAYIPSIZ GÖRÜNTÜ SIKIŞTIRMA YÖNTEMLERİNİN KARŞILAŞTIRILMASI

MMT 106 Teknik Fotoğrafçılık 3 Digital Görüntüleme

T.C. TRAKYA ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ

Belirteç Seçiminin Huffman Kodlaması Üzerine Etkisi

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe

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

1. BÖLÜM Mantık BÖLÜM Sayılar BÖLÜM Rasyonel Sayılar BÖLÜM I. Dereceden Denklemler ve Eşitsizlikler

BIP116-H14-1 BTP104-H014-1

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

Windowsta Dosya Sıkıştırmak

SM 100 Terazi Ayarları. Digi SM 100. SM 100 Terazi Ayarları

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

DEÜ MÜHENDİSLİK FAKÜLTESİ FEN BİLİMLERİ DERGİSİ Cilt: 12 Sayı: 3 sh Ekim 2010 BİÇİMBİLİME DAYALI DOKÜMAN SIKIŞTIRMA

Müzik Verilerini Saklama Biçimleri

Teknoloji ile Tanışalım

İnsan zekâsının çalışması sonucu ortaya çıkan düşünce ürünü, İletişim?

Komutlar (Devam) ls -a > deneme (ls -a komutunun çıktısı deneme isimli. ls -a >> deneme (ls -a komutunun çıktısı deneme

Dr. Fatih AY Tel: fatihay@fatihay.net

Renk Kanallarını Farklı Şekilde Kodlayarak Sıkıştırma Oranını Arttırma

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

Göksel GÜNLÜ Gazi Üniversitesi Elektrik-Elektronik Müh. Böl.

DOSYA İŞLEMLERİ Programlama dilleri hafta -

Merkezi İşlem. Birimi

1.4. BİT Nİ KULLANMA ve YÖNETME

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.

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1

VERĐ SIKIŞTIRMA ALGORĐTMALARININ AĞ ĐLETĐŞĐMĐ ÜZERĐNDEKĐ PERFORMANSLARININ DEĞERLENDĐRMESĐ

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Bilgisayar Sistemleri ilk ortaya çıktığında...

INTERREG - IPA CBC Programme Bulgaria Turkey CCI 2014TC16I5CB005 PROJE TEKLİFLERİNİN ELEKTRONİK OLARAK SUNULMASI

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

Shannon Bilgi Kuramı

Renk Kanallarını Farklı Şekilde Kodlayarak Sıkıştırma Oranını Arttırma. Increasing Compression Ratio With Encoding Color Channels In Different Ways

ENROUTEPLUS TA YAPILMASI GEREKENLER

NB Macro Kullanımı Hakkında Genel Bilgiler

Copyrights I.R.I.S. Bütün Hakları Saklıdır.

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

ALGORİTMA VE PROGRAMLAMA II

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

DOSYA-KLASÖR VE DOSYA UZANTILARI Batıkent Ortaokulu,Ders Notları,2016

3. DOSYA SİSTEMİ VE ÇALIŞMA MANTIĞI


TEMEL KAVRAMLAR. a Q a ve b b. a b c 4. a b c 40. 7a 4b 3c. a b c olmak üzere a,b ve pozitif. 2x 3y 5z 84

T.C. KOCAELİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

İçindekiler. Giriş Kanuni Uyarılar IRISCompressor Yüklemesi ve Kurulumu Sistem Gereksinimleri Kurulum Etkinleştirme...

Ağaç (Tree) Veri Modeli

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

Dikkat: Bir eleman, her iki kümede de olsa bile sadece bir kez yazılır.

1. PROGRAMLAMAYA GİRİŞ

İNTERNET PROGRAMCILIĞI HAFTA MYSQL - PHPMYADMIN. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Mysql Nedir.

Kümeler arası. Küme içi. uzaklıklar. maksimize edilir. minimize edilir

1. MİCROSOFT EXCEL 2010 A GİRİŞ

T.C. SİNOP ÜNİVERSİTESİ

Çizgeler & Huffman Encoding

MAT223 AYRIK MATEMATİK

Sıralı Erişimli Dosyalar. Kütük Organizasyonu 1

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır.

ALGORİTMA VE PROGRAMLAMA I

MATEMATİK ADF. Önermeler - I ÜNİTE 1: MANTIK. Önerme. örnek 2. Bir önermenin değili (olumsuzu) örnek 3. Doğruluk Tablosu. örnek 1.

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

T.C. TRAKYA ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ GÖRÜNTÜ SIKIŞTIRMA YÖNTEMLERİNİN ETKİNLİĞİNİ ARTTIRAN DÖNÜŞÜM VE BÖLÜMLENDİRME İŞLEMLERİ.

BMT207 VERİ YAPILARI DATA STRUCTURE

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

VERİ MADENCİLİĞİ (Veri Ön İşleme-2) Yrd.Doç.Dr. Kadriye ERGÜN

BM 403 Veri İletişimi

Kalite Yönetimi. Kabul Örneklemesi 11. Hafta

Veri haberleşmesinde hatalar

Yrd. Doç. Dr. Caner ÖZCAN

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

Soru 1. Genel Bilgiler...1 Soru 1A...2 Soru 1B...2 Soru 1D...3 Soru 1C...3 Soru 2. Genel Bilgiler...3 Soru 2A...4

Data Communications. Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü. 4. Sayısal veri iletimi

GELİR İDARESİ BAŞKANLIĞI Uygulama ve Veri Yönetimi Daire Başkanlığı E-Fatura Uygulaması (Yazılım Standartları ve Nesne Yapısı) Ocak 2010 Versiyon :

1. LİNEER PCM KODLAMA

Ş ŞAHİT ŞAKA ŞAM FISTIĞI ŞAMPİYON ŞAMPUAN

VHDL ile KODLAMA ve HATA BULMA TEKNİKLERİ

Doğu Akdeniz Üniversitesi e-kurul Platformu. Karar Arama - Tarama Rehberi

SQL Uyarı Programı Kurulum ve Kullanımı

ideal Sistem Tester Kullanım Klavuzu

Veritabanı Tasarımı. Yapay, Birleşik ve İkincil UID ler

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Müzik Verileri İçin XML Tabanlı Diller

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

Temeller. Onur ONAT Munzur Üniversitesi Mühendislik Fakültesi İnşaat Mühendisliği Bölümü, Tunceli

Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü. Bilgisayar Ağları Dersi Lab. 2

2. SAYI SİSTEMLERİ 2. SAYI SİSTEMLERİ

qwertyuiopasdfghjklzxcvbnmq wertyuiopasdfghjklzxcvbnmqw ertyuiopasdfghjklzxcvbnmqwer tyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyui

ÇUKUROVA ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİYOMEDİKAL MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR PROGRAMLAMA 1 UYGULAMA FİNAL PROJESİ

Transkript:

Huffman Encoding by Snowblind Teknoloji Fakültesi / Bilgisayar Mühendisliği

Veri Sıkıştırmaya Giriş Elde edilen sonuç bakımından en temelde iki tür sıkıştırma yöntemi kategorisi vardır: Kayıplı Sıkıştırma (Lossy Compression) Kayıpsız Sıkıştırma (Lossless Compression)

Kayıplı Sıkıştırma Sıkıştırma sonucu elde edilen veriden önceki verinin aynısını elde etmek mümkün değildir. Sıkışan verinin bazı bölümleri kaybolur. Örnekler: MP3: Ham ses verisinden insan kulağının duyamayacağı frekanslar çıkarılır. JPEG: Göze batmayacak bozulmalar yapılır.

Kayıpsız Sıkıştırma Sıkıştırma sonucu elde edilen veriden önceki verinin aynısını elde etmek mümkündür. Örnekler: ZIP, RAR, vs.: Sıkıştırılan dosyaları açtığınızda orijinal dosyaları elde edersiniz. Hiçbir şey kaybolmaz. Huffman Encoding LZ 778

Niçin Dosya Sıkıştırmaya İhtiyaç Duyulmuştur? Minimum alana maksimum veri sığdırmak Daha hızlı aktarım sağlamak, erişim süresini azaltmak Sıra düzensel verileri daha hızlı işleyebilmek için.

Huffman Kodlamasının Mantığı Sıkıştırılacak dosyanın içinde bazı byte değerleri hiç geçmiyor olabilir. Mesela içinde hiç x harfi olmayan bir metin dosyası olabilir. Belli byte değerleri diğerlerine göre daha sık geçebilir. Mesela aaaabbaaaab gibi bir metinde a, b den daha sık geçmektedir. Dosyada bulunan ve sık geçen byte değerlerini daha kısa bir bit düzeniyle ifade etme mantığıdır.

Kodlama Başlıyor Örneğin metin.txt adlı bir dosyayı sıkıştıralım. Bu dosyanın içeriği abacaba şeklinde olsun. Dosyanın boyutu 7 byte, yani (7 x 8 =) 56 bittir. a nın değeri 97, yani bit düzeni 01100001 dir. b nin değeri 98,yani bit düzeni 01100010 dir. c nin değeri 99, yani bit düzeni 01100011 dir. O halde metin.txt dosyasının bit düzeni: 01100001 01100010 01100001 01100011 01100001 01100010 01100001 a b a Öğr.Gör.Günay c TEMÜR a b a

1. Adım: Sayım Dosyada bulunan her byte değerinin dosyada kaç kere geçtiği tespit edilir. [metin.txt]: abacaba a: 4 adet b: 2 adet c: 1 adet

2. Adım: Kümeleme Elimizdeki byte değeri türlerinden en seyrek geçen iki tanesi seçilir, bu ikisi birleştirilir ve bu birleşik değer diğerlerinin arasına geri konur. Bu işlem, tek bir değer çeşidi kalana kadar devam eder. a : 4 b : 2 c : 1

Örnek Kümeleme İşlemi (1. Tur) En seyrek geçen iki karakter olan b (2) ve c (1) çekilir ve birleştirilir. Birleşim a nın yanına geri atılır. a : 4 [b,c] : 3 b : 2 c : 1

Örnek Kümeleme İşlemi (2. Tur) En seyrek geçen iki karakter olan a (4) ve [b,c] (3) çekilir ve birleştirilir. Yeni birleşim geri atılır. Bu işlemin sonunda tek bir değer çeşidi ([a,b,c] : 7) kaldığından kümeleme aşaması sonlanır. [a,b,c] : 7 a : 4 [b,c] : 3 b : 2 c : 1

3. Adım: Kodlama Kümeleme işlemi sonucunda elde edilen ağaç yapısının sola giden oklarına 0, sağa giden oklarına ise 1 denir. Her bir karakterin bit düzeyindeki yeni ifadesi, en tepeden o karaktere giden yoldaki 0 ve 1 lerden oluşur. Yani a: 0, b: 10, c: 11 [a,b,c] : 7 a : 4 [b,c] : 3 b : 2 c : 1

Sıkıştırma İşleminin Sonucu Elde edilen yeni bit düzeyindeki ifadelere göre (a: 0, b: 10, c: 11) dosya içeriği tekrar yazılır: 0 1 0 0 a b a c a b a Dosyamızın ilk içeriği 56 bit (7 byte) iken, sıkıştırıldıktan sonraki boyutu gördüğünüz gibi 10 bit (2 byte) oldu. Yaklaşık olarak %71 oranında sıkıştırma gerçekleşti.

Sıkıştırılmış Dosyanın Açılması Elimizdeki sıkıştırılmış ve bit düzeyindeki veri: 0100110100 Bu veriyi açacak olan anahtar ise yanda verilen ağaç yapısı. Tek yapmamız gereken elimizdeki bit verisini ağaç üzerinde takip edip bir sona geldiğimizde vardığımız karakteri basıp tekrar ağacın başına dönmek. [a,b,c] : 7 0 a : 4 1 [b,c] : 3 b : 2 c : 1

Sıkıştırılmış Dosyanın Açılması 0100110100 a İlk bit olan 0 ı okuduk ve ağaç üzerinde a karakterine vardık. O halde a karakterini basıp ağaçta en başa dönüyoruz. [a,b,c] : 7 a : 4 [b,c] : 3 b : 2 c : 1

Sıkıştırılmış Dosyanın Açılması 0100110100 a Bir sonraki bit olan 1 i okuduk ve ağaç üzerinde herhangi bir sona varamadık. O halde bulunduğumuz yerden devam ediyoruz. [a,b,c] : 7 a : 4 [b,c] : 3 b : 2 c : 1

Sıkıştırılmış Dosyanın Açılması 0100110100 ab Bir sonraki bit olan 0 ı okuduk ve ağaç üzerinde b karakterine vardık. O halde b karakterini basıp ağaçta en başa dönüyoruz. [a,b,c] : 7 a : 4 [b,c] : 3 b : 2 c : 1

Sıkıştırılmış Dosyanın Açılması 0100110100 aba Bir sonraki bit olan 0 ı okuduk ve ağaç üzerinde a karakterine vardık. O halde a karakterini basıp ağaçta en başa dönüyoruz. [a,b,c] : 7 a : 4 [b,c] : 3 b : 2 c : 1

Sıkıştırılmış Dosyanın Açılması 0100110100 aba Bir sonraki bit olan 1 i okuduk ve ağaç üzerinde herhangi bir sona varamadık. O halde bulunduğumuz yerden devam ediyoruz. [a,b,c] : 7 a : 4 [b,c] : 3 b : 2 c : 1

Sıkıştırılmış Dosyanın Açılması 0100110100 abac Bir sonraki bit olan 1 i okuduk ve ağaç üzerinde c karakterine vardık. O halde c karakterini basıp ağaçta en başa dönüyoruz. [a,b,c] : 7 a : 4 [b,c] : 3 b : 2 c : 1

Sıkıştırılmış Dosyanın Açılması 0100110100 abaca Bir sonraki bit olan 0 ı okuduk ve ağaç üzerinde a karakterine vardık. O halde a karakterini basıp ağaçta en başa dönüyoruz. [a,b,c] : 7 a : 4 [b,c] : 3 b : 2 c : 1

Sıkıştırılmış Dosyanın Açılması 0100110100 abaca Bir sonraki bit olan 1 i okuduk ve ağaç üzerinde herhangi bir sona varamadık. O halde bulunduğumuz yerden devam ediyoruz. [a,b,c] : 7 a : 4 [b,c] : 3 b : 2 c : 1

Sıkıştırılmış Dosyanın Açılması 0100110100 abacab Bir sonraki bit olan 0 ı okuduk ve ağaç üzerinde b karakterine vardık. O halde b karakterini basıp ağaçta en başa dönüyoruz. [a,b,c] : 7 a : 4 [b,c] : 3 b : 2 c : 1

Sıkıştırılmış Dosyanın Açılması 0100110100 abacaba Son bit olan 0 ı okuduk ve ağaç üzerinde a karakterine vardık. O halde a karakterini basıp ağaçta en başa dönüyoruz. Bit dizisi sona erdiği için kod açma işlemini sona erdiriyoruz. [a,b,c] : 7 a : 4 [b,c] : 3 b : 2 c : 1

KURAL