PDA

View Full Version : Calcolo archivio pre archiviazione


Macedasoda
28-09-2011, 03:55
Ciao a tutti

Sto cercando x me un software che calcoli il risparmio residuo se deve comprimere un rar o uno zip, cosi so quanto risparmio e se conviene farlo

Esiste?

x_Master_x
29-09-2011, 14:45
Non credo esista e ti spiego perchè:
Il rapporto di compressione varia da file a file, e in base a diversi algoritmi. Il file RAR è più lento nella creazione ma ha un rapporto di compressione più alto rispetto ad un file ZIP. Inoltre se si comprime un JPG, ad esempio, avremo un rapporto di compressione migliore rispetto ad un altro file tipo ISO.

Quindi il software in questione non dovrebbe solo calcolare la quantità di spazio occupato ( da 1GB su HDD quanto diventa se lo comprimo? ) ma anche il tipo di file ( altro esempio: se comprimo un file di testo da 35MB diventa di pochi MB, ma se comprimo un .exe da 35MB potrà diventare 33MB)

Spero di eesere stato il più chiaro possibile :)

Floris
29-09-2011, 15:13
Il rapporto di compressione dipende da euristiche basate su pattern comuni all'interno del file visto come file binario. Ne segue che un pre-calcolo della dimensione dell'archivio richiederebbe lo stesso tempo necessario a creare l'archivio.

Macedasoda
29-09-2011, 22:26
Si ma quando si usa esempio winrar e stai per aggiungere un nuovo archivio mica ti dà il tempo stimato? se io provassi mettendo ciò che devo archiviare nell'archivio e poi quando vedo il tempo stimato perchè non posso vedere pure quanto risparmierei di spazio?

D'altronde servono a salvare spazio e a non far modificare cartelle o files sti programmi.

step92
30-09-2011, 16:05
Non credo esista e ti spiego perchè:
Il rapporto di compressione varia da file a file, e in base a diversi algoritmi. Il file RAR è più lento nella creazione ma ha un rapporto di compressione più alto rispetto ad un file ZIP. Inoltre se si comprime un JPG, ad esempio, avremo un rapporto di compressione migliore rispetto ad un altro file tipo ISO.

Quindi il software in questione non dovrebbe solo calcolare la quantità di spazio occupato ( da 1GB su HDD quanto diventa se lo comprimo? ) ma anche il tipo di file ( altro esempio: se comprimo un file di testo da 35MB diventa di pochi MB, ma se comprimo un .exe da 35MB potrà diventare 33MB)

Spero di eesere stato il più chiaro possibile :)

Comprimere un file .jpg è del tutto inutile in quanto la dimensione resta invariata. Infatti .jpg è già un formato compresso.

Floris
30-09-2011, 16:40
Supponi di avere una pagina di testo in binario e di voler sostituire ad ogni occorrenza della stringa 0000 la stringa 1. Il tempo che ci impiegherai può essere stimato a priori sulla base della lunghezza della pagina ma per calcolare di quanto sarà più corta (compressa) la pagina dovrai effettivamente applicare le sostituzioni. Non puoi sapere a priori il numero di occorrenze della stringa 0000.

A grandi linee la compressione funziona così, sostituendo stringhe lunghe e frequenti con stringhe più corte e mantenendo un dizionario delle corrispondenze. Guarda qua:
http://it.wikipedia.org/wiki/Codifica_di_Huffman
per un esempio.

x_Master_x
30-09-2011, 17:38
Comprimere un file .jpg è del tutto inutile in quanto la dimensione resta invariata. Infatti .jpg è già un formato compresso.

Dipende dall'algoritmo e da come é stato creato il file, ad esempio i JPG delle fotocamere digitali sono molto poco compressi per risparmiare sul processore di compressione e quindi sulla batteria. Con WinRar il rapporto di compressione é del 98/99 %, con altri software si può arrivare intorno al 70% o più utilizzando una ricompressione intelligente delle immagini.

Comunque il mio era solo un esempio :)

Macedasoda
30-09-2011, 21:19
Supponi di avere una pagina di testo in binario e di voler sostituire ad ogni occorrenza della stringa 0000 la stringa 1. Il tempo che ci impiegherai può essere stimato a priori sulla base della lunghezza della pagina ma per calcolare di quanto sarà più corta (compressa) la pagina dovrai effettivamente applicare le sostituzioni. Non puoi sapere a priori il numero di occorrenze della stringa 0000.

A grandi linee la compressione funziona così, sostituendo stringhe lunghe e frequenti con stringhe più corte e mantenendo un dizionario delle corrispondenze. Guarda qua:
http://it.wikipedia.org/wiki/Codifica_di_Huffman
per un esempio.

Quale sarebbe il senso di comprimere allora senza sapere quanto si risparmia?:stordita:

Styb
30-09-2011, 21:39
Quale sarebbe il senso di comprimere allora senza sapere quanto si risparmia?:stordita:
No, puoi sapere quanto si risparmia ma solo dopo la compressione.
Ti posso dire che sono in studio dei programmi che dovrebbero predire il rapporto di compressione mediante una rapida analisi dei file che permette di scegliere l'algoritmo di compressione più adatto per la tipologia dei file da comprimere; comunque per ora c'è solo molta teoria.