Kezdőoldal » Számítástechnika » Programozás » Ha írok egy viszonylag rövid...

Ha írok egy viszonylag rövid kódot (10-20 sor), azt elmentem, majd a fájlt tömörítem, akkor miután megnyitom, a tömörítésből eredő veszteségek megtalálhatók lesznek a kódban?

Figyelt kérdés

Változni fog a kód? Ha nem, azt a kódot mi alapján tudta tömöríteni?


Esetleg ha többször tömörítjük egymás után, ez csak akkor lesz észlelhető? Vagy ez programnyelvtől függ, amiben írtuk a kódot?


2020. márc. 7. 17:26
 1/8 Koplárovics Béci ***** válasza:
100%
A kérdés az, hogy veszteséges, vagy veszteségmentes tömörítővel tömöríted-e. Persze szövegfájlt csak veszteségmentesen szokás tömöríteni.
2020. márc. 7. 17:30
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
67%

Vannak ún. veszteségmentes tömörítési eljárások (pl. a ZIP és családja) és vannak veszteséges tömorítési eljárások (pl. ilyet használ a JPEG kép formátum).

A jellemzőik, hogy a veszteségmentes eljárások kevésbé tudnak tömöríteni mint a veszteségesek. De szövegek, programok, kódok, adatok esetén csak azok használhatóak, mert azok úgy vannak megalkotva, hogy a tömörített anyagból teljesen vissza állítható legyen teljesen. Hogy ezt miért tudjuk megtenni? Pl. egy szöveg az mindig jól tömöríthető. Már pl. csak azért is mert az alap ASCII karakterek (angol ABC kis és nagybetűi, számok, alap szimbolúmok, írásjelek stb.) 7 bitesek, amiket 8 biten tárolunk egy program kódjában. így minden beírt "betű" esetén van 1 db. kötelezően 0 értékű bit. Pl. ha megnézed a legismertebb C programot:


main( ) {

printf("hello, world\n");

}


Ez 36 karakter (a printf előtt egy darab tabulátor van) ebben a 36 karakterben van legalább 36 db. kötelezően 0 bit. Ha csak ezt "összepakolja" az ember 4 bájt "nyerhető" (és még csak egy triviális lépést tettünk a tömörítés felé). Azaz 0abc defg - 0hij klmn - 0opq rstu (a-u-ig itt az egyes bitpozíciók 1-0 értékeit jeleztem) így átalakítod, hogy abcd efgh - ijkl mnop - ... és így tovább. Máris van szemmel látható "nyereség". Nyilván ennél összetetebb tömörítési eljárások vannak. És mint itt látható ebből simán vissza állítható az eredeti bit folyam. (Nyilván ez addig használható amíg standard ASCII-t használunk, de ez most egy egyszerűsített példa és köszi a lepontozást!).

2020. márc. 7. 17:57
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:
78%

"Vagy ez programnyelvtől függ, amiben írtuk a kódot?"


Nem, ez inkább a tömörítési algoritmus hatékonyságától függ.

Ha a szövegfájlban felhasznált karakterek mondjuk csak 32 félék, akkor egy szimpla transzkódolással 3 bitet lehet nyerni karakterenként, mivel a szöveget 8bit/char helyett 5bit/char-on lehet rögzíteni.

Gyakoriságelemzéssel még nyerhető néhány bit, de minél hosszabb a tömörítendő adattömeg, annál jobb lesz a tömörgetés hatásfoka.

2020. márc. 7. 18:30
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:
56%
Egyébként, szövegfájlt nem tudsz veszteségesen tömöríteni.
2020. márc. 8. 08:22
Hasznos számodra ez a válasz?
 5/8 A kérdező kommentje:
Mindenkit felpontoztam :)
2020. márc. 8. 12:34
 6/8 A kérdező kommentje:
Mindenkinek köszi a választ.
2020. márc. 8. 12:35
 7/8 anonim ***** válasza:

Ha tömörítés alatt azt érted, hogy ráeresztesz a kódra egy minifiert, hogy kisebb fájlméretet kapj, akkor maga a kód megmarad, csak éppen formázatlanul.


Például ez egy ilyen kód:

[link]


Láthatod, hogy minden megvan benne, ami az eredetiben is, csak éppen minden felesleges space, új sor, tabulátor kikerült belőle, lényegében olvashatatlan az egész. De működik és semmi nincs elveszve!

2020. márc. 9. 01:51
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:
Ja, az eredeti kimaradt: Töröld ki a linkből a ".min" szócskát és látod hogyan néz ki eredetiben.
2020. márc. 9. 01:52
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!