<div dir="rtl"><div>I have the same problem. I need to slice the picture before&nbsp;streaming.</div>
<div>what is the lose if i slice the picture some way before encding and run x instances of the decoder on each slice?<br><br>&nbsp;</div>
<div><span class="gmail_quote">2007/11/16, List, Peter &lt;<a href="mailto:Peter.List@t-systems.com">Peter.List@t-systems.com</a>&gt;:</span>
<blockquote class="gmail_quote" style="BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 1ex; PADDING-LEFT: 1ex; MARGIN: 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Dear Mojtaba,<br>Thank you for you detailed explanation.<br>Regards
<br>Peter<br><br><br><br>&gt; &gt; I&#39;m sorry; it seems I don&#39;t really get it...<br>&gt; &gt; How do you guarantee that &quot;prediction between slices is not done&quot;<br>&gt; &gt; (Mojtaba) when &quot;Current x264 doesn&#39;t support slices at all&quot; (Loren)
<br>&gt; &gt;<br>&gt;<br>&gt; Hello Peter,<br>&gt;&nbsp;&nbsp; I believe Loren means that the current x264 that you can get from<br>&gt; svn right now puts one frame into one NAL. It does NOT split it into<br>&gt; multiple slices.<br>
&gt;&nbsp;&nbsp; Now how does the patch (which is not in svn) guarantee no prediction<br>&gt; from MB outside of slice? Take a look at x264_macroblock_cache_load()<br>&gt; method in /common/macroblock.c. This function is called for each MB
<br>&gt; (from x264_slice_write() of encoder.c) and it sets the MB&#39;s<br>i_neighbour<br>&gt; variable. It does so by taking into account the slice&#39;s first mb<br>&gt; variable. So the top MB is not available if its index is less than
<br>&gt; that slice&#39;s first MB. Same for left, top left, etc. So the patch in<br>of<br>&gt; itself does not guarantee that prediction is not done from outside of<br>&gt; the slice BUT that is because the x264 encoder code as is provides
<br>that<br>&gt; guarantee.<br>&gt;<br>&gt; &gt; How is this patch working...<br>&gt; &gt; The process starts with x264 producing macroblocks until one packet<br>is<br>&gt; &gt; full, right? Than your patch produces a slice header and completes
<br>one<br>&gt; &gt; NALU.<br>&gt; &gt; If x264 then continues, how does it know that it needs to produce a<br>new<br>&gt; &gt; slice? Does the x264code still have all the necessary variables and<br>&gt; &gt; methods to obey the H264 slice restrictions, so that your patch can
<br>&gt; &gt; feedback the fact, that a new slice is to be coded into the original<br>&gt; &gt; x264 code?<br>&gt;&nbsp;&nbsp; I don&#39;t understand exactly what you are asking. The patch lets x264<br>&gt; encode until the bitsteam size exceeds a given value (note that this
<br>&gt; does NOT provide any guarantee on maximum size), then it ends this<br>&gt; slice and sets up all the variables for a new slice to begin. If you<br>&gt; look at the patch, this part is fairly straight forward.<br>
&gt;<br>&gt; &gt; If that is true what else could we want?? Why is Loren saying then:<br>&gt; &gt;<br>&gt; &gt; &gt;&gt; Current x264 doesn&#39;t support slices at all. It will support<br>&gt; &gt; horizontal<br>&gt; &gt; &gt;&gt; slices when I get around to merging that patch.
<br>&gt; &gt;<br>&gt;&nbsp;&nbsp;I believe Loren means that the current x264 code resident in the svn<br>&gt; does not support slices until he merges the patch I have been<br>referring<br>&gt; to into the svn code. There is nothing in x264 that inherently
<br>prevents<br>&gt; support for multiple slice per frame feature.<br>&gt;<br>&gt; &gt;<br>&gt; &gt; If that is true, we have no problem, because slice headers (at least<br>&gt; &gt; H264-slice headers) DO HAVE all the information in them we need.
<br>&gt; &gt;<br>&gt; Right. As long as frame level things like width and height don&#39;t<br>change<br>&gt; and you don&#39;t lose an SPS and PPS (which are NALs) containing that<br>&gt; change in transmission, decoder DOES have all the information to
<br>decode<br>&gt; an independent NAL. Even if previous NALs were lost.<br>&gt;<br>&gt; &gt; To me that only makes sense if a NALU is equivalent to a slice in<br>the<br>&gt; &gt; H264-definition (or multiple complete slices, or parts of slices,
<br>that<br>&gt; &gt; become complete with multiple complete NALU&#39;s).<br>&gt; &gt; Is that the case???<br>&gt;&nbsp;&nbsp;I believe so. Each NAL represents a slice in a frame according to<br>&gt; H264-definition.<br>&gt;<br>&gt; Mojtaba
<br>&gt; _______________________________________________<br>&gt; x264-devel mailing list<br>&gt; <a href="mailto:x264-devel@videolan.org">x264-devel@videolan.org</a><br>&gt; <a href="http://mailman.videolan.org/listinfo/x264-devel">
http://mailman.videolan.org/listinfo/x264-devel</a><br>_______________________________________________<br>x264-devel mailing list<br><a href="mailto:x264-devel@videolan.org">x264-devel@videolan.org</a><br><a href="http://mailman.videolan.org/listinfo/x264-devel">
http://mailman.videolan.org/listinfo/x264-devel</a><br></blockquote></div><br></div>