আমাদের কথা খুঁজে নিন

   

আসুন শিখি কী করে কাজ করে JPEG [প্রথম পর্ব]

এই ব্লগের কোন লেখা আমার অনুমতি ব্যতীত কোথাও ব্যবহার না করার অনুরোধ করছি

আমরা যারা কম্পিউটার ব্যবহার করি, বা অন্ততপক্ষে মোবাইল ব্যবহার করি, সবাই কম বেশি একটি শব্দের সঙ্গে পরিচিত-JPEG. আমরা অহরহ ব্যবহার করে চলেছি এটা, কম্পিউটারে, ইন্টারনেটে, মোবাইলে, আইপডে, ক্যামেরাতে....মোটকথা যেখানেই ডিজিটাল ইমেজ, সেখানেই JPEG. কেন এতটা জনপ্রিয় এই JPEG, JPEG জিনিসটাই বা আসলে কী? ব্যবহারকারীদের অধিকাংশই জানেন JPEG হচ্ছে একটা ডিজিটাল ইমেজ ফরম্যাট, যেমন রয়েছে png, bmp, gif বা tif। JPEG সবচেয়ে সেরা ডিজিটাল ইমেজ ফরম্যাট- এমনটা নয়। JPEG সবচেয়ে সহজ মেকানিজম, তাও নয়। তবুও এটা এত জনপ্রিয় তার কারণ JPEG এর পোর্টেবিলিটি এবং স্টোরেজ ডিভাইস বা মেমরিতে অল্প জায়গা নেয়াটা। এটাও হয়ত কেউ কেউ জানেন, তবে বাজি ধরতে পারি, এই লেখা যাঁরা পড়ছেন তাঁদের অধিকাংশই জানেন না কীভাবে কাজ করে এই JPEG।

আপনাদের জন্যই এই পোস্ট, হয়তো এটা জেনে আপনার জীবনে কোন উন্নতি বা অবনতি হবে না, তবু তো আমরা জানার চেষ্টা করি নিত্য নতুন জিনিস- এটাই মানুষের ধর্ম। আর যাঁরা জানেন কী করে কাজ করে এই JPEG, তাঁদের অনুরোধ করছি এই বিশাল পোস্ট পড়ে নিজের মূল্যবান সময় নষ্ট না করার জন্যে। প্রথমত, আমাদের জেনে নেয়া উচিৎ 'ডিজিটাল ইমেজ' জিনিসটা আসলে কী? আমাদের প্রথাগত(মেক্যানিকাল) যেসব ক্যামেরা ছিল সেসব দিয়ে তোলা ছবিগুলো রক্ষিত হত ফিল্ম নামক একটা স্টোরেজ টেপে, আলোর কিছু সাধারণ ধর্ম ব্যবহার করে। ঐগুলোকে আমরা ডিজিটাল বলতাম না তার কারণ ঐ ছবিগুলো তৈরীতে কোন 'ডিজিট' বা সংখ্যার প্রত্যক্ষ ব্যবহার করতে হতো না। কিন্তু যখনই কম্পিউটার বা কোন ইলেকট্রনিক ডিভাইসে আমরা ছবি রক্ষণাবেক্ষণ করার কথা ভাবি, আমাদেরকে ভাবতে হয় মূলত 0 আর 1 এই দুটি সংখ্যা বা ডিজিট নিয়ে, তাই আমরা এই ধরণের ছবিগুলোকে ডিজিটাল বলি।

সহজ ভাষায় এটাই হচ্ছে ডিজিটাল শব্দের অর্থ(আমি এড়িয়ে গেলাম এর জটিল টেকনিক্যাল টার্মিনোলজিগুলো), যা যে কোন ধরণের ইলেকট্রনিক ফাইলের জন্য প্রযোজ্য। এখন আসুন যদি আমরা একটি ডিজিটাল(ইলেকট্রনিক) ক্যামেরা দিয়ে ছবি তুলি সেটা ছবিটাকে প্রাথমিক অবস্থায় কী করে সংরক্ষণ করে সেটা দেখি। আমরা জানি লাল, সবুজ ও নীল এই তিনটি রং হচ্ছে মৌলিক রং, যেগুলোকে ব্যবহার করে অন্য সব রং তৈরী করা যায়। লাল=Red=R, সবুজ=Green=G, নীল=Blue=B বা এক কথায় এই রংগুলোকে আমরা RGB কালার হিসেবে চিন্তা করতে পারি। একটা ডিজিটাল ইমেজ হচ্ছে মূলত একটা ম্যাট্রিক্স বা টেবিল যার কিছু কলাম থাকবে এবং কিছু রো থাকবে।

