รหัสคิวอาร์


รหัสคิวอาร์ (อังกฤษ: QR code ย่อจาก Quick Response code) หรือ คิวอาร์โค้ด เป็นเครื่องหมายการค้าของบาร์โค้ดเมทริกซ์ (หรือบาร์โค้ดสองมิติ) ถูกคิดค้นโดยมาซาฮิโระ ฮาระ วิศวกรชาวญี่ปุ่นในปี 1994[1] เดิมออกแบบสำหรับอุตสาหกรรมยานยนต์ในญี่ปุ่น บาร์โค้ดเป็นป้ายสำหรับให้เครื่องอ่านด้วยแสงที่บรรจุข้อมูลเกี่ยวกับสิ่งของที่ตัวรหัสติดอยู่ รหัสคิวอาร์มีมาตรฐานของหลักการเข้ารหัส 4 แบบ (ตัวเลข อักขระอักษรเลข ไบต์/เลขฐานสอง และคันจิ) สำหรับเก็บข้อมูลดิบ[2]
รหัสคิวอาร์ยังเป็นที่นิยมนอกเหนือจากอุตสาหกรรมยานยนต์ เนื่องจากความสามารถในการอ่านเร็วและพื้นที่เก็บข้อมูลที่มากกว่าเมื่อเทียบกับบาร์โค้ดรหัสผลิตภัณฑ์สากล8114 รหัสคิวอาร์นำมาใช้ในการตามรอยผลิตภัณฑ์ การระบุสิ่งของ การระบุเวลา การจัดการเอกสาร และการตลาดทั่วไป[3]
รหัสคิวอาร์ประกอบด้วยมอดูลสีดำ (จุดสี่เหลี่ยม) จัดวางในกริดบนพื้นหลังสีขาว ซึ่งสามารถอ่านได้ด้วยเครื่องมืออ่านภาพ (เช่น กล้องถ่ายรูป เครื่องสแกน เป็นต้น) และประมวลผลด้วยกระบวนการแก้ไขข้อผิดพลาดรี้ด-โซโลมอน จนกระทั่งภาพถูกแปลความหมายอย่างเหมาะสม และถอดออกมาจากรหัสที่นำเสนอเป็นภาพในแนวตั้งและแนวนอนจนได้ข้อมูลที่ต้องการ[3]
ความจุ
[แก้]| รหัส | ประเภท | จำนวนบิตต่อตัวอักษร | ความจุข้อมูลรหัสคิวอาร์[4] |
|---|---|---|---|
| 0001 | ตัวเลขอย่างเดียว | 10บิตต่อ3ตัวออักษร | มากสุด 7,089 ตัวอักษร |
| 0010 | ตัวอักษร ผสม ตัวเลข | 11บิตต่อ2ตัวอักษร | มากสุด 4,296 ตัวอักษร |
| 0100 | ไบนารี (8 บิต) | 8บิตต่อตัวอักษร | มากสุด 2,953 ไบต์ |
| 1000 | คันจิ/คะนะ | 13บิตต่อตัวอักษร | มากสุด 1,817 ตัวอักษร |
| ความจุการแก้ไขความผิดพลาด | |
|---|---|
| Level L | 7% ของรหัสที่สามารถทำให้กลับมาสมบูรณ์ได้ |
| Level M | 15% ของรหัสที่สามารถทำให้กลับมาสมบูรณ์ได้ |
| Level Q | 25% ของรหัสที่สามารถทำให้กลับมาสมบูรณ์ได้ |
| Level H | 30% ของรหัสที่สามารถทำให้กลับมาสมบูรณ์ได้ |
วิธีเข้ารหัส
[แก้]| รหัส | อักษร | รหัส | อักษร | รหัส | อักษร | รหัส | อักษร | รหัส | อักษร |
|---|---|---|---|---|---|---|---|---|---|
| 00 | 0 | 09 | 9 | 18 | I | 27 | R | 36 | วรรค |
| 01 | 1 | 10 | A | 19 | J | 28 | S | 37 | $ |
| 02 | 2 | 11 | B | 20 | K | 29 | T | 38 | % |
| 03 | 3 | 12 | C | 21 | L | 30 | U | 39 | * |
| 04 | 4 | 13 | D | 22 | M | 31 | V | 40 | + |
| 05 | 5 | 14 | E | 23 | N | 32 | W | 41 | – |
| 06 | 6 | 15 | F | 24 | O | 33 | X | 42 | . |
| 07 | 7 | 16 | G | 25 | P | 34 | Y | 43 | / |
| 08 | 8 | 17 | H | 26 | Q | 35 | Z | 44 | : |
- 1 – บทนำ
- 2 – โครงสร้าง
- 3 – วิธีเข้ารหัส
- 4 – ระดับและ Masks
- 5 – เกณฑ์วิธี
ลิขสิทธิ์
[แก้]
รหัสคิวอาร์ไม่มีลิขสิทธิ์ แต่กำหนดและเผยแพร่ ในลักษณะของมาตรฐานไอเอสโอ โดยทางเดนโซเป็นผู้ถือสิทธิบัตรของรหัสคิวอาร์ แต่มิได้สงวนลิขสิทธิ์แต่อย่างใด[5]
ประโยชน์ในการนำไปใช้งานสื่อสารข้อมูล
[แก้]ส่วนนี้รอเพิ่มเติมข้อมูล คุณสามารถช่วยเพิ่มข้อมูลส่วนนี้ได้ |
การออกแบบ
[แก้]- ความหมายของข้อมูลรูปแบบ ในรูปด้านบน ข้อมูลรูปแบบได้รับการปกป้องด้วยรหัส BCH (15,5) ซึ่งสามารถแก้ไขค่าผิดพลาดได้ถึง 3 บิต ความยาวทั้งหมดของรหัสคือ 15 บิต โดย 5 บิตเป็นบิตข้อมูล (2 ระดับ EC + 3 แบบรูปหน้ากาก) และ 10 บิตพิเศษสำหรับการแก้ไขค่าผิดพลาด แบบรูปหน้ากาก สำหรับ 15 บิตนี้คือ: [ 101010000010010 ] โปรดทราบว่าเราแมปค่าที่ถูกปิดบังโดยตรงกับความหมายที่นี่ ซึ่งแตกต่างจากภาพที่ 4 "ระดับและหน้ากาก" ที่หมายเลขแบบรูปหน้ากากเป็นผลมาจากการวางบิตหน้ากากที่ 3 ถึง 5 [ 101 ] ทับบิตข้อมูลรูปแบบที่ 3 ถึง 5 ของรหัส QR
- การจัดวางข้อความภายในสัญลักษณ์ QR เวอร์ชัน 1 (21×21) ข้อความถูกเข้ารหัสโดยใช้รหัส Reed Solomon (255,248) (ย่อเป็นรหัส (26,19) โดยใช้ "padding") ซึ่งสามารถแก้ไขค่าผิดพลาดได้สูงสุด 2 ไบต์ คำรหัสทั้งหมด 26 คำ ประกอบด้วยไบต์แก้ไขค่าผิดพลาด 7 ไบต์ และไบต์ข้อมูล 17 ไบต์ นอกเหนือจาก "Len" (ฟิลด์ 8 บิต), "Enc" (ฟิลด์ 4 บิต) และ "End" (ฟิลด์ 4 บิต) สัญลักษณ์นี้สามารถแก้ไขค่าผิดพลาดระดับ L ได้ ระดับ EC คือ 01(L) และรูปแบบมาสก์คือ 001 ดังนั้น 5 บิตแรกของข้อมูลรูปแบบคือ 01001 (โดยไม่มีมาสก์รูปแบบ) หลังจากมาสก์แล้ว 5 บิตจะกลายเป็น 11100 ดังที่เห็นในภาพนี้
- สัญลักษณ์ขนาดใหญ่ (เวอร์ชัน 3, 29×29) แสดงบล็อกที่สลับกัน ข้อความมีข้อมูล 26 ไบต์ และเข้ารหัสโดยใช้บล็อกรหัส Reed-Solomon สองบล็อก แต่ละบล็อกเป็นรหัส Reed-Solomon (255,233) (ย่อเป็นรหัส (35,13)) ซึ่งสามารถแก้ไขค่าผิดพลาดได้สูงสุด 11 ไบต์ในการประมวลผลครั้งเดียว โดยประกอบด้วยข้อมูล 13 ไบต์ และไบต์แก้ไขค่าผิดพลาด 22 ไบต์ที่ต่อท้ายข้อมูล บล็อกรหัส Reed-Solomon ขนาด 35 ไบต์สองบล็อกถูกสลับกัน (ส่งผลให้มีรหัสทั้งหมด 70 ไบต์) ดังนั้นจึงสามารถแก้ไขค่าผิดพลาดได้สูงสุด 22 ไบต์ สัญลักษณ์นี้บรรลุระดับการแก้ไขค่าผิดพลาดระดับ H
ต่างจากบาร์โค้ดแบบหนึ่งมิติรุ่นเก่าที่ออกแบบมาเพื่อสแกนด้วยลำแสงแคบๆ รหัส QR จะถูกตรวจจับโดย เซ็นเซอร์ภาพ ดิจิทัลสองมิติ จากนั้นจึงวิเคราะห์แบบดิจิทัลโดยโปรเซสเซอร์ที่ตั้งโปรแกรมไว้ โปรเซสเซอร์จะค้นหารูปแบบตัวค้นหาสามรูปแบบ ซึ่งแต่ละรูปแบบประกอบด้วยสี่เหลี่ยมจัตุรัสซ้อนกันสามอันที่มีความคมชัดต่างกันที่มุมบนซ้าย มุมบนขวา และมุมล่างซ้ายของภาพรหัส QR [6] โดยใช้สี่เหลี่ยมจัตุรัสขนาดเล็กกว่า (หรือหลายสี่เหลี่ยมจัตุรัส) ใกล้กับมุมที่สี่เพื่อปรับขนาด การวางแนว และมุมมองของภาพให้เป็นมาตรฐาน จากนั้นจุดเล็กๆ ทั่วทั้งรหัส QR จะถูกแปลงเป็นเลขฐานสองและตรวจสอบความถูกต้องด้วยอัลกอริทึมแก้ไขข้อผิดพลาด
ความสามารถด้านข้อมูล
[แก้]ปริมาณข้อมูลที่สามารถแสดงได้ด้วยสัญลักษณ์ QR Code ขึ้นอยู่กับประเภทข้อมูล ( โหมด หรือชุดอักขระอินพุต) เวอร์ชัน (1, ..., 40 ซึ่งระบุขนาดโดยรวมของสัญลักษณ์ เช่น 4 × หมายเลขเวอร์ชัน + 17 จุดในแต่ละด้าน) และระดับ การแก้ไขค่าผิดพลาด ความจุในการจัดเก็บสูงสุดเกิดขึ้นสำหรับเวอร์ชัน 40 และระดับการแก้ไขข้อผิดพลาด L (ต่ำ) ซึ่งแสดงด้วย 40-L: [7] [8]
| โหมดอินพุต | จำนวนอักขระสูงสุด | บิต/อักขระ | อักขระที่เป็นไปได้ การเข้ารหัสเริ่มต้น |
|---|---|---|---|
| เฉพาะตัวเลข | 7,089 | 3 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 |
| ตัวอักษรและตัวเลข | 4,296 | 5 | 0–9, A–Z (ตัวพิมพ์ใหญ่เท่านั้น), เว้นวรรค, $, %, *, +, -, ., /, : |
| ไบนารี /ไบต์ | 2,953 | 8 | ISO/IEC 8859-1 |
| คันจิ / คานะ | 1,817 | 13 | เลื่อน JIS X 0208 |
ต่อไปนี้เป็นตัวอย่างของรหัส QR:
- เวอร์ชัน 1 (21×21) เนื้อหา: "Ver1"
- เวอร์ชัน 2 (25×25) เนื้อหา: "Version 2"
- เวอร์ชัน 3 (29×29) เนื้อหา: "Version 3 QR Code"
- เวอร์ชัน 4 (33×33) เนื้อหา: "Version 4 QR Code, up to 50 char"
- เวอร์ชัน 10 (57×57) เนื้อหา: "VERSION 10 QR CODE, UP TO 174 CHAR AT H LEVEL, WITH 57X57 MODULES AND PLENTY OF ERROR CORRECTION TO GO AROUND. NOTE THAT THERE ARE ADDITIONAL TRACKING BOXES" (เข้ารหัสด้วยตัวพิมพ์ใหญ่ทั้งหมด) (กล่องติดตามมักเรียกว่า รูปแบบการจัดเรียง )
- เวอร์ชัน 25 (117×117) เนื้อหา: ข้อความ ASCII จำนวน 1,269 ตัวอักษร ที่อธิบายรหัส QR
- เวอร์ชัน 40 (177×177) เนื้อหา: "Version 40 QR Code can contain up to 1852 chars ..." (และตามด้วยข้อความ ASCII สี่วรรคที่อธิบายรหัส QR) ข้อความดังกล่าวอ้างถึงรหัส QR ที่มีการแก้ไขค่าผิดพลาด "ระดับ H" ระดับอื่นๆ จะมีความจุสูงกว่า
การแก้ไขค่าผิดพลาด
[แก้]

รหัส QR ใช้ การแก้ไขค่าผิดพลาดแบบ Reed–Solomon บน ฟีลด์จำกัด หรือ GF(28) ซึ่งองค์ประกอบต่างๆ ถูกเข้ารหัสเป็นไบต์ขนาด 8 บิต ; ไบต์ โดยมีค่าตัวเลขมาตรฐาน เข้ารหัสองค์ประกอบฟีลด์ โดย ถือว่าเป็นองค์ประกอบพื้นฐานที่ตรงตามเงื่อนไข พหุนามดั้งเดิมคือ ซึ่งสอดคล้องกับจำนวนพหุนาม 285 โดยมีรากเริ่มต้น = 0 เพื่อให้ได้พหุนามตัวก่อกำเนิด
รหัส Reed–Solomon ใช้พหุนามที่แตกต่างกัน 37 แบบเหนือ โดยมีดีกรีตั้งแต่ 7 ถึง 68 ขึ้นอยู่กับจำนวนไบต์แก้ไขค่าผิดพลาดที่โค้ดเพิ่มเข้าไป รูปแบบของ Reed–Solomon ที่ใช้ ( มุมมอง BCH ที่เป็นระบบ ) บ่งบอกว่าพหุนามเหล่านี้ทั้งหมดอยู่ในรูปแบบ อย่างไรก็ตาม กฎเกณฑ์ในการเลือกปริญญานั้นแตกต่างออกไป เป็นไปตามมาตรฐาน QR โดยเฉพาะ
ตัวอย่างเช่น พหุนามตัวก่อกำเนิดที่ใช้สำหรับรหัส QR เวอร์ชัน 1 (21×21) เมื่อใช้ไบต์แก้ไขค่าผิดพลาด 7 ไบต์ คือ: .
ผลลัพธ์นี้ได้มาจากการคูณพจน์เจ็ดพจน์แรกเข้าด้วยกัน: .
พหุนามตัวก่อกำเนิดที่ระบุสำหรับรหัส (26,19,2) คือ: ซึ่งอาจเขียนในรูปแบบเมทริกซ์ของสัมประสิทธิ์ทศนิยมได้เช่นกัน:
กำลังสูงสุดของ ในพหุนาม (ดีกรี ของพหุนาม) จะกำหนดจำนวนไบต์แก้ไขค่าผิดพลาด ในกรณีนี้ ดีกรีคือ 7
ในการอธิบายขั้นตอนของรหัส Reed–Solomon อาจมีความเสี่ยงที่จะเกิดความสับสน เนื่องจากมาตรฐาน QR ISO/IEC ใช้คำว่า codeword สำหรับองค์ประกอบต่างๆ ของ ซึ่งในรหัส Reed–Solomon นั้นเรียกว่า สัญลักษณ์ ในขณะที่ใช้คำว่า บล็อก สำหรับสิ่งที่ในรหัส Reed–Solomon เรียกว่า codeword จำนวนไบต์ข้อมูลเทียบกับไบต์แก้ไขค่าผิดพลาดภายในแต่ละบล็อกขึ้นอยู่กับ (i) เวอร์ชัน (ความยาวด้าน) ของสัญลักษณ์ QR และ (ii) ระดับการแก้ไขค่าผิดพลาด ซึ่งมีอยู่สี่ระดับ ยิ่งระดับการแก้ไขค่าผิดพลาดสูงเท่าไร ความจุในการจัดเก็บก็จะยิ่งน้อยลงเท่านั้น ตารางต่อไปนี้แสดงความสามารถในการแก้ไขค่าผิดพลาดโดยประมาณในแต่ละระดับทั้งสี่ระดับ:
| ระดับ L (ต่ำ) | สามารถกู้คืนข้อมูลได้ 7% |
| ระดับ M (ปานกลาง) | สามารถกู้คืนข้อมูลได้ 15% |
| ระดับ Q (ควอไทล์) [9] | สามารถกู้คืนข้อมูลได้ 25% |
| ระดับ H (สูง) | สามารถกู้คืนข้อมูลได้ 30% |
ในสัญลักษณ์ QR ขนาดใหญ่ ข้อความจะถูกแบ่งออกเป็นบล็อกรหัส Reed–Solomon หลายบล็อก ขนาดของบล็อกถูกเลือกเพื่อให้มีการแก้ไขค่าผิดพลาดไม่เกิน 15 จุดต่อบล็อก ซึ่งจะจำกัดความซับซ้อนของขั้นตอนวิธีถอดรหัส จากนั้นบล็อกรหัสจะถูกสลับเข้าด้วยกัน ทำให้โอกาสที่ความเสียหายเฉพาะจุดในสัญลักษณ์ QR จะเกินขีดความสามารถของบล็อกใดบล็อกหนึ่งลดลง
ตัวอย่างเช่น สัญลักษณ์ QR เวอร์ชัน 1 ที่มีการแก้ไขค่าผิดพลาดระดับ L ประกอบด้วยบล็อกแก้ไขค่าผิดพลาดเพียงบล็อกเดียวที่มีไบต์ โค้ดทั้งหมด 26 ไบต์ (ประกอบด้วยไบต์ข้อความ 19 ไบต์ และไบต์แก้ไขค่าผิดพลาด 7 ไบต์) สามารถแก้ไขค่าผิดพลาดได้สูงสุด 2 ไบต์ ดังนั้น รหัสนี้จึงเรียกว่ารหัสแก้ไขค่าผิดพลาด (26,19,2) บน GF(28) บางครั้งก็แสดงแบบย่อเป็นรหัส (26,19) ด้วย
เนื่องจากการแก้ไขค่าผิดพลาด ทำให้สามารถสร้างคิวอาร์โค้ดที่มีศิลปะพร้อมการตกแต่งเพื่อให้ดูอ่านง่ายขึ้นหรือดึงดูดสายตามนุษย์มากขึ้น และสามารถใส่สี โลโก้ และคุณสมบัติอื่นๆ ลงในบล็อกคิวอาร์โค้ดได้ การตกแต่งเหล่านี้ถือเป็นค่าผิดพลาด แต่ยังคงสแกนได้ผลถูกต้อง [10] [11]
นอกจากนี้ยังสามารถออกแบบคิวอาร์โค้ดที่มีศิลปะได้โดยไม่ลดความสามารถในการแก้ไขค่าผิดพลาดโดยการจัดการโครงสร้างทางคณิตศาสตร์พื้นฐาน [12] [13] ขั้นตอนวิธีประมวลผลภาพยังถูกนำมาใช้เพื่อลดค่าผิดพลาดในคิวอาร์โค้ด [14]
การเข้ารหัส
[แก้]ข้อมูลรูปแบบ (format information) และการใช้หน้ากาก (masking)
[แก้]ข้อมูลรูปแบบบันทึกสองสิ่ง ได้แก่ ระดับการแก้ไขค่าผิดพลาด และ แบบรูปหน้ากาก (mask pattern) ที่ใช้สำหรับสัญลักษณ์ การใช้หน้ากากจะแบ่งรูปแบบในพื้นที่ข้อมูลที่อาจทำให้เครื่องสแกนสับสน เช่น พื้นที่ว่างขนาดใหญ่หรือคุณลักษณะที่ทำให้เข้าใจผิดซึ่งดูเหมือนเครื่องหมายระบุตำแหน่ง แบบรูปหน้ากากถูกกำหนดบนตารางที่ทำซ้ำตามความจำเป็นเพื่อครอบคลุมสัญลักษณ์ทั้งหมด โมดูลที่สอดคล้องกับพื้นที่สีเข้มของหน้ากากจะถูกกลับด้าน ข้อมูลรูปแบบ 5 บิตได้รับการป้องกันจากค่าผิดพลาดด้วย รหัส BCH และมีสำเนาที่สมบูรณ์สองชุดรวมอยู่ในสัญลักษณ์ QR แต่ละตัว [3] ใช้รหัส BCH แก้ไขค่าผิดพลาดสามเท่า (15,5) บน GF(24) โดยมีพหุนามตัวก่อกำเนิด รหัสนี้สามารถแก้ไขค่าผิดพลาดได้มากที่สุด 3 บิต จากทั้งหมด 5 บิต รหัส BCH นี้มีทั้งหมด 15 บิต (เพิ่มอีก 10 บิตสำหรับการแก้ไขค่าผิดพลาด) รหัส 15 บิตนี้จะถูก X-OR กับรูปแบบมาสก์ 15 บิตคงที่ ( 101010000010010 ) เพื่อป้องกันไม่ให้เกิดสตริงที่เป็นศูนย์ทั้งหมด
ไบต์แก้ไขค่าผิดพลาด
[แก้]ในการรับไบต์แก้ไขค่าผิดพลาด (EC) สำหรับข้อความ "www.wikipedia.org" สามารถดำเนินการได้ตามขั้นตอนต่อไปนี้:
ข้อความมีความยาว 17 ไบต์ ดังนั้นจึงสามารถเข้ารหัสโดยใช้รหัส Reed-Solomon (26,19,2) เพื่อให้พอดีกับสัญลักษณ์ Ver1 (21×21) ซึ่งมีความจุสูงสุด 19 ไบต์ (สำหรับการแก้ไขค่าผิดพลาดระดับ L)
สามารถแสดงผลลัพธ์เดียวกันได้โดยใช้สัมประสิทธิ์ทศนิยม (เหนือ ), เช่น: .
[1 127 122 154 164 11 68 117]
ข้อความยาว 17 ไบต์ "www.wikipedia.org" ในรูปสัมประสิทธิ์เลขฐานสิบหก (ค่า ASCII) ซึ่งแทนด้วย M1 ถึง M17 คือ:
[4 11 77 77 77 2E 77 69 6B 69 70 65 64 69 61 2E 6F 72 67 0]
วิธีการเข้ารหัสคือ "การเข้ารหัสแบบไบต์" ดังนั้นเขตข้อมูล 'Enc' จึงเป็น [0100] (4 บิต) ความยาวของข้อความข้างต้นคือ 17 ไบต์ ดังนั้นเขตข้อมูล 'Len' จึงเป็น [00010001] (8 บิต) เขตข้อมูล 'End' คือเครื่องหมายสิ้นสุดข้อความ [0000] (4 บิต)
รหัสคำของข้อความ (โดยไม่รวมไบต์ EC) มีรูปแบบดังนี้:
['Enc' 'Len' w w w . w i k i p e d i a . o r g 'End']
เมื่อแทนค่าเลขฐานสิบหกแล้ว สามารถแสดงได้ดังนี้:
ข้อมูลนี้ถูกจัดเรียงใหม่เป็นบล็อกขนาด 19 ไบต์ แต่ละบล็อกมี 8 บิต:
[ 41 17 77 77 72 E7 76 96 B6 97 06 56 46 96 12 E6 F7 26 70 TH AD EF 06 97 8F 25 ]
เมื่อใช้ขั้นตอน การเข้ารหัสแบบระบบของรีด-โซโลมอน จะได้ไบต์ EC ทั้ง 7 ไบต์ (E1 ถึง E7 ดังแสดงในสัญลักษณ์) ซึ่งเป็นสัมประสิทธิ์ (ในเลขฐานสิบ) ของเศษเหลือหลังจากการหารพหุนาม ดังนี้:
[ 174 173 239 6 151 143 37 ]
หรือในรูปแบบค่าเลขฐานสิบหก:
[ AE AD EF 06 97 8F 25 ]
จากนั้นไบต์ EC ทั้ง 7 ไบต์นี้จะถูกนำไปต่อท้ายข้อความขนาด 19 ไบต์ ข้อความที่เข้ารหัสแล้วจะมีทั้งหมด 26 ไบต์ (ในฐานสิบหก):
หมายเหตุ: ค่าบิตที่แสดงในสัญลักษณ์ QR เวอร์ชัน 1 ด้านล่างไม่ตรงกับค่าข้างต้น เนื่องจากสัญลักษณ์ถูกปิดบังด้วยรูปแบบมาสก์ (001)
การวางข้อความ
[แก้]ชุดข้อมูลข้อความถูกจัดเรียงจากขวาไปซ้ายในรูปแบบซิกแซก ดังแสดงในภาพด้านล่าง สำหรับสัญลักษณ์ขนาดใหญ่ การจัดเรียงจะซับซ้อนขึ้นเนื่องจากมีรูปแบบการจัดแนวและการใช้บล็อกแก้ไขค่าผิดพลาดแบบสลับหลายชั้น
- ความหมายของข้อมูลรูปแบบ ในรูปด้านบน ข้อมูลรูปแบบได้รับการปกป้องด้วยรหัส BCH (15,5) ซึ่งสามารถแก้ไขข้อผิดพลาดได้ถึง 3 บิต ความยาวทั้งหมดของรหัสคือ 15 บิต โดย 5 บิตเป็นบิตข้อมูล (ระดับ EC 2 ระดับ + รูปแบบหน้ากาก 3 ระดับ) และ 10 บิตพิเศษสำหรับการแก้ไขข้อผิดพลาด รูปแบบหน้ากาก สำหรับ 15 บิตนี้คือ: [ 101010000010010 ] โปรดทราบว่าเราแมปค่าที่ถูกปิดบังโดยตรงกับความหมายที่นี่ ซึ่งแตกต่างจากภาพที่ 4 "ระดับและหน้ากาก" ที่หมายเลขรูปแบบหน้ากากเป็นผลมาจากการวางบิตหน้ากากที่ 3 ถึง 5 [ 101 ] ทับบิตข้อมูลรูปแบบที่ 3 ถึง 5 ของรหัส QR
- การจัดวางข้อความภายในสัญลักษณ์ QR เวอร์ชัน 1 (21×21) ข้อความถูกเข้ารหัสโดยใช้รหัส Reed Solomon (255,248) (ย่อเป็นรหัส (26,19) โดยใช้ "padding") ซึ่งสามารถแก้ไขข้อผิดพลาดได้สูงสุด 2 ไบต์ คำรหัสทั้งหมด 26 คำ ประกอบด้วยไบต์แก้ไขข้อผิดพลาด 7 ไบต์ และไบต์ข้อมูล 17 ไบต์ นอกเหนือจาก "Len" (เขตข้อมูล 8 บิต), "Enc" (เขตข้อมูล 4 บิต) และ "End" (เขตข้อมูล 4 บิต) สัญลักษณ์นี้สามารถแก้ไขข้อผิดพลาดระดับ L ได้ ระดับ EC คือ 01(L) และรูปแบบมาสก์คือ 001 ดังนั้น 5 บิตแรกของข้อมูลรูปแบบคือ 01001 (โดยไม่มีมาสก์รูปแบบ) หลังจากมาสก์แล้ว 5 บิตจะกลายเป็น 11100 ดังที่เห็นในภาพนี้
- สัญลักษณ์ขนาดใหญ่ (เวอร์ชัน 3, 29×29) แสดงบล็อกที่สลับกัน ข้อความมีข้อมูล 26 ไบต์ และเข้ารหัสโดยใช้บล็อกรหัส Reed-Solomon สองบล็อก แต่ละบล็อกเป็นรหัส Reed-Solomon (255,233) (ย่อเป็นรหัส (35,13)) ซึ่งสามารถแก้ไขข้อผิดพลาดได้สูงสุด 11 ไบต์ในการประมวลผลครั้งเดียว โดยประกอบด้วยข้อมูล 13 ไบต์ และไบต์แก้ไขข้อผิดพลาด 22 ไบต์ที่ต่อท้ายข้อมูล บล็อกรหัส Reed-Solomon ขนาด 35 ไบต์สองบล็อกถูกสลับกัน (ส่งผลให้มีรหัสทั้งหมด 70 ไบต์) ดังนั้นจึงสามารถแก้ไขข้อผิดพลาดได้สูงสุด 22 ไบต์ สัญลักษณ์นี้บรรลุระดับการแก้ไขข้อผิดพลาดระดับ H
โครงสร้างทั่วไปของการเข้ารหัส QR คือลำดับของตัวบ่งชี้ 4 บิต โดยความยาวของเพย์โหลดจะขึ้นอยู่กับโหมดตัวบ่งชี้ (เช่น ความยาวของเพย์โหลดการเข้ารหัสไบต์จะขึ้นอยู่กับไบต์แรก)
| ตัวบ่งชี้โหมด | คำอธิบาย | โครงสร้างทั่วไป '[ ประเภท : ขนาดเป็นบิต ]' |
|---|---|---|
| 1 = 0b0001 | ตัวเลข | [0001 : 4] [ ตัวบ่งชี้จำนวนอักขระ : ตัวแปร ] [ สตรีมบิตข้อมูล : 3.333... อักขระ ] |
| 2 = 0b0010 | ตัวอักษรและตัวเลข | [0010 : 4] [ ตัวบ่งชี้จำนวนอักขระ : ตัวแปร ] [ สตรีมบิตข้อมูล : 5.5 อักขระ ] |
| 4 = 0b0100 | การเข้ารหัสไบต์ | [0100 : 4] [ ตัวบ่งชี้จำนวนอักขระ : ตัวแปร ] [ สตรีมบิตข้อมูล : 8 × จำนวนอักขระ ] |
| 8 = 0b1000 | การเข้ารหัสคันจิ | [1000 : 4] [ ตัวบ่งชี้จำนวนอักขระ : ตัวแปร ] [ สตรีมบิตข้อมูล : 13 × จำนวนอักขระ ] |
| 3 = 0b0011 | การต่อเติมแบบมีโครงสร้าง | [0011 : 4] [ ตำแหน่งสัญลักษณ์ : 4 ] [ จำนวนสัญลักษณ์ทั้งหมด: 4 ] [ พาริตี้ : 8 ] |
| 7 = 0b0111 | ECI | [0111 : 4] [ หมายเลขการมอบหมาย ECI : ตัวแปร ] |
| 5 = 0b0101 | FNC1 อยู่ในตำแหน่งแรก | [0101 : 4] [ เพย์โหลดตัวเลข/ตัวอักษร/ไบต์/คันจิ : ตัวแปร ] |
| 9 = 0b1001 | FNC1 อยู่ในอันดับที่สอง | [1001 : 4] [ ตัวบ่งชี้แอปพลิเคชัน : 8 ] [ เพย์โหลดตัวเลข/ตัวอักษร/ไบต์/คันจิ : ตัวแปร ] |
| 0 = 0b0000 | จบข้อความ | [0000 : 4] |
- บันทึก:
- ตัวบ่งชี้จำนวนอักขระขึ้นอยู่กับจำนวนโมดูลในรหัส QR (เวอร์ชันสัญลักษณ์)
- หมายเลขการมอบหมาย ECI ขนาด:
- 8 × 1 บิต หากบิตสตรีมการกำหนดค่า ECI เริ่มต้นด้วย '0'
- 8 × 2 บิต หากบิตสตรีมการกำหนดค่า ECI เริ่มต้นด้วย '10'
- 8 × 3 บิต หากบิตสตรีมการกำหนดค่า ECI เริ่มต้นด้วย '110'
ตัวบ่งชี้สี่บิตใช้เลือกโหมดการเข้ารหัสและสื่อสารข้อมูลอื่นๆ
| ตัวบ่งชี้ | ความหมาย |
|---|---|
| 0001 | การเข้ารหัสตัวเลข (10 บิตต่อ 3 หลัก) |
| 0010 | การเข้ารหัสแบบตัวอักษรและตัวเลข (11 บิตต่อ 2 ตัวอักษร) |
| 0100 | การเข้ารหัสแบบไบต์ (8 บิตต่ออักขระ) |
| 1000 | การเข้ารหัสอักษรคันจิ (13 บิตต่อตัวอักษร) |
| 0011 | การเพิ่มข้อความแบบมีโครงสร้าง (ใช้เพื่อแบ่งข้อความออกเป็นสัญลักษณ์ QR หลายตัว) |
| 0111 | การตีความช่องสัญญาณแบบขยาย (เลือกชุดอักขระหรือการเข้ารหัสทางเลือก) |
| 0101 | FNC1 อยู่ในตำแหน่งแรก (ดู Code 128 สำหรับข้อมูลเพิ่มเติม) |
| 1001 | FNC1 อยู่ในอันดับที่สอง |
| 0000 | จบข้อความ (Terminator) |
สามารถผสมผสานแบบวิธีการเข้ารหัสได้ตามต้องการภายในสัญลักษณ์ QR (เช่น URL ที่มีตัวอักษรและตัวเลขจำนวนมาก)
หลังตัวบ่งชี้แต่ละตัวที่เลือกโหมดการเข้ารหัส จะมีช่องความยาวที่ระบุจำนวนอักขระที่เข้ารหัสในแบบวิธีนั้น จำนวนบิตในช่องความยาวจะขึ้นอยู่กับการเข้ารหัสและเวอร์ชันของสัญลักษณ์
| การเข้ารหัส | เวอร์ชัน 1–9 | 10–26 | 27–40 |
|---|---|---|---|
| ตัวเลข | 10 | 12 | 14 |
| ตัวอักษรและตัวเลข | 9 | 11 | 13 |
| ไบต์ | 8 | 16 | 16 |
| คันจิ | 8 | 10 | 12 |
โหมดการเข้ารหัสแบบตัวอักษรและตัวเลขสามารถจัดเก็บข้อความได้อย่างกะทัดรัดกว่าโหมดไบต์ แต่ไม่สามารถจัดเก็บตัวอักษรพิมพ์เล็กได้ และมีเครื่องหมายวรรคตอนให้เลือกใช้อย่างจำกัด ซึ่งเพียงพอสำหรับ ที่อยู่เว็บ แบบพื้นฐานเท่านั้น ตัวอักษรสองตัวจะถูกเข้ารหัสเป็นค่า 11 บิตโดยใช้สูตรนี้:
- V = 45 × C 1 + C 2
ข้อยกเว้นคือ อักขระตัวสุดท้ายในสตริงตัวอักษรและตัวเลขที่มีความยาวเป็นเลขคี่ จะถูกอ่านเป็นค่า 6 บิตแทน
อ้างอิง
[แก้]- ↑ "他嫌掃條碼太累…拿「圍棋創造QR碼」 就此改變世界25年". ettoday.com. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2022-02-05. สืบค้นเมื่อ 2018-02-26.
- ↑ "QR Code features". Denso-Wave. เก็บจากแหล่งเดิมเมื่อ 2012-09-15. สืบค้นเมื่อ 3 October 2011.
- 1 2 3 "QR Code Essentials". Denso ADC. 2011. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2013-05-12. สืบค้นเมื่อ 12 March 2013. อ้างอิงผิดพลาด: ป้ายระบุ
<ref>ไม่สมเหตุสมผล มีนิยามชื่อ "autogenerated1" หลายครั้งด้วยเนื้อหาต่างกัน - ↑ "About 2D Code | QR Code.com". Denso-wave.com. สืบค้นเมื่อ 2009-04-23.
- ↑ "QR Code Standardization | QR Code.com". Denso-wave.com. สืบค้นเมื่อ 2009-04-23.
- ↑ "ISO/IEC 18004:2024(en) - QR code bar code symbology specification". International Organization for Standardization. เก็บจากแหล่งเดิมเมื่อ 20 June 2025. สืบค้นเมื่อ 22 June 2025.
- ↑ "QR Code—About 2D Code". Denso-Wave. เก็บจากแหล่งเดิมเมื่อ 5 June 2016. สืบค้นเมื่อ 27 May 2016.
- ↑ "Information capacity and versions of QR Code". Denso-Wave. เก็บจากแหล่งเดิมเมื่อ 29 May 2016.
- ↑ "2D Barcode: QR-Code". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 29 September 2012. — TEC-IT
- ↑ Hamilton Chan (18 April 2011). "HOW TO: Make Your QR Codes More Beautiful". Mashable. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 8 August 2011. สืบค้นเมื่อ 29 July 2011.
- ↑ Orli Sharaby (18 October 2010). "Form Meets Function: Extreme Makeover QR Code Edition". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 10 July 2012. สืบค้นเมื่อ 29 July 2011.
- ↑ Russ Cox (12 April 2012). "QArt Codes: How to make pictures with QR codes, part II". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2015-03-21. สืบค้นเมื่อ 8 May 2015.
- ↑ Russ Cox (12 April 2012). "QArt Coder". เก็บจากแหล่งเดิมเมื่อ 24 April 2015. สืบค้นเมื่อ 8 May 2015.
- ↑ Gupta, Kishor Datta; Ahsan, Md Manjurul; Andrei, Stefan (2018). "Extending the Storage Capacity And Noise Reduction of a Faster QR-Code". BRAIN: Broad Research in Artificial Intelligence and Neuroscience. 9 (1): 59–71. doi:10.70594/brain/v9.i1/7 (inactive 10 January 2026).
{{cite journal}}: ตรวจสอบค่า|doi=(help)CS1 maint: DOI inactive as of มกราคม 2026 (ลิงก์)
