blob: ef333b6d81b4242eed35f9fcb99e764d1adacb76 [file] [log] [blame]
/*
* Copyright (c) 2016, Alliance for Open Media. All rights reserved
*
* This source code is subject to the terms of the BSD 2 Clause License and
* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
* was not distributed with this source code in the LICENSE file, you can
* obtain it at www.aomedia.org/license/software. If the Alliance for Open
* Media Patent License 1.0 was not distributed with this source code in the
* PATENTS file, you can obtain it at www.aomedia.org/license/patent.
*/
#ifndef AV1_ENCODER_PUSTATS_H_
#define AV1_ENCODER_PUSTATS_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "av1/encoder/ml.h"
#define NUM_FEATURES 20
#define NUM_HIDDEN_LAYERS 2
#define HIDDEN_LAYERS_0_NODES 10
#define HIDDEN_LAYERS_1_NODES 10
#define LOGITS_NODES 1
static const float
av1_pustats_rate_hiddenlayer_0_kernel[NUM_FEATURES *
HIDDEN_LAYERS_0_NODES] = {
13.8498f, 19.6630f, 13.3036f, 5.2448f, -18.0270f, 21.6671f,
-0.2135f, -0.0060f, 0.1211f, -0.3549f, -0.3550f, 0.0190f,
0.0167f, -0.1192f, 0.2003f, 8.6663f, 32.0264f, 9.9558f,
9.0935f, -110.4994f, 51.8056f, 64.8041f, 58.5392f, 53.0189f,
-61.6300f, 4.7540f, -0.0140f, 0.0185f, -15.8050f, 0.0790f,
0.0707f, 0.0784f, 0.0766f, -0.3030f, 0.0392f, 49.3312f,
63.3326f, 61.4025f, 54.2723f, -62.2769f, -147.1736f, -84.9432f,
-82.5422f, -70.4857f, 46.7622f, -1.0285f, -0.4809f, 0.0068f,
1.0888f, -0.0515f, -0.0384f, -0.0232f, -0.0396f, 0.2429f,
0.2040f, -144.4016f, -88.0868f, -80.3134f, -70.6685f, 66.8528f,
-53.8097f, -45.4011f, -52.8680f, -58.7226f, 99.7830f, 2.3728f,
0.0229f, 0.0002f, -0.3288f, -0.0563f, -0.0550f, -0.0552f,
-0.0563f, 0.2214f, 0.0139f, -60.8965f, -45.5251f, -50.4188f,
-51.5623f, 85.7369f, 77.3415f, 47.4930f, 53.8120f, 58.2311f,
-45.9650f, -2.4938f, 0.1639f, -0.5270f, -75.4622f, -0.0026f,
0.0031f, 0.0047f, 0.0015f, 0.0092f, 0.0654f, 75.6402f,
54.7447f, 54.8156f, 52.6834f, -9.1246f, -34.0108f, -35.6423f,
-34.2911f, -38.5444f, 72.1123f, 10.9750f, -0.1595f, 0.1983f,
22.5724f, -0.0556f, -0.0618f, -0.0571f, -0.0608f, 0.2439f,
-0.0805f, -32.5107f, -28.9688f, -33.7284f, -48.1365f, 61.5297f,
39.2492f, -35.1928f, -11.5000f, 7.7038f, -94.2469f, 13.5586f,
0.7541f, 0.0105f, 4.4041f, 0.1799f, 0.1339f, 0.1567f,
-0.6668f, -0.7384f, 0.2185f, 17.1700f, -26.4601f, -1.8970f,
38.9635f, -30.1916f, 31.8139f, 14.6157f, 10.0565f, 3.3340f,
-40.6985f, -2.1186f, 0.0116f, 0.0962f, 0.7115f, -1.4071f,
-1.3701f, -1.4728f, -1.3404f, -1.7286f, 5.5632f, 28.4998f,
5.4087f, 16.2668f, 11.8693f, -39.4153f, 106.3281f, 38.3075f,
39.4933f, 47.3805f, -15.0514f, -21.2421f, -0.2358f, -0.0024f,
0.3505f, -0.0429f, -0.0377f, -0.0322f, -0.0344f, 0.2020f,
0.1417f, 99.6711f, 35.3896f, 43.1117f, 59.8879f, -17.8250f,
-16.6976f, 18.5100f, 6.3383f, 25.3020f, -55.8824f, 25.1027f,
-0.9926f, -0.0738f, -1.4892f, 0.0269f, -0.0051f, -5.8168f,
-0.0579f, -0.1500f, 0.7224f, 8.3066f, -3.8805f, -12.1482f,
14.3492f, -20.8118f,
};
static const float av1_pustats_rate_hiddenlayer_0_bias[HIDDEN_LAYERS_0_NODES] =
{
17.6566f, 62.2217f, -107.2644f, -56.2255f, 68.2252f,
-37.5662f, 9.587f, 18.5206f, 69.6873f, 4.3903f,
};
static const float
av1_pustats_rate_hiddenlayer_1_kernel[HIDDEN_LAYERS_0_NODES *
HIDDEN_LAYERS_1_NODES] = {
-0.0494f, 0.3505f, -0.0461f, -1.3451f, 0.0198f, -0.0746f, -0.2217f,
-0.9525f, 0.0633f, -0.0737f, -0.3568f, 1.8569f, -0.0189f, -1.8269f,
0.6281f, -1.3266f, -0.9202f, 2.8978f, -0.6437f, -0.8709f, -1.5066f,
-1.0582f, -1.9509f, -0.0417f, -0.1315f, -0.3368f, 0.0014f, -0.5734f,
-1.4640f, -1.6042f, 3.3911f, -1.6815f, -1.9026f, -4.8702f, -0.1012f,
-1.4517f, -3.2156f, 0.8448f, 0.2331f, -0.1593f, 2.6627f, -0.8451f,
-1.7382f, 0.9303f, 2.3003f, -0.0659f, 0.5772f, 0.4253f, 0.2083f,
0.3649f, -0.9198f, -0.2183f, -0.5381f, -1.0831f, 2.0359f, 0.0040f,
-0.0871f, -0.1715f, 2.2453f, 0.5099f, -0.5900f, -0.6313f, -1.3028f,
-1.7257f, 1.4130f, -0.7189f, -0.4336f, 1.9266f, 1.7495f, -0.3321f,
0.2827f, 0.4015f, -0.5044f, -1.0420f, -0.1258f, -0.0342f, -0.1190f,
-3.1263f, 0.7485f, -0.3161f, -0.2224f, 2.5533f, -0.2121f, -1.3389f,
0.5556f, -0.9407f, -0.7456f, 1.4137f, -0.0353f, -0.0521f, 2.4382f,
0.1493f, -11.5631f, -1.6178f, 3.5538f, -3.6538f, -0.5972f, -3.0038f,
-2.1640f, 0.5754f,
};
static const float av1_pustats_rate_hiddenlayer_1_bias[HIDDEN_LAYERS_1_NODES] =
{
69.1995f, 41.7369f, -1.4885f, -35.785f, 26.1678f,
58.4472f, 36.2223f, 66.327f, 50.8867f, 2.8306f,
};
static const float
av1_pustats_rate_logits_kernel[HIDDEN_LAYERS_1_NODES * LOGITS_NODES] = {
1.811f, 0.9009f, 0.0694f, -0.9985f, -0.039f,
0.2076f, 0.5643f, 0.5408f, 0.6071f, 0.277f,
};
static const float av1_pustats_rate_logits_bias[LOGITS_NODES] = {
39.5529f,
};
static const NN_CONFIG av1_pustats_rate_nnconfig = {
NUM_FEATURES, // num_inputs
LOGITS_NODES, // num_outputs
NUM_HIDDEN_LAYERS, // num_hidden_layers
{ HIDDEN_LAYERS_0_NODES, HIDDEN_LAYERS_1_NODES }, // num_hidden_nodes
{
av1_pustats_rate_hiddenlayer_0_kernel,
av1_pustats_rate_hiddenlayer_1_kernel,
av1_pustats_rate_logits_kernel,
},
{
av1_pustats_rate_hiddenlayer_0_bias,
av1_pustats_rate_hiddenlayer_1_bias,
av1_pustats_rate_logits_bias,
},
};
static const float
av1_pustats_dist_hiddenlayer_0_kernel[NUM_FEATURES *
HIDDEN_LAYERS_0_NODES] = {
-39.0787f, -212.9998f, -174.2088f, -264.1454f, 292.7151f, -60.8750f,
-5.9915f, 0.0712f, -60.2312f, -0.2020f, -0.2135f, -0.1663f,
-0.0711f, 0.2267f, 0.9152f, -36.1294f, -159.9320f, -222.9809f,
-270.2556f, 300.7162f, 159.9224f, -172.5735f, -7.6852f, 54.3985f,
110.6721f, 19.2907f, -15.1039f, -0.0457f, 0.3289f, 0.4529f,
-8.2222f, 1.3213f, -0.8378f, -0.2605f, 3.9600f, 17.3407f,
113.1116f, 34.6326f, 11.6688f, 109.3541f, 240.8123f, 45.0615f,
80.7443f, 39.2500f, -21.0931f, -27.1989f, -0.4264f, -0.1345f,
1.6269f, -0.0716f, 0.0989f, -0.1382f, 0.0248f, 0.0913f,
4.3903f, 244.1014f, 32.2567f, 58.6171f, 62.2273f, -2.8647f,
-227.5659f, 16.0031f, -70.5256f, 23.8071f, 290.7356f, 13.6094f,
-2.1842f, 0.0104f, -2.8760f, 0.3708f, 0.8501f, -3.2964f,
-0.2088f, -0.4474f, 1.2248f, 40.5180f, -130.7891f, -188.1583f,
-174.0906f, 205.9622f, 0.3425f, 0.2531f, 0.2822f, 0.0488f,
0.1416f, -0.0433f, -0.1195f, -0.0413f, -0.0708f, -0.0787f,
-0.0889f, -0.4022f, -0.5055f, -0.4715f, 0.2315f, 0.1021f,
-0.3676f, -0.3499f, -0.0715f, 0.1913f, 205.7521f, 125.2265f,
92.0640f, 77.5566f, -164.4280f, -19.3715f, -0.1346f, -0.4060f,
0.5042f, -0.2395f, -0.1329f, -0.1397f, 0.2175f, 0.2895f,
5.5019f, 198.9799f, 114.0018f, 94.9015f, 86.8434f, -183.4237f,
121.5626f, 94.8945f, 65.0803f, 93.6487f, -346.5279f, -47.6168f,
0.0633f, 0.0135f, -0.0692f, -0.1015f, -0.1146f, -0.1341f,
-0.1175f, 0.4186f, 0.1505f, 130.7402f, 107.8443f, 62.8497f,
65.3501f, -312.7407f, 282.8321f, 98.1531f, 75.6648f, 25.8733f,
-176.9298f, -37.2695f, -0.3760f, 0.0017f, 0.1030f, -0.1483f,
0.0787f, -0.0962f, 0.4109f, -0.2292f, 9.1681f, 274.3607f,
60.9538f, 75.9405f, 68.3776f, -167.3098f, -335.1045f, -69.2583f,
-76.3441f, -16.5793f, 218.5244f, 28.2405f, 0.9169f, -0.0026f,
-0.8077f, -1.5756f, -0.0804f, 0.1404f, 1.2656f, 0.0272f,
-0.2529f, -340.8659f, -112.7778f, -58.3890f, -4.1224f, 108.1709f,
-180.7382f, -93.7114f, -77.8686f, -131.8134f, 353.3893f, 4.8233f,
0.0205f, 0.0000f, -1.1654f, -0.0161f, -0.0255f, -0.0358f,
-0.0412f, 0.1103f, 0.1041f, -188.9934f, -110.1792f, -88.6301f,
-93.7226f, 336.9746f,
};
static const float av1_pustats_dist_hiddenlayer_0_bias[HIDDEN_LAYERS_0_NODES] =
{ -175.6918f, 43.4519f, 154.196f, -81.1015f, -0.0758f,
136.5695f, 110.8713f, 142.029f, -153.0901f, -145.2688f };
static const float
av1_pustats_dist_hiddenlayer_1_kernel[HIDDEN_LAYERS_0_NODES *
HIDDEN_LAYERS_1_NODES] = {
-0.1727f, -0.2859f, -0.3757f, -0.4260f, -0.5441f, -0.0666f, -0.3792f,
-0.1335f, -0.1521f, -0.0821f, -3.1590f, 0.2711f, 0.5889f, 0.0878f,
0.4693f, 0.7773f, -9.2989f, 0.0414f, 0.4485f, 22.8958f, -3.7024f,
-2.4672f, -43.2908f, 0.0956f, 0.4431f, 2.3429f, 1.7183f, 0.3985f,
-0.2275f, -3.1583f, -0.3485f, 0.3280f, 0.3763f, 0.2069f, 0.4231f,
0.7366f, -6.9527f, 0.0713f, 0.1359f, 16.6500f, -1.7655f, -0.1651f,
0.1280f, -0.2678f, -0.2120f, 1.6243f, 1.8773f, -0.7543f, -0.3292f,
-0.7627f, -0.2001f, -0.1125f, -0.8100f, -0.1866f, 0.0567f, -0.4002f,
3.2429f, 0.6427f, -0.3759f, -11.6518f, -2.2893f, 0.7708f, -1.8637f,
1.7148f, 0.3124f, -0.7129f, -0.4927f, 0.1964f, -0.2570f, -25.0783f,
2.5061f, 0.1457f, -1.1239f, 0.0570f, -0.2526f, -0.0669f, 0.6791f,
1.1531f, -0.7246f, -0.3180f, -0.0015f, -0.0061f, -0.1626f, -0.0181f,
0.1271f, -0.0140f, -0.6027f, 0.0736f, -0.0157f, 1.2420f, -6.4055f,
0.2128f, -0.0386f, 0.3446f, 0.1840f, -0.7208f, -1.6979f, -0.0442f,
0.3230f, -1.9745f,
};
static const float av1_pustats_dist_hiddenlayer_1_bias[HIDDEN_LAYERS_1_NODES] =
{ 0.f, 70.3414f, 9.6036f, -118.1096f, 49.2507f,
95.1849f, 81.8015f, 167.0967f, -337.7945f, 169.8344f };
static const float
av1_pustats_dist_logits_kernel[HIDDEN_LAYERS_1_NODES * LOGITS_NODES] = {
-0.3627f, 1.2272f, 0.2201f, -1.7406f, -0.6885f,
0.8487f, -0.2761f, 0.7731f, -5.2096f, -0.7351f,
};
static const float av1_pustats_dist_logits_bias[LOGITS_NODES] = {
48.2331f,
};
static const NN_CONFIG av1_pustats_dist_nnconfig = {
NUM_FEATURES, // num_inputs
LOGITS_NODES, // num_outputs
NUM_HIDDEN_LAYERS, // num_hidden_layers
{ HIDDEN_LAYERS_0_NODES, HIDDEN_LAYERS_1_NODES }, // num_hidden_nodes
{
av1_pustats_dist_hiddenlayer_0_kernel,
av1_pustats_dist_hiddenlayer_1_kernel,
av1_pustats_dist_logits_kernel,
},
{
av1_pustats_dist_hiddenlayer_0_bias,
av1_pustats_dist_hiddenlayer_1_bias,
av1_pustats_dist_logits_bias,
},
};
#undef NUM_FEATURES
#undef NUM_HIDDEN_LAYERS
#undef HIDDEN_LAYERS_0_NODES
#undef HIDDEN_LAYERS_1_NODES
#undef LOGITS_NODES
#ifdef __cplusplus
} // extern "C"
#endif
#endif // AV1_ENCODER_PUSTATS_H_