Start with the why:
DepthAI and megaAI have a 12MP color sensor build in (and the FFC version can be used w/ the 12MP Pi HQ Camera). Often lower-resolution encoded video is wanted, but perhaps not necessarily of the full frame - and perhaps only for a particular region of interest.
For example, using the full 12MP input resolution of 4056x3040, the following 'lossless' zooms are possible:
- 4K (3840x2160): 1.48:1
- 1080p (1920x1080): 5.95:1
- 720p (1280x720): 13.37:1
So that's up to a 'lossless' zoom of ~13x when wanting 720p video encoding output. By lossless, I mean the capability to still have direct pixel-to-pixel mapping, so it is indeed still a full/native resolution output, direct from actual pixels.
Move to the how:
The internal frameworks we use for convert/crop/rescale off of the full resolution of the image sensor could be changed to allow an initial X,Y (in pixels) crop location and rework of our encoding implementation to support zoom factor (up to the max direct-pixel-map) when cropping/scaling by changing it to support runtime change of resolution.
Move to the what:
- Support Digital PTZ (pan, tilt, zoom) video output of 4K, 1080p, or 720p.
Note: It may also be possible to support zooming past the lossless pixel-to-pixel direct mapping zoom limits (above) using hardware-accelerated Lanczos or bilinear interpolation, if this is of interest. (To for example, allow zooming to 15x at 1080p output resolution and interpolating between the actual pixels to produce the full resolution encoded video).
Start with the
why:DepthAI and megaAI have a 12MP color sensor build in (and the FFC version can be used w/ the 12MP Pi HQ Camera). Often lower-resolution encoded video is wanted, but perhaps not necessarily of the full frame - and perhaps only for a particular region of interest.
For example, using the full 12MP input resolution of 4056x3040, the following 'lossless' zooms are possible:
So that's up to a 'lossless' zoom of ~13x when wanting 720p video encoding output. By
lossless, I mean the capability to still have direct pixel-to-pixel mapping, so it is indeed still a full/native resolution output, direct from actual pixels.Move to the
how:The internal frameworks we use for convert/crop/rescale off of the full resolution of the image sensor could be changed to allow an initial X,Y (in pixels) crop location and rework of our encoding implementation to support zoom factor (up to the max direct-pixel-map) when cropping/scaling by changing it to support runtime change of resolution.
Move to the
what:Note: It may also be possible to support zooming past the
losslesspixel-to-pixel direct mapping zoom limits (above) using hardware-accelerated Lanczos or bilinear interpolation, if this is of interest. (To for example, allow zooming to 15x at 1080p output resolution and interpolating between the actual pixels to produce the full resolution encoded video).