Re: [x265] [PATCH 1 of 2] Introduce refine-inter levels 2 and 3

2017-08-10 Thread Pradeep Ramachandran
On Thu, Aug 10, 2017 at 12:47 PM, Mario *LigH* Rohkrämer 
wrote:

> Am 10.08.2017, 09:16 Uhr, schrieb Mario *LigH* Rohkrämer  >:
>
>
>> Online CLI documentation does not yet contain these parameters at all:
>>
>> http://x265.readthedocs.io/en/default/cli.html?highlight=refine
>>
>
>
> Sorry, my mistake, something slipped in my browser.
>
>
readthedocs.io takes some time to update the docs. I see them there now.


>
> --
>
> Fun and success!
> Mario *LigH* Rohkrämer
> mailto:cont...@ligh.de
>
> ___
> x265-devel mailing list
> x265-devel@videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>
___
x265-devel mailing list
x265-devel@videolan.org
https://mailman.videolan.org/listinfo/x265-devel


Re: [x265] [PATCH 1 of 2] Introduce refine-inter levels 2 and 3

2017-08-10 Thread Mario *LigH* Rohkrämer

Am 10.08.2017, 09:16 Uhr, schrieb Mario *LigH* Rohkrämer :



Online CLI documentation does not yet contain these parameters at all:

http://x265.readthedocs.io/en/default/cli.html?highlight=refine



Sorry, my mistake, something slipped in my browser.

--

Fun and success!
Mario *LigH* Rohkrämer
mailto:cont...@ligh.de

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


Re: [x265] [PATCH 1 of 2] Introduce refine-inter levels 2 and 3

2017-08-10 Thread Mario *LigH* Rohkrämer


Online CLI documentation does not yet contain these parameters at all:

http://x265.readthedocs.io/en/default/cli.html?highlight=refine


Am 10.08.2017, 08:50 Uhr, schrieb Pradeep Ramachandran  
:



On Wed, Aug 9, 2017 at 6:11 PM,  wrote:


# HG changeset patch
# User Bhavna Hariharan 
# Date 1500881283 -19800
#  Mon Jul 24 12:58:03 2017 +0530
# Node ID 81f17d9c7c273e4b282be66bf8bcd193e25a1d2e
# Parent  d11482e5fedbcdaf62ee3c6872f43827d99ad181
Introduce refine-inter levels 2 and 3



Pushed both patches to default branch


--

Fun and success!
Mario *LigH* Rohkrämer
mailto:cont...@ligh.de

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


Re: [x265] [PATCH 1 of 2] Introduce refine-inter levels 2 and 3

2017-08-09 Thread Pradeep Ramachandran
On Wed, Aug 9, 2017 at 6:11 PM,  wrote:

> # HG changeset patch
> # User Bhavna Hariharan 
> # Date 1500881283 -19800
> #  Mon Jul 24 12:58:03 2017 +0530
> # Node ID 81f17d9c7c273e4b282be66bf8bcd193e25a1d2e
> # Parent  d11482e5fedbcdaf62ee3c6872f43827d99ad181
> Introduce refine-inter levels 2 and 3
>

Pushed both patches to default branch


