Tải bản đầy đủ (.doc) (31 trang)

Báo cáo bài tập nhóm chuyên đề: QRCODE và làm ứng dụng đọc mã QRCODE

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.34 MB, 31 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
----------

BÁO CÁO BÀI TẬP NHÓM CHUYÊN ĐỀ

Đề tài: Nghiên cứu QR Code và Ứng dụng
Giảng viên : Nguyễn Quỳnh Chi
Lớp
: D09HTTT1
Sinh viên thực hiện:
Nguyễn Trần Đức
Nguyễn Trung Kiên
Trần Doãn Hảo
Đào Tiến Đạt
Vi Thanh Tùng

Hà Nội,4/2013

Phần I: Tổng Quan


1. QR Code: Mã vạch thế hệ mới
Mã QR (tạm dịch là mã đáp ứng nhanh) là một loại ma trận mã
vạch( hay mã vạch hai chiều) ban đầu được thiết kế cho nền công nghiệp ô
tô Nhật Bản. Các mã QR được sử dụng phổ biến nhất ở Nhật Bản và hiện là
loại mã hai chiều thông dụng nhất ở Nhật Bản. Gần đây, hệ thống mã QR
đã trở nên phổ biến bên ngoài ngành công nghiệp ô tô do khả năng đọc
nhanh và dung lượng lưu trữ lớn hơn so với tiêu chuẩn mã vạch UPC.

Hình ảnh mã QR Code
Một mã QR được đọc bởi một đầu đọc mã vạch, chẳng hạn như một máy


ảnh, một điện thoại di động, một điện thoại thông minh, hoặc một
webcam, và sử dụng thuật toán sửa lỗi Reed-Solomon.
Mã QR được phát minh tại Nhật Bản bởi công ty Denso Wave( công ty
con của Toyota) vào năm 1994 để theo dõi xe trong sản xuất.
Các mã QR nhỏ nhất là 21x21 pixel, và lớn nhất là 177x177. Các kích
thước được gọi là phiên bản. Kích thước 21x21 pixel là phiên bản 1, 25x25
là phiên bản 2, và cứ tiếp tục như thế. Kích thước 177x177 là phiên bản 40.
2. Sử dụng
Ban đầu được thiết kế cho mục đích sử dụng công nghiệp, mã QR đã trở
nên phổ biến trong quảng cáo của người tiêu dùng. Điện thoại thông minh
của người dùng có thể cài đặt một ứng dụng với một máy quét QR-code có
thể đọc được một mã hiển thị và chuyển đổi nó vào một URL chỉ đến trang
web của một công ty, cửa hàng, hoặc sản phẩm liên quan đến mã cung
cấp thông tin cụ thể bằng trình duyệt web của điện thoại.


"In the shopping industry, knowing what causes the consumers to be
motivated when approaching products by the use of QR codes, advertisers
and marketers can use the behavior of scanning to get consumers to buy,
causing it to have the best impact on ad and marketing design" - TolliverWalker, Heidi (2011). Kết quả là, mã QR đã trở thành một trọng tâm của
quảng cáo chiến lược, vì nó cung cấp truy cập nhanh và dễ dàng đến trang
web của thương hiệu. Ngoài việc tiện lợi cho người tiêu dùng, tầm quan
trọng của điều này khả năng là nó làm tăng tỷ lệ chuyển đổi (có nghĩa là,
làm tăng cơ hội có thể liên lạc với các quảng cáo sẽ chuyển đổi để bán),
bằng cách đưa người xem đến trang web của nhà quảng cáo ngay lập tức.
Mã QR lưu trữ địa chỉ và Uniform Resource Locators (URL) có thể xuất
hiện trên các tạp chí, trên các chữ ký, trên xe buýt, trên thẻ kinh doanh,
hoặc trên hầu hết các đối tượng cần sử dụng thông tin. Người sử dụng với
một máy ảnh điện thoại được trang bị một ứng dụng đọc chính xác có thể
quét hình ảnh của mã QR để hiển thị văn bản, thông tin liên lạc, kết nối với

