WebP encoder Token Loop

34 views
Skip to first unread message

Pablo Enfedaque

unread,
Jun 16, 2016, 9:31:01 PM6/16/16
to WebP Discussion
Hello everyone,

I have been working on re-adapting some functions of libwebp lately and I have a simple question:
What is the difference between VP8EncLoop() and VP8EncTokenLoop()? In what cases the encoding engine uses one or another??

Thank you very much,

Pablo

Pascal Massimino

unread,
Jun 21, 2016, 10:29:16 AM6/21/16
to WebP Discussion
Hi Pablo,

On Fri, Jun 17, 2016 at 3:31 AM, Pablo Enfedaque <pablo.e...@gmail.com> wrote:
Hello everyone,

I have been working on re-adapting some functions of libwebp lately and I have a simple question:
What is the difference between VP8EncLoop() and VP8EncTokenLoop()? In what cases the encoding engine uses one or another??


when VP8EncTokenLoop() is available, the bitstream is not assembled directly. Instead, all the tokens are stored as a journal.
Their probabilities are not yet fixed. Once all the macroblocks are processed (and tokens generated), we can collect the final
probabilities and do the final assembly pass where all tokens are coded into a bitstream. This is more accurate (you have the
final exact probabilities handy), but more costly in memory.
Conversely, VP8EncLoop() generates the bitstream directly. It's fast and uses less memory, but also less accurate.

hope it helps,
skal/

Pablo Enfedaque

unread,
Jun 21, 2016, 5:47:48 PM6/21/16
to WebP Discussion
Perfect, much more clear now. Thank you very much!

Pablo
Reply all
Reply to author
Forward
0 new messages