Changes between Version 27 and Version 28 of SponsoringPrograms/STF/2025
- Timestamp:
- Sep 7, 2025, 7:52:49 PM (10 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SponsoringPrograms/STF/2025
v27 v28 281 281 **One line summary:** Port remaining "legacy" code paths from libswscale to the new architecture. 282 282 283 **Description:** Libswscale is the central image scaling and format conversion component used by the FFmpeg multimedia set of libraries. "Modern" libswscale is the name I have given to the new set of APIs and internal designs (SwsContext, SwsGraph and SwsOps) that were successfully introduced as part of the 2024 "swscale modernization" STF project. The objective of this work is to complete this transition, by porting the remaining code paths (notably, scaling support and color conversion) to the new architecture, thus allowing the "legacy" code paths to be deprecated and phased out of FFmpeg.283 **Description:** *libswscale* is the central image scaling and format conversion component used by the FFmpeg multimedia set of libraries. As was identified in last year's STF project ("swscale modernization"), the current libswscale core still contains a substantial amount of very old, difficult to mantain, and often buggy legacy code. There has been an ongoing effort to rewrite these core components under a modernized set of abstractions, introduced as part of that project. The objective of this work is to complete this transition by porting the remaining code paths (notably, scaling support and color conversion) to the newly introduced APIs, thus allowing the "legacy" code paths to be deprecated and phased out of FFmpeg. 284 284 285 285 **Duration:** 8 months … … 289 289 **Developer:** Niklas Haas <ffmpeg@haasn.xyz> 290 290 291 I work in Germany, and have been an active contributor to FFmpeg since ca. 2021, with an extensive history in open-source multimedia going back to around 2014. I have spent about 5 years performing regular contracting work for FFmpeg, VLC and libplacebo. I also participated in last year's STF 2024 application for FFmpeg. 292 291 293 ==== Milestones 292 294 293 295 ===== Develop the SwsOps architecture to support scaling 294 296 295 **Description:** The existing SwsOps architecture will need to be updated to support scaling operations. This includes necessary R&D and testing to find a design that scales well and does not introduce performance regressionsversus the legacy code paths.296 297 **Deliverables:** An implementation of the necessary new APIs and high-level logic, alongside a reference implementation in C .297 **Description:** The existing SwsOps architecture will need to be updated to support scaling operations. This includes the necessary regression testing work needed to ensure the new design scales well and does not introduce a performance and/or quality regression versus the legacy code paths. 298 299 **Deliverables:** An implementation of the necessary new APIs and high-level logic, alongside a reference implementation in C, is either merged or has received at least one merge approval. 298 300 299 301 **Compensation:** 20,000 EUR … … 303 305 **Description:** After expanding the SwsOps architecture, the x86_64 backend will need to be updated to support the new scaling operations. This includes implementing optimized versions of the new APIs using SIMD instructions. 304 306 305 **Deliverables:** An implementation, targeting at least SSE4, AVX2 and AVX-512, of the newly added APIs in Milestone 1 .307 **Deliverables:** An implementation, targeting at least SSE4, AVX2 and AVX-512, of the newly added APIs in Milestone 1, is either merged or has received at least one merge approval. 306 308 307 309 **Compensation:** 20,000 EUR … … 311 313 **Description:** Some, more difficult, formats, which were previously handled by the legacy code paths, are not yet supported by the SwsOps backend. This notably includes 96/128-bit formats, XYZ, Bayer and packed/subsampled formats (e.g. YUYV). 312 314 313 **Deliverables:** An implementation of the necessary APIs and high-level logic, alongside a reference implementation in C, and possibly an x86_64 code path for the most important formats .315 **Deliverables:** An implementation of the necessary APIs and high-level logic, alongside a reference implementation in C, and possibly an x86_64 code path for the most important formats, is either merged or has received at least one merge approval. 314 316 315 317 **Compensation:** 20,000 EUR … … 319 321 **Description:** Some format conversions currently require conversion between difference colorspaces. This operation is currently handled in a very inefficient manner, as a result of predating the SwsOps design. This layer should be updated to use the new architecture, which will make it vastly more efficient. 320 322 321 **Deliverables:** The color management layer successfully integrated into the SwsOps design.323 **Deliverables:** A pull request integrating the color management layer into the SwsOps design, is either merged or has received at least one merge approval. 322 324 323 325 **Compensation:** 10,000 EUR
