Re: [rtcweb] H261/MPEG-1 video quality

Stephan Wenger <stewe@stewe.org> Sat, 16 November 2013 18:17 UTC

Return-Path: <stewe@stewe.org>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 34E4311E81B2 for <rtcweb@ietfa.amsl.com>; Sat, 16 Nov 2013 10:17:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.999
X-Spam-Level:
X-Spam-Status: No, score=-2.999 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, J_CHICKENPOX_45=0.6, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ljzV5-yr0+Gl for <rtcweb@ietfa.amsl.com>; Sat, 16 Nov 2013 10:17:46 -0800 (PST)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2lp0205.outbound.protection.outlook.com [207.46.163.205]) by ietfa.amsl.com (Postfix) with ESMTP id A455A11E81A8 for <rtcweb@ietf.org>; Sat, 16 Nov 2013 10:17:44 -0800 (PST)
Received: from CO1PR07MB363.namprd07.prod.outlook.com (10.141.75.22) by CO1PR07MB361.namprd07.prod.outlook.com (10.141.75.19) with Microsoft SMTP Server (TLS) id 15.0.820.5; Sat, 16 Nov 2013 18:17:27 +0000
Received: from CO1PR07MB363.namprd07.prod.outlook.com ([169.254.3.35]) by CO1PR07MB363.namprd07.prod.outlook.com ([169.254.3.35]) with mapi id 15.00.0820.005; Sat, 16 Nov 2013 18:17:27 +0000
From: Stephan Wenger <stewe@stewe.org>
To: Maik Merten <maikmerten@googlemail.com>, "rtcweb@ietf.org" <rtcweb@ietf.org>
Thread-Topic: [rtcweb] H261/MPEG-1 video quality
Thread-Index: AQHO4u+TetNMevLdvEG+R6V6YRXbOponpC0A
Date: Sat, 16 Nov 2013 18:17:24 +0000
Message-ID: <CEACF195.AA5BD%stewe@stewe.org>
In-Reply-To: <5287A84B.1020404@googlemail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [24.5.171.95]
x-forefront-prvs: 003245E729
x-forefront-antispam-report: SFV:NSPM; SFS:(189002)(199002)(164054003)(51704005)(479174003)(377454003)(24454002)(85306002)(74502001)(87936001)(74366001)(87266001)(74662001)(65816001)(31966008)(80022001)(2656002)(76482001)(54356001)(59766001)(63696002)(53806001)(15202345003)(74706001)(66066001)(77982001)(4396001)(79102001)(83072001)(81542001)(81342001)(47736001)(49866001)(47976001)(50986001)(46102001)(80976001)(81686001)(56776001)(54316002)(83322001)(19580395003)(19580405001)(74876001)(51856001)(15975445006)(56816003)(36756003)(81816001)(69226001)(47446002)(15395725003)(76176001)(76796001)(76786001)(15198665003)(77096001)(42262001)(18954195003)(473944003)(460985004)(10090945008); DIR:OUT; SFP:; SCL:1; SRVR:CO1PR07MB361; H:CO1PR07MB363.namprd07.prod.outlook.com; CLIP:24.5.171.95; FPR:; RD:InfoNoRecords; MX:1; A:0; LANG:en;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <C1F3D65AA76D6246B1F09DAB47A184E6@namprd07.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: stewe.org
Subject: Re: [rtcweb] H261/MPEG-1 video quality
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 16 Nov 2013 18:17:50 -0000

Hi,
Back in the mid 1990s, we (at Teles AG, Germany) developed an H.261 based
desktop video conferencing system.  It ran real-time over 128 kbit/s ISDN,
at 12.5 fps, CIF, on a Pentium 133 (and well enough on a Pentium 90, with
occasional slight drops in frame rate at high motion), including the
cycles needed for G.728 audio.  We got a better quality with those
resources than what Maik has uploaded.  So Maik is quite right, the ffmpeg
encoder implementation has a lot of room for improvement.
One thing that is quite obvious in the 128 kbit/s sequence is the presence
of both blocking and mosquito artifacts.  This combination points to an
incorrect tuning of the deblocking filter.  In H.261, one can enable and
disable the deblocking filter on a per macroblock basis.  If you don¹t get
that right, you have a lousy encoder.  The heuristics were secret sauce of
a video conferencing vendor at the time, matched in importance perhaps
only by a useful echo cancellation.  The deblocking filter obviously
reduces noise at the expense of picture fidelity.  The trick is to keep it
on most of the time in areas of high energy, but occasionally (5 picture
interval?  Something like this) switch it off to capture detail, and at
the same time fine-tune the pre filter to smoothen the input signal just a
bit so to avoid creation of excessive mosquito noise, and crank up the QP.
No, I don¹t have the time to develop and contribute a patch for ffmpeg.
Stephan
 
 

On 11.16.2013, 09:15 , "Maik Merten" <maikmerten@googlemail.com> wrote:

