[x265] [PATCH] Add option hme-range to modify search range for HME levels L0, L1 and L2

2019-11-29 Thread Pooja Venkatesan
# HG changeset patch
# User Pooja Venkatesan 
# Date 1568196486 -19800
#  Wed Sep 11 15:38:06 2019 +0530
# Node ID c31884e780444d00ee7a25ccbb32a9b9fd52f47a
# Parent  4a29e0c5bfaf30aaed2c5224bcba1f464d68de83
Add option hme-range to modify search range for HME levels L0, L1 and L2.

diff -r 4a29e0c5bfaf -r c31884e78044 doc/reST/cli.rst
--- a/doc/reST/cli.rst Fri Nov 08 15:30:50 2019 +0530
+++ b/doc/reST/cli.rst Wed Sep 11 15:38:06 2019 +0530
@@ -1290,6 +1290,11 @@
which will apply to all levels. Default is hex,umh,umh for
levels 0,1,2 respectively.

+.. option:: --hme-range ,,
+
+ Search range for HME level 0, 1 and 2.
+ Default search range is 16,32,48 for level 0,1,2 respectively.
+
 Spatial/intra options
 =

diff -r 4a29e0c5bfaf -r c31884e78044 source/CMakeLists.txt
--- a/source/CMakeLists.txt Fri Nov 08 15:30:50 2019 +0530
+++ b/source/CMakeLists.txt Wed Sep 11 15:38:06 2019 +0530
@@ -29,7 +29,7 @@
 option(STATIC_LINK_CRT "Statically link C runtime for release builds" OFF)
 mark_as_advanced(FPROFILE_USE FPROFILE_GENERATE NATIVE_BUILD)
 # X265_BUILD must be incremented each time the public API is changed
-set(X265_BUILD 183)
+set(X265_BUILD 184)
 configure_file("${PROJECT_SOURCE_DIR}/x265.def.in"
"${PROJECT_BINARY_DIR}/x265.def")
 configure_file("${PROJECT_SOURCE_DIR}/x265_config.h.in"
diff -r 4a29e0c5bfaf -r c31884e78044 source/common/param.cpp
--- a/source/common/param.cpp Fri Nov 08 15:30:50 2019 +0530
+++ b/source/common/param.cpp Wed Sep 11 15:38:06 2019 +0530
@@ -210,6 +210,9 @@
 param->bEnableHME = 0;
 param->hmeSearchMethod[0] = X265_HEX_SEARCH;
 param->hmeSearchMethod[1] = param->hmeSearchMethod[2] =
X265_UMH_SEARCH;
+param->hmeRange[0] = 16;
+param->hmeRange[1] = 32;
+param->hmeRange[2] = 48;
 param->bSourceReferenceEstimation = 0;
 param->limitTU = 0;
 param->dynamicRd = 0;
@@ -1344,6 +1347,11 @@
 }
 p->bEnableHME = true;
 }
+OPT("hme-range")
+{
+sscanf(value, "%d,%d,%d", &p->hmeRange[0], &p->hmeRange[1],
&p->hmeRange[2]);
+p->bEnableHME = true;
+}
 else
 return X265_PARAM_BAD_NAME;
 }
@@ -1734,6 +1742,9 @@
 "Invalid scenecut Window duration. Value must be between 0 and
1000(inclusive)");
 CHECK(param->maxQpDelta < 0 || param->maxQpDelta > 10,
 "Invalid maxQpDelta value. Value must be between 0 and 10
(inclusive)");
+for(int level=0; level < 3; level++)
+CHECK(param->hmeRange[level] < 0 || param->hmeRange[level] >=
32768,
+"Search Range for HME levels must be between 0 and 32768");
 #if !X86_64
 CHECK(param->searchMethod == X265_SEA && (param->sourceWidth > 840 ||
param->sourceHeight > 480),
 "SEA motion search does not support resolutions greater than 480p
in 32 bit build");
@@ -2018,8 +2029,10 @@
 if(p->bEnableFrameDuplication)
 s += sprintf(s, " dup-threshold=%d", p->dupThreshold);
 BOOL(p->bEnableHME, "hme");
-if (p->bEnableHME)
+if (p->bEnableHME){
 s += sprintf(s, " Level 0,1,2=%d,%d,%d", p->hmeSearchMethod[0],
p->hmeSearchMethod[1], p->hmeSearchMethod[2]);
+s += sprintf(s, " merange L0,L1,L2=%d,%d,%d", p->hmeRange[0],
p->hmeRange[1], p->hmeRange[2]);
+}
 BOOL(p->bEnableWeightedPred, "weightp");
 BOOL(p->bEnableWeightedBiPred, "weightb");
 BOOL(p->bSourceReferenceEstimation, "analyze-src-pics");
@@ -2320,7 +2333,10 @@
 if (src->bEnableHME)
 {
 for (int level = 0; level < 3; level++)
+{
 dst->hmeSearchMethod[level] = src->hmeSearchMethod[level];
+dst->hmeRange[level] = src->hmeRange[level];
+}
 }
 dst->bEnableWeightedBiPred = src->bEnableWeightedBiPred;
 dst->bEnableWeightedPred = src->bEnableWeightedPred;
diff -r 4a29e0c5bfaf -r c31884e78044 source/encoder/encoder.cpp
--- a/source/encoder/encoder.cpp Fri Nov 08 15:30:50 2019 +0530
+++ b/source/encoder/encoder.cpp Wed Sep 11 15:38:06 2019 +0530
@@ -4077,11 +4077,12 @@
 x265_log(p, X265_LOG_WARNING, "Source height < 540p is too low
for HME. Disabling HME.\n");
 p->bEnableHME = 0;
 }
-if (m_param->bEnableHME && m_param->searchMethod !=
m_param->hmeSearchMethod[2])
-{
-m_param->searchMethod = m_param->hmeSearchMethod[2];
-}
-}
+}
+
+if (m_param->bEnableHME && m_param->searchMethod !=
m_param->hmeSearchMethod[2])
+m_param->searchMethod = m_param->hmeSearchMethod[2];
+if (m_param->bEnableHME && m_param->searchRange !=
m_param->hmeRange[2])
+m_param->searchRange = m_param->hmeRange[2];

