RAR (রোশাল আর্কাইভ) ফরম্যাট হল ইউজিন রোশাল কর্তৃক উদ্ভাবিত একটি মালিকানাধীন আর্কাইভ ফাইল ফরম্যাট। এটি প্রথম ১৯৯৩ সালে প্রকাশিত হয়েছিল এবং তখন থেকেই এর দক্ষ কম্প্রেশন, একাধি ক ভলিউমের জন্য সাপোর্ট, ত্রুটি পুনরুদ্ধার এবং শক্তিশালী এনক্রিপশনের কারণে ডেটা কম্প্রেশন এবং আর্কাইভিংয়ের জন্য একটি জনপ্রিয় পছন্দ হয়ে উঠেছে। ডেটা অখণ্ডতা রক্ষা করার পাশাপাশি উচ্চ কম্প্রেশন অনুপাত অর্জনের জন্য এই ফরম্যাটটি LZSS, PPM এবং হাফম্যান এনকোডিং সহ লসলেস কম্প্রেশন অ্যালগরিদমের একটি সমন্বয় ব্যবহার করে।
একটি RAR আর্কাইভে "ব্লক" এর একটি সিরিজ থাকে যাতে কম্প্রেসড ফাইল, ডিরেক্টরি এবং মেটাডেটা থাকে। আর্কাইভটি একটি মার্কার ব্লক দিয়ে শুরু হয়, যা ফাইলটিকে একটি RAR আর্কাইভ হিসাবে চিহ্নিত করে এবং আর্কাইভ সংস্করণটি নির্দিষ্ট করে। মার্কার ব্লকের পরে, আর্কাইভটিতে একটি মূল হেডার ব্লক থাকে যা আর্কাইভ সম্পর্কে সাধারণ তথ্য সরবরাহ করে, যেমন মোট আকার, ভলিউমের সংখ্যা এবং ব্যবহৃত এনক্রিপশন পদ্ধতি (যদি থাকে)।
আর্কাইভের মধ্যে প্রতিটি কম্প্রেসড ফাইল একটি ফাইল হেডার ব্লক হিসাবে সংরক্ষণ করা হয় যার পরে একটি বা একাধিক কম্প্রেসড ডেটা ব্লক থাকে। ফাইল হেডার ব্লকে ফাইল সম্পর্কে মেটাডেটা থাকে, যেমন এর নাম, আকার, টাইমস্ট্যাম্প, অ্যাট্রিবিউট এবং CRC32 চেকসাম। কম্প্রেসড ডেটা ব্লকগুলিতে প্রকৃত কম্প্রেসড ফাইল ডেটা থাকে, যা প্রয়োজনে একাধিক ব্লকে বিভক্ত করা যেতে পারে।
RAR একটি সলিড আর্কাইভিং পদ্ধতি ব্যবহার করে, যার অর্থ ফাইলগুলিকে পৃথকভাবে কম্প্রেস করার পরিবর্তে একটি একক ক্রমাগত ডেটা স্ট্রিম হিসাবে একসাথে কম্প্রেস করা হয়। এই পদ্ধতিটি উচ্চতর কম্প্রেশন অনুপাতের দিকে নিয়ে যেতে পারে, বিশেষ করে একই রকম ফাইলের সংগ্রহের জন্য, কারণ কম্প্রেসর ফাইলগুলির মধ্যে অপ্রয়োজনীয়তার সুযোগ নিতে পারে। তবে, সলিড আর্কাইভগুলি ডেটা দূষণের জন্য কম স্থিতিস্থাপক হতে পারে, কারণ একটি একক ত্রুটি একাধিক ফাইলকে প্রভাবিত করতে পারে।
ডেটা অখণ্ডতা নিশ্চিত করার জন্য, RAR একট ি পুনরুদ্ধার রেকর্ড সিস্টেম ব্যবহার করে। পুনরুদ্ধার রেকর্ডগুলি বিশেষ ব্লক যা আর্কাইভ কাঠামো এবং ফাইল মেটাডেটা সম্পর্কে অপ্রয়োজনীয় তথ্য ধারণ করে। ডেটা দূষণের ঘটনায়, এই রেকর্ডগুলি আর্কাইভের ক্ষতিগ্রস্ত অংশগুলি পুনর্গঠন করতে ব্যবহার করা যেতে পারে। আর্কাইভ তৈরি করার সময় ব্যবহারকারী পুনরুদ্ধার রেকর্ডের সংখ্যা এবং আকার কনফিগার করতে পারেন।
RAR মাল্টি-ভলিউম আর্কাইভকে সমর্থন করে, যা বড় আর্কাইভগুলিকে ছোট, আরও পরিচালনাযোগ্য অংশে বিভক্ত করার অনুমতি দেয়। একটি মাল্টি-ভলিউম আর্কাইভের প্রতিটি ভলিউম একটি পৃথক RAR ফাইল যার নিজস্ব মার্কার ব্লক এবং হেডার রয়েছে, তবে সেটের মধ্যে এর অবস্থান নির্দেশ করে অতিরিক্ত তথ্য রয়েছে। সীমিত ক্ষমতা যেমন সিডি বা ডিভিডি সহ স্টোরেজ মিডিয়াতে বড় ডেটাসেট সঞ্চয় বা স্থানান্তর করার জন্য মাল্টি-ভলিউম আর্কাইভগুলি দরকারী হতে পারে।
RAR ফরম্যাট সংবেদনশীল ডেটা রক্ষা করার জন্য শক্তিশালী এনক্রিপশন ক্ষমতা অফার করে। আর্কাইভগুলি 128-বিট বা 256-বিট কী সহ AES (অ্যাডভান্সড এনক্রিপশন স্ট্যান্ডার্ড) অ্যালগরিদম ব্যবহার করে এনক্রিপ্ট করা যেতে পারে। যখন একটি আর্কাইভ এনক্রিপ্ট করা হয়, তখন সমস্ত ফাইল ডেটা এবং মেটাডেটা সুরক্ষিত থাকে এবং সামগ্রীগুলি বের করার জন্য একটি পাসওয়ার্ড প্রয়োজন হয়। RAR আরও একটি নতুন, মালিকানাধীন এনক্রিপশন অ্যালগরিদমকে সমর্থন করে যা RAR5 নামে পরিচিত, যা পুরানো AES পদ্ধতির চেয়ে আরও নিরাপদ হিসাবে ডিজাইন করা হয়েছে।
RAR ফরম্যাটের অন্যতম স্বতন্ত্র বৈশিষ্ট্য হল স্প্লিট ফাইল কম্প্রেশনের জন্য এর সমর্থন। এই বৈশিষ্ট্যটি কম্প্রেশনের আগে বড় ফাইলগুলিকে ছোট অংশে ভাঙার অনুমতি দেয়, যা পরে ডিকম্প্রেসর দ্বারা স্বচ্ছভাবে বের করা এবং পুনরায় একত্রিত করা যেতে পারে। সীমিত-ব্যান্ডউইথ বা অন্তর্বর্তীভাবে সংযুক্ত নেটওয়ার্কের উপর বড় ফাইলগুলির স্টোরেজ বা ট্রান্সমিশন অপ্টিমাইজ করার জন্য স্প্লিট ফাইল কম্প্রেশন দরকারী হতে পারে।
এর কম্প্রেশন এবং আর্কাইভিং ক্ষমতার পাশাপাশি, RAR বেশ কয়েকটি উন্নত বৈশিষ্ট্যকেও সমর্থন করে, যেমন আর্কাইভ মন্তব্য, পাসওয়ার্ড-সুরক্ষিত ফাইল তালিকা এবং ডিজিটাল স্বাক্ষর ব্যবহার করে সত্যতা যাচাই। আর্কাইভ মন্তব্যগুলি ব্যবহারকারীদের একটি আর্কাইভে বর্ণনামূলক পাঠ্য সংযুক্ত করতে দেয়, যা সামগ্রীগুলি বের করার জন্য অতিরিক্ত প্রসঙ্গ বা নির্দেশাবলী সরবরাহ করতে ব্যবহার করা যেতে পারে। পাসওয়ার্ড-সুরক্ষিত ফাইল তালিকা সঠিক পাসওয়ার্ড সরবরাহ না করা পর্যন্ত এনক্র
ফাইল কম্প্রেশন অপ্রয়োজনীয় ডেটা কমিয়ে দেয় যাতে একই তথ্য কম বিট ব্যবহার করে। আপনি কতদূর যেতে পারবেন তার উপরের সীমা তথ্য তত্ত্ব দ্বারা নিয়ন্ত্রিত হয়: ক্ষতিহীন কম্প্রেশনে র জন্য, সীমা হলো উৎসের এনট্রপি (শ্যানন-এর সোর্স কোডিং থিওরেম এবং তার আসল ১৯৪৮ সালের পেপার “যোগাযোগের একটি গাণিতিক তত্ত্ব”দেখুন)। ক্ষতিযুক্ত কম্প্রেশনের জন্য, হার এবং মানের মধ্যে ট্রেড-অফ রেট-ডিসটরশন তত্ত্ব দ্বারা ক্যাপচার করা হয়।
বেশিরভাগ কম্প্রেসারের দুটি পর্যায় থাকে। প্রথমত, একটি মডেল ডেটাতে কাঠামো ভবিষ্যদ্বাণী করে বা প্রকাশ করে। দ্বিতীয়ত, একটি কোডার সেই ভবিষ্যদ্বাণীগুলিকে প্রায়-সর্বোত্তম বিট প্যাটার্নে পরিণত করে। একটি ক্লাসিক মডেলিং পরিবার হলো লেম্পেল-জিভ: LZ77 (১৯৭৭) এবং LZ78 (১৯৭৮) পুনরাবৃত্ত সাবস্ট্রিং শনাক্ত করে এবং ক াঁচা বাইটের পরিবর্তে রেফারেন্স নির্গত করে। কোডিং দিকে, হাফম্যান কোডিং (আসল পেপারটি দেখুন ১৯৫২) বেশি সম্ভাব্য প্রতীকগুলির জন্য ছোট কোড বরাদ্দ করে। অ্যারিথমেটিক কোডিং এবং রেঞ্জ কোডিং হলো সূক্ষ্ম-দানাদার বিকল্প যা এনট্রপি সীমার কাছাকাছি চেপে ধরে, যেখানে আধুনিক অ্যাসিমেট্রিক নিউমেরাল সিস্টেম (ANS) দ্রুত টেবিল-চালিত বাস্তবায়নের মাধ্যমে অনুরূপ কম্প্রেশন অর্জন করে।
DEFLATE (gzip, zlib, এবং ZIP দ্বারা ব্যবহৃত) LZ77-কে হাফম্যান কোডিংয়ের সাথে একত্রিত করে। এর স্পেসিফিকেশনগুলি সর্বজনীন: DEFLATE RFC 1951, zlib র্যাপার RFC 1950, এবং gzip ফাইল ফরম্যাট RFC 1952. Gzip স্ট্রিমিংয়ের জন্য ফ্রেম করা হয়েছে এবং স্পষ্টভাবে র্যান্ডম অ্যাক্সেসের চেষ্টা করে না. PNG ছবিগুলি DEFLATE-কে তাদের একমাত্র কম্প্রেশন পদ্ধতি হিসাবে মানসম্মত করে (সর্বোচ্চ ৩২ KiB উইন্ডো সহ), PNG স্পেসিফিকেশন অনুযায়ী “কম্প্রেশন পদ্ধতি ০… ডিলেট/ইনফ্লেট… সর্বাধিক ৩২,৭৬৮ বাইট” এবং W3C/ISO PNG ২য় সংস্করণ.
Zstandard (zstd): একটি নতুন সাধারণ-উদ্দেশ্য কম্প্রেসার যা খুব দ্রুত ডিকম্প্রেশনের সাথে উচ্চ অনুপাতের জন্য ডিজাইন করা হয়েছে। ফরম্যাটটি RFC 8878 (এছাড ়াও HTML মিরর) এবং রেফারেন্স স্পেসিফিকেশন GitHub-এ-এ নথিভুক্ত করা হয়েছে। Gzip-এর মতো, বেসিক ফ্রেম র্যান্ডম অ্যাক্সেসের লক্ষ্য রাখে না. zstd-এর অন্যতম সুপার পাওয়ার হলো অভিধান: আপনার কর্পাস থেকে ছোট নমুনা যা অনেক ছোট বা অনুরূপ ফাইলের উপর কম্প্রেশনকে নাটকীয়ভাবে উন্নত করে (দেখুন python-zstandard অভিধান ডক্স এবং নাইজেল টাও-এর কাজ করা উদাহরণ)। বাস্তবায়নগুলি “অসংগঠিত” এবং “সংগঠিত” উভয় অভিধানই গ্রহণ করে (আলোচনা).
Brotli: ওয়েব সামগ্রীর জন্য অপ্টিমাইজ করা (যেমন, WOFF2 ফন্ট, HTTP)। এটি একটি স্ট্যাটিক অভিধানের সা থে একটি DEFLATE-এর মতো LZ+এনট্রপি কোর মিশ্রিত করে। স্পেসিফিকেশনটি হলো RFC 7932, যা ২WBITS−১৬-এর একটি স্লাইডিং উইন্ডো নোট করে যেখানে WBITS [১০, ২৪]-এর মধ্যে (১ KiB−১৬ B থেকে ১৬ MiB−১৬ B পর্যন্ত) এবং এটি র্যান্ডম অ্যাক্সেসের চেষ্টা করে না. Brotli প্রায়শই ওয়েব টেক্সটে gzip-কে পরাজিত করে এবং দ্রুত ডিকোড করে।
ZIP কন্টেইনার: ZIP একটি ফাইল আর্কাইভ যা বিভিন্ন কম্প্রেশন পদ্ধতি (deflate, store, zstd, ইত্যাদি) সহ এন্ট্রি সংরক্ষণ করতে পারে। ডি ফ্যাক্টো স্ট্যান্ডার্ড হলো PKWARE-এর APPNOTE (দেখুন APPNOTE পোর্টাল, একটি হোস্ট করা কপি, এবং LC ওভারভিউ ZIP ফাইল ফরম্যাট (PKWARE) / ZIP 6.3.3)।
LZ4 কাঁচা গতির লক্ষ্য রাখে পরিমিত অনুপাতের সাথে। এর প্রকল্প পৃষ্ঠা (“অত্যন্ত দ্রুত কম্প্রেশন”) এবং ফ্রেম ফরম্যাটদেখুন। এটি ইন-মেমরি ক্যাশে, টেলিমেট্রি, বা হট পাথের জন্য আদর্শ যেখানে ডিকম্প্রেশন প্রায় RAM গতির হতে হবে।
XZ / LZMA ঘনত্বের জন্য চাপ দেয় (দুর্দান্ত অনুপাত) তুলনামূলকভাবে ধীর কম্প্রেশনের সাথে। XZ একটি কন্টেইনার; ভারী উত্তোলন সাধারণত LZMA/LZMA2 (LZ77-এর মতো মডেলিং + রেঞ্জ কোডিং) দ্বারা করা হয়। দেখুন .xz ফাইল ফরম্যাট, LZMA স্পেক (Pavlov), এবং লিনাক্স কার্নেল নোট XZ এমবেডেড-এ. XZ সাধারণত gzip-কে ছাড়িয়ে যায় এবং প্রায়শই উচ্চ-অনুপাতের আধুনিক কোডেকগুলির সাথে প্রতিযোগিতা করে, তবে ধীর এনকোড সময়ের সাথে।
bzip2 Burrows–Wheeler Transform (BWT), মুভ-টু-ফ্রন্ট, RLE, এবং হাফম্যান কোডিং প্রয়োগ করে। এটি সাধারণত gzip-এর চেয়ে ছোট কিন্তু ধীর; দেখুন অফিসিয়াল ম্যানুয়াল এবং ম্যান পেজ (লিনাক্স).
“উইন্ডো সাইজ” গুরুত্বপূর্ণ। DEFLATE রেফারেন্সগুলি কেবল ৩২ KiB পিছনে তাকাতে পারে (RFC 1951 এবং PNG-এর ৩২ KiB ক্যাপ এখানে উল্লেখ করা হয়েছে)। Brotli-এর উইন্ডো প্রায় ১ KiB থেকে ১৬ MiB পর্যন্ত বিস্তৃত (RFC 7932). Zstd স্তর দ্বারা উইন্ডো এবং অনু সন্ধানের গভীরতা টিউন করে (RFC 8878). বেসিক gzip/zstd/brotli স্ট্রিমগুলি অনুক্রমিক ডিকোডিংয়ের জন্য ডিজাইন করা হয়েছে; বেস ফরম্যাটগুলি র্যান্ডম অ্যাক্সেসের প্রতিশ্রুতি দেয় না, যদিও কন্টেইনারগুলি (যেমন, tar ইনডেক্স, চাঙ্কড ফ্রেমিং, বা ফরম্যাট-নির্দিষ্ট ইনডেক্স) এটি স্তর করতে পারে।
উপরের ফরম্যাটগুলি ক্ষতিহীন: আপনি সঠিক বাইটগুলি পুনর্গঠন করতে পারেন। মিডিয়া কোডেকগুলি প্রায়শই ক্ষতিযুক্ত: তারা কম বিটরেট হিট করার জন্য অদৃশ্য বিবরণ বাতিল করে। ছবিতে, ক্লাসিক JPEG (DCT, কোয়ান্টাইজেশন, এনট্রপি কোডিং) ITU-T T.81 / ISO/IEC 10918-1-এ মানসম্মত। অডিওতে, MP3 (MPEG-1 লেয়ার III) এবং AAC (MPEG-2/4) পারসেপচুয়াল মডেল এবং MDCT ট্রান্সফর্মের উপর নির্ভর করে (দেখুন ISO/IEC 11172-3, ISO/IEC 13818-7, এবং একটি MDCT ওভারভিউ এখানে)। ক্ষতিযুক্ত এবং ক্ষতিহীন সহাবস্থান করতে পারে (যেমন, UI সম্পদের জন্য PNG; ছবি/ভিডিও/অডিওর জন্য ওয়েব কোডেক)।