ব্লগে ফিরে যান
২৭ অক্টোবর, ২০২৬Sergei Solod10 মিনিট পড়া

প্রতিটি ছবি আলাদাভাবে অপ্টিমাইজ না করে SSIMULACRA2 দিয়ে AVIF-এর কোয়ালিটি কীভাবে নির্ধারণ করবেন

প্রতিটি ছবিকে বারবার এনকোড করার পরিবর্তে SSIMULACRA2 ও দৃশ্যমান মান যাচাইয়ের মাধ্যমে AVIF-এর একটি নির্দিষ্ট কোয়ালিটি সেটিং নির্ধারণ করুন। কত শতাংশ ছবি নির্ধারিত মান পূরণ করছে, ফাইলের আকারের পার্থক্য এবং ব্যবহারিক সেটিং নির্বাচনের পদ্ধতি জানুন।

AVIFSSIMULACRA2ছবি কম্প্রেশনSharpছবি অপ্টিমাইজেশন

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

SSIMULACRA2 একটি কম্প্রেস করা ছবি ডিকোড করার পর সেটিকে রেফারেন্স ছবির সঙ্গে তুলনা করে এই ব্যবধান বুঝতে সাহায্য করে। কিন্তু প্রতিটি ছবির জন্য সম্ভাব্য সব কোয়ালিটি সেটিং পরীক্ষা করতে গেলে সাধারণ একটি কনভার্সন পাইপলাইনও বিপুল পরিমাণ এনকোডিংয়ের কাজে পরিণত হতে পারে। প্রতিটি ফাইলকে নিখুঁতভাবে অপ্টিমাইজ করার পরিবর্তে যদি লক্ষ্য হয় ওয়েবে ব্যবহারের উপযোগী ভালো মানের ছবি পাওয়া, তাহলে আরও সহজ একটি উপায় আছে: ছবির প্রতিনিধিত্বমূলক একটি নমুনার ওপর পরীক্ষা করে AVIF-এর একটি নির্দিষ্ট কোয়ালিটি সেটিং বেছে নিন, ফলাফল চোখে দেখে যাচাই করুন এবং সংগ্রহের বাকি ছবিগুলোর জন্য সেই সেটিং ব্যবহার করুন।

AVIF-এর কোয়ালিটি এবং SSIMULACRA2 দুটি আলাদা পরিমাপ

AVIF এনকোডারে দেওয়া quality অপশনটি কম্প্রেশন নিয়ন্ত্রণের একটি নির্দেশনা। অন্যদিকে SSIMULACRA2 হলো এনকোড করা ছবির ফলাফল থেকে পাওয়া একটি পরিমাপ। এদের স্কেল এক নয়। AVIF-এ quality: 40 ব্যবহার করার অর্থ SSIMULACRA2 স্কোর 40, 60 কিংবা অন্য কোনো নির্দিষ্ট সংখ্যা হবে, এমন নয়।

এনকোডিংয়ের ফলাফল পরিমাপ করতে ছবিটি ডিকোড করে রেফারেন্স ছবির সঙ্গে তুলনা করুন:

ssimulacra2 reference.png encoded-decoded.png

SSIMULACRA2 স্কোর যত বেশি, ছবিটির সঙ্গে রেফারেন্সের দৃশ্যগত মিল তত বেশি। এর অফিশিয়াল ডকুমেন্টেশন অনুযায়ী, প্রায় 50 স্কোর মাঝারি মান এবং প্রায় 70 স্কোর উচ্চ মান নির্দেশ করে। 60-কে থ্রেশহোল্ড হিসেবে ব্যবহার করা একটি বাস্তবসম্মত লক্ষ্য হতে পারে। তবে এটি একটি নীতিগত সিদ্ধান্ত, সব ছবির জন্য গ্রহণযোগ্য মানের সর্বজনীন সংজ্ঞা নয়। ছবিগুলো বাস্তবে যে আকারে দেখানো হবে, সেই আকারে প্রতিনিধিত্বমূলক ফলাফল অবশ্যই চোখে দেখে পরীক্ষা করুন।

