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
اطبع رقم الإصدار (asMajor.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 مستهدَفة تبلغ 40 ديسيبل.
-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
تغيير عدد الأقسام المراد استخدامها أثناء تقسيم الأرقام القياسية للخوارزمية. يجب أن تكون الشرائح في النطاق من 1 إلى 4. القيمة التلقائية هي 4. لا يكون لهذا الخيار أي تأثير في الطرق 3 والطرق الأحدث، ما لم يتم استخدام -low_memory .
-partition_limit int
تقلل الجودة من خلال الحد من عدد وحدات البت التي تستخدمها بعض وحدات الماكرو. النطاق هو 0 (بدون تدهور، الإعداد التلقائي) إلى 100 (تدهور كامل). وتكون القيم المفيدة عادةً بين ‎30 و‎70 للصور الكبيرة إلى حدٍ ما. في تنسيق VP8، يكون الحد الأقصى لما يُعرف باسم قسم التحكّم هو 512 كيلوبايت ويتم استخدامه لتخزين المعلومات التالية: ما إذا كان يتم تخطّي الإطار الكبير، والقسم الذي ينتمي إليه، وما إذا كان يتم ترميزه على أنّه وضع داخلي 4×4 أو وضع داخلي 16×16، وأخيراً أوضاع التوقّع التي سيتم استخدامها لكل من الوحدات الفرعية. بالنسبة إلى الصور الكبيرة جدًا، لا تترك مساحة 512 كيلوبايت سوى بضع وحدات بت لكل 16x16 chromeblock. الحد الأدنى المطلق هو 4 بت لكل كتلة ماكرو. تخطى، وقطاع البيانات والوضع أن تستخدم جميع هذه البتات الأربعة تقريبًا (على الرغم من وهذا أمرٌ مستبعَد)، وهو ما يؤثر في الصور الكبيرة جدًا. يتحكّم عامل partition_limit في عدد مرات استخدام الوضع الذي يستهلك أكبر عدد من البتات (الترميز الداخلي بدقة 4×4). يكون هذا مفيدًا في حال بلوغ الحد الأقصى البالغ 512 كيلوبايت وظهور الرسالة التالية: رمز الخطأ: 6 (PARTITION0_OVERFLOW: القسم رقم 0 كبير جدًا ولا يمكنه استيعاب 512 كيلوبايت). إذا لم يكن استخدام -partition_limit كافيًا لاستيفاء القيود المفروضة على حجم 512 كيلوبايت، يجب استخدام عدد أقل من الشرائح لتوفير المزيد من بتات الرأس لكلّ بلوكة كبرى. اطّلِع على الخيار -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 × 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

أوقِف جميع تحسينات التجميع.

Bugs

أمثلة

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/

تمت كتابة هذه الصفحة اليدوية لمشروع Debian (ويمكن أن يستخدمه آخرون).