[x265] [PATCH] SEI: remove recovery point SEI messages inserted every keyframe

deepthi at multicorewareinc.com deepthi at multicorewareinc.com
Thu Sep 3 06:34:44 CEST 2015


# HG changeset patch
# User Deepthi Nandakumar <deepthi at multicorewareinc.com>
# Date 1441254830 -19800
#      Thu Sep 03 10:03:50 2015 +0530
# Branch stable
# Node ID 3ef81a6d10159335be6fce39801b290cdb06da39
# Parent  575bf6d52e151f7ca950224a7f8fd032dfaf5619
SEI: remove recovery point SEI messages inserted every keyframe

It doesnt make sense to insert a recovery point SEI message for every keyframe.
An IDR is by definition a random access picture. Recovery point SEIs enable
CRA/BLA pictures, which x265 doesnt support as yet. Recovery Point SEIs are also
required when intra refresh is supported, to signal a point at which random
access is feasible.

diff -r 575bf6d52e15 -r 3ef81a6d1015 source/encoder/frameencoder.cpp
--- a/source/encoder/frameencoder.cpp	Wed Sep 02 14:03:56 2015 +0530
+++ b/source/encoder/frameencoder.cpp	Thu Sep 03 10:03:50 2015 +0530
@@ -418,25 +418,6 @@
 
             m_top->m_lastBPSEI = m_rce.encodeOrder;
         }
-
-        // The recovery point SEI message assists a decoder in determining when the decoding
-        // process will produce acceptable pictures for display after the decoder initiates
-        // random access. The m_recoveryPocCnt is in units of POC(picture order count) which
-        // means pictures encoded after the CRA but precede it in display order(leading) are
-        // implicitly discarded after a random access seek regardless of the value of
-        // m_recoveryPocCnt. Our encoder does not use references prior to the most recent CRA,
-        // so all pictures following the CRA in POC order are guaranteed to be displayable,
-        // so m_recoveryPocCnt is always 0.
-        SEIRecoveryPoint sei_recovery_point;
-        sei_recovery_point.m_recoveryPocCnt = 0;
-        sei_recovery_point.m_exactMatchingFlag = true;
-        sei_recovery_point.m_brokenLinkFlag = false;
-
-        m_bs.resetBits();
-        sei_recovery_point.write(m_bs, *slice->m_sps);
-        m_bs.writeByteAlignment();
-
-        m_nalList.serialize(NAL_UNIT_PREFIX_SEI, m_bs);
     }
 
     if (m_param->bEmitHRDSEI || !!m_param->interlaceMode)


More information about the x265-devel mailing list