static void encode_quant_matrix(VC2EncContext *s)
{
    int level, custom_quant_matrix = 0;
    if (s->wavelet_depth > 4 || s->quant_matrix != VC2_QM_DEF)
        custom_quant_matrix = 1;
    put_bits(&s->pb, 1, custom_quant_matrix);
    if (custom_quant_matrix) {
        init_custom_qm(s);
        put_vc2_ue_uint(&s->pb, s->quant[0][0]);
        for (level = 0; level < s->wavelet_depth; level++) {
            put_vc2_ue_uint(&s->pb, s->quant[level][1]);
            put_vc2_ue_uint(&s->pb, s->quant[level][2]);
            put_vc2_ue_uint(&s->pb, s->quant[level][3]);
        }
    } else {
        for (level = 0; level < s->wavelet_depth; level++) {
            s->quant[level][0] = ff_dirac_default_qmat[s->wavelet_idx][level][0];
            s->quant[level][1] = ff_dirac_default_qmat[s->wavelet_idx][level][1];
            s->quant[level][2] = ff_dirac_default_qmat[s->wavelet_idx][level][2];
            s->quant[level][3] = ff_dirac_default_qmat[s->wavelet_idx][level][3];
        }
    }
}
static void encode_quant_matrix(VC2EncContext *s)
{
    int level, custom_quant_matrix = 0;
    if (s->wavelet_depth > 4 || s->quant_matrix != VC2_QM_DEF)
        custom_quant_matrix = 1;
    put_bits(&s->pb, 1, custom_quant_matrix);
    if (custom_quant_matrix) {
        init_custom_qm(s);
        put_vc2_ue_uint(&s->pb, s->quant[0][0]);
        for (level = 0; level < s->wavelet_depth; level++) {
            put_vc2_ue_uint(&s->pb, s->quant[level][1]);
            put_vc2_ue_uint(&s->pb, s->quant[level][2]);
            put_vc2_ue_uint(&s->pb, s->quant[level][3]);
        }
    } else {
        for (level = 0; level < s->wavelet_depth; level++) {
            s->quant[level][0] = ff_dirac_default_qmat[s->wavelet_idx][level][0];
            s->quant[level][1] = ff_dirac_default_qmat[s->wavelet_idx][level][1];
            s->quant[level][2] = ff_dirac_default_qmat[s->wavelet_idx][level][2];
            s->quant[level][3] = ff_dirac_default_qmat[s->wavelet_idx][level][3];
        }
    }
}