Re: [rtcweb] H261/MPEG-1 video quality
Stephan Wenger <stewe@stewe.org> Sun, 17 November 2013 17:23 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 0FD6011E8E71 for <rtcweb@ietfa.amsl.com>; Sun, 17 Nov 2013 09:23:54 -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 ifG4B0pC5pbB for <rtcweb@ietfa.amsl.com>; Sun, 17 Nov 2013 09:23:50 -0800 (PST)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1lp0149.outbound.protection.outlook.com [207.46.163.149]) by ietfa.amsl.com (Postfix) with ESMTP id D951D11E8E78 for <rtcweb@ietf.org>; Sun, 17 Nov 2013 09:23:45 -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; Sun, 17 Nov 2013 17:23:41 +0000
Received: from CO1PR07MB363.namprd07.prod.outlook.com ([169.254.3.35]) by CO1PR07MB363.namprd07.prod.outlook.com ([169.254.3.99]) with mapi id 15.00.0820.005; Sun, 17 Nov 2013 17:23:40 +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+R6V6YRXbOponpC0AgAHSNID//7EfAA==
Date: Sun, 17 Nov 2013 17:23:39 +0000
Message-ID: <CEAE3A92.AA626%stewe@stewe.org>
In-Reply-To: <5288CD41.30508@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: 0033AAD26D
x-forefront-antispam-report: SFV:NSPM; SFS:(54094003)(189002)(199002)(164054003)(51704005)(52604005)(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="windows-1254"
Content-ID: <F5AB6C165C5BAF4BB732EEF5D9EAC2B5@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: Sun, 17 Nov 2013 17:23:54 -0000
Yes, post filters are helpful at low bitrates, and especially for codecs with fixed block sizes such as H.261. I believe we had a very simple fixed coefficient 5 tap post filter on the vertical block edges. Nothing more due to cycle constrains. I know that they did something slightly more sophisticated later (perhaps only adding the horizontal block edges), but at that time I had left the company. Stephan On 11.17.2013, 06:05 , "Maik Merten" <maikmerten@googlemail.com> wrote: >Dear Stephan, > >thanks for sharing your experience regarding high-performance H.261 >implementations and confirming my suspicion regarding ffmpeg's encoder. >Do you happen to remember if there was any postprocessing involved at >the receiving end? I find that playback of the low-bitrate encodes >becomes somewhat more enjoyable with some postprocessing (deblocking, >deringing) (mplayer -vf pp) and I wonder if one should assume the >presence of such filters when assessing the quality achievable (given >that any modern devices have no trouble with the additional computation). > > >Maik > >Am 16.11.2013 19:17, schrieb Stephan Wenger: >> 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=sh >>>ar >>> 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:subc >>>>mp >>>> =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:su >>>>bc >>>> 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/314 >>>>3 >>>> * 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 >> > >_______________________________________________ >rtcweb mailing list >rtcweb@ietf.org >https://www.ietf.org/mailman/listinfo/rtcweb
- Re: [rtcweb] H261/MPEG-1 video quality (was: I'd … Leon Geyser
- [rtcweb] H261/MPEG-1 video quality (was: I'd love… Maik Merten
- Re: [rtcweb] H261/MPEG-1 video quality (was: I'd … Maik Merten
- Re: [rtcweb] H261/MPEG-1 video quality Gili
- Re: [rtcweb] H261/MPEG-1 video quality Maik Merten
- Re: [rtcweb] H261/MPEG-1 video quality (was: I'd … Justin Uberti
- Re: [rtcweb] H261/MPEG-1 video quality Maik Merten
- Re: [rtcweb] H261/MPEG-1 video quality Gili
- Re: [rtcweb] H261/MPEG-1 video quality (was: I'd … Adam Roach
- Re: [rtcweb] H261/MPEG-1 video quality Adam Roach
- Re: [rtcweb] H261/MPEG-1 video quality Stephan Wenger
- Re: [rtcweb] H261/MPEG-1 video quality Leon Geyser
- Re: [rtcweb] H261/MPEG-1 video quality Monty Montgomery
- Re: [rtcweb] H261/MPEG-1 video quality Leon Geyser
- Re: [rtcweb] H261/MPEG-1 video quality Magnus Westerlund
- Re: [rtcweb] H261/MPEG-1 video quality Maik Merten
- Re: [rtcweb] H261/MPEG-1 video quality Maik Merten
- Re: [rtcweb] H261/MPEG-1 video quality cowwoc
- Re: [rtcweb] H261/MPEG-1 video quality cowwoc
- Re: [rtcweb] H261/MPEG-1 video quality (was: I'd … cowwoc
- Re: [rtcweb] H261/MPEG-1 video quality Harald Alvestrand
- Re: [rtcweb] H261/MPEG-1 video quality Maik Merten
- Re: [rtcweb] H261/MPEG-1 video quality cowwoc
- Re: [rtcweb] H261/MPEG-1 video quality (was: I'd … Justin Uberti
- Re: [rtcweb] H261/MPEG-1 video quality Adam Roach
- Re: [rtcweb] H261/MPEG-1 video quality (was: I'd … Justin Uberti
- Re: [rtcweb] H261/MPEG-1 video quality Maik Merten
- Re: [rtcweb] H261/MPEG-1 video quality Maik Merten
- Re: [rtcweb] H261/MPEG-1 video quality Maik Merten
- Re: [rtcweb] H261/MPEG-1 video quality Stephan Wenger
- Re: [rtcweb] H261/MPEG-1 video quality Gunnar Hellstrom
- Re: [rtcweb] H261/MPEG-1 video quality Randell Jesup
- Re: [rtcweb] H261/MPEG-1 video quality Adam Roach
- Re: [rtcweb] H261/MPEG-1 video quality Maik Merten
- Re: [rtcweb] H261/MPEG-1 video quality Maik Merten
- Re: [rtcweb] H261/MPEG-1 video quality Stephan Wenger
- Re: [rtcweb] H261/MPEG-1 video quality Toerless Eckert
- Re: [rtcweb] H261/MPEG-1 video quality Toerless Eckert
- Re: [rtcweb] H261/MPEG-1 video quality Maik Merten
- [rtcweb] Trellis IPR status? (Re: H261/MPEG-1 vid… Harald Alvestrand
- Re: [rtcweb] Trellis IPR status? (Re: H261/MPEG-1… Maik Merten
- Re: [rtcweb] Trellis IPR status? (Re: H261/MPEG-1… Harald Alvestrand
- Re: [rtcweb] Trellis IPR status? (Re: H261/MPEG-1… Maik Merten