#![allow(dead_code)]
use crate::entropy_coding::encode::PrefixCode;
pub const NUM_DC_PREFIX_CODES: usize = 8;
pub const NUM_DC_CONTEXTS: usize = 45;
pub static DC_CONTEXT_MAP: [u8; NUM_DC_CONTEXTS] = [
0, 1, 2, 2, 1, 1, 3, 0, 3, 0, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 7, 7, 7, 6, 7, 6, 7, 6, 6, 5, 5,
];
pub static DC_PREFIX_CODES: [PrefixCode; NUM_DC_PREFIX_CODES] = [
PrefixCode {
depths: [
6, 7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7,
],
bits: [
0x0001, 0x0021, 0x0061, 0x0011, 0x0051, 0x0031, 0x0071, 0x0009, 0x0000, 0x0049, 0x0029,
0x0069, 0x0019, 0x0059, 0x0039, 0x0079, 0x0005, 0x0045, 0x0025, 0x0065, 0x0015, 0x0055,
0x0035, 0x0075, 0x000d, 0x004d, 0x002d, 0x006d, 0x001d, 0x005d, 0x003d, 0x007d, 0x0003,
0x0043, 0x0023, 0x0063, 0x0013, 0x0053, 0x0033, 0x0073, 0x000b, 0x004b, 0x002b, 0x006b,
0x001b, 0x005b, 0x003b, 0x007b, 0x0007, 0x0047, 0x0027, 0x0067, 0x0017, 0x0057, 0x0037,
0x0077, 0x000f, 0x004f, 0x002f, 0x006f, 0x001f, 0x005f, 0x003f, 0x007f,
],
},
PrefixCode {
depths: [
1, 3, 2, 5, 4, 7, 7, 8, 8, 10, 9, 12, 10, 13, 11, 14, 13, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
],
bits: [
0x0000, 0x0003, 0x0001, 0x000f, 0x0007, 0x001f, 0x005f, 0x003f, 0x00bf, 0x017f, 0x007f,
0x04ff, 0x037f, 0x0cff, 0x00ff, 0x02ff, 0x1cff, 0x22ff, 0x12ff, 0x32ff, 0x0aff, 0x2aff,
0x1aff, 0x3aff, 0x06ff, 0x26ff, 0x16ff, 0x36ff, 0x0eff, 0x2eff, 0x1eff, 0x3eff, 0x01ff,
0x21ff, 0x11ff, 0x31ff, 0x09ff, 0x29ff, 0x19ff, 0x39ff, 0x05ff, 0x25ff, 0x15ff, 0x35ff,
0x0dff, 0x2dff, 0x1dff, 0x3dff, 0x03ff, 0x23ff, 0x13ff, 0x33ff, 0x0bff, 0x2bff, 0x1bff,
0x3bff, 0x07ff, 0x27ff, 0x17ff, 0x37ff, 0x0fff, 0x2fff, 0x1fff, 0x3fff,
],
},
PrefixCode {
depths: [
1, 2, 4, 4, 8, 4, 13, 5, 15, 6, 15, 7, 15, 9, 15, 12, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
],
bits: [
0x0000, 0x0001, 0x0003, 0x000b, 0x007f, 0x0007, 0x09ff, 0x000f, 0x19ff, 0x001f, 0x59ff,
0x003f, 0x39ff, 0x00ff, 0x79ff, 0x01ff, 0x05ff, 0x45ff, 0x25ff, 0x65ff, 0x15ff, 0x55ff,
0x35ff, 0x75ff, 0x0dff, 0x4dff, 0x2dff, 0x6dff, 0x1dff, 0x5dff, 0x3dff, 0x7dff, 0x03ff,
0x43ff, 0x23ff, 0x63ff, 0x13ff, 0x53ff, 0x33ff, 0x73ff, 0x0bff, 0x4bff, 0x2bff, 0x6bff,
0x1bff, 0x5bff, 0x3bff, 0x7bff, 0x07ff, 0x47ff, 0x27ff, 0x67ff, 0x17ff, 0x57ff, 0x37ff,
0x77ff, 0x0fff, 0x4fff, 0x2fff, 0x6fff, 0x1fff, 0x5fff, 0x3fff, 0x7fff,
],
},
PrefixCode {
depths: [
1, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 2, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9,
],
bits: [
0x0000, 0x0007, 0x0087, 0x00c7, 0x01c7, 0x0027, 0x0127, 0x00a7, 0x01a7, 0x0067, 0x0167,
0x00e7, 0x0003, 0x01e7, 0x0001, 0x0017, 0x0047, 0x0117, 0x0097, 0x0197, 0x0057, 0x0157,
0x00d7, 0x01d7, 0x0037, 0x0137, 0x00b7, 0x01b7, 0x0077, 0x0177, 0x00f7, 0x01f7, 0x000f,
0x010f, 0x008f, 0x018f, 0x004f, 0x014f, 0x00cf, 0x01cf, 0x002f, 0x012f, 0x00af, 0x01af,
0x006f, 0x016f, 0x00ef, 0x01ef, 0x001f, 0x011f, 0x009f, 0x019f, 0x005f, 0x015f, 0x00df,
0x01df, 0x003f, 0x013f, 0x00bf, 0x01bf, 0x007f, 0x017f, 0x00ff, 0x01ff,
],
},
PrefixCode {
depths: [
1, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 3, 9, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9,
],
bits: [
0x0000, 0x0007, 0x0087, 0x0047, 0x00c7, 0x01c7, 0x0027, 0x0127, 0x00a7, 0x01a7, 0x0067,
0x0167, 0x0003, 0x00e7, 0x0001, 0x01e7, 0x0017, 0x0117, 0x0097, 0x0197, 0x0057, 0x0157,
0x00d7, 0x01d7, 0x0037, 0x0137, 0x00b7, 0x01b7, 0x0077, 0x0177, 0x00f7, 0x01f7, 0x000f,
0x010f, 0x008f, 0x018f, 0x004f, 0x014f, 0x00cf, 0x01cf, 0x002f, 0x012f, 0x00af, 0x01af,
0x006f, 0x016f, 0x00ef, 0x01ef, 0x001f, 0x011f, 0x009f, 0x019f, 0x005f, 0x015f, 0x00df,
0x01df, 0x003f, 0x013f, 0x00bf, 0x01bf, 0x007f, 0x017f, 0x00ff, 0x01ff,
],
},
PrefixCode {
depths: [
5, 6, 6, 6, 6, 7, 6, 7, 6, 7, 7, 7, 7, 8, 7, 8, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5,
5, 5, 5, 4, 5, 5, 5, 4, 5, 5, 5, 5, 5, 6, 6, 6, 7, 8, 9, 10, 11, 14, 14, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15,
],
bits: [
0x0004, 0x0015, 0x0035, 0x000d, 0x002d, 0x0037, 0x001d, 0x0077, 0x003d, 0x000f, 0x004f,
0x002f, 0x006f, 0x003f, 0x001f, 0x00bf, 0x0003, 0x0023, 0x0013, 0x0033, 0x000b, 0x002b,
0x001b, 0x003b, 0x0014, 0x000c, 0x001c, 0x0002, 0x0012, 0x000a, 0x001a, 0x0006, 0x0000,
0x0016, 0x000e, 0x001e, 0x0008, 0x0001, 0x0011, 0x0009, 0x0019, 0x0005, 0x0007, 0x0027,
0x0017, 0x005f, 0x007f, 0x00ff, 0x01ff, 0x03ff, 0x07ff, 0x27ff, 0x17ff, 0x57ff, 0x37ff,
0x77ff, 0x0fff, 0x4fff, 0x2fff, 0x6fff, 0x1fff, 0x5fff, 0x3fff, 0x7fff,
],
},
PrefixCode {
depths: [
4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 4, 5, 5, 5, 5, 5, 6, 6, 5, 6, 6, 7, 7,
7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 10, 11, 11, 12, 11, 12, 13, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
],
bits: [
0x0000, 0x0008, 0x0004, 0x000c, 0x0002, 0x000a, 0x000e, 0x001e, 0x0001, 0x0011, 0x0009,
0x0019, 0x0005, 0x001b, 0x003b, 0x0007, 0x0006, 0x0015, 0x000d, 0x001d, 0x0003, 0x0013,
0x0027, 0x0017, 0x000b, 0x0037, 0x000f, 0x002f, 0x006f, 0x001f, 0x005f, 0x00df, 0x003f,
0x00bf, 0x01bf, 0x007f, 0x027f, 0x017f, 0x00ff, 0x04ff, 0x037f, 0x02ff, 0x06ff, 0x05ff,
0x01ff, 0x0dff, 0x03ff, 0x13ff, 0x33ff, 0x0bff, 0x2bff, 0x1bff, 0x3bff, 0x07ff, 0x27ff,
0x17ff, 0x37ff, 0x0fff, 0x2fff, 0x6fff, 0x1fff, 0x5fff, 0x3fff, 0x7fff,
],
},
PrefixCode {
depths: [
5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 4, 4, 5, 5, 4, 4, 5, 5, 4, 5, 5, 5, 5,
6, 7, 7, 7, 8, 8, 9, 9, 9, 9, 10, 9, 10, 10, 11, 10, 12, 13, 13, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
],
bits: [
0x000a, 0x001a, 0x0006, 0x0016, 0x000e, 0x001e, 0x0001, 0x0011, 0x000b, 0x002b, 0x001b,
0x003b, 0x0007, 0x0027, 0x0017, 0x0037, 0x0000, 0x0008, 0x0009, 0x0019, 0x0004, 0x000c,
0x0005, 0x0015, 0x0002, 0x000d, 0x001d, 0x0003, 0x0013, 0x000f, 0x002f, 0x006f, 0x001f,
0x005f, 0x00df, 0x003f, 0x013f, 0x00bf, 0x01bf, 0x017f, 0x007f, 0x037f, 0x00ff, 0x01ff,
0x02ff, 0x05ff, 0x0dff, 0x1dff, 0x03ff, 0x23ff, 0x13ff, 0x33ff, 0x0bff, 0x2bff, 0x1bff,
0x3bff, 0x07ff, 0x27ff, 0x17ff, 0x37ff, 0x0fff, 0x2fff, 0x1fff, 0x3fff,
],
},
];
pub const NUM_AC_PREFIX_CODES: usize = 8;
pub const NUM_AC_CONTEXTS: usize = super::ac_context::NUM_AC_CONTEXTS;
#[rustfmt::skip]
pub static AC_CONTEXT_MAP: [u8; 1980] = [
0, 1, 2, 1, 3, 4, 2, 2, 0, 2, 5, 5, 2, 2, 5, 5, 0, 2, 5, 5, 3, 2, 5, 5, 0, 0, 5, 5, 3, 0, 5, 0, 0, 2, 5, 0, 3, 0, 5, 0, 3, 3, 5, 3, 3, 3, 0, 3, 3, 3, 0, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 3, 6, 3, 6, 6, 6, 3, 6, 6, 7, 3, 6, 3, 7, 3, 6, 3, 7, 3, 6, 3, 7, 3, 6, 3, 7, 3, 6, 6, 7, 3, 7, 6, 7, 3, 7, 6, 7, 3, 6, 6, 7, 3, 7, 6, 7, 0, 0, 6, 7, 0, 0, 6, 7, 0, 0, 6, 7, 0, 0, 6, 7, 0, 0, 6, 7, 0, 0, 6, 7, 0, 0, 0, 0, 0, 0,
0, 1, 1, 1, 1, 1, 4, 1, 4, 1, 1, 1, 4, 1, 4, 4, 1, 4, 1, 4, 1, 4, 1, 4, 4, 4, 1, 4, 1, 4, 4, 1, 1, 4, 1, 4, 1, 1, 1, 4, 1, 1, 1, 2, 1, 4, 1, 2, 1, 4, 1, 4, 1, 1, 1, 1, 4, 4, 4, 4, 2, 2, 0, 4, 4, 4, 1, 4, 4, 1, 4, 4, 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 2, 4, 4, 1, 4, 1, 2, 1, 4, 1, 1, 4, 2, 1, 2, 1, 4, 1, 4, 1, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 2, 2, 0, 4, 4, 2, 1, 4, 4, 4, 4, 4, 1, 2, 4, 4, 4, 4, 4, 4, 1, 2, 4, 4, 4, 4, 4, 4, 2, 4, 1, 2, 1, 4, 4, 4, 4, 2, 1, 4, 4, 4, 4, 4, 1, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 5, 2, 0, 2, 4, 4, 2, 4, 2, 2, 4, 1, 2, 4, 4, 2, 4, 1, 2, 1, 0, 4, 2, 4, 4, 4, 4, 1, 2, 1, 2, 4, 4, 4, 4, 1, 2, 4, 4, 4, 4, 4, 2, 1, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 5, 5, 2, 0, 0, 2, 4, 0, 2, 2, 0, 2, 1, 2, 4, 2, 2, 2, 4, 2, 4, 4, 4, 2, 2, 4, 2, 4, 2, 2, 1, 0, 4, 2, 4, 4, 4, 2, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 5, 5, 5, 2, 0, 2, 0, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 4, 4, 4, 2, 2, 2, 4, 4, 4, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 0, 2, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 2, 0, 2, 5, 5, 0, 5, 0, 5, 0, 0, 0, 7, 0, 0, 7, 0, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 7, 0, 7, 0, 3, 0, 7, 3, 7, 3, 7, 0, 3, 0, 3, 3, 3, 0, 3, 0, 0, 0, 3, 3, 3, 0, 0, 0, 0, 0, 3,
4, 4, 1, 1, 4, 4, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 1, 4, 4, 1, 4, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 4, 4, 4, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 2, 4, 1, 4, 1, 4, 2, 4, 1, 4, 1, 4, 4, 1, 2, 4, 1, 4, 1, 1, 1, 4, 4, 4, 2, 2, 1, 1, 1, 4, 4, 2, 1, 1, 1, 1, 4, 4, 1, 4, 1, 1, 1, 4, 1, 4, 1, 4, 1, 1, 1, 1, 1, 1, 4, 4, 4, 2, 4, 2, 4, 4, 5, 2, 1, 1, 4, 1, 2, 2, 1, 1, 1, 4, 4, 4, 2, 2, 1, 1, 1, 4, 1, 1, 4, 2, 4, 5, 1, 1, 1, 4, 4, 2, 1, 1, 1, 1, 4, 4, 4, 2, 1, 1, 4, 4, 1, 4, 1, 4, 1, 4, 4, 4, 4, 4, 4, 2, 2, 2, 0, 4, 2, 2, 2, 0, 1, 4, 2, 5, 2, 0, 1, 4, 1, 4, 2, 2, 4, 5, 4, 4, 1, 1, 4, 4, 4, 2, 4, 2, 4, 4, 1, 4, 2, 0, 4, 4, 1, 4, 4, 4, 4, 2, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 3, 2, 5, 2, 0, 0, 4, 4, 2, 2, 4, 0, 4, 4, 4, 4, 2, 2, 4, 0, 4, 4, 1, 4, 4, 4, 2, 2, 4, 0, 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 5, 5, 7, 2, 0, 5, 5, 0, 4, 2, 2, 2, 4, 2, 4, 4, 4, 4, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 5, 5, 5, 0, 5, 2, 5, 2, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 4, 4, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 2, 5, 2, 5, 2, 5, 5, 5, 5, 5, 7, 7, 0, 7, 5, 7, 5, 7, 0, 7, 5, 7, 5, 7, 5, 3, 0, 7, 0, 3, 0, 3, 5, 0, 0, 3, 0, 3, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 3, 3,
0, 1, 4, 4, 1, 1, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 0, 4, 4, 2, 1, 1, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 0, 2, 2, 2, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 1, 4, 1, 1, 1, 4, 4, 4, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 2, 0, 2, 5, 4, 4, 2, 2, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 0, 2, 5, 4, 2, 2, 2, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 5, 0, 2, 5, 4, 2, 2, 2, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 5, 0, 2, 5, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 4, 2, 4, 4, 4, 2, 4, 2, 4, 2, 4, 2, 4, 4, 4, 2, 4, 2, 4, 4, 4, 4, 4, 2, 4, 2, 4, 4, 4, 2, 2, 2, 2, 5, 0, 0, 0, 0, 2, 0, 2, 5, 2, 5, 2, 5, 2, 2, 2, 5, 2, 5, 2, 5, 2, 2, 2, 5, 2, 5, 2, 5, 2, 5, 2, 2, 2, 2, 2, 2, 5, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 2, 2, 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 1, 4, 1, 4, 4, 4, 1, 1, 4, 4, 1, 1, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 5, 5, 2, 2, 2, 2, 4, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 0, 0, 0, 0, 0, 5, 2, 5, 2, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 2, 4, 2, 2, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ];
pub static AC_PREFIX_CODES: [PrefixCode; NUM_AC_PREFIX_CODES] = [
PrefixCode {
depths: [
4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 5, 5, 4, 5, 6, 6, 6, 7, 9, 9, 9,
11, 12, 13, 13, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
],
bits: [
0x0000, 0x0008, 0x0004, 0x000c, 0x0002, 0x0001, 0x0011, 0x0009, 0x0019, 0x0005, 0x0015,
0x000d, 0x001d, 0x0003, 0x0013, 0x000b, 0x000a, 0x0006, 0x001b, 0x0007, 0x000e, 0x0017,
0x000f, 0x002f, 0x001f, 0x003f, 0x007f, 0x017f, 0x00ff, 0x01ff, 0x05ff, 0x0dff, 0x1dff,
0x03ff, 0x23ff, 0x63ff, 0x13ff, 0x53ff, 0x33ff, 0x73ff, 0x0bff, 0x4bff, 0x2bff, 0x6bff,
0x1bff, 0x5bff, 0x3bff, 0x7bff, 0x07ff, 0x47ff, 0x27ff, 0x67ff, 0x17ff, 0x57ff, 0x37ff,
0x77ff, 0x0fff, 0x4fff, 0x2fff, 0x6fff, 0x1fff, 0x5fff, 0x3fff, 0x7fff,
],
},
PrefixCode {
depths: [
1, 2, 3, 5, 4, 6, 7, 9, 9, 11, 11, 12, 12, 12, 13, 13, 12, 12, 14, 15, 14, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
],
bits: [
0x0000, 0x0001, 0x0003, 0x000f, 0x0007, 0x001f, 0x003f, 0x007f, 0x017f, 0x00ff, 0x04ff,
0x02ff, 0x0aff, 0x06ff, 0x09ff, 0x19ff, 0x0eff, 0x01ff, 0x05ff, 0x15ff, 0x25ff, 0x55ff,
0x35ff, 0x75ff, 0x0dff, 0x4dff, 0x2dff, 0x6dff, 0x1dff, 0x5dff, 0x3dff, 0x7dff, 0x03ff,
0x43ff, 0x23ff, 0x63ff, 0x13ff, 0x53ff, 0x33ff, 0x73ff, 0x0bff, 0x4bff, 0x2bff, 0x6bff,
0x1bff, 0x5bff, 0x3bff, 0x7bff, 0x07ff, 0x47ff, 0x27ff, 0x67ff, 0x17ff, 0x57ff, 0x37ff,
0x77ff, 0x0fff, 0x4fff, 0x2fff, 0x6fff, 0x1fff, 0x5fff, 0x3fff, 0x7fff,
],
},
PrefixCode {
depths: [
2, 3, 3, 4, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 6, 7, 8, 8, 8, 10, 11, 12, 11, 12, 13,
13, 13, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
],
bits: [
0x0000, 0x0002, 0x0006, 0x0005, 0x0001, 0x000d, 0x0003, 0x000b, 0x001b, 0x0007, 0x0027,
0x0017, 0x0037, 0x002f, 0x006f, 0x001f, 0x000f, 0x005f, 0x003f, 0x00bf, 0x007f, 0x00ff,
0x02ff, 0x01ff, 0x06ff, 0x09ff, 0x05ff, 0x15ff, 0x0dff, 0x1dff, 0x3dff, 0x7dff, 0x03ff,
0x43ff, 0x23ff, 0x63ff, 0x13ff, 0x53ff, 0x33ff, 0x73ff, 0x0bff, 0x4bff, 0x2bff, 0x6bff,
0x1bff, 0x5bff, 0x3bff, 0x7bff, 0x07ff, 0x47ff, 0x27ff, 0x67ff, 0x17ff, 0x57ff, 0x37ff,
0x77ff, 0x0fff, 0x4fff, 0x2fff, 0x6fff, 0x1fff, 0x5fff, 0x3fff, 0x7fff,
],
},
PrefixCode {
depths: [
5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 5, 6, 6, 6, 6, 6, 4, 4, 4, 4, 4, 4, 5, 5, 4, 5, 6, 6, 6,
7, 8, 10, 10, 11, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
],
bits: [
0x000e, 0x001e, 0x0001, 0x0011, 0x0009, 0x0019, 0x0005, 0x0015, 0x000d, 0x001b, 0x001d,
0x003b, 0x0007, 0x0027, 0x0017, 0x0037, 0x0000, 0x0008, 0x0004, 0x000c, 0x0002, 0x000a,
0x0003, 0x0013, 0x0006, 0x000b, 0x000f, 0x002f, 0x001f, 0x003f, 0x007f, 0x00ff, 0x02ff,
0x01ff, 0x05ff, 0x15ff, 0x35ff, 0x0dff, 0x2dff, 0x1dff, 0x3dff, 0x03ff, 0x23ff, 0x13ff,
0x33ff, 0x0bff, 0x2bff, 0x1bff, 0x3bff, 0x07ff, 0x27ff, 0x67ff, 0x17ff, 0x57ff, 0x37ff,
0x77ff, 0x0fff, 0x4fff, 0x2fff, 0x6fff, 0x1fff, 0x5fff, 0x3fff, 0x7fff,
],
},
PrefixCode {
depths: [
1, 3, 2, 5, 4, 7, 7, 8, 8, 9, 9, 11, 11, 12, 12, 12, 11, 12, 14, 15, 14, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
],
bits: [
0x0000, 0x0003, 0x0001, 0x000f, 0x0007, 0x001f, 0x005f, 0x003f, 0x00bf, 0x007f, 0x017f,
0x00ff, 0x04ff, 0x06ff, 0x0eff, 0x01ff, 0x02ff, 0x09ff, 0x05ff, 0x15ff, 0x25ff, 0x55ff,
0x35ff, 0x75ff, 0x0dff, 0x4dff, 0x2dff, 0x6dff, 0x1dff, 0x5dff, 0x3dff, 0x7dff, 0x03ff,
0x43ff, 0x23ff, 0x63ff, 0x13ff, 0x53ff, 0x33ff, 0x73ff, 0x0bff, 0x4bff, 0x2bff, 0x6bff,
0x1bff, 0x5bff, 0x3bff, 0x7bff, 0x07ff, 0x47ff, 0x27ff, 0x67ff, 0x17ff, 0x57ff, 0x37ff,
0x77ff, 0x0fff, 0x4fff, 0x2fff, 0x6fff, 0x1fff, 0x5fff, 0x3fff, 0x7fff,
],
},
PrefixCode {
depths: [
3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 4, 5, 5, 6, 6, 7, 9, 9, 10, 11, 12, 12,
12, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
],
bits: [
0x0000, 0x0004, 0x000c, 0x0002, 0x000a, 0x0006, 0x000e, 0x0001, 0x0009, 0x000d, 0x001d,
0x0003, 0x0013, 0x000b, 0x001b, 0x000f, 0x0005, 0x0007, 0x0017, 0x002f, 0x001f, 0x003f,
0x007f, 0x017f, 0x00ff, 0x02ff, 0x06ff, 0x0eff, 0x01ff, 0x09ff, 0x29ff, 0x19ff, 0x39ff,
0x05ff, 0x25ff, 0x15ff, 0x35ff, 0x0dff, 0x2dff, 0x1dff, 0x3dff, 0x03ff, 0x23ff, 0x13ff,
0x33ff, 0x0bff, 0x2bff, 0x1bff, 0x3bff, 0x07ff, 0x27ff, 0x67ff, 0x17ff, 0x57ff, 0x37ff,
0x77ff, 0x0fff, 0x4fff, 0x2fff, 0x6fff, 0x1fff, 0x5fff, 0x3fff, 0x7fff,
],
},
PrefixCode {
depths: [
9, 13, 13, 14, 13, 14, 13, 13, 13, 12, 12, 12, 11, 12, 11, 12, 10, 9, 8, 6, 5, 3, 2, 1,
4, 9, 11, 12, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
],
bits: [
0x00bf, 0x01ff, 0x11ff, 0x0dff, 0x09ff, 0x2dff, 0x19ff, 0x05ff, 0x15ff, 0x04ff, 0x0cff,
0x02ff, 0x037f, 0x0aff, 0x077f, 0x06ff, 0x017f, 0x01bf, 0x003f, 0x001f, 0x000f, 0x0003,
0x0001, 0x0000, 0x0007, 0x007f, 0x00ff, 0x0eff, 0x1dff, 0x5dff, 0x3dff, 0x7dff, 0x03ff,
0x43ff, 0x23ff, 0x63ff, 0x13ff, 0x53ff, 0x33ff, 0x73ff, 0x0bff, 0x4bff, 0x2bff, 0x6bff,
0x1bff, 0x5bff, 0x3bff, 0x7bff, 0x07ff, 0x47ff, 0x27ff, 0x67ff, 0x17ff, 0x57ff, 0x37ff,
0x77ff, 0x0fff, 0x4fff, 0x2fff, 0x6fff, 0x1fff, 0x5fff, 0x3fff, 0x7fff,
],
},
PrefixCode {
depths: [
5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 5, 5, 5, 5, 4, 5, 5, 5, 4, 4, 4, 5, 4,
5, 5, 6, 5, 6, 7, 8, 8, 8, 10, 10, 11, 12, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
],
bits: [
0x000a, 0x001a, 0x0006, 0x0003, 0x0023, 0x0013, 0x0033, 0x000b, 0x002b, 0x001b, 0x003b,
0x0007, 0x0027, 0x0017, 0x0037, 0x001f, 0x0016, 0x000e, 0x001e, 0x0001, 0x0000, 0x0011,
0x0009, 0x0019, 0x0008, 0x0004, 0x000c, 0x0005, 0x0002, 0x0015, 0x000d, 0x000f, 0x001d,
0x002f, 0x005f, 0x003f, 0x00bf, 0x007f, 0x00ff, 0x02ff, 0x01ff, 0x05ff, 0x0dff, 0x1dff,
0x3dff, 0x03ff, 0x23ff, 0x13ff, 0x33ff, 0x0bff, 0x2bff, 0x1bff, 0x3bff, 0x07ff, 0x27ff,
0x17ff, 0x37ff, 0x0fff, 0x2fff, 0x6fff, 0x1fff, 0x5fff, 0x3fff, 0x7fff,
],
},
];
pub fn get_dc_entropy_code() -> crate::entropy_coding::encode::EntropyCode<'static> {
crate::entropy_coding::encode::EntropyCode::new(&DC_CONTEXT_MAP, &DC_PREFIX_CODES)
}
pub fn get_ac_entropy_code() -> crate::entropy_coding::encode::EntropyCode<'static> {
crate::entropy_coding::encode::EntropyCode::new(&AC_CONTEXT_MAP, &AC_PREFIX_CODES)
}