Lossy বনাম Lossless-এর সহজ ব্যাখ্যা
কম্প্রেশন আসলে কী বাদ দিয়ে দেয়, কেন আপনি সাধারণত তা দেখতে পান না এবং কোন পর্যায়ে গিয়ে তা দৃশ্যমান হয়।
Lossless কম্প্রেশন একটি ছবিকে এমনভাবে সংরক্ষণ করে যাতে এটিকে হুবহু আগের মতো তৈরি করা যায়, অন্যদিকে lossy কম্প্রেশন স্থায়ীভাবে এমন কিছু তথ্য বাদ দিয়ে দেয় যা মানুষের চোখে ধরা পড়ার সম্ভাবনা কম। এই একটি পার্থক্যের কারণেই একটি ছবি কোনো দৃশ্যমান পরিবর্তন ছাড়াই ১০ গুণ ছোট হয়ে যেতে পারে, এবং ঠিক এই কারণেই একই ট্রিক একটি স্ক্রিনশটের ক্ষেত্রে কাজ করে না।
Lossy কম্প্রেশনের সমস্যা হলো এর ক্ষতি ক্রমান্বয়ে জমতে থাকে। প্রতিবার সেভ করার সময় এটি আরও কিছুটা তথ্য বাদ দেয়, তাই একটি JPEG বারবার ওপেন এবং রি-সেভ করলে এটির মান এমনভাবে নষ্ট হয় যা একটি PNG ওপেন করলে কখনোই হয় না। একটি lossless মাস্টার ফাইল নিজের কাছে রাখুন, ব্যবহারের জন্য lossy কপি এক্সপোর্ট করুন এবং কপির ওপর কাজ না করে সবসময় মূল মাস্টার ফাইল থেকে পুনরায় এক্সপোর্ট করুন।
Lossy কম্প্রেশন আসলে কী বাদ দেয়
Lossy কম্প্রেশন সূক্ষ্ম ডিটেইল এবং রঙের সামান্য পার্থক্যগুলো বাদ দিয়ে দেয় যা মানুষের চোখ সহজে ধরতে পারে না। এই সিদ্ধান্তগুলো অনুমানের ওপর ভিত্তি করে নয়, বরং মানুষের দৃষ্টিশক্তির পরিমাপকৃত সীমার ওপর ভিত্তি করে নেওয়া হয়।
মানুষের চোখ রঙের পরিবর্তনের চেয়ে ব্রাইটনেস বা উজ্জ্বলতার পরিবর্তন অনেক বেশি নিখুঁতভাবে ধরতে পারে, তাই JPEG রঙের তথ্য কম রেজোলিউশনে সংরক্ষণ করে এবং ব্রাইটনেসের ডিটেইল অক্ষুণ্ণ রাখে। এই ফরম্যাটটি ছবির ছোট ছোট ব্লকের ভেতরের সূক্ষ্ম টেক্সচারকেও সহজ করে ফেলে, কারণ সামান্য মসৃণ করা ঘাসের টুকরোও ঘাসের মতোই দেখায় অথচ এতে ডেটা খরচ হয় খুবই সামান্য।
Lossless কম্প্রেশন যেভাবে কাজ করে
Lossless কম্প্রেশন ছবির ভেতরের প্যাটার্নগুলো খুঁজে বের করে এবং কোনো কিছু বাদ না দিয়েই সেগুলোকে আরও সংক্ষেপে প্রকাশ করে। ফাইলটি পুনরায় তৈরি করলে একদম মূল ফাইলের মতো হুবহু পিক্সেল পাওয়া যায়, বাইটে বাইটে মিল থাকে।
৪০০টি একই রকম সাদা পিক্সেলের একটি সারিকে ৪০০টি আলাদা মান হিসেবে না লিখে একটি মাত্র নির্দেশ হিসেবে রেকর্ড করা যেতে পারে, যার কারণে ফ্ল্যাট কালার নাটকীয়ভাবে সংকুচিত বা কম্প্রেস হয় এবং ফটোগ্রাফিক নয়েজ প্রায় একেবারেই কম্প্রেস হয় না। PNG এভাবেই কাজ করে, ঠিক যেমনটা WebP তার lossless মোডে করে এবং ZIP আর্কাইভের ভেতরের কম্প্রেশনও একইভাবে কাজ করে।
কোন ফরম্যাটটি কেমন
| Format | Type | Transparency | Best for |
|---|---|---|---|
| JPEG | Lossy only | No | Photographs |
| PNG | Lossless only | Yes | Screenshots, logos, diagrams |
| WebP | Both modes | Yes | Almost everything on the web |
| AVIF | Both modes | Yes | Large photographs |
| HEIC | Lossy, lossless possible | Yes | Phone camera storage |
| GIF | Lossless, 256 colours | Yes, single colour | Little, mostly replaced |
| BMP | Effectively uncompressed | Limited | Nothing current |
WebP এবং AVIF হলো সবচেয়ে দরকারী ফরম্যাট, কারণ এই দুটিই উভয় মোড অফার করে। ফলে একটি মাত্র ফরম্যাট দিয়েই একটি ছবি এবং একটি লোগো উভয়কেই সঠিকভাবে হ্যান্ডেল করা যায়, যা JPEG বা PNG একা করতে পারে না।
কেন বারবার সেভ করলে JPEG-এর ক্ষতি হয়
প্রতিবার lossy সেভ করার সময় এমন একটি ছবি থেকে ডিটেইল বাদ দেওয়া হয় যা ইতিমধ্যেই ডিটেইল হারিয়েছে, এবং এর ফলে ক্ষতি ক্রমান্বয়ে বাড়তেই থাকে। দ্বিতীয়বার সেভ করার সময় প্রথমবার বাদ যাওয়া অংশ পুনরুদ্ধার করা সম্ভব হয় না, বরং অবশিষ্ট অংশ থেকে আরও বেশি ডিটেইল হারিয়ে যায়।
৫ বা ৬ বার এমন করার পর মসৃণ অংশগুলোতে ব্লক বা চারকোনা দাগ এবং ধারালো প্রান্তগুলোর চারপাশে হ্যালো বা আবছা আলোর মতো দাগ স্পষ্ট হয়ে ওঠে। এই সমস্যাটি সবচেয়ে বেশি দেখা যায় বারবার শেয়ার করা ছবিগুলোর ক্ষেত্রে, কারণ বিভিন্ন মেসেজিং অ্যাপের মাধ্যমে ফরোয়ার্ড করা একটি ছবি কেউ এডিট করার আগেই হয়তো ৪ বা ৫ বার এনকোড হয়ে যায়। প্রতিবার মূল ফাইল থেকে কাজ করলে এই সমস্যাটি পুরোপুরি এড়িয়ে যাওয়া সম্ভব।
কখন lossy সঠিক পছন্দ
- ওয়েবসাইটের ছবিগুলোর জন্য, যেখানে ৭০ শতাংশ সাইজ কমিয়ে ফেললেও ভিজিটরদের চোখে তা ধরা পড়ে না।
- অনলাইন শপের প্রোডাক্ট ইমেজের জন্য, যেখানে পেজের স্পিড সরাসরি বিক্রির ওপর প্রভাব ফেলে।
- আপলোড ফর্মের ফটোর জন্য, যেখানে কঠোর KB লিমিটের কারণে অন্য কোনো বিকল্প থাকে না।
- ইমেইলের ছবির জন্য, যেখানে প্রতিটি কিলোবাইট ফোনে ডাউনলোড করতে হয়।
- সোশ্যাল মিডিয়া পোস্টের জন্য, যেখানে নেটওয়ার্ক এমনিতেই ফাইলটিকে পুনরায় কম্প্রেস করবে।
কখন lossless সঠিক পছন্দ
- মাস্টার ফাইল এবং মূল ফাইলের জন্য যা পরবর্তীতে এডিট বা পুনরায় এক্সপোর্ট করা হবে।
- স্ক্রিনশট এবং ডায়াগ্রামের জন্য, যেখানে ধারালো প্রান্ত এবং টেক্সট lossy কম্প্রেশনের কারণে নষ্ট হয়ে যায়।
- লোগো এবং ব্র্যান্ড অ্যাসেটের জন্য যা অন্য কাউকে তাদের নিজস্ব কাজে ব্যবহারের জন্য দেওয়া হয়।
- মেডিকেল, আইনি এবং বৈজ্ঞানিক ছবির জন্য, যেখানে পরিবর্তিত পিক্সেলের কারণে বড় ধরনের ভুল বোঝাবুঝি হতে পারে।
- ট্রান্সপারেন্সি বা স্বচ্ছতা আছে এমন যেকোনো কিছুর জন্য যার প্রান্তগুলো একদম নিখুঁত থাকা প্রয়োজন।
কোয়ালিটি সেটিং-এর সহজ ব্যাখ্যা
কোয়ালিটি নম্বরটি নির্ধারণ করে যে কতটা আগ্রাসীভাবে ডিটেইল বাদ দেওয়া হবে, এবং এটি কোনো কিছুর শতাংশ বা পার্সেন্টেজ নয়। কোয়ালিটি ৫০ মানে এই নয় যে ছবির মান অর্ধেক হয়ে গেছে, আর কোয়ালিটি ১০০ মানেও lossless নয়।
এই নম্বরটি নির্দেশ করে যে এনকোডার ছবির প্রতিটি ব্লককে কতটা সহজ বা সিম্প্লিফাই করবে। কোয়ালিটি ১০০-তেও JPEG তথ্য বাদ দেয়, যার কারণে এই সেটিংটি সবকিছু সংরক্ষণ করার বদলে উল্টো স্পেস নষ্ট করে। বিভিন্ন ফরম্যাট এই স্কেলটি ভিন্নভাবে ব্যবহার করে, তাই WebP-তে ৮০ এবং AVIF-এ ৬০ কোয়ালিটি JPEG-এর ৮৫ কোয়ালিটির সমতুল্য দেখায়।
কীভাবে একটি দীর্ঘস্থায়ী ওয়ার্কফ্লো তৈরি করবেন
আপনার লাইব্রেরির ছবিগুলোর ক্ষতি এড়াতে এই ৫টি নিয়ম মেনে চলুন।
- মূল ক্যামেরা বা ডিজাইন ফাইলটি অক্ষুণ্ণ রাখুন, এমন একটি ফোল্ডারে যা থেকে আপনি কখনোই সরাসরি এক্সপোর্ট করেন না।
- ডেলিভারি করা JPEG ফাইলের ওপর কাজ না করে সবসময় একটি lossless কপির ওপর এডিট করুন।
- প্রতিবার আগের এক্সপোর্ট করা ফাইল থেকে নয়, বরং মূল মাস্টার ফাইল থেকে ডেলিভারি কপি এক্সপোর্ট করুন।
- কোথায় ব্যবহার করা হবে তার ওপর ভিত্তি করে ডেলিভারি ফরম্যাট বেছে নিন, যেমন ওয়েবের জন্য WebP এবং ফর্ম ও ইমেইলের জন্য JPG ব্যবহার করুন।
- নতুন সাইজ বা ফরম্যাটের প্রয়োজন হলে পুনরায় কম্প্রেস না করে মূল ফাইল থেকে আবার এক্সপোর্ট করুন।
৩ নম্বর নিয়মটিই সবচেয়ে বেশি ভাঙা হয়। একটি বিদ্যমান এক্সপোর্ট করা ফাইলকে পুনরায় কম্প্রেস করা সাময়িকভাবে দ্রুত মনে হতে পারে, কিন্তু এটি প্রতিবার ফাইলের মান আরও এক ধাপ কমিয়ে দেয়।
কেন একটি ZIP ফাইল JPEG-এর সাইজ কমাতে পারে না
JPEG ফাইলের একটি ফোল্ডারকে ZIP আর্কাইভে কম্প্রেস করলে প্রায় কোনো সাইজ কমে না, কারণ ছবিগুলো ইতিমধ্যেই কম্প্রেস করা থাকে। ২০০টি ছবির একটি ZIP ফাইল সাধারণত মূল ছবিগুলোর চেয়ে মাত্র ১ থেকে ৩ শতাংশ ছোট হয়।
ZIP মূলত lossless কম্প্রেশন ব্যবহার করে, যা পুনরাবৃত্তি খুঁজে বের করার মাধ্যমে কাজ করে, আর একটি lossy এনকোডার ইতিমধ্যেই ছবির ভেতরের বেশিরভাগ পুনরাবৃত্তি বাদ দিয়ে দিয়েছে। একই ফোল্ডারে যদি আনকম্প্রেসড BMP ফাইল থাকত, তবে তা নাটকীয়ভাবে ছোট হয়ে যেত, কারণ সেটির ওপর আগে কোনো কাজ করা হয়নি। অনেকগুলো ফাইলকে একটি ডাউনলোডে রূপান্তর করার জন্য ZIP এখনও দরকারী, যা মূলত সুবিধার জন্য করা হয়, সাইজ কমানোর জন্য নয়।
একটি ছবি কতটা কম্প্রেসড তা কি বোঝা সম্ভব
ফাইলের সাইজের সাথে পিক্সেল সংখ্যার তুলনা করুন, কারণ প্রতি পিক্সেলে ১ বাইটের চেয়ে অনেক কম সাইজের ছবিগুলো সাধারণত ভারী কম্প্রেশনের মধ্য দিয়ে গেছে। ৬০ KB সাইজের একটি ১০০০ বাই ১০০০ পিক্সেলের ছবিকে অনেক বেশি কম্প্রেস করা হয়েছে, যেখানে একই ছবি ৪০০ KB সাইজে থাকলে তা করা হয়নি।
কোথায় দেখতে হবে তা জানা থাকলে চোখ দিয়ে দেখেও এটি বোঝা সম্ভব। ১০০ শতাংশ জুম করুন এবং মসৃণ অংশগুলোতে হালকা চারকোনা দাগ এবং ধারালো প্রান্তগুলোর চারপাশে আবছা আলোর মতো দাগ বা হ্যালো আছে কিনা তা পরীক্ষা করুন। ফাইলটি যে টুল দিয়েই তৈরি করা হোক না কেন, এই ত্রুটিগুলো ঠিক একই জায়গায় দেখা যায়, তাই এই পরীক্ষাটি দ্রুত এবং নির্ভরযোগ্য।
Lossy কম্প্রেশনের ক্ষতি কি মেরামত করা সম্ভব
না, বাদ দেওয়া ডিটেইল আর পুনরুদ্ধার করা সম্ভব নয়, কারণ সেই তথ্যগুলো ফাইলের কোথাও সংরক্ষিত থাকে না। একটি ক্ষতিগ্রস্ত JPEG ফাইলকে PNG-তে রূপান্তর করলে ফাইলের সাইজ বড় হবে ঠিকই, কিন্তু ক্ষতি একই থেকে যাবে।
কিছু এডিটিং টুল JPEG-এর ত্রুটিগুলো মসৃণ করে দেয়, যা ক্ষতি মেরামত করার বদলে কেবল তা লুকিয়ে রাখে এবং এর ফলে আসল ডিটেইলগুলোও ঝাপসা হয়ে যায়। একমাত্র আসল সমাধান হলো মূল ফাইলে ফিরে যাওয়া। মাস্টার ফাইলগুলো সংরক্ষণ করার এটিই ব্যবহারিক কারণ, এবং ক্যামেরা থেকে পাওয়া মূল ফাইলের ফোল্ডারটি ডিস্কের যে জায়গা নেয় তার চেয়ে অনেক বেশি মূল্যবান।
আসল টুলগুলোতে এই শব্দগুলো যেভাবে থাকে
সফটওয়্যারগুলোতে সাধারণত সরাসরি lossy এবং lossless শব্দগুলো ব্যবহার করা হয় না, বরং একটি কোয়ালিটি স্লাইডার বা এক্সপোর্ট প্রিসেট দেওয়া থাকে। আপনি কোনটি ব্যবহার করছেন তা জানাটাই আসল, নামের লেবেলটি কী তা বড় বিষয় নয়।
- একটি কোয়ালিটি স্লাইডার থাকা মানেই হলো সেটি lossy কম্প্রেশন, ফরম্যাটের নাম যাই হোক না কেন।
- ডিজাইন সফটওয়্যারে Save for web মানে হলো একটি নির্দিষ্ট কোয়ালিটিতে lossy এক্সপোর্ট করা।
- Optimise বা compress PNG মানে হলো lossless পুনর্বিন্যাস, যদি না ছবির রঙ কমিয়ে ফেলা হয়।
- Export as PNG 8 মানে হলো প্যালেট রিডাকশন বা রঙ কমিয়ে ফেলা, যা ছবিটিকে স্থায়ীভাবে পরিবর্তন করে।
- একটি KB টার্গেট সেট করার মানে হলো ফাইলটি সেই সাইজে না আসা পর্যন্ত টুলটি কোয়ালিটি কমাতে থাকবে, তাই এটি সবসময়ই lossy।
পুরো লাইব্রেরিতে সঠিক মোড প্রয়োগ করা
প্রথমে ছবিগুলোকে ফটোগ্রাফ এবং গ্রাফিক্সে আলাদা করুন, তারপর একটি গ্রুপে lossy কম্প্রেশন এবং অন্য গ্রুপে lossless কম্প্রেশন প্রয়োগ করুন। একটি মিশ্র ফোল্ডারকে একটি মাত্র সেটিং দিয়ে প্রসেস করলে সবসময় অর্ধেক ছবির ক্ষতি হবে।
একবারে ৫০০টি পর্যন্ত ফাইল ড্রপ করুন, সেই গ্রুপের জন্য কোয়ালিটি এবং ফরম্যাট সেট করুন এবং দ্বিতীয় গ্রুপটি আলাদাভাবে প্রসেস করুন। সবকিছু আপনার নিজস্ব প্রসেসরে আপনার ব্রাউজারের ভেতরেই চলে, তাই মাস্টার ফাইল, ক্লায়েন্টের কাজ এবং অপ্রকাশিত ডিজাইনগুলো কখনোই কোনো সার্ভারে পৌঁছায় না। যেহেতু কোনো কিছু আপলোড করা হয় না, তাই মূল ফাইলগুলো ঠিক যেখানে ছিল সেখানেই থাকে এবং কেবল এক্সপোর্ট করা ফাইলগুলো পরিবর্তিত হয়।