[FFmpeg-devel] [PATCH] Reimplementation of OS/2 threads model

KO Myung-Hun komh
Wed May 5 09:44:27 CEST 2010



KO Myung-Hun wrote:
> 
> 
> Ramiro Polla wrote:
>> On Thu, Apr 29, 2010 at 11:38 AM, KO Myung-Hun <komh at chollian.net> wrote:
>>> Ramiro Polla wrote:
>>>> On Thu, Apr 29, 2010 at 9:14 AM, KO Myung-Hun <komh at chollian.net> wrote:
>>>>> Ramiro Polla wrote:
>>>>>> On Wed, Apr 28, 2010 at 11:45 AM, KO Myung-Hun <komh at chollian.net> wrote:
>>>>>> Also have you tested performance?
>>>>> How can I do the performance tests ?
>>>>
>>>> I'm not that sure either. I was suggested to run mpeg2 decoding and dv
>>>> encoding. I also tried encoding with x264 to see what would happen if
>>>> pthreads-win32 and w32threads were mixed in the same process.
>>>
>>> It would be better if you provide the specific commands. ^^
>>
>> http://thread.gmane.org/gmane.comp.video.ffmpeg.devel/108115
>>
>> But you won't have -benchmark 2, so just use -benchmark.
> 
> I've done some performance tests using os2thread based on w32thread,
> os2thread based on pthread and pthread lib.
> 
> The following is the result.
> 
> ----- benchmark info
> ffmpeg -threads x -i test.avi -benchmark -f null -y NUL
> 
> Input #0, mpeg, from 'test.avi':
>   Duration: 00:11:56.95, start: 0.180111, bitrate: 1651 kb/s
>     Stream #0.0[0x1e0]: Video: mpeg1video, yuv420p, 352x240 [PAR 200:219
> DAR 880:657], 104857 kb/s, 24 fps, 24 tbr, 90k tbn, 24 tbc
>     Stream #0.1[0x1c0]: Audio: mp2, 44100 Hz, 2 channels, s16, 96 kb/s
> Output #0, null, to 'NUL':
>   Metadata:
>     encoder         : Lavf52.61.0
>     Stream #0.0: Video: rawvideo, yuv420p, 352x240 [PAR 200:219 DAR
> 880:657], q=2-31, 200 kb/s, 90k tbn, 24 tbc
>     Stream #0.1: Audio: pcm_s16le, 44100 Hz, 2 channels, s16, 1411 kb/s
> Stream mapping:
>   Stream #0.0 -> #0.0
>   Stream #0.1 -> #0.1
> -----
> 
> ----- benchmark results
> os2thread(w32thread)
> 1  51.531 51.500 51.640
> 2  54.726 54.711 54.407
> 4  54.453 54.484 54.453
> 8  54.453 54.383 54.297
> 
> os2thread(pthread with some optimizations)
> 1  51.469 51.695 51.336
> 2  54.172 54.453 54.133
> 4  54.718 54.765 54.899
> 8  56.172 56.282 56.046
> 

I've improved the performance more. Now the result is

os2thread(pthread with some optimizations)
1  51.226 51.078 50.953
2  53.821 53.875 53.829
4  54.218 54.399 54.516
8  55.929 55.758 55.836

> pthread
> 1  51.492 51.140 51.218
> 2  55.203 55.101 55.195
> 4  56.094 55.907 55.930
> 8  58.242 57.594 57.820
> -----
> 
> As you see, the best is os2thread based on w32thread and the worst is
> pthread lib. The performance of pthread lib is getting far worse than
> os2thread based on w32thread if using more threads.
> 

Now os2thread(pthread model) has the best performance up to some threads.

> However, these tests have been performed on a non-SMP system. So I'm not
> sure this is true for SMP systems.
> 

-- 
KO Myung-Hun

Using Mozilla SeaMonkey 2.0.3
Under OS/2 Warp 4 for Korean with FixPak #15
On AMD ThunderBird 1GHz with 512 MB RAM

Korean OS/2 User Community : http://www.ecomstation.co.kr




More information about the ffmpeg-devel mailing list