Hlavní navigace

Názor k článku Kompresní algoritmy v souborech ZIP: Store a Shrink od bmn - Zkusím, co je na tom možná neintuitivního. Jak...

  • Článek je starý, nové názory již nelze přidávat.
  • 22. 4. 2021 9:59

    bmn

    Zkusím, co je na tom možná neintuitivního. Jak při kompresi, tak při dekompresi, se vytváří slovník z toho co bylo, BEZ OHLEDU na fakt, zda je to prospěšné či není.
    - Takže přijde "T" - to už je ve slovníku, to je základní písmeno.
    - Přijde "R" - podíváme do slovníku zda máme "TR", nemáme, takže na výstup musíme dát stále ještě jen čisté "R" (to už je ve slovníku, to je základní písmeno). A do interního slovníku, pro tento soubor a tuto kompresi, přidáme "TR", pokud bychom ho MOŽNÁ NĚKDY PŘÍŠTĚ během této (de)komprese uviděli, můžeme použít jako unikátní zakódované slovo.

    Důsledky:
    - První výskyt "TR" ještě není zakódovaně přímo, ale jako jednotlivá písmena, takže žádná úspora při prvním výskytu.
    - Pokud se dané slovo (sekvence) vyskytuje jen jednou, nebo málo často, akorát nám zabírá místo ve slovníku (a unikátní kód) naprosto zbytečně.
    - Proto to dobře funguje na delší běžný psaný text (opakující se stejná slova, sekvence), delší zdrojáky a podobně, méně kvalitně pak na binární věci.
    - Interní slovník se po každé jednotlivé kompresi (každém jednom souboru) zahodí a jinde využívaný není. Některé kompresní programy to mají jinak, slovníky mohou zachovávat přes více souborů (má to výhody i nevýhody), ale v ZIP se slovník zahazuje a vždy vytváří znovu.