Add possibility of using an array of precalculated pseudo random numbers to reduce processor load.
This commit is contained in:
@@ -757,6 +757,8 @@ uint64_t ranarrayval() {
|
||||
ranarraynext = (ranarraynext++)%ranarraylength;
|
||||
}
|
||||
|
||||
void r64arrayinit() { ranarrayinit(); }
|
||||
|
||||
uint64_t ranarray64u() { return (ranarrayval()); }
|
||||
|
||||
int64_t ranarray64i() { return (ranarrayval(&rx) >> 1); }
|
||||
|
||||
@@ -152,6 +152,10 @@ void r64init(uint64_t seed);
|
||||
uint64_t r64u();
|
||||
int64_t r64i();
|
||||
|
||||
void r64arrayinit();
|
||||
uint64_t ranarray64u();
|
||||
int64_t ranarray64i();
|
||||
|
||||
int debuglev;
|
||||
void die(char *format, ...);
|
||||
void warn(char *format, ...);
|
||||
|
||||
@@ -677,6 +677,8 @@ static inline void process_sample(int32_t sample, char **outp, enum sps_format_t
|
||||
}
|
||||
dither_mask -= 1;
|
||||
int64_t r = r64i();
|
||||
// int64_t r = ranarray64i();
|
||||
|
||||
int64_t tpdf = (r & dither_mask) - (previous_random_number & dither_mask);
|
||||
previous_random_number = r;
|
||||
// add dither, allowing for clipping
|
||||
|
||||
@@ -858,6 +858,10 @@ int main(int argc, char **argv) {
|
||||
// initialise random number generator
|
||||
|
||||
r64init(0);
|
||||
|
||||
// initialise the randomw number array
|
||||
|
||||
r64arrayinit();
|
||||
|
||||
/* Check if we are called with -V or --version parameter */
|
||||
if (argc >= 2 && ((strcmp(argv[1], "-V") == 0) || (strcmp(argv[1], "--version") == 0))) {
|
||||
|
||||
Reference in New Issue
Block a user