Veriler Shannon veri sıkıştırma sınırından daha küçük bir boyuta sıkıştırılabilir mi?


17

Veri sıkıştırma algoritmaları ve veri sıkıştırma için teorik sınır hakkında okuyordum. Son zamanlarda "Kombinatoryal Entropi Kodlaması" adlı bir sıkıştırma yöntemiyle karşılaştım, bu yöntemin ana fikri, dosyayı dosyada sunulan karakterler, frekansları ve dosya tarafından temsil edilen bu karakter permütasyonunun dizini olarak kodlamaktır.

Bu belgeler bu yöntemin açıklanmasına yardımcı olabilir:

https://arxiv.org/pdf/1703.08127

http://www-video.eecs.berkeley.edu/papers/vdai/dcc2003.pdf

https://www.thinkmind.org/download.php?articleid=ctrq_2014_2_10_70019

Bununla birlikte, ilk belgede, bu yöntemi kullanarak bazı metinleri Shannon sınırından daha az bir boyuta sıkıştırabileceklerini okudum (Karakterlerin sıklığını kaydetmek için gereken alanı ve metayı kaydetmek için gereken alanı düşünmediler dosya verileri). Bunu düşündüm ve bu yöntemin çok küçük dosyalar için çok verimli olmayacağını, ancak diğer yandan büyük dosyalarla iyi çalışabileceğini buldum. Aslında tam olarak ben sadece çarpımına her karakterin olasılığı toplamı biliyorum bu algoritma veya çok iyi Shannon sınırı anlamıyorum olasılık karşıtının.lÖg2

Bazı sorularım var:

  1. Bu sıkıştırma yöntemi gerçekten Shannon sınırından daha küçük olan dosyaları sıkıştırır mı?

  2. Dosyaları Shannon sınırından daha azına sıkıştıran herhangi bir sıkıştırma algoritması var mı (bildiğim kadarıyla bu sorunun cevabı hayır)?

  3. Dosyaları Shannon sınırından daha küçük bir boyuta sıkıştıran bir sıkıştırma yöntemi var olabilir mi?

  4. Kombinatoryal kodlama gerçekten Shannon sınırını aşan dosyaları sıkıştırırsa, istediğimiz dosya boyutuna ulaşana kadar dosyayı tekrar tekrar sıkıştırmak mümkün değil mi?


26
Shannon , Shannon sınırının altına sıkışamayacağınızı kanıtladı .
Yuval Filmus

11
Kayıp sıkıştırma ile Shannon sınırının altına inebilirsiniz . Shannon sadece bilgi kaybetmeden limitin altına sıkışamayacağınızı gösterdi . @YuvalFilmus. RGB görüntüsünde, R, G, B bileşenlerinin düşük dereceli bitlerini atabilirsiniz.
smci


6
@smci Sıkıştırma teorisi ile ilgili herhangi bir tartışmada bu büyük önemsizdir. Açıkçası her bir parçayı atıp sıkıştırma diyebilirim.
boru

1
Resim gibi büyük bir dosyam olduğunu varsayalım. Şimdi modelde tüm görüntüyü "1" ile eşleştiriyorum ha .. Tüm görüntünün "1" değerine sıkıştırıldığı için Shannon sınırının altına sıkıştırdım ......
Pieter B

Yanıtlar:


34

Aslında bu algoritmayı veya Shannon sınırını çok iyi anlamıyorum, sadece her karakterin olasılığın toplamının log2 ile çarpının olasılığının toplamı olduğunu biliyorum.

Burada önemli nokta yatıyor. Shannon sınırı, bir metin dizisinin evrensel bir özelliği değildir. Bu metin dizesi malıdır artı sağlayan bir model (muhtemelen bağlam-bağımlı) sembollerin olasılıkları. O kadar iyi söyler modeli , metni sıkıştırmak olabilir modelini varsayarak doğrudur .

Eğer Shannon limitini hesaplamak için bir model, sonra sıkıştırmak için farklı bir model kullanırsanız, ikinci model daha doğruysa, hesaplamış olduğunuz orijinal Shannon limitini yenebilirsiniz, ancak bu gerçekten alakalı değildir.


4
Pratik bir örnek vermek gerekirse, verilerinizin N kez tekrarlanan tek bir harften oluştuğunu biliyorsanız, keyfi olarak yüksek sıkıştırma oranları elde edebilirsiniz (yani 10 milyar 'a' dan bir tuple ('a', 10000000))
Ant

12

Shannon sınırının altına sıkıştırabileceğinizi göstermek çok basittir - belirteçlere atanmış bir grup ortak dosyaya sahip bir hile kompresörü alın. Bahsedilen dosyalar bu belirteçler olarak saklanır. (Açıkçası, kompresör çok büyük olmalı veya çok büyük bir kütüphane üzerinde çizim yapmalıdır .)

Kompresör, bir belirteci normal bir sıkıştırmadan bir şekilde ayırması gerektiğinden, kütüphanesinde olmayan herhangi bir dosyayla uğraşmada doğal olarak daha az verimli olacaktır.

Yapamayacağınız şey , tüm dosyalarda Shannon sınırını aşan bir kompresöre sahip olmak .


11

1/21/31/6plÖg2(1/p)

Ancak başka bir model uygularsanız, başka bir olasılık dizisi elde edersiniz. Fe "u" harfi oldukça nadirdir, bu nedenle metnin tamamındaki olasılığı% 3 olabilir ve bu harfi bir order-0 Markov modeli kullanarak atamanız gerekir .

Ancak İngilizce metinlerde, "q" genellikle bir "u" geldikten sonra, bir sipariş-1 modeli kullanarak, "q" dan sonra "u" ya gitme olasılığını artırarak sıkıştırma oranını artırabilirsiniz.

Ayrıca, bazı modeller girdi olanlardan daha az sembol çıkarır, fe LZ77 metin tekrarlarını geri referanslarla değiştirir, böylece "abababab" "ab [2,8]" olur.

Birisi Shannon entropisinden belirli bir model tarafından sıkıştırılmış verilerden ziyade bazı verilerin konuşmasından bahsederken, genellikle bir order-0 modeli tarafından üretilen Shannon entropisi anlamına gelir, yani her sembole olasılığını metnin tamamına atar. Açıkçası, verilere daha sofistike bir model uygulayarak bu marjı yenebilirsiniz.


3

Metnin başka bir olası yorumu: verilen sıkıştırma algoritması size bazı metinlerin daha iyi sıkıştırılmasını ve diğerlerinin daha kötü sıkıştırılmasını sağlayacaktır. Bununla birlikte, kullanıcılar genellikle bazı dosya türlerini (İngilizce HTML sayfaları, 80386 makine kodu) diğerlerinden daha fazla önemser (gerçekten rasgele sayı tabloları, tekrarlamayı en aza indirgemek için seçilen anlamsız gürültü). Herhangi bir sıkıştırma şeması, gerçek dünyadaki verilerin sıkıştırılmasında daha iyi olmakla, diğer bazı dizeleri sıkıştırmakta yararsız olmaktan daha kötü olacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.