প্রতিটি ছবির জন্য পূর্ণাঙ্গ অপ্টিমাইজেশন কেন ব্যয়বহুল হয়ে ওঠে

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

এর অসুবিধা হলো এনকোডিংয়ের সংখ্যা। যদি ছবির সংখ্যা N হয় এবং গ্রহণযোগ্য সেটিং খুঁজতে প্রতিটি ছবির জন্য K সংখ্যক সম্ভাব্য এনকোডিং পরীক্ষা করতে হয়, তাহলে মোট এনকোডিংয়ের পরিমাণ আনুমানিক N × K হবে। এর পাশাপাশি ডিকোডিং ও স্কোর নির্ণয়ের কাজও থাকবে। বাস্তবে উচ্চ effort সেটিংয়ে AVIF এনকোডিংই মোট খরচের বড় অংশ নিতে পারে। SSIMULACRA2 মেট্রিক চালানো নিজেই যে সবচেয়ে ব্যয়বহুল অংশ হবে, এমন নয়।

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

কৌশলকোয়ালিটি নির্ধারণের কাজপ্রধান সুবিধা ও সীমাবদ্ধতা
প্রতিটি ছবির জন্য অভিযোজিত কোয়ালিটিপ্রতিটি ছবির একাধিক সম্ভাব্য এনকোডিংসূক্ষ্মভাবে নিয়ন্ত্রণ করা যায়, কিন্তু কোয়ালিটি নির্ধারণের খরচ সবচেয়ে বেশি
প্রতিটি গ্রুপের জন্য অভিযোজিত কোয়ালিটিপ্রতিটি গ্রুপের নমুনার জন্য একাধিক সম্ভাব্য এনকোডিংকাজ কম, তবে কনফিগারেশন বেশি এবং ফলাফল গ্রুপভেদে আলাদা হয়
একটি নির্দিষ্ট কোয়ালিটিসীমিত প্রতিনিধিত্বমূলক নমুনায় সম্ভাব্য এনকোডিং পরীক্ষাপরিচালনাগত জটিলতা কম, তবে কিছু ছবি প্রয়োজনের চেয়ে বেশি এবং কিছু ছবি কম মানে কম্প্রেস হতে পারে

গুরুত্বপূর্ণ পার্থক্য: গড় স্কোর বনাম থ্রেশহোল্ড পূরণের হার

কোয়ালিটি মান নির্বাচনের আগে ‘যথেষ্ট ভালো’ বলতে কী বোঝাচ্ছেন, তা নির্ধারণ করুন। দেখতে কাছাকাছি মনে হলেও নিচের দুটি লক্ষ্যের জন্য এনকোডারের একেবারে ভিন্ন সেটিং প্রয়োজন হতে পারে:

  • গড় স্কোরের লক্ষ্য: নমুনার সব ছবির গড় SSIMULACRA2 স্কোর প্রায় 60 হতে হবে।
  • থ্রেশহোল্ড পূরণের হারের লক্ষ্য: আনুমানিক 90% ছবির SSIMULACRA2 স্কোর 60 বা তার বেশি হতে হবে। বাকি ছবিগুলোর স্কোর এর নিচে থাকতে পারে।

এই দুটি লক্ষ্য এক নয়। গড় হিসাব করার সময় সহজ কোনো ছবির উচ্চ স্কোর কঠিন কোনো ছবির খারাপ স্কোরকে পুষিয়ে দিতে পারে। উদাহরণস্বরূপ, অর্ধেক ছবির স্কোর 75 এবং বাকি অর্ধেকের স্কোর 55 হলে গড় হবে 65। অথচ মাত্র অর্ধেক ছবি 60-এর থ্রেশহোল্ড পূরণ করবে।

