1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nhận dạng mã vạch 2d trên nền ios

88 7 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 88
Dung lượng 2,01 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TÓM TẮT Luận văn này trình bày về mã vạch 2D trong đó cụ thể là mã vạch QR Code, các phiên bản, cấu trúc, thành phần của mã vạch, cách giải mã và phương pháp sửa lỗi Reed – Solomon được

Trang 2

TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM

Cán bộ hướng dẫn khoa học : TS Trương Đình Châu

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:

(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)

Trang 3

NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Hồ Thế Anh MSHV: 12214274

Ngày, tháng, năm sinh: 10/04/1987 Nơi sinh: Cần Thơ

Chuyên ngành: Tự động hóa (CT) Mã số : 605261

I TÊN ĐỀ TÀI: Nhận dạng mã vạch 2D trên nền iOS

II NHIỆM VỤ VÀ NỘI DUNG:

Nhiệm vụ : Xây dựng một ứng dụng chạy trên nền iOS có thể nhận dạng mã vạch 2D và ứng dụng của mã vạch này trong công tác quản lý hàng hóa Đề tài bao gồm nhận dạng và giải mã mã vạch QR trên iOS và lưu trữ dữ liệu mã vạch theo mục đích quản lý hàng hóa………

………

III NGÀY GIAO NHIỆM VỤ : (Ghi theo trong QĐ giao đề tài) 23/07/2012

IV NGÀY HOÀN THÀNH NHIỆM VỤ: (Ghi theo trong QĐ giao đề tài) 23/12/2013 V CÁN BỘ HƯỚNG DẪN (Ghi rõ học hàm, học vị, họ, tên): TS Trương Đình Châu Tp HCM, ngày tháng năm 20

CÁN BỘ HƯỚNG DẪN (Họ tên và chữ ký) CHỦ NHIỆM BỘ MÔN ĐÀO TẠO (Họ tên và chữ ký) TRƯỞNG KHOA….………

(Họ tên và chữ ký)

Trang 4

LỜI CẢM ƠN

Xin chân thành cảm ơn quý thầy cô bộ môn Tự động hóa trường Đại học Bách Khoa Thành Phố Hồ Chí Minh đã truyền đạt những kiến thức và kinh nghiệm quý báu trong quá trình học tập để tôi thực hiện tốt luận văn này

Xin chân thành cảm ơn TS Trương Đình Châu đã định hướng, tư vấn và động viên tôi trong suốt quá trình thực hiện luận văn

Xin chân thành cảm ơn đồng nghiệp, bạn bè đã tạo điều kiện về vật chất và tinh thần để tôi hoàn thành luận văn

Cảm ơn gia đình đã luôn bên cạnh tôi trong những lúc tôi gặp khó khăn nhất

TP Hồ Chí Minh, ngày 22 tháng 11 năm 2013

Hồ Thế Anh

Trang 5

TÓM TẮT

Luận văn này trình bày về mã vạch 2D trong đó cụ thể là mã vạch QR Code, các phiên bản, cấu trúc, thành phần của mã vạch, cách giải mã và phương pháp sửa lỗi Reed – Solomon được dùng trong mã hóa và giải mã mã vạch QR Code Cách sử dụng thư viện mã nguồn mở ZBar để lập trình giải mã QR Code trên nền iOS Đề tài còn sử dụng cơ sở dữ liệu SQLite làm cơ sở để lưu trữ dữ liệu làm nền tảng cho các ứng dụng lưu trữ thông tin, hàng tồn kho được dùng trong quản lý hàng hóa sau này

This master thesis presents 2D barcodes including QR barcode namely Code, version, structure and composition of the barcode, decoding and error correction method of Reed - Solomon is used in encoding and decoding QR code barcode Using open source ZBar library to decode QR Code programming on the iOS platform Theme also uses the SQLite database as the basis for data storage as the foundation for the application of information storage, inventory management are used for goods later

Trang 6

LỜI CAM ĐOAN

Tôi xin cam đoan đây là đề tài do tôi nghiên cứu thực hiện

Các kết quả nghiên cứu đều trung thực, các tài liệu tham khảo có nguồn gốc rõ ràng

Tôi xin chịu trách nhiệm về đề tài của mình

TP Hồ Chí Minh, ngày 22 tháng 11 năm 2013

Hồ Thế Anh

Trang 7

MỤC LỤC

LỜI CẢM ƠN i

TÓM TẮT ii

LỜI CAM ĐOAN iii

MỤC LỤC iv

DANH MỤC HÌNH ẢNH v

DANH MỤC BẢNG BIỂU vii

MỞ ĐẦU 1

CHƯƠNG 1 TỔNG QUAN 3

1 Mã vạch 1D và mã vạch 2D 3

2 Cấu tạo mã QR Code 4

3 Ứng dụng của mã vạch QR Code 5

CHƯƠNG 2 QUẢN LÝ MÃ VẠCH QR CODE 7

1 Hoa văn định vị 7

2 Các phiên bản và thông tin phiên bản của mã vạch 8

3 Thông tin định dạng 12

4 Mã sửa lỗi 14

5 Mô hình mặt nạ 17

6 Hoa văn liên kết 20

7 Cấu trúc dữ liệu trong mã vạch 22

8 Kích thước cho việc in ấn mã vạch 26

CHƯƠNG 3 KỸ THUẬT GIẢI MÃ QR CODE 29

1 Quy trình giải mã 29

2 Thuật toán giải mã 37

CHƯƠNG 4: NHẬN DẠNG QR CODE TRÊN NỀN iOS 46

1 Nền tảng cho việc xây dựng thư viện ZBar trong lập trình iOS 46

2 Sử dụng thư viện ZBar 51

3 Ứng dụng mã vạch QR Code trong công tác quản lý hàng tồn kho 60

CHƯƠNG 5 KẾT QUẢ VÀ HẠN CHẾ 64

1 Báo cáo kết quả lập trình giải mã 64

2 Hạn chế 75

TÀI LIỆU THAM KHẢO 76

Trang 8

DANH MỤC HÌNH ẢNH

Hình 1.1: Mã vạch PDF417 và mã vạch QR Code 3

Hình 1.2: Cấu tạo mã QR Code 4

Hình 2.1: Hoa văn định vị mã vạch 8

Hình 2.2: Vị trí khối dữ liệu mô tả thông tin phiên bản 10

Hình 2.3: Sơ đồ bố trí các bits trong khu vực thông tin phiên bản 11

Hình 2.4: Khu vực thông tin định dạng 13

Hình 2.5: Nguyên lý mã hóa – giải mã Reed Solomon 16

Hình 2.6: Các mô hình mặt nạ 19

Hình 2.7: Vị trí thông tin mô hình mặt nạ 19

