/src/libwebp/src/utils/random_utils.c
Line  | Count  | Source (jump to first uncovered line)  | 
1  |  | // Copyright 2013 Google Inc. All Rights Reserved.  | 
2  |  | //  | 
3  |  | // Use of this source code is governed by a BSD-style license  | 
4  |  | // that can be found in the COPYING file in the root of the source  | 
5  |  | // tree. An additional intellectual property rights grant can be found  | 
6  |  | // in the file PATENTS. All contributing project authors may  | 
7  |  | // be found in the AUTHORS file in the root of the source tree.  | 
8  |  | // -----------------------------------------------------------------------------  | 
9  |  | //  | 
10  |  | // Pseudo-random utilities  | 
11  |  | //  | 
12  |  | // Author: Skal (pascal.massimino@gmail.com)  | 
13  |  |  | 
14  |  | #include <string.h>  | 
15  |  |  | 
16  |  | #include "src/webp/types.h"  | 
17  |  | #include "src/utils/random_utils.h"  | 
18  |  |  | 
19  |  | //------------------------------------------------------------------------------  | 
20  |  |  | 
21  |  | // 31b-range values  | 
22  |  | static const uint32_t kRandomTable[VP8_RANDOM_TABLE_SIZE] = { | 
23  |  |   0x0de15230, 0x03b31886, 0x775faccb, 0x1c88626a, 0x68385c55, 0x14b3b828,  | 
24  |  |   0x4a85fef8, 0x49ddb84b, 0x64fcf397, 0x5c550289, 0x4a290000, 0x0d7ec1da,  | 
25  |  |   0x5940b7ab, 0x5492577d, 0x4e19ca72, 0x38d38c69, 0x0c01ee65, 0x32a1755f,  | 
26  |  |   0x5437f652, 0x5abb2c32, 0x0faa57b1, 0x73f533e7, 0x685feeda, 0x7563cce2,  | 
27  |  |   0x6e990e83, 0x4730a7ed, 0x4fc0d9c6, 0x496b153c, 0x4f1403fa, 0x541afb0c,  | 
28  |  |   0x73990b32, 0x26d7cb1c, 0x6fcc3706, 0x2cbb77d8, 0x75762f2a, 0x6425ccdd,  | 
29  |  |   0x24b35461, 0x0a7d8715, 0x220414a8, 0x141ebf67, 0x56b41583, 0x73e502e3,  | 
30  |  |   0x44cab16f, 0x28264d42, 0x73baaefb, 0x0a50ebed, 0x1d6ab6fb, 0x0d3ad40b,  | 
31  |  |   0x35db3b68, 0x2b081e83, 0x77ce6b95, 0x5181e5f0, 0x78853bbc, 0x009f9494,  | 
32  |  |   0x27e5ed3c  | 
33  |  | };  | 
34  |  |  | 
35  | 0  | void VP8InitRandom(VP8Random* const rg, float dithering) { | 
36  | 0  |   memcpy(rg->tab, kRandomTable, sizeof(rg->tab));  | 
37  | 0  |   rg->index1 = 0;  | 
38  | 0  |   rg->index2 = 31;  | 
39  | 0  |   rg->amp = (dithering < 0.0) ? 0  | 
40  | 0  |           : (dithering > 1.0) ? (1 << VP8_RANDOM_DITHER_FIX)  | 
41  | 0  |           : (uint32_t)((1 << VP8_RANDOM_DITHER_FIX) * dithering);  | 
42  | 0  | }  | 
43  |  |  | 
44  |  | //------------------------------------------------------------------------------  |