[FFmpeg-devel] [RFC] Make swscale-test perform only one convertion
Stefano Sabatini
stefano.sabatini-lala
Fri Jan 29 01:52:23 CET 2010
Hi all,
this is meant to simplify the testing/debuggin work in lsws, and
provide a basis for a future lswstest rule, often it happens that I
need to test/debug only a particular conversion, I was using the scale
lavfi filter for this but it is way easier this way.
I expected the new result to be different from the old one as the
random source is different, but I noted that the new result is almost
always *worse* than the old one (that is the output obtained with
the old swscale-test), can someone explain?
Here it follows a sample of diff -u swscale.test.oldres swscale.test.newres:
--- swscale.test.ref 2010-01-23 00:50:06.000000000 +0100
+++ swscale.test.ref.new 2010-01-29 01:32:51.000000000 +0100
@@ -90,19 +90,19 @@
yuv420p 96x96 -> yuyv422 96x 128 flags= 8 SSD= 0, 0, 0, 0
yuv420p 96x96 -> yuyv422 96x 128 flags=16 SSD= 0, 0, 0, 0
yuv420p 96x96 -> yuyv422 96x 128 flags=32 SSD= 0, 0, 0, 0
- yuv420p 96x96 -> yuyv422 128x 64 flags= 1 SSD= 1, 4, 6, 0
+ yuv420p 96x96 -> yuyv422 128x 64 flags= 1 SSD= 1, 5, 9, 0
yuv420p 96x96 -> yuyv422 128x 64 flags= 2 SSD= 0, 0, 0, 0
yuv420p 96x96 -> yuyv422 128x 64 flags= 4 SSD= 0, 0, 0, 0
yuv420p 96x96 -> yuyv422 128x 64 flags= 8 SSD= 0, 1, 1, 0
yuv420p 96x96 -> yuyv422 128x 64 flags=16 SSD= 6, 0, 0, 0
yuv420p 96x96 -> yuyv422 128x 64 flags=32 SSD= 0, 1, 1, 0
- yuv420p 96x96 -> yuyv422 128x 96 flags= 1 SSD= 2, 8, 12, 0
+ yuv420p 96x96 -> yuyv422 128x 96 flags= 1 SSD= 2, 9, 12, 0
yuv420p 96x96 -> yuyv422 128x 96 flags= 2 SSD= 0, 5, 3, 0
yuv420p 96x96 -> yuyv422 128x 96 flags= 4 SSD= 0, 0, 0, 0
yuv420p 96x96 -> yuyv422 128x 96 flags= 8 SSD= 0, 5, 3, 0
yuv420p 96x96 -> yuyv422 128x 96 flags=16 SSD= 0, 0, 0, 0
yuv420p 96x96 -> yuyv422 128x 96 flags=32 SSD= 0, 5, 4, 0
- yuv420p 96x96 -> yuyv422 128x 128 flags= 1 SSD= 1, 6, 9, 0
+ yuv420p 96x96 -> yuyv422 128x 128 flags= 1 SSD= 1, 5, 9, 0
yuv420p 96x96 -> yuyv422 128x 128 flags= 2 SSD= 0, 1, 1, 0
yuv420p 96x96 -> yuyv422 128x 128 flags= 4 SSD= 0, 0, 0, 0
yuv420p 96x96 -> yuyv422 128x 128 flags= 8 SSD= 0, 1, 1, 0
@@ -145,19 +145,19 @@
yuv420p 96x96 -> rgb24 96x 128 flags= 8 SSD= 3, 0, 1, 0
yuv420p 96x96 -> rgb24 96x 128 flags=16 SSD= 1, 0, 0, 0
yuv420p 96x96 -> rgb24 96x 128 flags=32 SSD= 3, 0, 0, 0
- yuv420p 96x96 -> rgb24 128x 64 flags= 1 SSD= 4, 2, 5, 0
+ yuv420p 96x96 -> rgb24 128x 64 flags= 1 SSD= 4, 3, 8, 0
yuv420p 96x96 -> rgb24 128x 64 flags= 2 SSD= 1, 0, 0, 0
yuv420p 96x96 -> rgb24 128x 64 flags= 4 SSD= 1, 0, 0, 0
yuv420p 96x96 -> rgb24 128x 64 flags= 8 SSD= 2, 1, 1, 0
yuv420p 96x96 -> rgb24 128x 64 flags=16 SSD= 7, 0, 0, 0
yuv420p 96x96 -> rgb24 128x 64 flags=32 SSD= 3, 1, 1, 0
- yuv420p 96x96 -> rgb24 128x 96 flags= 1 SSD= 3, 7, 10, 0
+ yuv420p 96x96 -> rgb24 128x 96 flags= 1 SSD= 3, 13, 12, 0
yuv420p 96x96 -> rgb24 128x 96 flags= 2 SSD= 2, 5, 3, 0
yuv420p 96x96 -> rgb24 128x 96 flags= 4 SSD= 1, 0, 0, 0
yuv420p 96x96 -> rgb24 128x 96 flags= 8 SSD= 2, 5, 4, 0
yuv420p 96x96 -> rgb24 128x 96 flags=16 SSD= 1, 0, 0, 0
yuv420p 96x96 -> rgb24 128x 96 flags=32 SSD= 2, 6, 4, 0
- yuv420p 96x96 -> rgb24 128x 128 flags= 1 SSD= 4, 3, 9, 0
+ yuv420p 96x96 -> rgb24 128x 128 flags= 1 SSD= 4, 5, 9, 0
yuv420p 96x96 -> rgb24 128x 128 flags= 2 SSD= 3, 1, 1, 0
yuv420p 96x96 -> rgb24 128x 128 flags= 4 SSD= 1, 0, 0, 0
yuv420p 96x96 -> rgb24 128x 128 flags= 8 SSD= 3, 1, 1, 0
@@ -200,38 +200,38 @@
yuv420p 96x96 -> bgr24 96x 128 flags= 8 SSD= 3, 0, 1, 0
yuv420p 96x96 -> bgr24 96x 128 flags=16 SSD= 1, 0, 0, 0
yuv420p 96x96 -> bgr24 96x 128 flags=32 SSD= 3, 0, 0, 0
- yuv420p 96x96 -> bgr24 128x 64 flags= 1 SSD= 4, 2, 5, 0
+ yuv420p 96x96 -> bgr24 128x 64 flags= 1 SSD= 4, 3, 8, 0
yuv420p 96x96 -> bgr24 128x 64 flags= 2 SSD= 1, 0, 0, 0
yuv420p 96x96 -> bgr24 128x 64 flags= 4 SSD= 1, 0, 0, 0
yuv420p 96x96 -> bgr24 128x 64 flags= 8 SSD= 2, 1, 1, 0
yuv420p 96x96 -> bgr24 128x 64 flags=16 SSD= 7, 0, 0, 0
yuv420p 96x96 -> bgr24 128x 64 flags=32 SSD= 3, 1, 1, 0
[...]
rgb24 -> yuv411p
- rgb24 96x96 -> yuv411p 64x 64 flags= 1 SSD= 3, 28, 22, 0
+ rgb24 96x96 -> yuv411p 64x 64 flags= 1 SSD= 16, 84, 167, 0
rgb24 96x96 -> yuv411p 64x 64 flags= 2 SSD= 2, 12, 15, 0
rgb24 96x96 -> yuv411p 64x 64 flags= 4 SSD= 1, 2, 3, 0
rgb24 96x96 -> yuv411p 64x 64 flags= 8 SSD= 2, 13, 15, 0
rgb24 96x96 -> yuv411p 64x 64 flags=16 SSD= 13, 29, 31, 0
rgb24 96x96 -> yuv411p 64x 64 flags=32 SSD= 2, 10, 13, 0
- rgb24 96x96 -> yuv411p 64x 96 flags= 1 SSD= 4, 33, 101, 0
+ rgb24 96x96 -> yuv411p 64x 96 flags= 1 SSD= 11, 68, 154, 0
rgb24 96x96 -> yuv411p 64x 96 flags= 2 SSD= 1, 12, 15, 0
rgb24 96x96 -> yuv411p 64x 96 flags= 4 SSD= 1, 2, 3, 0
rgb24 96x96 -> yuv411p 64x 96 flags= 8 SSD= 2, 12, 15, 0
rgb24 96x96 -> yuv411p 64x 96 flags=16 SSD= 6, 29, 31, 0
rgb24 96x96 -> yuv411p 64x 96 flags=32 SSD= 1, 9, 12, 0
- rgb24 96x96 -> yuv411p 64x 128 flags= 1 SSD= 4, 33, 166, 0
+ rgb24 96x96 -> yuv411p 64x 128 flags= 1 SSD= 8, 89, 166, 0
rgb24 96x96 -> yuv411p 64x 128 flags= 2 SSD= 1, 12, 15, 0
rgb24 96x96 -> yuv411p 64x 128 flags= 4 SSD= 1, 2, 3, 0
rgb24 96x96 -> yuv411p 64x 128 flags= 8 SSD= 2, 12, 15, 0
rgb24 96x96 -> yuv411p 64x 128 flags=16 SSD= 6, 29, 31, 0
rgb24 96x96 -> yuv411p 64x 128 flags=32 SSD= 1, 9, 12, 0
- rgb24 96x96 -> yuv411p 96x 64 flags= 1 SSD= 1, 21, 46, 0
+ rgb24 96x96 -> yuv411p 96x 64 flags= 1 SSD= 1, 26, 76, 0
rgb24 96x96 -> yuv411p 96x 64 flags= 2 SSD= 1, 4, 5, 0
rgb24 96x96 -> yuv411p 96x 64 flags= 4 SSD= 1, 0, 0, 0
rgb24 96x96 -> yuv411p 96x 64 flags= 8 SSD= 2, 4, 4, 0
rgb24 96x96 -> yuv411p 96x 64 flags=16 SSD= 7, 18, 17, 0
rgb24 96x96 -> yuv411p 96x 64 flags=32 SSD= 1, 2, 3, 0
- rgb24 96x96 -> yuv411p 96x 96 flags= 1 SSD= 1, 11, 74, 0
+ rgb24 96x96 -> yuv411p 96x 96 flags= 1 SSD= 1, 47, 74, 0
rgb24 96x96 -> yuv411p 96x 96 flags= 2 SSD= 1, 4, 4, 0
rgb24 96x96 -> yuv411p 96x 96 flags= 4 SSD= 1, 0, 0, 0
rgb24 96x96 -> yuv411p 96x 96 flags= 8 SSD= 1, 3, 3, 0
rgb24 96x96 -> yuv411p 96x 96 flags=16 SSD= 1, 18, 17, 0
rgb24 96x96 -> yuv411p 96x 96 flags=32 SSD= 1, 1, 2, 0
- rgb24 96x96 -> yuv411p 96x 128 flags= 1 SSD= 1, 13, 74, 0
+ rgb24 96x96 -> yuv411p 96x 128 flags= 1 SSD= 1, 45, 74, 0
rgb24 96x96 -> yuv411p 96x 128 flags= 2 SSD= 1, 4, 4, 0
rgb24 96x96 -> yuv411p 96x 128 flags= 4 SSD= 1, 0, 0, 0
rgb24 96x96 -> yuv411p 96x 128 flags= 8 SSD= 1, 3, 3, 0
rgb24 96x96 -> yuv411p 96x 128 flags=16 SSD= 1, 18, 17, 0
rgb24 96x96 -> yuv411p 96x 128 flags=32 SSD= 1, 1, 2, 0
- rgb24 96x96 -> yuv411p 128x 64 flags= 1 SSD= 5, 8, 34, 0
+ rgb24 96x96 -> yuv411p 128x 64 flags= 1 SSD= 5, 19, 34, 0
rgb24 96x96 -> yuv411p 128x 64 flags= 2 SSD= 1, 2, 2, 0
rgb24 96x96 -> yuv411p 128x 64 flags= 4 SSD= 1, 0, 0, 0
rgb24 96x96 -> yuv411p 128x 64 flags= 8 SSD= 2, 2, 2, 0
rgb24 96x96 -> yuv411p 128x 64 flags=16 SSD= 7, 14, 15, 0
rgb24 96x96 -> yuv411p 128x 64 flags=32 SSD= 1, 2, 2, 0
- rgb24 96x96 -> yuv411p 128x 96 flags= 1 SSD= 5, 5, 33, 0
+ rgb24 96x96 -> yuv411p 128x 96 flags= 1 SSD= 5, 32, 33, 0
rgb24 96x96 -> yuv411p 128x 96 flags= 2 SSD= 1, 1, 1, 0
rgb24 96x96 -> yuv411p 128x 96 flags= 4 SSD= 1, 0, 0, 0
rgb24 96x96 -> yuv411p 128x 96 flags= 8 SSD= 1, 2, 2, 0
rgb24 96x96 -> yuv411p 128x 96 flags=16 SSD= 1, 14, 15, 0
rgb24 96x96 -> yuv411p 128x 96 flags=32 SSD= 1, 1, 1, 0
- rgb24 96x96 -> yuv411p 128x 128 flags= 1 SSD= 5, 17, 33, 0
+ rgb24 96x96 -> yuv411p 128x 128 flags= 1 SSD= 5, 35, 33, 0
Also note that I don't want to hardcode the supported in/out formats
in the swscale-test-all.sh script, but currently I don't know which is
the best way to do that, I cannot extend avcodec_pix_fmt_string() with
sws_isSupported{In,Out} since that would add a dependancy lsws <-
lavc, my idea was to define a get_pix_fmt_string() in cmdutils.c.
Suggestions are welcome.
Regards.
--
FFmpeg = Furious & Friendly Mystic Porno Esoteric Guide
-------------- next part --------------
A non-text attachment was scrubbed...
Name: implement-swscale-test-lite.patch
Type: text/x-diff
Size: 4261 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100129/16df6c69/attachment.patch>
More information about the ffmpeg-devel
mailing list