ડેટાથી પેટર્ન સુધી
QR કોડ બનાવવાની શરૂઆત ડેટાને બંધબેસતો એન્કોડિંગ મોડ પસંદ કરવાથી થાય છે: ન્યુમેરિક, આલ્ફાન્યુમેરિક, બાઇટ કે કાન્જી. એન્કોડર ડેટાને બિટ્સમાં ફેરવે છે, તેને 8-બિટ કોડવર્ડમાં વહેંચે છે અને પસંદ કરેલા સ્તરે Reed–Solomon ભૂલ સુધારણા કોડવર્ડ ઉમેરે છે. પછી તે સૌથી નાનું બંધબેસતું વર્ઝન પસંદ કરે છે.
કોડવર્ડ નિશ્ચિત પેટર્નને છોડીને ઝિગઝેગ માર્ગે ગ્રિડમાં ગોઠવાય છે. છેલ્લે એન્કોડર આઠ માસ્ક પેટર્નમાંથી એક લાગુ કરે છે, જેથી મોટા ખાલી વિસ્તારો કે ગૂંચવતા આકારો તૂટે, અને માસ્ક તથા ભૂલ સુધારણાનું સ્તર ફોર્મેટ ઇન્ફર્મેશનમાં નોંધે છે.
- એન્કોડિંગ મોડ પસંદ કરો
- ડેટા એન્કોડ કરો અને ભૂલ સુધારણા કોડવર્ડ ઉમેરો
- વર્ઝન (સાઇઝ) પસંદ કરો
- ફાઇન્ડર, ટાઇમિંગ અને ઍલાઇનમેન્ટ પેટર્ન મૂકો
- ડેટા મોડ્યુલ ભરો
- આઠમાંથી શ્રેષ્ઠ માસ્ક લાગુ કરો અને ફોર્મેટ ઇન્ફર્મેશન લખો
કેમેરાની છબીથી ડેટા સુધી
ડીકોડિંગ એ જ પગલાં ઉલટા ક્રમમાં ચલાવે છે. સ્કેનર ત્રણ ફાઇન્ડર પેટર્ન શોધે છે, જેનો ઘેરા અને આછાનો 1:1:3:1:1 ગુણોત્તર મોટા ભાગની છબીઓથી અલગ તરી આવે છે, અને તેમને ટાઇમિંગ તથા ઍલાઇનમેન્ટ પેટર્ન સાથે વાપરીને ગ્રિડનો નકશો બનાવે છે. તે ફોર્મેટ ઇન્ફર્મેશન વાંચે છે, માસ્ક દૂર કરે છે અને કોડવર્ડ એકત્ર કરે છે.
પછી Reed–Solomon ડીકોડિંગ ખોટા વંચાયેલા કોડવર્ડને ભૂલ સુધારણાના સ્તરની મર્યાદા સુધી સુધારે છે. જો ઘણું બગડ્યું હોય, તો કોડ ખોટો ડેટા આપવાને બદલે વંચાવામાં નિષ્ફળ જાય છે, એટલે જ QR કોડ ભાગ્યે જ ગૂંચવાયેલું પરિણામ આપે છે.
સાઇઝ અને કોન્ટ્રાસ્ટ કેમ મહત્વના છે
દરેક પગલું કેમેરા ઘેરા અને આછા મોડ્યુલને અલગ પાડી શકે તેના પર આધાર રાખે છે. નાના મોડ્યુલ, ઓછો કોન્ટ્રાસ્ટ, ચમક, ઝાંખપ કે શાંત ઝોનની ગેરહાજરી, આ બધું વધુ મોડ્યુલને શંકામાં મૂકે છે, અને ભૂલ સુધારણા ફક્ત અમુક હદ સુધી જ સહન કરી શકે. ડેટા ટૂંકો, કોન્ટ્રાસ્ટ મજબૂત અને માર્જિન ખાલી રાખવાથી ડીકોડરનું કામ સૌથી સરળ બને છે.