Son Güncelleme: 10 Eylül, 2026

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

EPUB, DOCX, XLSX ve PPTX İçinde Sıkıştırma Nasıl Çalışır

Eğer bir .docx, .xlsx, .pptx veya .epub dosyasının adını .zip olarak değiştirir ve çift tıklarsanız, şaşırtıcı bir şey olur: bir hata vermez. İşletim sisteminiz, onu alt dizinler, XML yapılandırma dosyaları, stil sayfaları, yazı tipleri ve gömülü resimlerle dolu bir klasör olarak açar.

Modern belge mimarileri on yıllar önce tek parça ikili dosyaları terk etti. Yerine, endüstri standartları—özellikle Microsoft Office için Open Packaging Conventions (OPC) ve EPUB için Open Container Format (OCF)—şaşırtıcı derecede zarif bir temel benimsedi: mütevazı ZIP arşivi.

Bu formatların içinde sıkıştırmanın nasıl çalıştığını anlamak, modern belgelerin neden bu kadar dayanıklı, hafif ve genişletilebilir olduğunu ve bazı dosyaların %90 oranında sıkışırken, bazılarının neredeyse hiç küçülmediğini ortaya koyar.

1. Konteyner Mimarisi: Gizlenmiş ZIP Paketleri

Sıkıştırma algoritmasını kendisini anlamadan önce, modern belge formatlarının neden bağımsız ham dosyalar yerine paketler şeklinde yapılandırıldığını anlamak faydalıdır.

Eski İkili Biçimlerle İlgili Sorun

1990’lar ve 2000’lerin başında, Microsoft Office özel ikili formatlar (.doc, .xls, .ppt) kullanıyordu. Bu dosyalar temelde Compound File Binary Format (CFBF) etrafında yapılandırılmış bellek dökümleriydi. Ünlü bir şekilde kırılgandı:

  • Tek bir bit hatası tüm dosya yapısını bozabilirdi.
  • Görsellerin gömülmesi dosya boyutlarının öngörülemez şekilde şişmesine neden oluyordu.
  • Ayrıştırma, yoğun ikili spesifikasyonların tersine mühendisliğini gerektiriyordu.
  • Çapraz platform uyumluluğu bir kabus haline gelmişti.

Açık, Modüler Konteynerlere Geçiş

2000’lerin ortalarında iki paralel evrim gerçekleşti:

  1. Office Open XML (OOXML / ISO/IEC 29500): Microsoft, x ile biten XML tabanlı formatları tanıttı (DOCX, XLSX, PPTX). Temelinde, bu dosyalar Open Packaging Conventions (OPC) standardını izler.
  2. EPUB (IDPF / W3C): Dijital yayıncılık, tescilli okuyucu formatlarından standart web teknolojilerine (HTML, CSS, SVG) doğru kaydı ve bu teknolojiler EPUB Open Container Format (OCF) içinde paketlendi.

Her iki mimari de standart PKZIP 2.0 / ZIP specification üzerine dayanır. Dosya uzantısı sadece beklenen şemayı, varsayılan görüntüleyici uygulamayı ve mime-type bildirimlerini belirler.

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. Kaput Altındaki Motor: DEFLATE Algoritması

Bir yazılım uygulaması bir DOCX veya EPUB dosyasını kaydettiğinde, dosyaları sıkıştırılmamış bir arşive sadece yerleştirmez. İç içe varlıkları DEFLATE (RFC 1951’de belirtilen) kullanarak sıkıştırır.

DEFLATE, iki temel bilgisayar bilimi algoritmasını birleştiren iki katmanlı kayıpsız sıkıştırma sistemidir:

Adım 1: LZ77 (Lempel-Ziv 1977) — Kayar Pencere Redundans Kaldırma