Hình 2.8: Các hoa văn liên kết và tọa độ hoa văn của phiên bản 7 20

Hình 2.9: Sơ đồ từ mã dữ liệu các từ mã trong mã vạch phiên bản 7 24

Hình 2.10: Sơ đồ bố trí các khối từ mã trong phiên bản 7Q 25

Hình 2.11: Vị trí các modul dữ liệu trong khối dữ liệu 25

Hình 2.12: Vị trí các modul trong khối dữ liệu nằm ngang phía trên và dưới 26

Hình 2.13: Bỏ qua các modul bị che khuất tại các hoa văn liên kết 26

Hình 2.14: So sánh các thiết bị quét mã QR Code 27

Hình 3.1: Giải thuật giải mã 30

Hình 3.2: Mã vạch của chuỗi ký tự “NHAN DANG QR CODE” 31

Hình 3.3: Mô hình mặt nạ được mô tả bằng các bits nhị phân trên mã vạch 32

Hình 3.4: Cấu trúc dữ liệu đã được loại bỏ mặt nạ 33

Hình 3.5: Sơ đồ bố trí dữ liệu trong mã vạch 33

Hình 3.6: Giãi mã Reed Solomon 40

Hình 4.1: Dòng điểm ảnh liên tục trong hoa văn định vị 47

Hình 4.2: Hai hoa văn định phía trên 47

Hình 4.3: Vị trí các hoa văn định vị và thông tin phiên bản 48

Hình 4.4: Hoa văn định vị và hoa văn liên kết 49

Hình 4.5: Khối trung tâm hoa văn liên kết 49

Trang 9

Hình 4.8: Giao diện ứng dụng quét mã vạch và mô phỏng camera 60

Hình 4.9: Giao diện ứng dụng quét mã vạch quản lý hàng hóa 61

Hình 4.10: Giao diện tập tin dữ liệu khi mở bằng SQLite 63

Hình 5.1: Mã vạch QR Code của đoạn ký tự thuộc phiên bản 13 65

Hình 5.2: Mã vạch QR Code bị mất dữ liệu và mô hình mặt nạ jmod3 = 0 65

Hình 5.3: Mã vạch QR Code bị mất dữ liệu một đường ngang 65

Hình 5.4: Mã vạch QR Code mất modul chỉ còn hai modul nối hai khối dữ liệu 66

Hình 5.5: Mã vạch QR Code bị mất hoa văn định vị hoặc bị xóa một phần 66

Hình 5.6: Một khu vực chứa thông tin định dạng bị mất dữ liệu 67

Hình 5.7: Mã vạch QR Code bị mất hết hoa văn liên kết 67

Hình 5.8: Mã vạch QR Code mất dữ liệu ngay trung tâm 68

Hình 5.9: Mã vạch QR Code bị bẩn 68

Hình 5.10: Mã vạch QR Code bị xóa mất ngẫu nhiên 68

Hình 5.11: Mã vạch QR Code bị mất một góc 69

Hình 5.12: Mã vạch QR Code mất thông tin phiên bản 69

Hình 5.13: Mã vạch QR Code mất thông tin định dạng 70

Hình 5.14: Mã vạch QR Code bị tách thành 3 vùng riêng biệt 70

Hình 5.15: Khối modul trung tâm hoa văn định vị bị tách ra 71

Hình 5.16: Mã vạch QR Code bị tách thành hai phần riêng biệt ngẫu nhiên 71

Hình 5.17: Giao diện iPhone khi dọc mã vạch kho hàng 72

Hình 5.18: Giao diện iPhone sau khi lưu dữ liệu 72

Hình 5.19: Giao diện iPhone khi lưu dữ liệu đã được nhập 73

Hình 5.20: Giao diện iPhone khi tìm dữ liệu đã được lưu 73

Hình 5.21: Giao diện iPhone khi tìm dữ liệu chưa được lưu 74

Hình 5.22: Giao diện iPhone sau khi lưu dữ liệu không phải mã vạch kho hàng 75

Trang 10

DANH MỤC BẢNG BIỂU

Bảng 2.1: Số lượng các từ mã cho các phiên bản mã vạch QR Code 9

Bảng 2.2: Bảng tương ứng thông tin phiên bản với bits nhị phân 11

Bảng 2.3: Tương ứng các modul và các bits thông tin QR Code phiên bản 13 12

Bảng 2.4: Tương ứng về mức độ sửa lỗi và số nhị phân: 13

Bảng 2.5: Các nhị phân bits tương ứng với mô hình mặt nạ 13

Bảng 2.6: Sự tương quan mức sửa lỗi, mô hình mặt nạ và số nhị phân 13

Bảng 2.7: Thông tin mô hình mặt nạ qua các bits nhị phân 18

Bảng 2.8: Vị trí các hoa văn liên kết trong mã vạch 20

Bảng 2.9: Thông tin về dung lượng dữ liệu 22

Bảng 2.10: Thông tin để chia các khối và các nhóm dữ liệu 22

Bảng 3.1: Thông tin mã vạch hiện tại 31

Bảng 3.2: Số lượng bits dữ liệu dùng trong mã hóa và giải mã 32

Bảng 3.3: Mã hóa nhị phân cho các loại ký tự 35

Bảng 3.4: Mã hóa và giải mã các ký tự dạng Alpha mode 36

Trang 11

MỞ ĐẦU

1 Đặt vấn đề

Hệ thống mã vạch đã được sử dụng rất nhiều trên thế giới và Việt Nam hiện nay, các loại mã một chiều (1D) thường được dùng trong các sản phẩm hàng hóa trong các siêu thị, các sản phẩm được mua bán trên thị trường nhằm giúp cho việc tính toán được nhanh chóng Trong khi đó, các loại mã vạch hai chiều được sử dụng làm phương tiện trong quảng bá thông tin, quản lý hàng điện tử, các dịch vụ tại cảng hàng không,… cũng như các ngân hàng đã sử dụng mã vạch hai chiều (2D) để thuận lợi trong quản lý thông tin khách hàng Mã vạch 1D đã trở nên quen thuộc với các doanh nghiệp tại Việt Nam, trong khi đó mã vạch 2D chỉ mới xuất hiện gần đây cùng với sự phát triển của điện thoại thông minh, các loại mã vạch 2D đã bắt đầu xuất hiện nhiều, tuy nhiên các tài liệu về mã vạch 2D tại nước ta cũng chưa có được nhiều, các phần mềm đọc mã vạch trên điện thoại chủ yếu với kết quả là xem thông tin của mã vạch hiện tại không thể lưu trữ và xử lý dữ liệu

