Пример #1
0
        public static int GetDefaultNumberOfBFrames(x265PresetLevelModes oPresetLevel, x265PsyTuningModes oTuningMode, bool bTuneZeroLatency, bool blurayCompat)
        {
            int iDefaultSetting = 0;

            if (bTuneZeroLatency)
            {
                return(iDefaultSetting);
            }

            switch (oPresetLevel)
            {
            case x265Settings.x265PresetLevelModes.ultrafast: iDefaultSetting = 0; break;

            case x265Settings.x265PresetLevelModes.superfast:
            case x265Settings.x265PresetLevelModes.veryfast:
            case x265Settings.x265PresetLevelModes.faster:
            case x265Settings.x265PresetLevelModes.fast:
            case x265Settings.x265PresetLevelModes.medium:
            case x265Settings.x265PresetLevelModes.slow:
            case x265Settings.x265PresetLevelModes.slower: iDefaultSetting = 3; break;

            case x265Settings.x265PresetLevelModes.veryslow: iDefaultSetting = 8; break;

            case x265Settings.x265PresetLevelModes.placebo: iDefaultSetting = 16; break;
            }

            if (iDefaultSetting > 16)
            {
                iDefaultSetting = 16;
            }
            return(iDefaultSetting);
        }
Пример #2
0
        public static int GetDefaultNumberOfWeightp(x265PresetLevelModes oPresetLevel, bool bFastDecode, bool bBlurayCompat)
        {
            if (bFastDecode) // Fast Decode
            {
                return(0);
            }

            int iDefaultSetting = 0;

            switch (oPresetLevel)
            {
            case x265Settings.x265PresetLevelModes.ultrafast:   iDefaultSetting = 0; break;

            case x265Settings.x265PresetLevelModes.superfast:
            case x265Settings.x265PresetLevelModes.veryfast:
            case x265Settings.x265PresetLevelModes.faster:
            case x265Settings.x265PresetLevelModes.fast:        iDefaultSetting = 1; break;

            case x265Settings.x265PresetLevelModes.medium:
            case x265Settings.x265PresetLevelModes.slow:
            case x265Settings.x265PresetLevelModes.slower:
            case x265Settings.x265PresetLevelModes.veryslow:
            case x265Settings.x265PresetLevelModes.placebo:     iDefaultSetting = 2; break;
            }
            if (bBlurayCompat)
            {
                return(Math.Min(iDefaultSetting, 1));
            }
            else
            {
                return(iDefaultSetting);
            }
        }
Пример #3
0
        public static int GetDefaultRCLookahead(x265PresetLevelModes oPresetLevel, bool bTuneZeroLatency)
        {
            int iDefaultSetting = 0;

            if (bTuneZeroLatency)
            {
                return(iDefaultSetting);
            }

            switch (oPresetLevel)
            {
            case x265Settings.x265PresetLevelModes.ultrafast:
            case x265Settings.x265PresetLevelModes.superfast:   iDefaultSetting = 0; break;

            case x265Settings.x265PresetLevelModes.veryfast:    iDefaultSetting = 10; break;

            case x265Settings.x265PresetLevelModes.faster:      iDefaultSetting = 20; break;

            case x265Settings.x265PresetLevelModes.fast:        iDefaultSetting = 30; break;

            case x265Settings.x265PresetLevelModes.medium:      iDefaultSetting = 40; break;

            case x265Settings.x265PresetLevelModes.slow:        iDefaultSetting = 50; break;

            case x265Settings.x265PresetLevelModes.slower:
            case x265Settings.x265PresetLevelModes.veryslow:
            case x265Settings.x265PresetLevelModes.placebo:     iDefaultSetting = 60; break;
            }
            return(iDefaultSetting);
        }
Пример #4
0
        public static int GetDefaultAQMode(x265PresetLevelModes oPresetLevel, x265PsyTuningModes oTuningMode)
        {
            if (oTuningMode == x265PsyTuningModes.SSIM)
            {
                return(2);
            }

            if (oTuningMode == x265PsyTuningModes.PSNR || oPresetLevel == x265Settings.x265PresetLevelModes.ultrafast)
            {
                return(0);
            }

            return(1);
        }
