Avisynthplus color formats

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
m (corrections)
(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 16:36, 28 October 2017

AviSynth+

Contents


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
External Links
Personal tools