Các kho hàng, siêu thị cũng đã và đang sử dụng các đầu đọc mã vạch chuyên dụng để nhập và xuất hàng vào kho, quá trình kiểm tra hàng trong kho được thực hiện bởi các nhân viên thông qua các thiết bị đọc mã vạch cầm tay và các dữ liệu trong các thiết bị này sẽ đưa về máy tính để xử lý [1] Tìm kiếm một giải pháp với việc sử dụng các thiết bị di động hiện có để thay thế các đầu đọc và giảm giá thành đầu tư cho các kho, tăng hiệu quả việc xử lý dữ liệu hàng hóa là giải pháp mà luận văn hướng đến

2 Mục đích nghiên cứu

Với lý do đó, đề tài này nhằm mục đích làm tài liệu tham khảo cho tất cả các doanh nghiệp, cá nhân có nhu cầu tìm hiểu mã vạch QR Code về cấu trúc, phương pháp mã hóa, giải mã, quản lý, sử dụng mã vạch và phương pháp giải mã trên các thiết bị chạy hệ điều hành iOS làm nền tảng cho việc sử dụng mã vạch này trên các thiết bị khác

Trang 12

3 Mục tiêu của đề tài

Đề tài hướng đến việc xây dựng một ứng dụng có thể nhận dạng được mã vạch

QR Code trên các thiết bị chạy iOS, cụ thể là iPhone Phân tích dữ liệu mã vạch để lưu trữ dữ liệu phục vụ công tác quản lý hàng tồn kho

Trang 13

Do mã vạch 1D có sự giới hạn nhất định về số lượng của dữ liệu được nhập vào mã vạch, việc sử dụng mã vạch phải được cho phép của các cơ quan quản lý nhà nước

Mã vạch 2 chiều là một lưới các ô vuông được xếp theo một trật tự nào đó tùy thuộc vào mỗi loại, thông tin được lưu trữ trên mã vạch 2D lớn hơn rất nhiều lần so với mã vạch 1D

Mã vạch 2 chiều có nhiều loại khác nhau và được mã hóa theo các chuẩn khác nhau, tuy nhiên có hai loại mã vạch được sử dụng nhiều nhất là mã vạch PDF417 [2], mã vạch Data matrix [3] và mã vạch QR Code hai loại mã này có cấu trúc khác nhau và hình dạng khác nhau, tuy nhiên hai loại mã này cùng sử dụng chung một thuật toán để mã hóa và giải mã

Hình 1.1: Mã vạch PDF417 và mã vạch QR Code

So với mã vạch 1D thì mã vạch 2D chứa được nhiều thông tin hơn là vì mã vạch 2D chứa được dữ liệu theo cả chiều ngang và chiều dọc, dữ liệu được lưu trữ

Trang 14

vào mã vạch theo dạng các modul đen và modul trắng, tùy theo các loại mã vạch khác nhau mà cách bố trí các modul này theo những hình thức khác nhau

2 Cấu tạo mã QR Code

Mã QR là một mã ma trận (hay mã vạch hai chiều) do công ty Denso Wave

(Nhật Bản) phát minh vào năm 1994 nhằm giúp cho việc nhập được nhiều thông tin

về sản phẩm của một số lượng lớn các thiết bị đang được sản xuất tại công ty Chữ

"QR" xuất phát từ "Quick Response", trong tiếng Anh có nghĩa là đáp ứng nhanh,

vì người tạo ra nó có ý định cho phép mã được giải mã ở tốc độ cao nên các mã vạch này dần được hoàn thiệ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 và trên thế giới

Format information: khu vực chứa thông tin định dạng của mã vạch, mỗi

phiên bản có cách sắp xếp dữ liệu vào ma trận khác nhau

Data and error correction keys: khu vực chứa thông tin dữ liệu và mã sửa

lỗi, trong mã vạch QR sử dụng phương pháp mã hóa Reed Solomon trong trường Galois 256 để mã hóa dữ liệu và các mã sửa lỗi cho mã vạch để đảm bảo thiết bị

Trang 15

Positio patterns: hoa văn định vị dùng trong quá trình xử lý ảnh nhận dạng

mã vạch

Alignment patterns: hoa văn liên kết

Timing: thời gian

Quiet zone: khu vực không dữ liệu

Hệ thống mã vạch QR code có 4 cấp độ sửa lỗi

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

Số đơn thuần tối đa 7.089 kí tự

Số và chữ cái tối đa 4.296 kí tự

Số nhị phân (8 bit) tối đa 2.953 byte

Kanji/Kana tối đa 1.817 kí tự

Mã vạch QR Code là nhãn hiệu đã được đăng ký của Denso Wave Incorporated

- Sử dụng tại siêu thị: người mua có thể quét mã QR Code để biết được hàm lượng dinh dưỡng của đồ ăn cần mua

Trang 16

- Sử dụng tại các hội thảo: người tham gia hội thảo có thể sử dụng QR Code thay cho Business Card của mình

- Sử dụng với các món ăn: để biết được công thức và cách chế biến món ăn

- Sử dụng với đồ vật cá nhân (xe, áo thun…): để cung cấp thông tin về chủ nhân…

- Sử dụng để thu tiền xe ô tô: thay vì việc phải dừng lại trạm thu phí, xe ô tô

có thể di chuyển qua trạm với tốc độ vừa phải mà vẫn nộp được phí nếu được gắn

QR Code trên xe

Ngoài ra, mã vạch QR Code còn được sử dụng trong quá trình quản lý sản xuất hàng hóa Tại các ngỏ nhập và xuất hàng hóa được bố trí các thiết bị chuyên dụng đọc mã vạch với tốc độ cao để đọc các mã vạch chạy trên băng chuyền, các thông tin nhập và xuất hàng hóa được quản lý được đưa vào cơ sở dữ liệu để xử lý thông tin Còn trong quá trình kiểm kho các thiết bị đọc mã vạch đọc và lưu trữ dữ liệu trên một thẻ nhớ, sau khi kiểm tra xong dữ liệu này được đưa vào máy tính để

xử lý lại

Tại Việt Nam việc nghiên cứu mã vạch đã có từ lâu và các loại mã vạch cũng

đã được nhà nước cho phép sử dụng Tuy nhiên các mã vạch hầu hết là sử dụng trong mục đích thương mại, quảng bá sản phẩm Công ty DENSO WAVE đã mô tả

về quản lý hàng tồn kho qua sử dụng mã vạch QR Code và các thiết bị chuyên dụng, việc sử dụng iPhone đã được giới thiệu với mức độ nhất định Các tài liệu tác giả tìm được hầu hết là nghiên cứu về mã vạch và ứng dụng mã vạch này trong quảng bá thông tin Luận văn này hướng tới việc sử dụng thay thế các đầu đọc mã vạch chuyên dùng bằng những thiết bị di động hiện có và sử dụng iPhone như một máy tính để xử lý các dữ liệu từ mã vạch cung cấp hỗ trợ cho công tác quản lý hàng tồn kho

