namespace x265 {
-static int initialized /* = 0 */;
-
-// initialize ROM variables
-void initROM()
+#if HIGH_BIT_DEPTH
+// lambda = pow(2, (double)q / 6 - 2) * (1 << (X265_DEPTH - 8));
+double x265_lambda_tab[QP_MAX_MAX + 1] =
{
- if (ATOMIC_CAS32(&initialized, 0, 1) == 1)
- return;
-}
+ 1.0000, 1.1225, 1.2599, 1.4142, 1.5874,
+ 1.7818, 2.0000, 2.2449, 2.5198, 2.8284,
+ 3.1748, 3.5636, 4.0000, 4.4898, 5.0397,
+ 5.6569, 6.3496, 7.1272, 8.0000, 8.9797,
+ 10.0794, 11.3137, 12.6992, 14.2544, 16.0000,
+ 17.9594, 20.1587, 22.6274, 25.3984, 28.5088,
+ 32.0000, 35.9188, 40.3175, 45.2548, 50.7968,
+ 57.0175, 64.0000, 71.8376, 80.6349, 90.5097,
+ 101.5937, 114.0350, 128.0000, 143.6751, 161.2699,
+ 181.0193, 203.1873, 228.0701, 256.0000, 287.3503,
+ 322.5398, 362.0387, 406.3747, 456.1401, 512.0000,
+ 574.7006, 645.0796, 724.0773, 812.7493, 912.2803,
+ 1024.0000, 1149.4011, 1290.1592, 1448.1547, 1625.4987,
+ 1824.5606, 2048.0000, 2298.8023, 2580.3183, 2896.3094,
+};
-void destroyROM()
+// lambda2 = pow(lambda, 2) * scale (0.85);
+double x265_lambda2_tab[QP_MAX_MAX + 1] =
{
- if (ATOMIC_CAS32(&initialized, 1, 0) == 0)
- return;
-}
+ 0.8500, 1.0709, 1.3493, 1.7000, 2.1419,
+ 2.6986, 3.4000, 4.2837, 5.3972, 6.8000,
+ 8.5675, 10.7943, 13.6000, 17.1349, 21.5887,
+ 27.2000, 34.2699, 43.1773, 54.4000, 68.5397,
+ 86.3546, 108.8000, 137.0794, 172.7092, 217.6000,
+ 274.1588, 345.4185, 435.2000, 548.3176, 690.8369,
+ 870.4000, 1096.6353, 1381.6739, 1740.8000, 2193.2706,
+ 2763.3478, 3481.6000, 4386.5411, 5526.6955, 6963.2000,
+ 8773.0823, 11053.3910, 13926.4000, 17546.1645, 22106.7820,
+ 27852.8000, 35092.3290, 44213.5640, 55705.6000, 70184.6580,
+ 88427.1280, 111411.2000, 140369.3161, 176854.2561, 222822.4000,
+ 280738.6321, 353708.5122, 445644.8000, 561477.2643, 707417.0243,
+ 891289.6000, 1122954.5286, 1414834.0486, 1782579.2000, 2245909.0572,
+ 2829668.0973, 3565158.4000, 4491818.1144, 5659336.1946, 7130316.8000,
+};
+#else /* !HIGH_BIT_DEPTH */
// lambda = pow(2, (double)q / 6 - 2);
double x265_lambda_tab[QP_MAX_MAX + 1] =
176854.2222, 222822.4000, 280738.6627, 353708.5368, 445644.7459
};
+#endif
+
const uint16_t x265_chroma_lambda2_offset_tab[MAX_CHROMA_LAMBDA_OFFSET+1] =
{
16, 20, 25, 32, 40, 50,