XML ve HTML son derece ayrıntılıdır. Standart bir document.xml veya chapter1.xhtml dosyasında etiketlerin ne kadar sık göründüğünü düşünün:

  • <w:p><w:r><w:rPr><w:sz w:val=\"24\"/></w:rPr><w:t> Word’de binlerce kez tekrarlanır.
  • row r=\"1\" spans=\"1:15\"><c r=\"A1\" t=\"s\"><v> Excel’de on binlerce hücrede tekrarlanır.
  • <p class=\"calibre1\"><span class=\"body-text\"> EPUB kitap bölümleri boyunca tekrarlanır.

LZ77, veri akışını kayan bir sözlük penceresi (genellikle 32 KB) kullanarak tarar. Yakın zamanda gördüğü bir karakter dizisiyle karşılaştığında, yinelenen metni küçük bir geriye doğru işaretçiyle değiştirir:

  • (distance, length) — ör., "142 bayta geri git, 28 baytı kopyala".

Ayrıntılı işaretlemeyi tekrar tekrar depolamak yerine, LZ77 binlerce tekrarlayan XML etiketini kompakt koordinat referanslarına sıkıştırır.

Adım 2: Huffman Kodlaması — Değişken Uzunluklu Frekans Kodlaması

LZ77, gereksiz dizileri uzunluk-mesafe belirteçleriyle değiştirdikten sonra, Huffman kodlaması akıştaki her sembolün sıklığını analiz eder:

  • Sıkça görülen semboller (örneğin yaygın karakterler e, t, boşluklar veya yaygın mesafe işaretçileri) kısa ikili bit kodlarına atanır (ör., 2 ila 4 bit).
  • Nadiren kullanılan semboller daha uzun ikili bit kodları alır (ör., 12 ila 16 bit).

Sonuç, değişken uzunlukta bit kodlarından oluşan bir akış olup, düz metin XML’yi 75% to 88% oranında sıkıştırır.

3. Biçim-Biçim Açıklama: Her Birinin Sıkıştırmayı Nasıl Ele Aldığı

DOCX, XLSX, PPTX ve EPUB aynı ZIP zarfını kullansa da, iç veri özellikleri büyük ölçüde farklılık gösterir.

A. DOCX: Metin ve Stil Dengeleme Eylemi

  • İçindekiler: Düz XML (word/document.xml), yazı tipi tabloları, stiller, ilişki katalogları ve bir word/media/ klasörü.
  • Sıkıştırma nasıl çalışır:
    • Ham metin ve XML işaretlemesi, büyük sıkıştırma oranları elde eder (genellikle 5 MB ham XML’den 500 KB’ye düşer).
    • Ancak, modern belgeler genellikle ekran görüntüleri, illüstrasyonlar ve fotoğraflar içerir. JPEG ve PNG dosyaları zaten sıkıştırılmış olduğundan, DEFLATE onları daha fazla küçültemez. Aslında, zaten sıkıştırılmış bir görüntü üzerinde DEFLATE çalıştırmak neredeyse %0 tasarruf sağlar (ve sıkıştırma başlıkları nedeniyle boyutu hafifçe artırabilir).
    • Sonuç olarak, görüntüsüz DOCX dosyaları son derece küçüktür, oysa görsel ağırlıklı raporlar, içerdikleri görüntü dosyalarının neredeyse tam boyutunu yansıtır.

B. XLSX: Yüksek Hacimli Sayısal Veri ve Paylaşılan Dize

