Yes, I know encoder design isn't specified. I just wondered if there would be problems if blocks overlapped after being motion-shifted. Wouldn't a block that came before (raster-wise) another be processed by the decoder first, in which case the encoder would need to take that into account? Maybe it doesn't matter, I'm just wondering. I also wonder if a full 1/4 pel motion search, like within x pixels in all directions, would be "good" enough, at least a lot better than diamond, to the point where the "ideal" one found is indeed the best.
On Thursday, February 23, 2017 at 2:30:15 PM UTC-5, Pieter Kapsenberg wrote:
The way an encoder works is not defined by the specification. As long as the bitstream that you end up creating is legal, you can do whatever you want.
In general, multithreading is a good way to parallelize motion search. But once you start to write the bitstream, you may find that for some blocks a (slightly) different vector may actually result in better overall compression than the "ideal" one found by motion search.
Is there any particular order that VP9 blocks must be motion-searched? I suspect they must be evaluated one at a time in raster order but I'm not sure. If there is no order, does that mean that a multicore encoder could work on a few blocks at a time, or would priority problems arise when the evaluated block shifts overlap?
--
You received this message because you are subscribed to the Google Groups "Codec Developers" group.