[FFmpeg-devel] psnr filter "max" values for mpeg-range input

Ronald S. Bultje rsbultje at gmail.com
Sat Jul 11 03:45:54 CEST 2015


Hi,

do people object if I remove the following special code:

    switch (inlink->format) {
    case AV_PIX_FMT_GRAY8:
    case AV_PIX_FMT_GRAY16:
    case AV_PIX_FMT_GBRP:
    case AV_PIX_FMT_GBRP9:
    case AV_PIX_FMT_GBRP10:
    case AV_PIX_FMT_GBRP12:
    case AV_PIX_FMT_GBRP14:
    case AV_PIX_FMT_GBRP16:
    case AV_PIX_FMT_GBRAP:
    case AV_PIX_FMT_GBRAP16:
    case AV_PIX_FMT_YUVJ411P:
    case AV_PIX_FMT_YUVJ420P:
    case AV_PIX_FMT_YUVJ422P:
    case AV_PIX_FMT_YUVJ440P:
    case AV_PIX_FMT_YUVJ444P:
        s->max[0] = (1 << (desc->comp[0].depth_minus1 + 1)) - 1;
        s->max[1] = (1 << (desc->comp[1].depth_minus1 + 1)) - 1;
        s->max[2] = (1 << (desc->comp[2].depth_minus1 + 1)) - 1;
        s->max[3] = (1 << (desc->comp[3].depth_minus1 + 1)) - 1;
        break;
    default:
        s->max[0] = 235 * (1 << (desc->comp[0].depth_minus1 - 7));
        s->max[1] = 240 * (1 << (desc->comp[1].depth_minus1 - 7));
        s->max[2] = 240 * (1 << (desc->comp[2].depth_minus1 - 7));
        s->max[3] = (1 << (desc->comp[3].depth_minus1 + 1)) - 1;
    }

... and just always use the top version. Or at least make it an option or
something like that. This version is cute, but incompatible with most other
tools that calculate a psnr, which means I can't compare output of this
filter with other tools, which makes it semi-useless.

Ronald


More information about the ffmpeg-devel mailing list