>
> refine-inter 2 limits the modes evaluated in the encode that uses
> --analysis-reuse-mode load.
> 2nx2n in save encode - disable re-evaluation of rect and amp
> skip in save encode  - re-evaluates only skip, merge and 2nx2n modes
>
> refine-inter 3 will force only the depth from the encode that uses
> --analysis-reuse-mode=save and re-evaluates all the modes in the
> encode that uses --analysis-reuse-mode=load.
>
> diff -r d11482e5fedb -r 81f17d9c7c27 doc/reST/cli.rst
> --- a/doc/reST/cli.rst  Mon Jul 24 11:15:38 2017 +0530
> +++ b/doc/reST/cli.rst  Mon Jul 24 12:58:03 2017 +0530
> @@ -897,24 +897,38 @@
>
> Enables refinement of intra blocks in current encode.
>
> -   Level 0 - Forces both mode and depth from the previous encode.
> +   Level 0 - Forces both mode and depth from the save encode.
>
> -   Level 1 - Evaluates all intra modes for blocks of size one smaller
> than
> -   the min-cu-size of the incoming analysis data from the previous
> encode,
> -   forces modes for blocks of larger size.
> +   Level 1 - Evaluates all intra modes at current depth(n) and at
> depth
> +   (n+1) when current block size is one greater than the min-cu-size.
> +   Forces modes for larger blocks.
>
> -   Level 2 - Evaluates all intra modes for blocks of size one smaller
> than
> -   the min-cu-size of the incoming analysis data from the previous
> encode.
> -   For larger blocks, force only depth when angular mode is chosen by
> the
> -   previous encode, force depth and mode when other intra modes are
> chosen.
> +   Level 2 - In addition to the functionality of level 1, at all
> depths, force
> +   (a) only depth when angular mode is chosen by the save encode.
> +   (b) depth and mode when other intra modes are chosen by the save
> encode.
>
> Default 0.
>
> -.. option:: --refine-inter-depth
> -
> -   Enables refinement of inter blocks in current encode. Evaluates all
> -   inter modes for blocks of size one smaller than the min-cu-size of
> the
> -   incoming analysis data from the previous encode. Default disabled.
> +.. option:: --refine-inter <0..3>
> +
> +   Enables refinement of inter blocks in current encode.
> +
> +   Level 0 - Forces both mode and depth from the save encode.
> +
> +   Level 1 - Evaluates all inter modes at current depth(n) and at
> depth
> +   (n+1) when current block size is one greater than the min-cu-size.
> +   Forces modes for larger blocks.
> +
> +   Level 2 - In addition to the functionality of level 1, restricts
> the modes
> +   evaluated when specific modes are decided as the best mode by the
> save encode.
> +
> +   2nx2n in save encode - disable re-evaluation of rect and amp.
> +
> +   skip in save encode  - re-evaluates only skip, merge and 2nx2n
> modes.
> +
> +   Level 3 - Perform analysis of inter modes while reusing depths
> from the save encode.
> +
> +   Default 0.
>
>  .. option:: --refine-mv
>
> diff -r d11482e5fedb -r 81f17d9c7c27 source/CMakeLists.txt
> --- a/source/CMakeLists.txt Mon Jul 24 11:15:38 2017 +0530
> +++ b/source/CMakeLists.txt Mon Jul 24 12:58:03 2017 +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 131)
> +set(X265_BUILD 132)
>  configure_file("${PROJECT_SOURCE_DIR}/x265.def.in"
> "${PROJECT_BINARY_DIR}/x265.def")
>  configure_file("${PROJECT_SOURCE_DIR}/x265_config.h.in"
> diff -r d11482e5fedb -r 81f17d9c7c27 source/common/param.cpp
> --- a/source/common/param.cpp   Mon Jul 24 11:15:38 2017 +0530
> +++ b/source/common/param.cpp   Mon Jul 24 12:58:03 2017 +0530
> @@ -972,7 +972,7 @@
>  OPT("ctu-info") p->bCTUInfo = atoi(value);
>  OPT("scale-factor") p->scaleFactor = atoi(value);
>  OPT("refine-intra")p->intraRefine = atoi(value);
> -OPT("refine-inter")p->interRefine = atobool(value);
> +OPT("refine-inter")p->interRefine = atoi(value);
>  OPT("refine-mv")p->mvRefine = atobool(value);
>  OPT("force-flush")p->forceFlush = atoi(value);
>  else
> @@ -1318,6 +1318,10 @@
>  "Supported range for log2MaxPocLsb is 4 to 16");
>  CHECK(param->bCTUInfo < 0 || (param->bCTUInfo != 0 && param->bCTUInfo
> != 1 && param->bCTUInfo != 2 && param->bCTUInfo != 4 && param->bCTUInfo !=
> 6) || param->bCTUInfo > 6,
>  "Supported values for bCTUInfo are 0, 1, 2, 4, 6");
> +CHECK(param->inter

[x265] [PATCH 1 of 2] Introduce refine-inter levels 2 and 3

2017-08-09 Thread bhavna
# HG changeset patch
# User Bhavna Hariharan 
# Date 1500881283 -19800
#  Mon Jul 24 12:58:03 2017 +0530
# Node ID 81f17d9c7c273e4b282be66bf8bcd193e25a1d2e
# Parent  d11482e5fedbcdaf62ee3c6872f43827d99ad181
Introduce refine-inter levels 2 and 3

refine-inter 2 limits the modes evaluated in the encode that uses
--analysis-reuse-mode load.
2nx2n in save encode - disable re-evaluation of rect and amp
skip in save encode  - re-evaluates only skip, merge and 2nx2n modes

refine-inter 3 will force only the depth from the encode that uses
--analysis-reuse-mode=save and re-evaluates all the modes in the
encode that uses --analysis-reuse-mode=load.

diff -r d11482e5fedb -r 81f17d9c7c27 doc/reST/cli.rst
--- a/doc/reST/cli.rst  Mon Jul 24 11:15:38 2017 +0530
+++ b/doc/reST/cli.rst  Mon Jul 24 12:58:03 2017 +0530
@@ -897,24 +897,38 @@

Enables refinement of intra blocks in current encode. 

-   Level 0 - Forces both mode and depth from the previous encode.
+   Level 0 - Forces both mode and depth from the save encode.

-   Level 1 - Evaluates all intra modes for blocks of size one smaller than 
-   the min-cu-size of the incoming analysis data from the previous encode, 
-   forces modes for blocks of larger size.
+   Level 1 - Evaluates all intra modes at current depth(n) and at depth 
+   (n+1) when current block size is one greater than the min-cu-size.
+   Forces modes for larger blocks.

-   Level 2 - Evaluates all intra modes for blocks of size one smaller than 
-   the min-cu-size of the incoming analysis data from the previous encode. 
-   For larger blocks, force only depth when angular mode is chosen by the 
-   previous encode, force depth and mode when other intra modes are chosen.
+   Level 2 - In addition to the functionality of level 1, at all depths, 
force 
+   (a) only depth when angular mode is chosen by the save encode.
+   (b) depth and mode when other intra modes are chosen by the save encode.

Default 0.

-.. option:: --refine-inter-depth
-
-   Enables refinement of inter blocks in current encode. Evaluates all 
-   inter modes for blocks of size one smaller than the min-cu-size of the 
-   incoming analysis data from the previous encode. Default disabled.
+.. option:: --refine-inter <0..3>
+
+   Enables refinement of inter blocks in current encode. 
+   
+   Level 0 - Forces both mode and depth from the save encode.
+   
+   Level 1 - Evaluates all inter modes at current depth(n) and at depth 
+   (n+1) when current block size is one greater than the min-cu-size.
+   Forces modes for larger blocks.
+   
+   Level 2 - In addition to the functionality of level 1, restricts the 
modes 
+   evaluated when specific modes are decided as the best mode by the save 
encode.
+   
+   2nx2n in save encode - disable re-evaluation of rect and amp.
+   
+   skip in save encode  - re-evaluates only skip, merge and 2nx2n modes.
+   
+   Level 3 - Perform analysis of inter modes while reusing depths from the 
save encode.
+   
+   Default 0.
 
 .. option:: --refine-mv

diff -r d11482e5fedb -r 81f17d9c7c27 source/CMakeLists.txt
--- a/source/CMakeLists.txt Mon Jul 24 11:15:38 2017 +0530
+++ b/source/CMakeLists.txt Mon Jul 24 12:58:03 2017 +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 131)
+set(X265_BUILD 132)
 configure_file("${PROJECT_SOURCE_DIR}/x265.def.in"
"${PROJECT_BINARY_DIR}/x265.def")
 configure_file("${PROJECT_SOURCE_DIR}/x265_config.h.in"
diff -r d11482e5fedb -r 81f17d9c7c27 source/common/param.cpp
--- a/source/common/param.cpp   Mon Jul 24 11:15:38 2017 +0530
+++ b/source/common/param.cpp   Mon Jul 24 12:58:03 2017 +0530
@@ -972,7 +972,7 @@
 OPT("ctu-info") p->bCTUInfo = atoi(value);
 OPT("scale-factor") p->scaleFactor = atoi(value);
 OPT("refine-intra")p->intraRefine = atoi(value);
-OPT("refine-inter")p->interRefine = atobool(value);
+OPT("refine-inter")p->interRefine = atoi(value);
 OPT("refine-mv")p->mvRefine = atobool(value);
 OPT("force-flush")p->forceFlush = atoi(value);
 else
@@ -1318,6 +1318,10 @@
 "Supported range for log2MaxPocLsb is 4 to 16");
 CHECK(param->bCTUInfo < 0 || (param->bCTUInfo != 0 && param->bCTUInfo != 1 
&& param->bCTUInfo != 2 && param->bCTUInfo != 4 && param->bCTUInfo != 6) || 
param->bCTUInfo > 6,
 "Supported values for bCTUInfo are 0, 1, 2, 4, 6");
+CHECK(param->interRefine > 3 || param->interRefine < 0,
+"Invalid refine-inter value, refine-inter levels 0 to 3 supported");
+CHECK(param->intraRefine > 2 || param->intraRefine < 0,
+