NCDI/Checksum
From ThorxWiki
(Difference between revisions)
m (link fix) |
(first draft) |
||
(2 intermediate revisions by one user not shown) | |||
Line 1: | Line 1: | ||
The checksum is handled by taking each track offset and summing them together, resulting in a "large number", which is then brought into the range of 0-4095 by applying mod4096. |
The checksum is handled by taking each track offset and summing them together, resulting in a "large number", which is then brought into the range of 0-4095 by applying mod4096. |
||
− | ;Why 4096 and not 255 or 65536?:Short answer - Cos FFF in hex is a nice size for the checksum to be |
+ | ;Q:Why 4096? |
− | === Long answer... === |
+ | ;A:Cos FFF in hex is a nice size for the checksum to be |
− | [[DiscID]] checksum was based on |
||
− | * track offsets in seconds |
||
− | * mod 255 (it should have been mod256, but little difference I think) |
||
− | [[NCDI]] checksum is based on |
+ | ;Q:Why not 255 (FF) or 65536 (FFFF) then? |
− | * track offsets in frames |
+ | ;A:255 and 65536 were both tested with a conversion script which generated NCDI's from the FreeDB database. 65536 gave no appreciable improvement for guaranteed uniqueness, and 255 was ''(awaiting actual data for this ;)'' |
− | |||
− | I then tested with mod256, mod4096 and mod65536 to see how they fared. |
||
− | |||
− | * mod256 - clearly better than [[DiscID]] - this is only attributable to the difference in using frame-level offsets |
||
− | * mod4096 - a clear improvement over mod256 - more numbers for the checksum to spread over = less chance of duplication |
||
− | * mod65536 - marginal improvement on mod4096 - not enough to be worthwhile using compared to mod4096 however |
||
− | |||
− | The following graph shows respective counts of Unique and duplicate ID's for each type of ID. |
||
− | [http://www.cheeky.house.cx/~nemo/visible/nudi/ncdi_countcompare-tracks_uniq.png the big confusing graph] |
Revision as of 09:45, 3 May 2002
The checksum is handled by taking each track offset and summing them together, resulting in a "large number", which is then brought into the range of 0-4095 by applying mod4096.
- Q
- Why 4096?
- A
- Cos FFF in hex is a nice size for the checksum to be
- Q
- Why not 255 (FF) or 65536 (FFFF) then?
- A
- 255 and 65536 were both tested with a conversion script which generated NCDI's from the FreeDB database. 65536 gave no appreciable improvement for guaranteed uniqueness, and 255 was (awaiting actual data for this ;)