מהו קובץ LZ4?
קובץ עם סיומת .lz4 הוא קובץ ארכיון דחוס שנוצר עם יישומים/כלי עזר התומכים בדחיסת LZ4. אלגוריתם LZ4 מתמקד בהחלפה בין מהירות ויחס דחיסה. ניתן ליצור ארכיונים דחוסים של LZ4 באמצעות כלי השירות של שורת הפקודה LZ4 וניתן לשחרר אותם באמצעות אותו.
פורמט קובץ LZ4
פורמט הקובץ LZ4, המבוסס על אלגוריתם הדחיסה LZ4, אינו תלוי בסוג המעבד, מערכת ההפעלה, מערכת הקבצים וקבוצת התווים. זה מתאים לדחיסת קבצים ולדחיסת סטרימינג באמצעות אלגוריתם LZ4. היישום הראשוני של פורמט LZ4 בוצע בשפת C על ידי יאן קולט בשנת 2011 והוא זמין לעיון המפתחים ב-Github .
פורמט מסגרת LZ4
המבנה הכללי של פורמט הקובץ LZ4 הוא כפי שמוצג להלן.
MagicNb | F. מתאר | חסום | (…) | EndMark | C. Checksum |
---|---|---|---|---|---|
4 בתים | 3-15 בתים | 4 בתים | 0-4 בתים |
מספר קסם
4 בתים, פורמט ליטל אנדיאן. ערך: 0x184D2204
מתאר מסגרת
מתאר המסגרת מורכב מ-3 t0 15 בתים והוא החלק החשוב ביותר במפרטים. ביחד, השדות Magic_Number ו- Frame_Descriptor מכונים LZ4 Frame Header, וגודלו משתנה בין 7 ל-19 בתים. זה כפי שמוצג להלן.
FLG | BD | (גודל תוכן) | (מזהה מילון) | HC |
---|---|---|---|---|
1 בייט | 1 בייט | 0 - 8 בתים | 0 - 4 בתים | 1 בייט |
חסימות נתונים
כל בלוק נתונים עוקב אחר הסדר הבא.
גודל בלוק | נתונים | (בלוק Checksum) |
---|---|---|
4 בתים | 0 - 4 בתים |
EndMark
זרימת הבלוקים מסתיימת כאשר אחרי בלוק הנתונים האחרון מופיע הערך של 32 סיביות 0x00000000.
בדיקת תוכן
ה-Content_Checksum מאמת את תקפות התוכן המפוענח כהלכה ומתבצע באמצעות התוצאה של אלגוריתם xxHash-32. זה מאמת את התוצאות של שידור מוצלח של כל הבלוקים בסדר הנכון וללא כל שגיאה.