[FFmpeg-devel] [PATCH 5/6] lavc/vp6: Implement "slice" threading for VP6A decode

Michael Niedermayer michaelni at gmx.at
Fri Sep 14 23:21:02 CEST 2012


On Thu, Sep 13, 2012 at 09:43:06PM -0700, Ben Jackson wrote:
> The YUV channels of VP6 are encoded in a highly linear fashion which does
> not have any slice-like concept to thread.  The alpha channel of VP6A is
> fairly independent of the YUV and comprises 40% of the work.  This patch
> uses the THREAD_SLICE capability to split the YUV and A decodes into
> separate threads.
> 
> Signed-off-by: Ben Jackson <ben at ben.com>
> ---
>  libavcodec/vp56.c |  102 +++++++++++++++++++++++++++++-----------------------
>  libavcodec/vp56.h |    5 ++-
>  libavcodec/vp6.c  |   21 ++++++++++-
>  3 files changed, 81 insertions(+), 47 deletions(-)

this patch breaks "make fate"

--- ./tests/ref/fate/vp6a   2012-09-14 16:48:49.623802220 +0200
+++ tests/data/fate/vp6a    2012-09-14 23:19:35.436296159 +0200
@@ -1,94 +1,94 @@
 #tb 0: 1/4
 0,          0,          0,        1,   135000, 0x9dceed6d