if (p->bHistBasedSceneCut && !p->edgeTransitionThreshold)
{
diff -r 4a29e0c5bfaf -r c31884e78044 source/encoder/slicetype.cpp
--- a/source/encoder/slicetype.cpp Fri Nov 08 15:30:50 2019 +0530
+++ b/source/encoder/slicetype.cpp Wed Sep 11 15:38:06 2019 +0530
@@ -3240,12 +3240,13 @@
   

Re: [x265] [PATCH] Fix pass 2 encode failure (Issue #524)

2019-11-29 Thread Aruna Matheswaran
Pushed into default.

On Thu, Nov 28, 2019 at 11:25 AM Niranjan Bala <
niran...@multicorewareinc.com> wrote:

> # HG changeset patch
> # User Niranjan 
> # Date 1574665937 -19800
> #  Mon Nov 25 12:42:17 2019 +0530
> # Node ID 5707bcd3d1fdfd1243bafc83d836f9ce70671245
> # Parent  04db2bfee5d628d931d1407355b909ac8ff1c898
> Fix pass 2 encode failure (Issue #524)
>
> diff -r 04db2bfee5d6 -r 5707bcd3d1fd source/encoder/ratecontrol.cpp
> --- a/source/encoder/ratecontrol.cpp Thu Oct 31 16:23:27 2019 +0530
> +++ b/source/encoder/ratecontrol.cpp Mon Nov 25 12:42:17 2019 +0530
> @@ -53,7 +53,7 @@
>  {\
>  bErr = 0;\
>  p = strstr(opts, opt "=");\
> -char* q = strstr(opts, "no-" opt);\
> +char* q = strstr(opts, "no-" opt " ");\
>  if (p && sscanf(p, opt "=%d" , &i) && param_val != i)\
>  bErr = 1;\
>  else if (!param_val && !q && !p)\
> Thanks & Regards
> *Niranjan Kumar B*
> Video Codec Engineer
> Media & AI Analytics
> +91 958 511 1449
> 
> ___
> x265-devel mailing list
> x265-devel@videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>


-- 
Regards,
*Aruna Matheswaran,*
Video Codec Engineer,
Media & AI analytics BU,
___
x265-devel mailing list
x265-devel@videolan.org
https://mailman.videolan.org/listinfo/x265-devel


Re: [x265] [x265 Patch] Fix: MinGW\GCC 9.2 Warnings In Histogram Based Scene Cut Detection

2019-11-29 Thread Mario *LigH* Rohkrämer

Reported - tested - confirmed yesterday.

Srikanth Kurapati schrieb am 29.11.2019 um 08:52:

# HG changeset patch
# User Srikanth Kurapati
# Date 1574946473 -19800
#      Thu Nov 28 18:37:53 2019 +0530
# Node ID 47e02b577ac17e29a9d0c4c33efe46cc79d0bf66
# Parent  4a29e0c5bfaf30aaed2c5224bcba1f464d68de83
Fix: gcc 9.2 warnings in encoder.cpp

diff -r 4a29e0c5bfaf -r 47e02b577ac1 source/encoder/encoder.cpp
--- a/source/encoder/encoder.cpp Fri Nov 08 15:30:50 2019 +0530
+++ b/source/encoder/encoder.cpp Thu Nov 28 18:37:53 2019 +0530
@@ -878,8 +878,10 @@

      if (m_param->bHistBasedSceneCut)
      {
-        if(m_edgePic != NULL)
-           X265_FREE_ZERO(m_edgePic);
+        if (m_edgePic != NULL)
+        {
+            X265_FREE_ZERO(m_edgePic);
+        }
      }

      for (int i = 0; i < m_param->frameNumThreads; i++)

--
*With Regards,*
*Srikanth Kurapati.*


___
x265-devel mailing list
x265-devel@videolan.org
https://mailman.videolan.org/listinfo/x265-devel




--

Fun and success!

Mario *LigH* Rohkrämer
maito:cont...@ligh.de
___
x265-devel mailing list
x265-devel@videolan.org
https://mailman.videolan.org/listinfo/x265-devel