Utoljára frissítve: 2026. szeptember 10.

How Compression Works Inside EPUB, DOCX, XLSX, & PPTX: The Hidden ZIP Architecture

Hogyan működik a tömörítés az EPUB, DOCX, XLSX és PPTX fájlokban

Ha átnevezel egy .docx, .xlsx, .pptx vagy .epub fájlt .zip-re, és duplán kattintasz rá, valami meglepő történik: nem dob hibát. Az operációs rendszer mappaként nyitja meg, amely alkönyvtárakkal, XML konfigurációs fájlokkal, stíluslapokkal, betűtípusokkal és beágyazott képekkel van tele.

A modern dokumentumarchitektúrák évtizedekkel ezelőtt felhagytak a monolitikus bináris blobokkal. Helyettük ipari szabványok—nevezetesen a Microsoft Office számára a Open Packaging Conventions (OPC) és az EPUB-hez a Open Container Format (OCF)—alkottak egy meglepően elegáns alapot: az egyszerű ZIP archívum.

Megérteni, hogyan működik a tömörítés ezekben a formátumokban, feltárja, miért olyan ellenállóak, könnyűek és bővíthetőek a modern dokumentumok – és miért sűrűsödnek egyes fájlok akár 90%-kal, míg mások alig zsugorodnak.

1. A Konténer Architektúra: Álcázott ZIP Csomagok

Mielőtt megértenénk magát a tömörítési algoritmust, hasznos megérteni, miért vannak a modern dokumentumformátumok csomagokként felépítve, nem pedig önálló nyers fájlként.

A Probléma a Régi Bináris Formátumokkal

Az 1990-es évek és a 2000-es évek elején a Microsoft Office saját tulajdonú bináris formátumokat használt (.doc, .xls, .ppt). Ezek a fájlok lényegében memória-dumpok voltak, amelyek a Compound File Binary Format (CFBF) köré szerveződtek. Hírhedten törékenyek voltak:

  • Egyetlen bitváltás is tönkreteheti az egész fájlszerkezetet.
  • Képek beágyazása kiszámíthatatlanul felrobbantotta a fájlméreteket.
  • A feldolgozáshoz sűrű bináris specifikációk visszafejtése volt szükséges.
  • A többplatformos interoperabilitás rémálom volt.

Az Áttérés a Nyílt, Moduláris Konténerekre

A 2000-es évek közepén két párhuzamos evolúció zajlott le:

  1. Office Open XML (OOXML / ISO/IEC 29500): Microsoft bevezette az x-re végződő XML-alapú formátumokat (DOCX, XLSX, PPTX). A háttérben ezek a fájlok követik a Open Packaging Conventions (OPC).
  2. EPUB (IDPF / W3C): A digitális kiadók elmozdultak a proprietáris olvasóformátumoktól a szabványos webes technológiák (HTML, CSS, SVG) felé, amelyek az EPUB Open Container Format (OCF)-ben vannak csomagolva.

Mindkét architektúra a szabványos PKZIP 2.0 / ZIP specifikációra támaszkodik. A fájlkiterjesztés egyszerűen meghatározza a várt sémát, az alapértelmezett megjelenítő alkalmazást és a mime-típus deklarációkat.

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

2. A Motor a Motorháztető alatt: A DEFLATE Algoritmus

Amikor egy szoftveralkalmazás DOCX vagy EPUB fájlt ment, nem csak fájlokat helyez el egy tömörítetlen archívumban. A belső eszközöket DEFLATE-tel tömöríti (az RFC 1951-ben meghatározott módon).

A DEFLATE egy kétszintű veszteségmentes tömörítési rendszer, amely két alapvető informatikai algoritmust kombinál:

1. lépés: LZ77 (Lempel-Ziv 1977) — Csúszó Ablak Redundancia Eltávolítás

Az XML és a HTML rendkívül szótagos. Tekintsd meg, milyen gyakran jelennek meg címkék egy szabványos document.xml vagy chapter1.xhtml fájlban:

  • <w:p><w:r><w:rPr><w:sz w:val="24"/></w:rPr><w:t> ez ezerszer ismétlődik a Wordben.
  • row r="1" spans="1:15"><c r="A1" t="s"><v> ismétlődik az Excelben tízezrek cellájában.
  • <p class="calibre1"><span class="body-text"> ismétlődik az EPUB könyvfejezetekben.

Az LZ77 egy csúszó szótárablakot (általában 32 KB) használva vizsgálja a adatfolyamot. Amikor egy nemrég látott karakterláncot talál, a duplikált szöveget egy apró visszamutató mutatóval helyettesíti:

  • (distance, length) — például: “menj vissza 142 bájttal, másolj 28 bájtot”.

Ahelyett, hogy ismételten tárolná a terjengős jelölőnyelvet, az LZ77 ezrek ismétlődő XML címkéjét tömör koordináta-referenciákká sűríti.

2. lépés: Huffman-kódolás — Változó Hosszúságú Frekvencia Kódolás

Miután az LZ77 a redundáns sorozatokat hossz‑távolság tokenekkel helyettesíti, a Huffman-kódolás elemzi a folyam minden szimbólumának gyakoriságát:

  • Gyakran előforduló szimbólumok (például gyakori karakterek e, t, szóközök vagy gyakori távolságjelzők) rövid bináris bitkódot kapnak (például 2‑4 bit).
  • Ritkán használt szimbólumok hosszabb bináris bitkódot kapnak (például 12‑16 bit).

Az eredmény egy változó hosszúságú bitkódok áramlata, amely a sima szöveges XML-t 75%‑tól 88%‑ig tömöríti.

3. Formátumról-Formátumra Felbontás: Hogyan Kezeli Az Egyes a Tömörítést

Miközben a DOCX, XLSX, PPTX és EPUB is ugyanazt a ZIP burkot használja, belső adatjellemzőik drámaian eltérnek.

A. DOCX: A Szöveg és Stílus Egyensúlyozó Művelete

  • Mi van benne: Egyszerű XML (word/document.xml), betűtáblák, stílusok, kapcsolati katalógusok és egy word/media/ mappa.
  • Hogyan működik a tömörítés:
    • A nyers szöveg és az XML jelölés hatalmas tömörítési arányokat ér el (gyakran 5 MB nyers XML‑ről 500 KB‑ra csökken).
    • Azonban a modern dokumentumok gyakran beágyaznak képernyőképeket, illusztrációkat és fényképeket. Mivel a JPEG és PNG fájlok már tömörítettek, a DEFLATE nem tudja tovább csökkenteni őket. Valójában egy már tömörített képen a DEFLATE futtatása gyakorlatilag 0 % megtakarítást eredményez (sőt, a tömörítési fejlécek miatt akár enyhén is növelheti a méretet).
    • Ennek következtében a képek nélküli DOCX fájlok rendkívül kicsik, míg a képekben gazdag jelentések szinte pontosan a tartalmazott képfájlok méretét tükrözik.

B. XLSX: Nagy mennyiségű numerikus adat és megosztott karakterláncok

A táblázatok egyedi kihívást jelentenek: egy munkalap akár több százezer sort is tartalmazhat, ami okos kezelés hiányában csillagászati méretű XML‑fájlokhoz vezet.

  • A megosztott karakterláncok stratégiája (xl/sharedStrings.xml):
    • Ha egy szövegcímke, például “United States” vagy “In Progress”, 50,000 alkalommal jelenik meg egy táblázatban, akkor a <c t=\"inlineStr\"><is><t>United States</t></is></c> tárolása 50,000 cellában a tömörítetlen XML-t gigabájtra növelné.
    • Az Excel a tömörítés előtt deduplikálja a szöveget, úgy, hogy minden egyedi karakterláncot egyszer tárol egy megosztott karakterlánc táblában, és numerikus indexszel hivatkozik rá (például <v>0</v>, <v>1</v>).
  • Miért zsugorodik drámaian az XLSX:
    • A numerikus sorrekordok (sheet1.xml) ismétlődő, előre látható szintaxist követnek.
    • A DEFLATE könnyen felismeri a táblázatos XML-ben az ismétlődő mintákat. Gyakori, hogy egy 120 MB nyers sheet1.xml fájl kevesebb, mint 6 MB-ra zsugorodik egy XLSX archívumban.

C. PPTX: Médiával teli diavetítések

A prezentációk alapvetően különböznek a dokumentumoktól és a táblázatoktól:

  • A képek dilemmája: A PPTX fájlok általában vektoros alakzatok, háttérgrafikák, videoklipek és nagy felbontású diák uralják.
  • Compression Profile: Miközben a ppt/slides/slide1.xml-től a slideN.xml-ig terjedő fájlok hatékonyan tömörülnek, a média terhelés (ppt/media/) a teljes archívum súlyának 85%‑tól 95%‑ig teszi ki.
  • Why Re-Zipping a PPTX Changes Nothing: Ha megpróbálsz egy már mentett PPTX fájlt 7-Zip‑pel vagy WinRAR‑ral tömöríteni, szinte semmilyen méretcsökkenést nem fogsz észrevenni. Mivel a belső rész már egy DEFLATE‑tömörített ZIP archívum, amely előre tömörített JPEG‑eket és MP4‑ket tartalmaz, az entrópia már közel a maximumhoz.

D. EPUB: Webes technológiák kötelező tömörítetlen fejléccel

