ডাটা কম্প্রেসন
বন্ধুরা সবচেয়ে প্রথমে চলুন জানার চেষ্টা করি যে, এই ডাটা কম্প্রেসন আসলে কি। ডাটা কম্প্রেসন হলো একটি টেকনিক, যার মাধ্যমে যেকোনো ডাটা কম্প্রেস করে ছোট সাইজের করা হয় যাতে সেই ডাটাকে কম ব্যান্ডউইথ খরচ করে শেয়ার করা যায় অথবা কম স্পেস ব্যবহার করে সেভ করে রাখা যায়। বন্ধুরা ডাটা কম্প্রেসন সাধারনত দুই ধরনের হয়ে থাকে। একটি হলো লসলেস ডাটা কম্প্রেসন আর আরেকটি হলো লসি ডাটা কম্প্রেসন।
লসলেস ডাটা কম্প্রেসন (Lossless Compression) হলো একটি পদ্ধতি যেখানে আপনি কোন ডাটা কম্প্রেস করার পরে যখন আবার পূর্বের ডাটা ফিরে পেতে চাইবেন, মানে ডিকম্প্রেস করবেন তখন ডাটাতে কোন লস থাকবেনা। এই পদ্ধতি আমরা ব্যবহার করি আমাদের প্রয়োজনীয় ডকুমেন্ট কম্প্রেস করার জন্য। কেনোনা আমরা চাইনা আমাদের প্রয়োজনীয় ফাইলের কোন তথ্য লস হয়ে যাক, তথ্য গুলো আগের মতোই স্টোরড থাকুক এবং ফাইল সাইজও অনেক কমে যাক।
আরেকটি পদ্ধতির নাম হলো লসি কম্প্রেসন (Lossy Compression)। এই পদ্ধতিতে ডাটা কম্প্রেস তো হয়ে যায় কিন্তু ডাটার কোয়ালিটি কোথাও না কোথাও লস হয়ে যাবে। এই পদ্ধতি ব্যবহার করে আমরা অডিও, ভিডিও ইত্যাদি মিউজিক কম্প্রেস করে থাকি। যেখানে কোয়ালিটি একটু আধটু খারাপ হয়ে গেলেও সমস্যা হয় না কিন্তু আমাদের ফাইল সাইজ কমানোর প্রয়োজন পরে।
ডাটা কম্প্রেসন কীভাবে কাজ করে?
চলুন সবচেয়ে প্রথমে আলোচনা করি লসলেস ডাটা কম্প্রেসন নিয়ে।
আচ্ছা এখন উদাহরণ নেওয়ার জন্য মনে করুন আপনি একটি গাণিতিক লাইন লিখলেন যেমন ধরুন “3x3x3x3x3″।
এখন খেয়াল করে দেখুন এটি কত বড় একটি গাণিতিক লাইন। এটি লিখতে অনেক খানি জায়গার প্রয়োজন পড়ছে।
কিন্তু লাইনটিকে যদি ছোট করে লিখি “3^5” তবে দেখুন এটি লিখতে অনেক সহজ এবং অনেক কম জায়গার প্রয়োজন পড়লো।
কিন্তু এর অর্থ কিন্তু একই রইলো।
তো বন্ধুরা ডাটা কম্প্রেসন পদ্ধতি অনেকটা এই ধারনার উপরই কাজ করে থাকে।
অর্থাৎ কোন ডাটা কম্প্রেস করার মাধ্যমে এর অর্থ পরিবর্তন না করেই সাইজ কমিয়ে ফেলা সম্ভব।
এখন বন্ধুরা আপনারা জানেনে যে কম্পিউটারে যতো কাজ হয়ে থাকে বা যতো ডাটা সংরক্ষিত থাকে তা সকল কাজ হয়ে থাকে বাইনারি নাম্বারে।
বাইনারি নাম্বার মানে হলো 0 এবং 1। এখন মনে করুন আপনার কাছে একটি ফাইল রয়েছে এবং
মনে করুন এটি সেভ হয়ে আছে 11110001111 এই লাইনে।
এখন এই ডাটাটি মূলত ১০টি ডিজিটে রয়েছে বা ১০ বিটসে রয়েছে মূলত।
অর্থাৎ আপনার হার্ডড্রাইভে ১০বিটস স্পেস প্রয়োজন হবে যদি আপনি এই ফাইলটি সেভ করতে চান।
এখন প্রশ্ন হলো এই ফাইলটিকে ছোট কেমন করে করা যায় বা কীভাবে কম্প্রেস করা যাবে?
এখন যদি উপরের নিয়ম অনুসারে ডাটাটিকে লিখি যেমন 1^4 0^3 1^4। তাহলে দেখুন
এই ডাটাটিকে ৬ ডিজিটের মধ্যে আমরা কম্প্রেস করে ফেললাম এবং এর অর্থ আগের অনুরুপই রইলো।
কিন্তু কম্পিউটারে সাধারনত এই রকমের কম্প্রেসন করে থাকি না।
কেনোনা 4 লিখতে গেলে সেখানে 4 এর জন্য আবার আলাদা বাইনারি সংখ্যা লিখতে হবে।
ফলে প্রসেস আরো কঠিন হয়ে যেতে পারে। তো ডাটা কম্প্রেস করার জন্য মূলত আলাদা আলাদা অ্যালগোরিদম ব্যবহার করা হয়ে থাকে।
বিভিন্ন পদ্ধতিতে ডাটা কম্প্রেস করে আবার সেই একই অ্যালগোরিদম ব্যবহার করে ডাটা ডিকম্প্রেস করা হয়ে থাকে।
যেমন ধরুন আপনি এক লাইনের যতো গুলো 1 রয়েছে তার জন্য
একটি আলাদা সংখ্যা লিখলেন এবং 0 গুলোকে কোন পাওয়ার দিয়ে লিখলেন
। তবে আপনার লেখা ডাটাটি হয়ে দাঁড়ালো 4 0^3 4।
তো বন্ধুরা দেখুন ১০টি ডিজিটের একটি লাইনকে বানিয়ে ফেলা হলো ৪ ডিজিটের লাইন।
এখন আমি কোন সূত্র ব্যবহার করে ফাইলটি কম্প্রেস করেছি তা জানা থাকলে সহজেই আগের ফাইলে ফিরে যাওয়া সম্ভব।
আগের ফাইলে ফিরে আসার পরে আপনার ডাটা হয়ে যাবে 11110001111 অর্থাৎ এতে কোন লস হবে না।
আসলে এটি একটি উদাহরণ দিয়ে আপনাকে বুঝানোর চেষ্টা করলাম।
বাস্তবে ডাটা কম্প্রেস করতে অনেক প্রকারের অ্যালগোরিদম ব্যবহার করা হয়ে থাকে।
অনেক ডেভেলপার রয়েছেন যারা শুধু এই কাজে লেগে থাকে যে কীভাবে ডাটা আরো বেশি কম্প্রেস করা যায় এবং
কোন অ্যালগোরিদম ব্যবহার করলে ডাটার সাইজ বেশি কমানো যায়।
এবার চলুন জেনে নেওয়া যাক লসি কম্প্রেসন কীভাবে কাজ করে তার সম্পর্কে।
আমি আগেই বলেছি আমরা এই পদ্ধতি ব্যবহার করে কোন অডিও, ভিডিও কম্প্রেস করে থাকি।
মনে করুন কোন ভিডিও তে এক প্রকারের কালার রয়েছে এবং প্রত্যেকটি জিনিষ অনেক স্পষ্ট দেখা যাচ্ছে।
কিন্তু ভিডিও ফাইলটির সাইজ অনেক বড়।
এখন আপনি যদি ভিডিওটির বিট রেট কমিয়ে দেন তবে হয়তো কালার একটু পরিবর্তন হয়ে যাবে কিন্তু সাইজ অনেক কমে যাবে।
তাছাড়া কোন ভিডিও এর ফ্রেম রেট কমিয়েও সাইজ কম করা হয়ে থাকে।
অডিও ফাইল গুলোতেও আপনি বিট রেট কমিয়ে ফাইল সাইজ কমিয়ে আনতে পারেন।
একটি ৩২০ কেবিপিএস বিট রেটের অডিও ফাইল এবং ১২৮ কেবিপিএস বিট রেটের
অডিও ফাইলের পার্থক্য হয়তো আপনি নির্ণয় করতে পারবেন না।
কিন্তু দুটি ফাইলের মধ্যের সাইজ কিন্তু অনেক কম হয়ে থাকে।
এভাবে আপনি ফটোর সাইজও কমাতে পারেন।
আপনি ফেসবুক বা হোয়াটস অ্যাপে যতো বড় ফটোই আপলোড করুন না কেন সেই স্বয়ংক্রিয় ভাবে কম্প্রেস হয়ে যায়।
আপনি ৫ মেগাবাইটসের ফটো শেয়ার করার পরে ফেসবুকে সেটি হয়ে যায় ৫০ কিলোবাইটস।
আপনার ফোনের স্ক্রীনে হয়তো ফটোটি দেখতে কোন সমস্যা হবে না কিন্তু ফটো জুম করতে গেলে সমস্যা হবে।
0 coment rios: