Yorumlarınızı okuduktan sonra, bu daha mantıklı geliyor. Bunun gibi megabayt veriyi kodlamak isteyip istemediğinizden emin değildim.
Oliver'ın önerisi doğrultusunda, hapishane çetelerinin genellikle iki ya da daha fazla senaryoda yazılmış olan iki farklı senaryoda saklanan mesajları kodlamak için sıkça kullandıkları Bacon'un şifresinden bir sayfa ödünç alarak veri yoğunluğunuzu arttırmanızı tavsiye ederim. küçük harfli karakterler veya yazdırmaya karşı el yazısı karakterleri;
Hey mOM, WHAT's FOR diNNeR TODAY? = ABBBA AAAAA BAAAB BAABA AAAAA
= P A S T A
Ancak, amacınız stegnografi olmadığından, bunu glif kümenizi genişletmek için kullanırsınız. Bunu yaparak, yalnızca baskı ve el yazısı alfanümerik karakterleri kullanarak 114 glif veya çift karakterli kodlamayı kullanarak 12996 kod noktasına sahip olabilirsiniz.
Bununla birlikte, tüm glif sayıları 15'ten büyük ve 256'dan küçük sayılar temelde bir ikili veri şifresi için aynıdır (yani, karakter başına 4 bitlik bir veri yoğunluğu veren, her baytı temsil etmek için 2 karaktere ihtiyacınız olacak) tüm durumlarda), fazladan 98 glif / 12740 kod noktasını hata algılama / düzeltme için kullanabilirsiniz.
Bunu yapmanın yolları şunlardır:
- Karakter kombinasyonlarını okumak / yazmak için en kolay 256 kümesi seçin. Başka bir karakter kombinasyonu olursa, bunun bir kopyalama hatası olduğunu biliyorsunuzdur.
- Bitiş karakterinin iki sürümünü parite biti olarak kullanın.
50 farklı 16 karakterlik glif kümeleri oluşturun. Hata düzeltme verilerini kodlamak için bunları kullanabilirsiniz.
Örneğin {set 1}{set 1}
, bir sonraki 3 nibble eşit 0x000
, {set 1}{set 2}
eşittir 0x001
, vb. Anlamına gelir .
Bunu, 4096 olası 1,5 bayt değerinin 2500+ değerini temsil etmek için kullanabilirsiniz. Benzer şekilde, aşağıdaki baytın tüm değerlerini temsil etmek için yalnızca 16 takım kullanabilirsiniz, kodlanmış veri uzunluğunuzu arttırmadan size% 100 fazlalık verir.
Alternatif olarak, ilave sıkıştırma için fazladan glifleri kullanabilirsiniz:
- 98 tek karakterli kod noktası seçerek değişken genişlikli kodlama uygulayın. Bu, ortalama kodlanmış içerik boyutunu yaklaşık% 20 oranında azaltır.
- Tekrarlayan nibble / baytları temsil etmek için farklı glif kümeleri veya glif kümesi kombinasyonları kullanarak çalışma uzunluğu kodlamasına benzer bir şey uygulayın. Örneğin,
Ab
= aba
; aB
= abab
; AB
= ababab
...
- Verilerinizde tekrarlanan "kelimeleri" ve "ifadeleri" temsil etmek için fazladan glifleri veya kod noktalarını kullanın. Önceden sıkıştırılmış veriler muhtemelen yüksek bir entropiye sahip olacak olsa da, bunun ne kadar etkili olacağını bilmiyorum.
Kopyalama hatalarını daha da azaltmak için, kodlanmış içeriği kılavuz çizgilerinde görüntüler ve grafik kağıdına kopyalardım. Değişken sütun / satır renkleri olan özel sabitleri veya hızlı görünümler için harfli sütunlar ve numaralı satırları olan satranç tahtası stilinde kareli bir ızgara kullanabilirsiniz, bu, kopyalama doğruluğunu artıracaktır.
Alternatif bir ızgara düzenini, kolay bir hata saptama şekli olarak alternatif karakter stilleriyle birleştirebilirsiniz. Yani, eğer tek sütunlar her zaman büyük harfle yazılırsa, eğer transkript kendi küçük harflerle küçük harflerle yazılırsa, bir hata yaptıklarını bilirler ve nerede olduğunu görmek için geri izlemeye başlayabilirler.
Ana önceliğiniz doğruluk olsa bile, bir ikili kodlama +
Hamming kodu kullanırdım . Standart grafik kağıdına (12, 8) kısaltılmış bir Hamming kodu kullanarak, yalnızca 124 bayt veri kodlayan yalnızca 187 bayta sığabilir. Ancak çok hızlı bir şekilde kopyalanabilir (1 için bir eğik çizgi, 0 için hiçbir şey değil) ve tek bir hata düzeltmesi sağlayabilir. Ek bir eşlik biti (13, 8) üzerine yapıştırma işlemi SECDED sağlar (tek hata düzeltmesi, çift hata tespiti). (15, 11) veya (31, 26) gibi standart bir hamming kodu kullanarak, sayfa başına sırasıyla 137 ve 156 bayt veriyle daha iyi verim elde edersiniz. Transkriptinizin ne kadar doğru olduğunu düşündüğünüze bağlı olarak daha yüksek kod oranları elde edilebilir.
Bir ikili kodlamanın okunması (sesli) ve OCR / OMR da daha kolay olacaktır.