এনকোডিং মোড

অন্য নাম: ডেটা মোড, নিউমেরিক মোড, অক্ষর-সংখ্যা মোড, বাইট মোড, কাঞ্জি মোড, encoding modes

সংজ্ঞা

এনকোডিং মোড হলো QR কোড অক্ষরকে বিটে গুঁজে রাখার উপায়। প্রধান চারটি মোড হলো নিউমেরিক, অক্ষর-সংখ্যা মিশ্র (আলফানিউমেরিক), বাইট ও কাঞ্জি, আর একটি কোডই এর মধ্যে মোড বদলাতে পারে।

চারটি প্রধান মোড

প্রতিটি মোড অক্ষরের পরিসর আর ঘনত্বের মধ্যে একটা বিনিময় করে। নিউমেরিক মোড শুধু অঙ্ক সামলায়, কিন্তু তিনটি অঙ্ককে ১০ বিটে ঠেসে ভরে; আর বাইট মোড যেকোনো বাইট সামলায়, তবে প্রতিটির জন্য ৮ বিট খরচ করে।

অক্ষর-সংখ্যা মিশ্র মোড ৪৫টি অক্ষরের একটি সেট ধরে: অঙ্ক ০–৯, বড় হাতের অক্ষর A–Z, স্পেস এবং $ % * + - . / ও কোলন চিহ্ন। ছোট হাতের অক্ষর এই সেটে নেই, আর সে কারণেই পুরোটা বড় হাতের অক্ষরে লেখা URL ছোট হাতের একই URL-এর চেয়ে ছোট কোড তৈরি করতে পারে।

  • নিউমেরিক: অঙ্ক ০–৯, প্রতি ৩ অঙ্কে ১০ বিট
  • অক্ষর-সংখ্যা মিশ্র: ৪৫টি অক্ষর, প্রতি ২ অক্ষরে ১১ বিট
  • বাইট: যেকোনো ৮ বিটের মান, প্রতি বাইটে ৮ বিট
  • কাঞ্জি: Shift JIS-এর দুই বাইটের অক্ষর, প্রতিটির জন্য ১৩ বিট

মোড নির্দেশক ও সেগমেন্ট

ডেটার প্রতিটি ধারা শুরু হয় ৪ বিটের একটি মোড নির্দেশক ও একটি অক্ষর গণনা দিয়ে, যার দৈর্ঘ্য মোড ও ভার্সনের ওপর নির্ভর করে। একটি কোডে এমন একাধিক সেগমেন্ট থাকতে পারে, যেমন লম্বা অঙ্কের ধারার জন্য নিউমেরিক এবং বাকিটার জন্য বাইট, যা ফলাফলকে ছোট করতে পারে।

অন্যান্য ৪ বিটের নির্দেশক অক্ষর সেটের বদলে বৈশিষ্ট্য জানায়: অক্ষর এনকোডিং ঘোষণা করার জন্য ECI, একাধিক কোডে ডেটা ভাগ করার জন্য স্ট্রাকচার্ড অ্যাপেন্ড, আর GS1 ও অন্যান্য শিল্পভিত্তিক ডেটা ফরম্যাটের জন্য FNC1। চারটি শূন্য বিটের একটি টার্মিনেটর ডেটা শেষ করে।

  • নিউমেরিক 0001, অক্ষর-সংখ্যা মিশ্র 0010, বাইট 0100, কাঞ্জি 1000
  • ECI 0111, স্ট্রাকচার্ড অ্যাপেন্ড 0011
  • FNC1 প্রথম অবস্থান 0101, দ্বিতীয় অবস্থান 1001
  • টার্মিনেটর 0000

বাইট মোড ও অক্ষর সেট

বাইট মোডের ব্যাখ্যায় স্ট্যান্ডার্ডের ডিফল্ট হলো ISO-8859-1 (Latin-1), কিন্তু আজকের বেশিরভাগ জেনারেটর UTF-8 লেখে, যাতে উচ্চারণচিহ্নসহ অক্ষর, অন্যান্য লিপি ও ইমোজি টিকে থাকে। রিডার সাধারণত বাইট পরীক্ষা করে UTF-8 শনাক্ত করে।

অক্ষর সেট যেখানে সন্দেহাতীত হতে হবে, সেখানে ECI হেডার তা স্পষ্টভাবে ঘোষণা করতে পারে। এটি না থাকলে রিডার কখনো কখনো ভুল আন্দাজ করে গোলমেলে অক্ষর দেখাতে পারে।

সচরাচর জিজ্ঞাসা

ছোট হাতের অক্ষর থাকলে আমার QR কোড বড় হয় কেন?

ছোট হাতের অক্ষর অক্ষর-সংখ্যা মিশ্র সেটে নেই, তাই লেখাটিকে প্রতি অক্ষরে ৫.৫ বিটের বদলে ৮ বিটের বাইট মোড ব্যবহার করতে হয়। বড় হাতের অক্ষর, অঙ্ক ও কয়েকটি চিহ্ন আরও ঘন হয়ে বসে।

QR কোডে কি ইমোজি বা ল্যাটিন-ভিন্ন লেখা রাখা যায়?

হ্যাঁ, UTF-8 ব্যবহার করে বাইট মোডে, যা বেশিরভাগ জেনারেটর ও ফোনের রিডার সমর্থন করে। এমন প্রতিটি অক্ষর কয়েক বাইট নেয়, তাই ধারণক্ষমতা কমে যায়।

একটি QR কোডে কি নিউমেরিক আর টেক্সট ডেটা মেশানো যায়?

হ্যাঁ। ডেটাকে সেগমেন্টে ভাগ করা যায়, প্রতিটির নিজস্ব মোড থাকে, আর ভালো এনকোডার সবচেয়ে ছোট কোড দেয় এমন ভাগ বেছে নেয়।

সূত্র ও স্ট্যান্ডার্ড

সব শব্দ