Welcome, Guest. Please login or register.


Author Topic: Fájltömörítés Enterprise-on (Read 66928 times)

Online geco

  • EP addict
  • *
  • Posts: 4949
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: Fájltömörítés Enterprise-on
« Reply #315 on: 2018.April.30. 13:14:18 »
Nagyon jól hangzik, legtöbb esetben a tömörített fájl is kisebb, na de a tömörítő mérete mindent visz :)
Most látom, de lehet meg vagyok csúszva :oops: , hogy az emulátor forrása már 2.0.11.2-es , kérhetnék belőle egy winfos installert is? Abban gondolom akkor már az új epcompress is lenne :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4610
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
Re: Fájltömörítés Enterprise-on
« Reply #316 on: 2018.April.30. 14:13:14 »
Még egy példa, a Bricky Prise pálya adata -m6:F90L,01234567,0123,01234567,01234567 tömörítéssel az eredeti 15229 helyett 13482 byte, és az ehhez a formátumhoz készült rutin csak 67 byte (bár ez nem sebességre, hanem méretre optimalizált):
* brickym6.s (0.99 kB - downloaded 69 times.)

Nagyon jól hangzik, legtöbb esetben a tömörített fájl is kisebb, na de a tömörítő mérete mindent visz :)

A méret elvileg nem változik a fejléctől eltekintve, fordított irányt beállítva (-m6:BG1R,G,,12345678,0123456789ABCDEF) az m6 mindig pontosan 2 byte-tal kisebb mint az m3. Az iránynak nem kellene hatással lennie a file méretére, ez talán arra utalhat, hogy valahol bug lehet az optimalizálásban. :oops: De az átlagos méret így sem változik, gyakorlatilag véletlenszerű, hogy valamivel kisebb vagy nagyobb lesz-e a file. Eltérő kódolással viszont természetesen változik a méret, az adattól függ, hogy mi az optimális.
« Last Edit: 2018.April.30. 14:59:16 by IstvanV »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4610
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
Re: Fájltömörítés Enterprise-on
« Reply #317 on: 2018.April.30. 15:45:01 »
Most látom, de lehet meg vagyok csúszva :oops: , hogy az emulátor forrása már 2.0.11.2-es , kérhetnék belőle egy winfos installert is? Abban gondolom akkor már az új epcompress is lenne :)

Itt található 32 és 64 bites is, bár az epcompress még változhat.

Az m6 formátum definíció leírása:

-m6:ÁLTALÁNOS,HOSSZÚSÁG,TÁVOLSÁG1,TÁVOLSÁG2,TÁVOLSÁG3

Paraméterek nélkül csak az -m6 a forráskódban található decompress_m6.s rutinnal kompatibilis formátumot állít be. Kis- és nagybetűk is használhatók.

Általános paraméterek:

F: normál irány (forward), az LDIR-hez hasonlóan
B: fordított irány (backward), ilyenkor az adatot a végétől visszafelé haladva kell kicsomagolni
9: a tömöríthetetlen byte-ok egyszerűen 9 bitesek lesznek (1b + eredeti byte, a file elején nincs jelzőbit)
G: a tömöríthetetlen byte-okat sorozatként tárolja, először a hosszúság Elias gamma kódolással, majd az eredeti adat. Ezt mindig tömörített sorozat követi, és a file mindig ilyennel kezdődik. Tömörített sorozat után jelzőbit adja meg a következő sorozat típusát (1 = tömörítetlen)
L: a bitenként olvasott adatot balra kell léptetni (SLA)
R: a bitenként olvasott adatot jobbra kell léptetni (SRL)
0: normál jelzőbitek (0..01)
1: invertált jelzőbitek (1..10), a régebbi formátumok ezt használják

Hosszúság:

Ez a tömörített sorozatok hosszúságának a kódolása, ami lehet egyszerűen "G" is, ez a már említett Elias gamma kódot állítja be ('0123456789ABCDEF", 1 és 65535 közötti hosszúságot támogat, 16 '0' bit a file végét jelzi), és többnyire elfogadható eredményt ad. A definíció működése talán megérthető az alábbi példa alapján, "0128" megadásakor:
  1b + 0 bit: 1
  01b + 1 bit: 2-3
  001b + 2 bit: 4-7
  0001b + 8 bit: 8-263
  0000b: file vége

Ha a minimális hosszúság nagyobb 1-nél (lásd lent), akkor minden értéket megfelelően növelni kell.

Távolság1:

Az 1 byte hosszúságú tömörített sorozatoknál a távolság kódolása. Ha üres, akkor az ilyenek nem támogatottak, és a minimális hosszúság 2 lesz. Lehet "I" és "X" közötti karakter, ami egyszerű fix méretű kódot jelent 1 és 16 bit között, például a "K" 3 bites, 1 és 8 közötti távolságot tesz lehetővé. Ebben a módban ha lehetséges, akkor az alsó 8 bitet (illetve "X"-nél a teljes értéket) egyszerű byte-ként írja ki az epcompress. Ez hasznos lehet akkor, ha a sebesség a fontos kicsomagolásnál. Egyébként a fentihez hasonló rendszer szerint írható le a kódolás, de "G" nem használható, és kissé eltér a kimeneti formátum. Például az '1234" ezt jelenti:
  00b + 1 bit: 1-2
  01b + 2 bit: 3-6
  10b + 3 bit: 7-14
  11b + 4 bit: 15-30


Távolság2:
Távolság3:

Az előzőhöz hasonlóak, csak 2 byte, illetve 3 vagy hosszabb sorozatokhoz. Az utóbbi nem lehet üres, viszont ha az 1-es és a 2-es üres, akkor 3 lesz a minimális hosszúság.
« Last Edit: 2018.April.30. 15:50:33 by IstvanV »

Online geco

  • EP addict
  • *
  • Posts: 4949
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Firefox 59.0 Firefox 59.0
    • View Profile
Re: Fájltömörítés Enterprise-on
« Reply #318 on: 2018.April.30. 17:07:39 »
Köszi szépen a leírást is, le is mentettem :)