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