Hi,
On Fri, Feb 1, 2019 at 12:29 AM peichuan zhang
<peichuan...@gmail.com> wrote:
>
> Is frame-level parallel encoding feasible for VP9?
> As far as I can see is that if I enable 'frame_parallel_decoding_mode' and manage the frame context properly, it should work.
>
> Anyone has done this before?
>
ffmpeg's vp9 decoder implements frame parallel decoding. It will work
with and without frame_parallel_decoding_mode set, but won't be bit
exact if it is false.
Hi,On Fri, Feb 1, 2019 at 3:44 AM 'James Zern' via Codec Developers <codec...@webmproject.org> wrote:Hi,
On Fri, Feb 1, 2019 at 12:29 AM peichuan zhang
<peichuan...@gmail.com> wrote:
>
> Is frame-level parallel encoding feasible for VP9?
> As far as I can see is that if I enable 'frame_parallel_decoding_mode' and manage the frame context properly, it should work.
>
> Anyone has done this before?
>
ffmpeg's vp9 decoder implements frame parallel decoding. It will work
with and without frame_parallel_decoding_mode set, but won't be bit
exact if it is false.Decoding (with ffvp9) *is* bit-exact, even if frame_parallel_decoding_mode is set and frame-multithreaded decoding is used.
As for frame-multithreaded encoding, libvpx does not support that. There's commercial VP9 encoders that support it.Ronald
--
You received this message because you are subscribed to the Google Groups "Codec Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to codec-devel...@webmproject.org.
To post to this group, send email to codec...@webmproject.org.
Visit this group at https://groups.google.com/a/webmproject.org/group/codec-devel/.
For more options, visit https://groups.google.com/a/webmproject.org/d/optout.
Since vp9 updates context at the frame level, it seems like frame-multithreaded encoding would suffer a great loss.
As for decoding, I don't know if I got it wrong or something, but it really confused me. If the encoder refreshed the frame context after encoding one frame, then how could parallel decoding be possible?
Hi,On Fri, Feb 1, 2019 at 9:19 PM peichuan zhang <peichuan...@gmail.com> wrote:Since vp9 updates context at the frame level, it seems like frame-multithreaded encoding would suffer a great loss.That is not what we see.
As for decoding, I don't know if I got it wrong or something, but it really confused me. If the encoder refreshed the frame context after encoding one frame, then how could parallel decoding be possible?FFmpeg has one pass for symbol parsing, then it signals the next frame thread to starts its symbol parsing, while a second pass in the first thread to do reconstruction (so, yes: 2-pass decoding!). Since reconstruction takes significantly more time than symbol parsing on regular-bitrate content, this gives sufficient concurrency to be worth it (since various frames can be working on their reconstruction pass at the same time). It doesn't scale exactly as well per thread as without the symbol context dependency, but it typically will saturate a couple of cores, which is enough for our use cases.
Ronald