Huffman kodu - Vikipedi
İçeriğe atla
Ana menü
Gezinti
  • Anasayfa
  • Hakkımızda
  • İçindekiler
  • Rastgele madde
  • Seçkin içerik
  • Yakınımdakiler
Katılım
  • Deneme tahtası
  • Köy çeşmesi
  • Son değişiklikler
  • Dosya yükle
  • Topluluk portalı
  • Wikimedia dükkânı
  • Yardım
  • Özel sayfalar
Vikipedi Özgür Ansiklopedi
Ara
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç

İçindekiler

  • Giriş
  • 1 Teknik
    • 1.1 Ağacın oluşturulması
  • 2 Dezavantajları
  • 3 Dış bağlantılar

Huffman kodu

  • العربية
  • Azərbaycanca
  • Català
  • Čeština
  • Dansk
  • Deutsch
  • Ελληνικά
  • English
  • Esperanto
  • Español
  • Eesti
  • Euskara
  • فارسی
  • Suomi
  • Français
  • עברית
  • Magyar
  • Bahasa Indonesia
  • İtaliano
  • 日本語
  • ქართული
  • 한국어
  • Lombard
  • മലയാളം
  • Nederlands
  • Norsk bokmål
  • Polski
  • Português
  • Русский
  • Simple English
  • Српски / srpski
  • Svenska
  • ไทย
  • Українська
  • Tiếng Việt
  • 中文
Bağlantıları değiştir
  • Madde
  • Tartışma
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Araçlar
Eylemler
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Genel
  • Sayfaya bağlantılar
  • İlgili değişiklikler
  • Kalıcı bağlantı
  • Sayfa bilgisi
  • Bu sayfayı kaynak göster
  • Kısaltılmış URL'yi al
  • Karekodu indir
Yazdır/dışa aktar
  • Bir kitap oluştur
  • PDF olarak indir
  • Basılmaya uygun görünüm
Diğer projelerde
  • Wikimedia Commons
  • Vikiveri ögesi
Görünüm
Vikipedi, özgür ansiklopedi
(Huffman kodlaması sayfasından yönlendirildi)

Huffman Kodu, bilgisayar biliminde veri sıkıştırma için kullanılan, bir entropi kodlama algoritmasıdır. David A. Huffman tarafından 1952 yılında geliştirilmiştir.

Huffman'ın algoritması, her sembol (veya karakter) için özel bir kod üretir. Bu kodlar (ikilik sistemdeki 1 ve 0'lardan oluşan) bit haritası şeklindedir. Veri içerisinde en az kullanılan karakter için en uzun, en çok kullanılan karakter için ise en kısa kodu üretir.

Huffman tekniği günümüzde tek başına kullanılmaz. LZW, RLE gibi yöntemlerle birlikte kullanılır.

Teknik

[değiştir | kaynağı değiştir]

Huffman'ın algoritması, veri içerisindeki karakterlerin kullanım sıklığına (frekans) göre bir ağaç oluşturur. Ağacın en tepesinden aşağıya doğru ilerlerken sola ayrılan dal için 0, sağa ayrılan dal için 1 kodu verilir.

         5
       /   \
    0 3     2 1
     / \     \
  0 1   2 1   C
   /     \
  B       A

Yukarıda koyu rakamlar karakter sayısını (kullanım sıklığı-frekans) gösterir, eğik rakamlar ise bit kodlarını gösterir. Bu ağaç "ABC" karakterlerinden oluşan bir veri kümesi için üretilmiştir.

Ağaca göre karakterler için bit haritaları şu şekildedir:

B: 00
A: 01
C: 1

Oluşturulan bit haritaları karakterlerin veri içerisindeki konumlarına göre yerleştirilir. Ortaya çıkan bit haritası sıkıştırılmış veridir.

Örneğin; "BAACC" verisi elde edilen bit haritalarına göre yeniden düzenlenirse:

00 01 01 1 1 = 00010111 = 17h

Yani %80 oranında bir sıkıştırma elde edilmiş olur.

Ağacın oluşturulması

[değiştir | kaynağı değiştir]

İlk önce karakterlerin frekansları (kullanım sıklıkları) hesaplanmalıdır.

Örneğin, elimizdeki veri "BAACC" olsun,

B: 1
A: 2
C: 2

B:1   A:2   C:2

1     2     2
 \     \     \
  B     A     C

En küçük iki frekans toplanır ve frekans tablosu yeniden düzenlenir,

B:1 + A:2   C:2

C:2   BA:3

2      3
 \    / \
  C  1   2
    /     \
   B       A

Tek bir ağaç oluşturulana kadar sürekli en küçük frekanslar toplanır,

C:2 + BA:3

CBA:5

      5
     / \
    3   2
   / \   \
  1   2   C
 /     \
B       A

Dezavantajları

[değiştir | kaynağı değiştir]

Huffman algoritması az sayıda karakter çeşidine sahip ve büyük boyutlardaki verilerde çok kullanışlı olabilir. Fakat oluşturulan ağacın sıkıştırılmış veriye eklenmesi zorunludur. Bu da sıkıştırma verimini düşürür. Adaptive Huffman gibi teknikler bu sorunu halletmek için geliştirilmişlerdir.

Dış bağlantılar

[değiştir | kaynağı değiştir]
  • Huffman Veri Sıkıştırma Algoritması ve Uygulamalı Anlatımı
  • The Huffman Coding Procedure (İngilizce)
"https://tr.wikipedia.org/w/index.php?title=Huffman_kodu&oldid=31978607" sayfasından alınmıştır
Kategoriler:
  • Kayıpsız veri sıkıştırma algoritmaları
  • Kodlama teorisi
  • İkili ağaçlar
  • Sayfa en son 20.46, 7 Mart 2024 tarihinde değiştirildi.
  • Metin Creative Commons Atıf-AynıLisanslaPaylaş Lisansı altındadır ve ek koşullar uygulanabilir. Bu siteyi kullanarak Kullanım Şartlarını ve Gizlilik Politikasını kabul etmiş olursunuz.
    Vikipedi® (ve Wikipedia®) kâr amacı gütmeyen kuruluş olan Wikimedia Foundation, Inc. tescilli markasıdır.
  • Gizlilik politikası
  • Vikipedi hakkında
  • Sorumluluk reddi
  • Davranış Kuralları
  • Geliştiriciler
  • İstatistikler
  • Çerez politikası
  • Mobil görünüm
  • Wikimedia Foundation
  • Powered by MediaWiki
Huffman kodu
Konu ekle