WebP হল Google প্রকাশিত একটি ইমেজ ফরম্যাট, যা ওয়েব পেজকে হালকা করতে ব্যবহার করা হয়। এর lossy মোড তৈরি হয়েছে VP8 নামের ভিডিও কমপ্রেশন ফরম্যাটের স্থিরচিত্র-সংক্রান্ত কৌশল থেকে, এই ধারণার ভিত্তিতে যে একটি আলোকচিত্র মূলত একটি ভিডিওর একক ফ্রেম; প্রথম সংস্করণ প্রকাশের কিছুদিন পরই lossless মোড, transparency এবং অ্যানিমেশন যুক্ত হয়। WebP-এর লক্ষ্য হল কাভারেজ: একটি ফরম্যাট দিয়ে JPG, PNG এবং animated GIF-এর কাজ করা, এবং প্রতিটি ক্ষেত্রে কম বাইটে সেই কাজ সম্পন্ন করা। সব আধুনিক প্রধান ব্রাউজার এটি দেখাতে পারে, তাই বর্তমান সময়ের অনেক ওয়েবসাইট থেকে ছবি সংরক্ষণ করলে তা প্রায়ই .webp ফাইল হিসেবে পাওয়া যায়।
একটি WebP কীভাবে তার ছবি সংরক্ষণ করে
WebP একটি কনটেইনার, যা লেবেলযুক্ত একাধিক chunk থেকে গঠিত, এবং ভেতরে কী আছে তা ঠিক করে ফাইলটি কীভাবে আচরণ করবে, কারণ এতে দুটি সম্পূর্ণ ভিন্ন কমপ্রেশন ইঞ্জিন থাকতে পারে:
- Lossy WebP একটি ভিডিও key frame-এর মতো কাজ করে। এটি প্রতিটি পিক্সেল ব্লককে তার আশেপাশের ব্লক থেকে পূর্বাভাস দেয়, কেবল পার্থক্যটা রেখে দেয়, সেই পার্থক্যকে ফ্রিকোয়েন্সি মানে রূপান্তর করে এবং সেগুলোকে রাউন্ড করে। কিছু তথ্য ফেলে দেওয়া হয়, তাই একটি lossy WebP থেকে আর মূল পিক্সেল ফিরিয়ে আনা যায় না, এবং বারবার সেভ করলে ক্ষতি আরও বাড়ে, একেবারে JPG-এর মতো।
- Lossless WebP একেবারে ভিন্ন পদ্ধতি ব্যবহার করে। এটি পুরো ছবিজুড়ে পুনরাবৃত্ত প্যাটার্ন ও রঙ খুঁজে বের করে, সম্প্রতি ব্যবহৃত কয়েকটি রঙের একটি ছোট cache ধরে রাখে, এবং তার ভিত্তিতে ফলাফলকে ঘনভাবে কোড করে। কোনও তথ্য ফেলে দেওয়া হয় না, তাই এটি JPG-এর চেয়ে PNG-এর সঙ্গে প্রতিযোগিতা করে।
দুই মোডেই পূর্ণ alpha channel থাকতে পারে, তাই আংশিক transparency কাজ করে, এবং এমনও করা যায় যে transparency lossless থাকে কিন্তু রঙ হয় lossy; এই সমন্বয় JPG বা PNG কোনোটিই দেয় না। অ্যানিমেশন হল একই কনটেইনারের ভেতরে একের পর এক ফ্রেম, প্রতিটির আলাদা timing এবং পূর্ণ রঙসহ, যা GIF-এর 256-রঙ সীমা সরিয়ে দেয়। একটি গুরুত্বপূর্ণ সীমা জেনে রাখা দরকার: একটি WebP-এর প্রস্থ বা উচ্চতা কোনো দিকেই 16383 পিক্সেলের বেশি হতে পারে না, তাই খুব বড় স্ক্যান বা লম্বা প্যানোরামা এতে ধরে না।
একটি WebP কোন মেটাডাটা বহন করে
WebP নিজের আলাদা কোনো মেটাডাটা স্কিম উদ্ভাবন করেনি। মেটাডাটা হল পিক্সেলের পাশাপাশি রাখা বর্ণনামূলক তথ্য, এবং WebP কনটেইনার সেটিকে ঐচ্ছিক chunk-এ ধরে রাখে, যেখানে বিদ্যমান মানদণ্ডই ব্যবহার হয়। একটি রিপোর্টে যেগুলো উপস্থিত থাকে সেগুলোই দেখানো হয়:
- একটি EXIF chunk, যেখানে সেই একই ক্যামেরা-সংক্রান্ত ব্লক থাকে যা আপনি একটি JPG-এ পাবেন:
Make,Model,DateTimeOriginal,ExposureTime,FNumber,ISOSpeedRatings,FocalLength,LensModelএবংOrientation, সঙ্গে থাকে GPS গ্রুপ, যেখানে latitude, longitude এবং altitude থাকে। - একটি XMP chunk, যেখানে Adobe-এর XML মেটাডাটা থাকে: নির্মাতা, শিরোনাম, বিবরণ, কীওয়ার্ড, রেটিং, অধিকার-সংক্রান্ত বিবৃতি এবং সম্পাদনা ইতিহাস।
- একটি ICC profile chunk, যা বর্ণনা করে সংখ্যাগুলো কোন colour space-এর অন্তর্গত।
এতে IPTC, অর্থাৎ পুরোনো প্রকাশনা-মানের জন্য আলাদা কোনো জায়গা নেই, তাই WebP-তে রূপান্তরের সময় IPTC ফিল্ডগুলো কেবল তখনই বেঁচে থাকে, যখন কনভার্টার সেগুলোকে XMP হিসেবে আবার লিখে নেয়।
ব্যবহারিক দিক থেকে দেখা গেলে একটি WebP অনেক সময় একেবারে ফাঁকা থাকে। কমান্ড-লাইন এবং সার্ভার-সাইড এনকোডারগুলোকে আলাদা করে নির্দেশ না দিলে তারা মেটাডাটা ফেলে দেয়, আর কোনো ওয়েবসাইট স্বয়ংক্রিয়ভাবে ছবি প্রক্রিয়া করলে সাধারণত একেবারে কিছু না লাগানো ফাইলই বেরিয়ে আসে। তবে এটাকে ধরে নেওয়া নিরাপদ নয়। এমন কোনো কনভার্টার, যা মেটাডাটা অক্ষুণ্ণ রাখে, যদি ফোনে তোলা ছবি থেকে WebP বানায়, তাহলে মূল ক্যামেরা মডেল, তোলার সময় এবং GPS কোঅর্ডিনেট সবই অক্ষত থাকে। কোনো ফাইল গুরুত্বপূর্ণ হলে ধরে নেওয়ার বদলে রিপোর্টটি পড়ে নিন, যে রূপান্তরে সব মেটাডাটা উঠে গেছে।
কখন WebP ব্যবহার করবেন
ওয়েবসাইটে থাকা ছবির জন্য WebP ব্যবহার করুন, যেটির জন্যই এটি বানানো হয়েছে: একই ছবিকে কম বাইটে রাখা, এবং এক ফরম্যাটেই transparency, ফটোগ্রাফ এবং ছোট অ্যানিমেশন সামলানো। Lossy WebP JPG-এর বিকল্প, সমতল গ্রাফিক্সে lossless WebP PNG-এর বিকল্প, আর animated WebP অনেক ভালো রঙসহ animated GIF-এর বিকল্প।
ব্রাউজারের বাইরে এটি অপেক্ষাকৃত দুর্বল পছন্দ। ডেস্কটপ অ্যাপ্লিকেশন, প্রিন্ট ওয়ার্কফ্লো, অফিস সফটওয়্যার এবং পুরোনো ডিভাইসগুলো হয়তো এটি খুলতেই পারবে না, তাই WebP ইমেইলে পাঠানো বা প্রিন্টারে পাঠানোর জন্য অস্বস্তিকর, এবং সেখানে JPG ও PNG-ই এখনও নিরাপদ বিকল্প। আগে থেকে থাকা কোনো JPG-কে lossy WebP-তে রূপান্তর করলেও এমন ছবিকেই আবার এনকোড করা হয়, যা একবার আগেই কিছু বিস্তারিত হারিয়েছে; তাই দ্বিতীয়বার কমপ্রেশন প্রথমটির ওপর বাড়তি মানক্ষতি আনে। সবসময় আপনার কাছে থাকা সবচেয়ে ভালো আসল ফাইল থেকে কনভার্ট করুন, এমন কোনো ফাইল থেকে নয়, যা আগে অন্য কেউ আপনাকে দিয়েছে।