الاسم
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
xheight
. يجب أن تكون منطقة الاقتصاص هذه مضمّنة بالكامل داخل المستطيل المصدر. ملاحظة: سيتم الاقتصاص تطبيق قبل أي تحجيم.-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
يُرجى الإبلاغ عن جميع الأخطاء من خلال أداة تتبُّع المشاكل: 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/
تمت كتابة هذه الصفحة اليدوية لمشروع Debian (ويمكن أن يستخدمه آخرون).