ลายระบุตำแหน่งของ QR code: ทำไม QR code ทุกอันถึงมีสี่เหลี่ยมอยู่ตรงมุม
โดยทีม KoloQRพื้นฐาน

ลายระบุตำแหน่ง (finder pattern) คือหนึ่งในสี่เหลี่ยมซ้อนศูนย์กลางสามอันตรงมุมของ QR code ที่เครื่องสแกนใช้หาตำแหน่งของสัญลักษณ์และคำนวณการหมุนของมัน แต่ละอันกว้างเจ็ดโมดูล อยู่ที่มุมบนซ้าย บนขวา และล่างซ้าย ส่วนมุมที่สี่ถูกเว้นว่างไว้โดยตั้งใจ ความไม่สมมาตรนี้เองที่บอกตัวถอดรหัสว่าด้านไหนคือด้านบนของโค้ด มันไม่ใช่ของประดับและไม่ใช่ที่วางโลโก้ QR code ที่มีมุมใดมุมหนึ่งถูกบัง มักเป็น QR code ที่ไม่มีเครื่องสแกนตัวไหนตรวจพบเลย
ประเด็นสำคัญ
- ลายระบุตำแหน่งคือหนึ่งในสี่เหลี่ยมซ้อนศูนย์กลางสามอันตรงมุมของ QR code ที่เครื่องสแกนใช้หาตำแหน่งของสัญลักษณ์และคำนวณการหมุนของมัน แต่ละอันขนาด 7 × 7 โมดูล พร้อมแถบคั่นสีอ่อนกว้างหนึ่งโมดูลตามด้านในของมัน
- มีสามอันไม่ใช่สี่ เพื่อให้สัญลักษณ์ไม่สมมาตร สามมุมเพียงพอที่จะกำหนดสี่เหลี่ยมจัตุรัส และมุมที่สี่ซึ่งว่างอยู่คือสิ่งที่บอกตัวถอดรหัสว่าด้านไหนคือด้านบน ไม่ว่าจะหมุนอย่างไร
- เส้นสแกนที่ลากผ่านจุดศูนย์กลางของลายระบุตำแหน่งจะให้ช่วงเข้มและอ่อนในอัตราส่วน 1:1:3:1:1 และอัตราส่วนนี้เท่ากันจากทุกทิศทางและทุกขนาดการพิมพ์
- การบังลายระบุตำแหน่งไม่เหมือนกับการทำให้ข้อมูลเสียหาย การแก้ไขข้อผิดพลาดซ่อมได้เฉพาะพื้นที่ข้อมูล ไม่มีอะไรซ่อมลายระบุตำแหน่งได้ เพราะการตรวจพบเกิดขึ้นก่อนที่การถอดรหัสจะเริ่ม
- ใน QR code เวอร์ชัน 1 มี 233 โมดูลจากทั้งหมด 441 โมดูล หรือ 52.8% ที่เป็นโครงสร้างไม่ใช่ข้อมูล พอถึงเวอร์ชัน 40 สัดส่วนนี้เหลือ 5.4% นี่คือเหตุผลที่โค้ดขนาดเล็กบรรจุได้น้อยมาก
ลายระบุตำแหน่งบน QR code คืออะไร
ลายระบุตำแหน่งคือหนึ่งในสี่เหลี่ยมซ้อนศูนย์กลางสามอันตรงมุมของ QR code ที่เครื่องสแกนใช้หาตำแหน่งของสัญลักษณ์และคำนวณการหมุนของมัน ลายระบุตำแหน่งแต่ละอันมีขนาด 7 × 7 โมดูล ประกอบด้วยสี่เหลี่ยมทึบสีเข้ม 3 × 3 ตรงกลาง วงแหวนสีอ่อนกว้างหนึ่งโมดูลล้อมรอบ และวงแหวนสีเข้มกว้างหนึ่งโมดูลล้อมรอบวงนั้นอีกที
ตามด้านในของลายระบุตำแหน่งแต่ละอันจะมีแถบคั่นวางอยู่ นั่นคือขอบสีอ่อนกว้างหนึ่งโมดูลที่คั่นระหว่างลายกับพื้นที่ข้อมูล เพื่อให้ขอบนอกของลายยังวัดได้ ลายกับแถบคั่นกินพื้นที่บล็อก 8 × 8 ในแต่ละมุมทั้งสาม นั่นคือ 192 โมดูลของ QR code ทุกอันที่เคยถูกสร้างขึ้น ไม่ว่าจะเป็นเวอร์ชันสัญลักษณ์ใดและไม่ว่าโค้ดจะบรรจุอะไร
งานของ 192 โมดูลนั้นคือการตรวจพบ ไม่ใช่การถอดรหัส ก่อนที่เครื่องสแกนจะอ่านอักขระสักตัว มันต้องตอบคำถามสามข้อเกี่ยวกับภาพจากกล้องเสียก่อน ในภาพนี้มี QR code หรือไม่ ขอบของมันอยู่ตรงไหน และด้านไหนคือด้านบน ลายระบุตำแหน่งตอบครบทั้งสามข้อ และตอบจากภาพถ่ายที่ถ่ายเอียง ในแสงที่ไม่ดี ของโค้ดที่กล้องไม่เคยเห็นมาก่อน

