WebP-এ ক্ষতিহীন এবং স্বচ্ছতা এনকোডিং

Jyrki Alakuijala, Ph.D., Google, Inc.
ভিনসেন্ট রাবাউড, পিএইচডি, গুগল, ইনক।
সর্বশেষ আপডেট: 2017-08-01

বিমূর্ত -- আমরা WebP এনকোডার/ডিকোডারের রিসোর্স ব্যবহারকে PNG এর সাথে লসলেস এবং ক্ষতিকর উভয় মোডে তুলনা করি। আমরা ওয়েব থেকে এলোমেলোভাবে নির্বাচিত 12000 ট্রান্সলুসেন্ট PNG ইমেজের একটি কার্পাস ব্যবহার করি এবং কার্যক্ষমতার ভিন্নতা দেখাতে সহজ পরিমাপ করি। ওয়েবপি চিত্রগুলিকে আকার-অপ্টিমাইজ করা PNG-এর সাথে তুলনা করতে আমরা আমাদের কর্পাসে PNG গুলিকে পুনরায় সংকুচিত করেছি৷ আমাদের ফলাফলগুলিতে আমরা দেখাই যে ওয়েবপি আকার এবং প্রক্রিয়াকরণ গতি উভয়ের ক্ষেত্রে ওয়েবে ব্যবহারের জন্য PNG-এর একটি ভাল প্রতিস্থাপন।

ভূমিকা

ওয়েবপি ক্ষতিহীন এবং স্বচ্ছ ছবিগুলিকে সমর্থন করে, এটিকে PNG ফর্ম্যাটের বিকল্প হিসাবে তৈরি করে৷ PNG কম্প্রেশনে ব্যবহৃত অনেক মৌলিক কৌশল, যেমন অভিধান কোডিং, হাফম্যান কোডিং এবং কালার ইনডেক্সিং ট্রান্সফর্ম WebP-তেও সমর্থিত, যার ফলে সবচেয়ে খারাপ ক্ষেত্রে একই গতি এবং কম্প্রেশন ঘনত্ব দেখা যায়। একই সময়ে, বেশ কয়েকটি নতুন বৈশিষ্ট্য -- যেমন বিভিন্ন রঙের চ্যানেলের জন্য পৃথক এনট্রপি কোড, পশ্চাদগামী রেফারেন্স দূরত্বের 2D লোকেলিটি এবং সম্প্রতি ব্যবহৃত রঙের একটি রঙের ক্যাশে -- বেশিরভাগ চিত্রের সাথে উন্নত কম্প্রেশন ঘনত্বের অনুমতি দেয়।

এই কাজে, আমরা WebP-এর পারফরম্যান্সকে PNG-এর সাথে তুলনা করি যেগুলি pngcrush এবং ZopfliPNG ব্যবহার করে অত্যন্ত সংকুচিত হয়। আমরা সর্বোত্তম অনুশীলনগুলি ব্যবহার করে আমাদের ওয়েব ইমেজের রেফারেন্স কর্পাসকে পুনরায় সংকুচিত করেছি এবং এই কর্পাসের বিপরীতে ক্ষতিহীন এবং ক্ষতিকারক WebP কম্প্রেশনের তুলনা করেছি। রেফারেন্স কর্পাস ছাড়াও, গতি এবং মেমরি ব্যবহারের বেঞ্চমার্কিংয়ের জন্য আমরা দুটি বড় ছবি বেছে নিয়েছি, একটি ফটোগ্রাফিক এবং অন্যটি গ্রাফিক্যাল।

PNG এর চেয়ে দ্রুত ডিকোডিং গতি প্রদর্শন করা হয়েছে, সেইসাথে আজকের PNG ফর্ম্যাট ব্যবহার করে যা অর্জন করা যেতে পারে তার চেয়ে 23% ঘন কম্প্রেশন। আমরা উপসংহারে পৌঁছেছি যে WebP হল আজকের PNG ইমেজ ফরম্যাটের জন্য আরও কার্যকরী প্রতিস্থাপন। আরও, ক্ষতিহীন আলফা সমর্থন সহ ক্ষতিকারক চিত্র সংকোচন ওয়েব সাইটগুলির গতি বাড়ানোর আরও সম্ভাবনা দেয়।

