| .. -*- coding: utf-8; mode: rst -*- |
| |
| .. _v4l2-meta-fmt-vsp1-hgo: |
| |
| ******************************* |
| V4L2_META_FMT_VSP1_HGO ('VSPH') |
| ******************************* |
| |
| Renesas R-Car VSP1 1-D Histogram Data |
| |
| |
| Description |
| =========== |
| |
| This format describes histogram data generated by the Renesas R-Car VSP1 1-D |
| Histogram (HGO) engine. |
| |
| The VSP1 HGO is a histogram computation engine that can operate on RGB, YCrCb |
| or HSV data. It operates on a possibly cropped and subsampled input image and |
| computes the minimum, maximum and sum of all pixels as well as per-channel |
| histograms. |
| |
| The HGO can compute histograms independently per channel, on the maximum of the |
| three channels (RGB data only) or on the Y channel only (YCbCr only). It can |
| additionally output the histogram with 64 or 256 bins, resulting in four |
| possible modes of operation. |
| |
| - In *64 bins normal mode*, the HGO operates on the three channels independently |
| to compute three 64-bins histograms. RGB, YCbCr and HSV image formats are |
| supported. |
| - In *64 bins maximum mode*, the HGO operates on the maximum of the (R, G, B) |
| channels to compute a single 64-bins histogram. Only the RGB image format is |
| supported. |
| - In *256 bins normal mode*, the HGO operates on the Y channel to compute a |
| single 256-bins histogram. Only the YCbCr image format is supported. |
| - In *256 bins maximum mode*, the HGO operates on the maximum of the (R, G, B) |
| channels to compute a single 256-bins histogram. Only the RGB image format is |
| supported. |
| |
| **Byte Order.** |
| All data is stored in memory in little endian format. Each cell in the tables |
| contains one byte. |
| |
| .. flat-table:: VSP1 HGO Data - 64 Bins, Normal Mode (792 bytes) |
| :header-rows: 2 |
| :stub-columns: 0 |
| |
| * - Offset |
| - :cspan:`4` Memory |
| * - |
| - [31:24] |
| - [23:16] |
| - [15:8] |
| - [7:0] |
| * - 0 |
| - |
| - R/Cr/H max [7:0] |
| - |
| - R/Cr/H min [7:0] |
| * - 4 |
| - |
| - G/Y/S max [7:0] |
| - |
| - G/Y/S min [7:0] |
| * - 8 |
| - |
| - B/Cb/V max [7:0] |
| - |
| - B/Cb/V min [7:0] |
| * - 12 |
| - :cspan:`4` R/Cr/H sum [31:0] |
| * - 16 |
| - :cspan:`4` G/Y/S sum [31:0] |
| * - 20 |
| - :cspan:`4` B/Cb/V sum [31:0] |
| * - 24 |
| - :cspan:`4` R/Cr/H bin 0 [31:0] |
| * - |
| - :cspan:`4` ... |
| * - 276 |
| - :cspan:`4` R/Cr/H bin 63 [31:0] |
| * - 280 |
| - :cspan:`4` G/Y/S bin 0 [31:0] |
| * - |
| - :cspan:`4` ... |
| * - 532 |
| - :cspan:`4` G/Y/S bin 63 [31:0] |
| * - 536 |
| - :cspan:`4` B/Cb/V bin 0 [31:0] |
| * - |
| - :cspan:`4` ... |
| * - 788 |
| - :cspan:`4` B/Cb/V bin 63 [31:0] |
| |
| .. flat-table:: VSP1 HGO Data - 64 Bins, Max Mode (264 bytes) |
| :header-rows: 2 |
| :stub-columns: 0 |
| |
| * - Offset |
| - :cspan:`4` Memory |
| * - |
| - [31:24] |
| - [23:16] |
| - [15:8] |
| - [7:0] |
| * - 0 |
| - |
| - max(R,G,B) max [7:0] |
| - |
| - max(R,G,B) min [7:0] |
| * - 4 |
| - :cspan:`4` max(R,G,B) sum [31:0] |
| * - 8 |
| - :cspan:`4` max(R,G,B) bin 0 [31:0] |
| * - |
| - :cspan:`4` ... |
| * - 260 |
| - :cspan:`4` max(R,G,B) bin 63 [31:0] |
| |
| .. flat-table:: VSP1 HGO Data - 256 Bins, Normal Mode (1032 bytes) |
| :header-rows: 2 |
| :stub-columns: 0 |
| |
| * - Offset |
| - :cspan:`4` Memory |
| * - |
| - [31:24] |
| - [23:16] |
| - [15:8] |
| - [7:0] |
| * - 0 |
| - |
| - Y max [7:0] |
| - |
| - Y min [7:0] |
| * - 4 |
| - :cspan:`4` Y sum [31:0] |
| * - 8 |
| - :cspan:`4` Y bin 0 [31:0] |
| * - |
| - :cspan:`4` ... |
| * - 1028 |
| - :cspan:`4` Y bin 255 [31:0] |
| |
| .. flat-table:: VSP1 HGO Data - 256 Bins, Max Mode (1032 bytes) |
| :header-rows: 2 |
| :stub-columns: 0 |
| |
| * - Offset |
| - :cspan:`4` Memory |
| * - |
| - [31:24] |
| - [23:16] |
| - [15:8] |
| - [7:0] |
| * - 0 |
| - |
| - max(R,G,B) max [7:0] |
| - |
| - max(R,G,B) min [7:0] |
| * - 4 |
| - :cspan:`4` max(R,G,B) sum [31:0] |
| * - 8 |
| - :cspan:`4` max(R,G,B) bin 0 [31:0] |
| * - |
| - :cspan:`4` ... |
| * - 1028 |
| - :cspan:`4` max(R,G,B) bin 255 [31:0] |