Appendix E: How well does your PC support Skype® for Business 2015 H.264/SVC
The purpose of this paper is to show how to check your PC to determine how well it can support the latest Microsoft® Skype® for Business 2015 H.264/SVC). It forms Appendix E of a series that specifically looks at Microsoft Skype for Business 2015 (Lync® 2013) and the challenges and solutions for integrating Skype for Business 2015 with H.323 or SIP standards compliant videoconferencing systems.
In Appendix D: we showed how to check what Skype for Business audio and video codecs your PC supports in preferential order. However, this method only indicated if H.264/SVC was supported, but not the extent of that support.
Hence, in this paper, we will show how to check the five main areas of your PC that affect the maximum resolution it can support with Microsoft H.264/SVC.
You might be very surprised from what you learn within this paper. Just because you have a powerful quad-core workstation with dedicated graphics card and HD camera does not mean that it will outperform a basic laptop with built-in camera when it comes to running the latest Skype for Business client. Far from it, the laptop might be a better, cheaper, faster device to use.
Within these papers the terms, Lync, Skype, Skype for Business and SfB, unless stated otherwise, all refer to Skype for Business Server 2015. The paper is specifically based on Skype for Business 2015. Whilst Lync 2013 has now been renamed Skype for Business 2015, it is generally backwards compatible with Lync Server 2013.
It is recommended that you look all the papers listed below for a background into Skype for Business and a detailed explanation about the Codecs, Protocols, Procedures and some of the available solutions.
- Part 1: How Skype for Business 2015 - (Lync 2013) can be Deployed.
- Part 2: Skype for Business 2015 Servers, Roles and their Functions.
- Part 3: Networks & Protocols used by Skype for Business 2015 - (Lync 2013).
- Part 4: Lifesize Cloud integration with Skype for Business 2015 - (Lync 2013).
- Part 5: Polycom Endpoints Native Integration with Skype for Business 2015.
- Part 6: Polycom RealConnect Interoperability with Skype for Business 2015.
- Appendix A: H.264 Video Codecs and UCConfig Modes.
- Appendix B: Skype for Business Video and Audio Codecs.
- Appendix C: Video and Audio Codecs used by H.323 and SIP Compliant VC systems.
- Appendix D: How to check what Skype for Business codecs your PC supports.
Microsoft Lync is an evolutionary product for Unified Communications (UC). The initial product; Live Communications Server 2003, was only an Instant Messaging (IM) server. This then evolved through several interactions of Live Communications Server to Office Communications Server and then to Lync Server 2010; when a PBX replacement function was added. It then evolved even further to Lync Server 2013 which added much more including video conferencing, web and audio conferencing, softphone and PBX replacement and/or integration. Now, Microsoft have renamed Lync to Skype for Business.
How to check your PC Resources to determine how it supports Microsoft H.264/SVC:
In a Skype for Business video conference, the sending client has to encode the video into H.264/SVC and transmit the media stream, then the receiving client has to decode the H.264/SVC stream and display it. This is obviously a two-way process that both clients have to do. So the PC's ability to both encode and decode H.264/SVC will have an impact on what can be achieved.
For PC's, the maximum H.264/SVC resolution that it can support depends on the following hardware capabilities:
- Hardware accelerated decoding (DXVA2)
- Hardware accelerated encoding (GPU, Camera)
- CPU and number of Cores.
- Windows Experience Index (WEI) and specifically the Video Encoding Score.
What is actually achieved will depend on a combination of all of the above capabilities.
Hardware Decoding using DirectX Video Acceleration (DXVA2):
The graphics chipset in your PC or laptop should be able to assist in decoding inbound H.264/SVC video streams providing it has a minimum DirectX 9.0 (latest is DirectX 11.2) and supports DXVA2_ModeH264_VLD_NoFGT decoding.
The graphics chipset is typically integrated with the motherboard in a laptop or entry-level PC, or in the dedicated graphics card in higher-performance PC's.
1.1) To determine the DirectX version your PC uses and what is supported, simply run the DirectX Diagnostic Tool dxdiag.exe that is typically found in C:\Windows\System32 or C:\Windows\SysWOW64
1.2) Wait for dxdiag.exe to finish; under the System tab, it will show the installed DirectX Version as shown below. In this example, it is DirectX Version 11.1
1.3) Now select the Save All Information button and save the dxdiag.txt file to a convenient location.
1.4) Open the dxdiag.txt file using NotePad and search for DXVA2.
If DXVA2_ModeH264_VLD_NoFGT is listed and you have at least DirectX 9.0, then your Skype for Business 2015 or Lync 2013 client should be able to decode inbound H.264/SVC video using your PC's graphics chipset.
Unless your PC is running Windows 8/8.1 or Windows 10, it is highly unlikely to have support for DXVA2. Hence, for maximum performance, it's best to use a PC that's running the latest Windows 10 Operating System.
Hardware Encoding within Graphical Processing Unit (GPU):
Whilst the GPU can also be used to encode video, there are only a few specific chipsets that can be used by Skype for Business 2015 or Lync 2013. Intel have a feature called Quick Sync Video in their HD Graphics chipsets that are integrated into some of their CPU's whilst some AMD have a similar feature called Video Codec Engine (VCE) integrated into some of their CPU's; these can be used by Skype for Business 2015 or Lync 2013 for hardware video encoding.
Starting in 2011, certain second and third generation Intel CPU's have integrated Intel HD Graphics chipsets. This means that some, but not all Intel CPU's can be used for video encoding. For example, the early Intel Core i7-860 has no integrated HD Graphics chipset. Introduced in 2013, select fourth and later generation Intel Core CPU's feature the premium Intel Iris Graphics or Iris Pro Graphics capabilities.
The easiest way to determine what your PC might have is to:
2.1) Use dxdiag.exe to identify the exact CPU model it has.
The above example is from a PC running Windows 10 Pro with an Intel i7 Quad Core CPU whilst the below example is from a laptop running Windows 10 with an Intel i3 Dual Core CPU.
2.2) Look-up its capabilities via the Internet. For Intel CPU's, once you know the CPU model, check the following listing About Intel Processor Graphics Technology.
2.3) Once you know if the CPU has an integrated Graphics chipset, you need to verify that it is being used. This can again be done by running dxdiag.exe, but now by looking at the Display tab as shown below.
The above example is from the PC running Windows 10 Pro with an Intel i7 Quad Core CPU. It shows that whilst it has a separate NVIDIA FX 580 PCI Express graphics card, this does not support Intel HD Graphics and hence cannot perform H.264/SVC hardware encoding.
2.4) The below example is from the laptop running Windows 10 with an Intel i3-3271U CPU. Following the above link to the Intel Processor Graphics Technology shows that the i3-3271U includes the Intel HD Graphics 4000 chipset. This Dxdiag Display page also confirms that it is being used.
2.5) If the device indicates that it has Intel HD Graphics or AMD Video Codec Engine, then it meets the requirements to support Skype for Business 2015 or Lync 2013 H.264/SVC hardware video encoding.
Hardware Encoding within Camera (UVC 1.5):
Not all USB Cameras are equal, especially with Skype for Business 2015 and Lync 2013 clients when they need to encode into Microsofts H.264/SVC. If your PC's hardware (processor or graphics chipset) does not support encoding into H.264/SVC, then an alternative maybe to upgrade and use an USB Camera that can.
Whilst most of the current USB Cameras, such as the Logitech HD Pro Webcam C920, can support up to 1080p resolution, the actual H.264/SVC encoding is typically performed in software by the CPU. There are only few USB Cameras that can offload this encoding and help do it themselves. For this, you need a USB Camera that supports USB Video Class (UVC) 1.5 and utilised by Windows 8 onwards as well as Skype for Business 2015 and Lync 2013 clients.
At the time of writing this paper, we only know of two such USB Cameras; the Logitech Webcam C930e and the Telycam TLC-300-U3. So to see what effect these cameras can have when using the Skype for Business 2015 client, we setup a controlled trial and compared the results.
3.1) For the basis of this trail, we used a Dell Vostro T5120 laptop running Windows 10 Pro 64 bit that has an Intel Core 2 Duo T9550 Processor, 4096 MB RAM and integrated NVIDIA GeForce 9300M GS graphics chipset as shown above in (1.2) and below. This combination does not support H.264/SVC hardware encoding.
To this, we installed the latest Skype for Business 2015 (15.0.4753.1003) Client with an Online account, added a Polycom C100 USB Speakerphone for consistent audio I/O and an ExpressCard USB v3.0 adapter card to provide a USB v3.0 port.
For the actual tests, we initiated calls from our Skype for Business 2015 client to a Lifesize Cloud Premium client hosting a Virtual Meeting Room (VMR) so that our Skype for Business 2015 client would be sent a consistent inbound video stream.
We made separate calls using either a Logitech HD Pro Webcam C920 (USB 2.0); Logitech Webcam C930e (USB 3.0) or Telycam TLC-300-U3 (USB 3.0) camera whilst running Task Manager so that we could capture and compare the CPU usage. The Lifesize Cloud stats confirmed it was in an HD call. We also captured the CPU usage when the Skype for Business 2015 client was running but idle and not in a call.
3.2) Skype for Business 2015 client running but idle and not in a call
3.3) Skype for Business 2015 client in 1080 HD call using Logitech HD Pro Webcam C920
3.4) Skype for Business 2015 client in 1080 HD call using Logitech Webcam C930e in USB 3.0 port
3.5) Skype for Business 2015 client in 1080 HD call using Telycam TLC-300-U3 in USB 3.0 port
The results clearly show that at idle (3.2), the CPU usage was only 1%. Then, whilst in Skype for Business 2015 calls, using the Logitech HD Pro C920 (3.3) with CPU encoding, the CPU usage was 84%; but this dropped to 52% when using the Logitech Webcam C930e (3.4) or 54% when using the Telycam TLC-300-U3 (3.5).
Whilst these were simple tests, the results clearly demonstrate that using either a Logitech Webcam C930e or Telycam TLC-300-U3 camera has a measurable impact on CPU usage and hence what video quality might be achievable with a specific Camera and PC or laptop combination.
CPU and number of Cores:
The number of physical CPU Cores still has an impact on the H.264/SVC video encoding and decoding capabilities of Skype for Business 2015 or Lync 2013 clients, but this is now determined in conjunction with any hardware accelerated encoding and decoding that also maybe applied. For example, if the PC can apply hardware acceleration to both encoding and decoding, then it is possible to support encoding and decoding all H.264/SVC resolutions up to 1080p30 irrespective of the number of physical CPU Cores.
It is the number of physical CPU Cores that is important and not the number of CPU Threads that is mistakenly used by the DirectX Diagnostic Tool, dxdiag. Most CPU's support Hyper-Threading and hence are now multi-threaded, so typically, the Number of Threads is twice the Number of Cores.
But you can easily check using Task Manager as shown in the two examples below.
4.1) Above shows a Dell Vostro T1520 with Intel Core2 Duo T9550 that has 2 Cores and 2 Logical Processors. As the Intel Core 2 Duo T9550 does not support Hyper-Threading, it only has 2 Logical Processors.
4.2) Above shows a Dell Precision T1500 with Intel Quad Core i7 860 CPU that does support Hyper-Threading, hence Task Manager shows that it has 4 Cores and 8 Logical Processors.
As a guide, if your PC and Camera combination does not apply hardware acceleration to both encoding and decoding H.264/SVC, then it ideally needs to have a Quad-Core CPU. This is especially true if your Skype for Business 2015 or Lync 2013 client needs to call an older Lync 2010 client. In this case, to be backward compatible, both clients will use Microsofts RTV (Real-Time Video) codec.
When Skype for Business or Lync clients use RTV, all the encoding and decode is processed in software by the CPU. Also, whilst a Dual-Core CPU can decode RTV at 720p15, it requires a Quad-Core CPU to encode RTV at 720p30. But as Microsoft have set Lync 2010 so that it can only send and receive the same video, the clients will use the highest common denominator video codec available to both ends. Furthermore, as Microsoft have also set the Lync 2010 client to prefer motion (frame rate) over sharpness (resolution), a Lync 2010 client would prefer to send VGA (640x480) @ 30fps than 720p15.
So in reality, if your PC and Camera combination does not apply hardware acceleration to both encoding and decoding H.264/SVC, or you needs to make RTV based HD calls to Lync 2010 clients, then your PC really needs to have a Quad-Core CPU.
Windows Experience Index (WEI) score:
The last hardware capability to check is the PC's Windows Experience Index (WEI) and specifically its VideoEncodeScore and GraphicsScore. These are determined by the Windows System Assessment Tool - WinSAT.
The VideoEncodeScore indicates the PC's software based video encoding capability whilst the GraphicsScore indicates its hardware accelerated encoding capability.
These were easy to check on PC's running Windows 7 as they could be found from the Windows System Control Panel. However, the links have been removed under Windows 8 onwards.
Under Windows 7, the maximum WinSAT score is 7.9, which could have limitations on what H.264/SVC encoding can be achieved. However, with Windows 8, 8.1 and 10, the maximum WinSAT score is now 9.9.
Now, the easiest way to determine the VideoEncodeScore and GraphicsScore is to run WinSAT and check the results as follows:-
5.1) Open a Command Prompt and Run as Administrator.
5.2) Enter the command winsat formal -v -xml C:\winsatresults.xml
5.3) Wait for the test to complete; it could take several minutes.
5.4) Navigate to where you stored the results file:-
C:\winsatresults.xml or navigate to,
%Windir%\Performance\WinSAT\DataStore and locate the latest Formal.Assessment (Recent).WinSAT.xml
These are copies of the same file.
5.5) Open the .xml using a browser and search for VideoEncodeScore.
The above WinSAT results are from the Dell Precision T1500 with Intel Quad Core i7 860 CPU and NVIDIA Quadro FX 580 dedicated graphics card. But as shown above in (2.3), this dedicated graphics card DOES NOT support Intel HD Graphics, so no H.264/SVC hardware encoding is done by this graphic card.
Since there is no H.264/SVC hardware encoding, the important measure is the VideoEncodeScore, which is 7.6 out of 9.9.
5.6) By contrast, the Dell laptop as shown above in (2.4) only has an Intel i3-3271U CPU, but this includes the Intel HD Graphics 4000 chipset that Skype for Business can utilise for H.264/SVC hardware encoding.
5.7) The above WinSAT results are from the Dell laptop with Intel HD Graphics 4000 chipset. As this performs H.264/SVC hardware encoding, the important measure is the GraphicsScore, which is 5.6 out of a max 9.9.
Note: The GraphicScore is related to the hardware accelerated encoding capabilities within the PC and not a measure of any UVC 1.5 offload encoding capabilities by a USB Camera such as the Logitech Webcam C930e or Telycam TLC-300-U3.
Summarising all the checks to Determine the Clients Capabilities:
Microsoft have published the TechNote, Skype for Business client video requirementsRef: 1, which provides the following three tables that help interpret the results from everything we have discussed so far in this paper. You should be able to classify your PC/laptop into one of the following three categories A, B or C.
|Capable Encoder Resolution||Capable Decoder Resolution||Requirement|
|424x240||424x240 (640x360 at 15fps for receive only scenarios)||1 Core and VideoEncodeScore >= 4.0|
|640x360||640x360||2 Core and VideoEncodeScore >= 4.5|
|640x360||1280x720||2 Core and VideoEncodeScore >= 4.5|
|640x360||1920x1080||4 Core and VideoEncodeScore >= 4.5|
|1280x720||1280x720||4 Core and VideoEncodeScore >= 7.3|
|1280x720||1920x1080||4 Core and VideoEncodeScore >= 7.3|
|Capable Encoder Resolution||Capable Decoder Resolution||Requirement|
|424x240||1920x1080||1 Core and VideoEncodeScore >= 3.0|
|640x360||1920x1080||2 Core and VideoEncodeScore >= 4.5|
|960x540||1920x1080||2 Core and VideoEncodeScore >= 6.0|
|1280x720||1920x1080||4 Core and VideoEncodeScore >= 6.7|
|1920x10801||1920x1080||4 Core and VideoEncodeScore >= 8.2|
|1). The WinSAT Score under Windows 7 is limited to a maximum 7.9. Therefore, this encoding capability for a computer without a hardware accelerated encoder can only be achieved with Windows 8, Windows 8.1 or Windows 10, where the maximum WinSAT Score is 9.9.|
|Capable Encoder Resolution||Capable Decoder Resolution||Requirement|
|1280x720||1920x1080||All 2nd and 3rd Generation Intel HD Graphics|
|1920x1080||1920x1080||2nd & 3rd Gen Intel HD Graphics and GraphicsScore >= 5.0|
As you can see from the above tables, the computer used by the Skype for Business 2015 and Lync 2103 client falls into one of the following three classes:
2). DXVA2 decoding, but no hardware accelerated encoding
3). DXVA2 decoding with Intel HD Graphics hardware accelerated encoding
6.1) The tables show that it is impossible to do any HD video encoding unless the CPU has 4 Cores.
6.2) Even if the PC supports DXVA2 decoding, it still needs a CPU with 4 Cores and a VideoEncodeScore of 6.7 to do HD 720p video encoding; which is near the limit for a Windows 7 based computer.
6.3) For best results, you ideally need a computer with a Quad-Core CPU and unless this CPU that supports Intel HD Graphics, then the computer really needs to run Windows 8 or higher. You should then consider using a USB Camera that supports UVC 1.5 and can offload the H.264/SVC video encoding.
6.4) Remember that all RTV decoding and encoding is performed in software by the CPU, so if you need to call Lync 2010 clients, then having a Quad-Core CPU really becomes essential.
6.5) Don't be deceived by what you think the PC might be capable of doing. As shown in our two examples, the Dell Precision T1500 is a mini-tower workstation with an Intel Quad Core i7 860 CPU, 12GB RAM and an NVIDIA Quadro FX 580 dedicated graphics card with 512MB video memory and 4095MB shared system memory and runs Windows 10 Pro; whilst the Dell Inspiron 5521 is a laptop with an Intel i3-3217U CPU with Intel HD Graphics 4000 Chipset, approximately 1792MB video memory, 6GB RAM and runs Windows 10 Home.
So on paper, the Dell Precision T1500 workstation looks the more powerful device compared to the Dell Inspiron 5521 laptop. But whilst both the workstation and laptop use Windows 10 and both support DXVA2 hardware accelerated decoding, the Dell Precision T1500 does not have an Intel HD Graphics Chipset and hence cannot do any hardware accelerated encoding. And even with the NVIDIA Quadro FX 580 graphics card, its VideoEncodeScore was only 7.6. So looking at Table B, you can see that it's only capable of encoding 1280x720 video whilst decoding 1920x1080 video.
By contrast, the Dell Inspiron 5521 laptop does have an Intel HD Graphics Chipset, so it can do hardware accelerated encoding. And as it's GraphicsScore is 5.6, you can see from Table C that it's capable of encoding and decoding 1920x1080 video.
So the Dell Inspirion 5521 laptop is actually the better device for running the Skype for Business 2015 client.
For a complete picture, please take a closer look at all the other papers in this series about Skype for Business 2015.
1) Skype for Business client video requirements "https://technet.microsoft.com/en-us/library/jj688132.aspx"
2) Microsoft Lync Server 2013 Unleashed. ISBN-13 978-0-672-33615-7