một mạng không dây , hoặc mở một trang web trong trình duyệt của điện
thoại. Mã QR cũng có thể nối tiếp đến một vị trí nơi mà mã đã được quét.
Hoặc các ứng dụng quét mã QR truy xuất thông tin địa lý bằng cách sử
dụng GPS và tế bào tam giác tháp (aGPS) hoặc URL được mã hóa trong mã
QR chính nó được liên kết với một vị trí.

Phần II: Đặc Điểm của QR Code
1. So sánh QR code và BarCode
QR Code chứa đựng thông tin một địa chỉ web, thời gian diễn ra một sự
kiện, thông tin liên hệ địa chỉ email, tin nhắn SMS, nội dung ký tự văn bản
hay thậm chí là thông tin định vị vị trí địa lý. Tùy thuộc thiết bị đọc mã QR
mà bạn dùng khi quét, nó sẽ dẫn bạn tới một trang web, gọi đến một số
điện thoại, xem một tin nhắn...
QR code cũng tương tự mã vạch truyền thống tuy nhiên điểm khác nhau
giữa QR code và mã vạch truyền thống là lượng dữ liệu chúng nắm giữ hay
chia sẻ.
Các mã vạch truyền thống có các đường vạch thẳng dài một chiều và
chỉ có thể lưu giữ 20 số chữ số, trong khi QR code hai chiều có thể lưu giữ
thông tin hàng ngàn ký tự chữ số. QR code nắm giữ nhiều thông tin hơn và
tính chất dễ dùng sẽ giúp ích rất nhiều cho các doanh nghiệp vừa và nhỏ.


2. Ưu điểm
Mã vạch QR là một loại mã vạch hai chiều có nhiều tính năng ưu việt
do Công ty Denso của Nhật Bản phát minh. Mã vạch QR có khả năng
mã hóa nhiều thông tin, giải mã nhanh, khả năng sửa lỗi cao(có thể
đọc được mã bị mờ hoặc mất đi một phần) và có thể mã hóa được ký
tự Kanji và chữ tiếng Việt. Thông qua việc tích hợp vào các thiết bị
điện thoại di động, mã QR đang được các công ty Nhật Bản phát triển
thành các giải pháp thông minh cho thương mại qua di động…

Một mã QR có thể chứa đựng thông tin một địa chỉ web (URL), thời
gian diễn ra một sự kiện, thông tin liên hệ (như vCard), địa chỉ email,
tin nhắn SMS, nội dung ký tự văn bản hay thậm chí là thông tin định
vị vị trí địa lý. Tùy thuộc thiết bị đọc mã QR mà bạn dùng khi quét, nó
sẽ dẫn bạn tới một trang web, gọi đến một số điện thoại, xem một tin
nhắn…

3. Nhược điểm
Những ứng dụng trong tương lai dành cho mã vạch QR code là rất lớn,
nhưng mã vạch này cũng có những hạn chế nhất định như sau:
QR code đòi hỏi phải có phần mềm đọc mã trên điện thoại, và nếu mã
này xuất hiện ngoài trời như trên billboard, bến xe… có thể những
chướng ngại vật khác sẽ hạn chế khả năng nhận dạng của máy. Bạn
phải có smart phone tích hợp camera mới đọc được mã.
QR code cũng không có tính lan truyền (viral) như hình thức nhắn tin
SMS…
Hơn nữa, tuy QR code cực kỳ phổ biến tại Nhật Bản, song nhìn chung
loại mã này vẫn còn khá mới mẻ. Thông thường doanh nghiệp phải
giải thích và hướng dẫn khách hàng cách sử dụng.
4. Khả năng lưu trữ của QR code
Số lượng dữ liệu có thể được lưu trữ trong các biểu tượng QR code phụ
thuộc vào kiểu dữ liệu (hình thức hoặc tập ký tự đầu vào), phiên bản (1,
…,40, mô tả kích thước của QR Code), và mức độ sửa lỗi. Khả năng lưu trữ
tối đa cho 40-L symbols (ở phiên bản 40, mức sửa lỗi là L):


Khả năng lưu trữ ký tự tối đa (40-L)

Chế độ đầu
vào

