Re: width and height of JPEG compressed images

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sylwester and Thomas,

On Wed, Jul 24, 2013 at 10:39:11AM +0200, Sylwester Nawrocki wrote:
> Hi,
> 
> On 07/24/2013 09:47 AM, Thomas Vajzovic wrote:
> >  On 23 July 2013 23:21 Sakari Ailus wrote:
> >> On Sun, Jul 21, 2013 at 10:38:18PM +0200, Sylwester Nawrocki wrote:
> >>> On 07/19/2013 10:28 PM, Sakari Ailus wrote:
> >>>> On Sat, Jul 06, 2013 at 09:58:23PM +0200, Sylwester Nawrocki wrote:
> >>>>> On 07/05/2013 10:22 AM, Thomas Vajzovic wrote:
> >>>>>
> >>>>>> The hardware reads AxB sensor pixels from its array, resamples them
> >>>>>> to CxD image pixels, and then compresses them to ExF bytes.
> >>>>>>
> >>>>> sensor matrix (AxB pixels) ->  binning/skipping (CxD pixels) ->
> >>>>> ->  JPEG compresion (width = C, height = D, sizeimage ExF bytes)
> >>>>
> >>>> Does the user need to specify ExF, for other purposes than limiting
> >>>> the size of the image? I would leave this up to the sensor driver
> >>>> (with reasonable alignment). The sensor driver would tell about this
> >>>> to the receiver through
> >>>
> >>> AFAIU ExF is closely related to the memory buffer size, so the sensor
> >>> driver itself wouldn't have enough information to fix up ExF, would it ?
> >>
> >> If the desired sizeimage is known, F can be calculated if E is fixed, say
> >> 1024 should probably work for everyone, shoulnd't it?
> > 
> > It's a nice clean idea (and I did already consider it) but it reduces the
> > flexibility of the system as a whole.
> > 
> > Suppose an embedded device wants to send the compressed image over a
> > network in packets of 1500 bytes, and they want to allow 3 packets per
> > frame.  Your proposal limits sizeimage to a multiple of 1K, so they have
> > to set sizeimage to 4K when they want 4.5K, meaning that they waste 500
> > bytes of bandwidth every frame.
> > 
> > You could say "tough luck, extra overhead like this is something you should
> > expect if you want to use a general purpose API like V4L2", but why make
> > it worse if we can make it better?
> 
> I entirely agree with that. Other issue with fixed number of samples
> per line is that internal (FIFO) line buffer size of the transmitter
> devices will vary, and for example some devices might have line buffer
> smaller than the value we have arbitrarily chosen. I'd expect the
> optimal number of samples per line to vary among different devices
> and use cases.

I guess the sensor driver could factor the size as well (provided it can
choose an arbitrary size) but then to be fully generic, I think alignment
must also be taken care of. Many receivers might require width to be even
but some might have tighter requirements. They have a minimum width, too.

To make this working in a generic case might not be worth the time and
effort of being able to shave up to 1 kiB off of video buffer allocations.

Remember v4l2_buffer.length is different from v4l2_pix_format.sizeimage.
Hmm. Yes --- so to the sensor goes desired maximum size, and back you'd get
ExF (i.e. buffer length) AND the size of the image.

What do you think?

-- 
Cheers,

Sakari Ailus
e-mail: sakari.ailus@xxxxxx	XMPP: sailus@xxxxxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux