5 Commits

Author SHA1 Message Date
James Park
7d811499e0 Add "Area" scale filter
This new scale filter computes pixels by weighing the coverage area of
source pixels over the target pixel. This algorithm works well for both
upsampling and downsampling, but was mainly designed to upscale
high-quality low-resolution sources like RGB/HDMI retro consoles. I've
heard of people using odd workarounds like scaling up to very high
resolutions before scaling back down to preserve pixel shartpness. This
algorithm directly addresses this use-case in a much more direct
fashion.

The Area scale filter does a better job of preserving the thickness of
thin features than the Point filter.

The Area scale filter does not look at source pixels that lie outside
of the target pixel, leading to a much sharper image than Bilinear,
Bicubic, and Lanczos filters.

This filter should interpolate pixels in linear space, but OBS is not
equipped to do that at the moment.

libobs: Add GPU effect, and wire up scene serialization.

obs-filters: Add Area as an option for scale_filter.

UI: Add Area as an option for both scene items, and canvas downscaling.
2019-03-06 20:53:15 -08:00
Alex Anderson
f8f23a36e7 obs-filters: Add base canvas resolution option
Add a variable resolution to scale to. Requires first commit of #1390.
2018-09-07 18:23:10 -07:00
Richard Stanway
9e95b2eb6f
Various: Don't use boolean bitfields
Using bitfields causes less optimized code generation and the memory
savings are minimal as none of the objects are instantiated enough
times to be worth it.

See https://blogs.msdn.microsoft.com/oldnewthing/20081126-00/?p=20073
2017-05-10 23:28:46 +02:00
Take Vos
9007de70cc obs-filters: Add option to undistort ultrawide -> wide
Adds an option to the aspect/scale filter to undistort the center of the
image when scaling from ultrawide to wide.

Closes jp9000/obs-studio#762
2017-01-30 06:01:28 -08:00
jp9000
9413a43869 obs-filters: Add scaling/aspect ratio filter
Allows forcing a specific resolution or aspect ratio on a source, with
user-defined sampling.
2016-06-29 08:00:52 -07:00