>I uploaded a set of H.261 encodes of the sign_irene sample, ranging from
>128 kbps to 1024 kbps. This is again done with ffmpeg, so please take my
>comments regarding its H.261 encoder into consideration.
>
>https://drive.google.com/file/d/0B11N4VzriA21WWRoVGd6TWRwb3M/edit?usp=shar
>ing
>
>(btw, transmission of sign language is a nice example where "audio only"
>is not quite useful in case of video codec negotiation failure)
>
>
>Maik
>
>
>Am 16.11.2013 03:18, schrieb Justin Uberti:
>> Thanks. Performance at 256 kbps is clearly unacceptable, 1933 kbps is
>> pretty decent. Would be great to see a 512 kbps and 1024 kbps version to
>> understand where things go from bad to good.
>>
>>
>> On Fri, Nov 15, 2013 at 3:42 PM, Hervé W. <h_o_w_@hotmail.com
>> <mailto:h_o_w_@hotmail.com>> wrote:
>>
>>     
>><http://ge.tt/2bp1Zrz><http://ge.tt/2bp1Zrz><http://ge.tt/2bp1Zrz>http://
>>ge.tt/2bp1Zrz
>>
>>     options used:
>>     mencoder.exe -ovc lavc -lavcopts vcodec=h261:vbitrate=256 -o
>>     irene-256k.h261.avi sign_irene_cif.y4m
>>
>>     mencoder.exe -ovc lavc -lavcopts
>>     
>>vcodec=h261:vbitrate=256:last_pred=3:predia=2:dia=2:precmp=2:cmp=2:subcmp
>>=2:preme=2:mbd=0
>>     -o irene-256k.h261.miscoptions.avi sign_irene_cif.y4m
>>
>>     mencoder.exe -ovc lavc -lavcopts
>>     
>>vcodec=h261:vbitrate=15999:last_pred=3:predia=2:dia=2:precmp=2:cmp=2:subc
>>mp=2:preme=2:mbd=0
>>     -o irene-highbitrate.h261.avi sign_irene_cif.y4m
>>
>>     You can probably derive ffmpeg/avconv options from those.
>>
>>     Notes
>>
>>       * There's a ticket open about h261
>>         
>><https://trac.ffmpeg.org/ticket/3143>https://trac.ffmpeg.org/ticket/3143
>>       * 15999 kbps was not the bitrate irene-highbitrate ended up using;
>>         that was more like 1933 kbps
>>       * My untrained eye did not see any difference between
>>         irene-256k.h261.avi and irene-256k.h261.miscoptions.avi but
>>         maybe most of those options are (rightly) ignored for h261.
>>
>>
>>     - Hervé
>>
>>     
>>------------------------------------------------------------------------
>>     From: juberti@google.com <mailto:juberti@google.com>
>>     Date: Fri, 15 Nov 2013 14:00:50 -0800
>>     To: cowwoc@bbs.darktech.org <mailto:cowwoc@bbs.darktech.org>
>>     CC: rtcweb@ietf.org <mailto:rtcweb@ietf.org>
>>     Subject: Re: [rtcweb] H261/MPEG-1 video quality (was: I'd love it if
>>     patents evaporated)
>>
>>
>>      From what I understand, the clip from this thread was encoded using
>>     MPEG-1, not H.261. Aside from
>>     http://www-mobile.ecs.soton.ac.uk/peter/h261/, I don't think we have
>>     seen any samples of actual H.261 output that give a good indication
>>     of its suitability.
>>
>>
>>     On Fri, Nov 15, 2013 at 5:52 AM, cowwoc <cowwoc@bbs.darktech.org
>>     <mailto:cowwoc@bbs.darktech.org>> wrote:
>>
>>
>>         Excellent work Adam. I can't speak for others, but at 254 kbps
>>         (corrected figure from your follow-up post) H.261 is definitely
>>         "good enough" and better than an audio-only connection.
>>
>>         Gili
>>
>>
>>         On 14/11/2013 6:16 PM, Adam Roach wrote:
>>
>>             I sent a reply to this earlier, but just now realized that
>>             it went only to Justin, not to the list.
>>
>>
>>             On 11/14/13 13:59, Justin Uberti wrote:
>>
>>                 Thanks, this is interesting. Is the ffmpeg 261 encoder
>>                 limited to CIF/QCIF, or can you specify arbitrary sizes?
>>
>>
>>             It looks like the ffmpeg mpeg-1 coder works for arbitrary
>>             sizes. I'm not sure what the difference between mpeg-1 and
>>             H.261 are, though, so we could be talking apples and oranges
>>             (or at least apples and pears) here. I'll note that mpeg-1
>>             came out in 1991, which is a good 22 years in the past. I'm
>>             not drawing IPR conclusions for you, but invite you to
>>             ponder the implications yourself.
>>
>>             Following Maik's lead with the mpeg-1 js decoder, I put this
>>             together:
>>
>>             https://dl.dropboxusercontent.com/u/53717247/mpg/maven.html
>>
>>             ...with this commandline:
>>
>>                ffmpeg -i maven.mp4 -f mpeg1video -flags qprd -mbd rd
>>             -cmp rd -subcmp rd -mbcmp rd -precmp rd -trellis 2 -g 100
>>             -vb 256k maven.mpg
>>
>>             I don't really understand most of those options (I just
>>             cribbed them from Maik's example) or whether any of them
>>             would introduce more latency than is reasonable for a
>>             real-time conversation, but I will observe:
>>
>>              1. The encoder claims that it was performing on the order
>>                 of 90 - 100 fps on my (admittedly modern) system;
>>              2. The resolution is 640x360 (somewhat larger than DCIF);
>>              3. The video is not, to my eye, unusable (draw your own
>>                 conclusions, as it's clearly not as nice as modern
>>codecs);
>>              4. At 74 seconds and 4.7 MBytes (i.e., 37.6 Mbits), this
>>                 encoding works out to 508 kbits/second total.
>>
>>
>>
>>             Source video here, and NASA is acknowledged as the source of
>>             the material contained therein:
>>             http://www.youtube.com/watch?v=ijAO0FFExx0
>>
>>             /a
>>
>>
>>
>>             _______________________________________________
>>             rtcweb mailing list
>>             rtcweb@ietf.org  <mailto:rtcweb@ietf.org>
>>             https://www.ietf.org/mailman/listinfo/rtcweb
>>
>>
>>
>>         _______________________________________________
>>         rtcweb mailing list
>>         rtcweb@ietf.org <mailto:rtcweb@ietf.org>
>>         https://www.ietf.org/mailman/listinfo/rtcweb
>>
>>
>>
>>     _______________________________________________ rtcweb mailing list
>>     rtcweb@ietf.org <mailto:rtcweb@ietf.org>
>>     https://www.ietf.org/mailman/listinfo/rtcweb
>>
>>
>>
>>
>> _______________________________________________
>> rtcweb mailing list
>> rtcweb@ietf.org
>> https://www.ietf.org/mailman/listinfo/rtcweb
>>
>
>_______________________________________________
>rtcweb mailing list
>rtcweb@ietf.org
>https://www.ietf.org/mailman/listinfo/rtcweb