WebP-Mux (RIFF based container) framework (original) (raw)

Vikas Arora

unread,

Oct 3, 2011, 1:10:16 PM10/3/11

to webp-d...@webmproject.org, Pascal Massimino, urvang, Vikas Arora

Hi,

The initial launch of WebP focused on demonstrating a smaller file size. Since then we’ve clearly heard the community ask for more than just that - a full featured image codec that can serve as a true alternative for your needs on the web. Today we are happy to announce a framework for adding such features through a RIFF based container, WebP-Mux. A draft specification and initial implementation of the following features - Color profile, XMP metadata, Animation & Tiling - has been pushed to the chromium Git repository. Following are the detailed contents included in this push:

The container specification is meant to be flexible and is still evolving. We hope this scheme will allow us to support more features like Thumbnails, 3D (Stereoscopic) and transparency (alpha) in subsequent iterations. Early-adopters are encouraged to play with the command line tool. Of course, nothing is carved in stone (not even the chunk names!) so please voice your comments. Afterward, the next step will be to implement an intermediate decoding layer to actually handle the new features. By connecting together the webp-mux library and the core webp-codec, it will be easy to handle seamlessly animations, tiling, etc.

Regards,
Vikas & Urvang

Vikas Arora

unread,

Jan 2, 2012, 10:32:20 PM1/2/12

to Yoav, webp-d...@webmproject.org

+cc: webp-discuss

Yoav -

On Mon, Jan 2, 2012 at 8:23 PM, Yoav <yoav.w...@gmail.com> wrote:

Hi,

I have a few questions if I may:

Sure

Is WebP-mux already supported in some current browser? (Chrome Dev
channel/nightlies?)

No, WebP-Mux is currently not supported in Chrome. WebP-Mux & Alpha features are available in the Git code repo and we are planning to roll out next version (V0.1.4) for libwebp with these features this month. We expect Chrome to pick this latest version (0.1.4) in another few (2-3) months.

Are there some content samples that demonstrate the various features?

Even though there's no client implementation (like Chrome) to exhibit these features, one can use webpmux binary to create Mux container with these features. File mux.h have documentation on the Mux (read/write) APIs.

Also, why is there a need to add an alpha channel in WebP-mux and as
part of the WebP codec?

Alpha support was initially added (under EXPERIMENTAL flag) as a part of WebP codec. This initial design had some limitations and would not work for big images (WxH).

The latest code (git repo) have Alpha represented as a separate RIFF chunk in WebP-Mux container and doesn't have any such limitation. We have removed the EXPERIMENTAL Alpha supported within WebP codec.

Regards,

Vikas

Thanks in advance,
Yoav

On Oct 3 2011, 6:10 pm, Vikas Arora <vik...@google.com> wrote:
> Hi,
>
> The initial launch of WebP focused on demonstrating a smaller file size.
> Since then we’ve clearly heard the community ask for more than just that - a
> full featured image codec that can serve as a true alternative for your
> needs on the web. Today we are happy to announce a framework for adding such
> features through a RIFF based container, WebP-Mux. A draft specification and
> initial implementation of the following features - Color profile, XMP
> metadata, Animation & Tiling - has been pushed to the chromium Git
> repository. Following are the detailed contents included in this push:
>

> - A working draft of the WebP-Mux container specification (defining RIFF

> chunks for these features) is provided in the 'docs/' folder.

> - WebP-Mux code library to create RIFF container object for implementing
> these features.
> - Color-profile & XMP Metadata are supported as in other popular image

> formats. The data for Color-profile & Metadata are represented
> as separate
> RIFF chunks and handled as transparent binary blob by the Mux library.
> Appropriate Mux API can be used to associate these to container
> corresponding to the VP8 (WebP) data image.

> - Animated images are supported as in other popular image formats like

> GIF. The individual animation frames along with intra-frame
> duration & LOOP
> control variable are represented as separate RIFF chunks. Appropriate Mux
> API can be used to construct the container by adding individual animation
> frames. The corresponding animation player (browser or any other
> client App)
> needs to extract individual animation frames and adhere to the
> intra-frame
> duration & LOOP semantics.

> - Tiling: A single VP8 data-frame has an inherent limitation for width

> or height of 2^14 pixels and a 512kB limit on the size of first
> compressed
> partition. To support larger images, we support images that are
> composed of
> multiple tiles, each encoded as a separate VP8 frame. All tiles logically
> represent a single image and they have common metadata, color profile etc.

> - README.mux file containing reference pseudo-code example for using
> WebP-Mux library.
> - A reference command line tool ('examples/webpmux') for manipulating the

Yoav

unread,

Jan 3, 2012, 3:10:44 AM1/3/12

to WebP Discussion

One more question related to the Android support of WebP. (I'm not
sure it is the right forum to ask, but I'll ask anyway :) )
Will future WebP versions be backported to Android browser that
currently support WebP, such as Android 4.0?

Thanks,
Yoav

On Jan 3, 4:32 am, Vikas Arora <vik...@google.com> wrote:
> +cc: webp-discuss
>
> Yoav -
>

Vikas Arora

unread,

Jan 3, 2012, 3:24:37 AM1/3/12

to webp-d...@webmproject.org

On Tue, Jan 3, 2012 at 1:40 PM, Yoav <yoav.w...@gmail.com> wrote:

One more question related to the Android support of WebP. (I'm not
sure it is the right forum to ask, but I'll ask anyway :) )
Will future WebP versions be backported to Android browser that
currently support WebP, such as Android 4.0?

The new features like Alpha, Lossless, Color-profile may not be back-ported to current Android version (4.0).

pik...@gmail.com

unread,

Sep 2, 2013, 7:32:41 AM9/2/13

to webp-d...@webmproject.org, Yoav

Hi thanks for all the answers on this matter, may I ask about the status?

It's been a year and a half of the last answer.

Does chrome support webpmux images?

Is there any page with examples to try it?

Could you give me an example of muxing 2 files for later usage like this (sprite stack):

Thanks in advance.