Trang 17

CHƯƠNG 2 QUẢN LÝ MÃ VẠCH QR CODE

Chương này nhằm mục đích tìm hiểu các thành phần trong cấu trúc của mã vạch QR Code như: hoa văn định vị, hoa văn liên kết, các mô hình mặt nạ, các timing, thông tin định dạng, thông tin phiên bản, từ mã dữ liệu và từ mã sửa lỗi mã vạch

vị trí trên mã vạch QR Code góc trên bên phải, góc trên bên trái và góc dưới bên trái Các hoa văn định vị này luôn cố định và có mặt trong tất cả các phiên bản của

QR Code Bao bọc bên ngoài các hoa văn định vị này luôn là các modul màu trắng

để tách biệt các hoa văn này với phần còn lại của mã QR Tọa độ modul đầu tiên của mã vạch nằm tại vị trí trên cùng bên trái và có tọa độ là (0,0) [4]

Đi kèm với hoa văn định vị là các dãy timing có cấu tạo từ các modul đen, trắng xen kẽ nằm tại hàng thứ 6 và cột thứ 6 trong các mã vạch QR Code và không làm ảnh hưởng đến các hoa văn định vị, các dãy timing này được bắt đầu bằng một modul đen và kết thúc bằng một modul đen có tác dụng trong việc xác định mật độ các modul, có thể dùng trong xác định các phiên bản Dãy timing có mặt trong tất cả các phiên bản của mã vạch QR Code

Trang 18

Hình 2.1: Hoa văn định vị mã vạch

Nhờ các hoa văn định vị, các dãy timing này giúp cho việc phát hiện, nhận dạng và hướng của mã vạch QR Code được thuận lợi hơn Tại vị trí cột thứ 8, hàng ngay phía trên của hoa văn định vị góc dưới bên trái là một modul đen cho tất cả các phiên bản Các hoa văn định vị là thành phần không thể thiếu đối với mã vạch

QR Code Vị trí các hoa văn định vị là những vị trí độc lập và không bị ảnh hưởng bởi các mô hình mặt nạ và các thành phần khác trong mã vạch, nếu một hoa văn định vị bị mất thì quá trình đọc dữ liệu sẽ không thực hiện được

2 Các phiên bản và thông tin phiên bản của mã vạch

Nhận dạng thông tin phiên bản là bước dầu tiên để giải mã dữ liệu, có được thông tin phiên bản mới có thể tiến hành các bước giải mã tiếp theo Mã vạch QR Code bao gồm 4 phiên bản loại vi mã QR Code và 40 phiên bản QR Code, vi mã

QR là phiên bản thu nhỏ của tiêu chuẩn mã QR với ít tính năng hơn, các phiên bản được đánh dấu từ M1, M2, M3 và M4 Đối với mã QR Code thông thường được đánh dấu từ V1 đến V40 [4] Với phiên bản 1 là một ma trận gồm 21x21 modul, phiên bản 2 gồm ma trận với 25x25 modul, …, cho tới phiên bản 40 gồm ma trận 177x177 modul Khi giải mã QR Code việc đọc thông tin phiên bản giúp cho việc xác định các thông tin được nhanh, thông tin phiên bản còn cho biết cấu trúc xếp dữ liệu trong mã vạch Thông tin phiên bản đại diện cho nhiều thông tin mà ta có thể sử dụng được cho quá trình giải mã mã vạch như số modul trong mã vạch

Trang 19

Bảng 2.1: Số lượng các từ mã cho các phiên bản mã vạch QR Code

Phiên

bản

Kích thước modul

Số modul

mô hình mẫu

Modul thông tin phiên bản

và định dạng

Số lượng modul dữ liệu

Dung lượng

dữ liệu (từ mã)

Bits cuối

Trang 20

Thông tin phiên bản

Trong các mã QR Code từ phiên bản 1 đến 6 không có các thông tin phiên bản, các thông tin phiên bản này tìm được từ số lượng các timing và số lượng modul của ma trận mã vạch [4] Từ phiên bản 7 trở lên, thông tin phiên bản được định nghĩa bằng 18 bits nằm tại vị trí các bits thông tin phiên bản như trên hình, trong đó có 6 bits dữ liệu và 12 bits sửa lỗi được tính toán bằng cách sử dụng mã Golay (18,6), các thông tin này được xếp vào hai vị trí gồm hình chủ nhật 6x3 nằm phía trên bên phải và hình chủ nhật 3x6 nằm phía dưới bên trái, các thông tin được biễu diễn như hình bên dưới

Hình 2.2: Vị trí khối dữ liệu mô tả thông tin phiên bản

Các bits dữ liệu trong khu vực này được bố trí theo mô tả như sau:

0 1 2

3 4 5

6 7 8

Trang 21

;

a) Khối dữ liệu phía dưới bên trái

b) Khối dữ liệu phía trên bên phải

Hình 2.3: Sơ đồ bố trí các bits trong khu vực thông tin phiên bản

Với các bố trí các bits và tính toán như trên ta tính được chuỗi bits tương ứng với các phiên bản như sau:

Bảng 2.2: Bảng tương ứng thông tin phiên bản với bits nhị phân

Phiên bản Các bits thông tin Phiên bản Các bits thông tin

có thể nhận dạng thông tin phiên bản dựa vào bảng trên, nếu dữ liệu hình ảnh đã bị mất ta có thể sử dụng phương pháp phục hồi lỗi bằng việc giải mã Golay (18,6) Phương pháp giải mã Golay được thực hiện giống với giải mã Reed Solomon

Trang 22

Với các phiên bản từ 1 đến 6 ta có thể phát hiện thông tin phiên bản bằng cách kiểm tra số lượng các hoa văn liên kết và kích thước mã vạch Thông tin phiên bản được biết đầu tiên để định hướng cho quá trình giải mã mã vạch

Tương thích giữa các bits nhị phân thông tin phiên bản và vị trí các modul trong khu vực chứa thông tin phiên bản theo một quy luật nhất định

Chẳng hạn đối với phiên bản 13 có các bits 00 1101 1000 0100 0111 lúc này

10 bits từ mã sửa lỗi Dữ liệu của 15 bits này được lưu trữ tại những vị trí như được

mô tả trong hình vẽ [4], [6]

Trang 23

Hình 2.4: Khu vực thông tin định dạng

Các thông tin trong các bits dữ liệu này bao gồm: thông tin về mức độ sửa lỗi,

mô hình mặt nạ Với 4 mức độ sửa lỗi là L, M, Q và H cộng với 7 mô hình mặt nạ hiện có vì vậy ta có được 28 thông tin định dạng, mỗi thông tin định dạng được thể hiện qua 15 bits thông tin này

Bảng 2.4: Tương ứng về mức độ sửa lỗi và số nhị phân:

Mức độ sửa lỗi

Chỉ số số nhị phân

Với 2 bits mức độ sửa lỗi như bảng trên cộng với 3 bits dữ liệu về thông tin

mô hình mặt nạ ở bảng sau sẽ tạo ra mã sửa lỗi cho thông tin bản với 10 bits [4], [7]

Bảng 2.5: Các nhị phân bits tương ứng với mô hình mặt nạ

Bits nhị phân Số thập phân Loại mô hình

110 6 ((i j) mod 2 + (i j) mod 3) mod 2 = 0

111 7 ((i+j) mod 2 + (i j) mod 3) mod 2 = 0

Sau 2 bits thông tin mức độ sửa lỗi, 3 bits thông tin mô hình mặt nạ và 10 bits

mã sửa lỗi ghép lại cho ta các bits dữ liệu đại diện cho mức độ sửa lỗi và mô hình mặt nạ theo bảng dưới đây

Bảng 2.6: Sự tương quan mức sửa lỗi, mô hình mặt nạ và số nhị phân

Mô hình mặt nạ

Thông tin bits đã

mã hóa

L 0 111011111000100 Q 0 011010101011111

Trang 24

có thể áp dụng phương pháp phục hồi lại thông tin định dạng, đó là phương pháp giải mã BCH (15,5) trong trường GF(24) [4]

Sau khi dữ liệu được đưa vào vùng chứa thông tin sẽ được XOR với mặt nạ

100010001000101 cho ra các bits giá trị tương ứng với các modul thực tế trong mã vạch Thông tin định dạng được đọc đầu tiên trong quá trình nhận dạng mã vạch

4 Mã sửa lỗi

Mã hóa dữ liệu trong QR Code sử dụng thuật toán mã hóa sửa lỗi Reed Solomon giúp cho mã vạch có thể phục hồi lại mã vạch có xảy ra lỗi trên mã vạch khi in ấn và trong khả năng có thể các bộ giải mã sẽ sửa các lỗi này thành thông tin đúng Mã hóa sửa sai được sử dụng trong QR Code là mã Reed Solomon trong trường Galois 256 (kí hiệu là GF(256)) [4]

a) Trường Galois

Trang 25

Mã QR Code sử dụng trong trường hữu hạn Galios được tính toán với bits không ngoan modulo 2 và byte khôn ngoan modulo 100011101(285), điều này có nghĩa là sử dụng trường Galois 28 hay còn được viết là GF(256)

Trường hữu hạn còn có tên gọi khác là trường Galois (Galois Field) Số phần tử trong một trường Galois có thể là một số nguyên tố hoặc lũy thừa của một số nguyên tố Chẳng hạn GF(7), GF(8) = GF(23) và GF(28) có số phần tử tương ứng là

7, 8 và 256 là các trường Galois, còn GF(6) có số phần tử là 6 không phải là một trường Galois

Các con số trong GF(256) nằm trong khoảng từ 0 đến 255, các số trong

trường được biểu diễn bằng một byte 8 bits với số lớn nhất là 11111111 (255), bản

thân số 256 còn nằm ngoài GF(256) Do vậy các phép toán nằm trong trường này điều cho ra kết quả có thể được biểu diễn bằng byte 8 bits

Trong các phép toán trong GF(256) được thực hiện bằng phép XOR với nhau, khi các giá trị lớn hơn 255 ta cần sử dụng byte khôn ngoan 100011101, chẳng hạn:

Trang 26

Có hai lớp trong mã BCH có hai lớp con là mã BCH nhị phân và mã BCH không nhị phân Trong số những mã BCH không nhị phân, quan trọng nhất là mã Reed Solomon (RS) Mã BCH không nhị phân là mã BHC trong đó giá trị của các hệ số được lấy từ trường Galois GF(2m) Mã RS được Reed và Solomon giới thiệu đầu tiên vào năm 1960 Một hệ thống mã hóa và giải mã được mô tả [9] như sau:

Hình 2.5: Nguyên lý mã hóa – giải mã Reed Solomon

Bộ mã hóa RS nhận một khối thông tin rồi thêm vào các bits “dư” Lỗi xuất hiện trong khi truyền dẫn hoặc lưu trữ do nhiều nguyên nhân (ví dụ như vết xước, mất vùng dữ liệu, bị đen một khu vực nào đó trên mã vạch) Bộ giải mã RS sẽ xử lý từng khối dữ liệu và cố gắn sửa lỗi để khôi phục lại dữ liệu ban đầu Số lượng và kiểu lỗi có thể sửa được phụ thuộc vào các đặc tính của mã RS đó

Một mã RS thường được ký hiệu là RS(n,k) với các modul m bits, trong đó n

là tổng số modul trong một khối mã và k là số lượng thông tin hay số modul dữ liệu, mỗi khối m bits, rồi thêm vào (n – k) khối dữ liệu kiểm tra để tạo thành một từ mã n modul Số lượng lỗi tối đa trong một khối mà mã RS(n,k) có thể đảm bảo sửa được

là t = (n – k)/2 Thông thường n = 2m – 1, nếu n nhỏ hơn số này thì được gọi là mã rút gọn Tất cả các thuật toán Reed Solomon đối với mã vạch QR Code đều sử dụng

mã RS trong trường GF(256) là trường mở rộng của GF(2) với một khối dài 8 byte (m = 8)

Một mã RS được đặc trưng bởi hai đa thức: đa thức trường và đa thức sinh Đa thức trường xác định trường Galois mà các modul là thành phần của trường đó Đa thức sinh định nghĩa các modul kiểm tra được sinh ra thế nào

Đa thức trường dùng để tạo ra trường Galois, các hệ số của đa thức mà các bits

nhị phân tương ứng với các vị trí xác định của đa thức Ví dụ: x 8 + x 4 + x 3 + x 2 + 1

Giao tiếp thiết bị

Lỗi

Trang 27

Một từ mã RS được tạo ra từ một đa thức gọi là đa thức sinh, các mã từ hợp lệ điều có thể chia hết cho đa thức sinh, dạng tổng quát của một đa thức sinh của mã

RS gốc sửa sai t lỗi có chiều dài 2m – 1 là:

( ) = – ( − ) … ( − ) (2.6) trong đó α là phần tử của trường GF(256)

Từ mà Rs sẽ được tạo ra theo công thức c(x) = g(x) i(x)

Với g(x): đa thức sinh

i(x): khối thông tin c(x): một mã từ hợp lệ

