[Libva] [PATCH intel-driver 0/8] Add support for high quality scaling

Gwenole Beauchesne gb.devel at gmail.com
Mon Oct 13 10:27:39 PDT 2014


Hi,

This patch series implements high-quality scaling for all generations
back to Ironlake. HQ scaling works both through vaPutSurface() flags
or through filter flags in a VPP pipeline.

The convolution kernel used for VA_FILTER_SCALING_HQ is based on
Lanczos: 3 lobes in either side for luma samples, and 2 lobes in
either side for chroma samples. The 8x8 sharp filter is enabled in
this case.

Additional optimizations were made to avoid recalculation of AVS
coefficients for each frame if scaling params have not changed.

Notes: this series was only tested on Ivybridge as a quick but
confident enough experiment. More testing is needed, especially on
other platforms. Fully adaptive mode is not programmed yet.

Patched sources available for convenience here:
<https://github.com/gbeauchesne/libva-intel-driver/tree/18.vpp.avs>

Regards,
Gwenole Beauchesne (8):
  vpp: fix adaptive filter for all channels flag (< Haswell).
  vpp: fix AVS coefficients for Broadwell.
  vpp: factor out calculation of AVS coefficients.
  vpp: add support for high-quality scaling.
  vpp: validate AVS filter coefficients for debugging purposes.
  vpp: cache calculation of AVS coefficients.
  vpp: drop internal postprocessing (PP_xxx) flags.
  vpp: enable advanced video scaling in VPP pipelines too.

 src/Makefile.am            |   2 +
 src/gen75_vpp_vebox.c      |  11 +-
 src/gen8_post_processing.c | 141 ++++++++++++-------
 src/gen8_render.c          |   6 +-
 src/i965_output_dri.c      |  18 +--
 src/i965_post_processing.c | 342 ++++++++++++++++++++++++++++-----------------
 src/i965_post_processing.h |  21 ++-
 src/i965_render.c          |  12 +-
 src/i965_structs.h         |  82 +++++++++--
 src/i965_vpp_avs.c         | 243 ++++++++++++++++++++++++++++++++
 src/i965_vpp_avs.h         | 109 +++++++++++++++
 11 files changed, 767 insertions(+), 220 deletions(-)
 create mode 100644 src/i965_vpp_avs.c
 create mode 100644 src/i965_vpp_avs.h

-- 
1.9.1



More information about the Libva mailing list