Tải bản đầy đủ (.docx) (56 trang)

NGHIÊN CỨU VÀ PHÁT TRIỂN MÃ QR CHO CÁC HỆ THỐNG BÁN VÉ ĐIỆN TỬ

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 (2.19 MB, 56 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÁO CÁO MÔN HỌC CÔNG NGHỆ
TRI THỨC VÀ ỨNG DỤNG
ĐỀ TÀI :
NGHIÊN CỨU VÀ PHÁT TRIỂN MÃ QR CHO CÁC HỆ THỐNG BÁN VÉ
ĐIỆN TỬ
GVHD: GS.TS- HOÀNG KIẾM
HỌC VIÊN: HOÀNG NGUYÊN KHANG
MSHV: CH1301092
Tphcm 14.10.2014
MỞ ĐẦU
Ngày nay thương mại điện tử ngày càng phát triển mạnh, được ứng dụng trong
mọi lĩnh. Đăc biệt trong lĩnh vực marketing hiện nay đang có xu hướng ứng
dụng “Qr code“ vào chiến lược kinh doanh của mình. Ứng dụng Qr code đang
được phổ biến rộng trên thế giới ví dụ như: hệ thống bán vé tàu điện ngầm, vé
máy bay, chiến lược quảng cáo, mua hàng Nhưng tại Việt Nam thì rất ít và
chưa thấy ứng dụng vào việc kinh doanh, vì đa số người dùng Việt dùng tablet
và smartphone cho mục đích giải trí.Do đó nhómchọn đề tài phát triển hệ thống
bán vé bằng Qr code, hy vọng sẽ phục vụ tốt cho người dùng Việt, làm phong
phú thêm kho ứng dụng Việt và góp phần mang lại nhiều lợi ích cho nước nhà.
MỤC LỤC
DANH MỤC CÁC HÌNH ẢNH

 !"
#$ %&
'($)*+,+-
#./+0!
#12 3++,/.+45+$+0.#
##45) 6
#'78451$


#978+&+:-
#;!2/<45+$
#=>? @A &A &/45
#B7$C" 6&:DE
#F?G+:$$ $HI
#J?G+E %I
#?G+EK5L
#M?G+.N+- 
## 6&:DE
#'>O+P<Q
#91&+!RST#-GR
#;>GRU
#=>GR >+
#B>GRV:++
'4 &/<!/
Hình 4.2 Mô tả chức năng yêu cầu của hệ thống (User case diagram)
'#EW+WX$Y-) +,L%
''.T+&+-GR+,SV:++
'9VY-) -? YT
';.T:$$GUR!.IA-
9($)++,L%
94 -ZO)[
9#$ !%&
9'\
99+]!
9;T[/ 
9=($)%^S 4+:RR
9B($)_6R[
9FH*`R-)
9Ja)L%

9a)L%
DANH MỤC BẢNG
#H&_-? Y+,/45
#1&++bR@%/45
##E%+cO+45M+$JJ9
#'/:E1dd
#91&+e+eGf+,-R
#;%* $g+&+&-!-$he+(ij9;k
9a)L%
9a)L%
lm1lm.nop11no(o(q5dr17sro(Vto(=
Chương 1 GIỚI THIỆU ĐỀ TÀI
1.1 Mục đích đề tài
45j4 +5Rk-!b6/u++<*?`+P+%X+e+_
v45%+$$wT?x?`++!yR1&+
T?`+/<+<*%T_%z[5>{7)+e
$C451$!+Q&G|X7)oz I<
!I+!XT$C!-!N G+,G
1&+$Cb+&z3"+&+a$C4+$?) ^%}
4+$u!4 ++,+TI+z+?0&+R~) 6
%}4+$z !!NTR~A 4+$z+-!
u! )SX:
Nắm bắt được lợi ích từ Qr code mang lại những tiềm năng phát triển của nó
trong tương lai và những kết quả đạt được từ đồ án môn học chuyên ngành“
encode và decode Quick Response“ tạo và đọc mã vạch trên smartphone. Chúng
tôi đưa ra ý tưởng phát triển hệ thống bán vé , trong đó vé được dùng là Qr code.
Trong quá trình nghiên cứu và phát triển đề tài, những ý tưởng được đi xa hơn
và mong muốn ứng dụng có thể được áp dụng vào thực tế. Chúng tôi xây dựng
một hệ thống cho phép người dùng (user) tự tổ chức sự kiện, tự bán vé, soát vé
và quản lý doanh thu của mình. Hệ thống được đặt tên QR ticket.

