Van elméleti határa (aránya) a veszteségmentes tömörítésnek?
Például csökkenthetjük a tömörített fájl méretét azzal, hogy a dekódolásához szükséges információt, adatokat a kitömörítőprogramban helyezünk el.
Van valamilyen matematikai határa, hogy egy xMB méretű fájlt mennyire lehet összezsugorítani, vagy napjainkban is a kisebb fájlméret egy jövőbeni jobb algoritmustól függ?
"Például csökkenthetjük a tömörített fájl méretét azzal, hogy a dekódolásához szükséges információt, adatokat a kitömörítőprogramban helyezünk el."
Ez akkor lehet igaz, ha a programot előre definiált adathalmaz tömörítéséhez tervezed. Ha bármit tömöríthetsz, akkor előfordulhat, hogy a programban elhelyezett információ és a tömörítendő anyag között 0 összefüggés van. Ha pedig minden lehetséges adathoz információt akarsz elhelyezni, akkor végtelen méretű programod lesz. Még ha valami középútban gondolkodsz, akkor is életszerűtlen, hogy pl. 10 megabájtos fájlt 10 terabájtos programmal tömörítenél.
Nem igazán értek a tömörítéshez, de megpróbálok valami nagyon banális példát leírni.
Egy bitsorozatot akarsz tömöríteni. Szerintem itt a legegyszerűbb eset az, ha az információ csakis egyetlen egy féle bit-et tartalmaz (csak 0-át vagy csak 1-et).
Mondjuk itt egy példa tömörítendő információ: 1111111111111111111111111111.
Ezt úgy tudnád tömöríteni, ha a tömörített fájl csak annyi információt hordozna, hogy "1" és ezt x darabszor kell leírni.
Tehát egy 10 MB-nyi adatot, ami csak 1-es bitekből áll, legjobb esetben ennyire lehetne letömöríteni.
Elméleti síkon, tökéletes redundancia esetén akár több terabájtos fájlt is letömöríthetsz néhány bájtra. A határ a fájl felépítésétől függ, minél redundánsabb, annál jobban tömöríthető.
Amúgy #1-nek üzenném, hogy cudar világban élnénk tömörítés nélkül. Tudod, a tömörítés nem csak arra vonatkozik, amit winrarral bezippelsz. Ismerősen cseng az, hogy jpg, vagy mondjuk mp4? Megsúgom, ezek mind tömörített állományok. Elég méretes lenne az új Amerika Kapitány BluRay kiadása, ha nem lenne semmilyen tömörítés alkalmazva rajta (esélyes, hogy a HDD-den sem férne el).
Akármilyen fejlett is a tömörítő algoritmus, mindig lesz olyan adatszerkezet, amin nem tud tömöríteni. Azokon a területeken, ahol fontos az, hogy nagyfokú tömörítést érjenek el, ott az adott adatszerkezetre optimált algoritmust használnak.
"Véleményem szerint mamár semmi értelme nincs tömöríteni"
Nyilván nem így van. ugyan otthoni szinten az adattárolás nagyon olcsóvá vált az elmúlt évtizedekben, ipari méretekben az adat generálás sebessége jóval túlszárnyalja az adattárolás árának csökkenését. (arról nem is beszélve, hogy az utóbbi pár évben már nem is csökkentek a tárolók árai jelentősen) Gondolj bele. pl. egy egyszerű genom szekvenálásnál kb 2000 ember szekvenálása olyan 500 TB nyers adatot generál. És ez egy kis minta. Mostanában a ambíciózus projectek már 10 és 100ezer közötti mintával dolgoznak.
Fájl tömöríthetősége mindig attól függ, hogy mennyire redundáns. Egy X megabyte-os mp3 vagy JPEG fájlt például tipikusan nem tudsz annyira tömöríteni, mint egy ugyanakkora szövegfájlt.
"Például csökkenthetjük a tömörített fájl méretét azzal, hogy a dekódolásához szükséges információt, adatokat a kitömörítőprogramban helyezünk el."
Ezt az elgondolást használja a Google-féle Brotli is: egy nagy korpusz ("adatgyűjtemény") analizálásával állítottak elő egy fix szótárat, amely mivel fix, nem kell mellékelni a betömörített adathoz, elég a kitömörítő programban elhelyezni. Nyilván a hatékonyságnak ez árthat is, hisz egy dinamikus (betömörített adathoz tökéletesen illeszkedő) szótár jobban meg fog felelni az igényeknek.
Facebook Zstandard tömörítése ezen tovább lép annyival, hogy lehetővé teszi saját szótárak készítését - így pl egy fejlesztő saját alkalmazásához készíthet egyet, és azt mellékelheti az alkalmazásához - így csak magát a betömörített adatot kell mozgatni, kitömörítés mehet az egyedi szótár alapján.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!