X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=decoder.shader;h=09027915633af93b69a883039836bdecc16f8df2;hb=34138d5b1a1302a7a1050fd46d2fb95c0186140a;hp=8b772c70fbefdd228ce6be25c6faff7ae1cea045;hpb=1a55483ea3ab21212525a42dd154af970c71baa9;p=narabu diff --git a/decoder.shader b/decoder.shader index 8b772c7..0902791 100644 --- a/decoder.shader +++ b/decoder.shader @@ -40,6 +40,16 @@ const uint ff_zigzag_direct[64] = { 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63 }; +const uint stream_mapping[64] = { + 0, 0, 1, 1, 2, 2, 3, 3, + 0, 0, 1, 2, 2, 2, 3, 3, + 1, 1, 2, 2, 2, 3, 3, 3, + 1, 1, 2, 2, 2, 3, 3, 3, + 1, 2, 2, 2, 2, 3, 3, 3, + 2, 2, 2, 2, 3, 3, 3, 3, + 2, 2, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, +}; layout(std430, binding = 9) buffer layoutName { @@ -204,7 +214,7 @@ void main() //const uint coeff_num = ff_zigzag_direct[thread_num]; const uint coeff_num = thread_num; const uint stream_num = coeff_num * num_blocks + block_row; - const uint model_num = min((coeff_num % 8) + (coeff_num / 8), 7); + const uint model_num = stream_mapping[coeff_num]; const uint sign_bias = sign_bias_per_model[model_num]; // Initialize rANS decoder.