vp9 level idx syntax

501 views
Skip to first unread message

peichuan zhang

unread,
Nov 19, 2019, 6:56:51 AM11/19/19
to Codec Developers
Hi there, I found that there is no syntax for level id in vp9 spec( vp9-bitstream-specification-v0.6-20160331-draft.pdf), but there is level defination both online(https://www.webmproject.org/vp9/levels/) and in libvpx. So, how does the level constraint work?

James Zern

unread,
Nov 20, 2019, 7:08:25 PM11/20/19
to codec...@webmproject.org
Hi,

On Tue, Nov 19, 2019 at 3:56 AM peichuan zhang
<peichuan...@gmail.com> wrote:
>
> Hi there, I found that there is no syntax for level id in vp9 spec( vp9-bitstream-specification-v0.6-20160331-draft.pdf), but there is level defination both online(https://www.webmproject.org/vp9/levels/) and in libvpx. So, how does the level constraint work?
>

Profiles and levels are just a description of the properties of a
particular bitstream, they don't affect the decode process, they're
used to constrain the bitstream at encode time. In vp9's case this
information is transmitted out of band, e.g. via the container or dash
manifest.

peichuan zhang

unread,
Nov 20, 2019, 9:17:56 PM11/20/19
to Codec Developers
Thank you, James

It's very good to know that the level information is transmitted out of band, and that's where I was confused about. But I think Profile and Level 
place constrants on both sides, the encoder and the decoder. The decoder needs to know if it's capable of decoding a particular bitstream
at certain level. That's why I was confused when I found there's no level syntax.
在 2019年11月21日星期四 UTC+8上午8:08:25,James Zern写道:

James Zern

unread,
Nov 21, 2019, 9:22:54 PM11/21/19
to codec...@webmproject.org
On Wed, Nov 20, 2019 at 6:17 PM peichuan zhang
<peichuan...@gmail.com> wrote:
>
> Thank you, James
>
> It's very good to know that the level information is transmitted out of band, and that's where I was confused about. But I think Profile and Level
> place constrants on both sides, the encoder and the decoder. The decoder needs to know if it's capable of decoding a particular bitstream
> at certain level. That's why I was confused when I found there's no level syntax.

You're right some decoders may want this information, which as noted
can be provided out of band. For inspecting files offline you can use
webm_info from libwebm [1] to calculate the level (use -vp9_level or
-all).

[1] https://chromium.googlesource.com/webm/libwebm/

> 在 2019年11月21日星期四 UTC+8上午8:08:25,James Zern写道:
>>
>> Hi,
>>
>> On Tue, Nov 19, 2019 at 3:56 AM peichuan zhang
>> <peichuan...@gmail.com> wrote:
>> >
>> > Hi there, I found that there is no syntax for level id in vp9 spec( vp9-bitstream-specification-v0.6-20160331-draft.pdf), but there is level defination both online(https://www.webmproject.org/vp9/levels/) and in libvpx. So, how does the level constraint work?
>> >
>>
>> Profiles and levels are just a description of the properties of a
>> particular bitstream, they don't affect the decode process, they're
>> used to constrain the bitstream at encode time. In vp9's case this
>> information is transmitted out of band, e.g. via the container or dash
>> manifest.
>
> --
> 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 view this discussion on the web visit https://groups.google.com/a/webmproject.org/d/msgid/codec-devel/640b9c3b-1f78-4005-9cd9-cfa01f47d7bd%40webmproject.org.
Reply all
Reply to author
Forward
0 new messages