162306a36Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci.. _v4l2-meta-fmt-vsp1-hgo:
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci*******************************
662306a36Sopenharmony_ciV4L2_META_FMT_VSP1_HGO ('VSPH')
762306a36Sopenharmony_ci*******************************
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciRenesas R-Car VSP1 1-D Histogram Data
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciDescription
1362306a36Sopenharmony_ci===========
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciThis format describes histogram data generated by the Renesas R-Car VSP1 1-D
1662306a36Sopenharmony_ciHistogram (HGO) engine.
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciThe VSP1 HGO is a histogram computation engine that can operate on RGB, YCrCb
1962306a36Sopenharmony_cior HSV data. It operates on a possibly cropped and subsampled input image and
2062306a36Sopenharmony_cicomputes the minimum, maximum and sum of all pixels as well as per-channel
2162306a36Sopenharmony_cihistograms.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciThe HGO can compute histograms independently per channel, on the maximum of the
2462306a36Sopenharmony_cithree channels (RGB data only) or on the Y channel only (YCbCr only). It can
2562306a36Sopenharmony_ciadditionally output the histogram with 64 or 256 bins, resulting in four
2662306a36Sopenharmony_cipossible modes of operation.
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci- In *64 bins normal mode*, the HGO operates on the three channels independently
2962306a36Sopenharmony_ci  to compute three 64-bins histograms. RGB, YCbCr and HSV image formats are
3062306a36Sopenharmony_ci  supported.
3162306a36Sopenharmony_ci- In *64 bins maximum mode*, the HGO operates on the maximum of the (R, G, B)
3262306a36Sopenharmony_ci  channels to compute a single 64-bins histogram. Only the RGB image format is
3362306a36Sopenharmony_ci  supported.
3462306a36Sopenharmony_ci- In *256 bins normal mode*, the HGO operates on the Y channel to compute a
3562306a36Sopenharmony_ci  single 256-bins histogram. Only the YCbCr image format is supported.
3662306a36Sopenharmony_ci- In *256 bins maximum mode*, the HGO operates on the maximum of the (R, G, B)
3762306a36Sopenharmony_ci  channels to compute a single 256-bins histogram. Only the RGB image format is
3862306a36Sopenharmony_ci  supported.
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci**Byte Order.**
4162306a36Sopenharmony_ciAll data is stored in memory in little endian format. Each cell in the tables
4262306a36Sopenharmony_cicontains one byte.
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci.. flat-table:: VSP1 HGO Data - 64 Bins, Normal Mode (792 bytes)
4562306a36Sopenharmony_ci    :header-rows:  2
4662306a36Sopenharmony_ci    :stub-columns: 0
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci    * - Offset
4962306a36Sopenharmony_ci      - :cspan:`4` Memory
5062306a36Sopenharmony_ci    * -
5162306a36Sopenharmony_ci      - [31:24]
5262306a36Sopenharmony_ci      - [23:16]
5362306a36Sopenharmony_ci      - [15:8]
5462306a36Sopenharmony_ci      - [7:0]
5562306a36Sopenharmony_ci    * - 0
5662306a36Sopenharmony_ci      -
5762306a36Sopenharmony_ci      - R/Cr/H max [7:0]
5862306a36Sopenharmony_ci      -
5962306a36Sopenharmony_ci      - R/Cr/H min [7:0]
6062306a36Sopenharmony_ci    * - 4
6162306a36Sopenharmony_ci      -
6262306a36Sopenharmony_ci      - G/Y/S max [7:0]
6362306a36Sopenharmony_ci      -
6462306a36Sopenharmony_ci      - G/Y/S min [7:0]
6562306a36Sopenharmony_ci    * - 8
6662306a36Sopenharmony_ci      -
6762306a36Sopenharmony_ci      - B/Cb/V max [7:0]
6862306a36Sopenharmony_ci      -
6962306a36Sopenharmony_ci      - B/Cb/V min [7:0]
7062306a36Sopenharmony_ci    * - 12
7162306a36Sopenharmony_ci      - :cspan:`4` R/Cr/H sum [31:0]
7262306a36Sopenharmony_ci    * - 16
7362306a36Sopenharmony_ci      - :cspan:`4` G/Y/S sum [31:0]
7462306a36Sopenharmony_ci    * - 20
7562306a36Sopenharmony_ci      - :cspan:`4` B/Cb/V sum [31:0]
7662306a36Sopenharmony_ci    * - 24
7762306a36Sopenharmony_ci      - :cspan:`4` R/Cr/H bin 0 [31:0]
7862306a36Sopenharmony_ci    * -
7962306a36Sopenharmony_ci      - :cspan:`4` ...
8062306a36Sopenharmony_ci    * - 276
8162306a36Sopenharmony_ci      - :cspan:`4` R/Cr/H bin 63 [31:0]
8262306a36Sopenharmony_ci    * - 280
8362306a36Sopenharmony_ci      - :cspan:`4` G/Y/S bin 0 [31:0]
8462306a36Sopenharmony_ci    * -
8562306a36Sopenharmony_ci      - :cspan:`4` ...
8662306a36Sopenharmony_ci    * - 532
8762306a36Sopenharmony_ci      - :cspan:`4` G/Y/S bin 63 [31:0]
8862306a36Sopenharmony_ci    * - 536
8962306a36Sopenharmony_ci      - :cspan:`4` B/Cb/V bin 0 [31:0]
9062306a36Sopenharmony_ci    * -
9162306a36Sopenharmony_ci      - :cspan:`4` ...
9262306a36Sopenharmony_ci    * - 788
9362306a36Sopenharmony_ci      - :cspan:`4` B/Cb/V bin 63 [31:0]
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci.. flat-table:: VSP1 HGO Data - 64 Bins, Max Mode (264 bytes)
9662306a36Sopenharmony_ci    :header-rows:  2
9762306a36Sopenharmony_ci    :stub-columns: 0
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci    * - Offset
10062306a36Sopenharmony_ci      - :cspan:`4` Memory
10162306a36Sopenharmony_ci    * -
10262306a36Sopenharmony_ci      - [31:24]
10362306a36Sopenharmony_ci      - [23:16]
10462306a36Sopenharmony_ci      - [15:8]
10562306a36Sopenharmony_ci      - [7:0]
10662306a36Sopenharmony_ci    * - 0
10762306a36Sopenharmony_ci      -
10862306a36Sopenharmony_ci      - max(R,G,B) max [7:0]
10962306a36Sopenharmony_ci      -
11062306a36Sopenharmony_ci      - max(R,G,B) min [7:0]
11162306a36Sopenharmony_ci    * - 4
11262306a36Sopenharmony_ci      - :cspan:`4` max(R,G,B) sum [31:0]
11362306a36Sopenharmony_ci    * - 8
11462306a36Sopenharmony_ci      - :cspan:`4` max(R,G,B) bin 0 [31:0]
11562306a36Sopenharmony_ci    * -
11662306a36Sopenharmony_ci      - :cspan:`4` ...
11762306a36Sopenharmony_ci    * - 260
11862306a36Sopenharmony_ci      - :cspan:`4` max(R,G,B) bin 63 [31:0]
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci.. flat-table:: VSP1 HGO Data - 256 Bins, Normal Mode (1032 bytes)
12162306a36Sopenharmony_ci    :header-rows:  2
12262306a36Sopenharmony_ci    :stub-columns: 0
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ci    * - Offset
12562306a36Sopenharmony_ci      - :cspan:`4` Memory
12662306a36Sopenharmony_ci    * -
12762306a36Sopenharmony_ci      - [31:24]
12862306a36Sopenharmony_ci      - [23:16]
12962306a36Sopenharmony_ci      - [15:8]
13062306a36Sopenharmony_ci      - [7:0]
13162306a36Sopenharmony_ci    * - 0
13262306a36Sopenharmony_ci      -
13362306a36Sopenharmony_ci      - Y max [7:0]
13462306a36Sopenharmony_ci      -
13562306a36Sopenharmony_ci      - Y min [7:0]
13662306a36Sopenharmony_ci    * - 4
13762306a36Sopenharmony_ci      - :cspan:`4` Y sum [31:0]
13862306a36Sopenharmony_ci    * - 8
13962306a36Sopenharmony_ci      - :cspan:`4` Y bin 0 [31:0]
14062306a36Sopenharmony_ci    * -
14162306a36Sopenharmony_ci      - :cspan:`4` ...
14262306a36Sopenharmony_ci    * - 1028
14362306a36Sopenharmony_ci      - :cspan:`4` Y bin 255 [31:0]
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ci.. flat-table:: VSP1 HGO Data - 256 Bins, Max Mode (1032 bytes)
14662306a36Sopenharmony_ci    :header-rows:  2
14762306a36Sopenharmony_ci    :stub-columns: 0
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ci    * - Offset
15062306a36Sopenharmony_ci      - :cspan:`4` Memory
15162306a36Sopenharmony_ci    * -
15262306a36Sopenharmony_ci      - [31:24]
15362306a36Sopenharmony_ci      - [23:16]
15462306a36Sopenharmony_ci      - [15:8]
15562306a36Sopenharmony_ci      - [7:0]
15662306a36Sopenharmony_ci    * - 0
15762306a36Sopenharmony_ci      -
15862306a36Sopenharmony_ci      - max(R,G,B) max [7:0]
15962306a36Sopenharmony_ci      -
16062306a36Sopenharmony_ci      - max(R,G,B) min [7:0]
16162306a36Sopenharmony_ci    * - 4
16262306a36Sopenharmony_ci      - :cspan:`4` max(R,G,B) sum [31:0]
16362306a36Sopenharmony_ci    * - 8
16462306a36Sopenharmony_ci      - :cspan:`4` max(R,G,B) bin 0 [31:0]
16562306a36Sopenharmony_ci    * -
16662306a36Sopenharmony_ci      - :cspan:`4` ...
16762306a36Sopenharmony_ci    * - 1028
16862306a36Sopenharmony_ci      - :cspan:`4` max(R,G,B) bin 255 [31:0]
169