İçeriğe geç
Denizli Panorama

Merakın gündelik hayattaki karşılığı

Teknoloji

Karekodun Yarısı Bozulsa Bile Neden Okunuyor?

Lekelenmiş, çizilmiş ya da ortasına logo konmuş bir karekod çoğu zaman sorunsuz okunur. Bunu sağlayan şey, kareye baştan yerleştirilen yedekli hata düzeltme verisidir.

Seda Güvenç 4 dk

Kafede masanın üstündeki karekod, üzerine kahve damlamış, bir köşesi kıvrılmış ve ortasında koca bir logo duruyor olabilir. Buna rağmen telefonu tuttuğunuz anda kod okunur ve sayfa açılır. Bu dayanıklılık tesadüf değildir.

Karekodun temelinde, verinin bir kısmı kaybolsa bile geri kalanından tamamını yeniden kurabilen bir kodlama mantığı vardır. Bu mantık sayesinde kare, kirlenmeye, çizilmeye ve kısmen kapanmaya karşı şaşırtıcı derecede toleranslı hale gelir.

Karenin İçinde Ne Var

Karekod, siyah ve beyaz küçük karelerden oluşan bir ızgaradır. Bu küçük karelerin her birine modül denir ve her modül bir bit değeri taşır: siyah bir anlam, beyaz başka bir anlam ifade eder.

Modüller rastgele dağılmaz. Kodun belirli bölgeleri konum bilgisine, belirli bölgeleri biçim bilgisine, geri kalanı ise veriye ve hata düzeltme verisine ayrılmıştır. Yani karenin her bölgesinin tanımlı bir görevi vardır.

Kodun büyüklüğü taşınacak bilgiye göre değişir. Kısa bir metin küçük bir ızgaraya sığarken, uzun bir adres daha fazla modül gerektirir ve kare belirgin biçimde sıklaşır.

Üç Köşedeki Büyük Kareler

Her karekodun üç köşesinde iç içe geçmiş büyük kareler bulunur. Bunlar konum işaretleridir ve okuyucunun ilk aradığı şeydir. Kamera görüntüsünde bu üç desen bulunduğunda kodun nerede olduğu ve hangi açıyla durduğu anlaşılır.

Dördüncü köşenin boş bırakılması bilinçli bir tercihtir. Üç işaretin oluşturduğu asimetri, kodun ters mi, yan mı yoksa düz mü durduğunu belirlemeyi sağlar. Bu yüzden karekodu baş aşağı tutmanız okumayı engellemez.

Kodun içinde ayrıca hizalama işaretleri ve düzenli aralıklı zamanlama çizgileri vardır. Bunlar, eğik açıdan bakıldığında ya da yüzey kavisliyken ızgaranın doğru şekilde çözülmesine yardım eder.

Yedekli Kodlama Mantığı

Karekodun asıl gücü, veriye eklenen fazladan bilgide yatar. Kod oluşturulurken yalnızca içerik değil, içerikten matematiksel olarak türetilen ek denetim verisi de kareye yazılır.

Bu ek veri, kayıp parçaları tahmin etmeye yarar. Basit bir benzetmeyle: bir cümlenin bazı harfleri silinse bile dilbilgisi kurallarını bilen biri eksikleri tamamlayabilir. Hata düzeltme kodları da aynı işi çok daha kesin bir matematikle yapar.

Bu nedenle karekodda birkaç modülün bozulması ölümcül değildir. Okuyucu, bozulan modülleri tespit eder ve doğru değerlerini yedek bilgiden hesaplayarak asıl içeriği eksiksiz elde eder.

Veri ayrıca kare içinde bloklara bölünerek dağıtılır. Bilginin tek bir bölgede toplanmaması, tek bir lekenin ya da kıvrılmanın veriyi topluca yok etmesini engeller. Hasar birkaç bloğa yayıldığında her blok kendi payına düşen küçük kaybı bağımsız olarak onarabilir.

