Changes between Version 10 and Version 11 of SponsoringPrograms/STF/2025


Ignore:
Timestamp:
Jul 29, 2025, 8:44:57 PM (12 months ago)
Author:
Pierre-Anthony Lemieux
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SponsoringPrograms/STF/2025

    v10 v11  
    99* Thilo Borgmann (thilo.borgmann@mail.de)
    1010* 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 Months
    19 
    20 '''Payment:''' 20,000 EUR
    21 
    22 '''Developer:''' Lynne
    23 
    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 Months
    31 
    32 '''Payment:''' 15,000 EUR
    33 
    34 '''Developer:''' Lynne
    35 
    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 backend
    41 
    42 '''Duration:''' 12 Months
    43 
    44 '''Payment:''' 40,000 EUR
    45 
    46 '''Developer:''' Lynne
    4711
    4812== Template
     
    7842Example: 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.
    7943
    80 == Application
     44== FFMPEG 2025 STF Application
    8145
    8246=== Describe the technology this effort will support.
     
    11680== Describe the projects
    11781
     82=== FFv1 Vulkan improvements ===
    11883
    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.
    12085
    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.
    12287
    123 Example: Classify and fix outstanding issues identified by Coverity
     88'''Duration:''' 8 Months
    12489
    125 === Description of the work
     90'''Payment:''' 20,000 EUR
    12691
    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
    12893
    129 === Milestones
     94=== FFv1 Bayer coding support ===
    13095
    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.
    13297
    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.
    13499
    135 Example: Review all outstanding Coverity issues and, for each one, determine whether it is a false positive.
     100'''Duration:''' 6 Months
    136101
    137 ===== Deliverables
     102'''Payment:''' 15,000 EUR
    138103
    139 Example: List of both false positive and real issues posted to the FFmpeg dev mailing list.
     104'''Developer:''' Lynne
    140105
    141 ===== Requested compensation (in USD or Euros)
     106=== swscale Vulkan backend ===
    142107
    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.
    144109
     110'''Expected results:''' swscale Vulkan backend, with feature parity to the C backend
    145111
     112'''Duration:''' 12 Months
     113
     114'''Payment:''' 40,000 EUR
     115
     116'''Developer:''' Lynne