Elektronik tablolar benzersiz bir zorluk sunar: bir sayfa yüz binlerce satır içerebilir ve akıllıca işlenmezse astronomik XML dosya boyutlarına yol açar.

  • Paylaşılan Dize Stratejisi (xl/sharedStrings.xml):
    • Bir elektronik tabloda “United States” veya “In Progress” gibi bir metin etiketi 50.000 kez görünürse, <c t="inlineStr"><is><t>United States</t></is></c> ifadesini 50.000 hücrede depolamak sıkıştırılmamış XML’i gigabaytlara kadar şişirir.
    • Excel, sıkıştırmadan önce metni tekilleştirir; her benzersiz dizeyi bir kez paylaşılan dize tablosunda saklar ve sayısal indeksle (ör. <v>0</v>, <v>1</v>) referans verir.
  • XLSX Neden Dramatik Şekilde Sıkıştırılır:
    • Sayısal satır kayıtları (sheet1.xml) tekrarlayan, öngörülebilir bir sözdizimini izler.
    • DEFLATE, tablo tabanlı XML’deki tekrarlayan desenleri kolayca algılar. 120 MB’lık ham sheet1.xml dosyasının bir XLSX arşivinde 6 MB’dan daha az bir boyuta küçülmesi yaygındır.

C. PPTX: Medya Ağırlıklı Slayt Setleri

Sunumlar, belgeler ve elektronik tablolardan temelde farklıdır:

  • Görsel İkilemi: PPTX dosyaları genellikle vektör şekilleri, arka plan grafikleri, video klipler ve yüksek çözünürlüklü slaytlarla domine olur.
  • Sıkıştırma Profili: ppt/slides/slide1.xml‘den slideN.xml‘e kadar dosyalar verimli bir şekilde sıkıştırılırken, medya yükü (ppt/media/) toplam arşiv ağırlığının %85 ila %95’ini oluşturur.
  • PPTX’i Tekrar Sıkıştırmanın Hiçbir Şey Değiştirmemesinin Nedeni: Eğer zaten kaydedilmiş bir PPTX dosyasını 7-Zip veya WinRAR ile sıkıştırmaya çalışırsanız, neredeyse hiç boyut azalması fark etmeyeceksiniz. Çünkü iç kısım zaten önceden sıkıştırılmış JPEG’ler ve MP4’ler içeren DEFLATE sıkıştırmalı bir ZIP arşivi olduğundan, entropi zaten maksimuma yakındır.

D. EPUB: Zorunlu Sıkıştırılmamış Başlık İçeren Web Teknolojileri

Bir EPUB dosyası temelde XHTML bölümleri, CSS stil sayfaları, TTF/WOFF yazı tipleri ve meta verileri içeren, duyarlı, paketlenmiş bir mikro‑web sitesidir. Ancak, EPUB, Microsoft Office dosyalarından ayıran tek katı paketleme kuralına sahiptir:

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
  • Sihirli mimetype Dosyası:
    • E‑okuyucular, tüm arşivi çıkarmadan veya sıkıştırma çözme hatlarını çalıştırmadan bir EPUB’u hemen tanımlamalıdır.
    • Open Container Format (OCF), mimetype dosyasının şu şekilde olmasını zorunlu kılar:
      1. ZIP arşivindeki ilk dosya olmalıdır.
      2. Tam olarak application/epub+zip dizesini içermelidir.
      3. Sıkıştırılmamalı (ZIP sıkıştırma yöntemi 0 / “Depolanmış”).
      4. Ek alan verisi içermemeli, böylece MIME dizesi her zaman fiziksel dosyanın 38. baytından başlar.
  • Metin Sıkıştırması: Kalan tüm dosyalar (.xhtml, .css, .opf) standart DEFLATE (ZIP yöntemi 8) ile sıkıştırılır, bu da tam uzunluktaki romanların birkaç yüz kilobayta küçülmesini sağlar.

4. Formatlar Arasında Sıkıştırma Karşılaştırması

BiçimÇekirdek YükBirincil Yedek KaynakTipik Sıkıştırma Oranı (Metin/İşaretleme)Medya İşleme
DOCXWordprocessingML (document.xml)Tekrarlayan XML paragraf/çalıştır etiketleri75% – 85%word/media/ içinde depolanır (çoğunlukla önceden sıkıştırılmış)
XLSXSpreadsheetML (sheet*.xml)Tekrarlayan hücre/satır etiketleri; Paylaşılan Dizeler80% – 92%Seyrek; xl/media/ içindeki görseller/çizelgeler
PPTXPresentationML (slide*.xml)Slayt düzeni meta verileri, şekil koordinatları70% – 80%Ağır ppt/media/ yükü, toplam tasarrufları sınırlar
EPUBXHTML, CSS, OPF, NCXHTML etiketleri, tekrarlayan CSS seçicileri65% – 80%mimetype sıkıştırılmamış; medya alt klasörlerde