ওয়েবের সাধারণ ছবি ব্যবহারের ক্ষেত্রে, যেখানে বেশির ভাগ ছবির মান গ্রহণযোগ্য হওয়া দরকার কিন্তু অল্প কিছু ব্যর্থতা সহ্য করা যায়, সেখানে থ্রেশহোল্ড পূরণের হার সাধারণত বেশি কার্যকর লক্ষ্য। এটি এভাবে পরিমাপ করুন:

pass_rate = count(scores >= 60) / count(all_scores)

পাশাপাশি থ্রেশহোল্ডের নিচে থাকা স্কোরগুলোর বণ্টনও নথিবদ্ধ করুন এবং দেখতে সবচেয়ে খারাপ ছবিগুলো পরীক্ষা করুন। কোনো নমুনায় 9% ছবির স্কোর 59 হওয়া আর অন্য নমুনায় 9% ছবির স্কোর 30 হওয়ার মধ্যে গুরুত্বপূর্ণ পার্থক্য রয়েছে, যদিও উভয়ের থ্রেশহোল্ড পূরণের হার একই।

বাস্তব একটি কোয়ালিটি নির্ধারণের পরীক্ষায় কী দেখা গিয়েছিল

AVIF-এর কোয়ালিটি নির্ধারণের একটি প্রাথমিক পরীক্ষায়, অভিযোজিত পদ্ধতি বিভিন্ন ছবি-গ্রুপের জন্য আলাদা কোয়ালিটি সেটিং নির্বাচন করেছিল। সেগুলো মোটামুটি 30-এর মাঝামাঝি থেকে 40-এর মাঝামাঝি পর্যন্ত ছিল। এটি প্রত্যাশিতই ছিল। কিছু গ্রুপের ছবিগুলো কম কোয়ালিটিতেই নির্বাচিত SSIMULACRA2 থ্রেশহোল্ড পূরণ করেছিল, আর কয়েকটি কঠিন নমুনার জন্য এনকোডারের অনেক বেশি কোয়ালিটি প্রয়োজন হয়েছিল।

তবে অভিযোজিত নিয়মটি প্রকৃত ডেলিভারি চাহিদার তুলনায় বেশি কঠোর ছিল। নিয়মটি প্রতিটি গ্রুপে পরীক্ষা করা প্রায় সব ছবিকে থ্রেশহোল্ড পূরণ করাতে চেয়েছিল এবং খুব সীমিত সংখ্যক ব্যতিক্রমের অনুমতি দিয়েছিল। এতে কঠিন ছবিগুলোর মান সুরক্ষিত থাকে, কিন্তু একটি ব্যতিক্রমী নমুনার কারণেও পুরো গ্রুপের জন্য উচ্চতর কোয়ালিটি বেছে নেওয়া হতে পারে।

পরিমাপগুলোকে অন্য একটি লক্ষ্যের ভিত্তিতে আবার বিবেচনা করা হয়েছিল: প্রতি দশটি ছবির মধ্যে আনুমানিক নয়টির SSIMULACRA2 স্কোর অন্তত 60 হওয়া। এই লক্ষ্য অনুযায়ী একটি নির্দিষ্ট AVIF কোয়ালিটি 39–40 একটি সম্ভাব্য সমঝোতা হিসেবে সামনে আসে। তুলনায় 39 অপেক্ষাকৃত ছোট আউটপুটের পক্ষে ছিল, আর 40 থ্রেশহোল্ডের কাছাকাছি থাকা ছবিগুলোর জন্য কিছুটা বেশি নিরাপত্তার সুযোগ দিচ্ছিল। এই মানগুলো কোয়ালিটি নির্ধারণের পরীক্ষায় সংগৃহীত তথ্য ও পরবর্তী বিশ্লেষণ থেকে পাওয়া গিয়েছিল। কিন্তু নির্দিষ্ট কোয়ালিটি ব্যবহার করে সম্পূর্ণ ছবি-সংগ্রহ রূপান্তর এবং স্বাধীনভাবে সেই পুরো সংগ্রহের যাচাই করা হয়নি। 39 ব্যবহার করলে 40-এর তুলনায় ফাইলের আকার ঠিক কতটা কমবে, সেটিও প্রতিষ্ঠিত হয়নি।