1.2 Nội dung thực hiện
GVHD: GS-TSKH.Hoàng Kiếm
HVTH: Hoàng Nguyên Khang-CH1301092
lm1lm.nop11no(o(q5dr17sro(Vto(B
 Xây dựng website để tạo sự kiện, quảng bá sự kiện, quản lý số vé và thống kê
doanh thu.
 Lập trình ứng dụng trên mobile (android application) hổ trợ khách hàng trong
việc kiểm tra vé.
1.3 Phạm vi nghiên cứu
Ứng dụng hổ trợ cho tất cả tới mọi đối tượng người dùng muốn tự tổ chức sự
kiện cho mình. Thông qua ứng dụng khách hàng có thể quản lý sự kiện một cách
chặt chẽ hơn, đơn giản và tiết kiệm được chi phí tổ chức,in ấn Ứng dụng còn
hỗ trợ đa dạng về các loại sự kiện như: Phim rạp, chương trình ca nhạc, tuyến xe
bus, tàu điện ngầm, đặt vé máy bay
Đây một đề tài khóa luận nên phạm vi nghiên cứu cho phép chỉ hổ trợ cho người
dùng miễn phí, do ứng dụng có liên quan đến việc thanh toán ngân hàng (cổng
thanh toán trực tuyến) chưa có tích hợp mô hình thanh toán từ bên phía ngân
hàng.
Chương 2 TỔNG QUAN
GVHD: GS-TSKH.Hoàng Kiếm
HVTH: Hoàng Nguyên Khang-CH1301092
lm1lm.nop11no(o(q5dr17sro(Vto(F
Nhìn chung thị trường tablet và smartphone trong nước mới phát triển rầm rộ
trong thời gian gần đây và đa số là người mua thường dùng cho mục đích giải trí,
chưa được sử dụng nhiều cho hình thức kinh doanh, công việc. Nhưng các ứng
dụng Qr code đã được phổ biến rộng rãi trên các nước trên thế giới.
Vé Qr code là đề tài nghiên cứu hoàn toàn mới và chưa thấy ứng dụng ở Việt
Nam. Vì thế nhóm cũng mong muốn phát triển một ứng dụng cho người việt,
phục vụ việc bán vé với các tiêu chí: phù hợp hơn với văn hóa, công việc, đơn
giản hơn khi sử dụng và góp phần làm phong phú thêm những sản phẩm mang

bản chất người Việt. Xin mô tả sơ lược những hệ thống đang được áp dụng hiện
nay. Qua đó chúng ta có thể tham khảo thêm từ đó có so sánh các ưu nhược điểm
với ứng dụng của mình để đưa ra hướng phát triển tốt nhất.
2.1 Tình hình nghiên cứu ở nước ngoài
)+M-•J€
 Bước 1: đăng ký, cung cấp thông tin khách hàng cần thiết.
 Bước 2: user phải liên lạc đến quản lý website để yêu cầu tạo cho mình
mô hình ghế ngồi phù hợp với nơi mình tổ chức.
 Bước 3: tạo sự kiện
 Bước 4: sự kiện sẽ hiển thị lên blog hay site của người tạo.
GVHD: GS-TSKH.Hoàng Kiếm
HVTH: Hoàng Nguyên Khang-CH1301092
lm1lm.nop11no(o(q5dr17sro(Vto(J
Hình 2.1 Trang đặt vé theo vị trí ghế ngồi
Các khách hàng (customer) có thể nhấp ô trên để đặt ghế và đồng ý trả phí
cho vé đã mua thông qua một cổng thanh toán trực tuyến.
 Bước 5 : Khách hàng quản lý số vé đã mua
Hình 2.2 Bảng thống kê số vé mua và số tiền
 Bước 6: User quản lý thống kê việc bán của từng sự kiện
GVHD: GS-TSKH.Hoàng Kiếm
HVTH: Hoàng Nguyên Khang-CH1301092
lm1lm.nop11no(o(q5dr17sro(Vto(
Hình 2.3 Bảng thống kê doanh thu bán vé
 Bước 7: Dùng ứng dụng TicketTool.net Ticket Scanner để kiểm tra
vé.Có thể kiểm tra vé online hoặc offline.
Hình 2.4 Giao diện kiểm tra vé của ticket-tool
2.2 Đánh giá hệ thống ticket-tool
GVHD: GS-TSKH.Hoàng Kiếm
HVTH: Hoàng Nguyên Khang-CH1301092
lm1lm.nop11no(o(q5dr17sro(Vto(

Theo đánh giá hệ thống này khá đầy đủ đáp ứng đủ yêu cầu của người dùng.
Nhưng việc tạo sự kiện khá phức tạp, phải liên lạc với chủ website để tạo riêng
cho sự kiện mô hình ghế ngồi phù hợp. Đây là một khuyết điểm, đối với đề tài
nhóm sẽ có thêm chức năng cho phép user tạo cho mình mô hình ghế ngồi.
Ngoài ra chi phí để sử dụng hệ thống cũng là một điều cần tham khảo, phí này sẽ
được tính khi khách hàng mua vé được tính theo công thức:
số tiền vé + 0.2$ + 2%.Ví dụ khách hàng mua vé 20$: 20/100 * 2 + 0.2 = 0.6 $.
Vì đây là một ứng dụng cho công việc kinh doanh, tính phí nên việc tham khảo,
thử nghiệm là điều khó khăn nên nhóm chỉ có thể tham khảo qua demo của ứng
dụng này trên website. Còn ứng dụng mobile để soát vé không cho phép dùng
thử.
2.3 Vấn đề rút ra từ hệ thống ticke-tool
Qua những gì đã tham khảo từ hệ thống TichketTool. Nhóm rút ra những vấn đề
cần phải nghiên cứu thêm và giải quyết.
Xây dựng website có các chức năng gì? làm sao để user có thể tự tạo mô hình
ghế ngồi phù hợp?
 Chức năng soát vé online và offline như thể nào?
 Làm sao kiểm tra vé có giả hay không, và của sự kiện nào?
 Cách nào để ngăn việc copy vé, một vé chỉ dùng một lần?
Chương 3 CƠ SỞ LÝ THUYẾT
GVHD: GS-TSKH.Hoàng Kiếm
HVTH: Hoàng Nguyên Khang-CH1301092
lm1lm.nop11no(o(q5dr17sro(Vto(#
3.1 Qr Code
Cỡ hình QR
Có 40 cỡ mã hình QR được gọi là cỡ hình 1, cỡ hình 2 cỡ hình 40. Cỡ hình 1
gồm 21 x 21 môđun, cỡ hình 2 gồm 25 x 25 môđun, và cứ như vậy mỗi cỡ hình
sau tăng thêm 4 môđun mỗi cạnh cho đến cỡ hình thứ 40 là 177 x 177 môđun
(Hình 3.1) [1]
Hình 3.1 – Mã hình cỡ 1 và 2

Mẫu tìm kiếmji$Rk•1<#‚  ?W
eX<+%&z<+%R!<+$?G%&+,/
.ƒ‚ +<*?`+N?# T„+-
 !?`+u%X=N=T z9N9T &!#N#T c
-)bb+,T ƒ‚ -!••#••Vhƒ`
R&)z+" +,45+$
Mẫu căn chỉnh (Timing Pattern) : Mẫu căn chỉnh theo chiều ngang và chiều
dọc tương ứng bao gồm một dòng hoặc một cột rộng 1 môđun xen kẽ giữa
môđun sáng và môđun tối, bắt đầu và kết thúc bởi một môđun tối
Vùng mã hoá( FormatInfo, VersionInfo) : Cung cấp thông tin giải mã.
GVHD: GS-TSKH.Hoàng Kiếm
HVTH: Hoàng Nguyên Khang-CH1301092
lm1lm.nop11no(o(q5dr17sro(Vto('
Mẫu căn chuẩn( Alignment Pattern ):Các mẫu căn chuẩn chỉ được thể hiện
trong mã hình QR code cỡ hình 2 hoặc lớn hơn. Mỗi mẫu căn chuẩn có thể được
xem như ba hình vuông đồng tâm chồng lên nhau và được tạo bởi 5 x 5 môđun tối,
3 x 3 môđun sáng và một môđun tối đơn lẻ ở trung tâm, hỗ trợ việc phục hồi QR
code khi ảnh bị xiên, méo.
Vùng trống ( Modules) : là các hình vuông trắng đen còn lại, lưu trữ thông tin
được mã hóa và thông tin hỗ trợ sửa lỗi.
Đối với mã hình QR code, vùng trống phải có chiều rộng là 4X.
Đối với mã hình Micro QR code, vùng trống phải có chiều rộng là 2X.
Hình 3.2- Cấu trúc của mã hình Micro QR code cỡ hình M3
Khả năng lưu trữ :
GVHD: GS-TSKH.Hoàng Kiếm
HVTH: Hoàng Nguyên Khang-CH1301092
lm1lm.nop11no(o(q5dr17sro(Vto(9
Bảng 3.1 Khá năng lưu trữ của mã QR
Khả năng chịu lỗi
Đây là ưu điểm nổi bật của QR code ngoài việc có dung lượng lưu trữ lớn. Các

loại mã kiểu này dễ bị bẩn. Nhưng với QR code, kể cả khi 30% bị mất (bẩn,
rách, …) thì vẫn còn khả năng khôi phục dữ liệu.
Cấp L: 7% mã QR có thể phục hồi.
Cấp M: 15% mã QR có thể phục hồi.
Cấp Q: 25% mã QR có thể phục hồi.
Cấp H: 30% mã QR có thể phục hồi.
Đặc điểm này được tận dụng: cho phép tùy chỉnh QR code : thêm màu sắc,
chèn logo để tăng tính nghệ thuật, làm cho quảng cáo hấp dẫn hơn (Hình 3.3).
Hình 3.3- Hình QR nghệ thuật
Ứng dụng mã QR
GVHD: GS-TSKH.Hoàng Kiếm
HVTH: Hoàng Nguyên Khang-CH1301092
Numeric Tối đa 7,089 ký tự
Alphanumeric Tối đa 4,296 ký tự
Nhị phân (8 bits) Tối đa 2,953 bytes
Kanji/Kana Tối đa 1,817 ký tự
lm1lm.nop11no(o(q5dr17sro(Vto(;
o Quảng cáo : QR code được in lên bao bì, bề mặt sản phẩm, các panel quảng
cáo, cung cấp thông tin chi tiết hoặc URL tới trang chủ của sản phẩm.
o Danh thiếp cá nhân: cho phép nhanh chóng số hóa thông tin liên lạc .
o Thanh toán điện tử.
QUY TRÌNH MÃ HÓA QR CODE [1]
• Bước 1
o Tạo chuỗi nhị phân ( Bit stream )
Chuỗi nhị phân này bao gồm 3 phần chính : thông tin về chế độ mã hóa / độ dài
chuỗi/ nội dung chuỗi.
o Cần xác định chế độ mã hóa/ mức độ sửa lỗi/ version(kích thước) sẽ sử
dụng.
VD: sử dụng Version 1 / sửa lỗi level Q / chế độ mã hóa Alphanumeric để
encode chuỗi “HELLO WORLD”

• Bước 2
o Thêm 4 bit khai báo chế độ mã hóa chuỗi (mode indicator)
o Thường có 4 chế độ phổ biến:
Bảng 3.2 Các chế độ phổ biến trong mã QR
Ví dụ chọn chế độ Alphanumeric : 0010
• Bước 3 :
o Thêm n bit mã hóa độ dài chuỗi (characters count indicator )
Số n bits này phụ thuộc vào chế độ mã hóa và version ( kích thước) của QR
Code, được quy định trong tài liệu ISO 18004.(Bảng 3.3)
GVHD: GS-TSKH.Hoàng Kiếm
HVTH: Hoàng Nguyên Khang-CH1301092
lm1lm.nop11no(o(q5dr17sro(Vto(=
VD: Encode chuỗi “HELLO WORLD” ở version 1, chế độ Alphanumeric : cần dùng
9 bits để mã hóa độ dài chuỗi.
Bảng 3.3 – Số bit trong chỉ số đếm kí tự cho QR-code 2005
Độ dài “HELLO WORLD” = 11 kí tự = 1011
b
>0 0000 1011
Tham khảo bảng 3.2
Sau 2 bước trên ta được chuỗi :
0010 00000 1011
• Bước 4 : Mã hóa dữ liệu
Các kí tự của chuỗi cần mã hóa được tách thành từng cụm, tùy theo chế độ mã
hóa :
Chuỗi kí tự dạng numeric sẽ được tách ra thành các bộ 3 và mã hóa mỗi bộ
bằng 10 bits, nếu dư ra 1 hoặc 2 kí tự sẽ mã hóa chúng bằng 4 hoặc 7 bits;
Ở chế độ Bytes : mỗi kí tự được mã hóa bằng 8 bits.
Chuỗi dạng alphanumeric sẽ được tách ra thành các cặp 2 kí tự và mã hóa mỗi
cặp bằng 11 bits.
Lấy mã ASCII của kí tự đầu  nhân 45  cộng với mã ASCII của kí tự thứ

hai. Chuyển kết quả thành chuỗi 11 bits (Bảng 3.4)
Tiếp tục với các cặp kí tự khác.
Nếu còn dư lại 1 kí tự  chuyển mã ASCII của nó thành 1 đoạn 6 bits.
GVHD: GS-TSKH.Hoàng Kiếm
HVTH: Hoàng Nguyên Khang-CH1301092
lm1lm.nop11no(o(q5dr17sro(Vto(B
Bảng 3.4 – Bảng tra mã ASCII
• Bước 5 :Kết thúc chuỗi ( Terminator )
Nếu độ dài chuỗi bit nhỏ hơn N bits so với khả năng lưu trữ của version cùng
với chế độ sửa lỗi được chọn
N >=4 : ta thêm vào chuỗi 4 bits : 0000
N < 4 : ta thêm vào chuỗi N bits 0
Nếu độ dài chuỗi đã đạt ngưỡng của version, ta k cần thực hiện bước này.
Ví dụ vào thời điểm này ta đang có chuỗi :
0010 000001011 01100001011 01111000110 10001011100 10110111000
10011010100 001101
 74bits < 104 ( 104 = input data capacity of Version 1 – Error Correct Level Q )
 0010 000001011 01100001011 01111000110 10001011100 10110111000
10011010100 001101 0000
• Bước 6: Tạo từ mã ( Data Codewords )
Chuỗi bits được tạo ở phần 1 sẽ được chia thành các codewords ( 8 bits )
Nếu chiều dài chuỗi bits % 8 = n ≠ 0 : ta thêm ( 8 – n ) bits 0 vào codeword
cuối cho đủ 8 bits.
0010 0000 0101 1011 0000 1011 0111 1000 1101 0001 0111 0010 1101 1100 0100
1101 0100 0011 0100 0000
Nếu số lượng codewords < số lượng quy định tại tiêu chuẩn ISO
lần lượt thêm vào các byte 1110 1100(0xEC)và 0001 0001(0x11)cho tới khi đủ số
lượng quy định.
Ví dụ: Version 1-Q cần 13 data codewords :
0010 0000 0101 1011 0000 1011 0111 1000 1101 0001 0111 0010 1101 1100 0100

1101 0100 0011 0100 0000 1110 1100 0001 0001 1110 1100
GVHD: GS-TSKH.Hoàng Kiếm
HVTH: Hoàng Nguyên Khang-CH1301092
lm1lm.nop11no(o(q5dr17sro(Vto(F
• Bước 7: Tạo mã sửa lỗi ( Error Correction Codewords )
Đây là bước phức tạp nhất, mục tiêu là tạo ra các Error Codewords phục vụ cho việc
phát hiện và sửa lỗi khi nhận dạng.
Với các version lớn thì các Error codewords và Data codewords được chia thành
nhiều blocks và xếp xen kẽ các codewords của blocks với nhau khi đặt dữ liệu mã hóa
lên ma trận ảnh.
Cần xác định số lượng Error Blocks ( = số data blocks ), số Codewords/block tương
ứng cho version + chế độ sửa lỗi.
• Cột cuối cùng có 3 thông số
 C = tổng số codewords của 1 cặp Data block và Error Block
 K = Số data codewords trên 1 data block
 R = Số lỗi khối này có khả năng sửa được.
Ví dụ:
• Version 1-Q yêu cầu 1 error correction block gồm 13 error correction
codewords, 13 data codewords.
• Version 7-H có tổng cộng 130 error codewords, yêu cầu chia thành 5 error
blocks ( tương ứng với nó là 5 data blocks, 4 blocks đầu có 13 data
codewords/block, block thứ 5 có 14 datacodewords )
• Bước 8:Tạo Message Polynomial ( tạm gọi : đa thức M )
Đây là đa thức được xây dựng từ các data codewords ở trên.
Theo Bước 1, ta cần 1 data block với 13 codewords  Đa thức M cũng sẽ có 13 số
hạng.
Mỗi codeword (chuyển sang hệ thập phân) sẽ là hệ số của số hạng tương ứng.
Số mũ của các số hạng giảm dần từ N :
o N = (số data codewords + số error codewords ) – 1
o Trong trường hợp này, N = 13 + 13 – 1 = 25.

Ví dụ : từ bộ data codewords có được ở cuối phần 2 :
0010 0000 0101 1011 0000 1011 0111 1000 1101 0001 0111 0010 1101 1100 0100
1101 0100 0011 0100 0000 1110 1100 0001 0001 1110 1100
Chuyển sang hệ 10: 32, 91, 11, 120, 209, 114, 220, 77, 67, 64, 236, 17, 236
Ta có được đa thức M :
GVHD: GS-TSKH.Hoàng Kiếm
HVTH: Hoàng Nguyên Khang-CH1301092
lm1lm.nop11no(o(q5dr17sro(Vto(J
Bước 8 :Tạo Generator Polynomial ( Đa thức sinh )
Đa thức này có nguồn gốc từ một Galois Field với 256 phần tử.
Theo tài liệu ISO thì alpha là phần tử nguyên thủy = 2.
Đa thức sinh có dạng : (x-a)(x-a
2
) (x-a
t
)
t +1 = (degree) = số error codewords
Đa thức sinh (G) cần được khai triển thành tổng các số hạng (Bảng 3.5)
Bảng 3.5Các đa thức sinh ứng với số mũ của alpha
Trong trường hợp này t = 12 và ta có đa thức sinh như sau :
(x-α
1
)(x- α
2
)….( x- α
12
)
 + + + + + + + + + + + + +
(Số số hạng N = số error codewords + 1, số mũ của x giảm từ N -> 0)
GVHD: GS-TSKH.Hoàng Kiếm

HVTH: Hoàng Nguyên Khang-CH1301092
lm1lm.nop11no(o(q5dr17sro(Vto(
Nhân đa thức sinh với x
12
để thuận tiện cho việc tính toán ( làm xuất hiện x
25
trùng với
đa thức M )
Để tạo ra các error correction codewords, cần chia đa thức M cho đa thức G.
Quá trình chia đa thức này cần sử dụng một bảng tra ( log[]/ antilog []) để chuyển qua
lại giữa 2 cách biểu diễn alpha và integer
Bảng 3.6- Bảng biểu diễn các giá trị log và antilog dùng trong đa thức GF(256)
• Bước 9: Lựa chọn maskPattern phù hợp.
o Sử dụng maskpattern nhằm mục đích đảm bảo sự cân bằng giữa các
module trắng và đen trong một ˜ung, giúp việc nhận dạng ˜ung˜ được
sai sót.
GVHD: GS-TSKH.Hoàng Kiếm
HVTH: Hoàng Nguyên Khang-CH1301092
lm1lm.nop11no(o(q5dr17sro(Vto(
o Có 8 loại mask pattern, là các biểu thức có tham số là tọa độ I,J. Những
bit nào trên ma trận ( thuộc ˜ung data ) thỏa biểu thức tọa độ này sẽ
được đảo giá trị .
• Bước 10: Tạo versionInfo, formatInfo và mã sửa lỗi của chúng.
o formatInfo lưu trữ thông tin về chế độ mã hóa dữ liệu và loại
maskPattern được chọn sử dụng.
o versionInfo và formatInfo không dùng mã sửa lỗi reedsolomon như
datacodewords mà sử dụng BCH và Golay code.
o Chi tiết phần mã hóa tham khảo tại ISO-18004, Annex C, Annex D.
• Bước 11: Placement – vẽ QR code, đặt các vùng phần vào từng vị trí của
chúng.

Ví dụ: 2 Finder Patterns và 2 timing patterns. 1 black pixel cố định.
Hình 3.4 Vẽ QR Code
o Vẽ các alignment pattern tương ứng với version :
GVHD: GS-TSKH.Hoàng Kiếm
HVTH: Hoàng Nguyên Khang-CH1301092
lm1lm.nop11no(o(q5dr17sro(Vto(#
Hình 3.5 Vẽ các Alignment
o Đặt các byte của finalMessage vào theo đúng quy tắc đề cập trong tiêu chuẩn.
GVHD: GS-TSKH.Hoàng Kiếm
HVTH: Hoàng Nguyên Khang-CH1301092
lm1lm.nop11no(o(q5dr17sro(Vto('
Hình 3.6 Hoàn tất mã hóa QR code
Giải mã Qr code
Khái quát
 Xác định và thu nhận hình ảnh của mã hình. Nhận biết các môđun tối và môđun
sáng như là một chuỗi các bit "0" và "1". Phân định chiều phân cực của hệ số phản
xạ từ việc tạo màu môđun của mẫu tìm kiếm.
 Đọc thông tin định dạng. Gỡ mẫu áp mặt nạ và thực hiện sửa lỗi trên các
môđun thông tin định dạng khi cần thiết; nếu đọc tốt, mã hình có sự định
hướng bình thường còn nếu không hãy thử giải mã hình ảnh phản chiếu của
thông tin định dạng. Phân định mức sửa lỗi, hoặc là trực tiếp trong mã hình
QR code hoặc là từ số mã hình Micro QR code và tham chiếu mẫu mặt nạ dữ
liệu.
 Đọc thông tin cỡ hình (nếu có), sau đó xác định cỡ hình của mã hình (từ số mã
hình trong trường hợp của mã hình Micro QR code).
 Gỡ mẫu áp mặt nạ dữ liệu bằng việc áp dụng phép toán XOR lên mẫu bit của
vùng mã hoá bằng mẫu mặt nạ dữ liệu trong đó tham chiếu của nó được lấy ra
từ thông tin định dạng.
GVHD: GS-TSKH.Hoàng Kiếm
HVTH: Hoàng Nguyên Khang-CH1301092

lm1lm.nop11no(o(q5dr17sro(Vto(9
 Đọc các ký tự mã hình theo các quy tắc sắp xếp đối với mô hình này, phục hồi
dữ liệu và từ mã sửa lỗi của gói tin.
 Phát hiện lỗi sai bằng việc sử dụng từ mã sửa lỗi tương ứng với thông tin về
cấp độ. Nếu phát hiện ra các lỗi sai thì hãy sửa chúng.
 Phân đoạn từ mã dữ liệu theo chỉ báo mode và chỉ dấu đếm ký tự.
 Cuối cùng, giải mã các ký tự dữ liệu tuỳ theo (các) mode đang sử dụng và cho
ra kết quả.
Sửa lỗi QR
Lấy mã hình cỡ 1-M làm ví dụ. Với mã hình này, mã (26, 16, 4) RS dưới
GF(2
8
) được dùng để sửa lỗi. Giả sử mã sau khi gỡ mặt nạ dữ liệu khỏi mã
hình là:
R = (r
0
, r
1
, r
2
,…, r
25
)
Hay là,
R(x)=r
0
+ r
1
x + r
2

x
2
+…+ r
25
x
25
r
i
(i=0-25) là một phần tử của GF(2
8
)
(i) Tính toán các tập hợp n (trong đó n bằng số từ mã sẵn có để sửa lỗi, cho
bởi (c−k−p) như nêu trong Bảng 9).
Tìm tập hợp S
i
(i=0-(n −1))
S
0
= R(1) = r
0
+ r
1
+ r
2
+ + r
25
S
1
= R(α) = r
0

+ r
1
α+ r
2
α
2
+ + r
25
α
25


S
7
= R(α
7
) = r
0
+ r
1
α
7
+ r
2
α
14
+ + r
25
α
175

trong đó α là phần tử nguyên thuỷ của GF(2
8
)
(ii) Tìm vị trí lỗi
GVHD: GS-TSKH.Hoàng Kiếm
HVTH: Hoàng Nguyên Khang-CH1301092

×