Re: [x265] [PATCH] limitTU: Save intra CU's TU depth when analysis save/load is enabled

2018-02-14 Thread Ashok Kumar Mishra
On Wed, Feb 14, 2018 at 4:07 PM, Bhavna Hariharan <
bha...@multicorewareinc.com> wrote:

> This is an output changing commit for --limit-tu 3 and --limit-tu 4.
>
>
> Thanks,
>
> Bhavna Hariharan
>
> On Wed, Feb 14, 2018 at 3:46 PM,  wrote:
>
>> # HG changeset patch
>> # User Bhavna Hariharan 
>> # Date 1518603329 -19800
>> #  Wed Feb 14 15:45:29 2018 +0530
>> # Node ID 36ab263cc891e0cb5d3dd5ce2c80e35faa0ce996
>> # Parent  01b685d6fa33aaab2b7f53aa1e1a2aec0a954025
>> limitTU: Save intra CU's TU depth when analysis save/load is enabled
>>
>> This patch will cause a output mismatch between analysis save and load
>> when
>> limit-tu 3/4 is enabled. This change is expected as the load run will
>> have only
>> the best mode's TU information. For CUs where the neighbour's TU depth is
>> unavailable, load encode will evaluate all TU detphs.
>>
>> diff -r 01b685d6fa33 -r 36ab263cc891 doc/reST/cli.rst
>> --- a/doc/reST/cli.rst  Sat Feb 10 06:16:45 2018 +0100
>> +++ b/doc/reST/cli.rst  Wed Feb 14 15:45:29 2018 +0530
>> @@ -1029,7 +1029,13 @@
>> Level 4 - uses the depth of the neighbouring/ co-located CUs TU
>> depth
>> to limit the 1st subTU depth. The 1st subTU depth is taken as the
>> limiting depth for the other subTUs.
>> -
>> +
>> +   Enabling levels 3 or 4 may cause a mismatch in the output
>> bitstreams
>> +   between option:`--analysis-save` and option:`--analysis-load`
>> +   as all neighbouring CUs TU depth may not be available in the
>> +   option:`--analysis-load` run as only the best mode's information
>> is
>> +   available to it.
>> +
>> Default: 0
>>
>>  .. option:: --nr-intra , --nr-inter 
>> diff -r 01b685d6fa33 -r 36ab263cc891 source/encoder/analysis.cpp
>> --- a/source/encoder/analysis.cpp   Sat Feb 10 06:16:45 2018 +0100
>> +++ b/source/encoder/analysis.cpp   Wed Feb 14 15:45:29 2018 +0530
>> @@ -647,13 +647,12 @@
>>  cacheCost[cuIdx] = md.bestMode->rdCost;
>>  }
>>
>> -/* Save Intra CUs TU depth only when analysis mode is OFF */
>> -if ((m_limitTU & X265_TU_LIMIT_NEIGH) && cuGeom.log2CUSize >= 4 &&
>> (!m_param->analysisSave && !m_param->analysisLoad))
>> +if ((m_limitTU & X265_TU_LIMIT_NEIGH) && cuGeom.log2CUSize >= 4)
>>  {
>>  CUData* ctu = md.bestMode->cu.m_encData->get
>> PicCTU(parentCTU.m_cuAddr);
>>  int8_t maxTUDepth = -1;
>>  for (uint32_t i = 0; i < cuGeom.numPartitions; i++)
>> -maxTUDepth = X265_MAX(maxTUDepth,
>> md.pred[PRED_INTRA].cu.m_tuDepth[i]);
>> +maxTUDepth = X265_MAX(maxTUDepth,
>> md.bestMode->cu.m_tuDepth[i]);
>>  ctu->m_refTuDepth[cuGeom.geomRecurId] = maxTUDepth;
>>  }
>>
>> diff -r 01b685d6fa33 -r 36ab263cc891 source/test/regression-tests.txt
>> --- a/source/test/regression-tests.txt  Sat Feb 10 06:16:45 2018 +0100
>> +++ b/source/test/regression-tests.txt  Wed Feb 14 15:45:29 2018 +0530
>> @@ -23,7 +23,7 @@
>>  BasketballDrive_1920x1080_50.y4m,--preset slower --lossless --chromaloc
>> 3 --subme 0 --limit-tu 4
>>  BasketballDrive_1920x1080_50.y4m,--preset slower --no-cutree
>> --analysis-save x265_analysis.dat --analysis-reuse-level 10 --bitrate 7000
>> --limit-tu 0::--preset slower --no-cutree --analysis-load x265_analysis.dat
>> --analysis-reuse-level 10 --bitrate 7000 --limit-tu 0
>>  BasketballDrive_1920x1080_50.y4m,--preset veryslow --crf 4
>> --cu-lossless --pmode --limit-refs 1 --aq-mode 3 --limit-tu 3
>> -BasketballDrive_1920x1080_50.y4m,--preset veryslow --no-cutree
>> --analysis-save x265_analysis.dat --bitrate 7000 --tskip-fast --limit-tu
>> 4::--preset veryslow --no-cutree --analysis-load x265_analysis.dat
>> --bitrate 7000  --tskip-fast --limit-tu 4
>> +BasketballDrive_1920x1080_50.y4m,--preset veryslow --no-cutree
>> --analysis-save x265_analysis.dat --bitrate 7000 --tskip-fast --limit-tu
>> 2::--preset veryslow --no-cutree --analysis-load x265_analysis.dat
>> --bitrate 7000  --tskip-fast --limit-tu 2
>>  BasketballDrive_1920x1080_50.y4m,--preset veryslow --recon-y4m-exec
>> "ffplay -i pipe:0 -autoexit"
>>  Coastguard-4k.y4m,--preset ultrafast --recon-y4m-exec "ffplay -i pipe:0
>> -autoexit"
>>  Coastguard-4k.y4m,--preset superfast --tune grain --overscan=crop
>>
>
>
> ___
> x265-devel mailing list
> x265-devel@videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>
>

