doc:appunti:hardware:ambarella_custom_firmware
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
doc:appunti:hardware:ambarella_custom_firmware [2022/02/26 14:58] – niccolo | doc:appunti:hardware:ambarella_custom_firmware [2022/05/01 14:56] – [Chroma curves examples] niccolo | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== |
- | **How to customize the firmware | + | **How to customize the Ambarella |
+ | |||
+ | See also my SJCAM SJ8 Pro review in page **[[sjcam-8pro]]**. | ||
In this page there are some notes about customizing the firmware of the **[[sjcam-8pro|SJCAM SJ8 Pro]]** action camera, using the **[[https:// | In this page there are some notes about customizing the firmware of the **[[sjcam-8pro|SJCAM SJ8 Pro]]** action camera, using the **[[https:// | ||
Line 11: | Line 13: | ||
===== My Custom firmware ===== | ===== My Custom firmware ===== | ||
- | This is my list for firmware | + | Download the custom firmware: **{{.: |
+ | |||
+ | This is a breif list of customizations, see the README.txt contained into the archive for more details: | ||
* Increased **bitrates**, | * Increased **bitrates**, | ||
Line 87: | Line 91: | ||
For all that reasons, I decided to replace the curves with linear ones. It may be that I will intervene in the future if I notice any problems in the footages. | For all that reasons, I decided to replace the curves with linear ones. It may be that I will intervene in the future if I notice any problems in the footages. | ||
+ | |||
+ | === Chroma curves === | ||
+ | |||
+ | At the moment I leaved the same chroma curves as the original 1.3.2 SJCAM firmware. | ||
+ | |||
=== Sounds === | === Sounds === | ||
Line 418: | Line 427: | ||
Also **photos** have their chroma tables contained into **adj_still_default_00_Imx377** and **adj_hiso_still_default_00_Imx377**. | Also **photos** have their chroma tables contained into **adj_still_default_00_Imx377** and **adj_hiso_still_default_00_Imx377**. | ||
- | |||
^ Tables | ^ Tables | ||
Line 432: | Line 440: | ||
Each chroma curve is **defined by 128 points** that map to a chrominance value ranging from 0 to 2048. On the X axis there is the brightness of the image pixels, on the Y axis there is the chroma correction factor to be applied. A value of **zero** means to **remove all the chroma** information, | Each chroma curve is **defined by 128 points** that map to a chrominance value ranging from 0 to 2048. On the X axis there is the brightness of the image pixels, on the Y axis there is the chroma correction factor to be applied. A value of **zero** means to **remove all the chroma** information, | ||
+ | |||
+ | In the following image you can see how BitrateEditor shows the chroma **4K30/128 table**. All values are equal to 1024, thus resulting into a stright line: | ||
{{.: | {{.: | ||
- | The three curves are applied by stretching the full range **over the full brightness range** of the image, i.e. the leftmost point of the curve applies to the darkest points of the image, the rightmost point of the curve applies to the brightest points of the image. The three curves are combined together, probably each one is **weighed upon the overall exposition of the image**. It seems that the **4K30/ | + | BitrateEditor can show the tables also as **curves**, here there are the ones provided by the original SJCAM firmware 1.3.2: |
+ | |||
+ | {{.: | ||
+ | {{.: | ||
+ | {{.: | ||
+ | |||
+ | The three curves are applied by stretching the full range **over the full brightness range** of the image, i.e. the leftmost point of the curve applies to the darkest points of the image, the rightmost point of the curve applies to the brightest points of the image. The three curves are combined together, probably each one is **weighed upon the overall exposition of the image**. It seems that the **4K30/ | ||
Changes made on tables **%%4K30/ | Changes made on tables **%%4K30/ | ||
Line 452: | Line 469: | ||
We tried to understand when the **4K30/ | We tried to understand when the **4K30/ | ||
- | {{.: | + | {{.: |
- | {{.: | + | {{.: |
- | {{.: | + | {{.: |
- | Using an exposition of **EV -1.0** or higher, no chrominance is added at all. Some mild effect is visible at **EV -2.0**, despite the chroma graph teeth were set to the maximum value of 2048. In the darker part of the image the effect is not noticeable; the first tooth on the left produces almost no effect. Also the third tooth on the right does not produces any noticeable effect. Only the central **narrow tooth** produces a **narrow band of color**. If the tooth instead expands from the center to the right (last image), the colored area expands from the center towards the brightest part. | + | Using an exposition of **EV -1.0** or higher, no chrominance is added at all. Some mild effect is visible at **EV -2.0**, despite the chroma graph teeth were set to the maximum value of 2048. In the darker part of the image the effect is not noticeable; the first tooth on the left produces almost no effect. Also the third tooth on the right does not produces any noticeable effect. Only the central **narrow tooth** produces a **narrow band of color**. If the tooth instead expands from the center to the right (last image), the colored area expands from the center towards the upper brightest part. |
So the maximum effect of the **4K30/ | So the maximum effect of the **4K30/ | ||
- | {{.: | + | {{.: |
=== Curve 4K30/128 === | === Curve 4K30/128 === | ||
Line 468: | Line 485: | ||
The curve **4K30/ | The curve **4K30/ | ||
- | {{.: | + | {{.: |
- | {{.: | + | {{.: |
- | {{.: | + | {{.: |
=== Curve 4K30/0 === | === Curve 4K30/0 === | ||
Line 478: | Line 495: | ||
The curve **4K30/0** is effective, using the maximum value of 2048, starting from **EV 0.0** and above: | The curve **4K30/0** is effective, using the maximum value of 2048, starting from **EV 0.0** and above: | ||
- | {{.: | + | {{.: |
- | {{.: | + | {{.: |
- | {{.: | + | {{.: |
=== Mixing the curves === | === Mixing the curves === | ||
- | The first example shows the effect of creating some **disjointed theet on the three curves**; each tooth is set at the maximum value of 2048. Actually the single tooth of the curve 4k30/255 produces almos no visble effect, you can see **only three narrow bands of colors** corresponding to teeth on curves **4k30/128** and **4k30/0**: | + | The first example shows the effect of creating some **disjointed theet on the three curves**; each tooth is set at the maximum value of 2048. Actually the single tooth of the curve 4k30/255 produces almos no visble effect, you can see **only three narrow bands of colors** corresponding to teeth on curves **4K30/128** and **4K30/0**: |
- | {{.: | + | {{.: |
The last example is used to show how curves are **mixed together**. In this case a **wide teeth** on curve **4K30/ | The last example is used to show how curves are **mixed together**. In this case a **wide teeth** on curve **4K30/ | ||
- | {{.: | + | {{.: |
===== AGC and digital gain ===== | ===== AGC and digital gain ===== |
doc/appunti/hardware/ambarella_custom_firmware.txt · Last modified: 2022/05/05 06:26 by niccolo