Indian Runner Duck Release Candidate

616 views
Skip to first unread message

Johann Koenig

unread,
Mar 24, 2015, 11:35:56 AM3/24/15
to codec...@webmproject.org

libvpx is long overdue for a release. We will be making 1.4.0 available soon and in preparation are announcing a release candidate in the indianrunnerduck branch. Much like the Indian Runner Duck, the theme of release is less bugs, less bloat and more speed.


This release is ABI incompatible with 1.3.0. It drops the compatibility layer, requiring VPX_IMG_FMT_* instead of IMG_FMT_*, and adds several codec controls for VP9. Please test with your systems and let us know via the bug tracker[0] or the mailing list[1] if you encounter any issues. We hope to finalize the release soon.


What’s new?

  • Fixes a VP9 bitstream issue in Profile 1. This only affects non-YUV 4:2:0 files.

  • Significant algorithmic improvements to VP9 encoding, support for YUV 4:2:2 and 4:4:4 colorspaces as well as high bit depth (10 and 12 bit)

  • More functions are now optimized for VP9 encoding and decoding

  • VP9 encodes are faster with multithreaded encoding on by default. There is also an updated wiki page discussing recommended encode options[2].

  • VP9 decoder now has two multithreaded modes: tile based and frame based. The encoder now enables these by default to help ensure your encoded content will be able to take advantage of these modes.

  • 64bit support for ARM thanks to intrinsics instead of ARM assembly.


What’s not in this release?

  • Work is ongoing for VP9 realtime encoding and while much of it is available in this release we encourage people interested in this use-case to check out tip of tree for the latest improvements.

  • The API is finalized for multithreaded decoding and we encourage interested folks to experiment with it and report any issues you encounter.


You can get the code with:
$ git clone https://chromium.googlesource.com/webm/libvpx

$ cd libvpx

$ git checkout indianrunnerduck


[0] https://code.google.com/p/webm/issues/list

[1] https://groups.google.com/a/webmproject.org/forum/#!forum/codec-devel

[2] http://wiki.webmproject.org/ffmpeg/vp9-encoding-guide


Keith Winstein

unread,
Mar 24, 2015, 10:08:40 PM3/24/15
to codec...@webmproject.org
Awesome!

Is work still proceeding on the VP9 specification? It would be nice to update our research decoder to VP9, but I don't think we can attempt an independent implementation (even an upgrade from VP8) without a spec. http://blog.webmproject.org/2013/05/vp9-codec-nears-completion.html says "A draft bitstream specification is well underway," but there hasn't been a lot from the WebM project since this (May 2013). Would be great to have an update.

Thanks very much,
Keith Winstein
Stanford

Brendan Bolles

unread,
Mar 25, 2015, 2:49:54 PM3/25/15
to codec...@webmproject.org
On Mar 24, 2015, at 8:35 AM, 'Johann Koenig' via Codec Developers wrote:

> The API is finalized for multithreaded decoding and we encourage interested folks to experiment with it and report any issues you encounter.


Is this documented anywhere?


Brendan

Johann Koenig

unread,
Mar 25, 2015, 3:43:32 PM3/25/15
to codec...@webmproject.org
The most reliable source would be the test example in
libvpx/test/vp9_frame_parallel_test.cc

http://git.chromium.org/gitweb/?p=webm/libvpx.git;a=blob;f=test/vp9_frame_parallel_test.cc

James Zern

unread,
Mar 25, 2015, 3:46:50 PM3/25/15
to codec...@webmproject.org
On Wed, Mar 25, 2015 at 12:43 PM, 'Johann Koenig' via Codec Developers
<codec...@webmproject.org> wrote:
> On Wed, Mar 25, 2015 at 11:49 AM, Brendan Bolles <bre...@fnordware.com> wrote:
>> On Mar 24, 2015, at 8:35 AM, 'Johann Koenig' via Codec Developers wrote:
>> > The API is finalized for multithreaded decoding and we encourage interested folks to experiment with it and report any issues you encounter.
>>
>> Is this documented anywhere?
>
> The most reliable source would be the test example in
> libvpx/test/vp9_frame_parallel_test.cc
>

