JakFrost
20th March 2009, 04:49
This is a little informal performance comparison that I put together quickly on my system today while trying to figure out which H.264/AVC decoder used the least amount of processor time. The tests here are based on my aging system while some background tasks were running and were captured manually with Performance Monitor counter logs feature so they should not be used as a strict benchmark but they do give a very good impression of how the codecs compare.
I've been a big fan of FFDshow for all my audio and video decoding and I really like this software but some folks were pushing me towards using other decoder codecs so today I decided to give them a try. I got CoreAVC and also read the details about how to successfully enable DXVA (DirecX Video Acceleration) for Media Player Classic Home Cinema.
Conclusion: I found that Media Player Classic Home Cinema - H.264/AVC (DXVA) decoder filter uses only ~4% CPU to decode a complex 1080p movie scene and CoreAVC 1.9.5 Pro with CUDA Enabled at uses 3x more at ~15% CPU, and FFDshow software libraries FFmpeg-MT using 25x more at 105% and libavcodec using 33x more at 128%.
Note: On a computer with a Dual Core processor and multi-threaded applications the % Processor Used counter for the process might will be higher than 100% if the threads are executed on different cores at the same time. This is evident in the FFDshow results with peaks of 162% and 167% percent.
Results
FFDshow (FFmpeg-MT & libavcodec)
Video Codec: FFDshow rev2737 2009-03-02 clsid sse icl10 (http://sourceforge.net/project/showfiles.php?group_id=173941&package_id=199416&release_id=439938)
FFDshow (FFmpeg-MT)
Codec Config: FFmpeg-MT
Decoding: Software - CPU (Dual Core) 2-threads
http://forum.doom9.org/attachment.php?attachmentid=9644&d=1237521658
FFDshow (libavcodec)
Codec Config: libavcondec
Decoding: Software - CPU (Dual Core) 2-threads
http://forum.doom9.org/attachment.php?attachmentid=9645&d=1237521663
CoreAVC Professional
Video Codec: CoreAVC 1.9.5 Professional (http://www.coreavc.com/)
CUDA Off
Codec Config: CUDA Off, Deinterlace Single, Auto Everything Else
Decoding: Software - CPU (Dual Core)
http://forum.doom9.org/attachment.php?attachmentid=9642&d=1237521647
CUDA On
Codec Config: CUDA On, Deinterlace Hardware, Auto Everything Else
Decoding: Hardware - nVidia GPU Acceleration
http://forum.doom9.org/attachment.php?attachmentid=9643&d=1237521653
Media Player Classic Home Cinema - H.264/AVC (DXVA)
Video Codec: Media Player Classic Home Cinema 1.2.908.0 32-bits (http://sourceforge.net/project/showfiles.php?group_id=170561)
MPC-HC - H.264/AVC (DXVA)
Codec Config: Default - Threads 2, Deblocking Default, Errors Careful, IDCT Auto
Decoding: Hardware - DirectX Video Acceleration
http://forum.doom9.org/attachment.php?attachmentid=9646&d=1237521667
Specifications
Software
Operating System: Microsoft Windows XP SP3 32-bit (http://www.microsoft.com/windows/windows-xp/)
Splitter: Haali Matroska Splitter - 2009-01-11 (http://haali.cs.msu.ru/mkv/)
Player Config: DirectShow Video: VMR9 Renderless, 3D Surfaces, Bilinear
Video Driver: nVidia ForceWare 182.08 2009-03-03 (http://www.nvidia.com/object/winxp_182.08_whql.html)
Audio Codec Config: FFDshow Audio Codec: AC3/E-AC3/DTS = libavcodec, Output: Pass-through (S/PDIF, HDMI) = Enabled for AC3 & DTS
Hardware
CPU: AMD Opteron 175 Dual-Core 2.2 GHz 1 MB 90 nm 939 11x CCBWE 0543TPMW VID 1.350 V (http://www.amd.com/us-en/Processors/ProductInformation/0,,30_118_8796_9240,00.html) - 2,475 MHz (225x11x4), 1.55 V (1.55 V x 100.0 %)
FAN: Zalman CNPS9500 LED 92 mm Fan+Heatsink (http://www.zalman.co.kr/ENG/product/Product_Read.asp?idx=277) + Arctic Silver 5 Thermal Paste 99.9 % (http://www.arcticsilver.com/as5.htm) - 35 C Idle, 45 C Load
MOB: DFI LanParty UT SLI-DR Expert 939 nF4 PCI-e Rev.AA0 (http://us.dfi.com.tw/portal/CM/cmproduct/XX_cmproddetail/XX_WbProdsWindow?action=e&downloadType=&windowstate=normal&mode=view&downloadFlag=false&itemId=479) - BIOS: 2006-04-06 Modded, LDT 1.20 V, Chipset 1.52 V, 42 C Load
RAM: Mushkin 4x 1 GB XP4000 Redline 991493 DDR500 3-3-2-8 2.6-2.9 V CE-6 (http://www.mushkin.com/doc/products/memory_detail.asp?ID=273) - 233 MHz (1:1) 2T 3-3-2-8, 2.80 V
VID: eVGA nVidia GTX 260 896 MB G92 192c 576/999 MHz PCI-e 2.0 16x 2xDVI 1xSVid 1xHDTV (http://www.evga.com/products/moreInfo.asp?pn=896-P3-1260-AR) - 600/1100 MHz, VGA to 19" CRT, HDMI 60' to 50" Plasma TV.
Source
General
Complete name : Sky Crawlers (2008) [1080p AVC; 6.1ch DTS-ES].mkv
Format : Matroska
File size : 7.93 GiB
Duration : 2h 2mn
Overall bit rate : 9 283 Kbps
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 10 frames
Muxing mode : Container profile=Unknown@4.1
Codec ID : V_MPEG4/ISO/AVC
Duration : 2h 2mn
Bit rate : 7 370 Kbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16/9
Frame rate : 23.976 fps
Resolution : 24 bits
Colorimetry : 4:2:0
Scan type : Progressive
Bits/(Pixel*Frame) : 0.148
I've been a big fan of FFDshow for all my audio and video decoding and I really like this software but some folks were pushing me towards using other decoder codecs so today I decided to give them a try. I got CoreAVC and also read the details about how to successfully enable DXVA (DirecX Video Acceleration) for Media Player Classic Home Cinema.
Conclusion: I found that Media Player Classic Home Cinema - H.264/AVC (DXVA) decoder filter uses only ~4% CPU to decode a complex 1080p movie scene and CoreAVC 1.9.5 Pro with CUDA Enabled at uses 3x more at ~15% CPU, and FFDshow software libraries FFmpeg-MT using 25x more at 105% and libavcodec using 33x more at 128%.
Note: On a computer with a Dual Core processor and multi-threaded applications the % Processor Used counter for the process might will be higher than 100% if the threads are executed on different cores at the same time. This is evident in the FFDshow results with peaks of 162% and 167% percent.
Results
FFDshow (FFmpeg-MT & libavcodec)
Video Codec: FFDshow rev2737 2009-03-02 clsid sse icl10 (http://sourceforge.net/project/showfiles.php?group_id=173941&package_id=199416&release_id=439938)
FFDshow (FFmpeg-MT)
Codec Config: FFmpeg-MT
Decoding: Software - CPU (Dual Core) 2-threads
http://forum.doom9.org/attachment.php?attachmentid=9644&d=1237521658
FFDshow (libavcodec)
Codec Config: libavcondec
Decoding: Software - CPU (Dual Core) 2-threads
http://forum.doom9.org/attachment.php?attachmentid=9645&d=1237521663
CoreAVC Professional
Video Codec: CoreAVC 1.9.5 Professional (http://www.coreavc.com/)
CUDA Off
Codec Config: CUDA Off, Deinterlace Single, Auto Everything Else
Decoding: Software - CPU (Dual Core)
http://forum.doom9.org/attachment.php?attachmentid=9642&d=1237521647
CUDA On
Codec Config: CUDA On, Deinterlace Hardware, Auto Everything Else
Decoding: Hardware - nVidia GPU Acceleration
http://forum.doom9.org/attachment.php?attachmentid=9643&d=1237521653
Media Player Classic Home Cinema - H.264/AVC (DXVA)
Video Codec: Media Player Classic Home Cinema 1.2.908.0 32-bits (http://sourceforge.net/project/showfiles.php?group_id=170561)
MPC-HC - H.264/AVC (DXVA)
Codec Config: Default - Threads 2, Deblocking Default, Errors Careful, IDCT Auto
Decoding: Hardware - DirectX Video Acceleration
http://forum.doom9.org/attachment.php?attachmentid=9646&d=1237521667
Specifications
Software
Operating System: Microsoft Windows XP SP3 32-bit (http://www.microsoft.com/windows/windows-xp/)
Splitter: Haali Matroska Splitter - 2009-01-11 (http://haali.cs.msu.ru/mkv/)
Player Config: DirectShow Video: VMR9 Renderless, 3D Surfaces, Bilinear
Video Driver: nVidia ForceWare 182.08 2009-03-03 (http://www.nvidia.com/object/winxp_182.08_whql.html)
Audio Codec Config: FFDshow Audio Codec: AC3/E-AC3/DTS = libavcodec, Output: Pass-through (S/PDIF, HDMI) = Enabled for AC3 & DTS
Hardware
CPU: AMD Opteron 175 Dual-Core 2.2 GHz 1 MB 90 nm 939 11x CCBWE 0543TPMW VID 1.350 V (http://www.amd.com/us-en/Processors/ProductInformation/0,,30_118_8796_9240,00.html) - 2,475 MHz (225x11x4), 1.55 V (1.55 V x 100.0 %)
FAN: Zalman CNPS9500 LED 92 mm Fan+Heatsink (http://www.zalman.co.kr/ENG/product/Product_Read.asp?idx=277) + Arctic Silver 5 Thermal Paste 99.9 % (http://www.arcticsilver.com/as5.htm) - 35 C Idle, 45 C Load
MOB: DFI LanParty UT SLI-DR Expert 939 nF4 PCI-e Rev.AA0 (http://us.dfi.com.tw/portal/CM/cmproduct/XX_cmproddetail/XX_WbProdsWindow?action=e&downloadType=&windowstate=normal&mode=view&downloadFlag=false&itemId=479) - BIOS: 2006-04-06 Modded, LDT 1.20 V, Chipset 1.52 V, 42 C Load
RAM: Mushkin 4x 1 GB XP4000 Redline 991493 DDR500 3-3-2-8 2.6-2.9 V CE-6 (http://www.mushkin.com/doc/products/memory_detail.asp?ID=273) - 233 MHz (1:1) 2T 3-3-2-8, 2.80 V
VID: eVGA nVidia GTX 260 896 MB G92 192c 576/999 MHz PCI-e 2.0 16x 2xDVI 1xSVid 1xHDTV (http://www.evga.com/products/moreInfo.asp?pn=896-P3-1260-AR) - 600/1100 MHz, VGA to 19" CRT, HDMI 60' to 50" Plasma TV.
Source
General
Complete name : Sky Crawlers (2008) [1080p AVC; 6.1ch DTS-ES].mkv
Format : Matroska
File size : 7.93 GiB
Duration : 2h 2mn
Overall bit rate : 9 283 Kbps
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 10 frames
Muxing mode : Container profile=Unknown@4.1
Codec ID : V_MPEG4/ISO/AVC
Duration : 2h 2mn
Bit rate : 7 370 Kbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16/9
Frame rate : 23.976 fps
Resolution : 24 bits
Colorimetry : 4:2:0
Scan type : Progressive
Bits/(Pixel*Frame) : 0.148