xref: /linux/Documentation/userspace-api/media/v4l/metafmt-vsp1-hgo.rst (revision 2f98e686ef59b5d19af5847d755798e2031bee3a)
1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2
3.. _v4l2-meta-fmt-vsp1-hgo:
4
5*******************************
6V4L2_META_FMT_VSP1_HGO ('VSPH')
7*******************************
8
9Renesas R-Car VSP1 1-D Histogram Data
10
11
12Description
13===========
14
15This format describes histogram data generated by the Renesas R-Car VSP1 1-D
16Histogram (HGO) engine.
17
18The VSP1 HGO is a histogram computation engine that can operate on RGB, YCrCb
19or HSV data. It operates on a possibly cropped and subsampled input image and
20computes the minimum, maximum and sum of all pixels as well as per-channel
21histograms.
22
23The HGO can compute histograms independently per channel, on the maximum of the
24three channels (RGB data only) or on the Y channel only (YCbCr only). It can
25additionally output the histogram with 64 or 256 bins, resulting in four
26possible modes of operation.
27
28- In *64 bins normal mode*, the HGO operates on the three channels independently
29  to compute three 64-bins histograms. RGB, YCbCr and HSV image formats are
30  supported.
31- In *64 bins maximum mode*, the HGO operates on the maximum of the (R, G, B)
32  channels to compute a single 64-bins histogram. Only the RGB image format is
33  supported.
34- In *256 bins normal mode*, the HGO operates on the Y channel to compute a
35  single 256-bins histogram. Only the YCbCr image format is supported.
36- In *256 bins maximum mode*, the HGO operates on the maximum of the (R, G, B)
37  channels to compute a single 256-bins histogram. Only the RGB image format is
38  supported.
39
40**Byte Order.**
41All data is stored in memory in little endian format. Each cell in the tables
42contains one byte.
43
44.. flat-table:: VSP1 HGO Data - 64 Bins, Normal Mode (792 bytes)
45    :header-rows:  2
46    :stub-columns: 0
47
48    * - Offset
49      - :cspan:`4` Memory
50    * -
51      - [31:24]
52      - [23:16]
53      - [15:8]
54      - [7:0]
55    * - 0
56      -
57      - R/Cr/H max [7:0]
58      -
59      - R/Cr/H min [7:0]
60    * - 4
61      -
62      - G/Y/S max [7:0]
63      -
64      - G/Y/S min [7:0]
65    * - 8
66      -
67      - B/Cb/V max [7:0]
68      -
69      - B/Cb/V min [7:0]
70    * - 12
71      - :cspan:`4` R/Cr/H sum [31:0]
72    * - 16
73      - :cspan:`4` G/Y/S sum [31:0]
74    * - 20
75      - :cspan:`4` B/Cb/V sum [31:0]
76    * - 24
77      - :cspan:`4` R/Cr/H bin 0 [31:0]
78    * -
79      - :cspan:`4` ...
80    * - 276
81      - :cspan:`4` R/Cr/H bin 63 [31:0]
82    * - 280
83      - :cspan:`4` G/Y/S bin 0 [31:0]
84    * -
85      - :cspan:`4` ...
86    * - 532
87      - :cspan:`4` G/Y/S bin 63 [31:0]
88    * - 536
89      - :cspan:`4` B/Cb/V bin 0 [31:0]
90    * -
91      - :cspan:`4` ...
92    * - 788
93      - :cspan:`4` B/Cb/V bin 63 [31:0]
94
95.. flat-table:: VSP1 HGO Data - 64 Bins, Max Mode (264 bytes)
96    :header-rows:  2
97    :stub-columns: 0
98
99    * - Offset
100      - :cspan:`4` Memory
101    * -
102      - [31:24]
103      - [23:16]
104      - [15:8]
105      - [7:0]
106    * - 0
107      -
108      - max(R,G,B) max [7:0]
109      -
110      - max(R,G,B) min [7:0]
111    * - 4
112      - :cspan:`4` max(R,G,B) sum [31:0]
113    * - 8
114      - :cspan:`4` max(R,G,B) bin 0 [31:0]
115    * -
116      - :cspan:`4` ...
117    * - 260
118      - :cspan:`4` max(R,G,B) bin 63 [31:0]
119
120.. flat-table:: VSP1 HGO Data - 256 Bins, Normal Mode (1032 bytes)
121    :header-rows:  2
122    :stub-columns: 0
123
124    * - Offset
125      - :cspan:`4` Memory
126    * -
127      - [31:24]
128      - [23:16]
129      - [15:8]
130      - [7:0]
131    * - 0
132      -
133      - Y max [7:0]
134      -
135      - Y min [7:0]
136    * - 4
137      - :cspan:`4` Y sum [31:0]
138    * - 8
139      - :cspan:`4` Y bin 0 [31:0]
140    * -
141      - :cspan:`4` ...
142    * - 1028
143      - :cspan:`4` Y bin 255 [31:0]
144
145.. flat-table:: VSP1 HGO Data - 256 Bins, Max Mode (1032 bytes)
146    :header-rows:  2
147    :stub-columns: 0
148
149    * - Offset
150      - :cspan:`4` Memory
151    * -
152      - [31:24]
153      - [23:16]
154      - [15:8]
155      - [7:0]
156    * - 0
157      -
158      - max(R,G,B) max [7:0]
159      -
160      - max(R,G,B) min [7:0]
161    * - 4
162      - :cspan:`4` max(R,G,B) sum [31:0]
163    * - 8
164      - :cspan:`4` max(R,G,B) bin 0 [31:0]
165    * -
166      - :cspan:`4` ...
167    * - 1028
168      - :cspan:`4` max(R,G,B) bin 255 [31:0]
169