Thread (8 messages) 8 messages, 4 authors, 2007-10-19

Re: YUV Framebuffer

flat view

From: "Antonino A. Daplas" <adaplas@gmail.com>
Date: 2007-10-18 13:20:32

On Wed, 2007-10-17 at 21:45 +0200, Geert Uytterhoeven wrote:
On Wed, 17 Oct 2007, Rhee, C. Joon wrote:
quoted
Interleaved means YCBCR is on the same plane in this order.
Y CB Y CR Y CB Y CR.... (TV-Out)
So it's still FB_TYPE_PACKED_PIXELS.
quoted
The problem of matching Y=G, CB=B and CR=R for RGB offset is that the
pixel cannot be represented directly since CB/CR gets shared between Ys.

So, bitsperpixel would be 16 bit and both B and R offset will be 8.
Doesn't sound that bad to me, if you introduce a FB_VISUAL_YCBYCR
visual. Even pixels have a Cb, odd have a Cr component.
We need at least 3 fields to describe YUV.

1. The component size - fb_bitfield.length
2. The sample period - fb_bitfield.offset
3. The component ordering - fb_bitfield.msb_right

So if Y = red, U = green, V = blue

YUV422

red|green|blue.length = 8 /* 8 bits per component */
red.offset = 1 /* sampled every pixel */
green.offset = blue.offset = 2 /* sampled every 2 pixels */
red.msb_right = 1, green.msb_right = 2, blue.msb_right = 3
(Y U V order)

UVY411

red|green|blue.length = 8;
red.offset = 1;
green.offset = blue.offset = 4;
red.msb_right = 3, green.msb_right = 2, blue.msb_right = 1;

The FB_VISUAL_* will differentiate if the bitfields are interpreted as
RGB or YUV.

That's the only way I can think of describing YUV packed pixel formats
without adding new fields, or modifying our user-visible structures.

We will need separate drawing functions for fbcon's use.

Of course, the simplest way is to use fourcc naming for our FB_VISUAL_*
constants. But that will become too unwieldy over time.

Tony




-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help