از داده تا الگو
ساخت کد QR با انتخاب حالت کدگذاری مناسب داده شروع میشود: عددی، الفباییعددی، بایتی یا کانجی. کدگذار داده را به بیت تبدیل میکند، آن را به کلمهکدهای ۸ بیتی تقسیم میکند و کلمهکدهای تصحیح خطای Reed–Solomon را در سطح انتخابشده اضافه میکند. بعد کوچکترین نسخهای را که جا بدهد برمیگزیند.
کلمهکدها در مسیری زیگزاگی که از الگوهای ثابت رد میشود در شبکه چیده میشوند. در پایان کدگذار یکی از هشت الگوی ماسک را اعمال میکند تا نواحی خالی بزرگ یا شکلهای گمراهکننده از بین بروند، و ماسک و سطح تصحیح خطا را در اطلاعات قالب ثبت میکند.
- انتخاب حالت کدگذاری
- کدگذاری داده و افزودن کلمهکدهای تصحیح خطا
- انتخاب نسخه (اندازه)
- قرار دادن الگوهای یاب، زمانبندی و همترازی
- پر کردن ماژولهای داده
- اعمال بهترین ماسک از میان هشت ماسک و نوشتن اطلاعات قالب
از تصویر دوربین تا داده
رمزگشایی همین مراحل را برعکس اجرا میکند. اسکنر سه الگوی یاب را پیدا میکند که نسبت ۱:۱:۳:۱:۱ تیره و روشن در آنها از بیشتر تصاویر متمایز است، و با کمک الگوهای زمانبندی و همترازی شبکه را ترسیم میکند. اطلاعات قالب را میخواند، ماسک را برمیدارد و کلمهکدها را جمع میکند.
سپس رمزگشایی Reed–Solomon کلمهکدهایی را که اشتباه خوانده شدهاند تا حد سطح تصحیح خطا ترمیم میکند. اگر بیش از حد آسیب دیده باشد، کد بهجای برگرداندن داده غلط خوانده نمیشود، و برای همین کدهای QR بهندرت نتیجه بیمعنی میدهند.
چرا اندازه و کنتراست مهماند
هر مرحله به این بستگی دارد که دوربین ماژول تیره را از روشن تشخیص دهد. ماژولهای کوچک، کنتراست کم، بازتاب نور، تاری یا نبود حاشیه سکوت همگی ماژولهای بیشتری را مبهم میکنند و تصحیح خطا فقط تا حدی میتواند جبران کند. کوتاه نگه داشتن داده، کنتراست قوی و حاشیه آزاد کار رمزگشا را آسانتر میکند.