5. Pratik Çıkarımlar: Belgelerinizi Nasıl Optimize Edebilirsiniz

Artık iç paketlemenin nasıl çalıştığını bildiğinize göre, sıkıştırma mekaniklerini gerçek dünya problemlerini çözmek için kullanabilirsiniz:

  1. Bozuk Belgeleri Düzeltme: Bir belge açılmayı reddederse, uzantıyı .zip olarak değiştirmek, içeriği çıkarmanıza ve document.xml dosyasından ham metni ya da EPUB’un text/ dizinindeki bireysel bölümleri kurtarmanıza olanak tanır.
  2. Devasa Office Dosyalarını Küçültme: XML sıkıştırması zaten optimize edildiği için, devasa dosyalar neredeyse her zaman media/ içindeki optimize edilmemiş görüntülerden kaynaklanır. Üçüncü taraf PDF veya DOCX sıkıştırıcıları kullanmak yerine, ZIP konteynerini açın, görüntüleri çıkarın, bir görüntü optimizasyon aracından (WebP, TinyPNG veya MozJPEG gibi) geçirin ve arşiv içinde değiştirin.
  3. Belge Oluşturmayı Otomatikleştirme: Geliştiricilerin rapor oluşturmak için ağır ofis paketlerine ihtiyacı yoktur. Ham XML şablonları oluşturabilir, bunları standart zlib/ZIP kütüphaneleriyle paketleyebilir ve milisaniyeler içinde geçerli DOCX veya XLSX dosyaları programlı olarak çıktı alabilirsiniz.

6. Sıkça Sorulan Sorular (SSS)

Bir DOCX veya EPUB dosyasını sadece dosya uzantısını değiştirerek ZIP dosyasına dönüştürebilir miyim? Evet; uzantıyı .zip olarak yeniden adlandırmak, herhangi bir standart arşiv aracının (7-Zip, macOS Archive Utility veya Windows Explorer gibi) iç dosyaları doğrudan açıp incelemesine olanak tanır.

Neden bir DOCX veya PPTX dosyasını 7-Zip ile sıkıştırmak belirgin bir küçülme sağlamaz? Çünkü dosya zaten DEFLATE kodlu XML ve önceden sıkıştırılmış görüntüler içeren dahili olarak sıkıştırılmış bir ZIP arşividir; bu da dış bir aracın kaldırabileceği çok az fazlalık bırakır.

EPUB spesifikasyonu neden mimetype dosyasının sıkıştırılmamış olmasını gerektirir? Bu, e-okuyucu yazılımının dosyanın gerçek bir EPUB olduğunu, sıkıştırma motoru başlatmaya gerek kalmadan sabit bir bayt offsetinde MIME dizesini kontrol ederek doğrulamasını sağlar.

Excel’de hücre biçimlendirmesini değiştirmek sıkıştırılmış XLSX dosya boyutunu artırır mı? Evet; kapsamlı özel biçimlendirme, hücreler arasında tekdüze desen tekrarını bozar, daha uzun XML tanımları oluşturur ve bu da DEFLATE sıkıştırma verimliliğini azaltır.

Bir Word veya PowerPoint dosyasından yüksek çözünürlüklü orijinal görüntüleri kalite kaybı olmadan çıkarmak mümkün mü? Evet; dosyanın adını .zip olarak değiştirin, word/media veya ppt/media klasörünü açın ve eklenmiş oldukları gibi orijinal, sıkıştırılmamış kaynak görüntüleri bulacaksınız.

Ayrıca Bakınız