static void encode_signal_range(VC2EncContext *s)
{
    int idx;
    AVCodecContext *avctx = s->avctx;
    const AVPixFmtDescriptor *fmt = av_pix_fmt_desc_get(avctx->pix_fmt);
    const int depth = fmt->comp[0].depth;
    if (depth == 8 && avctx->color_range == AVCOL_RANGE_JPEG) {
        idx = 1;
        s->bpp = 1;
        s->diff_offset = 128;
    } else if (depth == 8 && (avctx->color_range == AVCOL_RANGE_MPEG ||
               avctx->color_range == AVCOL_RANGE_UNSPECIFIED)) {
        idx = 2;
        s->bpp = 1;
        s->diff_offset = 128;
    } else if (depth == 10) {
        idx = 3;
        s->bpp = 2;
        s->diff_offset = 512;
    } else {
        idx = 4;
        s->bpp = 2;
        s->diff_offset = 2048;
    }
    put_bits(&s->pb, 1, !s->strict_compliance);
    if (!s->strict_compliance)
        put_vc2_ue_uint(&s->pb, idx);
}