שם
cwebp – דחיסת קובץ תמונה לקובץ WebP
תקציר
cwebp [options] input_file -o output_file.webp
תיאור
cwebp דוחס תמונה באמצעות פורמט WebP. פורמט הקלט יכול להיות PNG, JPEG, TIFF, WebP או דגימות Y'CbCr גולמיות.
הערה: אין תמיכה בקובצי PNG ו-WebP מונפשים.
אפשרויות
האפשרויות הבסיסיות הן:
- -o string
- מציינים את השם של קובץ ה-WebP בפלט. אם השדה הזה לא יצוין, המערכת תבצע דחיסה ותדווח רק על נתונים סטטיסטיים. שימוש בסימן "-" בתור שם הפלט יפנה את הפלט אל '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. חשוב לדעת שבמקרים מסוימים, שימוש בקידוד עם אובדן נתונים (lossy) עם-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מחליף את הפרמטרים האחרים (מלבד- -q1), רצוי שהאפשרות הזאת תופיע ראשונה לפי סדר ארגומנטים.
- -m int
- מציינים את שיטת הדחיסה שבה רוצים להשתמש. הפרמטר הזה שולט במסחר בין מהירות הקידוד לבין הגודל והאיכות של הקובץ הדחוס. הערכים האפשריים נעים בין - 0לבין- 6. ערך ברירת המחדל הוא- 4. בדרגה גבוהה יותר נעשה שימוש בערכים האלה, המקודד ישקיע יותר זמן בבדיקות אפשרויות הקידוד ולהחליט על שיפור האיכות. ערך נמוך יותר יכול להוביל לזמן עיבוד מהיר יותר, אבל הקובץ יהיה גדול יותר ואיכות הדחיסה תהיה נמוכה יותר.
- -crop x_position y_position width height
- חתוך את המקור למלבן עם הפינה הימנית העליונה בקואורדינטות ( - x_position,- y_position) ובגודל- widthx- height. אזור החיתוך חייב להיכלל במלואו בתוך ריבוע המקור. הערה: החיתוך מוחל לפני כל הגדלה באחוזים.
- -resize width height
- משנים את הגודל של המקור למלבן בגודל - widthx- height. אם אחד (אבל לא שניהם) מהפרמטרים של רוחב או גובה הוא- 0, הערך יחושב תוך שמירה על יחס הגובה-רוחב. הערה: שינוי התצוגה (scaling) מתבצע אחרי החיתוך.
- -mt
- אם אפשר, כדאי להשתמש בריבוי שרשורים לקידוד. 
- -low_memory
- כדי לצמצם את השימוש בזיכרון של קידוד עם אובדן נתונים, שומרים פי ארבעה מהגודל המכווץ (בדרך כלל). הפעולה הזו תאט את קצב ההמרה, והפלט יהיה שונה במעט בגודל ובעיוות. הדגל הזה תקף רק לשיטות 3 ואילך, והוא מושבת כברירת מחדל. חשוב לדעת שללא הדגל הזה יהיו השפעות משניות על מקור הנתונים: הוא מאלץ תכונות מסוימות של מקור הנתונים, כמו מספר המחיצות (הוא מאלץ את הערך - 1). חשוב לדעת שכשמשתמשים באפשרות הזו,- cwebpמדפיס דוח מפורט יותר של גודל מקור הנתונים.
אפשרויות עם אובדן נתונים
אפשרויות אלה יעילות רק בעת ביצוע קידוד איבוד נתונים (ברירת המחדל, עם או ללא אלפא).
- -size int
- יש לציין גודל יעד (בבייטים) כדי לנסות את פוטנציאל החשיפה עבור הגודל הדחוס
הפלט. המדחס יבצע מספר מעברים של קידוד חלקי
כדי להיות קרובים ככל האפשר ליעד. אם גם -sizeוגם נעשה שימוש ב--psnr, הערך של-sizeיגבר.
- -psnr float
- מציינים יעד PSNR (ב-dB) כדי לנסות להגיע לפלט הדחוס ולשפר את פוטנציאל החשיפה.
המדחס יבצע מספר העברתים של קידוד חלקי כדי לקבל
קרובים ככל האפשר ליעד הזה. אם נעשה שימוש גם ב--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 או בגודל 16x16, ולבסוף את מצבי החיזוי שבהם צריך להשתמש בכל אחד גושי משנה. בתמונה גדולה מאוד, 512k משאירים מקום רק לכמה ביטים לכל מק"ט בגודל 16x16. המינימום המוחלט הוא 4 ביטים לכל microblock. מידע על דילוג, על פלח ועל מצב יכול להשתמש בכמעט כל 4 הביטים האלה (אבל זה לא סביר), וזה בעייתי בתמונות גדולות מאוד. הגורםpartition_limitקובע את תדירות השימוש במצב הכי יקר בביטים (intra 4x4). האפשרות הזו שימושית במקרה שמגיעים למגבלה של 512k ומופיעה ההודעה הבאה: Error code: 6 (PARTITION0_OVERFLOW: Partition #0 is too big to fit 512k). אם השימוש ב--partition_limitלא מספיק כדי לעמוד באילוץ של 512k, צריך להשתמש בפחות פלחים כדי לחסוך יותר ביטים של כותרות לכל מק"ט. אפשרות-segments. לתשומת ליבכם: האפשרויות-mו--qמשפיעות גם על ההחלטות של המקודד ועל היכולת שלו לעמוד במגבלה הזו.
אפשרויות רישום
האפשרויות האלה קובעות את רמת הפלט:
- -v
- אפשר להדפיס מידע נוסף (במיוחד את זמן הקידוד).
- -print_psnr
- Compute ודוח ממוצע של 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 lossless לדחיסה. ערך ברירת המחדל הוא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/
הדף הידני הזה נכתב לפרויקט Debian (ויכול להיות בשימוש על ידי אחרים).
