Changes between Version 10 and Version 11 of SponsoringPrograms/STF/2025
- Timestamp:
- Jul 29, 2025, 8:44:57 PM (12 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SponsoringPrograms/STF/2025
v10 v11 9 9 * Thilo Borgmann (thilo.borgmann@mail.de) 10 10 * Pierre-Anthony Lemieux (pal@sandflow.com) 11 12 == FFv1 Vulkan improvements ==13 14 '''Description:''' The Vulkan-based GPU implementation of the FFv1 codec has allowed users to quickly encode and decode on consumer GPUs. However, FFv1 codec continues to be developed, with new features being added. Recently, color remapping and floating-point support (16-bit and 32-bit) was added to version 4 of the codec. The GPU implementation of the codec does not yet support either. This project will ensure the GPU implementation remains in sync with the CPU, and that optimizations will be ported between both implementations.15 16 '''Expected results:''' FFv1's GPU implementation will implement the color lookup table, 16-bit floating-point video, 32-bit floating-point video, and where possible, optimizations will be back-ported to the CPU implementation.17 18 '''Duration:''' 8 Months19 20 '''Payment:''' 20,000 EUR21 22 '''Developer:''' Lynne23 24 == FFv1 Bayer coding support ==25 26 '''Description:''' FFv1 is an important standard for archival. However, it is capable of more than just long-term compression. The recent GPU implementation has demonstrated that its sufficiently fast to be used as a RAW format, allowing NLEs to work in a fully lossless flow. This project will implement support for common Bayer formats, both for encoding and decoding, along with metadata, allowing FFv1 to be used for professional production.27 28 '''Expected results:''' FFv1 is able to encode and decode Bayer pixel ordering, both on the GPU and CPU implementations, with the necessary metadata information carried to permit accurate color reconstruction and flexibility when color grading and mastering.29 30 '''Duration:''' 6 Months31 32 '''Payment:''' 15,000 EUR33 34 '''Developer:''' Lynne35 36 == swscale Vulkan backend ==37 38 '''Description:''' The recent swscale rewrite has transformed it into a flexible and reliable framework to handle scaling, with the logic being decoupled from the DSP code. This simplifies writing backends with all the benefits and deterministic behaviour of the CPU version. This project will implement a Vulkan backend for the new swscale framework, writing SPIR-V code directly with no assembler, which will allow Vulkan frames (and frames imported from other GPU APIs into Vulkan) to be scaled.39 40 '''Expected results:''' swscale Vulkan backend, with feature parity to the C backend41 42 '''Duration:''' 12 Months43 44 '''Payment:''' 40,000 EUR45 46 '''Developer:''' Lynne47 11 48 12 == Template … … 78 42 Example: Michael Niedermayer <michael-ffwork@niedermayer.cc>. I work in Austria, and have been an active contributor to FFmpeg since 2001 – 22308 commits so far. My work on FFmpeg is regularly supported by third parties and I am one of the founders of https://fflabs.eu. I am also extremely familiar with Coverity: I have fixed 690 issues out of 847 Coverity issues fixed in the past. I fixed over 2000 issues found by ossfuzz. 79 43 80 == Application44 == FFMPEG 2025 STF Application 81 45 82 46 === Describe the technology this effort will support. … … 116 80 == Describe the projects 117 81 82 === FFv1 Vulkan improvements === 118 83 119 == Template Project Proposal 84 '''Description:''' The Vulkan-based GPU implementation of the FFv1 codec has allowed users to quickly encode and decode on consumer GPUs. However, FFv1 codec continues to be developed, with new features being added. Recently, color remapping and floating-point support (16-bit and 32-bit) was added to version 4 of the codec. The GPU implementation of the codec does not yet support either. This project will ensure the GPU implementation remains in sync with the CPU, and that optimizations will be ported between both implementations. 120 85 121 === One line summary of the proposed work 86 '''Expected results:''' FFv1's GPU implementation will implement the color lookup table, 16-bit floating-point video, 32-bit floating-point video, and where possible, optimizations will be back-ported to the CPU implementation. 122 87 123 Example: Classify and fix outstanding issues identified by Coverity 88 '''Duration:''' 8 Months 124 89 125 === Description of the work 90 '''Payment:''' 20,000 EUR 126 91 127 Example: Coverity is a static code analysis system that is used to analyze FFmpeg code to find bugs with an emphasis on quality and security issues. There are currently 677 outstanding issues identified by Coverity (https://scan.coverity.com/projects/ffmpeg?tab=overview). Some of these issues are false positives while others could open the door to security vulnerabilities. The objective of this work is to identify the Coverity issues that are not false positives, and fix as many as possible. 92 '''Developer:''' Lynne 128 93 129 === Milestones94 === FFv1 Bayer coding support === 130 95 131 ==== Milestone 1 96 '''Description:''' FFv1 is an important standard for archival. However, it is capable of more than just long-term compression. The recent GPU implementation has demonstrated that its sufficiently fast to be used as a RAW format, allowing NLEs to work in a fully lossless flow. This project will implement support for common Bayer formats, both for encoding and decoding, along with metadata, allowing FFv1 to be used for professional production. 132 97 133 ===== Description 98 '''Expected results:''' FFv1 is able to encode and decode Bayer pixel ordering, both on the GPU and CPU implementations, with the necessary metadata information carried to permit accurate color reconstruction and flexibility when color grading and mastering. 134 99 135 Example: Review all outstanding Coverity issues and, for each one, determine whether it is a false positive. 100 '''Duration:''' 6 Months 136 101 137 ===== Deliverables 102 '''Payment:''' 15,000 EUR 138 103 139 Example: List of both false positive and real issues posted to the FFmpeg dev mailing list. 104 '''Developer:''' Lynne 140 105 141 === == Requested compensation (in USD or Euros)106 === swscale Vulkan backend === 142 107 143 ==== Milestone 2 108 '''Description:''' The recent swscale rewrite has transformed it into a flexible and reliable framework to handle scaling, with the logic being decoupled from the DSP code. This simplifies writing backends with all the benefits and deterministic behaviour of the CPU version. This project will implement a Vulkan backend for the new swscale framework, writing SPIR-V code directly with no assembler, which will allow Vulkan frames (and frames imported from other GPU APIs into Vulkan) to be scaled. 144 109 110 '''Expected results:''' swscale Vulkan backend, with feature parity to the C backend 145 111 112 '''Duration:''' 12 Months 113 114 '''Payment:''' 40,000 EUR 115 116 '''Developer:''' Lynne
