بلاگ پر واپس جائیں
27 اکتوبر، 2026Sergei Solod13 منٹ پڑھنے کا وقت

ہر تصویر کو الگ سے آپٹمائز کیے بغیر 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 یا اس سے زیادہ ہو، تو تقریباً 39–40 کی ایک مقررہ AVIF کوالٹی مناسب سمجھوتے کے طور پر سامنے آئی۔ اس موازنے میں 39 چھوٹی آؤٹ پٹ فائلوں کے حق میں تھا، جبکہ 40 مطلوبہ حد کے قریب موجود تصاویر کے لیے کچھ اضافی گنجائش فراہم کرتا تھا۔ یہ قدریں ابتدائی پیمائشوں اور بعد کے تجزیے سے اخذ کی گئی تھیں؛ مقررہ کوالٹی پر پورے تصویری مجموعے کی کنورژن اور تمام تصاویر پر الگ سے آزادانہ توثیق نہیں کی گئی تھی۔ یہ بھی ثابت نہیں کیا گیا تھا کہ 40 کے مقابلے میں 39 استعمال کرنے سے فائل سائز میں ٹھیک کتنی بچت ہوگی۔

اس تجربے کا سبق یہ نہیں کہ 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 کو کوالٹی طے کرنے کے پیمائشی آلے کے طور پر استعمال کریں، ضروری نہیں کہ اسے پروڈکشن میں ہر تصویر پر چلانا لازمی مرحلہ بنائیں۔ معیار کا ہدف اس بنیاد پر منتخب کریں کہ تصاویر حقیقت میں کیسے دیکھی جائیں گی۔ نمائندہ نمونے کو چند قریبی سیٹنگز پر انکوڈ کریں، ادراکی اسکور اور بائٹس دونوں کا موازنہ کریں، ناکام نتائج کو بصری طور پر جانچیں اور ایسی سب سے کم کوالٹی مقرر کریں جو آپ کی قابلِ قبول حد پوری کرتی ہو۔

ایک ابتدائی تجربے میں تقریباً 39–40 کی AVIF کوالٹی پر رکنا مناسب معلوم ہوا۔ یہ مخصوص حد اور ناکامی برداشت کرنے کی مخصوص گنجائش کے تحت کیا گیا فیصلہ تھا، نہ کہ کوئی آفاقی پری سیٹ یا پورے تصویری مجموعے پر تصدیق شدہ بینچ مارک۔ اس سے حاصل ہونے والا زیادہ عمومی سبق سادہ ہے: جب وقت اور کمپیوٹنگ وسائل محدود ہوں تو ہر تصویر کو مسلسل الگ سے آپٹمائز کرنے کے بجائے احتیاط سے جانچی گئی ایک مقررہ کوالٹی اکثر زیادہ عملی ثابت ہوتی ہے۔