<html>

<head>
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<meta name=Generator content="Microsoft Word 11 (filtered)">

<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
@page Section1
        {size:595.3pt 841.9pt;
        margin:70.85pt 69.6pt 2.0cm 69.6pt;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=DE link=blue vlink=purple>

<div class=Section1>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&nbsp;</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&nbsp;</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; -----Ursprüngliche Nachricht-----</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; Von: x264-devel-bounce@videolan.org [mailto:x264-devel-</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; bounce@videolan.org] Im Auftrag von Ryan Dalzell</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; Gesendet: Mittwoch, 17. Januar 2007 14:27</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; An: x264-devel@videolan.org</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; Betreff: [x264-devel] Re: AW: Re: Error Concealment</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; </span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; On Wednesday 17 January 2007 12:38, List, Peter wrote:</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; -----Ursprüngliche Nachricht-----</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; Von: x264-devel-bounce@videolan.org [mailto:x264-devel-</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; bounce@videolan.org] Im Auftrag von Ryan Dalzell</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; Gesendet: Mittwoch, 17. Januar 2007 13:28</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; An: x264-devel@videolan.org</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt;</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; Betreff: [x264-devel] Re: Error Concealment</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt;</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; On Wednesday 17 January 2007 09:53, Awadh Bihari wrote:</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; &gt; Please let me know how to detect the slice loss at
the decoder side.</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; &gt; It can only be detected if active sps/pps is not
equal to sps/pps ?</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; Due to arbitrary slice order and the fact that slice
headers do not</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; tell</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; you how many macroblocks are in the slice (and assuming
you are</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; receiving</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; the video data over a network), I believe that the only
way is to</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; actually</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; decode each slice and count the number of macroblocks
that it</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; contributes</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; to a picture. Then, after a suitable period of time to
allow late</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; packets</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; to arrive, if you still haven't decoded all the
macroblocks of a</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; picture</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; &gt; then you have lost some slices.</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt;</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; I dont see why you need to count anything. The slice always
tells you</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; where it's locates in the frame, so you just dump the
macroblocks to</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; that place. If you have arbitrary slice order, things get
more</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; difficult,</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; but in principle it should be the same. You should be able to
detect</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; when the next frame starts (by POC and/or frame_number). If
that happens</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; you can finalize the previous frame, and that's it. Am I
missing</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; something</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; &gt; here?</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; </span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; Yes, I think you are. Let's say that your receive six slices for a
picture</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; before a slice with a different POC arrives. Is this all the
slices for</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; that picture, or are there supposed to be seven and one got lost?
You</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-GB
style='font-size:10.0pt'>&gt; can't tell, short of decoding all the slices and
counting the number of</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; macroblocks provided.</span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt;color:black'>&nbsp;</span></font></p>

<p class=MsoPlainText><font size=2 color=blue face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;color:blue'>I was expecting that my network
interface would sort the packets for me. That may be naďve though. A delay
would be involved as well in this case, but I need a receiving buffer anyways,
right?</span></font></p>

<p class=MsoPlainText><font size=2 color=blue face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;color:blue'> </span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-GB
style='font-size:10.0pt'>&gt; This gets even worse when slices can be out of
order across picture</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-GB
style='font-size:10.0pt'>&gt; boundaries. I have searched high and low the spec
and I cannot find a</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; statement that precludes this from happening. (Of course, due to
the lack</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; of plain English in the spec it could be there.)</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-GB
style='font-size:10.0pt'>&nbsp;</span></font></p>

<p class=MsoPlainText><font size=2 color=blue face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;color:blue'>I will check if that is
possible, but I definitely do not believe it is!</span></font></p>

<p class=MsoPlainText><font size=2 color=blue face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;color:blue'>And yes, this standard is not that
easy to read </span></font><font color=blue face=Wingdings><span lang=EN-GB
style='font-family:Wingdings;color:blue'>J</span></font><font color=blue><span
lang=EN-GB style='color:blue'> </span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-GB
style='font-size:10.0pt'>&nbsp;</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; Also this could happen</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; when packets become reordered due to network jitter or taking
different</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; routes. Then you don't even know that you have the last slice you
are</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; going</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; to get when the POC changes. So you have to wait a while to see if
there</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; are more packets to arrive containing slices for the current
picture.</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; </span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; IMO, it's pretty horrible </span></font></p>

<p class=MsoPlainText><font size=2 color=blue face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;color:blue'>&nbsp;</span></font></p>

<p class=MsoPlainText><font size=2 color=blue face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;color:blue'>I have heard a lot of different
things about FMO (Flexible Macroblock Ordering). Some said it was absolutely easy
to implement (on PC: simply have more than one input-buffer, one for every
slice-group. Then, while decoding from left to right, top to bottom simply
switch to the right buffer). Some others said it was horrible. </span></font></p>

<p class=MsoPlainText><font size=2 color=blue face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;color:blue'>Could you comment? </span></font></p>

<p class=MsoPlainText><font size=2 color=blue face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;color:blue'>&nbsp;</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-GB
style='font-size:10.0pt'>&gt; ASO is a good example of a little extra flexibility
with not much real </span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-GB
style='font-size:10.0pt'>&gt; value but with a high cost in real world systems.</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-GB
style='font-size:10.0pt'>&nbsp;</span></font></p>

<p class=MsoPlainText><font size=2 color=black face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;color:black'>&nbsp;</span></font></p>

</div>

</body>

</html>