vpxdec supports frame-parallel decoding along with the tile-based
parallel decoding. The doxygen documentation should be updated on
webmproject.org once the release is finalized.

> http://git.chromium.org/gitweb/?p=webm/libvpx.git;a=blob;f=test/vp9_frame_parallel_test.cc
>

fnordware

unread,
Mar 25, 2015, 8:34:30 PM3/25/15
to codec...@webmproject.org
On Wednesday, March 25, 2015 at 12:46:50 PM UTC-7, James Zern wrote:
vpxdec supports frame-parallel decoding along with the tile-based
parallel decoding. The doxygen documentation should be updated on
webmproject.org once the release is finalized.


OK, after banging my head against this for a while, I think I found a bug. Use this input footage.

git checkout indianrunnerduck
./configure --enable-vp9-highbitdepth
make
./vpxdec -o output.yv12 --frame-parallel --threads=8 frame_parallel_test_10bit.webm

Only a small file is output when I run this. If I take out the --threads argument, a much bigger one is output as expected.


Brendan

Johann Koenig

unread,
Mar 25, 2015, 8:57:27 PM3/25/15
to codec...@webmproject.org
On Wed, Mar 25, 2015 at 5:34 PM, fnordware <fnor...@gmail.com> wrote:
> OK, after banging my head against this for a while, I think I found a bug

Indeed: that looks bad. I've filed
https://code.google.com/p/webm/issues/detail?id=981 for you.

Basil Mohamed Gohar

unread,
Mar 25, 2015, 9:23:25 PM3/25/15
to codec...@webmproject.org
On 03/24/2015 11:35 AM, 'Johann Koenig' via Codec Developers wrote:
> libvpx is long overdue for a release. We will be making 1.4.0 available
> soon and in preparation are announcing a release candidate in the
> indianrunnerduck branch. Much like the Indian Runner Duck
> <http://en.wikipedia.org/wiki/Indian_Runner_duck>, the theme of release
> is less bugs, less bloat and more speed.
>
>
> This release is ABI incompatible with 1.3.0. It drops the compatibility
> layer, requiring VPX_IMG_FMT_* instead of IMG_FMT_*, and adds several
> codec controls for VP9. Please test with your systems and let us know
> via the bug tracker[0] or the mailing list[1] if you encounter any
> issues. We hope to finalize the release soon.
>
>
> What’s new?
>
> *
>
> Fixes a VP9 bitstream issue in Profile 1. This only affects non-YUV
> 4:2:0 files.
>
> *
>
> Significant algorithmic improvements to VP9 encoding, support for
> YUV 4:2:2 and 4:4:4 colorspaces as well as high bit depth (10 and 12
> bit)
>
> *
>
> More functions are now optimized for VP9 encoding and decoding
>
> *
>
> VP9 encodes are faster with multithreaded encoding on by default.
> There is also an updated wiki page discussing recommended encode
> options[2].
>
> *
>
> VP9 decoder now has two multithreaded modes: tile based and frame
> based. The encoder now enables these by default to help ensure your
> encoded content will be able to take advantage of these modes.
>
> *
>
> 64bit support for ARM thanks to intrinsics instead of ARM assembly.
>
>
> What’s not in this release?
>
> *
>
> Work is ongoing for VP9 realtime encoding and while much of it is
> available in this release we encourage people interested in this
> use-case to check out tip of tree for the latest improvements.
>
> *
>
> The API is finalized for multithreaded decoding and we encourage
> interested folks to experiment with it and report any issues you
> encounter.
>
>
> You can get the code with:
> $ git clone https://chromium.googlesource.com/webm/libvpx
>
> $ cd libvpx
>
> $ git checkout indianrunnerduck
>
>
> [0] https://code.google.com/p/webm/issues/list
>
> [1] https://groups.google.com/a/webmproject.org/forum/#!forum/codec-devel
>
> [2] http://wiki.webmproject.org/ffmpeg/vp9-encoding-guide

Congrats on the RC! This has been a long time coming and I was planning
to inquire about this if I didn't see something soon. I also really
appreciate the Wiki update with the encoding guide - this should answer
a lot of questions and help those of us that like to us VP9 for most
things now.


--
Libre Video
http://librevideo.org
Reply all
Reply to author
Forward
0 new messages