• 1
  • 2(current)
  • 3
  • 4
  • 5
  • 8
Req GUI: improved image scaling algorithm
#16
+1 I uploaded some high resolutin posters on themoviedb.org and in Kodi they look pretty bad
Reply
#17
(2015-03-31, 10:41)zag Wrote: There is surely going to be a speed penalty for this.

YAS (yet another setting)
If I have helped you or increased your knowledge, click the 'thumbs up' button to give thanks :) (People with less than 20 posts won't see the "thumbs up" button.)
Reply
#18
I'd gladly wait longer for thumbs that don't make me cringe. Our current scaling is below acceptable quality, IMO.
Reply
#19
I think though that underpowered box users (rpi1, lower end android, ATV) will want to revert to the less CPU intensive old behaviour. There are such settings for video scaling.
If I have helped you or increased your knowledge, click the 'thumbs up' button to give thanks :) (People with less than 20 posts won't see the "thumbs up" button.)
Reply
#20
I've been putting this down to a speed thing, but recently added a projector to my life. On a 1080p projector screen 2.5m wide they are just diabolically bad quality. Given thumbs are generated but then cached, a speed penalty on initial generation seems like a small price to pay for long term prettiness...
Addons I wrote &/or maintain:
OzWeather (Australian BOM weather) | Check Previous Episode | Playback Resumer | Unpause Jumpback | XSqueezeDisplay | (Legacy - XSqueeze & XZen)
Sorry, no help w/out a *full debug log*.
Reply
#21
See PR6986 for a start. Unfortunately I'm not very knowledgable in this area so all I did was follow the code path of the image caching logic and adjusted/extended it accordingly.
Always read the online manual (wiki), FAQ (wiki) and search the forum before posting.
Do not e-mail Team Kodi members directly asking for support. Read/follow the forum rules (wiki).
Please read the pages on troubleshooting (wiki) and bug reporting (wiki) before reporting issues.
Reply
#22
Very nice PR Montellese congrats and thank you so much for looking into this.

Would be nice if instead of hidden controls in advancedsettings.xml, instead have skin setting with a nice list to select from different algorithms and that the best default would be already set.

Re: re-caching - I wonder if with json and with the help of texturecache.py C or c one could force re-caching with the new algorithm set. Only Milhouse would know if it would be possible assuming this was exposed to json in some way.
Reply
#23
(2015-04-19, 04:14)nickr Wrote: I think though that underpowered box users (rpi1, lower end android, ATV) will want to revert to the less CPU intensive old behaviour. There are such settings for video scaling.

The Pi actually uses the GPU for resizing images to the cache. It already uses a decent algorithm for this (trapezoidal block average for downscaling) so doesn't have this issue.
Reply
#24
OK So this has now been merged,

On the PR mentions 11 scaling algorithms to choose from, so what are those? Anyone have a list they dont mind putting up.

Edit never mind, found it https://github.com/xbmc/xbmc/blob/1a8753...pp#L32-L43
Reply
#25
(2015-04-20, 12:10)uNiversal Wrote: Re: re-caching - I wonder if with json and with the help of texturecache.py C or c one could force re-caching with the new algorithm set. Only Milhouse would know if it would be possible assuming this was exposed to json in some way.

If you choose an alternate algorithm by adding <imagescalingalgorithm> to as.xml then you could easily re-cache your entire library using texturecache.py, and any new items added to the cache by the GUI will also use the same algorithm.

It's also possible to request artwork using a specific algorithm by adding the "scaling_algorithm" parameter but this will create new cache entries that will be ignored by the GUI (which won't be adding this parameter, so using a different url to look up the cache), in which case this approach is only of value to specific applications, eg. smartphone apps etc. that may want higher or lower quality artwork, or artwork that is faster to display etc.

If there's a need to pre-load the cache with artwork using a specific algorithm (or other url parameters) then I guess that kind of support could be added to texturecache.py, and would then result in faster display whenever such artwork is requested by the smartphone app (or whatever) that needs it.

