cwebp

نام

cwebp -- یک فایل تصویری را به یک فایل WebP فشرده کنید

خلاصه داستان

cwebp [options] input_file -o output_file.webp

شرح

cwebp یک تصویر را با استفاده از فرمت WebP فشرده می کند. فرمت ورودی می تواند PNG، JPEG، TIFF، WebP یا نمونه های خام Y'CbCr باشد. توجه: فایل های متحرک PNG و WebP پشتیبانی نمی شوند.

گزینه ها

گزینه های اساسی عبارتند از:

-o string
نام فایل WebP خروجی را مشخص کنید. اگر حذف شود، cwebp فشرده سازی را انجام می دهد اما فقط آمار را گزارش می دهد. استفاده از "-" به عنوان نام خروجی، خروجی را به "stdout" هدایت می کند.
-- string
فایل ورودی را به صراحت مشخص کنید. برای مثال اگر فایل ورودی با یک '-' شروع شود، این گزینه مفید است. این گزینه باید last نمایش داده شود. هر گزینه دیگری پس از آن نادیده گرفته خواهد شد.
-h, -help
خلاصه استفاده از
-H, -longhelp
خلاصه ای از تمام گزینه های ممکن.
-version
شماره نسخه را چاپ کنید (به عنوان major.minor.revision) و خارج شوید.
-lossless
تصویر را بدون از دست دادن رمزگذاری کنید. برای تصاویر با ناحیه کاملا شفاف، مقادیر پیکسل نامرئی (R/G/B یا Y/U/V) تنها در صورتی حفظ می‌شوند که از گزینه -exact استفاده شود.
-near_lossless int
سطح پیش پردازش تصویر تقریباً بدون تلفات را مشخص کنید. این گزینه مقادیر پیکسل را برای کمک به تراکم‌پذیری تنظیم می‌کند، اما تأثیر کمتری بر کیفیت بصری دارد. حالت فشرده سازی بدون تلفات را به طور خودکار فعال می کند. محدوده 0 (حداکثر پیش پردازش) تا 100 (بدون پیش پردازش، پیش فرض). مقدار معمولی حدود 60 است. توجه داشته باشید که تلفات با -q 100 در برخی مواقع می تواند نتایج بهتری به همراه داشته باشد.
-q float

ضریب فشرده سازی کانال های RGB بین 0 تا 100 را مشخص کنید. پیش فرض 75 است.

در صورت فشرده‌سازی با اتلاف (پیش‌فرض)، یک عامل کوچک فایل کوچک‌تری با کیفیت پایین‌تر تولید می‌کند. بهترین کیفیت با استفاده از مقدار 100 به دست می آید.

در صورت فشرده‌سازی بدون اتلاف (که توسط گزینه -lossless مشخص شده است)، یک عامل کوچک سرعت فشرده‌سازی سریع‌تر را امکان‌پذیر می‌کند، اما فایل بزرگ‌تری تولید می‌کند. حداکثر فشرده سازی با استفاده از مقدار 100 به دست می آید.

-z int

حالت فشرده سازی lossless را با سطح مشخص شده بین 0 تا 9 روشن کنید، سطح 0 سریع ترین و 9 کندترین است. حالت سریع حجم فایل بزرگتری نسبت به حالت های کندتر تولید می کند. یک پیش فرض خوب -z 6 است. این گزینه در واقع یک میانبر برای برخی تنظیمات از پیش تعریف شده برای کیفیت و روش است. اگر گزینه های -q یا -m متعاقباً استفاده شوند، اثر این گزینه را باطل می کنند.

-alpha_q int

ضریب فشرده سازی را برای فشرده سازی آلفا بین 0 تا 100 مشخص کنید. فشرده سازی بدون تلفات آلفا با استفاده از مقدار 100 به دست می آید، در حالی که مقادیر پایین تر منجر به فشرده سازی با اتلاف می شود. پیش فرض 100 است.

-preset string

مجموعه ای از پارامترهای از پیش تعریف شده را متناسب با نوع خاصی از ماده منبع مشخص کنید. مقادیر ممکن عبارتند از: default ، photo ، picture ، drawing ، icon ، text .

از آنجایی که -preset مقادیر سایر پارامترها را بازنویسی می کند (به جز -q )، این گزینه ترجیحاً باید ابتدا در ترتیب آرگومان ها ظاهر شود.

-m int

روش فشرده سازی مورد استفاده را مشخص کنید. این پارامتر تعادل بین سرعت کدگذاری و اندازه و کیفیت فایل فشرده را کنترل می کند. مقادیر ممکن از 0 تا 6 متغیر است. مقدار پیش فرض 4 است. هنگامی که مقادیر بالاتر استفاده می شود، رمزگذار زمان بیشتری را صرف بررسی احتمالات رمزگذاری اضافی می کند و در مورد افزایش کیفیت تصمیم می گیرد. مقدار کمتر می‌تواند منجر به زمان پردازش سریع‌تر در هزینه حجم فایل بیشتر و کیفیت فشرده‌سازی پایین‌تر شود.

-crop x_position y_position width height

منبع را به یک مستطیل با گوشه بالا سمت چپ در مختصات ( x_position ، y_position ) و اندازه width x height برش دهید. این منطقه کشت باید به طور کامل در مستطیل منبع قرار گیرد. توجه: قبل از هر نوع پوسته ریزی، برش انجام می شود.

-resize width height

اندازه منبع را به یک مستطیل با اندازه width x height تغییر دهید. اگر یکی (اما نه هر دو) از پارامترهای عرض یا ارتفاع 0 باشد، مقدار با حفظ نسبت ابعاد محاسبه خواهد شد. توجه: پوسته پوسته شدن پس از برش اعمال می شود.

-mt

در صورت امکان از چند رشته برای رمزگذاری استفاده کنید.

-low_memory

با ذخیره کردن چهار برابر اندازه فشرده (معمولا) استفاده از حافظه رمزگذاری با اتلاف را کاهش دهید. این باعث می شود رمزگذاری کندتر شود و خروجی از نظر اندازه و اعوجاج کمی متفاوت باشد. این پرچم فقط برای روش های 3 و بالاتر موثر است و به طور پیش فرض خاموش است. توجه داشته باشید که خاموش کردن این پرچم عوارض جانبی روی بیت استریم خواهد داشت: ویژگی‌های بیت‌استریم خاصی مانند تعداد پارتیشن‌ها (اجباری به 1 ) را مجبور می‌کند. توجه داشته باشید که هنگام استفاده از این گزینه گزارش دقیق تری از اندازه بیت استریم توسط cwebp چاپ می شود.

گزینه های باخت

این گزینه‌ها فقط در هنگام انجام رمزگذاری با اتلاف (پیش‌فرض، با یا بدون آلفا) مؤثر هستند.

-size int
اندازه هدف (بر حسب بایت) را برای تلاش و رسیدن به خروجی فشرده مشخص کنید. کمپرسور چندین رمزگذاری جزئی را انجام می دهد تا تا حد امکان به این هدف نزدیک شود. اگر هر دو -size و -psnr استفاده شوند، مقدار -size غالب خواهد بود.
-psnr float
یک PSNR هدف (بر حسب دسی بل) برای تلاش و رسیدن به خروجی فشرده مشخص کنید. کمپرسور چندین رمزگذاری جزئی را انجام می دهد تا تا حد امکان به این هدف نزدیک شود. اگر هر دو -size و -psnr استفاده شوند، مقدار -size غالب خواهد بود.
-pass int
حداکثر تعداد پاس را برای استفاده در طول دوگانگی که توسط گزینه های -size یا -psnr استفاده می شود، تنظیم کنید. حداکثر مقدار 10 ، پیش فرض 1 است. اگر از گزینه های -size یا -psnr استفاده شده باشد، اما -pass مشخص نشده باشد، مقدار پیش فرض '6' پاس ها استفاده خواهد شد. اگر -pass مشخص شده باشد، اما نه -size و نه -psnr باشد، یک PSNR هدف 40dB استفاده خواهد شد.
-af
فیلتر خودکار را روشن می کند. این الگوریتم زمان بیشتری را صرف بهینه سازی قدرت فیلتر برای رسیدن به کیفیت متعادل می کند.
-jpeg_like
نگاشت پارامتر داخلی را تغییر دهید تا بهتر با اندازه مورد انتظار فشرده سازی JPEG مطابقت داشته باشد. این پرچم معمولاً یک فایل خروجی با اندازه معادل JPEG خود (برای همان تنظیمات -q ) اما با اعوجاج بصری کمتر تولید می کند.

گزینه های پیشرفته:

