Avisynthplus color formats: Difference between revisions

From Avisynth wiki
Jump to navigationJump to search
Raffriff42 (talk | contribs)
m corrections
Raffriff42 (talk | contribs)
added experimental chart-like presentation
Line 1: Line 1:
<div style="max-width:82em; min-width:42em;" >
<div style="max-width:82em; min-width:42em;" >
{{AvsPlusHeader}}<div style="max-width:62em" >
{{AvsPlusHeader}}<div style="max-width:62em" >
'''''All AVS+ color formats (pixel types)'''''  
 
__TOC__
 
 
===== Color Format Hierarchy =====
&nbsp;''(one possible arrangement)''<br>
<div style="border:none; background-color:#fafafa; padding:1em; margin:2pt 2em 2em 2pt; font-size:100%; line-height:95%">
{| style="border:none;border-spacing:0" 
|-
| colspan="5" style="line-height:250%" | '''Color Class <u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</u>'''
| colspan="4"  | '''[[Clip_properties#Video:_Color_Format|Clip Property]] Test <u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</u>'''
| '''Formats <u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</u>'''
|-
| style="width:4em"|
| style="width:4em"|
| style="width:4em"|
| style="width:2em"|
| style="width:2em"|
| style="width:4em"|
| style="width:4em"|
| style="width:4em"|
| style="width:10em"|
| style="width:18em"|
|-
| colspan="5"  | '''''all RGB clips '''''
| colspan="4"  | <tt>'''IsRGB'''</tt>
|
|-
| colspan="10" | &nbsp;
|-
| <center> </center>
| colspan="4"  | '''''interleaved RGB(A) '''''
|
| colspan="3"  | <tt>'''IsInterleaved'''</tt>
|
|-
| <center> </center>
| <center> </center>
|
|
|
|
|
|
| <tt>'''IsRGB24'''</tt>
| RGB24 <small>{{Sup2|[''8bit'']}}</small>
|-
| <center> </center>
| <center> </center>
|
|
|
|
|
|
| <tt>'''IsRGB48'''</tt>
| RGB48 <small>{{Sup2|[''16bit'']}}</small>
|-
| <center> </center>
| <center> </center>
|
|
|
|
|
|
| <tt>'''IsRGB32'''</tt>
| RGB32 <small>{{Sup2|RGBA [''8bit'']}}</small>
|-
| <center> </center>
| <center> </center>
|
|
|
|
|
|
| <tt>'''IsRGB64'''</tt>
| RGB64 <small>{{Sup2|RGBA [''16bit'']}}</small>
|-
| colspan="10" | &nbsp;
|-
| <center> </center>
| colspan="4"  | '''''Planar RGB(A)'''''
|
| colspan="3"  | <tt>'''IsPlanar'''</tt>&nbsp; ''or'' &nbsp;<tt>'''!(IsInterleaved)'''</tt>
|
|-
| <center> </center>
| <center> </center>
| colspan="3"  | '''''planar RGB '''''
|
|
|
| <tt>'''IsPlanarRGB'''</tt>
| RGBP''xx''
|-
| colspan="10" | &nbsp;
|-
| <center> </center>
| <center> </center>
| colspan="3"  | '''''planar RGBA '''''
|
|
|
| <tt>'''IsPlanarRGBA'''</tt>
| RGBAP''xx''
|-
| colspan="10" | &nbsp;
|-
| colspan="10" | &nbsp;
|-
| colspan="2" | '''''all YUV clips'''''
|
|
|
| colspan="4" | <tt>'''(IsYUV<nowiki>||</nowiki>IsYUVA)'''</tt>&nbsp; ''or'' &nbsp;<tt>'''!(IsRGB)'''</tt>
|
|-
| colspan="10" | &nbsp;
|-
| <center> </center>
| colspan="4"  | '''''interleaved YUV'''''
|
| colspan="3"  | <tt>'''IsInterleaved'''</tt>
|
|-
| <center> </center>
| <center> </center>
|
|
|
|
|
|
| <tt>'''IsYUY2'''</tt>
| YUY2 <small>{{Sup2|[''8bit'']}}</small>
|-
| <center> </center>
| <center> </center>
|
|
|
|
|
|
| (none)
| V210 <small>{{Sup2|[''10bit'']}}</small> [[#Footnotes|§]]
|-
| colspan="10" | &nbsp;
|-
| <center> </center>
| colspan="4"  | '''''planar YUV(A) '''''
|
| colspan="3"  | <tt>'''IsPlanar'''</tt>&nbsp; ''or'' &nbsp;<tt>'''!(IsInterleaved)'''</tt>
|
|-
| <center> </center>
| <center> </center>
| colspan="3"  | '''''planar YUV'''''
|
|
| colspan="2"  | <tt>'''IsYUV'''</tt>
|
|-
| <center> </center>
| <center> </center>
| <center> </center>
|
|
|
|
|
| <tt>'''Is444'''</tt>
| YUV444''xx''; YV24 <small>{{Sup2|[''8bit'']}}</small>
|-
| <center> </center>
| <center> </center>
| <center> </center>
|
|
|
|
|
| <tt>'''Is422'''</tt>
| YUV422''xx''; YV16 <small>{{Sup2|[''8bit'']}}</small>; P216 <small>{{Sup2|[''16bit'']}}</small>
|-
| <center> </center>
| <center> </center>
| <center> </center>
|
|
|
|
|
| <tt>'''Is420'''</tt>
| YUV420''xx''; YV12 <small>{{Sup2|[''8bit'']}}</small>
|-
| <center> </center>
| <center> </center>
| <center> </center>
|
|
|
|
|
| <tt>'''IsYV411'''</tt>
| YV411
|-
| <center> </center>
| <center> </center>
| <center> </center>
|
|
|
|
|
| <tt>'''IsY'''</tt>
| Y''xx'' [[#Footnotes|‡]]
|-
| colspan="10" | &nbsp;
|-
| <center> </center>
| <center> </center>
| colspan="3"  | '''''planar YUVA'''''
|
|
| colspan="2"  | <tt>'''IsYUVA'''</tt>&nbsp; ''or'' &nbsp;<tt>'''!(IsYUV)'''</tt>
|
|-
| <center> </center>
| <center> </center>
| <center> </center>
|
|
|
|
|
| <tt>'''Is444'''</tt>
| YUVA444''xx''
 
|-
| <center> </center>
| <center> </center>
| <center> </center>
|
|
|
|
|
| <tt>'''Is422'''</tt>
| YUVA422''xx''
|-
| <center> </center>
| <center> </center>
| <center> </center>
|
|
|
|
|
| <tt>'''Is420'''</tt>
| YUVA420''xx''  
|}
</div>
 
<!-- ========================================================================================== -->
===== Color Format Table =====
 
{|border=1 cellspacing=1 cellpadding=1 class="wikitable sortable"
{|border=1 cellspacing=1 cellpadding=1 class="wikitable sortable"
! style="width:6em" | Group
! style="width:6em" | Group
Line 507: Line 775:
|   
|   
|}
|}
{{HiddenAnchor|footnotes}}


===== Footnotes =====
{| border="0"
{| border="0"
|-
|-
Line 516: Line 784:
|style="text-align:center;vertical-align:top"|{{AvsPluscon2}}
|style="text-align:center;vertical-align:top"|{{AvsPluscon2}}
| Supported in both AviSynth &amp; AviSynth+
| Supported in both AviSynth &amp; AviSynth+
|-
| style="text-align:right;padding-right:0.5em" | <small>[''8bit'']</small>
| &nbsp;&nbsp;8-bit only
|-
| style="text-align:right;padding-right:0.5em" | <small>[''16bit'']</small>
| 16-bit only
|-
| style="text-align:right;padding-right:0.5em" | ''xx''
| 8, 10, 12, 14, 16-bit integer; 16-bit floating point
|-
|-
|style="text-align:center"|{{BoldColor|black|140|¹}}  
|style="text-align:center"|{{BoldColor|black|140|¹}}  
Line 533: Line 810:
|}
|}


===== See also: =====
===== See also =====
* [[Convert]]
* [[Convert]]
* [[ConvertBits]]
* [[ConvertBits]]


===== External Links: =====
===== External Links =====
* [http://msdn.microsoft.com/en-us/library/windows/desktop/bb970578(v=vs.85).aspx ''10-bit and 16-bit YUV Video Formats''] (microsoft.com)
* [http://msdn.microsoft.com/en-us/library/windows/desktop/bb970578(v=vs.85).aspx ''10-bit and 16-bit YUV Video Formats''] (microsoft.com)
* [http://wiki.multimedia.cx/index.php/V210 ''V210''] (multimedia.cx)
* [http://wiki.multimedia.cx/index.php/V210 ''V210''] (multimedia.cx)
Line 546: Line 823:


[[Category:Avisynthplus]]
[[Category:Avisynthplus]]
<!--
{| style="height:100px; border="1" cellpadding="4" class="wikitable"
|-
!Name
!Formats
|-
| All
| RGB, YUV
|-
| [[RGB]]
| [[RGB24]], [[RGB32]]
|-
| [[YUV]]
| [[YUY2]], YUV Planar
|-
| YUV [[Planar]]&nbsp;
| [[YV24]]&diams;, [[YV16]]&diams;, [[YV12]], [[YV411]]&diams;, [[Y8]]&diams;&nbsp;
|}
{| border="0"
|-
| colspan="2"|''Notes and exceptions.''
|-
| style="width:1.5em" |&diams;
| Not supported in AviSynth version 2.58 or below
|-
| §
| 8-bit only; no [[Deep_Color|Deep color]]
|-
| &hearts;
| 32-bit Float not supported (8, 10, 12, 14, 16 bit)
|-
| ¦
| [[Planar]] color not supported
|-
| ?
| [[Interleaved]] color not supported
|}
-->

Revision as of 17:36, 28 October 2017

AviSynth+


Color Format Hierarchy

 (one possible arrangement)

Color Class                            Clip Property Test                                 Formats                            
all RGB clips IsRGB
 
interleaved RGB(A) IsInterleaved
IsRGB24 RGB24 [8bit]
IsRGB48 RGB48 [16bit]
IsRGB32 RGB32 RGBA [8bit]
IsRGB64 RGB64 RGBA [16bit]
 
Planar RGB(A) IsPlanar  or  !(IsInterleaved)
planar RGB IsPlanarRGB RGBPxx
 
planar RGBA IsPlanarRGBA RGBAPxx
 
 
all YUV clips (IsYUV||IsYUVA)  or  !(IsRGB)
 
interleaved YUV IsInterleaved
IsYUY2 YUY2 [8bit]
(none) V210 [10bit] §
 
planar YUV(A) IsPlanar  or  !(IsInterleaved)
planar YUV IsYUV
Is444 YUV444xx; YV24 [8bit]
Is422 YUV422xx; YV16 [8bit]; P216 [16bit]
Is420 YUV420xx; YV12 [8bit]
IsYV411 YV411
IsY Yxx
 
planar YUVA IsYUVA  or  !(IsYUV)
Is444 YUVA444xx
Is422 YUVA422xx
Is420 YUVA420xx
Color Format Table
Group PixelType FourCC¹ Bit depth² Interleaved³ Version Remarks
RGB RGB24 BGR[24] 8 x [A]
RGB RGB48 BGR0 16 x [+]
RGBA RGB32 BGRA 8 x [A]
RGBA RGB64 BRA[64] 16 x [+]
RGB RGBP8 G3[0][8] 8 [+] aka RGBP
RGB RGBP10 G3[0][10] 10 [+]
RGB RGBP12 G3[0][12] 12 [+]
RGB RGBP14 G3[0][14] 14 [+]
RGB RGBP16 G3[0][16] 16 [+]
RGB RGBPS 32 [+]
RGBA RGBAP8 G4[0][8] 8 [+] aka RGBAP
RGBA RGBAP10 G4[0][10] 10 [+]
RGBA RGBAP12 G4[0][12] 12 [+]
RGBA RGBAP14 14 [+]
RGBA RGBAP16 G4[0][16] 16 [+]
RGBA RGBAPS 32 [+]
YUV444 YUV444P8 444P 8 [A] aka YUV444, YV24
YUV444 YUV444P10 Y3[0][10] 10 [+]
YUV444 YUV444P12 Y3[0][12] 12 [+]
YUV444 YUV444P14 Y3[0][14] 14 [+]
YUV444 YUV444P16 Y3[0][16] 16 [+]
YUV444 YUV444PS 32 [+]
YUVA444 YUVA444P8 Y4[0][8] 8 [A] aka YUVA444
YUVA444 YUVA444P10 Y4[0][10] 10 [+]
YUVA444 YUVA444P12 12 [+]
YUVA444 YUVA444P14 14 [+]
YUVA444 YUVA444P16 Y4[0][16] 16 [+]
YUVA444 YUVA444PS 32 [+]
YUV422 YUY2 YUY2 8 x [A]
YUV422 YUV422P8 Y42B 8 [A] aka YUV422, YV16
YUV422 YUV422P10 Y3[10][10] 10 x [+] aka v210; VfW only §
YUV422 YUV422P12 Y3[10][12] 12 [+]
YUV422 YUV422P14 Y3[10][14] 14 [+]
YUV422 YUV422P16 Y3[10][16] 16 [+] aka P216
YUV422 YUV422PS 32 [+]
YUVA422 YUVA422P8 Y4[10][8] 8 [+] aka YUVA422
YUVA422 YUVA422P10 Y4[10][10] 10 [+]
YUVA422 YUVA422P12 12 [+]
YUVA422 YUVA422P14 14 [+]
YUVA422 YUVA422P16 Y4[10][16] 16 [+]
YUVA422 YUVA422PS 32 [+]
YUV420 YV12 I420 8 [A] aka YUV420, YV12
YUV420 YUV420P8 I420 8 [A] aka YUV420, YV12
YUV420 YUV420P10 Y3[11][10] 10 [+]
YUV420 YUV420P12 Y3[11][12] 12 [+]
YUV420 YUV420P14 Y3[11][14] 14 [+]
YUV420 YUV420P16 Y3[11][16] 16 [+]
YUV420 YUV420PS 32 [+]
YUVA420 YUVA420P8 Y4[11][8] 8 [+] aka YUVA420
YUVA420 YUVA420P10 Y4[11][10] 10 [+]
YUVA420 YUVA420P12 12 [+]
YUVA420 YUVA420P14 14 [+]
YUVA420 YUVA420P16 Y4[11][16] 16 [+]
YUVA420 YUVA420PS 32 [+]
YUV411 YUV411P8 Y41B 8 [A] aka YUV411, YV411
YUV410 YUV9 8 [+] read only?
Y only Y8 Y800 8 [A]
Y only Y10 10 [+]
Y only Y12 12 [+]
Y only Y14 14 [+]
Y only Y16 Y1[0][16] 16 [+]
Y only Y32 32 [+]
Footnotes
[A] Supported in AviSynth 2.6.x
[+] Supported in both AviSynth & AviSynth+
[8bit]   8-bit only
[16bit] 16-bit only
xx 8, 10, 12, 14, 16-bit integer; 16-bit floating point
¹ FourCC: 4 characters used to identify media data formats.
Data shown is from ffmpeg. Left blank if unknown at this time (2017-10-16).
² 32bit is floating-point; all others are integer.
³ Interleaved if marked; else Planar.
§ VfW only: this format is served to Video for Windows clients but not used within AviSynth
v210 output requires OPT_Enable_V210 [+]
Y-only can be considered both planar and interleaved; however, a Y-only clip's IsInterleaved property returns false.
See also