ക്യൂ.ആര് കോഡുകള് നമുക്കിന്ന് പരിചിതമാണ്. എന്നാല് അതിന്റെ പിന്നിലെ ശാസ്ത്രീയ വിവരങ്ങള് എത്രപേര് മനസ്സിലാക്കിയിട്ടുണ്ട് ? എങ്ങനെയാണ് ക്യു.ആര്. കോഡ് വിവരങ്ങളെ കൈകാര്യം ചെയ്യുന്നത് ?
[dropcap]ക്യു [/dropcap]
ആർ കോഡ് എന്നാൽ
ചിത്രത്തിന്റെ രൂപത്തിൽ ഡാറ്റ കൈമാറുന്നതിനു വേണ്ടി ഉപയോഗിക്കുന്ന ഉപാധിയാണ് ക്യു.ആർ. കോഡ് അഥവാ ക്യുക് റെസ്പോൺസ് (Quick Response) കോഡ്. ഇവ മെട്രിക്സ് കോഡ് (Matrix Code) അല്ലെങ്കിൽ ദ്വിമാന ബാർ കോഡ് എന്ന വിഭാഗത്തിൽപ്പെടുന്നു. കറുത്തതും വെളുത്തതുമായ ചതുരക്കട്ടകളാണിതിലുപയോഗിക്കുന്നത്. കറുത്ത കട്ട ഒന്നിനെയും (ഓൺ സ്ഥിതി) വെളുത്ത കട്ട പൂജ്യത്തെയും (ഓഫ് സ്ഥിതി) സൂചിപ്പിക്കുന്നു.
ക്യു.ആർ. കോഡിന്റെ അടിസ്ഥാനഘടന ചിത്രത്തില് കാണിച്ചിരിക്കുന്നു. കോഡിന്റെ ക്രമീകരണം ഉറപ്പിക്കുവാൻ വേണ്ടിയാണ് ഫൈൻഡർ പാറ്റേർൺ (Finder Pattern) ഉപയോഗിക്കുന്നത്. ടൈമിങ് പാറ്റേൺ (Timing Pattern) ഒരു കട്ടയുടെ വലിപ്പം അറിയുവാൻ വേണ്ടിയും ഉപയോഗിക്കുന്നു. ഒന്നു മുതൽ നാല്പതു വരെ വേർഷനുകൾ ക്യു ആർ കോഡിനുണ്ട്. ഇതിൽ പുതിയ വേർഷനുകളിൽ നിത്യോപയോഗം മൂലം കോഡിനുണ്ടാകുന്ന വൈകൃതം ഒഴിവാക്കാൻ വേണ്ടി അലൈന്മെന്റ് പാറ്റേൺ (Alignment Pattern) ഉപയോഗിക്കുന്നത്. ഒന്നാം വെർഷൻ ഒരു 21×21 കോഡാണ്. അതിൽ ഓരോ ദിശയിലേക്കും 21 കട്ടകളുണ്ട്. തുടർന്നുള്ള ഓരോ വേർഷനിലും 4 കട്ടകൾ വീതം രണ്ട് ദിശയിലും കൂടുന്നു. (അതിനനുസരിച്ച് വിവര സംഭരണശേഷിയും). വേർഷൻ 40 ഒരു 177×177 കോഡാണ്.
ഡീകോഡിങ്
എങ്ങനെ മറ്റു സങ്കേതങ്ങളുടെ സഹായമില്ലാതെ ഒരു ക്യു.ആർ. കോഡിലെ ഉള്ളടക്കം നമുക്ക് വായിച്ചെടുക്കാമെന്നു മനസ്സിലാക്കാം. ഇതിനായി ചിത്രം 1-ൽ കാണിച്ചിരിക്കുന്ന വേർഷൻ 1 (21×21) കോഡ് ശ്രദ്ധിക്കുക.
ആദ്യമായി കോഡിലെ ഫൈന്റർ പാറ്റേൺ ശരിയായ ഭാഗത്തല്ലെങ്കിൽ അത് ക്രമീകരിക്കുക. ചിത്രം 2-ൽ കാണിച്ചിരിക്കുന്ന നീലയും പച്ചയും കറുപ്പും ഓറഞ്ചും നിറമുള്ള ചതുരക്കട്ടകൾ (ടൈമർ പാറ്റേണും ഫൈന്റർ പാറ്റേണും അലൈന്മെന്റ് പാറ്റേണും) ഡീകോഡിങ്ങിനായി നമുക്കാവശ്യമില്ല. നീലക്കട്ടകളുള്ള നിരകൾ ഒരു ചതുരത്തിന്റെ വലിപ്പം മനസ്സിലാക്കുന്നതിനു വേണ്ടിയാണ് ഉപയോഗിക്കുന്നത്. മഞ്ഞയും ചാരക്കളറും നൽകിയിട്ടുള്ള ഭാഗത്താണ് എൻക്രിപ്റ്റ് ചെയ്യപ്പെട്ട ഡാറ്റയുള്ളത്. റോസ് കളറിൽ കാണുന്ന 3 കട്ടകൾ പ്രധാനപ്പെട്ടതാണ്. അവ ഏത് മാസ്ക് പാറ്റേണാണു (ഇതിന്റെ സഹായത്തോടെയാണു ഡീകോഡിങ് നടത്തുന്നത്. പൊതുവെ ഉപയോഗത്തിലുള്ള മാസ്ക് പാറ്റേണുകൾ ചിത്രം 3-ൽ നൽകിയിരിക്കുന്നു.) കോഡ് നിർമ്മിക്കാനുപയോഗിച്ചിരിക്കുന്നതെന്ന് സൂചിപ്പിക്കുന്നു.
ചിത്രം 1-ലെ കോഡിൽ ആ ഭാഗത്ത് കാണുന്നത് ബൈനറിയിൽ 100 (കറുപ്പ് – വെള്ള – വെള്ള) ആയതിനാൽ ചിത്രം 3-ൽ അടയാളപ്പെടുത്തിയിരിക്കുന്ന നാലാമത്തെ പാറ്റേൺ ആണ് ഉപയോഗിച്ചിരിക്കുന്നതെന്ന് നമുക്ക് മനസ്സിലാക്കാം.
ഈ പാറ്റേൺ കണ്ടെത്തിക്കഴിഞ്ഞാൽ നമുക്ക് ചെയ്യേണ്ടത് ക്യു.ആർ. കോഡിന്റെ താഴെനിന്നും മുകളിലേക്ക് ഡാറ്റയുള്ള ഭാഗത്തെ ഒന്നിടവിട്ട നിരകളിലുള്ള കറുത്ത കട്ടകൾ വെളുത്തതാക്കുകയും, വെളുത്ത കട്ടകൾ കറുത്തതാക്കുകയും ആണ്. അതായത് മാസ്ക് പാറ്റേർണിൽ കറുപ്പുള്ള ഭാഗത്തെ സ്ഥാനത്തുള്ള എല്ലാ കട്ടകളും (ബിറ്റുകൾ) നമ്മുടെ കോഡിൽ നേർവിപരീതമാക്കുക (ബിറ്റ് ഇൻവേർഷൻ). ചിത്രം 2-ൽ നമുക്ക് വേണ്ട മാസ്ക് പാറ്റേർൺ ആണ് ചാരക്കളറിൽ കാണിച്ചിരിക്കുന്നത്. മാസ്ക് പാറ്റേർൺ ഉൾപ്പെടെയുള്ള കോഡ്, ചിത്രം 4-ൽ കാണിച്ചിരിക്കുന്നു.
മാസ്ക് പാറ്റേൺ ഡീക്കോഡിങ്ങിനുപയോഗിക്കുമ്പോൾ ടൈമിങ് പാറ്റേണിന്റെ (നീലക്കട്ടകൾ) നിരയെ അവഗണിക്കാവുന്നതാണ്. ഇനി ചെയ്യേണ്ടത് അതിലെ ചാരക്കളറുള്ള നിരകളിലെ കറുത്ത കട്ടകൾ വെളുപ്പാക്കുകയും ശേഷം അവശേഷിക്കുന്ന ചാരക്കട്ടകളെ കറുപ്പാക്കുകയുമാണ്. അങ്ങനെ കറുത്ത കട്ടകൾ വെളുപ്പാക്കിയതിനു ശേഷമുള്ളത് ചിത്രം 5-ലും ബാക്കിയുള്ള ചാരക്കട്ടകൾ കറുപ്പാക്കിയതിനു ശേഷമുള്ളത് ചിത്രം 6-ലും കാണിച്ചിരിക്കുന്നു.
ഉള്ളടക്കം മനസ്സിലാക്കുന്നതിനായി താഴെ വലത്തേ മൂലയിൽ നിന്നും ഈരണ്ടു വരികൾ ഒരുമിച്ചാണു നോക്കി തുടങ്ങേണ്ടത് (ചിത്രം 7). ഇവ തമ്മിൽ ചിത്രം 8-ൽ കാണിച്ചിരിക്കുന്ന മാതിരി ഒരു കോണോടുകോൺ (Zig Zag) അനുക്രമം പിന്തുടരുക. ആദ്യത്തെ 4 ബിറ്റ് ഏത് എൻകോഡിംഗ് മോഡ് (ഉള്ളടക്കം ഏതുതരത്തിൽപ്പെട്ടതാണെന്നു) ആണുപയോഗിച്ചിരിക്കുന്നതെന്ന് സൂചിപ്പിക്കുന്നു. നമ്മുടെ കോഡിൽ (ചിത്രം 6) അതു 0100 (വെള്ള-കറുപ്പ്-വെള്ള-വെള്ള) ആയതിനാൽ ബൈറ്റ് എൻകോഡിങ്ങാതിൽ പ്രയോഗിച്ചിരിക്കുന്നതെന്ന് മനസ്സിലാക്കാം. പൊതൂവേ ഉപയോഗിക്കപ്പെടുന്ന മറ്റ് എൻകോഡിംഗ് മോഡുകൾ ന്യൂമറിക് (0001), ആൽഫാന്യൂമറിക് (0010) എന്നിവയാണ്. ഇതു കൂടാതെ വേറെയും മോഡുകളുണ്ട്.
അടുത്ത 8 ബിറ്റുകൾ എൻക്രിപ്റ്റ് ചെയ്തിരിക്കുന്ന ഡാറ്റയുടെ നീളം സൂചിപ്പിക്കുന്നു. മോഡുകൾക്കനുസരിച്ച് ഇതിന്റെ മൂല്യം വ്യത്യാസപ്പെടും. നമ്മുടെ കോഡിൽ (ചിത്രം 6) അവിടെ 00001101 ആയതിനാൽ ഡാറ്റയുടെ നീളം 13 ആണെന്ന് മനസ്സിലാക്കാം. അടുത്ത 8 ബിറ്റുകൾ 01011001 ആണ്. ഇതിന്റെ ഡെസിമൽ (Decimal) വിലയായ 89 ഏതു അടയാളത്തിന്റെ ആസ്കി (ASCII) മൂല്യമാണെന്ന് നോക്കുമ്പോൾ ‘Y’ എന്ന അക്ഷരം നമുക്ക് കിട്ടുന്നു.
ഇതുപോലെ അടുത്ത 8 ബിറ്റുകൾ 01101111 ആണ്. ഇതിന്റെ ഡെസിമലായ 111 ആസ്കിയിൽ ‘o’ എന്ന അക്ഷരത്തെ സൂചിപ്പിക്കുന്നു. അടുത്ത 8 ബിറ്റുകളായ 01110101 ന്റെ ഡെസിമൽ 117ഉം ആസ്കി ‘u’ എന്ന അക്ഷരവുമാണ്. ഈ രീതിയിൽ തുടർന്നു ചെയ്താൽ നമുക്കു ‘You are smart’ എന്ന വാചകം ഡീകോഡ് ചെയ്ത് കിട്ടുന്നതാണ്.
അവലംബം: