V210: Difference between revisions
mNo edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
[http://developer.apple.com/quicktime/icefloe/dispatch019.html#v210 v210 QuickTime Description] | |||
The v210 format is a packed YUV 4:2:2 (UYVY) format with 10 bits per component. | The v210 format is a packed YUV 4:2:2 (UYVY) format with 10 bits per component. | ||
Line 7: | Line 9: | ||
Since UYVY consists of 4 components that represent two pixels, which of those bits correspond to which component makes a pattern that repeats every 4 32-bit blocks: | Since UYVY consists of 4 components that represent two pixels, which of those bits correspond to which component makes a pattern that repeats every 4 32-bit blocks: | ||
block 1, bits 0 - 9: | block 1, bits 0 - 9: U0+1 | ||
block 1, bits 10 - 20: | block 1, bits 10 - 20: Y0 | ||
block 1, bits 20 - 30: | block 1, bits 20 - 30: V0+1 | ||
block 2, bits 0 - 9: | block 2, bits 0 - 9: Y1 | ||
block 2, bits 10 - 20: | block 2, bits 10 - 20: U2+3 | ||
block 2, bits 20 - 30: | block 2, bits 20 - 30: Y2 | ||
block 3, bits 0 - 9: | block 3, bits 0 - 9: V2+3 | ||
block 3, bits 10 - 20: | block 3, bits 10 - 20: Y3 | ||
block 3, bits 20 - 30: | block 3, bits 20 - 30: U4+5 | ||
block 4, bits 0 - 9: | block 4, bits 0 - 9: Y4 | ||
block 4, bits 10 - 20: | block 4, bits 10 - 20: V4+5 | ||
block 4, bits 20 - 30: | block 4, bits 20 - 30: Y5 | ||
In addition the start of each line is aligned to a multiple of | In addition the start of each line is aligned to a multiple of 128 bytes, where unused blocks are padded with 0. | ||
Unused parts of a partial (i.e. last) block do not seem to contain any specific value. | Unused parts of a partial (i.e. last) block do not seem to contain any specific value. |
Revision as of 12:33, 17 February 2009
The v210 format is a packed YUV 4:2:2 (UYVY) format with 10 bits per component.
Data is stored in blocks of 32 bit values in little-endian.
Each such block contains 3 components, one each in bits 0 - 9, 10 - 20 and 20 - 30, the remaining two bits are unused.
Since UYVY consists of 4 components that represent two pixels, which of those bits correspond to which component makes a pattern that repeats every 4 32-bit blocks:
block 1, bits 0 - 9: U0+1 block 1, bits 10 - 20: Y0 block 1, bits 20 - 30: V0+1 block 2, bits 0 - 9: Y1 block 2, bits 10 - 20: U2+3 block 2, bits 20 - 30: Y2 block 3, bits 0 - 9: V2+3 block 3, bits 10 - 20: Y3 block 3, bits 20 - 30: U4+5 block 4, bits 0 - 9: Y4 block 4, bits 10 - 20: V4+5 block 4, bits 20 - 30: Y5
In addition the start of each line is aligned to a multiple of 128 bytes, where unused blocks are padded with 0.
Unused parts of a partial (i.e. last) block do not seem to contain any specific value.
FFmpeg does not support this format since there is no support for any 10-bit per component pixel formats. Patches that simply discard the two least significant bits are referenced here