[x265] [PATCH 1 of 2] Rename refine-mv-type to accommodate reuse of CU depth functionality

Kalyan Goswami kalyan at multicorewareinc.com
Fri Dec 28 10:52:38 CET 2018


Pushed in the default branch

Thanks,
Kalyan Goswami, PhD
Video Architect @ MulticoreWare
http: <http://www.multicorewareinc.com/>//www.multicorewareinc.com
<http://www.multicorewareinc.com/>
+91 9884989331


On Fri, Dec 28, 2018 at 2:47 PM <jayashri at multicorewareinc.com> wrote:

> # HG changeset patch
> # User Jayashri Murugan
> # Date 1537392648 25200
> #      Wed Sep 19 14:30:48 2018 -0700
> # Node ID 23a8a7456916d98040b56a09a93ce3b1149613d9
> # Parent  3cd0b5ed0b91bcb3d5d6cfa1395cb502fc6d01ca
> Rename refine-mv-type to accommodate reuse of CU depth functionality
>
> diff -r 3cd0b5ed0b91 -r 23a8a7456916 source/common/frame.cpp
> --- a/source/common/frame.cpp   Thu Dec 27 14:43:54 2018 +0530
> +++ b/source/common/frame.cpp   Wed Sep 19 14:30:48 2018 -0700
> @@ -80,7 +80,7 @@
>          }
>      }
>
> -    if (param->bMVType == AVC_INFO)
> +    if (param->bAnalysisType == AVC_INFO)
>      {
>          m_analysisData.wt = NULL;
>          m_analysisData.intraData = NULL;
> diff -r 3cd0b5ed0b91 -r 23a8a7456916 source/common/param.cpp
> --- a/source/common/param.cpp   Thu Dec 27 14:43:54 2018 +0530
> +++ b/source/common/param.cpp   Wed Sep 19 14:30:48 2018 -0700
> @@ -311,7 +311,7 @@
>
>      /* DCT Approximations */
>      param->bLowPassDct = 0;
> -    param->bMVType = 0;
> +    param->bAnalysisType = 0;
>      param->bSingleSeiNal = 0;
>
>      /* SEI messages */
> @@ -1151,15 +1151,15 @@
>          OPT("vbv-end") p->vbvBufferEnd = atof(value);
>          OPT("vbv-end-fr-adj") p->vbvEndFrameAdjust = atof(value);
>          OPT("copy-pic") p->bCopyPicToFrame = atobool(value);
> -        OPT("refine-mv-type")
> +        OPT("refine-analysis-type")
>          {
>              if (strcmp(strdup(value), "avc") == 0)
>              {
> -                p->bMVType = AVC_INFO;
> +                p->bAnalysisType = AVC_INFO;
>              }
>              else if (strcmp(strdup(value), "off") == 0)
>              {
> -                p->bMVType = NO_INFO;
> +                p->bAnalysisType = NO_INFO;
>              }
>              else
>              {
> @@ -1713,8 +1713,8 @@
>      TOOLVAL(param->lookaheadSlices, "lslices=%d");
>      TOOLVAL(param->lookaheadThreads, "lthreads=%d")
>      TOOLVAL(param->bCTUInfo, "ctu-info=%d");
> -    if (param->bMVType == AVC_INFO)
> -        TOOLOPT(param->bMVType, "refine-mv-type=avc");
> +    if (param->bAnalysisType == AVC_INFO)
> +        TOOLOPT(param->bAnalysisType, "refine-analysis-type=avc");
>      TOOLOPT(param->bDynamicRefine, "dynamic-refine");
>      if (param->maxSlices > 1)
>          TOOLVAL(param->maxSlices, "slices=%d");
> @@ -1958,7 +1958,7 @@
>      BOOL(p->bLimitSAO, "limit-sao");
>      s += sprintf(s, " ctu-info=%d", p->bCTUInfo);
>      BOOL(p->bLowPassDct, "lowpass-dct");
> -    s += sprintf(s, " refine-mv-type=%d", p->bMVType);
> +    s += sprintf(s, " refine-analysis-type=%d", p->bAnalysisType);
>      s += sprintf(s, " copy-pic=%d", p->bCopyPicToFrame);
>      s += sprintf(s, " max-ausize-factor=%.1f", p->maxAUSizeFactor);
>      BOOL(p->bDynamicRefine, "dynamic-refine");
> diff -r 3cd0b5ed0b91 -r 23a8a7456916 source/encoder/analysis.cpp
> --- a/source/encoder/analysis.cpp       Thu Dec 27 14:43:54 2018 +0530
> +++ b/source/encoder/analysis.cpp       Wed Sep 19 14:30:48 2018 -0700
> @@ -234,9 +234,9 @@
>      }
>      else
>      {
> -        bool bCopyAnalysis = ((m_param->analysisLoad &&
> m_param->analysisReuseLevel == 10) || (m_param->bMVType &&
> m_param->analysisReuseLevel >= 7 && ctu.m_numPartitions <= 16));
> -        bool BCompressInterCUrd0_4 = (m_param->bMVType &&
> m_param->analysisReuseLevel >= 7 && m_param->rdLevel <= 4);
> -        bool BCompressInterCUrd5_6 = (m_param->bMVType &&
> m_param->analysisReuseLevel >= 7 && m_param->rdLevel >= 5 &&
> m_param->rdLevel <= 6);
> +        bool bCopyAnalysis = ((m_param->analysisLoad &&
> m_param->analysisReuseLevel == 10) || (m_param->bAnalysisType == AVC_INFO
> && m_param->analysisReuseLevel >= 7 && ctu.m_numPartitions <= 16));
> +        bool BCompressInterCUrd0_4 = (m_param->bAnalysisType == AVC_INFO
> && m_param->analysisReuseLevel >= 7 && m_param->rdLevel <= 4);
> +        bool BCompressInterCUrd5_6 = (m_param->bAnalysisType == AVC_INFO
> && m_param->analysisReuseLevel >= 7 && m_param->rdLevel >= 5 &&
> m_param->rdLevel <= 6);
>          bCopyAnalysis = bCopyAnalysis || BCompressInterCUrd0_4 ||
> BCompressInterCUrd5_6;
>
>          if (bCopyAnalysis)
> @@ -249,7 +249,7 @@
>              for (int list = 0; list < m_slice->isInterB() + 1; list++)
>                  memcpy(ctu.m_skipFlag[list],
> &m_frame->m_analysisData.modeFlag[list][posCTU], sizeof(uint8_t) *
> numPartition);
>
> -            if ((m_slice->m_sliceType == P_SLICE ||
> m_param->bIntraInBFrames) && !m_param->bMVType)
> +            if ((m_slice->m_sliceType == P_SLICE ||
> m_param->bIntraInBFrames) && !(m_param->bAnalysisType == AVC_INFO))
>              {
>                  x265_analysis_intra_data* intraDataCTU =
> m_frame->m_analysisData.intraData;
>                  memcpy(ctu.m_lumaIntraDir, &intraDataCTU->modes[posCTU],
> sizeof(uint8_t) * numPartition);
> @@ -275,14 +275,14 @@
>              /* generate residual for entire CTU at once and copy to
> reconPic */
>              encodeResidue(ctu, cuGeom);
>          }
> -        else if ((m_param->analysisLoad && m_param->analysisReuseLevel ==
> 10) || ((m_param->bMVType == AVC_INFO) && m_param->analysisReuseLevel >= 7
> && ctu.m_numPartitions <= 16))
> +        else if ((m_param->analysisLoad && m_param->analysisReuseLevel ==
> 10) || ((m_param->bAnalysisType == AVC_INFO) && m_param->analysisReuseLevel
> >= 7 && ctu.m_numPartitions <= 16))
>          {
>              x265_analysis_inter_data* interDataCTU =
> m_frame->m_analysisData.interData;
>              int posCTU = ctu.m_cuAddr * numPartition;
>              memcpy(ctu.m_cuDepth, &interDataCTU->depth[posCTU],
> sizeof(uint8_t) * numPartition);
>              memcpy(ctu.m_predMode, &interDataCTU->modes[posCTU],
> sizeof(uint8_t) * numPartition);
>              memcpy(ctu.m_partSize, &interDataCTU->partSize[posCTU],
> sizeof(uint8_t) * numPartition);
> -            if ((m_slice->m_sliceType == P_SLICE ||
> m_param->bIntraInBFrames) && !(m_param->bMVType == AVC_INFO))
> +            if ((m_slice->m_sliceType == P_SLICE ||
> m_param->bIntraInBFrames) && !(m_param->bAnalysisType == AVC_INFO))
>              {
>                  x265_analysis_intra_data* intraDataCTU =
> m_frame->m_analysisData.intraData;
>                  memcpy(ctu.m_lumaIntraDir, &intraDataCTU->modes[posCTU],
> sizeof(uint8_t) * numPartition);
> @@ -1162,9 +1162,9 @@
>      PicYuv& reconPic = *m_frame->m_reconPic;
>      SplitData splitCUData;
>
> -    bool bHEVCBlockAnalysis = (m_param->bMVType && cuGeom.numPartitions >
> 16);
> +    bool bHEVCBlockAnalysis = (m_param->bAnalysisType == AVC_INFO &&
> cuGeom.numPartitions > 16);
>      bool bRefineAVCAnalysis = (m_param->analysisReuseLevel == 7 &&
> (m_modeFlag[0] || m_modeFlag[1]));
> -    bool bNooffloading = !m_param->bMVType;
> +    bool bNooffloading = !(m_param->bAnalysisType == AVC_INFO);
>
>      if (bHEVCBlockAnalysis || bRefineAVCAnalysis || bNooffloading)
>      {
> @@ -1299,7 +1299,7 @@
>              }
>          }
>          /* Step 1. Evaluate Merge/Skip candidates for likely early-outs,
> if skip mode was not set above */
> -        if ((mightNotSplit && depth >= minDepth && !md.bestMode &&
> !bCtuInfoCheck) || (m_param->bMVType && m_param->analysisReuseLevel == 7 &&
> (m_modeFlag[0] || m_modeFlag[1]))) /* TODO: Re-evaluate if analysis
> load/save still works */
> +        if ((mightNotSplit && depth >= minDepth && !md.bestMode &&
> !bCtuInfoCheck) || (m_param->bAnalysisType == AVC_INFO &&
> m_param->analysisReuseLevel == 7 && (m_modeFlag[0] || m_modeFlag[1]))) /*
> TODO: Re-evaluate if analysis load/save still works */
>          {
>              /* Compute Merge Cost */
>              md.pred[PRED_MERGE].cu.initSubCU(parentCTU, cuGeom, qp);
> @@ -1309,7 +1309,7 @@
>                  skipModes = (m_param->bEnableEarlySkip || m_refineLevel
> == 2)
>                  && md.bestMode && md.bestMode->cu.isSkipped(0); // TODO:
> sa8d threshold per depth
>          }
> -        if (md.bestMode && m_param->bEnableRecursionSkip &&
> !bCtuInfoCheck && !(m_param->bMVType && m_param->analysisReuseLevel == 7 &&
> (m_modeFlag[0] || m_modeFlag[1])))
> +        if (md.bestMode && m_param->bEnableRecursionSkip &&
> !bCtuInfoCheck && !(m_param->bAnalysisType == AVC_INFO &&
> m_param->analysisReuseLevel == 7 && (m_modeFlag[0] || m_modeFlag[1])))
>          {
>              skipRecursion = md.bestMode->cu.isSkipped(0);
>              if (mightSplit && depth >= minDepth && !skipRecursion)
> @@ -1320,7 +1320,7 @@
>                      skipRecursion = complexityCheckCU(*md.bestMode);
>              }
>          }
> -        if (m_param->bMVType && md.bestMode && cuGeom.numPartitions <= 16
> && m_param->analysisReuseLevel == 7)
> +        if (m_param->bAnalysisType == AVC_INFO && md.bestMode &&
> cuGeom.numPartitions <= 16 && m_param->analysisReuseLevel == 7)
>              skipRecursion = true;
>          /* Step 2. Evaluate each of the 4 split sub-blocks in series */
>          if (mightSplit && !skipRecursion)
> @@ -1377,7 +1377,7 @@
>                  splitPred->sa8dCost =
> m_rdCost.calcRdSADCost((uint32_t)splitPred->distortion,
> splitPred->sa8dBits);
>          }
>          /* If analysis mode is simple do not Evaluate other modes */
> -        if (m_param->bMVType && m_param->analysisReuseLevel == 7)
> +        if (m_param->bAnalysisType == AVC_INFO &&
> m_param->analysisReuseLevel == 7)
>          {
>              if (m_slice->m_sliceType == P_SLICE)
>              {
> @@ -1794,7 +1794,7 @@
>      }
>      else
>      {
> -        if (m_param->bMVType && cuGeom.numPartitions <= 16)
> +        if (m_param->bAnalysisType == AVC_INFO && cuGeom.numPartitions <=
> 16)
>          {
>              qprdRefine(parentCTU, cuGeom, qp, qp);
>
> @@ -1855,9 +1855,9 @@
>
>      SplitData splitCUData;
>
> -    bool bHEVCBlockAnalysis = (m_param->bMVType && cuGeom.numPartitions >
> 16);
> +    bool bHEVCBlockAnalysis = (m_param->bAnalysisType == AVC_INFO &&
> cuGeom.numPartitions > 16);
>      bool bRefineAVCAnalysis = (m_param->analysisReuseLevel == 7 &&
> (m_modeFlag[0] || m_modeFlag[1]));
> -    bool bNooffloading = !m_param->bMVType;
> +    bool bNooffloading = !(m_param->bAnalysisType == AVC_INFO);
>
>      if (bHEVCBlockAnalysis || bRefineAVCAnalysis || bNooffloading)
>      {
> @@ -1998,7 +1998,7 @@
>          }
>          /* Step 1. Evaluate Merge/Skip candidates for likely early-outs */
>          if ((mightNotSplit && !md.bestMode && !bCtuInfoCheck) ||
> -            (m_param->bMVType && m_param->analysisReuseLevel == 7 &&
> (m_modeFlag[0] || m_modeFlag[1])))
> +            (m_param->bAnalysisType == AVC_INFO &&
> m_param->analysisReuseLevel == 7 && (m_modeFlag[0] || m_modeFlag[1])))
>          {
>              md.pred[PRED_SKIP].cu.initSubCU(parentCTU, cuGeom, qp);
>              md.pred[PRED_MERGE].cu.initSubCU(parentCTU, cuGeom, qp);
> @@ -2013,7 +2013,7 @@
>              if (m_param->bEnableRecursionSkip && depth &&
> m_modeDepth[depth - 1].bestMode)
>                  skipRecursion = md.bestMode &&
> !md.bestMode->cu.getQtRootCbf(0);
>          }
> -        if (m_param->bMVType && md.bestMode && cuGeom.numPartitions <= 16
> && m_param->analysisReuseLevel == 7)
> +        if (m_param->bAnalysisType == AVC_INFO && md.bestMode &&
> cuGeom.numPartitions <= 16 && m_param->analysisReuseLevel == 7)
>              skipRecursion = true;
>          // estimate split cost
>          /* Step 2. Evaluate each of the 4 split sub-blocks in series */
> @@ -2067,7 +2067,7 @@
>              checkDQPForSplitPred(*splitPred, cuGeom);
>          }
>          /* If analysis mode is simple do not Evaluate other modes */
> -        if (m_param->bMVType && m_param->analysisReuseLevel == 7)
> +        if (m_param->bAnalysisType == AVC_INFO &&
> m_param->analysisReuseLevel == 7)
>          {
>              if (m_slice->m_sliceType == P_SLICE)
>              {
> @@ -2362,7 +2362,7 @@
>      }
>      else
>      {
> -        if (m_param->bMVType && cuGeom.numPartitions <= 16)
> +        if (m_param->bAnalysisType == AVC_INFO && cuGeom.numPartitions <=
> 16)
>          {
>              qprdRefine(parentCTU, cuGeom, qp, qp);
>
> @@ -2454,7 +2454,7 @@
>              for (uint32_t part = 0; part < numPU; part++)
>              {
>                  PredictionUnit pu(mode.cu, cuGeom, part);
> -                if ((m_param->analysisLoad && m_param->analysisReuseLevel
> == 10) || (m_param->bMVType == AVC_INFO && m_param->analysisReuseLevel >=
> 7))
> +                if ((m_param->analysisLoad && m_param->analysisReuseLevel
> == 10) || (m_param->bAnalysisType == AVC_INFO &&
> m_param->analysisReuseLevel >= 7))
>                  {
>                      x265_analysis_inter_data* interDataCTU =
> m_frame->m_analysisData.interData;
>                      int cuIdx = (mode.cu.m_cuAddr *
> parentCTU.m_numPartitions) + cuGeom.absPartIdx;
> @@ -2541,7 +2541,7 @@
>                  checkDQPForSplitPred(*md.bestMode, cuGeom);
>          }
>
> -        if (m_param->bMVType && m_param->analysisReuseLevel == 7)
> +        if (m_param->bAnalysisType == AVC_INFO &&
> m_param->analysisReuseLevel == 7)
>          {
>              for (int list = 0; list < m_slice->isInterB() + 1; list++)
>              {
> diff -r 3cd0b5ed0b91 -r 23a8a7456916 source/encoder/api.cpp
> --- a/source/encoder/api.cpp    Thu Dec 27 14:43:54 2018 +0530
> +++ b/source/encoder/api.cpp    Wed Sep 19 14:30:48 2018 -0700
> @@ -454,7 +454,7 @@
>      }
>
>      //Allocate memory for weightParam pointer
> -    if (!(param->bMVType == AVC_INFO))
> +    if (!(param->bAnalysisType == AVC_INFO))
>          CHECKED_MALLOC_ZERO(analysis->wt, x265_weight_param, numPlanes *
> numDir);
>
>      if (param->analysisReuseLevel < 2)
> @@ -540,7 +540,7 @@
>      }
>
>      /* Early exit freeing weights alone if level is 1 (when there is no
> analysis inter/intra) */
> -    if (analysis->wt && !(param->bMVType == AVC_INFO))
> +    if (analysis->wt && !(param->bAnalysisType == AVC_INFO))
>          X265_FREE(analysis->wt);
>
>      if (param->analysisReuseLevel < 2)
> @@ -621,7 +621,7 @@
>      pic->rpu.payloadSize = 0;
>      pic->rpu.payload = NULL;
>
> -    if ((param->analysisSave || param->analysisLoad) || (param->bMVType
> == AVC_INFO))
> +    if ((param->analysisSave || param->analysisLoad) ||
> (param->bAnalysisType == AVC_INFO))
>      {
>          uint32_t widthInCU = (param->sourceWidth + param->maxCUSize - 1)
> >> param->maxLog2CUSize;
>          uint32_t heightInCU = (param->sourceHeight + param->maxCUSize -
> 1) >> param->maxLog2CUSize;
> diff -r 3cd0b5ed0b91 -r 23a8a7456916 source/encoder/encoder.cpp
> --- a/source/encoder/encoder.cpp        Thu Dec 27 14:43:54 2018 +0530
> +++ b/source/encoder/encoder.cpp        Wed Sep 19 14:30:48 2018 -0700
> @@ -1253,7 +1253,7 @@
>              x265_frame_stats* frameData = NULL;
>
>              /* Free up pic_in->analysisData since it has already been
> used */
> -            if ((m_param->analysisLoad && !m_param->analysisSave) ||
> (m_param->bMVType && slice->m_sliceType != I_SLICE))
> +            if ((m_param->analysisLoad && !m_param->analysisSave) ||
> ((m_param->bAnalysisType == AVC_INFO) && slice->m_sliceType != I_SLICE))
>                  x265_free_analysis_data(m_param,
> &outFrame->m_analysisData);
>
>              if (pic_out)
> @@ -2710,17 +2710,17 @@
>  void Encoder::configure(x265_param *p)
>  {
>      this->m_param = p;
> -    if (p->bMVType == AVC_INFO)
> +    if (p->bAnalysisType == AVC_INFO)
>          this->m_externalFlush = true;
>      else
>          this->m_externalFlush = false;
>
> -    if (p->bMVType == AVC_INFO && (p->limitTU == 3 || p->limitTU == 4))
> +    if (p->bAnalysisType == AVC_INFO && (p->limitTU == 3 || p->limitTU ==
> 4))
>      {
>          x265_log(p, X265_LOG_WARNING, "limit TU = 3 or 4 with MVType
> AVCINFO produces inconsistent output\n");
>      }
>
> -    if (p->bMVType == AVC_INFO && p->minCUSize != 8)
> +    if (p->bAnalysisType == AVC_INFO && p->minCUSize != 8)
>      {
>          p->minCUSize = 8;
>          x265_log(p, X265_LOG_WARNING, "Setting minCuSize = 8, AVCINFO
> expects 8x8 blocks\n");
> diff -r 3cd0b5ed0b91 -r 23a8a7456916 source/encoder/frameencoder.cpp
> --- a/source/encoder/frameencoder.cpp   Thu Dec 27 14:43:54 2018 +0530
> +++ b/source/encoder/frameencoder.cpp   Wed Sep 19 14:30:48 2018 -0700
> @@ -335,7 +335,7 @@
>              while (!m_frame->m_ctuInfo)
>                  m_frame->m_copied.wait();
>          }
> -        if ((m_param->bMVType == AVC_INFO) && !m_param->analysisSave &&
> !m_param->analysisLoad && !(IS_X265_TYPE_I(m_frame->m_lowres.sliceType)))
> +        if ((m_param->bAnalysisType == AVC_INFO) &&
> !m_param->analysisSave && !m_param->analysisLoad &&
> !(IS_X265_TYPE_I(m_frame->m_lowres.sliceType)))
>          {
>              while (((m_frame->m_analysisData.interData == NULL &&
> m_frame->m_analysisData.intraData == NULL) || (uint32_t)m_frame->m_poc !=
> m_frame->m_analysisData.poc))
>                  m_frame->m_copyMVType.wait();
> diff -r 3cd0b5ed0b91 -r 23a8a7456916 source/encoder/search.cpp
> --- a/source/encoder/search.cpp Thu Dec 27 14:43:54 2018 +0530
> +++ b/source/encoder/search.cpp Wed Sep 19 14:30:48 2018 -0700
> @@ -2201,7 +2201,7 @@
>          cu.getNeighbourMV(puIdx, pu.puAbsPartIdx,
> interMode.interNeighbours);
>          /* Uni-directional prediction */
>          if ((m_param->analysisLoad && m_param->analysisReuseLevel > 1 &&
> m_param->analysisReuseLevel != 10)
> -            || (m_param->analysisMultiPassRefine &&
> m_param->rc.bStatRead) || (m_param->bMVType == AVC_INFO) || (useAsMVP))
> +            || (m_param->analysisMultiPassRefine &&
> m_param->rc.bStatRead) || (m_param->bAnalysisType == AVC_INFO) ||
> (useAsMVP))
>          {
>              for (int list = 0; list < numPredDir; list++)
>              {
> diff -r 3cd0b5ed0b91 -r 23a8a7456916 source/x265.h
> --- a/source/x265.h     Thu Dec 27 14:43:54 2018 +0530
> +++ b/source/x265.h     Wed Sep 19 14:30:48 2018 -0700
> @@ -317,7 +317,7 @@
>  {
>      NO_INFO = 0,
>      AVC_INFO = 1,
> -}MVRefineType;
> +}AnalysisRefineType;
>
>  /* Arbitrary User SEI
>   * Payload size is in bytes and the payload pointer must be non-NULL.
> @@ -1701,7 +1701,7 @@
>      double    vbvEndFrameAdjust;
>
>      /* Reuse MV information obtained through API */
> -    int       bMVType;
> +    int       bAnalysisType;
>      /* Allow the encoder to have a copy of the planes of x265_picture in
> Frame */
>      int       bCopyPicToFrame;
>
> diff -r 3cd0b5ed0b91 -r 23a8a7456916 source/x265cli.h
> --- a/source/x265cli.h  Thu Dec 27 14:43:54 2018 +0530
> +++ b/source/x265cli.h  Wed Sep 19 14:30:48 2018 -0700
> @@ -297,7 +297,7 @@
>      { "splitrd-skip",         no_argument, NULL, 0 },
>      { "no-splitrd-skip",      no_argument, NULL, 0 },
>      { "lowpass-dct",          no_argument, NULL, 0 },
> -    { "refine-mv-type", required_argument, NULL, 0 },
> +    { "refine-analysis-type", required_argument, NULL, 0 },
>      { "copy-pic",             no_argument, NULL, 0 },
>      { "no-copy-pic",          no_argument, NULL, 0 },
>      { "max-ausize-factor", required_argument, NULL, 0 },
> @@ -501,7 +501,7 @@
>      H0("   --analysis-load <filename>    Load analysis buffers from the
> file specified. Default Disabled\n");
>      H0("   --analysis-reuse-file <filename>    Specify file name used for
> either dumping or reading analysis data. Deault x265_analysis.dat\n");
>      H0("   --analysis-reuse-level <1..10>      Level of analysis reuse
> indicates amount of info stored/reused in save/load mode, 1:least..10:most.
> Default %d\n", param->analysisReuseLevel);
> -    H0("   --refine-mv-type <string>     Reuse MV information received
> through API call. Supported option is avc. Default disabled - %d\n",
> param->bMVType);
> +    H0("   --refine-analysis-type <string>     Reuse anlaysis information
> received through API call. Supported options are avc. Default disabled -
> %d\n", param->bAnalysisType);
>      H0("   --scale-factor <int>          Specify factor by which input
> video is scaled down for analysis save mode. Default %d\n",
> param->scaleFactor);
>      H0("   --refine-intra <0..4>         Enable intra refinement for
> encode that uses analysis-load.\n"
>          "                                    - 0 : Forces both mode and
> depth from the save encode.\n"
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20181228/3e624b5f/attachment-0001.html>


More information about the x265-devel mailing list