| | 107 | '''Payment:''' 30,000 EUR |
| | 108 | |
| | 109 | '''Developer:''' Lynne |
| | 110 | |
| | 111 | ==== Milestones |
| | 112 | |
| | 113 | ===== 16-bit floating-point video decoding |
| | 114 | |
| | 115 | * **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 | |
| | 117 | * **Deliverables**: Patches to implement compliant support for it posted on the mailing list. |
| | 118 | |
| | 119 | ===== 16-bit floating-point video encoding |
| | 120 | |
| | 121 | * **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 | |
| | 123 | * **Deliverables**: Patches to implement compliant support for it posted on the mailing list. |
| | 124 | |
| | 125 | ===== 32-bit floating-point video decoding |
| | 126 | |
| | 127 | * **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 | |
| | 129 | * **Deliverables**: Patches to implement compliant support for it posted on the mailing list. |
| | 130 | |
| | 131 | ===== 32-bit floating-point video encoding |
| | 132 | |
| | 133 | * **Description**: Same as the previous milestone, for the encoder. 32-bit floating point video encoding support would be added to the encoder. |
| | 134 | |
| | 135 | * **Deliverables**: Patches to implement compliant support for it posted on the mailing list. |
| | 136 | |
| | 137 | === FFv1 Bayer coding support === |
| | 138 | |
| | 139 | '''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. |
| | 140 | |
| | 141 | '''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. |
| | 142 | |
| | 143 | '''Duration:''' 6 Months |
| | 144 | |
| 111 | | === FFv1 Bayer coding support === |
| 112 | | |
| 113 | | '''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. |
| 114 | | |
| 115 | | '''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. |
| 116 | | |
| 117 | | '''Duration:''' 6 Months |
| 118 | | |
| 119 | | '''Payment:''' 15,000 EUR |
| | 149 | ==== Milestones |
| | 150 | |
| | 151 | ===== FFv1 Bayer video encoding and decoding |
| | 152 | |
| | 153 | * **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 | |
| | 155 | * **Deliverables**: Patches to implement compliant support for it posted on the mailing list. |
| | 156 | |
| | 157 | ===== FFv1 Vulkan Bayer video encoding and decoding |
| | 158 | |
| | 159 | * **Description**: Implementation of Bayer encoding and decoding for the Vulkan FFv1 encoder and decoders. |
| | 160 | |
| | 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:''' 40,000 EUR |