QR code: Conhecendo um pouco mais

Compartilhe!



Por dentro dos QR codes




Os QR codes são lidos através de um sensor bidimensional e analizados digitalmente por um processador. Esse processador localiza os três quadrados distintos nos cantos da imagem (noroeste, nordeste, sudoeste), utilizando um quadrado menor, ou vários, próximo ao quarto canto (sudeste), para normalizar o tamanho da imagem, a orientação e o ângulo de visão. Os pequenos pontos negros da área do código são convertidos em números binários e validados por um algoritmo de correção de erros.


A capacidade de armazenamento de dados de um QR code varia de acordo com o tipo de dado armazenado (chamado de modo), com a versão, que indica as dimensões dos símbolos e com o nível de correção de erros. A capacidade máxima de armazenamento ocorre para 40L símbolos, isto é, versão 40 e nível de correção de erros L, conforme a tabela 1.

Modo
Máx caracteres
bits/caractere
Caracteres possíveis
Números 7089 3,3333... Números de 0 a 9
Alfanumérico 4296 5,5 Números de 0 a 9, caracteres maiúsculos de A a Z, espaço, $, %, *, +, -, ., /, :
Binário 2953 8 ISO 8859-1
Kanji / kana 1817 13 Shift JIS X 0208

Tabela 1 - Modos do QR code

Existem vários tipos e versões de QR codes. Um QR code pode ser criptografado para adicionar proteção.

Um sistema de correção de erros que utiliza o algoritmo de Reed-Solomon pode recuperar informação de uma etiqueta que esteja danificada, de acordo com os níveis de correção utilizados. Quanto maior o nível de correção de erros menor a capacidade de armazenamento da etiqueta. 

Para o nível L (considerado baixo) 7% das palavras (equivalente a 8 bits), podem ser recuperadas, para o nível M (médio) o percentual sobe para 15 %, para o nível Q (quartil) alcança-se 25 % e para o nível H (alto) o máximo que se atinge é 30 % de recuperação da informação perdida. 

Em QR codes que possuem símbolos grandes a mensagem é quebrada em vários blocos de código Reed-Solomon. Esse tamanho é escolhido para possibilitar a correção de até 15 erros em cada bloco. Isso limita a complexidade do algoritmo de decodificação. Os códigos então são entrelaçados para evitar que um erro localizado possa superar a capacidade de armazenamento de um bloco simples.

Graças à correção de erros é possível criar-se QR codes artísticos e mais atrativos aos nossos olhos.

A formatação de um registro possui duas partes: o nível de correção de erros e a máscara padrão utilizada para o símbolo. A máscara é usada para quebrar os padrões em dados, isso é necessário em áreas que podem confundir um scanner, como longas áreas brancas ou características falsas, que podem ser interpretadas como marcas de localização. Os padrões de máscara são definidos numa grade que é repetida para cobrir todo o símbolo. Módulos correspondentes a áreas escuras de uma máscara são invertidos. O formato da informação é protegido contra erros através de um código BCH e duas cópias completas são incluídas em cada símbolo do QR code.

Os dados da mensagem são dispostos da direita para a esquerda num movimento de zig-zag, como se vê na figura 1. Em símbolos grandes isso é complicado por causa da presença de padrões de alinhamento e o uso de múltiplos blocos de correção de erros entrelaçados.


Localização da mensagen no QR code, veja as setas laranjadas

 
Significado do formato da informação


Blocos entrelaçados


 Figura 1 - Estrutura do QR code


 Um indicador de quatro bits, tabela 2,  é usado para selecionar o modo e prover outras informações. A codificação dos modos pode ser fixada conforme a necessidade do símbolo do QR code. 



Indicador Significado
0001 Codificação numérica 10 bits para cada 3 dígitos
0010 Codificação alfanumérica 11 bits para cada 2 caracteres
0100 Codificação binária 8 bits por caractere
1000 Codificação Kanji 13 bits por caractere
0011 Inserção estruturada, usada para separar uma mensagem entre múltiplos símbos do QR code
0111 Interpretação do canal extendido (seleção de conj. caracteres ou codificação)
0101 FNC1 na primeira posição
1001
FNC1 na segunda posição
0000 Fim da mensagem

Tabela 2 - Modos de codificação

Depois de cada indicador que seleciona um modo de codificação está o tamanho do campo que diz quantos caracteres estão codificados neste modo. O número de bits no tamanho do campo depende da versão do símbolo e da codificação, tabela 3. 


Codificação Versão 1-9 Versão 10-26 Versão 27-40
Numérica 10 12 14
Alfanumérica 9 11 13
Byte 8 16 16
Kanji 8 10 12

                                       Tabela 3 - Bits por tamanho de campo

O modo de codificação alfanumérica pode armazenar mensagens de forma mais compacta que o modo binário, mas não aceita caracteres minúsculos e apenas alguns sinais de pontuação, suficientes para a maioria dos endereços de sites da web. Dois caracteres podem ser codificados em 11 bits através da fórmula:

V = 45 x C1 + C2


Cód Caracter Cód Caracter Cód Caracter Cód Caracter Cód Caracter
0 0 9 9 18 I 27

R

36

SP
1 1 10 A 19 J 28

S

37

$
2 2 11 B 20 K 29

T

38

%
3 3 12 C 21 L 30

U

39

*
4 4 13 D 22 M 31

V

40

+
5 5 14 E 23 N 32

W

41

-
6 6 15 F 24 O 33

X

42

.
7 7 16 G 25 P 34

Y

43

/
8 8 17 H 26 Q 35

Z

44

:

Tabela 4 - Código de caracteres no QR Code
Compartilhe »

Gostou? Comente!


Participe da nossa comunidade de discussões!
Deixe-nos um comentário!

    DISQUS
    Comentários Facebook


0 comentários:


Postar um comentário