142 lines
6.0 KiB
Plaintext
142 lines
6.0 KiB
Plaintext
|
---------------------------------
|
||
|
resource readme
|
||
|
version 2.6 full source code
|
||
|
08 May 2001
|
||
|
---------------------------------
|
||
|
|
||
|
Copyright (C) 1998-2001 Victor Kasenda / gruv
|
||
|
http://go.to/gruv
|
||
|
email: vickas@singnet.com.sg
|
||
|
icq me at: 6505245
|
||
|
|
||
|
...resource...
|
||
|
" compression ratios approaching that of PPM, speeds closer to LZ77 compressors"
|
||
|
|
||
|
only for delphi 5.0
|
||
|
later versions of delphi may work, earlier versions may need minor code modifications.
|
||
|
|
||
|
reSource features
|
||
|
- Burrows Wheeler Transformation (BWT) compression technology with efficient implementation
|
||
|
- addition
|
||
|
- extraction
|
||
|
- deletion
|
||
|
- modification of file attributes. The filename or attribute can be changed.
|
||
|
- compression statistics viewer
|
||
|
- compression ratios are close to PPM and speeds close to LZ77 (zip,arj) archivers.
|
||
|
|
||
|
Implementation features
|
||
|
- Kunihiko Sadakane's Suffix Sort
|
||
|
- Peter Fenwick's Structured Arithmetic Encoder Model
|
||
|
- Standard 1989 CACM Arithmetic Encoder (Patent Free)
|
||
|
- CRC 32 file extraction integrity check
|
||
|
- dual layer file read/write buffering - bit buffer (8 bits) and byte buffer (64kbytes)
|
||
|
- efficient block memory manager that shares and reuses blocks between classes
|
||
|
- full object oriented design
|
||
|
- pure pascal/delphi 4.0
|
||
|
|
||
|
|
||
|
the ideas came from:
|
||
|
- mark nelson: 1989 CACM arithmetic encoder 'c' source
|
||
|
- dj wheeler : 1989 report on the block sorting algorithm for DES
|
||
|
- peter fenwick: structured arithmetic encoder/model from his final report on the block sorting algorithm
|
||
|
- kunihiko sadakane: suffix sort algorithm
|
||
|
- julian seward: bzip, BWT implementation
|
||
|
|
||
|
this is my contribution to the delphi community.
|
||
|
don't you just hate it when you see 'pay $10 for full source'?
|
||
|
|
||
|
|
||
|
|
||
|
...copyright...
|
||
|
|
||
|
the source code to the program is free for non-commercial and educational use. It can be incorporated
|
||
|
freely into programs that are 'freeware' or public domain'.
|
||
|
please do at least drop me a note at gruv@bigfoot.com, mention where you got the code from in the credits and acknowledge the people as listed at the end of the document.
|
||
|
|
||
|
in no way is any of the code to be used in a shareware, commercial software, or commercial environments
|
||
|
without the permission or consent from the author, and also the people where the ideas came from.
|
||
|
Please note that this is not entirely my work, and is actually also based on the work, ideas of several people as mentioned at the end of this document.
|
||
|
|
||
|
|
||
|
...disclaimer...
|
||
|
|
||
|
regarding patents and licenses, i will not be held responsible if any of this code violates patent or legal legislations in your country.
|
||
|
|
||
|
this code is provided as is. i will not be held responsible for any damage done to your computer, or your brain.
|
||
|
|
||
|
to the best of my knowledge, resource does not violate any patent legislations. the arithmetic encoder is a standard CACM 1989 implementation and the rest of the algorithms are fairly new.
|
||
|
|
||
|
|
||
|
...for the impatient...
|
||
|
|
||
|
read install.txt to get familier with the files, how to install, compile and run resource.
|
||
|
|
||
|
|
||
|
...background...
|
||
|
this was intended to be an industrial strength archiver, comparable
|
||
|
to zip and other more established formats, but i got tired.... and there
|
||
|
are always buts...
|
||
|
it was released in 1998 as a school project, complete with system docs and user manual.
|
||
|
maybe if inspiration strikes again i'll dig everything out of the grave and rejuvenate the project.
|
||
|
|
||
|
|
||
|
...differences between bzip and resource...
|
||
|
|
||
|
resource bzip
|
||
|
|
||
|
Graphical interface implemented -
|
||
|
encoder type 1989 CACM arithmetic huffman
|
||
|
sort method sadakane's suffix sort
|
||
|
|
||
|
speed differences in speed due to different encoding and sort methods. bzip may be faster because huffman encoding is much faster than arithmetic encoding
|
||
|
|
||
|
|
||
|
...hopes...
|
||
|
so i hope all this code, which i have written for more than a year, will
|
||
|
come in handy to someone, be it the sorting routine, arithmetic coding
|
||
|
routine, or even the file list that can display shell icons!
|
||
|
|
||
|
|
||
|
...credits...
|
||
|
everything here was coded entirely in pascal/delphi by me, and
|
||
|
ideas/references came from many people, all of them i have
|
||
|
referred to in the respective files and also at the end of this document.
|
||
|
|
||
|
it was lotsa sweat and pain, and this is in the end released to the
|
||
|
public, free for non-commercial use.
|
||
|
|
||
|
|
||
|
|
||
|
i would like to thank (and also shout out a big hello! to):
|
||
|
|
||
|
Mark Nelson, who with his wonderful book,
|
||
|
|
||
|
Michael Burrows and David J. Wheeler for the block sorting algorithm.
|
||
|
|
||
|
Peter Fenwick's for his tuned structured arithmetic encoder
|
||
|
|
||
|
Kunihiko Sadakane's Suffix sort, which rocks, and imho is the best
|
||
|
general purpose sorter for the block sorting algorithm.
|
||
|
|
||
|
Angus Johnson, Anders Melander & Graham Wideman for their wonderful, totally incredible drag and drop package. I had managed to incorporate the older version of their package into resource and it turned instantly totally drag and drop to and from explorer.. simply amazing.
|
||
|
|
||
|
Julian Seward, author of BZip. BZip really inspired me to write on, although i didn't really understand much of the 'c' implementation of the BWT algorithm... ;-)
|
||
|
|
||
|
|
||
|
the author(s) of the delphi superpage and delphi deli, without which i may not even have been able to have finished.
|
||
|
|
||
|
|
||
|
and of course Inprise for creating Delphi, which is totally radical!
|
||
|
(and Inprise: when are we gonna have inline functions? it will surely speed up delphi apps alot!)
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
... a bit about the author ...
|
||
|
|
||
|
the author, Victor Kasenda (born 1980), lives on a small island of Singapore (check your atlas).
|
||
|
He treks neighbouring mountains, and enjoys a mountain biking.
|
||
|
programming is his life, his source of energy and motivation. he loves delphi, hates basic, and befriends java more than c, shys away from assembly because it's too much of a fuss. totally normal, partially insane, a little disturbed and totally lost his marbles when he released this source code.... hmmm....
|
||
|
|
||
|
|
||
|
...end of document, now go to sleep...
|