-f int
قدرت فیلتر رفع انسداد را بین 0 (بدون فیلتر) و 100 (حداکثر فیلتر) مشخص کنید. مقدار 0 هر فیلتری را خاموش می کند. مقدار بالاتر، قدرت فرآیند فیلتر اعمال شده پس از رمزگشایی تصویر را افزایش می دهد. هر چه مقدار بالاتر باشد تصویر صاف تر ظاهر می شود. مقادیر معمولی معمولاً در محدوده 20 تا 50 هستند.
-sharpness int
وضوح فیلتر (در صورت استفاده) را مشخص کنید. محدوده 0 (تیزترین) تا 7 (کمترین تیز) است. پیش فرض 0 است.
-strong
از فیلترینگ قوی استفاده کنید (اگر فیلترینگ به لطف گزینه -f استفاده می شود). فیلترینگ قوی به طور پیش فرض روشن است.
-nostrong
فیلترینگ قوی را غیرفعال کنید (اگر فیلترینگ به لطف گزینه -f استفاده می شود) و به جای آن از فیلتر ساده استفاده کنید.
-sharp_yuv
در صورت نیاز از تبدیل RGB->YUV دقیق تر و واضح تر استفاده کنید. توجه داشته باشید که این فرآیند از تبدیل پیش‌فرض «سریع» RGB->YUV کندتر است.
-sns int
دامنه شکل دهی نویز فضایی را مشخص کنید. شکل‌دهی نویز فضایی (یا به اختصار sns) به مجموعه‌ای کلی از الگوریتم‌های داخلی اشاره دارد که برای تصمیم‌گیری در کدام ناحیه از تصویر باید از بیت‌های نسبتاً کمتری استفاده شود، و در کجای دیگر برای انتقال بهتر این بیت‌ها استفاده می‌شود. محدوده ممکن از 0 (الگوریتم خاموش است) تا 100 (حداکثر اثر) است. مقدار پیش فرض 50 است.
-segments int
تعداد پارتیشن های مورد استفاده در طول تقسیم بندی الگوریتم sns را تغییر دهید. بخش ها باید در محدوده 1 تا 4 باشند. مقدار پیش فرض 4 است. این گزینه برای متدهای 3 و بالاتر هیچ تاثیری ندارد، مگر اینکه از -low_memory استفاده شود.
-partition_limit int
کیفیت را با محدود کردن تعداد بیت های استفاده شده توسط برخی ماکروبلاک ها کاهش دهید. محدوده 0 (بدون تخریب، پیش فرض) تا 100 (تخریب کامل) است. مقادیر مفید معمولاً برای تصاویر نسبتاً بزرگ حدود 30 تا 70 است. در فرمت VP8، پارتیشن به اصطلاح کنترل دارای محدودیت 512k است و برای ذخیره اطلاعات زیر استفاده می شود: آیا ماکروبلاک رد شده است، به کدام بخش تعلق دارد، آیا به عنوان حالت intra 4x4 یا intra 16x16 کدگذاری شده است، و در نهایت حالت های پیش بینی مورد استفاده برای هر یک از بلوک های فرعی. برای یک تصویر بسیار بزرگ، 512k تنها فضایی برای چند بیت در هر بلوک ماکرو 16x16 باقی می گذارد. حداقل مطلق 4 بیت در هر ماکروبلاک است. اطلاعات پرش، بخش‌بندی و حالت می‌تواند تقریباً از تمام این 4 بیت استفاده کند (اگرچه این مورد بعید است)، که برای تصاویر بسیار بزرگ مشکل‌ساز است. ضریب partition_limit کنترل می کند که چند بار از پرهزینه ترین حالت بیت (درون 4×4) استفاده شود. این برای زمانی مفید است که به محدودیت 512k رسیده باشد و پیام زیر نمایش داده شود: کد خطا: 6 (PARTITION0_OVERFLOW: پارتیشن شماره 0 خیلی بزرگ است و نمی تواند با 512k سازگار شود). اگر استفاده از -partition_limit برای برآوردن محدودیت 512k کافی نیست، باید از بخش های کمتری استفاده کرد تا بیت های هدر بیشتری در هر بلوک ماکرو ذخیره شود. گزینه -segments را ببینید. توجه داشته باشید که گزینه های -m و -q نیز بر تصمیمات رمزگذار و توانایی آن برای رسیدن به این حد تأثیر می گذارد.

گزینه های ورود به سیستم

این گزینه ها سطح خروجی را کنترل می کنند:

