[libcamera-devel,v2,0/7] ipu3: imgu: Improve ImgU calculation procedure
mbox series

Message ID 20210503092705.15562-1-jacopo@jmondi.org
Headers show
Series
  • ipu3: imgu: Improve ImgU calculation procedure
Related show

Message

Jacopo Mondi May 3, 2021, 9:26 a.m. UTC
To the ImgU pipeline calculation.

To recap: the current ImgU calculation procedure doesn't work if we select
a sensor resolution smaller than the full frame size, and result in a
stall in the ImgU producing frames, or in an error in finding any configuration
at all.

This set of improvements fixes some of the issues we had.
In example, on Soraka
$ cam -swidth=1280,height=720 -swidth=640,height=480 -c1 -C
now works with a 2112x1188 frame input.

As the ImgU is not been validated with 320x240 resolutions, some use cases
like main=1920x1080,vf=320x240 remain broken and commit
7208e70211a6 ("libcamera: ipu3: Always use sensor full frame size")
cannot be yet reverted.

The series remains of awful quality, I just collected tags and applied a few
comments here and there and re-tested with CTS.

I've dropped the controversial "libcamera: ipu3: imgu: Change IF_CROP_MAX to 40"
as the issue is not clarified.

I've opened a new issue on the Python script to replicate one of the comments
received by Laurent on v1 https://github.com/intel/intel-ipu3-pipecfg/issues/2
and referenced it in code.

Overall, the final result is not worse than how the ImgU configuration procedure
looked like before, it might fixes some bugs, but nobody is really happy with
the result :(

No regressions detected when running CTS.

Jacopo Mondi (7):
  libcamera: ipu3: imgu: Update BDS calculation process
  libcamera: ipu3: imgu: Filter BDS by height
  libcamera: ipu3: imgu: Fix BDS height calculation
  libcamera: ipu3: imgu: Fix IF height selection
  libcamera: ipu3: imgu: Fix BSD height size comparison
  libcamera: ipu3: imgu: Add pipe calculation debug
  libcamera: ipu3: imgu: Bump script version

 src/libcamera/pipeline/ipu3/imgu.cpp | 111 +++++++++++++++++++++------
 1 file changed, 89 insertions(+), 22 deletions(-)

--
2.31.1