[theora-dev] Various typo in spec

Jonathan Fabrizio jonathan.fabrizio at lrde.epita.fr
Thu Mar 24 07:24:32 PDT 2011


Hi,
  I have few questions on the specification.

* Just to understand :
     - What is the interest of super blocks ? Is it to save place when 
recording coded block flags (7.3) ?
     - 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 ?

* A problem with motion vectors :
     - How motion vector are decoded ?
     In the specification, it is said :
"Each component can take on integer values from -31 . . . 31, inclusive, at
half-pixel resolution, i.e. -15.5 . . . 15.5 pixels in the luma plane. 
For each sub-
sampled axis in the chroma planes, the corresponding motion vector 
component
is interpreted as being at quarter-pixel resolution, i.e. -7.75 . . . 
7.75 pixels. The
precise details of how these vectors are used to compute predictors for 
each
block are described in Section 7.9.1. "
     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 :
B. Assign MVX the value
|MVECTS[bi ]x | ? sign(MVECTS[bi ]x ).
C. Assign MVY the value
|MVECTS[bi ]y | ? sign(MVECTS[bi ]y ).
D. Assign MVX2 the value
|MVECTS[bi ]x | ? sign(MVECTS[bi ]x ).
E. Assign MVY2 the value
|MVECTS[bi ]y | ? sign(MVECTS[bi ]y ).
As MVECTS are integer, floor and ciel functions give the same result.

I do not understand. Maybe MVECTS[bi ] should be replaced by MVECTS[bi ] 
/2 in all these expressions ?

* Few typos :

in section 7.8.1
Variables used :
     PDIV (...) The valud -> the valu*e*
     mbi->mb*j* (...) The index ... block bj
     7. If block bi is not along the *the* bottom

in table 7.47 :
p[0] p[1] p[2] p[3] w[3] w[1] w[2] w[3] -> p[0] p[1] p[2] p[3] w[*0*] 
w[1] w[2] w[3]

Regards
J.F.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/theora-dev/attachments/20110324/4e345c07/attachment.htm 


More information about the theora-dev mailing list