Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

drivers: video: sw_isp: software-based image processing #87007

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

josuah
Copy link
Collaborator

@josuah josuah commented Mar 12, 2025

Dependency:

The new lib/pixel introduced above allows processing of image data using software and SIMD.
Wrap it into a struct video_api to implement a software-based ISP.

Q: Why a hardware API on top of an existing software API?
A: Being able to abstract away whether it is software or hardware implementing the image processing, allowing software built on top to use the exact same API.

The devicetree is not involved at all, only Kconfig, exactly like VIDEO_SW_GENERATOR.

@josuah josuah added area: Drivers RFC Request For Comments: want input from the community area: Video Video subsystem labels Mar 12, 2025
@zephyrbot zephyrbot added the area: Samples Samples label Mar 12, 2025
@kartben kartben assigned josuah and unassigned kartben Mar 12, 2025
@josuah josuah added the In progress For PRs: is work in progress and should not be merged yet. For issues: Is being worked on label Mar 13, 2025
@josuah
Copy link
Collaborator Author

josuah commented Mar 13, 2025

force-push:

  • Add a start()/stop() action, which was missing as pointed out

I would like to add unit tests by rebasing this on top of #85968 to provide the input test data.

josuah added 5 commits March 13, 2025 12:23
The "pixel" library aims facilitating the implementation of all image
processing tasks, such as pixel conversion, with a focus on low-resource
environments. The processing functions scale down to per-pixel "kernels"
to line-based conversion to full streams of several frames.

Signed-off-by: Josuah Demangeon <me@josuah.net>
The newly introduced lib/pixel features utilities that help composing
video pipelines together for the purpose of stream processing, as well
as debug utilities.

Signed-off-by: Josuah Demangeon <me@josuah.net>
This is a temporary test for CI only.

Signed-off-by: Josuah Demangeon <me@josuah.net>
This introduces the RGB 24-bit format as defined in the Linux header
<include/uapi/linux/videodev2.h>, including the bits-per-pixel size
definition.

Signed-off-by: Josuah Demangeon <me@josuah.net>
This adds a driver that converts video frames submitted into a different
format, which supports bayer (RGGB8, BGGR8, GRBG8, GBRG8), RGB24,
RGB565, YUYV input format and can convert them to RGB24 RGB565, and YUYV.
Setting the video input and output formats will control the format
conversion done by this software device.

Signed-off-by: Josuah Demangeon <me@josuah.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: Drivers area: Samples Samples area: Video Video subsystem In progress For PRs: is work in progress and should not be merged yet. For issues: Is being worked on RFC Request For Comments: want input from the community
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants