Avisynthplus color formats

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
(See also: Add see also)
 
(7 intermediate revisions by 2 users not shown)
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[[#Footnotes|''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[[#Footnotes|''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[[#Footnotes|''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
 
! style="width:8em" | PixelType
 
! style="width:8em" | PixelType
! style="width:6em" | [[#footnotes|FourCC{{BoldColor|black|140|¹}}]]
+
! style="width:6em" | [[#Footnotes|FourCC{{BoldColor|black|140|¹}}]]
! style="width:6em" | [[#footnotes|Bit depth{{BoldColor|black|140|²}}]]
+
! style="width:6em" | [[#Footnotes|Bit depth{{BoldColor|black|140|²}}]]
! [[#footnotes|Interleaved{{BoldColor|black|140|³}}]]
+
! [[#Footnotes|Interleaved{{BoldColor|black|140|³}}]]
 
! style="width:4em" | Version
 
! style="width:4em" | Version
 
! style="width:12em" class="unsortable" | Remarks
 
! style="width:12em" class="unsortable" | Remarks
Line 192: Line 460:
 
| style="text-align:right;padding-right:3em" | 8
 
| style="text-align:right;padding-right:3em" | 8
 
|
 
|
| style="text-align:center" | {{AvsIcon2}}   
+
| style="text-align:center" | {{AvsPluscon2}}   
 
|  ''aka YUVA444''
 
|  ''aka YUVA444''
 
|-
 
|-
Line 255: Line 523:
 
| style="padding-left:1em" | <code>Y3[10][10]</code>
 
| style="padding-left:1em" | <code>Y3[10][10]</code>
 
| style="text-align:right;padding-right:3em" | 10
 
| style="text-align:right;padding-right:3em" | 10
| style="text-align:center" | x
+
|
 
| style="text-align:center" | {{AvsPluscon2}}
 
| style="text-align:center" | {{AvsPluscon2}}
| aka [http://wiki.multimedia.cx/index.php/V210 v210]; [[#footnotes|''VfW only''&nbsp;{{BoldColor|black|100|§}}]]
+
| ''aka P210'' <br><small>special-case: V210 output available; see footnotes</small> [[#Footnotes|{{BoldColor|black|96|§}}]]  
 
|-
 
|-
 
| YUV422   
 
| YUV422   
Line 296: Line 564:
 
| style="text-align:right;padding-right:3em" | 8
 
| style="text-align:right;padding-right:3em" | 8
 
|
 
|
| style="text-align:center" | {{AvsIcon2}}   
+
| style="text-align:center" | {{AvsPluscon2}}   
 
|  ''aka YUVA422''
 
|  ''aka YUVA422''
 
|-
 
|-
Line 400: Line 668:
 
| style="text-align:right;padding-right:3em" | 8
 
| style="text-align:right;padding-right:3em" | 8
 
|
 
|
| style="text-align:center" | {{AvsIcon2}}   
+
| style="text-align:center" | {{AvsPluscon2}}   
 
|  ''aka YUVA420''
 
|  ''aka YUVA420''
 
|-
 
|-
Line 435: Line 703:
 
|   
 
|   
 
|-
 
|-
| YUV420  
+
| YUVA420  
 
|  YUVA420PS
 
|  YUVA420PS
 
| style="padding-left:1em" | <code></code>
 
| style="padding-left:1em" | <code></code>
Line 507: Line 775:
 
|   
 
|   
 
|}
 
|}
{{HiddenAnchor|footnotes}}
 
  
 +
===== Footnotes =====
 
{| border="0"
 
{| border="0"
 
|-
 
|-
 
|style="text-align:center;vertical-align:top;width:3em"|{{AvsIcon2}}
 
|style="text-align:center;vertical-align:top;width:3em"|{{AvsIcon2}}
| Supported in AviSynth 2.6.x
+
| Supported in both AviSynth+ and AviSynth 2.6.x
 
|-
 
|-
 
|style="text-align:center;vertical-align:top"|{{AvsPluscon2}}
 
|style="text-align:center;vertical-align:top"|{{AvsPluscon2}}
| Supported in both AviSynth &amp; AviSynth+
+
| Supported in AviSynth+ only
 +
|-
 +
| 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:center" | ''xx''
 +
| 8, 10, 12, 14, 16 and 32 bits (32bit is floating-point; all others are integer)
 
|-
 
|-
 
|style="text-align:center"|{{BoldColor|black|140|¹}}  
 
|style="text-align:center"|{{BoldColor|black|140|¹}}  
Line 525: Line 802:
 
|style="text-align:center"|{{BoldColor|black|140|³}}  
 
|style="text-align:center"|{{BoldColor|black|140|³}}  
 
|[[Interleaved]] if marked; else [[Planar]].
 
|[[Interleaved]] if marked; else [[Planar]].
|-
 
|style="text-align:center;vertical-align:top" |{{BoldColor|black|100|§}}
 
|VfW only: this format is served to [[wikipedia:Video_for_Windows|Video for Windows]] clients but not used within AviSynth<br>v210 output requires [[Internal_functions#OPT_Enable_V210|OPT_Enable_V210]] {{AvsPluscon2}}
 
 
|-
 
|-
 
|style="text-align:center;vertical-align:top" |{{BoldColor|black|100|‡}}  
 
|style="text-align:center;vertical-align:top" |{{BoldColor|black|100|‡}}  
 
|Y-only can be considered both planar ''and'' interleaved; however, a Y-only clip's  [[Clip_properties#Video:_Color_Format|IsInterleaved]] property returns ''false.''
 
|Y-only can be considered both planar ''and'' interleaved; however, a Y-only clip's  [[Clip_properties#Video:_Color_Format|IsInterleaved]] property returns ''false.''
 +
|-
 +
|style="text-align:center;vertical-align:top" |{{BoldColor|black|100|§}}
 +
|VfW only: [http://wiki.multimedia.cx/index.php/V210 v210] is served to [[wikipedia:Video_for_Windows|Video for Windows]] clients but not used within AviSynth;<br>v210 output requires [[Internal_functions#OPT_Enable_V210|OPT_Enable_V210]] {{AvsPluscon2}}
 
|}
 
|}
  
===== See also: =====
+
===== See also =====
 
* [[Convert]]
 
* [[Convert]]
 
* [[ConvertBits]]
 
* [[ConvertBits]]
 +
* [[Internal_functions#Other_helper_functions|BuildPixelType]]
 +
* [[Internal_functions#Other_helper_functions|ColorSpaceNameToPixelType]]
  
===== 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 825:
  
 
[[Category:Avisynthplus]]
 
[[Category:Avisynthplus]]
<!--
+
[[Category:Colourspace_Conversion]]
 
+
{| 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
+
|}
+
 
+
-->
+

Latest revision as of 13:58, 13 December 2018

AviSynth+

Contents


[edit] 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
[edit] 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 [+] 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 [+] aka P210
special-case: V210 output available; see footnotes §
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 [+]
[edit] Footnotes
[A] Supported in both AviSynth+ and AviSynth 2.6.x
[+] Supported in AviSynth+ only
[8bit]   8-bit only
[16bit] 16-bit only
xx 8, 10, 12, 14, 16 and 32 bits (32bit is floating-point; all others are integer)
¹ 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.
Y-only can be considered both planar and interleaved; however, a Y-only clip's IsInterleaved property returns false.
§ VfW only: v210 is served to Video for Windows clients but not used within AviSynth;
v210 output requires OPT_Enable_V210 [+]
[edit] See also
[edit] External Links
Personal tools