ลายระบุตำแหน่งของ 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 ของตัวเอง และถูกเขียนไว้สองครั้งในคนละที่ สัญลักษณ์ที่ชุดหนึ่งถูกทำลายจึงยังรายงานระดับของตัวเองได้ถูกต้อง
ความซ้ำซ้อนนี้เป็นความไม่สมมาตรที่จงใจในการออกแบบ และควรรู้ไว้เวลาวินิจฉัยโค้ดที่เสียหาย ข้อมูลรูปแบบเป็นส่วนเดียวของโครงสร้างที่มีการปกป้องเป็นของตัวเอง ลายระบุตำแหน่ง ลายจับจังหวะ และลายปรับแนวไม่มีเลย ไม่ใช่เพราะถูกลืม แต่เพราะไม่มีประโยชน์ที่จะปกป้องข้อมูลที่ต้องอ่านให้ได้ก่อนที่การปกป้องใด ๆ จะเริ่มทำงาน
ข้อมูลเวอร์ชันปรากฏตั้งแต่เวอร์ชัน 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 ด้วยตาเปล่า
ใครก็ตามสามารถระบุเวอร์ชันของสัญลักษณ์ นับโครงสร้างของมัน และตรวจมุมของมันได้โดยไม่ต้องใช้ซอฟต์แวร์ ขั้นตอนด้านล่างใช้เวลาราวห้านาที และเป็นวิธีเร็วที่สุดในการตรวจโค้ดที่มีคนส่งมาให้โดยไม่มีคำอธิบายใด ๆ
- นับโมดูลตามขอบบน. นับช่องตลอดด้านหนึ่งเต็ม ๆ ของสัญลักษณ์ โดยไม่รวมขอบว่าง ตัวเลขจะเป็น 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 คุณภาพสูง
- ออกแบบมาเพื่อทั้งงานพิมพ์และงานดิจิทัล

