Changes between Version 28 and Version 29 of SponsoringPrograms/STF/2025


Ignore:
Timestamp:
Sep 8, 2025, 7:42:45 AM (10 months ago)
Author:
Lynne
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SponsoringPrograms/STF/2025

    v28 v29  
    9797== Describe the projects
    9898
     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
     113Lynne <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
    99133=== FFv1 Vulkan improvements ===
    100134
     
    109143'''Developer:''' Lynne
    110144
     145==== Developer background and contact information
     146
     147Lynne <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
    111149==== Milestones
    112150
     
    115153* **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.
    116154
    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
    118158
    119159===== 16-bit floating-point video encoding
     
    121161* **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.
    122162
    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
    124166
    125167===== 32-bit floating-point video decoding
     
    127169* **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.
    128170
    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
    130174
    131175===== 32-bit floating-point video encoding
     
    133177* **Description**: Same as the previous milestone, for the encoder. 32-bit floating point video encoding support would be added to the encoder.
    134178
    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
    136182
    137183=== FFv1 Bayer coding support ===
     
    147193'''Developer:''' Lynne
    148194
     195==== Developer background and contact information
     196
     197Lynne <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
    149199==== Milestones
    150200
     
    153203* **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.
    154204
    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
    156208
    157209===== FFv1 Vulkan Bayer video encoding and decoding
     
    159211* **Description**: Implementation of Bayer encoding and decoding for the Vulkan FFv1 encoder and decoders.
    160212
    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
    188216
    189217=== swscale AArch64 NEON backend ===