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

bhavna at multicorewareinc.com bhavna at multicorewareinc.com
Wed Feb 14 11:16:30 CET 2018


# HG changeset patch
# User Bhavna Hariharan <bhavna at multicorewareinc.com>
# 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 <integer>, --nr-inter <integer>
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: x265.patch
Type: text/x-patch
Size: 3736 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20180214/6953488f/attachment-0001.bin>


More information about the x265-devel mailing list