<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  </head>
  <body text="#000000" bgcolor="#ffffff">
    Hi,<br>
    &nbsp;I have few questions on the specification.<br>
    <br>
    * Just to understand : <br>
    &nbsp;&nbsp;&nbsp; - What is the interest of super blocks ? Is it to save place
    when recording coded block flags (7.3) ?<br>
    &nbsp;&nbsp;&nbsp; - What is the advantage of using the coded order ? it is more
    often easier with raster order (especially to find neighbor in 7.8.1
    for exemple). Is it to simplify the correspondence between block,
    macro block and super block ?<br>
    <br>
    * A problem with motion vectors :<br>
    &nbsp;&nbsp;&nbsp; - How motion vector are decoded ?<br>
    &nbsp;&nbsp;&nbsp; In the specification, it is said :<br>
    &#8220;Each component can take on integer values from &#8722;31 . . . 31,
    inclusive, at
<br>
    half-pixel resolution, i.e. &#8722;15.5 . . . 15.5 pixels in the luma
    plane. For each sub-
<br>
    sampled axis in the chroma planes, the corresponding motion vector
    component
<br>
    is interpreted as being at quarter-pixel resolution, i.e. &#8722;7.75 . .
    . 7.75 pixels. The
<br>
    precise details of how these vectors are used to compute predictors
    for each
<br>
    block are described in Section 7.9.1.
&#8221;<br>
    &nbsp;&nbsp;&nbsp; But nowhere, decoded values are divided by two. Algorithm in
    7.5.1 gives MVX and MVY in -31..31. Algorithm in section 7.5.2 keep
    these values. In section 7.9.1.3, the use of MVX2 and MVY2 seem to
    be the solution but in algorithm 7.9.4, these two variables are
    initialized with the same value :<br>
    B. Assign MVX the value
<br>
    |MVECTS[bi ]x | &#8727; sign(MVECTS[bi ]x ).
<br>
    C. Assign MVY the value
<br>
    |MVECTS[bi ]y | &#8727; sign(MVECTS[bi ]y ).
<br>
    D. Assign MVX2 the value
<br>
    |MVECTS[bi ]x | &#8727; sign(MVECTS[bi ]x ).
<br>
    E. Assign MVY2 the value
<br>
    |MVECTS[bi ]y | &#8727; sign(MVECTS[bi ]y ).<br>
    As MVECTS are integer, floor and ciel functions give the same
    result. <br>
    <br>
    I do not understand. Maybe MVECTS[bi ] should be replaced by
    MVECTS[bi ] /2 in all these expressions ?<br>
    <br>
    * Few typos :<br>
    <br>
    in section 7.8.1<br>
    Variables used :<br>
    &nbsp;&nbsp;&nbsp; PDIV (...) The valud -&gt; the valu*e*<br>
    &nbsp;&nbsp;&nbsp; mbi-&gt;mb*j* (...) The index ... block bj<br>
    &nbsp;&nbsp;&nbsp; 7. If block bi is not along the *the* bottom<br>
    <br>
    in table 7.47 :<br>
    p[0] p[1] p[2] p[3] w[3] w[1] w[2] w[3] -&gt; p[0] p[1] p[2] p[3]
    w[*0*] w[1] w[2] w[3]<br>
    <br>
    Regards
    <br>
    J.F.
    <br>
    <style type="text/css">p { margin-bottom: 0.21cm; }</style>
  </body>
</html>