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