[x264-devel] Google detailed test results for VP8 to H.264 comparisions

Sergio Garcia Murillo sergio.garcia.murillo at gmail.com
Wed Mar 13 18:14:03 CET 2013


El 13/03/2013 18:02, Jason Garrett-Glaser escribió:
> On Wed, Mar 13, 2013 at 3:39 AM, Sergio Garcia Murillo
> <sergio.garcia.murillo at gmail.com> wrote:
>>        --profile baseline
> Do you seriously expect Google to be honest here?  I'm only surprised
> that they made cheating so obvious (e.g. outright selecting
> non-default options that make x264 40-50% worse).
>

Obviously, I didn't expect it. That's why I posted it here ;)

I believe it would be good to fine tune the x264 parameters and provide 
the real results for x264. On the other hand, to be also fair with 
google, the comparation has been raised on the context of WebRTC, and 
the supporters of h264 as mandatory codec set the minimum profile to to 
baseline:

http://tools.ietf.org/id/draft-burman-rtcweb-h264-proposal-01.html

H.264/AVC 
<http://tools.ietf.org/id/draft-burman-rtcweb-h264-proposal-01.html#H264>[H264]has 
a large number of encoding tools, grouped in functionally reasonable 
toolsets by codec profiles, and a wide range of possible implementation 
capability and complexity, specified by codec levels. It is typically 
not reasonable for H.264 encoders and decoders to implement maximum 
complexity capability for all of the available tools. Thus, any H.264 
decoder implementation is typically not able to receive all possible 
H.264 streams. Which streams can be received is described by what 
profile and level the decoder conforms to. Any video stream produced by 
an H.264 encoder must keep within the limits defined by the intended 
receiving decoder's profile and level to ensure that the video stream 
can be correctly decoded.

Profiles can be "ranked" in terms of the amount of tools included, such 
that some profiles with few tools are "lower" than profiles with more 
tools. However, profiles are typically not strictly supersets or subsets 
of each other in terms of which tools are used, so a strict ranking 
cannot be defined. It is also in some cases possible to express 
compliance to the common subset of tools between two different profiles. 
This is fairly well described in[RFC6184] 
<http://tools.ietf.org/id/draft-burman-rtcweb-h264-proposal-01.html#RFC6184>.

When choosing a Mandatory To Implement codec, it is desirable to use a 
profile and level that is as widely supported as possible. Therefore, 
H.264 Constrained Baseline Profile Level 1.2 MUST be supported as 
Mandatory To Implement video codec. This is possible to support with 
significant margin inhardware devices 
<http://tools.ietf.org/id/draft-burman-rtcweb-h264-proposal-01.html#sec-implementations>[sec-implementations]and 
should likely also not cause performance problems for software-only 
implementations. All Level definitions (Annex A of[H264] 
<http://tools.ietf.org/id/draft-burman-rtcweb-h264-proposal-01.html#H264>) 
include a maximum framesize in macroblocks (16*16 pixels) as well as a 
maximum processing requirement in macroblocks per second. That number of 
macroblocks per second can be almost freely distributed between 
framesize and framerate. The maximum framesize for Level 1.2 corresponds 
to 352*288 pixels (CIF). Examples of allowed framesize and framerate 
combinations for Level 1.2 are CIF (352*288 pixels) at 15 Hz, QVGA 
(320*240 pixels) at 20 Hz, and QCIF (176*144 pixels) at 60 Hz.

Recognizing that while the above profile and level will likely be 
possible to implement in any device, it is also likely not sufficient 
for applications that require higher quality. Therefore, it is 
RECOMMENDED that devices and implementations that can meet the 
additional requirements also implement at least H.264 Constrained High 
Profile Level 1.3, extended to support 720p resolution at 30 Hz 
framerate, but the extension MAY alternatively be made from any Level 
higher than 1.3.

Note that the lowest non-extended Level that support 720p30 is Level 
3.1, but fully supporting Level 3.1 also requires fairly high bitrate, 
large buffers, and other encoding parameters included in that Level 
definition that are likely not reasonable for the targeted communication 
scenario. This method ofextending a lower level in SDP 
<http://tools.ietf.org/id/draft-burman-rtcweb-h264-proposal-01.html#sec-negotiation>[sec-negotiation]with 
a smaller set of applicable parameters is fully in line with[RFC6184] 
<http://tools.ietf.org/id/draft-burman-rtcweb-h264-proposal-01.html#RFC6184>, 
and is already used by some video conferencing vendors.

When considering the main WebRTC use case, real-time communication, the 
lack of need to support interlaced image format in that context, the 
limited use of and added delay from bi-directionally predicted (B) 
pictures, and the added implementation and computation complexity that 
comes with interlace and B-picture handling suggests that Constrained 
High Profile should be preferred over High Profile as optional codec. 
Note also that while Constrained High Profile is currently less 
supported in devices than High Profile, any High Profile decoder will be 
capable of decoding a Constrained High Profile bitstream since it is a 
subset of High Profile. To make a High Profile encoder support 
Constrained High Profile encoding, it will have to turn off interlace 
encoding and turn off the use of bi-directional prediction.


Best regards
Sergio
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x264-devel/attachments/20130313/6696b71e/attachment-0001.html>


More information about the x264-devel mailing list