Lines Matching +full:5 +full:- +full:6

1 .. SPDX-License-Identifier: GPL-2.0
9 -----------
12 host scales: -"- host driver
17 ---------------------------------
19 .. code-block:: none
21 -1--
23 -2-- -\
24 | --\
25 | --\
26 +-5-- . -- -3-- -\
27 | `... -\
28 | `... -4-- . - -7..
30 | `. .6--
32 | . .6'-
34 | ... -4'-
35 | ...´ - -7'.
36 +-5'--/
37 | -- -3'- -/
38 | --/
39 | --/
40 -2'- -/
43 -1'-
51 S_CROP(left / top = (5) - (1), width / height = (5') - (5))
52 S_FMT(width / height = (6') - (6))
56 (1) to (1') - whole max width or height
57 (1) to (2) - sensor cropped left or top
58 (2) to (2') - sensor cropped width or height
59 (3) to (3') - sensor scale
60 (3) to (4) - CEU cropped left or top
61 (4) to (4') - CEU cropped width or height
62 (5) to (5') - reverse sensor scale applied to CEU cropped width or height
63 (2) to (5) - reverse sensor scale applied to CEU cropped left or top
64 (6) to (6') - CEU scale - user window
68 -----
70 Do not touch input rectangle - it is already optimal.
74 scale_s = ((2') - (2)) / ((3') - (3))
76 2. Calculate "effective" input crop (sensor subwindow) - CEU crop scaled back at
77 current sensor scales onto input window - this is user S_CROP:
79 width_u = (5') - (5) = ((4') - (4)) * scale_s
84 scale_comb = width_u / ((6') - (6))
89 width_s_out = ((7') - (7)) = ((2') - (2)) / scale_comb
91 5. Apply iterative sensor S_FMT for sensor output window.
93 subdev->video_ops->s_fmt(.width = width_s_out)
95 6. Retrieve sensor output window (g_fmt)
99 scale_s_new = ((3')_new - (3)_new) / ((2') - (2))
101 8. Calculate new CEU crop - apply sensor scales to previously calculated
104 width_ceu = (4')_new - (4)_new = width_u / scale_s_new
105 left_ceu = (4)_new - (3)_new = ((5) - (2)) / scale_s_new
117 ------
119 The :ref:`V4L2 crop API <crop-scale>` says:
127 Cropping is performed in the following 6 steps:
131 2. If smaller - iterate until a larger one is obtained. Result: sensor cropped
132 to 2 : 2', target crop 5 : 5', current output format 6' - 6.
137 4. Sensor scaled to 3 : 3'. Sensor's scale is (2' - 2) / (3' - 3). Calculate
138 intermediate window: 4' - 4 = (5' - 5) * (3' - 3) / (2' - 2)
140 5. Calculate and apply host scale = (6' - 6) / (4' - 4)
142 6. Calculate and apply host crop: 6 - 7 = (5 - 2) * (6' - 6) / (5' - 5)