Pnmpsnr User Manual(0) Pnmpsnr User Manual(0)

pnmpsnr - محاسبه تفاوت بین دو تصویر (PSNR)

pnmpsnr

[pnmfile1]

[pnmfile2]

[-rgb] [-machine] [-max=n] [-target=n] [-target1=n] [-target2=n] [-target3=n]

کوتاه‌ترین مخفف غیرمبهم از گزینه‌ها پذیرفته می‌شود. می‌توانید به جای یک خط تیره از دو خط تیره برای مشخص کردن گزینه‌ها استفاده کنید. همچنین می‌توانید به جای علامت مساوی، از فاصله خالی برای جدا کردن نام یک گزینه از مقدار آن استفاده نمایید.

این برنامه بخشی از Netpbm(1) است.

برنامه pnmpsnr دو فایل PBM، PGM یا PPM، یا معادل‌های PAM را به عنوان ورودی می‌خواند و میزان تفاوت بین دو تصویر را به صورت نسبت بیشینه سیگنال به نویز (PSNR) محاسبه می‌کند. این معیار معمولاً در مقالات فشرده‌سازی تصویر برای سنجش میزان اعوجاج بین تصویر اصلی و تصویر رمزگشایی‌شده به کار می‌رود.

pnmpsnr این مقادیر را چاپ می‌کند یا آن‌ها را با آستانه‌هایی که شما تعیین کرده‌اید مقایسه می‌نماید.

مقدار PSNR یک مؤلفه مشخص، نسبت بیشینه میانگین مربعات اختلافی است که می‌تواند بین مقادیر مؤلفه دو تصویر وجود داشته باشد (معیاری از محتوای اطلاعات در تصویر) به میانگین مربعات اختلاف واقعی میان مؤلفه‌های دو تصویر مورد نظر. این مقدار بر حسب دسی‌بل بیان می‌شود.

میانگین مربعات اختلاف یک مؤلفه برای دو تصویر، میانگین مربعات اختلاف مقدار آن مؤلفه با مقایسه هر پیکسل با پیکسل متناظر در همان موقعیت از تصویر دیگر است. به منظور انجام این محاسبات، مؤلفه‌ها در مقیاس [0..1] نرمال‌سازی می‌شوند.

بیشینه میانگین مربعات اختلاف دقیقاً برابر با ۱ است.

بنابراین هر چه مقدار PSNR بالاتر باشد، تصاویر به یکدیگر شبیه‌ترند. یک PSNR روشنایی (luminance) با مقدار ۲۰ بدان معناست که میانگین مربعات اختلاف روشنایی پیکسل‌ها ۱۰۰ برابر کمتر از بیشینه اختلاف ممکن، یعنی ۰٫۰۱ است.

توجه داشته باشید که کلمه «اوج/بیشینه» (peak) یک نام‌گذاری نادقیق است؛ چرا که هیچ مقداری در بیشینه دخیل نیست و این معیار یک میانگین به حساب می‌آید. اما به دلایلی عبارت «peak signal to noise ratio» اصطلاح رایج برای این نوع اندازه‌گیری است.

اگر ورودی‌ها PBM یا PGM باشند، pnmpsnr تنها PSNR روشنایی را محاسبه می‌کند. در غیر این صورت، سه PSNR جداگانه را محاسبه می‌نماید: یا مؤلفه‌های روشنایی (luminance) و رنگ‌مایه (chrominance شامل Cb و Cr)، یا مؤلفه‌های قرمز (red)، سبز (green) و آبی (blue).

به‌طور پیش‌فرض، این برنامه مقادیر PSNR را در قالبی خوانا برای انسان در خروجی استاندارد چاپ می‌کند.

با استفاده از گزینه -machine، برنامه مقادیر PSNR را در قالبی مناسب پردازش ماشین چاپ می‌کند.

با استفاده از گزینه -target[x]، برنامه بسته به اینکه آیا مقادیر PSNR از اهداف تعیین‌شده فراتر رفته‌اند یا خیر، صرفاً عبارت 'match' یا 'nomatch' را چاپ می‌کند.

pnmpsnr مقادیر PSNR را یا در قالبی خوانا برای انسان و یا در قالبی مناسب ماشین گزارش می‌دهد (گزینه -machine را ببینید).

علاوه بر گزینه‌های مشترک بین تمامی برنامه‌های مبتنی بر libnetpbm (به‌ویژه -quiet، به گزینه‌های مشترک مراجعه کنید)، pnmpsnr گزینه‌های خط فرمان زیر را می‌شناسد:

این گزینه باعث می‌شود pnmpsnr مؤلفه‌های قرمز، سبز و آبی رنگ را به جای مؤلفه‌های روشنایی و رنگ‌مایه مقایسه کند. این گزینه بر روی تصویر تک‌رنگ (monotone) اثری ندارد.

این گزینه از Netpbm 10.71 (ژوئن ۲۰۱۵) اضافه شد.

این گزینه باعث می‌شود pnmpsnr مقادیر PSNR را در قالبی مناسب پردازش ماشین گزارش دهد، به طوری که برنامه‌ای دیگر بتواند به راحتی از این اطلاعات استفاده کند.

خروجی یک خط واحد است. این خط برای هر مؤلفه رنگ شامل یک عدد اعشاری ممیز شناور است که با یک فاصله خالی از یکدیگر جدا شده‌اند. (این یعنی خروجی شامل ۱ یا ۳ عدد خواهد بود). برای فضای رنگی YCbCr (بدون -rgb)، اعداد به ترتیب Y، Cb و Cr هستند. برای فضای رنگی RGB (با -rgb)، به ترتیب R، G و B هستند. برای یک تصویر تک‌رنگ، یک عدد وجود دارد.

