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
Add support for Arducam OV64A40 64MPx camera module #84
Closed
Closed
Changes from all commits
Commits
Show all changes
22 commits
Select commit
Hold shift + click to select a range
be13578
meson: Add libpisp.wrap
naushir f0cf7c1
libcamera: formats: Add PiSP specific image and config buffer formats
naushir 98be53f
ipa: rpi: hdr: Add the ability to alter the LSC table
davidplowman 18b8db1
ipa: rpi: alsc: Do not re-read the alsc.status metadata
davidplowman 1768689
ipa: rpi: agc: Allow AGC channels to avoid using "fast desaturation"
davidplowman 7516374
ipa: rpi: vc4: Move denoise control handling into the VC4 derived IPA
naushir 54ecd61
ipa: rpi: agc: Fetch AWB status in the prepare method
davidplowman b51c2dc
ipa: rpi: agc: Make AGC controls affect all channels
davidplowman 8782dbf
libcamera: controls: Add controls for HDR
davidplowman 4eb5f28
ipa: rpi: Add HDR support
naushir b61527d
pipeline: rpi: Add support for Raspberry Pi 5
naushir b866eaa
ipa: rpi: Add support for Raspberry Pi 5
naushir 8be0303
utils: raspberrypi: ctt: Adapt tuning tool for both VC4 and PiSP
davidplowman ac34a10
utils: raspberrypi: ctt: Added CAC support to the CTT
bebon901 a9d0eb3
utils: raspberrypi: ctt: Changed CTT handling of VC4 and PiSP
bebon901 bb894e5
utils: raspberrypi: ctt: Update tuning tool for HDR
davidplowman abe7174
RASPBERRYPI ONLY: Add Sony IMX708 sensor properties
njhollinghurst 4a23664
RASPBERRYPI ONLY: Handle mandatory stream flags
naushir b775911
libcamera: camera_sensor: Add OV64A40 sensor properties
kbingham 83a5acf
ipa: rpi: Provide a Camera Helper for the OV64A40
c409c4a
ipa: rpi: vc4: Add OV64A40 tuning files
kbingham 5fc413f
ipa: rpi: pisp: Add OV64A40 tuning file
File filter
Filter by extension
Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -34,6 +34,8 @@ class BayerFormat | |
None = 0, | ||
CSI2 = 1, | ||
IPU3 = 2, | ||
PISP1 = 3, | ||
PISP2 = 4, | ||
}; | ||
|
||
constexpr BayerFormat() | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
/* SPDX-License-Identifier: BSD-2-Clause */ | ||
/* | ||
* Copyright (C) 2021, Raspberry Pi Ltd | ||
* | ||
* cam_helper_ov64a40.cpp - camera information for ov64a40 sensor | ||
*/ | ||
|
||
#include <assert.h> | ||
|
||
#include "cam_helper.h" | ||
|
||
using namespace RPiController; | ||
|
||
class CamHelperOv64a40 : public CamHelper | ||
{ | ||
public: | ||
CamHelperOv64a40(); | ||
uint32_t gainCode(double gain) const override; | ||
double gain(uint32_t gainCode) const override; | ||
void getDelays(int &exposureDelay, int &gainDelay, | ||
int &vblankDelay, int &hblankDelay) const override; | ||
double getModeSensitivity(const CameraMode &mode) const override; | ||
|
||
private: | ||
/* | ||
* Smallest difference between the frame length and integration time, | ||
* in units of lines. | ||
*/ | ||
static constexpr int frameIntegrationDiff = 4; | ||
}; | ||
|
||
CamHelperOv64a40::CamHelperOv64a40() | ||
: CamHelper({}, frameIntegrationDiff) | ||
{ | ||
} | ||
|
||
uint32_t CamHelperOv64a40::gainCode(double gain) const | ||
{ | ||
return static_cast<uint32_t>(gain * 128.0); | ||
} | ||
|
||
double CamHelperOv64a40::gain(uint32_t gainCode) const | ||
{ | ||
return static_cast<double>(gainCode) / 128.0; | ||
} | ||
|
||
void CamHelperOv64a40::getDelays(int &exposureDelay, int &gainDelay, | ||
int &vblankDelay, int &hblankDelay) const | ||
{ | ||
/* The driver appears to behave as follows: */ | ||
exposureDelay = 2; | ||
gainDelay = 2; | ||
vblankDelay = 2; | ||
hblankDelay = 2; | ||
} | ||
|
||
double CamHelperOv64a40::getModeSensitivity(const CameraMode &mode) const | ||
{ | ||
if (mode.binX >= 2 && mode.scaleX >= 4) { | ||
return 4.0; | ||
} else if (mode.binX >= 2 && mode.scaleX >= 2) { | ||
return 2.0; | ||
} else { | ||
return 1.0; | ||
} | ||
} | ||
|
||
static CamHelper *create() | ||
{ | ||
return new CamHelperOv64a40(); | ||
} | ||
|
||
static RegisterCamHelper reg("ov64a40", &create); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Comment doesn't seem to match what the routine is doing?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll drop both comments ;)