পদ্ধতি

কমান্ড লাইন টুলস

কর্মক্ষমতা পরিমাপ করতে আমরা নিম্নলিখিত কমান্ড-লাইন সরঞ্জামগুলি ব্যবহার করি:

  1. cwebp এবং dwebp. এই টুলগুলি যা libwebp লাইব্রেরির অংশ (মাথা থেকে সংকলিত)।

  2. রূপান্তর এটি ImageMagick সফ্টওয়্যারের একটি কমান্ড-লাইন টুল অংশ (6.7.7-10 2017-07-21)।

  3. pngcrush 1.8.12 (জুলাই 30, 2017)

  4. ZopfliPNG (জুলাই 17ই 2017)

আমরা তাদের নিজ নিজ নিয়ন্ত্রণ পতাকা সহ কমান্ড লাইন সরঞ্জাম ব্যবহার করি। উদাহরণস্বরূপ, যদি আমরা cwebp -q 1 -m 0 উল্লেখ করি, তাহলে এর অর্থ হল cwebp টুলটি -q 1 এবং -m 0 ফ্ল্যাগ দিয়ে তৈরি করা হয়েছে।

ইমেজ কর্পোরা

তিনটি কর্পোরা বেছে নেওয়া হয়েছিল:

  1. একটি একক ফটোগ্রাফিক ইমেজ (চিত্র 1),

  2. স্বচ্ছতা সহ একটি একক গ্রাফিকাল চিত্র (চিত্র 2), এবং

  3. একটি ওয়েব কর্পাস: 12000টি এলোমেলোভাবে বাছাই করা পিএনজি ছবি যা ট্রান্সলুসেন্সি সহ বা না, ইন্টারনেট থেকে ক্রল করা হয়েছে। এই PNG ছবিগুলি রূপান্তর, pngcrush, ZopfliPNG এর মাধ্যমে অপ্টিমাইজ করা হয়েছে এবং প্রতিটি ছবির ক্ষুদ্রতম সংস্করণ অধ্যয়নের জন্য বিবেচনা করা হয়েছে।

চিত্র 1. ফটোগ্রাফিক ছবি, 1024 x 752 পিক্সেল। ফায়ার ব্রিফিং "জয়পুর মহারাজা ব্রাস ব্যান্ড" চ্যাসেপিয়ের বেলজিয়াম, লেখক: লুক ভিয়াটর, ফটো ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন-শেয়ার অ্যালাইক 3.0 আনপোর্টেড লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত। লেখক ওয়েবসাইট এখানে .

চিত্র 2. গ্রাফিকাল ছবি, 1024 x 752 পিক্সেল। Google চার্ট টুলস থেকে ছবি কোলাজ করুন

বিদ্যমান বিন্যাস, PNG এর সম্পূর্ণ ক্ষমতা পরিমাপ করতে, আমরা বিভিন্ন পদ্ধতি ব্যবহার করে এই সমস্ত মূল PNG চিত্রগুলিকে পুনরায় সংকুচিত করেছি:

  1. প্রতি কম্পোনেন্টে 8 বিট ক্ল্যাম্প করুন: input.png -depth 8 output.png রূপান্তর করুন

  2. কোনো ভবিষ্যদ্বাণী ছাড়াই ImageMagick(1): input.png -quality 90 output-candidate.png রূপান্তর করুন

  3. অভিযোজিত ভবিষ্যদ্বাণী সহ ImageMagick: input.png -quality 95 output-candidate.png রূপান্তর করুন

  4. Pngcrush(2): pngcrush -brute -rem text -rem time -rem iTXt -rem zTXt -rem gaMA -rem cHRM -rem iCCP -rem sRGB -rem alla -rem text input.png output-candidate.png

  5. ZopfliPNG(3): zopflipng --lossy_transparent input.png output-candidate.png

  6. সমস্ত ফিল্টার সহ ZopfliPNG: zopflipng --iterations=500 --filters=01234mepb --lossy_8bit --lossy_transparent input.png output-candidate.png

ফলাফল

আমরা ওয়েব কর্পাসের প্রতিটি ছবির জন্য কম্প্রেশন ঘনত্ব গণনা করেছি, তিনটি পদ্ধতির জন্য অপ্টিমাইজ করা PNG ছবির আকারের তুলনায়:

  1. WebP ক্ষতিহীন (ডিফল্ট সেটিংস)

  2. সবচেয়ে ছোট আকারের সাথে ক্ষতিহীন WebP (-m 6 -q 100)

  3. আলফা (ডিফল্ট সেটিংস) সহ WebP লসলেস এবং WebP ক্ষতিকারক সেরা।

আমরা এই কম্প্রেশন ফ্যাক্টরগুলি সাজিয়েছি, এবং চিত্র 3-এ সেগুলি প্লট করেছি।

চিত্র 3. PNG কম্প্রেশন ঘনত্ব 1.0 এ একটি রেফারেন্স হিসাবে ব্যবহৃত হয়। একই চিত্রগুলি ক্ষতিহীন এবং ক্ষতিকারক উভয় পদ্ধতি ব্যবহার করে সংকুচিত হয়। প্রতিটি চিত্রের জন্য, সংকুচিত PNG-এর আকারের অনুপাত গণনা করা হয়, এবং আকারের অনুপাতগুলি সাজানো হয়, এবং ক্ষতিহীন এবং ক্ষতিকর উভয় কম্প্রেশনের জন্য দেখানো হয়। ক্ষতিকর কম্প্রেশন বক্ররেখার জন্য, ক্ষতিহীন কম্প্রেশন সেই ক্ষেত্রে বেছে নেওয়া হয় যেখানে এটি একটি ছোট WebP ইমেজ তৈরি করে।

WebP সর্বোচ্চ মানের (রূপান্তর) পাশাপাশি ZopfliPNG (টেবিল 1), এনকোডিং (টেবিল 2) সহ এবং ডিকোডিং (টেবিল 3) উভয়ের জন্যই PNG কম্প্রেশন ঘনত্বের বাইরে যায় PNG এর গতির সাথে মোটামুটি তুলনীয়।

সারণী 1. বিভিন্ন কম্প্রেশন পদ্ধতি ব্যবহার করে তিনটি কর্পোরার জন্য গড় বিট-প্রতি-পিক্সেল।

ইমেজ সেট রূপান্তর -গুণমান 95 ZopfliPNG WebP ক্ষতিহীন -q 0 -m 1 WebP ক্ষতিহীন (ডিফল্ট সেটিংস) WebP ক্ষতিহীন -m 6 -q 100 আলফার সাথে WebP ক্ষতিকর
ফটো 12.3 12.2 10.5 10.1 ৯.৮৩ 0.81
গ্রাফিক 1.36 1.05 0.88 0.71 0.70 0.51
ওয়েব ৬.৮৫ ৫.০৫ ৪.৪২ ৪.০৪ 3.96 1.92

সারণী 2. কম্প্রেশন কর্পোরা এবং বিভিন্ন কম্প্রেশন পদ্ধতির জন্য গড় এনকোডিং সময়।

ইমেজ সেট রূপান্তর -গুণমান 95 ZopfliPNG WebP ক্ষতিহীন -q 0 -m 1 WebP ক্ষতিহীন (ডিফল্ট সেটিংস) WebP ক্ষতিহীন -m 6 -q 100 আলফার সাথে WebP ক্ষতিকর
ফটো 0.500 সেকেন্ড 8.7 সেকেন্ড 0.293 সেকেন্ড 0.780 সেকেন্ড 8.440 সে 0.111 সেকেন্ড
গ্রাফিক 0.179 সেকেন্ড 14.0 সেকেন্ড 0.065 সেকেন্ড 0.140 সেকেন্ড 3.510 সেকেন্ড 0.184 সেকেন্ড
ওয়েব 0.040 সেকেন্ড 1.55 সেকেন্ড 0.017 সে 0.072 সেকেন্ড 2.454 সে 0.020 সেকেন্ড

সারণি 3. বিভিন্ন পদ্ধতি এবং সেটিংসের সাথে সংকুচিত চিত্র ফাইলগুলির জন্য তিনটি কর্পোরার গড় ডিকোডিং সময়।

ইমেজ সেট রূপান্তর -গুণমান 95 ZopfliPNG WebP ক্ষতিহীন -q 0 -m 1 WebP ক্ষতিহীন (ডিফল্ট সেটিংস) WebP ক্ষতিহীন -m 6 -q 100 আলফার সাথে WebP ক্ষতিকর
ফটো 0.027 সেকেন্ড 0.026 সেকেন্ড 0.027 সেকেন্ড 0.026 সেকেন্ড 0.027 0.012 সে
গ্রাফিক্স 0.049 সেকেন্ড 0.015 সেকেন্ড 0.005 সে 0.005 সে 0.003 0.010 সেকেন্ড
ওয়েব 0.007 সে 0.005 সে 0.003 সে 0.003 সে 0.003 0.003 সে

মেমরি প্রোফাইলিং

মেমরি প্রোফাইলিংয়ের জন্য, আমরা /usr/bin/time -v দ্বারা রিপোর্ট করা সর্বাধিক আবাসিক সেট আকার রেকর্ড করেছি

ওয়েব কর্পাসের জন্য, একমাত্র বৃহত্তম চিত্রের আকার সর্বাধিক মেমরি ব্যবহারকে সংজ্ঞায়িত করে। মেমরির পরিমাপকে আরও ভালভাবে সংজ্ঞায়িত করার জন্য আমরা মেমরি ব্যবহারের একটি ওভারভিউ দিতে একটি একক ফটোগ্রাফিক ইমেজ (চিত্র 1) ব্যবহার করি। গ্রাফিকাল ইমেজ অনুরূপ ফলাফল দেয়।

আমরা libpng এবং ZopfliPNG এর জন্য 10 থেকে 19 MiB এবং WebP লসলেস এনকোডিংয়ের জন্য যথাক্রমে -q 0 -m 1, এবং -q 95 (-m এর ডিফল্ট মান সহ) সেটিংসে 25 MiB এবং 32 MiB পরিমাপ করেছি।

একটি ডিকোডিং পরীক্ষায়, রূপান্তর-রিসাইজ 1x1 libpng এবং ZopfliPNG জেনারেট করা PNG ফাইল উভয়ের জন্য 10 MiB ব্যবহার করে। Cwebp ব্যবহার করে, WebP লসলেস ডিকোডিং 7 MiB ব্যবহার করে এবং ক্ষতিকর ডিকোডিং 3 MiB ব্যবহার করে।

উপসংহার

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

কম্প্রেশন ঘনত্ব 99% এরও বেশি ওয়েব ইমেজের জন্য ভাল, এটি পরামর্শ দেয় যে কেউ তুলনামূলকভাবে সহজেই PNG থেকে WebP-তে পরিবর্তন করতে পারে।

যখন WebP ডিফল্ট সেটিংসের সাথে চালানো হয়, তখন এটি libpng এর চেয়ে 42% ভাল এবং ZopfliPNG এর থেকে 23% ভাল সংকুচিত করে। এটি পরামর্শ দেয় যে ওয়েবপি ছবি ভারী ওয়েবসাইটগুলির গতি বাড়ানোর জন্য প্রতিশ্রুতিবদ্ধ।

তথ্যসূত্র

  1. ইমেজ ম্যাজিক

  2. Pngcrush

  3. ZopfliPNG

নিম্নলিখিতগুলি স্বতন্ত্র অধ্যয়ন যা Google দ্বারা স্পনসর করা হয়নি, এবং Google তাদের সমস্ত বিষয়বস্তুর সঠিকতার পিছনে দাঁড়ায় না৷

  1. Yoav Weiss ব্লগ