Thanks. Pushed to default.
___
x265-devel mailing list
x265-devel@videolan.org
https://mailman.videolan.org/listinfo/x265-devel


Re: [x265] [PATCH] limitTU: Save intra CU's TU depth when analysis save/load is enabled

2018-02-14 Thread Bhavna Hariharan
This is an output changing commit for --limit-tu 3 and --limit-tu 4.


Thanks,

Bhavna Hariharan

On Wed, Feb 14, 2018 at 3:46 PM,  wrote:

> # HG changeset patch
> # User Bhavna Hariharan 
> # Date 1518603329 -19800
> #  Wed Feb 14 15:45:29 2018 +0530
> # Node ID 36ab263cc891e0cb5d3dd5ce2c80e35faa0ce996
> # Parent  01b685d6fa33aaab2b7f53aa1e1a2aec0a954025
> limitTU: Save intra CU's TU depth when analysis save/load is enabled
>
> This patch will cause a output mismatch between analysis save and load when
> limit-tu 3/4 is enabled. This change is expected as the load run will have
> only
> the best mode's TU information. For CUs where the neighbour's TU depth is
> unavailable, load encode will evaluate all TU detphs.
>
> diff -r 01b685d6fa33 -r 36ab263cc891 doc/reST/cli.rst
> --- a/doc/reST/cli.rst  Sat Feb 10 06:16:45 2018 +0100
> +++ b/doc/reST/cli.rst  Wed Feb 14 15:45:29 2018 +0530
> @@ -1029,7 +1029,13 @@
> Level 4 - uses the depth of the neighbouring/ co-located CUs TU
> depth
> to limit the 1st subTU depth. The 1st subTU depth is taken as the
> limiting depth for the other subTUs.
> -
> +
> +   Enabling levels 3 or 4 may cause a mismatch in the output
> bitstreams
> +   between option:`--analysis-save` and option:`--analysis-load`
> +   as all neighbouring CUs TU depth may not be available in the
> +   option:`--analysis-load` run as only the best mode's information is
> +   available to it.
> +
> Default: 0
>
>  .. option:: --nr-intra , --nr-inter 
> diff -r 01b685d6fa33 -r 36ab263cc891 source/encoder/analysis.cpp
> --- a/source/encoder/analysis.cpp   Sat Feb 10 06:16:45 2018 +0100
> +++ b/source/encoder/analysis.cpp   Wed Feb 14 15:45:29 2018 +0530
> @@ -647,13 +647,12 @@
>  cacheCost[cuIdx] = md.bestMode->rdCost;
>  }
>
> -/* Save Intra CUs TU depth only when analysis mode is OFF */
> -if ((m_limitTU & X265_TU_LIMIT_NEIGH) && cuGeom.log2CUSize >= 4 &&
> (!m_param->analysisSave && !m_param->analysisLoad))
> +if ((m_limitTU & X265_TU_LIMIT_NEIGH) && cuGeom.log2CUSize >= 4)
>  {
>  CUData* ctu = md.bestMode->cu.m_encData->
> getPicCTU(parentCTU.m_cuAddr);
>  int8_t maxTUDepth = -1;
>  for (uint32_t i = 0; i < cuGeom.numPartitions; i++)
> -maxTUDepth = X265_MAX(maxTUDepth, md.pred[PRED_INTRA].cu.m_
> tuDepth[i]);
> +maxTUDepth = X265_MAX(maxTUDepth,
> md.bestMode->cu.m_tuDepth[i]);
>  ctu->m_refTuDepth[cuGeom.geomRecurId] = maxTUDepth;
>  }
>
> diff -r 01b685d6fa33 -r 36ab263cc891 source/test/regression-tests.txt
> --- a/source/test/regression-tests.txt  Sat Feb 10 06:16:45 2018 +0100
> +++ b/source/test/regression-tests.txt  Wed Feb 14 15:45:29 2018 +0530
> @@ -23,7 +23,7 @@
>  BasketballDrive_1920x1080_50.y4m,--preset slower --lossless --chromaloc
> 3 --subme 0 --limit-tu 4
>  BasketballDrive_1920x1080_50.y4m,--preset slower --no-cutree
> --analysis-save x265_analysis.dat --analysis-reuse-level 10 --bitrate 7000
> --limit-tu 0::--preset slower --no-cutree --analysis-load x265_analysis.dat
> --analysis-reuse-level 10 --bitrate 7000 --limit-tu 0
>  BasketballDrive_1920x1080_50.y4m,--preset veryslow --crf 4 --cu-lossless
> --pmode --limit-refs 1 --aq-mode 3 --limit-tu 3
> -BasketballDrive_1920x1080_50.y4m,--preset veryslow --no-cutree
> --analysis-save x265_analysis.dat --bitrate 7000 --tskip-fast --limit-tu
> 4::--preset veryslow --no-cutree --analysis-load x265_analysis.dat
> --bitrate 7000  --tskip-fast --limit-tu 4
> +BasketballDrive_1920x1080_50.y4m,--preset veryslow --no-cutree
> --analysis-save x265_analysis.dat --bitrate 7000 --tskip-fast --limit-tu
> 2::--preset veryslow --no-cutree --analysis-load x265_analysis.dat
> --bitrate 7000  --tskip-fast --limit-tu 2
>  BasketballDrive_1920x1080_50.y4m,--preset veryslow --recon-y4m-exec
> "ffplay -i pipe:0 -autoexit"
>  Coastguard-4k.y4m,--preset ultrafast --recon-y4m-exec "ffplay -i pipe:0
> -autoexit"
>  Coastguard-4k.y4m,--preset superfast --tune grain --overscan=crop
>
___
x265-devel mailing list
x265-devel@videolan.org
https://mailman.videolan.org/listinfo/x265-devel