18c2ecf20Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ci.. _v4l2-meta-fmt-vsp1-hgo: 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci******************************* 68c2ecf20Sopenharmony_ciV4L2_META_FMT_VSP1_HGO ('VSPH') 78c2ecf20Sopenharmony_ci******************************* 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ciRenesas R-Car VSP1 1-D Histogram Data 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ciDescription 138c2ecf20Sopenharmony_ci=========== 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ciThis format describes histogram data generated by the Renesas R-Car VSP1 1-D 168c2ecf20Sopenharmony_ciHistogram (HGO) engine. 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ciThe VSP1 HGO is a histogram computation engine that can operate on RGB, YCrCb 198c2ecf20Sopenharmony_cior HSV data. It operates on a possibly cropped and subsampled input image and 208c2ecf20Sopenharmony_cicomputes the minimum, maximum and sum of all pixels as well as per-channel 218c2ecf20Sopenharmony_cihistograms. 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ciThe HGO can compute histograms independently per channel, on the maximum of the 248c2ecf20Sopenharmony_cithree channels (RGB data only) or on the Y channel only (YCbCr only). It can 258c2ecf20Sopenharmony_ciadditionally output the histogram with 64 or 256 bins, resulting in four 268c2ecf20Sopenharmony_cipossible modes of operation. 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci- In *64 bins normal mode*, the HGO operates on the three channels independently 298c2ecf20Sopenharmony_ci to compute three 64-bins histograms. RGB, YCbCr and HSV image formats are 308c2ecf20Sopenharmony_ci supported. 318c2ecf20Sopenharmony_ci- In *64 bins maximum mode*, the HGO operates on the maximum of the (R, G, B) 328c2ecf20Sopenharmony_ci channels to compute a single 64-bins histogram. Only the RGB image format is 338c2ecf20Sopenharmony_ci supported. 348c2ecf20Sopenharmony_ci- In *256 bins normal mode*, the HGO operates on the Y channel to compute a 358c2ecf20Sopenharmony_ci single 256-bins histogram. Only the YCbCr image format is supported. 368c2ecf20Sopenharmony_ci- In *256 bins maximum mode*, the HGO operates on the maximum of the (R, G, B) 378c2ecf20Sopenharmony_ci channels to compute a single 256-bins histogram. Only the RGB image format is 388c2ecf20Sopenharmony_ci supported. 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci**Byte Order.** 418c2ecf20Sopenharmony_ciAll data is stored in memory in little endian format. Each cell in the tables 428c2ecf20Sopenharmony_cicontains one byte. 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ci.. flat-table:: VSP1 HGO Data - 64 Bins, Normal Mode (792 bytes) 458c2ecf20Sopenharmony_ci :header-rows: 2 468c2ecf20Sopenharmony_ci :stub-columns: 0 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci * - Offset 498c2ecf20Sopenharmony_ci - :cspan:`4` Memory 508c2ecf20Sopenharmony_ci * - 518c2ecf20Sopenharmony_ci - [31:24] 528c2ecf20Sopenharmony_ci - [23:16] 538c2ecf20Sopenharmony_ci - [15:8] 548c2ecf20Sopenharmony_ci - [7:0] 558c2ecf20Sopenharmony_ci * - 0 568c2ecf20Sopenharmony_ci - 578c2ecf20Sopenharmony_ci - R/Cr/H max [7:0] 588c2ecf20Sopenharmony_ci - 598c2ecf20Sopenharmony_ci - R/Cr/H min [7:0] 608c2ecf20Sopenharmony_ci * - 4 618c2ecf20Sopenharmony_ci - 628c2ecf20Sopenharmony_ci - G/Y/S max [7:0] 638c2ecf20Sopenharmony_ci - 648c2ecf20Sopenharmony_ci - G/Y/S min [7:0] 658c2ecf20Sopenharmony_ci * - 8 668c2ecf20Sopenharmony_ci - 678c2ecf20Sopenharmony_ci - B/Cb/V max [7:0] 688c2ecf20Sopenharmony_ci - 698c2ecf20Sopenharmony_ci - B/Cb/V min [7:0] 708c2ecf20Sopenharmony_ci * - 12 718c2ecf20Sopenharmony_ci - :cspan:`4` R/Cr/H sum [31:0] 728c2ecf20Sopenharmony_ci * - 16 738c2ecf20Sopenharmony_ci - :cspan:`4` G/Y/S sum [31:0] 748c2ecf20Sopenharmony_ci * - 20 758c2ecf20Sopenharmony_ci - :cspan:`4` B/Cb/V sum [31:0] 768c2ecf20Sopenharmony_ci * - 24 778c2ecf20Sopenharmony_ci - :cspan:`4` R/Cr/H bin 0 [31:0] 788c2ecf20Sopenharmony_ci * - 798c2ecf20Sopenharmony_ci - :cspan:`4` ... 808c2ecf20Sopenharmony_ci * - 276 818c2ecf20Sopenharmony_ci - :cspan:`4` R/Cr/H bin 63 [31:0] 828c2ecf20Sopenharmony_ci * - 280 838c2ecf20Sopenharmony_ci - :cspan:`4` G/Y/S bin 0 [31:0] 848c2ecf20Sopenharmony_ci * - 858c2ecf20Sopenharmony_ci - :cspan:`4` ... 868c2ecf20Sopenharmony_ci * - 532 878c2ecf20Sopenharmony_ci - :cspan:`4` G/Y/S bin 63 [31:0] 888c2ecf20Sopenharmony_ci * - 536 898c2ecf20Sopenharmony_ci - :cspan:`4` B/Cb/V bin 0 [31:0] 908c2ecf20Sopenharmony_ci * - 918c2ecf20Sopenharmony_ci - :cspan:`4` ... 928c2ecf20Sopenharmony_ci * - 788 938c2ecf20Sopenharmony_ci - :cspan:`4` B/Cb/V bin 63 [31:0] 948c2ecf20Sopenharmony_ci 958c2ecf20Sopenharmony_ci.. flat-table:: VSP1 HGO Data - 64 Bins, Max Mode (264 bytes) 968c2ecf20Sopenharmony_ci :header-rows: 2 978c2ecf20Sopenharmony_ci :stub-columns: 0 988c2ecf20Sopenharmony_ci 998c2ecf20Sopenharmony_ci * - Offset 1008c2ecf20Sopenharmony_ci - :cspan:`4` Memory 1018c2ecf20Sopenharmony_ci * - 1028c2ecf20Sopenharmony_ci - [31:24] 1038c2ecf20Sopenharmony_ci - [23:16] 1048c2ecf20Sopenharmony_ci - [15:8] 1058c2ecf20Sopenharmony_ci - [7:0] 1068c2ecf20Sopenharmony_ci * - 0 1078c2ecf20Sopenharmony_ci - 1088c2ecf20Sopenharmony_ci - max(R,G,B) max [7:0] 1098c2ecf20Sopenharmony_ci - 1108c2ecf20Sopenharmony_ci - max(R,G,B) min [7:0] 1118c2ecf20Sopenharmony_ci * - 4 1128c2ecf20Sopenharmony_ci - :cspan:`4` max(R,G,B) sum [31:0] 1138c2ecf20Sopenharmony_ci * - 8 1148c2ecf20Sopenharmony_ci - :cspan:`4` max(R,G,B) bin 0 [31:0] 1158c2ecf20Sopenharmony_ci * - 1168c2ecf20Sopenharmony_ci - :cspan:`4` ... 1178c2ecf20Sopenharmony_ci * - 260 1188c2ecf20Sopenharmony_ci - :cspan:`4` max(R,G,B) bin 63 [31:0] 1198c2ecf20Sopenharmony_ci 1208c2ecf20Sopenharmony_ci.. flat-table:: VSP1 HGO Data - 256 Bins, Normal Mode (1032 bytes) 1218c2ecf20Sopenharmony_ci :header-rows: 2 1228c2ecf20Sopenharmony_ci :stub-columns: 0 1238c2ecf20Sopenharmony_ci 1248c2ecf20Sopenharmony_ci * - Offset 1258c2ecf20Sopenharmony_ci - :cspan:`4` Memory 1268c2ecf20Sopenharmony_ci * - 1278c2ecf20Sopenharmony_ci - [31:24] 1288c2ecf20Sopenharmony_ci - [23:16] 1298c2ecf20Sopenharmony_ci - [15:8] 1308c2ecf20Sopenharmony_ci - [7:0] 1318c2ecf20Sopenharmony_ci * - 0 1328c2ecf20Sopenharmony_ci - 1338c2ecf20Sopenharmony_ci - Y max [7:0] 1348c2ecf20Sopenharmony_ci - 1358c2ecf20Sopenharmony_ci - Y min [7:0] 1368c2ecf20Sopenharmony_ci * - 4 1378c2ecf20Sopenharmony_ci - :cspan:`4` Y sum [31:0] 1388c2ecf20Sopenharmony_ci * - 8 1398c2ecf20Sopenharmony_ci - :cspan:`4` Y bin 0 [31:0] 1408c2ecf20Sopenharmony_ci * - 1418c2ecf20Sopenharmony_ci - :cspan:`4` ... 1428c2ecf20Sopenharmony_ci * - 1028 1438c2ecf20Sopenharmony_ci - :cspan:`4` Y bin 255 [31:0] 1448c2ecf20Sopenharmony_ci 1458c2ecf20Sopenharmony_ci.. flat-table:: VSP1 HGO Data - 256 Bins, Max Mode (1032 bytes) 1468c2ecf20Sopenharmony_ci :header-rows: 2 1478c2ecf20Sopenharmony_ci :stub-columns: 0 1488c2ecf20Sopenharmony_ci 1498c2ecf20Sopenharmony_ci * - Offset 1508c2ecf20Sopenharmony_ci - :cspan:`4` Memory 1518c2ecf20Sopenharmony_ci * - 1528c2ecf20Sopenharmony_ci - [31:24] 1538c2ecf20Sopenharmony_ci - [23:16] 1548c2ecf20Sopenharmony_ci - [15:8] 1558c2ecf20Sopenharmony_ci - [7:0] 1568c2ecf20Sopenharmony_ci * - 0 1578c2ecf20Sopenharmony_ci - 1588c2ecf20Sopenharmony_ci - max(R,G,B) max [7:0] 1598c2ecf20Sopenharmony_ci - 1608c2ecf20Sopenharmony_ci - max(R,G,B) min [7:0] 1618c2ecf20Sopenharmony_ci * - 4 1628c2ecf20Sopenharmony_ci - :cspan:`4` max(R,G,B) sum [31:0] 1638c2ecf20Sopenharmony_ci * - 8 1648c2ecf20Sopenharmony_ci - :cspan:`4` max(R,G,B) bin 0 [31:0] 1658c2ecf20Sopenharmony_ci * - 1668c2ecf20Sopenharmony_ci - :cspan:`4` ... 1678c2ecf20Sopenharmony_ci * - 1028 1688c2ecf20Sopenharmony_ci - :cspan:`4` max(R,G,B) bin 255 [31:0] 169