Open Collective
Open Collective

libplacebo

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

Recurring contribution
Backer

Become a backer for $5.00 per month and support us

Starts at$5 USD / month

Recurring contribution
Sponsor

Become a sponsor for $100.00 per month and support us

Starts at$100 USD / month

Custom contribution
Donation
Make a custom one-time or recurring contribution.

Latest activity by


Top financial contributors

1
Incognito

$55 USD since Jan 2021

2
Guest

$10 USD since Oct 2022

libplacebo is all of us

Our contributors 3

Thank you for supporting libplacebo.

incognito

$55 USD

Guest

$10 USD

Budget


Transparent and open finances.

View all transactions
Financial contribution to libplacebo

Credit from Guest to libplacebo

+$10.00USD
Completed
Contribution #576765
Financial contribution to libplacebo

Credit from Incognito to libplacebo

+$30.00USD
Completed
Contribution #115716
Financial contribution to libplacebo

Credit from Incognito to libplacebo

+$25.00USD
Completed
Contribution #115120
$
Today’s balance

$54.89 USD

Total raised

$54.89 USD

Total disbursed

--.-- USD

Estimated annual budget

$9.41 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....
Read more
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