libplacebo
Fiscal Host: Open Source Collective
Reusable library for GPU-accelerated image/video processing primitives and shaders, as well a batteries-included, extensible, high-quality rendering pipeline (similar to mpv's vo_gpu). Supports Vulkan, OpenGL, Metal (via MoltenVK) and Direct3D 11.
Contribute
Become a financial contributor.
Financial Contributions
Top financial contributors
libplacebo is all of us
Our contributors 4
Thank you for supporting libplacebo.
Budget
Transparent and open finances.
Credit from Wang Bin to libplacebo •
+$50.00USD
Completed
Contribution #777509
Credit from Wang Bin to libplacebo •
+$20.00USD
Completed
Contribution #623779
Credit from Guest to libplacebo •
+$10.00USD
Completed
Contribution #576765
$
Today’s balance$113.41 USD
Total raised
$113.41 USD
Total disbursed
--.-- USD
Estimated annual budget
$50.00 USD
Connect
Let’s get the ball rolling!
News from libplacebo
Updates on our activities and progress.
libplacebo v4.157.0
This is a major new release involving a significant overhaul of the public API, full thread safety, support for Direct3D 11 / Win32 / MSVC, native HDR output, and more. The primary way of accessing most libplacebo objects has been revamped....
Published on October 4, 2021 by Niklas Haas
About
libplacebo is, in a nutshell, the core rendering algorithms and ideas of mpv rewritten as an independent library. As of today, libplacebo contains a large assortment of video processing shaders, focusing on both quality and performance. These include features such as the following:
- High-quality, optimized upscaling and downscaling including support for polar filters ("Jinc"), anti-aliasing, anti-ringing and gamma correct scaling.
- Color management and format conversions for a wide variety of HDR or wide gamut color spaces. This includes support for ICC profiles, ITU-R BT.1886 emulation, colorimetrically accurate clipping, custom 1D/3D LUTs, scene-referred OOTFs (such as HLG), constant luminance formats including ICtCp and a variety of film industry formats ranging from XYZ to Sony's S-Log or Panasonic's V-Gamut.
- Tunable debanding shader. This is based on flash3kyuu, expanded to provide high quality by combining multiple debanding passes.
- Dynamic HDR tone mapping, including shaders for real-time peak and scene-change detection, chroma-preserving (luma-only) tone mapping, highlight desaturation, dynamic exposure control and a variety of industry-standard EETFs including BT.2390.
- High performance film grain synthesis for AV1 and H.274, allowing media players to offload this part of decoding from the CPU to the GPU.
- A pluggable, extensible custom shader syntax, equivalent to an improved version of mpv's .hook syntax. This can be used to arbitrarily extend the range of custom shaders to include popular user shaders like RAVU, FSRCNNX, or Anime4K. See the mpv wiki on user scripts for more information.
Every attempt was made to provide these features at a high level of abstraction, taking away all the messy details of GPU programming, color spaces, obscure subsampling modes, image metadata manipulation, and so on. Expert-level functionality is packed into easy-to-use functions like pl_frame_from_avframe and pl_render_image.
libplacebo currently supports Vulkan (including MoltenVK), OpenGL, and Direct3D 11. It contains backwards compatibility code for very old versions of GLSL down to GLES 2.0 and OpenGL 1.3 and very old Direct3D feature levels down to 9_1.
Our team
Niklas Haas
Admin