flaccidware / webm

Automatically exported from code.google.com/p/webm
0 stars 0 forks source link

4x8/8x4 scalable reference blocks cannot be reconstructed as 8x4/4x8 blocks, but only as 4x4 blocks. #1013

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
The reason for this is that we scale the initial (topleft pixel) motion vector 
using a 14-bit (REF_SCALE_SHIFT) scaling factor 
(vp9/common/vp9_scale.[ch]:vp9_scale_mv()). However, inside the prediction/MC 
code, we use only 4-bit stepping factors (x/y_step_q4). Thus, if you predict a 
4x8 or 8x4 block in two 4x4 blocks or as one 4x8/8x4 block, the results at the 
4x4 block boundary will be different because the precision/rounding is 
different.

I think the code that splits 4x8/8x4 blocks in individual 4x4 blocks should be 
rewritten to handle each block as a single unit, just as it does (logically) 
for larger (>=8x8) blocks with h/v partitions.

Original issue reported on code.google.com by rsbul...@gmail.com on 4 Jun 2015 at 11:45

GoogleCodeExporter commented 8 years ago

Original comment by fgalli...@google.com on 18 Jun 2015 at 10:11

GoogleCodeExporter commented 8 years ago
To be fixed in VP10

Original comment by ya...@google.com on 18 Jun 2015 at 11:46

GoogleCodeExporter commented 8 years ago

Original comment by ya...@google.com on 10 Jul 2015 at 11:10

GoogleCodeExporter commented 8 years ago

Original comment by ya...@google.com on 14 Jul 2015 at 4:42

GoogleCodeExporter commented 8 years ago

Original comment by ya...@google.com on 12 Aug 2015 at 10:06