Veri matrisi

**Veri matrisi** (), kare veya dikdörtgen şeklinde toplanmış renkli "hücre"lerden veya noktalardan oluşan iki boyutlu matristir. Metinleri veya metinlerle kodlanabilecek diğer ögeleri şifrelemek amacıyla kullanılabilir. Veri depolama kapasitesi boyutuna göre değişir.

Veri matrisleri, dikdörtgen (genellikle kare) şeklinde bir alan eşit parçalara bölünerek ve bu eşit parçalar iki farklı renge (genellikle siyah ve beyaz) boyanarak veriyi depolar. Basit bir matriste siyah 1'i ve beyaz 0'ı (veya tam tersi) temsil eder. 1 ve 0 değerleri elde edilirken ise karakterlerin ASCII sistemindeki iki tabanındaki değerleri esas alınır. Dikdörtgen, birbirine komşu iki tamamen siyah kenar (**bulucu deseni**) ve sırasıyla bir siyah ve bir beyaz hücre içeren iki komşu kenarla (**zamanlama deseni**) çevrelenir. En dıştaki dört kenarın içinde bilgileri kodlayan hücreler bulunur. **Bulucu deseni**, matrisin okuyucu tarafından tespit edilmesini saylarken **zamanlama deseni** semboldeki satır ve sütun sayısının sayısını sağlar. Matriste daha fazla veri kodlandıkça hücre sayısı artar. Her matris benzersizdir.

Matriste bulunan bazı hücreler silindiğinde depolanan veri etkilenmeyebilir. Bu durumun sebebi, bazı matris algoritmalarında bulunan hata düzeltme kodlarıdır (ECC). ECC 200 sürümünde hata düzeltme kodları ndan yararlanır.

## Kullanımı

Veri matrisleri, genellikle metin ekleme veya etiketleme için kullanılır. Çeşitli perakende mağazalarında ürünlerin etiketlenmesi için kullanılırlar. Bu sayede ürünlerin stok takibi, fiyatlandırma ve ürün bilgileri kolayca yönetilebilir. Tıbbi cihazlar ve ilaç kutularında veri matrisleri kullanılarak seri numaraları, üretim tarihleri ve son kullanma tarihleri gibi bilgilerin saklanması sağlanır. Devre kartlarında küçük bileşenlerin tanımlanması ve takibi için veri matrisleri kullanılır. Posta gönderilerinde ve kargo paketlerinde adres bilgileri ve takip numaraları gibi bilgilerin saklanması için veri matrisleri kullanılabilir. Bu sayede paketlerin takibi kolaylaşır. Konserler, etkinlikler veya toplu taşıma biletlerinde veri matrisleri kullanılarak biletlerin doğrulanması ve geçerliliği daha kolay kontrol edilebilir.

## Sürümleri
Veri matrisleri, dünyada standartlaşmış bazı sürümlere sahiptir. Bu sürümler çeşitli şirketler tarafından geliştirilmiş ve zamanla kabul görmüştür. En yaygın kullanılan sürümler kronolojik olarak aşağıda listelenmiştir.

* ECC 000
* ECC 050
* ECC 080
* ECC 100
* ECC 140
* ECC 200

Sürümler git gide daha optimize algoritmalarla çalışmaya başlamış ve daha küçük alana daha fazla veri sığdırılabilmiştir. 2025 itibarıyla en gelişmiş sürüm ECC 200 sürümüdür. Bu sürüm, 2.335 alfanümerik karakter veya 1.556 bayt depolayabilir. Diğerlerine göre daha çok tercih edilmektedir.

İlk sürüm olan ECC 000, 1987 yılında ID Matrix (International Data Matrix, Inc) tarafından geliştirildi. Son sürüm olan ECC 200 ise 2000 yılında geliştirildi ve ISO ve IEC standartlarına eklendi. Sembol boyutları, yani hücre sayıları, yeni ECC 200 versiyonunda 10×10 ile 144×144 arasında, eski versiyon ECC 000 – 140'ta ise 9×9 ile 49×49 arasında değişmektedir.

## Karekod

**Karekod** veya **QR kod** (), özelleştirilmiş ve standartlaştırılmış veri matrisleridir. Çeşitli versiyonları bulunur. Depoladığı veri arttıkça boyutu da artar. Günlük hayatta diğer veri matrislerine kıyasla daha çok kullanılır. Bunun nedeni daha iyi bir hata düzeltme performansına sahip olması, diğer bir deyişle fiziksel yıpranmadan daha az etkilenmesidir. Hata düzeltme payı yüksek olduğu için diğer veri matrislerine kıyasla genellikle daha çok hücreden oluşur, ayrıca birim hücrede daha az veri depolayabilir. Diğer veri matrislerinden diğer bir farkı ise daima kare şeklinde olmasıdır.

Karekod kelimesi ilk defa Beşeri Tıbbi Ürünler Barkod Uygulama Kılavuzu'nda yer almıştır.

## Matris oluşturma

Basit bir veri matrisi oluştururken öncelikle şifrelenmek istenen metin karakterlerine ayrılır. Daha sonra bu metnin karakterlerinin ASCII listesindeki ikili sistemde karşılığı bulunur. Örneğin "Vikipedi" metni şifrelenecekse bulunan değerler tablodaki gibi olacaktır.

Değerler elde edildikten sonra dikdörtgen şeklinde alt alta yazılır.

```
01010110
11001001
11001011
11001001
11010000
11000101
11000100
11001001
```


Ve sonrasında hücrelerin içine boyanarak eklenir.

Not: Yukarıdaki örnek pek çok standarda uymamaktadır ve sadece basitliği temel alınarak hazırlanmıştır.

## Kaynakça