doc:appunti:hardware:sjcam-8pro-custom-firmware
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
doc:appunti:hardware:sjcam-8pro-custom-firmware [2022/08/09 08:25] – [Chroma curves] niccolo | doc:appunti:hardware:sjcam-8pro-custom-firmware [2023/06/09 07:37] – [My Custom firmware] niccolo | ||
---|---|---|---|
Line 3: | Line 3: | ||
The **SCAM SJ8 Pro** is a mid-range priced action camera, equipped with chips well known for their quality: the **Ambarella H22 S85** and the **Sony IMX377** sensor. Still in 2022 it was well placed between the expensives GoPros and the plethora low-end budget cameras. Unfortunately the support from SJCAM was ended in 2020 with the **firwmare 1.3.2** still affected by various bugs, image quality and video codec settings **definitely to be improved**. Also the Adnroid app is disappointing. | The **SCAM SJ8 Pro** is a mid-range priced action camera, equipped with chips well known for their quality: the **Ambarella H22 S85** and the **Sony IMX377** sensor. Still in 2022 it was well placed between the expensives GoPros and the plethora low-end budget cameras. Unfortunately the support from SJCAM was ended in 2020 with the **firwmare 1.3.2** still affected by various bugs, image quality and video codec settings **definitely to be improved**. Also the Adnroid app is disappointing. | ||
- | Fortunately enough, being equipped with the Ambarella chip, it was possible to **reverse engineer** some of its firmware and API. Creating a custom firmware you can imporove | + | Fortunately enough, being equipped with the Ambarella chip, it was possible to **reverse engineer** some of its firmware and API. Creating a custom firmware you can improve |
The main honorable mention goes to the hacker **VMax**, which created the software **[[https:// | The main honorable mention goes to the hacker **VMax**, which created the software **[[https:// | ||
- | See my other page about the SJCAM SJ8 Pro action camera: **[[sjcam-8pro]]**, **[[sjcam-8pro-ambarella-firmware-modding]]** | + | **WARNING**: |
+ | |||
+ | See my other page about the SJCAM SJ8 Pro action camera: | ||
+ | |||
+ | * **[[sjcam-8pro]]** | ||
+ | * **[[sjcam-8pro-ambarella-firmware-modding]]** | ||
+ | * **[[sjcam-8pro-ambarella-wifi-api]]** | ||
===== My Custom firmware ===== | ===== My Custom firmware ===== | ||
Line 17: | Line 23: | ||
* Increased **bitrates**, | * Increased **bitrates**, | ||
* Increased **keyframes** rates (reducing GOP-N): one keyframe every 1/4 second instead of 1 per second. | * Increased **keyframes** rates (reducing GOP-N): one keyframe every 1/4 second instead of 1 per second. | ||
- | * **YUV color profiles**: all the three profiles **Default**, | + | * **YUV color profiles**: all the three profiles **Default**, |
- | * Fixed **exposition** profiles: **Center**, **Spot** and **Average**. | + | * Fixed **exposition** profiles: **Center**, **Spot** and **Average** |
* Changed **gamma curves**: added some brightness to shadows with an overall gamma coefficient of 1.10 and removed a slight red casting when using Auto White Balance in early hours of sunny days. All the gamma tables for video modes are the same, for photo modes we leaved a linear gamma (1.0) for R, G and B. | * Changed **gamma curves**: added some brightness to shadows with an overall gamma coefficient of 1.10 and removed a slight red casting when using Auto White Balance in early hours of sunny days. All the gamma tables for video modes are the same, for photo modes we leaved a linear gamma (1.0) for R, G and B. | ||
* Change **chroma curves** to reduce banding in blue sky and to attenuate over-saturated colors. | * Change **chroma curves** to reduce banding in blue sky and to attenuate over-saturated colors. | ||
- | * Changed power-on, power-off and photo shutter **sounds** with louder ones. | + | * Changed power-on, power-off and photo shutter **sounds** with **louder** ones. |
* Disabled **LRV** (low resolution videos) recording. | * Disabled **LRV** (low resolution videos) recording. | ||
Line 60: | Line 66: | ||
^ My Custom SJ8Pro | ^ My Custom SJ8Pro | ||
+ | **WARNING**: | ||
==== YUV Profiles ==== | ==== YUV Profiles ==== | ||
Line 84: | Line 91: | ||
* Group **%%*/0%%** is not used at all. | * Group **%%*/0%%** is not used at all. | ||
- | * Groups | + | * When using **dynamic ISO modes**, groups |
+ | * When using **fixed ISO modes** it seems instead that groups **%%*/ | ||
* It seems that in some **particular circumstances** (some color component of */255 is **very dark**) the gamma curve is replaced automatically with something different, may be a **negative** (descending) curve. | * It seems that in some **particular circumstances** (some color component of */255 is **very dark**) the gamma curve is replaced automatically with something different, may be a **negative** (descending) curve. | ||
Line 99: | Line 107: | ||
The curves so calculated were loaded for all the video modes tables: */255, */128 and */0 (despite the latter seems not used at all). For photo modes I leaved a linear gamma (no transformation at all), because I prefer to do color balancing in post-processing. | The curves so calculated were loaded for all the video modes tables: */255, */128 and */0 (despite the latter seems not used at all). For photo modes I leaved a linear gamma (no transformation at all), because I prefer to do color balancing in post-processing. | ||
+ | |||
+ | As you can see from the following graphs, my custom gamma curves have just a little deviation from the **neutral 1.0 gamma**: | ||
+ | |||
+ | {{.: | ||
+ | {{.: | ||
+ | {{.: | ||
+ | |||
+ | The gamma curves of the **original 1.3.2 firmware** do instead **boost the image contrast** by darkening the shadows and brightening the highlights: | ||
+ | |||
+ | {{.: | ||
+ | {{.: | ||
+ | {{.: | ||
==== Chroma curves ==== | ==== Chroma curves ==== | ||
Line 104: | Line 124: | ||
I think that the original chroma curves programmed into the SJ8 Pro are responsible for the over-saturated colors and for some annoying banding often visible in the blue sky. I changed the curves reducing smoothly the graph toward the highlights for the table */128 (used for evenly exposed parts of the image) and increasing smoothly the graph starting from the shadows for the table */0 (used for over-exposed parts of the image). Based on my testing the table */255 is responsible for very low chrominance applied only for heavy under-exposed images, so I leaved the original graph, which is a straight line all at the maximum value. | I think that the original chroma curves programmed into the SJ8 Pro are responsible for the over-saturated colors and for some annoying banding often visible in the blue sky. I changed the curves reducing smoothly the graph toward the highlights for the table */128 (used for evenly exposed parts of the image) and increasing smoothly the graph starting from the shadows for the table */0 (used for over-exposed parts of the image). Based on my testing the table */255 is responsible for very low chrominance applied only for heavy under-exposed images, so I leaved the original graph, which is a straight line all at the maximum value. | ||
- | In the following images you can see the **custom chroma curves**: | + | In the following images you can see my **custom chroma curves**: |
{{.: | {{.: |
doc/appunti/hardware/sjcam-8pro-custom-firmware.txt · Last modified: 2023/06/09 07:38 by niccolo