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 × height. يجب أن تكون مساحة الاقتصاص هذه مضمنة بالكامل داخل مستطيل المصدر. ملاحظة: يتم تطبيق الاقتصاص قبل أي تحجيم.

-resize width height

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