0, 1, 2, 3, 3, 4, 4, 5, 5, 5, 5, 5
};
-// Model obtained from a 2-sided zero-centerd distribuition derived
+// Model obtained from a 2-sided zero-centered distribution derived
// from a Pareto distribution. The cdf of the distribution is:
// cdf(x) = 0.5 + 0.5 * sgn(x) * [1 - {alpha/(alpha + |x|)} ^ beta]
//
{255, 246, 247, 255, 239, 255, 253, 255},
};
+#if CONFIG_ANS
+// Model obtained from a 2-sided zero-centerd distribuition derived
+// from a Pareto distribution. The cdf of the distribution is:
+// cdf(x) = 0.5 + 0.5 * sgn(x) * [1 - {alpha/(alpha + |x|)} ^ beta]
+//
+// For a given beta and a given probablity of the 1-node, the alpha
+// is first solved, and then the {alpha, beta} pair is used to generate
+// the probabilities for the rest of the nodes.
+//
+// beta = 8
+// Values for tokens ONE_TOKEN through CATEGORY6_TOKEN included here.
+// ZERO_TOKEN and EOB_TOKEN are coded as flags outside this coder.
+const vpx_prob vp10_pareto8_token_probs[COEFF_PROB_MODELS]
+ [ENTROPY_TOKENS - 2] = {
+ {1, 1, 1, 1, 2, 4, 8, 14, 26, 198},
+ {2, 2, 2, 2, 4, 7, 14, 26, 42, 155},
+ {3, 3, 3, 3, 6, 11, 20, 34, 51, 122},
+ {4, 4, 4, 4, 7, 14, 25, 41, 56, 97},
+ {5, 5, 5, 5, 9, 17, 30, 46, 58, 76},
+ {6, 6, 6, 5, 11, 20, 34, 50, 57, 61},
+ {7, 7, 7, 6, 12, 22, 37, 53, 56, 49},
+ {8, 8, 7, 7, 14, 25, 40, 54, 53, 40},
+ {9, 9, 8, 8, 15, 27, 43, 55, 50, 32},
+ {10, 10, 9, 9, 16, 29, 45, 55, 47, 26},
+ {11, 10, 10, 10, 18, 31, 47, 55, 43, 21},
+ {12, 11, 11, 10, 19, 32, 48, 55, 40, 18},
+ {13, 12, 12, 11, 20, 34, 49, 54, 37, 14},
+ {14, 13, 12, 12, 21, 35, 50, 53, 34, 12},
+ {15, 14, 13, 12, 22, 37, 51, 51, 31, 10},
+ {16, 15, 14, 13, 23, 38, 51, 50, 28, 8},
+ {17, 16, 15, 13, 24, 39, 51, 48, 26, 7},
+ {18, 17, 15, 14, 25, 40, 52, 46, 23, 6},
+ {19, 17, 16, 15, 26, 41, 51, 45, 21, 5},
+ {20, 18, 17, 15, 27, 42, 51, 43, 19, 4},
+ {21, 19, 17, 16, 28, 42, 51, 41, 18, 3},
+ {22, 20, 18, 16, 28, 43, 51, 39, 16, 3},
+ {23, 21, 19, 17, 29, 43, 50, 37, 14, 3},
+ {24, 22, 19, 17, 30, 44, 49, 36, 13, 2},
+ {25, 22, 20, 18, 30, 44, 49, 34, 12, 2},
+ {26, 23, 20, 18, 31, 44, 48, 33, 11, 2},
+ {27, 24, 21, 19, 31, 45, 47, 31, 10, 1},
+ {28, 25, 22, 19, 32, 45, 46, 29, 9, 1},
+ {29, 25, 22, 20, 32, 45, 46, 28, 8, 1},
+ {30, 26, 23, 20, 33, 45, 45, 26, 7, 1},
+ {31, 27, 23, 20, 33, 45, 44, 25, 7, 1},
+ {32, 27, 24, 21, 33, 45, 43, 24, 6, 1},
+ {33, 28, 24, 21, 34, 44, 42, 23, 6, 1},
+ {34, 29, 25, 21, 34, 44, 41, 22, 5, 1},
+ {35, 30, 25, 22, 34, 44, 40, 20, 5, 1},
+ {36, 30, 26, 22, 35, 44, 39, 19, 4, 1},
+ {37, 31, 26, 22, 35, 44, 38, 18, 4, 1},
+ {38, 32, 27, 22, 35, 43, 37, 17, 4, 1},
+ {39, 33, 27, 23, 35, 43, 36, 16, 3, 1},
+ {40, 33, 27, 23, 35, 43, 35, 16, 3, 1},
+ {41, 34, 28, 23, 35, 42, 34, 15, 3, 1},
+ {42, 35, 28, 23, 36, 42, 33, 14, 2, 1},
+ {43, 35, 29, 24, 35, 42, 32, 13, 2, 1},
+ {44, 36, 29, 24, 36, 41, 31, 12, 2, 1},
+ {45, 36, 29, 24, 36, 41, 30, 12, 2, 1},
+ {46, 37, 30, 24, 35, 40, 30, 11, 2, 1},
+ {47, 37, 30, 24, 36, 40, 29, 10, 2, 1},
+ {48, 38, 30, 24, 36, 40, 28, 10, 1, 1},
+ {49, 39, 31, 24, 36, 39, 27, 9, 1, 1},
+ {50, 39, 31, 25, 35, 39, 26, 9, 1, 1},
+ {51, 40, 31, 25, 36, 38, 25, 8, 1, 1},
+ {52, 40, 31, 25, 35, 38, 25, 8, 1, 1},
+ {53, 41, 32, 25, 35, 37, 24, 7, 1, 1},
+ {54, 41, 32, 25, 35, 37, 23, 7, 1, 1},
+ {55, 42, 32, 25, 35, 36, 22, 7, 1, 1},
+ {56, 42, 33, 25, 35, 35, 22, 6, 1, 1},
+ {57, 43, 33, 25, 34, 35, 21, 6, 1, 1},
+ {58, 43, 33, 25, 35, 34, 20, 6, 1, 1},
+ {59, 44, 33, 25, 34, 34, 20, 5, 1, 1},
+ {60, 45, 33, 25, 34, 33, 19, 5, 1, 1},
+ {61, 45, 33, 25, 34, 33, 18, 5, 1, 1},
+ {62, 45, 34, 25, 34, 32, 18, 4, 1, 1},
+ {63, 46, 34, 25, 33, 32, 17, 4, 1, 1},
+ {64, 46, 34, 25, 33, 31, 17, 4, 1, 1},
+ {65, 47, 34, 25, 33, 30, 16, 4, 1, 1},
+ {66, 47, 34, 25, 33, 30, 15, 4, 1, 1},
+ {67, 48, 34, 25, 33, 29, 15, 3, 1, 1},
+ {68, 48, 35, 25, 32, 29, 14, 3, 1, 1},
+ {69, 48, 35, 25, 32, 28, 14, 3, 1, 1},
+ {70, 49, 35, 25, 32, 27, 13, 3, 1, 1},
+ {71, 49, 35, 25, 31, 27, 13, 3, 1, 1},
+ {72, 49, 35, 25, 31, 27, 12, 3, 1, 1},
+ {73, 50, 35, 25, 31, 26, 12, 2, 1, 1},
+ {74, 50, 35, 25, 31, 25, 12, 2, 1, 1},
+ {75, 51, 35, 25, 30, 25, 11, 2, 1, 1},
+ {76, 51, 35, 25, 30, 24, 11, 2, 1, 1},
+ {77, 51, 35, 25, 30, 24, 10, 2, 1, 1},
+ {78, 52, 35, 24, 29, 24, 10, 2, 1, 1},
+ {79, 52, 35, 24, 29, 23, 10, 2, 1, 1},
+ {80, 52, 35, 24, 29, 23, 9, 2, 1, 1},
+ {81, 53, 35, 24, 28, 22, 9, 2, 1, 1},
+ {82, 53, 35, 24, 28, 22, 9, 1, 1, 1},
+ {83, 54, 35, 24, 28, 21, 8, 1, 1, 1},
+ {84, 54, 35, 24, 27, 21, 8, 1, 1, 1},
+ {85, 54, 35, 24, 27, 20, 8, 1, 1, 1},
+ {86, 54, 35, 24, 27, 20, 7, 1, 1, 1},
+ {87, 55, 35, 23, 27, 19, 7, 1, 1, 1},
+ {88, 55, 35, 23, 26, 19, 7, 1, 1, 1},
+ {89, 55, 35, 23, 26, 18, 7, 1, 1, 1},
+ {90, 55, 35, 23, 26, 18, 6, 1, 1, 1},
+ {91, 56, 35, 23, 25, 17, 6, 1, 1, 1},
+ {92, 56, 35, 22, 25, 17, 6, 1, 1, 1},
+ {93, 56, 35, 22, 24, 17, 6, 1, 1, 1},
+ {94, 57, 35, 22, 24, 16, 5, 1, 1, 1},
+ {95, 56, 35, 22, 24, 16, 5, 1, 1, 1},
+ {96, 57, 35, 22, 23, 15, 5, 1, 1, 1},
+ {97, 56, 35, 22, 23, 15, 5, 1, 1, 1},
+ {98, 57, 34, 21, 23, 15, 5, 1, 1, 1},
+ {99, 57, 35, 21, 23, 14, 4, 1, 1, 1},
+ {100, 58, 34, 21, 22, 14, 4, 1, 1, 1},
+ {101, 57, 34, 21, 22, 14, 4, 1, 1, 1},
+ {102, 58, 34, 21, 21, 13, 4, 1, 1, 1},
+ {103, 57, 34, 21, 21, 13, 4, 1, 1, 1},
+ {104, 57, 34, 20, 21, 13, 4, 1, 1, 1},
+ {105, 58, 34, 20, 20, 12, 4, 1, 1, 1},
+ {106, 58, 34, 20, 20, 12, 3, 1, 1, 1},
+ {107, 58, 33, 20, 20, 12, 3, 1, 1, 1},
+ {108, 59, 33, 20, 19, 11, 3, 1, 1, 1},
+ {109, 59, 33, 19, 19, 11, 3, 1, 1, 1},
+ {110, 58, 33, 19, 19, 11, 3, 1, 1, 1},
+ {111, 59, 33, 19, 18, 10, 3, 1, 1, 1},
+ {112, 58, 33, 19, 18, 10, 3, 1, 1, 1},
+ {113, 58, 32, 19, 18, 10, 3, 1, 1, 1},
+ {114, 59, 32, 18, 18, 10, 2, 1, 1, 1},
+ {115, 60, 32, 18, 17, 9, 2, 1, 1, 1},
+ {116, 59, 32, 18, 17, 9, 2, 1, 1, 1},
+ {117, 59, 32, 18, 16, 9, 2, 1, 1, 1},
+ {118, 59, 31, 18, 16, 9, 2, 1, 1, 1},
+ {119, 59, 32, 17, 16, 8, 2, 1, 1, 1},
+ {120, 59, 31, 17, 16, 8, 2, 1, 1, 1},
+ {121, 59, 31, 17, 15, 8, 2, 1, 1, 1},
+ {122, 59, 30, 17, 15, 8, 2, 1, 1, 1},
+ {123, 59, 30, 17, 15, 7, 2, 1, 1, 1},
+ {124, 59, 30, 16, 15, 7, 2, 1, 1, 1},
+ {125, 59, 30, 16, 14, 7, 2, 1, 1, 1},
+ {126, 59, 30, 16, 14, 7, 1, 1, 1, 1},
+ {127, 59, 30, 16, 14, 6, 1, 1, 1, 1},
+ {128, 59, 30, 16, 13, 6, 1, 1, 1, 1},
+ {129, 59, 30, 15, 13, 6, 1, 1, 1, 1},
+ {130, 59, 29, 15, 13, 6, 1, 1, 1, 1},
+ {131, 59, 29, 15, 12, 6, 1, 1, 1, 1},
+ {132, 59, 28, 15, 12, 6, 1, 1, 1, 1},
+ {133, 59, 28, 15, 12, 5, 1, 1, 1, 1},
+ {134, 59, 28, 14, 12, 5, 1, 1, 1, 1},
+ {135, 59, 28, 14, 11, 5, 1, 1, 1, 1},
+ {136, 58, 28, 14, 11, 5, 1, 1, 1, 1},
+ {137, 58, 27, 14, 11, 5, 1, 1, 1, 1},
+ {138, 58, 27, 13, 11, 5, 1, 1, 1, 1},
+ {139, 58, 27, 13, 11, 4, 1, 1, 1, 1},
+ {140, 58, 27, 13, 10, 4, 1, 1, 1, 1},
+ {141, 58, 26, 13, 10, 4, 1, 1, 1, 1},
+ {142, 57, 26, 13, 10, 4, 1, 1, 1, 1},
+ {143, 57, 26, 12, 10, 4, 1, 1, 1, 1},
+ {144, 57, 26, 12, 9, 4, 1, 1, 1, 1},
+ {145, 57, 25, 12, 9, 4, 1, 1, 1, 1},
+ {146, 57, 25, 12, 9, 3, 1, 1, 1, 1},
+ {147, 57, 25, 11, 9, 3, 1, 1, 1, 1},
+ {148, 57, 25, 11, 8, 3, 1, 1, 1, 1},
+ {149, 57, 24, 11, 8, 3, 1, 1, 1, 1},
+ {150, 56, 24, 11, 8, 3, 1, 1, 1, 1},
+ {151, 56, 23, 11, 8, 3, 1, 1, 1, 1},
+ {152, 56, 23, 10, 8, 3, 1, 1, 1, 1},
+ {153, 56, 23, 10, 7, 3, 1, 1, 1, 1},
+ {154, 55, 23, 10, 7, 3, 1, 1, 1, 1},
+ {155, 55, 22, 10, 7, 3, 1, 1, 1, 1},
+ {156, 55, 22, 10, 7, 2, 1, 1, 1, 1},
+ {157, 54, 22, 10, 7, 2, 1, 1, 1, 1},
+ {158, 54, 22, 9, 7, 2, 1, 1, 1, 1},
+ {159, 55, 21, 9, 6, 2, 1, 1, 1, 1},
+ {160, 54, 21, 9, 6, 2, 1, 1, 1, 1},
+ {161, 53, 21, 9, 6, 2, 1, 1, 1, 1},
+ {162, 53, 20, 9, 6, 2, 1, 1, 1, 1},
+ {163, 53, 20, 8, 6, 2, 1, 1, 1, 1},
+ {164, 53, 20, 8, 5, 2, 1, 1, 1, 1},
+ {165, 52, 20, 8, 5, 2, 1, 1, 1, 1},
+ {166, 52, 19, 8, 5, 2, 1, 1, 1, 1},
+ {167, 51, 19, 8, 5, 2, 1, 1, 1, 1},
+ {168, 51, 19, 7, 5, 2, 1, 1, 1, 1},
+ {169, 51, 19, 7, 5, 1, 1, 1, 1, 1},
+ {170, 51, 18, 7, 5, 1, 1, 1, 1, 1},
+ {171, 51, 18, 7, 4, 1, 1, 1, 1, 1},
+ {172, 50, 18, 7, 4, 1, 1, 1, 1, 1},
+ {173, 50, 17, 7, 4, 1, 1, 1, 1, 1},
+ {174, 49, 17, 7, 4, 1, 1, 1, 1, 1},
+ {175, 49, 17, 6, 4, 1, 1, 1, 1, 1},
+ {176, 49, 16, 6, 4, 1, 1, 1, 1, 1},
+ {177, 48, 16, 6, 4, 1, 1, 1, 1, 1},
+ {178, 47, 16, 6, 4, 1, 1, 1, 1, 1},
+ {179, 47, 16, 6, 3, 1, 1, 1, 1, 1},
+ {180, 47, 15, 6, 3, 1, 1, 1, 1, 1},
+ {181, 47, 15, 5, 3, 1, 1, 1, 1, 1},
+ {182, 46, 15, 5, 3, 1, 1, 1, 1, 1},
+ {183, 46, 14, 5, 3, 1, 1, 1, 1, 1},
+ {184, 45, 14, 5, 3, 1, 1, 1, 1, 1},
+ {185, 44, 14, 5, 3, 1, 1, 1, 1, 1},
+ {186, 44, 13, 5, 3, 1, 1, 1, 1, 1},
+ {187, 43, 13, 5, 3, 1, 1, 1, 1, 1},
+ {188, 44, 13, 4, 2, 1, 1, 1, 1, 1},
+ {189, 43, 13, 4, 2, 1, 1, 1, 1, 1},
+ {190, 43, 12, 4, 2, 1, 1, 1, 1, 1},
+ {191, 42, 12, 4, 2, 1, 1, 1, 1, 1},
+ {192, 41, 12, 4, 2, 1, 1, 1, 1, 1},
+ {193, 41, 11, 4, 2, 1, 1, 1, 1, 1},
+ {194, 40, 11, 4, 2, 1, 1, 1, 1, 1},
+ {195, 39, 11, 4, 2, 1, 1, 1, 1, 1},
+ {196, 39, 11, 3, 2, 1, 1, 1, 1, 1},
+ {197, 39, 10, 3, 2, 1, 1, 1, 1, 1},
+ {198, 38, 10, 3, 2, 1, 1, 1, 1, 1},
+ {199, 37, 10, 3, 2, 1, 1, 1, 1, 1},
+ {200, 37, 10, 3, 1, 1, 1, 1, 1, 1},
+ {201, 37, 9, 3, 1, 1, 1, 1, 1, 1},
+ {202, 36, 9, 3, 1, 1, 1, 1, 1, 1},
+ {203, 35, 9, 3, 1, 1, 1, 1, 1, 1},
+ {204, 35, 8, 3, 1, 1, 1, 1, 1, 1},
+ {205, 35, 8, 2, 1, 1, 1, 1, 1, 1},
+ {206, 34, 8, 2, 1, 1, 1, 1, 1, 1},
+ {207, 33, 8, 2, 1, 1, 1, 1, 1, 1},
+ {208, 32, 8, 2, 1, 1, 1, 1, 1, 1},
+ {209, 32, 7, 2, 1, 1, 1, 1, 1, 1},
+ {210, 31, 7, 2, 1, 1, 1, 1, 1, 1},
+ {211, 30, 7, 2, 1, 1, 1, 1, 1, 1},
+ {212, 30, 6, 2, 1, 1, 1, 1, 1, 1},
+ {213, 29, 6, 2, 1, 1, 1, 1, 1, 1},
+ {214, 28, 6, 2, 1, 1, 1, 1, 1, 1},
+ {215, 27, 6, 2, 1, 1, 1, 1, 1, 1},
+ {216, 27, 6, 1, 1, 1, 1, 1, 1, 1},
+ {217, 27, 5, 1, 1, 1, 1, 1, 1, 1},
+ {218, 26, 5, 1, 1, 1, 1, 1, 1, 1},
+ {219, 25, 5, 1, 1, 1, 1, 1, 1, 1},
+ {220, 24, 5, 1, 1, 1, 1, 1, 1, 1},
+ {221, 24, 4, 1, 1, 1, 1, 1, 1, 1},
+ {222, 23, 4, 1, 1, 1, 1, 1, 1, 1},
+ {223, 22, 4, 1, 1, 1, 1, 1, 1, 1},
+ {224, 21, 4, 1, 1, 1, 1, 1, 1, 1},
+ {225, 20, 4, 1, 1, 1, 1, 1, 1, 1},
+ {226, 20, 3, 1, 1, 1, 1, 1, 1, 1},
+ {227, 19, 3, 1, 1, 1, 1, 1, 1, 1},
+ {228, 18, 3, 1, 1, 1, 1, 1, 1, 1},
+ {229, 17, 3, 1, 1, 1, 1, 1, 1, 1},
+ {230, 16, 3, 1, 1, 1, 1, 1, 1, 1},
+ {231, 16, 2, 1, 1, 1, 1, 1, 1, 1},
+ {232, 15, 2, 1, 1, 1, 1, 1, 1, 1},
+ {233, 14, 2, 1, 1, 1, 1, 1, 1, 1},
+ {234, 13, 2, 1, 1, 1, 1, 1, 1, 1},
+ {235, 12, 2, 1, 1, 1, 1, 1, 1, 1},
+ {236, 11, 2, 1, 1, 1, 1, 1, 1, 1},
+ {237, 11, 1, 1, 1, 1, 1, 1, 1, 1},
+ {238, 10, 1, 1, 1, 1, 1, 1, 1, 1},
+ {239, 9, 1, 1, 1, 1, 1, 1, 1, 1},
+ {240, 8, 1, 1, 1, 1, 1, 1, 1, 1},
+ {241, 7, 1, 1, 1, 1, 1, 1, 1, 1},
+ {242, 6, 1, 1, 1, 1, 1, 1, 1, 1},
+ {243, 5, 1, 1, 1, 1, 1, 1, 1, 1},
+ {244, 4, 1, 1, 1, 1, 1, 1, 1, 1},
+ {245, 3, 1, 1, 1, 1, 1, 1, 1, 1},
+ {246, 2, 1, 1, 1, 1, 1, 1, 1, 1},
+ {247, 1, 1, 1, 1, 1, 1, 1, 1, 1},
+ {247, 1, 1, 1, 1, 1, 1, 1, 1, 1},
+ {247, 1, 1, 1, 1, 1, 1, 1, 1, 1},
+ {247, 1, 1, 1, 1, 1, 1, 1, 1, 1},
+ {247, 1, 1, 1, 1, 1, 1, 1, 1, 1},
+ {247, 1, 1, 1, 1, 1, 1, 1, 1, 1},
+ {247, 1, 1, 1, 1, 1, 1, 1, 1, 1},
+ {247, 1, 1, 1, 1, 1, 1, 1, 1, 1},
+ {247, 1, 1, 1, 1, 1, 1, 1, 1, 1},
+};
+
+void vp10_build_pareto8_dec_tab(
+ const vpx_prob token_probs[COEFF_PROB_MODELS][ENTROPY_TOKENS - 2],
+ rans_dec_lut dec_tab[COEFF_PROB_MODELS]) {
+ int p;
+ for (p = 0; p < COEFF_PROB_MODELS; ++p) {
+ rans_build_dec_tab(token_probs[p], dec_tab[p]);
+ }
+}
+#endif // CONFIG_ANS
+
static const vp10_coeff_probs_model default_coef_probs_4x4[PLANE_TYPES] = {
{ // Y plane
{ // Intra