j2k-metal 0.10.0

Metal decoder and encode-stage adapter for j2k
Documentation
constant uchar2 SIGN_CONTEXT_LOOKUP[256] = {
    uchar2(9,0), uchar2(10,0), uchar2(10,1), uchar2(0,0), uchar2(12,0), uchar2(13,0), uchar2(11,0), uchar2(0,0),
    uchar2(12,1), uchar2(11,1), uchar2(13,1), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
    uchar2(12,0), uchar2(13,0), uchar2(11,0), uchar2(0,0), uchar2(12,0), uchar2(13,0), uchar2(11,0), uchar2(0,0),
    uchar2(9,0), uchar2(10,0), uchar2(10,1), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
    uchar2(12,1), uchar2(11,1), uchar2(13,1), uchar2(0,0), uchar2(9,0), uchar2(10,0), uchar2(10,1), uchar2(0,0),
    uchar2(12,1), uchar2(11,1), uchar2(13,1), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
    uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
    uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
    uchar2(10,0), uchar2(10,0), uchar2(9,0), uchar2(0,0), uchar2(13,0), uchar2(13,0), uchar2(12,0), uchar2(0,0),
    uchar2(11,1), uchar2(11,1), uchar2(12,1), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
    uchar2(13,0), uchar2(13,0), uchar2(12,0), uchar2(0,0), uchar2(13,0), uchar2(13,0), uchar2(12,0), uchar2(0,0),
    uchar2(10,0), uchar2(10,0), uchar2(9,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
    uchar2(11,1), uchar2(11,1), uchar2(12,1), uchar2(0,0), uchar2(10,0), uchar2(10,0), uchar2(9,0), uchar2(0,0),
    uchar2(11,1), uchar2(11,1), uchar2(12,1), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
    uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
    uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
    uchar2(10,1), uchar2(9,0), uchar2(10,1), uchar2(0,0), uchar2(11,0), uchar2(12,0), uchar2(11,0), uchar2(0,0),
    uchar2(13,1), uchar2(12,1), uchar2(13,1), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
    uchar2(11,0), uchar2(12,0), uchar2(11,0), uchar2(0,0), uchar2(11,0), uchar2(12,0), uchar2(11,0), uchar2(0,0),
    uchar2(10,1), uchar2(9,0), uchar2(10,1), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
    uchar2(13,1), uchar2(12,1), uchar2(13,1), uchar2(0,0), uchar2(10,1), uchar2(9,0), uchar2(10,1), uchar2(0,0),
    uchar2(13,1), uchar2(12,1), uchar2(13,1), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
    uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
    uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
    uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
    uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
    uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
    uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
    uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
    uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0), uchar2(0,0),
};

constant uchar ZERO_CTX_LL_LH_LOOKUP[256] = {
    0,3,1,3,5,7,6,7,1,3,2,3,6,7,6,7,5,7,6,7,8,8,8,8,6,7,6,7,8,8,8,8,
    1,3,2,3,6,7,6,7,2,3,2,3,6,7,6,7,6,7,6,7,8,8,8,8,6,7,6,7,8,8,8,8,
    3,4,3,4,7,7,7,7,3,4,3,4,7,7,7,7,7,7,7,7,8,8,8,8,7,7,7,7,8,8,8,8,
    3,4,3,4,7,7,7,7,3,4,3,4,7,7,7,7,7,7,7,7,8,8,8,8,7,7,7,7,8,8,8,8,
    1,3,2,3,6,7,6,7,2,3,2,3,6,7,6,7,6,7,6,7,8,8,8,8,6,7,6,7,8,8,8,8,
    2,3,2,3,6,7,6,7,2,3,2,3,6,7,6,7,6,7,6,7,8,8,8,8,6,7,6,7,8,8,8,8,
    3,4,3,4,7,7,7,7,3,4,3,4,7,7,7,7,7,7,7,7,8,8,8,8,7,7,7,7,8,8,8,8,
    3,4,3,4,7,7,7,7,3,4,3,4,7,7,7,7,7,7,7,7,8,8,8,8,7,7,7,7,8,8,8,8,
};

constant uchar ZERO_CTX_HL_LOOKUP[256] = {
    0,5,1,6,3,7,3,7,1,6,2,6,3,7,3,7,3,7,3,7,4,7,4,7,3,7,3,7,4,7,4,7,
    1,6,2,6,3,7,3,7,2,6,2,6,3,7,3,7,3,7,3,7,4,7,4,7,3,7,3,7,4,7,4,7,
    5,8,6,8,7,8,7,8,6,8,6,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,
    6,8,6,8,7,8,7,8,6,8,6,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,
    1,6,2,6,3,7,3,7,2,6,2,6,3,7,3,7,3,7,3,7,4,7,4,7,3,7,3,7,4,7,4,7,
    2,6,2,6,3,7,3,7,2,6,2,6,3,7,3,7,3,7,3,7,4,7,4,7,3,7,3,7,4,7,4,7,
    6,8,6,8,7,8,7,8,6,8,6,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,
    6,8,6,8,7,8,7,8,6,8,6,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,
};

constant uchar ZERO_CTX_HH_LOOKUP[256] = {
    0,1,3,4,1,2,4,5,3,4,6,7,4,5,7,7,1,2,4,5,2,2,5,5,4,5,7,7,5,5,7,7,
    3,4,6,7,4,5,7,7,6,7,8,8,7,7,8,8,4,5,7,7,5,5,7,7,7,7,8,8,7,7,8,8,
    1,2,4,5,2,2,5,5,4,5,7,7,5,5,7,7,2,2,5,5,2,2,5,5,5,5,7,7,5,5,7,7,
    4,5,7,7,5,5,7,7,7,7,8,8,7,7,8,8,5,5,7,7,5,5,7,7,7,7,8,8,7,7,8,8,
    3,4,6,7,4,5,7,7,6,7,8,8,7,7,8,8,4,5,7,7,5,5,7,7,7,7,8,8,7,7,8,8,
    6,7,8,8,7,7,8,8,8,8,8,8,8,8,8,8,7,7,8,8,7,7,8,8,8,8,8,8,8,8,8,8,
    4,5,7,7,5,5,7,7,7,7,8,8,7,7,8,8,5,5,7,7,5,5,7,7,7,7,8,8,7,7,8,8,
    7,7,8,8,7,7,8,8,8,8,8,8,8,8,8,8,7,7,8,8,7,7,8,8,8,8,8,8,8,8,8,8,
};