Re: [rtcweb] More H.264 vs VP8 tests

Stefan Håkansson LK <> Mon, 24 June 2013 11:33 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 9E90921F9C0B for <>; Mon, 24 Jun 2013 04:33:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -5.584
X-Spam-Status: No, score=-5.584 tagged_above=-999 required=5 tests=[AWL=0.365, BAYES_00=-2.599, HELO_EQ_SE=0.35, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_MED=-4]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id sORKefC8B6jJ for <>; Mon, 24 Jun 2013 04:33:24 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id DFE2221E80DC for <>; Mon, 24 Jun 2013 04:33:23 -0700 (PDT)
X-AuditID: c1b4fb25-b7f4c6d000004656-26-51c82e822bec
Received: from (Unknown_Domain []) by (Symantec Mail Security) with SMTP id 70.23.18006.28E28C15; Mon, 24 Jun 2013 13:33:22 +0200 (CEST)
Received: from ([]) by ([]) with mapi id 14.02.0328.009; Mon, 24 Jun 2013 13:33:22 +0200
From: Stefan Håkansson LK <>
To: Leon Geyser <>
Thread-Topic: [rtcweb] More H.264 vs VP8 tests
Thread-Index: Ac5vQ4bE4hnmu5ERSv6YOg93i7vBVw==
Date: Mon, 24 Jun 2013 11:33:21 +0000
Message-ID: <>
References: <> <>
Accept-Language: en-US
Content-Language: en-US
x-originating-ip: []
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrALMWRmVeSWpSXmKPExsUyM+JvrW6T3olAgx2XTCy6V89is1j7r53d gclj56y77B5LlvxkCmCK4rJJSc3JLEst0rdL4Mr4ubui4IdRxbnmNsYGxgfqXYycHBICJhIb /7xjg7DFJC7cWw9kc3EICRxmlNj+YCYzhLOIUeLE5xYWkCo2gUCJrfsWgHWICChLfPy2Bcxm FvCWWN89B6xGWEBXouH4GqgaPYmFz1+wwNi7939kBrFZBFQlZn58xdjFyMHBK+Ar8eW2KMSu KYwSty7OZAWpYQS66PupNUwQ88Ulbj2ZzwRxqYDEkj3nmSFsUYmXj/+xQtiKEjvPtjND1OtJ 3Jg6Beo2bYllC1+DxXkFBCVOznzCMoFRdBaSsbOQtMxC0jILScsCRpZVjOy5iZk56eVGmxiB sXBwy2/VHYx3zokcYpTmYFES5/14alegkEB6YklqdmpqQWpRfFFpTmrxIUYmDk6pBkZDLdFb Eb2+lYZSaxWvJl01S9J/0t8jYdbVofJ+1pQM92CvZ41vzZ7unPVbxI0z+6qNo/RPo6o1u9cF 1ddUspndvD/1SU/ODw+ZzjJ94V3C34NvX//hrL3Lz/iUXvbhUHunE2E6kir7lqyftpc3a4bB wbwr+c3Gwd8OnRAr62tiKxZQFKibr8RSnJFoqMVcVJwIAKGxTsxTAgAA
Cc: "" <>
Subject: Re: [rtcweb] More H.264 vs VP8 tests
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 24 Jun 2013 11:33:29 -0000

On 2013-06-22 18:54, Leon Geyser wrote:
> Hi Bo,
> Thanks for the additional testing done.
> I am not 100% why we have to test with fixed qp-levels when WebRTC is
> going to be used over the internet. I would assume that WebRTC would be
> used over the internet...
> My understanding of rate-control might be completely wrong. Why test
> modes that might not even be used in real-world scenarios?

Hi Leon (responding for Bo who is enjoying his vacation),