ম্যাট্রিক্সের প্রতিটা উপাদান বা টেবিলের প্রতিটি ঘরকে আমরা বলি একটি পিক্সেল। যদি একটি ডিজিটাল ছবিতে ৬৪০টি রো এবং ৪৮০টি কলাম থাকে, তাহলে এখানে মোট পিক্সেল সংখ্যা হচ্ছে ৬৪০×৪৮০=৩০৭২০০টি যাকে আমরা বলে থাকি ৬৪০×৪৮০ রেজুলিউশনের একটি ছবি। ডিজিটাল কালার ইমেজের ক্ষেত্রে প্রতিটি পিক্সেলকে আমরা উপস্থাপন করি R, G এবং B এর তিনটি মানের মিশ্রণে। একটি রং এর জন্যে আমরা সাধারণত ব্যবহার করি ৮টি বাইনারি বিট(আটটি 0 অথবা 1 এর একটি কম্বিনেশন)। যেহেতু ২^৮=২৫৬, সেহেতু আট বিট দিয়ে আমরা লিখতে পারি ০-২৫৫ পর্যন্ত যে কোন সংখ্যা, অর্থাৎ R অথবা G অথবা B এর প্রতিটির জন্য ২৫৬টি করে ভিন্ন ভিন্ন রঙের কম্বিনেশন আমরা দিতে পারি প্রতিটি পিক্সেলের ক্ষেত্রেই।

সোজা ভাষায়, প্রতিটি পিক্সেলে তিনটি রং ব্যবহার করার জন্য আমাদের প্রয়োজন ৩×৮=২৪টি বিট, তাই, ৬৪০×৪৮০ রেজুলিউশনের একটি ছবির জন্য আমাদের প্রয়োজন ৬৪০×৪৮০×২৪টি বিট বা ৭৩৭২৮০০ সংখ্যক বিট বা (৮বিট=১বাইট)৯২১৬০০÷১০২৪=৯০০ কিলোবাইট বা ৯০০÷১০২৪=০.৮৮ মেগাবাইট। এই ছবিটা হচ্ছে একেবারে র' ইমেজ যাকে কম্পিউটারের পরিভাষায় আমরা বলি বিটম্যাপ ইমেজ বা bmp ইমেজ। একবার ভাবুন তো, আমরা কত শত শত ডিজিটাল ইমেজ ব্যবহার করি প্রতিদিন, যদি এতগুলো মেগাবাইট জায়গা লাগে মাত্র ৬৪০×৪৮০ রেজুলিউশনের একটি bmp ইমেজের জন্য, একটা মোবাইল ফোনের মতো ছোট ডিভাইসে কয়টা ছবি রাখতে পারতাম? বাস্তবে কিন্তু আমরা আরো বেশি রেজুলিউশনের ছবি ব্যবহার করে থাকি, সেক্ষেত্রেই বা কী হতো? প্রযুক্তি সবসময় তৈরী হয় মানুষের প্রয়োজন থেকে, যেখানে প্রয়োজন নেই, সেখানে প্রযুক্তিও নেই। bmp বা বিটম্যাপ ইমেজের জন্য এই বিশাল জায়গা প্রদান করা অসম্ভব হয়ে পড়ে স্বল্প মেমরি ও স্বল্প স্টোরেজ ডিভাইস সম্পন্ন কম্পিউটিং ডিভাইসগুলোর ক্ষেত্রে, তাই একদিন তৈরী হয় অনেকজন গবেষক ও প্রকৌশলিদের একটি দল, যার নাম- Joint Photographic Experts Group বা সংক্ষেপে JPEG। এই গ্রুপের মূল লক্ষ্য ছিল এমন একটি ডিজিটাল ইমেজ ফরম্যাট তৈরী করা যা মূল ছবির গুণাবলী প্রায় অক্ষুণ্ন রাখবে অথচ জায়গা নিবে অনেক কম।