Dört Farklı Dayanıklılık Seviyesi

Karekod üretilirken dört ayrı hata düzeltme seviyesinden biri seçilir. En düşük seviye kodun yaklaşık yüzde yedilik bölümü zarar görse bile okunmasını sağlar. En yüksek seviye ise bu oranı yaklaşık yüzde otuza kadar çıkarır.

Ancak bedava bir kazanç yoktur. Dayanıklılık arttıkça veriye ayrılan alan azalır ve aynı bilgi daha büyük, daha sık modüllü bir kareye sığar. Bu da baskı boyutunun büyümesi anlamına gelir.

Seçim, kodun nerede kullanılacağına göre yapılır. Temiz bir ekranda gösterilecek kodda düşük seviye yeterlidir. Buna karşılık açık havada duracak bir tabelada, depoda kullanılacak bir etikette veya sürekli elden ele geçecek bir kartvizitte yüksek seviye tercih edilir; çünkü kirlenme ve aşınma orada kaçınılmazdır.

Ortadaki Logo Neden Sorun Çıkarmıyor

Karekodun tam ortasına yerleştirilen logolar, aslında kodun bir bölümünü tamamen kapatır. Buna rağmen okuma çalışır, çünkü kapanan alan hata düzeltme kapasitesinin izin verdiği sınırın içinde kalır.

Bu yüzden logolu kodlar genellikle yüksek düzeltme seviyesiyle üretilir. Logo büyüdükçe kapanan modül sayısı artar ve bir noktadan sonra düzeltme kapasitesi yetmez; kod okunamaz hale gelir.

Konum işaretlerinin üzerine hiçbir şey konulmamalıdır. Veri bölgesindeki kayıp telafi edilebilir, ama okuyucu kodu hiç bulamazsa düzeltme mekanizması devreye bile giremez.

Okumayı Gerçekten Bozan Şeyler

Uygulamada en sık karşılaşılan sorun, kodun etrafındaki boşluğun yok edilmesidir. Karekodun çevresinde sessiz alan denen boş bir çerçeve bulunmalıdır. Kod, yazının veya desenin içine sıkıştırılırsa okuyucu sınırları ayırt edemez.

İkinci yaygın hata kontrast düşüklüğüdür. Açık zemin üzerine koyu modül kuralı bozulduğunda, örneğin renkli zemin üzerine açık tonda kod basıldığında, kamera modülleri ayırt edemez.

Yansıma yapan parlak yüzeyler, çok küçük basılmış kodlar ve buruşmuş kâğıtlar da başarısızlığın sık nedenleridir. Bunların hiçbiri hata düzeltmeyle çözülemez, çünkü sorun verinin bozulması değil hiç okunamamasıdır.

İyi Bir Karekod İçin Pratik Kurallar

Basılacak kodun boyutu, okunacağı mesafeye göre belirlenmelidir. Genel kabul gören yaklaşım, kenar uzunluğunun okuma mesafesinin yaklaşık onda biri kadar olmasıdır.

Kısa bağlantılar tercih etmek de görünmeyen bir avantaj sağlar. Daha az veri, daha az modül ve daha seyrek bir ızgara demektir; seyrek ızgara ise düşük çözünürlüklü kameralarla bile rahat okunur.

Basımdan önce mutlaka gerçek koşullarda deneme yapılmalıdır. Ekranda kusursuz görünen bir kod, kâğıda basıldığında mürekkep yayılması yüzünden modülleri birbirine karışmış olabilir. Farklı telefonlarla, farklı ışık altında ve gerçek okuma mesafesinden yapılan kısa bir test, baskıya gittikten sonra fark edilecek sorunların çoğunu önler.

Karekod, basit bir siyah beyaz desenin altına gizlenmiş hatırı sayılır bir mühendislik ürünüdür. Bir kısmı silinse bile bütünü kurtarabilen bu tasarım sayesinde, yıpranmış bir etiket bile ilk günkü gibi çalışmayı sürdürür.