[FFmpeg-devel] [PATCH] Re: Color corruption and seeking errors with H264 disc sources

Michael Niedermayer michaelni
Thu Jul 5 22:04:45 CEST 2007


Hi

On Thu, Jul 05, 2007 at 11:06:44AM +0200, Andreas ?man wrote:
> Hello,
> 
> Michael Niedermayer wrote:
> >Hi
> >
> >On Tue, Jul 03, 2007 at 01:32:07PM +0200, Andreas ?man wrote:
> >>Andreas ?man wrote:
> >>>Hi
> >>>I basically did two things.
> >>... and basically, i did not send the patch. Here it is.
> >
> >this patch contains several unrelated changes please split them
> >its impossible to benchmark the bugfix if its mixed with optimizations
> >
> 
> Okay, i've done my homework, split them up and run some more detailed
> benchmarks.
> 
> I've then applied qmul.diff and qplookup.diff and run tests
> on these optimizations.
> 
> Then i fixed the actual bug in secondqp.diff
> 
> So, these three patches needs to be applied in that order.
> 
> try#1 is the same benchmark with the bugfix but without the
> optimizations (the patch i sent earlier)
> 
> The diff between the svn and secondqp median is in the 0.1-0.3%
> range if i'm not mistaken. So i believe it's quite okay.
> 
> Anyway, this is my last shot at this right now, i'd rather
> focus on the h264-multithreading performance issues thats
> left.
> 
> Aladin.mpg (10 runs)
> 
> svn           avg: 3.213  stddev: 0.009  med: 3.214
> qmul.diff     avg: 3.207  stddev: 0.005  med: 3.206
> qplookup.diff avg: 3.209  stddev: 0.015  med: 3.204
> secondqp.diff avg: 3.214  stddev: 0.010  med: 3.216
> try#1         avg: 3.223  stddev: 0.015  med: 3.220
> 
> SVT.ts clip (10 runs)
> 
> svn           avg: 5.298  stddev: 0.016  med: 5.308
> qmul.diff     avg: 5.315  stddev: 0.021  med: 5.308
> qplookup.diff avg: 5.284  stddev: 0.009  med: 5.280
> secondqp.diff avg: 5.320  stddev: 0.052  med: 5.316
> try#1         avg: 5.344  stddev: 0.010  med: 5.344
> 
> ffh264_issue3.h264 (5 runs)
> 
> svn           avg: 26.366  stddev: 0.055  med: 26.390
> qmul.diff     avg: 26.292  stddev: 0.035  med: 26.298
> qplookup.diff avg: 26.153  stddev: 0.020  med: 26.150
> secondqp.diff avg: 26.315  stddev: 0.034  med: 26.298
> try#1         avg: 26.421  stddev: 0.023  med: 26.422
> 
> apple zodiac trailer (5 runs 2000 frames)
> 
> svn           avg: 34.731  stddev: 0.068  med: 34.726
> qmul.diff     avg: 34.691  stddev: 0.041  med: 34.694
> qplookup.diff avg: 34.748  stddev: 0.064  med: 34.774
> secondqp.diff avg: 34.796  stddev: 0.057  med: 34.778
> try#1         avg: 34.954  stddev: 0.026  med: 34.958


qmul.diff and qplookup.diff are ok


[...]

> @@ -6682,7 +6689,9 @@
>  static void filter_mb_fast( H264Context *h, int mb_x, int mb_y, uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr, unsigned int linesize, unsigned int uvlinesize) {
>      MpegEncContext * const s = &h->s;
>      int mb_xy, mb_type;
> -    int qp, qp0, qp1, qpc, qpc0, qpc1, qp_thresh;
> +    int qp, qp0, qp1, qp_thresh;
> +    int qpb, qpb0, qpb1;
> +    int qpr, qpr0, qpr1;
>  
>      mb_xy = mb_x + mb_y*s->mb_stride;
>  

as said, please leave the fast/simple cases as is, without 2 chroma QPs

[...]
> @@ -171,7 +171,7 @@
>      int got_avcC; ///< flag used to parse avcC data only once
>      int nal_length_size; ///< Number of bytes used for nal length (1, 2 or 4)
>  
> -    int chroma_qp; //QPc
> +    int chroma_qp[0]; //QPc

this looks odd

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

It is dangerous to be right in matters on which the established authorities
are wrong. -- Voltaire
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20070705/f7feae58/attachment.pgp>



More information about the ffmpeg-devel mailing list