From: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com> To: Pavel Machek <pavel@ucw.cz> Cc: Mauro Carvalho Chehab <mchehab@s-opensource.com>, pali.rohar@gmail.com, sre@kernel.org, kernel list <linux-kernel@vger.kernel.org>, linux-arm-kernel <linux-arm-kernel@lists.infradead.org>, linux-omap@vger.kernel.org, tony@atomide.com, khilman@kernel.org, aaro.koskinen@iki.fi, patrikbachan@gmail.com, serge@hallyn.com, abcloriens@gmail.com, Sakari Ailus <sakari.ailus@iki.fi>, Sakari Ailus <sakari.ailus@linux.intel.com>, linux-media@vger.kernel.org Subject: Re: [patch] autogain support for bayer10 format (was Re: [patch] propagating controls in libv4l2) Date: Thu, 27 Apr 2017 08:52:21 +0300 [thread overview] Message-ID: <8a129dca-69c2-366f-1a81-c64dbabc1983@gmail.com> (raw) In-Reply-To: <20170426225150.GA4188@amd> On 27.04.2017 01:51, Pavel Machek wrote: > Hi! > >>>> There are two separate things here: >>>> >>>> 1) Autofoucs for a device that doesn't use subdev API >>>> 2) libv4l2 support for devices that require MC and subdev API >>> >>> Actually there are three: 0) autogain. Unfortunately, I need autogain >>> first before autofocus has a chance... >>> >>> And that means... bayer10 support for autogain. >>> >>> Plus, I changed avg_lum to long long. Quick calculation tells me int >>> could overflow with few megapixel sensor. >>> >>> Oh, btw http://ytse.tricolour.net/docs/LowLightOptimization.html no >>> longer works. >>> >>> Regards, >>> Pavel >>> >>> diff --git a/lib/libv4lconvert/processing/autogain.c b/lib/libv4lconvert/processing/autogain.c >>> index c6866d6..0b52d0f 100644 >>> --- a/lib/libv4lconvert/processing/autogain.c >>> +++ b/lib/libv4lconvert/processing/autogain.c >>> @@ -68,6 +71,41 @@ static void autogain_adjust(struct v4l2_queryctrl *ctrl, int *value, >>> } >>> } >>> >>> +static int get_luminosity_bayer10(uint16_t *buf, const struct v4l2_format *fmt) >>> +{ >>> + long long avg_lum = 0; >>> + int x, y; >>> + >>> + buf += fmt->fmt.pix.height * fmt->fmt.pix.bytesperline / 4 + >>> + fmt->fmt.pix.width / 4; >>> + >>> + for (y = 0; y < fmt->fmt.pix.height / 2; y++) { >>> + for (x = 0; x < fmt->fmt.pix.width / 2; x++) >> >> That would take some time :). AIUI, we have NEON support in ARM kernels >> (CONFIG_KERNEL_MODE_NEON), I wonder if it makes sense (me) to convert the >> above loop to NEON-optimized when it comes to it? Are there any drawbacks in >> using NEON code in kernel? > > Well, thanks for offer. This is actualy libv4l2. > Oh, somehow I got confused that this is kernel code :) > But I'd say NEON conversion is not neccessary anytime soon. First, > this is just trying to get average luminosity. We can easily skip > quite a lot of pixels, and still get reasonable answer. > > Second, omap3isp actually has a hardware block computing statistics > for us. We just don't use it for simplicity. > Right, I forgot about that. > (But if you want to play with camera, I'll get you patches; there's > ton of work to be done, both kernel and userspace :-). Well, I saw a low hanging fruit I thought I can convert to NEON in a day or two, while having some rest from the huge "project" I am devoting all my spare time recently (rebasing hildon/maemo 5 on top of devuan Jessie). Still, if there is something relatively small to be done, just email me and I'll have a look. Regards, Ivo
WARNING: multiple messages have this Message-ID (diff)
From: ivo.g.dimitrov.75@gmail.com (Ivaylo Dimitrov) To: linux-arm-kernel@lists.infradead.org Subject: [patch] autogain support for bayer10 format (was Re: [patch] propagating controls in libv4l2) Date: Thu, 27 Apr 2017 08:52:21 +0300 [thread overview] Message-ID: <8a129dca-69c2-366f-1a81-c64dbabc1983@gmail.com> (raw) In-Reply-To: <20170426225150.GA4188@amd> On 27.04.2017 01:51, Pavel Machek wrote: > Hi! > >>>> There are two separate things here: >>>> >>>> 1) Autofoucs for a device that doesn't use subdev API >>>> 2) libv4l2 support for devices that require MC and subdev API >>> >>> Actually there are three: 0) autogain. Unfortunately, I need autogain >>> first before autofocus has a chance... >>> >>> And that means... bayer10 support for autogain. >>> >>> Plus, I changed avg_lum to long long. Quick calculation tells me int >>> could overflow with few megapixel sensor. >>> >>> Oh, btw http://ytse.tricolour.net/docs/LowLightOptimization.html no >>> longer works. >>> >>> Regards, >>> Pavel >>> >>> diff --git a/lib/libv4lconvert/processing/autogain.c b/lib/libv4lconvert/processing/autogain.c >>> index c6866d6..0b52d0f 100644 >>> --- a/lib/libv4lconvert/processing/autogain.c >>> +++ b/lib/libv4lconvert/processing/autogain.c >>> @@ -68,6 +71,41 @@ static void autogain_adjust(struct v4l2_queryctrl *ctrl, int *value, >>> } >>> } >>> >>> +static int get_luminosity_bayer10(uint16_t *buf, const struct v4l2_format *fmt) >>> +{ >>> + long long avg_lum = 0; >>> + int x, y; >>> + >>> + buf += fmt->fmt.pix.height * fmt->fmt.pix.bytesperline / 4 + >>> + fmt->fmt.pix.width / 4; >>> + >>> + for (y = 0; y < fmt->fmt.pix.height / 2; y++) { >>> + for (x = 0; x < fmt->fmt.pix.width / 2; x++) >> >> That would take some time :). AIUI, we have NEON support in ARM kernels >> (CONFIG_KERNEL_MODE_NEON), I wonder if it makes sense (me) to convert the >> above loop to NEON-optimized when it comes to it? Are there any drawbacks in >> using NEON code in kernel? > > Well, thanks for offer. This is actualy libv4l2. > Oh, somehow I got confused that this is kernel code :) > But I'd say NEON conversion is not neccessary anytime soon. First, > this is just trying to get average luminosity. We can easily skip > quite a lot of pixels, and still get reasonable answer. > > Second, omap3isp actually has a hardware block computing statistics > for us. We just don't use it for simplicity. > Right, I forgot about that. > (But if you want to play with camera, I'll get you patches; there's > ton of work to be done, both kernel and userspace :-). Well, I saw a low hanging fruit I thought I can convert to NEON in a day or two, while having some rest from the huge "project" I am devoting all my spare time recently (rebasing hildon/maemo 5 on top of devuan Jessie). Still, if there is something relatively small to be done, just email me and I'll have a look. Regards, Ivo
next prev parent reply other threads:[~2017-04-27 5:52 UTC|newest] Thread overview: 152+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-02-14 12:20 [PATCH v3 0/2] v4l: Add camera voice coil lens control class, current control Sakari Ailus 2017-02-14 12:20 ` [PATCH v3 1/2] " Sakari Ailus 2017-02-14 22:47 ` Pavel Machek 2017-02-15 7:15 ` Sakari Ailus 2017-02-15 8:09 ` Pavel Machek 2017-02-20 22:26 ` Sakari Ailus 2017-02-20 22:48 ` Pavel Machek 2017-04-15 2:23 ` Mauro Carvalho Chehab 2017-04-15 7:12 ` Pavel Machek 2017-04-16 9:12 ` Sakari Ailus 2017-04-19 13:51 ` Mauro Carvalho Chehab 2017-04-24 9:30 ` support autofocus / autogain in libv4l2 Pavel Machek 2017-04-24 13:38 ` Mauro Carvalho Chehab 2017-04-24 13:38 ` Mauro Carvalho Chehab 2017-04-24 21:29 ` Pavel Machek 2017-04-24 21:29 ` Pavel Machek 2017-04-25 1:47 ` Mauro Carvalho Chehab 2017-04-25 1:47 ` Mauro Carvalho Chehab 2017-04-25 8:05 ` Pavel Machek 2017-04-25 8:05 ` Pavel Machek 2017-04-25 8:08 ` Pali Rohár 2017-04-25 8:08 ` Pali Rohár 2017-04-25 8:08 ` Pali Rohár 2017-04-25 11:23 ` Pavel Machek 2017-04-25 11:23 ` Pavel Machek 2017-04-25 11:30 ` Pali Rohár 2017-04-25 11:30 ` Pali Rohár 2017-04-25 12:28 ` Pavel Machek 2017-04-25 12:28 ` Pavel Machek 2017-04-25 12:51 ` Pali Rohár 2017-04-25 12:51 ` Pali Rohár 2017-04-25 16:55 ` Nicolas Dufresne 2017-04-25 16:55 ` Nicolas Dufresne 2017-04-25 16:51 ` Nicolas Dufresne 2017-04-25 16:51 ` Nicolas Dufresne 2017-04-25 16:53 ` Nicolas Dufresne 2017-04-25 16:53 ` Nicolas Dufresne 2017-04-25 16:53 ` Nicolas Dufresne 2017-04-26 10:53 ` Pavel Machek 2017-04-26 10:53 ` Pavel Machek 2017-04-26 10:53 ` [patch] propagating controls in libv4l2 was " Pavel Machek 2017-04-26 10:53 ` Pavel Machek 2017-04-26 11:13 ` Mauro Carvalho Chehab 2017-04-26 11:13 ` Mauro Carvalho Chehab 2017-04-26 13:23 ` [patch] autogain support for bayer10 format (was Re: [patch] propagating controls in libv4l2) Pavel Machek 2017-04-26 13:23 ` Pavel Machek 2017-04-26 15:43 ` Ivaylo Dimitrov 2017-04-26 15:43 ` Ivaylo Dimitrov 2017-04-26 22:51 ` Pavel Machek 2017-04-26 22:51 ` Pavel Machek 2017-04-26 22:51 ` Pavel Machek 2017-04-27 5:52 ` Ivaylo Dimitrov [this message] 2017-04-27 5:52 ` Ivaylo Dimitrov 2017-07-13 7:57 ` Pavel Machek 2017-07-13 7:57 ` Pavel Machek 2017-05-03 19:05 ` Russell King - ARM Linux 2017-05-03 19:05 ` Russell King - ARM Linux 2017-05-03 19:58 ` Pavel Machek 2017-05-03 19:58 ` Pavel Machek 2017-05-08 22:28 ` [patch, libv4l]: fix integer overflow Pavel Machek 2017-05-09 6:29 ` Hans Verkuil 2017-05-09 6:32 ` Hans Verkuil 2017-05-09 8:02 ` Pavel Machek 2017-05-09 10:59 ` [patch, libv4l]: fix typos Pavel Machek 2017-05-09 11:01 ` [patch, libv4l]: Add support for GRBG10 format conversion Pavel Machek 2017-05-09 11:04 ` [patch, libv4l]: Introduce define for lookup table size Pavel Machek 2017-05-16 11:17 ` Hans Verkuil 2017-05-16 12:45 ` Pavel Machek 2017-05-16 12:56 ` Hans Verkuil 2017-05-16 23:23 ` Pavel Machek 2017-05-19 9:13 ` [libv4l]: How to do 10-bit support? Stand-alone conversions? Pavel Machek 2018-03-16 20:55 ` [RFC, libv4l]: Make libv4l2 usable on devices with complex pipeline Pavel Machek 2018-03-19 9:47 ` Hans Verkuil 2018-03-19 10:23 ` Pavel Machek 2018-03-19 10:47 ` Mauro Carvalho Chehab 2018-03-19 11:11 ` Hans Verkuil 2018-03-19 12:00 ` Pavel Machek 2018-03-19 12:15 ` Hans Verkuil 2018-03-19 12:48 ` Pavel Machek 2018-03-19 13:29 ` Hans Verkuil 2018-03-19 22:18 ` Pavel Machek 2018-03-19 13:45 ` Mauro Carvalho Chehab 2018-03-19 13:26 ` Mauro Carvalho Chehab 2018-03-20 7:50 ` Pavel Machek 2018-05-15 20:01 ` Pavel Machek 2018-05-15 22:03 ` Mauro Carvalho Chehab 2018-05-16 20:53 ` Pavel Machek 2018-06-02 21:01 ` Pavel Machek 2018-06-06 6:18 ` Tomasz Figa 2018-06-06 8:46 ` Pavel Machek 2018-06-06 8:53 ` Tomasz Figa 2018-06-06 10:01 ` Pavel Machek 2018-06-06 16:57 ` Mauro Carvalho Chehab 2018-06-06 21:27 ` Pavel Machek 2018-06-07 12:22 ` [PATCH, " Pavel Machek 2018-06-06 10:51 ` [RFC, " Pavel Machek 2018-06-06 11:16 ` Tomasz Figa 2018-06-06 20:37 ` Pavel Machek 2018-06-06 17:13 ` Mauro Carvalho Chehab 2018-06-06 10:23 ` Pavel Machek 2018-06-07 7:25 ` Pavel Machek 2017-05-09 11:10 ` [patch, libv4l]: fix integer overflow Pavel Machek 2017-05-16 10:42 ` Pavel Machek 2017-05-21 10:33 ` [patch, libv4l]: add sdlcam example for testing digital still camera functionality Pavel Machek 2017-05-26 20:41 ` Pavel Machek 2017-05-27 9:27 ` Hans Verkuil 2017-05-29 6:13 ` Hans Verkuil 2017-05-29 7:32 ` Pavel Machek 2017-05-29 8:02 ` Hans Verkuil 2017-06-14 11:16 ` Sakari Ailus 2017-06-14 20:41 ` Pavel Machek 2017-07-13 8:36 ` Pavel Machek 2017-05-09 8:07 ` [patch, libv4l]: fix integer overflow Pavel Machek 2017-04-30 22:48 ` [patch] autogain support for bayer10 format (was Re: [patch] propagating controls in libv4l2) Pavel Machek 2017-04-30 22:48 ` Pavel Machek 2017-07-13 9:49 ` [patch] propagating controls in libv4l2 was Re: support autofocus / autogain in libv4l2 Pavel Machek 2017-07-13 9:49 ` Pavel Machek 2017-04-26 11:26 ` Mauro Carvalho Chehab 2017-04-26 11:26 ` Mauro Carvalho Chehab 2017-04-29 9:19 ` Pavel Machek 2017-04-29 9:19 ` Pavel Machek 2017-10-21 22:00 ` Camera support, Prague next week, sdlcam Pavel Machek 2017-10-22 7:36 ` Hans Verkuil 2017-10-22 7:36 ` Hans Verkuil 2017-10-22 8:31 ` Pavel Machek 2017-10-22 8:31 ` Pavel Machek 2017-10-23 18:54 ` Pavel Machek 2017-10-23 18:54 ` Pavel Machek 2017-10-23 19:24 ` Hans Verkuil 2017-10-23 19:24 ` Hans Verkuil 2017-10-23 20:15 ` Sakari Ailus 2017-10-23 20:15 ` Sakari Ailus 2017-10-23 21:02 ` Mauro Carvalho Chehab 2017-10-23 21:02 ` Mauro Carvalho Chehab 2017-10-31 21:28 ` Nokia N9: fun with camera Pavel Machek 2017-11-01 6:36 ` Pavel Machek 2017-11-01 6:36 ` Pavel Machek 2017-11-01 15:32 ` Pavel Machek 2017-11-01 15:32 ` Pavel Machek 2017-04-24 22:07 ` support autofocus / autogain in libv4l2 Pavel Machek 2017-04-24 22:07 ` Pavel Machek 2017-04-25 1:57 ` Mauro Carvalho Chehab 2017-04-25 1:57 ` Mauro Carvalho Chehab 2017-04-25 8:20 ` Pavel Machek 2017-04-25 8:20 ` Pavel Machek 2017-04-25 11:23 ` Pavel Machek 2017-04-25 11:23 ` Pavel Machek 2017-04-28 22:00 ` [PATCH v3 1/2] v4l: Add camera voice coil lens control class, current control Pavel Machek 2017-04-29 1:46 ` Mauro Carvalho Chehab 2017-05-12 10:49 ` Sakari Ailus 2017-05-13 11:08 ` Pavel Machek 2017-02-14 12:20 ` [PATCH v3 2/2] ad5820: Use VOICE_COIL_CURRENT control Sakari Ailus
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=8a129dca-69c2-366f-1a81-c64dbabc1983@gmail.com \ --to=ivo.g.dimitrov.75@gmail.com \ --cc=aaro.koskinen@iki.fi \ --cc=abcloriens@gmail.com \ --cc=khilman@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=linux-omap@vger.kernel.org \ --cc=mchehab@s-opensource.com \ --cc=pali.rohar@gmail.com \ --cc=patrikbachan@gmail.com \ --cc=pavel@ucw.cz \ --cc=sakari.ailus@iki.fi \ --cc=sakari.ailus@linux.intel.com \ --cc=serge@hallyn.com \ --cc=sre@kernel.org \ --cc=tony@atomide.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.