All,

On Mon, Jan 02, 2012 at 16:51:06, Laurent Pinchart wrote:
> Hi Sakari,
> 
> On Wednesday 28 December 2011 12:16:27 Sakari Ailus wrote:
> > On Wed, Dec 21, 2011 at 11:23:26PM +0100, Laurent Pinchart wrote:
> > > On Wednesday 21 December 2011 14:56:36 Hadli, Manjunath wrote:
> > > > On Wed, Dec 21, 2011 at 05:32:08, Laurent Pinchart wrote:
> > > > > On Friday 16 December 2011 14:42:48 Hadli, Manjunath wrote:
> > > > > > On Thu, Dec 15, 2011 at 18:30:47, Laurent Pinchart wrote:
> > > > > > > On Thursday 15 December 2011 13:24:58 Manjunath Hadli wrote:
> > > > > > > > add new macro V4L2_PIX_FMT_SGRBG10ALAW8 to represent Bayer 
> > > > > > > > format frames compressed by A-LAW alogorithm.
> > > > > > > > add V4L2_PIX_FMT_UV8 to represent storage of C (UV 
> > > > > > > > interleved) only.
> > > > > > > > 
> > > > > > > > Signed-off-by: Manjunath Hadli <manjunath.ha...@ti.com>
> > > > > > > > Cc: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
> > > > > > > > ---
> > > > > > > > 
> > > > > > > >  include/linux/videodev2.h |    6 ++++++
> > > > > > > >  1 files changed, 6 insertions(+), 0 deletions(-)
> > > > > > > 
> > > > > > > Could you please also document these formats in 
> > > > > > > Documentation/DocBook/media/v4l ?
> > > > > > 
> > > > > > I will. Sorry to have missed that out.
> > > > > > 
> > > > > > > > diff --git a/include/linux/videodev2.h 
> > > > > > > > b/include/linux/videodev2.h index 4b752d5..969112d 100644
> > > > > > > > --- a/include/linux/videodev2.h
> > > > > > > > +++ b/include/linux/videodev2.h
> > > > > > > > @@ -338,6 +338,9 @@ struct v4l2_pix_format {
> > > > > > > > 
> > > > > > > >  #define V4L2_PIX_FMT_HM12    v4l2_fourcc('H', 'M', '1', '2')
> > > > > > > >  /*  8 YUV
> > > > > > > > 
> > > > > > > > 4:2:0 16x16 macroblocks */ #define V4L2_PIX_FMT_M420 
> > > > > > > > v4l2_fourcc('M', '4', '2', '0') /* 12  YUV 4:2:0 2 lines 
> > > > > > > > y, 1 line uv interleaved */
> > > > > > > > 
> > > > > > > > +/* Chrominance formats */
> > > > > > > > +#define V4L2_PIX_FMT_UV8      v4l2_fourcc('U', 'V', '8', ' ')
> > > > > > > > /* 8 UV 4:4 */ +
> > > > > > > > 
> > > > > > > >  /* two planes -- one Y, one Cr + Cb interleaved  */
> > > > > > > >  #define V4L2_PIX_FMT_NV12    v4l2_fourcc('N', 'V', '1', '2')
> > > > > > > >  /* 12 Y/CbCr
> > > > > > > > 
> > > > > > > > 4:2:0  */ #define V4L2_PIX_FMT_NV21    v4l2_fourcc('N', 'V',
> > > > > > > > '2', '1') /* 12  Y/CrCb 4:2:0  */ @@ -366,6 +369,9 @@ 
> > > > > > > > struct v4l2_pix_format { #define V4L2_PIX_FMT_SRGGB12 
> > > > > > > > v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */ /* 
> > > > > > > > 10bit raw bayer DPCM compressed to 8 bits */ #define
> > > > > > > > V4L2_PIX_FMT_SGRBG10DPCM8 v4l2_fourcc('B', 'D', '1', '0')
> > > > > > > > +       /* 10bit raw bayer a-law compressed to 8 bits */ #define
> > > > > > > > +V4L2_PIX_FMT_SGRBG10ALAW8 v4l2_fourcc('A', 'L', 'W', '8')
> > > > > > > > +
> > > > > > > 
> > > > > > > That's not very future-proof, how would you describe 
> > > > > > > SGBRG10ALAW8 for instance ?
> > > > > > > 
> > > > > > > Maybe it's time to standardize FOURCCs for Bayer new 
> > > > > > > formats. We have 4 characters, we could start with 'B' to 
> > > > > > > denote Bayer, followed by one character for the order, one 
> > > > > > > for the compression, and one for the number of bits.
> > > > > > 
> > > > > > I agree.
> > > > > > May be ('B', 'G', 'A', '8') is fine for the above?
> > > > > 
> > > > > We need to describe at last BGGR, GBRG, GRBG and RGGB. We could 
> > > > > use 'B', 'g', 'G' and 'R' respectively for the second character. 
> > > > > The third character would be 'A' for A-law and 'D' for DPCM, and 
> > > > > the fourth character could describe the bus width in bits from 0 
> > > > > to 15 with '0' - '9', 'A' - 'F'. However, I suspect that we will 
> > > > > need 16-bit wide busses for raw Bayer at some point, and a 0 
> > > > > width is definitely not useful. We could thus offset the width by 
> > > > > some value.
> > > > > 
> > > > > This is just a preliminary idea, I'm open to suggestions.
> > > > 
> > > > I think it is a very good suggestion that we can go with.
> > > > B : BGGR
> > > > g : GBRG
> > > > G : GRBG
> > > > R : RGGB
> > > > 
> > > > and 0-F can signify 1-16.
> > > 
> > > Hans, Guennadi, Sakari, any opinion on that as well ?
> > 
> > I think four letters simply aren't enough to universally describe a 
> > media bus format in a human-readable way. We can aim to that, but we 
> > will have to make compromises.
> > 
> > For example, DPCM compressed format has two important parameters 
> > beyond pixel order and the colour space, the uncompressed depth and 
> > the compressed depth. Typically one doesn't compress the data too 
> > much, but things like
> > 10-to-6 bits are well possible.
> > 
> > Could we use a single letter to tell that a format is both bayer and 
> > DPCM compressed? I'd go for 'b'. Raw bayer alaw could be denoted by 'a'.
> > 
> > Then raw bayer, GBRG pixel order 10-to-7 bits would be called "bgA7". 
> > The same in Alaw would be "agA7".
> > 
> > What do you think?
> 
> We can't come up with a naming scheme that will handle all possible 
> combinations. I'm fine as long as the names we select have some kind of 
> structure and handle the raw patterns currently available. I'd still like to 
> hear Hans' opinion on this.
Since we agree that the scheme will not be able to cover the spectrum 
In the level of detail which we would like to, I think we should go with the 
Above discussed scheme which seems logical. I will send out a detailed patch 
With added documentation.


Thx,
-Manju

> 
> --
> Regards,
> 
> Laurent Pinchart
> 

_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to