90 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. SPDX-License-Identifier: GPL-2.0
 | |
| 
 | |
| .. _v4l2-meta-fmt-rk-isp1-stat-3a:
 | |
| 
 | |
| ************************************************************************************************************************
 | |
| V4L2_META_FMT_RK_ISP1_PARAMS ('rk1p'), V4L2_META_FMT_RK_ISP1_STAT_3A ('rk1s'), V4L2_META_FMT_RK_ISP1_EXT_PARAMS ('rk1e')
 | |
| ************************************************************************************************************************
 | |
| 
 | |
| ========================
 | |
| Configuration parameters
 | |
| ========================
 | |
| 
 | |
| The configuration of the RkISP1 ISP is performed by userspace by providing
 | |
| parameters for the ISP to the driver using the :c:type:`v4l2_meta_format`
 | |
| interface.
 | |
| 
 | |
| There are two methods that allow to configure the ISP, the `fixed parameters`
 | |
| configuration format and the `extensible parameters` configuration
 | |
| format.
 | |
| 
 | |
| .. _v4l2-meta-fmt-rk-isp1-params:
 | |
| 
 | |
| Fixed parameters configuration format
 | |
| =====================================
 | |
| 
 | |
| When using the fixed configuration format, parameters are passed to the
 | |
| :ref:`rkisp1_params <rkisp1_params>` metadata output video node, using
 | |
| the `V4L2_META_FMT_RK_ISP1_PARAMS` meta format.
 | |
| 
 | |
| The buffer contains a single instance of the C structure
 | |
| :c:type:`rkisp1_params_cfg` defined in ``rkisp1-config.h``. So the structure can
 | |
| be obtained from the buffer by:
 | |
| 
 | |
| .. code-block:: c
 | |
| 
 | |
| 	struct rkisp1_params_cfg *params = (struct rkisp1_params_cfg*) buffer;
 | |
| 
 | |
| This method supports a subset of the ISP features only, new applications should
 | |
| use the extensible parameters method.
 | |
| 
 | |
| .. _v4l2-meta-fmt-rk-isp1-ext-params:
 | |
| 
 | |
| Extensible parameters configuration format
 | |
| ==========================================
 | |
| 
 | |
| When using the extensible configuration format, parameters are passed to the
 | |
| :ref:`rkisp1_params <rkisp1_params>` metadata output video node, using
 | |
| the `V4L2_META_FMT_RK_ISP1_EXT_PARAMS` meta format.
 | |
| 
 | |
| The buffer contains a single instance of the C structure
 | |
| :c:type:`rkisp1_ext_params_cfg` defined in ``rkisp1-config.h``. The
 | |
| :c:type:`rkisp1_ext_params_cfg` structure is designed to allow userspace to
 | |
| populate the data buffer with only the configuration data for the ISP blocks it
 | |
| intends to configure. The extensible parameters format design allows developers
 | |
| to define new block types to support new configuration parameters, and defines a
 | |
| versioning scheme so that it can be extended and versioned without breaking
 | |
| compatibility with existing applications.
 | |
| 
 | |
| For these reasons, this configuration method is preferred over the `fixed
 | |
| parameters` format alternative.
 | |
| 
 | |
| .. rkisp1_stat_buffer
 | |
| 
 | |
| ===========================
 | |
| 3A and histogram statistics
 | |
| ===========================
 | |
| 
 | |
| The ISP1 device collects different statistics over an input Bayer frame.
 | |
| Those statistics are obtained from the :ref:`rkisp1_stats <rkisp1_stats>`
 | |
| metadata capture video node,
 | |
| using the :c:type:`v4l2_meta_format` interface. The buffer contains a single
 | |
| instance of the C structure :c:type:`rkisp1_stat_buffer` defined in
 | |
| ``rkisp1-config.h``. So the structure can be obtained from the buffer by:
 | |
| 
 | |
| .. code-block:: c
 | |
| 
 | |
| 	struct rkisp1_stat_buffer *stats = (struct rkisp1_stat_buffer*) buffer;
 | |
| 
 | |
| The statistics collected are Exposure, AWB (Auto-white balance), Histogram and
 | |
| AF (Auto-focus). See :c:type:`rkisp1_stat_buffer` for details of the statistics.
 | |
| 
 | |
| The 3A statistics and configuration parameters described here are usually
 | |
| consumed and produced by dedicated user space libraries that comprise the
 | |
| important tuning tools using software control loop.
 | |
| 
 | |
| rkisp1 uAPI data types
 | |
| ======================
 | |
| 
 | |
| .. kernel-doc:: include/uapi/linux/rkisp1-config.h
 |