Re: [fpc-pascal] Fast CRC functions?

2014-09-01 Thread Tony Whyman
On 31/08/14 12:07, Graeme Geldenhuys wrote: > And why I always favoured SHA1 instead of CRC. I don't have vast > knowledge on the subject, but SHA1 seems more standardised than CRC. At > least with the tests I have done, using various SHA1 implementations, > they gave me consistent results. It's

Re: [fpc-pascal] Fast CRC functions?

2014-09-01 Thread Michael Schnell
On 09/01/2014 10:12 AM, Tony Whyman wrote: CRCs main use is with low speed modems. They can be readily implemented in hardware and when the division polynomial is carefully chosen can give an undetected bit error rate of better than 1 in 10^8, which is more than sufficient for the data volume pos

Re: [fpc-pascal] Fast CRC functions?

2014-09-01 Thread Mark Morgan Lloyd
Tony Whyman wrote: What has always surprised me is when CRCs are used outside of the communications domain. Arithmetic checksums can give similar performance with lower computational overhead and the same bit length. CRCs only really have the edge with communications because the error pattern is

Re: [fpc-pascal] Fast CRC functions?

2014-09-01 Thread Michael Schnell
On 09/01/2014 10:12 AM, Tony Whyman wrote: CRCs only really have the edge with communications because the error pattern is typically known for a given communications medium and the CRC can be tuned to the media in order to give better performance. Even in software-only applications, CRCs are used

Re: [fpc-pascal] Fast CRC functions?

2014-09-01 Thread Tony Whyman
Certainly true, but doesn't necessarily invalidate my comment. The zip format is an interesting case and it would be of (academic) interest to know if Phil Katz used a 32 bit CRC after researching alternatives - or simply because CRCs are widely used. On the other hand, if you get a bit error in

Re: [fpc-pascal] Fast CRC functions?

2014-09-01 Thread Marco van de Voort
In our previous episode, Michael Schnell said: > More characteristics that can be differ in certain applications are > - bit count > - starting value > - shift count (only data block bits or data block bits plus CRC bits - Shift direction. msbit first, lsbit first, in case of wordwise crc also