সর্বশেষ আপডেট: ১০ সেপ্টেম্বর, ২০২৬

EPUB, DOCX, XLSX, এবং PPTX-এ কম্প্রেশন কীভাবে কাজ করে
যদি আপনি একটি .docx, .xlsx, .pptx, অথবা .epub ফাইলের নাম পরিবর্তন করে .zip করেন এবং ডাবল-ক্লিক করেন, তবে একটি অপ্রত্যাশিত ঘটনা ঘটে: এটি কোনো ত্রুটি দেখায় না। আপনার অপারেটিং সিস্টেম এটি একটি ফোল্ডার হিসেবে খুলে, যার মধ্যে সাবডিরেক্টরি, XML কনফিগারেশন ফাইল, স্টাইলিং শীট, ফন্ট এবং এমবেডেড ইমেজ থাকে।
আধুনিক ডকুমেন্ট আর্কিটেকচারগুলি দশক আগে একক বাইনারি ব্লব ত্যাগ করেছে। তার পরিবর্তে, শিল্প মানদণ্ড—বিশেষত মাইক্রোসফট অফিসের জন্য Open Packaging Conventions (OPC) এবং EPUB-এর জন্য Open Container Format (OCF)—একটি অবাক করা সুন্দর ভিত্তি গ্রহণ করেছে: সরল ZIP archive।
এই ফরম্যাটগুলোর মধ্যে কম্প্রেশন কীভাবে কাজ করে তা বোঝা প্রকাশ করে কেন আধুনিক ডকুমেন্টগুলি এত টেকসই, হালকা ওজনের এবং সম্প্রসারণযোগ্য—এবং কেন কিছু ফাইল ৯০% পর্যন্ত কম্প্রেস হয়, আর অন্যগুলো প্রায়ই কোনো হ্রাসই দেখায় না।
১. কন্টেইনার আর্কিটেকচার: ছদ্মবেশে থাকা ZIP প্যাকেজগুলি
কম্প্রেশন অ্যালগরিদম নিজেই বোঝার আগে, আধুনিক ডকুমেন্ট ফরম্যাটগুলি কেন প্যাকেজ হিসেবে গঠন করা হয়, স্বতন্ত্র র’ ফাইলের বদলে, তা বোঝা সহায়ক।
লিগেসি বাইনারি ফরম্যাটের সমস্যাটি
১৯৯০-এর দশক এবং ২০০০-এর শুরুর সময়, মাইক্রোসফট অফিস স্বত্বাধিকারী বাইনারি ফরম্যাট (.doc, .xls, .ppt) ব্যবহার করত। এই ফাইলগুলি মূলত কম্পাউন্ড ফাইল বাইনারি ফরম্যাট (CFBF) এর চারপাশে গঠিত মেমরি ডাম্প ছিল। সেগুলি বিশেষভাবে ভঙ্গুর ছিল:
- একটি একক বিট ফ্লিপ পুরো ফাইলের গঠনকে নষ্ট করতে পারে।
- ইমেজ এমবেড করা ফাইলের আকারকে অপ্রত্যাশিতভাবে বাড়িয়ে দিত।
- পার্সিংয়ের জন্য ঘন বাইনারি স্পেসিফিকেশনগুলোকে রিভার্স-ইঞ্জিনিয়ার করতে হতো।
- ক্রস-প্ল্যাটফর্ম ইন্টারঅপারেবিলিটি ছিল এক দুঃস্বপ্ন।
ওপেন, মডুলার কন্টেইনারে রূপান্তর
২০০০-এর দশকের মাঝামাঝি সময়ে, দুটি সমান্তরাল বিবর্তন ঘটেছিল:
- অফিস ওপেন এক্সএমএল (OOXML / ISO/IEC 29500): মাইক্রোসফট XML-ভিত্তিক ফরম্যাটগুলি পরিচয় করিয়ে দেয় যা
xদিয়ে শেষ হয় (DOCX, XLSX, PPTX)। মূলত, এই ফাইলগুলি Open Packaging Conventions (OPC) অনুসরণ করে। - EPUB (IDPF / W3C): ডিজিটাল প্রকাশনা স্বত্বাধিকারী রিডার ফরম্যাট থেকে সরে গিয়ে মানক ওয়েব প্রযুক্তি (HTML, CSS, SVG) ব্যবহার করে EPUB Open Container Format (OCF)-এর মধ্যে প্যাকেজ করা হয়েছে।
উভয় আর্কিটেকচার মানক PKZIP 2.0 / ZIP specification-এর উপর নির্ভরশীল। ফাইল এক্সটেনশনটি কেবল প্রত্যাশিত স্কিমা, ডিফল্ট ভিউয়ার অ্যাপ্লিকেশন এবং mime-type ঘোষণাগুলি নির্ধারণ করে।
Sample DOCX File (Unzipped):
├── [Content_Types].xml <-- Registry of MIME types for parts
├── _rels/ <-- Package-level relationships
│ └── .rels
├── docProps/ <-- Core and extended metadata
│ ├── app.xml
│ └── core.xml
└── word/ <-- Main content payload
├── document.xml <-- Text, paragraphs, and tags
├── styles.xml <-- Typography and presets
├── numbering.xml <-- Lists and counters
├── media/ <-- Embedded images (PNG, JPG)
└── _rels/
└── document.xml.rels <-- Internal hyperlinks & resource pointers
২. হুডের নিচের ইঞ্জিন: ডিফ্লেট অ্যালগরিদম
যখন কোনো সফটওয়্যার অ্যাপ্লিকেশন একটি DOCX বা EPUB ফাইল সংরক্ষণ করে, এটি কেবল ফাইলগুলোকে অসংকুচিত আর্কাইভে রাখে না। এটি অভ্যন্তরীণ সম্পদগুলোকে DEFLATE (RFC 1951-এ নির্ধারিত) ব্যবহার করে সংকুচিত করে।
DEFLATE হল একটি দ্বিস্তরী লসলেস কম্প্রেশন সিস্টেম যা দুটি মৌলিক কম্পিউটার বিজ্ঞান অ্যালগরিদমকে একত্রিত করে:
ধাপ ১: LZ77 (লেম্পেল-জিভ ১৯৭৭) — স্লাইডিং উইন্ডো রিডান্ডেন্সি অপসারণ
XML এবং HTML অত্যন্ত বর্ণনামূলক। একটি মানক document.xml বা chapter1.xhtml ফাইলে ট্যাগগুলি কতবার উপস্থিত হয় তা বিবেচনা করুন:
<w:p><w:r><w:rPr><w:sz w:val="24"/></w:rPr><w:t>শব্দে হাজার হাজারবার পুনরাবৃত্তি হয়।row r="1" spans="1:15"><c r="A1" t="s"><v>এক্সেল-এ দশ হাজারেরও বেশি সেলে পুনরাবৃত্তি হয়।<p class="calibre1"><span class="body-text">ইপাব বইয়ের অধ্যায় জুড়ে পুনরাবৃত্তি হয়।
LZ77 ডেটা স্ট্রিমকে একটি স্লাইডিং ডিকশনারি উইন্ডো (সাধারণত ৩২ কিবি) ব্যবহার করে স্ক্যান করে। যখন এটি সম্প্রতি দেখা একটি অক্ষরের স্ট্রিংয়ের সম্মুখীন হয়, তখন এটি ডুপ্লিকেট টেক্সটকে একটি ক্ষুদ্র ব্যাকওয়ার্ড পয়েন্টার দিয়ে প্রতিস্থাপন করে:
(distance, length)— উদাহরণস্বরূপ, “142 বাইট পিছনে যান, 28 বাইট কপি করুন”।
বারবার বিশদ মার্কআপ সংরক্ষণ করার পরিবর্তে, LZ77 হাজার হাজার পুনরাবৃত্তি XML ট্যাগকে সংক্ষিপ্ত কোঅর্ডিনেট রেফারেন্সে সংকুচিত করে।
ধাপ ২: হাফম্যান কোডিং — ভেরিয়েবল-লেংথ ফ্রিকোয়েন্সি এনকোডিং
LZ77 যখন দৈর্ঘ্য-দূরত্ব টোকেন দিয়ে অপ্রয়োজনীয় সিকোয়েন্স প্রতিস্থাপন করে, হাফম্যান কোডিং স্ট্রিমের প্রতিটি চিহ্নের ফ্রিকোয়েন্সি বিশ্লেষণ করে:
- প্রায়ই উপস্থিত হওয়া চিহ্নগুলি (যেমন সাধারণ অক্ষর
e,t, স্পেস, বা সাধারণ দূরত্ব মার্কার) সংক্ষিপ্ত বাইনারি বিট কোড (উদাহরণস্বরূপ, ২ থেকে ৪ বিট) বরাদ্দ করা হয়। - কম ব্যবহৃত চিহ্নগুলি দীর্ঘতর বাইনারি বিট কোড (উদাহরণস্বরূপ, ১২ থেকে ১৬ বিট) পায়।
ফলাফল হল ভেরিয়েবল-দৈর্ঘ্যের বিট কোডের একটি স্ট্রিম যা প্লেইন-টেক্সট XML-কে 75% থেকে 88% পর্যন্ত সংকুচিত করে।
৩. ফরম্যাট-অনুযায়ী বিশ্লেষণ: প্রতিটি কীভাবে কম্প্রেশন পরিচালনা করে
যদিও DOCX, XLSX, PPTX এবং EPUB একই ZIP এনভেলপ ব্যবহার করে, তাদের অভ্যন্তরীণ ডেটার বৈশিষ্ট্যগুলি ব্যাপকভাবে ভিন্ন।
এ. DOCX: টেক্সট এবং স্টাইলিংয়ের সমন্বয় কাজ
- কি আছে: প্লেইন XML (
word/document.xml), ফন্ট টেবিল, স্টাইল, রিলেশনশিপ ক্যাটালগ, এবং একটিword/media/ফোল্ডার। - কম্প্রেশন কীভাবে কাজ করে:
- কাঁচা টেক্সট এবং XML মার্কআপ বিশাল কম্প্রেশন অনুপাত অর্জন করে (প্রায়ই 5 MB কাঁচা XML থেকে 500 KB-এ নেমে আসে)।
- তবে, আধুনিক ডকুমেন্টগুলো প্রায়ই স্ক্রিনশট, ইলাস্ট্রেশন এবং ফটো এম্বেড করে। যেহেতু JPEG এবং PNG ফাইলগুলি ইতিমধ্যে কম্প্রেসড, DEFLATE সেগুলোকে আরও সংকুচিত করতে পারে না। বাস্তবে, ইতিমধ্যে কম্প্রেসড একটি ছবির উপর DEFLATE চালালে প্রায় 0% সাশ্রয় হয় (এবং কম্প্রেশন হেডারের কারণে আকার সামান্য বাড়তেও পারে)।
- ফলস্বরূপ, ছবি না থাকা DOCX ফাইলগুলো অত্যন্ত ছোট হয়, যেখানে ছবি-সমৃদ্ধ রিপোর্টগুলো তাদের অন্তর্ভুক্ত ছবির ফাইলের প্রায় ঠিক একই আকারের হয়।
B. XLSX: উচ্চ-পরিমাণ সংখ্যাত্মক ডেটা ও শেয়ার্ড স্ট্রিংস
স্প্রেডশিটগুলো একটি অনন্য চ্যালেঞ্জ উপস্থাপন করে: একটি শিটে শত শত হাজার সারি থাকতে পারে, যা বুদ্ধিমত্তার সাথে পরিচালনা না করলে জ্যোতির্বিদ্যামূলক XML ফাইল সাইজের দিকে নিয়ে যায়।
- শেয়ার্ড স্ট্রিংস স্ট্র্যাটেজি (
xl/sharedStrings.xml):- যদি কোনো টেক্সট লেবেল যেমন “United States” অথবা “In Progress” স্প্রেডশিটে ৫০,০০০ বার উপস্থিত হয়, তাহলে
<c t=\"inlineStr\"><is><t>United States</t></is></c>৫০,০০০ সেলে সংরক্ষণ করা হলে অকম্প্রেসড XML গিগাবাইটে ফাঁপা হয়ে যাবে। - এক্সেল কম্প্রেশন করার আগে টেক্সট ডেডুপ্লিকেট করে, প্রতিটি ইউনিক স্ট্রিং একবার শেয়ার্ড স্ট্রিং টেবিলে সংরক্ষণ করে এবং সংখ্যাগত ইনডেক্সের মাধ্যমে রেফারেন্স করে (যেমন,
<v>0</v>,<v>1</v>)।
- যদি কোনো টেক্সট লেবেল যেমন “United States” অথবা “In Progress” স্প্রেডশিটে ৫০,০০০ বার উপস্থিত হয়, তাহলে
- কেন XLSX নাটকীয়ভাবে কমপ্রেস হয়:
- সংখ্যাত্মক রো রেকর্ড (
sheet1.xml) পুনরাবৃত্তি ও পূর্বানুমানযোগ্য সিনট্যাক্স অনুসরণ করে। - DEFLATE ট্যাবুলার XML-এ পুনরাবৃত্তি প্যাটার্ন সহজে সনাক্ত করে। একটি ১২০ এমবি র’
sheet1.xmlফাইলের আকার XLSX আর্কাইভের মধ্যে ৬ এমবির কমে যাওয়া সাধারণ।
- সংখ্যাত্মক রো রেকর্ড (
C. PPTX: মিডিয়া-ভিত্তিক স্লাইড ডেকস
প্রেজেন্টেশনগুলো মৌলিকভাবে ডকুমেন্ট এবং স্প্রেডশিট থেকে ভিন্ন:
- ইমেজ দিলেমা: PPTX ফাইলগুলো সাধারণত ভেক্টর শেপ, ব্যাকগ্রাউন্ড গ্রাফিক্স, ভিডিও ক্লিপ এবং হাই-রেজোলিউশন স্লাইড দ্বারা প্রাধান্য পায়।
- কম্প্রেশন প্রোফাইল: যখন
ppt/slides/slide1.xmlথেকেslideN.xmlদক্ষতার সাথে কম্প্রেস হয়, মিডিয়া পে-লোড (ppt/media/) মোট আর্কাইভের ওজনের ৮৫% থেকে ৯৫% পর্যন্ত গঠন করে। - কেন PPTX পুনরায় জিপ করা কিছুই পরিবর্তন করে না: যদি আপনি ইতিমধ্যে সংরক্ষিত একটি PPTX ফাইলকে 7-Zip বা WinRAR দিয়ে কম্প্রেস করার চেষ্টা করেন, আপনি প্রায় কোনো আকার হ্রাস লক্ষ্য করবেন না। কারণ অভ্যন্তরটি ইতিমধ্যে একটি DEFLATE-কম্প্রেসড ZIP আর্কাইভ যা পূর্বে কম্প্রেসড JPEG এবং MP4 ধারণ করে, এন্ট্রপি ইতিমধ্যে সর্বোচ্চের কাছাকাছি।
D. EPUB: বাধ্যতামূলক অকম্প্রেসড হেডারসহ ওয়েব প্রযুক্তি
একটি EPUB ফাইল মূলত একটি রেসপনসিভ, প্যাকেজড মাইক্রো-ওয়েবসাইট যা XHTML অধ্যায়, CSS স্টাইলশিট, TTF/WOFF ফন্ট এবং মেটাডেটা ধারণ করে। তবে, EPUB-এ একটি কঠোর প্যাকেজিং নিয়ম রয়েছে যা এটি মাইক্রোসফট অফিস ফাইল থেকে আলাদা করে:
EPUB Internal Structure:
├── mimetype <-- MUST be uncompressed (Stored) & at byte offset 38
├── META-INF/
│ └── container.xml <-- Tells reader where the OPF manifest lives
└── OEBPS/ (or EPUB/)
├── content.opf <-- Manifest of all book assets
├── toc.ncx / nav.xhtml <-- Table of contents navigation
├── styles/style.css <-- CSS formatting
├── images/ <-- Book cover & illustrations
└── text/ <-- chapter1.xhtml, chapter2.xhtml
- ম্যাজিক
mimetypeফাইল:- ই-রিডারগুলি সম্পূর্ণ আর্কাইভ বের না করে বা ডিকম্প্রেশন পাইপলাইন চালু না করে সঙ্গে সঙ্গে একটি EPUB সনাক্ত করতে হবে।
- ওপেন কন্টেইনার ফরম্যাট (OCF) নির্ধারণ করে যে
mimetypeফাইলটি:- ZIP আর্কাইভের প্রথম ফাইলটি হতে হবে।
- সঠিকভাবে স্ট্রিং
application/epub+zipধারণ করতে হবে। - কমপ্রেস করা যাবে না (ZIP কমপ্রেশন পদ্ধতি
0/ “Stored”). - অতিরিক্ত ফিল্ড ডেটা না থাকা উচিত, যাতে MIME স্ট্রিং সর্বদা শারীরিক ফাইলের বাইট ৩৮ থেকে শুরু হয়।
- টেক্সট কমপ্রেশন: বাকি সব ফাইল (
.xhtml,.css,.opf) স্ট্যান্ডার্ড DEFLATE (ZIP মেথড8) ব্যবহার করে কমপ্রেস করা হয়, যা পূর্ণ দৈর্ঘ্যের উপন্যাসকে কয়েক শত কিলোবাইটে সংকুচিত করতে দেয়।
৪. ফরম্যাটগুলোর মধ্যে কম্প্রেশন তুলনা
| ফরম্যাট | কোর পেলোড | প্রাথমিক রিডান্ডেন্সি উৎস | সাধারণ কমপ্রেশন অনুপাত (টেক্সট/মার্কআপ) | মিডিয়া পরিচালনা |
|---|---|---|---|---|
| DOCX | WordprocessingML (document.xml) | পুনরাবৃত্ত XML প্যারাগ্রাফ/রান ট্যাগ | 75% – 85% | সংরক্ষিত word/media/ (প্রধানত পূর্ব-সংকুচিত) |
| XLSX | SpreadsheetML (sheet*.xml) | পুনরাবৃত্ত সেল/রো ট্যাগ; শেয়ার্ড স্ট্রিংস | 80% – 92% | অল্প; xl/media/-এ ছবি/চার্ট |
| PPTX | PresentationML (slide*.xml) | স্লাইড লেআউট মেটাডেটা, শেপের কোঅর্ডিনেটস | 70% – 80% | বড় ppt/media/ পে-লোড সামগ্রিক সঞ্চয় সীমিত করে |
| EPUB | XHTML, CSS, OPF, NCX | HTML ট্যাগ, পুনরাবৃত্তি CSS সিলেক্টর | 65% – 80% | mimetype অকমপ্রেসড; মিডিয়া সাবফোল্ডারে |
৫. ব্যবহারিক টেকঅ্যাওয়ে: কীভাবে আপনার ডকুমেন্টগুলো অপ্টিমাইজ করবেন
যেহেতু আপনি এখন জানেন অভ্যন্তরীণ প্যাকেজিং কীভাবে কাজ করে, আপনি কম্প্রেশন মেকানিক্স ব্যবহার করে বাস্তব জগতের সমস্যাগুলি সমাধান করতে পারেন:
- দূষিত ডকুমেন্ট মেরামত:
যদি কোনো ডকুমেন্ট খুলতে অস্বীকার করে, এক্সটেনশনকে
.zipএ পরিবর্তন করলে আপনি বিষয়বস্তু বের করতে এবংdocument.xmlথেকে কাঁচা টেক্সট অথবা EPUB-এরtext/ডিরেক্টরির পৃথক অধ্যায়গুলি পুনরুদ্ধার করতে পারেন। - বৃহৎ অফিস ফাইল সংকোচন:
যেহেতু XML কম্প্রেশন ইতিমধ্যে অপ্টিমাইজড, বিশাল ফাইলগুলো প্রায়ই
media/-এর অপ্টিমাইজড নয় এমন ছবিগুলোর কারণে হয়। তৃতীয় পক্ষের PDF বা DOCX কম্প্রেসর ব্যবহার করার বদলে, ZIP কন্টেইনারটি খুলুন, ছবিগুলো বের করুন, সেগুলোকে একটি ইমেজ অপ্টিমাইজার (যেমন WebP, TinyPNG, অথবা MozJPEG) দিয়ে অপ্টিমাইজ করুন, এবং আর্কাইভের ভিতরে প্রতিস্থাপন করুন। - ডকুমেন্ট জেনারেশন স্বয়ংক্রিয়করণ: ডেভেলপারদের রিপোর্ট তৈরি করার জন্য ভারী অফিস স্যুটের প্রয়োজন নেই। আপনি কাঁচা XML টেমপ্লেট তৈরি করতে পারেন, সেগুলোকে স্ট্যান্ডার্ড zlib/ZIP লাইব্রেরি ব্যবহার করে বান্ডল করতে পারেন, এবং মিলিসেকেন্ডের মধ্যে প্রোগ্রাম্যাটিকভাবে বৈধ DOCX বা XLSX ফাইল আউটপুট করতে পারেন।
৬. প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী (FAQ)
আমি কি শুধুমাত্র ফাইল এক্সটেনশন পরিবর্তন করে একটি DOCX বা EPUB কে ZIP ফাইলে রূপান্তর করতে পারি? হ্যাঁ; এক্সটেনশনটি .zip-এ পরিবর্তন করলে যেকোনো স্ট্যান্ডার্ড আর্কাইভ টুল (যেমন 7-Zip, macOS Archive Utility, অথবা Windows Explorer) সরাসরি অভ্যন্তরীণ ফাইলগুলো খুলে এবং পরীক্ষা করতে পারে।
কেন 7-Zip দিয়ে DOCX বা PPTX কম্প্রেস করলে তা উল্লেখযোগ্যভাবে ছোট হয় না? কারণ ফাইলটি ইতিমধ্যে একটি অভ্যন্তরীণভাবে কম্প্রেসড ZIP আর্কাইভ, যার মধ্যে DEFLATE-এনকোডেড XML এবং পূর্বে কম্প্রেসড ছবি রয়েছে, ফলে বাহ্যিক টুলের জন্য সরিয়ে নেওয়ার মতো খুব কম পুনরাবৃত্তি থাকে।
EPUB স্পেসিফিকেশন কেন mimetype ফাইলটি অকম্প্রেসড রাখতে চায়? এটি ই-রিডার সফটওয়্যারকে ফাইলটি একটি প্রামাণিক EPUB কিনা তা যাচাই করতে সাহায্য করে, নির্দিষ্ট বাইট অফসেটে MIME স্ট্রিং চেক করে, ডিকম্প্রেশন ইঞ্জিন আরম্ভ করতে না হয়েই।
Excel-এ সেল ফরম্যাটিং পরিবর্তন করলে কম্প্রেসড XLSX ফাইলের আকার বাড়ে কি? হ্যাঁ; ব্যাপক কাস্টম ফরম্যাটিং সেলগুলোর মধ্যে সমজাতীয় প্যাটার্ন পুনরাবৃত্তি ভেঙে দেয়, ফলে দীর্ঘতর XML সংজ্ঞা তৈরি হয় যা DEFLATE-এর কম্প্রেশন দক্ষতা কমিয়ে দেয়।
Word বা PowerPoint ফাইল থেকে উচ্চ রেজোলিউশনের মূল ছবি গুণগত ক্ষতি ছাড়াই বের করা সম্ভব কি? হ্যাঁ; ফাইলের নাম .zip করে পরিবর্তন করুন, word/media অথবা ppt/media ফোল্ডারটি খুলুন, এবং আপনি মূল, অকম্প্রেসড সোর্স ছবি গুলো ঠিক যেমনটি সন্নিবেশিত ছিল তেমনই পাবেন।