کد QR چگونه کار می‌کند

نام‌های دیگر: کدگذاری کد QR, رمزگشایی کد QR

تعریف

کد QR داده را به کلمه‌کد تبدیل می‌کند، تصحیح خطای Reed–Solomon اضافه می‌کند و بیت‌ها را در شبکه‌ای دور الگوهای ثابت می‌چیند تا دوربین بتواند آن را پیدا، صاف و خوانده کند.

از داده تا الگو

ساخت کد QR با انتخاب حالت کدگذاری مناسب داده شروع می‌شود: عددی، الفبایی‌عددی، بایتی یا کانجی. کدگذار داده را به بیت تبدیل می‌کند، آن را به کلمه‌کدهای ۸ بیتی تقسیم می‌کند و کلمه‌کدهای تصحیح خطای Reed–Solomon را در سطح انتخاب‌شده اضافه می‌کند. بعد کوچک‌ترین نسخه‌ای را که جا بدهد برمی‌گزیند.

کلمه‌کدها در مسیری زیگزاگی که از الگوهای ثابت رد می‌شود در شبکه چیده می‌شوند. در پایان کدگذار یکی از هشت الگوی ماسک را اعمال می‌کند تا نواحی خالی بزرگ یا شکل‌های گمراه‌کننده از بین بروند، و ماسک و سطح تصحیح خطا را در اطلاعات قالب ثبت می‌کند.

  • انتخاب حالت کدگذاری
  • کدگذاری داده و افزودن کلمه‌کدهای تصحیح خطا
  • انتخاب نسخه (اندازه)
  • قرار دادن الگوهای یاب، زمان‌بندی و هم‌ترازی
  • پر کردن ماژول‌های داده
  • اعمال بهترین ماسک از میان هشت ماسک و نوشتن اطلاعات قالب

از تصویر دوربین تا داده

رمزگشایی همین مراحل را برعکس اجرا می‌کند. اسکنر سه الگوی یاب را پیدا می‌کند که نسبت ۱:۱:۳:۱:۱ تیره و روشن در آن‌ها از بیشتر تصاویر متمایز است، و با کمک الگوهای زمان‌بندی و هم‌ترازی شبکه را ترسیم می‌کند. اطلاعات قالب را می‌خواند، ماسک را برمی‌دارد و کلمه‌کدها را جمع می‌کند.

سپس رمزگشایی Reed–Solomon کلمه‌کدهایی را که اشتباه خوانده شده‌اند تا حد سطح تصحیح خطا ترمیم می‌کند. اگر بیش از حد آسیب دیده باشد، کد به‌جای برگرداندن داده غلط خوانده نمی‌شود، و برای همین کدهای QR به‌ندرت نتیجه بی‌معنی می‌دهند.

چرا اندازه و کنتراست مهم‌اند

هر مرحله به این بستگی دارد که دوربین ماژول تیره را از روشن تشخیص دهد. ماژول‌های کوچک، کنتراست کم، بازتاب نور، تاری یا نبود حاشیه سکوت همگی ماژول‌های بیشتری را مبهم می‌کنند و تصحیح خطا فقط تا حدی می‌تواند جبران کند. کوتاه نگه داشتن داده، کنتراست قوی و حاشیه آزاد کار رمزگشا را آسان‌تر می‌کند.

پرسش‌های متداول

گوشی از کجا می‌فهمد کد QR کجاست؟

دنبال سه الگوی یاب مربعی بزرگ در گوشه‌ها می‌گردد. نسبت مشخص ۱:۱:۳:۱:۱ آن‌ها به اسکنر اجازه می‌دهد از هر زاویه‌ای پیدایشان کند و جهت را تشخیص دهد.

چرا کدهای QR الگوی ماسک دارند؟

ماسک ماژول‌ها را طبق الگویی ثابت وارونه می‌کند تا کد از نواحی توپر بزرگ و شکل‌هایی که شبیه الگوی یاب‌اند دوری کند. کدگذار هر هشت ماسک را امتحان می‌کند و آن را که مطمئن‌تر خوانده می‌شود نگه می‌دارد.

کد QR را می‌شود وارونه خواند؟

بله. الگوهای یاب جهت را به اسکنر نشان می‌دهند، پس کد QR در هر چرخشی خوانده می‌شود.

منابع و استانداردها

همه اصطلاحات