Пример #5
0
        public static int GetDefaultNumberOfRefFrames(x265PresetLevelModes oPreset, x265PsyTuningModes oTuningMode, bool blurayCompat, int hRes, int vRes)
        {
            int iDefaultSetting = 1;

            switch (oPreset)
            {
            case x265Settings.x265PresetLevelModes.ultrafast:
            case x265Settings.x265PresetLevelModes.superfast:
            case x265Settings.x265PresetLevelModes.veryfast:    iDefaultSetting = 1; break;

            case x265Settings.x265PresetLevelModes.faster:
            case x265Settings.x265PresetLevelModes.fast:        iDefaultSetting = 2; break;

            case x265Settings.x265PresetLevelModes.medium:      iDefaultSetting = 3; break;

            case x265Settings.x265PresetLevelModes.slow:        iDefaultSetting = 5; break;

            case x265Settings.x265PresetLevelModes.slower:      iDefaultSetting = 8; break;

            case x265Settings.x265PresetLevelModes.veryslow:
            case x265Settings.x265PresetLevelModes.placebo:     iDefaultSetting = 16; break;
            }
            if (iDefaultSetting > 16)
            {
                iDefaultSetting = 16;
            }
            if (blurayCompat)
            {
                iDefaultSetting = Math.Min(6, iDefaultSetting);
            }

            /*if (hRes > 0 && vRes > 0)
             * {
             *  int iMaxRefForLevel = MeGUI.packages.video.x265.x265SettingsHandler.getMaxRefForLevel(avcLevel, hRes, vRes);
             *  if (iMaxRefForLevel > -1 && iMaxRefForLevel < iDefaultSetting)
             *      iDefaultSetting = iMaxRefForLevel;
             * }*/
            return(iDefaultSetting);
        }
Пример #6
0
 /// <summary>
 /// default constructor, initializes codec default values
 /// </summary>
 public x265Settings() : base(ID, VideoEncoderType.X265)
 {
     preset                 = x265PresetLevelModes.medium;
     psyTuningMode          = x265PsyTuningModes.NONE;
     deadZoneInter          = 21;
     deadZoneIntra          = 11;
     noFastPSkip            = false;
     ssimCalc               = false;
     psnrCalc               = false;
     EncodingMode           = 2;
     BitrateQuantizer       = 28;
     KeyframeInterval       = 250;
     nbRefFrames            = 3;
     noMixedRefs            = false;
     NbBframes              = 3;
     deblock                = true;
     alphaDeblock           = 0;
     betaDeblock            = 0;
     cabac                  = true;
     weightedBPrediction    = true;
     weightedPPrediction    = 2;
     NewadaptiveBFrames     = 1;
     bFramePyramid          = 2;
     subPelRefinement       = 7;
     psyRDO                 = new decimal(1.0);
     psyTrellis             = new decimal(0.0);
     macroBlockOptions      = 3;
     chromaME               = true;
     p8x8mv                 = true;
     b8x8mv                 = true;
     p4x4mv                 = false;
     i4x4mv                 = true;
     i8x8mv                 = true;
     MinQuantizer           = 0;
     MaxQuantizer           = 69;
     maxQuantDelta          = 4;
     CreditsQuantizer       = new decimal(40);
     ipFactor               = new decimal(1.4);
     pbFactor               = new decimal(1.3);
     chromaQPOffset         = new decimal(0.0);
     vbvBufferSize          = 0;
     vbvMaxBitrate          = 0;
     vbvInitialBuffer       = new decimal(0.9);
     bitrateVariance        = 1;
     quantCompression       = new decimal(0.6);
     tempComplexityBlur     = 20;
     tempQuanBlurCC         = new decimal(0.5);
     bframePredictionMode   = 1;
     scdSensitivity         = new decimal(40);
     bframeBias             = new decimal(0);
     meType                 = 1;
     meRange                = 16;
     NbThreads              = 0;
     minGOPSize             = 25;
     adaptiveDCT            = true;
     quantizerMatrix        = "";
     quantizerMatrixType    = 0;          // none
     base.MaxNumberOfPasses = 3;
     AQMode                 = 1;
     AQStrength             = new decimal(1.0);
     useQPFile              = false;
     qpfile                 = "";
     FullRange              = false;
     range                  = "auto";
     advSet                 = false;
     lookahead              = 40;
     noMBTree               = true;
     threadInput            = true;
     noPsy                  = false;
     scenecut               = true;
     slicesnb               = 0;
     maxSliceSyzeBytes      = 0;
     maxSliceSyzeMBs        = 0;
     x265Nalhrd             = 0;
     sampleAR               = 0;
     colorMatrix            = 0;
     transfer               = 0;
     colorPrim              = 0;
     profile                = 3; // Autoguess. High if using default options.
     avcLevel               = AVCLevels.Levels.L_UNRESTRICTED;
     openGop                = "False";
     picStruct              = false;
     fakeInterlaced         = false;
     nonDeterministic       = false;
     _gopCalculation        = 1;
     quantizerCrf           = 23;
     tuneFastDecode         = tuneZeroLatency = false;
     stitchable             = false;
 }
Пример #7
0
 public static int GetDefaultNumberOfRefFrames(x265PresetLevelModes oPreset, x265PsyTuningModes oTuningMode, bool blurayCompat)
 {
     return(GetDefaultNumberOfRefFrames(oPreset, oTuningMode, blurayCompat, -1, -1));
 }