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
doc:appunti:hardware:sjcam-8pro-ambarella-firmware-modding [2022/05/09 10:34] – [Gamma curves] niccolodoc:appunti:hardware:sjcam-8pro-ambarella-firmware-modding [2022/06/15 16:47] (current) – [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|}}
 +
 +FIXME: It is not know how this table works. It seems that labels are wrong: **YA_min** and **YB_min** are repeated twice, may be they are **YA_max** and **YB_max**.
 +
 +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 =====
Line 492: Line 506:
   * **{{.:ambarella:h22-product-brief.pdf|Ambarella H22 Video SoC Overview}}**   * **{{.:ambarella:h22-product-brief.pdf|Ambarella H22 Video SoC Overview}}**
   * **[[https://www.goprawn.com/forum/ambarella-cams/18473-color-correction-and-3d-lut-cube|Color correction and 3D LUT cube]]**   * **[[https://www.goprawn.com/forum/ambarella-cams/18473-color-correction-and-3d-lut-cube|Color correction and 3D LUT cube]]**
 +  * **[[https://www.flir.it/support-center/iis/machine-vision/application-note/using-color-correction-in-blackfly-s/|Using Color Correction in Blackfly S and Oryx]]** - Local PDF: {{.:sjcam:color-correction-in-blackfly-s.pdf|color-correction-in-blackfly-s.pdf}}.
  
doc/appunti/hardware/sjcam-8pro-ambarella-firmware-modding.1652085268.txt.gz · Last modified: 2022/05/09 10:34 by niccolo