Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Algoritmi - Compressioni
Forum - Algoritmi - Compressioni

Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 17:44
Venerdì, 15/11/2019
Volevo chiedere una domanda.
Sò questo è un mondo arcano ma provare a capirci qualcosa in più non sarebbe male.

Mi domandavo come cavolo funziona un programma che riesce a comprimere dei bytes?

Su alcuni miei progetti ho lavorato molto con la lettura e scrittura di dati binari in serializzazione.
riuscendo a costruire un vero e proprio archivio binario da poter muovermi liberamente al suo interno scegliendo file.

Volendo realizzare un qualcosa di più complesso e rendere impossibile la lettura da qualsiasi altro programma aggiungendo ad esempio degli offset tra una serie di dati e l'altra.
ad esempio:

da 0x00 parte l'header del file, in seugito un seek(30) esempio, e continuando via via con gli altri file.
ma noto che comunque i byte sono byte, cioè sono sempre delle informazioni fondamentali per la ricostruzione o smaterializzazione di un file in un archivio binario.
Alterare o modificare un singolo byte porta inevitabilmente al danneggiamento del file stesso.

La domanda è
Se ad esempio ho un file:
0 =  4D ED 00 90 00 00 00 ED 00 00 00 00 FF
D =  FF 00 BB 00 40 00 3E 00  00 00 00 FF 00

Come si fà a comprimere questi dati in modo da non danneggiare il file?
Cioè come faccio a far diventare un file di testo da 10mb in 1mb?

Certo non sono così esperto da riuscire a realizzare un compressore tipo rar ma vorrei capire il suo funzionamento.







https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:26
Venerdì, 15/11/2019
Uno tra gli algoritmi più semplici è il lo LZW

La spiegazione in

https://it.m.wikipedia.org/wiki/Lempel-Ziv-Welch

e si basa sul concetto si dizionario


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 21:04
Venerdì, 15/11/2019
grande!
Grazie nessuno era proprio quello che cercavo di capire.
Ora approfondisco un pò di più sulla compressione


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote