码迷,mamicode.com
首页 > 其他好文 > 详细

4:2:0 Video Pixel Formats

时间:2014-11-05 21:37:54      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:des   http   io   ar   os   for   sp   on   art   

To decode compressed 4:2:0 video, use one of the following uncompressed pixel formats.

Pixel Format Description

YUY2

As described in 4:2:2 Video Pixel Formats, except that two lines of output Cb and Cr samples are produced for each actual line of 4:2:0 Cb and Cr samples. The second line of each pair of output lines is generally either a duplicate of the first line or is produced by averaging the samples in the first line of the pair with the samples of the first line of the next pair.

UYVY

As described in 4:2:2 Video Pixel Formats, except that two lines of output Cb and Cr samples are produced for each actual line of 4:2:0 Cb and Cr samples. The second line of each pair of output lines is generally either a duplicate of the first line or is produced by averaging the samples in the first line of the pair with the samples of the first line of the next pair.

YV12

All Y samples are found first in memory as an array of unsigned char (possibly with a larger stride for memory alignment), followed immediately by all Cr samples (with half the stride of the Y lines, and half the number of lines), then followed immediately by all Cb samples in a similar fashion.

IYUV

The same as YV12, except for swapping the order of the Cb and Cr planes.

NV12

A format in which all Y samples are found first in memory as an array of unsigned char with an even number of lines (possibly with a larger stride for memory alignment). This is followed immediately by an array of unsigned char containing interleaved Cb and Cr samples. If these samples are addressed as a little-endian WORD type, Cb would be in the least significant bits and Cr would be in the most significant bits with the same total stride as the Y samples. NV12 is the preferred 4:2:0 pixel format.

NV21

The same as NV12, except that Cb and Cr samples are swapped so that the chroma array of unsigned char would have Cr followed by Cb for each sample (such that if addressed as a little-endian WORD type, Cr would be in the least significant bits and Cb would be in the most significant bits).

IMC1

The same as YV12, except that the stride of the Cb and Cr planes is the same as the stride in the Y plane. Also, the Cb and Cr planes must fall on memory boundaries that are a multiple of 16 lines. The following code examples show calculations for the Cb and Cr planes.

BYTE* pCr = pY + (((Height + 15) & ~15) * Stride);
BYTE* pCb = pY + (((((Height * 3) / 2) + 15) & ~15) * Stride);

In the preceding examples, pY is a byte pointer that points to the beginning of the memory array, and Height must be a multiple of 16.

IMC2

The same as IMC1, except that Cb and Cr lines are interleaved at half-stride boundaries. In other words, each full-stride line in the chrominance area starts with a line of Cr, followed by a line of Cb that starts at the next half-stride boundary. (This is a more address-space-efficient format than IMC1, because it cuts the chrominance address space in half, and thus cuts the total address space by 25 percent.) This is an optionally preferred format in relation to NV12, but NV12 appears to be more popular.

IMC3

The same as IMC1, except for swapping Cb and Cr.

IMC4

The same as IMC2, except for swapping Cb and Cr.

 

For more information about these formats, see Recommended 8-Bit YUV Formats for Video Rendering in the Microsoft Media Foundation documentation.


http://msdn.microsoft.com/en-us/library/windows/hardware/ff538197%28v=vs.85%29.aspx

https://wiki.videolan.org/YUV/#NV21

4:2:0 Video Pixel Formats

标签:des   http   io   ar   os   for   sp   on   art   

原文地址:http://blog.csdn.net/tanmengwen/article/details/40828941

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!