এখান থেকে শেখার বিষয় এই নয় যে AVIF কোয়ালিটি 39 বা 40 সর্বত্র ভালো কাজ করবে। বরং বিষয়টি হলো, ছবিগুলোর মানের বণ্টন সম্পর্কে স্পষ্টভাবে নির্বাচিত লক্ষ্য পূরণ করলে একটি নির্দিষ্ট সেটিং যুক্তিসংগত হতে পারে। ভিন্ন এনকোডার, ছবির ভিন্ন ধরন, কালার প্রসেসিং পাইপলাইন কিংবা পারসেপচুয়াল থ্রেশহোল্ডের কারণে অন্য ফল পাওয়া যেতে পারে।

একবার পরীক্ষা করে AVIF-এর কোয়ালিটি কীভাবে নির্ধারণ করবেন

  1. গ্রহণযোগ্য ব্যর্থতার হার নির্ধারণ করুন। উদাহরণস্বরূপ, আনুমানিক 90% ছবির SSIMULACRA2 স্কোর অন্তত 60 হওয়া বাধ্যতামূলক করুন। এটি কিছুটা নমনীয় লক্ষ্য, নাকি প্রকাশের আগে অবশ্যই পূরণ করতে হবে এমন কঠোর শর্ত, তা স্থির করুন।
  2. সত্যিকার অর্থে প্রতিনিধিত্বমূলক নমুনা তৈরি করুন। বিভিন্ন মাত্রা, উৎস ফরম্যাট, গ্রেডিয়েন্ট, তীক্ষ্ণ প্রান্ত, টেক্সচার এবং কম সূক্ষ্ম বিবরণযুক্ত ছবি অন্তর্ভুক্ত করুন। প্রকৃত কাজের ছবি থেকে দৈবচয়নের মাধ্যমে নমুনা নিন। অন্যথায় কোনো শ্রেণির ছবি বাদ পড়ার আশঙ্কা থাকলে স্তরভিত্তিক নমুনা নির্বাচন ব্যবহার করুন। কম্প্রেস করা ছবির প্রতি পিক্সেলে কত বাইট আছে, শুধু তার ভিত্তিতে ফাইল নির্বাচন করলে বিভিন্ন ধরনের ছবি অন্তর্ভুক্ত করার একটি কার্যকর আনুমানিক পদ্ধতি পাওয়া যায়। তবে সেটি দৃশ্যগতভাবে প্রতিনিধিত্বমূলক নমুনা পাওয়ার নিশ্চয়তা দেয় না।
  3. এনকোডারের কয়েকটি কাছাকাছি কোয়ালিটি পরীক্ষা করুন। কোয়ালিটির পুরো স্কেল পরীক্ষা না করে, চোখে দেখে গ্রহণযোগ্য মনে হওয়া একটি সেটিংয়ের আশপাশের কয়েকটি মান দিয়ে শুরু করুন। উদাহরণস্বরূপ, একই ছবিগুলোর ওপর 38, 39, 40 এবং 42-এর মতো কাছাকাছি মান পরীক্ষা করুন।
  4. এনকোডিং পাইপলাইন অপরিবর্তিত রাখুন। রেজোলিউশন, ছবির অভিমুখ, কালার কনভার্সন, এনকোডারের বাস্তবায়ন, effort, ক্রোমা সাবস্যাম্পলিং, বিট ডেপথ এবং প্রিপ্রসেসিং একই রাখুন। ওয়াটারমার্ক ব্যবহার করলে কম্প্রেস করা ফলাফলের সঙ্গে তুলনা করার আগে রেফারেন্স ছবিতেও একই ওয়াটারমার্ক ও রূপান্তর থাকতে হবে।
  5. স্কোর এবং ফাইলের আকার একসঙ্গে নথিবদ্ধ করুন। প্রতিটি সম্ভাব্য সেটিংয়ের জন্য অন্তত 60 স্কোর পাওয়া ছবির অনুপাত, থ্রেশহোল্ডের নিচের স্কোরগুলোর বণ্টন এবং একই নমুনার মোট এনকোড করা বাইটের পরিমাণ হিসাব করুন। শুধু কোয়ালিটি সংখ্যাটি দেখে ব্যান্ডউইথ সাশ্রয়ের পরিমাণ অনুমান করবেন না।
  6. ব্যর্থ ছবিগুলো পরীক্ষা করুন। মুখমণ্ডল, লেখা, সরু রেখা, গ্রেডিয়েন্ট এবং ছবির নির্ধারিত ব্যবহারে গুরুত্বপূর্ণ অন্যান্য সূক্ষ্ম বিবরণ দেখুন। শুধু বড় করে পরীক্ষা না করে বাস্তবে দেখানোর উপযোগী আকারেও যাচাই করুন।
  7. সন্তোষজনক ফল দেওয়া সর্বনিম্ন কোয়ালিটি বেছে নিয়ে সেটি যাচাই করুন। নির্বাচনের সিদ্ধান্তে ব্যবহৃত হয়নি এমন আলাদা একটি দৈবচয়নভিত্তিক নমুনায় সেটিংটি পরীক্ষা করুন। 90% লক্ষ্য পূরণে ব্যর্থ হওয়ার খরচ বেশি হলে কিছু নিরাপত্তার সুযোগ রাখুন এবং নমুনা নির্বাচনের অনিশ্চয়তাকে গুরুত্ব দিন। মাঝেমধ্যে ব্যর্থতা গ্রহণযোগ্য হলে আরও আগ্রাসী কম কোয়ালিটি নির্বাচন যুক্তিসংগত হতে পারে।

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

