User Tools

Site Tools


doc:appunti:hardware:sjcam-8pro-ambarella-firmware-modding

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:appunti:hardware:sjcam-8pro-ambarella-firmware-modding [2022/06/01 12:19] – [Web References] niccolodoc:appunti:hardware:sjcam-8pro-ambarella-firmware-modding [2022/06/15 16:41] – [White balance presets] niccolo
Line 68: Line 68:
 ^ U         | 0 ÷ 2048    | Multiplier for the **blue projection** (blue - luma).  | ^ U         | 0 ÷ 2048    | Multiplier for the **blue projection** (blue - luma).  |
 ^ V         | 0 ÷ 2048    | Multiplier for the **red projection** (red - luma).  | ^ V         | 0 ÷ 2048    | Multiplier for the **red projection** (red - luma).  |
-^ Y-offset  | -128 ÷ 127  | Shift brightness from **black** to **white**. | +^ Y-offset  | -128 ÷ 127  | Shift brightness from **black** to **white**.  
-^ U-offset  | -128 ÷ 127  | Shift colors from **yellow** to **blue**. | +^ U-offset  | -128 ÷ 127  | Shift colors from **yellow** to **blue**. | 
-^ V-offset  | -128 ÷ 127  | Shift colors from **green** to **red**. |+^ V-offset  | -128 ÷ 127  | Shift colors from **green** to **red**. |
  
 +For the **multiplier**: a value of **0** means a **zero** multiplier (horizonatl slope), **1024** means **1.0** (neutral multiplier), a value of **2048** means **2.0** multiplier.
 +
 +For the **offset shift**: a value of **-128** means **-50%** of the full range, a value of **+127** means **+50%** of the full range.
  
 Values for **Y**, **U** and **V** are unsigned integers in the range **0 ÷ 2048**, values for **Y-offset**, **U-offset** and **V-offset** are signed integers in the range **-128 ÷ +127**. Each YUV profile occupies **24 bytes** into the file. Values for **Y**, **U** and **V** are unsigned integers in the range **0 ÷ 2048**, values for **Y-offset**, **U-offset** and **V-offset** are signed integers in the range **-128 ÷ +127**. Each YUV profile occupies **24 bytes** into the file.
Line 193: Line 196:
  
 ^ Group      ^ Contained in file            ^ Used for video modes  ^ ^ Group      ^ Contained in file            ^ Used for video modes  ^
-| 4K30/    | adj_video_default_00_Imx377  | 4K@(25,30) +| 4K30/     | adj_video_default_00_Imx377  | 4K@(25,30) 
-| 4K60/    | adj_video_default_01_Imx377  | 4K@(50,60) +| 4K60/     | adj_video_default_01_Imx377  | 4K@(50,60) 
-| FHD60/   | adj_video_default_02_Imx377  | 4K@24,\\ 4K-Ultra@(24,30)\\ 2720x1520@(24,25,30,50,60)\\ 2560x1440@(24,25,30,50,60)\\ 1920x1080@(24,25,30,50,60)\\ 1920x1080-Ultra@(30,60)\\ Touchscreen operations  |  +| FHD60/    | adj_video_default_02_Imx377  | 4K@24,\\ 4K-Ultra@(24,30)\\ 2720x1520@(24,25,30,50,60)\\ 2560x1440@(24,25,30,50,60)\\ 1920x1080@(24,25,30,50,60)\\ 1920x1080-Ultra@(30,60)\\ Touchscreen operations  |  
-| FHD120/  | adj_video_default_03_Imx377  | 1920x1080@120 +| FHD120/   | adj_video_default_03_Imx377  | 1920x1080@120 
-| 720@240/ | adj_video_default_04_Imx377  | 1280×720@240  |+| 720@240/  | adj_video_default_04_Imx377  | 1280×720@240  | 
 +| 4K30Gyro/ | adj_video_default_05_Imx377  | 4K@(25,30) with Gyro Stabilizer  |
 |                                                ||| |                                                |||
 ^ Group           ^ Contained in file                 ^ Used for photo mode/ISO  ^ ^ Group           ^ Contained in file                 ^ Used for photo mode/ISO  ^
Line 203: Line 207:
 | Photo-Hi-ISO/ | adj_hiso_still_default_00_Imx377  | Photo 800,1600,3200,6400\\ Photo Lapse 800,1600,3200,6400  | | Photo-Hi-ISO/ | adj_hiso_still_default_00_Imx377  | Photo 800,1600,3200,6400\\ Photo Lapse 800,1600,3200,6400  |
  
-I have not found any video mode which is affected by tables contained into the file **adj_video_default_05_Imx377**, may be it affects some of the **non active video modes**?+It seems rather crazy, but the tables contained into **adj_video_default_05_Imx377** are used only when **Gyro Stabilizer** is enabled and mode is **4K** at **25** or **30** fps. 
  
 ==== How gamma curves are mixed together ==== ==== How gamma curves are mixed together ====
Line 428: Line 433:
  
 {{.:ambarella:bitrateeditor-wb-presets.png?direct&640|}} {{.:ambarella:bitrateeditor-wb-presets.png?direct&640|}}
 +
 +White balance is probably applied as a series of linear transformations to the **four raw values** captured by te **[[wp>Bayer_filter|Bayer filter sensor]]**. The four channels are **Red**, **Green-on-red**, **Blue** and **Green-on-blue**, each transformation consists of a multiplier coefficient (slope) and an offset.
 +
 +^ Gr  | Green on Red  |
 +^ Gb  | Green on Blue  |
 +^ Ya  | Y channel value of target image?  |
 +^ Yb  | Y channel value of reference image?  |
  
 ===== 3D LUT tables ===== ===== 3D LUT tables =====
doc/appunti/hardware/sjcam-8pro-ambarella-firmware-modding.txt · Last modified: 2022/06/15 16:47 by niccolo