Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
lightworks / usr / share / lightworks / Shaders / ColourConvert.fx
Size: Mime:
//--------------------------------------------------------------//
// ColourConvert.fx
//
// Copyright (c) EditShare EMEA.  All Rights Reserved
//--------------------------------------------------------------//

int _LwksEffectInfo
<
   string EffectGroup = "Internal";
> = 0;

#include "_ColourConvert_Subs.fx"

//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------
// From now on, when including CCS (_ColourConvert_Subs.fx), we will be building functions
#define CCS_FUNCTIONS
/*
                                                            |    |    |    |    |     |     |     |     |     |     |
                                                            |   Scl   |   Scl   |    Col    |                       |
                                                            |   YUV   |   RGB   |    YUV    |         Filter        |
                                                            | Un | Vd | Un | Vd | 601 | 709 | Pnt | C-R | Mit | Lcz |
                                                            +----+----+----+----+-----+-----+-----+-----+-----+-----+
    RGB To YCrCb422:

001 ps_RGB_Unscaled_To_YCrCb422_Video_BT601_Point           |    | X  | X  |    |  X  |     |  X  |     |     |     |
002 ps_RGB_Video_To_YCrCb422_Video_BT601_Point              |    | X  |    | X  |  X  |     |  X  |     |     |     |
003 ps_RGB_Unscaled_To_YCrCb422_Video_BT601_Lanczos         |    | X  | X  |    |  X  |     |     |     |     |  X  |
004 ps_RGB_Video_To_YCrCb422_Video_BT601_Lanczos            |    | X  |    | X  |  X  |     |     |     |     |  X  |
005 ps_RGB_Unscaled_To_YCrCb422_Video_BT709_Point           |    | X  | X  |    |     |  X  |  X  |     |     |     |
006 ps_RGB_Video_To_YCrCb422_Video_BT709_Point              |    | X  |    | X  |     |  X  |  X  |     |     |     |
007 ps_RGB_Unscaled_To_YCrCb422_Video_BT709_Lanczos         |    | X  | X  |    |     |  X  |     |     |     |  X  |
008 ps_RGB_Video_To_YCrCb422_Video_BT709_Lanczos            |    | X  |    | X  |     |  X  |     |     |     |  X  |

    RGB To YCrCb444:

009 ps_RGB_Unscaled_To_YCrCb444_Video_BT601                 |    | X  | X  |    |  X  |     |     |     |     |     |
010 ps_RGB_Video_To_YCrCb444_Video_BT601                    |    | X  |    | X  |  X  |     |     |     |     |     |
011 ps_RGB_Unscaled_To_YCrCb444_Video_BT709                 |    | X  | X  |    |     |  X  |     |     |     |     |
012 ps_RGB_Video_To_YCrCb444_Video_BT709                    |    | X  |    | X  |     |  X  |     |     |     |     |

    YCrCb422 to RGB:

013 ps_YCrCb422_Video_BT601_To_RGB_Unscaled_Point           |    | X  | X  |    |  X  |     |  X  |     |     |     |
014 ps_YCrCb422_Video_BT601_To_RGB_Unscaled_CatmullRom      |    | X  | X  |    |  X  |     |     |  X  |     |     |
015 ps_YCrCb422_Video_BT601_To_RGB_Unscaled_Mitchell        |    | X  | X  |    |  X  |     |     |     |  X  |     |
016 ps_YCrCb422_Video_BT601_To_RGB_Video_Point              |    | X  |    | X  |  X  |     |  X  |     |     |     |
017 ps_YCrCb422_Video_BT601_To_RGB_Video_CatmullRom         |    | X  |    | X  |  X  |     |     |  X  |     |     |
018 ps_YCrCb422_Video_BT601_To_RGB_Video_Mitchell           |    | X  |    | X  |  X  |     |     |     |  X  |     |
019 ps_YCrCb422_Video_BT709_To_RGB_Unscaled_Point           |    | X  | X  |    |     |  X  |  X  |     |     |     |
020 ps_YCrCb422_Video_BT709_To_RGB_Unscaled_CatmullRom      |    | X  | X  |    |     |  X  |     |  X  |     |     |
021 ps_YCrCb422_Video_BT709_To_RGB_Unscaled_Mitchell        |    | X  | X  |    |     |  X  |     |     |  X  |     |
022 ps_YCrCb422_Video_BT709_To_RGB_Video_Point              |    | X  |    | X  |     |  X  |  X  |     |     |     |
023 ps_YCrCb422_Video_BT709_To_RGB_Video_CatmullRom         |    | X  |    | X  |     |  X  |     |  X  |     |     |
024 ps_YCrCb422_Video_BT709_To_RGB_Video_Mitchell           |    | X  |    | X  |     |  X  |     |     |  X  |     |

025 to 048 as 001 to 024, but with unscaled YCrCb
*/
#define RGB_VIDEO_SCALED_INPUT_UNSUPPORTED
//-------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------ RGB To YCrCb422 --
//-------------------------------------------------------------------------------------------------
// 001                                                                                          001
#define CCS_FUNCTION_NAME     ps_RGB_Unscaled_To_YCrCb422_Video_BT601_Point
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb422
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_POINT
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 002                                                                                          002
#ifndef RGB_VIDEO_SCALED_INPUT_UNSUPPORTED
#define CCS_FUNCTION_NAME     ps_RGB_Video_To_YCrCb422_Video_BT601_Point
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb422
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_POINT
#include "_ColourConvert_Subs.fx"
#endif
//-------------------------------------------------------------------------------------------------
// 003                                                                                          003
#define CCS_FUNCTION_NAME     ps_RGB_Unscaled_To_YCrCb422_Video_BT601_Lanczos
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb422
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_LANCZOS
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 004                                                                                          004
#ifndef RGB_VIDEO_SCALED_INPUT_UNSUPPORTED
#define CCS_FUNCTION_NAME     ps_RGB_Video_To_YCrCb422_Video_BT601_Lanczos
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb422
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_LANCZOS
#include "_ColourConvert_Subs.fx"
#endif
//-------------------------------------------------------------------------------------------------
// 005                                                                                          005
#define CCS_FUNCTION_NAME     ps_RGB_Unscaled_To_YCrCb422_Video_BT709_Point
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb422
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_POINT
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 006                                                                                          006
#ifndef RGB_VIDEO_SCALED_INPUT_UNSUPPORTED
#define CCS_FUNCTION_NAME     ps_RGB_Video_To_YCrCb422_Video_BT709_Point
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb422
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_POINT
#include "_ColourConvert_Subs.fx"
#endif
//-------------------------------------------------------------------------------------------------
// 007                                                                                          007
#define CCS_FUNCTION_NAME     ps_RGB_Unscaled_To_YCrCb422_Video_BT709_Lanczos
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb422
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_LANCZOS
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 008                                                                                          008
#ifndef RGB_VIDEO_SCALED_INPUT_UNSUPPORTED
#define CCS_FUNCTION_NAME     ps_RGB_Video_To_YCrCb422_Video_BT709_Lanczos
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb422
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_LANCZOS
#include "_ColourConvert_Subs.fx"
#endif
//-------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------ RGB To YCrCb444 --
//-------------------------------------------------------------------------------------------------
// 009                                                                                          009
#define CCS_FUNCTION_NAME     ps_RGB_Unscaled_To_YCrCb444_Video_BT601
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb444
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 010                                                                                          010
#ifndef RGB_VIDEO_SCALED_INPUT_UNSUPPORTED
#define CCS_FUNCTION_NAME     ps_RGB_Video_To_YCrCb444_Video_BT601
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb444
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#include "_ColourConvert_Subs.fx"
#endif
//-------------------------------------------------------------------------------------------------
// 011                                                                                          011
#define CCS_FUNCTION_NAME     ps_RGB_Unscaled_To_YCrCb444_Video_BT709
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb444
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 012                                                                                          012
#ifndef RGB_VIDEO_SCALED_INPUT_UNSUPPORTED
#define CCS_FUNCTION_NAME     ps_RGB_Video_To_YCrCb444_Video_BT709
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb444
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#include "_ColourConvert_Subs.fx"
#endif
//-------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------ YCrCb422 to RGB --
//-------------------------------------------------------------------------------------------------
// 013                                                                                          013
#define CCS_FUNCTION_NAME     ps_YCrCb422_Video_BT601_To_RGB_Unscaled_Point
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_POINT
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 014                                                                                          014
#define CCS_FUNCTION_NAME     ps_YCrCb422_Video_BT601_To_RGB_Unscaled_CatmullRom
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_CATMULL_ROM
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 015                                                                                          015
#define CCS_FUNCTION_NAME     ps_YCrCb422_Video_BT601_To_RGB_Unscaled_Mitchell
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_IDEAL_MITCHELL
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 016                                                                                          016
#define CCS_FUNCTION_NAME     ps_YCrCb422_Video_BT601_To_RGB_Video_Point
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_POINT
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 017                                                                                          017
#define CCS_FUNCTION_NAME     ps_YCrCb422_Video_BT601_To_RGB_Video_CatmullRom
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_CATMULL_ROM
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 018                                                                                          018
#define CCS_FUNCTION_NAME     ps_YCrCb422_Video_BT601_To_RGB_Video_Mitchell
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_IDEAL_MITCHELL
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 019                                                                                          019
#define CCS_FUNCTION_NAME     ps_YCrCb422_Video_BT709_To_RGB_Unscaled_Point
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_POINT
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 020                                                                                          020
#define CCS_FUNCTION_NAME     ps_YCrCb422_Video_BT709_To_RGB_Unscaled_CatmullRom
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_CATMULL_ROM
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 021                                                                                          021
#define CCS_FUNCTION_NAME     ps_YCrCb422_Video_BT709_To_RGB_Unscaled_Mitchell
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_IDEAL_MITCHELL
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 022                                                                                          022
#define CCS_FUNCTION_NAME     ps_YCrCb422_Video_BT709_To_RGB_Video_Point
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_POINT
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 023                                                                                          023
#define CCS_FUNCTION_NAME     ps_YCrCb422_Video_BT709_To_RGB_Video_CatmullRom
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_CATMULL_ROM
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 024                                                                                          024
#define CCS_FUNCTION_NAME     ps_YCrCb422_Video_BT709_To_RGB_Video_Mitchell
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_VIDEO
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_IDEAL_MITCHELL
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------ RGB To YCrCb422 --
//-------------------------------------------------------------------------------------------------
// 025                                                                                          025
#define CCS_FUNCTION_NAME     ps_RGB_Unscaled_To_YCrCb422_Unscaled_BT601_Point
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb422
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_POINT
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 026                                                                                          026
#ifndef RGB_VIDEO_SCALED_INPUT_UNSUPPORTED
#define CCS_FUNCTION_NAME     ps_RGB_Video_To_YCrCb422_Unscaled_BT601_Point
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb422
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_POINT
#include "_ColourConvert_Subs.fx"
#endif
//-------------------------------------------------------------------------------------------------
// 027                                                                                          027
#define CCS_FUNCTION_NAME     ps_RGB_Unscaled_To_YCrCb422_Unscaled_BT601_Lanczos
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb422
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_LANCZOS
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 028                                                                                          028
#ifndef RGB_VIDEO_SCALED_INPUT_UNSUPPORTED
#define CCS_FUNCTION_NAME     ps_RGB_Video_To_YCrCb422_Unscaled_BT601_Lanczos
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb422
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_LANCZOS
#include "_ColourConvert_Subs.fx"
#endif
//-------------------------------------------------------------------------------------------------
// 029                                                                                          029
#define CCS_FUNCTION_NAME     ps_RGB_Unscaled_To_YCrCb422_Unscaled_BT709_Point
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb422
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_POINT
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 030                                                                                          030
#ifndef RGB_VIDEO_SCALED_INPUT_UNSUPPORTED
#define CCS_FUNCTION_NAME     ps_RGB_Video_To_YCrCb422_Unscaled_BT709_Point
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb422
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_POINT
#include "_ColourConvert_Subs.fx"
#endif
//-------------------------------------------------------------------------------------------------
// 031                                                                                          031
#define CCS_FUNCTION_NAME     ps_RGB_Unscaled_To_YCrCb422_Unscaled_BT709_Lanczos
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb422
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_LANCZOS
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 032                                                                                          032
#ifndef RGB_VIDEO_SCALED_INPUT_UNSUPPORTED
#define CCS_FUNCTION_NAME     ps_RGB_Video_To_YCrCb422_Unscaled_BT709_Lanczos
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb422
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_LANCZOS
#include "_ColourConvert_Subs.fx"
#endif
//-------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------ RGB To YCrCb444 --
//-------------------------------------------------------------------------------------------------
// 033                                                                                          033
#define CCS_FUNCTION_NAME     ps_RGB_Unscaled_To_YCrCb444_Unscaled_BT601
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb444
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 034                                                                                          034
#ifndef RGB_VIDEO_SCALED_INPUT_UNSUPPORTED
#define CCS_FUNCTION_NAME     ps_RGB_Video_To_YCrCb444_Unscaled_BT601
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb444
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#include "_ColourConvert_Subs.fx"
#endif
//-------------------------------------------------------------------------------------------------
// 035                                                                                          035
#define CCS_FUNCTION_NAME     ps_RGB_Unscaled_To_YCrCb444_Unscaled_BT709
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb444
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 036                                                                                          036
#ifndef RGB_VIDEO_SCALED_INPUT_UNSUPPORTED
#define CCS_FUNCTION_NAME     ps_RGB_Video_To_YCrCb444_Unscaled_BT709
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_RGB_To_YCrCb444
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#include "_ColourConvert_Subs.fx"
#endif
//-------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------ YCrCb422 to RGB --
//-------------------------------------------------------------------------------------------------
// 037                                                                                          037
#define CCS_FUNCTION_NAME     ps_YCrCb422_Unscaled_BT601_To_RGB_Unscaled_Point
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_POINT
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 038                                                                                          038
#define CCS_FUNCTION_NAME     ps_YCrCb422_Unscaled_BT601_To_RGB_Unscaled_CatmullRom
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_CATMULL_ROM
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 039                                                                                          039
#define CCS_FUNCTION_NAME     ps_YCrCb422_Unscaled_BT601_To_RGB_Unscaled_Mitchell
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_IDEAL_MITCHELL
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 040                                                                                          040
#define CCS_FUNCTION_NAME     ps_YCrCb422_Unscaled_BT601_To_RGB_Video_Point
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_POINT
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 041                                                                                          041
#define CCS_FUNCTION_NAME     ps_YCrCb422_Unscaled_BT601_To_RGB_Video_CatmullRom
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_CATMULL_ROM
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 042                                                                                          042
#define CCS_FUNCTION_NAME     ps_YCrCb422_Unscaled_BT601_To_RGB_Video_Mitchell
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT601
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_IDEAL_MITCHELL
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 043                                                                                          043
#define CCS_FUNCTION_NAME     ps_YCrCb422_Unscaled_BT709_To_RGB_Unscaled_Point
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_POINT
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 044                                                                                          044
#define CCS_FUNCTION_NAME     ps_YCrCb422_Unscaled_BT709_To_RGB_Unscaled_CatmullRom
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_CATMULL_ROM
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 045                                                                                          045
#define CCS_FUNCTION_NAME     ps_YCrCb422_Unscaled_BT709_To_RGB_Unscaled_Mitchell
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_UNSCALED
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_IDEAL_MITCHELL
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 046                                                                                          046
#define CCS_FUNCTION_NAME     ps_YCrCb422_Unscaled_BT709_To_RGB_Video_Point
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_POINT
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 047                                                                                          047
#define CCS_FUNCTION_NAME     ps_YCrCb422_Unscaled_BT709_To_RGB_Video_CatmullRom
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_CATMULL_ROM
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------
// 048                                                                                          048
#define CCS_FUNCTION_NAME     ps_YCrCb422_Unscaled_BT709_To_RGB_Video_Mitchell
#define CCS_SELECT_FUNCTION   CCS_SELECT_FUNCTION_YCrCb422_To_RGB
#define CCS_YUV_SCALING       CCS_SCALING_UNSCALED
#define CCS_RGB_SCALING       CCS_SCALING_VIDEO
#define CCS_YUV_COLOURSPACE   CCS_YUV_COLOURSPACE_BT709
#define CCS_FILTER_TYPE       CCS_FILTER_TYPE_IDEAL_MITCHELL
#include "_ColourConvert_Subs.fx"
//-------------------------------------------------------------------------------------------------

//-------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------- TECHNIQUES --
//-------------------------------------------------------------------------------------------------
#define DECLARE_TECHNIQUE( name_ ) \
   technique name_ { pass p0 { PixelShader = compile PROFILE ps_ ##name_ (); } }
//-------------------------------------------------------------------------------------------------

// RGB To YCrCb422:
DECLARE_TECHNIQUE( RGB_Unscaled_To_YCrCb422_Video_BT601_Point )
DECLARE_TECHNIQUE( RGB_Unscaled_To_YCrCb422_Video_BT601_Lanczos )
DECLARE_TECHNIQUE( RGB_Unscaled_To_YCrCb422_Video_BT709_Point )
DECLARE_TECHNIQUE( RGB_Unscaled_To_YCrCb422_Video_BT709_Lanczos )

DECLARE_TECHNIQUE( RGB_Unscaled_To_YCrCb422_Unscaled_BT601_Point )
DECLARE_TECHNIQUE( RGB_Unscaled_To_YCrCb422_Unscaled_BT601_Lanczos )
DECLARE_TECHNIQUE( RGB_Unscaled_To_YCrCb422_Unscaled_BT709_Point )
DECLARE_TECHNIQUE( RGB_Unscaled_To_YCrCb422_Unscaled_BT709_Lanczos )

#ifndef RGB_VIDEO_SCALED_INPUT_UNSUPPORTED
DECLARE_TECHNIQUE( RGB_Video_To_YCrCb422_Video_BT601_Point )
DECLARE_TECHNIQUE( RGB_Video_To_YCrCb422_Video_BT601_Lanczos )
DECLARE_TECHNIQUE( RGB_Video_To_YCrCb422_Video_BT709_Point )
DECLARE_TECHNIQUE( RGB_Video_To_YCrCb422_Video_BT709_Lanczos )

DECLARE_TECHNIQUE( RGB_Video_To_YCrCb422_Unscaled_BT601_Point )
DECLARE_TECHNIQUE( RGB_Video_To_YCrCb422_Unscaled_BT601_Lanczos )
DECLARE_TECHNIQUE( RGB_Video_To_YCrCb422_Unscaled_BT709_Point )
DECLARE_TECHNIQUE( RGB_Video_To_YCrCb422_Unscaled_BT709_Lanczos )

#endif

// RGB To YCrCb444:
DECLARE_TECHNIQUE( RGB_Unscaled_To_YCrCb444_Video_BT601 )
DECLARE_TECHNIQUE( RGB_Unscaled_To_YCrCb444_Video_BT709 )

DECLARE_TECHNIQUE( RGB_Unscaled_To_YCrCb444_Unscaled_BT601 )
DECLARE_TECHNIQUE( RGB_Unscaled_To_YCrCb444_Unscaled_BT709 )

#ifndef RGB_VIDEO_SCALED_INPUT_UNSUPPORTED
DECLARE_TECHNIQUE( RGB_Video_To_YCrCb444_Video_BT601 )
DECLARE_TECHNIQUE( RGB_Video_To_YCrCb444_Video_BT709 )

DECLARE_TECHNIQUE( RGB_Video_To_YCrCb444_Unscaled_BT601 )
DECLARE_TECHNIQUE( RGB_Video_To_YCrCb444_Unscaled_BT709 )
#endif

// YCrCb422 to RGB:
DECLARE_TECHNIQUE( YCrCb422_Video_BT601_To_RGB_Unscaled_Point )
DECLARE_TECHNIQUE( YCrCb422_Video_BT601_To_RGB_Unscaled_CatmullRom )
DECLARE_TECHNIQUE( YCrCb422_Video_BT601_To_RGB_Unscaled_Mitchell )
DECLARE_TECHNIQUE( YCrCb422_Video_BT601_To_RGB_Video_Point )
DECLARE_TECHNIQUE( YCrCb422_Video_BT601_To_RGB_Video_CatmullRom )
DECLARE_TECHNIQUE( YCrCb422_Video_BT601_To_RGB_Video_Mitchell )
DECLARE_TECHNIQUE( YCrCb422_Video_BT709_To_RGB_Unscaled_Point )
DECLARE_TECHNIQUE( YCrCb422_Video_BT709_To_RGB_Unscaled_CatmullRom )
DECLARE_TECHNIQUE( YCrCb422_Video_BT709_To_RGB_Unscaled_Mitchell )
DECLARE_TECHNIQUE( YCrCb422_Video_BT709_To_RGB_Video_Point )
DECLARE_TECHNIQUE( YCrCb422_Video_BT709_To_RGB_Video_CatmullRom )
DECLARE_TECHNIQUE( YCrCb422_Video_BT709_To_RGB_Video_Mitchell )

DECLARE_TECHNIQUE( YCrCb422_Unscaled_BT601_To_RGB_Unscaled_Point )
DECLARE_TECHNIQUE( YCrCb422_Unscaled_BT601_To_RGB_Unscaled_CatmullRom )
DECLARE_TECHNIQUE( YCrCb422_Unscaled_BT601_To_RGB_Unscaled_Mitchell )
DECLARE_TECHNIQUE( YCrCb422_Unscaled_BT601_To_RGB_Video_Point )
DECLARE_TECHNIQUE( YCrCb422_Unscaled_BT601_To_RGB_Video_CatmullRom )
DECLARE_TECHNIQUE( YCrCb422_Unscaled_BT601_To_RGB_Video_Mitchell )
DECLARE_TECHNIQUE( YCrCb422_Unscaled_BT709_To_RGB_Unscaled_Point )
DECLARE_TECHNIQUE( YCrCb422_Unscaled_BT709_To_RGB_Unscaled_CatmullRom )
DECLARE_TECHNIQUE( YCrCb422_Unscaled_BT709_To_RGB_Unscaled_Mitchell )
DECLARE_TECHNIQUE( YCrCb422_Unscaled_BT709_To_RGB_Video_Point )
DECLARE_TECHNIQUE( YCrCb422_Unscaled_BT709_To_RGB_Video_CatmullRom )
DECLARE_TECHNIQUE( YCrCb422_Unscaled_BT709_To_RGB_Video_Mitchell )

float pSourceImageTotalWidthInDWORDs;
float DestImageWidth;

#include "_Matrox10bit.fx"
#include "_RGB10bit.fx"
#include "_Dvs10bit.fx"

technique convertRGBToRGB{ pass p0 { PixelShader = compile PROFILE ps_convertRGBToRGB(); } }
technique convertPlanarRGBToRGB{ pass p0 { PixelShader = compile PROFILE ps_convertPlanarRGBToRGB(); } }
technique PackMatrox10Bit { pass p0 { PixelShader = compile PROFILE ps_PackMatrox10Bit(); } }
technique UnpackMatrox10Bit { pass p0 { PixelShader = compile PROFILE ps_UnpackMatrox10Bit(); } }
technique UnpackMatrox10Bit_BaseOnly { pass p0 { PixelShader = compile PROFILE ps_UnpackMatrox10Bit_BaseOnly(); } }
technique UnpackDvs10Bit_BaseOnly { pass p0 { PixelShader = compile PROFILE ps_UnpackDvs10Bit_BaseOnly(); } }