diff --git a/include/aspeed/JTABLES.H b/include/aspeed/JTABLES.H
new file mode 100644
index 0000000..24e9c55
--- /dev/null
+++ b/include/aspeed/JTABLES.H
@@ -0,0 +1,303 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+static unsigned char zigzag[64] = {
+    0,  1,  5,  6,  14, 15, 27, 28, 2,  4,  7,  13, 16, 26, 29, 42,
+    3,  8,  12, 17, 25, 30, 41, 43, 9,  11, 18, 24, 31, 40, 44, 53,
+    10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60,
+    21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63};
+
+static unsigned char dezigzag[64 + 15] = {
+    0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40,
+    48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36,
+    29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61,
+    54, 47, 55, 62, 63,
+    // let corrupt input sample past end
+    63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63};
+
+static unsigned char *std_luminance_qt;
+static unsigned char *std_chrominance_qt;
+
+// Standard Huffman tables (cf. JPEG standard section K.3) */
+
+static unsigned char std_dc_luminance_nrcodes[17] = {0, 0, 1, 5, 1, 1, 1, 1, 1,
+                                                     1, 0, 0, 0, 0, 0, 0, 0};
+static unsigned char std_dc_luminance_values[12] = {0, 1, 2, 3, 4,  5,
+                                                    6, 7, 8, 9, 10, 11};
+
+static unsigned char std_dc_chrominance_nrcodes[17] = {
+    0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0};
+static unsigned char std_dc_chrominance_values[12] = {0, 1, 2, 3, 4,  5,
+                                                      6, 7, 8, 9, 10, 11};
+
+static unsigned char std_ac_luminance_nrcodes[17] = {
+    0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 0x7d};
+static unsigned char std_ac_luminance_values[162] = {
+    0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, 0x41, 0x06,
+    0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xa1, 0x08,
+    0x23, 0x42, 0xb1, 0xc1, 0x15, 0x52, 0xd1, 0xf0, 0x24, 0x33, 0x62, 0x72,
+    0x82, 0x09, 0x0a, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x25, 0x26, 0x27, 0x28,
+    0x29, 0x2a, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44, 0x45,
+    0x46, 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
+    0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x73, 0x74, 0x75,
+    0x76, 0x77, 0x78, 0x79, 0x7a, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89,
+    0x8a, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3,
+    0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6,
+    0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9,
+    0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe1, 0xe2,
+    0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf1, 0xf2, 0xf3, 0xf4,
+    0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa};
+
+static unsigned char std_ac_chrominance_nrcodes[17] = {
+    0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 0x77};
+static unsigned char std_ac_chrominance_values[162] = {
+    0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12, 0x41,
+    0x51, 0x07, 0x61, 0x71, 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91,
+    0xa1, 0xb1, 0xc1, 0x09, 0x23, 0x33, 0x52, 0xf0, 0x15, 0x62, 0x72, 0xd1,
+    0x0a, 0x16, 0x24, 0x34, 0xe1, 0x25, 0xf1, 0x17, 0x18, 0x19, 0x1a, 0x26,
+    0x27, 0x28, 0x29, 0x2a, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44,
+    0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
+    0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x73, 0x74,
+    0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+    0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a,
+    0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4,
+    0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
+    0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda,
+    0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf2, 0xf3, 0xf4,
+    0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa};
+
+unsigned short int DC_LUMINANCE_HUFFMANCODE[13 * 2] = {
+    /* 0 */ 0x0000,  0,
+    /* 1 */ 0x4000,  2,
+    /* 2 */ 0x6000,  3,
+    /* 3 */ 0x8000,  3,
+    /* 4 */ 0xA000,  3,
+    /* 5 */ 0xC000,  3,
+    /* 6 */ 0xE000,  3,
+    /* 7 */ 0xF000,  4,
+    /* 8 */ 0xF800,  5,
+    /* 9 */ 0xFC00,  6,
+    /* 10 */ 0xFE00, 7,
+    /* 11 */ 0xFF00, 8,
+    /* 12 */ 0xFFFF, 9,
+};
+
+unsigned short int DC_CHROMINANCE_HUFFMANCODE[13 * 2] = {
+    /* 0 */ 0x0000,  0,
+    /* 1 */ 0x4000,  2,
+    /* 2 */ 0x8000,  2,
+    /* 3 */ 0xC000,  2,
+    /* 4 */ 0xE000,  3,
+    /* 5 */ 0xF000,  4,
+    /* 6 */ 0xF800,  5,
+    /* 7 */ 0xFC00,  6,
+    /* 8 */ 0xFE00,  7,
+    /* 9 */ 0xFF00,  8,
+    /* 10 */ 0xFF80, 9,
+    /* 11 */ 0xFFC0, 10,
+    /* 12 */ 0xFFFF, 11,
+};
+
+unsigned short int AC_LUMINANCE_HUFFMANCODE[39 * 2] = {
+    /* 0 */ 0x0000,  0,
+    /* 1 */ 0x4000,  2,
+    /* 2 */ 0x8000,  2,
+    /* 3 */ 0xA000,  3,
+    /* 4 */ 0xB000,  4,
+    /* 5 */ 0xC000,  4,
+    /* 6 */ 0xD000,  4,
+    /* 7 */ 0xD800,  5,
+    /* 8 */ 0xE000,  5,
+    /* 9 */ 0xE800,  5,
+    /* 10 */ 0xEC00, 6,
+    /* 11 */ 0xF000, 6,
+    /* 12 */ 0xF200, 7,
+    /* 13 */ 0xF400, 7,
+    /* 14 */ 0xF600, 7,
+    /* 15 */ 0xF800, 7,
+    /* 16 */ 0xF900, 8,
+    /* 17 */ 0xFA00, 8,
+    /* 18 */ 0xFB00, 8,
+    /* 19 */ 0xFB80, 9,
+    /* 20 */ 0xFC00, 9,
+    /* 21 */ 0xFC80, 9,
+    /* 22 */ 0xFD00, 9,
+    /* 23 */ 0xFD80, 9,
+    /* 24 */ 0xFDC0, 10,
+    /* 25 */ 0xFE00, 10,
+    /* 26 */ 0xFE40, 10,
+    /* 27 */ 0xFE80, 10,
+    /* 28 */ 0xFEC0, 10,
+    /* 29 */ 0xFEE0, 11,
+    /* 30 */ 0xFF00, 11,
+    /* 31 */ 0xFF20, 11,
+    /* 32 */ 0xFF40, 11,
+    /* 33 */ 0xFF50, 12,
+    /* 34 */ 0xFF60, 12,
+    /* 35 */ 0xFF70, 12,
+    /* 36 */ 0xFF80, 12,
+    /* 37 */ 0xFF82, 15,
+    /* 38 */ 0xFFFF, 16,
+};
+
+unsigned short int AC_CHROMINANCE_HUFFMANCODE[45 * 2] = {
+    /* 0 */ 0x0000,  0,
+    /* 1 */ 0x4000,  2,
+    /* 2 */ 0x8000,  2,
+    /* 3 */ 0xA000,  3,
+    /* 4 */ 0xB000,  4,
+    /* 5 */ 0xC000,  4,
+    /* 6 */ 0xC800,  5,
+    /* 7 */ 0xD000,  5,
+    /* 8 */ 0xD800,  5,
+    /* 9 */ 0xE000,  5,
+    /* 10 */ 0xE400, 6,
+    /* 11 */ 0xE800, 6,
+    /* 12 */ 0xEC00, 6,
+    /* 13 */ 0xF000, 6,
+    /* 14 */ 0xF200, 7,
+    /* 15 */ 0xF400, 7,
+    /* 16 */ 0xF600, 7,
+    /* 17 */ 0xF700, 8,
+    /* 18 */ 0xF800, 8,
+    /* 19 */ 0xF900, 8,
+    /* 20 */ 0xFA00, 8,
+    /* 21 */ 0xFA80, 9,
+    /* 22 */ 0xFB00, 9,
+    /* 23 */ 0xFB80, 9,
+    /* 24 */ 0xFC00, 9,
+    /* 25 */ 0xFC80, 9,
+    /* 26 */ 0xFD00, 9,
+    /* 27 */ 0xFD80, 9,
+    /* 28 */ 0xFDC0, 10,
+    /* 29 */ 0xFE00, 10,
+    /* 30 */ 0xFE40, 10,
+    /* 31 */ 0xFE80, 10,
+    /* 32 */ 0xFEC0, 10,
+    /* 33 */ 0xFEE0, 11,
+    /* 34 */ 0xFF00, 11,
+    /* 35 */ 0xFF20, 11,
+    /* 36 */ 0xFF40, 11,
+    /* 37 */ 0xFF50, 12,
+    /* 38 */ 0xFF60, 12,
+    /* 39 */ 0xFF70, 12,
+    /* 40 */ 0xFF80, 12,
+    /* 41 */ 0xFF84, 14,
+    /* 42 */ 0xFF86, 15,
+    /* 43 */ 0xFF88, 15,
+    /* 44 */ 0xFFFF, 16,
+};
+
+//[100]=========================
+static unsigned char Tbl_100Y[64] = {
+    2, 1, 1, 2,  3,  5,  6,  7,  1, 1,  1,  2,  3,  7,  7,  6,
+    1, 1, 2, 3,  5,  7,  8,  7,  1, 2,  2,  3,  6,  10, 10, 7,
+    2, 2, 4, 7,  8,  13, 12, 9,  3, 4,  6,  8,  10, 13, 14, 11,
+    6, 8, 9, 10, 12, 15, 15, 12, 9, 11, 11, 12, 14, 12, 12, 12};
+static unsigned char Tbl_100UV[64] = {
+    3,  3,  4,  8,  18, 18, 18, 18, 3,  3,  4,  12, 18, 18, 18, 18,
+    4,  4,  10, 18, 18, 18, 18, 18, 8,  12, 18, 18, 18, 18, 18, 18,
+    18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+    18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18};
+
+//[086]=========================
+static unsigned char Tbl_086Y[64] = {
+    3, 2,  1,  3,  4,  7,  9,  11, 2,  2,  2,  3,  4,  10, 11, 10,
+    2, 2,  3,  4,  7,  10, 12, 10, 2,  3,  4,  5,  9,  16, 15, 11,
+    3, 4,  6,  10, 12, 20, 19, 14, 4,  6,  10, 12, 15, 19, 21, 17,
+    9, 12, 14, 16, 19, 22, 22, 18, 13, 17, 17, 18, 21, 18, 19, 18};
+static unsigned char Tbl_086UV[64] = {
+    4,  5,  6,  13, 27, 27, 27, 27, 5,  5,  7,  18, 27, 27, 27, 27,
+    6,  7,  15, 27, 27, 27, 27, 27, 13, 18, 27, 27, 27, 27, 27, 27,
+    27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+    27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27};
+
+//[071]=========================
+static unsigned char Tbl_071Y[64] = {
+    6,  4,  3,  6,  9,  15, 19, 22, 4,  4,  5,  7,  9,  21, 22, 20,
+    5,  4,  6,  9,  15, 21, 25, 21, 5,  6,  8,  10, 19, 32, 30, 23,
+    6,  8,  13, 21, 25, 40, 38, 28, 9,  13, 20, 24, 30, 39, 42, 34,
+    18, 24, 29, 32, 38, 45, 45, 37, 27, 34, 35, 36, 42, 37, 38, 37};
+static unsigned char Tbl_071UV[64] = {
+    9,  10, 13, 26, 55, 55, 55, 55, 10, 11, 14, 37, 55, 55, 55, 55,
+    13, 14, 31, 55, 55, 55, 55, 55, 26, 37, 55, 55, 55, 55, 55, 55,
+    55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+    55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55};
+//[057]=========================
+static unsigned char Tbl_057Y[64] = {
+    9,  6,  5,  9,  13, 22, 28, 34, 6,  6,  7,  10, 14, 32, 33, 30,
+    7,  7,  9,  13, 22, 32, 38, 31, 7,  9,  12, 16, 28, 48, 45, 34,
+    10, 12, 20, 31, 38, 61, 57, 43, 13, 19, 30, 36, 45, 58, 63, 51,
+    27, 36, 43, 48, 57, 68, 67, 56, 40, 51, 53, 55, 63, 56, 57, 55};
+static unsigned char Tbl_057UV[64] = {
+    13, 14, 19, 38, 80, 80, 80, 80, 14, 17, 21, 53, 80, 80, 80, 80,
+    19, 21, 45, 80, 80, 80, 80, 80, 38, 53, 80, 80, 80, 80, 80, 80,
+    80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
+    80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80};
+
+//[043]=========================
+static unsigned char Tbl_043Y[64] = {
+    11, 7,  7,  11, 17, 28, 36, 43, 8,  8,  10, 13, 18, 41, 43, 39,
+    10, 9,  11, 17, 28, 40, 49, 40, 10, 12, 15, 20, 36, 62, 57, 44,
+    12, 15, 26, 40, 48, 78, 74, 55, 17, 25, 39, 46, 58, 74, 81, 66,
+    35, 46, 56, 62, 74, 86, 86, 72, 51, 66, 68, 70, 80, 71, 74, 71};
+static unsigned char Tbl_043UV[64] = {
+    18,  19,  26,  51,  108, 108, 108, 108, 19,  22,  28,  72,  108,
+    108, 108, 108, 26,  28,  61,  108, 108, 108, 108, 108, 51,  72,
+    108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+    108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+    108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108};
+
+//[029]=========================
+static unsigned char Tbl_029Y[64] = {
+    14, 9,  9,  14, 21, 36,  46,  55, 10, 10, 12, 17, 23,  52, 54,  49,
+    12, 11, 14, 21, 36, 51,  62,  50, 12, 15, 19, 26, 46,  78, 72,  56,
+    16, 19, 33, 50, 61, 98,  93,  69, 21, 31, 49, 58, 73,  94, 102, 83,
+    44, 58, 70, 78, 93, 109, 108, 91, 65, 83, 86, 88, 101, 90, 93,  89};
+static unsigned char Tbl_029UV[64] = {
+    22,  24,  32,  63,  133, 133, 133, 133, 24,  28,  34,  88,  133,
+    133, 133, 133, 32,  34,  75,  133, 133, 133, 133, 133, 63,  88,
+    133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+    133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+    133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133};
+
+//[014]=========================
+static unsigned char Tbl_014Y[64] = {
+    17, 12, 10, 17, 26,  43,  55,  66,  13, 13,  15,  20,  28,  63,  65,  60,
+    15, 14, 17, 26, 43,  62,  75,  61,  15, 18,  24,  31,  55,  95,  87,  67,
+    19, 24, 40, 61, 74,  119, 112, 84,  26, 38,  60,  70,  88,  113, 123, 100,
+    53, 70, 85, 95, 112, 132, 131, 110, 78, 100, 103, 107, 122, 109, 112, 108};
+static unsigned char Tbl_014UV[64] = {
+    27,  29,  39,  76,  160, 160, 160, 160, 29,  34,  42,  107, 160,
+    160, 160, 160, 39,  42,  91,  160, 160, 160, 160, 160, 76,  107,
+    160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
+    160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
+    160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160};
+//[000]=========================
+static unsigned char Tbl_000Y[64] = {
+    20, 13, 12, 20,  30,  50,  63,  76,  15, 15,  17,  23,  32,  72,  75,  68,
+    17, 16, 20, 30,  50,  71,  86,  70,  17, 21,  27,  36,  63,  108, 100, 77,
+    22, 27, 46, 70,  85,  136, 128, 96,  30, 43,  68,  80,  101, 130, 141, 115,
+    61, 80, 97, 108, 128, 151, 150, 126, 90, 115, 118, 122, 140, 125, 128, 123};
+static unsigned char Tbl_000UV[64] = {
+    31,  33,  45,  88,  185, 185, 185, 185, 33,  39,  48,  123, 185,
+    185, 185, 185, 45,  48,  105, 185, 185, 185, 185, 185, 88,  123,
+    185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
+    185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
+    185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185};
+
+typedef struct {
+  unsigned char Length[17];  // k =1-16 ; L[k] indicates the number of Huffman
+                             // codes of length k
+  unsigned short int minor_code[17];  // indicates the value of the smallest
+                                      // Huffman code of length k
+  unsigned short int major_code[17];  // similar, but the highest code
+  unsigned char V[65536];  // V[k][j] = Value associated to the j-th Huffman
+                           // code of length k
+                           // High nibble = nr of previous 0 coefficients
+  // Low nibble = size (in bits) of the coefficient which will be taken from the
+  // data stream
+  unsigned char Len[65536];
+} Huffman_table;