-0,          1,          1,        1,   135000, 0xcb87787f
-0,          2,          2,        1,   135000, 0xdb4361ce
-0,          3,          3,        1,   135000, 0xb8fd81c2
-0,          4,          4,        1,   135000, 0xbf86a7af
-0,          5,          5,        1,   135000, 0x2e7787e3
-0,          6,          6,        1,   135000, 0x6cec6ebd
-0,          7,          7,        1,   135000, 0xa4d08c07
-0,          8,          8,        1,   135000, 0x1be48faf
-0,          9,          9,        1,   135000, 0xf3cd8ede
-0,         10,         10,        1,   135000, 0x33ec8a49
-0,         11,         11,        1,   135000, 0x11e887ec
-0,         12,         12,        1,   135000, 0x3e215c25
-0,         13,         13,        1,   135000, 0x1a2cb3f8
-0,         14,         14,        1,   135000, 0x7fb0e48a
-0,         15,         15,        1,   135000, 0x749f3738
-0,         16,         16,        1,   135000, 0x686e78e9
-0,         17,         17,        1,   135000, 0x29515bc7
-0,         18,         18,        1,   135000, 0x987126bd
-0,         19,         19,        1,   135000, 0xdf77bb13
-0,         20,         20,        1,   135000, 0x5fb1468a
-0,         21,         21,        1,   135000, 0x06ea50ea
-0,         22,         22,        1,   135000, 0x7bd9c715
-0,         23,         23,        1,   135000, 0xdd6e6831
-0,         24,         24,        1,   135000, 0x0ee3760f
-0,         25,         25,        1,   135000, 0xc7984dc8
-0,         26,         26,        1,   135000, 0x7e385bff
-0,         27,         27,        1,   135000, 0xae155ab9
-0,         28,         28,        1,   135000, 0xc05ee8f7
-0,         29,         29,        1,   135000, 0x93de3392
-0,         30,         30,        1,   135000, 0xfe45b38b
-0,         31,         31,        1,   135000, 0xeb5ed72c
-0,         32,         32,        1,   135000, 0x0794cb57
-0,         33,         33,        1,   135000, 0x2578c6e5
-0,         34,         34,        1,   135000, 0x78486707
-0,         35,         35,        1,   135000, 0x41e1f0e6
-0,         36,         36,        1,   135000, 0x4508eb76
-0,         37,         37,        1,   135000, 0xd8c087f3
-0,         38,         38,        1,   135000, 0x1a8db89a
-0,         39,         39,        1,   135000, 0x6dbd90c6
-0,         40,         40,        1,   135000, 0x0845e400
-0,         41,         41,        1,   135000, 0xe8b02fc2
-0,         42,         42,        1,   135000, 0x8007d813
-0,         43,         43,        1,   135000, 0xdfb04e69
-0,         44,         44,        1,   135000, 0x5746cf71
-0,         45,         45,        1,   135000, 0xe510299f
-0,         46,         46,        1,   135000, 0xeea0c829
-0,         47,         47,        1,   135000, 0x7c0578ab
+0,          1,          1,        1,   135000, 0x47e5778d
+0,          2,          2,        1,   135000, 0x5de36599
+0,          3,          3,        1,   135000, 0x540d8079
+0,          4,          4,        1,   135000, 0xba9ea534
+0,          5,          5,        1,   135000, 0xa75088f8
+0,          6,          6,        1,   135000, 0x7d867559
+0,          7,          7,        1,   135000, 0xcc678fee
+0,          8,          8,        1,   135000, 0x79c590b9
+0,          9,          9,        1,   135000, 0x87789918
+0,         10,         10,        1,   135000, 0xaa939213
+0,         11,         11,        1,   135000, 0x3912916d
+0,         12,         12,        1,   135000, 0x41305d0b
+0,         13,         13,        1,   135000, 0x2686b5dd
+0,         14,         14,        1,   135000, 0xa69ae422
+0,         15,         15,        1,   135000, 0x998a3478
+0,         16,         16,        1,   135000, 0x5842768d
+0,         17,         17,        1,   135000, 0xf6a85b16
+0,         18,         18,        1,   135000, 0x7a5b2708
+0,         19,         19,        1,   135000, 0x8b2abb63
+0,         20,         20,        1,   135000, 0x7dc8468b
+0,         21,         21,        1,   135000, 0x04d85001
+0,         22,         22,        1,   135000, 0x83e3c647
+0,         23,         23,        1,   135000, 0xcddd687e
+0,         24,         24,        1,   135000, 0x818e785e
+0,         25,         25,        1,   135000, 0x3a915080
+0,         26,         26,        1,   135000, 0x953d603d
+0,         27,         27,        1,   135000, 0x79005ebf
+0,         28,         28,        1,   135000, 0x80afec75
+0,         29,         29,        1,   135000, 0xfc8e376b
+0,         30,         30,        1,   135000, 0xf957b7ef
+0,         31,         31,        1,   135000, 0xe878da44
+0,         32,         32,        1,   135000, 0xe68ecca3
+0,         33,         33,        1,   135000, 0x1a2cc7d3
+0,         34,         34,        1,   135000, 0x4f346a69
+0,         35,         35,        1,   135000, 0x7a0cf4ac
+0,         36,         36,        1,   135000, 0x6d4eee7a
+0,         37,         37,        1,   135000, 0xf0688cbd
+0,         38,         38,        1,   135000, 0xca4abbbc
+0,         39,         39,        1,   135000, 0x87669519
+0,         40,         40,        1,   135000, 0xd090e9d7
+0,         41,         41,        1,   135000, 0xd7f536c1
+0,         42,         42,        1,   135000, 0x353ede54
+0,         43,         43,        1,   135000, 0xbc8f5358
+0,         44,         44,        1,   135000, 0xb52cd59a
+0,         45,         45,        1,   135000, 0x0b882eba
+0,         46,         46,        1,   135000, 0xc544cd54
+0,         47,         47,        1,   135000, 0x31ca7e73
 0,         48,         48,        1,   135000, 0xb1569ce9
-0,         49,         49,        1,   135000, 0x6c233986
-0,         50,         50,        1,   135000, 0x95b77f3d
-0,         51,         51,        1,   135000, 0xfc368d80
-0,         52,         52,        1,   135000, 0x5c73b064
-0,         53,         53,        1,   135000, 0x2206da8d
-0,         54,         54,        1,   135000, 0x62bb599e
-0,         55,         55,        1,   135000, 0x15a68991
-0,         56,         56,        1,   135000, 0x5f5eb810
+0,         49,         49,        1,   135000, 0x8bf4394f
+0,         50,         50,        1,   135000, 0xf413812a
+0,         51,         51,        1,   135000, 0xf2fa90ab
+0,         52,         52,        1,   135000, 0xdcd8b265
+0,         53,         53,        1,   135000, 0xa89cdba1
+0,         54,         54,        1,   135000, 0x212b59a5
+0,         55,         55,        1,   135000, 0x10c589c3
+0,         56,         56,        1,   135000, 0x432ab5b4
 0,         57,         57,        1,   135000, 0x85a9634a
