نام
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) و اندازهwidthxheightبرش دهید. این منطقه کشت باید به طور کامل در مستطیل منبع قرار گیرد. توجه: قبل از هر نوع پوسته ریزی، برش انجام می شود.-
-resize width height اندازه منبع را به یک مستطیل با اندازه
widthxheightتغییر دهید. اگر یکی (اما نه هر دو) از پارامترهای عرض یا ارتفاع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 است. صفحه لوما اندازه
widthxheightدارد. -
-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 همه بهینه سازی های اسمبلی را غیرفعال کنید.
اشکالات
لطفاً همه اشکالات را به ردیاب مشکل گزارش دهید: https://issues.webmproject.org
پچ ها خوش آمدید! برای شروع به این صفحه مراجعه کنید: https://www.webmproject.org/code/contribute/submitting-patches/
نمونه ها
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/ موجود است
این صفحه راهنما برای پروژه دبیان نوشته شده است (و ممکن است توسط دیگران استفاده شود).