একটি LZ4 ফাইল কি?
.lz4 এক্সটেনশন সহ একটি ফাইল হল একটি সংকুচিত সংরক্ষণাগার ফাইল যা LZ4 কম্প্রেশন সমর্থন করে এমন অ্যাপ্লিকেশন/ইউটিলিটিগুলির সাহায্যে তৈরি করা হয়। LZ4 অ্যালগরিদম গতি এবং কম্প্রেশন অনুপাতের মধ্যে ট্রেড-অফের উপর ফোকাস করে। সংকুচিত LZ4 আর্কাইভগুলি LZ4 কমান্ড-লাইন ইউটিলিটি ব্যবহার করে তৈরি করা যেতে পারে এবং একই ব্যবহার করে ডিকম্প্রেস করা যেতে পারে।
LZ4 ফাইল ফরম্যাট
LZ4 ফাইল ফরম্যাট, LZ4 কম্প্রেশন অ্যালগরিদমের উপর ভিত্তি করে, CPU প্রকার, অপারেটিং সিস্টেম, ফাইল সিস্টেম এবং অক্ষর সেট থেকে স্বাধীন। এটি LZ4 অ্যালগরিদম ব্যবহার করে ফাইল কম্প্রেশন এবং স্ট্রিমিং কম্প্রেশনের জন্য উপযুক্ত। 2011 সালে ইয়ান কোলেট দ্বারা LZ4 ফর্ম্যাটের প্রাথমিক বাস্তবায়ন C ভাষায় করা হয়েছিল এবং এটি Github-এ বিকাশকারীর রেফারেন্সের জন্য উপলব্ধ।
LZ4 ফ্রেম ফরম্যাট
LZ4 ফাইল ফরম্যাটের সাধারণ গঠন নিচে দেখানো হয়েছে।
MagicNb | F. বর্ণনাকারী | ব্লক | (…) | এন্ডমার্ক | সি। চেকসাম |
---|---|---|---|---|---|
4 বাইট | 3-15 বাইট | 4 বাইট | 0-4 বাইট |
ম্যাজিক নাম্বার
4 বাইট, লিটল এন্ডিয়ান ফরম্যাট। মান: 0x184D2204
ফ্রেম বর্ণনাকারী
ফ্রেম বর্ণনাকারী 3 t0 15 বাইট নিয়ে গঠিত এবং স্পেসিফিকেশনের সবচেয়ে গুরুত্বপূর্ণ অংশ। একসাথে, Magic_Number এবং Frame_Descriptor ক্ষেত্রগুলিকে LZ4 Frame Header হিসাবে উল্লেখ করা হয় এবং এর আকার 7 থেকে 19 বাইটের মধ্যে পরিবর্তিত হয়। এটি নীচে দেখানো হয়েছে।
FLG | বিডি | (কন্টেন্ট সাইজ) | (অভিধান আইডি) | HC |
---|---|---|---|---|
1 বাইট | 1 বাইট | 0 - 8 বাইট | 0 - 4 বাইট | 1 বাইট |
ডেটা ব্লক
প্রতিটি ডেটা ব্লক নিম্নলিখিত ক্রম অনুসরণ করে।
ব্লক সাইজ | ডেটা | (ব্লক চেকসাম) |
---|---|---|
4 বাইট | 0 - 4 বাইট |
এন্ডমার্ক
ব্লকের প্রবাহ শেষ হয় যখন শেষ ডেটা ব্লক 32-বিট মান 0x00000000 দ্বারা অনুসরণ করা হয়।
কন্টেন্ট চেকসাম
Content_Checksum সঠিকভাবে ডিকোড করা বিষয়বস্তুর বৈধতা যাচাই করে এবং xxHash-32 অ্যালগরিদমের ফলাফল ব্যবহার করে করা হয়। এটি সঠিক ক্রমে এবং কোনও ত্রুটি ছাড়াই সমস্ত ব্লকের সফল সংক্রমণের ফলাফলকে যাচাই করে।