After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 741149 - vaapipostproc bad scaling quality
vaapipostproc bad scaling quality
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gstreamer-vaapi
unspecified
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-12-05 09:54 UTC by frank.huber
Modified: 2018-03-30 16:14 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description frank.huber 2014-12-05 09:54:33 UTC
During scaling tests I observed bad scaling quality with vaapipostproc.

With vaapipostproc version 0.5.10.pre1, there is a new parameter scale-method.
Setting this parameter to default, fast or hq doesn't affect the scaling quality.
Is is still very bad. Only down-scaling was evaluated.

In the vaapipostproc commit comment I found this info:
Add new "scale-method" property to expose the scaling mode to use during video processing. Note that this is only a hint, and the actual behaviour may differ from implementation (VA driver) to implementation.

- Is this feature already implemented in VA driver
- if not, is there a time schedule

My setup:
Intel(R) Core(TM) i7-4700EQ CPU

vaapipostproc:
Version                  0.5.10.pre1

vainfo:
libva info: VA-API version 0.36.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/va/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_36
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.36 (libva 1.4.1)
vainfo: Driver version: Intel i965 driver for Intel(R) Haswell Mobile - 1.4.1
Comment 1 Gwenole Beauchesne 2014-12-05 10:50:46 UTC
Hi, the feature is only implemented in the git master branch of the VA intel driver. There is no formal release yet of the driver, but you can expect an 1.5.0 soon. Meanwhile, you can use the upstream (fd.o) libva-intel-driver git master or v1.5-branch.
Comment 2 Gwenole Beauchesne 2014-12-05 10:52:30 UTC
Note: if you build libva-intel-driver off git, there is now an additional version string representing the actual git commit hash. At least, we should now be able to easily determine the exact version used. :)
Comment 3 frank.huber 2014-12-08 10:16:57 UTC
With the v1.5-branch (libva and intel-driver) the scaling quality is still bad, independent of scale-method parameter.
It seems vaapipostproc parameter scale-method is ignored or doesn't work. 
Only down-scaling tested.

Setup:  
vainfo
libva info: VA-API version 0.37.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/va/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_37
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.37 (libva 1.5.0.pre1)
vainfo: Driver version: Intel i965 driver for Intel(R) Haswell Mobile - 1.5.0.pre1 (1.5.0.pre1)

intel-driver commit 6674434b94943eefecde4d91225ab219482609df
libva commit f4211c36dce03fe29cf5b97d65e245fedc6790ef
Comment 4 frank.huber 2015-01-20 13:06:07 UTC
Retested with

vaapi  Version 0.5.10.pre1

libva info: VA-API version 0.37.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/va/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_37
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.37 (libva 1.5.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Haswell Mobile - 1.5.0

Parameter scale-method can be "default", "fast" or "hq".

Parameter "scale-method" works, if is is set to "hq".

I can see no difference between "default" and "fast".  

Can anybody answer this questions?
- What does " default" mean? Bad (scaling), slow (scaling), ....?
- Why there is no difference between "default" and "fast"?

Thanks for support.
Comment 5 Gwenole Beauchesne 2015-01-20 13:45:24 UTC
(In reply to comment #4)
> Retested with
> 
> vaapi  Version 0.5.10.pre1
> 
> libva info: VA-API version 0.37.0
> libva info: va_getDriverName() returns 0
> libva info: Trying to open /usr/lib/va/i965_drv_video.so
> libva info: Found init function __vaDriverInit_0_37
> libva info: va_openDriver() returns 0
> vainfo: VA-API version: 0.37 (libva 1.5.0)
> vainfo: Driver version: Intel i965 driver for Intel(R) Haswell Mobile - 1.5.0
> 
> Parameter scale-method can be "default", "fast" or "hq".
> 
> Parameter "scale-method" works, if is is set to "hq".
> 
> I can see no difference between "default" and "fast".  
> 
> Can anybody answer this questions?
> - What does " default" mean? Bad (scaling), slow (scaling), ....?
> - Why there is no difference between "default" and "fast"?

"default" means whatever is implemented by the driver as the best trade-off. Typically, this is bilinear filtering. "fast" means quality could be degraded but allow for faster execution, thus reducing power consumption from the GPU engines. In practice, "fast" method is not implemented, but it could be a nearest-neighbour filter.

On Intel HD Graphics, there is a fixed function block (AVS) which is used for scaling. This requires a pretty recent driver, and I believe >= 1.5.0 is fine.
Comment 6 sreerenj 2016-03-24 16:54:50 UTC
Moving to Product:GStreamer, Component:gstreamer-vaapi
Comment 7 Víctor Manuel Jáquez Leal 2018-03-30 16:14:18 UTC
Thanks for taking the time to report this.
However, you are using a version that is too old and not supported anymore by GNOME developers. GNOME developers are no longer working on that version, so unfortunately there will not be any bug fixes by GNOME developers for the version that you use.

By upgrading to a newer version of GNOME you could receive bug fixes and new functionality. You may need to upgrade your Linux distribution to obtain a newer version of GNOME.

Please feel free to reopen this bug report if the problem still occurs with a recent version of GNOME, or feel free to report this bug in the bug tracking system of your Linux distribution if your distribution still supports the version that you are using.