Pnmscalefixed User Manual(0) Pnmscalefixed User Manual(0)

pnmscalefixed - مقیاس‌بندی سریع یک فایل PNM

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

دستور pnmscalefixed شبیه به pamscale است، با این تفاوت که به صورت داخلی به جای ممیز شناور (floating point) از محاسبات ممیز ثابت (fixed point) استفاده می‌کند که ممکن است باعث اجرای سریع‌تر آن شود. در مقابل، دقت کمتری دارد و ممکن است تصویر را دچار اعوجاج کند. همچنین فاقد بسیاری از ویژگی‌های pamscale است.

همراه با pnmscalefixed از راهنمای کاربری pamscale استفاده کنید. این سند تنها تفاوت‌ها را شرح می‌دهد. از هر ویژگی ذکر شده در راهنمای pamscale که پیش از Netpbm 9.9 وجود نداشته است، دوری کنید.

دستور pnmscalefixed از محاسبات ممیز ثابت ۱۲ بیتی استفاده می‌کند. در مقابل، pamscale از محاسبات ممیز شناور بهره می‌برد که در اغلب سیستم‌ها احتمالا دقتی ۲۴ بیتی دارد. این ویژگی باعث می‌شود pnmscalefixed سریع‌تر اجرا شود (در یک آزمایش، ۳۰٪ سریع‌تر)، اما این عدم دقت می‌تواند باعث ایجاد اعوجاج در لبه‌های سمت راست و پایین تصویر شود.

اعوجاج به این شکل رخ می‌دهد: یک پیکسل از لبه ورودی، در خروجی بزرگ‌تر از مقداری که ضریب مقیاس‌بندی ایجاب می‌کند رندر می‌شود. در نتیجه، بقیه تصویر کوچک‌تر از مقداری که ضریب مقیاس‌بندی نیاز دارد خواهد بود، چرا که ابعاد کلی تصویر همیشه دقیقا همان مقدار درخواست‌شده است. تشخیص این اعوجاج معمولا بسیار دشوار خواهد بود.

دستور pnmscalefixed همراه با گزینه -verbose میزان این اعوجاج را به شما گزارش می‌دهد.

میزان اعوجاج به اندازه تصویر ورودی و میزان نزدیکی ضریب مقیاس‌بندی به مضرب صحیحی از ۱/۴۰۹۶ بستگی دارد.

اگر ضریب مقیاس‌بندی مضرب دقیقی از ۱/۴۰۹۶ باشد، هیچ اعوجاجی رخ نمی‌دهد. بنابراین، برای مثال دو برابر یا نصف کردن یک تصویر اعوجاجی ایجاد نمی‌کند. اما کاهش یا افزایش اندازه آن به میزان یک‌سوم، مقداری اعوجاج در پی خواهد داشت. برای بررسی یک حالت حاد، مقیاس‌بندی کاهشی تصویری با ۱۰۰٬۰۰۰ سطر به ۵۰٬۰۲۲ سطر، تصویر خروجی‌ای تولید می‌کند که در آن تمام ورودی در ۵۰٬۰۰۰ سطر بالایی فشرده شده و آخرین سطر ورودی در ۲۲ سطر پایینی خروجی کپی می‌شود.

احتمالا می‌توان pnmscalefixed را به گونه‌ای تغییر داد که بدون از دست دادن هیچ مزیتی از محاسبات ۱۶ بیتی یا بهتر استفاده کند. این تغییر شامل تنها یک مقدار ثابت در کد منبع خواهد بود. با این حال، تا زمانی که نیازی اثبات‌شده برای آن وجود نداشته باشد، نگهدارنده Netpbm تمایل دارد حاشیه امنیت ارائه‌شده توسط دقت ۱۲ بیتی اصلی را حفظ کند.

دستور pnmscalefixed فاقد گزینه -nomix موجود در pamscale است.

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

این گزینه‌ها ضریب‌های مقیاس را تعیین می‌کنند. برای جزئیات به راهنمای کاربری pamscale(1) مراجعه کنید.

گزارش جزئیات تبدیل تصویر.

pnmscalefixed در ابتدا همان pnmscale بود. در Netpbm 9.9 (نوامبر ۲۰۰۰)، pnmscale برای استفاده از محاسبات ممیز شناور بازنویسی شد؛ و نسخه پیشین که از محاسبات ممیز ثابت استفاده می‌کرد به pnmscalefixed تغییر نام یافت.

pamscale(1), pamstretch(1), pamstretch-gen(1), pbmreduce(1), pbmpscale(1), pamenlarge(1), pnmscale(1), pnm(1), pam(1)

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

http://netpbm.sourceforge.net/doc/pnmscalefixed.html
01 July 2020 netpbm documentation