Số đơn thuần
Chữ và số
Số nhị phân
Kanji/Kana

Ký tự tối
đa
7,089
4,296
2953
1817

Một vài ví dụ về QR Code:

Bit/char
3⅓

8
13

Ký tự khả dụng, bộ mã hoá mặc
định
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
0–9, A–Z (chỉ chữ hoa), cách, $, %, *, +, -, ., /, :
ISO 8859-1
Shift JIS X 0208


Phiên bản 1(21x21) :
“Ver1”


Phiên bản 2(25x25) :
“Version2”

Phiên bản 3(29x29) :
“Version 3 QR code”

Phiên bản 4 (33x33) :
“Version 4 QR code, up to 50
char”

5. Khả năng sửa lỗi
Mức L:

7% số từ mã (codeword) có thể được phục hồi.

Mức M:

15% số từ mã có thể được phục hồi.

Mức Q:

25% số từ mã có thể được phục hồi.

Mức H:

30% số từ mã có thể được phục hồi.

Phần III: Thuật toán QR Code



1. Phân tích dữ liệu
Một mã QR mã hoá một chuỗi văn bản. Các mã QR chuẩn có bốn kiểu
mã hoá văn bản: số, chữ và số, nhị phân, và Kanji. Mỗi kiểu mã hoá văn
bản như một chuỗi nhị phân (gồm 1 và 0), nhưng mỗi kiểu sử dụng một
phương thức khác nhau để chuyển đổi văn bản sang chuỗi nhị phân. Mỗi
phương thức được tối ưu hoá để tạo ra chuỗi nhị phân ngắn nhất có thể
cho một loại dữ liệu. Phần này giải thích làm thế nào để xác định kiểu để
sử dụng.
Các kiểu mã QR
Bốn kiểu mã hoá bao gồm các loại sau:
 Kiểu số: gồm các chữ số thập phân từ 0 đến 9
 Kiểu chuỗi: các chữ số thập phân từ 0 đến 9, các chữ cái in hoa,
và các ký tự đặc biệt $,%, *, +, -,., /, và khoảng trống


 Kiểu nhị phân: kiểu này dành cho bộ ký tự ISO-8859-1
 Kiểu Kanji: cho các ký tự sử dụng 2 byte từ tập ký tự Shift JIS
Cách chọn kiểu dữ liệu hiệu quả nhất
Để chọn kiểu dữ liệu hiệu quả cho mã QR, kiểm tra các ký tự đầu vào
theo các điều kiện sau đây:
-

Nếu chuỗi đầu vào chỉ gồm các chữ số thập phân, sử dụng kiểu số

-

Nếu kiểu số không áp dụng được, và tất cả các ký tự trong chuỗi
đầu vào có thể tìm thấy cột bên trái của bảng chữ và số thì ta chọn
kiểu chuỗi.


-

Nếu có một ký tự không có trong cột bên trái của bảng chữ và số
nhưng có thể mã hoá được theo tiêu chuẩn ISO-8859-1 thì ta sử
dụng kiểu nhị phân

-

Nếu tất cả các ký tự đều thuộc bộ ký tự Shift JIS thì ta sử dụng kiểu
Kanji.
2. Mã hoá dữ liệu

Bước 1: chọn mức sửa lỗi
Trước khi mã hoá dữ liệu, ta sẽ chọn một mức sửa lỗi. Như đã đề cập trong
phần tổng quan, mã QR sử dụng bộ sửa lỗi Reed-Solomon. Tiến trình này tạo ra mã sửa lỗi (bytes )
dựa trên dữ liệu đã được mã hoá. Một bộ đọc mã QR có thể sử dụng các byte sửa lỗi để xác định
nếu nó không thể đọc dữ liệu một cách chính xác, và mã sửa lỗi có thể sử dụng để sửa lỗi. Có 4
mức sửa lỗi: L, M, Q, H
Cấp độ sửa lỗi

Khả năng sửa lỗi

L

Phục hồi 7% dữ liệu

M

Phục hồi 15% dữ liệu


Q

Phục hồi 25% dữ liệu

H

Phục hồi 30% dữ liệu

