Re: [RFC PATCH 0/3] Implement Region of Interest(ROI) support.
From: Deepa Guthyappa Madivalara
Date: Thu Jan 15 2026 - 19:38:14 EST
On 1/15/2026 5:42 AM, Nicolas Dufresne wrote:
Hi,Thank you for the detailed information. I reviewed the documentation
Le mercredi 14 janvier 2026 à 14:14 -0800, Deepa Guthyappa Madivalara a écrit
[...]
Thanks for the quick comments.Have you read how this is implemented in Vulkan and D3D12 ? Please have a read:
Qp map for can be too much data to be sent from user space to firmware
via control per frame.
Ex: Avc has mbsize as 16 and the max mbpf iris driver supports is 8192x4352.
This would mean 136kb of data (8bit Qp) needs to be transferred for each
frame in worst case.
While are still evaluating Qp map option, due to firmware performance
issues we are
gravitating more towards rectangle ROI.
I am not sure if we will need to support the Qp map in the future.
- Vulkan Video, see quantizationMapTexelSize [0]
- D3D, see QPMapRegionPixelsSize [1]
[0] https://docs.vulkan.org/features/latest/features/proposals/VK_KHR_video_encode_quantization_map.html
[1] https://microsoft.github.io/DirectX-Specs/d3d/D3D12_Video_Encoding_Texture_QPMap_DirtyMap_MotionVectors.html
Note that D3D also support dirty regions (what you call ROI in this proposal),
with no limits, since these are translated into map by drivers (its a software
feature on top) and motion search hints, that one seems rare.
I'm not against having ROI in our API, its common in older chips designs, but
its clearly going away in the long run since most fixed hardware impose very low
region count, which is not usable for modern application. ROI it trivial to
implement on top of QP maps.
A typical use case for that is to use lightweight AI or traditional CV to locate
most relevant portion of a video. The result is more like a heat map, not a set
of rectangles. Then we roughly map that in a low granularity QPMap before
encoding. This allow maintaining very low bandwidth, while preserving the
information needed for the heavier processing in the cloud. I'm including one of
the many example of that, this is a talk from Spiideo [2].
[2] https://gstconf.ubicast.tv/videos/region-based-compression-in-gstreamer/
regards,
Nicolas
and agree with your assessment. I am following up with my team to explore this further.
Thanks,
Deepa