Changes between Version 28 and Version 29 of SponsoringPrograms/STF/2025
- Timestamp:
- Sep 8, 2025, 7:42:45 AM (10 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SponsoringPrograms/STF/2025
v28 v29 97 97 == Describe the projects 98 98 99 === swscale Vulkan backend === 100 101 '''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. 102 103 '''Expected results:''' swscale Vulkan backend, with feature parity to the C backend 104 105 '''Duration:''' 12 Months 106 107 '''Payment:''' 40,000 EUR 108 109 '''Developer:''' Lynne 110 111 ==== Developer background and contact information 112 113 Lynne <dev@lynne.ee>. Based in Europe, FFmpeg developer for over 7 years and a thousand commits. Has written multiple decoders and encoders for FFmpeg, as well as the entire Vulkan infrastructure. Member of Khronos, developing the Vulkan specifications. Worked on the AV1 codec specifications. 114 115 ==== Milestones 116 117 ===== Create a new custom backend 118 119 * **Description**: This takes the first step of implementing a Vulkan backend by initializing a context, a GLSL compiler, and correctly outputting and reusing hardware frames. 120 121 * **Deliverables**: A pull request to implement the backend, is either merged or has received at least one merge approval. 122 123 * **Compensation**: 10,000 EUR 124 125 ===== Implement currently supported primitives in GLSL 126 127 * **Description**: This milestone will implement current primitives/codelets into GLSL, building upon the previous milestone, to complete the implementation. 128 129 * **Deliverables**: A pull request to implement the functional backend, is either merged or has received at least one merge approval. 130 131 * **Compensation**: 30,000 EUR 132 99 133 === FFv1 Vulkan improvements === 100 134 … … 109 143 '''Developer:''' Lynne 110 144 145 ==== Developer background and contact information 146 147 Lynne <dev@lynne.ee>. Based in Europe, FFmpeg developer for over 7 years and a thousand commits. Has written multiple decoders and encoders for FFmpeg, as well as the entire Vulkan infrastructure. Member of Khronos, developing the Vulkan specifications. Worked on the AV1 codec specifications. 148 111 149 ==== Milestones 112 150 … … 115 153 * **Description**: Minimum viable implementation of floating-point decoding in the Vulkan decoder. This would allow for the FFv1 Vulkan decoder to be used in professional cinema/CGI productions, where linear 16-bit floating point video is used during pre-production. 116 154 117 * **Deliverables**: Patches to implement compliant support for it posted on the mailing list. 155 * **Deliverables**: A pull request to implement the feature, passing all tests, is either merged or has received at least one merge approval. 156 157 * **Compensation**: 5,000 EUR 118 158 119 159 ===== 16-bit floating-point video encoding … … 121 161 * **Description**: Same as the previous milestone, for the encoder. Minimum viable implementation of floating-point decoding in the Vulkan encoder. This would allow for the FFv1 Vulkan encoder to be used in professional cinema/CGI productions. 122 162 123 * **Deliverables**: Patches to implement compliant support for it posted on the mailing list. 163 * **Deliverables**: A pull request to implement the feature, passing all tests, is either merged or has received at least one merge approval. 164 165 * **Compensation**: 5,000 EUR 124 166 125 167 ===== 32-bit floating-point video decoding … … 127 169 * **Description**: More advanced version, built upon the previous work, to allow the decoder to correctly decode 32-bit floating point video. More and more production is switching to 32-bit video, as 16-bit linear video can reach limits with high dynamic range video. 128 170 129 * **Deliverables**: Patches to implement compliant support for it posted on the mailing list. 171 * **Deliverables**: A pull request to implement the feature, passing all tests, is either merged or has received at least one merge approval. 172 173 * **Compensation**: 10,000 EUR 130 174 131 175 ===== 32-bit floating-point video encoding … … 133 177 * **Description**: Same as the previous milestone, for the encoder. 32-bit floating point video encoding support would be added to the encoder. 134 178 135 * **Deliverables**: Patches to implement compliant support for it posted on the mailing list. 179 * **Deliverables**: A pull request to implement the feature, passing all tests, is either merged or has received at least one merge approval. 180 181 * **Compensation**: 10,000 EUR 136 182 137 183 === FFv1 Bayer coding support === … … 147 193 '''Developer:''' Lynne 148 194 195 ==== Developer background and contact information 196 197 Lynne <dev@lynne.ee>. Based in Europe, FFmpeg developer for over 7 years and a thousand commits. Has written multiple decoders and encoders for FFmpeg, as well as the entire Vulkan infrastructure. Member of Khronos, developing the Vulkan specifications. Worked on the AV1 codec specifications. 198 149 199 ==== Milestones 150 200 … … 153 203 * **Description**: Minimum implementation of Bayer encoding and decoding for the CPU encoder. Both have to be added at the same time as this is adding new features to the codec. 154 204 155 * **Deliverables**: Patches to implement compliant support for it posted on the mailing list. 205 * **Deliverables**: A pull request to implement the feature, passing all tests, is either merged or has received at least one merge approval. 206 207 * **Compensation**: 10,000 EUR 156 208 157 209 ===== FFv1 Vulkan Bayer video encoding and decoding … … 159 211 * **Description**: Implementation of Bayer encoding and decoding for the Vulkan FFv1 encoder and decoders. 160 212 161 * **Deliverables**: Patches to implement compliant support for it posted on the mailing list. 162 163 === swscale Vulkan backend === 164 165 '''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. 166 167 '''Expected results:''' swscale Vulkan backend, with feature parity to the C backend 168 169 '''Duration:''' 12 Months 170 171 '''Payment:''' 45,000 EUR 172 173 '''Developer:''' Lynne 174 175 ==== Milestones 176 177 ===== Create a new custom backend 178 179 * **Description**: This takes the first step of implementing a Vulkan backend by initializing a context, a GLSL compiler, and correctly outputting and reusing hardware frames. 180 181 * **Deliverables**: Patches to implement it are upstreamed into Niklas' latest swscale rewrite branch. 182 183 ===== Implement currently supported primitives in GLSL 184 185 * **Description**: This milestone will implement current primitives/codelets into GLSL. 186 187 * **Deliverables**: Patches to implement it are upstreamed into Niklas' latest swscale rewrite branch. 213 * **Deliverables**: A pull request to implement the feature, passing all tests, is either merged or has received at least one merge approval. 214 215 * **Compensation**: 10,000 EUR 188 216 189 217 === swscale AArch64 NEON backend ===