Trong mã vạch QR Code các từ mã sửa lỗi có thể sửa hai loại từ mã là từ mã lỗi và từ mã bị xóa Từ mã lỗi là từ mã được chuyển đổi từ đen sang trắng hoặc ngược lại, còn từ mã bị xóa là từ mà không phân biệt được đó là từ mã đen hay từ

mã trắng vì lúc này tại các từ mã đó là màu trắng

Số lượng từ mã lỗi và từ mã bị xóa phải thỏa mãn công thức sau:

Trong đó:

= số lượng từ mã bị xóa = số lượng từ mã lỗi = số lượng từ mã sửa lỗi giá trị của được cho trong Phụ lục B [4], [6]

Trang 28

bits 10, 11, 12 Sự tương quan của các bit 12, 11, 10 trên mô hình mặt nạ và các bits giá trị, cũng như các mô hình mặt nạ được mô tả như sau:

Bảng 2.7: Thông tin mô hình mặt nạ qua các bits nhị phân

110 0 1 1 ((i j) mod 2 + (i j) mod 3) mod 2 = 0

111 0 1 0 ((i+j) mod 2 + (i j) mod 3) mod 2 = 0

Tám mô hình mặt nạ được thể hiện như sau:

c) i mod 3 = 0 d) (i + j) mod 3 = 0

Trang 29

Hình 2.7: Vị trí thông tin mô hình mặt nạ

Quá trình loại mặt nạ cho mã vạch được thực hiện bằng cách dùng thuật toán XOR giữa các bits dữ liệu trên mã vạch với các bits trên mô hình mặt nạ tương ứng

Do mô hình mặt nạ được cố định cho từng phiên bản vì vậy mô hình mặt nạ còn giúp cho việc phục hồi số lượng bits dữ liệu khi mã vạch bị mất một vùng dữ liệu [4], [6]

Trang 30

Trong quá trình mã hóa dữ liệu, cả tám mặt nạ điều được sử dụng và đưa vào, kết hợp với các modul dữ liệu tạo ra 8 mã vạch cụ thể và lựa chọn một mã vạch tốt nhất mà mô hình mặt nạ tạo ra Tuy nhiên, trong luận văn này ta không quan tâm nhiều đến việc lựa chọn mô hình mặt nạ như thế nào để có mã vạch tốt nhất mà chỉ

sử dụng loại mô hình mặt nạ cho công tác giải mã dữ liệu

6 Hoa văn liên kết

Hoa văn liên kết là một khối giống như hoa văn định vị nhưng là ma trận 5x5 các modul trong đó các modul đen – trắng – đen – trắng – đen được xếp theo tỉ lệ 1:1:1:1:1, mục đích của các hoa văn này giúp cho các thiết bị đọc các mã vạch dễ dàng xác định số lượng mật độ các modul [4], [6]

Hình 2.8: Các hoa văn liên kết và tọa độ hoa văn của phiên bản 7

Phiên bản 1 không có các hoa văn liên kết, từ phiên bản 2 đến phiên bản 6 chỉ duy nhất có một hoa văn liên kết, từ phiên bản 7 trở lên số lượng các hoa văn liên kết sẽ tăng lên Vị trí các hoa văn liên kết trong các phiên bản được xác định theo bảng sau

Bảng 2.8: Vị trí các hoa văn liên kết trong mã vạch

Phiên

bản

Số lượng hoa văn liên kết

Tọa độ hàng và cột của modul trung

Trang 32

7 Cấu trúc dữ liệu trong mã vạch

a) Chia các nhóm và các khối cho các từ mã dữ liệu

Trong mỗi phiên bản mã vạch các dữ liệu được bố trí theo một trình tự khác nhau, dữ liệu được phân theo thành từng nhóm, một nhóm gồm 2 khối dữ liệu, mỗi nhóm dữ liệu sẽ chứa một số lượng từ mã nhất định tùy theo từng phiên, mỗi từ mã gồm có tám bits dữ liệu Số nhóm dữ liệu cho mỗi phiên bản và mức độ sửa lỗi được chia theo số lượng khối dữ liệu sửa lỗi trong phục lục B

Lấy ví dụ về cách chia các nhóm, các khối dữ liệu theo tường phiên bản dựa vào bảng 1 và phụ lục B [4], [6] Xét về phiên bản 7Q ta có các thông tin sau:

Bảng 2.9: Thông tin về dung lượng dữ liệu

Modul thông tin phiên bản

và định dạng

Số lượng modul dữ liệu

Dung lượng

dữ liệu (từ mã)

Bits cuối

Số lượng

từ mã sửa lỗi

Giá trị của

p

Số lượng các khối sửa lỗi

Từ mã sửa lỗi cho mổi khối (c, k, r) a

4

(32,14,9) (33,15,9) Theo như bảng 2.10 thì mã vạch này có 6 khối dữ liệu

Trong đó:

c: tổng số từ mã

k: số từ mã dữ liệu

r: khả năng sửa lỗi

Từ các dữ liệu trên ta tính được:

Trang 33

Số lượng từ mã dữ liệu cho nhóm 1 và nhóm 2 là 14

Số lượng từ mã dữ liệu cho nhóm 3, nhóm 4, nhóm 5, nhóm 6 là 15

Số lượng từ mã sửa lỗi cho nhóm 1 và nhóm 2 là 18

Số lượng từ mã sửa lỗi cho nhóm 3, nhóm 4, nhóm 5, nhóm 6 là 18

Vị trí xếp xen kẻ các từ mã như sau:

Trang 34

Từ mã dữ liệu Từ mã sửa lỗi

3 D31 D32 … D45 D46 D47 D48 E37 E38 … E54Khối

4 D49 D50 … D63 D64 D65 D66 E55 E56 … E72Khối

5 D67 D68 … D81 D82 D83 D84 E73 E74 … E90Khối

6 D85 D86 … D99 D100 D101 D102 E91 E92 … E108

Hình 2.9: Sơ đồ từ mã dữ liệu các từ mã trong mã vạch phiên bản 7

Các khối dữ liệu trên được bố trí xen kẻ theo bảng trên vào ma trận dữ liệu của

mã vạch theo từng khối 8 bits và khối đầu tiên được dặt ngay ngóc phải - bên dưới,

bề rộng của mỗi khối dữ liệu là 2 modul Chiều của các khối xếp trong mã vạch theo hướng xếp từ dưới – lên trên – qua trái – xuống dưới – qua trái – lên trên - … Khi gặp các hoa văn định liên kết có hai trường hợp xảy ra: nếu bề rộng của hoa văn che hết bề rộng của khối dữ liệu thì ta bỏ qua hoa văn và tiếp tục cho các khối kế tiếp, nếu bề rộng của hoa văn không che hết khối dữ liệu thì khối dữ liệu được tiếp tục với bề rộng một modul, đến khi nào đủ 8 modul cho khối dữ liệu Ngoài ra, khi xếp các khối dữ liệu ở những vị trí của hoa văn định vị, mẫu timing, thông tin định dạng, thông tin phiên bản cũng theo quy luật như xếp các khối ở vị trí hoa văn liên kết Các khối từ mã sửa lỗi khi đưa vào mã vạch cũng xếp theo quy tắc này

