| 395 | | **Description:** The existing SwsOps architecture will need to be updated to support scaling operations. This includes the necessary regression testing work needed to ensure the new design scales well and does not introduce a performance and/or quality regression versus the legacy code paths. |
| 396 | | |
| 397 | | **Deliverables:** An implementation of the necessary new APIs and high-level logic, alongside a reference implementation in C, is either merged or has received at least one merge approval. |
| | 395 | **Description:** The existing SwsOps architecture will need to be updated to support scaling operations. This includes the necessary regression testing work needed to ensure the new design scales well and does not introduce a performance and/or quality regression versus the legacy code paths. After expanding the SwsOps architecture, the x86_64 backend will need to be updated to support the new scaling operations. This includes implementing optimized versions of the new APIs using SIMD instructions. |
| | 396 | |
| | 397 | **Deliverables:** |
| | 398 | - An implementation of the necessary new APIs and high-level logic, alongside a reference implementation in C, is either merged or has received at least one merge approval from another maintainer. |
| | 399 | - An implementation, targeting at least SSE4, AVX2 and AVX-512, of the newly added APIs, is either merged or has received at least one merge approval from another maintainer. |
| | 400 | |
| | 401 | **Compensation:** 40,000 EUR |
| | 402 | |
| | 403 | **Time estimate:** 6-7 weeks = 260 hours (full-time) |
| | 404 | |
| | 405 | **Delivery date:** 3 months after kick-off |
| | 406 | |
| | 407 | **Completion of this milestone will improve the project in the following way(s):** |
| | 408 | - More of the remaining buggy/slow/unmaintained legacy code paths can be properly deprecated and phased out, in favor of the newer, simpler and more robust approach. |
| | 409 | - swscale will become more reliable and able to handle more formats without crashing or delivering incorrect data |
| | 410 | |
| | 411 | ===== Remaining format coverage |
| | 412 | |
| | 413 | **Description:** Some, more difficult, formats, which were previously handled by the legacy code paths, are not yet supported by the SwsOps backend. This notably includes 96/128-bit formats, XYZ, Bayer and packed/subsampled formats (e.g. YUYV). |
| | 414 | |
| | 415 | **Deliverables:** |
| | 416 | - An implementation of the necessary APIs and high-level logic, alongside a reference implementation in C, and possibly an x86_64 code path for the most important formats, is either merged or has received at least one merge approval from another maintainer. |
| 401 | | ===== Updating x86_64 backend |
| 402 | | |
| 403 | | **Description:** After expanding the SwsOps architecture, the x86_64 backend will need to be updated to support the new scaling operations. This includes implementing optimized versions of the new APIs using SIMD instructions. |
| 404 | | |
| 405 | | **Deliverables:** An implementation, targeting at least SSE4, AVX2 and AVX-512, of the newly added APIs in Milestone 1, is either merged or has received at least one merge approval. |
| 406 | | |
| 407 | | **Compensation:** 20,000 EUR |
| 408 | | |
| 409 | | ===== Remaining format coverage |
| 410 | | |
| 411 | | **Description:** Some, more difficult, formats, which were previously handled by the legacy code paths, are not yet supported by the SwsOps backend. This notably includes 96/128-bit formats, XYZ, Bayer and packed/subsampled formats (e.g. YUYV). |
| 412 | | |
| 413 | | **Deliverables:** An implementation of the necessary APIs and high-level logic, alongside a reference implementation in C, and possibly an x86_64 code path for the most important formats, is either merged or has received at least one merge approval. |
| 414 | | |
| 415 | | **Compensation:** 20,000 EUR |
| | 420 | **Time estimate:** 3-4 weeks = 140 hours (full-time) |
| | 421 | |
| | 422 | **Delivery date:** 5 months after kick-off |
| | 423 | |
| | 424 | **Completion of this milestone will improve the project in the following way(s):** |
| | 425 | - More of the remaining buggy/slow/unmaintained legacy code paths can be properly deprecated and phased out, in favor of the newer, simpler and more robust approach. |
| | 426 | - swscale will become more reliable and able to handle more formats without crashing or delivering incorrect data |