<div dir="ltr"><div><div><div>So, x265 defines a keyframe as an IDR frame (closed-gop), and all I-frames in an open-gop are not keyframes. <br><br></div>A CRA frame is one where the frames following an I frame in display order can only reference frames that follow CRA in encode order. However, there could be frames that follow a CRA in encode order but precede the CRA in display order. <br><br></div>In increasing order of strictness, <br>open GOP I frames -----> CRA frames ------> closed GOP IDR frames. <br><br></div>x265 does not support CRA frames as of now, and there is no reason to send a recovery point SEI for very IDR frame. These are by definition random access points.<br><div><div><div><br><br></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 3, 2015 at 10:16 AM, Steve Borho <span dir="ltr"><<a href="mailto:steve@borho.org" target="_blank">steve@borho.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 09/03, <a href="mailto:deepthi@multicorewareinc.com">deepthi@multicorewareinc.com</a> wrote:<br>
> # HG changeset patch<br>
> # User Deepthi Nandakumar <<a href="mailto:deepthi@multicorewareinc.com">deepthi@multicorewareinc.com</a>><br>
> # Date 1441254830 -19800<br>
> #      Thu Sep 03 10:03:50 2015 +0530<br>
> # Branch stable<br>
> # Node ID 3ef81a6d10159335be6fce39801b290cdb06da39<br>
> # Parent  575bf6d52e151f7ca950224a7f8fd032dfaf5619<br>
> SEI: remove recovery point SEI messages inserted every keyframe<br>
><br>
> It doesnt make sense to insert a recovery point SEI message for every keyframe.<br>
> An IDR is by definition a random access picture. Recovery point SEIs enable<br>
> CRA/BLA pictures, which x265 doesnt support as yet. Recovery Point SEIs are also<br>
> required when intra refresh is supported, to signal a point at which random<br>
> access is feasible.<br>
<br>
</span>I was under the impression that an open-gop keyframe was the same as<br>
CRA?<br>
<div><div class="h5"><br>
> diff -r 575bf6d52e15 -r 3ef81a6d1015 source/encoder/frameencoder.cpp<br>
> --- a/source/encoder/frameencoder.cpp Wed Sep 02 14:03:56 2015 +0530<br>
> +++ b/source/encoder/frameencoder.cpp Thu Sep 03 10:03:50 2015 +0530<br>
> @@ -418,25 +418,6 @@<br>
><br>
>              m_top->m_lastBPSEI = m_rce.encodeOrder;<br>
>          }<br>
> -<br>
> -        // The recovery point SEI message assists a decoder in determining when the decoding<br>
> -        // process will produce acceptable pictures for display after the decoder initiates<br>
> -        // random access. The m_recoveryPocCnt is in units of POC(picture order count) which<br>
> -        // means pictures encoded after the CRA but precede it in display order(leading) are<br>
> -        // implicitly discarded after a random access seek regardless of the value of<br>
> -        // m_recoveryPocCnt. Our encoder does not use references prior to the most recent CRA,<br>
> -        // so all pictures following the CRA in POC order are guaranteed to be displayable,<br>
> -        // so m_recoveryPocCnt is always 0.<br>
> -        SEIRecoveryPoint sei_recovery_point;<br>
> -        sei_recovery_point.m_recoveryPocCnt = 0;<br>
> -        sei_recovery_point.m_exactMatchingFlag = true;<br>
> -        sei_recovery_point.m_brokenLinkFlag = false;<br>
> -<br>
> -        m_bs.resetBits();<br>
> -        sei_recovery_point.write(m_bs, *slice->m_sps);<br>
> -        m_bs.writeByteAlignment();<br>
> -<br>
> -        m_nalList.serialize(NAL_UNIT_PREFIX_SEI, m_bs);<br>
>      }<br>
><br>
>      if (m_param->bEmitHRDSEI || !!m_param->interlaceMode)<br>
</div></div>> _______________________________________________<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>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Steve Borho<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>
</font></span></blockquote></div><br></div>