Bước 2: xác định phiên bản nhỏ nhất cho dữ liệu
Các kích cỡ khác nhau của mã QR được gọi là phiên bản. chúng có bốn
mươi phiên bản. Phiên bản nhỏ nhất là 1 (21x21 pixels), phiên bản 2


(25x25 pixels), lớn nhất là phiên bản 40 (177x177 pixels). Mỗi phiên bản
lớn hơn phiên bản trước đó 4 pixels.
Mỗi phiên bản có khả năng tối đa nhất định, tuỳ thuộc vào kiểu sử
dụng. Ngoài ra, mức độ sửa lỗi hạn chế khả năng tiếp tục. Bảng khả năng
các ký tự liệt kê các khả năng của các phiên bản QR cho một kiểu mã
hoá nhất định và mức sửa lỗi.
Xác định phiên bản nhỏ nhất:
Tại điểm này, đếm số ký tự cần mã hoá, và xác định phiên bản nhỏ
nhất có thể chứa các ký tự để mã hoá và đưa ra mức độ sửa lỗi.
Ví dụ, cụm từ HELLO WORLD có 11 ký tự. Nếu mã hoá với mức sửa lỗi
Q, theo bảng khả năng các ký tự, phiên bản 1 sử dụng mức sửa lỗi Q chỉ
có thể chứa 10 ký tự trong kiểu chữ và số. Do đó, phiên bản nhỏ nhất có
thể sử dụng là 2.
Bước 3: thêm bộ hiển thị kiểu
Mỗi kiểu mã hoá có bốn bit bộ hiển thị kiểu xác định nó. Dữ liệu được
mã hoá phải bắt đầu với bộ hiển thị kiểu thích hợp xác định kiểu được sử

dụng cho các bit đến sau nó. Bảng sau liệt kê các bộ hiển thị kiểu cho
mỗi kiểu
Ví dụ, nếu mã hoá HELLO WORLD ở kiểu chữ và số, bộ hiển thị kiểu là 0010

Mode Name

Mode Indicator

Numeric Mode

0001

Alphanumeric Mode

0010

Byte Mode

0100

Kanji Mode

1000

ECI Mode

0111

Bước 4: thêm bộ đếm ký tự
Trong bước này, chúng ta xác định có bao nhiêu ký tự trong thông

điệp, và chuyển độ dài đó thành một số nhị phân.


Với chuỗi HELLO WORLD, có 11 ký tự kể cả khoảng trắng. Ta chuyển
11 sang nhị phân, được 1011.
Xem danh sách ở dưới. Khi mã hóa độ dài của dữ liệu, chúng ta mã
hóa nó sử dụng một số lượng bit đặc tả. Như đã nói ở đầu, chúng ta sử
dụng QR code phiên bản 1, vậy nên chúng ta cần sử dụng 9 bit để mã
hóa độ dài dữ liệu. Ta thêm số 0 vào đầu chuỗi cho đên khi đủ 9 bit:
000001011.
Phiên bản 1 tới 9
-

Kiểu số: 10 bits

-

Kiểu chuỗi: 9 bits

-

Kiểu nhị phân: 8 bits

-

Kiểu Nhật ngữ: 8 bits

Phiên bản 10 tới 26
-


Kiểu số: 12 bits

-

Kiểu chuỗi: 11 bits

-

Kiểu nhị phân: 16

-

Kiểu Nhật ngữ: 10 bits

Phiên bản 27 tới 40
-

Kiểu số: 14 bits

-

Kiểu chuỗi: 13 bits

-

Kiểu nhị phân: 16 bits

-

Kiểu Nhật ngữ: 12 bits


Tới đây chuỗi nhị phân chúng ta là: 0010 000001011.
Bước 5: mã hoá theo kiểu đã chọn
Tiến trình mã hoá theo các kiểu:
-

Mã hoá kiểu số


-

Mã hoá kiểu chữ và số

-

Mã hoã kiểu nhị phân