-0,         58,         58,        1,   135000, 0xf24b5c1a
-0,         59,         59,        1,   135000, 0x38034850
-0,         60,         60,        1,   135000, 0x48fd3599
-0,         61,         61,        1,   135000, 0xb9d62408
-0,         62,         62,        1,   135000, 0xaf202a21
-0,         63,         63,        1,   135000, 0x341aa582
-0,         64,         64,        1,   135000, 0x90cdc9bb
-0,         65,         65,        1,   135000, 0x0b52f319
-0,         66,         66,        1,   135000, 0xce61aa5e
-0,         67,         67,        1,   135000, 0x988acb45
-0,         68,         68,        1,   135000, 0xcd353664
-0,         69,         69,        1,   135000, 0xa80c8ce9
-0,         70,         70,        1,   135000, 0x15dce784
-0,         71,         71,        1,   135000, 0x16bd4519
-0,         72,         72,        1,   135000, 0x571712f3
-0,         73,         73,        1,   135000, 0x6b109f1e
+0,         58,         58,        1,   135000, 0x10db5b87
+0,         59,         59,        1,   135000, 0x583145d9
+0,         60,         60,        1,   135000, 0x7d3a33bd
+0,         61,         61,        1,   135000, 0xcf592423
+0,         62,         62,        1,   135000, 0xb59728e5
+0,         63,         63,        1,   135000, 0x1eeca660
+0,         64,         64,        1,   135000, 0xff7bcc34
+0,         65,         65,        1,   135000, 0x0ef8f271
+0,         66,         66,        1,   135000, 0x8c9ca8ee
+0,         67,         67,        1,   135000, 0x8a7ece34
+0,         68,         68,        1,   135000, 0x7d4c3b5d
+0,         69,         69,        1,   135000, 0x99118f21
+0,         70,         70,        1,   135000, 0xd97fe7e2
+0,         71,         71,        1,   135000, 0xf93842f1
+0,         72,         72,        1,   135000, 0x35c912e8
+0,         73,         73,        1,   135000, 0x14e59e97
 0,         74,         74,        1,   135000, 0x8e4c19aa
-0,         75,         75,        1,   135000, 0x4132bd4c
-0,         76,         76,        1,   135000, 0x5babafe2
-0,         77,         77,        1,   135000, 0xddef6313
-0,         78,         78,        1,   135000, 0x76d6b48b
-0,         79,         79,        1,   135000, 0x929e7702
-0,         80,         80,        1,   135000, 0x33f5e4a1
+0,         75,         75,        1,   135000, 0x4adfbc53
+0,         76,         76,        1,   135000, 0x0613adde
+0,         77,         77,        1,   135000, 0x8db264ab
+0,         78,         78,        1,   135000, 0x3948b619
+0,         79,         79,        1,   135000, 0x843d7c02
+0,         80,         80,        1,   135000, 0x534fea34
 0,         81,         81,        1,   135000, 0xdb7041bf
-0,         82,         82,        1,   135000, 0xbc761e04
-0,         83,         83,        1,   135000, 0x0b2a81e6
-0,         84,         84,        1,   135000, 0xf6fd20ea
-0,         85,         85,        1,   135000, 0x1894a26c
-0,         86,         86,        1,   135000, 0xb25e216f
-0,         87,         87,        1,   135000, 0x83bb02ee
-0,         88,         88,        1,   135000, 0x6952a3c3
-0,         89,         89,        1,   135000, 0x372184d6
-0,         90,         90,        1,   135000, 0x2ac47afe
+0,         82,         82,        1,   135000, 0xd0ce1cce
+0,         83,         83,        1,   135000, 0x3c008335
+0,         84,         84,        1,   135000, 0xb699208f
+0,         85,         85,        1,   135000, 0xe07da3ca
+0,         86,         86,        1,   135000, 0x26331f41
+0,         87,         87,        1,   135000, 0x4e19fe83
+0,         88,         88,        1,   135000, 0xaa9a9e45
+0,         89,         89,        1,   135000, 0x336b7ed0
+0,         90,         90,        1,   135000, 0xc9bf7611
 0,         91,         91,        1,   135000, 0x14c33a35
 0,         92,         92,        1,   135000, 0xdc08470e
TEST    vp8-test-vector-006
Test vp6a failed. Look at tests/data/fate/vp6a.err for details.

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

I have never wished to cater to the crowd; for what I know they do not
approve, and what they approve I do not know. -- Epicurus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20120914/ae3f0138/attachment.asc>


More information about the ffmpeg-devel mailing list