در صورتی که مؤلفه‌ای در دو تصویر هیچ تفاوتی نداشته باشد، مقدار PSNR بی‌نهایت خواهد بود و عدد به صورت inf نمایش می‌یابد.

اما توجه داشته باشید که عدد نمایش‌داده‌شده تحت تأثیر گزینه -max نیز تغییر می‌کند. به‌ویژه، در صورت استفاده از -max، هرگز مقدار inf را مشاهده نخواهید کرد.

این گزینه هنگامی که از -target[n] نیز استفاده کنید، هیچ اثری ندارد.

این گزینه از Netpbm 10.74 (مارس ۲۰۱۶) اضافه شد.

این گزینه تنها همراه با -machine معنادار است.

این گزینه بیشینه عددی را که pnmpsnr به عنوان PSNR چاپ خواهد کرد مشخص می‌کند. اگر PSNR بزرگ‌تر از n باشد، pnmpsnr صرفاً n را چاپ می‌کند. مقدار n یک عدد اعشاری ممیز شناور است. مقدار PSNR بی‌نهایت، بزرگ‌تر از هر عددی در نظر گرفته می‌شود.

این گزینه عمدتاً برای مدیریت مقادیر بی‌نهایت PSNR کاربرد دارد. معمولاً پردازش صرفاً اعداد برای یک برنامه بسیار راحت‌تر از مدیریت مقدار بی‌نهایت است، و در اغلب موارد یک عدد بسیار بزرگ همان اثر بی‌نهایت را بر عملکرد برنامه دارد.

توجه داشته باشید که خروجی لگاریتمی است، به این معنی که اعداد بسیار بزرگ اما متناهی را مشاهده نخواهید کرد. اگر -max=1000 را تعیین کنید، تنها در صورتی عدد 1000 را در خروجی خواهید دید که PSNR واقعاً بی‌نهایت باشد. دو تصویر با تعداد پیکسل‌هایی به اندازه تعداد الکترون‌های جهان هستی، که تنها در یک پیکسل و فقط به کمترین مقدار قابل نمایش در قالب Netpbm با یکدیگر تفاوت دارند، دارای PSNR کمتر از 1000 هستند.

این گزینه از Netpbm 10.74 (مارس ۲۰۱۶) اضافه شد.

این گزینه باعث می‌شود pnmpsnr در حالت مقایسه اجرا شود؛ به جای چاپ مقادیر PSNR، صرفاً مشخص می‌کند که آیا مقادیر PSNR از n (یک عدد ممیز شناور) فراتر می‌روند یا خیر، یعنی آیا تصاویر مقایسه‌شده در یک حاشیه خطای مشخص یکسان هستند یا نه. اگر تمام مقادیر PSNR محاسبه‌شده (روشنایی برای PBM یا PGM؛ روشنایی و رنگ‌مایه یا قرمز، سبز و آبی برای PPM) از n فراتر روند، برنامه عبارت 'match' را در خروجی استاندارد چاپ می‌کند. در غیر این صورت، 'nomatch' چاپ می‌شود.

اگر هر یک از گزینه‌های -target1، -target2 یا -target3 را نیز مشخص کنید و تصاویر رنگی باشند، pnmpsnr گزینه -target را نادیده می‌گیرد.

این ویژگی عمدتاً برای استفاده در برنامه‌ها و اسکریپت‌ها کاربرد دارد. اگر pnmpsnr را به صورت دستی اجرا می‌کنید، می‌توانید آن را بدون -target اجرا نموده و خودتان مقادیر PSNR را با مقادیر مد نظر مقایسه کنید.

این گزینه از Netpbm 10.82 (مارس ۲۰۱۸) اضافه شد.

همانند -target، این گزینه‌ها نیز باعث می‌شوند pnmpsnr در حالت مقایسه اجرا شود؛ اما اهداف جداگانه‌ای را برای PSNR هر یک از مؤلفه‌های رنگ به صورت مجزا تعیین می‌کنند. گزینه‌های -target1، target-2 و -target3 بسته به اینکه آیا -rgb را مشخص کرده باشید یا خیر، به ترتیب برای مؤلفه‌های Y، Cb و Cr، یا مؤلفه‌های قرمز، سبز و آبی اعمال می‌شوند.

اگر گزینه -targetn متناظر برای یک مؤلفه را مشخص نکنید، pnmpsnr در تصمیم‌گیری برای تطابق تصاویر، مقدار PSNR آن مؤلفه را نادیده می‌گیرد.

اگر تصویر ورودی PBM یا PGM باشد، این گزینه‌ها هیچ اثری نخواهند داشت، جز اینکه همچنان حالت مقایسه را فعال می‌کنند؛ بنابراین اگر همچنین گزینه -target را مشخص نکرده باشید و تصویر PBM یا PGM باشد، برنامه با خطا متوقف می‌شود.

توجه داشته باشید که این گزینه‌ها به گونه‌ای تعریف شده‌اند که بتوانید یک دستور pnmpsnr را در برنامه‌ای بنویسید که هم روی تصاویر رنگی و هم تصاویر تک‌رنگ کار کند؛ با تعیین اهداف جداگانه برای تصاویر رنگی و یک هدف واحد برای تصاویر تک‌رنگ.

این گزینه‌ها از Netpbm 10.82 (مارس ۲۰۱۸) اضافه شدند.

pnm(1)

این صفحه راهنما توسط ابزار Netpbm به نام 'makeman' از روی منبع HTML تولید شده است. مستندات اصلی در نشانی زیر در دسترس است:

http://netpbm.sourceforge.net/doc/pnmpsnr.html
06 January 2018 netpbm documentation