-v
چاپ اطلاعات اضافی (به ویژه زمان رمزگذاری).
-print_psnr
میانگین PSNR (نسبت پیک سیگنال به نویز) را محاسبه و گزارش کنید.
-print_ssim
میانگین SSIM را محاسبه و گزارش کنید (متریک تشابه ساختاری، برای جزئیات بیشتر به https://en.wikipedia.org/wiki/SSIM مراجعه کنید).
-print_lsim
متریک شباهت محلی را محاسبه و گزارش کنید (مجموع کمترین خطا در میان همسایگان پیکسل های همتا شده).
-progress
پیشرفت رمزگذاری را به درصد گزارش کنید.
-quiet
چیزی چاپ نکنید.
-short
فقط اطلاعات مختصر (اندازه فایل خروجی و PSNR) را برای اهداف آزمایشی چاپ کنید.
-map int
خروجی ASCII-نقشه اضافی اطلاعات رمزگذاری. مقادیر احتمالی نقشه از 1 تا 6 متغیر است. این فقط برای کمک به رفع اشکال است.

گزینه های اضافی

گزینه های پیشرفته تر عبارتند از:

-s width height
مشخص کنید که فایل ورودی در واقع شامل نمونه‌های خام Y'CbCr با پیروی از توصیه ITU-R BT.601، در قالب خطی 4:2:0 است. صفحه لوما اندازه width x height دارد.
-pre int
چند مرحله پیش پردازش را مشخص کنید. استفاده از مقدار 2 باعث ایجاد دودگی شبه تصادفی وابسته به کیفیت در طول تبدیل RGBA->YUVA می شود (فقط فشرده سازی با تلفات).
-alpha_filter string
روش فیلتر پیش بینی برای صفحه آلفا را مشخص کنید. یکی از none ، fast یا best ، در ترتیب افزایش پیچیدگی و کندی. پیش فرض fast است. در داخل، فیلتر آلفا با استفاده از چهار پیش بینی ممکن (هیچ، افقی، عمودی، گرادیان) انجام می شود. best حالت هر حالت را به نوبه خود امتحان می کند و یکی را انتخاب می کند که اندازه کوچکتر را می دهد. حالت fast فقط سعی می کند یک حدس پیشینی بدون آزمایش همه حالت ها ایجاد کند.
-alpha_method int
الگوریتم مورد استفاده برای فشرده سازی آلفا را مشخص کنید: 0 یا 1 . الگوریتم 0 نشان دهنده عدم فشرده سازی است، 1 از فرمت WebP بدون اتلاف برای فشرده سازی استفاده می کند. پیش فرض 1 است.
-exact
مقادیر RGB را در ناحیه شفاف حفظ کنید. برای کمک به تراکم‌پذیری، پیش‌فرض خاموش است.
-blend_alpha int
این گزینه کانال آلفا (در صورت وجود) را با منبع با استفاده از رنگ پس‌زمینه مشخص شده در هگزادسیمال 0xrrggbb ترکیب می‌کند. کانال آلفا پس از آن به مقدار مات 255 بازنشانی می شود.
-noalpha
با استفاده از این گزینه کانال آلفا حذف می شود.
-hint string
راهنمایی در مورد نوع تصویر ورودی را مشخص کنید. مقادیر ممکن عبارتند از: photo ، picture یا graph .
-metadata string

فهرستی از فراداده جدا شده با کاما برای کپی کردن از ورودی به خروجی در صورت وجود. مقادیر معتبر: all , none , exif , icc , xmp . پیش فرض none است.

توجه داشته باشید که هر فرمت ورودی ممکن است از همه ترکیب ها پشتیبانی نکند.

-noasm

همه بهینه سازی های اسمبلی را غیرفعال کنید.

اشکالات

مثال ها

cwebp -q 50 -lossless picture.png -o picture_lossless.webp
cwebp -q 70 picture_with_alpha.png -o picture_with_alpha.webp
cwebp -sns 70 -f 50 -size 60000 picture.png -o picture.webp
cwebp -o picture.webp -- ---picture.png

نویسندگان

cwebp بخشی از libwebp است و توسط تیم WebP نوشته شده است. آخرین درخت منبع در https://chromium.googlesource.com/webm/libwebp/ موجود است

این صفحه راهنما برای پروژه دبیان نوشته شده است (و ممکن است توسط دیگران استفاده شود).