איך קודי QR עובדים

ידוע גם בשם: קידוד קוד QR, פענוח קוד QR, How QR codes work

הגדרה

קוד QR עובד כך: הנתונים הופכים למילות קוד, נוסף להם תיקון שגיאות Reed–Solomon, והביטים מסודרים ברשת סביב תבניות קבועות שעוזרות למצלמה למצוא את הקוד, לישר אותו ולקרוא אותו.

מנתונים לתבנית

יצירת קוד QR מתחילה בבחירת מצב קידוד שמתאים לנתונים: מספרי, אלפאנומרי, בתים או קנג'י. המקודד ממיר את הנתונים לביטים, מחלק אותם למילות קוד של 8 ביטים ומוסיף מילות קוד של תיקון שגיאות Reed–Solomon ברמה שנבחרה. אחר כך הוא בוחר את הגרסה הקטנה ביותר שמספיקה.

מילות הקוד מונחות ברשת במסלול זיגזג שמדלג על התבניות הקבועות. לבסוף המקודד מפעיל אחת משמונה תבניות מסכה כדי לפרק אזורים ריקים גדולים או צורות מבלבלות, ורושם את המסכה ואת רמת תיקון השגיאות במידע הפורמט.

  • בוחרים את מצב הקידוד
  • מקודדים את הנתונים ומוסיפים מילות קוד של תיקון שגיאות
  • בוחרים את הגרסה (הגודל)
  • מציבים את תבניות האיתור, התזמון והיישור
  • ממלאים את מודולי הנתונים
  • מפעילים את הטובה מבין שמונה המסכות וכותבים את מידע הפורמט

מתמונת מצלמה לנתונים

הפענוח מריץ את אותם שלבים בכיוון ההפוך. הסורק מוצא את שלוש תבניות האיתור, שהיחס 1:1:3:1:1 של כהה ובהיר בהן בולט מרוב התמונות, ומשתמש בהן יחד עם תבניות התזמון והיישור כדי למפות את הרשת. הוא קורא את מידע הפורמט, מסיר את המסכה ואוסף את מילות הקוד.

אחר כך פענוח Reed–Solomon מתקן מילות קוד שנקראו שגוי, עד הגבול של רמת תיקון השגיאות. אם נפגע יותר מדי, הקוד נכשל בקריאה ולא מחזיר נתונים שגויים, ולכן קודי QR כמעט אף פעם לא מפיקים תוצאה משובשת.

למה גודל וניגודיות חשובים

כל שלב תלוי ביכולת של המצלמה להבדיל בין מודולים כהים לבהירים. מודולים קטנים, ניגודיות נמוכה, סנוור, טשטוש או אזור שקט חסר מכניסים יותר מודולים לספק, ותיקון השגיאות יכול לספוג רק עד גבול מסוים. נתונים קצרים, ניגודיות חזקה ושוליים נקיים נותנים למפענח את המשימה הקלה ביותר.

שאלות נפוצות

איך הטלפון יודע איפה קוד ה-QR?

הוא מחפש את שלוש תבניות האיתור הריבועיות והגדולות בפינות. היחס המובחן 1:1:3:1:1 שלהן מאפשר לסורק למצוא אותן מכל זווית ולחשב את הכיוון.

למה יש לקודי QR תבנית מסכה?

המסכה הופכת מודולים בתבנית קבועה כדי שהקוד יימנע מאזורים אחידים גדולים ומצורות שנראות כמו תבניות איתור. המקודד מנסה את כל שמונה המסכות ושומר את זו שנקראת בצורה האמינה ביותר.

אפשר לקרוא קוד QR הפוך?

כן. תבניות האיתור מספרות לסורק מהו הכיוון, ולכן אפשר לקרוא קוד QR בכל סיבוב.

מקורות ותקנים

כל המונחים