Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2
3.. _v4l2-meta-fmt-vsp1-hgt:
4
5*******************************
6V4L2_META_FMT_VSP1_HGT ('VSPT')
7*******************************
8
9Renesas R-Car VSP1 2-D Histogram Data
10
11
12Description
13===========
14
15This format describes histogram data generated by the Renesas R-Car VSP1
162-D Histogram (HGT) engine.
17
18The VSP1 HGT is a histogram computation engine that operates on HSV
19data. It operates on a possibly cropped and subsampled input image and
20computes the sum, maximum and minimum of the S component as well as a
21weighted frequency histogram based on the H and S components.
22
23The histogram is a matrix of 6 Hue and 32 Saturation buckets, 192 in
24total. Each HSV value is added to one or more buckets with a weight
25between 1 and 16 depending on the Hue areas configuration. Finding the
26corresponding buckets is done by inspecting the H and S value independently.
27
28The Saturation position **n** (0 - 31) of the bucket in the matrix is
29found by the expression:
30
31 n = S / 8
32
33The Hue position **m** (0 - 5) of the bucket in the matrix depends on
34how the HGT Hue areas are configured. There are 6 user configurable Hue
35Areas which can be configured to cover overlapping Hue values:
36
37.. raw:: latex
38
39 \small
40
41::
42
43 Area 0 Area 1 Area 2 Area 3 Area 4 Area 5
44 ________ ________ ________ ________ ________ ________
45 \ /| |\ /| |\ /| |\ /| |\ /| |\ /| |\ /
46 \ / | | \ / | | \ / | | \ / | | \ / | | \ / | | \ /
47 X | | X | | X | | X | | X | | X | | X
48 / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \
49 / \| |/ \| |/ \| |/ \| |/ \| |/ \| |/ \
50 5U 0L 0U 1L 1U 2L 2U 3L 3U 4L 4U 5L 5U 0L
51 <0..............................Hue Value............................255>
52
53
54.. raw:: latex
55
56 \normalsize
57
58When two consecutive areas don't overlap (n+1L is equal to nU) the boundary
59value is considered as part of the lower area.
60
61Pixels with a hue value included in the centre of an area (between nL and nU
62included) are attributed to that single area and given a weight of 16. Pixels
63with a hue value included in the overlapping region between two areas (between
64n+1L and nU excluded) are attributed to both areas and given a weight for each
65of these areas proportional to their position along the diagonal lines
66(rounded down).
67
68The Hue area setup must match one of the following constrains:
69
70::
71
72 0L <= 0U <= 1L <= 1U <= 2L <= 2U <= 3L <= 3U <= 4L <= 4U <= 5L <= 5U
73
74::
75
76 0U <= 1L <= 1U <= 2L <= 2U <= 3L <= 3U <= 4L <= 4U <= 5L <= 5U <= 0L
77
78**Byte Order.**
79All data is stored in memory in little endian format. Each cell in the tables
80contains one byte.
81
82.. flat-table:: VSP1 HGT Data - (776 bytes)
83 :header-rows: 2
84 :stub-columns: 0
85
86 * - Offset
87 - :cspan:`4` Memory
88 * -
89 - [31:24]
90 - [23:16]
91 - [15:8]
92 - [7:0]
93 * - 0
94 - -
95 - S max [7:0]
96 - -
97 - S min [7:0]
98 * - 4
99 - :cspan:`4` S sum [31:0]
100 * - 8
101 - :cspan:`4` Histogram bucket (m=0, n=0) [31:0]
102 * - 12
103 - :cspan:`4` Histogram bucket (m=0, n=1) [31:0]
104 * -
105 - :cspan:`4` ...
106 * - 132
107 - :cspan:`4` Histogram bucket (m=0, n=31) [31:0]
108 * - 136
109 - :cspan:`4` Histogram bucket (m=1, n=0) [31:0]
110 * -
111 - :cspan:`4` ...
112 * - 264
113 - :cspan:`4` Histogram bucket (m=2, n=0) [31:0]
114 * -
115 - :cspan:`4` ...
116 * - 392
117 - :cspan:`4` Histogram bucket (m=3, n=0) [31:0]
118 * -
119 - :cspan:`4` ...
120 * - 520
121 - :cspan:`4` Histogram bucket (m=4, n=0) [31:0]
122 * -
123 - :cspan:`4` ...
124 * - 648
125 - :cspan:`4` Histogram bucket (m=5, n=0) [31:0]
126 * -
127 - :cspan:`4` ...
128 * - 772
129 - :cspan:`4` Histogram bucket (m=5, n=31) [31:0]