Để mã hóa chuỗi ký tự, ta chia chuỗi thành các cặp ký tự: HE,LL,O
,WO,RL,D.
Với mỗi cặp ký tự, ta lấy giá trị mã ASCII của ký tự đầu nhân với 45,
sau đó cộng với giá trị mã ASCII của ký tự sau. Sau đó chuyển kết quả
thu được thành một chuỗi nhị phân 11 bit.
Đối với các ký tự không có cặp, tao lấy giá trị mã ASCII của nó rồi
chuyển thành chuỗi nhị phân 6 bit.
Đối với các chế độ khác: kiểu số, kiểu nhị phân, kiểu Nhật ngữ, tao sử dụng phương thức khác
để mã hóa dữ liệu.
Bộ hiển thị
kiểu
0010


Bộ hiển thị đếm ký
tự
000001011

Dữ liệu mã hoá
01100001011 01111000110
10001011100 10110111000
10011010100 001101

Bước 6: hoàn thành các bit
Với chuỗi bit thu được ở trên, ta phải chắc chắn rằng nó có đủ độ dài. Điều
này phụ thuộc vào việc có bao nhiêu bit chúng ra cần để tạo phiên bản và sửa
lỗi.
Với QR code phiên bản 1, sửa lỗi mức độ Q. Nếu chuỗi bit nhỏ ít hơn 104, ta
phải thêm 4 số 0 vào cuối chuỗi. Nếu thêm 4 số 0 được một chuỗi nhiều hơn
104, ta chỉ cần thêm số 0 cho tới khi nào đủ 104 bit.
Chuỗi của chúng ta có 59 bit, ta thêm 4 số 0 vào cuối chuỗi. (Còn nếu chuỗi
có 102 bit thì ta thêm 2 số 0).
Chuỗi của ta bây giờ là:
0010 000001011 01100001011 01111000110 10001011100 10110111000
10011010100 001101 0000

Bước 7: Thêm các từ vào cuối nếu chuỗi quá ngắn


Nếu chuỗi bit của chúng ta vẫn chưa đủ dài, có hai chuỗi con đặc biệt:
11101100 và 00010001. Ta thêm thay phiên hai chuỗi con này vào chuối
chuỗi của chúng ta.
Chuỗi của chúng ta chỉ có 10 chuỗi con, cần phải thêm vào 3 chuỗi
con nữa. Bắt đầu thêm 11101100, sau đó thêm 00010001, rồi tới

11101100. Nếu cần nhiều hơn thì cứ thêm lần lượt như vậy cho tới khi đủ
số chuỗi con.
Chuỗi của chúng ta bây giờ:
00100000 01011011 00001011 01111000 11010001 01110010
11011100 01001101 01000011 01000000 11101100 00010001
11101100

3. Tạo mã sửa lỗi
QR code bao gồm bộ mã sửa lỗi. Các khối dữ liệu dự phòng đảm bảo
rằng mã QR code vẫn được đọc cho dù có một phần không đọc được.
Bước 1: Tìm ra có bao nhiêu mã sửa lỗi cần được tạo
Bước đầu tiên để tạo mã sửa lỗi là xác định có bao nhiêu từ để tạo cho
phiên bản QR và mức độ sửa lỗi. Tham khảo thêm bảng sửa lỗi.
Versio
n and
EC
Level

7

Numbe
r of
Blocks
in
Group 1
1

1-M 16

10


1

1-Q 13

13

1

1-H

9

17

1

Number of
Total Data
Data
Codewords
Codewords in
Each of Group
1's Blocks
19
(19*1) =
19
16
(16*1) =
16

13
(13*1) =
13
9
(9*1) = 9

2-L

34

10

1

34

1-L

Total Number
of Data
Codewords for
this Version
and EC Level
19

EC
Codeword
s Per
Block


(34*1) =
34


