1
0
mirror of https://git.ffmpeg.org/ffmpeg.git synced 2026-10-28 15:19:38 +03:00
Files
ffmpeg/libavfilter
Philip Langdale 2f00078367 avfilter/fruc_vulkan: add the initial optical-flow pipeline
Add the Vulkan optical-flow machinery on top of the filter skeleton:
* a grayscale-extraction compute shader
* the VK_NV_optical_flow session and its persistent input/flow images
* the cross-queue (compute -> optical flow -> compute) submission with
  binary-semaphore ordering
* an interpolation compute shader dispatched per output frame which blends each
  new frame instead of repeating the nearest source frame

Notable characteristics:

* At this stage we are doing a simple proportional blend that doesn't actually
  look at the optical flow information. That will happen in the next commit
* The optical flow is stored in a weird nvidia specific fixed point image
  format. Yay?
* Optical flow is calculated based purely on Luma. For YUV format, this is
  trivially obtained, but for RGB input, we should put some effort into getting
  accurate Luma. But we only need relative Luma differences, so we don't have
  to use the exactly correct colourspace conversion; I've just hard-coded
  BT.709
* We're doing host-synchronisation for initial simplicity, but this will get
  replaced in subsequent changes
* The accepted format set is deliberately narrow to begin with: planar and
  semi-planar YUV, gray, and packed RGB whose sampled channels are already
  in component order. Subsequent changes will expand the support set.
* We rely on VK_KHR_maintenance9 to enable implicit ownership transfers for
  images between the compute and optical flow queue families.
2026-08-29 17:07:53 -07:00
..
2023-11-18 19:55:42 +01:00
2024-08-19 21:48:04 +02:00
2025-08-03 13:48:47 +02:00
2025-08-03 13:48:47 +02:00
2024-08-19 21:48:04 +02:00
…
…
…
…
…
2024-08-19 21:48:04 +02:00
2025-12-14 12:41:00 +05:30
…
…
2025-08-03 13:48:47 +02:00
…
…
2024-08-19 21:48:04 +02:00
…
…
…
2024-08-19 21:48:04 +02:00
…
…
2025-08-03 13:48:47 +02:00
2024-07-01 22:31:02 +02:00
2024-08-19 21:48:04 +02:00
2025-08-03 13:48:47 +02:00
2025-08-03 13:48:47 +02:00
2024-08-19 21:48:04 +02:00
…
2024-02-16 21:34:38 +01:00
2025-06-15 21:00:38 +05:30
2025-10-16 18:41:19 +02:00
2025-07-04 01:32:27 +02:00
2025-07-04 01:32:27 +02:00
2026-05-15 20:29:29 +02:00
2026-05-15 20:29:29 +02:00
2025-08-03 13:48:47 +02:00
…
2025-08-03 13:48:47 +02:00
…
…