javiergutierrezchamorro / nikkhokkho

Software Javier Gutiérrez Chamorro (Guti)
http://nikkhokkho.sourceforge.net/
7 stars 4 forks source link

RFE: Optionally add ZipMix to Zip tool-chain #5

Open TPS opened 8 years ago

TPS commented 8 years ago

@javiergutierrezchamorro ZipMix (close to public-domain, if I read the comments right, & source-archive also located there) would possibly be useful as an optional part of the ZIP tool-chain, though intermediate results from the whole chain would have to be kept (usually not an issue on today's multi-TB drives), & also would have to careful to perform exactly sufficient # of comparisons. Good news: ZipMix would likely be among the fastest tools in the chain!

javiergutierrezchamorro commented 8 years ago

Thanks TPS. Problem is that I will need two different ZIP compressed versions of the same ZIP file in order to take advantage of ZIPMIX. Right?

TPS commented 8 years ago

Yes, hence my comment about keeping intermediate results. I find, when using ZipMix, best option is to run the original Zip through each compressor individually (because many tools use total Zip size, though they may compress individual files best), DeflOpt-DeFluff-DeflOpt (oddly, that seems to work best in that order) each resulting Zip & keeping as a copy , & then ZipMix all-of-the-above carefully (making sure each intermediate Zip is checked, but don't duplicate effort accidentally).

Alternatively, 1 can just keep 1 optimized Zip along the way, but run the risk of ZipMixing a non-DeflOpt-DeFluff-DeflOpt version against a DeflOpt-DeFluff-DeflOpt version, which obviously may lose a good result.

javiergutierrezchamorro commented 8 years ago

Thanks. I will see if I can manage it in the easy way. Currently FileOptimizer logic, is not keeping intermediate flles produced by plugins. It simply discards it, if same or larger, and keeps it for the next tool if smaller.

So at the moment, it will only have access to previous ZIP at most.

TPS commented 8 years ago

If simple way, after each tool in chain, run DeflOpt-DeFluff-DeflOpt on result, then ZipMix previous best with it (in-place, if you choose via ZipMix args). That should catch 99% of edge cases. Again, running this way is very fast compared to the other members of the chain, & you could make it optional via separate checkbox or as part of Optimization level 9.

Also, how do you see all this interacting with Zip option: ☑ Recurse?

TPS commented 8 years ago

Also, original Zip is usually kept @ least in ReCycle Bin, so it's potentially accessible.… &, since all this works best when starting each tool from the original Zip, maybe you want to intentionally keep it.