The SRU is currently restricted to 256 pixels as part of the current
partition algorithm. Document that the actual capability of this
component is 288 pixels, but don't increase the implementation.
The extended partition algorithm may later choose to utilise a larger
input to support overlapping partitions which will improve the quality
of the output images.
Signed-off-by: Kieran Bingham <[email protected]>
---
drivers/media/platform/vsp1/vsp1_sru.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/media/platform/vsp1/vsp1_sru.c b/drivers/media/platform/vsp1/vsp1_sru.c
index d216707f64c9..19f91eb81134 100644
--- a/drivers/media/platform/vsp1/vsp1_sru.c
+++ b/drivers/media/platform/vsp1/vsp1_sru.c
@@ -314,6 +314,11 @@ static unsigned int sru_max_width(struct vsp1_entity *entity,
output = vsp1_entity_get_pad_format(&sru->entity, sru->entity.config,
SRU_PAD_SOURCE);
+ /*
+ * The maximum input width of the SRU is 288 input pixels, but 32
+ * pixels are reserved to support overlapping partition windows when
+ * scaling.
+ */
if (input->width != output->width)
return 512;
else
--
2.17.1
The UDS is currently restricted based on a partition size of 256 pixels.
Document the actual restrictions, but don't increase the implementation.
The extended partition algorithm may later choose to utilise a larger
partition size to support overlapping partitions which will improve the
quality of the output images.
Signed-off-by: Kieran Bingham <[email protected]>
---
drivers/media/platform/vsp1/vsp1_uds.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/media/platform/vsp1/vsp1_uds.c b/drivers/media/platform/vsp1/vsp1_uds.c
index 75c613050151..e8340de85813 100644
--- a/drivers/media/platform/vsp1/vsp1_uds.c
+++ b/drivers/media/platform/vsp1/vsp1_uds.c
@@ -342,6 +342,14 @@ static unsigned int uds_max_width(struct vsp1_entity *entity,
UDS_PAD_SOURCE);
hscale = output->width / input->width;
+ /*
+ * The maximum width of the UDS is 304 pixels. These are input pixels
+ * in the event of up-scaling, and output pixels in the event of
+ * downscaling.
+ *
+ * To support overlapping parition windows we clamp at units of 256 and
+ * the remaining pixels are reserved.
+ */
if (hscale <= 2)
return 256;
else if (hscale <= 4)
--
2.17.1
Hi Kieran,
Thank you for the patch.
Reviewed-by: Laurent Pinchart <[email protected]>
On Friday, 14 September 2018 17:26:51 EEST Kieran Bingham wrote:
> The SRU is currently restricted to 256 pixels as part of the current
> partition algorithm. Document that the actual capability of this
> component is 288 pixels, but don't increase the implementation.
>
> The extended partition algorithm may later choose to utilise a larger
> input to support overlapping partitions which will improve the quality
> of the output images.
>
> Signed-off-by: Kieran Bingham <[email protected]>
> ---
> drivers/media/platform/vsp1/vsp1_sru.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/media/platform/vsp1/vsp1_sru.c
> b/drivers/media/platform/vsp1/vsp1_sru.c index d216707f64c9..19f91eb81134
> 100644
> --- a/drivers/media/platform/vsp1/vsp1_sru.c
> +++ b/drivers/media/platform/vsp1/vsp1_sru.c
> @@ -314,6 +314,11 @@ static unsigned int sru_max_width(struct vsp1_entity
> *entity, output = vsp1_entity_get_pad_format(&sru->entity,
> sru->entity.config, SRU_PAD_SOURCE);
>
> + /*
> + * The maximum input width of the SRU is 288 input pixels, but 32
> + * pixels are reserved to support overlapping partition windows when
> + * scaling.
> + */
> if (input->width != output->width)
> return 512;
> else
--
Regards,
Laurent Pinchart
Hi Kieran,
Thank you for the patch.
On Friday, 14 September 2018 17:26:52 EEST Kieran Bingham wrote:
> The UDS is currently restricted based on a partition size of 256 pixels.
> Document the actual restrictions, but don't increase the implementation.
>
> The extended partition algorithm may later choose to utilise a larger
> partition size to support overlapping partitions which will improve the
> quality of the output images.
>
> Signed-off-by: Kieran Bingham <[email protected]>
Reviewed-by: Laurent Pinchart <[email protected]>
> ---
> drivers/media/platform/vsp1/vsp1_uds.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/media/platform/vsp1/vsp1_uds.c
> b/drivers/media/platform/vsp1/vsp1_uds.c index 75c613050151..e8340de85813
> 100644
> --- a/drivers/media/platform/vsp1/vsp1_uds.c
> +++ b/drivers/media/platform/vsp1/vsp1_uds.c
> @@ -342,6 +342,14 @@ static unsigned int uds_max_width(struct vsp1_entity
> *entity, UDS_PAD_SOURCE);
> hscale = output->width / input->width;
>
> + /*
> + * The maximum width of the UDS is 304 pixels. These are input pixels
> + * in the event of up-scaling, and output pixels in the event of
> + * downscaling.
> + *
> + * To support overlapping parition windows we clamp at units of 256 and
> + * the remaining pixels are reserved.
> + */
> if (hscale <= 2)
> return 256;
> else if (hscale <= 4)
--
Regards,
Laurent Pinchart
Hello!
On 09/14/2018 05:26 PM, Kieran Bingham wrote:
> The UDS is currently restricted based on a partition size of 256 pixels.
> Document the actual restrictions, but don't increase the implementation.
>
> The extended partition algorithm may later choose to utilise a larger
> partition size to support overlapping partitions which will improve the
> quality of the output images.
>
> Signed-off-by: Kieran Bingham <[email protected]>
> ---
> drivers/media/platform/vsp1/vsp1_uds.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/media/platform/vsp1/vsp1_uds.c b/drivers/media/platform/vsp1/vsp1_uds.c
> index 75c613050151..e8340de85813 100644
> --- a/drivers/media/platform/vsp1/vsp1_uds.c
> +++ b/drivers/media/platform/vsp1/vsp1_uds.c
> @@ -342,6 +342,14 @@ static unsigned int uds_max_width(struct vsp1_entity *entity,
> UDS_PAD_SOURCE);
> hscale = output->width / input->width;
>
> + /*
> + * The maximum width of the UDS is 304 pixels. These are input pixels
> + * in the event of up-scaling, and output pixels in the event of
> + * downscaling.
> + *
> + * To support overlapping parition windows we clamp at units of 256 and
Partition.
> + * the remaining pixels are reserved.
> + */
> if (hscale <= 2)
> return 256;
> else if (hscale <= 4)
MBR, Sergei