lkml.org 
[lkml]   [2016]   [Jul]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v4 09/12] [media] vivid: Local optimization
From
Date
Hi Ricardo,

Am Montag, den 18.07.2016, 14:42 +0200 schrieb Ricardo Ribalda Delgado:
> Avoid duplicated data shifts when possible.
>
> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
> ---
> drivers/media/common/v4l2-tpg/v4l2-tpg-core.c | 13 +++++++------
> 1 file changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c b/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c
> index a26172575e56..7f284c591f25 100644
> --- a/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c
> +++ b/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c
> @@ -919,13 +919,14 @@ static void precalculate_color(struct tpg_data *tpg, int k)
> color_to_ycbcr(tpg, r, g, b, &y, &cb, &cr);
>
> if (tpg->real_quantization == V4L2_QUANTIZATION_LIM_RANGE) {
> - y = clamp(y, 16 << 4, 235 << 4);
> - cb = clamp(cb, 16 << 4, 240 << 4);
> - cr = clamp(cr, 16 << 4, 240 << 4);
> + y = clamp(y >> 4, 16, 235);
> + cb = clamp(cb >> 4, 16, 240);
> + cr = clamp(cr >> 4, 16, 240);

Since the constant expressions are evaluated at compile time, you are
not actually removing shifts. The code generated for precalculate_color
by gcc 5.4 even grows by one asr instruction with this patch.

> + } else {
> + y = clamp(y >> 4, 1, 254);
> + cb = clamp(cb >> 4, 1, 254);
> + cr = clamp(cr >> 4, 1, 254);
> }
> - y = clamp(y >> 4, 1, 254);
> - cb = clamp(cb >> 4, 1, 254);
> - cr = clamp(cr >> 4, 1, 254);
> switch (tpg->fourcc) {
> case V4L2_PIX_FMT_YUV444:
> y >>= 4;

regards
Philipp

\
 
 \ /
  Last update: 2016-07-18 15:41    [W:2.039 / U:0.020 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site