Xem bảng ở trên, chúng ta cần 13 mã sửa lỗi.
Bước 2: Tạo một thông điệp đa thức
Chúng ta chuyển 13 khối dữ liệu ở trên thành dạng thập phân:
00100000 01011011 00001011 01111000 11010001 01110010
11011100 01001101 01000011 01000000 11101100 00010001
11101100
Ta được:
32, 91, 11, 120, 209, 114, 220, 77, 67, 64, 236, 17, 236
Các số này sẽ là hệ số của đa thức. Ta có:
32x25 + 91x24 + 11x23 + 120x22 + 209x21 + 114x20 + 220x19 + 77x18 +
67x17 + 64x16 + 236x15 + 17x14 + 236x13
Lũy thừa của số hạng đầu tiên được tính:
Số khối dữ liệu + số mã sửa lỗi -1
Ở đây là 13+13-1=25. Vậy nên số hạng đầu tiên là 32x25 .
Bước 3: Tạo bộ tạo đa thức
Tiếp theo ta sẽ tạo một bộ tạo đa thức. Ta chia thông điệp đa thức bởi
bộ tạo này để tạo mã sửa lỗi.
Các bộ tạo đa thức đến từ một cái gì đó gọi là một trường hữu hạn ,
cũng được biết đến như là một trường Galois. Các mã QR sử dụng một
trường Galois có 256 yếu tố, có nghĩa là, mục đích của chúng ta, rằng
những con số mà chúng ta sẽ được giao dịch với sẽ luôn luôn tối đa là
255 và ít nhất là 0.
Để thực hiện việc phân chia đa thức, chúng ta sẽ được chuyển đổi qua
lại giữa các ký hiệu α (alpha) và các số nguyên. Alpha và các giá trị số
nguyên từ bảng log và antilog.
Bộ tạo đa thức luôn luôn có dạng (x – α) (x – α 2) … (x – α t), , t tương

đương với số lượng mã sửa lỗi cần thiết trừ đi 1.Chúng ta cần 13 mã sửa
lỗi, do đó, t trong trường hợp này là 12.


Ta thức hiện triển khai tất cả các thành phần (x – α) cho tới khi chúng
ta được đa thức. Công việc này thực hiện bằng tay khá phức tạp, sử dụng
generator polynomial tool. Ở đây chúng ta tạo 13 mã sửa lỗi:
α0x25 + α74x24 + α152x23 + α176x22 + α100x21 + α86x20 + α100x19 + α106x18 +
α x17 + α130x16 + α218x15 + α206x14 + α140x13+ α78x12
104

Dưới đây, tôi cho thấy từng bước của việc phân chia đa thức cần thiết
để tạo ra mã sửa lỗi. Nếu bạn muốn xem các bước này được thực hiện
cho một đa thức tin nhắn khác nhau và số lượng từ ECC, truy cập trang
show division steps.
Kết quả của bước này ta được mã sửa lỗi:
168 72 22 82 217 54 156 0 46 15 180 122 16
Ta đặt đoạn mã sửa lỗi sau đoạn mã dữ liệu:
32 91 11 120 209 114 220 77 67 64 236 17 236 168 72 22 82 217
54 156 0 46 15 180 122 16
Chuyển qua nhị phân:
00100000 01011011 00001011 01111000 11010001 01110010
11011100 01001101 01000011 01000000 11101100 00010001
11101100 10101000 01001000 00010110 01010010 11011001
00110110 10011100 00000000 00101110 00001111 10110100
01111010 00010000

4. Chọn mẫu mặt nạ phù hợp
Bây giờ chúng ta đã mã hóa các dữ liệu, tất cả những gì còn lại là
chọn mẫu mặt nạ phù hợp. Một mẫu mặt nạ thay đổi theo các bit, theo

một quy tắc cụ thể. Các mẫu mặt nạ được định nghĩa trong tiêu chuẩn
mã QR.
Có 8 mẫu mặt nạ. Xem danh sách các kiểu mặt nạ QR . Sử dụng mô
hình mặt nạ cho phép chúng tôi để tạo ra tám mã QR khác nhau và sau
đó chọn một trong đó sẽ được dễ dàng nhất cho một đầu đọc QR để
quét. Một đặc biệt mã QR có thể có các mẫu nhất định hoặc những đặc
điểm mà làm cho nó khó khăn cho thiết bị đọc QR chính xác quét mã QR.
Ví dụ, nếu điểm ảnh của cùng một màu sắc xảy ra gần nhau, một đầu
đọc QR có thể gặp khó khăn khi đọc chính xác các điểm ảnh.


