نام
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
xheight
برش دهید. این منطقه کشت باید به طور کامل در مستطیل منبع قرار گیرد. توجه: قبل از هر نوع پوسته ریزی، برش انجام می شود.-
-resize width height
اندازه منبع را به یک مستطیل با اندازه
width
xheight
تغییر دهید. اگر یکی (اما نه هر دو) از پارامترهای عرض یا ارتفاع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
xheight
دارد. -
-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/ موجود است
این صفحه راهنما برای پروژه دبیان نوشته شده است (و ممکن است توسط دیگران استفاده شود).