NCDI/Checksum

From ThorxWiki
(Difference between revisions)
Jump to: navigation, search
(first draft)
m
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.
   
;Q:Why 4096?
+
;Why 4096 and not 255 or 65536?:Short answer - Cos FFF in hex is a nice size for the checksum to be
;A:Cos FFF in hex is a nice size for the checksum to be
+
=== Long answer... ===
  +
DiscID checksum was based on
  +
* track offsets in seconds
  +
* mod 255 (it should have been mod256, but little difference I think)
   
;Q:Why not 255 (FF) or 65536 (FFFF) then?
+
[[NCDI]] checksum is based on
;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 ;)''
+
* track offsets in frames
  +
  +
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 - clearly better mod256 - more number 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
  +
  +
I hope to have a graph of this available shortly...

Revision as of 11:38, 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.

Why 4096 and not 255 or 65536?
Short answer - Cos FFF in hex is a nice size for the checksum to be

Long answer...

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

  • track offsets in frames

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 - clearly better mod256 - more number 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

I hope to have a graph of this available shortly...

Personal tools
Namespaces

Variants
Actions
Navigation
meta navigation
More thorx
Tools