สี่เหลี่ยมสามอันของ QR code: ทำไมต้องสามมุม ไม่ใช่สี่
ลายระบุตำแหน่งสามอันทำให้สัญลักษณ์ไม่สมมาตร และความไม่สมมาตรนี่เองที่เข้ารหัสทิศทางไว้ สามมุมเพียงพอสำหรับกำหนดสี่เหลี่ยมจัตุรัส สองมุมให้ด้านหนึ่งและความยาวของด้านนั้นแก่ตัวถอดรหัส มุมที่สามให้เส้นตั้งฉาก และเมื่อถึงตอนนั้นมุมที่สี่ก็เป็นที่รู้อยู่แล้ว การวางลายระบุตำแหน่งเพิ่มตรงนั้นจึงไม่เพิ่มอะไร มีแต่จะลบเบาะแสเดียวที่บอกว่าด้านไหนคือด้านบนทิ้งไป
นี่คือเหตุผลที่ QR code สแกนได้แม้จะกลับหัว ตะแคงข้าง หรือสะท้อนอยู่ในกระจกหน้าร้าน ตัวถอดรหัสหาสี่เหลี่ยมสามอัน แล้วคำนวณว่าอันไหนอยู่ที่มุมระหว่างอีกสองอัน นั่นคือมุมบนซ้าย จากนั้นจึงจัดทิศทางของตารางทั้งหมดใหม่จากจุดนั้น สัญลักษณ์ที่มีสี่เหลี่ยมสี่อันจะถอดรหัสได้สี่แบบต่างกัน โดยไม่มีเกณฑ์ใดให้เลือกระหว่างสี่แบบนั้น
มุมที่ว่างไม่ได้ว่างอยู่นาน ตั้งแต่เวอร์ชัน 2 ขึ้นไป พื้นที่มุมล่างขวาจะมีลายปรับแนวมาแทน ซึ่งเป็นสี่เหลี่ยม 5 × 5 ที่เล็กกว่าและทำงานคนละอย่าง ตามที่อธิบายไว้ด้านล่าง ใครที่สังเกตว่า QR code ขนาดใหญ่มีสี่เหลี่ยมอันที่สี่ซึ่งเล็กกว่าอยู่ตรงมุม คนนั้นกำลังมองลายปรับแนว ไม่ใช่ลายระบุตำแหน่งที่หดลง
ตรรกะเดียวกันอธิบายว่าทำไม Micro QR Code จึงมีลายระบุตำแหน่งเพียงอันเดียว มันเป็นสัญลักษณ์ที่เล็กกว่ามาก ไม่เคยเกิน 17 × 17 โมดูล และบล็อก 8 × 8 สามอันจะกินพื้นที่ไปเกือบหมด สิ่งที่แลกมาคือสัญลักษณ์ที่ต้องหันเข้าหากล้องตรงกว่าเดิม ซึ่งยอมรับได้สำหรับการทำเครื่องหมายบนชิ้นส่วนเล็ก ๆ แต่ยอมรับไม่ได้สำหรับโค้ดบนโปสเตอร์
อัตราส่วน 1:1:3:1:1 ที่ทำให้ QR code ถูกค้นพบได้
เส้นสแกนที่ลากผ่านจุดศูนย์กลางของลายระบุตำแหน่งจะให้ช่วงเข้มและอ่อนในอัตราส่วน 1:1:3:1:1 และอัตราส่วนนี้คือสิ่งที่ตัวถอดรหัสตามหาจริง ๆ มันไม่ได้ตามหาสี่เหลี่ยม มันลดภาพจากกล้องให้เหลือขาวดำ แล้วไล่ไปตามพิกเซลทีละแถวเพื่อวัดว่าแต่ละช่วงของสีเดียวกันยาวเท่าไร และทำเครื่องหมายทุกจุดที่ห้าช่วงติดกันเข้ากับสัดส่วนนั้น
อัตราส่วนนี้ถูกเลือกเพราะมันทนต่อทุกอย่างที่เกิดขึ้นกับโค้ดระหว่างทางจากตัวสร้างไปถึงกล้อง
- มาตราส่วน อัตราส่วนไม่มีหน่วย เลข 1:1:3:1:1 เดิมปรากฏทั้งเมื่อโมดูลหนึ่งกว้างสามพิกเซลและเมื่อกว้างสามสิบพิกเซล ตัวถอดรหัสจึงไม่จำเป็นต้องรู้ขนาดพิมพ์หรือระยะห่างของกล้องล่วงหน้า
- การหมุน ลายนี้ซ้อนศูนย์กลาง เส้นที่ลากผ่านจุดศูนย์กลางจึงให้ความยาวช่วงเท่ากันทุกมุม นี่คือเหตุผลที่ QR code ไม่มีด้านบน และเป็นเหตุผลที่การหมุนมันในเลย์เอาต์นั้นปลอดภัย
- ภาพที่เห็นเพียงบางส่วน แถวที่อยู่ใกล้ขอบบนและขอบล่างของลายจะให้อัตราส่วนต่างออกไป การคัดผลบวกลวงทิ้งจึงถูกมาก ตัวถอดรหัสเหลือแค่ยืนยันอัตราส่วนเดียวกันในแนวคอลัมน์ที่จุดเดิมด้วย
- สิ่งพิมพ์ทั่วไป แกน 1:3:1 พบได้ยากในงานพิมพ์ ช่วงเข้มที่กว้างเป็นสามเท่าของช่วงสองข้าง ทั้งในแนวตั้งและแนวนอน ณ จุดเดียวกัน เกิดขึ้นน้อยพอที่ภาพถ่ายและตัวอักษรจะไม่ไปกระตุ้นมันบ่อยนัก
เมื่อยืนยันจุดศูนย์กลางที่เข้าข่ายได้ครบสามจุด ที่เหลือก็เดินหน้าอย่างรวดเร็ว ตัวถอดรหัสวัดระยะระหว่างจุดเหล่านั้นเพื่อประมาณขนาดโมดูล ใช้ลายจับจังหวะล็อกตารางเข้ากับสัญลักษณ์ และอ่านข้อมูลรูปแบบข้างลายระบุตำแหน่งเพื่อรู้ระดับการแก้ไขข้อผิดพลาดและมาสก์ ก่อนจะแตะโมดูลข้อมูลแม้แต่โมดูลเดียว
ลำดับนี้คือเหตุผลที่โค้ดซึ่งมุมเสียหายมีพฤติกรรมต่างจากโค้ดที่ตรงกลางเสียหายอย่างมาก รอยขีดข่วนในพื้นที่ข้อมูลคือเลขคณิตที่ตัวถอดรหัสย้อนกลับได้ สติกเกอร์ที่ปิดทับลายระบุตำแหน่งลบสิ่งที่เป็นจุดเริ่มต้นของกระบวนการทิ้งไป โทรศัพท์จึงไม่แสดงอะไรเลย ดูทำไม QR code ถึงสแกนไม่ได้ เพื่อแยกอาการนี้ออกจากอาการอื่น
อะไรอีกบ้างใน QR code ที่เป็นโครงสร้างไม่ใช่ข้อมูล
มีห้าสิ่งใน QR code ที่มาตรฐานเป็นผู้กำหนดแทนที่จะเป็นเนื้อหา ได้แก่ ลายระบุตำแหน่งพร้อมแถบคั่น ลายจับจังหวะ ลายปรับแนว ข้อมูลรูปแบบ และตั้งแต่เวอร์ชัน 7 ขึ้นไปคือข้อมูลเวอร์ชัน ทั้งหมดนี้เรียกรวมกันว่าลายทำหน้าที่ และอยู่ในตำแหน่งเดียวกันเสมอในโค้ดทุกอันที่เป็นเวอร์ชันเดียวกัน
| ส่วน | ขนาด | อยู่ตรงไหน | ทำอะไร |
|---|---|---|---|
| ลายระบุตำแหน่ง | 7 × 7 โมดูล มีสามอัน | มุมบนซ้าย บนขวา และล่างซ้าย | หาตำแหน่งสัญลักษณ์และกำหนดการหมุนของมัน |
| แถบคั่น | กว้าง 1 โมดูล รอบลายแต่ละอัน | ระหว่างลายระบุตำแหน่งแต่ละอันกับพื้นที่ข้อมูล | รักษาให้ขอบนอกของลายยังวัดได้เมื่อเทียบกับโมดูลข้างเคียง |
| ลายจับจังหวะ | หนึ่งแถวและหนึ่งคอลัมน์ของโมดูลสลับสี | แถวที่ 6 และคอลัมน์ที่ 6 ระหว่างลายระบุตำแหน่ง | บอกตัวถอดรหัสว่าตารางตกอยู่ตรงไหน เพื่อให้นับช่องได้ |
| ลายปรับแนว | 5 × 5 โมดูล ตั้งแต่เวอร์ชัน 2 ขึ้นไป | ที่พิกัดตายตัวกระจายอยู่ทั่วสัญลักษณ์ | แก้ความบิดเบี้ยวจากมุมมองบนโค้ดที่เอียงหรือโค้ง |
| ข้อมูลรูปแบบ | 31 โมดูล เก็บไว้สองชุด | ข้างลายระบุตำแหน่ง | บันทึกระดับการแก้ไขข้อผิดพลาดและลายมาสก์ |
| ข้อมูลเวอร์ชัน | 36 โมดูล ตั้งแต่เวอร์ชัน 7 ขึ้นไป | ข้างลายระบุตำแหน่งบนขวาและล่างซ้าย | ระบุเวอร์ชันสัญลักษณ์เพื่อให้ตัวถอดรหัสไม่ต้องอนุมานเอง |
ผลในทางปฏิบัติควรพูดกันตรง ๆ QR code ไม่ใช่ตารางข้อมูลที่มีของประดับอยู่ไม่กี่ชิ้น มันคือตารางโครงสร้างที่มีข้อมูลเทลงไปตามช่องว่างที่เหลือ และในโค้ดขนาดเล็ก โครงสร้างคือส่วนใหญ่ของภาพ
สัดส่วนเท่าไรของ QR code ที่ไม่ใช่ข้อมูลของคุณ
ใน QR code เวอร์ชัน 1 มี 233 โมดูลจากทั้งหมด 441 โมดูล หรือ 52.8% ที่เป็นลายทำหน้าที่และข้อมูลรูปแบบ ไม่ใช่ข้อมูล มากกว่าครึ่งหนึ่งของ QR code ที่เล็กที่สุดถูกใช้ไปกับการอธิบายตัวเอง สัดส่วนนี้ลดลงเมื่อสัญลักษณ์ใหญ่ขึ้น เพราะลายทำหน้าที่แทบไม่โตขึ้นเลย ในขณะที่พื้นที่ข้อมูลโตตามกำลังสองของความยาวด้าน
| เวอร์ชัน | โมดูลต่อด้าน | โมดูลทั้งหมด | โมดูลที่เป็นโครงสร้าง | สัดส่วนโครงสร้าง |
|---|---|---|---|---|
| 1 | 21 | 441 | 233 | 52.8% |
| 2 | 25 | 625 | 266 | 42.6% |
| 3 | 29 | 841 | 274 | 32.6% |
| 4 | 33 | 1,089 | 282 | 25.9% |
| 6 | 41 | 1,681 | 298 | 17.7% |
| 7 | 45 | 2,025 | 457 | 22.6% |
| 10 | 57 | 3,249 | 481 | 14.8% |
| 15 | 77 | 5,929 | 686 | 11.6% |
| 20 | 97 | 9,409 | 726 | 7.7% |
| 40 | 177 | 31,329 | 1,681 | 5.4% |
ถ้าไล่อ่านคอลัมน์สุดท้ายลงมา จะมีแถวหนึ่งที่หักแนวโน้ม เวอร์ชัน 7 ใช้สัดส่วนโครงสร้างมากกว่าเวอร์ชัน 6 คือ 22.6% เทียบกับ 17.7% เพราะที่เวอร์ชัน 7 มีสองสิ่งเกิดขึ้นพร้อมกัน ข้อมูลเวอร์ชันปรากฏขึ้นและกิน 36 โมดูล และจำนวนลายปรับแนวกระโดดจากหนึ่งอันเป็นหกอัน หลังจากนั้นสัดส่วนก็ลดลงต่อและไม่เพิ่มขึ้นอีกเลย
ตารางนี้คือคำตอบจริง ๆ ของคำถามที่คนมักถามด้วยรูปประโยคอื่น URL สั้นในโค้ดเวอร์ชัน 2 กับ URL ยาวในโค้ดเวอร์ชัน 10 ไม่ได้ต่างกันสิบเท่าในแง่ข้อมูล ทั้งที่ทั้งคู่เป็น QR code ที่ดูซับซ้อนพอ ๆ กัน โค้ดอันเล็กกำลังใช้ 42.6% ของตัวเองไปกับการทำให้ตัวเองถูกค้นพบได้ ความจุของ QR code ว่าด้วยด้านข้อมูลของเลขคณิตชุดนี้ทีละเวอร์ชัน
ลายปรับแนว: สี่เหลี่ยมอันที่สี่ที่คนมักสังเกตเห็น
ลายปรับแนวคือสี่เหลี่ยมขนาดห้าโมดูลที่ช่วยให้ตัวถอดรหัสแก้ความบิดเบี้ยวจากมุมมอง เมื่อ QR code ถูกถ่ายเอียงหรือพิมพ์บนผิวโค้ง มันเป็นบล็อก 5 × 5 ประกอบด้วยวงแหวนสีเข้ม วงแหวนสีอ่อนอยู่ข้างใน และโมดูลสีเข้มหนึ่งช่องตรงกลาง และปรากฏตั้งแต่เวอร์ชัน 2 ขึ้นไป
จำนวนของมันถูกกำหนดโดยเวอร์ชัน ไม่ใช่โดยเนื้อหา
| เวอร์ชัน | โมดูลต่อด้าน | จำนวนลายปรับแนว |
|---|---|---|
| 1 | 21 | ไม่มี |
| 2 ถึง 6 | 25 ถึง 41 | 1 |
| 7 ถึง 13 | 45 ถึง 69 | 6 |
| 14 ถึง 20 | 73 ถึง 97 | 13 |
| 21 ถึง 27 | 101 ถึง 125 | 22 |
| 28 ถึง 34 | 129 ถึง 153 | 33 |
| 35 ถึง 40 | 157 ถึง 177 | 46 |
ความสำคัญของมันเพิ่มขึ้นตามขนาดโค้ด บนสัญลักษณ์เวอร์ชัน 2 ตัวถอดรหัสวางตารางได้จากลายระบุตำแหน่งสามอันเพียงอย่างเดียว เพราะความคลาดเคลื่อนในระยะ 25 โมดูลถือว่าน้อย บนสัญลักษณ์เวอร์ชัน 25 การประมาณเดียวกันต้องยืนระยะยาว 117 ช่อง และความคลาดเคลื่อนเชิงมุมเล็ก ๆ ตรงมุมจะสะสมจนกลายเป็นความเบี้ยวเต็มหนึ่งโมดูลที่ด้านตรงข้าม ลายปรับแนวคือจุดอ้างอิงภายในสัญลักษณ์ที่ทำให้ตัวถอดรหัสปรับตารางใหม่เป็นช่วง ๆ แทนที่จะฝากทุกอย่างไว้กับการประมาณครั้งเดียว
นี่ยังเป็นเหตุผลเชิงปฏิบัติที่โค้ดขนาดใหญ่บนผิวโค้ง เช่น ขวด แก้ว หรือล้อเก็บสายไฟ ยังอ่านได้อยู่ ไม่ใช่เพราะความโค้งนั้นน้อย แต่เพราะตัวถอดรหัสมีจุดอ้างอิงอยู่ข้างใน และปรับตารางใหม่ระหว่างจุดเหล่านั้น โค้ดบนผิวโค้งที่ลายปรับแนวถูกบังจะสูญเสียสิ่งนี้ไป และเริ่มล้มเหลวพอดีที่มุมซึ่งคนถือโทรศัพท์กันตามธรรมชาติ
ลายจับจังหวะและข้อมูลรูปแบบ
ลายจับจังหวะคือแถวเดียวและคอลัมน์เดียวของโมดูลเข้มสลับอ่อน ที่บอกตัวถอดรหัสว่าตารางโมดูลตกอยู่ตรงไหน อันหนึ่งทอดตามแถวที่ 6 ระหว่างลายระบุตำแหน่งบนซ้ายกับบนขวา อีกอันทอดลงตามคอลัมน์ที่ 6 ระหว่างบนซ้ายกับล่างซ้าย และทั้งคู่เริ่มต้นและจบด้วยโมดูลสีเข้มเสมอ
งานของมันคือการนับ เมื่อหามุมของสัญลักษณ์เจอแล้ว ตัวถอดรหัสรู้ขอบเขตด้านนอกแต่ยังไม่รู้ว่าข้างในมีกี่ช่อง โค้ด 25 โมดูลกับโค้ด 29 โมดูลมองจากข้างนอกแล้วเหมือนกัน การไล่ไปตามช่วงสลับสีของแถวที่ 6 ให้ระยะพิตช์ของโมดูลมาตรง ๆ และนั่นก็ตรึงตารางไว้สำหรับทั้งสัญลักษณ์
ข้อมูลรูปแบบคือแถบโมดูลข้างลายระบุตำแหน่ง ที่บันทึกระดับการแก้ไขข้อผิดพลาดและลายมาสก์ของสัญลักษณ์นั้น มันกิน 31 โมดูล ได้รับการปกป้องด้วยรหัสแก้ไขข้อผิดพลาดแบบ BCH ของตัวเอง และถูกเขียนไว้สองครั้งในคนละที่ สัญลักษณ์ที่ชุดหนึ่งถูกทำลายจึงยังรายงานระดับของตัวเองได้ถูกต้อง ตัวถอดรหัส QR Code อ่านค่าทั้งสองนี้ได้จากภาพโค้ดใดก็ได้
ความซ้ำซ้อนนี้เป็นความไม่สมมาตรที่จงใจในการออกแบบ และควรรู้ไว้เวลาวินิจฉัยโค้ดที่เสียหาย ข้อมูลรูปแบบเป็นส่วนเดียวของโครงสร้างที่มีการปกป้องเป็นของตัวเอง ลายระบุตำแหน่ง ลายจับจังหวะ และลายปรับแนวไม่มีเลย ไม่ใช่เพราะถูกลืม แต่เพราะไม่มีประโยชน์ที่จะปกป้องข้อมูลที่ต้องอ่านให้ได้ก่อนที่การปกป้องใด ๆ จะเริ่มทำงาน
ข้อมูลเวอร์ชันปรากฏตั้งแต่เวอร์ชัน 7 ขึ้นไป เป็น 36 โมดูล เก็บไว้สองชุด ข้างลายระบุตำแหน่งบนขวาและล่างซ้าย ระบุเวอร์ชันสัญลักษณ์ไว้อย่างชัดเจน ต่ำกว่าเวอร์ชัน 7 ตัวถอดรหัสอนุมานเวอร์ชันเอาจากการนับโมดูล ซึ่งเชื่อถือได้พอสำหรับสัญลักษณ์ขนาด 21 ถึง 41 โมดูล และเชื่อถือได้น้อยลงสำหรับสัญลักษณ์ขนาด 177 โมดูล
จะเกิดอะไรขึ้นเมื่อลายระบุตำแหน่งถูกบัง
QR code ที่ลายระบุตำแหน่งถูกบังมักสแกนไม่ได้เลย และความล้มเหลวนั้นเงียบ ไม่ใช่ช้า ไม่มีการอ่านได้บางส่วนและไม่มีข้อความแจ้งข้อผิดพลาด ตัวถอดรหัสไม่เคยสรุปว่ามีสัญลักษณ์อยู่ในเฟรมเลย โทรศัพท์จึงทำตัวเหมือนตอนที่คุณเล็งไปที่ผนังเปล่า ๆ ทุกประการ
สิ่งที่มีประโยชน์ที่สุดที่ควรรู้เกี่ยวกับความล้มเหลวนี้คือ การแก้ไขข้อผิดพลาดช่วยอะไรไม่ได้เลย การกู้คืนแบบ Reed-Solomon ซ่อมโค้ดเวิร์ดในพื้นที่ข้อมูล และมันทำงานหลังจากที่สัญลักษณ์ถูกหาเจอ เวอร์ชันถูกกำหนด และมาสก์ถูกถอดออกแล้ว ลายระบุตำแหน่งคือสิ่งที่ใช้เพื่อไปให้ถึงจุดนั้น ความเสียหายตรงนั้นจึงลบกระบวนการทิ้ง แทนที่จะเพิ่มข้อผิดพลาดเข้าไปในกระบวนการ การเลื่อนระดับจาก M เป็น H ไม่ได้ช่วยอะไรนอกจากทำให้ทุกโมดูลเล็กลง กลไกทั้งหมดอยู่ในระดับการแก้ไขข้อผิดพลาด L, M, Q และ H
รูปแบบที่มุมถูกบัง เรียงคร่าว ๆ ตามความถี่ที่หลุดไปถึงโรงพิมพ์
- วางโลโก้ไว้ที่มุมแทนที่จะเป็นตรงกลาง ตรงกลางของ QR code คือข้อมูล และข้อมูลได้รับการปกป้องจากการแก้ไขข้อผิดพลาด มุมคือโครงสร้าง และไม่มีอะไรปกป้องมัน การตัดสินใจข้อเดียวนี้คือเส้นแบ่งระหว่างโค้ดที่อ่านได้กับโค้ดที่อ่านไม่ได้
- สติกเกอร์ ป้ายราคา หรือซีลปิดทับบนโค้ด พบบ่อยบนบรรจุภัณฑ์และบนเมนูที่ติดป้ายใหม่ ถ้าจำเป็นต้องทับ ให้ทับให้ห่างจากทั้งสามมุม
- กรอบหรือตราที่ล้ำเข้าไปในวงแหวนด้านนอก วงแหวนสีเข้มด้านนอกของลายหนาหนึ่งโมดูล กรอบตกแต่งที่กินมันเข้าไปจะเปลี่ยนความยาวช่วงที่ตัวถอดรหัสกำลังวัดอยู่
- เส้นตัดหรือแม่พิมพ์ปั๊มที่ผ่านมุม สติกเกอร์กลมที่ปั๊มชิดสัญลักษณ์สี่เหลี่ยมจะกินขอบตรงมุมก่อนเป็นอันดับแรก และมุมนั่นเองที่ลายทั้งสามอยู่
- การตกแต่งโมดูลมุมที่หนักเกินไป รูปทรงมุมที่ลบเหลี่ยมลายมากเกินไป หรือเติมสีลงในวงแหวนสีอ่อน จะเปลี่ยนอัตราส่วน 1:1:3:1:1 ที่การตรวจพบพึ่งพาอยู่
- รอยพับ สันหนังสือ หรือรอยงอที่พาดผ่านมุม รอยพับทอดเงาลงบนลายและทำให้สองครึ่งไม่อยู่ระนาบเดียวกัน ซึ่งกระทบการวัดอัตราส่วนมากกว่ารอยพับเดียวกันที่อยู่ตรงอื่น
การทดลองเร็วกว่าทฤษฎี ใช้นิ้วโป้งปิดตรงกลางของโค้ดที่พิมพ์ออกมา ส่วนใหญ่ยังสแกนได้ ปิดมุมใดมุมหนึ่ง แทบไม่มีอันไหนสแกนได้เลย ความต่างนั้นคือทั้งหน้านี้ย่อลงเหลือการทดลองครั้งเดียว
วิธีตกแต่งมุมของ QR code โดยไม่ทำให้มันพัง
รูปทรงมุมแบบกำหนดเองปลอดภัยเมื่อมันรักษาอัตราส่วน 1:1:3:1:1 ไว้ตามทุกเส้นที่ลากผ่านจุดศูนย์กลาง และไม่ปลอดภัยเมื่อมันเปลี่ยนอัตราส่วนนั้น กฎมีอยู่เท่านี้ และมันอธิบายได้ว่าทำไมโค้ดที่ตกแต่งบางอันจึงอ่านได้อย่างสมบูรณ์ ส่วนอีกบางอันล้มเหลวบนโทรศัพท์ครึ่งหนึ่งที่ลองสแกน
สิ่งที่กฎนี้อนุญาตและไม่อนุญาต
- ลบมุมของวงแหวนด้านนอกของลาย ปลอดภัยในตัวถอดรหัสส่วนใหญ่ เพราะเส้นที่ลากผ่านจุดศูนย์กลางยังตัดผ่านความยาวช่วงเดิม การลบมุมเอาหมึกออกจากมุมของตัวลายเอง ซึ่งเส้นกลางไม่เคยแตะ
- ใช้สีต่างออกไปกับลายระบุตำแหน่ง ปลอดภัยตราบใดที่ส่วนสีเข้มยังเข้มเมื่อเทียบกับส่วนสีอ่อน ด้วยคอนทราสต์เท่ากับที่ส่วนอื่นของโค้ดต้องการ ตัวถอดรหัสทำงานเป็นขาวดำหลังการแปลงเป็นสองระดับ ลายสีน้ำเงินเข้มบนพื้นขาวจึงเป็นลายสีเข้ม
- ลายระบุตำแหน่งทรงกลม โดยทั่วไปอ่านได้ และเป็นสไตล์ยอดนิยมที่ให้อภัยน้อยที่สุด วงกลมที่บรรจุอยู่ในบล็อก 7 × 7 ทำให้ช่วงสีเข้มที่วัดนอกแนวศูนย์กลางสั้นลง ความทนต่อคุณภาพงานพิมพ์จึงลดลง
- เติมสีลงในวงแหวนสีอ่อนแทนที่จะเว้นว่าง เสี่ยง วงแหวนสีอ่อนตรงกลางคือหนึ่งในห้าช่วงที่ถูกวัด สีโทนกลางตรงนั้นอาจถูกแปลงเป็นสีเข้มภายใต้แสงไฟในร้าน
- หลอมลายระบุตำแหน่งเข้ากับโลโก้ ไม่ปลอดภัย อะไรก็ตามที่เปลี่ยนขนาดของแกน 3 × 3 เทียบกับวงแหวน ย่อมเปลี่ยนอัตราส่วนที่การตรวจพบพึ่งพาอยู่
- ตัดลายระบุตำแหน่งออกหนึ่งอันเพื่อความสมมาตร อย่าทำเด็ดขาด แบบร่างบางชุดตัดมุมหนึ่งออกหรือเพิ่มมุมที่สี่เข้าไปเพื่อความสมดุลทางสายตา อย่างแรกตรวจไม่พบ อย่างหลังกำกวม
KoloQR ซึ่งเป็นเครื่องมือสร้าง QR code ฟรีที่มี QR code ทรงกลมและทรงกำหนดเอง วาดลายระบุตำแหน่งเป็นส่วนหนึ่งของสัญลักษณ์ในทุกรูปทรงที่ให้เลือก มุมจึงคงสัดส่วนไว้ได้เมื่อเปลี่ยนสไตล์ของโมดูล การตกแต่งไม่เคยทำให้ประสิทธิภาพการสแกนดีขึ้น โค้ดที่ตกแต่งต้องการมุมที่สมบูรณ์อย่างน้อยเท่ากับโค้ดธรรมดา และปกติต้องการมากกว่าเล็กน้อย เพราะโมดูลตกแต่งลงหมึกในแต่ละช่องน้อยกว่า ดูรูปทรงของ QR code สำหรับตัวเลือกทั้งหมด QR code ทรงกลม สำหรับงานทรงวงกลม และรูปทรง QR แบบกำหนดเองสแกนได้ไหม สำหรับราคาที่ต้องจ่ายในทางปฏิบัติ
ไม่ว่าไฟล์จะมาจากเครื่องมือสร้างตัวไหน วิธีตรวจก็เหมือนกันและใช้เวลาหนึ่งนาที ส่งออกโค้ดที่ตกแต่งแล้ว พิมพ์ในขนาดที่จะใช้งานจริง แล้วสแกนด้วยโทรศัพท์ iOS หนึ่งเครื่องและ Android หนึ่งเครื่อง กล้องที่ติดมากับเครื่องเข้มงวดกว่าแอปสแกนเฉพาะทาง และกล้องนั้นเองคือสิ่งที่คนจะใช้จริง ขั้นตอนสำหรับโทรศัพท์ทั้งสองระบบอยู่ในคู่มือวิธีสแกน QR Code
วิธีอ่านโครงสร้างของ QR code ด้วยตาเปล่า
ใครก็ตามสามารถระบุเวอร์ชันของสัญลักษณ์ นับโครงสร้างของมัน และตรวจมุมของมันได้โดยไม่ต้องใช้ซอฟต์แวร์ ขั้นตอนด้านล่างใช้เวลาราวห้านาที และเป็นวิธีเร็วที่สุดในการตรวจโค้ดที่มีคนส่งมาให้โดยไม่มีคำอธิบายใด ๆ
- นับโมดูลตามขอบบน. นับช่องตลอดด้านหนึ่งเต็ม ๆ ของสัญลักษณ์ โดยไม่รวมขอบว่าง ตัวเลขจะเป็น 4V + 17 เสมอสำหรับเวอร์ชัน V ดังนั้น 21 คือเวอร์ชัน 1, 25 คือเวอร์ชัน 2, 33 คือเวอร์ชัน 4 และ 57 คือเวอร์ชัน 10
- ตรวจทั้งสามมุมว่ามีลาย 7 × 7 หรือไม่. บนซ้าย บนขวา และล่างซ้าย แต่ละมุมควรมีแกนทึบ 3 × 3 วงแหวนสีอ่อนกว้างหนึ่งโมดูลที่ชัดเจน และวงแหวนสีเข้มกว้างหนึ่งโมดูลที่ไม่ขาดตอน พร้อมแถบคั่นหนึ่งโมดูลที่โล่งอยู่ด้านใน
- หาลายจับจังหวะ. มองตามแถวที่เจ็ดและคอลัมน์ที่เจ็ดนับจากมุมบนซ้าย ระหว่างลายระบุตำแหน่ง คุณควรเห็นช่วงที่สลับสีอย่างเคร่งครัด เริ่มด้วยสีเข้มและจบด้วยสีเข้ม ถ้ามีจุดขาดตอน แสดงว่าโค้ดเสีย
- หาตำแหน่งลายปรับแนว. ตั้งแต่เวอร์ชัน 2 ขึ้นไปจะมีสี่เหลี่ยม 5 × 5 อย่างน้อยหนึ่งอันใกล้มุมล่างขวา เวอร์ชัน 7 ขึ้นไปมีหกอันหรือมากกว่า กระจายอย่างสม่ำเสมอทั่วสัญลักษณ์
- ยืนยันว่ามุมที่สี่ไม่ใช่ลายระบุตำแหน่ง. มุมล่างขวาควรมีโมดูลข้อมูล หรือลายปรับแนวที่ร่นเข้ามาจากขอบ ถ้าเจอสี่เหลี่ยม 7 × 7 อันที่สี่ แสดงว่าภาพนั้นไม่ใช่ QR code ที่ถูกต้อง
- วัดขอบว่างเทียบกับหนึ่งโมดูล. พื้นที่โล่งรอบสัญลักษณ์ควรมีอย่างน้อยสี่โมดูลในทุกด้าน ให้เทียบกับความกว้างของช่องเดียว แทนที่จะตัดสินเทียบกับโค้ดทั้งอัน ดูพื้นที่ว่างรอบโค้ด
- ส่งไฟล์ผ่านตัวตรวจสอบ. ตัวตรวจสอบ QR code รายงานขนาดโมดูล ขอบว่างในแต่ละด้าน และคอนทราสต์ พร้อมยืนยันว่าสัญลักษณ์ถอดรหัสได้
ผลตรวจสองอย่างจากขั้นตอนนี้อธิบายไฟล์เสียส่วนใหญ่ที่หมุนเวียนกันอยู่ได้ คือโค้ดที่ถูกครอบตัดชิดจนแถบคั่นหายไปหนึ่งด้าน และโค้ดที่ถูกวางในตำแหน่งที่มีบางอย่างในเลย์เอาต์ทับอยู่บนมุม ทั้งสองอย่างเห็นได้ในเวลาไม่ถึงหนึ่งนาทีเมื่อคุณรู้ว่าต้องดูตรงไหน
ข้อผิดพลาดที่พบบ่อยเกี่ยวกับมุมของ QR code
ข้อผิดพลาดที่พบบ่อยที่สุดคือการมองว่ามุมเป็นที่ปลอดภัยสำหรับวางอะไรสักอย่าง ด้วยเหตุผลว่าข้อมูลอยู่ตรงกลาง ความจริงกลับด้านกันพอดี ตรงกลางได้รับการปกป้องจากการแก้ไขข้อผิดพลาด ส่วนมุมไม่มีอะไรปกป้องเลย
| ควรทำ | เพราะอะไร |
|---|---|
| วางโลโก้ไว้ตรงกลางโค้ด | ตรงกลางคือพื้นที่ข้อมูล และการแก้ไขข้อผิดพลาดถูกออกแบบมาเพื่อรองรับการสูญเสียตรงนั้น |
| เว้นทั้งสามมุมให้โล่งจากงานกราฟิกทั้งหมด | การตรวจพบใช้ลายระบุตำแหน่ง และทำงานก่อนที่การกู้คืนใด ๆ จะเป็นไปได้ |
| รักษาอัตราส่วน 1:1:3:1:1 ไว้เมื่อตกแต่งมุม | สิ่งที่ตัวถอดรหัสตามหาคืออัตราส่วน ไม่ใช่รูปทรงที่ถูกวาด |
| ทดสอบโค้ดที่ตกแต่งด้วยกล้องที่ติดมากับโทรศัพท์ | กล้องที่ติดมากับเครื่องเข้มงวดกว่าแอปสแกน และเป็นสิ่งที่คนจะใช้จริง |
| นับโค้ดเป็นสัญลักษณ์บวกขอบว่างสี่โมดูล | มุมคือจุดที่การครอบตัดชิดหรือแม่พิมพ์ปั๊มจะกินพื้นที่โล่งไปก่อน |
| ไม่ควรทำ | เพราะอะไร |
|---|---|
| วางโลโก้ ตรา หรือสติกเกอร์ทับบนมุม | ลายระบุตำแหน่งที่ถูกบังไม่ใช่ความเสียหายที่โค้ดกู้คืนได้ แต่คือโค้ดที่ไม่เคยถูกตรวจพบเลย |
| เพิ่มระดับการแก้ไขข้อผิดพลาดเพื่อปกป้องมุม | การกู้คืนมีผลเฉพาะพื้นที่ข้อมูล และระดับที่สูงขึ้นทำให้ทุกโมดูลเล็กลง |
| เพิ่มสี่เหลี่ยมมุมอันที่สี่เพื่อความสมมาตรทางสายตา | การไม่มีมุมที่สี่นั่นเองคือสิ่งที่เข้ารหัสทิศทางของสัญลักษณ์ไว้ |
| เติมสีลงในวงแหวนสีอ่อนภายในลายระบุตำแหน่ง | วงแหวนนั้นเป็นหนึ่งในห้าช่วงที่ถูกวัด และสีโทนกลางอาจถูกแปลงเป็นสีเข้มเมื่อแสงน้อย |
| ตัดสินว่าโค้ดที่ตกแต่งใช้ได้เพราะสแกนผ่านบนหน้าจอ | หน้าจอให้แสงสม่ำเสมอ คอนทราสต์สูง และขอบคม สามสิ่งที่งานพิมพ์ไม่ได้ให้ |
สร้าง QR Code ของคุณ
ฟรี ไม่ต้องสมัครบัญชี ไม่มีลายน้ำ เลือกรูปทรง ใส่โลโก้ ตรวจคอนทราสต์ แล้วส่งออกเป็น SVG, PDF, EPS หรือ PNG ได้ โค้ดแบบสแตติกที่ไม่มีค่าสมัครสมาชิกอยู่เบื้องหลัง
สร้าง QR CodeQuestions? Answered
เรียกว่าลายระบุตำแหน่ง แต่ละอันเป็นสี่เหลี่ยมซ้อนศูนย์กลางขนาด 7 × 7 โมดูล อยู่ที่มุมบนซ้าย บนขวา และล่างซ้าย เครื่องสแกนใช้มันหาตำแหน่งสัญลักษณ์ในภาพจากกล้องและคำนวณการหมุน ก่อนจะถอดรหัสอะไรทั้งสิ้น มาตรฐาน QR คือ ISO/IEC 18004 เรียกมันว่าลายตรวจจับตำแหน่ง
สามมุมกำหนดสี่เหลี่ยมจัตุรัสได้พร้อมกับทิ้งให้สัญลักษณ์ไม่สมมาตร และความไม่สมมาตรนั้นบอกตัวถอดรหัสว่าด้านไหนคือด้านบน ถ้ามีอันที่สี่ ทั้งสี่ทิศทางจะเหมือนกันหมด นี่ยังเป็นเหตุผลที่ QR code อ่านได้ทั้งตอนกลับหัว ตะแคงข้าง และทุกมุมระหว่างนั้น
ไม่ได้ มุมเป็นที่อยู่ของลายระบุตำแหน่ง ซึ่งเครื่องสแกนต้องใช้ตั้งแต่ขั้นตรวจพบโค้ด และการแก้ไขข้อผิดพลาดไม่ได้ปกป้องมัน ให้วางโลโก้ไว้ตรงกลางแทน ที่ซึ่งเป็นพื้นที่ข้อมูลและการกู้คืนมีผล โลโก้ตรงกลางที่ปิดพื้นที่ราว 20% ยังกู้คืนได้อย่างเชื่อถือได้ที่ระดับ H
นั่นคือลายปรับแนว สี่เหลี่ยมขนาด 5 × 5 โมดูลที่ช่วยให้ตัวถอดรหัสแก้ความบิดเบี้ยวจากมุมมองเมื่อโค้ดถูกถ่ายเอียงหรือพิมพ์บนผิวโค้ง มันปรากฏตั้งแต่เวอร์ชัน 2 ขึ้นไป เวอร์ชัน 7 ขึ้นไปมีหกอันหรือมากกว่ากระจายอยู่ทั่วสัญลักษณ์
เพราะการตรวจพบเกิดขึ้นก่อนการถอดรหัส เครื่องสแกนค้นหาลายระบุตำแหน่งสามอันที่มีอัตราส่วนช่วงเข้มและอ่อนเป็น 1:1:3:1:1 ในภาพ ถ้าขาดไปอันหนึ่ง มันจะไม่มีวันสรุปว่ามีโค้ดอยู่ในเฟรม ไม่มีอะไรถูกถอดรหัส จึงไม่มีอะไรให้การแก้ไขข้อผิดพลาดซ่อม
ปกติได้ ถ้าอัตราส่วน 1:1:3:1:1 ตามเส้นที่ลากผ่านจุดศูนย์กลางของแต่ละลายยังถูกรักษาไว้ การลบเหลี่ยมวงแหวนด้านนอกมักปลอดภัย แต่การเติมสีในวงแหวนสีอ่อนหรือการเปลี่ยนขนาดแกน 3 × 3 เทียบกับวงแหวนนั้นไม่ปลอดภัย ให้พิมพ์โค้ดที่ตกแต่งในขนาดจริงและทดสอบด้วยกล้องที่ติดมากับโทรศัพท์ก่อนตัดสินใจ
น้อยกว่าที่คนคิดในโค้ดขนาดเล็ก สัญลักษณ์เวอร์ชัน 1 ใช้ 233 โมดูลจาก 441 โมดูล หรือ 52.8% ไปกับโครงสร้าง เหลือ 208 โมดูลให้ข้อมูลและการแก้ไขข้อผิดพลาดรวมกัน พอถึงเวอร์ชัน 10 สัดส่วนโครงสร้างอยู่ที่ 14.8% และเวอร์ชัน 40 อยู่ที่ 5.4% นี่คือเหตุผลที่ความจุพุ่งขึ้นเร็วมากตามขนาด
คือแถวเดียวและคอลัมน์เดียวของโมดูลเข้มสลับอ่อนที่ทอดอยู่ระหว่างลายระบุตำแหน่ง ตามแถวที่ 6 และคอลัมน์ที่ 6 มันบอกตัวถอดรหัสว่าตารางโมดูลตกอยู่ตรงไหน เพื่อให้นับช่องได้แม่นยำหลังจากหาขอบเขตของสัญลักษณ์เจอแล้ว มันเริ่มต้นและจบด้วยโมดูลสีเข้มเสมอ
เหมือนกัน ทั้งสามอันมีขนาด 7 × 7 โมดูลและโครงสร้างซ้อนศูนย์กลางแบบเดียวกัน ในทุกเวอร์ชันสัญลักษณ์ตั้งแต่ 1 ถึง 40 และไม่ว่าโค้ดจะบรรจุอะไร สิ่งที่เปลี่ยนคือระยะห่างระหว่างกันเท่านั้น เพราะสัญลักษณ์โตขึ้นรอบ ๆ มัน ข้อยกเว้นคือ Micro QR Code ซึ่งเป็นสัญลักษณ์คนละชนิดที่มีลายระบุตำแหน่งเพียงอันเดียว
สำรวจต่อ
หน้าที่ต่อจากหน้านี้ - บริบทเดียวกัน โค้ดชนิดเดียวกัน หรือสิ่งที่ต้องตัดสินใจต่อไป
รูปทรง QR Code
ภาพรวมรูปทรงทั้งหมด ทั้งโมดูล ดวงตา และกรอบ พร้อมข้อแลกเปลี่ยนของโค้ดทรงกลม สามเหลี่ยม หกเหลี่ยม และสี่เหลี่ยม
QR Code สร้างสรรค์
แนวทางออกแบบและตัวอย่างจริงของ QR Code ที่ดูตั้งใจ โดยไม่ยอมเสียความแน่นอนในการสแกน
QR Code ทรงกลมก็คือ QR Code สี่เหลี่ยมที่ใส่ชุดแฟนซี
โค้ดที่มีรูปทรงสแกนได้เพราะรูปทรงไม่เคยแตะต้องข้อมูล สิ่งที่รูปทรงกินไปจริง ๆ คือความกว้าง โค้ดสามเหลี่ยมต้องการฐานกว้างราว 2.6 เท่าของเมทริกซ์ที่อยู่ข้างใน
QR Code Pinterest
เปิดบอร์ด โปรไฟล์ หรือพินบน Pinterest จากหน้ากระดาษที่พิมพ์ออกมาได้ในการสแกนครั้งเดียว
เครื่องตรวจคอนทราสต์ QR Code
ตัดสินคู่สีแบบเดียวกับที่เครื่องสแกนทำ ทั้งอัตราส่วนคอนทราสต์ ความต่างของความสว่างที่กล้องเห็น และความอยู่รอดเมื่อพิมพ์จริง
ความจุของ QR code: ข้อมูลบรรจุได้เท่าไร ตามเวอร์ชันสัญลักษณ์และโหมดการเข้ารหัส
ความจุของ QR code ทุกเวอร์ชันในโหมดการเข้ารหัสทั้งสี่ ทำไม URL เดิมจึงพอดีกับโค้ดที่เล็กลงเมื่อเขียนด้วยตัวพิมพ์ใหญ่ และความยาวเนื้อหากำหนดขนาดพิมพ์ที่เล็กที่สุดอย่างไร
ทำไมต้อง KoloQR?
- สร้าง QR Code สำหรับเว็บไซต์ เมนู Wi-Fi ไฟล์ PDF และนามบัตร
- ปรับแต่งสี โลโก้ และรูปทรงที่ไม่เหมือนใคร
- ดาวน์โหลดไฟล์ PNG และ SVG คุณภาพสูง
- ออกแบบมาเพื่อทั้งงานพิมพ์และงานดิจิทัล

