<div dir="ltr"><div class="gmail_default" style="font-family:georgia,serif;font-size:small;color:#000000">Yes. Thanks. Sending updated patch.</div><div class="gmail_default" style="font-family:georgia,serif;font-size:small;color:#000000"><br></div><div class="gmail_default" style="font-family:georgia,serif;font-size:small;color:#000000">--</div><div class="gmail_default" style="font-family:georgia,serif;font-size:small;color:#000000">Sagar</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 10, 2016 at 12:47 PM, Deepthi Nandakumar <span dir="ltr"><<a href="mailto:deepthi@multicorewareinc.com" target="_blank">deepthi@multicorewareinc.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Wed, Mar 9, 2016 at 2:22 PM, <span dir="ltr"><<a href="mailto:sagar@multicorewareinc.com" target="_blank">sagar@multicorewareinc.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"># HG changeset patch<br>
# User Sagar Kotecha<<a href="mailto:sagar@multicorewareinc.com" target="_blank">sagar@multicorewareinc.com</a>><br>
# Date 1457442015 -19800<br>
# Tue Mar 08 18:30:15 2016 +0530<br>
# Node ID 8999a30d29f479d8dc8425046c26af8581cfa2ba<br>
# Parent 67b63012de821913ecde12c000d09a5a8e5c76fa<br>
analysis: init depth and mode analysis buffer at the begining of CTU compression. Encoder nits.<br>
<br>
diff -r 67b63012de82 -r 8999a30d29f4 source/encoder/analysis.cpp<br>
--- a/source/encoder/analysis.cpp Tue Mar 08 11:14:52 2016 +0530<br>
+++ b/source/encoder/analysis.cpp Tue Mar 08 18:30:15 2016 +0530<br>
@@ -147,6 +147,8 @@<br>
int numPredDir = m_slice->isInterP() ? 1 : 2;<br>
m_reuseInterDataCTU = (analysis_inter_data*)m_frame->m_analysisData.interData;<br>
m_reuseRef = &m_reuseInterDataCTU->ref[ctu.m_cuAddr * X265_MAX_PRED_MODE_PER_CTU * numPredDir];<br>
+ m_reuseDepth = &m_reuseInterDataCTU->depth[ctu.m_cuAddr * ctu.m_numPartitions];<br>
+ m_reuseModes = &m_reuseInterDataCTU->modes[ctu.m_cuAddr * ctu.m_numPartitions];<br></blockquote><div><br></div></span><div>You can modify this in rd5_6 also.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
if (m_param->analysisMode == X265_ANALYSIS_SAVE)<br>
for (int i = 0; i < X265_MAX_PRED_MODE_PER_CTU * numPredDir; i++)<br>
m_reuseRef[i] = -1;<br>
@@ -900,9 +902,7 @@<br>
bool foundSkip = false;<br>
if (m_param->analysisMode == X265_ANALYSIS_LOAD)<br>
{<br>
- uint8_t* reuseDepth = &m_reuseInterDataCTU->depth[parentCTU.m_cuAddr * parentCTU.m_numPartitions];<br>
- uint8_t* reuseModes = &m_reuseInterDataCTU->modes[parentCTU.m_cuAddr * parentCTU.m_numPartitions];<br>
- if (mightNotSplit && depth == reuseDepth[cuGeom.absPartIdx] && reuseModes[cuGeom.absPartIdx] == MODE_SKIP)<br>
+ if (mightNotSplit && depth == m_reuseDepth[cuGeom.absPartIdx] && m_reuseModes[cuGeom.absPartIdx] == MODE_SKIP)<br>
{<br>
md.pred[PRED_MERGE].cu.initSubCU(parentCTU, cuGeom, qp);<br>
md.pred[PRED_SKIP].cu.initSubCU(parentCTU, cuGeom, qp);<br>
diff -r 67b63012de82 -r 8999a30d29f4 source/encoder/analysis.h<br>
--- a/source/encoder/analysis.h Tue Mar 08 11:14:52 2016 +0530<br>
+++ b/source/encoder/analysis.h Tue Mar 08 18:30:15 2016 +0530<br>
@@ -117,9 +117,11 @@<br>
Mode& compressCTU(CUData& ctu, Frame& frame, const CUGeom& cuGeom, const Entropy& initialContext);<br>
<br>
protected:<br>
- /* Analysis data for load/save modes, keeps getting incremented as CTU analysis proceeds and data is consumed or read */<br>
+ /* Analysis data for save/load mode, writes/reads data based on absPartIdx */<br>
analysis_inter_data* m_reuseInterDataCTU;<br>
int32_t* m_reuseRef;<br>
+ uint8_t* m_reuseDepth;<br>
+ uint8_t* m_reuseModes;<br>
<br>
uint32_t m_splitRefIdx[4];<br>
uint64_t* cacheCost;<br>
diff -r 67b63012de82 -r 8999a30d29f4 source/encoder/encoder.cpp<br>
--- a/source/encoder/encoder.cpp Tue Mar 08 11:14:52 2016 +0530<br>
+++ b/source/encoder/encoder.cpp Tue Mar 08 18:30:15 2016 +0530<br>
@@ -2122,10 +2122,8 @@<br>
absPartIdx += ctu->m_numPartitions >> (depth * 2);<br>
}<br>
}<br>
-<br>
}<br>
<br>
-<br>
/* calculate frameRecordSize */<br>
analysis->frameRecordSize = sizeof(analysis->frameRecordSize) + sizeof(depthBytes) + sizeof(analysis->poc) + sizeof(analysis->sliceType) +<br>
sizeof(analysis->numCUsInFrame) + sizeof(analysis->numPartitions) + sizeof(analysis->bScenecut) + sizeof(analysis->satdCost);<br></div></div>
_______________________________________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org" target="_blank">x265-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x265-devel" rel="noreferrer" target="_blank">https://mailman.videolan.org/listinfo/x265-devel</a><span class="HOEnZb"><font color="#888888"><br>
</font></span></blockquote></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div><div dir="ltr"><div><div>Deepthi Nandakumar<br></div>Engineering Manager, x265<br></div>Multicoreware, Inc<br></div></div>
</font></span></div></div>
<br>_______________________________________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org">x265-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x265-devel" rel="noreferrer" target="_blank">https://mailman.videolan.org/listinfo/x265-devel</a><br>
<br></blockquote></div><br></div>