Sharp ও SSIMULACRA2 দিয়ে তুলনা করার একটি ন্যূনতম উদাহরণ

এই সরল উদাহরণে Sharp-এর AVIF এনকোডার ব্যবহার করে একই ইনপুট থেকে দুটি সম্ভাব্য ফলাফল তৈরি করা হয়েছে। এটি কোয়ালিটি নির্ধারণের পদ্ধতি বোঝানোর জন্য দেওয়া একটি উদাহরণ। সব প্রকল্পে এই এনকোডার অপশন বা কোয়ালিটি মান ব্যবহার করা উচিত, এমন দাবি নয়। sharp ইনস্টল করার পর এটিকে ES মডিউল হিসেবে চালান।

import sharp from 'sharp';

const source = 'sample.png';
const encoding = {
  effort: 9,
  chromaSubsampling: '4:4:4',
  bitdepth: 8,
  tune: 'iq',
  lossless: false
};

// Use the same orientation and color conversion in both paths.
await sharp(source)
  .rotate()
  .toColourspace('srgb')
  .png()
  .toFile('reference.png');

for (const quality of [39, 40]) {
  const encoded = `candidate-q${quality}.avif`;
  await sharp(source)
    .rotate()
    .toColourspace('srgb')
    .avif({ ...encoding, quality })
    .toFile(encoded);

  await sharp(encoded)
    .png()
    .toFile(`candidate-q${quality}.png`);
}

এরপর ডিকোড করা ফলাফল দুটিকে প্রস্তুত রেফারেন্স ছবির সঙ্গে তুলনা করুন:

ssimulacra2 reference.png candidate-q39.png
ssimulacra2 reference.png candidate-q40.png

বাস্তব পরীক্ষায় নমুনার সব ছবির জন্য এই প্রক্রিয়া স্বয়ংক্রিয় করুন এবং প্রতিটি সম্ভাব্য সেটিংয়ের স্কোর ও ফাইলের আকার সংগ্রহ করুন। আপনার প্রোডাকশন পাইপলাইনে ছবির আকার পরিবর্তন, ক্রপ, ওভারলে কিংবা অন্য কোনো রূপান্তর করা হলে তুলনার রেফারেন্স ছবিতেও একই কাজ করুন। তা না হলে SSIMULACRA2 শুধু কম্প্রেশনের ফলে হওয়া মানের ক্ষতি নয়, ওই রূপান্তরের প্রভাবও আংশিকভাবে পরিমাপ করবে।

