From: Sylwester Nawrocki <snjw23@gmail.com>
To: Sakari Ailus <sakari.ailus@iki.fi>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>,
"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
Guennadi Liakhovetski <g.liakhovetski@gmx.de>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
"HeungJun Kim/Mobile S/W Platform Lab(DMC)/E3"
<riverful.kim@samsung.com>,
"Seung-Woo Kim/Mobile S/W Platform Lab(DMC)/E4"
<sw0312.kim@samsung.com>, Hans Verkuil <hverkuil@xs4all.nl>
Subject: Re: [Q] Interleaved formats on the media bus
Date: Sat, 04 Feb 2012 16:26:37 +0100 [thread overview]
Message-ID: <4F2D4E2D.1030107@gmail.com> (raw)
In-Reply-To: <4F2D14ED.8080105@iki.fi>
Hi Sakari,
On 02/04/2012 12:22 PM, Sakari Ailus wrote:
> Sylwester Nawrocki wrote:
>> On 02/01/2012 11:00 AM, Sakari Ailus wrote:
>>> I'd guess that all the ISP would do to such formats is to write them to
>>> memory since I don't see much use for either in ISPs --- both typically are
>>> output of the ISP.
>>
>> Yep, correct. In fact in those cases the sensor has complicated ISP built in,
>> so everything a bridge have to do is to pass data over to user space.
>>
>> Also non-image data might need to be passed to user space as well.
>
> How does one know in the user space which part of the video buffer
> contains jpeg data and which part is yuv? Does the data contain some
> kind of header, or how is this done currently?
There is an additional data appended to the image data. Part of it must
be retrieved out of the main DMA channel. I someway missed to mention in
the previous e-mails that the bridge is somehow retarded, probably because
of the way is has been evolving over time. That is, it originally
supported only the parallel video bus and then a MIPI-CSI2 frontend was
added. So it cannot split MIPI-CSI data channels into separate memory
buffers, AFAIK - at this stage. I think it just ignores the VC field of
the Data Identifier (DI), but it's just a guess for now.
If you look at the S5PV210 datasheet and the MIPI-CSIS device registers,
at the end of the IO region it has 4 x ~4kiB internal buffers for
"non-image" data. These buffers must be emptied in the interrupt handler
and I'm going to need this data in user space in order to decode data
from sensors.
Sounds like a 2-plane buffers is a way to go, one plane for interleaved
YUV/JPEG and the second one for the "metadata".
I originally thought about a separate buffer queue at the MIPI-CSIS driver,
but it likely would have added unnecessary complication in the applications.
> I'd be much in favour or using a separate channel ID as Guennadi asked;
> that way you could quite probably save one memory copy as well. But if
> the hardware already exists and behaves badly there's usually not much
> you can do about it.
As I explained above I suspect that the sensor sends each image data type
on separate channels (I'm not 100% sure) but the bridge is unable to DMA
it into separate memory regions.
Currently we have no support in V4L2 for specifying separate image data
format per MIPI-CSI2 channel. Maybe the solution is just about that -
adding support for virtual channels and a possibility to specify an image
format separately per each channel ?
Still, there would be nothing telling how the channels are interleaved :-/
--
Regards,
Sylwester
next prev parent reply other threads:[~2012-02-04 15:26 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-31 11:23 [Q] Interleaved formats on the media bus Sylwester Nawrocki
2012-02-01 1:44 ` Guennadi Liakhovetski
2012-02-01 10:44 ` Sylwester Nawrocki
2012-02-01 10:00 ` Sakari Ailus
2012-02-01 11:41 ` Sylwester Nawrocki
2012-02-02 9:55 ` Laurent Pinchart
2012-02-02 11:00 ` Guennadi Liakhovetski
2012-02-04 11:36 ` Laurent Pinchart
2012-02-02 11:14 ` Sylwester Nawrocki
2012-02-04 11:34 ` Laurent Pinchart
2012-02-04 17:00 ` Sylwester Nawrocki
2012-02-05 13:30 ` Laurent Pinchart
2012-02-08 22:48 ` Sylwester Nawrocki
[not found] ` <12779203.vQPWKN8eZf@avalon>
2012-02-10 8:42 ` Guennadi Liakhovetski
2012-02-10 10:19 ` Sylwester Nawrocki
2012-02-10 10:31 ` Sylwester Nawrocki
2012-02-10 10:33 ` Guennadi Liakhovetski
2012-02-10 10:58 ` Sylwester Nawrocki
2012-02-10 11:15 ` Guennadi Liakhovetski
2012-02-10 11:35 ` Sylwester Nawrocki
2012-02-10 11:51 ` Guennadi Liakhovetski
2012-02-04 11:22 ` Sakari Ailus
2012-02-04 11:30 ` Laurent Pinchart
2012-02-04 15:38 ` Sylwester Nawrocki
2012-02-04 15:26 ` Sylwester Nawrocki [this message]
2012-02-04 15:43 ` Sakari Ailus
2012-02-04 18:32 ` Sylwester Nawrocki
2012-02-04 23:44 ` Guennadi Liakhovetski
2012-02-05 0:36 ` Sylwester Nawrocki
2012-02-05 0:04 ` Guennadi Liakhovetski
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=4F2D4E2D.1030107@gmail.com \
--to=snjw23@gmail.com \
--cc=g.liakhovetski@gmx.de \
--cc=hverkuil@xs4all.nl \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=riverful.kim@samsung.com \
--cc=s.nawrocki@samsung.com \
--cc=sakari.ailus@iki.fi \
--cc=sw0312.kim@samsung.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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox