![]() |
|
Søg: | |
Udgivelses datoen kendes ikke.
Oplysningerne i dette dokument er hentet på adressen:
http://www.webartz.com/fourcc/indexyuv.htm
YUV formats fall into two distinct groups, the packed formats where Y, U and V samples are packed together into macropixels which are stored in a single array, and the planar formats where each component is stored as a separate array, the final image being a fusing of the three separate planes.
In the diagrams below, the numerical suffix attached to each Y, U or V sample indicates the sampling position across the image line, so, for example, V0 indicates the leftmost V sample and Yn indicates the Y sample at the (n+1)th pixel from the left.
Subsampling intervals in the horizontal and vertical directions may merit some explanation. The horizontal subsampling interval describes how frequently across a line a sample of that component is taken while the vertical interval describes on which lines samples are taken. For example, UYVY format has a horizontal subsampling period of 2 for both the U and V components indicating that U and V samples are taken for every second pixel across a line. Their vertical subsampling period is 1 indicating that U and V samples are taken on each line of the image.
For YVU9, though, the vertical subsampling interval is 4. This indicates that U and V samples are only taken on every fourth line of the original image. Since the horizontal sampling period is also 4, a single U and a single V sample are taken for each square block of 16 image pixels.
Label | FOURCC in Hex | Bits per pixel | Description |
IUYV | 0x56595549 | 16 | Interlaced version of UYVY (line order 0, 2, 4,....,1, 3, 5....) registered by Silviu Brinzei of Lead Technologies. |
IY41 | 0x31345949 | 12 | Interlaced version of Y41P (line order 0, 2, 4,....,1, 3, 5....) registered by Silviu Brinzei of Lead Technologies. |
IYU1 | 0x31555949 | 12 | 12 bit format used in mode 2 of the IEEE 1394 Digital Camera 1.04 spec |
IYU2 | 0x32555949 | 24 | 24 bit format used in mode 2 of the IEEE 1394 Digital Camera 1.04 spec |
UYVY | 0x59565955 | 16 | YUV 4:2:2 (Y sample at every pixel, U and V sampled at every second pixel horizontally on each line). A macropixel contains 2 pixels in 1 u_int32. |
UYNV | 0x564E5955 | 16 | A direct copy of UYVY registered by NVidia to work around problems in some old codecs which did not like hardware which offered more than 2 UYVY surfaces. |
Y422 | 0x32323459 | 16 | Direct copy of UYVY as used by ADS Technologies Pyro WebCam firewire camera. |
cyuv | 0x76757963 | 16 | Essentially a copy of UYVY except that the sense of the height is reversed - the image is upside down with respect to the UYVY version. |
YUY2 | 0x32595559 | 16 | YUV 4:2:2 as for UYVY but with different component ordering within the u_int32 macropixel. |
YUNV | 0x564E5559 | 16 | A direct copy of YUY2 registered by NVidia to work around problems in some old codecs which did not like hardware which offered more than 2 YUY2 surfaces. |
YVYU | 0x55595659 | 16 | YUV 4:2:2 as for UYVY but with different component ordering within the u_int32 macropixel. |
Y41P | 0x50313459 | 12 | YUV 4:1:1 (Y sample at every pixel, U and V sampled at every fourth pixel horizontally on each line). A macropixel contains 8 pixels in 3 u_int32s. |
Y211 | 0x31313259 | 8 | Packed YUV format with Y sampled at every second pixel across each line and U and V sampled at every fourth pixel. |
Y41T | 0x54313459 | 12 | Format as for Y41P but the lsb of each Y component is used to signal pixel transparency . |
Y42T | 0x54323459 | 16 | Format as for UYVY but the lsb of each Y component is used to signal pixel transparency . |
V422 | 0x32323456 | 16? | Looks to be a duplicate of YUY2 |
V655 | 0x35353656 | 16? | 16 but YUV 4:2:2 format registerd by Vitec Multimedia |
CLJR | 0x524A4C43 | 8 | Cirrus Logic format with 4 pixels packed into a u_int32. A form of YUV 4:1:1 wiht less than 8 bits per Y, U and V sample. |
YUVP | 0x50565559 | 24? | YCbCr 4:2:2 extended precision 10-bits per component in Y0U0Y1V0 order. Registered by Rich Ehlers of Evans & Sutherland. (Awaiting confirmation of component packing structure) |
UYVP | 0x50565955 | 24? | YCbCr 4:2:2 extended precision 10-bits per component in U0Y0V0Y1 order. Registered by Rich Ehlers of Evans & Sutherland. (Awaiting confirmation of component packing structure) |
Y800 | 0x30303859 | 8 | Simple, single Y plane for monochrome images. |
Y8 | 0x20203859 | 8 | Duplicate of Y800 as far as I can see. |
UYVY is probably the most popular of the various YUV 4:2:2 formats. It is output as the format of choice by the Radius Cinepak codec and is often the second choice of software MPEG codecs after YV12.
Horizontal | Vertical | |
Y Sample Period | 1 | 1 |
V Sample Period | 2 | 1 |
U Sample Period | 2 | 1 |
Effective bits per pixel : 16
Positive biHeight implies top-down imge (top line first)
IUYV is basically the same as UYVY with the exception that the data is interlaced. Lines are ordered 0,2,4,....,1,3,5.... instead of 0,1,2,3,4,5,....
This FOURCC, allegedly registered by Creative Labs, is essentially a duplicate of UYVY. The only difference is that the image is flipped vertically, the first u_int16 in the buffer representing the bottom line of the viewed image. Note that the FOURCC is comprised of lower case characters (so much for the upper case convention !)
Horizontal | Vertical | |
Y Sample Period | 1 | 1 |
V Sample Period | 2 | 1 |
U Sample Period | 2 | 1 |
Effective bits per pixel : 16
Positive biHeight implies bottom-up image (botton line first)
YUY2 is another in the family of YUV 4:2:2 formats and appears to be used by all the same codecs as UYVY.
Horizontal | Vertical | |
Y Sample Period | 1 | 1 |
V Sample Period | 2 | 1 |
U Sample Period | 2 | 1 |
Effective bits per pixel : 16
Positive biHeight implies top-down image (top line first)
There is a help page here which contains information on playing AVIs which include video stored in YUY2 format.
Despite being a simple byte ordering change from YUY2 or UYVY, YVYU seems to be seen somewhat less often than the other two formats defined above.
Horizontal | Vertical | |
Y Sample Period | 1 | 1 |
V Sample Period | 2 | 1 |
U Sample Period | 2 | 1 |
Effective bits per pixel : 16
Positive biHeight implies top-down image (top line first)
This YUV 4:1:1 format is registered as a PCI standard format. Mediamatics MPEG 1 engine is the only codec (other than a Brooktree internal one) that I know of that can generate it.
Horizontal | Vertical | |
Y Sample Period | 1 | 1 |
V Sample Period | 4 | 1 |
U Sample Period | 4 | 1 |
Effective bits per pixel : 12
Positive biHeight implies top-down image (top line first)
IY41 is basically the same as Y41P with the exception that the data is interlaced. Lines are ordered 0,2,4,....,1,3,5.... instead of 0,1,2,3,4,5,....
I have yet to find anything that will output Y211 ! The format looks very much like the missing YUV 4:2:2 ordering but Y samples are only taken on every second pixel. Think of it as a half width 4:2:2 image and double the width on display.
Horizontal | Vertical | |
Y Sample Period | 2 | 1 |
V Sample Period | 4 | 1 |
U Sample Period | 4 | 1 |
Effective bits per pixel : 8
Positive biHeight implies top-down image (top line first)
This format is identical to Y41P except for the fact that the least significant bit of each Y component forms a chromakey channel. If this bit is set, the YUV image pixel is displayed, if cleared, the pixel is transparent (and the underlying graphics pixel is shown).
Positive biHeight implies top-down image (top line first)
This format is identical to UYVY except for the fact that the least significant bit of each Y component forms a chromakey channel. If this bit is set, the YUV image pixel is displayed, if cleared, the pixel is transparent (and the underlying graphics pixel is shown).
Positive biHeight implies top-down image (top line first)
Cirrus Logic's format packs 4 pixel samples into a single u_int32 by sacrificing precision on each sample. Y samples are truncated to 5 bits each, U and V have 6 bits per sample.
Horizontal | Vertical | |
Y Sample Period | 1 | 1 |
V Sample Period | 4 | 1 |
U Sample Period | 4 | 1 |
Effective bits per pixel : 8
Positive biHeight implies top-down image (top line first)
The IYU1 format is a 12 bit format used in mode 2 of the IEEE 1394 Digital Camera 1.04 spec ("1394-based Digital Camera Specification, Version 1.04, August 9, 1996", page 14.) The format is YUV (4:1:1) according to the following pattern:
Byte | 0 | 1 | 2 | 3 | 4 | 5 |
Sample | U(K+0) | Y(K+0) | Y(K+1) | V(K+0) | Y(K+2) | Y(K+3) |
Horizontal | Vertical | |
Y Sample Period | 1 | 1 |
V Sample Period | 4 | 1 |
U Sample Period | 4 | 1 |
The IYU2 format is a 24 bit format used in mode 2 of the IEEE 1394 Digital Camera 1.04 spec (ibid.) The format is YUV (4:4:4) according to the following pattern:
Byte | 0 | 1 | 2 | 3 | 4 | 5 |
Sample | U(K+0) | Y(K+0) | V(K+0) | U(K+1) | Y(K+1) | V(K+1) |
Horizontal | Vertical | |
Y Sample Period | 1 | 1 |
V Sample Period | 1 | 1 |
U Sample Period | 1 | 1 |
Label | FOURCC in Hex | Bits per pixel | Description |
YVU9 | 0x39555659 | 9 | 8 bit Y plane followed by 8 bit 4x4 subsampled V and U planes. |
IF09 | 0x39304649 | 9.5 | As YVU9 but an additional 4x4 subsampled plane is appended containing delta information relative to the last frame. (Bpp is reported as 9) |
YV12 | 0x32315659 | 12 | 8 bit Y plane followed by 8 bit 2x2 subsampled V and U planes. |
I420 | 0x30323449 | 12 | 8 bit Y plane followed by 8 bit 2x2 subsampled U and V planes. |
IYUV | 0x56555949 | 12 | Duplicate FOURCC, identical to I420. |
CLPL | 0x4C504C43 | 12 | Format similar to YV12 but including a level of indirection. |
Y800 | 0x30303859 | 8 | Simple, single Y plane for monochrome images. |
Y8 | 0x20203859 | 8 | Duplicate of Y800 as far as I can see. |
This format dates back to the days of the ActionMedia II adapter and comprises an NxN plane of Y samples, 8 bits each, followed by (N/4)x(N/4) V and U planes.
Horizontal | Vertical | |
Y Sample Period | 1 | 1 |
V Sample Period | 4 | 4 |
U Sample Period | 4 | 4 |
Positive biHeight implies top-down image (top line first)
A derivative of YVU9, IF09 contains the basic 3 planes for Y, V and U followed by an additional (N/4)x(N/4) plane of "skip blocks". This final plane forms a basic delta encoding scheme which can be used by a displayer to decide which pixels in the image are unchanged from the previous displayed frame. The strange number of bits per pixel listed for the format results from the fact that an NxN image is described using N2+3(N/4)2 bytes.
This format is generated by Intel's Indeo codecs though users should beware - the original 32 bit Indeo 3.2 shipped with Windows 95 and the beta levels of Indeo 4.1 contain bugs which cause them to generate protection faults when using IF09. Fixed versions of these codecs are available from Intel.
Horizontal | Vertical | |
Y Sample Period | 1 | 1 |
V Sample Period | 4 | 4 |
U Sample Period | 4 | 4 |
Positive biHeight implies top-down image (top line first)
To be completed...
This is the format of choice for many software MPEG codecs. It comprises an NxN Y plane followed by (N/2)x(N/2) V and U planes.
Horizontal | Vertical | |
Y Sample Period | 1 | 1 |
V Sample Period | 2 | 2 |
U Sample Period | 2 | 2 |
Positive biHeight implies top-down image (top line first)
These formats are identical to YV12 except that the U and V plane order is reversed. They comprise an NxN Y plane followed by (N/2)x(N/2) U and V planes. Full marks to Intel for registering the same format twice and full marks to Microsoft for not picking up on this and rejecting the second registration.
Horizontal | Vertical | |
Y Sample Period | 1 | 1 |
V Sample Period | 2 | 2 |
U Sample Period | 2 | 2 |
Positive biHeight implies top-down image (top line first)
This format introduces an extra level of indirection in the process of accessing YUV pixels in the surface. Locking the DirectDraw or DCI CLPL surface returns a pointer which itself points to three other pointers. These pointers respectively point to an NxN Y plane, an (N/2)x(N/2) U plane and an (N/2)x(N/2) V plane. The Y plane pointer retrieved is (allegedly) valid even when the surface is subsequently unlocked but the U and V pointers can only be used with a lock held (as you should be doing anyway if adhereing to the DirectDraw/DCI spec).
Horizontal | Vertical | |
Y Sample Period | 1 | 1 |
V Sample Period | 2 | 2 |
U Sample Period | 2 | 2 |
Positive biHeight implies top-down image (top line first)
This format contains only a single, 8 bit Y plane for monochrome images.
Horizontal | Vertical | |
Y Sample Period | 1 | 1 |
V Sample Period | N/A | N/A |
U Sample Period | N/A | N/A |