(2015-07-14, 02:54)uNiversal Wrote: OK So this has now been merged,

On the PR mentions 11 scaling algorithms to choose from, so what are those? Anyone have a list they dont mind putting up.

Edit never mind, found it https://github.com/xbmc/xbmc/blob/1a8753...pp#L32-L43

The text strings for <imagescalingalgorithm> and "scaling_algorithm" would seem to be:

Code:
fast_bilinear
bilinear
bicubic
experimental
nearest_neighbor
averaging_area
bicublin
gaussian
sinc
lanczos
bicubic_spline

"fast_bilinear" is the current default, and is pretty crap (but fast). "bicubic" is a little slower, but seems to produce much better image quality - there are examples of fast_bilinear, bilinear and bicubic in the PR.

It's likely that fast_bilinear will not stay as the default for much longer.
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
#26
Will this be in the next nightly build? Can this be modified from the GUI or will it be an advance settings job?
Media_Center_Master (wiki) || First_time_user (wiki) || Kodi Store || T-shirts: Villian, Protest, Graffiti, Emoji, Black on Black, K-18L
Reply
#27
advancedsettings only
Reply
#28
(2015-07-14, 03:14)Milhouse Wrote:
(2015-04-20, 12:10)uNiversal Wrote: Re: re-caching - I wonder if with json and with the help of texturecache.py C or c one could force re-caching with the new algorithm set. Only Milhouse would know if it would be possible assuming this was exposed to json in some way.

If you choose an alternate algorithm by adding <imagescalingalgorithm> to as.xml then you could easily re-cache your entire library using texturecache.py, and any new items added to the cache by the GUI will also use the same algorithm.

It's also possible to request artwork using a specific algorithm by adding the "scaling_algorithm" parameter but this will create new cache entries that will be ignored by the GUI (which won't be adding this parameter, so using a different url to look up the cache), in which case this approach is only of value to specific applications, eg. smartphone apps etc. that may want higher or lower quality artwork, or artwork that is faster to display etc.

If there's a need to pre-load the cache with artwork using a specific algorithm (or other url parameters) then I guess that kind of support could be added to texturecache.py, and would then result in faster display whenever such artwork is requested by the smartphone app (or whatever) that needs it.

(2015-07-14, 02:54)uNiversal Wrote: OK So this has now been merged,

On the PR mentions 11 scaling algorithms to choose from, so what are those? Anyone have a list they dont mind putting up.

Edit never mind, found it https://github.com/xbmc/xbmc/blob/1a8753...pp#L32-L43

The text strings for <imagescalingalgorithm> and "scaling_algorithm" would seem to be:

Code:
fast_bilinear
bilinear
bicubic
experimental
nearest_neighbor
averaging_area
bicublin
gaussian
sinc
lanczos
bicubic_spline

"fast_bilinear" is the current default, and is pretty crap (but fast). "bicubic" is a little slower, but seems to produce much better image quality - there are examples of fast_bilinear, bilinear and bicubic in the PR.

It's likely that fast_bilinear will not stay as the default for much longer.

I for one would like to recache everything with a new algorithm via texturecache.py Smile Do I just use C or do you need to update something?
Reply
#29
Initial wiki entry Advancedsettings.xml#imagescalingalgorithm (wiki)
Reply
#30
(2015-07-14, 07:39)uNiversal Wrote: I for one would like to recache everything with a new algorithm via texturecache.py Smile Do I just use C or do you need to update something?

"texturecache.py C" should be enough (you'll need to add "allow.recacheall=yes" in texturecache.cfg).
Texture Cache Maintenance Utility: Preload your texture cache for optimal UI performance. Remotely manage media libraries. Purge unused artwork to free up space. Find missing media. Configurable QA check to highlight metadata issues. Aid in diagnosis of library and cache related problems.
Reply
  • 1
  • 2(current)
  • 3
  • 4
  • 5
  • 8

Logout Mark Read Team Forum Stats Members Help
GUI: improved image scaling algorithm2