Mỗi mô hình mặt nạ tạo ra một mã QR code khác nhau. Sau khi chúng
ta tạo ra các mã khác nhau QR trong nội bộ, chúng tôi cung cấp cho mỗi
một số điểm xử phạt theo các quy tắc quy định trong tiêu chuẩn mã QR.
Sau đó, chúng ta cho ra mã QR có số điểm tốt nhất.
Tạo mã QR code:
Với QR code phiên bản 1, ta cần một ma trận 21×21.
Tất cả các mã QR code đều có một vài mẫu nhận diện chắc chắc phải
đc thể hiện. Ở hình bên dưới, có ba vị trí nhận diện được đặt ở trên cùng
bên trái, trên cùng bên phải và dưới cùng bên trái của ma trận. Các mã
QR code còn có một pixel đen ở bên phải của vị trí nhận diện bên dưới
cùng bên trái. Ngoài ra còn có mẫu timing.

Vị trí điều chỉnh mô hình


Từ ví dụ này là chỉ mã hóa một phiên bản 1 mã QR, chúng ta không
cần thêm bất kỳ mô hình điều chỉnh vị trí. Tuy nhiên, nếu chúng ta đã mã
hóa một mã QR phiên bản 2 hoặc lớn hơn, chúng tôi sẽ thêm các mẫu
điều chỉnh vị trí ma trận. Bảng dưới đây liệt kê các tọa độ của nơi để đặt

các mô hình điều chỉnh vị trí. Xem ví dụ ở bảng dưới đây.

Ví dụ, hình ảnh dưới đây cho thấy các mô hình điều chỉnh vị trí cho
phiên bản mã QR 8. Mỗi mô hình điều chỉnh vị trí là một điểm ảnh màu
đen bao quanh bởi các điểm ảnh màu trắng được bao quanh bởi các
điểm ảnh màu đen. Theo bảng trên, cho phiên bản mã QR 8, vị trí các mô
hình điều chỉnh 6, 24, và 42. Như ta thấy trong hình ảnh, mô hình điều
chỉnh vị trí được đặt ở tất cả các giao điểm của ba con số này, ngoại trừ
đã có lớn hơn mô hình phát hiện vị trí không đặt mô hình điều chỉnh vị trí
trên hàng đầu của các mô hình phát hiện vị trí trong góc của mã QR.


Thêm thông tin Loại
Các thông tin về mức độ sửa lỗi và mô hình mặt nạ được mã hóa ở
dạng dải với các cạnh của các mẫu phát hiện vị trí.
Bảng sau đây hiển thị các bit thông tin các loại được yêu cầu cho các
cấp, sửa lỗi khác nhau và các mẫu mặt nạ.



Trong ví dụ Hello World, mô hình mặt nạ tốt nhất là 0. Chúng ta đang
sử dụng mức độ hiệu chỉnh lỗi Q, vì vậy các chuỗi loại thông tin là
011010101011111. Như trong hình trên, các chuỗi loại thông tin được
hiển thị hai lần. Một trong số đó là dưới hai mô hình phát hiện vị trí hàng
đầu, bắt đầu từ bên trái. Nó bỏ qua quá khứ mô hình thời gian và phần
dữ liệu của lưới. Điều thứ hai là quyền của các mẫu phát hiện vị trí, bắt
đầu từ phía dưới, bỏ qua dấu chấm đen, phần dữ liệu, và mô hình thời
gian. Cả hai sọc cùng một chuỗi: 011010101011111.
Thêm thông tin phiên bản
Nếu mã QR của bạn là phiên bản 7 hoặc lớn hơn, bạn cần phải thêm

các bit thông tin phiên bản ma trận. Đây là những được đặt ở bên trái
của mô hình trên bên phải phát hiện vị trí và trên các mô hình phát hiện
vị trí phía dưới bên trái, như thể hiện trong hình ảnh dưới đây, trong đó
có một phiên bản 9 Mã QR.

Bảng sau đây cho thấy một danh sách của các bit thông tin phiên bản
cần thiết cho mỗi phiên bản. Những bit được đặt trong cấu hình sau đây
trong các vị trí được chỉ định trong hình trên:


Trong ví dụ, mã QR là nhỏ hơn so với phiên bản 7, vì vậy chúng ta
không cần thêm các bit thông tin phiên bản mã.

Thêm dữ liệu Bits
Cuối cùng, chúng ta thêm các bit dữ liệu. Trong bước này, chúng ta
thay đổi chút tùy thuộc vào mô hình mặt nạ mà chúng ta đang sử
dụng.Trước khi thêm chút thực tế, chúng ta sử dụng các mẫu mặt nạ để
quyết định xem có nên thay đổi màu sắc của các bit hiện tại hay không.

Sắp xếp theo cột từ dưới lên
Các bit dữ liệu được thêm vào theo một thứ tự cụ thể. Các điểm ảnh
đầu tiên được thêm vào phía dưới bên phải của mã QR. Điều thứ hai được
đặt ở bên trái đó. Hai tiếp theo được đặt trên đầu những người đầu tiên
theo thứ tự. Hai cột điểm ảnh này vẫn tiếp tục đi lên theo cách này, bỏ


qua bất kỳ điểm ảnh đã được thiết lập, cho đến khi nó đạt đến hàng đầu
của mã QR.

Xuống cột

Một khi nó đạt đến đỉnh, một cột hai-pixel mới bắt đầu, thời gian này
sẽ đi xuống.


Khi đạt đến dưới cùng của lưới, thay đổi hướng một lần nữa, và tiếp
tục trong mô hình này giống như đường đi của con rắn.
Chắc chắn bỏ qua mẫu timing
Khi bạn thêm pixels, hãy chắc chắn để bỏ qua các mô hình thời gian.


Và các mẫu timing ở chiều dọc:

Hoàn tất mã QR code
Tiếp tục theo cách này cho đến khi tất cả của các điểm ảnh dữ liệu đã
được đặt. Sau đó, các mã QR là hoàn tất. Tuy nhiên, các đặc điểm kỹ
thuật mã QR yêu cầu bạn sử dụng các mô hình mặt nạ tốt nhất có thể.


Phần tạo mã chúng em sử dụng tools của jquery plugin, còn phần đọc
mã thì bây giờ hầu như smart phone nào cũng mặc định có chức năng
này nên bọn em không đi vào nghiên cứu sâu.

Phần IV: Ứng dụng của QR code
QR Code ban đầu được phục vụ cho công việc sản xuất ô tô với khả
năng mang nhiều dữ liệu mã hóa hơn, độ dung lỗi cao hơn và thời gian
quét nhanh hơn. Sau đó, khi các ứng dụng sử dụng QR Code trên điện
thoại thông minh (smart phone) xuất hiện thì QR Code dần được sử dụng
rộng rãi hơn ở nhiều lĩnh vực. Một số ứng dụng của mã QR ở Nhật Bản và
châu Á gồm: ứng dụng của mã QR trong điện thoại di động; thiết bị chữa
trị và chuẩn đoán bệnh trong y học; mã vạch QR và công nghệ nhận

dạng bằng tần số sóng radio (RFID) ứng dụng trong chuỗi cung ứng…
1. Sử dụng QR Code để quảng cáo


Pizza Digitale

Scholz & Friends, một trong những công ty quảng cáo lớn nhất ở châu
Âu, đang tìm kiếm thành viên mới gia nhập đội ngũ sáng tạo kỹ thuật số
của họ. Như công ty cho biết, "mật ong thu hút nhiều ruồi hơn giấm", vì
vậy họ đã cố gắng một chiến dịch tuyển dụng sáng tạo và quyến rũ Pizza Digitale - một bánh pizza đặc biệt, đó là trong bốn tuần thêm vào
mỗi đơn hàng từ các nhân viên cơ quan lớn khác. Bánh pizza được che
phủ trong nước sốt cà chua, có hình dạng giống như một mã QR, trực
tiếp liên kết đến thông tin về lời mời làm việc. Kết quả - 12 cuộc phỏng
vấn việc làm và 2 đội mới cho các đơn vị kỹ thuật số của các cơ quan.


×