Az EPUB fájl lényegében egy reszponzív, csomagolt mikro-weboldal, amely XHTML fejezeteket, CSS stíluslapokat, TTF/WOFF betűtípusokat és metaadatokat tartalmaz. Azonban az EPUB egy szigorú csomagolási szabályt követ, amely megkülönbözteti a Microsoft Office fájloktól:

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
  • A varázslatos mimetype fájl:
    • Az e-olvasóknak azonnal fel kell ismerniük egy EPUB-ot anélkül, hogy kicsomagolnák a teljes archívumot vagy futtatnák a dekódolási folyamatokat.
    • Az Open Container Format (OCF) előírja, hogy a mimetype fájl:
      1. Az ZIP archívum legelső fájlja kell legyen.
      2. Pontosan a application/epub+zip karakterláncot kell tartalmazza.
      3. Nem szabad tömöríteni (ZIP tömörítési módszer 0 / “Tárolt”).
      4. Nem lehetnek extra mezőadatok, biztosítva, hogy a MIME karakterlánc mindig a fizikai fájl 38. bájtjánál kezdődjön.
  • Szöveg tömörítés: Az összes többi fájl (.xhtml, .css, .opf) a szabványos DEFLATE (ZIP módszer 8) segítségével van tömörítve, lehetővé téve, hogy a teljes hosszúságú regények néhány száz kilobájt méretre zsugorodjanak.

4. A tömörítés összehasonlítása formátumok között

FormátumAlap hasznos adatElsődleges redundancia forrásTipikus tömörítési arány (szöveg/jelölőnyelv)Média kezelése
DOCXWordprocessingML (document.xml)Ismétlődő XML bekezdés/futtatás címkék75% – 85%Tárolva a word/media/ (többnyire előre tömörített)
XLSXSpreadsheetML (sheet*.xml)Ismétlődő cella/sor címkék; Megosztott karakterláncok80% – 92%Ritka; képek/grafikonok a xl/media/-ben
PPTXPresentationML (slide*.xml)Diaelrendezés metaadata, alakzatkoordináták70% – 80%Nagy ppt/media/ terhelés korlátozza az összes megtakarítást
EPUBXHTML, CSS, OPF, NCXHTML címkék, ismétlődő CSS szelektorok65% – 80%mimetype tömörítetlen; média alkönyvtárakban

5. Gyakorlati tanulságok: Hogyan optimalizáljuk dokumentumait

Mivel most már tudod, hogyan működik a belső csomagolás, kihasználhatod a tömörítési mechanizmusokat a valós problémák megoldásához:

  1. Sérült dokumentumok javítása: Ha egy dokumentum nem nyílik meg, a kiterjesztés .zip-re változtatása lehetővé teszi a tartalom kicsomagolását és a nyers szöveg visszaállítását a document.xml-ből vagy az EPUB text/ könyvtárában található egyes fejezetekből.
  2. Óriási Office fájlok zsugorítása: Mivel az XML tömörítés már optimalizált, a hatalmas fájlok szinte mindig a media/ mappában lévő nem optimalizált képek miatt keletkeznek. A harmadik féltől származó PDF vagy DOCX tömörítőkkel való helyett nyissa meg a ZIP konténert, bontsa ki a képeket, futtassa őket egy képtömörítővel (például WebP, TinyPNG vagy MozJPEG), és cserélje vissza őket az archívumban.
  3. Dokumentumgenerálás automatizálása: A fejlesztőknek nem kell nehéz irodai csomagokhoz fordulniuk a jelentések elkészítéséhez. Nyers XML sablonokat generálhat, azokat szabványos zlib/ZIP könyvtárakkal csomagolhatja, és programozottan, milliszekundumok alatt érvényes DOCX vagy XLSX fájlokat állíthat elő.

6. Gyakran Ismételt Kérdések (GYIK)

Át tudom konvertálni a DOCX vagy EPUB fájlt ZIP fájlra csak a fájlkiterjesztés átnevezésével? Igen; a kiterjesztés .zip-re való átnevezése lehetővé teszi, hogy bármely szabványos archívum eszköz (például 7‑Zip, macOS Archive Utility vagy Windows Explorer) közvetlenül megnyissa és megvizsgálja a belső fájlokat.

Miért nem teszi lényegesen kisebbé egy DOCX vagy PPTX 7‑Zip‑pel való tömörítése? Mivel a fájl már egy belsőleg tömörített ZIP archívum, amely DEFLATE‑kódolt XML‑t és előre tömörített képeket tartalmaz, csak minimális redundancia marad, amit egy külső eszköz eltávolíthat.

Miért követeli az EPUB specifikáció, hogy a mimetype fájl legyen tömörítetlen? Lehetővé teszi az e-olvasó szoftverek számára, hogy ellenőrizzék, hogy a fájl hiteles EPUB-e, a MIME karakterláncot egy rögzített bájteltolásnál ellenőrizve, anélkül, hogy egy dekompressziós motor indítására lenne szükség.

Növeli-e a cellaformázás módosítása az Excelben a tömörített XLSX fájl méretét? Igen; a kiterjedt egyéni formázás megtöri a cellák közötti egységes mintaismétlést, hosszabb XML definíciókat hozva létre, amelyek csökkentik a DEFLATE tömörítési hatékonyságát.

Lehetőség van magas felbontású eredeti képek kinyerésére egy Word vagy PowerPoint fájlból minőségromlás nélkül? Igen; nevezze át a fájlt .zip-re, nyissa meg a word/media vagy ppt/media mappát, és megtalálja az eredeti, tömörítetlen forrásképeket pontosan úgy, ahogy be lettek illesztve.

Lásd még