[FFmpeg-devel] [PATCH] postproc: add basic deblock filter visualization support

Clément Bœsch u at pkh.me
Fri Sep 19 16:42:28 CEST 2014


On Fri, Sep 19, 2014 at 03:44:31PM +0200, Michael Niedermayer wrote:
> Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> ---
>  libpostproc/postprocess.c          |   36 +++++++++++++++++++++++++++++++++++-
>  libpostproc/postprocess_internal.h |    1 +
>  libpostproc/postprocess_template.c |   14 ++++++++++----
>  3 files changed, 46 insertions(+), 5 deletions(-)
> 
> diff --git a/libpostproc/postprocess.c b/libpostproc/postprocess.c
> index b6da294..de95745 100644
> --- a/libpostproc/postprocess.c
> +++ b/libpostproc/postprocess.c
> @@ -151,6 +151,7 @@ static const struct PPFilter filters[]=
>      {"tn", "tmpnoise",              1, 7, 8, TEMP_NOISE_FILTER},
>      {"fq", "forcequant",            1, 0, 0, FORCE_QUANT},
>      {"be", "bitexact",              1, 0, 0, BITEXACT},
> +    {"vi", "visualize",             1, 0, 0, VISUALIZE},
>      {NULL, NULL,0,0,0,0} //End Marker
>  };
>  
> @@ -430,7 +431,7 @@ static inline void horizX1Filter(uint8_t *src, int stride, int QP)
>   * accurate deblock filter
>   */
>  static av_always_inline void do_a_deblock_C(uint8_t *src, int step,
> -                                            int stride, const PPContext *c)
> +                                            int stride, const PPContext *c, int mode)
>  {
>      int y;
>      const int QP= c->QP;
> @@ -485,6 +486,32 @@ static av_always_inline void do_a_deblock_C(uint8_t *src, int step,
>                  sums[8] = sums[7] - src[3*step] + last;
>                  sums[9] = sums[8] - src[4*step] + last;
>  
> +                if (mode & VISUALIZE) {
> +//                     src[0*step] = av_clip_uint8(src[0*step]+32);
> +//                     src[1*step] = av_clip_uint8(src[1*step]-32);
> +//                     src[2*step] = av_clip_uint8(src[2*step]+32);
> +//                     src[3*step] = av_clip_uint8(src[3*step]-32);
> +//                     src[4*step] = av_clip_uint8(src[4*step]+32);
> +//                     src[5*step] = av_clip_uint8(src[5*step]-32);
> +//                     src[6*step] = av_clip_uint8(src[6*step]+32);
> +//                     src[7*step] = av_clip_uint8(src[7*step]-32);
> +                    src[0*step] =
> +                    src[1*step] =
> +                    src[2*step] =
> +                    src[3*step] =
> +                    src[4*step] =
> +                    src[5*step] =
> +                    src[6*step] =
> +                    src[7*step] = 128;
> +//                     src[0*step]= av_clip_uint8((-sums[0] - sums[2] + 22*src[0*step])>>3);
> +//                     src[1*step]= av_clip_uint8((-sums[1] - sums[3] + 22*src[1*step])>>3);
> +//                     src[2*step]= av_clip_uint8((-sums[2] - sums[4] + 22*src[2*step])>>3);
> +//                     src[3*step]= av_clip_uint8((-sums[3] - sums[5] + 22*src[3*step])>>3);
> +//                     src[4*step]= av_clip_uint8((-sums[4] - sums[6] + 22*src[4*step])>>3);
> +//                     src[5*step]= av_clip_uint8((-sums[5] - sums[7] + 22*src[5*step])>>3);
> +//                     src[6*step]= av_clip_uint8((-sums[6] - sums[8] + 22*src[6*step])>>3);
> +//                     src[7*step]= av_clip_uint8((-sums[7] - sums[9] + 22*src[7*step])>>3);
> +                }

If you want to add dead code, please at least explain above why it should
be kept.

[...]

No opinion on the rest of the patchset; don't forget to bump micro if you
apply.

-- 
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140919/a8b14444/attachment.asc>


More information about the ffmpeg-devel mailing list