you are absolutely right, these codecs are going to be used with 
rate-controllers when deployed in the real world. However, we still do 
not think it is a good idea having rate control turned on when comparing 
them. The reason is that the rate controller influences the quality so 
much that it is very hard to get any comparable signal if you include 
them. Let me give you one example; let's say that you use the same 
codec, but two different rate controllers. Rate control A is very 
liberal with its bits in the beginning of the sequence, whereas rate 
control B is very frugal. On a video conferencing type sequence, where 
the camera is static and not much is happening, rate control A will win 
by a huge margin over rate control B. The reason is that the first frame 
will be encoded very well and this data can be used during the remainder 
of the sequence. Rate control B will not be able to stand a chance, even 
though it has more bits for the remaining images.  And this is with the 
same video codec!

We could of course try to make sure that the two rate controllers have 
similar settings; however, since they are not identical they cannot be 
made to work exactly the same. Even small changes in rate control 
settings could have a huge effect on the end result.

Rather than trying to make two pieces of software work the same, it is 
much easier to just shut off the rate controllers. This gives a direct 
measurement of the relative strengths of the codecs. This is also the 
reason why organizations such as JC-TVC have used this method to compare 
their codecs.

Best Regards,

> On 22 June 2013 15:41, Bo Burman <
> <>> wrote:
>     Hi all,
>     We have had a look at Google's comparison between VP8 and H.264
>     constrained baseline that was posted on April 3rd
>     (
>     This post contains, as the one mentioned above (and if the
>     attachments make it to the list), information on the exact tools and
>     options used for encoding and should thus be repeatable by anyone
>     interested.
>     As was already stated by others on this list, one major problem is
>     that Google's test involves the rate control mechanism. Typically
>     codecs are measured with rate control turned off, since it acts as a
>     huge noise on the measurement. Instead we propose to compare the
>     codecs using fixed qp-levels. The qp-level is the quantization
>     parameter that affects the rate/distortion tradeoff. Comparing using
>     fixed qp-levels is what has been used when benchmarking HEVC against
>     H.264 in the JCT-VC standardization, for instance. We are going to
>     select a codec (essentially bit stream format), not a rate control
>     mechanism: Once the codec is selected you can choose whatever rate
>     control mechanism you wish.
>     We used Google's excellent framework as the baseline and changed the
>     parameter settings in order to make it possible to measure using
>     fixed qp. We used the same sequences, but limited them to the first
>     10 seconds since they varied from 10 seconds to minutes; this also
>     eased computation time.
>     We used two H.264 encoder implementations: X264, which is an
>     open-source codec that can operate in everything from real-time to
>     slow, and JM which is the reference implementation that was used to
>     develop H.264. JM is very slow but attempts to be very efficient in
>     terms of bits per quality. The results were as follows:
>     X264 baseline vs VP8: H.264 wins with 1%
>     JM baseline vs VP8: H.264 wins with 4%
>     Running times:
>     X264: 1 hour 3 minutes
>     VP8: 2 hours 0 minutes
>     JM: order of magnitude slower
>     It is interesting to note that the measurements are more stable in
>     the new test; the variance of the percentages for the sequences is
>     now around 70, down from around 700 in Google's test of April 3rd.
>       We believe this is due to the removal of the rate controller,
>     which acts like noise on the measurements.
>     We also tried setting H.264 to constrained high (no interlace and no
>     B-pictures, compared to high). The results were then:
>     X264 constrained high vs VP8: H.264 wins with 25%
>     JM constrained high vs VP8: H.264 wins with 24%
>     We also note that the script that Google provided to calculate the
>     rate differences ("BD-rate") does not give exactly the same numbers
>     as the JCT-VC-way of calculating BD-rate. The main difference is
>     that the JM score for constrained high is better (around 29%) if the
>     JCT-VC way of calculating BD-rate is used.
>     In summary we think that proper testing can conclude that there is
>     no clear performance advantage to any codec between VP8 and H.264
>     baseline. When comparing VP8 against H.264 constrained high on the
>     other hand, it seems like there is an advantage for H.264
>     constrained high.
>     The attached file includes the files necessary to reproduce the test.
>     Best Regards,
>     Bo Burman
>     _______________________________________________
>     rtcweb mailing list
> <>