এর পাশাপাশি এই ফরম্যাটটি এমনভাবে তৈরী করতে হবে যেন যে কোন ইলেকট্রনিক ডিভাইস অল্প সময়ে এবং অল্প পরিশ্রমে ফরম্যাটটি তৈরী করতে পারে অর্থাৎ এলগরিদমটার কম্প্লেক্সিটি যেন সামান্য হয়। এতসব জিনিস চিন্তা করে তাঁরা যেই ফরম্যাটটি তৈরী করেন তাই আজ আমরা ব্যবহার করি JPEG বা JPG নামে। কী বোঝা গেল? এটুকুই বোঝা গেল যে JPEG মূলত একটা কম্প্রেসড ইমেজ ফরম্যাট যা একটি বিটম্যাপ ইমেজ থেকে তৈরী করতে হয় এবং যেটাকে ডিজিটাল ইমেজ নিয়ে কাজ করে এমন যে কোন ডিভাইস তৈরী করার ক্ষমতা রাখে। শুধু তৈরী করলেই হবে না, এটাকে দেখানোর ব্যবস্থা অর্থাৎ ডিকম্প্রেস করার কাজটাও ডিভাইসকে করতে হবে। সহজ ভাষায় আমরা একটা এনালজি চিন্তা করতে পারি এইভাবে- এক পৃষ্ঠা এ-ফোর সাইজের কাগজ আপনি শার্টের বুকপকেটে ঢুকাতে চাচ্ছেন, এটা কী সম্ভব? সাধারণভাবে সম্ভব নয়।

আমরা কী করতে পারি? আমরা এটাকে বেশ কয়েকবার ভাঁজ করতে পারি, এখন অনায়াসেই ঢুকে যাবে আপনার বুকপকেটে। ধরুন কাগজটাতে কিছু লেখা আছে। এখন যদি আমি বলি, ভাই আমাকে লেখাটা দেখান, আপনি কি ভাঁজ করে রেখেই আমাকে দেখাতে পারবেন? নিশ্চয়ই না। আপনাকে সেই ভাঁজটা আবার খুলতে হবে। এই কাগজটা হচ্ছে আমাদের র' ইমেজ বা বিটম্যাপ (bmp) ইমেজ, ভাঁজ করার টেকনিকটা হচ্ছে ইমেজ কম্প্রেসন এবং পুনরায় ভাঁজ খুলে কাগজের লেখা (কন্টেন্ট) দেখানোর পদ্ধতিটা হচ্ছে ইমেজ ডিকম্প্রেসন।

ঠিক একইভাবে একটা ইমেজকে শুধু JPEG ফরম্যাটে সেভ করলেই চলবে না, কোন ইউজার দেখতে চাইলে তাকে ডিকম্প্রেস করার ব্যবস্থাও রাখতে হবে। অর্থাৎ ফিরিয়ে নিয়ে যেতে হবে সেই বিটম্যাপ বা আরজিবি ইমেজের কনসেপ্টে। আজ এই পর্যন্তই থাক, ভালো লাগলে আওয়াজ দিয়ে যান, আগামীকাল দেখা হবে ঠিক একই সময়ে, রাত বারোটার কাছাকাছি সময়ে।

অনলাইনে ছড়িয়ে ছিটিয়ে থাকা কথা গুলোকেই সহজে জানবার সুবিধার জন্য একত্রিত করে আমাদের কথা । এখানে সংগৃহিত কথা গুলোর সত্ব (copyright) সম্পূর্ণভাবে সোর্স সাইটের লেখকের এবং আমাদের কথাতে প্রতিটা কথাতেই সোর্স সাইটের রেফারেন্স লিংক উধৃত আছে ।