zlib — דחיסה ופריסה של zlib

מודול זה מאפשר דחיסה ופריסה של נתונים בינאריים באמצעות אלגוריתם DEFLATE (בשימוש נפוץ בספריית zlib ובכלי הארכוב gzip).

הערה

העדיפו להשתמש ב-deflate.DeflateIO במקום בפונקציות שבמודול זה, מאחר שהוא מספק ממשק זורם לדחיסה ולפריסה הנוח וחסכוני יותר בזיכרון בעת קריאה או כתיבה של נתונים דחוסים לקובץ, לסוקט או לזרם.

זמינות:

  • מודול זה אינו כלול ב-OpenMV Cam כברירת מחדל, מאחר שהוא משכפל פונקציונליות שכבר מסופקת על ידי המודול deflate.

  • ניתן להתקין עותק (או להקפיא אותו לתוך קושחה מותאמת אישית) מתוך micropython-lib (מקור). ראו ניהול חבילות למידע נוסף. תיעוד זה מתאר את אותו מודול.

  • הוא מסתמך על המודול המובנה deflate, הקיים בכל מצלמות OpenMV Cam.

  • דחיסה זמינה רק אם דחיסה זמינה במודול המובנה deflate – כלומר, לא במצלמות OpenMV Cam מבוססות STM32 (ראו את הערת הזמינות שלו לעיל).

פונקציות

zlib.decompress(data: bytes, wbits: int = 15, /) bytes

פורס את data לאובייקט bytes.

הפרמטר wbits פועל באותו אופן כמו עבור zlib.compress() עם הערכים התקפים הנוספים הבאים:

  • 0: קביעה אוטומטית של גודל החלון מכותרת ה-zlib (data חייב להיות בפורמט zlib).

  • 35 עד 47: זיהוי אוטומטי של פורמט zlib או gzip.

כמו עבור zlib.compress(), ראו את תיעוד CPython עבור zlib למידע נוסף על הפרמטר wbits. כמו עבור zlib.compress(), MicroPython תומכת גם בגדלי חלון קטנים יותר מ-CPython. ראו פרטים ספציפיים ל-MicroPython נוספים בתיעוד המודול deflate.

אם הנתונים שיש לפרוס דורשים גודל חלון גדול יותר, הפעולה תיכשל במהלך הפריסה.

zlib.compress(data: bytes, wbits: int = 15, /) bytes

דוחס את data לאובייקט bytes.

wbits מאפשר לכם להגדיר את גודל חלון מילון ה-DEFLATE ואת פורמט הפלט. גודל החלון מאפשר לכם לאזן בין שימוש בזיכרון לבין רמת הדחיסה. גודל חלון גדול יותר יאפשר לדחסן להפנות לקטעים רחוקים יותר אחורה בקלט. פורמטי הפלט הם DEFLATE ”גולמי“ (ללא כותרת/כותרת תחתית), zlib ו-gzip, כאשר שני האחרונים כוללים כותרת וסכום ביקורת.

ארבעת הביטים הנמוכים של הערך המוחלט של wbits קובעים את הלוגריתם בבסיס 2 של גודל חלון מילון ה-DEFLATE. כך למשל, wbits=10, wbits=-10 ו-wbits=26 כולם קובעים את גודל החלון ל-1024 בתים. גדלי החלון התקפים הם 5 עד 15 כולל (התואמים ל-32 עד 32k בתים).

ערכים שליליים של wbits בין -5 ל--15 תואמים למצב פלט ”גולמי“, ערכים חיוביים בין 5 ל-15 תואמים למצב פלט zlib, וערכים חיוביים בין 21 ל-31 תואמים למצב פלט gzip.

ראו את תיעוד CPython עבור zlib למידע נוסף על הפרמטר wbits. שימו לב ש-MicroPython מאפשרת גדלי חלון קטנים יותר, דבר השימושי כאשר הזיכרון מוגבל אך עדיין מושגת רמת דחיסה סבירה. הדבר גם מאיץ את הדחסן. ראו פרטים ספציפיים ל-MicroPython נוספים בתיעוד המודול deflate.