Trang 35

Hình 2.10: Sơ đồ bố trí các khối từ mã trong phiên bản 7Q b) Xếp các modul vào các khối dữ liệu

Các modul khi xếp vào các khối dữ liệu tuân theo quy tắc để đảm bảo tính thống nhất khi nhận dạng mã vạch

- Khi các modul nằm trong khối dữ liệu mà chiều của khối dữ liệu đó với các khối kết tiếp đang đi theo hướng lên trên thì modul đầu tiên nằm phía dưới bên phải

và tiếp đó là qua trái – lên trên bên phải – qua trái – … Nếu modul nằm trong khối

dữ liệu mà chiều của khối dữ liệu đó với các khối kết tiếp đang đi theo hướng xuống dưới thì modul đầu tiên nằm phía trên bên trái và tiếp đó là qua phải – xuống dưới bên trái – qua phải – vv

a) Theo hướng lên trên b) Hướng xuống dưới

Hình 2.11: Vị trí các modul dữ liệu trong khối dữ liệu

- Khi các khối dữ liệu lên đến trên cùng hoặc xuống phía dưới cùng thì các modul kết tiếp sẽ xếp tiếp theo bên trái và vị trí các modul bị đảo lộn

Trang 36

Hình 2.12: Vị trí các modul trong khối dữ liệu nằm ngang phía trên và dưới

- Khi đi qua các hoa văn liên kết thì vẫn giữ hướng đúng của các modul và bỏ qua những vị trí bị che khuất

a) Hai từ mã đi qua hoa văn b) Một từ mã đi qua hoa văn

Hình 2.13: Bỏ qua các modul bị che khuất tại các hoa văn liên kết

8 Kích thước cho việc in ấn mã vạch

Để các thiết bị di động có thể quét các mã vạch được tốt đòi hỏi nhiều yếu tố phải đảm bảo đúng chuẩn thì hiệu quả mới được cao Trong đó, chất lượng máy ảnh

và mật độ dữ liệu trên mã vạch, kích thước mã vạch, khoảng cách từ máy quét đến

mã vạch, ánh sáng trong môi trường quét ảnh hưởng rất nhiều đến quá trình quét mã vạch [10]:

 Chất lượng máy ảnh: trong tất cả các dòng điện thoại thông minh được sử dụng để quét mã vạch QR Code thì các thiết bị chạy hệ điều hành iOS được sử dụng khá phổ biến Theo thống kê từ quý 1 năm 2011 đến quý 2 năm 2012 các thiết bị iPhone được sử dụng quét mã QR Code tăng đáng kể và hơn hẳn so với các thiết bị

Trang 37

Hình 2.14: So sánh các thiết bị quét mã QR Code

 Khoảng cách từ mã vạch đến thiết bị quét: quyết định kích thước mã vạch được hiện lên thiết bị quét, để mã vạch được quét với tốt nhất thì mã vạch phải xuất hiện trên khung hình ít nhất 1cm bên trong khung hình của thiết bị quét, khi khoảng cách quét tăng cần tăng kích thước mã vạch Đối với các điện thoại thông minh khoảng cách quét và kích thước mã vạch tốt nhất là theo tỉ lệ 10:1 tức là nếu kích thước mã vạch tối thiểu là 2,5cm thì koảng cách quét là 250cm Ví dụ, với một bảng quảng cáo ở vị trí 20m tính từ nơi người quét đến bảng quảng cáo thì kích thước mã vạch cần là 2m Nếu điều kiện ánh sáng, máy ảnh, mật độ dữ liệu … không tốt thì tỉ

lệ này giảm xuống rất nhiều, có khi chỉ đạt tỉ lệ 6:1, các thông số trên này được tính cho mã vạch phiên bản 2

 Mật độ dữ liệu là số hàng và cột các modul dữ liệu trên một đơn vị diện tích, nếu với một kích thước mã vạch mà sử dụng phiên bản mã vạch lớn thì mật độ dữ liệu sẽ cao, cách tốt nhất để máy ảnh điện thoại còn có thể quét được là kích thước modul là 0,4mm Phiên bản 2 là phiên bản được chọn làm chuẩn khi xác định mật

độ dữ liệu

Công thức tính kích thước nhỏ nhất của mã vạch là:

Kích thước QR Code = (khoảng cách quét/ tỉ lệ khoảng cách)* mật độ dữ liệu

Trong đó:

- Tỉ lệ khoảng cách là tỉ lệ khoảng cách quét và mã vạch

Trang 38

- Mật độ dữ liệu là số lượng hàng, cột mã vạch chia cho 25 ( số lượng hàng cột chia của mã vạch phiên bản 2)

 Ánh sáng cũng là một yếu tố ảnh hưởng đến rất nhiều trong quá trình đọc mã vạch, với một nơi ánh sáng yếu sẽ làm cho việc quét mã vạch chậm hơn hoặc có thể

là không quét được

Trang 39

CHƯƠNG 3 KỸ THUẬT GIẢI MÃ QR CODE

Chương này trình bày về các bước giải mã và cách giải mã cụ thể một mã vạch phiên bản 1 cho chuỗi ký tự “NHAN DANG QR CODE” với mã vạch không

bị lỗi và thực hiện trực tiếp trên giấy Mô tả thuật toán phát hiện lỗi và phục hồi mã

bị lỗi Reed Solomon được sử dụng trong thư viện ZBar dùng cho mã vạch QR Code

1 Quy trình giải mã

Tổng quan về quy trình giải mã được mô ta như sau [4], [6]:

a) Khi nhận được ảnh và phát hiện biểu tượng mã vạch thông qua các hoa văn định vị, ta có thể chia tách mã vạch thành một mảng gồm các modul trắng và đen tương tứng với giá trị “0” và “1”

b) Gỡ mặt nạ và đọc nhanh các thông tin định dạng hiện có, nếu có sai lệch trong quá trình đọc nhanh tiến hành sửa lỗi trên các modul để có được các thông tin chính xác Xác định được mức hiệu chỉnh lỗi và mô hình mặt nạ cho mã vạch c) Đọc các thông tin phiên bản tại khu vực chứa thông tin phiên bản (chỉ áp dụng cho các mã vạch từ phiên bản 7 trở lên)

d) Sử dụng thuật toán XOR giữa các bits tại khu vực chứa dữ liệu mã hóa và

