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