RAPICOM 450’DEN FAKSİMİL VERİLERİNİN ÇÖZÜMLENMESİ
Network Working Group — A. Katz
Request for Comments: 798
ISI
Eylül 1981
I. Giriş
Bu not, Rapicom 450 faks makinesinden gelen faksimil (fax) verilerini sıradan bir bitmap'e çözümleyen bir programın uygulanmasını açıklamaktadır. Bu bitmap daha sonra başka aygıtlarda görüntülenebilir ya da düzenlenip tekrar Rapicom 450 biçimine kodlanabilir. Bunun yapılabilmesi için, kodlama/çözümleme sürecinin faks makinesi içinde nasıl çalıştığını anlamak ve bu süreci bir program içinde yeniden gerçekleştirmek gerekli olmuştur.
Bu algoritma Weber [1] tarafından yazılmış bir makalede ve Mills [2] tarafından yazılmış bir notta açıklanmaktadır; ancak verilerin başarıyla çözümlenebilmesi için bu belgelerde sunulandan daha fazla bilgi gereklidir.
Program, TOPS20 üzerinde çalışan NLS’in bir alt sistemi olarak L10 dilinde yazılmıştır. Faks makinesi, FAXIE adı verilen mikroişlemci tabanlı bir arayüz aracılığıyla TOPS20’e bir terminal olarak bağlanmıştır.
Yardımlarından dolayı University College London’dan Steve Treadwell’e ve Information Sciences Institute’dan Jon Postel’e teşekkür edilir.
II. TOPS20 ile Arayüz
Faks makinesi, Steve Casner ve Bob Parker tarafından tasarlanıp geliştirilen FAXIE adlı mikroişlemci tabanlı bir birime bağlanmıştır. Daha ayrıntılı bilgi için [3] numaralı kaynağa bakılabilir. FAXIE, bir terminal hattı üzerinden TOPS20’e bağlanır ve bu hat üzerinden veriyi okuyup bir dosyaya kaydeden bir program yazılmıştır. Çözümleme programı faks verisini bu dosyadan okur.
Veri faks makinesinden seri olarak gelir. FAXIE bu veriyi 8 bitlik bir kaydırma yazmacına okur ve 8 bitlik baytı (oktet) terminal hattı üzerinden gönderir. Faks makinesi MARK değerini mantıksal 0’a ve SPACE değerini mantıksal 1’e atadığından (RS232’ye göre ters), FAXIE oktetteki her biti tümleyerek gönderir.
Veri TOPS20’e oktetler halinde, en anlamlı bit önce gelecek şekilde gönderilir. Eğer her okteti, FAXIE’nin veriyi TOPS20’e gönderdiği sırayla en anlamlı bitten en az anlamlı bite doğru okursanız, veriyi faks makinesinden FAXIE’ye geldiği sırayla okumuş olursunuz.
Rapicom 450 faksimil verisinin saklanmasına ilişkin standart RFC 769 [4] içinde açıklanmıştır. Bu standarda göre FAXIE’den gelen her oktet tümleyenlenmeli ve ters çevrilmelidir (yani oktetteki bitlerin sırası tersine çevrilir). Bu nedenle alıcı program veriyi dosyaya kaydetmeden önce bu işlemi gerçekleştirmiştir.
Çözümleme programı bu dosyayı okurken her okteti ters çevirmeli ve tümleyenlemelidir.
Faks makinesinden gelen her veri bloğu 585 bit uzunluğundadır. Bu verinin sonuna yedi adet 0 eklenerek toplam 592 bit ya da 74 oktet yapılır. RFC 769’a göre bu veri dosyada bir uzunluk okteti ve bir komut okteti ile başlatılarak saklanır. Olası komutlar şunlardır:
- 56 (70 sekizlik) — Bu bir Set-Up bloğudur (dosyanın ilk bloğu, faks görüntüsü hakkında bilgi içerir).
- 57 (71 sekizlik) — Bu bir veri bloğudur (dosyadaki son blok hariç diğer bloklar).
- 58 (72 sekizlik) — Bitiş komutu (dosyanın son bloğu).
Uzunluk alanı bu blokta kaç oktet olduğunu belirtir ve END komutu hariç her zaman 76 (114 sekizlik) değerindedir; END komutu için 2 olabilir (veri yok). Uzunluk ve komut oktetleri ters çevrilmez ve tümleyenlenmez.
Aşağıda dosyadaki her bloğun diyagramı verilmiştir:
+--------+--------+--------+--------+--------+--------+
| length | command| data | data | ... | |
+--------+--------+--------+--------+--------+--------+
III. Rapicom 450 Kodlama Algoritması
Sıradan bir 8½" × 11" belge yaklaşık 2100 tarama satırından oluşur. Her satırda 1726 pel (resim elemanı) bulunur. Her pel siyah (1) ya da beyaz (0) olabilir.
Rapicom 450’nin üç görüntü kalitesi modu vardır:
- Fine detail mode — belgenin tamamı kodlanır.
- Quality mode — yalnızca her ikinci tarama satırı kodlanır; eksik satırlar oynatma sırasında bir önceki satırın kopyalanmasıyla doldurulur.
- Express mode — yalnızca her üçüncü satır kodlanır.
Veri, özel bir iki boyutlu çalışma-uzunluğu kodlama yöntemi kullanılarak iki satır birden kodlanır. Üst satırda 1726 pel ve alt satırda 1726 pel vardır. Her pel çifti (üst–alt) bir sütun olarak adlandırılır.
1726 sütunun her biri için dört olası yapılandırma (durum) vardır:
column (top-bottom) pels state
------------------- ---- -----
W-W 0,0 0
W-B 0,1 1
B-W 1,0 2
B-B 1,1 3
Kodlama algoritması, Mills [2]’de verilen Şekil 1’deki deterministik olmayan sonlu durum otomatı cinsinden açıklanabilir. Bir durumdan (0–3) başlanır ve diyagramdaki yaylar üzerinde belirtilen bitler üretilerek başka bir duruma geçilir.
Örneğin durum 1 (WB) içindeyseniz, durum 2 (BW) durumuna geçmek için 101 (ikili) bitleri gönderilir; durum 0 (WW) durumuna geçmek için ise 1000 gönderilir. Her geçişte kullanılan bit sayısının değişken olduğuna dikkat edilmelidir.
Durum 0 (WW) ve durum 3 (BB) için özel bir çalışma-uzunluğu kodlama yöntemi kullanılır. Bu durumların her biriyle ilişkili iki durum değişkeni vardır:
- bir çalışma-uzunluğu sayacı
- bu sayacın alan uzunluğu (bit cinsinden)
Bu durumlardan birine girildiğinde sayaç sıfıra ayarlanır ve aynı durumdaki her ek sütun için artırılır. Çalışmanın sonunda bu sayaç, gerekirse yüksek anlamlı sıfırlarla genişletilerek gönderilir.
Eğer sayaç alanı doldurursa, sayaç gönderilir, alan uzunluğu bir artırılır ve sayım yeniden başlar. Bu değere run length word adı verilir ve uzunluğu 2 ile 7 bit arasındadır.
Örneğin durum 0 (WW) içinde olduğumuzu ve bu durum için çalışma uzunluğunun (beyaz çalışma uzunluğu) 3 olduğunu varsayalım. Üst üste üç adet 0 olduğunu düşünelim. İlk 0 bu duruma geçildiğinde kodlanmıştır; kodlanması gereken iki adet 0 daha vardır. Bu durumda gönderilecek veri:
010 (binary)
Benzer şekilde art arda yedi adet 0 varsa gönderilecek değer:
110
Ancak sekiz adet 0 şu şekilde gönderilir:
111 followed by 0000
ve beyaz çalışma uzunluğu 4 olur.
(On adet 0 ise 111 followed by 0010 biçiminde kodlanır ve beyaz çalışma uzunluğu 4 olur.)
Run-Length Alan Ayarlama Kuralları
Run length word uzunlukları 2 ile 7 bit arasında olmalıdır. Çalışma tek bir word ile kodlanmışsa ve şu durumlar geçerliyse alan uzunluğu azaltılır:
- Çalışma uzunluğu 3 ve en yüksek anlamlı bit 0 ise.
- Çalışma uzunluğu 4, 5, 6 veya 7 ve en yüksek anlamlı iki bit 0 ise.
Ayrıca çalışma en az iki run word içeriyorsa (ve run word boyutunun artmasını içerebiliyorsa) ve çalışma bir tarama satırının tam sonunda bitiyorsa uygulanacak özel bir kural vardır. Bu durumda çalışmanın son word’ü, sanki önceki word’ler yokmuş gibi azaltma açısından test edilir.
Örnek
Kodlama yönteminin anlaşılmasını doğrulamak için aşağıdaki belge bölümünü ele alalım (1 = siyah, 0 = beyaz):
top row: 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 ...
bottom row: 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 ...
------------- --------------------------------
state: 1 3 3 3 3 2 0 0 0 0 0 2 2 1 0 0 ...
Ayrıca siyah çalışma alan uzunluğunun 2, beyaz çalışma uzunluğunun 3 ve durumun 1 olduğunu varsayalım (bu örnek [1] kaynağından alınmıştır).
Bu bölüm şu şekilde kodlanır:
1 1011 11 000 1 0100 100 1 0 010 1000 ...
Not: Rapicom 450’nin bir alanın bitlerini ters sırayla gönderdiği görülmektedir. Bu durum Bölüm V’te ele alınacaktır. Ancak her çalışma uzunluğu alanı ters gönderildiğinden, yukarıdaki kodlanmış bit deseni gerçekte şu şekilde gönderilir:
1 1011 11 000 1 0100 001 1 0 010 1000 ...
^
bu aslında ters çevrilmiş 100 değeridir
Başka Bir Örnek
Bu örnek çalışma-uzunluğu word uzunluklarının azaltılması kuralını gösterir:
top row: 0 1 1 0 0 1 1 1 1 1 0 0 ...
bottom row: 1 1 1 1 1 0 1 1 1 1 1 0 ...
------------- -----------------------
state: 1 3 3 1 1 2 3 3 3 3 1 0 ...
Bu kez siyah çalışma alan uzunluğunun 4, beyaz çalışma uzunluğunun yine 3 ve durumun 1 olduğunu varsayalım.
Bu bölüm şu şekilde kodlanır:
1 1011 0001 1 1 101 0111 011 1 1000 ...
^ ^
3'e gider blk sayacı 2 olur
Run alanlarının sırasını ters çevirdiğimizde gönderilen gerçek bit deseni şu olur:
1 1011 1000 1 1 101 0111 110 1 1000 ...
^
bu aslında ters çevrilmiş 0001 değeridir
IV. Set-Up Bloğu ve Veri Başlığı
Faks makinesinden gelen her veri bloğu 585 bit uzunluğundadır. Bir görüntüdeki blok sayısı değişkendir ve görüntünün boyutuna ve özelliklerine bağlıdır. Bir blok, belgedeki bir tarama satırının ortasında sona erebilir; hatta bir blok içinde birçok tarama satırı bulunabilir.
585 bitlik veri bloğu şu bileşenlerden oluşur:
- Bloğun başlangıcını tanımak için kullanılan 24 bitlik senkronizasyon kodu
- 37 bitlik başlık
- 512 bit gerçek veri
- 12 bitlik CRC sağlama toplamı
------------------------------------------------------------------
| 24-bit | 37-bit | 512-bit | 12-bit |
|sync code | header | data | checksum |
------------------------------------------------------------------
Kullanılabilir veri bitlerinin sayısı değişkendir ve 0 ile 512 arasında olabilir (her zaman 512 bit bulunmasına rağmen bazıları yok sayılır). Kullanılacak veri bitlerinin sayısı başlık içinde belirtilir.
RFC 798 — Faksimil Verisinin Çözümü
IV. Set-Up Bloğu ve Veri Başlığı
37 bitlik başlık şu alanlardan oluşur:
------------------------------------------------------------------
| 2-bit |5-bit| 10-bit | 12-bit | 3-bit | 3-bit |2-bit|
|seq num|flags|data count| x position|black size|white size|state|
------------------------------------------------------------------
Bu alanların açıklamaları aşağıdadır:
ÖNEMLİ NOT: Bu alanların çoğu (ancak tamamı değil) faks makinesi tarafından TERS SIRADA gönderilir. Her n-bitlik alanın bit sırası ters çevrilmelidir.
Sync code
Her blokta senkronizasyon sağlamak için kullanılır. Bu 24 bitlik alanın değeri 30474730 sekizliktir (ters çevrilmez).
Sequence number
Bu sayı veri blokları için 0, 1, 2, 3 şeklinde döner. Set-Up bloğu için 0 değerindedir (ters çevrilmez).
Flags
Bu bayrakların her biri 1 bit genişliğindedir:
Run
Amacı bilinmemektedir; her zaman 1 görünmektedir.
Cofb
Amacı bilinmemektedir; her zaman 0 görünmektedir.
Rpt
Set-Up blokları için 1’dir (faks makinesinden gelirken tekrar edilir, ancak FAXIE yalnızca bir tanesini TOPS20’e aktarır ve dosyaya kaydeder), veri blokları için 0’dır.
Spare
Amacı bilinmemektedir; önemli değildir.
Sub
Bu bir Set-Up bloğu ise 1’dir.
Data Count
512 veri bitinden kullanılacak yararlı bit sayısıdır. Tüm 512 bit kullanılmaz; yalnızca bu sayı kadar bit kullanılır. Bu değer 0 olabilir (genellikle ilk veri bloklarından birinde görülür); bu durumda blok atılır.
(Bu alan ters gönderilir.)
X Position
Tarama satırı üzerindeki mevcut konum; 0 ile 1725 arasında bir değerdir.
- Bu sayı önceki bloğun bıraktığı konumdan büyükse aradaki boşluk beyaz (0) ile doldurulmalıdır.
- Bu sayı önceki bloğun bıraktığı konumdan küçükse X konumu bu değere ayarlanmalı ve örtüşen veri bu bloktan gelen yeni veri ile değiştirilmelidir.
- Bu sayı 1726’dan büyükse bu alan yok sayılmalı ve önceki bloğun bıraktığı yerden devam edilmelidir.
(Bu alan ters gönderilir.)
Black Size
Siyah çalışma-uzunluğu alanının boyutu; 2 ile 7 arasında olmalıdır. Bu değer siyah boyutu için doğru değerdir. Önceki bloğun sonunda bulunan değerden farklı olabilir.
(Bu alan ters gönderilir.)
White Size
Beyaz çalışma-uzunluğu alanının boyutu; 2 ile 7 arasında olmalıdır. Önceki bloğun sonunda bulunan değerden farklı olabilir.
(Bu alan ters gönderilir.)
State
Mevcut durum. Bu doğru durumdur. Önceki bloğun sonunda bulunan durumdan farklı olabilir.
(Bu alan ters gönderilmez.)
Data
Belgenin gerçek kodlamasını içeren 512 bit veri. Genel olarak bu verinin tamamı kullanılmaz; yalnızca data count tarafından belirtilen miktarı kullanılır.
Eğer bu bir set-up bloğu ise veri, belge türü hakkında bilgi içerir (aşağıya bakınız).
Checksum
Tüm blok üzerinde aşağıdaki polinom kullanılarak hesaplanan CRC sağlama toplamı:
x12 + x8 + x7 + x5 + x**3 + 1
Set-Up Bloğu Veri Biçimi
Bir setup bloğunda veri bölümü şu yapıdadır:
-----------------------------------------------------------
| 6-bit | 5-bit | 1-bit | 20-bits | 480-bits
| flags | spare |multi page| of zeros | 1's and 0's
-----------------------------------------------------------
Flags (6 bit)
Her bayrak 1 bit genişliğindedir:
Start bit
Her zaman 0.
Speed
Express modunda ise 1.
Detail
Detail modunda ise 1.
Not: Detail ve Speed bayraklarının ikisi de 0 ise veri Quality mode içindedir.
14 inch paper
Kağıt uzunluğu 14 inç ise 1.
5.5 inch paper
Kağıt uzunluğu 5.5 inç ise 1.
Not: 14 inch ve 5 inch bayraklarının ikisi de 0 ise kağıt uzunluğu 11 inçtir.
Paper present
Tarayıcıda kağıt varsa 1 (her zaman 1 olmalıdır).
Spare
Bu 5 bit herhangi bir değerde olabilir.
Multi-page
Çok sayfalı mod ise 1.
Set-Up Bloğunun Veri Bölümünün Kalanı
Yukarıdaki alanları şu kısımlar izler:
- Yirmi adet 0 bit
- 512 bitlik bloğun geri kalanı, sırasıyla değişen 0 ve 1’lerden oluşur.
Veri Bloğu Başlıkları Hakkında Önemli Notlar
Ters Çevrilen Alanlar
Aşağıdaki alanlar ters sırada okunmalıdır:- Data count
- X position
- Black run size
- White run size
Faks makinesi bu bitleri ters sırayla gönderir.
Sequence number ve state alanları ters değildir.
Ayrıca verideki her run alanı da ters gönderilir. Bu işlem, daha önce açıklanan her oktetin ters çevrilmesi ve tümleyenlenmesi işleminden ayrı bir işlemdir.
Geçerli Veri Bitleri
Verinin yalnızca ilk n biti geçerlidir; burada n = data count (ters çevrilmiş olduğunu unutmayın). Kalan bitler yok sayılmalıdır.Eğer n = 0 ise tüm blok yok sayılmalıdır.
X Position İşleme Kuralları
- X konumu son bloğun bittiği yerin ilerisindeyse aradaki boşluk beyaz (0) ile doldurulmalıdır.
- X konumu son bloğun bittiği yerden küçükse örtüşen veri yeni blok verisi ile değiştirilmelidir.
- X konumu 1726’dan büyükse yok sayılmalı ve önceki konumdan devam edilmelidir.
Run Boyutları ve Durum
Başlıkta verilen black size, white size (ters) ve state (ters değil) değerleri doğru kabul edilmelidir; önceki bloğun sonunda bulunan değerlerle uyuşmasa bile.
Sequence Number
Sıra numarası (ters çevrilmemiş) 0, 1, 2, 3 boyunca saymalıdır. Eğer saymıyorsa, bir blok eksiktir.
V. Kod Çözme Algoritması
İlk bakışta, Şekil 1'deki sonlu durum diyagramı çözülmesi zor görünebilir. Örneğin, WW durumundaysanız ve bir sonraki bit 1 ise, WB mi yoksa BW durumuna mı geçileceğini nasıl belirlersiniz?
Yanıt şudur:
- BW durumundan çıkan her yay 0 ile başlar.
- WB durumundan çıkan her yay 1 ile başlar.
Dolayısıyla WW durumundaysanız:
- Sonraki bit 1, ardından 0 → BW durumuna git.
- Sonraki bit 1, ardından 1 → WB durumuna git.
Kod çözme programını yazarken iki bit okuma yöntemi gerekir:
- Bit tüket: biti oku ve bit işaretçisini ilerlet.
- Bite göz at: biti oku ancak işaretçiyi ilerletme.
Aşağıda parantez içinde gösterilen sayılar tüketilmeyen bitleri temsil eder.
Geçiş Kuralları
Durum BW (2) içindeyse:
0 (0)→ BW durumuna git0111→ BB durumuna git010 (1)→ WB durumuna git0100→ WW durumuna git
Durum WB (1) içindeyse:
1 (1)→ WB durumuna git1000→ WW durumuna git101 (0)→ BW durumuna git1011→ BB durumuna git
Durum WW (0) içindeyse:
Önce koşu uzunluğu algoritmasını çalıştır, ardından:
0→ BB durumuna git1 (0)→ BW durumuna git1 (1)→ WB durumuna git
Durum BB (3) içindeyse:
Önce koşu uzunluğu algoritmasını çalıştır, ardından:
0→ WW durumuna git1 (0)→ BW durumuna git1 (1)→ WB durumuna git
Koşu Uzunluğu Algoritması
Sonraki n bitine bak; burada n, siyah veya beyaz için koşu uzunluğu kelime boyutudur.
Adımlar:
- Bitleri ters çevir.
- Koşuya bağlı olarak o kadar BB veya WW çıktısı ver.
- Eğer alan doluysa:
- Kelime boyutunu artır.
- n+1 bit oku ve devam et.
Koşu uzunluğu kelime boyutu Bölüm III'teki kurallara göre azaltılabilir.
Her zaman koşu uzunluğunu işlersiniz; yalnızca bir adet WW veya BB olsa bile. Bu durumda koşu alanı 0 olacaktır.
Örnek
Aşağıdakini çözdüğümüzü varsayalım:
110111100010100100100101000...
Varsayımlar:
- Mevcut durum: 1 (WB)
- Siyah koşu uzunluğu kelime uzunluğu: 2
- Beyaz koşu uzunluğu kelime uzunluğu: 3
Aşağıdaki gibi ayrıştırılır:
1(1) 1011 11 000 1(0) 0100 100 1(0) 0(0) 010(1) 1000...
Parantez içindeki bitler tüketilmez, yani bir sonraki okunan bit aynıdır.
Kod çözme dizisi:
1ardından1→ WB durumunda kal1011→ BB durumuna geç- Koşu:
11ardından000→ siyah koşu uzunluğu 3'e çıkar, 3 adet daha BB çıktısı ver 1ardından0→ BW0100→ WW- Koşu
100→ dört adet daha WW
Bu sürecin devam ettirilmesi, daha önce açıklanan özgün bit desenini yeniden oluşturur.
Önemli Kod Çözme Uygulamaları
Her blok için her zaman yeniden baştan başla, çünkü:
- Bloklar düşebilir.
- Faks makinesi blok sınırında geçişi gerçekleştirmek yerine yeni durumu bir sonraki blok başlığına yerleştirebilir.
Bu nedenle:
- Kod çözmeye blok başlığındaki durum ile başla.
- Başlıkta belirtilen X konumu ile hizala.
Herhangi bir geçişle eşleşmeyen geçersiz bir bit deseni görünürse, bloğun geri kalanı bozulmuş olabilir ve atılmalıdır.
Kod çözme programı, bir END komutu ile karşılaşana veya veri bitene kadar faks verisini blok blok işler.
VI. Program Performansı
L10 NLS programı, DEC KL10 üzerinde çalışan TOPS20 sisteminde ortalama bir belgeyi ince ayrıntı modunda çözmek için yaklaşık iki CPU dakikası alır.
Bu modda:
- Görüntü boyutu: yaklaşık 1726 × 2100 pel
- Gerekli depolama: yaklaşık 204 disk sayfası
Bir program, bit eşlemlerini HP grafik terminalinde görüntüleyebilir ve böylece belgelerin belirli bölümlerinin incelenmesine olanak sağlar. Ekran boyutu sınırlamaları nedeniyle tam bir 8.5" × 11" sayfa ekrana tamamen sığmaz.
Terminalin yakınlaştırma özelliği, belgenin çok küçük bölümlerini incelemek için kullanılabilir.
Kaynaklar
Weber, D. R., "Uyarlanabilir Bir Koşu Uzunluğu Kodlama Algoritması", International Conference on Communications (ICC‑75), IEEE, San Francisco, California, Haziran 1975.
Mills, D. L., "Rapicom 450 Faksimile Veri Kod Çözme", WP2097/MD33E, COMSAT Laboratories, Washington D.C., tarih belirtilmemiş.
Casner, S. L., "Faxie", ISI Internal Memo, USC/Information Sciences Institute, Şubat 1980.
Postel, Jon, "Rapicom 450 Faksimile Dosya Biçimi", RFC 769, USC/Information Sciences Institute, Eylül 1980.
Ek
Bu ek şu bilgileri sağlar:
- Faks makinesi tarafından üretilen verinin ilk bölümü
- Aynı verinin RFC 769 biçiminde gösterimi
- Bu verinin kısmi bir bitmap kod çözümü
Veri sekizlik (octal) oktetler olarak temsil edilmiştir.
Aşağıdaki veri, uzunluk ve komut oktetleri eklenmiş biçimde faks makinesinin ürettiği formdadır:
114 70 142 171 330 13 377 377 377 371 53 200 0 5 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 121 21 261 114 71 142 171 330 40 0 102 326 270 152 42 42 44 111 0 42 151 267 122 366 110 237 102 211 365 111 171 336 51 244 247 377 377 111 362 177 377 377 377 377 377 377 377 377 376 104 213 241 41 111 377 111 337 377 377 377 377 377 377 377 377 377 377 377 163 301 361 377 377 377 377 360 177 12 0 114 71 142 171 330 141 137 177 377 344 10 0 160 23 301 160 137 376 204 352 135 27 353 264 0 70 100 7 20 75 0 0 0 0 0 344 0 0 0 0 0 0 0 0 34 275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 41 310 34 200 0 0 344 0 0 0 71 13 331 204 0 114 71 142 171 330 241 137 26 302 160 0 16 100 71 0 370 270 271 0 162 0 71 174 134 100 162 0 34 234 200 344 7 156 100 1 310 16 107 43 323 263 220 365 313 327 57 377 325 331 36 56 47 325 324 344 3 227 40 71 35 200 1 310 1 313 220 0 0 7 241 330 0 0 137 342 200 114 71 142 171 330 340 77 40 142 160 0 0 0 0 162 71 73 162 376 276 234 277 376 67 265 301 16 20 171 1 311 313 346 377 321 75 256 113 245 377 262 160 136 247 13 251 350 374 270 236 235 217 136 203 220 75 166 166 364 177 305 366 72 107 63 330 352 345 313 320 71 34 270 46 57 0
Aşağıdaki veri, her veri okteti ters çevrilip tümleyeni alındıktan sonra RFC 769 biçimine dönüştürülmüş aynı veridir:
114 70 271 141 344 57 0 0 0 140 53 376 377 137 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 165 167 162 114 71 271 141 344 373 377 275 224 342 251 273 273 333 155 377 273 151 22 265 220 355 6 275 156 120 155 141 204 153 332 32 0 0 155 260 1 0 0 0 0 0 0 0 0 200 335 56 172 173 155 0
FAKSİMİLE VERİSİNİN KOD ÇÖZÜLMESİ — RFC 798
Ek
155 4 0 0 0 0 0 0 0 0 0 0 0 61 174 160 0 0 0 0 360 1 257 377 114 71 271 141 344 171 5 1 0 330 357 377 361 67 174 361 5 200 336 250 105 27 50 322 377 343 375 37 367 103 377 377 377 377 377 330 377 377 377 377 377 377 377 377 307 102 377 377 377 377 377 377 377 377 377 377 377 377 377 377 37 173 354 307 376 377 377 330 377 377 377 143 57 144 336 377 114 71 271 141 344 172 5 227 274 361 377 217 375 143 377 340 342 142 377 261 377 143 301 305 375 261 377 307 306 376 330 37 211 375 177 354 217 35 73 64 62 366 120 54 24 13 0 124 144 207 213 33 124 324 330 77 26 373 143 107 376 177 354 177 54 366 377 377 37 172 344 377 377 5 270 376 114 71 271 141 344 370 3 373 271 361 377 377 377 377 261 143 43 261 200 202 306 2 200 23 122 174 217 367 141 177 154 54 230 0 164 103 212 55 132 0 262 361 205 32 57 152 350 300 342 206 106 16 205 76 366 103 221 221 320 1 134 220 243 35 63 344 250 130 54 364 143 307 342 233 13 377
Aşağıdaki veri, bu verinin genişletilmiş bitmap çıktısının ilk bölümüdür (burada yaklaşık 4 tarama satırı veya 2 tarama satırı çifti bulunmaktadır):
177 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 367 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 337 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 374 0 4 327 377 377 377 377 377 374 377 356 377 177 0 10 0 201 200 0 0 0 0 100 0 0 0 0 0 0 0 1 140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 10 0 0 10 0 0 0 100 0 20 10 7 250 2 0 57 100 100 2 100 100 164 0 20 21 31 310 153 137 377 377 377 377 177 32 176 344 2 200 216 0 4 0 240 0 0 14 70 0 0 0 0 0 2 47 137 336 137 377 377 377 377 375 377 372 20 140 45 376 377 377 377 237 377 276 357 377 377 377 227 345 314 175 63 215 202 6 347 143 377 337 376 70 371 370 352 300 213 373 371 377 377 343 73 334 0 207 315 3 33 111 377 167 337 377 1 323 365 177 377 177 377 374 377 135 377 377 365 67 343 55 377 377 377 377 357 377 377 377 377 377 377 377 203 377 236 175 376 236 337 273 347 377
376 77 377 377 377 377 377 377 377 377 377 377 300 0 0 0 200 102 177 377 277 377 377 377 376 377 366 365 173 302 12 0 40 200 0 0 0 4 100 0 0 0 0 0 0 2 5 354 0 0 0 0 0 0 0 0 4 0 10 0 0 0 200 10 40 20 1 0 100 0 140 0 20 210 101 374 3 200 155 304 0 6 100 103 376 0 120 121 31 332 243 177 377 377 377 377 377 233 377 354 0 241 217 1 30 0 240 0 0 12 150 202 40 0 0 0 62 47 157 376 173 373 377 377 377 377 377 377 20 141 321 376 377 377 377 327 377 376 377 377 377 377 237 216 316 375 167 215 202 6 300 143 377 237 374 70 175 330 377 304 255 373 153 377 377 353 377 104 0 267 315 203 13 311 177 377 377 377 1 223 367 377 373 167 377 376 77 137 377 345 165 67 43 51 277 377 277 377 357 377 377 377 373 177 377 377 223 377 366 175 376 234 377 271 347 377 376 157 377 377 377 377 377 377 377 377 377 377 340 0 0 0 0 0 177 377 37 377 377 377 377 376 367 357 272 300 2 0 4 0 0 0 0 0 0 0 0 0 0 0 20 0 1 144 0 0 0 0 0 0 4 4 0 0 100 2 100 10 201 10 0 20 75 0 0 40 142 0 0 74 341 234 103 4 157 300 0 2 0 141 372 0 0 20 30 376 55 277 177 377 377 367 377 371 376 100 15 61 16 200 30 0 40 0 0 0 311 200 24 0 0 0 62 55 377 316 367 347 377 357 377 377 377 377 170 305 5 276 377 377 377 357 377 377 377 377 377 177 377 377 357 177 377 76 207 246 340 147 376 336 356 10 17 320 105 235 275 377 377 373 377 347 335 317 50 77 377 353 75 333 377 377 377 377 363 337 343 277 356 171 7 357 76 216 377 211 207 176 257 217 377 377 367 357 357 277 377 357 377 377 377 375 367 377 377 377 377 375 377 377 356 377 366 377 377 377 377 377 377 377 377 377 377 377 340 0 0 0 0 44 373 377 77 377 377 177 177 377 377 337 376 170 173 0 0 0 100 0 1 10 0 0 0 0 0 200 160 0 223 160 300 0 0 0 0 0 0 6 100 220 0 0 140 4 3 30 121 20 351 300 206 74 167 0 30 64 41 234 172 30 175 300 4 32 4 345 367 200 103 60 177 372 177 233 377 377 377 377 376 125 207 210 233 21 364 361 277 1 50 16 140 120 41 335 377 306 214 10 67 377 373 377 377 377 377 377 377 367 377 377 377 363 277 377 377 377 377 377 267 177 377 377 377 377 377 237 377 377 377 77 377 377 355 373