mô hình mặt nạ vừa tìm được ở trên

e) Đọc dữ liệu và của mã vạch đúng với các phiên bản, khôi phục dữ liệu và các

từ mã sửa lỗi

f) Phát hiện lỗi bằng cách sử dụng các từ mã lỗi và các thông tin mức độ sửa lỗi Nếu có lỗi thì tiến hành sửa lỗi

g) Phân chia các từ mã sửa lỗi theo các cấu trúc của từng loại dữ liệu

h) Cuối cùng, giải mã các dữ liệu theo đúng các nguyên tắc giải mã để được kết quả như mong muốn; kết quả này là kết quả đầu ra của quy trình giải mã

Lưu đồ giải thuật của quá trình giải mã [4], [6]:

Trang 40

Hình 3.1: Giải thuật giải mã

Áp dụng kỹ thuật giải mã cho mã vạch cụ thể

Sau đây ta giải mã từ mã vạch thành các chuỗi ký tự đúng theo mong muốn ban đầu Giải mã cho mã vạch của chuỗi ký tự “NHAN DANG QR CODE” có mã

Ngày đăng: 31/01/2021, 23:54

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] D. Wave, “Solutions and Case Studies,” Denso Wave, 2013. [Online]. Available: http://www.denso-wave.com/en/solution/typeofuse/process-managemnt.html Sách, tạp chí
Tiêu đề: Solutions and Case Studies,” "Denso Wave
[2] Q. Song and L. Liu, “Decoding of PDF417 Barcode in Identity Authentication based on LabVIEW,” Universitas Ahmad Dahlan, vol Sách, tạp chí
Tiêu đề: Decoding of PDF417 Barcode in Identity Authentication based on LabVIEW,” "Universitas Ahmad Dahlan
[3] D. Buckley, W. Yi, and F. Sharkey, GS1 DataMatrix An introduction and technical overview of the most advanced Th crucial guideline to define an application standard. GS1 Global Office, 2011 Sách, tạp chí
Tiêu đề: GS1 DataMatrix An introduction and technical overview of the most advanced Th crucial guideline to define an application standard
[4] I. J. 1/SC 31 N1915, Information technology — Automatic identification and data capture techniques — QR Code 2005 bar code symbology specification, no. 40. ISO/IEC Standar International, 2005 Sách, tạp chí
Tiêu đề: Information technology — Automatic identification and data capture techniques — QR Code 2005 bar code symbology specification
[5] BestCom, “Chuyên San Mã Số Mã Vạch.” [Online]. Available: http://masomavach.vn/ Sách, tạp chí
Tiêu đề: Chuyên San Mã Số Mã Vạch
[6] I. 18004:2000, Information technology — Automatic identification and data capture techniques — Bar code symbology — QR Code, vol. 2000.ISO/IEC Standar International, 2000 Sách, tạp chí
Tiêu đề: Information technology — Automatic identification and data capture techniques — Bar code symbology — QR Code
[7] P. Kieseberg, M. Leithner, M. Mulazzani, L. Munroe, S. Schrittwieser, M. Sinha, and E. Weippl, “QR code security,” Proc. 8th Int. Conf. Adv.Mob. Comput. Multimed. - MoMM ’10, p. 430, 2010 Sách, tạp chí
Tiêu đề: QR code security,” "Proc. 8th Int. Conf. Adv. "Mob. Comput. Multimed. - MoMM ’10
[8] C. Eby, “QR Code Tutorial.” [Online]. Available: http://www.thonky.com/qr-code-tutorial/ Sách, tạp chí
Tiêu đề: QR Code Tutorial
[9] I. R. Martyn Riley, “reed-solomon codes,” Communications, 1998. [Online]. Available: http://www.cs.cmu.edu/afs/cs/project/pscico-guyb/realworld/www/reedsolomon/reed_solomon_codes.html Sách, tạp chí
Tiêu đề: reed-solomon codes,” "Communications
[10] Admin, “QRStuff QR Codes Go Visual,” 2013. [Online]. Available: http://www.qrstuff.com/blog/category/general Sách, tạp chí
Tiêu đề: QRStuff QR Codes Go Visual
[11] R. S. Lim, “A Decoding Procedure for the Reed - Solomon Codes,” Sách, tạp chí
Tiêu đề: A Decoding Procedure for the Reed - Solomon Codes
[13] H. A. E. A. Elsaid, “Design and Implementation of Reed-Solomon Decoder using Decomposed Inversion less Berlekamp-Massey Algorithm by,” Cairo University Giza, 2010 Sách, tạp chí
Tiêu đề: Design and Implementation of Reed-Solomon Decoder using Decomposed Inversion less Berlekamp-Massey Algorithm by
[14] K. Homkajorn, M. Ketcham, and S. Vongpradhip, “A Technique to Remove Scratches from QR Code Images,” pp. 127–131, 2012 Sách, tạp chí
Tiêu đề: A Technique to Remove Scratches from QR Code Images
[15] J. Brown, “ZBar bar code reader,” 2013. [Online]. Available: http://zbar.sourceforge.net/about.html Sách, tạp chí
Tiêu đề: ZBar bar code reader
[16] A. Chaurasia, “QR Code reader/scanner for iphone app in objective c (source code) using ZBarSDK,” 2013. [Online]. Available:http://iphonenativeapp.blogspot.com/2011/07/qr-code-readerscanner-for-iphone-app-in.html Sách, tạp chí
Tiêu đề: QR Code reader/scanner for iphone app in objective c (source code) using ZBarSDK
[17] J. A. Brannan and B. Ward, iOS SDK Programming: A Beginner’s Guide. 2011 Sách, tạp chí
Tiêu đề: iOS SDK Programming: A Beginner’s Guide
[18] J. Bucanek, Professional Xcode 3. Wiley Publishing, Inc., 2010 Sách, tạp chí
Tiêu đề: Professional Xcode 3
[19] A. Allan, Learning iPhone Programming. O’Reilly Media, Inc., 2010 Sách, tạp chí
Tiêu đề: Learning iPhone Programming
[20] R. Morris, “Dr Richard Hipp, Geek of the Week,” 2008. [Online]. Available: https://www.simple-talk.com/opinion/geek-of-the-week/dr-richard-hipp,-geek-of-the-week/. [Accessed: 11-Feb-2013] Sách, tạp chí
Tiêu đề: Dr Richard Hipp, Geek of the Week
[21] Tutorialspoint, “iOS - SQLite Database,” 2013. [Online]. Available: http://www.tutorialspoint.com/ios/ios_sqlite_database.htm. [Accessed:11-Feb-2013] Sách, tạp chí
Tiêu đề: iOS - SQLite Database

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w