Difference between revisions of "V210"

From MultimediaWiki
Jump to navigation Jump to search
m
(fix bit numbering for components 2 and 3 of each block)
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
The v210 format is a packed YUV 4:2:2 (UYVY) format with 10 bits per component.
* FourCC: v210
* Description: [http://developer.apple.com/quicktime/icefloe/dispatch019.html#v210 v210 QuickTime Description]
* Samples: http://samples.mplayerhq.hu/V-codecs/v210/
 
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.
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.
Each such block contains 3 components, one each in bits 0 - 9, 10 - 19 and 20 - 29, 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:
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: U
   block 1, bits  0 -  9: U0+1
   block 1, bits 10 - 20: Y
   block 1, bits 10 - 19: Y0
   block 1, bits 20 - 30: V
   block 1, bits 20 - 29: V0+1
   block 2, bits  0 -  9: Y
   block 2, bits  0 -  9: Y1
   block 2, bits 10 - 20: U
   block 2, bits 10 - 19: U2+3
   block 2, bits 20 - 30: Y
   block 2, bits 20 - 29: Y2
   block 3, bits  0 -  9: V
   block 3, bits  0 -  9: V2+3
   block 3, bits 10 - 20: Y
   block 3, bits 10 - 19: Y3
   block 3, bits 20 - 30: U
   block 3, bits 20 - 29: U4+5
   block 4, bits  0 -  9: Y
   block 4, bits  0 -  9: Y4
   block 4, bits 10 - 20: V
   block 4, bits 10 - 19: V4+5
   block 4, bits 20 - 30: Y
   block 4, bits 20 - 29: Y5


In addition the start of each line is aligned to a multiple of 64 (or possible 128) bytes, where unused blocks are padded with 0.
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.


FFmpeg does not support this format since there is no support for any 10-bit per component pixel formats.
[[Category:Video Codecs]]
Patches that simply discard the two least significant bits are referenced [http://wiki.multimedia.cx/index.php?title=Interesting_Patches#v210_decoder_patches here]
[[Category:Video FourCCs]]

Latest revision as of 12:14, 3 July 2010

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 - 19 and 20 - 29, 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 - 19: Y0
 block 1, bits 20 - 29: V0+1
 block 2, bits  0 -  9: Y1
 block 2, bits 10 - 19: U2+3
 block 2, bits 20 - 29: Y2
 block 3, bits  0 -  9: V2+3
 block 3, bits 10 - 19: Y3
 block 3, bits 20 - 29: U4+5
 block 4, bits  0 -  9: Y4
 block 4, bits 10 - 19: V4+5
 block 4, bits 20 - 29: 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.