NCDI/Checksum

From ThorxWiki
(Difference between revisions)
Jump to: navigation, search
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 ;)
Personal tools
Namespaces

Variants
Actions
Navigation
meta navigation
More thorx
Tools