একটি বৈশ্বিক কোয়ালিটি সেটিং নির্বাচিত হলে প্রোডাকশনে সাধারণ একবার এনকোড করেই AVIF-এ রূপান্তর করা যায়। তখন প্রতিটি ছবি বা ফোল্ডারের জন্য আলাদাভাবে কোয়ালিটি খোঁজার প্রয়োজন থাকে না। এতে বারবার পরীক্ষামূলক এনকোডিংয়ের কাজ বাদ যায়। তবে প্রতিটি আউটপুট ছবি তৈরি করতে যে একবার এনকোডিং করতেই হবে, সেই খরচ দূর হয় না।

কখন একটি নির্দিষ্ট AVIF কোয়ালিটি ব্যবহার করা ঠিক নয়

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

বিশেষ করে বিভিন্ন ধরনের ছবি একসঙ্গে থাকলে সতর্ক থাকুন। ফটোগ্রাফ, সমতল রঙের গ্রাফিক্স, সূক্ষ্ম লেখা এবং আগে থেকেই কম্প্রেস করা ছবি একইভাবে সাড়া দেবে, এমন নয়। কোনো নির্দিষ্ট শ্রেণির ছবি বারবার গ্রহণযোগ্যতার পরীক্ষায় ব্যর্থ হলে, সব ছবির জন্য একটি কোয়ালিটি কিংবা প্রতিটি ছবিকে সম্পূর্ণ আলাদাভাবে অপ্টিমাইজ করার পরিবর্তে ফরম্যাট বা ছবির বিষয়বস্তুভিত্তিক অল্প কয়েকটি প্রোফাইল ব্যবহার করা বেশি কার্যকর হতে পারে।

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

ব্যবহারিক নিয়ম

SSIMULACRA2-কে কোয়ালিটি নির্ধারণের একটি পরিমাপক যন্ত্র হিসেবে ব্যবহার করুন। প্রোডাকশনে প্রতিটি ছবির জন্য এটি চালানো বাধ্যতামূলক হওয়ার প্রয়োজন নেই। ছবিগুলো বাস্তবে কীভাবে দেখা হবে, তার ভিত্তিতে কোয়ালিটির লক্ষ্য নির্ধারণ করুন। প্রতিনিধিত্বমূলক নমুনা কয়েকটি কাছাকাছি সেটিংয়ে এনকোড করুন, পারসেপচুয়াল স্কোর ও বাইটের পরিমাণ তুলনা করুন, ব্যর্থ ছবিগুলো চোখে দেখে যাচাই করুন এবং আপনার গ্রহণযোগ্যতার সীমা পূরণ করে এমন সর্বনিম্ন সেটিং স্থির করুন।

একটি প্রাথমিক পরীক্ষায় AVIF কোয়ালিটি প্রায় 39–40-এ থামা যুক্তিসংগত বলে মনে হয়েছিল। এটি ছিল নির্দিষ্ট থ্রেশহোল্ড ও ব্যর্থতা সহ্য করার সীমার ভিত্তিতে নেওয়া সিদ্ধান্ত। এটি কোনো সর্বজনীন প্রিসেট নয়, আবার সম্পূর্ণ ছবি-সংগ্রহে নিশ্চিত করা বেঞ্চমার্কের ফলও নয়। আরও সাধারণভাবে কাজে লাগার মতো শিক্ষাটি সহজ: সময় ও কম্পিউটিং ক্ষমতা সীমিত হলে প্রতিটি ছবিকে অনবরত আলাদাভাবে অপ্টিমাইজ করার চেয়ে যথাযথভাবে যাচাই করা একটি নির্দিষ্ট কোয়ালিটি ব্যবহার করা প্রায়ই বেশি বাস্তবসম্মত।